| . | . | ||||
| |||||
Обзор MP3Часть 1Часть 2 Что такое MP3?MP3 - сокращение от MPEG Layer3. Это один из потоковых форматов хранения и передачи аудиосигнала в цифровой форме, разработанный Fraunhofer IIS и THOMSON, позднее утвержденный как часть стандартов сжатого видео и аудио MPEG1 и MPEG2. Данная схема является наиболее сложной схемой семейства MPEG Layer 1/2/3. Она требует наибольших затрат машинного времени для кодирования по сравнению с двумя другими и обеспечивает более высокое качество кодирования. Используется главным образом для передачи аудио в реальном времени по сетевым каналам и для кодирования CD Audio. Полные спецификации формата доступны на сайте www.mp3tech.org. ДеталиMP3 - потоковый формат. Это означает, что передача данных происходит потоком независимых отдельных блоков данных - фреймов. Для этого исходный сигнал при кодировании разбивается на равные по продолжительности участки, именуемые фреймами и кодируемые отдельно. При декодировании сигнал формируется из последовательности декодированных фреймов. Высокая степень компактности MP3 по сравнению с PCM 16Bit Stereo 44.1kHz (CD Audio) и ему подобными форматами при сохранении аналогичного качества звучания достигается с помощью дополнительного квантования по установленной схеме, позволяющей минимизировать потери качества. Последнее, в свою очередь, достигается учетом особенностей человеческого слуха, в том числе эффекта маскирования слабого сигнала одного диапазона частот более мощным сигналом соседнего диапазона, когда он имеет место, или мощным сигналом предыдущего фрейма, вызывающего временное понижение чувствительности уха к сигналу текущего фрейма. Также учитывается неспособность большинства людей различать сигналы, по мощности лежащие ниже определенного уровня, разного для разных частотных диапазонов. Подобные техники называются адаптивным кодированием и позволяют экономить на наименее значимых с точки зрения восприятия человеком деталях звучания. Степень сжатия, и, соответственно, объем дополнительного квантования, определяются не форматом, а самим пользователем в момент задания параметров кодирования. Ширина потока (bitrate) про кодировании сигнала, аналогичного CD Audio (44.1kHz 16Bit Stereo) варьируется от наибольшего, 320kbs (320 килобит в секунду, также пишут kbs, kbps или kb/s), до 96kbs и ниже. Термин битрейт в общем случае обозначает общую величину потока, количество передаваемой за единицу времени информации, и поэтому не связан с внутренними тонкостями строения потока, его смысл не зависит от того, содержит ли поток моно или стерео, или пятиканальное аудио с текстом на разных языках, или что-либо еще. Кстати, несмотря на то, что в формате MP3 действительно при определенных условиях может кодироваться и пятиканальное аудио, рассмотрение всех случаев, кроме стерео, по понятным причинам не включено в данный обзор. Весь обзор построен вокруг и около процесса кодирования CD Audio. Продолжаем про битрейты. На проведенных тестах специально приглашенные опытные эксперты, специализирующиеся на субъективной оценке качественности звучания, не смогли различить звучание оригинального трека на CD и закодированного в MP3 с коэффициентом сжатия 6:1, то есть с битрейтом в 256kbs. Правда, тесты были проведены на небольшом количестве материала, и на самом деле не все столь хорошо, нередко бывает действительно нужно пользоваться 320kbs. Для себя я счел это достаточным основанием для полного перехода на кодирование с битрейтом 320kbs. Более низкие битрейты, несмотря на их популярность, не дают возможности обеспечить надлежащее качество кодирования, что незаслуженно обеспечило MP3 дурную славу любительского формата. На самом деле, хотя и 256kbs, и даже 320kbs тоже не дают возможности осуществить полностью прозрачное кодирование, но отличия от CD Audio, по которому кодируется тестовый MP3, сравнимы с отличиями самого CD Audio от исходного аналогового сигнала, из которого он был получен путем оцифровки. То есть потери, конечно, есть, но несущественны с точки зрения того, кому качество CD Audio представляется достаточным. Фактически, их обнаружение обычно является задачей нетривиальной на аппаратуре класса Hi-Fi. Настоящее и будущее MP3MP3 на сегодня имеет два огромных преимущества перед другими доступными форматами его рода. Одно из них состоит в том, что ни про один из существующих подобных форматов нельзя пока сказать, что он полностью гарантирует устойчивое сохранение качества звучания на достаточно высоких битрейтах, кроме MP3, который достойно выдержал проверку временем. Пожалуй, единственный известные мне конкурент в этом плане - последние варианты формата ATRAC, используемый в минидисках. Для MP3 также написано множество удобного программного обеспечения. Этот факт отражает второе, не менее важное преимущество - на ближайшие годы, а возможно, и на все десятилетие, MP3 стал стандартом де факто, настолько много сделано в него вложений пользующимися им сторонами, в том числе и цифровыми радиостанциями. MP3 довольно долго оставался неизвестным, но несколько лет назад начался взрывной рост его популярности, столь же быстро начали появляться залежи нелегальных MP3 файлов. Сейчас налажено производство аппаратных MP3 плееров, а карманных, и для автомобилей. Таким образом, MP3 стал первым массово признанным форматом хранения аудио после CD-Audio. Несмотря на то, что MP3 появился достаточно давно, более новые форматы, претендующие на его место, появившиеся к настоящему моменту, все на поверку оказались любительскими. Они могут быть или не быть хороши по сравнению с MP3 на низких битрейтах, это зависит от трека и особенностей слуха конкретного человека, но на место MP3 256kbs... 320kbs претендовать не способны. Возможно, 'монополия' MP3 в сфере компьютеров на низких битрейтах все же будет отчасти сломлена новым форматом от Microsoft - WMA. Но пока рано говорить об этом. С другой стороны, появление Microsoft на данном рынке со столь сильной разработкой означает быстрое отсеивание оказавшимися неудачными ветвей AAC и VQF. Впрочем, остается надежда, что AAC еще будет доработан. В завершение упомяну один адрес, по которому расположился проект по созданию свободного от патентных ограничений кодера - http://www.sulaco.org/mp3/free.html. Правда, патентов вокруг MP3 накопилось столько, что, думаю, проект этот завершен не будет. (Впрочем, если говорить о свободных от патентах аудиокодерах вообще, то существует и более реальный проект, не являющийся проектом MP3 кодера. Он расположен по адресу www.xiph.org.) Описание процесса кодированияПодготовка к кодированию. Фреймовая структураПеред кодированием исходный сигнал разбивается на участки, называемые фреймами, каждый из которых кодируется отдельно и помещается к конечном файле независимо от других. Последовательность воспроизведения определяется порядком расположения фреймов. Каждый фрейм может кодироваться с разными параметрами. Информация о них содержится в заголовке фрейма. Начало кодированияКодирование начинается с того, что исходный сигнал с помощью фильтров разделяется на несколько, представляющих отдельные частотные диапазоны, сумма которых эквивалентна исходному сигналу. Работа психоакустической модели.Для каждого диапазона определяется величина маскирующего эффекта, создаваемого сигналом соседних диапазонов и сигналом предыдущего фрейма. Если она превышает мощность сигнала интересующего диапазона или мощность сигнала в нем оказывается ниже определенного опытным путем порога слышимости, то для данного фрейма данный диапазон сигнала не кодируется. Для оставшихся данных для каждого диапазона определяется, сколькими битами на сэмпл мы можем пожертвовать, чтобы потери от дополнительного квантования были ниже величины маскирующего эффекта. При этом учитывается, что потеря одного бита ведет к внесению шума квантования величиной порядка 6 dB. Завершение кодированияПосле завершения работы психоакустической модели формируется итоговый поток, который дополнительно кодируется по Хаффману, на этом кодирование завершается. ЗамечаниеНа практике схема несколько сложнее. Например, необходимо согласовываться с требованиями битрейта. В зависимости от кодера это приводит при повышении битрейта к разного рода релаксациям при отборе сохраняемой части исходного сигнала, а при понижении - наоборот, к ужесточению критериев. Способы кодирования стерео сигналаВ рамках MP3 кодирование стереосигнала допустимо четырьмя различными методами: Dual Channel - Каждый канал получает ровно половину потока и кодируется отдельно как моно сигнал. Рекомендуется главным образом в случаях, когда разные каналы содержат принципиально разный сигнал - скажем, текст на разных языках. Выставляется в некоторых кодерах по требованию. Stereo - Каждый канал кодируется отдельно, но кодер может принять решение отдать одному каналу больше места, чем другому. Это может быть полезно в том случае, когда после отброса части сигнала, лежащей ниже порога слышимости или полностью маскируемой, оказалось, что код не полностью заполняет выделенный для данного канала объем, и кодер имеет возможность использовать это место для кодирования другого канала. В документации к mp3enc замечено, что этим, например, избегается кодирование "тишины" в одном канале, когда в другом есть сигнал. Данный режим выставлен по умолчанию в большинстве ISO-based кодеров, а также используется продукцией FhG IIS на битрейтах выше 192kbs. Применим и на более низких битрейтах порядка 128kbs... 160kbs. Joint Stereo (MS Stereo) - Стереосигнал раскладывается на средний между каналами и разностный. При этом второй кодируется с меньшим битрейтом. Это позволяет несколько увеличить качество кодирования в обычной ситуации, когда каналы по фазе совпадают. Но приводит и к резкому его ухудшению, если кодируются сигналы, по фазе не совпадающие. В частности, фазовый сдвиг практически всегда присутствует в записях, оцифрованных с аудиокассет, но встречается и на CD, особенно если CD сам был записан в свое время с аудиоленты. С другой стороны, уже совершена (первая ?) попытка написать программу для автоматической коррекции фазового сдвига, адрес страницы автора - http://www.chat.ru/~lrsp. Возможно, она немного поможет любителям кодировать оцифровки с аудиокассет с битрейтом порядка 128kbs. Режим выставлен по умолчанию продукцией FhG IIS, а также кодером Lame, для битрейтов от 112kbs до 192kbs. Joint Stereo (MS/IS Stereo) - Вводит еще один метод упрощения стереосигнала, повышающий качество кодирования на особо низких битрейтах. Состоит в том, что для некоторых частотных диапазонов оставляется уже даже не разностный сигнал, а только отношение мощностей сигнала в разных каналах. Понятно, для кодирования этой информации употребляется еще меньший битрейт. В отличие от всех предыдущих, этот метод приводит к потере фазовой информации, но выгоды от экономии места в пользу среднего сигнала оказываются выше, если речь идет о очень низких битрейтах. Этот режим по умолчанию используется продукцией FhG IIS для высоких частот на битрейтах от 96kbs и ниже (другими качественными кодерами этот режим практически не используется). Но, как уже говорилось, при применении данного режима происходит потеря фазовой информации, также теряется любой противофазный сигнал. Простые заблуждения и ошибки, делаемые пользователями MP3Вокруг MP3 набралось столько заблуждений, что создается впечатление, что так все и было задумано, что это чей-то заговор. :) Но - по порядку. Одно из самых больших заблуждений, связанных с MP3, постоянно проявляется в споре "128kbs vs 256kbs - с каким битрейтом кодировать". Аргументы сторонников первого варианта исчерпываются напоминанием, что такие MP3 вдвое меньше. Утверждение, что уж лучше держать CD Audio вместо MP3 256kbs, несостоятельно - качество MP3 256kbs... 320kbs практически соответствует оригиналу, а занимаемый объем в 4.5-6 раз меньше. Заблуждение же состоит в том, что и 128kbs дает достаточно высокое качество. На самом же деле для людей, сознательно выбирающих 128kbs, сохранение близкого к исходному качества просто не является слишком важным, так как их аппаратура обычно не лучше плееров-"мыльниц". В то же время многие владельцы CD кодируют их в MP3 даже просто потому, что гораздо реже нужно CD менять - на моем 8Gb винчестере поместится более пятидесяти часов музыки в MP3 битрейта 320kbs. Как говорится, в этом случае мотивы пользователей 128kbs нам непонятны. Чтобы не суметь отличить MP3 128kbs от оригинала, нужно либо не иметь слуха, либо взять аппаратуру похуже. И то, что на большинстве компьютерных систем с момента покупки стоит ужасно шумная звуковая плата от ESS, известно всем хорошо. Только мне с некоторых пор кажется, что дело еще и в постоянном отравлении некачественным звуком, и, как следствие, временной (но постоянно возобновляемой) потере чувствительности. Мы слишком часто слушаем то, что слушать не стоило бы, и дело не только характеристиками компьютерной техники - MP3 128kbs при нормальном слухе не понравится и на ESS. Конечно, по сравнению с дребезгом колонок уличного киоска под аккомпанемент трамвая звучание MP3 128kbs может казаться весьма неплохим, но это не нормально. Что со всем этим делать ? Да просто берегите уши от лишних истязаний, оно полезно. А что до карты - простая малошумная карта и относительно приличные наушники стоят не так уж много. Поэтому в обзоре не учитываются шумы компьютера и карты - эти трудности вполне преодолимы. Другое небольшое заблуждение состоит в том, что уровень шумов декодированного сигнала сильно связан с уровнем качества MP3. Но это заблуждение развевается очень быстро - заметить, что качество MP3 зависит от других причин, легче легкого. Как правило, уровень шумов очень низок на любых битрейтах, это скорее характеристика плеера. Кроме того, в большинстве учебников прямо говорится о неспособности человека слышать частоты выше 16kHz. Но во-первых, это просто неверно, многое зависит от мощности сигнала и от возраста слушателя. Во-вторых, человек - существо, не лишенное оригинальности. Даже когда он не слышит такие звуки с помощью уха осознанно, он все же ощущает их. И это влияет на восприятие. Поэтому обрезание частот выше 16kHz можно считать обоснованным на низких битрейтах, когда оно позволяет намного лучше закодировать более низкие диапазоны, но нельзя не брать в расчет, когда речь заходит о высоких битрейтах, приближающих качество сигнала к уровню CD Audio. Да, кстати, у детей частотный порог слышимости куда выше 16kHz. Немного о програмахНовых пользователей в заблуждение вводит повсеместная реклама очень продаваемых, но в то же время очень по сравнению с другими посредственных кодеров от XingTech. По поводу их недостатков я еще пройдусь ниже. На втором месте по объему рекламы мы видим кодеры от самого уважаемого производителя, FhG IIS, но они тоже обладают определенными недостатками, к тому же дороги, поэтому дешевые и быстрые кодеры от XingTech сегодня на вершине популярности. Но недостатки кодеров от FhG IIS в основном связаны со слабыми возможностями настройки и концентрацией усилий разработчиков на низких битрейтах. Если FhG IIS будет с того коммерческая выгода, то специалисты быстро все поправят. О третьей группе кодеров, основанных на свободно доступном исходном коде написанного в иллюстративных целях кодера от ISO, также будет сказано ниже. Из плееров же, как не составляет труда заметить, наиболее популярен и раскручен плеер Winamp. Еще недавно он не блистал высоким качеством звука, да и сейчас снова не блещет, но недавно на протяжении нескольких версий в нем использовался декодер от FhG IIS, и при условии его установки (например, их версии 2.22) вопрос с выбором плеера практически отпадает. Кроме того, есть и другие хорошие плееры, могущие поспорить в Winamp, некоторые из них упомянуты во второй части обзора. Кроме плееров и кодеров, к программам, связанным с MP3, относят и грабберы - копировщики треков с CD в WAV-файлы. Связанные с ними вопросы вкратце освещены мной в отдельном обзоре, но без больших подробностей. Немного о некоторых битрейтахЧем выше битрейт, тем выше оказывается качество закодированного сигнала. Но каждый битрейт имеет свою сферу применения. Профессионалы, аудиофилы, а также все, кто заботится о создании качественной копии, вполне соответствующей про качеству оригиналу, применяют только высокие битрейты. С другой стороны, наиболее многочисленная часть любителей MP3 применяет его для кодирования "популярной" музыки, главное отличительное свойство которой - недолговечность, способность быстро устаревать и становиться неинтересной, поэтому такие MP3 и хранятся недолго, и требования к их качеству гораздо более низкие, что приводит к использованию низких битрейтов. В Интернет, как правило, можно найти только MP3, закодированные с битрейтом 128kbs (и/или кодерами от XingTech, о которых ниже). Этот битрейт, являясь "любимым" битрейтом FhG IIS, был признан также оптимальным для использования в Интернет. В принципе, на эту роль больше подошел бы битрейт 112kbs по разным соображениям, но он оказался маловат для достаточно качественного кодирования, и дополнительно закрепился битрейт 128kbs, несколько превышающий по качеству 112kbs, и который позже стал основным в Интернет. Если отвлечься ненадолго от кодирования собственно CD Audio, то можно заметить, что поток величиной порядка 112kbs довольно удобен, например, для прямых трансляций на большие расстояния. В этом случае MP3 хорошо окупается, по сравнению с передачей того же сигнала другими способами. На странице FhG IIS можно почитать более подробно об этом. Также MP3 используется на цифровых радиостанциях, но там требования к качеству на полпорядка выше. Вернемся к кодированию CD Audio. Выбирать основной для себя битрейт вам самим, в зависимости от потребностей. Я сам, когда начинал разбираться с MP3, изначально искал именно и только полноценную замену CD Audio, с меньшим объемом, но с как минимум не меньшим качеством, и такую возможность MP3 в общем-то дает. Любые существенные потери качества и нервов, пусть и с утешительным призом в виде дальнейшего уменьшения объема, меня всегда интересовали со знаком минус, и я пользуюсь и собираюсь продолжать пользоваться исключительно 320kbs MP3. Дело в том, что в уже упоминавшихся тестах с участием профессиональных прослушивателей, в которых для всех использованных тестовых композиций не было найдено различий в звучании MP3 256kbs и оригинала, было на самом деле использовано весьма ограниченное число композиций. На практике же существует довольно много композиций, где приходится переходить на 320kbs, и в то же время я не слышал ни об одной, где результат кодирования на 320kbs оказался бы недостаточно хорош. Отличия, конечно, все же остаются обнаружимы при использовании исключительной аппаратуры, но в целом качество практически то же. К сожалению, я сейчас не помню адреса, по которому расположены результаты выше упомянутых тестов. Но разными любителями проводились и свои тесты, результаты нескольких из них можно найти на одном из лучших известных мне сайтов по MP3, MP3Tech. В общем же из результатов всех известных мне тестов можно сделать следующие выводы. Во-первых, битрейт 256kbs для абсолютного большинства пользователей совершенно достаточен. Но для уверенности в качестве все же необходимо использовать 320kbs, что я сам и делаю. При этом получаем в четыре с половиной раза меньший файл, что приятно. Во-вторых, MP3 160kbs... 192kbs в большинстве случаев вполне достаточны для хранения вспомогательного аудио на компьютере, например, для использования в компьютерных играх. Иначе говоря, для случаев, когда внимание отвлечено. Хотя производители игр, настроенные радикально, предпочитают 128kbs. И, наконец, немного о собственно MP3 128kbs, пользующемся такой популярностью. В свое время он был широко разрекламирован FhG IIS, но при его использовании мы имеем скорее качество аудиокассеты, записанной на подозрительного происхождения магнитофоне, хотя и с очень низким уровнем шумов. Романтически настроенные разработчики даже почти официально назвали это 'CD-качеством', что очень далеко от истины. Впрочем, это давняя традиция - ADPCM тоже в свое время называли форматом, дающим только неслышимые искажения. На самом деле различие между качеством звука на битрейтах 128kbs и 256kbs... 320kbs принципиально, так как первый к качеству уровня CD, собственно, никакого отношения не имеет, в отличие от двух последних. Разумеется, для тех, кому качество средней аудиокассеты кажется великолепным, данная оценка неверна, также она не столь категорична для случаев, когда внимание сильно отвлечено. Но в целом, думаю, все ясно. VBR & XingTechXingTech - фирма, производящая наиболее скоростные MP3 кодеры. К сожалению, ее кодеры всегда славились и продолжают славиться невысоким качеством. В районе конца 98 - начала 99 года XingTech первая использовала технологию переменного битрейта, VBR. Если в случае постоянного битрейта кодер выбирает наиболее значащие частотные составляющие фрейма, убирающиеся в выделенный битрейт, то в случае VBR задается максимальный допустимый уровень потерь, а кодер выбирает еще и минимальный битрейт, достаточный для выполнения поставленной задачи. Стоящие рядом в конечном потоке фреймы могут оказаться в итоге закодированы с совершенно разными параметрами. Но для кодеров XingTech качество так и не поднялось на уровень FhG IIS/ISO-based кодеров. Оно безусловно повысилось, но для серьезного кодирования музыки эти кодеры остаются непригодны, да и не для этого они создавались - в частности, в данных кодерах практикуется искажение сигнала, дающее эффект "лучшей слышимости высоких", что действительно часто может оказаться приятно, но высококачественное кодирование по определению подразумевает отсутствие подобных искажений. И не зря. Определенный оптимизм вызывает другая реализация VBR, уже на основе исходного кода ISO (на самом деле от кода ISO он ушел уже очень далеко). Речь идет о кодере Lame. Несмотря на свое довольно своеобразное название, данный кодер на данный момент является самым многообещающим кодером для высоких и средних битрейтов, при этом он и на низких битрейтах превосходит большинство других кодеров, в том числе все ISO based. Подробнее о Lame - ниже. Способы хранения MP3Стандарт MP3 не определяет никакого точного стандартного математического алгоритма кодирования, его разработка целиком и полностью остается на совести разработчиков кодеров. Вместо этого он определяет общую схему процесса кодирования, а также формат закодированного фрейма. Сами последовательности фреймов могут передаваться потоком (процесс передачи такого потока называется streaming) или храниться в файлах. MP3 файл, как и поток, состоит из последовательно расположенных фреймов, между которыми может содержаться произвольная информация. Основное требование состоит в том, что не должно быть совпадений с сигнатурой начала фрейма. Часто к последовательности фреймов добавляют стандартный заголовок мета-аудиоформата WAV, и получается то, что называют WAV-MP3. (Немного подробнее о последнем будет сказано ниже, когда будет описываться ACM pro codec.) Еще чаще к MP3-файлу добавляется информационный блок ID3v2, содержащий информацию об исполнителе, жанре, названии композиции, и другую подобную информацию о треке. Он добавляется в конец файла. В середину пока никто ничего ставить не придумал. Хотя, вообще говоря, может представлять некоторый интерес вставка спецтэга для VBR с информацией о том, в какой части трека мы, собственно, находимся. |