Tests ITS de la caméra

Cette page fournit une liste complète des tests sous la Camera Image Test Suite (ITS), qui fait partie de l'Android Compatibility Test Suite (CTS) Verifier. Les tests ITS sont des tests fonctionnels, ce qui signifie qu'ils ne mesurent pas la qualité de l'image, mais que toutes les fonctions de l'appareil photo annoncées fonctionnent comme prévu. Ce document permet aux développeurs et aux testeurs de comprendre ce que font les tests individuels et comment déboguer les échecs de test.

Les tests sont regroupés par scène comme suit :

  • scene0 : métadonnées de capture, la gigue, gyroscope, vibration
  • scene1 : exposition, sensibilité, compensation EV, YUV vs JPEG / RAW
  • scene2 : détection de visage
  • Scene3 : amélioration de bord, le mouvement de la lentille
  • Scene4 : Rapport d'image, la culture, le champ de vision
  • Scene5 : ombrage objectif
  • Scene6 : Zoom
  • sensor_fusion : calendrier caméra / gyroscope décalage

Voir les sections individuelles pour une description de chaque scène.

scène0

Les tests Scene0 ne nécessitent aucune information de scène spécifique. Cependant, le téléphone doit être stationnaire pour les tests de gyroscope et de vibration.

test_burst_capture

Vérifie que l'ensemble du pipeline de capture peut suivre la vitesse de capture en taille réelle et le temps CPU.

Pass: capture une rafale d'images en taille réelle et la caméra est assez rapide pour éviter délai d' attente.

test_capture_result_dump

Teste qu'un résultat de capture est renvoyé à partir d'une capture manuelle, puis le vide.

Pass: finalise l' acquisition et les résultats des décharges de capture.

test_gyro_bias

Teste si le gyroscope a une sortie stable lorsque l'appareil est à l'arrêt. Les données sont tracées sous la forme d'une moyenne de 20 points de données.

Pass: delta de la lecture du gyroscope est inférieure à 0,01 au fil du temps.

test_gyro_bias_plot.png

test_gyro_bias_plot.png

test_jitter

Mesure la gigue dans les horodatages de la caméra.

Pass: Il y a au moins un delta de 30 ms entre les images.

Paramètres de caméra impactés :

  • AE_TARGET_FPS_RANGE
  • SENSOR_TIMESTAMP

test_jitter_plot.png

test_jitter_plot.png (Notez la petite plage de l'axe des y. La gigue est en fait faible dans ce tracé.)

test_metadata

Teste la validité des entrées de métadonnées. Examine les résultats de la capture et les objets caractéristiques de la caméra. Ce test utilise auto_capture_request valeurs d'exposition et de gain , car le contenu d'image n'a pas d' importance.

Pass: niveau matériel, rollingShutterSkew , frameDuration étiquettes, timestampSource , croppingType , blackLevelPattern , pixel_pitch , FOV, la distance hyperfocale sont présents et ont des valeurs valides.

Paramètres de caméra impactés :

  • CONTROL_AE_TARGET_FPS_RANGE
  • LENS_FOCAL_DISTANCE
  • SCALER_TYPE_REGION
  • SENSOR_DYNAMIC_BLACK_LEVEL
  • SENSOR_FRAME_DURATION
  • SENSOR_TIMESTAMP
  • SENSOR_ROLLING_SHUTTER_SKEW

test_param_sensitivity_burst

Les tests que le android.sensor.sensitivity paramètre est appliqué correctement en rafale. Inspecte uniquement les métadonnées de sortie.

Pass: les données de sortie a une tolérance d'erreur inférieure à 0,2%.

Paramètres de caméra impactés :

  • SENSOR_SENSITIVITY

test_read_write

Teste que l'appareil écrit les valeurs d'exposition et de gain correctes en relisant les métadonnées de capture.

Pass: lecture et les valeurs d'écriture correspondent à tous les coups.

Paramètres de caméra impactés :

  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY

test_sensor_events

Teste cet appareil qui interroge et imprime les événements de capteur pour les appareils qui annoncent la prise en charge de la fusion de capteurs. Les capteurs attendus sont l'accéléromètre, le gyroscope et le magnétomètre. Ce test ne fonctionne que si l'écran est allumé, ce qui signifie que l'appareil n'est pas en mode veille.

Pass événements pour chaque capteur sont reçues.

test_solid_color_test_pattern

Teste que les motifs de test de couleur unie sont générés correctement pour la mise en sourdine de la caméra. Si la mise en sourdine de la caméra est prise en charge, les motifs de test de couleur unie doivent être pris en charge. Si la mise en sourdine de la caméra n'est pas prise en charge, les motifs de test de couleur unie ne sont testés que si la capacité est annoncée.

Si les images RAW sont prises en charge, l'attribution des couleurs est également testée. Les couleurs testées sont le noir, le blanc, le rouge, le bleu et le vert. Pour les appareils photo qui ne prennent pas en charge les images RAW, seul le noir est testé.

Pass: mires solides sont pris en charge la bonne couleur et il est faible variance dans l'image.

Paramètres de caméra impactés :

  • SENSOR_AVAILABLE_TEST_PATTERN_MODES
  • SENSOR_TEST_PATTERN_DATA
  • SENSOR_TEST_PATTERN_MODE

test_test_pattern

Teste le android.sensor.testPatternMode paramètre à des trames de capture pour chaque motif de test valide et vérifie que les images sont correctement générés pour les couleurs et les barres de couleur. Ce test comprend les étapes suivantes :

  1. Capture des images pour tous les modèles de test pris en charge.
  2. Effectue une simple vérification de l'exactitude du motif de test de couleur unie et des barres de couleur.

Pass: mires de test pris en charge sont générés correctement.

Paramètres de caméra impactés :

  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY
  • SENSOR_AVAILABLE_TEST_PATTERN_MODES
  • SENSOR_TEST_PATTERN_MODE

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

Teste la conversion du motif de test de RAW en YUV avec une table de tons linéaire. Ce test nécessite android.sensor.testPatternMode = 2 (COLOR_BARS) pour générer un motif d'image parfaite pour la conversion de ToneMap. Garantit pipeline a des sorties de couleur appropriées avec ToneMap linéaire et entrée d'image idéale (repose sur test_test_patterns ).

Pass: Le YUV et le RAW se ressemblent les unes aux autres.

Paramètres de caméra impactés :

  • DISTORTION_CORRECTION_MODE
  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY
  • SENSOR_TEST_PATTERN_MODE
  • TONEMAP_CURVE
  • TONEMAP_MODE

test_tonemap_curve_raw_2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

Teste si les événements d'image et de capteur de mouvement sont dans le même domaine temporel.

Pass: horodatages de mouvement sont entre les deux horodatages d'image.

Paramètres de caméra impactés :

  • SENSOR_TIMESTAMP

test_vibration_restriction

Teste si les vibrations de l'appareil fonctionnent comme prévu.

Pass: L'appareil ne vibre pas lorsque mis en sourdine par l'API de restriction audio de la caméra.

scène 1

scene1 est un graphique en gris. La carte de gris doit couvrir au centre 30 % du champ de vision de la caméra. La carte de gris devrait défier modérément 3A (exposition automatique, balance des blancs automatique, mise au point automatique) car la région centrale n'a aucune caractéristique. Cependant, la demande de capture spécifie la scène entière qui comprend suffisamment de fonctionnalités pour que 3A converge.

Les caméras RFoV peuvent être testées dans le banc d'essai WFoV ou RFoV. Si une caméra RFoV est testée dans le banc d'essai WFoV, le graphique est mis à l'échelle de pour garantir certaines limites pour le graphique gris dans le FoV afin d'aider à converger 3A.

scène 1

scene1 : tableau en taille réelle (à gauche). tableau à l'échelle (à droite).

test_3a

Teste la convergence de 3A avec une cible modérément difficile.

Pass: 3A et converge les valeurs 3A retournées sont valides.

test_ae_af

Teste individuellement les algorithmes d'exposition automatique (AE) et de mise au point automatique (AF) 3A.

Pass: 3A et converge les valeurs 3A retournées sont légales.

test_ae_precapture_trigger

Teste la machine d'état AE lors de l'utilisation du déclencheur de précapture. Capture cinq requêtes manuelles avec AE désactivé. La dernière demande a un déclencheur de précapture AE, qui doit être ignoré car AE est désactivé.

Pass: AE converge.

Paramètres de caméra impactés :

  • CONTROL_AE_MODE
  • CONTROL_AE_STATE
  • CONTROL_AE_PRECAPTURE_TRIGGER

test_auto_vs_manual

Les tests qui ont capturé des prises de vue automatiques et manuelles se ressemblent.

Pass: gains Manuel de la balance des blancs et transformez rapporté dans chaque match de résultat de capture avec la balance des blancs automatique estimate de l'algorithme 3A de la caméra.

Paramètres de caméra impactés :

  • COLOR_CORRECTION_GAINS
  • COLOR_CORRECTION_TRANSFORM
  • TONEMAP_CURVE
  • TONEMAP_MODE

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

test_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

test_noir_blanc

Teste que l'appareil produit des images entièrement en noir et blanc. Prend deux captures, la première avec un gain extrêmement faible et une exposition courte, ce qui donne une photo noire, et la seconde avec un gain extrêmement élevé et une exposition longue, ce qui donne une photo blanche.

Pass: produit des images en noir et blanc.

Paramètres de caméra impactés :

  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY
test_black_white_blacktest_black_white_black
test_black_white_black.jpg test_black_white_white.jpg

test_black_white_plot_means

test_black_white_plot_means.png

test_burst_sameness_manual

Prend 5 rafales de 50 images avec un réglage de capture manuel et vérifie qu'elles sont toutes identiques. Ce test peut être utilisé pour identifier s'il y a des trames sporadiques qui sont traitées différemment ou qui ont des artefacts.

Pass: Les images sont identiques visuellement et en valeurs RVB.

Fail: Affiche un pic ou baisse de la carte moyenne RVB au début de chaque salve

  • La tolérance est de 3% pour first_API_level <30
  • La tolérance est de 2% pour first_API_level > = 30

test_burst_sameness_manual_mean

test_burst_sameness_manual_mean.jpg

test_burst_sameness_manual_plot_means

test_burst_sameness_manual_plot_means.png

test_capture_result

Les tests que des données valides revient dans CaptureResult objets. Effectue une capture automatique, manuelle et automatique.

Pass: Les métadonnées sont valables pour toutes les captures et les réglages manuels ne fuient pas dans la seconde capture automatique. Trace la correction de l'ombrage de l'objectif pour les captures.

Paramètres de caméra impactés :

  • CONTROL_AE_MODE
  • CONTROL_AE_REGIONS
  • CONTROL_AF_MODE
  • CONTROL_AF_REGIONS
  • CONTROL_AWB_MODE
  • CONTROL_AWB_REGIONS
  • CONTROL_MODE
  • COLOR_CORRECTION_GAINS
  • COLOR_CORRECTION_TRANSFORM
  • COLOR_CORRECTION_MODE
  • CONTROL_MODE
  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY
  • STATISTICS_LENS_SHADING_CORRECTION_MAP
  • STATISTICS_LENS_SHADING_MAP_MODE
  • TONEMAP_CURVE
  • TONEMAP_MODE

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_channel_saturation

Teste que les canaux RVB saturent uniformément pour éliminer la teinte dans les régions saturées de l'image.

Pass: chaînes saturées ont des valeurs RVB de [255, 255, 255] avec une marge d'erreur de différence inférieure à 1%.

Paramètres de caméra impactés :

  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY

test_channel_saturation

test_channel_saturation.jpg

test_crop_region_raw

Teste que les flux RAW ne peuvent pas être recadrés.

Pass: images YUV se centre-recadrée mais pas les images RAW.

Paramètres de caméra impactés :

  • SCALER_CROP_REGION

test_crop_region_raw_comp_raw_crop

test_crop_region_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

test_crop_region_raw_comp_raw_full.jpg

test_crop_region_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

test_crop_region_raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_regions

Teste le fonctionnement des régions cadrées. Prend une image complète et crée des patchs de 5 régions différentes (coins et centre). Prend des images avec un recadrage défini pour les 5 régions. Compare les valeurs du patch et de l'image de recadrage.

Pass: Image de la région recadrée correspond au patch qui correspond à l'image des cultures.

Paramètres de caméra impactés :

  • SCALER_CROP_REGION

test_dng_noise_model

Vérifie que les paramètres du modèle brut DNG sont corrects. Le graphique représente la variance mesurée d'une zone centrale de la carte grise dans des plans bruts capturés sur une plage de sensibilités, et compare ces valeurs avec la variance attendue à chaque sensibilité par le modèle de bruit DNG dans la caméra HAL (basé sur le paramètres O,S renvoyés dans les objets de résultat de capture). Pour plus de détails sur un modèle de bruit DNG, téléchargez le document suivant sur le DNG modèle de bruit .

Pass: les paramètres du modèle brut DNG sont corrects. Les valeurs RVB attendues correspondent à celles des valeurs RVB réelles mesurées.

Paramètres de caméra impactés :

  • SENSOR_DYNAMIC_WHITE_LEVEL
  • SENSOR_SENSITIVITY

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

Teste que la compensation de la valeur d'exposition (EV) est appliquée. Le test augmente l'exposition en huit étapes et vérifie la luminosité mesurée par rapport à la luminosité attendue. Les valeurs attendues sont calculées à partir de la luminosité de l'image sans aucune compensation EV appliquée et la valeur attendue saturera si les valeurs calculées dépassent la plage de valeurs d'image réelle. Le test échoue si les valeurs attendues et les valeurs mesurées ne correspondent pas ou si les images sont surexposées dans les cinq étapes.

Pass: images montrent une exposition croissante sans surexposer dans les cinq étapes.

Paramètres de caméra impactés :

  • AE_EXPOSURE_COMPENSATION
  • CONTROL_AE_EXPOSURE_COMPENSATION
  • CONTROL_AE_LOCK
  • CONTROL_AE_STATE
  • TONEMAP_CURVE
  • TONEMAP_MODE

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_ev_compensation_basic

Teste que la compensation EV est appliquée en augmentant progressivement l'exposition. Les images augmentent l' exposition progressivement, mais ne pas surexposer comme dans le test_ev_compensation_advanced test.

Pass: augmentation captures dans Luma.

Paramètres de caméra impactés :

  • CONTROL_AE_EXPOSURE_COMPENSATION
  • CONTROL_AE_LOCK
  • CONTROL_AE_STATE

test_ev_compensation_basic

test_ev_compensation_basic.png

test_exposition

Teste qu'une exposition constante est obtenue car l'ISO et le temps d'exposition varient. Prend une série de photos dont l'ISO et le temps d'exposition sont choisis pour s'équilibrer. Les résultats doivent avoir la même luminosité, mais au fil de la séquence, l'image doit devenir plus bruyante. Vérifie que les valeurs moyennes des pixels de l'échantillon sont proches les unes des autres. Assure que les images ne sont pas limitées à 0 ou 1 (ce qui les ferait ressembler à des lignes plates).

Pass: Les images ont la même luminosité, mais obtenir plus de bruit ISO plus élevé. Les plans RVB sont plats avec une exposition ISO constante.

Paramètres de caméra impactés :

  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY

test_exposition_plot_means

test_exposition_plot_means.png

test_exposition_mult=1.00test_exposition_mult=64.00
test_exposition_mult=1.00.jpg test_exposition_mult=64.00.jpg

test_jpeg

Les tests qui ont converti les images YUV et les images JPEG de l'appareil se ressemblent. Le test prend le centre de 10 % de l'image, calcule la valeur RVB et vérifie qu'elles correspondent.

Pass: La différence RVB moyenne entre chaque image est inférieure à 3%.

test_jpeg_fmt=jpg.jpgtest_jpeg=fmt=yuv.jpg
test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg

test_verrouillage

Teste que les paramètres (exposition et gain) se verrouillent sur le cadre droit. Prend une série de prises de vue à l'aide de demandes dos à dos, en faisant varier les paramètres de demande de capture entre les prises de vue. Vérifie que les images ont les propriétés attendues.

Pass: Images [2, 3, 6, 8, 10, 12, 13] ont augmenté ISO ou de l' exposition et se présenter avec des moyens supérieurs RVB sur test_latching_plot_means.png .

test_latch_i=00.jpgtest_latch_i=01.jpgtest_latch_i=02.jpg
test_latch_i=00.jpg test_latch_i=01.jpg test_latch_i=02.jpg
test_latch_i=03.jpgtest_latch_i=04.jpgtest_latch_i=05.jpg
test_latch_i=03.jpg test_latch_i=04.jpg test_latch_i=05.jpg
test_latch_i=06.jpgtest_latch_i=07.jpgtest_latch_i=08.jpg
test_latch_i=06.jpg test_latch_i=07.jpg test_latch_i=08.jpg
test_latch_i=09.jpgtest_latch_i=10.jpgtest_latch_i=11.jpg
test_latch_i=09.jpg test_latch_i=10.jpg test_latch_i=11.jpg
test_latch_i=12.jpg
test_latch_i=12.jpg

test_latch_plot_means

test_latch_plot_means.png

test_linéarité

Teste que le traitement du périphérique peut être inversé en pixels linéaires. Capture une séquence de prises de vue avec l'appareil pointé sur une cible uniforme.

Pass: Inverse tout le traitement de l' ISP pour revenir à R linéaire, G, des données de pixel de B.

Paramètres de caméra impactés :

  • BLACK_LEVEL_LOCK
  • SENSOR_SENSITIVITY
  • TONEMAP_CURVE
  • TONEMAP_MODE

test_linearity_sens=0597

test_linearity_sens=0597.jpg

test_linearity_sens=1194

test_linearity_sens=1194.jpg

test_linearity_sens=1791

test_linearity_sens=1791.jpg

test_linearity_sens=2388

test_linearity_sens=2388.jpg

test_linearity_sens=2985

test_linearity_sens=2985.jpg

test_linearity_plot_means

test_linearity_plot_means.png

test_locked_burst

Teste le verrouillage 3A et la rafale YUV (en utilisant le réglage automatique). Ce test est conçu pour passer même sur des appareils limités qui n'ont pas MANUAL_SENSOR ou PER_FRAME_CONTROLS . Le test vérifie la cohérence de l'image YUV tandis que le contrôle de la fréquence d'images est en CTS.

Pass: Capture aspect cohérent.

Paramètres de caméra impactés :

  • CONTROL_AE_LOCK
  • CONTROL_AWB_LOCK

test_locked_burst_frame0

test_locked_burst_frame0.jpg

test_locked_burst_frame1

test_locked_burst_frame1.jpg

test_locked_burst_frame2

test_locked_burst_frame2.jpg

test_multi_camera_match

Teste pour voir si plusieurs caméras sur les appareils donnent des valeurs RVB similaires pour une tache grise.

Pass: Différentes caméras produisent des valeurs RVB similaires pour la même tache grise.

Paramètres de caméra impactés :

  • LENS_FOCAL_LENGTH
  • SCALER_CROP_REGION

test_multi_camera+match_yuv_fl=4.38

test_multi_camera+match_yuv_fl=4.38.jpg

test_param_color_correction

Les tests que les android.colorCorrection.* Paramètres sont appliqués lors de jeu. Prend des photos avec différentes valeurs de transformation et de gain, et teste qu'elles semblent différentes en conséquence. La transformation et les gains sont choisis pour rendre la sortie de plus en plus rouge ou bleue. Utilise un tonemap linéaire. Le mappage de tons est une technique utilisée dans le traitement d'images pour mapper un ensemble de couleurs à un autre afin d'approcher l'apparence d'images à plage dynamique élevée dans un support qui a une plage dynamique plus limitée.

Pass: les valeurs de R et B augmentent en fonction de la transformation.

Paramètres de caméra impactés :

  • COLOR_CORRECTION_GAINS
  • COLOR_CORRECTION_MODE
  • COLOR_CORRECTION_TRANSFORM

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*L'axe des abscisses correspond aux requêtes de capture : 0 = unité, 1 = boost rouge, 2 = boost bleu

test_param_color_correction_req=0

test_param_color_correction_req=0.jpg

test_param_color_correctness_req=1

test_param_color_correctness_req=1.jpg (R boost)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (boost B)

test_param_exposure_time

Tests que l' android . sensor . exposureTime paramètres est appliqué.

Pass: Chaque tir est plus clair que la photo précédente.

Paramètres de caméra impactés :

  • SENSOR_EXPOSURE_TIME

test_param_exposure_time_frame0

test_param_exposure_time_frame0.jpg

test_param_exposure_time_plot

test_param_exposure_time_plot.png

test_param_flash_mode

Les tests que le android.flash.mode paramètre est appliqué. Définit manuellement l'exposition sur le côté sombre, de sorte qu'il soit évident si le flash s'est déclenché ou non, et utilise une carte de tons linéaire. Vérifie le centre avec l'image de la tuile pour voir s'il y a un grand dégradé qui est créé pour vérifier si le flash s'est déclenché.

Pass: Le centre de l'image de tuile a un grand gradient qui signifie que le flash se déclenche.

Paramètres de caméra impactés :

  • FLASH_MODE
  • FLASH_STATE

test_param_flash_mode_1

test_param_flash_mode_1.jpg

test_param_flash_mode_1_tile

test_param_flash_mode_1_tile.jpg

test_param_flash_mode_2

test_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

test_param_flash_mode_2_tile.jpg

test_param_noise_reduction

Tests que l' android . noiseReduction . le mode paramètre est appliqué correctement lorsqu'il est réglé. Capture des images avec l'appareil photo faiblement éclairé. Utilise un gain analogique élevé pour garantir que l'image capturée est bruyante. Capture trois images, pour NR désactivé, "rapide" et "haute qualité". Capture également une image avec un gain faible et un NR désactivé, et utilise la variance de celle-ci comme ligne de base. Plus le SNR (Signal to Noise Ratio) est élevé, meilleure est la qualité de l'image.

Pass: SNR varie selon les différents modes de réduction du bruit et comporte de manière similaire que le graphique ci - dessous.

Paramètres de caméra impactés :

  • NOISE_REDUCTION_MODE

test_param_noise_reduction_plot_SNRs

test_param_noise_reduction_plot_SNRs.png

0 : OFF, 1 : RAPIDE, 2 : HQ, 3 : MIN , 4 : ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_sensitivity

Les tests que le android.sensor.sensitivity paramètre est appliqué. Le test augmente la sensibilité en 5 étapes avec une exposition fixe pour chaque prise de vue.

Pass: des moyens RGB de centre 10% avec une sensibilité devient plus lumineuse accrue.

Paramètres de caméra impactés :

  • SENSOR_SENSITIVITY

test_param_sensitivity_iso=0055

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

test_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

test_param_sensitivity_plot

test_param_sensitivity_plot.png

test_param_shading_mode

Les tests que le android.shading.mode paramètre est appliqué.

Pass: modes Ombrage sont commutées et les cartes d' ombrage objectif sont modifiées comme prévu.

Paramètres de caméra impactés :

  • SHADING_MODE
  • STATISTICS_LENS_SHADING_CORRECTION_MAP
  • STATISTICS_LENS_SHADING_MAP_MODE

test_param_shading_mode_ls_maps_mode_0_loop_0

test_param_shading_mode_ls_maps_mode_0_loop_0.png

test_param_shading_mode_ls_maps_mode_1_loop_0

test_param_shading_mode_ls_maps_mode_1_loop_0.png

test_param_shading_mode_ls_maps_mode_2_loop_0

test_param_shading_mode_ls_maps_mode_2_loop_0.png

test_param_tonemap_mode

Teste que le paramètre android.tonemap.mode est appliqué. Applique différentes courbes de mappe de tons à chaque canal R, V, B et vérifie que les images de sortie sont modifiées comme prévu. Ce test se compose de deux tests, test1 et test2.

Passe:

  • test1 : les deux images ont une tonemap linéaire, mais n=1 a un gradient plus prononcé. Le canal G (vert) est plus clair pour l'image n=1.
  • test2 : même tonemap, mais longueur différente. Les images sont les mêmes.

Paramètres de caméra impactés :

  • TONEMAP_CURVE
  • TONEMAP_MODE
test_param_tonemap_mode_n=0.jpgtest_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

test_post_raw_sensitivity_boost

Contrôles après augmentation de la sensibilité RAW. Capture un ensemble d'images RAW et YUV avec une sensibilité différente, publie une combinaison d'augmentation de la sensibilité RAW et vérifie si la moyenne des pixels de sortie correspond aux paramètres de la demande.

Pass: les images RAW deviennent plus sombres que l' augmentation de boost alors que les images restent constantes dans YUV luminosité

Paramètres de caméra impactés :

  • CONTROL_POST_RAW_SENSITIVITY_BOOST

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_raw_plot_means

test_post_raw_sensitivity_boost_raw_plot_means.png

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

test_post_raw_sensitivity_boost_yuv_plot_means

test_post_raw_sensitivity_boost_yuv_plot_means.png

test_raw_burst_sensitivity

Capture un ensemble d'images brutes avec des gains croissants et mesure le bruit. Captures brutes uniquement, en rafale.

Pass: Chaque tir est plus bruyant que le tir précédent, le gain augmente.

Utilise la variance de la cellule de grille de statistiques centrale.

test_raw_burst_sensitivity_variance

test_raw_burst_sensitivity_variance.png

test_raw_exposition

Capture un ensemble d'images brutes avec un temps d'exposition croissant et mesure les valeurs de pixels.

Passe: Amélioration de l'ISO (gain) rend les pixels plus sensibles à la lumière, de sorte que le plot se déplace vers la gauche.

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰ est 1 ms, 10¹ est 10 ms, 10⁻¹ est 0,1 ms)

test_raw_exposition_s=132

test_raw_exposure_s=132.png

test_raw_exposure_s=209

test_raw_exposure_s=209.png

test_raw_exposure_s=286

test_raw_exposure_s=286.png

test_raw_exposure_s=363

test_raw_exposure_s=363.png

test_raw_exposure_s=440

test_raw_exposure_s=440.png

test_raw_sensitivity

Capture un ensemble d'images brutes avec des sensibilités croissantes et mesure le bruit (variance) au centre de 10 % de l'image. Teste que chaque plan est plus bruyant que le précédent.

Pass: Variation augmente avec chaque tir.

test_raw_sensitivity_variance

test_raw_sensitivity_variance.png

test_reprocess_noise_reduction

Les tests qui android.noiseReduction.mode est appliqué pour les demandes de retraitement. Capture des images retraitées avec l'appareil photo faiblement éclairé. Utilise un gain analogique élevé pour garantir que l'image de capture est bruyante. Capture trois images retraitées, pour NR désactivé, "rapide" et "haute qualité". Capture une image retraitée avec un gain faible et un NR désactivé, et utilise la variance de celle-ci comme ligne de base.

Pass: FAST> = OFF, HQ> = FAST, HQ >> OFF

Paramètres de caméra impactés :

  • NOISE_REDUCTION_MODE

Graphique typique SNR vs NR_MODE

Graphique typique SNR vs NR_MODE

test_tonemap_sequence

Teste une séquence de prises de vue avec différentes courbes de tonemap. Capture 3 prises de vue manuelles avec une carte de tons linéaire. Capture 3 prises de vue manuelles avec le tonemap par défaut. Calcule le delta entre chaque paire de trames consécutives.

Pass: Il y a 3 images identiques suivies d'un ensemble différent de 3 images identiques.

test_tonemap_sequence_i=0

test_tonemap_sequence_i=0.jpg

test_tonemap_sequence_i=1

test_tonemap_sequence_i=1.jpg

test_tonemap_sequence_i=2

test_tonemap_sequence_i=2.jpg

test_tonemap_sequence_i=3

test_tonemap_sequence_i=3.jpg

test_tonemap_sequence_i=4

test_tonemap_sequence_i=4.jpg

test_tonemap_sequence_i=5

test_tonemap_sequence_i=5.jpg

test_yuv_jpeg_all

Teste que toutes les tailles et tous les formats signalés pour la capture d'images fonctionnent. Utilise une requête manuelle avec un tonemap linéaire afin que le YUV et le JPEG se ressemblent lorsqu'ils sont convertis par le module its.image.

Pass: Tous les centres d'image ont une différence RMS max (valeur de racine carrée moyenne d'un signal) en RVB converties images avec 3% de l' image YUV plus haute résolution.

test_yuv_jpeg_all

test_yuv_jpeg_all.png

test_yuv_plus_dng

Teste que les tailles et formats signalés pour la capture d'images fonctionnent.

Pass: test terminé et renvoie les images demandées.

test_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

Teste la capture d'une seule image en tant que sorties YUV et JPEG. Utilise une demande manuelle avec un ToneMap linéaire , de sorte que le YUV et JPEG ressemblent (lorsqu'il est converti par le its.image module.)

Pass: YUV et les images JPEG sont similaires et ont moins de 1% RMS (valeur de la racine carrée moyenne d'un signal) différence.

test_yuv_plus_jpg_jpg.jpgtest_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

Teste la capture d'une seule image en tant que sorties RAW et YUV. Utilise une requête manuelle avec tonemap linéaire, donc RAW et YUV devraient être identiques. Compare les valeurs RVB du centre des images converties en RVB à 10 %. Journaux android.shading.mode .

Pass: YUV et les images JPEG sont similaires et ont moins de 3,5% RMS (valeur de la racine carrée moyenne d'un signal) différence.

test_yuv_plus_raw_shading=1_raw.jpgtest_yuv_plus_raw_shading=1_yuv.jpg
test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg

Paramètres de caméra impactés :

  • SHADING_MODE

test_yuv_plus_raw10

Teste la capture d'une seule image en tant que sorties RAW10 et YUV. Utilise une requête manuelle avec tonemap linéaire, donc RAW et YUV devraient être identiques. Compare les valeurs RVB du centre des images converties en RVB à 10 %. Journaux android.shading.mode .

Pass: RAW10 et images YUV sont semblables et ont moins de 3,5% RMS (valeur quadratique moyenne-racine d'un signal) différence.

Paramètres de caméra impactés :

  • SHADING_MODE
test_yuv_plus_raw10_shading=1_rawtest_yuv_plus_raw10_shading=1_yuv
test_yuv_plus_raw10_shading=1_raw.jpg test_yuv_plus_raw10_shading=1_yuv.jpg

test_yuv_plus_raw12

Teste la capture d'une seule image en tant que sorties RAW12 et YUV. Utilise une requête manuelle avec tonemap linéaire, donc RAW et YUV devraient être identiques. Compare les valeurs RVB du centre des images converties en RVB à 10 %. Journaux android.shading.mode .

Pass: RAW12 et images YUV sont semblables et ont moins de 3,5% RMS (valeur quadratique moyenne-racine d'un signal) différence.

test_yuv_plus_raw12_shading=1_raw.jpgtest_yuv_plus_raw12_shading=1_yuv.jpg
test_yuv_plus_raw12_shading=1_raw.jpg test_yuv_plus_raw12_shading=1_yuv.jpg

scène2_a

scene2_a a trois visages avec un fond gris et des vêtements neutres. Les visages sont choisis pour avoir une large gamme de tons de peau.

scène2_a

scène2_a

test_effets

Capture le cadre pour les effets de caméra pris en charge et vérifie s'ils sont générés correctement. Le seul test effets contrôles OFF et MONO , mais enregistre des images pour tous les effets pris en charge.

Pass: capture l'image de la scène avec des effets OFF et une image monochrome avec des effets mis à MONO .

Paramètres de caméra impactés :

  • CONTROL_EFFECT_MODE

test_effects_MONO

test_effects_MONO.jpg

test_faces

Teste la détection des visages. L' image est enregistrée, mais la boîte et l' information historique est sous forme de tableau dans test_faces_stdout.txt .

Pass: Détecte au moins une face de l'image.

Paramètres de caméra impactés :

  • STATISTICS_FACE_DETECT_MODE

test_format_combos

Teste différentes combinaisons de formats de sortie.

Pass: Toutes les combinaisons sont capturées avec succès.

test_jpeg_quality

Teste la qualité de compression JPEG de l'appareil photo. Etape qualités JPEG par android.jpeg.quality .

Pass: matrice Quantification diminue avec l' augmentation de la qualité. (La matrice représente le facteur de division.)

test_jpeg_quality

Moyennes de la matrice DQT luma/chroma de la caméra arrière Pixel 4 par rapport à la qualité JPEG

test_jpeg_quality a échoué

Exemple de test échoué

Notez que pour les images de très faible qualité (jpeg.quality < 50), il n'y a pas d'augmentation de la compression dans la matrice de quantification.

Paramètres de caméra impactés :

  • JPEG_QUALITY

test_num_faces

Teste la détection des visages.

Pass: Trouve trois visages.

Paramètres de caméra impactés :

  • STATISTICS_FACES
  • STATISTICS_FACE_DETECT_MODE

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

scène2_b

test_auto_per_frame_control

Tests PER_FRAME_CONTROL propriétés pour les demandes de capture automatique.

Pass: Toutes les PER_FRAME_CONTROL propriétés sont présentes.

Paramètres de caméra impactés :

  • COLOR_CORRECTION_GAIN
  • COLOR_CORRECTION_TRANSFORM
  • CONTROL_AE_STATE
  • CONTROL_AWB_STATE
  • CONTROL_POST_RAW_SENSITIVITY_BOOST
  • LENS_FOCUS_DISTANCE
  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY
  • STATISTICS_LENS_SHADING_MAP_MODE
  • STATISTICS_LENS_SHADING_CORRECTION_MAP
  • TONEMAP_CURVE
  • TONEMAP_MODE

test_auto_per_frame_control_frame_1

test_auto_per_frame_control_frame_1.jpg

test_auto_per_frame_control_frame_10

test_auto_per_frame_control_frame_10.jpg

test_auto_per_frame_control_frame_29

test_auto_per_frame_control_frame_29.jpg

test_auto_per_frame_control_plot

test_auto_per_frame_control_plot.png

test_num_faces

Teste la détection des visages avec une diversité de tons de peau accrue dans les scènes de visage.

Pass: Trouve 3 faces.

Paramètres de caméra impactés :

  • STATISTICS_FACES
  • STATISTICS_FACE_DETECT_MODE

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

scène2_c

test_num_faces

Teste la détection des visages avec une diversité de tons de peau accrue dans les scènes de visage.

Pass: Trouve 3 faces.

Paramètres de caméra impactés :

  • STATISTICS_FACES
  • STATISTICS_FACE_DETECT_MODE

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

scène2_d

test_num_faces

Teste la détection des visages avec une diversité de tons de peau accrue dans les scènes de visage.

Pass: Trouve 3 faces.

Paramètres de caméra impactés :

  • STATISTICS_FACES
  • STATISTICS_FACE_DETECT_MODE

Affirme

Affirme num_faces == 3 .

scène2_e

test_continuous_picture

50 trames de résolution VGA sont capturées avec la demande de capture premier paramètre android.control.afMode = 4 (CONTINUOUS_PICTURE).

Pass: installe le système 3A à la fin d'une capture de 50 trame.

Paramètres de caméra impactés :

  • CONTROL_AE_STATE
  • CONTROL_AE_REGIONS
  • CONTROL_AF_MODE
  • CONTROL_AF_STATE
  • CONTROL_AWB_STATE
  • CONTROL_CAPTURE_INTENT
  • CONTROL_MODE
  • CONTROL_POST_RAW_SENSITIVITY_BOOST
  • LENS_FOCAL_LENGTH
  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY

test_num_faces

Teste la détection des visages avec une diversité de tons de peau accrue dans les scènes de visage.

Pass: Trouve 3 faces.

Paramètres de caméra impactés :

  • STATISTICS_FACES
  • STATISTICS_FACE_DETECT_MODE

Affirme

Affirme num_faces == 3 .

scène3

Scene3 utilise le graphique ISO12233 et la plupart des tests utilisent une méthode d'extraction de graphique pour trouver le graphique dans la scène. Pour cette raison, la plupart des images enregistrées n'ont pas de bordures comme les images des scènes 1, 2 ou 4, mais uniquement le graphique.

test_3a_cohérence

Tests de cohérence 3A.

Pass: converge 3A pour l' exposition, le gain, AWB (balance automatique des blancs) et fd (distance de mise au point) , trois fois à l' intérieur de la tolérance.

test_edge_enhancement

Les tests que le android.edge.mode paramètre est appliqué correctement. Capture les images non retraitées pour chaque mode de contour et renvoie la netteté de l'image de sortie et les métadonnées du résultat de la capture. Traite une demande de capture avec un mode de contour, une sensibilité, un temps d'exposition, une distance de mise au point et un paramètre de surface de sortie donnés.

Pass: le mode rapide n'est pas plus nette que le mode HQ (haute qualité).

Paramètres de caméra impactés :

  • EDGE_MODE
  • LENS_FOCUS_DISTANCE
  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY

test_edge_enhancement_edge=0

test_edge_enhancement_edge=0.jpg

test_edge_enhancement_edge=1

test_edge_enhancement_edge=1.jpg (mode rapide)

test_edge_enhancement_edge=2

test_edge_enhancement_edge=2.jpg (mode haute qualité)

test_flip_mirror

Teste si l'image est correctement orientée. Les images en miroir, retournées ou pivotées peuvent être identifiées par la fonction de losange près du centre.

Pass: L' image est pas retournée, en miroir ou en rotation.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_lens_movement_reporting

Teste si l'indicateur de mouvement de l'objectif est correctement signalé. Capture une rafale de 24 images avec les 12 premières images à la distance de mise au point optimale (telle que trouvée par 3A) et les 12 dernières images à la distance de mise au point minimale. Autour du cadre 12, l'objectif se déplace, ce qui fait chuter la netteté. La netteté finit par se stabiliser lorsque l'objectif se déplace vers la position finale. L'indicateur de mouvement de l'objectif doit être appliqué dans toutes les images où la netteté est intermédiaire à la netteté dans les 10 premières images avec l'objectif stationnaire à la distance focale optimale, et les 10 dernières images où l'objectif est stationnaire à la distance focale minimale. La monture exacte que l'objectif bouge n'est pas importante : ce qui est vérifié, c'est que le drapeau de mouvement est affirmé lorsque l'objectif bouge.

Pass: Objectif drapeau de mouvement est True dans le cadre du changement de netteté.

Paramètres de caméra impactés :

  • LENS_FOCUS_DISTANCE
  • LENS_STATE
  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY
  • SENSOR_TIMESTAMP

test_lens_position

Tests if the focus position is properly reported for moving lenses.

Pass: Correct focus positions are reported.

Impacted camera parameters:

  • LENS_FOCUS_DISTANCE
  • LENS_STATE
  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY
  • SENSOR_TIMESTAMP

test_reprocess_edge_enhancement

Returns sharpness of the output images and the capture result metadata. Processes a capture request with a given edge mode, sensitivity, exposure time, focus distance, output surface parameter, and reprocess format.

Pass: Sharpness for the different edge modes is correct.

Impacted camera parameters:

  • EDGE_MODE
  • LENS_FOCUS_DISTANCE
  • REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY

scene4

Scene4 consists of a black circle on a white background inside a square.

scene4

scene4

test_aspect_ratio_and_crop

Takes pictures of a circle inside of a square over all formats. Verifies that the aspect ratio of the circle doesn't change, the cropped images keep the circle in center, and the circle size doesn't change for a constant format or with different resolution (field of view check).

Pass: Images aren't stretched, the center of images don't differ by more than 3%, and the maximum possible FOV (field of view) is preserved.

Impacted camera parameters:

  • LENS_DISTORTION
  • LENS_FOCAL_LENGTH
  • LENS_INTRINSIC_CALIBRATION

test_multi_camera_alignment

Tests the multi camera system parameters related to camera spacing. Using the multi-camera physical sub-cameras, takes a picture with one of the physical cameras. Finds the circle center. Projects the circle center to the world coordinates for each camera. Compares the difference between the cameras' circle centers in world coordinates. Reprojects the world coordinate back to pixel coordinates and compares against originals as a validity check. Compares the circle sizes checking if the focal lengths of the cameras are different.

Pass: Focal lengths and circles sizes are consistent.

Impacted camera parameters:

  • DISTORTION_CORRECTION_MODE
  • LENS_DISTORTION
  • LENS_FOCAL_LENGTH
  • LENS_INTRINSIC_CALIBRATION
  • LENS_POSE_TRANSLATION
  • LENS_POSE_ROTATION
  • SCALER_CROP_REGION

scene5/diffuser

test_lens_shading_and_color_uniformity

Tests that the lens shading correction is applied appropriately, and color of a monochrome uniform scene is evenly distributed. Performs this test on a YUV frame with auto 3A. Lens shading is evaluated based on the y channel. Measures the average y value for each sample block specified, and determines pass or fail by comparing with the center y value. The color uniformity test is evaluated in r/g and b/g space.

Pass: At the specified radius of the image, the variance of r/g and b/g value must be less than 20% to pass the test.

scene6

Scene6 is a grid of small circles with a square in one corner to indicate orientation. The small circles are needed to test zoom function over a large range.

scene6

scene6

test_zoom

Tests the camera zoom behavior. Takes captures over the zoom range and checks if the circles get bigger as the camera zooms in.

Pass: Relative size of captured circle is accurate against requested zoom ratio to ensure camera is zooming correctly.

Impacted camera parameters:

  • CONTROL_ZOOM_RATIO
  • LENS_FOCAL_LENGTH

test_zoom

test_zoom to find the contour of the circle closest to the center.

scene_change

test_scene_change

The scene change makes use of the tablet displaying a face scene and then turns the tablet on and off to create a scene change. The scene reuses scene2_e, but is in a separate scene because of the required tablet control. Additionally, for manual testing, the scene change can be accomplished by waving your hand in front of the camera.

Pass: The android.control.afSceneChange flag is asserted with a scene change.

Impacted camera parameters:

  • CONTROL_AE_STATE
  • CONTROL_AF_STATE
  • CONTROL_AWB_STATE
  • CONTROL_AF_SCENE_CHANGE
  • CONTROL_AWB_STATE
  • SENSOR_EXPOSURE_TIME
  • SENSOR_SENSITIVITY
  • LENS_FOCAL_LENGTH

sensor_fusion

Sensor fusion tests require specific phone movement in front of a checkerboard pattern. The sensor_fusion tests can be automated with the Sensor Fusion Box .

checkerboard

Image of checkerboard

test_multi_camera_frame_sync

Tests that frame timestamps captured by logical camera are within 10 ms by computing angles of squares within the checkerboard to determine the timestamp.

Pass: Angle between images from each camera doesn't change appreciably as phone is rotated.

Impacted camera parameters:

  • LENS_FOCUS_DISTANCE

test_sensor_fusion

Tests the timestamp difference between the camera and the gyroscope for AR and VR applications. Phone is rotated 90 degrees 10 times in front of the checkerboard pattern. Motion is about 2 s round trip. This test is skipped if no gyroscope is included or if the REALTIME parameter is not enabled.

Pass: Camera and gyroscope timestamps' offset is less than 1 ms.

Impacted camera parameters:

  • CONTROL_AE_TARGET_FPS_RANGE
  • LENS_FOCUS_DISTANCE
  • SENSOR_EXPOSURE_TIME
  • SENSOR_FRAME_DURATION
  • SENSOR_ROLLING_SHUTTER_SKEW
  • SENSOR_TIMESTAMP