Poweramp 中文文档 下载 App

Poweramp 64-bit 内部处理流水线 —— 引擎底层为什么音质好

Poweramp v3 引擎重写的核心

v2 时代的 Poweramp 是用 Java 写的,性能和精度都受限。v3 线(目前仍在迭代)用 C++ 原生重写了整个音频处理管线,带来三个关键升级:

升级说明
64-bit 内部处理所有 DSP 运算在 Float64 精度下完成,最后才下采样到输出设备格式
AAudio 原生支持直接对接 Android 8.0+ 的 AAudio API
USB Exclusive Driver自研 USB 独占驱动,绕过 Android 音频栈

处理流水线

源文件(MP3/FLAC/DSD 等)
    ↓ 解码
    ↓ 升位到 Float32 / Float64
    ↓ DSP 处理(EQ / Bass / Treble / Stereo / Reverb / Limiter)
    ↓ 重采样(如有)
    ↓ Dither(如需降位)
    ↓ 格式转换(到输出设备的规格)
    ↓ USB Exclusive / AAudio → 硬件

关键在升位那一步——不管源文件是 16bit 还是 24bit,Poweramp 先升到 Float32 甚至 Float64 再做所有 DSP 运算。这样:

  1. EQ 增益不引入量化噪声:在 16bit 信号上直接 +6dB EQ 会丢一位精度;但在 Float64 上做,精度几乎无损
  2. 多次 DSP 叠加不失真:EQ + Bass + Stereo + Limiter 四路处理,在升位的信号上做就不会有累计误差
  3. 最后下采样时精度可控:配合 Dither 抖动,下采样到 16bit 时量化噪声被分散

Float32 vs Float64 的区别

Poweramp 在内部 DSP 环节用 Float64,在解码和输出环节用 Float32。这样既保证了处理精度,又不会太吃 CPU。

为什么这很重要

很多其他 Android 播放器要么不做升位(直接在源文件位深上做 DSP,精度损失大),要么升位但不做正确 Dither(下采样时量化失真明显)。Poweramp 的完整 Float64 DSP + 正确 Dither 是"音质好"的技术基础——不是玄学,是实实在在的信号处理工程。

与 DVC 的配合

DVC(Direct Volume Control)让 Poweramp 在整数位层面做音量衰减——这个操作也受益于 Float64 处理管线:音量衰减的精度是 1/65536 级别的,远好于系统音量的 1dB 步进(约 1/5000)。

下一页:Float32 采样与稳定性