Wersja Androida 13 zawiera kilka zmian w ITS aparatu. Oprócz coraz liczniejszych zmian, takich jak zaktualizowany Python i wersje pakietów oraz testowanie aktualizacji sprzętu, Android 13 obsługuje testowanie wideo.
Ta strona zawiera podsumowanie zmian w ITS aparatu na Androidzie 13. Zmiany te można podzielić na 7 większych 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 elementów
Python i wersje 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
- Poduszka 8.3.1
- PyYAML 5.4.1
- Mobly 1.11
- FFmpeg 4.4.1
Dodania 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 podstawie 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
wykorzystuje 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 rejestrowanie RAW z największym rejestrowaniem YUV, nawet jeśli współczynniki proporcji obrazu 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 UW.
scene3/test_lens_position.py
Test test_lens_position
został wycofany w Androidzie 13.
scen6/zoom_testowy.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
W ramach testu konfiguruje się żądanie przechwytywania lampy błyskowej i prezentuje scenę wymagającą zdarzenia lampy błyskowej. Oświetlenie w zestawie testowym i tablecie jest wyłączone, aby algorytm automatycznej ekspozycji spojrzał na ciemną scenę. 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 zapisach doszło do uruchomienia Flasha.
Oświetlenie może być sterowane ręcznie po wyświetleniu odpowiedniego prompta lub automatycznie za pomocą kontrolera Arduino z dodatkowym modułem sterowania oświetleniem, który umożliwia automatyczne testowanie. Nowy folder narzędzi lighting_control_utils
gromadzi kod 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
W ramach tego testu zostaną zrobione 2 obrazy w największych popularnych formatach YUV i JPEG o tym samym współczynniku proporcji 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
Camera ITS dodaje obsługę testowania wideo 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, współczynnik proporcji i przycinanie. |
czujnik_fuzji | test_preview_stabilition | 33 | Sprawdzanie, czy stabilizacja podglądu działa prawidłowo. |
sensor_fusion | test_video_stabilition | 33 | Potwierdza działanie stabilizacji wideo. |
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ą stabilizacja 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:
- Zaokrąglenie okręgu jest stałe.
- Środek okręgu jest stabilny.
- Rozmiar koła zmienia się o maksymalnie 20%, co oznacza, że pole widzenia zmienia się maksymalnie o 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
, sprawdzany jest film 10-bitowy.
Android 13 dodaje metodę get_available_video_qualities
do klasy its_session_utils
. Aby udostępnić wspólny kod w istniejących testach, Android 13 zawiera też 2 nowe funkcje narzędziowe: 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 referencyjnego określamy rozmiar i lokalizację okręgu. 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. Aby sprawdzić proporcje obrazu, wykorzystując scenę, czyli duże czarne koło na białym tle, test określa współczynnik proporcji okręgu i sprawdza, czy klatka nie jest zniekształcona.
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 użycia nowego kontrolera sensor fusion w wersji 2 lub aktualizacji oprogramowania układu z wcześniejszych wersji 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. W ramach uaktualnienia wprowadziliśmy również nową tarczę (pokazaną na rys. 1), w której dostępne są 3 kanały obrotu i 3 kanały sterowania oświetleniem.
Rysunek 1. Arduino Shield rev2.0 z regulacją obrotu i oświetlenia
Dodatkowo w wersji 13 trzeba zaktualizować oprogramowanie istniejących kontrolerów, aby umożliwić sterowanie prędkością obrotu. Można je pobrać z:
Więcej informacji o nowym kontrolerze znajdziesz w artykule o kontrolerze z czujnikiem czujnika Android 13 w Androidzie 13.
Pomoc dotycząca testowania składanych
Android 13 obsługuje testowanie urządzeń składanych. Aby włączyć interfejs API dla wielu kamer 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 w 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