信号处理方法以及相应的编码方法和装置的制作方法

文档序号:6432294阅读:137来源:国知局
专利名称:信号处理方法以及相应的编码方法和装置的制作方法
技术领域
本发明总地涉及数据压缩领域,以及更具体地,涉及一种处理数字信号以减少用于表示它们的数据量的方法。
本发明还涉及一种与所述信号处理方法相结合的数字信号编码的方法,并且涉及一种相应的编码装置。
背景技术
可变长度编码,如在美国专利4,316,222文档中所描述的可变长度编码,被用于如视频编码的许多领域,以便对那些具有不等出现概率的符号进行数字编码出现频率高的字符被指配以短的二进制码字,而那些出现频率低的字符被指配以长的码字。但是,这些编码因对诸如倒置、删除、插入等错误非常敏感的缺点而遭受损害,这些错误的结果是导致同步丢失(自身导致一种错误状态),而同步丢失导致在解码比特流中扩大的错误。当继续传送时,许多字实际上可能被错误地解码。
误差距离是指一个解码器能够多快地从错误状态中恢复同步,即直到重新同步之前被解码的平均符号数ES=Σk=IPCkerr×Nk---(1)]]>其中I是码字索引的集合, 是错误符号为Ck的概率,以及Nk是当被破坏的符号为Ck时,直到同步之前要被解码的平均符号数。对于一个较好地匹配于源统计的编码,码字Ck的概率可以由式PCk=2-lk]]>来近似,其中lk是Ck的长度,并且错误符号为Ck的概率可以由式PCkerr=2-lk×(lk/l)]]>来近似,其中l是该编码的平均长度。这样ES的表达式变为ES=Σk∈I2-lk×lkl×Nk---(2)]]>根据所述表达式,最可能的(most probable)符号对ES有较大的影响,且因此而将使它们的贡献最小化。为了这个目的,定义下列可变长度编码族F(表达式(3))
其中1i和0i表示长度为i的全1串和全0串,而D和K是满足K≤D的任意整数(

图1给出了这样一个(D,K)=(4,3)的快速同步编码树结构的例子,其中黑色圆圈对应于码字而白色圆圈对应于错误状态)。假定D和K充分大,则最可能(MP)的码字,即最短的码字,属于族F的子集CMPCMP={1i0j1}i∈
j∈[1,D-1](4)在这些码字上,可能有几种类型的错误状况(原始的码字被转换成一个有效码字、两个有效码字的级联、一个错误状态或者一个有效码字和一个错误状态的级联)。考虑到从由一个错误码字Ck造成的错误状态ESk中恢复还依赖于跟随在该错误状态之后的码字Ch,那么可以看到对于任意错误状态例如(lK+lh<D且Ch≠lk),作为结果的近似误差距离ES是有界限的(假定D和K足够大),并且同步总是在对Ch解码后恢复。
然而,尽管具有这种恢复性能,但这种结构仍远非最优平均长度而且没有达到全部可能的压缩,且因此它不能被应用到任何给定的源。
发明概述因此本发明的一个目的就是提出一种处理方法,在该方法中定义码字组的操作避免了这些局限性。
为此目的,本发明涉及一种处理数字信号以减少用于表示所述数字信号的数据量的方法以及借助一个可变长度编码步骤形成一组码字,使得数字信号的较为频繁出现的值由较短码长来表示,而那些以较低频率出现的值由较长码长来表示,所述可变长度编码步骤包括一个定义子步骤,以产生所述码字组,并且其中所用的编码是用与二进制霍夫曼编码分布L=(ni)[i=1,2,…,lmax]相同的长度分布L′=(n′i)[i=1,2,…,lmax]来构建的,ni是长度为i的码字的个数,并且通过执行以下步骤来构造该编码(a)创建一个该编码的同步树结构,带有对于所述树的每个基本分支递减的深度,使初始化参数为D=lmax,K=nlmax/2,]]>而当前的l=lcur=lmax,所述记号为D=表示全0串的最大长度的任意整数;
lmax=最大的码字长度;K=表示全1串的最大长度的任意整数; =在霍夫曼编码中长度为lmax的码字个数;(b)对从lmax开始的每一个长度lcur,如果nlcur′≠nlcur,]]>则使用码字1k作为前缀并且将深度为D′=lcur-K的最大长度的基本分支锚定(anchor)到它(c)如果1k不能被用作前缀,则通过选择超出期望分布的最小长度码字来找到一个合适的前缀。
本发明的另一个目的是提出一种并入所述处理方法的数字信号编码方法。
为此目的,本发明涉及一种数字信号编码的方法,该方法至少包括以下步骤对所述的数字信号应用一次正交变换以产生多个系数,量化所述系数并且借助一个可变长度编码步骤对量化后的系数编码,其中,那些较为频繁地出现的值由较短码长来表示,而那些以较低频率出现的值由较长码长来表示,所述可变长度编码步骤包括一个定义子步骤,以产生与所述数字信号相对应的一组码字,并且其中所使用的编码是用与二进制霍夫曼编码分布L=(ni)[i=1,2,…,lmax]相同的长度分布L′=(n′i)[i=1,2,…,lmax]来构建的,ni是长度为i的码字的个数,并且所述编码是通过执行以下步骤来构造的(a)创建一个该编码的同步树结构,带有对于所述树的每个基本分支递减的深度,使初始化参数为D=lmax,K=nlmax/2,]]>而当前的l=lcur=lmax,所述记号为D=表示全0串的最大长度的任意整数;lmax=最大的码字长度;K=表示全1串的最大长度的任意整数 =在霍夫曼编码中长度为lmax的码字个数;(b)对从lmax开始的被称为lcur的每一个长度,如果nlcur′≠nlcur,]]>则使用码字1k作为前缀并且将深度为D′=lcur-K的最大长度基本分支锚定到它(c)如果1k不能被用作前缀,则通过选择超出期望分布的最小长度码字来找到一个合适的前缀。
本发明还有一个目的是提出一种对应于所述编码方法的编码装置。
为此目的,本发明涉及一种用于对数字信号编码的装置,所述装置包含至少一个被应用于所述的输入数字信号以产生多个系数的正交变换模块、一个被耦合到所述的变换模块以量化所述多个系数的量化器、以及一个被耦合到所述量化器以依照一种可变长度编码算法对所述多个量化后的系数进行编码并且产生编码数据比特流的可变长度编码器,在所述系数编码操作中,那些较为频繁地出现的值由较短码长来表示,而那些以较低的频率出现的值由较长码长来表示,所述系数编码操作包括一个定义子步骤,以产生对应于所述数字信号的一组码字,并且在其中所使用的编码是用与二进制霍夫曼编码分布L=(ni)[i=1,2,…,lmax]相同的长度分布L′=(n′i)[i=1,2,…,lmax]来构建的,ni是长度为i的码字的个数,并且所述编码是通过执行以下步骤来构造的(a)创建一个该编码的同步树结构,带有对所述树的每个基本分支递减的深度,使初始化参数为D=lmax,K=nlmax/2,]]>而当前的l=lcur=lmax,所述记号为D=表示全0串的最大长度的任意整数;lmax=最大的码字长度;K=表示全1串的最大长度的任意整数; =在霍夫曼编码中长度为lmax的码字个数;(b)对从lmax开始的每一个长度lcur,如果nlcur′≠nlcur,]]>则使用码字1k作为前缀并且将深度为D′=lcur-K的最大长度的基本分支锚定到它;(c)如果1k不能被用作前缀,则通过选择超出期望分布的最小长度的码字来找到一个合适的前缀。
所提出的这种关于新的、一般的可变长度编码树结构的原理,保留了霍夫曼编码的最佳距离分布,同时也提供了对误差距离的明显改进,所述原理和引用文件中的解决方案的表现一样好,但复杂性要小很多,所述原理允许对短的和较长的编码都运用依照本发明的算法,比如举例而言,被用在H.263视频编码器中的编码。
附图简述现在本发明将参照附图以更详尽的方式加以描述,在附图中图1显示了一种快速同步码的树结构的一个例子;
图2给出了根据本发明的一个同步优化算法的流程图;图3是一个说明了根据本发明的解决方案与现有技术解决方案之间的对比的表格。
发明详述由于对可变长度编码族F而言,在上文中指出的根据现有技术的结构的局限性来自于这一事实,即此编码是深度同样为D的K个基本分支的重复(图1中虚线所示),因此本发明的主要思想是构建多个码,其中不同分支的大小可能变化。令L=(ni)i=1,2,...,lmax]]>为二进制霍夫曼编码的长度分布,其中ni指示相应的码长为i的码字的个数,而lmax指示最大的码字长度,以及(通过构造)使nlmax为偶数。于是由图2中的流程图给出的算法产生一个具有长度分布为L′=(ni′)i=1,2...,lmax]]>的编码,该长度分布在执行以下主步骤后等同于L-创建一个同步树,带有对于每个基本分支递减的深度,(最初,使初始化参数为D=lmax,K=nlmax/2]]>而当前的l=lcur=lmax),以确保nlmax′=nlmax]]>(图2的上面部分)-对从lmax开始的每一个长度lcur,如果nlcur′≠nlcurr,]]>则使用码字1k作为前缀并且将深度为D′=lcur-K的最大长度的基本分支锚定到该码字(在图2中,左边的循环L1);-如果1k不能被用作前缀(或者因为lcur太小,或者因为使用1k会不可挽回地耗尽当前的长度分布),则通过选择超出期望分布的最小长度的码字来找到一个合适的前缀(在图2中,右边的循环L2,其中lfree,如图2中所示,指示先前在循环L1中定义的第一个索引{i|ni-n′i|<0})。
本发明还涉及一种数字信号编码的方法,该方法结合上文所描述的处理方法以减少表示输入数字信号的数据量,所述方法允许通过一个可变长度编码步骤来产生一组码字,以便使那些较为频繁地出现的值由较短的码长来表示,而那些以较低的频率出现的值由较长的码长来表示,所述可变长度编码步骤包括一个定义子步骤来产生该组码字,并且在其中所使用的编码是用与二进制霍夫曼编码分布L=(ni)[i=1,2,…,lmax]相同的长度分布L′=(n′i)[i=1,2,…,lmax]来构建的,ni是长度为i的码字的个数,并且所述编码是通过执行以下步骤来构造的(a)创建一个该编码的同步树结构,带有对所述树的每个基本分支递减的深度,使初始化参数为D=lmax,K=nlmax/2,]]>而当前的l=lcur=lmax,所述记号为D=表示全0串的最大长度的任意整数;lmax=最大的码字长度;K=表示全1串的最大长度的任意整数; =在霍夫曼编码中长度为lmax的码字个数;(b)对从lmax开始的每一个长度lcur,如果nlcur′≠nlcur,]]>则使用码字1k作为前缀并且将深度为D′=lcur-K的最大长度的基本分支锚定到它;(c)如果1k不能被用作前缀,则通过选择超出期望分布的最小长度的码字来找到一个合适的前缀。
本发明还涉及相应的编码装置。当实现所述发明时得到的结果在图3中对于两种参考编码给出,所述的两种参考编码是由Y.Takishima等人在发表于IEEE Transaction on Communication(电气和电子工程师协会通信学报)第42卷,N°2/3/4,1994年2月/3月/4月,第783-792页的文献“Error states and synchronization recovery for variablelength codes(可变长度编码的错误状态和同步恢复)”中提出的,即,用于运动矢量的编码(所述文献的表格VIII)和英语字母表。从图3的表格中可以看出,在两种情况下ES的值看起来彼此非常接近,所提出的编码和那些在所述文献中得到的编码表现得一样好,但所提出的编码以小得多的复杂性获得,这是因为根据本发明的算法允许获得有限次数的迭代(相对于所述文献而言,在所述文献中所描述的算法在更大数量的分支上进行处理)。
所提出的算法甚至如此简单,以至于它可以被手工应用到相对短的编码上,在那里只需三次(算法的)迭代就可以获得该快速同步结构,或者该算法也可以应用到较长的编码上,例如用在H.263视频编码器中对DCT系数进行编码的206个符号的可变长度编码,对于该编码,当使用本发明时,对同样的平均长度而言,其误差距离比原先的编码要小得多(这就意味着采用根据本发明的编码,则在统计上解码器将在现有的事例之前重新同步一个符号,并且不会牺牲编码速率)。
权利要求
1.一种处理数字信号以减少用于表示所述数字信号的数据量的方法,该方法通过一个可变长度编码步骤形成一组码字,使得较为频繁地出现的数字信号的值由较短的码长来表示,而那些以较低的频率出现的值由较长的码长来表示,所述可变长度编码步骤包括一个定义子步骤来产生该组码字,并且其中使用的编码是用与二进制霍夫曼编码分布L=(ni)[i=1,2,…,lmax]相同的长度分布L′=(n′i)[i=1,2,…,lmax]来构建的,ni是长度为i的码字的个数,并且所述编码是通过执行以下步骤来构造的(a)创建一个该编码的同步树结构,带有对于所述树的每个基本分支的递减的深度,使初始化参数为D=lmax,K=nlmax/2,]]>而当前的l=lcur=lmax,所述记号为D=表示全0串的最大长度的任意整数;lmax=最大的码字长度;K=表示全1串的最大长度的任意整数;nlmax=在霍夫曼编码中长度为lmax的码字的个数;(b)对从lmax开始的每一个长度lcur,如果n′lcur≠nlcur,]]>则使用码字1k作为前缀并且将深度为D′=lcur-K的最大长度的基本分支锚定到该码字;(c)如果1k不能被用作前缀,则通过选择超出期望分布的最小长度的码字来找到一个合适的前缀。
2.一种对数字信号进行编码的方法,该方法至少包括以下步骤对所述数字信号应用一次正交变换以产生多个系数,量化所述系数并且通过一个可变长度编码步骤对被量化后的系数进行编码,其中,那些较为频繁地出现的值由较短的码长来表示,而那些以较低的频率出现的值由较长的码长来表示,所述可变长度编码步骤包括一个定义子步骤来产生与所述数字信号相对应的一组码字,并且其中所用的编码是用与二进制霍夫曼编码分布L=(ni)[i=1,2,…,lmax]相同的长度分布L′=(n′i)[i=1,2,…,lmax]来构建的,ni是长度为i的码字的个数,并且该编码是通过执行以下步骤来构造的(a)创建一个该编码的同步树结构,带有对所述树的每个基本分支递减的深度,使初始化参数为D=lmax,K=nlmax/2,]]>而当前的l=lcur=lmax,所述记号为D=表示全0串的最大长度的任意整数;lmax=最大的码字长度;K=表示全1串的最大长度的任意整数;nlmax=在霍夫曼编码中长度为lmax的码字的个数;(b)对从lmax开始的被称为lcur的每一个长度,如果n′lcur≠nlcur,]]>则使用码字1k作为前缀并且将深度为D′=lcur-K的最大长度的基本分支锚定到该码字;(c)如果1k不能被用作前缀,则通过选择超出期望分布的最小长度的码字来找到一个合适的前缀。
3.一种用于对数字信号编码的装置,所述装置包含至少一个被应用于所述输入数字信号以产生多个系数的正交变换模块、一个被耦合到所述变换模块以量化所述多个系数的量化器和一个被耦合到所述量化器的可变长度编码器,该可变长度编码器依照一可变长度编码算法来对所述多个量化后的系数进行编码并且产生一个编码的数据比特流,在所述系数编码操作中,较为频繁地出现的值由较短的码长来表示,而以较低的频率出现的值由较长的码长来表示,该系数编码操作包括一个定义子步骤以产生对应于所述数字信号的一组码字并且其中所用的编码是用与二进制霍夫曼编码分布L=(ni)[i=1,2,…,lmax]相同的长度分布L′=(n′i)[i=1,2,…,lmax]来构建的,ni是长度为i的码字的个数,并且该编码是通过执行以下步骤来构造的(a)创建一个该编码的同步树结构,带有对所述树的每个基本分支递减的深度,使初始化参数为D=lmax,K=nlmax/2,]]>而当前的l=lcur=lmax,所述记号为D=表示全0串的最大长度的任意整数;lmax=最大的码字长度;K=表示全1串的最大长度的任意整数;nlmax=在霍夫曼编码中长度为lmax的码字的个数;(b)对从lmax开始的每一个长度lcur,如果n′lcur≠nlcur,]]>则使用码字1k作为前缀并且将深度为D′=lcur-K的最大长度的基本分支锚定到该码字;(c)如果1k不能被用作前缀,则通过选择超出期望分布的最小长度的码字来找到一个合适的前缀。
全文摘要
本发明涉及一种定义新的用于可变长度编码算法的码字组的方法,并且涉及一种使用这样的编码的数据编码方法。所述编码方法包含至少以下步骤对所述数据应用变换并且运用可变长度编码算法对所得到的系数进行编码。在所述算法中使用的编码是通过与二进制霍夫曼编码分布相同的长度分布来构建的,并且是通过执行如下的具体步骤来构造的(a)创建该编码的一个同步树结构,带有对于每个基本分支是递减的深度,使初始化参数为D=l
文档编号G06T9/00GK1698270SQ02823512
公开日2005年11月16日 申请日期2002年11月14日 优先权日2001年11月27日
发明者C·拉米, S·查博赫 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1