在消息理論中，**夏農–菲諾–以利亞碼**是算術編碼的先導，其機率被用於決定碼字。

演算法描述
-----

給定一離散隨機變數 *X* ，令 p(x) 為 *X*=*x* 發生之機率。

定義

{\displaystyle {\bar {F}}(x)=\sum \_{x\_{i}<x}p(x\_{i})+{\frac {1}{2}}p(x)}
演算法如下：

對每個 *X* 中的 *x*，
令 *Z* 為 {\displaystyle {\bar {F}}(x)} 之二次展開
令 *x* 之編碼長度 {\displaystyle L(x)=\left\lceil \log \_{2}{\frac {1}{p(x)}}\right\rceil +1}
選定 *x* 之編碼， {\displaystyle code(x)} 為 L(x) 在 *Z* 之小數點後之第一個最高有效位。
### 舉例

令 X = {A, B, C, D} ，其發生機率分別為 p = {1/3, 1/4, 1/6, 1/4} 。

對於 A
{\displaystyle {\bar {F}}(A)={\frac {1}{2}}p(A)={\frac {1}{2}}\cdot {\frac {1}{3}}=0.1666...}
在二進位中， Z(A) = 0.**001**0101010...
L(A) = {\displaystyle \left\lceil \log \_{2}{\frac {1}{\frac {1}{3}}}\right\rceil +1} = **3**
code(A) 為 001
對於 B
{\displaystyle {\bar {F}}(B)=p(A)+{\frac {1}{2}}p(B)={\frac {1}{3}}+{\frac {1}{2}}\cdot {\frac {1}{4}}=0.4583333...}
在二進位中， Z(B) = 0.**011**10101010101...
L(B) = {\displaystyle \left\lceil \log \_{2}{\frac {1}{\frac {1}{4}}}\right\rceil +1} = **3**
code(B) 為 011
對於 C
{\displaystyle {\bar {F}}(C)=p(A)+p(B)+{\frac {1}{2}}p(C)={\frac {1}{3}}+{\frac {1}{4}}+{\frac {1}{2}}\cdot {\frac {1}{6}}=0.66666...}
在二進位中， Z(C) = 0.**1010**10101010...
L(C) = {\displaystyle \left\lceil \log \_{2}{\frac {1}{\frac {1}{6}}}\right\rceil +1} = **4**
code(C) 為 1010
對於 D
{\displaystyle {\bar {F}}(D)=p(A)+p(B)+p(C)+{\frac {1}{2}}p(D)={\frac {1}{3}}+{\frac {1}{4}}+{\frac {1}{6}}+{\frac {1}{2}}\cdot {\frac {1}{4}}=0.875}
在二進位中， Z(D) = 0.**111**
L(D) = {\displaystyle \left\lceil \log \_{2}{\frac {1}{\frac {1}{4}}}\right\rceil +1} = **3**
code(D) 為 111

演算法分析
-----

### 前綴碼

夏農–菲諾–以利亞碼之輸出為二進位前綴碼，因此可被直接解碼。

令 bcode(x) 為二進位表示法最左側加入小數點而成之小數。舉例而言， code(C)=1010 ，則 bcode(C) = 0.1010 。 對所有 x ，如果沒有任何 y 存在使得 

{\displaystyle bcode(x)\leq bcode(y)<bcode(x)+2^{-L(x)}}
則所有的碼可構成前綴碼。

  

此性質可透過比較 F 和 X 之累積分布函数，以圖表示出：

The relation of F to the CDF of X

由 L 之定義可得

{\displaystyle 2^{-L(x)}\leq {\frac {1}{2}}p(x)}
並且由於 code(y) 是由 F(y) 從 L(y) 之後的位元截短而得，故

{\displaystyle {\bar {F}}(y)-bcode(y)\leq 2^{-L(y)}}
因此 bcode(y) 必不比 CDF(x) 小。

上圖說明了 {\displaystyle bcode(y)-bcode(x)>p(x)\geq 2^{-L(x)}} ，因此前綴碼定理成立。

### 編碼長度

此碼之平均長度為
{\displaystyle LC(X)=\sum \_{x\epsilon X}p(x)L(x)=\sum \_{x\epsilon X}p(x)(\left\lceil \log \_{2}{\frac {1}{p(x)}}\right\rceil +1)} 。  

因隨機變數 X 之 熵 H(X) 滿足

{\displaystyle H(X)+1\leq LC(X)<H(X)+2}
夏農–菲諾–以利亞碼之長度約比代編碼資料之熵長約一到二額外位元，故甚少被實用。

參考書目
----

T. M. Cover and Joy A. Thomas (2006). Elements of information theory (2nd ed.). John Wiley and Sons. pp. 127–128.

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
方法 |
| --- |
|  |
| 理论 | 
* 熵
* 语法（英语：）
* 信息论
* 柯氏复杂度
* 量化
* 率失真理论
* 

 |
|  |
|  | 

|  |  |
| --- | --- |
| 熵編碼 | 
* 算术编码
* 非对称数字系统编码（英语：）
* 格倫布編碼
* 霍夫曼编码
	+ 适应性
	+ 范型
	+ 改进
* 區間編碼
* 香农编码
* 香农-范诺编码
* 香農-范諾-埃利西斯編碼
* Tunstall编码（英语：）
* 一元编码（英语：）
* 通用編碼（英语：）
	+ 指數格倫布編碼
	+ 斐波那契編碼
	+ 以利亞伽瑪編碼
	+ 萊文斯坦編碼（英语：）

 |
|  |
| 字典編碼（英语：） | 
* 字节对编码
* LZ77 / LZ78
	+ 842（英语：）
	+ Brotli
	+ Deflate
	+ LZ4
	+ LZFSE
	+ LZJB（英语：）
	+ LZMA
	+ LZO
	+ LZRW（英语：）
	+ LZS（英语：）
	+ LZSS
	+ LZW
	+ LZWL（英语：）
	+ LZX
	+ Snappy
	+ Zstandard

 |
|  |
| 其他 | 
* BWT
* CTW（英语：）
* 差分编码
* DMC
* 差分脉冲编码调制
* 无损离散余弦变换
* MTF
* PAQ（英语：）
* PPM（英语：）
* RLE

 |

 |
|  |
|  | 

|  |  |
| --- | --- |
| 变换编码 | 
* DCT
	+ MDCT
* DST
* FFT
* 小波变换
	+ 多贝西
	+ DWT
	+ SPIHT（英语：）

 |
|  |
| 预测编码 | 
* DPCM
	+ ADPCM（英语：）
* LPC
	+ ACELP（英语：）
	+ CELP
	+ LAR（英语：）
	+ LSP（英语：）
	+ WLPC（英语：）
* 运动
	+ 运动补偿
	+ 运动预测
	+ 运动矢量
* 心理声学

 |

 |
|  |
|  | 

|  |  |
| --- | --- |
| 概念 | 
* 码率
	+ 平均码率
	+ 恒定码率
	+ 可变码率
* 压扩（英语：）
* 卷积
* 动态范围
* 延迟（英语：）
* 采样
* 采样定理
* 音质
* 语音编码
* 子带编码

 |
|  |
| 编解码组件 | 
* A-law（英语：）
* μ-law（英语：）
* DPCM
	+ ADPCM（英语：）
	+ DM
* FT
	+ FFT
* LPC
	+ ACELP（英语：）
	+ CELP
	+ LAR（英语：）
	+ LSP（英语：）
	+ WLPC（英语：）
	+ CELP
	+ MDCT
* 心理聲學模型

 |

 |
|  |
|  | 

|  |  |
| --- | --- |
| 概念 | 
* 色度抽样
* 编码树单元
* 色彩空間
* 壓縮失真
* 图像分辨率
* 宏块
* 像素
* 峰值信噪比
* 量化
* 标准测试图像

 |
|  |
| 方法 | 
* DCT
* Deflate
* 分形压缩
* K-L变换
* LP（英语：）
* RLE
* 小波变换
	+ 多贝西
	+ DWT
	+ SPIHT（英语：）

 |

 |
|  |
|  | 

|  |  |
| --- | --- |
| 概念 | 
* 码率
	+ 平均码率
	+ 恒定码率
	+ 可变码率
* 显示分辨率
* 帧（英语：）
* 帧率
* 帧类型
* 隔行扫描
* 視訊特性
* 視訊質量

 |
|  |
| 编解码组件 | 
* DCT
* DPCM
* 去区块滤波器
* 重叠变换（英语：）
* 运动
	+ 运动补偿
	+ 运动预测
	+ 运动矢量
* 量化

 |

 |
|  |
| 另见压缩格式和数据压缩 |

 |