WAVE

오디오 코덱

RIFF 구조 위에 구축된 오디오 파일 컨테이너. 보통 비압축 PCM을 저장하지만 부동소수점 PCM, 압축 오디오, 확장 채널 정보도 담을 수 있다.

상세 설명

WAVE(Waveform Audio File Format)는 Microsoft와 IBM이 RIFF(Resource Interchange File Format) 위에 정의한 오디오 파일 형식으로, 확장자 `.wav`가 흔하다. 파일은 4문자 코드로 식별되는 청크로 구성된다. RIFF 헤더가 WAVE 유형을 선언하고, `fmt ` 청크가 오디오 인코딩과 매개변수를 기술하며, `data` 청크가 오디오 데이터를 저장한다. 다른 청크는 방송 메타데이터, 샘플러 정보, 마커, 추가 설명을 기록할 수 있다.

WAVE는 컨테이너이지 PCM의 동의어가 아니다. 가장 흔한 WAVE 파일은 정수 선형 PCM을 저장하지만, `fmt ` 청크는 IEEE 부동소수점 PCM, ADPCM, A-law, μ-law 및 등록 형식 코드로 표현되는 다른 인코딩도 식별할 수 있다. WAVE_FORMAT_EXTENSIBLE 확장은 유효 비트 깊이, 채널 마스크, 서브포맷을 명시해 일반 WAVEFORMATEX의 고비트·다채널·복잡 형식 기술 한계를 보완한다. `.wav` 확장자만으로 내부가 반드시 44.1 kHz, 16-bit, 비압축이라는 보장은 없다.

고전 RIFF는 청크 길이에 32-bit 부호 없는 정수를 쓰므로 단일 파일의 표현 가능 크기는 4 GiB 상한에 가깝다. 방송·제작 계통은 긴 시간, 다채널, 고샘플링률 녹음을 위해 RF64 등 확장을 발전시켜 특수 길이 마커와 추가 데이터 청크로 64-bit 크기를 저장한다. Wave64는 RF64나 일반 RIFF WAVE와 완전히 같지 않은 또 다른 확장 구조다.

WAVE의 청크 설계로 앱은 인식하지 못하는 추가 청크를 건너뛸 수 있지만, 소프트웨어 호환성은 청크 순서, 정렬, 인코딩 코드, 확장 지원에도 달린다. Broadcast WAVE(BWF)는 호환 WAVE 위에 설명, 시간 참조, 출처, 라우드니스 등 제작 메타데이터를 추가하며 오디오 데이터 자체는 PCM일 수 있다. 태깅 소프트웨어가 쓰는 RIFF INFO, ID3, 사용자 정의 블록은 모든 플레이어가 해석하지는 않는다.

무손실 PCM을 WAVE로 저장하는 것은 보통 편집·교환에 편리하지만 파일 크기는 FLAC, ALAC 같은 무손실 압축 형식보다 크다. 올바르게 변환하면 둘 다 같은 샘플을 담을 수 있으며, 컨테이너 선택만으로 소리가 자동으로 바뀌지는 않는다. 반대로 손실 오디오를 WAVE로 디코딩하면 비압축 디코드 결과만 얻을 뿐, 이미 잃은 정보를 원 녹음으로 되돌릴 수 없다.