Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Aufgrund der Massenproduktion von Smartphones ohne 3.5-mm-Audiobuchse sind drahtlose Bluetooth-Kopfhörer für viele zur wichtigsten Möglichkeit geworden, Musik zu hören und im Headset-Modus zu kommunizieren.
Hersteller von drahtlosen Geräten schreiben nicht immer detaillierte Produktspezifikationen, und Artikel über Bluetooth-Audio im Internet sind widersprüchlich, manchmal falsch, gehen nicht auf alle Funktionen ein und kopieren oft dieselben Informationen, die nicht der Realität entsprechen.
Versuchen wir, das Protokoll, die Fähigkeiten von Bluetooth-Betriebssystem-Stacks, Kopfhörern und Lautsprechern sowie Bluetooth-Codecs für Musik und Sprache zu verstehen, herauszufinden, was die Qualität des übertragenen Tons und die Latenz beeinflusst, und zu erfahren, wie Informationen über unterstützte Codecs und andere Geräte gesammelt und dekodiert werden Fähigkeiten.

TL; DR:

  • SBC – normaler Codec
  • Der Kopfhörer verfügt über einen eigenen Equalizer und eine separate Nachbearbeitung für jeden Codec
  • aptX ist nicht so gut wie beworben
  • LDAC ist Marketing-Bullshit
  • Die Anrufqualität ist immer noch schlecht
  • Sie können C-Audio-Encoder in Ihren Browser einbetten, indem Sie sie über emscripten in WebAssembly kompilieren, und sie werden nicht viel langsamer.

Musik über Bluetooth

Die funktionale Komponente von Bluetooth wird durch Profile – Spezifikationen spezifischer Funktionen – bestimmt. Bluetooth-Musikstreaming verwendet ein hochwertiges unidirektionales A2DP-Audioübertragungsprofil. Der A2DP-Standard wurde 2003 übernommen und hat sich seitdem nicht wesentlich geändert.
Innerhalb des Profils sind 1 obligatorischer Codec mit geringer Rechenkomplexität SBC, der speziell für Bluetooth erstellt wurde, und 3 weitere standardisiert. Es ist auch möglich, undokumentierte Codecs Ihrer eigenen Implementierung zu verwenden.

Seit Juni 2019 sind wir dabei im xkcd-Comic mit 14 A2DP-Codecs:

  • SBC ← standardisiert in A2DP, unterstützt von allen Geräten
  • MPEG-1/2 Layer 1/2/3 ← standardisiert in A2DP: bekannt MP3, im digitalen Fernsehen verwendet MP2, und unbekannt MP1
  • MPEG-2/4 AAC ← standardisiert in A2DP
  • ATTRAC ← alter Codec von Sony, standardisiert in A2DP
  • LDAC ← neuer Codec von Sony
  • aptX ← Codec von 1988
  • aptX HD ← wie aptX, nur mit anderen Kodierungsoptionen
  • aptX Geringe Latenz ← völlig anderer Codec, keine Softwareimplementierung
  • aptX Adaptiv ← ein weiterer Codec von Qualcomm
  • Fast Stream ← Pseudo-Codec, bidirektionale SBC-Modifikation
  • HWA LHDC ← neuer Codec von Huawei
  • Samsung HD ← unterstützt von 2 Geräten
  • Samsung skalierbar ← unterstützt von 2 Geräten
  • Samsung UHQ-BT ← unterstützt von 3 Geräten

Warum brauchen wir überhaupt Codecs, fragen Sie sich, wenn Bluetooth über EDR verfügt, mit dem sich Daten mit Geschwindigkeiten von 2 und 3 Mbit/s übertragen lassen, und für unkomprimiertes Zweikanal-16-Bit-PCM 1.4 Mbit/s ausreichen?

Datenübertragung per Bluetooth

Es gibt zwei Arten der Datenübertragung in Bluetooth: Asynchronous Connection Less (ACL) für asynchrone Übertragung ohne Verbindungsaufbau und Synchronous Connection Oriented (SCO) für synchrone Übertragung mit vorläufiger Verbindungsaushandlung.
Die Übertragung erfolgt nach einem Zeitteilungsschema und der Auswahl eines Übertragungskanals für jedes Paket separat (Frequency-Hop/Time-Division-Duplex, FH/TDD), wobei die Zeit in 625-Mikrosekunden-Intervalle, sogenannte Slots, unterteilt wird. Eines der Geräte sendet in geraden Slots, das andere in ungeraden Slots. Das übertragene Paket kann je nach Datengröße und eingestellter Übertragungsart 1, 3 oder 5 Slots belegen, in diesem Fall erfolgt die Übertragung durch ein Gerät bis zum Ende der Übertragung in geraden und ungeraden Slots. Insgesamt können bis zu 1600 Pakete pro Sekunde empfangen und gesendet werden, wenn jedes von ihnen 1 Slot belegt und beide Geräte ohne Unterbrechung etwas senden und empfangen.

2 und 3 Mbit/s für EDR, die in Ankündigungen und auf der Bluetooth-Website zu finden sind, sind die maximale Kanalübertragungsrate aller Daten insgesamt (einschließlich technischer Header aller Protokolle, in denen Daten gekapselt werden müssen), in zwei Richtungen gleichzeitig. Die tatsächliche Datenübertragungsgeschwindigkeit kann stark variieren.

Zur Übertragung von Musik wird ein asynchrones Verfahren verwendet, wobei fast immer Pakete wie 2-DH5 und 3-DH5 verwendet werden, die im EDR-Modus eine maximale Datenmenge von 2 Mbit/s bzw. 3 Mbit/s transportieren und 5 Zeit beanspruchen -Slots teilen.

Schematische Darstellung der Übertragung über 5 Slots bei einem Gerät und 1 Slot bei einem anderen (DH5/DH1):
Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Aufgrund des Prinzips der Zeitteilung der Funkwellen müssen wir nach der Übertragung eines Pakets einen Zeitschlitz von 625 Mikrosekunden warten, wenn das zweite Gerät nichts an uns sendet oder ein kleines Paket sendet, und mehr Zeit, wenn das zweite Gerät sendet in großen Paketen. Wenn mehr als ein Gerät mit dem Telefon verbunden ist (z. B. Kopfhörer, Uhren und ein Fitnessarmband), wird die Übertragungszeit zwischen allen Geräten aufgeteilt.

Die Notwendigkeit, Audio in den speziellen Transportprotokollen L2CAP und AVDTP zu kapseln, beansprucht 16 Bytes der möglichen maximalen Menge der übertragenen Audio-Nutzlast.

Pakettyp
Anzahl der Steckplätze
Max. Anzahl der Bytes im Paket
Max. Anzahl der Bytes der A2DP-Nutzlast
Max. A2DP-Nutzlastbitrate

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 und 1429 kbps reichen definitiv nicht aus, um unter realen Bedingungen unkomprimiertes Audio zu übertragen, da der 2.4-GHz-Bereich verrauscht ist und Dienstdaten übertragen werden müssen. EDR 3 Mbit/s stellt hohe Anforderungen an die Übertragungsleistung und das Rauschen in der Luft, daher ist auch im 3-DH5-Modus eine komfortable PCM-Übertragung nicht möglich, es wird immer zu kurzfristigen Unterbrechungen kommen und alles funktioniert nur in einer Entfernung von a ein paar Meter.
In der Praxis ist selbst ein 990-kbit/s-Audiostream (LDAC 990 kbit/s) schwierig zu übertragen.

Kehren wir zu den Codecs zurück.

SBC

Codec erforderlich für alle Geräte, die den A2DP-Standard unterstützen. Der beste und schlechteste Codec zugleich.

Abtastrate
Kapazität
Bitrate
Codierungsunterstützung
Dekodierungsunterstützung

16, 32, 44.1, 48 kHz
16-Bit
10-1500 kbit/s
Alle Geräte
Alle Geräte

SBC ist ein einfacher und rechenschneller Codec mit einem primitiven psychoakustischen Modell (es wird nur die Maskierung leiser Geräusche angewendet) und der adaptiven Pulse Code Modulation (APCM).
Die A2DP-Spezifikation empfiehlt zwei Profile zur Verwendung: Mittlere Qualität und Hohe Qualität.
Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Der Codec verfügt über viele Einstellungen, mit denen Sie die algorithmische Verzögerung, die Anzahl der Samples in einem Block und den Bitverteilungsalgorithmus steuern können, aber fast überall werden die gleichen in der Spezifikation empfohlenen Parameter verwendet: Joint Stereo, 8 Frequenzbänder, 16 Blöcke in ein Audio-Frame, Loudness-Bit-Verteilungsmethode.
SBC unterstützt die dynamische Änderung des Bitpool-Parameters, der sich direkt auf die Bitrate auswirkt. Wenn die Funkwellen verstopft sind, Pakete verloren gehen oder Geräte weit entfernt sind, reduziert die Audioquelle möglicherweise den Bitpool, bis die Kommunikation wieder normal ist.

Die meisten Kopfhörerhersteller legen den maximalen Bitpool-Wert auf 53 fest, was die Bitrate bei Verwendung des empfohlenen Profils auf 328 Kilobit pro Sekunde begrenzt.
Selbst wenn der Kopfhörerhersteller den maximalen Bitpool-Wert auf über 53 festgelegt hat (solche Modelle sind beispielsweise zu finden: Beats Solo³, JBL Everest Elite 750NC, Apple AirPods, auch auf einigen Receivern und Auto-Headunits zu finden), erlauben die meisten Betriebssysteme dies nicht die Verwendung erhöhter Bitraten aufgrund der festgelegten internen Wertebegrenzung in Bluetooth-Stacks.
Darüber hinaus setzen einige Hersteller den maximalen Bitpool-Wert für einige Geräte auf niedrig. Beim Bluedio T beträgt er beispielsweise 39, beim Samsung Gear IconX 37, was zu einer schlechten Klangqualität führt.

Künstliche Einschränkungen seitens der Entwickler von Bluetooth-Stacks sind höchstwahrscheinlich auf die Inkompatibilität einiger Geräte mit großen Bitpool-Werten oder atypischen Profilen zurückzuführen, auch wenn sie über deren Unterstützung berichteten, und auf unzureichende Tests während der Zertifizierung. Für die Autoren von Bluetooth-Stacks war es einfacher, sich darauf zu beschränken, sich auf das empfohlene Profil zu einigen, anstatt Datenbanken mit falschen Geräten zu erstellen (obwohl sie dies jetzt auch für andere fehlerhaft funktionierende Funktionen tun).

SBC weist den Frequenzbändern Quantisierungsbits dynamisch auf einer Niedrig-Hoch-Basis mit unterschiedlichen Gewichtungen zu. Wenn die gesamte Bitrate für die niedrigen und mittleren Frequenzen verwendet wurde, werden die hohen Frequenzen „abgeschnitten“ (stattdessen herrscht Stille).

Beispiel SBC 328 kbps. Oben ist das Original, unten der SBC, der regelmäßig zwischen den Titeln wechselt. Der Ton in der Videodatei verwendet den verlustfreien Komprimierungscodec FLAC. Die Verwendung von FLAC in einem MP4-Container ist nicht offiziell standardisiert, daher kann nicht garantiert werden, dass Ihr Browser es abspielt, aber es sollte in den neuesten Versionen von Chrome und Firefox für Desktops funktionieren. Wenn Sie keinen Ton haben, können Sie die Datei herunterladen und in einem vollwertigen Videoplayer öffnen.
ZZ Top – Elegant gekleideter Mann

Das Spektrogramm zeigt den Zeitpunkt des Umschaltens: SBC schneidet periodisch leise Töne über 17.5 kHz ab und weist dem Band über 20 kHz überhaupt keine Bits zu. Das vollständige Spektrogramm ist durch Anklicken verfügbar (1.7 MB).
Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Ich höre bei diesem Titel keinen Unterschied zwischen dem Original und SBC.

Nehmen wir etwas Neueres und simulieren den Ton, den man mit Samsung Gear IconX-Kopfhörern mit Bitpool 37 erhalten würde (oben – das Originalsignal, unten – SBC 239 kbps, Ton in FLAC).
Gedankenlose Selbstgefälligkeit – Zeuge

Ich höre Knistern, weniger Stereoeffekt und ein unangenehmes „Klirren“ in den hohen Frequenzen des Gesangs.

Obwohl SBC ein sehr flexibler Codec ist, kann er für eine niedrige Latenz konfiguriert werden, bietet eine hervorragende Audioqualität bei hohen Bitraten (452+ kbps) und ist für die meisten Menschen bei standardmäßig hoher Qualität (328 kbps) recht gut Der A2DP-Standard legt keine festen Profile fest (sondern gibt nur Empfehlungen), Stack-Entwickler haben Bitpool künstliche Beschränkungen auferlegt, die Parameter des übertragenen Audios werden nicht in der Benutzeroberfläche angezeigt und Kopfhörerhersteller können ihre eigenen Einstellungen festlegen und niemals Geben Sie den Bitpool-Wert in den technischen Spezifikationen des Produkts an. Der Codec wurde für seine geringe Klangqualität bekannt, obwohl dies für den Codec als solchen kein Problem darstellt.
Der Bitpool-Parameter wirkt sich direkt auf die Bitrate nur innerhalb eines Profils aus. Der gleiche Bitpool 53-Wert kann sowohl eine Bitrate von 328 Kbit/s mit dem empfohlenen Profil „Hohe Qualität“ als auch 1212 Kbit/s mit Dual Channel und 4 Frequenzbändern ergeben, weshalb die Autoren des Betriebssystems zusätzlich zu den Einschränkungen für Bitpool ein Limit festlegen und weiter Bitrate. Meines Erachtens ist diese Situation auf einen Fehler im A2DP-Standard zurückzuführen: Es musste die Bitrate ausgehandelt werden, nicht Bitpool.

Tabelle der Unterstützung für SBC-Funktionen in verschiedenen Betriebssystemen:

OS
Unterstützte Abtastraten
Begrenzen Sie max. Bitpool
Begrenzen Sie max. Bitrate
Typische Bitrate
Dynamische Anpassung des Bitpools

Windows 10
44.1 кГц
53
512 kbit/s
328 kbit/s
✓*

Linux (BlueZ + PulseAudio)
16, 32, 44.1, 48 kHz
64 (für eingehende Verbindungen), 53 (für ausgehende Verbindungen)
Keine Begrenzung
328 kbit/s
✓*

MacOS High Sierra
44.1 кГц
64, Standard 53***
unbekannt
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 кГц
53
Keine Begrenzung
328 kbit/s

* Der Bitpool verringert sich nur, erhöht sich aber nicht automatisch, wenn sich die Übertragungsbedingungen verbessern. Um Bitpool wiederherzustellen, müssen Sie die Wiedergabe stoppen, einige Sekunden warten und die Audiowiedergabe erneut starten.
** Der Standardwert hängt von den Stack-Einstellungen ab, die beim Kompilieren der Firmware angegeben wurden. In Android 8/8.1 beträgt die Frequenz je nach Einstellung beim Kompilieren nur entweder 44.1 kHz oder 48 kHz, in anderen Versionen werden 44.1 kHz und 48 kHz gleichzeitig unterstützt.
*** Der Bitpool-Wert kann im Bluetooth Explorer-Programm erhöht werden.

aptX und aptX HD

aptX ist ein einfacher und rechenschneller Codec ohne Psychoakustik, der adaptive differenzielle Pulscodemodulation verwendet (ADPCM). Erschienen um 1988 (Anmeldedatum Patent (vom Februar 1988), vor Bluetooth, wurde es hauptsächlich in professionellen drahtlosen Audiogeräten verwendet. Derzeit im Besitz von Qualcomm, erfordert Lizenzen und Lizenzgebühren. Ab 2014: 6000 $ einmalig und ≈1 $ pro Gerät, für Chargen von bis zu 10000 Geräten (Quelle, S. 16).
aptX und aptX HD sind derselbe Codec mit unterschiedlichen Kodierungsprofilen.

Der Codec hat nur einen Parameter – die Auswahl der Abtastfrequenz. Es gibt allerdings eine Auswahl an Anzahl/Modus der Kanäle, allerdings wird bei allen mir bekannten Geräten (über 70 Stück) nur Stereo unterstützt.

CODEC
Abtastrate
Kapazität
Bitrate
Codierungsunterstützung
Dekodierungsunterstützung

aptX
16, 32, 44.1, 48 kHz
16-Bit
128 / 256 / 352 / 384 kbps (abhängig von der Abtastrate)
Windows 10 (Desktop und Mobilgerät), macOS, Android 4.4+/7*, Blackberry OS 10
Große Auswahl an Audiogeräten (Hardware)

* Versionen bis 7 erfordern eine Änderung des Bluetooth-Stacks. Der Codec wird nur unterstützt, wenn der Hersteller des Android-Geräts den Codec von Qualcomm lizenziert hat (sofern das Betriebssystem über Kodierungsbibliotheken verfügt).

aptX unterteilt Audio in 4 Frequenzbänder und quantisiert sie konstant mit der gleichen Anzahl von Bits: 8 Bits für 0–5.5 kHz, 4 Bits für 5.5–11 kHz, 2 Bits für 11–16.5 kHz, 2 Bits für 16.5–22 kHz ( Werte für Abtastrate 44.1 kHz).

Beispiel für aptX-Audio (oben das Originalsignal, unten aptX, Spektrogramme nur der linken Kanäle, Ton in FLAC):

Die Höhen wurden etwas rötlicher, aber man konnte den Unterschied nicht hören.

Aufgrund der festen Verteilung der Quantisierungsbits kann der Codec die Bits nicht auf die Frequenzen „verschieben“, die sie am meisten benötigen. Im Gegensatz zu SBC „schneidet“ aptX die Frequenzen nicht ab, sondern fügt ihnen Quantisierungsrauschen hinzu, wodurch der Dynamikbereich des Audios verringert wird.

Es sollte nicht davon ausgegangen werden, dass die Verwendung von beispielsweise 2 Bits pro Band den Dynamikbereich auf 12 dB reduziert: ADPCM ermöglicht selbst bei Verwendung von 96 Quantisierungsbits einen Dynamikbereich von bis zu 2 dB, jedoch nur für ein bestimmtes Signal.
ADPCM speichert die numerische Differenz zwischen der aktuellen Probe und der nächsten Probe, anstatt den absoluten Wert wie in PCM zu speichern. Dadurch können Sie die Anforderungen an die Anzahl der Bits reduzieren, die zum Speichern derselben (ohne Verlust) oder nahezu derselben (mit einem relativ kleinen Rundungsfehler) Informationen erforderlich sind. Um Rundungsfehler zu reduzieren, werden Koeffiziententabellen verwendet.
Bei der Erstellung des Codecs berechneten die Autoren ADPCM-Koeffizienten für eine Reihe von Musik-Audiodateien. Je näher das Audiosignal an der Musik liegt, auf der die Tabellen erstellt wurden, desto weniger Quantisierungsfehler (Rauschen) erzeugt aptX.

Aus diesem Grund liefern synthetische Tests immer schlechtere Ergebnisse als Musik. Ich habe ein spezielles synthetisches Beispiel erstellt, in dem aptX schlechte Ergebnisse zeigt – eine Sinuswelle mit einer Frequenz von 12.4 kHz (oben – das Originalsignal, unten – aptX. Audio in FLAC. Reduzieren Sie die Lautstärke!):

Spektrumdiagramm:
Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Geräusche sind deutlich hörbar.

Wenn Sie jedoch eine Sinuswelle mit kleinerer Amplitude erzeugen, damit diese leiser ist, wird auch das Rauschen leiser, was auf einen großen Dynamikbereich hinweist:

Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Um den Unterschied zwischen dem ursprünglichen und dem komprimierten Musiktitel zu hören, können Sie eines der Signale invertieren und die Titel Kanal für Kanal hinzufügen. Dieser Ansatz ist im Allgemeinen falsch und würde bei komplexeren Codecs keine vernünftigen Ergebnisse liefern, ist aber speziell für ADPCM durchaus geeignet.
Unterschied zwischen Original und aptX
Der quadratische Mittelwertunterschied der Signale liegt bei -37.4 dB, was für solch komprimierte Musik nicht viel ist.

aptX HD

aptX HD ist kein eigenständiger Codec, sondern ein verbessertes Kodierungsprofil des aptX-Codecs. Die Änderungen betrafen die Anzahl der für die Kodierung von Frequenzbereichen zugewiesenen Bits: 10 Bits für 0–5.5 kHz, 6 Bits für 5.5–11 kHz, 4 Bits für 11–16.5 kHz, 4 Bits für 16.5–22 kHz (Ziffern für 44.1 kHz). .

CODEC
Abtastrate
Kapazität
Bitrate
Codierungsunterstützung
Dekodierungsunterstützung

aptX HD
16, 32, 44.1, 48 kHz
24-Bits
192 / 384 / 529 / 576 kbps (abhängig von der Abtastrate)
Android 8+*
Einige Audiogeräte (Hardware)

* Versionen bis 7 erfordern eine Änderung des Bluetooth-Stacks. Der Codec wird nur unterstützt, wenn der Hersteller des Android-Geräts den Codec von Qualcomm lizenziert hat (sofern das Betriebssystem über Kodierungsbibliotheken verfügt).

Weniger verbreitet als aptX: erfordert offenbar eine separate Lizenzierung von Qualcomm und separate Lizenzgebühren.

Wiederholen wir das Beispiel mit einer Sinuswelle bei 12.4 kHz:
Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Viel besser als aptX, aber immer noch etwas laut.

aptX Geringe Latenz

Ein Codec von Qualcomm, der nichts mit Standard-aptX und aptX HD gemein hat, gemessen an den begrenzten Informationen von Personen, die an seiner Entwicklung beteiligt waren. Konzipiert für interaktive Audioübertragungen mit geringer Latenz (Filme, Spiele), bei denen die Audioverzögerung nicht per Software angepasst werden kann. Es sind keine Softwareimplementierungen von Encodern und Decodern bekannt; sie werden ausschließlich von Sendern, Empfängern, Kopfhörern und Lautsprechern unterstützt, nicht jedoch von Smartphones und Computern.

Abtastrate
Bitrate
Codierungsunterstützung
Dekodierungsunterstützung

44.1 кГц
276/420 kbit/s
Einige Sender (Hardware)
Einige Audiogeräte (Hardware)

AAC

AAC (Advanced Audio Coding) ist ein rechentechnisch komplexer Codec mit einem ernsthaften psychoakustischen Modell. Weit verbreitet für Audio im Internet, zweitbeliebtest nach MP3. Erfordert Lizenzen und Lizenzgebühren: 15000 $ einmalig (oder 1000 $ für Unternehmen mit weniger als 15 Mitarbeitern) + 0.98 $ für die ersten 500000 Geräte (Quelle).
Der Codec ist innerhalb der MPEG-2- und MPEG-4-Spezifikationen standardisiert und gehört entgegen einem weit verbreiteten Missverständnis nicht zu Apple.

Abtastrate
Bitrate
Codierungsunterstützung
Dekodierungsunterstützung

8 - 96 kHz
8 - 576 kbps (für Stereo), 256 - 320 kbps (typisch für Bluetooth)
macOS, Android 7+*, iOS
Große Auswahl an Audiogeräten (Hardware)

* nur auf Geräten, deren Hersteller Lizenzgebühren bezahlt haben

iOS und macOS nutzen den derzeit besten AAC-Encoder von Apple, um die höchstmögliche Audioqualität zu liefern. Android verwendet den zweithöchsten AAC-Encoder des Fraunhofer FDK, kann jedoch verschiedene in die Plattform integrierte Hardware (SoC) mit unbekannter Codierungsqualität verwenden. Laut aktuellen Tests auf der SoundGuys-Website, die AAC-Kodierungsqualität verschiedener Android-Telefone variiert stark:
Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Die meisten drahtlosen Audiogeräte haben eine maximale Bitrate von 320 Kbit/s für AAC, einige unterstützen nur 256 Kbit/s. Andere Bitraten sind äußerst selten.
AAC bietet eine hervorragende Qualität bei Bitraten von 320 und 256 Kbit/s, unterliegt jedoch Einschränkungen Verlust der sequentiellen Kodierung bereits komprimierter InhalteAllerdings sind unter iOS bei einer Bitrate von 256 kBit/s auch bei mehreren sequentiellen Kodierungen kaum Unterschiede zum Original zu hören; bei Einzelkodierung, beispielsweise MP3 320 kBit/s zu AAC 256 kBit/s, können Verluste vernachlässigt werden.
Wie bei anderen Bluetooth-Codecs wird jede Musik zunächst dekodiert und dann vom Codec kodiert. Beim Hören von Musik im AAC-Format wird diese zunächst vom Betriebssystem dekodiert und dann zur Übertragung über Bluetooth wieder in AAC kodiert. Dies ist zum Mischen mehrerer Audiostreams erforderlich, z. B. Musik und Benachrichtigungen über neue Nachrichten. iOS ist keine Ausnahme. Im Internet findet man viele Aussagen, dass auf iOS Musik im AAC-Format bei der Übertragung über Bluetooth nicht transkodiert wird, was nicht stimmt.

MP1/2/3

Die Codecs der MPEG-1/2 Part 3-Familie bestehen aus dem bekannten und weit verbreiteten MP3, dem weniger verbreiteten MP2 (hauptsächlich im digitalen Fernsehen und Radio verwendet) und dem völlig unbekannten MP1.

Die alten MP1- und MP2-Codecs werden überhaupt nicht unterstützt: Ich konnte keinen Kopfhörer oder Bluetooth-Stack finden, der sie kodieren oder dekodieren könnte.
Die MP3-Dekodierung wird von einigen Kopfhörern unterstützt, die Kodierung wird jedoch von keinem modernen Betriebssystem-Stack unterstützt. Es scheint, dass der BlueSoleil-Stack eines Drittanbieters für Windows in MP3 kodieren kann, wenn man die Konfigurationsdatei manuell ändert, aber bei mir führt die Installation zu BSoD unter Windows 10. Fazit: Der Codec kann eigentlich nicht für Bluetooth-Audio verwendet werden.
Zuvor, in den Jahren 2006–2008, vor der Verbreitung des A2DP-Standards in Geräten, hörten Menschen MP3-Musik auf dem Nokia BH-501-Headset über das MSI BluePlayer-Programm, das auf Symbian und Windows Mobile verfügbar war. Damals ermöglichte die Betriebssystemarchitektur von Smartphones den Zugriff auf viele Low-Level-Funktionen und auf Windows Mobile war es sogar möglich, Bluetooth-Stacks von Drittanbietern zu installieren.

Das letzte Patent des MP3-Codecs ist abgelaufen, die Nutzung des Codecs erfordert seit dem 23. April 2017 keine Lizenzgebühren.

Nimmt man das am längsten laufende Patent, das in den oben genannten Referenzen erwähnt wird, als Maß, dann wurde die MP3-Technologie in den Vereinigten Staaten am 16. April 2017 patentfrei, als das US-Patent 6,009,399, gehalten von Technicolor und verwaltet von Technicolor, ablief.

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

Abtastrate
Bitrate
Codierungsunterstützung
Dekodierungsunterstützung

16 - 48 kHz
8 - 320 kbit/s
Wird nirgends unterstützt
Einige Audiogeräte (Hardware)

LDAC

Ein neuer und aktiv beworbener „Hi-Res“-Codec von Sony, der Abtastraten von bis zu 96 kHz und eine 24-Bit-Bitrate mit Bitraten von bis zu 990 kbps unterstützt. Er wird als audiophiler Codec beworben, als Ersatz für bestehende Bluetooth-Codecs. Es verfügt über die Funktion einer adaptiven Bitratenanpassung abhängig von den Rundfunkbedingungen.

LDAC-Encoder (libldac) ist im Standard-Android-Paket enthalten, sodass die Kodierung auf jedem Android-Smartphone ab Betriebssystemversion 8 unterstützt wird. Es gibt keine frei verfügbaren Software-Decoder, die Codec-Spezifikation ist nicht für die breite Öffentlichkeit zugänglich, auf den ersten Blick ist der interne Aufbau des Codecs jedoch ähnlich ATRAC9 - Sonys Codec, der in der PlayStation 4 und Vita verwendet wird: Beide arbeiten im Frequenzbereich, verwenden eine modifizierte diskrete Kosinustransformation (MDCT) und eine Komprimierung mithilfe des Huffman-Algorithmus.

LDAC-Unterstützung wird fast ausschließlich von Kopfhörern von Sony bereitgestellt. Die Möglichkeit, LDAC zu dekodieren, ist manchmal bei Kopfhörern und DACs anderer Hersteller zu finden, jedoch sehr selten.

Abtastrate
Bitrate
Codierungsunterstützung
Dekodierungsunterstützung

44.1 - 96 kHz
303/606/909 kbit/s (für 44.1 und 88.2 kHz), 330/660/990 kbit/s (für 48 und 96 kHz)
Android 8 +
Einige Sony-Kopfhörer und einige Geräte anderer Hersteller (Hardware)

Die Vermarktung von LDAC als Hi-Res-Codec schadet seiner technischen Komponente: Es ist dumm, Bitrate für die Übertragung von für das menschliche Ohr unhörbaren Frequenzen und die Erhöhung der Bittiefe aufzuwenden, während es nicht ausreicht, CD-Qualität (44.1/16) ohne Verluste zu übertragen . Glücklicherweise verfügt der Codec über zwei Betriebsmodi: CD-Audioübertragung und Hi-Res-Audioübertragung. Im ersten Fall werden nur 44.1 kHz/16 Bit über die Luft übertragen.

Da ein Software-LDAC-Decoder nicht frei verfügbar ist, ist es nicht möglich, den Codec ohne zusätzliche Geräte zu testen, die LDAC dekodieren. Nach den Ergebnissen des LDAC-Tests an einem DAC mit seiner Unterstützung, den die Ingenieure von SoundGuys.com über einen digitalen Ausgang angeschlossen und den ausgegebenen Ton auf Testsignalen aufgezeichnet haben, bietet LDAC 660 und 990 kbps im CD-Qualitätsmodus ein Signal-zu- Rauschverhältnis etwas besser als das von aptX HD.

Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten
Source: www.soundguys.com/ldac-ultimate-bluetooth-guide-20026

LDAC unterstützt auch dynamische Bitraten außerhalb etablierter Profile – von 138 kbps bis 990 kbps, aber soweit ich das beurteilen kann, verwendet Android nur die standardisierten Profile 303/606/909 und 330/660/990 kbps.

Andere Codecs

Andere A2DP-Codecs sind nicht weit verbreitet. Ihre Unterstützung fehlt entweder fast vollständig oder ist nur bei bestimmten Kopfhörer- und Smartphone-Modellen verfügbar.
Der in A2DP standardisierte ATRAC-Codec wurde selbst von Sony selbst noch nie als Bluetooth-Codec verwendet. Die Codecs Samsung HD, Samsung Scalable und Samsung UHQ-BT werden von Sende- und Empfangsgeräten nur sehr begrenzt unterstützt, und HWA LHDC ist zu neu und unterstützt nur drei (?) Geräte.

Codec-Unterstützung für Audiogeräte

Nicht alle Hersteller veröffentlichen genaue Informationen zu den Codecs, die von bestimmten drahtlosen Kopfhörern, Lautsprechern, Empfängern oder Sendern unterstützt werden. Manchmal kommt es vor, dass die Unterstützung eines bestimmten Codecs nur für die Übertragung, nicht aber für den Empfang gilt (relevant für kombinierte Sender-Empfänger), obwohl der Hersteller einfach „Unterstützung“ angibt, ohne Hinweise (ich gehe davon aus, dass es bei einigen eine separate Lizenzierung von Encodern und Decodern gibt). Schuld daran sind die Codecs). Bei den günstigsten Geräten findet man die deklarierte aptX-Unterstützung möglicherweise überhaupt nicht.

Leider wird auf den Schnittstellen der meisten Betriebssysteme der verwendete Codec nirgends angezeigt. Informationen hierzu sind nur in Android ab Version 8 und macOS verfügbar. Allerdings werden auch in diesen Betriebssystemen nur die Codecs angezeigt, die sowohl vom Telefon/Computer als auch von den Kopfhörern unterstützt werden.

Wie können Sie herausfinden, welche Codecs Ihr Gerät unterstützt? Erfassen und analysieren Sie Traffic Dump mit A2DP-Verhandlungsparametern!
Dies ist unter Linux, macOS und Android möglich. Unter Linux können Sie Wireshark oder hcidump verwenden, unter macOS können Sie Bluetooth Explorer verwenden und unter Android können Sie die Standardfunktion zum Speichern von Bluetooth-HCI-Dumps verwenden, die in den Entwicklertools verfügbar ist. Sie erhalten einen Dump im btsnoop-Format, der in den Wireshark-Analysator geladen werden kann.
Beachten: Ein korrekter Dump kann nur erhalten werden, wenn Sie Ihr Telefon/Computer mit Kopfhörern/Lautsprechern verbinden (egal wie lustig es auch klingen mag)! Die Kopfhörer können selbständig eine Verbindung mit dem Telefon herstellen. In diesem Fall fordern sie eine Liste der Codecs vom Telefon an und nicht umgekehrt. Um sicherzustellen, dass der richtige Dump aufgezeichnet wird, entkoppeln Sie zunächst das Gerät und koppeln Sie dann Ihr Telefon mit den Kopfhörern, während Sie den Dump aufzeichnen.

Nutzen Sie den folgenden Anzeigefilter, um irrelevanten Traffic herauszufiltern:

btavdtp.signal_id

Als Ergebnis sollten Sie etwas Ähnliches sehen:
Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Sie können auf jedes Element im Befehl „GetCapabilities“ klicken, um die detaillierten Eigenschaften des Codecs anzuzeigen.
Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Wireshark kennt nicht alle Codec-Kennungen, daher müssen einige Codecs manuell entschlüsselt werden. Sehen Sie sich dazu die folgende Kennungstabelle an:

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

Um Dumps nicht manuell zu analysieren, habe ich einen Dienst erstellt, der alles automatisch analysiert: btcodecs.valdikss.org.ru

Vergleich von Codecs. Welcher Codec ist besser?

Jeder Codec hat seine eigenen Vor- und Nachteile.
aptX und aptX HD verwenden hartcodierte Profile, die nicht geändert werden können, ohne den Encoder und Decoder zu modifizieren. Weder der Telefonhersteller noch der Kopfhörerhersteller können die Bitrate oder die aptX-Kodierungsfaktoren ändern. Der Besitzer des Codecs, Qualcomm, stellt einen Referenz-Encoder in Form einer Bibliothek zur Verfügung. Diese Fakten machen die Stärke von aptX aus – Sie wissen im Voraus, welche Klangqualität Sie erhalten, ohne jedes „Aber“.

Im Gegensatz dazu verfügt SBC über viele konfigurierbare Parameter, eine dynamische Bitrate (der Encoder kann den Bitpool-Parameter reduzieren, wenn die Funkwellen ausgelastet sind) und verfügt über keine fest codierten Profile, sondern nur über die empfohlenen „mittlere Qualität“ und „hohe Qualität“. im 2-Jahr zur A2003DP-Spezifikation hinzugefügt. „Hohe Qualität“ ist nach heutigen Maßstäben nicht mehr so ​​hoch und die meisten Bluetooth-Stacks erlauben es nicht, Parameter besser als das Profil „Hohe Qualität“ zu verwenden, obwohl es hierfür keine technischen Einschränkungen gibt.
Bluetooth SIG verfügt nicht über einen Referenz-SBC-Encoder als Bibliothek und die Hersteller implementieren ihn selbst.
Dies sind die Schwächen von SBC – es ist nie im Voraus klar, welche Klangqualität von einem bestimmten Gerät zu erwarten ist. SBC kann sowohl Audio in niedriger als auch in sehr hoher Qualität erzeugen, letzteres ist jedoch nicht erreichbar, ohne die künstlichen Einschränkungen von Bluetooth-Stacks zu deaktivieren oder zu umgehen.

Bei AAC ist die Situation nicht eindeutig: Einerseits sollte der Codec theoretisch eine Qualität erzeugen, die nicht vom Original zu unterscheiden ist, aber in der Praxis wird dies, gemessen an den Tests des SoundGuys-Labors auf verschiedenen Android-Geräten, nicht bestätigt. Der Fehler liegt höchstwahrscheinlich bei minderwertigen Hardware-Audio-Encodern, die in verschiedene Telefon-Chipsätze integriert sind. Es ist sinnvoll, AAC nur auf Apple-Geräten zu verwenden und auf Android auf aptX und LDAC zu beschränken.

Hardware, die alternative Codecs unterstützt, ist in der Regel von höherer Qualität, da es bei sehr günstigen Geräten mit geringer Qualität keinen Sinn macht, Lizenzgebühren für die Nutzung dieser Codecs zu zahlen. In meinen Tests klingt SBC auf hochwertigen Geräten sehr gut.

Ich habe einen Webdienst erstellt, der Audio in Echtzeit direkt im Browser in SBC, aptX und aptX HD kodiert. Damit können Sie diese Audio-Codecs testen, ohne tatsächlich Audio über Bluetooth zu übertragen, auf beliebigen kabelgebundenen Kopfhörern, Lautsprechern und Ihrer Lieblingsmusik, und auch Kodierungsparameter direkt während der Audiowiedergabe ändern:
btcodecs.valdikss.org.ru/sbc-encoder
Der Dienst nutzt die SBC-Codierungsbibliotheken aus dem BlueZ-Projekt und libopenaptx von ffmpeg, die über emscripten in WebAssembly und JavaScript aus C kompiliert werden, um im Browser ausgeführt zu werden. Wer könnte von einer solchen Zukunft träumen!

Hier ist, wie sieht es aus:

Beachten Sie, wie sich der Rauschpegel nach 20 kHz bei verschiedenen Codecs ändert. Die ursprüngliche MP3-Datei enthält keine Frequenzen über 20 kHz.

Versuchen Sie, den Codec zu wechseln, und sehen Sie, ob Sie den Unterschied zwischen dem Original, SBC 53 Joint Stereo (dem Standard- und gebräuchlichsten Profil) und aptX/aptX HD hören.

Ich kann den Unterschied zwischen den Codecs hören in Kopfhörern!

Menschen, die den Unterschied zwischen Codecs beim Testen über einen Webdienst nicht hören, behaupten, dass sie ihn hören, wenn sie Musik über drahtlose Kopfhörer hören. Leider ist dies kein Scherz oder ein Placebo-Effekt: Der Unterschied ist wirklich hörbar, aber er wird nicht durch Unterschiede verursacht Codecs.

Die überwiegende Mehrheit der Bluetooth-Audio-Chipsätze, die in drahtlosen Empfangsgeräten verwendet werden, sind mit einem digitalen Signalprozessor (DSP) ausgestattet, der einen Equalizer, Kompander, Stereo-Expander und andere Dinge implementiert, die den Klang verbessern (oder verändern). Hersteller von Bluetooth-Geräten können DSP konfigurieren für jeden Codec separat, und wenn der Hörer zwischen Codecs wechselt, wird er denken, dass er einen Unterschied in der Funktionsweise der Codecs hört, während er in Wirklichkeit unterschiedliche DSP-Einstellungen hört.

Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten
DSP-Kalimba-Audioverarbeitungspipeline in Chips, hergestellt von CSR/Qualcomm

Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten
Aktivieren Sie für jeden Codec unterschiedliche DSP-Funktionen und geben Sie diese separat aus

Einige Premium-Geräte verfügen über eine Software, mit der Sie die DSP-Einstellungen anpassen können, die meisten günstigeren Kopfhörer jedoch nicht, und Benutzer können die Audio-Nachbearbeitung nicht manuell deaktivieren.

Funktionsmerkmale von Geräten

Die moderne Version des A2DP-Standards hat Funktion „absolute Lautstärkeregelung“. — Lautstärkeregelung des Geräts mithilfe spezieller Befehle des AVRCP-Protokolls, das die Verstärkung der Ausgangsstufe regelt, anstatt die Lautstärke des Audiostreams programmgesteuert zu reduzieren. Wenn Sie die Lautstärke Ihrer Kopfhörer ändern und die Änderung nicht mit der Lautstärke Ihres Telefons synchronisiert wird, unterstützen Ihre Kopfhörer oder Ihr Telefon diese Funktion nicht. In diesem Fall ist es sinnvoll, Musik immer mit maximaler Lautstärke auf dem Telefon zu hören und die tatsächliche Lautstärke mit den Kopfhörertasten anzupassen – in diesem Fall wird das Signal-Rausch-Verhältnis besser und die Audioqualität verbessert sollte sein oben.
In Wirklichkeit gibt es traurige Situationen. Bei meinen RealForce OverDrive D1-Kopfhörern für SBC ist ein starker Kompander eingeschaltet, und eine Erhöhung der Lautstärke führt zu einer Erhöhung des Pegels leiser Töne, während sich die Lautstärke lauter Töne nicht ändert (das Signal wird komprimiert). Aus diesem Grund muss man die Lautstärke am Computer auf etwa die Hälfte einstellen, dann gibt es praktisch keinen Komprimierungseffekt.
Nach meinen Beobachtungen unterstützen alle Kopfhörer mit zusätzlichen Codecs die absolute Lautstärkeregelungsfunktion, offenbar ist dies eine der Voraussetzungen für die Codec-Zertifizierung.

Einige Kopfhörer unterstützen zwei Geräte gleichzeitig anschließen. So können Sie beispielsweise Musik von Ihrem Computer hören und Anrufe von Ihrem Telefon entgegennehmen. Beachten Sie jedoch, dass in diesem Modus alternative Codecs deaktiviert sind und nur SBC verwendet wird.

AVDTP 1.3 Delay Reporting-Funktion ermöglicht es den Kopfhörern, dem Sendegerät die Verzögerung mitzuteilen, mit der der Ton tatsächlich abgespielt wird. Dadurch können Sie die Synchronisierung von Audio und Video beim Ansehen von Videodateien anpassen: Wenn es Probleme mit der Funkübertragung gibt, bleibt der Ton nicht hinter dem Video zurück, sondern im Gegenteil, das Video wird vom Videoplayer verlangsamt, bis der Audio und Video werden wieder synchronisiert.
Die Funktion wird von vielen Kopfhörern, Android 9+ und Linux mit PulseAudio 12.0+ unterstützt. Mir ist keine Unterstützung dieser Funktion auf anderen Plattformen bekannt.

Bidirektionale Kommunikation über Bluetooth. Sprachübertragung.

Für die Sprachübertragung in Bluetooth kommt Synchronous Connection Oriented (SCO) zum Einsatz – synchrone Übertragung mit vorheriger Aushandlung der Verbindung. Mit diesem Modus können Sie Ton und Sprache streng der Reihe nach mit symmetrischen Sende- und Empfangsgeschwindigkeiten übertragen, ohne auf die Bestätigung der Übertragung und das erneute Senden von Paketen warten zu müssen. Dies verringert die Gesamtverzögerung der Audioübertragung über den Funkkanal, führt jedoch zu erheblichen Einschränkungen hinsichtlich der pro Zeiteinheit übertragenen Datenmenge und wirkt sich negativ auf die Qualität aus.
Wenn dieser Modus verwendet wird, werden sowohl Sprache als auch Audio mit der gleichen Qualität übertragen.
Leider ist die Sprachqualität über Bluetooth im Jahr 2019 immer noch schlecht und es ist unklar, warum die Bluetooth SIG nichts dagegen unternimmt.

CVSD

Der CVSD-Basis-Sprachcodec wurde 2002 standardisiert und wird von allen bidirektionalen Bluetooth-Kommunikationsgeräten unterstützt. Es ermöglicht eine Audioübertragung mit einer Abtastfrequenz von 8 kHz, was der Qualität herkömmlicher kabelgebundener Telefonie entspricht.

Ein Beispiel für eine Aufnahme in diesem Codec.

mSBC

Der zusätzliche mSBC-Codec wurde 2009 standardisiert und 2010 erschienen bereits Chips, die ihn zur Sprachübertragung nutzen. mSBC wird von verschiedenen Geräten weitgehend unterstützt.
Dabei handelt es sich nicht um einen eigenständigen Codec, sondern um einen regulären SBC des A2DP-Standards mit einem festen Kodierungsprofil: 16 kHz, Mono, Bitpool 26.

Ein Beispiel für eine Aufnahme in diesem Codec.

Nicht brillant, aber viel besser als CVSD, aber es ist immer noch nervig, es für die Online-Kommunikation zu verwenden, insbesondere wenn man im Spiel über Kopfhörer kommuniziert – der Ton des Spiels wird auch mit einer Abtastrate von 16 kHz übertragen.

Das Unternehmen FastStreamCSR beschloss, die Idee der Wiederverwendung von SBC zu entwickeln. Um die Einschränkungen des SCO-Protokolls zu umgehen und höhere Bitraten zu verwenden, ging CSR einen anderen Weg: Sie führten die Unterstützung für bidirektionales SBC-Audio in den unidirektionalen Audioübertragungsstandard A2DP ein, standardisierten Codierungsprofile und nannten es „FastStream“.

FastStream überträgt Stereo-Audio mit 44.1 oder 48 kHz und einer Bitrate von 212 Kbit/s an die Lautsprecher, und Mono mit 16 kHz und einer Bitrate von 72 Kbit/s wird für die Audioübertragung vom Mikrofon verwendet (etwas besser als mSBC). Solche Parameter eignen sich viel besser für die Kommunikation in Online-Spielen – der Sound des Spiels und der Gesprächspartner wird von hoher Qualität sein.

Ein Beispiel für eine Aufnahme in diesem Codec (+ Ton vom Mikrofon, wie bei mSBC).

Das Unternehmen hat sich eine interessante Krücke ausgedacht, die jedoch aufgrund der Tatsache, dass sie dem A2DP-Standard widerspricht, nur von einigen Sendern des Unternehmens unterstützt wird (die als USB-Audiokarte und nicht als Bluetooth-Gerät funktionieren), dies ist jedoch nicht der Fall Erhalten Sie Unterstützung in Bluetooth-Stacks. Allerdings ist die Anzahl der Kopfhörer mit FastStream-Unterstützung nicht so gering.

Derzeit gibt es nur FastStream-Unterstützung im Betriebssystem als Patch für Linux PulseAudio vom Entwickler Pali Rohár, der nicht im Hauptzweig des Programms enthalten ist.

aptX Geringe Latenz

Zu Ihrer großen Überraschung unterstützt aptX Low Latency auch bidirektionales Audio und implementiert das gleiche Prinzip wie FastStream.
Es ist nirgendwo möglich, diese Funktion des Codecs zu nutzen – es gibt keine Unterstützung für Low-Latency-Dekodierung in irgendeinem mir bekannten Betriebssystem oder Bluetooth-Stack.

Bluetooth 5, Classic und Low Energy

Es herrschte große Verwirrung hinsichtlich der Bluetooth-Spezifikationen und -Versionen, da zwei inkompatible Standards derselben Marke vorhanden sind, die beide häufig für unterschiedliche Zwecke verwendet werden.

Es gibt zwei verschiedene, inkompatible Bluetooth-Protokolle: Bluetooth Classic und Bluetooth Low Energy (LE, auch bekannt als Bluetooth Smart). Es gibt noch ein drittes Protokoll, Bluetooth High Speed, das jedoch nicht weit verbreitet ist und in Haushaltsgeräten nicht verwendet wird.

Ab Bluetooth 4.0 betrafen Änderungen in der Spezifikation hauptsächlich Bluetooth Low Energy, die Classic-Version erhielt nur geringfügige Verbesserungen.

Liste der Änderungen zwischen Bluetooth 4.2 und Bluetooth 5:

9 ÄNDERUNGEN VON v4.2 BIS 5.0

9.1 NEUE FUNKTIONEN

In der Bluetooth Core Specification 5.0-Version werden mehrere neue Funktionen eingeführt. Die wichtigsten Verbesserungsbereiche sind:
• Slot-Verfügbarkeitsmaske (SAM)
• 2 Msym/s PHY für LE
•LE Long Range
• Nicht vernetzbare Werbung mit hohem Arbeitszyklus
• LE-Werbeerweiterungen
• LE-Kanalauswahlalgorithmus Nr. 2
9.1.1 In CSA5 hinzugefügte Funktionen – Integriert in Version 5.0
•Höhere Ausgangsleistung

Source: www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=421043 (291-Seite)

Lediglich eine Änderung betraf die Classic-Version im Rahmen der Bluetooth 5-Spezifikation: Sie fügte Unterstützung für die Slot Availability Mask (SAM)-Technologie hinzu, die die Trennung von Radiosendungen verbessern soll. Alle anderen Änderungen betreffen nur Bluetooth LE (und auch höhere Ausgangsleistung).

alle Audiogeräte verwenden ausschließlich Bluetooth Classic. Es ist nicht möglich, Kopfhörer und Lautsprecher über Bluetooth Low Energy zu verbinden: Es gibt keinen Standard für die Audioübertragung mit LE. Der A2DP-Standard, der zur Übertragung hochwertiger Audiodaten verwendet wird, funktioniert nur über Bluetooth Classic, und in LE gibt es kein Analog.

Fazit: Der Kauf von Audiogeräten mit Bluetooth 5 nur wegen der neuen Version des Protokolls ist sinnlos. Bluetooth 4.0/4.1/4.2 funktioniert im Zusammenhang mit der Audioübertragung genauso.
Wenn in der Ankündigung neuer Kopfhörer von einer verdoppelten Reichweite und einem geringeren Stromverbrauch dank Bluetooth 5 die Rede ist, dann sollten Sie wissen, dass sie das entweder selbst nicht verstehen oder Sie in die Irre führen. Kein Wunder, denn selbst Hersteller von Bluetooth-Chips sind in ihren Ankündigungen verwirrt über die Unterschiede zwischen der neuen Version des Standards und einige Bluetooth-5-Chips unterstützen die fünfte Version nur für LE und verwenden 4.2 für Classic.

Verzögerung der Audioübertragung

Das Ausmaß der Verzögerung (Verzögerung) bei Audio hängt von vielen Faktoren ab: der Größe des Puffers im Audio-Stack, im Bluetooth-Stack und im drahtlosen Wiedergabegerät selbst sowie der algorithmischen Verzögerung des Codecs.

Die Latenz einfacher Codecs wie SBC, aptX und aptX HD ist mit 3–6 ms sehr gering und kann vernachlässigt werden, komplexe Codecs wie AAC und LDAC können jedoch zu spürbaren Verzögerungen führen. Die AAC-Algorithmuslatenz für 44.1 kHz beträgt 60 ms. LDAC – etwa 30 ms (basierend auf einer groben Analyse des Quellcodes. Ich könnte mich irren, aber nicht viel.)

Die resultierende Latenz hängt stark vom Wiedergabegerät, seinem Chipsatz und Puffer ab. Bei Tests habe ich auf verschiedenen Geräten (mit dem SBC-Codec) eine Spreizung von 150 bis 250 ms erhalten. Wenn wir davon ausgehen, dass Geräte, die die zusätzlichen Codecs aptX, AAC und LDAC unterstützen, hochwertige Komponenten und eine kleine Puffergröße verwenden, ergeben sich folgende typische Latenzen:

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

Ich möchte Sie daran erinnern: aptX Low Latency wird in Betriebssystemen nicht unterstützt, weshalb eine niedrigere Latenz nur mit einer Sender+Empfänger- oder Sender+Kopfhörer/Lautsprecher-Kombination erreicht werden kann und alle Geräte diesen Codec unterstützen müssen.

Probleme mit Bluetooth-Geräten, Zertifizierung und Logo

Wie unterscheidet man ein hochwertiges Audiogerät von einem billigen Gerät? Zuallererst im Aussehen!

Für günstige chinesische Kopfhörer, Lautsprecher und Receiver:

  1. Das Wort „Bluetooth“ fehlt auf der Verpackung und dem Gerät, am häufigsten werden „Wireless“ und „BT“ verwendet
  2. Bluetooth-Logo fehlt Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten auf der Box oder dem Gerät
  3. Keine blau blinkende LED

Das Fehlen dieser Elemente weist darauf hin, dass das Gerät nicht zertifiziert wurde, was bedeutet, dass es möglicherweise von geringer Qualität und problematisch ist. Bluedio-Kopfhörer sind beispielsweise nicht Bluetooth-zertifiziert und entsprechen nicht vollständig der A2DP-Spezifikation. Sie hätten die Zertifizierung nicht bestanden.

Betrachten wir mehrere Geräte und Boxen daraus:
Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Audio über Bluetooth: Möglichst viele Details zu Profilen, Codecs und Geräten

Dies sind alles nicht zertifizierte Geräte. Die Anleitung kann ein Logo und den Namen der Bluetooth-Technologie enthalten, das Wichtigste ist jedoch, dass sie sich auf der Verpackung und/oder dem Gerät selbst befinden.

Wenn Ihr Kopfhörer oder Lautsprecher sagt: „Ze Bluetooth Dewise wurde erfolgreich verbunden“, ist dies ebenfalls kein Hinweis auf deren Qualität:

Abschluss

Kann Bluetooth kabelgebundene Kopfhörer und Headsets vollständig ersetzen? Es ist leistungsfähig, allerdings auf Kosten einer schlechten Anrufqualität, einer erhöhten Audiolatenz, die in Spielen störend sein kann, und einer Vielzahl proprietärer Codecs, für die Lizenzgebühren anfallen und die Endkosten sowohl für Smartphones als auch für Kopfhörer steigen.

Die Vermarktung alternativer Codecs ist sehr stark: aptX und LDAC werden als lang erwarteter Ersatz für den „veralteten und schlechten“ SBC präsentiert, der bei weitem nicht so schlecht ist, wie viele denken.

Wie sich herausstellte, können die künstlichen Einschränkungen der SBC-Bitrate von Bluetooth-Stacks umgangen werden, sodass der SBC aptX HD in nichts nachsteht. Ich habe die Initiative selbst in die Hand genommen und einen Patch für die LineageOS-Firmware erstellt: Wir modifizieren den Bluetooth-Stack, um den Klang auf Kopfhörern ohne AAC-, aptX- und LDAC-Codecs zu verbessern

Weitere Informationen finden Sie auf den Websites Sound Jungs и SoundExpert.

Bonus: SBC-Referenz-Encoder, A2DP-Bitstream-Informationen und Testdateien. Diese Datei wurde früher öffentlich auf der Bluetooth-Website veröffentlicht, ist jetzt aber nur für Mitglieder der Bluetooth SIG verfügbar.

Source: habr.com

Kommentar hinzufügen