Формат аудиосжатия OggVorbis.
OggVorbis - это совершенно новый универсальный формат аудиокомпрессии вышедший летом 2000 года. Этот самый молодой формат из всех конкурентов МР3 разработан группой Xiphophorus и является всего лишь небольшой частью из мультимедиа проэкта OggSquish, в котором будет помимо форматов аудиосжатия еще и кодеки видеокомпрессии. Впрочем, это все в будущем, а пока OggVorbis - единственный реально существующий формат из этого семейства, да и то в виде бета версии кодека.
OggVorbis принадлежит к тому же типу форматов аудиосжатия, что и МР3, AAC, VQF, PAC, QDesign AIFF и WMA, то есть к форматам сдатия с потерями. Психоакустическая модель, используемая в OggVorbis по принципам действия близка к МР3 и иже с ними, но и только - математическая обработка и практическая реализация этой модели в корне отличается, что позволяет авторам объявить свой формат совершенно независимым от всех предшественников.
Главное неоспоримое преимущество формата OggVorbis - это его полная открытость и бесплатность. Казалось бы, что тут удивительного? Вон WMA тоже бесплатен и Astrid/Quartex... Да это так, но авторам этих форматов и в голову не пришло опубликовать исходные коды своих разработок (особенно Microsoft, руководство которой скорее удавится, чем поделится бесплатно исходными кодами даже самой маленькой и устаревшей программы), а Xiphophorus именно это и сделала. OggVorbis создается в рамках проекта GNU и полностью подчиняется GNU GPL (генеральная публичная лицензия). А это означает, что формат совершенно открыт для коммерческого и некоммерческого использования, его коды можно модифицировать безо всяких ограничений, группа разработчиков оставляет за собой лишь право утверждать новые спецификации формата. Некоторые ограничения конечно все же есть, они определены в GNU GPL. Согласно правилам GNU GPL можно делать любые изменения в коде программы, но при этом получившийся программный продукт так же должен подчиняться уложениям GNU GPL. Правда, Xiphophorus все еще имеет возможность закрыть этот открытый формат и сделать его полностью коммерческим, ведь GNU - это чисто добровольная концепция. Но по заявлениям разработчиков, они этого делать не собираются. Выгоды от доступного, свободного от лицензий формата перевешивают выгоды получения денег за лицензии на его использование - именно так считают создатели OggVorbis и в качестве примера указывают на МР3. Разве достигла бы такого размаха индустрия МР3, если бы сам формат не стал бы бесплатен для конечных пользователей? Ну а Xiphophorus собирается пойти еще дальше и сделать формат бесплатным не только для пользователей, но и разработчиков программного обеспечения и железа. Создатели формата не требуют никаких лицензионных плат за любое использование спецификации OggVorbis. Сторонние разработчики вполне свободны создавать и продавать (или отдавать) свои собственные кодеры и декодеры использующие спецификацию OggVorbis. Но если используются программные продукты созданные именно Xiphophorus, например, кодек в виде DLL библиотеки или SDK-комплекты OggVorbis, в составе коммерческих разработок, необходимо будет за них заплатить. Бесплатно только для некоммерческих проектов подчиняющихся GNU GPL, то есть распространяющихся свободно и вместе с исходными кодами. Подобный подход заранее определяет мультиплатформенность OggVorbis.
Помимо бесплатности, OggVorbis, как спецификация, обладает так же еще целым рядом неоспоримых достоинств. Так, вехняя планка частоты выборки составляет не 44 КГц, как у всех форматов, а 48 КГц, что безусловно более близко к живой музыку по сравнению с CD. Кроме того, число каналов не ограничено двумя как обычно - моно и стерео, а достигает 255! Представьте себе акустическую систему из 255 динамиков! Поистине формат сделан с запасом. А ведь наступит когда-нибудь время, когда 48 КГц и 255 каналов станут нормой для компьютерного музыкального центра, а не экзотикой как сейчас.
OggVorbis использует математическую психоакустическую модель отличную от МР3, и это сказывается на звучании. МР3 и OggVorbis трудно сравнивать, но в целом звучание OggVorbis гораздо лучше.
При кодировании кодеки OggVorbis используют VBR (variable bitrate), подобно некоторым МР3 кодекам, что позволяет существенно уменьшить размер композиции, при незначительной потере качества.
Вышедшая бета версия кодека OggVorbis содержит всего один довольно странный bitrate - 136 kbs, но в самой спецификации заложен гораздо более широкий диапазон от 8 kbs до 512 kbs. Последняя цифра выглядит чрезмерной, но не стоит забывать, что OggVorbis поддерживает дл 255 каналов одновременно и, возможно, что если такие аудиокомпозиции появятся, то даже полумегабитной ширины потока может оказаться недостаточно.
Спецификация OggVorbis содержит очень гибкий и развитый механизм включения комментариев и иллюстраций в тело аудиокомпозиции. Заголовок комментария легко расширяется и позволяет включать тексты любой длины и сложности, перемежающиеся изображениями. Можно хоть целую книгу о любимом актере впихнуть. К сожалению, в бета версии кодека эта возможность не реализована, но в будущем все исправится.
Что же касается скорости кодирования, то тут пока нет никаких выдающихся результатов. Скорость кодека OggVorbis не быстрее кодеками МР3. Но не стоит забывать, что это бета. Разработчики признают, что код кодека совершенно не оптимизирован, так как эта программа была выпущена как можно быстрее для демонстрации спецификации, чтобы не быль голословными. То есть, в будущем можно ожидать существенного улучшения скоростных характеристик, особенно, когда подключатся сторонние производители.
OggVorbis, так же как и МР3, изначально разрабатывался как сетевой потоковый формат. Это свойство является очень важным, особенно учитывая мультиплатформенную направленность формата OggVorbis. Интернет-радиостанция использующая низкобитрейтные версии OggVorbis сможет вещать сразу на всех платформах, тогда как такая же радиостанция, использующая для передачи WMA (в виде ASF) будет ограничена только пользователями Windows.
Формат OggVorbis прочился разработчиками (впрочем, как и все форматы рассмотренные ранее) в преемники МР3. И для этого есть все основания. OggVorbis содержит не только все те компоненты, которые обеспечили популярность МР3 в более превосходной форме: отличное качество, малый размер, бесплатность для конечного пользователя, потоковость, но и ряд преимуществ, которых у МР3 нет: бесплатность для разработчиков, отсутствие лицензионных платежей, более высокая частота выборки и значительно большее число поддерживаемых каналов.
Именно благодаря открытости формата об OggVorbis удалось узнать то, что не удавалось для всех других форматов (разве что, кроме Мр3) - как он работает. Все остальные конкуренты МР3 тщательно скрывают внутренние алгоритмы компрессии, и лишь OggVorbis выставляет их на показ. Разумеется, я не буду приводить исходные коды формата, ограничившись простым описанием того, что происходит внутри кодека при кодировании/декодировании аудиокомпозиций.
На первом этапе кодирования, композиция временно разбивается на блоки таким образом, чтобы их было целое число. Размер блоков варьируется. Далее в ход вступают алгоритмы анализа. Кодер анализирует содержимое аудиокомпозиции с целью добиться ее максимально компактного представления. При анализе происходит сепарация блоков входящего аудиопотока на индивидуальные и повторяющиеся. Это разделение необходимо при кодировании с использованием VBR - переменного bitrate. Соответственно индивидуальные и повторяющиеся блоки будут кодироваться с разными bitrate.
Далее идет анализ содержимого блоков на предмет выявления нужных и ненужных частот и тонов, то есть вступает в ход психоакустическая модель. OggVorbis, как и МР3, это формат с потерями. Качество формата во многом зависит от того, насколько серьезны эти потери, и насколько удачно их можно замаскировать. Насколько можно судить по бета версии кодека психоакустическая модель работает вполне корректно, качество довольно высокое, по крайне мере выше, чем у МР3. Насколько мне удалось понять, психоакустическая модель OggVorbis практически не режет высокие частоты, вернее, режет, но верхняя планка поднята достаточно высоко, чтобы удовлетворить даже самый изысканный слух. Итак, верхние частоты не трогают, но уменьшать композицию надо. За счет чего?
В OggVorbis главный акцент сделан на анализе маскирующего влияния сигналов звучащих одновременно. Эта часть сделана гораздо более изощренно и эффективно чем у МР3. В ходе анализа находятся сильные сигналы и сигналы которые маскируются этими сигналами, то есть находятся в своеобразной звуковой "тени". Затем рассчитывается среднее время оглушение для каждого из маскируемых сигналов. Все сигналы лежащие в области звуковой "тени" и попадающие в расчетное время оглушения помечаются на удаление. Конечно, всегда найдутся люди не вписывающиеся в среднестатистическое большинство. У них эффект оглушения может проходить быстрее, чем за рассчитанное кодеком время и может ощущаться отсутствие определенных частот и сигналов. Но обычные слушатели ничего не заметят, а слишком уж изощренным меломанам можно посоветовать использовать винил и CD-audio, алгоритмы сжатия звука не для вас, как и магнитофонные аудиокассеты.
На следующей стадии происходит удаление информации, которую алгоритмы анализа признали излишней.
Оставшуюся информацию сжимают алгоритмами Хафмана и подвергают векторному квантованию в соответствии с установленным bitrate.
При декодировании или синтезе звука, происходит обратный процесс. В целом декодирование проще, так как отсутствует стадия анализа, но оно осложнено технологиями, назначение которых состоит в том, чтобы улучшить качество звучания. В процессе воспроизведения качество звука повышается путем использования интерполяции билинейной или бикубической, в зависимости от реализации декодера. Интерполяция позволяет смягчить потери при использовании низких bitrate. Качество композиции повышается, но при этом теряется четкость, особенно слоговая разборчивость человеческого голоса. Подобный поход оправдывает себя на мелодиях без голоса, но для песен, арий, опер он малопригоден. На высоком bitrate интерполяция минимальна, заглаживаются лишь те "дыры", которые образовались на месте звуков оказавшихся в "тени" сильных тонов. Кроме интерполяции используются разнообразные шумовые фильтры, позволяющие смягчить или совсем убрать шумы квантования, которые появляются при потере информации в результате процедура векторного квантования. Чем ниже bitrate, тем выше шум квантования.
Но вернемся к кодированию аудиофайла. После стадий анализа, удаления избыточной информации и собственно кодирования происходит преобразование уже конечной информации в потоковый формат bitstream OggSqish. Подобно тому, как ASF является форматом пересылки данных для всего семейства Windows Media, так и bitstream OggSquish является единым форматом пересылки потока данных для всего мультимедиа семейства OggSquish.
Полученная информация разбивается на фреймы, структурируется. Каждый фрейм имеет упорядоченную структуру и заголовок содержащий номер фрейма, его контрольную сумму и прочую инженерную информацию. Контрольная сумма нужна для коррекции ошибок. В том случае если фрейм запорчен, декодер его проигрывать не будет, происходит проскок и воспроизведение начинается со следующего целого фрейма.
После формирования заголовка композиции и первого фрейма, далее процесс идет по циклу, эта стадия называется "конкатенация" или формирование цепочки. Начало и конец каждого фрейма отмечается специальными сигналами - маркерами. И так до образования последнего фрейма и концовки содержащей код окончания файла.
Вообще сам процесс преобразования обычной информации в потоковый формат достаточно сложен и описывается многими специфическими терминами и концепциями. Мне, например, несколько сложно объяснить разницу между логическим bitstream и физически, а так же описать их взаимозависимость. Всем кому это интересно - добро пожаловать на сайт http://www.vorbis.com/ в раздел "разработчикам" (developers). Ну а для обычных пользователей продолжаю свой рассказ описанием самого кодека и плагинов OggVorbis.
К сожалению, ничего необычного рассказать не могу. Кодек - обычная программа, с интерфейсом командной строки. Скорость - стандартная, кодек не ресурсоемкий, всего один bitrate 136 kbs, настроек минимум, в качестве исходного материала для кодирования принимаются несжатые композиции в формате WAV 16 bit, 44 KГц или аудиофайлы в формате МР3. Иногда неожиданно в звучании появляются артефакты - выпадение частот, выключение одного из каналов, посторонние звуки, что объясняется недоделанностью бета версии кодека. На текущий момент есть кодеры для систем Windows 9x, Windows NT/2K, Linux и BeOS.
По плагинам сказать можно еще меньше. Обычные программы декодирования, без каких либо настроек, оформленные в виде плагинов к известным проигрывателям таким как WinAMP, Sonique и XMMS
Скачать вышеперечисленные программы можно по адресу http://www.vorbis.com/download.html, там же ждите обновлений.
И напоследок несколько слов о перспективах формата OggVorbis.
Формат очень новый и трудно что-либо сказать до выхода первого официального кодека, в котором будут реализованы все особенности спецификации OggVorbis. Но даже сейчас видно, что у формата большие возможности, главное его надо раскрутить и привлечь сторонних разработчиков. Кстати, форматом заинтересовались довольно крупные компании. Так у Xiphophorus в августе, сразу же после выхода бета версии кодека, появился спонсор - компания iСast. Эта компания знаменита тем, что сразу же вслед за Microsoft X-Box, объявила собственную игровую приставку работающую под управлением Linux. Теперь эта компания намерена использовать аудиоформат OggVorbis и еще не вышедший видеоформат семейства OggSquish в качестве мультимедиа форматов для своей объявленной приставки. В общем, деньги есть, и проект не заглохнет.