La webcam des MacBook Air 2013 et l’autonomie

Quand on parle de l’autonomie record des MacBook Air 2013, on pense généralement que c’est une conséquence des processeurs Haswell. En fait, c’est lié à énormément de choses, dont des améliorations sur le clavier et la trackpad (qui abandonnent l’USB en interne), les SSD PCI-Express… et la webcam.
features_display_main

La webcam, ce périphérique devenu standard en quelques années, est parfois un gros consommateur d’énergie. Faisons simple : si connecter une caméra VGA en USB 2.0 ne pose pas de soucis — la bande passante nécessaire est assez faible —, faire passer de la haute définition (720p, 1080p) demande une compression en amont. Les webcam récentes compressent l’image au niveau de la webcam et c’est ensuite le processeur de l’ordinateur qui doit décoder l’image.

La majorité des webcams utilise un codec basique, le MJPEG. En gros, chaque image est compressé en JPEG et envoyée. C’est relativement efficace pour du 720p, mais ça demande pas mal de CPU pour décoder correctement. Les caméras récentes comme la C930e de Logitech utilisent un codec plus efficace : le H.264. C’est celui qui est utilisé dans les films (Blu-ray, VoD, etc.) et les ordinateurs récents peuvent le décoder matériellement. Malheureusement, Mac OS X ne supporte a priori pas les caméras de ce type nativement et — surtout — c’est assez cher (si quelqu’un m’offre la caméra en question, je teste).

Dans les MacBook Air 2013, Apple a choisi une autre voie (ce qui explique par ailleurs les soucis avec Skype et autres) : connecter la webcam en PCI-Express. Au lieu d’utiliser un bus lent (480 mégabits/s) et de compresser la vidéo, Apple utilise un bus rapide (5 gigabits/s) et envoie de la vidéo non compressée. Ca permet de diminuer la charge du processeur et d’offrir une image de meilleure qualité, au détriment (visiblement) des réglages et de la compatibilité.

Pour connecter la caméra, c’est une puce Broadcom (0x14e4/0x1570) qui est utilisée, et je n’ai pas trouvé sa référence exacte.