截斷二進制編碼

来自testwiki
跳转到导航 跳转到搜索

Template:Unreferenced 截斷二進制編碼Template:Lang-en)是一種適用於擁有均勻分布特性的符號的熵編碼方式。當符號個數不為2的整數次方時,比起使用普通固定長度的二元編碼,採用截斷二進制編碼能縮短平均碼長。

編碼方式

n個符號,s{0,1,2,3...(n1)}2kn2k+1k=log2n

n不為2的整數次方,以k+1個進行位元固定二元編碼時,會有m個未使用之碼字,

m=2k+1n,u=nm

m個符號以碼長為k的二元碼,由小至大依序編碼,剩下u個符號則以碼長為k+1的二元碼之末u個碼字,依序編碼。

例子

n=5

可計算出,

22n22+1,k=2

m=3,u=2

3個符號須進行碼長為2之二元邊碼,剩下2個符號須進行碼長為3之二元邊碼。

如下表:

截斷二進制編碼符號 固定二元編碼符號 固定二元編碼 截斷二進制編碼
0 0 000 00
1 1 001 01
2 2 010 10
- 3 011 -
- 4 100 -
- 5 101 -
3 6 110 110
4 7 111 111