Pengujian ITS Kamera

Halaman ini memberikan daftar lengkap pengujian di Camera Image Test Suite (ITS), yang merupakan bagian dari Android Compatibility Test Suite (CTS) Verifier. Pengujian ITS adalah pengujian fungsional, yang berarti pengujian ini tidak mengukur kualitas gambar, tetapi semua fungsi kamera yang diiklankan berfungsi seperti yang diharapkan. Dokumen ini memungkinkan developer dan penguji memahami fungsi setiap pengujian dan cara men-debug kegagalan pengujian.

ITS kamera mengontrol pengujian berdasarkan properti kamera, level API, dan level class performa media (MPC) yang diperlukan. Untuk level API, ITS menggunakan ro.product.first_api_level untuk mengontrol pengujian yang ditambahkan di level API tertentu yang menguji pengalaman pengguna negatif untuk fungsi di level API yang lebih rendah. ITS menggunakan ro.vendor.api_level untuk mengontrol pengujian fitur yang ditambahkan di level API tertentu yang memerlukan kemampuan hardware baru. Jika ro.odm.build.media_performance_class ditentukan untuk perangkat, ITS memerlukan pengujian tertentu yang akan dijalankan, bergantung pada tingkat MPC.

Pengujian dikelompokkan menurut scene sebagai berikut:

Lihat setiap bagian untuk mengetahui deskripsi setiap adegan.

scene0

Pengujian scene0 tidak memerlukan informasi suasana tertentu. Namun, ponsel harus diam untuk pengujian giroskop dan getaran.

test_jitter

Mengukur jitter dalam stempel waktu kamera.

API yang diuji:

Lulus: Ada delta minimal 30 milidetik di antara frame.

test_jitter_plot.png

test_jitter_plot.png (Perhatikan rentang sumbu y yang kecil. {i>Jitter<i} sebenarnya berukuran kecil di plot ini.)

test_metadata

Menguji validitas entri metadata. Melihat hasil pengambilan dan objek karakteristik kamera. Pengujian ini menggunakan eksposur auto_capture_request dan nilai perolehan karena konten gambar tidak penting.

API yang diuji:

Lulus: Tag tingkat hardware, rollingShutterSkew, frameDuration, timestampSource, croppingType, blackLevelPattern, pixel_pitch, FoV, jarak hiperfokus ada dan memiliki nilai yang valid.

test_request_capture_match

Menguji apakah perangkat menulis nilai eksposur dan gain yang benar dengan membaca kembali metadata pengambilan.

API yang diuji:

Lulus: Meminta dan mengambil nilai metadata yang cocok di semua foto.

test_sensor_events

Menguji kueri perangkat dan mencetak peristiwa sensor untuk perangkat yang mengumumkan dukungan penggabungan sensor. Sensor yang diharapkan adalah akselerometer, giroskop, dan magnetometer. Pengujian ini hanya berfungsi jika layar aktif, yang berarti perangkat tidak dalam mode standby.

API yang diuji:

Lulus: Peristiwa untuk setiap sensor diterima.

test_solid_color_test_pattern

Menguji apakah pola pengujian warna solid dihasilkan dengan benar untuk membisukan kamera. Jika bisukan kamera didukung, pola pengujian warna solid harus didukung. Jika bisukan kamera tidak didukung, pola pengujian warna solid hanya diuji jika kemampuan tersebut diiklankan.

Jika gambar RAW didukung, penetapan warna juga akan diuji. Warna yang diuji adalah hitam, putih, merah, biru, dan hijau. Untuk kamera yang tidak mendukung gambar RAW, hanya hitam yang diuji.

API yang diuji:

Lulus: Pola pengujian solid yang didukung adalah warna yang benar dan ada varians rendah pada gambar.

test_test_pattern

Menguji parameter android.sensor.testPatternMode untuk mengambil frame untuk setiap pola pengujian yang valid dan memeriksa apakah frame dibuat dengan benar untuk warna solid dan batang warna. Pengujian ini mencakup langkah-langkah berikut:

  1. Mengambil gambar untuk semua pola pengujian yang didukung.
  2. Melakukan pemeriksaan kebenaran sederhana untuk pola pengujian warna solid dan batang warna.

API yang diuji:

Lulus: Pola pengujian yang didukung dibuat dengan benar.

pola_pengujian_tes_2

test_test_patterns_2.jpg

test_tonemap_curve

Menguji konversi pola pengujian dari RAW ke YUV dengan peta nada linear. Pengujian ini memerlukan android.sensor.testPatternMode = 2 (COLOR_BARS) untuk menghasilkan pola gambar yang sempurna untuk konversi tonemap. Memastikan pipeline memiliki output warna yang tepat dengan peta nada linear dan input gambar ideal (mengandalkan test_test_patterns).

API yang diuji:

Lulus: YUV dan RAW terlihat mirip satu sama lain.

test_tonemap_curve_raw_2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

Menguji apakah peristiwa gambar dan sensor gerakan berada dalam domain waktu yang sama.

API yang diuji:

Lulus: Stempel waktu gerakan berada di antara dua stempel waktu gambar.

test_vibration_restriction

Menguji apakah getaran perangkat berfungsi seperti yang diharapkan.

API yang diuji:

Lulus: Perangkat tidak bergetar saat dibisukan oleh API batasan audio kamera.

scene1

scene1 adalah diagram abu-abu. Diagram abu-abu harus menutupi 30% bagian tengah ruang pandang kamera. Diagram abu-abu diperkirakan akan menantang 3A (eksposur otomatis, white balance otomatis, fokus otomatis) secara moderat karena wilayah tengah tidak memiliki fitur. Namun, permintaan pengambilan menentukan seluruh scene yang menyertakan fitur yang memadai agar 3A dapat dikonvergensi.

Kamera RFoV dapat diuji di rig pengujian WFoV atau RFoV. Jika kamera RFoV diuji di rig pengujian WFoV, diagram akan diskalakan sebesar ⅔ untuk memastikan beberapa batas untuk diagram abu-abu di FoV guna membantu 3A berkonvergensi. Untuk deskripsi rig pengujian kamera yang lebih mendetail, lihat ITS-in-a-box Kamera.

scene1

scene1: Diagram ukuran penuh (kiri). Diagram dengan skala ⅔ (kanan).

test_ae_precapture_trigger

Menguji mesin status AE saat menggunakan pemicu pra-perekaman. Menangkap lima permintaan manual dengan AE dinonaktifkan. Permintaan terakhir memiliki pemicu pra-perekaman AE, yang harus diabaikan karena AE dinonaktifkan.

API yang diuji:

Lulus: AE berkonvergensi.

pengujian_auto_vs_manual

Pengujian yang mengambil gambar otomatis dan manual terlihat sama.

API yang diuji:

Lulus: Perolehan dan transformasi white balance manual yang dilaporkan dalam setiap kecocokan hasil pengambilan gambar dengan white balance otomatis estimate dari algoritma 3A kamera.

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

pengujian_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

test_black_white

Menguji apakah perangkat menghasilkan gambar hitam putih penuh. Mengambil dua pengambilan, yang pertama dengan gain sangat rendah dan eksposur singkat, yang menghasilkan foto hitam, dan yang kedua dengan gain sangat tinggi dan eksposur panjang, yang menghasilkan foto putih.

API yang diuji:

Lulus: Menghasilkan gambar hitam putih. Saluran gambar putih yang jenuh memiliki nilai RGB [255, 255, 255] dengan margin error kurang dari 1% perbedaan.

test_black_white_black tes_hitam_putih_hitam
test_black_white_black.jpg test_black_white_white.jpg

{i>test_black_white_plot_means<i}

{i>test_black_white_plot_means<i}.png

test_burst_capture

Memverifikasi bahwa seluruh pipeline pengambilan dapat mengimbangi kecepatan pengambilan ukuran penuh dan waktu CPU.

API yang diuji:

Pass: Mengambil serangkaian gambar ukuran penuh, memeriksa penurunan frame dan kecerahan gambar.

test_burst_sameness_manual (manual)

Mengambil 5 burst dari 50 gambar dengan setelan pengambilan manual dan memeriksa apakah semuanya identik. Pengujian ini dapat digunakan untuk mengidentifikasi apakah ada frame sporadis yang diproses secara berbeda atau memiliki artefak.

API yang diuji:

Lulus: Gambar identik secara visual dan dalam nilai RGB.

Gagal: Menampilkan lonjakan atau penurunan diagram rata-rata RGB di awal setiap ledakan

  • Toleransi adalah 3% untuk first_API_level < 30
  • Toleransi adalah 2% untuk first_API_level >= 30

test_burst_sameness_manual_mean

test_burst_sameness_manual_mean.jpg

test_burst_sameness_manual_plot_means

test_burst_sameness_manual_plot_means.png

test_capture_result

Menguji apakah data yang valid ditampilkan kembali dalam objek CaptureResult. Melakukan pengambilan otomatis, manual, dan otomatis.

API yang diuji:

Lulus: Metadata valid untuk semua pengambilan dan setelan manual tidak bocor ke pengambilan otomatis kedua. Membuat plot koreksi bayangan lensa untuk pengambilan gambar.

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_crop_region_raw

Menguji bahwa aliran RAW tidak dapat dipangkas.

API yang diuji:

Lulus: Gambar YUV dipangkas di tengah, tetapi tidak gambar RAW.

test_crop_region_raw_comp_raw_crop

test_crop_region_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

test_crop_region_raw_comp_raw_full.jpg

test_crop_region_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

test_crop_region_raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_regions

Menguji apakah region pangkas berfungsi. Mengambil gambar penuh dan membuat patch 5 region yang berbeda (sudut dan tengah.) Mengambil gambar dengan pemangkasan yang ditetapkan untuk 5 wilayah. Membandingkan nilai patch dan gambar pemangkasan.

API yang diuji:

Lulus: Gambar area yang dipangkas cocok dengan patch yang sesuai dengan gambar pemangkasan.

test_dng_noise_model

Memverifikasi bahwa parameter model mentah DNG sudah benar. Plot ini menggambarkan variansi terukur dari patch tengah kartu abu-abu dalam gambar mentah yang diambil dalam rentang sensitivitas, dan membandingkan nilai ini dengan variansi yang diharapkan pada setiap sensitivitas oleh model derau DNG di HAL kamera (berdasarkan parameter O,S yang ditampilkan dalam objek hasil pengambilan). Untuk mengetahui detail selengkapnya tentang model derau DNG, download dokumen berikut tentang Model Derau DNG.

API yang diuji:

Lulus: Parameter model mentah DNG sudah benar. Nilai RGB yang diharapkan cocok dengan nilai RGB sebenarnya yang diukur.

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

Menguji apakah kompensasi nilai eksposur (EV) diterapkan. Pengujian ini meningkatkan eksposur dalam delapan langkah, dan memeriksa kecerahan yang diukur terhadap kecerahan yang diharapkan. Nilai yang diharapkan dihitung dari kecerahan gambar tanpa kompensasi EV yang diterapkan dan nilai yang diharapkan akan jenuh jika nilai yang dihitung melebihi rentang nilai gambar yang sebenarnya. Pengujian akan gagal jika nilai yang diharapkan dan nilai yang diukur tidak cocok atau gambar terlalu terekspos dalam lima langkah.

API yang diuji:

Lulus: Gambar menunjukkan peningkatan eksposur tanpa eksposur berlebih dalam lima langkah.

{i>test_ev_compensation_plot_means<i}

{i>test_ev_compensation_advanced_plot_means<i}.png

test_ev_compensation_basic

Menguji apakah kompensasi EV diterapkan menggunakan rentang yang dibuat dengan CONTROL_AE_COMPENSATION_STEP. Delapan frame diambil pada setiap nilai kompensasi.

API yang diuji:

Lulus: Menangkap peningkatan luma dengan peningkatan setelan kompensasi EV, dan delapan frame yang diambil untuk setiap setelan kompensasi EV memiliki nilai luma yang stabil.

test_ev_compensation_basic

test_ev_compensation_basic.png

uji_eksposur_x_iso

Menguji apakah eksposur konstan tercapai saat ISO dan waktu eksposur bervariasi. Mengambil serangkaian gambar yang memiliki ISO dan waktu eksposur yang dipilih untuk saling menyeimbangkan. Hasilnya akan memiliki kecerahan yang sama, tetapi seiring urutan, gambar akan menjadi lebih berisik. Memverifikasi nilai rata-rata piksel sampel yang saling berdekatan. Memastikan gambar tidak dikekang ke 0 atau 1 (yang akan membuatnya terlihat seperti garis datar). Pengujian juga dapat dijalankan dengan gambar RAW dengan menetapkan tanda debug di file konfigurasi Anda.

API yang diuji:

Lulus: Gambar memiliki kecerahan yang sama, tetapi menjadi lebih berisik dengan ISO yang lebih tinggi. Bidang RGB datar jika nilai ISO*exposure konstan di seluruh ruang gain yang diuji.

Mekanisme kegagalan:

  • Di test_exposure_plot_means.png, saat nilai pengganda gain (sumbu x) meningkat, nilai rata-rata bidang RGB yang dinormalisasi (sumbu y) mulai menyimpang dari nilai pengganda gain rendah.

{i>test_exposure_plot_means<i}

plot_paparan_pengujian.png

test_exposure_mult=1.00 test_exposure_mult=64.00
test_exposure_mult=1.00.jpg test_exposure_mult=64.00.jpg

test_jpeg

Pengujian yang mengonversi gambar YUV dan gambar JPEG perangkat terlihat sama. Pengujian mengambil 10% bagian tengah gambar dan menghitung nilai RGB, serta memverifikasi bahwa nilai tersebut cocok.

API yang diuji:

Lulus: Perbedaan RGB rata-rata antara setiap gambar kurang dari 3%.

test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg
test_jpeg_fmt=jpg.jpg test_jpeg=fmt=yuv.jpg

test_latching

Menguji apakah setelan (eksposur dan penguatan) terpasang pada frame yang tepat untuk kamera FULL dan LEVEL_3. Mengambil serangkaian gambar menggunakan permintaan berturut-turut, dengan memvariasikan parameter permintaan pengambilan di antara gambar. Memeriksa apakah gambar memiliki properti yang diharapkan.

API yang diuji:

Lulus: Gambar [2, 3, 6, 8, 10, 12, 13] telah meningkatkan ISO atau eksposur dan muncul dengan nilai rata-rata RGB yang lebih tinggi di test_latching_plot_means.png.

test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=00.jpg test_latching_i=01.jpg tes_latching_i=02.jpg
tes_latching_i=03.jpg test_latching_i=04.jpg tes_latching_i=05.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=06.jpg tes_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=06.jpg tes_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=09.jpg test_latching_i=10.jpg test_latching_i=11.jpg
tes_latching_i=09.jpg test_latching_i=10.jpg tes_latching_i=11.jpg
test_latching_i=12.jpg
test_latching_i=12.jpg

test_latching_plot_means

test_latching_plot_means.png

tes_linearitas

Menguji bahwa pemrosesan perangkat dapat dibalik ke piksel linear. Mengambil urutan pengambilan gambar dengan perangkat yang diarahkan ke target yang seragam.

API yang diuji:

Lulus: Nilai R, G, B harus meningkat secara linear dengan peningkatan sensitivitas.

{i>test_linearity_plot_means<i}

{i>test_linearity_plot_means<i}.png

test_locked_burst

Menguji kunci 3A dan burst YUV (menggunakan setelan otomatis). Pengujian ini dirancang agar lulus bahkan pada perangkat terbatas yang tidak memiliki MANUAL_SENSOR atau PER_FRAME_CONTROLS. Pengujian ini memeriksa konsistensi gambar YUV saat pemeriksaan kecepatan frame berada di CTS.

API yang diuji:

Lulus: Rekaman terlihat konsisten.

uji_terkunci_burst_frame0

tes_terkunci_burst_frame0.jpg

test_locked_burst_frame1

test_locked_burst_frame1.jpg

uji_terkunci_burst_frame2

test_locked_burst_frame2.jpg

test_param_color_correction

Menguji apakah parameter android.colorCorrection.* diterapkan saat ditetapkan. Mengambil foto dengan nilai transformasi dan keuntungan yang berbeda, serta menguji apakah keduanya terlihat berbeda. Transformasi dan penguatan dipilih untuk membuat output semakin merah atau biru. Menggunakan tonemap linear. Pemetaan tone adalah teknik yang digunakan dalam pemrosesan gambar untuk memetakan satu kumpulan warna ke kumpulan warna lain guna memperkirakan tampilan gambar dengan rentang dinamis tinggi dalam media yang memiliki rentang dinamis yang lebih terbatas.

API yang diuji:

Teruskan: Nilai R dan B ditingkatkan sesuai dengan transformasi.

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*Sumbu x adalah permintaan pengambilan: 0 = kesatuan, 1=peningkatan merah, 2= peningkatan biru

test_param_color_correction_req=0

test_param_color_correction_req=0.jpg

test_param_color_correctness_req=1

test_param_color_correctness_req=1.jpg (R boost)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (peningkatan B)

test_param_flash_mode

Menguji apakah parameter android.flash.mode diterapkan. Menyetel eksposur secara manual ke sisi gelap, sehingga jelas apakah flash diaktifkan atau tidak, dan menggunakan tonemap linear. Memeriksa bagian tengah dengan gambar kartu untuk melihat apakah ada gradien besar yang dibuat untuk memverifikasi apakah flash diaktifkan.

API yang diuji:

Lulus: Bagian tengah gambar kartu memiliki gradien besar yang berarti flash telah diaktifkan.

mode_flash_parameter_1

test_param_flash_mode_1.jpg

uji_param_flash_mode_1_ubin

test_param_flash_mode_1_tile.jpg

test_param_flash_mode_2

test_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

test_param_flash_mode_2_ubin.jpg

test_param_noise_reduction

Menguji apakah parameter android.noiseReduction.mode diterapkan dengan benar saat ditetapkan. Mengambil gambar dengan kamera yang redup. Menggunakan gain analog tinggi untuk memastikan gambar yang diambil berisi derau. Mengambil tiga gambar, untuk NR nonaktif, "cepat", dan "kualitas tinggi". Juga mengambil gambar dengan gain rendah dan NR nonaktif, serta menggunakan varian ini sebagai dasar pengukuran. Makin tinggi SNR (Rasio Sinyal terhadap Derau), semakin baik kualitas gambarnya.

API yang diuji:

Lulus: SNR bervariasi dengan mode pengurangan derau yang berbeda dan berperilaku mirip seperti grafik di bawah.

{i>test_param_noise_reduction_plot_SNRs<i}

{i>test_param_noise_reduction_plot_SNRs<i}.pngS

0: NONAKTIF, 1: CEPAT, 2: HQ, 3: MIN , 4: ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_shading_mode

Menguji apakah parameter android.shading.mode diterapkan.

API yang diuji:

Lulus: Mode bayangan diubah dan peta bayangan lensa diubah seperti yang diharapkan.

uji_param_shading_mode_ls_maps_mode_0_loop_0

test_param_shading_mode_ls_maps_mode_0_loop_0.png

test_param_shading_mode_ls_maps_mode_1_loop_0

test_param_shading_mode_ls_maps_mode_1_loop_0.png

uji_param_shading_mode_ls_maps_mode_2_loop_0

test_param_shading_mode_ls_maps_mode_2_loop_0.png

test_param_tonemap_mode

Menguji apakah parameter android.tonemap.mode diterapkan. Menerapkan kurva peta nada yang berbeda untuk setiap saluran R, G, B, dan memeriksa apakah gambar output dimodifikasi seperti yang diharapkan. Pengujian ini terdiri dari dua pengujian, test1 dan test2.

API yang diuji:

Kartu:

  • test1: Kedua gambar memiliki peta nada linear, tetapi n=1 memiliki gradien yang lebih curam. Saluran G (hijau) lebih terang untuk gambar n=1.
  • test2: Peta nada sama, tetapi panjangnya berbeda. Gambarnya sama.
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

test_post_raw_sensitivity_boost

Memeriksa peningkatan sensitivitas RAW pasca. Mengambil serangkaian gambar RAW dan YUV dengan sensitivitas yang berbeda, memposting kombinasi peningkatan sensitivitas RAW, dan memeriksa apakah nilai rata-rata piksel output cocok dengan setelan permintaan.

API yang diuji:

Lulus: Gambar RAW menjadi lebih gelap saat peningkatan meningkat, sedangkan gambar YUV tetap konstan dalam kecerahan

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_raw_plot_means

test_post_raw_sensitivity_boost_raw_plot_means.png

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitivity_meningkatkan_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_yuv_s=0896_meningkatkan_0400

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

test_post_raw_sensitivity_boost_yuv_plot_means

test_post_raw_sensitivity_boost_yuv_plot_means.png

test_raw_burst_sensitivity

Mengambil serangkaian gambar mentah dengan peningkatan gain dan mengukur derau. Merekam hanya dalam format raw, dalam burst.

API yang diuji:

Gagal: Setiap pengambilan gambar lebih berisik daripada pengambilan gambar sebelumnya, karena gain meningkat.

Menggunakan varian sel petak statistik tengah.

{i>test_raw_burst_sensitivity_variance<i}

test_raw_burst_sensitivity_variance.png

test_raw_exposure

Mengambil satu set gambar mentah dengan waktu eksposur yang meningkat dan mengukur nilai piksel.

API yang diuji:

Lulus: Meningkatkan ISO (peningkatan) membuat piksel lebih sensitif terhadap cahaya, sehingga plot bergerak ke kiri.

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰ adalah 1 milidetik, 10¹ adalah 10 milidetik, 10⁻¹ adalah 0,1 milidetik)

{i>test_raw_exposure_s<i}=132

test_raw_exposure_s=132.png

test_raw_exposure_s=209

test_raw_exposure_s=209.png

{i>test_raw_exposure_s<i}=286

test_raw_exposure_s=286.png

test_raw_exposure_s=363

test_raw_exposure_s=363.png

test_raw_exposure_s=440

test_raw_exposure_s=440.png

test_raw_sensitivity

Mengambil serangkaian gambar mentah dengan sensitivitas yang meningkat dan mengukur derau (varian) di 10% bagian tengah gambar. Menguji bahwa setiap pengambilan gambar lebih berisik daripada yang sebelumnya.

API yang diuji:

Pass: Varian meningkat dengan setiap tembakan.

test_raw_sensitivity_variance

test_raw_sensitivity_variance.png

test_reprocess_noise_reduction

Menguji bahwa android.noiseReduction.mode diterapkan untuk memproses ulang permintaan. Mengambil gambar yang diproses ulang dengan kamera yang redup. Menggunakan gain analog tinggi untuk memastikan gambar yang diambil berisi derau. Mengambil tiga gambar yang diproses ulang, untuk NR nonaktif, "cepat", dan "kualitas tinggi". Mengambil gambar yang diproses ulang dengan gain rendah dan NR nonaktif, serta menggunakan varians ini sebagai dasar pengukuran.

API yang diuji:

Lulus: FAST >= OFF, HQ >= FAST, HQ >> OFF

Plot SNR vs NR_MODE umum

Plot SNR vs NR_MODE umum

test_tonemap_sequence

Menguji urutan gambar dengan kurva tonemap yang berbeda. Mengambil 3 foto manual dengan peta nada linear. Mengambil 3 foto manual dengan peta nada default. Menghitung delta antara setiap pasangan frame berturut-turut.

API yang diuji:

Lulus: Ada 3 frame yang sama diikuti dengan kumpulan 3 frame yang berbeda.

test_tonemap_sequence_i=0

test_tonemap_sequence_i=0.jpg

test_tonemap_sequence_i=1

test_tonemap_sequence_i=1.jpg

test_tonemap_sequence_i=2

test_tonemap_sequence_i=2.jpg

test_tonemap_sequence_i=3

test_tonemap_sequence_i=3.jpg

test_tonemap_sequence_i=4

test_tonemap_sequence_i=4.jpg

test_tonemap_sequence_i=5

test_tonemap_sequence_i=5.jpg

test_yuv_jpeg_all

Menguji apakah semua ukuran dan format yang dilaporkan untuk pengambilan gambar berfungsi. Menggunakan permintaan manual dengan tonemap linear sehingga YUV dan JPEG terlihat sama saat dikonversi oleh modul image_processing_utils. Gambar tidak disimpan secara default, tetapi dapat disimpan dengan mengaktifkan debug_mode.

API yang diuji:

Lulus: Semua pusat gambar memiliki perbedaan RMS maksimum (nilai root-mean-square sinyal) dalam gambar yang dikonversi RGB dengan 3% gambar YUV resolusi tertinggi.

tes_yuv_jpeg_semua

test_yuv_jpeg_all.png

test_yuv_plus_dng

Menguji apakah ukuran dan format yang dilaporkan untuk pengambilan gambar berfungsi.

API yang diuji:

Lulus: Pengujian menyelesaikan dan menampilkan gambar yang diminta.

tes_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

Pengujian yang merekam satu frame sebagai output YUV dan JPEG. Menggunakan permintaan manual dengan tonemap linear sehingga YUV dan JPEG terlihat sama saat dikonversi oleh modul image_processing_utils.

API yang diuji:

Lulus: Gambar YUV dan JPEG serupa dan memiliki perbedaan RMS (nilai root-mean-square dari sinyal) kurang dari 1%.

tes_yuv_plus_jpg_jpg.jpg tes_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg tes_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

Menguji pengambilan satu frame sebagai output RAW/RAW10/RAW12 dan YUV jika didukung. Menggunakan permintaan manual dengan tonemap linear sehingga raw dan YUV diharapkan sama. Membandingkan nilai RGB 10% tengah gambar yang dikonversi RGB. Logandroid.shading.mode.

API yang diuji:

Lulus: Gambar YUV dan mentah serupa dan memiliki perbedaan RMS (nilai akar rataan kuadrat sinyal) kurang dari 3,5%.

test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg
test_yuv_plus_raw_shading=1_raw.jpg test_yuv_plus_raw_shading=1_yuv.jpg

scene2_a

scene2_a memiliki tiga wajah dengan latar belakang abu-abu dan pakaian netral. Wajah dipilih untuk memiliki berbagai warna kulit. Diagram harus memiliki orientasi yang benar agar deteksi wajah berfungsi secara optimal.

scene2_a

adegan2_a

test_autoframing

Menguji perilaku pembingkaian otomatis perangkat kamera. Melakukan zoom besar sehingga tidak ada wajah di scene yang terlihat, mengaktifkan mode autoframing dengan menyetel AUTOFRAMING di CaptureRequest ke True, dan memverifikasi apakah semua wajah di scene asli dapat dideteksi saat status menyatu (yaitu, saat AUTOFRAMING_STATE di CaptureResult disetel ke AUTOFRAMING_STATE_CONVERGED).

API yang diuji:

Lulus: Ketiga wajah terdeteksi.

test_display_p3

Menguji pengambilan Display P3 dalam JPEG menggunakan ColorSpaceProfiles API. Menguji apakah JPEG yang diambil memiliki profil ICC yang sesuai di headernya, dan apakah gambar berisi warna di luar gamut sRGB.

API yang diuji:

Lulus: JPEG berisi profil ICC Display P3 dan warna di luar gamut sRGB.

test_effects

Menangkap frame untuk efek kamera yang didukung dan memeriksa apakah efek tersebut dibuat dengan benar. Pengujian ini hanya memeriksa efek OFF dan MONO, tetapi menyimpan gambar untuk semua efek yang didukung.

API yang diuji:

Pass: Mengambil gambar adegan dengan efek OFF dan gambar monokrom dengan efek yang disetel ke MONO.

test_effects_MONO

efek_tes_MONO.jpg

kombo_format_pengujian

Menguji berbagai kombinasi format output.

API yang diuji:

Lulus: Semua kombinasi berhasil diambil.

jumlah_pengujian

Menguji deteksi wajah.

API yang diuji:

Lulus: Menemukan tiga wajah.

jumlah_pengujian_mode_fd_1

test_num_faces_fd_mode_1.jpg

test_reprocess_uv_swap

Menguji bahwa pemrosesan ulang YUV tidak menukar bidang U dan V. Hal ini dideteksi dengan menghitung jumlah perbedaan absolut (SAD) antara gambar yang diproses ulang dan pengambilan yang tidak diproses ulang. Jika menukar bidang U dan V output dari pengambilan yang diproses ulang menghasilkan peningkatan SAD, output diasumsikan memiliki bidang U dan V yang benar.

API yang diuji:

Lulus: Pesawat U dan V tidak ditukar.

test_reprocess_uv_swap

test_reprocess_uv_swap.png

scene2_b

test_num_faces

Menguji deteksi wajah dengan meningkatkan keragaman warna kulit dalam adegan wajah.

API yang diuji:

Lulus: Menemukan 3 wajah.

jumlah_pengujian_mode_fd_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

Mengambil dua gambar menggunakan format YUV dan JPEG umum terbesar dengan rasio aspek yang sama dengan format JPEG terbesar yang tidak melebihi resolusi 1920x1440. Menetapkan jpeg.quality ke 100 dan mengambil permintaan platform ganda. Mengonversi kedua gambar ke array RGB dan menghitung perbedaan akar rata-rata kuadrat (RMS) 3D antara dua gambar.

Selain itu, pengujian ini memverifikasi bahwa output YUV untuk semua kasus penggunaan streaming yang didukung cukup mirip dengan YUV dengan kasus penggunaan STILL_CAPTURE.

API yang diuji:

Lulus: Gambar YUV dan JPEG untuk kasus penggunaan STILL_CAPTURE memiliki perbedaan RMS (nilai root-mean-square sinyal) kurang dari 3%; gambar YUV untuk semua kasus penggunaan yang didukung memiliki perbedaan RMS kurang dari 10% dari gambar YUV dengan kasus penggunaan STILL_CAPTURE.

adegan2_c

test_num_faces

Menguji deteksi wajah dengan meningkatkan keragaman warna kulit dalam adegan wajah.

API yang diuji:

Lulus: Menemukan 3 wajah.

jumlah_pengujian_mode_fd_1

test_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

Menguji latensi pengambilan JPEG untuk class performa S seperti yang ditentukan dalam bagian 2.2.7.2 Kamera di CDD.

Lulus: HARUS memiliki latensi pengambilan JPEG camera2 < 1.000 md untuk resolusi 1080p seperti yang diukur oleh PerformanceTest kamera CTS dalam kondisi pencahayaan ITS (3.000 K) untuk kedua kamera utama.

test_camera_launch_perf_class

Menguji latensi peluncuran kamera untuk class performa S seperti yang ditentukan bagian 2.2.7.2 Kamera di CDD.

Lulus: HARUS memiliki latensi startup camera2 (membuka kamera ke frame pratinjau pertama) < 600 md seperti yang diukur oleh PerformanceTest kamera CTS dalam kondisi pencahayaan ITS (3000K) untuk kedua kamera utama.

uji_default_kamera_hdr

Menguji bahwa perekaman kamera default adalah Ultra HDR untuk class performa 15 seperti yang ditentukan dalam bagian 2.2.7.2 Kamera dari CDD.

Lulus: Perekaman paket kamera default HARUS berupa Ultra HDR untuk perangkat kelas performa 15.

scene2_d

test_num_faces

Menguji deteksi wajah dengan meningkatkan keragaman warna kulit dalam adegan wajah.

API yang diuji:

Lulus: Menemukan 3 wajah.

scene2_e

test_continuous_picture

50 frame resolusi VGA diambil dengan setelan pertama permintaan pengambilan android.control.afMode = 4 (CONTINUOUS_PICTURE).

API yang diuji:

Lulus: Sistem 3A stabil pada akhir pengambilan 50 frame.

test_num_faces

Menguji deteksi wajah dengan meningkatkan keragaman warna kulit dalam adegan wajah.

API yang diuji:

Lulus: Menemukan 3 wajah.

scene2_f

scene2_f memiliki tiga wajah dengan latar belakang putih dan pakaian putih. Wajah memiliki berbagai warna kulit dan kontras tinggi dengan latar belakang.

scene2_f.png

scene2_f

test_num_faces

Menguji deteksi wajah dengan meningkatkan keragaman warna kulit dalam adegan wajah.

API yang diuji:

Lulus: Menemukan 3 wajah.

jumlah_pengujian_mode_fd_1

test_num_faces_fd_mode_1.jpg

adegan3

Scene3 menggunakan diagram ISO12233, dan sebagian besar pengujian menggunakan metode ekstraktor diagram untuk menemukan diagram di scene. Oleh karena itu, sebagian besar gambar tersimpan tidak memiliki batas seperti gambar untuk scene 1, 2, atau 4, tetapi hanya diagram. Diagram harus dalam orientasi yang benar agar pencari diagram berfungsi secara optimal.

test_edge_enhancement

Menguji apakah parameter android.edge.mode diterapkan dengan benar. Mengambil gambar yang tidak diproses ulang untuk setiap mode tepi dan menampilkan ketajaman gambar output dan metadata hasil pengambilan. Memproses permintaan pengambilan dengan mode edge, sensitivitas, waktu eksposur, jarak fokus, dan parameter permukaan output tertentu.

Lulus: Mode HQ (2) lebih tajam daripada mode OFF (0). Mode FAST (1) lebih tajam daripada mode OFF. Mode HQ lebih tajam atau sama dengan mode FAST.

API yang diuji:

Parameter kamera yang terpengaruh:

  • EDGE_MODE

test_edge_enhancement_edge=0

test_edge_enhancement_edge=0.jpg

test_edge_enhancement_edge=1

test_edge_enhancement_edge=1.jpg (mode cepat)

test_edge_enhancement_edge=2

test_edge_enhancement_edge=2.jpg (mode kualitas tinggi)

test_flip_mirror

Menguji apakah gambar diorientasikan dengan benar sesuai dengan CDD bagian 7.5.2 Kamera Depan [C-1-5].

Gambar yang dicerminkan, dibalik, atau diputar dapat diidentifikasi oleh fitur wajik di dekat bagian tengah.

Lulus: Gambar tidak dibalik, dicerminkan, atau diputar.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_imu_drift

Menguji apakah unit pengukuran inersia (IMU) memiliki output yang stabil selama 30 detik saat perangkat tidak bergerak dan mengambil pratinjau definisi tinggi.

API yang diuji:

Kartu:

  • Drift giroskopi kurang dari 0,01 rad selama waktu pengujian.
  • Varian pembacaan giroskop kurang dari 1E-7 rad2/s2/Hz selama waktu pengujian.
  • Penyimpangan vektor rotasi kurang dari 0,01 rad selama waktu pengujian.
  • (Belum diwajibkan) drift giroskopi kurang dari 1 derajat per detik.

test_imu_drift_gyro_drift.png

test_imu_drift_gyro_drift.png

test_imu_drift_rotation_vector_drift.png

test_imu_drift_rotation_vector_drift.png

test_landscape_to_portrait

Menguji apakah lanskap ke potret menggantikan fungsi dengan benar untuk sensor berorientasi lanskap.

API yang diuji:

Lulus: Pengujian dapat menemukan diagram dengan rotasi yang diharapkan (0 derajat jika penggantian lanskap ke potret dinonaktifkan, 90 derajat jika diaktifkan).

test_landscape_to_portrait

test_landscape_to_portrait.png

test_lens_movement_reporting

Menguji apakah tanda gerakan lensa dilaporkan dengan benar. Mengambil burst 24 gambar dengan 12 frame pertama pada jarak fokus optimum (seperti yang ditemukan oleh 3A) dan 12 frame terakhir pada jarak fokus minimum. Sekitar frame 12, lensa bergerak sehingga ketajaman menurun. Ketajaman akhirnya stabil saat lensa bergerak ke posisi akhir. Tanda gerakan lensa harus ditegaskan di semua frame dengan ketajaman menengah hingga ketajaman dalam beberapa frame pertama dengan lensa diam pada jarak fokus optimal, dan beberapa frame terakhir saat lensa diam dalam jarak fokus minimum. Frame persis yang digerakkan lensa tidak penting: yang diperiksa adalah flag gerakan ditegaskan saat lensa bergerak.

API yang diuji:

Lulus: Tanda gerakan lensa adalah True dalam bingkai dengan perubahan ketajaman.

Mekanisme kegagalan:

  • lens_moving: True (android.hardware.camera2.CaptureResult#LENS_STATE = 1) dalam test_log.DEBUG hanya dinyatakan dalam frame yang ketajamannya tidak berubah.
  • Frame dengan lens_moving: False (android.hardware.camera2.CaptureResult#LENS_STATE = 0) di test_log.DEBUG memiliki perbedaan ketajaman dibandingkan dengan beberapa frame pertama pada jarak fokus yang optimal atau beberapa frame terakhir pada jarak fokus minimum.

test_reprocess_edge_enhancement

Menguji apakah metode pemrosesan ulang yang didukung untuk peningkatan tepi berfungsi dengan baik. Memproses permintaan pengambilan dengan mode tepi pemrosesan ulang tertentu dan membandingkan mode yang berbeda untuk diambil dengan mode tepi pemrosesan ulang dinonaktifkan.

API yang diuji:

Lulus: Ketajaman untuk berbagai mode tepi sudah benar. HQ (mode 2) lebih tajam daripada OFF (mode 0), dan peningkatan antar-mode yang berbeda serupa.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

scene4

Scene4 terdiri dari lingkaran hitam dengan latar belakang putih di dalam persegi. Pengujian di scene4 dapat sensitif terhadap perataan, sehingga mulai dari 15, Anda dapat menggunakan check_alignment.py di direktori alat untuk mengaktifkan pemeriksaan DUT dan perataan diagram.

scene4

adegan4

test_30_60fps_preview_fov_match

Menguji apakah video pratinjau 30 FPS dan 60 FPS memiliki FoV yang sama. Pengujian ini merekam dua video, satu video dengan 30 FPS dan lainnya dengan 60 FPS. Frame representatif dipilih dari setiap video dan dianalisis untuk memastikan bahwa perubahan FoV di kedua video tersebut sesuai dengan spesifikasi. Menguji bahwa rasio aspek lingkaran tetap konstan, pusat lingkaran tetap stabil, dan jari-jari lingkaran tetap konstan.

API yang diuji:

Lulus: Gambar tidak diregangkan, bagian tengah gambar tidak berbeda lebih dari 3%, dan perubahan rasio aspek maksimum antara video 30 FPS dan 60 FPS tidak lebih dari 7,5%

Mekanisme kegagalan:

  • Lingkaran dari video 30 FPS memiliki ukuran yang sangat berbeda dari video 60 FPS.
  • Lingkaran pada gambar yang diambil terdistorsi oleh pipeline pemrosesan.
  • Lingkaran dalam gambar yang diambil dipangkas karena permintaan pengambilan rasio aspek ekstrem yang mengurangi tinggi atau lebar gambar.
  • Lingkaran dalam gambar yang diambil memiliki refleksi di bagian tengah dan tidak terlihat terisi penuh.

test_aspect_ratio_and_crop

Menguji apakah gambar terdistorsi atau terpangkas secara tidak terduga dalam pipeline gambar. Mengambil gambar lingkaran di atas semua format. Memverifikasi bahwa lingkaran tidak terdistorsi, lingkaran tidak berpindah dari pusat gambar, dan lingkaran tidak mengubah ukuran secara tidak benar dengan rasio aspek atau resolusi yang berbeda.

API yang diuji:

Lulus: Gambar tidak direntangkan, bagian tengah gambar tidak berbeda lebih dari 3%, dan FoV (ruang pandang) maksimum yang mungkin dipertahankan.

Mekanisme kegagalan:

  • Kamera tidak sejajar dengan lingkaran yang ditampilkan di tablet di tengah tampilan yang diambil.
  • Lingkaran pada gambar yang diambil terdistorsi oleh pipeline pemrosesan.
  • Gambar beresolusi lebih rendah akan dipangkas dua kali di pipeline gambar sehingga FoV berbeda antara gambar beresolusi tinggi dan rendah.
  • Lingkaran dalam gambar yang diambil dipangkas karena permintaan pengambilan rasio aspek ekstrem yang mengurangi tinggi atau lebar gambar.
  • Lingkaran dalam gambar yang diambil memiliki refleksi di bagian tengah dan tidak terlihat terisi penuh.

test_multi_camera_alignment

Menguji parameter kalibrasi kamera yang terkait dengan pemosisian kamera untuk sistem multi-kamera. Menggunakan sub-kamera fisik multi-kamera, mengambil foto dengan salah satu kamera fisik. Menemukan pusat lingkaran. Memproyeksikan pusat lingkaran ke koordinat dunia untuk setiap kamera. Membandingkan perbedaan antara pusat lingkaran kamera dalam koordinat dunia. Memproyeksikan ulang koordinat dunia ke koordinat piksel dan membandingkannya dengan yang asli sebagai pemeriksaan validitas. Membandingkan ukuran lingkaran untuk memeriksa apakah panjang fokus kamera berbeda.

API yang diuji:

Lulus: Pusat dan ukuran lingkaran seperti yang diharapkan dalam gambar yang diproyeksikan dibandingkan dengan gambar yang diambil menggunakan data kalibrasi kamera dan panjang fokus.

Mekanisme kegagalan:

  • LENS_INTRINSIC_CALIBRATION, LENS_POSE_TRANSLATION, atau LENS_POSE_ROTATION adalah nilai desain dan bukan data kalibrasi yang sebenarnya.
  • Sistem kamera tidak sesuai untuk penyiapan pengujian. Misalnya, menguji sistem kamera lebar dan ultra-lebar dengan rig pengujian RFoV. Untuk informasi selengkapnya, lihat FAQ1 ITS-in-a-box Kamera.

test_preview_aspect_ratio_and_crop

Serupa dengan pengujian test_aspect_ratio_and_crop untuk tetap menangkap, pengujian ini memeriksa format pratinjau yang didukung untuk memastikan frame pratinjau tidak direntangkan atau dipangkas dengan tidak tepat. Memverifikasi bahwa rasio aspek lingkaran tidak berubah, gambar yang dipangkas menempatkan lingkaran di tengah frame, dan ukuran lingkaran tidak berubah untuk format yang konstan atau dengan resolusi yang berbeda (pemeriksaan ruang pandang).

API yang diuji:

Lulus: Gambar tidak direntangkan, bagian tengah gambar tidak berbeda lebih dari 3%, dan FoV (ruang pandang) maksimum yang mungkin dipertahankan.

test_preview_stabilization_fov

Memeriksa ukuran pratinjau yang didukung untuk memastikan FoV dipangkas dengan tepat. Pengujian ini merekam dua video, satu dengan stabilisasi pratinjau ON, dan satu lagi dengan stabilisasi pratinjau OFF. Frame perwakilan dipilih dari setiap video, dan dianalisis untuk memastikan bahwa perubahan FoV dalam dua video berada dalam spesifikasi.

API yang diuji:

Lulus: Rasio aspek lingkaran tetap konstan, lokasi tengah lingkaran tetap stabil, dan ukuran lingkaran tidak berubah lebih dari 20%.

test_video_aspect_ratio_and_crop

Merekam video lingkaran di dalam persegi di atas semua format video. Mengekstrak frame utama, dan memverifikasi rasio aspek lingkaran tidak berubah, gambar yang dipangkas mempertahankan lingkaran di tengah, dan ukuran lingkaran tidak berubah untuk format konstan atau dengan resolusi yang berbeda (pemeriksaan bidang pandang).

API yang diuji:

Lulus: Frame video tidak direntangkan, bagian tengah frame tidak berbeda lebih dari 3%, dan FoV (ruang pandang) maksimum yang memungkinkan dipertahankan.

adegan5

Scene5 memerlukan scene abu-abu yang diterangi secara seragam. Hal ini dilakukan dengan diffuser yang ditempatkan di atas lensa kamera. Sebaiknya gunakan diffuser berikut: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168.

Untuk menyiapkan adegan, pasang diffuser di depan kamera dan arahkan kamera ke sumber pencahayaan sekitar 2.000 lux. Gambar yang diambil untuk scene5 memerlukan pencahayaan difusi tanpa fitur yang terlihat. Berikut adalah contoh gambar:

adegan5

tangkapan scene5

test_lens_shading_and_color_uniformity

Menguji apakah koreksi bayangan lensa diterapkan dengan tepat, dan warna scene seragam monokrom didistribusikan secara merata. Melakukan pengujian ini pada bingkai YUV dengan 3A otomatis. Bayangan lensa dievaluasi berdasarkan saluran y. Mengukur nilai y rata-rata untuk setiap blok sampel yang ditentukan, dan menentukan lulus atau gagal dengan membandingkan dengan nilai y tengah. Pengujian keseragaman warna dievaluasi dalam ruang r/g dan b/g.

API yang diuji:

Lulus: Pada radius gambar yang ditentukan, varians nilai r/g dan b/g harus kurang dari 20% agar lulus pengujian.

scene6

Scene6 adalah petak lingkaran kecil dengan persegi di salah satu sudut untuk menunjukkan orientasi. Lingkaran kecil diperlukan untuk menguji fungsi zoom dalam rentang yang besar. Pengujian di scene6 dapat sensitif terhadap perataan, jadi mulai dari 15, Anda dapat menggunakan check_alignment.py di direktori alat untuk mengaktifkan pemeriksaan DUT dan perataan diagram.

scene6

adegan6

test_in_sensor_zoom

Menguji perilaku fitur zoom dalam sensor kamera, yang menghasilkan gambar RAW yang dipangkas.

Dengan kasus penggunaan streaming yang disetel ke CROPPED_RAW, pengujian mengambil dua pengambilan gambar dalam rentang zoom, gambar RAW ruang pandang penuh (FoV), dan gambar RAW yang dipangkas. Pengujian ini mengonversi gambar menjadi array RGB, memperkecil gambar RAW yang dipangkas berukuran penuh menjadi ukuran yang dilaporkan oleh SCALER_RAW_CROP_REGION, dan menghitung perbedaan root mean square (RMS) 3D antara kedua gambar tersebut.

API yang diuji:

Lulus: Perbedaan rata-rata persegi rata-rata (RMS) 3D antara gambar RAW yang diperkecil dan gambar RAW FoV penuh kurang dari nilai minimum yang ditetapkan dalam pengujian.

test_zoom

Menguji perilaku zoom kamera. Mengambil foto pada rentang zoom dan memeriksa apakah lingkaran membesar saat kamera diperbesar. Untuk setiap format (YUV, JPEG), sesi pengambilan gambar kamera yang sama digunakan untuk konvergen 3A dan mengambil gambar.

API yang diuji:

Lulus: Ukuran relatif lingkaran yang diambil akurat terhadap rasio zoom yang diminta untuk memastikan kamera melakukan zoom dengan benar.

test_zoom

test_zoom untuk menemukan kontur lingkaran yang paling dekat dengan pusat.

test_low_latency_zoom

Menguji perilaku zoom latensi rendah kamera. Mengambil gambar dalam rentang zoom dengan android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM), dan memeriksa apakah lingkaran dalam gambar output cocok dengan rasio zoom dalam metadata pengambilan. Sesi pengambilan gambar kamera yang sama digunakan untuk konvergen 3A dan mengambil gambar.

API yang diuji:

Lulus: Ukuran relatif lingkaran yang diambil akurat terhadap metadata hasil rasio zoom.

uji_pratinjau_video_zoom_match

Mengujinya saat merekam dan melakukan zoom, pratinjau video dan output video akan ditampilkan, serta merekam output yang sama. Menghitung ukuran lingkaran yang paling dekat dengan pusat pada rasio zoom yang berbeda dan memeriksa apakah ukuran lingkaran meningkat seiring meningkatnya rasio zoom.

API yang diuji:

Lulus: Ukuran relatif lingkaran yang diambil akurat terhadap rasio zoom yang diminta dalam video dan pratinjau.

VGA_640x480_key_frame.png

VGA_640x480_key_frame.png (sebelum zoom)

preview_640x480_key_frame.png

preview_640x480_key_frame.png (sebelum zoom)

VGA_640x480_key_frame_zoomed.png

VGA_640x480_key_frame.png (setelah zoom)

pratinjau_640x480_kunci_frame_diperbesar.png

preview_640x480_key_frame.png (setelah zoom)

test_preview_zoom

Menguji apakah rasio zoom setiap frame pratinjau cocok dengan metadata pengambilan yang sesuai. Pengujian ini mengambil frame pratinjau pada rentang zoom dan menemukan kontur lingkaran yang paling dekat dengan pusat. Pengujian kemudian memeriksa apakah lingkaran yang dipilih menjadi lebih besar dan pusat lingkaran bergerak menjauh dari pusat gambar saat kamera diperbesar.

API yang diuji:

Lulus: Ukuran relatif lingkaran yang dipilih akurat untuk rasio zoom yang dilaporkan dari hasil pengambilan yang sesuai untuk semua frame pratinjau. Jarak relatif lingkaran yang dipilih dari pusat gambar akurat untuk rasio zoom yang dilaporkan dari hasil pengambilan yang sesuai dari semua frame pratinjau.

test_zoom

Gambar test_preview_zoom menampilkan lingkaran yang dipilih yang paling dekat dengan tengah

test_session_characteristics_zoom

Menguji rentang rasio zoom untuk semua konfigurasi sesi yang didukung yang tercantum di CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION. Untuk setiap konfigurasi tersebut, jika CameraDeviceSetup#isSessionConfigurationSupported menampilkan benar, pengujian memastikan bahwa rentang rasio zoom yang ditampilkan dalam CameraDeviceSetup#getSessionCharacteristics dapat tercapai.

API yang diuji:

Lulus: Rasio zoom minimum dan maksimum dapat dicapai untuk setiap SessionConfiguration yang didukung dan tercantum dalam CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION.

adegan7

Scene7 adalah bingkai persegi panjang yang dibagi menjadi empat kuadran yang sama, masing-masing diisi dengan warna yang berbeda. Di bagian tengah persegi panjang terdapat diagram tepi miring untuk pemeriksaan ketajaman. Empat penanda ArUco disejajarkan dengan empat sudut luar persegi panjang untuk membantu mendapatkan koordinat yang akurat dari bingkai persegi panjang utama dengan rasio zoom yang bervariasi.

adegan7

scene7

test_multi_camera_switch

Pengujian ini memverifikasi bahwa selama perekaman pratinjau dengan rasio zoom yang bervariasi, peralihan antara lensa ultrawide (UW) dan lebar (W) menghasilkan nilai RGB yang serupa.

Pengujian ini menggunakan rasio zoom yang berbeda dalam rentang yang telah ditentukan untuk melakukan perekaman pratinjau dinamis dan mengidentifikasi titik saat kamera fisik berubah. Titik ini menandai perpindahan dari lensa UW ke lensa W.

Frame yang diambil pada dan sebelum titik persilangan dianalisis untuk eksposur otomatis (AE), white balance otomatis (AWB), dan fokus otomatis (AF).

Pemeriksaan AE memastikan bahwa perubahan luma berada dalam rentang yang diharapkan untuk gambar lensa UW dan W. Pemeriksaan AWB memverifikasi bahwa rasio R/G dan B/G berada dalam nilai minimum untuk gambar lensa UW dan W. Pemeriksaan AF mengevaluasi nilai estimasi ketajaman berdasarkan magnitudo gradien rata-rata antara gambar lensa UW dan W.

API yang diuji:

Lulus: Agar pengujian lulus, pemeriksaan AE, AWB, dan AF harus lulus. Berikut adalah kriteria untuk setiap pemeriksaan:

  • Pemeriksaan AE: Perubahan luma antara gambar lensa UW dan W harus kurang dari 0,5%.
  • Pemeriksaan AWB: Perbedaan antara nilai R/G dan B/G untuk gambar lensa UW dan W harus kurang dari 0,5%.
  • Pemeriksaan AF: Perubahan ketajaman gambar antara gambar lensa UW dan W harus kurang dari 2%.

scene8

Scene8 adalah bingkai persegi panjang yang dibagi menjadi empat wilayah yang sama, masing-masing berisi potret yang diambil dengan eksposur yang berbeda atau dilapisi dengan nuansa warna yang berbeda (nuansa biru, eksposur yang meningkat, eksposur yang menurun, nuansa kuning). Empat penanda ArUco disejajarkan dengan empat sudut luar persegi panjang untuk mendapatkan koordinat yang akurat dari bingkai persegi panjang utama.

scene8

scene8

test_ae_awb_regions

Menguji apakah nilai RGB dan luma berbeda saat merekam pratinjau di area eksposur otomatis (AE) dan white balance otomatis (AWB) yang berbeda.

Pengujian merekam perekaman pratinjau selama delapan detik, melakukan pengukuran AE dan AWB di setiap kuadran selama dua detik. Pengujian kemudian mengekstrak frame dari rekaman pratinjau setiap region, dan menggunakan frame yang diekstrak untuk melakukan pemeriksaan AE dan AWB berikut:

  • Pemeriksaan AE: Memverifikasi bahwa frame yang mengukur wilayah dengan eksposur menurun memiliki nilai luma yang meningkat lebih dari 1% dibandingkan dengan frame yang mengukur wilayah dengan eksposur yang meningkat. Tindakan ini memverifikasi bahwa gambar dipercerah saat mengukur area gelap.
  • Pemeriksaan AWB: Memverifikasi bahwa rasio merah terhadap biru (dari nilai RGB rata-rata gambar) dalam bingkai dengan wilayah pengukuran biru lebih tinggi dari 2% dari bingkai dengan wilayah pengukuran kuning. Tindakan ini memverifikasi bahwa gambar memiliki nilai RGB yang seimbang saat mengukur area kuning (hangat) atau biru (dingin).

API yang diuji:

Lulus: AE dan AWB memeriksa kedua lulus.

scene9

Scene9 terdiri dari ribuan lingkaran berukuran acak dan berwarna untuk membuat scene dengan pengulangan yang sangat rendah untuk menekankan algoritma kompresi JPEG.

scene9

scene9

test_jpeg_high_entropy

Menguji apakah kompresi JPEG kamera berfungsi di scene9 dengan entropi tinggi dan faktor kualitas JPEG ditetapkan ke 100%. Faktor zoom ditingkatkan untuk memastikan tampilan yang ditampilkan di tablet mengisi bidang pandang kamera.

API yang diuji:

Lulus: File JPEG dikompresi dengan benar, ditulis, dan dibaca kembali dari disk.

test_jpeg_quality

Menguji kualitas kompresi JPEG kamera. Tingkatkan kualitas JPEG melalui android.jpeg.quality dan pastikan Tabel Kuantifikasi berubah dengan benar.

API yang diuji:

Lulus: Matriks kuantisasi berkurang dengan peningkatan kualitas. (Matriks mewakili faktor pembagian.)

test_jpeg_quality

Rata-rata matriks DQT luma/chroma kamera belakang Pixel 4 vs kualitas JPEG

test_jpeg_quality gagal

Contoh pengujian yang gagal

Perhatikan bahwa untuk gambar berkualitas sangat rendah (jpeg.quality < 50), tidak ada peningkatan kompresi dalam matriks kuantisasi.

scene_video

Adegan scene_video adalah adegan video. Gambar ini terdiri dari empat lingkaran berwarna yang berbeda yang bergerak bolak-balik dengan kecepatan frame yang berbeda di latar belakang putih.

video_adegan

test_preview_frame_drop

Menguji apakah kecepatan frame pratinjau yang diminta dipertahankan dengan tampilan dinamis. Pengujian ini berjalan di semua kamera yang diekspos ke aplikasi pihak ketiga.

API yang diuji:

Lulus: Kecepatan frame pratinjau berada pada maksimum rentang kecepatan frame yang diminta, dan variasi rata-rata antara frame berturut-turut kurang dari toleransi relatif yang ditetapkan dalam pengujian.

scene_extensions

Pengujian scene_extensions ditujukan untuk ekstensi kamera dan harus menggunakan Camera ITS-in-a-Box, karena memerlukan kontrol yang akurat terhadap lingkungan pengujian. Selain itu, semua kebocoran cahaya harus dikontrol. Hal ini mungkin memerlukan penutupan rig pengujian, DUT, dan tablet dengan kain lap serta menghilangkan kebocoran cahaya dari layar depan DUT.

scene_hdr

Scene scene_hdr terdiri dari potret di sebelah kiri dan kode QR kontras rendah di sebelah kanan.

scene_hdr

scene_hdr

test_hdr_extension

Menguji ekstensi HDR. Mengambil gambar dengan dan tanpa ekstensi yang diaktifkan, serta memeriksa apakah ekstensi membuat kode QR lebih mudah terdeteksi.

API yang diuji:

Lulus: Ekstensi HDR mengurangi jumlah perubahan kontras yang diperlukan untuk mendeteksi kode QR atau mengurangi gradien di seluruh kode QR.

scene_low_light

Layar scene_low_light terdiri dari petak persegi dengan berbagai nuansa abu-abu di latar belakang hitam dan petak persegi dibatasi oleh garis batas merah. Persegi disusun dalam orientasi kurva Hilbert.

scene_low_light

suasana_cahaya_rendah

test_night_extension

Menguji ekstensi Night. Mengambil rekaman dengan ekstensi yang diaktifkan, dan melakukan hal berikut:

  • Mendeteksi keberadaan 20 kotak
  • Menghitung luma yang dibatasi oleh setiap persegi
  • Menghitung nilai luma rata-rata dari 6 kotak pertama sesuai dengan orientasi petak kurva Hilbert
  • Menghitung perbedaan nilai luma dari kotak berturut-turut (misalnya, square2 - square1) hingga kotak 5 dan 6 (square6 - square5), dan menemukan rata-rata dari lima perbedaan yang dihitung.

API yang diuji:

Lulus: Nilai luma rata-rata dari 6 kotak pertama minimal harus 85, dan perbedaan rata-rata nilai luma dari kotak berurutan hingga kotak 5 dan 6 harus minimal 17.

Plot luminance berikut menunjukkan tampilan hasil pengujian yang lulus.

scene_low_light_night_pass

test_low_light_boost_extension

Menguji mode AE Peningkatan Cahaya Redup. Jika Camera2 mendukung mode AE peningkatan cahaya rendah, pengujian ini dilakukan untuk Camera2. Jika ekstensi kamera mode malam didukung dan ekstensi mendukung mode AE peningkatan cahaya rendah, pengujian ini juga dilakukan untuk ekstensi kamera mode malam. Pengujian ini menetapkan mode AE ke peningkatan cahaya redup, mengambil frame dari pratinjau, dan melakukan hal berikut:

  • Mendeteksi keberadaan 20 kotak
  • Menghitung luma yang dibatasi oleh setiap kotak
  • Menghitung nilai luma rata-rata dari 6 kotak pertama sesuai dengan orientasi petak kurva Hilbert
  • Menghitung perbedaan nilai luma dari kotak berturut-turut (misalnya, square2 - square1) hingga kotak 5 dan 6 (square6 - square5), dan menemukan rata-rata dari lima perbedaan yang dihitung.

API yang diuji:

Lulus: Nilai luma rata-rata dari 6 kotak pertama harus minimal 70, dan perbedaan rata-rata nilai luma dari kotak berturut-turut hingga kotak 5 dan 6 harus minimal 17.

flash_adegan

Pengujian scene_flash memerlukan pemandangan gelap dalam kotak fusi sensor.

test_auto_flash

Menguji apakah flash otomatis dipicu dalam suasana gelap untuk kamera belakang dan depan. Untuk kamera depan, flash otomatis menggunakan layar untuk menerangi pemandangan, bukan unit flash fisik. Pengujian ini memverifikasi bahwa flash otomatis diaktifkan dengan memeriksa apakah bagian tengah gambar kartu lebih terang dengan flash otomatis diaktifkan. Untuk memicu flash otomatis, lampu di rig pengujian harus dinonaktifkan. Lampu dapat dimatikan secara otomatis dengan pengontrol Arduino. Layar harus benar-benar gelap agar pengujian berfungsi dengan benar. Aplikasi Kamera Jetpack (JCA) harus diinstal di perangkat sebelum pengujian. Flash otomatis untuk kamera belakang bergantung pada status AE untuk dipicu, tetapi flash otomatis untuk kamera depan tidak bergantung pada AE dan selalu dipicu.

API yang diuji:

Lulus: Bagian tengah gambar kartu dengan flash otomatis yang diaktifkan lebih terang daripada gambar pemandangan asli untuk semua kamera.

test_flash_strength

Menguji bahwa kontrol kekuatan flash dalam mode SINGLE diterapkan dengan benar.

Memverifikasi bahwa jika perangkat mendukung kontrol kekuatan flash selama penggunaan kamera dalam mode SINGLE, kekuatan flash akan berubah dengan tingkat kekuatan yang diminta yang berbeda. Memverifikasi bahwa kontrol kekuatan flash berfungsi dengan AE_MODES yang berbeda. Misalnya, jika mode eksposur otomatis adalah ON atau OFF, tingkat kekuatan flash akan memengaruhi kecerahan, dan jika modenya adalah ON_AUTO_FLASH, tingkat kekuatan flash tidak akan memengaruhi kecerahan. Untuk melakukan pengujian, lampu di rig pengujian harus dimatikan. Lampu dapat dimatikan secara otomatis dengan pengontrol Arduino. Suasana harus benar-benar gelap agar pengujian dapat berfungsi dengan benar.

API yang diuji:

Kartu:

Jika mode eksposur otomatis adalah ON atau OFF, kecerahan patch gambar akan meningkat seiring peningkatan level kekuatan flash dari tanpa flash menjadi FLASH_SINGLE_STRENGTH_MAX_LEVEL. Jika mode eksposur otomatis adalah ON_AUTO_FLASH, perbedaan kecerahan patch gambar berada dalam toleransi saat tingkat kekuatan flash meningkat dari tanpa flash menjadi FLASH_SINGLE_STRENGTH_MAX_LEVEL.

test_led_snapshot

Menguji apakah snapshot LED tidak memenuhi atau mewarnai gambar.

Pengujian ini menambahkan pengontrol pencahayaan ke kotak penggabungan sensor untuk mengontrol lampu. Dengan lampu yang disetel ke OFF, pengujian akan mengambil gambar dengan mode AUTO_FLASH yang disetel ke ON. Selama pengambilan gambar ini, pengujian akan menjalankan urutan pra-rekaman dengan pemicu aePrecapture yang ditetapkan ke START, dan menetapkan intent perekaman ke Preview untuk mengambil rekaman dengan flash.

Karena rekaman memiliki hotspot yang khas karena flash, pengujian menghitung rata-rata gambar flash dari seluruh rekaman dan memverifikasi apakah nilainya berada dalam rentang (68, 102). Untuk memeriksa apakah gambar memiliki keseimbangan warna putih yang wajar, pengujian akan menghitung rasio R/G dan B/G serta memverifikasi apakah rasio tersebut berada dalam rentang 0,95 dan 1,05.

API yang diuji:

Lulus: Rasio R/G dan B/G berada dalam rentang 0,95 dan 1,05. Rata-rata gambar flash berada dalam rentang (68, 102).

kecepatan_frame_pratinjau_min_pengujian

Menguji apakah kecepatan frame pratinjau menurun dengan benar dalam scene gelap. Agar pengujian ini berfungsi dengan benar, lampu di rig pengujian harus dimatikan oleh pengontrol atau secara manual oleh operator pengujian.

API yang diuji:

Lulus: Kecepatan frame pratinjau berada pada minimum rentang kecepatan frame yang diminta, dan variasi antar-frame kurang dari toleransi absolut yang ditetapkan dalam pengujian.

test_torch_strength

Menguji bahwa kontrol kekuatan flash dalam mode TORCH diterapkan dengan benar.

Memverifikasi bahwa jika perangkat mendukung kontrol kekuatan flash selama penggunaan kamera dalam mode TORCH, kekuatan senter akan berubah dengan tingkat kekuatan yang diminta yang berbeda. Memverifikasi bahwa kontrol kekuatan flash berfungsi dengan berbagai AE_MODES. Misalnya, jika mode eksposur otomatis adalah ON atau OFF, tingkat kekuatan flash akan memengaruhi kecerahan, dan jika modenya adalah ON_AUTO_FLASH, tingkat kekuatan flash tidak akan memengaruhi kecerahan. Memverifikasi bahwa kekuatan flash tetap sama selama durasi burst, yang menyimulasikan sesi perekaman video. Untuk melakukan pengujian, lampu di rig pengujian harus dimatikan. Lampu dapat dimatikan secara otomatis dengan pengontrol Arduino. Scene harus benar-benar gelap agar pengujian dapat berfungsi dengan benar.

API yang diuji:

Lulus:

Jika mode eksposur otomatis adalah ON atau OFF, kecerahan patch burst gambar akan meningkat seiring dengan peningkatan tingkat kekuatan flash dari tanpa flash menjadi FLASH_TORCH_STRENGTH_MAX_LEVEL. Jika mode eksposur otomatis adalah ON_AUTO_FLASH, perbedaan kecerahan patch burst gambar berada dalam toleransi saat tingkat kekuatan flash meningkat dari tanpa flash menjadi FLASH_TORCH_STRENGTH_MAX_LEVEL.

sensor_fusion

Pengujian penggabungan sensor memerlukan gerakan ponsel tertentu di depan pola catur dan penanda ArUco. Untuk hasil yang optimal, pastikan diagram pengujian dipasang rata. Diagram yang tidak datar akan memengaruhi kalkulasi rotasi untuk banyak pengujian. Diagram harus mengisi bagian belakang kotak fusion sensor dengan mencetak berukuran 17"x17" (43x43 cm). Pengujian sensor_fusion dapat diotomatiskan dengan Sensor Fusion Box.

Diagram penggabungan sensor

Diagram penggabungan sensor

Diagram penggabungan sensor di Rig

Diagram fusi sensor yang mengisi bagian belakang kotak fusi sensor

kalibrasi_intrinsik_lensa pengujian

Menguji apakah pusat optik lensa intrinsik berubah saat lensa bergerak karena stabilisasi gambar optik (OIS). Jika sampel intrinsik lensa didukung, menguji apakah pusat optik sampel intrinsik lensa berubah saat lensa bergerak karena stabilisasi gambar optik (OIS).

API yang diuji:

Lulus: Pusat optik lensa intrinsik berubah sebesar satu piksel atau lebih. Jika sampel intrinsik lensa didukung, pusat optik sampel intrinsik lensa akan berubah sebesar satu piksel atau lebih.

contoh_kalibrasi_lensa_intrinsik.png

Contoh plot test_lens_intrinsic_calibration yang menunjukkan perubahan titik utama dalam piksel untuk setiap frame

test_multi_camera_frame_sync

Menguji bahwa stempel waktu frame yang diambil oleh kamera logis berada dalam 10 ms dengan menghitung sudut kotak dalam kotak-kotak untuk menentukan stempel waktu.

API yang diuji:

Lulus: Sudut antara gambar dari setiap kamera tidak berubah secara signifikan saat ponsel diputar.

distorsi_pratinjau_pengujian

Menguji apakah distorsi dikoreksi di setiap frame pratinjau yang diambil pada berbagai tingkat zoom. Untuk setiap frame pratinjau, pengujian menghitung titik ideal berdasarkan intrinsik dan ekstrinsik kamera. Pada gambar contoh, titik ideal ditampilkan dalam warna hijau; titik sebenarnya ditampilkan dalam warna merah. Error distorsi dihitung berdasarkan jarak piksel akar rata-rata kuadrat (RMS) antara titik aktual dan titik ideal. Sorotan hijau dan merah pada gambar digunakan untuk mendeteksi area error distorsi secara visual.

test_preview_distortion_example.jpg

Gambar papan catur dengan titik ideal berwarna hijau dan titik aktual berwarna merah

API yang diuji:

Lulus: Error distorsi yang dinormalisasi dari setiap frame pratinjau kurang dari batas yang ditetapkan dalam pengujian.

test_preview_stabilization

Pengujian yang menstabilkan video pratinjau berputar lebih sedikit daripada giroskop.

API yang diuji:

Lulus: Rotasi sudut maksimum pada frame kurang dari 70% dari rotasi giroskop.

Berikut adalah contoh video dengan dan tanpa stabilisasi.

  • Contoh video dengan stabilisasi

  • Contoh video tanpa stabilisasi

fusi_pengujian_sensor

Menguji perbedaan stempel waktu antara kamera dan giroskop untuk aplikasi VR dan AR. Ponsel diputar 90 derajat 10 kali di depan pola kotak-kotak. Gerakannya sekitar 2 detik untuk bolak-balik. Pengujian ini dilewati jika tidak ada giroskop yang disertakan atau jika parameter REALTIME sumber stempel waktu tidak diaktifkan.

Pengujian test_sensor_fusion menghasilkan sejumlah plot. Dua plot terpenting untuk proses debug adalah:

  • test_sensor_fusion_gyro_events: Menampilkan peristiwa giroskop untuk ponsel selama pengujian. Gerakan dalam arah x dan y menyiratkan bahwa ponsel tidak dipasang dengan kencang di pelat pemasangan, sehingga mengurangi kemungkinan pengujian lulus. Jumlah siklus dalam plot bergantung pada kecepatan tulis untuk menyimpan frame.

    test_sensor_fusion_gyro_events.png

    pengujian_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations: Menampilkan perataan peristiwa kamera dan giroskop. Plot ini harus menunjukkan gerakan yang cocok antara kamera dan giroskopi hingga +/-1 ms.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

API yang diuji:

Lulus: Offset stempel waktu kamera dan giroskop kurang dari 1 milidetik sesuai CDD bagian 7.3.9 Sensor dengan Fidelitas Tinggi [C-2-14].

Mekanisme kegagalan:

  • Error offset: Offset giroskopi kamera tidak dikalibrasi dengan benar dalam +/-1 ms.
  • Penurunan frame: Pipeline tidak cukup cepat untuk merekam 200 frame secara berurutan.
  • Error soket: adb tidak dapat terhubung dengan andal ke DUT cukup lama untuk menjalankan pengujian.
  • Diagram tidak dipasang secara datar. Plot test_sensor_fusion_plot_rotations memiliki frame dengan rotasi giroskop dan kamera yang sangat bervariasi saat kamera berputar melalui bagian diagram yang tidak datar.
  • Kamera tidak dipasang dalam posisi datar. Plot test_sensor_fusion_gyro_events menunjukkan gerakan di bidang X dan Y. Kegagalan ini lebih umum terjadi pada kamera depan karena kamera belakang sering kali memiliki tonjolan yang lebih tinggi dari bagian bodi ponsel lainnya, sehingga menyebabkan kemiringan saat memasang bagian belakang ponsel ke pelat pemasangan.

test_video_stabilization

Pengujian yang memutar video stabil kurang dari giroskop.

API yang diuji:

Lulus: Rotasi sudut maksimum pada frame kurang dari 60% rotasi giroskop.

Berikut adalah contoh video dengan dan tanpa stabilisasi.

  • Contoh video dengan stabilisasi

  • Contoh video tanpa stabilisasi

feature_combination

Pengujian feature_combination memverifikasi bahwa fitur berfungsi dengan benar saat beberapa fitur kamera diaktifkan secara bersamaan. Pengujian ini menggunakan gambar checkerboard yang sama dengan yang digunakan di scene penggabungan sensor.

kombinasi_fitur_pengujian

Menguji semua kombinasi berbagai kombinasi streaming, stabilisasi pratinjau, rentang FPS target, video HDR 10-bit, dan Ultra HDR yang didukung oleh perangkat kamera. Pengujian ini sangat intensif memori, jadi sebaiknya gunakan host dengan RAM minimal 128 GB.

Untuk Android 15 dan yang lebih baru, file konfigurasi menyertakan kolom log_feature_combo_support, yang default-nya adalah False. Jika kolom log_feature_combo_support ditetapkan ke True, pengujian akan menjalankan semua kombinasi fitur yang didukung, dan mencatat hasil ke dalam file proto tanpa membuat pengujian gagal. Untuk pengujian kepatuhan, kolom log_feature_combo_support harus ditetapkan ke False.

API yang diuji:

Lulus: Untuk setiap kombinasi fitur yang didukung:

  • Streaming pratinjau distabilkan jika stabilisasi pratinjau aktif.
  • Kecepatan frame pratinjau berada dalam AE_TARGET_FPS_RANGE yang dikonfigurasi.
  • Ruang warna streaming pratinjau yang direkam cocok dengan yang ditetapkan.
  • Rekaman Ultra HDR memiliki peta gain yang valid.