Versionshinweise für die Android 13 Camera Image Test Suite

Die Android 13-Version enthält eine Reihe von Änderungen am Kamera-ITS. Neben inkrementellen Änderungen wie aktualisierten Python- und Paketversionen sowie Testhardwareupdates unterstützt Android 13 Videotests.

Auf dieser Seite sind die Änderungen an der Kamera-ITS für Android 13 zusammengefasst. Die Änderungen lassen sich in sieben allgemeine Kategorien unterteilen:

Python- und Paketversionen

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

Ergänzungen zur Konfigurationsdatei

Da für den test_auto_flash.py-Test eine Beleuchtungssteuerung hinzugefügt wurde, sind in der config.yml-Datei zwei zusätzliche Parameter für den Controller und den Beleuchtungskanal erforderlich. Um festzustellen, ob das Testgerät faltbar ist, ist in der config.yml-Datei ein dritter zusätzlicher Parameter erforderlich, der sowohl dem Abschnitt für die tabletbasierte als auch der Sensorfusion 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

Der test_black_white-Test enthält eine Kanalüberlastungsprüfung, die mit früheren Android-Versionen übereinstimmt. Das bedeutet, dass Android 10 die erforderliche erste API-Ebene für die Kanalüberlastungsprüfung ist.

scene1_2/test_yuv_plus_raw.py

Der test_yuv_plus_raw-Test verarbeitet andere Sensoren als 16:9 oder 4:3, um eine bessere Unterstützung für RAW zu bieten. Wenn im 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 umstrukturiert.

scene2_a/test_num_faces.py

Der test_num_faces-Test berücksichtigt den Sensorausschnitt und platziert die Rechtecke für Gesichter korrekt auf zugeschnittenen Aufnahmen der Ultraweitwinkelkamera.

scene3/test_lens_position.py

Der test_lens_position-Test wird in Android 13 eingestellt.

Scene6/test_zoom.py

Der test_zoom-Test wurde refaktoriert, um das Testen von drei und vier Kamerasystemen zu vereinfachen. Wenn die Kamera bei einem Zoombereich mit einem 10-fachen Seitenverhältnis korrekt testet, wird der Test korrekt beendet. So können Zoomtests bei einer einzigen Diagrammdistanz durchgeführt werden.

scene_change/test_scene_change.py

Der test_scene_change-Test wird in Android 13 eingestellt.

Neue tabletbasierte Tests

Android 13 enthält zwei neue Tablet-basierte Tests. Beide Tests sind für Geräte erforderlich, die mit Android 13 auf den Markt gebracht werden, werden jedoch für Geräte mit einem Upgrade auf Android 13 übersprungen.

Szene Test name Erste API-Ebene Beschreibung
2_a test_auto_flash 33 Prüft, ob dunkle Szenen den automatischen Blitz auslösen.
2_b test_yuv_jpg_capture_sameness 33 Hiermit wird bestätigt, dass YUV- und JPEG-Aufnahmen bitweise identisch sind.

scene2_a/test_auto_flash.py

Mit Android 13 wird der Test test_auto_flash hinzugefügt.

Parameter

  • flash: Der Test wird übersprungen, wenn Flash nicht verfügbar ist.

Method

Beim Test wird die Aufnahmeanfrage für den automatischen Blitz konfiguriert und eine Szene angezeigt, für die ein Blitzereignis erforderlich ist. Die Beleuchtung im Testgerät und das Tablet ist ausgeschaltet, um ein dunkles Ambiente für den Algorithmus für die automatische Belichtung zu zeigen. Im Test wird eine Sequenz von NUM_FRAMES-Aufnahmen mit aktiviertem Auto-Blitz konfiguriert. Wenn die Einstellung AE_STATE den Wert FLASH_REQUIRED zurückgibt, wird durch den Test überprüft, ob bei den Aufnahmen ein Flash ausgelöst wird.

Die Beleuchtung kann bei Aufforderung manuell oder automatisch mit einem Arduino-Controller gesteuert werden, der für automatisierte Tests eine Beleuchtungssteuerung enthält. In einem neuen Dienstordner lighting_control_utils wird der Code zur Steuerung der Beleuchtung in Tests zentralisiert.

Szene2_a/test_yuv_jpeg_capture_sameness.py

Mit Android 13 wird der test_yuv_jpeg_capture_sameness-Test hinzugefügt.

Parameter

  • streamUseCase: Bestimmt, ob die Kamera den Streaming-Anwendungsfall unterstützt.
  • android.jpeg.quality: Die JPEG-Qualität wird auf 100 festgelegt.

Method

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

Videotests

Kamera ITS unterstützt jetzt Videotests in Android 13.

Mit Android 13 werden die folgenden Tests hinzugefügt:

Szene Test name Erste API-Ebene Beschreibung
4 test_preview_stabilization_fov 33 Die Videovorschau wird bei aktivierter Stabilisierung nicht zu stark zugeschnitten.
4 test_video_aspect_ratio_and_crop 33 Bestätigt Videoformate Bildformat, Seitenverhältnis und Zuschneiden.
sensor_fusion test_preview_stabilition 33 Die Funktion „Stabilisierung in der Vorschau“ funktioniert.
Sensorfusion test_video_stabilition 33 Bestätigt, dass die Videostabilisierung funktioniert.

scene4/test_preview_stabilization_fov.py

Mit Android 13 wird der test_preview_stabilization_fov-Test hinzugefügt. Bei diesem Test werden die unterstützten Vorschaugrößen geprüft, um sicherzustellen, dass das Sichtfeld nicht unangemessen zugeschnitten wird.

Method

Dabei werden zwei Videos aufgenommen, eines mit aktivierter und eines mit deaktivierter Vorschaustabilisierung. Aus jedem Video wird ein repräsentativer Frame ausgewählt und analysiert, um sicherzustellen, dass sich das Sichtfeld in den beiden Videos innerhalb der Spezifikationen ändert.

Im Test werden insbesondere die folgenden Parameter mit und ohne Stabilisierung der Vorschau überprüft:

  • Die Rundung des Kreises bleibt konstant.
  • Die Mitte des Kreises bleibt dabei unverändert.
  • Die Größe des Kreises ändert sich um nicht mehr um 20%, was bedeutet, dass sich der FoV um höchstens 20 % ändert.

scene4/test_video_aspect_ratio_and_crop.py

Mit Android 13 wird der test_video_aspect_ratio_and_crop-Test hinzugefügt. Ähnlich wie beim test_aspect_ratio_and_cropTest für Standbilder wird bei diesem Test geprüft, ob die unterstützten Videoformate die Videoframes nicht unangemessen strecken oder zuschneiden. Alle selbst gemeldeten Videoqualitäten werden getestet. Wenn die Kamera HLG10-Videos unterstützt, wird zusätzlich 10-Bit-Video getestet.

In Android 13 wird its_session_utils die Methode get_available_video_qualities hinzugefügt. Damit Sie gemeinsamen Code mit vorhandenen Tests teilen können, enthält Android 13 außerdem zwei neue Dienstfunktionen: image_fov_utils und video_processing_utils.

Method

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. Anhand des Referenzbilds werden die Größe und Position des Kreises bestimmt. Die kurzen Videos werden dann in allen unterstützten Videoqualitäten aufgenommen. Der endgültige Referenzframe wird aus jeder Videoqualität extrahiert. Anhand des Referenzframes werden für jede Videoqualität das Sichtfeld, die Zentrierung (Zuschnitt) und das Seitenverhältnis berechnet.

Für die FoV-Berechnung wird im Test die Kreisgröße des Videoframes mit der berechneten Kreisgröße aus den Größen des Referenzbilds und des Videoformats verglichen. Bei der Prüfung der Bildausschnitte wird die Zentrierung des Videoframes mit der Zentrierung des Referenzbilds verglichen. Bei der Prüfung des Seitenverhältnisses wird anhand der Szene, die einen großen schwarzen Kreis auf weißem Hintergrund zeigt, das Seitenverhältnis des Kreises ermittelt und geprüft, ob der Frame nicht verzerrt ist.

sensor_fusion/test_preview_stabilization.py

Mit Android 13 wird der Test test_preview_stabilization hinzugefügt, mit dem alle unterstützten Vorschauqualitäten bis zu 1920 x 1080 getestet werden. Für den Test wird das Testgestell für die Sensorfusion verwendet. Er erfordert den neuen Sensorfusionscontroller der Version 2 oder ein Firmware-Upgrade älterer Arduino-Controllerversionen. Weitere Informationen zum neuen Controller finden Sie unter Hardwareupdates und ‑erweiterungen.

Method

Das Smartphone wird bei aktivierter Vorschaustabilisierung langsam über einen Winkel von etwa 15 Grad bewegt. Die Drehung der Bilder wird dann mit der Drehung des Gyroskops verglichen.

sensor_fusion/test_video_stabilization.py

Mit Android 13 wird der Test test_video_stabilization hinzugefügt, mit dem unterstützte Videoqualitäten bis zu 1920 x 1080 getestet werden. Die niedrige Auflösung von QCIF ist ausgeschlossen. Für den Test wird das Sensor Fusion Test Rig verwendet. Er erfordert den neuen Sensor Fusion Controller der Version 2 oder ein Firmware-Upgrade älterer Arduino-Controller-Versionen. Weitere Informationen zum neuen Controller finden Sie unter Hardware-Updates und -Ergänzungen.

Method

Auf dem Prüfstand wird das Smartphone langsam über einen Winkel von etwa 15 Grad bewegt, wobei die Vorschaustabilisierung aktiviert ist. Die Drehung der Bilder wird dann mit der Drehung des Gyroskops verglichen.

Hardwareupdates und -erweiterungen

Android 13 enthält ein Upgrade auf den Arduino-basierten Sensorfusionscontroller der Version 2. Dieses Upgrade umfasst sowohl Hardware- als auch Firmwareänderungen. Durch das Upgrade können Sie mit dem Controller die Drehgeschwindigkeit und die Beleuchtungssteuerung einstellen. Das Upgrade umfasst auch ein neues Schild (siehe Abbildung 1), das drei Kanäle für die Drehung und drei Kanäle für die Beleuchtungssteuerung bietet.

Arduino Shield Version 2.0

Abbildung 1. Arduino-Shield rev2.0 mit Dreh- und Beleuchtungssteuerung

Außerdem muss für Version 13 die Firmware vorhandener Controller aktualisiert werden, um die Drehgeschwindigkeit steuern zu können. Diese Firmware kann heruntergeladen werden von:

Weitere Informationen zum neuen Controller findest du unter Android 13 Sensor Fusion Controller.

Support für Tests von faltbaren Geräten

Android 13 bietet Testsupport für faltbare Geräte. Zum Aktivieren der API für mehrere Kameras für faltbare Geräte ist während des Tests der Smartphonestatus (Folded oder Unfolded) erforderlich. Um die Abfrage des Telefonstatus für alle DUTs, einschließlich nicht faltbarer Smartphones, zu aktivieren, führen Sie den folgenden ADB-Befehl aus, nachdem der DUT mit dem Host verbunden ist.

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