Informacje o wersji pakietu Android 13 Camera Image Test Suite

Wersja Androida 13 zawiera szereg zmian w Camera ITS . Oprócz stopniowych zmian, takich jak zaktualizowane wersje Pythona i pakietów oraz testowe aktualizacje sprzętu, system Android 13 obsługuje testy wideo.

Ta strona podsumowuje zmiany ITS aparatu dla Androida 13. Zmiany dzielą się na siedem szerokich kategorii:

Wersje Pythona i pakietów

Android 13 obsługuje następujące wersje Pythona oprócz wersji Pythona i bibliotek obsługiwanych w Androidzie 12:

Dodatki do pliku konfiguracyjnego

W związku z dodaniem sterowania oświetleniem do testu test_auto_flash.py plik config.yml potrzebuje 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 części dotyczącej tabletu, jak i łą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

scene1_1/test_black_white.py

Test test_black_white ma sprawdzanie nasycenia kanałów zgodne z poprzednimi wersjami Androida, co oznacza, że ​​wymaganym pierwszym poziomem API do sprawdzania 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 można znaleźć wspólnego formatu między formatem RAW czujnika a formatami przechwytywania YUV, test porównuje przechwycony obraz 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 .

scene2_a/test_num_faces.py

Test test_num_faces obsługuje kadrowanie czujnika i prawidłowo umieszcza prostokąty twarzy na przyciętych ujęciach 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ł zrefaktoryzowany, aby umożliwić łatwiejsze testowanie systemów z trzema i czterema kamerami. Jeśli kamera przetestuje prawidłowo w zakresie powiększenia 10x, test zakończy się poprawnie. Umożliwia to przeprowadzanie testów powiększenia w odległości pojedynczej mapy.

scene_change/test_scene_change.py

Test test_scene_change jest przestarzały w systemie Android 13.

Nowe testy oparte na tablecie

Android 13 zawiera dwa nowe testy oparte na tabletach. Oba testy są obowiązkowe dla urządzeń uruchamianych z systemem Android 13, ale są pomijane w przypadku urządzeń aktualizujących system 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 YUV i JPEG są bitowo identyczne.

scene2_a/test_auto_flash.py

Android 13 dodaje test_auto_flash .

Parametry

  • flash : Pomija test, jeśli flash nie jest dostępny.

metoda

Test konfiguruje żądanie przechwycenia dla automatycznego błysku i przedstawia scenę wymagającą zdarzenia błysku. Oświetlenie stanowiska testowego i tabletu jest wyłączone, aby przedstawić ciemną scenę dla algorytmu automatycznej ekspozycji. Test konfiguruje sekwencję przechwytywania NUM_FRAMES z włączonym automatycznym flashowaniem. Jeśli ustawienie AE_STATE zwróci wartość FLASH_REQUIRED , test weryfikuje, czy w przechwyconych obrazach wyzwalana jest lampa błyskowa.

Oświetleniem można sterować ręcznie po wyświetleniu monitu lub automatycznie za pomocą kontrolera Arduino z dodanym sterowaniem oświetleniem w celu zautomatyzowanego testowania. 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

Ten test rejestruje dwa obrazy przy użyciu największych popularnych formatów YUV i JPEG o takim samym współczynniku proporcji jak największy format JPEG, nieprzekraczającym 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 różnicę średniej kwadratowej (RMS) 3D między dwoma obrazami. Tolerancja różnicy jest ustawiona na 1%.

Testy 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, współczynnik proporcji i kadrowanie.
sensor_fusion test_preview_stabilizacja 33 Potwierdza działanie stabilizacji podglądu.
sensor_fusion test_stabilizacji_wideo 33 Potwierdza działanie stabilizacji wideo.

scene4/test_preview_stabilization_fov.py

Android 13 dodaje test_preview_stabilization_fov . Ten test sprawdza obsługiwane rozmiary podglądu, aby upewnić się, że FoV nie jest niewłaściwie przycięte.

metoda

Test przechwytuje dwa filmy, jeden z włączoną stabilizacją podglądu, a drugi z wyłączoną stabilizacją podglądu. Z każdego filmu wybierana jest reprezentatywna klatka, która jest analizowana w celu upewnienia się, że zmiany FoV w dwóch filmach mieszczą się w specyfikacji.

W szczególności test sprawdza następujące parametry ze stabilizacją podglądu i bez:

  • Okrągłość koła pozostaje stała.
  • Środek koła pozostaje stabilny.
  • Rozmiar koła 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_video_aspect_ratio_and_crop test. Podobnie do testu test_aspect_ratio_and_crop dla nieruchomych przechwyceń, 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łoszone przez siebie jakości 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 z istniejącymi testami, Android 13 zawiera również dwie nowe funkcje narzędziowe, image_fov_utils i video_processing_utils .

metoda

Test rejestruje obraz referencyjny w formacie RAW lub w formacie JPEG o najwyższej rozdzielczości, jeśli format RAW nie jest obsługiwany. Na podstawie obrazu referencyjnego określa się rozmiar i położenie okręgu. Następnie nagrywane są krótkie filmy ze wszystkimi obsługiwanymi jakościami wideo. Ostateczna klatka odniesienia jest wyodrębniana z każdej jakości wideo. Na podstawie klatki odniesienia dla każdej jakości wideo obliczane jest pole widzenia (FoV), wyśrodkowanie (przycięcie) i współczynnik proporcji.

W celu obliczenia FoV test porównuje rozmiar okręgu klatki wideo z obliczonym rozmiarem okręgu na podstawie rozmiaru obrazu referencyjnego i formatu wideo. W przypadku kontroli kadrowania test porównuje wyśrodkowanie klatki wideo z wyśrodkowaniem obrazu referencyjnego. W celu sprawdzenia współczynnika proporcji przy użyciu sceny, która jest dużym czarnym kółkiem na białym tle, test określa współczynnik kształtu koła i sprawdza, czy ramka nie jest zniekształcona.

sensor_fusion/test_preview_stabilization.py

Android 13 dodaje test_preview_stabilization test, który sprawdza wszystkie obsługiwane jakości podglądu do 1920x1080. Test wykorzystuje platformę do testowania fuzji czujników i wymaga nowego kontrolera fuzji czujników w wersji 2 lub aktualizacji oprogramowania układowego wcześniejszych wersji kontrolera Arduino. Aby uzyskać więcej informacji na temat nowego kontrolera, zobacz Aktualizacje i dodatki sprzętowe .

metoda

Telefon porusza się powoli pod kątem około 15 stopni z włączoną stabilizacją podglądu. Obrót obrazów jest następnie porównywany z obrotem żyroskopu.

sensor_fusion/test_video_stabilization.py

Android 13 dodaje test_video_stabilization test, który sprawdza obsługiwane jakości wideo do 1920x1080. Jakość wideo w niskiej rozdzielczości QCIF jest wykluczona. Test wykorzystuje platformę do testowania fuzji czujników i wymaga nowego kontrolera fuzji czujników w wersji 2 lub aktualizacji oprogramowania układowego wcześniejszych wersji kontrolera Arduino. Aby uzyskać więcej informacji na temat nowego kontrolera, zobacz Aktualizacje i dodatki sprzętowe .

metoda

Platforma testowa powoli przesuwa telefon pod kątem około 15 stopni z włączoną stabilizacją podglądu. Obrót obrazów jest następnie porównywany 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 układowego. Aktualizacja umożliwia sterownikowi ustawienie prędkości obrotowej oraz sterowanie oświetleniem. Modernizacja obejmuje również nową tarczę (pokazaną na rysunku 1), która zapewnia trzy kanały obrotu i trzy kanały sterowania oświetleniem.

Tarcza Arduino wersja 2.0

Rysunek 1. Nakładka Arduino rev2.0 ze sterowaniem obrotem i oświetleniem

Dodatkowo dla wersji 13 należy zaktualizować firmware istniejących sterowników, aby umożliwić sterowanie prędkością obrotową. To oprogramowanie układowe można pobrać z:

Aby uzyskać więcej informacji na temat nowego kontrolera, zobacz Kontroler fuzji czujników z systemem Android 13 .

Składane wsparcie testowe

Android 13 obejmuje testowanie obsługi 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ć sondowanie stanu telefonu dla wszystkich DUT, w tym telefonów nieskładanych, uruchom następujące polecenie adb po podłączeniu DUT do hosta.

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier