Объявление

Свернуть
Пока нет объявлений.

Формат WAV-файлов

Свернуть
X
Свернуть
  •  

  • Формат WAV-файлов

    Данные, имеющие отношение к мультимедиа (звук, видео и т. п.) хранятся в файлах в так называемом RIFF-формате (Resource Interchange File Format - формат файла для обмена ресурсами). Как wav-файлы, содержащие звук, так и avi-файлы, содержащие видеоинформацию, имеют формат RIFF.
    Файл в формате RIFF содержит вложенные фрагменты (chunk's). Внешний фрагмент состоит из заголовка и области данных (рис. 1).
    DWORD
    DWORD
    "RIFF"
    Размер
    Данные
    Рис. 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.

      Возможность размещать комментарии к сообщениям отключена.

    Метки статей

    Свернуть

    Меток пока нет.

    Новые статьи

    Свернуть

    • Почему IrDA не годится для приема команд ИК дистанционного управления?
      от admin
      Ну вообще-то можно конечно использовать IrDA для приема команд с обычных ИК пультов, но с очень большими ограничениями. Работает далеко не со всеми пультами. Стабильность распознавания команд очень низкая. Если использовать IrDA встроенный в материнскую плату, то нужно колдовать...
      17.06.2017, 23:04
    • Микросхемы фирмы Holtek для систем дистанционного управления
      от admin
      Журнал «Электронные компоненты» №2 2002 г.
      Александр Зайцев
      Многие бытовые приборы, системы ограничения доступа, промышленное оборудование и другие устройства имеют в своем составе пульт дистанционного управления, что существенно дополняет сервисные функции выпускаемого изделия. Фирма Holtek разработала...
      17.06.2017, 23:03
    • Необычный режим работы полевого транзистора
      от admin
      Традиционная схемотехника линейных усилителей на полевых транзисторах с затвором в виде р-п-перехода (в дальнейшем для краткости называемом р-п-затвором) предусматривает в основном режим, когда рабочая точка находится в области обратного (закрывающего) смещения, т. е. при...
      17.06.2017, 23:00
    • Мощный транзистор в лавинном режиме
      от admin
      Применение транзисторов в лавинном режиме позволяет упростить некоторые схемы, получить большие выходные напряжения, высокое быстродействие, не достигаемые при работе транзисторов в обычных режимах. Есть. однако, целый ряд причин, затрудняющих широкое использование лавинного...
      17.06.2017, 23:00
    • О пьезокерамике и перспективах ее применения
      от admin
      Сергей Жуков
      Явление пьезоэлектрического эффекта

      Пьезоэлектрический эффект был открыт в 1880 году Джексом и Пьером Кюри. Они заметили, что в некоторых кристаллах при механическом воздействии на них появляется электрическая поляризация, причем степень ее пропорциональна величине воздействия....
      02.06.2017, 17:20
    • Штрихкодирование
      от admin
      Штриховой Код EAN13 является непрерывным, имеет фиксированную длину и высокую плотность записи позволяет отобразить 13 цифр от 0 до 9.
      Рис.1. Пример штрихового кода EAN

      alt="" />
      Кодовое обозначение может выражаться восемью (EAN8) или тринадцатью (EAN13) цифрами, причем во втором случае реально кодируется только двеннадцать цифр. Знаки штрихового...
      02.06.2017, 17:16
    Обработка...
    X