Bluetooth A2DP : attention au codec utilisé (aptX, SBC, AAC)

Image 1 : Bluetooth A2DP : attention au codec utilisé (aptX, SBC, AAC)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

Image 2 : Bluetooth A2DP : attention au codec utilisé (aptX, SBC, AAC)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

Image 3 : Bluetooth A2DP : attention au codec utilisé (aptX, SBC, AAC)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.