参考资料: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
- 字节边界(Byte Boundary,15 bits)
- 一个或多个子帧,对应于不同的声道
- 填充的0,用于字节对齐
- 帧尾部(Frame Footer)