что такое включить стек bluetooth gabeldorsche

Что нового в Android 11 для пользователей и разработчиков

что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

На днях внезапно выкатили превью-версию Android 11 для разработчиков. Google говорит «разработчики, вы в прошлом году хорошо нам нафидбечили, поэтому в этот раз мы даём вам превью раньше, чем когда-либо» (релиз намечен на третий квартал, то есть до него примерно полгода).

Из-за этого версия особенно сырая, в неё могли попасть не все готовящиеся фичи (что-то привлекательное небось припасли для Google I/O), и часть вещей до релиза ещё могут откатить обратно. Но всё равно же интересно разобраться, что нового!

Как водится, сайты вроде 9to5Google и Android Police тут же потестировали превью-версию в хвост и в гриву, а в итоге выпустили кучу текстов: про каждое нововведение по отдельности. А мы продрались через эту кучу текстов и сделали для Хабра сводную подборку на русском — такую, чтобы была понятна и обычному пользователю Android, но с приписками конкретно для мобильных разработчиков.

Видеозапись экрана

Эта фича была ещё в бета-версиях Android 10, но тогда с ней были сложности и в релиз она не попала, а теперь в новой превью-версии снова появилась в доработанном виде. Так что в релиз Android 11, хочется верить, попадёт.

В принципе, её название всё объясняет. На Android есть сторонние приложения для видеозаписи всего происходящего на экране, но нативное решение не помешало бы.

Что с этого разработчикам: вероятно, в ситуации «пользователь жалуется на трудновоспроизводимый баг» станет проще запросить у пользователя видеозапись.

Bubbles

Эта фича была ещё в бета-версиях Android 10, но тогда… Да, тут история как с видеозаписью экрана: к релизу «десятки» довести фичу до ума не успели, и она переехала в следующую версию.

Это аналог фейсбучных Chat Heads: диалоги могут сворачиваться в «кружочки», остающиеся на экране поверх других приложений. Бабушка, зачем тебе бабблзы? Это чтобы было удобнее читать Хабр и при этом переписываться с тобой, внучка моя.

Но они не заработают магическим образом идеально во всех мессенджерах сразу: тут для разработчиков Android-приложений есть Bubbles API, и вопрос в том, насколько активно разработчики будут его использовать. Вероятно, Google старательно поддержит во всём своём бесконечном наборе гугломессенджеров, а про остальных пока вопрос.

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

Scoped storage

Эта фича была ещё… ну, вы поняли, да? В Android 10 эту вещь уже включили, но тогда сделали опциональной (разработчики приложений могли отказаться), а вот теперь она доработана и приходит окончательно.

Суть scoped storage в том, что приложениям даётся доступ только к своей папке, и шариться по другим файлам они не смогут. Конечно, приложениям вроде файловых менеджеров нужен полный доступ, и для таких сделают исключение «All Files Access». Но в целом ощущается сближение с iOS-подходом: ограничивать приложения в возможностях во имя безопасности пользователя.

Что с этого разработчикам: Если в targetSdkVersion вы собираетесь включать Android 11, то Google строго говорит «обновите своё приложение, чтобы работало со scoped storage», и даёт ссылку на более подробный текст.

One-time permission

И ещё об усилении приватности. Ранее, когда приложение запрашивало разрешение, были варианты «разрешить», «отказать» и «разрешить только при использовании приложения». Теперь для таких значимых разрешений, как доступ к камере, микрофону и геолокации, создан новый вариант: «разрешить только на один раз».

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

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

что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

Насколько понимаем, это потому что одновременно Google ещё и меняет правила: теперь доступ к геолокации в фоне смогут запрашивать только те, кто обосновал Гуглу, почему это им правда нужно. Ну, как раньше с доступом к звонкам сделали.

Что с этого разработчикам: тут вам виднее, запрашиваете ли вы разрешение и сказываются ли на вас перемены. Есть ещё всякие нюансы вроде «если в приложении есть WebView, у него доступ может отличаться», поэтому изучите официальный текст.

Индикатор частоты обновления экрана

Тут совсем мелкая штука, но за ней ощущается целая история.

Экраны с высокой частотой обновления сейчас в тренде: например, у OnePlus 7T экран на 90 Гц, у Samsung S20 и вовсе на 120 Гц. Это даёт невиданную плавность при скроллинге — казалось бы, прекрасно. Но есть проблема: частое обновление экрана активнее расходует энергию.

Возникла идея «пусть экран не всегда работает на полную катушку, ведь если играет видео с 24 FPS, бессмысленно обновлять его чаще». Звучит здраво. Но в итоге, например, покупатели Pixel 4 заметили, что они купили телефон с 90 Гц, а он переключается на 60 Гц когда ему вздумается (в том числе когда этого не хотелось бы). И было сложно понять, когда экран вообще делает то, за что ты заплатил. А теперь в нативных настройках разработчика можно включить индикатор.

что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

Что с этого разработчикам: если вы не могли понять «это Гугл режет частоту обновления экрана или это моё приложение тормозит», будет чуть проще.

API для работы с 5G

С 5G-покрытием всё по-прежнему печально даже в США, не говоря уже о мире в целом. И рыночная доля 5G-смартфонов тоже скромная. Но, наверное, где-то в 5G-зоне есть обладатели 5G-смартфонов, и Google о них заботится. Порадуемся за этих троих человек.

В общем, новые API «bandwith estimator» и «dynamic meteredness» призваны помочь мобильным приложениям лучше понимать, какая у пользователя пропускная способность и лимитирован ли его трафик, чтобы отправлять ему данные в оптимальном качестве.

Что с этого разработчикам: на данный момент и в российских реалиях — почти ничего, но если ваша прокрастинация шепчет «давай вместо пяти горящих задач займёмся чем-то совершенно необязательным», то обратите внимание.

Мелочи жизни

То, что нет смысла расписывать подробно:

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

А если вас этот пост заинтересовал как мобильного разработчика, то напоследок обратим ваше внимание: 23-24 июня в Петербурге мы проведём конференцию Mobius, и там будет много актуального для вас.

Источник

Все скрытые изменения в Android 11, которые мы узнали из исходного кода

Вскоре после выпуска первой стабильной сборки Android 11 для своего ряда устройств Pixel Google начал загружать исходный код Android 11 в AOSP. Мы копались в коде, чтобы найти скрытые функции, которые мы, возможно, упустили в нашем предыдущем обзоре, и вот что мы обнаружили:

Новый объемный поток для виртуальных помощников

Андриод 11 вводит новый тип потока для виртуальных помощников: AUDIO_STREAM_ASSISTANT. Новый поток «Предназначен для использования виртуальным помощником, таким как Google Assistant, Bixby и т. Д. Аудиопоток имеет собственный псевдоним громкости, и громкость не изменяется при изменении громкости других потоков».

В настоящее время приложения виртуального помощника обычно отправляют звук через объемный поток мультимедиа, который используется другими мультимедийными приложениями. С новым потоком Android 11 вскоре может позволить пользователям самостоятельно настраивать громкость виртуального помощника.

Плагины часов в Android 11

В Android 10 мы заметили работу по настройке часов на заблокированном экране, которая предоставляла 3 различных варианта: по умолчанию, текст, пузырь и аналоговый. Эта функция была бы доступна в приложении «Пиксельные темы» («Стили и обои») в виде отдельной вкладки под названием «Часы», однако она не вошла в финальную версию Android 10.

Хотя эта функция по-прежнему недоступна в стабильной версии Android 11, Google повторно включил функцию пользовательских часов. Но поскольку Google удалил текстовые часы в Android 10 и удалил аналоговые и пузырьковые часы в Android 11, в настоящее время нет других доступных вариантов часов.

Мы подозреваем, что Google либо включил эту функцию только для OEM-производителей, либо компания может работать над новыми настраиваемыми часами для запуска вместе с обновленным приложением Pixel Themes на Pixel 5 и Pixel 4a 5G.

Замораживание кешированных приложений

В Android 11 Beta 2 мы заметили новую функцию, находящуюся в разработке, под названием «приостановить выполнение для кэшированных приложений». В то время мы узнали, что эта функция будет находиться в параметрах разработчика, но у нас не было достаточно информации о том, как она работает или как ее включить.

Однако из исходного кода мы видим, что функция предназначена для «Замораживать приложения при кешировании и размораживать их после удаления из кеша или уничтожения. Замороженные приложения не будут использовать циклы ЦП, что снизит энергопотребление для некорректных процессов, которые могут попытаться запустить во время кэширования ».

Признанный разработчик XDA luca020400 говорит, что для этой функции необходимы обновленные контрольные группы (функция ядра Linux), поэтому она не работает на текущих устройствах. Это может быть функция, предназначенная для OEM-производителей, или она может быть реализована на Pixel 5.

Размытие для тени уведомлений

В Android 11 Developer Preview 3 нам удалось включить скрытый переключатель, чтобы включить размытие окон. Однако в то время переключатель не работал. Признанному разработчику XDA luca020400 теперь удалось заставить его работать.

Он установил Android 11 GSI на свой ASUS ZenFone 6 и включил эту функцию, изменив системное свойство. Эта функция включает эффект размытия Kawase, который является приближением размытия по Гауссу, за панелью уведомлений, когда она опускается.

Поддержка Deep Press для расширения уведомлений в Android 11

Во втором выпуске Pixel Feature Drop Google добавил «улучшенные параметры долгого нажатия», которые позволяют твердо нажимать на экран в Pixel Launcher, Google Фото и Google Диске, чтобы отобразить контекстное меню. Это альтернативный способ доступа к контекстному меню, который разработан для людей, которые могут не знать, что могут получить к нему доступ, долгое нажатие на экран.

Эта функция использует API Deep Press, который использует модель машинного обучения, чтобы определить, когда пользователь нажимает на экран с большей силой. В Android 11 теперь поддерживается глубокое нажатие на уведомления в панели уведомлений, чтобы развернуть их.

Что такое Габельдорше?

что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

В параметрах разработчика Android 11 есть переключатель «Включить Габельдорше» с описанием «включает стек функций Bluetooth Габельдорше». Google наконец-то опубликовал документацию по Gabeldorsche, и, похоже, это полная переработка стека Bluetooth Android. Будем надеяться, что перезапись приведет к снижению задержки и большей стабильности.

Несмотря на то, как часто мы его используем, Bluetooth все еще может быть непоследовательной технологией: некоторые операционные системы и устройства работают с ним лучше, чем другие. Программное обеспечение, отвечающее за обработку множества подвижных частей соединения Bluetooth, обычно называется «стеком» Bluetooth.

В течение многих лет Android использовал стек «Fluoride» для своих потребностей в Bluetooth, но в Android 11, похоже, Google начинает тестировать совершенно новый стек под названием Gabeldorsche или сокращенно «gd». Gabeldorsche находится в разработке уже как минимум год, однако Google впервые обратил внимание на новый стек.

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

Однако все мы, безусловно, хотим знать, откуда у Google такое название? Прежде всего, Gabeldorsche — это немецкое название рыб семейства Phycidae. Но что еще важнее, другой перевод Gabeldorsche — «вилобородый». Далее нам понадобится небольшой урок истории.

В 958 году Харальд «Блют» Гормссон сменил своего отца на посту короля Дании, а также на короткий период короля Норвегии, который, как говорят, объединил племена Дании. Как вы можете догадаться, король Харальд является тезкой технологии Bluetooth, которую мы знаем сегодня. Двадцать восемь лет спустя, в 986 году, короля Харальда сменил его сын Свейн Форкбоард.

Да, вся эта история только для того, чтобы сказать, что Google использует название «Gabeldorsche» для косвенного обозначения того, что это преемник стека Bluetooth в Android.

Что такое улучшенная связь?

В Android 11 Developer Preview 2 добавлен еще один таинственный вариант разработчика, называемый «улучшенная связь», без какого-либо описания того, что он делает. Благодаря исходному коду мы узнали, что эта функция «позволит диспетчеру теплового питания подключения активно отключать 5G для экономии энергии, когда пропускная способность сотовой связи ниже установленного порога».

Мульти аудио фокус

Еще в мае мы рассмотрели корневое приложение под названием App Volume Control, которое позволяет вам контролировать отдельные уровни громкости приложений Android. Это необходимо, потому что Android не имеет встроенного микшера громкости, такого как Windows, поэтому вы не можете смешивать уровни громкости для нескольких приложений, воспроизводящих звук одновременно. В Android существует концепция «фокусировки звука», и только одно приложение может иметь фокус одновременно.

Приложение, которое имеет фокус со звуком, решает, что происходит с другими приложениями, воспроизводящими звук — либо приглушает (уменьшение громкости), либо приостанавливает его. Это означает, что пользователи не могут контролировать, всегда ли их любимое музыкальное приложение воспроизводится в любом приложении, которое они открыли, если это приложение отвлекает внимание от звука и выбирает приостановку воспроизведения. В Android 11 похоже, что Google работает над функция мульти-аудиофокуса, что позволит приложениям одновременно воспроизводить аудио без пауз и приглушения друг друга.

Быстрее поделиться листом

В дополнение к улучшениям, внесенным в Android 10, Google внес некоторые улучшения в общий лист в Android 11. Например, загрузка иконок теперь кешируется, а это значит, что они появляются быстрее. Также уменьшена дряблость прокрутки. путем кэширования itemViewType в ViewHolder, кэширования результата shouldDisplayLandscape для уменьшения количества вызовов IPC при прокрутке и кэширования дескриптора пользователя рабочего профиля.

Лучшее управление памятью

Google представил новый дизайн OOM Adjuster (OOM = нехватка памяти, т. Е. Что должна делать система, когда объем свободной памяти близок к исчерпанию). Существует 3 фактора для настроек OOM Adjuster: состояние процесса (определяет, находится ли процесс на переднем плане или в фоновом режиме), оценка OOM Adj (используется демоном-убийцей нехватки памяти или lmkd, чтобы определить, какой процесс должен быть завершен при нехватке памяти ) и Scheduler Group (которая настраивает группу процессов ЦП и приоритеты потоков).

Источник

Модифицируем Bluetooth-стек для улучшения звука на наушниках без кодеков AAC, aptX и LDAC

Некоторые пользователи беспроводных наушников отмечают низкое качество звука и недостаток высоких частот при использовании стандартного Bluetooth-кодека SBC, который поддерживают все аудиоустройства. Частой рекомендацией для улучшения звука является покупка устройств и наушников с поддержкой кодеков aptX и LDAC. Эти кодеки требуют лицензионных отчислений, поэтому устройства с их поддержкой стоят дороже.

Оказывается, низкое качество SBC обусловлено искусственными ограничениями Bluetooth-стеков и настроек наушников, и это ограничение можно обойти на любых существующих устройствах, путём программных изменений смартфона или компьютера.

Кодек SBC

У кодека SBC есть множество разных параметров, которые согласуются на этапе установки соединения. Среди них:

Декодирующее устройство обязано поддерживать любое сочетание этих параметров. Кодирующее устройство может реализовывать не все.
Существующие Bluetooth-стеки, как правило, согласуют следующий профиль: Joint Stereo, 8 полос, 16 блоков, Loudness, bitpool 2..53. Этот профиль кодирует 44.1 кГц аудио с битрейтом 328 кбит/с.
Параметр bitpool напрямую влияет на битрейт в рамках одного профиля: чем он выше, тем выше битрейт, а следовательно и качество.
Однако параметр bitpool не привязан к конкретному профилю; влияние на битрейт также в значительной степени оказывает и другие параметры: тип каналов, количество частотных полос, количество блоков. Поднять битрейт можно косвенно, путем согласования нестандартных профилей, без изменения bitpool.

что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

Формула подсчета битрейта SBC

Например, режим Dual Channel кодирует каналы раздельно, используя весь bitpool для каждого из каналов. Заставив устройство использовать Dual Channel вместо Joint Stereo, мы получим почти удвоенный битрейт при том же максимальном значении bitpool: 617 кбит/с.
По моему мнению, использование не привязанного к профилю значения bitpool на этапе согласования — недоработка стандарта A2DP, которая и привела к искусственному ограничению качества SBC. Разумней было бы согласовывать bitrate, а не bitpool.

Такие фиксированные значения Bitpool и Bitrate берут свое начало из таблицы с рекомендованными к использованию значениями для высококачественного аудио. Но рекомендация — не повод ограничиваться этими значениями.

что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

Спецификация A2DP v1.2, которая была активна с 2007 по 2015 год, предписывает всем декодирующим устройствам корректно работать с битрейтами до 512 кбит/с:

The decoder of the SNK shall support all possible bitpool values that do not result in excess of the maximum bit rate. This profile limits the available maximum bit rate to 320kb/s for mono, and 512kb/s for two-channel modes.

В новой версии спецификации ограничение по битрейту отсутствует. Предполагается, что современные наушники, выпущенные после 2015 года и поддерживающие EDR, могут поддерживать битрейты до ≈730 кбит/с.

По какой-то причине, у проверенных мной Bluetooth-стеков Linux (PulseAudio), Android, Blackberry и macOS есть искусственные ограничения максимального значения параметра bitpool, который напрямую влияет на максимальный битрейт. Но это — не самая большая проблема, почти все наушники тоже ограничивают максимальное значение bitpool числом 53.
Как я уже успел убедиться, большинство устройств отлично работает на модифицированном Bluetooth-стеке с битрейтом в 551 кбит/с, без прерываний и треска. Но такой битрейт никогда не будет согласован в обычных условиях, на обычных Bluetooth-стеках.

Модифицируем Bluetooth-стек

В любом Bluetooth-стеке, который совместим со стандартом A2DP, есть поддержка режима Dual Channel, но активировать её из интерфейса не представляется возможным.

Давайте добавим переключатель в интерфейс! Я сделал патчи для Android 8.1 и Android 9, которые добавляют полноценную поддержку Dual Channel в стек, добавляют режим в меню переключения режима в инструменты разработчика, и обрабатывают SBC с поддержкой Dual Channel так, будто это дополнительный кодек, вроде aptX, AAC или LDAC (Android называет это HD Audio), добавляя галочку в настройки Bluetooth-устройства. Вот как это выглядит:

что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

При активации галочки, Bluetooth-аудио начинает передаваться с битрейтом 551 кбит/с, если наушники поддерживают соединение на скорости 3 мбит/с, или 452 кбит/с, если наушники поддерживают только 2 мбит/с.

Откуда взялись 551 и 452 кбит/с?

Технология разделения эфира в Bluetooth предназначена для эффективной передачи больших пакетов фиксированного размера. Передача данных происходит слотами, самое большое количество слотов, отправляемых за одну передачу — 5. Также есть режимы передачи, использующие 1 или 3 слот, но не 2 или 4. В 5 слотах можно передать до 679 байт на скорости соединения 2 мбит/с и до 1021 байт на скорости 3 мбит/с, а в 3 — 367 и 552 байта соответственно.

что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

Если мы хотим передать меньше данных, чем 679 или 1021 байт, но больше, чем 367 или 552 байта, то передача всё равно займет 5 слотов, а данные будет передаваться за такое же время, что уменьшает эффективность передачи.

что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

SBC в режиме Dual Channel, на 44100 Гц-аудио с параметрами Bitpool 38, 16 блоков во фрейме, 8 частотных диапазонов, кодирует аудио во фреймы размером 164 байт, с битрейтом 452 кбит\с.
Аудио должно быть инкапсулировано в протоколы передачи L2CAP и AVDTP, которые забирают 16 байт от полезной аудионагрузки.

что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

Таким образом, в одну Bluetooth-передачу с 5 слотами удаётся вместить 4 аудиофрейма:

Мы вместили 11.7 мс аудиоданных в отправляемый пакет, который будет передан за 3.75 мс, и у нас осталось 6 неиспользованных байт в посылке.
Если чуть поднять bitpool, 4 аудиофрейма уже не удастся упаковать в одну посылку. Придётся отправлять по 3 фрейма за раз, что снижает эффективность передачи, уменьшает количество передаваемого аудио за одну посылку, и быстрее приведёт к заиканиям аудио при плохих радиоусловиях.

Таким же образом был подобран битрейт 551 кбит/с для EDR 3 мбит/с: с Bitpool 47, 16 блоками во фрейме, 8 частотными диапазонами получается размер фрейма 200 байт, при битрейте 551 кбит/с. В одну посылку вмещается 5 фреймов или 14.6 мс музыки.

Алгоритм расчёта всех параметров SBC достаточно сложный, можно легко запутаться, если считать вручную, поэтому я сделал интерактивный калькулятор в помощь интересующимся: btcodecs.valdikss.org.ru/sbc-bitrate-calculator

Зачем всё это нужно?

Вопреки расхожему мнению о качестве звука кодека aptX, на некоторых файлах он может давать результаты хуже, чем SBC со стандартным битрейтом в 328 кбит/с.

SBC динамически выделяет биты квантования для частотных полос, действуя по принципу «от нижних к верхним». Если весь битрейт использовался на нижние и средние частоты, верхние частоты «обрежутся» (вместо них будет тишина).
aptX квантует частотные полосы одним и тем же количеством бит постоянно, из-за чего у него постоянный битрейт: 352 кбит/с для 44.1 кГц, 384 кбит/с для 48 кГц, и он не может «перенести биты» на те частоты, которые больше всего в них нуждаются. В отличие от SBC, aptX не будет «обрезать» частоты, а будет добавлять в них шумы квантования, уменьшая динамический диапазон аудио, и иногда привносить характерные потрескивания. SBC же «съедает детали» — отбрасывает наиболее тихие участки.
В среднем, по сравнению с SBC 328k, aptX вносит меньше искажений в музыку с широким частотным диапазоном, но на музыке с узким диапазоном частот и широким динамическим диапазоном SBC 328k иногда выигрывает.

Рассмотрим частный случай. Спектрограмма записи игры на фортепиано:
что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

Основная энергия лежит в частотах от 0 до 4 кГц, и продолжается до 10 кГц.
Спектрограмма файла, сжатого в aptX, выглядит следующим образом:
что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

А так выглядит SBC 328k.
что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

Видно, что SBC 328k периодически полностью отключал диапазон выше 16 кГц, и расходовал весь доступный битрейт на диапазоны ниже этого значения. Однако, aptX внес больше искажений в слышимый человеческим ухом спектр частот, что можно видеть на вычтенной оригинальной спектрограмме из спектрограммы aptX (чем ярче, тем больше искажений):
что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

В то время как SBC 328k меньше испортил сигнал в диапазоне от 0 до 10 кГц, а остальное — обрезал:
что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

Битрейта 485k SBC хватило, чтобы сохранить весь диапазон частот, без отключения полос.
что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

SBC 485k на этой композиции значительно опережает aptX в диапазоне 0-15 кГц, и с меньшей, но все же заметной разницей — в 15-22 кГц (чем темнее, тем меньше искажений):
что такое включить стек bluetooth gabeldorsche. Смотреть фото что такое включить стек bluetooth gabeldorsche. Смотреть картинку что такое включить стек bluetooth gabeldorsche. Картинка про что такое включить стек bluetooth gabeldorsche. Фото что такое включить стек bluetooth gabeldorsche

Переключившись на высокобитрейтный SBC, вы получите звук, зачастую превосходящий aptX, на любых наушниках. На наушниках, поддерживающих подключение EDR 3 мбит/с, битрейт 551 кбит/с даёт звук, сравнимый с aptX HD.

А можно ещё больше?

В патче для Android также имеется опция для ещё большего повышения битрейта для устройств EDR 2 мбит/с. Можно повысить битрейт с 452 кбит/с до 595 кбит/с, ценой уменьшения стабильности передачи в сложных радиоусловиях.
Достаточно установить переменную persist.bluetooth.sbc_hd_higher_bitrate в значение 1:

Патч на экстремальный битрейт пока принят только в LineageOS 15.1, но не в 16.0.

Совместимость с устройствами

SBC Dual Channel поддерживается практически всеми наушниками, колонками и автомобильными головными устройствами. Это немудрено — стандарт предписывает его поддержку в любых декодирующих устройствах. Есть небольшое количество устройств, на которых этот режим вызывает проблемы, но это — единичные экземпляры.
Более подробно с совместимыми устройствами можно ознакомиться на 4pda или xda-developers.

Сравнение различий звука

Я сделал веб-сервис, кодирующий аудио в SBC (а также aptX и aptX HD) в реальном времени, прямо в браузере. С помощью него вы сможете сравнивать звук различных профилей SBC и другие кодеки, без фактической передачи аудио по Bluetooth, на любых проводных наушниках, колонках, и вашей любимой музыке, а также изменять параметры кодирования прямо во время воспроизведения аудио.
btcodecs.valdikss.org.ru/sbc-encoder

Связь с разработчиками Android

Я писал многим разработчикам Bluetooth-стека из Google, с просьбой рассмотреть включение патчей в основную ветку Android — AOSP, но не получил ни одного ответа. Мои патчи в системе работы с патчами Gerrit для Android также остались без комментариев со стороны кого-либо причастного.
Я был бы рад, если бы мне посодействовали в связи с разработчиками из Google и внедрении SBC HD в Android. Патчcет в gerrit уже устарел (это одна из ранних ревизий), и я его обновлю, если разработчиков заинтересуют мои изменения (мне непросто его обновлять, у меня нет совместимых с Android Q устройств).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *