Änderung des Bluetooth-Stacks zur Verbesserung des Klangs in Kopfhörern ohne AAC-, aptX- und LDAC-Codecs


Free Download Mp4Gain
picture

Änderung des Bluetooth-Stacks zur Verbesserung des Klangs in Kopfhörern ohne AAC-, aptX- und LDAC-Codecs

Bluetooth

Einige Benutzer von drahtlosen Kopfhörern bemerken eine schlechte Klangqualität und einen Mangel an hohen Frequenzen, wenn sie den Bluetooth SBC-Standardcodec verwenden, der von allen Audiogeräten unterstützt wird. Eine häufige Empfehlung zur Verbesserung des Klangs ist der Kauf von Geräten und Kopfhörern, die aptX- und LDAC-Codecs unterstützen. Diese Codecs erfordern Lizenzgebühren, daher sind die Geräte, die sie unterstützen, teurer.

Bluetooth

Es stellt sich heraus, dass die schlechte Qualität des SBC auf künstliche Einschränkungen der Bluetooth-Stacks und der Kopfhörerkonfiguration zurückzuführen ist. Diese Einschränkung kann auf jedem vorhandenen Gerät durch Softwareänderungen am Smartphone oder Computer vermieden werden.

SBC-Codec
Der SBC-Codec verfügt über viele verschiedene Parameter, die während der Verbindungsaufbauphase ausgehandelt werden. Unter ihnen:

Anzahl und Art der Kanäle: Joint Stereo, Stereo, Dual Channel, Mono;
Anzahl der Frequenzbänder: 4 oder 8;
Anzahl der Blöcke in einer Packung: 4, 8, 12, 16;
Quantisierungsbit-Zuweisungsalgorithmus: Loudness, SNR;
Der Maximal- und Minimalwert der zur Quantisierung verwendeten Bitgruppe (Bitgruppe): normalerweise 2 bis 53.

Der Decoder MUSS eine beliebige Kombination dieser Parameter unterstützen. Der Encoder kann möglicherweise nicht alles tun.
Bestehende Bluetooth-Stacks entsprechen im Allgemeinen dem folgenden Profil: Stereo-Set, 8 Bänder, 16 Blöcke, Lautstärke, Bitpool 2..53. Dieses Profil codiert 44,1-kHz-Audio mit 328 kbit / s.
Der Bitpool-Parameter wirkt sich direkt auf die Bitrate innerhalb eines Profils aus: Je höher diese ist, desto höher ist die Bitrate und damit die Qualität.
Der Bitpool-Parameter ist jedoch nicht an ein bestimmtes Profil gebunden. Andere Parameter beeinflussen die Bitrate ebenfalls erheblich: die Art der Kanäle, die Anzahl der Frequenzbänder, die Anzahl der Blöcke. Sie können die Bitrate indirekt erhöhen, indem Sie sich auf nicht standardmäßige Profile einigen, ohne die Bitgruppe zu ändern.

Berechnungsformel für die SBC-Bitrate

Beispielsweise codiert der Zweikanalmodus Kanäle separat unter Verwendung des für jeden Kanal gesetzten Vollbits. Indem wir das Gerät zwingen, Dual Channel anstelle von Joint Stereo zu verwenden, erhalten wir fast die doppelte Bitrate bei demselben maximalen Bitpoolwert: 617 kbps.
Meiner Meinung nach ist die Verwendung eines nicht profilierten Bitpool-Werts in der Verhandlungsphase ein Fehler im A2DP-Standard, der zu einer künstlichen Einschränkung der SBC-Qualität führte. Es wäre klüger, sich eher auf die Bitrate als auf die Bitgruppe zu einigen.

Diese festen Bitpool- und Bitrate-Werte stammen aus der Tabelle der empfohlenen Werte für Audio in hoher Qualität. Die Empfehlung ist jedoch kein Grund, sich auf diese Werte zu beschränken.

SBC Bluetooth-Profiltabelle

Die A2DP v1.2-Spezifikation, die von 2007 bis 2015 aktiv war, erfordert, dass alle Decodierungsgeräte mit Bitraten von bis zu 512 kbps ordnungsgemäß funktionieren:

Der SNK-Decoder muss alle möglichen Werte der Bitkombination unterstützen, die die maximale Bitrate nicht überschreiten. Dieses Profil begrenzt die maximal verfügbare Bitrate auf 320 kb / s für Mono und 512 kb / s für Zweikanalmodi.

In der neuen Version der Spezifikation gibt es keine Bitratenbeschränkung. Moderne Kopfhörer, die nach 2015 veröffentlicht wurden und EDR unterstützen, sollen Bitraten von bis zu 730 kbps unterstützen können.

Aus irgendeinem Grund haben die Bluetooth-Stacks, die ich für Linux (PulseAudio), Android, Blackberry und macOS getestet habe, künstliche Grenzen für den Maximalwert des Bitpool-Parameters, was sich direkt auf die maximale Bitrate auswirkt. Dies ist jedoch nicht das größte Problem. Fast alle Kopfhörer begrenzen den maximalen Bitpoolwert auf 53.
Wie ich bereits gesehen habe, funktionieren die meisten Geräte auf einem modifizierten Bluetooth-Stack mit einer Bitrate von 551 kbit / s einwandfrei, ohne Aussetzer oder Knistern. Diese Bitrate wäre jedoch unter normalen Umständen in normalen Bluetooth-Stacks niemals konstant.

Ändern Sie den Bluetooth-Stack
Jeder Bluetooth-Stack, der mit dem A2DP-Standard kompatibel ist, unterstützt den Zweikanalmodus, kann jedoch nicht über die Schnittstelle aktiviert werden.

Fügen wir der Schnittstelle einen Schalter hinzu! Ich habe Patches für Android 8.1 und Android 9 erstellt, die dem Stack volle Dual-Channel-Unterstützung hinzufügen, dem Moduswechselmenü in den Entwicklertools den Modus hinzufügen und Dual-Channel-SBCs so behandeln, als wären sie ein zusätzlicher Codec wie aptX, AAC oder LDAC (Android) nennt es HD Audio), indem Sie den Bluetooth-Geräteeinstellungen ein Häkchen hinzufügen.


Free Download Mp4Gain
picture

Bluetooth-Probleme Teil 4

Bluetooth-Probleme Teil 4

Bluetooth

AptX ist ein beliebter Marketing-Codec

Bluetooth

In einem neuen Markt ist es oft nicht derjenige, der die beste Lösung gefunden hat, der zum Marktführer wird, sondern derjenige, der zuerst seine Lösung gefunden hat. Dies war der Apt-X-Codec, der in den 1980er Jahren von Professor Stephen Smith von der britischen Queen’s University entwickelt wurde, um qualitativ hochwertigen Sound schnell auf verschiedene Laptops zu übertragen und im Allgemeinen schnell Audio in hoher Qualität aufzunehmen. Anschließend wurden die Rechte an dem damaligen Apt-X von CSR gekauft, wodurch der Codec 2009 drahtlos wurde und in AptX umbenannt wurde. Nun, im Jahr 2015 hat Qualcomm dieses Unternehmen gekauft, das nun die Rechte an AptX besitzt und es freiwillig an alle verkauft.

Die Hauptidee hinter AptX ist es, Audio-CDs mit nahezu Originalqualität anzubieten. Tatsächlich sehen wir eine 4: 1-Komprimierung, dh die Bitrate betrug bis zu 352 kbps bei 16 Bit und 44,1 kHz. Daher ist hier nicht von “fast” die Rede: Die maximale verlustfreie Komprimierung überschreitet 2: 1 nicht, sodass beim Streaming von Sound mit AptX immer noch Daten verloren gehen. Aber wie stark? Wir werden weiter unten darüber sprechen.

Da AptX ein rein mathematischer Codec ist, der immer den gesamten Audiobereich bis 22 kHz abdeckt; es scheint, als sollte es besser sein als der SBC, der oft die hohen Frequenzen ausschaltet. In der Tat ist dies leider nicht der Fall. Das Grundprinzip dieses Codecs ist die Quantisierung, dh die Zuweisung einer bestimmten Anzahl von Bits für jedes Teilband: Beispielsweise werden 8 Bits verwendet, um Schall von 0 bis 5500 Hz, von 5500 bis 11000 Hz – 4 Bits, 11000 zu übertragen bis 16500 Hz und 16500 bis 22000 Hz sind 2 Bit.

Bluetooth-Probleme Teil 2

Bluetooth-Probleme Teil 2

Bluetooth

Infolgedessen klingt SBC im Kontext “fortgeschrittener” Codecs noch schlechter.

Bluetooth

Es gibt jedoch einen interessanten Punkt: Mit einer Bitrate von 576 kbps kann es sogar noch besser klingen als AptX HD. Wie ist das? Es ist ganz einfach: Wie ich bereits geschrieben habe, kann dieser Codec in einem sehr weiten Bereich skaliert werden, und sein theoretisches Maximum liegt bei etwas mehr als 1,5 Mbit / s, dh er kann sogar CD-Audio ohne Komprimierung weitergeben! In unserem lauten 2,4-GHz-Band ist diese Geschwindigkeit natürlich nur in Träumen möglich, und nicht alle Kopfhörer unterstützen sie. Die überwiegende Mehrheit der Lösungen auf dem Markt kann jedoch mit SBC mit einer Bitrate von 400 bis 600 Kbit / s arbeiten.

Infolgedessen reicht dies für die Psychoakustik aus, um die Frequenzen nicht mehr abzuschalten, und theoretisch führt SBC noch weniger Verzerrungen in den Klang ein als die neueren Codecs von Qualcomm (ja, AptX gehört zu ihnen). Aber hier wurde alles von den Treibern verwöhnt: Weder unter Windows noch unter MacOS oder iOS können Sie die Standard-Bitrate von 328 kbps nach oben ändern. Die sogenannte SBC HD mit einer höheren Bitrate ist nur für Android mit benutzerdefinierter LineageOS-Firmware verfügbar. Wie ich anfangs sagte, wurde SBC nicht durch eine schlechte Implementierung “getötet” – es wurde von schlechten Treibern getötet, und dieser Codec selbst ist sehr gut.

Im Jahr 2020 können wir über Bluetooth immer noch keinen Stereoton hören, wenn wir das Headset-Mikrofon verwenden

Ich denke, viele Benutzer haben festgestellt, dass bei der Beantwortung eines Anrufs mit drahtlosen Kopfhörern die Klangqualität erheblich abnimmt. Was passiert ist, dass die Kopfhörer in den Kopfhörermodus wechseln (HFP, Freisprechprofil). In diesem Modus können sie Ton vom Mikrofon des Kopfhörers zum Smartphone übertragen, der Ton des Smartphones wird jedoch nur in Mono ausgegeben. Dies reicht natürlich für ein Gespräch aus – für ein klares Sprachverständnis benötigen Sie keine Stereoanlage. Aber im Jahr 2020 sind wir es oft gewohnt, gleichzeitig zu reden und Musik zu hören oder zu spielen, und in diesem Fall verdirbt natürlich ein flacher Mono-Sound mit geringer Qualität alles.

Wenn Sie Musik in Stereo hören und gleichzeitig chatten möchten, müssen Sie daher ein externes Mikrofon (z. B. ein Smartphone) verwenden. In diesem Fall wird das Standardprofil A2DP (Advanced Audio Distribution Profile) mit mindestens SBC (oder einem anderen “vollständigen” Codec) verwendet. Aber natürlich haben Sie keine Bewegungsfreiheit. Diese Einschränkung war in den frühen 2000er Jahren logisch, als der Bluetooth-Sound noch in den Kinderschuhen steckte – Kopfhörer wurden nur für die Kommunikation verwendet, und die schwachen Prozessoren in den Kopfhörern reichten einfach nicht aus, um gleichzeitig mit Stereoklang und einem Mikrofon zu arbeiten.

In der modernen Welt, in der Kopfhörer komplexe mathematische Codecs wie AAC oder LDAC mit Rauschunterdrückung und anderen Chips unterstützen, war es jedoch durchaus möglich, das A2DP-Profil auf die Fähigkeit zu erweitern, Ton in Stereo zu empfangen und zu senden.

Bluetooth-Probleme

Bluetooth-Probleme

Bluetooth

Wie die Ablehnung von 3,5-mm-Buchsen eine vollständige Katastrophe mit drahtlosem Sound verursachte

Bluetooth

2016 überraschte Apple die Welt erneut mit der Veröffentlichung des iPhone 7 ohne unsere übliche 3,5-mm-Audiobuchse. Das Unternehmen erklärte dann seinen Schritt damit, dass es die Schaffung eines normalen Wasserschutzes störte. Ob es wahr ist oder nicht, Sie können lange streiten, aber mit diesem Schritt hat Apple die Entwicklung von drahtlosen Kopfhörern vorangetrieben, aktiv daran teilgenommen und verschiedene AirPods auf den Markt gebracht.

Daher scheint das Fehlen einer 3,5-mm-Buchse an einem Smartphone derzeit nicht mehr ungewöhnlich zu sein, ebenso wie die Dominanz verschiedener drahtloser Kopfhörer aller Formen und Größen auf dem Markt. Sie können beide Modelle für bedingte tausend Rubel kaufen, wie Xiaomi AirDots mit minimalen Funktionen und mittelmäßiger Verarbeitung, und das Flaggschiff Sony WH-1000XM4 zum Preis einiger der besten Smartphones, die über eine hervorragende Geräuschkontrolle und viele Konfigurationen verfügen.

Beim Übergang zum Bluetooth-Sound ist jedoch ein neues Problem aufgetreten: Wenn Sie drahtlose Kopfhörer an ein beliebiges Gerät anschließen, können Sie nur sicher wissen, wie der Sound sein wird. Aber seine Qualität und Latenz können fraglich sein, und um dies zu beheben, müssen Sie in die Hölle der Bluetooth-Codecs eintauchen, die ich seit ein paar Jahren alleine überkoche. Gern geschehen.

SBC ist ein guter Standard-Codec, den Treiber übertönt haben

Wenn Sie einen Datenübertragungsstandard erstellen, in unserem Fall Sound, müssen Sie ihn natürlich zu einer grundlegenden und zugänglichen Implementierung für alle machen – so sah der SBC Bluetooth-Codec oder SubBand-Codec aus. Es hat minimale Hardwareanforderungen und sogar einfache Telefone können damit arbeiten. Es verfügt über ein grundlegendes psychoakustisches Modell und umfangreiche Anpassungsoptionen. Es ist kostenlos und Open Source und seit über 15 Jahren für alle verfügbar. All dies hätte den Rest der Codecs nur unnötig machen sollen, wenn nicht für eine Sache.

In 99% der Geräte hat dieser Codec eine Bitrate von 328 kbps. Nur zum Vergleich: Standard-16-Bit-CD-Audio mit 44,1 kHz hat eine viermal höhere Bitrate von etwas mehr als 1,4 Mbit / s. Selbst wenn Sie Musik von Streaming-Diensten hören, reicht die Bitrate nicht mehr aus und die Psychoakustik kann beginnen um die oberen Frequenzbereiche über 16-18 kHz auszuschalten, damit die unteren, die jeder hört, mehr Platz bei der “engen” Bitrate bekommen. Infolgedessen kann beim Anhören mehrerer Kompositionen mit einer breiten Bühne (z. B. mit Frauenstimmen) die Klangqualität erheblich sinken, weshalb der SBC-Codec traditionell als ungeeignet für die Übertragung hochwertiger Musik angesehen wird.

Das Hinzufügen von Kraftstoff zum Feuer ist die Tatsache, dass viele Kopfhörerhersteller DSP (Digital Signal Processing) für diesen Codec einfach nicht konfigurieren. Kopfhörer haben einen gleichnamigen Prozessor, der für die Vorbereitung des Tons vor seiner direkten Ausgabe verantwortlich ist, und er kann dazu gebracht werden, viele nützliche Dinge zu tun, zum Beispiel ist es der DSP-Prozessor, der für die Rauschunterdrückung verantwortlich ist. Sie können Codec-Störungen auch beheben, indem Sie mit einem Equalizer arbeiten. Und wenn für mehrere AACs oder AptX die Hersteller der Kopfhörer immer noch ausgehen und den Sound “optimieren”, dann macht selbst Sony nichts mit SBCs in ihrer WH-1000XM-Reihe audiophiler Overhead-Lösungen, geschweige denn mit einfacheren Kopfhörern.