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

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

Cette page récapitule les modifications apportées à la suite de tests ITS de l'appareil photo pour Android 13. Les modifications sont réparties en sept grandes catégories :

Versions de Python et des packages

En plus des versions et des bibliothèques Python compatibles avec Android 12, Android 13 prend en charge 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 identifier si l'appareil testé (DUT) est pliable ou non, le fichier config.yml nécessite un troisième paramètre supplémentaire qui doit être ajouté aux sections basées sur les tablettes et la fusion 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

Le test test_black_white comporte une vérification de la saturation des canaux conforme aux versions précédentes d'Android, ce qui signifie que le premier niveau d'API requis pour la vérification de la saturation des canaux est Android 10.

scene1_2/test_yuv_plus_raw.py

Le test test_yuv_plus_raw gère les capteurs non 16:9 ou 4:3 pour une meilleure prise en charge du 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 d'image 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 caméra ultra grand-angle recadrées.

scene3/test_lens_position.py

Le test test_lens_position est obsolète dans Android 13.

scene6/test_zoom.py

Le test test_zoom a été refactorisé pour faciliter les tests des systèmes à trois et quatre caméras. Si la caméra est testée correctement sur une plage de rapport de 10x en zoom, 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 les tablettes. 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 flash. L'éclairage du banc de test et de la tablette est éteint 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 auquel une commande d'éclairage a été ajoutée pour les tests automatisés. Un nouveau dossier d'utilitaires 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 du flux.
  • android.jpeg.quality : définit la qualité JPEG sur 100.

Méthode

Ce test capture deux images en utilisant les formats YUV et JPEG les plus courants avec le même format que le plus grand format JPEG ne dépassant pas une résolution de 1920x1440. Les ensembles de test définissent jpeg.quality sur 100 et capturent une requête à double surface. Il convertit ensuite les deux images en tableaux RVB et calcule la différence RMS (racine carrée moyenne) 3D entre les deux images. La tolérance de différence est définie sur 1 %.

Tests vidéo

Camera ITS ajoute la prise en charge des 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 Confirme que l'aperçu vidéo ne recadre pas trop 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 Confirme que la stabilisation de l'aperçu fonctionne.
sensor_fusion test_video_stabilition 33 Confirme 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 : une avec la stabilisation de l'aperçu activée et une autre avec la stabilisation de l'aperçu désactivée. Une image représentative est sélectionnée dans chaque vidéo et analysée pour s'assurer que les changements de champ de vision dans les deux vidéos respectent les spécifications.

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

  • L'arrondi du cercle reste constant.
  • 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 %.

scene4/test_video_aspect_ratio_and_crop.py

Android 13 ajoute le test test_video_aspect_ratio_and_crop. Semblable au test test_aspect_ratio_and_crop pour les captures d'écran, ce test vérifie les formats vidéo compatibles pour s'assurer que les images vidéo ne sont pas étirées ni recadrées de manière inappropriée. Toutes les qualités vidéo déclarées sont testées. De plus, si la caméra est compatible avec 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 pris en charge. La taille et l'emplacement du cercle sont déterminés à partir de l'image de référence. Des vidéos courtes sont ensuite prises en charge avec toutes les qualités vidéo acceptées. La frame de référence finale est extraite de chaque qualité vidéo. À partir du cadre de référence, le champ de vision (FoV), 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 frame vidéo à la taille du cercle calculée à partir des tailles de l'image de référence et du format vidéo. Pour le test de recadrage, le centrage du frame vidéo est comparé à celui de l'image de référence. Pour vérifier les proportions, le test utilise la scène, qui est un grand cercle noir sur un fond blanc. Il détermine les proportions 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'à 1920 x 1080. 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 antérieures du contrôleur Arduino. Pour en savoir plus sur le nouveau contrôleur, consultez 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 à celle 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. La qualité vidéo basse résolution QCIF est exclue. Le test utilise le banc d'essai Sensor Fusion et nécessite le nouveau contrôleur Sensor Fusion de révision 2 ou une mise à niveau du micrologiciel des versions antérieures du contrôleur Arduino. Pour en savoir plus sur le nouveau contrôleur, consultez Mises à jour et ajouts matériels.

Méthode

Le banc d'essai déplace lentement le téléphone 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 à celle du gyroscope.

Mises à jour et ajouts de 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 inclut des modifications matérielles et du micrologiciel. La mise à niveau permet au contrôleur de définir la vitesse de rotation et le contrôle de l'éclairage. La mise à niveau inclut également un nouveau blindage (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 : Carte Arduino rev2.0 avec contrôle de la rotation et de l'éclairage

De plus, pour la version 13, le micrologiciel des contrôleurs existants doit être mis à jour pour permettre le contrôle de la vitesse de rotation. Ce micrologiciel peut être téléchargé à partir de :

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

Compatibilité avec les tests sur les appareils pliables

Android 13 inclut la prise en charge des tests pour 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