В 2016 году Apple в очередной раз удивила мир, выпустив iPhone 7 без привычного нам 3.5 мм аудио разъема. Тогда компания объяснила свой ход тем, что он мешал созданию нормальной водозащиты. Так это или нет — спорить можно долго, но таким шагом Apple подтолкнула развитие беспроводных наушников, активно участвуя в этом сама, выпуская различные AirPods.
Однако с переходом на Bluetooth-звук появилась новая проблема: при подключении беспроводных наушников к какому-либо устройству единственное, что вы точно можете сказать, так это то, что звук будет. Но вот его качество и задержка могут быть сомнительными, и для исправления этого вам придется погрузиться в ад Bluetooth-кодеков, в котором я варюсь по своей воле уже пару лет. Так что добро пожаловать.
SBC — неплохой стандартный кодек, который утопили драйвера
Разумеется, при создании какого-либо стандарта передачи данных, в нашем случае звука, нужно сделать его базовую и доступную для всех реализацию: так и появился Bluetooth-кодек SBC, или SubBand Codec. Он имеет минимальные требования к «железу», и работать с ним могут даже простые кнопочные телефоны. У него есть базовая психоакустическая модель и широкие возможности кастомизации. Он бесплатен и открыт, и доступен для всех больше 15 лет. Все это должно было сделать остальные кодеки просто ненужными, если бы не одно но.
В 99% девайсов этот кодек гвоздями прибит к битрейту в 328 кбит/c. Просто для сравнения: стандартное CD Audio с 16 бит и 44.1 кГц имеет битрейт в 4 раза выше, чуть больше 1.4 Мбит/c. Как итог, даже при прослушивании музыки из потоковых сервисов битрейта перестает хватать, и психоакустика может начать отключать верхние диапазоны частот, выше 16-18 кГц, дабы нижним, которые слышат все, доставалось больше места в «узком» битрейте. В результате, при прослушивания различных композицией с широкой сценой (например, с женским вокалом), качество звука может ощутимо упасть, поэтому кодек SBC традиционно считается неподходящим для передачи качественной музыки.
Подливает масло в огонь и то, что многие производители наушников просто не настраивают DSP (Digital Signal Processing) для этого кодека. В наушниках есть одноименный процессор, который отвечает за подготовку звука перед его непосредственным выводом, и его можно заставить делать много полезных вещей — например, именно DSP-процессор отвечает за шумоподавление. Также он может исправлять огрехи кодеков, работая эквалайзером. И если для различных AAC или AptX создатели наушников еще заморачиваются и «подкручивают» звук, то вот с SBC ничего не делает даже Sony в своих накладных аудиофильских решениях линейки WH-1000XM, чего уж говорить о более простых наушниках.
SBC может вносить в звук даже меньше искажений, чем AptX HD.
Как итог, SBC начинает звучать еще хуже на фоне более «продвинутых» кодеков. Однако есть любопытный момент — он может звучать даже лучше AptX HD с битрейтом в 576 кбит/c. Как так? Все просто: как я уже писал выше, этот кодек можно масштабировать в очень широких пределах, и его теоретический максимум — это чуть больше 1.5 Мбит/c, то есть он может пропускать даже CD Audio без сжатия! Разумеется, на деле в нашем зашумленном 2.4 ГГц диапазоне такая скорость возможна лишь в мечтах, да и не все наушники ее поддерживают. Однако подавляющее большинство решений на рынке способно работать с SBC при битрейте в 400-600 Кбит/c.
Как итог, этого полностью хватает, чтобы психоакустика переставала обрезать какие-либо частоты, и теоретически SBC начинает вносить даже меньше искажений в звук, чем более новые кодеки от Qualcomm (да-да, AptX принадлежит им). Но тут все подпортили драйвера: ни на Windows, ни на macOS, ни на iOS вы никак не можете изменить стандартный битрейт в 328 кбит/c в большую сторону. Так называемый SBC HD с большим битрейтом есть только под Android с кастомной прошивкой LineageOS. Поэтому, как я и сказал изначально, SBC «убила» не плохая реализация — его убили плохие драйвера, и сам по себе этот кодек очень даже неплох.
В 2020 году мы все еще не можем слушать стереозвук по Bluetooth при использовании микрофона наушников
Думаю, многие пользователи замечали, что при ответе на звонок с беспроводных наушников качество звука ощутимо падает. Все дело в том, что наушники переходят в режим гарнитуры (HFP, Hands-Free Profile). В таком режиме они могут передавать звук с микрофона наушников на смартфон, но и звук со смартфона выводится лишь в моно. Разумеется, для разговора этого хватает — для четкого понимания речи стерео не нужно. Но в 2020 году мы нередко привыкли разговарить и одновременно слушать музыку или играть, и в таком случае очевидно плоский монозвук с низким качеством портит всё.
Поэтому, если вы хотите слушать музыку в стерео и одновременно общаться, вам придется использовать внешний микрофон (например, смартфона). В таком случае будет использоваться стандартный профиль A2DP (Advanced Audio Distribution Profile) как минимум с SBC (или другим «полноценным» кодеком). Но, разумеется, при этом у вас не будет свободы движения. Такое ограничение было логичным в начале нулевых, когда Bluetooth-звук только зарождался: гарнитуры тогда использовали только для общения, а слабеньких процессоров в наушниках просто не хватало для одновременной работы со стереозвуком и микрофоном.
Но в современном мире, где наушники поддерживают сложные математические кодеки, такие как AAC или LDAC, с шумоподавлением и прочими фишками, вполне можно было расширить профиль A2DP до возможности принимать и передавать звук в стерео. Но, увы, этого нет, поэтому при каждом звонке мы отправляемся по качеству звука даже не в начало нулевых, а в девяностые.
AptX — маркетинговый кодек, ставший популярным
Нередко на новом рынке становится лидером не тот, кто предложил лучшее решение, а тот, кто предложил свое решение первым. Таким стал кодек Apt-X, который был разработан профессором Стивеном Смитом из Королевского университета Великобритании еще в 1980-ых для быстрой передачи качественного звука на различную переносную аппаратуру и вообще для быстрой записи качественного аудио. В дальнейшем права на тогда еще Apt-X были куплены CSR, которая в 2009 году сделала кодек беспроводным и переименовала его в AptX. Ну а в 2015 году эту компанию покупает Qualcomm, которая сейчас владеет правами на AptX и охотно продает их всем желающим.
Основная идея AptX — это передача CD Audio в почти оригинальном качестве. На деле мы видим сжатие 4:1, то есть битрейт составлял до 352 кбит/c при 16 бит и 44.1 кГц. Так что ни о каком «почти» речи тут не идет: максимальное сжатие без потерь не превышает 2:1, так что при передаче звука с помощью AptX данные таки теряются. Но насколько сильно? Об этом поговорим ниже.
Так как AptX — это чисто математический кодек, который всегда покрывает весь звуковой диапазон до 22 кГц — казалось бы, он должен быть лучше по сравнению с SBC, который нередко отключает высокие частоты. На деле это, увы, не так. Основной принцип этого кодека — квантование, то есть выделение определенного числа бит на каждый поддиапазон: так, на передачу звука от 0 до 5500 Гц идет 8 бит, от 5500 до 11000 Гц — 4 бит, от 11000 до 16500 Гц и от 16500 до 22000 Гц идет по 2 бита.
Да, на первый взгляд AptX выглядит лучше SBC, который обрезал частоты 18+ кГц, и mp3, который тоже попытался это сделать. Но, если приглядеться, то становится видно, что кодек Qualcomm внес больше ошибок — например, он вообще «не заметил» желтый пик слева.
И вот тут кроется основная проблема этого кодека: так, 16 бит дают нам более чем достаточный для наших ушей диапазон звука до 96 дБ. А вот 2 бита дают нам всего 12 дБ — это очень мало, и шумы на высоких частотах должны быть отчетливо слышны. Однако доктор Смит не был глухим и тем более глупым: зачем каждый раз отсчитывать абсолютный диапазон, как это делается при привычной нам PCM-модуляции. Он использовал ADPCM-модуляцию, которая считает лишь разницу между текущим и предыдущим сэмплом, и это позволяет даже в 2 бита «запихнуть» полноценные 96 дБ. Однако тут, как и везде в беспроводном звуке, есть очередное «но».
Получить все 96 дБ можно лишь в самом лучшем случае, в реальности динамический диапазон в высоких частотах может поджиматься до 40-50 дБ. Чтобы улучшить ситуацию, в AptX используются специальные таблицы коррекции для ADPCM, «обученные» на некотором наборе треков. Так что чем ближе ваша музыка к той, которую использовали инженеры CSR, тем лучше будет качество звука.
В самом худшем случае, когда выводится лишь одна «нота» на определенной частоте, а на других частотах тишина, шум становится явно слышным. Если у вас есть наушники с AptX, то выкрутите громкость и послушайте ролик ниже на высоких частотах (выше 7 кГц) — скорее всего вы услышите в некоторых моментах вместе с писком еще и звук, схожий с сыплющимся песком. Да, это и есть те самые шумы квантования:
При этом с тем же SBC никаких шумов не будет — вот так древний и простой кодек обходит «маркетинговый» AptX. Разумеется, на большинстве реальных композиций таких шумов не будет — ADPCM там справляется терпимо. Но тут возникает схожая проблема с SBC: битрейта около ~300 кбит/c не хватает для полноценной передачи даже музыки с потоковых сервисов. А с учетом того, что AptX не может отключать малоиспользуемые диапазоны, в отличие от SBC, ему приходится вносить больше искажений в трек.
Однако, с другой стороны, нередко DSP-процессоры в наушниках имеют оптимизации под AptX, и такие «эквалайзерные» настройки действительно делают звук, переданный с помощью кодека Qualcomm, лучше, чем у «стандартного» SBC. Но, в общем и целом, SBC и AptX имеют сравнимое качество звучания, и никакой речи о «почти CD Audio» у последнего не идет и близко.
Большинство беспроводных кодеков имеют ощутимую задержку
Передача звука «по воздуху» — дело сложное: нужно считать трек из памяти, декодировать в нужный кодек, отправить по Bluetooth, принять, раскодировать обратно, обработать с помощью DSP-процессора и воспроизвести. К тому же при передаче данных их часть может потеряться, так что выводить только что полученный сэмпл сразу нельзя — он может быть неполным. В итоге это выливается в достаточно серьезную задержку, которая может достигать 300 мс для SBC, но в среднем колеблется около 150-250 мс.
Разумеется, при прослушивании музыки это абсолютно неважно — здесь и секундная задержка ни на что не влияет. Но нередко мы смотрим в наушниках фильмы или играем в игры, и здесь отставание звука на пару сотен миллисекунд уже хорошо заметно: хлопок в ладоши на экране доходит до нас с ощутимой задержкой. Про игры и говорить нечего — нам неприятно играть с пингом выше сотни миллисекунд, чего уже говорить о вдвое большем отставании звука.
Выход из данной ситуации есть — кодек AptX-LL (Low Latency). С ним сквозная задержка звука опускается всего до 40 мс при прочих характеристиках на уровне обычного AptX. И, как обычно, парочка «но»: во-первых, ни одна ОС не поддерживает этот кодек «из коробки», так что вам потребуется покупать сторонний адаптер Bluetooth. Во-вторых, наушников с поддержкой такого кодека — кот наплакал.
Вот и получается, что на крутых Bose с отличным звуком толком поиграть у вас не получится, да и с просмотром фильмов у вас могут быть проблемы. К счастью, в последнее время ситуация стала улучшаться: так, например, системный плеер iOS научился понимать, что подключены Bluetooth-наушники, и пускать звук чуть заранее, чтобы избежать ощутимой задержки. Но, разумеется, с онлайн-плеерами в браузерах, особенно на десктопных ОС, это не работает. В играх тем более.
Отсутствие доступных на ПК высококачественных кодеков
У Bluetooth-звука есть три столпа, на которых он стоит — это SBC, AAC и AptX. Эти кодеки в различных комбинациях поддерживают большинство ОС и наушников. И, с некоторыми оговорками, этих кодеков хватает для воспроизведения музыки с потоковых сервисов и просмотра фильмов. С учетом того, что это самые массовые использования беспроводных наушников, вполне очевидно, почему индустрия в этом плане слабо растет вверх.
Но все же хватает людей, которые слушают lossless или же получают сразу несколько потоков аудио (например, играют, общаются и фоном смотрят видео). В таких случаях кодеки выше временами ощутимо снижают качество звука в сравнении с проводом. Есть ли выход? Как вы уже догадались — да, но опять с оговорками.
В квадрате — кодеки, которые можно получить без танцев с бубном на современных десктопных ОС.
Например, есть кодек от Sony под названием LDAC. До 990 кбит/с при 24 битах и 96 кГц. Ощутимо лучше троицы выше с битрейтами ~300 кбит/c, в теории позволяет свободно пропускать CD Audio без потерь (на практике неизвестно, так как кодек закрыт). Но, увы, получить его можно лишь на Android 9.0 и выше, или же на Linux. На остальных ОС он не доступен даже со сторонними Bluetooth-адаптерами. 99% наушников с LDAC — достаточно дорогие решения от Sony.
Окей, идем дальше. Есть кодек UAT, разработанный малоизвестной в России компанией Hiby, которая производит различную аудиотехнику. Битрейт до 1.2 Мбит/c, частота дискретизации до 192 кГц. Опять же без проблем хватает для CD Audio, причем вообще почти без применения сжатия. Однако такой кодек, очевидно, поддерживают лишь пара плееров от Hiby и такое же количество их наушников не самого высокого качества. Bluetooth-адаптеров с ним нет.
LHDC или HWA. Аналог LDAC (до 900 кбит/c, 24 бит и 96 кГц), поддерживаемый в основном дорогими устройствами от Xiaomi и Huawei. Количество наушников с ним исчезаще мало. Bluetooth-адаптеров с ним нет.
Вот и получается, что самый максимум, который вы можете получить на macOS или Windows, купив адаптер — это AptX HD. Да и то в режиме 16 бит и 48 кГц, что близко по качеству к AptX. Так что даже сейчас в 2020 году единственный способ получить качественный звук на ПК — это провод.
Да, некоторые плееры с поддержкой кодеков выше можно подключить к компьютеру в режиме DAC (внешней аудиокарты), но в таком случае задержки вырастают до секунды, а возможность управлять воспроизведением с наушников пропадает. К тому же цены на такие плееры нередко от 5 тысяч рублей только начинаются, так что этот способ можно рассматривать лишь как костыль только для прослушивания музыки.
Не всегда есть свободный выбор кодеков
Обычная ситуация — ваши наушники поддерживают сразу множество кодеков, например SBC, AptX, AptX LL и AptX HD. И у вас есть Bluetooth-адаптер, умеющий работать со всеми этими кодеками. Какой из них будет использоваться при подключении? Скорее всего, самый качественный по звуку, то есть AptX HD. Но, допустим, вы хотите поиграть, для чего AptX LL с более низкой задержкой подходит лучше. Увы, переключиться на него вы не сможете никак.
Исключением является разве что Android, где в настройках разработчика можно выбрать приоритетный кодек. Но ни Windows, ни macOS, ни iOS такой возможности вам не дадут. Так что в таком случае вам придется купить отдельный адаптер, который поддерживает AptX LL, но не поддерживает AptX HD, и подключаться к нему, чтобы поиграть без ощутимой задержки. Удобно? Да едва ли.
LC3 — лучик света в темном аду Bluetooth-звука
К счастью, группа Bluetooth SIG, которая занимается развитием «синезуба», видимо также в шоке от всего ужаса, который творится с беспроводным звуком, поэтому готовит стандарт Bluetooth Audio LE и кодек LC3, первые решения с которыми появятся скорее всего в следующем году. Что же нам это даст?
Ну, сам протокол Bluetooth LE далеко не нов, и его суть в том, чтобы обмениваться информацией между устройствами с минимальными затратами энергии. Увы, для звука он до этого не использовался — сейчас его передача ведется с помощью Bluetooth Classic, который в этом плане более жорист. Так что переход аудио на BLE позволит продлить время работы беспроводных наушников, особенно в режиме ожидания — достаточно приятный бонус.
Кодек LC3 также выглядит интересным — он будет давать уже терпимое качество звука при битрейте всего 160 кбит/c. При ~345 кбит/c он будет обходить по качеству SBC. Увы, пока что точных принципов его кодирования мы не знаем, но по всей видимости будет использоваться мощная психоакустика и качественное сжатие, так что музыка с потоковых сервисов будет звучать отлично. Увы — для lossless скорее всего изменений будет мало.
Также, судя по маркетинговой информации на официальном сайте Bluetooth (где, к слову, уже можно проверить качество нового кодека), Bluetooth LE вместе с LC3 позволит передавать аудио в стерео при использовании микрофона, так что больше никакого монозвука. Правда, напрямую это не написано: всего лишь говорится, что гарнитуры и слуховые аппараты станут работать лучше. Раз монозвук улучшать дальше некуда — видимо, речь идет про стерео.
К тому же улучшится взаимодействие между наушниками и девайсами: BLE позволит подключать любые наушники с его поддержкой сразу к нескольким устройствам. Аналогично и наоборот — можно будет выводить звук с одного устройства сразу на несколько наушников или беспроводных колонок. Да, такие возможности реализуются производителями техники уже сейчас, но теперь это будет прописано в стандарте.
Итог — звук по Bluetooth имеет много «но», однако скоро все станет лучше
На данный момент беспроводной звук выглядит как USB-C: вроде крутой удобный порт, в теории поддерживает все, а на деле в половине ноутбуков USB-C работает как USB 2.0, а Thunderbolt есть только в топовых решениях. С Bluetooth аналогично: в теории в «шумном» 2.4 ГГц диапазоне можно передавать где-то до 1 Мбит/c данных без прерываний, чего с головой хватит для передачи музыки с потоковых сервисов без потерь по тому же SBC.
Но на деле мы видим маркетинговый AptX, урезанный SBC, используемый в основном только в iPhone кодек AAC и... все. По-настоящему крутые кодеки не доступны большинству пользователей чисто технически, и разработчики ОС не спешат внедрять их поддержку, как и производители наушников. Вся надежда остается только на Bluetooth LE и LC3 — но и тут стоит понимать, что это все-таки будущее, причем не самое ближайшее. А пока — добро пожаловать в ад беспроводного звука.