信息编码技术

第二章 信息编码技术原理

2.1 信源编码

2.1.1 信源编码器模型

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

常見的幾種信源編碼:

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

2.1.2 信源編碼效率

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

ηs=RbCt

單位都是 bit/碼元

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

Rb=H(X)b¯

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

联立得

ηs=H(X)b¯lbD

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

2.1.3 信源編碼方法

  1. 匹配編碼

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

  2. 量化編碼

  3. 變換編碼

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

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

2.2 信源編碼技術

2.2.1 熵編碼

最佳編碼方法

  1. 香農編碼方法

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

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

  2. 費諾編碼方法

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

  3. 哈夫曼樹編碼方法

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

2.2.3 量化編碼

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

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

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

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

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

A壓縮率

y={Ax1+lnA0<x1A1+lnAx1+lnA1Ax1

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

非線性PCM編碼

  • 13折線法編碼

    共8位,c1,,c8

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

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

2.2.4 差值編碼

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

2.2.5 語音參數編碼

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

2.2.6 正交變換編碼

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

2.2.6 多媒體信息壓縮編碼

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

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

壓縮算法

無失真壓縮

有失真壓縮

熵編碼

霍夫曼編碼

遊程編碼

語義算數編碼

Lempelzev編碼

預測編碼

面向頻率

面向重要性

混合編碼

運動補償

變換編碼

子帶編碼

小波編碼

濾波

子採樣

比特分配

量化編碼

矢量量化

標量量化

JPEE標準

MPEG標準

H.261標準

H.263標準

2.3 差錯控制編碼

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

2.4 信道编码技术

2.4.1 线性分组编码

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

1. 线性分组码的构成

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

c3=c6c4c2=c6c5c4c1=c6c5c0=c5c4}

posted @   kaleidopink  阅读(379)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示