06.04.2024, 23:33 | #1 |
Главный Кинооператор
Завсегдатай
|
Ликбез: Gapless
1. Истоки проблемы.
Хоть формат MP3 и не был первым форматом сжатия звука, основанном на частотном разложении сигнала и удалении избыточности за счет особенностей восприятия человеком звука - он стал самым популярным в мире благодаря ошеломляющему скачку в эффективности сжатия на момент своей разработки. Изначально он разрабатывался как формат для цифрового вещания, который предусматривал постоянный поток данных, при котором весь звуковой поток разбивается на фреймы по 1152 звуковых семплов, откуда в дальнейшем и появилась проблема с продолжительностью файлов отдельных треков в этом формате - они должны быть кратны продолжительности 1152 семплов. В большинстве случаев, естественно, соблюсти такое правило невозвожно, поэтому при кодировании в конец файла добавляется тишина, чтобы дополнить недостающее число семплов. То есть длина этой тишины колеблется от 1 до 1151 звуковых семпла. Для справки. В формате аудио-CD используются иные по продолжительности фреймы, равные 588 семплов (75 FPS или 44100 Гц / 75 = 588). То есть продолжительность звучания треков в формате CD тоже ступенчата и дискретность равна 1/75 с. Как видим, из-за несоответствия продолжительности звуковых фреймов мы ВСЕГДА будем получать дополнительную тишину в конце MP3-трека для изданий с CD-формата. Для WEB-релизов нет никаких ограничений по продолжительности, но "угадать" с длиной трека кратной 1152 семплов - вероятность практически нулевая. 2. Развитие проблемы. Казалось бы дополнительная тишина в конце файла - небольшая проблема, но тут возникла еще одна. Как я и написал выше, звук при кодировании разбивается на фреймы по 1152 семпла и происходит его частотное кодирование, но если кодировать фреймы полностью независимо, то из-за потерь сжатия на стыках между фреймами будут возникать ступенчатые скачки амплитуды, что приведет к существенному искажению звука, поэтому разработчики формата нашли способ для решения этой проблемы - используют так называемый алгоритм "overlapped transform" или "скользящего фрейма", таким образом решается проблема "стыков" между фреймами. Но из-за особенностей этого алгоритма - нужны данные от предыдущего фрейма, а так как вначале файла - его физически нет, то чтобы корректно начать кодирование нужно тоже добавить дополнительной тишины и в начале файла MP3, что еще усугубляет проблему. Причем продолжительность этого фрагмента зависит не только от программы кодировщика, а даже ее версии. 3. Решение проблемы. Чтобы как-то решить проблему этих дополнительных фрагментов вначале и конце файла MP3 разработчики кодека LAME придумали оригинальное решение, они в метаданных заголовка MP3-файла добавляют информацию о продолжительности этих фрагментов в семплах, что позволяет плеерам, которые умеют считывать эту информацию, при воспроизведении просто удалять их, оставляя только "полезную" часть звукового файла. Эта технология получила название GAPLESS. 4. Подводные камни. Вроде бы все хорошо, решение придумали, но возникла новая проблема, посмотрите пункт 2 и представьте, что весь файл MP3 - это большой фрейм, и на стыке с другим файлом MP3 - мы получим скачек амплитуды в месте их соединения, когда например концерт без пауз (Pink Floyd, Enigma и т.п.) и в месте стыка треков мы получим легкий щелчок, что не очень приятно. Поэтому разработчики придумали алгоритм коссфейда между треками GAPLESS, когда особым образом происходит наложение треков и интерполяция звука и этот скачек амплитуды становится незаметным. Эта технология называется TRUE GAPLESS. Ее использую популярные компьютерные плееры AIMP, Foobar и много других. 5. Заключение. Картинки и наглядные примеры (ссылки кликаемые) Возьмем создадим оригинальный звуковой файл, где в одном канале будет звук квадратной формы, что позволит нам четко "увидеть" начало и конец звука, а во втором канале - белый шум. Теперь сохраним в MP3-формате и откроем в SoundForge, эта программа имеет простой декодер MP3, который не умеет считывать Gapless Info из метаданных, и вот что мы получим: появился дополнительный "кусок" в начале и в конце файла (выделено), также изменилась общая продолжительность, что и подтверждает всё рассказаное выше. Теперь обратите еще внимание, что это не совсем "тишина", из-за особенностей алгоритма сжатия MP3 появилось так называемое "эхо", то есть "декодирование" сигнала появилось до начала собственно самого звука в начале файла и продолжалось после окончания звука в конце файла. Я неспроста сделал в одном канале белый шум, чтоб нагляднее продемонстрировать это явление. Вот поэтому и используется "хитрый" режим TRUE GAPLESS в современных плеерах, чтобы "объединять" эти эхо между смежными файлами MP3 при воспроизведении непрерывного альбома. 6. Другие форматы звука. Во всех современных форматах сжатого звука проблема Gapless никуда не делась, и в каждом формате есть свое "решение": - OGG Vorbis и OPUS - изначально добавили в метаданные длины начального и конечного фрагмента тишины, поэтому независимо от плеера или программы эти форматы всегда Gapless, то есть без лишних "пустот". - AAC - тут все проблемы MP3 налицо, причем нет вообще стандарта для Gapless Info как у LAME MP3, из-за чего очень сложно добится Gapless воспроизведения. Например, в случае AAC кодирования с помощью встроенного кодера FFmpeg, количество семплов вначале может составлять 1024. С другой стороны, популярный кодировщик FDK-AAC обычно производит 2048 семплов в начале, хотя это количество может изменяться в зависимости от настроек кодировщика. Поэтому "угадать" начало реального звука в этом формате невозможно, только можно "на глаз", декодируя звуковой файл и примерно определять "начало". - AC3 - как "проотец" формата MP3 также имеет "пустоту" вначале, но она уже заранее известна и прописывается в метаданных видео-контейнера для правильной синхронизации с видеорядом. - ну и у остальных форматов сжатия плюс-минус похожие проблемы и они все по-разному решаются в современных форматах и приложениях, не хочется загромождать тему, это уже отдельный разговор. Надеюсь Вам было интересно, будут еще новые статьи в дальнейшем. С уважением, Александр, MoyUspeh. Последний раз редактировалось MoyUspeh, 07.04.2024 в 15:01. |
07.04.2024, 15:40 | #2 |
Главный Кинооператор
Завсегдатай
|
Истоки проблемы в использовании (очень) старых версий LAME... Современным версиям подобные проблемы несвойственны и они не требуют дополнительно рукоблудства при конвертировании.
А приведенный FAQ от июня 2000 года https://lame.sourceforge.io/tech-FAQ.txt как бы намекает нам об "актуальности" поднятого вопроса. |
07.04.2024, 16:57 | #3 |
Главный Кинооператор
Завсегдатай
|
А где сказано о рукоблудстве? Проблема никуда не исчезла, она как была на заре создания LAME, так и осталась, просто большинство плееров научилось считывать метаданные Gapless от LAME в MP3-файлах и таким образом "срезают" лишнее. Но к сожалению это не умеют простые плеера, например автомагнитолы, колоночки со встроенными плеерами, все китайские MP3-дешевки и много других устройств. Внимательно читайте статью. И по поводу "актуальности" - сожмите любую MP3 в любой версии LAME и откройте в SoundForge - будете удивлены. Поэтому прежде чем писать такие утверждения - вначале убедитесь в своей правоте. |
07.04.2024, 23:12 | #4 |
Редактор
Душа Форума
|
MoyUspeh, приветствую Вас Александр.
Вы прекрасно всё расписали по форматам Lossy, но на Ваши доводы есть опровержения от оф. источника. На скриншоте выделена нужная информация: https://prnt.sc/PchgrkywWGIH Хотелось бы услышать Ваше мнение. ) |
07.04.2024, 23:54 | #5 |
Главный Кинооператор
Завсегдатай
|
Впервые слышу, что статьи на ixbt - правда в последней инстанции. Доверять их анализу я бы посомневался, очень часто там выставляют статьи совершенно далекие от темы люди, лишь поверхностно вникнувшие в суть. И в данной ветке анализ и опровержение я не хочу делать, так как здесь тема о Gapless, а не о спектральном анализе дельта потерь сжатия. Даже по поверхностному анализу картинки видно, что это фейк, как может MP3 с включенным LowPass-фильтром иметь МЕНЬШУЮ дельта в области более 20000 Гц? Не задумались? По идее, если в общем спектре потери меньше, то в части спектра более 20000 Гц - они должны быть БОЛЬШЕ, а на картинке я этого не наблюдаю, я вижу "преимущество" по всем чатотам, что не укладывается в идею "заменим высокие частоты на более детальную проработку остального спектра". Как-то так :) Тут по картинке не особо видно "граничную" частоту частотного анализа, что вводит в заблуждение, то есть не видно, до какой частоты идет анализ, до 20000 Гц или до 22-24000. Поэтому нужно проводить отдельное исследование и показать наглядно, а для этого я позже создам ветку про LowPass-фильтрацию и эффективность PSY-анализа при сжатии MP3. На всё нужно время, не всё сразу. p.s. По поводу той статьи с IXBT, там сравниваются "динозавры", LAME 3.88 и OGG-кодировщик, вышедшие в 2001 году, так, к слову.... очень много всего поменялось с того времени... Об этом я расскажу в другой своей статье. :) Ожидайте. |
08.04.2024, 05:17 | #6 |
Главный Кинооператор
|
немного истории (судя по всему ваш опыт упирается в планку lame 3.93?) https://svn.code.sf.net/p/lame/svn/t...l/history.html красненьким отмечены значимые улучшения (и уже cо следующей версии они начались) и теперь возвращаясь к теме (попытке сложить велосипеды с самосвалами) "дополнительная тишина в конце файла" все уже изобретено до вас - эта проблема возникала как правило исключительно при воспроизведении сетов, концертов или альбомом типа стены. быть может даже порезанный полет на венеру/распутин у кого-то мог вызвать дискомфорт. вот откуда ноги mp3-раздач в виде imаge+cue. и даже если поступить правильно - такой альбом конвертировать в mp3 образом, чтобы затем разрезать согласно индексной карты на треки используя mp3DirectCut проблемы с "китайскими mp3-дешевкамии и многими другими устройствами" это не решит, и уже тем более эту проблему не решит записанная в тег инфа |
08.04.2024, 09:01 | #7 |
Главный Кинооператор
Завсегдатай
|
Я не понимаю всеобщего негодования по этому поводу. Скажите, я хоть где-то писал, что я каким-то особым образом добавляю информацию в теги? Хоть раз? Я же расписал подробно что такое Gapless и его особенности, в итоге получил кучу хейта в свою сторону и оскорблений по типу "сам дурак" по абсолютно необоснованным причинам. Очень странная реакция на информационную статью, напоминает борьбу с ветряными мельницами - обычная реакция людей, которые вообще не понимают, о чем им говорят.
|
08.04.2024, 12:55 | #8 |
Редактор
Душа Форума
|
Никто в этой теме не пишет негатив, до Вас пытаются донести то, что что использование LAME 3.93 не даёт никаких преимуществ Вашим раздачам.
Ещё раз повторю, не нужно пытаться прикрутить к велосипеду колёса от самосвала. У нас торрент трекер, а не студия звукозаписи и не площадка для экспериментов. Заливайте раздачи со стандартной частотой семплирования как этого требуют правила и не будет к Вам никаких вопросов. 1. Общие правила публикации музыкальных раздач: https://forum.kinozal.guru/showthread.php?t=59050#01 1.1. Разрешается раздавать копии музыкальных альбомов, синглов, ЕР (CD, VinylRip, SACD, DSD, DVDA, Audio-DVD, Blu-Ray Audio), WEB-релизы, неофициальные сборники (VA) и авторские раздачи, в том числе с перекодированным звуком в Lossy от 128 кбит/сек со стандартной частотой семплирования: • для Audio CD - 44100 Гц Последний раз редактировалось Jеssikа, 11.04.2024 в 21:48. |
08.04.2024, 13:26 | #9 |
Редактор
Душа Форума
|
MoyUspeh - Ваше хамство я удалила. В следующий раз я Вас заблокирую за подобное. Последнее предупреждение.
Выражайте пожалуйста своё мнение в более корректной форме не переходя на личности. |
08.04.2024, 13:30 | #10 |
Главный Кинооператор
Завсегдатай
|
мне проще Вас просто игнорировать, так как реагировать на подобные посты бессмысленно... я уже неоднократно писал, что с Вами продолжать диалог бесполезно... и все ваши посты ничто иное как провокация. Если Вы видите нарушения в моих раздачах - удаляйте, только укажите причину, а не просто голословьте. Если там есть проблемы с качеством - докажите. |
08.04.2024, 13:41 | #11 |
Редактор
Душа Форума
|
Я проверяя раздачи не смотрю на раздающего, я смотрю на раздачу. ) Если к Вашей или иной раздаче есть замечания или вопросы, то всегда даются ссылки на правила, на основании чего требуем или скриншоты подтверждения замечания. Просто так никто ничьи раздачи не скрывают. |
08.04.2024, 13:47 | #12 |
Главный Кинооператор
Душа Форума
|
Видимо, имеется в виду, что используя устаревший кодек lame 3.93 от 2002 года, наделять при этом mp3 невероятными характеристиками, мягко говоря, не стоит.
Рациональнее использовать более современную версию lame. |
08.04.2024, 13:52 | #13 |
Главный Кинооператор
Завсегдатай
|
|
08.04.2024, 14:10 | #14 |
Главный Кинооператор
Душа Форума
|
Ликвидация безграмотности - серьезный советский проект, который поражал воображение своей масштабностью и фундаментальностью. Даже заимствование "ликбез" не спасет эту тему, содержание не соответствует названию, больше похоже на "Рога и копыта". |