| . | . | ||||
| |||||
Обзор MP3Часть 1Часть 2 Характер потерь при кодированииНа низких битрейтах всегда срезаются мелкие, сравнительно тихие детали, наличие или отсутствие которых нередко серьезно меняет эмоциональную окраску композиции, придает или лишает ее таких эффектов, как ощущение 'кристальной' чистоты звука (в той мере, в которой она присутствует в CD Audio). Кроме того, в соответствии с психоакустической моделью, высшие (выше 16 кГц) частоты на низких битрейтах кодируются с очень низким приоритетом. Далее, имеют место разные особенности кодеров. Так, у кодеров от FhG IIS на 128 kbs оказываются 'смазаны' верхние частоты, наблюдается эффект 'шепелявости', в то время как у ISO-based вместо этого - 'звон'. Скорее всего, это связано с разным отношением к частотам выше 16kHz у данных кодеров. В кодере Lame, кстати, они по умолчанию срезаются, что увеличивает качество кодирования на 128kbs. На высших битрейтах при последовательном следовании психоакустической модели, разработанной FhG IIS, проблемы могут доставлять только ошибки, внесенные при написании кодера. Впрочем, из-за не слишком большой озабоченности FhG IIS качеством его кодеров на высоких битрейтах уже не раз оказывалось, что новая версия звучит иногда даже несколько хуже старой. Полагаю, причина кроется в недостаточном или неправильном ослаблении ограничений психоакустической модели при повышении битрейта. Опять же, первый серьезный заказчик, и проблема исчезнет. Тестирование качественности кодеровОбычно тестирование кодеров проводится по степени сохранения формы АЧХ оригинального сигнала. При этом очевидно, что при битрейтах 256kbs... 320kbs АЧХ исходного файла и файла, полученного после декодирования, должны быть идентичными как на синтетических тестах (сгенерированный белый шум), так и на реальных треках, так как при значительных отличиях они окажутся слышны независимо от того, что говорит психоакустическая модель про каждый конкретный фрейм, если только все эти фреймы не похожи друг на друга. На более низких битрейтах следует в первую очередь следить за сохранением формы АЧХ в области низких и средних частот. Сами тесты по сохранению формы АЧХ следует проводить не только на белом шуме, как это делается обычно, но и на достаточно сложных композициях, в комплексе это позволяет получить значительно более достоверные результаты. Кроме того, само сравнение должно производиться не 'не глаз'. Мне, например, пришло как-то письмо, где подробно описывалось, какие частоты и насколько поднимает BladeEnc на низких битрейтах в тесте на кодирование белого шума. (BladeEnc действительно не идеален на средних и низких битрейтах, на них сказываются недостатки модели ISO.) Такие мелочи говорят о наличии ошибок в алгоритме. Тесты АЧХ не универсальны. В силу особенностей MP3 они дают достаточно адекватную оценку его качества, и то не полностью, но к другим форматам они и вовсе не обязаны быть применимыми - в частности, они непригодны для оценки качественности кодирования в формате VQF. Относительно точную раскладку качества сигнала по материалам специально проведенного прослушивания можно найти на сайте MP3Tech, а немного вольный ее перевод на русский язык - у меня на Mikhail's MP3 Page. Но все же рекомендую посетить и сам сайт MP3 Tech, к тому же в данный момент там лежат более новые и подробные результаты других тестов. Психоакустическая модель и разные битрейтыСамым важной характеристикой кодера, от которой зависит качество кодирования, является психоакустическая модель, использованная в нем. Но следует заметить, что модель должна варьироваться для разных категорий битрейтов. Аналогично тому, как использование MS/IS стерео приводит к повышению качества на низких битрейтах, но на средних и высоких только понижает его, также и разные составляющие модели могут иметь максимальный битрейт, до которого они полезны, но от использования которых на больших битрейтах следует отказаться. Кодеры, основанные на исходном коде 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 Lame, Марк Тейлор, не против поработать над кодированием высоких битрейтов в нем, нужно только будет провести определенные тесты. Что до кодеров от FhG IIS - проблема исчезнет, как только найдется заинтересованная сторона, готовая это оплатить. Какие, собственно, кодеры у нас в распоряженииСуществуют три линии развития кодеров - кодеры от XingTech, кодеры от FhG IIS, и кодеры, основанные но исходном иллюстративном коде ISO. Кодеры от XingTech не отличаются высоким качеством кодирования, но многим нравятся, к тому же вполне подойдут для кодирования разной бросовой электронной музыки или синтезированных сэмплов. Благодаря своей скорости они остаются идеальными кодерами для музыки, не требующей высокого качества кодирования. Более подробно о них - на www.xingtech.com. Кодеры от 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 - программа, предлагающая оконный интерфейс для повышения комфортности работы с программами, его не имеющими. В случае MP3 - с кодерами, управляемыми из командной строки, или установленного в системе кодека. После подачи команды на кодирование front-end передает введенные параметры собственно кодеру и ждет завершения его работы. Этот процесс может сопровождаться как попытками предсказать оставшееся время, так и выводом скромной таблички "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 может принимать исходные данные потоком, без промежуточного файла, в формате 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. ВыводыВ принципе, выбор кодера - не такая уж трудная задача. Но вокруг нее возникло уже немало священных войн - "128kbs vs 256kbs", "Xing vs FhG", "ISO-based vs FhG"... В своем обзоре я попытался показать, что сторонники каждого варианта просто достигают разных результатов, и мне сейчас уже особо нечего добавить. Делайте свои выводы, тестируйте, проверяйте, и если обнаружите что-то новое, интересное - добро пожаловать ко мне на MP3 Forum! Буду вас ждать. Декодирование MP3Стандарт MP3 однозначно определяет, какие именно данные содержатся в MP3-файле. Но сам процесс декодирования, процесс перевода аудио из MP3 в PCM, неизбежный при воспроизведении, более корректно будет назвать синтезом, чем декомпрессией. На практике он столь же неоднозначен, как и процесс кодирования. Многие принимают за некий стандарт самый первый из декодеров, написанный в FhG IIS -- l3dec. Этот декодер при работе не предпринимает каких-либо попыток "улучшить" звучание и, как правило, дает точную АЧХ сохраненного сигнала. Также в силу корректности его можно считать практически идеальным декодером для MP3 высоких и средних битрейтов. С другой стороны, на практике иногда обнаруживают себя нюансы, о которых раньше не задумывались. Например, разные кодеры сохраняют аудио в MP3 немного по-разному, хотя и не выходя за рамки стандарта, но несколько меняя алгоритм оптимального восстановления сохраненной части сигнала. Но если в данном случае отличия оказываются несущественны, то тот простой факт, что при кодировании с битрейтом 128kbs, пользующимся бешенной популярностью, мы значительно теряем в качестве, приводит к более существенным последствиям -- на низких битрейтах становится оправданным применение различных 'улучшающих' звучание алгоритмов, т.е. программных DSP, и более корректный декодер может оказаться менее предпочтителен, чем вносящий дополнительные искажения, но "повышающий" этим качество звучания. К сожалению, выбор не слишком велик. Когда какой декодер лучше?За время существования MP3 было написано великое множество самых разных декодеров. Тем не менее, выбор не составляет слишком большой проблемы. Основная сложность в том, что критерии оценки качества декодеров сильно разнятся для низких битрейтов порядка 128kbs и для высоких порядка 256kbs. К ориентированным на высокие битрейты декодерам предъявляется одно основное требование -- корректное декодирование, то есть корректность примененного алгоритма декодирования и отсутствие ошибок в его реализации. Считается, что высокий уровень качества обеспечивается шириной потока, но тем не менее, разные декодеры дают разные по качеству результаты. Разумеется, высокая скорость работы декодера также желательна. В данной категории хорошо себя чувствуют декодеры от FhG IIS, к которым обвинений в некорректности пока никто не смог предъявить. К ориентированным на низкие битрейты декодерам выдвигаются несколько другие требования. Отличие состоит в том, что в силу искажений, вносимых при кодировании MP3 128kbs, требования к корректности декодирования ослабевают, в то время как требование качественности звучания никуда не пропадает. Поэтому не слишком корректные, но приятно звучащие плееры пользуются популярностью. Большинство декодеров являются плеерами, но не каждый плеер может перенаправлять вывод в файл, что приводит к трудностям в его оценке. Существует мнение, что такие плееры не следует называть декодерами. В NAD и NADDY на одном из этапов декодирования применяется алгоритм предсказания, также существует возможность подстройки под особенности кодеров, использованных при получении MP3. Если говорить конкретно, то возможна подстройка под семейство ISO-based, под кодеры семейства FhG IIS, под старые кодеры XingTech с обрезом частот выше 16kHz и даже под еще не вышедший ко времени выхода NAD 0.93 кодер ARCAM. В наследнике NAD, NADDY, упоминается вместо него "ARCoder v1.2+"; видимо, он все-таки вышел. Но, как уже упоминалось, значительного эффекта эта подстройка не дает. Хотя NAD долгое время заслуженно считался чемпионом по части качества, в последнее время другой плеер -- Apollo -- мог с ним в этом поспорить. Но в данном случае речь идет о низких битрейтах, к тому же развитие Apollo теперь тоже остановлено. NAD просто более корректен. Если задаться целью декодирования в WAV-файл, то выбор сейчас следует производить между NAD, l3dec и Winamp (версии 2.21-2.22), причем чем выше битрейт, тем меньше причин пользоваться NAD. Для низких битрейтов можно также попробовать Apollo, но лучше Winamp с соответствующим "улучшающим" звучание плагином. На высших битрейтах выбор производится только между корректными декодерами, и разница оказывается настолько мала, что выбор уже производится, например, между удобными интерфейсами NAD и Winamp и управлением l3dec с помощью ключей командной строки. Скорее всего, при серьезной проверке на битрейтах 256kbs-320kbs l3dec/Winamp превзойдут по качеству прочие -- при написании почти всех декодеров думают, к сожалению, главным образом о качестве звучания MP3 128kbs, на корректность тратятся только в FhG IIS. Но это не делает вывод NAD или Sonique непригодным или некачественным -- и в данном случае все отличия снова укладываются в рамки оговорки, сделанной в начале первой части. L3dec работает только из командной строки и декодирует только в файл, поэтому выбор плеера производится в основном между популярным Winamp, NAD, Apollo и некоторыми другими. Самые известные плеерыWinampWinamp является самым популярным на сегодня плеером. Winamp -- это мультимедиа плеер с поддержкой неограниченного числа форматов. При этом могут используются декодеры, предоставляемые производителями. В целом система напоминает работу Windows с WAV файлами. В версии 2.20 роль встроенного декодера MP3 наконец начал играть декодер от FhG IIS. После этого в плане проигрывания MP3 к Winamp не осталось серьезных претензий, но начиная с версии 2.23 был возвращен старый декодер, поэтому для качественного воспроизведения необходимо брать декодер из версий 2.21-2.22 (так как 2.20 отказывается проигрывать некоторые MP3). NADПризнанным чемпионом по части звучания, однако, на сегодня все же остается NAD. Его звучание несколько менее корректно на высоких битрейтах, но очень приятно. Превосходят его только декодеры от FhG, отличающиеся корректностью. Во время своего развития данный плеер почти прямо противостоял Winamp и имел все шансы отобрать у него со временем львиную долю поклонников. К сожалению, в тот момент, когда дописывались самые важные элементы интерфейса, которые должны были окончательно уравнять NAD по возможностям с Winamp, его развитие было прервано. Последние версии NAD содержат только основные функции, хотя идея плагинов использовалась в свое время и в нем, причем куда раньше того же Winamp. Наиболее известны следующие версии NAD. NAD 0.80 Стабильная, завершенная программа, но для обеспечения возможности дальнейшего развития автор оказался вынужден переписать весь код с нуля. В отличие от более новых, понимает ключи командной строки. NAD 0.93 Последняя из завершенных версий после 0.80. Некоторые второстепенные функции, такие, как редактор поля ID3-TAG, еще не реализованы. Местами проявляются баги. Но качество воспроизведения не вызывает сомнений, при этом поддерживается streaming и вывод в WAV-файл, поэтому его можно использовать и как просто декодер. NAD 0.94 Готовился к выходу, когда весь проект неожиданно оказался выкуплен DimensionMusic. Чем и зарублен на корню, так как развитие NAD как плеера прекратилось. На основе 'движка' был создан набор библиотек Audio Enlightenment (AE), но программист занимался его разработкой в свободное время, и первые результаты появились только через полгода. На основе получившегося набора библиотек в последние дни 98-го была выпущена недоработанная в плане интерфейса первая и последняя бета-версия плеера NADDY, прямого наследника NAD. Скачать NADDY можно на страничке http://ae.dmusic.com. Сам NAD в данный момент есть на его ожившей домашней страничке, http://nad.inept.org. В настоящий момент AE в очередной раз переименован, теперь уже в STARDUST, и используется в Sonique, а развитие NADDY остановлено, как раньше было остановлено развитие NAD. Но к Sonique есть свои претензии. SoniqueИз всех полноценных MP3 плееров Sonique обладает самым красивым интерфейсом. Мне (и многим другим) он представляется несколько громоздким, но многочисленные поклонники с этим не согласны, да и после того, как большинство прежде не работавших элементов управления стали правильно функционировать, это почти перестало мешать. Также имеет большое значение производительность машины, на быстром компьютере интерфейс производит более благоприятное впечатление. И тем не менее, в плане интерфейса Sonique требует доработки. Это классический пример посредственного интерфейса со стильным дизайном. В качестве MP3-декодера начиная с версии 0.75 используется декодер STARDUST, ранее известный как Audio Enlightenment, а еще ранее -- как внутренний декодер плеера NAD. Доступны streaming, декодирование в WAV-файл и декодирование VBR, но в сравнении с Winamp Sonique по функциональности проигрывает. K-JofolK-Jofol является одним из самых быстрых плееров, но на первенство по качеству воспроизведения он претендовать не может. Возможна полная перестройка программируемого интерфейса. Популярность плееру принесла поддержка формата VQF, но теперь это -- обычное дело, да и сам VQF -- посредственный формат. ApolloПросто удобный приятный плеер. Более "высокое" качество звучания на низких битрейтах, чем у других плееров, но и высокая степень некорректности. Мудро организованный плейлист. Поддержка visualization plugins от Winamp. Все. ДругоеПомимо рассмотренных, пользуются определенной популярностью плееры Soritong, C-4. Второй хорош способностью занимать скромное место в любом из четырех углов экрана. Первый начинает прилично выглядеть после установки скина COMPACT. Но наиболее хорош, видимо, WPlay, о нем немного позже тоже будет написано. Понятно, этим список распространенных плееров не ограничивается. Полный список можно найти на www.mp3.com, но мало какие из них могут конкурировать с выше описанными (за исключением, возможно, WPlay). СсылкиЭтот раздел я решил радикально урезать, после он будет воссоздан у меня на странице. В принципе, вполне достаточно следующих адресов: www.mp3.com, www.mpeg.org, www.mp3tech.com. Адрес моей страницы -- http://www.uic.nnov.ru/~fmm. Приглашаю всех к себе на MP3 Forum. Михаил М. Федотов |