Lors de la Google I/O 2014, la firme de Mountain View a présenté Camera2, la nouvelle API d’Android qui pilotera les capteurs photo. Nos confrères d’Anandtech sont revenus sur les nouveautés apportées par l’API. En quelques mots, Camera2 permettra réellement de prendre de bons clichés de manière facile et rapide avec un terminal mobile.

camera2 API

Nos confrères du site Anandtech sont revenus en détail sur le fonctionnement de la nouvelle API Camera2 de Google. Elle sera intégrée à Android L et permettra de piloter les capteurs pour la réalisation des photos et des vidéos. Nous avions déjà abordé les nouveautés apportées par l’API il y a quelques semaines, mais nous ne connaissions pas encore le fonctionnement ni les subtilités de Camera2.

Les modes photo, vidéo et aperçu disparaissent

Actuellement, avec l’API Camera, il existe trois modes de capture : photo, vidéo ou aperçu (live). Le premier permet de prendre une photo, le second une vidéo et le troisième affiche une image en temps réel sur l’écran. Lorsque l’utilisateur souhaite prendre une photo, Android envoie une requête au capteur et au processeur d’images. Le contenu de cette demande diffère selon le mode (photo, vidéo ou aperçu). Avec l’API Camera2, les trois modes disparaissent et sont remplacés par un unique mode, un genre de caméléon, bien plus habile et flexible comme nous allons le voir.

Le pipeline et les réglages, clef de voute des photos

Pour les deux versions de l’API, une file d’attente est créée dans laquelle viennent se garer les requêtes et les réglages. Elles avancent au sein d’un pipeline (composée par le capteur et le processeur d’image) au fur et à mesure des étapes pour être « développées » en image.

Auparavant, les réglages n’étaient pas stockés dans la requête, mais directement sur le pipeline, contrairement à ce qui se passe avec la nouvelle API. Imaginons deux photos A et B avec la photo A en train d’être traitée par le pipeline. Si on change un réglage pour la photo suivante (B) et qu’on la met dans la queue, les réglages du pipeline sont modifiés, ce qui altère donc les réglages de la photo actuellement dans le pipeline (A). Il est ainsi impossible de prendre de rapides rafales à cause d’un temps d’attente, sous peine de se retrouver avec des photos aux réglages étranges.

Avec la nouvelle API, chaque requête comporte ses propres réglages. Il est ainsi possible de mettre dans la queue de nombreux réglages différents avec une vitesse de traitement qui dépendra uniquement de la rapidité du processeur d’images et non pas d’Android. C’est pour cette raison que Google a pu, sur le Nexus 5, capturer 8 images de 8 mégapixels à une cadence de 30 images par secondes contre 1 à 3 images / secondes avec l’ancienne API.

Camera 2 API pipeline

Le pipeline de la nouvelle API

camera API pipeline

L’ancien pipeline

Un mode vidéo plus performant

L’autre apport du nouveau pipeline, c’est la possibilité de mixer photo et vidéo en même temps. Imaginons que votre smartphone utilise le capteur pour filmer une vidéo. Si votre processeur d’image (ISP) est assez puissant, il sera possible de prendre des photos (qui ne sont pas de simples screenshots de la vidéo) voire des rafales pendant la vidéo. Chaque frame de la vidéo et des photos sera à la queue leu-leu dans le pipeline et traitée à la suite, sans que l’utilisateur perçoive un temps d’attente. Il serait également possible de réaliser des vidéos en HDR : imaginons que l’utilisateur réalise une vidéo en 30 images par seconde et que le processeur d’image en supporte 60. Il multipliera chaque frame de la vidéo par deux avec deux réglages différents pour les superposer et n’en faire qu’une, plus ou moins lumineuse selon les zones et la lumière ambiante. Pour toutes ces utilisations, il faudra que le processeur d’image soit assez puissant.

De nouveaux réglages accessibles

En plus du nouveau fonctionnement que nous avons vu précédemment, la nouvelle API va permettre aux développeurs d’avoir accès à de nombreux réglages : temps d’exposition, ISO, distance de mise au point, flash, lock AE / AWB, etc. et surtout le support du format RAW standardisé DNG (Digital Native). Celui-ci va permettre à la photo de ne pas passer par les effets et filtres du processeur d’image et d’être directement stockée de manière brute sur le téléphone. Il faudra ensuite utiliser une application comme Lightroom pour « développer » la photo et lui donner un aspect finalisé.

Le RAW et la retouche de photo

L’inconvénient du RAW est qu’il faut obligatoirement retoucher la photo sous peine de se retrouver avec une photo pas forcément exploitable en l’état, mais le gros avantage est d’avoir accès à tous les réglages : compression, balance des blancs, exposition, etc. La photo sera donc, au final, de meilleure qualité. On pourrait même voir débarquer des applications Android qui prennent en charge l’ensemble de ses réglages de manière automatique depuis l’image au format RAW en court-circuitant le processeur d’image. Ainsi, l’utilisateur n’aurait qu’à se servir d’une application qui jouera le rôle d’appareil photo et qui sortirait une photo de meilleure qualité que l’application de base.

Les applications des constructeurs

Des constructeurs parviennent toutefois à réaliser des applications appareil photo qui permettent de réaliser tous ces réglages et le support du RAW. C’est par exemple le cas d’Oppo sur ses Find 7 et 7a ou encore Nikon avec ses compacts sous Android. En fait, ils ne se servent pas de l’API Camera, mais d’une API maison dont le code source de n’est pas distribué par les constructeurs, ce qui empêche les développeurs de proposer des applications tierces.

La photo 2.0 pour Android

L’API Camera 2 permettra donc de faire passer Android à la vitesse supérieure au niveau de la photo. Grâce à elle, les constructeurs d’appareils photo pourront proposer davantage de reflex sous Android (à l’image du Galaxy NX de Samsung que nous avons pu tester) ou de compacts sans avoir besoin de développer leur propre API et surtout en atteignant des performances semblables aux reflex standard. L’API Camera 2 est déjà disponible sur la version preview d’Android L, mais aucune application ne l’utilise encore. Il faudra donc attendre la sortie d’Android L et le développement d’applications de tierce partie pour profiter d’un écosystème photo bien plus performant et intéressant.