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 termasuk dalam tujuh kategori luas:
- Versi Python dan paket
- Penambahan file konfigurasi
- Menguji perubahan
- Pengujian baru berbasis tablet
- Pengujian video
- Update dan penambahan hardware
- Dukungan pengujian perangkat foldable
Versi Python dan paket
Android 13 mendukung versi Python berikut selain versi dan library Python yang didukung di Android 12:
- Python 3.9.2
- OpenCV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Pillow 8.3.1
- PyYAML 5.4.1
- Mobly 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 sedang diuji (DUT) adalah perangkat foldable atau tidak, file config.yml
memerlukan parameter tambahan ketiga yang harus ditambahkan ke bagian berbasis tablet dan sensor fusion.
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 level API 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
Uji test_num_faces
menangani pemangkasan sensor dan menempatkan
persegi panjang wajah dengan benar pada hasil pengambilan gambar 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 mempermudah pengujian sistem tiga dan empat kamera. 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.
Tes 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 | test_auto_flash | 33 | Mengonfirmasi bahwa adegan gelap memicu flash otomatis. |
2_b | test_yuv_jpg_capture_sameness | 33 | Mengonfirmasi bahwa pengambilan gambar YUV dan JPEG masih identik bit demi bit. |
scene2_a/test_auto_flash.py
Android 13 menambahkan pengujian test_auto_flash
.
Parameter
flash
: Melewati pengujian jika flash tidak tersedia.
Metode
Pengujian mengonfigurasi permintaan pengambilan untuk lampu kilat otomatis dan menampilkan adegan yang memerlukan peristiwa lampu kilat. Pencahayaan di rig pengujian dan tablet dimatikan untuk menampilkan adegan gelap bagi algoritma eksposur otomatis. Pengujian
mengonfigurasi urutan pengambilan NUM_FRAMES
dengan lampu kilat otomatis diaktifkan. Jika setelan
AE_STATE
menampilkan FLASH_REQUIRED
, pengujian akan memverifikasi bahwa kilatan
dinyalakan 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
: Menetapkan kualitas JPEG ke 100.
Metode
Pengujian ini mengambil dua gambar menggunakan format YUV dan JPEG umum terbesar dengan rasio aspek yang sama seperti format JPEG terbesar yang tidak melebihi resolusi 1920x1440. Pengujian menetapkan jpeg.quality
ke 100 dan merekam permintaan
permukaan ganda. Kemudian, kedua gambar dikonversi menjadi array RGB dan dihitung perbedaan akar rataan kuadrat (RMS) 3D antara kedua gambar tersebut. Toleransi perbedaan
ditetapkan ke 1%.
Pengujian video
ITS Kamera 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 | Mengonfirmasi bahwa pratinjau video tidak terlalu banyak dipangkas saat stabilisasi diaktifkan. |
4 | test_video_aspect_ratio_and_crop | 33 | Mengonfirmasi FoV, rasio aspek, dan pemangkasan format video. |
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 merekam dua video, satu dengan stabilisasi pratinjau aktif, dan satu dengan stabilisasi pratinjau nonaktif. Frame representatif dipilih dari setiap video, dan dianalisis untuk memastikan bahwa perubahan FoV dalam kedua video tersebut sesuai dengan spesifikasi.
Secara khusus, pengujian memeriksa parameter berikut dengan dan tanpa stabilisasi pratinjau:
- Keberbundaran 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
. Mirip dengan pengujian test_aspect_ratio_and_crop
untuk pengambilan gambar diam, pengujian ini memeriksa format video yang didukung
untuk memastikan frame video tidak direntangkan 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 membagikan 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 resolusi tertinggi jika RAW tidak didukung. Dari gambar referensi, ukuran dan lokasi lingkaran ditentukan. Kemudian, video singkat diambil dengan semua kualitas video yang didukung. Frame referensi akhir diekstrak dari setiap kualitas video. Dari frame referensi, bidang pandang (FoV), pemusatan (pemangkasan), dan rasio aspek dihitung untuk setiap kualitas video.
Untuk perhitungan FoV, pengujian membandingkan ukuran lingkaran frame video dengan ukuran lingkaran yang dihitung dari ukuran format video dan gambar referensi. Untuk pemeriksaan pemangkasan, pengujian membandingkan pemusatan frame video dengan pemusatan gambar referensi. Untuk pemeriksaan rasio aspek, menggunakan adegan, yaitu lingkaran hitam besar di latar belakang putih, pengujian menentukan rasio aspek lingkaran dan memverifikasi bahwa frame 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 penggabungan sensor dan
memerlukan pengontrol penggabungan sensor revisi 2 baru atau upgrade firmware
versi pengontrol Arduino sebelumnya. Untuk mengetahui detail selengkapnya tentang pengontrol baru,
lihat Update dan penambahan hardware.
Metode
Ponsel digerakkan perlahan pada 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 tidak disertakan. Pengujian ini menggunakan platform pengujian
penggabungan sensor dan
memerlukan pengontrol penggabungan sensor revisi 2 baru atau upgrade firmware
versi pengontrol Arduino sebelumnya. Untuk mengetahui detail selengkapnya tentang pengontrol baru,
lihat Update dan penambahan hardware.
Metode
Rig pengujian menggerakkan ponsel secara perlahan pada sudut sekitar 15 derajat dengan stabilisasi pratinjau diaktifkan. Rotasi gambar kemudian dibandingkan dengan rotasi giroskop.
Update dan penambahan hardware
Android 13 menyertakan upgrade ke pengontrol gabungan sensor revisi 2 berbasis Arduino. Upgrade ini mencakup perubahan hardware dan firmware. Upgrade ini memungkinkan pengontrol untuk mengatur kecepatan rotasi dan kontrol pencahayaan. Upgrade ini juga mencakup pelindung baru (ditunjukkan pada Gambar 1), yang menyediakan tiga saluran rotasi dan tiga saluran kontrol pencahayaan.
Gambar 1. Shield Arduino 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 mengetahui informasi selengkapnya tentang pengontrol baru, lihat Pengontrol gabungan 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-dapat dilipat, jalankan perintah adb berikut setelah DUT terhubung ke host.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier