本發(fā)明涉及圖像壓縮技術(shù)領(lǐng)域,特別涉及一種嵌入式系統(tǒng)及單色位圖壓縮方法、主機。
背景技術(shù):
當(dāng)前,隨著計算機硬件的快速發(fā)展,計算機的存儲性能和計算性能已經(jīng)得到了極大地提升。但是,在嵌入式系統(tǒng)中,其存儲的量級很低,普遍在千字節(jié)級別左右?,F(xiàn)有嵌入式系統(tǒng)中的單片機時常需要對單色位圖等圖片進(jìn)行保存和處理,由于單色位圖等圖片的數(shù)據(jù)量相對單片機系統(tǒng)的存儲容量來說較大,所以,如果直接將原始的單色位圖傳輸給單片機進(jìn)行保存和處理,不僅需要耗費較多的時間完成對圖像數(shù)據(jù)的傳輸,導(dǎo)致較低的數(shù)據(jù)傳輸效率,并且需要占用單片機系統(tǒng)較多的存儲容量,嚴(yán)重降低了單片機系統(tǒng)對圖像數(shù)據(jù)的存儲能力。因此,如何提高嵌入式系統(tǒng)中單片機對圖像數(shù)據(jù)的存儲能力是目前亟待解決的問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種嵌入式系統(tǒng)及單色位圖壓縮方法、主機,能夠提高嵌入式系統(tǒng)中單片機對圖像數(shù)據(jù)的存儲能力。其具體方案如下:
一種應(yīng)用于嵌入式系統(tǒng)的單色位圖壓縮方法,所述單色位圖中任一像素的顏色值為第一顏色值或第二顏色值;所述方法包括:
統(tǒng)計所述單色位圖中的像素信息,得到多組像素信息;其中,每組像素信息均包括像素的顏色值以及具有該顏色值的并且在像素位置上連續(xù)排布的像素的數(shù)量值;
分別對每組像素信息進(jìn)行合并記錄,得到相應(yīng)的壓縮數(shù)據(jù)。
可選的,所述統(tǒng)計所述單色位圖中的像素信息,得到多組像素信息的過程,包括:
對所述單色位圖展開逐像素掃描,以確定每一像素的顏色值,并將在像素位置上連續(xù)排布的具有相同顏色值的像素的信息確定為同一組像素信息,得到所述多組像素信息;其中,所述在像素位置上連續(xù)排布的具有相同顏色值的像素的信息包括像素的顏色值以及像素的數(shù)量值。
可選的,同一組像素信息中的像素的數(shù)量值小于或等于預(yù)設(shè)數(shù)量閾值。
可選的,所述將在像素位置上連續(xù)排布的具有相同顏色值的像素的信息確定為同一組像素信息的過程,包括:
利用n位x進(jìn)制數(shù),對當(dāng)前在像素位置上連續(xù)排布的具有相同顏色值的像素的顏色值進(jìn)行指示,得到像素顏色指示符;
利用m位x進(jìn)制數(shù),對當(dāng)前在像素位置上連續(xù)排布的具有相同顏色值的像素的數(shù)量值進(jìn)行指示,得到像素數(shù)量指示符;
其中,n值、m值以及x值均為正整數(shù),所述預(yù)設(shè)數(shù)量閾值為xm-1。
可選的,所述分別對每組像素信息進(jìn)行合并記錄,得到相應(yīng)的壓縮數(shù)據(jù)的過程,包括:
分別對每組像素信息中像素顏色指示符以及像素數(shù)量指示符進(jìn)行合并記錄,得到與每組像素信息對應(yīng)的壓縮數(shù)據(jù)。
本發(fā)明還相應(yīng)公開了一種應(yīng)用于嵌入式系統(tǒng)的單色位圖壓縮主機,所述單色位圖中任一像素的顏色值為第一顏色值或第二顏色值;所述主機包括:
統(tǒng)計所述單色位圖中的多組像素信息的處理器;其中,每組像素信息均包括像素的顏色值以及具有該顏色值的并且在像素位置上連續(xù)排布的像素的數(shù)量值;
分別對每組像素信息進(jìn)行合并記錄得到相應(yīng)的壓縮數(shù)據(jù)的存儲裝置。
可選的,所述處理器,包括:
像素掃描模塊,用于對所述單色位圖展開逐像素掃描,以確定每一像素的顏色值;
信息確定模塊,用于根據(jù)所述像素掃描模塊的掃描結(jié)果,將在像素位置上連續(xù)排布的具有相同顏色值的像素的信息確定為同一組像素信息,得到所述多組像素信息;其中,所述在像素位置上連續(xù)排布的具有相同顏色值的像素的信息包括像素的顏色值以及像素的數(shù)量值。
可選的,同一組像素信息中的像素的數(shù)量值小于或等于預(yù)設(shè)數(shù)量閾值,并且,所述信息確定模塊,包括:
第一指示單元,用于利用n位x進(jìn)制數(shù),對當(dāng)前在像素位置上連續(xù)排布的具有相同顏色值的像素的顏色值進(jìn)行指示,得到像素顏色指示符;
第二指示單元,用于利用m位x進(jìn)制數(shù),對當(dāng)前在像素位置上連續(xù)排布的具有相同顏色值的像素的數(shù)量值進(jìn)行指示,得到像素數(shù)量指示符;
其中,n值、m值以及x值均為正整數(shù),所述預(yù)設(shè)數(shù)量閾值為xm-1。
可選的,所述存儲裝置,具體用于分別對每組像素信息中像素顏色指示符以及像素數(shù)量指示符進(jìn)行合并記錄,得到與每組像素信息對應(yīng)的壓縮數(shù)據(jù)。
本發(fā)明進(jìn)一步公開了一種嵌入式系統(tǒng),包括前述公開的單色位圖壓縮主機,還包括用于對所述單色位圖壓縮主機輸出的壓縮數(shù)據(jù)進(jìn)行處理的單片機。
本發(fā)明中,單色位圖壓縮方法,包括:統(tǒng)計單色位圖中的像素信息,得到多組像素信息;其中,每組像素信息均包括像素的顏色值以及具有該顏色值的并且在像素位置上連續(xù)排布的像素的數(shù)量值;分別對每組像素信息進(jìn)行合并記錄,得到相應(yīng)的壓縮數(shù)據(jù)。
可見,本發(fā)明先統(tǒng)計單色位圖的像素信息,從而得到多組像素信息,其中,每組像素信息中均包含單色位圖上像素的顏色值以及具有該顏色值的并且在像素位置上連續(xù)排布的像素的數(shù)量值,這樣相當(dāng)于將單色位圖上每個像素的顏色以及位置信息進(jìn)行了統(tǒng)計,最后通過將上述統(tǒng)計信息進(jìn)行合并記錄,便可得到相應(yīng)的壓縮數(shù)據(jù),由此實現(xiàn)了對嵌入式系統(tǒng)中單色位圖的壓縮目的,從而降低了單色位圖的數(shù)據(jù)量大小,有利于提高嵌入式系統(tǒng)中單片機對圖像數(shù)據(jù)的存儲能力,并且在將上述壓縮數(shù)據(jù)傳送至單片機的過程中,可以花費更少的時間便可實現(xiàn)對圖像數(shù)據(jù)的傳輸,提升了數(shù)據(jù)傳輸效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例公開的一種應(yīng)用于嵌入式系統(tǒng)的單色位圖壓縮方法流程圖;
圖2為本發(fā)明實施例公開的一種單色位圖數(shù)據(jù)壓縮示意圖;
圖3為本發(fā)明實施例公開的另一種單色位圖數(shù)據(jù)壓縮示意圖;
圖4為本發(fā)明實施例公開的一種具體的單色位圖壓縮流程圖;
圖5為本發(fā)明實施例公開的一種應(yīng)用于嵌入式系統(tǒng)的單色位圖壓縮主機結(jié)構(gòu)示意圖;
圖6為本發(fā)明實施例公開的一種嵌入式系統(tǒng)結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實施例公開了一種應(yīng)用于嵌入式系統(tǒng)的單色位圖壓縮方法,其中,單色位圖中任一像素的顏色值為第一顏色值或第二顏色值;通常,上述第一顏色值和第二顏色值分別為1和0,也即,本實施例中單色位圖是由顏色值為1和0的像素構(gòu)成的位圖。參見圖1所示,上述方法包括:
步驟s11:統(tǒng)計單色位圖中的像素信息,得到多組像素信息;其中,每組像素信息均包括像素的顏色值以及具有該顏色值的并且在像素位置上連續(xù)排布的像素的數(shù)量值。
也即,本實施例先對單色位圖上的像素信息進(jìn)行統(tǒng)計,相應(yīng)地得到多組像素信息,并且,每組像素信息中均包括如下信息:像素的顏色值以及具有該顏色值的并且在像素位置上連續(xù)排序的像素的數(shù)量值。例如,假設(shè)在一個單色位圖上的某一行像素中,依次排布了5個連續(xù)的顏色值為0的像素、100個連續(xù)的顏色值為1的像素、120個連續(xù)的顏色值為0的像素以及25個連續(xù)的顏色值為1的像素,則在經(jīng)過上述步驟s11的處理之后,至少可以確定出兩組像素信息,其中一組像素信息包括顏色值1以及像素數(shù)量值100,另一組像素信息包括顏色值0以及像素數(shù)量值120。
由上可見,通過上述對單色位圖中的像素信息進(jìn)行統(tǒng)計的過程,本實施例達(dá)到了只需利用兩個數(shù)值便可反映出在位置上連續(xù)排布的具有相同顏色值的像素的信息,從而大幅減少了數(shù)據(jù)量。
步驟s12:分別對每組像素信息進(jìn)行合并記錄,得到相應(yīng)的壓縮數(shù)據(jù)。
可見,本發(fā)明實施例先統(tǒng)計單色位圖的像素信息,從而得到多組像素信息,其中,每組像素信息中均包含單色位圖上像素的顏色值以及具有該顏色值的并且在像素位置上連續(xù)排布的像素的數(shù)量值,這樣相當(dāng)于將單色位圖上每個像素的顏色以及位置信息進(jìn)行了統(tǒng)計,最后通過將上述統(tǒng)計信息進(jìn)行合并記錄,便可得到相應(yīng)的壓縮數(shù)據(jù),由此實現(xiàn)了對嵌入式系統(tǒng)中單色位圖的壓縮目的,從而降低了單色位圖的數(shù)據(jù)量大小,有利于提高嵌入式系統(tǒng)中單片機對圖像數(shù)據(jù)的存儲能力,并且在將上述壓縮數(shù)據(jù)傳送至單片機的過程中,可以花費更少的時間便可實現(xiàn)對圖像數(shù)據(jù)的傳輸,提升了數(shù)據(jù)傳輸效率。
本發(fā)明實施例公開了一種具體的應(yīng)用于嵌入式系統(tǒng)的單色位圖壓縮方法,相對于上一實施例,本實施例對技術(shù)方案作了進(jìn)一步的說明和優(yōu)化。具體的:
上一實施例步驟s11中,統(tǒng)計單色位圖中的像素信息,得到多組像素信息的過程,具體可以包括:對單色位圖展開逐像素掃描,以確定每一像素的顏色值,并將在像素位置上連續(xù)排布的具有相同顏色值的像素的信息確定為同一組像素信息,得到多組像素信息;其中,在像素位置上連續(xù)排布的具有相同顏色值的像素的信息包括像素的顏色值以及像素的數(shù)量值。
進(jìn)一步的,上述同一組像素信息中的像素的數(shù)量值小于或等于預(yù)設(shè)數(shù)量閾值。
另外,上述將在像素位置上連續(xù)排布的具有相同顏色值的像素的信息確定為同一組像素信息的過程,具體可以包括:
利用n位x進(jìn)制數(shù),對當(dāng)前在像素位置上連續(xù)排布的具有相同顏色值的像素的顏色值進(jìn)行指示,得到像素顏色指示符;利用m位x進(jìn)制數(shù),對當(dāng)前在像素位置上連續(xù)排布的具有相同顏色值的像素的數(shù)量值進(jìn)行指示,得到像素數(shù)量指示符;
其中,n值、m值以及x值均為正整數(shù),與此對應(yīng)的,上述預(yù)設(shè)數(shù)量閾值具體為xm-1。
上一實施例步驟s12中,分別對每組像素信息進(jìn)行合并記錄,得到相應(yīng)的壓縮數(shù)據(jù)的過程,具體可以包括:
分別對每組像素信息中像素顏色指示符以及像素數(shù)量指示符進(jìn)行合并記錄,得到與每組像素信息對應(yīng)的壓縮數(shù)據(jù)。
本實施例可以利用單字節(jié)來記錄每組像素信息,例如,每個單字節(jié)可以是8位的二進(jìn)制數(shù)。其中,可以利用單字節(jié)中的第7位來記錄像素顏色指示符,如果單字節(jié)中的第7位為0,則表示相應(yīng)像素的顏色值為0,如果單字節(jié)中的第7位為1,則表示相應(yīng)像素的顏色值為1。另外,利用單字節(jié)中的第0位至第6位來記錄像素數(shù)量指示符??梢岳斫獾氖?,利用單字節(jié)中的第0位至第6位,可記錄的像素的數(shù)量最大為127個,也即,在這里上述預(yù)設(shè)數(shù)量閾值為127。
參見圖2所示,如果在單色位圖的某個位置區(qū)域上出現(xiàn)200個連續(xù)的顏色值為1的像素點,則在未經(jīng)過壓縮的情況下,以16進(jìn)制表示,其結(jié)果是:
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff。
由上可見,在未經(jīng)過壓縮的情況下,如果以16進(jìn)制表示上述200個連續(xù)的顏色值為1的像素點,則總共需要占用了25個字節(jié)的數(shù)據(jù)長度。而如果利用本發(fā)明實施例公開的壓縮方法進(jìn)行處理之后,同樣以16進(jìn)制表示壓縮結(jié)果,則結(jié)果是:0xff,0xc9,只需占用2個字節(jié)的數(shù)據(jù)長度。
參見圖3所示,如果在單色位圖的某兩個位置區(qū)域上分別出現(xiàn)80個連續(xù)的顏色值為1的像素點和75個連續(xù)的顏色值為0的像素點,在未經(jīng)過壓縮的情況下,以16進(jìn)制形式表示,其結(jié)果是:
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,總共占用了20個字節(jié)的數(shù)據(jù)長度。而如果利用本發(fā)明實施例中公開的壓縮方法進(jìn)行處理之后,同樣以16進(jìn)制表示壓縮結(jié)果,則結(jié)果是:0xd0,0x4b,只需占用2個字節(jié)的數(shù)據(jù)長度。
在前述實施例的基礎(chǔ)上,本發(fā)明實施例進(jìn)一步公開了一種具體的單色位圖壓縮流程,參見圖4所示,具體包括:
步驟s1,掃描單色位圖數(shù)據(jù),記錄連續(xù)的0或1的個數(shù)記為total。
步驟s2,若total的值小于或等于127,則將當(dāng)前掃描到的數(shù)據(jù)與上一個掃描進(jìn)行對比,如果兩次掃描到的數(shù)據(jù)不一致(例如當(dāng)前掃描到0,上一個掃描到的是1),則將像素數(shù)量指示符的值設(shè)置為當(dāng)前total的值,執(zhí)行步驟s4,否則執(zhí)行步驟s1。
步驟s3,當(dāng)total的值大于127時,則將像素數(shù)量指示符的值設(shè)置為127,執(zhí)行步驟s4。
步驟s4,執(zhí)行壓縮,用單字節(jié)數(shù)據(jù)描述掃描到的結(jié)果,如果此時數(shù)據(jù)掃描完畢,則退出掃描和壓縮過程,否則繼續(xù)執(zhí)行步驟s1,并循環(huán)。
通過本發(fā)明實施例公開的壓縮方法對單色位圖進(jìn)行壓縮,圖像數(shù)據(jù)越簡單(即出現(xiàn)大量的連續(xù)的0或連續(xù)的1),所產(chǎn)生的壓縮比就越高,如圖2和圖3所描述的例子,其壓縮比分別達(dá)到了25:2和20:2,極大降低了單色位圖數(shù)據(jù)的傳輸時間和單色位圖數(shù)據(jù)在嵌入式系統(tǒng)上所占的存儲容量。
相應(yīng)的,本發(fā)明實施例還公開了一種應(yīng)用于嵌入式系統(tǒng)的單色位圖壓縮主機,其中,單色位圖中任一像素的顏色值為第一顏色值或第二顏色值;參見圖5所示,上述主機包括:
統(tǒng)計單色位圖中的多組像素信息的處理器11;其中,每組像素信息均包括像素的顏色值以及具有該顏色值的并且在像素位置上連續(xù)排布的像素的數(shù)量值;
分別對每組像素信息進(jìn)行合并記錄得到相應(yīng)的壓縮數(shù)據(jù)的存儲裝置12。
其中,上述處理器,具體可以包括像素掃描模塊和信息確定模塊;其中,
像素掃描模塊,用于對單色位圖展開逐像素掃描,以確定每一像素的顏色值;
信息確定模塊,用于根據(jù)像素掃描模塊的掃描結(jié)果,將在像素位置上連續(xù)排布的具有相同顏色值的像素的信息確定為同一組像素信息,得到多組像素信息;其中,在像素位置上連續(xù)排布的具有相同顏色值的像素的信息包括像素的顏色值以及像素的數(shù)量值。
其中,上述同一組像素信息中的像素的數(shù)量值小于或等于預(yù)設(shè)數(shù)量閾值,并且,信息確定模塊,包括:
第一指示單元,用于利用n位x進(jìn)制數(shù),對當(dāng)前在像素位置上連續(xù)排布的具有相同顏色值的像素的顏色值進(jìn)行指示,得到像素顏色指示符;
第二指示單元,用于利用m位x進(jìn)制數(shù),對當(dāng)前在像素位置上連續(xù)排布的具有相同顏色值的像素的數(shù)量值進(jìn)行指示,得到像素數(shù)量指示符;
其中,n值、m值以及x值均為正整數(shù),相應(yīng)的,上述預(yù)設(shè)數(shù)量閾值具體為xm-1。
另外,上述存儲裝置具體可以用于分別對每組像素信息中像素顏色指示符以及像素數(shù)量指示符進(jìn)行合并記錄,得到與每組像素信息對應(yīng)的壓縮數(shù)據(jù)。
關(guān)于上述各個器件、模塊和單元的更加具體的工作過程可以參考前述實施例中公開的相應(yīng)內(nèi)容,在此不再進(jìn)行贅述。
進(jìn)一步的,本發(fā)明實施例還公開了一種嵌入式系統(tǒng),參見圖6所示,該系統(tǒng)包括前述實施例公開的單色位圖壓縮主機21,還包括用于對單色位圖壓縮主機21輸出的壓縮數(shù)據(jù)進(jìn)行處理的單片機22。
關(guān)于上述單色位圖壓縮主機的具體構(gòu)造和功能可以參考前述實施例中公開的相應(yīng)內(nèi)容,在此不再進(jìn)行贅述。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對本發(fā)明所提供的一種嵌入式系統(tǒng)及單色位圖壓縮方法、主機進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。