1 Punkte von GN⁺ 2023-11-25 | 1 Kommentare | Auf WhatsApp teilen

Verbesserung der Audioqualität durch Änderungen am Bluetooth-Stack

  • Nutzer kabelloser Kopfhörer erleben bei Verwendung des standardmäßigen Bluetooth-SBC-Codecs eine niedrige Klangqualität und schwache Höhen.
  • Der Kauf von Geräten mit Unterstützung für aptX oder LDAC ist die übliche Lösung, aber diese Codecs verursachen Lizenzkosten, wodurch die Geräte teurer werden.
  • Die niedrige Qualität von SBC entsteht derzeit durch künstliche Einschränkungen im Bluetooth-Stack und in den Kopfhörern; dies lässt sich auf allen Geräten allein durch Software-Änderungen umgehen.

SBC-Codec

  • SBC hat verschiedene Parameter, die in der Phase des Verbindungsaufbaus ausgehandelt werden: Typ und Anzahl der Audiokanäle, Anzahl der Frequenzbänder, Anzahl der Audioblöcke pro Paket, Algorithmus zur Zuweisung der Quantisierungsbits sowie der maximale und minimale Bitpool, der im Quantisierungsprozess verwendet wird.
  • Der aktuelle Bluetooth-Stack handelt normalerweise den Optionssatz Joint Stereo, 8 Bänder, 16 Blöcke, Loudness und Bitpool 2..53 aus.
  • Der Bitpool-Wert ist ein Parameter zur Änderung der Encodierungs-Bitrate; je höher er ist, desto höher sind Bitrate und Qualität.

Änderung des Bluetooth-Stacks

  • Jeder A2DP-kompatible Bluetooth-Stack muss den Dual-Channel-Modus unterstützen, aber es gibt keine Möglichkeit, diesen Modus zu erzwingen.
  • Für Android 8.1 und 9 wurde ein Patch erstellt, der den Dual-Channel-Modus zum Entwicklermenü hinzufügt und ihn in den Bluetooth-Geräteeinstellungen als „HD Audio“-Codec anzeigt.
  • Dieser Patch wurde in alternative Firmware wie LineageOS, Resurrection Remix und crDroid integriert.

Woher 551 und 452 kbps kommen

  • Die Bluetooth-Zeitmultiplex-Technologie wurde dafür entwickelt, große Pakete fester Größe effizient zu übertragen.
  • Die Datenübertragung erfolgt über Slots, wobei 5 Slots die maximale Anzahl sind, die in einer einzelnen Übertragung gesendet werden können.
  • In 5 Slots können bei 2 Mbps maximal 679 Byte und bei 3 Mbps maximal 1021 Byte übertragen werden.

Warum ist das alles nötig?

  • Entgegen dem verbreiteten Glauben an die Klangqualität von aptX kann SBC in manchen Fällen eine schlechtere Audioqualität liefern als die standardmäßige 328k-Bitrate.
  • SBC weist den Frequenzbändern dynamisch Quantisierungsbits zu, während aptX Frequenzbänder mit einer konstanten Bitanzahl quantisiert.
  • Mit SBC bei hoher Bitrate lässt sich in den meisten Fällen eine bessere Klangqualität als mit aptX erzielen; bei Kopfhörern mit EDR-3-Mb/s-Unterstützung ist die Klangqualität sehr nah an aptX HD.

Geht es noch weiter?

  • Das Android-Patchset bietet eine zusätzliche Option, mit der sich die Bitrate von EDR-2-mbps-Geräten weiter von 452 kbps auf 595 kbps erhöhen lässt.
  • Eine höhere Bitrate kann aktiviert werden, indem die Variable persist.bluetooth.sbc_hd_higher_bitrate auf 1 gesetzt wird.

Kompatibilität mit Geräten

  • SBC Dual Channel wird von fast allen Kopfhörern, Lautsprechern und Auto-Headunits unterstützt.
  • Geräte, bei denen dieser Modus Probleme verursacht, sind sehr selten; detaillierte Informationen zur Kompatibilität finden sich bei 4pda und xda-developers.

Vergleich der Klangqualität

  • Es wurde ein Webdienst erstellt, der Audio in Echtzeit im Browser in SBC (sowie aptX und aptX HD) encodiert, sodass sich die Klangqualität verschiedener SBC-Profile und Codecs vergleichen lässt.

Kontakt zu Android-Entwicklern

  • Die Entwickler von Googles Bluetooth-Stack wurden gebeten, den Patch in AOSP aufzunehmen, aber bisher gab es keine Antwort.
  • Auch im Gerrit-Code-Review-System gab es keinerlei Kommentare von an der Entwicklung beteiligten Personen.

Fazit

  • Nutzer der Firmware LineageOS, Resurrection Remix und crDroid können die Bluetooth-Audioqualität verbessern, indem sie in den Bluetooth-Geräteeinstellungen ein Kontrollkästchen auswählen.
  • Auch Linux-Nutzer können durch Installation von Pali Rohárs Patch eine höhere SBC-Bitrate erhalten.

Meinung von GN⁺

Das Wichtigste an diesem Artikel ist, dass sich die bestehende Bluetooth-Audioqualität allein durch Software-Änderungen verbessern lässt. Das ist eine attraktive Lösung, weil Nutzer dadurch hochwertige Audioqualität auf vorhandenen Geräten erleben können, ohne neue Geräte mit Unterstützung für teure neue Codecs kaufen zu müssen. Besonders für Nutzer von Open-Source-Firmware ist die Möglichkeit solcher Anpassungen eine interessante Entwicklung, weil sie den Zugang zur Technik verbessert und den Nutzern mehr Kontrolle über ihre eigenen Geräte gibt.

1 Kommentare

 
GN⁺ 2023-11-25
Hacker-News-Kommentare
  • Positive Einschätzung der breiten Unterstützung von SBC und seiner natürlichen Erweiterbarkeit

    Dass SBC breit unterstützt wird, ist großartig und wirkt wie eine natürliche Erweiterung des bestehenden Standards. Für mich liegt das Problem im Vergleich zu SBC nicht bei LDAC oder AAC, sondern bei der schlechten Qualität von HFP. In dem Moment, in dem das Mikrofon eingeschaltet wird, fühlt es sich an, als wäre man wieder in den 90ern. Ich hoffe auf eine bessere Qualität bei bidirektionalem Bluetooth-Audio.

  • Tiefgehende Analyse eines Bugs im Android-Bluetooth-Stack und Hinweis auf die Variabilität der Hardware

    Dieser Artikel handelt nicht von Bluetooth im Allgemeinen, sondern ist eine tiefgehende Analyse eines Bugs im Android-Bluetooth-Stack. Was der Autor überhaupt nicht erwähnt, ist, dass die verwendete Hardware extrem unterschiedlich ist. Android läuft auf unzähligen Bluetooth-Chipsätzen. Daher kann ein Patch auf einer Hardware funktionieren, auf anderen Android-Handys aber nicht. Außerdem kann es davon abhängen, was das Gerät gerade sonst noch tut. Wenn es zum Beispiel einen gemeinsamen BT+WiFi-Chipsatz gibt und man über WLAN Video streamt, während Audio an Kopfhörer gestreamt wird, muss das Gerät Ressourcen zwischen WLAN-Nutzung und BT aufteilen. Deshalb erhalten lokal gespeicherte Audiodaten und gestreamtes Audio nicht zwangsläufig dieselben CODEC-Parameter. Bei diesem Thema gibt es viele feine Unterschiede, die der Autor nicht berücksichtigt hat, daher sollte man beim Lesen vorsichtig sein.

  • Geteilte Erfahrungen mit der Anpassung von SBC-Parametern und der Nutzung von AAC, aptX und LDAC unter Windows mit dem "Alternative A2DP Driver"

    Der "Alternative A2DP Driver" bietet diese Funktion unter Windows. Man kann SBC-Parameter anpassen und AAC sowie aptX (habe ich nicht ausprobiert) verwenden. Meiner Erfahrung nach funktioniert es gut, und mit den Sony XM4 kann man LDAC nutzen. Es ist eine Testversion, aber günstig. Dass sich die Bluetooth-Reichweite im Hochqualitätsmodus verringert, zeigt mir, dass tatsächlich der Codec (oder zumindest irgendetwas) geändert wird. Der obige Link ist kein Affiliate-Link.

  • Hinweis auf höhere Bitraten mit SBC XQ und bessere Headset-Audioqualität mit mSBC unter Linux

    Unter Linux kann man mit etwas namens "SBC XQ" SBC-Audio mit höherer Bitrate aktivieren. Ebenso kann man mit "mSBC" Audio in höherer Headset-Qualität nutzen, auch wenn die Qualität natürlich immer noch unter SBC oder APTX liegt. Viele Kopfhörer unterstützen bessere Audio-Codecs, aber die Unterstützung ist nicht universell, und ob sich bidirektionales Audio verbessert, ist ebenfalls nicht sicher. Ich wünschte, Google hätte so etwas oder etwas Ähnliches bereits integriert.

  • Forderung nach einer Funktion in Bluetooth-Audioprofilen, die langes Vorab-Buffering erlaubt

    Ich wünschte, Bluetooth-Audioprofile würden eine Funktion bekommen, mit der man lange im Voraus puffern kann. Wenn zum Beispiel ein Lied mit einer Minute Länge abgespielt wird, sollte das gesamte Lied gepuffert werden. Wenn man auf „Pause“ klickt oder die Lautstärke ändert, sollte der Puffer verworfen werden. Ein langer Puffer würde dem Handy aber helfen, Strom zu sparen und mit instabilen Funkverbindungen besser zurechtzukommen.

  • Erfahrungsbericht zur Nutzung dieser Funktion in LineageOS und Hinweis auf Verbesserungsbedarf bei der UX

    Ich habe diese Funktion in LineageOS verwendet und bin sehr zufrieden damit. Die Möglichkeit, Audio in höherer Qualität an Geräte wie Autoradios zu senden, die keine 3P-Codecs unterstützen, ist sehr nützlich. Auch bei Kopfhörern bringt sie große Vorteile. Die User Experience könnte etwas verbessert werden, aber die Funktion selbst ist großartig.

  • Hinweis, dass der Titel um die Jahreszahl (2019) ergänzt werden sollte, sowie Erwähnung der Implementierung in PulseAudio und PipeWire

    Es wäre gut, im Titel (2019) hinzuzufügen. Es gibt dort eine Erwähnung von „allen aktuellen Bluetooth-Stacks“, aber solche Funktionen sind in PulseAudio und PipeWire bereits implementiert.

  • Skeptische Sicht darauf, ob der Bitratenunterschied zwischen Dual Channel und Joint Stereo die Audioqualität tatsächlich verbessert

    Ich bin skeptisch, dass 551 kbps mit Dual Channel eine merklich bessere Qualität liefern als 328 kbps mit Joint Stereo. Bei den meisten Musikstücken frage ich mich, ob dabei nicht einfach nur mehr Bits für die Kodierung redundanter Informationen verwendet werden.

  • Frage nach Möglichkeiten zur Verbesserung der HFP-Qualität unter macOS und Erfahrungsbericht zu mSBC unter Linux

    Weiß jemand, ob es eine Möglichkeit gibt, die HFP-Qualität unter macOS über Bluetooth zu verbessern? Unter Linux habe ich mit mSBC ziemlich gute Qualität erlebt, aber unter macOS ist es völlig miserabel und fällt auf Telefonleitungs-/Mono-Qualität zurück. Ich frage mich, ob es bereits einen Hack gibt, um das unter Darwin ordentlich zum Laufen zu bringen.

  • Dank für den Beitrag und Hinweis, dass man gar nicht wusste, SBC bereits zu nutzen

    Während ich Lineage 18-1 verwendet habe, wusste ich nicht, dass ich die SBC-Funktion genutzt habe. Durch diesen Beitrag habe ich erfahren, dass ich SBC verwendet habe. "magic -"