多媒体数据压缩技术-常用编码 2008-05-11 15:25
1. 统计编码方法是:识别一个给定的流中出现频率最高的比特或字节模式,并用比原始比特更少的比特数来对其编码。即就是,频率越低的模式,其编码的位数越多,频率越高的模式编码位数越少。若码流中所有模式出现的概率相等,则平均信息量最大,信源就没有冗余。
2. 行程编码(Run Length Coding) 是最简单、最古老的压缩技术之一,主要技术是检测重复的比特或字符序列,并用它们的出现次数取而代之。该方法有两大模式:一是消零(消空白),二是行(游)程(run length)编码。消零(或消空白)法 将数字中连续的“0”或文本中连续的空白用一个标识符(或特殊字符)后跟数字N(连续“0”的个数)来代替。
如数字序列: 742300000000000000000055
编码为: 7423Z1855
行程编码法 任何重复的字符序列可被一个短格式取代。该算法适合于任何重复的字符。一组 n 个连续的字符 c 将被 c 和一个特殊的字符取代。当然,若给定字符仅重复两次就不要用此方法。任何重复4次或4次以上的字符由“该字符+记号(M)+重复次数”代替。
例如数字序列: Name: . . . . . . . . . . CR
编码为: Name: . M10 CR
3. LZW编码 LZW算法在压缩文本和程序数据的压缩技术中唱主角。它的压缩率高,压缩处理所化费的时间比其它方式要少。
4. 哈夫曼编码 1952年Huffman提出了对统计独立信源能达到最小平均码长的编码方法,也即最佳码。最佳性可从理论上证明。这种码具有即时性和唯一可译性。该编码是常见的一种统计编码。对给定的数据流,计算其每个字节的出现频率。根据频率表,运用哈夫曼算法可确定分配各字符的最小位数,然后给出一个最优的编码。代码字存人代码表中。
优点:当信源符号概率是2的负幂次方时, Huffman 编码法编码效率达到100%。一般情况下,它的编码效率要比其它编码方法的效率高,是最佳变长码。
缺点:Huffman 码依赖于信源的统计特性,必须先统计得到信源的概率特性才能编码,这就限制了实际的应用。通常可在经验基础上预先提供Huffman码表,此时性能有所下降。
5. 算术编码 算术编码把一个信源集合表示为实数线上的0到1之间的一个区间。这个集合中的每个元素都要用来缩短这个区间。信源集合的元素越多,所得到的区间就越小,当区间变小时,就需要一些更多的数位来表示这个区间,这就是区间作为代码的原理。算术编码首先假设一个信源的概率模型,然后用这些概率来缩小表示信源集的区间。
新子区间的起始位置=
前子区间的起始位置+当前符号的区间左端×前子区间长度
新子区间的长度=
前子区间的长度×当前符号的概率(等价于范围长度)
最后得到的子区间的长度决定了表示该区域内的某一个数所需的位数。
6. 预测编码(Prediction Coding) 预测编码是指利用前面的一个或多个信号对下一个信号进行预测,然后对实际值和预测值的差进行编码。DPCM与ADPCM是两种典型的预测编码。
(1)差分脉码调制(DPCM) PCM(Pulse Code Modulation),原始的模拟信号经过时间采样,然后对每一样值进行量化,作为数字信号传输。DPCM不对每一样值都进行量化,而是预测下一样值,并量化实际值和预测值之间的差。DPCM是基本的编码方法之一,在大量的压缩算法中被采用,比如JPEG的DC分量就是采用DPCM编码的。
(2)举例说明DPCM编码原理:设DPCM系统预测器的预测值为前一个样值,假设输入信号已经量化,差值不再进行量化。若系统的输入为{0 1 2 1 1 2 3 3 4 4 …},则预测值为{0 0 1 2 1 1 2 3 3 4 …},差值为{0 1 1 –1 0 1 1 0 1 0 …},差值的范围比输入样值的范围有所减小,可以用较少的位数进行编码。
(3)自适应差分脉码调制(ADPCM) 为了进一步改善量化性能或压缩数据率,可采用自适应量化或自适应预测的方法。只要采用了其中的任一种自适应方法,均称为ADPCM。
7. 变换编码(Transformation Coding) 在变换编码时,初始数据要从初始空间或时间域进行数学变换,变换为一个更适于压缩的抽象域。该过程是可逆的;即使用反变换可恢复原始数据。如将时域信号变换到频域,因为声音、图像大部分信号都是低频信号,在频域中信号的能量较集中,再进行采样、编码就可以压缩数据。
变换本身是可逆的,因而其也是一种无损技术。然而,为了取得更满意的结果,某些重要系数的编码位数比其他的要多,某些系数干脆就被忽略了。这样,该过程就成为有损的了。
数学家们已经构造了多种数学变换。除了傅里叶变换外,还有余弦、 Hadamard、 Haar、Karhunen Loeve变换。最实用最常用的数学变换是离散余弦变换(DCT)。
(1) 最佳变换(K-L变换)
(2) 离散余弦变换(DCT变换) 如果变换后的协方差矩阵接近对角矩阵,该类变换称准最佳变换,典型的有DCT、DFT、WHT、HrT等。其中,最常用的变换是离散余弦变换DCT。DCT是从DFT引出的。DFT可以得到近似于最佳变换的性能,但DFT的运算次数太多,且需要复数运算。DCT从DFT中取实部,并可用快速余弦变换算法,因此大大加快了运算。同时其压缩性能十分逼近最佳变换的压缩性能。所以,DCT在图像压缩中得到了广泛的应用。
8. 分析合成 编码
9. 分形编码 分形编码是一种模型编码,分形集实际上并不是存储所有可能的子图像,而是存储许多迭代函数,通过迭代函数的反复迭代,恢复出原来的子图像。表示这样的迭代函数一般只需几个数据即可,这就达到了很高的压缩比。
10. 子带编码