一、什么是信息熵?
信息熵是一个数学上颇为抽象的概念,在这里不妨把信息熵理解成某种特定信息的出现概率(离散随机事件的出现概率)。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。信息熵也可以说是系统有序化程度的一个度量。
二、实例
1、一串消息包含A,B,C,D,E共5类符号,其内容是AABBBBAAAACCCCCCCCCEEEEEEDDDDEEEEEEEEEEEEE, 请问其信息熵是多少?如果分别采用香农-凡诺编码,霍夫曼编码,压缩率分别是多少?
香农-凡诺编码
按照概率大小排序,再分割E,C分为19和23,再从C,A,B,D中分割C,A分为了9,14,再从A,B,D中分割为A,B分为6和8,再将B和D分割。
编码前:5个符号需要三位,42个字符共126。
编码后:共87位
压缩比:126:87=1.45:1
霍夫曼编码
根据符号的次数,E>C>A>B,D,B=D。
先将B,D组成节点共8,再与A组成节点共14,再与C组成节点共23,再与E组成节点。
编码前:5个符号需要三位,42个字符共126。
编码后:共87位
压缩比:126:87=1.45:1
2、一幅1024*768的24位RGB彩色图像一共在内存中占有多少字节? 如果将其保存为非压缩格式的BMP文件,文件有多少字节?请用实例验证。
答:24位RGB彩色图像,每个像素占24bit,一个字节可以储存8位数据。1024768个像素点,1024768*24=18874368(bit),再除以8转换为byte(8bit=1byte)=2359296(byte)。
保存为非压缩格式BMP文件: