Какой кодек bluetooth лучше для магнитолы
Разъём под наушники оканчательно изчез из смартфонов. Беспроводных наушников становится всё больше, а значит самое время поговорить про Bluetooth-кодеки. Тем более тема полна спорных вопросов.
Правда ли, что кодек SBC так плох? В чем популярность AAC? LDAC — это маркетинговое фуфло? И что готовит нам новый король кодеков от самой Bluetooth?
А также сегодня расскажем, как на качество звучания влияют другие железки внутри наушников? И послушаем немного на примере новых наушников.
Кодеки и сжатие
Люди часто сравнивают кодеки только по одному параметру — максимальному битрейту. По идее - чем выше битрейт, тем больше передается данных и тем лучше качество.
Вот, к примеру, посмотрите на картинку, у LDAC максимальный битрейт 990 кбит/с, ведь это гораздо лучше, чем 250 кбит/с у AAC?
Но это не всегда так, ведь на качество звука и стабильность соединения влияет гораздо больше факторов, чем просто битрейт. Поэтому сегодня будем копать глубоко.
Сперва взглянем на линейку. Что у нас есть?
AAC, SBC - самые популярные и массовые. Еще есть LDAC с высоким битрейтом. А еще aptX и с недавних пор новый LHDC, который продвигает HUAWEI. И у него есть несколько навороченных фишек.
Вообще, важно сказать, что за звучание отвечает не только кодек. Сами инженерные решения и компоненты в наушниках тоже очень важны. Кстати? новые наушники HUAWEI мы сегодня протестируем - FreeBuds 4i . Например, здесь за звук отвечает: динамический излучатель на 10 мм, это немало. Да еще и с полимерной диафрагмой.
SBC — low-complexity sub-band codec
А начнем мы с кодека SBC. Это стандартный кодек для всех Bluetooth-аудиоустройств. Он поддерживиется всеми наушниками и плеерами кроме устройств Apple, потому как Apple работает только с кодеком AAC. О чем мы еще поговорим.
У SBC есть масса преимуществ. Во-первых, это очень простой для вычислений кодек. Для того чтобы сжать аудио, всё что он делает — это разбивает аудио на несколько частотных полос: низкие, средние высокие частоты, а дальше начинает квантовать, то есть округлять значения, тем самым экономя биты информации.
К примеру, вот на этой спектрограмме чередуются сжатые и несжатые фрагменты. На участках закодированных в SBC видно как кодек режет тихие звуки выше 17,5 кГц и совсем не выделяет битов информации для полосы выше 20 кГц.
SBC может работать в очень широком диапазоне битрейтов - от 10 до 1500 кбит/с и от этого, естественно, сильно зависит качество. При битрейте 328 кбит/с - звук отличный, практически неотличимый от оригинала, но уже при 240 кбит/с - звук посредственный.
При этом SBC на максимальном битрейте 1500 кбит/с вы нигде не встретите, потому как все производители наушников режут битрейт до 328 кбит/с. Почему так? Скорее всего дальше уже начинаются проблемы с соединением.
Более того, у кодека SBC нет фиксированных профилей, есть только рекомендуемые. Поэтому производители наушников могут выставлять любые ограничения на битрейт, какие-только захотят. Отсюда и плохая репутация у кодека.
Но если захотеть, можно так настроить кодек, что у него и низкие задержки будут и высокое качество звучания. Гибкость кодека SBC - это и его преимущество, и недостаток одновременно.
В наших наушниках он тоже есть. Послушаем! На самом деле, одна из важных вещей в кодеках - их алгоритмы обработки. А если в наушниках есть еще и шумоподавление, как в наших, то на процессор ложится высокая нагрузка. Для этого тут специальный чип от BES Technic, но к этому еще перейдем.
FreeBuds 4i поддерживают и второй популярный кодек - AAC. Давайте разберемся с ним.
AAC — Advanced Audio Coding
Второй по популярности кодек - AAC. Это и не удивительно, ведь это кодек по умолчанию для устройств на iOS и MacOS.
AAC, в отличие от SBC, сложный для вычисления кодек. А всё потому, что для сжатия аудиосигнала он использует серьёзную психоакустическую модель. Эм… Серьёзную что?
Да, есть такая наука - психоакустика. Она изучает то, как человек воспринимает звуки с точки зрения физиологии и психологии.
Простой пример. Если одновременно хлопнуть в ладоши и проткнуть иголкой воздушный шар, то хлопок в ладоши вы наверняка не услышите. Потому что более громкий звук, да еще и на схожей частоте просто замаскируют более тихий звук. Такое свойство человеческого восприятия пришлось очень на руку создателям аудиокодеков. Ведь всё, что человек и так не услышит, можно спокойно удалять.
Первый удачный аудиокодек, в котором была использована психоакустическая модель - это MP3. А в кодеке AAC эту модель еще сильнее прокачали, поэтому AAC при битрейте 256 кбит/с, для человека звучит также хорошо как MP3 320 кбит/с. А если учесть, битрейт в принципе, не может быть низким. Он варьируется от 256 кбит/с до 320 кбит/с, выходит что AAC в принципе не может плохо звучать и при любых условиях он будет уделывать SBC. Так ведь?
К сожалению, нет. Так как AAC сложный для вычисления кодек, чтобы он хорошо звучал, нужен очень хороший декодер. Например, их собственный, который так и называется Apple AAC. Кстати, все компании платят лицензионные отчисления за использование кодека. Ну точнее, мы платим.
Требует лицензирования и лицензионных отчислений: $15000 единовременно (или $1000 для компаний с менее 15 работниками) + $0.98 за первые 500000 устройств.
В Android-устройствах в лучшем случае используется второй по качеству кодировщик — Fraunhofer FDK AAC, а по факту вообще не пойми что. Потому как качество AAC очень сильно варьируется. Взгляните на тест от SoundGuys.
Фиолетовая линия — это тестовый файл. И видно, что iPhone (голубая линия) обрубил гораздо меньше информации, чем Android устройства.
С другой стороны посмотрите как уделывают, Android-смартфоны с SBC всех остальных с кодеком AAC, включая iPhone.
Поэтому на Android никогда не знаешь, как хорошо будет звучать AAC.
Более того, есть и другая проблема. Так как кодек тяжелый, то увеличиваются и задержки.
Как правило, у AAC задержки чуть выше, чем у других кодеков. Хотя справедливости ради задержки больше зависят не от кодеков, а от девайса, на котором происходит декодирование.
Одна из фишек FreeBuds 4i - низкая задержка. Она реализована за счет собственных аглоритмов. Но лучше работает ожидаемо только со смартфонами Huawei. Кстати еще тут есть мгновенное подключение.
И даже если вы и так слушаете файл формата AAC на iOS=устройстве, всё равно его для начала нужно декодировать из AAC, а потом снова закодировать в ACC, чтобы передать по воздуху. При этом качество чуть-чуть просядет. Это необходимо, чтобы во время воспроизведения музыки могли также микшироваться и другие системные звуки, например, уведомления.
FREEBUDS 4i
Так какой всё таки лучше использовать кодек для Android? SBC или AAC?
Ответ простой, зависит от девайса и наушников.
Возьмём, к примеру, новые TWS наушники от HUAWEI — FreeBuds 4i. Они поддерживают и SBC, и AAC. Но HUAWEI явно хочет, чтобы вы юзали AAC. А всё потому, что SBC тут порезан до 220 кбит/с, а на таком битрейте SBC выдаёт очень посредственное звучание, в добрых традициях первых Bluetooth-гарнитур.
А вот AAC, наоборот, звучит и работает идеально. Но достигается это за счет жесткой хардверной силы — отдельного чипа со встроенным кодером и ЦАПом BES2500Z от BES Technic. Есть даже его фоточки, зацените.
Эта штука тут прокачивает AAC на максимум: обрабатывает аудио, кодирует, декодирует, уменьшает задержки, снижает энергопотребление и прочее. К примеру, тут работает технология синхронизации аудио и видео при просмотре YouTube и задержка вообще отсутствует.
Также эти наушники живут дольше всех наушников HUAWEI — 10 часов непрерывного воспроизведения без кейса и 22 часа с подзарядкой от чехла. Но это правда с выключенным шумоподавлением. С включенным на пару часов поменьше, что всё равно очень хорошо. Особенно с учетом того, что тут есть быстрая зарядка: 10 минут зарядки хватит на 4 часа музыки.
Что еще радует - качество микрофонов: ты хорошо слышишь собеседника, собеседник хорошо слышит тебя.
Управляются наушники при помощи касаний: двойное нажатие - Play/Pause или принять/завершить вызов. Долгое касание, переключение режимов шумоподавления и прозрачности.
Но самое главное, как они звучат? Тут интересно. Звук нетипичный для TWS-наушников, в которых обычно задирают басы, как на Sony. Тут наоборот бас не выпячивается. Из-за чего отлично слышен вокал и вообще вся середина и верха очень детализированные. В целом, звучание очень объёмное и оно на голову выше любых наушников Apple и уж тем более каких либо недорогих TWS. Добавим сюда удобный компактный кейс и в общем, наушники огонь.
Отличный звук, время автономной работы, есть режим шумоподавления, звукопроницаемости, компактный кейс и приятный дизайн самих наушников. А также еще одна интригующая технология, но о ней мы поговорим в конце ролика. А пока продолжаем про кодеки.
Кстати, важный момент, когда вы слушаете музыку по Bluetooth - задержки неизбежны. Потому как прежде чем что-то закодировать в Bluetooth кодек, нужно предварительно декодировать файл, который вы сейчас слушаете.
Про SBC и AAC понятно — оба кодека могут звучать отлично, если будут в связке с правильным оборудованием или наоборот будут звучать плохо с неправильным. Но есть ли кодек который будет звучать хорошо всегда? Да, такой кодек есть и это aptX.
aptX — это простой для вычислений кодек без всякой психоакустики. Он использует адаптивную дифференциальную импульсно-кодовую модуляцию (ADPCM).
Не будем вдаваться в подробности, что это такое. Но если по-простому, он тоже использует квантование — округление значений сигнала.
Кодек aptX принадлежит Qualcomm, но вопреки всеобщему заблуждению, Qualcomm его не изобретали. А появился он еще в 1988 году, за 14 лет до появления Bluetooth.
В общем, технология старая, а сам кодек нельзя назвать самым умным, качественным и эффективным. Тогда почему же aptX считается хорошим кодеком? На то есть несколько причин.
Во-первых, у aptX есть несколько разновидностей, которые хорошо справляются со своими задачами.
Обычный aptX отлично подходит для нетребовательного слушателя. На сходном битрейте он будет звучать примерно как SBC. Но aptX поддерживает битрейт выше SBC, а значит при хорошем сигнале и звучать он будет лучше.
SBC 10 — 328 кбит/с
aptX 128 / 256 / 352 / 384 кбит/с
aptX HD с улучшенным профилем кодирования и еще более задранным битрейтом.
aptX 128 / 256 / 352 / 384 кбит/с
aptX HD 192 / 384 / 529 / 576 кбит/с
Он уже подойдёт более придирчивому слушателю. По тестам SoundGuys, это кодек способен выдавать близкое к CD качеству, а значит кодек подойдет любителям lossless музыки.
Есть aptX Low Latency, с уменьшенными задержками для любителей игр, и aptX Adaptive с динамически меняющимся битрейтом для более стабильного соединения.
aptX 128 / 256 / 352 / 384 кбит/с
aptX HD 192 / 384 / 529 / 576 кбит/с
aptX Low Latency 352 кбит/с
aptX Adaptive 276-420 кбит/с
Но самое главное aptX используют жестко заданные профили, которые не может изменить ни производитель смартфона или плеера, ни производитель наушников. А значит, вы всегда будете знать наперед, какое качество звука вы получите без сюрпризов.
Но, чтобы получить все эти классные разновидности, aptX придется немало заплатить. Ведь каждую разновидность aptX нужно отдельно лицензировать у Qualcomm. Плюс нужно будет докупать еще всякие чипы для поддержки самых классных функций.
Типа TrueWireless Stereo, которая позволяет направлять два независимых сигнала в оба наушника.
А вот наушники HUAWEI умеют это делать за счет своих технологий, поэтому они часто и стоят дешевле, и батарейку держат лучше. Сила вертикальной интеграции.
Ну а без всех дополнительных плюшек aptX - кодек не плохой, но опять же, по всем параметрам, не выдающийся. Впрочем, вы сами можете послушать разницу в звучании SBC, aptX и aptx HD прямо у себя в браузере. Благодаря вот этому чудесному человеку с Хабра.
Особо обратите внимание на эквалайзере, как SBC внаглую отрезает все частоты после 20 кГц. Картинка кликабельна и ведёт на плеер из статьи .
И тут мы потихоньку приближаемся к выдающимся кодекам для ценителей самого качественного звука. Конечно же речь про LDAC.
Это так называемый Hi-Res кодек от Sony и его главная отличительная черта — поддержка высоких битрейтов - вплоть до 990 кбит/с и частоты дискретизации до 96 кГц
303/606/909 кбит/с (для 44.1 и 88.2 кГц)
330/660/990 кбит/с (для 48 и 96 кГц)
Кодек способен выдавать CD-качество без потерь, в отличие от aptX HD, который всё-таки близок к CD-качеству, но не совсем. Все это подтверждают тесты SoundGuys.
И недостатка у кодека буквально два:
- Маркетинг. Его продвигают как кодек для Hi-Res аудио, отсюда и поддержка частоты дискретизации 96 кГц. Но конечно же, ни один беспроводной кодек даже близко не справится с настоящим Hi-Res.
- Качество соединения. Оно уж очень слабое. Если слушать на максимальном качестве 990 кбит/с, то стоит подальше отойти от телефона, прикрыть его рукой или просто положить в задний карман, почти гарантированно начинаются небольшие заикания, что сразу же портит кайф от прослушивания качественного звука.
Короче, кодек явно не для пробежек.
Плюс есть третий недостаток. На низком битрейте, который для этого кодека целых 330 кбит/с, LDAC проигрывает по качеству и SBC и AAC и aptX и ситуацию усугубляет то, что многие смартфоны по умолчанию врубают именно такое качество.
Какое качество выставляет ваш смартфон можно посмотреть в настройках для разработчика.
HWA LHDC — Low Latency High-Definition Audio Codec
Но не спешите расстраиваться, если главный аудиофильский кодек вас разочаровал. Ведь есть еще более аудиофильский кодек, который лишен недостатков LDAC.
Имя этому кодеку LHDC или HWA, его по разному называют.
Так вот LHDC, что буквально значит кодек высокого разрешения с низкими задержками. Он разработан союзом Hi-Res Wireless Audio и компанией Savitech. А продвигает кодек в массы HUAWEI. Впервые он появился в смартфоне HUAWEI Mate 10. А сейчас он поддерживается во все новых смартфонах HUAWEI и еще в куче смартфонах Xiaomi:
- Huawei P30
- Huawei P20 Pro
- Huawei P20
- Huawei P20 Lite
- Huawei Mate 10 pro
- Huawei Mate 10
- Huawei Mate RS
- Xiaomi Mi 9 Pro 5G
- Xiaomi Mi Note 10 Pro
- Xiaomi Mi Note 10
- Xiaomi Mi 8 Transparent Edition
- Xiaomi Mi 8 Pro
- Pocophone F1
- Xiaomi Mi 8 SE
- Xiaomi Mi 8 Lite
- Xiaomi Mi Max 3
- Xiaomi Mi Mix 3
- Redmi K20
- Xiaomi Mi 9T
- Redmi K20 Pro
- Xiaomi Mi 9T Pro
- Xiaomi Mi 9 SE
- Xiaomi CC9
- Xiaomi Mi 9 Lite
- Redmi K30
- Redmi K30 5G
Н в будущем его поддержка может появиться вообще во всех смартфонах, потому как он поддерживается Android 10 и является частью AOSP.
Так вот, LHDC можно сказать прокаченная версия LDAC. Потому что он забирает все плюсы LDAC, а именно, высокий битрейт, вплоть до 900 кбит/с и частоту дискретизации до 96 кГц.
LHDC — 400/560/900 кбит/с
Но при этом добавляет две версии кодека с низкой задержкой, вот с такими названиями:
LHDC с низкой зарежкой = LDHC-LL или LARC
И решает главную проблему LDAC — слабую надёжность соединения.
В общем, LHDC - пока претендент номер один на звание идеального кодека для аудиофилов. Но чтобы в этом наверняка убедиться нужно дополнительное подробное тестирование. Пока информации в сети о кодеке мало.
Отсюда резонный вопрос, у меня тут наушники от HUAWEI и я рассказываю про кодек от HUAWEI. А есть ли он в этих наушниках?
Эм… нет. Это базовая модель, в которой особое внимание уделили оптимизации.
Но самый интересный и интригующий нюанс, эти наушники поддерживают новую версию Bluetooth 5.2, в которую добавили поддержку нового кодека пришедшего на смену SBC. Кодек называется LC3 и он должен произвести революцию в мире беспроводного аудио такую же, как в свое время произвел формат MP3.
Чтобы вы понимали, при битрейте в два раза ниже чем SBC, новый кодек звучит на слух практически неотличимо от несжатого аудио.
Это действительно большой прорыв. Но, несмотря на то, что LC3 - это неотъемлемая часть Bluetooth 5.2 и всё устройства с новым Bluetooth должны поддерживать новый кодек, пока нет ни одного смартфона с Bluetooth 5.2. И эти наушники тоже пока что не поддерживают ни новый кодек, ни новые фишки Bluetooth 5.2, которые сами по себе - отдельный большой разговор. В будущем, возможно поддержку добавят, но мы точно не знаем.
Поэтому об LC3 и Bluetooth 5.2 мы поговорим в отдельном большом материале.
Итоги
Мы рассказали не обо всех кодеках, а только о самых популярных. Например, мы не упомянули о Samsung Scalable Codec, у которого основная фишка стабильность соединения, и это по сути конкурент aptX Adaptive. Не упомянули про UAT-кодек с бешеным битрейтом 1,2 МБит/с, который работает только через приложение Hiby Music.
Мы поговорили только про самые популярные кодеки иначе разговор был бы бесконечный. Поскольку информации много, для вашего удобства мы составили сравнительную табличку, чтобы вам было проще ориентироваться.
А если вам приглянулись наушники HUAWEI FreeBuds 4i - ныряйте по ссылке . Как обычно там вас ждут подарки и специальные предложения от HUAWEI.
Существует 5 основных Bluetooth аудио кодеков, с помощью которых звук и передаётся от источника в наушники (или колонки) по Bluetooth: SBC, AAC, aptX, aptX HD и LDAC. Так как беспроводное подключение становится всё более и более популярно, неплохо будет разобраться в том, что такое Bluetooth кодеки, и как они работают.
⭐ Лучшие беспроводные наушники 2022:
Стоит сразу отметить 2 момента:
- Звук по Bluetooth всё ещё ощутимо хуже проводного по всем параметрам качества;
- Беспроводной звук с качественными кодеками уже на данном этапе способен удовлетворить потребности большинства пользователей.
Как выбрать, изменить, узнать Bluetooth кодек — на телефоне android?
Меню Разработчика, можно активировать вот так:
Выбираем нужный кодек — LDAC, aptX, aptX HD, AAC, SBC.
Что лучше: слушать музыку по проводу или через Bluetooth?
- Для так называемого "аналитического" прослушивания музыки (в тихих домашних условиях) лучше выбрать проводное соединение.
- А вот для шумных мест, вроде транспорта или городских улиц, Bluetooth-соединение вполне подойдёт: окружающие шумы скрывают и компенсируют огрехи работы кодеков. Так же Bluetooth наушники в приоритете у молодых людей, которые любят слушать музыку в движении.
Основные понятия передачи звука по Bluetooth
Звук по Bluetooth сейчас передаётся через профиль A2DP. Это часть потока, специализированная под трансляцию аудио-сигнала.
Теоретически, этот профиль не имеет ограничений на занимаемую полосу передачи данных. Но существует ограничение для всего формата: не более 1 Мбит\с. Соответственно, несжатый звук даже формата CD (там битрейт около 1,4 Мбит\с) по Bluetooth передать невозможно.
Зачем же все эти ограничения? Энергоэффективность. Иначе не было бы возможности слушать беспроводные наушники по 20 часов. А если и была бы, то аккумуляторы ощутимо пригибали бы голову к земле. 😀
Беспроводные наушники в первую очередь – это удобство
Если ваш телефон поддерживает, например, LDAC (а он добавлен в Android, начиная с 8 версии на уровне ОС), а наушники только SBC, то прелестей высокого разрешения вы не почувствуете, передача будет идти по SBC.
Что такое битрейт, думаю, известно всем. Это количество бит, используемых для передачи данных в секунду. Чем он выше, тем, очевидно, лучше. Но тем больше требуется ресурсов, в частности, энергопотребления, места на диске и т. д.
Для оптимизации ресурсов уже давно используется сжатие: с потерями и без. Сжатие без потерь (lossless) использует алгоритмы, позволяющие уменьшить битрейт и размер файла без изменения оригинала. То есть, из lossless можно восстановить точную копию изначального несжатого файла.
Максимальный битрейт Bluetooth-кодеков
Lossless обработка позволяет уменьшить битрейт максимум в 2 раза. Или около того. Например у файла CD-качества (1411 кб\с), сжатого без потерь, мы увидим значения 770-900 Кбит\с. Всё, что ниже – сжатие с потерями.
Пример: уровень шума LDAC 990 кбит\с
Показатель уровня принимаемого сигнала выступает в роли индикатора качества связи. Измеряется в дБм (децибел-милливатт). По вертикальной оси отложены потерянные секунды при воспроизведении звука.
- До -60 дБм – уровень, достаточный для передачи данных в реальном времени;
- На -70 дБм могут начинаться артефакты и прерывания;
- Ниже -80 дБм – ощутимые задержки и потери пакетов;
Качество соединения для разных кодеков
ТОП-5 Bluetooth кодеков — какой кодек лучше?
Все Bluetooth-кодеки – алгоритмы сжатия с потерями.
0. AptX Adaptive и aptX Low Latency
Самые передовые кодеки семейства aptX
- Битность: 16 и 24 бит
- Частота дискретизации: 44.1 и 48 кГц
- Битрейт: 279 – 420 кБ\с (динамический, адаптивный)
- Задержка: 50-80 мс
Как можно понять из названия, aptX Adaptive имеет переменный битрейт (279 – 420 кБ\с), который автоматически адаптируется под окружающие условия и качество воспроизводимых файлов. Не особо понятно? Тогда чуть подробнее.
Pioneer SE-CL6BT поддерживают aptX
AptX Low Latency – Bluetooth кодек с минимальной на сегодняшней день задержкой звука. Она составляет около 30-40 мс и практически не заметна. Соответственно, этот кодек актуален для просмотра видео и\или игр с использованием беспроводных наушников.
Важно понимать, что, по большому счёту, почти все кодеки линейки aptX – это один и тот же кодек, но с разницей в некоторых параметрах. Например, aptX HD отличается от aptX другими параметрами кодирования (при этом основные алгоритмы те же), а aptX LL отличается от основного aptX уменьшенным буфером. Только Adaptive, судя по всему, использует другие основные алгоритмы. Но это не точно. ©
Сравнение aptX Adaptive, LDAC, AAC и SBC
AptX Adaptive и Low Latency – самые новые и перспективные из кодеков от Qualcomm. Adaptive, судя по всему, скоро будет основным в линейке, заменив более старые версии. Производитель обещает обратную совместимость. Но, конечно, использование конкретных процессоров от Qualcomm необходимо для работы их кодеков: как новых, так и старых.
Эти кодеки предваряют общий топ так как, как говорится, за ними будущее. Однако, они ещё далеко не так широко распространены (и опробованы), как более старые кодеки семейства aptX
Sennheiser IE 80S BT наушники с поддержкой aptX Low Latency
AptX Adaptive
- Надёжное соединение, благодаря адаптивному битрейту.
- Поддерживает 16 бит/44. кГц и 24 бит/48 кГц.
- Хорошее качество звука.
- Высокая энергоэффективность.
- Маленькие задержки звука (50-80 мс).
aptX, aptX HD и aptX Adaptive битрейт
- Низкая распространённость.
- Для работы требуется один из новых процессоров Qualcomm.
- Качество звука всё же ниже, чем у LDAC.
AptX Low Latency
- Самые низкие задержки звука.
- Хорошие параметры передачи сигнала и качество звука (как у aptX).
- Достаточно надёжная связь.
aptX, aptX Low Latency, AAC и SBC битрейт
1. AptX HD
AptX HD – наиболее оптимальный Bluetooth-кодек, который позволяет передавать звук в качестве, близком к CD. По совокупности параметров этот кодек даёт оптимальное соотношение качества звука и стабильности связи. Он ощутимо загружает полосу передачи Bluetooth, но при этом даёт весьма достойное звучание.
Bowers and Wilkins PX с поддержкой aptX HD
Частотный диапазон SBC, aptX, aptX HD
Максимальный битрейт aptX HD – 576 кбит\с. Соответственно, Hi Res звук битрейтом 4,5 Мбит\с сжимается в соотношении 8:1, а CD качество в 2,5 раза. При сжатии сигнал разделяется на 4 частотные полосы и квантуется 24 битами с переменной разрядностью.
Логично предположить, что передача звука CD-качества будет происходить с не очень большими потерями.
Уровень фонового шума aptX HD
Зато почти по всему диапазону уровень шума соответствует параметрам CD-качества. Судя по всему, 16-битные записи через aptX HD слушать вполне комфортно, потери и искажения невелики.
aptX HD – светло-красный график
Учитывая, что по битрейту данный кодек занимает больше половины полосы пропускания Bluetooth, результат ожидаем. Комфортное прослушивание, в принципе, возможно.
AptX — это семейство фирменных алгоритмов сжатия (аудиокодеков), которые в 2022 году, мы часто используем при прослушивании музыки с помощью беспроводных наушников. Очень грубо говоря, это функционал, позволяющий улучшить звучание ваших беспроводных Bluetooth наушников. Тема aptX важная и интересная, особенно в беспроводном 2022 году 🙂 .
Если ваш выбор пал беспроводные Bluetooth наушники, то обязательно стоит разобраться в теме кодеков aptX, понять насколько это важно и стоит ли подбирать наушники с технологией aptX (HD).
⭐ Лучшие беспроводные наушники 2022:
Алгоритм сжатия, используемый в aptX-кодеке был разработан ещё в 80е годы прошлого века. Сейчас права на этот кодек принадлежат известной компании Qualcomm. Они заявляют, что aptX даёт качество сравнимое с CD, а aptX HD и вовсе не отличим от Hi-Res 24-битного звука. Но эти заявления мы проверили ниже.
Максимальный битрейт Bluetooth-кодеков
Как известно, соединение Bluetooth не может передавать аудио без потерь – не хватает ширины потока. Поэтому создано несколько кодеков для сжатия с разным качеством итогового звука: SBC, AAC, aptX, aptX Low Latency, aptX HD, LLDAC и новый aptX Adaptive.
1. Особенности сжатия кодеков и популярные модели наушников с aptX и aptX HD
- Marshall Major III Bluetooth (171$) – накладные беспроводные наушники;
- Sennheiser HD 4.50 BTNC (175$) – полноразмерные беспроводные наушники;
- Harman/Kardon Soho Wireless (124$) – беспроводные накладные наушники;
- Sennheiser Momentum Over-Ear Wireless (M2 AEBT) (290$) – беспроводные полноразмерные наушники;
- Marshall Monitor Bluetooth(166$) – полноразмерные беспроводные наушники;
- Harman/Kardon BT (330$) – накладные беспроводные наушники;
- MEE audio X7 Plus (104$) – внутриканальные беспроводные наушники;
- Sennheiser Urbanite XL Wireless (311$) – полноразмерные беспроводные наушники;
- Bowers & Wilkins P5 Wireless (290$) – беспроводные накладные наушники;
- HUAWEI AM60 (57$) – вакуумные беспроводные наушники;
- MEE audio Air-Fi Matrix3 AF68 (132$) – беспроводные полноразмерные наушники.
- Beyerdynamic Aventho Wireless (560$) – накладные беспроводные наушники;
- Sony WI-1000X (264$) – внутриканальные вакуумные наушники;
- Audio-Technica ATH-DSR7BT (311$) – полноразмерные беспроводные наушники;
- Sony WH-1000XM3 (465$) – беспроводные полноразмерные наушники с активным шумоподавлением;
- Pioneer SE-MS7BT (192$) – полноразмерные беспроводные наушники;
- Bowers & Wilkins PX (420$) – полноразмерные беспроводные наушники с активным шумоподавлением;
- Beyerdynamic Amiron Wireless (932$) – беспроводные полноразмерные наушники;
- Sony WH-CH700N (202$) – полноразмерные беспроводные наушники;
- Sony WHH900N h.ear on 2 Wireless NC (261$) – полноразмерные беспроводные наушники с активным шумоподавлением.
2. Частотный диапазон aptX, aptX HD
Для начала стоит разобраться, весь ли слышимый человеку частотный диапазон передают кодеки aptX и aptX HD. В качестве сравнения и отправной точки посмотрим также на результаты SBC – кодека, который есть везде.
Частотный диапазон SBC, aptX, aptX HD
Для однозначного восстановления исходного аудио-сигнала частота дискретизации должна более, чем в 2 раза превышать наибольшую частоту спектра. Так и получаются известные всем 44.1 кГц и упомянутые 48 кГц. Эти значения более, чем в 2 раза превышают максимальный полезный сигнал в спектре: 20 кГц.
3. Уровень фонового шума aptX, aptX HD
Однако, есть ограничение уже оборудования, используемого для квантования: около -124 дБ. Большинство любителей наушников различат искажения минимум на -90 дБ.
Sennheiser IE 80 S BT с поддержкой aptX
Красный пунктир обозначает теоретические границы CD-качества (16-битный сигнал, описанный выше), красная зона – 24-битный минимум. Пики – это тестовые звуки. Ориентироваться следует на верхнюю границу синей зоны – это и есть уровень фонового шума.
Уровень фонового шума aptX Уровень фонового шума aptX HD
Как видно из графиков, aptX и aptX HD довольно похожи, разница только в минимальном уровне, который лучше, действительно у HD версии. От 20 Гц до 5 кГц у aptX около -90 дБ, а у aptX HD -120 дБ. Чуть выше уровень шума в диапазоне от 4 кГц до 8 кГц и ещё выше на верхних границах: -74 дБ для aptX и -80 для aptX HD.
Разница уровня шума на протяжении диапазона связана с тем, что наш слух хуже различает помехи на высоких частотах. Соответственно, там кодеками используется меньше бит информации для квантования, что даёт чуть меньшее разрешение и больше шума. На слух обычно неразличимо, а ресурсы экономятся.
Sennheiser HD 4.50 BTNC с aptX
При создании Hi-Res музыки тоже использует эту особенность человеческого слуха. Там при квантовании и компенсации шумов все ошибки вытесняются в ультразвуковую, не слышимую нам область. Мы не слышим, но она есть в файле. Ведь файл 24бит\192 кГц теоретически содержит частоты до 96 кГц и уровень шума -144 дБ.
3.1 Сравнение результатов aptX и aptX HD
По сравнению с aptX, его HD-версия добавляет 2 бита информации по всему частотному диапазону, что даёт около -12 дБ преимущества в уровне фонового шума. Соответственно, при сжатии через aptX HD за фоновым шумом потеряется меньше тихих звуков, чем у aptX.
Если вспомнить, параметры CD и Hi-Res качества, отталкиваясь от графиков выше, можно сказать, что aptX действительно даёт результат, близкий к 16-битному аудио. Особенно, если учесть среднестатистический слух и уровень громкости. Конечно, это не CD-качество, но похожее, как и заявляет Qualcomm.
Sony WH-1000XM3 наушники с ANC и поддержкой aptx HD
Зато при прослушивании 16-битного аудио через aptX HD качество будет лучше, чем через aptX. То есть, если у вас есть возможность слушать музыку через aptX HD – не задумывайтесь, даже если это 16-битные треки.
3.2 Сравнение с SBC
В качестве общего сравнения возьмём уровень фонового шума при передаче сигнала через SBC-кодек. Он использует больше полос, на которые делит частотный диапазон при кодировке: от 4 до 8, в зависимости от версии. При этом aptX использует только 4. Соответственно, итоговая картина у SBC ближе повторяет особенности человеческого слуха.
Уровень фонового шума SBC
4. AptX Adaptive и aptX Low Latency
Сравнение aptX Adaptive, LDAC, AAC и SBC
- Битность: 16 и 24 бит
- Частота дискретизации: 44.1 и 48 кГц
- Битрейт: 279 – 420 кБ\с (динамический, адаптивный)
- Задержка: 50-80 мс
Как можно понять из названия, aptX Adaptive имеет переменный битрейт, который автоматически адаптируется под окружающие условия и качество воспроизводимых файлов.
aptX, aptX Low Latency, AAC и SBC битрейт
AptX Low Latency – Bluetooth кодек с минимальной на сегодняшней день задержкой звука. Она составляет около 30-40 мс и практически не заметна. Соответственно, этот кодек актуален для просмотра видео и\или игр с использованием беспроводных наушников.
По большому счёту, почти все кодеки линейки aptX – это один и тот же кодек, но с разницей в некоторых параметрах. Например, aptX HD отличается от aptX другими параметрами кодирования (при этом основные алгоритмы те же), а aptX LL отличается от основного aptX уменьшенным буфером. Только Adaptive, судя по всему, использует другие основные алгоритмы. Но это не точно. ©
aptX, aptX HD и aptX Adaptive битрейт
AptX Adaptive и Low Latency – самые новые и перспективные из кодеков от Qualcomm. Adaptive, судя по всему, скоро будет основным в линейке, заменив более старые версии. Производитель обещает обратную совместимость. Но, конечно, использование конкретных процессоров от Qualcomm необходимо для работы их кодеков: как новых, так и старых.
5. Итог
По итогам можно сделать вывод, что теоретически звук качества, близкого к CD, через aptX и aptX HD передаётся неплохо. Конечно, битрейт пониже и есть потери от сжатия, но уровень уже неплох. Однако, настоящий Hi-Res по Bluetooth – далёк от реализации.
Если ваше оборудование поддерживает эти кодеки, используйте их, они того стоят. Особенно интересен aptX HD, который даёт бОльший динамический диапазон, и вы услышите больше тихих звуков, которые, возможно, до этого на записи и не слышали.
Bowers and Wilkins PX поддерживают aptX HD
Ищете что-то конкретное (конструкция, музыка, источник) или остались вопросы? Оставьте комментарий 🙂 .
Кодек AAC (Advanced Audio Coding) создавался в далёком 1997 году как более качественный, чем mp3, кодек для сжатия аудио. И в чём-то он действительно лучше, например: доступны более высокие частоты дискретизации (до 96 кГц) и сам алгоритм использует психоакустические особенности человеческого слуха.
Сейчас AAC является основным аудио-кодеком для сжатия с потерями экосистемы Apple. Ещё он основной на YouTube и даже российском ТВ-вещании. 😀 Но нам интересна его беспроводная реализация. Во всех iPhone и во многих Android-устройствах доступна передача музыки по Bluetooth с помощью конвертирования этим кодеком.
Как включить AAC?
Меню Разработчика, можно активировать вот так:
Выбираем нужный кодек — LDAC, aptX, aptX HD, AAC, SBC.
Основные кодеки для передачи звука по Bluetooth: SBC, AAC, aptX, aptX Low Latency, aptX HD, LDAC. Кроме того, относительно недавно был представлен ещё один кодек от Qualcomm: aptX Adaptive, но устройства с ним пока только ожидаются. Какой из кодеков лучше – вопрос спорный. Если брать только битрейт, то AAC сильно отстаёт. Однако на слух хорошая его реализация (в iPhone) не сильно отличается от aptX.
Максимальный битрейт Bluetooth-кодеков
10 популярных моделей наушников с поддержкой AAC
1. Частотный диапазон AAC
Потери в основном выражаются в урезанном частотном диапазоне: обычно верхняя граница ВЧ. Кроме того, из-за выравнивания сигнала могут добавляться (и чаще всего добавляются) искажения, которые могут быть в любой области диапазона.
Посмотрим, как работает AAC (источник – lossless аудио-файл) в сравнении с SBC на некоторых Android-смартфонах и iPhone:
Полный частотный диапазон с использованием AAC и SBC кодеков
Сразу видны серьёзные отличия в реализации AAC на разных смартфонах. Стоит учитывать несколько моментов:
Рассмотрим край ВЧ-диапазона покрупнее:
2. Уровень фонового шума AAC
Уровень фонового шума показывает границу, после которой шум от алгоритмов сжатия кодека (в общем случае – от любой воспроизводящей аппаратуры) становится неотличим от полезного сигнала – музыки. Чем ниже и стабильнее этот уровень по всему диапазону частот, тем более тихие звуки мы сможем услышать (если они есть на записи).
Уровень фонового шума AAC (источник – lossless файл)
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
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 файл)
В итоге можно сказать, что AAC – весьма интересный кодек. О его качестве нельзя судить, просто отталкиваясь от уровня фонового шума и частотного диапазона, как в случае с другими кодеками. AAC в своих алгоритмах учитывает психоакустику, слуховое маскирование – только в цифрах качество тут не измерить.
AirPods 2, естественно, поддерживает AAC
5. Итог
Самое главное – отличия в работе AAC на разных смартфонах. Тот же SBC, например, показывает более стабильные результаты от модели к модели. Соответственно, если ваш телефон работает под управлением Android, AAC не обязательно качественнее, чем SBC, как это часто считается.
Apple AirPods в связке с iPhone по AAC звучат довольно неплохо
На некоторых моделях SBC может показать лучшие результаты, чем AAC. И не только в цифрах, но и на слух. Поэтому, если вы купили наушники с поддержкой AAC, но звук в связке с вашим телефоном вам не нравится, попробуйте переключиться на SBC, возможно именно в вашей модели AAC реализован хуже.
Реализация AAC на iPhone лучше – звучание очень сильно (для сжатия с потерями) приближено к CD-качеству. В среде Android AAC работает хуже, чаще всего на более низком битрейте, отсюда дополнительные искажения и потери сжатия. При этом на разных телефонах итоговый результат может сильно варьироваться.
Ищете что-то конкретное (конструкция, музыка, источник) или остались вопросы? Оставьте комментарий 🙂 .
Современные смартфоны лишаются привычного разъёма в угоду влаго- и пылезащищённости.
Настолько ли всё хорошо? Давайте посмотрим.
Введение
Я не буду углубляться в техническую реализацию протоколов, а также в скучные спецификации. Уважаемый ValdikSS, который в большой степени выступил вдохновителем и даже научным консультантом в этой статье, готовит исчерпывающий материал касательно кодеков – и там всё будет изложено куда более подробно и технически верно.
Рассказать я хочу в большей степени о личном опыте. Ну и немножко занимательной (скучной?) практики.
Полтора года назад я загорелся идеей aptX. Да, я прочитал массу обзоров наподобие этого и поверил во все эти технические навороты и возможности. Родился ребёнок – и очень хотелось ночью с женой смотреть передачи в наушниках, не создавая шума и не будя никого в доме.
Во что же это вылилось?
Качество
Начнём с цифр и фактов (привет, Википедия!)
Кодек обеспечивает частоту дискретизации 16, 32, 44.1, 48 кГц со скоростью потока 10-1500 кбит/с. Да, Вы не ослышались. До 1500 кбит/с. В кодеке просто нет лимита по битрейту. Но об этом – позже.
Кодек aptX разработан в 1988 году в Королевском Университете в Белфасте. Да, до Bluetooth ещё было ещё порядка десятка лет, так что кодек использовался в профессиональной звуковой аппаратуре. В настоящий момент права принадлежат компании Qualcomm, а потому использование требует лицензирования и лицензионных отчислений. По состоянию на 2014 год стоимость приблизительно такова: единовременный платёж $6000 и ≈$1 за каждое выпущенное устройство для партий до 10000 устройств. По этой причине многие устройства с чипами Snapdragon 835, 845, 821, 820, 810, 805, 801, 800, 650, 615, 410 вполне возможно и поддерживают aptX, но он там не активирован, поскольку лицензия не была приобретена. Об этом – также ниже.
При разрядности 16 бит и частоте дискретизации 48 кГц кодек может обеспечивать скорость потока 384 кбит/с (dual channel).
Список продуктов, официально поддерживающих aptX. На Aliexpress можно найти очень много неведомых систем с поддержкой aptX, но будьте готовы к тому, что на поверку там окажется тот же старый добрый SBC – и не более.
aptX HD – тот же самый кодек, но с другим профилем кодирования, имеет скорость потока 576 кбит/с, поддержку частоты дискретизации до 48 кГц и разрядность до 24 бит. Некоторые называют этот кодек aptX Lossless – но это полный бред хотя бы потому, что в настоящий момент невозможно достигнуть значения потока, который мог бы переносить lossless-данные. Особым преимуществом этого кодека регулируемая задержка кодирования, которая может снижаться до 1 мс при частоте дискретизации 48 кГц. Также кодек крайне выгоден с позиции загрузки процессора, в чём выражается преимущество по сравнению с МР3 и ААС.
aptX Low latency (или LL) – специальная версия кодека, позволяющая снизить время задержки звука до менее 40 мс. Список продуктов, официально поддерживающих aptX LL.
Вот она. Именно эта картинка в своё время купила меня с потрохами. Задержки! Ведь кому захочется слышать звук взрыва в каком-то боевике, крик монстра в ужастике или рёв толпы на футбольном матче, когда всё уже закончилось?
Но так ли всё это на самом деле?
Как и в любом маркетинговом материале, цифры притянуты за уши. Задержка во многом зависит от буферизации в системе и реализации кодека. Так, задержка с SBC вполне может быть на уровне менее 40 мс, что принимая во внимание стандарты телевизионного вещания (+40 мс… −60 мс) – вполне допустимо.
- Ни один существующий кодек не может быть лучше проводной технологии, поскольку ни один кодек не позволяет достичь истинного сжатия без потерь.
- Самым популярным кодеком является SBC. Он же – наиболее гибок в настройках. И несмотря на то, что aptX был выпущен ранее, он не смог побить популярности SBC, видимо, из-за бесплатности последнего.
- Качество звука крайне зависит от реализации кодека, а также от аппаратного исполнения наушников/колонок вообще – если сама по себе колонка слабая, то качество не улучшишь ни одним кодеком. Поэтому в дальнейшем, сравнивая качество, мы будем говорить о воспроизведении одного и того же контента от одного и того же источника на одних и тех же колонках/наушниках, но с различными кодеками.
Практические и очень субъективные итоги
Информация базируется на уже упомянутом полуторагодовом опыте эксплуатации, сравнения и привлечения сторонних слушателей.
Опыт базируется на прослушивании lossless на плеере SONY Walkman NWZ-A17, где кодек можно выбирать, а также на просмотре различных передач с выводом звука посредством Avantree Priva III.
Наушников было трое: Sennheiser PMX 60, Koss Porta Pro и Koss UR-20.
В качестве приёмников беспроводного сигнала использовались Jabra BT3030 (SBC) и Avantree Clipper Pro (aptX).
Также использовалась колонка Voombox Outdoor (SBC) и наушники с костной проводимостью Aftershokz Trekz Titanium (aptX).
Все эквалайзеры и улучшатели отключались — и это важно.
Не спорю, что если подключать всяческие спектральные анализаторы и прочее — можно и нужно увидеть разницу. Но человеческое ухо, а ещё хуже — среднестатистическое человеческое ухо — не спектральный прибор, а потому все эти нюансы не слышит.
Часть 1. Включаем aptX
Как уже было сказано, в некоторых устройствах использование aptX отключено, вероятно, во избежание патентных преследований.
Этот вопрос можно решить достаточно просто – подсунув устройству библиотеки для реализации работы кодека и прописав возможность работы с этим кодеком в build.prop.
На просторах интернета имеется большое количество решений такого характера. Я взял на себя смелость объединить их в одно, при этом реализовав в виде модуля для Magisk. Да, я очень люблю этот проект и считаю, что реализация изменений в системе в виде модулей Magisk – лучше и безопасное решение с возможностью сохранения системы максимально в первозданном виде и лёгким способом отката назад.
Модуль можно скачать отсюда. Да, я знаю про гитхаб. И нет, пока у меня нет времени туда его выкладывать.
Записи в build.prop, включающие aptX, а при возможности – и aptX HD, будут эмулироваться модулем автоматически.
Часть 2. Повышаем битрейт SBC
Как уже сообщалось, кодек SBC принципиально не имеет ограничений по битрейту. Однако производители обычно ставят ограничение в 342 кбит/с для моно- и 345 кбит/с для стереосигнала с целью обспечения надёжной работы со всеми типами принимающих устройств.
При этом спецификация A2DP v1.2, которая была активна с 2007 по 2015 год, предписывает всем декодирующим устройствам корректно работать с битрейтами до 320 кбит/с для моно- и 512 кбит/с в случае стереосигнала.
В новой версии спецификации ограничение по битрейту отсутствует вообще. Предполагается, что современные наушники, выпущенные после 2015 года и поддерживающие EDR, могут поддерживать битрейты до 730 кбит/с.
По факту это конечно же не так. В обширном исследовании, проведённом ValdikSS, было найдено, что практически все приёмные устройства надёжно работают со значениями битрейта 454 кбит/с, и достаточно большое количество – с битрейтом 507 кбит/с.
В своих исследованиях ValdikSS также показал, что, вопреки расхожему мнению о качестве звука кодека aptX, на некоторых файлах он может давать результаты хуже, чем SBC со стандартным битрейтом в 328 кбит/с, а переключившись в высокобитрейтный SBC, Вы получите звук, зачастую превосходящий aptX, на любых наушниках.
ValdikSS на основании этих данных направил замечания разработчикам Lineage OS и в Google, но на данный момент никакой реакции не последовало.
Таким образом, нам остаётся только вручную внести модификации в Bluetooth-стек.
Нам потребуется IDA Pro с возможностью декомпилирования ARM, любой HEX-редактор (я использовал WinHEX) и файл bluetooth.default.so с нашего устройства. Обычно он находится по пути /system/lib/hw и реже – ещё и по пути /system/lib64/hw (безусловно нужен рут-доступ).
Наша первая задача — заменить Joint Stereo на Dual Channel в стандартной конфигурации.
В итоге довольно быстро мы находим саму функцию в виде кода:
Наша задача – подменить исходную структуру проверок
Это можно сделать несколькими способами.
В байт-коде это замена х01 на х04. При этом важно отметить характерные последовательности байтов, по которым можно найти этот паттерн. Не углубляясь сильно в детали, скажу, что по сути это поиск последовательности
Однако у данного способа есть недостатки.
Ряд компиляторов меняют последовательность исполнения команд в зависимости от оптимизации. И в таком случае найти искомый паттерн не удаётся, а иногда механизм проверок в структуре вообще вносится в инлайн-код. Поэтому более надёжным является изменение константы btif_av_sbc_default_config.
Для начала – найдём её. Она в самом начале нашей функции, ведь
Видно, что сама btif_av_sbc_default_config представляет собой последовательность байт 20 01 10 04 01 35 02, при этом первый байт кодирует частоту дискретизации и может быть 10 (48 кГц) и 20 (44 кГц), а потому не специфичен. Таким образом наша задача – замена последовательности
01 10 04 01 35 02
на
04 ?? ?? ?? ?? ??
Это позволит изменить логику работы структуры аналогичным образом, но при этом оптимизации компилятора не доставят проблем.
В ряде случаев инициатором подключения выступают сами наушники или колонки. В этом случае режим определяется функцией bta_av_co_audio_init.
Перечисление возможных режимов подключения выполняется в следующей команде:
Константа легко находится в коде, в моём случае она равна 20 0F F0 0C 03 35 02:
Обратите внимание на байт 0F – он обеспечивает возможность подключения с любым из допустимых режимов, поскольку
Наша задача — изменить это значение таким образом:
Следовательно, необходимо заменить
?? 0F F0 0C 03 35 02
на
?? 04 ?? ?? ?? ?? ??
Итак, мы заставили стек подключаться в режиме Dual Channel как в случае инициирования подключения устройством, так и в случае инициирования подключения принимающей сигнал стороной.
Теперь необходимо убрать ограничения в битрейте либо повысить его верхний порог.
Ограничение битрейта выражается в строке
UINT16 rate = DEFAULT_SBC_BITRATE (что в свою очередь равно 328 кбит/с)
Изменим это значение на 454 кбит/с – это выше стандартного и работает с подавляющим большинством приёмных устройств. Для этого заменим байты
B1 4F F4 A4 74 ?? E0
на
?? ?? ?? E3 ?? ?? ??
Также следует выполнить поиск по паттерну
E0 4F F4 A4 74 ?? E0
и заменить его на
?? ?? ?? E3 ?? ?? ??
— это требуется для ряда устройств.
Значение Е3 может быть другим в зависимости от желаемое максимального битрейта:
- E3 – 454 кбит/с
- F1 – 482 кбит /с
- F3 – 486 кбит/с
- 10 – 576 кбит/с
- 48 – без ограничений
На практике стоит поэкспериментировать и выбрать максимальное значение, при котором во всех Ваших принимающих устройствах происходит стабильный приём сигнала, отсутствует треск, прерывания и искажения.
На всех приёмниках в моём эксперименте (выше я их указал) таким значением было 576 кбит/с, в качестве источника сигнала выступал телефон Xiaomi Redmi 4x MIUI10 Android 7.1.
На основе описанных действий был создан дженерик-патч, который находит указанные паттерны в Bluetooth.default.so и заменяет их? включая принудительно режим Dual Channel и устанавливая лимит битрейта в 454 кбит/с. При необходимости, значение лимита может быть легко изменено на основании поиска и замены соответствующего байта — внимательный читатель сделает это без труда.
Подчёркиваю: патч работает только в случае bluedroid-стека и скорее всего не будет успешным в случае стека Fluoride и версии Android 8 и новее.
Патч можно скачать отсюда.
Замену оригинального файла настоятельно рекомендуется выполнять в виде модулей Magisk, для себя я это сделал следующим образом. Обратите внимание: данные модули сделаны мной для телефона Xiaomi Redmi 4x 3/32 Гб с актуальной на момент написания статьи стоковой глобальной стабильной прошивкой MIUI 10. В Вашем случае файл bluetooth.default.so придётся заменить на свой собственный, пропатченный, как описано выше. Возможно также, что файл придётся продублировать по пути /system/lib64/hw — это зависит от модели и версии прошивки Вашего телефона.
Данный подход с использованием модулей Magisk позволяет легко изменять максимальный битрейт и вообще отключать изменения, если окажется, что какое-то из принимающих устройств не поддерживает Dual Channel.
Заключение
В настоящий момент в погоне за продажами многие компании подают некоторые технологические новинки как обоснование более высокой цены.
На практике оказывается, что уже имеющиеся, более дешёвые технологии не до конца развиты, а технологические новинки – не до конца внедрены, что значительным образом сказывается на качестве.
Несмотря на очевидное ухудшение качества беспроводной передачи звука по сравнению с проводным вариантом, по-видимому, современные производители устройств нацелены на полный переход к беспроводным технологиям. При этом для обоснования повышения цены используются маркетинговые уловки: защита от погружения в воду телефона (как можно разговаривать под водой? зачем ронять устройство в воду?), использование более дорогих кодеков и т.д. При этом потенциал имеющегося популярного кодека SBC до конца не освоен.
Нам не удалось ни получить разъяснений от Google касательно лимита битрейта в 328 кбит/с, ни добиться устранения этого лимита и добавления опции включения Dual Channel в меню Bluetooth от разработчиков Lineage OS.
Спасибо всем, кто дочитал до конца!
Некоторое продолжение, вызванное обсуждением в комментариях и пробелом в отношении кодека LDAC, находится здесь.
Читайте также: