当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]MPEG声音编码是一种基于人耳听觉特性的子带声音编码算法,它属于一种感觉声音编码方法.感觉声音编码算法的基本结构如图1所示.根据编码器着重于频率分辨率还是时间分辨率,可分为子带编码器和变换编码器.

MPEG声音编码是一种基于人耳听觉特性的子带声音编码算法,它属于一种感觉声音编码方法.感觉声音编码算法的基本结构如图1所示.根据编码器着重于频率分辨率还是时间分辨率,可分为子带编码器和变换编码器.MPEG声音第2层编码算法在频域上把声音信号划分为32个子带,属于一种子带编码器.在图1 中,时频映射也称滤波器组,用于把输入的声音信号映射成亚抽样的频率分量.根据使用的滤波器组的性质,即滤波器组在频域的分辨率的大小,这些频率分量又可叫做子带样值或频率线.

a

b

图1 感觉声音解码器结构框图

滤波器的输出或者与滤波器组并行的时频变换的输出,提供给心理声学模型以估计时间相关的声音掩蔽门限.心理声学模型使用了人们所知的同时掩蔽效应,包括有调音的掩蔽特性和无调音的掩蔽特性.如果使用声音的前后掩蔽效应,还可进一步提高掩蔽门限估计的准确性.子带样值或频率线按照尽量保证量化噪声的频谱处于掩蔽门限以下的准则进行量化和编码,这样能保证被人耳感知的量化引入的噪声最小.根据对复杂度的要求,可以使用块压扩或熵编码的分析合成方法.

帧打包把量化编码的输出和相关边信息按照规定的格式组合起来,以便供解码器使用.

2 编码质量和DSP速度

单片ADSP-2181实现MPEG声音编码关键需要解决两个问题:一是如何保证声音编码质量;其次是如何充分利用DSP的运算速度.而这两个问题往往又是一对矛盾,需要找到其最佳结合点.

一般而言,决定MPEG声音编码器的优劣主要是声学模型的好坏.但是,对于使用单片16bit定点DSP的应用而言,这个结论就不再适用了.分析表明,此时有限字长效应对编码质量的影响成了主要矛盾.特别是分析滤波器组,截尾效应竟带来了33倍于16bitAD转换量化误差的噪声,而窗系数的有限长度表示则使本来高达96dB旁瓣衰减的滤波器响应降低到不到70dB.因此,要保证声音编码质量,分析滤波器组算法必须进行精度扩展.

关于速度问题,首先想到的是使用快速算法,我们也尝试了在子带滤波中使用快速算法[4]. 但是,实践证明,这些快速算法使用在DSP上效果并不理想,其原因有以下3条:(1)只考虑了加法和乘法的次数,而对附值、寻址等操作毫不关心,但对所有指令都是单周期的DSP而言,乘法和加法的次数相对其他操作并不显得特别重要;(2)没有考虑DSP的硬件特点,其算法不能充分发挥DSP的乘累加器(MAC)并行处理的能力;(3)ADSP-2181是为16位算法操作优化的,在需要精度扩展的情况下,运算量将以数量级的速度急剧增加.

基于以上质量和速度要求的分析,我们选用了适合DSP乘累加指令的多相结构滤波器组实现方式,且采用基于MAC结构的精度扩展方法,较好地解决了编码质量和DSP速度之间的矛盾.另外,对抽样数据的输入方式、心理声学模型、比例因子编码都进行了适于ADSP-2181的改进,减少了运算量,保证了实时性.

3 算法的软件设计

软件设计是MPEG声音编码的单片DSP实现的核心,编码质量和速度的要求都需要通过精心设计DSP软件才能实现.

(1)基于MAC结构的精度扩展 MPEG声音编码的分析滤波器组可以有许多种实现方式,多相结构是MPEG标准推荐的一种,其数学表示为

(1)

(2)

分析表明,对Yk进行双字扩展可将截尾效应带来的噪声降低33倍.但是,考虑到ADSP-2181只支持16bit的乘累加运算,需要对式(1)进行转化,即

 (3)Yk=HYk+2-16LYk 
(4) 

这样,就可利用DSP的乘累加器结构,运算量只增加约1倍,存储量只增加64个字.

(2)输入数据的组织 输入数据的组织不但要考虑方便地从数模转换器取得声音原始数据,还要考虑输入数据在片内数据RAM的存储适合作为多相滤波器组和声学模型的FFT运算的输入.多相滤波器组每次移入32个新的声音数据,移出32个旧的样值,操作如下:

Xi=Xi-32,i=511,510,…,32
Xi=next-input-audio-sample,i=31,30,…,0

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


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

为了保证帧边界处理的连续性,输入数据缓存应该设计成圆缓冲的形式,其长度应能存储两帧声音输入数据.当DSP在处理一帧数据时,输入数据可以缓冲到另一帧.这样,数据移动的开销就节约了.同时,输入数据的组织还要利于声学模型的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)比例因子的编码 MPEG声音编码标准中一共给出了63个比例因子,但是并不是所有这些比例因子都可以用16bit的2进制数表示.如果用双字进行精度扩展,在量化时又将面临双字除法的巨大开销,因此,只使用其中可以用16bit的2进制补码小数精确表示的子集,即序号为3的倍数且小于等于45 的比例因子.

采用比例因子子集后,比例因子编码就可以不再通过比较的方法得到,而可以直接通过计算子带最大幅度的指数获得,简化了比例因子的编码.

(5)软件仿真结果 结合上述各项算法改进,根据ADSP-2181的特点和MPEG标准,用AD公司的开发软件进行了软件仿真.表1列出了仿真得到的各个模块对运算量和存储量要求进行的估算结果.仿真在抽样率为48kHz,编码模式为立体声,输入信号为频率为1kHz的正弦波,输出码率为 192kbit/s的情况下进行.

由表1可知,ADSP-2181的性能得到了较充分的利用.仿真结果表明,在以上的条件下,解码输出的信噪比可达80dB左右.可见,所作的算法改进是比较有效的.

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

4 硬件设计

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


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

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

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

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

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

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

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


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭