專利名稱:圖像壓縮、解壓縮方法及設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理領(lǐng)域,特別涉及圖像壓縮、解壓縮技術(shù)。
背景技術(shù):
圖像是表達(dá)信息的有效形式, 一幅生動(dòng)的圖像可能比一百句文字更富有 表達(dá)力。
一幅圖像由若干像素組成,每個(gè)像素都以一個(gè)整數(shù)表示其顏色,本
發(fā)明中稱為顏色值,通常以顏色值的比特?cái)?shù)來(lái)稱呼圖像的類型,例如16位 顏色圖像的顏色值就是16比特,24位顏色圖像的顏色值就是24比特等等。 如果是灰度圖像其顏色值就是灰度值,如果是彩色圖像,其顏色值的不同部 分通??梢苑謩e表示紅、綠、藍(lán)三種基本顏色的強(qiáng)度。
為了使人機(jī)交互界面更為友好,在通信設(shè)備和個(gè)人電腦(Personal Computer,簡(jiǎn)稱"PC")中經(jīng)常使用圖像來(lái)表達(dá)信息。圖像中含有的信息 量較多,其存儲(chǔ)需要較多的空間,為了在有限的空間存儲(chǔ)更多的圖像,需要 對(duì)圖像進(jìn)行壓縮。
圖像的壓縮有兩種類型, 一種是無(wú)損的,即圖像被解壓縮后可以完全地 恢復(fù)原圖像中的所有信息,另一種是有損的,即圖像被解壓縮后相對(duì)于原圖 像可能會(huì)損失部分細(xì)節(jié)信息。
衡量壓縮算法的好壞有幾個(gè)常用的指標(biāo)
壓縮比,越大越好。
解碼速度,越快越好。
是否有損,最好是無(wú)損的。下面介紹幾種常見(jiàn)壓縮算法的優(yōu)缺點(diǎn)
行程算法。優(yōu)點(diǎn)是在大片圖像顏色值相同的情況下壓縮比較高(>3:1), 解碼速度快。缺點(diǎn)是對(duì)顏色較豐富圖像壓縮比低,接近1:1。
huffman壓縮算法。這是一種一般性的壓縮算法,并非針對(duì)圖像壓縮, 壓縮比大約2 3:1。缺點(diǎn)是,對(duì)顏色較豐富圖像壓縮比下降到1.5:1以下, 解碼速度慢,解碼時(shí)間大于行程算法4倍。
字典壓縮算法。這也不是針對(duì)圖像壓縮的算法,壓縮比大約2 3:1,缺 點(diǎn)是,顏色較豐富圖像壓縮比下降到1.5:1以下,解碼速度慢,解碼時(shí)間大 于行程算法4倍,算法復(fù)雜。
聯(lián)合圖像專家組(Joint Photographic Experts Group,簡(jiǎn)稱"JPEG")
算法。其優(yōu)點(diǎn)的壓縮比較高,缺點(diǎn)是算法復(fù)雜,解碼時(shí)間較長(zhǎng),而且是有損 的。申請(qǐng)?zhí)枮?0/390, 263的美國(guó)專利就提出了一種基于JPEG的改進(jìn)算法。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種圖像壓縮、解壓縮方法及設(shè)備,圖像可以無(wú) 損地壓縮,有一定的壓縮比且解碼較快。
為解決上述技術(shù)問(wèn)題,本發(fā)明的實(shí)施方式提供了一種圖像壓縮方法,包 括以下步驟
依次將圖像中各相鄰像素的顏色值相減得到各差值; 統(tǒng)計(jì)各差值出現(xiàn)的頻率;
為出現(xiàn)頻率最高的N個(gè)差值設(shè)定索引值,N為正整數(shù);
依次將圖像中各像素的壓縮值寫(xiě)入壓縮結(jié)果,其中,如果當(dāng)前像素與前 一像素的顏色值的差值有索引值,則將該差值對(duì)應(yīng)的索引值作為當(dāng)前像素的 壓縮值,否則將當(dāng)前像素的顏色值作為壓縮值。本發(fā)明的實(shí)施方式還提供了 一種圖像解壓縮方法,包括以下步驟
判斷壓縮結(jié)果中當(dāng)前還未被解壓縮的剩余信息中首個(gè)壓縮值的類型;
如果該壓縮值的類型為索引值,則根據(jù)該索引值查找索引表,得到對(duì)應(yīng) 的差值,再將該差值加上前一像素的顏色值得到當(dāng)前像素的顏色值;
如果該壓縮值的類型為顏色值,則讀取該顏色值作為當(dāng)前像素的顏色
值;
重復(fù)上述各步驟,直至壓縮結(jié)果被處理完畢。
本發(fā)明的實(shí)施方式還提供了一種圖像壓縮設(shè)備,包括
減法單元,用于依次將圖像中各相鄰像素的顏色值相減得到各差值;
統(tǒng)計(jì)單元,用于統(tǒng)計(jì)減法單元所得到的各差值出現(xiàn)的頻率;
索引生成單元,用于根據(jù)統(tǒng)計(jì)單元的統(tǒng)計(jì)結(jié)果,為出現(xiàn)頻率最高的N個(gè) 差值設(shè)定索引值,N為正整數(shù);
寫(xiě)入單元,用于依次將圖像中各像素的壓縮值寫(xiě)入壓縮結(jié)果;
判斷單元,用于判斷當(dāng)前像素與前一像素的顏色值的差值是否有索引 值,如果有則指示寫(xiě)入單元將該差值對(duì)應(yīng)的索引值作為當(dāng)前像素的壓縮值寫(xiě) 入壓縮結(jié)果,如果沒(méi)有則指示寫(xiě)入單元將當(dāng)前像素的顏色值作為壓縮值寫(xiě)入 壓縮結(jié)果。
本發(fā)明的實(shí)施方式還提供了一種圖像解壓縮設(shè)備,包括
類型判斷單元,用于判斷壓縮結(jié)果中當(dāng)前還未被解壓縮的剩余信息中首 個(gè)壓縮值的類型;
索引表緩存單元,用于緩存索引表;
索引表查找單元,用于查找索引表緩存單元中的索引表;
加法單元,用于將兩值相加;讀取單元,用于從壓縮結(jié)果中讀取信息;
如果類型判斷單元判定當(dāng)前壓縮值的類型為索引值,則指示索引表查找 單元查找索引表,得到對(duì)應(yīng)的差值,再由加法單元將該差值加上前一像素的 顏色值得到當(dāng)前像素的顏色值;
如果類型判斷單元判定當(dāng)前壓縮值的類型為顏色值,則指示讀取單元讀 取該顏色值作為當(dāng)前像素的顏色值。
本發(fā)明實(shí)施方式與現(xiàn)有技術(shù)相比,主要區(qū)別及其效果在于
只對(duì)頻率最高的部分差值進(jìn)行索引,因?yàn)楸凰饕牟钪递^少,索引值所 占的比特?cái)?shù)也較少,可以取得較好的壓縮效果,未使用索引的像素直接用顏 色值,簡(jiǎn)化了處理。因?yàn)樗惴ê?jiǎn)單,而且沒(méi)有進(jìn)行近似處理,所以圖像是無(wú) 損的、壓縮和解壓縮的速度快。
進(jìn)一步地,通過(guò)將索引表分為兩級(jí),使用更少的比特就可以表示出現(xiàn)頻 率最高的前M個(gè)差值,從而在整體上可以有更好的壓縮效果。
進(jìn)一步地,對(duì)于在無(wú)線設(shè)備領(lǐng)域和個(gè)人電腦中常見(jiàn)的16位圖像,使用 M = 4、 N= 195的參數(shù)可以有較好的效果。經(jīng)仿真測(cè)試,使用M-4、 N= 195 的參數(shù)時(shí),大多數(shù)16位圖像被索引的像素比例達(dá)到90%以上,壓縮比在2 至4之間。
N通過(guò)公式N-(16-M廣16-1+M得到,半個(gè)字節(jié)的取值范圍是0至15, 共16種可能,通過(guò)在前半字節(jié)將M種取值排除掉,使得第二索引表中的索 引值不會(huì)與第一索引表中的索引值相沖突,通過(guò)將表示顏色值的全1去掉, 使第二索引表中的索引值不會(huì)與顏色值相沖突。
進(jìn)一步地,通過(guò)以全1的字節(jié)作為顏色值的前導(dǎo),可以使顏色值不會(huì)與 索引值相混淆,在解壓縮端可以方便地區(qū)分索引值和顏色值,簡(jiǎn)化解壓縮端 的處理。
10進(jìn)一步地,通過(guò)對(duì)差值進(jìn)行排序,只要按順序選取前M和前N-M個(gè)差 值就可以生成第一、第二索引表,處理起來(lái)較為方便。
圖1是本發(fā)明第一實(shí)施方式中圖像壓縮方法流程圖; 圖2是本發(fā)明第一實(shí)施方式中各種編碼單元的示例圖; 圖3是本發(fā)明第一實(shí)施方式中編碼單元控制字符范圍; 圖4是本發(fā)明第二實(shí)施方式中圖像解壓縮方法流程圖; 圖5是本發(fā)明第三實(shí)施方式中圖像解壓縮方法流程圖。
具體實(shí)施例方式
在以下的敘述中,為了使讀者更好地理解本申請(qǐng)而提出了許多技術(shù)細(xì) 節(jié)。但是,本領(lǐng)域的普通技術(shù)人員可以理解,即使沒(méi)有這些技術(shù)細(xì)節(jié)和基于 以下各實(shí)施方式的種種變化和修改,也可以實(shí)現(xiàn)本申請(qǐng)各權(quán)利要求所要求保
護(hù)的技術(shù)方案。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā) 明的實(shí)施方式作進(jìn)一步地詳細(xì)描述。
本發(fā)明第一實(shí)施方式涉及一種圖像壓縮方法。其流程如圖1所示。
在步驟101中,依次將圖像中各相鄰像素的顏色值相減得到各差值。本 發(fā)明實(shí)施方式中所稱的圖像可以是灰度的也可以是彩色的,差值是全色差值, 也就是將兩個(gè)像素的整個(gè)顏色值相減得到。目前一般的看法是色彩在每一個(gè) 單色上變化較小,所以每一個(gè)單色分別求差值效果較好,但發(fā)明人通過(guò)仿真 發(fā)現(xiàn)全色差值的效果與分色差值差不多,因此本發(fā)明的實(shí)施方式使用全色差值,全色差值處理起來(lái)更為方便。
例如,顏色值(4x4色塊)
16, 28, 29, 31,
23, 43, 54, 35,
36, 47, 23, 15,
29, 31, 33, 30
差值
16, 12, 1, 2, -8, 20, 11, -19, 1, ", -24, -8, 14, 2, 2, -3
此后進(jìn)入步驟102,統(tǒng)計(jì)各差值出現(xiàn)的頻率。
此后進(jìn)入步驟10 3 ,根據(jù)統(tǒng)計(jì)得到的各差值出現(xiàn)的頻率從高到低的順序, 對(duì)各差值進(jìn)行排序。
在步驟101所舉的例子中,排序后的序列為
2, 1, 11, -8, 16, 12, 20, -19, -24, 14, -3
此后進(jìn)入步驟104,為出現(xiàn)頻率最高的N個(gè)差值設(shè)定索引值,N為正整 數(shù)。本步驟中只對(duì)頻率最高的部分差值進(jìn)行索引,因?yàn)楸凰饕牟钪递^少, 索引值所占的比特?cái)?shù)也較少,可以取得較好的壓縮效果,未使用索引的像素 直接用顏色值,筒化了處理。因?yàn)樗惴ê?jiǎn)單,而且沒(méi)有進(jìn)行近似處理,所以 圖像是無(wú)損的、壓縮和解壓縮的速度快。
在步驟101所舉的例子中,2, 1, 11, -8都出現(xiàn)了至少2次,屬于高 頻率值,應(yīng)當(dāng)為它們?cè)O(shè)定索引值。步驟104進(jìn)一步包括以下子步驟
從N個(gè)差值中選取出現(xiàn)頻率最高的M個(gè)差值,填入第一索引表,其中 M和N是預(yù)先設(shè)定的值,M<N。
將剩余的N-M個(gè)差值填入第二索引表,其中第一索引表的索引值的比特 數(shù)小于第二索引表的索引值的比特?cái)?shù)。
通過(guò)將索引表分為兩級(jí),使用更少的比特就可以表示出現(xiàn)頻率最高的前 M個(gè)差值,從而在整體上可以有更好的壓縮效果。在本發(fā)明的一個(gè)特殊例子 中,M可以為0,這樣只有一個(gè)第二索引表。
因?yàn)樵诓襟E103中對(duì)差值進(jìn)行了排序,只要按順序選取前M和前N-M 個(gè)差值就可以生成第一、第二索引表,處理起來(lái)較為方便。當(dāng)然,可以理解, 也可以不對(duì)差值進(jìn)行排序,直接得到N個(gè)頻率最高的差值,同一索引表中的 各差值地位是相同的,并不需要按頻率排序。
此后進(jìn)入步驟105,判斷當(dāng)前像素與前一像素的顏色值的差值是否有索 引值,也就是說(shuō)該差值是否在第一或第二索引表中,如果有索引值則進(jìn)入步 驟106,否則進(jìn)入步驟107。
在步驟106中,因?yàn)楫?dāng)前像素與前一像素的顏色值的差值有索引值,所 以將該差值對(duì)應(yīng)的索引值作為當(dāng)前像素的壓縮值寫(xiě)入緩存。此后進(jìn)入步驟 108。
在步驟107中,因?yàn)楫?dāng)前像素與前一像素的顏色值的差值沒(méi)有索引值, 所以將當(dāng)前像素的顏色值作為壓縮值寫(xiě)入緩存。此后進(jìn)入步驟108。在本發(fā) 明的 一個(gè)實(shí)際例子中,將當(dāng)前像素的顏色值作為壓縮值寫(xiě)入緩存的具體做法 是先向壓縮結(jié)果寫(xiě)入一個(gè)全1的字節(jié),再向壓縮結(jié)果寫(xiě)入2個(gè)字節(jié)的顏色 值。
通過(guò)以全1的字節(jié)作為顏色值的前導(dǎo),可以使顏色值不會(huì)與索引值相混淆,在解壓縮端可以方^f更地區(qū)分索引值和顏色值,簡(jiǎn)化解壓縮端的處理。 在步驟108中,寫(xiě)圖像文件的文件頭。其中包括圖像寬高等信息。
此后進(jìn)入步驟109,向圖像文件寫(xiě)入索引表,其中包括第一和第二索引表。
此后進(jìn)入步驟110,將緩存中各像素的壓縮值依次寫(xiě)入文件。
步驟108-110中,以文件作為壓縮結(jié)果,可以理解,壓縮結(jié)果也可以有 其它的形式,例如內(nèi)存中的數(shù)據(jù)塊等等。
在本發(fā)明的一個(gè)較佳例子中,圖像為16位圖像。M = 4,第一索引表的 索引值以4比特表示。N-195,第二索引表的索引值以8比特表示。經(jīng)仿真 測(cè)試,使用M = 4、 N-195的參數(shù)時(shí),大多數(shù)16位圖像被索引的像素比例 達(dá)到90%以上,壓縮比在2至4之間。
該例子中,N通過(guò)公式N=(16-M)*16-1+M得到,半個(gè)字節(jié)的取值范圍 是0至15,共16種可能,通過(guò)在前半字節(jié)將M種取值排除掉,使得第二索 引表中的索引值不會(huì)與第一索引表中的索引值相沖突,通過(guò)將表示顏色值的 全1去掉,使第二索引表中的索引值不會(huì)與顏色值相沖突。此外,可以理解, 圖像也可以是24位圖像、32位圖像等等,M和N也可以取其它的值,例如 M可以是小于15的任意非負(fù)整數(shù),而N可以是不大于(16-M廣16-1+M的任 意正整數(shù)。
圖2中示出了上面例子中各種編碼單元的示例。其中,—H表示高半部 分,—L表示低半部分。
圖2的第一行是將像素的顏色值作為壓縮值的情況。其中PURE是一個(gè) 全1的前導(dǎo)字節(jié),用于標(biāo)識(shí)在后的兩個(gè)字節(jié)共同組成一個(gè)顏色值。COLORJH 和COLOR—L各為 一個(gè)字節(jié),分別是一個(gè)顏色值的高半部分和低半部分。
圖2的第二行是將第二索引表中的索引值(PART)作為壓縮值的情況。以一個(gè)字節(jié)表示一個(gè)索引。
圖2的第三行是將第 一 索引表中的索引值(C O R E )作為壓縮值的情況。 因?yàn)镃ORE只需要半個(gè)字節(jié),所以第三行以一個(gè)字節(jié)表示兩個(gè)CORE。
圖2的第四行是一個(gè)第一索引表中的索引值(CORE)后跟隨一個(gè)第二 索引表中的索引值(PART)的情況,其中PART—H和PART—L各占半個(gè)字 節(jié),分別是PART的高半部分和低半部分。因?yàn)镃ORE只占了半個(gè)字節(jié),所 以PART—H與CORE合占一個(gè)字節(jié)。
圖2的第五行是一個(gè)第一索引表中的索引值(CORE)后跟隨一個(gè)顏色 值(PURE)的情況。顏色值由三個(gè)字節(jié)組成,分別是全1的前導(dǎo)字節(jié)PURE、 顏色值的高半部分COLOR—H和低半部分COLOR_L。因?yàn)镃ORE只有半個(gè) 字節(jié),所以將前導(dǎo)字節(jié)PURE分成兩個(gè)部分PURE—H和PURE—L,每部分 半個(gè)字節(jié),PURE—H與CORE合占一個(gè)字節(jié)??紤]到如果將COLOR—H和 COLOR—L也向前提半個(gè)字節(jié),會(huì)增加處理的復(fù)雜度,所以將PURE—L后的 半個(gè)字節(jié)空掉。
圖3示出了各種編碼單元控制字符的范圍。其中顏色值的前導(dǎo)字節(jié) PURE是0xFF,第一索引表中的索引值(CORE)的取值范圍是0~3,第 二索引表中的索引值(PART)的高半部分PART—H的取值范圍是4 15、低 半部分PART—L的取值范圍是0~ 15。
本發(fā)明第二實(shí)施方式涉及一種圖像解壓縮方法。其流程如圖4所示。
在步驟401中,讀取圖像文件的文件頭,其中包括圖像的長(zhǎng)寬等信息。
此后進(jìn)入步驟402,從文件中讀取差值索引表。差值索引表可以是一個(gè) 也可以是多個(gè)。本實(shí)施方式中將文件作為壓縮結(jié)果,可以理解,壓縮結(jié)果也 可以有其它的形式,例如內(nèi)存中的數(shù)據(jù)塊等等。
此后進(jìn)入步驟403,判斷壓縮結(jié)果是否被處理完畢,如果是結(jié)束本流程,否則進(jìn)入步驟404.
在步驟404中,判斷壓縮結(jié)果中當(dāng)前還未被解壓縮的剩余信息中首個(gè)壓 縮值的類型,如果是索引值則進(jìn)入步驟405,否則進(jìn)入步驟407。
在步驟405中,因?yàn)閴嚎s值的類型為索引值,所以根據(jù)該索引值查找差 值索引表,得到對(duì)應(yīng)的差值。
此后進(jìn)入步驟406,將步驟405所得的差值加上前一像素的顏色值得到 當(dāng)前像素的顏色值。此后回到步驟403。
在步驟407中,因?yàn)閴嚎s值的類型為顏色值,所以讀取該顏色值作為當(dāng) 前像素的顏色值。此后回到步驟403。
本發(fā)明第三實(shí)施方式涉及一種圖像解壓縮方法。其流程如圖5所示。
第三實(shí)施方式是第二實(shí)施方式的一個(gè)具體化應(yīng)用,第三實(shí)施方式中,圖 像為16位圖像,索引表包括第一索引表和第二索引表,第一索引表中索引 了4個(gè)差值,第二索引表中索引了 195個(gè)差值。其中,第一索引表中的差值 在圖像中出現(xiàn)的頻率最高,第二索引表中的差值在圖像中出現(xiàn)的頻率低于第 一索引表中的差值,但高于未被索引的差值。
步驟501-503與步驟401-403分別對(duì)應(yīng)相同,這里不再贅述。
在步驟504中,從壓縮結(jié)果中當(dāng)前還未被解壓縮的剩余信息中讀取一個(gè) 字節(jié)。
此后進(jìn)入步驟505,根據(jù)步驟504所讀取的字節(jié)判斷壓縮值的類型。如 果所讀取的字節(jié)的各比特為全1,則壓縮值的類型為顏色值,進(jìn)入步驟508。 如果所讀取的字節(jié)的前半個(gè)字節(jié)的值為0至3,則該字節(jié)的前半部分是一個(gè) 第一索引表的索引值,進(jìn)入步驟506。如果所讀取的字節(jié)的前半個(gè)字節(jié)的值 為4至15,則該字節(jié)為一個(gè)第二索引表的索引值,進(jìn)入步驟507。
在步驟506中,將所讀取字節(jié)的前半個(gè)字節(jié)的值作為索引值從第一索引表中查找對(duì)應(yīng)的差值。此后進(jìn)入步驟509。
在步驟507中,將所讀取的整個(gè)字節(jié)的值作為索引值從第二索引表中查 找對(duì)應(yīng)的差值。此后進(jìn)入步驟509。
在步驟508中,再讀取兩個(gè)字節(jié)作為當(dāng)前像素的顏色值。此后回到步驟
503。
在步驟509中,將步驟507或508所得的差值加上前一像素的顏色值 得到當(dāng)前像素的顏色值。此后回到步驟503。
本發(fā)明的方法實(shí)施方式可以以軟件、硬件、固件等等方式實(shí)現(xiàn)。不管本 發(fā)明是以軟件、硬件、還是固件方式實(shí)現(xiàn),指令代碼都可以存儲(chǔ)在任何類型 的計(jì)算機(jī)可訪問(wèn)的存儲(chǔ)器中(例如永久的或者可修改的,易失性的或者非易 失性的,固態(tài)的或者非固態(tài)的,固定的或者可是換的介質(zhì)等等)。同樣,存 儲(chǔ)器可以例如是可編程陣列邏輯(Programmable Array Logic,簡(jiǎn)稱 "PAL")、隨機(jī)存取存儲(chǔ)器(Random Access Memory,簡(jiǎn)稱"RAM")、 可編程只讀存儲(chǔ)器(Programmable Read Only Memory,簡(jiǎn)稱"PROM")、 只讀存儲(chǔ)器(Read-Only Memory,簡(jiǎn)稱"ROM")、電可擦除可編程只讀 存儲(chǔ)器(Electrically Erasable Programmable ROM,簡(jiǎn)稱"EEPROM")、 磁盤(pán)、光盤(pán)、數(shù)字通用光盤(pán)(Digital Versatile Disc,簡(jiǎn)稱"DVD")等等。
本發(fā)明第四實(shí)施方式涉及一種圖像壓縮設(shè)備。該設(shè)備包括
索引緩存單元,用于緩存第一索引表和第二索引表,其中第一索引表的 索引值的比特?cái)?shù)小于第二索引表的索引值的比特?cái)?shù)??梢岳斫?,索引緩存單 元也可以只存儲(chǔ)一個(gè)索引表,即相當(dāng)于M=0的情況。
減法單元,用于依次將圖像中各相鄰像素的顏色值相減得到各差值。
統(tǒng)計(jì)單元,用于統(tǒng)計(jì)減法單元所得到的各差值出現(xiàn)的頻率。
排序單元,用于根據(jù)統(tǒng)計(jì)單元得到的各差值出現(xiàn)的頻率,按從高到低的順序?qū)Ω鞑钪颠M(jìn)行排序。
索引生成單元,用于根據(jù)統(tǒng)計(jì)單元的統(tǒng)計(jì)結(jié)果,為出現(xiàn)頻率最高的N個(gè)
差值設(shè)定索引值,N為正整數(shù)。索引生成單元可以根據(jù)排序單元的排序結(jié)果 生成第一索引表和第二索引表。具體地說(shuō),將排在最前面的M個(gè)差值填入第 一索引表,將隨后的N-M個(gè)差值填入第二索引表,其中IVKN。
寫(xiě)入單元,用于依次將圖像中各像素的壓縮值寫(xiě)入壓縮結(jié)果,以及將第 一索引表和第二索引表寫(xiě)入壓縮結(jié)果。
判斷單元,用于判斷當(dāng)前像素與前一像素的顏色值的差值是否有索引 值,如果有則指示寫(xiě)入單元將該差值對(duì)應(yīng)的索引值作為當(dāng)前像素的壓縮值寫(xiě) 入壓縮結(jié)果,如果沒(méi)有則指示寫(xiě)入單元將當(dāng)前像素的顏色值作為壓縮值寫(xiě)入 壓縮結(jié)果。
在本發(fā)明的一個(gè)效果較佳的例子中,圖像為16位圖像。M = 4,第一索 引表的索引值以4比特表示。N=195,第二索引表的索引值以8比特表示。 寫(xiě)入單元在顏色值作為壓縮值寫(xiě)入壓縮結(jié)果時(shí),先向壓縮結(jié)果寫(xiě)入一個(gè)全1 的字節(jié),再向壓縮結(jié)果寫(xiě)入2個(gè)字節(jié)的顏色值。
第一實(shí)施方式是與本實(shí)施方式相對(duì)應(yīng)的方法實(shí)施方式,本實(shí)施方式可與 第一實(shí)施方式互相配合實(shí)施。第一實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施 方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提 到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第一實(shí)施方式中。
本發(fā)明第五實(shí)施方式涉及一種圖像解壓縮設(shè)備。該設(shè)備包括
類型判斷單元,用于判斷壓縮結(jié)果中當(dāng)前還未被解壓縮的剩余信息中首 個(gè)壓縮值的類型。
索引表緩存單元,用于緩存索引表。
索引表查找單元,用于查找索引表緩存單元中的索引表。加法單元,用于將兩值相加。
讀取單元,用于從壓縮結(jié)果中讀取信息,以及從壓縮結(jié)果中讀取索引表 緩存到索引表緩存單元。
如果類型判斷單元判定當(dāng)前壓縮值的類型為索引值,則指示索引表查找 單元查找索引表,得到對(duì)應(yīng)的差值,再由加法單元將該差值加上前一像素的 顏色值得到當(dāng)前像素的顏色值。
如果類型判斷單元判定當(dāng)前壓縮值的類型為顏色值,則指示讀取單元讀 取該顏色值作為當(dāng)前像素的顏色值。
在本發(fā)明的一個(gè)效果較佳的例子中,圖像為16位圖像,索引表緩存單 元中緩存了第一索引表和第二索引表,其中,第一索引表中索引了 4個(gè)差值, 第二索引表中索引了 195個(gè)差值。其中第一索引表中的差值在圖像中出現(xiàn)的 頻率最高,第二索引表中的差值在圖像中出現(xiàn)的頻率低于第一索引表中的差
值,但高于未被索引的差值。類型判斷單元通過(guò)以下方式判斷壓縮值的類型 如果所讀取的字節(jié)的各比特為全1,則壓縮值的類型為顏色值。
如果所讀取的字節(jié)的前半個(gè)字節(jié)的值為0至3,則將該前半個(gè)字節(jié)的值 作為索引值指示索引表查找單元從第一索引表中查找對(duì)應(yīng)的差值。
如果所讀取的字節(jié)的前半個(gè)字節(jié)的值為4至15,則將該字節(jié)的值作為索 引值指示索引表查找單元從第二索引表中查找對(duì)應(yīng)的差值。
第二及第三實(shí)施方式是與本實(shí)施方式相對(duì)應(yīng)的方法實(shí)施方式,本實(shí)施方 式可與第二及第三實(shí)施方式互相配合實(shí)施。第二及第三實(shí)施方式中提到的相 關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng) 地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第二及第三實(shí)施方式中。
需要說(shuō)明的是,本發(fā)明設(shè)備實(shí)施方式中提到的各單元都是邏輯單元,在 物理上, 一個(gè)邏輯單元可以是一個(gè)物理單元,也可以是一個(gè)物理單元的一部
1分,還可以以多個(gè)物理單元的組合實(shí)現(xiàn),這些邏輯單元本身的物理實(shí)現(xiàn)方式 并不是最重要的,這些邏輯單元所實(shí)現(xiàn)的功能的組合是才解決本發(fā)明所提出 的技術(shù)問(wèn)題的關(guān)4定。此外,為了突出本發(fā)明的創(chuàng)新部分,本發(fā)明上述設(shè)備實(shí) 施方式并沒(méi)有將與解決本發(fā)明所提出的技術(shù)問(wèn)題關(guān)系不太密切的單元引入,
雖然通過(guò)參照本發(fā)明的某些優(yōu)選實(shí)施方式,已經(jīng)對(duì)本發(fā)明進(jìn)行了圖示和 描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對(duì)其作各 種改變,而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種圖像壓縮方法,其特征在于,包括以下步驟依次將圖像中各相鄰像素的顏色值相減得到各差值;統(tǒng)計(jì)各差值出現(xiàn)的頻率;為出現(xiàn)頻率最高的N個(gè)差值設(shè)定索引值,N為正整數(shù);依次將圖像中各像素的壓縮值寫(xiě)入壓縮結(jié)果,其中,如果當(dāng)前像素與前一像素的顏色值的差值有索引值,則將該差值對(duì)應(yīng)的索引值作為當(dāng)前像素的壓縮值,否則將當(dāng)前像素的顏色值作為壓縮值。
2. 根據(jù)權(quán)利要求1所述的圖像壓縮方法,其特征在于,所述為出現(xiàn)頻 率最高的N個(gè)差值設(shè)定索引值的步驟包括以下子步驟從所述N個(gè)差值中選取出現(xiàn)頻率最高的M個(gè)差值,填入第一索引表, 其中M<N;將剩余的N-M個(gè)差值填入第二索引表,其中第一索引表的索引值的比 特?cái)?shù)小于第二索引表的索引值的比特?cái)?shù)。
3. 根據(jù)權(quán)利要求2所述的圖像壓縮方法,其特征在于,所述圖像為16 位圖像;M = 4,所述第一索引表的索引值以4比特表示; N=195,所述第二索引表的索引值以8比特表示。
4. 根據(jù)權(quán)利要求3所述的圖像壓縮方法,其特征在于,將所述像素的 顏色值作為壓縮值的步驟中,包括以下子步驟先向所述壓縮結(jié)果寫(xiě)入一個(gè)全1的字節(jié),再向所述壓縮結(jié)果寫(xiě)入2個(gè)字 節(jié)的顏色值。
5. 根據(jù)權(quán)利要求2所述的圖像壓縮方法,其特征在于,所述統(tǒng)計(jì)各差 值出現(xiàn)的頻率的步驟之后,還包括以下步驟根據(jù)所述統(tǒng)計(jì)得到的各差值出現(xiàn)的頻率從高到低的順序,對(duì)各差值進(jìn)行 排序。
6. 根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的圖像壓縮方法,其特征在于, 所述壓縮結(jié)果為文件;所述為出現(xiàn)頻率最高的N個(gè)差值設(shè)定索引值的步驟之后還包括以下步驟將所述N個(gè)差值與其索引值的對(duì)應(yīng)關(guān)系記錄在索引表中,并將該索引 表寫(xiě)入所述文件。
7. —種圖像解壓縮方法,其特征在于,包括以下步驟判斷壓縮結(jié)果中當(dāng)前還未被解壓縮的剩余信息中首個(gè)壓縮值的類型;如果該壓縮值的類型為索引值,則根據(jù)該索引值查找索引表,得到對(duì)應(yīng) 的差值,再將該差值加上前一像素的顏色值得到當(dāng)前像素的顏色值;如果該壓縮值的類型為顏色值,則讀取該顏色值作為當(dāng)前像素的顏色值;重復(fù)上述各步驟,直至所述壓縮結(jié)果被處理完畢。
8. 根據(jù)權(quán)利要求7所述的圖像解壓縮方法,其特征在于,在所述判斷 壓縮值的類型的步驟之前,還包括以下步驟從所述壓縮結(jié)果中讀取所述索引表。
9. 根據(jù)權(quán)利要求8所述的圖像解壓縮方法,其特征在于,所述圖像為 16位圖像,所述索引表包括第一索引表和第二索引表,第一索引表中索引 了4個(gè)差值,第二索引表中索引了 191個(gè)差值;所述判斷壓縮值的類型的步驟包括以下子步驟從所述壓縮結(jié)果中當(dāng)前還未被解壓縮的剩余信息中讀取一個(gè)字節(jié);如果所讀取的字節(jié)的各比特為全1,則所述壓縮值的類型為顏色值;如果所讀取的字節(jié)的前半個(gè)字節(jié)的值為0至3,則將該前半個(gè)字節(jié)的值 作為索引值從所述第 一 索引表中查找對(duì)應(yīng)的差值;如果所讀取的字節(jié)的前半個(gè)字節(jié)的值為4至15,則將該字節(jié)的值作為 索引值從所述第二索引表中查找對(duì)應(yīng)的差值。
10. —種圖像壓縮設(shè)備,其特征在于,包括減法單元,用于依次將圖像中各相鄰像素的顏色值相減得到各差值;統(tǒng)計(jì)單元,用于統(tǒng)計(jì)所述減法單元所得到的各差值出現(xiàn)的頻率;索引生成單元,用于根據(jù)所述統(tǒng)計(jì)單元的統(tǒng)計(jì)結(jié)果,為出現(xiàn)頻率最高的 N個(gè)差值設(shè)定索引值,N為正整數(shù);寫(xiě)入單元,用于依次將圖像中各像素的壓縮值寫(xiě)入壓縮結(jié)果;判斷單元,用于判斷當(dāng)前像素與前一像素的顏色值的差值是否有索引 值,如杲有則指示所述寫(xiě)入單元將該差值對(duì)應(yīng)的索引值作為當(dāng)前像素的壓縮 值寫(xiě)入壓縮結(jié)果,如果沒(méi)有則指示所述寫(xiě)入單元將當(dāng)前像素的顏色值作為壓 縮值寫(xiě)入壓縮結(jié)果。
11. 根據(jù)權(quán)利要求10所述的圖像壓縮設(shè)備,其特征在于,還包括索引 緩存單元,用于緩存第一索引表和第二索引表,其中第一索引表的索引值的 比特?cái)?shù)小于第二索引表的索引值的比特?cái)?shù);所述索引生成單元為出現(xiàn)頻率最高的N個(gè)差值設(shè)定索引值時(shí),從所述N 個(gè)差值中選取出現(xiàn)頻率最高的M個(gè)差值,填入第一索引表,將剩余的N-M 個(gè)差值填入第二索引表,其中M<N;所述寫(xiě)入單元還用于將所述第一索引表和第二索引表寫(xiě)入所述壓縮結(jié)果。
12. 根據(jù)權(quán)利要求11所述的圖像壓縮設(shè)備,其特征在于,所述圖像為 16位圖像;M = 4,所述第一索引表的索引值以4比特表示;N = 195,所述第二索引表的索引值以8比特表示;所述寫(xiě)入單元在顏色值作為壓縮值寫(xiě)入壓縮結(jié)果時(shí),先向所述壓縮結(jié)果 寫(xiě)入一個(gè)全1的字節(jié),再向所述壓縮結(jié)果寫(xiě)入2個(gè)字節(jié)的顏色值。
13. 根據(jù)權(quán)利要求12所述的圖像壓縮設(shè)備,其特征在于,還包括排序單元,用于根據(jù)所述統(tǒng)計(jì)單元得到的各差值出現(xiàn)的頻率,按從高到 低的順序?qū)Ω鞑钪颠M(jìn)行排序;所述索引生成單元根據(jù)所述排序單元的排序結(jié)果生成所述第一索引表 和第二索引表。
14. 一種圖像解壓縮設(shè)備,其特征在于,包括類型判斷單元,用于判斷壓縮結(jié)果中當(dāng)前還未被解壓縮的剩余信息中首 個(gè)壓縮值的類型;索引表緩存單元,用于緩存索引表;索引表查找單元,用于查找所述索引表緩存單元中的索引表; 加法單元,用于將兩值相加; 讀取單元,用于從壓縮結(jié)果中讀取信息;如果所述類型判斷單元判定當(dāng)前壓縮值的類型為索引值,則指示所述索 引表查找單元查找索引表,得到對(duì)應(yīng)的差值,再由所述加法單元將該差值加 上前一像素的顏色值得到當(dāng)前像素的顏色值;如果所述類型判斷單元判定當(dāng)前壓縮值的類型為顏色值,則指示所述讀 取單元讀取該顏色值作為當(dāng)前像素的顏色值。
15. 根據(jù)權(quán)利要求14所述的圖像解壓縮設(shè)備,其特征在于,所述讀取 單元還用于從所述壓縮結(jié)果中讀取所述索引表并將其緩存到所述索引表緩 存單元。
16. 根據(jù)權(quán)利要求15所述的圖像解壓縮設(shè)備,其特征在于,所述圖像 為16位圖像,所述索引表緩存單元中緩存了第一索引表和第二索引表,其 中,第一索引表中索引了 4個(gè)差值,第二索引表中索引了 191個(gè)差值;所述類型判斷單元通過(guò)以下方式判斷壓縮值的類型如果所讀取的字節(jié)的各比特為全1,則所述壓縮值的類型為顏色值;如果所讀取的字節(jié)的前半個(gè)字節(jié)的值為0至3,則將該前半個(gè)字節(jié)的值 作為索引值指示所述索引表查找單元從所述第一索引表中查找對(duì)應(yīng)的差值;如果所讀取的字節(jié)的前半個(gè)字節(jié)的值為4至15,則將該字節(jié)的值作為 索引值指示所述索引表查找單元從所述第二索引表中查找對(duì)應(yīng)的差值。
全文摘要
本發(fā)明涉及圖像處理領(lǐng)域,公開(kāi)了一種圖像壓縮、解壓縮方法及設(shè)備。圖像可以無(wú)損地壓縮,有一定的壓縮比且解碼較快。本發(fā)明中,依次將圖像中各相鄰像素的顏色值相減得到各差值;統(tǒng)計(jì)各差值出現(xiàn)的頻率;為出現(xiàn)頻率最高的N個(gè)差值設(shè)定索引值;依次將圖像中各像素的壓縮值寫(xiě)入壓縮結(jié)果,其中,如果當(dāng)前像素與前一像素的顏色值的差值有索引值,則將該差值對(duì)應(yīng)的索引值作為當(dāng)前像素的壓縮值,否則將當(dāng)前像素的顏色值作為壓縮值。
文檔編號(hào)H04N7/26GK101616320SQ20081004355
公開(kāi)日2009年12月30日 申請(qǐng)日期2008年6月26日 優(yōu)先權(quán)日2008年6月26日
發(fā)明者彬 紀(jì) 申請(qǐng)人:展訊通信(上海)有限公司