Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Dėl masinės išmaniųjų telefonų gamybos be 3.5 mm garso lizdo belaidės Bluetooth ausinės daugeliui tapo pagrindiniu būdu klausytis muzikos ir bendrauti ausinių režimu.
Belaidžių įrenginių gamintojai ne visada rašo detalias gaminio specifikacijas, o straipsniai apie Bluetooth garsą internete yra prieštaringi, kartais neteisingi, nekalba apie visas funkcijas, dažnai kopijuoja tą pačią tikrovės neatitinkančią informaciją.
Pabandykime suprasti protokolą, „Bluetooth“ OS stekų, ausinių ir garsiakalbių, „Bluetooth“ muzikos ir kalbos kodekų galimybes, išsiaiškinkime, kas turi įtakos perduodamo garso kokybei ir delsai, išmokime rinkti ir iššifruoti informaciją apie palaikomus kodekus ir kitą įrenginį. pajėgumus.

Lt; DR:

  • SBC – normalus kodekas
  • Ausinės turi savo ekvalaizerį ir papildomą apdorojimą kiekvienam kodekui atskirai
  • aptX nėra toks geras, kaip reklamuojama
  • LDAC yra rinkodaros nesąmonė
  • Skambučio kokybė vis dar prasta
  • Galite įterpti C garso kodavimo įrenginius į savo naršyklę, sukompiliuodami juos į WebAssembly naudodami emscripten, ir jie labai nesulėtės.

Muzika per Bluetooth

Funkcinį Bluetooth komponentą lemia profiliai – konkrečių funkcijų specifikacijos. „Bluetooth“ muzikos transliacijai naudojamas aukštos kokybės A2DP vienakrypčio garso perdavimo profilis. A2DP standartas buvo priimtas 2003 metais ir nuo to laiko iš esmės nepasikeitė.
Profilyje standartizuotas 1 privalomas mažo skaičiavimo sudėtingumo SBC kodekas, sukurtas specialiai Bluetooth, ir 3 papildomi. Taip pat galima naudoti nedokumentuotus savo paties įdiegtus kodekus.

2019 m. birželio mėn. esame xkcd komiksuose su 14 A2DP kodekų:

  • SBC ← standartizuotas A2DP, palaikomas visų įrenginių
  • MPEG-1/2 Layer 1/2/3 ← standartizuotas A2DP: gerai žinomas MP3, naudojamas skaitmeninėje televizijoje MP2, ir nežinomas MP1
  • MPEG-2/4 AAC ← standartizuotas A2DP
  • ATTRAC ← Senas „Sony“ kodekas, standartizuotas A2DP
  • LDAC ← naujas kodekas iš Sony
  • aptX ← Kodekas nuo 1988 m
  • „aptX HD“ ← tas pats kaip aptX, tik su skirtingomis kodavimo parinktimis
  • „aptX“ mažas delsimas ← visiškai kitoks kodekas, jokios programinės įrangos diegimo
  • „aptX Adaptive“ ← kitas „Qualcomm“ kodekas
  • FastStream ← pseudo kodekas, dvikryptis SBC modifikavimas
  • HWA LHDC ← naujas Huawei kodekas
  • Samsung HD ← palaiko 2 įrenginiai
  • „Samsung“ keičiamo dydžio ← palaiko 2 įrenginiai
  • Samsung UHQ-BT ← palaiko 3 įrenginiai

Kam iš viso reikalingi kodekai, klausiate, kai Bluetooth turi EDR, leidžiantį perduoti duomenis 2 ir 3 Mbit/s greičiu, o nesuspaustam dviejų kanalų 16 bitų PCM užtenka 1.4 Mbit/s?

Duomenų perdavimas per Bluetooth

Yra du „Bluetooth“ duomenų perdavimo tipai: „Asynchronous Connection Less“ (ACL), skirtas asinchroniniam perdavimui neužmezgus ryšio, ir Sinchroninis ryšys Orientuotas (SCO), skirtas sinchroniniam perkėlimui su išankstine ryšio derybomis.
Perdavimas atliekamas naudojant laiko padalijimo schemą ir kiekvienam paketui atskirai parenkant perdavimo kanalą (Frequency-Hop/Time-Division-Duplex, FH/TDD), kuriam laikas yra padalintas į 625 mikrosekundžių intervalus, vadinamus lizdais. Vienas iš įrenginių siunčia porinio numerio lizdais, kitas – nelyginiais lizdais. Perduotas paketas gali užimti 1, 3 arba 5 tarpsnius, priklausomai nuo duomenų dydžio ir nustatyto perdavimo tipo, tokiu atveju perdavimas vienu įrenginiu vykdomas lyginiais ir nelyginiais laiko tarpsniais iki perdavimo pabaigos. Iš viso per sekundę galima priimti ir išsiųsti iki 1600 paketų, jei kiekvienas iš jų užima 1 lizdą, o abu įrenginiai ką nors perduoda ir priima nesustodami.

2 ir 3 Mbit/s EDR, kuriuos galima rasti pranešimuose ir „Bluetooth“ svetainėje, yra didžiausias visų duomenų kanalo perdavimo greitis iš viso (įskaitant visų protokolų technines antraštes, kuriuose duomenys turi būti inkapsuliuojami), dviem kryptimis. tuo pačiu metu. Faktinis duomenų perdavimo greitis labai skirsis.

Muzikai perduoti naudojamas asinchroninis metodas, beveik visada naudojant paketus, tokius kaip 2-DH5 ir 3-DH5, kurie EDR režimu perduoda didžiausią duomenų kiekį atitinkamai 2 Mbit/s ir 3 Mbit/s ir užima 5 laiką. - dalintis laiko tarpsniais.

Схематичное представление передачи с использованием 5 слотов одним устройством и 1 слота другим (DH5/DH1):
Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Dėl eterio laiko padalijimo principo po paketo perdavimo esame priversti laukti 625 mikrosekundžių laiko tarpą, jei antrasis įrenginys mums nieko neperduoda arba perduoda nedidelį paketą, ir daugiau laiko, jei antras įrenginys perduoda dideliuose paketuose. Jei prie telefono prijungtas daugiau nei vienas įrenginys (pavyzdžiui, ausinės, laikrodžiai ir kūno rengybos apyrankė), perdavimo laikas pasiskirsto visiems.

Poreikis įterpti garsą į specialius perdavimo protokolus L2CAP ir AVDTP atima 16 baitų nuo galimo maksimalaus perduodamo garso apkrovos kiekio.

Pakuotės tipas
Lizdų skaičius
Maks. baitų skaičius pakete
Maks. A2DP naudingosios apkrovos baitų skaičius
Maks. A2DP naudingosios apkrovos bitų sparta

2-DH3
3
367
351
936 kbps

3-DH3
3
552
536
1429 kbps

2-DH5
5
679
663
1414 kbps

3-DH5
5
1021
1005
2143 kbps

1414 ir 1429 kbps tikrai nepakanka norint perduoti nesuspaustą garsą realiomis sąlygomis, esant triukšmingam 2.4 GHz diapazonui ir būtinybei perduoti paslaugų duomenis. EDR 3 Mbit/s reikalauja perdavimo galios ir triukšmo eteryje, todėl net 3-DH5 režimu patogus PCM perdavimas neįmanomas, visada bus trumpalaikių pertrūkių, o viskas veiks tik XNUMX metrų atstumu. pora metrų.
Praktiškai net 990 kbit/s garso srautą (LDAC 990 kbit/s) sunku perduoti.

Grįžkime prie kodekų.

SBC

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

Mėginių ėmimo dažnis
Talpa
Bitų sparta
Kodavimo palaikymas
Dekodavimo palaikymas

16, 32, 44.1, 48 kHz
16 bit
10-1500 kbps
Visi įrenginiai
Visi įrenginiai

SBC yra paprastas ir greitas skaičiavimo kodekas, turintis primityvų psichoakustinį modelį (taikomas tik tylių garsų maskavimas), naudojant adaptyvų impulsų kodo moduliaciją (APCM).
A2DP specifikacija rekomenduoja naudoti du profilius: vidutinės kokybės ir aukštos kokybės.
Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Kodekas turi daug nustatymų, leidžiančių valdyti algoritminį delsą, mėginių skaičių bloke, bitų paskirstymo algoritmą, tačiau beveik visur naudojami tie patys parametrai, rekomenduojami specifikacijoje: Joint Stereo, 8 dažnių juostos, 16 blokų. garso kadras, garsumo bitų paskirstymo metodas.
SBC palaiko dinaminį Bitpool parametro keitimą, kuris tiesiogiai veikia bitų spartą. Jei radijo bangos užsikimšusios, paketai prarandami arba įrenginiai yra dideliais atstumais, garso šaltinis gali sumažinti „Bitpool“ funkciją, kol ryšys vėl normalizuosis.

Dauguma ausinių gamintojų nustato maksimalią „Bitpool“ reikšmę iki 53, o tai riboja bitų spartą iki 328 kilobitų per sekundę naudojant rekomenduojamą profilį.
Net jei ausinių gamintojas nustatė didžiausią „Bitpool“ vertę virš 53 (tokie modeliai randami, pavyzdžiui: „Beats Solo³“, „JBL Everest Elite 750NC“, „Apple AirPods“, taip pat randami kai kuriuose imtuvuose ir automobilio galvos blokuose), dauguma OS neleis. padidinto bitų perdavimo spartos naudojimas dėl nustatyto vidinės vertės limito „Bluetooth“ krūveliuose.
Be to, kai kurie gamintojai kai kuriems įrenginiams nustato mažą maksimalią „Bitpool“ reikšmę. Pavyzdžiui, Bluedio T yra 39, Samsung Gear IconX - 37, o tai suteikia prastą garso kokybę.

Dirbtiniai apribojimai „Bluetooth“ kaminų kūrėjams greičiausiai atsirado dėl kai kurių įrenginių, turinčių didelių „Bitpool“ reikšmių ar netipiškų profilių, nesuderinamumo, net jei jie pranešė apie jų palaikymą, ir dėl nepakankamo bandymo sertifikavimo metu. „Bluetooth“ stekelių autoriams buvo lengviau apsiriboti susitarimu dėl rekomenduojamo profilio, o ne kurti netinkamų įrenginių duomenų bazes (nors dabar tai daro dėl kitų netinkamai veikiančių funkcijų).

SBC dinamiškai paskirsto kvantavimo bitus dažnių juostoms nuo mažo iki didelio su skirtingu svoriu. Jei visas bitų dažnis buvo naudojamas žemiems ir vidutiniams dažniams, aukšti dažniai bus „nukirsti“ (vietoj tyla).

SBC pavyzdys 328 kbps. Viršuje yra originalas, apačioje - SBC, periodiškai persijungiantis tarp takelių. Vaizdo įrašo failo garsas naudoja FLAC be nuostolių glaudinimo kodeką. FLAC naudojimas mp4 talpykloje nėra oficialiai standartizuotas, todėl negarantuojama, kad jūsų naršyklė jį leis, tačiau jis turėtų veikti naujausiose staliniams kompiuteriams skirtose „Chrome“ ir „Firefox“ versijose. Jei neturite garso, galite atsisiųsti failą ir atidaryti jį visaverčiu vaizdo grotuvu.
ZZ Top – aštriai apsirengęs vyras

Spektrograma rodo perjungimo momentą: SBC periodiškai sumažina tylius garsus, kurių dažnis viršija 17.5 kHz, ir neskiria jokių bitų juostai virš 20 kHz. Visą spektrogramą rasite paspaudę (1.7 MB).
Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Negirdžiu jokio skirtumo tarp originalo ir SBC šiame takelyje.

Возьмём что-нибудь новее, и смоделируем аудио, которое бы получилось при использовании наушников Samsung Gear IconX с Bitpool 37 (вверху — исходный сигнал, внизу — SBC 239 кбит/с, звук во FLAC).
Beprotiškas savęs pamaloninimas – liudytojas

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

Nors SBC yra labai lankstus kodekas, jį galima sukonfigūruoti mažam delsos laikui, jis užtikrina puikią garso kokybę esant dideliam bitų dažniui (452+ kbps) ir yra gana geras daugeliui žmonių esant standartinei aukštai kokybei (328 kbps) dėl to, kad A2DP standartas nenurodo fiksuotų profilių (o tik pateikia rekomendacijas), stekų kūrėjai nustatė dirbtinius Bitpool apribojimus, vartotojo sąsajoje nerodomi perduodamo garso parametrai, o ausinių gamintojai gali laisvai nustatyti savo nustatymus ir niekada produkto techninėse specifikacijose nurodykite Bitpool reikšmę, kodekas išgarsėjo dėl prastos garso kokybės, nors tai nėra kodeko kaip tokio problema.
„Bitpool“ parametras tiesiogiai veikia bitų spartą tik viename profilyje. Ta pati „Bitpool 53“ vertė gali duoti tiek 328 kbps bitų spartą su rekomenduojamu aukštos kokybės profiliu, tiek 1212 kbps su dvigubu kanalu ir 4 dažnių juostomis, todėl OS autoriai, be „Bitpool“ apribojimų, nustato ribą ir Bitų sparta. Kaip matau, tokia situacija susidarė dėl A2DP standarto trūkumo: reikėjo derėtis dėl bitrate, o ne dėl Bitpool.

SBC galimybių palaikymo lentelė skirtingose ​​OS:

OS
Palaikomi atrankos dažniai
Apriboti maks. Bitpool
Apriboti maks. Bitrate
Tipiškas bitų dažnis
Bitpool dinaminis reguliavimas

langai 10
44.1 кГц
53
512 kbps
328 kbps
✓*

„Linux“ („BlueZ“ + „PulseAudio“)
16, 32, 44.1, 48 kHz
64 (įeinantiems ryšiams), 53 (išeinantiems ryšiams)
Nėra ribos
328 kbps
✓*

MacOS High Sierra
44.1 кГц
64, numatytasis 53***
Nežinoma
328 kbps

„Android 4.4-9“
44.1/48 kHz**
53
328 kbps
328 kbps

„Android 4.1-4.3.1“
44.1, 48 kHz**
53
229 kbps
229 kbps

BlackBerry OS 10
48 кГц
53
Nėra ribos
328 kbps

* Bitpool только уменьшается, но не увеличивается автоматически, в случае улучшения условий передачи. Для восстановления Bitpool нужно остановить воспроизведение, подождать пару секунд и заново запустить аудио.
** Numatytoji reikšmė priklauso nuo kamino nustatymų, nurodytų kompiliuojant programinę-aparatinę įrangą. Android 8/8.1 dažnis yra tik 44.1 kHz arba 48 kHz, priklausomai nuo nustatymų kompiliavimo metu, kitose versijose palaikomi 44.1 kHz ir 48 kHz vienu metu.
*** „Bitpool“ reikšmę galima padidinti „Bluetooth Explorer“ programoje.

aptX ir aptX HD

aptX yra paprastas ir skaičiavimais greitas kodekas, be psichoakustikos, naudojant adaptyvų diferencialinį impulsų kodo moduliavimą (ADPCM). Pasirodė apie 1988 m. (padavimo data patentas 1988 m. vasario mėn.), prieš „Bluetooth“ jis daugiausia buvo naudojamas profesionalioje belaidžio garso įrangoje. Šiuo metu priklauso „Qualcomm“, reikalinga licencija ir honorarai. 2014 m.: 6000 1 USD vienkartinis ir ≈ 10000 USD už įrenginį, už paketus iki XNUMX XNUMX įrenginių (šaltinis, p. 16).
aptX ir aptX HD yra tas pats kodekas su skirtingais kodavimo profiliais.

Kodekas turi tik vieną parametrą – diskretizavimo dažnio pasirinkimą. Tačiau yra galimybė pasirinkti kanalų skaičių / režimą, tačiau visuose man žinomuose įrenginiuose (70 ir daugiau vienetų) palaikomas tik stereofoninis ryšys.

Kodekas
Mėginių ėmimo dažnis
Talpa
Bitų sparta
Kodavimo palaikymas
Dekodavimo palaikymas

aptX
16, 32, 44.1, 48 kHz
16 bit
128 / 256 / 352 / 384 kbps (priklausomai nuo atrankos dažnio)
„Windows 10“ (staliniams kompiuteriams ir mobiliesiems), „macOS“, „Android 4.4+/7*“, „Blackberry OS 10“
Platus garso įrenginių asortimentas (aparatinė įranga)

* Versijoms iki 7 reikia modifikuoti „Bluetooth“ krūvą. Kodekas palaikomas tik tuo atveju, jei „Android“ įrenginio gamintojas licencijavo kodeką iš „Qualcomm“ (jei OS turi kodavimo bibliotekas).

aptX padalija garsą į 4 dažnių juostas ir nuolat kvantuoja tuo pačiu bitų skaičiumi: 8 bitai 0-5.5 kHz, 4 bitai 5.5-11 kHz, 2 bitai 11-16.5 kHz, 2 bitai 16.5-22 kHz ( 44.1 kHz atrankos dažnio skaičiai).

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

Aukštumos tapo šiek tiek raudonesnės, bet skirtumo nesigirdėjote.

Dėl fiksuoto kvantavimo bitų pasiskirstymo kodekas negali „perkelti bitų“ į dažnius, kuriems jų labiausiai reikia. Skirtingai nuo SBC, aptX „neapkarpys“ dažnių, o pridės prie jų kvantavimo triukšmo, sumažindamas garso dinaminį diapazoną.

Nereikėtų manyti, kad naudojant, pavyzdžiui, 2 bitus juostoje, dinaminis diapazonas sumažėja iki 12 dB: ADPCM leidžia iki 96 dB dinaminį diapazoną net naudojant 2 kvantavimo bitus, bet tik tam tikram signalui.
ADPCM išsaugo skaitinį skirtumą tarp dabartinio ir kito mėginio, o ne absoliučią vertę, kaip PCM. Tai leidžia sumažinti bitų skaičiaus reikalavimus, reikalingus tai pačiai (be nuostolių) arba beveik tokiai pačiai (su santykinai maža apvalinimo klaida) informacijai saugoti. Siekiant sumažinti apvalinimo paklaidas, naudojamos koeficientų lentelės.
Kurdami kodeką, autoriai apskaičiavo muzikos garso failų rinkinio ADPCM koeficientus. Kuo garso signalas arčiau muzikos rinkinio, ant kurio buvo pastatytos lentelės, tuo mažiau aptX sukuria kvantavimo klaidų (triukšmo).

Dėl šios priežasties sintetiniai testai visada duos prastesnių rezultatų nei muzika. Padariau specialų sintetinį pavyzdį, kuriame aptX rodo prastus rezultatus - sinusinė banga, kurios dažnis 12.4 kHz (viršuje - originalus signalas, apačioje - aptX. Garsas FLAC. Sumažinkite garsumą!):

Spektro grafikas:
Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Garsai aiškiai girdimi.

Tačiau jei sugeneruosite mažesnės amplitudės sinusinę bangą, kad ji būtų tylesnė, triukšmas taip pat taps tylesnis, o tai rodo platų dinaminį diapazoną:

Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Norėdami išgirsti skirtumą tarp originalaus ir suspausto muzikos takelio, galite apversti vieną iš signalų ir pridėti takelius kanalu po kanalo. Šis metodas apskritai yra neteisingas ir neduotų sveikų rezultatų naudojant sudėtingesnius kodekus, tačiau konkrečiai ADPCM jis yra gana tinkamas.
Skirtumas tarp originalo ir aptX
Signalų vidutinis kvadratinis skirtumas yra -37.4 dB, o tai nėra daug tokiai suspaustai muzikai.

„aptX HD“

aptX HD nėra atskiras kodekas – tai patobulintas aptX kodeko kodavimo profilis. Pakeitimai paveikė kodavimo dažnių diapazonams skirtų bitų skaičių: 10 bitų 0-5.5 kHz, 6 bitų 5.5-11 kHz, 4 bitus 11-16.5 kHz, 4 bitus 16.5-22 kHz (skaitmenys 44.1 kHz) .

Kodekas
Mėginių ėmimo dažnis
Talpa
Bitų sparta
Kodavimo palaikymas
Dekodavimo palaikymas

„aptX HD“
16, 32, 44.1, 48 kHz
24 bitai
192 / 384 / 529 / 576 kbps (priklausomai nuo atrankos dažnio)
Android 8+*
Kai kurie garso įrenginiai (aparatinė įranga)

* Versijoms iki 7 reikia modifikuoti „Bluetooth“ krūvą. Kodekas palaikomas tik tuo atveju, jei „Android“ įrenginio gamintojas licencijavo kodeką iš „Qualcomm“ (jei OS turi kodavimo bibliotekas).

Rečiau nei aptX: matyt, reikalinga atskira Qualcomm licencija ir atskiri licencijos mokesčiai.

Pakartokime pavyzdį su sinusine banga, kurios dažnis yra 12.4 kHz:
Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Daug geriau nei aptX, bet vis tiek šiek tiek triukšminga.

„aptX“ mažas delsimas

„Qualcomm“ kodekas, neturintis nieko bendro su standartiniais aptX ir aptX HD, sprendžiant iš ribotos informacijos iš žmonių, dalyvaujančių jo kūrime. Sukurtas interaktyviam mažos delsos garso perdavimui (filmams, žaidimams), kai garso delsos negalima reguliuoti programine įranga. Nėra žinomų kodavimo ir dekoderių programinės įrangos diegimo; juos palaiko tik siųstuvai, imtuvai, ausinės ir garsiakalbiai, bet ne išmanieji telefonai ir kompiuteriai.

Mėginių ėmimo dažnis
Bitų sparta
Kodavimo palaikymas
Dekodavimo palaikymas

44.1 кГц
276/420 kbps
Kai kurie siųstuvai (aparatinė įranga)
Kai kurie garso įrenginiai (aparatinė įranga)

AAC

AAC arba Advanced Audio Coding yra sudėtingas skaičiavimo kodekas su rimtu psichoakustiniu modeliu. Plačiai naudojamas garsui internete, antras pagal populiarumą po MP3. Reikalinga licencija ir honorarai: 15000 1000 USD vienkartinis (arba 15 0.98 USD įmonėms, kuriose dirba mažiau nei 500000 darbuotojų) + XNUMX USD už pirmuosius XNUMX XNUMX įrenginių (šaltinis).
Kodekas yra standartizuotas pagal MPEG-2 ir MPEG-4 specifikacijas ir, priešingai įprastai klaidingai nuomonei, jis nepriklauso Apple.

Mėginių ėmimo dažnis
Bitų sparta
Kodavimo palaikymas
Dekodavimo palaikymas

8 - 96 kHz
8–576 kbps (stereo), 256–320 kbps (tipiška „Bluetooth“)
macOS, Android 7+*, iOS
Platus garso įrenginių asortimentas (aparatinė įranga)

* tik įrenginiuose, kurių gamintojai sumokėjo licencijavimo mokesčius

„iOS“ ir „MacOS“ naudoja šiuo metu geriausią „Apple“ AAC koduotuvą, kad užtikrintų aukščiausią įmanomą garso kokybę. „Android“ naudoja antros aukščiausios kokybės „Fraunhofer FDK AAC“ koduotuvą, tačiau gali naudoti įvairią platformoje (SoC) integruotą aparatinę įrangą, kurios kodavimo kokybė nežinoma. Remiantis naujausiais „SoundGuys“ svetainės bandymais, skirtingų Android telefonų AAC kodavimo kokybė labai skiriasi:
Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Daugumos belaidžių garso įrenginių maksimalus AAC bitų perdavimo greitis yra 320 kbps, kai kurie palaiko tik 256 kbps. Kiti bitų dažniai yra labai reti.
AAC užtikrina puikią kokybę esant 320 ir 256 kbps bitų spartai, tačiau jai taikoma jau suspausto turinio nuoseklaus kodavimo praradimas, tačiau sunku išgirsti skirtumus nuo originalo iOS sistemoje, kai bitų sparta yra 256 kbps, net ir naudojant kelias nuoseklias koduotas; naudojant vieną kodavimą, pavyzdžiui, MP3 nuo 320 kbps iki AAC 256 kbps, nuostolių galima nepaisyti.
Kaip ir kitų „Bluetooth“ kodekų atveju, bet kokia muzika pirmiausia iškoduojama, o po to užkoduojama kodeku. Klausantis muzikos AAC formatu, ją pirmiausia iškoduoja OS, o tada vėl užkoduoja į AAC, kad būtų galima perduoti per Bluetooth. Tai būtina norint maišyti kelis garso srautus, pvz., muziką ir pranešimus apie naujus pranešimus. iOS nėra išimtis. Internete galite rasti daug teiginių, kad „iOS“ muzika AAC formatu nėra perkoduojama, kai perduodama per „Bluetooth“, o tai nėra tiesa.

MP1/2/3

MPEG-1/2 Part 3 šeimos kodekus sudaro gerai žinomas ir plačiai naudojamas MP3, rečiau paplitęs MP2 (daugiausia naudojamas skaitmeninėje televizijoje ir radijuje) ir visiškai nežinomas MP1.

Senieji MP1 ir MP2 kodekai visiškai nepalaikomi: neradau nei ausinių, nei Bluetooth kamino, kuris juos užkoduotų ar iškoduotų.
MP3 dekodavimą palaiko kai kurios ausinės, tačiau kodavimas nepalaikomas jokiame šiuolaikiniame operacinės sistemos krūvoje. Atrodo, kad trečiosios šalies BlueSoleil stack for Windows gali užkoduoti į MP3, jei rankiniu būdu pakeičiate konfigūracijos failą, bet man jį įdiegus atsiranda BSoD Windows 10. Išvada – kodekas iš tikrųjų negali būti naudojamas Bluetooth garsui.
Anksčiau, 2006–2008 m., prieš A2DP standarto paplitimą įrenginiuose, žmonės klausydavosi MP3 muzikos per ausines Nokia BH-501 per MSI BluePlayer programą, kuri buvo prieinama Symbian ir Windows Mobile. Tuo metu išmaniųjų telefonų OS architektūra leido pasiekti daugybę žemo lygio funkcijų, o „Windows Mobile“ netgi buvo galima įdiegti trečiųjų šalių „Bluetooth“ krūvas.

Baigėsi paskutinis MP3 kodeko patentas, nuo 23 m. balandžio 2017 d. už kodeko naudojimą nereikia mokėti licencijos mokesčių.

Jei pirmiau minėtose nuorodose paminėtas ilgiausiai galiojantis patentas imamas kaip priemonė, tai MP3 technologija tapo be patentų Jungtinėse Valstijose 16 m. balandžio 2017 d., kai pasibaigė Technicolor turimas ir administruojamas JAV patentas 6,009,399 XNUMX XNUMX.

Šaltinis: www.iis.fraunhofer.de/en/ff/amm/prod/audiocodec/audiocodecs/mp3.html

Mėginių ėmimo dažnis
Bitų sparta
Kodavimo palaikymas
Dekodavimo palaikymas

16 - 48 kHz
8–320 kbps
Niekur nepalaikoma
Kai kurie garso įrenginiai (aparatinė įranga)

LDAC

Naujas ir aktyviai reklamuojamas "Hi-Res" kodekas iš "Sony", palaikantis diskretizavimo dažnį iki 96 kHz ir 24 bitų bitų spartą, o bitų sparta iki 990 kbps. Jis reklamuojamas kaip audiofilinis kodekas, kaip esamų „Bluetooth“ kodekų pakaitalas. Priklausomai nuo radijo transliacijos sąlygų, jis turi prisitaikančio bitų dažnio reguliavimo funkciją.

LDAC koduotuvas (libldac) yra įtrauktas į standartinį Android paketą, todėl kodavimas palaikomas bet kuriame Android išmaniajame telefone, pradedant nuo 8 OS versijos. Nėra laisvai prieinamų programinės įrangos dekoderių, kodeko specifikacija nėra prieinama plačiajai visuomenei, tačiau, iš pirmo žvilgsnio į kodavimo įrenginį, vidinė kodeko struktūra yra panaši į ATRAC9 - „Sony“ kodekas, naudojamas „PlayStation 4“ ir „Vita“: abu veikia dažnių srityje, naudoja modifikuotą diskrečiąją kosinuso transformaciją (MDCT) ir glaudinimą pagal Huffmano algoritmą.

LDAC palaikymą teikia beveik vien Sony ausinės. Galimybė iššifruoti LDAC kartais yra kitų gamintojų ausinėse ir DAC, tačiau labai retai.

Mėginių ėmimo dažnis
Bitų sparta
Kodavimo palaikymas
Dekodavimo palaikymas

44.1 - 96 kHz
303/606/909 kbit/s (44.1 ir 88.2 kHz), 330/660/990 kbit/s (48 ir 96 kHz)
"Android" 8 +
Kai kurios „Sony“ ausinės ir kai kurie kitų gamintojų įrenginiai (aparatinė įranga)

LDAC kaip Hi-Res kodeko rinkodara kenkia jo techninei sudedamajai daliai: kvaila išleisti bitų spartą žmogaus ausiai negirdimų dažnių perdavimui ir bitų gylio didinimui, o CD kokybės (44.1/16) nepraradimui perduoti nepakanka. . Laimei, kodekas turi du darbo režimus: CD garso perdavimo ir Hi-Res garso perdavimo. Pirmuoju atveju oru perduodamas tik 44.1 kHz/16 bitų.

Kadangi programinės įrangos LDAC dekoderis nėra laisvai prieinamas, neįmanoma išbandyti kodeko be papildomų įrenginių, iššifruojančių LDAC. Remiantis DAC su jo palaikymu, kurį SoundGuys.com inžinieriai prijungė per skaitmeninę išvestį ir įrašė išvesties garsą pagal bandomuosius signalus, LDAC bandymo rezultatus, LDAC 660 ir 990 kbps CD kokybės režimu suteikia signalą į Triukšmo santykis šiek tiek geresnis nei aptX HD.

Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius
Šaltinis: www.soundguys.com/ldac-ultimate-bluetooth-guide-20026

LDAC taip pat palaiko dinaminius duomenų perdavimo spartus, esančius už nustatytų profilių ribų – nuo ​​138 kbps iki 990 kbps, bet, kiek suprantu, Android naudoja tik standartizuotus profilius 303/606/909 ir 330/660/990 kbps.

Kiti kodekai

Kiti A2DP kodekai nėra plačiai naudojami. Jų palaikymo beveik visiškai nėra arba jis pasiekiamas tik tam tikruose ausinių ir išmaniųjų telefonų modeliuose.
A2DP standartizuoto ATRAC kodeko niekada nenaudojo kaip „Bluetooth“ kodeko net pačios „Sony“, „Samsung HD“, „Samsung Scalable“ ir „Samsung UHQ-BT“ kodekai turi labai ribotą siuntimo ir priėmimo įrenginių palaikymą, o HWA LHDC yra per naujas ir palaiko tik tris. (?) prietaisai.

Kodeko palaikymas garso įrenginiams

Ne visi gamintojai skelbia tikslią informaciją apie kodekus, kuriuos palaiko tam tikros belaidės ausinės, garsiakalbiai, imtuvai ar siųstuvai. Kartais nutinka taip, kad palaikymas tam tikram kodekui yra skirtas tik perdavimui, bet ne priėmimui (aktualu kombinuotiems siųstuvams-imtuvams), nors gamintojas tiesiog deklaruoja „palaikymą“, be pastabų (manau, kad kai kurių koduotuvų ir dekoderių atskiras licencijavimas dėl to kalti kodekai). Pigiausiuose įrenginiuose deklaruojamo aptX palaikymo galite iš viso nerasti.

Deja, daugumos operacinių sistemų sąsajos nerodo niekur naudojamo kodeko. Informacija apie tai pasiekiama tik „Android“, pradedant nuo 8 versijos, ir „MacOS“. Tačiau net ir šiose OS bus rodomi tik tie kodekai, kuriuos palaiko ir telefonas/kompiuteris, ir ausinės.

Kaip sužinoti, kuriuos kodekus palaiko jūsų įrenginys? Įrašykite ir analizuokite eismo sąvartyną su A2DP derybų parametrais!
Tai galima padaryti „Linux“, „MacOS“ ir „Android“. „Linux“ sistemoje galite naudoti „Wireshark“ arba „hcidump“, „MacOS“ galite naudoti „Bluetooth Explorer“, o „Android“ galite naudoti standartinę „Bluetooth“ HCI iškelties išsaugojimo funkciją, kuri pasiekiama kūrėjo įrankiuose. Gausite išrašymą btsnoop formatu, kurį galėsite įkelti į Wireshark analizatorių.
Обратите внимание: teisingą išmetimą galima gauti tik prijungus telefoną/kompiuterį prie ausinių/garsiakalbių (kad ir kaip juokingai tai skambėtų)! Ausinės gali savarankiškai užmegzti ryšį su telefonu, tokiu atveju jos paprašys kodekų sąrašo iš telefono, o ne atvirkščiai. Norėdami užtikrinti, kad būtų įrašytas teisingas išmetimas, pirmiausia atsiekite įrenginį, o tada suporuokite telefoną su ausinėmis, kol įrašysite iškrovimą.

Norėdami išfiltruoti nesusijusį srautą, naudokite šį rodymo filtrą:

btavdtp.signal_id

Dėl to turėtumėte pamatyti kažką panašaus į šį:
Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

На каждом пункте команды GetCapabilities можно нажать, и посмотреть подробные характеристики кодека.
Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Wireshark nežino visų kodekų identifikatorių, todėl kai kuriuos kodekus reikės iššifruoti rankiniu būdu, žiūrint į toliau pateiktą identifikatorių lentelę:

Mandatory:
0x00 - SBC

Optional:
0x01 - MPEG-1,2 (aka MP3)
0x02 - MPEG-2,4 (aka AAC)
0x04 - ATRAC

Vendor specific:
0xFF 0x004F 0x01   - aptX
0xFF 0x00D7 0x24   - aptX HD
0xFF 0x000A 0x02   - aptX Low Latency
0xFF 0x00D7 0x02   - aptX Low Latency
0xFF 0x000A 0x01   - FastStream
0xFF 0x012D 0xAA   - LDAC
0xFF 0x0075 0x0102 - Samsung HD
0xFF 0x0075 0x0103 - Samsung Scalable Codec
0xFF 0x053A 0x484C - Savitech LHDC

0xFF 0x000A 0x0104 - The CSR True Wireless Stereo v3 Codec ID for AAC
0xFF 0x000A 0x0105 - The CSR True Wireless Stereo v3 Codec ID for MP3
0xFF 0x000A 0x0106 - The CSR True Wireless Stereo v3 Codec ID for aptX

Kad neanalizuotų sąvartynų rankiniu būdu, sukūriau paslaugą, kuri viską analizuos automatiškai: btcodecs.valdikss.org.ru

Kodekų palyginimas. Kuris kodekas geresnis?

Kiekvienas kodekas turi savo privalumų ir trūkumų.
„aptX“ ir „aptX HD“ naudoja sunkiai užkoduotus profilius, kurių negalima pakeisti nepakeitus koduotuvo ir dekoderio. Nei telefono, nei ausinių gamintojas negali keisti bitų spartos ar aptX kodavimo faktorių. Kodeko savininkas „Qualcomm“ pateikia nuorodos koduotuvą bibliotekos pavidalu. Šie faktai yra aptX stiprybė – jūs iš anksto žinote, kokios kokybės garsą gausite, be jokių „bet“.

SBC, priešingai, turi daug konfigūruojamų parametrų, dinaminį bitų spartą (koderis gali sumažinti bitpool parametrą, jei radijo bangos yra užimtos) ir neturi užkoduotų profilių, tik rekomenduojamus „vidutinės kokybės“ ir „aukštos kokybės“. įtraukta į A2DP specifikaciją 2003 m. „Aukšta kokybė“ nebėra tokia aukšta pagal šiandienos standartus, o dauguma „Bluetooth“ dėklų neleidžia naudoti geresnių parametrų nei „aukštos kokybės“ profilis, nors tam nėra jokių techninių apribojimų.
Bluetooth SIG не имеет референсного энкодера SBC в виде библиотеки, и производители реализуют его самостоятельно.
Tai yra silpnosios SBC pusės – niekada iš anksto neaišku, kokios garso kokybės galima tikėtis iš konkretaus įrenginio. SBC gali gaminti tiek žemos, tiek labai aukštos kokybės garsą, tačiau pastarasis nepasiekiamas neišjungus arba neapeinant dirbtinių „Bluetooth“ kaminų apribojimų.

Situacija su AAC yra dviprasmiška: viena vertus, teoriškai kodekas turėtų sukurti kokybę, nesiskiriančią nuo originalo, tačiau praktiškai, sprendžiant iš „SoundGuys“ laboratorijos testų skirtinguose „Android“ įrenginiuose, tai nepatvirtina. Labiausiai tikėtina, kad kaltė yra žemos kokybės aparatinės įrangos garso kodavimo įrenginiai, įmontuoti į įvairius telefonų mikroschemų rinkinius. Tikslinga AAC naudoti tik „Apple“ įrenginiuose, o „Android“ – aptX ir LDAC.

Aparatinė įranga, palaikanti alternatyvius kodekus, paprastai būna aukštesnės kokybės, nes už labai pigius, žemos kokybės įrenginius nėra prasmės mokėti licencijos mokesčių už šių kodekų naudojimą. Mano bandymuose SBC skamba labai gerai naudojant kokybišką įrangą.

Sukūriau žiniatinklio paslaugą, kuri koduoja garsą į SBC, aptX ir aptX HD realiuoju laiku, tiesiai naršyklėje. Su juo galite išbandyti šiuos garso kodekus neperduodami garso per „Bluetooth“, naudodami bet kokias laidines ausines, garsiakalbius ir mėgstamą muziką, taip pat tiesiogiai keisti kodavimo parametrus leisdami garsą:
btcodecs.valdikss.org.ru/sbc-encoder
Paslauga naudoja SBC kodavimo bibliotekas iš BlueZ projekto ir libopenaptx iš ffmpeg, kurios yra sukompiliuotos į WebAssembly ir JavaScript iš C per emscripten, kad veiktų naršyklėje. Kas galėjo svajoti apie tokią ateitį!

Štai kaip tai atrodo:

Atkreipkite dėmesį, kaip skirtingų kodekų triukšmo lygis keičiasi po 20 kHz. Originaliame MP3 faile nėra dažnių, viršijančių 20 kHz.

Pabandykite perjungti kodekus ir pažiūrėkite, ar girdite skirtumą tarp originalaus SBC 53 Joint Stereo (standartinis ir labiausiai paplitęs profilis) ir aptX / aptX HD.

Aš girdžiu skirtumą tarp kodekų ausinėse!

Žmonės, kurie negirdi skirtumo tarp kodekų testuodami per žiniatinklio paslaugą, teigia, kad tai girdi klausydami muzikos per belaides ausines. Deja, tai ne pokštas ar placebo efektas: skirtumas tikrai girdimas, bet jį lemia ne skirtumai kodekai.

Didžioji dauguma „Bluetooth“ garso mikroschemų rinkinių, naudojamų belaidžiuose priėmimo įrenginiuose, turi skaitmeninį signalo procesorių (DSP), kuris įdiegia ekvalaizerį, kompanderį, stereofoninį plėtiklį ir kitus dalykus, skirtus pagerinti (arba pakeisti) garsą. „Bluetooth“ įrangos gamintojai gali konfigūruoti DSP kiekvienam kodekui atskirai, o perjungdamas kodekus klausytojas manys, kad girdi kodekų veikimo skirtumą, o iš tikrųjų klausosi skirtingų DSP nustatymų.

Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius
DSP Kalimba garso apdorojimo vamzdynas lustais, pagamintas CSR/Qualcomm

Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius
Suaktyvinkite skirtingas DSP funkcijas kiekvienam kodekui ir išėjimui atskirai

Kai kuriuose aukščiausios kokybės įrenginiuose yra programinė įranga, leidžianti tinkinti DSP nustatymus, tačiau dauguma pigesnių ausinių to nedaro, o naudotojai negali rankiniu būdu išjungti papildomo garso apdorojimo.

Įrenginių funkcinės savybės

Šiuolaikinė A2DP standarto versija turi „absoliutaus garsumo valdymo“ funkcija — įrenginio garsumo valdymas naudojant specialias AVRCP protokolo komandas, kurios reguliuoja išvesties pakopos stiprinimą, o ne programiškai mažina garso srauto garsumą. Jei pakeitus ausinių garsumą, pakeitimas nesinchronizuojamas su telefono garsumu, vadinasi, jūsų ausinės arba telefonas šios funkcijos nepalaiko. Tokiu atveju prasminga visada klausytis muzikos maksimaliu garsu telefone, tikrąjį garsumą reguliuojant ausinių mygtukais – tokiu atveju bus geresnis signalo ir triukšmo santykis bei garso kokybė turėtų būti didesnis.
Realybėje būna liūdnų situacijų. Mano „RealForce OverDrive D1“ ausinėse, skirtose SBC, įjungtas stiprus kompanderis, o padidinus garsumą, padidėja tylių garsų lygis, o garsių garsų garsumas nesikeičia (signalas suspaustas). Dėl šios priežasties kompiuteryje turite nustatyti maždaug pusę garsumo, tokiu atveju suspaudimo efekto praktiškai nėra.
Mano pastebėjimais, visos ausinės su papildomais kodekais palaiko absoliutaus garso reguliavimo funkciją, matyt, tai vienas iš kodeko sertifikavimo reikalavimų.

Kai kurios ausinės palaiko sujungti du įrenginius vienu metu. Tai leidžia, pavyzdžiui, klausytis muzikos iš kompiuterio ir priimti skambučius iš telefono. Tačiau turėtumėte žinoti, kad šiuo režimu alternatyvūs kodekai yra išjungti ir naudojamas tik SBC.

AVDTP 1.3 Delay Reporting funkcija leidžia ausinėms pranešti apie delsą siųstuvui, kuriame iš tikrųjų grojamas garsas. Tai leidžia reguliuoti garso sinchronizavimą su vaizdo įrašu peržiūrint vaizdo failus: jei kyla problemų dėl radijo perdavimo, garsas neatsiliks nuo vaizdo, o priešingai, vaizdo grotuvas sulėtins vaizdo įrašą, kol garso ir vaizdo įrašai vėl sinchronizuojami.
Šią funkciją palaiko daugelis ausinių, Android 9+ ir Linux su PulseAudio 12.0+. Nežinau apie šios funkcijos palaikymą kitose platformose.

Dvikryptis ryšys per Bluetooth. Balso perdavimas.

Balso perdavimui naudojant „Bluetooth“ naudojamas sinchroninis ryšys (SCO) - sinchroninis perdavimas iš anksto suderinus ryšį. Režimas leidžia perduoti garsą ir balsą griežtai tvarkingai, simetriškais siuntimo ir priėmimo greičiais, nelaukiant siuntimo patvirtinimo ir pakartotinio paketų siuntimo. Tai sumažina bendrą garso perdavimo radijo kanalu delsą, tačiau nustato rimtus apribojimus perduodamų duomenų kiekiui per laiko vienetą ir neigiamai veikia kokybę.
Kai naudojamas šis režimas, tiek balsas, tiek garsas perduodamas ta pačia kokybe.
К сожалению, по состоянию на 2019 год, качество передачи речи через Bluetooth всё ещё низкое, и непонятно, почему Bluetooth SIG с этим ничего не делает.

CVSD

Pagrindinis CVSD kalbos kodekas buvo standartizuotas 2002 m. ir jį palaiko visi dvikrypčiai Bluetooth ryšio įrenginiai. Jis užtikrina garso perdavimą 8 kHz atrankos dažniu, kuris atitinka įprastos laidinės telefonijos kokybę.

Įrašymo šiame kodeke pavyzdys.

mSBC

Papildomas mSBC kodekas buvo standartizuotas 2009 m., o 2010 m. jau pasirodė lustai, naudojantys jį balso perdavimui. mSBC plačiai palaiko įvairūs įrenginiai.
Tai nėra nepriklausomas kodekas, o įprastas SBC iš A2DP standarto su fiksuotu kodavimo profiliu: 16 kHz, mono, bitpool 26.

Įrašymo šiame kodeke pavyzdys.

Ne puikus, bet daug geresnis nei CVSD, tačiau vis tiek erzina jį naudoti bendraujant internetu, ypač kai naudojate ausines žaidime bendrauti – žaidimo garsas taip pat bus perduodamas 16 kHz diskretizavimo dažniu.

„FastStreamCSR“ įmonė nusprendė išplėtoti idėją pakartotinai naudoti SBC. Norėdami apeiti SCO protokolo apribojimus ir naudoti didesnį bitų spartą, CSR nuėjo kitu keliu – į A2DP vienpusio garso perdavimo standartą įdiegė dvipusio SBC garso palaikymą, standartizuotus kodavimo profilius ir pavadino jį „FastStream“.

„FastStream“ į garsiakalbius perduoda stereo garsą 44.1 arba 48 kHz 212 kbps bitų dažniu, o garsui iš mikrofono perduoti naudojamas 16 kHz mono dažnis, kurio bitų sparta yra 72 kbps (šiek tiek geriau nei mSBC). Tokie parametrai daug geriau tinka bendravimui internetiniuose žaidimuose – žaidimo ir pašnekovų garsas bus kokybiškas.

Įrašymo šiame kodeke pavyzdys (+ garsas iš mikrofono, toks pat kaip mSBC).

Kompanija sugalvojo įdomų ramentą, tačiau dėl to, kad jis prieštarauja A2DP standartui, jį palaiko tik kai kurie kompanijos siųstuvai (kurie veikia kaip USB garso plokštė, o ne Bluetooth įrenginys), bet ne gauti palaikymą Bluetooth stekuose.nors ausinių su FastStream palaikymu skaičius nėra toks jau mažas.

Šiuo metu „FastStream“ palaiko tik OS kaip Linux PulseAudio pataisa iš kūrėjo Pali Roháro, kuris nėra įtrauktas į pagrindinę programos šaką.

„aptX“ mažas delsimas

К большому удивлению, aptX Low Latency тоже поддерживает двунаправленное аудио, реализуя такой же принцип, как у FastStream.
Šia kodeko funkcija niekur naudotis neįmanoma – Low Latency dekodavimo palaikymo nėra nei vienoje OS, nei jokioje man žinomoje Bluetooth stake.

Bluetooth 5, klasikinis ir mažai energijos suvartojantis

Dėl „Bluetooth“ specifikacijų ir versijų kilo daug painiavos dėl dviejų nesuderinamų to paties prekės ženklo standartų, kurie abu plačiai naudojami skirtingiems tikslams.

Yra du skirtingi, nesuderinami Bluetooth protokolai: Bluetooth Classic ir Bluetooth Low Energy (LE, taip pat žinomas kaip Bluetooth Smart). Taip pat yra trečiasis protokolas „Bluetooth High Speed“, tačiau jis nėra plačiai paplitęs ir nenaudojamas buitiniuose įrenginiuose.

Pradedant nuo „Bluetooth 4.0“, specifikacijų pakeitimai daugiausia buvo susiję su „Bluetooth Low Energy“, o klasikinė versija gavo tik nedidelius patobulinimus.

„Bluetooth 4.2“ ir „Bluetooth 5“ pakeitimų sąrašas:

9 PAKEITIMAI IŠ 4.2 Į 5.0

9.1 NAUJOS FUNKCIJOS

Several new features are introduced in the Bluetooth Core Specification 5.0 Release. The major areas of improvement are:
• Slot Availability Mask (SAM)
• 2 Msym/s PHY LE
•LE Long Range
• Didelės apkrovos ciklo neprijungiama reklama
• LE reklamos plėtiniai
• LE kanalo pasirinkimo algoritmas Nr. 2
9.1.1 CSA5 pridėtos funkcijos – integruotos į 5.0 versiją
• Didesnė išėjimo galia

Šaltinis: www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=421043 (291 psl.)

Tik vienas pakeitimas paveikė „Classic“ versiją pagal „Bluetooth 5“ specifikaciją: jie papildė „Slot Availability Mask“ (SAM) technologiją, skirtą pagerinti radijo transliacijų atskyrimą. Visi kiti pakeitimai turi įtakos tik „Bluetooth LE“ (ir didesnei išvesties galiai).

visi Garso įrenginiai naudoja tik „Bluetooth Classic“. Neįmanoma prijungti ausinių ir garsiakalbių per Bluetooth Low Energy: nėra garso perdavimo naudojant LE standarto. A2DP standartas, naudojamas aukštos kokybės garsui perduoti, veikia tik per Bluetooth Classic, o LE analogo nėra.

Išvada – įsigyti garso įrenginius su Bluetooth 5 tik dėl naujos protokolo versijos yra beprasmiška. Bluetooth 4.0/4.1/4.2 garso perdavimo kontekste veiks lygiai taip pat.
Jei pranešime apie naujas ausines minimas dvigubai padidintas veikimo diapazonas ir sumažintas energijos suvartojimas dėl Bluetooth 5, tuomet turėtumėte žinoti, kad jos arba pačios to nesupranta, arba jus klaidina. Nieko keisto, nes net „Bluetooth“ lustų gamintojai savo pranešimuose glumina naujosios standarto versijos skirtumus, o kai kurie „Bluetooth 5“ lustai palaiko tik LE skirtą penktąją versiją, o „Classic“ naudoja 4.2.

Garso perdavimo delsa

Garso uždelsimo (vėlavimo) dydis priklauso nuo daugelio veiksnių: buferio dydžio garso dėkle, „Bluetooth“ krūvoje ir pačiame belaidžio atkūrimo įrenginyje bei kodeko algoritminės delsos.

Paprastų kodekų, tokių kaip SBC, aptX ir aptX HD, delsa yra labai maža, 3–6 ms, to galima nepaisyti, tačiau sudėtingi kodekai, tokie kaip AAC ir LDAC, gali sukelti pastebimą vėlavimą. 44.1 kHz AAC algoritminis delsa yra 60 ms. LDAC – apie 30 ms (remiantis grubia šaltinio kodo analize. Galiu klysti, bet nedaug.)

Gautas delsos laikas labai priklauso nuo atkūrimo įrenginio, jo lustų rinkinio ir buferio. Bandymų metu gavau 150–250 ms sklaidą skirtinguose įrenginiuose (su SBC kodeku). Jei darysime prielaidą, kad įrenginiai, palaikantys papildomus kodekus aptX, AAC ir LDAC, naudoja aukštos kokybės komponentus ir mažą buferio dydį, gausime šiuos tipinius delsos laikus:

SBC: 150-250 ms
aptX: 130–180 ms
AAC: 190–240 ms
LDAC: 160–210 ms

Priminsiu: aptX Low Latency nepalaikomas operacinėse sistemose, todėl mažesnį delsą galima pasiekti tik naudojant siųstuvo+imtuvo arba siųstuvo+ausinių/garsiakalbio derinį, o šį kodeką turi palaikyti visi įrenginiai.

„Bluetooth“ įrenginio, sertifikavimo ir logotipo problemos

Kaip atskirti kokybišką garso įrenginį nuo pigaus amato? Išvaizda, visų pirma!

Pigioms kiniškoms ausinėms, garsiakalbiams ir imtuvams:

  1. Отсутствует слово «Bluetooth» на коробке и устройстве, чаще всего используется «Wireless» и «BT»
  2. Trūksta Bluetooth logotipo Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius ant dėžutės ar įrenginio
  3. Nėra mėlynai mirksinčio LED

Šių elementų nebuvimas rodo, kad įrenginys nėra sertifikuotas, o tai reiškia, kad jis gali būti nekokybiškas ir problemiškas. Pavyzdžiui, „Bluedio“ ausinės nėra sertifikuotos „Bluetooth“ ir nevisiškai atitinka A2DP specifikaciją. Jie nebūtų išlaikę sertifikavimo.

Panagrinėkime kelis įrenginius ir dėžes iš jų:
Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Garsas per „Bluetooth“: maksimali informacija apie profilius, kodekus ir įrenginius

Tai visi nesertifikuoti įrenginiai. Instrukcijoje gali būti logotipas ir Bluetooth technologijos pavadinimas, tačiau svarbiausia, kad jie būtų ant dėžutės ir (arba) paties įrenginio.

Если ваши наушники или колонка говорят «Ze bluetooth dewise is connecteda successfulle», это тоже не говорит об их качестве:

išvada

Ar „Bluetooth“ gali visiškai pakeisti laidines ausines ir ausines? Jis yra pajėgus, tačiau dėl prastos skambučių kokybės, padidinto garso delsos, kuri gali erzinti žaidimuose, ir daugybės patentuotų kodekų, kuriems reikia mokėti už licenciją ir kurie padidina galutinę išmaniųjų telefonų ir ausinių kainą.

Alternatyvių kodekų rinkodara yra labai stipri: aptX ir LDAC pristatomi kaip ilgai lauktas „pasenusio ir blogo“ SBC pakaitalas, kuris nėra beveik toks blogas, kaip žmonės galvoja.

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

Daugiau informacijos galima rasti svetainėse „SoundGuys“ и SoundExpert.

Premija: SBC nuorodų kodavimo įrenginys, A2DP bitų srauto informacija ir bandymo failai. Šis failas anksčiau buvo viešai paskelbtas „Bluetooth“ svetainėje, tačiau dabar jis pasiekiamas tik „Bluetooth SIG“ nariams.

Šaltinis: www.habr.com

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