一种对称型可逆变长码的编码方法

文档序号:7507010阅读:151来源:国知局
专利名称:一种对称型可逆变长码的编码方法
技术领域
本发明属于通信技术中的编码技术领域,尤其涉及一种对称型可逆变长码(RVLC)的编码方法。
背景技术
熵编码是通信技术中基本的信源编码技术。利用熵编码能够将信源从任意符号转变为二进制的形式,以利于通信发送;同时,熵编码利用熵的本质特性,还能充分消除数据中的冗余性,达到压缩数据,从而节省通信需要的时间或者带宽等资源的目的。在熵编码中,变长码是广泛使用的码字,在文本、数据、语音、图像和视频以及其它各种媒体编码中都有广泛的应用。例如,在静止图像和视频编码标准中,编码系统包括源图像数据输入、DCT编码器和压缩图像数据流的输出三个部分,其中,DCT编码器中包括正向DCT变换器、量化器以及熵编码三部分,还包括量化表以及熵编码表,通过熵编码以及熵编码表实现对源图像数据经过运动预测、DCT变换和量化后的结果进行熵编码,以一方面消除数据的冗余性,另一方面将源图像数据转变为易于通信传输的二进制形式。
在熵编码技术中,哈夫曼编码是一种经典的熵编码方法,采用该方法,能够在平均码字长度上达到最优,因此就传输效率而言是最高的,从而,在早期的熵编码应用中,广泛采用此种哈夫曼编码方法。但是,随着变长编码的发展,人们逐渐认识到除了编码传输效率之外,还有很多其它因素决定具体应用中变长编码的优劣,其中的一个重要因素是由于变长码本身的特性,对误码非常敏感。基于此点分析,当变长码在误码率较高的信道上传输时,传输效率会由于其对误码非常敏感而显著降低,从而不利于实现通信。由于哈夫曼码自身的抗误码性能并不突出,因此,可能会由于自身对误码的敏感而降低传输效率。
为了不使传输效率因为变长码本身对误码的敏感性而显著降低,当前提出了可逆变长码。该可逆变长码具有出色的抗误码性能,因此已经被近期的视频标准,如H.263+、MPEG-4等所采纳。可逆变长码指从前向和后向两个方向都能够即时解码的变长编码;其中,能够即时解码指的是一组码满足异字头条件(Prefix-free condition),异字头条件指的是在一组码中,没有任何完整的码字是其它码字的前缀,例如一组即时码C=(0,10,110,111)就是满足异字头条件的码字。由上述分析可以得到可逆变长码也就是所有码字同时满足前向异字头条件和后向异字头条件的码字。根据码字自身是否存在对称性,可逆变长码还可分为对称型可逆变长码和非对称型可逆变长码,对称型可逆变长码和同步技术结合使用可取得很好的译码性能。对于可逆变长码,其工作原理为在各种需要压缩的数据中,以熵来度量这些数据中所含有的不可压缩部分的信息量;同时,在这些数据中,同一个符号按照不同的发生概率反复出现,从而形成了这些压缩数据中的冗余。通过采用可逆变长码这种熵编码方式,压缩掉数据中的冗余而保持数据的熵不变,通过用构造得到的可逆变长码替换数据中的符号本身,一方面将数据中的符号转变为适合传输的二进制形式,另一方面,达到压缩数据长度的目的;其中,此种压缩是遵循数据本身的统计模型进行的,该统计模型是描述数据中各个符号发生概率分布上所具有特性的模型,常见的有指数分布、泊松分布等,由于此种压缩基于这些统计模型进行,因此,在统计意义上能够达到最优。
在现有技术中,为了能够根据数据中符号的发生概率来构造可逆变长码,通常采用如下两种方式,这两种方式均采用间接构造的方式,首先根据数据中符号的发生概率构造得到哈夫曼码,然后再由哈夫曼码得到对称型可逆变长码
方式一在该种方式中,首先根据数据中符号的发生概率构造得到哈夫曼码,得到如图1所示的哈夫曼码树,这里所用的树,是离散数学,图论等理论中定义的一种抽象的图,或者理解成计算机算法中的数据结构,其实是一种倒的“树”,根节点在最上面,得到该树后,利用该哈夫曼码树,自树根起从上而下的将码字转变为对称型可逆变长码,得到图2所示的对称型可逆变长码的码树;在从哈夫曼码树转变为对称型可逆变长码的码树的过程中,需要在哈夫曼码树的每一层上均进行是否满足可逆变长码条件的判断,而该种方式并没有定义一种高效率的判断方式,从而,在考察一个候选码字时,首先要判断它是否满足对称条件,如果符合,则与已选的码字进行比较,以确定是否满足前向和后向异字头条件,在这些判断均符合的情况下,方能把该候选码字确定为可逆变长码中的码字;可见,该种方式具有如下缺点(1)由于该种方式并没有给判断方式以高效的定义,因此,上述判断过程十分复杂,会大大体高计算的复杂度,不利于实际应用;(2)由于此种方式中所涉及的算法自身的限制,在对哈夫曼码树中一层节点进行判断时,不可避免地会造成某些符合可逆变长码条件的节点被错误地遗漏,从而造成该种方式无法充分利用短码字,造成短码字的浪费,其直接后果就是使得平均码字长度上升,与熵编码应该优先使用短码获得最小平均码字长度这一根本原则相背离;(3)对于具有相同发生概率的符号,如果构造的哈夫曼码不同,则得到的对称型可逆变长码也不相同,从而会造成编码效果的不统一;方式二该种方式对方式一进行了一些改进,对于相同发生概率的符号,即使构造的哈夫曼码不同,所得到的对称型可逆变长码仍然相同,并且,该种方式也可以获得较小的平均码字长度;但是,由于此种方式是对于方式一的改进,因此,仍然无法完全避免对于短码字的不充分使用,从而造成短码字的浪费,另外,该种方式仍然没有解决计算复杂度高这一问题。

发明内容
有鉴于此,本发明的主要目的在于提供一种对称型可逆变长码的编码方法,该方法直接根据数据中符号的发生概率构造得到对称型可逆变长码,该方法能够充分利用短码字,计算复杂度低,同时,该方法能够实现对于相同概率的符号得到同样的对称型可逆变长码。
为实现上述目的,本发明提供了一种对称型可逆变长码的编码方法,该方法包括步骤A根据数据中各个符号的发生概率,计算得到理论上可以获得的最短平均码字长度,构造所有具有该最短平均码字长度的码字作为当前候选码字;步骤B判断当前候选码字是否满足对称条件,将满足对称条件的所有候选码字选择作为对称型可逆变长码码字,和构造不满足对称性条件的所有候选码字的子码字作为当前候选码字;步骤C判断是否已经通过步骤B的选择过程获得N个对称型可逆变长码码字,如果是,则结束本流程,否则,返回步骤B,直至获得N个对称型可逆变长码;其中,N为需要进行编码的数据中出现不同符号的种类数,为自然数。
其中,步骤A所述计算得到理论上可以获得的最短平均码字长度包括 其中,p(x)表示要进行编码的数据中各个符号所对应的发生概率,运算符号 表示不超过被运算数的最大整数。
其中,步骤A所述构造所有具有该最短平均码字长度的码字作为当前候选码字包括利用全排列的方法,产生所有长度为所述最短平均码字长度的0、1序列,以这些序列作为所述当前候选码字。
其中,步骤B包括步骤B1创建一个队列,以步骤A所述最短平均码字长度作为该队列的起始码字长度,将所述当前候选码字放入该队列;步骤B2对该队列中的所有当前候选码字分别判断是否满足对称条件,将满足对称条件的所有候选码字选择作为对称型可逆变长码码字,并将这些满足对称条件的候选码字从队列中删除,构造不满足对称条件的候选码字的子码字作为当前候选码字,在清空队列之后,将这些构造出的当前候选码字放入队列中。
其中,所述构造不满足对称性条件的所有候选码字的子码字包括在所述候选码字的后面加上0或者1,形成所述候选码字的子码字。
可见,本发明具有如下有益效果(1)该算法最大限度地利用了较短码长层中的所有的满足对称性和双向异字头条件的节点,减小了平均码字长度,尤其在一些特定的符号发生概率分布下,该算法得到的平均码字长度与理论熵非常接近,几乎相等,比如说指数分布;(2)该码字生成时,无需再对其先进行哈夫曼编码,再构造对称码字,从而降低了实现复杂度;(3)大大简化了码字选取机制在目前已有的两种算法,实现起来复杂度很高,而采用本发明后,我们可以发现当某一节点被选为码字后,其子节点对应的码字将不再予以考虑,其余节点不满足对称条件时,将它的子节点对应的码字入队,依次进行判别,也就是说,队列内的所有候选码字都已经自动满足异字头条件,我们只需讨论其对称性即可。


图1为哈夫曼码树的示意图;图2为对称型可逆变长码的码树的示意图;图3为本发明的队列的示意图;
图4为实现本发明的流程图。
具体实施例方式
本发明为一种对称型可逆变长码的编码方法,所述的可逆变长码为对称型可逆变长码,本发明方法直接根据数据中符号的发生概率构造得到对称型可逆变长码,该方法具有确定的选取可逆变长码的规则,其计算复杂度低。另外,由于该方法所采用的算法自身特性,因此能够充分利用短码字长度,从而符合熵编码应该优先使用短码字以获得最小平均码字长度这一根本原则,另外,对于相同发生概率的符号,该方法能够构造得到相同的可逆变长码。
下面结合附图对本发明进行详细介绍。
在本发明中,引入队列这一概念,队列是数据结构中的术语,是一种操作受限的线性表,图3所示为一个队列的示意图,其中,ai是队列中的一个元素,该队列只允许在队尾进行插入(入队),在对头进行删除(出队)。
本发明首先根据数据中符号的发生概率,得到一个码树,该码树与图1所示的哈夫曼码树的形式类似。
在本发明构造可逆变长码之前,首先需要确定要进行编码的数据中所出现的不同符号的种类数N,其中,N为自然数,然后,通过图4所示步骤实现构造可逆变长码步骤400构造一个队列,计算得到该队列的起始码字长度,其中,该队列用于完成构造可逆变长码,采用如下方法计算得到该队列的起始码字长度由数据中各个符号发生概率的分布,计算得到理论上可以获得的最短平均码字长度,然后,以该最短平均码字长度作为该队列的起始码字长度;在本发明中,采用公式(1)计算最短平均码字长度公式(1) 运算符号 表示不超过被运算数的最大整数;该公式是一个简写的公式,每个信源符号对应着一个发生概率,用p(x)表示,x分别代表信源中的各个符号;该公式表示的是信息论中熵编码可以达到的最短码长,哈夫曼编码可以达到这个最优下限;任何其它的熵编码的平均码长都不会低于这个值。因此对于我们这里的可逆变长码,其平均码长一定高于这个值;因此将该值作为起始码长是合适的;步骤401构造所有具有步骤400所述队列的起始码字长度的码字,然后,将这些构造出的码字作为当前候选码字放入队列;其中,在本发明实施例中,采用如下方法实现本步骤中所述的构造码字设队列的起始码字长度为LInitial,采用全排列的方法,在码字长度为LInitial这一条件的限制下,对二进制编码0和1进行全排列,得到所有长度为LInitial的0、1序列,从而构造得到所述的具有队列起始码字长度的码字;其中,不同的具有队列起始码字长度的码字共有2LInitial个;步骤400~步骤401实现构造队列以及初始化队列的过程,从而得到一个以理论上可以获得的最短平均码字长度作为该队列的起始码字长度的队列;其中,参见后续步骤,因为队列过程是输出码字长度增大的过程,也就是说,本发明中先构造短码字,后构造长码字,因此,队列的初始化过程需要确定最短的码长度作为起始码字长度;在本发明中,将长度为LInitial的所有候选码字入队,也就是将根据数据中符号发生概率所得到的码树中的第LInitial。层上的所有节点均存入队列中,作为队列的初始状态,从而实现队列的初始化;步骤402~步骤405对该队列中所有当前候选码字分别判断是否满足对称条件,将这些候选码字中所有满足对称条件的码字选择作为对称型可逆变长码字,并且,选择出这些候选码字中所有不满足对称条件的码字,构造得到这些不满足对称条件的码字的子码字,将原队列清空后,将这些新构造子码字作为当前候选码字放入该队列;
其中,本发明所要选择的码字需要分别满足对称条件和异字头条件,在采用上述队列操作规则后,可以发现入队的候选码字都满足异字头条件,其原因在于采用该队列出队入队方式,当且仅当一个候选码字的所有的父节点码字都不在队列中,该候选码字才能够被选入队,因此,该候选码字的任何前缀都不是队列中码字,满足异字头条件;因此,对于候选码字,无需判断是否满足异字头条件,只需要判断是否对称即可,从而大大简化了计算的复杂程度;步骤406判断是否N种符号都已经分配到符合条件的码字,如果是,则结束本流程,构造得到对称型可逆变长码,否则,跳至步骤402,直至对所有符号都已经分配到符合条件的码字。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种对称型可逆变长码的编码方法,其特征在于,该方法包括步骤A根据需要被压缩编码的数据中各个符号的发生概率,计算得到最短平均码字长度,构造所有具有该最短平均码字长度的码字作为当前候选码字;步骤B判断当前候选码字是否满足对称条件,将满足对称条件的所有候选码字选择作为对称型可逆变长码码字,和构造不满足对称性条件的所有候选码字的子码字作为当前候选码字;步骤C判断是否已经通过步骤B的选择过程获得了N个对称型可逆变长码码字,如果是,则结束本流程,否则,返回步骤B,直至获得N个对称型可逆变长码码字;其中,N为需要进行编码的数据中出现不同符号的种类数,为自然数。
2.根据权利要求1所述的方法,其特征在于,步骤A所述计算得到理论上可以获得的最短平均码字长度包括 其中,p(x)表示要进行压缩编码的数据中各个符号所对应的发生概率;运算符号 表示不超过被运算数的最大整数。
3.根据权利要求1所述的方法,其特征在于,步骤A所述构造所有具有该最短平均码字长度的码字作为当前候选码字包括利用全排列的方法,产生所有长度为所述最短平均码字长度的0、1序列,以这些序列作为所述当前候选码字。
4.根据权利要求1所述的方法,其特征在于,步骤B包括步骤B1创建一个队列,以步骤A所述最短平均码字长度作为该队列的起始码字长度,将所述当前候选码字放入该队列;步骤B2对该队列中的所有当前候选码字分别判断是否满足对称条件,将满足对称条件的所有候选码字选择作为对称型可逆变长码码字,并将这些满足对称条件的候选码字从队列中删除,构造不满足对称条件的候选码字的子码字作为当前候选码字,在清空队列之后,将这些构造出的当前候选码字放入队列中。
5.根据权利要求1或4所述的方法,其特征在于,所述构造不满足对称性条件的所有候选码字的子码字包括在所述候选码字的后面加上0或者1,形成所述候选码字的子码字。
全文摘要
本发明为一种对称型可逆变长码的编码方法,该方法包括步骤A根据数据中各个不同符号的发生概率,计算得到理论上可以获得的最短平均码字长度,构造所有具有该最短平均码字长度的码字作为当前候选码字;步骤B判断当前候选码字是否满足对称条件,将满足对称条件的所有候选码字选择作为对称型可逆变长码码字,和构造不满足对称性条件的所有候选码字的子码字作为新的当前候选码字;步骤C判断是否已经通过步骤B的选择过程获得了N个对称型可逆变长码码字,如果是,则结束本流程,否则,返回步骤B,直至生成N个对称型可逆变长码码字;其中,N为需要进行编码的数据中出现不同符号的种类数,为自然数。
文档编号H03M7/30GK1747330SQ20041007374
公开日2006年3月15日 申请日期2004年9月9日 优先权日2004年9月9日
发明者罗忠, 王静, 霍俊彦, 常义林, 马林华 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1