Informacje o wersji pakietu Camera Image Test Suite dla systemu Android 13

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

Oprócz wersji i bibliotek Pythona obsługiwanych w systemie Android 12 system Android 13 obsługuje następujące wersje języka Python:

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.

Tarcza Arduino wersja 2.0

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