Tes kamera ITS

Halaman ini menyediakan daftar lengkap pengujian pada Camera Image Test Suite (ITS), yang merupakan bagian dari Android Compatibility Test Suite (CTS) Verifier. Pengujian ITS merupakan pengujian fungsional, artinya tidak mengukur kualitas gambar, namun seluruh fungsi kamera yang diiklankan berfungsi sesuai harapan. Dokumen ini memungkinkan pengembang dan penguji memahami apa yang dilakukan masing-masing pengujian dan cara men-debug kegagalan pengujian.

Gerbang kamera ITS diuji berdasarkan properti kamera yang diperlukan, level API, dan level kelas kinerja media (MPC). Untuk level API, ITS menggunakan ro.product.first_api_level untuk menguji gerbang yang ditambahkan di level API tertentu yang menguji pengalaman pengguna negatif untuk fungsionalitas di level API yang lebih rendah. ITS menggunakan ro.vendor.api_level untuk menguji fitur-fitur yang ditambahkan dalam level API tertentu yang memerlukan kemampuan perangkat keras baru. Jika ro.odm.build.media_performance_class ditentukan untuk suatu perangkat, ITS memerlukan pengujian khusus untuk dijalankan tergantung pada level MPC.

Tes dikelompokkan berdasarkan adegan sebagai berikut:

  • scene0 : Menangkap metadata, jitter, giroskop, getaran
  • adegan1 : Eksposur, sensitivitas, kompensasi EV, YUV vs JPEG/RAW
  • adegan2 : Deteksi wajah, pengujian yang memerlukan pemandangan berwarna atau kegelapan total
  • adegan3 : Peningkatan tepi, pergerakan lensa
  • adegan4 : Rasio aspek, pemotongan, bidang pandang
  • adegan5 : Bayangan lensa
  • adegan6 : Perbesar
  • scene_extensions : Ekstensi kamera
  • sensor_fusion : Offset waktu kamera/giroskop

Lihat bagian individual untuk deskripsi setiap adegan.

adegan0

Tes Scene0 tidak memerlukan informasi adegan spesifik. Namun, ponsel harus dalam keadaan diam untuk pengujian giroskop dan getaran.

tes_burst_capture

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

API yang diuji:

Lulus: Mengambil rentetan gambar ukuran penuh dan kamera cukup cepat untuk menghindari batas waktu.

test_capture_result_dump

Menguji apakah hasil pengambilan dikembalikan dari pengambilan manual dan kemudian membuangnya.

API yang diuji:

Lulus: Menyelesaikan pengambilan dan membuang hasil pengambilan.

uji_gyro_bias

Menguji apakah gyro memiliki output yang stabil saat perangkat tidak bergerak. Data diplot sebagai rata-rata 20 titik data.

API yang diuji:

Lulus: Delta pembacaan gyro kurang dari 0,01 seiring waktu.

uji_gyro_bias_plot.png

uji_gyro_bias_plot.png

tes_jitter

Mengukur jitter pada stempel waktu kamera.

API yang diuji:

Lulus: Setidaknya ada delta 30 ms antar frame.

tes_jitter_plot.png

test_jitter_plot.png (Perhatikan rentang sumbu y yang kecil. Jitter sebenarnya kecil di plot ini.)

tes_metadata

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

API yang diuji:

Lulus: Level perangkat keras, rollingShutterSkew , tag frameDuration , timestampSource , croppingType , blackLevelPattern , pixel_pitch , FoV, jarak hyperfocal ada dan memiliki nilai yang valid.

test_param_sensitivity_burst

Menguji apakah parameter android.sensor.sensitivity diterapkan dengan benar secara burst. Hanya memeriksa metadata keluaran.

API yang diuji:

Lulus: Data keluaran memiliki toleransi kesalahan kurang dari 0,2%.

tes_baca_tulis

Menguji apakah perangkat menulis eksposur yang benar dan mendapatkan nilai dengan membaca kembali metadata tangkapan.

API yang diuji:

Lulus: Nilai baca dan tulis cocok di semua pengambilan gambar.

test_sensor_events

Menguji kueri perangkat dan mencetak peristiwa sensor untuk perangkat yang mengiklankan dukungan fusi sensor. Sensor yang diharapkan adalah akselerometer, giroskop, dan magnetometer. Tes ini hanya berfungsi jika layar menyala, artinya perangkat tidak dalam mode standby.

API yang diuji:

Lulus: Peristiwa untuk setiap sensor diterima.

uji_solid_warna_tes_pola

Menguji apakah pola pengujian warna solid dihasilkan dengan benar untuk mematikan suara kamera. Jika peredaman kamera didukung, pola pengujian warna solid harus didukung. Jika pembisuan kamera tidak didukung, pola uji warna solid hanya diuji jika kemampuannya diumumkan.

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

API yang diuji:

Lulus: Pola pengujian solid yang didukung adalah warna yang benar dan terdapat variansi rendah pada gambar.

pola_tes_tes

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

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

API yang diuji:

Lulus: Pola pengujian yang didukung dihasilkan dengan benar.

tes_test_patterns_2

tes_test_patterns_2.jpg

tes_tonemap_curve

Menguji konversi pola pengujian dari RAW ke YUV dengan peta nada linier. Pengujian ini memerlukan android.sensor.testPatternMode = 2 (COLOR_BARS) untuk menghasilkan pola gambar yang sempurna untuk konversi tonemap. Memastikan saluran pipa memiliki keluaran warna yang tepat dengan peta nada linier dan masukan gambar ideal (bergantung pada test_test_patterns ).

API yang diuji:

Lulus: YUV dan RAW terlihat mirip satu sama lain.

tes_tonemap_curve_raw_2

tes_tonemap_curve_raw_2.jpg

tes_tonemap_curve_yuv_2.jpg

tes_tonemap_curve_yuv_2.jpg

stempel waktu_terpadu

Menguji apakah peristiwa gambar dan sensor gerak 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 pembatasan audio kamera.

adegan1

adegan1 adalah bagan abu-abu. Bagan abu-abu harus menutupi 30% bagian tengah bidang pandang kamera. Grafik abu-abu diperkirakan akan cukup menantang 3A (eksposur otomatis, keseimbangan putih otomatis, fokus otomatis) karena wilayah tengah tidak memiliki fitur. Namun, permintaan pengambilan menentukan keseluruhan adegan yang mencakup fitur yang memadai agar 3A dapat menyatu.

Kamera RFoV dapat diuji di WFoV atau alat uji RFoV. Jika kamera RFoV diuji di rig pengujian WFoV, bagan akan diskalakan sebesar ⅔ untuk memastikan beberapa batasan bagan abu-abu di FoV guna membantu konvergensi 3A. Untuk penjelasan lebih rinci tentang perlengkapan pengujian kamera, lihat Kamera ITS-in-a-box .

adegan1

adegan1: Bagan ukuran penuh (kiri). ⅔ grafik berskala (kanan).

tes_3a

Menguji konvergensi 3A dengan target yang cukup menantang.

API yang diuji:

Lulus: 3A menyatu dan nilai 3A yang dikembalikan valid.

tes_ae_af

Menguji algoritma eksposur otomatis (AE) dan fokus otomatis (AF) 3A satu per satu.

API yang diuji:

Lulus: 3A menyatu dan nilai 3A yang dikembalikan sah.

test_ae_precapture_trigger

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

API yang diuji:

Lulus: AE menyatu.

tes_auto_vs_manual

Pengujian yang menangkap bidikan otomatis dan manual terlihat sama.

API yang diuji:

Lulus: Peningkatan dan transformasi keseimbangan putih manual yang dilaporkan dalam setiap hasil pengambilan sesuai dengan estimate keseimbangan putih otomatis dari algoritma 3A kamera.

tes_auto_vs_manual_auto

tes_auto_vs_manual_auto.jpg

tes_auto_vs_manual_wb

tes_auto_vs_manual_wb.jpg

tes_auto_vs_manual_manual_wb_tm

tes_auto_vs_manual_manual_wb_tm.jpg

tes_hitam_putih

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

API yang diuji:

Pass: Menghasilkan gambar hitam putih. Saluran jenuh gambar putih memiliki nilai RGB [255, 255, 255] dengan margin kesalahan selisih kurang dari 1%.

tes_hitam_putih_hitamtes_hitam_putih_hitam
tes_hitam_putih_hitam.jpg tes_hitam_putih_putih.jpg

tes_black_white_plot_means

tes_black_white_plot_means.png

test_burst_sameness_manual

Mengambil 5 rangkaian 50 gambar dengan pengaturan pengambilan manual dan memeriksa apakah semuanya identik. Tes 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 grafik rata-rata RGB di awal setiap ledakan

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

test_burst_sameness_manual_mean

tes_burst_kesamaan_manual_mean.jpg

test_burst_sameness_manual_plot_means

tes_burst_sameness_manual_plot_means.png

hasil_uji_tangkap

Menguji apakah data yang valid muncul kembali di objek CaptureResult . Apakah pengambilan otomatis, manual, dan otomatis.

API yang diuji:

Lulus: Metadata valid untuk semua pengambilan dan pengaturan manual tidak bocor ke pengambilan otomatis kedua. Plot koreksi bayangan lensa untuk pengambilan.

test_capture_result_plot_lsc_auto_ch0

tes_capture_result_plot_lsc_auto_ch0.png

test_crop_region_raw

Menguji apakah aliran RAW tidak dapat dipotong.

API yang diuji:

Lulus: Gambar YUV dipotong di tengah tetapi bukan gambar RAW.

test_crop_region_raw_comp_raw_crop

uji_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 wilayah tanaman berfungsi. Mengambil gambar penuh dan membuat tambalan di 5 wilayah berbeda (sudut dan tengah.) Mengambil gambar dengan kumpulan potongan untuk 5 wilayah. Membandingkan nilai tambalan dan potongan gambar.

API yang diuji:

Lulus: Gambar wilayah yang dipotong cocok dengan tambalan yang sesuai dengan gambar yang dipotong.

tes_dng_noise_model

Memverifikasi bahwa parameter model mentah DNG sudah benar. Plot tersebut menggambarkan varians terukur dari patch tengah kartu abu-abu dalam bidikan mentah yang ditangkap pada rentang sensitivitas, dan membandingkan nilai-nilai ini dengan varians yang diharapkan pada setiap sensitivitas oleh model noise DNG di kamera HAL (berdasarkan pada Parameter O,S dikembalikan dalam objek hasil tangkapan). Untuk lebih detail mengenai model kebisingan DNG, unduh dokumen Model Kebisingan DNG berikut ini.

API yang diuji:

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

test_dng_noise_model_plog

tes_dng_noise_model_plog.png

test_ev_compensation_advanced

Menguji apakah kompensasi nilai eksposur (EV) diterapkan. Tes ini meningkatkan eksposur dalam delapan langkah, dan memeriksa kecerahan terukur versus 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 sebenarnya. Pengujian gagal jika nilai yang diharapkan dan nilai terukur tidak cocok atau gambar terlalu terang dalam lima langkah.

API yang diuji:

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

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_ev_kompensasi_basic

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

API yang diuji:

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

test_ev_kompensasi_basic

test_ev_compensation_basic.png

tes_eksposur

Menguji apakah eksposur konstan dicapai seiring ISO dan waktu eksposur bervariasi. Mengambil serangkaian bidikan yang ISO dan waktu pencahayaannya dipilih untuk menyeimbangkan satu sama lain. Hasil seharusnya memiliki kecerahan yang sama, tetapi pada urutan tertentu, gambar akan menjadi lebih berisik. Memverifikasi nilai rata-rata piksel sampel berdekatan satu sama lain. Memastikan gambar tidak terjepit ke 0 atau 1 (yang akan membuatnya terlihat seperti garis datar). Pengujian juga dapat dijalankan dengan gambar RAW dengan menyetel tanda debug di file konfigurasi Anda.

API yang diuji:

Lulus: Gambar memiliki kecerahan yang sama, namun menjadi lebih berisik dengan ISO yang lebih tinggi. Bidang RGB datar ketika nilai eksposur ISO* konstan pada ruang penguatan yang diuji.

test_exposure_plot_means

uji_eksposur_plot_means.png

tes_eksposur_mult=1,00tes_eksposur_mult=64,00
tes_eksposur_mult=1.00.jpg tes_eksposur_mult=64.00.jpg

tes_jpeg

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

API yang diuji:

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

tes_jpeg_fmt=jpg.jpgtes_jpeg=fmt=yuv.jpg
tes_jpeg_fmt=jpg.jpg tes_jpeg=fmt=yuv.jpg

uji_penguncian

Menguji kaitan pengaturan (eksposur dan penguatan) pada bingkai kanan untuk kamera FULL dan LEVEL_3 . Mengambil serangkaian pemotretan menggunakan permintaan back-to-back, memvariasikan parameter permintaan pengambilan di antara pengambilan 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 rata-rata RGB yang lebih tinggi pada test_latching_plot_means.png .

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

test_latching_plot_means

tes_latching_plot_means.png

uji_linearitas

Menguji apakah pemrosesan perangkat dapat dibalik menjadi piksel linier. Menangkap rangkaian bidikan dengan perangkat yang diarahkan ke target yang seragam.

API yang diuji:

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

uji_linearitas_plot_means

uji_linearitas_plot_means.png

tes_terkunci_meledak

Menguji kunci 3A dan burst YUV (menggunakan pengaturan otomatis). Tes ini dirancang untuk lulus bahkan pada perangkat terbatas yang tidak memiliki MANUAL_SENSOR atau PER_FRAME_CONTROLS . Tes ini memeriksa konsistensi gambar YUV sementara pemeriksaan frame rate di CTS.

API yang diuji:

Lulus: Pengambilan gambar terlihat konsisten.

test_locked_burst_frame0

tes_locked_burst_frame0.jpg

tes_locked_burst_frame1

tes_locked_burst_frame1.jpg

tes_locked_burst_frame2

tes_locked_burst_frame2.jpg

uji_param_warna_koreksi

Menguji apakah parameter android.colorCorrection.* diterapkan saat disetel. Mengambil bidikan dengan nilai transformasi dan perolehan yang berbeda, dan menguji apakah keduanya terlihat berbeda. Transformasi dan perolehan dipilih untuk membuat keluaran semakin merah atau biru. Menggunakan peta nada linier. Pemetaan nada adalah teknik yang digunakan dalam pemrosesan gambar untuk memetakan satu set warna ke warna lain untuk memperkirakan tampilan gambar dengan rentang dinamis tinggi dalam media yang memiliki rentang dinamis lebih terbatas.

API yang diuji:

Lulus: Nilai R dan B meningkat sesuai dengan transformasi.

tes_param_warna_koreksi_plot_berarti

tes_param_warna_koreksi_plot_means.png

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

tes_param_warna_koreksi_req=0

tes_param_warna_koreksi_req=0.jpg

tes_param_warna_kebenaran_req=1

test_param_color_trueness_req=1.jpg (peningkatan R)

tes_param_warna_koreksi_req=2

test_param_color_corection_req=2.jpg (peningkatan B)

test_param_exposure_time

Menguji apakah parameter android.sensor.exposureTime diterapkan.

API yang diuji:

Lulus: Setiap bidikan lebih terang dibandingkan bidikan sebelumnya.

test_param_exposure_time_frame0

tes_param_exposure_time_frame0.jpg

uji_param_eksposur_waktu_plot

tes_param_exposure_time_plot.png

tes_param_flash_mode

Menguji apakah parameter android.flash.mode diterapkan. Secara manual mengatur eksposur ke sisi gelap, sehingga jelas apakah flash menyala atau tidak, dan menggunakan tonemap linier. Periksa bagian tengah gambar ubin untuk melihat apakah ada gradien besar yang dibuat untuk memverifikasi apakah lampu kilat menyala.

API yang diuji:

Lulus: Bagian tengah gambar ubin memiliki gradien besar yang berarti lampu kilat menyala.

tes_param_flash_mode_1

tes_param_flash_mode_1.jpg

test_param_flash_mode_1_tile

tes_param_flash_mode_1_tile.jpg

tes_param_flash_mode_2

tes_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

tes_param_flash_mode_2_tile.jpg

test_param_noise_reduction

Menguji apakah parameter android.noiseReduction.mode diterapkan dengan benar saat disetel. Mengambil gambar dengan kamera yang penerangannya redup. Menggunakan penguatan analog yang tinggi untuk memastikan gambar yang diambil berisik. Mengambil tiga gambar, untuk NR nonaktif, "cepat", dan "kualitas tinggi". Juga menangkap gambar dengan penguatan rendah dan NR mati, dan menggunakan variansnya sebagai garis dasar. Semakin tinggi SNR (Signal to Noise Ratio), semakin baik kualitas gambarnya.

API yang diuji:

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

test_param_noise_reduction_plot_SNRs

uji_param_noise_reduction_plot_SNRs.png

0: MATI, 1: CEPAT, 2: Markas, 3: MENIT, 4: ZSL

uji_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

uji_param_noise_reduction_high_gain_nr=1

tes_param_noise_reduction_high_gain_nr=1.jpg

uji_param_noise_reduction_high_gain_nr=2

tes_param_noise_reduction_high_gain_nr=2.jpg

uji_param_noise_reduction_high_gain_nr=3

tes_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

tes_param_noise_reduction_low_gain.jpg

uji_param_sensitivitas

Menguji apakah parameter android.sensor.sensitivity diterapkan. Tes ini meningkatkan sensitivitas dalam 5 langkah dengan eksposur tetap untuk setiap bidikan.

API yang diuji:

Lulus: RGB berarti pusat 10% menjadi lebih terang dengan peningkatan sensitivitas.

test_param_sensitivity_iso=0055

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

tes_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

test_param_sensitivity_plot

tes_param_sensitivity_plot.png

tes_param_shading_mode

Menguji apakah parameter android.shading.mode diterapkan.

API yang diuji:

Lulus: Mode bayangan dialihkan dan peta bayangan lensa diubah sesuai yang diharapkan.

uji_param_shading_mode_ls_maps_mode_0_loop_0

uji_param_shading_mode_ls_maps_mode_0_loop_0.png

uji_param_shading_mode_ls_maps_mode_1_loop_0

uji_param_shading_mode_ls_maps_mode_1_loop_0.png

uji_param_shading_mode_ls_maps_mode_2_loop_0

uji_param_shading_mode_ls_maps_mode_2_loop_0.png

test_param_tonemap_mode

Menguji apakah parameter android.tonemap.mode diterapkan. Menerapkan kurva tonemap yang berbeda ke setiap saluran R, G, B, dan memeriksa apakah gambar keluaran dimodifikasi sesuai yang diharapkan. Tes ini terdiri dari dua tes, tes1 dan tes2.

API yang diuji:

Lulus:

  • tes1: Kedua gambar memiliki tonemap linier, tetapi n=1 memiliki gradien yang lebih curam. Saluran G (hijau) lebih terang untuk gambar n=1.
  • tes2: Peta nada yang sama, tetapi panjangnya berbeda. Gambarnya sama.
test_param_tonemap_mode_n=0.jpgtest_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

tes_post_raw_sensitivity_boost

Memeriksa peningkatan sensitivitas pasca RAW. Mengambil sekumpulan gambar RAW dan YUV dengan sensitivitas berbeda, memposting kombinasi peningkatan sensitivitas RAW dan memeriksa apakah rata-rata piksel keluaran cocok dengan pengaturan permintaan.

API yang diuji:

Lulus: Gambar RAW menjadi lebih gelap seiring peningkatan peningkatan sementara kecerahan gambar YUV tetap konstan

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

tes_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_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_yuv_s=0896_boost=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

tes_post_raw_sensitivity_boost_yuv_plot_means.png

uji_raw_burst_sensitivity

Menangkap serangkaian gambar mentah dengan penguatan yang meningkat dan mengukur noise. Menangkap secara mentah saja, secara beruntun.

API yang diuji:

Lulus: Setiap tembakan lebih berisik dari tembakan sebelumnya, karena perolehannya meningkat.

Menggunakan varian sel kisi statistik pusat.

uji_raw_burst_sensitivity_variance

uji_raw_burst_sensitivity_variance.png

uji_raw_exposure

Menangkap sekumpulan gambar mentah dengan peningkatan waktu pencahayaan dan mengukur nilai piksel.

API yang diuji:

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

uji_raw_exposure_s=55

tes_raw_exposure_s=55.png

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

uji_raw_exposure_s=132

tes_raw_exposure_s=132.png

uji_raw_exposure_s=209

tes_raw_exposure_s=209.png

uji_raw_exposure_s=286

tes_raw_exposure_s=286.png

uji_raw_exposure_s=363

tes_raw_exposure_s=363.png

uji_raw_exposure_s=440

tes_raw_exposure_s=440.png

uji_sensitivitas_mentah

Menangkap sekumpulan gambar mentah dengan sensitivitas yang meningkat dan mengukur noise (varians) di 10% bagian tengah gambar. Menguji apakah setiap bidikan lebih berisik dibandingkan bidikan sebelumnya.

API yang diuji:

Lulus: Varians meningkat dengan setiap tembakan.

uji_raw_sensitivity_variance

uji_raw_sensitivity_variance.png

test_reprocess_noise_reduction

Menguji apakah android.noiseReduction.mode diterapkan untuk memproses ulang permintaan. Mengambil gambar yang diproses ulang dengan kamera yang penerangannya redup. Menggunakan penguatan analog yang tinggi untuk memastikan pengambilan gambar berisik. Mengambil tiga gambar yang diproses ulang, untuk NR nonaktif, "cepat", dan "kualitas tinggi". Mengambil gambar yang diproses ulang dengan penguatan rendah dan NR mati, dan menggunakan variansinya sebagai garis dasar.

API yang diuji:

Lulus: CEPAT >= MATI, HQ >= CEPAT, HQ >> MATI

Plot SNR vs NR_MODE yang khas

Plot SNR vs NR_MODE yang khas

tes_tonemap_sequence

Menguji rangkaian bidikan dengan kurva tonemap yang berbeda. Menangkap 3 bidikan manual dengan tonemap linier. Mengambil 3 bidikan manual dengan peta nada default. Menghitung delta antara setiap pasangan frame yang berurutan.

API yang diuji:

Lulus: Ada 3 bingkai identik diikuti oleh kumpulan 3 bingkai identik yang berbeda.

tes_tonemap_sequence_i=0

tes_tonemap_sequence_i=0.jpg

tes_tonemap_sequence_i=1

tes_tonemap_sequence_i=1.jpg

tes_tonemap_sequence_i=2

tes_tonemap_sequence_i=2.jpg

tes_tonemap_sequence_i=3

tes_tonemap_sequence_i=3.jpg

tes_tonemap_sequence_i=4

tes_tonemap_sequence_i=4.jpg

tes_tonemap_sequence_i=5

tes_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 linier sehingga YUV dan JPEG terlihat sama ketika dikonversi oleh modul image_processing_utils . Gambar tidak disimpan secara default, namun dapat disimpan dengan mengaktifkan debug_mode .

API yang diuji:

Lulus: Semua pusat gambar memiliki perbedaan RMS (root-mean-square value of a signal) maksimal pada gambar yang dikonversi RGB dengan 3% gambar YUV resolusi tertinggi.

test_yuv_jpeg_all

tes_yuv_jpeg_all.png

tes_yuv_plus_dng

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

API yang diuji:

Lulus: Tes selesai dan mengembalikan gambar yang diminta.

tes_yuv_plus_dng

tes_yuv_plus_dng.jpg

test_yuv_plus_jpeg

Menguji pengambilan satu frame sebagai output YUV dan JPEG. Menggunakan permintaan manual dengan tonemap linier sehingga YUV dan JPEG terlihat sama ketika dikonversi oleh modul image_processing_utils .

API yang diuji:

Lulus: Gambar YUV dan JPEG serupa dan memiliki perbedaan RMS (root-mean-square value of a signal) kurang dari 1%.

tes_yuv_plus_jpg_jpg.jpgtes_yuv_plus_jpeg_yuv.jpg
tes_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 request manual dengan tonemap linier sehingga raw dan YUV diharapkan sama. Membandingkan nilai RGB 10% tengah gambar yang dikonversi RGB. Log android.shading.mode .

API yang diuji:

Lulus: YUV dan gambar mentah serupa dan memiliki perbedaan RMS (root-mean-square value of a signal) kurang dari 3,5%.

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

adegan2_a

scene2_a memiliki tiga wajah dengan latar belakang abu-abu dan pakaian netral. Wajah-wajah yang dipilih memiliki beragam warna kulit. Bagan harus memiliki orientasi yang benar agar deteksi wajah dapat bekerja secara optimal.

adegan2_a

adegan2_a

tes_auto_flash

Menguji apakah lampu kilat otomatis terpicu dalam suasana gelap. Memverifikasi apakah lampu kilat otomatis diaktifkan dengan memeriksa apakah bagian tengah gambar ubin memiliki gradien yang besar. Untuk memicu flash otomatis, tablet dan lampu di perangkat pengujian harus dimatikan. Tablet dimatikan saat pengujian, dan lampu dapat dimatikan secara otomatis dengan pengontrol Arduino. Adegan harus benar-benar gelap agar tes dapat berfungsi dengan benar. Oleh karena itu, bukaan belakang tablet harus tertutup seluruhnya oleh tablet pemandangan, dan bukaan depan harus ditutup dengan bukaan dan telepon DUT untuk menghalangi cahaya liar memasuki rig.

API yang diuji:

Lulus: Bagian tengah gambar ubin memiliki gradien besar yang berarti lampu kilat otomatis menyala.

tes_autoframing

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

API yang diuji:

Lulus: Ketiga wajah terdeteksi.

tes_tampilan_p3

Pengujian Menampilkan tangkapan P3 dalam format JPEG menggunakan ColorSpaceProfiles API. Menguji apakah JPEG yang diambil memiliki profil ICC yang sesuai di headernya, dan apakah gambar tersebut berisi warna di luar gamut sRGB.

API yang diuji:

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

uji_efek

Menangkap bingkai untuk efek kamera yang didukung dan memeriksa apakah dibuat dengan benar. Pengujian hanya memeriksa efek OFF dan MONO , namun menyimpan gambar untuk semua efek yang didukung.

API yang diuji:

Lulus: Mengambil gambar pemandangan dengan efek OFF dan gambar monokrom dengan efek diatur ke MONO .

uji_efek_MONO

uji_efek_MONO.jpg

test_format_combos

Menguji berbagai kombinasi format keluaran.

API yang diuji:

Lulus: Semua kombinasi berhasil ditangkap.

test_jpeg_quality

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

API yang diuji:

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

test_jpeg_quality

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

test_jpeg_quality gagal

Contoh tes yang gagal

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

tes_num_wajah

Menguji deteksi wajah.

API yang diuji:

Lulus: Menemukan tiga wajah.

tes_num_wajah_fd_mode_1

tes_num_faces_fd_mode_1.jpg

test_preview_min_frame_rate

Menguji apakah kecepatan bingkai pratinjau menurun dengan benar dalam pemandangan gelap. Agar pengujian ini dapat bekerja dengan benar, lampu pada peralatan pengujian harus dimatikan oleh pengontrol atau secara manual oleh operator pengujian.

API yang diuji:

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

uji_reproses_uv_swap

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

API yang diuji:

Lulus: Pesawat U dan V tidak tertukar.

uji_reproses_uv_swap

tes_reprocess_uv_swap.png

adegan2_b

tes_num_wajah

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

API yang diuji:

Lulus: Menemukan 3 wajah.

tes_num_wajah_fd_mode_1

tes_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 dan tidak melebihi resolusi 1920x1440. Menyetel jpeg.quality ke 100 dan menangkap permintaan permukaan ganda. Mengonversi kedua gambar menjadi array RGB dan menghitung perbedaan root mean square (RMS) 3D antara kedua gambar.

API yang diuji:

Lulus: Gambar YUV dan JPEG serupa dan memiliki perbedaan RMS (root-mean-square value of a signal) kurang dari 1%.

adegan2_c

tes_num_wajah

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

API yang diuji:

Lulus: Menemukan 3 wajah.

tes_num_wajah_fd_mode_1

tes_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

Menguji latensi pengambilan JPEG untuk kelas kinerja S seperti yang ditentukan di bagian 2.2.7.2 Kamera di CDD.

Lulus: HARUS memiliki latensi pengambilan JPEG kamera2 <1000ms untuk resolusi 1080p yang diukur dengan kamera CTS PerformanceTest dalam kondisi pencahayaan ITS (3000K) untuk kedua kamera utama.

test_camera_launch_perf_class

Menguji latensi peluncuran kamera untuk kelas kinerja S seperti yang ditentukan bagian 2.2.7.2 Kamera di CDD.

Lulus: HARUS memiliki latensi pengaktifan kamera2 (buka kamera ke bingkai pratinjau pertama) < 600 ms yang diukur oleh PerformanceTest kamera CTS dalam kondisi pencahayaan ITS (3000K) untuk kedua kamera utama.

adegan2_d

tes_num_wajah

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

API yang diuji:

Lulus: Menemukan 3 wajah.

adegan2_e

tes_kontinu_gambar

50 frame beresolusi VGA ditangkap dengan permintaan pengambilan terlebih dahulu dengan menyetel android.control.afMode = 4 (CONTINUOUS_PICTURE).

API yang diuji:

Lulus: Sistem 3A diselesaikan pada akhir pengambilan 50 bingkai.

tes_num_wajah

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

API yang diuji:

Lulus: Menemukan 3 wajah.

adegan2_f

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

adegan2_f.png

adegan2_f

tes_num_wajah

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

API yang diuji:

Lulus: Menemukan 3 wajah.

tes_num_wajah_fd_mode_1

tes_num_faces_fd_mode_1.jpg

adegan3

Scene3 menggunakan grafik ISO12233, dan sebagian besar tes menggunakan metode ekstraktor grafik untuk menemukan grafik dalam adegan. Untuk alasan ini, sebagian besar gambar yang disimpan tidak memiliki perbatasan seperti gambar untuk adegan 1, 2 atau 4, tetapi hanya bagan. Bagan harus berada dalam orientasi yang benar untuk pencari bagan untuk bekerja secara optimal.

test_3a_consistency

Tes untuk konsistensi 3A.

APIS diuji:

Lulus: 3A konvergen untuk paparan, gain, awb (white balance), dan fd (jarak fokus) tiga kali dalam toleransi.

test_edge_enhancement

Menguji bahwa parameter android.edge.mode diterapkan dengan benar. Menangkap gambar non-reproses untuk setiap mode tepi dan mengembalikan ketajaman gambar output dan metadata hasil penangkapan. Memproses permintaan penangkapan dengan mode tepi yang diberikan, sensitivitas, waktu paparan, jarak fokus, dan parameter permukaan output.

Pass: Mode HQ (2) Sharper Than OFF Mode (0). Mode FAST (1) lebih tajam dari pada mode OFF . HQ Mode Sharper atau sama dengan mode FAST .

APIS diuji:

Parameter kamera yang terkena dampak:

  • 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 berkualitas tinggi)

test_flip_mirror

Tes Jika gambar berorientasi dengan benar sesuai CDD Bagian 7.5.2 Kamera yang menghadap ke depan [C-1-5] .

Gambar cermin, terbalik, atau diputar dapat diidentifikasi dengan fitur berlian di dekat pusat.

Pass: Gambar tidak terbalik, dicerminkan atau diputar.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_landscape_to_portrait

Menguji jika fungsi override lanskap ke potret dengan benar untuk sensor berorientasi lanskap.

APIS diuji:

Lulus: Tes dapat menemukan bagan dengan rotasi yang diharapkan (0 derajat ketika lanskap ke override potret dinonaktifkan, 90 derajat saat diaktifkan).

test_landscape_to_portrait

test_landscape_to_portrait.png

test_lens_movement_reporting

Tes Jika bendera gerakan lensa dilaporkan dengan benar. Menangkap ledakan 24 gambar dengan 12 frame pertama pada jarak fokus optimal (seperti yang ditemukan oleh 3A) dan 12 frame terakhir pada jarak fokus minimum. Di sekitar bingkai 12, lensa bergerak yang menyebabkan ketajaman jatuh. Ketajaman akhirnya stabil saat lensa bergerak ke posisi akhir. Bendera gerakan lensa harus ditegaskan dalam semua bingkai di mana ketajamannya menengah ke ketajaman dalam beberapa frame pertama dengan lensa stasioner pada jarak fokus yang optimal, dan beberapa frame terakhir di mana lensa stasioner dalam jarak fokus minimum. Kerangka yang tepat, lensa bergerak tidak penting: apa yang diperiksa adalah bahwa bendera gerakan ditegaskan ketika lensa bergerak.

APIS diuji:

Pass: Bendera gerakan lensa True dalam bingkai dengan perubahan ketajaman.

Mekanisme Gagal:

  • lens_moving: True ( android.hardware.camera2.CaptureResult#LENS_STATE = 1) di test_log.DEBUG hanya ditegaskan dalam bingkai di mana ketajaman tidak berubah.
  • Bingkai 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 optimal atau beberapa frame terakhir pada jarak fokus minimum.

test_reprocess_edge_enhancement

Tes Jika metode pemrosesan ulang yang didukung untuk peningkatan tepi bekerja dengan baik. Memproses permintaan penangkapan dengan mode tepi pemrosesan ulang yang diberikan dan membandingkan mode yang berbeda untuk menangkap dengan mode tepi pemrosesan ulang dinonaktifkan.

APIS diuji:

Lulus: Ketajaman untuk mode tepi yang berbeda sudah benar. HQ (Mode 2) lebih tajam dari OFF (Mode 0), dan peningkatan antara mode yang berbeda adalah serupa.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

adegan4

Scene4 terdiri dari lingkaran hitam pada latar belakang putih di dalam persegi.

adegan4

adegan4

test_aspect_ratio_and_crop

Tes Jika gambar terdistorsi atau dipotong secara tidak terduga dalam pipa gambar. Mengambil gambar lingkaran di atas semua format. Memverifikasi lingkaran tidak terdistorsi, lingkaran tidak bergerak dari pusat gambar, dan lingkaran tidak berubah secara tidak benar dengan rasio atau resolusi aspek yang berbeda.

APIS diuji:

Pass: Gambar tidak diregangkan, pusat gambar tidak berbeda lebih dari 3%, dan FOV maksimum yang mungkin (bidang pandang) dipertahankan.

Mekanisme Gagal:

  • Lingkaran dalam gambar yang ditangkap terdistorsi oleh pipa pemrosesan.
  • Gambar resolusi yang lebih rendah dipotong ganda dalam pipa gambar yang menciptakan FOV yang berbeda antara gambar resolusi tinggi dan rendah.
  • Lingkaran dalam gambar yang ditangkap dipotong karena permintaan penangkapan rasio aspek ekstrem mengurangi tinggi atau lebar gambar.
  • Lingkaran dalam gambar yang ditangkap memiliki refleksi di tengah dan tidak tampak terisi penuh.

test_multi_camera_alignment

Menguji parameter kalibrasi kamera yang terkait dengan penentuan posisi kamera untuk sistem multi-kamera. Menggunakan sub-kamera fisik multi-kamera, mengambil gambar dengan salah satu kamera fisik. Menemukan pusat lingkaran. Proyeksikan pusat lingkaran ke dunia koordinat untuk setiap kamera. Membandingkan perbedaan antara pusat lingkaran kamera dalam koordinat dunia. REPREKSI Dunia koordinat kembali ke koordinat piksel dan dibandingkan dengan aslinya sebagai pemeriksaan validitas. Membandingkan ukuran lingkaran yang memeriksa jika panjang fokus kamera berbeda.

APIS diuji:

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

Mekanisme Gagal:

  • LENS_INTRINSIC_CALIBRATION , LENS_POSE_TRANSLATION , atau LENS_POSE_ROTATION adalah nilai desain dan bukan data kalibrasi aktual.
  • Sistem kamera tidak sesuai untuk pengaturan tes. Misalnya, menguji sistem kamera lebar dan ultra-lebar dengan rig uji RFOV. Untuk informasi lebih lanjut, lihat kamera-nya-in-a-box faQ1 .

test_preview_aspect_ratio_and_crop

Mirip dengan tes test_aspect_ratio_and_crop untuk penangkapan yang masih, tes ini memeriksa format pratinjau yang didukung untuk memastikan kerangka pratinjau tidak diregangkan atau dipotong secara tidak tepat. Memverifikasi bahwa rasio aspek lingkaran tidak berubah, gambar yang dipotong menjaga lingkaran di tengah bingkai, dan ukuran lingkaran tidak berubah untuk format konstan atau dengan resolusi yang berbeda (bidang pemeriksaan tampilan).

APIS diuji:

Pass: Gambar tidak diregangkan, pusat gambar tidak berbeda lebih dari 3%, dan FOV maksimum yang mungkin (bidang pandang) dipertahankan.

test_preview_stabilization_fov

Periksa ukuran pratinjau yang didukung untuk memastikan FOV dipotong dengan tepat. Tes ini menangkap dua video, satu dengan stabilisasi ON , dan satu lagi dengan stabilisasi OFF . Bingkai representatif dipilih dari setiap video, dan dianalisis untuk memastikan bahwa perubahan FOV dalam dua video berada dalam spesifikasi.

APIS diuji:

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

uji_video_aspek_rasio_dan_pangkas

Mengambil video lingkaran di dalam kotak di atas semua format video. Mengekstrak bingkai kunci, dan memverifikasi rasio aspek lingkaran tidak berubah, gambar yang dipotong menjaga lingkaran di tengah, dan ukuran lingkaran tidak berubah untuk format konstan atau dengan resolusi yang berbeda (bidang pemeriksaan tampilan).

APIS diuji:

Pass: Bingkai video tidak diregangkan, pusat bingkai tidak berbeda lebih dari 3%, dan FOV maksimum yang mungkin (bidang pandang) dipertahankan.

adegan5

Scene5 membutuhkan adegan abu -abu yang menyala seragam. Ini dilakukan oleh diffuser yang ditempatkan di atas lensa kamera. Kami merekomendasikan diffuser berikut: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168 .

Untuk menyiapkan pemandangan, pasang diffuser di depan kamera dan arahkan kamera ke sumber pencahayaan sekitar 2000 lux. Gambar yang diambil untuk adegan5 memerlukan pencahayaan difus tanpa fitur yang jelas. Berikut ini adalah gambar sampel:

adegan5

adegan5 menangkap

test_lens_shading_and_color_uniformity

Tes bahwa koreksi naungan lensa diterapkan dengan tepat, dan warna pemandangan seragam monokrom didistribusikan secara merata. Melakukan tes ini pada bingkai YUV dengan Auto 3A. Lensa naungan dievaluasi berdasarkan saluran Y. Mengukur nilai rata -rata y untuk setiap blok sampel yang ditentukan, dan menentukan lulus atau gagal dengan membandingkan dengan nilai y tengah. Tes keseragaman warna dievaluasi dalam ruang R/G dan B/G.

APIS diuji:

Pass: Pada jari -jari gambar yang ditentukan, varian nilai R/G dan B/G harus kurang dari 20% untuk lulus tes.

adegan6

Scene6 adalah kisi -kisi lingkaran kecil dengan persegi di satu sudut untuk menunjukkan orientasi. Lingkaran kecil diperlukan untuk menguji fungsi zoom pada rentang besar.

adegan6

adegan6

test_in_sensor_zoom

Menguji perilaku fitur zoom dalam sensor kamera, yang menghasilkan gambar mentah yang dipotong.

Dengan case penggunaan aliran yang diatur ke CROPPED_RAW , tes ini mengambil dua tangkapan di atas rentang zoom, gambar mentah bidang pandang (FOV) penuh dan gambar mentah yang dipotong. Tes mengubah gambar menjadi array RGB, menurunkan gambar mentah cropped berukuran penuh ke ukuran yang dilaporkan oleh SCALER_RAW_CROP_REGION , dan menghitung perbedaan rata-rata 3D akar persegi (RMS) antara kedua gambar.

APIS diuji:

Lulus: Perbedaan rata -rata akar 3D (RMS) antara gambar mentah cropped downscaled dan gambar mentah FOV penuh kurang dari 1%.

test_zoom

Menguji perilaku zoom kamera. Mengambil tangkapan pada rentang zoom dan memeriksa apakah lingkaran menjadi lebih besar saat kamera memperbesar.

APIS diuji:

Pass: Ukuran relatif dari lingkaran yang ditangkap akurat terhadap rasio zoom yang diminta untuk memastikan kamera memperbesar dengan benar.

test_zoom

test_zoom untuk menemukan kontur lingkaran terdekat dengan pusat.

test_low_latency_zoom

Menguji perilaku zoom latensi rendah kamera. Mengambil tangkapan pada rentang zoom dengan android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) , dan memeriksa apakah lingkaran dalam gambar output cocok dengan rasio zoom dalam metadata tangkapan.

APIS diuji:

Pass: Ukuran relatif lingkaran yang ditangkap akurat terhadap hasil rasio zoom metadata.

test_preview_video_zoom_match

Menguji itu saat merekam dan memperbesar, pratinjau video dan tampilan output video dan merekam output yang sama. Menghitung ukuran lingkaran yang paling dekat dengan pusat pada rasio zoom yang berbeda dan memeriksa apakah ukuran lingkaran meningkat seiring dengan meningkatnya rasio zoom.

APIS diuji:

Pass: Ukuran relatif lingkaran yang ditangkap 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)

preview_640x480_key_frame_zoomed.png

Preview_640x480_key_frame.png (setelah zoom)

scene_extensions

Tes scene_extensions adalah untuk ekstensi kamera dan harus menggunakan kamera-nya-in-a-box , karena mereka membutuhkan kontrol yang tepat dari lingkungan pengujian.

scene_hdr

Adegan 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 tangkapan dengan dan tanpa ekstensi diaktifkan, dan memeriksa apakah ekstensi membuat kode QR lebih terdeteksi.

APIS diuji:

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

scene_night

Adegan scene_night terdiri dari lingkaran putih dengan empat lingkaran yang lebih kecil di dalamnya, semua dengan latar belakang hitam. Lingkaran yang lebih kecil di sudut kanan atas lebih gelap dari yang lain untuk menunjukkan orientasi.

scene_night

scene_night

test_night_extension

Menguji ekstensi malam . Mengambil tangkapan dengan dan tanpa ekstensi diaktifkan, dan memeriksa yang berikut:

  • Penangkapan dengan ekstensi malam yang diaktifkan memakan waktu lebih lama.
  • Penangkapan dengan ekstensi malam yang diaktifkan lebih cerah atau memiliki artefak adegan dengan penampilan yang lebih baik.

APIS diuji:

Pass: Dibandingkan dengan penangkapan tanpa ekstensi malam yang diaktifkan, penangkapan dengan ekstensi malam yang diaktifkan membutuhkan waktu setidaknya 0,5 detik. Penangkapan harus setidaknya 10% lebih terang, atau titik -titik abu -abu dalam adegan harus 20 piksel lebih rendah dari pusat lingkaran di sekitarnya.

sensor_fusion

Tes fusi sensor memerlukan pergerakan telepon spesifik di depan pola kotak -kotak. Untuk hasil yang optimal, pastikan bagan uji dipasang datar. Bagan yang tidak datar mempengaruhi perhitungan rotasi untuk banyak tes. Tes sensor_fusion dapat diotomatisasi dengan kotak fusi sensor .

papan main dam

Gambar papan catur

test_multi_camera_frame_sync

Tes yang membingkai cap waktu yang ditangkap oleh kamera logis berada dalam jarak 10 ms dengan menghitung sudut kotak di dalam kotak -kotak untuk menentukan cap waktu.

APIS diuji:

Pass: Sudut antara gambar dari setiap kamera tidak berubah cukup karena telepon diputar.

test_preview_stabilisasi

Tes yang menstabilkan video pratinjau berputar kurang dari giroskop.

APIS diuji:

Pass: Rotasi sudut maks di atas frame kurang dari 70% dari rotasi giroskop.

Berikut ini adalah contoh video dengan dan tanpa stabilisasi.

  • Contoh video dengan stabilisasi

  • Contoh video tanpa stabilisasi

test_sensor_fusion

Menguji perbedaan cap waktu antara kamera dan giroskop untuk aplikasi AR dan VR. Telepon diputar 90 derajat 10 kali di depan pola kotak -kotak. Gerakan adalah sekitar 2 detik perjalanan pulang pergi. Tes ini dilewati jika tidak ada giroskop yang disertakan atau jika parameter REALTIME sumber waktu tidak diaktifkan.

Tes test_sensor_fusion menghasilkan sejumlah plot. Dua plot terpenting untuk debugging adalah:

  • test_sensor_fusion_gyro_events : Menunjukkan peristiwa giroskop untuk telepon selama pengujian. Gerakan dalam arah X dan Y menyiratkan telepon tidak dipasang dengan aman di pelat pemasangan, mengurangi kemungkinan lulus tes. Jumlah siklus dalam plot tergantung pada kecepatan tulis untuk menghemat bingkai.

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations : menunjukkan perataan giroskop dan acara kamera. Plot ini harus menunjukkan gerakan pencocokan antara kamera dan giroskop ke +/- 1 ms.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

APIS diuji:

Lulus: Offset cap waktu kamera dan giroskop kurang dari 1 ms sesuai CDD Bagian 7.3.9 Sensor Fidelity Tinggi [C-2-14] .

Mekanisme Gagal:

  • Kesalahan Offset: Offset kamera-gyroskop tidak dikalibrasi dengan benar ke dalam +/- 1 ms.
  • Rangka Drops: Pipa tidak cukup cepat untuk menangkap 200 frame secara berurutan.
  • Kesalahan Soket: adb tidak dapat secara andal terhubung ke DUT cukup lama untuk menjalankan tes.
  • Bagan tidak dipasang datar. Plot test_sensor_fusion_plot_rotations memiliki bingkai di mana giroskop dan rotasi kamera sangat bervariasi saat kamera berputar melalui bagian -bagian bagan yang tidak datar.
  • Kamera tidak dipasang rata. Plot test_sensor_fusion_gyro_events menunjukkan gerakan di bidang X dan Y. Kegagalan ini lebih umum di kamera yang menghadap ke depan karena kamera belakang sering memiliki benjolan yang terangkat ke seluruh bodi telepon, menciptakan kemiringan saat memasang bagian belakang ponsel ke pelat pemasangan.

test_video_stabilisasi

Tes yang menstabilkan video berputar kurang dari giroskop.

APIS diuji:

Pass: Rotasi sudut maks di atas frame kurang dari 60% dari rotasi giroskop.

Berikut ini adalah contoh video dengan dan tanpa stabilisasi.

  • Contoh video dengan stabilisasi

  • Contoh video tanpa stabilisasi

test_led_snapshot

Menguji bahwa snapshot LED tidak memenuhi atau mewarnai gambar.

Tes ini menambahkan pengontrol pencahayaan ke kotak fusi sensor untuk mengontrol lampu. Dengan lampu diatur ke OFF , tes melakukan pengambilan dengan mode AUTO_FLASH yang diatur ke ON . Selama pengambilan ini, tes menjalankan urutan predaptur dengan pemicu aePrecapture untuk START , dan mengatur niat menangkap untuk Preview untuk mengambil tangkapan dengan flash.

Karena penangkapan memiliki hotspot yang khas karena flash, uji menghitung rata -rata gambar flash dari seluruh penangkapan dan memverifikasi apakah nilainya berada dalam kisaran (68, 102). Untuk memeriksa apakah gambarnya cukup seimbang, uji menghitung rasio R/G dan B/G dan memverifikasi apakah rasio berada dalam 0,95 dan 1,05.

APIS diuji:

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