MPEG 1.0 Layer 3
Старый и всем известный формат. Стандартизован в 1992 году (IS 11172-3 и IS 13818-3) как часть MPEG -1. Несмотря на свою древность и некоторые технические огрехи формата, которые ограничивают качество и не могут быть скомпенсированы в кодеке, остается однозначно самым популярным. Бесплатный MP3 кодек LAME при этом является одним из самых качественных, уступая (при правильном использовании и в специальном VBR-режиме) лишь OggVorbis и Musepack на битрейтах около 130kbps. Очень плохо ведет себя на низких (<112kbps) битрейтах, уступая почти всем остальным. Один из технических недостатков формата MP3 не позволяет эффективно кодировать частоты выше 16кГц, у LAME это частично компенсируется мощным адаптивным фильтром высоких частот, у других MP3-кодеков - ничем. Формат имеет мощную поддержку практически на всех платформах и мультимедиа-устройствах, и вряд ли будет в ближайшее время чем-нибудь заменен или даже потеснен в задачах хранения музыки. Формат продвигается организацией Fraunhofer IIS. Рекомендуемые кодеки и их параметры для MP3: Кодек: L.A.M.E. A’int an MP3 Encoder (не обращайте внимание на название:) Другие MP3 кодеки и рядом не лежали. Особенно Blade и Xing... Версия: позже 3.90 (3.96.1 для пресета medium) Скачать Внимание! Не используйте alpha, beta и прочие тестовые версии! Кроме более низкого качества, в таких версиях попадаются критические ошибки, разрушающие gapless playback и даже производящие MP3 с нарушенной целостностью. Кодек имеет огромное количество параметров (VBR/CBR/ABR;JS/Stereo;-b/-B/....). Даже не думайте использовать их, если вы не написали собственный аудио кодек аналогичного уровня, сделаете только хуже, т.к. они должны использоваться ТОЛЬКО В ИССЛЕДОВАТЕЛЬСКИХ ЦЕЛЯХ! Все оптимальные значения параметров LAME, начиная с версии 3.90 определяются слепыми тестами усилиями множества людей и заложены в пресеты. Кроме того, только таким способом (через пресеты) корректно использовать новую высококачественную психоаккустическую модель npsytune, созданную основателем форума HydrogenAudio.org Дарином Моррисоном при непосредственном участии сотен членов сообщества этого форума с целью достижения максимального качества. Пресеты настоятельно рекомендуются к использованию создателями LAME. HELP lame.exe --preset help информация от создателей LAME о правильном использовании их кодека. APM lame.exe --preset medium lame.exe --preset fast medium () Для тех, у кого напряженка со свободным местом на винте. Трудноотличим от оригинала, оптимален по битрейту. APS и APfS lame.exe --alt-preset standard lame.exe --alt-preset fast standard (~190 kbit/s, обычно 180 ... 220) Неотличим от оригинала на большей части музыки для подавляющего большинства людей, оптимален по битрейту. Рекомендуется всем, тогда у вас (и тех, кому вы ее даете) никогда не возникнет претензий к качеству. Вторая командная строка – то же, но побыстрее, возможно, и ниже качеством. APE lame.exe --alt-preset extreme lame.exe --alt-preset fast extreme (~250 kbit/s, обычно 220 ... 270) Для людей с золотыми тренированными ушами, которые (люди, не уши:) на значительном количестве мелодий по методике слепых тестов отличают standard от оригинала, и их это отличие раздражает. (Прим. Volf: по качеству даже лучше insane, а по размеру меньше ;)) API lame.exe --alt-preset insane (320 kbit/s CBR) Максимальное качество, которое можно выжать из MP3 на до неприличия высоком битрейте. Непонятно, для кого он предназначен, хотя это следует из названия: insane=безрассудный. (Прим. Volf: как уже говорилось этот пресет дает далеко не максимальное качество) lame.exe --alt-preset [xxx] где [xxx] – желаемый битрейт Наилучшее качество при заданном среднем битрейте. ABR. Например, lame.exe --alt-preset 190 будет хуже lame.exe --alt-preset standard при (почти) том же битрейте, но и лучше любых других командных строк, дающих такой же битрейт. Используется на низких битрейтах от 32-:-160 Замечание. Если 128kbps для вас кажется достаточным и медведь на ухо наступил, имейте в виду, что слух можно при желании натренировать до того уровня, чтобы отличать standard на некоторых сэмплах (или это произойдет само при внимательном прослушивании большого количества низкачественного аудио). Штука в том, чтобы знать где искать эти отличия, какие типы искажений в сигнал вносят кодеры. Подробнее http://www.ff123.net/ Категорически не рекомендую это делать, после этого вам придется выкинуть вашу муз. коллекцию (если, конечно, вы не следовали советам, приведенным здесь, или качали музыку из интернета, большая часть которой кодирована пресловутым Xing’ом, или, много много хуже, BLADE’ом в постоянный битрейт). Только VBR190 в принципе может звучать как CBR320 (только в принципе, я не утверждаю, что это так и есть для всех людей). Лично я почти не отличаю Lame –alt-preset 128 от всего, что выше, и не хочу этого менять:) (однако во время написания я, используя эту методику, смог отличить --alt-preset cbr 160 от оригинала) |
Психоаккустика
Задача кодека-внести МАКСИМУМ искажений в исходный сигнал, чтобы минимизировать битрейт фрейма, но так, чтобы подавляющее число людей НЕ СЛЫШАЛИ разницы (или разница была несущественна). При этом кодированный сигнал может сколь угодно сильно отличаться от исходного ОБЪЕКТИВНО (см. графики, сонограммы, проч.) НО ПОСЛЕДНИЕ НЕ МОГУТ ЯВЛЯТЬСЯ И НЕ ЯВЛЯЮТСЯ КАКИМИ-ЛИБО, ДАЖЕ ОТДАЛЕННЫМИ, ПОКАЗАТЕЛЯМИ КАЧЕСТВА! Объективно, даже на 320kbps сигнал искажается достаточно сильно. Кто ратует за качество графиков, а не звука, тот пусть использует MP1 без психоаккустики или хитрый wavelet-алгоритм без той же психи (объективне качество в разы выше, но ВОСПРИНИМАЕМОЕ оставляет желать лучшего...) Крупные и не очень создатели кодеков для оптимизации качества используют только “слепые сравнительные тесты”, в крайнем случае специальные натренированные нейронные сети для удешевления процесса (команда тестеров стоит недешево) и ничто другое. --alt-preset standard --alt-preset medium FOREVER! --preset help Информация от создателей L.A.M.E. о правильном использовании их кодека Сравнение качества кодеков http://www.rjamorim.com/test/ Программа для сравнения качества на основе нейронной сети (никакого вареза, программа бесплатная) http://www.rarewares.org/files/others/eaqual.zip Кстати, кто не знает, MP3 как формат, имеет некоторые технические огрехи, которые ограничивают качество и не могут быть скомпенсированы в кодеке (проблема в спецификациях). Например, "Scalefactor band 21 problem" не позволяет всем MP3 кодекам эффективно сжимать частоты выше 16kHz. (подробнее на http://www.mp3-tech.org/content/?Mp3%20Limitations) Поскольку ухо человека, как правило, способно лишь различать присутствие/отсутствие таких частот (при достаточно большой их интенсивности) для lame был разработан сложный адаптивный алгоритм обрезания таких частот. На их корректное сохранение требуется слишком много бит, которые было бы разумнее тратить на частоты, отлично слышимые всеми. Если вы слышите даже тон в 21kHz это не значит, что вы сможите определить его наличие в музыке из-за эффектов маскировки. Психоакустика смотрит, где верхи маскируются низкими частотами и не слышимы, и, естественно, вырезает их, улучшая субъективное восприятие. А даже на 320kbps она ох как важна, т.к есть сэмплы, плохо звучащие даже на таком битрейте. Благодаря оттвиченной по самое не могу психоаккустике lame до сих пор держится на уровне (технически более совершенных) лучших AAC- кодеров. Психоакустика-мат. модель слуха человека, от ее проработки и тюнинга в наибольшей степени зависит качество получаемого звука. Именно она определяет, куда будут внесены искажения. Вырубая психоакустику, вы получите искажения где придется. С психоакустикой - там, где это будет меньше всего заметно. Возможно, сигнал с психоакустикой будет выглядеть ужаснее на графиках, но на слух сигнал с психой почти всегда буде лучше (А для чего ее в режиме пресетов столько лет начиная с версии 3.90 тестит куча людей - разработчиков и завсегдатаев hydrogenaudio.org c помощью слепых тестов?) Речь не идет о ПОЛНОМ вырезании верхов. Просто любые искажения в этой области много предпочтительней тк 1 Верхи по своей природе требуют больше информации для своего описания чем более низкие частоты (по теореме Котельникова частота дискретизации должна как минимум в 2 раза превышать частоту наивысшей гармоники), и урезав их немного мы сэкономим много бит, к-рые освободим или направим на кодиревание более низких частот. 2 Чувствительность уха к частотам >16 у всех людей на много порядков меньше (см. кривую слышимости), поэтому искажения верхов, например шум, урезание, восстановление из "Spectral Band Replication" потока сверхмалого битрейта намного сложнее заметить. Почему MP3Pro НАСТОЛЬКО лучше MP3, а HE-AAC соотв. AAC на одинаковом низком битрейте? Потому что ухо с трудом отличает сгенерированные по некоторым параметрам верхи от натуральных. Особенно это будет незаметно, если юзать SBR не от 10khz, как в MP3Pro, а с (15-18)khz и на более высоком битрейте. 3 Недостатки формата MP3 не позволяют эффективно сжимать сигнал с большим кол-вом верхов (Sb21, JS problems) 4 В большинстве случаев верхи полностью маскируются др. частотами. После достижения определенной стадии зрелости, когда в lame были разными людьми накиданы основные алгоритмы, исправлены глюки и стало все затруднительнее подобными способами увеличивать качество, встала задача оптимизации всех применяемых алгоритмов и параметров. Несмотря на многотомные сборники феноменов в восприятии звука, законы восприятия практически не изучены. Кроме того, имеется куча всяких технологий/способов кодирования. Каждая имеет свои параметры. Точно зарание предсказать последствия тех или иных изменений в кодеке практически невозможно, т.к. мы слишком мало знаем об воспринимающей системе. Что лучше, звук с обрезанием на 16kHz или 18kHz но с появлением булькающих артефактов? Потеря четкости или стереопанарамы? А к чему приведет смена алгоритма A на Б? Такие проблемы актуальны на низких битрейтах. В случае цели достижения неотличимости задача проще - подобрать такое сочетание технологий, алгоритмов и параметров, чтобы наша цель была достигнута. Но КАК это сделать точно не зная последствий своих действий? На помощь приходит метод научного тыка - делается некая оптимизация параметра (на основе известных данных о восприятии), с точки зрения программиста должная увеличить качество. Группа людей слепыми тестами выясняет, увеличивается ли в среднем по сэмплам качество. Если ухудшений больше, чем улучшений, изменение бракуется. После оптимизации другого параметра вполне может оказаться, что первый оптимизируемый уже принимает не оптимальное значение. Поэтому после каждых серьезных изменений (новая версия или серьезный багфикс) необходимо все начинать заново. Мы рассматриваем человека, слушающего музыку, как "черный ящик", на вход подается исходный и кодированный сигнал,- на выходе - различаются или нет. Поэтому оптимизация высоких битрейтов проще при наличии группы хороших тестеров. Даннай способ применяется и в современных видео кодеках (XViD), т.к. кол-во опций и возможностей превышает разумные пределы, а восприятие движущихся изображений хоть и проще, но все равно достаточно сложно. Таким образом, настройку кодека должен производить человек, хорошо знакомый со свойствами применяемых алгоритмов, знать наизусть как можно больше феноменов восприятия, знать особенности и ограничения формата, для которого пишется кодек. И он должен иметь возможно большую группу тестеров. Усилиями Дарина Моррисона и сообщества HA.org подобным образом был оптимизировин lame. 1 Была разработана новая оттвиченная на уровне кода (через параметры командной строки не выражается) психоаккустическая модель npsytune (вместо gpsycho), показавшая лучшее качество. Она уменьшает (в VBR-режиме) артефакт "пре-эхо", заметный для некоторых людей даже на CBR320kbps на сэмплов типа castanets за счет оптимизации переключения коротких/длинных блоков. Некоторые говорят о невозможности достижения неотличимости от оригинала для MP3 на подобных сэмплах, так что нужно на соответствующих участках использовать ислючительно короткие блоки с максимальным битрейтом. (Заметте, для большинства людей, слышащих разницу, pre-echo гораздо отвратительнее, чем фильтрация верхов. А ведь есть "металлизация", "звучание как под водой" и т.д.). Как же дальше уменьшить битрейт? 2 Safe Joint Stereo. Часть npsytune, оптимизация JS для высоких битрейтов. Раньше приходилось использовать STEREO на высоких битрейтах, теперь же, в случае малой разницы каналов мы сохраняем часть бит на исправление возможных артефактов. SafeJS удалось довести до состояния, что теперь никто не отличает по качеству стереопанарамы от Pure Stereo. Сознательные искажения стереопанарамы возможны при существенной сложности сигнала, когда другие артефакты гораздо заметнее. 3. Был оттвичен VBR-режим, чтобы сэкономить биты в случаях (и на участках) малых отличий каналов. Пока что, для сохранения неотличимости из-за некоторого ее несовершенства сохраняется необходимость внутренних ограничений на минимальный битрейт. Была попытка в бэта-версиях lame 3.96 убрать ограничение совсем, но тесты показали деградацию качества на некоторых семплах. Но в этой версии VBR-режим оказался готов к его снижению со 128 до 96 kbps! Теперь (3.96.1) --preset standard имеет несколько меньший средний битрейт. Современная vbr-психоакустика несколько осторожна, так что в VBR-режимах еще остается некоторый резерв улучшений. CBR-режимы улучшать далее практически невозможно. К тому же, когда VBR показал много лучшие результаты, CBR остается развивать только потому, что у некоторых людей еще остались плееры, не поддерживающие VBR. В случае низких битрейтов (<160) VBR режим еще не настолько совершенен, поэтому пресеты более низких битрейтов используют консервативный ABR. 4 Фаза пре-процессинга: создается адаптивный фильтр высоких частот, там, где было показано, что они не слышны, или их сохранение приведет к еще большим артефактам в хорошо слышимой области они вырезаются (напр. уже перечисленные из пункта 1). Дальнейшие оптимизации фильтра могут позволить сделать плавающими (в зависимости от сигнала) границы фильтрации, которые в текущих версиях могут пока что варьироваться в узком диапазоне навроде (18671--19205). Это может сыкономить еще около 20kbps. И Т.Д Человек, не использующий пресеты, пользуется психоакустикой gpsycho, не позвергнутой столь экстремальным и длительным оптимизациям. GPSYCHO после появления пресетов (и npsytune) теперь серьезно не развивается. Большинство тестов проводится исключительно для пресетов. Работа по умолчанию в режиме пресетов рассматривалась, но была отвергнута из-за обратной совместимости. Любое изменение параметров кодирования старыми программами (случайное или специальное) может привести к существенной деградации качества. Возможно (я надеюсь), в 4 версии наконец-то сделают это, и запрячут все потенциально опасные параметры подальше. Человек, использующий собственную командную строку лишает себя более или менее оптимальных значений параметров, выбранных разработчиками. Используя же пресеты с какими-либо другими параметрами приводит к совершенно непредсказуемым результатам, к-рые могут оказаться много хуже даже стандартных для gpsycho. Например, можно подумать, почему пресеты используют -qval3 а не -qval0? Поскольку q0, q1 и q2 ТЩАТЕЛЬНО НЕ ТЕСТИРУЮТСЯ! Кажется, в одной из прошлых версий в q0 обнаружили критическую ошибку, из-за которой потенциально более качественный режим давал худшие результаты. Речь не идет даже о таких опциях, как JS/ lowpass frequency, изменение которых сразу сломает пресет, не рассчитанный на такое к нему отношение. По материалам постов mmsvm в тему 'Максимально возможное качество в Lame.. как ?' на ruforum.net http://www.ruforum.net/?topic=17765 |
дополню. сейчас alt-preset вынесены в preset, и большинство трейдеров в инете пользуют preset extreme. _________________ Ин дер гросен фамилие нихт клювен клац-клац |
вот и я про тоже |
Весьма познавательно. |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы |