信息熵与压缩编码基础

Posted 满足没有

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信息熵与压缩编码基础相关的知识,希望对你有一定的参考价值。

信息熵

信息是个很抽象的概念。人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本五十万字的中文书到底有多少信息量。
直到1948年,香农提出了“信息熵”的概念,才解决了对信息的量化度量问题。信息熵这个词是C.E.Shannon(香农)从热力学中借用过来的。热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念来描述信源的不确定度。

具体见:百度百科

一串消息包含A,B,C,D,E共5类符号,其内容为AABBBBAAAACCCCCCCCCEEEEEEDDDDEEEEEEEEEEEEE,分别对其进行香农编码和霍夫曼编码

总共含42个符号,其中6个A,4个B,9个C,4个D,19个E,其对应的概率分别为1/7,2/21,3/14,2/21,19/42
可以看到其概率分布如下

P(A)=1/7
P(B)=2/21
P©=3/14
P(D)=2/21
P(E)=19/42

信息熵计算为2.043

香农编码

编码步骤 :
(1)将信源符号按概率从大到小顺序排列,为方便起见

(2)按计算第i个符号对应的码字的码长(取整);

(3) 计算第i个符号的累加概率 ;

(4)将累加概率变换成二进制小数,取小数点后 位数作为第i个符号的码字。

具体编码见:信息熵与压缩编码基础

霍夫曼编码

编码步骤
1.为每个符号建立一个叶子节点,并加上其相应的发生频率
2.当有一个以上的节点存在时,进行下列循环:

把这些节点作为带权值的二叉树的根节点,左右子树为空
选择两棵根结点权值最小的树作为左右子树构造一棵新的二叉树,且至新的二叉树的根结点的权值为其左右子树上根结点的权值之和。把权值最小的两个根节点移除 将新的二叉树加入队列中。
3.最后剩下的节点暨为根节点,此时二叉树已经完成。

香农-范诺编码算法并非总能得到最优编码。1952年, David A. Huffman提出了一个不同的算法,这个算法可以为任何的可能性提供出一个理想的树。

香农-范诺编码是从树的根节点到叶子节点所进行的的编码,哈夫曼编码算法却是从相反的方向,暨从叶子节点到根节点的方向编码的。

具体演算工程:同上

一幅1024*768的24位RGB彩色图像一共在内存中占有多少字节? 如果将其保存为非压缩格式的BMP文件,文件有多少字节?

1.一幅1024*768的24位RGB彩色图像占用字节数:

102476824/8=2359296 byte

2.BMP图像占用空间:
BMP 文件由文件头、位图信息头、颜色信息和图形数据四部分组成,24 位真彩色图像就不使用彩色板,因为位图中的 RGB 值就代表了每个像素的颜色文件头+位图信息头+颜色信息为 54 字节,再加上图形数据,就是 2 , 359 , 350 2,359,3502,359,350 字节

以上是关于信息熵与压缩编码基础的主要内容,如果未能解决你的问题,请参考以下文章

视频编解码·学习笔记7. 熵编码算法:基础知识 & 哈夫曼编码

如何通俗的解释交叉熵与相对熵

信息量,熵,交叉熵,相对熵与代价函数

信息论:熵与互信息

学习笔记 | 机器学习 决策树

学习笔记 | 机器学习 决策树