Учебник: конвертация 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 означает:

  1. Распаковка: FLAC → исходные PCM-отсчёты
  2. Ресемплинг: частота PCM → битрейт DSD (44,1 кГц × 64 = 2,8224 МГц / DSD64)
  3. Шейпинг шума: многобитное → 1-битное квантование, шум квантования выталкивается в ультразвуковой диапазон
  4. Упаковка: вывод в 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 из дистрибутива.