Notes de version de la suite de tests d’images de caméra Android 13

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

Cette page résume les modifications apportées à Camera ITS pour Android 13. Les modifications se répartissent en sept grandes catégories :

Versions de Python et des packages

Android 13 prend en charge les versions Python suivantes en plus des versions et bibliothèques Python prises en charge dans Android 12 :

Ajouts de fichiers de configuration

En raison de l'ajout du contrôle d'é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 de fusion de tablette et de capteur.

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

scène1_1/test_black_white.py

Le test test_black_white effectue une vérification de la saturation des canaux cohérente avec les 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.

scène1_2/test_yuv_plus_raw.py

Le test test_yuv_plus_raw gère les capteurs non 16:9 ou 4:3 pour offrir une meilleure prise en charge du RAW. Si le test ne parvient pas à trouver un format commun entre le format RAW du capteur et les formats de capture YUV, le test compare la capture RAW à la plus grande capture YUV même si les proportions sont différentes.

scene2_a/test_faces.py

Le 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 du visage sur les captures de la caméra UW qui sont recadrées.

scène3/test_lens_position.py

Le test test_lens_position est obsolète dans Android 13.

scène6/test_zoom.py

Le test test_zoom a été remanié pour permettre de tester plus facilement les systèmes à trois et quatre caméras. Si la caméra teste correctement sur une plage de rapport 10x en zoom, le test se termine correctement. Cela permet d'effectuer des tests de zoom à une seule distance de la carte.

scene_change/test_scene_change.py

Le test test_scene_change est obsolète dans Android 13.

Nouveaux tests sur tablette

Android 13 comprend deux nouveaux tests sur 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 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 fixes YUV et JPEG sont 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 demande de capture pour le flash automatique et présente une scène nécessitant un événement flash. L'éclairage du banc d'essai et de la tablette est éteint pour présenter une scène sombre pour l'algorithme d'exposition automatique. Le test configure une séquence de NUM_FRAMES captures 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 contrôle d'éclairage ajouté pour des tests automatisés. Un nouveau dossier utilitaire lighting_control_utils centralise le code de contrôle de 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 prend en charge 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 plus grands formats YUV et JPEG courants avec le même rapport hauteur/largeur que le plus grand format JPEG ne dépassant pas une résolution de 1920 x 1440. Le test définit jpeg.quality sur 100 et capture une demande de double surface. Il convertit ensuite les deux images en tableaux RVB et calcule la différence quadratique moyenne (RMS) 3D entre les deux images. La tolérance de différence est fixée à 1 %.

Test 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 API Description
4 test_preview_stabilization_fov 33 Confirme que l'aperçu vidéo n'est pas trop recadré avec la stabilisation activée.
4 test_video_aspect_ratio_and_crop 33 Confirme les formats vidéo FoV, le rapport hauteur/largeur et le recadrage.
capteur_fusion test_preview_stabilition 33 Confirme que la stabilisation en aperçu fonctionne.
capteur_fusion test_video_stabilité 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 prises en charge pour garantir que le FoV n'est pas recadré de manière inappropriée.

Méthode

Le test capture deux vidéos, une avec la stabilisation de prévisualisation activée et une avec la stabilisation de prévisualisation désactivée. Une image représentative est sélectionnée dans chaque vidéo et analysée pour garantir que les changements de FoV dans les 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 prévisualisation :

  • 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 FoV change d'au plus 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 fixes, ce test vérifie les formats vidéo pris en charge pour garantir 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 comprend é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 de résolution la plus élevée si RAW n'est pas pris en charge. A partir de l'image de référence, la taille et l'emplacement du cercle sont déterminés. De courtes vidéos sont ensuite prises avec toutes les qualités vidéo prises en charge. L'image 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 rapport hauteur/largeur sont calculés pour chaque qualité vidéo.

Pour le calcul du FoV, le test compare la taille du cercle de l'image 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 contrôle du recadrage, le test compare le centrage de l'image vidéo au centrage de l'image de référence. Pour la vérification du rapport hauteur/largeur, en utilisant la scène, qui est un grand cercle noir sur fond blanc, le test détermine le rapport hauteur/largeur 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 prises en charge 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 révision 2 ou une mise à niveau du micrologiciel des versions antérieures du contrôleur Arduino. Pour plus de détails sur le nouveau contrôleur, consultez Mises à jour et ajouts de matériel .

Méthode

Le téléphone se déplace lentement sur un angle d'environ 15 degrés avec la stabilisation de prévisualisation 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 prises en charge jusqu'à 1920 x 1080. 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 révision 2 ou une mise à niveau du micrologiciel des versions antérieures du contrôleur Arduino. Pour plus de détails sur le nouveau contrôleur, consultez Mises à jour et ajouts de matériel .

Méthode

Le banc de test déplace lentement le téléphone sur un angle d'environ 15 degrés avec la stabilisation de prévisualisation activée. La rotation des images est ensuite comparée à la rotation du gyroscope.

Mises à jour et ajouts de matériel

Android 13 inclut une mise à niveau du contrôleur de fusion de capteurs révision 2 basé sur Arduino. Cette mise à niveau inclut des modifications matérielles et micrologicielles. La 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é sur la figure 1), qui fournit trois canaux de rotation et trois canaux de contrôle d'éclairage.

Bouclier Arduino rev2.0

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

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

Pour plus d'informations sur le nouveau contrôleur, consultez Contrôleur de fusion de capteurs Android 13 .

Support de test pliable

Android 13 inclut la prise en charge des tests pour les appareils pliables. Pour activer l' API multi-caméras pour les 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 le DUT connecté à l'hôte.

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