Das Android 13-Release enthält eine Reihe von Änderungen an den ITS-Tests für Kameras. Neben inkrementellen Änderungen wie aktualisierten Python- und Paketversionen und Updates der Testhardware unterstützt Android 13 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 Smartphones
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 berücksichtigt 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
ist in Android 13 veraltet.
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
ist in Android 13 veraltet.
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-Schnappschüsse 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 Flash verfügbar ist.
Methode
Der Test konfiguriert die Erfassungsanfrage 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 dem Algorithmus für die automatische Belichtung eine dunkle Szene 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. In einem neuen Dienstprogrammordner lighting_control_utils
wird der Code zur Steuerung der Beleuchtung in Tests zentralisiert.
scene2_a/test_yuv_jpeg_capture_sameness.py
Unter Android 13 wurde 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, das eine Auflösung von 1920 × 1440 nicht überschreitet. Im Test wird jpeg.quality
auf 100 gesetzt und eine Dual-Surface-Anfrage erfasst. Anschließend werden beide Bilder in RGB-Arrays konvertiert und die dreidimensionale RMS-Differenz (Root Mean Square) zwischen den beiden Bildern wird berechnet. Die Differenztoleranz ist auf 1 % festgelegt.
Videotests
Camera ITS unterstützt jetzt auch 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 wurde der test_preview_stabilization_fov
-Test hinzugefügt. Bei diesem Test werden die unterstützten Vorschaubilder geprüft, um sicherzustellen, dass das Sichtfeld nicht unangemessen zugeschnitten wird.
Methode
Beim Test werden zwei Videos aufgenommen: eines mit aktivierter 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 höchstens 20%, was bedeutet, dass sich das Sichtfeld um höchstens 20 % ändert.
scene4/test_video_aspect_ratio_and_crop.py
Unter 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 korrekt dargestellt werden und 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
der Klasse its_session_utils
hinzugefügt. Um gemeinsamen Code mit vorhandenen Tests zu teilen, 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 hinzugefügt, mit dem unterstützte Videoqualitäten bis zu 1920 × 1080 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. Durch das Upgrade kann der Controller die Drehzahl und die Beleuchtung steuern. Das Upgrade umfasst auch ein neues Schild (siehe Abbildung 1) mit drei Rotations- und drei Beleuchtungskanälen.
Abbildung 1: Arduino-Shield Rev. 2.0 mit Dreh- und Beleuchtungssteuerung
Außerdem muss für Version 13 die Firmware vorhandener Controller aktualisiert werden, um die Steuerung der Drehzahl 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.
Wenn Sie das Abrufen des Telefonstatus für alle Testgeräte, einschließlich nicht faltbarer Smartphones, aktivieren möchten, führen Sie den folgenden ADB-Befehl aus, nachdem das Testgerät mit dem Host verbunden wurde.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier