香农码
编码步骤:
- 将信源符号的发生概率(降序)排序;
- 计算各信源符号的自信息量;
- 码长:自信息量向上取整;(保证是唯一可译码,且无失真编码)
- 排序后的信源符号,计算累加概率(取左端点);
- 累加概率二进制话,取对应码长,得到编码码字;
编码举例:
有a b c d概率分别为0.25 0.4 0.2 0.15
码元 | 概率 | Ii=-logPi | 码长(向上取整) | 累加概率(左端点) | 二进制化 | 香农码 |
b | 0.4 | 1.322 | 2 | 0 | 0.00 | 00 |
a | 0.25 | 2.0 | 2 | 0+0.4=0.4 | 0.01 | 01 |
c | 0.2 |