(信号与信息处理专业论文)基于通用dsp的g729语音编解码算法的实现与优化.pdf_第1页
(信号与信息处理专业论文)基于通用dsp的g729语音编解码算法的实现与优化.pdf_第2页
(信号与信息处理专业论文)基于通用dsp的g729语音编解码算法的实现与优化.pdf_第3页
(信号与信息处理专业论文)基于通用dsp的g729语音编解码算法的实现与优化.pdf_第4页
(信号与信息处理专业论文)基于通用dsp的g729语音编解码算法的实现与优化.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(信号与信息处理专业论文)基于通用dsp的g729语音编解码算法的实现与优化.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着i p 技术的不断发展,v o i p 即i p 语音技术,在近年来得到了广泛的应用, 并受到越来越多人的青睐。语音编码算法是i p 电话的关键技术之一。i t u tg 7 2 9 语音压缩编码标准是目前应用广泛的v o i p 语音数字信号处理标准。该标准以线 性预测和矢量量化算法为基础。根据该标准的算法得到的语音编码能在降低语音 码率的同时获得较好的语音质量。d s p s 以其极高的运算速度获得了越来越广泛 的应用,并在技术上不断取得突破。本课题以语音编码、i t u tg 7 2 9 语音编码标 准、数字信号处理器1 m s 3 2 0 c 6 7 1 1 为理论和硬件基础,研究c z 7 2 9 语音压缩编 码算法和该算法的d s p s 实时实现。通过对各种优化手段的研究和应用,最终实 现了对g 7 2 9 语音压缩编码算法的移植与优化,并在s i m u l a t o r 和d s k 上实现了 算法的实时仿真和硬件实验。通过仿真和实验,也验证了c t 7 2 9 的可行性和其低 码率、高音质的特点。 关键字:v o i p :语音编码;g 7 2 9 :数字信号处理器;c c s ;优化 a c c o m p a n i e dw i t ht h ed e v e l o p m e n to fi p , v o i c eo v e ri ph a sb e e na p p l i e dw i d e l y a l lo v e rt h ew o r l d ,a n di sp r e f e r r e db ym o r ea n dm o r ep e o p l e o n eo f 血ek e y t e c h n o l o g i e so f v o i pi st h ep r o c e s s i n go f t h es p e e c hs i g n a l t h u s ,i t u - tg 7 2 9i so n e o ft h es t a n d a r d st h a tc a np r o c e s ss p e e c hs i g n a le f f i c i e n t l y t h i ss t a n d a r di sb a s e do n l i n e a r - p r e d i c t i o n - a n a l y s i sa n dv e c t o r - q u a n t i z a t i o n n l es p e e c hs i g n a le n c o d e db y t h i ss t a n d a r dc a nb et r a n s m i t t e da tt h er a t eo f8 k b i t s w h i l et h eq u a l i t yo f t h es p e e c hi s g o o d n o wd s p s ,w h i c hh a v eh i g hp e r f o r m a n c ei nd i g i t a ls i g m lp r o c e s s i n g ,a r et h e m o s tf a v o r i t ea p p l i c a t i o ni nv o l ea n dt h ed e v e l o p m e n to f d s p si ss or a p i d l yt h a tt h e y h a v eb e e nc h a n g i n gt h ew o d d t h et h e o r yo fs p e e c hc o d i n g ,i t u - tq 7 2 9a n d t m s 3 2 0 c 6 7 11a r et h ef o u n d a t i o no ft h i st a s k t h ep u r p o s eo ft h i st a s ki st or e s e a r c h t h ea r i t h m e t i co fg 7 2 9a n dr e a l i z et h es t a n d a r di nr e a lt i m e f i n a l l v - t h r o u g ht h es t u d y a n dt h ea p p l i c a t i o no fo p t i m i 瘟a gs t r a t e g y , r e f e r e n c ec o d eo fg 7 2 9i ncl a n g u a g ei s t r a n s f e r r e d ,o p t i m i z e d a n dt h et a s ki ss u c c e s s f u l l yr e a l i z e do nb o t ht l l es i m u l a t o ra n d c 6 7 11 d s k a n dt h ec h a r a c t e r i s t i e so f t h eg 7 2 9a r ev e r i f i e dt h r o u g ht h i st a s k k e yw o r d s :v o i p ;s p e e c hc o d i n g ;c t 7 2 9 ;d i g i t a ls i g n a lp r o c e s s o r s ;c c s ;o p t i m i z e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得墨壅盘茎或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:4 浩 签字日期: m 年月加日 学位论文版权使用授权书 本学位论文作者完全了解苤叠盘壁有关保留、使用学位论文的规定。 特授权鑫壅盘茔可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:穆涛导师签名:黼 签字日期:扫噼9 月如曰 签字日期: 孙步年彦月2 。日 第一章语音编码与v o i p 1 1v 0 l p 第一章语音编码与v o i p 1 1 1v o i p 的发展情况 i p 是大家所熟悉的因特网协议i n t e r n e tp r o t o c o l 的缩写。随着网络技术的 不断发展,i p 已经无处不在,而且正朝着更高级的阶段发展。在有些地区或实验 室i p v 6 已经得到应用或测试。现在,i p 正在改变着我们的生活方式,正在使生活 变得更加丰富多彩,正在使人类的活动变得更加灵活。“3 随着i p 技术的不断发展,v o i p ( v o i c eo v e ri p ) 即i p 语音技术,在近年来 得到了广泛的应用,并受到越来越多人的青睐。i p 电话是一种数字电话,是技术 创新的一种通信服务业务。它把语音、压缩编码、打包分组、分配路由、存储交 换、解包解压等交换处理在i p 网或互联网上实现语音通信。与平时我们所说的电 话相比,i p 电话的最大特点是其采用分组交换技术,这使得通话成本降低,链路 利用率提高,业务承载尤其是数据业务的承载性能大幅提高。 从普遍意义上讲v o i p 的关键技术包括:0 1 信令技术,包括i t u th 3 2 3 和i e t f 会话初始化协议s i p 4 ( s e s s i o n i n i t i a t i o np r o t o c 0 1 ) 两套标准体系,还涉及到进行实时同步连续媒体流传输 控制的实时流协议t r s p 。 媒体编码技术,包括流行的g 7 2 3 1 、g 7 2 9 ,g 7 2 9 a 话音压缩编码算法和 m p e g - i i 多媒体压缩技术。 媒体实时传输技术,主要采用实时传输协议r t p 。 业务质量保障技术,采用资源预留协议r s v p 和用于业务质量监控的实时传 输控制协议r t c p 来避免网络拥塞,保障通话质量。 网络传输技术,主要是t c p 采i u d p 。 此外还涉及到分组重建技术和时延抖动平滑技术、动态路由平衡传输技术、 网关互联技术( 包括媒体互通和控制信令互通) 、网络管理技术( s n m p ) 以及安 全认证和计费技术等等。 第一章语音编码与v o i p v o i p 技术最初只是一种互联网上的增值应用,形式也较为简单。随着互联网 的普及,其在商业运营中的应用价值被人们发现,很多新兴的电信运营商将v o i p 技术引入到电信运营中,并在上个世纪的最后几年内取得了爆炸式的增长。 从1 9 9 9 年开始,国内电信运营商也展开了建设基于h 3 2 3 协议的i p 电话长途 网络的高潮。最初的i p 电话长途网络的接入必须通过传统电路交换网来完成,限 制了业务的发展。由此提出将原有的h 3 2 3 协议中的网关功能进行分解 ( m g c p h 2 4 8 协议) ,还有公司提出了与h 3 2 3 协议并行发展的会话启动协议( s i p 协议) 。这些协议的提出解决了将i p 语音包直接传送到用户终端时存在的一些问 题。 目前国内已有的v o i p 技术虽然有各种各样的实现方式,但都采用t c p i p 协议 作为传输层协议,而且依据的通信协议基本是致的,如h 3 2 3 协议、h 2 4 8 m g c p 协议、s i p 协议等。目前国内可以支持v o i p 业务开展的主要实现形式有三种,即 基于h 3 2 3 协议的i p 电话网络、基于会话启动协议( s i p 协议) 的i p 电话网络和基 于软交换的网络。 1 1 2v 0 l p 的前途 随着v o i p 技术的不断发展,特别是承载业务的不断增加,v o i p 也面临着一些 困难。例如,合理利用带宽的问题,网络、流媒体安全问题,设备标准化问题等 等。 但是,我们也要看到,科技已经使v o i p 有了很坚实的技术基础和广阔的发展 空间。例如,数字信号处理器不断发展,已使信源的处理和路由等的控制变得相 对容易。高集成度专用集成电路的发展,已使成本迸一步降低,同时服务质量 ( q o s ) 有很大提高。宽带网络的发展,将不断满足人们对服务质量和多媒体承 载业务的要求。n g n 软交换( s o f ts w i t c h ) 将带来更低的商业成本,更好的服务 质量,和人们不断追求的更高的灵活性。 v o i p 正朝着更完善、更灵活、更便捷的方向发展。 第一章语音编码与v o i p 1 2 语音编码 1 2 1 语音编码的发展情况 从上面的叙述中,我们可以看出,语音编码是v o i p 的关键技术之一。v o i p 的 初衷就是要利用i p 资源为人们创造一个低投入、高质量的语音沟通环境。所以, 语音的处理、传输、接收就成为了v o i p 的核心。 信道有限的带宽和传输特性的不理想是获得好的语音质量的瓶颈之一,而好 的编码方式将会使声音在信道中传输时的损失降低到最小。语音编码在电路交换 的电话中就有应用,在分组交换中它的地位就更加突出,因为i p 电话是数字化的 电话,传输的是数字信号,而且是打成一个一个i p 数据包的数字信号,所以传统 的p c m 编码方式从根本上已经不完全适合i p 电话。在这种情况下,适合v o i p 的语 音编码方式应运而生。 语音编码标准有:g 7 1 1p c m 、g 7 2 6a d p 叫、g 7 2 8l d - c e l p 、g 蛳r a el p t 、 g 7 2 9c s a c e l p 、g 7 2 3 1a c e l p 、m p - m l q 、u sd o dl p c 一1 02 4 合成语音、f s l 0 1 5 。 目前,应用较多的编码方式是i t utg 7 2 3 1 p 3 i t u tg 7 2 9 。它们的共同特点 是能以相对于3 2 k b p s p o 极低的码率获得与p c m 几乎相同的语音质量,而同时兼顾 检错、纠错、节省带宽的性能。 g 7 2 3 1 是一种提供了6 3 k b p s 和5 3 k b p s 两种码率的编码方式,它是为低比 特率可视电话而设计的。在这种适应中,由于视频编码时延通常大于语音编码时 延,因此对时延的要求不是很严格。g 7 2 3 1 编码器的帧长为3 0 m s ,还有7 5 m s 的 前视。再加上编码器的处理时延,编码器的单向总时延为6 7 5 m s 。其它时延是由 系统缓冲区和网络造成的。 编码方式的高性能,是以计算的高复杂度为代价的。这同时就引入了一个新 问题,就是在这些编码方式下,语音如何实现实时? 这里的实时是在人的感知能 力范围里讲的。因为,上面已经讲到编码方式是有固有时延的,这样的时延不容 易被察觉,所以可以认为是实时的传输。这就涉及n t 数字信号处理的领域,而 从现在数字信号处理的发展来看,实时性是完全可以保证的。甚至,一片多媒体 芯片完全可以完成对多路语音信号的编解码任务。而我们可以相信,更好的编码 方式又会伴随着d s p s 的发展而产生,相辅相成。 方式又会伴随着d s p s 的发展而产生,相辅相成。 第一章语音编码与v o i p 1 2 2l t u tg 7 2 9 语音编码 g 7 2 9 语音编码算法叫做对结构代数码激励线性预测语音压缩编码,它的核 心原理是线性预测和矢量量化。这种编码标准已在1 9 9 5 年1 1 月i t u ts g l 5 全会上 通过,并在1 9 9 6 年6 月的i t u ts g l 5 末次会议上通过了g 7 2 9 的附件a “减少复杂 度的8 k b i t sc s - a c e l p 语音编解码器”,正式成为国际电信标准。”1 g 7 2 9 是为低时延应用设计的,它的帧长只有1 0 m s ,处理时延也是1 0 m s ,再 加上5 m s 的前视,这就使得g 7 2 9 产生的点到点的时延为2 5 m s ,比特率为8k b p s 。 g 7 2 9 有两个版本:g 7 2 9 和g 7 2 9 a 。这两个版本互相兼容但它们的性能有些不同, 复杂度低的版本( g 7 2 9 a ) 性能较差。这两个版本都提供了对帧丢失和分组丢失 的隐藏处理机制,因此在因特网上传输语音时,g 7 2 9 ( g 7 2 9 a ) 编码方式是很 好的选择。表1 一l 列出了8 k b p s 语音编码的主要技术指标。 表1 18 k b i t s 语音编码主要技术指标 参数要求目标 无误码时的语音质量 不低于3 2 k b p s 的c l 7 2 6 同样 条件下的语音质量 对相对于过载点的- 2 6 d b 标 称电平的输入信号,比特误 码对误音性能的影响 不差于3 2 k b p s q 7 2 6 在类似条 。b e r s p ( 单精度) i n t ( 整形) - d p 3 2 位逻辑操作 i n t s p s 单元3 2 位算术操作比较倒数了倒数平方根操作 3 2 4 0 位移位和3 2 位位操作绝对值操作 3 2 位逻辑操作s p - d p 转换 转移 常数产生 寄存器与控制寄存器传递( 仅s 2 ) m 单元1 6 1 6 乘法操作3 2 * 3 2 乘法操作 浮点乘法操作 d 单元3 2 位加、减、线性循环寻址计算5 位常数偏移量双字读取 5 位常数偏移量取存 1 5 位常数偏移量取存( 仅d 2 ) c p u 的数据通道如图3 5 所示,由两个通用寄存器组a 和b ,8 个功能单元,两 个存储器读取通道( l d l ,l d 2 ) ,两个存储器存储通道( s t l ,s t 2 ) ,两个寄存 器交叉通道( 1 x 和2 x ) 组成。通用寄存器组a ( a o a 1 5 ) 和b ( b 0 - - b 1 5 ) 位3 2 位 2 7 第三章数字信号处理器( d s p s ) 通用寄存器,用作数据、数据地址指针,其中a 1 、a 2 、b 0 、b l 、b 2 可用于条件寄 存器,a 4 - a 7 和b 4 一b 7 可用于循环寻址。通用寄存器支持3 2 位和4 0 位的数据存放, 3 2 位数据可放在任意通用寄存器中;4 0 位数据需放在两个寄存器内,其中低3 2 位 放在偶寄存器内,剩余的高8 位放在比偶寄存器序号大1 的寄寄存器的低8 位内, 这样对于4 0 位的数据将有1 6 个有效的寄存器对,如a 1 :a 0 。 d a t ap a t h a o a t ap a t h 8 图3 - 5c 6 7 1 1 数据通道 c p u 数据通道绝大多数支持3 2 位操作数,有些还可支持4 0 位操作数。每个 功能单元有一个3 2 位写端曰通向寄存器组( “l ”写向a 组,“2 写向b 组) ,有两个 3 2 位的读端口用于读取源操作数s r c l 和s r c 2 。此外,四个功能单元 ( l 1 ,l 2 ,s l ,s 2 ) 分别另外配有额外的8 位读写端口,用于4 0 位操作数的 2 8 第三章数字信号处理器( d s p s ) 读写,所以每个c p u 式中周期内8 个功能单元可并行执行。 寄存器组的交叉通道( 1 x 和2 x ) 允许一侧数据通道的功能单元访问另一侧寄 存器组的3 2 为操作数。1 x 交叉通道允许数据通道a 的功能单元从寄存器组b 读取它 的源操作数,2 x 交叉通道允许数据通道b 的功能单元从寄存器组a 读取它的源操作 数。f h c p u 中只有这两个交叉通道,这样就限制了在一个时钟周期内,一个功能 单元只能从另一侧的寄存器组读取一次,或者说,在一个周期内只能进行两个交 叉通道的源操作数读取,存储器存储通道( l d l ,l d 2 ) 把数据从存储器读到寄存 器组,存储器存储通道( s t l ,s t 2 ) 将数据从寄存器组保存到存储器中。两个数 据寻址单元( d r ,d 2 ) 专门负责寄存器组与存储器闻的数据传递,来自于功能单 元d 的数据地址路径( d a l ,d a 2 ) 允许一个寄存器组产生的数据地址支持另一个 寄存器组到存储器的存取操作,然而并行指令执行的读取和存入必须在同一个寄 存器组内进行,或者同时使用交叉通道。 t m s 3 2 0 c 6 7 1 1d s p 的片内存储器包括程序存储器和数据存储器,其中一些存 储区可以配置为高速缓冲区( c a c h e ) ,如图3 - 6 所示。内部程序存储区和内部数据 存储区分别由各自的控制器控制,t m s 3 2 0 c 6 7 1 1 通过外部存储器接口( e m i f ) 1 6 牺 1 6 峭枷 1 6 m w t e s 1 6 ,y 她 t m s 3 2 0 c 6 711 - - 级缓存配置 b l o c kb 茌ea d d r e s s o x 0 0 0 0 0 0 0 0 o x 0 0 0 0 8 0 0 0 0 x 0 0 0 0 c 0 0 0 使用外部存储器。t m s 3 2 0 c 6 7 1 1 的存储器映射空间如图3 7 所示,其内部存储 一:歪芝i一aq笔oh萎 一卜 o l-llli广lliilllliljil图 竺 懂博 一一憎旧 一 们一王釜蒜 |e嚣e。x霎|一 nv。、,。,。l | 嗉憎 一 第三章数字信号处理器( d s p s ) 空间使用改进的哈佛结构,即内部数据存储空间和程序存储空间分开,内部存储 空间是3 2 位可字节寻址的,大小为6 4 k ,数据和程序两个空间可以通过编写c m d 文 件自由配置。 图3 - 7t m s 3 2 0 c 6 7 11 的存储空间 3 4 总结 自从2 0 世纪7 0 年代末8 0 年代初d s p 芯片诞生以来,d s p 芯片得到了飞速的发 展。d s p 芯片的高速发展,一方面得益于集成电路技术的发展,另一方面也得益 于巨大的市场。在近2 0 年时间里,d s p 芯片已经在信号处理、通信、雷达等许多 领域得到广泛的应用。目前,d s p 芯片的价格越来越低,性能价格比日益提高, 具有巨大的应用潜力。 尽管d s p 芯片的发展是迅速的,应用是广泛的,但是它的发展并不全面,仍 有许多技术上的难题亟待解决。例如,多媒体处理的效率问题就涉及到多媒体处 理器对不同多媒体处理的适应能力;d s p 芯片内部存储空间过小,限制了运算速 ,3 0 第三章数字信号处理器( d s p s ) 度的进一步提高,等等。但是可以相信,随着理论研究的不断深入,科学技术的 不断发展,d s p 芯片将会有更令人瞩目的发展。 本课题采用目前运算速度最快的d s p s 之一的c 6 7 1 1 。若c 6 7 1 1 的时钟频率以 1 5 0 m h z 计算,它的运算速度达至u 1 2 0 0 m i p s ,是g 7 2 9 的运算复杂度2 2 1 m i p s 的 5 0 多倍。所以,采用这块芯片给今后的优化工作提供了极大的便利。有关g 7 2 9 语音编解码算法的优化将在下文中分阶段予以介绍。 第四章l t u t c l - 7 2 9 语音编解码算法的优化 第四章 it u - tg 7 2 9 语音编解码算法的优化 4 1c 程序的移植和源代码的性能评估 通过上面的论述,可知g 7 2 9 语音编码算法,是针对v o i p 的很好地传递语音 的方式。而且,g 7 2 9 本身的算法复杂度也不是很高。是完全可以在现有的d s p 芯 片上实现的。 本课题研究的g 7 2 9 算法的优化基于t m s 3 2 0 c 6 7 1 1 d s p 芯片,由于这是浮点型 数字信号处理芯片,本课题所使用的g 7 2 9 源代码是i t u - tg 7 2 9 c 提供的c 语言程 序。g 7 2 9 c 是g 7 2 9 语音压缩编码标准的附录,它包含g 7 2 9 两个版本,即g 7 2 9 和g 7 2 9 a ,的浮点烈c 语言程序。为了简便,本课题使用的是g 7 2 9 a 版本的代码, 这个版本是g 7 2 9 算法的降低运算复杂度的版本,它对g 7 2 9 算法进行了一些简 化,从而获得了相对g 7 2 9 较低的运算复杂度,当然在声音的品质上有所损失。 在编码部分,g 7 2 9 a 相对于g 7 2 9 所做的简化包括:圆 感知加权滤波器使用已量化的l p 系数,感知加权系数y 使用定值:0 7 5 。 开环基音分析中,在计算加权语音自相关是,使用十选一抽取的方式 由于加权合成滤波器由( z ) 省( z ) 简化为l 4 0 ,”,从而也就简化了加权 合成滤波器的计算、目标信号的计算和存储器状态的更新 简化了自适应码本的搜索 在固定码本搜索中使用树型迭代搜索方式,简化了原来的搜索方式。 这里再用简化前后的输出测试向量的p c m 波形图来直观的说明这样的简化对 语音音质的影响,如图4 一l 所示: 第四章i t u - tg 7 2 9 语音编解码算法的优化 图4 - 1 算法简化前后输出测试向量p c m 波形图 从图中很难分辨出两者有明显的差别,实际听音的感觉也是如此。所以,这 种简化是完全可行的,而且算法复杂度的降低更是我们所希望的。 得到相对复杂度较低的c 代码之后,将开始在c 6 7 1 l 上的进一步优化,以达到 实时要求。首先,要完成c 代码从v c 环境下到c c s 环境的移植。由于c c s 采用和v c 类似的c 语言编译器,这使得c 语言的移植变得相对简单。但是这样的移植并不仅 仅是在c c s 下建立一个工程就可以完成的。因为,d s p 芯片的存储器结构是与p c 完 全不同的,而且不同的存储器对芯片的影响也是不同的,芯片访问片内存储器的 速度要远远高于它访问片外存储器的速度。另外,c 6 7 1 1 芯片的内部存储器空间 只有很有限的6 4 k b 。所以,如何分配存储空间,包括程序存储器和数据存储器, 就成了程序移植的关键。 本课题在s i m u l a t o r 下对存储空间的具体分配情况如下: m e m o r y v e c s i r a m c e o : o = 0 0 0 0 0 0 0 0 h1 = 0 0 0 0 0 2 0 0 h o = 0 0 0 0 0 2 0 0 h1 = 0 0 0 0 f e o o h o = 8 0 0 0 0 0 0 0 h 1 = 0 0 2 0 0 0 0 0 h s e c t i o n s ”v e c t o r s ” f d a t ac e o i r a m c e o t 一 n d 托 第四章i t u tg c 7 2 9 语音编解码算法的优化 s t a c k i r a m b s si r a m c o n s t i r a m d a t ai r a m f a rc e o s w i t c hi r a m s y s m e m i r a m t a b l e si r a m c i oi r a m l 按照上述的空间分配,对c 程序进行编译连接,没有出现错误。而且,通过 查看存储器映射文件( m a p ) ,可以得知程序代码占用的空间,即t e x t 段,确 实大于6 4 k b 。所以将程序放在片外是正确的。这样,经过编译和连接生成的o u t 文件就可以进行加载运行了。在运行的同时,对代码进行性能评估( p r o f i l e ) 的结果如表4 - 1 所示,为了对情况有一个全面的认识,这里给出所有函数的性能 评估结果。 函数调用次数总时钟周期数最大时钟周期数 a c e l p _ c o d e _ a 0 7 01 9 2 2 6 3 1 0 12 8 2 2 2 7 6 c o r _ h o 7 03 9 4 3 2 5 4 05 6 3 3 2 2 d 4 i 4 0 - 1 7f a s t o 7 01 0 0 6 4 6 0 3 41 4 9 1 5 1 0 p r m 2 b i t s _ l d 8 k 0 3 54 4 4 8 3 9 51 2 7 0 9 7 i n t 2 b i r l 0 3 8 5 3 8 5 0 0 0 01 7 8 4 6 m a i n o l9 7 6 4 8 4 7 1l9 7 6 4 8 4 7 1l i n i l _ e o d e r _ l d 8 a o l4 3 7 3 9 84 3 7 3 9 8 c o d e r1 d 8 “) 3 5 9 4 7 2 3 5 4 3 62 7 3 9 8 9 3 0 c o r r _ x y 2 0 7 06 7 6 6 7 9 69 6 6 8 0 c o r _ h _ x o 1 4 01 0 2 4 0 0 4 6 07 3 1 4 3 7 s y n j i l t o 2 8 0 9 0 9 8 6 8 9 4 3 2 9 7 2 8 r e s i d l l ( ) 7 02 6 0 2 7 0 5 03 7 1 8 1 9 g m n _ u p d a t e o 7 02 4 9 5 5 0 03 5 6 5 0 g a i np r e d i c t 0 7 09 5 2 5 6 7 61 4 0 6 8 2 a u t o e o r r o 3 58 5 6 4 3 0 7 42 4 4 6 9 5 4 l a g w i n d o w o 3 53 2 6 4 1 09 3 2 6 l e v n s o n o 3 55 5 4 5 0 8 51 5 8 4 3 1 a z _ l s ;p 0 3 52 2 4 9 6 0 7 76 5 8 6 6 3 c h e b y s h e v o 3 0 0 31 2 5 9 1 7 1 94 1 9 7 第四章i t u _ tg 7 2 9 语音编解码算法的优化 i n tq l p c o 3 52 9 7 8 2 9 0 8 5 0 9 4 w e i g h t _ a z o 7 0 6 8 1 8 0 0 9 7 4 2 g e t _ _ l s p _ p o l o 1 4 01 6 2 8 3 4 0 1 1 6 3 l l s p _ a z o 7 02 6 3 0 5 3 03 7 5 7 9 l s p _ s t a b i l i t y o 3 58 3 4 4 0 0 2 3 8 4 0 l s p _ p r e v _ u p d a t e o 3 51 1 7 4 9 5 0 3 3 5 7 0 l s p _ p r e v _ _ e x t r a c t o 7 03 3 5 3 9 2 04 7 9 3 2 l s p _ p r e v _ c o m p o s e o 3 51 6 1 1 6 6 6 4 6 0 5 0 l s p _ e x p a n d _ l _ 2 0 1 4 01 9 1 5 2 7 81 3 7 2 0 l s p _ e x p a n 4 j ( ) 7 04 7 0 8 7 06 9 2 0 l s p _ e x p a n d1 0 7 04 2 0 0 8 2 6 0 3 4 l s p _ g e t _ q u a n t o 3 55 0 4 7 5 9 41 4 4 2 5 0 e n c 3 a 9 3 0 7 0 1 0 9 5 5 0 2 7 5 6 g _ p i t c h o 7 05 7 9 7 5 6 08 3 0 6 4 p i t e h _ f f 3 _ f a s t o 7 0 1 7 3 7 7 0 6 6 0 2 6 9 2 8 4 6 d o t - p r o d u c t o 7 8 92 7 2 9 6 7 9 53 4 6 3 3 p i t c h _ o l _ f a s t o 3 51 4 3 7 4 6 7 9 84 1 1 3 3 8 2 p r e d j t _ 3 0 1 9 49 0 4 0 9 2 1 44 6 6 1 0 0 i n i t _ p r ep r o c c s s o l1 8 01 8 0 p r e - p r o c e s s ( ) 3 55 3 6 6 1 7 61 5 3 3 4 8 p a r i t y _ p i t c h ( ) 3 51 8 1 8 6 05 1 9 6 q u a _ g a i n o 7 01 9 7 5 1 0 2 22 9 3 6 5 5 g b k _ p r e s e l o 7 0 7 1 0 9 7 01 7 5 9 2 g e t _ w e g t o 3 55 1 5 7 9 91 4 7 2 ;9 l s p _ l a s t _ s e l e c m ( ) 3 51 7 2 7 66 9 6 l s p _ g e t _ t d i s t o 7 08 5 1 1 3 01 2 1 6 l l s p _ s e l e e t _ 2 0 7 0 1 3 7 9 9 6 6 61 9 7 5 7 9 l s p _ s e l e e t _ 1 0 7 01 3 8 3 5 7 0 61 9 8 1 5 7 l s p _ p r e _ s e l e c t o 7 01 0 1 5 6 3 5 7 21 4 5 2 0 0 3 m l s p w e d o 3 51 4 1 6 7 2 6 1 84 0 5 0 1 4 0 l s p _ q u a _ c s o 3 51 4 2 2 6 4 7 1 74 0 6 7 0 5 3 l s p _ e n c w _ r e s e t o 1 3 3 7 4 23 3 7 4 2 q u al s p o 3 51 4 7 8 1 1 1 5 74 2 4 1 9 7 9 i n i te x c _ e r r o 11 8 8 9 1 8 8 9 t e s te r r o7 02 6 0 5 8 85 1 9 5 u p d a t e _ e x c _ e r r o 7 0 3 1 5 6 7 85 5 5 6 s e t _ z e r o o 7 6 2 2 4 4 5 0 81 6 4 0 2 0 c o p y ( ) 4 3 21 5 5 5 9 7 2 61 1 0 3 4 7 从表4 一l 中可以看出,编码的核心程序c o d e r l d 8 a ( ) 的执行一次即编一帧 ( 1 0 m s ) 语音信号的时间是2 7 ,3 9 8 ,9 3 0 个时钟周期。若假设c 6 7 1 i 的时钟频率 为1 6 0 m h z ,即时钟周期为6 2 5 n s ,则对一帧语音信号进行编码需要1 7 1 m s ,这个 数值是帧长( 1 0 m s ) 的1 7 倍,距离实时的要求还相去甚远。所以,对程序的优化 - 3 5 - 第四章i t u - tg 7 2 9 语音编解码算法的优化 是完全必要的,也是必须的。 在进入优化之前,通过对上面表格中数据的分析,发现有一些函数的调用次 数相对很多,而有些函数的执行时间则相对较长,例如:s y n _ f i i t 0 ,即同步滤 波,编3 5 帧语音共调用2 8 0 次;c h e b y s h e v 0 ,即切比雪夫多项式,编3 5 帧共调用 3 0 0 3 次;d o t - p r o d u c t0 ,即点积,编3 5 帧语音共调用7 8 9 次;p i t c h f r 3 一f a s t0 , 即基音分析,执行一次耗费2 6 9 2 8 4 6 个时钟周期,仅这一个函数的运行时间就已 经超过了l o m s ;q u a _ l s p ( ) ,f i 口l s p 系数量化,执行一次耗费4 2 4 1 9 7 9 个时钟周期; a u t o c o r r ( ) ,即计算自相关,执行一次耗费2 4 4 6 9 5 4 个时钟周期。这样的函数正 是需要优化的部分,因为执行耗费时钟周期数多这正是我们不希望看到的,而调 用次数过多又在调用的过程中耗费了过多的时钟周期。另外,该程序还有一个特 点是,调用次数多的函数往往算法比较简单,而调用次数少的函数往往会因为算 法复杂在一次调用中耗费较多的时钟周期。所以,优化要针对程序中函数的不同 特点,具体问题具体分析。 针对解码器的分析也有类似的结果。 表4 2 解码3 5 帧语音信号的c 程序的性能评估结果( 数据单位:个时钟周期) a r e a sc o d es i z ec o u n ti n c l t o t a li n c l m a x i m u m b i t s 2 p r m _ i d 8 k 0 1 7 6 3 5 1 1 7 3 8 8 53 4 3 0 7 b i n 2 i n t ( ) 2 0 43 8 5 9 9 5 8 0 55 1 7 3 m a i n ( ) 1 1 1 6l6 5 6 3 71 8 86 5 6 7 1 8 8 d e c g a i n ( ) 5 5 2 7 0 3 2 2 7 9 7 64 6 2 2 7 d e c l a 9 30 4 4 47 08 0 5 2 91 3 0 2 i n i td e c o d _ l d 8 a01 5 614 1 4 3 14 1 4 3 1 d e c o d _ l d 8 a ( ) 1 4 6 4 3 5 2 4 1 6 5 4 4 46 9 6 9 8 2 d e c o d _ a c e l p0 5 3 6 7 0 5 0 7 4 5 47 2 6 1 s y n _ f i l t0 5 2 8 2 1 016 8 4 8 3 7 0 9 4 4 2 4 r e s i d u 0 2 8 47 0 6 9 7 5 0 3 09 9 6 5 9 g a i n _ u p d a t e ( ) 1 8 47 06 5 2 8 2 0 9 3 2 6 g a i n _ p r e d i c t ( ) 5 2 87 02 5 0 6 6 0 23 5 9 1 4 i n t q l p c ( ) 2 1 23 58 2 2 0 1 02 3 4 8 6 w e i g h t a z ( ) 2 6 81 4 03 7 4 9 2 02 6 7 8 g e t ls p _ p o l0 4 5 21 4 04 4 6 4 6 03 1 8 9 l s p _ a z 0 4 8 8 7 0 7 2 3 8 7 01 0 3 4 1 ls p _ d e c wr e s e t ( )1 6 8 l 1 1 2 1 71 1 2 1 7 i s p _ i q u a _ c s0 5 2 83 51 4 6 2 1 4 2 4 1 8 2 0 d _ l s p 0 1 8 43 51 9 4 3 2 5 2 5 5 5 6 6 l s p _ s t a b i l i t y ( ) 5 7 63 52 2 0 3 3 06 3 3 6 l s p - p r e v _ u p d a t e0 1 7 23 53 1 7 2 4 09 0 6 4 3 6 - 第四章i t u tg 7 2 9 语音编解码算法的优化 l s p - p r e v c o m p o s e0 2 8 43 54 4 7 4 4 81 2 7 9 2 l s p _ e x p a n d 一1 _ 20 2 7 2 7 0 2 5 3 0 8 43 6 3 4 l s p g e t q u a n t0 4 6 03 51 3 6 2 1 0 43 8 9 6 2 i n i t _ p o s t f i l t e r0 9 2 l 3 5 1 6 33 5 1 6 3 p o s t f i l t e r0 1 0 9 23 53 2 2 3 2 5 1 19 2 1 2 7 9 p i t - p s t f i i t0 1 3 0 87 07 6 6 4 9 3 61 1 0 8 0 7 p r e e m p h a s i s ( ) 3 0 47 07 7 8 6 1 01 1 1 3 3 a g c 0 6 7 67 0 2 4 8 7 0 3 0 3 5 5 3 1 i n i t _ p o s t - p r o c e s s0 3 615 4 5 4 p o s tp r o c e s s ( ) 3 2 03 51 4 8 9 1 1 84 2 5 5 4 p r e d - i t _ 30 5 0 4 7 0 8 9 6 2 8 9 21 2 8 0 7 6 c h e c kp a r i t y p i t c h02 0 03 5 5 0 4 0 01 4 4 0 s e t z e r o0 1 2 07 4 2 0 1 8 2 43 2 9 2 6 c o p y 0 1 3 24 6 0 3 9 8 8 5 6 82 8 6 5 7 f w r i t e l 6 04 5 23 5 3 9 1 4 5 1 41 2 7 3 1 6 由表4 2 可以看到,在优化之前,有一些函数的调用次数相对很多,而有些 函数的执行时间则相对较长,例如:s y n _ f i l t0 ,编3 5 帧语音共调用2 1 0 次; b i n 2 i n t ( ) ,编3 5 帧共调用3 8 5 次;p o s t f i l t e r ( ) ,即滤波器,执行一次耗费9 2 1 2 7 9 个时钟周期,等等。这样的函数正是需要优化的部分,因为执行耗费时钟周期数 多,调用次数过多又在调用的过程中耗费了过多的时钟周期会大大降低优化的水 平。因此,我们的优化工作主要针对这样的函数。 4 2 语音编解码算法的软件和硬件优化 4 2 1 第一阶段:利用c c s 的优化选项 前面的论述已经提到,c c s 是t i 专为自己的产品开发的一个集成性d s p s 软件 开发工具,它由c 语言编译器,汇编优化器,汇编器和连接器组成,是d s p s 开发 的得力助手。它使得d s p s 的开发周期大大缩短,而它的易用性也使得t i 的产品得 到进一步的普及。经过c c s 编译及优化的c 代码,在性能上将有极大的提高。正因 为c c s 具有上述优点,所以优化的第一阶段就要利用c c s 的优化编译选项,以这样 一种类似人工智能的手段来提高g 7 2 9 ac 代码的执行速度。 本课题中使用的优化选项是文件级优化一0 3 和程序级优化一p m o p 2 。c c s 的文 件级编译优化共有4 个等级:一0 0 、一o l 、一0 2 、一0 3 。这些优化等级对程序的优化 程度如表4 - 3 。 第四章i t u tg 7 2 9 语音编解码算法的优化 表4 - 3 文件级优化选项介绍 一0 0 0 1 0 2 ( d e f a u l t ) 0 3 简化控制流程图传播本地常量进行程序流水 去掉所有未被调用的 函数 把变量放入寄存器去掉不使用的函数或 对循环进行优化简化返回值不使用的 变量函数 循环翻转去掉共用的表达式 去掉全局

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论