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
- Ergänzungen zur Konfigurationsdatei
- Änderungen testen
- Neue tabletbasierte Tests
- Videotests
- Hardwareupdates und ‑erweiterungen
- Unterstützung für Tests von faltbaren Geräten
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:
- 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 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_crop
Test 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.
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