1 / 17
文档名称:

AAC解码算法原理详解.doc

格式:doc   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

AAC解码算法原理详解.doc

上传人:yzhlyb 2016/4/22 文件大小:0 KB

下载得到文件列表

AAC解码算法原理详解.doc

相关文档

文档介绍

文档介绍:AAC 解码算法原理详解原作者:龙帅(loppp138@) 此文章为便携式多媒体技术中心提供,未经站长授权,严禁转载,但欢迎链接到此地址。本文详细介绍了符合 ISO/IEC 13818-7(MPEG2 AAC audio codec) , ISO/IEC 14496-3(MPEG4 Audio Codec AAC plexity) 进行压缩的的 AAC 音频的解码算法。 1 、程序系统结构下面是 AAC 解码流程图: AAC 解码流程图在主控模块开始运行后,主控模块将 AAC 比特流的一部分放入输入缓冲区,通过查找同步字得到一帧的起始, 找到后, 根据 ISO/IEC 13818-7 所述的语法开始进行 Noisless Decoding( 无噪解码) ,无噪解码实际上就是哈夫曼解码,通过反量化(Dequantize) 、联合立体声( Joint Stereo ), 知觉噪声替换( PNS ), 瞬时噪声整形( TNS ), 反离散余弦变换( IMDCT ), 频段复制( SBR ) 这几个模块之后, 得出左右声道的 PCM 码流, 再由主控模块将其放入输出缓冲区输出到声音播放设备。 2. 主控模块主控模块的主要任务是操作输入输出缓冲区,调用其它各模块协同工作。其中,输入输出缓冲区均由 DSP 控制模块提供接口。输出缓冲区中将存放的数据为解码出来的 PCM 数据,代表了声音的振幅。它由一块固定长度的缓冲区构成,通过调用 DSP 控制模块的接口函数,得到头指针, 在完成输出缓冲区的填充后, 调用中断处理输出至 I2S 接口所连接的音频 ADC 芯片(立体声音频 DAC 和 DirectDrive 耳机放大器)输出模拟声音。 3. 同步及元素解码同步及元素解码模块主要用于找出格式信息, 并进行头信息解码, 以及对元素信息进行解码。这些解码的结果用于后续的无噪解码和尺度因子解码模块。 AAC 的音频文件格式有以下两种: ADIF : Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。 ADTS : Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于 mp3 数据流格式。 AAC 的 ADIF 格式见下图: 的组织结构 AAC 的 ADTS 的一般格式见下图: ADTS 的组织结构图中表示出了 ADTS 一帧的简明结构,其两边的空白矩形表示一帧前后的数据。 ADIF 和 ADTS 的 header 是不同的。它们分别如下所示: 的头信息 ADTS 的固定头信息 ADTS 的可变头信息 帧同步帧同步目的在于找出帧头在比特流中的位置, 13818-7 规定, aac ADTS 格式的帧头为 12 比特的“ 1111 1111 1111 ”. 头信息解码 ADTS 的头信息为两部分组成,其一为固定头信息,紧接着是可变头信息。固定头信息中的数据每一帧都相同,而可变头信息则在帧与帧之间可变。 元素信息解码在 AAC 中,原始数据块的组成可能有六种不同的元素。它们分别是 SCE: Single Channel Element 单通道元素。单通道元素基本上只由一个 ICS 组成。一个原始数据块最可能由 16个 SCE 组成。 CPE: Channel Pair Element 双通道元素, 由两个可能共享边信息的 ICS 和一些联合立体声编码信息组成。一个原始数据块最多可能由 16个 SCE 组成。 CCE: Coupling Channel Element 藕合通道元素。代表一个块的多通道联合立体声信息或者多语种程序的对话信息。 LFE: Low Frequency Element 低频元素。包含了一个加强低采样频率的通道。 DSE: Data Stream Element 数据流元素,包含了一些并不属于音频的附加信息。 PCE: Program Config Element 程序配置元素。包含了声道的配置信息。它可能出现在 ADIF 头部信息中。 FIL: Fill Element 填充元素。包含了一些扩展信息。如 SBR ,动态范围控制信息等。 处理流程(1). 判断文件格式,确定为 ADIF 或 ADTS (2). 若为 ADIF ,解 ADIF 头信息,跳至第 6 步。(3). 若为 ADTS ,寻找同步头。(4). 解 ADTS 帧头信息。(5). 若有错误检测,进行错误检