Предисловие
Данный тест является продолжением предыдущего Сравнительного тестирования современных lossy кодеров аудио на вносимые искажения (очень желательно ознакомиться). На этот раз я хотел бы остановиться на кодерах MP3, а точнее, на признанном лидере - LAME.
ВНИМАНИЕ: в результате последних проведенных мною слепых сравнений LAME 3.93.1 и 3.98.4 на битрейте 320 кбит/с я обнаружил некоторое преимущество в качестве кодирования у последней версии 3.99. В связи с этим я не рекомендую использование старых версий LAME.
Материал для теста
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
Используемое ПО
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 сканера. Ниже приведен скриншот результатов сканирования. Напомню: большее значение усиления означает меньшую громкость разностных сигналов (для тех кто в танке: меньше громкость шумов - лучше качество).
Еще немного о параметрах
Теперь я хотел бы определиться с несколькими параметрами, которые люди порой очень неуместно используют. Думая, что эти параметры дадут улучшение качества, в итоге они его не получают или же качество даже ухудшается. Но люди всё равно довольны что у них "тру-стерео", а не какое-то там непонятное 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
Здесь мне опять придется повторять слова разработчиков:
В этом режиме кодер не использует возможность корреляции между двумя каналами. Естественно, это может негативно сказаться на количестве битов отведенных обоим каналам. В этом режиме кодер предоставляет одному из каналов меньшее количество битов если тот содержит тишину или же является менее сложным.
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 камеры видеонаблюдения. Узнайте Подробнее об ассортименте устройств в каталоге сайта.