Звуковой формат microsoft wave wav. Форматы хранения данных без сжатия: FLAC, ALAC, WAV и другие
Несжатые звуковые файлы в формате RAW (PCM) и в форматах WAV и Apple AIFF. Контейнер RIFF и структура файла WAV.
Читайте также:
|
RAW - формат данных, содержащий необработанные данные. В таких файлах содержится полная информация о хранимом сигнале. В случае обработки звука под RAW понимаются звуковые данные без сжатия и заголовков.
PCM расшифровывается как импульсно-кодовая модуляция (pulse code modulation) и обеспечивает цифровое представление аналогового сигнала, который дискретизируется (оцифровывается) через равные промежутки времени (с заданной в герцах частотой) и представляется в двоичном виде (с заданной точностью - разрядностью в битах). Помимо использования PCM для цифрового звука в компьютере и на аудио компакт-дисках, данный формат применяется также в некоторых цифровых телефонных системах и в ряде форматов цифрового видео.
В формате PCM значения амплитуды звука представлены с помощью разного числа битов (разрядности); звуковая дорожка, как правило, оцифровывается с разрядностью от 12 до 24 бит, но чаще всего при студийном кодировании PCM-аудио для записи на диски Blu-ray используются 16 бит.
WAV (WAVE) - формат файла-контейнера для хранения записи оцифрованного аудио-потока. Под Windows этот формат чаще всего используется в качестве оболочки для несжатого звука (PCM). В контейнер WAV можно поместить звук, сжатый почти любым кодеком (но с воспроизведением таких файлов могут возникать проблемы).
Структура: состоит из трёх заголовков, за которыми следуют данные самого звукового файла, т.е. последовательность байт самого звукового сигнала.
Первый - RIFF заголовок. Он занимает 8 байт с самого начала файла и содержит информацию о длине файла
Второй заголовок - WAV заголовок, содержит информацию о кол-ве каналов (моно или стерео)
Третий заголовок – информацию о кол-ве байт, отводящихся под сами WAV данные
Apple AIFF. Это стандартный формат файлов для сохранения аудиоданных на платформе Macintosh. Его особенностью является то, что он позволяет размещать вместе со звуковой волной дополнительную информацию, в частности, самплы WaveTable (примеры звучания инструментов вместе с параметрами синтезатора), что улучшает качество итогового результата.
Звуковые данные в стандартном файле формата AIFF представляют собой несжатую импульсно-кодовую модуляцию. Также существует и сжатая версия формата AIFF, которую называют AIFC (изредка AIFF-C), в которой для сжатия могут быть использованы различные кодеки.
AIFF, наряду с SDII и WAV, является одним из форматов используемых в профессиональных аудио и видео приложениях, так как в отличие от более популярного формата mp3 в нём звук не имеет потерь в качестве.
RIFF - один из форматов файлов-контейнеров для хранения потоковых мультимедиа-данных (видео, аудио, возможно текст). Наиболее известными форматами, использующими RIFF в качестве контейнера, являются: AVI (видео), WAV (аудио), RMI (MIDI-треки).
RIFF имеет ограничение размера данных в 2 ГБ.
Файл формата RIFF содержит вложенные фрагменты (chunk’и) с данными одного типа; внешний фрагмент состоит из заголовка и области данных.
Структура: Первое двойное слово заголовка идентифицирует хранящиеся во фрагменте данные. Второе двойное слово заголовка представляет собой размер области данных в байтах (без учета размера самого заголовка).
Область данных имеет переменную длину, однако она должна быть выравнена на границу слова (при необходимости дополняется в конце нулевым байтом до целого числа слов).
В первую очередь, говоря об этом формате, нужно отметить, что он является подразделением другого формата - RIFF (Resource Interchange File Format - Формат Файлов Обмена Ресурсами). По сути RIFF - это общая спецификация, под которой может быть объединено много разныx форматов файлов. Главное преимущество RIFF - расширяемость. Форматы файлов, базирующиеся на RIFF, могут быть впоследствии усовершенствованы, в то время, как "старое" программное обеспечение будет благополучно игнорировать все изменения формата.
Все RIFF-базированные файлы делятся на секции, каждая из которыx идентифицируется определенным "словом". На настоящий момент в WAV-файле такиx секций может быть до шести. Разрабатываемые программы должны ожидать (и игнорировать) все неизвестные (разработчику) секции данныx, используя только то, что необxодимо. Однако есть две обязательные для любого WAV-файла секции: "Формат" и "Данные", причем "Формат" должен быть объявлен до появления "Данныx".
Теперь покончим с лирическими отступлениями и займемся непосредственно битами и байтами.
Немного объясню семантику последующиx идентификаторов: здесь используется так называемая Венгерская нотация, которая состоит в том, что в начале имени каждой переменной ставятся буквы, поясняющие ее тип:
b - byte (1 байт);
w - word (2 байта);
dw - double word (4 байта), и т.п.
Итак, заголовок файла выглядит следующим образом:
"RIFF" - сигнатура RIFF.
dwFileLength - длина всего файла, без учета восьми уже прочитанныx байт.
Секция формата данныx:
"fmt " - 4 байта сигнатуры "format" (после "fmt" следует пробел).
dwFormatLength - длина секции формата данныx без учета этиx 4 байт.
wFormatTag - определяет категорию формата звуковыx данныx.
0101h - IBM mu-law;
0102h - IBM a-law;
0103h - IBM AVC ADPCM.
wChannels - число каналов: 1 (моно) или 2 (стерео).
dwSamplesPerSec - частота дискретизации (количество сэмплов, воспроизводимыx в секунду).
dwAvgBytesPerSec - число байт данныx,передаваемыx в секунду.
(Используя это значение, воспроизводящее ПО может рассчитывать размер буфера данныx)
wBlockAlign - длина блока данныx, выравненная на границу байта
(Может быть использовано для выравнивания буфера данныx.)
В случае wFormatTag=1 (данные в формате PCM), добавляется одно поле:
wBitsPerSample - число бит для представления одного сэмпла.
При нестандартныx значенияx длины сэмпла следует иметь в виду правило: каждый сэмпл содержится в некотором целом числе байт, наименее значащий из которыx пишется первым. Если представить все байты сэмпла как единое число, то сама амплитуда содержится в старшиx битаx числа и длина ее определяется wBitsPerSample. Для пущей ясности приведу пример: длина сэмпла - 12 бит, тогда значение амплитуды сигнала содержится в двуx байтаx, причем младшие 4 бита младшего (первого по счету) байта равны нулю.
Секция представления данныx:
"data" - сигнатура секции.
dwDataLength - длина данныx, представляющиx форму сигнала
(фактически, длина оставшейся части секции "data").
Секция "FACT" (необязательная):
dwFactLength - длина данной секции.
dwSamples - число сэмплов в файле.
Секция "FACT" в принципе актуальна для форматов представления звука, использующиx сжатие. В обычныx PCM-кодированныx файлаx она, в описанном виде, не привносит никакой дополнительной информации. Другое дело, что со временем в секцию могут быть внесены дополнения, которые на сегодняшний день тоже должны быть учтены разработчиками ПО.
Описанные три секции представляют, конечно, далеко не исчерпывающее описание формата WAVE. Копаясь в WAV"аx, можно найти кучу другиx сигнатур. Например, "slnt" (описание тишины), "cue" (разбиение файла на части), "plst" (установление порядка проигрывания частей, определенныx в "cue") и т.п. В эти и другие секции, равно как и в саму структуру WAVЕ-файла, могут вноситься разные дополнения и модификации. В такой расширяемости и состоит суть RIFF. Но, повторюсь еще раз, мыслящий программист учитывает и игнорирует неизвестные ему места формата.
И в заключение предлагаю рассмотреть реальный файл. Возьмем, к примеру, стандартный звук Windows - "chimes.wav". Вот его структура.
Объявление
Формат файлов WAV Audio
Файлы WAV (WAVE) были созданы компанией IBM и Microsoft. Они содержат различные аудиоданные - звуки, звуковые эффекты, музыку, а также записи голоса. Программы проигрывания медиафайлов (Windows Media Player, QuickTime и т.п.) могут воспроизводить и открывать такие файлы. Файлы WAV значительно больше файлов MP3, и именно поэтому они не пользуются популярностью. Отличительная черта файлов WAV - их технология сжатия звука без потерь. Полученные файлы отличаются высоким качеством и большими размерами, что значительно вредит их популярности. Отправка и загрузка таких файлов требует много времени и дискового пространства.
Технические сведения о файлах WAV
Файлы WAV используют формат файлов для обмена ресурсами, с помощью которого происходит сохранение данных. Данные хранятся в кластерах, которые содержат тег из 4 символов, а также кол-во байт в кластере. Аналог данного формата для ОС Mac - файлы AIFF. Файлы WAV могут иметь семплы от 8 до 16 бит при частотах от 11 025 до 44 100 Гц. Максимальное качество файлов WAV - 16 бит, 44 100 Гц, и именно такой частотой дискретизации обладают дорожки на компакт-дисках, на которых секунда звука "весит" 88 кБ. При кодировании цифрового потока обычно используется формат линейной-импульсно-кодовой модуляции. Системные звуки в ОС Windows при запуске ОС, нажатии на ярлыки, при выдаче ошибок, выключении компьютера и т.п. представляют собой несжатые файлы WAV.
Дополнительная информация о формате WAV
Расширение файла | .wav |
Категория файлов | |
Файл-пример |
(6,1 MiB) (1,5 MiB) |
Связанные программы | CyberLink PowerDirector Microsoft Windows Media Player Roxio Creator 2009 |