Rilis Android 13 menyertakan sejumlah perubahan pada Camera ITS . Selain perubahan inkremental seperti Python yang diperbarui dan versi paket serta pengujian pembaruan perangkat keras, Android 13 mendukung pengujian video.
Halaman ini merangkum perubahan Camera ITS untuk Android 13. Perubahan tersebut terbagi dalam tujuh kategori besar:
- Python dan versi paket
- Penambahan file konfigurasi
- Uji perubahan
- Tes berbasis tablet baru
- Pengujian video
- Pembaruan dan penambahan perangkat keras
- Dukungan pengujian lipat
Python dan versi paket
Android 13 mendukung versi Python berikut selain versi dan pustaka Python yang didukung di Android 12:
- Piton 3.9.2
- Open CV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Bantal 8.3.1
- PyYAML 5.4.1
- Mobil 1.11
- FFmpeg 4.4.1
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 diuji (DUT) dapat dilipat atau tidak, file config.yml
memerlukan parameter tambahan ketiga yang harus ditambahkan ke bagian fusi berbasis tablet dan sensor.
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
Uji perubahan
scene1_1/test_black_white.py
Pengujian test_black_white
memiliki pemeriksaan saturasi saluran yang konsisten dengan versi Android sebelumnya, yang berarti 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 RAW yang lebih baik. Jika pengujian tidak dapat menemukan format umum antara format RAW sensor dan format tangkapan YUV, pengujian akan membandingkan tangkapan RAW dengan tangkapan YUV terbesar meskipun rasio aspeknya berbeda.
scene2_a/test_faces.py
test_faces
di refactored 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 tangkapan kamera UW yang dipangkas.
scene3/test_lens_position.py
Pengujian test_lens_position
tidak digunakan lagi di Android 13.
scene6/test_zoom.py
Uji test_zoom
untuk memudahkan pengujian sistem tiga dan empat kamera. Jika kamera menguji dengan benar pada rentang rasio 10x dalam zoom, pengujian keluar dengan benar. Ini memungkinkan pengujian zoom dilakukan pada jarak grafik tunggal.
scene_change/test_scene_change.py
Pengujian test_scene_change
tidak digunakan lagi di Android 13.
Tes berbasis tablet baru
Android 13 menyertakan dua pengujian berbasis tablet baru. Kedua pengujian tersebut diamanatkan untuk peluncuran perangkat dengan Android 13, tetapi dilewati untuk peningkatan perangkat ke Android 13.
Pemandangan | Nama tes | Tingkat API pertama | Keterangan |
---|---|---|---|
2_a | test_auto_flash | 33 | Mengkonfirmasi adegan gelap memicu flash otomatis. |
2_b | test_yuv_jpg_capture_sameness | 33 | Mengonfirmasi YUV dan JPEG masih menangkap bit-wise identik. |
scene2_a/test_auto_flash.py
Android 13 menambahkan test_auto_flash
test.
Parameter
-
flash
: Lewati pengujian jika flash tidak tersedia.
metode
Pengujian ini mengonfigurasi permintaan pengambilan untuk flash otomatis dan menampilkan adegan yang memerlukan peristiwa flash. Pencahayaan di rig pengujian dan tablet dimatikan untuk menghadirkan pemandangan gelap untuk algoritme eksposur otomatis. Tes mengonfigurasi urutan NUM_FRAMES
tangkapan dengan flash otomatis diaktifkan. Jika pengaturan AE_STATE
mengembalikan FLASH_REQUIRED
tes memverifikasi bahwa flash ditembakkan dalam tangkapan.
Pencahayaan dapat dikontrol secara manual saat diminta, atau secara otomatis dengan pengontrol Arduino dengan kontrol pencahayaan 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 menangkap 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 menangkap permintaan permukaan ganda. Itu kemudian mengubah kedua gambar menjadi array RGB dan menghitung perbedaan root mean square (RMS) 3D antara dua gambar. Toleransi perbedaan diatur ke 1%.
Pengujian video
Camera ITS menambahkan dukungan untuk pengujian video di Android 13.
Android 13 menambahkan pengujian berikut:
Pemandangan | Nama tes | Tingkat API pertama | Keterangan |
---|---|---|---|
4 | test_preview_stabilization_fov | 33 | Memastikan pratinjau video tidak terpotong terlalu banyak dengan stabilisasi diaktifkan. |
4 | test_video_aspect_ratio_and_crop | 33 | Mengonfirmasi format video FoV, rasio aspek, dan pemotongan. |
sensor_fusion | uji_pratinjau_stabilisasi | 33 | Mengonfirmasi stabilisasi pratinjau berfungsi. | sensor_fusion | uji_video_stabilisasi | 33 | Mengonfirmasi 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
Tes menangkap dua video, satu dengan stabilisasi pratinjau aktif, dan satu dengan stabilisasi pratinjau nonaktif. Bingkai representatif dipilih dari setiap video, dan dianalisis untuk memastikan bahwa perubahan FoV di kedua video sesuai 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%, artinya 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 diam, pengujian ini memeriksa format video yang didukung untuk memastikan bingkai video tidak direntangkan atau dipangkas secara tidak tepat. Semua kualitas video yang dilaporkan sendiri 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
Tes menangkap 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. Bingkai referensi akhir diekstraksi dari setiap kualitas video. Dari bingkai referensi, field-of-view (FoV), pemusatan (crop), dan rasio aspek dihitung untuk setiap kualitas video.
Untuk penghitungan FoV, pengujian membandingkan ukuran lingkaran bingkai video dengan ukuran lingkaran yang dihitung dari gambar referensi dan ukuran format video. Untuk pemeriksaan krop, pengujian membandingkan pemusatan bingkai video dengan pemusatan gambar referensi. Untuk pemeriksaan rasio aspek, dengan menggunakan pemandangan, 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. Tes ini menggunakan rig uji fusi sensor dan memerlukan pengontrol fusi sensor revisi 2 baru atau peningkatan firmware dari versi pengontrol Arduino sebelumnya. Untuk detail selengkapnya tentang pengontrol baru, lihat Pembaruan dan penambahan perangkat keras .
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 beresolusi rendah QCIF dikecualikan. Tes ini menggunakan rig uji fusi sensor dan memerlukan pengontrol fusi sensor revisi 2 baru atau peningkatan firmware dari versi pengontrol Arduino sebelumnya. Untuk detail selengkapnya tentang pengontrol baru, lihat Pembaruan dan penambahan perangkat keras .
metode
Rig uji menggerakkan ponsel secara perlahan pada sudut sekitar 15 derajat dengan stabilisasi pratinjau diaktifkan. Rotasi gambar kemudian dibandingkan dengan rotasi giroskop.
Pembaruan dan penambahan perangkat keras
Android 13 menyertakan pemutakhiran ke pengontrol fusi sensor revisi 2 berbasis Arduino . Pembaruan ini mencakup perubahan perangkat keras dan firmware. Pembaruan memungkinkan pengontrol untuk mengatur kecepatan rotasi dan kontrol petir. Pembaruan juga mencakup pelindung baru (ditunjukkan pada Gambar 1), yang menyediakan tiga saluran rotasi dan tiga saluran kontrol pencahayaan.
Gambar 1. Arduino shield rev2.0 dengan kontrol rotasi dan pencahayaan
Selain itu, untuk 13, firmware pengontrol yang ada harus diperbarui untuk mengaktifkan kontrol kecepatan putaran. Firmware ini dapat diunduh dari:
Untuk informasi selengkapnya tentang pengontrol baru, lihat pengontrol fusi sensor Android 13 .
Dukungan pengujian lipat
Android 13 menyertakan dukungan pengujian untuk perangkat foldable. Untuk mengaktifkan API multikamera untuk perangkat foldable, status ponsel ( Folded
atau Unfolded
) diperlukan selama pengujian. Untuk mengaktifkan polling status ponsel untuk semua DUT, termasuk ponsel yang tidak dapat dilipat, jalankan perintah adb berikut setelah DUT terhubung ke host.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier