FLAC 转 DSD 教程:从无损 PCM 到 DSD64/128 完整流程
FLAC 是 PCM 的无损容器,本身不是 DSD。想把 FLAC 转成 DSD(DSF/DFF),需要经过完整的重采样 + 噪声整形 + 调制流程。本教程给出可直接照做的命令。
一、先理解:FLAC 转 DSD 到底转了什么
FLAC 文件内部是 PCM 数据(通常是 16/24-bit,44.1–192 kHz)。转 DSD 意味着:
- 解压:FLAC → 原始 PCM 采样点
- 重采样:PCM 采样率 → DSD 码率(44.1 kHz × 64 = 2.8224 MHz / DSD64)
- 噪声整形:多 bit → 1-bit 量化,把量化噪声推到超声频段
- 封装:输出 DSF 或 DFF
转换是无损源到高精度目标的映射——FLAC 里的信息完整保留(重采样不丢数据,只是改变表示方式),但不会"无中生有"增加细节。
二、方案 A:命令行直接转换(单文件,最可控)
# FLAC → DSF(DSD64,默认 7 阶 IIR)
DpdoEngine -i track.flac track.dsf --oversampling 64
# FLAC → DFF(DSD128,11 阶 IIR,追求带内噪声极限)
DpdoEngine -i track.flac track.dff --oversampling 128 --order 11
# FLAC → DSF(DSD256 + OpenCL 加速 + 写入专辑元数据 + PDF 报告)
DpdoEngine -i track.flac track.dsf --oversampling 256 \
--opencl --report --artist "Artist" --album "Album" --year "2026"
参数速查:
- --oversampling N:上采样倍数(64=DSD64、128=DSD128、256=DSD256)
- --order N:IIR 噪声整形阶数(3/5/7/9/11,默认 7)
- --opencl:GPU 加速(OpenCL 1.2+)
- --report:生成转换分析报告
- --metadata-from-input:自动从源文件提取元数据(可被显式参数覆盖)
- --reverse:反向(DSD → PCM)
三、方案 B:批量转换(整张专辑,一条命令)
使用随发布包附带的 convert 批量脚本(需要 ffmpeg + DpdoEngine):
# 进入存放 FLAC 的目录,批量转 DSF(DSD64)
cd 专辑目录
bash convert flac2dsf
# 指定输出码率(示例:DSD128)
bash convert flac2dsf 128
支持的转换类型(convert 脚本):
PCM/PCM: wav2flac, flac2wav, m4a2flac
DSD/PCM: dsf2flac, dsf2wav, dff2flac, dff2wav
PCM→DSD: wav2dsf, wav2dff, flac2dsf, flac2dff
PCM→DXD: wav2dxd_w64, wav2dxd_wav, wav2dxd_flac, flac2dxd_*
四、转完如何验证
# 测量输出 DSD 文件的失真与噪声底(THD+N)
thdn track.dsf
# 对比不同噪声整形阶数的带内性能
dsp_bench --input test.flac --order 9 --order 11
验证要点: - 带内(20 Hz–20 kHz)噪声底是否达到预期(DSD64 理论 SNR 约 120 dB 量级,实际以噪声整形阶数为准) - 转换后与原 PCM 的频响一致性(重采样滤波器是否引入了可闻偏差) - 用 DAC/播放器实际试听(最终裁判是回放链)
五、常见问题
FLAC 源采样率影响大吗? 44.1 kHz 源转 DSD 完全可用;96/192 kHz 源在 DSD128+ 档位更从容(重采样插值误差更小)。
转完能直接进 SACD 打包吗? 可以。DSF/DFF 输出后直接用 DpdoPackSACD 打包成 SACD ISO(见打包教程)。
批量转换慢怎么办? 开启 --opencl(GPU 加速),或降低阶数(7 阶 IIR 在低配机器上实时性更好)。
本文由 Dpdo 编写,命令基于 DpdoEngine 6.68 与发布包 convert 脚本实测。