Poweramp Float32 采样格式与大库稳定性
Float32 格式是什么
音频数据常见的存储格式:
| 格式 | 说明 | 范围 |
|---|---|---|
| 16-bit PCM(整数) | CD 标准 | -32768 → +32767 |
| 24-bit PCM(整数) | Hi-Res 标准 | -8388608 → +8388607 |
| 32-bit PCM(整数) | 专业音频 | -2^31 → +2^31-1 |
| 32-bit Float(浮点) | Poweramp 内部处理格式 | ±1.0(归一化) |
Float32 的优势在于它的动态范围极大(约 150dB),而且不依赖整数位深度——在做 DSP 时精度比整数格式高得多。
Poweramp 输出 Float32 的场景
- USB Exclusive Driver + DAC 支持 Float32 输入
- AAudio Hi-Res Output
- Poweramp 内部 DSP 处理环节(必用 Float32 或 Float64)
为什么 DAC 要支持 Float32
如果 DAC 只支持整数 PCM,Poweramp 必须在最后一步把 Float32 转成整数——配合 Dither 抖动才不会有量化噪声。如果 DAC 支持 Float32,这个转换就不需要了。
大库稳定性
Poweramp 的一大卖点是几万首曲库也稳——原因:
1. 索引系统
扫描时为每个音频文件建立轻量索引(文件名 + 路径 + 标签摘要 + 格式 + 时长 + 采样率),全部存在 SQLite 数据库里。实际文件不会被读取完整解码——只有播放时才加载。
2. 分块扫描
大库扫描采用分块处理(每次扫描一个目录树),中间可中断恢复。不会因为某个文件异常导致整个扫描崩。
3. 内存控制
Poweramp 没有常驻内存的整个曲库数据——只缓存当前浏览路径的条目。即使曲库有 5 万首,内存占用也在几十 MB 量级。
启动速度
- 冷启动(第一次打开):加载索引数据库 → 约 1-3 秒(取决于曲库大小)
- 热启动(后台杀进程后再打开):同上,但系统可能缓存了部分数据 → 通常 <1 秒
- 扫描时启动:正在扫描过程中打开 App → 显示扫描进度条,可以同时浏览已扫部分
性能对比
| 曲库规模 | Poweramp | 某免费播放器 A | 某专业播放器 B |
|---|---|---|---|
| 1000 首 | 秒开 | 秒开 | 秒开 |
| 10000 首 | <2 秒 | ~5 秒 | <3 秒 |
| 50000 首 | <5 秒 | 卡死 | ~10 秒 |
大库下 Poweramp 的优势最明显。
下一页:低功耗与大库优化