Выбираем лучший формат для сжатия аудиоданных: MP3, AAC или WavPack?

Выбираем лучший формат для сжатия аудиоданных: MP3, AAC или WavPack?

Если не lossless, то кот? MP3, AAC — что еще? Ранее мы уже несколько раз изучали алгоритмы сжатия музыки, настало время сравнить самых достойных.

По-хорошему следовало бы отречься от lossy-кодеков вовсе, но всегда интересно прочертить границу, где количество переходит в качество. Кроме того, даже lossy-кодек может кое-чем удивить, вот увидите.

В данном обзоре было решено не морочить голову разными VBR-режимами, а сразу остановиться на максимальном битрейте с постоянной величиной 320 кб/с. Сегодня, при современной емкости портатива, выпрашивать лишние 10 Мб на емкость альбома с риском потерять в качестве? Зачем? В целом, даже с древними кодеками поток 320 кб/с обеспечивает отсутствие характерных артефактов с мерзкими позвякиваниями. Первая часть обзора будет посвящена сравнению роста артефактов с помощью софта RMAA, во второй — изложен субъективный опыт слушателя на реальных фонограммах.

Сравнительная АЧХ трех lossy-форматов относительно оригинала WAV

Если в прошлый раз в качестве источника звука использовался iPad Mini, то сейчас для повышения точности мы выносим любое влияние железа за скобки, и далее весь анализ искажений будет проводиться исключительно в цифровом домене, без преобразования в аналог, поскольку RMAA предоставляет такую возможность.

Для этого генерируем в RMAA тестовый образец в WAV, затем поочередно загоняем его в различные lossy-кодеки. Далее конвертим обратно из них WAV, чтобы программа могла «узнать» файл и оценить отклонения от оригинального шаблона. Теперь смотрим, как рубятся высокие частоты и растут искажения, которые придают противную окраску звуку. Их, кстати, будет не так уж и много. Вообще, на битрейте 320 кб/с поймать на слух явно что-то вредное будет не так просто. Речь пойдет не об артефактах даже, а разве что некоторой «тупости» звука по сравнению с оригиналом. Фонограмма как будто чуть выдыхается, теряет подвижность из-за нарушения переходных процессов после психоакустической обработки. Но явственно зафиксировать эту разницу получится не всегда, зависит от конкретного трека.

MP3: лавинообразные искажения

Начинаем с самого популярного формата. МР3 — чудовище из института Фраунгофера, которое захватило Землю. Из-за него сегодня никому не приходит в голову использовать чистый WAV для записи звуков. Даже если выдирают изуродованное аудио из YouTube, то все равно крошат его еще раз в МР3, да еще и с похабным битрейтом 128 кб/с. Мы так делать не будем, и для теста используем самую актуальную на сегодня версию кодера LAME 3.100 с пресетом insane и битрейтом 320 кб/с.

На самом первом рисунке было видно, что спектр в МР3 ожидаемо испытывает колебания в области ВЧ и окончательно отфильтровывается на границе 20 кГц. Разумеется, это предел синтетического теста, на реальном музыкальном сигнале она наверняка окажется еще ниже. Размеры динамического диапазона в МР3-файле не изменились по сравнению с оригиналом. Т.е. кодер LAME 3.100 на битрейте 320 кб/с не добавляет в запись никаких собственных шумов.

Искажения формы сигнала 1 кГц при кодировании в МР3 в сравнении с оригиналом WAV

Конвертация в МР3 одиночного сигнала 1 кГц показала появление множества мелких гармонических искажений. И хотя формально их доля невелика (0,0009%) — т.е. раза в полтора-два меньше, чем на выхлопе у хорошего ЦАПа, — в динамичном спектре реальной фонограммы их число будет расти в лавинообразном и непредсказуемом порядке. Также «утолщение» основания узкого в оригинале пика 1 кГц указывает на определенные проблемы, обрастание паразитными колебаниями. Эту особенность наглядно иллюстрирует «квадратная» 100 Гц волна после ее конвертации в МР3. Как видите, по горизонтальной оси ее контур теряет четкость. Все это в конечном итоге отрицательно сказывается на утомляемости слуха при прослушивании МР3, увы, даже самых максимальных битрейтов.

«Квадратная» волна 100 Гц после конвертации в МР3 (вверху) и AAC (внизу)

AAC: поднять шум, но сохранить чистоту

Более аккуратным образом действует алгоритм ААС, которым активно оперирует Apple, да и не только он. С данным аудиокодеком работают цифровые ТВ-бродкастеры, а кроме того, ААС входит в пакет контейнера MPEG-4.

Квадратная волна после конвертации в ААС сохраняет свою форму, хотя искажения основания и гармоники вокруг пика 1 кГц тоже имели место, хотя и менее заметно, чем в МР3. При этом ААС демонстрирует больший на 1 дБ измеренный уровень шума. Что бы это значило — промежуточная запись на кассету, что ли? Нет, наверняка в алгоритме ААС используется что-то вроде нойзшейпинга — великое изобретение, позволяющее снижать ошибки квантования за счет подмешивания псевдослучайного шумового сигнала. Повторюсь, это не просто утопление искажений ниже шумового порога — здесь применяется более изощренная математика.

Для иллюстрации посмотрим артефакты вокруг так называемого джиттер-теста на частоте 11,025 кГц. Почему именно эта частота? Потому что кратная гармоника к этому пику приходится ровно на верхнюю границу спектра из цифрового потока с дискретизацией 44 кГц, а все остальные будут находиться за его пределами. Паразитные маленькие пики, особенно те, которые располагаются симметрично относительно основного тона (продукты модуляции, «боковые полосы») — вот это и есть зерна джиттера.

Устойчивость в джиттер-тесте ААС (вверху) и МР3 (внизу)

Как видим, дурак-МР3 сберег низкий уровень шума, но сгенерировал больше высокочастотного джиттера (наиболее заметного на слух), а AAC немного поднял шум, зато избежал паразитов на остальных участках спектра. Но еще большие фокусы с нойзшепингом вытворяет кодер WavPack.

WavPack: сохранить частоту, поменять разрядность

Вообще, если уж сразу и совсем коротко, то математика кодера WavPack на сегодня относится к самым гибким и крутым протоколам для аудиоэнтузиастов, без шуток. В отличие от FLAС, он умеет поддерживать 32-битное исчисление (я рекомендовал его для создания lossless виниловых рипов). Более того, в WavPack даже можно запаковать DSD-файл, не обращая его в РСМ. При этом размер такого файла получится гораздо меньше, чем dsf-оригинал. Но об lossless WavPack мы поговорим как-нибудь в другой раз, а пока рассмотрим уникальный принцип действия lossy-кодека WavPack.

В одном из своих обзоров я показывал, что в ряде случаев при сжатии с потерями имеет смысл снижать не частоту дискретизации, а непосредственно битность сигнала (т.е. ниже 24 или 16 бит), аккуратно подмешивая дизер (т.е. специальный профиль шума для уменьшения ошибок квантования). WavPack пошел именно этим славным путем, не трогая дискретность и частотку вообще, зато изменяя глубину бит, которая теперь является динамической величиной, описывая уровень громкости сигнала. Чем-то напоминает DSD-принцип, не правда ли?

Примечательно, что при конвертации в такой lossy WavPack, можно дополнительно сохранить параллельный «корректирующий» файл, с помощью которого можно будет полностью, до последнего бита, восстановить оригинал. Правда, экономить место на диске в этом случае не получится, так как размер такой пары будет все равно соответствовать lossless-оригиналу. Но тем не менее функционал протокола все равно впечатляет.

Битрейт нашего тестового файла был выставлен на 320 кб/с, чтобы сопоставить его с максимумом наших МР3 и ААС, но теоретически в WavPack его можно ставить и выше. Особенно это пригодится для хайрезов, далее я покажу как — и никакой MQA больше не нужен!

Сравнение гармонических искажений оригинала (зеленым) и файла, закодированного в lossy WavPack (белым). Чуть подрос уровень шума и почти никаких искажений

На графиках lossy WavPack демонстрирует похвальное отсутствие частокола гармоник, которые набегали у двух предыдущих кодеров из-за агрессивной психоакустической модели. В WavPack подобные хитрые алгоритмы отсутствуют, фильтров АЧХ тоже нет — работает просто динамическое взвешивание уровня сигнала под заданный битрейт, и все. В итоге тестирование 1 кГц дает всего несколько гармоник нечетного порядка — 3-я, 7-я, 9-я и т. д. Частотный диапазон сохранен, квадратная волна тоже. На джиттер-тесте 11 кГц по остальному спектру кроме подросшего шума не замечено, никакой паразитной деятельности.

В джиттер-тесте тоном 11025 Гц у lossy WavPack все чисто

Для слухового опыта я отобрал пару достаточно звонких и неплохо прописанных фонограмм, которые вы также можете скачать и послушать в трех вариациях lossy-кодирования с битрейтом 320 кб/с: MP3, AAC и WavPack. Там же, в этих двух архивах, будут приложены оригиналы FLAC в стандартном CD-разрешении 16 бит / 44 кГц.

Композиция «White Wood» группы Lush поможет оценить деградацию ВЧ-диапазона. Кто-то на форуме шутил над моей верностью шугейзу, но именно такая, хрупкая, но спектрально насыщенная ткань оказывается весьма чувствительной к бульдозеру lossy-кодеков и поганой аппаратуры. Стоит чуть уступить, и все гитарные хорусы с медью тарелочек превратятся в жестяную помойку. Вторая фонограмма, «Deep Sleep» B-52’s, представляет собой пример адекватного мастеринга с сочным саундом, студийными эффектами и сохраненным при этом динамическим диапазоном.

Выводы

По итогам прослушивания все треки разделились на две группы. В первую по степени неразличимости попали оригинал, AAC и WavPack. На их фоне МР3 прозвучал явным аутсайдером-одиночкой. Звук МР3 на 320 кб/с не делается жестким, нет, скорее даже наоборот. Я бы, кстати, звучание этого кодека охарактеризовал скорее как теплое — подача музыки как будто оборачивается мутноватым полиэтиленом. Само собой, мастеринг и частотная коррекция у альбомов бывает очень разной, в том числе и такой вот теплой. И если просто запустить подобный MP3 без сравнения с оригиналом, никто ничего и не заподозрит. Но в целом следует признать, что МР3 справляется со своей задачей хуже всех.

Конечно, можно обратиться к старинным МР3-кодекам типа LAME 3.93, где отключался полифазный фильтр, покрутить еще какие-то настройки. Но после ясного и естественного звука AAC на том же битрейте, заниматься подобными экспериментами пропадает желание. К тому же AAC и WavPack можно слушать на любом софте и в том числе на телефонах после установки какой-нибудь портативной версии Foobar. С поддержкой WavPack в Car Audio придется повозиться, но в принципе все преодолимо.

В заключение также предлагаю сравнить работу WavPack на образце моего винилового рипа из «Щелкунчика». Здесь уже продемонстрирована обработка высокодискретного сигнала. Оригинал был закодирован во FLAC с размерностью 24 бит / 88 кГц. Далее из него было сделано два варианта:

№1 — это стандартный FLAC 16 бит / 44 кГц, совместимый с CD-стандартом.

№2 — lossy WavPack с дискретностью 88 кГц и битрейтом 700 кб/с.

Величину данного битрейта lossy WavPack можно было сделать меньше или больше, она подбиралась экспериментально. Для нашего сравнения было важно, чтобы конечный файл WavPack совпадал по размеру с конкурентом FLAC 16 бит / 44 кГц. Все три файла также можно скачать и сравнить самостоятельно.

Непосредственное сравнение образцов подтвердило идею о том, что стандартное понижение HD-мастеров до CD-разрешения, пускай и незначительно, но все же огрубляет музыкальную фактуру оригинала. Деградация происходит, главным образом, за счет потери глубины передних и дальних планов. Сцена как бы выстраивается в единую плоскость. При этом стоит отметить, что вариант lossy WavPack при сопоставимом размере файла оказался лишен данного недостатка и может быть рекомендован для широкого применения в портативном аудио и различных стриминговых сервисах.

76.43 дБ +

Комментарии

#

Если не lossless, то собака)))

Спасибо, интересно! Флаки в основном и слушаю, вейвпаки тоже иногда встречаются.

- 50 дБ +
⇡ в ответ @allkef #

ну обычные лосслесс вайвпаки имеют смысл только для 32 бит контента

- 50 дБ +
⇡ в ответ @YG #

Я же сам почти не занимаюсь кодированием. Просто периодически натыкаюсь на вейвпаки. Еще ape иногда, но вы про них не указали.

- 50 дБ +
⇡ в ответ @allkef #

Обзор не про лосслесы — я спецом рассматривал лосси кодеки

- 50 дБ +
#

Дисклаймер для бдительных читателей — не пишите про кота в ошибки. В тексте —отсылка к известному мемасу.

- 50 дБ +
⇡ в ответ @YG #

Мемас в студию!

- 50 дБ +
⇡ в ответ @allkef #

политические мемасы в студии не приветствуются.

лучше бы уважаемые жуки изучили и сравнили файлики, которые я напек

- 53.01 дБ +
⇡ в ответ @YG #

Говорите, что не приветствуются, а сами про жуков...

- 50 дБ +
⇡ в ответ @YG #

поздно :(

- 50 дБ +
#

если не лослес, то мега-хайрез!

- 50 дБ +
#

Все равно mp3 всех победит массовостью. Это как танки Т-34 и m4 в годы Второй Мировой - они были дубовые, нередко уступали немецким, но их было Много. Очень много. Совсем много.

- 56.02 дБ +
⇡ в ответ @JaroslavS #

да какая сейчас разница, что там кому уступало или превосходило сто лет назад.

любители компьютерных игр сегодня выбирают себе экзотические модели оружия.

здесь то же самое

- 50 дБ +
⇡ в ответ @YG #

Торренты показывают, что WavePack выбирает мало кто. Привычка - вторая натура:)) И в холиварах про лосси идет подача снизу - типа мпз никому не отличить от лосслесса, а про wv обычно не вспоминают.

- 50 дБ +
⇡ в ответ @JaroslavS #

все равно не понимаю цели реплики

это все равно, что в очередной подборке этноджаза отметиться в каментах - а вот в рутрекере айтюнзе все слушают эд ширана, он всех победил и этноджаз ваш тоже

- 50 дБ +
⇡ в ответ @YG #

По моему понятнее некуда. WV лучше, но по распространенности с большим отрывом побеждает mp3.

- 56.02 дБ +
⇡ в ответ @JaroslavS #

ну да, нет царствия божия на Земле...

Все слушают мр3...

Жизнь — боль...

Все бабы — б...

А солнце е... фонарь...


Я честно не понимаю подобных сентенций, да еще в техническом материале. Ярослав, вы думаете, я что-то новое от вас прочитал про популярность мр3?

Вышел новый материал — ну скачай ты конкретные файлики — хоть скажи, нет разницы в звуке или что оцифровка негодная. Нет, начинают про упадок нравов на всей планете рассуждать(((((




- 60 дБ +
⇡ в ответ @YG #
Я честно не понимаю подобных сентенций
Вышел новый материал — ну скачай ты конкретные файлики — хоть скажи, нет разницы в звуке

Логика прямая, как бревно. Хорошо, скачал я эти файлики. Разницу мне ловить на какого уровня аппаратуре? На работе мне первые два трека 88.2 кГц 24 бит воспроизвести не удалось, звуковая карта отказалась это делать, хотя 192 кГц проигрывает без проблем. Дома конечно могу послушать, но я не понимаю, что это дает. Короткий фрагмент из "Щелкунчика" - по моему, очень не показательно для такого теста. Слушать, так уж много разного. С файлом FLAC 16/44.1 вообще не понятно, я должен услышать разницу с WV 24/88.2 или проблемы даунсэмплинга FLAC? Весь срач по поводу разницы mp3 и lossless идет в ключе "я слышу" - "а я вот не слышу". Мало что люди воспринимают особенности звука по разному, они еще и слушают на разных системах. Можно продолжить теперь этот срач в WV vs FLAC vs mp3. Но по сути это переливание пустого в порожнее. Чаще всего отличия в звуке между хорошо закодированным mp3 и lossless не слышны вот так явно, а проявляются в большей комфортности длительного прослушивания lossless. Сколько уже раз была победа сил света над властью мракобесия, это через три минуты будет забыто, и опять продолжится срач mp3 vs lossless в ключе "я слышу" - "а я не слышу никакой разницы". Про WV думаю к моменту написания этого поста уже забыли. Собственно, я об этом и хотел сказать.

- 53.01 дБ +
#
ТEКСТ: YG 12 апреля 2018, 09:16

И тут внезапно: qtaacenc 20110816, QuickTime 7.7.9, CBR 320 kbps...

Если уж был взят последний лэймовский образец (из обновлений имеющий разве что идентификатор), то может следовало бы и с ААС поступить аналогично. И ещё - если мр3 физически не позволяет выпрыгнуть за значение 320 кб/с вне зависимости от настроек кодирования, то ААС (даже в True VBR режиме) при максимальных настройках качества кодирования - позволяет задрать скорость потока в нужных местах.

Пора обновлять софт: qaac 2.66, CoreAudioToolbox 7.10.9.0, AAC-LC Encoder, TVBR q127, Quality 96

Lush [1994] ''Desire Lines''


- 50 дБ +
⇡ в ответ @Willi-1973 #

выводов в материале это не меняет, ААС в любом случае показал свое преимущество

- 50 дБ +
#

По своему опыту скажу, что для кодеков с потерями результат, а значит и приятность звучания, сильно зависит от (микро)программы (железного )плеера.

- 53.01 дБ +
#

mp3 в железе стабильно пустил корни и умеет всестороннюю поддержку. на данный момент сжатый звук слушаю только в машине. и догадайтесь какие форматы магнитола поддерживает... Правильно. mp3 и wma. и собственно, выбор не велик. 16гб флеха забита под завязку 320кб mp3. Разницы в звучании a-cd и mp3 в автомобильных условиях - нет.

- 53.01 дБ +
#

Давно заметил, что ААС даже на среднестатистической Hi-Fi системе можно слушать. Скачал несколько редкостей с iTunes, слушаю и не ломает, блин! А вот "эмэрзэ" невыносимо слушать уже на музцентре- в любом битрейте.

- 50 дБ +
#
mp3 в железе стабильно пустил корни и умеет всестороннюю поддержку. на данный момент сжатый звук слушаю только в машине. и догадайтесь какие форматы магнитола поддерживает... Правильно. mp3 и wma. и собственно, выбор не велик. 16гб флеха забита под завязку 320кб mp3. Разницы в звучании a-cd и mp3 в автомобильных условиях - нет.

Вот с этим соглашусь- тоже в машине МР3 слушаю без проблем. Разницы не замечаю, возможно потому что условия не те, а может дело в "железе".

- 50 дБ +
#

"Выбираем лучший формат для сжатия аудиоданных ..." - зачем? Объём современных носителей информации уже позволяет этим не заниматься. Мне кажется, что места для хранения не хватает только тем, кто жаден до халявы и качает столько, сколько прослушать никогда не успеет.

- 50 дБ +
⇡ в ответ @IvanTerekhov #
По-хорошему следовало бы отречься от lossy-кодеков вовсе, но всегда интересно прочертить границу, где количество переходит в качество. Кроме того, даже lossy-кодек может кое-чем удивить, вот увидите.


а кроме того для интернет-трансляции это актуальная задача. На лосслесс мало кто спешит переходить. Кроме того, в статье показано, как можно даже 24-битный исходник переупаковать для стрима без особой потери качества с снижения частоты дискретизации.

- 50 дБ +
⇡ в ответ @YG #

Понял.

- 50 дБ +
⇡ в ответ @YG #

Если человек не спешит переходить на лосслесс и хайрезы, и прослушивает всякий стримиинг, он будет вполне доволен качеством mp3. Тем более чаще всего стримминг Интернет-радиостанций и сервисов производится на такой аппаратуре, что эту разницу и не очень услышишь. А потому что стримминг слушают в основном как фон, а не в условиях меломании и собирательства. Сойдет какой-нибудь АВ или стерео-ресивер или еще хуже, мультирумная колонка-бумбокс. Я читал много рассуждений на тему что лучше слушать дома, лосси или лосслесс, а вот статей на тему какой звук лучше при стримминге, у каких сервисов и радиостанций, по моему кот наплакал. Потому что тема эта слушающим не особо интересна. Ну раньше же слушали такие гробоподобные ламповые радиоприемники, и не гнались за лучшим качеством, тут тоже самое.

- 53.01 дБ +
⇡ в ответ @JaroslavS #
Ну раньше же слушали такие гробоподобные ламповые радиоприемники, и не гнались за лучшим качеством,

У меня есть парочка — они неописуемо хорошо звучат...

- 53.01 дБ +
⇡ в ответ @JaroslavS #

Кстати, а какой битрейт был в эпоху ламповых "гробов"?

- 50 дБ +
⇡ в ответ @Zheltikov #

Они кстати звучали очень харизматично, так "лампово", так что это даже лучше, чем DSD наверное. Еще надо интерьер добавить: вино, сигареты, журнал "Огонек"...

- 50 дБ +
⇡ в ответ @JaroslavS #
гробоподобные ламповые радиоприемники

лампа и ширики, что может быть божественнее )))

- 50 дБ +
#

Спасибо за статью. Она заставила поковыряться в "архивах" и выудить на свет "чудо" c удивительными потребительскими свойствами и названием lossyFLAC. Основано на предобработке исходного материала Lossy препроцессором для PCM WAV аудио lossyWAV, который динамически понижает разрядность отдельных фрагментов аудио и таким образом позволяет значительно повысить степень его сжатия lossless кодеками. Проблем с совместимостью, в отличии от WV - на порядок меньше. Для портатива - самое оно...

- 60 дБ +
⇡ в ответ @Willi-1973 #

о! вот это дельное замечание, по сути

однако мне кажется несовместимость wv преувеличена

универсальные портативные плееры - flac, vlc и подобные должны все читать

- 50 дБ +
⇡ в ответ @YG #

Хммм... Поторопился я с выводами о совместимости... AIMP - прекрасно разобрался с ним, а вот "бублик" и системный плеер - не особо возжелали работать с lossyFLAC .

- 50 дБ +
#

Ну и ещё один "гвоздь в крышку" - стационар тоже не уверенно ведёт себя с подобными файлами.

ААС - "наше всё"...
- 53.01 дБ +
#

посмотрел искажения от mp3 320Kbps. Это -45дБ к основному сигналу, и - 30 в редких пиках. Не, мне такого не расслышать.

- 56.02 дБ +
⇡ в ответ @Bbhob #

Смотря где располагаются гармоники. Если высокого порядка, то —45 дб беда.

- 50 дБ +
⇡ в ответ @YG #

они негармонические, типа постоянного розового шума под сигналом,то есть если анализировать по спектру то менее 60, но мне кажется это не совсем корректным

- 50 дБ +
#

Мне вот тоже интересно - если WavPack звучит существенно лучше mp3, почему на торрентах раздают преимущественно mp3? Сила привычки, универсальность (авто, "железные" плееры)? А может название формата выбрано неудачно? Wav сразу ассоциируется с чем-то большим, чистым, необрез... несжатым.

- 50 дБ +
⇡ в ответ @VelociTyger #

Потому что mp3 играет любой плеер, а WavPack только специальзированный. Но на торрентах также раздают FLAC, так что все ок.

- 50 дБ +
⇡ в ответ @VelociTyger #

ну на торентах достаточно музыки и в ААС

хотелось бы забвения мр3 в пользу ААС

- 50 дБ +
⇡ в ответ @YG #

нужно активное осваивание формата "в железе". Без этого mp3 не победить. Помните крылатую фразу: "в битве суперных форматов DVD-A vs SACD победил... mp3"...))) и тут совершенно нечего добавить...

- 50 дБ +
#

Я слушаю музыку в AAC со времен появления iTunes, больше ничего от пережатки не нужно.


- 50 дБ +
Чтобы оставить комментарий, войдите, пожалуйста.