赞
踩
霍夫曼编码
霍夫曼(Huffman)编码是一种可变长度编码技术,它用于压缩具有已知概率分布的一连串符号。霍夫曼编码具有这样一个编码树结构,首先找出该序列中具有最小出现概率的两个符号。将这两个符号的独立概率之和作为新的符号的概率。这个过程继续进行,使每个节点都由两个最小概率的符号组成,直到所有符号都用这样的编码树结构表示。
当编码树构建成之后,首先对每个树支分别赋予二进制数字0或1,可以在编码树结构中可赋予编码序列。接着,从树根开始沿着树枝方向依次连接一直到定义相关符号(这里指A, B, C和D中的某一个)的那个树支末梢,同时按照上述顺序依次读取对每一树支赋予的代码(0或1)组合起来构成该符号的代码。这种方法得出的独特代码保证每个符号的数据长度都是最佳的(见译者附图)。
虽然这种编码可具有不同的长度,但是如果从最高有效位(MSB)开始读取编码,每个编码都能毫无疑义地解码。JPEG标准提供许多霍夫曼编码表格来描述输入量化后的数据不同的编码方式——例如,已经介绍的根据亮度或色差信息编码。
图5: 具有不同权重符号概率的熵编码示例
图5中使用和图4相同的例子,但是具有不同权重的符号概率。位编码栏示出了修改的编码序列。正如我们看到的,最可能出现的符号采用一位编码,而最不可能出现的符号是使用3位编码。
使用这个表格,我们能确定对每个符号编码的平均位长度。
(0.5×1 位) + (0.3×2 位) + (0.1×3 位) + (0.1×3 位) = 1.7 位/符号
在这个例子中,变长编码方法产生平均1.7 位/符号,它比图4中产生的定长编码产生的2 位/符号提高了效率。
JPEG标准使用的另一种熵编码方法是算术编码。虽然这种算法由于使用适应性技术更容易达到熵速率而提供比霍夫曼编码更好的压缩性能,但是要求的附加处理还不能证明对压缩效率有任何小的改进。此外,算术编码还存在专利限制问题。
JPEG文件交换格式(JFIF)
将编码数据写入JPEG文件交换格式(JFIF),顾名思义JFIF是一种简化的格式允许JPEG压缩图像在多个平台和应用间共享。JFIF包括嵌入图像和编码系数,并采用适合的标题信息构建。尤其是,除了编码数据之外,JFIF文件必须保存所有编码和量化的表格,这是保证JPEG解码器正确工作必须的。
译者附图
参考文献
1. Symes, Peter. Video Compression Demystified. McGraw-Hill: New York, 2001.
2. Bhaskaran, Vasudev and Konstantinides, Konstantinos. Image and Video Compression Standards. 2nd edition. Kluwer Academic Publishers: Boston, 1997.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。