08.04.2024, 15:32 | #1 |
Заблокирован
Завсегдатай
|
Ликбез: MP3-сжатие, LowPass и PSY
Всем не дает покоя моя технология с отключенным LowPass Free* фильтром. Немного картинок и объяснений.
Возьмем все тот же файл с исходником, как и в теме https://forum.kinozal.tv/showthread.php?p=5058045 С использованием моей технологии с отключенным LowPass фильтром мы получаем следующую спектрограмму трека. Теперь сожмем всё тот же исходник, используя самую новую версию Lame 3.100 с максимальным качеством, которое предлагает эта версия программы, в итоге мы получаем эту спектрограмму трека. Даже невооруженным взглядом видно, что высокие частоты начали резаться начиная с 16000 Гц - это работает так называемый PSY-фильтр и полностью отрезаны выше 20000 Гц - это заслуга LowPass фильтраций. Казалось бы, как многие думают, что "срез" высоких частот якобы улучшает качество обработки и сохранения частот в диапазоне ниже 16000 Гц. Но тут я вынужден вас тоже огорчить. Возьмем теперь и проанализируем "разницу" оригинального трека и сжатых в обоих вариантах, чтобы увидеть "реальное" положение дел в потерях. 1. Вот что мы получили при анализе дельта сигналов: без LowPass фильтра - как видно уровень потерь невелик и равномерен на всем диапазоне частот, без всплесков Lame 3.100 - уровень потерь превышает значения предыдущей спектрограммы практически на всем диапазоне частот, особенно велик выше 16000 Гц, что приводит к существенным искажениям звука и специфического "металлического" звона в звучании MP3. То есть мы не наблюдаем обещанного улучшения с точностью воссоздания звука в среднем диапазоне частот, как многие утверждают. 2. Анализ средней громкости потерь в первом и во втором случае. Как видно, общая "громкость" потерь в "новом" кодеке возросла аж на 3 дБ! Поэтому все Ваши попытки доказать, что мое кодирование некачественное - разбиваются в пух и прах. Почему так происходит - читаем ниже. Если вкратце - PSY-оптимизация разрабатывалась для улучшения качества звука MP3 на низких битрейтах, где уже "нет возможности" резать высокие частоты (смотрим тему "битрейт" https://forum.kinozal.tv/showthread.php?p=5058045), тогда чтобы сохранить из оставшегося диапазона 0 -16000 Гц самые чувствительные к потерям частоты и был придуман алгоритм PSY-оптимизации, где частоты разбиваются на дополнительные блоки и происходит их "весовой анализ", чтобы сохранить приемлимое качество звука. По спектрограммам потерь Lame 3.100 это четко видно в виде "ступенек" на диапазоне частот. Для высоких битрейтов такая технология - паразит и по большому счету только "портит" звук, но она, к сожалению не отключаемая в новых версиях LAME. |
27.04.2024, 18:25 | #2 |
Заблокирован
Завсегдатай
|
Небольшой постскриптум к теме.
Пример кодирования моей модифицированной версией LAME и самой новой 3.101 импульса в одну выборку (стандартный тест в аудиосреде). MOD - идеальное повторение "исходника", искажения полностью отсутствуют. 3.101: -q 0 -b 320 - падение амплитуды импульса (LowPass-фильтр в деле) плюс искажения PSY-оптимизации. 3.101: -q 0 -V 0 - искажения PSY-оптимизации стали еще выше из-за дополнительного уменьшения показателя "качества" для рамок VBR V0 (он неизменен при сжатии). Как видно по полученным результатам - существенное искажение изначального импульса в новых версиях кодировщика (привет хейтерам моей программы). |