发明名称 一种G.729到AMR12.2速率的转码方法
摘要 本发明公开了一种G.729到AMR12.2速率的转码方法,属于信号处理技术领域。本发明将输入比特流输入到G.729AB解码单元,利用G.729AB解码单元对输入比特流进行解码,然后将解码得到的帧类型、LSP系数、基音延时、固定码本矢量、码本增益以及合成语音输入G.729AB到AMR‑12.2kbps转码单元,对每一部分进行相应的转码,最后将转码后的各个参数输入到AMR‑12.2kbps编码单元,按照AMR‑12.2kbps量化方法重新量化后,写入到输出比特流。
申请公布号 CN103457703B 申请公布日期 2017.03.01
申请号 CN201310379944.X 申请日期 2013.08.27
申请人 大连理工大学 发明人 陈喆;殷福亮;李腾
分类号 H04L1/00(2006.01)I 主分类号 H04L1/00(2006.01)I
代理机构 大连东方专利代理有限责任公司 21212 代理人 曲永祚;李洪福
主权项 一种G.729到AMR12.2速率的转码方法,其特征在于:将输入比特流输入到G.729AB解码单元,利用G.729AB解码单元对输入比特流进行解码,然后将解码得到的帧类型、LSP系数、基音延时、固定码本矢量、码本增益以及合成语音输入G.729AB到AMR‑12.2kbps转码单元,对每一部分进行相应的转码,最后将转码后的各个参数输入到AMR‑12.2kbps编码单元,按照AMR‑12.2kbps量化方法重新量化后,写入到输出比特流;G.729AB到AMR‑12.2kbps转码单元的工作过程为:(1)VAD部分屏蔽AMR编码时的VAD操作,利用G.729AB解码得到的帧类型信息判断AMR‑12.2kbps编码时VAD的信息,具体作法如下:1)若G.729AB解码得到的帧类型ftype=1,则VAD_flag<sub>G.729AB</sub>=1;否则,VAD_flag<sub>G.729AB</sub>=0;2)根据连续两帧G.729AB的VAD_flag判断AMR编码端VAD_flag的值,VAD_flag的值为VAD_flag<sub>AMR</sub>=VAD_flag<sub>G.729AB_1</sub>||VAD_flag<sub>G.729AB_2</sub>;     (11)这里,VAD_flag<sub>G.729AB_1</sub>表示第一帧G.729AB的VAD信息,VAD_flag<sub>G.729AB_2</sub>表示第二帧G.729AB的VAD信息;(2)LSP部分将G.729AB第2n‑1帧和第2n帧的LSP参数,传递给AMR‑12.2kbps第n帧的第二子帧和第四子帧,即<img file="FDA0001111466460000011.GIF" wi="1166" he="95" /><img file="FDA0001111466460000012.GIF" wi="1166" he="95" />其中,<img file="FDA0001111466460000013.GIF" wi="147" he="62" />表示G.729AB第2n‑1帧的LSP系数,<img file="FDA0001111466460000014.GIF" wi="144" he="63" />表示G.729AB第2n帧的LSP系数,<img file="FDA0001111466460000015.GIF" wi="131" he="71" />表示AMR‑12.2kbps第n帧的第二子帧的LSP系数,<img file="FDA0001111466460000016.GIF" wi="134" he="71" />表示AMR‑12.2kbps第n帧的第四子帧的LSP系数;第一和第三子帧的LSP系数由下式得到:<img file="FDA0001111466460000017.GIF" wi="1357" he="71" /><img file="FDA0001111466460000018.GIF" wi="1366" he="69" />各子帧LSP系数的奇数项记为q<sub>2i‑1</sub>,偶数项记为q<sub>2i</sub>,各子帧的LSP系数转换为对应的LP系数a<sub>i</sub>的过程均可由如下步骤实现:1)循环变量i取值范围从1到5,每次增加1;每次变量i循环时,执行f<sub>1</sub>(i)=‑2q<sub>2i‑1</sub>f<sub>1</sub>(i‑1)+2f<sub>1</sub>(i‑2)操作;2)循环变量j取值范围从i‑1到1,每次减少1;每次循环变量j循环时,执行f<sub>1</sub>(j)=f<sub>1</sub>(j)‑2q<sub>2i‑1</sub>f<sub>1</sub>(j‑1)+f<sub>1</sub>(j‑2)操作;其中,f<sub>1</sub>(0)=1,f<sub>1</sub>(‑1)=0;将q<sub>2i‑1</sub>替换成q<sub>2i</sub>即可得到f<sub>2</sub>(i);3)由f<sub>1</sub>(i),f<sub>2</sub>(i)计算f<sub>1</sub>'(i),f<sub>2</sub>'(i):f<sub>1</sub>'(i)=f<sub>1</sub>(i)+f<sub>1</sub>(i‑1),i=1,...,5;f<sub>2</sub>'(i)=f<sub>2</sub>(i)+f<sub>2</sub>(i‑1),i=1,…,54)计算LP系数:<img file="FDA0001111466460000021.GIF" wi="926" he="151" />(3)开环基音搜索部分将G.729AB第2n‑1帧和第2n帧的第一子帧闭环基音参数作为AMR‑12.2kbps第n帧的两个开环基音参数:<img file="FDA0001111466460000022.GIF" wi="1326" he="71" /><img file="FDA0001111466460000023.GIF" wi="1325" he="71" />(4)自适应码本搜索部分1)计算基音延时的搜索范围[t0_min,t0_max]在第一/第三子帧,t0_min=max{18,T<sub>OP</sub>‑3},t0_max=min{143,T<sub>OP</sub>+3};在第二/第四子帧,t0_min=max{18,T<sub>pmi</sub>‑5},t0_max=min{143,T<sub>pmi</sub>+4},其中T<sub>pmi</sub>是前一子帧基音分数延时的最大整数部分;2)计算LP滤波器的残差信号res<sub>LP</sub>(n):<img file="FDA0001111466460000024.GIF" wi="1350" he="127" />其中,s(n)是G.729AB解码后得到的合成语音;<img file="FDA0001111466460000025.GIF" wi="43" he="55" />是量化了的LP系数,其中i=1,2,…,10;3)将残差信号res<sub>LP</sub>(n)通过感知加权合成滤波器h(n),从而得到用于自适应码本搜索的目标信号x(n),即x(n)=res<sub>LP</sub>(n)*h(n);     (19)4)计算x(n)与h(n)的相关:<img file="FDA0001111466460000031.GIF" wi="1350" he="127" />5)将LP残差信号赋值给激励信号u(n):u(n)=res<sub>LP</sub>(n),n=0,…,39;6)计算R(k):<img file="FDA0001111466460000032.GIF" wi="1478" he="127" />7)求出R(k)最大值对应的k,即为最佳整数基音延时;8)在最佳整数基音延时k附近以分数1/6为步长内插R(k):<img file="FDA0001111466460000033.GIF" wi="1606" he="127" />其中,b<sub>24</sub>是内插滤波器系数,t=0,…,5分别对应分数0、1/6、2/6、3/6、‑2/6和‑1/6;搜索R(k)<sub>t</sub>的最大值所对应的t,即为最佳分数基音延时;9)确定基音延时后,在给出的整数延时k和分数延时t处内插过去的激励u(n)来计算自适应码本矢量v(n):<img file="FDA0001111466460000034.GIF" wi="1541" he="199" />其中,b<sub>60</sub>是内插滤波器系数;10)计算自适应码本的增益:<img file="FDA0001111466460000035.GIF" wi="1221" he="261" />其中,y(n)=v(n)*h(n);(5)固定码本搜索部分1)计算固定码本搜索的目标信号x<sub>2</sub>(n):<img file="FDA0001111466460000036.GIF" wi="1245" he="71" />其中,y(n)=v(n)*h(n)是自适应码本矢量滤波,<img file="FDA0001111466460000037.GIF" wi="54" he="69" />是量化了的自适应码本增益;2)计算x<sub>2</sub>(n)与h(n)的相关信号d(n):<img file="FDA0001111466460000038.GIF" wi="1237" he="131" />3)计算h(n)的自相关矩阵φ,其中φ的每个元素按下式计算:<img file="FDA0001111466460000039.GIF" wi="1526" he="131" />4)计算量化信号b(n):<img file="FDA0001111466460000041.GIF" wi="1534" he="215" />5)计算符号信号S(n)=sgn[b(n)];6)脉冲搜索位置预选;按量化信号|b(n)|从大到小的顺序重置每个轨道的脉冲位置;用前M区的脉冲位置作为搜索脉冲的候选,取M=5;7)记录|b(n)|最大值的位置及其所在轨道数;将i0固定在所有轨道中|b(n)|最大值的位置,i1固定在下一轨道中|b(n)|最大值的位置;8)在候选的脉冲搜索位置上,按照AMR编码标准里的深度优先树方法搜索出其它8个脉冲的位置,即脉冲{i2,i3}、{i4,i5}、{i6,i7}、{i8,i9}在依次轨道上成对地、顺序地在嵌套环中搜索出;搜索准则是使下式最大:<img file="FDA0001111466460000042.GIF" wi="1310" he="289" />其中,m<sub>i</sub>是第i个脉冲的位置,N是脉冲的个数,N=10;9)计算固定码本矢量c(n):<img file="FDA0001111466460000043.GIF" wi="1294" he="131" />其中,S<sub>i</sub>是第i个脉冲的符号,m<sub>i</sub>是第i个脉冲的位置,N是脉冲的个数;10)计算固定码本增益g<sub>c</sub>:<img file="FDA0001111466460000044.GIF" wi="1310" he="119" /><img file="FDA0001111466460000045.GIF" wi="1085" he="125" />
地址 116024 辽宁省大连市高新园区凌工路2号