1 poin oleh GN⁺ 2023-11-25 | 1 komentar | Bagikan ke WhatsApp

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_bitrate ke 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

 
GN⁺ 2023-11-25
Komentar Hacker News
  • Penilaian positif terhadap dukungan SBC yang luas dan skalabilitas alaminya

    Fakta bahwa SBC didukung secara luas itu sangat bagus, dan tampak seperti perluasan alami dari standar yang sudah ada. Secara pribadi, bagi saya masalahnya bukan LDAC atau AAC dibandingkan SBC, melainkan kualitas HFP yang buruk. Begitu mikrofon menyala, rasanya seperti kembali ke era 90-an. Saya berharap kualitas audio Bluetooth dua arah bisa ditingkatkan.

  • Analisis mendalam tentang bug dalam stack Bluetooth Android dan sorotan atas variasi perangkat keras

    Artikel ini bukan tentang Bluetooth secara umum, melainkan analisis mendalam tentang bug dalam stack Bluetooth Android. Hal yang sama sekali tidak disebut penulis adalah bahwa perangkat keras yang digunakan sangat beragam. Android berjalan di atas banyak chipset Bluetooth yang berbeda. Jadi, meskipun sebuah patch tampak bekerja pada satu perangkat keras, itu belum tentu bekerja pada ponsel Android lain. Selain itu, hasilnya juga bisa berubah tergantung pekerjaan lain yang sedang dilakukan perangkat saat itu. Misalnya, jika chipset BT+Wifi digunakan bersama, dan Anda sedang melakukan streaming video lewat Wi‑Fi sambil mengalirkan audio ke headphone, perangkat harus mengalokasikan sumber daya berdasarkan penggunaan Wi‑Fi dan BT. Karena itu, audio yang disimpan secara lokal dan audio melalui streaming tidak harus mendapatkan parameter CODEC yang sama. Ada banyak perbedaan halus dalam topik ini yang tidak dipertimbangkan penulis, jadi perlu berhati-hati saat membacanya.

  • Berbagi pengalaman mengatur parameter SBC serta menggunakan AAC, aptX, dan LDAC melalui 'Alternative A2DP Driver' di Windows

    "Alternative A2DP Driver" menyediakan fungsi ini di Windows. Anda bisa menyesuaikan parameter SBC dan menggunakan AAC, aptX (saya belum mencobanya). Dari pengalaman saya, ini bekerja dengan baik, dan saya bisa menggunakan LDAC dengan Sony XM4. Masih versi uji coba, tetapi murah. Saya melihat jangkauan Bluetooth berkurang dalam mode kualitas tinggi, jadi saya bisa memastikan codec (atau setidaknya sesuatu) memang berubah. Tautan di atas bukan tautan afiliasi.

  • Penyebutan kemungkinan peningkatan audio bitrate lebih tinggi dan kualitas audio headset melalui SBC XQ dan mSBC di Linux

    Di Linux, Anda bisa mengaktifkan audio SBC bitrate lebih tinggi melalui sesuatu yang disebut "SBC XQ". Demikian juga, dengan "mSBC" Anda bisa mendapatkan audio headset berkualitas lebih tinggi (meskipun tentu saja masih lebih rendah dibanding SBC atau APTX). Banyak headphone mendukung codec audio yang lebih baik, tetapi dukungannya belum universal dan peningkatan audio dua arah juga belum pasti. Semoga Google sudah mengintegrasikan fungsi seperti ini atau yang mirip.

  • Mengangkat kebutuhan akan fitur yang memungkinkan buffering panjang di muka dalam profil audio Bluetooth

    Saya berharap ada penemuan fitur dalam profil audio Bluetooth yang memungkinkan buffering panjang di muka. Misalnya, saat memutar lagu berdurasi 1 menit, seluruh lagu seharusnya dibuffer. Jika pengguna menekan 'jeda' atau mengubah volume, buffer harus dibuang. Tetapi buffer panjang akan membantu penghematan daya ponsel dan membuatnya lebih tahan terhadap konektivitas radio yang tidak stabil.

  • Pengalaman menggunakan fitur transmisi audio berkualitas tinggi di LineageOS dan penyebutan perlunya peningkatan pengalaman pengguna

    Saya pernah menggunakan fitur ini di LineageOS dan sangat puas. Kemampuan untuk mengirim audio dengan kualitas lebih tinggi ke perangkat seperti stereo mobil yang tidak mendukung codec 3P sangat berguna. Di headphone juga ada manfaat besar. Pengalaman penggunanya memang perlu sedikit perbaikan, tetapi fiturnya sendiri luar biasa.

  • Penyebutan perlunya menambahkan tahun (2019) pada judul serta fakta bahwa implementasinya sudah ada di PulseAudio dan PipeWire

    Sebaiknya tambahkan (2019) pada judul. Ada penyebutan tentang "semua stack Bluetooth saat ini", tetapi fitur-fitur seperti ini sudah diimplementasikan di PulseAudio dan PipeWire.

  • Pandangan skeptis tentang dampak perbedaan bitrate antara Dual Channel dan Joint Stereo terhadap kualitas audio nyata

    Saya skeptis bahwa Dual Channel 551 kbps benar-benar memberikan kualitas yang terlihat lebih baik daripada Joint Stereo 328 kbps. Untuk sebagian besar musik, saya bertanya-tanya apakah itu hanya memakai lebih banyak bit untuk mengodekan informasi yang berulang.

  • Pertanyaan tentang cara meningkatkan kualitas HFP di MacOS dan berbagi pengalaman menggunakan mSBC di Linux

    Saya ingin tahu apakah ada yang tahu cara meningkatkan kualitas HFP di MacOS melalui Bluetooth. Saya pernah merasakan kualitas yang cukup baik dengan mSBC di Linux, tetapi di MacOS hasilnya benar-benar buruk dan kembali ke kualitas seperti saluran telepon/mono. Saya penasaran apakah sudah ada hack di Darwin agar ini bisa bekerja dengan benar.

  • Ungkapan terima kasih atas kiriman tersebut dan pengalaman tidak menyadari sedang menggunakan SBC

    Saat menggunakan Lineage 18-1, saya tidak tahu bahwa saya sedang memakai fitur SBC. Dari kiriman ini saya jadi tahu bahwa saya memang sedang menggunakan fitur SBC. "magic -"