数据压缩和信源编码3
2变长编码3
3哈夫曼码3
4算术码香农-费诺码3
5通用信源编码LZW算法习题三0
概述是第一个能够找到的好的变长码
原则:按照符号出现的概率从大到小排序,然后将其分成两个出现概率相同或几乎相同的子集—一个子集的编码均以0打头,另一个子集的编码均以1打头;然后把每个子集再分成两个更小的子集,同样确定所有码字的第二位,依次循环
算术码—Shannon-Fano-Elias码算术码—Shannon-Fano-Elias码例例110
概述平均码长:0
25×2+0
20×2+0
15×3+0
15×3+0
10×3+0
10×4+0
05×4=2
7bits/symbol
25log0
20log0
15log0
15log0
10log0
10log0
05log0
这是一个较好的结果
算术码—Shannon-Fano-Elias码算术码—Shannon-Fano-Elias码例例22算术码—Shannon-Fano-Elias码12,13,44xx例例331
基本思路用二进制小数表示信源的概率分布,如果概率分布取值大,则它的二进制位数就低;另外,为了使算术码具有前缀性(无尾随后缀),对概率分布采用累计求和计算
算术码—Shannon-Fano-Elias码2
编码方法1)将信源符号X={a1,a2,……,aq}依次排列(不要求以概率大小排序);2)计算各符号的修正累积分函数值3)确定各信源符号所对应码字的码长4)将F(ak)表示为二进制小数,并用小数点后的l(ak)位作为ak的码字
111()()()2kkikiFxapapa1()log1()kklapa算术码—Shannon-Fano-Elias码[x]