![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
音视频数据处理(三)-AAC音频码流分析
AAC(Advanced Audio Coding),高级音频编码,是基于MPEG-2的音频编码技术,于1997年推出,主要用于取代MP3格式。2000年,随着MPEG-4标准的推出,AAC重新集成了新的技术(如SBR、PS等)特性,称之为MEPG-4 AAC。AAC共有9种规格,具体如下所示:
AAC是一种高压缩比的音频压缩算法,本文主要从数据处理的角度对AAC音频码流进行分析。
AAC音频格式有两种:具体如下:
ADIF (Audio Data Interchange Format),音频数据交换格式:只有一个统一的头,必须得到所有数据后解码,适用于本地文件。
ADTS (Audio Data Transport Stream),音视数据传输流:每一帧都有头信息,可在任意帧解码,适用于传输流。
ADIF格式如下所示:
ADIF Header格式定义如下所示:
ADTS码流是由连续的多个ADTS Frame组成的,ADTS Frame是由ADTS Header和AAC ES组成的,具体如下所示:
ADTS Header,一般为7字节或9字节(有CRC校验),包含采样率、声道数、帧长度等信息,主要由adts_fixed_header、adts_variable_header、crc三部分组成。
adts_fixed_header :固定头,内容是不变的,每一帧的内容都相同,具体格式如下所示:
syncword(12bit):同步字值为0xFFF,所有位为1。
ID(1bit):0表示MPEG-4,1表示MPEG-2。
layer(2bit):所有位值为0。
protection_absent(1bit):0表示有CRC,1表示没有CRC。
profile(2bit):配置级别,MPEG-2中定义profile取值如下图所示:
sampling_frequency_index(4bit):采样频率,具体取值如下图所示:
private_bit(1bit):see ISO/IEC 11172-3, subclause 2.4.2.3 (Table 8)。
channel_configuration(3bit):表示声道数。
original/copy(1bit):编码默认值为0,解码忽略此值。
home(1bit):编码默认值为0,解码忽略此值。
adts_variable_header :可变头,内容是变化的,每一帧的内容存在变化,具体格式如下所示:
copyright_identification_bit(1bit):编码默认值为0,解码忽略此值。
copyright_identification_start(1bit):编码默认值为0,解码忽略此值。
frame_length(13bit):帧长度,即整个ADTS Frame的长度。
adts_buffer_fullness(11bit):默认值为0x7FF,表示可变码流。
number_of_raw_data_blocks_in_frame(2bit):其值加1表示ADTS Frame中原始数据块的个数。
利用UItraEdit工具打开一个AAC文件进行数据分析,如下图所示:
红色标注部分为ADTS Header,根据前文所述,第一个Header详细数据分析如下:
syncword(12bit):值为0xFFF。
ID(1bit):值为1,表示MPEG-2。
layer(2bit):值为0。
protection_absent(1bit):值为1,表示没有CRC。
profile(2bit):值为1,表示LC。
sampling_frequency_index(4bit):值为4,表示44100Hz。
private_bit(1bit):值为0。
channel_configuration(3bit):值为2,表示双通道。
original/copy(1bit):值为0。
home(1bit):值为0。
copyright_identification_bit(1bit):值为0。
copyright_identification_start(1bit):值为0。
frame_length(13bit):值为106,表示整个ADTS Frame的长度。
adts_buffer_fullness(11bit):值为0x7FF,表示可变码流。
number_of_raw_data_blocks_in_frame(2bit):值为0,表示ADTS Frame中原始数据块的个数为1。
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2024-06-26 广告