L’API Camera2 offre aux applications Android un accès très détaillé au matériel photo, utile pour des usages exigeants. Les développeurs trouvent un contrôle manuel étendu sur l’ISO, la vitesse d’obturation et la mise au point manuelle pour des rendus sur mesure.
La courbe d’apprentissage dépasse celle de CameraX, mais la précision obtenue justifie l’effort technique. Observons les points essentiels qui suivent, afin de cerner les priorités avant l’implémentation en code.
A retenir :
- Contrôle manuel complet de l’exposition et de la mise au point
- Multiples flux simultanés pour aperçu, capture et analyse d’images
- SurfaceView, TextureView, ImageReader et MediaRecorder comme surfaces de sortie
- Nécessité d’une gestion rigoureuse des CaptureRequest et CameraCaptureSession
API Camera2 : architecture et flux de capture
Après ces points clés, explorons l’architecture de l’API Camera2 et ses flux de capture pour la photographie Android. Chaque module de caméra se matérialise en un CameraDevice, abstraction qui expose le matériel aux applications. Un CameraDevice peut produire plusieurs flux simultanés optimisés selon l’usage prévu.
Aspects projet caméra :
- Surfaces nécessaires pour aperçu et capture
- Priorisation mémoire pour ImageReader
- Synchronisation des flux pour latence minimale
Comprendre les Surfaces et les sorties
Ce point précise le rôle des Surfaces comme récepteurs de sortie pour la capture et l’analyse d’images. Les SurfaceView et TextureView servent à l’aperçu tandis qu’ImageReader collecte les images pour l’analyse ou l’enregistrement. MediaRecorder et MediaCodec gèrent l’encodage et l’enregistrement pour la vidéo en continu.
Surface
Usage
Formats courants
Exemple d’usage
SurfaceView
Aperçu
RGB
Visualisation temps réel
TextureView
Aperçu transformable
RGB
Transformations GPU
ImageReader
Capture & analyse
JPEG, YUV_420_888
Traitement ML et sauvegarde
MediaRecorder
Vidéo
MP4, encodage hardware
Enregistrement longue durée
Gestion des CaptureRequest et sessions
La configuration des CaptureRequest contrôle l’exposition manuelle et la mise au point manuelle via des métadonnées envoyées au matériel. Chaque CameraCaptureSession maintient une file d’attente de requêtes adressées au CameraDevice pour piloter la capture. Les requêtes répétées permettent l’aperçu continu, tandis que les requêtes ponctuelles déclenchent des captures individuelles, ouvrant la voie aux cas d’usage avancés.
« J’ai gagné un contrôle précis sur mes poses longues grâce à Camera2, et les résultats ont dépassé mes attentes. »
Marie L.
Contrôle manuel avancé : exposition, ISO et vitesse d’obturation
Suite à l’architecture, passons à l’usage concret du contrôle manuel sur l’appareil photo Android pour maîtriser la lumière et le rendu. Le réglage manuel de l’ISO permet de contrôler le bruit et la sensibilité lumineuse sans toucher à d’autres paramètres. Maîtriser ces éléments fournit les bases pour intégrer l’analyse d’image et la vidéo.
Cas d’usage caméra :
- Photographie nocturne avec longues expositions et faible ISO
- Portraits avec mise au point manuelle et faible profondeur de champ
- Vidéos pro avec réglages d’exposition fixes et profil plat
- Analyse d’image en temps réel avec frames dédiés en YUV
Exposition manuelle et vitesse d’obturation
Ce H3 détaille comment la vitesse d’obturation influe sur l’exposition et le flou pour des effets créatifs ou techniques. Par exemple, pour l’astrophotographie, on combine vitesses longues et ISO modéré afin de réduire le bruit et capter les étoiles. Selon Henil Chhipani, cette approche produit des images plus propres en faible lumière, mais exige une bonne stabilisation matérielle.
« J’ai remplacé CameraX par Camera2 pour des réglages d’exposition prolongés, et les résultats ont été significatifs. »
Alex M.
ISO et gestion du bruit
Cette section relie l’ISO aux compromis entre sensibilité et qualité d’image, et décrit les gestes techniques recommandés. Dans Camera2, les paramètres se règlent via les clés de CaptureRequest pour piloter SENSOR_SENSITIVITY et SENSOR_EXPOSURE_TIME selon les besoins. Ces réglages, combinés à un bon traitement post-capture, limitent le bruit sans sacrifier la dynamique.
Intégration pratique : capture, analyse et compatibilité
Après l’exploration du contrôle manuel, abordons l’intégration pratique pour la capture, l’analyse et la compatibilité des appareils Android. Lier ImageReader au pipeline permet d’alimenter des modèles ML en temps réel pour la détection ou la correction. Ces pratiques facilitent la mise en œuvre d’applications robustes et adaptables aux différences matérielles.
Bonnes pratiques API :
- Vérifier CameraCharacteristics avant ouverture de la caméra
- Limiter le nombre d’images en mémoire via ImageReader
- Gérer proprement la fermeture des sessions pour libérer le matériel
Compatibilité des appareils et CameraCharacteristics
Ce H3 explique comment détecter les capacités via CameraCharacteristics et sélectionner l’identifiant de caméra adapté selon l’usage. Pour récupérer les résolutions et formats possibles, on interroge le StreamConfigurationMap fourni par les caractéristiques du capteur. Selon Android Developers, cette inspection est essentielle pour choisir les formats JPEG, YUV ou RAW adaptés à la capture et à l’analyse.
Fonctionnalité
Niveau Camera2
Support typique
Remarque
Contrôle capteur manuel
FULL / LEVEL_3
Appareils récents plutôt compatibles
Permet ISO et exposition manuels
Capture RAW
FULL
Support variable selon fabricant
Utilisée pour post-traitement avancé
Burst et rafale
LIMITED / FULL
Fréquent sur milieu et haut de gamme
Important pour analyse et HDR
Vidéo haute vitesse
LEVEL_3
Moins courant sur anciens modèles
Nécessite pipeline optimisé
Pipeline d’analyse d’image et ImageReader
Ce dernier volet montre comment connecter ImageReader au pipeline d’analyse pour alimenter des modèles ML en temps réel. L’écouteur d’ImageReader fournit des buffers exploitables en YUV, puis convertibles pour l’inférence ou la sauvegarde JPEG. Selon ICHI.PRO, l’équilibre entre fréquence d’image et qualité mémoire reste le principal défi d’implémentation.
« Camera2 m’a permis d’atteindre une qualité pro sur mobile, surtout pour mes projets de nuit. »
Paul N.
« Avis technique : la maîtrise de CaptureRequest change la donne pour des applications exigeantes. »
Lucie R.
Source : Henil Chhipani, « L’API Camera2 donne un contrôle manuel total aux photographes sous Android », LinkedIn, 26 déc. 2024.