FLAC и MP3: какие детали пропадают при сжатии и заметно ли это на слух

Прокомментировать Просмотры: 4

Размер одного трека в разных форматах

Вечная дискуссия между сторонниками FLAC и MP3 обычно сводится к субъективным ощущениям: один отчетливо слышит «воздух», другой не замечает никакой разницы. Я решил подойти к вопросу научно: взял один аудиотрек, применил к нему шесть различных вариантов сжатия и с помощью измерений зафиксировал произошедшие изменения.

Результаты показательны: MP3 с битрейтом 128 кбит/с безжалостно срезает все частоты выше 16,5 кГц, тогда как версия на 320 кбит/с дотягивает до 20,1 кГц. После десятикратного пересохранения 128-килобитный MP3 теряет более 10 дБ динамического диапазона, в то время как FLAC после повторного кодирования совпадает с оригиналом абсолютно побуквенно (точнее, побитово). Ниже представлены пять детальных тестов с графиками, математический расчет для проведения слепого тестирования и практическая таблица выбора подходящего формата.

Что сравниваю

Трек: COOL&CREATE, «Help me, ERINNNNNN!!» (релиз 2024 года). Это энергичная электронная аранжировка мелодий из Touhou с насыщенным вокалом, плотным миксом и высоким уровнем громкости. Хронометраж — 5 минут 16 секунд, параметры потока — 44,1 кГц, 16 бит, стерео (стандартный Audio CD).

Для кодирования в MP3 использовался эталонный энкодер LAME 3.100 со стандартными пресетами.

ffmpeg -i track.flac -c:a pcm_s16le orig.wav      # несжатый звук
lame -b 128 orig.wav cbr128.mp3                   # постоянные 128 кбит/с
lame -b 320 orig.wav cbr320.mp3                   # постоянные 320 кбит/с
lame -V2 orig.wav v2.mp3                          # переменный битрейт
lame -V0 orig.wav v0.mp3                          # переменный, выше качество

Параметры -V0 и -V2 определяют целевое качество, подстраивая битрейт динамически под конкретные фрагменты записи. Согласно документации Hydrogenaudio, средние значения составляют около 245 и 190 кбит/с соответственно. В моем эксперименте утилита выдала 261 и 184 кбит/с.

Замер 1. Размер

Формат

Размер

Средний битрейт

Доля от WAV

WAV

55,7 МБ

1411 кбит/с

100%

FLAC

43,0 МБ

1090 кбит/с

77%

MP3 320

12,6 МБ

320 кбит/с

23%

MP3 V0

10,3 МБ

261 кбит/с

19%

MP3 V2

7,3 МБ

184 кбит/с

13%

MP3 128

5,1 МБ

128 кбит/с

9%

Формат FLAC уменьшил объем исходника примерно на четверть, в то время как MP3 320 сжал его более чем в четыре раза. Если перенести это на библиотеку из тысячи аналогичных композиций, то FLAC займет около 43 ГБ, MP3 320 — около 13 ГБ, а 128-килобитный вариант — всего 5 ГБ. Эффективность сжатия FLAC напрямую зависит от особенностей материала: наш динамичный и насыщенный трек сжался умеренно, тогда как тихие акустические записи поддаются упаковке значительно сильнее.

При этом FLAC гарантирует абсолютную сохранность данных. Я проверил это с помощью контрольных сумм распакованного аудиопотока:

ffmpeg -i track.flac -f s16le - | md5sum      # 511b1390...
ffmpeg -i orig.wav   -f s16le - | md5sum      # 511b1390...
ffmpeg -i again.flac -f s16le - | md5sum      # 511b1390...

В третьей строчке проверялся тот же WAV, повторно пропущенный через FLAC. Все хэш-суммы полностью совпали, подтверждая идентичность аудиоданных «до последнего бита». Алгоритм FLAC функционирует по принципу классического архиватора: он прогнозирует амплитуду следующего семпла на основе предыдущих и сохраняет исключительно погрешность этого предсказания.

Замер 2. Где обрывается верх

У MP3 принципиально иная архитектура. Аудиопоток нарезается на фреймы по 1152 семпла, каждый из которых раскладывается в спектр. После этого алгоритм принимает решение, какие частоты оставить неизменными, какие загрубить, а от каких избавиться вовсе. В первую очередь под сокращение попадают самые высокие частоты. На спектрограмме это проявляется в виде темной полосы в верхней части: слева показан оригинал, далее — MP3 320 и MP3 128.

Спектрограммы одного отрывка: FLAC, MP3 320 и MP3 128
Спектрограммы одного отрывка: FLAC, MP3 320 и MP3 128

Аналогичные данные, усредненные по всей длительности трека и представленные в виде единого графика:

Усреднённый спектр файлов от 10 до 22 кГц
Усреднённый спектр файлов от 10 до 22 кГц

Кривая FLAC уверенно доходит до отметки 22 кГц, что является физическим пределом для дискретизации 44,1 кГц. Графики остальных форматов обрываются значительно раньше:

Формат

Спектр обрывается на

MP3 64

10,9 кГц

MP3 128

16,5 кГц

MP3 V2 и MP3 192

18,7 кГц

MP3 320

20,1 кГц

MP3 V0

обрыва нет, линия идёт рядом с FLAC

Линия MP3 V0 визуально сливается с FLAC, поскольку в этом пресете кодер LAME деактивирует фильтр низких частот. Это подтверждается служебным выводом программы при запуске с флагом --verbose:

-V0     polyphase lowpass filter disabled
-b 320  Using polyphase lowpass filter, transition band: 20094 Hz - 20627 Hz
-V2     Using polyphase lowpass filter, transition band: 18671 Hz - 19205 Hz
-b 128  Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz

Однако из этого вовсе не следует полная эквивалентность V0 и FLAC. График демонстрирует лишь общую энергетику спектра по частотам, но ничего не говорит о точности квантования. Режим V0 сохраняет диапазон высоких частот, но кодирует его с большими погрешностями. Истинная точность отображается в следующем тесте, где V0 закономерно проигрывает MP3 320.

Слышен ли этот срез верхов? Все зависит от индивидуальных особенностей слуха и музыкального материала. С возрастом верхняя граница восприятия снижается, к тому же в диапазоне 17–20 кГц в треках содержится минимум энергии — на графике этот участок расположен примерно на 50 дБ ниже пиковых значений. Свою собственную границу слуха можно определить с помощью генератора тона, повышая частоту до полного исчезновения сигнала.

В битрейте MP3 64 ситуация еще жестче: LAME автоматически понижает частоту дискретизации до 24 кГц, из-за чего полезный сигнал выше 12 кГц полностью отсутствует. Возвышение на отметке 13 кГц, скорее всего, является артефактом обратного пересчета в 44,1 кГц при построении графика — оно зеркально отражает спад около 11 кГц относительно центральной частоты 12 кГц.

Замер 3. Разница с оригиналом

Усечение высоких частот отражает лишь часть деструктивных изменений. Чтобы оценить масштаб потерь всесторонне, я декодировал MP3 обратно в PCM-поток и вычел его из оригинала. В результате остался так называемый «сигнал ошибки» — то, чем сжатый файл отличается от эталона.

Спектрограмма разницы между FLAC и MP3
Спектрограмма разницы между FLAC и MP3

Слева визуализирована разница для MP3 320, справа — для MP3 128 (фрагмент тот же). Интенсивность цвета соответствует уровню громкости. В случае с MP3 128 артефакты распределены по всему спектру, причем наибольшая концентрация приходится на диапазон ниже 5 кГц, где сосредоточена основная музыкальная энергия.

В количественном выражении: насколько тише трека оказывается порожденный алгоритмом шум.

Формат

Разница тише трека на

MP3 128

16,7 дБ

MP3 V2

20,2 дБ

MP3 V0

25,9 дБ

MP3 320

30,2 дБ

Показатель в 30,2 дБ — это сравнительно немного. Шумовой сигнал такой громкости при изолированном прослушивании услышит практически каждый. Однако в структуре MP3 он остается незаметным благодаря психоакустической маскировке: человеческое ухо теряет способность различать тихие звуки, если одновременно играет более громкий сигнал на близкой частоте. Именно на этом феномене базируется весь формат: встроенная математическая модель слуха вычисляет, какой объем искажений растворится на фоне громких звуков, и распределяет биты с учетом этих ограничений.

Именно поэтому цифры из таблицы нельзя воспринимать как прямую характеристику «слышимости». Они показывают лишь масштаб внесенных изменений, упучая вопрос о том, сможет ли их зафиксировать слушатель.

Замер 4. Повторное сжатие

Психоакустическая модель рассчитана на единственное кодирование. Если распаковать MP3 и подвергнуть его процедуре сжатия повторно, энкодер заново вычисляет, от чего избавиться, в результате чего ошибки суммируются. Я прогнал тестовый трек через LAME десять раз подряд.

Отличие от оригинала после каждого перекодирования
Отличие от оригинала после каждого перекодирования

Сколько раз сжали

MP3 320

MP3 128

1

30,2 дБ

16,7 дБ

5

25,8 дБ

9,9 дБ

10

23,9 дБ

6,4 дБ

За десять итераций файл MP3 320 деградировал на 6,3 дБ, а MP3 128 потерял сразу 10,3 дБ. В реальной жизни это выглядит стандартно: композицию скачали в MP3, загрузили в аудиоредактор для правок, экспортировали и выложили на стриминг, где платформа пережала ее еще раз. С форматом FLAC подобных проблем не возникает: его можно бесконечно распаковывать и архивировать, при этом уровень разницы из первого замера останется неизменным.

В этом заключается главный аргумент в пользу FLAC. Он незаменим в качестве первоисточника, из которого в любой момент можно сгенерировать MP3, Opus или любой другой перспективный формат. Обратного пути для сжатого с потерями файла не существует.

Замер 5. FLAC, в котором нет верха

Расширение .flac гарантирует лишь отсутствие потерь при архивации. Оно никак не регламентирует качество исходного аудиоматериала, поступившего на вход кодировщика. Подобный артефакт попался мне на Wikimedia Commons в процессе подбора материала для статьи:

Спектры двух файлов FLAC
Спектры двух файлов FLAC

Оба файла имеют идентичные формальные характеристики: 44,1 кГц, 16 бит. Однако у трека «Help me, ERINNNNNN!!» спектр простирается до 22 кГц, тогда как у второго файла он резко обрывается на отметке 15,3 кГц ступенчатым срезом, в точности повторяя поведение MP3 из второго замера.

Исключительно по файлу невозможно определить причину среза: так выглядит и MP3, переведенный в беспрецедентный FLAC, и студийный трек, неудачно отфильтрованный на этапе мастеринга. Тем не менее, если вы приобретаете музыку во FLAC или скачиваете ее ради бескомпромиссного качества, спектр имеет смысл проинспектировать. Полноценную спектрограмму можно изучить в Audacity или Spek, либо построить одной командой через ffmpeg:

ffmpeg -i track.flac -lavfi showspectrumpic=s=1200x600 spectrum.png

Перекодировать MP3 обратно во FLAC лишено всякого смысла: объем файла многократно возрастет, но утраченные частотные компоненты не восстановятся.

Слышно ли это

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

В 2009 году на конференции Audio Engineering Society была представлена работа Праса, Циммермана, Левитина и Гуаставино «Subjective Evaluation of MP3 Compression for Different Musical Genres». Тринадцать квалифицированных экспертов, включая профессиональных музыкантов и звукорежиссеров, сравнивали оригинальный CD-поток с MP3-файлами в диапазоне от 96 до 320 кбит/с. Согласно аннотации исследования, участники статистически значимо отдавали предпочтение несжатому аудио перед MP3 на битрейтах до 192 кбит/с включительно. Для кодировок 256 и 320 кбит/с подобных выводов в резюме зафиксировано не было.

База знаний Hydrogenaudio формулирует аналогичный вывод: в слепых тестах кодер LAME практически неотличим от оригинала на битрейтах, существенно уступающих максимально возможным.

Чужой опыт никак не гарантирует особенности вашего восприятия, поэтому проще провести проверку самостоятельно. Для этого потребуется софт, способный воспроизводить два анонимизированных трека с мгновенным переключением без пауз — например, плагин ABX для foobar2000 на ПК или функция сравнения версий в приложении Nami на смартфоне. Необходимое количество правильных ответов для исключения случайного угадывания рассчитывается по законам теории вероятностей:

Попыток

Верных ответов

Шанс угадать столько случайно

10

8 и больше

5,5%

10

9 и больше

1,1%

16

12 и больше

3,8%

16

13 и больше

1,1%

Результат 8 из 10 еще может быть банальной случайностью. А вот 9 из 10 или 13 из 16 с высокой вероятностью подтверждают реальное различение.

Два обязательных условия для валидности теста:

  • Уровни громкости обоих треков должны быть тщательно выровнены. Более громкий вариант подсознательно воспринимается как более качественный.

  • Наушники обязаны быть проводными. Беспроводные протоколы (SBC, AAC, aptX, LDAC) используют собственные алгоритмы сжатия с потерями, поэтому по пути к Bluetooth-гарнитуре FLAC подвергнется точно такому же перекодированию, как и MP3.

Что из этого следует

Задача

Формат

Почему

Домашняя библиотека, архив

FLAC

Бескомпромиссный мастер-источник: позволяет конвертировать себя в любой формат, не боится многократного пережатия

Телефон с ограниченной памятью

MP3 V0 или 320

Занимает в 3–4 раза меньше места, чем FLAC. Согласно исследованию 2009 года, эксперты отличали CD только от битрейтов ниже 192 кбит/с

Экономия мобильного интернета

от 128 до 192 кбит/с

Существенно снижает трафик, хотя потери уже могут проявиться на слух

Многократное редактирование и экспорт

FLAC

Десять циклов перезаписи в MP3 128 уничтожают более 10 дБ динамики

В архитектуре приложения Nami этот процесс реализован следующим образом: сервер хранит фонотеку в оригинальном качестве, а для экономии трафика налету конвертирует треки в Opus 128 кбит/с при передаче на мобильное устройство.

Ограничения замеров

  • В эксперименте использовался один конкретный трек из моей частной коллекции, распространение которого ограничено авторскими правами. Предложенные скрипты применимы к любым вашим аудиофайлам. На других жанрах численные показатели изменятся: например, перкуссия (кастаньеты, клавесы) дается кодекам MP3 гораздо сложнее, чем плотная рок-музыка.

  • Задействован единственный кодировщик — LAME 3.100. Устаревшие версии энкодеров на аналогичных битрейтах демонстрируют худшие результаты.

  • Метрика разницы в децибелах не тождественна субъективной слышимости, о чем упоминалось в третьем блоке. Финальный вердикт выносится исключительно по результатам слепого ABX-теста.

  • Форматы Opus и AAC в рамках данного теста не рассматривались. Они технологически современнее и обеспечивают значительно более высокую эффективность на низких битрейтах по сравнению с MP3. Напомню, что Fraunhofer закрыл официальную патентную программу по MP3 еще в апреле 2017 года, признав AAC более совершенным стандартом.

  • Аудиоформаты високого разрешения (FLAC 24 бит / 96 кГц) сознательно остались за рамками материала — это тема для отдельного масштабного спора.

Попробовать

Платформа Nami абсолютно бесплатна, не содержит рекламы и не требует регистрации. О концепции проекта в целом я рассказывал в предыдущей публикации.

 

Источник

Поделиться:

Похожие статьи

Поиск по играм, новостям и статьям…

Введите не менее двух символов

Введите не менее двух символов