FLAC → DSD 튜토리얼: 무손실 PCM에서 DSD64/128까지 완전한 과정
FLAC은 PCM의 무손실 컨테이너일 뿐 DSD가 아닙니다. FLAC을 DSD(DSF/DFF)로 변환하려면 완전한 리샘플링 + 노이즈 셰이핑 + 변조 과정을 거쳐야 합니다. 이 튜토리얼은 그대로 따라 할 수 있는 명령어를 제공합니다.
1. 먼저 이해하기: FLAC → DSD 변환이 정확히 무엇을 하는가
FLAC 파일 내부는 PCM 데이터(보통 16/24-bit, 44.1–192 kHz)입니다. DSD로 변환한다는 것은 다음을 의미합니다:
- 압축 해제: FLAC → 원본 PCM 샘플 포인트
- 리샘플링: PCM 샘플링 레이트 → DSD 비트레이트(44.1 kHz × 64 = 2.8224 MHz / DSD64)
- 노이즈 셰이핑: 다중 비트 → 1-bit 양자화, 양자화 노이즈를 초음파 대역으로 밀어냄
- 패키징: DSF 또는 DFF로 출력
변환은 무손실 소스에서 고정밀 타깃으로의 매핑입니다. FLAC의 정보는 완전히 보존되고(리샘플링은 데이터를 버리지 않으며 표현 방식만 바꿉니다), "무에서 유"로 디테일이 추가되지는 않습니다.
2. 방법 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)
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 Hz–20 kHz) 노이즈 플로어가 기대치에 도달하는지(DSD64 이론 SNR은 약 120 dB 수준, 실제로는 노이즈 셰이핑 차수 기준) - 변환 후 원본 PCM과의 주파수 응답 일관성(리샘플링 필터가 가청 편차를 유발했는지) - DAC/플레이어로 실제 청취(최종 판정은 재생 체인)
5. 자주 묻는 질문
FLAC 소스 샘플링 레이트의 영향이 큰가요? 44.1 kHz 소스의 DSD 변환은 충분히 실용적입니다. 96/192 kHz 소스는 DSD128+ 단계에서 더 여유 있습니다(리샘플링 보간 오차가 더 작음).
변환 후 바로 SACD 패킹에 들어갈 수 있나요? 네. DSF/DFF로 출력한 후 DpdoPackSACD로 바로 SACD ISO로 패킹하면 됩니다(패킹 튜토리얼 참조).
일괄 변환이 느리면 어떻게 하나요? --opencl(GPU 가속)을 켜거나 차수를 낮추세요(7차 IIR은 저사양 머신에서 실시간성이 더 좋습니다).
본 문서는 Dpdo가 작성했으며, 명령어는 DpdoEngine 6.68과 릴리스 패키지의 convert 스크립트로 실측했습니다.