Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Aufgrund der Massenproduktion von Smartphones ohne 3,5-mm-Klinkenanschluss sind kabellose Bluetooth-Kopfhörer für viele zur Hauptmethode des Musikhörens und für die Kommunikation im Headset-Modus geworden.
Hersteller von drahtlosen Geräten geben nicht immer detaillierte Produktspezifikationen an, und die Artikel über Bluetooth-Audio im Internet sind oft widersprüchlich, stellenweise ungenau, beleuchten nicht alle Besonderheiten und kopieren häufig die gleiche nicht zutreffende Information.
Lassen Sie uns den Protokollen, den Möglichkeiten von Bluetooth-Stacks in Betriebssystemen, Kopfhörern und Lautsprechern sowie den Bluetooth-Codecs für Musik und Sprache auf den Grund gehen. Wir werden herausfinden, was die Qualität des übertragenen Sounds und die Verzögerung beeinflusst, lernen, Informationen über unterstützte Codecs und andere Gerätefunktionen zu sammeln und zu dekodieren.

TL;DR:

  • SBC – ein akzeptabler Codec
  • Die Kopfhörer verfügen über einen eigenen Equalizer und eine Nachbearbeitung für jeden Codec.
  • aptX ist nicht so gut, wie es die Werbung behauptet.
  • LDAC – Marketing-Humbug.
  • Die Sprachqualität ist nach wie vor gering.
  • Im Browser können Audio-Encoder in C eingebaut und über Emscripten in WebAssembly kompiliert werden, ohne dass sie spürbare Verzögerungen verursachen.

Musik über Bluetooth

Die Funktionalität von Bluetooth wird durch Profile festgelegt, die spezifische Funktionen definieren. Die Übertragung von Musik über Bluetooth erfolgt unter Verwendung des Profils für die Übertragung von hochqualitativem, einseitigem Audio A2DP. Der A2DP-Standard wurde im Jahr 2003 angenommen und hat sich seitdem grundlegend nicht verändert.
Innerhalb des Profils ist ein obligatorischer Codec mit niedriger Komplexität, SBC, der speziell für Bluetooth entwickelt wurde, sowie drei zusätzliche standardisiert. Auch die Verwendung von nicht dokumentierten, proprietären Codecs ist zulässig.

Stand Juni 2019 befinden wir uns im Comic xkcd mit 14 A2DP-Codec:

  • SBC ← standardisiert in A2DP, wird von allen Geräten unterstützt
  • MPEG-1/2 Layer 1/2/3 ← standardisiert in A2DP: allgemein bekannt MP3, verwendet in digitalem TV MP2, und unbekannt MP1
  • MPEG-2/4 AAC ← standardisiert in A2DP
  • ATRAC ← alter Codec von Sony, standardisiert in A2DP
  • LDAC ← neuer Codec von Sony
  • aptX ← Codec aus dem Jahr 1988
  • aptX HD ← dasselbe wie aptX, jedoch mit anderen Kodierungsparametern
  • aptX Low Latency ← ganz anderer Codec, keine Softwareimplementierung verfügbar
  • aptX Adaptive ← another Codec from Qualcomm
  • FastStream ← Pseudocodec, bidirektionale Modifikation SBC
  • HWA LHDC ← neuer Codec von Huawei
  • Samsung HD ← wird von 2 Geräten unterstützt
  • Samsung Scalable ← wird von 2 Geräten unterstützt
  • Samsung UHQ-BT ← wird von 3 Geräten unterstützt

Warum braucht man überhaupt Codecs, fragen Sie sich, wenn Bluetooth EDR bietet, das Daten mit Geschwindigkeiten von 2 und 3 Mbit/s überträgt, und für unkomprimiertes Stereo-16-Bit-PCM sind lediglich 1,4 Mbit/s erforderlich?

Datenübertragung über Bluetooth

Bluetooth unterstützt zwei Arten der Datenübertragung: Asynchronous Connection Less (ACL) für asynchrone Übertragung ohne Verbindungsaufbau und Synchronous Connection Oriented (SCO) für synchrone Übertragung mit vorheriger Verbindungsaushandlung.
Die Übertragung erfolgt nach einem Frequenz-Hüpf-/Zeitteilungs-Duplex-Schema (Frequency-Hop/Time-Division-Duplex, FH/TDD), wobei die Zeit in Intervalle von 625 Mikrosekunden unterteilt wird, die als Slots bezeichnet werden. Ein Gerät führt die Übertragung in den geraden Slots durch, das andere in den ungeraden. Das übertragene Paket kann 1, 3 oder 5 Slots in Anspruch nehmen, abhängig von der Datengröße und dem festgelegten Übertragungsmodus. In diesem Fall erfolgt die Übertragung eines Gerätes in den geraden und ungeraden Slots bis zum Ende der Übertragung. Insgesamt können pro Sekunde bis zu 1600 Pakete empfangen und gesendet werden, wobei jedes Paket 1 Slot benötigt und beide Geräte ununterbrochen senden und empfangen.

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

Bei der Musikwiedergabe wird ein asynchroner Ansatz verwendet, der fast immer über die Pakettypen 2-DH5 und 3-DH5 erfolgt, die im EDR-Modus jeweils maximal 2 Mbit/s und 3 Mbit/s übertragen und 5 Zeitslots im Zeitschlitzverfahren in Anspruch nehmen.

Schematische Darstellung der Übertragung mit 5 Slots für ein Gerät und 1 Slot für ein anderes (DH5/DH1):
Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Aufgrund des Zeitmultiplex-Prinzips müssen wir nach der Übertragung eines Pakets auf einen 625-Mikrosekunden-Zeitslot warten, wenn das zweite Gerät uns nichts überträgt oder ein kleines Paket sendet, und länger warten, wenn das zweite Gerät große Pakete überträgt. Wenn mehr als ein Gerät (z. B. Kopfhörer, Uhr und Fitnessarmband) mit dem Telefon verbunden ist, wird die Übertragungszeit auf alle Geräte verteilt.

Die Notwendigkeit, Audio in spezielle Transportprotokolle wie L2CAP und AVDTP zu kapseln, entzieht 16 Byte dem maximalen möglichen Übertragungsvolumen der nützlichen Audiodaten.

Pakettyp
Anzahl der Slots
Max. Anzahl an Bytes pro Paket
Max. Anzahl an Bytes der A2DP-Nutzlast
Max. Bitrate der A2DP-Nutzlast

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 kbit/s sind in realen Bedingungen mit einem verrauschten 2,4 GHz-Bereich und der Notwendigkeit der Übertragung von Steuerdaten definitiv nicht ausreichend für die Übertragung von unkomprimiertem Audio. EDR mit 3 Mbit/s ist empfangsstark und empfindlich gegenüber Störungen im Signal. Daher ist selbst im 3-DH5-Modus eine komfortable PCM-Übertragung nicht möglich; es wird ständig zu kurzen Unterbrechungen kommen, und die Verbindung wird nur über kurze Distanzen, etwa ein paar Meter, stabil sein.
In der Praxis ist selbst ein 990 kbit/s-Audiostream (LDAC 990 kbit/s) nur schwer übertragbar.

Kommen wir zurück zu den Codecs.

SBC

Ein Codec, der für alle Geräte, die den A2DP-Standard unterstützen, verpflichtend ist. Es ist gleichzeitig der beste und der schlechteste Codec.

Abtastrate
Bit-Tiefe
Bitrate
Unterstützung der Kodierung
Unterstützung der Dekodierung

16, 32, 44.1, 48 kHz
16 Bit
10-1500 kbit/s
Von allen Geräten
Von allen Geräten

SBC ist ein einfacher und rechenoptimierter Codec mit einem primitiven psychoakustischen Modell (er verwendet nur die Maskierung leiser Töne) und nutzt adaptive Puls-Code-Modulation (APCM).
Die A2DP-Spezifikation empfiehlt die Verwendung von zwei Profilen: Mittelqualität und Hochqualität.
Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Der Codec bietet viele Einstellungen, um die algorithmische Verzögerung, die Anzahl der Proben im Block und die Bitverteilung zu steuern, aber weitgehend werden dieselben in der Spezifikation empfohlenen Parameter verwendet: Joint Stereo, 8 Frequenzbänder, 16 Blöcke im Audio-Frame, und die Methode zur Bitverteilung ist Loudness.
SBC unterstützt die dynamische Anpassung des Bitpool-Parameters, der direkt den Bitrate beeinflusst. Wenn das Radio überlastet ist, gehen Pakete verloren oder die Geräte sind weit voneinander entfernt, kann die Audioquelle den Bitpool verringern, bis die Verbindung wieder stabil ist.

Die meisten Kopfhörerhersteller setzen den maximalen Wert für den Bitpool-Parameter auf 53 fest, was die Bitrate auf 328 Kilobit pro Sekunde bei Verwendung des empfohlenen Profils begrenzt.
Selbst wenn der Hersteller der Kopfhörer den maximalen Wert für den Bitpool über 53 festgelegt hat (solche Modelle sind zum Beispiel: Beats Solo³, JBL Everest Elite 750NC, Apple AirPods sowie einige Receiver und Auto-Head-Units), erlauben die meisten Betriebssysteme keine erhöhten Bitraten aufgrund einer internen Begrenzung in den Bluetooth-Stacks.
Darüber hinaus setzen einige Hersteller für bestimmte Geräte einen niedrigen maximalen Bitpool-Wert fest. Zum Beispiel beträgt dieser bei Bluedio T 39 und bei Samsung Gear IconX 37, was zu einer schlechten Audioqualität führt.

Künstliche Beschränkungen seitens der Entwickler von Bluetooth-Stacks sind wahrscheinlich aufgrund der Inkompatibilität einiger Geräte mit hohen Bitpool-Werten oder untypischen Profilen entstanden, selbst wenn diese deren Unterstützung vermeldeten, sowie aufgrund unzureichender Tests bei der Zertifizierung. Es war für die Autoren der Bluetooth-Stacks einfacher, sich auf die Genehmigung des empfohlenen Profils zu beschränken, anstatt eine Datenbank fehlerhafter Geräte zu erstellen (obwohl sie dies jetzt für andere fehlerhaft funktionierende Funktionen tun).

SBC weist Bitraten für Frequenzbänder dynamisch zu, indem es von niedrigeren zu höheren Frequenzen mit unterschiedlichen Gewichtungen arbeitet. Wenn die gesamte Bitrate für niedrige und mittlere Frequenzen verwendet wird, werden die höheren Frequenzen "abgeschnitten" (stattdessen gibt es Stille).

Beispiel SBC 328 kbit/s. Oben — das Original, unten — SBC, es wechselt intermittierend zwischen den Spuren. Für Audio in der Videodatei wird der verlustfreie Kompressionscodec FLAC verwendet. Die Verwendung von FLAC im mp4-Container ist offiziell nicht standardisiert, daher ist es nicht sicher, dass Ihr Browser dies wiedergeben kann, aber es sollte in den neuesten Versionen von Desktop-Chrome und Firefox funktionieren. Wenn Sie keinen Sound haben, können Sie die Datei herunterladen und sie in einem vollständigen Videoplayer öffnen.
ZZ Top — Sharp Dressed Man

Im Spektrogramm ist der Moment des Wechsels sichtbar: SBC schneidet intermittierend leise Töne über 17,5 kHz und weist keinerlei Bitrate für das Band über 20 kHz zu. Das vollständige Spektrum ist durch einen Klick verfügbar (1,7 MB).
Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

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

Lassen Sie uns etwas Neueres nehmen und das Audio simulieren, das bei der Verwendung von Samsung Gear IconX Kopfhörern mit Bitpool 37 entstehen würde (oben — das ursprüngliche Signal, unten — SBC 239 kbit/s, Ton in FLAC).
Mindless Self Indulgence — Witness

Ich höre Knackgeräusche, einen geringeren Stereo-Effekt und ein unangenehmes 'Klicken' der Stimme in den hohen Frequenzen.

Obwohl SBC ein sehr flexibler Codec ist, der für niedrige Latenzen konfiguriert werden kann, bietet er hervorragende Audioqualität bei hohen Bitraten (452+ kbit/s) und ganz akzeptable für die meisten Nutzer in der Standard-Hochqualitäts-Einstellung (328 kbit/s). Das liegt daran, dass der A2DP-Standard keine festen Profile definiert (sondern nur Empfehlungen gibt). Die Entwickler der Stacks haben künstliche Beschränkungen für den Bitpool festgelegt, die Audioparameter werden nicht in der Benutzeroberfläche angezeigt, und die Hersteller von Kopfhörern können ihre eigenen Einstellungen festlegen, ohne jemals den Wert des Bitpool in den technischen Spezifikationen des Produkts anzugeben. Der Codec hat sich aufgrund seiner schlechten Klangqualität einen Namen gemacht, obwohl dies nicht das Problem des Codecs selbst ist.
Der Bitpool-Parameter beeinflusst die Bitrate nur innerhalb eines Profils. Der gleiche Bitpool-Wert von 53 kann eine Bitrate von 328 kbit/s im empfohlenen High Quality-Profil sowie 1212 kbit/s mit Dual Channel und 4 Frequenzbändern liefern. Daher setzen die Entwickler von Betriebssystemen neben den Einschränkungen des Bitpools auch eine Begrenzung der Bitrate. Meiner Meinung nach ist diese Situation auf eine unzureichende Ausarbeitung des A2DP-Standards zurückzuführen: Es hätte die Bitrate und nicht den Bitpool abgestimmt werden müssen.

Tabelle zur Unterstützung der SBC-Funktionalitäten in verschiedenen Betriebssystemen:

dem Betriebssystem
Unterstützte Abtastraten
Maximale Bitpool-Beschränkung
Maximale Bitrate-Beschränkung
Typische Bitrate
Dynamische Anpassung des Bitpools

Windows 10
44.1 kHz
53
512 kbit/s
328 kbit/s
✓*

Linux (BlueZ + PulseAudio)
16, 32, 44.1, 48 kHz
64 (bei eingehenden Verbindungen), 53 (bei ausgehenden)
Keine Beschränkung
328 kbit/s
✓*

macOS High Sierra
44.1 kHz
64, standardmäßig 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 kHz
53
Keine Beschränkung
328 kbit/s

* Der Bitpool reduziert sich nur, erhöht sich jedoch nicht automatisch, wenn sich die Übertragungsbedingungen verbessern. Um den Bitpool wiederherzustellen, muss die Wiedergabe gestoppt, einige Sekunden gewartet und die Audioausgabe erneut gestartet werden.
** Der Standardwert hängt von den beim Kompilieren der Firmware angegebenen Stack-Einstellungen ab. In Android 8/8.1 beträgt die Frequenz entweder 44,1 kHz oder 48 kHz, abhängig von den Kompilierungseinstellungen; in anderen Versionen werden 44,1 kHz und 48 kHz gleichzeitig unterstützt.
*** Der Bitpool-Wert kann im Bluetooth Explorer erhöht werden.

aptX und aptX HD

aptX ist ein einfacher und recheneffizienter Codec ohne psychoakustische Modellierung, der adaptive differential Pulse Code Modulation verwendet (ADPCM). Er wurde etwa 1988 eingeführt (das Datum der Patentanmeldung ist im Februar 1988 datiert), und wurde vor Bluetooth hauptsächlich in professionellen drahtlosen Audioanlagen eingesetzt. Momentan gehört es zu Qualcomm, erfordert eine Lizenzierung und Lizenzgebühren. Stand 2014: $6000 einmalig und etwa $1 pro Gerät für Stückzahlen bis zu 10.000 Geräten ( wurde im Februar 1988 eingeführt und wurde zuvor hauptsächlich in professionellen kabellosen Audioanlagen verwendet. Momentan gehört es zu Qualcomm, erfordert Lizenzen und Lizenzgebühren. Stand 2014: 6.000 $ einmalig und ca. 1 $ pro Gerät, für Stückzahlen bis zu 10.000 Geräten.Quelle, S. 16).
aptX und aptX HD sind derselbe Codec, jedoch mit unterschiedlichen Codierungsprofilen.

Der Codec hat nur einen Parameter – die Auswahl der Abtastrate. Es gibt auch die Wahl der Anzahl/Kanalmodus, aber in allen mir bekannten Geräten (über 70 Stück) wird ausschließlich Stereo unterstützt.

Codec
Abtastrate
Bit-Tiefe
Bitrate
Unterstützung der Kodierung
Unterstützung der Dekodierung

aptX
16, 32, 44.1, 48 kHz
16 Bit
128 / 256 / 352 / 384 kbit/s (je nach Abtastrate)
Windows 10 (Desktop und Mobil), macOS, Android 4.4+/7*, Blackberry OS 10
Eine breite Palette von Audiogeräten (hardwareseitig)

* Versionen bis 7 erfordern Anpassungen des Bluetooth-Stacks. Der Codec wird nur unterstützt, wenn der Hersteller des Android-Geräts die Nutzung des Codecs bei Qualcomm lizenziert hat (sofern die Betriebssystembibliotheken zur Kodierung vorhanden sind).

aptX teilt das Audio in 4 Frequenzbänder und quantisiert sie konstant mit der gleichen Anzahl von Bits: 8 Bit für 0-5,5 kHz, 4 Bit für 5,5-11 kHz, 2 Bit für 11-16,5 kHz, 2 Bit für 16,5-22 kHz (Zahlen für Abtastrate 44,1 kHz).

Beispiel für aptX-Audio (oben das Ausgangssignal, unten aptX, Spektrogramme nur des linken Kanals, Audio in FLAC):

Die hohen Frequenzen erschienen etwas röter, aber der Unterschied ist nicht hörbar.

Aufgrund der festen Verteilung der Quantisierungsbits kann der Codec keine "Bits" auf die Frequenzen übertragen, die sie am meisten benötigen. Im Gegensatz zu SBC wird aptX keine Frequenzen "abschneiden", sondern quantisierungsbedingte Geräusche hinzufügen, wodurch der dynamische Bereich des Audios verringert wird.

Es sollte nicht angenommen werden, dass die Verwendung von beispielsweise 2 Bit für die Bandbreite den Dynamikbereich auf 12 dB reduziert: ADPCM ermöglicht einen Dynamikbereich von bis zu 96 dB, selbst bei der Verwendung von 2 Bit Quantisierung, jedoch nur bei einem bestimmten Signal.
ADPCM speichert die Differenz der numerischen Darstellung zwischen dem aktuellen und dem nächsten Abtastwert, anstatt den absoluten Wert wie bei PCM zu speichern. Dies reduziert die Anforderungen an die Anzahl der Bits, die für die Speicherung derselben (verlustfreien) oder nahezu derselben (mit relativ geringem Rundungsfehler) Informationen benötigt werden. Zur Minimierung von Rundungsfehlern werden Koeffizienten-Tabellen verwendet.
Bei der Entwicklung des Codecs berechneten die Entwickler die ADPCM-Koeffizienten anhand einer Sammlung von Musik-Audiodateien. Je näher das Audiosignal an dieser Musik-Sammlung ist, desto weniger Quantisierungsfehler (Rauschen) erzeugt aptX.

Daher werden synthetische Tests immer schlechtere Ergebnisse liefern als Musik. Ich habe ein spezielles synthetisches Beispiel erstellt, bei dem aptX schwache Ergebnisse zeigt – eine Sinuskurve mit einer Frequenz von 12,4 kHz (oben ist das ursprüngliche Signal, unten aptX. Der Klang ist im FLAC-Format. Bitte die Lautstärke reduzieren!):

Spektraldiagramm:
Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Geräusche sind deutlich hörbar.

Wenn jedoch eine Sinuskurve mit geringerer Amplitude erzeugt wird, sodass sie leiser ist, werden die Geräusche ebenfalls leiser, was auf einen breiten Dynamikbereich hinweist:

Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Um den Unterschied zwischen dem ursprünglichen Musikstück und der komprimierten Version zu hören, kann einer der Signale invertiert und die Spuren kanalweise addiert werden. Dieser Ansatz ist allgemein gesehen nicht korrekt und würde mit komplexeren Codecs keine sinnvollen Ergebnisse liefern, ist aber für ADPCM durchaus geeignet.
Der Unterschied zwischen Original und aptX
Der quadratische Mittelwert der Unterschiedssignale liegt bei -37,4 dB, was für so komprimierte Musik nicht viel ist.

aptX HD

aptX HD ist kein eigenständiger Codec, sondern ein verbesserter Codierungsprofil des aptX Codecs. Es wurden Änderungen hinsichtlich der Bitanzahl vorgenommen, die für die Codierung der Frequenzbereiche verwendet werden: 10 Bit für 0-5,5 kHz, 6 Bit für 5,5-11 kHz, 4 Bit für 11-16,5 kHz, 4 Bit für 16,5-22 kHz (Zahlen für 44,1 kHz).

Codec
Abtastrate
Bit-Tiefe
Bitrate
Unterstützung der Kodierung
Unterstützung der Dekodierung

aptX HD
16, 32, 44.1, 48 kHz
24 Bit
192 / 384 / 529 / 576 kbit/s (je nach Abtastrate)
Android 8+*
Von einigen Audiogeräten (hardwareseitig)

* Versionen bis 7 erfordern Anpassungen des Bluetooth-Stacks. Der Codec wird nur unterstützt, wenn der Hersteller des Android-Geräts die Nutzung des Codecs bei Qualcomm lizenziert hat (sofern die Betriebssystembibliotheken zur Kodierung vorhanden sind).

Weniger verbreitet als aptX: scheint eine separate Lizenzierung von Qualcomm zu erfordern sowie gesonderte Lizenzgebühren.

Lassen Sie uns das Beispiel mit der Sinusschwingung bei 12,4 kHz wiederholen:
Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Viel besser als bei aptX, aber dennoch geräuschvoll.

aptX Low Latency

Ein Codec von Qualcomm, der nichts mit dem standardmäßigen aptX und aptX HD zu tun hat, basierend auf den spärlichen Informationen von Personen, die an seiner Entwicklung beteiligt waren. Er ist für die interaktive Übertragung von Audio mit niedriger Latenz (Filme, Spiele) gedacht, wo die Verzögerung des Tons nicht softwareseitig angepasst werden kann. Bekannte Softwareimplementierungen für Encoder und Decoder fehlen; er wird ausschließlich von Sendern, Empfängern, Kopfhörern und Lautsprechern unterstützt, jedoch nicht von Smartphones und Computern.

Abtastrate
Bitrate
Unterstützung der Kodierung
Unterstützung der Dekodierung

44.1 kHz
276/420 kbit/s
Einige Transmitter (Hardware)
Von einigen Audiogeräten (hardwareseitig)

AAC

AAC, oder Advanced Audio Coding, ist ein rechenintensenter Codec mit einem ausgeklügelten psychoakustischen Modell. Er hat sich weit verbreitet für Audio im Internet und ist nach MP3 der zweithäufigste. Er erfordert eine Lizenzierung und Lizenzgebühren: einmalig $15.000 (oder $1.000 für Unternehmen mit weniger als 15 Mitarbeitern) + $0,98 für die ersten 500.000 Geräte (Quelle).
Der Codec ist im Rahmen der MPEG-2- und MPEG-4-Spezifikationen standardisiert und gehört entgegen einer weit verbreiteten Annahme nicht Apple.

Abtastrate
Bitrate
Unterstützung der Kodierung
Unterstützung der Dekodierung

8 - 96 kHz
8 - 576 kbit/s (für Stereo), 256 - 320 kbit/s (typisch für Bluetooth)
macOS, Android 7+*, iOS
Eine breite Palette von Audiogeräten (hardwareseitig)

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

In iOS und macOS kommt der aktuell beste Encoder von Apple AAC zum Einsatz, der die bestmögliche Audioqualität bietet. In Android wird der zweitbeste Encoder Fraunhofer FDK AAC verwendet, aber es können auch verschiedene hardwarebasierte Encoder (SoC) mit unbekannter Kodierungsqualität zum Einsatz kommen. Laut jüngsten Tests von SoundGuys, variiert die Kodierungsqualität von AAC stark zwischen verschiedenen Android-Telefonen:
Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Die meisten drahtlosen Audiogeräte für AAC unterstützen eine maximale Bitrate von 320 kbit/s; 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, ist jedoch anfällig für Verluste beim sequenziellen Codieren bereits komprimierter Inhalte, trotzdem ist es selbst bei 256 kbit/s schwierig, Unterschiede zum Original auf iOS zu hören, selbst nach mehreren sequenziellen Codierungen. Bei einer Einzelcodierung, zum Beispiel von MP3 320 kbit/s in AAC 256 kbit/s, sind die Verluste vernachlässigbar.
Wie bei anderen Bluetooth-Codec ist es auch bei der AAC-Musikwiedergabe so, dass jede Musik zuerst dekodiert und dann vom Codec kodiert wird. Beim Abspielen von Musik im AAC-Format wird sie zunächst vom Betriebssystem dekodiert und dann erneut in AAC kodiert, um sie über Bluetooth zu übertragen. Dies ist notwendig, um mehrere Audioströme, wie Musik und eine Benachrichtigung über eine neue Nachricht, zu mischen. iOS ist da keine Ausnahme. Im Internet findet man viele Behauptungen, dass Musik im AAC-Format auf iOS nicht transkodiert wird, wenn sie über Bluetooth übertragen wird, was jedoch nicht stimmt.

MP1/2/3

Die MPEG-1/2 Part 3 Codecs umfassen das bekannte und weit verbreitete MP3, das weniger verbreitete MP2 (hauptsächlich in digitalem Fernsehen und Radio verwendet) und das weitgehend unbekannte MP1.

Die alten Codecs MP1 und MP2 werden überhaupt nicht mehr unterstützt: Ich konnte keine Kopfhörer und keinen Bluetooth-Stack finden, der sie kodiert oder dekodiert.
Das Dekodieren von MP3 wird von einigen Kopfhörern unterstützt, aber das Kodieren wird von keinem der gängigen Betriebssystem-Stacks unterstützt. Es scheint, dass der Drittanbieter-Stack BlueSoleil für Windows MP3 kodieren kann, wenn man die Konfigurationsdatei manuell ändert, aber dessen Installation führt bei mir zu einem BSoD unter Windows 10. Fazit – der Codec kann für Bluetooth-Audio praktisch nicht verwendet werden.
Früher, zwischen 2006 und 2008, bevor der A2DP-Standard in Geräten verbreitet wurde, hörten Menschen MP3-Musik über das Nokia BH-501 Headset mit der MSI BluePlayer-Software, die für Symbian und Windows Mobile verfügbar war. Zu dieser Zeit erlaubte die Architektur der Smartphone-Betriebssysteme den Zugriff auf viele niedrigere Funktionen, und unter Windows Mobile konnten sogar Drittanbieter-Bluetooth-Stacks installiert werden.

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

Wenn man das am längsten laufende Patent in den oben genannten Quellen als Maßstab nimmt, wurde die MP3-Technologie in den Vereinigten Staaten am 16. April 2017 patentfrei, als das US-Patent 6.009.399, gehalten und verwaltet von Technicolor, abgelaufen ist.

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

Abtastrate
Bitrate
Unterstützung der Kodierung
Unterstützung der Dekodierung

16 — 48 kHz
8 — 320 kbit/s
Nirgends unterstützt
Von einigen Audiogeräten (hardwareseitig)

LDAC

Der neue und aktiv beworbene „Hi-Res“-Codec von Sony unterstützt Abtastraten bis zu 96 kHz und eine 24-Bit-Tiefe, mit einer Bitrate von bis zu 990 kbit/s. Er wird als audiophiler Codec beworben und als Ersatz für bestehende Bluetooth-Codecs angeboten. Er verfügt über eine adaptive Bitratenanpassung, abhängig von den Bedingungen des Radiosignals.

Der LDAC-Encoder (libldac) ist Teil der Standardinstallation von Android, daher wird das Codieren auf jedem Android-Smartphone ab Version 8 des Betriebssystems unterstützt. Softwaredecoder sind nicht öffentlich verfügbar, die Spezifikation des Codecs ist der breiten Öffentlichkeit nicht zugänglich, jedoch ähnelt auf den ersten Blick die interne Struktur des Codecs der von ATRAC9 — ein Codec von Sony, der in der PlayStation 4 und Vita verwendet wird: beide arbeiten im Frequenzbereich, nutzen eine modifizierte diskrete Kosinustransformation (MDCT) und eine verlustbehaftete Kompression mit dem Huffman-Algorithmus.

Die Unterstützung für LDAC ist nahezu ausschließlich bei Sony-Kopfhörern zu finden. Manchmal ist die Dekodierung von LDAC auch bei Kopfhörern und DACs anderer Hersteller zu finden, allerdings sehr selten.

Abtastrate
Bitrate
Unterstützung der Kodierung
Unterstützung der Dekodierung

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 wenige Geräte anderer Hersteller (hardwareseitig)

Das Marketing von LDAC als Hi-Res-Codec schadet dessen technischen Eigenschaften: es ist unsinnig, die Bitrate für die Übertragung von für das menschliche Ohr nicht hörbaren Frequenzen und einer erhöhten Auflösung zu verschwenden, solange diese nicht ausreicht, um CD-Qualität (44,1/16) verlustfrei zu übertragen. Glücklicherweise hat der Codec zwei Betriebsmodi: die Übertragung von CD-Audio und die Übertragung von Hi-Res-Audio. Im ersten Fall wird nur 44,1 kHz/16 Bit über die Luft übertragen.

Da der LDAC-Decoder nicht öffentlich verfügbar ist, ist es unmöglich, den Codec ohne zusätzliche Geräte, die LDAC dekodieren, zu testen. Laut den Testergebnissen zu LDAC auf einem DAC, der von den Ingenieuren der Webseite SoundGuys.com über den digitalen Ausgang angeschlossen wurde, und den aufgezeichneten Klängen bei Testsignalen bietet LDAC mit 660 und 990 kbit/s im CD-Qualitätsmodus ein Signal-Rausch-Verhältnis, das nur geringfügig besser ist als das von aptX HD.

Audio über Bluetooth: umfassend über Profile, Codecs und Geräte
Quelle: www.soundguys.com/ldac-ultimate-bluetooth-guide-20026

LDAC unterstützt auch eine dynamische Bitrate außerhalb der festgelegten Profile — von 138 kbit/s bis 990 kbit/s. Aber soweit ich beurteilen kann, kommen in Android nur standardisierte Profile wie 303/606/909 und 330/660/990 kbit/s zum Einsatz.

Weitere Codecs

Andere A2DP-Codecs haben sich nicht weit verbreitet. Ihre Unterstützung ist entweder fast vollständig nicht vorhanden oder besteht nur bei bestimmten Modellen von Kopfhörern und Smartphones.
Der standardisierte A2DP-Codecs ATRAC wurde nie als Bluetooth-Codec selbst von Sony verwendet. Die Codecs Samsung HD, Samsung Scalable und Samsung UHQ-BT haben nur eine sehr eingeschränkte Unterstützung von sendenden und empfangenden Geräten, während HWA LHDC zu neu ist und nur von drei (?) Geräten unterstützt wird.

Unterstützung von Codecs durch Audiogeräte

Nicht alle Hersteller veröffentlichen genaue Informationen über die Codecs, die von bestimmten kabellosen Kopfhörern, Lautsprechern, Receivern oder Transmittern unterstützt werden. Manchmal kann es vorkommen, dass die Unterstützung eines bestimmten Codecs nur für die Übertragung, aber nicht für den Empfang vorhanden ist (dies trifft auf kombinierte Transmitter-Receiver zu), obwohl der Hersteller einfach von "Unterstützung" spricht, ohne weitere Hinweise (ich vermute, dass dies auf die getrennte Lizenzierung von Encodern und Decodern einiger Codecs zurückzuführen ist). Bei den günstigsten Geräten kann es vorkommen, dass die angegebene Unterstützung von aptX überhaupt nicht vorhanden ist.

Leider wird in den Benutzeroberflächen der meisten Betriebssysteme kein verwendeter Codec angezeigt. Informationen dazu sind nur in Android ab Version 8 und in macOS verfügbar. Selbst in diesen Betriebssystemen werden jedoch nur die Codecs angezeigt, die sowohl vom Telefon/Computer als auch von den Kopfhörern unterstützt werden.

Wie erfährt man, welche Codecs das Gerät unterstützt? Man muss den Datenverkehr mit den A2DP-Aushandlungsparametern aufzeichnen und analysieren!
Dies kann in Linux, macOS und Android durchgeführt werden. In Linux können Sie Wireshark oder hcidump verwenden, in macOS Bluetooth Explorer, und in Android gibt es die integrierte Funktion zum Speichern eines Bluetooth HCI-Dumps, die in den Entwicklertools verfügbar ist. Sie erhalten einen Dump im btsnoop-Format, den Sie in den Wireshark-Analyser hochladen können.
Bitte beachten Sie: Ein korrekter Dump kann nur erzielt werden, wenn Sie über Ihr Telefon/Computer mit den Kopfhörern/Lautsprechern verbunden sind (so kurios es auch klingen mag)! Die Kopfhörer können selbstständig eine Verbindung zum Telefon herstellen, dabei fragen sie die Liste der Codecs beim Telefon an und nicht umgekehrt. Um sicherzustellen, dass der Dump korrekt aufgenommen wird, trennen Sie zuerst die Verbindung zum Gerät und koppeln Sie dann während der Aufnahme den Telefon mit den Kopfhörern.

Verwenden Sie den folgenden Filter, um irrelevanten Traffic auszusondern:

btavdtp.signal_id

In der Folge sollten Sie etwas Ähnliches sehen:
Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Jeden Punkt des GetCapabilities-Befehls können Sie anklicken, um die detaillierten Spezifikationen des Codecs anzuzeigen.
Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Wireshark erkennt nicht alle Codec-IDs, sodass einige Codecs manuell entschlüsselt werden müssen, indem Sie die Tabelle der IDs unten einsehen:

Obligatorisch:
0x00 - SBC

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

Herstellerspezifisch:
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 - Der CSR True Wireless Stereo v3 Codec-ID für AAC
0xFF 0x000A 0x0105 - Der CSR True Wireless Stereo v3 Codec-ID für MP3
0xFF 0x000A 0x0106 - Der CSR True Wireless Stereo v3 Codec-ID für aptX

Um die Dumps nicht manuell analysieren zu müssen, habe ich einen Service erstellt, der alles automatisch analysiert: btcodecs.valdikss.org.ru

Codec-Vergleich. Welcher Codec ist besser?

Jeder Codec hat seine eigenen Vor- und Nachteile.
aptX und aptX HD verwenden festgelegte Profile, die ohne Modifikation des Encoders und Decoders nicht geändert werden können. Weder der Telefonhersteller noch der Hersteller der Kopfhörer können die Bitrate oder die Kodierungsparameter von aptX ändern. Der Eigentümer des Codecs, Qualcomm, stellt einen Referenzencoder in Form einer Bibliothek bereit. Diese Fakten sind die Stärken von aptX – Sie wissen im Voraus, welche Klangqualität Sie erhalten werden, ohne irgendwelche „Aber“.

SBC bietet im Vergleich zahlreiche Anpassungsmöglichkeiten, einen dynamischen Bitratemodus (der Encoder kann den Parameter Bitpool reduzieren, wenn das Funkspektrum überlastet ist) und hat keine festen Profile, sondern lediglich empfohlene Profile wie "durchschnittliche Qualität" und "hohe Qualität", die 2003 in die A2DP-Spezifikation aufgenommen wurden. "Hohe Qualität" ist nach heutigen Maßstäben nicht mehr wirklich hoch, und die meisten Bluetooth-Stacks erlauben es nicht, bessere Einstellungen als im Profil "hohe Qualität" zu verwenden, auch wenn technische Einschränkungen dafür fehlen.
Die Bluetooth SIG stellt keinen Referenzencoder für SBC in Form einer Bibliothek zur Verfügung, und die Hersteller setzen ihn eigenständig um.
Das sind die Schwächen von SBC – es ist nie genau vorhersehbar, welche Klangqualität von einem bestimmten Gerät zu erwarten ist. SBC kann sowohl niedrige als auch sehr hohe Klangqualität erzeugen, letztere ist jedoch ohne Deaktivierung oder Umgehung der künstlichen Beschränkungen der Bluetooth-Stacks nicht erreichbar.

Die Situation mit AAC ist uneindeutig: theoretisch sollte der Codec eine Qualität liefern, die nicht vom Original zu unterscheiden ist, doch die Praxis, basierend auf den Tests von SoundGuys auf verschiedenen Android-Geräten, bestätigt dies nicht. Höchstwahrscheinlich liegt das an den minderwertigen Hardware-Audio-Encodern, die in verschiedenen Chipsätzen von Telefonen integriert sind. AAC macht nur auf Apple-Geräten Sinn, während man auf Android mit aptX und LDAC auskommen sollte.

Geräte, die alternative Codecs unterstützen, bieten in der Regel eine höhere Qualität, einfach weil es für ganz günstige, minderwertige Geräte keinen Sinn macht, Lizenzgebühren zur Nutzung dieser Codecs zu zahlen. In meinen Tests klingt SBC auf hochwertiger Hardware sehr gut.

Ich habe einen Webservice erstellt, der Audio in SBC, aptX und aptX HD in Echtzeit direkt im Browser kodiert. Mit ihm können Sie diese Audiocodecs testen, ohne Audio tatsächlich über Bluetooth zu übertragen, auf jeden beliebigen kabelgebundenen Kopfhörer, Lautsprecher und Ihre Lieblingsmusik, sowie die Kodierungsparameter während der Audio-Wiedergabe ändern:
btcodecs.valdikss.org.ru/sbc-encoder
Der Dienst nutzt die SBC-Codierungsbibliotheken aus dem BlueZ-Projekt und libopenaptx aus ffmpeg, die aus C in WebAssembly und JavaScript über Emscripten kompiliert wurden, um im Browser ausgeführt zu werden. Wer hätte von einer solchen Zukunft träumen können!

So sieht es aus:

Beachten Sie, wie sich der Geräuschpegel nach 20 kHz bei verschiedenen Codecs ändert. In der Original-MP3-Datei fehlen Frequenzen über 20 kHz.

Versuchen Sie, zwischen den Codecs zu wechseln, und bewerten Sie, ob Sie einen Unterschied zwischen dem Original, SBC 53 Joint Stereo (dem Standard- und am weitesten verbreiteten Profil) und aptX/aptX HD hören.

Ich höre den Unterschied zwischen den Codecs im Kopfhörer!

Menschen, die während des Testens über den Webdienst keinen Unterschied zwischen den Codecs hören, sind sich sicher, dass sie ihn beim Musikhören in drahtlosen Kopfhörern wahrnehmen. Leider ist das kein Scherz und kein Placebo-Effekt: Der Unterschied ist tatsächlich hörbar, jedoch nicht bedingt durch die Unterschiede der Codecs.

Die überwiegende Mehrheit der Bluetooth-Audio-Chipsätze, die in den empfangenden drahtlosen Geräten verwendet werden, ist mit einem digitalen Signalprozessor (Digital Signal Processor, DSP) ausgestattet, der Equalizer, Kompressor, Stereo-Expander und andere Funktionen implementiert, um den Klang zu verbessern oder zu verändern. Hersteller von Bluetooth-Geräten können den DSP entsprechend anpassen. für jeden Codec separat., und beim Wechseln zwischen den Codecs wird der Zuhörer das Gefühl haben, Unterschiede in der Codec-Leistung zu hören, obwohl er tatsächlich nur unterschiedliche DSP-Einstellungen hört.

Audio über Bluetooth: umfassend über Profile, Codecs und Geräte
Die DSP Soundverarbeitungs-Pipeline Kalimba in den Chips von CSR/Qualcomm.

Audio über Bluetooth: umfassend über Profile, Codecs und Geräte
Aktivierung verschiedener DSP-Funktionen für jeden Codec und Ausgang separat.

Einige Premium-Geräte werden mit Software geliefert, die die Anpassung von DSP-Parametern ermöglicht, aber die meisten günstigeren Kopfhörer bieten diese Möglichkeit nicht, sodass Benutzer die Nachbearbeitung des Sounds nicht mit einfachen Mitteln deaktivieren können.

Funktionale Eigenschaften der Geräte.

Die moderne Version des A2DP-Standards bietet eine Funktion zur 'absoluten Lautstärkeregelung'. — die Steuerung der Lautstärke des Geräts erfolgt über spezielle AVRCP-Protokollkommandos, die die Verstärkung des Ausgangsverstärkers regulieren, anstatt die Lautstärke des Audiostreams softwareseitig zu senken. Wenn die Lautstärkeänderung an den Kopfhörern nicht mit der Lautstärke auf dem Telefon synchronisiert wird, bedeutet das, dass Ihre Kopfhörer oder Ihr Telefon diese Funktion nicht unterstützen. 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 Tasten der Kopfhörer zu regeln – so ist das Signal-Rausch-Verhältnis besser und die Audioqualität höher. sollte sein oben.
In der Realität gibt es jedoch bedauerliche Situationen. Bei meinen RealForce OverDrive D1 Kopfhörern ist ein starker Kompressor für SBC aktiviert, und eine Lautstärkerehöhung führt zur Anhebung der leisen Töne, während die Lautstärke der lauten Töne unverändert bleibt (es erfolgt eine Signal-Kompression). Dadurch muss ich die Lautstärke am Computer auf etwa die Hälfte einstellen, wodurch der Kompressionseffekt nahezu verschwindet.
Nach meinen Beobachtungen unterstützen alle Kopfhörer mit zusätzlichen Codecs die Funktion der absoluten Lautstärkeregelung, was offenbar eine der Anforderungen für die Zertifizierung der Codecs ist.

Einige Kopfhörer unterstützen die gleichzeitige Verbindung von zwei Geräten. Dadurch kann man beispielsweise Musik vom Computer hören und gleichzeitig Anrufe vom Telefon entgegennehmen. Allerdings sollte man wissen, dass in diesem Modus alternative Codecs deaktiviert werden und nur SBC verwendet wird.

Die AVDTP 1.3 Delay Reporting-Funktion ermöglicht es den Kopfhörern, dem sendenden Gerät die Latenz mitzuteilen, mit der der Ton tatsächlich wiedergegeben wird. Dies ermöglicht es, die Synchronisation von Audio und Video während der Wiedergabe von Video-Dateien anzupassen: Bei Problemen mit der Übertragung über das Funknetz wird das Audio nicht hinter dem Video zurückbleiben, sondern das Video wird vom Videoplayer verzögert, bis Audio und Video wieder synchronisiert sind.
Diese Funktion wird von vielen Kopfhörern, Android 9+ und Linux mit PulseAudio 12.0+ unterstützt. Zu der Unterstützung dieser Funktion auf anderen Plattformen liegen mir keine Informationen vor.

Bidirektionale Kommunikation über Bluetooth. Sprachübertragung.

Für die Sprachübertragung über Bluetooth wird die Synchronous Connection Oriented (SCO) verwendet – eine synchrone Übertragung mit vorheriger Verbindungsabsprache. Dieser Modus ermöglicht die Übertragung von Ton und Sprache in strikter Reihenfolge, mit symmetrischer Sende- und Empfangsgeschwindigkeit, ohne auf Bestätigungen der Übertragung oder das erneute Senden von Paketen warten zu müssen. Dies verringert die Gesamtverzögerung der Audioübertragung über den Funkkanal erheblich, bringt jedoch ernsthafte Einschränkungen hinsichtlich der Menge der pro Zeiteinheit übertragenen Daten mit sich und beeinträchtigt die Qualität.
Wenn dieser Modus verwendet wird, werden sowohl Sprache als auch Audio in gleicher Qualität übertragen.
Leider ist die Sprachübertragungsqualität über Bluetooth im Jahr 2019 noch immer niedrig, und es ist unklar, warum die Bluetooth SIG dies nicht angeht.

CVSD

Der grundlegende Sprachübertragungscode CVSD wurde im Jahr 2002 standardisiert und wird von allen Geräten mit bidirektionaler Kommunikation über Bluetooth unterstützt. Er ermöglicht die Audioübertragung mit einer Abtastrate von 8 kHz, was der Qualität herkömmlicher leitungsgebundener Telefonie entspricht.

Beispiel für eine Aufnahme in diesem Codec.

mSBC

Der zusätzliche Codec mSBC wurde 2009 standardisiert, und bereits 2010 kamen Chips auf den Markt, die ihn zur Sprachübertragung nutzen. mSBC wird von verschiedenen Geräten weitgehend unterstützt.
Es handelt sich nicht um einen eigenständigen Codec, sondern um den herkömmlichen SBC aus dem A2DP-Standard, der ein festes Kodierungsprofil verwendet: 16 kHz, Mono, Bitpool 26.

Beispiel für eine Aufnahme in diesem Codec.

Es ist zwar nicht perfekt, aber definitiv besser als CVSD. Dennoch ist die Nutzung für Internetkommunikation unangenehm, insbesondere wenn man Kopfhörer für Sprachchats im Spiel verwendet – auch der Spielsound wird mit einer Abtastrate von 16 kHz übertragen.

FastStream: Das Unternehmen CSR entschloss sich, die Idee der Wiederverwendung von SBC weiterzuentwickeln. Um die Einschränkungen des SCO-Protokolls zu umgehen und höhere Bitraten zu nutzen, verfolgte CSR einen anderen Ansatz – es wurde die Unterstützung für bidirektionales SBC-Audio im Standard für unidirektionales Audio A2DP implementiert, die Kodierungsprofile standardisiert und als „FastStream“ bezeichnet.

FastStream überträgt Stereo-Audio mit 44,1 oder 48 kHz bei einer Bitrate von 212 kbit/s, während für die Mikrofonübertragung Mono mit 16 kHz und einer Bitrate von 72 kbit/s verwendet wird (etwas besser als mSBC). Diese Parameter sind viel besser für die Kommunikation in Online-Spielen geeignet — der Spielton und die Stimmen der Gesprächspartner werden von hoher Qualität sein.

Beispiel für eine Aufnahme in diesem Codec (+ Mikrofon-Sound, identisch mit mSBC).

Das Unternehmen hat einen interessanten Workaround entwickelt, jedoch wird dieser aufgrund der Abweichung vom A2DP-Standard nur von manchen Transmittern des Unternehmens unterstützt (die als USB-Audioschnittstelle und nicht als Bluetooth-Gerät fungieren). Eine Unterstützung in den Bluetooth-Stacks erhielt er nicht, obwohl die Anzahl der Kopfhörer mit Unterstützung für FastStream nicht unerheblich ist.

Bislang gibt es die Unterstützung für FastStream im Betriebssystem nur als Patch für Linux' PulseAudio vom Entwickler Pali Rohár, der nicht in den Hauptzweig des Programms integriert ist.

aptX Low Latency

Zu meiner großen Überraschung unterstützt aptX Low Latency ebenfalls bidirektionales Audio und implementiert ein ähnliches Prinzip wie FastStream.
Es wird jedoch nirgendwo möglich sein, diese Codec-Eigenschaft zu nutzen — es gibt keine Unterstützung für das Decodieren von Low Latency in keinem Betriebssystem und in keinem mir bekannten Bluetooth-Stack.

Bluetooth 5, Classic und Low Energy

Rund um die Spezifikationen und Versionen von Bluetooth gibt es große Verwirrung aufgrund zweier inkompatibler Standards unter einer Marke, die beide für unterschiedliche Zwecke weit verbreitet sind.

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

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

Die Liste der Änderungen zwischen Bluetooth 4.2 und Bluetooth 5:

9 ÄNDERUNGEN VON v4.2 AUF 5.0

9.1 NEUE FEATURES

In der Bluetooth-Core-Spezifikation 5.0 werden mehrere neue Funktionen eingeführt. Die wichtigsten Verbesserungsbereiche sind:
• Slot Availability Mask (SAM)
• 2 Msym/s PHY für LE
• LE Langstrecke
• Hochfrequente, nicht konnektierbare Werbung
• LE-Werbungs-Erweiterungen
• LE-Kanalauswahlalgorithmus #2
9.1.1 Funktionen, die in CSA5 hinzugefügt wurden — Integriert in v5.0
• Höhere Ausgangsleistung

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

Nur eine Änderung betrifft die Classic-Version im Rahmen der Bluetooth 5-Spezifikation: Es wurde Unterstützung für die Technik Slot Availability Mask (SAM) hinzugefügt, die dazu dient, die Aufteilung des Funkwellenbereichs zu verbessern. Alle anderen Änderungen betreffen nur Bluetooth LE (und auch die höhere Ausgangsleistung).

Alle Audio-Geräte nutzen ausschließlich Bluetooth Classic. Kopfhörer und Lautsprecher lassen sich nicht mit Bluetooth Low Energy verbinden: Es gibt keinen Standard für die Audioübertragung über LE. Der A2DP-Standard, der für die Übertragung von hochwertigem Audio verwendet wird, funktioniert nur über Bluetooth Classic, und es existiert kein Pendant in LE.

Die Schlussfolgerung lautet: Es ist sinnlos, Audio-Geräte nur aufgrund der neuen Bluetooth 5-Version zu kaufen. Bluetooth 4.0/4.1/4.2 funktioniert im Hinblick auf die Audioübertragung genau gleich.
Wenn die Ankündigung neuer Kopfhörer von einer verdoppelten Reichweite und einem geringeren Energieverbrauch dank Bluetooth 5 spricht, sollten Sie wissen, dass die Hersteller entweder selbst nicht informiert sind oder Sie in die Irre führen. Kein Wunder, denn sogar die Hersteller von Bluetooth-Chips verwechseln in ihren Ankündigungen die Unterschiede zwischen den Versionen, und einige Bluetooth 5-Chips unterstützen die fünfte Version nur für LE, während sie für Classic 4.2 verwenden.

Audio-Übertragungsverzögerung

Die Größe der Audioverzögerung hängt von vielen Faktoren ab: der Pufferspeichergröße im Audiostack, im Bluetooth-Stack und im verwendeten drahtlosen Gerät selbst sowie der algorithmischen Verzögerung des Codecs.

Die Verzögerung einfacher Codecs wie SBC, aptX und aptX HD ist minimal und liegt bei 3-6 ms, was vernachlässigbar ist. Komplexere Codecs wie AAC und LDAC hingegen können spürbare Latenz verursachen. Die algorithmische Verzögerung von AAC bei 44,1 kHz beträgt 60 ms. LDAC liegt bei etwa 30 ms (basierend auf einer groben Analyse des Quellcodes, ich könnte mich irren, aber nicht weit).

Die Gesamtlatenz hängt stark vom Wiedergabegerät, seinem Chipsatz und dem Puffer ab. Während meiner Tests stellte ich einen Bereich von 150 bis 250 ms auf verschiedenen Geräten (mit dem Codecs SBC) fest. Wenn wir annehmen, dass Geräte mit Unterstützung für zusätzliche Codecs wie aptX, AAC und LDAC hochwertige Komponenten und einen kleinen Puffer verwenden, ergeben sich folgende typische Latenzen:

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

Ich erinnere daran: aptX Low Latency wird von Betriebssystemen nicht unterstützt, sodass eine geringere Verzögerung nur mit einer Kombination aus Sender + Empfänger oder Sender + Kopfhörer/Lautsprecher erreicht werden kann, wobei alle Geräte diesen Codec unterstützen müssen.

Geräteprobleme, Zertifizierung und Bluetooth-Logos

Wie unterscheidet man ein qualitativ hochwertiges Audiogerät von einem billigen Plagiat? Vor allem am äußeren Erscheinungsbild!

Bei günstigen chinesischen Kopfhörern, Lautsprechern und Receivern:

  1. Das Wort „Bluetooth“ fehlt auf der Verpackung und dem Gerät; häufig wird „Wireless“ und „BT“ verwendet.
  2. Das Bluetooth-Logo fehlt. Audio über Bluetooth: umfassend über Profile, Codecs und Geräte weder auf der Verpackung noch am Gerät.
  3. Es gibt keine blinkende blaue LED.

Das Fehlen dieser Elemente deutet darauf hin, dass das Gerät nicht zertifiziert wurde und somit potenziell von minderer Qualität und problematisch ist. Zum Beispiel sind die Kopfhörer von Bluedio nicht Bluetooth-zertifiziert und entsprechen nicht vollständig der A2DP-Spezifikation. Eine Zertifizierung hätten sie nicht bestanden.

Schauen wir uns einige Geräte und deren Verpackungen an:
Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

Audio über Bluetooth: umfassend über Profile, Codecs und Geräte

All dies sind nicht zertifizierte Geräte. In der Anleitung kann das Logo und der Name der Bluetooth-Technologie auffindbar sein, aber das Wichtigste ist, dass sie auf der Verpackung und/oder dem Gerät selbst vorhanden sind.

Wenn Ihre Kopfhörer oder der Lautsprecher sagen „Ze bluetooth dewise is connecteda successfulle“, sagt das auch nichts über deren Qualität aus.

Video abspielen

Fazit

Kann Bluetooth kabelgebundene Headsets und Kopfhörer vollständig ersetzen? Ja, aber dies geschieht auf Kosten der Sprachqualität, einer erhöhten Audioverzögerung, die vor allem im Gaming störend sein kann, und einer Vielzahl proprietärer Codecs, die Lizenzgebühren erfordern und somit die Endkosten sowohl für Smartphones als auch für Kopfhörer erhöhen.

Das Marketing alternativer Codecs ist sehr stark: aptX und LDAC werden als sehnlichst erwartete Alternativen zu dem „veralteten und schlechten“ SBC präsentiert, der bei Weitem nicht so schlecht ist, wie man oft denkt.

Es hat sich herausgestellt, dass die künstlichen Beschränkungen des Bluetooth-Stacks bezüglich der Bitrate von SBC umgangen werden können, sodass SBC nicht hinter aptX HD zurückbleibt. Ich habe die Initiative ergriffen und einen Patch für die LineageOS-Firmware erstellt: Wir modifizieren den Bluetooth-Stack zur Verbesserung der Klangqualität bei Kopfhörern ohne die Codecs AAC, aptX und LDAC.

Weitere Informationen finden Sie auf den Websites SoundGuys und SoundExpert.

Bonus: Referenzcodec für SBC, Informationen über den A2DP-Datenstrom und Testdateien. Diese Datei war früher auf der öffentlichen Bluetooth-Website zugänglich, ist jetzt jedoch nur für Mitglieder des Bluetooth SIG verfügbar.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster