FLAC 转 DSD 教程:从无损 PCM 到 DSD64/128 完整流程

FLAC 是 PCM 的无损容器,本身不是 DSD。想把 FLAC 转成 DSD(DSF/DFF),需要经过完整的重采样 + 噪声整形 + 调制流程。本教程给出可直接照做的命令。


一、先理解:FLAC 转 DSD 到底转了什么

FLAC 文件内部是 PCM 数据(通常是 16/24-bit,44.1–192 kHz)。转 DSD 意味着:

  1. 解压:FLAC → 原始 PCM 采样点
  2. 重采样:PCM 采样率 → DSD 码率(44.1 kHz × 64 = 2.8224 MHz / DSD64)
  3. 噪声整形:多 bit → 1-bit 量化,把量化噪声推到超声频段
  4. 封装:输出 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 脚本实测。


相关文章