AAC

79 阅读3分钟

AAC 被定义在 MPEG-2 和 MPEG-4 标准

最常用的 AAC Profile 是 AAC LC 和 AAC HE

MPEG-2 ISO/IEC 13818-7

  1. MPEG-2 AAC LC

    Low Complexity, High Quality
    
  2. MPEG-2 AAC Main

    1. 更多的预测工具
    2. 复杂的窗函数切换
    3. 扩展的频带复制
    
  3. MPEG-2 AAC SSR

    可变采样率规格
    SSR 通过在编码时包含多个采样率层次的音频数据来实现不同设备的处理,
    音频流可以在低采样率下解码
    音频流也可以在高采样率下解码
    

MPEG-4 ISO/IEC 14496-3

  1. MPEG-4 AAC LC

    Low Complexity, High Quality
    
  2. MPEG-4 AAC Main

    MPEG-2 AAC Main
    实际上,MPEG-4 AAC Main 就比 MPEG-4 AAC LC 多了一个 frequency domain prediction 技术:
    在频域进行预测的技术,用于减少音频信号的冗余
    
  3. MPEG-4 AAC SSR

    Scalable Sample Rate 可变采样率规格,同 MPEG-2 AAC SSR
    缺少 gain control
    
  4. MPEG-4 AAC LTP

    Long Term Prediction 长时期预测规格
    
  5. MPEG-4 AAC LD

    Low Delay 低延迟预测规格
    
  6. MPEG-4 AAC HE

    带有 SBR 技术的 MPEG-4 AAC LC
    SBR: 音乐低频段()和高频段(伴奏)。如果对整体频段编码,体积较大
         SBR 把频谱切割开来,低频段单独编码,高频段放大后保存音质
    

ADTS

ADTS Sequence = ADTS Frame + ADTS Frame + ... + ADTS Frame
  1. ADTS Frame

    ADTS Frame = ADTS Header(7|9 bytes) + AAC ES
    
  2. ADTS Header

    ADTS Header = ADTS Fixed Header + ADTS Variable Header
                  
    
  3. ADTS Fixed Header

    ADTS Fixed Header = Syncword(12 bits) + MPEG Version(1 bit) + Layer(2 bits) +
                        Protection Absent(1 bit) + Profile(2 bits) +
                        Sampling Frequency Index(4 bits) + Private Bit(1 bit) +
                        Channel Configuration(3 bits) + Originality copy(1 bit) +
                        Home(1 bit)
    
  4. Syncword

    12 bits,固定为 0xff,标识一个 ADTS 帧的开始,作为分界符,用于同步每帧起始位置
    
  5. ID/MPEG Version

    1 bit,固定为 0,标识属于 MPEG4 规范
    0: MPEG-4
    1: MPEG-2
    
  6. Layer

    2 bits,固定为 00
    
  7. Protection Absent

    1 bit,标识是否有 CRC 校验码
    0: 无 CRC 校验码
    1: 有 CRC 校验码
    
  8. Profile

    2 bits,标识使用哪个级别和规范的 AAC
    00: 
    01: AAC Main
    10: AAC LC
    11: AAC LTR
    
  9. Sampling Frequency Index

    4 bits,标识采样频率
    0000(0): 96000 DVD-Audio、一些 LPCM DVD 音轨、Blu-ray Disc(蓝光盘)、HD-DVD
    0001(1): 88000
    0010(2): 64000
    0011(3): 48000 DVD,数字电视,电影,专业音频所用的
    0100(4): 44100 CD,也常用于 MPEG-1 音频(VCD、SVCD、MP3)
    0101(5): 32000
    0110(6): 24000
    0111(7): 22000
    1000(8): 16000
    1001(9): 12000
    1010(10): 11025
    1011(11): 8000 电话所用的采样率
    1100(12): 7350
    1101(13): reserve
    1110(14): reserve
    1111(15): escape value
    
  10. Private Bit

    1 bit,固定 0
    
  11. Channel Configuration

    3 bits,声道数
    000:
    001: single_channel_element
    010: channel_pair_element
    011: single_channel_element + channel_pair_element
    100: single_channel_element + channel_pair_element + single_channel_element
    101: single_channel_element + channel_pair_element + channel_pair_element
    110: single_channel_element + channel_pair_element + channel_pair_element +
         lfe_channel_element
    111: single_channel_element + channel_pair_element + channel_pair_element +
         channel_pair_element + lfe_channel_element
    
  12. Originality copy

    1 bit,固定 0
    
  13. Home

    1 bit,固定 0

  14. ADTS Varaible Header

    ADTS Variable Header = Copyrighted Identification(1 bit) +
                           Copyrighted Identification Start(1 bit) +
                           AAC Frame Length(13 bits) +
                           ADTS Buffer Fullness(11 bits) +
                           Number of AAC Frames(2 bits) +
                           CRS(16 bits)
    
  15. Copyrighted Identification

    1 bit,固定 0
    
  16. Copyrighted Identification Start

    1 bit,固定 0
    
  17. AAC Frame Length

    13 bits,标识一个 ADTS 帧的长度(包括 ADTS 头和AAC 数据)
    proectoin absent = 0 ADTS Header 9 字节(多了 16 bits 的 CRC)
    proection absent = 1 ADTS Header 7 字节
    
  18. ADTS Buffer Fullness

    11 bits,标识码率可变性
    0x7ff: 码率可变
    0x000: 固定码率
    
  19. Number of AAC Frames

    2 bits,标识一个 ADTS 帧中包含的 AAC 原始帧
    00(0): 标识 1 个 AAC 帧
    01(1): 标识 2 个 AAC 帧
    10(2): 标识 3 个 AAC 帧
    11(3): 标识 4 个 AAC 帧
    
  20. CRC

    16 bits,标识循环冗余校验码内容(可选)
    
  21. AAC ES