本發(fā)明涉及電子顯示領(lǐng)域,具體地,涉及一種適用于電子顯示標(biāo)簽的自適應(yīng)二值圖像壓縮方法。
背景技術(shù):
目前,已經(jīng)有很多關(guān)于無損壓縮的方法,最常見的算法二值圖像無損壓縮算法有游長編碼、huffman編碼、lz77等。基于這些算法,也有很多人提出了一些優(yōu)化算法,并通過硬件進(jìn)行實(shí)現(xiàn)。
但對于新型領(lǐng)域的電子貨架標(biāo)簽的二值圖像顯示而言,由于其圖像內(nèi)容具備特定特征,電子貨架標(biāo)簽的圖像內(nèi)容在實(shí)際應(yīng)用中基本固定于特定格式的模板,改變通常在特定區(qū)域局部刷新即可,全屏內(nèi)容整屏刷新的時候并不多,但反而對傳輸響應(yīng)的速度要求較高,因此,在這種應(yīng)用領(lǐng)域,常用的圖像壓縮方法針對整屏圖像采用一個統(tǒng)一的算法進(jìn)行均勻無差別壓縮的方式,實(shí)際上并不適合,效率也不高。robinkuivinen曾經(jīng)比較了7種圖像壓縮算法在電子貨架標(biāo)簽中的壓縮效果。較好的情況也僅20%左右。
而針對字符編碼的壓縮也是一種常見的圖像內(nèi)容壓縮方法,該方法雖然可以顯著提高通訊速度,解壓縮時間也很短,但是該方法局限于字符內(nèi)容,對于有圖像的內(nèi)容,該方法并不適用。并且對于大部分應(yīng)用來說,字符編碼的壓縮率要求極低(全屏字符甚至達(dá)到2%左右)。
圖像壓縮后,壓縮率越小,傳輸越快;同時,考慮到電子顯示標(biāo)簽的運(yùn)算處理能力,復(fù)雜壓縮算法對應(yīng)的解碼方法復(fù)雜,對進(jìn)行解碼處理的標(biāo)簽處理器資源要求高,但是,處理器資源越高需要消耗更多資源成本,無法滿足高傳輸速度和低耗能并存的需求。
因此目前存在的問題包括:
1.常見的壓縮算法,壓縮率不高,也不適應(yīng)于電子顯示標(biāo)簽的圖像內(nèi)容。復(fù)雜壓縮算法會導(dǎo)致解碼方法復(fù)雜,對標(biāo)簽處理器要求很高。
2.通用的字符編碼,壓縮率雖然非常高,解壓縮時間快,但是無法對圖像進(jìn)行壓縮,同樣不能適用于圖文并茂的電子顯示標(biāo)簽內(nèi)容的處理。
所以,如何尋找到一種能夠自適應(yīng)電子貨架標(biāo)簽特定顯示內(nèi)容的,又同時兼?zhèn)漭^高壓縮率的解決方案,是目前急需解決的問題。
技術(shù)實(shí)現(xiàn)要素:
針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種適用于電子顯示標(biāo)簽的自適應(yīng)二值圖像壓縮方法。
根據(jù)本發(fā)明提供的一種適用于電子顯示標(biāo)簽的自適應(yīng)二值圖像壓縮方法,包括:
步驟1,將待顯示圖像與當(dāng)前顯示圖像進(jìn)行對比獲取有效刷新區(qū)域的點(diǎn)陣坐標(biāo)和對應(yīng)的更新信息,
步驟2,以兩種不同的壓縮方式分別對所述更新信息中的圖案部分和字符部分進(jìn)行壓縮處理。
優(yōu)選地,所述步驟2對所述更新信息中的圖案部分的壓縮方式包括:
預(yù)設(shè)一最小游程范圍和一個或連續(xù)兩個以上的分段游程范圍;
對所述圖案部分進(jìn)行游程長度檢測;
當(dāng)檢測到當(dāng)前數(shù)據(jù)的游程長度小于或等于所述最小游程范圍時,圖案類傳輸數(shù)據(jù)包括操作標(biāo)志位和數(shù)據(jù)內(nèi)容段,將操作標(biāo)志位設(shè)置為不壓縮;
當(dāng)檢測到當(dāng)前數(shù)據(jù)的游程長度屬于所述分段游程范圍時,圖案類傳輸數(shù)據(jù)包括操作標(biāo)志位、類別標(biāo)志位、數(shù)據(jù)長度位,將操作標(biāo)志位設(shè)置為壓縮,根據(jù)所述當(dāng)前數(shù)據(jù)的二值屬性確定所述類別標(biāo)志位,根據(jù)所述當(dāng)前數(shù)據(jù)的游程長度確定所述數(shù)據(jù)長度位。
優(yōu)選地,當(dāng)檢測到當(dāng)前數(shù)據(jù)的游程長度屬于所述分段游程范圍時,根據(jù)當(dāng)前數(shù)據(jù)所屬的分段游程范圍的最大長度確定預(yù)留的所述數(shù)據(jù)長度位的長度。
優(yōu)選地,所述步驟1和步驟2之間還包括:
將所述更新信息與預(yù)設(shè)的字符庫內(nèi)的字符特征一一比對,匹配則識別為所述字符部分,不匹配則識別為所述圖案部分。
優(yōu)選地,所述步驟2對所述更新信息中的字符部分的壓縮方式包括:
提取所述字符部分在所述字符庫中匹配的字符特征所對應(yīng)的編號,字符類傳輸數(shù)據(jù)包括所述編號和對應(yīng)順序的點(diǎn)陣坐標(biāo)。
優(yōu)選地,在步驟1之前還包括預(yù)設(shè)字符庫的步驟:根據(jù)對字符的特征分析確定每個字符的所述字符特征,將字符和與該字符對應(yīng)的字符特征一一對應(yīng)存入所述字符庫內(nèi)并依次設(shè)置編號。
優(yōu)選地,所述字符包括中文、英文、數(shù)字、特殊字符。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:
本發(fā)明能夠在不增加電子顯示標(biāo)簽處理器資源的情況下,提供一種壓縮效率高,消耗資源少的圖像壓縮改進(jìn)方法。使用本發(fā)明的圖像壓縮改進(jìn)方法可以有效的提高電子貨架標(biāo)簽的圖像傳輸響應(yīng)速度,提高電子貨架標(biāo)簽的整體工作效率,不但減少了圖像刷新傳輸?shù)臅r間,并且能夠有效的節(jié)省能耗,延長電子貨架標(biāo)簽的工作壽命。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單的介紹,顯而易見,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。附圖中:
圖1是一種適用于電子顯示標(biāo)簽的自適應(yīng)二值圖像壓縮方法流程步驟;
圖2是待顯示圖像舉例;
圖3是當(dāng)前顯示圖像舉例;
圖4是不壓縮操作的數(shù)據(jù)示意圖;
圖5是短壓縮操作的數(shù)據(jù)示意圖;
圖6是中壓縮操作的數(shù)據(jù)示意圖;
圖7是長壓縮操作的數(shù)據(jù)示意圖;
圖8是可選的一種方法流程示意圖。
具體實(shí)施方式
下文結(jié)合附圖以具體實(shí)施例的方式對本發(fā)明進(jìn)行詳細(xì)說明。以下實(shí)施例將有助于本領(lǐng)域的技術(shù)人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,還可以使用其他的實(shí)施例,或者對本文列舉的實(shí)施例進(jìn)行結(jié)構(gòu)和功能上的修改,而不會脫離本發(fā)明的范圍和實(shí)質(zhì)。
在本發(fā)明提供的一種適用于電子顯示標(biāo)簽的自適應(yīng)二值圖像壓縮方法的實(shí)施例中,如圖1所示,包括
根據(jù)本發(fā)明提供的一種,包括:
步驟1,將待顯示圖像與當(dāng)前顯示圖像進(jìn)行對比獲取有效刷新區(qū)域的點(diǎn)陣坐標(biāo)和對應(yīng)的更新信息,
步驟2,以兩種不同的壓縮方式分別對所述更新信息中的圖案部分和字符部分進(jìn)行壓縮處理。
游程算法的實(shí)現(xiàn)是用當(dāng)前數(shù)據(jù)元素以及該元素連續(xù)出現(xiàn)的次數(shù)來取代字符串中連續(xù)出現(xiàn)的數(shù)據(jù)部分。本發(fā)明中所述游程是指數(shù)據(jù)元素出現(xiàn)重復(fù)的一段數(shù)據(jù),游程長度即是指出現(xiàn)重復(fù)的數(shù)據(jù)段中該元素重復(fù)出現(xiàn)的個數(shù)。例如在1110中第一段游程為重復(fù)出現(xiàn)三次的111,其游程長度為3。游程范圍是指第1-3位范圍上為1。具體可見后部分的具體舉例。
作為一種可選實(shí)施例,所述步驟2對所述更新信息中的圖案部分的壓縮方式包括:
預(yù)設(shè)一最小游程范圍和一個或連續(xù)兩個以上的分段游程范圍;
對所述圖案部分進(jìn)行游程長度檢測;
當(dāng)檢測到當(dāng)前數(shù)據(jù)的游程長度小于或等于所述最小游程范圍時,圖案類傳輸數(shù)據(jù)包括操作標(biāo)志位和數(shù)據(jù)內(nèi)容段,將操作標(biāo)志位設(shè)置為不壓縮;
當(dāng)檢測到當(dāng)前數(shù)據(jù)的游程長度屬于所述分段游程范圍時,圖案類傳輸數(shù)據(jù)包括操作標(biāo)志位、類別標(biāo)志位、數(shù)據(jù)長度位,將操作標(biāo)志位設(shè)置為壓縮,根據(jù)所述當(dāng)前數(shù)據(jù)的二值屬性確定所述類別標(biāo)志位,根據(jù)所述當(dāng)前數(shù)據(jù)的游程長度確定所述數(shù)據(jù)長度位。
作為一種可選實(shí)施例,當(dāng)檢測到當(dāng)前數(shù)據(jù)的游程長度屬于所述分段游程范圍時,根據(jù)當(dāng)前數(shù)據(jù)所屬的分段游程范圍的最大長度確定預(yù)留的所述數(shù)據(jù)長度位的長度。
作為一種可選實(shí)施例,所述步驟1和步驟2之間還包括:
將所述更新信息與預(yù)設(shè)的字符庫內(nèi)的字符特征一一比對,匹配則識別為所述字符部分,不匹配則識別為所述圖案部分。
作為一種可選實(shí)施例,所述步驟2對所述更新信息中的字符部分的壓縮方式包括:
提取所述字符部分在所述字符庫中匹配的字符特征所對應(yīng)的編號,字符類傳輸數(shù)據(jù)包括所述編號和對應(yīng)順序的點(diǎn)陣坐標(biāo)。
作為一種可選實(shí)施例,在步驟1之前還包括預(yù)設(shè)字符庫的步驟:根據(jù)對字符的特征分析確定每個字符的所述字符特征,將字符和與該字符對應(yīng)的字符特征一一對應(yīng)存入所述字符庫內(nèi)并依次設(shè)置編號。
作為一種可選實(shí)施例,所述字符包括中文、英文、數(shù)字、特殊字符。
實(shí)現(xiàn)上述方案還可以通過下述方案流程,該方法包含以下步驟:
1、自動識別刷新內(nèi)容
掃描全屏點(diǎn)陣圖像,與當(dāng)前圖像內(nèi)容對比換算,得出發(fā)生變化的區(qū)域,鎖定需要刷新內(nèi)容的有效刷新區(qū)域的坐標(biāo)。
2、自動識別電子顯示標(biāo)簽圖像和字符
將有效刷新區(qū)域的內(nèi)容與字庫字符特征一一比對,比對成功的即可自動識別字符內(nèi)容。
將無法與字庫字符相匹配的區(qū)域定義為圖像內(nèi)容。
3、分別用不同壓縮引擎處理圖像內(nèi)容和字符內(nèi)容:
對于圖像內(nèi)容,采用低內(nèi)存占用量、低壓縮率的優(yōu)化游程判定壓縮編碼算法。
對于字符內(nèi)容,采用字符編碼方式進(jìn)行圖像壓縮。
4、終端標(biāo)簽接收到傳輸內(nèi)容自動適應(yīng)解碼刷新相應(yīng)區(qū)域的相應(yīng)內(nèi)容:
傳輸協(xié)議采用字符和圖像分開傳輸?shù)姆绞?/p>
終端標(biāo)簽接收到字符特征的數(shù)據(jù)包,直接啟動預(yù)存字符編碼表,讀取坐標(biāo)信息后,對于字符內(nèi)容讀碼顯示刷新。
終端標(biāo)簽接收到圖像特征的數(shù)據(jù)包,啟動圖像解碼引擎,按照協(xié)議確定的游程判定壓縮編碼方式判定圖像內(nèi)容采用何種方式解碼,并對解碼后的圖像內(nèi)容按照坐標(biāo)信息進(jìn)行解碼顯示刷新。
具體實(shí)施例舉例:
如圖2、3所示,圖2為待顯示圖像,右圖1為當(dāng)前顯示圖像。
步驟一、自動識別刷新內(nèi)容。
1、使用圖像引擎掃描比對圖像1與圖像2
2、運(yùn)算差得出文字5部分與圖像3部分內(nèi)容,鎖定文字5和圖像3區(qū)域坐標(biāo)分別為:
文字5起始坐標(biāo)=(x1,y1),文字5終點(diǎn)坐標(biāo)=(x2,y2);
圖像3起始坐標(biāo)=(x3,y3),圖像3終點(diǎn)坐標(biāo)=(x4,y4);
步驟二、自動識別電子顯示標(biāo)簽圖像和字符的方法:
1、預(yù)先對字庫中字符進(jìn)行特征分析,并將每個字符的特征進(jìn)行存儲,
2、運(yùn)算比對步驟一鎖定的內(nèi)容,與字符特征進(jìn)行運(yùn)算比對,文字5比對成功,鎖定為字符內(nèi)容,圖像3內(nèi)容未比對成功,定義為圖像內(nèi)容。
3、已通過比對確定了文字5的內(nèi)容碼字字段編碼表示為(w1。。wn)
3、將文字5字段編碼及文字圖坐標(biāo)發(fā)送至文字壓縮處理引擎進(jìn)行字符壓縮處理
4、將圖像3坐標(biāo)范圍內(nèi)容發(fā)送至圖案壓縮處理引擎進(jìn)行數(shù)據(jù)化處理
步驟三、字符壓縮處理引擎:對字符內(nèi)容采用本發(fā)明設(shè)計(jì)預(yù)存字符編碼表的壓縮方式:
采用本發(fā)明的電子顯示標(biāo)簽,均已預(yù)存字庫字符編碼表,實(shí)際使用中,先要將字符進(jìn)行編碼,并儲存到flash中。字庫主要包含了中文、英文、數(shù)字、特殊字符等。
識別到字符內(nèi)容,進(jìn)入字符壓縮引擎后,對于字符編碼,壓縮后信息僅包含字符位置坐標(biāo)文字5起始坐標(biāo)=(x1,y1),文字5終點(diǎn)坐標(biāo)=(x2,y2)、字符對應(yīng)編號(w1。。wn)。
步驟三、圖案壓縮處理引擎:對圖案內(nèi)容采用本發(fā)明設(shè)計(jì)的優(yōu)化游程判定壓縮編碼:
當(dāng)游程長度不大于最小游程范圍7時,不對信息進(jìn)行壓縮,判定信息內(nèi)容本身就很小,無需壓縮,該圖案類傳輸數(shù)據(jù)內(nèi)容如圖4所示。
當(dāng)游程長度大于256,將采用如圖7所示的長壓縮方式。
當(dāng)游程長度大于64,且小于256時,將采用如圖6所示的中壓縮方式。
當(dāng)游程長度大于7,且小于64時,將采用如圖5所示的短壓縮方式。
對于不壓縮操作,第1比特為1表示不進(jìn)行壓縮,剩余7個比特表示圖像像素信息。
對短壓縮,第1比特為0表示進(jìn)行壓縮,第2比特表示后續(xù)重復(fù)像素的具體內(nèi)容,如果為1,則后續(xù)均為黑色;如果為0,則后續(xù)均為白色。剩余6位表示游程長度。
對中壓縮和長壓縮,第一字節(jié)均為信息字節(jié),第1比特位0表示進(jìn)行壓縮,第2比特表示后續(xù)重復(fù)像素的具體內(nèi)容。后6比特表示長壓縮還是中壓縮。
對于長壓縮,后續(xù)2字節(jié)表示游程長度;對于中壓縮,后續(xù)1字節(jié)表示游程長度。
假設(shè)圖像3像素信息如下,0表示白,1表示黑:
00000001111……1111000……000111…111
依次為連續(xù)8個白像素,連續(xù)60個黑像素,連續(xù)80個白像素,連續(xù)257個黑像素
對于圖像3,進(jìn)入圖案壓縮引擎后。從起始位置開始統(tǒng)計(jì)重復(fù)像素?cái)?shù)量,該重復(fù)數(shù)量定義為游程長度。
運(yùn)算得出圖像3的第一個重復(fù)像素內(nèi)容為0,游程長度為l=7,l不大于不壓縮最小游程范圍7,對于該部分內(nèi)容不進(jìn)行壓縮處理,選取后續(xù)連續(xù)7位直接傳輸像素內(nèi)容。則該部分內(nèi)容壓縮后用8bits表示:
10000000
隨后,進(jìn)入下一部分重復(fù)像素統(tǒng)計(jì),重復(fù)像素內(nèi)容為1,統(tǒng)計(jì)得出游程長度l=60。l超過不壓縮最小游程范圍7,小于64,對該部分內(nèi)容進(jìn)行短壓縮,壓縮后用一個8bits表示
大于64,小于256,對于該部分內(nèi)容,采用中壓縮方式編碼:
01111100
隨后,進(jìn)入下一部分重復(fù)像素統(tǒng)計(jì),重復(fù)像素內(nèi)容為0,統(tǒng)計(jì)得出游程長度l=80。l超過不壓縮最小游程范圍7,
大于64,小于256,對于該部分內(nèi)容,采用中壓縮方式編碼,壓縮后用16bits表示:
0000000001010000
隨后,進(jìn)入下一部分重復(fù)像素統(tǒng)計(jì),重復(fù)像素內(nèi)容為1,統(tǒng)計(jì)得出游程長度l=257。l大于256,對于該部分內(nèi)容,采用長壓縮方式編碼,壓縮后用24bits表示:
010000010000000100000001
步驟四、終端標(biāo)簽解壓縮,刷新顯示新圖像2。
終端標(biāo)簽收到文字5對應(yīng)信息,包括字符編碼表號(w1。。wn),搜索該字符編碼在f1ash中的坐標(biāo)為,(f1。。fn),解碼成功,對文字5起始坐標(biāo)=(x1,y1),文字5終點(diǎn)坐標(biāo)=(x2,y2);區(qū)域直接讀取(f1。。fn),表號的字庫flash像素進(jìn)行局部刷新顯示。
終端標(biāo)簽收到圖像3編碼內(nèi)容,進(jìn)行解碼。從圖像3起始坐標(biāo)=(x3,y3),圖像3終點(diǎn)坐標(biāo)=(x4,y4);開始依次通過解碼后,刷新以下內(nèi)容.
首先判斷第一個bit,為1,則判斷該8bits為不壓縮內(nèi)容,剩余7bits為像素內(nèi)容,連續(xù)顯示7個白像素.
隨后,判斷下一個字節(jié)第一個bit為0,則后續(xù)為壓縮內(nèi)容.第二個bit為1,則后續(xù)重復(fù)像素內(nèi)容為黑像素.再讀取后續(xù)6位,大于2,則僅有該6位表示游程長度.該六位為111100,則解碼為游程長度60.連續(xù)顯示60個黑像素.
隨后,判斷下一個字節(jié)第一個bit為0,則后續(xù)為壓縮內(nèi)容.第二個bit為0,則后續(xù)重復(fù)像素內(nèi)容為白像素.再讀取后續(xù)6位,000000,則表示該字節(jié)后的8bits為游程長度.即01010000,則解碼為游程長度80.連續(xù)顯示80個白像素.
隨后,判斷下一個字節(jié)第一個bit為0,則后續(xù)為壓縮內(nèi)容.第二個bit為1,則后續(xù)重復(fù)像素內(nèi)容為黑像素.再讀取后續(xù)6位,000001,則表示該字節(jié)后的16bits為游程長度.即0000000100000001,則解碼為游程長度257.連續(xù)顯示257個白像素。
本發(fā)明能夠在不增加電子顯示標(biāo)簽處理器資源的情況下,提供一種壓縮效率高,消耗資源少的圖像壓縮改進(jìn)方法。
本發(fā)明的圖像壓縮改進(jìn)方法可以自動識別圖像內(nèi)容和字符字符內(nèi)容,不需要人工干預(yù)處理。
使用本發(fā)明的圖像壓縮改進(jìn)方法可以有效的提高電子貨架標(biāo)簽的圖像傳輸響應(yīng)速度,提高電子貨架標(biāo)簽的整體工作效率,不但減少了圖像刷新傳輸?shù)臅r間,并且能夠有效的節(jié)省能耗,延長電子貨架標(biāo)簽的工作壽命。
以上所述僅為本發(fā)明的較佳實(shí)施例,本領(lǐng)域技術(shù)人員知悉,在不脫離本發(fā)明的精神和范圍的情況下,可以對這些特征和實(shí)施例進(jìn)行各種改變或等同替換。另外,在本發(fā)明的教導(dǎo)下,可以對這些特征和實(shí)施例進(jìn)行修改以適應(yīng)具體的情況及材料而不會脫離本發(fā)明的精神和范圍。因此,本發(fā)明不受此處所公開的具體實(shí)施例的限制,所有落入本申請的權(quán)利要求范圍內(nèi)的實(shí)施例都屬于本發(fā)明的保護(hù)范圍。