WebSound.ru Home
    Главная | Комментарии | Архив выпусков | Форум и чат | AudioTag.info | Музоблог | reTracked | Авторский блог  



  Поиск:

Поиск по WebSound.Ru:
Поиск в Интернете:
Powered by




  Партнеры, реклама:




Audio watermarking
TrustedAudio.com



 

FAQ по MP3

© 2004 Тарас Бризицкий [SacRat]
sacrat@newmail.ru

Все права в отношении данного документа принадлежат автору. Воспроизведение данного текста или его части разрешается только с письменного разрешения автора.

История MP3 

Разработка алгоритмов MP3 (MPEG Audio Layer III) началась в 1987 году институтом Фраунгофера (Fraunhofer IIS, FhG) совместно с университетом Эрланген (Erlangen).
В 1988 первые прототипы формата были представлены общественности. В мае того же года происходит первое собрание комитета MPEG.
В 1992 году формат приобрел официальный статус, став частью MPEG-1.
Годом позже разработчики, желая повысить популярность формата, представили для свободного доступа первые программы, позволявшие работать с MP3.
1994 год стал знаменательным для формата: появился первый Windows декодер, позволявший воспроизводить файлы нового формата в режиме реального времени, что было немалым достижением, учитывая мощность тогдашних "персоналок".
В июле 1995 года впервые употребляется расширение MP3 для обозначения файлов нового типа.

Изначально возможности по созданию MP3 файлов были невысокие. Чаще всего в распоряжении пользователей ПК оказывались медленные кодеки на базе кода ISO, создававшие файлы далеко не идеального качества, ведь потратить несколько сот долларов на покупку качественного кодировщика от FhG, а уж тем более аппаратного кодека было не по карману большинству пользователей. Тем не менее, ISO код совершенствовался различными разработчиками, появлялись первые альтернативы вроде Blade или LAME. Вскоре "халява" закончилась и уже в 1998 году институт Фраунгофера потребовал от разработчиков кодеров покупки лицензии на использования патентованных алгоритмов.В том же 1998 году пара студентов использовала популярный MP3 декодер AMP в своей программе Winamp, а сама программа была представлена общественности, прочно закрепив за собой звание самого известного MP3 плеера.
В 1999 году Nullsoft, компания-разработчик Winamp была куплена AOL за 100 миллионов долларов. В том же году появляется Napster - одна из первых программ для обмена музыкальными файлами через Интернет.
2000 год. Джастин (Justin Frankel), "отец" Winamp, втайне от AOL выпускает первый Gnutella клиент, позволявший создавать децентрализованные P2P сети. Вскоре в Сети появляется исходный код программы, порождая бум пиринговых сетей.

Вернуться к "Содержанию"

Кодеки 

Несмотря на то, что число существующих MP3 кодеров достаточно велико, наибольшее распространение получили три типа "движков".
ISO кодеки. Наиболее известным из подобных кодировщиков является Blade, основанный на слегка доработанном коде ISO. Кодировщик создавался энтузиастом и является некоммерческой разработкой. Качество работы Blade можно назвать удовлетворительным: в тени более совершенных собратьев он выглядит далеко не лучшим образом, хотя на момент своего появления мог считаться одним из лучших доступных кодеров. На данный момент разработка Blade полностью прекращена, хотя сам кодировщик еще можно встретить на немногих soft архивах (http://www.rjamorim.com/rrw/blade.html).
Движок Xing, активно продвигаемый сейчас компанией Real Networks (www.real.com), отличается от конкурентов значительно более высокой скоростью работы. Подобные результаты достигаются за счет значительного снижения качества создаваемых файлов, в результате чего Xing надолго приобрел репутацию худшего MP3 кодировщика. Появление обновленных версий кодека с поддержкой VBR и значительным увеличением качества кодирования не решило проблемы, закрепив за Xing репутацию аутсайдера. К чести специалистов Real Networks в последние годы ситуация значительно улучшилась (http://www.rjamorim.com/test/mp3-128/results.html), а новые версии кодировщика позволяют добиться вполне приличного качества звука.
Кодировщиков FhG несколько. Они могут значительно отличаться как по скорости работы, так и по качеству получаемых файлов. И если первые версии кодеров (l3enc) не пользовались большой популярностью, то более совершенные движки, используемые в Music Match Jukebox, Windows Media Player и многих других известных программах получили широкое распространение. Немалую популярность еще несколько лет назад имел ACM кодек Radium - хакнутая и слегка доработанная версия официального кодера от FhG. В целом качество современных кодировщиков FhG (за небольшими исключениями вроде используемого когда-то в MusicMatch кодера, начисто вырезавшего все частоты выше 16 кГц вне зависимости от параметров кодирования) можно охарактеризовать как очень хорошее. Реальную конкуренцию сейчас им составляют лишь кодеки на базе LAME.
LAME (www.mp3-tech.org), изначально основанный на ISO коде, вскоре был полностью переписан и приобрел статус самостоятельного кодека. Название LAME (Lame Ain't an MP3 Encoder) полностью соответствует статусу проекта: он позиционируется разработчиками в качестве средства изучения возможностей формата MP3, а не кодировщика. За счет этого создателям кодека удалось избавиться от необходимости платить патентные отчисления. Фактически использование скомпилированных версий кодека является не совсем законным в некоторых странах, что, тем не менее, не мешает огромному числу разработчиков встраивать их в свои программы. На сегодняшний день LAME наряду с кодерами FhG является одним из явных лидеров по качеству получаемых файлов, а по некоторым параметрам (реализация VBR и Joint Stereo) даже превосходит конкурента. От многих других кодеков LAME отличается использованием пресетов - наборов предопределенных команд, позволяющих в значительной степени увеличивать качество получаемых файлов.
Технологии
Dual Mono, Intensity Stereo, Mid-Side Stereo, Joint Stereo. За страшными словами скрываются различные алгоритмы кодирования стереосигнала. При использовании Dual Mono сигналы правого и левого каналов сжимаются отдельно. Intensity Stereo, иногда применяемый при кодировании музыки на низких битрейтах, позволяет сохранить битрейт за счет замещения сигнала двух каналов моноканальным с указанием направления. Из-за значительных ограничений не используется при кодировании музыки с большим битрейтом. Mid-Side Stereo также позволяет сохранить место за счет вычисления закономерностей между каналами, однако в отличие от Intensity Stereo, данный процесс происходит без потери информации.
Кодирование по способу Хаффмана (Huffman coding). Один из простейших способов уменьшения избыточной информации. Подобное кодирование обеспечивает сжатие информации без потерь и применяется во многих loseless архиваторах.
CBR, VBR, ABR. Различные алгоритмы кодирования сигнала. При использовании CBR (constant bitrate, постоянный битрейт) пользователь задает желаемый битрейт получаемого файла, который не меняется в процессе кодирования. При этом кодек старается добиться максимально возможного при заданном битрейте качества. При использовании VBR (variable bitrate, переменный битрейт) программе передается параметр, указывающий желаемый уровень качества. Кодировщик же старается использовать для получения заданного качества минимально возможный битрейт, динамически меняя ширину потока данных в зависимости от сложности материала. При этом средний битрейт двух разных композиций может значительно отличаться. Качество одного и того же файла при одинаковом среднем битрейте будет лучше в случае использования VBR. При ABR (average bitrate, средний битрейт) кодировании кодек изменяет заданный битрейт в пределах определенного значения, позволяя добиться увеличения качества звучания, сохраняя предсказуемый средний битрейт. По своей эффективности находится посередине между CBR и VBR.

Вернуться к "Содержанию"

Байки и заблуждения 

Количество баек, каcающихся качества MP3 файлов настолько велико, что многие из них вообще не подвергаются никакому сомнению. Однако, проведя пару собственных экспериментов вы можете убедиться, что на практике дела обстоят вовсе не так, как кажется. Попробуем проанализировать некоторые типичные ошибки.
"MP3 файл с битрейтом 128 кбит/с обеспечивает такое же качество, как у компакт-диска".
Не говоря уже о том, что точное определение "качества компакт диска" вам вряд ли кто-то сумеет дать (обычно под этим словосочетанием понимается аудио сигнал формата 44.1 кГц, 16 бит, стерео), посмеем возразить. Разница между таким MP3 файлом и WAV файлом, полученным с исходного "компакта" не только есть, но и заметна на слух. Для того, чтобы наглядно почувствовать, что мы теряем, попробуйте провести слепое (http://www.itu.int/rec/recommendation.asp?type=items&lang=e&parent=R-REC-BS.1116-1-199710-I) сравнение исходного и кодированного файлов на любом аудиоматериале. Для наглядности лучше взять достаточно насыщенную рок композицию, или один из "проблемных" сэмплов (например, аплодисменты). Если у вас нет проблем со слухом, разница будет очевидной: при использовании постоянного битрейта 128 кбит/с появление различных искажений и артефактов - не редкость даже при использовании высококачественных кодировщиков.
"MP3 файлы с битрейтом 128кбит/с - отстой".
Лучше всего проверить это утверждение опять же в слепом тестировании. В качестве кодека попробуйте LAME 3.96 с параметрами кодирования "--preset 128". Разница будет заметной далеко не на любом тестовом фрагменте. Как показывают результаты независимых тестов (http://www.rjamorim.com/test/), при использовании качественного кодера даже тренированные уши не сразу определяют разницу между MP3 файлом и оригиналом. Разница, конечно, есть, но современные кодеки позволяют уже на 128 кбит/с добиться вполне приличного звучания.
"MP3 на 192 кбит/с - точно "компакт-диск""
При использовании хорошего кодека разница обычно неочевидна, но вполне выявляется в ABX тесте. И если для простейших композиций (например, используется только фортепиано) этого битрейта вполне хватит, то для сжатия достаточно сложных (с точки зрения кодека, конечно) треков, содержащих звуки акустической гитары, насыщенные партии электрогитар и перкуссии постоянного битрейта 192 кбит/с может оказаться маловато.
"Единственная возможность получить нормальное качество в MP3 - жать музыку на 256/320 кбит/с"
Использование кодека LAME 3.90.3 с параметрами "alt-preset standard" позволит в подавляющем большинстве случаев получить практически идеальное (на слух) качество при битрейтах в диапазоне 180-230кбит/с.
"MP3 файлы при любом битрейте отличаются на слух от оригинала".
Это вряд ли. При использовании современных кодеков и пресетов определить разницу между MP3 и исходным файлом на слух можно лишь в редких случаях на ограниченном наборе аудио фрагментов. Как правило, разница чудесным образом пропадает при переходе на слепое тестирование.

Вернуться к "Содержанию"

Настоящее 

В настоящее время MP3 переживает очередной бум. Количество файлов этого формата, скопившихся на винчестерах пользователей и на просторах Сети огромно. Все большую популярность приобретают аппаратные проигрыватели. И если еще несколько лет назад они казались чем-то экзотическим, то сейчас, когда возможностью воспроизведения MP3 файлов могут похвастаться сотни и тысячи моделей аудиоплейеров, музыкальных центров, DVD проигрывателей, сотовых телефонов или автомагнитол, MP3 становится настолько же привычным сочетанием, как и CD. Времена, когда восьмимегабайтный MP3 плеер стоил огромных денег, давно забыты: сегодня можно купить неплохой MP3/CD проигрыватель за $50, что находится в диапазоне цен обычных CD-плееров.
Технологии сжатия также не стоят на месте: несмотря на появление достаточно большого числа альтернативных форматов, MP3 все еще конкурентоспособен, а кодеки последнего поколения (LAME) позволяют сжимать музыку до классических "1:10" без значительных искажений.

Вернуться к "Содержанию"

Будущее 

Конечно, у MP3 есть масса достоинств, описанных выше, но он и не лишен недостатков, которым менее подвержены другие кодеки. Это неоптимальное сжатие стерео сигнала, плохая работа с высокими частотами, трудности с созданием gapless (воспроизводимых без пауз на конце) файлов, неоптимальная работа в VBR режиме, отсутствие поддержки многоканального звука (FhG и здесь предлагает нестандартизированное решение, которое мы, ввиду несерьезности самой затеи, рассматривать не будем) и многое другое.
Уже достаточно долго не утихает борьба за возможность занять почетное место MP3. Претендентов немало: это и раскручиваемый Microsoft кодек WMA и "бесплатный" OGG Vorbis и еще с полдюжины менее известных форматов, часть которых успела сгинуть, так и не дождавшись триумфа. И все же достойный преемник у MP3 есть. AAC (Advanced Audio Coding), разработанный в рамках MPEG-2/MPEG-4 призван заменить в будущем морально устаревший MP3. C момента принятия спецификации прошло уже несколько лет, однако активно развиваться формат начал лишь сейчас, во многом благодаря усилиям Apple, активно продвигающей свой MP3/AAC плеер iPod и нтернет-сервис iTunes.
Потенциально AAC способен не только стать достойной заменой MP3, но и серьезно потеснить другие современные форматы аудио компрессии.
Растущая популярность формата обеспечивается поддержкой со стороны крупнейших компаний (Apple, Dolby и т.д.), так что за его судьбу можно не беспокоиться. Воспроизведение и создание AAC файлов в Winamp 5 возможно даже без установки дополнительных компонентов, поддержка воспроизведения AAC появилась не только в портативных плейерах, но и некоторых моделях мобильных телефонов (последние модели телефонов Nokia).
На данный момент можно выделить несколько активно развивающихся AAC кодеков: Apple Quick Time (iTunes) являющийся на сегодняшний день наиболее совершенным CBR/ABR AAC кодировщиком (http://www.rjamorim.com/test/aac128test/results.html), Nero AAC, показывающий, пожалуй, наиболее качественную работу в режиме VBR, недавно появившийся Compaact и бесплатный FAAC (free advanced audio coder). Помимо названных выше кодировщиков немалую популярность начинают приобретать кодеки Dolby, лицензируемые различными компаниями для своих программных продуктов.

Вернуться к "Содержанию"

MP3Pro и SBR 

Одним из наиболее заметных недостатков MP3 является невозможность создания файлов приемлемого качества при использовании битрейтов ниже 128 кбит/с. Ведь уже при понижении этого значения до 96 кбит/с становятся слышны артефакты, появляются сильные искажения в области высоких частот, а звук зачастую приобретает "металлическую" окраску.
Значительную часть этих проблем позволяет решить использование технологии SBR (spectral band replication), разработанной Coding Technologies (www.codingtechnologies.com). При работе SBR кодека MP3 файл разбивается на две части: "низкочастотная" составляющая (обычно < 8кГц) кодируется в обычный MP3 поток, а находящиеся выше частоты обрабатываются кодеком отдельно, ужимаясь в крохотный объем. При воспроизведении файла плеер декодирует MP3 часть, а из дополнительного (pro) потока воссоздает высокочастотный сигнал, достаточно хорошо (на слух) повторяющий исходный.
Именно так устроен MP3pro, формат, разработанный совместно институтом Фраунхофера и Coding Technologies. Используя MP3pro кодек пользователь может наслаждаться звуком вполне приемлемого качества при минимальном размере файлов. К сожалению, в отличие от MP3 MP3pro не является стандартом, а возможности создания и воспроизведения MP3pro файлов даже сейчас очень скудные.
Конечно, применение технологии SBR вовсе не ограничивается одним MP3. В прошлом году AAC+SBR (также именуемый AAC High Efficiency и AAC Plus) стал частью спецификации AAC, значительно повысив эффективность работы AAC кодека при работе с битрейтами ниже 128 кбит/с.

Вернуться к "Содержанию"

Музыка в сети 

Вопрос "где взять музыку в Интернет" волнует многих начинающих пользователей Сети. К сожалению, однозначного ответа на него дать нельзя. Если ваш бюджет позволяет выкладывать $1-2 за нужную композицию (что все же выгоднее покупки фирменного CD), то вам следует отправляться прямиком в один из популярных сервисов продажи музыки онлайн. Для начала уже упомянутых в статье iTunes, Musicmatch и Napster должно хватить.
Если же денег поменьше, можно воспользоваться одним из российских серверов, например, mp3search.ru или allofmp3.com (последний позволяет скачивать музыку практически в любом заданном формате). Легальность данных сервисов может показаться спорной, однако они являются хорошим выбором по критерию качество/цена.
В конце концов, качественную музыку можно найти и на бесплатных серверах вроде zvuki.ru. Часто музыка в приемлемом качестве лежит и на официальных сайтах лейблов и групп. Например, загляните вот на эту страничку: www.archive.org/audio/netlabels.php, отображающую список Интернет лейблов, бесплатно распространяющих композиции своих исполнителей.

Вернуться к "Содержанию"

Чем жать 

Выбор кодека и параметров сжатия, конечно же, зависит от ваших собственных предпочтений, однако попробуем дать несколько рекомендаций, основанных на нашем собственном опыте и опыте участников форума www.hydrogenaudio.org .
Вам потребуется бесплатный кодек LAME версии 3.90.3, найти который можно на сайте www.rarewares.org. Эта версия кодера является хорошо проверенной временем, хотя скорость ее работы невысока. В качестве альтернативы можно воспользоваться более быстрым кодеком LAME 3.96, заменяя параметр "--alt-preset" на "--preset".
Используйте приведенные здесь параметры командной строки кодировщика (в консоль вводим "LAME приведенная_командная_строка имя_кодируемого_файла"), чтобы получить максимальное качество при данном битрейте:
Для получения максимально возможного для MP3 качества:
--alt-preset insane. Сжатие происходит с постоянным битрейтом 320 кбит/с, - больший попросту не предусмотрен стандартом.
Для получения максимально возможного качества при минимальном битрейте:
--alt-preset standard. В подавляющем большинстве случаев качество звучания будет таким же, как и с использованием пресета insane, однако битрейт будет заметно ниже: обычно в диапазоне от 170 до 240 кбит/с в зависимости от композиции. Учтите, что скорость кодирования будет низкой (1-4X) даже на современных компьютерах. Компромиссным (возможно небольшое увеличение битрейта или падение качества) вариантом является использование параметра --alt-preset fast standard.
Для использования в переносных плеерах:
--alt-preset standard -Y. При этом файл наверняка лишится всех частот выше 16 килогерц, зато оставшаяся часть диапазона будет передана прекрасно. Альтернативой является --preset medium (улучшенный к версии 3.96), также создающий файлы в VBR режиме с ориентировочным битрейтом 170 кбит/с.
Для кодирования с постоянным битрейтом:
--alt-preset cbr bitrate, где вместо слова bitrate указано желаемое значение битрейта в кбит/с.
Для сжатия в режиме ABR:
--alt-preset bitrate, вместо слова bitrate указано желаемое значение битрейта в кбит/с.
Если вы плохо ладите с командной строкой, выходом из положения может быть использование фронтендов (графических оболочек), значительно облегчающих работу с кодеком. Назовем лишь наиболее популярные: LameDropXP, WinLAME, LAME плагин к Foobar 2000, Razorlame. И не забудьте убедиться, что exe и dll файлы кодера находятся в одной из папок, прописанных в PATH (например, папке Windows).

Вернуться к "Содержанию"

Что есть MPEG 

MPEG (Moving Picture Experts Group) является Рабочей Группой 11 "Кодирование Движущихся Изображений и Аудио" Подкомитета 29 "Кодирование аудио, изображений, мультимедиа и гипермедиа информации" Объединенного Технического Комитета 1 "Информационные технологии" Международной Организации Стандартизации (ISO) и Междунарудной Электротехнической Комиссии (IEC). Запомнили? Попробуем сказать проще...
Эта группа экспертов, основанная в 1988 году, занимается разработкой международных стандартов компрессии, декодирования, обработки и представления движущихся изображений, звука и их комбинаций. В частности, MPEG определяет принципы представления данных таким образом, что алгоритмы кодирования могут в будущем совершенствоваться.
Кстати, на сегодняшний день стандартов MPEG всего пять: MPEG-1, MPEG-2, MPEG-4, MPEG-7 и MPEG-21. Из них хоть какое-то отношение к кодированию музыки и видео имеют лишь первые три (www.chiariglione.org/leonardo/standards/mpeg/standards.htm).

Вернуться к "Содержанию"

Что такое Layer 

MPEG-1 имеет три слоя (Layer), описывающих различные способы кодирования сигнала. Наиболее простым и наименее эффективным является Layer I, с типичным битрейтом 384кбит/с для кодирования стерео сигнала. Layer II позволяет производить более эффективное сжатие за счет использования алгоритмов повышенной сложности и обычно использует потоки данных диапазона 256-192 кбит/с. Однако наибольшую популярность приобрел Layer III, позволяющий кодировать стерео сигнал с битрейтом 128 кбит/с без значительного снижения качества.
Несмотря на кажущуюся бесполезность и MPEG Layer I и Layer II имеют свои области применения. Например, Layer I используется в цифровых компакт-кассетах, а layer II получил распространение в цифровом радио и видеодисках (Video CD).

Вернуться к "Содержанию"

MP3 или MPEG-3 

Нередко можно услышать мнение о том, что MP3 является синонимом MPEG-3. Тем не менее, это не так. MPEG-3 разрабатывался для цифрового телевидения высокой четкости HDTV, однако в связи с небольшой эффективностью был полностью замещен стандартом MPEG-2 (используемом, в частности, в DVD). Фактически MP3 это MPEG-1 (реже - MPEG-2), а тройка в расширении указывает лишь на номер слоя, Layer.
Совершенно по-другому выглядит ситуация с MP4. Дело в том, что контейнер MP4 (иногда MP4 аудиофайлы имеют расширение M4A), часто используемый для хранения музыки формата AAC (MPEG-2/MPEG-4 Advanced Audio Coding), нередко действительно содержит MPEG-4 файлы со сжатым видео или звуком. Кроме того, внутри контейнера MP4 может находиться и MP3 файл.