Кодек AAC (Advanced Audio Coding) створювався в далекому 1997 році як більш якісний, ніж mp3, кодек для стиснення аудіо. І в чомусь він дійсно краще, наприклад: ви маєте доступ більш високі частоти дискретизації (до 96 кГц) і сам алгоритм використовує психоакустические особливості людського слуху.
Зараз AAC є основним аудіо-кодеком для стиснення з втратами екосистеми Apple. Ще він основний на YouTube і навіть російському ТБ-мовлення. 😀 Але нам цікава його бездротова реалізація. У всіх iPhone і в багатьох Android-пристроях доступна передача музики по bluetooth за допомогою конвертації цим кодеком.
Sennheiser Momentum True Wireless підтримують, крім інших, AAC
зміст:Так як параметрів bluetooth-передачі не вистачає для трансляції музики без втрат (lossless), використовуються кодеки: алгоритми, які поділяють передається сигнал на частини і відправляють «по повітрю» на навушники. А там, в свою чергу, через той же кодек відбувається «розпакування» і цифро-аналогове перетворення сигналу в музику. Думаю, всі любителі портативного аудіо приблизно знають ці схеми. 😎
- Частотний діапазон AAC;
- Рівень фонового шуму AAC;
- Причини поганої якості AAC на Android;
- Особливості AAC;
- підсумок.
Як включити AAC?
Як включити AAC?
1. Щоб увімкнути AAC і будь-який інший кодек потрібно активувати "Меню Розробника".
Меню Розробника, можна активувати ось так:
2. Після, в меню розробника, потрібно знайти «Аудіокодек для передачі через Bluetooth» і вибрати потрібний кодек:
Вибираємо потрібний кодек - LDAC, aptX, aptX HD, AAC, SBC.
Основні кодеки для передачі звуку по bluetooth: SBC, AAC, aptX, aptX Low Latency, aptX HD, LDAC. Крім того, відносно недавно був представлений ще один кодек від Qualcomm: aptX Adaptive, але пристрої з ним поки тільки очікуються. Який з кодеків краще - питання спірне. Якщо брати тільки бітрейт, то AAC сильно відстає. Однак на слух хороша його реалізація (в iPhone) не сильно відрізняється від aptX.
Максимальний бітрейт bluetooth-кодеків
Порівняння роботи AAC в двох основних мобільних операційних системах цікаво тим, що це єдиний кодек, крім «стародавнього» SBC, який використовується в обох. Apple вперто не хочуть платити Qualcomm за ліцензію на aptX. Мабуть, керуючись принципом: якщо не чути різниці, навіщо платити більше? 😀
10 популярних моделей навушників з підтримкою AAC
10 популярних моделей навушників з підтримкою AAC
- Audio-Technica ATH-M50xBT (311 $) - повнорозмірні бездротові закриті навушники. Легендарний басовий звук моделі M50 в bluetooth-виконанні.
- Beyerdynamic Aventho Wireless (560 $) - накладні бездротові навушники. Відмінний дизайн + фірмовий звук Beyerdynamic.
- Xiaomi Mi Collar Bluetooth Headset (59 $) - бездротові внутрішньоканальні гібридні навушники з шийним ободом. Автономність до 8 годин, підійдуть як для спорту, так і для повсякденного використання.
- Sony WF-SP700N (202 $) - повністю бездротові спортивні вакуумні навушники. Є захист IPX4 і активне шумозаглушення.
- Sennheiser Momentum True Wireless (356 $) - повністю бездротові внутрішньоканальні навушники. Одна з кращих за звучанням моделей в сегменті + фірмовий дизайн Sennheiser.
- Bowers & Wilkins PX (420 $) - повнорозмірні бездротові навушники з активним шумозаглушенням. Стильний зовнішній вигляд і якісний звук, відмінно підходять для електронної музики.
- Bang & Olufsen Beoplay H9i (544 $) - накладні бездротові навушники. Активне шумозаглушення, відмінний звук і сенсорне управління доповнюються якісною передачею голосу в режимі гарнітури.
- Marshall Monitor Bluetooth (166 $) - повнорозмірні бездротові навушники. Фірмовий зовнішній вигляд Marshall + цікавий потужний звук для енергійних стилів.
- Sennheiser Momentum Over-Ear Wireless (M2 AEBT) (290 $) - повнорозмірні бездротові навушники. Полюбилися багатьом гарний дизайн і потужний басовий звук Momentum в bluetooth-версії.
- Sony WH-1000XM3 (465 $) - повнорозмірні бездротові навушники з активним шумозаглушенням. Один з кращих варіантів ANC на ринку + безліч високотехнологічних «фішок» від Sony.
1. Частотний діапазон 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 працює більш-менш однаково на різних телефонах.
2. Рівень фонового шуму AAC
Рівень фонового шуму показує межу, після якої шум від алгоритмів стиснення кодека (в загальному випадку - від будь-відтворювальної апаратури) стає не відрізняється від корисного сигналу - музики. Чим нижче і стабільніше цей рівень по всьому діапазону частот, тим тихіші звуки ми зможемо почути (якщо вони є на записи).
Правильніше за все орієнтуватися від самого верхнього піку, він може заглушити тихіші звуки. Тому в цих графіках важливий не тільки рівень, але те, наскільки вони рівні ( «щільні»).
Рівень фонового шуму AAC (джерело - lossless файл)
На графіку добре видно, що рівень фонового шуму при використанні AAC у Huawei P20 Pro і Galaxy Note 8 відчутно вище, ніж у iPhone 7. У проміжках між піками (тестовими сигналами) видно, що AAC добре відфільтровує місця, де «звукової інформації» немає.
За цим графіком також видно, що алгоритми, які використовуються в AAC, враховують психоакустики. Найголосніше тестовий звук на 1 кГц (в цьому діапазоні наш слух найбільш чутливий), і шум навколо нього також найбільш високий. Виходить, що кодек AAC «маскує» тихіші звуки на одній і тій же частоті під більш гучними: чим голосніше звук, тим вище фоновий шум.
Саме так і працює наш слух: мозок маскує тихі звуки, якщо є більш гучні на цих. Ми сприймаємо оркестрову музику цільним «полотном», а не окремими сигналами (хоч і поділяємо інструменти). Цей же принцип: складно почути щось тихе крізь шум пилососа, наприклад.
CD-якість має на увазі рівень фонового шуму -96 дБ. Звичайно, в разі AAC таке якість не досягається, хоча на iPhone на 1 кГц ми бачимо шум -91 дБ, що в цілому непогано. А ось на Android-телефонах піки підбираються до -50 дБ: рівнем, коли фоновий шум явно помітний.
3. Причини поганої якості роботи кодека 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, як відомо, взагалі краще нічого стороннього не встановлювати. 😉
Bowers and Wilkins PX з підтримкою AAC
Крім того, в програмному середовищі Android на апаратному рівні підтримується безліч форматів аудіо, на відміну від iOS. Не варто забувати і про аудіо-туннелирование, яке працює з 4.4 версії Android. Це передача кодування \ декодування аудіо на виділену частину загального чіпсета - DSP (digital signal processor) - цифровий сигнальний процесор.
В iPhone використовується більш-менш однакові процесори, а в Android смартфонах вони можуть сильно відрізнятися, звідси різна робота аудіо-тунелювання і різниця в підсумковій кодуванні AAC, наприклад.
4. Особливості AAC
Ще один цікавий момент полягає в тому, що навіть файли вже закодовані в AAC, змінюються при передачі по bluetooth-версії цього кодека. Тобто, перекодуються ще раз. До цього тестові файли були в форматі без стиснення.
Верхній край частотного діапазону. Джерело - AAC файл
У загальному і цілому, картина повторюється. Спад у iPhone йде відчутно пізніше і вже ближче підбирається до верхньої межі слуху, на відміну від Android-телефонів.
Рівень фонового шуму (AAC файл)
З графіка рівня фонового шуму явно видно, що навіть в iPhone AAC-файл перекодируется при передачі через bluetooth AAC: додається близько 15 дБ шуму. Загальна ж тенденція не змінилася: як з lossless, так і з AAC файлами при передачі «під повітрю» через однойменний кодек краще виглядає iPhone: спотворень пере-кодування тут додає менше.
У підсумку можна сказати, що AAC - вельми цікавий кодек. Про його якості можна судити, просто відштовхуючись від рівня фонового шуму і частотного діапазону, як у випадку з іншими кодеками. AAC в своїх алгоритмах враховує психоакустики, слухове маскування - тільки в цифрах якість тут не виміряти.
AirPods 2, природно, підтримує AAC
5. Підсумок
З огляду на все вищесказане, стає зрозуміло, що якісна реалізація AAC (на iPhone) дає дуже непоганий підсумковий результат, слабо відмітний на слух від кодеків «високої якості», наприклад, aptX. Однак, якщо кодування відбувається в більш низькому бітрейті, як на протестованих Android-смартфонах, якість страждає дуже сильно.
Найголовніше - відмінності в роботі AAC на різних смартфонах. Той же SBC, наприклад, показує більш стабільні результати від моделі до моделі. Відповідно, якщо ваш телефон працює під управлінням Android, AAC не обов'язково якісніше, ніж SBC, як це часто вважається.
Apple AirPods в зв'язці з iPhone по AAC звучать досить непогано
На деяких моделях SBC може показати кращі результати, ніж AAC. І не тільки в цифрах, але й на слух. Тому, якщо ви купили навушники з підтримкою AAC, але звук в зв'язці з вашим телефоном вам не подобається, спробуйте переключитися на SBC, можливо саме у вашій моделі AAC реалізований гірше.
Реалізація AAC на iPhone краще - звучання дуже сильно (для стиснення з втратами) наближене до CD-якості. У середовищі Android AAC працює гірше, частіше за все на більш низькому бітрейті, звідси додаткові спотворення і втрати стиснення. При цьому на різних телефонах підсумковий результат може сильно варіюватися.
- Якщо у вас залишилися питання, залишайте їх у коментарях, я постараюся допомогти.