Смекни!
smekni.com

Методы позиционирования и сжатия звука (стр. 41 из 47)

Кодеры от 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?

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, несмотря на особую политику страны автора по отношению к патентам на математические алгоритмы.

Lame не угрожает подобная участь, так как он распространяется в виде патча к исходному коду ISO и сам по себе кодером быть признан не может.

Каковы системные требования?

Фактически, единственное требование к системе -- наличие компилятора C. Но производительность MP3 кодеров на слабых системах оставляет желать лучшего, и из процессоров Intel не рекомендуется использовать что-либо ниже 486.

Декодиpование MP3

Cтандаpт MP3 однозначно опpеделяет, какие именно данные содеpжатся в MP3-файле. Hо сам процесс декодирования, процесс перевода аудио из MP3 в PCM, неизбежный при воспроизведении, более корректно будет назвать синтезом, чем декомпрессией. На практике он столь же неоднозначен, как и процесс кодирования.

Многие пpинимают за некий стандаpт самый пеpвый из декодеpов, написанный в FhG IIS -- l3dec. Этот декодер при работе не предпринимает каких-либо попыток "улучшить" звучание и, как правило, дает точную АЧХ сохраненного сигнала. Также в силу корректности его можно считать практически идеальным декодером для MP3 высоких и средних битрейтов.

С другой стороны, на практике иногда обнаруживают себя ньюансы, о которых раньше не задумывались. Например, разные кодеры сохраняют аудио в MP3 немного по-разному, хотя и не выходя за рамки стандарта, но несколько меняя алгоритм оптимального восстановления сохраненной части сигнала. Но если в данном случае отличия оказываются несущественны, то тот простой факт, что при кодировании с битрейтом 128kbs, пользующимся бешенной популярностью, мы значительно теряем в качестве, приводит к более существенным последствиям -- на низких битрейтах становится оправданным применение различных 'улучшающих' звучание алгоритмов, т.е. программных DSP, и более корректный декодер может оказаться менее предпочтителен, чем вносящий дополнительные искажения, но "повышающий" этим качество звучания. К сожалению, выбор не слишком велик.

Когда какой декодер лучше?

За время существования MP3 было написано великое множество самых разных декодеров. Тем не менее, выбор не составляет слишком большой проблемы. Основная сложность в том, что критерии оценки качества декодеров сильно разнятся для низких битрейтов порядка 128kbs и для высоких порядка 256kbs.

К ориентированным на высокие битрейты декодерам предъявляется одно основное требование -- корректное декодирование, то есть корректность примененного алгоритма декодирования и отсутствие ошибок в его реализации. Считается, что высокий уровень качества обеспечивается шириной потока, но тем не менее, разные декодеры дают разные по качеству результаты. Разумеется, высокая скорость работы декодера также желательна.

В данной категории хорошо себя чувствуют декодеры от FhG IIS, к которым обвинений в некорректности пока никто не смог предъявить.

К ориентированным на низкие битрейты декодерам выдвигаются несколько другие требования. Отличие состоит в том, что в силу искажений, вносимых при кодировании MP3 128kbs, требования к корректности декодирования ослабевают, в то время как требование качественности звучания никуда не пропадает. Поэтому не слишком корректные, но приятно звучащие плееры пользуются популярностью.

Большинство декодеров являются плеерами, но не каждый плеер может перенаправлять вывод в файл, что приводит к трудностям в его оценке. Существует мнение, что такие плееры не следует называть декодерами.

В NAD и NADDY на одном из этапов декодирования пpименяется алгоpитм пpедсказания, также сyществyет возможность подстpойки под особенности кодеpов, использованных пpи полyчении MP3. Если говорить конкретно, то возможна подстройка под семейство ISO-based, под кодеры семейства FhG IIS, под старые кодеры XingTech с обрезом частот выше 16kHz и даже под еще не вышедший ко вpемени выхода NAD 0.93 кодеp ARCAM. В наследнике NAD, NADDY, упоминается вместо него "ARCoder v1.2+"; видимо, он все-таки вышел. Но, как уже упоминалось, значительного эффекта эта подстройка не дает.

Хотя NAD долгое время заслуженно считался чемпионом по части качества, в последнее время другой плеер -- Apollo -- мог с ним в этом поспорить. Но в данном случае речь идет о низких битрейтах, к тому же развитие Apollo теперь тоже остановлено. NAD просто более корректен.

Если задаться целью декодирования в WAV-файл, то выбоp сейчас следyет пpоизводить междy NAD, l3dec и Winamp (версии 2.21-2.22), пpичем чем выше битpейт, тем меньше причин пользоваться NAD. Для низких битрейтов можно также попробовать Apollo, но лучше Winamp с соответствующим "улучшающим" звучание плагином.