Les webcams, le H.264 et l’absence de support sous Mac OS X

Aujourd’hui, un truc un peu spécial : au départ, je voulais montrer les avantages des webcams récentes sur les anciens modèles, notamment au niveau de la fluidité. Sauf que je me suis rendu compte que Mac OS X ne supportait pas (encore ?) les fonctions en question. Donc je vais me limiter à une présentation des fonctions de la norme UVC 1.5.

L’UVC, c’est le standard utilisé pour les webcams, en USB. Un peu de technique : les webcams, souvent en USB 2.0, compressent l’image avant de l’envoyer à l’ordinateur. La raison est simple : la bande passante de l’USB est trop faible. Sans compresser l’image, on peut éventuellement envoyer du VGA à 30 images (640 x 480 x 3 x 30, soit 27 Mo/s) mais pour dépasser cette valeur, il faut compresser.

Dans la majorité des webcams du marché, on compresse en MJPEG : chaque image est compressé en JPEG indépendamment des autres. C’est relativement efficace et simple à faire, mais ça limite quand même le débit quand on travaille sur des définitions élevées. Et surtout, la compression est visible quand on dépasse le 720p.

Il y a deux solutions simples : celle d’Apple qui consiste à utiliser un bus plus rapide (5 gigabits/s au lieu de 480 mégabits/s) et utiliser de la vidéo sans compression et… la solution standard. La norme UVC 1.5 (que Mac OS X ne semble pas supporter) permet tout simplement d’utiliser un meilleur codec vidéo.

La seule caméra (à ma connaissance) compatible UVC 1.5, c’est la C930e de Logitech. Elle est onéreuse (environ 100 €) mais elle a un capteur 1080p très correct et — surtout — elle prend en charge le H.264 de façon standard. La précédente, la C920, était compatible H.264, mais pas de façon standard.

La C930e

La C930e

En théorie (et c’est le cas sous Windows), on peut donc récupérer un flux vidéo déjà compressé en H.264 par la webcam, ce qui permet d’améliorer la qualité et — sur un ordinateur récent — diminuer l’usage du processeur avec l’accélération matérielle.

Dans la pratique, ce n’est pas le cas, on a seulement accès au mode MJPEG (30 images/s en 1080p dans le meilleur des cas) et au mode YUV (sans compression, 848 x 480 à 30 images/s). Ceci dit, le capteur monte plus haut : on peut faire du 2 304 1 536… à 2 images/s. En comparaison, une Logitech C270 (entrée de gamme, environ 20 €) peut faire du 1 280 x 960 à 30 fps en MJPEG et du 640 x 360 à 30 fps en YUV.

Tips pour connaitre les valeurs : installer V4Linux et taper la commande suivante : v4l2-ctl --list-formats-ext.

A côté de ça, la C930e est une excellente webcam : l’image est très propre, Logitech fournit un cache matériel (une bonne idée) et une application gratuite pour Mac OS X qui permet d’effectuer pas mal de réglages. Elle permet de régler l’image mais aussi jouer sur le zoom et sur le décalage de la caméra, ainsi que de régler la mise au point.

L'application

L’application


L'application

L’application

La qualité est très bonne et l’autofocus est vraiment un plus. Par rapport à la webcam d’un écran Apple, qui n’est pas mauvaise dans l’absolu, elle est vraiment meilleure et mieux réglée de base.

La C930e

La C930e


L'iSight d'un écran Apple

L’iSight d’un écran Apple

Si un jour Mac OS X supporte l’UVC 1.5, je vous en parlerais, mais même sans ça, ça reste un bon produit.