Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

A 3,5 mm audio jack nélküli okostelefonok tömeges megjelenésével a vezeték nélküli Bluetooth fejhallgatók sokak számára a zenehallgatás és a headsettel való kommunikáció fő eszközévé váltak.
A vezeték nélküli eszközök gyártói nem mindig írják le részletesen a termék specifikációját, és az interneten található Bluetooth audio cikkek ellentmondásosak, helyenként helytelenek, nem tárgyalják az összes jellemzőt, és gyakran másolják ugyanazt a valóságnak nem megfelelő információt.
Próbáljuk megérteni a Bluetooth protokollt, az operációs rendszerek Bluetooth veremének lehetőségeit, a fejhallgatókat és hangszórókat, a zene és a beszéd számára készült Bluetooth kodekeket, kiderítjük, mi befolyásolja a továbbított hang minőségét és késlekedését, megtanulunk információt gyűjteni és dekódolni a támogatott kodekekről és egyéb eszközlehetőségekről.

Röviden összefoglalva:

  • Az SBC egy normál kodek.
  • A fejhallgatóknak van saját EQ-juk és utófeldolgozásuk minden kodekhez külön-külön.
  • Az aptX nem olyan jó, mint ahogy a hirdetések mondják.
  • Az LDAC egy marketing átverés.
  • A beszélgetési mód hangminősége még mindig alacsony.
  • A böngészőbe integrálhatók audioenkóderek C nyelven, WebAssembly-be való fordítással az emscripten keresztül, és nem fognak különösebben lelassítani.

Zene Bluetooth-on keresztül.

A Bluetooth funkcionális összetevőit profilok határozzák meg – a konkrét funkciók specifikációi. A Bluetooth zeneszállítás az A2DP szabványos, nagyfidelitású, egyirányú audiotranszfer profil használatával történik. Az A2DP szabványt 2003-ban fogadták el, és azóta lényegesen nem változott.
A profil keretein belül 1 kötelező, alacsony számítási bonyolultsággal bíró SBC kodek van szabványosítva, amely kifejezetten a Bluetooth számára készült, és 3 további. Továbbá megengedett saját megvalósítású, nem dokumentált kodekek használata is.

2019 júniusában vagyunk. az xkcd képregényben. 14 A2DP-kodekkel:

  • SBC ← szabványosítva az A2DP-ben, minden eszköz támogatja.
  • MPEG-1/2 Layer 1/2/3 ← az A2DP-ben szabványosított: közismert. MP3, amelyet digitális TV-ben használnak. MP2, és ismeretlen. MP1
  • MPEG-2/4 AAC ← az A2DP-ben szabványosított.
  • ATRAC ← régi kodek a Sony-tól, az A2DP-ben szabványosítva.
  • LDAC ← új kodek a Sony-tól.
  • aptX ← 1988-ból származó kodek.
  • aptX HD ← ugyanaz, mint az aptX, csak más kódolási paraméterekkel.
  • aptX Low Latency ← teljesen más kodek, nincs szoftveres megvalósítása.
  • aptX Adaptive ← még egy kodek a Qualcomntól.
  • FastStream ← álkodek, a SBC kétirányú módosítása.
  • HWA LHDC ← új kodek a Huaweitől
  • Samsung HD ← 2 eszköz által támogatott
  • Samsung Skálázható ← 2 eszköz által támogatott
  • Samsung UHQ-BT ← 3 eszköz által támogatott

Miért is szükségesek a kodekek, kérdezheti, amikor a Bluetooth EDR-t kínál, ami 2 és 3 Mbit/s sebességgel képes adatokat továbbítani, míg a tömörítetlen, kétcsatornás, 16-bites PCM-nek elegendő 1,4 Mbit/s?

Adatok átvitele Bluetoothon keresztül

A Bluetoothban kétféle adatátvitel létezik: Asynchronous Connection Less (ACL) az aszinkron átvitelhez, amely nem igényel kapcsolatfelvételt, és Synchronous Connection Oriented (SCO), ami szinkron átvitelre szolgál, előzetes kapcsolatmegállapodással.
Az átvitelt időszakos felosztás és csatornaválasztás alapján végzik minden egyes csomag esetén (Frequency-Hop/Time-Division-Duplex, FH/TDD), amihez az időt 625 mikroszekundumos intervallumokra, úgynevezett slotokra osztják. Az egyik eszköz páros slotokban, míg a másik páratlan slotokban végzi az átviteleket. Az átvitt csomag 1, 3 vagy 5 slotot foglalhat el az adatok méretétől és a besorolt átviteli típustól függően; ebben az esetben egy eszköz az összes slotban végzi az átvitelét az átadás befejezéséig. Egy másodperc alatt összesen akár 1600 csomagot is lehet küldeni és fogadni, ha mindegyik 1 slotot foglal el, és mindkét eszköz folyamatosan továbbít vagy fogad valamit.

A 2 és 3 Mbit/s sebesség, amelyet az EDR esetében találhatunk a Bluetooth hirdetéseiben és weboldalán, az összes adat maximális csatornaátviteli sebessége (beleértve az összes protokoll technikai fejlécét, amelybe az adatokat be kell ágyazni) egyidejűleg, mindkét irányban. A valós adatátviteli sebesség jelentősen eltérhet.

Zeneátvitelhez aszinkron módszert használnak, szinte mindig 2-DH5 és 3-DH5 típusú csomagokkal, amelyek maximális adatátvitelt nyújtanak EDR 2 Mbit/s és 3 Mbit/s sebességen, és 5 slotot foglalnak el az időben megosztott tartományban.

Ábra a 5 slotot használó előadásról egy eszköz által és 1 slot egy másik (DH5/DH1):
Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

A időbeli spektrumelmélet miatt 625 mikroszekundumos időrészt kell várnunk a csomag átküldése után, ha a második eszköz nem küld semmit, vagy csak kis csomagot küld, és hosszabb időt, ha a második eszköz nagyobb csomagokat továbbít. Ha a telefonhoz több eszköz van csatlakoztatva (például fejhallgató, óra és fitnesz karkötő), akkor az átviteli idő oszlik meg közöttük.

Az audio L2CAP és AVDTP speciális szállítási protokollokba való beágyazásának szükségessége 16 bájt teret vesz el a lehetséges maximális átküldhető hasznos audio terheléstől.

Csomag típusa
Időrészek száma
Max. bájtok száma a csomagban
Max. hasznos terhelés A2DP-ben bájtban
Max. hasznos terhelés A2DP bitrátája

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
A 1414 és 1429 kbit/s pontosan nem elegendő a tömörítetlen hang valós körülmények közötti átvitelére, a 2.4 GHz-es zavaros spektrum és a vezérlő adatok átvitele miatt. Az EDR 3 Mbit/s igényli a teljesítményt és a zavarokat, ezért még a 3-DH5 üzemmódban sem lehetséges kényelmes PCM átvitel, folyamatosan rövid megszakítások fognak előfordulni, és minden csak néhány méteres távolságra fog működni.

A gyakorlatban még a 990 kbit/s audioáram (LDAC 990 kbit/s) is nehezen átküldhető.
Térjünk vissza a kodekekhez.

Kodek, amely minden A2DP standardot támogató eszköznél kötelező. Egyidőben a legjobb és legrosszabb kodek.

SBC

Mintavételezési frekvencia

Bitráta
Bitszám
Támogatott kódolás
Támogatott dekódolás
16, 32, 44.1, 48 kHz

16 bit
10-1500 kbit/s
Minden eszköznél
Az SBC egy egyszerű és számításilag gyors kodek, primitív pszichoakusztikus modellel (csak a csendes hangok maszkolása alkalmazott), amely adaptív impulzus-kódolt modukációt (APCM) használ.
Az SBC egy egyszerű és számításilag gyors kodek, primitív pszichoakusztikus modellel (csak a csendes hangok maszkolása alkalmazott), amely adaptív impulzus-kódolt modukációt (APCM) használ.

Az A2DP specifikációja két profilt javasol használatra: Közepes minőség és Magas minőség.
A kodek számos beállítással rendelkezik, amelyek lehetővé teszik az algoritmikus késleltetés, a blokkban lévő minták száma, a bitek elosztásának algoritmusának kezelését, de szinte mindenhol ugyanazok a specifikációban ajánlott paraméterek használatosak: Joint Stereo, 8 frekvenciasáv, 16 blokk az audio keretben, a hangerejügyi elosztás módja.
Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

A kodek sok beállítással rendelkezik, amelyek lehetővé teszik az algoritmus késleltetés, a blokkok számának, a bitelosztás algoritmusának kezelését, de szinte mindenhol ugyanazokat a specifikációban javasolt paramétereket használják: Joint Stereo, 8 frekvenciasáv, 16 blokk az audio keretben, a bitelosztás módszere Loudness.
Az SBC támogatja a Bitpool paraméter dinamikus módosítását, amely közvetlen hatással van a bitrátra. Ha a rádiófrekvencia telített, a csomagok elvesznek, vagy az eszközök nagy távolságra vannak, az audioforrás csökkentheti a Bitpoolt, amíg a kapcsolat nem normalizálódik.

A legtöbb fejhallgató gyártó a Bitpool paraméter maximális értékét 53-ra állítja, ami korlátozza a bitráta 328 kilobitra másodpercenként a javasolt profil használata mellett.
Még akkor is, ha a fejhallgató gyártója a Bitpool maximális értékét 53 fölé állította (ilyen modellek például: Beats Solo³, JBL Everest Elite 750NC, Apple AirPods, valamint néhány vevőegységnél és autós fejegységnél is előfordul), a legtöbb operációs rendszer nem engedi meg a megnövelt bitráták használatát a Bluetooth-stackekben beállított belső korlát miatt.
Ezenkívül egyes gyártók alacsony maximális Bitpool értéket állítanak be bizonyos eszközökhöz. Például a Bluedio T esetében ez 39, a Samsung Gear IconX esetében pedig 37, ami gyenge hangminőséget eredményez.

A Bluetooth-stackek fejlesztőitől származó mesterséges korlátozások valószínűleg a nagy Bitpool értékek vagy a szokatlan profilok kompatibilitási problémáiból adódtak, még akkor is, ha jelezték azok támogatását, és a tanúsítás során nem végeztek elegendő tesztet. A Bluetooth-stackek alkotói számára könnyebb volt megfelelni a javasolt profillal való összhangnak, mintsem hibás eszközök adatbázisát létrehozni (bár ezt jelenleg más hibásan működő funkciók esetén megteszik).

Az SBC dinamikusan oszt ki kvantálószámokat a frekvenciasávok számára, az alsóktól a felsőkig működik, különböző súlyozási tényezőkkel. Ha az összes bitráta az alsó és középfrekvenciákra lett felhasználva, a felső frekvenciák "levágódnak" (helyettük csend lesz).

Példa SBC 328 kbit/s. Fent az eredeti, lent az SBC, időnként átjárás zajlik a sávok között. A videofájl audiojához veszteségmentes FLAC tömörítési kodeket használnak. A FLAC mp4 konténerben való használatát hivatalosan nem szabványosították, így nem biztos, hogy a böngészője le tudja játszani, de működnie kell a legújabb asztali Chrome és Firefox verziókban. Ha nincsen hang, letöltheti a fájlt, és megnyithatja egy teljes képernyős videolejátszóban.
ZZ Top — Sharp Dressed Man

A spektrumogramon látható a váltás pillanata: az SBC időről időre elnyeli a csendes hangokat 17,5 kHz felett, és egyáltalán nem hoz létre biteket a 20 kHz feletti sávra. A teljes spektrumogram a kattintással elérhető (1,7 MB).
Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

Nem hallom a különbséget az eredeti és az SBC között ezen a számon.

Vegyünk valami újat, és modellezzük azt az audiofájlt, amely a Samsung Gear IconX fülhallgató használatával keletkezne Bitpool 37-nél (felül - a bemeneti jel, alul - SBC 239 kbit/s, FLAC hang).
Mindless Self Indulgence - Witness

Hallom a sistergést, csökkent stereo effektust, és hogy a vokál magas frekvenciáinál kellemetlen „koccanást” produkál.

Bár az SBC egy nagyon rugalmas kodek, alacsony késleltetéseket tud biztosítani, kiváló hangminőséget ad magas bitráták mellett (452+ kbit/s), és elfogadható minőséget a legtöbb ember számára a standard High Quality (328 kbit/s) mellett, az A2DP szabvány nem ad meg rögzített profilokat (csak irányelveket), a stack fejlesztők mesterséges korlátozásokat állítottak be a Bitpool-ra, a továbbított audio paraméterei nem jelennek meg a felhasználói felületen, a fülhallgató gyártói pedig szabadon állíthatják be a beállításaikat, és soha nem tüntetik fel a Bitpool értéket a termék technikai specifikációjában, a kodek a gyenge hangminőségéről ismert, ami nem a kodek valódi problémája.
A Bitpool paraméter közvetlenül befolyásolja a bitrátát csupán egy profilon belül. Az azonos Bitpool 53-as érték a High Quality ajánlott profilnál 328 kbit/s, illetve Dual Channel és 4 frekvenciasáv mellett 1212 kbit/s bitrátát is nyújthat, így az operációs rendszerek fejlesztői a Bitpool korlátozása mellett további korlátozásokat is bevezetnek a Bitrate-re. Úgy látom, hogy ez a helyzet az A2DP szabvány hiányosságai miatt alakult ki: a bitrátát kellett volna egyeztetni, nem a Bitpool-t.

A SBC képességeinek támogatása különböző operációs rendszerekben:

Windows OS
Támogatott mintavételezési frekvenciák
Max. Bitpool korlátozás
Max. Bitrate korlátozás
Tipikus Bitrate
Dinamikus Bitpool beállítás

Windows 10
44,1 kHz
53
512 kbit/s
328 kbit/s
✓*

Linux (BlueZ + PulseAudio)
16 bit
64 (belépő kapcsolódásnál), 53 (kimenőnél)
Nincs korlátozás
328 kbit/s
✓*

macOS High Sierra
44,1 kHz
64, alapértelmezett 53***
Ismeretlen
328 kbit/s
✗

Android 4.4-9
44.1/48 kHz**
53
328 kbit/s
328 kbit/s
✗

Android 4.1-4.3.1
44.1, 48 kHz**
53
229 kbit/s
229 kbit/s
✗

Blackberry OS 10
48 kHz
53
Nincs korlátozás
328 kbit/s
✗

* A Bitpool csak csökken, de nem növekszik automatikusan a továbbítási feltételek javulásával. A Bitpool visszaállításához meg kell állítani a lejátszást, várni pár másodpercet, majd újra indítani az audiót.
** Az alapértelmezett érték a Fordító szoftver összeállítása során megadott stack beállításoktól függ. Android 8/8.1 esetén a frekvencia csak 44,1 kHz vagy 48 kHz, a fordító összeállítási beállításaitól függően, más verziókban a 44,1 kHz és 48 kHz egyszerre támogatott.
*** A Bitpool értéke emelhető a Bluetooth Explorer programban.

aptX és aptX HD

Az aptX egy egyszerű és számításilag gyors kodek, psychoakusztika nélkül, amely adaptív differenciális impulskód-modulációt használ (ADPCM). Körülbelül 1988 körül jelent meg (a szabadalom benyújtásának dátuma szabadalom dátuma 1988 februárjára nyúlik vissza), a Bluetooth előtt elsősorban professzionális vezeték nélküli audio berendezésekben használták. Jelenleg a Qualcomm tulajdonában van, és licencelést és licencdíjat igényel. 2014-es állapot szerint: 6000 dollár egyszeri díj és körülbelül 1 dollár minden eszköz után, 10000 eszközre vonatkozó tételben (forrás, 16. oldal).
Az aptX és az aptX HD ugyanaz a kodek, csak különböző kódolási profilokkal.

A kodeknek csak egy paramétere van - a mintavételezési frekvencia választása. Igazából a csatornák számának/módjának kiválasztása is van, de az általam ismert összes eszközben (70+ darab) kizárólag a Stereo támogatott.

Kodek
Bitráta
Bitszám
Támogatott kódolás
Támogatott dekódolás
16, 32, 44.1, 48 kHz

aptX
16 bit
10-1500 kbit/s
128 / 256 / 352 / 384 kbit/s (a mintavételezési frekvenciától függően)
Windows 10 (asztali és mobil), macOS, Android 4.4+/7*, Blackberry OS 10
Széleskörű audioeszközökkel (hardveresen)

* A 7-es verziókhoz a Bluetooth-stack módosítása szükséges. A kodek csak akkor támogatott, ha az Android-eszköz gyártója engedélyezte a kodek használatát a Qualcomm-tól (ha az operációs rendszer tartalmaz kódolási könyvtárakat).

Az aptX az audiót 4 frekvenciasávra osztja, és ezeket mindig ugyanazzal a bites számmal kvantálja: 8 bit a 0-5.5 kHz, 4 bit az 5.5-11 kHz, 2 bit az 11-16.5 kHz, 2 bit a 16.5-22 kHz (számok 44.1 kHz mintavételezési frekvenciára vonatkoznak).

aptX audió példa (felül - eredeti jel, alul - aptX, csak a bal csatornák spektrogramjai, hang FLAC-ban):

A magas frekvenciák egy kicsit pirosabbá váltak, de a különbségek nem hallhatók.

A rögzített biteloszlás miatt a kodek nem tudja "áthelyezni a biteket" azokra a frekvenciákra, amelyek a legjobban igénylik őket. Az SBC-től eltérően az aptX nem "vágja le" a frekvenciákat, hanem kvantálási zajt ad hozzá, csökkentve ezzel a hang dinamikai tartományát.

Nem szabad azt hinni, hogy például 2 bit használata a sávban csökkenti a dinamikai tartományt 12 dB-re: az ADPCM akár 96 dB dinamikai tartományt is lehetővé tesz, még 2 bit kvantálás mellett is, de csak egy meghatározott jel esetén.
Az ADPCM a jelenlegi és a következő mintavétel közötti számérték-különbséget tárolja, nem pedig az abszolút értéket, ahogy a PCM-ben. Ez lehetővé teszi, hogy csökkentse a tároláshoz szükséges bitek számát, hogy hasonló (veszteségmentes) vagy gyakorlatilag hasonló (relatív kis kerekítési hibával) információt tároljon. A kerekítési hibák csökkentésére együttható-táblázatokat használnak.
A kodek létrehozásakor a szerzők az ADPCM együtthatóit zenei audi fájlok sorozatán számították ki. Minél közelebb áll a hangjel a zeneszámokhoz, amelyeken a táblázatokat alapul vették, annál kevesebb kvantálási hibát (zajt) generál az aptX.

Ennek következtében a szintetikus tesztek mindig rosszabb eredményeket adnak, mint a zene. Készítettem egy speciális szintetikus példát, amelyen az aptX gyenge teljesítményt mutat — 12,4 kHz frekvenciájú szinuszhullám (felül — az eredeti jel, alul — aptX. A hang FLAC. Csökkentse a hangerőt!):

Spektrum grafikon:
Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

A zajok éles hallatszanak.

Ha azonban egy csendesebb szinuszjelet generálunk, hogy halkabb legyen, a zajok is halkabbá válnak, ami széles dinamikai tartományra utal:

Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

Ahhoz, hogy halljuk a különbséget az eredeti zenei szám és a tömörített között, egyiket a jelek közül meg lehet fordítani, és csatornánként össze lehet adni a számokat. Ez a megközelítés általában nem helyes, és nem adna érdemi eredményt bonyolultabb kodekeknél, de az ADPCM számára teljesen megfelelő.
A különbség az eredeti és az aptX között
A jelek négyzetes eltérésének átlaga -37,4 dB szinten van, ami nem sok egy ilyen tömörített zene esetében.

aptX HD

Az aptX HD nem egy önálló kodek – ez az aptX kodek továbbfejlesztett kódolási profilja. A változások a frekvenciatartományok kódolásához rendelt bitek számát érintették: 10 bit 0-5.5 kHz-ig, 6 bit 5.5-11 kHz-ig, 4 bit 11-16.5 kHz-ig, 4 bit 16.5-22 kHz-ig (a számok 44.1 kHz-re vonatkoznak).

Kodek
Bitráta
Bitszám
Támogatott kódolás
Támogatott dekódolás
16, 32, 44.1, 48 kHz

aptX HD
16 bit
24 bit
192 / 384 / 529 / 576 kbit/s (a mintavételezési frekvenciától függően)
Android 8+*
Néhány audioeszközzel (hardveresen)

* A 7-es verziókhoz a Bluetooth-stack módosítása szükséges. A kodek csak akkor támogatott, ha az Android-eszköz gyártója engedélyezte a kodek használatát a Qualcomm-tól (ha az operációs rendszer tartalmaz kódolási könyvtárakat).

Ritkábban elterjedt, mint az aptX: láthatóan külön licencelést igényel a Qualcomma-tól, és külön licencdíjakat.

Ismételjük meg a példát egy 12.4 kHz-es szinuszhullámmal:
Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

Sokkal jobb, mint az aptX, de még mindig zajos.

aptX Low Latency

A Qualcomm kodekje, amelynek nem sok köze van a hagyományos aptX és aptX HD verziókhoz, források szerint, akik részt vettek a fejlesztésében. Interaktív, alacsony késleltetésű audioátvitelre tervezett (filmek, játékok), ahol a hang késleltetését nem lehet szoftveresen beállítani. Ismert szoftveres encoder és decoder megoldások nem állnak rendelkezésre, támogatást kizárólag adóvevők, vevők, fülhallgatók és hangszórók adnak, de nem okostelefonok és számítógépek.

Bitráta
Támogatott kódolás
Támogatott dekódolás
16, 32, 44.1, 48 kHz

44,1 kHz
276/420 kbit/s
Néhány adóvevővel (hardveresen)
Néhány audioeszközzel (hardveresen)

AAC

Az AAC, vagyis Advanced Audio Coding – számítási szempontból összetett kodek, komoly pszichoakusztikai modellel. Széles körben elterjedt az internetes audio számára, a MP3 után a második legnépszerűbb. Licenceljárást és licencdíjat igényel: egyszeri $15000 (vagy $1000 olyan cégeknek, amelyek kevesebb mint 15 alkalmazottal rendelkeznek) + $0.98 az első 500000 eszközért (forrás).
A kodek a MPEG-2 és MPEG-4 specifikációk keretében szabványosított, és a gyakori tévhitekkel ellentétben nem tartozik az Apple-hez.

Bitráta
Támogatott kódolás
Támogatott dekódolás
16, 32, 44.1, 48 kHz

8 – 96 kHz
8 – 576 kbit/s (sztereóra), 256 – 320 kbit/s (tipikus Bluetooth esetén)
macOS, Android 7+*, iOS
Széleskörű audioeszközökkel (hardveresen)

* csak azokban az eszközökben, amelyek gyártói licencdíjat fizettek

Az iOS és macOS a most elérhető legjobb Apple AAC kódolót használja, amely a lehető legmagasabb audio minőséget biztosít. Az Androidon a második legjobb kódolót, a Fraunhofer FDK AAC-t használják, de a platformba beépített különböző hardveres kódolók is alkalmazhatók, amelyek kódolási minősége ismeretlen. A legfrissebb SoundGuys weboldalon végzett tesztek szerint, az AAC kódolás minősége különböző Android telefonokon erősen eltérő:
Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

A legtöbb vezeték nélküli audióeszköz esetében az AAC maximális bitrátája 320 kbit/s, egyesek csak 256 kbit/s-t támogatnak. A többi bitráta rendkívül ritka.
Az AAC kiváló minőséget biztosít 320 és 256 kbit/s bitrátán, de hajlamos a már tömörített tartalom sorozatos kódolásának veszteségeire., azonban nehéz bármilyen különbséget észlelni az eredetihez képest iOS-en 256 kbit/s bitrátán, még több sorozatos kódolás esetén is; egyetlen kódolás, például MP3 320 kbit/s-ből AAC 256 kbit/s-re történő tömörítésekor a veszteségeket figyelmen kívül lehet hagyni.
Más Bluetooth kodekekhez hasonlóan bármilyen zene először dekódolásra kerül, majd a kodek újra kódolja. Amikor AAC formátumban hallgatunk zenét, először az operációs rendszer eszközeivel dekódolják, majd újra AAC-ba kódolják a Bluetooth-on való továbbításhoz. Ez szükséges több audiófolyam, például zene és új üzenetértesítés keveréséhez. Az iOS sem kivétel. Az interneten sokan állítják, hogy az iOS-en az AAC formátumú zene nem transzkódolódik Bluetooth-on keresztül, ami nem igaz.

MP1/2/3

A MPEG-1/2 Part 3 kodekfamília magában foglalja a jól ismert és széles körben használt MP3-at, a kevésbé elterjedt MP2-t (főként digitális TV-ben és rádióban használják), és a teljesen ismeretlen MP1-et.

A régi MP1 és MP2 kodekek teljesen elavultak: nem találtam egyetlen fejhallgatót és Bluetooth-stackot, amely képes lenne ezeket kódolni vagy dekódolni.
Az MP3 dekódolása néhány fejhallgatóval támogatott, de a kódolással egyetlen modern operációs rendszer stack sem tud megbirkózni. Úgy tűnik, hogy a Windows rendszerhez készült harmadik féltől származó BlueSoleil stack képes az MP3-ba kódolásra, ha a konfigurációs fájlt manuálisan módosítják, de a telepítése rendszerleállást okoz a Windows 10-en. A következtetés: a kodek Bluetooth audióhoz gyakorlatilag használhatatlan.
Régen, 2006-2008 között, mielőtt az A2DP szabvány elterjedt volna az eszközökben, az emberek MP3 zenét hallgattak a Nokia BH-501 fülhallgatón az MSI BluePlayer programon keresztül, amely a Symbian és a Windows Mobile rendszerhez volt elérhető. Akkoriban a okostelefonok operációs rendszerének architektúrája lehetővé tette, hogy hozzáférjenek sok alacsony szintű funkcióhoz, és Windows Mobile-on akár harmadik féltől származó Bluetooth stackek is telepíthetők voltak.

Az MP3 kodek utolsó szabadalma lejárt, a kodek használata 2017. április 23. óta nem igényel licencdíjat.

Ha az említett referenciákban szereplő leghosszabb ideig fennálló szabadalmat tekintjük mércének, akkor az MP3 technológia 2017. április 16-án szabadalmi díjmentessé vált az Egyesült Államokban, amikor a Technicolor által birtokolt és kezelt 6,009,399 sz. amerikai szabadalom lejárt.

Forrás: www.iis.fraunhofer.de/en/ff/amm/prod/audiocodec/audiocodecs/mp3.html

Bitráta
Támogatott kódolás
Támogatott dekódolás
16, 32, 44.1, 48 kHz

16 — 48 kHz
8 — 320 kbit/s
Sehol nem támogatott
Néhány audioeszközzel (hardveresen)

LDAC

A Sony új és aktívan népszerűsített „Hi-Res” kodekje, amely 96 kHz-es mintavételezési frekvenciáig és 24 bites felbontásig terjed, maximum 990 kbit/s bitrátával. Audiophile kodekként hirdetik, mint a meglévő Bluetooth kodekek helyettesítőjét. Bitráta-adaptív beállítást kínál a rádióamatőr feltételek szerint.

LDAC encoder (libldac) az Android standard telepítésének része, így a kódolás bármilyen Android okostelefonon támogatott, kezdve a 8. verziótól. Szabadon elérhető szoftveres dekóderek nincsenek, a kodek specifikációja pedig a széles nyilvánosság számára nem elérhető, azonban az encoder első pillantásra az alábbihoz hasonló belső felépítéssel rendelkezik: ATRAC9 — Sony kodek, amelyet a PlayStation 4 és Vita használ: mindkettő frekvenciasávban működik, módosított diszkrét koszinusz transzformációt (MDCT) és Huffman-algoritmust használ a tömörítéshez.

Az LDAC támogatás szinte kizárólag a Sony fülhallgatóknál található. LDAC dekódolásának lehetősége néha más gyártók fülhallgatóin és DAC-ain is előfordul, de nagyon ritkán.

Bitráta
Támogatott kódolás
Támogatott dekódolás
16, 32, 44.1, 48 kHz

44.1 — 96 kHz
303/606/909 kbit/s (44.1 és 88.2 kHz esetén), 330/660/990 kbit/s (48 és 96 kHz esetén)
Android 8+
Néhány Sony fülhallgató és néhány más gyártó eszköz (hardveresen)

Az LDAC Hi-Res kodekként történő marketingje káros hatással van a technikai összetevőjára: butaság bitrátát pazarolni olyan frekvenciák átvitelére, amelyeket az emberi fül nem hall, és a magasabb felbontásra, ha CD-minőség (44.1/16) veszteségmentes átviteléhez sem elegendő. Szerencsére a kodeknek két üzemmódja van: CD-audio átvitel és Hi-Res-audio átvitel. Az első esetben csak 44.1 kHz/16 bit kerül át a levegőn.

Mivel az LDAC szoftveres dekóder nem érhető el szabadon, a kodek tesztelése további LDAC dekódoló eszközök nélkül lehetetlen. A SoundGuys.com webhely mérnökei tesztjei alapján, akik az LDAC-t támogató DAC-ot csatlakoztattak digitális kimeneten keresztül, és felvették a hangot tesztjeik során, az LDAC 660 és 990 kbit/s CD-minőség módban kicsit jobb jel/zaj arányt biztosít, mint az aptX HD.

Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben
Forrás: www.soundguys.com/ldac-ultimate-bluetooth-guide-20026

Az LDAC dinamikus bitrátát is támogat a beállított profilokon kívül — 138 kbps-től 990 kbps-ig, de úgy tűnik, hogy az Androidon csak a standardizált 303/606/909 és 330/660/990 kbps profilokat használják.

Egyéb kodekek

Más A2DP-kodekek nem terjedtek el széles körben. Támogatásuk vagy gyakorlatilag teljesen hiányzik, vagy csak bizonyos fülhallgató- és okostelefonmodelleken érhető el.
Az A2DP-ben standardizált ATRAC kodeket még a Sony sem használta Bluetooth-kodekként, a Samsung HD, Samsung Scalable és Samsung UHQ-BT kodekek pedig nagyon korlátozott támogatással bírnak a küldő és fogadó eszközök részéről, míg a HWA LHDC túl új, és mindössze három(?) eszköz támogatja.

Kodekek támogatása az audióeszközök által

Nem minden gyártó közöl pontos információt a kodekek támogatásáról, amelyeket különböző vezeték nélküli fülhallgatók, hangszórók, vevők vagy adók kínálnak. Néha előfordul, hogy egy adott kodek támogatása csak az adásra vonatkozik, de nem a vételre (ez releváns a kombinált adó-vevőkkel kapcsolatban), habár a gyártó egyszerűen a 'támogatást' jelzi, megjegyzések nélkül (feltételezem, hogy ennek oka egyes kodekek kódoló és dekódoló licenceinek különbsége). A legolcsóbb eszközökben előfordulhat, hogy a megadott aptX támogatás egyáltalán nem észlelhető.

Sajnos, a legtöbb operációs rendszer interfészein sehol sem jelenik meg a használt kodek. Erről csak az Androidban értesülhetünk, kezdve a 8. verziótól, illetve a macOS-ban. Azonban még ezekben az operációs rendszerekben is csak azok a kodekek jelennek meg, amelyeket egyaránt támogat a telefon/számítógép és a fülhallgató.

Hogyan tudjuk meg, hogy a készülék milyen kodekeket támogat? Rögzíteni és elemezni kell az A2DP tárgyalások forgalmát!
Ezt Linuxban, macOS-ben és Androidon lehet megtenni. Linuxban a Wireshark vagy a hcidump használható, macOS-ben a Bluetooth Explorer, míg Androidon a Bluetooth HCI-dump mentési lehetősége, amely a fejlesztői eszközökben érhető el. Egy btsnoop formátumú dumpot fog kapni, amelyet feltölthet a Wireshark elemzőbe.
Figyeljünk arra, hogy: helyes dump-t csak akkor kaphatunk, ha a telefont/számítógépet csatlakoztatjuk a fejhallgatóhoz/speakershez (bármennyire is furcsán hangzik)! A fejhallgatók saját maguk is létrehozhatnak kapcsolatot a telefonnal, és ilyen esetben a telefon kérni fogja a kodekek listáját, nem pedig fordítva. A pontos dump rögzítése érdekében először szüntesse meg a párosítást az eszközzel, majd a dump rögzítése közben párosítsa a telefont a fejhallgatóval.

Használjon egy előre megadott szűrőt a releváns forgalom kiszűrésére:

btavdtp.signal_id

Ennek eredményeként valami hasonlót kell látnia:
Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

A GetCapabilities parancs minden egyes pontjára rákattinthat, és megtekintheti a kodek részletes jellemzőit.
Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

A Wireshark nem ismer minden kodek azonosítót, ezért néhány kodeket manuálisan kell dekódolni, az alábbi azonosítók táblázatára vonatkozóan:

Kötelező:
0x00 - SBC

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

Gyártóspecifikus:
0xFF 0x004F 0x01 - aptX
0xFF 0x00D7 0x24 - aptX HD
0xFF 0x000A 0x02 - aptX Alacsony késleltetés
0xFF 0x00D7 0x02 - aptX Alacsony késleltetés
0xFF 0x000A 0x01 - FastStream
0xFF 0x012D 0xAA - LDAC
0xFF 0x0075 0x0102 - Samsung HD
0xFF 0x0075 0x0103 - Samsung Skálázható Kodek
0xFF 0x053A 0x484C - Savitech LHDC

0xFF 0x000A 0x0104 - A CSR True Wireless Stereo v3 Kodek ID AAC-hoz
0xFF 0x000A 0x0105 - A CSR True Wireless Stereo v3 Kodek ID MP3-hoz
0xFF 0x000A 0x0106 - A CSR True Wireless Stereo v3 Kodek ID aptX-hez

Annak érdekében, hogy ne kelljen manuálisan elemezgetni a dumpokat, készítettem egy szolgáltatást, amely mindent automatikusan elemez: btcodecs.valdikss.org.ru

Kodekek összehasonlítása. Melyik kodek a jobb?

Minden kodeknek megvannak a maga előnyei és hátrányai.
Az aptX és aptX HD merev profilt használ, amelyeket nem lehet megváltoztatni az encoder és decoder módosítása nélkül. Sem a telefon gyártója, sem a fejhallgató gyártója nem képes megváltoztatni az aptX bitrátát vagy kódolási arányokat. A kodek tulajdonosa, a Qualcomm, egy referenciakódolót biztosít könyvtár formájában. Ezek a tények az aptX erősségei: előre tudja, milyen minőségű hangot fog kapni, mindenféle „de” nélkül.

Az SBC, a másik oldalon, számos testreszabható beállítással rendelkezik, dinamikus bitrátával (a kódoló csökkentheti a bitpool paramétert, ha a rádióvétel terhelt), és nincsenek mereven beállított profiljai, csupán ajánlott „közepes minőség” és „magas minőség”, amelyeket 2003-ban adtak hozzá az A2DP specifikációhoz. A „magas minőség” már nem olyan magas a mai mércével, és a legtöbb Bluetooth-stack nem engedi a jobb paraméterek használatát, mint a „magas minőség” profil, bár technikai korlátozások nincsenek.
A Bluetooth SIG-nek nincs referencia kódolója az SBC-hez könyvtár formájában, a gyártók pedig saját maguk valósítják meg ezt.
Ez az SBC gyengesége – soha nem lehet előre tudni, hogy milyen hangminőségre számíthatunk egy adott eszköztől. Az SBC képes alacsony és nagyon magas hangminőségre is, de az utóbbi elérhetetlen a Bluetooth-stack mesterséges korlátozásainak kikapcsolása vagy megkerülése nélkül.

Az AAC helyzete ellentmondásos: egyrészről a kódoló elméletileg olyan minőséget kell, hogy nyújtson, amely megkülönböztethetetlen az eredetitől, de a SoundGuys laboratórium különböző Android-eszközökön végzett tesztjei alapján ez nem igazolódik. Valószínűleg a hibát a különböző telefonchipekbe beépített alacsony minőségű hardveres audio kódolók okozzák. Érdemes AAC-t használni csak Apple eszközökön, Androidon pedig korlátozódni az aptX-re és LDAC-ra.

A különböző kódolókat támogató berendezések általában jobb minőségűek, mert a nagyon olcsó, alacsony minőségű eszközök számára nincs értelme licenszdíjat fizetni ezeknek a kodekeknek a használatához. A tesztjeim alapján az SBC nagyon jól szól jó minőségű berendezéseken.

Készítettem egy webszolgáltatást, amely valós időben kódolja az audiót SBC, aptX és aptX HD formátumban, közvetlenül a böngészőben. Ezzel tesztelheti ezeket az audiokodekeket anélkül, hogy tényleges audiót kellene Bluetooth-on keresztül átkonvertálnia, bármilyen vezetékes fülhallgatón, hangszórón és kedvenc zenéjén, és módosíthatja a kódolási beállításokat az audió lejátszása közben:
btcodecs.valdikss.org.ru/sbc-encoder
A szolgáltatás az SBC kódolási könyvtárait a BlueZ projektből és a libopenaptx-ból használja az ffmpeg-ből, amelyeket WebAssembly és JavaScript formájában C-ből fordítottak, emscripten segítségével, a böngészőben történő futtatáshoz. Ki álmodhatott volna egy ilyen jövőről!

Így néz ki:

Figyelj, hogyan változik a zajszint 20 kHz felett különböző kodekeknél. Az eredeti MP3 fájlban 20 kHz feletti frekvenciák nem találhatóak.

Próbáld átállítani a kodekeket, és értékeld, hallasz-e különbséget az eredeti, az SBC 53 Joint Stereo (standard és legelterjedtebb profil) és az aptX/aptX HD között.

Hallom a különbséget a kodekek között a fülhallgatóban!

Azok az emberek, akik nem hallanak különbséget a kodekek között a webszolgáltatáson keresztül végzett tesztelés során, biztosítják, hogy hallják a különbséget zenét hallgatva vezeték nélküli fülhallgatóban. Sajnos ez nem tréfa és nem placebo hatás: a különbség valóban hallható, ám nem a kodekek közötti eltérések miatt a kodekek.

A Bluetooth audió chipkészletek túlnyomó többsége, amelyeket a vezeték nélküli eszközök vevőiben használnak, digitális jelfeldolgozót (Digital signal processor, DSP) tartalmaz, amely megvalósítja az EQ-t, kompresszort, sztereó bővítőt és más funkciókat, amelyek célja a hang javítása (vagy megváltoztatása). A Bluetooth berendezésgyártók beállíthatják a DSP-t minden kodekhez külön-külön, és a kodekek közötti váltás során a hallgató számára úgy tűnhet, hogy különbséget hall a kodekek működésében, amikor valójában különböző DSP beállításokat hallgat.

Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben
A CSR/Qualcomm által gyártott chipjeiben a DSP Kalimba hangfeldolgozó csöve

Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben
A különböző funkciók DSP aktiválása minden kodek és kimenet esetén

Néhány prémium kategóriás eszköz DSP paraméterek beállítását lehetővé tevő programmal van felszerelve, de a legtöbb olcsóbb fülhallgatónak nincs ilyen lehetősége, és a felhasználók nem tudják kikapcsolni a hang utófeldolgozását semmilyen eszközzel.

A berendezések funkcionális jellemzői

A modern A2DP szabvány verziója rendelkezik az „abszolút hangerőszabályozás” funkcióval — a készülék hangerőszabályozása az AVRCP protokoll különleges parancsain keresztül, amely az erősítő kimenő fokozatának fokozatát szabályozza, ahelyett, hogy szoftveresen csökkentené az audiofolyam hangerőszintjét. Ha a fejhallgatón a hangerő módosítása nem szinkronizálódik a telefon hangerőszabályzásával, akkor ez azt jelenti, hogy a fejhallgató vagy a telefon nem támogatja ezt a funkciót. Ilyen esetben érdemes mindig maximális hangerőn zenét hallgatni a telefonon, a fejhallgató gombjaival módosítva a tényleges hangerőt — ebben az esetben a jel/zaj arány jobb lesz, és a hangminőség is. kellene, hogy fent.
A valóságban azonban szomorú helyzetek is előfordulnak. A RealForce OverDrive D1 fejhallgatómon az SBC codechez egy erős kompenzátor van aktiválva, és a hangerő növelése magasabb szintre emeli a halk hangokat, míg a hangos hangok hangerője nem változik (a jel tömörítése történik). Emiatt a számítógépen a hangerőt körülbelül a felére kell állítanom, ebben az esetben szinte nincs tömörítési effektus.
Megfigyeléseim szerint minden fejhallgató, amely további kodekeket támogat, rendelkezik az abszolút hangerőszabályozás funkciójával, ami nyilvánvalóan az egyik követelmény a kodekek tanúsításához.

Néhány fejhallgató támogatja két eszköz egyidejű csatlakoztatását.. Ez lehetővé teszi például, hogy zenét hallgasson a számítógépről, miközben telefonhívásokat fogad. Ugyanakkor tudnia kell, hogy ebben a módban letiltják az alternatív kodekeket, és csak az SBC-t használják.

Az AVDTP 1.3 késlekedési jelentési funkció lehetővé teszi a fejhallgató számára, hogy közölje a késlekedést a továbbító eszközzel, amely a hang tényleges lejátszási ideje. Ez lehetővé teszi az audio és video szinkronizálását videofájlok megtekintése közben: ha rádióátviteli problémák merülnek fel, az audio nem marad le a videótól, ellenkezőleg, a videolejátszó lassítani fog, amíg az audio és video újra szinkronizálódik.
A funkciót sok fejhallgató, az Android 9+ és a Linux 12.0+ PulseAudio támogatja. A funkció támogatásával más platformokon nem tudok.

Kétirányú kommunikáció Bluetooth-on keresztül. Hangátvitel.

A Bluetooth hangleadásához a Synchronous Connection Oriented (SCO) eljárás szükséges, amely szinkronizált átvitel előzetes kapcsolat-megszorítással. Ez a mód lehetővé teszi, hogy a hang és a beszéd szigorúan sorrendben, szimmetrikus küldési és fogadási sebességgel, megerősítés és csomagok újraküldése nélkül történjen. Ez csökkenti az audio átvitel általános késleltetését a rádiós csatornán, de súlyosan korlátozza az adatok mennyiségét időegységenként, és negatívan hat a minőségre.
Ha ezt a módot használják, a hang és az audio azonos minőségben kerül átvitelre.
Sajnos 2019-re a Bluetooth-on keresztüli beszédátvitel minősége továbbra is alacsony, és nem világos, hogy miért nem tesz semmit a Bluetooth SIG ezzel kapcsolatban.

CVSD

A CVSD beszédátviteli alapkodek 2002-ben lett standardizálva, és minden Bluetooth-képes készülék támogatja a kétirányú kommunikáció során. 8 kHz-es mintavételi frekvenciával biztosítja az audioátvitelt, amely megfelel a hagyományos vezetéknélküli telefonálás minőségének.

Példa a kodekben való rögzítésre.

mSBC

A mSBC újabb kodek 2009-ben lett standardizálva, és 2010-re megjelentek a chipkészletek, amelyek felhasználják azt a hangátvitelhez. Az mSBC széleskörű támogatást élvez különböző eszközök általi használat során.
Ez nem egy önálló kodek, hanem a hordozható audio A2DP standard SBC-jának egy típusa, rögzített kódprofilal: 16 kHz, mono, bitpool 26.

Példa a kodekben való rögzítésre.

Nem tökéletes, de sokkal jobb, mint a CVSD, viszont még mindig nem kellemes használni beszélgetésre az interneten, különösen, amikor fejhallgatót használsz játék közbeni kommunikációra — a játék hangja is 16 kHz-es mintavételi frekvenciával kerül átvitelre.

FastStreamA CSR cég úgy döntött, hogy továbbfejleszti az SBC újrahasználata körüli ötletet. A SCO protokoll korlátozásainak megkerülése érdekében és magasabb bitráták fogadására, a CSR más utat választott — bevezette a kétirányú SBC-audio támogatását az A2DP egyirányú audioátviteli standardjában, standardizálta a kódolási profilokat, és ezt FastStreamnek nevezték el.

A FastStream 44,1 vagy 48 kHz-es sztereó hangot közvetít a hangszórókba 212 kbit/s bitráta mellett, míg a mikrofon audio átvitele mono, 16 kHz, 72 kbit/s bitrátával történik (kicsit jobb, mint az mSBC). Ezek a paraméterek sokkal jobban megfelelnek az online játékokban való kommunikációhoz — a játék és a beszélgetőpartnerek hangja is minőségi.

Példa a kodekben való rögzítésre (+ a mikrofonból érkező hang, amely ugyanaz, mint az mSBC esetében).

A vállalat kitalált egy érdekes megoldást, de mivel az ellentétes az A2DP szabvánnyal, így csak a cégtől származó bizonyos átkonverterek támogatják (amelyek USB hangkartya-ként működnek, nem pedig Bluetooth eszközként), de a Bluetooth stackekben nem kapott támogatást, pedig a FastStream támogatásával rendelkező fejhallgatók száma nem is olyan kicsi.

Jelenleg a FastStream támogatása az operációs rendszerben csak linuX PulseAudio-hoz készült javítás formájában érhető el Pali Rohár fejlesztőtől, amely nem szerepel a program fő ágában.

aptX Low Latency

Nagyon meglepő módon az aptX Low Latency is támogatja a kétirányú audiót, ugyanezt az elvet követi, mint a FastStream.
Ezt a kodek jellemzőt sehol sem lehet használni — a Low Latency dekódolásának támogatása egyetlen operációs rendszerben vagy általam ismert Bluetooth stackben sincs.

Bluetooth 5, Classic és Low Energy

A Bluetooth specifikációkkal és verziókkal kapcsolatban nagy zűrzavar alakult ki, mivel két inkompatibilis szabvány létezik egy márkán belül, amelyek széles körben alkalmazhatók különböző célokra.

Két különböző, egymással nem kompatibilis Bluetooth protokoll létezik: a Bluetooth Classic és a Bluetooth Low Energy (LE, más néven Bluetooth Smart). Van egy harmadik protokoll is, a Bluetooth High Speed, de ez nem elterjedt és nem használják háztartási eszközökben.

A Bluetooth 4.0-tól kezdődően a specifikáció változásai elsősorban a Bluetooth Low Energy-t érintették, míg a Classic verzió csak kisebb javításokat kapott.

A Bluetooth 4.2 és Bluetooth 5 közötti változások listája:

9 VÁLTOZÁS A v4.2-TŐL 5.0-IG

9.1 ÚJ JELLEMZŐK

Számos új jellemzőt mutatnak be a Bluetooth Core Specification 5.0 kiadásában. A legfontosabb fejlesztési területek a következők:
• Slot Availability Mask (SAM)
• 2 Msym/s PHY a LE-hez
• LE Hosszú Hatótávolság
• Magas Üzemidő Nem-Kapcsolható Hirdetés
• LE Hirdetési Kiterjesztések
• LE Csatorna Kiválasztási Algoritmus #2
9.1.1 CSA5-ben Hozzáadott Jellemzők — Integrált a v5.0-ban
• Magasabb Kimeneti Teljesítmény

Forrás: www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=421043 (291. oldal)

Csak egy változás érinti a Classic verziót a Bluetooth 5 specifikáción belül: hozzáadták a Slot Availability Mask (SAM) technológiát, amely a rádióspektrum elválasztásának javítására szolgál. Az összes többi változás csak a Bluetooth LE-t érinti (és a Magasabb Kimeneti Teljesítményt is).

Transzparens árak audioberendezések csak Bluetooth Classic-ot használnak. Fejhallgatókat és hangszórókat Bluetooth Low Energy-n keresztül csatlakoztatni nem lehet: nincs olyan szabvány, amely lehetővé tenné az audiót LE használatával. Az A2DP szabvány, amelyet a magas minőségű audió átadására használnak, csak Bluetooth Classic-on működik, és analógja LE-ben nem létezik.

Az új protokoll verziója miatt értelmetlen Bluetooth 5-ös audioeszközöket vásárolni. A Bluetooth 4.0/4.1/4.2 a hangátvitel szempontjából pontosan ugyanúgy működik.
Ha az új fejhallgatókról szóló bejelentések említik a megduplázott hatósugarat és a csökkentett energiafogyasztást a Bluetooth 5-nek köszönhetően, akkor tudja, hogy vagy ők maguk sem értik, vagy félrevezetik önt. Nem csoda, tekintve, hogy még a Bluetooth chipgyártók is összekeverik az új szabvány verziói közötti különbségeket a bejelentéseikben, és egyes Bluetooth 5-ös chipkészletek csak az LE-t támogatják, míg a Classic-hoz a 4.2-t használják.

Audio késleltetés

Az audio késleltetés mértéke sok tényezőtől függ: a hangfeldolgozó, a Bluetooth verem és a vezeték nélküli lejátszóeszköz puffer méretétől, valamint a kodek algoritmikus késleltetésétől.

Az egyszerű kodekek, mint az SBC, aptX és aptX HD késleltetése elég csekély, 3-6 ms, ami figyelmen kívül hagyható, de a bonyolultabb kodekek, mint az AAC és LDAC érezhető késlekedést okozhatnak. Az AAC algoritmikus késleltetése 44.1 kHz-en 60 ms. Az LDAC körülbelül 30 ms (a forráskód durva elemzése alapján. Lehet, hogy tévedek, de nem sokat).

A végső késleltetés nagymértékben függ a lejátszóeszköztől, annak chipkészletétől és pufferétől. A tesztek során különböző eszközökön (SBC kodekkel) 150-250 ms közötti eltérést kaptam. Ha feltételezzük, hogy a további kodekeket támogató eszközök, mint például az aptX, AAC és LDAC, minőségi alkatrészeket és kis puffer méretet használnak, akkor a következő tipikus késleltetéseket kaphatjuk:

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

Emlékeztetem: az aptX Low Latency nem támogatott az operációs rendszerekben, ezért a kisebb késleltetést csak a transmitter+receiver vagy transmitter+fejhallgató/szóló párossal lehet elérni, és minden eszköznek támogatnia kell ezt a kodeket.

Eszközproblémák, tanúsítványok és Bluetooth logók

Hogyan lehet megkülönböztetni a minőségi audioeszközt a silány hamisítványtól? Elsősorban a megjelenés alapján!

A olcsó kínai fejhallgatóknál, hangszóróknál és vevőknél:

  1. Nincs a dobozon és az eszközön a „Bluetooth” szó, leggyakrabban a „Wireless” és a „BT” kifejezést használják
  2. Nincs Bluetooth logó Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben a dobozon vagy az eszközön
  3. Nincs villogó kék LED fény

Ezeknek az elemeknek a hiánya azt jelzi, hogy az eszköz nem ment át a tanúsításon, ezért potenciálisan alacsony minőségű és problémás lehet. Például a Bluedio fülhallgatók nem Bluetooth tanúsítványosak, és nem felelnek meg teljesen az A2DP specifikációnak. A tanúsítást nem sikerült megkapniuk.

Nézzük meg néhány eszközt és azok dobozát:
Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

Audio Bluetooth-on: a profilokról, kodekekről és eszközökről a lehető legrészletesebben

Ez mind nem tanúsított eszköz. Az utasításokban lehet a Bluetooth logója és neve, de a legfontosabb az, hogy ezek az információk a dobozon és/vagy magán az eszközön is szerepeljenek.

Ha a fülhallgatód vagy hangszóród azt mondja: „A Bluetooth eszköz sikeresen csatlakozott”, az sem beszél az eszköz minőségéről:

Videó lejátszása

Zárás

Teljesen helyettesítheti-e a Bluetooth a vezetékes fülhallgatókat és headseteket? Igen, de az telefonálás közben alacsony minőség árával, megnövekedett hangkésleltetéssel járhat, ami zavaró lehet játékok közben, valamint számos szabadalmaztatott kodek használatát igényli, amelyek licencdíjakat követelnek, és így növelik a végső költséget először az okostelefonok, majd a fülhallgatók esetében is.

Az alternatív kodekek marketingje nagyon erős: az aptX és az LDAC régóta várt alternatívaként jelenik meg az „elavult és rossz” SBC-vel szemben, ami nem is olyan rossz, mint ahogy azt általában gondolják.

Mint kiderült, a Bluetooth stackek SBC bitrátájának mesterséges korlátozásait meg lehet kerülni, így az SBC nem marad el az aptX HD-tól. Átvettem a kezdeményezést, és készítettem egy javítást a LineageOS firmware-hez: Bluetooth verem módosítása a hangminőség javítása érdekében AAC, aptX és LDAC kodekek nélküli fülhallgatók esetén

További információkat találhat a következő webhelyeken: SoundGuys és SoundExpert.

Bónusz: referencia SBC kódoló, A2DP bitstream információ és tesztfájlok. Ez a fájl korábban nyilvánosan elérhető volt a Bluetooth webhelyén, de most már csak a Bluetooth SIG-be belépők számára elérhető.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster