中易网

什么是信源在允许一定失真的条件下,信源熵所能压缩的极限

答案:1  悬赏:50  
解决时间 2021-02-08 02:44
什么是信源在允许一定失真的条件下,信源熵所能压缩的极限
最佳答案



1.统计编码原理──信息量和信息熵

  根据香农信息论的原理,最佳的数据压缩方法的理论极限是信息熵。如果要求在编码过程中不丢失信息量,即要求保存信息熵,这种信息保持的编码又叫熵保存编码,或叫熵编码。熵编码是无失真压缩。当然在考虑人眼失真不易察觉的生理特性时,有些图像编码不严格要求熵保存,信息允许通过部分损失来换取高的数据压缩比。这种编码属于有失真数据压缩。
  信息是用不确定性的量度定义的,也就是说信息被假设为由一系列的随机变量所代表,它们往往用随机出现的符号来表示。我们称输出这些符号的源为“信源”。也就是要进行研究与压缩的对象。   信息量

  信息量指从N个相等可能事件中选出一个事件所需要的信息度量或含量,也可以说是辨别N个事件中特定事件过程中所需提问“是”或“否”的最小次数。
  例如:从64个数(1~64的整数)中选定某一个数(采用折半查找算法),提问:“是否大于32?”,则不论回答是与否,都消去半数的可能事件,如此下去,只要问6次这类问题,就可以从64个数中选定一个数,则所需的信息量是 =6(bit)。   我们现在可以换一种方式定义信息量,也就是信息论中信息量的定义。
  设从N中选定任一个数X的概率为P(x),假定任选一个数的概率都相等,即P(x)=1/N,则信息量I (x)可定义为:

  上式可随对数所用“底”的不同而取不同的值,因而其单位也就不同。设底取大于1的整数α,考虑一般物理器件的二态性,通常α取2,相应的信息量单位为比特(bit);当α=e,相应的信息量单位为奈特(Nat);当α=10,相应的信息量单位为哈特(Hart)。  显然,当随机事件x发生的先验概率P(x)大时,算出的I(x)小,那么这个事件发生的可能性大,不确定性小,事件一旦发生后提供的信息量也少。必然事件的P(x)等于1, I(x)等于0,所以必然事件的消息报导,不含任何信息量;但是一件人们都没有估计到的事件(P(x)极小),一旦发生后,I(x)大,包含的信息量很大。所以随机事件的先验概率,与事件发生后所产生的信息量,有密切关系。I(x)称x发生后的自信息量,它也是一个随机变量。
  P(x)大时,算出的I(x)小 必然事件的P(x)等于1, I(x)等于0。
  P(x)小时,算出的I(x)大 必然事件的P(x)等于0, I(x)等于1。
  I(x)称x发生后的自信息量,它也是一个随机变量。
  信息熵

  现在可以给“熵”下个定义了。信息量计算的是一个信源的某一个事件(X)的自信息量,而一个信源若由n个随机事件组成,n个随机事件的平均信息量就定义为熵(Entropy)。
  熵的准确定义是:信源X发出的xj(j=1,2,……n), 共n个随机事件的自信息统计平均(求数学期望),即

  H(X)在信息论中称为信源X的“熵 (Entropy)” ,它的含义是信源X发出任意一个随机变量的平均信息量。

  更详细的说,一般在解释和理解信息熵有4种样式
  (1) 当处于事件发生之前,H(X)是不确定性的度量;
  (2) 当处于事件发生之时,是一种惊奇性的度量;
  (3) 当处于事件发生之后,是获得信息的度量;
  (4) 还可以理解为是事件随机性的度量.   下面为了掌握信息熵的概念,我们来做一道计算题。
  例如:以信源X中有8个随机事件,即n=8。每一个随机事件的概率都相等,即P(x1)=P(x2)=P(x3)……P(x8)=1/8 ,计算信源X的熵。
  应用“熵”的定义可得其平均信息量为3比特

  再例: 信源X中有17个随机事件,即n=17。每一个随机事件的概率分别为:

  计算信源X的熵。
  信息熵的计算公式:

  信源X的熵:

  定长码与变长码
  定长码(fixed-length code)即采用相同的位数(bit)对数据进行编码。大多数存储数字信息的编码系统都采用定长码。如我们常用的ASCII码就是定长码,其码长为1字节(Byte)。汉字国标码也是定长码,其码长为2字节(Byte)。  变长码(variable-length code)即采用不相同的位数(bit)对数据进行编码,以节省存储空间。  例如,不同的字符或汉字出现的概率是不同的,有的字符出现的概率非常高,有的则非常低。根据统计,英文字母中“E”的使用概率约为13%,而字母“Z”的使用概率则为0.08%。又如大多数图像常含有单色的大面积图块,而且某些颜色比其他颜色出现更频繁。为了节省空间,在对数据进行编码时,就有可能对那些经常出现的数据指定较少的位数表示,而那些不常出现的数据指定较多的位数表示。这样从总的效果看还是节省了存储空间。用这种方法得到的代码,其码的位数,也即码长就是不固定的,故称为变长码。香农-范诺编码,以及霍夫曼编码,都是变长码。
  2.赫夫曼(Huffman)编码  基本原理:按信源符号出现的概率大小进行排序,出现概率大的分配短码,出现概率小的则分配长码。(定长码采用相同的码长对数据进行编码,如ASCII码是定长码,其码长为1字节。)
  定理:在变长码中,对于出现概率在的信息符号编以短字长的码,对于出现概率小的信息符号以长字长的码,如果码字长度严格按照符号概率的大小的相反顺序排列,则平均码字长度一定小于按任何其他符号顺序排列方式得到的码字长度。
  定理证明

  设最佳排列方式的码字平均长度为 ,则有:

  式中 为信源符号 出现的概率, 是符号 的编码长度。规定 , 。如果将 的码字与 的码字互换,其余码字不变,经过这样的互换以后,平均码字长度变成 ,即

  因为 ,所以 ,也就是说 最短。证毕。
  Huffman编码的编码步骤

  ① 概率统计(如对一幅图像,或m幅同种类型图像作灰度信号统计),得到n个不同概率的信息符号。
  ② 将n个信源信息符号的n个概率,按概率大小排序。
  ③ 将n个概率中,最后两个小概率相加,这时概率个数减为n-1个。
  ④ 将n-1个概率,按大小重新排序。
  ⑤ 重复③,将新排序后的最后两个小概率再相加,相加和与其余概率再排序。
  ⑥ 如此反复重复n-2次,得到只剩两个概率序列。
  ⑦ 以二进制码元(0.1)赋值,构成霍夫曼码字。编码结束。

  利用Huffman编码方式对信源进行编码

  已知信源:
    编码结果:X1X2X3X4X5X6X7  001001001111011101111  平均码长: =(0.35+0.20)×2+(0.15+0.10+0.10)×3+(0.06+0.04)×4=2.55(bit) (对于等长码则需要3比特)。

  Huffman编码的特点

  (1)平均码长 (熵);
  (2)平均码长 bits(等长码需要的比特数);
  (3)保证解码的唯一性,短码字不构成长码字的前缀;
  (4)在接收端需保存一个与发送端相同的赫夫曼码表。   Huffman不足方面:  (1)构造出的码不唯一,其原因是:一是在给两个分支赋值时,可以是左支(或上支)为0,也可以是右支(或下支)为0,造成编码的不唯一;二是当两个消息的概率相等时,谁前谁后也是随机的,构造出来的码字也不唯一。
  (2)编码码字字长参差不齐,因此硬件实现起来不大方便。
  (3)编码对不同信编码效率是不同的。在概率颁很不均匀时,Huffman编码才会有显著的效果,在信源颁均匀的情况下,一般不使用Huffman编码。
  3.算术编码(Arithmetic Coding)  算术编码方法也是利用信源概率分布特性、能够趋近熵极限的编码的方法。算术编码不按符号编码,即不是用一个特定的码字与输入符号之间建立一一对应的关系,而是从整个符号序列出发,采用递推形式进行连续编码,用一个单独的浮点数来表示一串输入符号。算术编码是将被编码的信息表示成实数0和1之间的一个间隔。信息越长编码表示它的间隙就越小,表示这一间隙所须二进位就越多,大概率符号出现的概率越大对应于区间愈宽,可用长度较短的码字表示;小概率符号出现概率越小层间愈窄,需要较长码字表示。它的编码方法比Huffman编码方式要复杂,但它不需要传送像Huffman编码中的Huffman码表,同时算术编码还有自适应的优点,所以算术编码是实现高效压缩数据中很有前途的编码方法。  特点:方法比较复杂,具有自适应能力(随着编码符号流中01出现的概率的变化将自适应的改变)。在信源符号概率接近时,算术编码比Huffman编码效率要高。   算术编码与解码举例

  假设信源符号为{00, 01, 10, 11},这些符号的概率分别为{ 0.1, 0.4, 0.2, 0.3 },根据这些概率可把间隔[0,1)分成4个子间隔:[0, 0.1), [0.1, 0.5), [0.5, 0.7), [0.7, 1),其中[x,y)表示半开放间隔,即包含x不包含y。上面的信息可综合在下表中。 表 信源符号,概率和初始编码间隔 符号00 01 1011概率0.1 0.40.20.3初始编码间隔[0,0.1) [0.1,0.5)[0.5,0.7)[0.7,1)
  如果二进制消息序列的输入为:10 00 11 00 10 11 01。编码时首先输入的符号是10,找到它的编码范围是[0.5, 0.7)。由于消息中第二个符号00的编码范围是[0, 0.1),因此它的间隔就取[0.5, 0.7)的第一个十分之一作为新间隔[0.5, 0.52)。依此类推,编码第3个符号11时取新间隔为[0.514, 0.52),编码第4个符号00时,取新间隔为[0.514, 0.5146),… 。消息的编码输出可以是最后一个间隔中的任意数。整个编码过程如下图示:
表: 编码过程步骤 输入符号编码间隔 编码判决110[0.5, 0.7)符号的间隔范围[0.5, 0.7) 200[0.5, 0.52)[0.5, 0.7)间隔的第一个1/10311[0.514, 0.52)[0.5, 0.52)间隔的最后三个1/10400[0.514, 0.5146)[0.514, 0.52)间隔的第一个1/10510[0.5143, 0.51442)[0.514, 0.5146)间隔的第六个1/10开始的两个1/10611[0.514384, 0.51442)[0.5143, 0.51442)间隔的最后三个1/10701[0.5143836, 0.514402)[0.514384, 0.51442)间隔的从第二个1/10开始的四个1/108从[0.5143876, 0.514402中选择一个数作为输出:0.51439
表:译码过程步骤间隔译码符号 译码判决 1[0.5, 0.7)100.51439在间隔 [0, 1) 第六个1/102[0.5, 0.52)000.51439在间隔 [0.5, 0.7)的第一个1/103[0.514, 0.52)110.51439在间隔[0.5, 0.52)的第八个1/104[0.514, 0.5146)000.51439在间隔[0.514, 0.52)的第一个1/105[0.5143, 0.51442)100.51439在间隔[0.514, 0.5146)的第七个1/106[0.514384, 0.51442)110.51439在间隔[0.5143, 0.51442)的第八个1/107[0.5143876, 0.514402)010.51439在间隔[0.5143876, 0.514402)的第二个1/108译码的消息:10 00 11 00 10 11 01  译码器的译码过程应无限制地运行下去。在译码器中需要添加一个专门的终止符,当译码器看到终止符时就停止译码。  在算术编码中需要注意的几个问题:
  ①由于实际的计算机的精度不可能无限长,运算中出现溢出是一个明显的问题,但多数机器都有16位、32位或者64位的精度,因此这个问题可使用比例缩放方法解决。
  ②算术编码器对整个消息只产生一个码字,这个码字是在间隔[0, 1)中的一个实数,因此译码器在接受到表示这个实数的所有位之前不能进行译码。
  ③算术编码也是一种对错误很敏感的编码方法,如果有一位发生错误就会导致整个消息译错。

  算术编码可以是静态的或者自适应的。在静态算术编码中,信源符号的概率是固定的。在自适应算术编码中,信源符号的概率根据编码时符号出现的频繁程度动态地进行修改,在编码期间估算信源符号概率的过程叫做建模。需要开发自适应算术编码的原因是因为事先知道精确的信源概率是很难的,而且是不切实际的。当压缩消息时,不能期待一个算术编码器获得最大的效率,所能做的最有效的方法是在编码过程中估算概率。因此动态建模就成为确定编码器压缩效率的关键。
  算术编码的实现相应地比Huffman编码复杂,但当与信号源符号的出现概率接近时,算术编码的效率高于Huffman编码。在图像测试中表明,算术编码效率比Huffman效率高5%左右。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
依依生活超市地址在什么地方,想过去办事
HTC 801e 想换电池怎么办求大神解答
为什么说淡盐水可以解渴?
河蚌要煮多久
某限制性核酸内切酶按ggg↓cgccc方式切割产生
哈佛h6coupe2.0t和变速箱是那个厂家的
四肢关节内部痒,晚上睡不着,已经严重影响到
列出完整的中烟品牌整合中淘汰的品牌香烟。(
问道寻仙任务是做什么的
论坛上找到的红米note4g版的努比亚ui2.5的移
求助,金庸立志传mod3.0
没有用工主体责任可否建立劳动关系
什么是相对气流
新桥综合市场在哪里啊,我有事要去这个地方
求所有含“柬”偏旁的字
推荐资讯
石家庄那里做头发最好
2017年福建师范大学教育学考研参考书有哪些?
人们是怎么根据蝙蝠发明雷达的
军晓圣典时尚婚纱摄影我想知道这个在什么地方
形容自慰的词语
吃饭时有噎的感觉,人瘦了好多是不是有啥病啊
威海泰思电子有限公司怎么样?
第一次起诉离婚与第二次起诉离婚的间隔期
mercury无线路由器接头怎么插
山东大学经济学院的金融专业硕士好考么,和学
如何在忙碌的工作中,让自己放松,心情舒畅一
纳豆菌苗放冷冻室会不会冻死
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?