AAC

什么是AAC

AAC(Advanced Audio Coding,高级音频编码)是一种声音数据的文件压缩格式分为:AAC分为ADIF和ADTS两种文件格式。

什么是ADIF和ADTS?

  • ADIF:音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需要进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种方式常用在磁盘文件中。
  • ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始

ADTS的数据结构

ADTS Header:
--------------------------------------------------------------
| Syncword (12 bits) | ID (1 bit) | Layer (2 bits) |          |
--------------------------------------------------------------
| Protection Absent (1 bit) | Profile (2 bits) | Sampling Rate Index (4 bits) |      |
--------------------------------------------------------------
| Private Bit (1 bit) | Channel Configuration (3 bits) |         |
--------------------------------------------------------------
| Originality (1 bit) | Home (1 bit) | Emphasis (2 bits) |       |
--------------------------------------------------------------
| Frame Length (13 bits) |                                       |
--------------------------------------------------------------
| Buffer Fullness (11 bits) |                                      |
--------------------------------------------------------------
| Number of Raw Data Blocks in Frame (2 bits) |                  |
--------------------------------------------------------------

Syncword:12比特的同步字,固定为0xFFF,用于标识ADTS帧的开始。
ID:1比特,固定为0,表示MPE-4.
Layer:2比特,固定为00,表示不使用MPEG-2音频层。
Protection Absent:1比特,表示是否有CRC校验,0表示有CRC,1表示无CRC.
Profile:2比特,表示AAC配置文件,例如AAC-LC、HE-AAC、HE-AAC V2等。
Channel Configuration:3比特,表示声道配置,如单声道、立体声等。
Originality:1比特,表示是否为原始帧,一般为0。
Home:1比特,表示是否为家庭用途,一般为0。
Emphasis:2比特,表示强调类型,一般为0。
Frame Length:13比特,表示ADTS帧的长度,包括ADTS头部和音频数据。
Buffer Fullness:11比特,表示缓冲区满度。
Number of Raw Data Blocks in Frame:2比特,表示ADTS帧中音频原始数据块(Raw Data Blocks)的数量。

posted @ 2024-03-22 16:34  不会笑的孩子  阅读(9)  评论(0编辑  收藏  举报