AAC解码算法详细原理解析介绍.doc
《AAC解码算法详细原理解析介绍.doc》由会员分享,可在线阅读,更多相关《AAC解码算法详细原理解析介绍.doc(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、AACAAC 解码算法原理详解解码算法原理详解原作者:龙帅 () 此文章为便携式多媒体技术中心提供,未经站长授权,严禁转载,但欢迎链接到此地 址。本文详细介绍了符合本文详细介绍了符合 ISO/IECISO/IEC 13818-7(MPEG213818-7(MPEG2 AACAAC audioaudio codec)codec) , , ISO/IECISO/IEC 14496-3(MPEG414496-3(MPEG4 AudioAudio CodecCodec AACAAC LowLow Complexity)Complexity)进行压缩的的进行压缩的的 AACAAC 音频音频的解码算法。的
2、解码算法。1 1、程序系统结构、程序系统结构下面是 AAC 解码流程图:AACAAC 解码流程图解码流程图在主控模块开始运行后,主控模块将 AAC 比特流的一部分放入输入缓冲区,通 过查找同步字得到一帧的起始,找到后,根据 ISO/IEC 13818-7 所述的语法开 始进行 Noisless Decoding(无噪解码),无噪解码实际上就是哈夫曼解码,通 过反量化(Dequantize)、联合立体声(Joint Stereo),知觉噪声替换(PNS), 瞬时噪声整形(TNS),反离散余弦变换(IMDCT),频段复制(SBR)这几个模 块之后,得出左右声道的 PCM 码流,再由主控模块将其放入
3、输出缓冲区输出到 声音播放设备。2.2. 主控模块主控模块主控模块的主要任务是操作输入输出缓冲区,调用其它各模块协同工作。其中, 输入输出缓冲区均由 DSP 控制模块提供接口。输出缓冲区中将存放的数据为解 码出来的 PCM 数据,代表了声音的振幅。它由一块固定长度的缓冲区构成,通 过调用 DSP 控制模块的接口函数,得到头指针,在完成输出缓冲区的填充后, 调用中断处理输出至 I2S 接口所连接的音频 ADC 芯片(立体声音频 DAC 和 DirectDrive 耳机放大器)输出模拟声音。3.3. 同步及元素解码同步及元素解码同步及元素解码模块主要用于找出格式信息,并进行头信息解码,以及对元素
4、信息进行解码。这些解码的结果用于后续的无噪解码和尺度因子解码模块。AAC 的音频文件格式有以下两种:ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征 是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解 码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它 是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似 于 mp3 数据流格式。AAC 的 ADIF 格式见下图:3.13.1 ADIFAD
5、IF 的组织结构的组织结构 AAC 的 ADTS 的一般格式见下图:3.23.2 ADTSADTS 的组织结构的组织结构 图中表示出了 ADTS 一帧的简明结构,其两边的空白矩形表示一帧前后的数据。ADIF 和 ADTS 的 header 是不同的。它们分别如下所示:3.33.3 ADIFADIF 的头信息的头信息3.43.4 ADTSADTS 的固定头信息的固定头信息ADTSADTS 的可变头信息的可变头信息3.53.5 帧同步帧同步帧同步目的在于找出帧头在比特流中的位置,13818-7 规定,aac ADTS 格式的 帧头为 12 比特的“1111 1111 1111”. 3.63.6 头
6、信息解码头信息解码ADTS 的头信息为两部分组成,其一为固定头信息,紧接着是可变头信息。固定 头信息中的数据每一帧都相同,而可变头信息则在帧与帧之间可变。3.73.7 元素信息解码元素信息解码在 AAC 中,原始数据块的组成可能有六种不同的元素。它们分别是SCE: Single Channel Element 单通道元素。单通道元素基本上只由一个 ICS 组成。一个原始数据块最可能由 16 个 SCE 组成。CPE: Channel Pair Element 双通道元素,由两个可能共享边信息的 ICS 和一 些联合立体声编码信息组成。一个原始数据块最多可能由 16 个 SCE 组成。CCE:
7、Coupling Channel Element 藕合通道元素。代表一个块的多通道联合立 体声信息或者多语种程序的对话信息。LFE: Low Frequency Element 低频元素。包含了一个加强低采样频率的通道。DSE: Data Stream Element 数据流元素,包含了一些并不属于音频的附加信息。PCE: Program Config Element 程序配置元素。包含了声道的配置信息。它可 能出现在 ADIF 头部信息中。FIL: Fill Element 填充元素。包含了一些扩展信息。如 SBR,动态范围控制 信息等。3.83.8 处理流程处理流程(1). 判断文件格式,
8、确定为 ADIF 或 ADTS(2). 若为 ADIF,解 ADIF 头信息,跳至第 6 步。(3). 若为 ADTS,寻找同步头。(4). 解 ADTS 帧头信息。(5). 若有错误检测,进行错误检测。(6). 解块信息。(7). 解元素信息。4.4.无噪声解码无噪声解码无噪编码就是哈夫曼编码,它的作用在于进一步减少尺度因子和量化后频谱的 冗余,即将尺度因子和量化后的频谱信息进行哈夫曼编码。全局增益编码成一个 8 位的无符号整数,第一个尺度因子与全局增益值进行差 分编码后再使用尺度因子编码表进行哈夫曼编码。后续的各尺度因子都与前一 个尺度因子进行差分编码。量化频谱的无噪编码有两个频谱系数的划
9、分。其一为 4 元组和 2 元组的划分, 另一个为节划分。对前一个划分来说,确定了一次哈夫曼表查找出的数值是 4 个还是 2 个。对后一个划分来说,确定了应该用哪一个哈夫曼表,一节中含有 若干的尺度因子带并且每节只用一个哈夫曼表。4.14.1 分段分段无噪声编码将输入的 1024 个量化频谱系数分为几个段(section),段内的各 点均使用同一个哈夫曼表,考虑到编码效率,每一段的边界最好同尺度因子带 的边界重合。所以每一段必段传送信息应该有:段长度,所在的尺度因子带, 使用的哈夫曼表。4.24.2 分组和交替分组和交替分组是指忽略频谱系数所在窗,将连续的,具有相同尺度因子带的频谱系数分 为一
10、组放在一起,共享一个尺度因子从而得到更好的编码效率。这样做必然会 引起交替,即本来是以c组窗尺度因子带 系数索引为顺序的系数排列,变为将尺度因子带同的系数放在一起:c组尺度因子带窗 系数索引这样就引起了相同窗的系数的交替。4.34.3 大量化值的处理大量化值的处理大量化值在 AAC 中有两种处理方法:在哈夫曼编码表中使用 escape 标志或使用 脉冲 escape 方法。前者跟 mp3 编码方法相似,在许多大量化值出现时采用专门 的哈夫曼表,这个表暗示了它的使用将会在哈夫曼编码后面跟跟一对 escape 值 及对值的符号。在用脉冲 escape 方法时,大数值被减去一个差值变为小数值, 然后
11、使用哈夫曼表编码,后面会跟一个脉冲结构来帮助差值的还原。无噪解码的流程图如下:无噪声解码流程图无噪声解码流程图5.5.尺度因子解码及逆量化尺度因子解码及逆量化在 aac 编码中,逆量化频谱系数是由一个非均匀量化器来实现的,在解码中需 进行其逆运算。即保持符号并进行 4/3 次幂运算。在频域调整量化噪声的基本方法就是用尺度因子来进行噪声整形。尺度因子就是一个用来改变在一个尺度因子带的所有的频谱系数的振幅增益值。使用尺度 因子这种机制是为了使用非均匀量化器在频域中改变量化噪声的比特分配。5.15.1 尺度因子带(尺度因子带(scalefactor-bandscalefactor-band)频率线根
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AAC 解码 算法 详细 原理 解析 介绍
限制150内