- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Android的G.729优化算法的研究与实现
朱雷坚彭 宏
浙江省通信网应用技术研究重点实验室,浙江杭州310023
摘要:G.729算法是一种高性能的语音压缩算法,但较高的算法复杂度限制了它的应用。该文以
Android点对点实时语音通信为例,研究了G.729优化算法,并且在Android平台上实现了该优化
算法。测试结果证明,优化后的G.729算法,大大降低了语音处理的时间,满足点对点实时语音通
信的需求。
关键词:语音压缩;优化;安卓
TN912.3 A
杭州电子科技大学学报 2012年
首先,它利用开环基音搜索得到最佳开环延迟Top;然后,在后续的自适应码书搜索中,将第一子帧的音
调延迟T1的搜索范围限定在Top附近的小范围内,而第二子帧的延迟他的搜索范围又在第一子帧选
择的延迟的附近。通过这样的多级运算最终求得两子帧的音调延迟。开环基音搜索(第一级)的方法,
是通过加权话音信号s∞(凡)的相关系数来进行计算的。相关系数的表达式如下:
79
k=20,21,…,143 (1)
R(k)=乏:sw(n)sw(n—k)
n。。。—=—0
对该搜索算法进行优化,可以将其中的迭代次数从80次降到40次,而且求解上述相关系数的目的
是为了进行比较并得到最大值,最后再将最大值归一化,因此,适当降低迭代次数对最终的结果影响不
大,优化后的表达式如下:
39
k=20,21,…,143 (2)
尺(.|})=乏:s∞(2,1)s∞(2n一忌)
n。。。—=—0
2.2固定码书搜索优化
在G.729的编码中,码书的搜索占据了绝大部分的运算量。对此,本文研究了一种自适应子矢量
共扼结构代数码书算法”】。这种码书的编制方法为:将原G.729固定码书分裂成两个4维的子矢量码
书,每个子矢量用40比特表示。第一个子矢量码书结构如表1所示。
表1 第一个子矢量码书结构表
由于语音信号的相关性较强,相邻子帧的激励码字在一定程度上有较短时间的延续。因此,可以考
虑用前一子帧的激励码字,对当前子帧激励码字做平滑处理。所以,可以将第二个子矢量码书设计成一
个自适应矢量码书,用来存储前一子帧的子矢量码书的激励码字。通过将两个子矢量码书的激励码字
组合来构成语音信号子帧的激励码字,省去了G.729固定码书搜索对激励码字的基音预测滤波平滑处
理,降低了运算复杂度。激励生成过程如图l所示。
图1 自适应子矢量共轭结构代数码书算法码字生成图
构成当前子帧的激励码字C(n)。
这种白适应子矢量共扼结构代数码书的激励码字与原G.729固定码书的激励码字具有相同维数
和结构,因此完全适用于G.729固定码书增益及符号的计算。从表1可以计算出子矢量1固定码书长
第5期 朱雷坚等:基于Android的G.729优化算法的研究与实现 91
度为9,因此只需用9个bit来传输固定码书的索引。因此固定码书索引的计算需做相应的调整,原固
定码书的表达式变为:
c’=㈤+4(嚣)+·6(m2,)+64㈩(2{m03)+j)【) (3)
由于优化的码书矢量的非零位m比原G.729固定码书矢量减少了一半,因此固定码书搜索的计算
量下降了一半左右。此外,每一子帧的固定码书索引从原来的13bit降低到现在的9bit,这样两个子帧
又比原来减少8bit的数据量,编码速率从原来的8kbit/s降低到现在的7.2kbit/s。
3 G.729算法移植
Android调用的SO动态库文件【6J。
3.1编写Java接口函数
Java接口函数的主要作用是在Android工程中声明JNI接El,
文档评论(0)