一种量化编解码方法及装置的制作方法

文档序号:2837104阅读:263来源:国知局

专利名称::一种量化编解码方法及装置的制作方法
技术领域
:本发明涉及编解码
技术领域
,尤其涉及一种编解码过程中的量化实现方案。
背景技术
:随着多媒体业务的快速发展,不仅需要提高编码的效率和实时性,同时还需要对针对音频等业务的编码带宽进行扩展。目前,采用的编码方式主要包括HEAAC(High-EfficiencyAdvanceAudioCoding,高效高级音频编码),EAAC+(EnhancedAdvanceAudioCodingplus,增强的高级音频编码)和八1/1尺-//8+(AdaptiveMultiRateWideBandplus,自适应多速率宽带)编码,其中HEAAC和EAAC+是从高码率的音频编码器扩展而来,而AMR-WB+是通过对低码率的语音编码扩展形成混合编码方式。通常,在音频编码过程中,为了更好的结合人类听觉系统的一些特性,一般先对采样值做时频变换处理,然后根据听觉特性对频谱系数进行取舍加权并量化,量化后的频傳系数再通过熵值编码传输。由于在对各种参数进行量化的过程中可能会产生语音失真,因此,为了适应不同的需求,编码器需根据指定码率对量化的质量进行调整。目前,在高码率(>24kbps)的编码方案中,可以通过调整较好地解决可能产生的失真问题;但是,在低码率编码方案中,则由于比特数的不足,而无法很好地解决所述失真问题。目前,在编码过程中,通常采用的量化方式包括标量量化方法和矢量量化方法。其中,标量量化方法是采用标量对量化样本进行量化处理,这种量化方法的特点是量化的复杂度底,码字的索引搜索快速;但是,在该量化方法中,当信源的符号等概率出现时比特利用率很低。所述的矢量量化方法则可以提高相应的比特利用率,并在编码算法中得到了广泛应用。由于矢量量化方法对于码本的搜索和索引计算量较大,因此,为了能够提高搜索矢量码本的效率,通常将矢量码本按照一定的结构进行排列,即釆用格型矢量量化技术实现所述矢量量化。所述格型矢量量化主要是先将若干标量数据构成一个多维矢量,然后在格型的矢量空间内进行整体量化,以达到压缩数据而损失较少信息的目的。所述的格型矢量量化方法在低码率的情况下已经;陂广泛应用。下面将具体以在AMR-WB+中应用的建立在^8上的格型矢量量化方式为例对所述格型矢量量化(简称格矢量量化)技术的实现进行说明。在AMR-WB+音频编码算法过程中,相应的TCX(TransformCodedexcitation,转换编码激发)部分的处理流程如图1所示,其中,针对经过频谱预整形后的处理采用的量化方法便是格矢量量化方法。在该格矢量量化方法中,具体以八个数为一组,根据就近原则将该八个数量化为作为格矢量的及£8集合上的点。之后,分别为八个数选取相应的基础码本,并输出相应的基础码本、基础码本索引和扩展码本的值。在该编码算法中,量化选取的/£8的点集为及£8=2/)^{2/^+(1,...,1)},其中D8-((X,JC2,…,Xg)eZ8l^+…+JCg为偶数hD8的所有点之和为2的倍数,故^£8集合中所有数据之和是4的倍数。这样,整个量化方法就演变成先在2/)8集合中找到离原始数据最近的点,再在2A+(1,1,1,…,1)集合中寻找距离最近的点,最后在前后找出的两个点中间比较得出最终结果q。在所迷格矢量中得到八位一组整形数据q之后,需要确定相应的基础码本、基础码本索引和扩展码本数值。首先在基础码本Qo、Q2、Q3、04中查找q,所述的Qo、Q2、Q3、Q4是指基础码本中包含的数值。如果q不在基础码本中,则使用Voronoi(即一种特殊的图结构)扩展技术对所述基础码本进行扩展,扩展之后继续执行量化搡作。如图2所示,所述的AMR-WB+音频编码过程中的格矢量量化实现过程具体包括以下步骤步骤21:确定当前输入的待量化的参数在格矢量中的最近邻点数值,'即格点Y;步骤22:判断格点Y是否存在于基础码本中,若确定是,则执行步骤23,否则,执行步骤24;步骤23:确定所述格点Y(即cj在基础码本中,计算Y在基础码本中相应的索引;此时,c,为Qo、Q2、Q3、Q4中的码字时,且用码本索引和,在码本0^中的索引&来编码^,其中,的定义为Qo—wfc=0;Q2~>"A=10;Q3~>"0;Q4—"t="10;索引Ac为^在码本aA中的索引,每个索引Ac占用比特数为4。这样,编码一个基础码本中的格点总共需要5比特,相应输出格式为量化过程结束。步骤24,确定所述格点^不在基础码本中,并使用Voronoi方式对基础码本进行扩展,以便于在基础码本中可以找到所述格点;即可以初始化扩展级r-1,扩展参数^=2、2。步骤25:计算格点q的Voronoi索引k,并利用Voronoi索引k计算Voronoi码矢v,其中,k是由0~M-1之间的整数组成的矢量;所述Voronoi索引k的值依赖于扩展级r和扩展参数M确定,具体为^二mod""G-1),其中,G是生成矩阵。步骤26:计算矢量差w-^-v,差分矢量w属于放大了的格m,为RE8格;计算z-w/M,对差分矢量w作反放大。码矢量z属于REs中的格点。步骤27:检验z是否在基础码本中,如果z不在基础码本中,则执行步骤28,否则,执行步骤29;步骤28:将扩展级r加1,缩放因子M乘2,继续执行步骤25。步骤29:确定已经在基础码本中找到了一个足够大的扩展级r和缩放因子M-2r来编码q的索引,计算z在基础码本中的索引;所述索引由包括码本索引^、z在基础码本的索引&,以及计算得到的8个Voronoi索引k,每个索引需要r比特;码本索引定义为=11110基础码本为Q3,Voronoi扩展级厂=1=111110基础码本为Q4,Voronoi扩展级厂=1:=1111110基础码本为Q3,Voronoi扩展级厂=2;A7/c=11111110基础码本为Q4,Voronoi扩展级r=2;这才羊,格点q可以表述为ct=Afe+v;编码输出格式为攀,在上迷AMR-WB+音频编码过程中,相应的格矢量量化方法在每经过一次处理,量化步长都会越来越小,使得对于大值的数据无法达到较佳的处理效果;而且,Voronoi索引k的计算要用到向量与矩阵的乘法,使得格矢量量化过程中的计算复杂度大大增加。
发明内容本发明的实施例提供了一种量化编解码方法及装置,以简化量化编解码过程中实现的复杂程度。本发明实施例提供了一种量化编码方法,包括确定在格矢量中找到的待编码数据的最近邻点数值未在基础码本中;对所述的最近邻点数值按照预定的分裂策略信息,分裂为两个数之和,其中一个数为基础码本中的码字,另一个数为分裂策略信息提供的以分裂量索引值为索引的分裂量;根据分裂处理后获得的所述的基础码本中的码字及分裂量索引值对所述最近邻点数值进行量化编码处理,获得针对待编码数据的量化编码结果。本发明实施例提供了一种量化编码装置,包括识别单元,用于识别确定在格矢量中找到的待编码数据的最近邻点数值未在基础码本中的情况;分裂处理单元,用于在识别单元的触发下,对所述的最近邻点数值按照预定的分裂策略信息,分裂为两个数之和,其中一个数为基础码本中的码字,另一个数为分裂策略信息提供的以分裂量索引值为索引的分裂量;量化编码单元,用于根据分裂处理单元处理获得的所述的基础码本中的码字及分裂量索引值对所述最近邻点数值进行量化编码处理,获得针对待编码数据的量化编码结果。本发明实施例提供了一种量化解码方法,包括解析收到的数据包,获取数据包中的分裂量索引及基础码本中的码字的标识信息和索引;根据所述分裂量索引确定对应的分裂量,根据所述的码字的标识信息和索引确定对应的码字;计算所述的分裂量与所述的码字的和作为最近邻点数值,并根据所述的最近邻点数值获得解码后的数据。本发明实施例提供了一种量化解码装置,包括分裂解码参数获取单元,用于解析收到的数据包,获取数据包中的分裂量索引及基础码本中的码字的标识信息和索引;分裂量确定单元,用于根据分裂解码参数获取单元获取的分裂量索引确定对应的分裂量;码字确定单元,用于根据分裂解码参数获取单元获取的码字的标识信息和索引确定对应的码字;解码处理单元,用于计算所述的分裂量与所述的码字的和作为最近邻点数值,并根据所述的最近邻点数值获得解码后的数据。由上述本发明的实施例提供的技术方案可以看出,由于釆用了对最近邻点数值进行分裂处理的方式进行量化编码处理,从而使得格矢量量化过程中的计算复杂度得到有效降低,克服了现有技术中存在的量化编码复杂的问题。图1为现有技术中音频编码处理过程示意图;图2为现有技术中量化编码处理流程示意图;图3为本发明实施例提供的量化编码处理流程示意图;图4为本发明实施例中编码输出格式示意图一;图5为本发明实施例中编码输出格式示意图二;图6为本发明实施例中编码输出格式示意图三;图7为本发明实施例中编码输出格式示意图四;图8为本发明实施例中编码输出格式示意图五;图9为本发明实施例中的量化编码装置结构意图;图10为本发明实施例提供的量化解码处理流程示意图;图11为本发明实施例中的量化解码装置结构意图。具体实施方式本发明实施例中,提出了基于分裂表编码的实现方式对待编码的数据进行量化处理,在该方式中,将大的数据分裂后,再进行量化处理,从而便于量化过程的可靠实现。本发明实施例具体提供了一种适合多码率音频等编码过程中的标量和矢量结合的量化实现方案,以针对一个待编码数据在基础码本中查找到对应的码字。在该实现方案中,所述的矢量量化部分包括基于分裂表编码的实现方式,并采用所述的标量量化用于矢量量化无法量化的参数,从而使得量化编码过程的复杂度降低,并可以保证相应的编码性能和基于格矢量量化的编码性能相当。本发明实施例中,基于分裂表的标量和矢量结合的量化实现方案是对于各个待编码数据,首先判断其是否在基础码本中,若在,则直接利用基础码本编码;否则,尝试将其分裂为基础码本中的码字和分裂表中一个分裂量的和,并对基础码字和分裂量分别编码;而当分裂表的阶数较高时,表明矢量编码算法不再高效,此时可以对输入矢量进行标量编码。这样,不仅解决了大的码字因在基础码本中找不到而无法编码的问题,同时,还解决了矢量编码过程中对于少数大数值点的低效编码问题。本发明实施例中,为实现相应的编码处理,首先需要确定相应的基础码本,下面将对基础码本的选取过程进行描述。由于本发明实施例中对于在基础码本中找不到待编码数据的情况采用了对数据尝试进行分裂的处理方式,并在需要分裂级数过大(如大于预定阈值)时选择采用标量量化的方式对数据进行量化处理;因此,为了适应基于分裂表的分裂处理,本发明实施例中选取点集作为基础码本。所述的^A点集的定义为i£8=2Au{2A+(l,.-,l)},其中1)8={(;^,乂2,-..,18)€28|《+"-+;:8为偶数};可见,^A集合中所有数据之和是4的倍数,并且奇偶性相同,所述的及A点集的集合作为选取的基础码本,其具体定义如表1所示表1<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table>在所选取的基础码本^s点集中,各特征码本(即ieader)分布在各个球面上,且在表1中各参数的含义分别为sphere代表球面的大小;size表示相应的leader经过排列组合所能形成的码字的个数;ka用于标识不同的leader,每一个leader都有一个不同的ka值;S的值为leader的每一个分量的四次方之和的四分之一,即5^1(乂+少24+…+:^+h4),每一个leader对应的4S的值都不一样。在编码过程中,S的每一个值对应一个ka的值,也就是说对于一个八维矢量,只要计算出其S值,便可以查到一个对应的ka,由ka值就可以知道其所属的leader。在表1中,Leader所属码本的情况如表2所示表2<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table>在表2中,基础码本分为込,込,込,仏,其中,a只包含一个leader,込、込、込分别包含3、9、14个leader,且込c込,g3cz24。在仏码本中仅含有奇数的leader,这样,在使用分裂表时,对于码本在仏及04以上的点可以采取偶数点减1,奇数点不变的方式处理;对于扩展码本减去O,4,8,12的情况,可以通过得到值的符号判断原值符号。由于该矢量量化方式对于点集中的矢量点是无损耗编码,在编码时要求所有可能的值都能够编码,且本发明实施例中对于大的数值会执行减O,4,8,12的运算,所以,对于4以下的奇数点则需要遍历(即任意给一个小于4的奇数AA点(即全部由1或3构成),均能够对应于某一个Leader),以保证所有的数都能够进行编码,即保证以下的leader包含在基础码本内<table>tableseeoriginaldocumentpage16</column></row><table>但在选择的基础码本中,并没有将上述leader遍历,而是采取了另一种方法进行遍历,即当实际需要的是{3,3,3,3,3,1,1,1}和{3,3,3,3,3,3,1,1}时,则将3和1对调,于是对于{3,3,3,3,3,1,1,1}对调得到{3,3,3,1,1,1,1,1};对于{3,3,3,3,3,3,1,1}对调得到{3,3,1,1,1,1,1,1},这样,便可以用基础码本进行检索。故在基础码本04中不包含{3,3,3,3,3,1,1,1}和{3,3,3,3,3,3,1,1}。将这两种leader称作属于码本f"v—仏。在编码过程中,不同的基础码本是用一个不同长度的二进制数列来标识的,即数据包中的header(头)信息,具体的表示方式如下Qo—header=0jQ2—header=10.'Q3—header=110;(Xj—header=1110;i"v—24—header=11111110。本发明实施例中具体提供了在编码端的基于分裂表的矢量量化实现方式,以及在解码端基于分裂表的矢量量化实现方式,下面将分别对编解码端采用的相应处理过程进行说明。一、在编码端的编码处理过程如图3所示,相应的在编码端的基于分裂表的矢量量化实现方案的处理过程具体包括以下步骤步骤31:在格矢量中找到待编码数据文的最近邻点数值,;具体可以为将预整形后的频语数据分组,每八个数为一组,组成一个8维的矢量H乍为待编码数据,之后,在格点中寻找与该8维的矢量f最接近的点,即最近邻点数值J。步骤32:判断最近邻点数值,是否在基础码本中,若在,则执行步骤33,否则,执行步骤34;步骤33:直接计算待编码数据在基础码本中的标识信息和索引,输出并打包;步骤34:判断所述的格中的最近邻点数值,是否属于2D8,如果不属于,则执行步骤37,否则,执行步骤35;步骤35:将格中的最近邻点数值p减1,置偶标志位为1,执行步骤36;步骤36:检测此时的减1处理后的,是否在基础码本中,如是,则执行步骤38,否则,执行步骤37;步骤37:确定使用分裂表编码,初始化分裂表参数,即在使用分裂表编码过程中,首先初始化分裂级为1,并执行步骤39;步骤38:直接在基础码本中确定该减1处理后的,的标识信息和索引,输出并打包。步骤39:将格中的最近邻点数值j中的每一个分量y(i)作分裂处理,并在执行分裂处理之后执行步骤310;具体可以为将格中的最近邻点数值中的各分量y(i)分裂为y'(i)与分裂表中的某一个值tr的和,在此,需要选择合适的tr值以使得y'(i)的绝对值最小;步骤310:检测y'(i)对应的格中的最近邻点数值?'是否在基础码本中,若在,则执行步骤314,否则,执行步骤311;步骤311:判断当前的分裂级数是否超过预定的阈值rth(如可以为3等),若超过,则执行步骤313,否则,执行步骤312;步骤312:将所述的分裂级加1,执行步骤39继续对所述的格中的邻'点进行分裂处理;步骤313:确定分裂级超过所述阈值,则表明矢量编码算法并不高效,此时,可以将对输入矢量采用标量量化的方式进行处理,以完成相应的打包及输出操作。步骤314:计算》'在基础码本中的索引;具体输出的信息包括header(数据头)、even—flag(偶标志位)、i(基本索引)、k(分裂表索引),并打包输出;其中,header为数据包的头信息,即标识信息,根据该信息可以识别出编码端采用的编码方式;even—flag为偶标志位,用于标识编码过程中执行了减1操作;i为基础码字索引,用于索引编码分裂出的基础码本中的码字部分;k为分裂表索引用于索引分裂表值部分。本发明实施例具体可以应用于低码率编码方案中,如AMR-WB+音频编码等编码处理过程中。为便于对本发明实施例进一步理解,下面将结合附图对以上编码处理过程中的具体实施过程进行详细说明。在上述本发明实施例提供的具体编码处理过程中采用了三种编码方式,分别为:基础码本编码方式、基于分裂表编码方式和标量量化的编码方式,下面将结合应用实例分别对各种编码方式的具体实现分别进行说明。1、基础码本编码本发明实施例中多理、特殊Leader的编码处理和2D8编码处理,下面将分别进行说明。(1)直接编码对于在格中找到的文的最近邻点数值,,首先在基础码本中查找,如果它在基础码本込,込,込,仏中的任何一个,则直接计算码字j),并在基础码本中的索引i,将索引i和基础码本的标识信息header打包输出,其中,込,23,仏输出编码格式如图4所示,对于込,输出格式包含8比特的baseindex(基础码索引,即索引i);对于込,输出格式包含12比特'的baseindex;对于仏,输出格式包含1比特的even_flag,以及16比特的baseindex。针对所述索引i的计算方法如下第一步,在格矢量中找到的最近邻矢量码字为X[i],并对X[i]重新排序得到序列Xs[i];第二步,计算用于表示Xs[i中的负数的个数及位置的sign—code值;第三步,计算用于表示Xs[i]序列中不同的值的a[q]值及不同的值的数量q;第四步,根据X[i]及a[j]计算d[k]值;针对X1[i与X2[i]计算出的d[k]值产生差异,如表3所示表3<table>tableseeoriginaldocumentpage20</column></row><table>第五步,根据q和d[k]值及相应表格计算rank值;第六步,根据每个leader对应的Ka值、sigr^code值查找相应表格以计算确定Ks值;第七步,根据Ks值查表得到offset-ls[Ks值;第八步,计算索引i为index=offset+rank。(2)特殊leader的编码在对基础码本进行搜索时,若检测到待编数据符合特殊leader(1,1,1,3,3,3,3,3)和(1,1,3,3,3,3,3,3),则将其进^M立反转为(3,3,3,1,1,1,1,1)和(3'3,1,1'1,1,1,1),并置反转标志位,即给数据加header:11111110,然后再按leader(3,3,3,1,1,1,1,1)和(3,3,1,1,1,1,1,1)的方式计算其在基础码本的a中的索引,此时,特殊leader的输出格式如图5所示,包含"11111110"信息。(3)2Ds数据的奇化编码在对所述的基础码本进行搜索时,若码字,不在基础码本中,则还需判断它是否为2Da数据,若为2D8数据,则置偶标志位为1(设置该偶标志位为有效),即even—flag=1,其中D8={(:c,,x2,…,xg)eZ81&+…+x8为偶数};即D8中的矢量,各分量之和为偶数,也就是说2D8数据中,各分量之和为4的整数倍;当然,对于a中的编码,如果数据不在2Ds中,则even一flag-0,即所述偶标志位无效;在将偶标志位设置为有效后,则将,的每一个分量都减1,即,,=,-1,得到一个各分量均为奇数的矢量,并判断减1后的码字,,是否在基础码本仏中,若在,则采用之前在(1)中描述的直接编码方式计算其在仏中的索引作为输出,若为特殊leader,则根据前面(2)描述的特殊leader的编码方式进行编码,若仍不在基础码本中,则使用分裂表编码方式。因为本发明实施例中使用的码本中,基础码本込不含偶数数据,所以需要将相应的2D8数据进行奇化处理,并设置even一flag-1。2、基于分裂表编码本发明实施例中,对于不在基础码本中的数据(也包括奇化后仍不在基础码本中的2Ds数据和非特殊leader),则可使用分裂表进行编码处理。一个码字若不在基础码本中,则是因其分量的绝对值太大,为此,可将绝对值大的分量减去一个分裂量,得到一个绝对值足够小的差,使该差成为基础码本中的一个码字,之后,将该差对应的码字在基础码本中的索引和分裂量在分裂表中的索引作为输出,从而实现基于分裂表编码。其中,所述的分裂表可以如表4所示表4<table>tableseeoriginaldocumentpage22</column></row><table>表4中列出了分裂级为1、2、3时"的数值定义,比如"(^)=12,表中r为分裂奴,"为分裂量,^为分裂量的索引,每一个分裂级中,分裂量的个数为2、各个分裂量的大小为",r24时,依此类推。在此,各个数值及级别均为具体举例示意,并不作为本发明实施例的限定。表5<table>tableseeoriginaldocumentpage22</column></row><table>表5中为用二进制表示的~在,=1,2,3时的编码定义,例如取分裂量^(&)=12时,编码输出为其索引"11",其中,索引f的长度为r,这样,对于一个八维矢量中的八个分量,每一个分量都需要r比特来表示其分裂量的索引,共8r比特。在此,各个数值仅为具体举例示意,并不作为本发明实施例的限定。本发明实施例中,使用基于分裂表编码过程中,输出格式如图6所示,具体包括header,even—flag,,'在基础码本中的索引baseindex和分裂量的索引f组成。其中所述的header的定义方式如表6所示表6<table>tableseeoriginaldocumentpage23</column></row><table>在表6中,描述了各种情况下header的定义,例如,分裂级r为2,,'属于基础码本03时,header定义为"11111101",等等。header的定义中,具体是根据统计各数据出现的概率来决定header的长度的。完成对分裂表的介绍后,将接着介绍使用分裂表实现基于分裂表编码的处理流程,为便于描述及理解,具体以数据,={19,1,1,1,1,1,1,1}为例,对所述基于分裂表编码过程进行描述。第一步,对基础码本进行检测,发现数据,不在基础码本中;第二步,初始化分裂级r=1;第三步,将^中的每一个分量y(i)都分裂为y'(i)与分裂表中的某一个值^的和;具体可以将y(i)减去一个与其同号的分裂量,得到的差y'(i)为新的码字分量,即/(/)=><0-sgn(:K!'))"A:》,(i=0,1,...,7);在一级分裂表中,分裂量tr可取O、4,为了使y'(i)的绝对值最小,对,的每一个分量进行分裂y'(1)=y(1)一4=19—4=15;y'(2)=y(2)—0=1—0=1;y'(3)=y(3)—0=1—0=1;y'(7)=y(7)—0=1—0=1;分裂后得到的新的码字,'为{15,1,1,1,1,1,1,1},此时码本中;第四步,更新分裂参数,将分裂级加1,即「=2;第五步,在二级分裂表中,分裂量可取为0、4、8、12y'(i)绝对值最小,对j的每一个分量进行如下处理y'(1)=y(1)-12=19-12=7;y'(2)=y(2)—0=1—0=1;y'(3)=y(3)—0=1—0=1;y'(7)=y(7)—0=1—0=1;分裂后得到的新的码字j'为{7,1,1,1,1,1,1,1},此时,f'为基础码本CU中的码字;由于分裂量12在r=2时的索引为11,分裂量0在r=2时的索引为00,所以相应的分裂量的索引为f=1100000000000000,Aeacfer=111110,对所述数,,'仍不在基础。同才羊,为了4吏据执行分裂处理的过程结束;第六步,计算j)'在Q4中的索引baseindex;第七步,输出编码参数,具体的输出格式如图7所示,包括第五步确定的分裂量的索引值,以及第六步确定的,'在CU中的索引baseindex,而且相应的偶标志4立为0。需要说明的是,当j)中某一分量为负数时,分裂量前面也要相应加上一个负号,即分裂式为符号函数sgn(),例如,若y(1)=-19,则相应分裂搡作为y'(1)=y(1)-(-12)--19+12--7。3、标量量^ft编石马当量化编码使用的分裂级过高时,则扩展部分和header部分所占用的比特数增加很快,为此,可以在分裂级大于预定的阈值时,采用标量量化编码方式进行编码处理。例如,在分裂级大于3或4时,便可以设置为对于输入的矢量点采用标量量化的编码方式。假设输入的AA矢量点为;,并且i已经调整为奇数点7^,则所述的标量量化编码的实现过程包括以下步骤第一步,在^^矢量点搜索绝对值最大的点,々支设找到的绝对值最大点'为Wo);第二步,估算每个点消耗的比特数c=Li。g2(w。))]」+1;第三步,对^^矢量的每个点进行标量量化,x(!)将量化为["fc(:c(!))-l]/2并输出。在该标量量化编码模式下,相应的矢量点输出编码格式如图8所示,其中,具体可以包括header、even—flag、mode(模式位)、scalarindex(标量索引)。二、编码端采用的量化编码装置本发明实施例还提供了一种量化编码装置,其具体实现结构如图9,具体包括以下处理单元识别单元,用于识别确定在格矢量中找到的待编码数据的最近邻点数值未在基础码本中的情况;分裂处理单元,用于在识别单元的触发下,对所述的最近邻点数值按照预定的分裂策略信息,分裂为两个数之和,其中一个数为基础码本中的码字,另一个数为分裂策略信息提供的以分裂量索引值为索引的分裂量;量化编码单元,用于根据分裂处理单元处理获得的所述的基础码本中的码字及分裂量索引值对所述最近邻点数值进行量化编码处理,获得针对待编码数据的编码结果。可选地,所述的装置还包括第一判断单元、奇数化处理单元和编码单元,其中第一判断单元,用于在确定所述最近邻点数值未在基础码本中之后,判断所述最近邻点数值是否符合预定的偶数特性,所述的预定的偶数特性为该最近邻点数值中包含偶数分量,若符合,则触发所述奇数化处理单元,否则,触发所述的分裂处理单元;奇数化处理单元,用于对所述的最近邻点数值进行奇数化处理,例如,将相应的偶数码字做减1处理以使其成为奇数;编码单元,用于在基础码本中确定奇数化处理单元处理后的最近邻点数值对应的码字,并进行编码处理,还在编码结果中记录偶标识位,通过该偶标识位记录对最近邻点数值进行了奇数化处理。可选地,所述的装置还包括分裂策略信息存储单元,用于在分裂表中保存预定的分裂策略信息的分裂量,所述的分裂表中分为多个分裂级,每个分裂级对应着一组分裂量;且所述的分裂处理单元具体包括分裂级选择单元,用于根据所述的最近邻点数值及基础码本中的码字,依次选择各分裂级中的各个分裂量;分裂操作单元,用于根据分裂级选择单元的选择结果对所述最近邻点数值进行分裂处理。其中,所述的分裂级选择单元具体可以包括第二判断单元、标量量化单元和分裂级选择操作单元,其中第二判断单元,用于判断当前选择的分裂级是否超过预定的阈值,若超过,则触发标量量化单元,否则,触发分裂级选择操作单元;标量量化单元,用于在第二判断单元的触发下采用标量量化方式对所述最近邻点数值进行量化编码操作;分裂级选择操作单元,用于选择第一级分裂级,或者,在所述第二判断单元的触发下选择下一级分裂级,并触发所述分裂操作单元。可选地,所述的装置还包括基础码本编码单元和输出单元,其中基础码本编码单元,用于在确定所述的最近邻点数值在基础码本中后,在基础码本中确定该最近邻点数值的码字,并确定该码字对应的标识信息,及索引(即基本索引);输出单元,用于将基础码本编码单元确定的标识信息及索引打包输出。三、在解码端的解码处理过程如图10所示,在解码端采用的解码算法是与编码端采用的编码算法的逆处理过程,即相应的在解码端的处理过程具体包括以下步骤步骤101:接收编码端发来的数据包,对所述数据包进行解析,以读取编码端传过来的所有参数;,例如,与编码端发送参数对应,包括header、even_flag、i、k;步骤102:才艮据收到的参数判断编码端采用的编码方式,若采用的是基础码本编码方式,则执行步骤103,若采用的是标量编码方式,则执行步骤104,若采用的是基于分裂表编码方式,则执行步骤105;依照前例,具体可以通过每组数据中参数header的值来判断这组数振具体采用的编码方式;步骤103:对于基础码本编码方式,则根据header和索引i的值直接计算码字,,并执行步骤107;步骤104:对于标量编码方式,则根据header计算标量编码模式,并执行步骤107;步骤105:对于基于分裂表编码方式,则先计算与3f相对应的基础码本中的码字-,并执行步骤106;步骤106:将所述的码字,加上相应的分裂量还原为3f,并执行步'骤107;步骤107:根据偶标志位even—flag判断是否需要对3f进行力"的处理,若需要,则执行步骤109,否则,执行步骤108;步骤108:直接输出所述3f。步骤109:对码字3f进行加1的处理后得到新的文,并将新的^输出。为便于对本发明实施例进一步理解,下面将对解码端在不同编码方式下的解码处理过程进行描述。(1)在编码端使用基础码本编码方式时相应的解码流程解码端通过每一组数据的header判断该组数据在编码端采用的是基础码本编码方式,即当header的值为O,10,110,1110,11111110中的任意一个时,确定该组数据在编码端采用的是基础码本编码方式,则相应的处理包括根据header的值直接确定基础码本中的索引,计算出码字;例如,header-"10,则,为CU中的码字,读取其后的16比特数据作为码字在04中的索引,计算出码字,;接着,根据even一flag的值来决定下一步操作,如,果even—flag=1,贝'J将》力口1,即3e=jp+1,若even—flag=0,贝'Jx=,;所述i即为解码得到的数据。需要说明的是,当基础码本为Qo,Q2,Qs时,编码端没有传输even一flag这个参数,则不需要解读even一flag,直接由索引计算得到码字-作为解码得到的数据输出即可。(2)在编码端采用基于分裂表编码时的解码流程以数据j={19,1,1,1,1,1,1,1}为例,相应的解码流程包括第一步,读取header为11111101,则确定为基于分裂表编码,并可以得知分裂级为2,j5'所在的fc出码本为Q4;第二步,读取,'在基础码本中的16位索引,利用该索引计算码字,,即,'={7,1,1,1,1,1,1,1};还读取分裂量索引f=1100000000000000,并查分裂表知所4吏用的分裂量为{12,0,0,0,0,0,0,0);第三步,将所述的分裂量与基础码本中的码字相加,还原得到码字为{19,1,1,1,1,1,1,1};并读取even_flag为0,得知该数值未进行奇数化处理,则在此直接输出该还原得到的码字{19,1,1,1,1,1,1,1}。完成基于分裂表编码的解码处理过程。(3)在编码端^f吏用标量编码时的解码流程在解码端解包后,若利用header判别编码模式为标量编码方式,则相应的解码处理过程包括第一步,根据图8中的mode位确定每个标量点占用的比特数c;第二步,根据c解码图8中的scalarindex部分共8c比特,得到标量量化索引z"ctexO')z=0,l,...,7;第三步,通过标量量化索引/"^c(/)解码原标量点;每个标量的最高位为符号位sgn(符号位为1时,^=-1,符号位为0时堪"=1),其余位对应的无符号整数值为!',则还原的标量为;c(0=^nQ[2/+l.)。本发明实施例还提供了一种量化解码装置,其具体实现结构如图11所示,具体包括以下处理单元分裂解码参数获取单元,用于解析收到的数据包,获取数据包中的分裂量索引,以及基础码本中的码字的标识信息和索引;分裂量确定单元,用于根据分裂解码参数获取单元获取的分裂量索引确定对应的分裂量;码字确定单元,用于根据分裂解码参数获取单元获取的码字的标识信息和索引确定对应的码字;解码处理单元,用于计算所述的分裂量与所述的码字的和作为最近邻点数值,并根据所述的最近邻点数值获得解码后的数据。可选地,所述的装置还解码识别单元、基础码本解码单元和标量量化解码单元,其中解码识别单元,用于解析收到的数据包的头信息,并根据所述头信息确定该数据包采用的编码方式,若为基于分裂表编码方式,则触发所述分裂解码参数获取单元;若为基础码本编码方式,则触发所述基础码本解码单元;若为标量量化编码方式,则采用标量量化解码单元;基础码本解码单元,用于根据数据包中的码字的标识信息和索引(即基本索引)直接进行解码操作,获得解码后的数据;标量量化解码单元,用于采用标量量化解码方式进行解码操作,获得解码后的数据。可选地,所述的装置还包括偶数化处理单元,用于在接收到的数据包中包含有效的偶标识位信息时,对解码后的数据进行与编码端采用的奇数化处理对应的偶数化处理,获得的偶数化处理后的数据作为解码结果。综上所述,标量矢量结合的量化实现方案中解决了在遇到大矢量时分裂表矢量量化方式量化效率不高的问题,即对于大矢量则利用筒单的标量量化方式进行量化处理,以降^f氐编解码过程的实现复杂。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。权利要求1.一种量化编码方法,其特征在于,包括确定在格矢量中找到的待编码数据的最近邻点数值未在基础码本中;对所述的最近邻点数值按照预定的分裂策略信息,分裂为两个数之和,其中一个数为基础码本中的码字,另一个数为分裂策略信息提供的以分裂量索引值为索引的分裂量;根据分裂处理后获得的所述的基础码本中的码字及分裂量索引值对所述最近邻点数值进行量化编码处理,获得针对待编码数据的量化编码结果。2、根据权利要求1所述的方法,其特征在于,在确定所述最近邻点数值未在基础码本中之后,所述的方法还包括判断所述最近邻点数值是否符合预定的偶数特性,所述的预定的偶数特性为该最近邻点数值中包含偶数分量,若符合,则对该最近邻点数值进行奇数化处理,并在基础码本中确定奇数化处理后的最近邻点数值对应的码字,以进行编码处理,还在编码结果中记录偶标识位,通过该偶标识位记录对最近邻点数值进行了奇数化处理;若不符合,则触发对所述最近邻点数值的分裂操作。3、根据权利要求1所述的方法,其特征在于,所述的预定的分裂策略信息具体为设置于分裂表中的分裂量,所述的分裂表中分为多个分裂级,每个分裂级对应着一组分裂量,且所述的分裂处理包括根据所述的最近邻点数值及基础码本中的码字,依次选择各分裂级中的各个分裂量对所述最近邻点数值进行分裂操作。4、根据权利要求3所述的方法,其特征在于,在所述的依次选择各分裂级的处理过程中,所述的方法还包括判断当前选择的分裂级是否超过预定的阈值,若超过,则采用标量量化方式对所述最近邻点数值进行量化编码操作,若未超过,则继续选择下一级分裂级,并触发本次对所述最近邻点数值的分裂操作。5、根据权利要求1至4任一项所述的方法,其特征在于,若确定所述的最近邻点数值在基础码本中,则所述的方法包括确定所述最近邻点数值在基础码本中的码字,并确定该码字对应的标识信息及该码字的索引;将所述的标识信息及索引打包并输出。6、根据权利要求5所述的方法,其特征在于,所述的基础码本选取的及五8点集的有限集合,在该有限集合中包含了及£8点集中任意维的数值小于等于3的所有点,且该有限集合中第4级超球面上的点全部为奇数点。7、根据权利要求6所述的方法,其特征在于,所述的*£8点集中任意维的数值小于等于3的所有点为直接或经反转变换后映射到所述有限集合中。8、一种量化编码装置,其特征在于,包括识别单元,用于识别确定在格矢量中找到的待编码数据的最近邻点数值未在基础码本中的情况;分裂处理单元,用于在识别单元的触发下,对所述的最近邻点数值按照预定的分裂策略信息,分裂为两个数之和,其中一个数为基础码本中的码字,另一个数为分裂策略信息提供的以分裂量索引值为索引的分裂量;量化编码单元,用于根据分裂处理单元处理获得的所述的基础码本中的码字及分裂量索引值对所述最近邻点数值进行量化编码处理,获得针对待编码数据的量化编码结果。9、根据权利要求8所述的装置,其特征在于,所述的装置还包括第一判断单元、奇数化处理单元和编码单元,其中第一判断单元,用于在确定所述最近邻点数值未在基础码本中之后,判断所述最近邻点数值是否符合预定的偶数特性,所述的预定的偶数特性为该最近邻点数值中包含偶数分量,若符合,则触发所述奇数化处理单元,否则,触发所述的分裂处理单元;奇数化处理单元,用于对所述的最近邻点数值进行奇数化处理;编码单元,用于在基础码本中确定奇数化处理单元处理后的最近邻点数值对应的码字,并进行编码处理,还在编码结果中记录偶标识位,通过该偶标识位记录对最近邻点数值进行了奇数化处理。10、根据权利要求8所述的装置,其特征在于,所述的装置还包括分裂策略信息存储单元,用于在分裂表中保存预定的分裂策略信息的分裂量,所述的分裂表中分为多个分裂级,每个分裂级对应着一组分裂量;且所述的分裂处理单元具体包括分裂级选择单元,用于根据所述的最近邻点数值及基础码本中的码字,依次选择各分裂级中的各个分裂量;分裂操作单元,用于根据分裂级选择单元的选择结果对所述最近邻点数值进行分裂处理。11、根据权利要求10所述的装置,其特征在于,分裂级选择单元具体包括第二判断单元、标量量化单元和分裂级选择操作单元,其中第二判断单元,用于判断当前选择的分裂级是否超过预定的阈值,若超过,则触发标量量化单元,否则,触发分裂级选择操作单元;标量量化单元,用于在第二判断单元的触发下采用标量量化方式对所述最近邻点数值进行量化编码操作;分裂级选择操作单元,用于选择第一级分裂级,或者,在所述第二判断单元的触发下选择下一级分裂级,并触发所述分裂操作单元。12、根据权利要求8至11任一项所述的装置,其特征在于,所述的装置还包括基础码本编码单元和输出单元,其中基础码本编码单元,用于在确定所述的最近邻点数值在基础码本中后,在基础码本中确定该最近邻点数^L的码字,并确定该码字对应的标识信息及索引;输出单元,用于将基础码本编码单元确定的标识信息及索引打包输出。.13、一种量化解码方法,其特征在于,包括解析收到的数据包,获取数据包中的分裂量索引及基础码本中的码字的标识信息和索引;根据所述分裂量索引确定对应的分裂量,根据所述的码字的标识信息和索引确定对应的码字;计算所述的分裂量与所述的码字的和作为最近邻点数值,并根据所述的最近邻点数值获得解码后的数据。14、根据权利要求13所述的方法,其特征在于,收到所述的数据包后.,解析所述数据包的头信息,且所述的方法还包括若根据所述头信息确定该数据包采用的是基于分裂表编码方式,则触发获取数据包中的分裂量索引的步骤;若根据所述头信息确定该数据包采用的是基础码本编码方式,则根据数据包中的码字的标识信息和索引直接进行解码操作,获得解码后的数据;若根据所述头信息确定该数据包采用的是标量量化编码方式,则采用标量量化解码方式进行解码操作,获得解码后的数据。15、根据权利要求13或14所述的方法,其特征在于,若接收到的数椐包中包含有效的偶标识位信息,则所述方法还包括得的偶数化处理后的数据作为解码结果。16、一种量化解码装置,其特征在于,包括分裂解码参数获取单元,用于解析收到的数据包,获取数据包中的分裂量索引及基础码本中的码字的标识信息和索引;分裂量确定单元,用于根据分裂解码参数获取单元获取的分裂量索引确定对应的分裂量;码字确定单元,用于根据分裂解码参数获取单元获取的码字的标识信息和索引确定对应的码字;解码处理单元,用于计算所述的分裂量与所述的码字的和作为最近邻点数值,并根据所述的最近邻点数值获得解码后的数据。17、根据权利要求16所述的装置,其特征在于,所述的装置还包括解码识别单元、基础码本解码单元和标量量化解码单元,其中解码识别单元,用于解析收到的数据包的头信息,并根据所述头信息确定该数据包采用的编码方式,若为基于分裂表编码方式,则触发所述分裂解码参数获取单元;若为基础码本编码方式,则触发所述基础码本解码单元;若为标量量化编码方式,则采用标量量化解码单元;基础码本解码单元,用于根据数据包中的码字的标识信息和索引直接进行解码操作,获得解码后的数据;标量量化解码单元,用于采用标量量化解码方式进行解码操作,获得解码后的数据。18、根据权利要求16或17所述的装置,其特征在于,所述的装置还包括偶数化处理单元,用于在接收到的数据包中包含有效的偶标识位信息时,对数化处理后的数据作为解码结果。全文摘要一种量化编解码方法及装置,主要为在量化编码端,若格矢量中的最近邻点数值未在基础码本中,采用对最近邻点数值进行分裂的处理方式进行编码操作;对应的,在量化解码端,则采用对应的处理方式进行解码操作。该实施方案通过与基础码本编码方式和标量量化编码方式结合,可以有效提高量化编解码处理过程中的处理效率。文档编号G10L19/02GK101266796SQ20071006435公开日2008年9月17日申请日期2007年3月12日优先权日2007年3月12日发明者刘佩林,清张,伟李,杜正中,桑盛虎,晨胡,许丽净,许剑峰,耀邹申请人:华为技术有限公司;上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1