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
tes_jitter
Mengukur jitter pada stempel waktu kamera.
API yang diuji:
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
Lulus: Setidaknya ada delta 30 ms antar frame.
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:
-
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
-
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
-
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
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:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
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:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
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:
-
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
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:
- Mengambil gambar untuk semua pola pengujian yang didukung.
- Melakukan pemeriksaan kebenaran sederhana untuk pola uji warna solid dan bilah warna.
API yang diuji:
-
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Lulus: Pola pengujian yang didukung dihasilkan dengan benar.
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:
-
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Lulus: YUV dan RAW terlihat mirip satu sama lain.
tes_tonemap_curve_raw_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:
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.Sensor
-
android.hardware.SensorEvent
-
android.hardware.Sensor#TYPE_ACCELEROMETER
-
android.hardware.Sensor#TYPE_GYROSCOPE
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:
-
android.hardware.Sensor
-
android.hardware.SensorEvent
-
android.hardware.Sensor#TYPE_ACCELEROMETER
-
android.os.Vibrator
-
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
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: Bagan ukuran penuh (kiri). ⅔ grafik berskala (kanan).
tes_3a
Menguji konvergensi 3A dengan target yang cukup menantang.
API yang diuji:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
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:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
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:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
Lulus: AE menyatu.
tes_auto_vs_manual
Pengujian yang menangkap bidikan otomatis dan manual terlihat sama.
API yang diuji:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
-
android.hardware.camera2.CaptureResult#TONEMAP_MODE
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.jpg
tes_auto_vs_manual_wb.jpg
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:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
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_hitam.jpg | tes_hitam_putih_putih.jpg |
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:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
-
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
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
tes_burst_kesamaan_manual_mean.jpg
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:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Lulus: Metadata valid untuk semua pengambilan dan pengaturan manual tidak bocor ke pengambilan otomatis kedua. Plot koreksi bayangan lensa untuk pengambilan.
tes_capture_result_plot_lsc_auto_ch0.png
test_crop_region_raw
Menguji apakah aliran RAW tidak dapat dipotong.
API yang diuji:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Lulus: Gambar YUV dipotong di tengah tetapi bukan gambar RAW.
uji_crop_region_raw_comp_raw_crop.jpg
test_crop_region_raw_comp_raw_full.jpg
test_crop_region_raw_comp_yuv_crop.jpg
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:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
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:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Lulus: Parameter model mentah DNG sudah benar. Nilai RGB yang diharapkan sesuai dengan nilai RGB sebenarnya yang diukur.
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:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
-
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Lulus: Gambar menunjukkan peningkatan eksposur tanpa eksposur berlebih dalam lima langkah.
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:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
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_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:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
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.
uji_eksposur_plot_means.png
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.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.jpg | tes_latching_i=01.jpg | tes_latching_i=02.jpg | |
tes_latching_i=03.jpg | tes_latching_i=04.jpg | tes_latching_i=05.jpg | |
tes_latching_i=06.jpg | tes_latching_i=07.jpg | tes_latching_i=08.jpg | |
tes_latching_i=09.jpg | tes_latching_i=10.jpg | tes_latching_i=11.jpg | |
tes_latching_i=12.jpg |
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:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Lulus: Nilai R, G, B harus meningkat secara linier seiring dengan peningkatan sensitivitas.
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:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
Lulus: Pengambilan gambar terlihat konsisten.
tes_locked_burst_frame0.jpg
tes_locked_burst_frame1.jpg
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:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
Lulus: Nilai R dan B meningkat sesuai dengan transformasi.
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.jpg
test_param_color_trueness_req=1.jpg (peningkatan R)
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.
tes_param_exposure_time_frame0.jpg
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.jpg
tes_param_flash_mode_1_tile.jpg
tes_param_flash_mode_2.jpg
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.
uji_param_noise_reduction_plot_SNRs.png
0: MATI, 1: CEPAT, 2: Markas, 3: MENIT, 4: ZSL
test_param_noise_reduction_high_gain_nr=0.jpg
tes_param_noise_reduction_high_gain_nr=1.jpg
tes_param_noise_reduction_high_gain_nr=2.jpg
tes_param_noise_reduction_high_gain_nr=3.jpg
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.jpg
test_param_sensitivity_iso=1819.jpg
test_param_sensitivity_iso=3583.jpg
test_param_sensitivity_iso=5347.jpg
test_param_sensitivity_iso=7111.jpg
tes_param_sensitivity_plot.png
tes_param_shading_mode
Menguji apakah parameter android.shading.mode
diterapkan.
API yang diuji:
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
Lulus: Mode bayangan dialihkan dan peta bayangan lensa diubah sesuai yang diharapkan.
uji_param_shading_mode_ls_maps_mode_0_loop_0.png
uji_param_shading_mode_ls_maps_mode_1_loop_0.png
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:
-
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
-
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
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.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:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
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.jpg
test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg
test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg
tes_post_raw_sensitivity_boost_raw_plot_means.png
test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg
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:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Lulus: Setiap tembakan lebih berisik dari tembakan sebelumnya, karena perolehannya meningkat.
Menggunakan varian sel kisi statistik pusat.
uji_raw_burst_sensitivity_variance.png
uji_raw_exposure
Menangkap sekumpulan gambar mentah dengan peningkatan waktu pencahayaan dan mengukur nilai piksel.
API yang diuji:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
Lulus: Meningkatkan ISO (gain) membuat piksel lebih sensitif terhadap cahaya, sehingga plot bergerak ke arah kiri.
tes_raw_exposure_s=55.png
(10⁰ adalah 1 mdtk, 10¹ adalah 10 mdtk, 10⁻¹ adalah 0,1 mdtk)
tes_raw_exposure_s=132.png
tes_raw_exposure_s=209.png
tes_raw_exposure_s=286.png
tes_raw_exposure_s=363.png
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:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
-
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Lulus: Varians meningkat dengan setiap tembakan.
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
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.jpg
tes_tonemap_sequence_i=1.jpg
tes_tonemap_sequence_i=2.jpg
tes_tonemap_sequence_i=3.jpg
tes_tonemap_sequence_i=4.jpg
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:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
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.
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.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:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
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.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:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_MODE
-
android.hardware.camera2.CaptureRequest#SHADING_MODE
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.hardware.graphics.ImageFormat#RAW10
-
android.hardware.graphics.ImageFormat#RAW12
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.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
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:
-
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#FLASH_MODE
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:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
-
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
-
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
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:
-
android.hardware.camera2.params.ColorSpaceProfiles
-
android.hardware.camera2.params.SessionConfiguration#setColorSpace
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:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
-
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Lulus: Mengambil gambar pemandangan dengan efek OFF
dan gambar monokrom dengan efek diatur ke MONO
.
uji_efek_MONO.jpg
test_format_combos
Menguji berbagai kombinasi format keluaran.
API yang diuji:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
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.)
Rata-rata matriks luma/chroma DQT kamera belakang Pixel 4 vs kualitas JPEG
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:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Lulus: Menemukan tiga wajah.
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:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
-
android.media.CamcorderProfile
-
android.media.MediaRecorder
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:
-
android.hardware.camera2.CameraDevice#createCaptureSession
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
-
android.hardware.camera2.CaptureRequest#EDGE_MODE
-
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
Lulus: Pesawat U dan V tidak tertukar.
tes_reprocess_uv_swap.png
adegan2_b
tes_num_wajah
Menguji deteksi wajah dengan peningkatan keragaman warna kulit dalam adegan wajah.
API yang diuji:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Lulus: Menemukan 3 wajah.
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:
-
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
-
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
-
android.graphics.ImageFormat#JPEG
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:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Lulus: Menemukan 3 wajah.
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:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
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:
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
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:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
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
tes_num_wajah
Menguji deteksi wajah dengan peningkatan keragaman warna kulit dalam adegan wajah.
API yang diuji:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Lulus: Menemukan 3 wajah.
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:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
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.jpg
test_edge_enhancement_edge = 1.jpg (mode cepat)
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.jpg
test_landscape_to_portrait
Menguji jika fungsi override lanskap ke potret dengan benar untuk sensor berorientasi lanskap.
APIS diuji:
-
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
-
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
-
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
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.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:
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#LENS_STATE
-
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
Pass: Bendera gerakan lensa True
dalam bingkai dengan perubahan ketajaman.
Mekanisme Gagal:
-
lens_moving: True
(android.hardware.camera2.CaptureResult#LENS_STATE
= 1) ditest_log.DEBUG
hanya ditegaskan dalam bingkai di mana ketajaman tidak berubah. - Bingkai dengan
lens_moving: False
(android.hardware.camera2.CaptureResult#LENS_STATE
= 0) ditest_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:
-
android.hardware.camera2.CaptureRequest#EDGE_MODE
-
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
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.png
adegan4
Scene4 terdiri dari lingkaran hitam pada latar belakang putih di dalam persegi.
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:
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
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:
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
-
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
-
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
-
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
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
, atauLENS_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:
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
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:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
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:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
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 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:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
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
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:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
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:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Pass: Ukuran relatif dari lingkaran yang ditangkap akurat terhadap rasio zoom yang diminta untuk memastikan kamera memperbesar dengan benar.
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:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
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:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Pass: Ukuran relatif lingkaran yang ditangkap akurat terhadap rasio zoom yang diminta dalam video dan pratinjau.
VGA_640X480_KEY_FRame.png (sebelum zoom)
Preview_640x480_key_frame.png (sebelum zoom)
VGA_640X480_KEY_FRame.png (setelah zoom)
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
test_hdr_extension
Menguji ekstensi HDR . Mengambil tangkapan dengan dan tanpa ekstensi diaktifkan, dan memeriksa apakah ekstensi membuat kode QR lebih terdeteksi.
APIS diuji:
-
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
-
android.hardware.camera2.CameraExtensionSession#capture
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
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:
-
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
-
android.hardware.camera2.CameraExtensionSession#capture
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 .
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:
-
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
-
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
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:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
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
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
APIS diuji:
-
android.hardware.camera2.CameraCharacteristics#LENS_FACING
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
-
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
-
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
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:
-
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
-
android.media.MediaRecorder
-
android.media.CamcorderProfile
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:
-
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#FLASH_MODE
Pass: Rasio R/G dan B/G berada dalam 0,95 dan 1,05. Rata -rata gambar flash berada dalam kisaran (68, 102).