РИФ ВОЛНА
Формат аудиофайла формы волны (WAVE) | |
---|---|
Расширение файла : |
.wav
|
Тип MIME : | аудио / vnd.wave audio / wav audio / wave audio / x-wav |
Разработано: | Microsoft и IBM |
Тип: | Аудио файл |
Расширено: | РИФ |
Формат файла WAVE - это контейнерный формат для цифрового хранения аудиоданных , основанный на формате файла обмена ресурсами (RIFF), определенном Microsoft для Windows . Перед аудиоданных, файл WAVE содержит по крайней мере , информация о его формате.
Обычно он содержит так называемые необработанные данные PCM , то есть дискретное время и дискретное по значению представление хода сигнала во времени. В этом случае качество записанного звука зависит от двух значений: частоты дискретизации (количества отсчетов в единицу времени) и разрешения (битовой глубины); в случае сжатых данных также из метода, например Б. ADPCM или MP3 .
В отличие от аналогичного формата AIFF , теги ID3 не могут быть сохранены в WAV .
Файловая структура
Формат RIFF состоит из нескольких разделов (английских фрагментов ), которые структурированы как IFF , за исключением порядка байтов : сначала младший байт (LSB), то есть в порядке следования байтов от младшего к старшему . Спецификация WAVE определяет три раздела как обязательные: Раздел RIFF идентифицирует файл как файл .wav и содержит другие разделы как контейнер. Раздел FORMAT содержит такие параметры, как Б. частота дискретизации. Раздел DATA содержит форму сигнала.
В ходе нескоординированной разработки появилось неуправляемое количество дополнительных типов разделов с частично избыточным содержанием. Примером может служить раздел «Ярлык» и раздел «Примечание», у которых обе записи точки разметки в разделе «Метка» имеют метку. «Метка» обозначает заголовок ключевой точки, «примечание» - комментарий. Они хранятся в виде подразделов (английских подразделов ) в разделе списка связанных данных более высокого уровня. Существует также большое количество сжатых форматов, для которых обязательным является раздел «Факты» с распакованным размером, но которые в остальном определяют широкий спектр параметров, что еще больше затрудняет полную поддержку формата WAV для разработчиков.
Раздел RIFF (также раздел "RIFF WAVE")
Он содержит другие разделы как контейнер, его заголовок состоит только из
-
chunkID
(char[4]
, "РИФ") -
ChunkSize
(uint32_t
, = Длина файла в байтах - 8) -
riffType
(char[4]
, "ВОЛНА")
Раздел «Формат»
Он начинается с идентификатора «fmt» и должен содержаться в файле ровно один раз, а именно как первый подраздел, на который, однако, нельзя полагаться больше, чем на тот факт, что фрагмент данных является последним. По своему ChunkSize
содержанию, состоит из общего набора параметров и последующей части, относящейся к формату. Общая часть:
-
wFormatTag
(uint16_t
, Идентификация используемого формата, например, 0x0001 означает PCM, канонический несжатый формат) -
wChannels
(uint16_t
) -
dwSamplesPerSec
(uint32_t
, Частота дискретизации в Гц, например, 0x0000AC44 означает 44100) -
dwAvgBytesPerSec
(uint32_t
, необходимая полоса пропускания) -
wBlockAlign
(uint16_t
, Размер кадров в байтах)
Для данных PCM в разделе формата есть только одно поле:
-
wBitsPerSample
(uint16_t
, Разрешение квантования, одинаковое для всех каналов)
Если сжатие не используется, dwAvgBytesPerSec
произведение частоты дискретизации и размера кадра равно. Размер кадра определяется спецификацией, согласно которой все значения в разделе данных должны быть закодированы как целое число с достаточным размером в байтах (любые необходимые биты-заполнители находятся на нижнем конце со значением 0, заполнение нулями ). Следующее относится к формату PCM.
-
wBlockAlign = wChannels * ((wBitsPerSample + 7) / 8)
(Целочисленное деление без остатка),
поэтому размер кадра для 12-битного стерео составляет не три, а четыре байта. При использовании двух каналов (стерео) сначала сохраняется левый, а затем правый канал.
Раздел «Данные»
Имеет идентификатор «данные». Он не chunkSize
включает (как и все разделы) ни 8 байтов размера кода, ни даже, возможно, в конце предписанного выравнивания, связанного с нулевым байтом границ слова. Его содержимое представляет собой серию фреймов.
Этот формат, сохраненный без заголовка, обычно имеет окончание .raw и требует знания частоты дискретизации, битовой глубины и порядка байтов для воспроизведения (последний определяется только в RIFF, а не для raw PCM).
Размер раздела «Данные» в формате данных PCM рассчитывается следующим образом: dwSamplesPerSec
кадры с wChannels
выборками из одного или двух байтов появляются в секунду . Для качества компакт-диска (16-битное стерео = 4 байта на выборку (2 байта на канал), 44100 Гц), например. Б. Итак, примерно 10 мегабайт в минуту (60 с x 44 100 Гц x 4 байта).
Пример общечитаемого формата WAVE-PCM
Заголовок RIFF (12 байт):
Компенсировать | Тип | Длина (в байтах) | содержание |
---|---|---|---|
0 (0x00) | символ | 4-й | 'РИФ' |
4 (0x04) | беззнаковый | 4-й | <Размер файла> - 8 |
8 (0x08) | символ | 4-й | 'ВОЛНА' |
Раздел fmt (24 байта) описывает формат отдельных сэмплов:
Компенсировать | длина | содержание | описание |
---|---|---|---|
12 (0x0C) | 4-й | 'fmt' | Подпись заголовка (обратите внимание на следующий пробел) |
16 (0x10) | 4-й | <длина fmt> | Длина оставшегося заголовка fmt (16 байт) |
20 (0x14) | 2 | <тег формата> | Формат данных образцов (см. Отдельную таблицу ниже) |
22 (0x16) | 2 | <каналы> | Количество каналов: 1 = моно, 2 = стерео; между тем возможно более 2 каналов (например, для объемного звука). |
24 (0x18) | 4-й | <частота дискретизации> | Выборок в секунду на канал (например, 44100) |
28 (0x1C) | 4-й | <байт / секунду> | Частота дискретизации · размер кадра |
32 (0x20) | 2 | <выравнивание блока> | Размер кадра = <количество каналов> ((<бит / выборка (канала)> + 7) / 8) (деление без остатка) |
34 (0x22) | 2 | <бит / образец> | Количество битов данных на значение выборки на канал (например, 12) |
Раздел данных содержит образцы:
Компенсировать | длина | содержание | описание |
---|---|---|---|
36 (0x24) | 4-й | 'данные' | Подпись заголовка |
40 (0x28) | 4-й | <длина> | Длина блока данных, не более <Размер файла> - 44 |
44 (0x2C) | <выравнивание блока> | первый образец (ы) | |
<выравнивание блока> | второй образец (ы) | ||
... | ... |
Форматы данных (тег формата)
Я БЫ | описание |
---|---|
0x0001 | PCM |
0x0002 | MS ADPCM |
0x0003 | IEEE FLOAT |
0x0005 | IBM CVSD |
0x0006 | ЗАКОН |
0x0007 | MULAW |
0x0010 | OKI ADPCM |
0x0011 | DVI / IMA ADPCM |
0x0012 | MEDIASPACE ADPCM |
0x0013 | SIERRA ADPCM |
0x0014 | G723 ADPCM |
0x0015 | DIGISTD |
0x0016 | DIGIFIX |
0x0017 | ДИАЛОГИЧЕСКИЙ OKI ADPCM |
0x0020 | YAMAHA ADPCM |
0x0021 | SONARC |
0x0022 | DSPGROUP TRUESPEECH |
0x0023 | ECHOSC1 |
0x0024 | АУДИОФИЛЬ AF36 |
0x0025 | APTX |
0x0026 | АУДИОФИЛЬ AF10 |
0x0030 | ДОЛБИ AC2 |
Я БЫ | описание |
---|---|
0x0031 | GSM610 |
0x0033 | ANTEX ADPCME |
0x0034 | КОНТРОЛЬ RES VQLPC |
0x0035 | КОНТРОЛЬ RES VQLPC |
0x0036 | DIGIADPCM |
0x0037 | УПРАВЛЕНИЕ RES CR10 |
0x0038 | NMS VBXADPCM |
0x0039 | CS IMAADPCM (Roland RDAC) |
0x0040 | G721 ADPCM |
0x0050 | MPEG-1 слой I, II |
0x0055 | MPEG-1 Layer III (MP3) |
0x0069 | Xbox ADPCM |
0x0200 | ТВОРЧЕСКИЙ ADPCM |
0x0202 | ТВОРЧЕСКИЙ FASTSPEECH8 |
0x0203 | ТВОРЧЕСКИЙ FASTSPEECH10 |
0x0300 | FM TOWNS SND |
0x1000 | OLIGSM |
0x1001 | OLIADPCM |
0x1002 | OLICELP |
0x1003 | OLISBC |
0x1004 | ОЛИОПР |
Дальнейшее развитие
Из-за 32-битных полей, используемых в формате файла, существует ограничение на размер 4 ГиБ, что соответствует времени воспроизведения около 6,75 часа с двумя каналами по 16 бит каждый и 44100 отсчетами в секунду ( качество CD ). При более высоком разрешении по амплитуде или времени или большему количеству каналов доступное время воспроизведения соответственно уменьшается. Чтобы обойти это ограничение, Sonic Foundry представила расширение формата, которое обходит ограничение на размер файла. С тех пор, как подразделение программного обеспечения для настольных ПК Sonic Foundry было переведено в Sony Pictures Digital , формат получил название Sony Pictures Digital Wave 64 или сокращенно Wave64 ; предоставляется без затрат на лицензию. Предложил расширение имени файла является .w64 . Внутренняя структура намеренно основана на традиционной WAVE, чтобы упростить программную реализацию. Использование 64-битных полей на основе сделанных выше предположений обеспечивает максимальное время воспроизведения более 3 миллионов лет.
литература
- Гюнтер Борн: Справочное руководство по форматам файлов. 1990, Эддисон-Уэсли Лонгман, в различных исправленных изданиях
- Гюнтер Борн: Справочник по форматам файлов. ИТП Бостон 1995.
веб ссылки
- Аудиоформат WAV ( памятная записка от 7 декабря 2010 г. в Интернет-архиве ) (Подробное описание как часть резюме семинара к мультимедийной лекции в Университете Эсслингена .)
- «Формат звука * .wav». Заголовок, поле данных и пример файла PCM WAV для Windows. ( Памятка от 4 января 2016 г. в Интернет-архиве ) (Кратко и ясно. Из диссертации Томаса Беккера и Дирка Манти из Университета прикладных наук Гиссена-Фридберга )
- Формат файла WAVE (английский, подробнее)
- Формат аудиофайлов WAVE - Технические характеристики (английский)
- Версия 1.0 спецификации (англ.)
- Тимоти Джон Вебер: формат файла WAVE. Ответы на общие вопросы. (Английский)
Индивидуальные доказательства
- ↑ Спецификация Resource Interchange File Format Services от Microsoft на msdn.microsoft.com (на английском языке)
- ↑ Томас Хёсс и Тобиас Рик: WAV-Audio-Format, fmt-chunk ( Memento от 27 июня 2007 г. в Интернет-архиве ) на it.fht-esslingen.de
- ↑ VCS Engineering: Sony Wave64. (PDF) Информация о Sony Wave64, по состоянию на 2 мая 2012 г.