展开全部 +
首页 . 工学 . 信息与通信工程 . 信源编码 . 〔通用概念〕 . 熵编码

熵编码

/entropy coding/
条目作者吴成柯

吴成柯

最后更新 2023-06-11
浏览 165
最后更新 2023-06-11
浏览 165
0 意见反馈 条目引用

编码过程中按信息熵原理的一种无损编码。

英文名称
entropy coding
所属学科
信息与通信工程

数据压缩技术的理论基础是信息论。信息论中的信源编码理论解决的主要问题包括:①数据压缩的理论极限;②数据压缩的基本途径。根据信息论的原理,可以找到最佳数据压缩编码的方法,数据压缩的理论极限是信息熵。信息熵为信源的平均信息量(不确定性的度量)。如果要求编码过程中不丢失信息量,即要求保存信息熵,这种信息保持编码称为熵编码,是根据消息出现概率的分布特性而进行的,是无损数据压缩编码。常见的熵编码有:香农编码、哈夫曼编码和算术编码等。在视频编码中,熵编码把一系列用来表示视频序列的元素符号转变为一个用来传输或是存储的压缩码流。输入的符号可能包括量化后的变换系数、运动向量、头信息(宏块头、图像头、序列的头)以及附加信息(对于正确解码来说重要的标记位信息)等。

使用长度不同的比特串对字母进行编码有一定的困难。尤其是几乎所有概率的熵都是一个有理数。哈夫曼编码建议了一种将位元进位成整数的算法,但这个算法在特定情况下无法达到最佳的结果。为此研究者加以改进,提供最佳整数位元数。这个算法使用二叉树来设立一个编码。这个二叉树的终端节点代表被编码的字母,根节点代表使用的位元。除这个方法外,还有使用固定的编码表的方法。例如,加入要编码的数据中符号出现的概率符合一定的规则的话就可以使用特别的变长编码表。这样的编码表具有一定的系数来使得它适应实际字母出现的概率。

使用整数位元的方法往往无法获得使用熵计算的位元数,因此其压缩并非一定最佳。例如,字母列由两个不同的字母组成,其中一个字母的可能性是,另一个字母的可能性是。以上算法的结果是每个字母用一个位元来代表,因此其结果的位元数与字母数相同。

扩充功能取样位数可以稍微弥补此破绽,上例的。以哈夫曼编码算法编码结果为:每两个字母平均用个位元,即平均每个字母用0.84375个位元来代表,向最佳熵值迈近了一步。

最佳熵编码器应为第一个字母使用个位元,为第二个字母使用个位元,因此整个结果是每个字母平均使用个位元。

使用算术编码可以改善这个结果,使得原信息按照熵最佳来编码。

要确定每个字母的比特数算法需要尽可能精确地知道每个字母的出现概率。模型的任务是提供这个数据。模型的预言越好,压缩的结果就越好。此外,模型须在压缩和恢复时提出同样的数据。有许多不同的模型。

静态模型在压缩前对整个文字进行分析,计算每个字母的概率。这个计算结果用于整个文字上。其优点是:编码表只需计算一次,因此编码速度高,除在解码时所需要的概率值外,结果肯定不比原文长。缺点是:计算的概率须附加在编码后的文字上,这使得整个结果加长;计算的概率是整个文字的概率,因此无法对部分地区的有序数列进行优化。

在这个模型里概率随编码过程而不断变化。多种算法可以达到这个目的。①前向动态。概率按照已经被编码的字母来计算,每次一个字母被编码后,它的概率就增高。②反向动态。在编码前,计算每个字母在剩下的还未编码的部分的概率。随着编码的进行,最后越来越多的字母不再出现,它们的概率成为0,而剩下的字母的概率升高,它们编码的比特数降低。压缩率不断增高,以至于最后一个字母只需要0比特来编码。其优点是:模型按照不同部位的特殊性优化;在前向模型中概率数据不需要输送。其缺点是:每个字母被处理后概率要重算,因此比较慢;计算出来的概率与实际的概率不一样,在最坏状态下压缩的数据比实际原文还要长。

一般在动态模型中不使用概率,而使用每个字母出现的次数。除上述的前向和反向模型外,还有其他的动态模型计算方法。例如,在前向模型中可以不时减半出现过的字母的次数来降低一开始的字母的影响力。对于尚未出现过的字母的处理方法也有许多不同的手段,如假设每个字母正好出现一次,这样所有的字母均可被编码。

模型度说明模型顾及历史上多少个字母。例如,模型度0说明模型顾及整个原文;模型度1说明模型顾及原文中的上一个字母并不断改变其概率。模型度可以无限高,但是对于大的原文来说模型度越高其需要的计算内存也越多。

  • 吴家安.数据压缩技术及应用.北京:科学出版社,2009.

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!