1.03k likes | 1.31k Views
第5章 信 源 编 码. 5.1 无失真信源编码 *5.2 限失真信源编码定理 *5.3 矢量量化编码 5.4 预 测 编 码 5.5 变 换 编 码 5.6 传 真 编 码 5.7 语音压缩编码 5.8 图 像 编 码. 5.1 无失真信源编码. 离散信源的无失真编码实质上是一种统计匹配编码。信息论指出信源中的统计多余度主要决定于以下两个主要因素:一是消息概率分布的非均匀性,另一个是消息间的相关性。对无记忆信源主要决定于概率分布的非均匀性,但是,对于有记忆信源,两者都起作用,且后者相关性更加重要。.
E N D
第5章 信 源 编 码 • 5.1 无失真信源编码 • *5.2 限失真信源编码定理 • *5.3 矢量量化编码 • 5.4 预 测 编 码 • 5.5 变 换 编 码 • 5.6 传 真 编 码 • 5.7 语音压缩编码 • 5.8 图 像 编 码
5.1 无失真信源编码 • 离散信源的无失真编码实质上是一种统计匹配编码。信息论指出信源中的统计多余度主要决定于以下两个主要因素:一是消息概率分布的非均匀性,另一个是消息间的相关性。对无记忆信源主要决定于概率分布的非均匀性,但是,对于有记忆信源,两者都起作用,且后者相关性更加重要。
统计匹配编码是根据信源的不同概率分布而选用与之相匹配的编码,以达到在系统中传信速率最小,且满足在信宿复制时无失真或低于某一允许的失真限定值。统计匹配编码是根据信源的不同概率分布而选用与之相匹配的编码,以达到在系统中传信速率最小,且满足在信宿复制时无失真或低于某一允许的失真限定值。 • 下面,我们首先研究这类离散、无失真、无记忆信源编码的一般模型,并研究在它基础上应如何编码,从而引出定长和变长两类编码方法。
5.1.1 等长编码定理 • 很多学者深入地研究了离散、随机序列信源的统计特性,仙农(1948)首先发现,后来麦克米伦(1953)和沃尔夫兹(1961)进一步严格证明,这类信源具有渐近等同分割性,或简称为A.E.P(Asymptotic Equipatition Property)。它的基本思想是,一个总数为nL种的消息序列信源随着消息序列长度L的增长且足够大时,越来越明显产生两极分化现象。
可见,在差错率Pe和编码效率要求并不十分苛刻的条件下,对这一简单信源就需要近一百万个信源符号进行联合编码,这显然是不现实的。因此,为了解决这一个问题,人们就很自然地转向于对变长编码的研究。可见,在差错率Pe和编码效率要求并不十分苛刻的条件下,对这一简单信源就需要近一百万个信源符号进行联合编码,这显然是不现实的。因此,为了解决这一个问题,人们就很自然地转向于对变长编码的研究。
5.1.2 变长编码定理 • 等长编码需要取很大数量的符号一起编码,显然不现实,倘若采用变长编码,情况就大不一样了。若仍用上述最简单的离散信源的例子,作变长编码如下,至于具体编码方法后面将进一步讨论。 • 可见,若采用上述变长码,即使采用逐位编码(L=1)效率可达100%,这里虽然是一个特例,不过一般情况下效率都可达到很高。显然它大大优于等长编码。
一、 码树与码字(组)可分离条件 • 这里,引入较直观的“码树”的概念,并仍结合表5-1-1中的码字(组)来进一步解释和说明。 • 码树是图论中的一个分支,又称为树图。码树编码法是将编码方法形象化为一棵生成的树。树有树根、树枝、节点、端点、节数,并有满树与非满树之分。
从图5-1-1上看,要构造出在接收端可分离的变长码,只要满足被选用的码字必须为异前置码。在比较简单的信源,我们可以很方便地用这种码树的方法直接且直观地构造可分离码,但是,一当信源较复杂比如信源含有很多消息(符号),直接画码树就比较复杂。从图5-1-1上看,要构造出在接收端可分离的变长码,只要满足被选用的码字必须为异前置码。在比较简单的信源,我们可以很方便地用这种码树的方法直接且直观地构造可分离码,但是,一当信源较复杂比如信源含有很多消息(符号),直接画码树就比较复杂。
二、 变长编码定理 • 有了上述讨论的基础,我们下面给出指导构造变长码的不同类型信源的信源编码定理。它给出了变长码的平均码长应该满足的条件。 • 首先讨论单个消息(符号)信源的变长编码定理,它是最简单也是最基本的变长编码定理。
定理5-1-4:对于平均消息(符号)熵为H(U)的离散、平稳、无记忆信源,必存在一种无失真编码方法,使平均每个消息(符号)的信息率R满足不等式: 定理5-1-4:对于平均消息(符号)熵为H(U)的离散、平稳、无记忆信源,必存在一种无失真编码方法,使平均每个消息(符号)的信息率R满足不等式: • H(U)≤R<H(U)+ε • 其中ε为任意正数。
5.1.3 最佳变长编码 —哈夫曼编码 • 1952年,哈夫曼给出一种编码方法,所得的码字是异前置的变长码,其平均码长最短,称它为最佳变长码,又称哈夫曼码。1956年,戈罗伯对它进行了改进,使之更便于实用。
其具体编码方法如下: • (1) 将信源消息(符号)按概率大小顺序排队; • (2) 从最小概率的两个消息开始编码,并给予一定的编码规则,如小概率的下支路编为1(或0),大概率的上支路编为0(或1),若两者概率相等,仍是下支路为1上支路为0;
(3) 将已编码的两个消息对应概率合并,并重新按概率大小排队,重复步骤(2); • (4) 重复步骤(3),直至合并概率归一时为止; • (5) 编成的变长码是按后出先编方式,即从概率归一的树根沿编码路线逆行至对应的消息,如u3为“110”。
首先是误差扩散问题,由于哈夫曼码是一类无失真信源最佳变长码,这就是说在研究这类无失真信源编码时认为信道传输是理想的,是不产生差错的,然而实际信道中总是存在噪声的,噪声引入后必然要破坏变长码的结构。同时由于变长码是不加同步的码,无法自动清洗所产生的影响,所以必然要产生误差的扩散,这就是说噪声所影响的不仅是被干扰的码元,而是一直要扩散下去影响后面的一系列码元。首先是误差扩散问题,由于哈夫曼码是一类无失真信源最佳变长码,这就是说在研究这类无失真信源编码时认为信道传输是理想的,是不产生差错的,然而实际信道中总是存在噪声的,噪声引入后必然要破坏变长码的结构。同时由于变长码是不加同步的码,无法自动清洗所产生的影响,所以必然要产生误差的扩散,这就是说噪声所影响的不仅是被干扰的码元,而是一直要扩散下去影响后面的一系列码元。
以至在低信噪比下无法正常工作。目前对这类误差扩散还没有特别有效的克服方法,在工程上一般哈夫曼码只能适合于高信噪比的优质信道,比如误码率低于10-6以下,以减小误差扩散所带来的影响。同时工程上还常常采用定期清洗,比如在文件和报纸传真中就采用按行清洗的方式,以牺牲编码效率来达到限制误差扩散的目的。另一种方法是加检错纠错码。 以至在低信噪比下无法正常工作。目前对这类误差扩散还没有特别有效的克服方法,在工程上一般哈夫曼码只能适合于高信噪比的优质信道,比如误码率低于10-6以下,以减小误差扩散所带来的影响。同时工程上还常常采用定期清洗,比如在文件和报纸传真中就采用按行清洗的方式,以牺牲编码效率来达到限制误差扩散的目的。另一种方法是加检错纠错码。
其次是速率匹配问题,由于绝大多数信源其消息是不等概率的,因而编成的变长码长度也是不相等的,这必然导致信源输出速率是变化的,然而在实际信道中传送的信息率是固定不变化的。这就是说信源给出的是变速的,而信道传送的则是恒速的,因而信源与信道之间必然存在一个速率匹配问题。其次是速率匹配问题,由于绝大多数信源其消息是不等概率的,因而编成的变长码长度也是不相等的,这必然导致信源输出速率是变化的,然而在实际信道中传送的信息率是固定不变化的。这就是说信源给出的是变速的,而信道传送的则是恒速的,因而信源与信道之间必然存在一个速率匹配问题。
解决这一矛盾的办法,在工程上一般是采用缓冲存储器的方法。这个缓存器起到类似于水库的作用,变速输入、恒速输出。但是这个缓存器的容量的选取显然与输入变速特性即信源统计特性和编码方法,以及输出速率密切相关。容量选大了浪费设备,容量选小了则可能产生由于输入大于输出且容量不够而出现溢出现象,或输入小于输出而出现取空现象。这是一个需要在实际的工程设计中进一步深入探讨的问题。 解决这一矛盾的办法,在工程上一般是采用缓冲存储器的方法。这个缓存器起到类似于水库的作用,变速输入、恒速输出。但是这个缓存器的容量的选取显然与输入变速特性即信源统计特性和编码方法,以及输出速率密切相关。容量选大了浪费设备,容量选小了则可能产生由于输入大于输出且容量不够而出现溢出现象,或输入小于输出而出现取空现象。这是一个需要在实际的工程设计中进一步深入探讨的问题。
第3个问题是与信源统计特性相匹配的问题。变长码本身就是与信源统计特性相匹配的无失真信源编码,因此信源统计特性的变化对变长码影响很大,它主要体现在下面两点。第3个问题是与信源统计特性相匹配的问题。变长码本身就是与信源统计特性相匹配的无失真信源编码,因此信源统计特性的变化对变长码影响很大,它主要体现在下面两点。 • (1) 与信源消息种类多少的关系:一般变长码更适合于大的消息集,而不大适合小且概率分布相差很大的集合。小消息集只有在很特殊情况下才能实现统计匹配。
(2) 变长码是在信源概率特性已知情况下,实现统计匹配的。如果信源统计特性不完全知道甚至完全不知道时,如何实现编码,这是属于通用编码所要研究的问题。
*5.1.4 算术编码 • 算术编码是近十多年来发展迅速的一种无失真信源编码,它与最佳的哈夫曼码相比,理论性能稍加逊色,而实际压缩率和编码效率却往往还优于哈夫曼码,且实现简单,故很受工程上的重视。
首先将符号按对应概率大小由大至小排列。 • 其次,再将信源序列按照对应概率大小排序,由于对单个消息(符号)信源,一个序列中仅含有一个符号,因此序列排序即为上述符号排序。
算术码的译码可以通过对上述编码后的数值大小的比较来进行。即判断码字C(S)落在哪 一个区间就可以得出一个相应的符号序列。根据公式(5-1-29)所决定的两个相反的递推过程就能译出相应的所有符号。
综上所述,译码后的总输出S*=abda=S,它与发端所发送的符号序列安全一致。在实用的算术编码中,由于实际信源不是简单的单符号信源,即信源每次输出的不是一个符号而是一个符号序列。综上所述,译码后的总输出S*=abda=S,它与发端所发送的符号序列安全一致。在实用的算术编码中,由于实际信源不是简单的单符号信源,即信源每次输出的不是一个符号而是一个符号序列。
*5.2 限失真信源编码定理 • 在本章一开始我们就分析了在很多实际信源中,特别在模拟的连续信源中,无失真要求是完全没有必要的,而且也是达不到的。所以在实际中限失真信源是具有现实意义的。
D(c’)≤ED(c)<D+d0e-LE(R)=D+ε • 这就是我们所需要证明的结论。下面,我们简要地讨论函数E(R)的性质,由于E(R)函数主要决定于函数E(β,P)的性质。
定理5-2-1:若有一离散、无记忆、平稳信源其率失真函数为R(D),则当通信系统的传信率R>R(D)时,只要信源序列L足够长,则一定存在一种编码方式c使译码后失真小于或等于D+ε,而ε是任意小的正数,且当L→∞时,ε→0。反之,若R<R(D),则无论用什么编码方式其译码失真必大于D。定理5-2-1:若有一离散、无记忆、平稳信源其率失真函数为R(D),则当通信系统的传信率R>R(D)时,只要信源序列L足够长,则一定存在一种编码方式c使译码后失真小于或等于D+ε,而ε是任意小的正数,且当L→∞时,ε→0。反之,若R<R(D),则无论用什么编码方式其译码失真必大于D。
*5.3 矢量量化编码 • *5.3.1 最佳标量量化编码 • 所谓一维标量量化编码是指对单个取样值进行独立的量化编码。即将一个连续的实数样值,分割为可进行数字化表示的有限的整数值集合。若用Q1表示一维标量量化编码,则有
Q1:R1{vi}, • 其中vi=0,±1,±2,…,±2m • Llyod和Max在50年代末60年代初分别独自研究这类量化特性,并给出了在均方误差准则下的最佳量化的必要条件及相应设计方法。
Llyod和Max是利用数学上的变分法求得上述结果的,它解决了在均方误差失真准则下当信源概率密度p(u)已知时的一维最佳量化器的设计问题。Llyod在提出上述变分法求值设计的同时,又提出了很有实用价值的用实验凑试的迭代法。这种方法,在采用其他失真准则以及信源统计特性未知或是已知但很难用解析表达时,特别有用。Llyod和Max是利用数学上的变分法求得上述结果的,它解决了在均方误差失真准则下当信源概率密度p(u)已知时的一维最佳量化器的设计问题。Llyod在提出上述变分法求值设计的同时,又提出了很有实用价值的用实验凑试的迭代法。这种方法,在采用其他失真准则以及信源统计特性未知或是已知但很难用解析表达时,特别有用。
因此,一维标量最佳量化器迭代法设计步骤如下。因此,一维标量最佳量化器迭代法设计步骤如下。 • 1.设有一组起始恢复电平{vi},同时假设初始平均失真为D。输入训练数据,数据量为NT,将输入数据围绕{vi}以一定失真准则作最近相邻准则群聚。 • 2.计算总平均失真。
3.计算各群的质心,并用它来更新恢复电平的{vi}值。3.计算各群的质心,并用它来更新恢复电平的{vi}值。 • 4.当{vi}用各群的质心更新后,输入训练数据重新围绕新的质心群聚。
*5.3.2 矢量量化编码 • 矢量量化编码是上述一维标量量化编码的自然发展,它是70年代末以来,随着数字技术和语音低速率编码的迫切需要而迅速发展起来,并在量化领域取得突破性进展的一项新技术,其中最有实际价值的是类似于标量量化,用实验方法基本解决了多维矢量最佳量化的设计问题,同时还不断提出很多快速搜索实现算法。
一、矢量量化最基本问题是计算失真度量的量化误差与设计最佳量化器一、矢量量化最基本问题是计算失真度量的量化误差与设计最佳量化器 • 首先讨论失真的度量,它是限失真编码的核心问题,选择失真度量是既要满足主、客观评价的要求又要在数学上易于运算与处理。
二、 最佳矢量量化器特性 • 一个最佳的矢量量化器包括两大部分, • 一是通过试验迭代的群聚法形成的码本, • 另一个是在码本作用下的矢量量化器的量化过程。
三、 最后讨论算法 • 无论是码本的建立,还是具体的量化过程的实现,主要的技术实现问题在于计算量与存储量过大。一般我们称计算量的大小为时间复杂度,称存储量大小为空间复杂度,这两种复杂度一般是相互矛盾的。前者的减少往往导致后者的增大。算法研究就是提出如何减少复杂度的一些措施。
1. 基于全搜索的快速算法研究 • 可以用不同方法来加快搜索速度,比如投影法、超立方体法、最小最大法等,均可以加快搜索到编码的码字,若原来的码本是最佳的,就可以得到失真最小的连续信源编码。 • 2. 准最佳码本结构的快速算法 • 属于这一类型的有树型结构法、分维量化、分级量化和乘积量化等方法。
5.4 预 测 编 码 • 5.4.1 预测编码的基本原理 • 对于有记忆信源,信源输出的各个分量之间是有统计关联的,这种统计关联性可以加以充分利用,预测编码就是基于这一思想。它不是直接对信源输出的信号进行编码,而是将信源输出信号通过预测变换后再对信源输出与被预测值的差值进行编码,其原理图见图5-4-1。
进一步,若变换是线性的则预测变换器可按下列原理进行分解,得如图5-4-2所示原理图。 进一步,若变换是线性的则预测变换器可按下列原理进行分解,得如图5-4-2所示原理图。 • 图5-4-2预测编码原理方框图
从上述预测编码原理可以看出,实现预测编码要进一步考虑下列3个方面的问题:从上述预测编码原理可以看出,实现预测编码要进一步考虑下列3个方面的问题: • (1) 预测误差准则的选取; • (2) 预测函数的选取; • (3) 预测器输入数据的选取。
关于预测误差准则的选取,它是指预测误差所依据的标准,目前大致可采用下列4种类型准则:关于预测误差准则的选取,它是指预测误差所依据的标准,目前大致可采用下列4种类型准则: • 最小均方误差(MMSE)准则; • 功率包络匹配(PSEM)准则; • 预测系数不变性(PCIV)准则; • 最大误差(ME)准则。
5.4.2 预测编码的基本类型 • 预测编码特别是线性预测编码已在信息与通信系统的信息处理中被广泛地采用,其中最常用的有下列几种。 • 一、 DPCM型 • DPCM即差分脉码调制,其工作原理如图5-4-3所示。
二、 ΔPCM型 • ΔPCM的工作原理图如图5-4-5所示。 图5-4-5 ΔPCM型原理图
三、 噪声反馈编码(NFC)型 • 它是ΔPCM的改进型,其原理如图5-4-6所示。 • 既然ΔPCM型中由于量化器位于反馈环外,量化误差不能像DPCM那样进行反馈压减,那就不妨在ΔPCM型基础上加以改进。
四、 预测误差门限型 • 预测原理可以引用图5-4-7说明。 图5-4-7 零阶预测误差门限
5.5 变 换 编 码 • 众所周知,信源序列往往具有很强的相关性,要提高信源的效率首先要解除信源的相关性,解除相关行可以在时域上进行,这就是上节中介绍的预测编码,也可以在频域,甚至于广义频域(或空域)内进行,这就是要在本节中介绍的域变换编码。
5.5.1 正交变换的基本数学知识 • 5.5.2 几种主要变换编码 • 下面,我们首先寻求最佳的正交变换。众所周知,所谓最佳是指在一定的条件即准则下的最佳,而这些准则有客观的也有主观的,我们这里是按照客观的统计上最小均方误差准则(MMSE)寻求最佳的正交变换。
K-L变换虽然在均方误差准则下是最佳的正交变换,但是由于以下两个主要原因,实际中很少采用。首先,在K-L变换中,特征矢量与信源统计特性密切相关,即对不同的信源统计特性Φu,应有不同的ai值,才能达到最佳化,这显然是不大现实的。其次,K-L变换运算很复杂,而且目前尚无快速算法。所以很少实际应用,通常仅作为理论上参考。K-L变换虽然在均方误差准则下是最佳的正交变换,但是由于以下两个主要原因,实际中很少采用。首先,在K-L变换中,特征矢量与信源统计特性密切相关,即对不同的信源统计特性Φu,应有不同的ai值,才能达到最佳化,这显然是不大现实的。其次,K-L变换运算很复杂,而且目前尚无快速算法。所以很少实际应用,通常仅作为理论上参考。