CN102903366A - 一种基于g729语音压缩编码算法的dsp优化方法 - Google Patents

一种基于g729语音压缩编码算法的dsp优化方法 Download PDF

Info

Publication number
CN102903366A
CN102903366A CN 201210344525 CN201210344525A CN102903366A CN 102903366 A CN102903366 A CN 102903366A CN 201210344525 CN201210344525 CN 201210344525 CN 201210344525 A CN201210344525 A CN 201210344525A CN 102903366 A CN102903366 A CN 102903366A
Authority
CN
China
Prior art keywords
search
algorithm
dsp
coding
speech
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 201210344525
Other languages
English (en)
Inventor
徐驭航
陈磊
唐先成
王亮
蔡自伟
宋宁帅
王牌
龙涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing University
Original Assignee
Chongqing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing University filed Critical Chongqing University
Priority to CN 201210344525 priority Critical patent/CN102903366A/zh
Publication of CN102903366A publication Critical patent/CN102903366A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种基于G729语音压缩编码算法的DSP优化方法,其特征在于按下列步骤进行:使用CCS3.3版本的DSP软件开发环境并将G729语音编码算法的开源源代码一直到TMS320C55X上,成功对语音编码;对算法中的LPC阶段进行多项式求根算法的改进,在固定码本搜索阶段,对码本的搜索算法进行了优化,在矢量距离的计算过程中,对距离搜索的过程进行了简化;对编译器进行设置;依次在C语言层面和汇编层面,对一些模块函数进行改写。本发明显著效果是:提供了一种基于G729语音压缩编码算法的DSP优化方法,具有编码时间短的优点,能够解决多路语音在DSP上实时编码的困难。

Description

一种基于G729语音压缩编码算法的DSP优化方法
技术领域
本发明涉及一种基于嵌入式的语音压缩算法的优化技术。在TMS320C55X系列DSP上实现多路语音的实时控制,其中语音压缩编码协议为G729。
技术背景
数字语音通信是当前信息产业中发展最快,普及面最广的业务。移动通信数字化,拓展了信道容量,改善了服务质量,促进了这一产业的飞速发展。相比于模拟语音,数字语音具有抗干扰强,保密性好,管理和控制方便,生产成本低等优点。随着社会的发展,人们对通信的要求越来越高。P2P的语音通信技术已经非常成熟,然而在越来越多的场合,人们产生一对多,多对多的语音通信需求。同时随着ISDN技术的推广,VOIP技术,多媒体技术的快速发展,这一想法也能够实现了。
随着人们对语音通信提出了越来越高的带宽要求,语音压缩编码技术也取得了飞速的发展,特别是中低码率的语音编码技术方面。16kb/s,8kb/s的压缩编码技术已经得到标准化和产品化。由于VOIP,多媒体通信,综合业务数字通信,移动通信等业务的快速发展,基于G。728,G729的产品的嵌入式实时开发正逐渐成为研究的热点问题。尽管G729算法具有码率低,合成语音质量高等优点,但是其具有较高的算法复杂度,嵌入式实时应用成为一大难题。如何高效的压缩语音数据来缩短G729算法编码时间以达到实时性的要求是有待解决的一个重要问题。
发明内容
为了缩短G729算法在TMS320C55X系列DSP上的语音编码时间,以满足多路语音实时压缩编码的要求。本发明通过对G729算法的各个阶段算法进行改进,在不影响编码效果的同时,大大减少在DSP上运行的时间,达到对语音编码的实时性要求。
.729协议过程
    G729采用8kb/s共轭结构-代数码激励线性预测编码——语音编码器,它是基于CELP编码模型的。编码器对语音帧进行处理,语音以每秒8000样点采样,每10ms对应80个样点为1帧,每帧对语音信号进行分析,提取CELP模型的参数(LPA系数,自适应码数与固定码数的索引和增益),这些参数被编码并传输。在译码端,这些参数被恢复成激励参数和合成滤波器参数,是激励通过短时何曾滤波器来得到重建语音。短时语音滤波器是基于10阶线性预测(LP)滤波器。长时合成滤波器采用自适应码书方法实现。重建语音计算出来以后,在利用后滤波提高语音质量。编码过程见图1,G.729算法流程见图2。
分析及优化原理
短时分析综合滤波器是一个基于10阶线性预测(LP)的滤波器。这个滤波器的传递函数被定义为:
Figure 935341DEST_PATH_IMAGE001
                                (1)        
其中 是量化后的线性预测(LP)系数。对于每一个10ms的语音帧,先用一个30ms的不对称窗口对数据进行加窗,计算自相关。即是说,每80个样点(10ms),计算一次加窗语音的自相关系数,通过莱文森(Levinson)算法得到滤波器的系数。然后把LP系数转化为线谱对LSP系数,并用于量化和插值。插值后的量化和未量化滤波器系数又被转换回LP滤波器系数,目的是为每一个子帧构建综合加权滤波器。LP向LSP转换过程是:LP滤波器系数转化为线谱对系数(LSP)用于量化和插值。对于一个10阶的LP滤波器来说,LSP系数定义为下面两个多项式等式的根:
                                                 (2) 
多项式
Figure 39990DEST_PATH_IMAGE005
是对称的,
Figure 750326DEST_PATH_IMAGE006
是非对称的。可以证明这两多项式的根在一个单位圆上并且交替出现。
Figure 852274DEST_PATH_IMAGE005
有一个根为
Figure 719998DEST_PATH_IMAGE007
和 有一个根
Figure 763227DEST_PATH_IMAGE008
。通过定义两个新的多项式等式,消除了这两个根:
            
Figure 49458DEST_PATH_IMAGE009
                                    (3)   
每个等式在单位圆上有5个共轭的根
Figure 450484DEST_PATH_IMAGE010
。所以上面两个等式又可以写作下面的形式:
             
Figure 794877DEST_PATH_IMAGE011
                               (4)
(4)式中,系数就是线谱对系数(LSF),并且他们也满足:
Figure 562610DEST_PATH_IMAGE014
的顺序。
Figure 382799DEST_PATH_IMAGE015
被当成是LSP系数在Cos域的值。因为
Figure 922233DEST_PATH_IMAGE016
Figure 802465DEST_PATH_IMAGE017
都是对称的了,所以每个多项式的系数只有前面需要计算。其他的系数同过下面的递归关系得到:
          
Figure 925885DEST_PATH_IMAGE018
                            (5)
其中
Figure 549764DEST_PATH_IMAGE019
Figure 943705DEST_PATH_IMAGE020
,先把
Figure 57155DEST_PATH_IMAGE021
等间隔分成60个点,然后计算
Figure 920069DEST_PATH_IMAGE016
Figure 832792DEST_PATH_IMAGE017
在这些点上符号的改变来得到LSP系数。符号的改变就意味着根在这个区间内存在,接下来就把这个区间四等分,以跟踪得到更好的根。切比雪夫多项式用来计算
Figure 97552DEST_PATH_IMAGE016
Figure 303274DEST_PATH_IMAGE017
的根。在
Figure 653484DEST_PATH_IMAGE022
处多项式
Figure 366968DEST_PATH_IMAGE016
Figure 486234DEST_PATH_IMAGE017
,可以被写作:
         
Figure 128437DEST_PATH_IMAGE023
                                 (6) 
其中:
Figure 954890DEST_PATH_IMAGE025
即为切比雪夫多项式。则
Figure 256558DEST_PATH_IMAGE026
要么是
Figure 820395DEST_PATH_IMAGE016
的系数,要么是
Figure 128885DEST_PATH_IMAGE017
的系数。
多项式
Figure 436370DEST_PATH_IMAGE027
Figure 278030DEST_PATH_IMAGE028
的某些可以用下面的递归式得出:
   
Figure 12768DEST_PATH_IMAGE029
       
Figure 808555DEST_PATH_IMAGE030
Figure 654151DEST_PATH_IMAGE031
Figure 353248DEST_PATH_IMAGE032
其中的初始化值有
Figure 258887DEST_PATH_IMAGE033
Figure 541970DEST_PATH_IMAGE034
在LPC阶段,矢量量化需要占用大量的时间,通过分析发现在LSP系数转化为LSF系数过程中,均要用到CHEBYSHEV多项式来实现线谱对的搜索,在搜索的过程,需要把
Figure 191257DEST_PATH_IMAGE021
等分为60份,在每一个小区间进行4次搜索,可以增加区间宽度和减少搜索次数来达到减少运算量的目的。通过反复验证,可以把
Figure 741930DEST_PATH_IMAGE021
划分成40个区间,每个区间进行2次搜索能保证正确性的情况下优化编码时间。
固定码本搜索及优化原理
固定码本是基于ISPP的代数码本结构,在这个码书中,码本矢量包含4个非零的脉冲。每个脉冲的幅度要么是-1,要么是1。位置如下表所示:
码本矢量由下面的式子给出:
Figure 588850DEST_PATH_IMAGE037
       (7)                                                
其中
Figure 41828DEST_PATH_IMAGE038
是单位冲击脉冲。这个码本矢量的特征是码本矢量需要通过一个自适应预置滤波器来增强谐波分量从而提高重建语音的质量。
                                  (8)      
其中T是当前子帧基音延迟的整数部分。
Figure 955054DEST_PATH_IMAGE041
是基音增益。
Figure 946144DEST_PATH_IMAGE041
可以根据先前子帧的量化后的自适应码本增益做出自适应调整
Figure 471410DEST_PATH_IMAGE042
 ,对于延迟小于40的情况,码本
Figure 889753DEST_PATH_IMAGE036
修正为:
Figure 634724DEST_PATH_IMAGE043
                (9)
这个修正也可以对脉冲响应
Figure 163925DEST_PATH_IMAGE044
进行,则
Figure 546627DEST_PATH_IMAGE045
               (10)    
固定码本搜索是通过最小化加权输入语音和加权输出重建语音的均方差来得到的。在闭环基音搜索过程使用的目标信号就是通过减去自适应码本的贡献更新的,,其中,
Figure 368139DEST_PATH_IMAGE047
是自适应码本增益。矩阵H定义如下,是一个下三角的托普列兹(Toepliz)矩阵,它的主对角线上是
Figure 701031DEST_PATH_IMAGE048
,次对角线上是
Figure 224327DEST_PATH_IMAGE049
。矩阵
Figure 984472DEST_PATH_IMAGE050
由h(n)的自行关组成,这个对称矩阵的元素如下:
Figure 438456DEST_PATH_IMAGE051
                 (11) 
相关信号
Figure 575039DEST_PATH_IMAGE052
由目标信号
Figure 932334DEST_PATH_IMAGE053
和脉冲响应
Figure 863381DEST_PATH_IMAGE044
得到:
Figure 804661DEST_PATH_IMAGE054
               (12) 
如果
Figure 479356DEST_PATH_IMAGE055
表示K阶码本矢量,码本搜索的过程就是最大化下面这个表达式:
Figure 2741DEST_PATH_IMAGE056
                      (13) 
其中T表示转置,信号
Figure 118071DEST_PATH_IMAGE052
和矩阵
Figure 297380DEST_PATH_IMAGE057
需要在码本搜索之前计算,注意只有必要的元素才需要计算,同时设计了一个有效的存储程序来加速搜索过程。因为码本矢量
Figure 759454DEST_PATH_IMAGE055
只包含4个非0的脉冲,代数码本结构允许一个快速的搜索过程。
上面的
Figure 340608DEST_PATH_IMAGE055
表示为:
Figure 364190DEST_PATH_IMAGE058
,                               (14)                  
能量E表示为:
 
Figure 30794DEST_PATH_IMAGE059
          (15)               
为了简化搜索过程,脉冲幅度由量化信号预先决定,通过设定一个确定位置的脉冲幅度为这个位置上的值。在码本搜索前,先将信号
Figure 189353DEST_PATH_IMAGE052
分解成两部分,一部分是它的绝对值
Figure 139991DEST_PATH_IMAGE060
和它的的符号
Figure 960180DEST_PATH_IMAGE061
,第二步,对矩阵
Figure 499614DEST_PATH_IMAGE057
做如下修正:
Figure 379846DEST_PATH_IMAGE062
         (14)    
并且
Figure 506196DEST_PATH_IMAGE057
主对角线上缩小2倍,
Figure 864496DEST_PATH_IMAGE063
Figure 524016DEST_PATH_IMAGE064
,                                 (15)  
Figure 575149DEST_PATH_IMAGE065
                   (16)
聚焦搜索法用来进一步简化搜索的过程.预先计算一个门限值,每当进入下一次循环之前先进行检查.只有超过这个门限才进入下一次循环.由于进入循环的最大次数是固定的,使得码本搜索只占很少时间.这个门限基于相关值C.在进行码本搜索之前,需要算出相关值的绝对值的最大值为
Figure 185865DEST_PATH_IMAGE066
,相关值的平均值为。门限值就用下式给出:
Figure 596304DEST_PATH_IMAGE068
                         (17)
进入第四次循环的条件是绝对相关值超过门限
Figure 818338DEST_PATH_IMAGE069
,其中
Figure 919280DEST_PATH_IMAGE070
Figure 947279DEST_PATH_IMAGE071
的值控制着码本搜索的比例。建议为0.5。注意这会造成可变的搜索时间。为了进一步控制搜索,进入最后一次循环的次数不能超过某个确定的最大值。在这里设置为180。
对矢量量化中距离计算的优化,在G729的码本搜索过程,有很多计算两个向量的最小距离的地方,如:
Figure 66545DEST_PATH_IMAGE072
                              (18)  
对于每一个矢量
Figure 443169DEST_PATH_IMAGE073
,计算加权误差是
Figure 280675DEST_PATH_IMAGE074
,计算下一个误差时,用这个误差与计算结果进行比较,如果比在i为10 以前,加权误差已经大于
Figure 532271DEST_PATH_IMAGE074
,就可以停止计算。
本发明提供了一种基于G729语音压缩编码算法的DSP优化方法,具有“编码时间”短的优点,解决了由于G729算法复杂度引起的编解码实时性问题。
为了达到上述目的,本发明所述的一种基于TMS320C5502的G729语音编码算法的优化方案,其关键在于按下列步骤进行。
步骤一、在PC机上面安装DSP的软件开发环境,使用CCS3.3版本;
步骤二、将G729语音编码算法的开源源代码移植到TMS320C55X上,并成功对语音编码;
步骤三、分别对G729语音编码算法中的LPC阶段,进行多项式求根算法的改进;在固定码本搜索阶段,对码本的搜索算法进行了优化;在矢量距离的计算过程中,对距离搜索的过程进行了简化;
步骤四、编译器层面,具体的设置情况为-g -k -pm -al -o3 –fr,其中-o3表示优化的级别,选择合适的优化级别有利于程序的优化,-pm表示使能文件级别的优化,-k表示生成对应的汇编文件,-g表示使用debug方式;
步骤五、C语言层面,在编码阶段和优化阶段,充分利用了TMS320C55X和编译器的特点,针对TMS320C55X DSP和CCS3.3编译器的特点,在C语言层面上,对一些模块函数进行改写,实现高效的循环和乘法成为最大的特点;
步骤六、 汇编层面,利用了编译器内嵌的汇编基本函数库来代替标准代码中的基本运算函数,大大减少代码运行时间;另外对一些特殊的代码段,比如“综合滤波器”,采用了手工汇编的方法,进一步加强了算法的实时性。
本发明是一种基于G729语音压缩编码算法的DSP优化方法,其特征在于按下列步骤进行: 使用CCS3.3版本的DSP软件开发环境并将G729语音编码算法的开源源代码一直到TMS320C55X上,成功对语音编码;对算法中的LPC阶段进行多项式求根算法的改进,在固定码本搜索阶段,对码本的搜索算法进行了优化, 在矢量距离的计算过程中,对距离搜索的过程进行了简化;对编译器进行设置;依次在C语言层面和汇编层面,对一些模块函数进行改写。本发明显著效果是:提供了一种基于G729语音压缩编码算法的DSP优化方法,具有编码时间短的优点,能够解决多路语音在DSP上实时编码的困难。
 
附图说明
 
图1  G729 编码方案图
图2  G729 算法流程图
图3  MATLAB中查看编解码语音波形和原始语音波形
图4  系统框图
具体实施方法
在PC机上面安装DSP的软件开发环境,使用CCS3.3版本。将G729语音编码算法的开源源代码移植到TMS320C5502上。为了考察移植后C代码的运行效率,利用CCS自带的Profiler工具对编解码函数的运行效率进行分析,从而对优化提供有效的指导,分析结果如表1所示。
 
   LPC阶段1 LPC阶段2 LPC阶段3 固定码本搜索阶段 参数编码
编码一帧的所需时钟个数 2864870 2473685 2187140 8371690 40478780
表1   算法优化前,编码器各部分所占用的执行时间
通过分析发现,编码的大部分时间耗费在LPC分析,码本搜索尤其是固定码本搜索阶段,矢量量化,所以算法优化主要集中在这些部分。在LPC阶段,矢量量化需要占用大量的时间,分析发现在LSP系数转化为LSF系数过程中,均要用到CHEBYSHEV多项式来实现线谱对的搜索,在搜索的过程,需要把(0,
Figure 771622DEST_PATH_IMAGE075
)等分为60份,在每一个小区间进行4次搜索,可以增加区间宽度和减少搜索次数来达到减少运算量的目的。通过反复验证,可以把(0,
Figure 319147DEST_PATH_IMAGE075
)划分成40个区间,每个区间进行2次搜索能保证正确性的情况下优化编码时间。对固定码本搜索部分的改进措施。因为G729固定码本搜索在40个可能的位置上进行,目标时使表达式最大。所以,首先用每一个脉冲去计算表达式,在同一个轨道中按重大到小的重新排列,然后选择最大的4个进行搜索。接下来再计算这几个脉冲的贡献,如果不符合要求再用深度搜索算法进行搜索。由于固定码本采用特殊的代数结构,仅含4个非零脉冲,所以可以利用这个特点进行快速深度搜索。G729采用四层嵌套循环的方法进行搜索,每一次嵌套加入一个脉冲的贡献。 要完全搜索一遍需要搜索8192次,为了减小搜索的次数,在进入最后循环前,预先算出一个门限值,只有前3个循环的贡献超过这个门限时才进行第4次搜索。
Figure 643949DEST_PATH_IMAGE076
其中,
Figure 702166DEST_PATH_IMAGE067
为平均相关,
Figure 530445DEST_PATH_IMAGE077
为最大绝对相关,
Figure 514450DEST_PATH_IMAGE078
为搜索百分比,经过测试取0.5比较合适。为了进一步控制搜索,进入最后一次循环的次数不能超过某个确定的最大值。在这里设置为180。对矢量量化中距离计算的优化,在G729的码本搜索过程,有很多计算两个向量的最小距离的地方。如式(18),对于每一个矢量
Figure 60969DEST_PATH_IMAGE073
,计算加权误差是,计算下一个误差时,用这个误差与计算结果进行比较,如果比在i为10 以前,加权误差已经大于
Figure 868312DEST_PATH_IMAGE074
,就可以停止计算。
如表2中所示,
   LPC阶段1 LPC阶段2 LPC阶段3 固定码本搜索阶段 参数编码
编码一帧的所需时钟个数 6141 141212 120150 153962 596819
表2  算法优化后各部分所占用的执行时间
算法优化前指令数1456013,算法优化后,对解码语音进行MOS测评,在保证正确的情况下,测试编码后耗费的指令为650597,大大提高了编码效率。
然后对编译器进行设置,CCS3.3具体的设置情况为-g -k -pm -al -o3 –fr,其中-o3表示优化的级别,-pm表示使能文件级别的优化,-k表示生成对应的汇编文件,-g表示使用debug方式。
C语言优化过程,利用inline关键字嵌入函数段,使用-oi<size>自动嵌入。生成高效循环代码;尽可能使用int类型作为循环计数变量,使用MUST_ITERATE pragma 来消除代码在循环周围的跳转,并帮助编译器生成高效的硬件循环;产生双乘操作,双乘操作是C55x的一个重要的硬件特性,代码中通过两个连续的MAC(乘加/乘减)指令来实现双乘操作。
    汇编层面,利用了编译器内嵌的汇编基本函数库来代替标准代码中的基本运算函数,大大减少代码运行时间。另外对一些特殊的代码段,比如“综合滤波器”,采用了手工汇编的方法,进一步加强了算法的实时性;利用特殊的结构特点,比如双MAC硬件,并行操作和循环硬件,双MAC/MAS只能使用3个操作数,通过结构重组,DSP代码在算法和应用中3个操作数就足够了。结构重组的方法包括算法中隐含的对称性(对称FIR和复数乘法),循环的展开(块FIR,单采样FIR,矩阵乘法),多通道应用(用同一个滤波器处理不同数据流),多算法应用(用不同的算法处理同一个数据流),最小化流水线和IBQ(指令缓存队列)延迟,通过使用CPU寄存器保存数据来减少内存的访问;通过使用局部循环指令来减少内存的访问;重新安排变量和数据数组在内存中的位置,或者在运行时把数组临时复制到不冲突的内存中。
进行C语言级和汇编级的优化后,编码优化各个阶段的比较如表3中所示,编码指令周期数为417948。针对TMS320C5502芯片对编译器进行设置后,整个优化方案完成,各个部分最终的优化结果如表4所示,优化后的指令数为407306。
 
   优化前 编译器优化后 LPC编码优化后 固定码本优化后 C语言优化后 汇编语言优化后
编码一帧的指令周期数 8156240 1456013 650597 503487 417948 407036
表3  C语言级和汇编级的优化后,编码优化各个阶段的比较
   LPC阶段1 LPC阶段2 LPC阶段3 固定码本搜索阶段 参数编码
编码一帧的所需时钟个数 3858 48289 28350 149955 388253
表4 具体芯片设置编译器后的各部分最终优化结果
      结论:代码优化前指令数650597,代码优化后,对解码语音进行MOS测评,在保证正确的情况下,测试编码后耗费的指令为407036,即0.4M。考虑到TMS320C5502的速度为300MIPS,一帧数据的时间为10ms,10ms时间为3M,考虑其他辅助程序的指令消耗,所以至少能实现五路语言实时编解码。

Claims (3)

1.一种基于G729语音压缩编码算法的DSP优化方法,其特征在于是按下列步骤进行:
步骤一、在PC机上面安装DSP的软件开发环境,使用CCS3.3版本;
步骤二、将G729语音编码算法的开源源代码移植到TMS320C55X上,并成功对语音编码;
步骤三、分别对G729语音编码算法中的LPC阶段,进行多项式求根算法的改进;在固定码本搜索阶段,对码本的搜索算法进行了优化;在矢量距离的计算过程中,对距离搜索的过程进行了简化;
步骤四、编译器层面,具体的设置情况为-g -k -pm -al -o3 –fr,其中-o3表示优化的级别,选择合适的优化级别有利于程序的优化,-pm表示使能文件级别的优化,-k表示生成对应的汇编文件,-g表示使用debug方式;
步骤五、C语言层面,在编码阶段和优化阶段,充分利用了TMS320C55X和编译器的特点,针对TMS320C55X DSP和CCS3.3编译器的特点,在C语言层面上,对一些模块函数进行改写,实现高效的循环和乘法成为最大的特点;
步骤六、 汇编层面,利用了编译器内嵌的汇编基本函数库来代替标准代码中的基本运算函数,大大减少代码运行时间;另外对一些特殊的代码段,比如“综合滤波器”,采用了手工汇编的方法,进一步加强了算法的实时性。
2.根据权利要求1所述的一种基于G729语音压缩编码算法的DSP优化方法,其特征在于:步骤二中,由于TMS320C55X系列DSP硬件配置的多路数据和地址并行及众多处理单元的特殊性,其代码移植的cmd文件直接关系到硬件资源的分配。
3.根据权利要求1所述的一种基于G729语音压缩编码算法的DSP优化方法,其特征在于步骤三所述不同阶段算法的改进:
在LPC阶段,矢量量化需要占用大量的时间,通过分析发现在LSP系数转化为LSF系数相互转化过程中,均要用到Chebyshev多项式来实现线谱对的搜索,在搜索的过程,需要把把                                                
Figure DEST_PATH_IMAGE001
划分成40个区间,每个区间进行2次搜索能保证正确性的情况下优化了编码时间;
对固定码本搜索部分的改进措施,因为G729固定码本搜索在40个可能的位置上进行,首先用每一个脉冲去计算表达式,在同一个轨道中按重大到小的重新排列,然后选择最大的4个进行搜索;然后计算这几个脉冲的贡献,如果不符合要求再用深度搜索算法进行搜索,由于固定码本采用特殊的代数结构,仅含4个非零脉冲,利用这个特点进行快速深度搜索,G729采用四层嵌套循环的方法进行搜索,每一次嵌套加入一个脉冲的贡献, 要完全搜索一遍需要搜索8192次,为了减小搜索的次数,在进入最后循环前,预先算出一个门限值,只有前3个循环的贡献超过这个门限时才进行第4次搜索;
对矢量量化中距离计算的优化,在G729的码本搜索过程,有很多计算两个向量的最小距离的地方,对于每一个矢量
Figure 279933DEST_PATH_IMAGE002
,计算加权误差是,计算下一个误差时,用这个误差与计算结果进行比较,如果比在i为10 以前,加权误差已经大于
Figure 438381DEST_PATH_IMAGE003
,就可以停止计算。
CN 201210344525 2012-09-18 2012-09-18 一种基于g729语音压缩编码算法的dsp优化方法 Pending CN102903366A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201210344525 CN102903366A (zh) 2012-09-18 2012-09-18 一种基于g729语音压缩编码算法的dsp优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201210344525 CN102903366A (zh) 2012-09-18 2012-09-18 一种基于g729语音压缩编码算法的dsp优化方法

Publications (1)

Publication Number Publication Date
CN102903366A true CN102903366A (zh) 2013-01-30

Family

ID=47575569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201210344525 Pending CN102903366A (zh) 2012-09-18 2012-09-18 一种基于g729语音压缩编码算法的dsp优化方法

Country Status (1)

Country Link
CN (1) CN102903366A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103618555A (zh) * 2013-11-27 2014-03-05 北京科技大学 一种海洋航线监测数据的压缩方法
CN103618555B (zh) * 2013-11-27 2016-11-30 北京科技大学 一种海洋航线监测数据的压缩方法
CN107146627A (zh) * 2013-04-29 2017-09-08 杜比国际公司 对更高阶高保真度立体声响复制表示进行压缩和解压缩的方法和装置
CN107483194A (zh) * 2017-08-29 2017-12-15 中国民航大学 基于非零脉冲位置和幅度信息的g.729语音信息隐藏算法
CN109460229A (zh) * 2018-09-17 2019-03-12 深圳壹账通智能科技有限公司 代码文件生成方法、装置、计算机设备和存储介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107146627A (zh) * 2013-04-29 2017-09-08 杜比国际公司 对更高阶高保真度立体声响复制表示进行压缩和解压缩的方法和装置
CN107146627B (zh) * 2013-04-29 2020-10-30 杜比国际公司 对更高阶高保真度立体声响复制表示进行压缩和解压缩的方法和装置
US10999688B2 (en) 2013-04-29 2021-05-04 Dolby Laboratories Licensing Corporation Methods and apparatus for compressing and decompressing a higher order ambisonics representation
US11284210B2 (en) 2013-04-29 2022-03-22 Dolby Laboratories Licensing Corporation Methods and apparatus for compressing and decompressing a higher order ambisonics representation
US11758344B2 (en) 2013-04-29 2023-09-12 Dolby Laboratories Licensing Corporation Methods and apparatus for compressing and decompressing a higher order ambisonics representation
US11895477B2 (en) 2013-04-29 2024-02-06 Dolby Laboratories Licensing Corporation Methods and apparatus for compressing and decompressing a higher order ambisonics representation
CN103618555A (zh) * 2013-11-27 2014-03-05 北京科技大学 一种海洋航线监测数据的压缩方法
CN103618555B (zh) * 2013-11-27 2016-11-30 北京科技大学 一种海洋航线监测数据的压缩方法
CN107483194A (zh) * 2017-08-29 2017-12-15 中国民航大学 基于非零脉冲位置和幅度信息的g.729语音信息隐藏算法
CN109460229A (zh) * 2018-09-17 2019-03-12 深圳壹账通智能科技有限公司 代码文件生成方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN101622664B (zh) 自适应激励矢量量化装置和自适应激励矢量量化方法
CN101542589A (zh) 基音滞后估计
CN101548317B (zh) 自适应激励矢量量化装置和自适应激励矢量量化方法
CN103493129B (zh) 用于使用瞬态检测及质量结果将音频信号的部分编码的装置与方法
CN1947173B (zh) 分层编码装置及分层编码方法
CN102903366A (zh) 一种基于g729语音压缩编码算法的dsp优化方法
EP1677287B1 (en) A system and method for supporting dual speech codecs
CN102163430B (zh) 采用信息隐藏技术进行amr-wb语音编码或解码的方法
Agaram et al. A characterization of speech recognition on modern computer systems
CN202615783U (zh) 一种基于FPGA的Mel倒谱分析合成仪
Itakura et al. A hardware implementation of a new narrow to medium band speech coding
US20050256702A1 (en) Algebraic codebook search implementation on processors with multiple data paths
CN103081007A (zh) 量化装置及量化方法
CN100416652C (zh) 增强的amr编码器快速固定码本搜索方法
WO1999041737A1 (en) Method and apparatus for high speed determination of an optimum vector in a fixed codebook
Koc et al. Text-to-Speech with Model Compression on Edge Devices
CN101609682B (zh) 自适应多速率宽带不连续发送的一种编码器和方法
Abhijna et al. Implementation of CELP encoder using Vivado HLS
Chen et al. Real-time speech communication system based on optimized G. 723.1
Yang et al. FAT-HuBERT: Front-End Adaptive Training of Hidden-Unit BERT For Distortion-Invariant Robust Speech Recognition
CN103489450A (zh) 基于时域混叠消除的无线音频压缩、解压缩方法及其设备
KR101168158B1 (ko) 대수 코드북 검색을 위한 어드레스 생성기
Prabhavalkar et al. Extreme Encoder Output Frame Rate Reduction: Improving Computational Latencies of Large End-to-End Models
Yang et al. The implementation and optimization of AMR speech codec on DSP
US9230553B2 (en) Fixed codebook searching by closed-loop search using multiplexed loop

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130130