Modifikasi Stack Bluetooth untuk Meningkatkan Kualitas Audio pada Headphone tanpa AA(2019)
(habr.com)Peningkatan kualitas audio melalui modifikasi stack Bluetooth
- Pengguna headphone nirkabel sering mengalami kualitas suara rendah dan kekurangan frekuensi tinggi saat menggunakan codec Bluetooth SBC standar.
- Membeli perangkat yang mendukung codec aptX atau LDAC adalah solusi yang umum, tetapi codec tersebut memerlukan biaya lisensi sehingga perangkat menjadi lebih mahal.
- Kualitas rendah SBC saat ini disebabkan oleh batasan buatan pada stack Bluetooth dan headphone, dan hal ini dapat diakali di semua perangkat hanya dengan modifikasi perangkat lunak.
Codec SBC
- SBC memiliki berbagai parameter yang dinegosiasikan pada tahap pengaturan koneksi: jenis dan jumlah kanal audio, jumlah subband frekuensi, jumlah blok audio per paket, algoritma alokasi bit kuantisasi, serta bitpool maksimum dan minimum yang digunakan dalam proses kuantisasi.
- Stack Bluetooth saat ini umumnya menegosiasikan sekumpulan opsi berupa Joint Stereo, 8 subband, 16 blok, Loudness, dan bitpool 2..53.
- Nilai bitpool adalah parameter yang mengubah bitrate encoding; semakin tinggi nilainya, semakin tinggi pula bitrate dan kualitasnya.
Modifikasi stack Bluetooth
- Semua stack Bluetooth yang kompatibel dengan A2DP wajib mendukung mode Dual Channel, tetapi tidak ada cara untuk memaksa penggunaan mode ini.
- Dibuat patch untuk Android 8.1 dan 9 yang menambahkan mode Dual Channel ke menu pengembang, dan ditampilkan sebagai codec "HD Audio" di pengaturan perangkat Bluetooth.
- Patch ini diintegrasikan ke firmware alternatif seperti LineageOS, Resurrection Remix, dan crDroid.
Asal-usul 551 dan 452 kbps
- Teknologi pembagian waktu Bluetooth dirancang untuk mengirim paket berukuran tetap besar secara efisien.
- Transfer data dilakukan melalui slot, dan 5 slot adalah jumlah maksimum yang dapat dikirim dalam satu transmisi.
- Dalam 5 slot, dapat dikirim maksimal 679 byte pada kecepatan 2Mbps, dan maksimal 1021 byte pada kecepatan 3Mbps.
Mengapa semua ini diperlukan?
- Berlawanan dengan keyakinan umum tentang kualitas suara aptX, dalam beberapa kasus SBC dapat menghasilkan kualitas audio yang lebih buruk daripada bitrate standar 328k.
- SBC secara dinamis mengalokasikan bit kuantisasi ke pita frekuensi, sementara aptX mengkuantisasi pita frekuensi dengan jumlah bit tetap.
- Dengan SBC bitrate tinggi, dalam sebagian besar kasus kualitas suara yang diperoleh bisa lebih baik daripada aptX, dan pada headphone yang mendukung EDR 3 Mb/s kualitasnya sangat mendekati aptX HD.
Bisakah melangkah lebih jauh?
- Patchset Android menyediakan opsi tambahan yang dapat lebih meningkatkan bitrate perangkat EDR 2 mbps dari 452 kbps menjadi 595 kbps.
- Bitrate yang lebih tinggi dapat diaktifkan dengan mengatur variabel
persist.bluetooth.sbc_hd_higher_bitrateke 1.
Kompatibilitas dengan perangkat
- SBC Dual Channel didukung oleh hampir semua headphone, speaker, dan head unit mobil.
- Perangkat yang mengalami masalah karena mode ini sangat jarang, tetapi informasi kompatibilitas yang lebih rinci dapat ditemukan di 4pda dan xda-developers.
Perbandingan kualitas suara
- Dibuat layanan web yang meng-encode audio ke SBC secara real-time di browser (serta aptX dan aptX HD), sehingga kualitas suara berbagai profil SBC dan codec dapat dibandingkan.
Menghubungi pengembang Android
- Telah diminta kepada para pengembang stack Bluetooth Google agar memasukkan patch ini ke AOSP, tetapi sampai sekarang belum ada jawaban.
- Bahkan di sistem code review Gerrit pun belum ada komentar apa pun dari pihak yang terlibat dalam pengembangan.
Kesimpulan
- Pengguna firmware LineageOS, Resurrection Remix, dan crDroid dapat meningkatkan kualitas audio Bluetooth dengan mencentang kotak di pengaturan perangkat Bluetooth.
- Pengguna Linux juga dapat memperoleh bitrate SBC yang lebih tinggi dengan memasang patch dari Pali Rohár.
Pendapat GN⁺
Hal terpenting dari tulisan ini adalah bahwa kualitas audio Bluetooth yang sudah ada dapat ditingkatkan hanya melalui modifikasi perangkat lunak. Ini adalah solusi menarik karena memungkinkan pengguna menikmati audio berkualitas lebih tinggi pada perangkat yang sudah dimiliki tanpa harus membeli perangkat baru yang mendukung codec mahal. Khususnya bagi pengguna firmware open source, ketersediaan modifikasi semacam ini merupakan perkembangan menarik yang meningkatkan aksesibilitas teknologi dan memberi pengguna kendali lebih besar atas perangkat mereka.
1 komentar
Komentar Hacker News
Penilaian positif terhadap dukungan SBC yang luas dan skalabilitas alaminya
Analisis mendalam tentang bug dalam stack Bluetooth Android dan sorotan atas variasi perangkat keras
Berbagi pengalaman mengatur parameter SBC serta menggunakan AAC, aptX, dan LDAC melalui 'Alternative A2DP Driver' di Windows
Penyebutan kemungkinan peningkatan audio bitrate lebih tinggi dan kualitas audio headset melalui SBC XQ dan mSBC di Linux
Mengangkat kebutuhan akan fitur yang memungkinkan buffering panjang di muka dalam profil audio Bluetooth
Pengalaman menggunakan fitur transmisi audio berkualitas tinggi di LineageOS dan penyebutan perlunya peningkatan pengalaman pengguna
Penyebutan perlunya menambahkan tahun (2019) pada judul serta fakta bahwa implementasinya sudah ada di PulseAudio dan PipeWire
Pandangan skeptis tentang dampak perbedaan bitrate antara Dual Channel dan Joint Stereo terhadap kualitas audio nyata
Pertanyaan tentang cara meningkatkan kualitas HFP di MacOS dan berbagi pengalaman menggunakan mSBC di Linux
Ungkapan terima kasih atas kiriman tersebut dan pengalaman tidak menyadari sedang menggunakan SBC