Вернуться   Форум > Университет > Аудиораздел > Музыка
Регистрация Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2024, 11:46   #1
MoyUspeh
Заблокирован
Медаль пользователю. ЗОЛОТО Завсегдатай
Аватар для MoyUspeh
Регистрация: 18.03.2013
Сообщения: 385
Репутация: 8
Ликбез: MP3 и Lossy Clipping

В этой статье я рассмотрю ГЛАВНУЮ проблему практически всех MP3, независимо от кодировщика, битрейта и прочих "плюшек". Начнем по-порядку.

1. Пример на файле из раздачи.

Для наглядности возьмем трек из одной популярной раздачи MP3 от релизера "1234567890" - https://kinozal.tv/details.php?id=1832778 (38 трек). Откроем его в редакторе Sound Forge - он имеет обычный 16-битный целочисленный декодер mp3, который схож по своим характеристикам 90% декодеров всех устройств, способеных читать этот формат. Вот что мы получили. Как видно - жесткое ограничение сигнала на отметке 0 дБ, так как декодер такого типа "не умеет" обрабатывать значения сигнала выше 0 дБ из-за ограниченности 16 битного целочисленного формата звука. Теперь откроем этот же трек в другом "продвинутом" редакторе iZotope RX10 - он имеет более качественный декодер MP3 формата - 32 битный с плавающей запятой (32 bit float), особенность которого - возможность обрабатывать любые значения амплитуды, от отрицательных до положительных, то есть более 0 дБ. Вот что мы получили. Как видно - сигнал звука теперь заходит за пределы существенно выше значения 0 дБ, для наглядности насколько я сделал следующий скриншот. Как видно по изображению - весь сигнал выше отметки 0 дБ будет срезан в "обычном" 16 битном декодере MP3, как в примере с Sound Forge, что приводит к сильным нелинейным искажениям клиппировки (на слух похоже на хрип). Вот что говорит нам статистика трека в iZotope RX10 - как видно пиковое значение амплитуды звука в этом файле +2.28 дБ(!!!), то есть при воспроизведении происходит клиппировка в 2.28 дБ! Откуда она взялась скажете вы, ведь исходный файл имел пиковую амплитуду не более 0 дБ (так как практически все исходники - целочисленные) - но об этом далее.

2. Источник проблемы.

Возьмем для наглядности звук квадратной формы частотой 100 Гц и амплитудой -3дБ и сожмем его в mp3, то после открытия этого файла получим следующее. Как видно кроме того, что произошли искажения сжатия, появились "выбросы" амплитуды выше -3 дБ аж до значений почти -1.5 дБ (!!!), то есть пиковое значение трека увеличилось на 1.5 дБ. А теперь представьте, что ваш трек записан с максимальным уровнем 0 дБ, тогда после сжатия вы получите пики +1.5 дБ, но так как простые декодеры не могут обрабатывать значения выше 0 дБ происходит клиппировка или срез звука на отметке 0 дБ (как в п.1 статьи), то есть искажения. Чтобы это предотвратить перед сжатием необходимо делать звук тише, а вот определить насколько и нужно многопроходное сжатие Level Optimization* с "попытками" подбора значения, чтобы на выходе не было искажений, но и не сделать слишком тихо.

3. Почему так происходит?

Рассмотрим более детально причину этих "выбросов" амплитуды.
Возьмем всё тот же звук квадратной формы частотой 100 Гц. Кто разбирается в теории сигнала, тот знает, что любой сигнал можно разложить на функции частот, при сложении сигналов которых мы получим наш исходный сигнал, это так называемое преобразование Фурье. Его адаптацию используют все современные кодеки сжатия звука, MP3 - не исключение. Так вот, для воссоздания этого "квадратного" сигнала, например, нужна сумма нечетных гармоник основной частоты (100 Гц) с весом обратно пропорциональным номеру гармоники, то есть упрощенно для понимания можно описать сигнал так
F = (100 Гц) + 1/3 (300 Гц) + 1/5 (500 Гц) + 1/7 (700 Гц) + ....
И так до бесконечности. То есть чем больше в данном случае мы "сложим" гармоник - тем точнее воссоздадим исходный звук. Все эти гармоники хорошо видно на спектрограмме этого сигнала, что и подтверждает вышесказанное. Вот тут и появляется источник этих Lossy-потерь: из-за ограниченной точности форматов сжатия, "вес" каждой частоты записывается неточно (например 1/7 или 1/13 не будут точно 1/7 или 1/13, а будут 0.143 или 0.077 например), также и с частотами звука, значения которых указываются с ограниченной точностью, отсюда и ошибки сигнала при декодировании и сложении. Это одна часть проблемы. Вторая заключается в том, что из-за особенностей кодирования звука MP3 (и других Lossy-форматов) происходит банальное отсечение "близких" по частоте сигналов (так называемая психоакустическая избыточность сигнала), что приводит к еще дополнительным потерям, причем их значение тем выше, чем меньше битрейт (то есть количество "сохраненных" частот). В совокупности этих потерь мы и получаем частотные искажения, которые видно на этом скриншоте.

4. Заключение.

Исходя из вышеописанного строго стоит вопрос о создании "правильных" MP3 без перегрузки сигнала выше 0 дБ, чтобы ВСЕ устройства воспроизведения могли декодировать качественный звук. Для этого я и создал программное обеспечение Level Optimization* чтобы решить эту проблему, и применяю его на всех своих Lossy-раздачах.

С уважением, Александр, MoyUspeh. Надеюсь Вам было интересно, а главное понятно :)
  Ответить с цитированием
Старый 11.04.2024, 12:19   #2
1234567890
Главный Кинооператор
Медаль пользователю. ЗОЛОТОМедаль автору. ЗОЛОТО Великий Гуру
Аватар для 1234567890
Регистрация: 15.03.2008
Адрес: Всеми́рная паути́на
Сообщения: 4,511
Репутация: 485
MoyUspeh сказал(a):
ГЛАВНУЮ проблему практически всех MP3
полагаю с этими проблемами в мп3-шках в сети уже как-то научились справляться
Cкрытый текст -
 
а что делать с проблемой вшиваемых в мп3 (буквально) плакатов? вот представь - многие плееры уже сейчас начинают виснуть

прежде чем публиковать новую отсебятину неплохо бы довести до ума начатое "Закрыты, чтобы полную панамку не напихали" (c)
  Ответить с цитированием
Старый 11.04.2024, 15:17   #3
ZenitFan
Главный Кинооператор
Медаль пользователю. ЗОЛОТОМедаль автору. СЕРЕБРО Завсегдатай
Аватар для ZenitFan
Регистрация: 04.10.2010
Адрес: Расчленинград
Сообщения: 590
Репутация: 171
MoyUspeh сказал(a):
Для наглядности возьмем трек из одной популярной раздачи MP3 от релизера "1234567890" - https://kinozal.tv/details.php?id=1832778 (38 трек).
Лично я рассчитывал что треки будут браться отсюда https://kinozal.tv/browse.php?s=Juda...=0&w=0&t=0&f=0 Ведь здесь и исходник есть (с которым можно сравнить) и целых три подопытных мп3шки.
  Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей - 0 , гостей - 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск



Часовой пояс GMT +3, время: 01:44.