Notes de version de la suite Camera Image Test d'Android 13

La version d'Android 13 inclut un certain nombre de modifications apportées à Camera ITS. En plus des modifications incrémentielles telles que les mises à jour de Python et des versions de packages, ainsi que les mises à jour matérielles de test, Android 13 est compatible avec les tests vidéo.

Cette page récapitule les modifications apportées à l'ITS de l'appareil photo pour Android 13. Les modifications se répartissent en sept grandes catégories:

Versions de Python et de packages

En plus des versions et bibliothèques Python compatibles avec Android 12, Android 13 est compatible avec les versions Python suivantes:

Ajouts au fichier de configuration

En raison de l'ajout du contrôle de l'éclairage pour le test test_auto_flash.py, le fichier config.yml nécessite deux paramètres supplémentaires pour le contrôleur et le canal d'éclairage. Pour déterminer si l'appareil testé est un appareil pliable ou non, le fichier config.yml nécessite un troisième paramètre supplémentaire qui doit être ajouté à la fois aux sections de fusion des tablettes et des capteurs.

TestBeds:
  - Name: TEST_BED_TABLET_SCENES
    # Test configuration for scenes[0:4, 6, _change]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"  # "True" or "False"; quotes needed
      lighting_cntl: <controller-type>  # "arduino" or "None"; quotes needed
      lighting_ch: <controller-channel>
      camera: 0
      foldable_device: "False". # set "True" if testing foldable
      scene: <scene-name>  # if <scene-name> runs all scenes

Tester les modifications

scene1_1/test_black_white.py

La vérification de la saturation des canaux du test test_black_white est cohérente avec les versions précédentes d'Android, ce qui signifie que le premier niveau d'API requis pour cette vérification est Android 10.

scene1_2/test_yuv_plus_raw.py

Le test test_yuv_plus_raw gère les capteurs autres que 16:9 ou 4:3 pour mieux prendre en charge le format RAW. Si le test ne trouve pas de format commun entre le format RAW du capteur et les formats de capture YUV, il compare la capture RAW à la plus grande capture YUV, même si les formats sont différents.

scene2_a/test_faces.py

test_faces est refactorisé en test_num_faces.

scene2_a/test_num_faces.py

Le test test_num_faces gère le recadrage du capteur et place correctement les rectangles de visage sur les captures de la caméra ultra grand angle qui sont recadrées.

scène3/test_lens_position.py

Le test test_lens_position est obsolète dans Android 13.

scene6/test_zoom.py

Le test test_zoom est refactorisé pour faciliter les tests des systèmes à trois et quatre caméras. Si le test de la caméra est effectué correctement sur une plage de zoom x10, le test se termine correctement. Cela permet d'effectuer des tests de zoom à une seule distance de graphique.

scene_change/test_scene_change.py

Le test test_scene_change est obsolète dans Android 13.

Nouveaux tests sur tablette

Android 13 inclut deux nouveaux tests pour tablette. Les deux tests sont obligatoires pour les appareils lancés avec Android 13, mais sont ignorés pour les appareils mis à niveau vers Android 13.

Scène Nom du test Premier niveau d'API Description
2_a test_auto_flash 33 Confirme que les scènes sombres déclenchent le flash automatique.
2_b test_yuv_jpg_capture_sameness 33 Confirme que les captures YUV et JPEG sont toujours identiques au niveau des bits.

scene2_a/test_auto_flash.py

Android 13 ajoute le test test_auto_flash.

Paramètres

  • flash: ignore le test si le flash n'est pas disponible.

Méthode

Le test configure la requête de capture pour le flash automatique et présente une scène nécessitant un événement de flash. L'éclairage du banc d'essai et de la tablette est désactivé pour présenter une scène sombre à l'algorithme d'exposition automatique. Le test configure une séquence de captures NUM_FRAMES avec le flash automatique activé. Si le paramètre AE_STATE renvoie FLASH_REQUIRED, le test vérifie qu'un flash est déclenché dans les captures.

L'éclairage peut être contrôlé manuellement lorsque vous y êtes invité, ou automatiquement avec un contrôleur Arduino avec un contrôle de l'éclairage ajouté pour les tests automatisés. Un nouveau dossier d'utilitaire lighting_control_utils centralise le code permettant de contrôler l'éclairage dans les tests.

scene2_a/test_yuv_jpeg_capture_sameness.py

Android 13 ajoute le test test_yuv_jpeg_capture_sameness.

Paramètres

  • streamUseCase: détermine si la caméra est compatible avec le cas d'utilisation de flux.
  • android.jpeg.quality: définit la qualité JPEG sur 100.

Méthode

Ce test capture deux images à l'aide des plus grands formats YUV et JPEG courants, avec le même format d'image que le plus grand format JPEG, sans dépasser une résolution de 1 920 x 1 440. Le test définit jpeg.quality sur 100 et capture une requête à deux surfaces. Il convertit ensuite les deux images en tableaux RVB et calcule la différence de racine carrée (RMS) en 3D entre les deux images. La tolérance de différence est définie sur 1%.

Tests vidéo

La ITS de l'appareil photo est compatible avec les tests vidéo dans Android 13.

Android 13 ajoute les tests suivants:

Scène Nom du test Premier niveau d'API Description
4 test_preview_stabilization_fov 33 Permet de confirmer que l'aperçu de la vidéo ne recadre pas trop souvent lorsque la stabilisation est activée.
4 test_video_aspect_ratio_and_crop 33 Confirme le champ de vision, le format et le recadrage des formats vidéo.
sensor_fusion test_preview_stabilition 33 Vérifie que la stabilisation de l'aperçu fonctionne.
sensor_fusion test_video_stabilition 33 Vérifie que la stabilisation vidéo fonctionne.

scene4/test_preview_stabilization_fov.py

Android 13 ajoute le test test_preview_stabilization_fov. Ce test vérifie les tailles d'aperçu compatibles pour s'assurer que le champ de vision n'est pas recadré de manière inappropriée.

Méthode

Le test capture deux vidéos, l'une avec la stabilisation d'aperçu activée et l'autre avec la stabilisation d'aperçu désactivée. Un frame représentatif est sélectionné dans chaque vidéo et analysé pour s'assurer que les changements de champ de vision des deux vidéos sont conformes aux spécifications.

Plus précisément, le test vérifie les paramètres suivants avec et sans stabilisation de l'aperçu:

  • La rondeur du cercle reste constante.
  • Le centre du cercle reste stable.
  • La taille du cercle ne change pas de plus de 20%, ce qui signifie que le champ de vision ne change pas de plus de 20%.

scène4/test_video_aspect_ratio_and_crop.py

Android 13 ajoute le test test_video_aspect_ratio_and_crop. Comme le test test_aspect_ratio_and_crop pour les captures d'écran fixes, il vérifie les formats vidéo compatibles pour s'assurer que les images vidéo ne sont pas étirées ou recadrées de manière inappropriée. Toutes les qualités vidéo autodéclarées sont testées. De plus, si la caméra prend en charge la vidéo HLG10, la vidéo 10 bits est testée.

Android 13 ajoute la méthode get_available_video_qualities à its_session_utils. Pour partager du code commun avec les tests existants, Android 13 inclut également deux nouvelles fonctions utilitaires, image_fov_utils et video_processing_utils.

Méthode

Le test capture une image de référence au format RAW ou au format JPEG avec la résolution la plus élevée si le format RAW n'est pas accepté. À partir de l'image de référence, la taille et l'emplacement du cercle sont déterminés. Des vidéos courtes sont ensuite prises avec toutes les qualités vidéo compatibles. Le frame de référence final est extrait de chaque qualité vidéo. À partir de l'image de référence, le champ de vision, le centrage (recadrage) et le format sont calculés pour chaque qualité vidéo.

Pour le calcul du champ de vision, le test compare la taille du cercle du cadre vidéo à la taille du cercle calculée à partir de l'image de référence et des tailles de format vidéo. Pour le contrôle du recadrage, le test compare le centrage du cadre vidéo au centrage de l'image de référence. Pour la vérification du format, à l'aide de la scène, qui est un grand cercle noir sur un fond blanc, le test détermine le format du cercle et vérifie que le cadre n'est pas déformé.

sensor_fusion/test_preview_stabilization.py

Android 13 ajoute le test test_preview_stabilization, qui teste toutes les qualités d'aperçu compatibles jusqu'à 1 920 x 1 080. Le test utilise le banc d'essai de fusion de capteurs et nécessite le nouveau contrôleur de fusion de capteurs de révision 2 ou une mise à niveau du micrologiciel des versions précédentes du contrôleur Arduino. Pour en savoir plus sur le nouveau contrôleur, consultez la section Mises à jour et ajouts matériels.

Méthode

Le téléphone est déplacé lentement sur un angle d'environ 15 degrés avec la stabilisation de l'aperçu activée. La rotation des images est ensuite comparée à la rotation du gyroscope.

sensor_fusion/test_video_stabilization.py

Android 13 ajoute le test test_video_stabilization, qui teste les qualités vidéo compatibles jusqu'à 1 920 x 1 080 pixels. La qualité vidéo basse résolution QCIF est exclue. Le test utilise le banc d'essai de fusion de capteurs et nécessite le nouveau contrôleur de fusion de capteurs de révision 2 ou une mise à niveau du micrologiciel des versions précédentes du contrôleur Arduino. Pour en savoir plus sur le nouveau contrôleur, consultez la section Mises à jour et ajouts matériels.

Méthode

Le support de test déplace lentement le téléphone selon un angle d'environ 15 degrés avec la stabilisation de l'aperçu activée. La rotation des images est ensuite comparée à la rotation du gyroscope.

Ajouts et mises à jour du matériel

Android 13 inclut une mise à niveau du contrôleur de fusion de capteurs de révision 2 basé sur Arduino. Cette mise à niveau comprend des modifications matérielles et de micrologiciel. Cette mise à niveau permet au contrôleur de définir la vitesse de rotation et le contrôle de la foudre. La mise à niveau comprend également un nouveau bouclier (illustré à la figure 1), qui fournit trois canaux de rotation et trois canaux de contrôle de l'éclairage.

Carte Arduino rev2.0

Figure 1 : Arduino Shield rev2.0 avec rotation et contrôle de l'éclairage

De plus, pour la version 13, le micrologiciel des contrôleurs existants doit être mis à jour pour activer le contrôle de la vitesse de rotation. Vous pouvez télécharger ce micrologiciel depuis:

Pour en savoir plus sur ce nouveau contrôleur, consultez la section Contrôleur de fusion de capteurs Android 13.

Compatibilité avec les tests des appareils pliables

Android 13 permet de tester la compatibilité avec les appareils pliables. Pour activer l'API multicaméra pour les appareils pliables, l'état du téléphone (Folded ou Unfolded) est requis lors des tests. Pour activer l'interrogation de l'état du téléphone pour tous les DUT, y compris les téléphones non pliables, exécutez la commande adb suivante une fois que le DUT est connecté à l'hôte.

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier