Versionshinweise zur Android 13 Camera Image Test Suite

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

Auf dieser Seite werden die Camera ITS-Änderungen für Android 13 zusammengefasst. Die Änderungen lassen sich in sieben große Kategorien einteilen:

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 zur 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 festzustellen, ob es sich bei dem zu testenden Gerät (DUT) um ein faltbares Gerät handelt oder nicht, erfordert die Datei config.yml einen dritten zusätzlichen Parameter, der sowohl zum Tablet-basierten Abschnitt als auch zum 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

Testen Sie Änderungen

scene1_1/test_black_white.py

Der test_black_white Test verfügt über eine Kanalsättigungsprüfung, die mit früheren Android-Versionen übereinstimmt, was bedeutet, dass die erforderliche erste API-Ebene für die Kanalsättigungsprüfung Android 10 ist.

scene1_2/test_yuv_plus_raw.py

Der test_yuv_plus_raw -Test verarbeitet Nicht-16:9- oder 4:3-Sensoren, um RAW besser zu unterstützen. Wenn der Test kein gemeinsames Format zwischen dem RAW-Format des Sensors und den YUV-Aufnahmeformaten finden kann, vergleicht der Test die RAW-Aufnahme mit der größten YUV-Aufnahme, auch wenn die Seitenverhältnisse unterschiedlich sind.

scene2_a/test_faces.py

Die test_faces werden 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 zugeschnittenen UW-Kameraaufnahmen.

scene3/test_lens_position.py

Der test_lens_position Test ist in Android 13 veraltet.

scene6/test_zoom.py

Der test_zoom Test wurde überarbeitet, um ein einfacheres Testen von Drei- und Vier-Kamera-Systemen zu ermöglichen. Wenn die Kamera über einen 10-fachen Zoombereich korrekt testet, wird der Test korrekt beendet. Dies ermöglicht die Durchführung von Zoomtests bei einer einzigen Kartenentfernung.

scene_change/test_scene_change.py

Der test_scene_change Test ist in Android 13 veraltet.

Neue Tablet-basierte Tests

Android 13 enthält zwei neue Tablet-basierte Tests. Beide Tests sind für Geräte, die mit Android 13 starten, vorgeschrieben, werden jedoch für Geräte, die auf Android 13 aktualisieren, übersprungen.

Szene Testname Erste API-Ebene 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

Android 13 fügt den Test test_auto_flash hinzu.

Parameter

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

Methode

Der Test konfiguriert die Aufnahmeanforderung für den automatischen Blitz und stellt eine Szene dar, die ein Blitzereignis erfordert. Die Beleuchtung im Prüfstand und auf dem Tablet wird ausgeschaltet, um dem automatischen Belichtungsalgorithmus eine dunkle Szene zu präsentieren. Der Test konfiguriert eine Folge von NUM_FRAMES Aufnahmen mit aktiviertem Auto-Flash. Wenn die AE_STATE Einstellung FLASH_REQUIRED zurückgibt, überprüft der Test, ob in den Aufnahmen ein Blitz ausgelöst wird.

Die Beleuchtung kann manuell gesteuert werden, wenn Sie dazu aufgefordert werden, oder automatisch mit einem Arduino-Controller mit zusätzlicher Beleuchtungssteuerung für automatisierte Tests. Ein neuer Dienstprogrammordner lighting_control_utils zentralisiert den Code zur Steuerung der Beleuchtung in Tests.

scene2_a/test_yuv_jpeg_capture_sameness.py

Android 13 fügt den Test test_yuv_jpeg_capture_sameness hinzu.

Parameter

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

Methode

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, wobei die Auflösung 1920 x 1440 nicht überschreitet. Der Test setzt jpeg.quality auf 100 und erfasst eine Dual-Surface-Anfrage. Anschließend werden beide Bilder in RGB-Arrays konvertiert und die 3D-Effektivwertdifferenz (RMS) zwischen den beiden Bildern berechnet. Die Differenztoleranz ist auf 1 % eingestellt.

Videotest

Camera ITS bietet Unterstützung für Videotests in Android 13.

Android 13 fügt die folgenden Tests hinzu:

Szene Testname Erste API-Ebene Beschreibung
4 test_preview_stabilization_fov 33 Bestätigt, dass die Videovorschau bei aktivierter Stabilisierung nicht zu stark beschnitten wird.
4 test_video_aspect_ratio_and_crop 33 Bestätigt Videoformate FoV, Seitenverhältnis und Zuschnitt.
sensor_fusion test_preview_stabilition 33 Bestätigt, dass die Vorschaustabilisierung funktioniert.
sensor_fusion test_video_stabilität 33 Bestätigt, dass die Videostabilisierung funktioniert.

scene4/test_preview_stabilization_fov.py

Android 13 fügt den Test test_preview_stabilization_fov hinzu. Bei diesem Test werden die unterstützten Vorschaugrößen überprüft, um sicherzustellen, dass das FoV nicht unangemessen beschnitten wird.

Methode

Der Test erfasst zwei Videos, eines mit aktivierter Vorschaustabilisierung und eines mit deaktivierter Vorschaustabilisierung. Aus jedem Video wird ein repräsentativer Frame ausgewählt und analysiert, um sicherzustellen, dass die FoV-Änderungen in den beiden Videos innerhalb der Spezifikationen liegen.

Konkret prüft der Test die folgenden Parameter mit und ohne Vorschaustabilisierung:

  • 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 der FoV um höchstens 20 % ändert.

scene4/test_video_aspect_ratio_and_crop.py

Android 13 fügt den Test test_video_aspect_ratio_and_crop hinzu. Ähnlich wie der test_aspect_ratio_and_crop Test für Standbildaufnahmen überprüft dieser Test die unterstützten Videoformate, um sicherzustellen, dass die Videobilder nicht unangemessen gestreckt oder zugeschnitten werden. Alle selbst gemeldeten Videoqualitäten werden getestet. Wenn die Kamera außerdem HLG10 Video unterstützt, wird 10-Bit-Video getestet.

Android 13 fügt die Methode get_available_video_qualities zu its_session_utils hinzu. Um gemeinsamen Code mit bestehenden Tests zu teilen, enthält Android 13 außerdem zwei neue Dienstprogrammfunktionen: image_fov_utils und video_processing_utils .

Methode

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

Für die FoV-Berechnung vergleicht der Test die Kreisgröße des Videobildes mit der berechneten Kreisgröße aus den Referenzbild- und Videoformatgrößen. Für die Zuschnittprüfung vergleicht der Test die Videobildzentrierung mit der Referenzbildzentrierung. Bei der Prüfung des Seitenverhältnisses ermittelt der Test anhand der Szene, bei der es sich um einen großen schwarzen Kreis auf weißem Hintergrund handelt, das Seitenverhältnis des Kreises und stellt sicher, dass der Rahmen nicht verzerrt ist.

sensor_fusion/test_preview_stabilization.py

Android 13 fügt den Test test_preview_stabilization hinzu, der alle unterstützten Vorschauqualitäten bis zu 1920 x 1080 testet. Der Test nutzt den Sensor-Fusion- Teststand und erfordert den neuen Sensor-Fusion-Controller Revision 2 oder ein Firmware-Upgrade früherer Arduino-Controller-Versionen. Weitere Einzelheiten zum neuen Controller finden Sie unter Hardware-Updates und -Ergänzungen .

Methode

Das Telefon 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

Android 13 fügt den Test test_video_stabilization hinzu, der unterstützte Videoqualitäten bis zu 1920 x 1080 testet. QCIF-Videoqualität mit niedriger Auflösung ist ausgeschlossen. Der Test nutzt den Sensor-Fusion- Teststand und erfordert den neuen Sensor-Fusion-Controller Revision 2 oder ein Firmware-Upgrade früherer Arduino-Controller-Versionen. Weitere Einzelheiten zum neuen Controller finden Sie unter Hardware-Updates und -Ergänzungen .

Methode

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

Hardware-Updates und Ergänzungen

Android 13 beinhaltet ein Upgrade auf den Arduino-basierten Revision 2 Sensor Fusion Controller . Dieses Upgrade umfasst sowohl Hardware- als auch Firmware-Änderungen. Das Upgrade ermöglicht dem Controller die Einstellung der Rotationsgeschwindigkeit und der Blitzsteuerung. Das Upgrade umfasst auch ein neues Schild (siehe Abbildung 1), das drei Kanäle für die Rotation und drei Kanäle für die Lichtsteuerung bietet.

Arduino Shield rev2.0

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

Zusätzlich muss für 13 die Firmware bestehender Controller aktualisiert werden, um eine Drehzahlregelung zu ermöglichen. Diese Firmware kann heruntergeladen werden von:

Weitere Informationen zum neuen Controller finden Sie unter Android 13 Sensor Fusion Controller .

Faltbare Testunterstützung

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

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