时间:2024-09-03
重庆邮电大学光电工程学院 谢小平
AAC(Advanced Audio Coding,高级音频编码),是一种由MPEG-4标准定义的有损音频压缩格式,其中Low Complexity Profile(LC AAC)被广泛用于商业市场,例如Apple非常著名的iTunes音乐库。国际DAB+标准中音频数据采用MPEG-4 HE-AAC v2(High Efficiency Advanced Audio Coding V2,高效率先进音频编码版本2)编码方式,HEAAC v2利用了频带复制(Spectral Band Replication,SBR)技术和参数立体声(parametric stereo,PS)技术[3],达到了较高的压缩效率,大大地节省了码率。但HE-AAC v2计算复杂度大,硬件实现难度高,支持DAB+的发射机昂贵,成本高。MPEG-4 LC AAC编码器复杂度相对较低,在中等码率下的编码效率和音质方面能找到平衡点,且满足实时编码的需要。本文基于FAAC开源代码,对MPEG-4 AAC编码器进行改进,重新编译FAAC库,调用FAAC编码库对pcm音频数据进行编码压缩,使编码后的AAC音频能在重庆邮电大学微电子工程重点实验室自主研发的低成本DAB+发射系统中发射。
AAC算法复杂度很高,具有高度模块化的特点,有9种不同的规格,其中MPEG-4 LC AAC编码器复杂度相对较低,在中等码率下的编码效率和音质方面能找到平衡点,满足实时编码的需要。本文中的AAC实时编码器便是根据LC AAC类型来设计。图1所示为LC AAC编码器的原理框图。
图1 LC AAC编码器框图
输入的采样信号通过滤波器组,使用MDCT(改进离散余弦变换)将信号从时域信号转变为频域信号。心理声学模型根据输入的音频信号计算出掩蔽阈值、信掩比。TNS(瞬时噪声整形)和M/S立体声编码是可选模块,TNS的主要功能是减少预回声,M/S立体声是根据左右声道的相关性以提高编码效率。量化模块根据心理声学模型计算出的掩蔽阈值和信掩比对频谱系数进行量化处理,进行哈夫曼编码后进行码流打包,输出AAC码流[1]。
DAB+标准对AAC有一些限制,要求的传输长度是每个声道每个AU中有960个采样点,采样率只支持48kHz、32kHz、24kHz、16kHz,规定将AAC音频帧封装在5个连续的DAB传输帧构成的超级帧中,以时长120ms的DAB超级帧为单位来传送AAC音频帧[2]。
DAB+系统的音频编码处理流程如图2所示。采样后的PCM音频数据经过LC AAC压缩编码后,进行超级帧打包处理,然后经RS编码和虚拟交织处理后送入DAB+主服务信道编码器[3]。
图2 DAB+编码流程图
本文中的MPEG-4 LC AAC实时编码器在DAB+系统中的实现,主要基于FAAC开源代码,根据DAB+对AAC的限制,对FAAC开源代码进行修改,然后在VS2013平台中,编译成FAAC静态库,在DAB+编码过程中,编写调用FAAC库的接口代码即可。
在Windows平台下,VS2013开发环境中,调用FAAC库对采集到的PCM音频信号进行编码压缩,经RS编码和虚拟交织处理后,得到压缩率较高的AAC文件,能在重庆邮电大学微电子工程重点实验室自主研发的DAB+发射系统中进行发射,实验室自主研发的接收机能对其进行解码播放,且音质较好。
本文介绍了MPEG-4 LC AAC编码算法,根据DAB+标准的特点和要求,在某种特殊场景下,基于FAAC开源代码,对MPEG-4 AAC编码器进行改进,重新编译FAAC库,调用FAAC编码库对pcm音频数据进行编码压缩,使编码后的AAC音频能在重庆邮电大学微电子工程重点实验室自主研发的低成本DAB+发射系统中实时发射。经多次调试,该编码器运行稳定,复杂度相对较低,在中等码率下的编码效率和音质方面能找到平衡点,且满足实时编码的需要。
[1]卜士喜.基于DAB+系统的音频解码算法研究、移植与优化[D].浙江:浙江大学,2010.
[2]ETSI TS 102 563 V1.1.1.Digital Audio Broadcasting(DAB);Transport of Advanced Audio Coding(AAC)audio[S].2007.
[3]王国裕,吕娜娜.新一代数字音频广播DAB+的音频处理方案分析与测试[J].电子质量,2012(01):14-17.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!