Wersja Androida 13 zawiera kilka zmian w ITS aparatu. Oprócz stopniowych zmian, takich jak aktualizacje wersji Pythona i pakietów oraz aktualizacje testowe sprzętu, Android 13 obsługuje testowanie wideo.
Ta strona zawiera podsumowanie zmian w aparacie ITS w Androidzie 13. Zmiany można podzielić na 7 głównych kategorii:
- Wersje Pythona i pakietów
- Dodatki do pliku konfiguracyjnego
- Testowanie zmian
- Nowe testy na tablecie
- Testowanie filmów
- Aktualizacje i dodatki sprzętowe
- Testowanie składanych urządzeń
Wersje Pythona i pakietów
Android 13 obsługuje te wersje Pythona (oraz biblioteki obsługiwane w Androidzie 12):
- 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
Dodatki do pliku konfiguracyjnego
Ze względu na dodanie sterowania oświetleniem do testu test_auto_flash.py
plik config.yml
wymaga dwóch dodatkowych parametrów dla kontrolera i kanału oświetlenia. Aby określić, czy testowane urządzenie (DUT) jest składane, czy nie, plik config.yml
wymaga trzeciego parametru dodatkowego, który musi zostać dodany do sekcji dotyczącej fuzji na poziomie tabletu i 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
Testowanie zmian
scene1_1/test_black_white.py
Test test_black_white
sprawdza nasycanie kanału w sposób zgodny z poprzednimi wersjami Androida, co oznacza, że wymagany pierwszy poziom interfejsu API dla sprawdzania nasycania kanału to 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 test nie może znaleźć wspólnego formatu między formatem RAW czujnika a formatami rejestrowania YUV, porównuje on format RAW z największym formatem YUV, nawet jeśli współczynniki proporcji są różne.
scene2_a/test_faces.py
Element test_faces
został przekształcony w element test_num_faces
.
scene2_a/test_num_faces.py
Test test_num_faces
obsługuje przycinanie czujnika i prawidłowo umieszcza prostokąty twarzy na przyciętych zdjęciach z kamery szerokokątnej.
scene3/test_lens_position.py
Test test_lens_position
został wycofany w Androidzie 13.
scene6/test_zoom.py
Test test_zoom
został przekształcony, aby ułatwić testowanie systemów z 3 i 4 kamerami. Jeśli kamera przechodzi testy w zakresie 10-krotnego powiększenia, test kończy się prawidłowo. Umożliwia to testowanie powiększenia przy użyciu jednej odległości na wykresie.
scene_change/test_scene_change.py
Test test_scene_change
został wycofany w Androidzie 13.
Nowe testy na tablecie
Android 13 zawiera 2 nowe testy na tabletach. Oba testy są wymagane w przypadku urządzeń z Androidem 13, ale są pomijane w przypadku urządzeń, które przechodzą na Androida 13.
Scena | Nazwa testu | Pierwszy poziom API | Opis |
---|---|---|---|
2_a | test_auto_flash | 33 | Potwierdza, że ciemna scena powoduje automatyczne użycie lampy błyskowej. |
2_b | test_yuv_jpg_capture_sameness | 33 | Potwierdza, że obrazy YUV i JPEG są identyczne bit po bicie. |
scene2_a/test_auto_flash.py
Android 13 dodaje test test_auto_flash
.
Parametry
flash
: pomija test, jeśli flash nie jest dostępny.
Metoda
Test konfiguruje żądanie przechwycenia w celu automatycznego korzystania z lampy błyskowej i prezentuje scenę wymagającą użycia lampy błyskowej. Oświetlenie w urządzeniu testowym i na tablecie jest wyłączone, aby przedstawić ciemną scenę dla algorytmu automatycznej ekspozycji. Test konfiguruje sekwencję NUM_FRAMES
ujęć ze włączoną automatyczną lampą błyskową. Jeśli ustawienie AE_STATE
zwraca wartość FLASH_REQUIRED
, test sprawdza, czy w zrzutach jest używane światło błyskowe.
Oświetlenie można kontrolować ręcznie, gdy pojawi się odpowiedni komunikat, lub automatycznie za pomocą kontrolera Arduino z dodatkowym oświetleniem do automatycznego testowania. Nowy folder narzędzi lighting_control_utils
gromadzi kod służący do sterowania oświetleniem w testach.
scene2_a/test_yuv_jpeg_capture_sameness.py
Android 13 zawiera test test_yuv_jpeg_capture_sameness
Parametry
streamUseCase
: określa, czy kamera obsługuje strumieniowanie.android.jpeg.quality
: ustawia jakość JPEG na 100.
Metoda
Ten test rejestruje 2 obrazy w największych wspólnych formatach YUV i JPEG z tymi samymi proporcjami co największy format JPEG, o rozdzielczości nieprzekraczającej 1920 x 1440. Test ustawia wartość jpeg.quality
na 100 i przechwytuje żądanie z dwoma powierzchniami. Następnie konwertuje oba obrazy na tablice RGB i oblicza 3D root mean square (RMS) między tymi dwoma obrazami. Tolerancja różnicy jest ustawiona na 1%.
Testowanie filmów
ITS aparatu obsługuje testowanie filmów w Androidzie 13.
Android 13 zawiera te testy:
Scena | Nazwa testu | Pierwszy poziom API | Opis |
---|---|---|---|
4 | test_preview_stabilization_fov | 33 | Sprawdzanie, czy podgląd filmu nie jest zbyt przycięty po włączeniu stabilizacji. |
4 | test_video_aspect_ratio_and_crop | 33 | Potwierdź formaty filmów, pole widzenia, format obrazu i przycinanie. |
sensor_fusion | test_preview_stabilition | 33 | Sprawdzanie, czy stabilizacja podglądu działa prawidłowo. |
sensor_fusion | test_video_stabilition | 33 | Potwierdza, że stabilizacja wideo działa. |
scene4/test_preview_stabilization_fov.py
Android 13 zawiera test test_preview_stabilization_fov
Ten test sprawdza obsługiwane rozmiary podglądu, aby upewnić się, że pole widzenia nie jest nieprawidłowo przycięte.
Metoda
Podczas testu rejestrowane są 2 filmy: jeden ze włączoną stabilizacją podglądu, a drugi bez niej. Z każdego filmu wybierany jest reprezentatywny kadr, który jest analizowany pod kątem zmian pola widzenia w obu filmach w stosunku do specyfikacji.
Test sprawdza te parametry z włączoną i wyłączoną stabilizacją podglądu:
- Kształt koła pozostaje stały.
- Środek okręgu pozostaje stabilny.
- Rozmiar koła zmienia się o maksymalnie 20%, co oznacza, że pole widzenia zmienia się o maksymalnie 20%.
scene4/test_video_aspect_ratio_and_crop.py
Android 13 zawiera test test_video_aspect_ratio_and_crop
Podobnie jak w przypadku testu test_aspect_ratio_and_crop
dotyczących zdjęć, ten test sprawdza obsługiwane formaty wideo, aby upewnić się, że klatki wideo nie są nieprawidłowo rozciągnięte ani przycięte.
Testowane są wszystkie podawane przez użytkowników jakości filmów. Jeśli kamera obsługuje HLG10
, testowany jest film 10-bitowy.
Android 13 dodaje metodę get_available_video_qualities
do klasy its_session_utils
. Aby umożliwić udostępnianie wspólnego kodu w dotychczasowych testach, Android 13 zawiera też 2 nowe funkcje pomocnicze: image_fov_utils
i video_processing_utils
.
Metoda
Podczas testu jest rejestrowane zdjęcie referencyjne w formacie RAW lub JPEG o najwyższej rozdzielczości, jeśli format RAW nie jest obsługiwany. Na podstawie obrazu odniesienia określane są rozmiar i położenie koła. Następnie krótkie filmy są nagrywane we wszystkich obsługiwanych jakościach. Ostatni klatkowy punkt odniesienia jest wyodrębniony z każdego poziomu jakości. Na podstawie ramki odniesienia obliczane są pole widzenia (FoV), wyśrodkowanie (przycięcie) i współczynnik proporcji dla każdej jakości filmu.
W przypadku obliczenia pola widzenia test porównuje rozmiar koła ramki wideo z obliczoną wielkością koła na podstawie obrazu odniesienia i rozmiarów formatu wideo. W przypadku sprawdzania przycięcia test porównuje wyśrodkowanie ramki filmu z wyśrodkowaniem obrazu referencyjnego. W przypadku sprawdzania proporcji sceny, czyli dużego czarnego okręgu na białym tle, test określa proporcje obrazu i sprawdza, czy nie jest on zniekształcony.
sensor_fusion/test_preview_stabilization.py
Android 13 zawiera test test_preview_stabilization
, który sprawdza wszystkie obsługiwane jakości podglądu do 1920 x 1080. Test wykorzystuje stanowisko testowe sensor fusion i wymaga nowego kontrolera sensor fusion w wersji 2 lub aktualizacji oprogramowania układowego w poprzednich wersjach kontrolera Arduino. Więcej informacji o nowym kontrolerze znajdziesz w artykule Aktualizacje i dodatki sprzętowe.
Metoda
Telefon jest powoli przemieszczany pod kątem około 15 stopni przy włączonej stabilizacji podglądu. Następnie obracanie obrazów jest porównywane z obrotem żyroskopu.
sensor_fusion/test_video_stabilization.py
Android 13 wprowadza test test_video_stabilization
, który sprawdza obsługiwane jakości wideo do 1920 x 1080. Filmy o niskiej rozdzielczości QCIF są wykluczone. Test wykorzystuje stanowisko testowe sensor fusion i wymaga nowego kontrolera sensor fusion w wersji 2 lub aktualizacji oprogramowania w poprzednich wersjach kontrolera Arduino. Więcej informacji o nowym kontrolerze znajdziesz w artykule Aktualizacje i dodatki sprzętowe.
Metoda
Urządzenie testowe przesuwa telefon powoli pod kątem około 15 stopni przy włączonej stabilizacji podglądu. Następnie obracanie obrazów jest porównywane z obrotem żyroskopu.
Aktualizacje i dodatki sprzętowe
Android 13 zawiera uaktualnienie kontrolera fuzji sensorów na podstawie Arduino w wersji 2. Uaktualnienie obejmuje zmiany zarówno sprzętowe, jak i oprogramowania układowego. Uaktualnienie umożliwia kontrolowanie szybkości obrotu i kontrolowanie oświetlenia. Uaktualnienie obejmuje też nową osłonę (patrz rys. 1), która zapewnia 3 kanały obrotu i 3 kanały sterowania oświetleniem.
Rysunek 1. Płytka Arduino rev2.0 z kontrolą obrotu i oświetlenia
Dodatkowo w przypadku iOS 13 oprogramowanie dotychczasowych kontrolerów musi zostać zaktualizowane, aby umożliwić kontrolowanie prędkości obrotów. Oprogramowanie można pobrać z tych miejsc:
Więcej informacji o nowym kontrolerze znajdziesz w artykule Kontroler fuzji sensorów w Androidzie 13.
Pomoc dotycząca testowania składanych
Android 13 obsługuje testowanie urządzeń składanych. Aby włączyć interfejs API wielokamery w przypadku składanych urządzeń, podczas testowania wymagany jest stan telefonu (Folded
lub Unfolded
).
Aby umożliwić sprawdzanie stanu telefonu we wszystkich DUT-ach, w tym telefonach nieskładanych, uruchom to polecenie adb po połączeniu DUT-a z hostem.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier