Wersja Androida 13 zawiera szereg zmian w Camera ITS . Oprócz zmian przyrostowych, takich jak zaktualizowane wersje Pythona i pakietów oraz aktualizacje sprzętu testowego, Android 13 obsługuje testowanie wideo.
Na tej stronie podsumowano zmiany w ITS aparatu w systemie Android 13. Zmiany można podzielić na siedem ogólnych kategorii:
- Wersje Pythona i pakietu
- Skonfiguruj dodatki do plików
- Zmiany testowe
- Nowe testy na tabletach
- Testowanie wideo
- Aktualizacje i dodatki sprzętowe
- Składane wsparcie testowe
Wersje Pythona i pakietu
Oprócz wersji i bibliotek Pythona obsługiwanych w systemie Android 12 system Android 13 obsługuje następujące wersje języka Python:
- Python 3.9.2
- OpenCV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Poduszka 8.3.1
- PyYAML 5.4.1
- Mobilnie 1.11
- FFmpeg 4.4.1
Skonfiguruj dodatki do plików
W związku z dodaniem sterowania oświetleniem dla testu test_auto_flash.py
, plik config.yml
wymaga dwóch dodatkowych parametrów dla sterownika i kanału oświetlenia. Aby określić, czy testowane urządzenie (DUT) jest składane, czy nie, plik config.yml
wymaga trzeciego dodatkowego parametru, który należy dodać zarówno do sekcji dotyczącej tabletu, jak i sekcji dotyczącej połączenia czujników.
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
Zmiany testowe
scena1_1/test_black_white.py
Test test_black_white
posiada funkcję sprawdzania nasycenia kanałów zgodną z poprzednimi wersjami Androida, co oznacza, że wymaganym pierwszym poziomem API do kontroli nasycenia kanałów jest Android 10.
scene1_2/test_yuv_plus_raw.py
Test test_yuv_plus_raw
obsługuje czujniki inne niż 16:9 lub 4:3, aby zapewnić lepszą obsługę formatu RAW. Jeśli w teście nie uda się znaleźć wspólnego formatu między formatem RAW czujnika a formatami przechwytywania YUV, w ramach testu porównywane jest przechwycenie RAW z największym przechwyceniem YUV, nawet jeśli współczynniki proporcji są różne.
scene2_a/test_faces.py
test_faces
jest refaktoryzowany do test_num_faces
.
scena2_a/test_num_faces.py
Test test_num_faces
obsługuje kadrowanie czujnika i prawidłowo umieszcza prostokąty twarzy na przyciętych przechwytywaniach z kamery UW.
scene3/test_lens_position.py
Test test_lens_position
jest przestarzały w systemie Android 13.
scene6/test_zoom.py
Test test_zoom
został poddany refaktoryzacji, aby umożliwić łatwiejsze testowanie systemów z trzema i czterema kamerami. Jeśli aparat poprawnie wykona test w zakresie współczynnika 10x w trybie zoomu, test zakończy się pomyślnie. Umożliwia to przeprowadzanie testów powiększenia w odległości pojedynczej mapy.
zmiana_sceny/test_zmiana_sceny.py
Test test_scene_change
jest przestarzały w systemie Android 13.
Nowe testy na tabletach
Android 13 zawiera dwa nowe testy na tabletach. Obydwa testy są obowiązkowe w przypadku urządzeń uruchamianych z systemem Android 13, ale są pomijane w przypadku urządzeń uaktualniających się do Androida 13.
Scena | Nazwa testu | Pierwszy poziom API | Opis |
---|---|---|---|
2_a | test_auto_flash | 33 | Potwierdza, że ciemne sceny wyzwalają automatyczną lampę błyskową. |
2_b | test_yuv_jpg_capture_sameness | 33 | Potwierdza, że zdjęcia w formacie YUV i JPEG są identyczne pod względem bitowym. |
scene2_a/test_auto_flash.py
Android 13 dodaje test test_auto_flash
.
Parametry
-
flash
: pomija test, jeśli lampa błyskowa nie jest dostępna.
metoda
Test konfiguruje żądanie przechwytywania dla automatycznego błysku i przedstawia scenę wymagającą zdarzenia błysku. Oświetlenie na stanowisku testowym i tablecie jest wyłączone, aby zaprezentować ciemną scenę dla algorytmu automatycznej ekspozycji. Test konfiguruje sekwencję NUM_FRAMES
przechwytywania z włączoną funkcją automatycznego flashowania. Jeśli ustawienie AE_STATE
zwróci wartość FLASH_REQUIRED
test sprawdza, czy podczas przechwytywania zostaje wyzwolony błysk.
Oświetleniem można sterować ręcznie, gdy zostanie o to poproszony, lub automatycznie za pomocą kontrolera Arduino z dodanym sterowaniem oświetleniem w celu zautomatyzowanych testów. Nowy folder narzędziowy lighting_control_utils
centralizuje kod do sterowania oświetleniem w testach.
scene2_a/test_yuv_jpeg_capture_sameness.py
Android 13 dodaje test_yuv_jpeg_capture_sameness
.
Parametry
-
streamUseCase
: Określa, czy kamera obsługuje przypadek użycia strumienia. -
android.jpeg.quality
: Ustawia jakość JPEG na 100.
metoda
W tym teście rejestrowane są dwa obrazy przy użyciu największych popularnych formatów YUV i JPEG o takich samych proporcjach jak największy format JPEG, ale nie przekraczających rozdzielczości 1920x1440. Test ustawia jpeg.quality
na 100 i przechwytuje żądanie podwójnej powierzchni. Następnie konwertuje oba obrazy na tablice RGB i oblicza średnią kwadratową 3D (RMS) różnicy między dwoma obrazami. Tolerancja różnicy jest ustawiona na 1%.
Testowanie wideo
Camera ITS dodaje obsługę testowania wideo w systemie Android 13.
Android 13 dodaje następujące testy:
Scena | Nazwa testu | Pierwszy poziom API | Opis |
---|---|---|---|
4 | test_preview_stabilization_fov | 33 | Potwierdza, że podgląd wideo nie przycina się zbytnio przy włączonej stabilizacji. |
4 | test_video_aspect_ratio_and_crop | 33 | Potwierdza formaty wideo FoV, proporcje i kadrowanie. |
czujnik_fuzja | test_preview_stabilition | 33 | Potwierdza, że stabilizacja podglądu działa. | czujnik_fuzja | test_stabilizacja_wideo | 33 | Potwierdza działanie stabilizacji wideo. |
scene4/test_preview_stabilization_fov.py
Android 13 dodaje test test_preview_stabilization_fov
. Ten test sprawdza obsługiwane rozmiary podglądu, aby upewnić się, że FoV nie zostanie niewłaściwie przycięty.
metoda
W teście rejestrowane są dwa filmy, jeden z włączoną stabilizacją podglądu i jeden z wyłączoną stabilizacją podglądu. Z każdego filmu wybierana jest reprezentatywna klatka i analizowana w celu zapewnienia, że zmiany FoV w obu filmach mieszczą się w granicach specyfikacji.
W szczególności test sprawdza następujące parametry ze stabilizacją podglądu i bez niej:
- Okrągłość koła pozostaje stała.
- Środek okręgu pozostaje stabilny.
- Rozmiar okręgu zmienia się nie więcej niż o 20%, co oznacza, że FoV zmienia się maksymalnie o 20%.
scene4/test_video_aspect_ratio_and_crop.py
Android 13 dodaje test test_video_aspect_ratio_and_crop
. Podobnie jak test_aspect_ratio_and_crop
dla nieruchomych przechwytów, ten test sprawdza obsługiwane formaty wideo, aby upewnić się, że klatki wideo nie są niewłaściwie rozciągnięte lub przycięte. Wszystkie zgłaszane przez siebie cechy wideo są testowane. Dodatkowo, jeśli kamera obsługuje wideo HLG10
, testowane jest wideo 10-bitowe.
Android 13 dodaje metodę get_available_video_qualities
do its_session_utils
. Aby udostępnić wspólny kod istniejącym testom, Android 13 zawiera także dwie nowe funkcje narzędziowe: image_fov_utils
i video_processing_utils
.
metoda
W teście rejestrowany jest obraz referencyjny w formacie RAW lub w formacie JPEG o najwyższej rozdzielczości, jeśli RAW nie jest obsługiwany. Na podstawie obrazu referencyjnego określany jest rozmiar i położenie okręgu. Następnie nagrywane są krótkie filmy wideo we wszystkich obsługiwanych jakościach. Z każdej jakości wideo wyodrębniana jest końcowa klatka odniesienia. Z ramki odniesienia obliczane jest pole widzenia (FoV), centrowanie (kadrowanie) i współczynnik proporcji dla każdej jakości wideo.
W celu obliczenia FoV test porównuje rozmiar koła klatki wideo z rozmiarem koła obliczonym na podstawie rozmiarów obrazu referencyjnego i formatu wideo. W celu kontroli kadrowania test porównuje wyśrodkowanie klatki wideo z wyśrodkowaniem obrazu referencyjnego. W celu sprawdzenia proporcji obrazu na scenie, czyli dużego czarnego koła na białym tle, test określa proporcje koła i sprawdza, czy ramka nie jest zniekształcona.
sensor_fusion/test_preview_stabilization.py
Android 13 dodaje test test_preview_stabilization
, który testuje wszystkie obsługiwane jakości podglądu do rozdzielczości 1920x1080. Test wykorzystuje platformę do testowania fuzji czujników i wymaga nowej wersji 2 kontrolera fuzji czujników lub aktualizacji oprogramowania sprzętowego wcześniejszych wersji kontrolera Arduino. Aby uzyskać więcej informacji na temat nowego kontrolera, zobacz Aktualizacje i dodatki sprzętowe .
metoda
Telefon przesuwa się powoli pod kątem około 15 stopni z włączoną stabilizacją podglądu. Rotację obrazów porównuje się następnie z obrotem żyroskopu.
sensor_fusion/test_video_stabilization.py
Android 13 dodaje test test_video_stabilization
, który testuje obsługiwane jakości wideo do 1920x1080. Jakość wideo QCIF o niskiej rozdzielczości jest wykluczona. Test wykorzystuje platformę do testowania fuzji czujników i wymaga nowej wersji 2 kontrolera fuzji czujników lub aktualizacji oprogramowania sprzętowego wcześniejszych wersji kontrolera Arduino. Aby uzyskać więcej informacji na temat nowego kontrolera, zobacz Aktualizacje i dodatki sprzętowe .
metoda
Stanowisko testowe przesuwa telefon powoli pod kątem około 15 stopni z włączoną stabilizacją podglądu. Rotację obrazów porównuje się następnie z obrotem żyroskopu.
Aktualizacje i dodatki sprzętowe
Android 13 zawiera aktualizację kontrolera fuzji czujników opartego na Arduino w wersji 2 . Ta aktualizacja obejmuje zarówno zmiany sprzętu, jak i oprogramowania sprzętowego. Aktualizacja umożliwia sterownikowi ustawienie prędkości obrotowej i sterowanie oświetleniem. Aktualizacja obejmuje także nową osłonę (pokazaną na rysunku 1), która zapewnia trzy kanały obrotu i trzy kanały sterowania oświetleniem.
Rysunek 1. Nakładka Arduino rev2.0 ze sterowaniem obrotem i oświetleniem
Dodatkowo w przypadku wersji 13 należy zaktualizować oprogramowanie istniejących sterowników, aby umożliwić kontrolę prędkości obrotowej. To oprogramowanie sprzętowe można pobrać z:
Więcej informacji na temat nowego kontrolera znajdziesz w artykule Kontroler fuzji czujników dla Androida 13 .
Składane wsparcie testowe
Android 13 zawiera obsługę testową urządzeń składanych. Aby włączyć interfejs API wielu kamer dla urządzeń składanych, podczas testowania wymagany jest stan telefonu ( Folded
lub Unfolded
). Aby włączyć odpytywanie stanu telefonu dla wszystkich urządzeń DUT, w tym telefonów nieskładanych, uruchom następującą komendę adb po podłączeniu urządzenia DUT do hosta.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier