修正离散余弦变换 MDCTModified discrete cosine transform
把重叠的 2N 个实数采样变为 N 个系数,用于音频压缩。
- 核心约束
- 逆变换要使用匹配窗并重叠相加;单块的 N 个系数不能独立还原 2N 个输入。
- 适用问题
- AAC 等音频编码中的重叠变换。
- 边界与取舍
- 时域混叠消除依赖窗与重叠条件;还需处理边界、延迟和数值误差。
时间与空间#
N 为输出系数数,标准 MDCT 每帧输入 2N 个采样,并与相邻帧重叠。
- 时间复杂度
- 直接计算 ;基于快速 DCT / FFT 的实现
- 辅助空间
- 常见实现 ,包含窗、重叠和变换工作区
2N→N 的单帧变换不可单独逆转。重建依赖匹配的分析 / 合成窗、重叠相加及 TDAC 条件;编码量化还会引入有损误差。不同编解码器的低重叠窗和尺度约定应依规范处理。
工程中的应用#
1 个案例 · 附源码FFmpeg 的 AAC 编码器通过 av_tx_init 取得 MDCT 函数。通用实现用折叠、旋转与半长 FFT 完成变换,FFT 再分解为较小子变换。
附源码片段 · 音视频处理
基础原理参考资料
Shao & Johnson · DCT-IV and MDCT algorithms由 DCT-IV / FFT 构建快速 MDCT 及其运算量分析。
RFC 6716 · CELT MDCTOpus 中 MDCT、重叠窗和逆变换的具体约定。