計(jì)算機(jī)圖像處理中對(duì)矢量化圖形進(jìn)行數(shù)據(jù)壓縮的方法及裝置制造方法
【專利摘要】本發(fā)明涉及圖像壓縮技術(shù),特別涉及一種計(jì)算機(jī)圖像處理中對(duì)矢量化圖形進(jìn)行數(shù)據(jù)壓縮的方法及裝置。該方法為:以掃描線為單位對(duì)三角形數(shù)據(jù)進(jìn)行壓縮,即針對(duì)每一條掃描線切分得到的所有圖元在相應(yīng)掃描線上的頂點(diǎn)的縱坐標(biāo)均相同的特點(diǎn),首先存儲(chǔ)了每條掃描線切分得到的圖元的數(shù)目和每條掃描線的縱坐標(biāo),然后以每個(gè)圖元在相應(yīng)掃描線上的某一頂點(diǎn)為基準(zhǔn)點(diǎn),根據(jù)每一個(gè)圖元的基準(zhǔn)點(diǎn)的坐標(biāo),依次存儲(chǔ)相應(yīng)圖元各頂點(diǎn)的坐標(biāo)值和基準(zhǔn)點(diǎn)坐標(biāo)值的差值,這樣,便在提高了三角形數(shù)據(jù)的壓縮率的同時(shí),也降低了壓縮計(jì)算量,從而節(jié)省了系統(tǒng)性能開(kāi)銷。
【專利說(shuō)明】計(jì)算機(jī)圖像處理中對(duì)矢量化圖形進(jìn)行數(shù)據(jù)壓縮的方法及裝
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像壓縮技術(shù),特別涉及一種計(jì)算機(jī)圖像處理中對(duì)矢量化圖形進(jìn)行數(shù)據(jù)壓縮的方法及裝置。
【背景技術(shù)】
[0002]依在計(jì)算機(jī)中的存儲(chǔ)和表示的區(qū)別,圖形被分為矢量圖和位圖兩種。矢量圖,在計(jì)算機(jī)里存儲(chǔ)的是繪圖的數(shù)學(xué)算法;位圖,在計(jì)算機(jī)里存儲(chǔ)的是像素的位置信息和顏色信息以及灰度信息。
[0003]目前,計(jì)算機(jī)圖形處理器在繪制矢量圖時(shí),一般是由位圖仿圖繪制出來(lái)。仿制的過(guò)程中,首先提取位圖的輪廓,然后將圖的輪廓進(jìn)行三角剖分,剖分為一組三角形的組合。如果圖輪廓本身是多邊形,則直接對(duì)該多邊形進(jìn)行三角剖分,如果圖輪廓有曲邊,以一個(gè)圓為例,則首先將這個(gè)圓轉(zhuǎn)換成一個(gè)近似的多邊形,再對(duì)這個(gè)多邊形進(jìn)行三角剖分。若要使轉(zhuǎn)換后的多邊形越接近這個(gè)圓,則要求多邊形的邊的數(shù)量越多,多邊形的邊無(wú)限多時(shí),則該多邊形無(wú)限逼近這個(gè)圓。對(duì)于復(fù)雜的圖輪廓,在三角剖分后,將產(chǎn)生非常龐大的三角形集合。
[0004]在對(duì)多邊形進(jìn)行三角剖分時(shí),有很多不同的方法,目前計(jì)算機(jī)中常用的一種方法是利用一組平行于X軸的掃描線對(duì)多邊形進(jìn)行剖分,該組掃描線剛好覆蓋了多邊形的所有頂點(diǎn),該方法分得的圖元有:梯形,正三角形和倒三角形三種,如圖1所示,其中,方形可以作為特殊的梯形。梯形在后續(xù)處理中還將進(jìn)一步分成兩個(gè)三角形。
[0005]在對(duì)多邊形進(jìn)行三角剖分后要進(jìn)行編碼存儲(chǔ)。目前,一般采用差分編碼對(duì)三角剖分后的圖元進(jìn)行編碼。以一個(gè)梯形為例,有一種編碼存儲(chǔ)方法是,存儲(chǔ)第一個(gè)頂點(diǎn)坐標(biāo)值為(xl、yl),然后存儲(chǔ)第二個(gè)點(diǎn)的坐標(biāo)值與第一個(gè)點(diǎn)的坐標(biāo)值的差值〔(x2-xl)、(y2-yl)〕,與此類似,存儲(chǔ)的第三個(gè)點(diǎn)的信息為〔(x3-x2)、(y3-y2)〕,存儲(chǔ)的第四個(gè)點(diǎn)的信息為〔(x4_x3)、(y4_y3)〕。
[0006]當(dāng)圖形輪廓復(fù)雜,圖元數(shù)量非常龐大時(shí),如何做到保證編碼精度又盡量減少編碼后的數(shù)據(jù)量,以在存儲(chǔ)編碼數(shù)據(jù)時(shí)減少占用編碼設(shè)備寶貴的內(nèi)存空間,成為了研究的一個(gè)執(zhí)占。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供一種對(duì)矢量化圖形進(jìn)行數(shù)據(jù)壓縮的方法及裝置,用以提高數(shù)據(jù)的壓縮率,節(jié)省壓縮計(jì)算量。
[0008]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0009]一種計(jì)算機(jī)圖像處理中對(duì)矢量化圖形進(jìn)行數(shù)據(jù)壓縮的方法,包括:
[0010]采用掃描線將待處理的矢量圖形切分為若干圖元;
[0011]分別確定每一條掃描線切分獲得的圖元,記錄每一條掃描線的縱坐標(biāo),并確認(rèn)任意一圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),與該掃描線具有相同縱坐標(biāo);[0012]分別根據(jù)每一個(gè)圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),確定相應(yīng)圖元的基準(zhǔn)點(diǎn);
[0013]分別基于每一個(gè)圖元的基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄相應(yīng)圖元各頂點(diǎn)的坐標(biāo)。
[0014]一種計(jì)算機(jī)圖像處理中對(duì)矢量化圖形進(jìn)行數(shù)據(jù)壓縮的裝置,包括:
[0015]切分單元,用于采用掃描線將待處理的矢量圖形切分為若干圖元;
[0016]第一處理單元,用于分別確定每一條掃描線切分獲得的圖元,記錄每一條掃描線的縱坐標(biāo),并確認(rèn)任意一圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),與該掃描線具有相同縱坐標(biāo);
[0017]第二處理單元,用于分別根據(jù)每一個(gè)圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),確定相應(yīng)圖元的基準(zhǔn)點(diǎn),并分別基于每一個(gè)圖元的基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄相應(yīng)圖元各頂點(diǎn)的坐標(biāo)。
[0018]本發(fā)明實(shí)施例中,根據(jù)有序活動(dòng)邊表三角化方法所切分的三角形的特點(diǎn),在壓縮算法上采用了改進(jìn)的差分壓縮算法,以掃描線為單位對(duì)數(shù)據(jù)進(jìn)行壓縮,即針對(duì)每一條掃描線切分得到的所有圖元在相應(yīng)掃描線上的頂點(diǎn)的縱坐標(biāo)均相同的特點(diǎn),首先存儲(chǔ)了每條掃描線切分得到的圖元的數(shù)目和每條掃描線的縱坐標(biāo),然后以每個(gè)圖元在相應(yīng)掃描線上的某一頂點(diǎn)為基準(zhǔn)點(diǎn),根據(jù)每一個(gè)圖元的基準(zhǔn)點(diǎn)的坐標(biāo),依次存儲(chǔ)相應(yīng)圖元各頂點(diǎn)的坐標(biāo)值和基準(zhǔn)點(diǎn)坐標(biāo)值的差值,較佳的,所有坐標(biāo)值均以定點(diǎn)數(shù)11.5的格式存儲(chǔ),這樣,便優(yōu)化地完成了數(shù)據(jù)的壓縮操作,節(jié)省了針對(duì)同樣的圖形多次做壓縮所帶來(lái)的計(jì)算性能上的開(kāi)銷,同時(shí)提高了數(shù)據(jù)的壓縮率,在提高編碼效率的同時(shí),減少了對(duì)計(jì)算機(jī)系統(tǒng)的存儲(chǔ)空間的占用。特別是在圖元數(shù)量非常龐大的時(shí)候,這種方法可比現(xiàn)有技術(shù)節(jié)省20%-30%的內(nèi)存空間,也更適合用于存儲(chǔ)空間比較有限的嵌入式計(jì)算機(jī)系統(tǒng)中。
【專利附圖】
【附圖說(shuō)明】
[0019]圖1為現(xiàn)有技術(shù)下采用掃描線分割多邊形的示意圖;
[0020]圖2A為本發(fā)明實(shí)施例中圖形壓縮裝置功能結(jié)構(gòu)示意圖;
[0021]圖2B為本發(fā)明實(shí)施例中矢量圖形三角化示意圖;
[0022]圖3為本發(fā)明實(shí)施例中對(duì)矢量化圖形進(jìn)行三角化數(shù)據(jù)壓縮流程圖。
【具體實(shí)施方式】
[0023]在對(duì)矢量化圖形進(jìn)行處理的過(guò)程中,為了提高矢量化圖像轉(zhuǎn)換后的數(shù)據(jù)的壓縮率,節(jié)省壓縮計(jì)算量,本發(fā)明實(shí)施例中,對(duì)差分編碼技術(shù)進(jìn)行了優(yōu)化,從而重新設(shè)計(jì)出一種壓縮算法,具體為:采用掃描線將待處理的矢量圖形切分為若干圖元,以及分別確定每一條掃描線切分獲得的圖元,記錄每一條掃描線的縱坐標(biāo),并確認(rèn)任意一圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),與該掃描線具有相同縱坐標(biāo),接著,再分別根據(jù)每一個(gè)圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),確定相應(yīng)圖元的基準(zhǔn)點(diǎn),并分別基于每一個(gè)圖元的基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄相應(yīng)圖元各頂點(diǎn)的坐標(biāo)。
[0024]下面結(jié)合附圖對(duì)本發(fā)明優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說(shuō)明。
[0025]參閱圖2A所示,本發(fā)明實(shí)施例中,圖形壓縮裝置包括切分單元10、第一處理單元11和第二處理單元12,其中,
[0026]切分單元10,用于采用掃描線將待處理的矢量圖形切分為若干圖元;[0027]第一處理單元11,用于分別確定每一條掃描線切分獲得的圖元,記錄每一條掃描線的縱坐標(biāo),并確認(rèn)任意一圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),與該掃描線具有相同縱坐標(biāo);
[0028]第二處理單元12,用于分別根據(jù)每一個(gè)圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),確定相應(yīng)圖元的基準(zhǔn)點(diǎn),并分別基于每一個(gè)圖元的基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄相應(yīng)圖元各頂點(diǎn)的坐標(biāo)。
[0029]基于上述技術(shù)方案,參閱圖2B所示,通常情況下,在對(duì)矢量圖形進(jìn)行壓縮前,需要先將其轉(zhuǎn)換為三角形數(shù)據(jù),較佳的,可以采用活動(dòng)邊表三角化算法,將任意一種矢量圖形分解為以下圖元:梯形,上三角(即頂點(diǎn)在底邊之上)和下三角(即頂點(diǎn)在底邊之下;進(jìn)一步地,也可以再將梯形切分為兩個(gè)三角形。以對(duì)flash文件解析后的結(jié)果為例,將flash文件解析后獲得的三角化數(shù)據(jù)包含的梯形、上三角和下三角等圖元中,梯形的數(shù)目占圖元總數(shù)目的90%,其中,像素大小小于I個(gè)像素的梯形或三角形占圖元總數(shù)目的40%。
[0030]由此可見(jiàn),將矢量圖形解析為三角形數(shù)據(jù)后,其包含大部分?jǐn)?shù)值比較接近,適合于用差分壓縮算法來(lái)做。
[0031]那么,參閱圖3所示,本發(fā)明實(shí)施例中,對(duì)矢量圖形進(jìn)行三角形數(shù)據(jù)壓縮的詳細(xì)流程如下:
[0032]步驟300:采用掃描線將待處理的矢量圖形切分為若干圖元,即將待處理的矢量圖形解析為三角形數(shù)據(jù)。
[0033]例如,參閱圖2所示,多條彼此平行的掃描線將矢量圖形分解為若干圖元,其中,分解獲得的圖元可以包含梯形、上三角形和下三解形中的任意一種或任意組合。
[0034]本發(fā)明實(shí)施例中,三角形數(shù)據(jù)只是一種舉例,實(shí)際應(yīng)用中,針對(duì)其他類似的數(shù)據(jù)也可以采用類似的壓縮方法,在此不再贅述。
[0035]步驟310:分別確定每一條掃描線切分獲得的圖元,記錄每一條掃描線的縱坐標(biāo),并確認(rèn)任意一圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),與該掃描線具有相同縱坐標(biāo)。
[0036]本實(shí)施例中,設(shè)定由同一掃描線切分獲得的所有圖元的下頂點(diǎn)坐標(biāo)的y值都相同,即每?jī)蓷l平行且相鄰的掃描線切分出的各圖元均以下掃描線的y值作為自身下頂點(diǎn)坐標(biāo)的y值。
[0037]當(dāng)然,實(shí)際應(yīng)用中,也可以設(shè)定所有圖元的上頂點(diǎn)坐標(biāo)的y值均相同,即每?jī)蓷l平行且相鄰的掃描線切分出的各圖元均以上掃描線的y值作為自身上頂點(diǎn)坐標(biāo)的y值,本實(shí)施例中僅以前一種情況為例進(jìn)行介紹。
[0038]通常情況下,三角化數(shù)據(jù)是定點(diǎn)化為小數(shù)點(diǎn)后10位的整數(shù),在硬件處理中保留至小數(shù)點(diǎn)后5位即可;針對(duì)這一特點(diǎn),本實(shí)施例中,以任意一條掃描線切分獲得的所有圖元為例,介紹具體壓縮后的數(shù)據(jù)存儲(chǔ)格式如下:
[0039]在執(zhí)行步驟310時(shí),針對(duì)任意一條掃描線切分獲得的所有圖元,首先,可以用Ibyte (字節(jié))存儲(chǔ)圖元(梯形,上三角,下三角)的數(shù)目,并用這Ibyte最高位的Ibit (比特)表示上述任意一掃描線的I值所占用的字節(jié)數(shù),如,O表示y值占2byte, I表示y值占3byte ;
[0040]接著用2?3個(gè)byte存儲(chǔ)上述任意一掃描線的y值,較佳的,可以采用11.5格式存儲(chǔ)掃描線的I值,所謂11.5格式即是采用16bits表示該y值,其中,前Ilbits表示y值的整數(shù)部分,后5bits表示y值的小數(shù)部分。由于預(yù)先存儲(chǔ)了掃描線的y值,并且該掃描線切分獲得的所有圖元的下頂點(diǎn)均與該掃描線具有相同縱坐標(biāo),因此,后續(xù)在存儲(chǔ)下頂點(diǎn)的坐標(biāo)時(shí),可以不用保存y值,從而節(jié)省了計(jì)算量,也提高了壓縮率。
[0041]步驟320:分別根據(jù)每一個(gè)圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),確定相應(yīng)圖元的基準(zhǔn)點(diǎn)。
[0042]例如,針對(duì)任意一條掃描線切分獲得的任意一個(gè)圖元,可以選定該圖元的左下頂點(diǎn)為基準(zhǔn)點(diǎn),此時(shí),可以記錄該基準(zhǔn)點(diǎn)的橫坐標(biāo)值,基準(zhǔn)點(diǎn)的縱坐標(biāo)值即為切分出該圖元的掃描線的縱坐標(biāo),已預(yù)先記錄,因此,此處可以不再重復(fù)記錄。
[0043]當(dāng)然,除了這種情況外,也可以選用圖元的右下頂點(diǎn)、左上頂點(diǎn)、右上頂點(diǎn)為基準(zhǔn)點(diǎn),本實(shí)施例僅以最為節(jié)省計(jì)算量的左下頂點(diǎn)為例進(jìn)行介紹,但并不局限于此,技術(shù)人員可以根據(jù)本發(fā)明原理合理推斷出其他應(yīng)用方式,此不再贅述。
[0044]步驟330:分別基于每一個(gè)圖元的基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄相應(yīng)圖元各頂點(diǎn)的坐標(biāo)。
[0045]仍然以同一掃描線切分獲得的所有圖元為例,這些圖元的下頂點(diǎn)(包括左下頂點(diǎn)或/和右下頂點(diǎn))的I值均與相應(yīng)的掃描線的y值相同,由于各掃描線的I值均預(yù)先按照步驟310記載的方式進(jìn)行了記錄,因此,在進(jìn)行圖元數(shù)據(jù)壓縮時(shí),無(wú)需再次記錄圖元下頂點(diǎn)的y值。
[0046]下面以同一掃描線切分獲得的所有圖元中任意一圖元為例,介紹步驟330的具體執(zhí)行方式如下:
[0047]第一種情況,若上述任意一圖元為梯形,則執(zhí)行步驟330的方式為:
[0048]Al、記錄梯形左下頂點(diǎn)的X值,即先確定基準(zhǔn)點(diǎn)的X值,此時(shí),默認(rèn)基準(zhǔn)點(diǎn)的y值為相應(yīng)掃描線的I值,無(wú)需重復(fù)記錄;
[0049]B1、記錄梯形的右下頂點(diǎn)X值與基準(zhǔn)點(diǎn)X值的差值,記為Λ右下頂點(diǎn)X,此時(shí),也默認(rèn)右下頂點(diǎn)的I值為相應(yīng)掃描線的I值,即與基準(zhǔn)點(diǎn)的I值相同,無(wú)需重復(fù)記錄;
[0050]Cl、記錄梯形的右上頂點(diǎn)X值與基準(zhǔn)點(diǎn)X值的差值,記為Λ右上頂點(diǎn)X ;
[0051]D1、記錄梯形的右上頂點(diǎn)y值與基準(zhǔn)點(diǎn)y值的差值,記為Λ右上頂點(diǎn)y ;
[0052]E1、記錄梯形的左上頂點(diǎn)X值與基準(zhǔn)點(diǎn)X值的差值,記為Λ左上頂點(diǎn)X ;
[0053]F1、記錄梯形的左上頂點(diǎn)y值與基準(zhǔn)點(diǎn)y值的差值,記為Λ左上頂點(diǎn)y。
[0054]至此,梯形四個(gè)頂點(diǎn)的坐標(biāo)均已確定,那么表示梯形這一圖元的相關(guān)數(shù)據(jù)已壓縮完畢,按照這些記錄,可以準(zhǔn)確地確定出梯形的形狀和位置。
[0055]第二種情況,若上述任意一圖元為上三角形,則執(zhí)行步驟330的方式為:
[0056]A2、記錄上三角形左下頂點(diǎn)的X值,即先確定基準(zhǔn)點(diǎn)的X值,此時(shí),默認(rèn)基準(zhǔn)點(diǎn)的y值為相應(yīng)掃描線的I值,無(wú)需重復(fù)記錄;
[0057]B2、記錄上三角形的右下頂點(diǎn)X值與基準(zhǔn)點(diǎn)X值的差值,記為Λ右下頂點(diǎn)X,此時(shí),也默認(rèn)右下頂點(diǎn)的I值為相應(yīng)掃描線的I值,即與基準(zhǔn)點(diǎn)的I值相同,無(wú)需重復(fù)記錄;
[0058]C2、記錄上三角形的左上頂點(diǎn)X值與基準(zhǔn)點(diǎn)X值的差值,記為Λ左上頂點(diǎn)X ;
[0059]D2、記錄上三角形的左上頂點(diǎn)y值與基準(zhǔn)點(diǎn)y值的差值,記為Λ左上頂點(diǎn)y。
[0060]由于上三角形僅有一個(gè)上頂點(diǎn),因此可以將其以左上頂點(diǎn)的形式記錄,也可以將其以右上頂點(diǎn)的形式記錄,本實(shí)施例中僅以前一種情況為例進(jìn)行介紹,并不局限于此。[0061]至此,上三角形三個(gè)頂點(diǎn)的坐標(biāo)均已確定,那么表示上三角形這一圖元的相關(guān)數(shù)據(jù)已壓縮完畢,按照這些記錄,可以準(zhǔn)確地確定出上三角形的形狀和位置。
[0062]第三種情況,若上述任意一圖元為下三角形,則執(zhí)行步驟330的方式為:
[0063]A3、記錄下三角形左下頂點(diǎn)的X值,即先確定基準(zhǔn)點(diǎn)的X值,此時(shí),默認(rèn)基準(zhǔn)點(diǎn)的y值為相應(yīng)掃描線的I值,無(wú)需重復(fù)記錄;
[0064]B3、記錄下三角形的右上頂點(diǎn)X值與基準(zhǔn)點(diǎn)X值的差值,記為Λ右上頂點(diǎn)X ;
[0065]C3、記錄下三角形的右上頂點(diǎn)y值與基準(zhǔn)點(diǎn)y值的差值,記為Λ右上頂點(diǎn)y ;
[0066]D3、記錄下三角形的左上頂點(diǎn)X值與基準(zhǔn)點(diǎn)X值的差值,記為Λ左上頂點(diǎn)X。
[0067]Ε3、記錄下三角形的左上頂點(diǎn)y值與基準(zhǔn)點(diǎn)y值的差值,記為Λ左上頂點(diǎn)y。
[0068]由于下三角形僅有一個(gè)下頂點(diǎn),因此可以直接將下頂點(diǎn)以基準(zhǔn)點(diǎn)(即左下頂點(diǎn))的形式記錄,當(dāng)然,也可以將其以右下頂點(diǎn)的形式記錄,本實(shí)施例中僅以前一種情況為例進(jìn)行介紹,并不局限于此。
[0069]至此,下三角形三個(gè)頂點(diǎn)的坐標(biāo)均已確定,那么表示下三角形這一圖元的相關(guān)數(shù)據(jù)已壓縮完畢,按照這些記錄,可以準(zhǔn)確地確定出下三角形的形狀和位置。
[0070]基于上述實(shí)施例,針對(duì)任意一個(gè)圖元(梯形、上三角形、下三解形均可),可以采用以下方式記錄其相應(yīng)的差分?jǐn)?shù)據(jù):
[0071]用2個(gè)byte表示上述任意一個(gè)圖元的信息。
[0072]對(duì)于第一個(gè)byte:
[0073]第(Tlbit表示Λ右上頂點(diǎn)X所占的byte數(shù)。
[0074]第2?3bit表示Λ右下頂點(diǎn)χ所占的byte數(shù)。
[0075]第4bit表示基準(zhǔn)點(diǎn)的χ值所占的byte數(shù);其中,0表示占用2byte, I表示占用3個(gè) byte。
[0076]第6?7bit表示圖元的類型:0為梯形,I為上三角形,2為倒三角形。
[0077]對(duì)于第二個(gè)byte:
[0078]第2?3bit表示Λ左上頂點(diǎn)y占用的byte數(shù)。
[0079]第4?5bit表示Λ左上頂點(diǎn)x占用的byte數(shù)。
[0080]第6?7bit表示Λ右上頂點(diǎn)y占用的byte數(shù)。
[0081]對(duì)于任意一個(gè)圖元,可以將各頂點(diǎn)的差值按照上述方式填充至相應(yīng)的比特位,如果沒(méi)有相應(yīng)的頂點(diǎn),則無(wú)需填充相應(yīng)的比特位,缺省即可。
[0082]采用上述方式,可以有效優(yōu)化壓縮算法,提高數(shù)據(jù)壓縮率,在減少壓縮計(jì)算量的同時(shí),也進(jìn)一步節(jié)省了存儲(chǔ)空間。
[0083]例如,上正三角壓縮前的數(shù)據(jù)如下(以word為單位)如下:(0x0005ce84,0x00093113),(0x0005ec2e, 0x00093129), (0x0005ed4c, 0x00093113)
[0084]采用本發(fā)明實(shí)施例記載的方案進(jìn)行壓縮后的數(shù)據(jù)如下(以byte為單位):0x01, Ox88,0x49,0x48,0x24,0x74,0x2e, 0xf6, 0x00,Oxedj 0x00,0x01
[0085]又例如:單獨(dú)一個(gè)梯形切分的兩個(gè)三角形壓縮前的數(shù)據(jù)如下(以word為單位):
[0086](0x0004a27e, 0x00092f4a) , (0x0004b31e, 0x00093003),(0x0004ce63, Ox00093003)
[0087](0x0004a27e, 0x00092f4a),(0x0004ce63,0x00093003),(0x0004d483, 0x00092f4a)[0088]采用本發(fā)明實(shí)施例記載的方案進(jìn)行壓縮后的數(shù)據(jù)如下(以byte為單位):0x01, 0x7a, 0x49, OxOa, 0x64, Ox 13, 0x25, 0x91, 0x01, 0x60, 0x01, 0x06, 0x85, 0x00, 0x06
[0089]又例如,連續(xù)兩個(gè)梯形切分的三角形壓縮前的數(shù)據(jù)如下(以word為單位):
[0090](0x00054900, 0x0009lafb),(0x000550f5, 0x00091d29),(0x00066bl3, 0x00091d29)[0091 ] (0x00054900, 0x0009lafb),(0x00066b 13,0x00091d29),(0x00067185, 0x0009lafb)
[0092](0x00054900, 0x0009Iaf9),(0x00054900, 0x0009lafb),(0x00067185,0x0009lafb)
[0093](0x00054900,0x0009Iaf9),(0x00067185,0x0009lafb),(0x0006718b,0x0009Iaf9)
[0094]采用本發(fā)明實(shí)施例記載的方案進(jìn)行壓縮后的數(shù)據(jù)如下(以byte為單位):
[0095]0x02, 0xd7, 0x48, OxOa, 0x54, 0x48, 0x2a, 0x44, 0x09, 0x10, 0x09, 0x12, 0x3f, 0x12,OxOa, 0x00, 0x48, 0x2a, 0x44, 0x09, 0x44, 0x09
[0096]綜上所述,本發(fā)明實(shí)施例中,根據(jù)有序活動(dòng)邊表三角化算法所切分的三角形的特點(diǎn),在壓縮算法上采用了改進(jìn)的差分壓縮算法,以掃描線為單位對(duì)三角形數(shù)據(jù)進(jìn)行壓縮,即針對(duì)每一條掃描線切分得到的所有圖元在相應(yīng)掃描線上的頂點(diǎn)的縱坐標(biāo)均相同的特點(diǎn),首先存儲(chǔ)了每條掃描線切分得到的圖元的數(shù)目和每條掃描線的縱坐標(biāo),然后以每個(gè)圖元在相應(yīng)掃描線上的某一頂點(diǎn)為基準(zhǔn)點(diǎn),根據(jù)每一個(gè)圖元的基準(zhǔn)點(diǎn)的坐標(biāo),依次存儲(chǔ)相應(yīng)圖元各頂點(diǎn)的坐標(biāo)值和基準(zhǔn)點(diǎn)坐標(biāo)值的差值,較佳的,所有坐標(biāo)值均以定點(diǎn)數(shù)11.5的格式存儲(chǔ),這樣,便優(yōu)化地完成了數(shù)據(jù)的壓縮操作,節(jié)省了針對(duì)同樣的圖形多次做壓縮所帶來(lái)的計(jì)算性能上的開(kāi)銷,同時(shí)提高了數(shù)據(jù)的壓縮率,在提高編碼效率的同時(shí),減少了對(duì)計(jì)算機(jī)系統(tǒng)的存儲(chǔ)空間的占用。特別是在圖元數(shù)量非常龐大的時(shí)候,這種方法可比現(xiàn)有技術(shù)節(jié)省20%-30%的內(nèi)存空間,也更適合用于存儲(chǔ)空間比較有限的嵌入式計(jì)算機(jī)系統(tǒng)中。
[0097]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種計(jì)算機(jī)圖像處理中對(duì)矢量化圖形進(jìn)行數(shù)據(jù)壓縮的方法,其特征在于,包括: 采用掃描線將待處理的矢量圖形切分為若干圖元; 分別確定每一條掃描線切分獲得的圖元,記錄每一條掃描線的縱坐標(biāo),并確認(rèn)任意一圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn)與該掃描線具有相同縱坐標(biāo); 分別根據(jù)每一個(gè)圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),確定相應(yīng)圖元的基準(zhǔn)點(diǎn); 分別基于每一個(gè)圖元的基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄相應(yīng)圖元各頂點(diǎn)的坐標(biāo)。
2.如權(quán)利要求1所述的方法,其特征在于,確認(rèn)任意一圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn)與該掃描線具有相同縱坐標(biāo) ,包括: 確認(rèn)由同一掃描線切分獲得的所有圖元的下頂點(diǎn)的縱坐標(biāo)均為該掃描線的縱坐標(biāo); 或者, 確認(rèn)由同一掃描線切分獲得的所有圖元的上頂點(diǎn)的縱坐標(biāo)均為該掃描線的縱坐標(biāo)。
3.如權(quán)利要求2所述的方法,其特征在于,確認(rèn)由同一掃描線切分獲得的所有圖元的下頂點(diǎn)的縱坐標(biāo)均為該掃描線的縱坐標(biāo)時(shí),根據(jù)所述任意一圖元的下頂點(diǎn),確定所述任意一圖元的基準(zhǔn)點(diǎn),包括: 將所述任意一圖元的左下頂點(diǎn)確定為該任意一圖元的基準(zhǔn)點(diǎn); 或者, 將所述任意一圖元的右下頂點(diǎn)確定為該任意一圖元的基準(zhǔn)點(diǎn)。
4.如權(quán)利要求3所述的方法,其特征在于,若將所述任意一圖元的左下頂點(diǎn)確定為基準(zhǔn)點(diǎn),且該任意一圖元為梯形,則基于所述基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄所述任意一圖元各頂點(diǎn)的坐標(biāo),包括: 記錄所述梯形的基準(zhǔn)點(diǎn)的橫坐標(biāo),并確定所述基準(zhǔn)點(diǎn)的縱坐標(biāo)為所述任意一圖元對(duì)應(yīng)的掃描線的縱坐標(biāo); 記錄所述梯形的右下頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值,并確定所述右下頂點(diǎn)的縱坐標(biāo)與所述基準(zhǔn)點(diǎn)的縱坐標(biāo)相同; 記錄所述梯形的右上頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值; 記錄所述梯形的右上頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)縱坐標(biāo)的差值; 記錄所述梯形的左上頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值; 記錄所述梯形的左上頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)的縱坐標(biāo)的差值。
5.如權(quán)利要求3所述的方法,其特征在于,若將所述任意一圖元的左下頂點(diǎn)確定為基準(zhǔn)點(diǎn),且該任意一圖元為上三角形,則基于所述基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄所述任意一圖元各頂點(diǎn)的坐標(biāo),包括: 記錄所述上三角形基準(zhǔn)點(diǎn)的橫坐標(biāo),并確認(rèn)所述基準(zhǔn)點(diǎn)的縱坐標(biāo)為相應(yīng)掃描線的縱坐標(biāo); 記錄所述上三角形的右下頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值,并確認(rèn)所述右下頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)的縱坐標(biāo)相同; 記錄所述上三角形的左上頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值; 記錄所述上三角形的左上頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)的縱坐標(biāo)的差值。
6.如權(quán)利要求3所述的方法,其特征在于,若將所述任意一圖元的左下頂點(diǎn)確定為基準(zhǔn)點(diǎn),且該任意一圖元為下三角形,則基于所述基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄所述任意一圖元各頂點(diǎn)的坐標(biāo),包括:記錄所述下三角形基準(zhǔn)點(diǎn)的橫坐標(biāo),并確認(rèn)所述基準(zhǔn)點(diǎn)的縱坐標(biāo)為相應(yīng)掃描線的縱坐標(biāo); 記錄所述下三角形的右上頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值; 記錄所述下三角形的右上頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)的縱坐標(biāo)的差值; 記錄所述下三角形的左上頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值; 記錄所述下三角形的左上頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)的縱坐標(biāo)的差值。
7.一種在計(jì)算機(jī)圖像處理中對(duì)矢量化圖形進(jìn)行數(shù)據(jù)壓縮的裝置,其特征在于,包括: 切分單元,用于采用掃描線將待處理的矢量圖形切分為若干圖元; 第一處理單元,用于分別確定每一條掃描線切分獲得的圖元,記錄每一條掃描線的縱坐標(biāo),并確認(rèn)任意一圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn)與該掃描線具有相同縱坐標(biāo); 第二處理單元,用于分別根據(jù)每一個(gè)圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),確定相應(yīng)圖元的基準(zhǔn)點(diǎn),并分別基于每一個(gè)圖元的基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄相應(yīng)圖元各頂點(diǎn)的坐標(biāo)。
8.如權(quán)利要求7所述的裝置,其特征在于,所述第一處理單元具體用 于:在確認(rèn)任意一圖元在其對(duì)應(yīng)的掃描線上的頂點(diǎn),與該掃描線具有相同縱坐標(biāo)時(shí),確認(rèn)由同一掃描線切分獲得的所有圖元的下頂點(diǎn)的縱坐標(biāo)均為該掃描線的縱坐標(biāo),或者,確認(rèn)由同一掃描線切分獲得的所有圖元的上頂點(diǎn)的縱坐標(biāo)均為該掃描線的縱坐標(biāo)。
9.如權(quán)利要求8所述的裝置,其特征在于,所述第二處理單元具體用于: 若所述第一處理單元確認(rèn)由同一掃描線切分獲得的所有圖元的下頂點(diǎn)的縱坐標(biāo)均為該掃描線的縱坐標(biāo),則所述第二處理單元根據(jù)所述任意一圖元的下頂點(diǎn),確定所述任意一圖元的基準(zhǔn)點(diǎn)時(shí),將所述任意一圖元的左下頂點(diǎn)確定為該任意一圖元的基準(zhǔn)點(diǎn),或者,將所述任意一圖元的右下頂點(diǎn)確定為該任意一圖元的基準(zhǔn)點(diǎn)。
10.如權(quán)利要求9所述的裝置,其特征在于,所述第二處理單元具體用 于:若所述第二處理單元將所述任意一圖元的左下頂點(diǎn)確定為基準(zhǔn)點(diǎn), 且該任意一圖元為梯形,則所述第二處理單元基于所述基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄所述任意一圖元各頂點(diǎn)的坐標(biāo)時(shí),包括: 記錄所述梯形的基準(zhǔn)點(diǎn)的橫坐標(biāo),并確定所述基準(zhǔn)點(diǎn)的縱坐標(biāo)為所述任意一圖元對(duì)應(yīng)的掃描線的縱坐標(biāo); 記錄所述梯形的右下頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值,并確定所述右下頂點(diǎn)的縱坐標(biāo)與所述基準(zhǔn)點(diǎn)的縱坐標(biāo)相同; 記錄所述梯形的右上頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值; 記錄所述梯形的右上頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)縱坐標(biāo)的差值; 記錄所述梯形的左上頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值; 記錄所述梯形的左上頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)的縱坐標(biāo)的差值。
11.如權(quán)利要求9所述的裝置,其特征在于,所述第二處理單元具體用于: 若所述第二處理單元將所述任意一圖元的左下頂點(diǎn)確定為基準(zhǔn)點(diǎn),且該任意一圖元為上三角形,則所述第二處理單元基于所述基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄所述任意一圖元各頂點(diǎn)的坐標(biāo),包括:記錄所述上三角形基準(zhǔn)點(diǎn)的橫坐標(biāo),并確認(rèn)所述基準(zhǔn)點(diǎn)的縱坐標(biāo)為相應(yīng)掃描線的縱坐標(biāo); 記錄所述上三角形的右下頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值,并確認(rèn)所述右下頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)的縱坐標(biāo)相同; 記錄所述上三角形的左上頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值; 記錄所述上三角形的左上頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)的縱坐標(biāo)的差值。
12.如權(quán)利要求9所述的裝置,其特征在于,所述第二處理單元具體用于: 若所述第二處理單元將所述任意一圖元的左下頂點(diǎn)確定為基準(zhǔn)點(diǎn),且該任意一圖元為下三角形,則所述第二處理單元基于所述基準(zhǔn)點(diǎn)的坐標(biāo),以差分編碼形式記錄所述任意一圖元各頂點(diǎn)的坐標(biāo),包括: 記錄所述下三角形基準(zhǔn)點(diǎn)的橫坐標(biāo),并確認(rèn)所述基準(zhǔn)點(diǎn)的縱坐標(biāo)為相應(yīng)掃描線的縱坐標(biāo); 記錄所述下三角形的右上頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值; 記錄所述下三角形的右上頂點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)的縱坐標(biāo)的差值; 記錄所述下三角形的左上頂點(diǎn)的橫坐標(biāo)與基準(zhǔn)點(diǎn)的橫坐標(biāo)的差值; 記錄所述下三角形的左上頂`點(diǎn)的縱坐標(biāo)與基準(zhǔn)點(diǎn)的縱坐標(biāo)的差值。
【文檔編號(hào)】G06T9/00GK103731153SQ201210389052
【公開(kāi)日】2014年4月16日 申請(qǐng)日期:2012年10月12日 優(yōu)先權(quán)日:2012年10月12日
【發(fā)明者】郭惠, 張黎 申請(qǐng)人:上海炬力集成電路設(shè)計(jì)有限公司