一種圖像壓縮展示方法及其裝置制造方法
【專利摘要】本發(fā)明公開了一種圖像壓縮展示方法及其裝置,其圖像壓縮展示方法,包括:A、提取圖像中的信源符號,掃描所述信源符號,統(tǒng)計連續(xù)出現(xiàn)的字符,得到至少一個字符組,所述字符組攜帶對應的字符及其重復次數(shù);B、根據(jù)所述重復次數(shù)計算對應字符出現(xiàn)的頻率、進行哈夫曼編碼、獲取壓縮后的圖像數(shù)據(jù)。本發(fā)明通過對現(xiàn)有Huffman編碼算法進行改進,能減少甚至消除Huffman編碼算法中溢出的問題。特別是針對原始圖像數(shù)據(jù)高度相關(guān)的,含有大量的冗余信息的情況,能減少冗余壓縮數(shù)據(jù),提高圖片的編碼質(zhì)量,使圖片壓縮存儲速度更快、圖片還原效果更好。
【專利說明】一種圖像壓縮展示方法及其裝置
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及圖像壓縮編碼【技術(shù)領(lǐng)域】,特別涉及一種圖像壓縮展示方法及其裝置?!颈尘凹夹g(shù)】
[0002]現(xiàn)有數(shù)字圖像處理(Digital Image Processing)又稱為計算機圖像處理,其是將圖像信號轉(zhuǎn)換成數(shù)字信號并利用計算機對其進行處理的過程。圖像經(jīng)過壓縮編碼后能減少描述圖像的數(shù)據(jù)量(即比特數(shù)),以便節(jié)省圖像的傳輸時間、處理時間和減少所占用的存儲器容量。圖像壓縮能減少表示數(shù)字圖像時需要的數(shù)據(jù)量,以較少的比特有損或無損地表示原來的像素矩陣,也稱圖像編碼。圖像展示時需要先解壓縮,將圖像信息從已經(jīng)編碼的形式恢復到編碼前的原圖像。
[0003]現(xiàn)階段常用的圖片壓縮算法有Huffman (哈夫曼)編碼壓縮算法,這種編碼方法根據(jù)源數(shù)據(jù)各信號發(fā)生的概率進行編碼,如在源數(shù)據(jù)中出現(xiàn)概率越大的信號,分配的字碼越短;出現(xiàn)概率越小的信號,其字碼的碼長就越長,從而達到以盡可能少的碼來表示源數(shù)據(jù)。
[0004]但是Huffman編碼壓縮算法在實際使用中存在一定的缺陷:在壓縮的過程中編碼花費時間長,并且字符容易溢出,壓縮效率不高。另外由于Huffman算法是基于詞頻統(tǒng)計的,更適用于有大量重復單詞的情況,因此實用性不強。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種圖像壓縮展示方法及其裝置,以解決現(xiàn)有技術(shù)中壓縮效率不高的問題。
[0006]為了達到上述目的,本發(fā)明采取了以下技術(shù)方案:
一種圖像壓縮展示方法,其包括:
A、提取圖像中的信源符號,掃描所述信源符號,統(tǒng)計連續(xù)出現(xiàn)的字符,得到至少一個字符組,所述字符組攜帶對應的字符及其重復次數(shù);
B、根據(jù)所述重復次數(shù)計算對應字符出現(xiàn)的頻率、進行哈夫曼編碼,獲取壓縮后的圖像數(shù)據(jù)。
[0007]所述的圖像壓縮展示方法,其中,所述步驟A具體包括:
Al、提取圖像中的信源符號;
A2、從第一個字符開始掃描信源符號,基于預設模板,統(tǒng)計連續(xù)出現(xiàn)的字符,獲取對應的字符組。
[0008]所述的圖像壓縮展示方法,其中,所述步驟A2具體包括:
A21、將第一個字符作為模板,開始向后掃描;
A22、從模板開始向后依次掃描預設個字符,判斷是否有與模板相同且連續(xù)出現(xiàn)的字符:若有,執(zhí)行步驟A23 ;若沒有,執(zhí)行步驟A24 ;其中所述預設個字符為2N個字符,N為預設重復字符個數(shù),且N為大于等于2的正整數(shù);
A23、統(tǒng)計該模板對應的字符連續(xù)重復的次數(shù),獲得對應字符組;將重復字符的下一位字符作為模板,返回步驟A22;
A24、記錄與當前模板的第一位字符對應的字符組,修正當前模板,判斷所述2N個字符內(nèi)是否有與所修正模板相同且連續(xù)出現(xiàn)的字符:若有則執(zhí)行步驟A23 ;否則繼續(xù)修正模板,直到修正模板的字符個數(shù)等于N,以該修正模板的下一個字符為模板,轉(zhuǎn)到步驟A22 ;
A25、若當前模板的最后一位字符為所述信源符號的最后一個字符,則停止,存儲所獲得字符組。
[0009]所述的圖像壓縮展示方法,其中,所述步驟A24具體包括:
A241、記錄與當前模板的第一個字符對應的字符組,以當前模板以及順延I位的字符作為假設模板,判斷當前所掃描的2N個字符內(nèi)是否有與該假設模板相同且連續(xù)出現(xiàn)的字符,若有則執(zhí)行步驟A242,否則執(zhí)行步驟A243 ;
A242、統(tǒng)計該假設模板對應的字符連續(xù)重復的次數(shù),獲得對應的字符組,將該假設模板的下一個字符作為模板,返回所述步驟A22 ;
A243、記錄與所述假設模板的第一個字符對應的字符組,以所述假設模板及順延I個字符作為修正模板,判斷當前所掃描的2N個字符內(nèi)是否有與所述修正模板相同且連續(xù)出現(xiàn)的字符,若有則執(zhí)行步驟A244,否則轉(zhuǎn)到A245 ;
A244、統(tǒng)計該修正模板對應的字符連續(xù)重復的次數(shù),獲得對應的字符組;將該修正模板的下一個字符作為模板,返回步驟A22 ;
A245、記錄與該修正模板的第一個字符對應的字符組,將所述修正模板向后增加一個字符,繼續(xù)變換模板,判斷當前所掃描的2N個字符內(nèi)是否有與當前模板相同且連續(xù)出現(xiàn)的字符,直到當前模板的字符個數(shù)等于N,返回步驟A22。
[0010]所述的圖像壓縮展示方法,其中,所述步驟A245中還包括:所述直到當前模板的字符個數(shù)等于N,返回步驟A22具體為:
A2450、若當前模板的字符個數(shù)等于N,判斷當前掃描的2N個字符內(nèi)是否有與當前模板相同且連續(xù)出現(xiàn)的字符,若是則轉(zhuǎn)向步驟A2451,否則轉(zhuǎn)向步驟A2452 ;
A2451、則以當前模板的下一位字符為模板,轉(zhuǎn)到步驟A22;
A2452、以當前模板的第一位字符為模板,轉(zhuǎn)到步驟A22。
[0011]所述的圖像壓縮展示方法,其中,所述步驟A之后還包括:
al、對所獲取與預設字符個數(shù)對應的字符組進行排列,得到一列字符組;a2、判斷該一列相鄰的字符組攜帶的字符是否完全一致,如果一致,則將相鄰的字符組組合在一起,得到整理后的一列字符組。
[0012]所述的圖像壓縮展示方法,其中,所述步驟a2之后還包括:
a3、分析每一列字符組,選擇字符組數(shù)量最少的一列字符組作為最佳一列字符組,轉(zhuǎn)到步驟B。
[0013]所述的圖像壓縮展示方法,其中,所述步驟B具體包括:
B1、根據(jù)重復次數(shù)計算出字符組中每個字符出現(xiàn)的頻率;
B2、按照頻率大小排列字符、構(gòu)建哈夫曼樹;
B3、對哈夫曼樹的分支進行標記,獲得每個字符的碼字,得到壓縮后的圖像數(shù)據(jù)。
[0014]所述的圖像壓縮展示方法,其中,在所述步驟B之后,還包括:
C、對壓縮后的圖像數(shù)據(jù)進行解碼展示。[0015]一種圖像壓縮展示裝置,其包括:
字符處理模塊,用于提取圖像中的信源符號,掃描所述信源符號,統(tǒng)計連續(xù)出現(xiàn)的字符,得到至少一個字符組,所述字符組攜帶對應的字符及其重復次數(shù);
壓縮編碼模塊,用于根據(jù)重復次數(shù)計算對應字符出現(xiàn)的頻率、進行哈夫曼編碼、獲取壓縮后的圖像數(shù)據(jù)。
[0016]相較于現(xiàn)有技術(shù),本發(fā)明提供的圖像壓縮展示方法及其裝置,對現(xiàn)有的Huffman編碼算法進行改進,提取圖像中的信源符號,掃描所述信源符號,統(tǒng)計連續(xù)出現(xiàn)的字符,得到至少一個字符組,所述字符組攜帶對應的字符及其重復次數(shù),根據(jù)所述重復次數(shù)計算對應字符出現(xiàn)的頻率,最后構(gòu)建哈夫曼樹獲得編碼;這種改進后的算法減少甚至消除了Huffman編碼算法中溢出的問題。特別是針對原始圖像數(shù)據(jù)高度相關(guān)的,含有大量的冗余信息的情況,能減少冗余壓縮數(shù)據(jù),提高圖片的編碼質(zhì)量,使圖片壓縮存儲速度更快、圖片還原效果更好。
【專利附圖】
【附圖說明】
[0017]圖1為本發(fā)明提供的圖像壓縮展示方法的方法流程圖。
[0018]圖2為本發(fā)明提供的圖像壓縮展示方法中哈夫曼樹的示意圖。
[0019]圖3為本發(fā)明提供的圖像壓縮展示的結(jié)構(gòu)框圖。
【具體實施方式】
[0020]本發(fā)明提供一種圖像壓縮展示方法及其裝置,對現(xiàn)有的Huffman編碼算法進行改進,。為了便于理解,本實施例先對哈夫曼編碼算法進行解釋。
[0021]哈夫曼編碼(Huffman Coding)是一種圖片處理的編碼方式。Huffman編碼算法的核心是構(gòu)建哈夫曼樹,它也是連接編碼解碼的紐帶。編碼時從葉節(jié)點逐步構(gòu)建中間節(jié)點,到整顆樹。樹的節(jié)點包括的信息有:節(jié)點表示的字符,子字節(jié)的位置,字符出現(xiàn)的頻度,父節(jié)點的位置等,這些都是構(gòu)造哈夫曼樹所需要的。而解碼時,只需要能夠根據(jù)位序列從樹的根節(jié)點循次遍歷到葉節(jié)點,葉節(jié)點保留其表示的字符。
[0022]為此,本發(fā)明基于圖片無損壓縮算法的應用,在現(xiàn)有Huffman編碼的基礎上提出一種改進編碼算法。先統(tǒng)計出信源符號中連續(xù)重復的字符,根據(jù)每個字符出現(xiàn)的次數(shù)計算其概率,最后構(gòu)建哈夫曼樹。為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下參照附圖并舉實施例對本發(fā)明進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0023]請參閱圖1,其為本發(fā)明提供的圖像壓縮展示方法的方法流程圖。本發(fā)明提供的圖像壓縮展示方法包括:
S100、提取圖像中的信源符號,掃描所述信源符號,統(tǒng)計連續(xù)出現(xiàn)的字符,得到至少一個字符組,所述字符組攜帶對應的字符及其重復次數(shù);
S200、根據(jù)所述重復次數(shù)計算對應字符出現(xiàn)的頻率、進行哈夫曼編碼,獲取壓縮后的圖像數(shù)據(jù)。
[0024]由于圖像的類型較多,如黑白圖像,彩色照片。顏色差異決定了信源符號中字符的總個數(shù)及頻率。因此,本發(fā)明需要對一圖像按照不同的重復字節(jié)個數(shù)各統(tǒng)計一次連續(xù)出現(xiàn)的字符,獲得相應的字符組。對每次編碼結(jié)果進行比較,以編碼后字符組最短的為準,后續(xù)對該字符組進行哈夫曼編碼。則所述步驟Sioo具體包括:
步驟1、提取圖像中的信源符號;
步驟2、從第一個字符開始掃描信源符號,基于預設模板,統(tǒng)計連續(xù)出現(xiàn)的字符,獲取對應的字符組。
[0025]其中,所述步驟2具體包括:
步驟21、將第一個字符作為模板,開始向后掃描。
[0026]信源符號中有多個字符,每個字符出現(xiàn)的位置和次數(shù)是固定。對這些從左到右排列的字符定位,先設定最左邊的第一個字符、即第一位的字符作為模板。
[0027]步驟22、從模板開始向后依次掃描預設個字符,判斷是否有與模板相同且連續(xù)出現(xiàn)的字符:若有,執(zhí)行步驟23 ;若沒有,執(zhí)行步驟24 ;其中,所述預設個字符為M個,而所述M=2N或M=2N-1,N為預設重復字節(jié)個數(shù),N為大于等于2的正整數(shù)。
[0028]本實施例中,M的取值可以為偶數(shù)或奇數(shù),與信源符號的字符總數(shù)關(guān)聯(lián),字符總數(shù)為奇數(shù)時M=2N-1 ;字符總數(shù)為偶數(shù)時M=2N。應當理解的是,M=2N或M=2N-1是本實施例的優(yōu)選方案,而選擇模板中字符的個數(shù)時,若M為偶數(shù),則所述字符的個數(shù)應該小于或等于M/2,當M為奇數(shù)時,所述字符的個數(shù)應該為小于或等于(M-l)/2。在具體實施時,為了突出掃描字符串中,保證有足夠的字符來分析是否連續(xù)出現(xiàn)某字符,此外還可以是其他數(shù)字,此處對此不作限制。模板可以為I個字符,2個不同的字符,或者7個不同的字符,此處對此不作限定。由所述N值可確定模板中不同字符的個數(shù)最多只能為N個。第一次掃描時先以I個字符為模板,查找后面該字符是否連續(xù)出現(xiàn)多次。
[0029]步驟23、統(tǒng)計該模板對應的字符連續(xù)重復的次數(shù),獲得對應字符組;將重復字符的下一位字符作為模板,返回步驟22。其中,字符組可以{XY}的方式標記,Y表示模板對應的字符,X表示該字符重復的次數(shù)。當I個字符連續(xù)重復出現(xiàn)的情況被標記后,需要設置另一個模板進行后續(xù)掃描,本實施例以重復字符的后一位字符作為新的模板。
[0030]步驟24、記錄與當前模板的第一位字符對應的字符組,修正當前模板,判斷所述2N個字符內(nèi)是否有與所修正模板相同且連續(xù)出現(xiàn)的字符:若有則執(zhí)行步驟23 ;否則繼續(xù)修正模板,直到修正模板的字符個數(shù)等于N(為了便于說明,此處優(yōu)選所述M為2N,N為大于等于2的自然數(shù)),以該修正模板的下一個字符為模板,轉(zhuǎn)到步驟22。
[0031]步驟25、若當前模板的最后一位字符為所述信源符號的最后一個字符,則停止,存儲所獲得字符組。
[0032]以M=2N為例,當I個字符沒有連續(xù)重復出現(xiàn)時,就要以2個字符為新的模板進行掃描(即修正當前模板);若2個字符也沒有連續(xù)重復出現(xiàn),就以3個字符為新的模板進行掃描,直至N個字符結(jié)束。所述步驟24具體包括:
步驟241、記錄與當前模板的第一個字符對應的字符組,以當前模板以及順延I位的字符作為假設模板,判斷當前所掃描的2N個字符內(nèi)是否有與該假設模板相同且連續(xù)出現(xiàn)的字符,若有則執(zhí)行步驟242,否則執(zhí)行步驟243。
[0033]假設當前模板內(nèi)有I個字符,則假設模板以該字符以及其后一位的字符組合而成,此時模板內(nèi)有2個字符。
[0034]步驟242、統(tǒng)計該假設模板對應的字符連續(xù)重復的次數(shù),獲得對應的字符組,將該假設模板的下一個字符作為模板,返回步驟22。
[0035]步驟243、記錄與所述假設模板的第一個字符對應的字符組,以所述假設模板及順延I個字符作為修正模板,判斷當前所掃描的2N個字符內(nèi)是否有與所述修正模板相同且連續(xù)出現(xiàn)的字符,若有則執(zhí)行步驟244,否則轉(zhuǎn)到步驟245。
[0036]步驟244、統(tǒng)計該修正模板對應的字符連續(xù)重復的次數(shù),獲得對應的字符組;將該修正模板的下一個字符作為模板,返回步驟A22。
[0037]步驟243中組合成的修正模板應為3個字符(假設模板內(nèi)的2個+順延一位的I個)。當后面的字符中,這3個字符重復出現(xiàn)多次,則執(zhí)行步驟244來標記對應的字符組,再次設置新的模板,此時當前模板內(nèi)字符的個數(shù)歸I。步驟245、記錄與該修正模板的第一個字符對應的字符組,將所述修正模板向后增加一個字符,繼續(xù)變換模板,判斷當前所掃描的2N個字符內(nèi)是否有與當前模板相同且連續(xù)出現(xiàn)的字符,直到當前模板的字符個數(shù)等于N,返回步驟22。
[0038]若沒有重復出現(xiàn)時繼續(xù)增加模板內(nèi)字符的個數(shù),直至該個數(shù)等于N時停止增加;若此時仍沒有與當前模板相同且連續(xù)出現(xiàn)的字符,則將該模板中的第一個字符以{1Y}的方式標記,I表示一個字符Y,Y為第一個字符,將該模板中第二個字符作為模板,返回步驟22。
[0039]其中,所述步驟245中,所述直到當前模板的字符個數(shù)等于N,返回步驟22具體為:
步驟2450、若當前模板的字符個數(shù)等于N,判斷當前掃描的2N個字符內(nèi)是否有與當前模板相同且連續(xù)出現(xiàn)的字符,若是則轉(zhuǎn)向步驟2451,否則轉(zhuǎn)向步驟2452 ;
步驟2451、則以當前模板的下一位字符為模板,轉(zhuǎn)到步驟22;
步驟2452、以當前模板的第一位字符為模板,轉(zhuǎn)到步驟22。
[0040]需要說明的是,在掃描過程中,判斷相同且連續(xù)出現(xiàn)的字符時,需要設置每一次掃描的字符個數(shù),某次掃描的字符串(例如abab,此時可能被記錄成{2ab})可能與下一次掃描的前一位或多位相同(例如abab),而采用上述的統(tǒng)計方式則會記錄成字符組{2ab}及{2ab},為了使統(tǒng)計效果更佳,此時需要將相鄰的攜帶完全相同字符的字符組合并在一起(例如{4ab})。則在所述步驟SlOO之后,還包括字符組合并方式,其具體為:先對所獲取與預設字符個數(shù)對應的字符組進行排列,得到一列字符組;接著判斷該一列字符組中是否存在著相鄰的字符組攜帶的字符是否完全一致的情況,如果一致,則將相鄰的字符組組合在一起,得到整理后的一列字符組,即壓縮了字符組的數(shù)量。而此合并過程可在統(tǒng)計的過程中進行,或者可以在全部信源符號被統(tǒng)計,得到至少一個字符組之后進行,此處對此不作限制。
[0041]為了便于理解,下面以一例子來描述掃描過程:
例如,一段信源符號為:ddba dbad bcdc dcdb abab abab add,共 19 位。
[0042]方式一、N=2,M=2N:
1、系統(tǒng)設定2為重復字符的最大個數(shù),即預設重復字節(jié)個數(shù)為2。將第一個字符d作為模板向后掃描至4個字節(jié),即在ddba段內(nèi)判斷d是否連續(xù)重復出現(xiàn)。字符d連續(xù)出現(xiàn)2次,獲得對應的字符組{2d}。
[0043]2、由于第三位的字符b與模板d不同,以重復字符d的后一位字符b為新的模板向后掃描4個字節(jié),即在badb段內(nèi)判斷字符b是否連續(xù)重復出現(xiàn)。
[0044]3、由于字符b后面是字符a,字符b沒有連續(xù)重復出現(xiàn),以字符ba為模板進行掃描,模板(ba)沒有連續(xù)重復出現(xiàn),且字符ba以達到預設重復字節(jié)個數(shù)的最大值,將該模板中的第一個字符以{lb}的方式標記,將模板中第二個字符、即字符a (第4位)作為模板向后掃描。
[0045]4、由于字符a后面為字符d (第5位),沒有連續(xù)重復出現(xiàn),以字符ad為模板掃描。由于后續(xù)沒有字符ad連續(xù)重復出現(xiàn)的情況,則標記{la},將字符d (第5位)作為模板。
[0046]5、字符d沒有連續(xù)重復出現(xiàn),以字符db為模板掃描。沒有字符db連續(xù)重復出現(xiàn)的情況,則標記{Id},將字符b (第6位)作為模板。
[0047]6、字符b (第6位)沒有連續(xù)重復出現(xiàn),以字符ba為模板掃描。沒有字符ba連續(xù)重復出現(xiàn)的情況,則標記{lb},將字符a (第7位)作為模板。
[0048]7、字符a (第7位)沒有連續(xù)重復出現(xiàn),以字符ad為模板掃描。沒有字符ad連續(xù)重復出現(xiàn)的情況,則標記{la},將字符d (第8位)作為模板。
[0049]8、字符d (第8位)沒有連續(xù)重復出現(xiàn),以字符db為模板掃描。沒有字符db連續(xù)重復出現(xiàn)的情況,則標記{ld},將字符b (第9位)作為模板。
[0050]9、字符b (第9位)沒有連續(xù)重復出現(xiàn),以字符be為模板掃描。沒有字符be連續(xù)重復出現(xiàn)的情況,則標記{lb},將字符c (第10位)作為模板。
[0051]10、字符c (第10位)沒有連續(xù)重復出現(xiàn),以字符Cd為模板掃描。
[0052]有字符Cd連續(xù)重復出現(xiàn)3次的情況,則標記{3cd},將字符b(第15位)作為模板。
[0053]11、字符b (第15位)沒有連續(xù)重復出現(xiàn),以字符ba為模板掃描。有字符ba連續(xù)重復出現(xiàn)5次的情況,則標記{5ba},將字符d (第26位)作為模板。具體地,此步驟10及
11中,省略了將{2cd}、{led}合并為{3cd},將{2ba}、{2ba}、{lba}合并為{5ba}的過程。
[0054]12、字符d (第26位)有連續(xù)重復出現(xiàn)2次,則標記{2d},本次掃描結(jié)束。最終編碼得到的字符組組合為:{2d}, {lb}, {la}, {Id}, {lb}, {la}, {Id},{lb},{3cd}, {5ba},{2d}。
[0055]方式二、以同樣的信源符號為例,以N=3,M=2N來編碼,過程如下:
1、將第一個字符d作為模板,字符d連續(xù)出現(xiàn)2次,標記為{2d},以字符b為模板掃描。
[0056]2、字符b(第2位)沒有連續(xù)重復出現(xiàn),以字符ba為模板掃描。沒有字符ba連續(xù)重復出現(xiàn)的情況,以字符bad為模板掃描。
[0057]3、字符bad有連續(xù)重復出現(xiàn)2次,則標記{2bad},將字符b (第9位)作為模板。
[0058]4、字符b (第9位)沒有連續(xù)重復出現(xiàn),以字符be為模板掃描。沒有字符be連續(xù)重復出現(xiàn)的情況,以字符bed為模板掃描。
[0059]5、字符bed沒有有連續(xù)重復出現(xiàn),則標記{lb},將字符c (第10位)作為模板。
[0060]6、字符c (第10位)沒有連續(xù)重復出現(xiàn),以字符Cd為模板掃描。有字符Cd連續(xù)重復出現(xiàn)3次,則標記{3cd},將字符b (第15位)作為模板。
[0061]7、字符b (第15位)沒有連續(xù)重復出現(xiàn),以字符ba為模板掃描。有字符ba連續(xù)重復出現(xiàn)5次的情況,則標記{5ba},將字符d (第26位)作為模板。
[0062]8、字符d (第26位)有連續(xù)重復出現(xiàn)2次,則標記{2d},本次掃描結(jié)束。最終編碼得到的字符組組合為:{2d},{2bad},{lb}, {3cd}, {5ba},{2d}。此步驟7及8的過程中,首先出現(xiàn)了 {3ba}、{2ba},省略了將{3ba}、{2ba}合并為{5ba}的過程。
[0063]按照上述方式對N取不同值可得到不同的字符組。本實施例中對N的取值不作限定。為了減少編碼壓縮時間、獲得更佳的壓縮效果,在得到多列字符組后,可分析每一列字符組,選擇字符組數(shù)量最少的一列字符組作為最佳一列字符組,然后再執(zhí)行步驟S200。
[0064]在具體實施時,可選擇不同的N值執(zhí)行步驟SlOO以及相關(guān)步驟獲得多個字符組組合,比較多個字符組組合的長度、即{XY}的個數(shù)。以字符組組合最短(即{XY}最少)的N值為預設重復字節(jié)個數(shù),并以該字符組組合作為哈夫曼編碼的依據(jù),執(zhí)行步驟S200 ;此為綜合比較得出的最優(yōu)編碼壓縮方式。本實施例中,方式二的編碼效果明顯優(yōu)于方式一的編碼效果。下面以方式二的編碼結(jié)果構(gòu)建哈夫曼樹。則步驟S200具體包括:
第一步、根據(jù)重復次數(shù)計算出字符組中每個字符出現(xiàn)的頻率。
[0065]【{2d},{2bad},{lb},{3cd},{5ba},{2d}】出現(xiàn)的概率相應為【0.1333,
0.1333,0.0667,0.2,0.3333,0.1333】。計算結(jié)果有循環(huán),以四舍五入法取值。
[0066]第二步、按照頻率大小排列字符、構(gòu)建哈夫曼樹。
[0067]排序為:【{5ba},{3cd},{2d},{2bad},{2d},{lb}】,構(gòu)建的哈夫曼樹如圖3所示。
[0068]第三步、對哈夫曼樹的分支進行0、1標記,獲得每個字符的碼字,得到壓縮后的圖像數(shù)據(jù)。
[0069]【{2d},{2bad},{lb},{3cd},{5ba},{2d}】對應的哈夫曼編碼為:110、010、000、01、11、100。
[0070]需要展示該圖像時,對壓縮后的圖像數(shù)據(jù)進行解碼展示即可,解碼為上述編碼的逆運算,此處對此不作詳述。
[0071]本實施例先統(tǒng)計重復碼再進行哈夫曼編碼,對防止現(xiàn)有技術(shù)在存儲過程中的溢出起到了改進作用。特別是針對原始圖像數(shù)據(jù)高度相關(guān)的,含有大量的冗余信息。這種改進的Huffman編碼壓縮算法能消除圖片信息中的各種冗余,從而達到減少冗余壓縮數(shù)據(jù)的目的,使它符合預定應用場合的要求。
[0072]基于上述的圖像壓縮展示方法,本發(fā)明還相應提供一種圖像壓縮展示裝置,其包括字符處理模塊101、壓縮編碼模塊102和展示模塊103。字符處理模塊101提取圖像中的信源符號,掃描所述信源符號,統(tǒng)計連續(xù)出現(xiàn)的字符,得到至少一個字符組,所述字符組攜帶對應的字符及其重復次數(shù)。壓縮編碼模塊102根據(jù)所述重復次數(shù)計算對應字符出現(xiàn)的頻率、進行哈夫曼編碼,獲取壓縮后的圖像數(shù)據(jù)。
[0073]用戶需要觀看圖像時,由展示模塊103檢索到某一圖像后,對其壓縮后的圖像數(shù)據(jù)進行解碼展示,其解碼的過程為壓縮編碼的逆向運算,能無損還原原始圖像。該展示模塊103還可以提供不同的展示風格,如添加不同類型的相框,或者增加柔光、淡雅、復古等特效。
[0074]對于圖像、照片數(shù)量較多的情況,所述圖像壓縮展示裝置還包括數(shù)據(jù)采集模塊104;其對圖像、照片進行采集、篩選后進行臨時存儲,存儲采用文件存儲的方式進行組織,并在必要時進行數(shù)據(jù)的傳輸工作,是該裝置的入口模塊,后續(xù)功能的開展依賴此模塊的正常使用。
[0075]本發(fā)明提供的圖像壓縮展示裝置適用于對任何圖片、照片,特別是顏色較為復雜的圖像的壓縮編碼,其可以設置在移動終端上,也可以設置在PC機上。所述數(shù)據(jù)采集模塊也可以設置在其他終端上,則此時的圖像壓縮展示裝置僅具有壓縮展示功能。特別地,本發(fā)明適用于智能電視(包括壓縮編碼模塊、展示模塊、初始化模塊)的相片展示應用。當智能終端(包括數(shù)據(jù)采集模塊)拍攝照片后通過有線或無線方式(采用IEEE802.1lWLAN無線傳輸標準)上傳給智能電視。智能電視中的壓縮編碼模塊對照片采取上述實施例的方法進行無損壓縮編碼后保存。當需要觀看某一照片時,展示模塊對壓縮后的圖像數(shù)據(jù)進行解碼展示即可。
[0076]綜上所述,本發(fā)明在現(xiàn)有Huffman編碼的基礎上提出一種改進編碼算法,先統(tǒng)計出信源符號中連續(xù)出現(xiàn)的字符,得到攜帶對應的字符及其重復次數(shù)的字符組,以字符組最少一組為哈夫曼編碼的依據(jù),根據(jù)每個字符重復的次數(shù)計算其頻率,最后構(gòu)建哈夫曼樹獲得編碼。這種改進后的算法減少甚至消除了 Huffman編碼算法中溢出的問題。特別是針對原始圖像數(shù)據(jù)高度相關(guān)的,含有大量的冗余信息的情況,能減少冗余壓縮數(shù)據(jù),提高圖片的編碼質(zhì)量,使圖片壓縮存儲速度更快、圖片還原效果更好,更符合預定應用場合的要求。
[0077]另外,本發(fā)明適用于智能電視的照片展示應用,使用戶便捷的體驗智能終端與智能電視的融合交互,能生成高質(zhì)量的展示效果,提高了用戶的體驗度。
[0078]可以理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案及其發(fā)明構(gòu)思加以等同替換或改變,而所有這些改變或替換都應屬于本發(fā)明所附的權(quán)利要求的保護范圍。
【權(quán)利要求】
1.一種圖像壓縮展示方法,其特征在于,包括: A、提取圖像中的信源符號,掃描所述信源符號,統(tǒng)計連續(xù)出現(xiàn)的字符,得到至少一個字符組,所述字符組攜帶對應的字符及其重復次數(shù); B、根據(jù)所述重復次數(shù)計算對應字符出現(xiàn)的頻率、進行哈夫曼編碼,獲取壓縮后的圖像數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的圖像壓縮展示方法,其特征在于,所述步驟A具體包括: Al、提取圖像中的信源符號; A2、從第一個字符開始 掃描信源符號,基于預設模板,統(tǒng)計連續(xù)出現(xiàn)的字符,獲取對應的字符組。
3.根據(jù)權(quán)利要求2所述的圖像壓縮展示方法,其特征在于,所述步驟A2具體包括: A21、將第一個字符作為模板,開始向后掃描; A22、從模板開始向后依次掃描預設個字符,判斷是否有與模板相同且連續(xù)出現(xiàn)的字符:若有,執(zhí)行步驟A23 ;若沒有,執(zhí)行步驟A24 ;其中所述預設個字符為2N個字符,N為預設重復字符個數(shù),且N為大于等于2的正整數(shù); A23、統(tǒng)計該模板對應的字符連續(xù)重復的次數(shù),獲得對應字符組;將重復字符的下一位字符作為模板,返回步驟A22; A24、記錄與當前模板的第一位字符對應的字符組,修正當前模板,判斷所述2N個字符內(nèi)是否有與所修正模板相同且連續(xù)出現(xiàn)的字符:若有則執(zhí)行步驟A23 ;否則繼續(xù)修正模板,直到修正模板的字符個數(shù)等于N,以該修正模板的下一個字符為模板,轉(zhuǎn)到步驟A22 ; A25、若當前模板的最后一位字符為所述信源符號的最后一個字符,則停止,存儲所獲得字符組。
4.根據(jù)權(quán)利要求3所述的圖像壓縮展示方法,其特征在于,所述步驟A24具體包括: A241、記錄與當前模板的第一個字符對應的字符組,以當前模板以及順延I位的字符作為假設模板,判斷當前所掃描的2N個字符內(nèi)是否有與該假設模板相同且連續(xù)出現(xiàn)的字符,若有則執(zhí)行步驟A242,否則執(zhí)行步驟A243 ; A242、統(tǒng)計該假設模板對應的字符連續(xù)重復的次數(shù),獲得對應的字符組,將該假設模板的下一個字符作為模板,返回所述步驟A22 ; A243、記錄與所述假設模板的第一個字符對應的字符組,以所述假設模板及順延I個字符作為修正模板,判斷當前所掃描的2N個字符內(nèi)是否有與所述修正模板相同且連續(xù)出現(xiàn)的字符,若有則執(zhí)行步驟A244,否則轉(zhuǎn)到A245 ; A244、統(tǒng)計該修正模板對應的字符連續(xù)重復的次數(shù),獲得對應的字符組;將該修正模板的下一個字符作為模板,返回步驟A22 ; A245、記錄與該修正模板的第一個字符對應的字符組,將所述修正模板向后增加一個字符,繼續(xù)變換模板,判斷當前所掃描的2N個字符內(nèi)是否有與當前模板相同且連續(xù)出現(xiàn)的字符,直到當前模板的字符個數(shù)等于N,返回步驟A22。
5.根據(jù)權(quán)利要求4所述的圖像壓縮展示方法,其特征在于,所述步驟A245中還包括:所述直到當前模板的字符個數(shù)等于N,返回步驟A22具體為: A2450、若當前模板的字符個數(shù)等于N,判斷當前掃描的2N個字符內(nèi)是否有與當前模板相同且連續(xù)出現(xiàn)的字符,若是則轉(zhuǎn)向步驟A2451,否則轉(zhuǎn)向步驟A2452 ;A2451、則以當前模板的下一位字符為模板,轉(zhuǎn)到步驟A22; A2452、以當前模板的第一位字符為模板,轉(zhuǎn)到步驟A22。
6.根據(jù)權(quán)利要求1所述的圖像壓縮展示方法,其特征在于,所述步驟A之后還包括: al、對所獲取與預設字符個數(shù)對應的字符組進行排列,得到一列字符組; a2、判斷該一列相鄰的字符組攜帶的字符是否完全一致,如果一致,則將相鄰的字符組組合在一起,得到整理后的一列字符組。
7.根據(jù)權(quán)利要求6所述的圖像壓縮展示方法,其特征在于,所述步驟a2之后還包括: a3、分析每一列字符組,選擇字符組數(shù)量最少的一列字符組作為最佳一列字符組,轉(zhuǎn)到步驟B。
8.根據(jù)權(quán)利要求1所述的圖像壓縮展示方法,其特征在于,所述步驟B具體包括: B1、根據(jù)重復次數(shù)計算出字符組中每個字符出現(xiàn)的頻率; B2、按照頻率大小排列字符、構(gòu)建哈夫曼樹; B3、對哈夫曼樹的分支進行標記,獲得每個字符的碼字,得到壓縮后的圖像數(shù)據(jù)。
9.根據(jù)權(quán)利要求1所述的圖像壓縮展示方法,其特征在于,在所述步驟B之后,還包括: C、對壓縮后的圖像數(shù)據(jù)進行解碼展示。
10.一種圖像壓縮展示裝置,其特征在于,包括: 字符處理模塊,用于提取圖像中的信源符號,掃描所述信源符號,統(tǒng)計連續(xù)出現(xiàn)的字符,得到至少一個字符組,所述字符組攜帶對應的字符及其重復次數(shù); 壓縮編碼模塊,用于根據(jù)重復次數(shù)計算對應字符出現(xiàn)的頻率、進行哈夫曼編碼、獲取壓縮后的圖像數(shù)據(jù)。
【文檔編號】H04N19/96GK103702133SQ201310701797
【公開日】2014年4月2日 申請日期:2013年12月19日 優(yōu)先權(quán)日:2013年12月19日
【發(fā)明者】岳麓, 劉莫閑 申請人:Tcl集團股份有限公司