一、 什么是信息熵?
以下内容来自百度百科:
信息是个很抽象的概念。人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本五十万字的中文书到底有多少信息量。
直到1948年,香农提出了“信息熵”的概念,才解决了对信息的量化度量问题。信息熵这个词是C.E.Shannon(香农)从热力学中借用过来的。热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念来描述信源的不确定度。
信息论之父克劳德·艾尔伍德·香农第一次用数学语言阐明了概率与信息冗余度的关系。
信息熵的计算公式:
二、压缩编码方式
问题:
一串消息包含A,B,C,D,E共5类符号,其内容是:AABBBBAAAACCCCCCCCCEEEEEEDDDDEEEEEEEEEEEEE,
请问其信息熵是多少?如果分别采用香农-凡诺编码,霍夫曼编码,压缩率分别是多少?
解答:
出现概率统计:
信息熵:
香农-范诺编码:
-
将所有的字母按照出现的次数由多到少、从左到右进行排序,如下图所示:
-
划分两边,使两边出现次数的差最小
-
编码完成如下图所示(需要的位数 = 编码位数 × 出现的次数):
所以由以上过程可知:编码前5 种符号至少需要 3 位二进制编码,共 42 个字符,则需 3 × 42 = 126 3×42=1263×42=126 位。编码后共 87 8787 位。压缩比为126 : 87 = 1.45 : 1 126:87=1.45:1126:87=1.45:1
霍夫曼编码:
从最小概率的两个符号开始,可选其中一个支路为 0,另一支路为 1,再合并两个支路,并重新排队,多次重复这一过程,直到最后概率为 1
需要的位数 = 编码位数 × 出现的次数:
由以上可知编码前5 种符号至少需要 3 位二进制编码,共 42 个字符,则需 3 × 42 = 126 3×42=1263×42=126 位。编码后共 87 8787 位。压缩比为126 : 87 = 1.45 : 1
三、BMP 图像字节计算
问题:
一幅1024*768的24位RGB彩色图像一共在内存中占有多少字节? 如果将其保存为非压缩格式的BMP文件,文件有多少字节?请用实例验证
解答:
一张图共 1024 × 768 × 3 = 2 , 359 , 296 1024×768×3=2,359,2961024×768×3=2,359,296 个字节
BMP 文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
对于 24 位真彩色图像就不使用彩色板,因为位图中的 RGB 值就代表了每个像素的颜色。
故此图片的文件头+位图信息头+颜色信息为 54 字节,再加上图形数据,就是 2359350 字节