Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Din cauza lansării în masă a smartphone-urilor fără mufa audio de 3,5 mm, căștile Bluetooth fără fir au devenit pentru mulți principalul mijloc de ascultare a muzicii și de comunicare în modul hands-free.
Producătorii de dispozitive wireless nu scriu întotdeauna caracteristici detaliate ale produsului, iar articolele despre audio Bluetooth de pe internet sunt adesea contradictorii, uneori incorecte, neexplicând toate detaliile și adesea copiază aceeași informație care nu corespunde realității.
Să încercăm să înțelegem protocolul, capabilitățile stivelor Bluetooth ale sistemelor de operare, ale căștilor și difuzoarelor, codec-urile Bluetooth pentru muzică și vorbire, să aflăm ce influențează calitatea sunetului transmis și întârzierea, să învățăm să colectăm și să decodificăm informații despre codec-urile și alte capacități ale dispozitivelor.

TL;DR:

  • SBC — un codec decent
  • Căștile au propriul egalizator și post-procesare pentru fiecare codec în parte
  • aptX nu este atât de bun pe cât susțin anunțurile publicitare
  • LDAC — o capcană de marketing
  • Calitatea sunetului în modul de conversație rămâne scăzută
  • În browser, pot fi încorporate encode-uri audio în C, compilându-le în WebAssembly prin emscripten, și nu vor încetini semnificativ.

Muzica prin Bluetooth

Dimensiunea funcțională a Bluetooth este definită de profile — specificații ale funcțiilor concrete. Transmiterea muzicii prin Bluetooth se realizează folosind profilul de transfer audio de înaltă calitate A2DP. Standardul A2DP a fost adoptat în 2003 și nu s-a schimbat semnificativ de atunci.
În cadrul profilului este standardizat 1 codec obligatoriu de complexitate computațională scăzută, SBC, creat special pentru Bluetooth, și 3 suplimentare. De asemenea, sunt permise utilizarea codec-urilor nedocumentate cu implementare proprie.

La data de 30 iunie 2019 ne aflăm în comic-urile xkcd cu 14 codec-uri A2DP:

  • SBC ← standardizat în A2DP, suportat de toate dispozitivele
  • MPEG-1/2 Layer 1/2/3 ← standardizate în A2DP: bine cunoscutul MP3, utilizat în TV digital MP2, și necunoscutul MP1
  • MPEG-2/4 AAC ← standardizat în A2DP
  • ATRAC ← un codec vechi de la Sony, standardizat în A2DP
  • LDAC ← un codec nou de la Sony
  • aptX ← un codec din 1988
  • aptX HD ← același lucru ca aptX, doar cu alte parametrii de codare
  • aptX Low Latency ← un codec complet diferit, fără o implementare software
  • aptX Adaptive ← încă un codec de la Qualcomm
  • FastStream ← un pseudocodec, modificare bidirecțională a SBC
  • HWA LHDC ← noul codec de la Huawei
  • Samsung HD ← susținut de 2 dispozitive
  • Samsung Scalable ← susținut de 2 dispozitive
  • Samsung UHQ-BT ← susținut de 3 dispozitive

De ce sunt necesare codec-urile, vă veți întreba, când Bluetooth are EDR, care permite transmiterea datelor cu viteze de 2 și 3 Mbit/s, iar pentru PCM nestructurat pe două canale de 16 biți este suficient 1.4 Mbit/s?

Transmiterea datelor prin Bluetooth

În Bluetooth există două tipuri de transmitere a datelor: Asynchronous Connection Less (ACL) pentru transmiterea asincronă fără a stabili o conexiune și Synchronous Connection Oriented (SCO) pentru transmiterea sincronă cu negocierea prealabilă a conexiunii.
Transmiterea se realizează folosind un sistem de împărțire a timpului și alegerea canalului de transmisie pentru fiecare pachet în parte (Frequency-Hop/Time-Division-Duplex, FH/TDD), pentru care timpul este împărțit în intervale de 625 microsecunde, numite sloturi. Unul dintre dispozitive conduce transmiterea în numerele pare de sloturi, celălalt în cele impare. Pachetul transmis poate ocupa 1, 3 sau 5 sloturi, în funcție de dimensiunea datelor și de tipul de transmitere stabilit, în acest caz, transmiterea de către un singur dispozitiv se desfășoară în sloturile pare și impare până la finalizarea transmisiei. În total, într-o secundă pot fi primite și trimise până la 1600 de pachete, dacă fiecare dintre ele ocupă 1 slot, iar ambele dispozitive transmit și primesc fără oprire.

2 și 3 Mbit/s pentru EDR, care pot fi întâlnite în anunțuri și pe site-ul Bluetooth, reprezintă viteza maximă de canal pentru transmiterea tuturor datelor în total (inclusiv titlurile tehnice ale tuturor protocolor, în care trebuie să fie încapsulate datele), în ambele direcții simultan. Viteza reală de transmitere a datelor va varia semnificativ.

Pentru transmiterea muzicii se folosește metoda asincronă, aproape întotdeauna cu pachete de tip 2-DH5 și 3-DH5, care poartă cea mai mare cantitate de date în modul EDR de 2 Mbit/s și 3 Mbit/s, respectiv, și ocupă 5 sloturi de împărțire a timpului de transmisie.

Reprezentarea schematică a transmisiei utilizând 5 sloturi de un dispozitiv și 1 slot de celălalt (DH5/DH1):
Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Din cauza principiului de separare a canalului pe timp, suntem nevoiți să așteptăm un interval de 625 de microsecunde după transmiterea pachetului, dacă al doilea dispozitiv nu ne transmite nimic sau transmite un pachet mic, și mai mult timp, dacă al doilea dispozitiv transmite pachete mari. Dacă la telefon sunt conectate mai multe dispozitive (de exemplu, căști, ceasuri și brățări de fitness), timpul de transmisie se împarte între toate acestea.

Necesitatea de a încapsula audio în protocoale de transport speciale L2CAP și AVDTP ia 16 octeți din cantitatea maximă posibilă de sarcină utilă audio transmisă.

Tipul de pachet
Numărul de sloturi
Max. numărul de octeți în pachet
Max. numărul de octeți pentru sarcina utilă A2DP
Max. bitrate pentru sarcina utilă A2DP

2-DH3
3
367
351
936 kbit/s

3-DH3
3
552
536
1429 kbit/s

2-DH5
5
679
663
1414 kbit/s

3-DH5
5
1021
1005
2143 kbit/s

1414 și 1429 kbit/s sunt cu adevărat insuficiente pentru a transmite sunet necomprimat în condiții reale, cu un interval de zgomot de 2.4 GHz și necesitatea de a transmite date de control. EDR 3 mbit/s este dur cu puterea de transmisie și zgomotul din canal, așa că, chiar și în modul 3-DH5, transmiterea confortabilă a PCM este imposibilă, vor exista întreruperi temporare constante, iar totul va funcționa doar pe o distanță de câțiva metri.
În practică, chiar și un flux audio de 990 kbit/s (LDAC 990 kbit/s) se transmite cu dificultate.

Să ne întoarcem la codecuri.

SBC

Codecul, obligatoriu pentru toate dispozitivele care suportă standardul A2DP. Cel mai bun și cel mai rău codec în același timp.

Frecvența de eșantionare
Lățimea de bandă
Bitrate
Suport pentru codificare
Suport pentru decodare

16, 32, 44.1, 48 kHz
16 biți
10-1500 kbit/s
De toate dispozitivele
De toate dispozitivele

SBC este un codec simplu și rapid din punct de vedere computațional, cu un model psihacoacustic primitiv (folosind doar mascare pentru sunetele slabe), care utilizează modularea adaptivă a impulsului codificat (APCM).
Specificația A2DP recomandă utilizarea a două profile: Calitate Medie și Calitate Înaltă.
Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Codecul are multe setări care permit gestionarea întârzierii algoritmice, numărul de eșantioane în bloc, algoritmul de distribuție a bitilor, dar aproape peste tot se folosesc aceleași parametrii recomandate în specificație: Stereo Comun, 8 benzi de frecvență, 16 blocuri în cadrul audio, metoda de distribuție a bitilor Loudness.
SBC suportă modificarea dinamică a parametrului Bitpool, care afectează direct bitrate-ul. Dacă transmisia radio este aglomerată, pachetele se pierd sau dispozitivele sunt la o distanță mare, sursa audio poate reduce Bitpool-ul până când conexiunea se normalizează.

Producătorii celei mai mari părți a căștilor stabilesc valoarea maximă a parametrului Bitpool la 53, limitând astfel bitrate-ul la 328 kbps când se utilizează profilul recomandat.
Chiar dacă producătorul căștilor a stabilit o valoare maximă a Bitpool-ului mai mare de 53 (modele precum: Beats Solo³, JBL Everest Elite 750NC, Apple AirPods, de asemenea, pot fi întâlnite pe unele receptoare și unități de săli de automobile), majoritatea sistemelor de operare nu vor permite utilizarea unor bitrate-uri mai mari din cauza limitării interne a valorilor din stivele Bluetooth.
În plus, unii producători stabilesc o valoare maximă scăzută a Bitpool-ului pentru anumite dispozitive. De exemplu, Bluedio T are o valoare de 39, iar Samsung Gear IconX — 37, ceea ce duce la o calitate slabă a sunetului.

Restricțiile artificiale impuse de dezvoltatorii stivelor Bluetooth au apărut, cel mai probabil, din cauza incompatibilității unor dispozitive cu valori mari ale Bitpool-ului sau cu profile atipice, chiar dacă au raportat că le suportă, și din cauza numărului insuficient de teste în timpul certificării. Autorii stivelor Bluetooth au preferat să se limiteze la conformancea cu profilul recomandat, în loc să creeze baze de date cu dispozitive necorespunzătoare (deși acum fac acest lucru pentru alte funcții necorespunzătoare).

SBC alocă dinamic biți de cuantizare pentru benzile de frecvență, acționând de la cele inferioare la cele superioare, cu coeficienți de greutate diferiți. Dacă întreaga lățime de bandă a fost utilizată pentru frecvențele inferioare și medii, frecvențele superioare vor fi "tăiate" (în locul lor va fi liniște).

Exemplu SBC 328 kbps. Sus este originalul, iar jos este SBC, switch-urile între piste având loc periodic. Pentru audio în fișierul video este utilizat codec-ul de compresie fără pierderi FLAC. Utilizarea FLAC într-un container mp4 nu este standardizată oficial, deci nu este garantat că browserul tău îl va reda, dar ar trebui să funcționeze în cele mai recente versiuni ale browserelor desktop Chrome și Firefox. Dacă nu ai sunet, poți descărca fișierul și deschide-l într-un player video complet.
ZZ Top — Sharp Dressed Man

Pe spectrogramă se vede momentul de comutare: SBC taie periodic sunetele liniștite deasupra a 17,5 kHz și nu alocă deloc biți pentru banda de peste 20 kHz. Spectrograma completă este disponibilă la clic (1,7 MB).
Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Nu aud nicio diferență între original și SBC pe acest track.

Să luăm ceva mai nou și să modelăm audio care ar rezulta folosind căștile Samsung Gear IconX cu Bitpool 37 (sus — semnalul de bază, jos — SBC 239 kbps, sunet în FLAC).
Mindless Self Indulgence — Witness

Aud un zgomot de fond, un efect stereo mai redus și un „ciocănit” neplăcut al vocii în frecvențele înalte.

Deși SBC este un codec foarte flexibil, poate fi configurat pentru latențe reduse, oferind o calitate excelentă a audio la bit rate-uri ridicate (452+ kbps) și destul de bun pentru majoritatea oamenilor la calitate înaltă standard (328 kbps), deoarece standardul A2DP nu definește profile fixe (ci doar oferă recomandări), dezvoltatorii stivelor au impus limitări artificiale asupra Bitpool-ului, parametrii audio transmiși nu sunt vizibili în interfața utilizatorului, iar producătorii de căști au libertatea de a-și stabili propriile setări și niciodată nu indică valoarea Bitpool în specificațiile tehnice ale produsului, codec-ul a câștigat faimă pentru calitatea slabă a sunetului, deși aceasta nu este o problemă a codec-ului în sine.
Parametrul Bitpool afectează direct bit rate-ul doar în cadrul aceluiași profil. Aceeași valoare Bitpool 53 poate oferi atât un bit rate de 328 kbps pentru profilul recomandat de calitate înaltă, cât și 1212 kbps cu Dual Channel și 4 benzi de frecvență, motiv pentru care autorii sistemului de operare, pe lângă limitările de Bitpool, impun și o limitare pe Bitrate. Așa cum văd eu, această situație a apărut din cauza unei deficiențe a standardului A2DP: trebuia să se alinieze bit rate-ul, nu Bitpool-ul.

Tabel de suport al capacităților SBC în diferite OS:

sistemul de operare
Frecvențele de eșantionare acceptate
Limitarea max. Bitpool
Limitarea max. Bitrate
Bitrate tipic
Ajustarea dinamică a Bitpool-ului

Windows 10
44.1 kHz
53
512 kbps
328 kbps
✓*

Linux (BlueZ + PulseAudio)
16, 32, 44.1, 48 kHz
64 (la conexiunea în intrare), 53 (la conexiunea în ieșire)
Fără limitare
328 kbps
✓*

macOS High Sierra
44.1 kHz
64, în mod implicit 53***
Necunoscut
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 kHz
53
Fără limitare
328 kbps
✗

* Bitpool scade doar, dar nu crește automat în cazul în care condițiile de transmisie se îmbunătățesc. Pentru a restabili Bitpool, trebuie să opriți redarea, să așteptați câteva secunde și să reluați audio.
** Valoarea implicită depinde de setările stivei specificate la compilarea firmware-ului. În Android 8/8.1, frecvența este fie 44.1 kHz, fie 48 kHz, în funcție de setările de compilare; în celelalte versiuni, sunt acceptate simultan 44.1 kHz și 48 kHz.
*** Valoarea Bitpool poate fi crescută în programul Bluetooth Explorer.

aptX și aptX HD

aptX este un codec simplu și rapid din punct de vedere computațional, fără psihocustică, care utilizează modularea impulsivă diferențială adaptivă (ADPCM). A apărut în jurul anului 1988 (data depunerii brevetului este datată februarie 1988), fiind utilizat înainte de Bluetooth în principal în echipamente profesionale audio wireless. În prezent, aparține companiei Qualcomm, necesitând licențiere și redevențe. În 2014, costurile erau: 6000$ o dată și ≈1$ pentru fiecare dispozitiv, pentru loturi de până la 10000 de dispozitive (sursa, pg. 16).
aptX și aptX HD sunt același codec, cu diferite profile de codare.

Codecul are un singur parametru — selecția frecvenței de eșantionare. Există, de asemenea, opțiunea de a alege numărul/modul canalelor, dar în toate dispozitivele cunoscute de mine (peste 70) este suportat exclusiv Stereo.

Codec
Frecvența de eșantionare
Lățimea de bandă
Bitrate
Suport pentru codificare
Suport pentru decodare

aptX
16, 32, 44.1, 48 kHz
16 biți
128 / 256 / 352 / 384 kbps (în funcție de frecvența de eșantionare)
Windows 10 (desktop și mobil), macOS, Android 4.4+/7*, Blackberry OS 10
Un număr mare de dispozitive audio (hardware)

* Versiuni anterioare de 7 necesită modificări ale stivei Bluetooth. Codec-ul este suportat doar dacă producătorul dispozitivului Android a licențiat utilizarea codec-ului de la Qualcomm (dacă în OS există biblioteci de codificare).

aptX împarte audio în 4 benzi de frecvență și le cuantizează cu același număr de biți constant: 8 biți pentru 0-5.5 kHz, 4 biți pentru 5.5-11 kHz, 2 biți pentru 11-16.5 kHz, 2 biți pentru 16.5-22 kHz (numerele pentru frecvența de eșantionare de 44.1 kHz).

Exemplu de audio aptX (sus — semnalul original, jos — aptX, spectrogramele doar ale canalelor stângi, sunet în FLAC):

Frecvențele superioare au devenit puțin mai roșii, dar diferența nu este perceptibilă.

Datorită distribuției fixe a bitilor de cuantizare, codec-ul nu poate "transfera biti" la frecvențele care au cea mai mare nevoie de ei. Spre deosebire de SBC, aptX nu va "tăia" frecvențele, ci va adăuga zgomot de cuantizare, reducând astfel intervalul dinamic al audio.

Nu ar trebui să se considere că utilizarea, de exemplu, a 2 biți pentru bandă reduce intervalul dinamic la 12 dB: ADPCM permite utilizarea până la 96 dB din intervalul dinamic chiar și cu 2 biți de cuantizare, dar doar în cazul unui semnal specific.
ADPCM stochează diferența valorilor numerice între eșantionul curent și cel următor, în loc să înregistreze valoarea absolută, așa cum face PCM. Acest lucru permite reducerea cerințelor de biți necesare pentru stocarea aceleași informații (fără pierderi) sau practic aceleași (cu o eroare de rotunjire relativ mică). Tabelele de coeficienți sunt utilizate pentru a reduce erorile de rotunjire.
Atunci când a fost creat codec-ul, autorii au calculat coeficientii ADPCM pe un set de fișiere audio muzicale. Cu cât semnalul audio se apropie mai mult de setul respectiv de muzică pe care s-au bazat tabelele, cu atât mai puține erori de cuantizare (zgomot) produce aptX.

Din acest motiv, testele sintetice vor oferi întotdeauna rezultate mai slabe decât muzica. Am realizat un exemplu sintetic special, în care aptX arată rezultate slabe — un sinus cu frecvența de 12.4 kHz (sus este semnalul original, jos este aptX. Sunetul în FLAC. Reduceți volumul!):

Graficul spectrului:
Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Se aud clar zgomotele.

Cu toate acestea, dacă se generează un sinus cu o amplitudine mai mică, astfel încât să fie mai liniștit, zgomotele vor deveni, de asemenea, mai tăcute, ceea ce indică un interval dinamic larg:

Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Pentru a auzi diferența dintre piesa muzicală originală și cea comprimată, se poate inversa unul dintre semnale și se pot aduna piesele pe canale. Această abordare, în general, este incorectă și nu ar oferi un rezultat fezabil cu codec-uri mai complexe, dar este destul de potrivită pentru ADPCM.
Diferența între original și aptX
Media pătratică a diferenței semnalelor se află la -37.4 dB, ceea ce nu este mult pentru o muzică atât de comprimată.

aptX HD

aptX HD nu este un codec independent - este un profil de codare îmbunătățit al codec-ului aptX. Modificările vizează numărul de biți alocați pentru codarea frecvențelor: 10 biți pentru 0-5.5 kHz, 6 biți pentru 5.5-11 kHz, 4 biți pentru 11-16.5 kHz, 4 biți pentru 16.5-22 kHz (numerele sunt pentru 44.1 kHz).

Codec
Frecvența de eșantionare
Lățimea de bandă
Bitrate
Suport pentru codificare
Suport pentru decodare

aptX HD
16, 32, 44.1, 48 kHz
24 biți
192 / 384 / 529 / 576 kbit/s (în funcție de frecvența de eșantionare)
Android 8+*
Unele dispozitive audio (hardware)

* Versiuni anterioare de 7 necesită modificări ale stivei Bluetooth. Codec-ul este suportat doar dacă producătorul dispozitivului Android a licențiat utilizarea codec-ului de la Qualcomm (dacă în OS există biblioteci de codificare).

Mai puțin răspândit decât aptX: pare să necesite o licențiere separată de la Qualcomm, și redevențe de licență separate.

Să repetăm exemplul cu sinusoidă la 12.4 kHz:
Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Mult mai bine decât cu aptX, dar totuși zgomotos.

aptX Low Latency

Codec de la Qualcomm, care nu are legătură cu standardele aptX și aptX HD, conform informațiilor puține de la persoanele implicate în dezvoltarea sa. Destinat transmisiei interactive de audio cu latență scăzută (filme, jocuri), acolo unde latența sunetului nu poate fi ajustată software. Implementări software cunoscute ale encoder-elor și decoder-elor lipsesc, este susținut exclusiv de transmițători, receptoare, căști și boxe, dar nu de smartphone-uri și computere.

Frecvența de eșantionare
Bitrate
Suport pentru codificare
Suport pentru decodare

44.1 kHz
276/420 kbit/s
Unele transmițători (hardware)
Unele dispozitive audio (hardware)

AAC

AAC, sau Advanced Audio Coding - un codec computațional complex, cu un model psihouauditiv serios. A devenit foarte popular pentru audio pe internet, fiind al doilea ca popularitate după MP3. Necesită licențiere și redevențe de licență: 15000 USD o dată (sau 1000 USD pentru companiile cu mai puțin de 15 angajați) + 0.98 USD pentru primele 500000 de dispozitive (sursa).
Codec-ul este standardizat în cadrul specificațiilor MPEG-2 și MPEG-4, și contrar unei concepții greșite frecvente, nu aparține Apple.

Frecvența de eșantionare
Bitrate
Suport pentru codificare
Suport pentru decodare

8 - 96 kHz
8 - 576 kbit/s (pentru stereofonie), 256 - 320 kbit/s (tipic pentru Bluetooth)
macOS, Android 7+*, iOS
Un număr mare de dispozitive audio (hardware)

* doar pe dispozitive ale căror producători au plătit redevențele de licență

În iOS și macOS se folosește encoder-ul Apple AAC, care oferă cea mai bună calitate audio posibilă. În Android se folosește al doilea cel mai bun encoder, Fraunhofer FDK AAC, dar pot fi utilizate diverse hardware, integrate în platformă (SoC), cu calitate de codare necunoscută. Conform unor teste recente de pe site-ul SoundGuys, calitatea codării AAC de către diferite telefoane Android variază semnificativ:
Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Majoritatea dispozitivelor audio wireless pentru AAC au o rată maximă de biți de 320 kbps, unele suportând doar 256 kbps. Celelalte rate de biți sunt extrem de rare.
AAC oferă o calitate excelentă la ratele de biți de 320 și 256 kbps, dar este predispus la pierderi de codificare consecutivă a conținutului comprimat, totuși, este dificil de auzit orice diferențe față de original pe iOS la o rată de biți de 256 kbps, chiar și după mai multe codificări consecutive; în cazul codificării unice, de exemplu, MP3 320 kbps în AAC 256 kbps, pierderile pot fi neglijate.
Ca în cazul altor codecuri Bluetooth, orice muzică este mai întâi decodificată, apoi codificată de codec. Atunci când ascultați muzică în format AAC, aceasta este mai întâi decodificată de sistemul de operare, apoi codificată din nou în AAC pentru transmiterea prin Bluetooth. Acest lucru este necesar pentru a amesteca mai multe fluxuri audio, cum ar fi muzica și notificările noi de mesaje. iOS nu este o excepție. Există multe afirmații pe internet că muzica în format AAC pe iOS nu este transcodificată în timpul transmiterii prin Bluetooth, ceea ce este incorect.

MP1/2/3

Codecurile din familia MPEG-1/2 Part 3 constau din bine cunoscutul și utilizatul MP3, din MP2, care este mai puțin răspândit (folosit în principal în TV digital și radio), și din MP1, care este complet necunoscut.

Codecurile vechi MP1 și MP2 nu sunt suportate deloc: nu am reușit să găsesc nici căști și nici un stack Bluetooth care să le codifice sau să le decodifice.
Decodificarea MP3 este suportată de unele căști, dar codificarea nu este suportată de niciun stack al sistemelor de operare moderne. Se pare că stackul terț BlueSoleil pentru Windows poate codifica în MP3, dacă schimbați manual fișierul de configurare, dar instalarea mea duce la BSoD pe Windows 10. Concluzia este că codec-ul nu poate fi folosit de fapt pentru audio Bluetooth.
În trecut, între 2006-2008, înainte de răspândirea standardului A2DP în dispozitive, oamenii ascultau muzică MP3 pe căștile Nokia BH-501 prin aplicația MSI BluePlayer, care era disponibilă pe Symbian și Windows Mobile. Atunci, arhitectura sistemului de operare al smartphone-urilor permitea accesul la multe funcții de nivel inferior, iar pe Windows Mobile se puteau instala chiar și stack-uri Bluetooth terțe.

Ultimul patent al codec-ului MP3 a expirat, utilizarea codec-ului nu necesită plăți de licență începând cu 23 aprilie 2017.

Dacă cea mai lungă patentată menționată în referințele de mai sus este luată ca măsură, atunci tehnologia MP3 a devenit fără patent în Statele Unite pe 16 aprilie 2017, când patentul U.S. 6,009,399, deținut și administrat de Technicolor, a expirat.

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

Frecvența de eșantionare
Bitrate
Suport pentru codificare
Suport pentru decodare

16 — 48 kHz
8 — 320 kbps
Niciunde nu este suportat
Unele dispozitive audio (hardware)

LDAC

Un nou codec 'Hi-Res' activ promovat de Sony, care suportă frecvențe de eșantionare de până la 96 kHz și 24 biți, cu un bitrate de până la 990 kbps. Este promovat ca un codec audiofil, ca înlocuitor pentru codec-urile Bluetooth existente. Are o funcție de ajustare adaptivă a bitrate-ului, în funcție de condițiile de difuzare radio.

Encoder LDAC (libldac) este integrat în standardul Android, astfel că codarea este suportată pe orice smartphone Android, începând cu versiunea 8 a OS-ului. Decodoarele software nu sunt disponibile public, specificația codec-ului nu este accesibilă publicului larg, însă, la prima vedere asupra encoder-ului, proiectarea internă a codec-ului este similară cu ATRAC9 — codec de la Sony, utilizat pe PlayStation 4 și Vita: ambele funcționează în intervalul de frecvențe, folosesc o transformare cosinus de tip discret modificată (MDCT) și comprimare utilizând algoritmul Huffman.

Suportul LDAC este oferit practic doar de căștile Sony. Posibilitatea de decodare LDAC se întâlnește ocazional pe căștile și DAC-urile altor producători, dar foarte rar.

Frecvența de eșantionare
Bitrate
Suport pentru codificare
Suport pentru decodare

44.1 — 96 kHz
303/606/909 kbps (pentru 44.1 și 88.2 kHz), 330/660/990 kbps (pentru 48 și 96 kHz)
Android 8+
De către unele căști Sony și câteva dispozitive ale altor producători (hardware)

Marketingul LDAC ca codec Hi-Res dăunează componentelor sale tehnice: este stupid să cheltuiești bitrate pentru transmiterea frecvențelor care nu sunt audibile pentru urechea umană și a unei rezoluții crescute, în timp ce nu este suficient pentru a transmite calitate CD (44.1/16) fără pierderi. Din fericire, codec-ul are două moduri de operare: transmiterea audio CD și transmiterea audio Hi-Res. În primul caz, numai 44.1 kHz/16 biți este transmis prin aer.

Întrucât nu există un decoder LDAC disponibil public, testarea codec-ului fără dispozitive suplimentare care decodifică LDAC este imposibilă. Conform testului LDAC pe un DAC cu suport, care a fost conectat de inginerii site-ului SoundGuys.com prin ieșirea digitală și au înregistrat sunetul generat pe semnalele de test, LDAC 660 și 990 kbps în modul calitate CD oferă o rată semnal/zgomot ușor mai bună decât cea a aptX HD.

Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive
Sursa: www.soundguys.com/ldac-ultimate-bluetooth-guide-20026

LDAC suportă, de asemenea, bitrate dinamic în afara profilurilor stabilite — de la 138 kbps la 990 kbps, dar, din câte îmi dau seama, pe Android sunt utilizate doar profilele standardizate 303/606/909 și 330/660/990 kbps.

Alte codecuri

Alte codecuri A2DP nu au avut o largă răspândire. Suportul lor este fie practic inexistent, fie disponibil doar pe anumite modele de căști și smartphone-uri.
Codecul standardizat A2DP ATRAC nu a fost niciodată utilizat ca codec Bluetooth chiar de către Sony, codecurile Samsung HD, Samsung Scalable și Samsung UHQ-BT au suport foarte limitat din partea dispozitivelor de transmisie și recepție, iar HWA LHDC este prea nou și este susținut doar de trei(?) dispozitive.

Suportul codec-urilor de către dispozitivele audio

Nu toți producătorii publică informații exacte despre codec-urile pe care le susțin căștile, boxele, receiverele sau transmitatoarele fără fir. Uneori, suportul pentru un anumit codec este prezent doar la transmisie, dar nu la recepție (aplicabil pentru transmitatoarele-receivere combinate), deși producătorul declară pur și simplu că există «suport», fără observații suplimentare (presupun că din cauza licențierii separate a encoderelor și decoderenelor pentru anumite codecuri). În cele mai ieftine dispozitive, nu se poate găsi deloc suportul declarat pentru aptX.

Din păcate, în interfețele majorității sistemelor de operare, codec-ul utilizat nu este afișat nicăieri. Informațiile despre acesta sunt disponibile doar pe Android, începând cu versiunea 8, și pe macOS. Totuși, chiar și în aceste sisteme, vor fi afișate doar codec-urile pe care le suportă atât telefonul/computatorul, cât și căștile.

Cum putem afla ce codec-uri suportă dispozitivul? Să înregistrăm și să analizăm un dump de trafic cu parametrii de negociere A2DP!
Acest lucru se poate face pe Linux, macOS și Android. Pe Linux, se poate folosi Wireshark sau hcidump, pe macOS — Bluetooth Explorer, iar pe Android — funcția standard de salvare a dump-ului Bluetooth HCI, disponibilă în instrumentele pentru dezvoltatori. Vei obține un dump în format btsnoop, care poate fi încărcat în analizatorul Wireshark.
Vă rugăm să observați: o dump corect poate fi obținut doar conectându-se cu telefonul/computerul la căști/boxe (fie cât de ciudat ar suna)! Căștile pot stabili singure conexiunea cu telefonul, iar în acest caz, vor solicita lista de codec-uri de la telefon, și nu invers. Pentru a înregistra un dump corect, desconectați mai întâi dispozitivul, apoi, în timpul înregistrării dump-ului, conectați telefonul la căști.

Utilizați următorul filtru de afișare pentru a filtra traficul irelevant:

btavdtp.signal_id

Ca rezultat, ar trebui să vedeți ceva asemănător:
Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Pe fiecare punct al comenzii GetCapabilities puteți apăsa și vedea detalii despre caracteristicile codec-ului.
Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Wireshark nu cunoaște toate identificatoarele codec-urilor, așa că unele codec-uri vor trebui decodificate manual, consultând tabelul de identificatori de mai jos:

Obligatoriu:
0x00 - SBC

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

Specifice furnizorului:
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 - ID-ul codec-ului CSR True Wireless Stereo v3 pentru AAC
0xFF 0x000A 0x0105 - ID-ul codec-ului CSR True Wireless Stereo v3 pentru MP3
0xFF 0x000A 0x0106 - ID-ul codec-ului CSR True Wireless Stereo v3 pentru aptX

Pentru a nu analiza dump-urile manual, am creat un serviciu care va analiza totul automat: btcodecs.valdikss.org.ru

Compararea codec-urilor. Care codec este mai bun?

Fiecare codec are propriile avantaje și dezavantaje.
aptX și aptX HD utilizează profile prestabilite, care nu pot fi modificate fără a modifica encoder-ul și decoder-ul. Nici producătorul telefonului, nici cel al căștilor nu pot schimba bitrate-ul sau coeficientii de codare ai aptX. Proprietarul codec-ului, Qualcomm, oferă un encoder de referință sub formă de bibliotecă. Aceste fapte sunt un punct forte al aptX – știți dinainte ce calitate a sunetului veți obține, fără „daruri”.

SBC, pe de altă parte, are multe opțiuni personalizabile, un bitrate dinamic (encoderul poate reduce parametrii bitpool dacă banda radio este ocupată) și nu are profiluri fixe, ci doar recomandate pentru „calitate medie” și „calitate înaltă”, care au fost adăugate în specificația A2DP în 2003. „Calitatea înaltă” nu mai este atât de ridicată conform standardelor moderne, iar majoritatea stivelor Bluetooth nu permit utilizarea unor parametri mai buni decât cei din profilul „calitate înaltă”, deși nu există restricții tehnice în acest sens.
Bluetooth SIG nu are un encoder de referință SBC sub formă de bibliotecă, iar producătorii îl implementează singuri.
Acestea sunt punctele slabe ale SBC — nu este clar dinainte ce calitate a sunetului să aștepți de la un anumit dispozitiv. SBC poate oferi atât sunet de calitate slabă, cât și de foarte înaltă, dar cea din urmă este inaccesibilă fără dezactivarea sau ocolirea restricțiilor artificiale impuse de stiva Bluetooth.

Situația cu AAC este ambiguă: pe de o parte, teoretic codec-ul ar trebui să ofere o calitate indistinguibilă de original, dar practica, conform testelor realizate de laboratorul SoundGuys pe diferite dispozitive Android, nu o confirmă. Cel mai probabil, vina este a encoderelor audio hardware de calitate slabă, integrate în diferite chipseturi de telefoane. Are sens să folosești AAC doar pe dispozitive Apple, iar pe Android să te limitezi la aptX și LDAC.

Echipamentele care susțin codec-uri alternative sunt, de obicei, de calitate superioară, pur și simplu pentru că nu are sens să plătești redevențe de licență pentru a utiliza aceste codec-uri pe dispozitive foarte ieftine și de calitate slabă. După testele mele, SBC sună foarte bine pe echipamente de calitate.

Am creat un serviciu web care encodează audio în SBC, aptX și aptX HD în timp real, direct din browser. Cu ajutorul acestuia vei putea testa aceste codec-uri audio fără a transmite efectiv audio prin Bluetooth, pe orice căști cablate, difuzoare și muzica ta preferată, precum și să schimbi parametrii de codare chiar în timpul redării audio:
btcodecs.valdikss.org.ru/sbc-encoder
Serviciul folosește bibliotecile de codare SBC din proiectul BlueZ și libopenaptx din ffmpeg, care sunt compilate în WebAssembly și JavaScript din C, prin emscripten, pentru a funcționa în browser. Cine ar fi putut visa un astfel de viitor!

Iată cum arată:

Observați cum se schimbă nivelul de zgomot după 20 kHz pentru diferite codecuri. În fișierul MP3 original, frecvențele de peste 20 kHz lipsesc.

Încercați să comutați între codecuri și evaluați dacă auziți vreo diferență între original, SBC 53 Joint Stereo (profilul standard și cel mai comun) și aptX/aptX HD.

Aud diferența între codecuri în căști!

Oamenii care nu aud diferența între codecuri în timpul testării prin intermediul unui serviciu web susțin că o pot auzi în timpul ascultării muzicii în căști wireless. Din păcate, aceasta nu este o glumă și nu este efectul placebo: diferența este cu adevărat perceptibilă, însă este generată nu de diferențele codecuri.

Majoritatea chipset-urilor Bluetooth audio utilizate în dispozitivele wireless primitoare sunt echipate cu un procesor de semnal digital (DSP), care implementează egalizatorul, compresorul, extensorul stereo și alte funcții menite să îmbunătățească (sau să modifice) sunetul. Producătorii de echipamente Bluetooth pot personaliza DSP pentru fiecare codec în parte, iar la comutarea între codecuri, ascultătorului i se va părea că aude diferența în modul de funcționare al codecurilor, când de fapt ascultă setări diferite ale DSP.

Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive
Pipeline-ul de procesare a sunetului DSP Kalimba în chipset-urile fabricate de CSR/Qualcomm

Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive
Activarea diferitelor funcții DSP pentru fiecare codec și ieșire separat

Unele dispozitive din sectorul premium vin cu un software care permite configurarea parametrilor DSP, dar majoritatea căștilor mai ieftine nu au această opțiune, iar utilizatorii nu pot dezactiva procesarea post-efectelor cu mijloace standard.

Caracteristicile funcționale ale dispozitivelor

Versiunea modernă a standardului A2DP are funcția „reglării absolute a volumului” — controlul volumului dispozitivului prin comenzi speciale ale protocolului AVRCP, care reglează amplificarea etapei de ieșire, în loc de a reduce software-ului volumul fluxului audio. Dacă la modificarea volumului pe căști, schimbarea nu este sincronizată cu volumul de pe telefon, înseamnă că căștile sau telefonul vostru nu suportă această funcție. În acest caz, este recomandat să ascultați muzica întotdeauna la volumul maxim pe telefon, ajustând volumul efectiv cu butoanele de pe căști — în acest caz, raportul semnal/zgomot va fi mai bun și calitatea audio. ar trebui să fie sus.
În realitate, exista situații neplăcute. Pe căștile mele RealForce OverDrive D1 pentru SBC este activat un compresor puternic, iar creșterea volumului duce la creșterea nivelului sunetelor slabe, fără a schimba volumul sunetelor puternice (se produce compresia semnalului). Din acest motiv, trebuie să setez volumul pe computer la aproximativ jumătate, caz în care efectul de compresie este practic inexistent.
Din observațiile mele, toate căștile cu codecuri suplimentare suportă funcția de control absolut al volumului, se pare că aceasta este una dintre cerințele pentru certificarea codecurilor.

Unele căști suportă conectarea a două dispozitive simultan. Acest lucru permite, de exemplu, ascultarea muzicii de pe computer și primirea apelurilor de pe telefon. Cu toate acestea, trebuie să știți că în acest mod se dezactivează codecurile alternative, și se folosește doar SBC.

Funcția AVDTP 1.3 Delay Reporting permite căștilor să comunice întârzierea dispozitivului de transmisie, cu care sunetul este de fapt redat. Aceasta permite ajustarea sincronizării audio cu video în timpul vizionării fișierelor video: în cazul problemelor de transmisie prin radio, audio nu va fi de urmărit video, ci dimpotrivă, video va fi întârziat de player-ul video, până când audio și video se vor sincroniza din nou.
Funcția este suportată de multe căști, Android 9+ și Linux cu PulseAudio 12.0+. Nu am informații despre suportul funcției pe alte platforme.

Comunicare bidirecțională prin Bluetooth. Transmiterea vocii.

Pentru transmiterea vocii prin Bluetooth se utilizează Synchronous Connection Oriented (SCO) — transmitere sincronică cu acord prealabil de conexiune. Modului permite transmiterea sunetului și vocii în strictă ordine, cu o viteză simetrică de trimitere și primire, fără a aștepta confirmarea transmisiei și retransmiterea pachetelor. Acest lucru reduce întârzierea totală a transmisiei audio prin canalul radio, dar impune limitări severe asupra cantității de date transmise într-o unitate de timp și afectează calitatea.
Când este utilizat acest mod, atât vocea, cât și audio sunt transmise cu aceeași calitate.
Din păcate, la sfârșitul anului 2019, calitatea transmiterii vocii prin Bluetooth este încă scăzută, și nu este clar de ce Bluetooth SIG nu face nimic în legătură cu acest lucru.

CVSD

Codecul de transmisie a vocii CVSD a fost standardizat în 2002 și este susținut de toate dispozitivele de comunicație bidirecțională prin Bluetooth. Acesta asigură transmisia audio cu o frecvență de eșantionare de 8 kHz, ceea ce corespunde calității telefoanelor fixe obișnuite.

Exemplu de înregistrare în acest codec.

mSBC

Codecul suplimentar mSBC a fost standardizat în 2009, iar în 2010 au apărut deja cipuri care îl foloseau pentru transmiterea vocii. mSBC este larg susținut de diverse dispozitive.
Acesta nu este un codec autonom, ci un SBC obișnuit din standardul A2DP, cu un profil de codare fix: 16 kHz, mono, bitpool 26.

Exemplu de înregistrare în acest codec.

Nu e strălucit, dar este mult mai bine decât CVSD, totuși, este totuși neplăcut să-l folosești pentru comunicarea prin internet, mai ales atunci când folosești căști pentru a comunica în timpul jocului - sunetul jocului va fi transmis, de asemenea, cu o frecvență de eșantionare de 16 kHz.

FastStreamCompania CSR a decis să dezvolte ideea reutilizării SBC. Pentru a depăși limitările protocolului SCO și a utiliza rate de biți mai mari, CSR a adoptat o altă abordare - au implementat suport pentru audio SBC bidirecțional în standardul de transmitere a audio unidirecțional A2DP, au standardizat profilurile de codare și le-au numit „FastStream”.

FastStream transmite în difuzoare sunet stereo la 44.1 sau 48 kHz cu o rată de biți de 212 kbps, iar pentru transmiterea audio de la microfon se folosește mono, 16 kHz, cu o rată de biți de 72 kbps (puțin mai bine decât mSBC). Aceste specificații sunt mult mai potrivite pentru comunicarea în jocuri online - sunetul jocului și al interlocutorilor va fi de calitate.

Exemplu de înregistrare în acest codec (+ sunet de la microfon, același ca mSBC).

Compania a venit cu o soluție interesantă, dar din cauza faptului că aceasta contravine standardului A2DP, suportul său există doar în anumite transmițătoare ale companiei (care funcționează ca o placă de sunet USB, nu ca un dispozitiv Bluetooth), dar nu a primit suport în stivele Bluetooth, deși numărul de căști cu suport pentru FastStream nu este deloc mic.

În prezent, suportul pentru FastStream în sistemele de operare există doar sub formă de patch pentru PulseAudio pe Linux de la dezvoltatorul Pali Rohár, care nu este inclus în ramura principală a programului.

aptX Low Latency

Spre surpriza generală, aptX Low Latency susține de asemenea audio bidirecțional, implementând același principiu ca FastStream.
Nu se va putea utiliza această caracteristică a codec-ului nicăieri - nu există suport pentru decodarea Low Latency în niciun sistem de operare și în nici o stivă Bluetooth cunoscută de mine.

Bluetooth 5, Classic și Low Energy

În jurul specificațiilor și versiunilor Bluetooth a apărut o mare confuzie din cauza existenței a două standarde incompatibile sub aceeași marcă, ambele fiind utilizate pe scară largă în scopuri diferite.

Există două protocoale diferite, incompatibile între ele: Bluetooth Classic și Bluetooth Low Energy (LE, cunoscut și sub numele de Bluetooth Smart). Mai există un al treilea protocol, Bluetooth High Speed, dar acesta nu este frecvent întâlnit și nu se utilizează în dispozitivele de uz casnic.

Începând cu Bluetooth 4.0, modificările din specificație s-au concentrat în principal pe Bluetooth Low Energy, iar versiunea Classic a primit doar îmbunătățiri minore.

Lista modificărilor între Bluetooth 4.2 și Bluetooth 5:

9 MODIFICĂRI ÎNTRE v4.2 ȘI 5.0

9.1 FUNCȚII NOI

Mai multe funcții noi sunt introduse în Specificația de bază Bluetooth 5.0. Principalele domenii de îmbunătățire sunt:
• Mască de disponibilitate a sloturilor (SAM)
• 2 Msym/s PHY pentru LE
• LE Long Range
• Publicitate Non-Connectabilă cu Ciclu de Funcționare Ridicat
• Extensii de Publicitate LE
• Algoritmul de selecție a canalului LE #2
9.1.1 Funcții adăugate în CSA5 — Integrate în v5.0
• Putere de ieșire mai mare

Sursa: www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=421043 (pagina 291)

Numai o singură modificare a afectat versiunea Classic în cadrul specificației Bluetooth 5: a fost adăugată suportul pentru tehnologia Mască de Disponibilitate a Sloturilor (SAM), destinat să îmbunătățească împărțirea spectrului radio. Toate celelalte modificări afectează doar Bluetooth LE (inclusiv Puterea de Ieșire mai Mare).

Toate Dispozitivele audio folosesc doar Bluetooth Classic. Nu este posibil să conectați căști și difuzoare prin Bluetooth Low Energy: nu există un standard de transmitere a audio utilizând LE. Standardul A2DP, folosit pentru transmiterea audio de înaltă calitate, funcționează doar prin Bluetooth Classic și nu există un echivalent în LE.

Concluzie — a cumpăra dispozitive audio cu Bluetooth 5 doar din cauza noii versiuni a protocolului nu are sens. Bluetooth 4.0/4.1/4.2 va funcționa exact la fel în contextul transmiterii audio.
Dacă anunțul noilor căști menționează un dublu radius de acțiune și un consum redus de energie datorită Bluetooth 5, atunci știți — fie nu înțeleg, fie vă induc în eroare. Nu este de mirare, deoarece chiar și producătorii de cipuri Bluetooth se confundă în anunțurile lor cu privire la diferențele versiunii noi a standardului, iar unele cipuri Bluetooth 5 suportă cea de-a cincea versiune doar pentru LE, dar pentru Classic folosesc 4.2.

Întârzierea transmiterii audio

Mărimea întârzierii (rezervării) audio depinde de mulți factori: dimensiunea buffer-ului în stiva audio, în stiva Bluetooth și în dispozitivul wireless care redă, întârzierile algoritmice ale codec-ului.

Întârzierea codec-urilor simple, precum SBC, aptX și aptX HD, este foarte mică, de 3-6 ms, ceea ce poate fi neglijat, dar codec-urile complexe, precum AAC și LDAC, pot provoca o întârziere semnificativă. Întârzierea algoritmică AAC pentru 44.1 kHz este de 60 ms. LDAC – aproximativ 30 ms (conform unei analize brute a codului sursă. Este posibil să mă înșel, dar nu foarte mult.)

Întârzierea finală depinde foarte mult de dispozitivul care redă, chipset-ul și buffer-ul acestuia. În timpul testelor, am obținut o variație de la 150 la 250 ms pe diferite dispozitive (cu codec-ul SBC). Dacă presupunem că dispozitivele care suportă codec-uri suplimentare precum aptX, AAC și LDAC folosesc componente de calitate și un buffer mic, atunci vom obține următoarele întârziere tipice:

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

Reamintesc: aptX Low Latency nu este suportat în sistemele de operare, motiv pentru care o întârziere mai mică poate fi obținută doar prin asocierea unui transmițător + receptor sau transmițător + căști/boxe, toate dispozitivele trebuie să suporte acest codec.

Problemele dispozitivelor, certificărilor și logo-urilor Bluetooth

Cum să diferențiezi un dispozitiv audio de calitate de o imitație ieftină? În primul rând, după aspect!

La căștile, boxele și receptorii chinezești ieftini:

  1. Cuvântul „Bluetooth” lipsește de pe cutie și dispozitiv, cel mai adesea se folosește „Wireless” și „BT”
  2. Logo-ul Bluetooth lipsește Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive de pe cutie sau dispozitiv
  3. Nu există un LED albastru care clipește

Lipsa acestor elemente arată că dispozitivul nu a trecut de certificare, deci este potențial de calitate scăzută și problematic. De exemplu, căștile de la Bluedio nu sunt certificate Bluetooth și nu corespund complet specificației A2DP. Nu ar fi trecut certificarea.

Să examinăm câteva dispozitive și cutiile lor:
Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Audio prin Bluetooth: tot ce trebuie să știți despre profile, codecuri și dispozitive

Acestea sunt toate dispozitive necertificate. În manual se poate găsi logo-ul și denumirea tehnologiei Bluetooth, dar cel mai important este ca acestea să fie pe cutie și/sau pe dispozitivul în sine.

Dacă căștile sau boxa ta spun „Ze bluetooth dewise is connecteda successfulle”, aceasta nu spune nimic despre calitatea lor:

Redați video

Concluzie

Poate Bluetooth să înlocuiască complet căștile și căștile cu fir? Poate, dar cu prețul unei calități scăzute în modul de apel, a unei întârzieri crescute a transmiterii sunetului, care poate fi iritant în jocuri, și a multor codecuri proprietare, care necesită plăți de licență și cresc costul final atât al smartphone-urilor, cât și al căștilor.

Marketingul codecurilor alternative este foarte puternic: aptX și LDAC sunt prezentate ca o înlocuire mult așteptată pentru „vechiul și slab” SBC, care nu este chiar atât de rău cum se crede.

Așa cum s-a dovedit, limitările artificiale ale stivelor Bluetooth în ceea ce privește bitrate-ul SBC pot fi ocolite, astfel încât SBC să nu fie inferior aptX HD. Am preluat inițiativa și am creat un patch pentru firmware-ul LineageOS: Modificăm stiva Bluetooth pentru a îmbunătăți sunetul căștilor fără codec-uri AAC, aptX și LDAC

Mai multe informații pot fi găsite pe site-urile SoundGuys și SoundExpert.

Bonus: encoder-ul de referință SBC, informații despre bitstream A2DP și fișiere de testare. Acest fișier a fost anterior disponibil pe site-ul Bluetooth, dar acum este disponibil doar pentru cei care au aderat la Bluetooth SIG.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster