欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種降低在矢量圖形填充過(guò)程中對(duì)cpu耗費(fèi)的方法及裝置的制作方法

文檔序號(hào):6582451閱讀:127來(lái)源:國(guó)知局
專利名稱:一種降低在矢量圖形填充過(guò)程中對(duì)cpu耗費(fèi)的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及多媒體數(shù)據(jù)處理領(lǐng)域,特別是一種降低在矢量圖形填充過(guò)程中對(duì)CPU 耗費(fèi)的方法及裝置。
背景技術(shù)
矢量圖形是由一系列坐標(biāo)點(diǎn)描述的具有特定形狀和屬性的幾何圖形。Flash作為 一種矢量圖形動(dòng)畫格式,其圖形定義主要包括線和區(qū)域。其中,線是用來(lái)描繪形狀的輪廓, 區(qū)域是形狀輪廓圈定的內(nèi)部閉合范圍。Flash矢量圖形繪制中主要是區(qū)域填充。Flash中, 區(qū)域是按照各種顏色交織在一起的方式定義的,并且定義區(qū)域輪廓的線包括直線和曲線。 為了填充算法上的統(tǒng)一,在填充之前,區(qū)域需要被分割成一系列顏色單一的多邊形,通過(guò)對(duì) 多邊形的填充完成對(duì)區(qū)域的填充。多邊形的填充是一個(gè)計(jì)算密集的處理過(guò)程,每個(gè)步驟都需要大量的計(jì)算資源,對(duì) 中央處理器(CPU)的處理能力有很高的要求,該處理過(guò)程包括多邊形頂點(diǎn)坐標(biāo)變換、多邊 形針對(duì)繪圖窗口的裁剪、多邊形轉(zhuǎn)換成繪圖窗口內(nèi)的掃描線、掃描線著色。參見(jiàn)圖1所示,現(xiàn)有技術(shù)中對(duì)多邊形進(jìn)行填充的具體流程如下步驟101 解析矢量圖形,得到一系列多邊形。步驟102 通過(guò)矩陣運(yùn)算對(duì)每個(gè)多邊形的頂點(diǎn)坐標(biāo)進(jìn)行變換,將多邊形映射到繪 圖窗口。其中,多邊形是以1/20像素為單位。步驟103 針對(duì)繪圖窗口對(duì)多邊形進(jìn)行裁剪,得到位于繪圖窗口內(nèi)的多邊形。步驟104 應(yīng)用掃描轉(zhuǎn)換算法,將位于繪圖窗口內(nèi)的多邊形轉(zhuǎn)換為繪圖窗口內(nèi)的 一組掃描線。步驟105 對(duì)每條掃描線覆蓋的像素進(jìn)行著色。著色前,將掃描線交點(diǎn)坐標(biāo)除以 20,以得到繪圖窗口中的像素坐標(biāo)值。在上述填充過(guò)程中,所述多邊形的頂點(diǎn)坐標(biāo)以1/20像素為單位,在步驟104對(duì)每 條掃描線覆蓋的象素進(jìn)行著色之前,所有計(jì)算都要在1/20像素單位上進(jìn)行,著色時(shí)再將轉(zhuǎn) 換的掃描線交點(diǎn)坐標(biāo)除以20,以得到繪圖窗口中的像素坐標(biāo)值。由于在CPU上執(zhí)行除法運(yùn) 算很耗時(shí),需要較多的CPU資源,對(duì)CPU的處理能力要求較高。

發(fā)明內(nèi)容
本發(fā)明提供一種降低在矢量圖形填充過(guò)程中對(duì)CPU資源耗費(fèi)的方法及裝置,用以 降低在進(jìn)行失量圖形填充過(guò)程中對(duì)CPU資源的消耗。本發(fā)明實(shí)施利提供的一種降低在矢量圖形填充過(guò)程中對(duì)CPU資源耗費(fèi)的方法包 括解析所述矢量圖形,得到一系列多邊形;利用變換參數(shù)以及變換矩陣將多邊形映射到l/2n像素為單位的新繪圖坐標(biāo)系中, 同時(shí)更新繪圖窗口至新坐標(biāo)系中,其中,變換參數(shù)為A,A = 2720,η為移位參數(shù),η取值為自然數(shù);獲取新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分;將所述新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分轉(zhuǎn)換為一組掃描段;將所述掃描段坐標(biāo)的原碼右移η位,并對(duì)移位后的掃描段上的像素著色。本發(fā)明實(shí)施利提供的一種降低在矢量圖形填充過(guò)程中對(duì)CPU資源耗費(fèi)的裝置包 括解析單元,用于解析所述矢量圖形,得到一系列多邊形;映射單元,用于利用乘以變換參數(shù)的變換矩陣將多邊形映射到l/2n像素為單位的 新繪圖坐標(biāo)系中,同時(shí)更新繪圖窗口至新坐標(biāo)系中,其中,變換參數(shù)為A,A = 2720,η為移 位參數(shù),η取值為自然數(shù);多邊形獲取單元,用于獲取新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分;掃描轉(zhuǎn)換單元,用于將所述新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分轉(zhuǎn)換為一組 掃描段;移位單元,用于將所述掃描段坐標(biāo)的原碼右移η位;像素著色單元,用于對(duì)移位后的掃描段上的像素著色。本發(fā)明實(shí)施例中,在將掃描線覆蓋的像素著色時(shí),采用將坐標(biāo)值移位的方式代替 除法運(yùn)算,同時(shí)將產(chǎn)生的多邊形裁剪誤差轉(zhuǎn)移到著色以前的計(jì)算過(guò)程中,從而在保證結(jié)果 正確的前提下,減少了除法運(yùn)算,最終達(dá)到減少占用CPU資源的目的。


圖1為現(xiàn)有技術(shù)中實(shí)現(xiàn)矢量填充的方法流程示意圖;圖2為本發(fā)明實(shí)施例實(shí)現(xiàn)矢量填充的方法流程示意圖;圖3為本發(fā)明實(shí)施例提供的用戶自定義指令(User Defined Instructions,UDI) 的操作過(guò)程示意圖;圖4為本發(fā)明是實(shí)施例提供的裁剪誤差示意圖;圖5為本發(fā)明實(shí)施例提供的外包矩形與繪圖窗口位置關(guān)系示意圖;圖6為本發(fā)明實(shí)施例提供的多邊形裁剪示意圖;圖7為本發(fā)明實(shí)施例提供的外包矩形的示意圖;圖8為本發(fā)明實(shí)施例提供的多邊形掃描轉(zhuǎn)換示意圖;圖9為本發(fā)明實(shí)施例提供的矢量圖形填充裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式在本發(fā)明實(shí)施例進(jìn)行多邊形矢量圖形填充的過(guò)程中,首先要解析所述矢量圖形, 得到一系列多邊形,然后再利用變換參數(shù)以及變換矩陣將每個(gè)多邊形映射到l/2n像素為 單位的新繪圖坐標(biāo)系中,同時(shí)更新繪圖窗口至新坐標(biāo)系中;獲取新坐標(biāo)系中多邊形在新繪 圖窗口內(nèi)的部分;將所述新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分轉(zhuǎn)換為一組掃描段;將 所述掃描段坐標(biāo)的原碼右移η位,并對(duì)移位后的掃描段上的像素著色;其中,變換參數(shù)A = 2720,η為移位參數(shù),為自然數(shù)。由于現(xiàn)有技術(shù)中在對(duì)掃描線覆蓋的像素著色時(shí),需要將掃描段的起止坐標(biāo)及掃描映射到繪圖窗口中的坐標(biāo)點(diǎn)(Xl,yi),隨后將(Xl,yi)的χ和y坐標(biāo)除20得到像素
展開后
其中,(x,y)為原始坐標(biāo),(χ',y')為變換后的坐標(biāo)。
除以32和乘1. 6的組合為例,具體來(lái)說(shuō),假設(shè)有一個(gè)坐標(biāo)點(diǎn)(X(l,y(l),通過(guò)坐標(biāo)變
線y坐標(biāo)除以20,轉(zhuǎn)換為以像素為單位的值,需要大量除法運(yùn)算。在本發(fā)明實(shí)施例中,為了 減少除法運(yùn)算,采用移位的方法代替除法運(yùn)算,將除以20運(yùn)算采用除以一個(gè)與20相近似的 2的整次冪的數(shù)代替,這樣,就可以用簡(jiǎn)單的整數(shù)移位代替除法運(yùn)算。與此同時(shí),將產(chǎn)生的多 邊形裁減誤差轉(zhuǎn)移到著色以前的計(jì)算過(guò)程中,從而消除最終結(jié)果的誤差。與20相近似的2的整次冪的數(shù)有8、16、32、64等,當(dāng)然也可以用其它數(shù)值,當(dāng)用這 些數(shù)代替20時(shí),掃描線覆蓋的像素著色以前相應(yīng)的計(jì)算結(jié)果就要乘0. 4,0. 8、1. 6,3. 2等, 以保證最終的計(jì)算結(jié)果是正確的。為了節(jié)省成本,如精簡(jiǎn)指令及計(jì)算機(jī)(RISC)處理器一般都不具有浮點(diǎn)處理單元, 在這樣的處理器上做浮點(diǎn)運(yùn)算,或者通過(guò)軟件模擬方式,或者使用定點(diǎn)近似方式,在精度誤 差允許范圍內(nèi),使用定點(diǎn)方式的運(yùn)算速度要快于軟件模擬方式。因此,為了加速處理器的處 理速度,在本發(fā)明實(shí)施例中,處理過(guò)程中涉及到浮點(diǎn)運(yùn)算的部分要用定點(diǎn)方式來(lái)完成,小數(shù) 運(yùn)算均用定點(diǎn)數(shù)來(lái)代替。圖2示出了本發(fā)明實(shí)施例提供的一種在便攜式多媒體設(shè)備上實(shí)現(xiàn)矢量圖像填充 的方法的實(shí)現(xiàn)流程,該方法可以降低便攜式多媒體設(shè)備中CPU資源的耗費(fèi),具體如下步驟201 解析矢量圖形,得到一系列多邊形。這里,由于矢量圖形文件中多邊形 頂點(diǎn)坐標(biāo)的單位為1/20像素,這里解析得到的多邊形坐標(biāo)為1/20像素。步驟202 利用變換參數(shù)以及變換矩陣將每個(gè)多邊形映射到1/2"像素為單位的新 繪圖坐標(biāo)系中,同時(shí)更新繪圖窗口至新坐標(biāo)系中,其中,變換參數(shù)為A,A = 2n/20,η為移位 參數(shù),η取值為自然數(shù)。Flash矢量圖形中,多邊形頂點(diǎn)坐標(biāo)是按32位整數(shù)形式定義的,變換矩陣的旋轉(zhuǎn) 因子和縮放因子是按16. 16的定點(diǎn)數(shù)形式定義的,其平移因子是按32位整數(shù)形式定義的。
Sx Ry Τχ本發(fā)明實(shí)施例中將坐標(biāo)變換矩陣定義為Γ=尺^(guò) Ty
0 0 1其中,SxSx方向縮放因子,SySy方向縮放因子,Rx為χ方向旋轉(zhuǎn)因子,Rjy
XX方向旋轉(zhuǎn)因子,TxSx方向平移因子。變換過(guò)程為y=Ty11_

1
___
_-_
Γν. 1
少 V-
nA S O
XJc
S ηΛ O ___
-
I I
Xl 1 ι___j
7單位坐標(biāo)值,有
χρ-XiΙ. χ,2032yP.少11.6乃一 20_.32 .
上式表明,用1. 6倍的變換坐標(biāo)值除32,就能夠無(wú)誤差的得到像素單位坐標(biāo)值。 1. 6倍的變換坐標(biāo)值可以通過(guò)如下變換得到
1.6&1.6^1.67;X0
=1.6 &1.65^1.67;10011上式表明,可以通過(guò)將變換矩陣的縮放因子、旋轉(zhuǎn)因子、平移因子分別乘以1.6,然 后用乘以1. 6后的矩陣將原始坐標(biāo)進(jìn)行變換,得到所需要的1. 6倍變換坐標(biāo)值。上式還表 明,不必將原始坐標(biāo)值乘1. 6,只需要將變換因子乘1. 6,因此可以減少計(jì)算量。從上述展開后的變換式可以看出,變換過(guò)程是一個(gè)連續(xù)的乘加過(guò)程,要執(zhí)行2次 乘法和3次加法。其中,乘法運(yùn)算是32位整數(shù)與16. 16格式的定點(diǎn)數(shù)乘法,結(jié)果為48. 16 格式的定點(diǎn)數(shù),因?yàn)樽罱K變換結(jié)果是32位整數(shù)坐標(biāo)值,因此要對(duì)乘法結(jié)果進(jìn)行移位處理。 RISC處理器中,兩個(gè)32位數(shù)乘法運(yùn)算的結(jié)果為一個(gè)64位數(shù),分別放在HI和LO寄存器中, HI存放高32位,LO存放低32位,為了得到32位整數(shù)值,需要通過(guò)對(duì)HI和LO寄存器中的 值進(jìn)行移位操作。一般情況下,HI中的高16位是可以舍去的無(wú)效位,LO中的低16位是要 舍去的小數(shù)部分,HI的低16位是32位整數(shù)坐標(biāo)值的高16位,LO的高16位是正數(shù)坐標(biāo)的 低16位。因此,通過(guò)對(duì)HI和LO的以下操作,可以得到32位整數(shù)坐標(biāo)值HI << 16 HI 邏輯左移 16 位LO >> 16 LO 邏輯右移 16 位R = HI I LO HI與LO進(jìn)行位或操作,得到結(jié)果可以看出,要通過(guò)3次位操作,才能得到32位整數(shù)坐標(biāo)值。但在RISC處理器中, 可以通過(guò)用戶自定義,將某些復(fù)雜操作通過(guò)一條指令完成,以上的操作可以使用RISC處理 器的UDI指令udi8 rs, rt,rd,(imm << 3)來(lái)實(shí)現(xiàn)。該UDI指令的操作過(guò)程如下所示rd = {rs [ (31_8*imm)0],rt [31 (31_8*imm+l)]imm = 00,01,10,11,100圖3 中,ABCD 表示寄存器 rs 的內(nèi)容,其中:A = rs[31:24], B = rs[23:16], C = rs [15 8],D = rs [7 0]。EFGH表示寄存器rt 的內(nèi)容,其中E = rt [31 24],F(xiàn) = rt [23 16], G = rt[15:8],H = rt[7:0]。Imm = 00,表示從rs中取出ABCD,按ABCD順序放入寄存器 rd中;imm = 01,表示從rs中取出B⑶,從rt中取出E,按B⑶E順序放入寄存器rd中;imm =10,表示從rs中取出⑶,從rt中取出EF,按⑶EF順序放入寄存器rd中;imm = 11,表示 JArs中取出D,從rt中取出ΕΚ;,按DER;順序放入寄存器rd中;imm = 100,表示從rt中 取出EFGH,按EFGH順序放入寄存器rd中。通過(guò)該指令,將HI作為rs寄存器,LO作為rt 寄存器,指定imm = 10,可以獲取HI寄存器的低16位與LO寄存器的高16位并組合成所需 要的32位整數(shù)結(jié)果。上述計(jì)算,使用該指令的操作為udi8 HI, L0, R, (10) <<3
本發(fā)明實(shí)施利中通過(guò)使用UDI中的單周期指令udi8 rs, rt,rd,(imm << 3),使 原來(lái)需要3條指令才能完成的操作,縮減為1條指令就可完成,節(jié)省了指令數(shù),同時(shí)減少了 指令執(zhí)行的周期數(shù),加快了變換處理過(guò)程。上述計(jì)算過(guò)程中,HI寄存器的高16位有可能也是有效位。這表明,變換后的坐標(biāo) 值太大,已經(jīng)超出了 32位整數(shù)所能表示的范圍,出現(xiàn)了溢出。這種情況下,需要對(duì)溢出進(jìn)行 處理,一般將出現(xiàn)溢出的變換結(jié)果賦值為0x7FFFFFFF(上溢出)或0x80000000 (下溢出)。 結(jié)果是否溢出,可以通過(guò)HI寄存器的高16位是否為有效位進(jìn)行判斷,具體方法為當(dāng)HI 寄存器的最高位為0時(shí),如果其高16位全為0,則沒(méi)有溢出,否則出現(xiàn)溢出,將結(jié)果賦值為 0x7FFFFFFF ;當(dāng)HI寄存器的最高位為1時(shí),如果其高16位全為1,則沒(méi)有溢出,否則出現(xiàn)溢 出,將結(jié)果賦值為0x80000000。在步驟202中,還需要將繪圖窗口更新至新坐標(biāo)系中。圖4a為平移因子沒(méi)有乘變換參數(shù)之前的多邊形與串口的相對(duì)位置,參見(jiàn)圖4b所 示,當(dāng)變換矩陣的平移因子乘1. 6后,多邊形與繪圖窗口的相對(duì)位置就會(huì)發(fā)生變化,將導(dǎo)致 多邊形的裁剪產(chǎn)生誤差。為了消除裁剪誤差,在本發(fā)明實(shí)施例中,將繪圖窗口也作相應(yīng)的更 新,將繪圖窗口的4個(gè)頂點(diǎn)坐標(biāo)轉(zhuǎn)換為1/20像素單位,同時(shí)對(duì)每個(gè)坐標(biāo)用如下矩陣進(jìn)行變 換
1.600
01.60001這樣,用變化了的繪圖窗口對(duì)多邊形裁剪,消除了裁剪誤差。步驟203 獲取新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分。頂點(diǎn)坐標(biāo)變換完成后,多邊形就被映射到繪圖坐標(biāo)系下。多邊形與繪圖窗口的位 置關(guān)系有三種多邊形在繪圖窗口內(nèi)、多邊形與繪圖窗口相交、多邊形在繪圖窗口外。對(duì)于 在繪圖窗口內(nèi)的多邊形,所有邊都是有效的,都是要填充區(qū)域的有效邊界,此時(shí)不需要裁剪 處理;對(duì)于在繪圖窗口外的多邊形,所有的邊都是無(wú)效的,所包圍的區(qū)域不需要填充,此時(shí) 多邊形直接被拋棄,不必進(jìn)行后續(xù)的處理過(guò)程;對(duì)于與繪圖窗口相交的多邊形,有部分在繪 圖窗口外面,這部分是不需要被繪制出的,因此需要針對(duì)繪圖窗口進(jìn)行裁剪,計(jì)算出位于窗 口內(nèi)的部分,以對(duì)窗口內(nèi)的部分進(jìn)行填充。如圖7所示,外包矩形是指包圍多邊形頂點(diǎn)的最小矩形。為了減少不必要的計(jì)算 過(guò)程,本發(fā)明實(shí)施例通過(guò)獲得的多邊形的外包矩形判斷多邊形與繪圖窗口的位置關(guān)系來(lái)決 策是否需要進(jìn)行裁剪處理,如果不需要裁剪,則直接獲取所述多邊形,否則,對(duì)所述多邊形 進(jìn)行裁剪得到位于新繪圖窗口內(nèi)的多邊形的部分。利用所述外包矩形與新繪圖窗口的位置關(guān)系,判斷是否對(duì)所述多邊形進(jìn)行裁剪處 理可以這樣實(shí)現(xiàn)當(dāng)所述外包矩形在所述新繪圖窗口內(nèi)時(shí),則確定不需要裁剪;當(dāng)所述外 包矩形與所述新繪圖窗口部分相交時(shí),確定需要對(duì)所述多邊形進(jìn)行裁剪。獲得多邊形的外包矩形是一個(gè)在頂點(diǎn)的x、y坐標(biāo)中求極值的過(guò)程。外包矩形可以 通過(guò)如下方式獲得(1)獲得多邊形頂點(diǎn)坐標(biāo)的極值,即頂點(diǎn)坐標(biāo)中最大和最小橫坐標(biāo)和縱坐標(biāo);Xmin = MIN(Xi)
Ymin = MIN(Yi)Xmax = MAX(Xi)ymax = MAX(Yi), i = 0, ...,N其中,Xi^yi為多邊形頂點(diǎn)坐標(biāo),N為多邊形的頂點(diǎn)數(shù)量;(2)由(xfflin, yfflin)、(xfflax, yfflax)界定外包矩形。外包矩形確定后,通過(guò)該矩形與繪圖窗口矩形的布爾運(yùn)算,即可獲得多邊形與繪 圖窗口的位置關(guān)系。位置關(guān)系如圖5所示,圖5a中,外包矩形與繪圖窗口不相交,圖5b中 外包矩形與繪圖窗口相交,圖5c中外包矩形在繪圖窗口內(nèi)。對(duì)于外包矩形與繪圖窗口不相 交的情況,退出處理過(guò)程;對(duì)于外包矩形與繪圖窗口相交的情況,需要進(jìn)行多邊形裁剪;對(duì) 于外包矩形在繪圖窗口內(nèi)的情況,此時(shí)可以跳過(guò)裁剪過(guò)程,直接進(jìn)行掃描轉(zhuǎn)換。處理過(guò)程中,對(duì)多邊形的裁剪和掃描轉(zhuǎn)換過(guò)程都需要計(jì)算邊的斜率,都需要除法 運(yùn)算。為了減少除法運(yùn)算量,對(duì)多邊形的邊計(jì)算一次斜率,即可滿足裁剪和掃描轉(zhuǎn)換時(shí)的使 用。因此,在進(jìn)行裁剪和掃描轉(zhuǎn)換之前,首先進(jìn)行多邊形邊的斜率計(jì)算。為了滿足應(yīng)用要求, 計(jì)算出的斜率處理成16. 16格式的定點(diǎn)數(shù)。計(jì)算斜率時(shí),填充如表1所示的數(shù)據(jù)結(jié)構(gòu) 表1從變換后的坐標(biāo)中,取一條邊的兩個(gè)頂點(diǎn)坐標(biāo)(Xl,Yl)和(x2,y2),然后計(jì)算斜率 Slopex,計(jì)算方法為
f-y-mX ^ X1Slopex =———-
少2 —少1同時(shí)將Slopex處理成16. 16格式的定點(diǎn)數(shù)。當(dāng)為水平邊時(shí),無(wú)法計(jì)算出Slopex, 但由于水平邊在掃描轉(zhuǎn)換過(guò)程中對(duì)生成掃描段沒(méi)有貢獻(xiàn),可以在掃描轉(zhuǎn)換時(shí)剔除,因此將 Slopex賦為某一固定值如0x7FFFFFFF,表明該Slopex無(wú)意義,計(jì)算時(shí)不會(huì)被使用到。最后, 各個(gè)值寫入數(shù)據(jù)結(jié)構(gòu)中以便后面的處理過(guò)程使用。多邊形的裁剪過(guò)程可以按照頂點(diǎn)順序,依次獲取每條邊的數(shù)據(jù)結(jié)構(gòu)Edge,然后通 過(guò)裁剪算法,依次對(duì)多邊形的每條邊與繪圖窗口進(jìn)行裁剪,裁剪后得到新的頂點(diǎn)坐標(biāo)。如圖 6所示,當(dāng)邊完全在繪圖窗口內(nèi)時(shí),裁剪后邊的端點(diǎn)坐標(biāo)保持不變,同時(shí)Slopex保持不變。當(dāng) 邊與繪圖窗口的邊界有1個(gè)或2個(gè)交點(diǎn)時(shí),裁剪后用計(jì)算出的交點(diǎn)對(duì)應(yīng)更新(Xl,yi)或(x2, y2),更新規(guī)則如圖6所示,圖6a中交點(diǎn)Pl代替(x2,y2),圖6b中交點(diǎn)Pl代替(xl,yl),圖 6c中交點(diǎn)Pl代替(xl, yl),交點(diǎn)P2代替(x2, y2)。同時(shí)Slopex保持不變。裁剪算法中,需要使用邊的斜率Slopex,當(dāng)使用Slopex時(shí),直接從數(shù)據(jù)結(jié)構(gòu)中獲 取。裁剪過(guò)程執(zhí)行完成后,每條邊的Edge數(shù)據(jù)被更新,多邊形的所有邊都處在了繪圖窗口 內(nèi)。步驟204:將所述新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分轉(zhuǎn)換為一組掃描段。對(duì)已經(jīng)完全處在新繪圖窗口內(nèi)的多邊形,接下來(lái)要進(jìn)行的是掃描轉(zhuǎn)換過(guò)程,將多 邊形轉(zhuǎn)換為一組掃描線上的掃描段。掃描線是繪圖窗口內(nèi)的一條貫穿窗口的水平線,一個(gè) 繪圖窗口共有H條掃描線,H是以像素為單位的繪圖窗口高度。掃描段是指掃描線位于多邊形內(nèi)部的部分,H條掃描線上的掃描段完全覆蓋了多邊形,這樣,通過(guò)對(duì)這些掃描段的著 色,就完成了對(duì)多邊形的著色。掃描轉(zhuǎn)換過(guò)程中,從Edge中獲取邊數(shù)據(jù),依次求出與當(dāng)前掃描線相交的邊,并計(jì) 算出這些邊與掃描線的交點(diǎn),計(jì)算交點(diǎn)的方法為ix = Xl+Slopex (Iy-Y1)其中,ix為掃描線與邊的交點(diǎn)χ坐標(biāo)值,iy為掃描線的y坐標(biāo)。由于水平邊對(duì)生 成掃描段沒(méi)有貢獻(xiàn),因此,如果從Edge中獲取的是水平邊,那么跳過(guò)對(duì)該邊執(zhí)行的掃描轉(zhuǎn) 換過(guò)程。掃描轉(zhuǎn)換的計(jì)算過(guò)程如圖8所示。計(jì)算完成后,對(duì)得到的2m+2個(gè)交點(diǎn)χ坐標(biāo),其中m為非負(fù)整數(shù),按照χ大小順序排 序,并將數(shù)據(jù)寫入如表2所示的數(shù)據(jù)結(jié)構(gòu)中 表2這樣,就能保證諸如0〗、Z12Y"+1這樣的由交點(diǎn)界定的掃描段覆蓋多邊形的內(nèi)部, 而象〖冗、這樣的掃描段覆蓋多邊形的外部,即由偶_奇序號(hào)交點(diǎn)界定的掃描段覆蓋 多邊形內(nèi)部,奇_偶序號(hào)交點(diǎn)界定的掃描段覆蓋多邊形外部。同時(shí),對(duì)偶_奇序號(hào)交點(diǎn)界定 的掃描段進(jìn)行著色,就能保證正確填充多邊形內(nèi)部區(qū)域。對(duì)所有的掃描線執(zhí)行這個(gè)過(guò)程,完 成多邊形的掃描轉(zhuǎn)換過(guò)程。值得注意的是,目前所有的坐標(biāo)數(shù)據(jù)都是以1/20像素為單位的,計(jì)算交點(diǎn)時(shí),掃 描線y坐標(biāo)也要轉(zhuǎn)換為1/20像素為單位,如果掃描線y坐標(biāo)為y ‘,那么轉(zhuǎn)換后的掃描線y 坐標(biāo)iy = 20y'。為了加快新繪圖窗口內(nèi)進(jìn)行掃描轉(zhuǎn)換的過(guò)程,本發(fā)明的一個(gè)優(yōu)選實(shí)施例 是只對(duì)掃描線縱坐標(biāo)是2n的整數(shù)倍的掃描線進(jìn)行掃描。該實(shí)施例按如下方式執(zhí)行建立一個(gè)掃描段鏈表;當(dāng)新繪圖窗口內(nèi)的掃描線縱坐標(biāo)為2"的整數(shù)倍時(shí),求與該掃描線對(duì)應(yīng)的掃描段, 所述掃描段為掃描線與新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分的公共部分。將所述掃描段的參數(shù)添加到所述掃描段鏈表中。在本實(shí)施例中,需要將掃棉線與新坐標(biāo)系中多邊形區(qū)域在新繪圖窗口內(nèi)部的部分 的公共線段的參數(shù)加入到所述掃描段鏈表中。所述參數(shù)可以包括下述組合中任何一個(gè)組合 的參數(shù),掃描線的縱坐標(biāo)iy,掃描段一個(gè)端點(diǎn)的橫坐標(biāo)^以及掃描段另一端點(diǎn)的橫坐標(biāo)《的 組合;或者掃描線的縱坐標(biāo)iy,掃描段的兩個(gè)端點(diǎn)中橫坐標(biāo)較小端點(diǎn)的橫坐標(biāo)^以及掃描段 長(zhǎng)度width的組合;或者掃描線的縱坐標(biāo)iy,掃描段的兩個(gè)端點(diǎn)中橫坐標(biāo)較大端點(diǎn)的橫坐 標(biāo)〈以及掃描段的長(zhǎng)度width的組合。本發(fā)明實(shí)施例使用的參數(shù)包括第一組參數(shù),即掃描線 的縱坐標(biāo)iy,掃描段一個(gè)端點(diǎn)的橫坐標(biāo)^以及掃描段一個(gè)端點(diǎn)的橫坐標(biāo)《。步驟205 將所述掃描段坐標(biāo)的原碼右移η位,并對(duì)移位后的掃描段上的像素著 色。完成掃描轉(zhuǎn)換過(guò)程后,從ScanLine數(shù)據(jù)結(jié)構(gòu)中依次獲取掃描段i〗mi〗m+1,其中m為 不大于η的非負(fù)整數(shù),將每一個(gè)掃描段覆蓋的像素著色,就完成了對(duì)多邊形的填充。
其中,所述變換矩陣為『=
Sx為X方向縮放因子,Sy為y方向縮放
因子,Rx為χ方向旋轉(zhuǎn)因子,Ry為y方向旋轉(zhuǎn)因子,Tx為χ方向平移因子,(χ,y)為原始坐 標(biāo),(χ',y')為變換后的坐標(biāo)。所述映射單元還可以采用UDI中的單周期指令實(shí)現(xiàn)利用變換參數(shù)以及變換矩陣 將多邊形映射到l/2n為單位的新繪圖坐標(biāo)系。本發(fā)明實(shí)施利中通過(guò)使用UDI中的單周期 指令udi8 rs,rt,rd, (imm<< 3),使原來(lái)需要3條指令才能完成的操作,縮減為1條指令 就可完成,節(jié)省了指令數(shù),同時(shí)減少了指令執(zhí)行的周期數(shù),加快了變換處理過(guò)程。該裝置還可以進(jìn)一步包括斜率計(jì)算單元,根據(jù)新坐標(biāo)系中多邊形的頂點(diǎn)坐標(biāo),計(jì)算多變形每條邊的斜率;存儲(chǔ)單元,用于存儲(chǔ)多邊形每條邊的斜率以提供裁剪和掃描轉(zhuǎn)換過(guò)程所使用。所述多邊形獲取單元93包括外包矩形獲取單元,用于獲取所述多邊形的外包矩形;第一獲取單元,利用所述外包矩形與新繪圖窗口的位置關(guān)系,判斷是否對(duì)所述多 邊形進(jìn)行裁剪處理,如果不需要裁剪,則直接獲取所述多邊形,否則,對(duì)所述多邊形進(jìn)行裁 剪得到位于新繪圖窗口內(nèi)的多邊形的部分。圖9示意出了本發(fā)明實(shí)施例提供的一種實(shí)現(xiàn)矢量圖形填充的裝置結(jié)構(gòu)示意圖,為 了便于說(shuō)明,僅示意出了與本發(fā)明實(shí)施例相關(guān)的部分,本裝置可以集成在多媒體播放終端 內(nèi),例如移動(dòng)電話,個(gè)人數(shù)字助理(PDA)、MP4、GPS導(dǎo)航器等,實(shí)現(xiàn)FLASH動(dòng)畫文件,GPS圖像 等以矢量構(gòu)成的多媒體數(shù)據(jù)的播放。參見(jiàn)圖9所示,本發(fā)明實(shí)施例的一種降低在矢量圖形填充過(guò)程中對(duì)CPU耗費(fèi)的裝 置包括解析單元91、映射單元92、多邊形獲取單元93、掃描轉(zhuǎn)換單元94、移位單元95以及 像素著色單元96。其中,解析單元91,用于解析所述矢量圖形,得到一系列多邊形;映射單元92,用于利用乘以變換參數(shù)的變換矩陣將多邊形映射到以1/2"像素為單 位的新繪圖坐標(biāo)系中,同時(shí)更新原繪圖窗口至新坐標(biāo)系中,其中,變換參數(shù)為A,A = 2720, η為移位參數(shù),η取值為自然數(shù);多邊形獲取單元93,用于獲取新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分;掃描轉(zhuǎn)換單元94,用于將所述新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分轉(zhuǎn)換為一 組掃描段;移位單元95,用于將所述掃描段坐標(biāo)的原碼右移η位;像素著色單元96,用于對(duì)移位后的掃描段上的像素著色。所述映射單元91可以通過(guò)如下公式利用變換參數(shù)以及變換矩陣將多邊形映射到 1/2η像素為單位的新繪圖坐標(biāo)系中,

y=ATy11
所述第一獲取單元,用于當(dāng)所述外包矩形在所述新繪圖窗口內(nèi)時(shí),則確定不需要 裁剪;當(dāng)所述外包矩形與所述新繪圖窗口部分相交時(shí),確定需要對(duì)所述多邊形進(jìn)行裁剪。所述第一獲取單元,用于依次獲取每條邊的數(shù)據(jù)結(jié)構(gòu),利用裁剪算法對(duì)相應(yīng)多邊 形的邊與繪圖窗口進(jìn)行裁剪,當(dāng)多邊形的邊完全在新繪圖窗口內(nèi)時(shí),裁剪后邊的端點(diǎn)坐標(biāo) 保持不變,當(dāng)多邊形的邊與新繪圖窗口有交點(diǎn)時(shí),裁剪后計(jì)算出交點(diǎn)坐標(biāo),更新所述數(shù)據(jù)結(jié) 構(gòu)中的坐標(biāo)值。所述外包矩形獲取單元93用于獲得多邊形頂點(diǎn)坐標(biāo)的極值,并由頂點(diǎn)坐標(biāo)中最 大和最小橫坐標(biāo)和縱坐標(biāo)界定外包矩形。所述掃描轉(zhuǎn)換單元用于當(dāng)新繪圖窗口內(nèi)的掃描線縱坐標(biāo)為2n的整數(shù)倍時(shí),獲得與 該掃描線對(duì)應(yīng)的掃描段,所述掃描段為掃描線與新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分 的公共部分。所述掃描轉(zhuǎn)換單元當(dāng)新繪圖窗口內(nèi)的掃描線縱坐標(biāo)為2n的整數(shù)倍時(shí),獲得與該掃 描線對(duì)應(yīng)的掃描段的具體過(guò)程可以這樣實(shí)現(xiàn)建立一個(gè)掃描段鏈表;當(dāng)新繪圖窗口內(nèi)的掃描線縱坐標(biāo)為2"的整數(shù)倍時(shí),求與該掃描線對(duì)應(yīng)的掃描段, 所述掃描段為掃描線與新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分的公共部分。將所述掃描段的參數(shù)添加到所述掃描段鏈表中。在本實(shí)施例中,需要將掃棉線與新坐標(biāo)系中多邊形區(qū)域在新繪圖窗口內(nèi)部的部分 的公共線段的參數(shù)加入到所述掃描段鏈表中。所述參數(shù)可以包括下述組合中任何一個(gè)組合 的參數(shù),掃描線的縱坐標(biāo)iy,掃描段一個(gè)端點(diǎn)的橫坐標(biāo)〈以及掃描段另一端點(diǎn)的橫坐標(biāo)《的 組合;或者掃描線的縱坐標(biāo)iy,掃描段的兩個(gè)端點(diǎn)中橫坐標(biāo)較小端點(diǎn)的橫坐標(biāo)^以及掃描段 長(zhǎng)度width的組合;或者掃描線的縱坐標(biāo)iy,掃描段的兩個(gè)端點(diǎn)中橫坐標(biāo)較大端點(diǎn)的橫坐 標(biāo)《以及掃描段的長(zhǎng)度width的組合。本發(fā)明實(shí)施例使用的參數(shù)包括第一組參數(shù),即掃描線 的縱坐標(biāo)iy,掃描段一個(gè)端點(diǎn)的橫坐標(biāo)^以及掃描段一個(gè)端點(diǎn)的橫坐標(biāo)ζ。本發(fā)明實(shí)施例中,在將掃描線覆蓋的像素著色時(shí),采用將坐標(biāo)值移位的方式代替 除法運(yùn)算,同時(shí)將產(chǎn)生的多邊形裁減誤差轉(zhuǎn)移到著色以前的計(jì)算過(guò)程中,在保證結(jié)果正確 的前提下,減少了除法運(yùn)算。本發(fā)明實(shí)施例充分考慮了 RISC處理器的特點(diǎn)及flash多邊形處理過(guò)程的特點(diǎn)和 計(jì)算關(guān)聯(lián)性,能較好的加速flash多邊形處理過(guò)程。Flash中的多邊形頂點(diǎn)坐標(biāo)是以1/20 像素單位定義的,在掃描轉(zhuǎn)換完成后,將掃描段著色時(shí),需要將坐標(biāo)值除20,轉(zhuǎn)換為以像素 為單位。這里,將除20運(yùn)算用右移η位代替,同時(shí)將誤差乘到變換矩陣中,這樣在保證結(jié)果 正確的前提下,減少了除法運(yùn)算。本發(fā)明實(shí)施利中通過(guò)使用特定UDI指令,將變換中定點(diǎn)數(shù)乘法運(yùn)算結(jié)果快速的轉(zhuǎn) 換為所需的整數(shù)結(jié)果,減少了變換所需指令數(shù),加快了坐標(biāo)變換處理過(guò)程。本發(fā)明實(shí)施例中通過(guò)定義多邊形的外包矩形,并計(jì)算多邊形的外包矩形與繪圖窗 口的相對(duì)位置,以決策多邊形是否需要裁剪,同時(shí)對(duì)需要裁剪的多邊形才進(jìn)行裁剪處理,減 少了不必要的計(jì)算。由于多邊形裁剪和掃描轉(zhuǎn)換處理過(guò)程中,都需要計(jì)算邊的斜率。在本 發(fā)明實(shí)施例中,通過(guò)在裁剪和掃描轉(zhuǎn)換處理之前,預(yù)先計(jì)算出邊的斜率,在裁剪和掃描轉(zhuǎn)換 過(guò)程中重復(fù)使用,減少了斜率計(jì)算次數(shù),同時(shí)減少了除法運(yùn)算。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
一種降低在矢量圖形填充過(guò)程中對(duì)CPU資源耗費(fèi)的方法,其特征在于,該方法包括以下步驟解析所述矢量圖形,得到一系列多邊形;利用變換參數(shù)以及變換矩陣將多邊形映射到以1/2n像素為單位的新繪圖坐標(biāo)系中,同時(shí)更新原繪圖窗口至新坐標(biāo)系中,其中,變換參數(shù)為A,A=2n/20,n為移位參數(shù),n取值為自然數(shù);獲取新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分;將所述新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分轉(zhuǎn)換為一組掃描段;將所述掃描段坐標(biāo)的原碼右移n位,并對(duì)移位后的掃描段上的像素著色。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,通過(guò)如下公式利用變換參數(shù)以及變換矩 陣將多邊形映射到1/2η像素為單位的新繪圖坐標(biāo)系中, SxSx方向縮放因子,SySy方向縮放因子, 其中,所述變換矩陣為T =Rx為X方向旋轉(zhuǎn)因子,Ry為y方向旋轉(zhuǎn)因子,Tx為χ方向平移因子,(x,y)為原始坐標(biāo),(χ', y')為變換后的坐標(biāo)。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述利用變換參數(shù)以及變換矩陣將多 邊形映射到l/2n為單位的新繪圖坐標(biāo)系采用用戶定義指令UDI中的單周期指令實(shí)現(xiàn)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取新坐標(biāo)系中多邊形在新繪圖窗 口內(nèi)的部分步驟之前,進(jìn)一步包括根據(jù)新坐標(biāo)系中多邊形的頂點(diǎn)坐標(biāo),計(jì)算并存儲(chǔ)多變形每條邊的斜率,所述存儲(chǔ)的多 邊形每條邊的斜率用于提供裁剪和掃描轉(zhuǎn)換過(guò)程所使用。
5.根據(jù)權(quán)利要求1或4的方法,其特征在于,所述獲取新坐標(biāo)系中多邊形在新繪圖窗口 內(nèi)的部分的步驟包括獲取所述多邊形的外包矩形;利用所述外包矩形與新繪圖窗口的位置關(guān)系,判斷是否對(duì)所述多邊形進(jìn)行裁剪處理, 如果不需要裁剪,則直接獲取所述多邊形,否則,對(duì)所述多邊形進(jìn)行裁剪得到位于新繪圖窗 口內(nèi)的多邊形的部分。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,利用所述外包矩形與新繪圖窗口的位置 關(guān)系,判斷是否對(duì)所述多邊形進(jìn)行裁剪處理,包括當(dāng)所述外包矩形在所述新繪圖窗口內(nèi)時(shí),則確定不需要裁剪;當(dāng)所述外包矩形與所述 新繪圖窗口部分相交時(shí),確定需要對(duì)所述多邊形進(jìn)行裁剪。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述對(duì)所述多邊形進(jìn)行裁剪包括依次獲取每條邊的數(shù)據(jù)結(jié)構(gòu),利用裁剪算法對(duì)相應(yīng)多邊形的邊與繪圖窗口進(jìn)行裁剪, 當(dāng)多邊形的邊完全在新繪圖窗口內(nèi)時(shí),裁剪后邊的端點(diǎn)坐標(biāo)保持不變,當(dāng)多邊形的邊與新繪圖窗口有交點(diǎn)時(shí),裁剪后計(jì)算出交點(diǎn)坐標(biāo),更新所述數(shù)據(jù)結(jié)構(gòu)中的坐標(biāo)值。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述獲取外包矩形的步驟包括 獲得多邊形頂點(diǎn)坐標(biāo)的極值,由頂點(diǎn)坐標(biāo)中最大和最小橫坐標(biāo)和縱坐標(biāo)界定外包矩形。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將新坐標(biāo)系中所變形在新繪圖窗口 內(nèi)的部分轉(zhuǎn)換為一組掃描段的步驟包括當(dāng)新繪圖窗口內(nèi)的掃描線縱坐標(biāo)為2n的整數(shù)倍時(shí),獲得與該掃描線對(duì)應(yīng)的掃描段,所 述掃描段為掃描線與新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分的公共部分。
10.一種降低在矢量圖形填充過(guò)程中對(duì)CPU資源耗費(fèi)的裝置,其特征在于,該裝置包括解析單元,用于解析所述矢量圖形,得到一系列多邊形;映射單元,用于利用乘以變換參數(shù)的變換矩陣將多邊形映射到以1/2"像素為單位的新 繪圖坐標(biāo)系中,同時(shí)更新原繪圖窗口至新坐標(biāo)系中,其中,變換參數(shù)為A,A = 2720,η為移 位參數(shù),η取值為自然數(shù);多邊形獲取單元,用于獲取新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分; 掃描轉(zhuǎn)換單元,用于將所述新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分轉(zhuǎn)換為一組掃描段;移位單元,用于將所述掃描段坐標(biāo)的原碼右移η位; 像素著色單元,用于對(duì)移位后的掃描段上的像素著色。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述映射單元通過(guò)如下公式利用變換 參數(shù)以及變換矩陣將多邊形映射到1/2η像素為單位的新繪圖坐標(biāo)系中, SxSx方向縮放因子,SySy方向縮放因子, 其中,所述變換矩陣為 Rx為χ方向旋轉(zhuǎn)因子,Ry為y方向旋轉(zhuǎn)因子,Tx為χ方向平移因子,(x,y)為原始坐標(biāo),(χ', y')為變換后的坐標(biāo)。
12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述映射單元利用變換參數(shù)以及變換 矩陣將多邊形映射到l/2n為單位的新繪圖坐標(biāo)系采用用戶定義指令UDI中的單周期指令 實(shí)現(xiàn)。
13.根據(jù)權(quán)利要求10所述的裝置,其特征在于,該裝置進(jìn)一步包括斜率計(jì)算單元,根據(jù)新坐標(biāo)系中多邊形的頂點(diǎn)坐標(biāo),計(jì)算多變形每條邊的斜率; 存儲(chǔ)單元,用于存儲(chǔ)多邊形每條邊的斜率以提供裁剪和掃描轉(zhuǎn)換過(guò)程所使用。
14.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述多邊形獲取單元包括 外包矩形獲取單元,用于獲取所述多邊形的外包矩形;第一獲取單元,利用所述外包矩形與新繪圖窗口的位置關(guān)系,判斷是否對(duì)所述多邊形進(jìn)行裁剪處理,如果不需要裁剪,則直接獲取所述多邊形,否則,對(duì)所述多邊形進(jìn)行裁剪得 到位于新繪圖窗口內(nèi)的多邊形的部分。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述第一獲取單元,用于當(dāng)所述外包矩 形在所述新繪圖窗口內(nèi)時(shí),則確定不需要裁剪;當(dāng)所述外包矩形與所述新繪圖窗口部分相 交時(shí),確定需要對(duì)所述多邊形進(jìn)行裁剪。
16.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述第一獲取單元,用于依次獲取每條 邊的數(shù)據(jù)結(jié)構(gòu),利用裁剪算法對(duì)相應(yīng)多邊形的邊與繪圖窗口進(jìn)行裁剪,當(dāng)多邊形的邊完全 在新繪圖窗口內(nèi)時(shí),裁剪后邊的端點(diǎn)坐標(biāo)保持不變,當(dāng)多邊形的邊與新繪圖窗口有交點(diǎn)時(shí), 裁剪后計(jì)算出交點(diǎn)坐標(biāo),更新所述數(shù)據(jù)結(jié)構(gòu)中的坐標(biāo)值。
17.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述外包矩形獲取單元,用于獲得多邊 形頂點(diǎn)坐標(biāo)的極值,并由頂點(diǎn)坐標(biāo)中最大和最小橫坐標(biāo)和縱坐標(biāo)界定外包矩形。
18.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述掃描轉(zhuǎn)換單元,用于當(dāng)新繪圖窗口 內(nèi)的掃描線縱坐標(biāo)為2n的整數(shù)倍時(shí),獲得與該掃描線對(duì)應(yīng)的掃描段,所述掃描段為掃描線 與新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分的公共部分。
全文摘要
本發(fā)明公開了一種降低在矢量圖形填充過(guò)程中對(duì)CPU耗費(fèi)的方法及裝置,該方法包括解析所述矢量圖形,得到一系列多邊形;利用變換參數(shù)以及變換矩陣將多邊形映射到1/2n像素為單位的新繪圖坐標(biāo)系中,同時(shí)更新繪圖窗口至新坐標(biāo)系中,其中,變換參數(shù)為A,A=2n/20,n為移位參數(shù),n取值為自然數(shù);獲取新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分;將所述新坐標(biāo)系中多邊形在新繪圖窗口內(nèi)的部分轉(zhuǎn)換為一組掃描段;將所述掃描段坐標(biāo)的原碼右移n位,并對(duì)移位后的掃描段上的像素著色。本發(fā)明實(shí)施例中,在將掃描線覆蓋的像素著色時(shí),采用將坐標(biāo)值移位的方式代替除法運(yùn)算,同時(shí)將產(chǎn)生的多邊形裁減誤差轉(zhuǎn)移到著色以前的計(jì)算過(guò)程中,在保證結(jié)果正確的前提下,減少了除法運(yùn)算,從而減少對(duì)CPU資源的占用。
文檔編號(hào)G06T1/00GK101923699SQ200910203728
公開日2010年12月22日 申請(qǐng)日期2009年6月10日 優(yōu)先權(quán)日2009年6月10日
發(fā)明者白云波, 馬晨光 申請(qǐng)人:炬力集成電路設(shè)計(jì)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
瓦房店市| 渑池县| 正蓝旗| 晋宁县| 无为县| 巴马| 滕州市| 咸宁市| 顺平县| 荃湾区| 太仓市| 东台市| 买车| 焉耆| 竹山县| 南川市| 中山市| 红安县| 吉林市| 上栗县| 文昌市| 长兴县| 甘泉县| 双城市| 通海县| 星座| 永州市| 安宁市| 枞阳县| 昆山市| 武胜县| 遂溪县| 巴马| 安化县| 页游| 永清县| 黑河市| 合山市| 琼海市| 营口市| 彰化县|