[MediaForge] 音频技术深度解析(三):音频编码

张开发
2026/4/3 10:36:27 15 分钟阅读
[MediaForge] 音频技术深度解析(三):音频编码
目录什么是音频编码为什么要音频编码音频编码的基本原理常见音频编码器类型AAC 编码器深度解析编码器参数详解音频格式详解本项目音频编码实现分析常见问题与快速定位1. 什么是音频编码1.1 音频编码的定义音频编码(Audio Encoding)是将原始的 PCM(脉冲编码调制)音频数据通过压缩算法转换为更小体积的编码格式的过程。┌─────────────────────────────────────────────────────────────┐ │ 原始 PCM 音频 │ │ 采样率: 48000 Hz, 声道: 2, 位深: 16 位 │ │ 比特率: 48000 × 2 × 16 = 1,536,000 bps (1.5 Mbps) │ └──────────────────────┬──────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 音频编码器 │ │ ┌───────────────────────────────────────────────────────┐ │ │ │ 1. 心理声学模型分析 (Psychoacoustic Model) │ │ │ │ 2. 时域到频域转换 (MDCT) │ │ │ │ 3. 量化 (Quantization) │ │ │ │ 4. 熵编码 (Entropy Coding) │ │ │ └───────────────────────────────────────────────────────┘ │ └──────────────────────┬──────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 编码后的音频 (AAC) │ │ 比特率: 128,000 bps (128 kbps) → 压缩比约 12:1 │ └─────────────────────────────────────────────────────────────┘1.2 关键概念对比概念说明示例PCM原始未压缩的音频数据麦克风采集的原始数据编码器 (Codec)压缩/解压缩算法AAC、MP3、Opus比特率 (Bitrate)每秒数据量128 kbps、320 kbps采样率 (Sample Rate)每秒采样次数44100 Hz、48000 Hz声道 (Channels)独立音频通道数1 (单声道)、2 (立体声)2. 为什么要音频编码2.1 存储和传输成本原始 PCM vs 编码音频 存储对比: ┌─────────────────────────────────────────────────────────────┐ │ 原始 PCM (立体声, 16位, 48000 Hz): │ │ 1 秒 = 48000 × 2 × 2 = 192,000 字节 ≈ 192 KB │ │ 1 分钟 = 192 KB × 60 = 11,520 KB ≈ 11.25 MB │ │ 1 小时 = 11.25 MB × 60 = 675 MB │ └─────────────────────────────────────────────────────────────┘ ↓ 编码 (AAC 128 kbps) ┌─────────────────────────────────────────────────────────────┐ │ 编码后 AAC (128 kbps): │ │ 1 秒 = 128,000 ÷ 8 = 16,000 字节 ≈ 16 KB │ │ 1 分钟 = 16 KB × 60 = 960 KB ≈ 0.94 MB │ │ 1 小时 = 0.94 MB × 60 ≈ 56.4 MB │ │ │ │ 压缩比: 675 ÷ 56.4 ≈ 12:1 (节省 92% 空间!) │ └─────────────────────────────────────────────────────────────┘2.2 为什么需要压缩原因说明存储空间减小文件大小,节省磁盘/存储空间网络传输降低带宽需求,实现实时流媒体播放设备移动设备存储和带宽有限商业需求音乐/视频平台降低运营成本3. 音频编码的基本原理3.1 心理声学模型音频编码的核心是心理声学模型,利用人耳的听觉特性丢弃不可感知的信息。人耳听觉特性: ┌─────────────────────────────────────────────────────────────┐ │ 1. 频率掩蔽 (Frequency Masking) │ │ 强信号可以掩蔽附近频率的弱信号 │ │ │ │ 强信号 [2 kHz] │ │ ↓ │ │ 掩蔽范围 [1.5 kHz - 2.5 kHz] │ │ ↓ │ │ 此范围内的弱信号可以丢弃 │ └─────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────┐ │ 2. 时间掩蔽 (Temporal Masking) │ │ 强信号前后的弱信号不可感知 │ │ │ │ 时间线: [前掩蔽] → 强信号 → [后掩蔽] │ │ ↓ ↓ │ │ 可丢弃 可丢弃 │ └─────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────┐ │ 3. 绝对听阈 (Absolute Threshold of Hearing) │ │ 不同频率的最小可听音量不同 │ │ │ │ 20 Hz - 20 kHz 人耳可听范围 │ │ 1 kHz - 4 kHz 最敏感 │ │ 低于听阈的信号可以丢弃 │ └─────────────────────────────────────────────────────────────┘3.2 音频编码流程图┌─────────────────────────────────────────────────────────────┐ │ 完整编码流程 │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 输入: PCM 音频帧 (1024/2048 采样) │ └──────────────────────┬──────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 步骤 1: 分析滤波器组 (Analysis Filter Bank) │ │ 将时域信号分解为多个子带 │ │ → MDCT (修正离散余弦变换) │ └──────────────────────┬──────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 步骤 2: 心理声学模型分析 │ │ 计算每个子带的掩蔽阈值 │ │ 确定哪些信息可以丢弃 │ └──────────────────────┬──────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ 步骤 3: 量化 (Quantization) │ │ 根据掩蔽阈值减少精度

更多文章