Учебник: конвертация FLAC в DSD — полный процесс от lossless PCM до DSD64/128
FLAC — это lossless-контейнер для PCM, сам по себе он не DSD. Чтобы конвертировать FLAC в DSD (DSF/DFF), нужен полный процесс ресемплинга + шейпинга шума + модуляции. В этом учебнике даны готовые команды.
1. Сначала поймите: что именно меняется при конвертации FLAC в DSD
Внутри файла FLAC находятся данные PCM (обычно 16/24 бит, 44,1–192 кГц). Конвертация в DSD означает:
- Распаковка: FLAC → исходные PCM-отсчёты
- Ресемплинг: частота PCM → битрейт DSD (44,1 кГц × 64 = 2,8224 МГц / DSD64)
- Шейпинг шума: многобитное → 1-битное квантование, шум квантования выталкивается в ультразвуковой диапазон
- Упаковка: вывод в DSF или DFF
Конвертация — это отображение lossless-источника в высокоточную цель: вся информация во FLAC полностью сохраняется (ресемплинг меняет представление, а не данные), но «из ничего» новые детали не появляются.
2. Вариант A: прямая конвертация из командной строки (один файл, максимальный контроль)
# FLAC → DSF (DSD64, IIR 7-го порядка по умолчанию)
DpdoEngine -i track.flac track.dsf --oversampling 64
# FLAC → DFF (DSD128, IIR 11-го порядка — предельно низкий шум в полосе)
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)
3. Вариант 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_*
4. Как проверить результат
# Измерить искажения и шумовой пол выходного DSD-файла (THD+N)
thdn track.dsf
# Сравнить характеристики в полосе разных порядков шейпинга шума
dsp_bench --input test.flac --order 9 --order 11
Что проверять: - Достигает ли шумовой пол в полосе (20 Гц–20 кГц) ожидаемого уровня (теоретическое SNR у DSD64 — порядка 120 дБ; фактическое значение зависит от порядка шейпинга шума) - Соответствие частотной характеристики исходному PCM (не внёс ли фильтр ресемплинга слышимые отклонения) - Реальное прослушивание через ваш ЦАП/плеер (окончательный судья — тракт воспроизведения)
5. Частые вопросы
Сильно ли влияет исходная частота дискретизации FLAC? Источник 44,1 кГц конвертируется в DSD вполне нормально; источники 96/192 кГц чувствуют себя ещё увереннее на уровнях DSD128+ (меньше ошибка интерполяции при ресемплинге).
Можно ли результат сразу отдавать в упаковку SACD? Да. Вывод DSF/DFF напрямую подаётся в DpdoPackSACD для сборки SACD ISO (см. учебник по упаковке).
Что делать, если пакетная конвертация медленная? Включите --opencl (ускорение на GPU) или снизьте порядок (IIR 7-го порядка хорошо работает в реальном времени на скромном железе).
Автор: Dpdo. Команды проверены на DpdoEngine 6.68 и скрипте convert из дистрибутива.