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 na Androidzie 13. Zmiany te można podzielić na 7 szerokich 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

Testowanie zmian

scene1_1/test_black_white.py

Test test_black_white sprawdza nasycenie kanału w sposób zgodny z poprzednimi wersjami Androida, co oznacza, że pierwszym wymaganym poziomem interfejsu API do sprawdzania nasycenia kanału jest 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

test_faces zostało przekształcone w test_num_faces.

scene2_a/test_num_faces.py

test_num_faces test obsługuje przycinanie 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 z 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 interfejsu 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ą nadal 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ą zdarzenia 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 scentralizowany kod do sterowania oświetleniem podczas testów.

scene2_a/test_yuv_jpeg_capture_sameness.py

W Androidzie 13 dodano test 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 2 obrazy w największych popularnych formatach YUV i JPEG o takich samych proporcjach jak największy format JPEG, który nie przekracza rozdzielczości 1920 x 1440. Zestaw testowy ustawia wartość jpeg.quality na 100 i przechwytuje żądanie dotyczące podwójnej 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

ITS aparatu dodaje obsługę testowania wideo w Androidzie 13.

W Androidzie 13 dodano te testy:

Scena Nazwa testu Pierwszy poziom interfejsu API Opis
4 test_preview_stabilization_fov 33 Potwierdza, że podgląd wideo nie jest zbyt mocno przycięty przy włączonej stabilizacji.
4 test_video_aspect_ratio_and_crop 33 Potwierdza pole widzenia, format obrazu i przycinanie formatów wideo.
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 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

Test obejmuje nagranie 2 filmów: jednego ze stabilizacją podglądu włączoną i drugiego z wyłączoną. 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 z włączoną i wyłączoną stabilizacją podglądu:

  • Okrągłość koła pozostaje stała.
  • Środek okręgu pozostaje stabilny.
  • 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 test_video_aspect_ratio_and_crop. Podobnie jak w przypadku test_aspect_ratio_and_croptestu zdjęć, ten test sprawdza obsługiwane formaty wideo, aby upewnić się, że klatki wideo nie są rozciągnięte ani nie są nieprawidłowo przycięte. Testowane są wszystkie zgłoszone przez użytkowników jakości filmów. Dodatkowo, jeśli aparat 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 zdjęcie referencyjne 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 położenie 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 współczynnika proporcji test wykorzystuje scenę, która jest dużym czarnym okręgiem na białym tle. Określa współczynnik proporcji okręgu i sprawdza, czy klatka nie jest zniekształcona.

sensor_fusion/test_preview_stabilization.py

W Androidzie 13 dodano test_preview_stabilization, który testuje 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. Uaktualnienie umożliwia sterownikowi 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 funkcją obracania i sterowania oświetleniem

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