AAC 格式(流媒体优化)
AAC(Advanced Audio Coding,高级音频编码)是一种有损压缩音频格式,诞生于1997年,由 Fraunhofer IIS、杜比实验室、索尼等公司联合开发,现为 MPEG-2/MPEG-4 标准的核心组成部分。其设计目标是替代 MP3,在相同比特率下提供更高音质,或在更低比特率下保持同等音质,是当今流媒体与移动设备的主流音频格式。
技术原理与核心特性
编码技术演进
AAC 在 MP3 基础上进行了多项技术革新:
- MDCT(修正离散余弦变换):采用更长的时域信号块(1024点)与短块(128点)动态切换,减少频谱泄露,提升频域分辨率。
- 心理声学模型优化:更精准的掩蔽效应计算,去除人耳不敏感的冗余信息。
- 分块策略:支持可变块长(KBD 窗口),动态适配瞬态信号与稳态信号。
- 多声道编码:支持最高48声道,支持声道耦合(如5.1环绕声的联合编码)。
文件结构与封装
可以使用 ADTS(Audio Data Transport Stream)面向流媒体的封装格式,含帧头(同步字、采样率、声道数等)和原始数据块。
// ADTS帧头结构示例(7字节)
typedef struct {
uint16_t syncword; // 同步字0xFFF
uint8_t protection_absent; // 是否含CRC校验
uint8_t profile; // 编码配置(LC/HE/HEv2)
uint8_t sampling_freq_idx; // 采样率索引(如44.1kHz=4)
uint8_t private_bit;
uint8_t channel_config; // 声道配置(单声道/立体声等)
uint16_t frame_length; // 帧长度
} ADTSHeader;
也可以使用 原始 AAC 流(Raw AAC) 无封装头,依赖外部元数据(如 MP4 容器中的 moov
原子)。
技术对比
下表对比了 AAC 和 MP3 音频格式的优势和劣势。
特性 | AAC | MP3 |
---|---|---|
频域分辨率 | 最高支持 20k Hz以上(采样率 48kHz) | 通常限制在 16kHz(采样率 44.1kHz) |
压缩效率 | 相同码率下音质提升约 30% | 低码率下易出现“金属感”失真 |
多声道支持 | 原生支持 5.1/7.1 声道 | 需通过扩展(如 MP3 Surround) |
专利状态 | 专利已部分过期(部分编码器免费) | 专利已全面过期 |
未来发展
尽管 AAC 仍是主流,但面临 Opus(低延迟/高鲁棒性)和 FLAC(无损压缩)的竞争。其技术瓶颈在于:
- 高频细节损失:有损压缩无法完全避免信息丢失。
- 实时性限制:复杂编码算法导致编码延迟较高(约50-100ms)。
学习建议
-
深入标准文档:研读 MPEG-4 Part 3(ISO/IEC 14496-3)了解编码细节。
-
动手实验:使用 FFmpeg 命令行工具进行 AAC 转码与参数调优:
ffmpeg -i input.wav -c:a libfdk_aac -b:a 128k output.aac
-
扩展阅读:对比 AAC 与 Opus 的算法差异(如线性预测 vs. MDCT)。