Informacje o wersji Androida 13 Camera Image Test Suite

W Androidzie 13 wprowadzono 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 znajdziesz podsumowanie zmian w ITS aparatu w Androidzie 13. Zmiany dzielą się na 7 kategorii:

Wersje Pythona i pakietów

Android 13 obsługuje te wersje Pythona:

Dodatki do pliku konfiguracyjnego

Ze względu na dodanie sterowania oświetleniem w teście test_auto_flash.py plik config.yml wymaga 2 dodatkowych parametrów dla kontrolera i kanału oświetlenia. Aby określić, czy testowane urządzenie jest składane, config.yml wymaga trzeciego dodatkowego parametru, który należy dodać zarówno w sekcji dotyczącej tabletów, jak i w sekcji dotyczącej fuzji 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

Sprawdź zmiany

scene1_1/test_black_white.py

test_black_white test sprawdza nasycenie kanału w sposób zgodny z poprzednimi wersjami Androida, co oznacza, że wymagany pierwszy poziom interfejsu API do sprawdzania nasycenia kanału to Android 10.

scene1_2/test_yuv_plus_raw.py

Test test_yuv_plus_raw obsługuje matryce 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 przechwytywania YUV, porównuje przechwytywanie RAW z największym przechwytywaniem YUV, nawet jeśli współczynniki proporcji są różne.

scene2_a/test_faces.py

Wartość test_faces została przekształcona w test_num_faces.

scene2_a/test_num_faces.py

Test test_num_faces obsługuje przycinanie obrazu z czujnika i prawidłowo umieszcza prostokąty twarzy na przyciętych zdjęciach z aparatu ultraszerokokątnego.

scene3/test_lens_position.py

Test test_lens_position został wycofany w Androidzie 13.

scene6/test_zoom.py

test_zoom Test został zmodyfikowany, aby ułatwić testowanie systemów z 3 i 4 aparatami. Jeśli test kamery przebiegnie prawidłowo w zakresie powiększenia 10x, zakończy się poprawnie. Umożliwia to przeprowadzenie testu powiększenia w jednej odległości od tablicy.

scene_change/test_scene_change.py

Test test_scene_change został wycofany w Androidzie 13.

Nowe testy na tabletach

Android 13 zawiera 2 nowe testy na tabletach. Oba testy są wymagane w przypadku urządzeń wprowadzanych na rynek 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 ciemne sceny wywołują automatyczny błysk.
2_b test_yuv_jpg_capture_sameness 33 Potwierdza, że zapisy YUV i JPEG są identyczne bit po bicie.

scene2_a/test_auto_flash.py

W Androidzie 13 dodano test test_auto_flash.

Parametry

  • flash: Pomija test, jeśli Flash jest niedostępny.

Metoda

Test konfiguruje żądanie przechwytywania dla automatycznego błysku i przedstawia scenę wymagającą błysku. Oświetlenie w stanowisku testowym i na tablecie jest wyłączone, aby algorytm automatycznej ekspozycji mógł działać w ciemnym otoczeniu. Test konfiguruje sekwencję NUM_FRAMES zdjęć z włączoną automatyczną lampą błyskową. Jeśli ustawienie AE_STATE zwróci wartość FLASH_REQUIRED, test potwierdzi, że podczas rejestrowania obrazów włączono lampę błyskową.

Oświetleniem można sterować ręcznie po wyświetleniu odpowiedniego komunikatu lub automatycznie za pomocą kontrolera Arduino z dodanym sterowaniem oświetleniem na potrzeby testów automatycznych. Nowy folder narzędziowy lighting_control_utils zawiera kod do sterowania oświetleniem podczas testów.

scene2_a/test_yuv_jpeg_capture_sameness.py

W Androidzie 13 dodano test_yuv_jpeg_capture_sameness test.

Parametry

  • streamUseCase: określa, czy kamera obsługuje przypadek użycia strumienia.
  • android.jpeg.quality: ustawia jakość JPEG na 100.

Metoda

Ten test rejestruje 2 obrazy w największych popularnych formatach YUV i JPEG o tym samym współczynniku proporcji co największy format JPEG, który nie przekracza rozdzielczości 1920 x 1440. Zbiór testowy ustawia wartość jpeg.quality na 100 i rejestruje żądanie dotyczące dwóch powierzchni. Następnie przekształca oba obrazy w tablice RGB i oblicza trójwymiarową różnicę średniokwadratową (RMS) między nimi. Tolerancja różnicy jest ustawiona na 1%.

Testowanie filmów

W Androidzie 13 dodaliśmy do pakietu Camera ITS obsługę testowania wideo.

W Androidzie 13 dodano te testy:

Scena Nazwa testu Pierwszy poziom API Opis
4 test_preview_stabilization_fov 33 Sprawdza, czy podgląd wideo nie jest zbyt mocno przycięty po włączeniu stabilizacji.
4 test_video_aspect_ratio_and_crop 33 Potwierdza formaty wideo, pole widzenia, format obrazu i kadrowanie.
sensor_fusion test_preview_stabilition 33 Potwierdza, że stabilizacja podglądu działa.
sensor_fusion test_video_stabilition 33 Potwierdza, że stabilizacja wideo działa.

scene4/test_preview_stabilization_fov.py

W Androidzie 13 dodano test_preview_stabilization_fov test. Ten test sprawdza obsługiwane rozmiary podglądu, aby upewnić się, że pole widzenia nie jest nieprawidłowo przycięte.

Metoda

Test obejmuje nagranie 2 filmów: jednego ze stabilizacją podglądu i drugiego bez niej. Z każdego filmu wybierana jest reprezentatywna klatka, która jest analizowana pod kątem zmian pola widzenia w obu filmach. Zmiany te muszą mieścić się w specyfikacji.

Test sprawdza te parametry ze stabilizacją podglądu i bez niej:

  • Okrągłość koła pozostaje stała.
  • Środek okręgu pozostaje nieruchomy.
  • Rozmiar okręgu zmienia się o nie więcej niż 20%, co oznacza, że pole widzenia zmienia się o maksymalnie 20%.

scene4/test_video_aspect_ratio_and_crop.py

W Androidzie 13 dodano test_video_aspect_ratio_and_crop test. Podobnie jak w przypadku test_aspect_ratio_and_croptestu zdjęć ten test sprawdza obsługiwane formaty wideotest_aspect_ratio_and_crop, aby upewnić się, że klatki wideo nie są nieprawidłowo rozciągnięte lub przycięte. Testowane są wszystkie zgłoszone przez użytkowników jakości filmów. Dodatkowo, jeśli kamera obsługuje wideo HLG10, testowane jest 10-bitowe wideo.

W Androidzie 13 do klasy its_session_utils dodano metodę get_available_video_qualities. Aby udostępniać wspólny kod istniejącym testom, Android 13 zawiera też 2 nowe funkcje narzędziowe: image_fov_utilsvideo_processing_utils.

Metoda

Test wykonuje 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ślane są rozmiar i lokalizacja okręgu. Krótkie filmy są następnie nagrywane we wszystkich obsługiwanych rozdzielczościach. Ostatnia klatka referencyjna jest wyodrębniana z każdej jakości filmu. Na podstawie ramki odniesienia obliczane są pole widzenia, wyśrodkowanie (przycięcie) i współczynnik proporcji dla każdej jakości wideo.

W przypadku obliczania pola widzenia test porównuje rozmiar okręgu klatki wideo z rozmiarem okręgu obliczonym na podstawie rozmiarów obrazu referencyjnego i formatu wideo. W przypadku sprawdzania przycinania test porównuje wyśrodkowanie klatki filmu z wyśrodkowaniem obrazu referencyjnego. W przypadku sprawdzania proporcji obrazu test wykorzystuje scenę, która jest dużym czarnym okręgiem na białym tle. Określa proporcje okręgu i sprawdza, czy ramka nie jest zniekształcona.

sensor_fusion/test_preview_stabilization.py

W Androidzie 13 dodano test test_preview_stabilization, który sprawdza wszystkie obsługiwane jakości podglądu do 1920 x 1080. Test wykorzystuje stanowisko testowe fuzji czujników i wymaga nowego kontrolera fuzji czujników w wersji 2 lub aktualizacji oprogramowania układowego starszych wersji kontrolera Arduino. Więcej informacji o nowym kontrolerze znajdziesz w sekcji Aktualizacje i nowości dotyczące sprzętu.

Metoda

Telefon jest powoli przesuwany pod kątem około 15 stopni przy włączonej stabilizacji podglądu. Obrót obrazów jest następnie porównywany z obrotem żyroskopu.

sensor_fusion/test_video_stabilization.py

W Androidzie 13 dodano test_video_stabilization test, który sprawdza obsługiwane jakości wideo do 1920 x 1080. Jakość wideo o niskiej rozdzielczości QCIF jest wykluczona. Test wykorzystuje stanowisko testowe fuzji czujników i wymaga nowego kontrolera fuzji czujników w wersji 2 lub aktualizacji oprogramowania starszych wersji kontrolera Arduino. Więcej informacji o nowym kontrolerze znajdziesz w sekcji Aktualizacje i nowości dotyczące sprzętu.

Metoda

Podczas testu telefon jest powoli przesuwany pod kątem około 15 stopni przy włączonej stabilizacji podglądu. Obrót obrazów jest następnie porównywany z obrotem żyroskopu.

Aktualizacje i dodatki do sprzętu

Android 13 zawiera uaktualnioną wersję 2 kontrolera fuzji czujników opartego na Arduino. Uaktualnienie obejmuje zmiany zarówno sprzętu, jak i oprogramowania układowego. Umożliwia on ustawianie prędkości obrotowej i sterowanie oświetleniem. Ulepszenie obejmuje też nową osłonę (pokazaną na rysunku 1), która zapewnia 3 kanały obrotu i 3 kanały sterowania oświetleniem.

Arduino shield rev2.0

Rysunek 1. Płytka Arduino rev2.0 z regulacją obrotu i oświetlenia

Dodatkowo w przypadku wersji 13 oprogramowanie istniejących kontrolerów musi zostać zaktualizowane, aby umożliwić sterowanie prędkością obrotową. To oprogramowanie można pobrać ze strony:

Więcej informacji o nowym kontrolerze znajdziesz w artykule Kontroler fuzji czujników w Androidzie 13.

Pomoc dotycząca testowania urządzeń składanych

Android 13 obejmuje obsługę testowania urządzeń składanych. Aby włączyć interfejs API wielu kamer na urządzeniach składanych, podczas testowania wymagany jest stan telefonu (Folded lub Unfolded). Aby włączyć odpytywanie stanu telefonu na wszystkich urządzeniach testowych, w tym na telefonach niebędących urządzeniami składanymi, po podłączeniu urządzenia testowego do hosta uruchom to polecenie adb.

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