Aller au contenu
Cent millisecondes garanties : où s'arrête la pose longue sur un téléphone (Image générée par IA)
Image générée par IA

Cent millisecondes garanties : où s'arrête la pose longue sur un téléphone

Vous ouvrez une application manuelle, vous cherchez le temps de pose, et la molette se bloque. Chez vous à une demi-seconde. Chez l’ami qui vous a convaincu d’acheter un trépied elle monte à trente secondes, et sur un troisième modèle la commande est carrément grisée. Ce nombre se joue bien plus bas que l’application, dans une propriété que le système d’exploitation lit dans le matériel et remet à quiconque la demande. Les deux plateformes la racontent de façon assez différente pour justifier une demi-heure passée dans la documentation.

Un dixième de seconde, et rien d’autre de promis

Sous Android la valeur s’appelle SENSOR_INFO_EXPOSURE_TIME_RANGE, et la documentation de Camera2 la présente comme «la plage des temps d’exposition pour android.sensor.exposureTime pris en charge par ce périphérique photo». Unité : la nanoseconde. Jusque-là, pure administration. Puis vient la ligne sur les valeurs admises, et elle mérite une seconde lecture : «le temps d’exposition minimal sera inférieur à 100 us. Pour les appareils de capacité FULL (android.info.supportedHardwareLevel == FULL), le temps d’exposition maximal sera supérieur à 100 ms».

Un dixième de seconde. C’est toute la garantie de la plateforme, et elle ne vaut que pour les caméras qui déclarent le niveau FULL. Tout ce que vous avez au-delà de ce dixième (les deux secondes, les dix, les trente) vous est offert par le constructeur du téléphone, pas par la norme. La clé porte en prime la mention «Optional», assortie de la note que «la valeur de cette clé peut être null sur certains appareils». Là où elle est null, le temps de pose cesse d’être une chose qu’on demande.

Qui a le droit de demander, c’est la capacité MANUAL_SENSOR qui en décide, celle qui garantit selon la documentation «le contrôle manuel de l’exposition», de la sensibilité et de la durée d’image. Les appareils FULL la déclarent toujours. Les LIMITED peuvent la déclarer ou non, et pour le matériel LEGACY l’affaire est close avant d’être ouverte, puisqu’«un appareil LEGACY ne prend en charge ni le contrôle image par image, ni le contrôle manuel du capteur, ni le post-traitement manuel». Google ajoute une consolation datée : «les appareils livrés initialement avec Android Q ou une version ultérieure ne comprendront aucun appareil de niveau LEGACY». Le problème s’est simplement décalé. Dans un téléphone, la caméra principale et les autres sont des périphériques distincts, chacun déclarant son niveau et sa plage de temps, et savoir si l’ultra grand-angle va aussi loin que la principale se vérifie à la maison. Autant le faire en même temps que l’autre vérification sur les optiques, celle sur l’objectif qui travaille vraiment la nuit.

Sous iOS le plafond appartient au format

AVFoundation range la même limite ailleurs dans l’arbre. Elle ne tient pas au périphérique : elle loge dans chaque AVCaptureDevice.Format, l’objet qui décrit une combinaison de résolution, de cadence et de mode de fonctionnement du capteur. Les deux propriétés s’appellent minExposureDuration et maxExposureDuration, et Apple les définit en une ligne chacune : «une valeur de temps qui indique la durée d’exposition maximale prise en charge», et l’image inverse pour la minimale. Un iPhone expose des dizaines de formats. Chacun apporte son propre plafond.

La conséquence se paie sur le terrain. Changer de résolution peut changer votre temps de pose maximal. Si l’application vous laisse choisir entre le format binné et la pleine résolution, la décision que l’on prend déjà dans un certain sens la nuit traîne aussi derrière elle une gamme de vitesses potentiellement différente. Rien de capricieux là-dedans. Un format est un mode de lecture du capteur, et des modes différents ont des temporisations différentes.

Reste activeMaxExposureDuration, qu’on prend régulièrement pour le vrai plafond et qui parle d’autre chose. Apple la définit comme «la durée d’exposition maximale, en secondes, définie dans l’algorithme d’exposition automatique» : quand l’exposition est automatique, le système «choisit une durée d’exposition maximale par défaut, calibrée sur la configuration courante, qui équilibre la qualité d’image en basse lumière et la conservation du mouvement». Vous pouvez la relever jusqu’au maxExposureDuration du format. Sachez simplement qu’elle se remet seule en place, car «lorsque l’activeFormat de l’appareil ou le sessionPreset de la session de capture change, cette propriété revient à la durée d’exposition maximale par défaut du nouveau format ou preset». Relevez le plafond, touchez ensuite à la résolution, et vous repartez de zéro sans en être averti.

Le temps que vous avez choisi peut vous être retiré en cours de prise

Le paragraphe le plus utile des deux documentations se trouve sous setExposureModeCustom, la méthode par laquelle une application fige pose et ISO à des valeurs explicites. L’avertissement d’Apple : «lors de l’utilisation d’AVCapturePhotoOutput pour photographier, la propriété photoQualityPrioritization d’AVCapturePhotoSettings vaut par défaut balanced, ce qui autorise la prise de vue à outrepasser temporairement la durée d’exposition et l’ISO du périphérique de capture si la scène est assez sombre pour exiger la fusion de plusieurs images afin d’améliorer la qualité».

Relisez en vous y mettant vous-même, dehors, le trépied déjà d’aplomb. Vous avez réglé huit secondes à un gain choisi avec méthode, et la scène est sombre par définition : la condition qui autorise le système à passer par-dessus vous est remplie à chaque image. Le remède figure dans la phrase suivante et il est unique : pour que le système respecte la durée d’exposition et l’ISO en mode custom ou locked, l’application doit régler la priorité de qualité photo sur speed. Une application pensée pour l’astrophotographie le fait. Une application photo généraliste à laquelle on a greffé un mode manuel peut très bien ne pas le faire, et vous rentrez alors avec une série dont les images ne pèsent plus toutes pareil, ce qui est la manière la plus discrète de gâcher un empilement.

Le mode nuit ne fait pas partie de cette conversation

L’objection vient toute seule : l’appareil d’origine, en mode nuit, tient dix secondes sans demander la permission à personne. C’est une autre machine. Android le classe parmi les extensions, une branche de l’API tenue à l’écart des commandes du capteur, et EXTENSION_NIGHT y est définie comme une «implémentation d’extension spécifique à l’appareil qui vise à supprimer le bruit et à améliorer la qualité globale de l’image en conditions de faible luminosité». Regardez ce qui manque dans cette phrase. Un temps. L’extension promet un résultat et garde le procédé pour elle, or ce procédé peut être une rafale empilée ou une pose unique, et il peut changer entre deux versions du micrologiciel sans que personne vous prévienne.

Sous iOS le levier public le plus proche s’appelle photoQualityPrioritization, et il arbitre entre qualité et rapidité de livraison. La documentation énumère les techniques mobilisées, «réduire le bruit, préserver le détail en basse lumière, figer le mouvement», et ne promet jamais une durée. Le développeur peut demander de la qualité. Combien de temps l’obturateur est resté ouvert, il l’apprendra après coup.

Dix minutes pour connaître le plafond du vôtre

Le test est banal et se mène au salon, lumière allumée. Ouvrez l’application manuelle dont vous vous servez réellement, notez où s’arrête la molette des vitesses, puis recommencez pour chaque objectif et chaque résolution sélectionnable. Vous en sortez avec un petit tableau de quatre ou cinq nombres qui décrit votre téléphone mieux que n’importe quelle fiche technique.

Vérifiez ensuite que ces nombres sont respectés. Dix images au temps maximal, puis les EXIF des dix, et comparez le champ d’exposition. Si les valeurs divergent, quelqu’un décide plus haut à votre place, et vous savez désormais qui.

Pourquoi ce plafond brûle moins qu’il n’en a l’air

Il y a une raison pour que l’affaire fasse moins mal qu’à la lecture, et elle tient à une autre limite, plus basse, que vous portez déjà. Le ciel défile, et sur un 24 mm équivalent il vous laisse une poignée de secondes avant que les étoiles deviennent des virgules : combien exactement, cela dépend de la focale et de la déclinaison de la cible. Si votre téléphone s’arrête à trente secondes, vous ne toucherez jamais le plafond des API. S’il s’arrête à deux, la cage est bien la vôtre, et elle est en silicium.

Entre les deux se joue la vraie partie, et c’est aussi pourquoi, sur un téléphone, accumuler des images vaut mieux que les allonger. Mieux vaut rester au plus près du plafond que votre appareil accorde vraiment, plutôt que courir après un chiffre que l’application affiche et que le capteur n’honore jamais. La somme fait le reste, et le live stacking a déjà dit là-dessus ce qu’il avait à dire. Connaître son maximum par cœur, c’est une décision de moins à prendre dans le froid, et dans le froid on décide mal.

#astrophotographie#smartphone#exposition#technique#capteur

Rédaction 3SIGNUM, dirigée par Stefano Monticciolo. Comment nous travaillons →

À lire ensuite