LabLynx Wiki

웨이브폼 오디오 파일 포맷
Waveform Audio File Format (WAVE/WAV)
파일 확장자.wav .wave
인터넷 미디어 타입
audio/vnd.wave,[1] audio/wav, audio/wave, audio/x-wav[2]
타입 코드WAVE
UTIcom.microsoft.waveform-audio
개발IBM마이크로소프트
발표일1991년 8월(33년 전)(1991-08)[3]
최신 버전
다중 채널 오디오 데이터 및 WAVE 파일(Multiple Channel Audio Data and WAVE Files)
(2007년 3월 7일(17년 전)(2007-03-07) (업데이트)[4][5])
포맷 종류오디오 파일 포맷, 컨테이너 포맷
다음으로부터 확장RIFF
다음으로 확장BWF, RF64

WAV 또는 WAVE는 웨이브폼 오디오 포맷(웨이브 오디오 포맷, Waveform audio format)의 준말로 개인용 컴퓨터에서 오디오를 재생하는 마이크로소프트IBM 오디오 파일 포맷 표준이다. 덩어리째로 데이터를 저장하기 위한 RIFF 비트스트림 포맷 방식에서 변화한 것으로, 아미가매킨토시 컴퓨터에 쓰이는 AIFF 포맷에 매우 가깝다. 가공되지 않은 오디오를 위한 윈도우 시스템에 쓰이는 기본 포맷이다. 윈도 상에서는 WAV가 비압축 형식만 있는 것이 아니고 여러 압축 코덱을 이용할 수 있다. 그러나 윈도우 비스타부터는 기본 지원 포맷이 WMA으로 바뀌었다.

WAV는 비압축 오디오 포맷으로, 프로그램 구동음이나 일반 수준의 녹음용으로 사용되지만 전문 녹음용으로는 WAV가 아닌 다른 비압축 포맷이 더 많이 쓰이기도 한다. 참고로 일부 라디오 방송국에서는 MP2이라는 압축 오디오 포맷 대신 비압축 WAV 포맷을 사용하는 경우도 있다.

설명

WAV 파일은 IBM과 마이크로소프트가 정의한 RIFF(Resource Interchange File Format)의 인스턴스이다.[3] RIFF 형식은 다양한 오디오 코딩 포맷에 대한 래퍼 역할을 한다.

WAV 파일에는 압축된 오디오가 포함될 수 있지만 가장 일반적인 WAV 오디오 형식은 LPCM(선형 펄스 코드 변조) 형식의 비압축 오디오이다. LPCM은 또한 오디오 CD의 표준 오디오 코딩 형식으로, 샘플당 16비트로 44.1kHz로 샘플링된 2채널 LPCM 오디오를 저장한다. LPCM은 압축되지 않고 오디오 트랙의 모든 샘플을 유지하므로 전문 사용자 또는 오디오 전문가는 최대 오디오 품질을 위해 LPCM 오디오와 함께 WAV 형식을 사용할 수 있다.[6] WAV 파일은 소프트웨어를 사용하여 비교적 쉽게 편집하고 조작할 수도 있다.

마이크로소프트 윈도우에서 WAV 형식은 ACM(Audio Compression Manager)을 사용하여 압축된 오디오를 지원한다. 모든 ACM 코덱을 사용하여 WAV 파일을 압축할 수 있다. ACM의 사용자 인터페이스(UI)는 일부 윈도우 버전의 녹음기를 포함하여 이를 사용하는 다양한 프로그램을 통해 접근할 수 있다.

윈도우 2000부터 스피커 위치와 함께 여러 오디오 채널 데이터를 지정하는 WAVE_FORMAT_EXTENSIBLE 헤더가 정의되어 표준 WAV 형식의 샘플 유형 및 컨테이너 크기와 관련된 모호성을 제거하고 형식에 대한 사용자 정의 확장 정의를 지원한다.[4][5][7]

사양

RIFF

RIFF 파일은 태그된 파일 형식이다. 4자 태그(FourCC)와 청크의 크기(바이트 수)를 포함하는 헤더가 있는 특정 컨테이너 형식(청크)을 갖는다. 태그는 청크 내의 데이터를 해석하는 방법을 지정하며 몇 가지 표준 FourCC 태그가 있다. 모두 대문자로 구성된 태그는 예약된 태그이다. RIFF 파일의 가장 바깥쪽 청크에는 RIFF 태그가 있다. 청크 데이터의 처음 4바이트는 양식 유형을 지정하는 추가 FourCC 태그이며 그 뒤에 일련의 하위 청크가 온다. WAV 파일의 경우 추가 태그는 WAVE이다. RIFF 데이터의 나머지 부분은 오디오 정보를 설명하는 일련의 청크이다.

태그가 있는 파일 형식의 장점은 이전 버전과의 호환성을 유지하면서 나중에 형식을 확장할 수 있다는 것이다.[8] RIFF(또는 WAV) 리더(reader)의 규칙은 인식하지 못하는 태그가 지정된 청크를 무시해야 한다는 것이다.[9] 리더는 새로운 정보를 이용할 수 없게 되지만, 리더가 혼동해서는 안 된다.

RIFF 파일 사양에는 INFO 청크 정의가 포함된다. 청크에는 저작물의 제목, 작가, 창작일자, 저작권 정보 등의 정보가 포함될 수 있다. 버전 1.0에서는 RIFF에 대해 INFO 청크가 정의되었지만 WAV 파일의 공식 사양에서는 해당 청크가 참조되지 않았다. 많은 리더들이 이를 처리하는 데 어려움을 겪었다. 결과적으로, 교환 관점에서 가장 안전한 방법은 INFO 청크 및 기타 확장자를 생략하고 최소 공통 분모 파일을 보내는 것이다. 다른 INFO 청크 배치 문제가 있다.

RIFF 파일은 국제 환경에서 사용될 것으로 예상되었으므로 RIFF 파일의 문자열에 대한 국가 코드, 언어, 방언(dialect) 및 코드 페이지를 지정하는 CSET 청크가 있다.[10] 예를 들어 적절한 CSET 청크를 지정하면 INFO 청크(및 RIFF 파일 전체의 다른 청크)의 문자열이 키릴 문자 또는 일본어 문자로 해석될 수 있다.

RIFF는 또한 내용이 흥미롭지 않은 JUNK 청크를 정의한다.[11] 청크를 사용하면 FourCC만 변경하면 청크를 삭제할 수 있다. 청크는 향후 편집을 위해 일부 공간을 예약하는 데 사용될 수도 있으므로 파일 크기를 조정하지 않고도 수정할 수 있다. RIFF의 이후 정의에서는 유사한 PAD 청크가 도입되었다.[12]

RIFF WAVE

WAV 파일의 최상위 정의는 다음과 같다:[13]

<WAVE-form> → RIFF('WAVE'
                   <fmt-ck>            // Format of the file
                   [<fact-ck>]         // Fact chunk
                   [<cue-ck>]          // Cue points
                   [<playlist-ck>]     // Playlist
                   [<assoc-data-list>] // Associated data list
                   <wave-data> )       // Wave data

최상위 RIFF 폼은 WAVE 태그를 사용한다. 그 뒤에는 샘플 데이터의 형식을 설명하는 필수 <fmt-ck> 청크가 온다. 이 청크에는 샘플 인코딩, 채널당 비트 수, 채널 수 및 샘플 속도와 같은 정보가 포함된다.

WAV 사양에는 몇 가지 선택적 기능이 포함되어 있다. 선택적 <fact-ck> 청크는 일부 압축 코딩 체계에 대한 샘플 수를 보고한다. <cue-ck> 청크는 웨이브 파일에서 중요한 샘플 번호를 식별한다. <playlist-ck> 청크를 사용하면 샘플을 처음부터 끝까지 재생하는 것이 아니라 순서 없이 재생하거나 반복할 수 있다. 관련 데이터 목록(<assoc-data-list>)을 사용하면 레이블과 메모를 큐 포인트에 연결할 수 있다. 샘플 그룹에 대해 텍스트 주석이 제공될 수 있다(예: 캡션 정보).

마지막으로 필수 <wave-data> 청크에는 이전에 지정된 형식의 실제 샘플이 포함된다.

WAV 파일 정의는 INFO 청크가 배치되어야 하는 위치를 표시하지 않는다. 또한 CSET 청크(사용된 문자 집합을 지정)의 배치에 대해서도 침묵한다.

RIFF 사양은 공식적인 사양이 되려고 시도하지만 형식성은 다른 태그 형식에서 볼 수 있는 정밀도가 부족하다. 예를 들어, RIFF 사양은 하위 청크 집합과 순서가 지정된 하위 청크 시퀀스를 명확하게 구분하지 않는다. RIFF 폼 청크는 시퀀스 컨테이너여야 함을 나타낸다.[14] 형식과 일치하는 WAV 파일의 RIFF 형식으로 시퀀싱 정보를 지정한다. "그러나 <fmt-ck>는 항상 <wave-data> 앞에 와야 하며 이 두 청크는 WAVE 파일에서 필수이다."</ref > 사양에서는 LIST 청크가 시퀀스이기도 함을 제안한다. "LIST 청크에는 하위 청크의 목록 또는 순서가 지정된 시퀀스가 포함되어 있다."[15] 그러나 이 사양은 INFO 청크에 대한 공식적인 사양을 제공하지 않는다. INFO LIST 청크의 예는 INFO 설명에 포함된 청크 순서를 무시한다.[16] <wave-data>에 대한 LIST 청크 정의는 LIST 청크를 좋은 형식적 의미를 지닌 시퀀스 컨테이너로 사용한다.

WAV 사양은 연속적인 단일 오디오 샘플 배열뿐만 아니라 순서대로 재생되는 개별 샘플 블록 및 무음도 허용한다. 대부분의 WAV 파일은 단일 데이터 배열을 사용한다. 샘플 데이터의 사양은 혼동을 준다.[17]

The <wave-data> contains the waveform data. It is defined as follows:
  <wave-data>  → { <data-ck> | <data-list> }
  <data-ck>    → data( <wave-data> )
  <wave-list>  → LIST( 'wavl' { <data-ck> | // Wave samples
                                <silence-ck> }... ) // Silence
  <silence-ck> → slnt( <dwSamples:DWORD> ) // Count of silent samples

분명히 <data-list>(정의되지 않음)와 <wave-list>(정의되었지만 참조되지 않음)는 동일해야 한다. 해당 문제가 해결되더라도 <data-ck>에 재귀적인 <wave-data>가 포함되도록 허용한다(이는 데이터 해석 문제를 의미함). 사양은 재귀를 피하기 위해 다음과 같아야 한다.

<wave-data>  → { <data-ck> | <wave-list> }
  <data-ck>    → data( <bSampleData:BYTE> ... )
  <wave-list>  → LIST( 'wavl' { <data-ck> | // Wave samples
                                <silence-ck> }... ) // Silence
  <silence-ck> → slnt( <dwSamples:DWORD> ) // Count of silent samples

WAV 파일에는 여러 "하위 청크"를 포함할 수 있는 내장된 IFF "목록"이 포함될 수 있다.[18][19][20]

메타데이터

RIFF의 파생물로서 WAV 파일은 INFO 청크의 메타데이터로 태그를 지정할 수 있다. 또한 WAV 파일은 XMP(Extensible Metadata Platform) 데이터[21] 또는 ID3 태그[22]를 포함하되 이에 국한되지 않는 모든 종류의 메타데이터를 추가 청크에 포함할 수 있다. 응용 프로그램은 이 추가 정보를 처리하지 않거나 특정 위치에서 이를 볼 것으로 예상할 수 있다. RIFF 사양에서는 응용 프로그램이 인식하지 못하는 청크를 무시하도록 요구하지만 일부 응용 프로그램은 추가 청크로 인해 혼란을 겪는다.

대중화

무압축 WAV 파일은 크기가 크므로 압축되지 않은 형식이 모든 오디오 형식 중에서 가장 인기가 있고 대부분의 경우 고속 광대역 웹 연결이 필요한 비디오, 음악 및 오디오 전문가를 제외하고 인터넷을 통한 WAV 파일의 파일 공유는 일반적이지 않다. 많은 오디오 및 음악 소프트웨어 제조업체는 이제 이를 기본 파일 형식으로 선호하지만 다른 제조업체도 종종 지원된다. 이 형식의 고해상도는 디스크 공간이 제한되지 않는 시스템 또는 데이터 압축 및 압축 해제에 시간이 소요되는 오디오 편집과 같은 응용 프로그램에서 사용하기 위해 고품질의 1세대 아카이브 파일을 유지하는 데 적합하다. 변환에 따른 품질 손실은 우려 사항이다.

방송국에서의 사용

큰 크기에도 불구하고 압축되지 않은 WAV 파일은 대부분의 라디오 방송사, 특히 테이프가 없는 시스템을 채택한 방송사에서 사용된다.

  • 영국의 BBC 라디오는 SCISYS dira 오디오 편집 및 재생 시스템에서 48kHz 16비트 2채널 WAV 오디오를 표준으로 사용한다.
  • 영국 상업 라디오 회사인 글로벌 라디오는 Genesys 재생 시스템과 방송 체인 전체에서 44.1kHz 16비트 2채널 WAV 파일을 사용한다.
  • 호주 방송사에서 개발한 ABC "D-Cart" 시스템은 디지털 오디오 테이프와 동일한 48kHz 16비트 2채널 WAV 파일을 사용한다.
  • Digital Radio Mondiale 컨소시엄은 WAV 파일을 송신기 시뮬레이션 및 수신기 테스트를 위한 비공식 표준으로 사용한다.

제약

WAV 형식은 파일 크기 헤더를 기록하기 위해 32비트 부호 없는(unsigned) 정수를 사용하기 때문에 4GiB 미만의 파일로 제한된다. 이는 CD 품질 오디오(44.1kHz, 16비트 스테레오)의 약 6.8시간에 해당하지만 때로는 이 제한을 초과해야 하는 경우가 있으며, 특히 더 높은 샘플링 속도, 비트 해상도 또는 채널 수가 필요한 경우 더욱 그러하다. 이 제약으로 인해 사운드 포지에서는 W64 형식이 만들어졌다. 64비트 헤더를 사용하면 훨씬 더 긴 녹음 시간이 가능하다. 유럽 방송 연맹(European Broadcasting Union)에서 지정한 RF64 형식도 이 문제를 해결하기 위해 만들어졌다.

비오디오 데이터

WAV 파일의 샘플링 속도는 1Hz에서 4.3GHz까지 다양하고 채널 수는 최대 65535개에 달할 수 있으므로 오디오가 아닌 데이터에도 .wav 파일이 사용되었다. 예를 들어 LTspice는 적절한 샘플링 속도로 여러 회로 추적 파형을 별도의 채널에 저장할 수 있으며 전체 범위는 음압이 아닌 ±1V 또는 A를 나타낸다.[23]

오디오 CD

오디오 콤팩트 디스크(CD)는 WAV 파일 형식을 사용하지 않고 대신 레드북 오디오를 사용한다. 공통점은 오디오 CD가 WAV에서 지원하는 형식 중 하나인 무압축 펄스 부호 변조(PCM)로 인코딩된다는 것이다. WAV는 대부분의 CD 플레이어에서 직접 이해할 수 없는 컴퓨터에서 사용하는 파일 형식이다. WAV 파일을 오디오 CD에 기록하려면 파일 헤더를 제거해야 하며, 아직 PCM으로 저장되지 않은 경우 콘텐츠를 트랜스코딩해야 하며, PCM 데이터는 CD의 섹터 크기에 맞게 제로 패딩이 추가된 개별 트랙으로 디스크에 직접 기록되어야 한다.

PCM 오디오를 CD에 구울 수 있으려면 오디오가 44.1kHz, 16비트 스테레오 형식이어야 한다.

코딩 스킴 비교

WAV 파일의 오디오는 GSM 또는 MP3와 같은 다양한 오디오 코딩 형식으로 인코딩되어 파일 크기를 줄일 수 있다.

이는 PCM, ADPCM, 마이크로소프트 GSM 06.10, CELP, SBC, 트루스피치 및 MPEG Layer-3를 포함한 WAV 파일에 사용할 수 있는 오디오 코딩 형식의 모노럴(스테레오 오디오 아님) 오디오 품질과 압축 비트 전송률을 비교하기 위한 참조이다. 이는 윈도우와 함께 제공되는 기본 ACM 코덱이다.

포맷 비트 속도 1 분 = 샘플
11,025 Hz 16 비트 PCM 176.4 kbs 1292 k 11k16bitpcm.wav
8,000 Hz 16 비트 PCM 128 kbs 937.5 k 8k16bitpcm.wav
11,025 Hz 8 비트 PCM 88.2 kbs 646 k 11k8bitpcm.wav
11,025 Hz µ-Law 88.2 kbs 646 k 11kulaw.wav
8,000 Hz 8 비트 PCM 64 kbs 468.8 k 8k8bitpcm.wav
8,000 Hz µ-Law 64 kbs 468.8 k 8kulaw.wav
11,025 Hz 4 비트 ADPCM 44.1 kbs 323k 11kadpcm.wav
8,000 Hz 4bit ADPCM 32 kbs 234.4 k 8kadpcm.wav
11,025 Hz GSM6.10 18 kbs 131.8 k 11kgsm.wav
8,000 Hz Mp3 16 k 16 kbs 117 k 8kmp316.wav
8,000 Hz GSM6.10 13 kbs 102.5 k 8kgsm.wav
8,000 Hz Lernout & Hauspie SBC 12 k 12.0 kbs 87.9 k 8ksbc12.wav
8,000 Hz DSP Group Truespeech 9 kbs 65.9 k 8ktruespeech.wav
8,000 Hz Mp3 8 k 8 kbs 60 k 8kmp38.wav
8,000 Hz Lernout & Hauspie CELP 4.8 kbs 35 k 8kcelp.wav

위 파일은 WAV 파일이다. MP3 압축을 사용하는 경우에도 확장자는 .wav이다.

같이 보기

각주

  1. Fleischman, E. (June 1998). WAVE and AVI Codec Registries. IETF. doi:10.17487/RFC2361. RFC 2361. https://tools.ietf.org/html/rfc2361. Retrieved 2009-12-06. 
  2. “File Extension .WAV Details”. Filext.com. 2015년 8월 10일에 확인함. 
  3. IBM; Microsoft (August 1991). “Multimedia Programming Interface and Data Specifications 1.0” (PDF). 2020년 12월 26일에 확인함. 
  4. P. Kabal (2006년 6월 19일). “Audio File Format Specifications - WAVE or RIFF WAVE sound file”. McGill University. 2010년 3월 16일에 확인함. 
  5. “Multiple Channel Audio Data and WAVE Files”. Microsoft Corporation. 2007년 3월 7일. 2010년 3월 16일에 확인함. 
  6. Branson, Ryan (21 October 2015) (2015년 10월 21일). “What Makes WAV Better than MP3”. 《Online Video Converter》. 2016년 6월 18일에 확인함. 
  7. EBU (July 2009), 《EBU Tech 3306 - MBWF / RF64: An Extended File Format for Audio》 (PDF), 2009년 11월 22일에 원본 문서 (PDF)에서 보존된 문서, 2010년 1월 19일에 확인함 
  8. IBM & Microsoft 1991, 1-1쪽 괄호 없는 하버드 인용 error: 여러 대상 (2×): CITEREFIBMMicrosoft1991 (help), "The main advantage of RIFF is its extensibility; file formats based on RIFF can be future-proofed, as format changes can be ignored by existing applications."
  9. IBM & Microsoft 1991, PDF p. 56 괄호 없는 하버드 인용 error: 여러 대상 (2×): CITEREFIBMMicrosoft1991 (help), "Programs must expect (and ignore) any unknown chunks encountered, as with all RIFF forms."
  10. IBM & Microsoft 1991, 2-17 to 2-18쪽 괄호 없는 하버드 인용 error: 여러 대상 (2×): CITEREFIBMMicrosoft1991 (help)
  11. IBM & Microsoft 1991, 2-18쪽 괄호 없는 하버드 인용 error: 여러 대상 (2×): CITEREFIBMMicrosoft1991 (help)
  12. Microsoft Multimedia Standards Update, New Multimedia Data Types and Data Techniques, Revision 3.0, April 15, 1994, page 6.
  13. IBM & Microsoft 1991, PDF p. 56 괄호 없는 하버드 인용 error: 여러 대상 (2×): CITEREFIBMMicrosoft1991 (help)
  14. IBM & Microsoft 1991, PDF p. 56 괄호 없는 하버드 인용 error: 여러 대상 (2×): CITEREFIBMMicrosoft1991 (help)
  15. IBM & Microsoft 1991, PDF p. 23 괄호 없는 하버드 인용 error: 여러 대상 (2×): CITEREFIBMMicrosoft1991 (help)
  16. IBM & Microsoft 1991, PDF p. 21 괄호 없는 하버드 인용 error: 여러 대상 (2×): CITEREFIBMMicrosoft1991 (help), INAM appears before ICOP
  17. Specification from IBM & Microsoft 1991 괄호 없는 하버드 인용 error: 여러 대상 (2×): CITEREFIBMMicrosoft1991 (help) which also describes how the production syntax is interpreted.
  18. “WAVE File Format”. 1999년 11월 15일. 1999년 11월 15일에 원본 문서에서 보존된 문서. 2010년 3월 16일에 확인함. 
  19. “WAVE PCM soundfile format”. 2003년 1월 20일. 2009년 8월 27일에 원본 문서에서 보존된 문서. 2010년 3월 16일에 확인함. 
  20. “The WAVE File Format”. 2011년 7월 22일에 원본 문서에서 보존된 문서. 2010년 3월 16일에 확인함. 
  21. 《XMP SPECIFICATION PART 3: STORAGE IN FILES》 (PDF). Adobe Systems Incorporated. 2016. 24–25쪽. 2018년 2월 25일에 원본 문서 (PDF)에서 보존된 문서. 2020년 1월 8일에 확인함. 
  22. “WAV”. Audacity. 2020년 1월 8일에 확인함. 
  23. “LTspice IV” (PDF). Linear Technologies Corporation. 2009. 95쪽. 2012년 2월 27일에 원본 문서 (PDF)에서 보존된 문서. 2015년 9월 4일에 확인함. 

외부 링크