stringtranslate.com

WAV

Формат аудиофайла Waveform ( WAVE или WAV из-за расширения имени файла ; [3] [6] [7] произносится как / wæv / или / weɪv / [8] ) — стандарт формата аудиофайлов для хранения аудиопотока на персональных компьютерах . Формат был разработан и впервые опубликован в 1991 году компаниями IBM и Microsoft . Это основной формат, используемый в системах Microsoft Windows для несжатого звука . Обычное кодирование битового потока — это формат линейной импульсно-кодовой модуляции (LPCM).

WAV — это приложение метода формата потока битов Resource Interchange File Format (RIFF) для хранения данных в виде фрагментов , и, таким образом, он похож на форматы 8SVX и Audio Interchange File Format (AIFF), используемые на компьютерах Amiga и Macintosh соответственно.

Описание

Файл WAV является примером формата файла обмена ресурсами (RIFF), определенного IBM и Microsoft . [3] Формат RIFF действует как оболочка для различных форматов кодирования звука .

Хотя файл WAV может содержать сжатый звук, наиболее распространенным форматом аудио WAV является несжатый звук в формате линейной импульсно-кодовой модуляции (LPCM). LPCM также является стандартным форматом кодирования звука для аудио компакт-дисков , которые хранят двухканальный звук LPCM, сэмплированный на частоте 44,1 кГц с 16 битами на сэмпл . Поскольку LPCM не сжимается и сохраняет все сэмплы звуковой дорожки, профессиональные пользователи или аудиоэксперты могут использовать формат WAV со звуком LPCM для максимального качества звука. [9] Файлы WAV также можно редактировать и манипулировать ими с относительной легкостью с помощью программного обеспечения.

В Microsoft Windows формат WAV поддерживает сжатый звук с помощью Audio Compression Manager (ACM). Для сжатия WAV-файла можно использовать любой кодек ACM. Пользовательский интерфейс (UI) для ACM можно получить через различные программы, которые его используют, включая Sound Recorder в некоторых версиях Windows.

Начиная с Windows 2000 , WAVE_FORMAT_EXTENSIBLEбыл определен заголовок, который определяет данные нескольких аудиоканалов вместе с позициями динамиков, устраняет неоднозначность относительно типов сэмплов и размеров контейнеров в стандартном формате WAV и поддерживает определение пользовательских расширений для формата. [4] [5] [10]

Характеристики файла

РИФФ

Файл RIFF — это формат файла с тегами. Он имеет определенный формат контейнера ( chunk ) с заголовком, который включает четырехсимвольный тег ( FourCC ) и размер (количество байтов) куска. Тег определяет, как следует интерпретировать данные внутри куска, и существует несколько стандартных тегов FourCC. Теги, состоящие только из заглавных букв, являются зарезервированными тегами. Самый внешний кусок файла RIFF имеет тег RIFF; первые четыре байта данных куска являются дополнительным тегом FourCC, которые определяют тип формы и за которыми следует последовательность подкусков. В случае файла WAV дополнительным тегом является WAVE. Остальная часть данных RIFF представляет собой последовательность фрагментов, описывающих аудиоинформацию.

Преимущество формата файла с тегами заключается в том, что формат может быть расширен позже с сохранением обратной совместимости . [11] Правило для считывателя RIFF (или WAV) заключается в том, что он должен игнорировать любой тегированный фрагмент, который он не распознает. [12] Читатель не сможет использовать новую информацию, но читатель не должен быть сбит с толку.

Спецификация для файлов RIFF включает определение фрагмента INFO. Фрагмент может включать такую ​​информацию, как название работы, автора, дату создания и информацию об авторских правах. Хотя INFOфрагмент был определен для RIFF в версии 1.0, в формальной спецификации файла WAV на него не было ссылки. У многих читателей возникли проблемы с обработкой этого. Следовательно, самым безопасным с точки зрения обмена было опустить фрагмент INFOи другие расширения и отправить файл с наименьшим общим знаменателем. Существуют и другие проблемы размещения фрагмента INFO .

Файлы RIFF предполагалось использовать в международных средах, поэтому существует CSETфрагмент для указания кода страны, языка, диалекта и кодовой страницы для строк в файле RIFF. [13] Например, указание соответствующего фрагмента должно позволить интерпретировать CSETстроки в фрагменте (и другие фрагменты во всем файле RIFF) как кириллические или японские символы.INFO

RIFF также определяет JUNKфрагмент, содержимое которого неинтересно. [14] Этот фрагмент позволяет удалить фрагмент, просто изменив его FourCC. Этот фрагмент также можно использовать для резервирования места для будущих правок, чтобы файл можно было изменять без изменения размера. Более позднее определение RIFF ввело аналогичный PADфрагмент. [15]

РИФФ ВОЛНА

Верхнее определение файла WAV: [16]

<WAVE-форма> → RIFF('WAVE' <fmt-ck> // Формат файла [<fact-ck>] // Фрагмент факта [<cue-ck>] // Точки разметки [<playlist-ck>] // Плейлист [<assoc-data-list>] // Список связанных данных <wave-data> ) // Данные волны

Форма RIFF верхнего уровня использует WAVEтег. За ним следует обязательный <fmt-ck>фрагмент, описывающий формат данных выборки, которые следуют за ним. Этот фрагмент включает в себя такую ​​информацию, как кодировка выборки, количество бит на канал, количество каналов и частота выборки.

Спецификация WAV включает некоторые дополнительные функции. Необязательный <fact-ck>фрагмент сообщает количество образцов для некоторых схем сжатого кодирования. <cue-ck>Фрагмент идентифицирует некоторые значимые номера образцов в файле Wave. Фрагмент <playlist-ck>позволяет воспроизводить образцы не по порядку или повторять их, а не только от начала до конца. Связанный список данных ( <assoc-data-list>) позволяет прикреплять метки и примечания к контрольным точкам; для группы образцов может быть указана текстовая аннотация (например, информация о подписи).

Наконец, обязательный <wave-data>блок содержит фактические образцы в указанном ранее формате.

Обратите внимание, что определение файла WAV не показывает, где INFOдолжен быть размещен фрагмент. Оно также ничего не говорит о размещении фрагмента CSET(которое определяет используемый набор символов).

Спецификация RIFF пытается быть формальной спецификацией, но ее формализму не хватает точности, наблюдаемой в других тегированных форматах. Например, спецификация RIFF не делает четкого различия между набором подфрагментов и упорядоченной последовательностью подфрагментов. Форма RIFF chunk предполагает, что это должен быть контейнер последовательности. Информация о последовательности указана в форме RIFF файла WAV в соответствии с формализмом: «Однако, <fmt-ck>всегда должно встречаться до <wave-data>, и оба этих фрагмента являются обязательными в файле WAVE». [17] Спецификация предполагает, что LISTфрагмент также является последовательностью: «Фрагмент LIST содержит список или упорядоченную последовательность подфрагментов». [18] Однако спецификация не дает формальной спецификации фрагмента INFO; пример INFO LISTфрагмента игнорирует последовательность фрагментов, подразумеваемую в INFOописании. [19] Определение LISTфрагмента для <wave-data>использует LISTфрагмент как контейнер последовательности с хорошей формальной семантикой.

Спецификация WAV поддерживает, и большинство файлов WAV используют, единый непрерывный массив аудиосэмплов. Спецификация также поддерживает дискретные блоки сэмплов и тишины, которые воспроизводятся по порядку. Спецификация для данных сэмплов содержит очевидные ошибки: [20]

<wave-data> содержит данные формы волны. Он определяется следующим образом: <wave-data> → { <data-ck> | <data-list> } <data-ck> → данные( <wave-data> ) <wave-list> → LIST( 'wavl' { <data-ck> | // Образцы волн <silence-ck> }... ) // Тишина <silence-ck> → slnt( <dwSamples:DWORD> ) // Количество тихих образцов

Очевидно, <data-list>(undefined) и <wave-list>(defined but not referenced) должны быть идентичны. Даже если это решено, то продукция позволяет a <data-ck>содержать рекурсивный <wave-data> (что подразумевает проблемы интерпретации данных). Чтобы избежать рекурсии, спецификацию можно интерпретировать как:

<волновые-данные> → { <данные-ck> | <волновой-список> } <data-ck> → данные( <bSampleData:BYTE> ... ) <wave-list> → LIST( 'wavl' { <data-ck> | // Образцы волн <silence-ck> }... ) // Тишина <silence-ck> → slnt( <dwSamples:DWORD> ) // Количество тихих образцов

Файлы WAV могут содержать встроенные списки IFF , которые могут содержать несколько подфрагментов . [21] [22] [23]

Заголовок WAV-файла

Это пример заголовка WAV-файла (44 байта). Данные хранятся в порядке байтов little-endian.

[Основной фрагмент RIFF] FileTypeBlocID (4 байта): Идентификатор «RIFF» (0x52, 0x49, 0x46, 0x46) FileSize (4 байта): общий размер файла минус 8 байт. FileFormatID (4 байта): Формат = «WAVE» (0x57, 0x41, 0x56, 0x45)[Фрагмент описания формата данных] FormatBlocID (4 байта): идентификатор «fmt␣» (0x66, 0x6D, 0x74, 0x20) BlocSize (4 байта): размер фрагмента минус 8 байт, что в данном случае составляет 16 байт (0x10) AudioFormat (2 байта): формат аудио (1: целое число PCM, 3: число с плавающей точкой IEEE 754) NbrChannels (2 байта): количество каналов Частота (4 байта): частота дискретизации (в герцах) BytePerSec (4 байта): количество байтов, считываемых в секунду (Частота * BytePerBloc). BytePerBloc (2 байта): количество байтов на блок (NbrChannels * BitsPerSample / 8). BitsPerSample (2 байта): количество бит на выборку[Фрагмент, содержащий выборочные данные] DataBlocID (4 байта): идентификатор «данные» (0x64, 0x61, 0x74, 0x61) DataSize (4 байта): размер выборочных данных Выборочные данные

Метаданные

Как производные от RIFF, файлы WAV могут быть помечены метаданными в фрагменте INFO. Кроме того, файлы WAV могут встраивать любые виды метаданных, включая, помимо прочего, данные Extensible Metadata Platform (XMP) [24] или теги ID3 [25] в дополнительные фрагменты. Спецификация RIFF требует, чтобы приложения игнорировали фрагменты, которые они не распознают, и приложения не обязательно могут использовать эту дополнительную информацию.

Популярность

Несжатые файлы WAV имеют большой размер, поэтому обмен файлами WAV через Интернет не распространен, за исключением профессионалов в области видео, музыки и аудио. Высокое разрешение формата делает его пригодным для сохранения архивных файлов первого поколения высокого качества для использования в системе, где дисковое пространство и пропускная способность сети не являются ограничениями.

Использование вещателями

Несмотря на большой размер, несжатые файлы WAV используются большинством радиовещательных компаний, особенно теми, которые перешли на безленточную систему.

Ограничения

Формат WAV ограничен файлами размером менее4  GiB , из-за использования 32-битного целого числа без знака для записи размера файла в заголовке. Хотя это эквивалентно примерно 6,8 часам звука CD-качества при 44,1 кГц, 16-битном стерео , иногда необходимо превышать этот предел, особенно когда требуются более высокие частоты дискретизации , битовые разрешения или количество каналов . Поэтому формат W64 был создан для использования в Sound Forge . Его 64-битное поле размера файла в заголовке позволяет записывать гораздо большее время. Формат RF64, указанный Европейским вещательным союзом, также был создан для решения этой проблемы.

Неаудио данные

Поскольку частота дискретизации WAV-файла может варьироваться от1  Гц до4,3  ГГц , а количество каналов может достигать 65535, файлы WAV также использовались для неаудиоданных. Например, LTspice может хранить несколько форм сигналов трассировки цепи в отдельных каналах с любой подходящей частотой дискретизации, при этом полный диапазон представляет собой ±1  В или А, а не звуковое давление. [27]

Аудио компакт-диски

Аудио компакт-диски (CD) не используют формат файла WAV, вместо этого используется Red Book audio . Общим является то, что аудио компакт-диски кодируются как несжатый 16-битный 44,1 кГц стерео LPCM, который является одним из форматов, поддерживаемых WAV.

Сравнение схем кодирования

Аудио в файлах WAV может быть закодировано в различных форматах аудиокодирования, таких как GSM или MP3 , для уменьшения размера файла. Все файлы WAV; даже те, которые используют сжатие MP3,.wav используют расширение.

Это справочник по сравнению качества монофонического (не стереофонического ) звука и битрейтов сжатия форматов кодирования звука, доступных для файлов WAV, включая LPCM, ADPCM , Microsoft GSM 06.10 , CELP , SBC , Truespeech и MPEG Layer-3. Это кодеки ACM по умолчанию, которые поставляются с Windows.

Смотрите также

Ссылки

  1. ^ Флейшман, Э. (июнь 1998 г.). Реестры кодеков WAVE и AVI. IETF. doi : 10.17487/RFC2361 . RFC 2361. Получено 06.12.2009 .
  2. ^ "Расширение файла .WAV Подробности". Filext.com . Получено 2015-08-10 .
  3. ^ abc IBM; Microsoft (август 1991 г.). "Multimedia Programming Interface and Data Specifications 1.0" (PDF) . Получено 2020-12-26 .
  4. ^ ab P. Kabal (2006-06-19). "Характеристики формата аудиофайла - звуковой файл WAVE или RIFF WAVE". Университет Макгилла . Получено 2010-03-16 .
  5. ^ ab "Многоканальные аудиоданные и файлы WAVE". Корпорация Microsoft. 2007-03-07 . Получено 2010-03-16 .
  6. ^ "Формат аудиофайла WAVE". Библиотека Конгресса . 2008-09-12 . Получено 2023-12-03 .
  7. ^ Di Silvestro, Laile L.; Baribault, Greg (20 июня 1999 г.). Формат аудиофайла Waveform, регистрация подтипа MIME. IETF. Идентификатор draft-ema-vpim-wav-00 . Получено 06.12.2009 .
  8. ^ "Определение WAV-файла на английском языке". Oxford English Living Dictionary . Архивировано из оригинала 7 февраля 2018 г.
  9. ^ Брэнсон, Райан (21 октября 2015 г.) (21 октября 2015 г.). «Что делает WAV лучше, чем MP3». Онлайн-конвертер видео . Получено 18 июня 2016 г.{{cite web}}: CS1 maint: numeric names: authors list (link)
  10. ^ EBU (июль 2009 г.), EBU Tech 3306 - MBWF / RF64: расширенный формат файла для аудио (PDF) , заархивировано из оригинала (PDF) 22.11.2009 , извлечено 19.01.2010
  11. ^ IBM & Microsoft 1991, стр. 1-1, «Главное преимущество RIFF — его расширяемость; форматы файлов, основанные на RIFF, могут быть рассчитаны на будущее, поскольку изменения формата могут игнорироваться существующими приложениями».
  12. ^ IBM & Microsoft 1991, PDF стр. 56, «Программы должны ожидать (и игнорировать) любые неизвестные фрагменты, встречающиеся, как и во всех формах RIFF».
  13. IBM и Microsoft 1991, стр. 2-17 по 2-18.
  14. ^ IBM и Microsoft 1991, стр. 2-18
  15. Обновление стандартов мультимедиа Microsoft, Новые типы и методы обработки данных мультимедиа, редакция 3.0, 15 апреля 1994 г., стр. 6.
  16. ^ IBM и Microsoft 1991, PDF стр. 56
  17. ^ IBM и Microsoft 1991, PDF стр. 56
  18. ^ IBM и Microsoft 1991, PDF стр. 23
  19. ^ IBM & Microsoft 1991, PDF стр. 21, INAMпоявляется ранееICOP
  20. ^ Спецификация IBM и Microsoft 1991 года, которая также описывает, как интерпретируется синтаксис продукции.
  21. ^ "Формат файла WAVE". 1999-11-15. Архивировано из оригинала 1999-11-15 . Получено 2010-03-16 .
  22. ^ "WAVE PCM soundfile format". 2003-01-20. Архивировано из оригинала 2009-08-27 . Получено 2010-03-16 .
  23. ^ "Формат файла WAVE". Архивировано из оригинала 2011-07-22 . Получено 2010-03-16 .
  24. ^ СПЕЦИФИКАЦИЯ XMP ЧАСТЬ 3: ХРАНЕНИЕ В ФАЙЛАХ (PDF) . Adobe Systems Incorporated. 2016. стр. 24–25. Архивировано из оригинала (PDF) 25 февраля 2018 г. Получено 8 января 2020 г.
  25. ^ "WAV". Audacity. Архивировано из оригинала 2020-11-06 . Получено 2020-01-08 .
  26. ^ «Информация и стандарты качества звука для BBC Radio и BBC Sounds» (PDF) . BBC . BBC Design & Engineering. 28 марта 2022 г. стр. 8. Архивировано из оригинала (PDF) 28 мая 2024 г. . Получено 28 мая 2024 г. .
  27. ^ "LTspice IV" (PDF) . Linear Technologies Corporation. 2009. стр. 95. Архивировано из оригинала (PDF) 2012-02-27 . Получено 2015-09-04 .

Внешние ссылки