什麼是信源編碼

為了減少信源輸出符號序列中的剩餘度、提高符號的平均信息量,對信源輸出的符號序列所施行的變換。具體説,就是針對信源輸出符號序列的統計特性來尋找某種方法,把信源輸出符號序列變換為最短的碼字序列,使後者的各碼元所載荷的平均信息量最大,同時又能保證無失真地恢復原來的符號序列。

既然信源編碼的基本目的是提高碼字序列中碼元的平均信息量,那麼,一切旨在減少剩餘度而對信源輸出符號序列所施行的變換或處理,都可以在這種意義下歸入信源編碼的範疇,例如過濾、預測、域變換和數據壓縮等。當然,這些都是廣義的信源編碼。

一般來説,減少信源輸出符號序列中的剩餘度、提高符號平均信息量的基本途徑有兩個:

(1)使序列中的各個符號儘可能地互相獨立;

(2)使序列中各個符號的出現概率儘可能地相等。前者稱為解除相關性,後者稱為概率均勻化。

信源編碼的一般問題可以表述如下:若某信源的輸出為長度等於M的符號序列集合

什麼是信源編碼

式中符號A為信源符號表,它包含着K個不同的符號,A={ɑk|k=1,…,K},這個信源至多可以輸出KM個不同的符號序列。記‖U‖=KM。所謂對這個信源的輸出進行編碼,就是用一個新的符號表B的符號序列集合V來表示信源輸出的符號序列集合U。若V的各個序列的長度等於 N,即

什麼是信源編碼 第2張

式中新的符號表B共含L個符號,B={bl|l=1,…,L}。它總共可以編出LN個不同的碼字。類似地,記‖V‖=LN。為了使信源的每個輸出符號序列都能分配到一個獨特的碼字與之對應,至少應滿足關係

V‖=LN≥‖U‖=KM

或者

N/MlogK/logL

假若編碼符號表B的符號數L與信源符號表A的符號數K相等,則編碼後的碼字序列的長度N必須大於或等於信源輸出符號序列的長度M;反之,若有NM,則必須有LK。只有滿足這些條件,才能保證無差錯地還原出原來的信源輸出符號序列(稱為碼字的唯一可譯性)。可是,在這些條件下,碼字序列的每個碼元所載荷的平均信息量不但不能高於,反而會低於信源輸出序列的每個符號所載荷的平均信息量。這與編碼的基本目標是直接相矛盾的。下面的幾個編碼定理,提供瞭解決這個矛盾的方法。它們既能改善信息載荷效率,又能保證碼字唯一可譯。

離散無記憶信源的定長編碼定理

對於任意給定的ε>0,只要滿足條件

N/M≥(

H

(U)+ε)/logL

那麼,當M足夠大時,上述編碼幾乎沒有失真;反之,若這個條件不滿足,就不可能實現無失真的編碼。式中

H

(U)是信源輸出序列的符號熵。

通常,信源的符號熵

H

(U)<logK,因此,上述條件還可以表示為

[

H

(U)+ε]/logLN/M≤logK/logL

特別,若有KL,那麼,只要

H

(U)<logK,就可能有NM,從而提高信息載荷的效率。由上面這個條件可以看出,

H

(U)離logK越遠,通過編碼所能獲得的效率改善就越顯著。實質上,定長編碼方法提高信息載荷能力的關鍵是利用了漸近等分性,通過選擇足夠大的M,把本來各個符號概率不等[因而

H

(U)<logK]的信源輸出符號序列變換為概率均勻的典型序列,而碼字的唯一可譯性則由碼字的定長性來解決。

離散無記憶信源的變長編碼定理

變長編碼是指V的各個碼字的長度不相等。只要V中各個碼字的長度 Ni(i=1,…,‖V‖)滿足克拉夫特不等式

什麼是信源編碼 第3張

這 ‖V‖個碼字就能唯一地正確劃分和譯碼。離散無記憶信源的變長編碼定理指出:若離散無記憶信源的輸出符號序列為

什麼是信源編碼 第4張
, 式中 A={ɑk|k=1,…,K},符號熵為

H

(U),對U進行唯一可譯的變長編碼,編碼字母表B的符號數為L,即B={bl|l=1,…,L},那麼必定存在一種編碼方法,使編出的碼字Vi=(vi1,…,viNi),(i=1,…,‖V‖),具有平均長度嚻:

M

H

(U)/logL≤嚻<M

H

(U)/logL+1

L=K,則當

H

(U)<logK=logL時,必有嚻<M

H

(U)離logK越遠,則嚻越小於M

具體實現唯一可譯變長編碼的方法很多,但比較經典的方法還是仙農編碼法、費諾編碼法和霍夫曼編碼法。其他方法都是這些經典方法的變形和發展。所有這些經典編碼方法,都是通過以短碼來表示常出現的符號這個原則來實現概率的均勻化,從而得到高的信息載荷效率;同時,通過遵守克拉夫特不等式關係來實現碼字的唯一可譯。

霍夫曼編碼方法的具體過程是:首先把信源的各個輸出符號序列按概率遞降的順序排列起來,求其中概率最小的兩個序列的概率之和,並把這個概率之和看作是一個符號序列的概率,再與其他序列依概率遞降順序排列(參與求概率之和的這兩個序列不再出現在新的排列之中),然後,對參與概率求和的兩個符號序列分別賦予二進制數字0和1。繼續這樣的操作,直到剩下一個以1為概率的符號序列。最後,按照與編碼過程相反的順序讀出各個符號序列所對應的二進制數字組,就可分別得到各該符號序列的碼字。

例如,某個離散無記憶信源的輸出符號序列及其對應的概率分佈為

什麼是信源編碼 第5張

對這些輸出符號序列進行霍夫曼編碼的具體步驟和結果如表。

什麼是信源編碼 第6張

由表中可以看出,在碼字序列中碼元0和1的概率分別為10/21和11/21,二者近乎相等,實現了概率的均勻化。同時,由於碼字序列長度滿足克拉夫特不等式

2×2-2+3×2-3+2×2-4=1

因而碼字是唯一可譯的,不會在長的碼字序列中出現劃錯碼字的情況。

以上幾個編碼定理,在有記憶信源或連續信源的情形也有相應的類似結果。在實際工程應用中,往往並不追求無差錯的信源編碼和譯碼,而是事先規定一個譯碼差錯率的容許值,只要實際的譯碼差錯率不超過這個容許值即認為滿意(見信息率-失真理論和多用户信源編碼)。

參考書目

周炯槃:《信息理論基礎》,人民郵電出版社,北京, 1983。

有本卓,《現代情報理論》,電子通信學會,東京,1978。