Плюсы и минусы MP3 128 kbps


 

Сжатие аудио-данных — штука сложная. Ничего нельзя сказать заранее… Самый распространенный на сегодня формат — MPEG Layer3 с потоком 128 кбит/с — обеспечивает качество, которое на первый взгляд ничем не отличается от оригинала. Его так и называют легкомысленно — "CD-качество". Тем не менее, почти все знают, что многие люди воротят нос от такого "CD качества". Что же не так? Почему этого качества недостаточно? Очень сложный вопрос. Я сам противник сжатия в 128 кбит, так как результат порой получается дурацкий. Но у меня есть некоторое количество записей в 128 кбит, к которым я практически не могу придраться. Подходит ли поток 128 для кодирования того или иного материала — выясняется, к сожалению, только после многократного прослушивания результата. Заранее ничего сказать не удается — лично мне не известны признаки, которые позволили бы заранее определить удачность результата. Но часто потока 128 полностью хватает для качественного кодирования музыки.

Для кодирования в 128 кбит/с лучше всего использовать продукты от Fraunhofer — MP3 Producer 2.1 или более поздние. Кроме MP3enc 3.0 — в нем есть досадная ошибка, приводящая к очень плохому кодированию высоких частот. Версии выше 3.0 не страдают этим недостатком.

Прежде всего, немного общих слов. Восприятие звуковой картины человеком очень сильно зависит от симметричной передачи двух каналов (стерео). Разные искажения в разных каналах — гораздо хуже, чем одинаковые. Вообще говоря, обеспечение как можно более одинаковых характеристик звука в обоих каналах, но между тем разный материал (иначе какое же это стерео) — большая проблема звукозаписи, которая обычно недооценивается. Если для кодирования моно мы можем использовать 64 кбит/с, то для кодирования стерео в режиме просто двух каналов нам не хватит 64 кбит/с на канал — стерео результат будет звучать гораздо более неправильно, чем каждый канал в отдельности. В большинстве продуктов Fraunhofer вообще поставлен предел для моно в 64 кбит/с — и я еще не видел монофонической записи (чистой записи — без шумов или искажений), которая потребовала бы большего потока. Наши пристрастия к монофоническому звуку почему-то гораздо более слабы, чем к стереофоническому — видимо, он просто не воспринимается нами серьезно :) — с психоакустической точки зрения он представляет собой просто звук, исходящий из колонки, а не попытка полной передачи какой-то звуковой картины.

Попытка передачи стерео сигналов выдвигает гораздо более жесткие требования — в конце концов, вы когда-нибудь слышали про психоакустическую модель, которая учитывает маскирование одного канала другим? Также игнорируются некоторые обратные, скажем так, эффекты — например, некий стерео эффект, который рассчитан на оба канала сразу. Отдельно взятый левый канал маскирует сам в себе свою часть эффекта — мы не услышим его. Но наличие правого канала — второй части эффекта — изменяет наше восприятие левого канала: мы подсознательно больше ожидаем услышать левую часть эффекта, и это изменение нашей психоакустики тоже нужно учитывать. При слабом сжатии — 128 кбит на канал (итого 256 кбит) эти эффекты сходят на нет, поскольку каждый канал представлен достаточно полно чтобы с запасом перекрывать надобность в симметричности передачи, но для потоков около 64 кбит на канал это большая проблема — передача тонких нюансов совместного восприятия обоих каналов требует более точной передачи, чем это на сегодняшний день возможно в таких потоках.

Можно было, конечно, делать полноценную акустическую модель для двух каналов, но индустрия пошла по другому пути, который в общем то эквивалентен этому, но гораздо проще. Множество алгоритмов с общим названием Joint Stereо — частичное решение вышеописанных проблем. Большинство алгоритмов сводится к тому, что выделяется центральный канал и разностный канал — mid/side stereo. Центральный канал несет основную аудио информацию и представляет собой обычный моно канал, образованный из двух исходных каналов, а разностный — остальную информацию, позволяющую восстановить исходный стерео звук. Сама по себе эта операция полностью обратима — это просто другой способ представления двух каналов, с которым легче работать при сжатии стерео информации.

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

Как ни странно, но стереофоническое сжатие — самое слабое место результата сжатия в Layer3 128 кбит/с. Нельзя критиковать создателей формата — это всё таки меньшее возможное зло. Тонкая стереофоническая информация почти не воспринимается сознательно (если не брать во внимание явных вещей — грубое расположение инструментов в пространстве, искусственные эффекты и т.п.), поэтому качество стерео оценивается человеком в последнюю очередь. Обычно что-то всегда не дает добраться до этого: компьютерные колонки, например, вносят гораздо более существенные недостатки, и до таких тонкостей как неправильная передача пространственной информации дело просто не доходит.

Не стоит думать, что то, что не дает расслышать этот недостаток на компьютерной акустике — это то, что колонки расставлены на расстояние 1 метр, по бокам монитора, не создавая достаточной стереобазы. Дело даже не в этом.. Во первых если уж дело доходит до таких колонок, то человек сидит прямо перед ними — а это создает тот же эффект, что и колонки в углах комнаты, и даже больший: на нормальной акустике и хорошей громкости вы почти никогда не сможете выделить точное пространственное расположение звуков (речь идет не о звуковой картине, которую, наоборот, компьютерные колонки никогда не построят, а о непосредственном, сознательном, восприятии различия между каналами). Компьютерные колонки (в стандартном использовании) или наушники дают гораздо более четкое непосредственное восприятие стерео, чем обычная музыкальная акустика.

Прямо скажем — для непосредственного, информационно-познавательного восприятия звука, нам не очень требуется точная стерео информация. Непосредственно обнаружить разницу в этом аспекте между оригиналом и Layer3 128 кбит/с довольно сложно, хотя и можно. Нужен или большой опыт, или усиление интересующих эффектов. Самое простое, что можно сделать — виртуально разнести каналы дальше того, чем это возможно физически. Обычно именно этот эффект включается в дешевой компьютерной технике кнопочкой '3D Sound'. Или в бум-боксах, колонки которых не отделяются от корпуса устройства и разнесены слишком слабо для передачи красивого стерео естественным путем. Происходит переход пространственной информации в специфическую аудио информацию обоих каналов — увеличивается разница между каналами.

Я применил более сильный эффект, чем это обычно принято, чтобы лучше слышать разницу. Посмотрите как должно звучать — после кодирования в 256 кбит/с с двойным каналом (256_channels_wide.mp3, 172 кБ), и как звучит после кодирования в 128 кбит/с с joint stereo (128_channels_wide.mp3, 172 кБ).

Отступление. Оба эти файла — mp3 с 256 кбит/с, закодированные с помощью mp3 Producer 2.1. Не стоит путать: я, во первых, тестирую mp3, и во вторых — выкладываю результаты тестирования mp3 в mp3 ;). Всё было так: сначала я закодировал отрывок музыки в 128 и 256. Потом разжал эти файлы, применил обработку (экспандер стерео), сжал в 256 — лишь для экономии места — и выложил сюда.

Кстати говоря, только при 256 кбит/с в mp3 Producer 2.1 выключается joint stereo и включается dual channels — два независимых канала. Даже 192 кбит/с в Producer 2.1 — это какой-то вариант joint stereo, потому что мои примеры очень неправильно сжимались в меньший чем 256 кбит/с поток. Это основная причина того, что 'полное' качество начинается именно с 256 кбит/с — исторически сложилось так, что любой меньший поток в стандартных коммерческих продуктах от Fraunhofer (до 98 года) — это joint stereo, что в любом случае неприемлемо для полностью правильной передачи. Другие (или поздние) продукты, в принципе, позволяют произвольно выбирать — joint stereo или двойной канал — для любого потока.

О результатах

В оригинале (которому в данном случае точно соответствует 256 кбит/с) мы слышали звук с усиленным разностным каналом и ослабленным центральным. Очень хорошо было слышно реверберацию голоса, как и вообще всяческие искусственные реверберации и эхо — эти пространственные эффекты идут в основном в разностный канал. Если говорить конкретно, то в данном случае было 33% центрального канала и 300% разностного. Абсолютный эффект — 0% центрального канала — включается на аппаратуре типа музыкальных центров кнопочкой типа 'karaoke vocal fader', 'voice cancelation/remove' или подобными, смысл которых — убрать голос из фонограммы. Смысл операции в том, что голос обычно записан лишь на центральном канале — одинаковое присутствие в левом и правом канале. Убрав центральный канал, мы убираем голос (и много чего еще, поэтому эта функция в реальной жизни довольно бесполезна). Если у вас есть такая штука — можете сами послушать с ней свои mp3 — получается забавный детектор joint stereo.

На данном примере уже можно косвенно понять, что мы потеряли. Во первых, стало заметно хуже слышны все пространственные эффекты — они просто потерялись. Зато во вторых — бульканье — это результат перехода пространственной информации в звуковую. Чему соответствовало оно в пространстве — да просто всё время почти случайно перемещающимся компонентам звука, некому 'пространственному шуму', которого не было в исходной фонограмме (она выдерживает хоть полный переход пространственной информации в звуковую без появления посторонних эффектов). Известно, что такого типа искажения при кодировании в низкие потоки часто появляются и непосредственно, без всяких дополнительных обработок. Просто непосредственные звуковые искажения (которых почти всегда нет) воспринимаются сознательно и сразу, а стереофонические (которые при joint stereo есть всегда и в большом количестве) — лишь подсознательно и в процессе прослушивания в течении некоторого времени.

Это — основная причина, которая не дает звуку Layer3 128 кбит/с считаться полным CD качеством. Дело в том, что само по себе превращение стерео звука в моно дает сильные негативные эффекты — часто один и тот же звук повторяется в разных каналах с небольшой задержкой, что при смешении дает просто размытый во времени звук. Моно звук, сделанный из стерео звука, звучит гораздо хуже, чем исходно монофоническая запись. Разностный канал, в дополнении к центральному (смешанному моно каналу), дает полное обратное разделение на правый и левый, но частичное отсутствии разностного канала (недостаточное его кодирование) приносит не только недостаточную пространственную картину, но и эти неприятные эффекты смешивания стереофонического звука в один моно канал.

Когда все остальные препятствия устранены — аппаратура хорошая, тональная окраска и динамика неизменна (потока вполне хватает для кодирования центрального канала) — это всё равно останется. Но бывают фонограммы, записанные таким образом, что негативные эффекты сжатия на основе mid/side stereo не проявляются — и тогда 128 кбит/с дает то же полное качество, что и 256 кбит/с. Частный случай — фонограмма, может быть, и богатая в смысле стерео информации, но бедная звуковой информацией — например, медленная игра на фортепьяно. В таком случае для кодирования разностного канала выделяется поток вполне достаточный для передачи точной пространственной информации. Бывают и более трудно объяснимые случаи — активная, заполненная самыми разными инструментами аранжировка, тем не менее, звучит на 128 кбит/с очень хорошо — но такое встречается редко, может в одном случае из пяти-десяти. Однако встречается.

Собственно к звуку. Сложно выделить непосредственные дефекты звучания центрального канала в Layer3 128 кбит/с. Отсутствие передачи частот выше 16 кГц (они, кстати, очень редко, но всё же передаются) и некое уменьшение амплитуды совсем высоких — строго говоря само по себе — просто чушь. Человек за несколько минут полностью привыкает и не к таким тональным искажениям, это просто не может считаться сильными отрицательными факторами. Да, это искажения, но для восприятия 'полного качества' — далеко второстепенные. Со стороны центрального, непосредственно звукового, канала возможны неприятности другого рода — резкое ограничение доступного потока для кодирования этого канала, вызванное просто стечением обстоятельств — очень обильная пространственная информация, загруженный разнообразными звуками момент, частые неэффективные короткие блоки и как следствие всего этого — полностью израсходованный резервный буфер потока. Это случается, но относительно редко, и то — если такой факт имеет место, то обычно заметен на больших фрагментах непрерывно.

Показать дефекты такого рода в явном виде, чтобы заметил любой человек, очень сложно. Их легко заметит даже без обработки человек, который привык иметь дело со звуком, но для обычного некритичного слушателя это может показаться совершенно неотличимым от оригинала звучанием и каким-то абстрактным копанием в том, чего на самом деле нет.. И всё таки посмотрите пример. Для его выделения пришлось применить сильную обработку — очень сильно уменьшить содержание средних и высоких частот после декодирования. Убрав мешающие расслышать эти нюансы частоты мы, конечно, нарушаем работу модели кодирования, но это поможет лучше понять, что мы теряем. Итак — как должно звучать (256_bass.mp3, 172 кБ), и что получается после декодирования и обработки потока 128 кбит/с (128_bass.mp3, 172 кБ). Обратите внимание на заметную потерю непрерывности, плавности звучания баса, а также некоторые другие аномалии. Передачей низких частот в данном случае пожертвовали в пользу более высоких частот и пространственной информации.

Надо заметить, что работу акустической модели сжатия можно наблюдать (при внимательном изучении и имея некоторый опыт работы со звуком) и на 256 кбит/с, если применить более-менее сильный эквалайзер. Если сделать это и потом послушать, можно будет иногда (довольно часто) замечать неприятные эффекты (звон/бульканье). Более важно то, что звук после такой процедуры будет иметь неприятный, неровный характер, который очень сложно заметить сразу, но это будет заметно при длительном прослушивании. Разница между 128 и 256 лишь в том, что в потоке 128 кбит/с эти эффекты часто существуют и без всякой обработки. Их тоже сложно заметить сразу, но они есть — пример с басом дает некоторое представление о том, где их искать. Расслышать же это в высоких потоках (выше 256 кбит/с) без обработки просто нельзя. Эта проблема не касается высоких потоков, но есть то, что иногда (очень редко) не дает считать даже Layer3 — 256 кбит/с оригиналом — это временные параметры (подробнее будет в отдельной статье позже: см. MPEG Layer3 — 256 /ссылка на другую статью/).

Есть фонограммы, которых не касается и эта проблема. Проще всего перечислить факторы, которые, наоборот, приводят к появлению вышеописанных искажений. Если ни один из них не выполнен — имеется большой шанс на полностью успешное, в этом аспекте, кодирование в Layer3 — 128 кбит/с. Всё зависит, однако, от конкретного материала…

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

  • Просто шум — всякие посторонние звуки. Монотонный шум города, улицы, ресторана, т.п., на фоне которого происходит основное действие. Такого типа звуки дают очень обильный поток информации, которую следует кодировать, и алгоритм будет вынужден чем-то жертвовать в основном материале.
  • Неестественные сильные стереоэффекты. Это, скорее, относится к предыдущему пункту, но в любом случае — слишком большая часть потока идет на разностный канал, и кодирование центрального канала сильно ухудшается.
  • Сильные фазовые искажения, разные для разных каналов. В принципе, это относится скорее к недоработкам распространенных в данное время алгоритмов кодирования, чем к стандарту, но всё таки. Начинаются самые дикие искажения из-за полного срыва всего процесса. К таким искажениям исходной фонограммы в большинстве случаев приводит запись на кассетную технику и последующая оцифровка, особенно при проигрывании недорогими магнитофонами с некачественным реверсом. Головки стоят криво, лента мотается косо, и каналы слегка задерживаются один относительно другого.
  • Просто слишком перегруженная запись. Совсем грубо говоря — большой симфонический оркестр играет весь разом :). Обычно в результате сжатия в 128 кбит/с получается нечто такое совсем схематичное — камерные, медные, ударные, солист. Встречается, конечно, не только в классике.

Другой полюс — то, что обычно неплохо сжимается:

  • Сольный инструмент с относительно простым звуком — гитара, фортепьяно. Скрипка, например, имеет слишком наполненный спектр и звучит обычно не очень хорошо. От скрипки скрипача на самом деле зависит и само произведение. Неплохо также обычно сжимаются несколько инструментов — барды или КСП, например (инструмент + голос).
  • Качественная современного изготовления музыка. Имеется в виду не музыкальное качество, а качество звука — сведение, расположение инструментов, категорическое отсутствие сложных глобальных эффектов, украшающих звуков и вообще чего либо лишнего. В эту категорию, например, легко попадает вся современная попса, также некоторый рок, и вообще довольно много всего.
  • Агрессивная, 'электрогитарная' музыка. Ну чтобы как-то привести пример — ранняя Metallica (да и современная в общем то тоже). [помните, речь не о музыкальных стилях! просто пример.]

Стоит заметить, что на сжатие Layer3 почти не производят впечатления такие параметры, как наличие/отсутствие высоких частот, басов, глухая/звонкая окраска и т.д. Зависимость есть, но настолько слабая, что можно не принимать её в расчет.

К сожалению (или к счастью?), дело упирается в самого человека. Многие люди без подготовки и предварительного выделения слышат разницу между потоками около 128 кбит/с и оригиналом, многие же даже синтетические экстремальные примеры не воспринимают на слух как отличия. Первых не нужно ни в чем убеждать, вторых же такими примерами и не убедишь… Можно было бы просто сказать, что кому-то есть разница, а кому-то нет, если бы не одно но: в процессе слушания музыки со временем наше восприятие всё время улучшается. То, что казалось хорошим качеством вчера, завтра может таковым уже не показаться — так случается всегда. И если довольно бессмысленно (по крайней мере на мой взгляд) сжимать в 320 кбит/с по сравнению с 256 кбит/с — выигрыш уже не слишком важен, хотя и понятен, то хранить музыку хотя бы в 256 кбит/с всё же стоит.

[ Читайте также: Плюсы и минусы MP3 256 kbps ]

 

Дополнительно