FLAC

参考资料:Draft IETF Cellar FLAC

帧结构

  • 帧头部(Frame Header)
    • 字节边界(Byte Boundary,15 bits)
      • 0b111111111111100 –> 帧同步码(Frame Sync Code)
    • 块的大小(Block Size Bits,4 bits)
      • 0b0000 –> 保留
      • 0b0001 –> 192
      • 0b0010~0b0101 –> 144 * 2x = 576、1152、2304、4608
      • 0b0110、0b0111 –> 不常用
      • 0b1000~0b1111 –> 2x = 256、512、1024、2048、4096、8192、16384、32768
    • 采样率(Sample Rate Bits,4 bits)
      • 0b0000 –> 流信息的元数据块
      • 0b0001 –> 88.2kHz
      • 0b0010 –> 176.4kHz
      • 0b0011 –> 192kHz
      • 0b0100 –> 8kHz
      • 0b0101 –> 16kHz
      • 0b0110 –> 22.05kHz
      • 0b0111 –> 24kHz
      • 0b1000 –> 32kHz
      • 0b1001 –> 44.1kHz
      • 0b1010 –> 48kHz
      • 0b1011 –> 96kHz
      • 0b1100、0b1101、0b1110 –> 不常用
      • 0b1111 –> 无效
    • 声道(Channel Bits,4 bits)
      • 0b0000 –> 单声道
      • 0b0001 –> 2声道,左、右
      • 0b0010 –> 3声道,左、右、中
      • 0b0011 –> 4声道,前左、前右、后左、后右
      • 0b0100 –> 5声道,前左、前右、前中、后/环绕左、后/环绕右
      • 0b0101 –> 6声道,前左、前右、前中、低频效果、后/环绕左、后/环绕右
      • 0b0110 –> 7声道,前左、前右、前中、低频效果、后中、侧左、侧右
      • 0b0111 –> 8声道,前左、前右、前中、低频效果、后左、后右、侧左、侧右
      • 0b1000 –> 2声道,左、右,存储为左/侧立体声
      • 0b1001 –> 2声道,左、右,存储为右/侧立体声
      • 0b1010 –> 2声道,左、右,存储为中/侧立体声
      • 0b1011~0b1111 –> 保留
    • 位深(Bit Depth Bits,3 bits)
      • 0b000 –> 流信息的元数据块
      • 0b001 –> 8 bits
      • 0b010 –> 12 bits
      • 0b011 –> 保留
      • 0b100 –> 16 bits
      • 0b101 –> 20 bits
      • 0b110 –> 24 bits
      • 0b111 –> 32 bits
  • 一个或多个子帧,对应于不同的声道
  • 填充的0,用于字节对齐
  • 帧尾部(Frame Footer)