WAVE или WAV является короткой формой Wave Audio File Format (реже именуемой как Аудио для Windows). Этот формат является стандартом для хранения аудио потока на ПК. Он является сферой приложения формата RIFF для хранения аудио в «цепочках», это очень напоминает форматы 8SVX и AIFF, используемые компьютерами Amiga и Macintosh соответственно. Это также основной формат на системах Windows для хранения обычного несжатого звука. Как правило, для этого применяется кодирование методом линейной импульсно-кодовой модуляции.
Как WAV , так и AIFF совместимы с операционными системами Windows, Macintosh или Linux. Формат также учитывает некоторые отличия процессоров Intel, такие как порядок байтов от младшего к старшему. RIFF формат выполняет роль обертки для различных кодеков аудио сжатия.
Несмотря на то, что WAV файл может содержать сжатое аудио, наиболее обычным его применением является хранение как раз несжатого аудио в формате линейной импульсно-кодовой модуляции (LPCM). Стандартным форматом Audio-CD, например, является аудио в формате LPCM, с 2 каналами, частотой дискретизации 44 100 Гц и 16 бит на сэмпл. Так как формат LPCM хранит несжатое аудио, которое абсолютно идентично оригиналу, это позволяет использовать его профессиональным пользователям и аудио экспертам для получения максимального качества звучания. WAV аудио файл также может быть изменен практически в любом аудио редакторе. WAV формат работает со сжатым звуком в системах семейства Windows через Audio Compression Manager (ACM) . Любой ACM кодек может быть использован для сжатия WAV файла. Пользовательский интерфейс для ACM может быть доступен через множество программ, включая и стандартную программу для записи звука в некоторых версиях Windows.
Начиная с Windows 2000, появился заголовок WAVE_FORMAT_EXTENSIBLE, который позволял хранить многоканальные аудио данные, учитывал расположение динамиков, исключал неоднозначности в плане типов сэмпла и размеров контейнера в стандартном WAV формате. Также он поддерживал произвольные расширения формата чанка.
Также существует много несоответствий в формате WAV : например, 8-битные данные являются беззнаковыми, в то время как 16-битные – знаковыми.
WAV файлы могут содержать встроенные IFF «списки», которые могут содержать несколько «подчанков».
Будучи форматом, производным от Resource Interchange File Format (RIFF), WAV -файлы могут быть иметь метаданные (тэги) в чанке INFO. В дополнение к этом, в WAV файлы может быть встроены метаданные стандарта Extensible Metadata Platform (XMP).
WAV файлы достаточно большие, что делает этот формат неудобным для обмена по сети Интернет, и это сильно подрывает его популярность. Однако, этот формат – как правило, чаще всего используется для сохранения первозданного вида для файлов высокого качества в таких случаях, где размер свободного дискового пространства не является ограничением. Он также используется в программах для редактирования аудио, где экономят время на сжатии и распаковке данных.
Более часто данные сжимаются с помощью форматов с потерями, такими как Ogg Vorbis , MP3 , ATRAC , AAC , Musepack и WMA , которые используются для хранения и обмена музыки (например, среди пользователей Интернета). Небольшой размер файла и возможность быстро скачивать их также является существенным плюсом наряду с тем, что такие аудио данные занимают намного меньше места. Но форматы с потерями жертвуют качеством ради размера, поэтому их алгоритмы не сохраняют первозданное качество звука во всех деталях. Но существуют и кодеки без потерь, такие как FLAC , Shorten, Monkey’s Audio , ATRAC Advanced Lossless , Apple Lossless , WMA Lossless , TTA, WavPack , но ни один из этих кодеков нельзя назвать общепринятым.
Использование формата WAV является общепринятым, благодаря его простоте и простой структуре, которая в большой степени основана на формате файлов RIFF. Благодаря этому, формат WAV не испытывает притеснения среди различного программного обеспечения или аппаратных плееров, он поддерживает практически везде.
Назло огромному размеру данных несжатого WAV , этот формат иногда используется для радиовещания, особенно для адаптированных безкассетных систем. Радио BBC (BBC Radio) в Соединенном Королевстве использует 44.1 кГц, 16 бит, стерео аудио данные как стандарт в их системе VCS. Система ABC “D-Cart”, которая разработана Австралийским радиовещателем, использует 48 кГц, 16 бит, стерео аудио данные, что идентично цифровым аудио кассетам (DAT).
Недавно я получил следующее письмо:
Привет, сайт, MP3 является самым популярным аудиоформатом, но есть так много других, таких как AAC, FLAC, OGG и WMA, что я не совсем уверен, какой из них я должен использовать. В чем разница между ними, и какой из них мне следует использовать, чтобы хранить мою музыку?
Вопрос достаточно популярный, попробую ответить на него просто, но понятно.
Мы уже говорили о различии между lossless и lossy, но если кратко, есть два типа качества звука:
Lossless формат сохраняет полное качество звука, в большинстве случаев, это уровень CD, в то время как формат с потерями сжимает файлы для экономии места (конечно, качество звука ухудшается).
Если вы просто хотите послушать музыку здесь и сейчас, скорее всего, вы будете использовать формат с потерями. Они экономят массу памяти, оставляя вам больше места для песен на вашем портативном плеере, и, если будет достаточно высоким, они будут неотличимы от исходного источника. Вот форматы, с которыми вы, вероятно, столкнетесь:
Теперь, когда вы понимаете разницу между каждым форматом, что вы должны использовать для копирования или загрузки музыки? В общем, мы рекомендуем использовать MP3 или AAC. Они совместимы почти с каждым проигрывателем, и оба они неотличимы от исходного, если . Если у вас нет особых потребностей, которые предполагают иное, MP3 и AAC — это лучший выбор.
Однако есть кое-что, что можно сказать о том, чтобы хранить свою музыку в формате без потерь, таком как FLAC. В то время как вы, вероятно, не заметите более высокого качества, lossless отлично подходит для хранения музыки, если вы планируете впоследствии ее преобразовывать в другие форматы , поскольку преобразование формата с потерями в другой формат с потерями (например, AAC в MP3) приведет к появлению файлов заметно более низкое качество. Поэтому для архивных целей мы рекомендуем FLAC . Однако вы можете использовать любой формат без потерь, так как вы можете конвертировать между форматами без потерь, не изменяя качество файла.
Объявление
Файлы WAV (WAVE) были созданы компанией IBM и Microsoft. Они содержат различные аудиоданные - звуки, звуковые эффекты, музыку, а также записи голоса. Программы проигрывания медиафайлов (Windows Media Player, QuickTime и т.п.) могут воспроизводить и открывать такие файлы. Файлы WAV значительно больше файлов MP3, и именно поэтому они не пользуются популярностью. Отличительная черта файлов WAV - их технология сжатия звука без потерь. Полученные файлы отличаются высоким качеством и большими размерами, что значительно вредит их популярности. Отправка и загрузка таких файлов требует много времени и дискового пространства.
Файлы WAV используют формат файлов для обмена ресурсами, с помощью которого происходит сохранение данных. Данные хранятся в кластерах, которые содержат тег из 4 символов, а также кол-во байт в кластере. Аналог данного формата для ОС Mac - файлы AIFF. Файлы WAV могут иметь семплы от 8 до 16 бит при частотах от 11 025 до 44 100 Гц. Максимальное качество файлов WAV - 16 бит, 44 100 Гц, и именно такой частотой дискретизации обладают дорожки на компакт-дисках, на которых секунда звука "весит" 88 кБ. При кодировании цифрового потока обычно используется формат линейной-импульсно-кодовой модуляции. Системные звуки в ОС Windows при запуске ОС, нажатии на ярлыки, при выдаче ошибок, выключении компьютера и т.п. представляют собой несжатые файлы WAV.
Расширение файла | .wav | ||||||||||||||||||||||||||||||||||||||||
Категория файлов | |||||||||||||||||||||||||||||||||||||||||
Файл-пример |
(6,1 MiB) (1,5 MiB) |
||||||||||||||||||||||||||||||||||||||||
Связанные программы | CyberLink PowerDirector Microsoft Windows Media Player Roxio Creator 2009 |
||||||||||||||||||||||||||||||||||||||||
Рис. 1. Фрагмент "RIFF"
Первое двойное слово заголовка содержит четырехбуквенный код FOURCC, который идентифицирует данные, хранящиеся во фрагменте. Второе двойное слово заголовка - размер области данных в байтах (без учета размера самого заголовка).
Область данных имеет переменную длину, однако она должна быть выравнена на границу слова и при необходимости дополнена в конце нулевым байтом до целого числа слов.
Заметим, что формат RIFF не описывает формат данных. Практически файл в формате RIFF может содержать любые данные для мультимедиа, причем формат данных зависит от типа данных.
Область, обозначенная на рис. 1 как "Данные", может содержать внутри себя другие фрагменты. Для файла, в котором хранятся звуковые данные (wav-файл), эта область содержит идентификатор данных "WAVE", фрагмент формата звуковых данных "fmt " (три символа "fmt" и пробел на конце), а также фрагмент звуковых данных (рис. 2). Файл может дополнительно содержать фрагменты других типов, поэтому не следует думать, что заголовок wav-файла имеет фиксированный формат. Например, в файле может присутствовать фрагмент "LIST" или "INFO", содержащий информацию о правах копирования и другую дополнительную информацию. Мы не будем рассматривать форматы других фрагментов, при необходимости вы можете узнать их из документации, которая поставляется в составе Microsoft SDK for Windows.
DWORD |
DWORD |
|||||||
"RIFF" |
Размер |
Данные | ||||||
"WAVE" | "fmt " | Размер | Формат данных | Фрагмент "data" | ||||
"data" | Размер | Звуковые данные |
Рис. 2. Формат wav-файла
Область, обозначенная на рис. 2 как "Формат данных", описывает звуковые данные. Формат этой области для файлов РСМ (записанных с использованием импульсно-кодовой модуляции) соответствует структуре PCMWAVEFORMAT, определенной в файле mmsystem.h следующим образом:
Typedef struct pcinwaveformat_tag {
WAVEFORMAT wf;
WORD vBitsPerSample;
} PCMWAVEFORMAT;
Typedef PCMWAVEFORMAT *PPCMWAVEFORMAT;
Структура WAVEFORMAT также описана в файле mmsystem.h:
Typedef struct waveformat_tag {
WORD wFormatTag; // тип формата
WORD nChannels; // количество каналов (моно или стeрео)
DWORD nSamplesPerSec; // частота дискретизации
DWORD nAvgBytesPerSec; // скорость потока данных
WORD nBlockAlign; // выравнивание блока данных
} WAVEFORMAT;
Typedef WAVEFORMAT *PWAVEFORMAT;
Поле wFormatTag описывает тип формата звуковых данных. Для импульсно-кодовой модуляции РСМ, которая поддерживается стандартной библиотекой mmsystem.dll, в этом поле должно находиться значение WAVE_FORMAT_PCM, определенное в файле mmsystem.h:
#define WAVE_FORMAT_PCM 1
Поле nChannels содержит количество каналов. В нем могут находиться значение 1 (моно) или 2 (стерео).
В поле nSamplesPerSec записана частота дискретизации, то есть количество выборок сигнала в секунду. В этом поле могут находиться стандартные значения (11025 кГц, 22 050 кГц или 44100 кГц) либо нестандартные значения, такие, как 5000 кГц или 4400 кГц. Учтите, что не все драйверы звуковых адаптеров могут
работать с нестандартными частотами дискретизации.
Поле nAvgBytesPerSec содержит среднюю скорость потока данных, то есть количество байт в секунду, передаваемых драйверу устройства или получаемых от него. Эта информация может быть использована приложением для оценки размера буфера, необходимого для размещения звуковых данных. Для монофонического сигнала с дискретностью 8 бит численное значение скорости совпадает со значением частоты дискретизации. Для стереофонического сигнала с дискретностью 8 бит она в два раза выше. Точное значение вы можете подсчитать по формуле
NAvgBytesPerSec = (nChannels * nSamplesPerSec * wBitsPerSanipIe) / 8
В поле nBlockAlign находится выравнивание блока в байтах, которое подсчитывается по формуле
NBlockAlign = (nChannels * wBitsPerSample) / 8
Поле wBitsPerSainple находится в структуре PCMWAVEFORMAT и содержит дискретность сигнала, то есть количество бит, используемых для представления одной выборки сигнала. Обычно используются значение 8 или 16.
Что же касается формата самих звуковых данных, то он зависит от количества каналов и от дискретности.
Для монофонического сигнала с дискретностью 8 бит звуковые данные пред ставляют собой массив однобайтовых значений, каждое из которых является выбор-кой сигнала.
Для стереофонического сигнала с дискретностью 8 бит звуковые данных имеют формат массива двухбайтовых слов, причем младший байт слова соответствует левому каналу, а старший - правому.
Формат звуковых данных с дискретностью 16 бит выглядит аналогично. Для монофонического сигнала данные хранятся в массиве 16-битовых слов. Для стерео-фонического используется массив двойных слов, причем младшему слову соот-ветствует левый канал, а старшему - правый.
Диапазон изменения значений выборок сигнала определяется дискретизацией. Для 8-битовых данных он составляет от 0 до 255 (Охff), причем отсутствию сигнала (полной тишине) соответствует значение 128 (0х80). Для 16-битовых данных диапа-зон изменения составляет от -32768 (-0х8000) до 32767, (Ox7fff), отсутствию сигнала соответствует значение 0.