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 腳本實測。