Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Из-за массового выпуска смартфонов без аудиоразъема 3.5 мм беспроводные Bluetooth-наушники для многих стали основным способом прослушивания музыки и общения в режиме гарнитуры.
Proizvođači bežičnih uređaja ne pišu uvijek detaljne specifikacije proizvoda, a članci o Bluetooth zvuku na internetu su kontradiktorni, ponekad netačni, ne govore o svim karakteristikama i često kopiraju iste informacije koje ne odgovaraju stvarnosti.
Pokušajmo razumjeti protokol, mogućnosti Bluetooth OS stekova, slušalica i zvučnika, Bluetooth kodeke za muziku i govor, saznati šta utječe na kvalitetu prenošenog zvuka i latencije, naučiti kako prikupiti i dekodirati informacije o podržanim kodecima i drugim uređajima sposobnosti.

TL; DR:

  • SBC - normalan kodek
  • Slušalice imaju svoj ekvilajzer i naknadnu obradu za svaki kodek posebno
  • aptX nije tako dobar kao što se reklamira
  • LDAC je marketinško sranje
  • Kvalitet poziva je i dalje loš
  • Možete ugraditi C audio enkodere u svoj pretraživač tako što ćete ih kompajlirati u WebAssembly putem emscripten-a, i oni neće mnogo usporiti.

Muzika preko Bluetooth-a

Funkcionalna komponenta Bluetooth-a određena je profilima - specifikacijama određenih funkcija. Bluetooth streaming muzike koristi visokokvalitetni A2DP profil jednosmjernog prijenosa zvuka. A2DP standard je usvojen 2003. godine i od tada se nije značajno promijenio.
U okviru profila standardizovan je 1 obavezni kodek niske računske složenosti SBC, kreiran specijalno za Bluetooth, i 3 dodatna. Također je moguće koristiti nedokumentirane kodeke vlastite implementacije.

Od juna 2019. jesmo u xkcd stripu sa 14 A2DP kodeka:

  • SBC ← standardizovano u A2DP, podržano od svih uređaja
  • MPEG-1/2 Layer 1/2/3 ← standardizovano u A2DP: dobro poznato MP3, koji se koristi u digitalnoj TV MP2, i nepoznato MP1
  • MPEG-2/4 AAC ← standardizovano u A2DP
  • ATTRAC ← stari kodek kompanije Sony, standardizovan u A2DP
  • LDAC ← novi kodek kompanije Sony
  • aptX ← kodek iz 1988
  • aptXHD ← isto kao aptX, samo sa različitim opcijama kodiranja
  • aptX Niska latencija ← potpuno drugačiji kodek, bez softverske implementacije
  • aptX Adaptive ← još jedan kodek kompanije Qualcomm
  • FastStream ← pseudo kodek, dvosmjerna SBC modifikacija
  • HWA LHDC ← novi kodek kompanije Huawei
  • Samsung HD ← podržavaju 2 uređaja
  • Samsung Scalable ← podržavaju 2 uređaja
  • Samsung UHQ-BT ← podržavaju 3 uređaja

Zašto su nam uopšte potrebni kodeci, pitate se, kada Bluetooth ima EDR, koji omogućava prenos podataka brzinama od 2 i 3 Mbit/s, a za nekomprimovani dvokanalni 16-bitni PCM dovoljno je 1.4 Mbit/s?

Prijenos podataka putem Bluetooth-a

Postoje dvije vrste prijenosa podataka u Bluetooth-u: Asinhroni prijenos bez veze (ACL) za asinhroni prijenos bez uspostavljanja veze i Synchronous Connection Oriented (SCO), za sinhroni prijenos sa preliminarnim pregovaranjem o vezi.
Prijenos se vrši korištenjem šeme vremenske podjele i odabirom kanala prijenosa za svaki paket posebno (Frequency-Hop/Time-Division-Duplex, FH/TDD), za koje je vrijeme podijeljeno na intervale od 625 mikrosekundi koji se nazivaju slotovi. Jedan od uređaja prenosi u slotovima s parnim brojem, a drugi u neparnim slotovima. Preneseni paket može zauzeti 1, 3 ili 5 slotova, u zavisnosti od veličine podataka i zadatog tipa prenosa, u ovom slučaju se prenos od jednog uređaja odvija u parnim i neparnim slotovima do kraja prenosa. Ukupno se može primiti i poslati do 1600 paketa u sekundi, ako svaki od njih zauzima 1 slot, a oba uređaja prenose i primaju nešto bez zaustavljanja.

2 i 3 Mbit/s za EDR, koji se mogu naći u najavama i na Bluetooth web stranici, maksimalna je brzina prijenosa svih podataka u kanalu ukupno (uključujući tehnička zaglavlja svih protokola u kojima se podaci moraju inkapsulirati), u dva smjera istovremeno. Stvarna brzina prijenosa podataka će značajno varirati.

Za prenos muzike koristi se asinhroni metod, skoro uvek koristeći pakete kao što su 2-DH5 i 3-DH5, koji nose maksimalnu količinu podataka u EDR režimu od 2 Mbit/s i 3 Mbit/s, respektivno, i zauzimaju 5 puta - dijeljenje slotova.

Схематичное представление передачи с использованием 5 слотов одним устройством и 1 слота другим (DH5/DH1):
Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Zbog principa vremenske podjele etera, prinuđeni smo da čekamo vremenski interval od 625 mikrosekundi nakon odašiljanja paketa ako nam drugi uređaj ništa ne prenese ili odašilje mali paket, a više vremena ako drugi uređaj odašilje u velikim paketima. Ako je na telefon povezano više uređaja (na primjer, slušalice, satovi i fitnes narukvica), tada se vrijeme prijenosa dijeli između svih njih.

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

Vrsta paketa
Broj slotova
Max. broj bajtova u paketu
Max. broj bajtova A2DP korisnog opterećenja
Max. A2DP prenosni bitrate

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 i 1429 kbps definitivno nisu dovoljni za prenos nekomprimovanog zvuka u realnim uslovima, sa bučnim opsegom od 2.4 GHz i potrebom za prenosom servisnih podataka. EDR 3 Mbit/s je zahtjevan za snagu prijenosa i šum u zraku, stoga je čak i u 3-DH5 modu udoban PCM prijenos nemoguć, uvijek će biti kratkotrajnih prekida i sve će raditi samo na udaljenosti od par metara.
U praksi, čak i audio tok od 990 kbit/s (LDAC 990 kbit/s) je teško prenijeti.

Vratimo se kodecima.

SBC

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

Frekvencija uzorkovanja
Dubina bita
Bitrate
Podrška za kodiranje
Podrška za dekodiranje

16, 32, 44.1, 48 kHz
16 bita
10-1500 kbps
Svi uređaji
Svi uređaji

SBC — простой и вычислительно быстрый кодек, с примитивной психоакустической моделью (применяется только маскировка тихих звуков), использующий адаптивную импульсно-кодовую модуляцию (APCM).
Спецификация A2DP рекомендует к использованию два профиля: Middle Quality и High Quality.
Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Kodek ima mnogo postavki koje vam omogućavaju da kontrolirate algoritamsko kašnjenje, broj uzoraka u bloku, algoritam raspodjele bitova, ali gotovo svugdje se koriste isti parametri preporučeni u specifikaciji: Joint Stereo, 8 frekvencijskih opsega, 16 blokova u audio okvir, metoda raspodjele bitova glasnoće.
SBC podržava dinamičku promjenu Bitpool parametra, što direktno utiče na bitrate. Ako su zračni valovi začepljeni, paketi su izgubljeni ili se uređaji nalaze na velikim udaljenostima, izvor zvuka može smanjiti Bitpool dok se komunikacija ne vrati u normalu.

Производители большинства наушников устанавливают максимальное значение параметра Bitpool в 53, что ограничивает битрейт 328 килобитами в секунду при использовании рекомендованного профиля.
Čak i ako je proizvođač slušalica postavio maksimalnu Bitpool vrijednost iznad 53 (takvi modeli se nalaze, na primjer: Beats Solo³, JBL Everest Elite 750NC, Apple AirPods, također se nalaze na nekim prijemnicima i glavnim jedinicama u automobilu), tada većina OS neće dozvoliti korištenje povećane brzine prijenosa zbog postavljenog ograničenja interne vrijednosti u Bluetooth stekovima.
Osim toga, neki proizvođači postavljaju maksimalnu Bitpool vrijednost na nisku za neke uređaje. Na primjer, za Bluedio T je 39, za Samsung Gear IconX je 37, što daje loš kvalitet zvuka.

Umjetna ograničenja od strane programera Bluetooth stekova najvjerovatnije su nastala zbog nekompatibilnosti nekih uređaja s velikim Bitpool vrijednostima ili atipičnim profilima, čak i ako su prijavili podršku za njih, i nedovoljnog testiranja tokom certifikacije. Autorima Bluetooth stekova bilo je lakše ograničiti se na dogovaranje preporučenog profila, umjesto da kreiraju baze podataka o pogrešnim uređajima (iako sada to rade za druge funkcije koje ne rade ispravno).

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

Primjer SBC 328 kbps. Na vrhu je original, na dnu je SBC, koji se povremeno mijenja između pjesama. Zvuk u video datoteci koristi FLAC kodek za kompresiju bez gubitaka. Korišćenje FLAC-a u mp4 kontejneru nije zvanično standardizovano, tako da nije garantovano da će ga vaš pretraživač reproducirati, ali bi trebalo da radi u najnovijim verzijama desktop Chrome-a i Firefox-a. Ako nemate zvuk, možete preuzeti datoteku i otvoriti je u punom video playeru.
ZZ Top - Sharp Dressed Man

Spektrogram pokazuje trenutak prebacivanja: SBC periodično seče tihe zvukove iznad 17.5 kHz, i uopšte ne dodeljuje nikakve bite za opseg iznad 20 kHz. Cijeli spektrogram je dostupan klikom (1.7 MB).
Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Ne čujem nikakvu razliku između originala i SBC-a na ovoj stazi.

Возьмём что-нибудь новее, и смоделируем аудио, которое бы получилось при использовании наушников Samsung Gear IconX с Bitpool 37 (вверху — исходный сигнал, внизу — SBC 239 кбит/с, звук во FLAC).
Bezumno samopopuštanje - svjedok

Čujem pucketanje, manje stereo efekta i neprijatan "zveckanje" zvuka na visokim frekvencijama vokala.

Iako je SBC vrlo fleksibilan kodek, može se konfigurirati za nisku latenciju, pruža odličan kvalitet zvuka pri visokim brzinama prijenosa (452+ kbps) i prilično je dobar za većinu ljudi pri standardnom visokom kvalitetu (328 kbps), zbog činjenice da A2DP standard ne navodi fiksne profile (već samo daje preporuke), programeri steka su postavili umjetna ograničenja na Bitpool, parametri emitiranog zvuka se ne prikazuju u korisničkom sučelju, a proizvođači slušalica su slobodni da sami postavljaju svoja podešavanja i nikada naznačiti Bitpool vrijednost u tehničkim specifikacijama proizvoda, kodek je postao poznat po niskom kvalitetu zvuka, iako to nije problem kodeka kao takvog.
Bitpool parametar direktno utječe na bitrate samo unutar jednog profila. Ista Bitpool 53 vrijednost može dati i bitrate od 328 kbps sa preporučenim High Quality profilom, i 1212 kbps sa Dual Channel i 4 frekvencijska opsega, zbog čega su autori OS-a, pored ograničenja na Bitpool, postavili ograničenje i na Bitrate. Kako ja vidim, ova situacija je nastala zbog greške u A2DP standardu: bilo je potrebno pregovarati o bitrate-u, ​​a ne o Bitpoolu.

Tabela podrške za SBC mogućnosti u različitim OS:

OS
Podržane stope uzorkovanja
Limit max. Bitpool
Limit max. Bitrate
Tipična brzina prijenosa
Bitpool dinamičko podešavanje

Windows 10
44.1 kGc
53
512 kbps
328 kbps
✓*

Linux (BlueZ + PulseAudio)
16, 32, 44.1, 48 kHz
64 (za dolazne veze), 53 (za odlazne veze)
No limit
328 kbps
✓*

macOS High Sierra
44.1 kGc
64, zadano 53***
Nepoznato
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 kGc
53
No limit
328 kbps

* Bitpool se samo smanjuje, ali se ne povećava automatski, ako se poboljšaju uvjeti prijenosa. Da biste vratili Bitpool, morate zaustaviti reprodukciju, pričekati nekoliko sekundi i ponovo pokrenuti zvuk.
** Zadana vrijednost ovisi o postavkama steka specificiranih prilikom kompajliranja firmvera. U Androidu 8/8.1 frekvencija je samo 44.1 kHz ili 48 kHz, u zavisnosti od podešavanja tokom kompilacije, u drugim verzijama 44.1 kHz i 48 kHz su istovremeno podržani.
*** Bitpool vrijednost se može povećati u programu Bluetooth Explorer.

aptX i aptX HD

aptX je jednostavan i kompjuterski brz kodek, bez psihoakustike, koji koristi adaptivnu diferencijalnu modulaciju impulsnog koda (ADPCM). Pojavio se oko 1988. (datum prijave patent od februara 1988.), prije Bluetootha, prvenstveno se koristio u profesionalnoj bežičnoj audio opremi. Trenutno u vlasništvu Qualcomm-a, zahtijeva licenciranje i autorske naknade. Od 2014.: 6000 USD jednokratno i ≈1 USD po uređaju, za serije do 10000 uređaja (izvor, str. 16).
aptX i aptX HD su isti kodek, sa različitim profilima kodiranja.

У кодека есть только один параметр — выбор частоты дискретизации. Ещё есть, правда, выбор количества/режима каналов, но во всех известных мне устройствах (70+ штук) поддерживается исключительно Stereo.

Codec
Frekvencija uzorkovanja
Dubina bita
Bitrate
Podrška za kodiranje
Podrška za dekodiranje

aptX
16, 32, 44.1, 48 kHz
16 bita
128 / 256 / 352 / 384 kbps (u zavisnosti od brzine uzorkovanja)
Windows 10 (desktop i mobilni), macOS, Android 4.4+/7*, Blackberry OS 10
Širok spektar audio uređaja (hardvera)

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

aptX dijeli zvuk u 4 frekvencijska opsega i kvantizira ih s istim brojem bitova konstantno: 8 bita za 0-5.5 kHz, 4 bita za 5.5-11 kHz, 2 bita za 11-16.5 kHz, 2 bita za 16.5-22 kHz ( brojke za brzinu uzorkovanja 44.1 kHz).

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

Visoki su postali malo crveniji, ali niste mogli čuti razliku.

Zbog fiksne distribucije bitova za kvantizaciju, kodek ne može "pomjeriti bitove" na frekvencije kojima su najpotrebniji. Za razliku od SBC-a, aptX neće "rezati" frekvencije, ali će im dodati šum kvantizacije, smanjujući dinamički opseg zvuka.

Ne treba pretpostaviti da korišćenje, na primer, 2 bita po opsegu smanjuje dinamički opseg na 12 dB: ADPCM dozvoljava do 96 dB dinamičkog opsega čak i kada se koriste 2 bita kvantizacije, ali samo za određeni signal.
ADPCM pohranjuje numeričku razliku između trenutnog i sljedećeg uzorka, umjesto pohranjivanja apsolutne vrijednosti kao u PCM-u. Ovo vam omogućava da smanjite zahtjeve za brojem bitova potrebnih za pohranjivanje istih (bez gubitka) ili skoro istih (sa relativno malom greškom zaokruživanja) informacija. Da bi se smanjile greške zaokruživanja, koriste se tablice koeficijenata.
Prilikom kreiranja kodeka, autori su izračunali ADPCM koeficijente na skupu muzičkih audio datoteka. Što je audio signal bliži muzičkom setu na kojem su stolovi izgrađeni, aptX stvara manje grešaka u kvantizaciji (šuma).

Zbog toga će sintetički testovi uvijek dati lošije rezultate od muzike. Napravio sam poseban sintetički primjer u kojem aptX pokazuje loše rezultate - sinusni val frekvencije 12.4 kHz (iznad - originalni signal, ispod - aptX. Audio u FLAC-u. Smanjite jačinu!):

Grafikon spektra:
Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Zvuci se jasno čuju.

Međutim, ako generišete sinusni val sa manjom amplitudom tako da bude tiši, šum će također postati tiši, što ukazuje na širok dinamički raspon:

Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Da biste čuli razliku između originalne muzičke numere i kompresovane, možete invertovati jedan od signala i dodati numere kanal po kanal. Ovaj pristup je generalno netačan i ne bi dao zdrave rezultate sa složenijim kodecima, ali je posebno za ADPCM sasvim prikladan.
Razlika između originala i aptX-a
Среднее квадратическое разницы сигналов находится на уровне -37.4 дБ, что не много для такой компрессированной музыки.

aptXHD

aptX HD nije samostalni kodek - to je poboljšani profil kodiranja aptX kodeka. Promjene su uticale na broj bitova dodijeljenih za frekventne opsege kodiranja: 10 bita za 0-5.5 kHz, 6 bita za 5.5-11 kHz, 4 bita za 11-16.5 kHz, 4 bita za 16.5-22 kHz (cifre za 44.1 kHz) .

Codec
Frekvencija uzorkovanja
Dubina bita
Bitrate
Podrška za kodiranje
Podrška za dekodiranje

aptXHD
16, 32, 44.1, 48 kHz
24 bita
192 / 384 / 529 / 576 kbps (u zavisnosti od brzine uzorkovanja)
Android 8+*
Neki audio uređaji (hardver)

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

Менее распространён, чем aptX: по всей видимости, требует отдельного лицензирования у Qualcomm, и отдельных лицензионных отчислений.

Ponovimo primjer sa sinusnim talasom na 12.4 kHz:
Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Mnogo bolje od aptX-a, ali ipak malo bučno.

aptX Niska latencija

Kodek iz Qualcomm-a koji nema ništa zajedničko sa standardnim aptX i aptX HD, sudeći po ograničenim informacijama ljudi uključenih u njegov razvoj. Dizajniran za interaktivni audio prijenos niske latencije (filmovi, igre), gdje se kašnjenje zvuka ne može podesiti softverom. Ne postoje poznate softverske implementacije kodera i dekodera, podržavaju ih isključivo predajnici, prijemnici, slušalice i zvučnici, ali ne i pametni telefoni i računari.

Frekvencija uzorkovanja
Bitrate
Podrška za kodiranje
Podrška za dekodiranje

44.1 kGc
276/420 kbps
Neki odašiljači (hardver)
Neki audio uređaji (hardver)

AAC

AAC, ili Advanced Audio Coding, je računski složen kodek sa ozbiljnim psihoakustičnim modelom. Široko se koristi za audio na internetu, drugi po popularnosti nakon MP3. Zahteva licenciranje i honorare: 15000 dolara jednokratno (ili 1000 dolara za kompanije sa manje od 15 zaposlenih) + 0.98 dolara za prvih 500000 uređaja (izvor).
Кодек стандартизирован в рамках спецификаций MPEG-2 и MPEG-4, и вопреки частому заблуждению, не принадлежит Apple.

Frekvencija uzorkovanja
Bitrate
Podrška za kodiranje
Podrška za dekodiranje

8 - 96 kHz
8 - 576 kbps (za stereo), 256 - 320 kbps (tipično za Bluetooth)
macOS, Android 7+*, iOS
Širok spektar audio uređaja (hardvera)

* samo na uređajima čiji su proizvođači platili naknade za licenciranje

iOS i macOS koriste Appleov trenutno najbolji AAC koder za isporuku najviše moguće kvalitete zvuka. Android koristi drugi najkvalitetniji Fraunhofer FDK AAC koder, ali može koristiti različit hardver ugrađen u platformu (SoC) s nepoznatim kvalitetom kodiranja. Prema nedavnim testovima na web stranici SoundGuys, kvaliteta AAC kodiranja različitih Android telefona uvelike varira:
Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Većina bežičnih audio uređaja ima maksimalnu brzinu prijenosa od 320 kbps za AAC, neki podržavaju samo 256 kbps. Ostale bitrate su izuzetno rijetke.
AAC pruža odličan kvalitet pri brzinama od 320 i 256 kbps, ali je podložan gubitak sekvencijalnog kodiranja već komprimovanog sadržaja, međutim, teško je čuti bilo kakve razlike u odnosu na original na iOS-u pri brzini prijenosa od 256 kbps čak i uz nekoliko uzastopnih kodiranja; s jednim kodiranjem, na primjer, MP3 320 kbps do AAC 256 kbps, gubici se mogu zanemariti.
Kao i kod drugih Bluetooth kodeka, svaka muzika se prvo dekodira, a zatim kodekom kodira. Kada slušate muziku u AAC formatu, OS je prvo dekodira, a zatim ponovo kodira u AAC za prenos putem Bluetooth-a. Ovo je neophodno za mešanje više audio tokova, kao što su muzika i obaveštenja o novim porukama. iOS nije izuzetak. Na internetu možete pronaći mnoge izjave da se na iOS-u muzika u AAC formatu ne transkodira kada se prenosi preko Bluetooth-a, što nije tačno.

MP1/2/3

Kodeci porodice MPEG-1/2 Part 3 sastoje se od dobro poznatog i široko korišćenog MP3, manje uobičajenog MP2 (koji se koristi uglavnom u digitalnoj TV i radiju) i potpuno nepoznatog MP1.

Stari MP1 i MP2 kodeci uopće nisu podržani: nisam mogao pronaći slušalice ili Bluetooth stog koji bi ih kodirao ili dekodirao.
MP3 dekodiranje je podržano od strane nekih slušalica, ali kodiranje nije podržano ni na jednom modernom operativnom sistemu. Čini se da BlueSoleil stack treće strane za Windows može kodirati u MP3 ako ručno promijenite konfiguracijski fajl, ali za mene njegovo instaliranje dovodi do BSoD-a na Windows 10. Zaključak - kodek se zapravo ne može koristiti za Bluetooth audio.
Ranije, 2006-2008, prije širenja A2DP standarda u uređajima, ljudi su slušali MP3 muziku na Nokia BH-501 slušalicama preko MSI BluePlayer programa, koji je bio dostupan na Symbian i Windows Mobile. U to vrijeme, OS arhitektura pametnih telefona omogućavala je pristup mnogim funkcijama niskog nivoa, a na Windows Mobile čak je bilo moguće instalirati Bluetooth stekove treće strane.

Poslednji patent MP3 kodeka je istekao, korišćenje kodeka ne zahteva naknade za licenciranje od 23. aprila 2017. godine.

Ako se kao mjera uzme najdugovječniji patent koji se spominje u gore spomenutim referencama, onda je MP3 tehnologija postala bez patenta u Sjedinjenim Državama 16. aprila 2017. godine kada je istekao američki patent 6,009,399, koji je u posjedu i kojim upravlja Technicolor.

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

Frekvencija uzorkovanja
Bitrate
Podrška za kodiranje
Podrška za dekodiranje

16 - 48 kHz
8 - 320 kbps
Nigdje nije podržano
Neki audio uređaji (hardver)

LDAC

Novi i aktivno promovirani “Hi-Res” kodek kompanije Sony, koji podržava brzine uzorkovanja do 96 kHz i 24-bitnu brzinu prijenosa, sa brzinom prijenosa do 990 kbps. Reklamira se kao audiofilski kodek, kao zamjena za postojeće Bluetooth kodeke. Ima funkciju adaptivnog podešavanja bitrate-a u zavisnosti od uslova radio emitovanja.

LDAC enkoder (libldac) je uključen u standardni Android paket, tako da je kodiranje podržano na bilo kojem Android pametnom telefonu počevši od OS verzije 8. Ne postoje slobodno dostupni softverski dekoderi, specifikacija kodeka nije dostupna široj javnosti, međutim, na prvi pogled na koder, unutrašnja struktura kodeka je slična ATRAC9 - Sonyjev kodek koji se koristi za PlayStation 4 i Vita: oba rade u frekvencijskom domenu, koriste modificiranu diskretnu kosinusnu transformaciju (MDCT) i kompresiju koristeći Huffman algoritam.

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

Frekvencija uzorkovanja
Bitrate
Podrška za kodiranje
Podrška za dekodiranje

44.1 - 96 kHz
303/606/909 kbit/s (za 44.1 i 88.2 kHz), 330/660/990 kbit/s (za 48 i 96 kHz)
Android 8 +
Neke Sony slušalice i neki uređaji drugih proizvođača (hardver)

Marketing LDAC-a kao Hi-Res kodeka šteti njegovoj tehničkoj komponenti: glupo je trošiti bitrate na prijenos frekvencija nečujnih ljudskom uhu i povećanje dubine bita, dok nije dovoljno prenositi CD-kvalitet (44.1/16) bez gubitka . Srećom, kodek ima dva načina rada: CD audio prijenos i Hi-Res audio prijenos. U prvom slučaju, samo 44.1 kHz/16 bita se prenosi putem zraka.

Budući da softverski LDAC dekoder nije besplatno dostupan, nemoguće je testirati kodek bez dodatnih uređaja koji dekodiraju LDAC. Prema rezultatima LDAC testa na DAC-u s njegovom podrškom, koji su inženjeri SoundGuys.com povezali preko digitalnog izlaza i snimili izlazni zvuk na test signale, LDAC 660 i 990 kbps u načinu CD-kvalitete pruža signal za- omjer šuma nešto bolji od onog kod aptX HD.

Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima
izvor: www.soundguys.com/ldac-ultimate-bluetooth-guide-20026

LDAC takođe podržava dinamičku brzinu prijenosa izvan utvrđenih profila - od 138 kbps do 990 kbps, ali koliko mogu reći, Android koristi samo standardizirane profile 303/606/909 i 330/660/990 kbps.

Ostali kodeci

Другие A2DP-кодеки не получили широкого распространения. Их поддержка либо практически полностью отсутствует, либо имеется только на определенных моделях наушников и смартфонов.
ATRAC kodek standardiziran u A2DP nikada nije korišten kao Bluetooth kodek čak ni od samih Sony, Samsung HD, Samsung Scalable i Samsung UHQ-BT kodeci imaju vrlo ograničenu podršku od uređaja za prijenos i prijem, a HWA LHDC je previše nov i podržava samo tri (?) uređaja.

Podrška kodecima za audio uređaje

Ne objavljuju svi proizvođači tačne informacije o kodecima koje podržavaju određene bežične slušalice, zvučnici, prijemnici ili predajnici. Ponekad se desi da je podrška za određeni kodek samo za prijenos, ali ne i za prijem (relevantno za kombinovane predajnike-prijemnike), iako proizvođač jednostavno deklarira "podršku", bez napomena (pretpostavljam da je odvojeno licenciranje kodera i dekodera nekih za to su krivi kodeci). U najjeftinijim uređajima možda uopće nećete pronaći deklariranu podršku za aptX.

Nažalost, sučelja većine operativnih sistema ne prikazuju nigdje korišteni kodek. Informacije o ovome dostupne su samo u Androidu, počevši od verzije 8, i macOS-u. Međutim, čak iu ovim operativnim sistemima biće prikazani samo oni kodeci koje podržavaju i telefon/računar i slušalice.

Kako možete saznati koje kodeke podržava vaš uređaj? Snimite i analizirajte dump prometa s A2DP parametrima pregovaranja!
To se može učiniti na Linuxu, macOS-u i Androidu. Na Linux-u možete koristiti Wireshark ili hcidump, na macOS-u možete koristiti Bluetooth Explorer, a na Androidu možete koristiti standardnu ​​Bluetooth HCI funkciju čuvanja dump-a, koja je dostupna u alatima za programere. Dobit ćete dump u btsnoop formatu, koji se može učitati u Wireshark analizator.
Obrati pažnju: ispravan dump se može dobiti samo povezivanjem sa vašeg telefona/računara na slušalice/zvučnike (ma koliko smiješno zvučalo)! Slušalice mogu samostalno uspostaviti vezu sa telefonom, u kom slučaju će od telefona tražiti listu kodeka, a ne obrnuto. Da biste osigurali da je ispravan dump snimljen, prvo raskinite uparivanje uređaja, a zatim uparite telefon sa slušalicama dok snimate dump.

Koristite sljedeći filter za prikaz da biste filtrirali nerelevantan promet:

btavdtp.signal_id

Kao rezultat, trebali biste vidjeti nešto slično ovome:
Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Možete kliknuti na svaku stavku u naredbi GetCapabilities da vidite detaljne karakteristike kodeka.
Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Wireshark ne zna sve identifikatore kodeka, tako da će neki kodeci morati da se dešifruju ručno, gledajući tabelu identifikatora ispod:

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

Da ne bih ručno analizirao dumpove, napravio sam servis koji će sve analizirati automatski: btcodecs.valdikss.org.ru

Poređenje kodeka. Koji je kodek bolji?

Svaki kodek ima svoje prednosti i nedostatke.
aptX i aptX HD koriste tvrdo kodirane profile koji se ne mogu promijeniti bez modifikacije kodera i dekodera. Ni proizvođač telefona ni proizvođač slušalica ne mogu promijeniti bitrate ili aptX faktore kodiranja. Vlasnik kodeka, Qualcomm, daje referentni koder u obliku biblioteke. Ove činjenice su snaga aptX-a - unaprijed znate kakav ćete kvalitet zvuka dobiti, bez ikakvih "ali".

SBC, nasuprot tome, ima mnogo konfigurabilnih parametara, dinamičku brzinu prijenosa (koder može smanjiti parametar bitpool-a ako su zračni valovi zauzeti) i nema tvrdo kodirane profile, već samo preporučeni "srednji kvalitet" i "visok kvalitet" koji su dodat u A2DP specifikaciju 2003. godine. "Visoka kvaliteta" više nije tako visoka prema današnjim standardima, a većina Bluetooth stekova ne dozvoljava vam da koristite parametre bolje od profila "visokog kvaliteta", iako za to nema tehničkih ograničenja.
Bluetooth SIG nema referentni SBC enkoder kao biblioteku, a proizvođači ga sami implementiraju.
Ovo su slabosti SBC-a - nikada nije jasno koji kvalitet zvuka očekivati ​​od određenog uređaja. SBC može proizvesti zvuk niskog i vrlo visokog kvaliteta, ali ovo drugo je nedostižno bez onemogućavanja ili zaobilaženja umjetnih ograničenja Bluetooth stekova.

Situacija s AAC-om je dvosmislena: s jedne strane, teoretski bi kodek trebao proizvoditi kvalitet koji se ne razlikuje od originala, ali u praksi, sudeći po testovima laboratorije SoundGuys na različitim Android uređajima, to nije potvrđeno. Najvjerovatnije, greška leži u hardverskim audio koderima niske kvalitete ugrađenim u različite telefonske čipsetove. Ima smisla koristiti AAC samo na Apple uređajima, a na Androidu ga ograničiti na aptX i LDAC.

Hardver koji podržava alternativne kodeke obično je višeg kvaliteta, jednostavno zato što za vrlo jeftine uređaje niske kvalitete nema smisla plaćati naknade za licenciranje za korištenje tih kodeka. Na mojim testovima, SBC zvuči jako dobro na kvalitetnoj opremi.

Napravio sam web servis koji kodira zvuk u SBC, aptX i aptX HD u realnom vremenu, direktno u pretraživaču. Pomoću njega možete testirati ove audio kodeke bez stvarnog prijenosa zvuka putem Bluetooth-a, na bilo kojim žičanim slušalicama, zvučnicima i vašoj omiljenoj muzici, a također možete promijeniti parametre kodiranja direktno tokom reprodukcije zvuka:
btcodecs.valdikss.org.ru/sbc-encoder
Servis koristi biblioteke kodiranja SBC iz BlueZ projekta i libopenaptx iz ffmpeg, koje se kompajliraju u WebAssembly i JavaScript iz C, putem emscriptena, za pokretanje u pretraživaču. Ko bi mogao sanjati o takvoj budućnosti!

Evo kako to izgleda:

Obratite pažnju kako se nivo šuma menja nakon 20 kHz za različite kodeke. Originalni MP3 fajl ne sadrži frekvencije veće od 20 kHz.

Pokušajte da promenite kodeke i vidite da li čujete razliku između originalnog, SBC 53 Joint Stereo (standardni i najčešći profil) i aptX/aptX HD.

Mogu čuti razliku između kodeka u slušalicama!

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

Ogromna većina Bluetooth audio čipseta koji se koriste u bežičnim prijemnim uređajima opremljena je digitalnim procesorom signala (DSP), koji implementira ekvilajzer, kompander, stereo ekspander i druge stvari dizajnirane za poboljšanje (ili promjenu) zvuka. Proizvođači Bluetooth opreme mogu konfigurirati DSP za svaki kodek posebno, a prilikom prebacivanja između kodeka, slušalac će misliti da čuje razliku u radu kodeka, dok u stvarnosti sluša različite DSP postavke.

Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima
DSP Kalimba audio procesni cjevovod u čipovima proizvođača CSR/Qualcomm

Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima
Aktivirajte različite DSP funkcije za svaki kodek i izlaze zasebno

Neki vrhunski uređaji dolaze sa softverom koji vam omogućava da prilagodite DSP postavke, ali većina jeftinijih slušalica ne radi, a korisnici ne mogu ručno isključiti naknadnu obradu zvuka.

Funkcionalne karakteristike uređaja

Moderna verzija A2DP standarda ima funkcija "apsolutne kontrole jačine zvuka". — kontrola jačine zvuka uređaja pomoću posebnih komandi AVRCP protokola, koji reguliše pojačanje izlaznog stepena, umesto da programski smanjuje jačinu zvuka audio toka. Ako kada promijenite jačinu zvuka na slušalicama, promjena se ne sinhronizuje sa jačinom zvuka na vašem telefonu, vaše slušalice ili telefon ne podržavaju ovu funkciju. U ovom slučaju, ima smisla uvijek slušati muziku sa maksimalnom jačinom na telefonu, podešavajući stvarnu jačinu pomoću tipki na slušalicama - u ovom slučaju će odnos signal/šum biti bolji i kvalitet zvuka trebalo bi biti viši.
U stvarnosti ima tužnih situacija. Na mojim RealForce OverDrive D1 slušalicama za SBC je uključen jak kompander, a povećanje jačine dovodi do povećanja nivoa tihih zvukova, dok se jačina glasnih zvukova ne mijenja (signal je komprimiran). Zbog toga morate podesiti jačinu zvuka na računaru otprilike na pola, u tom slučaju praktično nema efekta kompresije.
По моим наблюдениям, все наушники с дополнительными кодеками поддерживают функцию абсолютной регулировки громкости, видимо, это одно из требований для сертификации кодеков.

Neke slušalice podržavaju povezivanje dva uređaja u isto vrijeme. Ovo vam omogućava, na primjer, da slušate muziku sa svog računara i primate pozive sa svog telefona. Međutim, trebate biti svjesni da su u ovom načinu alternativni kodeci onemogućeni i da se koristi samo SBC.

AVDTP 1.3 Funkcija izvještavanja o kašnjenju omogućava slušalicama da saopšte kašnjenje uređaju za odašiljanje na kojem se zvuk stvarno reprodukuje. Ovo vam omogućava da prilagodite sinhronizaciju zvuka sa videom dok gledate video fajlove: ako postoje problemi sa radio prenosom, zvuk neće zaostajati za videom, već naprotiv, video plejer će usporiti video do audio i video se ponovo sinhronizuju.
Funkciju podržavaju mnoge slušalice, Android 9+ i Linux sa PulseAudio 12.0+. Nisam svjestan podrške za ovu funkciju na drugim platformama.

Dvosmjerna komunikacija putem Bluetooth-a. Prijenos glasa.

Za prenos glasa u Bluetooth-u koristi se Synchronous Connection Oriented (SCO) - sinhroni prenos sa preliminarnim dogovorom o vezi. Režim vam omogućava da prenosite zvuk i glas strogo po redu, sa simetričnim brzinama slanja i prijema, bez čekanja na potvrdu prijenosa i ponovnog slanja paketa. Ovo smanjuje ukupno kašnjenje audio prenosa preko radio kanala, ali nameće ozbiljna ograničenja na količinu podataka koji se prenose u jedinici vremena, i negativno utiče na kvalitet.
Kada se koristi ovaj način rada, i glas i zvuk se prenose u istom kvalitetu.
Nažalost, od 2019. godine kvalitet glasa preko Bluetooth-a je i dalje loš i nejasno je zašto Bluetooth SIG ne radi ništa po tom pitanju.

CVSD

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

Primjer snimka u ovom kodeku.

mSBC

Дополнительный кодек mSBC был стандартизирован в 2009 году, а в 2010 уже появились чипы, использующие его для передачи голоса. mSBC широко поддерживается различными устройствами.
Ovo nije nezavisni kodek, već običan SBC iz A2DP standarda, sa fiksnim profilom kodiranja: 16 kHz, mono, bitpool 26.

Primjer snimka u ovom kodeku.

Nije briljantno, ali mnogo bolje od CVSD-a, ali je i dalje neugodno koristiti za onlajn komunikaciju, posebno kada koristite slušalice za komunikaciju u igri - zvuk igre će se također prenositi brzinom uzorkovanja od 16 kHz.

Kompanija FastStreamCSR odlučila je razviti ideju korištenja SBC-a. Kako bi zaobišli ograničenja SCO protokola i koristili veće bitrate, CSR je krenuo drugim putem - uveli su podršku za dvosmjerni SBC audio u standard za jednosmjerni audio prijenos A2DP, standardizirali profile kodiranja i nazvali ga "FastStream".

FastStream prenosi stereo zvuk na 44.1 ili 48 kHz sa bitrateom od 212 kbps do zvučnika, a mono, 16 kHz, sa bitrateom od 72 kbps se koristi za prijenos zvuka iz mikrofona (nešto bolje od mSBC). Takvi parametri su mnogo prikladniji za komunikaciju u online igrama - zvuk igre i sagovornici će biti visokog kvaliteta.

Primjer snimka u ovom kodeku (+ zvuk iz mikrofona, isto kao mSBC).

Kompanija je smislila zanimljivu štaku, ali zbog činjenice da je u suprotnosti sa A2DP standardom, podržana je samo u nekim od predajnika kompanije (koji rade kao USB audio kartica, a ne kao Bluetooth uređaj), ali ne dobijaju podršku u Bluetooth snopovima, iako broj slušalica sa FastStream podrškom nije tako mali.

Trenutno je podrška za FastStream samo u OS-u kao zakrpa za Linux PulseAudio od programera Pali Rohár, koji nije uključen u glavnu granu programa.

aptX Niska latencija

Na vaše veliko iznenađenje, aptX Low Latency također podržava dvosmjerni zvuk, implementirajući isti princip kao FastStream.
Использовать эту особенность кодека не получится нигде — поддержки декодирования Low Latency нет ни в одной ОС и ни в одном известном мне Bluetooth-стеке.

Bluetooth 5, Classic i Low Energy

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

Postoje dva različita, nekompatibilna Bluetooth protokola: Bluetooth Classic i Bluetooth Low Energy (LE, također poznat kao Bluetooth Smart). Postoji i treći protokol, Bluetooth High Speed, ali nije rasprostranjen i ne koristi se u kućnim uređajima.

Počevši od Bluetooth 4.0, promjene u specifikaciji su se uglavnom odnosile na Bluetooth Low Energy, a klasična verzija je dobila samo manja poboljšanja.

Lista promjena između Bluetooth 4.2 i Bluetooth 5:

9 PROMJENA SA V4.2 NA 5.0

9.1 NOVE KARAKTERISTIKE

Several new features are introduced in the Bluetooth Core Specification 5.0 Release. The major areas of improvement are:
• Maska dostupnosti slota (SAM)
• 2 Msym/s PHY za LE
•LE Long Range
• Oglašavanje koje se ne može povezati sa visokim radnim ciklusom
• LE Advertising Extensions
• LE algoritam za odabir kanala #2
9.1.1 Funkcije dodane u CSA5 - Integrisano u v5.0
• Veća izlazna snaga

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

Samo jedna promjena je uticala na Classic verziju u okviru Bluetooth 5 specifikacije: dodali su podršku za Slot Availability Mask (SAM) tehnologiju, dizajniranu da poboljša razdvajanje radio emisija. Sve ostale promjene utječu samo na Bluetooth LE (i veću izlaznu snagu također).

sve Audio uređaji koriste samo Bluetooth Classic. Nemoguće je povezati slušalice i zvučnike putem Bluetooth Low Energy: ne postoji standard za prijenos zvuka pomoću LE. A2DP standard, koji se koristi za prijenos visokokvalitetnog zvuka, radi samo preko Bluetooth Classica, a u LE nema analognog.

Вывод — приобретать аудиоустройства с Bluetooth 5 только из-за новой версии протокола бессмысленно. Bluetooth 4.0/4.1/4.2 в контексте передачи аудио будет работать точно так же.
Ako se u najavi novih slušalica spominje udvostručeni radni domet i smanjena potrošnja energije zahvaljujući Bluetooth 5, onda treba da znate da one to same ili ne razumiju ili vas obmanjuju. Nije ni čudo, jer su čak i proizvođači Bluetooth čipova u svojim najavama zbunjeni oko razlika između nove verzije standarda, a neki Bluetooth 5 čipovi podržavaju petu verziju samo za LE, a koriste 4.2 za Classic.

Kašnjenje prijenosa zvuka

Količina kašnjenja (kašnjenja) u zvuku zavisi od mnogih faktora: veličine bafera u audio stogu, u Bluetooth stogu i u samom bežičnom uređaju za reprodukciju i algoritamskom kašnjenju kodeka.

Latencija jednostavnih kodeka poput SBC, aptX i aptX HD je vrlo mala, 3-6 ms, što se može zanemariti, ali složeni kodeci poput AAC i LDAC mogu uzrokovati primjetno kašnjenje. AAC algoritamska latencija za 44.1 kHz je 60 ms. LDAC - oko 30 ms (na osnovu grube analize izvornog koda. Možda grešim, ali ne mnogo.)

Rezultirajuća latencija uvelike ovisi o uređaju za reprodukciju, njegovom čipsetu i baferu. Tokom testova, dobio sam raspon od 150 do 250 ms na različitim uređajima (sa SBC kodekom). Ako pretpostavimo da uređaji koji podržavaju dodatne kodeke aptX, AAC i LDAC koriste komponente visokog kvaliteta i malu veličinu međuspremnika, dobijamo sljedeće tipične latencije:

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

Da vas podsjetim: aptX Low Latency nije podržan u operativnim sistemima, zbog čega se manja latencija može postići samo kombinacijom predajnik+prijemnik ili predajnik+slušalice/zvučnik, a svi uređaji moraju podržavati ovaj kodek.

Problemi s Bluetooth uređajem, certifikatom i logotipom

Kako razlikovati visokokvalitetni audio uređaj od jeftinog plovila? Po izgledu, pre svega!

Za jeftine kineske slušalice, zvučnike i prijemnike:

  1. Na kutiji i uređaju nedostaje riječ “Bluetooth”, najčešće se koriste “Wireless” i “BT”
  2. Nedostaje Bluetooth logo Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima na kutiji ili uređaju
  3. Nema plavog trepćućeg LED-a

Nedostatak ovih elemenata ukazuje da uređaj nije certificiran, što znači da je potencijalno loše kvalitete i problematičan. Na primjer, Bluedio slušalice nisu Bluetooth certificirane i nisu u potpunosti usklađene sa A2DP specifikacijom. Ne bi prošli certifikaciju.

Razmotrimo nekoliko uređaja i kutija od njih:
Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Audio preko Bluetooth-a: što više detalja o profilima, kodecima i uređajima

Это всё — несертифицированные устройства. В инструкции может быть логотип и название технологии Bluetooth, но самое главное — чтобы они были на коробке и/или самом устройстве.

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

zaključak

Može li Bluetooth u potpunosti zamijeniti žičane slušalice i slušalice? Može, ali po cijenu lošeg kvaliteta poziva, povećane latencije zvuka koja može biti neugodna u igrama i mnoštva vlasničkih kodeka koji zahtijevaju licencne naknade i povećavaju konačnu cijenu pametnih telefona i slušalica.

Marketing alternativnih kodeka je vrlo jak: aptX i LDAC su predstavljeni kao dugo očekivana zamjena za „zastarjeli i loši“ SBC, koji nije ni približno tako loš kako ljudi misle da jeste.

Kako se pokazalo, umjetna ograničenja Bluetooth stekova na SBC bitrate mogu se zaobići, tako da SBC neće biti inferioran u odnosu na aptX HD. Preuzeo sam inicijativu u svoje ruke i napravio zakrpu za LineageOS firmware: Modifikacija Bluetooth steka radi poboljšanja zvuka na slušalicama bez AAC, aptX i LDAC kodeka

Više informacija možete pronaći na web stranicama Sound Guys и SoundExpert.

Bonus: SBC referentni enkoder, A2DP bitstream informacije i test fajlovi. Этот файл раньше был выложен на сайте Bluetooth публично, но теперь он доступен только для вступивших в Bluetooth SIG.

izvor: www.habr.com

Dodajte komentar