一种多通道联合声码器及其实现方法

文档序号:2821816阅读:632来源:国知局
专利名称:一种多通道联合声码器及其实现方法
技术领域
本发明属于通讯技术领域,涉及一种声码器,特别涉及一种多通道联合声码器实现方法。
G.729ab编码器和G.723.1编码器属于前向自适应线性预测合成分析(LPAS)编码器,支持内嵌语音激活检测(Voice Activity Detector,简称VAD)和舒适噪音再生(Comfort Noise Generation,简称CNG),而且都提供了对帧丢失和分组丢失的隐藏处理机制,因此在因特网上传送语音时,这两种声码器都是很好的选择。
一般来说声码器实现途径主要有两种基于ASIC/FPGA(ApplicationSpecific Integrated Circuit/Field Programmable Gate Array)方式和基于CPU(Central Processing Unit)方式。基于FPGA/ASIC属于一种电路硬件的实现方法,成本较高,灵活性较差,在定型以后修改困难,不利于算法升级、控制和维护。基于CPU方式一般都是选用专用数字信号处理芯片(DSP),通用的CPU由于其处理速度和数据的吞吐率的局限,不适合密集数学运算,无法满足大计算量实时应用场合的要求。
本发明通过以下技术措施来完成一种多通道联合声码器,包括一实时语音编解码处理的硬件平台;实时语音编解码处理的硬件平台和E1总线及上层处理器按芯片连接方式互联,上层处理器可选择一般的协议处理器,用以进行编码后的压缩语音包的协议转换;上述实时语音编解码处理的硬件平台由TMS320C6000系列专用DSP芯片构成,内固化设置有MCBSP接口、内部RAM、以及HPI接口;在MCBSP接口内设置有输入和输出PCM缓存;在RAM内设置G.729ab编解码器算法核和G.723.1编解码器算法核代码;在HPI接口内设置有输出数据包缓存、输入数据包缓存、控制配置命令缓存。
所述单通道G.729ab编解码器算法核和G.723.1编解码器算法核采取C语言、DSP专用线性汇编语言和DSP专用纯汇编语言混合编程支持多通道G.729ab和G.723.1联合声码器的软件,使用状态变量结构定义,每个通道对应一个独立的结构定义,其中包含与该通道相关的所有状态变量,包括进行G.729ab编解码算法所需的状态变量定义和进行G.723.1编解码算法所需的状态变量定义,以及通道控制参数,各个话路可以独立调整工作模式;各个通路的算法运行中所需要的内存空间可以临时共享。
所述联合声码器的上层处理器可以是RTP/RTCP协议处理器。
所述实时语音编解码处理的硬件平台采用专用DSP芯片TMS320C6203。
多通道联合声码器的实现方法,包括以下步骤1)首先设置一实时语音编解码处理的硬件平台,硬件平台由TMS320C6203芯片构成,内固化设置有MCBSP接口、内部RAM、以及HPI接口;2)在MCBSP接口内设置有输入和输出PCM缓存;在RAM内设置G.729ab编解码器算法核和G.723.1编解码器算法核;在HPI接口内设置有输出数据包缓存、输入数据包缓存、控制配置命令缓存;3)设置联合声码器软件;联合声码器软件采用结构的方法,把每一个通道的工作所需所有状态变量,包括进行G.729ab编解码算法所需的状态变量定义和进行G.723.1编解码算法所需的状态变量定义,以及通道控制参数,全部包括在一个结构中并给其分配独立的永久的内存空间;即每个通道对应一个完整的状态结构定义,因为每个通道的状态结构都分配了独立的永久的内存空间,从而保证每个通道都可以灵活的配置调整工作模式,而不影响其它通道的工作。
上述G.729ab编码器的帧长为10ms,处理时延10ms,加上5ms前视,算法的时延总计25ms;编码后的数据速率为8kbps;用户可以根据需要设置VAD启动或关闭;上述G.723.1编码器的帧长为30ms,处理时延30ms,加上7.5ms前视,单向算法的时延总计67.5ms;G.723.1编码器在6.3kbps速率上提供长话质量的语音,还可以提供5.3kbps速率的低质量语音编码;G.723.1的编码和解码器都支持这两种速率,且可以在帧间随时进行速率切换,并可以根据用户需要设置编码器速率以及VAD启动或关闭。
本发明由于采用专用DSP芯片TMS320C6203作为实时语音编解码处理的硬件平台;软件采取C语言、DSP专用线性汇编语言和DSP专用纯汇编语言混合编程的方法,分别设计出高性能的单通道G.729ab编解码器核心算法和G.723.1编解码器核心算法,以及支持多通道G.729ab和G.723.1联合声码器的软件。其中核心算法软件效率高,稳定性好,可以达到单片TMS320C6203芯片支持32个话路语音的G.729ab编解码,或22个话路语音的G.723.1编解码。
在支持多通道G.729ab和G.723.1联合声码器的软件中,工作模式(CodecMode,选择G.729ab或G723.1)、对应的工作速率(Rate)、以及是否采取VAD方式等可控选项作为编码器主函数的输入参数,外部控制简单;本发明声码器软件充分使用状态变量结构定义,每个通道对应一个独立的结构定义,与该通道相关的所有状态变量包都含在其相应的结构中,从而保证各个话路可以通过调整状态变量,独立调整工作模式;算法运行中间结果所需要的内存空间采用临时共享的方式,平均每路占用的内存很小,具有很高的性能价格比。
本发明与现有技术相比具有如下优点本发明是一种基于TMS320C6000系列专用DSP芯片的多通道G.729ab和G.723.1联合声码器的实现方法及设备;支持多通道并行处理,各个通道可独立配置编码器和解码器的工作模式为G.729ab或G.723.1,且可以在不间断芯片工作的状态下动态更新配置;支持内嵌VAD、CNG以及内嵌误码消除;应用程序接口灵活方便。
本发明采用C语言、DSP线性汇编语言和DSP手工纯汇编语言混合编程的方法,设计出G.729ab和G.723.1核心算法的DSP程序,算法程序性能稳定,效率高,可达到单片TMS320C6203芯片支持32个话路语音的G.729ab编解码,或22个话路语音的G.723.1编解码。
支持多通道G.729ab和G.723.1联合声码器的软件充分使用状态变量结构定义,每个通道对应一个独立的结构定义,其中包含与该通道相关的所有状态变量(包括进行G.729ab编解码算法所需的状态变量定义和进行G.723.1编解码算法所需的状态变量定义,以及通道控制参数),从而保证各个话路可以独立调整工作模式;各个通路的算法运行中所需要的内存空间可以临时共享,平均每路所需的内存很小,性能价格比高。

具体实施例方式
下面将结合附图和发明人具体完成的实施例,对本发明作进一步详述。
依照本发明的技术方案,发明人给出了本发明的一种基于TMS320C6000系列专用数字信号处理器(Digital Signal Processor,简称DSP)研制开发的一种多通道G729ab和G723.1联合声码器及其实现方法。5.1多通道G.729ab和G.723.1联合声码器实现方法首先说明单路G.729ab编解码器核心算法和G.723.1编解码器核心算法实现方法。
G.729ab编码器的帧长为10ms,处理时延10ms,加上5ms前视,算法的时延总计25ms;编码后的数据速率为8kbps;用户可以根据需要设置VAD启动或关闭。
G.723.1编码器帧长为30ms,处理时延30ms,加上7.5ms前视,单向算法的时延总计67.5ms。G.723.1编码器在6.3kbps速率上提供长话质量的语音,还可以提供5.3kbps速率的低质量语音编码;G.723.1的编码和解码器都支持这两种速率,且可以在帧间随时进行速率切换。用户可以根据需要设置编码器速率以及VAD启动或关闭。
衡量DSP程序好坏的一个重要指标是算法的效率,DSP程序可以用C语言,线性汇编语言和纯汇编语言开发,三者各有优缺点。C语言最为直观,开发周期短,易维护;纯汇编语言效率最高,但是开发周期长,难度大,代码直观性差,不易维护升级;线性汇编语言介于C语言和纯汇编语言之间,代码较纯汇编直观一些,但是效率不及纯汇编高。本发明采用专用DSP芯片TMS320C6203实现G.729ab和G.723.1语音压缩编码器的核心算法。为了兼顾效率、可维护性、可移植性、和开发周期,本发明采取C语言、线性汇编语言和手工汇编语言混合编程的方法,对不同性质的函数采用不同的开发方法。对于底层完成复杂运算的函数,选择使用线性汇编语言和纯汇编语言开发,可以大大提高代码的效率;对于上层的主要完成编解码器控制函数采用C语言开发,保证函数的可维护性和可控性。通过使用我们所掌握的多项DSP程序开发技巧,完成了G.729ab和G.723.1核心算法软件的开发,其指标为单片TMS320C6203芯片最大支持32个话路语音的G.729ab编解码,或22个话路语音的G.723.1编解码。
在G.729ab和G.723.1编解码器核心算法的基础之上,本发明提供了一种多通道G.729ab和G.723.1联合声码器及其实现方法。


图1为多通道G.729ab和G.723.1联合声码器实现方法原理图。在交换机和媒体网关等声码器的应用场合中,从性能价格比以及硬件体积、系统灵活性的角度出发,一般都选择能处理多个话路的DSP作为硬件平台,同时希望声码器可以同时处理多种协议。本发明中的多通道G.729ab和G.723.1联合声码器正可以满足这些应用需求。联合声码器软件采用结构的方法,把每一个通道的工作所需所有状态变量,包括进行G.729ab编解码算法所需的状态变量定义和进行G.723.1编解码算法所需的状态变量定义,以及通道控制参数,全部包括在一个结构中并给其分配独立的永久的内存空间;即每个通道对应一个完整的状态结构定义,同时又因为每个通道的状态结构是都分配了独立的永久的内存空间,从而保证每个通道都可以灵活的配置调整工作模式,而不影响其它通道的工作。各个通道在工作的过程中,中间结果所占的内存空间采用临时共享的方式,平均每路占用的内存又很小,具有很高的性价比。其原理图如图1所示,其中联合声码器控制配置接口程序完成对每个通道工作模式的配置及本设备的管理和控制功能,PCM数据接口程序完成多路64kbps数据的输入和输出功能,数据包接口程序完成编码和解码数据包的输出和输入及相应的成帧、解帧功能,提供了和上层网络实时传输协议(RTP/RTCP)的接口。算法库中为G.729ab和G.723.1核心算法,各个通道根据配置灵活调用算法库中相应的编解码算法。
下面结合图1简单说明本发明中联合声码器的工作过程首先由上层处理器通过联合声码器控制配置接口程序初始化设置声码器各个通道的工作状态。声码器的编码过程从E1接口来的PCM话音信号经过PCM数据接口程序转换为线性语音数据后,根据相应的通道工作状态调用核心编码器算法,将话音信号压缩编码,得到压缩编码的语音数据;压缩编码后的语音数据通过数据包接口程序形成固定的编码语音帧的帧格式输出,以方便上层实时传输协议对数据进行打包处理。声码器的解码过程从上层实时传输协议中解出相应的编码语音帧,将编码语音帧传递给数据包接口程序,解帧得到待解码的压缩编码的语音数据;待解码的压缩编码的语音数据通过相应的核心解码器算法,解码恢复出线性语音数据;线性语音数据经过PCM数据接口程序转换为PCM话音信号,通过E1接口输出到PSTN。5.2多通道G.729ab和G.723.1联合声码器硬件实现原理多通道G.729ab和G.723.1联合声码器硬件实现原理如图2所示。控制配置命令缓存区中用于存放上层处理器发送给DSP的控制命令,用于对通道的初始化以及动态地更新通道的工作模式,DSP在完成所有打开的通道的一帧数据操作以后,所有通道统一访问控制配置命令缓存区,根据上层命令更新通道的工作状态。这样做的原因和好处是因为上层命令出现的频率并不频繁(相对语音数据的速率而言),所以允许所有通道共享控制配置命令缓存区,这样可以节约内存空间,同时减少不必要的频繁访问次数以达到提高DSP工作效率的目的。控制配置命令缓存区可以设置在DSP内部。数据交互主要用于编解码器压缩语音数据帧包的交互,每个通道独立地和上层处理器进行编解码器帧包的交换,数据包接口使用TI公司生产的DSP所专有的主处理器接口(Host Processor Interface)。PCM格式数据接口为标准E1总线。5.3多通道G.729ab和G.723.1联合声码器控制配置程序接口实现原理多通道G.729ab和G.723.1联合声码器DSP侧的控制处理流程如图3所示。程序开始检测判断上层处理器是否有新命令;如果没有,则结束这一轮的控制配置;如果上层有新命令,先清除新命令标志,然后进行命令识别。如果命令识别不成功,即置接收命令失败标志,结束。如果命令识别成功,则置接收命令成功标志,然后根据新命令的性质,即是启动通道命令,或是更新通道命令,选择不同的处理。如果是启动通道命令,则接收命令中的相应参数,然后根据参数设置接口配置,分配内存启动编解码器;结束。如果是更新通道的命令,首先要清除内存中旧的设置参数,同时将相应的编解码器复位,然后接收命令中的相应参数,根据参数更新对应算法子程设置;结束。
上层处理器侧的控制处理流程如图4所示。首先上层处理器判断信道是否有新的请求,如果没有,则不执行任何操作,结束这一轮控制处理。如果信到有新请求,则识别新请求,然后根据请求设置或更新参数;根据参数发送新命令,并设置新命令标志。然后上层处理器检查DSP侧给出的接收命令成功标志;如果标志显示DSP接收命令成功,则清除信道的请求标志,然后相应修改系统资源使用表。如果标志显示DSP接收命令失败,则直接结束本轮控制处理。
多通道G.729ab和G.723.1联合声码器的上层处理器可选择一般的协议处理器,用以进行编码后的压缩语音包的协议转换,如RTP/RTCP协议处理器。从而保证声码器的工作可以不依赖于特定的应用环境,对不同的应用环境具有非常好的适应性。对于连接PSTN与以太网的媒体网关的应用,也可以将RTP/RTCP实时传输协议的实现和处理部分设置于DSP内部,以达到减小硬件体积和复杂度的目的,这充分利用了数字信号处理芯片的程序开发的灵活性。本发明中的多通道G.729ab和G.723.1联合声码器提供了简单但是功能完备的协议处理器交互接口。协议处理器中可以对这个接口进行合理扩充,开发相应的驱动程序,以方便上层控制声码器的编解码工作模式,并控制编码后的压缩语音包的输入和输出。
本发明的多通道G.729ab和G.723.1联合声码器核心的编解码算法和接口程序是相互独立的,从而保证了最大限度的接口灵活性。
权利要求
1.一种多通道联合声码器,其特征在于,它包括一实时语音编解码处理的硬件平台;实时语音编解码处理的硬件平台和E1总线及上层处理器按芯片连接方式互联,上层处理器可选择一般的协议处理器,用以进行编码后的压缩语音包的协议转换;上述实时语音编解码处理的硬件平台由TMS320C6000系列专用DSP芯片构成,内固化设置有MCBSP接口、内部RAM、以及HPI接口;在MCBSP接口内设置有输入和输出PCM缓存器;在RAM内设置G.729ab编解码器算法核和G.723.1编解码器算法核代码;在HPI接口内设置有输出数据包缓存器、输入数据包缓存器、控制配置命令缓存器。
2.如权利要求1所述的多通道联合声码器,其特征在于,所述单通道G.729ab编解码器算法核和G.723.1编解码器算法核采取C语言、DSP专用线性汇编语言和DSP专用纯汇编语言混合编程,代码的效率高;其指标为单片TMS320C6203芯片最大支持32个话路语音的G.729ab编解码,或22个话路语音的G.723.1编解码。多通道G.729ab和G.723.1联合声码器的软件采用C语言开发,使用状态变量结构定义,每个通道对应一个独立的结构定义,其中包含与该通道相关的所有状态变量,包括进行G.729ab编解码算法所需的状态变量定义和进行G.723.1编解码算法所需的状态变量定义,以及通道控制参数,各个话路可以独立调整工作模式;各个通路的算法运行中所需要的内存空间可以临时共享。
3.如权利要求1所述的多通道联合声码器,其特征在于,所述联合声码器的上层处理器可以是RTP/RTCP协议处理器。
4.如权利要求1所述的多通道联合声码器,其特征在于,所述实时语音编解码处理的硬件平台采用专用DSP芯片TMS320C6203。
5.实现权利要求1所述的多通道联合声码器的实现方法,其特征在于,包括以下步骤1)首先设置一实时语音编解码处理的硬件平台,硬件平台由TMS320C6000系列专用DSP芯片构成,内固化设置有MCBSP接口、内部RAM、以及HPI接口;在MCBSP接口内设置有输入和输出PCM缓存器;在RAM内设置G.729ab编解码器算法核和G.723.1编解码器算法核;在HPI接口内设置有输出数据包缓存器、输入数据包缓存器、控制配置命令缓存器;2)设置联合声码器软件;联合声码器软件采用结构的方法,把每一个通道的工作所需所有状态变量,包括进行G.729ab编解码算法所需的状态变量定义和进行G.723.1编解码算法所需的状态变量定义,以及通道控制参数,全部包括在一个结构中并给其分配独立的永久的内存空间;即每个通道对应一个完整的状态结构定义,因为每个通道的状态结构都分配了独立的永久的内存空间,从而保证每个通道都可以灵活的配置调整工作模式,而不影响其它通道的工作。
全文摘要
本发明公开了一种多通道联合声码器及其实现方法,包括一实时语音编解码处理的硬件平台,和联合声码器软件;联合声码器软件采用结构的方法,把每一个通道的工作所需所有状态变量,包括进行G.729ab编解码算法所需的状态变量定义和进行G.723.1编解码算法所需的状态变量定义,以及通道控制参数,全部包括在一个结构中并给其分配独立的永久的内存空间;每个通道对应一个完整的状态结构定义,从而保证每个通道都可以灵活的配置调整工作模式。实时语音编解码处理的硬件平台采用专用DSP芯片TMS320C6203;软件采取C语言、DSP专用线性汇编语言和DSP专用纯汇编语言混合编程的方法,效率高,稳定性好,可以支持32个话路语音的G.729ab编解码,或22个话路语音的G.723.1编解码。
文档编号G10L19/00GK1442985SQ0311458
公开日2003年9月17日 申请日期2003年4月1日 优先权日2003年4月1日
发明者廖延娜, 陈新富, 孙健, 张正阳 申请人:西安大唐电信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1