.

Психоакустическая модель и разные битрейты MP3

Кодеры, основанные на исходном коде ISO, чаще всего продолжают использовать довольно слабый вариант психоакустической модели, использованный в нем. Но на высоких битрейтах мы все же получаем очень хороший результат, причем многим он нравится больше, чем результат кодирования кодерами FhG IIS. Видимо, причина кроется как раз в том, что психоакустическая модель в кодерах от FhG IIS неизменна для всех битрейтов и более подходит для битрейтов средних и низких, в то время как на высоких избыточна и нуждается в ослаблении, в то время как модель ISO оказалась неплохо, хотя и не идеально, приспособлена к высоким битрейтам. Но тема противостояния кодеров FhG кодерам ISO-based остается откытой. В самом развитом из ISO-based кодеров, Lame, модель была значительно улучшена, причем настолько, что кодер и на низких битрейтах незначительно уступает аналогам от FhG IIS. Можно сказать, что в Lame осталась уже относительно небольшая часть исходной модели ISO. Но на битрейтах 256kbs и 320kbs предыдущий лидер высокобитрейтных кодеров, mpegEnc, все еще спорит с Lame. Но, как оказалось, в mpegEnc модель мало отличается от исходной слабой модели ISO, просто в нем отключены некоторые ее части, что в итоге, как ни странно, привело к значительному повышению качества кодирования... только на высоких битрейтах. Возможно, более подробный анализ исходников покажет и другие изменения, но поверхностный анализ уже показал, что все главные недостатки исходной модели ISO присутствуют. Видимо, их сглаживает высокий битрейт, или же они действительно несущественны на 256kbs... 320kbs.

Текущий руководитель разработкой Lame, Марк Тейлор, не против поработать над кодированием высоких битрейтов в нем, нужно только будет провести определенные тесты. Что до кодеров от FhG IIS -- проблема исчезнет, как только найдется заинтересованная сторона, готовая это оплатить. Существуют три линии развития кодеров -- кодеры от XingTech, кодеры от FhG IIS, и кодеры, основанные но исходном иллюстративном коде ISO.

  • Кодеры от XingTech не отличаются высоким качеством кодирования, но многим нравятся, к тому же вполне подойдут для кодирования разной бросовой электронной музыки или синтезированных семплов. Благодаря своей скорости они остаются идеальными кодерами для музыки, не требующей высокого качества кодирования. Более подробно о них -- на
  • Кодеры от FhG IIS известны наивысшим качеством кодирования на низких и средних битрейтах благодаря наиболее подходящей для таких битрейтов психоакустичекой модели. Из консольных кодеров данной группы наиболее предпочтителен l3enc 2.61 (не 2.71 и не 2.72, на знаю про 2.74), также пока не отброшен mp3enc 3.1, но последний никто всерьез не тестировал. Другие кодеры, такие, как AudioActive или MP3 Producer, обладают значительными недостатками, правда, в основном это ограничения возможностей настройки и неразвитость интерфейса.

Также существует старый кодек ACM pro codec авторства FhG IIS, и несколько нелегальных кодеков, код для которых выкорчеван из последних кодеров FhG IIS. Остальные кодеры ведут свое происхождение от исходных кодов ISO. Не считая таких "ошибок эволюции", как SoundLimit, в котором значительно увеличена скорость за счет еще более значительного ухудшения качества, получаем два основных направления развития -- оптимизация кода по скорости и оптимизация алгоритма по качеству.

До недавнего времени первую линию наилучшим образом представлял кодер BladeEnc, в котором используется первоначальная модель ISO, но проведено много оптимизаций кода, а вторую -- mpegEnc, известный также и как самый медленный MP3 кодер. Но откуда берется высокое качество mpegEnc на высоких битрейтах, я уже упомянул выше. На самом же деле серьезная оптимизация самого алгоритма впервые встречена в кодере Lame, в котором использована самостоятельно разработанная психоакустическая модель GPSYCHO. Есть все основания считать Lame наилучшим из основанных на коде ISO кодеров. По скорости он давно догнал остальные, а по качеству скоро должен отдать последние позиции и mpegEnc... .Lame может быть собран практически на любой платформе, на которой есть компилятор языка C. Скомпилированный вариант Lame в виде библиотеки dll входит в состав граббера Cdex, но предпочтительнее использовать вариант, запускаемый из командной строки, он имеет более другие возможности настройки, к тому же работает быстрее. Но его надо собирать самому. Кстати, в состав Cdex входит и свой кодер, но он и раньше никем особенно не тестировался, а сейчас это не представляется нужным.

Front-end -- программа, пpедлагающая оконный интерфейс для повышения комфоpтности pаботы с пpогpаммами, его не имеющими. В слyчае MP3 -- с кодеpами, управляемыми из командной стpоки, или yстановленного в системе кодека. После подачи команды на кодиpование front-end пеpедает введенные паpаметpы собственно кодеpy и ждет завеpшения его pаботы. Этот процесс может сопpовождаться как попытками пpедсказать оставшееся вpемя, так и выводом скромной таблички "Please wait". В большинстве грабберов обеспечены средства для подключения внешних кодеров, поэтому любой из них может быть использован как front-end. В частности, при установленном ACM pro codec как таковой может быть использован любой граббер, позволяющий выбирать формат сохранения награбленного.

Что такое ACM pro codec (MP3-кодек)? Формат WAV является метаформатом для данных любого типа. Имеет стандартный заголовок и описания областей данных, которых может быть несколько, способ же кодирования аудиосигнала может быть каким угодно. Вполне могут содержаться данные, к аудио отношения не имеющие. Каждый метод кодирования, указываемый в заголовке, имеет собственный идентификатор, в соответствии с которым Windows и определяет, установлен ли кодек для работы с данным файлом, и если установлен -- использует его. Кодеки, индивидуальные для каждого подформата, регистрируются в системе при их установке, после чего становится возможным использовать WAV-файлы, содержащие аудиоданные в форматах, поддерживаемых данными кодеками. Тем не менее, хотя для MP3 тоже существует по крайней мере один кодек ACM pro codec от FhG IIS, сам по себе формат из-за потерь при кодировании непригоден на роль промежуточного, поэтому в редакторах с WAV-MP3 работать не рекомендуется. Единственным разумным применением данного кодека можно считать декодирование WAV-MP3, либо их кодирование, когда по каким-либо причинам неудобно сделать это из нормального кодера. При установленном кодеке можно применять WAV-MP3 в качестве стандартных звуков Windows.

Помимо оригинального кодека от FhG IIS, позволяющего кодирование только с битрейтом 128kbs и ниже, существуют несколько нелегальных версий кодека, сделанных группой Radium из кода, выкорчеванного из нового 'Продюсера'. Но первая версия этого кодека была нестабильной, и я не вижу оснований для того, чтобы испытывать доверие к более новым версиям. Лучше сделать еще один кодек из Lame.

Файлы какого формата можно перевести в формат MP3? Кодирование из формата WAV PCM поддерживают все кодеры. Многими поддерживается AIFF. Mp3enc может принимать исходные данные потоком, без промежуточного файла, в фоpмате PCM. А mpegEnc и Cdex предлагают кодировать прямо с CD-ROM. Lame распространяется в виде исходных кодов и может быть обучен любому формату.

Каков статус MP3 кодеров? Все продукты Fraunhofer IIS и Xing Tech -- коммерческие, но полные версии обычно можно найти на FTP поисковиках. BladeEnc, mpegEnc -- freeware, но FhG IIS пожелал сделать их развитие невозможным. Сделано это очень простым методом -- за распространение кодеров нужно платить пеню FhG IIS, даже если кодер распространяется бесплатно. Поэтому свободное распространение mpegEnc невозможно, также могут возникнуть трудности с распространением BladeEnc, несмотря на особую политику страны автора по отношению к патентам на математические алгоритмы.