Что такое AAC (Bluetooth-кодек) — сравнение AAC на iOS и Android

Сравнение:

mp3

Плюсы: поддержка большинством устройств, Минусы: плохое качество при низком битрейте

aac

Плюсы: хорошее качество кодирования при низком битрейте Минусы: грузит процессор при воспроизведении

Намеренно не буду приводить примеры как звучит AAC, так как у него есть несколько профилей кодирования:

  • Low Complexity (LC-AAC)
  • High-Efficiency Advanced Audio Coding (HE-AAC)
  • Main Profile
  • High Efficiency Advanced Audio Coding (ААС+)

Вот последний как раз и активно используется в радиовещании. Как гласит вики:

Этот профиль, ориентированный на низкий битрейт. Представляет собой комбинацию AAC LC, но с частотой дискретизации вдвое меньшей, чем у оригинала, что существенно уменьшает накладные расходы на битрейт, затем используется технология восстановления спектра (Spectral Band Replication) путём его предсказания и использования некоторой дополнительной информации для восстановления. Естественно, такой подход не обладает большой точностью и пригоден только в случаях, когда очень необходимо уменьшить битрейт.

А так, более простым языком рассказывает Евгений:

SBR режим придумывающий частотку в обычном ААС не применяется. там естественный звук, а в плюсе — придуманная верхняя полоса от 6 кгц и выше синтезированная на основе очень сжатой инфы из исходного звука

Сделаем некоторые выводы: aac aac’у — рознь. Начав вещание — можно в том же RadioBOSS выставить aac+ и заниматься более важными делами, а их на старте радиостанции ещё много. Но потом стоит выделить время, и поиграться с настройками encoder’а, и получить более качественный звук при низком битрейте.

oggПлюсы: Свободный, лучше качество по сравнению с mp3 Минусы: Несовместим с некоторыми проигрывателями

Мнение Евгения про OGG:

За ogg тоже как то немного обидно. Ну да, флагманы не используют, ну фиг на них. Далеко не всё в Москве делается правильно, не раз убеждался, видя например базы файлов на FTP и.т.д. А при всём при этом на OGG ~68 килобит (всегда VBR) можно добиться такого же звука как 128 mp3 stereo! то есть как раз таки для экономии битрейта он тоже кому то окажется очень полезным, особенно если речь идёт о встраивании потока в сайт. Конечному пользователю в итоге будет всё равно, в чём закодировано. Любой браузер поймёт в любом случае, а звук при мелком трафике будет опять таки эффективней передан, звучать будет лучше, и даже не в моно. Если подвести итог: в случае алгоритмов звука — алгоритмы кодирования OGG примерно одинаковы с aac, вопросы только в юридических тонкостях.

Частотный диапазон AAC

AAC сжимает аудио с потерями: «лишние» частоты отсекаются, сигнал выравнивается (добавляются «перекрывающие» блоки информации), корректируются ошибки. Примерно по такому же принципу работают все lossy кодеки (кодеки для сжатия с потерями).

Потери в основном выражаются в урезанном частотном диапазоне: обычно верхняя граница ВЧ. Кроме того, из-за выравнивания сигнала могут добавляться (и чаще всего добавляются) искажения, которые могут быть в любой области диапазона.

Посмотрим, как работает AAC (источник – lossless аудио-файл) в сравнении с SBC на некоторых Android-смартфонах и iPhone:

Полный частотный диапазон с использованием AAC и SBC кодеков

Сразу видны серьёзные отличия в реализации AAC на разных смартфонах. Стоит учитывать несколько моментов:

  • человек теоретически может слышать звуки в районе 20 Гц – 20 кГц;
  • бОльшая часть «материала» в музыке находится ниже 16-18 кГц;
  • с возрастом мы хуже воспринимаем ВЧ (до 16-17 кГц в среднем после 30 лет)

Рассмотрим край ВЧ-диапазона покрупнее:

Как видно, AAC на Huawei P20 Pro «срезает» ВЧ очень рано: около 14 кГЦ. Эти частоты слышат даже совсем немолодые люди, если не было проблем со слухом. Samsung Galaxy Note 8 (через AAC) ограничивает верхний порог до 17 кГц. Но iPhone 7 справляется лучше: около 19 кГЦ.

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

Поддержка различных форматов различными браузерами:

Следует обратить внимание, что не все браузеры поддерживают определённые форматы. Собрал данные в таблицу. Данные будут верны если проигрывать радио при помощи HTML5. При использовании «старых» Flash проигрывателей, нюансов может быть больше.

Браузер / Кодекmp3aacogg
Google Chrome / Яндекс Браузер и прочие на ChromiumДаДаДа
Mozilla FirefoxДаДаДа
Internet ExplorerДаДаНет
OperaДаНетДа
SafariДаДаНет

Особенности AAC

Ещё один интересный момент заключается в том, что даже файлы уже закодированные в AAC, меняются при передаче по Bluetooth-версии этого кодека. То есть, перекодируются ещё раз. До этого тестовые файлы были в формате без сжатия.

Верхний край частотного диапазона. Источник – AAC файл

В общем и целом, картина повторяется. Спад у iPhone идёт ощутимо позднее и уже ближе подбирается к верхней границе слуха, в отличие от Android-телефонов.

Уровень фонового шума (AAC файл)

Из графика уровня фонового шума явно видно, что даже в iPhone AAC-файл перекодируется при передаче через Bluetooth AAC: добавляется около 15 дБ шума. Общая же тенденция не изменилась: как с lossless, так и с AAC файлами при передаче «во воздуху» через одноимённый кодек лучше выглядит iPhone: искажений пере-кодировка тут добавляет меньше.

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

AirPods 2, естественно, поддерживает AAC

Вместо тысячи слов:

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

СтанцияКоличество потоковФормат / Битрейт
Европа Плюс1HLS aac 96 kb/s
Авторадио1mp3 128 kbps
Дорожное радио1HLS aac 96 kb/s
Русское радио
Ретро FM1HLS aac 96 kb/s
Радио Дача2aac 24 / aac 56
Радио Шансон3mp3 64 / mp3 128 / mp3 256
Юмор FM1mp3 256 kbps
Вести FM5mp3 64 kbps mp3 128 kbps mp3 256 kbps aac 32 kbps aac 64 kbps
Радио России1mp3 192 kb/s
Радио Energy1aac 64
Маяк1aac 64
Love Radio2aac 24 aac 56
Наше Радио2mp3 64 mp3 128
DFM1aac 96
Хит FM1aac 96
Эхо Москвы1mp3 32
Серебряный Дождь2mp3 48 mp3 128 Не видно на сайте: aac 64
Радио Рекорд1mp3 320

Причины плохого качества работы кодека AAC на Android

Основных причин разницы качества AAC на Android и iOS две:

  • приоритизация процессов по энергоёмкости на Android;
  • разные программные средства кодирования AAC;

Xiaomi Mi AirDots Pro и Apple AirPods поддерживают кодек AAC

В Andriod есть алгоритмы Energy Aware Scheduling (EAS). Эта система изменяет приоритеты процессов по их энергоёмкости. То есть, выбор на какую задачу будет отведено больше процессорной мощности (а процессор в смартфонах выполняет огромное количество задач одновременно) может варьироваться.

Если система настроена на экономию заряда аккумулятора, как у Huawei P20 Pro, то при выполнении сложной для процессора задачи приоритет будет отдан именно оптимизации энергопотребления. Как было показано выше, AAC использует психоакустические алгоритмы при кодировке, а это довольно тяжёлая нагрузка на процессор. Соответственно, эта задача будет выполняться с меньшим битрейтом и качеством в целом для оптимизации затрат энергии.

Sony WF-SP700N – полностью беспроводные наушники с поддержкой AAC

Если бы EAS дал процессу кодировки AAC высокий приоритет, он сильно «просаживал» бы батарею, хотя качество бы улучшилось. Но в приоритете именно экономия заряда, качеством EAS в данном случае жертвует.

Вторая основная причина – разные «кодировщики», программные средства кодирования AAC. В iOS используется Apple AAC, считающийся наиболее качественным из существующих. А в Android по умолчанию – Fraunhofer FDK AAC, он чуть хуже «справляется со своими обязанностями».

Apple AAC, естественно, не существует «под» Linux, поэтому установить его на Android-смартфон не удастся. А на iPhone, как известно, вообще лучше ничего стороннего не устанавливать.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]