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
- Ergänzungen zur Konfigurationsdatei
- Änderungen testen
- Neue tabletbasierte Tests
- Videotests
- Hardwareupdates und ‑erweiterungen
- Unterstützung für Tests von faltbaren Smartphones
Python- und Paketversionen
Android 13 unterstützt zusätzlich zu den unter Android 12 unterstützten Python-Versionen und -Bibliotheken die folgenden Python-Versionen:
- Python 3.9.2
- OpenCV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Pillow 8.3.1
- PyYAML 5.4.1
- Mobly 1.11
- FFmpeg 4.4.1
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_crop
Test 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.
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