G.723.1编码器快速计算自适应码书的贡献模块的制作方法

文档序号:6581087阅读:410来源:国知局

专利名称::G.723.1编码器快速计算自适应码书的贡献模块的制作方法
技术领域
:本发明涉及一种语音信号处理
技术领域
,具体涉及G.723.1编码器中用于快速计算自适应码书的贡献模块。
背景技术
:G.723.1是一个重要的电话语音压缩标准。它可用于以非常低的比特率压缩多媒体业务中的语音或者其他音频信号成分,主要应用是作为整个H.324标准(H.324是在GSTN和无线网络上进行多媒体通信的标准)系列之一部分的甚低比特率的可视电话。G.723.1编码器基于线性预测合成分析法编码的原理,通过使一个感知加权的错误信号最小,来计算10阶线性预测编码器(LPC)滤波器。LPC滤波器系数采用一个预测分裂向量量化器(PSVQ)进行量化。未量化的LPC滤波器系数用来构成短期感知加权滤波器,该滤波器用来过滤整个帧并得到感知加权的语音信号。G.723.1编码器使用一个5阶基音预测器,采用自适应码书来估计基音预测的贡献部分。最后将该基音预测器的贡献部分从初始目标向量中减去,然后对高比特率,采用了多脉冲最大似然量化(MP-MLQ)激励,而对低比特率,采用了一个&数编码激励(ACELP)。解码器操作也是基于逐帧来完成的。对每个子帧,自适应码书激励和固定码书激励都被解码并输入到合成滤波器中,然后自适应后置滤波被执行,它包括一个共振峰和一个基音后置滤波器。另外,一个增益缩放单元将能量保持在共振峰后置滤波器输入电平。图1为G.723.1编码器组织结构图,从图中可以看出G.723.1编码器的主要功能模块如下表<table>tableseeoriginaldocumentpage6</column></row><table><table>tableseeoriginaldocumentpage7</column></row><table>在G.723.1编码器各功能模块中,计算强度最大是基音预测器C14中的自适应码书的贡献部分。以往计算自适应码书都由软件来实现,其实现方法如下自适应码书的贡献部分使用了一个5阶基音预测器和自适应码书。为了更清楚的描述该贡献部分的算法,所用到的符号说明如下表符号说明表<table>tableseeoriginaldocumentpage7</column></row><table>自适应码书的贡献部分是一个5阶基音预测器,表达式是<formula>formulaseeoriginaldocumentpage7</formula>把(1)式用矩阵的形式表示为<formula>formulaseeoriginaldocumentpage7</formula>(2)其中,B为基音预测器增益向量,<formula>formulaseeoriginaldocumentpage7</formula>(3)E是前一子帧解码的组合激励向量,£=<formula>formulaseeoriginaldocumentpage7</formula>U是被预测的基音对激励的贡献向量,<formula>formulaseeoriginaldocumentpage8</formula>根据编解码算法,被预测的基音对激励的贡献向量U通过组合滤波器S(z)后,产生了基音对语音的实际贡献(p[n^n^0....59,这个实际贡献可用向量P表示为<formula>formulaseeoriginaldocumentpage8</formula>由于组合滤波器8(2)在时间域用巻积脉沖响应{11(]1)}11=0..59表示,为便于计算,用矩阵形式表示为<formula>formulaseeoriginaldocumentpage8</formula>其中H为脉冲响应矩阵。所以基音对语音的实际贡献向量P可以表示为,=册7'(8)根据(2)式,基音对语音的实际贡献向量P可以进一步表示为<formula>formulaseeoriginaldocumentpage8</formula>其中,矩阵s表示如下<formula>formulaseeoriginaldocumentpage8</formula>矩阵S的元素表示如下:<formula>formulaseeoriginaldocumentpage8</formula>该贡献部分的主要目的就是要在一组向量量化的码书中搜索到一个最佳向量作为基音预测器增益向量B,使预测的信号P最接近目标向量T,也就是两者之间的平方差X最小,即<formula>formulaseeoriginaldocumentpage8</formula>其中<formula>formulaseeoriginaldocumentpage9</formula>(13)以上(12)式的求解问题可转化为解下列问题m,x(C(14)而(14)式也可写为max(^>,G(/)+f-0.5.V卯,0+ff]-./))(15)W/:0/=0/=0/=()该算法主要运算集中在公式(11)和公式(13)所描述的运算。而公式(11)和公式(13)涉及的都是60维向量之间的内积运算,由此可见,由软件来计算自适应码书的贡献部分存在计算量大,速度慢,耗时多等缺点。
发明内容本发明提供一种G.723.1编码器快速计算自适应码书的贡献模块,目的是把该功能模块的计算强度最大的部分采用简单的硬件实现,从而加速该模块的执行,提高计算自适应码书贡献部分的速度。为达到上述目的,本发明釆用的技术方案是一种G.723.1编码器快速计算自适应码书的贡献模块,所述贡献模块为一个硬件向量内积运算器,该向量内积运算器由二进制数的CSD码转换电路、选择加运算电路和移位加运算电^>、两个向量输入端和四个向量内积输出端组成,其中,第一向量输入端和第二向量输入端均为60维的向量输入端;第一向量内积输出端输出两个向量输入端输入的前20维向量内积运算的结果,第二向量内积输出端输出两个向量输入端输入的中间20维向量内积运算的结果,第三向量内积输出端输出两个向量输入端输入的后20维向量内积运算的结果,第四向量内积输出端输出两个向量输入端输入的60维向量内积运算的结果。上述技术方案中的有关内容解释如下1、上述方案中,对于标准二进制来说,当某一位为零时其所对应的项并不参与运算,可以用二进制数的CSD码表示方法使非零元素的数量降低,从而使加法器的数目减少,降低硬件规模。CSD码即为有符号数字量(SD)有三重值(O,-1,+1},而且任意两个非零位均不相邻。而二进制数的CSD码表示对给定数是唯一的并且是最少非零位的。因为用标准二进制表示的一个定数,如果存在一个连续三个非零位的话,则用CSD码表示只需两个非零位就能表示标准二进制中的连续三个非零位,所以小于用标准二进制表示的非零位个数。用CSD码表示相对于标准二进制表示的改进在于引入了负的符号位,从而降低了非零位个数,大大降低了逻辑资源的占用(大约平均降低33%的逻辑资源)。2、上述方案中,所述"二进制数的CSD码转换电路"为现有技术,请参见《微计算机信息》(嵌入式与SoC)2008年第24巻第8-2期,由王瑞光和田利波撰写的《基于CSD编码的16位并行乘法器的设计》中的二进制数的CSD码转换电路(刊登该杂志的第75、76页)。本发明原理是本发明设计了一种用于快速计算自适应码书的贡献模块,该贡献模块为一个硬件向量内积运算器,向量内积运算器具有两个向量输入端和四个向量内积输出端。在计算自适应码书的贡献部分过程中,当需要计算两个60维向量的内积时,只要将两个60维向量分别从向量内积运算器的第一向量输入端和第二向量输入端输入,就能从向量内积运算器的第四向量内积输出端得到结果;当需要计算多次两个20维向量的内积时,只要将三组两个20维向量分别从向量内积运算器的第一向量输入端和第二向量输入端输入,该内积运算器也可以当啦支同时执行三组独立的20维向量的内积运算,并分别从第一向量内积输出端、第二向量内积输出端和第三向量内积输出端得到结果。由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果1、本发明采用硬件向量内积运算器来计算自适应码书的贡献部分,比软件计算要快。2、本发明硬件向量内积运算器具有两个向量输入端和四个向量内积输出端。该硬件向量内积运算器不仅可以用来执行两个60维向量的内积运算,而且可以用来执行三组两个20维向量的内积运算。由于两个60维向量的内积运算和两个20维向量的内积运算都是计算自适应码书贡献部分过程中计算强度最大的部分,因此合用一个硬件向量内积运算器不仅简化的结构,而且提高计算速度,尤其在执行两个20维向量的内积运算时可以一次并行处理三组两个20维向量的内积运算。附图1为G723.1编码器组织结构附图2为本发明快速计算自适应码书的贡献模块原理附图3为本发明选择加运算电路框图;附图4为本发明移位加运算电路框图。具4本实施方式下面结合附图及实施例对本发明作进一步描述实施例第一部分一种G.723.1编码器快速计算自适应码书的贡献模块如图2所示,该贡献模块为一个硬件向量内积运算器,该向量内积运算器由二进制数的CSD码转换电路、选择加运算电路和移位加运算电路、两个向量输入端和四个向量内积输出端组成,其中,第一向量输入端I,和第二向量输入端12均为60维的向量输入端;第一向量内积输出端0J^T出两个向量输入端输入的前20维向量内积运算的结果,第二向量内积输出端O2输出两个向量输入端输入的中间20维向量内积运算的结果,第三向量内积输出端03输出两个向量输入端输入的后20维向量内积运算的结果,第四向量内积输出端04输出两个向量输入端输入的60维向量内积运算的结果。所述二进制数的CSD码转换电路、选4奪加运算电路和移位加运算电路分述如下(1)二进制数的CSD码转换电路所述二进制数的CSD码转换电路主要由段内转换电路和传递信号产生电路组成,该电路将第一向量输入端^输入的60维向量中的每个元素进行分段,根据段与段之间的延时以及段内的延时情况分别进行转换,其中,60维向量中的第一元素转换成第一列CSD码,第二元素转换成第二列CSD码,第三元素转换成第三列CSD码,以此类推到第六十元素换成第六十列CSD码,从而形成一个对应第一向量输入端I,输入的60维向量的CSD码转换矩阵,其中CSD码转换矩阵的行数等于设定的CSD码的位数M。所述二进制数的CSD码转换电路为现有技术,请参见《微计算机信息》(嵌入式与SoC)2008年第24巻第8-2期,由王瑞光和田利波撰写的《基于CSD编码的16位并行乘法器的设计》中的二进制数的CSD码转换电路(刊登该杂志的第75、76页)。(2)选择加运算电路如图3所示,所述选择加运算电路由三组20维选择加电路并列组成,每组20维选择加电路均由向量转换矩阵寄存器、向量内积数据寄存器、二十个与门和一个加法器组成,其中,每组20维选择加电路分述如下①第一组20维选择加电路第一组20维选择加电路中的向量转换矩阵寄存器用于存放CSD码转换矩阵中的第一列到第二十列数据,向量内积数据寄存器用于存放第二向量输入端12输入的60维向量中的第一元素至第二十元素,向量转换矩阵寄存器存放的每一列数据的第一个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第一组20维选择加电路的第一个输出结果;接着向量转换矩阵寄存器存放的每一列数据的第二个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第一组20维选择加电路的第二个输出结果;然后向量转换矩阵寄存器存放的每一列数据的第三个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第一组20维选择加电路的第三个输出结果;以此类推,得到第M个输出结果。②第二组20维选择加电路第二组20维选择加电路中的向量转换矩阵寄存器用于存放CSD码转换矩阵中的第二十一列到第四十列数据,向量内积数据寄存器用于存放第二向量输入端12输入的60维向量中的第一元素至第二十元素,向量转换矩阵寄存器存放的每一列数据的第一个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第二组20维选择加电路的第一个输出结果;接着向量转换矩阵寄存器存放的每一列数据的第二个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第二组20维选择加电路的第二个输出结果;然后向量转换矩阵寄存器存放的每一列数据的第三个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第二组20维选择加电路的第三个输出结果;以此类推,得到第M个输出结果。③第三组20维选择加电路第三组20维选择加电路中的向量转换矩阵寄存器用于存放CSD码转换矩阵中的第四十一列到第六十列数据,向量内积数据寄存器用于存放第二向量输入端12输入的60维向量中的第一元素至第二十元素,向量转换矩阵寄存器存放的每一列数据的第一个元素分別通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第三组20维选择加电路的第一个输出结果;接着向量转换矩阵寄存器存放的每一列数据的第二个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第三组20维选择加电路的第二个输出结果;然后向量转换矩阵寄存器存放的每一列数据的第三个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第三组20维选择加电路的第三个输出结果;以此类推,得到第M个输出结果。(3)移位力口运算电路如图4所示,所述移位加运算电路由三组移位加电路和一个三输入加法器组成,每组移位加电路均由数据更新寄存器、数据输入寄存器、移位寄存器、加法器和计数器组成,其中,每组移位加电路分述如下①第一组移位加电路第一组移位加电路中的数据更新寄存器首先存放所述第一组20维选择加电路中的第一个输出结果,数据输入寄存器存放所述第一组20维选择加电路中的第二个输出结果至第M个输出结果,移位寄存器将数据更新寄存器存放的第一组20维选4奪加电路中的第一个输出结果进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第一组20维选择加电路中的第二个输出结果相加得到第一次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第一次移位加结果更新数据更新寄存器的值,接着再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第一组20维选择加电路中的第三个输出结果相加得到第二次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第二次移位加结果再次更新数据更新寄存器的值,然后再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第一组20维选择加电路中的第四个输出结果相加得到第三次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第三次移位加结果再次更新数据更新寄存器的值,以此循环往复直至计数器数值等于M-1时,直接把第M-1次移位加结果作为两个60维向量输入端输入的前20维向量内积运算结果从第一向量内积输出端输出,同时将计数器清零;②第二组移位加电^各第二组移位加电路中的数据更新寄存器首先存放所述第二组20维选择加电路中的第一个输出结果,数据输入寄存器存放所述第二组20维选择加电路中的第二个输出结果至第M个输出结果,移位寄存器将数据更新寄存器存放的第二组20维选择加电路中的第一个输出结果进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第二组20维选择加电路中的第二个输出结果相加得到第一次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第一次移位加结果更新数据更新寄存器的值,接着再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第二组20维选择加电路中的第三个输出结果相加得到第二次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第二次移位加结果再次更新数据更新寄存器的值,然后再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第二组20维选择加电路中的第四个输出结果相加得到第三次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第三次移位加结果再次更新数据更新寄存器的值,以此循环往复直至计数器数值等于M-1时,直接4巴第M-1次移位加结果作为两个60维向量输入端输入的中间20维向量内积运算结果从第二向量内积输出端02输出,同时将计数器清零。③第三组移位加电3各第三组移位加电路中的数据更新寄存器首先存放所述第三组20维选择加电路中的第一个输出结果,数据输入寄存器存放所述第三组20维选择加电路中的第二个输出结果至第M个输出结果,移位寄存器将数据更新寄存器存放的第三组20维选择加电路中的第一个输出结果进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第三组20维选择加电路中的第二个输出结果相加得到第一次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第一次移位加结果更新数据更新寄存器的值,接着再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第三组20维选择加电路中的第三个输出结果相加得到第二次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第二次移位加结果再次更新数据更新寄存器的值,然后再将数据更新寄存器的值进行左移一位操作,左移一位:操作的结果通过加法器与数据输入寄存器中存放的第三组20维选择加电路中的第四个输出结果相加得到第三次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第三次移位加结果再次更新数据更新寄存器的值,以此循环往复直至计数器数值等于M-1时,直接把第M-1次移位加结果作为两个60维向量输入端输入的后20维向量内积运算结果从第三向量内积输出端03输出,同时将计数、、主/3令。④三输入加法器将第一向量内积输出端O,、第二向量内积输出端02和第三向量内积输出端03分别连接到三输入加法器的输入端,从三输入加法器的输出端得到两个60维向量输入端输入的60维向量内积运算结果从第四向量内积输出端04输出。第二部分关于硬件向量内积运算器中的二进制数的CSD码转换电路、选冲奪加运算电路和移位加运算电路的理论分析设向量A=(A,,A2,…,A6()),向量B=(B,,B2,的内积可以表示为Y=(A,,A2,…,A6o)(Bi,B2,…,B60)1由向量内积的定义,B6<0T,则向量A和向量B(16)A,B,+A2B2+…+A6oB60可转换为Y=(A!,A2,.,A20XBi,B2,,B20)T+(A2!,A22,.,A40)(B2!,B22,,B40)T+(A4,,A42,.,A60)(B41,B42,...,B60)T,也即两个60维的向量内积可转化为三个20维的向量内积。先以(八1,八2,...,八20)(8132"."820)1为例,将系数(Ai,A2,…,A2o)用CSD码格式表示,Ai可表示为A//-IA「》f2*其中,"fe{-l,0,l}则式(16)可以表示为<formula>formulaseeoriginaldocumentpage15</formula>称为A向量的CSD转换矩阵在本专利中令分布式算法DA的精度M=16,由(17)式中可知,因为具有固定参数,且只包含3种元素0,-1,1,因此只需要根据其每行的参数分别对输入数据(81,:62,...,82。)进行简单的加、减运算就可以得到YhY2,.,.,YM。再进行相应的移位累加操作即可得到所求结果Y。因此,在利用CDA结构进行向量内积的计算,在硬件上只需要加,减法及移位逻辑就可以实现,而减法可以用该补码的加法实现,因此只需加法器和移位逻辑即可实现CDA结构的向量内积计算。由(17)式分析可知,因为向量A的向量CSD转换矩阵只包含-l,0,1三个元素,又有矩阵的结合律可知,矩阵<formula>formulaseeoriginaldocumentpage16</formula>的乘积主要是关于输入数据(Bi,B2,…,B20)的选择加运算,从而得到Y,,Y2,…,Ym。而矩阵(2『',2M-2,...,2。)和矩阵相乘的结果Y主要是通过对Y,,Y2,...,YM的移位加运算得到。因此本专利中的硬件向量内积运算器主要由三个电路组成,即二进制数的CSD码转换电路、选择加运算电路和移位加运算电路。第三部分有关本发明硬件向量内积运算器为什么要设计成具有两个向量输入端和四个向量内积输出端的结构,其理由如下如图2所示,硬件内积运算器的输入向量I,[n]和l2[n]都是为60维的向量,而输出如下列公式表示.0;(20)5904=G+02+03二》!(/)/2(Z)(21)1、从本发明
背景技术
部分介绍中可知,要想计算自适应码书的贡献部分,必须计算公式(11)和公式(13)的结果,而公式(11)和公式(13)涉及的都是两个60维向量的内积运算。然而这样的计算可以利用本发明硬件向量内积运算器,从第四向量内积输出端04得到两个60维向量输入的向量内积运算结果。2、从本发明
背景技术
部分介绍中可知,要想计算自适应码书的贡献部分,还需要计算公式(15)。在公式(15)的运算中,由于V,化力'都可以预先计算,为了减少计算量,两个对应85或者170个条目的码书的表,预先储存了^A和每个表中包含多个码字向量,每个向量包括20个元素,用'Bn来代表这个向量。表格的每个向量元素格式如下,第一到第五个元素6。^&&64第六到第十个元素-0.56。2—0.56,2-0.5622-—0.5642第十一到第二十元素一6。Z)i_6062_6々2-6063_"63_6263-6064-6々4一6264-6364令20维向量A的元素为第一到第五个元素G(0)G(1)G(2)G(3)G(4)第六到第十个元素e(o,o)e(2,2)2(3,3)2(4,4)第十一到第二十元素0(1,0)2(2,0)。(2,1)g(3,0)卿)2(3,2)2(4,0),),3)则公式(l5)可被改写如下19max(Z(局').i"(,')))"二fl,2,3,…170高比特率或低比特率l(22)"一il,2,3,…85高比特率J由公式(22)可知,该运算为20维向量内积的运算,可以利用本发明硬件向量内积运算器来计算。因为公式(22)所表示的运算是个优化问题,需要做多次20维的内积运算。由于硬件向量内积运算器是60维的,从输出公式(18)、公式(19)和公式(20)可看出,该内积运算器也可以当做同时执行的三个独立的20维的向量内积。这样,公式(22)所表示的运算所需要的多次20维内积运算,可化成三个一组,然后利用硬件向量内积运算器来计算。上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。权利要求1、一种G.723.1编码器快速计算自适应码书的贡献模块,其特征在于所述贡献模块为一个硬件向量内积运算器,该向量内积运算器由二进制数的CSD码转换电路、选择加运算电路和移位加运算电路、两个向量输入端和四个向量内积输出端组成,其中,第一向量输入端(I1)和第二向量输入端(I2)均为60维的向量输入端;第一向量内积输出端(O1)输出两个向量输入端输入的前20维向量内积运算的结果,第二向量内积输出端(O2)输出两个向量输入端输入的中间20维向量内积运算的结果,第三向量内积输出端(O3)输出两个向量输入端输入的后20维向量内积运算的结果,第四向量内积输出端(O4)输出两个向量输入端输入的60维向量内积运算的结果。2、根据权利要求1所述的贡献模块,其特征在于所述二进制数的CSD码转换电路、选择加运算电路和移位加运算电路分述如下(1)二进制数的CSD码转换电路所述二进制数的CSD码转换电路主要由段内转换电路和传递信号产生电路组成,该电路将第一向量输入端(IJ输入的60维向量中的每个元素进行分段,根据段与段之间的延时以及段内的延时情况分别进行转换,其中,60维向量中的第一元素转换成第一列CSD码,第二元素转换成第二列CSD码,第三元素转换成第三列CSD码,以此类推到第六十元素换成第六十列CSD码,从而形成一个对应第一向量输入端(I,)输入的60维向量的CSD码转换矩阵,其中CSD码转换矩阵的行数等于设定的CSD码的位数M;(2)选择加运算电路所述选择加运算电路由三组20维选择加电路并列组成,每组20维选择加电路均由向量转换矩阵寄存器、向量内积数据寄存器、二十个与门和一个加法器组成,其中,每組20维选4奪加电路分述如下①第一组20维选#^加电^各第一组20维选择加电路中的向量转换矩阵寄存器用于存放CSD码转换矩阵中的第一列到第二十列数据,向量内积数据寄存器用于存放第二向量输入端(12)输入的60维向量中的第一元素至第二十元素,向量转换矩阵寄存器存放的每一列数据的第一个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第一组20维选择加电路的第一个输出结果;接着向量转换矩阵寄存器存放的每一列数据的第二个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第一组20维选择加电路的第二个输出结果;然后向量转换矩阵寄存器存放的每一列数据的第三个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第一组20维选择加电路的第三个输出结果;以此类推,得到第M个输出结果;②第二组20维选择加电路第二组20维选择加电路中的向量转换矩阵寄存器用于存放CSD码转换矩阵中的第二十一列到第四十列数据,向量内积数据寄存器用于存放第二向量输入端(12)输入的60维向量中的第一元素至第二十元素,向量转换矩阵寄存器存放的每一列数据的第一个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第二组20维选择加电路的第一个输出结果;接着向量转换矩阵寄存器存放的每一列数据的第二个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第二组20维选择加电路的第二个输出结果;然后向量转换矩阵寄存器存放的每一列数据的第三个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第二组20维选择加电路的第三个输出结果;以此类推,得到第M个输出结果;③第三组20维选择加电路第三组20维选择加电路中的向量转换矩阵寄存器用于存放CSD码转换矩阵中的第四十一列到第六十列数据,向量内积数据寄存器用于存放第二向量输入端(12)输入的60维向量中的第一元素至第二十元素,向量转换矩阵寄存器存放的每一列数据的第一个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第三组20维选择加电路的第一个输出结果;接着向量转换矩阵寄存器存放的每一列数据的第二个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第三组20维选择加电路的第二个输出结果;然后向量转换矩阵寄存器存放的每一列数据的第三个元素分别通过与门和向量内积数据寄存器存放的第一元素至第二十元素对应进行与运算,并把这些运算结果通过加法器相加得到第三组20维选择加电路的第三个输出结果;以此类推,得到第M个输出结果;(3)移位加运算电路所述移位加运算电^各由三组移位加电路和一个三输入加法器组成,每组移位加电路均由数据更新寄存器、数据输入寄存器、移位寄存器、加法器和计数器组成,其中,每组移位加电路分述如下①第一组移位加电鴻^第一组移位加电路中的数据更新寄存器首先存放所述第一组20维选择加电路中的第一个输出结果,数据输入寄存器存放所述第一组20维选择加电路中的第二个输出结果至第M个输出结果,移位寄存器将数据更新寄存器存放的第一组20维选择加电路中的第一个输出结果进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第一组20维选择加电路中的第二个输出结果相加得到第一次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第一次移位加结果更新数据更新寄存器的值,接着再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第一组20维选择加电路中的第三个输出结果相加得到第二次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第二次移位加结果再次更新数据更新寄存器的值,然后再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第一组20维选择加电路中的第四个输出结果相加得到第三次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第三次移位加结果再次更新数据更新寄存器的值,以此循环往复直至计数器数值等于M-1时,直接把第M-1次移位加结果作为两个60维向量输入端输入的前20维向量内积运算结果从第一向量内积输出端(O,)输出,同时将计数器清零;②第二组移位加电路第二组移位加电路中的数据更新寄存器首先存放所述第二组20维选择加电路中的第一个输出结果,数据输入寄存器存放所述第二组20维选择加电路中的第二个输出结果至第M个输出结果,移位寄存器将数据更新寄存器存放的第二组20维选择加电路中的第一个输出结果进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第二组20维选择加电路中的第二个输出结果相加得到第一次移位加结果,并使计数器加一,当计数器数值小于M-l时,将第一次移位加结果更新数据更新寄存器的值,接着再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第二组20维选择加电路中的第三个输出结果相加得到第二次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第二次移位加结果再次更新数据更新寄存器的值,然后再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第二组20维选择加电路中的第四个输出结果相加得到第三次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第三次移位加结果再次更新数据更新寄存器的值,以此循环往复直至计数器数值等于M-1时,直接把第M-1次移位加结果作为两个60维向量输入端输入的中间20维向量内积运算结果从第二向量内积输出端(02)输出,同时将计数器清零;③第三组移位加电路第三组移位加电路中的数据更新寄存器首先存放所述第三组20维选才奪加电路中的第一个输出结果,数据输入寄存器存放所述第三组20维选择加电路中的第二个输出结果至第M个输出结果,移位寄存器将数据更新寄存器存放的第三组20维选择加电路中的第一个输出结果进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第三组20维选择加电路中的第二个输出结果相加得到第一次移位加结果,并使计数器加一,当计数器数值小于M-l时,将第一次移位加结果更新数据更新寄存器的值,接着再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第三组20维选择加电路中的第三个输出结果相加得到第二次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第二次移位加结果再次更新数据更新寄存器的值,然后再将数据更新寄存器的值进行左移一位操作,左移一位操作的结果通过加法器与数据输入寄存器中存放的第三组20维选择加电路中的第四个输出结果相加得到第三次移位加结果,并使计数器加一,当计数器数值小于M-1时,将第三次移位加结果再次更新数据更新寄存器的值,以此循环往复直至计数器数值等于M-1时,直接把第M-1次移位加结果作为两个60维向量输入端输入的后20维向量内积运算结果从第三向量内积输出端(03)输出,同时将计数器清零;④三输入加法器将第一向量内积输出端(OJ、第二向量内积输出端(02)和第三向量内积输出端(03)分别连接到三输入加法器的输入端,从三输入加法器的输出端得到两个60维向量输入端输入的60维向量内积运算结果从第四向量内积输出端(04)输出。全文摘要一种G.723.1编码器快速计算自适应码书的贡献模块,其特征在于所述贡献模块为一个硬件向量内积运算器,该向量内积运算器具有两个向量输入端和四个向量内积输出端,不仅可以执行两个60维向量的内积运算,而且可以执行三组两个20维向量的内积运算。由于这两种运算都是计算自适应码书贡献部分过程中计算强度最大的部分,因此合用一个硬件向量内积运算器不仅简化的结构,而且提高计算速度,尤其在执行两个20维向量的内积运算时可以一次并行处理三组两个20维向量的内积运算,大大提高了计算速度。文档编号G06F7/523GK101630242SQ200910181979公开日2010年1月20日申请日期2009年7月28日优先权日2009年7月28日发明者匡启和,肖佐楠,茳郑申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1