Pengujian ITS kamera

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

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

Pengujian dikelompokkan berdasarkan scene sebagai berikut:

  • scene0: Merekam metadata, jitter, giroskop, getaran
  • scene1: Eksposur, sensitivitas, kompensasi nilai eksposur (EV), YUV versus JPEG dan RAW
  • scene2: Deteksi wajah, pengujian yang memerlukan scene warna
  • scene3: Peningkatan tepi, gerakan lensa
  • scene4: Rasio aspek, pemangkasan, bidang pandang
  • scene5: Bayangan lensa
  • scene6: Zoom
  • scene7: Tombol akses multi-kamera
  • scene8: Pengukuran area eksposur otomatis (AE) dan keseimbangan putih otomatis (AWB)
  • scene9: Kompresi JPEG
  • scene_extensions: Ekstensi kamera
  • scene_tele: Pengalihan lensa telefoto
  • scene_flash: Flash otomatis, kecepatan frame minimum
  • scene_video: Frame menurun
  • sensor_fusion: Offset pengaturan waktu kamera dan giroskop
  • feature_combination: Kombinasi fitur
  • scene_ip: Paritas gambar antara aplikasi kamera default dan Aplikasi Kamera Jetpack (JCA)

Lihat setiap bagian untuk mengetahui deskripsi setiap adegan.

scene0

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

test_jitter

Mengukur jitter dalam stempel waktu kamera.

API yang diuji:

Lulus: Ada setidaknya delta 30 milidetik di antara frame.

Pada gambar berikut, perhatikan rentang sumbu y yang kecil. Jitter sebenarnya kecil dalam plot ini.

plot test_jitter

Gambar 1. Plot test_jitter.

test_metadata

Menguji validitas entri metadata, dengan melihat hasil perekaman dan objek karakteristik kamera. Pengujian ini menggunakan nilai eksposur dan gain auto_capture_request karena konten gambar tidak penting.

API yang diuji:

Lulus: Tag tingkat hardware, rollingShutterSkew, frameDuration, timestampSource, croppingType, blackLevelPattern, pixel_pitch, bidang pandang (FoV), dan jarak hiperfokal ada dan memiliki nilai yang valid.

test_request_capture_match

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

API yang diuji:

Lulus: Nilai metadata permintaan dan pengambilan cocok di semua pengambilan gambar.

test_sensor_events

Untuk perangkat yang mengiklankan dukungan penggabungan sensor, pengujian ini memeriksa apakah perangkat mengkueri dan mencetak peristiwa sensor. Sensor yang diharapkan adalah akselerometer, giroskop, dan magnetometer. Pengujian ini hanya berfungsi jika layar aktif, yang berarti perangkat tidak dalam mode standby.

API yang diuji:

Lulus: Peristiwa untuk setiap sensor diterima.

test_solid_color_test_pattern

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

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

API yang diuji:

Lulus: Pola pengujian solid yang didukung adalah warna yang benar dan ada varian yang rendah dalam gambar.

test_test_pattern

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

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

API yang diuji:

Lulus: Pola pengujian yang didukung dibuat dengan benar.

Contoh test_test_patterns

Gambar 2. Contoh test_test_patterns.

test_tonemap_curve

Menguji konversi pola pengujian dari raw ke YUV dengan tonemap linear. Pengujian ini memerlukan android.sensor.testPatternMode = 2 (COLOR_BARS) untuk menghasilkan pola gambar yang sempurna untuk konversi tonemap. Memverifikasi bahwa pipeline memiliki output warna yang tepat dengan tonemap linear dan input gambar yang ideal (bergantung pada test_test_patterns).

API yang diuji:

Lulus: YUV dan RAW terlihat mirip satu sama lain.

Contoh mentah test_tonemap_curve

Gambar 3. Contoh mentah test_tonemap_curve.

Contoh YUV test_tonemap_curve

Gambar 4. Contoh YUV test_tonemap_curve.

test_unified_timestamp

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

API yang diuji:

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

test_vibration_restriction

Menguji apakah getaran perangkat berfungsi seperti yang diharapkan.

API yang diuji:

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

scene1_1

scene1 adalah diagram abu-abu. Diagram abu-abu harus mencakup 30% FoV kamera di bagian tengah. Diagram abu-abu diperkirakan akan menantang 3A (AE, AWB, dan AF) secara moderat karena wilayah tengah tidak memiliki fitur. Namun, permintaan pengambilan menentukan seluruh scene yang menyertakan fitur yang memadai agar 3A dapat berkonvergensi.

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

contoh scene1

Gambar 5. Diagram scene1 ukuran penuh (kiri), diagram dengan skala 2/3 (kanan).

test_ae_precapture_trigger

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

API yang diuji:

Lulus: AE berkonvergensi.

test_auto_vs_manual

Pengujian yang mengambil gambar otomatis dan manual terlihat sama.

API yang diuji:

Lulus: Gain dan transformasi white balance manual yang dilaporkan di setiap hasil pemotretan cocok dengan white balance otomatis estimate dari algoritma 3A kamera.

Contoh otomatis test_auto_vs_manual

Gambar 6. Contoh otomatis test_auto_vs_manual.

Contoh white balance test_auto_vs_manual

Gambar 7. Contoh white balance test_auto_vs_manual.

Contoh transformasi white balance manual test_auto_vs_manual

Gambar 8. Contoh transformasi white balance manual test_auto_vs_manual.

test_black_white

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

API yang diuji:

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

test_black_white, contoh hitam

Gambar 9. test_black_white, contoh hitam.

Contoh transformasi white balance manual test_auto_vs_manual

Gambar 10. test_black_white, contoh putih.

Contoh arti plot test_black_white

Gambar 11. test_black_white, plot berarti contoh.

test_burst_capture

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

API yang diuji:

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

test_burst_sameness_manual

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

API yang diuji:

Lulus: Gambar identik secara visual dan dalam nilai RGB.

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

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

test_burst_sameness_manual_mean

Gambar 12. Contoh nilai rata-rata test_burst_sameness_manual.

test_burst_sameness_manual_plot_means

Gambar 13. test_burst_sameness_manual_plot_means

test_crop_region_raw

Menguji apakah aliran RAW tidak dapat dipangkas.

API yang diuji:

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

Contoh pemangkasan mentah comp test_crop_region_raw

Gambar 14. Contoh pemangkasan mentah comp test_crop_region_raw.

contoh lengkap raw comp test_crop_region_raw

Gambar 15. Contoh lengkap raw comp test_crop_region_raw.

Contoh pemangkasan YUV comp test_crop_region_raw

Gambar 16. Contoh pemangkasan YUV comp test_crop_region_raw.

Contoh test_crop_region_raw_yuv_full

Gambar 17. Contoh lengkap YUV test_crop_region_raw.

test_crop_regions

Menguji apakah area pemangkasan berfungsi. Mengambil gambar lengkap dan membuat patch dari lima wilayah yang berbeda (sudut dan tengah). Mengambil gambar dengan pemangkasan yang ditetapkan untuk lima wilayah. Membandingkan nilai patch dan gambar pemangkasan.

API yang diuji:

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

test_ev_compensation

Menguji apakah kompensasi nilai eksposur (EV) diterapkan. Pengujian ini terdiri dari bagian dasar dan bagian lanjutan.

Bagian dasar menguji bahwa kompensasi EV diterapkan menggunakan rentang yang dibuat dengan CONTROL_AE_COMPENSATION_STEP. Delapan frame diambil pada setiap nilai kompensasi.

Bagian lanjutan meningkatkan eksposur dalam delapan langkah, dan memeriksa kecerahan yang diukur 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 yang sebenarnya. Pengujian akan gagal jika nilai yang diharapkan dan nilai yang diukur tidak cocok atau jika gambar mengalami eksposur berlebih dalam lima langkah.

API yang diuji:

Lulus bagian dasar: Gambar menunjukkan peningkatan eksposur tanpa overexposure dalam lima langkah.

test_ev_compensation_basic

Gambar 18. test_ev_compensation_basic.

Penerusan bagian lanjutan: Menangkap peningkatan luma saat setelan kompensasi EV meningkat. Delapan frame yang diambil untuk setiap setelan kompensasi EV memiliki nilai luma yang stabil.

test_ev_compensation_advanced_plot_means

Gambar 19. test_ev_compensation_advanced_plot_means.

test_exposure_x_iso

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

API yang diuji:

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

Mekanisme kegagalan: Pada gambar berikut, saat nilai pengganda gain (sumbu x) meningkat, nilai rata-rata bidang RGB yang dinormalisasi (sumbu y) mulai menyimpang dari nilai pengganda gain rendah.

test_exposure_plot_means

Gambar 20. test_exposure_plot_means.

test_exposure_mult=1.00.jpg

Gambar 21. test_exposure_mult=1.00.

test_exposure_mult=64.00

Gambar 22. test_exposure_mult=64.00.

test_latching

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

API yang diuji:

Lulus: Gambar [2, 3, 6, 8, 10, 12, 13] telah meningkatkan ISO atau eksposur dan muncul dengan nilai rata-rata RGB yang lebih tinggi dalam plot pada gambar berikut.

Contoh arti plot test_latching

Gambar 23. Contoh plot mean test_latching.

test_latching i=00

Gambar 24. test_latching i=00.

test_latching i=01

Gambar 25. test_latching i=01.

test_latching i=02

Gambar 26. test_latching i=02.

test_latching i=03

Gambar 27. test_latching i=03.

test_latching i=04

Gambar 28. test_latching i=04.

test_latching i=05

Gambar 29. test_latching i=05.

test_latching i=06

Gambar 30. test_latching i=06.

test_latching i=07

Gambar 31. test_latching i=07.

test_latching i=08

Gambar 32. test_latching i=08.

test_latching i=09

Gambar 33. test_latching i=09.

test_latching i=10

Gambar 34. test_latching i=10.

test_latching i=11

Gambar 35. test_latching i=11.

test_latching i=12

Gambar 36. test_latching i=12.

test_linearity

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

API yang diuji:

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

contoh arti plot test_linearity

Gambar 37. Contoh plot mean test_linearity.

test_locked_burst

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

API yang diuji:

Lulus: Rekaman terlihat konsisten.

Contoh frame0 test_locked_burst

Gambar 38. Contoh frame0 test_locked_burst.

Contoh frame1 test_locked_burst

Gambar 39. Contoh frame1 test_locked_burst.

test_locked_burst_frame2

Gambar 40. Contoh frame2 test_locked_burst.

scene1_2

scene 1_2 adalah salinan scene 1_1 yang secara fungsional identik, yang menerapkan struktur sub-adegan untuk mengurangi durasi scene 1 yang diperpanjang.

test_param_color_correction

Menguji apakah parameter android.colorCorrection.* diterapkan saat ditetapkan. Mengambil gambar dengan nilai transformasi dan gain yang berbeda, serta menguji apakah gambar tersebut terlihat berbeda. Transformasi dan penguatan dipilih untuk membuat output semakin merah atau biru. Menggunakan tonemap linear.

Pemetaan tone adalah teknik yang digunakan dalam pemrosesan gambar untuk memetakan satu kumpulan warna ke kumpulan warna lain untuk mendekati tampilan gambar rentang dinamis tinggi dalam media yang memiliki rentang dinamis yang lebih terbatas.

API yang diuji:

Teruskan: Nilai R dan B ditingkatkan sesuai dengan transformasi.

Contoh arti plot test_param_color_correction

Gambar 41. Contoh mean plot test_param_color_correction.

Pada gambar berikut, sumbu x adalah permintaan pengambilan: 0 = kesatuan, 1 = peningkatan merah, dan 2 = peningkatan biru.

contoh unity test_param_color_correction req=0

Gambar 42. Contoh unity test_param_color_correction req=0.

Contoh peningkatan merah test_param_color_correctness req=1

Gambar 43. Contoh peningkatan merah test_param_color_correctness req=1.

Contoh test_param_color_correction req=2 blue boost

Gambar 44. Contoh peningkatan biru test_param_color_correction req=2.

test_param_flash_mode

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

API yang diuji:

Lulus: Bagian tengah gambar kartu memiliki gradien besar, yang berarti lampu kilat diaktifkan.

Contoh test_param_flash_mode 1

Gambar 45. Contoh test_param_flash_mode 1.

Contoh kartu test_param_flash_mode 1

Gambar 46. Contoh satu kartu test_param_flash_mode.

contoh test_param_flash_mode_2

Gambar 47. Contoh test_param_flash_mode 2.

Contoh kartu test_param_flash_mode 2

Gambar 48. Contoh dua kartu test_param_flash_mode.

test_param_noise_reduction

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

API yang diuji:

Lulus: SNR bervariasi dengan mode peredam derau yang berbeda dan berperilaku mirip dengan grafik berikut:

Contoh SNR plot test_param_noise_reduction

Gambar 49. Contoh SNR plot test_param_noise_reduction.

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

contoh test_param_noise_reduction high gain nr=0

Gambar 50. Contoh test_param_noise_reduction high gain nr=0.

Contoh test_param_noise_reduction high gain nr=1

Gambar 51. Contoh test_param_noise_reduction high gain nr=1.

contoh test_param_noise_reduction high gain nr=2

Gambar 52. Contoh test_param_noise_reduction high gain nr=2.

contoh test_param_noise_reduction high gain nr=3

Gambar 53. Contoh test_param_noise_reduction high gain nr=3.

Contoh gain rendah test_param_noise_reduction

Gambar 54. Contoh gain rendah test_param_noise_reduction.

test_param_shading_mode

Menguji apakah parameter android.shading.mode diterapkan.

API yang diuji:

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

Peta bayangan lensa test_param_shading_mode, contoh loop 0 mode 0

Gambar 55. Peta bayangan lensa test_param_shading_mode, contoh loop 0 mode 0.

Peta bayangan lensa test_param_shading_mode, contoh loop 0 mode 1

Gambar 56. Peta bayangan lensa test_param_shading_mode, contoh loop 0 mode 1.

Peta bayangan lensa test_param_shading_mode, contoh loop 0 mode 2

Gambar 57. Peta bayangan lensa test_param_shading_mode, contoh loop 0 mode 2.

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 output diubah seperti yang diharapkan. Pengujian ini terdiri dari dua pengujian, test1 dan test2.

API yang diuji:

Kartu:

  • test1: Kedua gambar memiliki tonemap linear, tetapi n=1 memiliki gradien yang lebih curam. Saluran G (hijau) lebih terang untuk gambar n=1.
  • test2: Tonemap yang sama, tetapi panjangnya berbeda. Gambar sama.

test_param_tonemap_mode dengan n=0

Gambar 58. test_param_tonemap_mode dengan n=0.

test_param_tonemap_mode dengan n=1

Gambar 59. test_param_tonemap_mode dengan n=1.

test_post_raw_sensitivity_boost

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

API yang diuji:

Lulus: Gambar mentah menjadi lebih gelap saat peningkatan meningkat, sementara kecerahan gambar YUV tetap konstan.

contoh test_post_raw_sensitivity_boost raw s=3583 boost=0100

Gambar 60. Contoh test_post_raw_sensitivity_boost raw s=3583 boost=0100.

contoh test_post_raw_sensitivity_boost raw s=1792 boost=0200

Gambar 61. Contoh test_post_raw_sensitivity_boost raw s=1792 boost=0200.

contoh test_post_raw_sensitivity_boost raw s=0896 boost=0400

Gambar 62. Contoh test_post_raw_sensitivity_boost raw s=0896 boost=0400.

contoh test_post_raw_sensitivity_boost raw s=0448 boost=0800

Gambar 63. Contoh test_post_raw_sensitivity_boost raw s=0448 boost=0800.

contoh test_post_raw_sensitivity_boost raw s=0224 boost=1600

Gambar 64. Contoh test_post_raw_sensitivity_boost raw s=0224 boost=1600.

contoh test_post_raw_sensitivity_boost raw s=0112 boost=3199

Gambar 65. Contoh test_post_raw_sensitivity_boost raw s=0112 boost=3199.

Contoh mean plot mentah test_post_raw_sensitivity_boost

Gambar 66. Contoh mean plot mentah test_post_raw_sensitivity_boost.

Contoh test_post_raw_sensitivity_boost YUV s=0112 boost=3199

Gambar 67. Contoh test_post_raw_sensitivity_boost YUV s=0112 boost=3199.

Contoh test_post_raw_sensitivity_boost YUV s=0448 boost=0800

Gambar 68. Contoh test_post_raw_sensitivity_boost YUV s=0448 boost=0800.

contoh test_post_raw_sensitivity_boost YUV s=0896 boost=0400

Gambar 69. Contoh test_post_raw_sensitivity_boost YUV s=0896 boost=0400.

contoh test_post_raw_sensitivity_boost YUV s=1792 boost=0200

Gambar 70. Contoh test_post_raw_sensitivity_boost YUV s=1792 boost=0200.

Contoh test_post_raw_sensitivity_boost YUV s=3585 boost=0100

Gambar 71. Contoh test_post_raw_sensitivity_boost YUV s=3585 boost=0100.

test_post_raw_sensitivity_boost_yuv_plot_means

Gambar 72. test_post_raw_sensitivity_boost_yuv_plot_means

test_raw_exposure

Merekam serangkaian gambar mentah dengan meningkatkan waktu eksposur dan mengukur nilai piksel.

API yang diuji:

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

Contoh test_raw_exposure ISO=55

Gambar 73. Contoh test_raw_exposure ISO=55.

10⁰ adalah 1 milidetik, 10¹ adalah 10 milidetik, dan 10⁻¹ adalah 0,1 milidetik.

Contoh test_raw_exposure ISO=132

Gambar 74. Contoh test_raw_exposure ISO=132.

Contoh test_raw_exposure ISO=209

Gambar 75. Contoh test_raw_exposure ISO=209.

Contoh test_raw_exposure ISO=286

Gambar 76. Contoh test_raw_exposure ISOs=286.

Contoh test_raw_exposure ISO=363

Gambar 77. Contoh test_raw_exposure ISO=363.

test_raw_exposure_s=440

Gambar 78. Contoh test_raw_exposure ISO=440.

test_reprocess_noise_reduction

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

API yang diuji:

Lulus: CEPAT >= NONAKTIF, HQ >= CEPAT, dan HQ >> NONAKTIF.

Plot mode SNR versus NR yang umum

Gambar 79. Contoh plot mode SNR versus NR yang umum.

test_tonemap_sequence

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

API yang diuji:

Lulus: Ada tiga frame yang identik, diikuti dengan kumpulan tiga frame yang identik.

Contoh test_tonemap_sequence i=0

Gambar 80. Contoh test_tonemap_sequence i=0.

Contoh test_tonemap_sequence i=1

Gambar 81. Contoh test_tonemap_sequence i=1.

Contoh test_tonemap_sequence i=2

Gambar 82. Contoh test_tonemap_sequence i=2.

Contoh test_tonemap_sequence i=3

Gambar 83. Contoh test_tonemap_sequence i=3.

Contoh test_tonemap_sequence_i=4

Gambar 84. Contoh test_tonemap_sequence i=4.

Contoh test_tonemap_sequence i=5

Gambar 85. Contoh test_tonemap_sequence i=5.

test_yuv_jpeg_all

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

API yang diuji:

Lulus: Semua pusat gambar memiliki perbedaan akar rataan kuadrat (RMS) maksimum (nilai sinyal) dalam gambar yang dikonversi RGB dengan 3% gambar YUV resolusi tertinggi.

contoh test_yuv_jpeg_all

Gambar 86. Contoh test_yuv_jpeg_all.

test_yuv_plus_dng

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

API yang diuji:

Lulus: Pengujian selesai dan menampilkan gambar yang diminta.

contoh test_yuv_plus_dng

Gambar 87. Contoh test_yuv_plus_dng.

scene1_3

scene 1_3 adalah salinan scene 1_1 yang secara fungsional identik, yang menerapkan struktur sub-adegan untuk mengurangi durasi scene 1 yang diperpanjang.

test_capture_result

Menguji apakah data yang valid ditampilkan kembali dalam objek CaptureResult. Pengujian terdiri dari pengambilan otomatis, pengambilan manual, dan pengambilan otomatis kedua.

API yang diuji:

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

test_capture_result_plot_lsc_auto_ch0

Gambar 88. test_capture_result_plot_lsc_auto_ch0.

test_dng_noise_model

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

API yang diuji:

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

test_dng_noise_model_plog

Gambar 89. test_dng_noise_model_plog.

test_jpeg

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

API yang diuji:

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

test_jpeg_fmt=jpg.jpg

Gambar 90. test_jpeg_fmt=jpg.jpg.

test_jpeg=fmt=yuv.jpg

Gambar 91. test_jpeg=fmt=yuv.jpg.

test_raw_burst_sensitivity

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

API yang diuji:

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

Menggunakan varian sel petak statistik tengah.

test_raw_burst_sensitivity_variance

Gambar 92. test_raw_burst_sensitivity_variance.

test_raw_sensitivity

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

API yang diuji:

Pass: Varian meningkat dengan setiap tembakan.

test_raw_sensitivity_variance

Gambar 93. test_raw_sensitivity_variance.

test_yuv_plus_jpeg

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

API yang diuji:

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

test_yuv_plus_jpeg dengan format JPEG

Gambar 94. test_yuv_plus_jpeg dengan format JPEG.

test_yuv_plus_jpeg dengan format YUV

Gambar 95. test_yuv_plus_jpeg dengan format YUV.

test_yuv_plus_raw

Pengujian yang merekam satu frame sebagai output mentah (10-bit dan 12-bit mentah) dan YUV jika didukung. Menggunakan permintaan manual dengan tonemap linear sehingga raw dan YUV diharapkan sama. Membandingkan nilai RGB 10% tengah gambar yang dikonversi RGB. Logandroid.shading.mode.

API yang diuji:

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

test_yuv_plus_raw_shading=1_raw.jpg

Gambar 96. test_yuv_plus_raw_shading=1_raw.jpg.

test_yuv_plus_raw_shading=1_yuv.jpg

Gambar 97. test_yuv_plus_raw_shading=1_yuv.jpg.

test_sensitivity_priority

Menguji CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY di berbagai setelan ISO untuk mengonfirmasi korelasi antara ISO yang lebih tinggi dan peningkatan level derau.

API yang diuji:

Lulus: ISO yang lebih tinggi akan meningkatkan tingkat derau.

Menguji kriteria lewati

Pengujian test_sensitivity_priority.py dilewati jika salah satu kriteria berikut terpenuhi:

test_exposure_time_priority

Menguji CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY di berbagai waktu eksposur, memeriksa kecerahan yang stabil dalam rentang tempat ISO dapat melakukan kompensasi.

API yang diuji:

Lulus: Kecerahan stabil (dalam toleransi) di seluruh waktu eksposur jika ISO berada dalam rentang kompensasinya.

Menguji kriteria lewati

Pengujian test_exposure_time_priority dilewati jika salah satu kriteria berikut terpenuhi:

scene2_a

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

contoh scene2_a

Gambar 98. Contoh scene2_a.

test_autoframing

Menguji perilaku pembingkaian otomatis perangkat kamera. Melakukan zoom besar sehingga tidak ada wajah dalam tampilan yang terlihat, mengaktifkan mode framing otomatis dengan menetapkan AUTOFRAMING di CaptureRequest ke True, dan memverifikasi apakah semua wajah dalam tampilan asli dapat dideteksi saat statusnya berkonvergensi (yaitu, saat AUTOFRAMING_STATE di CaptureResult ditetapkan ke AUTOFRAMING_STATE_CONVERGED).

API yang diuji:

Lulus: Ketiga wajah terdeteksi.

test_display_p3

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

API yang diuji:

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

test_effects

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

API yang diuji:

Lulus: Mengambil gambar scene dengan efek OFF dan gambar monokrom dengan efek disetel ke MONO.

test_effects_MONO

Gambar 99. test_effects_MONO.

test_exposure_keys_consistent

Pengujian ini membandingkan luma rata-rata pengambilan yang mengaktifkan AE dengan pengambilan yang menonaktifkan AE yang menerapkan parameter eksposur secara manual (sensitivitas, waktu eksposur, durasi frame, peningkatan sensitivitas raw pasca) yang diterima di CaptureResult pengambilan yang mengaktifkan AE.

API yang diuji:

Lulus: Perbedaan relatif luma antara kedua rekaman kurang dari 4 persen.

test_format_combos

Menguji berbagai kombinasi format output.

API yang diuji:

Lulus: Semua kombinasi berhasil diambil.

test_num_faces

Menguji deteksi wajah.

API yang diuji:

Lulus: Menemukan tiga wajah.

Contoh mode deteksi wajah 1 test_num_faces

Gambar 100. Contoh mode deteksi wajah 1 test_num_faces.

test_reprocess_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 pengambilan yang tidak diproses ulang. Jika menukar bidang U dan V output dari pengambilan yang diproses ulang menghasilkan peningkatan SAD, output diasumsikan memiliki bidang U dan V yang benar.

API yang diuji:

Lulus: Bidang U dan V tidak ditukar.

test_reprocess_uv_swap

Gambar 101. Contoh test_reprocess_uv_swap.

scene2_b

test_preview_num_faces

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

API yang diuji:

Lulus: Menemukan tiga wajah dengan penanda wajah dalam kotak pembatas wajah.

test_num_faces_fd_mode_1

Gambar 102. Contoh mode deteksi wajah 1 test_num_faces.

test_yuv_jpeg_capture_sameness

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

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

API yang diuji:

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

scene2_c

test_num_faces

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

API yang diuji:

Lulus: Menemukan tiga wajah.

test_num_faces_fd_mode_1

Gambar 103. Contoh mode deteksi wajah test_num_faces.

test_jpeg_capture_perf_class

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

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

test_camera_launch_perf_class

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

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

test_default_camera_hdr

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

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

scene2_d

test_preview_num_faces

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

API yang diuji:

Lulus: Menemukan tiga wajah dengan penanda wajah dalam kotak pembatas wajah.

scene2_e

test_continuous_picture

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

API yang diuji:

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

test_num_faces

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

API yang diuji:

Lulus: Menemukan 3 wajah.

scene2_f

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

contoh scene2_f

Gambar 104. Contoh scene2_f.

test_preview_num_faces

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

API yang diuji:

Lulus: Menemukan tiga wajah dengan penanda wajah dalam kotak pembatas wajah.

test_num_faces_fd_mode_1

Gambar 105. Contoh test_num_faces_fd_mode_1.

scene2_g

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

scene2_g.png

Gambar 106. Contoh scene2_g.

test_preview_num_faces

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

API yang diuji:

Lulus: Menemukan tiga wajah dengan penanda wajah dalam kotak pembatas wajah.

test_preview_num_faces

Gambar 107. Contoh test_preview_num_faces.

scene3

scene3 menggunakan diagram ISO12233, dan sebagian besar pengujian menggunakan metode ekstraktor diagram untuk menemukan diagram dalam tampilan. Karena alasan ini, sebagian besar gambar yang disimpan tidak memiliki batas seperti gambar untuk scene 1, 2, atau 4, tetapi hanya diagram. Diagram harus dalam orientasi yang benar agar pencari diagram berfungsi secara optimal.

test_edge_enhancement

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

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

API yang diuji:

Parameter kamera yang terpengaruh:

  • EDGE_MODE

test_edge_enhancement_edge=0

Gambar 108. Contoh test_edge_enhancement edge=0.

contoh test_edge_enhancement edge=1

Gambar 109. Contoh test_edge_enhancement edge=1 (mode cepat).

Contoh test_edge_enhancement edge=2

Gambar 110. Contoh test_edge_enhancement edge=2 (mode kualitas tinggi).

test_flip_mirror

Menguji apakah gambar diorientasikan dengan benar sesuai dengan 7.5.2 Kamera Depan di CDD.

Gambar yang dicerminkan, dibalik, atau diputar dapat diidentifikasi dengan fitur berlian di dekat bagian tengah.

Lulus: Gambar tidak dibalik, dicerminkan, atau diputar.

Contoh patch scene test_flip_mirror

Gambar 111. Contoh patch scene test_flip_mirror.

test_imu_drift

Menguji apakah inertial measurement unit (IMU) memiliki output yang stabil selama 30 detik saat perangkat tidak bergerak dan mengambil pratinjau beresolusi tinggi.

API yang diuji:

Kartu:

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

Contoh drift giroskop test_imu_drift

Gambar 112. Contoh drift giroskop test_imu_drift.

Contoh drift vektor rotasi test_imu_drift

Gambar 113. Contoh drift vektor rotasi test_imu_drift.

test_landscape_to_portrait

Menguji apakah penggantian lanskap ke potret berfungsi dengan benar untuk sensor berorientasi lanskap.

API yang diuji:

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

Contoh test_landscape_to_portrait

Gambar 114. Contoh test_landscape_to_portrait.

test_lens_movement_reporting

Menguji apakah tanda gerakan lensa dilaporkan dengan benar. Mengambil burst 24 gambar dengan 12 frame pertama pada jarak fokus optimum (seperti yang ditemukan oleh 3A) dan 12 frame terakhir pada jarak fokus minimum. Sekitar frame 12, lensa bergerak sehingga ketajaman menurun. Ketajaman pada akhirnya akan stabil saat lensa bergerak ke posisi akhir.

Flag gerakan lensa harus dinyatakan di semua frame dengan ketajaman sedang hingga ketajaman dalam beberapa frame pertama dengan lensa diam pada jarak fokus yang optimal, dan beberapa frame terakhir dengan lensa diam pada jarak fokus minimum. Frame yang tepat yang digerakkan lensa tidak penting: yang penting adalah flag gerakan dinyatakan saat lensa bergerak.

API yang diuji:

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

Mekanisme kegagalan:

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

test_reprocess_edge_enhancement

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

API yang diuji:

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

Contoh plot test_reprocess_edge_enhancement

Gambar 115. Contoh plot test_reprocess_edge_enhancement.

scene4

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

Pengujian di scene4 dapat sensitif terhadap perataan, sehingga mulai dari Android 15, Anda dapat menggunakan check_alignment.py di direktori alat untuk mengaktifkan pemeriksaan DUT dan perataan diagram.

contoh scene4

Gambar 116. Contoh scene4.

test_30_60fps_preview_fov_match

Menguji apakah video pratinjau 30 FPS dan 60 FPS memiliki FoV yang sama. Pengujian ini merekam dua video, satu dengan 30 FPS dan satu lagi dengan 60 FPS. Frame perwakilan dipilih dari setiap video dan dianalisis untuk memverifikasi bahwa perubahan FoV dalam dua video tersebut berada dalam spesifikasi. Menguji bahwa rasio aspek lingkaran tetap konstan, pusat lingkaran tetap stabil, dan jari-jari lingkaran tetap konstan.

API yang diuji:

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

Mekanisme kegagalan:

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

test_aspect_ratio_and_crop

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

API yang diuji:

Lulus: Gambar tidak diregangkan, bagian tengah gambar tidak berbeda lebih dari 3%, dan FoV maksimum yang mungkin dipertahankan.

Mekanisme kegagalan:

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

test_multi_camera_alignment

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

API yang diuji:

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

Mekanisme kegagalan:

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

test_preview_aspect_ratio_and_crop

Serupa dengan pengujian test_aspect_ratio_and_crop untuk pengambilan gambar diam, periksa format pratinjau yang didukung untuk memverifikasi bahwa bingkai pratinjau tidak diregangkan atau dipangkas secara tidak tepat. Memverifikasi bahwa rasio aspek lingkaran tidak berubah, gambar yang dipangkas mempertahankan lingkaran di tengah bingkai, dan ukuran lingkaran tidak berubah untuk format konstan atau dengan resolusi yang berbeda (pemeriksaan FoV).

API yang diuji:

Lulus: Gambar tidak diregangkan, bagian tengah gambar tidak berbeda lebih dari 3%, dan FoV maksimum yang mungkin dipertahankan.

test_preview_stabilization_fov

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

API yang diuji:

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

test_video_aspect_ratio_and_crop

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

API yang diuji:

Lulus: Frame video tidak diregangkan, pusat frame tidak berbeda lebih dari 3%, dan FoV maksimum dipertahankan.

scene5

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

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

contoh scene5

Gambar 117. Contoh pengambilan scene5.

test_lens_shading_and_color_uniformity

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

API yang diuji:

Lulus: Pada radius gambar yang ditentukan, varians nilai merah-hijau dan biru-hijau harus kurang dari 20% agar lulus pengujian.

scene6

scene6 adalah petak penanda ArUco yang dapat diidentifikasi secara unik. Pengujian di scene6 dapat sensitif terhadap perataan, sehingga mulai 15, Anda dapat menggunakan check_alignment.py di direktori alat untuk mengaktifkan pemeriksaan DUT dan perataan diagram.

scene6

Gambar 118. Contoh scene6.

test_in_sensor_zoom

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

Dengan kasus penggunaan streaming yang disetel ke CROPPED_RAW, pengujian mengambil dua pengambilan pada rentang zoom, gambar mentah FoV penuh dan gambar mentah yang dipangkas. Pengujian mengonversi gambar menjadi array RGB, menskalakan gambar mentah yang dipangkas berukuran penuh ke ukuran yang dilaporkan oleh SCALER_RAW_CROP_REGION, dan menghitung perbedaan RMS 3D antara kedua gambar.

API yang diuji:

Lulus: Perbedaan RMS 3D antara gambar mentah yang dipangkas dan gambar mentah FoV penuh yang diskalakan ke bawah kurang dari nilai minimum yang ditetapkan dalam pengujian.

test_zoom

Menguji perilaku zoom kamera dari lensa ultrawide ke lensa lebar. Mengambil gambar di seluruh rentang zoom dan memeriksa apakah penanda ArUco menjadi lebih besar saat kamera di-zoom in. Pengujian juga memeriksa apakah posisi penanda tengah berubah secara dapat diprediksi selama setiap pengambilan. Jarak dari pusat penanda tengah ke pusat gambar dapat berubah dengan kecepatan konstan sehubungan dengan rasio zoom hingga tombol kamera fisik ditekan, atau dapat berubah secara monoton ke lokasi penanda yang sama setelah tombol kamera fisik ditekan. Aplikasi Kamera Jetpack (JCA) harus diinstal di perangkat sebelum pengujian.

API yang diuji:

Lulus: Ukuran relatif penanda ArUco yang diambil akurat terhadap rasio zoom yang diminta untuk memverifikasi bahwa kamera melakukan zoom dengan benar, dan jarak penanda ke pusat gambar berubah sesuai dengan kriteria yang dinyatakan dalam deskripsi pengujian.

test_zoom untuk menemukan kontur penanda ArUco yang paling dekat dengan pusat

Gambar 119. test_zoom untuk menemukan kontur penanda ArUco yang paling dekat dengan pusat.

test_low_latency_zoom

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

API yang diuji:

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

test_preview_video_zoom_match

Menguji bahwa saat merekam dan melakukan zoom, pratinjau video dan output video menampilkan dan merekam output yang sama. Menghitung ukuran penanda yang paling dekat dengan pusat pada rasio zoom yang berbeda dan memeriksa apakah ukuran penanda meningkat seiring meningkatnya rasio zoom.

API yang diuji:

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

HD_1280x720_key_frame.png

Gambar 120. HD_1280x720_key_frame.png (sebelum zoom).

preview_1280x720_key_frame.png

Gambar 121. preview_1280x720_key_frame.png (sebelum zoom).

HD_1280x720_key_frame_zoomed.png

Gambar 122. HD_1280x720_key_frame.png (setelah zoom).

preview_1280x720_key_frame_zoomed.png

Gambar 123. preview_1280x720_key_frame.png (setelah zoom).

test_preview_zoom

Menguji apakah rasio zoom setiap frame pratinjau cocok dengan metadata pengambilan yang sesuai dari lensa ultrawide ke lensa lebar. Pengujian ini mengambil frame pratinjau pada rentang zoom dan menemukan penanda ArUco yang paling dekat dengan pusat. Pengujian kemudian memeriksa apakah posisi penanda tengah berubah secara dapat diprediksi pada setiap pengambilan. Jarak dari pusat penanda tengah ke pusat gambar dapat berubah dengan kecepatan konstan sehubungan dengan rasio zoom hingga tombol kamera fisik ditekan, atau dapat berubah secara monoton ke lokasi penanda yang sama setelah tombol kamera fisik ditekan.

API yang diuji:

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

gambar test_preview_zoom yang menampilkan penanda yang dipilih paling dekat dengan pusat

Gambar 124. Gambar test_preview_zoom yang menampilkan penanda yang dipilih paling dekat dengan pusat

test_session_characteristics_zoom

Menguji rentang rasio zoom untuk semua konfigurasi sesi yang didukung yang tercantum di CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION. Untuk setiap konfigurasi tersebut, jika CameraDeviceSetup#isSessionConfigurationSupported menampilkan true, pengujian akan memverifikasi bahwa rentang rasio zoom yang ditampilkan di CameraDeviceSetup#getSessionCharacteristics dapat dijangkau.

API yang diuji:

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

scene7

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

scene7

Gambar 125. scene7.

test_multi_camera_switch

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

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

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

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

Saat menjalankan pengujian ini, jika efek Moire mengganggu hasilnya, gunakan tablet dengan resolusi lebih tinggi dari daftar daftar tablet yang disetujui Camera ITS.

API yang diuji:

Lulus: Agar pengujian lulus, pemeriksaan AE dan AWB harus lulus. Hasil pemeriksaan AF hanya digunakan untuk tujuan logging. Berikut adalah kriteria untuk setiap pemeriksaan:

  • Pemeriksaan AE: Perubahan luma (nilai Y) antara gambar lensa UW dan W harus kurang dari 4% untuk semua patch warna jika perangkat mendukung ae_regions dan awb_regions. Jika hanya ae_regions yang didukung, maka hanya nilai patch warna abu-abu yang harus memenuhi kriteria.
  • Pemeriksaan AWB: Perbedaan antara nilai merah-hijau dan biru-hijau untuk gambar lensa UW dan W harus kurang dari 3% untuk patch warna abu-abu dan harus kurang dari 10% untuk patch warna lainnya jika perangkat mendukung ae_regions dan awb_regions.
  • Pemeriksaan AF: Ketajaman gambar untuk pengambilan lensa W harus lebih tinggi daripada ketajaman dengan pengambilan UW.

test_multi_camera_switch_gray_uw_y

Gambar 126. Patch abu-abu diambil dengan lensa UW.

test_multi_camera_switch_gray_w_y

Gambar 127. Patch abu-abu diambil dengan lensa W.

scene8

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

contoh scene8

Gambar 128. Contoh scene8.

test_ae_awb_regions

Menguji apakah nilai RGB dan luma berbeda saat merekam pratinjau di wilayah AE dan AWB yang berbeda.

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

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

API yang diuji:

Lulus: Pemeriksaan AE dan AWB lulus.

test_ae_awb_regions_dark_region

Gambar 129. Pengukuran bingkai area gelap dengan eksposur yang ditingkatkan.

test_ae_awb_regions_light_region

Gambar 130. Pengukuran frame di area yang lebih terang dengan eksposur yang berkurang.

Mekanisme kegagalan:

  • Deteksi akurat dari keempat penanda ArUco sangat penting untuk pengujian ini. Jika deteksi awal gagal, sistem akan mencoba lulus deteksi kedua menggunakan versi gambar hitam putih. Gambar hitam putih berikut mewakili langkah pemrosesan sekunder:

    Ketidaksejajaran penanda ArUco

    Gambar 131. Penanda ArUco tidak sejajar.

test_color_correction_mode_cct

Menguji COLOR_CORRECTION_MODE di berbagai suhu dan tint warna, memverifikasi perubahan rasio RGB terhadap scene pengambilan, scene8.

API yang diuji:

Lulus: Rasio RGB menunjukkan peningkatan atau penurunan yang diperkirakan relatif terhadap suhu dan tint warna yang dipilih.

Menguji kriteria lewati

Pengujian test_color_correction_mode_cct dilewati jika salah satu kriteria berikut terpenuhi:

scene9

scene9 terdiri dari ribuan lingkaran yang diwarnai dan berukuran acak untuk membuat layar dengan pengulangan yang sangat rendah untuk menguji algoritma kompresi JPEG.

contoh scene9

Gambar 132. Contoh scene9.

test_jpeg_high_entropy

Menguji bahwa kompresi JPEG kamera berfungsi di scene9 dengan entropi tinggi dan faktor kualitas JPEG ditetapkan ke 100%. Faktor zoom ditingkatkan untuk memverifikasi bahwa tampilan yang ditampilkan di tablet mengisi FoV kamera.

API yang diuji:

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

test_jpeg_quality

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

API yang diuji:

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

Rata-rata matriks DQT luma dan chroma kamera belakang Pixel 4 dibandingkan dengan kualitas JPEG

Gambar 133. Rata-rata matriks DQT luma dan chroma kamera belakang Pixel 4 dibandingkan dengan kualitas JPEG.

Contoh pengujian test_jpeg_quality gagal

Gambar 134. Contoh pengujian yang gagal.

scene_video

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

Gambar 135. Contoh scene_video.

test_preview_frame_drop

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

API yang diuji:

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

scene_extensions

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

scene_hdr

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

scene_hdr

Gambar 136. Contoh scene_hdr.

test_hdr_extension

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

API yang diuji:

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

scene_low_light

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

contoh scene_low_light

Gambar 137. Contoh scene_low_light.

test_night_extension

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

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

Untuk perangkat yang menjalankan Android 16 atau yang lebih tinggi, permintaan perekaman menyertakan wilayah berbayar yang sesuai dengan persegi panjang yang membatasi petak persegi. Penambahan ini mengubah kriteria lulus nilai minimum.

API yang diuji:

Kartu:

  • Untuk perangkat yang menjalankan Android 16 atau yang lebih tinggi, nilai luma rata-rata dari 6 kotak pertama harus minimal 80, dan perbedaan rata-rata nilai luma dari kotak berturut-turut hingga kotak 5 dan 6 harus minimal 18,75.
  • Untuk perangkat yang menjalankan Android 15 dan yang lebih lama, nilai luma rata-rata dari 6 kotak pertama harus minimal 85, dan perbedaan rata-rata nilai luma dari kotak berturut-turut hingga kotak 5 dan 6 harus minimal 17.

Plot luminans berikut menunjukkan tampilan hasil pengujian yang lulus.

Contoh pengujian lulus di tempat gelap

Gambar 138. Contoh pengujian lulus pada scene malam dengan cahaya redup.

test_low_light_boost_extension

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

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

Untuk perangkat yang menjalankan Android 16 atau yang lebih tinggi, permintaan perekaman menyertakan wilayah berbayar yang sesuai dengan persegi panjang yang membatasi petak persegi. Penambahan ini mengubah kriteria lulus nilai minimum.

API yang diuji:

Kartu:

  • Untuk perangkat yang menjalankan Android 16 atau yang lebih baru, nilai luma rata-rata dari 6 kotak pertama harus minimal 54, dan perbedaan rata-rata nilai luma dari kotak berturut-turut hingga kotak 5 dan 6 harus minimal 17.

  • Untuk perangkat yang menjalankan Android 15 dan yang lebih lama, nilai luma rata-rata dari 6 kotak pertama harus minimal 70, dan perbedaan rata-rata nilai luma dari kotak berturut-turut hingga kotak 5 dan 6 harus minimal 18.

scene_tele

Persyaratan utama untuk pengujian scene_tele adalah jarak diagram harus setidaknya jarak fokus minimum lensa telefoto. Karena jarak fokus minimum ini dapat berbeda di antara perangkat, Anda harus mengonfigurasi penyiapan agar sesuai dengan kamera telefoto tertentu.

Penyiapan scene_tele berdasarkan jarak fokus kamera lebar dan telefoto

Gambar 139. Penyiapan scene_tele berdasarkan jarak fokus kamera lebar dan tele.

Untuk informasi selengkapnya tentang penyiapan hardware pengujian, lihat Penyiapan rig ekstensi tele.

scene6_tele

Scene scene6_tele terdiri dari petak penanda ArUco dengan latar belakang putih.

Jika pengambilan scene6_tele terlihat terlalu terang di rig modular, lepaskan plat depan rig modular.

Putuskan koneksi rig pengujian WFoV dari ekstensi dan lepaskan dudukan ponsel.

Putuskan koneksi rig pengujian WFoV dari ekstensi dan lepaskan dudukan ponsel

Gambar 140. Putuskan koneksi rig pengujian WFoV dari ekstensi dan lepaskan dudukan ponsel.

remove_front_plate

Gambar 141. Lepaskan pelat depan.

test_zoom_tele

Menguji perilaku zoom kamera dari lensa lebar ke lensa telefoto. Pengujian ini identik dengan test_zoom, tetapi menguji perilaku zoom kamera dari lensa lebar ke lensa telefoto.

API yang diuji:

Lulus: Ukuran relatif penanda ArUco yang diambil akurat terhadap rasio zoom yang diminta untuk memverifikasi bahwa kamera melakukan zoom dengan benar, dan jarak penanda ke pusat gambar berubah sesuai dengan kriteria yang tercantum dalam test_zoom.

test_preview_zoom_tele

Menguji perilaku zoom kamera untuk frame pratinjau dari lensa lebar ke lensa telefoto. Pengujian ini identik dengan test_preview_zoom, tetapi menguji perilaku zoom kamera untuk frame pratinjau dari lensa lebar ke lensa telefoto.

API yang diuji:

Lulus: Ukuran relatif penanda ArUco yang diambil akurat terhadap rasio zoom yang diminta untuk memverifikasi bahwa kamera melakukan zoom dengan benar, dan jarak penanda ke pusat gambar berubah sesuai dengan kriteria yang tercantum di test_preview_zoom.

scene7_tele

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

test_multi_camera_switch_tele

Pengujian ini memverifikasi bahwa selama perekaman pratinjau dengan berbagai rasio zoom, perpindahan antara lensa lebar (W) dan telefoto (tele) menghasilkan nilai RGB yang serupa.

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

Frame yang diambil pada dan sebelum titik persilangan dianalisis untuk AE, AWB, dan AF.

Pemeriksaan AE memverifikasi bahwa perubahan luma berada dalam rentang yang diharapkan untuk gambar lensa W dan tele. Pemeriksaan AWB memverifikasi bahwa rasio merah-hijau dan biru-hijau berada dalam nilai nilai minimum untuk gambar lensa W dan tele. Pemeriksaan AF mengevaluasi nilai estimasi ketajaman berdasarkan magnitudo gradien rata-rata antara gambar lensa W dan tele.

API yang diuji:

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

  • Pemeriksaan AE: Perubahan luma antara gambar lensa W dan tele harus kurang dari 4%.
  • Pemeriksaan AWB: Dalam ruang warna LAB, delta C antara merah-hijau dan biru-hijau untuk lebar dan telefoto tidak boleh melebihi 10.
  • Pemeriksaan AF: Ketajaman gambar lensa tele harus lebih tinggi daripada lensa W.

scene_flash

Pengujian scene_flash memerlukan tampilan gelap di kotak penggabungan sensor.

test_auto_flash

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

API yang diuji:

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

test_flash_strength

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

Memverifikasi bahwa jika perangkat mendukung kontrol kekuatan flash selama penggunaan kamera dalam mode SINGLE, kekuatan flash akan berubah dengan tingkat kekuatan yang diminta yang berbeda. Memverifikasi bahwa kontrol kekuatan flash berfungsi dengan AE_MODES yang berbeda. Misalnya, jika mode eksposur otomatis adalah ON atau OFF, tingkat intensitas flash akan memengaruhi kecerahan, dan jika modenya adalah ON_AUTO_FLASH, tingkat intensitas flash tidak akan memengaruhi kecerahan.

Untuk melakukan pengujian, lampu di rig pengujian harus dimatikan. Lampu dapat dimatikan secara otomatis dengan pengontrol Arduino. Layar harus benar-benar gelap agar pengujian berfungsi dengan benar.

API yang diuji:

Kartu:

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

test_led_snapshot

Menguji apakah snapshot LED tidak menjenuhkan atau mewarnai gambar.

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

Karena rekaman memiliki hotspot yang berbeda karena flash, pengujian menghitung rata-rata gambar flash dari seluruh rekaman dan memverifikasi apakah nilainya berada dalam rentang (68, 102). Untuk memeriksa apakah gambar cukup berkeseimbangan putih, pengujian akan menghitung rasio merah-hijau dan biru-hijau serta memverifikasi apakah rasionya berada dalam rentang 0,95 dan 1,05.

API yang diuji:

Lulus: Rasio merah-hijau dan biru-hijau berada dalam rentang 0,95 dan 1,05. Rata-rata gambar flash berada dalam rentang (68, 102).

test_night_mode_indicator

Menguji fungsi indikator mode malam, fitur yang menunjukkan apakah kamera beroperasi dalam kondisi cahaya redup dan akan mendapatkan manfaat dari ekstensi Kamera Mode Malam yang masih merekam. Fitur ini hanya tersedia di perangkat yang mendukung ekstensi Kamera Mode Malam.

Pengujian ini memeriksa apakah indikator mode malam mencerminkan kondisi pencahayaan dengan benar selama pratinjau kamera. Pengujian akan melakukan langkah-langkah berikut:

  1. Inisialisasi: Pengujian melakukan inisialisasi ItsSession dan mengambil properti kamera. Sensor ini juga membuat koneksi dengan pengontrol lampu.
  2. Kondisi Lewati: Pengujian dilewati jika perangkat tidak mendukung level API yang diperlukan atau fitur indikator mode malam.
  3. Sesi Camera2:
    • Pengujian memulai sesi pengambilan pratinjau menggunakan sesi Camera2.
    • Lampu dinyalakan dan frame pratinjau diambil.
    • Pengujian memverifikasi bahwa indikator mode malam berada dalam status OFF.
    • Lampu dimatikan dan frame pratinjau diambil.
    • Pengujian memverifikasi bahwa indikator mode malam berada dalam status ON.
  4. Sesi ekstensi kamera:
    • Pengujian mengulangi prosedur yang sama seperti untuk sesi Camera2, tetapi menggunakan sesi CameraExtension dengan ekstensi EXTENSION_NIGHT.
  5. Pembersihan: Pengujian menutup ItsSession dan melepaskan pengontrol pencahayaan.

API yang diuji:

Kartu:

  • Saat lampu menyala, indikator mode malam harus dalam status OFF.
  • Saat lampu mati, indikator mode malam harus dalam status ON.
  • Berlaku untuk sesi Camera2 dan CameraExtension.

test_preview_min_frame_rate

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

API yang diuji:

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

test_torch_strength

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

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

API yang diuji:

Kartu:

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

sensor_fusion

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

Diagram penggabungan sensor

Gambar 142. Diagram penggabungan sensor.

Diagram penggabungan sensor di Rig

Gambar 143. Diagram penggabungan sensor yang mengisi bagian belakang kotak penggabungan sensor.

test_lens_intrinsic_calibration

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

API yang diuji:

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

Gambar berikut adalah contoh plot test_lens_intrinsic_calibration yang menunjukkan perubahan titik utama dalam piksel untuk setiap frame:

test_lens_intrinsic_calibration_example.png

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

test_multi_camera_frame_sync

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

API yang diuji:

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

test_preview_distortion

Menguji apakah distorsi dikoreksi di setiap frame pratinjau yang diambil pada berbagai tingkat zoom. Untuk setiap frame pratinjau, pengujian menghitung titik ideal berdasarkan intrinsik dan ekstrinsik kamera.

Pada gambar contoh, titik ideal ditampilkan dalam warna hijau; titik sebenarnya ditampilkan dalam warna merah. Error distorsi dihitung berdasarkan jarak piksel RMS antara titik sebenarnya dan titik ideal. Sorotan hijau dan merah pada gambar digunakan untuk mendeteksi area error distorsi secara visual.

test_preview_distortion_example.jpg

Gambar 145. Gambar papan catur dengan titik ideal berwarna hijau dan titik sebenarnya berwarna merah.

API yang diuji:

Lulus: Error distorsi ternormalisasi dari setiap frame pratinjau kurang dari nilai minimum yang ditetapkan dalam pengujian.

test_preview_stabilization

Pengujian yang menstabilkan video pratinjau berputar lebih sedikit daripada giroskop.

API yang diuji:

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

Berikut adalah contoh video dengan dan tanpa stabilisasi:

Gambar 146. Contoh video dengan stabilisasi.

Gambar 147. Contoh video tanpa stabilisasi.

test_sensor_fusion

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

Pengujian test_sensor_fusion menghasilkan sejumlah plot. Dua plot yang paling penting untuk proses debug adalah:

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

    Contoh peristiwa giroskop test_sensor_fusion

    Gambar 148. Contoh peristiwa giroskop test_sensor_fusion.

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

    Contoh rotasi plot test_sensor_fusion

    Gambar 149. Contoh rotasi plot test_sensor_fusion.

API yang diuji:

Lulus: Offset stempel waktu kamera dan giroskop kurang dari 1 milidetik sesuai 7.3.9 Sensor High Fidelity dalam CDD.

Mekanisme kegagalan:

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

test_video_stabilization

Pengujian yang menstabilkan video berputar lebih sedikit daripada giroskop.

API yang diuji:

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

Berikut adalah contoh video dengan dan tanpa stabilisasi.

Gambar 150. Contoh video dengan stabilisasi.

Gambar 151. Contoh video tanpa stabilisasi.

test_video_stabilization_jca

Pengujian yang menstabilkan video yang diambil menggunakan JCA berputar lebih sedikit daripada giroskop. JCA harus diinstal di perangkat sebelum pengujian.

API yang diuji:

Lulus: Rotasi sudut maksimum pada frame yang diekstrak dari video yang diambil menggunakan JCA kurang dari 70% rotasi giroskop.

feature_combination

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

test_feature_combination

Menguji semua kombinasi berbagai kombinasi streaming, mode stabilisasi video, rentang FPS target, video HDR 10-bit, dan Ultra HDR yang didukung oleh perangkat kamera.

Untuk Android 16 dan yang lebih tinggi, pengujian menjalankan semua kombinasi fitur yang didukung, dan mencatat hasil ke dalam file proto. Pernyataan kegagalan hanya dipanggil untuk kombinasi fitur yang isSessionConfigurationSupported-nya menampilkan True.

API yang diuji:

Lulus: Untuk setiap kombinasi fitur yang didukung:

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

scene_ip

Di Android 16 dan yang lebih baru, tampilan scene_ip memungkinkan pemeriksaan paritas gambar antara aplikasi kamera default dan aplikasi kamera Jetpack (JCA) untuk mengidentifikasi perbedaan utama antara gambar yang diambil. JCA mereplikasi pengambilan aplikasi media sosial dan memberikan gambar dasar pengukuran yang kemudian diproses dan ditingkatkan oleh aplikasi media sosial.

Persyaratan penyiapan hardware

Penyiapan hardware berikut diperlukan untuk pengujian scene_ip:

  • Pengujian dijalankan di ITS-in-a-box kamera Gen2.
  • Pengontrol pencahayaan dan servo yang merupakan bagian dari rig Gen2 digunakan untuk mengontrol lingkungan pengujian
  • Diagram fitur pengujian ditempatkan di dalam rig Gen2.

test_chart_gen2

Gambar 152. Contoh Gen2chart_sample.

Menguji kriteria lewati

Pengujian scene_ip dilewati jika salah satu kriteria berikut terpenuhi:

  • Perangkat memiliki API level pertama (first_api_level) 35 atau yang lebih rendah.
  • Perangkat bukan perangkat ponsel dengan perangkat kamera utama depan dan belakang (misalnya, tablet atau TV).

test_default_jca_ip

Mengambil gambar diagram fitur pengujian dalam kondisi pencahayaan yang terkontrol menggunakan aplikasi kamera default dan JCA, serta melakukan pemeriksaan berikut:

  • FoV: Memeriksa apakah aplikasi kamera default dan pengambilan JCA memiliki FoV yang sama. Pemeriksaan ini menggunakan fitur Kode QR tengah yang diekstrak dari gambar diagram rekaman.

  • Kecerahan: Memeriksa apakah perbedaan kecerahan yang diukur antara aplikasi kamera default dan JCA tidak melebihi 10. Pemeriksaan ini menggunakan patch rentang dinamis untuk pengukuran kecerahan.

  • White balance: Memeriksa apakah perbedaan white balance antara aplikasi kamera default dan JCA tidak melebihi 4. Pemeriksaan ini menggunakan patch rentang dinamis untuk pengukuran kecerahan.

Bagian dasar lulus: Pengujian lulus pemeriksaan FoV, kecerahan, dan keseimbangan putih. Di Android 16, pengujian ini tidak diwajibkan (NOT_YET_MANDATED).