信息論中的幾種編碼


整理一下下信息論中的幾種編碼。

一、不等長編碼定理

若一離散無記憶信源的熵為H(U),每個信源符號用D進制碼元進行不等長編碼,則一定存在一種無失真編碼方法,構成唯一可譯碼,其平均碼長滿足:

\[\frac {H(U)}{\log(D)} \leq \overline{n} \leq \frac {H(U)}{\log(D)} + 1 \]

對於平均符號熵為\(H_L(U)\)的離散平穩無記憶信源,必存在一種無失真編碼方法,使平均碼長滿足不等式:

\[\frac {H_L(U)}{\log(D)} \leq \overline{n} \leq \frac{H_L(U)}{\log(D)} + \frac {1}{L} \]

二、Shannon編碼

編碼步驟

  1. 對信源符號按概率從大到小排序;
  2. 計算碼長;
  3. 計算累加概率;
  4. 寫出概率對應的二進制數;
  5. 獲得碼字(取前k位);

編碼示例

三、Fano編碼

編碼步驟

  1. 對信源符號按概率從大到小排序;
  2. 從這個概率集合中的某個位置將其分為兩個子集合,並盡量使兩個子集合的概率和近似相等,給前面一個子集合賦值為0,后面一個子集合賦值為1;
  3. 重復步驟(2),直到各個子集合中只有一個元素為止;
  4. 將每個元素所屬的子集合的值依次串起來即可得到碼字;

編碼示例

四、Huffman編碼

編碼步驟:

  1. 對信源符號按概率大到小排序,權重為概率;
  2. 取概率最小的字符作為左節點,其次小的符號為右節點,然后這兩個(最小)元素相加作為新的元素,權重為概率和,將新元素和剩余元素重新排序;
  3. 重復步驟(2),直到排列的元素只剩一個;
  4. 最后產生的樹狀圖就是Huffman樹;
  5. 左節點為0,右節點為1,從根節點到子節點的一條路徑即是符號的碼字;

編碼示例

五、算術編碼

編碼步驟

  1. 對信源符號按概率大到小排序;
  2. 將[0,1]區間划分為多個子區間,每個子區間代表一個字符,可得每個字符的位置[L,H];
  3. 編碼從一個[0,1]區間開始,設置low = 0,high =1;
  4. 不斷讀入原始數據字符,計算並更新;

\[low = low+(high−low) \cdot L \\\\ high = low+(high−low) \cdot H \]

  1. 最后得到的區間[low,high]中任意一個小數以二進制形式輸出即可得到碼字;

編碼示例

注意:將符號序列的累積概率寫成二進位小數,取小數點 后L位,若后面有尾數,就進位到第L位。進位!!!
累積概率遞推公式: P(S,ar) = P(S) + p(s)Pr
二元序列:S = 011
P(S0->0110) = P(S)
P(S1->0111) = P(S) + p(S)P1

例1:設二元無記憶信源S={0,1},p(0)=1/4,p(1)=3/4。S=11111100,對其做算術編碼。
解析:
P0 = 0,P1 = 1/4;P(S0) = P(S) + p(S)P0 = P(S); P(S1) = P(S) + p(S)P1
(此處P1=p(0),補充:二元信源P0 = 0,P1=p(0))

例2:設無記憶信源U={a1,a2,a3,a4},其概率分布依次為0.5,0.25,0.125,0.125,對信源序列做算術編碼。
解析:
P1 = 0,P2 = 1/2,P3 = 3/4,P4 = 7/8;P(S,ar) = P(S) + p(s)Pr

六、LZ編碼(LZ78碼)

設信源符號集A={a1,a2,…,aK}共K個符號,設輸入信源符號序列為u=(u1,u2,…,uL)

編碼步驟

  1. 取第一個符號作為第一段;
  2. 若下一個符號與已有的分段都不重復,則取其為下一個分段;
  3. 若下一個符號與已有的分段都重復,則再取其下一位符號組成一個分段,直到同前面的所有分段不同;
  4. 重復(2)(3),直至信源序列結束;

編碼示例

設U={a1,a2,a3,a4},信源序列為a1,a3,a2,a3,a2,a4,a3,a2,a1,a4,a3,a2,a1,共13位,字典如表所示:

參考鏈接:
https://baike.baidu.com/item/香農編碼/22353186
https://zh.wikipedia.org/wiki/香農-范諾編碼
https://blog.csdn.net/FX677588/article/details/70767446
https://zh.wikipedia.org/wiki/霍夫曼編碼
https://segmentfault.com/a/1190000011561822
https://bkso.baidu.com/item/LZ編碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM