Versionshinweise für die Android 13 Camera Image Test Suite

Das Android 13-Release enthält eine Reihe von Änderungen an Camera ITS. Neben inkrementellen Änderungen wie aktualisierten Python- und Paketversionen und Test-Hardware-Updates unterstützt Android 13 auch Videotests.

Auf dieser Seite werden die Änderungen an Camera ITS für Android 13 zusammengefasst. Die Änderungen lassen sich in sieben Kategorien unterteilen:

Python- und Paketversionen

Android 13 unterstützt zusätzlich zu den in Android 12 unterstützten Python-Versionen und ‑Bibliotheken die folgenden Python-Versionen:

Ergänzungen der Konfigurationsdatei

Aufgrund der Hinzufügung der Beleuchtungssteuerung für den test_auto_flash.py-Test benötigt die Datei config.yml zwei zusätzliche Parameter für den Controller und den Beleuchtungskanal. Um zu ermitteln, ob es sich bei dem zu testenden Gerät um ein faltbares Gerät handelt, ist in der Datei config.yml ein dritter zusätzlicher Parameter erforderlich, der sowohl im tabletbasierten als auch im Sensorfusionsabschnitt hinzugefügt werden muss.

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

Änderungen an Tests

scene1_1/test_black_white.py

Der test_black_white-Test enthält eine Überprüfung der Kanalsättigung, die mit früheren Android-Versionen übereinstimmt. Das bedeutet, dass das erforderliche erste API-Level für die Überprüfung der Kanalsättigung Android 10 ist.

scene1_2/test_yuv_plus_raw.py

Der test_yuv_plus_raw-Test verarbeitet Sensoren, die nicht im Format 16:9 oder 4:3 vorliegen, um eine bessere Unterstützung für RAW zu bieten. Wenn der Test kein gemeinsames Format zwischen dem RAW-Format des Sensors und den YUV-Aufnahmeformaten findet, vergleicht er die RAW-Aufnahme mit der größten YUV-Aufnahme, auch wenn die Seitenverhältnisse unterschiedlich sind.

scene2_a/test_faces.py

Der test_faces-Test wurde in test_num_faces umbenannt.

scene2_a/test_num_faces.py

Der test_num_faces-Test verarbeitet den Sensorzuschnitt und platziert die Gesichtsrechtecke korrekt auf zugeschnittenen UW-Kameraaufnahmen.

scene3/test_lens_position.py

Der test_lens_position-Test wird in Android 13 nicht mehr unterstützt.

scene6/test_zoom.py

Der test_zoom-Test wurde umgestaltet, um das Testen von Systemen mit drei und vier Kameras zu vereinfachen. Wenn die Kameratests in einem 10-fachen Zoomverhältnis korrekt ausgeführt werden, wird der Test korrekt beendet. So können Zoomtests in einem einzigen Diagrammabstand durchgeführt werden.

scene_change/test_scene_change.py

Der test_scene_change-Test wird in Android 13 nicht mehr unterstützt.

Neue tabletbasierte Tests

Android 13 enthält zwei neue tabletbasierte Tests. Beide Tests sind für Geräte mit Android 13 vorgeschrieben, werden aber für Geräte übersprungen, die auf Android 13 aktualisiert werden.

Szene Test name Erstes API-Level Beschreibung
2_a test_auto_flash 33 Bestätigt, dass bei dunklen Szenen der automatische Blitz ausgelöst wird.
2_b test_yuv_jpg_capture_sameness 33 Bestätigt, dass YUV- und JPEG-Standbildaufnahmen bitweise identisch sind.

scene2_a/test_auto_flash.py

Android 13 enthält den test_auto_flash-Test.

Parameter

  • flash: Überspringt den Test, wenn kein Blitz verfügbar ist.

Methode

Der Test konfiguriert die Aufnahmeanfrage für den automatischen Blitz und präsentiert eine Szene, die ein Blitzereignis erfordert. Die Beleuchtung im Testaufbau und auf dem Tablet wird ausgeschaltet, um eine dunkle Szene für den Algorithmus für die automatische Belichtung zu präsentieren. Der Test konfiguriert eine Sequenz von NUM_FRAMES-Aufnahmen mit aktiviertem automatischen Blitz. Wenn die Einstellung AE_STATE den Wert FLASH_REQUIRED zurückgibt, überprüft der Test, ob bei den Aufnahmen ein Blitz ausgelöst wurde.

Die Beleuchtung kann bei Aufforderung manuell gesteuert werden oder automatisch mit einem Arduino-Controller mit Beleuchtungssteuerung für automatisierte Tests. Ein neuer Ordner mit Dienstprogrammen, lighting_control_utils, zentralisiert den Code für die Steuerung der Beleuchtung in Tests.

scene2_a/test_yuv_jpeg_capture_sameness.py

Android 13 enthält den test_yuv_jpeg_capture_sameness-Test.

Parameter

  • streamUseCase: Bestimmt, ob die Kamera den Stream-Anwendungsfall unterstützt.
  • android.jpeg.quality: Legt die JPEG-Qualität auf 100 fest.

Methode

Bei diesem Test werden zwei Bilder mit den größten gemeinsamen YUV- und JPEG-Formaten mit demselben Seitenverhältnis wie das größte JPEG-Format aufgenommen, wobei eine Auflösung von 1920 × 1440 nicht überschritten werden darf. Der Test legt jpeg.quality auf 100 fest und erfasst eine Anfrage mit zwei Oberflächen. Anschließend werden beide Bilder in RGB-Arrays konvertiert und die dreidimensionale quadratische Abweichung (RMS) zwischen den beiden Bildern berechnet. Die Toleranz für die Abweichung ist auf 1 % festgelegt.

Videotests

Camera ITS unterstützt in Android 13 jetzt auch Videotests.

Android 13 enthält die folgenden Tests:

Szene Test name Erstes API-Level Beschreibung
4 test_preview_stabilization_fov 33 Bestätigt, dass die Videovorschau bei aktivierter Stabilisierung nicht zu stark zugeschnitten wird.
4 test_video_aspect_ratio_and_crop 33 Bestätigt das Sichtfeld, das Seitenverhältnis und den Zuschnitt von Videoformaten.
sensor_fusion test_preview_stabilition 33 Bestätigt, dass die Vorschau-Stabilisierung funktioniert.
sensor_fusion test_video_stabilition 33 Bestätigt, dass die Videostabilisierung funktioniert.

scene4/test_preview_stabilization_fov.py

Android 13 enthält den test_preview_stabilization_fov-Test. Bei diesem Test werden die unterstützten Vorschaugrößen geprüft, um sicherzustellen, dass das Sichtfeld nicht unangemessen zugeschnitten wird.

Methode

Bei diesem Test werden zwei Videos aufgenommen, eines mit aktivierter Vorschau-Stabilisierung und eines ohne. Aus jedem Video wird ein repräsentativer Frame ausgewählt und analysiert, um sicherzustellen, dass die Änderungen des Sichtfelds in den beiden Videos den Spezifikationen entsprechen.

Insbesondere werden bei diesem Test die folgenden Parameter mit und ohne Vorschau-Stabilisierung geprüft:

  • Die Rundheit des Kreises bleibt konstant.
  • Der Mittelpunkt des Kreises bleibt stabil.
  • Die Größe des Kreises ändert sich um nicht mehr als 20%, was bedeutet, dass sich das Sichtfeld um maximal 20 % ändert.

scene4/test_video_aspect_ratio_and_crop.py

Android 13 enthält den test_video_aspect_ratio_and_crop-Test. Ähnlich wie beim test_aspect_ratio_and_crop-Test für Standbildaufnahmen werden bei diesem Test die unterstützten Videoformate geprüft, um sicherzustellen, dass die Videoframes nicht unangemessen gestreckt oder zugeschnitten werden. Alle selbst gemeldeten Videoqualitäten werden getestet. Wenn die Kamera außerdem HLG10-Videos unterstützt, werden 10-Bit-Videos getestet.

Android 13 fügt its_session_utils die Methode get_available_video_qualities hinzu. Um gemeinsamen Code mit vorhandenen Tests zu verwenden, enthält Android 13 auch zwei neue Dienstprogrammfunktionen: image_fov_utils und video_processing_utils.

Methode

Bei diesem Test wird ein Referenzbild im RAW-Format oder im JPEG-Format mit der höchsten Auflösung aufgenommen, wenn RAW nicht unterstützt wird. Aus dem Referenzbild werden die Größe und die Position des Kreises bestimmt. Anschließend werden kurze Videos mit allen unterstützten Videoqualitäten aufgenommen. Der letzte Referenzframe wird aus jeder Videoqualität extrahiert. Aus dem Referenzframe werden das Sichtfeld, die Zentrierung (Zuschnitt) und das Seitenverhältnis für jede Videoqualität berechnet.

Für die Berechnung des Sichtfelds vergleicht der Test die Kreisgröße des Videoframes mit der berechneten Kreisgröße aus dem Referenzbild und den Größen des Videoformats. Für die Überprüfung des Zuschnitts vergleicht der Test die Zentrierung des Videoframes mit der Zentrierung des Referenzbilds. Für die Überprüfung des Seitenverhältnisses wird die Szene verwendet, die einen großen schwarzen Kreis auf weißem Hintergrund zeigt. Der Test bestimmt das Seitenverhältnis des Kreises und überprüft, ob der Frame nicht verzerrt ist.

sensor_fusion/test_preview_stabilization.py

Android 13 enthält den test_preview_stabilization-Test, bei dem alle unterstützten Vorschauqualitäten bis zu 1920 × 1080 getestet werden. Für den Test wird der Sensorfusions-Testaufbau verwendet und der neue Sensorfusions-Controller der Revision 2 oder ein Firmware-Upgrade früherer Arduino-Controller-Versionen ist erforderlich. Weitere Informationen zum neuen Controller finden Sie unter Hardware-Updates und ‑Ergänzungen.

Methode

Das Smartphone wird langsam in einem Winkel von etwa 15 Grad bewegt, wobei die Vorschau-Stabilisierung aktiviert ist. Die Drehung der Bilder wird dann mit der Drehung des Gyroskops verglichen.

sensor_fusion/test_video_stabilization.py

Android 13 enthält den test_video_stabilization-Test, bei dem unterstützte Videoqualitäten bis zu 1920 × 1080 getestet werden. Die QCIF-Videoqualität mit niedriger Auflösung ist ausgeschlossen. Für den Test wird der Sensorfusions-Testaufbau verwendet und der neue Sensorfusions-Controller der Revision 2 oder ein Firmware-Upgrade früherer Arduino-Controller-Versionen ist erforderlich. Weitere Informationen zum neuen Controller finden Sie unter Hardware-Updates und ‑Ergänzungen.

Methode

Der Testaufbau bewegt das Smartphone langsam in einem Winkel von etwa 15 Grad, wobei die Vorschau-Stabilisierung aktiviert ist. Die Drehung der Bilder wird dann mit der Drehung des Gyroskops verglichen.

Hardware-Updates und -Ergänzungen

Android 13 enthält ein Upgrade auf den Arduino-basierten Sensorfusions-Controller der Revision 2. Dieses Upgrade umfasst sowohl Hardware- als auch Firmware-Änderungen. Mit dem Upgrade kann der Controller die Drehgeschwindigkeit und die Beleuchtungssteuerung festlegen. Das Upgrade umfasst auch ein neues Shield (siehe Abbildung 1), das drei Kanäle für die Drehsteuerung und drei Kanäle für die Beleuchtungssteuerung bietet.

Arduino-Shield Rev. 2.0

Abbildung 1 : Arduino-Shield der Revision 2.0 mit Dreh- und Beleuchtungssteuerung.

Außerdem muss für Android 13 die Firmware vorhandener Controller aktualisiert werden, um die Drehgeschwindigkeitssteuerung zu aktivieren. Diese Firmware kann über den Android 13-Arduino-Mikrocode VarSpeedServo_and_lighting_control.ino heruntergeladen werden.

Weitere Informationen zum neuen Controller finden Sie unter Sensorfusions-Controller für Android 13.

Unterstützung für Tests auf faltbaren Geräten

Android 13 unterstützt Tests auf faltbaren Geräten. Um die Multi-Kamera-API für faltbare Geräte zu aktivieren, ist während des Tests der Telefonstatus (Folded oder Unfolded) erforderlich. Führen Sie den folgenden ADB-Befehl aus, nachdem das zu testende Gerät mit dem Host verbunden wurde, um den Telefonstatus für alle zu testenden Geräte, einschließlich nicht faltbarer Smartphones, abzurufen:

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