11.04.2024, 11:46 | #1 |
Заблокирован
Завсегдатай
|
Ликбез: 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, 01.05.2024 в 09:18. |
11.04.2024, 15:17 | #3 | |
Главный Кинооператор
Завсегдатай
|
|
|
28.04.2024, 16:51 | #4 | |
Главный Кинооператор
Великий Гуру
|
(но её-то он без труда сможет найти в своих закромах) добавим ещё один вариант : >закинул на облако< кстати честный(!!!)... который предлагается (можно скачать) официально Код:
пы-сы.. что-то мне подсказывает не получим мы никакого ответа в этой теме.. кстати, в соседнем "ликбезе" предлагают слушать музыку спектрами.. есть уважаемые сайты, на которых за это сразу банят !!! Последний раз редактировалось 1234567890, 01.05.2024 в 09:17. |
|
01.05.2024, 04:28 | #5 |
Заблокирован
Завсегдатай
|
Немного продолжу первый свой пост.
Просили привести пример, как будет отображаться и декодироваться файл MP3, если его "правильно" сжимать. Вот, пример того, как работает мой софт Level Optimization* для коррекции уровня звука при сжатии, как видите - идеальная характеристика получаемого файла, ни единого семпла за пределами 0 дБ, то есть отсутствие дополнительных искажений MP3-клиппинга. В данном случае коррекция амплитуды при сжатии составила -0.87 дБ, программа четко её расчитала, этого хватило для того чтобы "выйти" за отметку ниже 0 дБ. Я взял за исходник тот же трек, только с FLAC-раздачи 1234567890 (https://kinozal.tv/details.php?id=1832778). Смотреть здесь или здесь и напомню, как было в MP3-файле у релизера 1234567890 - думаю комментарии излишни... Вот MediaInfo получившегося файла, кому интересно, там как раз можно увидеть в метаданных ReplayGain данные, подверждающие отсутствие уровня 0 дБ, а также уровень коррекции Level Optimization*, мой софт дополнительно прописывает эту информацию, кому интересно :) Примерно так, к слову, во всех моих раздачах MP3. General Complete name : 038 Days Like This.mp3 Format : MPEG Audio File size : 18.6 MiB Duration : 8 min 7 s Overall bit rate mode : Constant Overall bit rate : 320 kb/s Album replay gain : -6.64 dB Album replay gain peak : 1.000000 Album : 120 Best Slow Songs For Relax Album/Performer : VA Track name : Days Like This Track name/Position : 38 Track name/Total : 120 Performer : Danny Bryant's RedEyeBand & Walter Trout Genre : Blues Recorded date : 2021 Writing library : LAME MOD Comment : Release by 1234567890 Level Optimization* : by MoyUspeh Optimization Gain : -.87dB Audio Format : MPEG Audio Format version : Version 1 Format profile : Layer 3 Format settings : Joint stereo / MS Stereo Duration : 8 min 7 s Bit rate mode : Constant Bit rate : 320 kb/s Channel(s) : 2 channels Sampling rate : 44.1 kHz Frame rate : 38.281 FPS (1152 SPF) Compression mode : Lossy Replay gain : -11.06 dB Replay gain peak : 0.999880 Stream size : 18.6 MiB (100%) Writing library : LAME MOD p.s.: - А почему коррекция вышла всего лишь -0.87 дБ, тогда как у автора первой MP3 (от 1234567890) была перегрузка в 2.28 дБ? - скажете Вы - Ответ прост - более качественный кодировщик, который использую я. Если бы я сжимал, используя программу сжатия и настройки кодировщика, которые использовал 1234567890 - то по-видимому уровень коррекции был бы в пределах -2.0...-2.5 дБ, чтобы создать качественный MP3, из-за существенно бОльших потерь в кодировании. p.s.s. Вариант "исправлять" MP3 настройками плеера в разделе ReplayGain, выкрутив преампинг трека на +20 дБ о многом говорит (https://forum.kinozal.tv/showpost.ph...02&postcount=2) :) Думаю грамотные люди "оценили решение". Даже не вижу смысла комментировать что-то.... Последний раз редактировалось MoyUspeh, 01.05.2024 в 12:49. |
01.05.2024, 04:57 | #6 | |
Главный Кинооператор
Великий Гуру
|
4 (!!!?) подопытных mp3шки
тест-файлы в студию (!!!?)
эти два, плюс один этот.. плюс твой тобою удаленный
как *в твоем мире* называют тех, кто свои обещания не выполняет ? |
|
01.05.2024, 05:55 | #7 | |
Заблокирован
Завсегдатай
|
Так они ж на твоих раздачах, ссылки я указал, качай и смотри Ну а смысл мне заливать свою mp3, если я скрины и так кинул, а ты все равно скажешь "ниверю". Пожалуйста, моя mp3 из примера выше > https://fex.net/ru/s/lxoekz7 , остальное у тебя и так есть. Если сможешь - залей на "постоянку", у меня аккаунта файлообменника нет и разбираться желания нет. |
|
01.05.2024, 05:59 | #8 | |
Главный Кинооператор
Великий Гуру
|
|
|
01.05.2024, 06:22 | #9 | ||||
Главный Кинооператор
Великий Гуру
|
(20 гигов для тестовых файлов предостаточно)
|
||||
01.05.2024, 11:39 | #10 |
Главный Кинооператор
Душа Форума
|
Два файла в архиве FFMpeg.exe и бат-файл с инструкциями для пакетной работы в успешном авторстве будут представлены широкой публике?
|
01.05.2024, 12:56 | #11 | |
Заблокирован
Завсегдатай
|
а че ж ты второй пост подредактировал (было так), понял, что не прав и бегом исправлять? только открою тайну - ReplayGain не для этого создавался, чтоб ты там не "настраивал"... А "спасает" бракованные MP3 фубар (также как и AIMP) не ReplayGain'ом, а лишь тем, что в нем 32-float битный декодер MP3 и АРУ (автоматический регулятор уровня или компрессор сигнала, как угодно называйте, смысл один и тот же) по перегрузке, даже если в MP3 будет +30 дБ перегрузки, софт автоматически сделает компрессию сигнала перед выводом на звуковую карту на уровень -30 дБ. Этот же АРУ также "спасает" от ошибок с настройками цепи обработки сигнала, как в твоем случае, когда ты уровень трека задрал на +20 дБ, то программа в момент появления пика сигнала выше 0 дБ автоматически мгновенно снижает амплитуду, что воспринимается как сильная компрессия звука (не путать с сжатием с потерями). Такое же происходит при неправильной настройке эквалайзера например, но то уже другая тема. :) Только вот загвоздка, в обычных MP3-устройствах (плеерах, автомагнитолах, DVD-плеерах, муз.центрах и тд.) , где нет фубара или aimp (и соответственно АРУ), где стоит ОБЫЧНЫЙ простой 16-битный декодер (как например в SoundForge редакторе) - там MP3-трекам с перегрузом ничего не поможет, и будут жуткие клиппировки. Еще раз говорю "экспертам" - изучайте матчасть и софт. p.s. как я писал на другой ветке про MP3 - если у вас нет специального софта для кодирования - достаточно прописать дополнительный ключ в настройки LAME [--gain -2] для преампинга в -2 дБ для входящего сигнала на кодировщик (для старых версий LAME до v3.100 можно использовать ключ [--scale 0.8]), этой коррекции будет достаточно для 99% треков, чтобы в результате не получить брак с перегрузкой. Успешных кодирований! :) |
|
01.05.2024, 21:07 | #12 | ||
Главный Кинооператор
Великий Гуру
|
повторю и этот вопрос : как *в твоем мире* называют тех, кто свои обещания не выполняет ? а вот самое главное - учись отстаивать свою сомнительную раздачу не нытьем в юбки админов.. а делом тут помогли восстановить тобой удаленное - так что >"четвертый"< в тест-драйв *твоих сравнений* уже в/на твоем облаке |
||
01.05.2024, 22:17 | #13 | |
Главный Кинооператор
Великий Гуру
|
вот та самая(с которой и началось).. но рип с cd-диска(образом ) (полет нормальный и по блютуз в старых наушниках в Poweramp на смарте) |
|
03.05.2024, 17:35 | #14 |
Главный Кинооператор
Великий Гуру
|
кстати, теперь уже в диагнозе *подопечного* можно не сомневаться.. всплыл со своими чудо-программами проверки даже при наличии скрина уровня всего альбома пы-сы.. хотя если взять >сетевую< - ведь может найтись "прЫбор" которому не понравится.. вот оттуда альбом в мп3 на облаке https://mega.nz/folder/319lRYIa#TN6qwt9fWQfoDx2sWROnFQ а вот скрин уровня образа той самой сетевой мп3шки и парадокс - ни одного хаящего клиппинг в дискографии на соседском ресурсе!.. *успешного* на них не хватает Последний раз редактировалось 1234567890, 13.05.2024 в 07:53. Причина: magnet |