信息编码技术


author: lunar
date: Mon 12 Oct 2020 10:03:32 AM CST

第二章 信息编码技术原理

2.1 信源编码

2.1.1 信源编码器模型

正规编码器:能够把信源发出的所有消息一一对应变换成相应代码組。這種編碼器不會損失信息量,編碼後的信源與編碼前的信源的熵相等。

常見的幾種信源編碼:

  • 二進制代碼:代碼的每個碼元只有兩種量值可以取
  • 同價代碼:兩個碼元長度相等。像莫爾斯電碼就不是同價代碼
  • 等長代碼:每個碼元的長度相等
  • 單義代碼:任意一組代碼只能被唯一地分割成一種碼元序列。
  • 非續長代碼:不能在一種碼元後面加上一些東西變成另一種碼元。非續長編碼一定是單義的。

2.1.2 信源編碼效率

信源編碼器的編碼效率定義爲信息傳輸效率與信道容量之比,即

[eta_s = frac{R_b}{C_t} ]

單位都是 bit/碼元

信息传输效率可以用信源發出的時間熵來表示

[R_b = frac{H(X)}{overline b} ]

H(X) 表示發出N個字符的信息熵;(overline b) 是每個字符的平均長度。

联立得

[eta_s = frac{H(X)}{overline bcdotmathrm{lb}D} ]

平均码長:每個字符出現的概率與其編碼長度的乘積之和。

2.1.3 信源編碼方法

  1. 匹配編碼

    根據編碼信息的出現概率來分配不同長度的代碼組,出現概率越大,代碼組長度越短。

  2. 量化編碼

  3. 變換編碼

    先對原信號進行變換,再對變換後的信號進行編碼。

    1. 預測變換:根據信號的已知參數來預測即將發生的參數變化。
    2. 函數變換:最常見的就是傅立葉變換。

2.2 信源編碼技術

2.2.1 熵編碼

最佳編碼方法

  1. 香農編碼方法

    根據字符出現的概率計算 (-log_2p_i),向上取整就得到了編碼長度。

    香農編碼方法的效率接近100%

  2. 費諾編碼方法

    將整個消息概率集合分爲兩個子集,使得兩個子集的概率之和儘可能相等。然後一個子集編碼0,另一個編碼1。然後再對兩個子集進行同樣的操作。

  3. 哈夫曼樹編碼方法

    將所有的概率按遞減分佈,然後將最小概率的兩個編碼爲0和1,將兩者概率相加後作爲一個新的概率加入隊列,仍然是遞減分佈。重複步驟。

2.2.3 量化編碼

我們知道,對於連續型信源,需要經過採樣、量化和編碼三個階段才能進行信息傳輸。

採樣的頻率需要遵循採樣定理的頻率。

當信源產生的模擬信號經過採樣後,在時間上雖然離散化了,但是在幅值上依舊是連續的,只有經過幅值的分層處理,才能形成時間上和幅值上都是離散的信號。幅值上的分層處理即爲量化處理

所謂量化就是用有限個量化電平來近似表示連續變化的幅度值。每個連續點的幅度值被四捨五入到最接近的一個電平。因此而產生量化誤差,這個誤差是無法被消除的。

非均勻量化:大的輸入信號採用大的量化間隔,小的輸入信號採用小的量化間隔。

A壓縮率

[y = egin{cases}frac{Ax}{1+ln A}quad 0<xle frac1A\frac{1+ln Ax}{1+ln A}quad frac1Ale xle1 end{cases} ]

非均勻量化後,對於語音編碼非常容易實現。

非線性PCM編碼

  • 13折線法編碼

    共8位,(c_1,cdots,c_8)

    • c1: 極性,因爲信號有正有負
    • c2 ~ c4: 段落碼 - 8種段落斜率,每一段的大小不一定是相等的。
    • c5 ~ c8: 段內碼 - 16個量化電平,每一段內的分段都是均勻的。

非均勻編碼下,信號幅度小,量化誤差小;信號幅度大,量化誤差也大。

2.2.4 差值編碼

通過一個預測器預測誤差,量化後的差值信號是預測誤差與量化誤差之和。

2.2.5 語音參數編碼

語音不再使用波形進行表示,而是通過各種參數來表示和傳輸。在接受端再進行合成語音。

2.2.6 正交變換編碼

信號編碼實際就是一種變換,特別是通過變換來解除信號值之間的相關性,儘可能地逼近於統計獨立的信源符號。

2.2.6 多媒體信息壓縮編碼

視頻和音頻信息之所以能夠壓縮,是因爲自然信源存在很大的冗餘度

數據壓縮方面存在多種壓縮技術:

graph TD A[壓縮算法] --> B[無失真壓縮] A --> C[有失真壓縮] B --> D[熵編碼] B --> E[霍夫曼編碼] B --> F[遊程編碼] B --> G[語義算數編碼] B --> H[Lempelzev編碼] C --> I[預測編碼] C --> J[面向頻率] C --> K[面向重要性] C --> L[混合編碼] I --> M[運動補償] J --> N[變換編碼] J --> O[子帶編碼] J --> P[小波編碼] K --> Q[濾波] K --> R[子採樣] K --> S[比特分配] K --> T[量化編碼] T --> U[矢量量化] T --> V[標量量化] L --> W[JPEE標準] L --> X[MPEG標準] L --> Y[H.261標準] L --> Z[H.263標準]

2.3 差錯控制編碼

數字信息在信道中傳輸,由於收到信道內噪聲的影響,不可避免地會造成數字信號碼元間串擾,同時會產生差錯。當信息系統不能滿足對碼元差錯率要求時,就要採用差錯控制編碼。

2.4 信道编码技术

2.4.1 线性分组编码

将信息中每 (k) 个码元分成一段,然后由这个 (k) 个码元按照一定的规则产生 (r) 个监督码元,两者再组成长度为 (n(=k+r)) 的码字,就称构成了((n,k)) 线性分组码。

1. 线性分组码的构成

若要生成一个 (7,3) 线性分组码,(c_6,c_5,c_4) 为信息位。若按下列方程来设定监督码元:

[left.egin{aligned}&c_3=c_6oplus c_4\&c_2=c_6oplus c_5oplus c_4\&c_1 = c_6oplus c_5\&c_0 = c_5oplus c_4 end{aligned} ight} ]

原文地址:https://www.cnblogs.com/lunar-ubuntu/p/13805125.html