熵编码-算术编码

熵的概念

信息熵的公式:H(x)=\sum P(i)*log(P(i)),P(i)是事件发生的概率。

现在有一段英文字母:AABABCABAB,A 出现了 5 次,B 出现了 4 次,C 出现了 1 次。

则每个字母出现的概率为

P(A) = 0.5
P(B) = 0.4
P(C) = 0.1

则这段字符的信息熵为:

H=0.5*log(0.5)+0.4*log(0.4) +0.1*log(0.1)=1.361

也就是指,这段字符的压缩极限为:每个字母可以用1.361个字节表示。

算术编码

为了能让字母能够用1.361个字节去进行编码,于是提出了很多编码方法,比如哈夫曼编码,算术编码,游程编码等。

这里主要介绍算术编码的优缺点和编码过程。

算术编码的编码过程:

第一步:计算每个字符的出现概率

P(A) = 0.5
P(B) = 0.4
P(C) = 0.1

第二步:按照概率对0-1区间进行划分

A:0-0.5   B:0.5-0.9   C:0.9-1

第三步:开始对AABABCABAB进行编码,第

你可能感兴趣的:(算法,人工智能,机器学习)