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 (Device Under Test, DUT) um ein faltbares Gerät handelt, ist in der Datei config.yml ein dritter zusätzlicher Parameter erforderlich, der sowohl den tabletbasierten als auch den Sensorfusion-Abschnitten 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 sich die Seitenverhältnisse unterscheiden.

scene2_a/test_faces.py

Der test_faces-Test wurde in test_num_faces umgestaltet.

scene2_a/test_num_faces.py

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

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 ordnungsgemäß 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 erforderlich, die mit Android 13 auf den Markt kommen, 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 dunkle Szenen den automatischen Blitz auslösen.
2_b test_yuv_jpg_capture_sameness 33 Bestätigt, dass YUV- und JPEG-Standbildaufnahmen bitweise identisch sind.

scene2_a/test_auto_flash.py

In Android 13 wurde der test_auto_flash-Test hinzugefügt.

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, dem eine Beleuchtungssteuerung für automatisierte Tests hinzugefügt wurde. Ein neuer Ordner mit Hilfsprogrammen, lighting_control_utils, zentralisiert den Code für die Steuerung der Beleuchtung in Tests.

scene2_a/test_yuv_jpeg_capture_sameness.py

In Android 13 wurde der test_yuv_jpeg_capture_sameness-Test hinzugefügt.

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 3D-RMS-Differenz (Root Mean Square) zwischen den beiden Bildern berechnet. Die Toleranz für die Differenz ist auf 1 % festgelegt.

Videotests

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

In Android 13 wurden die folgenden Tests hinzugefügt:

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

In Android 13 wurde der test_preview_stabilization_fov-Test hinzugefügt. Bei diesem Test werden die unterstützten Vorschaugrößen überprü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 mit deaktivierter Vorschau-Stabilisierung. 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 überprü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 %. Das bedeutet, dass sich das Sichtfeld um maximal 20 % ändert.

scene4/test_video_aspect_ratio_and_crop.py

In Android 13 wurde der test_video_aspect_ratio_and_crop-Test hinzugefügt. Ähnlich wie beim test_aspect_ratio_and_crop-Test für Standbildaufnahmen werden bei diesem Test die unterstützten Videoformate überprü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.

In Android 13 wurde die Methode get_available_video_qualities zu its_session_utils hinzugefügt. Um gemeinsamen Code mit vorhandenen Tests zu verwenden, enthält Android 13 außerdem zwei neue Hilfsfunktionen: 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

In Android 13 wurde der test_preview_stabilization-Test hinzugefügt, bei dem alle unterstützten Vorschauqualitäten bis zu 1920 × 1080 getestet werden. Für den Test wird der Sensorfusion Testaufbau verwendet und der neue Sensorfusion-Controller der Version 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

In Android 13 wurde der test_video_stabilization-Test hinzugefügt, 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 Sensorfusion Testaufbau verwendet und der neue Sensorfusion-Controller der Version 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 Sensorfusion-Controller der Version 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 Version 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 hier heruntergeladen werden:

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

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

Android 13 bietet Unterstützung für Tests auf faltbaren Geräten. Um die Multi-Camera 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 DUT mit dem Host verbunden wurde, um den Telefonstatus für alle DUTs, einschließlich nicht faltbarer Smartphones, abzurufen.

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