Versionshinweise für die Android 13 Camera Image Test Suite

Der Android 13-Release enthält eine Reihe von Änderungen an Camera ITS. Neben inkrementellen Änderungen wie aktualisierten Python- und Paketversionen und Updates der Testhardware 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

Unter Android 13 werden neben den in Android 12 unterstützten Python-Versionen und ‑Bibliotheken auch die folgenden Python-Versionen unterstützt:

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 Bereich 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 unterstützt Sensoren, die nicht 16:9 oder 4:3 sind, um RAW-Dateien besser zu verarbeiten. 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 überarbeitet, um das Testen von Systemen mit drei und vier Kameras zu vereinfachen. Wenn die Kamera bei einem Zoomfaktor von 10:1 korrekt funktioniert, wird der Test 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 tabletbasierte Tests. Beide Tests sind für Geräte erforderlich, die mit Android 13 auf den Markt gebracht werden, werden aber für Geräte übersprungen, die auf Android 13 umgestellt werden.

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 Prüft, ob YUV- und JPEG-Standbilder bitweise identisch sind.

scene2_a/test_auto_flash.py

Mit Android 13 wurde der test_auto_flash-Test 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 Testaufbau und auf dem Tablet ist ausgeschaltet, um dem Algorithmus für die automatische Belichtung eine dunkle Szene zu präsentieren. Im Test wird eine Sequenz von NUM_FRAMES-Aufnahmen mit aktiviertem Auto-Blitz konfiguriert. Wenn für die Einstellung AE_STATE der Wert FLASH_REQUIRED zurückgegeben wird, wird im Test geprüft, ob bei den Aufnahmen ein Blitz 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.

scene2_a/test_yuv_jpeg_capture_sameness.py

Mit Android 13 wurde 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 mit den größten gängigen YUV- und JPEG-Formaten mit demselben Seitenverhältnis wie das größte JPEG-Format aufgenommen, wobei die Auflösung 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

Mit der Kamera-ITS-Funktion wird die Unterstützung für Videotests in Android 13 hinzugefügt.

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 das Sichtfeld, das Seitenverhältnis und das Zuschneiden von Videoformaten.
sensor_fusion test_preview_stabilition 33 Prüft, ob die Stabilisierung der Vorschau funktioniert.
sensor_fusion test_video_stabilition 33 Prüft, ob die Videostabilisierung funktioniert.

scene4/test_preview_stabilization_fov.py

Mit Android 13 wurde 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 stabil.
  • Die Größe des Kreises ändert sich um maximal 20%, was einer Änderung des Sichtfelds von maximal 20 % entspricht.

scene4/test_video_aspect_ratio_and_crop.py

Mit Android 13 wurde 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 verwendet werden und ob die Videoframes nicht unangemessen gestreckt oder zugeschnitten werden. 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. Kurzvideos 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.

Bei der Berechnung des Sichtfelds wird der Kreisdurchmesser des Videoframes mit dem berechneten Kreisdurchmesser aus dem Referenzbild und den Videoformatgrößen 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 darstellt, 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_preview_stabilization-Test hinzugefügt, mit dem alle unterstützten Vorschauqualitäten bis zu 1920 x 1080 getestet werden. Für den Test wird das Testgerät 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 langsam über einen Winkel von etwa 15 Grad bewegt, wobei die Stabilisierung der Vorschau aktiviert ist. Die Drehung der Bilder wird dann mit der Drehung des Gyroskops verglichen.

sensor_fusion/test_video_stabilization.py

Mit Android 13 wurde der test_video_stabilization-Test hinzugefügt, mit dem unterstützte Videoqualitäten bis zu 1920 x 1080 getestet werden. Videos mit niedriger Auflösung (QCIF) sind 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 Hardwareupdates und ‑erweiterungen.

Method

Im Testgestell 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 kann der Controller die Drehgeschwindigkeit und die Beleuchtungssteuerung einstellen. Das Upgrade umfasst auch ein neues Schild (siehe Abbildung 1), das drei Drehkanäle und drei Beleuchtungskanäle bietet.

Arduino-Shield rev2.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 hier heruntergeladen werden:

Weitere Informationen zum neuen Controller finden Sie unter Sensorfusionscontroller von Android 13.

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

Android 13 unterstützt Tests für faltbare Geräte. Wenn Sie die Multi-Camera API für faltbare Geräte aktivieren möchten, ist während des Tests der Smartphone-Status (Folded oder Unfolded) erforderlich. Wenn Sie die Abfrage des Smartphone-Status für alle DUTs aktivieren möchten, einschließlich nicht faltbarer Smartphones, führen Sie den folgenden ADB-Befehl aus, nachdem die DUT mit dem Host verbunden ist.

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