Audio über Bluetooth: Maximieren Sie Details zu Profilen, Codecs und Geräten

XKCD-Comic über 14 konkurrierende Standards: Bildunterschrift: SITUATION: Es gibt 14 kompetierende Standards.  Geek: 14?!  Absurdität!  Wir müssen für alle, die einen universellen Standard entsprechen.  Geeks Begleiter: Ja!  Bildunterschrift: In Ablehnung Rechte: LAGE: Es gibt 15 kompetierende Standards.

Dieser Artikel ist auch in englischer Sprache verfügbar

Aufgrund der Massenproduktion von Smartphones ohne 3,5-mm-Audiobuchse sind drahtlose Bluetooth-Kopfhörer für viele die Hauptmethode, um 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, sprechen nicht über alle Funktionen und kopieren häufig dieselben Informationen, die nicht der Realität entsprechen.
Lassen Sie uns versuchen, das Protokoll, die Funktionen der Bluetooth-Betriebssystemstapel, Kopfhörer und Lautsprecher, Bluetooth-Codecs für Musik und Sprache herauszufinden, herauszufinden, was sich auf die Qualität des übertragenen Tons und die Verzögerung auswirkt, zu lernen, wie Informationen über unterstützte Codecs und andere Gerätefunktionen gesammelt und dekodiert werden.

TL; DR :
  • SBC - Normaler Codec
  • Die Kopfhörer verfügen über einen eigenen Equalizer und eine eigene Nachbearbeitung für jeden Codec
  • aptX ist nicht so gut wie Werbung darüber spricht
  • LDAC - Marketing-Bullshit
  • Die Gesprächsqualität ist immer noch schlecht
  • Sie können Audio-Encoder in C in den Browser einbetten, indem Sie sie über emscripten in WebAssembly kompilieren. Sie werden dann nicht viel langsamer.





Bluetooth-Musik

Die Funktionskomponente von Bluetooth wird durch Profile definiert - Spezifikationen bestimmter Funktionen. Bluetooth-Musik wird über das hochwertige unidirektionale A2DP-Audioübertragungsprofil übertragen. Der A2DP-Standard wurde 2003 verabschiedet und hat sich seitdem nicht dramatisch geändert.
Im Rahmen des Profils werden 1 obligatorischer Codec mit geringer Rechenkomplexität SBC, der speziell für Bluetooth erstellt wurde, und 3 weitere standardisiert. Die Verwendung von undokumentierten Codecs unserer eigenen Implementierung ist ebenfalls zulässig.

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

  • SBC ← standardisiert in A2DP, unterstützt von allen Geräten
  • MPEG-1/2-Schicht 1/2/3 ← standardisiert in A2DP: die bekannte MP3, die in MP2 für digitales Fernsehen verwendet wird, und die unbekannte MP1
  • MPEG-2/4 AAC ← standardisiert in A2DP
  • ATRAC ← alter Sony-Codec, standardisiert in A2DP
  • LDAC ← Sonys neuer Codec
  • aptX ← Codec von 1988
  • aptX HD ← Wie aptX, jedoch mit unterschiedlichen Codierungsoptionen
  • aptX Low Latency ← ein völlig anderer Codec, keine Implementierung der aptX-Software mit reduziertem Puffer
  • aptX Adaptive ← ein weiterer Qualcomm-Codec
  • FastStream ← Pseudocodec, bidirektionale SBC-Modifikation
  • HWA LHDC ← Der neue Codec von Huawei
  • Samsung HD ← 2 Geräte werden unterstützt
  • Samsung Scalable ← 2 Geräte werden unterstützt
  • Samsung UHQ-BT ← 3 Geräte werden unterstützt


Warum werden Codecs überhaupt benötigt? Wann ist EDR in Bluetooth verfügbar , mit dem Sie Daten mit einer Geschwindigkeit von 2 und 3 Mbit / s übertragen können, und 1,4 Mbit / s reichen für ein unkomprimiertes zweikanaliges 16-Bit-PCM aus?


Bluetooth-Datenübertragung

In Bluetooth gibt es zwei Arten der Datenübertragung: Asynchronous Connection Less (ACL) für die asynchrone Übertragung ohne Verbindungsaufbau und Synchronous Connection Oriented (SCO) für die synchrone Übertragung mit vorläufiger Aushandlung der Verbindung.
Die Übertragung erfolgt unter Verwendung eines Zeitverteilungsschemas und einer Auswahl eines Übertragungskanals für jedes Paket separat (Frequenzsprung / Zeitteilungsduplex, FH / TDD), wobei die Zeit in Intervalle von 625 Mikrosekunden unterteilt wird, die als Schlitze bezeichnet werden. Eines der Geräte sendet in geraden Steckplatznummern, das andere in ungeraden Nummern. Das übertragene Paket kann abhängig von der Datengröße und der Art des Übertragungssatzes 1, 3 oder 5 Steckplätze belegen. In diesem Fall überträgt ein Gerät bis zum Ende der Übertragung in geraden und ungeraden Steckplätzen. Insgesamt können bis zu 1600 Pakete pro Sekunde empfangen und gesendet werden, wenn jedes von ihnen 1 Steckplatz belegt und beide Geräte etwas senden und empfangen, ohne anzuhalten.

2 und 3 Mbit / s für EDR, die in Ankündigungen und auf der Bluetooth-Website zu finden sind, sind die maximale Kanaldatenübertragungsrate für alle Daten insgesamt (einschließlich der technischen Header aller Protokolle, in die Daten eingekapselt werden sollen) in zwei Richtungen gleichzeitig. Die tatsächlichen Datenübertragungsraten variieren stark.

Zum Übertragen von Musik wird eine asynchrone Methode verwendet, fast immer mit Hilfe von Paketen wie 2-DH5 und 3-DH5, die im EDR-Modus die maximale Datenmenge von 2 Mbit / s bzw. 3 Mbit / s übertragen und 5 Zeitnischen der Sendezeit belegen.

Schematische Darstellung einer Übertragung mit 5 Steckplätzen von einem Gerät und 1 Steckplatz von einem anderen (DH5 / DH1):
5 passenungsschlitze, von denen jeder 625 Mikrosekunden wird wird, und ein Schlitz zum Empfangen, auch 625 Mikrosekunden.  Erhöhen - 3,75 Millisekunden.

Aufgrund des Zeitverteilungsprinzips müssen wir nach der Übertragung eines Pakets auf 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 in großen Paketen sendet. Wenn mehr als ein Gerät an das Telefon angeschlossen ist (z. B. Kopfhörer, eine Uhr und ein Fitnessarmband), wird die Übertragungszeit von allen geteilt.

Die Notwendigkeit, Audio in die speziellen Transportprotokolle L2CAP und AVDTP zu kapseln, benötigt 16 Byte von der maximal möglichen Menge an übertragenem Nutzlast-Audio.
PakettypAnzahl der SlotsMax Bytes pro PaketMax Bytes der Nutzlast A2DPMax A2DP-Nutzdaten-Bitrate
2-dh33367351936 kbps
3-dh335525361429 kbps
2-DH556796631414 kbps
3-dh55102110052143 kbps
1414 und 1429 kbit / s reichen definitiv nicht aus, um unkomprimierten Ton unter realen Bedingungen zu übertragen, mit einem verrauschten 2,4-GHz-Band und der Notwendigkeit, Servicedaten zu übertragen. 3 Mbit / s EDR stellt hohe Anforderungen an Sendeleistung und Luftgeräusche. Daher ist selbst im 3-DH5-Modus eine komfortable PCM-Übertragung nicht möglich, es kommt ständig zu kurzfristigen Unterbrechungen, und alles funktioniert nur in einer Entfernung von einigen Metern.
In der Praxis ist es sogar schwierig, einen Audiostream mit 990 kbit / s (LDAC 990 kbit / s) zu übertragen.

Zurück zu den Codecs.

Sbc

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

AbtastrateKapazitätBitrateCodierungsunterstützungDekodierungsunterstützung
16, 32, 44,1, 48 kHz16 Bit10-1500 kbpsAlle GeräteAlle Geräte


SBC ist ein einfacher und rechnerisch schneller Codec mit einem primitiven psychoakustischen Modell (nur leise Töne werden maskiert), das die adaptive Pulscodemodulation (APCM) verwendet.
In der A2DP-Spezifikation werden zwei Profile zur Verwendung empfohlen: Mittlere Qualität und Hohe Qualität.
Modustabelle Mittlere Qualität und Hohe Qualität.  Die angegebenen Werte sind Bitpool, Frame-Länge und Bitrate.  Für 44,1 kHz Joint Stereo.  Mittlere Qualität: Bitpool = 35, Rahmenlänge = 83, Bitrate = 229. Hohe Qualität: Bitpool = 53, Rahmenlänge = 119, Bitrate = 328.

Der Codec verfügt über viele Einstellungen, mit denen Sie die algorithmische Verzögerung, die Anzahl der Abtastwerte in einem Block und den Bitzuweisungsalgorithmus steuern können. Fast überall werden jedoch dieselben in der Spezifikation empfohlenen Parameter verwendet: Joint Stereo , 8 Frequenzbänder, 16 Blöcke in einem Audiorahmen, Loudness- Bitzuweisungsmethode.
SBC unterstützt die dynamische Änderung des Bitpool-Parameters, die sich direkt auf die Bitrate auswirkt. Wenn das Radio verstopft ist, Pakete verloren gehen oder Geräte weit entfernt sind, kann die Audioquelle Bitpool reduzieren, bis sich die Verbindung normalisiert.

Die Hersteller der meisten Kopfhörer setzen den Maximalwert des Bitpool-Parameters auf 53, wodurch die Bitrate bei Verwendung des empfohlenen Profils auf 328 Kilobit pro Sekunde begrenzt wird.
Selbst wenn der Kopfhörerhersteller den maximalen Bitpool-Wert auf über 53 eingestellt hat (solche Modelle sind beispielsweise zu finden: Beats Solo³, JBL Everest Elite 750NC, Apple AirPods, kommt auch bei einigen Empfängern und Autokopfeinheiten vor), erlauben die meisten Betriebssysteme aufgrund von nicht die Verwendung erhöhter Bitraten Stellen Sie den internen Grenzwert in Bluetooth-Stacks ein.
Darüber hinaus legen einige Hersteller für einige Geräte einen niedrigen maximalen Bitpool-Wert fest. Zum Beispiel ist es für Bluedio T 39, für Samsung Gear IconX-37, was eine schlechte Klangqualität ergibt.

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, selbst wenn sie ihre Unterstützung gemeldet haben, und auf eine unzureichende Anzahl von Tests während der Zertifizierung. Für Autoren von Bluetooth-Stacks war es einfacher, sich darauf zu beschränken, sich auf ein empfohlenes Profil zu einigen, als Datenbanken mit falschen Geräten zu erstellen (obwohl sie dies jetzt für andere falsch funktionierende Funktionen tun).

SBC ordnet Quantisierungsbits für Frequenzbänder dynamisch zu und arbeitet auf einer niedrigen bis hohen Basis mit unterschiedlichen Gewichten. Wenn die gesamte Bitrate für die niedrigen und mittleren Frequenzen verwendet wurde, werden die höheren Frequenzen "abgeschnitten" (stattdessen herrscht Stille).

SBC-Beispiel 328 kbps. Oben ist das Original, unten ist der SBC, der regelmäßig zwischen den Spuren wechselt. Für Audio verwendet die Videodatei den verlustfreien FLAC-Komprimierungscodec. Die Verwendung von FLAC im mp4-Container ist nicht offiziell standardisiert. Es ist also keine Tatsache, dass Ihr Browser es wiedergibt, aber es sollte in den neuesten Versionen von Desktop Chrome und Firefox funktionieren. Wenn Sie keinen Ton haben, können Sie die Datei herunterladen und in einem vollwertigen Videoplayer öffnen.
ZZ Top - Scharf gekleideter Mann

Das Schaltmoment ist im Spektrogramm sichtbar: SBC schneidet regelmäßig leise Töne über 17,5 kHz und sendet für das Band über 20 kHz überhaupt keine Bits aus. Das vollständige Spektrogramm ist per Klick verfügbar (1,7 MB).
Bild

Ich höre den Unterschied zwischen dem Original und SBC auf diesem Track nicht.

Nehmen wir etwas Neueres und simulieren Sie das Audio, das mit den Samsung Gear IconX-Kopfhörern mit Bitpool 37 entstanden wäre (oben ist das Originalsignal, unten ist SBC 239 kbit / s, der Ton ist in FLAC).
Mindless Self Indulgence - Zeuge

Ich höre Knistern, weniger Stereoeffekt und ein unangenehmes „Klappern“ des Gesangs bei hohen Frequenzen.

Obwohl SBC und ein sehr flexibler Codec für niedrige Latenzen konfiguriert werden können, bietet es eine hervorragende Audioqualität bei hohen Bitraten (452+ kbps) und ist aufgrund der hohen Qualität (328 kbps) für die meisten Benutzer recht gut dass der A2DP-Standard keine festen Profile spezifiziert (und nur Empfehlungen gibt), die Entwickler der Stacks künstliche Einschränkungen für Bitpool festlegen, die Parameter des übertragenen Audios nicht in der Benutzeroberfläche angezeigt werden und die Kopfhörerhersteller ihre eigenen Einstellungen vornehmen können und den Wert von Bitpool technisch nie angeben Aufgrund seiner Produkteigenschaften ist der Codec 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 innerhalb eines einzelnen Profils aus. Der gleiche Bitpool 53-Wert kann entweder eine Bitrate von 328 kbit / s mit dem empfohlenen hohen Qualitätsprofil oder 1212 kbit / s mit einem Zweikanal- und 4 Frequenzbändern ergeben, weshalb Betriebssystemautoren zusätzlich zu den Einschränkungen für Bitpool eine Einschränkung festlegen und auf Bitrate. Aus meiner Sicht entstand diese Situation aufgrund eines Fehlers im A2DP-Standard: Es war notwendig, die Bitrate zu koordinieren, nicht Bitpool.

Support-Tabelle für SBC-Funktionen in verschiedenen Betriebssystemen:
BetriebssystemUnterstützte AbtastratenLimit max. BitpoolLimit max. BitrateTypische BitrateBitpool Dynamic Tuning
Windows 1044,1 kHz53512 kbps328 kbps✓ *
Linux (BlueZ + PulseAudio)16, 32, 44,1, 48 kHz64 (für eingehende), 53 (für ausgehende)Keine Begrenzung328 kbps✓ *
macOS High Sierra44,1 kHz64, Standard 53 ***Unbekannt328 kbps
Android 4.4-944,1 / 48 kHz **53328 kbps328 kbps
Android 4.1-4.3.144,1, 48 kHz **53229 kbps229 kbps
Blackberry OS 1048 kHz53Keine Begrenzung328 kbps
* Bitpool nimmt nur ab, erhöht sich jedoch nicht automatisch, wenn sich die Übertragungsbedingungen verbessern. Um Bitpool wiederherzustellen, müssen Sie die Wiedergabe stoppen, einige Sekunden warten und das Audio neu starten.
** Der Standardwert hängt von den Stapeleinstellungen ab, die beim Kompilieren der Firmware angegeben wurden. In Android 8 / 8.1 beträgt die Frequenz je nach den Einstellungen während der Kompilierung nur 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 erhöht werden.

aptX und aptX HD

aptX ist ein einfacher und rechnerisch schneller Codec ohne Psychoakustik, der die adaptive differentielle Pulscodemodulation ( ADPCM ) verwendet. Es erschien um 1988 (das Patentanmeldedatum ist Februar 1988), bevor Bluetooth hauptsächlich in professionellen drahtlosen Audiogeräten, ISDN und Kinos verwendet wurde. Derzeit im Besitz von Qualcomm, erfordert Lizenzen und Lizenzgebühren. Ab 2014: jeweils 6.000 USD und 1 USD für jedes Gerät für Chargen von bis zu 10.000 Geräten ( Quelle , S. 16).
aptX und aptX HD sind der gleiche Codec mit unterschiedlichen Codierungsprofilen.

Der Codec hat nur einen Parameter - die Wahl der Abtastfrequenz. Es gibt jedoch eine Auswahl der Anzahl / des Modus der Kanäle, aber in allen mir bekannten Geräten (über 70 Stück) wird nur Stereo unterstützt.

CodecAbtastrateKapazitätBitrateCodierungsunterstützungDekodierungsunterstützung
aptX16, 32, 44,1, 48 kHz16 Bit128/256/352/384 kbps (abhängig von der Abtastrate)Windows 10 (Desktop und Mobile), MacOS, Android 4.4 + / 7 *, Blackberry OS 10Eine breite Palette von Audiogeräten (Hardware)
* Versionen vor 7 erfordern eine Änderung des Bluetooth-Stacks. Der Codec wird nur unterstützt, wenn der Hersteller des Android-Geräts Qualcomm für die Verwendung des Codecs lizenziert hat (wenn das Betriebssystem über Codierungsbibliotheken verfügt).

aptX teilt Audio in 4 Frequenzbänder auf und quantisiert sie kontinuierlich 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 ( Ziffern für eine Abtastfrequenz von 44,1 kHz).

Beispiel aptX-Audio (oben ist das Quellensignal, unten ist aptX, Spektrogramme nur der linken Kanäle, Ton in FLAC):

Die oberen Frequenzen sind etwas röter geworden, aber es ist kein Unterschied zu hören.

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

Es sollte nicht berücksichtigt werden, dass die Verwendung von beispielsweise 2 Bits für ein Band den Dynamikbereich auf 12 dB reduziert: Mit ADPCM können Sie bis zu 96 dB Dynamikbereich verwenden, selbst wenn Sie 2 Quantisierungsbits verwenden, jedoch nur mit einem bestimmten Signal.
ADPCM speichert die Differenz in der numerischen Darstellung zwischen dem aktuellen und dem nächsten Sample, anstatt den absoluten Wert wie in PCM zu schreiben. Auf diese Weise 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 dem Musiksatz liegt, auf dem die Tabellen aufgebaut sind, desto weniger Quantisierungsfehler (Rauschen) erzeugt aptX.

Aus diesem Grund führen synthetische Tests immer zu schlechteren Ergebnissen als Musik. Ich habe ein spezielles synthetisches Beispiel gemacht, bei dem aptX schlechte Ergebnisse zeigt - eine 12,4-kHz-Sinuswelle (oben ist das ursprüngliche Signal, unten ist aptX. Ton in FLAC. Verringern Sie die Lautstärke!):

Spektraldiagramm:
Spektraldiagramm, maximaler Geräuschpegel - -55 dB

Geräusche sind deutlich hörbar.

Wenn jedoch eine Sinuskurve mit einer kleineren Amplitude erzeugt wird, so dass sie leiser ist, wird das Rauschen auch leiser, was auf einen weiten Dynamikbereich hinweist:

Spektraldiagramm, maximaler Geräuschpegel - -75 dB

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 kein vernünftiges Ergebnis liefern, ist jedoch speziell für ADPCM durchaus geeignet.
Der Unterschied zwischen dem Original und aptX
Die quadratische mittlere Differenz der Signale liegt bei -37,4 dB, was für solche komprimierte Musik nicht viel ist.

aptX HD

aptX HD ist kein eigenständiger Codec - es ist ein verbessertes aptX-Codec-Codierungsprofil. Die Änderungen wirkten sich auf die Anzahl der für die Codierung der Frequenzbereiche zugewiesenen Bits aus: 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 (Ziffern für 44,1 kHz).

CodecAbtastrateKapazitätBitrateCodierungsunterstützungDekodierungsunterstützung
aptX HD16, 32, 44,1, 48 kHz24 Bit192/384/529/576 kbps (abhängig von der Abtastrate)Android 8 + *Einige Audiogeräte (Hardware)
* Versionen vor 7 erfordern eine Änderung des Bluetooth-Stacks. Der Codec wird nur unterstützt, wenn der Hersteller des Android-Geräts Qualcomm für die Verwendung des Codecs lizenziert hat (wenn das Betriebssystem über Codierungsbibliotheken verfügt).

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

Wiederholen wir das Beispiel mit der 12,4-kHz-Sinuswelle:
Spektraldiagramm, maximaler Geräuschpegel - -72 dB

Viel besser als mit aptX, aber immer noch verrauscht.


aptX Geringe Latenz

Die Version von aptX mit niedriger Latenz ist kein eigenständiger Codec, sondern unterscheidet sich nur in den Verzögerungs- und Puffereinstellungen, die auf der Seite des Audiogeräts verwendet werden. Der Rest ist nur aptX.
Der Codec ist für die interaktive Audioübertragung mit geringer Latenz (Filme, Spiele) ausgelegt, bei der die Audioverzögerung nicht programmgesteuert angepasst werden kann. Die Software-Implementierung ist als Dell-Treiber für Intel Bluetooth-Chips verfügbar . Wird auch von Sendern, Empfängern, Kopfhörern und Lautsprechern unterstützt, jedoch nicht von Smartphones.

AbtastrateBitrateCodierungsunterstützungDekodierungsunterstützung
44,1 kHz352 kbpsWindows 10 mit Dell-Treiber und einigen Sendern (Hardware)Einige Audiogeräte (Hardware)


Aac

AAC oder Advanced Audio Coding ist ein rechnerisch komplexer Codec mit einem ernsthaften psychoakustischen Modell. Es wird häufig für Audio im Internet verwendet, das nach MP3 das zweitbeliebteste ist. Erfordert Lizenzen und Lizenzgebühren: jeweils 15.000 USD (oder 1.000 USD für Unternehmen mit weniger als 15 Mitarbeitern) + 0,98 USD für die ersten 500.000 Geräte ( Quelle ).
Der Codec ist als Teil der MPEG-2- und MPEG-4-Spezifikationen standardisiert und gehört entgegen falscher Auffassung nicht zu Apple.

AbtastrateBitrateCodierungsunterstützungDekodierungsunterstützung
8 - 96 kHz8 - 576 kbps (für Stereo), 256 - 320 kbps (typisch für Bluetooth)macOS, Android 7 + *, iOSEine breite Palette von Audiogeräten (Hardware)
* Nur auf Geräten, deren Hersteller Lizenzgebühren gezahlt haben

. IOS und macOS verwenden den bislang besten Apple AAC-Encoder und bieten die höchstmögliche Audioqualität. Android verwendet den zweithöchsten Fraunhofer FDK AAC-Encoder, es können jedoch verschiedene in die Plattform eingebettete Hardware (SoC) mit unbekannter Codierungsqualität verwendet werden.Laut jüngsten SoundGuys-Testsist die Qualität der AAC-Codierung durch verschiedene Android-Telefone sehr unterschiedlich:Die meisten drahtlosen Audiogeräte für AAC haben eine maximale Bitrate von 320kbit / s, einige unterstützen nur 256kbit / s. Andere Bitraten sind äußerst selten.AAC bietet eine hervorragende Qualität bei 320 und 256 kbps, unterliegt jedoch
AAC-Codierungsspektrumdiagramm verschiedener mobiler Geräte.  Huawei P20 Pro hat einen starken Rückgang um 14 kHz, LG V30 - um 16 kHz, Samsung Note 8 - 17 kHz, Apple iPhone 7 - 19 kHz.


Verlust der sequentiellen Codierung bereits komprimierter Inhalte Es ist jedoch schwierig, Unterschiede zum Original unter iOS mit einer Bitrate von 256 kbit / s zu erkennen, selbst bei mehreren aufeinanderfolgenden Codierungen, mit einer einzigen Codierung, z. B. MP3 320 kbit / s in AAC 256 kbit / s kann vernachlässigt werden.
Wie bei anderen Bluetooth-Codecs wird jede Musik zuerst dekodiert und dann vom Codec codiert. Wenn Sie Musik im AAC-Format hören, wird sie zuerst über das Betriebssystem dekodiert und dann zur Übertragung über Bluetooth erneut in AAC codiert. Dies ist erforderlich, um mehrere Audiostreams zu mischen, z. B. Musik und die Benachrichtigung über eine neue Nachricht. iOS ist keine Ausnahme. Im Internet gibt es viele Vorwürfe, dass AAC-Musik unter iOS bei der Übertragung über Bluetooth nicht transkodiert wird, was falsch ist.

Der AAC-Standard hat viele Erweiterungen der Standardcodierungsmethode. Eine davon - Scalable To Lossless (SLS) - ist für Bluetooth standardisiert und ermöglicht Ihnen die verlustfreie Übertragung von Audio (verlustfrei). Leider wird auf realen Geräten keine Erweiterungsunterstützung gefunden. Die Erweiterung zur Reduzierung der Übertragungsverzögerung AAC-LD (Low Delay) ist für Bluetooth nicht standardisiert.


MP1 / 2/3

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

Die alten MP1- und MP2-Codecs werden überhaupt nicht unterstützt: Ich konnte keine Kopfhörer und keinen einzigen Bluetooth-Stack finden, der sie codieren oder decodieren würde.
Die MP3-Dekodierung wird von einigen Kopfhörern unterstützt, die Kodierung wird jedoch auf keinem Stapel moderner Betriebssysteme unterstützt. Es scheint, dass der BlueSoleil-Stack eines Drittanbieters für Windows in MP3 codieren kann, wenn Sie die Konfigurationsdatei manuell ändern. Meine Installation führt jedoch zu BSoD unter Windows 10. Fazit: Der Codec kann nicht für Bluetooth-Audio verwendet werden.
In den Jahren 2006-2008, bevor der A2DP-Standard auf Geräten verteilt wurde, hörten die Benutzer MP3-Musik auf dem Nokia BH-501-Headset über das MSI BluePlayer-Programm, das auf Symbian und Windows Mobile verfügbar war. Zu dieser Zeit ermöglichte die Architektur des Smartphone-Betriebssystems den Zugriff auf viele Funktionen auf niedriger Ebene, und unter Windows Mobile war es vollständig möglich, Bluetooth-Stacks von Drittanbietern zu installieren.

Das neueste MP3-Codec-Patent ist abgelaufen. Für die Verwendung des Codecs sind ab dem 23. April 2017 keine Lizenzgebühren erforderlich.

Wenn das in den oben genannten Referenzen erwähnte am längsten laufende Patent als Maßnahme herangezogen wird, wurde die MP3-Technologie in den USA am 16. April 2017 patentfrei, als das US-Patent 6,009,399, das von Technicolor gehalten und verwaltet wird, ablief.
: www.iis.fraunhofer.de/en/ff/amm/prod/audiocodec/audiocodecs/mp3.html

Bitrate
16 — 488 — 320 /()


LDAC

Der neue und aktiv beworbene Hi-Res-Codec von Sony unterstützt Abtastraten von bis zu 96 kHz und eine Auflösung von 24 Bit bei einer Bitrate von bis zu 990 kbps. Als audiophiler Codec beworben, als Ersatz für vorhandene Bluetooth-Codecs. Es hat die Funktion der adaptiven Anpassung der Bitrate in Abhängigkeit von den Bedingungen des Radios.

Der LDAC-Encoder ( libldac ) ist im Standard-Android-Paket enthalten, sodass die Codierung auf jedem Android-Smartphone ab Version 8 des Betriebssystems unterstützt wird. Software-Decoder sind nicht frei verfügbar, die Codec-Spezifikation ist für die breite Öffentlichkeit nicht zugänglich. Auf den ersten Blick auf den Encoder ähnelt das interne Gerät jedoch ATRAC9- Sonys Codec für PlayStation 4 und Vita: Beide arbeiten im Frequenzbereich, verwenden die modifizierte diskrete Cosinustransformation (MDCT) und die Komprimierung mithilfe des Huffman-Algorithmus.
LDAC verwendet eine Unterteilung in 12 oder 16 Frequenzbänder: 12 wird für 44,1 und 48 kHz, 16 für 88,2 und 96 kHz verwendet.

Die LDAC-Unterstützung wird fast ausschließlich von Sony-Kopfhörern repräsentiert. Die Fähigkeit, LDAC zu dekodieren, wird manchmal bei Kopfhörern und DACs anderer Hersteller gefunden, aber sehr selten.

AbtastrateBitrateCodierungsunterstützungDekodierungsunterstützung
44,1 - 96 kHz303/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 Einzelgeräte anderer Hersteller (Hardware)


Die Vermarktung von LDAC als hochauflösendem Codec schadet seiner technischen Komponente: Es ist dumm, die Bitrate für die Übertragung von Frequenzen auszugeben, die für das menschliche Ohr unhörbar sind, und die Bittiefe zu erhöhen, solange dies nicht ausreicht, um die CD-Qualität (44.1 / 16) ohne Verlust zu übertragen. Glücklicherweise verfügt der Codec über zwei Betriebsarten: CD-Audio-Übertragung und Hi-Res-Audio-Übertragung. Im ersten Fall werden nur 44,1 kHz / 16 Bit durch die Luft übertragen.

Da der LDAC-Software-Decoder nicht frei verfügbar ist, ist es unmöglich, den Codec ohne zusätzliche Geräte zu testen, die LDAC decodieren. Laut dem LDAC-Test auf dem DAC mit seiner Unterstützung, der von SoundGuys.com-Ingenieuren über einen digitalen Ausgang angeschlossen und der emittierte Ton auf Testsignalen aufgezeichnet wurde, bietet der LDAC 660 und 990 kbps im CD-Qualitätsmodus ein Signal-Rausch-Verhältnis, das etwas besser ist als das von aptX HD Das ist ein gutes Ergebnis. Quelle: 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 standardisierte Profile 303 / 606/909 und 330/660/990 kbit / s.

LDAC CD 990 kbit / s Rauschprofil




Andere Codecs

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


Audio Codec Unterstützung

Nicht alle Hersteller veröffentlichen genaue Informationen zu Codecs, die bestimmte drahtlose Kopfhörer, Lautsprecher, Empfänger oder Sender unterstützen. Manchmal kommt es vor, dass die Unterstützung für einen bestimmten Codec nur für das Senden, nicht aber für den Empfang (relevant für kombinierte Sender-Empfänger) gilt, obwohl der Hersteller behauptet, einfach "unterstützt" zu werden, ohne Kommentare (ich gehe davon aus, dass die getrennte Lizenzierung von Codierern und Decodierern einiger Codecs schuld ist ) Bei den billigsten Geräten finden Sie möglicherweise überhaupt nicht die deklarierte aptX-Unterstützung.

Leider wird in den Schnittstellen der meisten Betriebssysteme der verwendete Codec nirgendwo angezeigt. Informationen hierzu sind nur in Android ab Version 8 und macOS verfügbar. Selbst in diesen Betriebssystemen werden jedoch nur die Codecs angezeigt, die sowohl das Telefon / den Computer als auch die Kopfhörer unterstützen.

Wie finde ich heraus, welche Codecs das Gerät unterstützt? Die zuverlässigste Option ist die Aufzeichnung und Analyse eines Verkehrsdumps mit A2DP-Verhandlungsparametern!
Dies kann unter Linux, MacOS und Android erfolgen. Unter Linux können Sie Wireshark oder hcidump verwenden, unter macOS können Sie den Bluetooth Explorer verwenden und unter Android können Sie die Standard-Bluetooth-HCI-Dump-Speicherfunktion verwenden, die in den Entwicklertools verfügbar ist. Sie erhalten einen btsnoop-Dump, der auf den Wireshark-Analysator heruntergeladen werden kann.
beachten Sie: Sie können den richtigen Speicherauszug nur erhalten, indem Sie eine Verbindung vom Telefon / Computer zum Kopfhörer / Lautsprecher herstellen (egal wie lustig es klingt)! Kopfhörer können unabhängig voneinander eine Verbindung mit dem Telefon herstellen. In diesem Fall fordern sie eine Liste der Codecs vom Telefon an und nicht umgekehrt. Um sicherzustellen, dass Sie den richtigen Speicherauszug aufzeichnen, trennen Sie zuerst die Kopplung mit dem Gerät und koppeln Sie dann während der Aufzeichnung des Speicherauszugs das Telefon mit den Kopfhörern.

Verwenden Sie den folgenden Anzeigefilter, um irrelevanten Datenverkehr herauszufiltern:
btavdtp.signal_id 


Als Ergebnis sollten Sie etwas Ähnliches sehen:
Wireshark mit geladenem Speicherauszug und Filter zur Anzeige des Befehls A2DP GetCapabilities

An jedem Punkt des Befehls GetCapabilities können Sie auf die detaillierten Eigenschaften des Codecs klicken und diese anzeigen.
Eigenschaften eines der eigenen Elemente.  Die Codec-ID ist sichtbar.

Wireshark kennt nicht alle Codec-IDs, daher müssen einige Codecs manuell entschlüsselt werden. Beachten Sie dazu die folgende Identifier-Tabelle:
 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 herauszufinden, ob Ihr Gerät EDR-Geschwindigkeiten von 3 Mbit / s unterstützt, können Sie Folgendes filtern:
 bthci_evt.code==0x0b 

Bild

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

Für Windows gibt es ein einfaches, aber nützliches Bluetooth Tweaker- Dienstprogramm, das unter anderem die aktuellen und unterstützten Codecs anzeigt.
Unter Linux können Sie auch das in BlueZ enthaltene Programm avinfo verwenden.


Vergleich von Codecs. Welcher Codec ist besser?

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

Im Gegensatz dazu verfügt SBC über viele konfigurierbare Parameter, eine dynamische Bitrate (der Encoder kann den Bitpool-Parameter reduzieren, wenn das Radio geladen ist) und keine Hardcodes, sondern nur die empfohlenen „Durchschnittsqualitäten“ und „Hochqualitäten“, die 2003 zur A2DP-Spezifikation hinzugefügt wurden Jahr. "Hohe Qualität" ist nach modernen Maßstäben nicht so hoch, und die meisten Bluetooth-Stacks erlauben es nicht, die Parameter besser zu verwenden als im "hohen Qualitäts" -Profil, obwohl es hierfür keine technischen Einschränkungen gibt.
Bluetooth SIG verfügt nicht über einen SBC-Referenzcodierer in Form einer Bibliothek, den die Hersteller selbst implementieren.
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 eine niedrige als auch eine sehr hohe Klangqualität erzeugen. Letztere ist jedoch nicht erreichbar, ohne die künstlichen Einschränkungen von Bluetooth-Stacks zu deaktivieren oder zu umgehen.

Die Situation mit AAC ist nicht eindeutig: Einerseits sollte der Codec theoretisch eine Qualität liefern, die nicht vom Original zu unterscheiden ist, aber die Praxis wird nach den Tests des SoundGuys-Labors auf verschiedenen Android-Geräten nicht bestätigt. Der Fehler liegt höchstwahrscheinlich bei Hardware-Audio-Encodern geringer Qualität, die in verschiedene Telefonchipsätze integriert sind. Es ist sinnvoll, AAC nur auf Apple-Geräten zu verwenden, und auf Android ist es auf aptX und LDAC beschränkt.

Geräte, die alternative Codecs unterstützen, sind in der Regel von höherer Qualität, einfach weil es für absolut billige Geräte von geringer Qualität nicht sinnvoll ist, Lizenzgebühren für die Verwendung dieser Codecs zu zahlen. Nach meinen Tests klingt SBC auf hochwertigen Geräten sehr gut.

Ich habe einen Webdienst erstellt, der Audio in SBC, aptX und aptX HD in Echtzeit direkt im Browser codiert. Mit dieser Funktion können Sie diese Audio-Codecs testen, ohne Audio über Bluetooth, über kabelgebundene Kopfhörer, Lautsprecher und Ihre Lieblingsmusik zu übertragen, und die Codierungseinstellungen direkt während der Audiowiedergabe ändern:
btcodecs.valdikss.org.ru/sbc-encoder
Der Dienst verwendet die SBC-Codierungsbibliotheken aus dem BlueZ-Projekt und libopenaptx aus ffmpeg, die über emscripten in WebAssembly und JavaScript aus C kompiliert wurden, um sie im Browser auszuführen. Wer könnte von einer solchen Zukunft träumen!

So sieht es aus:

Bitte beachten Sie, wie sich der Geräuschpegel nach 20 kHz für verschiedene Codecs ändert. Die ursprüngliche MP3-Datei enthält keine Frequenzen über 20 kHz.

Versuchen Sie, die Codecs zu wechseln und zu bewerten, ob Sie den Unterschied zwischen dem Original, dem SBC 53 Joint Stereo (Standard- und das am häufigsten verwendete Profil) und aptX / aptX HD hören.


Ich höre den Unterschied zwischen den Codecs in den Kopfhörern !

Personen, die den Unterschied zwischen Codecs beim Testen über einen Webdienst nicht hören, geben an, dass sie ihn hören, wenn sie Musik in drahtlosen Kopfhörern hören. Leider ist dies kein Scherz oder Placebo-Effekt: Der Unterschied ist wirklich hörbar, wird aber nicht durch die Unterschiede in den Codecs verursacht .

Die überwiegende Mehrheit der Bluetooth-Audio-Chipsätze, die beim Empfang von drahtlosen Geräten verwendet werden, ist mit einem digitalen Signalprozessor (DSP) ausgestattet, der einen Equalizer, einen Compander , einen Stereo-Expander und andere Funktionen zur Verbesserung (oder Änderung) des Klangs implementiert. Hersteller von Bluetooth-Geräten können den DSP für jeden Codec separat konfigurieren. Wenn Sie zwischen Codecs wechseln, wird der Hörer glauben, dass er den Unterschied in den Codecs hört, wenn er tatsächlich verschiedene DSP-Einstellungen hört.

Im Bild: DECODER - Parametrischer Equalizer - Stereo-Verbesserung - Compander - Post-Mastering - Ausgangsverbesserung
Kalimba DSP Soundverarbeitungsförderer in CSR / Qualcomm-Chips

Im Bild: Kontrollkästchen zum getrennten Aktivieren persönlicher DSP-Funktionen für jeden Codec.
Aktivierung verschiedener DSP-Funktionen für jeden Codec und separate Ausgabe

Einige Geräte des Premium-Segments sind mit einem Programm ausgestattet, mit dem Sie DSP-Parameter konfigurieren können. Die meisten billigeren Kopfhörer verfügen jedoch nicht über diese Funktion, und Benutzer können den Nachbearbeitungssound nicht mit normalen Mitteln ausschalten.


Gerätefunktionen

Die moderne Version des A2DP-Standards hat die Funktion der "absoluten Lautstärkeregelung" - Geräte-Lautstärkeregelung mit speziellen Befehlen des AVRCP-Protokolls, die die Verstärkung der Ausgangsstufe steuert, anstatt die Lautstärke des Audiostreams programmgesteuert zu reduzieren. Wenn beim Ändern der Lautstärke am Kopfhörer die Änderung nicht mit der Lautstärke am Telefon synchronisiert wird, bedeutet dies, dass Ihre Kopfhörer oder das Telefon diese Funktion nicht unterstützen. In diesem Fall ist es sinnvoll, Musik immer mit der maximalen Lautstärke am Telefon zu hören und die tatsächliche Lautstärke mit den Kopfhörertasten anzupassen. In diesem Fall ist das Signal-Rausch-Verhältnis besser und die Audioqualität sollte höher sein.
In Wirklichkeit gibt es traurige Situationen. Bei meinem RealForce OverDrive D1 für SBC-Kopfhörer ist ein starker Compander eingeschaltet. Durch Erhöhen der Lautstärke wird der Pegel leiser Töne erhöht, aber die Lautstärke der lauten Töne ändert sich nicht (das Signal wird komprimiert). Aus diesem Grund müssen Sie die Lautstärke am Computer auf etwa die Hälfte einstellen. In diesem Fall tritt praktisch kein Komprimierungseffekt auf.
Nach meinen Beobachtungen unterstützen alle Kopfhörer mit zusätzlichen Codecs die Funktion der absoluten Lautstärkeregelung, anscheinend ist dies eine der Anforderungen für die Zertifizierung von Codecs.

Einige Kopfhörer unterstützen das gleichzeitige Anschließen zweier Geräte . Dies ermöglicht beispielsweise das Hören von Musik von einem Computer und das Empfangen von Anrufen von einem Telefon. Beachten Sie jedoch, dass alternative Codecs in diesem Modus deaktiviert sind und nur SBC verwendet wird.

Mit der AVDTP 1.3 Delay Reporting- Funktion kann der Kopfhörer eine Verzögerung an das Übertragungsgerät melden, von dem der Ton tatsächlich abgespielt wird. Auf diese Weise können Sie die Synchronisation von Audio und Video beim Ansehen von Videodateien anpassen: Wenn beim Senden Probleme auftreten, bleibt das Audio nicht hinter dem Video zurück, im Gegenteil, das Video wird vom Videoplayer verlangsamt, bis Audio und Video wieder synchronisiert werden.
Die Funktion wird von vielen Kopfhörern, Android 9+ und Linux mit PulseAudio 12.0+ unterstützt. Ich weiß nichts über Funktionsunterstützung auf anderen Plattformen.


Bidirektionale Kommunikation über Bluetooth. Sprachübertragung.

Für die Sprachübertragung in Bluetooth werden Synchronous Connection Oriented (SCO) und die verbesserte Version von Enhanced Synchronous Connection Oriented (eSCO) verwendet - synchrone Übertragung mit vorläufiger Koordination der Verbindung. In diesem Modus können Sie Ton und Sprache in der richtigen Reihenfolge mit einer symmetrischen Sende- und Empfangsgeschwindigkeit senden, ohne auf die Bestätigung des Sendens und erneuten Sendens von Paketen warten zu müssen. Dies verringert die Gesamtverzögerung bei der Übertragung von Audio über den Funkkanal, führt jedoch zu erheblichen Einschränkungen bei der pro Zeiteinheit übertragenen Datenmenge und beeinträchtigt die Audioqualität nachteilig.
Wenn dieser Modus verwendet wird, werden sowohl Sprache vom Mikrofon als auch Audio zu den Kopfhörern mit derselben Qualität übertragen.
Die Übertragung der Daten selbst wird durch das HSP-Profil standardisiert, das auch zusätzliche Funktionen beschreibt, wie z. B. die Bedienung der Lautstärketasten, der Abhol- und der Endanruftaste.
Leider ist die Sprachqualität über Bluetooth ab 2019 immer noch schlecht, und es ist nicht klar, warum Bluetooth SIG nichts damit macht.

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

Ein Beispiel für einen Datensatz in diesem Codec .

mSBC
Ein zusätzlicher mSBC-Codec wurde 2009 standardisiert, und 2010 erschienen Chips, die ihn zur Sprachübertragung verwenden. mSBC wird von verschiedenen Geräten weitgehend unterstützt.
Dies ist kein unabhängiger Codec, sondern ein regulärer SBC aus dem A2DP-Standard mit einem festen Codierungsprofil: 16 kHz, Mono, Bitpool 26.

Ein Beispiel für einen Datensatz in diesem Codec .

Nicht glänzend, aber viel besser als CVSD, aber es ist immer noch unangenehm, es für die Kommunikation über das Internet zu verwenden, insbesondere wenn Sie Kopfhörer für die Kommunikation im Spiel verwenden. Der Spielklang wird auch mit einer Abtastfrequenz von 16 kHz übertragen.

Faststream
CSR 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 in die andere Richtung - sie implementierten Unterstützung für Zweiwege-SBC-Audio im Standard für die Übertragung von Einweg-Audio-A2DP, standardisierten Codierungsprofilen und nannten es „FastStream“.

FastStream überträgt 44,1- oder 48-kHz-Stereoklang mit einer Bitrate von 212 kbit / s an die Lautsprecher, und Mono mit 16 kHz und einer Bitrate von 72 kbit / s (etwas besser als mSBC) wird zum Übertragen von Audio vom Mikrofon verwendet. Solche Parameter eignen sich viel besser für die Kommunikation in Online-Spielen - der Klang des Spiels und der Gesprächspartner werden von hoher Qualität sein.

Ein Beispiel für die Aufnahme in diesem Codec (+ Mikrofonton, wie bei mSBC ).

Das Unternehmen hat eine interessante Krücke entwickelt, 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), jedoch keine Unterstützung für Bluetooth-Stacks erhalten hat. obwohl die Anzahl der Kopfhörer mit FastStream-Unterstützung nicht so gering ist.

Derzeit wird FastStream im Betriebssystem nur in Form eines Patches für Linux PulseAudio vom Entwickler Pali Rohár unterstützt, der nicht im Hauptzweig des Programms enthalten ist.

aptX Geringe Latenz
Zu unserer großen Überraschung unterstützt aptX Low Latency auch bidirektionales Audio und implementiert das gleiche Prinzip wie FastStream.
Es wird nicht funktionieren, diese Funktion des Codecs zu verwenden - es gibt keine Unterstützung für die Dekodierung mit geringer Latenz in einem Betriebssystem oder in einem mir bekannten Bluetooth-Stack.


Bluetooth 5, Classic und Low Energy

Die Spezifikationen und Versionen von Bluetooth sind sehr verwirrend, da zwei inkompatible Standards unter derselben Marke vorhanden sind, die beide häufig für unterschiedliche Zwecke verwendet werden.

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

Ab Bluetooth 4.0 betrafen die Änderungen in der Spezifikation hauptsächlich Bluetooth Low Energy, und die Classic-Version wurde nur geringfügig verbessert.

Liste der Änderungen zwischen Bluetooth 4.2 und Bluetooth 5:
9 ÄNDERUNGEN VON v4.2 AUF 5.0

9.1 NEUE FUNKTIONEN

In der Bluetooth Core Specification 5.0-Version werden mehrere neue Funktionen eingeführt. Die Hauptverbesserungsbereiche sind:
• Slot Availability Mask (SAM)
• 2 Msym / s PHY für LE
• LE Long Range
• Nicht verbindbare Werbung mit hohem Arbeitszyklus
• LE-Werbeerweiterungen
• LE-Kanalauswahlalgorithmus Nr. 2
9.1.1 In CSA5 hinzugefügte Funktionen - In Version 5.0 integriert
• Höhere Ausgangsleistung
Quelle: www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=421043 (Seite 291)

Nur eine Änderung betraf die Classic-Version innerhalb der Bluetooth 5-Spezifikation: Sie unterstützte die Slot Availability Mask (SAM) -Technologie, mit der die Lufttrennung verbessert werden soll. Alle anderen Änderungen betreffen nur Bluetooth LE (und auch die höhere Ausgangsleistung).

Alle Audiogeräte verwenden nur Bluetooth Classic. Kopfhörer und Lautsprecher können nicht über Bluetooth Low Energy verbunden werden: Es gibt keinen Standard für die Audioübertragung mit LE. Der A2DP-Standard, der zur Übertragung von Audio in hoher Qualität verwendet wird, funktioniert nur über Bluetooth Classic, und in LE gibt es kein Analogon.

Fazit - Der Kauf von Audiogeräten mit Bluetooth 5 nur aufgrund der neuen Version des Protokolls ist sinnlos. Bluetooth 4.0 / 4.1 / 4.2 im Rahmen der Audioübertragung funktioniert genauso.
Wenn in der Ankündigung neuer Kopfhörer ein doppelter Betriebsradius und ein geringerer Stromverbrauch dank Bluetooth 5 erwähnt werden, sollten Sie wissen, dass sie sich entweder nicht verstehen oder Sie irreführen. Kein Wunder, dass selbst die Hersteller von Bluetooth-Chips in ihren Ankündigungen über die Unterschiede in der neuen Version des Standards verwirrt sind. Einige Bluetooth 5-Chips unterstützen die fünfte Version nur für LE und für Classic verwenden sie 4.2.

Audioverzögerung

Das Ausmaß der Verzögerung (Verzögerung) des Audios hängt von vielen Faktoren ab: der Größe des Puffers im Audiostapel, im Bluetooth-Stapel und im am meisten reproduzierenden drahtlosen Gerät, der algorithmischen Verzögerung des Codecs.

Die Verzögerung einfacher Codecs wie SBC, aptX und aptX HD ist sehr gering und beträgt 3-6 ms, was vernachlässigt werden kann. Komplexe Codecs wie AAC und LDAC können jedoch zu einer spürbaren Verzögerung führen. Die algorithmische AAC-Verzögerung für 44,1 kHz beträgt 60 ms. LDAC - ungefähr 30 ms (nach einer groben Analyse des Quellcodes. Ich kann mich irren, aber nicht viel.)

Die resultierende Verzögerung hängt stark vom Wiedergabegerät, seinem Chipsatz und seinem Puffer ab. Während der Tests habe ich auf verschiedenen Geräten (mit dem SBC-Codec) einen Spread von 150 bis 250 ms erhalten. Unter der Annahme, dass Geräte, die zusätzliche aptX-, AAC- und LDAC-Codecs unterstützen, hochwertige Komponenten und eine kleine Puffergröße verwenden, ergeben sich die folgenden typischen Verzögerungen:

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

Ich erinnere Sie daran: aptX Low Latency wird unter Betriebssystemen nicht unterstützt, weshalb eine geringere Verzögerung nur von einer Reihe von Sendern + Empfängern oder Sendern + Kopfhörern / Lautsprechern erzielt werden kann und alle Geräte diesen Codec unterstützen müssen.


Probleme mit Bluetooth-Gerätezertifizierungen und -Logos

Wie kann man ein hochwertiges Audiogerät von einem billigen Fahrzeug unterscheiden? In erster Linie in Erscheinung!

Günstige chinesische Kopfhörer, Lautsprecher und Receiver:
  1. Das Wort "Bluetooth" fehlt auf der Box und dem Gerät, am häufigsten verwendet "Wireless" und "BT"
  2. Bluetooth-Logo fehlt Bluetooth-Logo auf Box oder Gerät
  3. Keine blau blinkende LED

Das Fehlen dieser Elemente weist darauf hin, dass das Gerät die Zertifizierung nicht bestanden hat, was bedeutet, dass es möglicherweise problematisch oder von schlechter Qualität ist. Beispielsweise sind Bluedio-Kopfhörer nicht Bluetooth-zertifiziert und entsprechen nicht vollständig der A2DP-Spezifikation. Sie würden die Zertifizierung nicht bestehen.

Betrachten Sie mehrere Geräte und Boxen von ihnen:






Dies sind alles nicht zertifizierte Geräte. Die Anweisungen können das Logo und den Namen der Bluetooth-Technologie enthalten. Das Wichtigste ist jedoch, dass sie sich auf der Box und / oder dem Gerät selbst befinden.

Wenn Ihr Kopfhörer oder Lautsprecher sagt, dass "Ze duise dewise erfolgreich verbunden ist", bedeutet dies auch nicht deren Qualität:



Fazit

Kann Bluetooth kabelgebundene Kopfhörer und Headsets vollständig ersetzen? Es ist in der Lage, aber auf Kosten einer geringen Gesprächszeit, einer erhöhten Verzögerung bei der Tonübertragung, die in Spielen ärgerlich sein kann, und vieler proprietärer Codecs, für die Lizenzgebühren erforderlich sind und die Endkosten für Smartphones und 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 vorgestellt, der bei weitem nicht so schlecht ist, wie es üblich ist.

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

Weitere Informationen finden Sie auf SoundGuys und SoundExpert .

Bonus: SBC-Referenzcodierer, A2DP-Bitstream-Informationen und Testdateien . Diese Datei wurde zuvor öffentlich auf der Bluetooth-Website veröffentlicht, ist jetzt jedoch nur für diejenigen verfügbar, die die Bluetooth-SIG eingegeben haben.

Source: https://habr.com/ru/post/de427997/


All Articles