Как mp3 сжимает аудиоданные

Nov 24, 2024 18:43

Высокая степень сжатия mp3 обусловлена тем, что в mp3-файле в первую очередь хранятся не данные об изменении амплитуды (громкости) определенной частоты звукового сигнала во времени - собственно синусоиды, на которые нужно много места и большой битрейт, а лишь данные об их спектре, на которые места\битрейта нужно многократно меньше:



В верхней части рисунка изменение амплитуды гармонического сигнала частотой 100 Гц во времени, а в нижней - спектр этого сигнала, который имеет только частотную и амплитудную характеристики и не имеет временнОй. И теперь битрейт нужно потратить на кодирование всего лишь этих столбиков высотой в заданную амплитуду на заданной частоте, а не на всю синусоиду. Кстати, перенос ИНФОРМАЦИИ о сигнале из временной области в частотную и есть преобразование Фурье:



Но mp3-файл ведь нужно воспроизводить, а это будет происходить не в моменте, а во времени, поэтому привязка к временнОй шкале в любом случае должна быть. Для этой цели до преобразования Фурье исходный звуковой поток нарезается как бы на "кадры" (фреймы) аналогичные кадрам в видео файлах и вот они уже и трансформируются в спектр, причем, "спектральное содержание" соседних фреймов получается в большинстве случаев схожее, что увеличивает степень компрессии. Перед фреймированием звуковой поток также подготавливается определенным образом: фильтром обрезаются все частоты выше 16 кГц; удаляются маскируемые звуки по частоте (частотная маскировка), например, на фоне громкого звука какой-либо частоты никто не услышит тикающих часов, поэтому более тихие звуки близкие по частоте сразу перед и сразу после громкого звука удаляются; удаляются маскируемые звуки и по времени (временнАя маскировка) - если в одном фрейме сигнал громкий, то в соседнем фрейме на этой частоте весь звук можно просто убрать - все равно после громкого звука в раннем фрейме мы как бы "оглохнем" на 50 микросекунд;

Это исходный wav - весь спектр ровный, однородный, в нем нет фрагментации, дырок в спектре, выпавших участков



A это исходный wav сжатый в mp3 - в нем появились выпавшие участки - результат фреймирования, временнОй и частотной маскировки и т.п.



левый стереоканал записывается как сумма каналов, деленная пополам (среднее арифметическое), а правый как разность каналов; и еще некоторые ухищрения позволяющие сэкономить на битрейте.

При воспроизведении mp3-алгоритм производит обратную трансформацию из частотного спектрального содержимого отдельного "кадра" во временУю амплитудно-частотную, т.е. из спектральных "палок" синтезируются новые синусоиды разной частоты, масштабируются по амплитуде, и складываются\накладываются - в итоге получается новая похожая на исходную волна соответствующая ей по спектру. Все фреймы-"кадры" либо встык, либо с перехлестом, последовательно "проигрываются" по пометкам в файле и получается непрерывная звуковая волна.

В интернете не утихают споры, кто кого и как наеbал! Особенно яркие там, где никакой аудиочеккер не покажет истинного положения вещей. Это раздел записи с магнитной ленты. Редкие записи, которые спецом изначально mp3, чтобы в дальнейшем продавать WAV-оригинал! Они нигде в принципе не издавались, советский магнитиздат и музыка советского подполья записывается с цифры из эм-пэ-три файла на магнитную ленту и заново оцифровывается. Вновь представляется в интернете как lossless, WAV, FLAC, но естественно не первая копия.

Споры протекают агрессивно и там чуть ли не до драки). Там где деньги, распил бабла, там и войны и споры!
В современной реальности это то, что сейчас происходит в мире. Фэйки-враньё в СМИ, запутанные действия многоходовочек, вирусы... всеобщее отупление... ...

Проверка на наличие нулевого фрема (фрейма содержащего тишину) это и есть один из основных способов проверки на апконверт.

Самый быстрый и эффективный. Далее, если тот кто хочет наебать "продвинутый" хмырь и обрезал сэмпл в редакторе, идет вычитание сигнала одного канала из сигнала другого канала...

Способ № 1. Предпосылкой к рождению этого способа является одна специфическая особенность кодирования аудио в .MP3.

Кодирование данных в .MP3 происходит не целиком, а частями - аудио данные разбиваются на, так называемые «фреймы», длительностью 50 мс, и каждый фрейм анализируется и сжимается кодером отдельно. Тонкости этого процесса здесь описывать не будем.

Главным является то, что самый первый фрейм в созданном в результате кодирования файле .MP3 оказывается пустым (или, точнее, почти пустым). А, значит, при обратном декодировании .MP3 в .WAV-файл, полученный аудио поток будет содержать «полную тишину» (сигнал с нулевой амплитудой) протяженностью около 25-40 мс (в зависимости от кодера, использованного для компрессии).

Таким образом, аудио трек на неоригинальном аудио CD (в случае, если его передний край не подрезали специально перед созданием CD) характеризуется наличием короткого участка «полной тишины». Чтобы проверить, не имеем ли мы дело как раз с таким треком, нужно загрузить .WAV-файл в редактор, подобрать масштаб по амплитудной и временнОй шкале, и в случае «успеха» мы увидим картину, похожую на представленную ниже на скрине.


Previous post Next post
Up