新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > MPEG声音编码的单片DSP实现

MPEG声音编码的单片DSP实现

作者:时间:2011-01-09来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/151117.htm

然而A-2181并不适于数据的移动,每个赋值运算需要两个指令才能完成,每次分析滤波操作需要1024个指令周期.如果利用A-2181的多通道自动缓冲串口及间接寻址能力,适当地组织输入数据,就可利用滑动窗的方法数据的移入和移出,如图2所示.

图2 多相滤波的滑动窗技术


为了保证帧边界处理的连续性,输入数据缓存应该设计成圆缓冲的形式,其长度应能存储两帧输入数据.当在处理一帧数据时,输入数据可以缓冲到另一帧.这样,数据移动的开销就节约了.同时,输入数据的组织还要利于声学模型的FFT运算,FFT需要利用ADSP-2181的地址反转寻址模式.由于FFT计算和输入数据的缓存是同时进行的,所以FFT计算的指针需要地址反转,而输入缓冲的指针却不能地址反转,否则会导致输入数据排列混乱.ADSP-2181提供这种能力,它的第一地址指针组I0,I1,I2,I3有地址反转能力,而第二地址指针组I4,I5,I6,I7却不受地址反转模式的影响.所以从第二地址指针组中选择指针进行输入缓冲,从第一地址指针组中选择指针进行FFT计算.

(3)声学模型的改进 用DSP心理声学模型的一个难题是其中有大量的对数运算,虽然可以用多项式逼近求得其近似值,但是其巨大的运算量说明这不是一个明智的选择.在改进的心理声学模型中,FFT运算后并不立即换算到对数域,而是用分段折线逼近线性域的掩蔽效应曲线.为简单起见,使用与标准一致的分段方法.逼近采用取指数的多项式展开的一次项的方法,这种方法虽然比较粗糙,但正如前面分析的那样,声学模型在16bit定点实现时不是主要矛盾,因而还是可以接受的.

得到掩蔽门限以后,为计算信掩比供比特分配使用,还是需要从线性域转换到对数域.这时,我们采用一种利用ADSP-2181移位器的近似计算方法.通过EXP指令,可以提取2进制补码小数的指数,对能量而言又有1bit约3dB.因而指数值乘3就近似得到该补码小数的dB值,尾数部分的影响忽略不计.

(4)比例因子的 声音标准中一共给出了63个比例因子,但是并不是所有这些比例因子都可以用16bit的2进制数表示.如果用双字进行精度扩展,在量化时又将面临双字除法的巨大开销,因此,只使用其中可以用16bit的2进制补码小数精确表示的子集,即序号为3的倍数且小于等于45的比例因子.
采用比例因子子集后,比例因子就可以不再通过比较的方法得到,而可以直接通过计算子带最大幅度的指数获得,简化了比例因子的编码.

(5)软件仿真结果 结合上述各项算法改进,根据ADSP-2181的特点和标准,用AD公司的开发软件进行了软件仿真.表1列出了仿真得到的各个模块对运算量和存储量要求进行的估算结果.仿真在抽样率为48kHz,编码模式为立体声,输入信号为频率为1kHz的正弦波,输出码率为 192kbit/s的情况下进行. 由表1可知,ADSP-2181的性能得到了较充分的利用.仿真结果表明,在以上的条件下,解码输出的信噪比可达80dB左右.可见,所作的算法改进是比较有效的.

表1 各模块的运算量和存储量要求

运算量/(106指令/s) 程序存储量/103字数据存储量/103字 子带滤波 18 3.0 6.5 声学模型 103.5 1.5 比特分配和量化 2 2.0 — 格式化比特流 1 0.5 1.0

4 硬件设计

硬件结构框图如图3所示.各模块的基本功能如下:


  
DSP核:除完成所有编码算法以外,还要完成对模数转换电路的初始化配置;通过辅助控制电路选择抽样时钟,通过接口电路接受主机的编码参数.

辅助控制电路:由FPGA及附属电路实现,完成时钟的产生、FIFO状态的监测、地址译码等功能.


输出缓冲:编码码流的暂时存储区,同时提供完全异步的输出接口方式.在需要实现图象声音唇形同步的应用中特别有用.


外部存储器:包括BDMA空间、I/O空间.


模数转换电路:完成声音的数字化,直接与DSP的串口0连接.抽样频率由外部提供的256倍抽样时钟的频率决定,正常工作前需要进行初始化.

接口电路:接口电路分为两部分,一部分是编码输出接口,另一部分是与主机连接的接口.主机接口使用RS232接口芯片完成DSP串口1与主机串口的连接,DSP使用中断和内部计时器实现异步串型通信.

上述方案已经在“九五”科技攻关项目中实现,实时编解码的声音通过了主观测试.


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭