Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БЕКИН_Д_ЖЕНАТОВ.doc
Скачиваний:
35
Добавлен:
24.08.2019
Размер:
4.5 Mб
Скачать

11.3. Формат Microsoft riff

RIFF (Resource Interchange File Format) - это формат файла, позволяющий сохранять произвольные данные в структурированном виде. Файлы RIFF могут содержать блоки с различными типами данных. Они весьма похожи на те блоки, которые используются в первоначально разработанном для систем Amiga формате IFF Electronic Arts. Файл RIFF составлен из блоков (chunk), некоторые из них могут, в свою очередь, содержать другие вложенные блоки. Каждый блок имеет четырехсимвольный идентификатор и длину. Файл RIFF целиком представляет собой фактически одиночный блок. Блок RIFF служит для объединения и группировки других блоков. Как показано на рисунке 4, первые четыре байта данных в блоке RIFF - идентификатор формы (form identifier). В данном параграфе речь пойдет о форме WAVE, которая хранит информацию об оцифрованном звуке. Форма WAVE может состоять из нескольких блоков, хотя обычно имеется только один блок формата и один блок данных. Фактически большинство программ, работающих с файлами WAVE, предполагают, что файлы имеют жестко структурированный формат, который показан в таблице 1. Хотя такое предположение на практике допустимо, подобные программы не смогут работать с файлами WAVE, содержащими необязательные блоки комментария или другие данные. С другой стороны, хорошо написанные программы для работы с файлами WAVE будут просто пропускать те блоки, которые они не понимают. Блок fmt, содержит основную информацию об оцифрованном звуке. Большей частью эти поля тривиальны. Почти все файлы WAVE в Интернете имеют формат PCM.

11.4. WAV-формат

Более гибким является WAV-формат для Windows (файлы с расширением «.wav»). WAV-файл состоит из трех блоков – двух заголовочных и одного блока звуковых данных. Первый блок имеет идентификатор "RIFF", за которым в 4-х байтах следует размер файла (без учета первых 8 байтов). В следующих 4-х байтах стоит идентификатор "WAVE", указывающий тип RIFF-файла.

Следующий заголовочный блок содержит байтов в следующем порядке:

4 байта – идентификатор «fmt_» 4 байта – число 16 (размер данных блока) 2 байта – информация о кодеке (1 для PCM) 2 байта – число каналов (1 – моно, 2 – стерео) 4 байта – частота дискретизации (при 44100 Гц – AC44H) 4 байта – число байтов в секунду, равное W, если B кратно 8 2 байта – число байтов на один отсчет, равное BC/8, если B кратно 8 2 байта – число битов на выборку B (если B не кратно 8, то выборки дополняются нулями до целого числа байтов).

Последний блок – данные отсчетов – начинается идентификатором "data", за которым расположены 4 байта – размер блока, а затем сами данные. В случае стереоотсчета данные для обоих каналов следуют друг за другом: сначала выборка для левого канала, затем выборка для правого, и т.д.

11.5. MPEG Audio

Кодирование начинается с того, что поток аудиоданных разбивается на фреймы – участки, каждый из которых кодируется независимо от других (Здесь можно провести некоторую па­раллель с графическим алгоритмом JPEG, который делит исходную кар­тинку на квадраты 8*8 пикселей). Каж­дый фрейм может иметь свои парамет­ры кодирования Далее сигнал в каж­дом фрейме делится на несколько ча­стотных диапазонов, для каждого диа­пазона определяется мощность сигна­ла, если мощность сигнала для данно­го частотного диапазона настолько мала, что не может быть услышана человеком, то информация об этом частотном диапазоне не включается в выходной файл Далее учитывается так называемый маскирующий эффект – слабый сигнал, находящийся в одном частотном диапазоне, может быть не слышен на фоне сильного сигнала, находящегося в соседнем частотном диапазоне Величины маскирующего эффекта для разных комбинаций частот установлены экспериментально и лежат в основе психоакустической модели человеческого слуха, используемой алгоритмом МРЗ-кодирования Если сигнал в каком-либо частотном диапазоне полностью маскируется соседними частотными составляющими, то он также отбрасы­вается алгоритмом. Далее сигналы, соответствующие различным частотным диапазонам, подвергаются ресэмплингу – пересчету со снижением количества бит на отсчет. Снижение количества бит на отсчет эквивалентно добавлению в сигнал шума (потеря одного бита соответствует уменьшению отношения сигнал/шум на 6 дБ) Если мощность шума ниже величины маскирующею эффекта для дан­ного частотного диапазона, то такое снижение "битности" сигнала считается допустимым. Дальнейшая обработка оставшейся информации зависит от параметров кодирования в первую очередь от так называемого битрейта величины выходного информационного потока. Фактически при битрейте 256 kbs уже невозможно отличить "сжатый" звук от CD-оригинала, те такой поток несет в себе полную психоакустическую ин­формацию об исходном сигнале. При меньших битрентах алгоритм кодиро­вания начинает выкидывать из пото­ка данных полезную информацию.

Существует одно важное отличие стандарта МРЗ от других мето­дов сжатия информации – этот стандарт определяет, какая информация должна содержаться в выходном файле, но не регламентирует конкретного алгоритма сжатия. В силу этого обстоятельства существует множество алгоритмов МРЗ-сжатия, реализованных в разных кодерах, каждый из которых имеет свои преимущества и недостатки Одни кодеры обеспечивают относительно более высокое качество звука при низких битрейтах, другие имеют преимущества на высоких, третьи обеспечивают более "плоскую" АЧХ. Собственно, процесс воспроизведения МРЗ правильнее называть не декодированием, а синтезом – разные декодеры воспроизведут один и тот же МРЗ - файл немного по-разному.