您的位置:首页 > 其它

g729源码分析-7-增益量化

2012-05-03 17:59 337 查看
现在来分析g729的增益量化,

这里包含两个增益,一个是自适应码本的增益gp,一个是固定码本的增益gc

由于自适应码本与固定码本已经被搜索出来了,

就可以根据这两级码本,与反量化的Az系数进行卷积,得到解码的语音信号(包含未知变量gc与gp)

利用这个解码的语音信号与目标语音信号方差最小为准则,

在增益码本里做搜索,搜索出最佳增益

即itu文档中的3.9节,公式63.

笔者把这个公式简略推导列在下面(实际上这个公式太简单了,根本不需要推导,读者即可看出端倪)

首先我们把目标语音信号记作x

反量化Az系统的冲激响应已经之前的代码中得到了,记作h
---h
的计算过程,笔者在这个系列的第五章节分析过了

自适应码本与h
的卷积记作y1

固定码本与h
的卷码记作y2

自然,我们可以这么表示解压的语音信号与目标语音信号的方差(是方差吧?笔者的统计学不过关,呵呵)

E = Σ (x
- gp*y1
- gc*y2
)^2 --- 笔者注:^2表示平方

展开

E = Σ (x
^2 + (gp*y1
)^2 + (gc*y2
)^2 - 2gp*x
*y1
- 2gc*x
*y2
+ 2gp*gc*y1
*y2
)

这就是itu文档里的式63,只不过itu是用矩阵乘法来表达的

Corr_xy2:

这个函数会计算出式63中相应的已经系数如 (y1
)^2, -2x
*y
等 其中x
^2是不需要计算的,

因为在搜索过程,对于当前子帧,这个项相当于常数项

也就是我们只需要将码本里的增益gp gc代入,计算出最小的E即可

这里itu实际有做一些预估搜索,即通过一个估值手段,来缩小码本的搜索范围为原来的1/4.

笔者将在下一章节分析这一块内容

林绍川

2012.5.3于杭州
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: