РИФ ВОЛНА

Формат аудиофайла формы волны (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 .

Файловая структура

Файловая структура 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.

веб ссылки

Индивидуальные доказательства

  1. Спецификация Resource Interchange File Format Services от Microsoft на msdn.microsoft.com (на английском языке)
  2. Томас Хёсс и Тобиас Рик: WAV-Audio-Format, fmt-chunk ( Memento от 27 июня 2007 г. в Интернет-архиве ) на it.fht-esslingen.de
  3. VCS Engineering: Sony Wave64. (PDF) Информация о Sony Wave64, по состоянию на 2 мая 2012 г.