AAC(Advanced Audio Coding,高级音频编码)是一种基于心理声学原理的有损音频编解码技术,广泛应用于流媒体、数字广播、移动音频等场景。其编解码流程围绕 “保留人耳可感知信息、去除冗余” 设计,分为编码(从音频信号到 AAC 比特流) 和解码(从 AAC 比特流到音频信号) 两部分,具体流程如下:
一、AAC 编码流程(音频信号 → AAC 比特流)
编码的核心是通过心理声学模型筛选 “人耳可感知的关键信息”,并通过变换、量化、熵编码等步骤压缩数据,最终生成紧凑的比特流。流程可分为以下关键步骤:
1.1 预处理与心理声学模型
信号预处理
首先对输入的原始音频信号(时域连续信号)进行预处理:
- 采样与量化:将模拟音频信号通过 ADC(模数转换)转换为数字信号(如 44.1kHz 采样率、16bit 量化);
声道处理:对多声道信号(如立体声、5.1 声道)进行联合编码(如 M/S 立体声编码,将左右声道转换为中间声道和侧面声道,减少冗余); - 分帧:将数字音频按固定长度(通常 2048 或 1024 样本 / 帧)分成帧,逐帧处理。
心理声学模型计算
这是 AAC 编码的核心,基于人耳听觉特性(如掩蔽效应)去除 “不可感知的冗余信息”:
- 利用傅里叶变换将时域信号转换为频域,分析各频率成分的能量;
- 计算掩蔽阈值:根据人耳对不同频率、响度的敏感度(如低频掩蔽高频、强音掩蔽弱音),确定每个频率成分的 “可接受失真上限”(即人耳无法察觉的最大失真);
- 筛选有效频率成分:仅保留能量高于掩蔽阈值的频率成分,其余成分被视为 “冗余”,可被压缩或丢弃。
1.2 频域变换与增强处理
通过变换将时域信号转换为频域,便于按频率成分进行精细化处理,核心技术包括:
- MDCT(改进离散余弦变换)
将每帧时域信号转换为频域系数(子带能量),相比传统 DCT,MDCT 通过重叠变换减少频谱泄漏,提高频率分辨率(尤其适合音频的非平稳特性)。 - TNS(时域噪声整形)
针对变换后可能出现的 “预回声”(快速变化信号在变换后产生的噪声扩散),通过在频域施加滤波,将噪声能量集中到信号强的区域,使人耳难以察觉。 - LTP(长时预测)
对具有周期性的信号(如语音、乐器持续音),通过分析历史帧的周期性特征,预测当前帧的信号,减少冗余(类似 “差分编码”,仅传输预测误差)。
1.3. 量化与缩放因子调整
根据心理声学模型的掩蔽阈值,对频域系数进行量化(用有限比特表示连续值),平衡压缩率与音质:
- 缩放因子(Scale Factors):为每个子带(或子带组)计算缩放因子,表示该子带的能量级别(类似 “量级”),用于解码时恢复绝对振幅。
- 量化:根据缩放因子和掩蔽阈值,对频域系数进行量化 —— 能量越高、越容易被人耳感知的系数,用更多比特表示(减少失真);反之用更少比特(甚至丢弃)。量化过程会引入失真,但需控制在掩蔽阈值内。
1.4. 熵编码与比特流打包
将量化后的系数、缩放因子、控制信息(如采样率、声道数、帧同步信息)编码为紧凑比特流,进一步减少冗余:
- 熵编码:采用 Huffman 编码(主流)或算术编码,对量化结果进行 “变长编码”—— 出现概率高的符号用短码,低概率用长码,降低总比特数。
- 比特流组织:按 AAC 标准格式打包,加入帧头(同步字、帧长度)、边信息(缩放因子、声道模式)、数据块(量化系数)等,确保解码端可正确解析。
(可选)扩展技术(如 HE-AAC)
低比特率场景下(如 32-64kbps),HE-AAC(高效 AAC)会引入SBR(频谱带宽扩展) 技术:
- 编码时仅传输低频部分(如≤7kHz),高频部分(>7kHz)由解码端根据低频信号的谐波特性 “重建”,大幅降低比特率同时保持音质。
二、AAC 解码流程(AAC 比特流 → 音频信号)
解码是编码的逆过程,目标是从比特流中恢复出接近原始的音频信号,流程如下:
2.1. 比特流解析与熵解码
首先解析比特流的帧结构,提取帧头(同步、采样率等)、边信息(缩放因子、声道模式)和数据块(量化系数)。
通过熵解码(如逆 Huffman 编码),将压缩的比特流还原为量化系数、缩放因子等原始量化数据。
2.2. 反量化与频域系数恢复
根据缩放因子和量化参数,对量化系数进行反量化,恢复频域系数的相对振幅。
若存在 LTP 或 TNS,需执行逆操作(如逆 LTP 预测、逆 TNS 滤波),还原频域信号的原始特性。
2.3. 逆 MDCT 与时域信号重建
对频域系数执行逆 MDCT,将频域信号转换回时域信号(每帧信号通过重叠相加,消除帧间 discontinuity)。
2.4. 后处理与输出
若为多声道信号,执行声道合成(如 M/S 解码为左右声道);
若为 HE-AAC,通过 SBR 模块重建高频信号,扩展频谱带宽;
最后通过 DAC(数模转换)将数字信号转换为模拟音频,输出到扬声器或耳机。
总结
AAC 的编解码流程核心是 “基于心理声学的选择性保留”:编码通过频域变换、量化和熵编码去除冗余,解码通过逆过程恢复信号。其高效性源于多种技术的结合(MDCT、TNS、LTP、SBR 等),使其在相同比特率下音质优于 MP3,成为主流音频编码标准之一。