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