Сравнительное тестирование различных версий LAME @ 320 kbps

Дата обновления: 22 Октября 2011
2011-10-22T14:44
Audiophile's Software

Предисловие

Данный тест является продолжением предыдущего Сравнительного тестирования современных lossy кодеров аудио на вносимые искажения (очень желательно ознакомиться). На этот раз я хотел бы остановиться на кодерах MP3, а точнее, на признанном лидере - LAME.

ВНИМАНИЕ: в результате последних проведенных мною слепых сравнений LAME 3.93.1 и 3.98.4 на битрейте 320 кбит/с я обнаружил некоторое преимущество в качестве кодирования у последней версии 3.99. В связи с этим я не рекомендую использование старых версий LAME.

Материал для теста

File Name : 06 Athena.wav
File Size : 127MB (133 231 436 bytes)
Duration : 6:17.640 (16653924 samples)
Sample Rate : 44100 Hz
Channels : 2
Bits Per Sample : 32
Bitrate : 2822 kbps
Codec : PCM (floating-point)
Encoding : lossless

Track Gain : -4.52 dB
Track Peak : 0.831764

Используемое ПО

foobar2000 - предварительная обработка, кодирование, декодирование, ReplayGain анализ, информация о файлах.
Core (2010-03-06 14:44:16)
foobar2000 core 1.0.1
foo_converter.dll (2010-03-06 14:42:12)
Converter 1.4
foo_rgscan.dll (2010-03-06 14:41:56)
ReplayGain Scanner 2.0.9
foo_verifier.dll (2009-10-05 10:39:20)
File Integrity Verifier 1.1

Sony Sound Forge 10a - вычитание сигналов.

Encoders:
LAME version 3.90.3 MMX (21.12.2001)
LAME version 3.93.1 MMX (01.12.2002)
LAME 32bits version 3.97 (24.09.2006)
LAME 32bits version 3.98.2 (22.09.2008)
LAME 32bits version 3.98.3 (27.02.2010)
LAME 32bits version 3.98.4 - modified to add float wav input support (22.03.2010)
LAME 32bits version 3.99 update 2 (18.10.2011)
Sony MPEG Layer 3 Encoder/Decoder 3.0.0.7379 (09.08.2009) from Sony Sound Forge 10a

Тестирование

1. Подбор параметров и кодирование

















2. Декодирование

Декодирование выполнялось с помощью foobar2000 в формат WAV PCM IEEE Float 32-bit.

Для всех версий LAME декодер дал на выходе точно такое же количество семплов, как и у исходного WAV. Для Sony получилось на 2315 семплов больше. Надеюсь, мне удастся совместить исходный и полученный сигналы при вычитании.

3. Вычитание сигналов

Ниже приведен список разностных сигналов.

4. Анализ искажений

Выполняем сканирование разностных сигналов с помощью ReplayGain сканера. Ниже приведен скриншот результатов сканирования. Напомню: большее значение усиления означает меньшую громкость разностных сигналов (для тех кто в танке: меньше громкость шумов - лучше качество).

Результат анализа разностных сигналов с помощью ReplayGain

Еще немного о параметрах

Теперь я хотел бы определиться с несколькими параметрами, которые люди порой очень неуместно используют. Думая, что эти параметры дадут улучшение качества, в итоге они его не получают или же качество даже ухудшается. Но люди всё равно довольны что у них "тру-стерео", а не какое-то там непонятное Joint и что у них полный частотный диапазон на спектрограмме, хотя сами они выше 19-20кГц уже ничего не слышат.

Ключ -k - выключение НЧ фильтра

Наверное я всё-таки в n-сотый раз повторю: человек после рождения слышит звуки примерно от 15 Гц до 20 кГц, с возрастом этот диапазон снижается, главным образом сверху - примерно до 16кГц.

Теперь о кодировании. Формат PCM с частотой дискретизации 44.1 кГц способен передавать гармоники с частотой до 22.05 кГц. Кодек LAME 3.93.1 в режиме максимального качества ограничивает частотный диапазон до 20.5 кГц. Вам не кажется что диапазон слышимых человеком частот сюда вполне вписывается?

Ладно, допустим у Вас сверхъестественные способности и Вы таки способны слышать звуки с частотой 20-22 кГц. Тогда Вы можете использовать ключ -k, при этом сохранив весь... стоп. Не тут то было. Дело в том, что LAME использует психоакустическую модель и учитывает порог слышимости человека на различных частотах. То есть если частоты выше 16кГц будут на очень низком уровне, они просто вырежутся. Более того - LAME отдает приоритет более слышимым частотам, и если при кодировании будет определен пассаж высокой сложности, на очень высокие частоты просто не хватит бит, и ключ -k тут не спасет.

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

"Настоящее стерео" (-m s) vs Joint Stereo

Здесь мне опять придется повторять слова разработчиков:

stereo
В этом режиме кодер не использует возможность корреляции между двумя каналами. Естественно, это может негативно сказаться на количестве битов отведенных обоим каналам. В этом режиме кодер предоставляет одному из каналов меньшее количество битов если тот содержит тишину или же является менее сложным.

joint stereo
В этом режиме кодер использует корреляцию между двумя каналами. Сигнал раскладывается на сумму ("mid"), рассчитанную как L+R, и разницу ("side"), рассчитанную как L-R, большее количество бит выделяется каналу mid.
Такой прием эффективно увеличивает пропускную способность для сигналов с небольшим разделением стерео и дает существенный прирост качества кодирования. В режиме joint stereo, кодер может переключаться между Left/Right и Mid/Side представлением для каждого фрейма в зависимости от его содержимого.

Добавлю, что таким образом, для фреймов имеющих минимальное различие между каналами будет выделяться чуть ли не двойной битрейт (!), для материала с независимым содержимым в двух каналах, результат не будет отличаться от обычного Stereo. И еще: если посмотреть историю версий LAME, можно увидеть, что когда-то существующие проблемы с режимом Joint устранены еще в версии 3.90. Надеюсь, Вы сможете сделать правильные выводы.


Таблица результатов

В таблицу я ко всему прочему включил результаты для LAME 3.93.1 с дополнительными ключами -k и -m s.

Codec

Bitrate, kbps

Track Peak

Track Gain, dB

Dif.Signal Peak

Dif.Signal Gain, dB

Original WAV

2822

0.831764

-4.52

LAME 3.93.1

320

0.918462

-4.51

0.178046

+21.13

LAME 3.93.1 (-k -m s)

320

0.923214

-4.51

0.169717

+21.09

LAME 3.90.3

320

0.949861

-4.51

0.188262

+20.70

LAME 3.99

320

0.900963

-4.52

0.166792

+20.64

LAME 3.98.4 float

320

0.904212

-4.51

0.137791

+19.90

LAME 3.98.3

320

0.904212

-4.51

0.137791

+19.90

LAME 3.98.2

320

0.890929

-4.51

0.149641

+19.53

LAME 3.97

320

0.983258

-4.51

0.151495

+18.96

Sony MP3 3.0.0.7379

320

0.922235

-4.44

0.196102

+14.96

Таблица обновляется по мере выхода новых версий кодеров. Обновление остальных скриншотов и отчетов не гарантируется.


LAME 3.93.1:
[СКАЧАТЬ] (0.22 МБ)


Информация от спонсора

ZODIKAM Video System: WiFi IP камеры видеонаблюдения. Узнайте Подробнее об ассортименте устройств в каталоге сайта.


Смотрите также:

Сравнительное тестирование современных lossy кодеров аудио на вносимые искажения
История версий LAME
 
   
Категория: Авторские статьи | Автор: | Добавил: Audiophile
Просмотров: 47357| Рейтинг: 5.0/5, голосов: 3
Комментариев: 32
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
1 2 »
0   Спам
[32] Arachnid (04 Сентября 2019 08:06)
Нет желания, провести новый тест, используя LAME 3.100 и iTunes?
0   Спам
[30] Rollinnn (19 Октября 2015 19:43)
Rollinnn
А откуда вообще изначально появилось мнение о том, что lame 3.93.1 лучше всех последующих версий?
0  
[31] Audiophile (20 Октября 2015 04:50)
Audiophile
Ну так там же есть ключ -k, отключающий ФНЧ. Спектры красивее)
0   Спам
[28] andrey29 (19 Марта 2015 03:21)
Ох как замучали уже этими вопросами. Постараюсь объяснить. Не путайте Joint Stereo старых версий Lame с новыми, они полностью отличаются друг от друга. Есть две разные психоакустические модели, это nspsytune и gpsycho.
gpsycho - старая никуда не годная модель которая не умеет толково работать с Joint Stereo, она портит звук, склеивает каналы между собой на сложных стерео семплах по этому в старых версиях начиная с битрейта 192 и выше используется режим Stereo чтобы оправдывать битрейт. Если вы принудительно в старых версиях поставите Joint Stereo, то что 160 кбит что 320 будут звучать одинаково убого.
nspsytune - совершенная модель используется в настоящее время. Отлично работает в режиме Joint Stereo, принудительное прописывание не приводит к багам которые я описал выше. Является режимом по умолчанию на всех битрейтах, на сложных стерео семплах грамотно без потери для качества переключает режимы mid-side и simple stereo.
ЗЫ - В любом из энкодеров будь то старый то новый указывайте только битрейт, не нужно мудрить с режимами, ведь разработчики лучше чем кто либо знают свое детище и не нужно мудрить с режимами стерео этим вы только испортите звук.
0   Спам
[27] andrey29 (19 Марта 2015 02:56)
Внесу поправку касательно версий 3.90.3 и 3.93.1
Вы прописали в этих старых версиях кодирование по пресету insane, не обратив внимание на то что при этом пресете енкодер начинает работать на тестовой на то время психоакустической модели nspsytune которая используется сейчас в современных версиях и достаточно развита.
И еще одно, нет такового Sony MP3 Encoder - Это обычный FhG (Fraunhofer)
0   Спам
[26] kvud (21 Августа 2013 21:53)
scratch
0   Спам
[24] rda (02 Августа 2013 12:50)
Какой версии использовался лейм 3 97. Есть от прежнего автора с пометкой stable, в нём действует параметр -k. Может его хвалят?
0   Спам
[25] Audiophile (04 Августа 2013 11:22)
Audiophile
Ну конечно не бета, стабильная версия. Ключ k не нужен, я же написал.
0   Спам
[23] kero (07 Октября 2012 21:04)
А что вы там обнаружили в 3.99, и это только в 3.99 или и дальше?
0   Спам
[22] neopunk88 (24 Февраля 2012 15:46)
"Даже спорить с вами не стану. Лень что-то доказывать."
я ж надеюсь вы человек разумный, и не стали бы доказывать, что саундфорджевский кодек, который режет на 16, является таким супер-пупер психооптимизированным)) и не уступает по СЛЫШИМОМУ качеству лэйму, который режет на 20.

Кстати, версии с 3.94 по 3.96 лэйм резали звук очень убого, тупо несколькими полосами после 16 до 20. с 3.97 вроде исправились, но до 3.93 ещё малость не дотягивает. Да, имхо glass

имелось ввиду wav как лосслесс в общем случае. А контейнером в широком смысле можно и мп3 и огг назвать, так как в них можно и фото, и текст запихать, и ещё хз что))
Ответ: OGG - это и есть контейнер.
0   Спам
[21] neopunk88 (24 Февраля 2012 05:50)
lame 3.93.1 лучший. А лучше его только ogg, aac и wav! music
Ответ: Забыли добавить "ИМХО". И прочитать примечание к этому тесту:
https://audiophilesoft.com/publ/software/encoders_test/4-1-0-53

А WAV - это контейнер.
0   Спам
[29] andrey29 (19 Марта 2015 03:28)
Ахаха мля, чем же это лучше чем новые версии?
Вы смотрите на спектры и считаете что в этом гарант звука?
Вы слишком глубоко заблуждаетесь, Ваш 3.93 никуда не годен.
Даже версии 3.94 3.95 и 3.96 обходят 3.93 Несмотря на то как вы написали имеют убогие срезы после 16 кГц.
Загнать вас на слепой тест и не поймете где оригинал а тем более где какая версия, это на битрейте 320 кбит, даю 100% что между версиями не найдете отличия.
0   Спам
[20] neopunk88 (24 Февраля 2012 05:47)
Аффтару респект! Годная статья.
Что я хотел сказать. По поводу спектров. Некоторые умники-"слухачи" говорят, что спектры фигня, нужно слушать ушами. Это может быть справедливо только для ~90% похожих спектров. Но если на одном спектре срез на 16 кГц, а на другом на 20, то только полный музыкальный кретин станет говорить про психоаудиальную или -акустическую оптимизацию и подобный бред. Грубый срез на 16-18 кГц не есть оптимизация, а тупо артефакт жесточайшего сжатия. Умники блин! Понакупили техники за 10 килобаксов и золотых кабелей, а мозгов - нуль:worship:
! Если звук говно, то спектр это сразу покажет! А уши докажут))
Ответ: Даже спорить с вами не стану. Лень что-то доказывать.
https://audiophilesoft.com/publ/my/delusions/11-1-0-80
0   Спам
[19] Niriada (07 Декабря 2011 22:57)
Возник еще один вопрос. В результате анализа ReplayGain (в вашей таблице) самое большее значение усиления получилось у Lame 3.93.1, получается и качество у него лучше? А последняя версия чуть ниже.
Ответ: Внимательно читайте предисловие! Здесь:
https://audiophilesoft.com/publ/software/encoders_test/4-1-0-53
0   Спам
[18] jonyboy (06 Декабря 2011 08:05)
И ещё одно.Если я правильно понял,то Вы рекомендуете всегда использовать новый lame для рипа? Он всегда лучше или не хуже конвертирует предыдущего?
Ответ: Да, он всегда лучше!
0   Спам
[17] jonyboy (06 Декабря 2011 07:58)
"Перед рипом сохраняю отредактированные треки в РСМ 16 bit,но слышал будто лучше в 24. Так ли это?"

Неточно выразился.Под "редактированием" имел ввиду понижение(повышение) при необходимости уровня громкости трека Wavlab'ом. Всегда сохранял в wave 16bit. А Ваш коллега в статье,какой точно не вспомю,рекомендовал сохранять в 24bit. Вот и возник этот вопрос.
Ответ: Как можно понизить громкость трека еще до того, как сохранишь его на жесткий диск (выполнишь рип)?
0   Спам
[16] Niriada (06 Декабря 2011 03:27)
Я имел ввиду какую версию использовать что бы на выходе mp3 получался самого высокого качества.
Ответ: Последнюю!
0   Спам
[15] Niriada (05 Декабря 2011 22:35)
Чет я так и не понял какая версия LAME делает конвертирует ближе к оригиналу?
Ответ: Дело в том, что понятие "ближе/дальше" в данном случае очень неопределенное. Ближе математически или психоакустически?
1-15 16-28