Le Bluetooth. Un sujet intéressant, une technologie de plus en plus utilisée. L’usage le plus courant de la norme, en 2012, c’est bien évidemment l’audio. Si les oreillettes ont fait les beaux jours des séries et des films pour caricaturer le businessman, les casques sans fil(s) à la norme A2DP sont très courants. Et beaucoup de dock audio, pour éviter de multiplier les connecteurs, utilisent la technologie pour transmettre le son.
Une compression obligatoire
Première chose, l’A2DP (Advanced Audio Distribution Profile) compresse automatiquement le son, quel que soit le codec utilisé. La raison est simple : le Bluetooth permet en théorie d’atteindre 700 kilobits/s environ, mais dans la pratique on dépasse difficilement 300 à 400 kilobits/s. Sachant qu’un flux audio en PCM nécessite 1 411 kilobits/s. Il est donc nécessaire de compresser le son, et avec des pertes : les rares codecs sans pertes (FLAC, ALAC, etc.) n’ont pas un débit fixe et nécessitent une bande passante trop élevée.
Les différents codecs
Le profil A2DP propose plusieurs choix pour les codecs. Il y a d’abord un codec obligatoire, le SBC (Sub Band Codec). Il y a ensuite trois codecs optionnels : l’ATRAC de Sony, l’AAC et le MP3. Il y a enfin la possibilité d’utiliser des codecs de fournisseurs tiers, et il y en a deux qui sont parfois présents : le FastStream et l’aptX. Dans tous les cas, le débit maximal tourne autour de 350 kilobits/s.
Le SBC, un mauvais codec
Le codec le plus couramment utilisé est aussi le plus mauvais. Le SBC est supporté par tous les casques et tous les appareils, il est obligatoire dans la norme. Ce codec compresse avec des pertes, et généralement assez mal. Alors que l’AAC, le MP3 ou L’OGG Vorbis visent la qualité, le SBC a été pensé pour être rapide au niveau de l’encodage en demandant peu de ressources. C’est logique : l’A2DP date de la première moitié du 21e siècle et les smartphones et PDA manquaient de puissance.
Le SBC a aussi une particularité : il est possible de modifier rapidement le débit binaire. Concrètement, le profil A2DP définit le « bitpool », une valeur comprise entre 2 et 64 qui définit la qualité du flux. Plus le bitpool est élevé, plus le débit est élevé. Dans beaucoup d’appareils, le bitpool est variable, en fonction de la qualité du signal, et une valeur maximale est fixée.
Le fonctionnement classique est simple : le smartphone décode le son (encodé par exemple en MP3), l’encode (en temps réel) en SBC, transfère le flux compressé en Bluetooth au casque, qui va décompresser le SBC. Dans la pratique, ça implique deux choses : une compression avec pertes et un décalage de l’ordre de 200 ms pour l’encodage et le transfert. S’il est négligeable quand on écoute de la musique, il provoque une désynchronisation labiale très visible quand on regarde une vidéo.
Typiquement, le bitpool varie entre 2 et 35 environ sur les appareils mobiles (Android, Windows Phone) et peut monter à 53 sur un ordinateur de bureau (Mac OS X). Une valeur de 19 correspond à du 128 kilobits/s environ, une valeur de 35 à du 235 kilobits/s et 53 correspond à du 350 kilobits/s. Il faut prendre en compte deux choses : ce que l’émetteur supporte (un smartphone Android enverra au maximum à 235 kb/s) et ce que le récepteur supporte, certains casques limitant le débit.
Le SBC est un mauvais codec, dans le sens où des artefacts sont audibles en partant d’une source non compressée avec les réglages classiques (bitpool de 35). Sachant que la musique est dans une grande partie des cas déjà compressée avant le transfert, on imagine l’ampleur des dégâts.
AAC, ATRAC et MP3
La norme propose trois codecs optionnels. Passons rapidement sur l’ATRAC (3) : ce codec Sony n’est plus utilisé depuis des années et n’a jamais brillé par sa qualité audio. Les deux autres sont plus intéressants : le MP3 et l’AAC sont des codecs très utilisés, leur qualité audio est bonne et les encodeurs nombreux.
Le fonctionnement est différent de celui du SBC. Avec l’AAC ou le MP3, le flux est directement envoyé au casque quand on écoute de la musique, tout du moins si le son est déjà encodé dans un de ces deux codecs. L’intérêt est évident : on évite une phase de compression/décompression destructive.
Dans la pratique, si beaucoup de casques supportent le MP3, les émetteurs (smartphones, PC, etc.) ne prennent que rarement en charge cette fonction. Pour l’AAC, c’est encore plus rare, tant du côté des casques que du côté des émetteurs. Le seul exemple notable est iOS : le système peut envoyer un flux AAC directement à un casque depuis la version 5.
aptX
L’aptX est une solution intéressante : ce codec propriétaire a été conçu par CSR (une société qui vend des contrôleurs Bluetooth) et offre une qualité sonore meilleure que le (mauvais) SBC. Ce codec compresse avec des pertes, mais à des débits élevés (environ 350 kilobits/s) et surpasse très facilement le SBC. Le problème principal est la compatibilité : les casques compatibles sont rares et les émetteurs compatibles encore plus.
FastStream
Il reste enfin un codec très rare, le FastStream. Ce codec de chez CSR est prévu pour limiter la désynchronisation entre l’image et le son, en diminuant la latence. Si les autres codecs ont une latence d’environ 200 ms, le FastStream descend à 40 ms environ, ce qui est imperceptible. Le seul appareil compatible — à notre connaissance — est un casque Creative qui est compatible FastStream à travers un dongle USB qui intègre un encodeur matériel.
Parlons test
Expliquer, c’est une chose. Tester en est une autre. La première chose a été de trouver un appareil compatible aptX en réception. Nous avons cherché, et Nokia propose un modèle efficace : le Nokia Essence (BH-610) peut travailler en SBC, en aptX ou en AAC. D’autres modèles compatibles existent, mais Nokia nous a prêté ce modèle pour cette actualité.
Seconde chose, trouver un émetteur capable d’indiquer le codec utilisé à un instant t et si possible forcer un codec précis. La liste est assez courte : les derniers modèles de smartphones HTC (One), le Samsung Galaxy S 3, quelques tablettes Android Samsung (Tab 7, Tab 7.7, etc.) et un système d’exploitation, Mac OS X. Nous avons utilisé ce dernier pour une raison simple : il propose des options pour forcer l’usage du SBC ou de l’aptX.
Une différence audible
Pour le test, nous avons utilisé différents types de musique (classique, hip-hop, rock, etc.) et différents types de sources (ALAC, AAC, MP3). Nous avons ensuite utilisé (en aveugle, une personne tierce forçant le codec) les écouteurs de Nokia pour essayer de déterminer le codec utilisé pour la transmission en Bluetooth. Dans la majorité des cas, il est assez facile de déterminer quand l’aptX est utilisé : les artefacts de compression sont beaucoup moins présents, les basses plus amples, le son mieux ciselé. Globalement, l’aptX offre un son sans commune mesure avec le médiocre SBC.
Les défauts
Sous Mac OS X, un des rares systèmes d’exploitation à supporter l’aptX, il y a quelques limites. La première, c’est que le système semble désactiver le codec dès qu’il y a plusieurs appareils Bluetooth connectés : les utilisateurs de claviers et de souris sans fil en Bluetooth, nombreux chez Apple, pourraient avoir des surprises de ce côté. Sur un ordinateur portable, Mac OS X désactive l’aptX dès que deux autres périphériques sont connectés, alors que la limite passe à trois sur une machine de bureau. La seconde limite provient de la qualité de réception : le SBC supporte mieux les pertes que l’aptX, en diminuant le débit binaire. Concrètement, le flux aptX se coupe alors que le flux SBC est dégradé, mais le son reste présent.
AAC, MP3 et autres codecs
Pour l’AAC et le MP3, nous n’avons pas pu tester : si certains smartphones Android (notamment chez Motorola) permettent de forcer le mode MP3, nous n’avons pas pu le tester, et iOS — seul système à supporter officiellement l’AAC — n’indique pas si le flux est transmis en SBC ou en AAC. En théorie, les écouteurs Bluetooth que nous avons testés sont compatibles AAC avec un appareil iOS, mais c’est impossible à vérifier de façon simple.
Pour conclure
Que conclure de nos tests ? Que le Bluetooth A2DP est une technologie pratique pour les utilisateurs, mais qu’elle est aussi qualitativement assez mauvaise. Le codec SBC est techniquement bien en dessous du décrié MP3 et des autres codecs utilisés généralement sur Internet, et ne tient évidemment pas la comparaison avec un codec sans pertes comme le FLAC.
SI des alternatives existent, elles sont actuellement difficiles à mettre en oeuvre et si la qualité est meilleure, elle n’est pas parfaite : l’aptX ou l’AAC (en transmission directe) restent des codecs qui induisent une perte d’informations.
Actuellement, la seule technologie « grand public » permettant de transmettre de l’audio sans compression et sans fil est la technologie AirPlay d’Apple, disponible sur les appareils iOS, Mac OS X et sur PC via iTunes. Elle transmet l’audio en compression ALAC (sans pertes), mais avec une latence pouvant atteindre 2 secondes, ce qui la rend inutilisable pour de la vidéo par exemple.
SBC-XQ (550kbps) est supérieur à APTX-HD. je pense qu’il faudrait indiquer ceci dans l’article.
http://soundexpert.org/articles/-/blogs/audio-quality-of-sbc-xq-bluetooth-audio-codec
SBC-XQ (550kb/s) est Supérieur à APTX-HD, et c’est un codec opensource. Je pense qu’il faudrait le préciser.
http://soundexpert.org/articles/-/blogs/audio-quality-of-sbc-xq-bluetooth-audio-codec
Vive la transmission filaire.
Je sais que c’est un vieil article, mais il serait temps de le supprimer car il est faux. Le SBC, “un mauvais codec” ? Non, le SBC est l’un des meilleurs codecs actuellement, de part sa compatibilité et sa simplicité. Sur Android, il est plus performant que le AAC, qui demande un gros travail de décompression et donc entraine une baisse de bitrate sur les appareils modestes. Comparer des pommes et des carottes… A haut bitrate, est excellent. Je suis certain que le rédacteur de cet article n’entendra aucune différence entre du SBC à haut bitrate, de l’AAC et de l’APTX provenant d’une même source sur un ordinateur.
Vous utilisez Apple music ou itunes et vous trouvez le AAC meilleur ? Là c’est normal, puisque la source est directement décodée.
Sur Android avec un OS custom ou Magisk, on peut facilement customiser et débloquer le bitrate du SBC. Ce n’est pas le SBC qui est mauvais, mais l’implémentation du SBC dans nos appareils.