圖像處理 無損壓縮-哈夫曼編碼(可變字長符號編碼)

有損壓縮

概念

按照壓縮方法是否丟失信息分為有損壓縮和無損壓縮,有損壓縮解壓縮后的數(shù)據(jù)與原始數(shù)據(jù)完全相同。 解壓縮后獲得的數(shù)據(jù)是原始數(shù)據(jù)的副本,是一種不可逆壓縮。

主要算法

消除編碼冗余: 哈夫曼編碼和算術(shù)編碼。
消除像素間冗余:LZW編碼,位平面編碼,行程編碼和無損預(yù)測編碼。

哈夫曼編碼

定義

哈夫曼編碼,又稱為霍夫曼編碼,是一種字符編碼。

在計算機數(shù)據(jù)壓縮處理中,霍夫曼編碼使用變長編碼表()對源符號(如文件中的一個字母)進行編碼,其中變長編碼表是通過一種評估來源符號出現(xiàn)幾率的方法得到的,出現(xiàn)幾率高的字母使用較短的編碼,反之出現(xiàn)幾率低的則使用較長的編碼,這便使編碼之后的字符串的平均長度、期望值降低,從而達到無損壓縮數(shù)據(jù)的目的。

性質(zhì)

  • 可變字長編碼(VLC)
  • 源符號出現(xiàn)的頻率越高,使用的代碼字長越少。
  • 一致的編碼方法(也稱為“熵編碼方法”),用于數(shù)據(jù)的無損壓縮。

信息熵

英文entoropy,反映圖像中的平均信息量。

定長和變長編碼比較

定長編碼:fixed length coding (FLC),如定長一字節(jié)或者定長二字節(jié)
變長編碼:virable length coding(VLC)

示例

Symbol Probability FLC VLC1 VLC2 VLC3
K 1/2 00 0 111 0
L 1/4 01 10 110 1
P 1/8 10 110 10 01
C 1/8 11 111 0 10

對 KLKPLCKK 用上述四個方式編碼

方式 表示 編碼長度length
FLC 00 01 00 10 11 00 00 2*8 =16 bits
VLC1 0 10 0 110 10 111 0 0 1+2+1+3+2+3+2 = 14 bits
VLC2 111 110 111 10 110 0 111 111 3+3+3+2+3+1+3+3 = 21 bits
VLC3 0 1 0 01 1 10 0 0 1+1+1+2+1+2+1+1 = 10 bits

總結(jié) 根據(jù)最后編碼長度,VLC2 的長度最短,符合出現(xiàn)概率高的字母使用較短的編碼,因此是哈夫曼碼。

信息熵:反映圖像中的平均信息量,用H(entoropy)表示,小于等于Lavg(average length)

示例

在這里插入圖片描述

生成哈夫曼編碼

在這里插入圖片描述
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容