Три способа кодирования звука
Три способа кодирования звука
Звук может быть закодирован в цифровой формат с использованием трех принципиально различных методов. (Они различаются так же, как покадровая и трансформационная анимация.) Давайте все о них разузнаем.
Прямая оцифровка
Первый метод, применяемый при кодировании звука, — самый простой и очевидный. Источник звука подключается к линейному входу звуковой карты компьютера, после чего звук переписывается на компьютер и сохраняется в файле. Этот метод называется прямой оцифровкой звука.
Для кодирования звука методом прямой оцифровки используется способ, называемый PCM (Pulse Coded Modulation — импульсно-кодовая модуляция). Суть его в том, что звуковая карта с частотой много тысяч раз в секунду замеряет уровень звукового сигнала и записывает получившиеся значения в массив данных. Этот массив данных и представляет собой оцифрованный звук.
Преимущество у способа РСМ одно — звук копируется очень точно, со всеми нюансами. Именно поэтому прямая оцифровка — самый популярный путь к тому, чтобы дать звуку новую, цифровую, жизнь. Все цифровые звуковые данные — компакт-диски, файлы MP3 — записаны именно таким образом.
Недостаток у прямой оцифровки, пожалуй, тоже один — очень большой объем результирующего массива данных. (В самом деле, сколько значений получится, если замерять уровень сигнала, скажем, 44 100 раз в секунду!) Поэтому, чтобы уменьшить его, практически всегда применяется сжатие звука — как правило, с потерями. Для этого используются специальные алгоритмы (и кодеки), "заточенные" под звук.
Алгоритмов сжатия звука в мире существует, по крайней мере, не меньше, чем кодеков, предназначенных для сжатия видео. Давайте рассмотрим самые распространенные из них.
? ADPCM. Был разработан фирмой Microsoft для сжатия звуковых файлов WAV еще в начале 90-х годов прошлого века. Обеспечивает не очень сильное сжатие, зато без потерь. Сейчас применяется только для сжатия очень коротких звуковых клипов, в основном — системных "сигналов" операционной системы Windows.
? MPEG I level 3 (MP3). Был разработан университетом Фраунгофера в Германии в середине 90-х годов для сжатия звуковых файлов. Является версией известного алгоритма сжатия видео MPEG I (см. главу 1), специально предназначенной для сжатия звука. В настоящее время — самый популярный формат сжатия звука.
? RealMedia. Был разработан фирмой RealNetwork в середине 90-х годов для распространения видео и музыки через Интернет. Собственно, мы уже рассматривали его в главе 1. В настоящее время — один из популярнейших алгоритмов сжатия звука.
? OGG Vorbis. Был разработан сообществом независимых программистов в конце 90-х годов как замена MPEG I level 3. В настоящее время потихоньку завоевывает популярность. Программное обеспечение для сжатия звука поставляется бесплатно с открытыми исходными текстами.
? WMA (Windows Media — Audio). Еще один конкурент MPEG I level 3. Был разработан фирмой Microsoft в конце 90-х годов. В настоящее время постепенно завоевывает популярность.
Многие из перечисленных выше форматов поддерживаются Flash.
Командное кодирование
Второй метод кодирования звука основан на том принципе организации данных, при котором в файлах хранятся не оцифрованные значения уровня звукового сигнала, а особые команды, указывающие, какой звук и какой продолжительности нужно сгенерировать. При воспроизведении эти команды читаются и выполняются либо специальной программой-проигрывателем, либо соответствующим образом оснащенной звуковой картой компьютера. Это так называемое командное кодирование звука.
Для записи файлов, содержащих закодированный таким образом звук, используются специальные программы. Практически всегда методом командного кодирования записывается музыка; команды содержат номер инструмента, высоту и продолжительность ноты. Записать, скажем, речь, шум, старую фонограмму или "живое" исполнение по способу командного кодирования невозможно — для этого нужно использовать прямую оцифровку.
Достоинство командного кодирования — компактность получающихся файлов. В самом деле, чтобы записать пару байтов, составляющих команду, много места не нужно. Поэтому такие файлы очень часто используются для распространения музыки через Интернет.
Недостатков у командного кодирования два. Первый нам уже знаком — не всякий звук можно записать этим способом. Второй недостаток — очень часто разные программы воспроизводят закодированный таким способом звук по-разному.
Командное кодирование используется, в основном, для записи и тиражирования музыки и имеет достаточно узкое распространение. А форматов записи закодированного командами звука всего два, и вот каких.
? MIDI. Расшифровывается как Music Instruments Digital Interface — цифровой интерфейс музыкальных инструментов. Был разработан фирмой Yamaha еще в начале 80-х годов. Используется, в основном, для распространения музыки через Интернет и для создания фонового музыкального сопровождения Web-сайтов.
? KAR. Используется для распространения записей караоке. Файлы этого формата практически такие же, как файлы MIDI, но, кроме команд воспроизведения звука, содержат тексты песен. Этот формат довольно популярен, по крайней мере, в русском сегменте Интернета.
Ни один из этих форматов не поддерживается Flash.
Командно-сэмплерное кодирование
Третий метод — своего рода комбинация первого и второго. Он называется командно-сэмплерным кодированием звука.
Заключается он в том, что в звуковом файле, как при командном кодировании, сохраняются команды для воспроизведения звука, содержащие номер инструмента, высоту и продолжительность ноты. Но, кроме того, файл хранит также небольшие фрагменты звучания того или иного инструмента, записанные способом прямой оцифровки. Такие фрагменты называются сэмплами. Фактически номер инструмента, содержащийся в каждой команде воспроизведения звука, указывает именно на сэмпл.
Проигрыватель, воспроизводя файл, читает команду и извлекает из нее номер сэмпла. Далее он считывает из файла нужный сэмпл и использует его для воспроизведения звука.
На заметку
В случае командного кодирования для воспроизведения инструментов в настоящее время также используются сэмплы. Однако эти сэмплы принадлежат не самому звуковому файлу, а программе-проигрывателю. Существует много разных проигрывателей, использующих свои специфические сэмплы, поэтому звук, воспроизводимый ими, зачастую различается.
Достоинств у командно-сэмплерного кодирования два. Первое — файлы имеют размер меньший, чем файлы, содержащие оцифрованный напрямую звук (но больший, чем звуковой файл, полученный командным кодированием). Второе — звук воспроизводится одинаково разными программами.
Как ни странно, но командно-сэмплерное кодирование звука не снискало большой популярности. Сейчас его используют только особые "малобюджетные" программы создания музыки, называемые трекерами. Файлы, создаваемые с помощью трекеров, называются трекерными модулями. Трекеры были особенно популярны в 80-х и начале 90-х годов прошлого века; сейчас же они доживают свои дни.
Программ, поддерживающих трекерные модули (кроме, собственно, самих трекеров), очень немного. Flash к ним не относится.
Данный текст является ознакомительным фрагментом.