保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

基于定点DSP的MP3间频编码算法研究及实现


算出掩蔽阈值曲线,在压缩其它音频源时,不再计算每帧的心理声学模型,而是认为每帧信号与上述被分析过的代表帧具有相同的掩蔽特性。这样,虽然不是很准确,但通常情况下,误差不会太大,不易被人耳察觉,省去心理学模型需的巨大运算量和存储空间。实践证明编码效果令人满意,而且对于要求不是很高的应用场合,可以认为掩蔽阈值是频率的常数函数,每个频带采用相同的量化阶,也听不出声音质量的明显下降。

2.3 量化编码迭代循环的简化

量化编码迭代是两重循环过程,图3是外迭代循环流图,迭代的目的是在可用比特数的限制之内,以各频带的掩蔽值为依据,确定全局增益(体现了全局量化阶)和各频带的缩放因子(体现了局部量化阶)。内循环逐步增加量化器步长,即全局增益,直到MDCT系数量化后可被可用比特进行霍夫曼编码,即通过增加全局量化阶以降低编码比特数;外循环依据掩蔽阈值检测各缩放因子带的失真,若超过允许失真,则扩大该带的MDCT系数,即增大该带的缩放因子,以降低局部失真;最后一次迭代的结果作为最终的霍夫曼码。每一次循环都要用当前量化阶量化并霍夫曼编码一次,运算量相当大。从外循环可以看出掩蔽阈值最终决定缩放因子,为了能省去外控代循环,将代表帧的缩放因子作成表格,供每帧采用。

由于上述三个模块是最主要并且运算量最大的模块,通过对它们的简化和优化,程序大小和运算量可得到极大的减少。

3 用定点DSP实现MP3压缩算法

为了实现MP3的实时编码,必须采用高速DSP芯片。采用美国德州仪器(TI)公司的主流定点DSP芯片TMS320C549,其运算速度100MIPS,调试开发的环境是TI公司的第三方Spectrum Digital公司的EVM评估板,板上除了TMS320C549自带32K字片上内存外,还有128K字片外内存,数模转换采用TI的TLC320AD55,与PC机通过JTAG口实现数据与程序的加载和调试。

由于评估板与主机的接口速度太慢,即使能做到实时压缩,将比特流传给PC机存盘的速度也会跟不上。因此笔者采用的办法是:将原始PCM音频数据从PC机的硬盘文件加载到板上的片外内存,压缩后的数据传给PC机存盘,再加载后续文件,压缩存盘,直到整个音频文件全部压缩完,最后用C语言程序将各数据块拼成MP3文件,用软件解码程序回放。是否能达到实时要求只能通过测试每帧运行的指令数判断。

在运用快速算法计算子带分析滤波器时,考虑到DSP芯片的特点,每分解一次,要作一次加(10)式的加法,势必降低精度,另外(11)和(12)式的系数动态范围太大,精度也会受到影响,因此,只分解到16点DCT运算。

采用静态心理声学模型,心理声学模型和量化编码外循环所需的运算量就为零。代表帧的心理声学模型和缩放因子采用C语言或MATLAB语言编程计算,或者将网上下载MP3文件中的缩放因子信息破译出来加以利用,子带分析滤波器之后的MDCT全部采用长块。表1是静态缩放因子比特数和缩放因子的一种设置方案。

表1 缩放因子数据表格

缩放因子带 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 缩放因子比特数 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 缩放因子 1 1 0 0 1 1 4 5 3 7 5 3 0 3 0 1 0 7 5 0 3

另外在内循环中,首先初步选择一个全局增益使最大量化值小于码表可编码的最大值,标准推荐的作法是全局增益从小开始,每循环一次量化后,比较最大量化值,并调整一次全局增益,直到满足要求为止。本程序省去了这一循环,事先根据最大谱线值计算出应有的全局增益,作成数

《基于定点DSP的MP3间频编码算法研究及实现(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/166590.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。