Bluetooth AptX в Windows 10

Как я могу узнать, использует ли звук Bluetooth в моей Windows 10 кодировку AptX без потерь? Мой компьютер — Lenovo T430s — подключен к ресиверу Philips AEA2700.


Моя гарнитура LG HBS-730 поддерживает aptX и косвенно указывает, подключена ли гарнитура к Кодек aptX. Просто нажмите и удерживайте кнопки увеличения и уменьшения громкости одновременно в течение 1 секунды, это должно переключать эквалайзеры, но не имеет никакого эффекта, если aptX работает, хотя вы все равно можете слышать звуковой сигнал.

Использование этим методом я обнаружил, что мой обычный адаптер Intel Bluetooth в Skull Canyon NUC в Windows 10 на самом деле подключен к моей гарнитуре с помощью кодека aptX.

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


Прежде всего, ваш аудиоприемник Bluetooth (Philips AEA2700) поддерживает декодирование aptX. Это указано в его спецификации.

Затем дело доходит до передатчика. AFAIK существует два типа передатчиков для аудио по Bluetooth.

Первый тип — это устройство класса аудио USB (т.е. звуковая карта USB) с аппаратным кодеком. Примеры взяты из Creative, например BT-W2.

Для этого типа передатчика вы можете с уверенностью предположить, что он автоматически будет использовать «лучший» кодек (например, aptX Low-Latency> aptX > SBC) доступен как на себе, так и на приемнике. И я не думаю, что у вас есть другие способы, кроме проверки его спецификации, чтобы узнать, доступен ли aptX.

Второй тип — это обычный передатчик Bluetooth, который поддерживает профиль A2DP. Те, которые установлены в ноутбуках, почти всегда относятся к этому типу.

Этот тип передатчика обычно полагается на программный кодек (ы), которые предоставляются в его стеке драйверов/программного обеспечения, например CSR Harmony .

Возьмем в качестве примера CSR Harmony , когда он используется для подключения к приемнику с поддержкой aptX, aptX логотип с текстом, например «Теперь вы подключены к гарнитуре с поддержкой aptX», появится на некоторое время.

Мне кажется, что CSR Harmony было прекращено, хотя. Если это правда, то одной из причин может быть тот факт, что в Windows 10 встроен кодек aptX. Я еще не заметил никаких других указаний на то, что aptX будет использоваться, если вы используете встроенный в Windows драйвер/стек Bluetooth.

P.S. aptX НЕ является кодеком без потерь.

2


Это старый поток, но с тех пор ситуация не сильно изменилась. Итак, приступаем.

Я создал приложение, которое отображает информацию о КОДЕКЕ (возможности устройства и выбор ОС). Он все еще находится в стадии бета-тестирования, но если вам интересно, вы можете скачать его со следующего сайта: https://www.bluetoothgoodies. com/tweaker/

4


Вы можете записать, какой кодек используется с помощью средств диагностики в Windows ADK

https://helgeklein.com/blog/2020/09/how-to-check-which-bluetooth-a2dp-audio-codec-is-used -on-windows/

1


У меня такая же проблема, там не указывает на aptX. Вот моя работа. Просмотр видео на YouTube, например барабанщик, фортепиано … Если задержка видео/аудио минимальная, aptX работает. Есть ли видимая разница между аудио и видео, значит aptX отключен. Мои результаты:

LG G4 + Philips AEA2700 = aptX ON!

Medion 1232t с Win10 и оригинальным драйвером Bluetooth от Microsoft + Philips AEA2700 = aptX OFF

1


Есть два требования для работы кодека AptX. Во-первых, у вас должен быть драйвер Bluetooth для Windows 10 с поддержкой кодека AptX от компании Lenovo, а во-вторых, ваш приемник Philips AEA2700 может поддерживать кодек AptX. Вы можете сказать это по спецификации приемника или увидеть, есть ли на приемнике метка AptX или нет.

Если метки AptX нет, значит, ваш приемник не поддерживает код AptX. Если компания Lenovo не предоставляет драйвер bluetooth, поддерживающий кодек AptX, кодек AptX не может работать. Только при соблюдении этих двух требований вы можете слышать музыку через кодек AptX. Если один из них отсутствует, вы не сможете.

1



Аудио через Bluetooth: самая подробная информация о профилях, кодеках и устройства

  • Беспроводные технологии,
  • Звук

Эта статья также доступна на русском языке /Эта статья также на русском языке

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

TL; DR :

  • Кодек SBC в порядке
  • Наушники имеют собственный эквалайзер для каждого кодека и конфигурацию пост-обработки.
  • aptX не так хорош, как говорится в рекламе.
  • LDAC — это маркетинговая ерунда
  • Качество голосового звука по-прежнему низкое.
  • Браузеры могут выполнять кодеры аудио, скомпилированные в WebAssembly из C с использованием emscripten, и они даже не задерживаются. >

Функциональные компоненты Bluetooth определяются профилями — задокументированными функциями, формализованными в спецификациях. Музыка Bluetooth передается с использованием профиля передачи высококачественного звука A2DP. Стандарт A2DP был принят в 2003 году и с тех пор кардинально не изменился.
Профиль стандартизирует один обязательный кодек — SBC, кодек с низкой вычислительной сложностью, созданный специально для Bluetooth, и 3 дополнительных кодека. Также можно использовать кодеки производителя вашей собственной реализации, не включенные в A2DP.

По состоянию на июнь 2019 года мы живем в комиксе XKCD с 14 кодеками A2DP:

  • SBC ← включен в A2DP, поддерживается всеми устройствами
  • MPEG-1/ 2 Layer 1/2/3 ← включены в A2DP: широко известный MP3, распространенный в цифровом ТВ MP2, и устаревший MP1
  • MPEG-2/4 AAC ← включен в A2DP
  • ATRAC ← старый кодек Sony, включен в A2DP
  • LDAC ← Новый кодек Sony
  • aptX ← кодек 1988 года
  • aptX HD ← То же, что и aptX, но с другим профилем кодирования
  • aptX Low Latency совершенно другой кодек, без программной реализации aptX с нижним буфером
  • aptX Adaptive ← другой кодек Qualcomm
  • FastStream ← псевдокодек , Двунаправленная модификация SBC
  • HWA LHDC ← Новый кодек Huawei
  • Samsung HD ← suppo поддерживается 2 устройствами
  • Samsung Scalable ← поддерживается 2 устройствами
  • Samsung UHQ-BT ← поддерживается 3 устройствами

Вы можете задаться вопросом, зачем нам вообще кодек, если у Bluetooth есть EDR , который позволяет передавать данные со скоростью 2 или 3 Мбит/с, в то время как несжатый двухканальный 16-битный PCM требует всего 1,4 Мбит/с?

В Bluetooth есть два типа передачи данных: Asynchronous Connection Less (ACL) для асинхронной передачи без установления соединения и Synchronous Connection Oriented (SCO), для синхронной передачи с установлением соединения.
Передача данных использует схему временного разделения и меняет частотный канал для каждого передаваемого пакета данных (Частота-скачок/дуплекс с временным разделением, FH/TDD). Время разделено на интервалы в 625 микросекунд, называемые слотами. Одно из устройств передает в четном количестве слотов, другое — в нечетном. Передаваемый пакет может занимать 1, 3 или 5 слотов, в зависимости от размера данных и режима передачи.. Если размер пакета достаточно велик и используется более одного режима передачи слотов, данные передаются в четных и нечетных слотах до конца передачи. За одну секунду вы можете получать и отправлять до 1600 пакетов, если каждый из них занимает 1 слот и оба устройства непрерывно передают и принимают данные.

Скорость передачи 2 или 3 Мбит/с для EDR, указанная в объявлениях а на веб-сайте Bluetooth указана максимальная скорость передачи всех данных в канале (включая технические заголовки всех протоколов для инкапсуляции данных) в двух направлениях одновременно. Фактическая скорость передачи данных будет сильно различаться.

Для потоковой передачи музыки используется асинхронный метод, почти всегда с использованием пакетов типа 2-DH5 и 3-DH5, которые несут максимальный объем данных в 2 Мб Режимы EDR/с и 3 Мбит/с соответственно и занимают 5 слотов с временным разделением.

Схематическое изображение передачи с использованием 5 слотов одним устройством и 1 слота другим (DH5/DH1):

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

Для потоковой передачи звука A2DP требуется инкапсуляция в специальный транспортные протоколы L2CAP и AVDTP, которые вычитают 16 байтов из максимально возможного количества полезной звуковой нагрузки в пакете.

Тип пакета Количество слотов Максимальное количество байтов на пакет Максимальное количество байтов полезной нагрузки A2DP Максимальный битрейт полезной нагрузки A2DP
2-DH3 3 367 351 936 Кб/с
3-DH3 3 552 536 1429 кб/с
2-DH5 5 679 663 1414 кб/с
3-DH5 5 1021 1005 2143 кбит/с

1414 и 1429 кбит/с просто недостаточно для передачи несжатого звука в реальных условиях с шумным 2 .4 ГГц и случайные служебные данные. EDR 3 Мбит/с требует мощности передачи и отношения сигнал/шум, поэтому даже в режиме 3-DH5 комфортная передача PCM невозможна, так как всегда будут кратковременные перебои, и все будет работать более или менее надежно только на расстоянии пару метров.
На практике даже аудиопоток 990 кбит/с (LDAC 990 кбит/с) не является тривиальным для надежной передачи.

Вернемся к кодекам .

SBC

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

Частота дискретизации Битовая глубина Скорость передачи Поддержка кодирования Поддержка декодирования
16, 32, 44.1, 48 кГц 16 бит 10-1500 кбит/с Все устройства Все устройства

SBC — простой и вычислительно быстрый кодек с примитивной психоакустической моделью (с простой слуховой маскировкой) с использованием адаптивной импульсной кодовой модуляции (APCM).
Спецификация A2DP рекомендует использовать два профиля: Среднее качество и Высокое качество.

Кодек имеет множество настроек, позволяющих управлять алгоритмической задержкой, количеством выборок в блоке и алгоритмом распределения битов, но почти всегда параметры, используемые в спецификации, используются везде: Joint Stereo , 8 частотных диапазонов, 16 блоков в звуковом кадре, метод распределения битов Loudness .
SBC может регулировать параметр битового пула r динамически, что напрямую влияет на битрейт. Если радио засорено, пакеты потеряны или устройства находятся далеко, источник звука может уменьшить битовый пул, чтобы предотвратить сбои звука, пока соединение снова не станет стабильным.

Производители большинства наушников устанавливают максимум значение параметра bitpool равно 53, что ограничивает скорость передачи данных до 328 килобит в секунду при использовании рекомендованного профиля.
Даже если производитель наушников установил максимальное значение bitpool выше 53 (что верно, например, для Beats Solo³, JBL Everest Elite 750NC, Apple AirPods, а также для некоторых ресиверов и автомобильных головных устройств), большинство ОС не позволяет использовать более высокие скорости передачи данных из-за внутренних ограничений в стеках Bluetooth.
Кроме того, некоторые производители установить низкое максимальное значение битового пула для некоторых устройств. Например, в Bluedio T оно равно 39, в Samsung Gear IconX — 37, что дает плохое качество звука.

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

SBC динамически выделяет биты квантования для частотных диапазонов, действуя снизу вверх, с разными весами. Если для низких и средних частот использовалась полная скорость передачи, верхние частоты будут обрезаны (заменены тишиной).

Пример SBC 328 кбит/с. Исходный звук находится вверху, звук в кодировке SBC — внизу. Дорожки переключены для сравнения. Аудиопоток в видеофайле сжимается с использованием кодека FLAC без потерь. Использование FLAC в контейнере mp4 официально не стандартизировано, поэтому звук может не воспроизводиться в вашем браузере (должен работать в последних версиях настольных Chrome и Firefox). Если у вас нет звука, вы можете скачать файл и открыть его в любом видеоплеере.

ZZ Top — Sharp Dressed Man

Момент переключения виден на спектрограмме: SBC периодически обрезает тихие звуки выше 17,5 кГц, а для диапазона выше 20 кГц вообще не выделяет биты. Спектрограмма кликабельна (1,7 МБ).

Я не слышу разница между оригиналом и SBC на этой дорожке.

Давайте возьмем что-нибудь новенькое и сымитируем качество звука наушников Samsung Gear IconX с помощью Bitpool 37 (вверху — исходный поток, внизу — SBC 239 кбит/с, FLAC используется для аудио).

Бездумное потворство своим слабостям — свидетель

Я слышу треск, меньший стереоэффект и неприятный «стук» вокала на высоких частотах.

Подводя итог, SBC — очень гибкий кодек: его можно настроить на малую задержку, дает отличный звук качество при высоких битрейтах (452+ кб/с) и довольно хорошее для большинства людей при стандартном высоком качестве (328 кб/с). Однако есть несколько причин, по которым кодек печально известен своим низким качеством звука: стандарт A2DP не определяет фиксированные профили (он дает только рекомендации), разработчики стека Bluetooth устанавливают искусственные ограничения на Bitpool, параметры передаваемого звука не отображаются в пользовательском интерфейсе, а производители наушников могут свободно устанавливать свои настройки и никогда не указывать значение Bitpool в технических характеристиках продукта.
Параметр bitpool напрямую влияет на битрейт только в пределах одного профиля. Одно и то же значение битового пула 53 может обеспечить как битрейт 328 кбит/с с рекомендованным профилем высокого качества, так и 1212 кбит/с в режиме Dual Channel и 4 полосах частот, поэтому авторы ОС также установили ограничения. по битрейту помимо битпула. Я предполагаю, что ситуация возникла из-за недостатка в стандарте A2DP: нужно было согласовывать битрейт, а не битпул.

Таблица функций SBC, поддерживаемых в разных ОС:

OS Частота дискретизации Максимальный предел битового пула Максимальный предел битрейта Типичный битрейт Поддержка динамического битового пула
Windows 10 44,1 кГц 53 512 кбит/с 328 кб/с ✓ *
Linux (BlueZ + PulseAudio) 16, 32, 44. 1, 48 кГц 64 (для входящих соединений), 53 (для исходящих соединений) Без ограничений 328 кб/с ✓*
macOS High Sierra 44,1 кГц 64, по умолчанию 53 *** Unknown 328 кбит/с
Android 4.4-9 44,1/48 кГц ** 53 328 кб/с 328 кб/с
Android 4.1-4.3.1 44.1, 48 кГц ** 53 229 кб/с 229 кб/с
Blackberry OS 10 48 кГц 53 Без ограничений 328 кб/с

* Bitpool уменьшается, но не увеличивается автоматически в случае изменения условий передачи. Чтобы восстановить битпул, вам необходимо остановить воспроизведение, подождать пару секунд и перезапустить звук.
** Значение по умолчанию зависит от настроек стека, указанных при компиляции прошивки. В Android 8/8.1 частота составляет всего 44,1 кГц или 48 кГц, в зависимости от настроек при компиляции, другие версии поддерживают одновременно 44,1 кГц и 48 кГц.
*** Значение Bitpool можно настроить с помощью программного обеспечения Bluetooth Explorer.

aptX и aptX HD

aptX — это простой и быстрый в вычислительном отношении кодек, без психоакустики, использующей адаптивную дифференциальную импульсную кодовую модуляцию (ADPCM). Он появился примерно в 1988 г. (дата подачи заявки на патент — февраль 1988 г.). До Bluetooth он использовался в основном для профессионального беспроводного аудиооборудования. В настоящее время принадлежит Qualcomm, поэтому требуется лицензирование и лицензионные сборы. По состоянию на 2014 год: единовременный платеж в размере 6000 долларов США и ≈ 1 доллар США за устройство для пакетов до 10 000 устройств (источник, стр. 16).

У кодека только один параметр — частота дискретизации. Хотя есть также вариант конфигурации номера канала/режима, все известные мне устройства поддерживают только стерео (более 70 моделей).

Кодек Частота дискретизации Битовая глубина Битрейт Поддержка кодирования Поддержка декодирования
aptX 16, 32, 44,1 , 48 кГц 16 бит 128/256/352/384 кбит/с (в зависимости от частоты дискретизации) Windows 10 (настольные и мобильные), macOS, Android 4.4 +/7 *, Blackberry OS 10 Широкий выбор устройств (аппаратных)

* Версии до 7 требуют модификации стека Bluetooth. Кодек поддерживается только в том случае, если производитель устройства Android лицензировал использование кодека от Qualcomm (если в ОС включены библиотеки кодирования).

aptX разбивает звук на 4 полосы частот и непрерывно квантует их с одинаковым количеством битов: 8 бит для 0-5,5 кГц, 4 бита для 5,5-11 кГц, 2 бита для 11-16,5 кГц, 2 бита для 16,5-22 кГц (значения для 44,1 кГц частота дискретизации).

Пример аудио aptX (вверху — исходное аудио, внизу — аудио в кодировке aptX, спектрограммы только левых каналов, звук в FLAC):

Верхние частоты немного краснее, но разницы не слышно.

Из-за фиксированного распределения битов квантования кодек не может «передавать биты» на частоты, которые в них больше всего нуждаются. В отличие от SBC, aptX не будет «обрезать» частоты, но будет добавлять к ним шум квантования, уменьшая динамический диапазон звука.

Мы не должны предполагать, что используя, например, 2 бита для полосы уменьшает динамический диапазон до 12 дБ: ADPCM позволяет использовать динамический диапазон до 96 дБ, даже с 2 битами квантования, но только с определенным типом сигнала.
ADPCM сохраняет разницу между текущее и следующее значение в числовом представлении вместо использования абсолютного значения, как в PCM. Это снижает требования к количеству битов, необходимых для хранения одинаковой (без потерь) или почти одинаковой (с относительно небольшой ошибкой округления) информации. Для уменьшения ошибок округления применяются таблицы коэффициентов.
При создании кодека авторы рассчитали коэффициенты ADPCM для набора музыкальных аудиофайлов. Чем ближе аудиосигнал к музыкальному набору, на котором были построены таблицы, тем меньше ошибок квантования (шума) генерирует aptX.

Из-за этого синтетические тесты всегда будут давать худшие результаты чем музыка. Я сделал специальный синтетический пример, в котором aptX работает плохо — синусоидальная волна 12,4 кГц (вверху — исходный сигнал, внизу — aptX. Звук в FLAC. Изнасилование уха, уменьшите громкость!):

График спектра:

Отчетливо слышен шум.

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

Чтобы услышать разницу между исходной музыкальной дорожкой и сжатой, вы можете инвертировать один из сигналов и добавить дорожки в соответствующие каналы. Этот подход в целом неверен и не даст должных результатов с более сложными кодеками, но для кодеков класса ADPCM использование этого метода является разумным.
Разница между исходным и кодированным в aptX аудио
Среднеквадратичная разница сигналов находится на уровне -37,4 дБ, что немного для такой сжатой музыки.

aptX HD

aptX HD не является автономный кодек — это улучшенный профиль кодирования aptX. Изменения влияют на количество бит, выделенных для кодирования частотных диапазонов: 10 бит для 0-5,5 кГц, 6 бит для 5,5-11 кГц, 4 бита для 11-16,5 кГц, 4 бита для 16,5-22 кГц (значения для 44,1 кГц).

Кодек Частота дискретизации Битовая глубина Битрейт Поддержка кодирования Поддержка декодирования
aptX HD 16, 32, 44,1, 48 кГц 24 бит 192/384/529/576 кбит/с (в зависимости от частоты дискретизации) Android 8 + * Некоторые аудиоустройства (аппаратно)

* Версии до 7 требуют модификации стека Bluetooth. Кодек поддерживается только в том случае, если производитель устройства Android лицензировал использование кодека от Qualcomm (если в ОС включены библиотеки кодирования).

Этот кодек меньше чаще, чем aptX: кажется, что для него требуется отдельное лицензирование от Qualcomm и отдельные лицензионные сборы.

Давайте повторим пример с синусоидальной волной 12,4 кГц:

Намного лучше, чем с aptX, но все равно шумно.

aptX Low Latency

Версия aptX с низкой задержкой не является автономным кодеком. Он отличается только настройками задержки и буферов, которые применяются на стороне аудиоблока. Кроме того, это обычный aptX.
Он был разработан для интерактивной передачи звука с малой задержкой (фильмы, игры), где задержку звука нельзя регулировать программно. Для чипов Intel Bluetooth доступна реализация программного обеспечения драйвера Dell. Он также поддерживается передатчиками, приемниками, наушниками и динамиками, но не смартфонами.

Частота дискретизации Битрейт Поддержка кодирования Поддержка декодирования
44,1 кГц 352 кб/с Windows с драйвером Dell и некоторыми передатчиками (аппаратно) Некоторые аудиоустройства (аппаратно)

AAC

AAC или Advanced Audio Coding — это сложный в вычислительном отношении кодек с сложная психоакустическая модель. Он широко используется для аудио в Интернете, является вторым по популярности кодеком после MP3. Требуются лицензионные сборы и лицензионные сборы: единовременный платеж в размере 15 000 долларов США (или 1000 долларов США для компаний с менее чем 15 сотрудниками) + 0,98 доллара США за первые 500 000 устройств (источник).
Кодек стандартизирован в MPEG-2 и MPEG-4 спецификации и, несмотря на частые заблуждения, не принадлежит Apple.

Sample rate Битрейт Поддержка кодирования Поддержка декодирования
8 — 96 кГц 8 — 576 кб/с (для стерео), 256 — 320 кб/с (типично для Bluetooth) macOS, Android 7 + *, iOS Широкий выбор устройств (аппаратных)

* только на устройствах, производители которых выплатили лицензионные отчисления.

iOS и macOS содержат лучший кодировщик Apple AAC, доступный на сегодняшний день, обеспечивающий максимально возможное качество звука. Android использует второй лучший кодировщик Fraunhofer FDK AAC, но также может использовать различные аппаратные кодеры, встроенные в платформу (SoC), с неизвестным качеством кодирования. Согласно недавним тестам, опубликованным на веб-сайте SoundGuys, качество кодирования AAC на разных телефонах Android сильно различается:

Большинство беспроводных аудиоустройств имеют максимальный битрейт 320 кбит/с для AAC, некоторые поддерживают только 256 кбит/с. Другие битрейты встречаются крайне редко.
AAC обеспечивает отличное качество при битрейтах 320 и 256 кб/с, но склонен к потере генерации уже сжатого контента, однако трудно услышать какие-либо различия между оригиналом и AAC 256 кб /s на iOS, даже с несколькими последовательными кодировками. Для MP3 320 кбит/с, закодированного в AAC 256 кбит/с, потерями можно пренебречь.
Как и в случае с любым другим кодеком Bluetooth, любая музыка сначала декодируется, а затем кодируется с помощью кодека. При прослушивании музыки в формате AAC она сначала декодируется ОС, а затем снова кодируется в AAC для передачи по Bluetooth. Это необходимо для микширования нескольких аудиопотоков, например музыки и уведомлений о новых сообщениях. iOS не исключение. Можно найти множество утверждений о том, что iOS не перекодирует музыку в формат AAC для передачи через Bluetooth, что неверно.

AAC имеет множество расширений к стандартному методу кодирования. Один из них — Scalable To Lossless (SLS) — стандартизирован для Bluetooth и позволяет передавать аудио без потерь. К сожалению, на существующих устройствах поддержки SLS нет. Расширение для уменьшения задержки передачи AAC-LD (Low Delay) не стандартизировано для Bluetooth.

MP1/2/3

MPEG- Кодеки 1/2 Part 3 состоят из хорошо известных и широко используемых MP3, менее распространенного MP2 (используемого в основном в цифровом телевидении и радио) и совершенно неизвестного MP1.

Старый MP1 и Кодеки MP2 вообще не поддерживаются, я не смог найти ни наушников, ни какого-либо стека Bluetooth, который мог бы их кодировать или декодировать.
Декодирование MP3 поддерживается некоторыми наушниками, но кодирование не поддерживается ни в одном из современных стеков операционных систем. Кажется, что сторонний стек BlueSoleil для Windows может кодировать MP3, если вы вручную редактируете файл конфигурации, но при моей установке это приводит к BSoD в Windows 10. Результат: вы фактически не можете использовать кодек для звука Bluetooth.
Ранее, в 2006-2008 годах, до того, как стандарт A2DP стал широко использоваться в устройствах, люди слушали музыку в формате MP3 на гарнитуре Nokia BH-501 через программу MSI BluePlayer, которая была доступна для Symbian и Windows Mobile. В то время архитектура ОС смартфонов позволяла получить доступ ко многим низкоуровневым функциям, можно было даже установить сторонний стек Bluetooth на Windows Mobile.

Последний патент на кодек MP3 истек, использование кодека не требует лицензионных сборов с 23 апреля 2017 г..

Если принять в качестве меры самый длительный патент, упомянутый в вышеупомянутых ссылках, то технология MP3 стала свободной от патентов в США 16 апреля 2017 г., когда США Срок действия патента 6 009 399, принадлежащего Technicolor и управляемому ею, истек.

Источник: www.iis.fraunhofer.de/en/ff/amm/prod/audiocodec/audiocodecs/mp3. html

Частота дискретизации Битрейт Поддержка кодирования Поддержка декодирования
16 — 48 кГц 8 — 320 кб/с Нигде не поддерживается Некоторые аудиоустройства (аппаратные)

LDAC

Новый и активно продвигаемый кодек «Hi-Res» от Sony, который поддерживает частоту дискретизации до 96 кГц и глубину 24 бита, с битрейтом до 990 кбит/с. Он рекламируется как аудиофильский кодек как замена существующих кодеков Bluetooth. Он имеет функцию адаптивного битрейта, которая настраивает битрейт в зависимости от условий радиопередачи.

Кодировщик LDAC (libldac) включен в стандартный дистрибутив Android, кодирование поддерживается на любом смартфоне Android, начиная с ОС версия 8. Программные декодеры недоступны в свободном доступе, и спецификация кодека недоступна для широкой публики, однако, на первый взгляд, кодер внутреннее устройство похоже на кодек Sony ATRAC9, используемый в PlayStation 4 и Vita: оба работают на частоте используйте модифицированное дискретное косинусное преобразование (MDCT) и сжатие Хаффмана.
LDAC разделяет звук на 12 или 16 частотных диапазонов: 12 используется для 44,1 и 48 кГц, 16 — для 88,2 и 96 кГц.

LDAC поддерживается почти исключительно наушниками Sony. Декодирование LDAC иногда встречается в наушниках и ЦАП других производителей, но очень редко.

Частота дискретизации Битрейт Поддержка кодирования Поддержка декодирования
44,1 — 96 кГц 303/606/909 кбит/с (для 44,1 и 88,2 кГц), 330/660/990 кбит/с (для 48 и 96 кГц) Android 8+ Некоторые наушники Sony и некоторые устройства других производителей (аппаратно)

Маркетинг LDAC «Hi-Res codec» вредит его техническим характеристикам: неразумно тратить битрейт на кодирование и передачу частот, которые не слышны человеческому уху, и более высокую битовую глубину, когда все еще невозможно сжать компакт-диск без потерь. качественный звук. К счастью, кодек имеет два режима работы: передача звука с компакт-диска и передача звука высокого разрешения. В первом случае по воздуху передается только 44,1 кГц/16 бит.

Поскольку программный декодер LDAC не доступен в свободном доступе, невозможно протестировать кодек без дополнительных устройств, которые декодируют LDAC. По результатам теста LDAC на ЦАП с его поддержкой, который SoundGuys. com подключили через цифровой выход и записали выходной звук тестовых сигналов, LDAC 660 и 990 кбит/с в режиме качества CD обеспечивает соотношение сигнал/шум немного лучше, чем у aptX HD. Это хороший результат.


Источник: www.soundguys.com/ldac-ultimate-bluetooth-guide-20026

LDAC также поддерживает динамический битрейт вне установленных профилей — от 138 кбит/с до 990 кбит/с, но, насколько я могу судить, Android использует только стандартизованные профили 303/606/909 и 330/660/990 кбит/с.

Другие кодеки

Другие кодеки A2DP широко не используются. Их поддержка либо почти полностью отсутствует, либо доступна только на определенных моделях наушников и смартфонов.
Стандартизированный A2DP кодек ATRAC никогда не использовался в качестве кодека Bluetooth даже Sony. Кодеки Samsung HD, Samsung Scalable и Samsung UHQ-BT имеют очень ограниченную поддержку со стороны передающих и принимающих устройств. HWA LHDC слишком новый и поддерживает только три (?) Устройства.

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

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

Как узнать, какие кодеки поддерживает устройство? Захватывая и анализируя дамп трафика с параметрами согласования A2DP!
Это можно сделать в Linux, macOS и Android. В Linux вы можете использовать Wireshark или hcidump, в macOS можно использовать Bluetooth Explorer, а в Android использовать функцию сохранения дампа Bluetooth HCI, доступную в инструментах разработчика. Вы получите дамп в формате btsnoop, который можно открыть в анализаторе Wireshark.
ПРИМЕЧАНИЕ : вам нужно будет подключиться со смартфона/компьютера к наушникам для правильного захвата дамп, а не наоборот (как бы глупо это ни звучало)! Наушники также могут установить соединение со смартфоном или ПК, и в этом случае они будут запрашивать список кодеков с телефона и не раскрывать свой собственный набор кодеков. Чтобы обеспечить получение правильного дампа, сначала отключите устройство, а затем, во время записи дампа, подключите телефон к наушникам.

Используйте следующий фильтр отображения, чтобы скрыть нерелевантный трафик :

  btavdtp. signal_id  

В результате вы должны увидеть нечто похожее:

Нажав на команду GetCapabilities, вы можете получить подробную информацию о кодеке.

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

  Обязательно: 0x00 - SBCO Необязательно: 0x01 - MPEG-1,2 (он же MP3) 0x02 - MPEG-2,4 (он же AAC) 0x04 - ATRAC Зависит от поставщика: 0xFF 0x004F 0x01 - aptX0xFF 0x00D7 0x24 - aptX  HD0xFF 0x000A 0x02 - APTX Low Latency0xFF 0x00D7 0x02 - APTX Low Latency0xFF 0x000A 0x01 - FastStream0xFF 0x012D 0xAA - LDAC0xFF 0x0075 0x0102 - Samsung HD0xFF 0x0075 0x0103 - Samsung Scalable Codec0xFF 0x053A 0x484C - Savitech LHDC0xFF 0x000A 0x0104 - КСО Правда Wireless Stereo v3 Codec ID для AAC0xFF  0x000A 0x0105 - Идентификатор кодека CSR True Wireless Stereo v3 для MP30xFF 0  x000A 0x0106 - Идентификатор кодека CSR True Wireless Stereo v3 для aptX  

Вы можете узнать, поддерживает ли ваше устройство EDR 3 Мбит/с, используя следующий фильтр:

  bthci_evt.code == 0x0b  

Чтобы не анализировать дампы вручную, я сделал сервис, который будет анализировать все автоматически: btcodecs.valdikss.org.ru

Простой, но полезный Windows Bluetooth Tweaker Программное обеспечение показывает поддерживаемые и используемые в настоящее время кодеки, помимо других функций.
Пользователи Linux также могут использовать утилиту avinfo из пакета BlueZ.

Каждый кодек имеет свои преимущества и недостатки .
aptX и aptX HD используют жестко запрограммированные профили, которые нельзя изменить без модификации кодировщика и декодера. Ни смартфон, ни производитель наушников не могут изменять битрейт или кодовые коэффициенты aptX. Qualcomm, владелец кодека, распространяет эталонный кодировщик как библиотеку среди лицензиатов. Эти факты — сильная сторона aptX — вы заранее знаете, какое качество звука вы получите, никаких «но».

SBC, напротив, имеет множество настраиваемых параметров, динамический битрейт (кодировщик может уменьшить bitpool, если радиостанция перегружена) и не имеет жестко запрограммированных профилей, а имеет только рекомендуемые «среднее качество» и «высокое качество», которые были добавлены в спецификацию A2DP в 2003 году. «Высокое качество» больше не является таким, как высокий по современным стандартам, и большинство стеков Bluetooth не позволяют использовать параметры лучше, чем в профиле «высокого качества», хотя для этого нет технических ограничений.
Bluetooth SIG не предоставляет эталонный кодировщик SBC в форма библиотеки, и производители реализуют ее сами.
Это слабые стороны SBC — никогда заранее не ясно, какого качества звука можно ожидать от конкретного устройства.. SBC может воспроизводить как низкое, так и очень высокое качество звука, но последнее недостижимо без отключения или обхода искусственных ограничений стеков Bluetooth.

Ситуация с AAC неоднозначна: с одной стороны, теоретически, кодек должен выдавать качество, неотличимое от оригинала, но практика, судя по тестам лаборатории SoundGuys на разных Android-устройствах, не подтверждена. Скорее всего, дело в некачественных аппаратных кодировщиках звука, встроенных в различные чипсеты телефонов. Имеет смысл использовать AAC только на устройствах Apple; с Android вам лучше придерживаться aptX/HD и LDAC.

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

Я создал веб-сервис, который кодирует аудио в SBC, aptX и aptX HD в реальном времени прямо в вашем браузере. Вы можете использовать его для тестирования этих аудиокодеков без фактической передачи звука через Bluetooth, на любые проводные наушники, динамики и вашу любимую музыку, а также изменять параметры кодирования непосредственно во время воспроизведения звука:
btcodecs.valdikss.org. ru/sbc-encoder
Служба использует библиотеки кодирования SBC из проекта BlueZ и libopenaptx из ffmpeg, которые скомпилированы в WebAssembly и JavaScript из C через emscripten для выполнения в браузере. Кто мог мечтать о таком будущем!

Вот как оно выглядит:

Обратите внимание, как меняется уровень шума после 20 кГц для разных кодеков . В исходном файле MP3 нет частот выше 20 кГц.

Попробуйте переключить кодеки и посмотрите, слышите ли вы разницу между исходным, SBC 53 Joint Stereo (стандартный и наиболее распространенный профиль), и aptX/aptX HD.

Но я слышу разницу между кодеками в наушниках !

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

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


Обработка звука Kalimba DSP конвейер в CSR/Qualcomm SoC


Активация различных функций DSP для каждого кодека и вывод отдельно

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

Функциональные возможности устройств

Текущая версия стандарта A2DP имеет функцию абсолютного управления громкостью , позволяющую управлять усилением выходного сигнала специальными командами с использованием протокола AVRCP вместо программного уменьшения громкость самого аудиопотока. Если вы изменяете громкость в наушниках, и это изменение не синхронизируется с громкостью на телефоне, это означает, что ваши наушники или телефон не поддерживают эту функцию. В этом случае имеет смысл всегда слушать музыку на максимальной громкости на телефоне, регулируя фактическую громкость с помощью кнопок наушников — соотношение сигнал/шум будет лучше, а качество звука должно быть выше.
На самом деле бывают печальные ситуации. В наушниках RealForce OverDrive D1 используется сильный компандер для SBC и увеличение громкости приводит к увеличению уровня тихих звуков, а громкость громких звуков не меняется (происходит сжатие сигнала). Из-за этого необходимо выставить громкость на компьютере примерно на половину, в этом случае эффекта сжатия практически нет.
По моим наблюдениям, все наушники с дополнительными кодеками поддерживают функцию абсолютной регулировки громкости, которая вероятно, является одним из требований для сертификации кодеков.

Некоторые наушники поддерживают одновременное подключение двух устройств . Это позволяет, например, слушать музыку с компьютера и принимать звонки с телефона. Однако вы должны знать, что альтернативные кодеки отключены в этом режиме, и используется только SBC.

Функция AVDTP 1.3 Delay Reporting позволяет наушникам сообщать задержка передающего устройства, которое фактически воспроизводит звук. Это помогает настроить синхронизацию звука с видео при просмотре видеофайлов: если возникает перегрузка радио, звук не будет отставать от видео, а наоборот, видео будет замедляться видеоплеером до тех пор, пока звук и видео не будут синхронизируется снова.
Эта функция поддерживается многими наушниками, Android 9+ и Linux с PulseAudio 12.0+. Мне не известно о поддержке в других ОС.

Synchronous Connection Oriented (SCO) и его расширенная версия Enhanced Synchronous Connection Oriented (eSCO) — это режимы, используемые для голосовой связи Bluetooth коробка передач. Режим позволяет передавать звук и голос строго по порядку, с симметричной скоростью отправки и получения, не дожидаясь подтверждения передачи и повторной отправки пакетов. Это уменьшает общую задержку передачи звука по радиоканалу, но накладывает серьезные ограничения на объем данных, передаваемых за единицу времени, и отрицательно сказывается на качестве звука.
При использовании этого режима оба голос с микрофона и звук передаются в наушники с одинаковым качеством.
Сама передача данных стандартизирована профилем HSP, который также описывает дополнительные функции, такие как работа кнопок регулировки громкости, поднимите трубку и положите трубку.
К сожалению, по состоянию на 2019 год качество передачи голоса через Bluetooth все еще оставляет желать лучшего, и непонятно, почему Bluetooth SIG ничего не делает с этим.

CVSD

Базовый кодек передачи речи CVSD был стандартизирован в 2002 году и поддерживается всеми двунаправленными устройствами Bluetooth. Он обеспечивает передачу звука с частотой дискретизации 8 кГц, что соответствует качеству обычной проводной телефонии.

Пример записи в этом кодеке.

mSBC

Дополнительный кодек mSBC был стандартизирован в 2009 году, а в 2010 году появились чипы, которые уже использовали его для передачи голоса. mSBC широко поддерживается различными устройствами.
Это не автономный кодек, а обычный SBC из стандарта A2DP с фиксированным профилем кодирования: 16 кГц, моно, битовый пул 26.

Пример записи в этом кодеке.

Не блестяще, но намного лучше, чем CVSD, хотя использовать его для связи через Интернет все же неприятно, особенно когда вы используете наушники для общение в игре — звук игры также будет передаваться с частотой дискретизации 16 кГц.

FastStream

CSR решил продолжить Повторное использование SBC. Чтобы обойти ограничения протокола SCO и использовать более высокие скорости передачи данных, CSR пошла другим путем — они добавили поддержку двустороннего звука SBC в стандарт односторонней передачи звука A2DP и ​​назвали его «FastStream».

FastStream передает стереозвук 44,1 или 48 кГц на динамики с битрейтом 212 кбит/с. 16 кГц с битрейтом 72 кбит/с (немного лучше, чем у mSBC) используется для передачи звука с микрофона. Такие параметры гораздо лучше подходят для общения в онлайн-играх — звук игры и товарищей по команде будет качественным.

Пример записи в этом кодеке (+ звук с микрофона, такой же, как и в mSBC).

Компания придумала интересный хак, но из-за того, что он противоречит стандарту A2DP, его поддерживают только некоторые передатчики компании (которые работают как звуковая карта USB, а не устройство Bluetooth), но она не получила поддержки в стеке Bluetooth. Но количество наушников с поддержкой FastStream не так уж и мало.

На данный момент поддержка FastStream доступна только в виде патча для Linux PulseAudio от Pali Rohár, который не входит в основная ветвь программы.

aptX Low Latency

К большому удивлению, aptX Low Latency также поддерживает двунаправленное аудио, реализуя тот же принцип, что и FastStream.
Нет возможности использовать эту функцию кодека где-либо — нет поддержки декодирования с низкой задержкой ни в одной ОС и ни в каком стеке Bluetooth, о котором я знаю.

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

Есть два разных несовместимых протокола Bluetooth: Bluetooth Classic и Bluetooth Low Energy (LE, также известный как Bluetooth Smart). Существует также третий протокол, Bluetooth High Speed, но он не является распространенным и не используется в бытовой технике.

Начиная с Bluetooth 4.0, изменения в спецификациях касались в первую очередь Bluetooth Low. Energy, в то время как классическая версия получила лишь незначительные улучшения.

Список изменений между Bluetooth 4.2 и Bluetooth 5:

9 ИЗМЕНЕНИЙ ОТ v4.2 ДО 5.0

9.1 НОВЫЕ ВОЗМОЖНОСТИ

В выпуске Bluetooth Core Specification 5.0 Release представлены несколько новых функций. Основные области улучшения:
• Маска доступности слотов (SAM)
• 2 Мсим/с PHY для LE
• LE Long Range
• Высокий рабочий цикл Реклама без подключения
• Рекламные расширения LE
• Алгоритм выбора канала LE № 2
9.1.1 Функции, добавленные в CSA5 — интегрированы в v5.0
• Выше Выходная мощность

Источник: www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=421043 (страница 291)

Только одно изменение коснулось классической версии в спецификации Bluetooth 5: поддержка технологии Slot Availability Mask (SAM), разработанной для улучшения совместного использования радиочастот. Все остальные изменения касаются только Bluetooth LE (то же самое относится и к более высокой выходной мощности).

Все аудиоустройства используют только Bluetooth Classic. Наушники и динамики нельзя подключить через Bluetooth Low Energy. Не существует стандарта передачи звука с использованием LE. Стандарт A2DP, используемый для передачи высококачественного звука, работает только через Bluetooth Classic, и в LE нет эквивалента.

Подводя итог: покупка аудиоустройств с Bluetooth 5 только из-за новая версия протокола бессмысленна. Bluetooth 4.0/4.1/4.2 в контексте передачи звука будет работать точно так же.
Если в анонсе новых наушников упоминается удвоенный радиус и сниженное энергопотребление благодаря Bluetooth 5, то вы должны знать, что они либо не понимают сами или вводят вас в заблуждение. Неудивительно, что даже производители чипов Bluetooth путают разницу в обоих стандартах, а некоторые чипы Bluetooth 5 поддерживают пятую версию только для LE, а для Classic используют 4.2.

Величина задержки ( lag) в аудио зависит от многих факторов: размера буфера в аудиотеке, в стеке Bluetooth и в самом устройстве воспроизведения, алгоритмической задержки кодека.

Задержка Простые кодеки, такие как SBC, aptX и aptX HD, довольно малы, около 3-6 мс, которыми можно пренебречь, а вот сложные кодеки, такие как AAC и LDAC, могут давать заметную задержку. Алгоритмическая задержка AAC для 44,1 кГц составляет 60 мс. LDAC — около 30 мс (по приблизительному анализу исходного кода. Я могу ошибаться, но не сильно).

Общая задержка сильно зависит от устройства воспроизведения, его набора микросхем и буфера. Во время тестов у меня получился разброс от 150 до 250 мс на разных устройствах (с кодеком SBC). Если предположить, что устройства с поддержкой дополнительных кодеков aptX, AAC и LDAC используют компоненты более высокого качества и небольшой размер буфера, мы получим следующие типичные значения задержки:

SBC: 150-250 мс
aptX: 130-180 мс
AAC: 190-240 мс
LDAC: 160-210 мс

Напомню: aptX Low Задержка не поддерживается в операционных системах, поэтому меньшую задержку можно получить только с комплектом передатчик + приемник или передатчик + наушники/динамик, и все устройства должны поддерживать этот кодек.

Как отличить качественную аудиосистему от дешевой поделки? Судя по внешнему виду, в первую очередь!

Дешевые китайские наушники, колонки и ресиверы имеют:

  1. Нет слова «Bluetooth» на коробка и устройство, чаще всего заменяемые на «Wireless» и «BT».
  2. Нет логотипа Bluetooth на коробка или устройство
  3. Нет синего мигающего светодиода

Отсутствие этих элементов указывает на то, что устройство не было сертифицировано, что означает, что это потенциально проблематично или плохого качества. Например, наушники Bluedio не сертифицированы по Bluetooth и не полностью соответствуют спецификации A2DP. Они бы не прошли сертификацию.

Давайте посмотрим на несколько устройств и боксов от них:

Это все несертифицированные устройства. В инструкции может быть логотип и название «Bluetooth», но главное — эти элементы должны присутствовать на самом устройстве или коробке..

Если ваши наушники или динамик говорят «Ze bluetooth dewise подключен успешно», это тоже не говорит о качестве:

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

Маркетинг альтернативных кодеков очень силен: aptX и LDAC представлены как долгожданная замена «устаревшего и плохого» SBC, который далеко не так плох, как принято думать.

Как оказалось, искусственные ограничения стеков Bluetooth на SBC можно обойти, так что SBC будет на одном уровне с aptX HD. Я проявил инициативу и сделал патч для прошивки LineageOS: изменение стека Bluetooth для улучшения звука в наушниках без кодеков AAC, aptX и LDAC

Более подробную информацию о кодеках можно найти на сайтах SoundGuys и SoundExpert .

Бонус: эталонный кодировщик SBC, информация о потоке битов A2DP и ​​тестовые файлы. Этот файл ранее был общедоступен на веб-сайте Bluetooth, но теперь он доступен только для тех, кто присоединился к Bluetooth SIG.

Дополнительная статья : Bluetooth LC-SBC и SBC-HBR, объясненный Кеном Лаберто.

Оцените статью
clickpad.ru
Добавить комментарий