Das Android 13-Release enthält eine Reihe von Änderungen an den Camera ITS. Neben inkrementellen Änderungen wie aktualisierten Python- und Paketversionen und Updates der Testhardware unterstützt Android 13 auch Videotests.
Auf dieser Seite werden die Änderungen an Camera ITS für Android 13 zusammengefasst. Die Änderungen lassen sich in sieben Kategorien unterteilen:
- Python- und Paketversionen
- Ergänzungen der Konfigurationsdatei
- Änderungen testen
- Neue tabletbasierte Tests
- Videotests
- Hardware-Updates und ‑Ergänzungen
- Unterstützung für Tests auf faltbaren Geräten
Python- und Paketversionen
Android 13 unterstützt zusätzlich zu den in 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 der Konfigurationsdatei
Aufgrund der zusätzlichen Beleuchtungssteuerung für den test_auto_flash.py-Test sind in der Datei config.yml zwei zusätzliche Parameter für den Controller und den Beleuchtungskanal erforderlich. Um festzustellen, ob es sich bei dem zu testenden Gerät (DUT) um ein faltbares Gerät handelt, ist in der Datei config.yml ein dritter zusätzlicher Parameter erforderlich, der sowohl dem Tablet-basierten als auch dem Sensor-Fusion-Abschnitt 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
Beim test_black_white-Test wird die Channelsättigung wie in früheren Android-Versionen geprüft. Das bedeutet, dass das erforderliche erste API-Level für die Channelsättigungsprüfung Android 10 ist.
scene1_2/test_yuv_plus_raw.py
Der test_yuv_plus_raw-Test unterstützt Sensoren, die nicht im Format 16:9 oder 4:3 sind, um RAW besser zu unterstützen. Wenn beim 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 umgestaltet.
scene2_a/test_num_faces.py
Der test_num_faces-Test berücksichtigt das Zuschneiden von Sensoren und platziert die Gesichtsrechtecke korrekt auf UW-Kameraaufnahmen, die zugeschnitten sind.
scene3/test_lens_position.py
Der Test test_lens_position wird in Android 13 nicht mehr unterstützt.
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 in einem Zoom-Bereich von 10 × korrekt getestet wird, wird der Test ordnungsgemäß beendet. So können Zoomtests in einem einzigen Diagrammabstand durchgeführt werden.
scene_change/test_scene_change.py
Der Test test_scene_change wird in Android 13 nicht mehr unterstützt.
Neue tabletbasierte Tests
Android 13 enthält zwei neue Tests für Tablets. Beide Tests sind für Geräte mit Android 13 vorgeschrieben, werden aber für Geräte, die auf Android 13 aktualisiert werden, übersprungen.
| Szene | Test name | Erstes API-Level | Beschreibung |
|---|---|---|---|
| 2_a | test_auto_flash | 33 | Bestätigt, dass bei dunklen Szenen automatisch der Blitz ausgelöst wird. |
| 2_b | test_yuv_jpg_capture_sameness | 33 | Bestätigt, dass YUV- und JPEG-Aufnahmen weiterhin bitweise identisch sind. |
scene2_a/test_auto_flash.py
Unter Android 13 wird der test_auto_flash-Test eingeführt.
Parameter
flash: Überspringt den Test, wenn kein Blitz verfügbar ist.
Methode
Der Test konfiguriert die Aufnahmeanfrage für den automatischen Blitz und präsentiert eine Szene, die ein Blitzereignis erfordert. Die Beleuchtung im Prüfstand und auf dem Tablet ist ausgeschaltet, um eine dunkle Szene für den Algorithmus für die automatische Belichtung zu präsentieren. Im Test wird eine Reihe von NUM_FRAMES-Aufnahmen mit aktiviertem automatischen Blitz konfiguriert. Wenn die Einstellung AE_STATE den Wert FLASH_REQUIRED zurückgibt, wird im Test überprüft, ob bei den Aufnahmen ein Blitz ausgelöst wird.
Die Beleuchtung kann bei Bedarf manuell oder automatisch über einen Arduino-Controller mit Beleuchtungssteuerung für automatisierte Tests gesteuert werden. Ein neuer Hilfsordner lighting_control_utils enthält zentralen Code zum Steuern der Beleuchtung in Tests.
scene2_a/test_yuv_jpeg_capture_sameness.py
Unter Android 13 wird der test_yuv_jpeg_capture_sameness-Test hinzugefügt.
Parameter
streamUseCase: Gibt an, ob die Kamera den Streaming-Anwendungsfall unterstützt.android.jpeg.quality: Legt die JPEG-Qualität auf 100 fest.
Methode
Bei diesem Test werden zwei Bilder im größten gemeinsamen YUV- und JPEG-Format mit demselben Seitenverhältnis wie das größte JPEG-Format aufgenommen, wobei eine Auflösung von 1920 × 1440 nicht überschritten werden darf. 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 konvertiert und die dreidimensionale RMS-Differenz (Root Mean Square, quadratischer Mittelwert) zwischen den beiden Bildern wird berechnet. Die Differenztoleranz ist auf 1 % festgelegt.
Videotests
Camera ITS unterstützt jetzt Videotests unter Android 13.
In Android 13 wurden die folgenden Tests hinzugefügt:
| Szene | Test name | Erstes API-Level | Beschreibung |
|---|---|---|---|
| 4 | test_preview_stabilization_fov | 33 | Bestätigt, dass die Videovorschau bei aktivierter Stabilisierung nicht zu stark zugeschnitten wird. |
| 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 | Bestätigt, dass die Vorschau stabilisiert wird. |
| sensor_fusion | test_video_stabilition | 33 | Bestätigt, dass die Videostabilisierung funktioniert. |
scene4/test_preview_stabilization_fov.py
Unter 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.
Methode
Beim Test werden zwei Videos aufgenommen: eines mit aktivierter Vorschau-Stabilisierung und eines mit deaktivierter Vorschau-Stabilisierung. Aus jedem Video wird ein repräsentatives Bild ausgewählt und analysiert, um sicherzustellen, dass die Änderungen des Sichtfelds in den beiden Videos den Spezifikationen entsprechen.
Im Test werden die folgenden Parameter mit und ohne Vorschau-Stabilisierung geprüft:
- Die Rundheit des Kreises bleibt konstant.
- Die Mitte des Kreises bleibt stabil.
- Die Größe des Kreises ändert sich um maximal 20%, was bedeutet, dass sich das Sichtfeld um maximal 20 % ändert.
scene4/test_video_aspect_ratio_and_crop.py
Unter Android 13 wird der test_video_aspect_ratio_and_crop-Test hinzugefügt. Ähnlich wie beim test_aspect_ratio_and_cropTest für Standbilder werden bei diesem Test die unterstützten Videoformate geprüft, um sicherzustellen, dass die Videoframes nicht unangemessen gestreckt oder zugeschnitten werden.
Alle selbst gemeldeten Videoqualitäten werden getestet. Wenn die Kamera HLG10-Video unterstützt, wird außerdem 10‑Bit-Video getestet.
In Android 13 wird die Methode get_available_video_qualities
zu its_session_utils hinzugefügt. Damit Sie gemeinsamen Code mit vorhandenen Tests teilen können, enthält Android 13 auch zwei neue Dienstfunktionen: image_fov_utils und video_processing_utils.
Methode
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. Aus dem Referenzbild werden die Größe und Position des Kreises bestimmt. Kurze Videos werden dann in allen unterstützten Videoqualitäten aufgenommen. Der endgültige Referenzframe wird aus jeder Videoqualität extrahiert. Aus dem Referenzframe werden für jede Videoqualität das Sichtfeld, die Zentrierung (Zuschneiden) und das Seitenverhältnis berechnet.
Bei der Berechnung des Sichtfelds wird die Größe des Kreises im Videobild mit der berechneten Kreisgröße aus dem Referenzbild und den Größen des Videoformats verglichen. Beim Crop-Check wird die Zentrierung des Videobilds mit der Zentrierung des Referenzbilds verglichen. Beim Test des Seitenverhältnisses wird anhand der Szene, die einen großen schwarzen Kreis auf weißem Hintergrund zeigt, das Seitenverhältnis des Kreises bestimmt und geprüft, ob das Bild verzerrt ist.
sensor_fusion/test_preview_stabilization.py
Unter Android 13 wird der test_preview_stabilization-Test hinzugefügt, bei dem alle unterstützten Vorschauqualitäten bis zu 1920 × 1080 getestet werden. Für den Test wird die Sensorfusion-Testvorrichtung verwendet. Außerdem ist die neue Sensorfusion-Steuerung der Revision 2 oder ein Firmware-Upgrade früherer Arduino-Controller-Versionen erforderlich. Weitere Informationen zum neuen Controller finden Sie unter Hardware-Updates und ‑Ergänzungen.
Methode
Das Smartphone wird langsam über einen Winkel von etwa 15 Grad bewegt. Die Vorschau-Stabilisierung ist aktiviert. Die Drehung der Bilder wird dann mit der Drehung des Gyroskops verglichen.
sensor_fusion/test_video_stabilization.py
Unter Android 13 wird der test_video_stabilization-Test eingeführt, mit dem unterstützte Videoqualitäten bis zu 1.920 × 1.080 getestet werden. QCIF-Videos mit niedriger Auflösung sind ausgeschlossen. Für den Test wird die Sensorfusion-Testvorrichtung verwendet. Außerdem ist die neue Sensorfusion-Steuerung der Revision 2 oder ein Firmware-Upgrade früherer Arduino-Controller-Versionen erforderlich. Weitere Informationen zum neuen Controller finden Sie unter Hardware-Updates und ‑Ergänzungen.
Methode
Das Testgerät bewegt das Smartphone langsam über einen Winkel von etwa 15 Grad, wobei die Vorschau-Stabilisierung aktiviert ist. Die Drehung der Bilder wird dann mit der Drehung des Gyroskops verglichen.
Hardware-Updates und ‑Ergänzungen
Android 13 umfasst ein Upgrade auf den Arduino-basierten Sensor-Fusion-Controller der Revision 2. Dieses Upgrade umfasst sowohl Hardware- als auch Firmware-Änderungen. Das Upgrade ermöglicht es dem Controller, die Drehzahl und die Beleuchtung zu steuern. Das Upgrade umfasst auch eine neue Abschirmung (siehe Abbildung 1) mit drei Kanälen für die Drehung und drei Kanälen für die Beleuchtungssteuerung.
Abbildung 1. Arduino-Shield Rev. 2.0 mit Dreh- und Beleuchtungssteuerung
Außerdem muss für Android 13 die Firmware vorhandener Controller aktualisiert werden, um die Steuerung der Rotationsgeschwindigkeit zu ermöglichen. Diese Firmware kann unter folgender Adresse heruntergeladen werden:
Weitere Informationen zum neuen Controller finden Sie unter Android 13-Controller für Sensorfusion.
Support für Tests auf faltbaren Geräten
Android 13 bietet Unterstützung für Tests auf faltbaren Geräten. Um die Multi-Camera API für faltbare Geräte zu aktivieren, ist der Telefonstatus (Folded oder Unfolded) während des Tests erforderlich.
Führen Sie den folgenden ADB-Befehl aus, nachdem das DUT mit dem Host verbunden wurde, um das Polling des Telefonstatus für alle DUTs, einschließlich nicht faltbarer Smartphones, zu aktivieren.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier