Modificación de la pila Bluetooth para mejorar la calidad de audio en audífonos sin AA (2019)
(habr.com)Mejora de la calidad de audio mediante la modificación de la pila Bluetooth
- Los usuarios de audífonos inalámbricos experimentan baja calidad de sonido y falta de agudos al usar el códec SBC estándar de Bluetooth.
- Comprar dispositivos compatibles con los códecs aptX o LDAC es la solución habitual, pero estos códecs implican costos de licencia, por lo que los dispositivos son más caros.
- La baja calidad de SBC se debe a limitaciones artificiales en la pila Bluetooth y en los audífonos, y esto puede evitarse en todos los dispositivos solo con modificaciones de software.
Códec SBC
- SBC tiene varios parámetros que se negocian en la etapa de configuración de la conexión: tipo y número de canales de audio, número de bandas de frecuencia, número de bloques de audio por paquete, algoritmo de asignación de bits de cuantización, y bitpool máximo y mínimo usado en el proceso de cuantización.
- La pila Bluetooth actual normalmente negocia un conjunto de opciones de Joint Stereo, 8 bandas, 16 bloques, Loudness y bitpool 2..53.
- El valor de bitpool es el parámetro que cambia el bitrate de codificación; mientras más alto sea, mayores serán el bitrate y la calidad.
Modificación de la pila Bluetooth
- Todas las pilas Bluetooth compatibles con A2DP deben soportar el modo Dual Channel, pero no hay manera de forzar el uso de este modo.
- Se crearon parches para Android 8.1 y 9 que añaden el modo Dual Channel al menú de desarrollador, y se muestra como códec "HD Audio" en la configuración del dispositivo Bluetooth.
- Este parche fue integrado en firmwares alternativos como LineageOS, Resurrection Remix y crDroid.
Origen de 551 y 452 kbps
- La tecnología de multiplexación por tiempo de Bluetooth fue diseñada para transmitir de forma eficiente paquetes grandes de tamaño fijo.
- La transferencia de datos se realiza mediante slots, y 5 slots es el número máximo que puede transmitirse en una sola transmisión.
- En 5 slots se pueden transmitir hasta 679 bytes a una velocidad de 2Mbps y hasta 1021 bytes a 3Mbps.
¿Por qué es necesario todo esto?
- Contrario a la creencia general sobre la calidad de audio de aptX, en algunos casos SBC puede producir una calidad de audio peor que el bitrate estándar de 328k.
- SBC asigna dinámicamente bits de cuantización a las bandas de frecuencia, mientras que aptX cuantiza las bandas de frecuencia con una cantidad constante de bits.
- Al usar SBC de alto bitrate, en la mayoría de los casos se puede obtener una calidad de audio superior a aptX, y en audífonos con soporte EDR 3 Mb/s ofrece una calidad muy cercana a aptX HD.
¿Se puede ir más allá?
- El conjunto de parches para Android ofrece una opción adicional que puede elevar aún más el bitrate de dispositivos EDR 2 mbps de 452 kbps a 595 kbps.
- Se puede activar el bitrate más alto configurando la variable
persist.bluetooth.sbc_hd_higher_bitrateen 1.
Compatibilidad con dispositivos
- SBC Dual Channel es compatible con casi todos los audífonos, bocinas y unidades principales de automóvil.
- Los dispositivos que presentan problemas con este modo son muy raros, pero información más detallada sobre compatibilidad puede encontrarse en 4pda y xda-developers.
Comparación de calidad de audio
- Se creó un servicio web que codifica audio en SBC (así como en aptX y aptX HD) en tiempo real en el navegador para poder comparar la calidad de audio de varios perfiles SBC y códecs.
Contactar a los desarrolladores de Android
- Se pidió a los desarrolladores de la pila Bluetooth de Google que incluyeran el parche en AOSP, pero todavía no se ha recibido respuesta.
- Tampoco se ha recibido ningún comentario de las personas relacionadas con el desarrollo en el sistema de revisión de código Gerrit.
Conclusión
- Los usuarios de los firmwares LineageOS, Resurrection Remix y crDroid pueden mejorar la calidad de audio Bluetooth seleccionando una casilla en la configuración del dispositivo Bluetooth.
- Los usuarios de Linux también pueden obtener un bitrate SBC más alto instalando el parche de Pali Rohár.
Opinión de GN⁺
Lo más importante de este texto es que la calidad del audio Bluetooth existente puede mejorarse solo con modificaciones de software. Es una solución atractiva porque permite disfrutar audio de mayor calidad en dispositivos existentes sin comprar equipos compatibles con nuevos códecs costosos. En especial, que estas modificaciones sean posibles para usuarios de firmware de código abierto es un avance interesante que mejora la accesibilidad tecnológica y permite a los usuarios tener más control sobre sus dispositivos.
1 comentarios
Opiniones de Hacker News
Evaluación positiva del amplio soporte de SBC y su escalabilidad natural
Análisis profundo de un bug en el stack Bluetooth de Android y señalamiento de la variabilidad del hardware
Experiencia compartida con el ajuste de parámetros SBC y uso de AAC, aptX, LDAC mediante 'Alternative A2DP Driver' en Windows
Mención de la posibilidad de mejorar el audio de mayor bitrate y la calidad del audio de headset con SBC XQ y mSBC en Linux
Planteamiento de la necesidad de una función en los perfiles de audio Bluetooth que permita un buffering largo por adelantado
Experiencia usando esta función en LineageOS y mención de la necesidad de mejorar la experiencia de usuario
Mención de la necesidad de añadir el año (2019) al título y de que ya está implementado en PulseAudio y PipeWire
Postura escéptica sobre el impacto real en la calidad de audio de la diferencia de bitrate entre Dual Channel y Joint Stereo
Pregunta sobre cómo mejorar la calidad de HFP en macOS y experiencia compartida con mSBC en Linux
Expresión de agradecimiento por la publicación y comentario sobre no saber que estaba usando SBC