Versionshinweise für die Android 13 Camera Image Test Suite

Das Android 13-Release enthält eine Reihe von Änderungen an den ITS-Tests für Kameras. Neben inkrementellen Änderungen wie aktualisierten Python- und Paketversionen und Updates der Testhardware unterstützt Android 13 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 zusätzlichen Beleuchtungssteuerung für den test_auto_flash.py-Test sind in der Datei config.yml zwei zusätzliche Parameter für den Controller und den Beleuchtungskanal erforderlich. Um festzustellen, ob es sich bei dem zu testenden Gerät (DUT) um ein faltbares Gerät handelt, ist in der Datei config.yml ein dritter zusätzlicher Parameter erforderlich, der sowohl dem Tablet-basierten als auch dem Sensor-Fusion-Abschnitt 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 testen

scene1_1/test_black_white.py

Beim test_black_white-Test wird die Channelsättigung wie in früheren Android-Versionen geprüft. Das bedeutet, dass das erforderliche erste API-Level für die Channelsättigungsprüfung Android 10 ist.

scene1_2/test_yuv_plus_raw.py

Der test_yuv_plus_raw-Test berücksichtigt Sensoren, die nicht im Format 16:9 oder 4:3 sind, um RAW besser zu unterstützen. Wenn beim Test kein gemeinsames Format zwischen dem RAW-Format des Sensors und den YUV-Aufnahmeformaten gefunden werden kann, wird die RAW-Aufnahme mit der größten YUV-Aufnahme verglichen, auch wenn die Seitenverhältnisse unterschiedlich sind.

scene2_a/test_faces.py

test_faces wird in test_num_faces umgestaltet.

scene2_a/test_num_faces.py

Der test_num_faces-Test berücksichtigt das Zuschneiden von Sensoren und platziert die Gesichtsrechtecke korrekt auf UW-Kameraaufnahmen, die zugeschnitten sind.

scene3/test_lens_position.py

Der Test test_lens_position ist in Android 13 veraltet.

scene6/test_zoom.py

Der test_zoom-Test wurde überarbeitet, um das Testen von Systemen mit drei und vier Kameras zu vereinfachen. Wenn die Kamera in einem Zoom-Bereich von 10 × korrekt getestet wird, wird der Test ordnungsgemäß beendet. So können Zoomtests in einem einzigen Diagrammabstand durchgeführt werden.

scene_change/test_scene_change.py

Der Test test_scene_change ist in Android 13 veraltet.

Neue tabletbasierte Tests

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

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

scene2_a/test_auto_flash.py

Unter Android 13 wird der test_auto_flash-Test eingeführt.

Parameter

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

Methode

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

Die Beleuchtung kann bei Bedarf manuell oder automatisch über einen Arduino-Controller mit Beleuchtungssteuerung für automatisierte Tests gesteuert werden. In einem neuen Dienstprogrammordner lighting_control_utils wird der Code zur Steuerung der Beleuchtung in Tests zentralisiert.

scene2_a/test_yuv_jpeg_capture_sameness.py

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

Parameter

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

Methode

Bei diesem Test werden zwei Bilder im größten gemeinsamen YUV- und JPEG-Format mit demselben Seitenverhältnis wie das größte JPEG-Format aufgenommen, das eine Auflösung von 1920 × 1440 nicht überschreitet. Im Test wird jpeg.quality auf 100 gesetzt und eine Dual-Surface-Anfrage erfasst. Anschließend werden beide Bilder in RGB-Arrays konvertiert und die dreidimensionale RMS-Differenz (Root Mean Square) zwischen den beiden Bildern wird berechnet. Die Differenztoleranz ist auf 1 % festgelegt.

Videotests

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

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 das Zuschneiden von Videoformaten.
sensor_fusion test_preview_stabilition 33 Bestätigt, dass die Vorschau stabilisiert wird.
sensor_fusion test_video_stabilition 33 Bestätigt, dass die Videostabilisierung funktioniert.

scene4/test_preview_stabilization_fov.py

Unter Android 13 wurde der test_preview_stabilization_fov-Test hinzugefügt. Bei diesem Test werden die unterstützten Vorschaubilder geprüft, um sicherzustellen, dass das Sichtfeld nicht unangemessen zugeschnitten wird.

Methode

Beim Test werden zwei Videos aufgenommen: eines mit aktivierter und eines mit deaktivierter Vorschau-Stabilisierung. Aus jedem Video wird ein repräsentatives Bild ausgewählt und analysiert, um sicherzustellen, dass die Änderungen des Sichtfelds in den beiden Videos den Spezifikationen entsprechen.

Im Test werden die folgenden Parameter mit und ohne Vorschau-Stabilisierung geprüft:

  • Die Rundheit des Kreises bleibt konstant.
  • Die Mitte des Kreises bleibt stabil.
  • Die Größe des Kreises ändert sich um höchstens 20%, was bedeutet, dass sich das Sichtfeld um höchstens 20 % ändert.

scene4/test_video_aspect_ratio_and_crop.py

Unter Android 13 wurde der test_video_aspect_ratio_and_crop-Test hinzugefügt. Ähnlich wie beim test_aspect_ratio_and_crop-Test für Standbilder wird bei diesem Test geprüft, ob die unterstützten Videoformate korrekt dargestellt werden und die Videoframes nicht unangemessen gestreckt oder zugeschnitten werden. Alle selbst gemeldeten Videoqualitäten werden getestet. Wenn die Kamera HLG10-Video unterstützt, wird außerdem 10‑Bit-Video getestet.

In Android 13 wird die Methode get_available_video_qualities der Klasse its_session_utils hinzugefügt. Um gemeinsamen Code mit vorhandenen Tests zu teilen, enthält Android 13 auch zwei neue Dienstfunktionen, image_fov_utils und video_processing_utils.

Methode

Beim Test wird ein Referenzbild im RAW-Format oder im JPEG-Format mit der höchsten Auflösung aufgenommen, falls RAW nicht unterstützt wird. Aus dem Referenzbild werden die Größe und Position des Kreises bestimmt. Kurze Videos werden dann in allen unterstützten Videoqualitäten aufgenommen. Der endgültige Referenzframe wird aus jeder Videoqualität extrahiert. Aus dem Referenzframe werden für jede Videoqualität das Sichtfeld, die Zentrierung (Zuschneiden) und das Seitenverhältnis berechnet.

Bei der Berechnung des Sichtfelds wird die Größe des Kreises im Videobild mit der berechneten Kreisgröße aus dem Referenzbild und den Größen des Videoformats verglichen. Beim Crop-Check wird die Zentrierung des Videobilds mit der Zentrierung des Referenzbilds verglichen. Beim Test des Seitenverhältnisses wird anhand der Szene, die einen großen schwarzen Kreis auf weißem Hintergrund zeigt, das Seitenverhältnis des Kreises bestimmt und geprüft, ob das Bild verzerrt ist.

sensor_fusion/test_preview_stabilization.py

Unter Android 13 wird 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 die Sensorfusion-Testvorrichtung verwendet. Außerdem ist die neue Sensorfusion-Steuerung der Revision 2 oder ein Firmware-Upgrade früherer Arduino-Controller-Versionen erforderlich. Weitere Informationen zum neuen Controller finden Sie unter Hardware-Updates und ‑Ergänzungen.

Methode

Das Smartphone wird langsam über einen Winkel von etwa 15 Grad bewegt. Die Vorschau-Stabilisierung ist aktiviert. Die Drehung der Bilder wird dann mit der Drehung des Gyroskops verglichen.

sensor_fusion/test_video_stabilization.py

Unter Android 13 wird der test_video_stabilization-Test hinzugefügt, mit dem unterstützte Videoqualitäten bis zu 1920 × 1080 getestet werden. QCIF-Videos mit niedriger Auflösung sind ausgeschlossen. Für den Test wird die Sensorfusion-Testvorrichtung verwendet. Außerdem ist die neue Sensorfusion-Steuerung der Revision 2 oder ein Firmware-Upgrade früherer Arduino-Controller-Versionen erforderlich. Weitere Informationen zum neuen Controller finden Sie unter Hardware-Updates und ‑Ergänzungen.

Methode

Das Testgerät bewegt das Smartphone langsam über einen 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 umfasst ein Upgrade auf den Arduino-basierten Sensor-Fusion-Controller der Revision 2. Dieses Upgrade umfasst sowohl Hardware- als auch Firmware-Änderungen. Durch das Upgrade kann der Controller die Drehzahl und die Beleuchtung steuern. Das Upgrade umfasst auch ein neues Schild (siehe Abbildung 1) mit drei Rotations- und drei Beleuchtungskanälen.

Arduino-Shield Rev. 2.0

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

Außerdem muss für Version 13 die Firmware vorhandener Controller aktualisiert werden, um die Steuerung der Drehzahl zu ermöglichen. Diese Firmware kann unter folgender Adresse heruntergeladen werden:

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

Support 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 der Telefonstatus (Folded oder Unfolded) während des Tests erforderlich. Wenn Sie das Abrufen des Telefonstatus für alle Testgeräte, einschließlich nicht faltbarer Smartphones, aktivieren möchten, führen Sie den folgenden ADB-Befehl aus, nachdem das Testgerät mit dem Host verbunden wurde.

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