Catatan rilis Camera Image Test Suite Android 13

Rilis Android 13 menyertakan sejumlah perubahan pada Camera ITS. Selain perubahan inkremental seperti versi Python dan paket yang diupdate serta update hardware pengujian, Android 13 mendukung pengujian video.

Halaman ini merangkum perubahan ITS Kamera untuk Android 13. Perubahan ini terbagi ke dalam tujuh kategori besar:

Versi Python dan paket

Android 13 mendukung versi Python berikut selain versi dan library Python yang didukung di Android 12:

Penambahan file konfigurasi

Karena penambahan kontrol pencahayaan untuk pengujian test_auto_flash.py, file config.yml memerlukan dua parameter tambahan untuk pengontrol dan saluran pencahayaan. Untuk mengidentifikasi apakah perangkat yang sedang diuji (DUT) bersifat foldable atau tidak, file config.yml memerlukan parameter tambahan ketiga yang harus ditambahkan ke bagian fusi sensor dan berbasis tablet.

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

Menguji perubahan

scene1_1/test_black_white.py

Pengujian test_black_white memiliki pemeriksaan saturasi saluran yang konsisten dengan versi Android sebelumnya, yang berarti bahwa API level pertama yang diperlukan untuk pemeriksaan saturasi saluran adalah Android 10.

scene1_2/test_yuv_plus_raw.py

Pengujian test_yuv_plus_raw menangani sensor non-16:9 atau 4:3 untuk memberikan dukungan yang lebih baik untuk RAW. Jika pengujian tidak dapat menemukan format umum antara format RAW sensor dan format pengambilan YUV, pengujian akan membandingkan pengambilan RAW dengan pengambilan YUV terbesar meskipun rasio aspeknya berbeda.

scene2_a/test_faces.py

test_faces difaktorkan ulang menjadi test_num_faces.

scene2_a/test_num_faces.py

Pengujian test_num_faces menangani pemangkasan sensor dan menempatkan persegi panjang wajah dengan benar pada rekaman kamera UW yang dipangkas.

scene3/test_lens_position.py

Pengujian test_lens_position tidak digunakan lagi di Android 13.

scene6/test_zoom.py

Pengujian test_zoom difaktorkan ulang untuk memungkinkan pengujian sistem kamera tiga dan empat yang lebih mudah. Jika kamera diuji dengan benar pada rentang rasio 10x dalam zoom, pengujian akan keluar dengan benar. Hal ini memungkinkan pengujian zoom dilakukan pada satu jarak diagram.

scene_change/test_scene_change.py

Pengujian test_scene_change tidak digunakan lagi di Android 13.

Pengujian baru berbasis tablet

Android 13 menyertakan dua pengujian baru berbasis tablet. Kedua pengujian ini diwajibkan untuk perangkat yang diluncurkan dengan Android 13, tetapi dilewati untuk perangkat yang diupgrade ke Android 13.

Scene Nama pengujian Level API pertama Deskripsi
2_a uji_auto_flash 33 Mengonfirmasi bahwa scene gelap memicu flash otomatis.
2_b test_yuv_jpg_capture_sameness 33 Mengonfirmasi bahwa pengambilan YUV dan JPEG masih identik secara bit.

scene2_a/test_auto_flash.py

Android 13 menambahkan pengujian test_auto_flash.

Parameter

  • flash: Melewati pengujian jika flash tidak tersedia.

Metode

Pengujian ini mengonfigurasi permintaan pengambilan untuk flash otomatis dan menampilkan scene yang memerlukan peristiwa flash. Pencahayaan di rig pengujian dan tablet dinonaktifkan untuk menampilkan tampilan gelap bagi algoritma eksposur otomatis. Pengujian mengonfigurasi urutan pengambilan NUM_FRAMES dengan flash otomatis diaktifkan. Jika setelan AE_STATE menampilkan FLASH_REQUIRED, pengujian akan memverifikasi bahwa flash diaktifkan dalam pengambilan gambar.

Pencahayaan dapat dikontrol secara manual saat diminta, atau secara otomatis dengan pengontrol Arduino dengan kontrol pencahayaan yang ditambahkan untuk pengujian otomatis. Folder utilitas baru lighting_control_utils memusatkan kode untuk mengontrol pencahayaan dalam pengujian.

scene2_a/test_yuv_jpeg_capture_sameness.py

Android 13 menambahkan pengujian test_yuv_jpeg_capture_sameness.

Parameter

  • streamUseCase: Menentukan apakah kamera mendukung kasus penggunaan streaming.
  • android.jpeg.quality: Menyetel kualitas JPEG ke 100.

Metode

Pengujian ini mengambil dua gambar menggunakan format YUV dan JPEG umum terbesar dengan rasio aspek yang sama dengan format JPEG terbesar yang tidak melebihi resolusi 1920x1440. Pengujian menetapkan jpeg.quality ke 100 dan mengambil permintaan permukaan ganda. Kemudian, kode ini mengonversi kedua gambar menjadi array RGB dan menghitung perbedaan akar rata-rata kuadrat (RMS) 3D antara kedua gambar. Toleransi perbedaan ditetapkan ke 1%.

Pengujian video

Camera ITS menambahkan dukungan untuk pengujian video di Android 13.

Android 13 menambahkan pengujian berikut:

Scene Nama pengujian Level API pertama Deskripsi
4 test_preview_stabilization_fov 33 Memastikan pratinjau video tidak dipangkas terlalu banyak dengan stabilisasi diaktifkan.
4 test_video_aspect_ratio_and_crop 33 Mengonfirmasi format video FoV, rasio aspek, dan pemangkasan.
sensor_fusion test_preview_stabilition 33 Mengonfirmasi bahwa stabilisasi pratinjau berfungsi.
sensor_fusion test_video_stabilition 33 Mengonfirmasi bahwa stabilisasi video berfungsi.

scene4/test_preview_stabilization_fov.py

Android 13 menambahkan pengujian test_preview_stabilization_fov. Pengujian ini memeriksa ukuran pratinjau yang didukung untuk memastikan FoV tidak dipangkas secara tidak tepat.

Metode

Pengujian ini merekam dua video, satu dengan stabilisasi pratinjau aktif, dan satu dengan stabilisasi pratinjau nonaktif. Frame perwakilan dipilih dari setiap video, dan dianalisis untuk memastikan bahwa perubahan FoV dalam dua video berada dalam spesifikasi.

Secara khusus, pengujian memeriksa parameter berikut dengan dan tanpa stabilisasi pratinjau:

  • Kebulatan lingkaran tetap konstan.
  • Pusat lingkaran tetap stabil.
  • Ukuran lingkaran berubah tidak lebih dari 20%, yang berarti FoV berubah paling banyak 20%.

scene4/test_video_aspect_ratio_and_crop.py

Android 13 menambahkan pengujian test_video_aspect_ratio_and_crop. Serupa dengan pengujian test_aspect_ratio_and_crop untuk pengambilan gambar diam, pengujian ini memeriksa format video yang didukung untuk memastikan frame video tidak diregangkan atau dipangkas secara tidak tepat. Semua kualitas video yang dilaporkan sendiri akan diuji. Selain itu, jika kamera mendukung video HLG10, video 10-bit akan diuji.

Android 13 menambahkan metode get_available_video_qualities ke its_session_utils. Untuk berbagi kode umum dengan pengujian yang ada, Android 13 juga menyertakan dua fungsi utilitas baru, image_fov_utils dan video_processing_utils.

Metode

Pengujian mengambil gambar referensi dengan format RAW atau format JPEG dengan resolusi tertinggi jika RAW tidak didukung. Dari gambar referensi, ukuran dan lokasi lingkaran ditentukan. Video pendek kemudian diambil dengan semua kualitas video yang didukung. Frame referensi akhir diekstrak dari setiap kualitas video. Dari frame referensi, ruang pandang (FoV), pemusatan (pangkas), dan rasio aspek dihitung untuk setiap kualitas video.

Untuk penghitungan FoV, pengujian membandingkan ukuran lingkaran frame video dengan ukuran lingkaran yang dihitung dari ukuran format video dan gambar referensi. Untuk pemeriksaan pangkas, pengujian membandingkan pemusatan frame video dengan pemusatan gambar referensi. Untuk pemeriksaan rasio aspek, menggunakan tampilan, yaitu lingkaran hitam besar dengan latar belakang putih, pengujian menentukan rasio aspek lingkaran dan memverifikasi bahwa bingkai tidak terdistorsi.

sensor_fusion/test_preview_stabilization.py

Android 13 menambahkan pengujian test_preview_stabilization, yang menguji semua kualitas pratinjau yang didukung hingga 1920x1080. Pengujian ini menggunakan rig pengujian sensor fusion dan memerlukan pengontrol sensor fusion revisi 2 baru atau upgrade firmware versi pengontrol Arduino sebelumnya. Untuk mengetahui detail selengkapnya tentang pengontrol baru, lihat Penambahan dan update hardware.

Metode

Ponsel digerakkan perlahan dengan sudut sekitar 15 derajat dengan stabilisasi pratinjau diaktifkan. Rotasi gambar kemudian dibandingkan dengan rotasi giroskop.

sensor_fusion/test_video_stabilization.py

Android 13 menambahkan pengujian test_video_stabilization, yang menguji kualitas video yang didukung hingga 1920x1080. Kualitas video resolusi rendah QCIF dikecualikan. Pengujian ini menggunakan rig pengujian sensor fusion dan memerlukan pengontrol sensor fusion revisi 2 baru atau upgrade firmware versi pengontrol Arduino sebelumnya. Untuk mengetahui detail selengkapnya tentang pengontrol baru, lihat Penambahan dan update hardware.

Metode

Rig pengujian menggerakkan ponsel secara perlahan dengan sudut sekitar 15 derajat dengan pengaktifan stabilisasi pratinjau. Rotasi gambar kemudian dibandingkan dengan rotasi giroskop.

Update dan penambahan hardware

Android 13 menyertakan upgrade ke pengontrol penggabungan sensor revisi 2 berbasis Arduino. Upgrade ini mencakup perubahan hardware dan firmware. Upgrade ini memungkinkan pengontrol untuk menetapkan kecepatan rotasi dan kontrol kilat. Upgrade ini juga menyertakan pelindung baru (ditampilkan pada Gambar 1), yang menyediakan tiga saluran rotasi dan tiga saluran kontrol pencahayaan.

Arduino shield rev2.0

Gambar 1. Arduino shield rev2.0 dengan kontrol rotasi dan pencahayaan

Selain itu, untuk 13, firmware pengontrol yang ada harus diupdate untuk mengaktifkan kontrol kecepatan rotasi. Firmware ini dapat didownload dari:

Untuk informasi selengkapnya tentang pengontrol baru, lihat Pengontrol penggabungan sensor Android 13.

Dukungan pengujian perangkat foldable

Android 13 menyertakan dukungan pengujian untuk perangkat foldable. Untuk mengaktifkan multi-camera API untuk perangkat foldable, status ponsel (Folded atau Unfolded) diperlukan selama pengujian. Untuk mengaktifkan polling status ponsel untuk semua DUT, termasuk ponsel non-lipat, jalankan perintah adb berikut setelah DUT terhubung ke host.

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