CN101436408B - 矢量量化方法及矢量量化器 - Google Patents
矢量量化方法及矢量量化器 Download PDFInfo
- Publication number
- CN101436408B CN101436408B CN200710166471XA CN200710166471A CN101436408B CN 101436408 B CN101436408 B CN 101436408B CN 200710166471X A CN200710166471X A CN 200710166471XA CN 200710166471 A CN200710166471 A CN 200710166471A CN 101436408 B CN101436408 B CN 101436408B
- Authority
- CN
- China
- Prior art keywords
- vector
- adjustment
- adjustment amount
- value
- combination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及编码技术,公开了矢量量化方法和矢量量化器,其中矢量量化方法包括:获取待量化矢量,对待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;按照待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合;根据选取的所述调整量组合获得与所述待量化矢量对应的索引号。使用本发明实施例提供的技术方案,可以减少编码所需的编码空间。
Description
技术领域
本发明涉及编码技术,具体涉及矢量量化方法及矢量量化器。
背景技术
随着近几年计算机技术的不断发展,各种多媒体应用越来越受到人们的青睐。作为多媒体应用不可缺少的语音编码技术,在最近十几年取得了很大的进步。目前常用的编码方法有行程长度编码、矢量量化(VQ:VectorQuantization)编码等。
矢量量化编码的核心过程是对输入矢量进行量化的过程。下面以语音编码中一种对导抗谱频率(ISF:Immittance Spectral Frequency)进行矢量量化的方法——宽带自适应语音编解码(AMR-WB+)方法为例,说明现有矢量量化的具体处理过程。
语音信号经过线性预测(LP:Linear Prediction)器,得到相应若干阶LP系数,将LP系数转换到频域得到由若干个ISF参数组成的ISF矢量。AMR-WB+采用联合矢量量化(SVQ:combination of Split Vector Quantization)和多级矢量量化(MSVQ:Multi-Stage Vector Quantization)的方式量化ISF矢量,具体描述如下:
1、采用一阶滑动平均(MA:Moving Average)预测法,求出当前第n帧的ISF预测残差矢量r;设ISF矢量是16维矢量,那么r也是一个16维矢量。
2、对残差矢量r进行量化处理,如表1所示:
表1
表1是现有ISF矢量量化过程的比特分配及码书使用表。先对r进行第一级***,得到两个一级子矢量,分别是9维的r1的和7维的r2;分别用8比特量化r1和r2,则相应所使用的码本的个数分别为256个9维码本和256个7维码本。
3、然后对r1和r2分别进行第二级***。9维的r1被***为三个二级子矢量,分别是:3维的r11,用6比特量化,对应的码本为64个3维码本;3维的r12,用7比特量化,对应的码本为128个3维码本;3维的r13,用7比特量化,对应的码本为128个3维码码本。7维的r2被***为两个二级子矢量,分别是:3维的r21,用5比特量化,对应的码本为32个3维码本;4维的r22,用5比特量化,对应的码本为32个4维码本。
在上述用码本对矢量(包括一级子矢量、二级子矢量等)进行量化时,通过衡量矢量与相应的码本集合中各个码本之间的偏差来确定所选取的量化码本。一般可通过计算码本相对于矢量的失真度来表示这个偏差,AMR-WB+中所采用的失真度一般可表示为,待量化矢量与相应码本同维度分量的差值的平方和。通常可选择与待量化矢量相比失真度最小的码本作为量化码本。量化比特记录所选择量化码本的索引,解码端可根据该索引找到相应的量化码本,从而以相反的过程逐级恢复出最初输入矢量的比较好的近似值。
采用上述量化方法对语音信号的16维ISF矢量进行量化,能够获得较高的编码质量,但相应的码本存储量较大,由于计算时需要遍历所***本,因此量化的计算复杂度也较高,计算量比较大。
发明内容
本发明实施例提供了矢量量化方法及矢量量化器,使用本发明实施例提供的技术方案,可以提高量化质量,减少编码所需的编码空间。
本发明实施例的目的是通过以下技术方案实现的:
本发明实施例提供了一种矢量量化方法,包括:
获取待量化矢量,对所述待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
根据所述待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合,所述调整量组合用于对所述待量化矢量进行调整;
根据选取的所述调整量组合获得与所述待量化矢量对应的索引号。
本发明实施例提供了一种矢量量化器,包括:
残差矢量获取单元,用于获取待量化矢量,对所述待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
选取单元,用于按照所述待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合,所述调整量组合用于对所述待量化矢量进行调整;
量化单元,用于根据选取的所述调整量组合获得与所述待量化矢量对应的索引号。
由于本发明实施例可以从多个调整量组合中选取一个符合要求的调整量组合,从而可以对应不同的待量化矢量采用不同的调整量组合进行调整,可以提高量化质量,减少编码所需的编码空间。
附图说明
图1为本发明实施例中矢量量化方法实施例一的流程图;
图2为本发明实施例中矢量量化方法实施例二的流程图;
图3为本发明实施例中矢量量化方法实施例三的流程图;
图4为本发明实施例中矢量量化方法实施例四的流程图;
图5为本发明实施例中矢量量化器实施例一的结构图;
图6为本发明实施例中矢量量化器实施例二的结构图;
图7为本发明实施例中矢量量化器实施例三的结构图。
具体实施方式
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明实施例提供的矢量量化方法实施例如图1所示,包括:
步骤101、获取待量化矢量,对待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
假设进行两级量化,输入信号为[v1,v2,...,vN],本发明实施例的N级量化具体过程可以如下:
1)将m维的输入信号进行一级矢量量化,假设a个一级码书为:
利用预先设定的判断准则,例如为加权均方误差最小等,从这a个一级码书中选择若干(通常为1~10个,记为K个)使输入信号与码书间均方误差最小的w(w>=1)个码书作为一级码书的候选值,并计算出这K个候选一级码书所对应的的一级残差矢量,记为:[r11,r12,...,rlm]、[r21,r22,...,r2m]、...、[rKl,rK2,...,rKm],还可以记录这K个一级码书的索引号,假设这K个一级码书的索引号为:[index11,index12,...,index1K]。
2)再对这K个一级码书的残差信号,分别进行第二级矢量量化,假设二级码书为:
同样根据预先设定的判断准则,如加权均方误差最小等,得到K个候选二级码书,其二级码书的二级残差矢量记为:[r’11,r’12,...,r’1m]、[r’21,r’22,...,r’2m]、...、[r’K1,r’K2,...,r’Km],还可以记录这K个二级码书的索引号,假设这K个二级码书的索引号为:[index21,index22,...,index2K]。
根据需要,实际应用中还可以进行三级或更多级的量化,当然也可以仅进行一级量化,因此本发明实施例使用的是N级量化后得到的残差矢量,其中N为正整数;量化过程与二级矢量量化过程类似,此处不再赘述。
步骤102、按照待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合;可以预先设置至少两个调整量组合,每个调整量组合中对残差矢量的每一维的调整量的数量可以相同,也可以不同;具体可以根据不同的码书设置不同的调整量组合,对于出现概率较高的码书分配的调整量组合中对残差矢量的每一维的调整量的数量多,从而调整的范围大;反之,对于出现概率不那么高的码书分配的调整量组合中对残差矢量的每一维的调整量的数量就少,从而调整的范围小。具体哪些码书的出现概率高可以根据仿真的结果来判断,并且可以根据仿真的结果进行更新,也就是哪些码书对应哪些调整量组合可以根据需要进行调整。
具体可以按照部分或全部的各级码书的索引号所处的索引号区间,从预置的至少两个调整量组合中选取一个调整量组合。假设有3个调整量组合,其中索引号小于32时选取第1个调整量组合;索引号大于等于32小于64时,选取第2个调整量组合;索引号大于等于64时,选取第3个调整量组合等。
例如,也可以预置码书的索引号与调整量组号的映射表,映射表中设置了码书的索引号与调整量组号的对应关系,在获取了N级量化时获得的各级码书的索引号后,从上述映射表中查找与各级码书的索引号对应调整量组号,从而以查找到的调整量组号对应的调整量组合对残差矢量进行调整。
并且,并不是需要根据N级量化时获得的所***书的索引号来选取,例如,两级量化时,会获得一级码书和二级码书,本发明实施例可以只按照一级码书的索引号来选取调整量组合,也可以同时按照一级码书的索引号和二级码书的索引号来选取调整量组合,也不排除仅采用二级码书的索引号来选取调整量组合的可能。对于三级量化或更多级量化的处理过程与两级量化的处理类似。
假设预先设置有3个调整量组合,如下所示:
第1个
第2个
第3个
以仅以一级码书的索引号选取相应的调整量组合为例,一级码书有256个,预先设置的选取原则为索引号小于64时对应第1个调整量组合,索引号大于等于64小于128时对应第2个调整量组合,索引号大于等于128时对应第3个调整量组合;则可以根据索引号所处的区间选取对应的调整量组合;
步骤103、根据选取的调整量组合获得与待量化矢量对应的索引号。
选取了调整量组合后,就可以根据调整量组合采用预置的方式获得与待量化矢量对应的索引号,本发明实施例并不限定获得与待量化矢量对应的索引号的具体方式。
由于本发明实施例可以从多个调整量组合中选取一个符合要求的调整量组合,从而可以对应不同的待量化矢量采用不同的调整量组合进行调整,可以提高量化质量,减少编码所需的编码空间。
本发明进一步提供了矢量量化方法的实施例二,如图2所示,包括:
步骤201、获取待量化矢量,对待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
步骤202、按照待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合;选取的调整量组合对残差矢量的每一维设置有至少一个调整量的值;
步骤201、202参照步骤101、步骤102执行。
步骤203、按照选取的调整量组合计算与残差矢量的部分或全部维一一对应的调整量的值,获得由部分或全部维的调整量的值组成的调整矢量;
在实际应用中,一般都是选择能使为当前维选择的调整量的值与当前维偏差最小,或使偏差符合预先设定的条件的调整量的值。其中,偏差可以是均方误差等。
以残差矢量[r’i1,r’i2,...,r’im]为例,假设一级码书的索引号为96,则根据步骤102中所述的选取原则,选取第2个调整量组合作为残差矢量[r’i1,r’i2,...,r’im]的调整量组合,为各维定义的调整量的值的取值范围如下:
其中每一维的调整量的值的取值范围中的值的个数可以相同,也可以不相同。
遍历当前残差矢量[r’i1,r’i2,…,r’im]的每一维,从每一维的调整量的值的取值范围[adjn1_2,adjn2_2,…]中找到和r’in(1≤n≤m)偏差最小的调整量的值,假设该调整量的值在该维的调整量的值的取值范围内的编号是index_adj_n。当然,在实际应用中,也可以从每一维的调整量的值中选取一个作为调整量的值得组合,从所有组合中选取一个最佳的组合。
这样,就可以为残差矢量的每一维找到偏差最小的调整量的值,得到一个m维的调整矢量。
当然,在实际应用中,也可以不对每一维进行调整,例如对于16维的残差矢量,可以默认只对其中的12维进行调整,而对剩余的4维不进行调整,这样就可以得到12维的调整矢量,可以降低调整矢量需要的编码空间。
步骤204、根据调整矢量所包含的调整量的值确定调整矢量的综合索引号,综合索引号与待量化矢量对应。
其中,调整矢量的综合索引号可以通过如下流程获得:根据调整量的值计算该调整矢量的原始索引号;从预置的优先组合表中获取与原始索引号对应的所述综合索引号。
调整量的取值范围是已知的,每个取值在取值范围内都有固定的位置,因而可以为取值范围内的值顺序进行编号,在调整量的值确定后,对应的编号也就确定,从而可以利用调整量的值的编号计算调整矢量的原始索引号。
由于需要在不够的编码空间中进行编码,因而需要将调整矢量尽可能调整为出现概率较高的调整矢量,而出现概率较高的调整矢量对应的原始索引号可能并不是连续的,因而可以预置一个优先组合表,在组合表中将调整矢量按照出现概率进行索引,一般来说,出现概率越高,在优先组合表中的综合索引号就越小,从而使出现概率越高的调整矢量被编码的几率越高,本发明实施例提供的一个优先组合表如下所示:
本实施例中,由于采用调整矢量对残差矢量进行调整,有效扩大了残差矢量的动态范围,减小了失真度;并且对残差矢量的调整以调整矢量的形式进行,使得能够充分利用待量化矢量进行N级矢量量化后某些维度间依然存在的相关性来设计调整矢量,达到以较少的调整矢量数目实现较大的动态调整范围的目的;进一步,按照N级量化时获得的各级码书的索引号的全部或部分选取对应的调整量组合,使出现概率高的码书的残差矢量的调整范围更大,可以提高量化质量;并且,在将调整矢量进行分组,用分组对应的综合索引号代替矢量分组时,可以降低对调整矢量编码的比特位数。
本发明实施例进一步提供了矢量量化方法的实施例三,图3描述了所述实施例三的流程,包括:
步骤301、获取待量化矢量,对待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
步骤302、按照待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合;选取的调整量组合对残差矢量的每一维设置有至少一个调整量的值;
步骤303、按照选取的调整量组合计算与残差矢量的部分或全部维一一对应的调整量的值,获得由部分或全部维的调整量的值组成的调整矢量;
步骤304、根据调整矢量所包含的调整量的值确定调整矢量的综合索引号,综合索引号与待量化矢量对应;
步骤301~步骤304的执行参见步骤201~步骤204;
步骤305、判断综合索引号是否满足预置编码空间,若否,则调整调整矢量所包含的调整量的值,使得调整矢量的综合索引号满足预置编码空间。
由于预先分配给调整矢量的综合索引号的编码空间是固定的,而分配的编码空间可能不够,因而需要对调整矢量的综合索引号是否满足预置编码空间进行判断,如果满足,就可以直接将综合索引号输出给编码单元,如果不满足,则需要进行调整。其中,调整的具体过程为:在设定的调整范围内对各个调整量的值进行调整;调整范围与各个调整量一一对应,是该调整量全部取值范围的真子集。每个调整量都有一个对应的调整量的值的取值范围,一般来说,调整范围是在取值范围内的,因此调整范围是该调整量全部取值范围的真子集。由于综合索引号是与原始索引号对应的,而原始索引号通过调整量的值的编号获得,因而可以对调整量的值进行调整,相应的使调整量的值的编号调整,从而调整相应的综合索引号。
由于每个调整量的值的取值范围都是预先设置的,并且每个调整量的取值具有顺序编号,因而可以在设定的调整范围内对调整量的值进行调整。其中调整范围可以由与当前的调整量的值相邻的一个或多个调整量的取值组成。本发明实施例提供的一个调整范围如下:调整范围为该调整量的当前取值,和编号大于或小于该当前取值的另一取值的集合。具体是大于或小于可以根据具体需要设置。一般情况下,若调整量的值编号较大,将该调整量的值调整为调整范围内编号较小的值;若调整量的值编号较小,将该调整量的值调整为调整范围内编号较大的值。
可以根据不同的需要采用不同的调整方法,本发明实施例并不限定调整的具体方法。但是不管采用哪种调整方法,只要能使调整后的调整矢量对应的综合索引号符合预置条件都应该在本发明的保护范围内。本发明实施例提供的一种调整方法如下:依次对该调整矢量中的每一维的调整量进行调整或不进行调整;其中,若对某维调整量进行调整,按照预置的调整量调整方法对该维调整量进行调整;预置的调整量调整方法具体为:若该维调整量在其所处的调整量集合中的索引号较小,将该维调整量调整为索引号较大的调整量;若该维调整量在其所处的调整量集合中的索引号较大,将该维调整量调整为索引号较小的调整量。
假设每个综合索引号只有7个比特的编码空间,因而编码值不能大于27=128,如果原始索引号id~满足pri_select_orde[id~]<128,则表示该调整矢量在7比特的编码空间之内,可以直接将综合索引号pri_select_orde[id~]送入编码器进行编码。
如果原始索引号id~不满足pri_select_orde[id~]<128,则需要对调整量实施调整。调整的具体实现方法有很多,本发明实施例提供的一种快速的调整方法是这样的:依次对每一维进行两次调整,第一次调整保持自身的索引号不变,让其它维去调整,第二次调整时,如果该维的调整量的值的编号是0或1,则上调为1或2,如果调整量的值的编号是2或3,则向下调整为1或2。由于4维每一维都调整两次,因此,总共要调整16次。然后,在这16次调整中,分别计算调整后的原始索引号id~,并判断新的id~是否满足pri_select_orde[id~]<128,如口新的id~满足pri_select_orde[id~]<128,则可以将调整得到的综合索引号送入编码器进行编码。
例如,调整矢量是[0,3,0,3],则id~=0*64+3*16+0*4+3=51,相应的pri_select_orde[51]=239>128,因此,必须对调整矢量[0,3,0,3]进行调整。
第一遍调整,保持调整矢量[0,3,0,3]不变,由于id~=0*64+3*16+0*4+3=51,pri_select_orde[51]=239>128,不符合要求。
第二遍调整,让第四维的3调整成2,新的调整矢量为[0,3,0,2],新的id~=0*64+3*16+0*4+2=50,pri_select_orde[50]=243>128,同样也不符合要求。
第三遍调整,让第三维的0调整成1,新的调整矢量为[0,3,1,3],新的id~=0*64+3*16+1*4+3=55,pri_select_orde[55]=231>128,同样也不符合要求。
第四遍调整,让第三维的0调整成1,第四维的3调整成2,新的调整矢量为[0,3,1,2],新的id~=0*64+3*16+1*4+2=54,pri_select_orde[54]=203>128,同样也不符合要求。
第五遍调整,让第二维的3调整成2,新的调整矢量为[0,2,0,3],新的id~=0*64+2*16+0*4+3=35,pri_select_orde[35]=21<128,这种组合方式已经能够满足要求。
第六遍调整,让第二维的3调整成2,第四维的3调整成2,新的调整矢量为[0,2,0,2],新的id~=0*64+2*16+0*4+2=34,pri_select_orde[34]=54<128,这种组合方式已经也能满足要求。
第七遍调整,让第二维的3调整成2,第三维的0调整成1,新的调整矢量为[0,2,1,3],新的id~=0*64+2*16+1*4+3=39,pri_select_orde[39]=192>128,这种组合方式不满足要求。
…
最后,遍历所有的16种调整方式,选择组合方式符合要求且加权均方误差最小的组合作为本阶段的输出。
由于遍历所有的16种调整方式可能获得多个满足要求的调整矢量,此时可以计算各个调整矢量的加权均方误差,选择加权均方误差最小的一个调整矢量;本实施例使用加权均方误差为判断的标准,但是并不排除采用其他数据作为判断的标准的情况;
在遍历的过程中,如果出于计算复杂度的考虑,也可以不对所有的16种调整方式进行循环,而是在找到若干个符合要求的组合方式后即停止循环,例如可以找到一个符合要求的组合方式后就停止循环。
若在设定的调整范围内无法获得使得调整矢量的综合索引号满足预置编码空间的调整量的值的组合,则将所述调整矢量所包含的调整量的值调整为预置取值。假设经过上述的16次调整可能仍然没有符合要求的组合方式,这时,强制将调整量组合方式调整为[1,1,1,1],由于[1,1,1,1]的id~=1*64+1*16+1*4+1=85,pri_select_orde[85]=0,因此,组合方式[1,1,1,1]总是符合要求的;当然也可以将调整量组合方式调整为[2,2,2,2]等其他能被7个比特所编码的组合方式。
本实施例在调整矢量对应的综合索引号不符合预置条件时,可以对调整矢量进行调整,使调整矢量符合预置条件,从而可以提高量化的效率。例如在编码空间不够时,可以通过对调整矢量进行调整,使调整后的调整矢量能够被有限的编码空间所编码,从而可以进一步降低对调整矢量的编码比特位数。
本发明进一步提供了矢量量化方法的实施例四,如图4所示,包括:
步骤401、获取待量化矢量,对待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
步骤402、按照待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合;选取的调整量组合对残差矢量的每一维设置有至少一个调整量的值;
步骤403、按照选取的调整量组合计算与残差矢量的部分或全部维一一对应的调整量的值,获得由部分或全部维的调整量的值组成的调整矢量;
步骤401~步骤403参照步骤301~步骤303执行。
步骤404、将调整矢量按照预置的分组方法分成若干个调整子矢量,每个调整子矢量由一个或一个以上的调整量组成,根据所包含的调整量的值确定每个调整子矢量的综合索引号,每个调整子矢量的综合索引号与待量化矢量对应。
由于直接对m维的调整矢量编码可能需要较大的编码空间,因而可以将调整矢量按照预置的分组方法分成若干组,每个组对应一个调整子矢量;具体分成几组,以及每组几个调整量都可以预先设置好,可以根据具体的需要确定如何分组。
例如,可以将16维的调整矢量按4维进行组合,分成4组,分别为1~4维,5~8维,9~12维,13~16维;由于共有28比特可用于编码,因此每组的编码比特为7比特。本实施例将16维均分成4组,在实际应用中可以根据具体的需要确定分成几组,以及各组的维度。
其中,调整子矢量的综合索引号可以通过如下流程获得:根据调整量的值计算该调整子矢量的原始索引号;从预置的优先组合表中获取与原始索引号对应的所述综合索引号。
调整量的取值范围是已知的,每个取值在取值范围内都有固定的位置,因而可以为取值范围内的值顺序进行编号,在调整量的值确定后,对应的编号也就确定,从而可以利用调整量的值的编号计算调整子矢量的原始索引号。
假设将16个残差矢量按每4维进行组合,分成4组,分别为1~4维,5~8维,9~12维,13~16维,每组的编码比特为7比特;以1~4维为例,假设各自的调整量编号为:index_adj_1、index_adj_2、index_adj_3、index_adj_4,则计算原始索引号id~=index_adj_1*64+index_adj_2*16+index_adj_3*4+index_adj_4;
由于需要在不够的编码空间中进行编码,因而需要将调整子矢量尽可能调整为出现概率较高的调整子矢量,而出现概率较高的调整子矢量对应的原始索引号可能并不是连续的,因而可以预置一个优先组合表,在组合表中将调整子矢量按照出现概率连续索引,一般来说,出现概率越高,在优先组合表中的综合索引号就越小,从而使出现概率越高的调整子矢量被编码的几率越高。
优选的,由于输入信号的分布是很不均匀的,大量的输入信号往往集中在少数的一级码书或二级码书周围,对于这些使用率高的一级码书或二级码书,可以分配更多的调整量和更多的调整量组合方式,而对于那些使用率较低的一级码书或二级码书,分配的调整量和调整量组合方式少一些,能进一步的提高量化质量。因此,在将调整矢量按照预置的分组方法分成若干个调整子矢量时,可以根据记录的N级量化时各级的码书,确定如何分组。因为,利用信号的统计分析结果,就可以知道各个各级码书的使用率,对使用率高的各级码书分配较多的调整子矢量编码空间,而对使用率低的各级码书分配较少的调整子矢量编码空间。由于是根据各级码书的使用率来分配调整子矢量空间,从而使使用率高的码书获得较宽的调整范围,提高了编码的性能。
因而可以预先为不同的各级码书确定不同的分组方法,例如对于一级码书的索引号为3,二级码书的索引号为4的情况,可以预置将16维的调整矢量分为4维、6维和6维的3个调整子矢量。在实际应用中,可以仅对部分码书的情况预先设置相应的分组方法;而对没有预置相应的分组方法的码书,则可以采用统一的分组方法进行分组,例如,统一的分组方法可以是将16维的调整矢量均分为4个调整子矢量。因而根据对待量化矢量进行N级量化时记录的各级码书的索引号,判断是否预置有相应的分组方法,如果有则可以使用相应的分组方法对调整矢量进行分组,如果没有,则按照统一的分组方法进行分组;从而使本发明实施例可以根据相应的各级码书确定相应的分组方法。
比如,假设一级码书128个,二级码书64个,1~4维、5~8维、9~12维、13~16维各分配64个调整量组合方式,总共用7+6+6*4=37比特进行编码。但如果我们改成对于前64个一级码书和前32个二级码书用76*64*64*64进行编码,后64个一级码书和前32个二级码书、前64个一级码书和后32个二级码书、后64个一级码书和后32个二级码书各用60*64*64*64进行编码,大约能够下降0.03个dB的谱失真。
本实施例中,由于采用调整矢量对残差矢量进行调整,有效扩大了残差矢量的动态范围,减小了失真度;并且对残差矢量的调整以调整矢量的形式进行,使得能够充分利用待量化矢量进行N级矢量量化后某些维度间依然存在的相关性来设计调整矢量,达到以较少的调整矢量数目实现较大的动态调整范围的目的;进一步,按照N级量化时获得的各级码书的索引号的全部或部分选取对应的调整量组合,使出现概率高的码书的残差矢量的调整范围更大,可以提高量化质量;并且,在将调整矢量进行分组,用分组对应的综合索引号代替矢量分组时,可以降低对调整矢量编码的比特位数。
实际应用中,矢量量化方法实施例四还可以包括如下步骤:
判断各个调整子矢量的综合索引号是否满足预置编码空间,若否,则调整该调整子矢量所包含的调整量的值,使得该调整子矢量的综合索引号满足预置编码空间。
从而在调整子矢量对应的综合索引号不符合预置编码空间时,可以对调整子矢量进行调整,使调整后的调整子矢量能够被有限的编码空间所编码,从而可以进一步降低对调整子矢量的编码比特位数,使调整子矢量符合预置条件,从而可以提高量化的效率。
本发明实施例还提供了矢量量化器,图5描述了本发明提供的矢量量化器实施例一的结构,包括:
残差矢量获取单元501,用于获取待量化矢量,对待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
选取单元502,用于按照待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合;
量化单元503,用于根据选取的调整量组合获得与待量化矢量对应的索引号。
由于本发明实施例可以从多个调整量组合中选取一个符合要求的调整量组合,从而可以对应不同的待量化矢量采用不同的调整量组合进行调整,可以提高量化质量,减少编码所需的编码空间。
图6描述了本发明提供的矢量量化器实施例二的结构,包括:
残差矢量获取单元601,用于获取待量化矢量,对待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
选取单元602,用于按照待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合;选取的调整量组合对残差矢量的每一维设置有至少一个调整量的值;
调整矢量获取单元603,用于按照选取的调整量组合计算与残差矢量的部分或全部维一一对应的调整量的值,获得由部分或全部维的调整量的值组成的调整矢量;
量化输出单元604,用于根据调整矢量所包含的调整量的值确定调整矢量的综合索引号。
本实施例中,由于采用调整矢量对残差矢量进行调整,有效扩大了残差矢量的动态范围,减小了失真度;并且对残差矢量的调整以调整矢量的形式进行,使得能够充分利用待量化矢量进行N级矢量量化后某些维度间依然存在的相关性来设计调整矢量,达到以较少的调整矢量数目实现较大的动态调整范围的目的;进一步,按照N级量化时获得的各级码书的索引号的全部或部分选取对应的调整量组合,使出现概率高的码书的残差矢量的调整范围更大,可以提高量化质量;并且,在将调整矢量进行分组,用分组对应的综合索引号代替矢量分组时,可以降低对调整矢量编码的比特位数。
实际应用中,本发明实施例提供的矢量量化器实施例二可以进一步包括:调整单元,用于判断各个调整矢量的综合索引号是否满足预置编码空间,若否,则调整该调整矢量所包含的调整量的值,使得该调整矢量的综合索引号满足预置编码空间。
通过调整单元可以在调整矢量对应的综合索引号不符合预置条件时,可以对调整矢量进行调整,使调整矢量符合预置条件,从而可以提高量化的效率。例如在编码空间不够时,可以通过对调整矢量进行调整,使调整后的调整矢量能够被有限的编码空间所编码,从而可以进一步降低对调整矢量的编码比特位数。
图7描述了本发明提供的矢量量化器实施例三的结构,包括:
残差矢量获取单元701,用于获取待量化矢量,对待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
选取单元702,用于按照待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合;选取的调整量组合对残差矢量的每一维设置有至少一个调整量的值;
调整矢量获取单元703,用于按照选取的调整量组合计算与残差矢量的部分或全部维一一对应的调整量的值,获得由部分或全部维的调整量的值组成的调整矢量;
量化输出单元704,用于将调整矢量按照预置的分组方法分成若干个调整子矢量,每个调整子矢量由一个或一个以上的调整量组成,根据所包含的调整量的值确定每个调整子矢量的综合索引号,每个调整子矢量的综合索引号与待量化矢量对应。
本实施例中,由于采用调整矢量对残差矢量进行调整,有效扩大了残差矢量的动态范围,减小了失真度;并且对残差矢量的调整以调整矢量的形式进行,使得能够充分利用待量化矢量进行N级矢量量化后某些维度间依然存在的相关性来设计调整矢量,达到以较少的调整矢量数目实现较大的动态调整范围的目的;进一步,按照N级量化时获得的各级码书的索引号的全部或部分选取对应的调整量组合,使出现概率高的码书的残差矢量的调整范围更大,可以提高量化质量;并且,在将调整矢量进行分组,用分组对应的综合索引号代替矢量分组时,可以降低对调整矢量编码的比特位数。
实际应用中,本发明实施例提供的矢量量化器实施例三可以进一步包括:调整单元,用于判断各个调整子矢量的综合索引号是否满足预置编码空间,若否,则调整该调整子矢量所包含的调整量的值,使得该调整子矢量的综合索引号满足预置编码空间。
通过调整单元可以在调整子矢量对应的综合索引号不符合预置条件时,可以对调整子矢量进行调整,使调整子矢量符合预置条件,从而可以提高量化的效率。例如在编码空间不够时,可以通过对调整子矢量进行调整,使调整后的调整子矢量能够被有限的编码空间所编码,从而可以进一步降低对调整子矢量的编码比特位数。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤:
获取待量化矢量,对所述待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
根据所述待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合;
根据选取的所述调整量组合获得与所述待量化矢量对应的索引号。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的矢量量化方法及矢量量化器进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (17)
1.一种矢量量化方法,其特征在于,包括:
获取待量化矢量,对所述待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
根据所述待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合,所述调整量组合用于对所述待量化矢量进行调整;
根据选取的所述调整量组合获得与所述待量化矢量对应的索引号。
2.如权利要求1所述的矢量量化方法,其特征在于,选取的所述调整量组合对所述残差矢量的每一维设置有至少一个调整量的值;
所述根据选取的所述调整量组合获得与所述待量化矢量对应的索引号具体为:
按照选取的所述调整量组合计算与所述残差矢量的部分或全部维一一对应的调整量的值,获得由所述部分或全部维的调整量的值组成的调整矢量;
根据所述调整矢量所包含的调整量的值确定所述调整矢量的综合索引号,所述综合索引号与所述待量化矢量对应。
3.如权利要求2所述的矢量量化方法,其特征在于,根据所述调整矢量所包含的调整量的值确定所述调整矢量的综合索引号后进一步包括:
判断所述综合索引号是否满足预置编码空间,若否,则调整所述调整矢量所包含的调整量的值,使得所述调整矢量的综合索引号满足预置编码空间。
4.如权利要求3所述的矢量量化方法,其特征在于,所述对调整矢量所包含的调整量的值进行调整的步骤具体为:在设定的调整范围内对各个调整量的值进行调整。
5.如权利要求4所述的矢量量化方法,其特征在于:每个调整量的全部取值具有顺序编号;所述在设定的调整范围内对各个调整量的值进行调整具体为:
若调整量的值编号较大,将该调整量的值调整为所述调整范围内编号较小的值;
若调整量的值编号较小,将该调整量的值调整为所述调整范围内编号较大的值。
6.如权利要求3所述的矢量量化方法,其特征在于,在所述对调整矢量所包含的调整量的值进行调整的步骤中,获得一个以上使得调整矢量的综合索引号满足预置编码空间的调整量的值的组合;
根据各个调整量的值的组合与所述残差矢量的误差确定调整后的调整矢量。
7.如权利要求3所述的矢量量化方法,其特征在于,所述对调整矢量所包含的调整量的值进行调整的步骤包括:若在设定的调整范围内无法获得使得调整矢量的综合索引号满足预置编码空间的调整量的值的组合,则将所述调整矢量所包含的调整量的值调整为预置取值。
8.如权利要去3所述的矢量量化方法,其特征在于,所述根据调整量的值确定调整矢量的综合索引号的步骤包括:
根据所述调整量的值计算所述调整矢量的原始索引号;
从预置的优先组合表中获取与所述原始索引号对应的所述综合索引号。
9.如权利要求1所述的矢量量化方法,其特征在于,所述按照所述待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合的步骤中,具体是按照所述部分或全部的各级码书的索引号所处的索引号区间,从预置的至少两个调整量组合中选取一个调整量组合。
10.如权利要求1所述的矢量量化方法,其特征在于,所述按照所述待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合的步骤中,具体是按照所述部分或全部的各级码书的索引号,根据预置的码书的索引号与调整量组合的映射表从预置的至少两个调整量组合中选取一个调整量组合。
11.如权利要求1所述的矢量量化方法,其特征在于,选取的所述调整量组合对所述残差矢量的每一维设置有至少一个调整量的值;
所述根据选取的所述调整量组合获得与所述待量化矢量对应的索引号具体为:
按照选取的所述调整量组合计算与所述残差矢量的部分或全部维一一对应的调整量的值,获得由所述部分或全部维的调整量的值组成的调整矢量;
将所述调整矢量按照预置的分组方法分成若干个调整子矢量,每个调整子矢量由一个或一个以上的调整量组成,根据所包含的调整量的值确定每个调整子矢量的综合索引号,所述每个调整子矢量的综合索引号与所述待量化矢量对应。
12.如权利要求11所述的矢量量化方法,其特征在于,根据所包含的调整量的值确定每个调整子矢量的综合索引号后进一步包括:
判断各个调整子矢量的综合索引号是否满足预置编码空间,若否,则调整该调整子矢量所包含的调整量的值,使得该调整子矢量的综合索引号满足预置编码空间。
13.一种矢量量化器,其特征在于,包括:
残差矢量获取单元,用于获取待量化矢量,对所述待量化矢量进行N级量化,获得N级量化后的残差矢量,其中N为正整数;
选取单元,用于按照所述待量化矢量进行N级量化时获得的各级码书的索引号中的部分或全部,从预置的至少两个调整量组合中选取一个调整量组合,所述调整量组合用于对所述待量化矢量进行调整;
量化单元,用于根据选取的所述调整量组合获得与所述待量化矢量对应的索引号。
14.如权利要求13所述的矢量量化器,其特征在于,选取的所述调整量组合对所述残差矢量的每一维设置有至少一个调整量的值;
所述量化单元包括:
调整矢量获取单元,用于按照选取的所述调整量组合计算与所述残差矢量的部分或全部维一一对应的调整量的值,获得由所述部分或全部维的调整量的值组成的调整矢量;
量化输出单元,用于根据所述调整矢量所包含的调整量的值确定所述调整矢量的综合索引号。
15.如权利要求14所述的矢量量化器,其特征在于,还包括:
调整单元,用于判断所述调整矢量的综合索引号是否满足预置编码空间,若否,则调整该调整矢量所包含的调整量的值,使得该调整矢量的综合索引号满足预置编码空间。
16.如权利要求13所述的矢量量化器,其特征在于,选取的所述调整量组合对所述残差矢量的每一维设置有至少一个调整量的值;
所述量化单元包括:
调整矢量获取单元,用于按照选取的所述调整量组合计算与所述残差矢量的部分或全部维一一对应的调整量的值,获得由所述部分或全部维的调整量的值组成的调整矢量;
量化输出单元,用于将所述调整矢量按照预置的分组方法分成若干个调整子矢量,每个调整子矢量由一个或一个以上的调整量组成,根据所包含的调整量的值确定每个调整子矢量的综合索引号,所述每个调整子矢量的综合索引号与所述待量化矢量对应。
17.如权利要求16所述的矢量量化器,其特征在于,还包括:
调整单元,用于判断各个调整子矢量的综合索引号是否满足预置编码空间,若否,则调整该调整子矢量所包含的调整量的值,使得该调整子矢量的综合索引号满足预置编码空间。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710166471XA CN101436408B (zh) | 2007-11-13 | 2007-11-13 | 矢量量化方法及矢量量化器 |
PCT/CN2008/072793 WO2009056047A1 (en) | 2007-10-25 | 2008-10-23 | A vector quantizating method and vector quantizer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710166471XA CN101436408B (zh) | 2007-11-13 | 2007-11-13 | 矢量量化方法及矢量量化器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101436408A CN101436408A (zh) | 2009-05-20 |
CN101436408B true CN101436408B (zh) | 2012-04-25 |
Family
ID=40710815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710166471XA Active CN101436408B (zh) | 2007-10-25 | 2007-11-13 | 矢量量化方法及矢量量化器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101436408B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4860355A (en) * | 1986-10-21 | 1989-08-22 | Cselt Centro Studi E Laboratori Telecomunicazioni S.P.A. | Method of and device for speech signal coding and decoding by parameter extraction and vector quantization techniques |
US5970443A (en) * | 1996-09-24 | 1999-10-19 | Yamaha Corporation | Audio encoding and decoding system realizing vector quantization using code book in communication system |
US6009387A (en) * | 1997-03-20 | 1999-12-28 | International Business Machines Corporation | System and method of compression/decompressing a speech signal by using split vector quantization and scalar quantization |
CN1420487A (zh) * | 2002-12-19 | 2003-05-28 | 北京工业大学 | 1kb/s线谱频率参数的一步插值预测矢量量化方法 |
CN1659785A (zh) * | 2002-05-31 | 2005-08-24 | 沃伊斯亚吉公司 | 信号多速率点阵矢量量化的方法和*** |
CN101030377A (zh) * | 2007-04-13 | 2007-09-05 | 清华大学 | 提高声码器基音周期参数量化精度的方法 |
-
2007
- 2007-11-13 CN CN200710166471XA patent/CN101436408B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4860355A (en) * | 1986-10-21 | 1989-08-22 | Cselt Centro Studi E Laboratori Telecomunicazioni S.P.A. | Method of and device for speech signal coding and decoding by parameter extraction and vector quantization techniques |
US5970443A (en) * | 1996-09-24 | 1999-10-19 | Yamaha Corporation | Audio encoding and decoding system realizing vector quantization using code book in communication system |
US6009387A (en) * | 1997-03-20 | 1999-12-28 | International Business Machines Corporation | System and method of compression/decompressing a speech signal by using split vector quantization and scalar quantization |
CN1659785A (zh) * | 2002-05-31 | 2005-08-24 | 沃伊斯亚吉公司 | 信号多速率点阵矢量量化的方法和*** |
CN1420487A (zh) * | 2002-12-19 | 2003-05-28 | 北京工业大学 | 1kb/s线谱频率参数的一步插值预测矢量量化方法 |
CN101030377A (zh) * | 2007-04-13 | 2007-09-05 | 清华大学 | 提高声码器基音周期参数量化精度的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101436408A (zh) | 2009-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1051392C (zh) | 矢量量化器方法 | |
US8019601B2 (en) | Audio coding device with two-stage quantization mechanism | |
CN103778918B (zh) | 音频信号的比特分配的方法和装置 | |
CN103544957A (zh) | 音频信号的比特分配的方法和装置 | |
CN103380455A (zh) | 对音频信号的高效编码/解码 | |
EP1595248B1 (en) | System and method for enhancing bit error tolerance over a bandwith limited channel | |
CN101261835B (zh) | 基于超帧模式的多矢量多码本尺寸联合优化方法 | |
KR20050112796A (ko) | 디지털 신호 부호화/복호화 방법 및 장치 | |
EP2697795B1 (en) | Adaptive gain-shape rate sharing | |
CN101419802B (zh) | 用于语音编码的矢量量化方法及矢量量化器 | |
US20040176951A1 (en) | LSF coefficient vector quantizer for wideband speech coding | |
EP2546994A1 (en) | Encoding method, decoding method, device, program, and recording medium | |
US8140343B2 (en) | Method, device and system for signal encoding and decoding | |
CN101562015A (zh) | 音频处理方法及装置 | |
CN101436408B (zh) | 矢量量化方法及矢量量化器 | |
CN1124588C (zh) | 信号编码方法及设备 | |
US8502708B2 (en) | Encoding method and decoding method, and devices, program and recording medium for the same | |
CN101271691B (zh) | 一种时域噪声整形工具启动判决方法及装置 | |
US9031851B2 (en) | Method and an apparatus for processing a signal | |
JPH0761044B2 (ja) | 音声符号化法 | |
KR19980034878A (ko) | 가중치를 가진 벡터 양자화 장치 및 방법 | |
US20090326935A1 (en) | Method of treating voice information | |
CN101430879B (zh) | 一种多速率语音频编码的方法 | |
WO2009056047A1 (en) | A vector quantizating method and vector quantizer | |
CN101673547A (zh) | 编码方法、解码方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |