您的位置:首页 > 其它

AAC 音频编码格式解析

2015-04-28 16:43 1611 查看
最近在做音频编解码相关的工作,有不少同事迷惑于AAC编解码格式同mp4/m4a编码容器,在此做个详细的AAC解析供编解码入门读者研读。

AAC( Advanced Audio Coding) 自MPEG-2中就已提出其编码标准,包含文件组织格式以及算法模块( TNS, PNS等)。MPEG-4标准中又对其进行了重述修订。

AAC常规的编码格式有两种:ADTS和ADIF

ADIF: Audio Data Interchange Format. 基本的组织格式为一个总的Header跟上raw data.



图1. AAC ADIF文件组织格式







表1. AAC ADIF文件组织释义
由于ADIF格式的AAC只有一个总的header,一旦头信息发生错乱或丢包,将无法再进行解码;而且由于没有明确帧分割,所以只能从raw data的起始位置连续解码(即不支持seek),所以ADIF格式AAC多用于文件存储,较少用于网络环境中。

ADTS: Audio Data Transport Stream. ADTS文件组织中,每帧都有独立的头信息Header, 包含了采样率、声道数、profile等信息。正因为每帧有独立的头信息,所以ADTS 格式AAC具有更好的容错鲁棒特性,在发生帧损毁的情况下,不影响后续码流的解码,所以常用于网络环境下。



图2. AAC ADTS文件组织格式









表2. AAC ADTS文件组织释义

其中adts_buffer_fullness为0x7ff 时表示码率可变; number_of_raw_data_blocks_in_frame 为0. 码流中实际的blocks数为(number_of_raw_data_blocks_in_frame +1).
raw_data_block中包含的是真正编码后的数据,包含两部分:side_info(编码应用的算法模块信息、全局尺度因子、section等)和data.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: