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
- Ergänzungen zur Konfigurationsdatei
- Testen Sie Änderungen
- Neue Tablet-basierte Tests
- Videotest
- Hardware-Updates und Ergänzungen
- Faltbare Testunterstützung
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
- Kissen 8.3.1
- PyYAML 5.4.1
- Mobly 1.11
- FFmpeg 4.4.1
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.
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