Kamera ITS testleri

Bu sayfada, Android Uyumluluk Test Paketi (CTS) Doğrulayıcı'nın bir parçası olan Kamera Görüntüsü Test Paketi (ITS) kapsamındaki testlerin kapsamlı bir listesi sağlanmaktadır. ITS testleri işlevsel testlerdir. Yani görüntü kalitesini değil, reklamı yapılan kamera işlevlerinin tümünün beklendiği gibi çalışıp çalışmadığını ölçerler. Bu doküman, geliştiricilerin ve test uzmanlarının her bir testin ne yaptığını ve test hatalarının nasıl ayıklandığını anlamalarına olanak tanır.

Kamera ITS kapıları, gerekli kamera özelliklerine, API düzeyine ve medya performans sınıfına (MPC) göre testler yapar. ITS, API düzeyi için belirli bir API düzeyine eklenen ve daha düşük API düzeylerindeki işlevlerle ilgili olumsuz kullanıcı deneyimlerini test eden testleri kontrol etmek üzere ro.product.first_api_level kullanır. ITS, belirli bir API düzeyinde eklenen ve yeni donanım özelliği gerektiren özellikler için testleri ro.vendor.api_level ile kontrol eder. Bir cihaz için ro.odm.build.media_performance_class tanımlanmışsa ITS, MPC düzeyine bağlı olarak belirli testlerin çalıştırılmasını gerektirir.

Testler aşağıdaki şekilde sahneye göre gruplandırılır:

  • scene0: Meta veri, titreme, jiroskop, titreşim yakalama
  • scene1: Pozlama, hassasiyet, EV telafisi, YUV ve JPEG/RAW
  • scene2: Yüz algılama, renkli sahneler gerektiren testler
  • scene3: Kenar geliştirme, lens hareketi
  • scene4: En boy oranı, kırpma, görüş alanı
  • scene5: Lens gölgelendirmesi
  • scene6: Yakınlaştırma
  • scene7: Çoklu kamera anahtarı
  • scene8: AE ve AWB bölge ölçümü
  • scene9: JPEG sıkıştırma
  • scene_extensions: Kamera uzantıları
  • scene_tele: Telefoto lense geçiş
  • scene_flash: Otomatik flaş, minimum kare hızı
  • scene_video: Kare düşmesi
  • sensor_fusion: Kamera/jiroskop zamanlama ofseti
  • feature_combination: Özellik kombinasyonları
  • scene_ip: Varsayılan kamera uygulaması ile JCA arasındaki görüntü eşleşmesi

Her sahnenin açıklaması için ilgili bölümlere bakın.

sahne0

Scene0 testleri için belirli sahne bilgileri gerekmez. Ancak jiroskop ve titreşim testi için telefonun sabit olması gerekir.

test_jitter

Kamera zaman damgalarındaki titremeyi ölçer.

Test edilen API'ler:

Geçti: Kareler arasında en az 30 ms fark vardır.

test_jitter_plot.png

test_jitter_plot.png (Küçük y ekseni aralığına dikkat edin. Jitter bu grafikte aslında küçüktür.)

test_metadata

Meta veri girişlerinin geçerliliğini test eder. Kayıt sonuçlarını ve kamera özellikleri nesnelerini inceler. Bu testte, resim içeriği önemli olmadığı için auto_capture_request pozlama ve kazanç değerleri kullanılır.

Test edilen API'ler:

Geçti: Donanım düzeyi, rollingShutterSkew, frameDuration etiketleri, timestampSource, croppingType, blackLevelPattern, pixel_pitch, FoV, hiper odak uzaklığı mevcut ve geçerli değerlere sahip.

test_request_capture_match

Kayıt meta verilerini geri okuyarak cihazın doğru pozlama ve kazanç değerlerini yazdığını test eder.

Test edilen API'ler:

Geç: Meta veri istek ve yakalama değerleri tüm çekimler arasında eşleşir.

test_sensor_events

Sensör füzyonu desteğinin reklamını yapan cihazlar için cihazın sorgu yapıp sensör etkinliklerini yazdırıp yazdırmadığını test eder. İvme ölçer, jiroskop ve manyetometre sensörleri olması gerekir. Bu test yalnızca ekran açıkken (cihaz bekleme modunda değilken) çalışır.

Test edilen API'ler:

Geç: Her sensör için etkinlikler alınır.

test_solid_color_test_pattern

Kameranın sesini kapatmak için düz renk test kalıplarının düzgün şekilde oluşturulup oluşturulmadığını test eder. Kameranın sessize alınması destekleniyorsa düz renk test kalıpları da desteklenmelidir. Kameranın sessize alınması desteklenmiyorsa tek renkli test kalıpları yalnızca bu özelliğin reklamı yapılıyorsa test edilir.

RAW resimler destekleniyorsa renk atama da test edilir. Test edilen renkler siyah, beyaz, kırmızı, mavi ve yeşildir. RAW görüntüleri desteklemeyen kameralarda yalnızca siyah test edilir.

Test edilen API'ler:

Geçti: Desteklenen düz test desenleri doğru renktedir ve resimde düşük bir varyasyon vardır.

test_test_pattern

Her geçerli test deseni için kare yakalamak üzere android.sensor.testPatternMode parametresini test eder ve karelerin düz renkler ve renk çubukları için doğru şekilde oluşturulup oluşturulmadığını kontrol eder. Bu test aşağıdaki adımları içerir:

  1. Desteklenen tüm test desenleri için resimler çeker.
  2. Düz renk test deseni ve renk çubukları için basit bir doğruluk kontrolü gerçekleştirir.

Test edilen API'ler:

Geçti: Desteklenen test kalıpları doğru şekilde oluşturulur.

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

Test deseninin RAW'dan YUV'ye doğrusal ton haritası ile dönüşümünü test eder. Bu test, ton haritası dönüşümü için mükemmel bir resim kalıbı oluşturmak üzere android.sensor.testPatternMode = 2 (COLOR_BARS) parametresini gerektirir. Doğrusal ton haritası ve ideal resim girişiyle ardışık düzenin doğru renk çıkışlarına sahip olmasını sağlar (test_test_patterns kullanır).

Test edilen API'ler:

Geç: YUV ve RAW birbirine benziyor.

test_tonemap_curve_raw_2

test_tonemap_curve_raw_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp

Görüntü ve hareket sensörü etkinliklerinin aynı zaman alanında olup olmadığını test eder.

Test edilen API'ler:

Geçiş: Hareket zaman damgaları, iki resim zaman damgası arasındadır.

test_vibration_restriction

Cihazın titreşiminin beklendiği gibi çalışıp çalışmadığını test eder.

Test edilen API'ler:

Geç: Kamera ses kısıtlaması API'si tarafından sessize alındığında cihaz titreşmez.

sahne1_1

scene1 gri bir grafiktir. Gri grafik, kamera görüş alanının ortasını% 30 oranında kapsamalıdır. Orta bölgenin özelliği olmadığından gri grafiğin 3A'yı (otomatik pozlama, otomatik beyaz denge, otomatik odaklama) orta düzeyde zorlaması beklenir. Ancak yakalama isteği, 3A'nın birleşmesi için yeterli özellik içeren sahnenin tamamını belirtir.

RFoV kameralar, WFoV veya RFoV test düzeneğinde test edilebilir. WFoV test düzeninde bir RFoV kamera test edilirse FoV'deki gri grafiğin 3A'nın birleşmesine yardımcı olacak bazı sınırlara sahip olması için grafik ⅔ oranında ölçeklendirilir. Kamera test aparatlarının daha ayrıntılı açıklamaları için Kamera ITS-in-a-box başlıklı makaleyi inceleyin.

sahne1

scene1: Tam boyutlu grafik (solda). ⅔ ölçekli grafik (sağda).

test_ae_precapture_trigger

Ön çekim tetikleyicisi kullanıldığında AE durum makinesini test eder. AE devre dışıyken beş manuel istek yakalar. Son istekte AE ön yakalama tetikleyicisi var. AE devre dışı olduğundan bu tetikleyici yoksayılmalıdır.

Test edilen API'ler:

Geçti: AE yakınsadı.

test_auto_vs_manual

Otomatik ve manuel çekimlerin yapıldığı testler aynı görünüyor.

Test edilen API'ler:

Geç: Her yakalama sonucunda raporlanan manuel beyaz denge kazançları ve dönüşümü, kameranın 3A algoritmasındaki otomatik beyaz denge estimate ile eşleşir.

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

test_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

test_black_white

Cihazın tam siyah beyaz resimler üretip üretmediğini test eder. İki çekim yapar. İlkinde son derece düşük kazanç ve kısa pozlama kullanılır. Bu, siyah bir fotoğrafla sonuçlanır. İkincisinde ise son derece yüksek kazanç ve uzun pozlama kullanılır. Bu, beyaz bir fotoğrafla sonuçlanır.

Test edilen API'ler:

Geç: Siyah beyaz resimler oluşturur. Beyaz resimlerin doygun kanalları, %1'den az fark içeren [255, 255, 255] RGB değerlerine sahiptir.

test_black_white_black test_black_white_black
test_black_white_black.jpg test_black_white_white.jpg

test_siyah_beyaz_grafik_ortalamaları

test_black_white_plot_means.png

test_burst_capture

Tüm yakalama ardışık düzeninin tam boyutlu yakalama hızına ve CPU süresine ayak uydurabileceğini doğrular.

Test edilen API'ler:

Geç: Tam boyutlu resimler çeker, kare atlama ve resim parlaklığını kontrol eder.

test_burst_sameness_manual

Manuel çekim ayarıyla 50'şer resimden oluşan 5 seri çekim yapar ve bunların hepsinin aynı olup olmadığını kontrol eder. Bu test, farklı şekilde işlenmiş veya artefakt içeren ara sıra kareler olup olmadığını belirlemek için kullanılabilir.

Test edilen API'ler:

Başarılı: Görsel olarak ve RGB değerleri açısından aynıdır.

Başarısız: Her patlamanın başında RGB ortalama grafiğinde ani bir artış veya düşüş gösterir.

  • first_API_level < 30 için tolerans% 3'tür.
  • first_API_level >= 30 için tolerans% 2'dir.

test_burst_sameness_manual_mean

test_burst_sameness_manual_mean.jpg

test_burst_sameness_manual_plot_means

test_burst_sameness_manual_plot_means.png

test_crop_region_raw

RAW akışlarının kırpılamadığı test edilir.

Test edilen API'ler:

Geç: YUV resimleri ortasından kırpılır ancak RAW resimler kırpılmaz.

test_crop_region_raw_comp_raw_crop

test_crop_region_raw_comp_raw_crop.jpg

test_crop_region_raw_comp_raw_full

test_crop_region_raw_comp_raw_full.jpg

test_crop_region_raw_comp_yuv_crop

test_crop_region_raw_comp_yuv_crop.jpg

test_crop_region_raw_yuv_full

test_crop_region_raw_yuv_full.jpg

test_crop_regions

Kırpma bölgelerinin çalışıp çalışmadığını test eder. Tam bir resim alır ve 5 farklı bölgeden (köşeler ve merkez) yamalar oluşturur. 5 bölge için kırpma ayarlanmış resimler çeker. Yama ve kırpma resmi değerlerini karşılaştırır.

Test edilen API'ler:

Geçti: Kırpılan bölgenin resmi, kırpılan resme karşılık gelen yamakla eşleşir.

test_ev_compensation

Pozlama değeri (EV) telafisinin uygulanıp uygulanmadığını test eder. Test, temel ve ileri seviye bölümlerden oluşur.

Temel bölüm, EV telafisinin CONTROL_AE_COMPENSATION_STEP ile oluşturulan bir aralık kullanılarak uygulandığını test eder. Her telafi değerinde sekiz kare yakalanır.

Gelişmiş bölüm, pozlamayı sekiz adımda artırır ve ölçülen parlaklığı beklenen parlaklıkla karşılaştırır. Beklenen değerler, EV telafisi uygulanmamış görüntünün görüntü parlaklığından hesaplanır ve hesaplanan değerler gerçek görüntü değeri aralığını aşarsa beklenen değer doygun hale gelir. Beklenen değerler ile ölçülen değerler eşleşmezse veya görüntüler beş adımda aşırı pozlanırsa test başarısız olur.

Test edilen API'ler:

Temel bölüm geçişi: Görüntülerde, beş adımda aşırı pozlama olmadan artan pozlama gösterilir.

test_ev_compensation_basic

test_ev_compensation_basic.png

Gelişmiş bölüm geçişi: EV telafi ayarı arttıkça lumada bir artış yakalar. Her EV dengeleme ayarı için çekilen sekiz karenin parlaklık değerleri sabit olmalıdır.

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_exposure_x_iso

ISO ve pozlama süresi değiştikçe sabit bir pozlama elde edilip edilmediğini test eder. ISO ve pozlama süresinin birbirini dengeleyecek şekilde seçildiği bir dizi fotoğraf çeker. Sonuçlar aynı parlaklığa sahip olmalıdır ancak sırayla görüntü daha gürültülü hale gelmelidir. Örnek piksel ortalama değerlerinin birbirine yakın olduğunu doğrular. Resimlerin 0 veya 1 değerine sabitlenmemesini (bu durumda düz çizgiler gibi görünürler) sağlar. Yapılandırma dosyanızda debug işaretini ayarlayarak testi RAW resimlerle de çalıştırabilirsiniz.

Test edilen API'ler:

Geç: Görüntüler aynı parlaklığa sahiptir ancak ISO değeri yükseldikçe daha fazla gürültü oluşur. ISO*exposure değeri, test edilen kazanç alanında sabit olduğunda RGB düzlemleri düzdür.

Başarısızlık mekanizması:

  • test_exposure_plot_means.png'te kazanç çarpanı değerleri (x ekseni) arttıkça normalleştirilmiş RGB düzlemi ortalama değerleri (y ekseni) düşük kazanç çarpanı değerlerinden sapmaya başlar.

test_exposure_plot_means

test_exposure_plot_means.png

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

test_latching

FULL ve LEVEL_3 kameralar için ayarların (ör. pozlama ve kazanç) doğru çerçeveye kilitlendiğini test eder. Arka arkaya istekler kullanarak bir dizi çekim yapar ve çekim isteği parametrelerini çekimler arasında değiştirir. Resimlerin beklenen özelliklere sahip olup olmadığını kontrol eder.

Test edilen API'ler:

Geçti: [2, 3, 6, 8, 10, 12, 13] numaralı resimlerde ISO veya pozlama artmıştır ve test_latching_plot_means.png üzerinde daha yüksek RGB ortalamaları ile gösterilir.

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

test_latching_plot_means

test_latching_plot_means.png

test_linearity

Cihaz işlemenin doğrusal piksellere ters çevrilip çevrilemeyeceğini test eder. Cihazın sabit bir hedefe yönlendirildiği bir dizi fotoğraf çeker.

Test edilen API'ler:

Geç: R, G, B değerleri, hassasiyet arttıkça doğrusal olarak artmalıdır.

test_linearity_plot_means

test_linearity_plot_means.png

test_locked_burst

3A kilidini ve YUV patlamasını (otomatik ayar kullanılarak) test eder. Bu test, MANUAL_SENSOR veya PER_FRAME_CONTROLS bulunmayan sınırlı cihazlarda bile geçecek şekilde tasarlanmıştır. Test, YUV resim tutarlılığını kontrol ederken kare hızı kontrolü CTS'dedir.

Test edilen API'ler:

Geçti: Kayıtlar tutarlı görünüyor.

test_locked_burst_frame0

test_locked_burst_frame0.jpg

test_locked_burst_frame1

test_locked_burst_frame1.jpg

test_locked_burst_frame2

test_locked_burst_frame2.jpg

scene1_2

1_2 numaralı sahne, 1_1 numaralı sahnenin işlevsel olarak aynı bir kopyasıdır. 1 numaralı sahnenin uzun süresini azaltmak için alt sahne yapısı uygulanmıştır.

test_param_color_correction

android.colorCorrection.* parametrelerinin ayarlandığında uygulanıp uygulanmadığını test eder. Farklı dönüştürme ve kazanç değerleriyle fotoğraflar çeker ve bunların buna göre farklı göründüğünü test eder. Dönüşüm ve kazançlar, çıkışın giderek daha kırmızı veya mavi olmasını sağlayacak şekilde seçilir. Doğrusal bir ton haritası kullanır. Ton eşleme, daha sınırlı dinamik aralığa sahip bir ortamda yüksek dinamik aralıklı görüntülerin görünümünü yaklaşık olarak elde etmek için bir renk grubunu başka bir renk grubuyla eşlemek amacıyla görüntü işlemede kullanılan bir tekniktir.

Test edilen API'ler:

İlet: R ve B değerleri, dönüştürme işlemine göre artırılır.

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*X ekseni, yakalama isteklerinden oluşur: 0 = unity, 1=kırmızı artışı, 2= mavi artışı

test_param_color_correction_req=0

test_param_color_correction_req=0.jpg

test_param_color_correctness_req=1

test_param_color_correctness_req=1.jpg (R boost)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (B artırma)

test_param_flash_mode

android.flash.mode parametresinin uygulanıp uygulanmadığını test eder. Flaşın patlayıp patlamadığının net bir şekilde anlaşılması için pozlamayı manuel olarak karanlık tarafa ayarlar ve doğrusal bir ton haritası kullanır. Flaşın ateşlenip ateşlenmediğini doğrulamak için oluşturulan büyük bir gradyan olup olmadığını görmek üzere karo resmiyle merkezi kontrol eder.

Test edilen API'ler:

Geçti: Kart resminin ortasında büyük bir renk geçişi varsa flaş tetiklenmiştir.

test_param_flash_mode_1

test_param_flash_mode_1.jpg

test_param_flash_mode_1_tile

test_param_flash_mode_1_tile.jpg

test_param_flash_mode_2

test_param_flash_mode_2.jpg

test_param_flash_mode_2_tile

test_param_flash_mode_2_tile.jpg

test_param_noise_reduction

android.noiseReduction.mode parametresinin ayarlandığında doğru şekilde uygulanıp uygulanmadığını test eder. Kameranın ışığı düşükken fotoğraf çekme Kaydedilen görüntünün gürültülü olmasını sağlamak için yüksek analog kazanç kullanır. NR kapalı, "hızlı" ve "yüksek kalite" için üç resim çeker. Ayrıca, düşük kazanç ve NR kapalıyken bir resim yakalar ve bunun varyansını referans olarak kullanır. SNR (Sinyal Gürültü Oranı) ne kadar yüksek olursa görüntü kalitesi de o kadar iyi olur.

Test edilen API'ler:

Geç: SNR, farklı gürültü azaltma modlarına göre değişir ve aşağıdaki grafiğe benzer şekilde davranır.

test_param_noise_reduction_plot_SNRs

test_param_noise_reduction_plot_SNRs.png

0: KAPALI, 1: HIZLI, 2: HD, 3: MİN , 4: ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_shading_mode

android.shading.mode parametresinin uygulanıp uygulanmadığını test eder.

Test edilen API'ler:

Geçiş: Gölgelendirme modları değiştirilir ve lens gölgelendirme haritaları beklendiği gibi değiştirilir.

test_param_shading_mode_ls_maps_mode_0_loop_0

test_param_shading_mode_ls_maps_mode_0_loop_0.png

test_param_shading_mode_ls_maps_mode_1_loop_0

test_param_shading_mode_ls_maps_mode_1_loop_0.png

test_param_shading_mode_ls_maps_mode_2_loop_0

test_param_shading_mode_ls_maps_mode_2_loop_0.png

test_param_tonemap_mode

android.tonemap.mode parametresinin uygulanıp uygulanmadığını test eder. Her R, G, B kanalına farklı ton haritası eğrileri uygular ve çıkış resimlerinin beklendiği gibi değiştirilip değiştirilmediğini kontrol eder. Bu test, test1 ve test2 olmak üzere iki testten oluşur.

Test edilen API'ler:

Geçiş:

  • test1: Her iki resimde de doğrusal bir ton haritası vardır ancak n=1 daha dik bir gradyana sahiptir. n=1 resminde G (yeşil) kanalı daha parlaktır.
  • test2: Aynı ton haritası, ancak farklı uzunluk. Resimler aynı.
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

test_post_raw_sensitivity_boost

RAW hassasiyet artışı sonrası kontrol eder. Farklı hassasiyete sahip bir RAW ve YUV resim grubu yakalar, RAW hassasiyet artışı kombinasyonunu yayınlar ve çıkış piksel ortalamasının istek ayarlarıyla eşleşip eşleşmediğini kontrol eder.

Test edilen API'ler:

Geçiş: Artış arttıkça RAW resimler daha koyu olurken YUV resimler parlaklıkta sabit kalır.

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_raw_plot_means

test_post_raw_sensitivity_boost_raw_plot_means.png

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199

test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400

test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

test_post_raw_sensitivity_boost_yuv_plot_means

test_post_raw_sensitivity_boost_yuv_plot_means.png

test_raw_exposure

Pozlama süresini artırarak bir dizi ham görüntü yakalar ve piksel değerlerini ölçer.

Test edilen API'ler:

Geçiş: ISO (kazanç) değerini artırmak, pikselleri ışığa karşı daha hassas hale getirir. Bu nedenle, nokta grafiği sola doğru hareket eder.

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰ 1 ms, 10¹ 10 ms, 10⁻¹ 0,1 ms'dir)

test_raw_exposure_s=132

test_raw_exposure_s=132.png

test_raw_exposure_s=209

test_raw_exposure_s=209.png

test_raw_exposure_s=286

test_raw_exposure_s=286.png

test_raw_exposure_s=363

test_raw_exposure_s=363.png

test_raw_exposure_s=440

test_raw_exposure_s=440.png

test_reprocess_noise_reduction

Yeniden işleme istekleri için android.noiseReduction.mode'ün uygulandığını test eder. Kamera loş ışıktayken yeniden işlenmiş görüntüler çeker. Çekilen görüntünün gürültülü olmasını sağlamak için yüksek analog kazanç kullanır. NR kapalı, "hızlı" ve "yüksek kalite" için üç yeniden işlenmiş resim çeker. Düşük kazanç ve NR kapalıyken yeniden işlenmiş bir resim yakalar ve bunun varyansını referans olarak kullanır.

Test edilen API'ler:

Geçiş: HIZLI >= KAPALI, HD >= HIZLI, HD >> KAPALI

Tipik SNR ve NR_MODE grafiği

Tipik SNR ve NR_MODE grafiği

test_tonemap_sequence

Farklı ton haritası eğrileri içeren bir fotoğraf dizisini test eder. Doğrusal ton haritasıyla 3 manuel çekim yapar. Varsayılan ton haritasıyla 3 manuel çekim yapar. Her ardışık kare çifti arasındaki farkı hesaplar.

Test edilen API'ler:

Geç: 3 adet aynı karenin ardından farklı bir grup 3 adet aynı kare vardır.

test_tonemap_sequence_i=0

test_tonemap_sequence_i=0.jpg

test_tonemap_sequence_i=1

test_tonemap_sequence_i=1.jpg

test_tonemap_sequence_i=2

test_tonemap_sequence_i=2.jpg

test_tonemap_sequence_i=3

test_tonemap_sequence_i=3.jpg

test_tonemap_sequence_i=4

test_tonemap_sequence_i=4.jpg

test_tonemap_sequence_i=5

test_tonemap_sequence_i=5.jpg

test_yuv_jpeg_all

Görüntü yakalama için bildirilen tüm boyut ve biçimlerin çalıştığını test eder. image_processing_utils modülü tarafından dönüştürüldüğünde YUV ve JPEG'nin aynı görünmesi için doğrusal ton haritası içeren manuel bir istek kullanır. Resimler varsayılan olarak kaydedilmez ancak debug_mode etkinleştirilerek kaydedilebilir.

Test edilen API'ler:

Geç: Tüm resim merkezleri, en yüksek çözünürlüklü YUV resminin% 3'ü olan RGB dönüştürülmüş resimlerde maksimum RMS (bir sinyalin kare kök ortalama değeri) farkına sahiptir.

test_yuv_jpeg_all

test_yuv_jpeg_all.png

test_yuv_plus_dng

Resim yakalama için bildirilen boyutların ve biçimlerin işe yarayıp yaramadığını test eder.

Test edilen API'ler:

Geçti: Test tamamlanır ve istenen resimler döndürülür.

test_yuv_plus_dng

test_yuv_plus_dng.jpg

sahne1_3

1_3 numaralı sahne, 1_1 numaralı sahnenin işlevsel olarak aynı bir kopyasıdır. 1. sahnenin uzun süresini azaltmak için alt sahne yapısı uygulanmıştır.

test_capture_result

CaptureResult nesnelerinde geçerli verilerin döndürüldüğünü test eder. Otomatik, manuel ve otomatik çekim yapar.

Test edilen API'ler:

Geç: Meta veriler tüm yakalamalar için geçerlidir ve manuel ayarlar ikinci otomatik yakalamaya aktarılmaz. Kayıtlar için lens gölgelendirme düzeltmesini gösterir.

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_dng_noise_model

DNG ham model parametrelerinin doğru olduğunu doğrular. Nokta grafiği, çeşitli hassasiyetlerde çekilen ham çekimler sırasında gri kartın ortadaki bir parçasının ölçülen varyansını gösterir ve bu değerleri kamera HAL'deki DNG gürültü modeli tarafından her hassasiyette beklenen varyansla karşılaştırır (çekim sonucu nesnelerinde döndürülen O,S parametrelerine göre). DNG gürültü modeli hakkında daha fazla bilgi için DNG gürültü modeli ile ilgili aşağıdaki dokümanı indirin.

Test edilen API'ler:

Geçti: DNG ham model parametreleri doğrudur. Beklenen RGB değerleri, ölçülen gerçek RGB değerleriyle eşleşir.

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_jpeg

YUV resimlerinin ve cihaz JPEG resimlerinin dönüştürüldüğü testler aynı görünüyor. Test, resmin ortasındaki% 10'u alır ve RGB değerini hesaplar, ardından değerlerin eşleşip eşleşmediğini doğrular.

Test edilen API'ler:

Geçti: Her resim arasındaki ortalama RGB farkı %3'ten azdır.

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

test_raw_burst_sensitivity

Artan kazançlarla bir dizi ham görüntü yakalar ve gürültüyü ölçer. Yalnızca ham olarak seri çekim yapar.

Test edilen API'ler:

Geçiş: Kazanç arttıkça her kare önceki kareden daha gürültülü olur.

Ortalama istatistikler ızgara hücresinin varyansını kullanır.

test_raw_burst_sensitivity_variance

test_raw_burst_sensitivity_variance.png

test_raw_sensitivity

Artan hassasiyetlerle bir dizi ham görüntü yakalar ve görüntünün ortasındaki% 10'luk alandaki gürültüyü (varyans) ölçer. Her çekimin öncekinden daha gürültülü olup olmadığını test eder.

Test edilen API'ler:

Geçiş: Varyans her çekimde artar.

test_raw_sensitivity_variance

test_raw_sensitivity_variance.png

test_yuv_plus_jpeg

Tek bir karenin hem YUV hem de JPEG çıkışı olarak yakalanmasını test eder. image_processing_utils modülü tarafından dönüştürüldüğünde YUV ve JPEG'nin aynı görünmesi için doğrusal ton haritası içeren manuel bir istek kullanır.

Test edilen API'ler:

Geç: YUV ve JPEG resimleri benzerdir ve% 1'den az RMS (sinyalin karesi alınmış ortalama değeri) farkına sahiptir.

test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

Tek bir karenin hem RAW/RAW10/RAW12 hem de YUV çıkışı olarak yakalanmasını (destekleniyorsa) test eder. Doğrusal ton haritasıyla manuel istek kullanır. Bu nedenle, ham ve YUV'nin aynı olması beklenir. RGB'ye dönüştürülmüş resimlerin ortasındaki% 10 RGB değerlerini karşılaştırır. Günlüklerandroid.shading.mode.

Test edilen API'ler:

Geçti: YUV ve ham görüntüler benzerdir ve% 3,5'ten az RMS (bir sinyalin karesi alınmış ortalama değeri) farkına sahiptir.

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

test_sensitivity_priority

Daha yüksek ISO ile artan gürültü seviyeleri arasındaki ilişkiyi doğrulamak için çeşitli ISO ayarlarında CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY testleri yapar.

Test edilen API'ler:

Geç: ISO değeri yükseldikçe gürültü seviyesi de artar.

Atlama ölçütlerini test etme

Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_sensitivity_priority.py testi atlanır:

test_exposure_time_priority

ISO'nun telafi edebileceği aralıkta sabit parlaklığı kontrol ederek CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY'yi çeşitli pozlama sürelerinde test eder.

Test edilen API'ler:

Başarılı: ISO, telafi aralığındaysa parlaklık, pozlama süreleri boyunca sabit (tolerans dahilinde) olur.

Atlama ölçütlerini test etme

Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_exposure_time_priority testi atlanır:

sahne2_a

scene2_a dosyasında, gri arka plan ve nötr renklerde giysi giyen üç yüz vardır. Yüzlerin cilt tonları geniş bir yelpazede olacak şekilde seçilir. Yüz algılamanın en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir.

sahne2_a

sahne2_a

test_autoframing

Kamera cihazının otomatik çerçeveleme davranışını test eder. Sahnedeki yüzlerin hiçbirinin görünmediği şekilde büyük bir yakınlaştırma yapar, CaptureRequest'teki AUTOFRAMING değerini True olarak ayarlayarak otomatik çerçeveleme modunu etkinleştirir ve durum birleştiğinde (yani CaptureResult'teki AUTOFRAMING_STATE değeri AUTOFRAMING_STATE_CONVERGED olarak ayarlandığında) orijinal sahnedeki tüm yüzlerin algılanıp algılanamayacağını doğrular.

Test edilen API'ler:

Geç: Üç yüzün tümü algılandı.

test_display_p3

ColorSpaceProfiles API'yi kullanarak JPEG biçiminde Display P3 yakalamayı test eder. Kaydedilen JPEG'in başlığında uygun bir ICC profili olup olmadığını ve resmin sRGB gamutunun dışındaki renkleri içerip içermediğini test eder.

Test edilen API'ler:

Geçti: JPEG, Display P3 ICC profili ve sRGB gamutunun dışındaki renkleri içerir.

test_effects

Desteklenen kamera efektleri için kare yakalar ve bunların doğru şekilde oluşturulup oluşturulmadığını kontrol eder. Test yalnızca OFF ve MONO efektlerini kontrol eder ancak desteklenen tüm efektler için resimleri kaydeder.

Test edilen API'ler:

Geçiş: Sahne görüntüsünü OFF efektleriyle ve efektler MONO olarak ayarlanmış tek renkli bir görüntüyle kaydeder.

test_effects_MONO

test_effects_MONO.jpg

test_exposure_keys_consistent

Bu test, AE etkin bir yakalamanın ortalama parlaklığını, AE devre dışı bir yakalamayla karşılaştırır. AE devre dışı yakalama, AE etkin yakalamanın CaptureResult bölümünde alınan pozlama parametrelerini (duyarlılık, pozlama süresi, kare süresi, ham sonrası hassasiyet artışı) manuel olarak uygular.

Test edilen API'ler:

Geçti: İki yakalama arasındaki parlaklıktaki göreceli fark yüzde dörtten azdır.

test_format_combos

Çıkış biçimlerinin farklı kombinasyonlarını test eder.

Test edilen API'ler:

Geç: Tüm kombinasyonlar başarıyla yakalanır.

test_num_faces

Yüz algılamayı test eder.

Test edilen API'ler:

Geç: Üç yüz bulur.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_reprocess_uv_swap

YUV yeniden işlemenin U ve V düzlemlerini değiştirmediğini test eder. Bu durum, yeniden işlenmiş resim ile yeniden işlenmemiş bir yakalama arasındaki mutlak farkların toplamı (SAD) hesaplanarak tespit edilir. Yeniden işlenmiş yakalamanın çıkış U ve V düzlemlerinin değiştirilmesi SAD'nin artmasına neden olursa çıkışın doğru U ve V düzlemlerine sahip olduğu varsayılır.

Test edilen API'ler:

Geç: U ve V düzlemleri değiştirilmez.

test_reprocess_uv_swap

test_reprocess_uv_swap.png

scene2_b

test_preview_num_faces

Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle önizlemede yüz algılamayı test eder.

Test edilen API'ler:

Geç: Yüz sınır kutularında yüz yer işaretleri bulunan 3 yüz bulur.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

En büyük JPEG biçimiyle aynı en boy oranına sahip en yaygın YUV ve JPEG biçimlerini kullanarak 1920x1440 çözünürlüğü aşmayan iki resim çeker. jpeg.quality değerini 100 olarak ayarlar ve ikili yüzey isteği yakalar. Her iki resmi de RGB dizilerine dönüştürür ve iki resim arasındaki 3D karesi alınmış ortalama (RMS) farkı hesaplar.

Ayrıca bu test, desteklenen tüm akış kullanım alanları için YUV çıkışlarının STILL_CAPTURE kullanım alanındaki YUV'ye makul ölçüde benzer olduğunu doğrular.

Test edilen API'ler:

Geçti: STILL_CAPTURE kullanım alanı için YUV ve JPEG resimleri arasındaki RMS (bir sinyalin kare ortalama değeri) farkı% 3'ten azdır; desteklenen tüm kullanım alanları için YUV resimleri arasındaki RMS farkı, STILL_CAPTURE kullanım alanındaki YUV resimlerinden% 10'dan azdır.

scene2_c

test_num_faces

Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle yüz algılamayı test eder.

Test edilen API'ler:

Geç: 3 yüz bulur.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

CDD'deki 2.2.7.2 Kamera bölümünde belirtildiği gibi S performans sınıfı için JPEG yakalama gecikmesini test eder.

Geçti: Her iki birincil kamera için de kendi ışıklandırma koşullarında (3000K) CTS kamera Performans Testi tarafından ölçülen 1080p çözünürlükte camera2 JPEG yakalama gecikmesi 1.000 ms'den az OLMALIDIR.

test_camera_launch_perf_class

CDD'deki 2.2.7.2 Kamera bölümünde belirtildiği gibi S performans sınıfı için kamera başlatma gecikmesini test eder.

Geçti: Her iki birincil kamera için de kendi ışıklandırma koşullarında (3000K) CTS kamera Performans Testi tarafından ölçülen camera2 başlatma gecikmesi (kameranın ilk önizleme çerçevesine açılması) 600 ms'den az OLMALIDIR.

test_default_camera_hdr

CDD'nin 2.2.7.2 Kamera bölümünde belirtildiği gibi, performans sınıfı 15 için varsayılan kamera yakalamanın Ultra HDR olduğunu test eder.

Geçti: Performans sınıfı 15 cihaz için varsayılan kamera paketi yakalaması Ultra HDR OLMALIDIR.

scene2_d

test_preview_num_faces

Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle önizlemede yüz algılamayı test eder.

Test edilen API'ler:

Geç: Yüz sınır kutularında yüz yer işaretleri bulunan 3 yüz bulur.

scene2_e

test_continuous_picture

Kayıt isteği ilk ayarıyla 50 VGA çözünürlüğündeki kareler yakalanır android.control.afMode = 4 (CONTINUOUS_PICTURE).

Test edilen API'ler:

Geçti: 3A sistemi, 50 karelik bir çekimin sonuna kadar yerleşir.

test_num_faces

Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle yüz algılamayı test eder.

Test edilen API'ler:

Geç: 3 yüz bulur.

scene2_f

scene2_f, beyaz arka plan ve beyaz giysilerle üç yüz içeriyor. Yüzlerde çok çeşitli cilt tonları ve arka planla yüksek kontrast olmalıdır.

scene2_f.png

scene2_f

test_preview_num_faces

Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle yüz algılamayı test eder.

Test edilen API'ler:

Geç: Yüz sınır kutularında yüz yer işaretleri bulunan 3 yüz bulur.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

scene2_g

scene2_g, beyaz arka plan ve beyaz giysilerle üç profil yüzü içeriyor. Yüzlerde çok çeşitli ten tonları ve arka planla yüksek kontrast olmalıdır.

scene2_g.png

scene2_g

test_preview_num_faces

Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle yüz algılamayı test eder.

Test edilen API'ler:

Geç: Yüz sınır kutularında yüz yer işaretleri bulunan 3 yüz bulur.

test_preview_num_faces

test_preview_num_faces

sahne3

Sahne3, ISO12233 grafiğini kullanır ve çoğu test, grafik çıkarıcı yöntemi kullanarak sahnedeki grafiği bulur. Bu nedenle, kaydedilen resimlerin çoğunda 1, 2 veya 4 numaralı sahnelerdeki resimler gibi kenarlıklar yoktur, yalnızca grafik bulunur. Grafik bulucu'nun en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir.

test_edge_enhancement

android.edge.mode parametresinin doğru şekilde uygulanıp uygulanmadığını test eder. Her kenar modu için yeniden işlenmeyen resimleri yakalar ve çıkış resminin keskinliğini ve yakalama sonucu meta verilerini döndürür. Belirli bir kenar modu, hassasiyet, pozlama süresi, odak mesafesi ve çıkış yüzeyi parametresi içeren bir yakalama isteğini işler.

Geç: HQ modu (2), OFF modundan (0) daha keskin. FAST modu (1), OFF modundan daha keskindir. HQ modu, FAST modundan daha keskin veya FAST moduna eşit.

Test edilen API'ler:

Etkilenen kamera parametreleri:

  • EDGE_MODE

test_edge_enhancement_edge=0

test_edge_enhancement_edge=0.jpg

test_edge_enhancement_edge=1

test_edge_enhancement_edge=1.jpg (hızlı mod)

test_edge_enhancement_edge=2

test_edge_enhancement_edge=2.jpg (yüksek kalite modu)

test_flip_mirror

Resmin CDD Bölüm 7.5.2 Ön Kamera [C-1-5] uyarınca doğru yönde olup olmadığını test eder.

Yansıtılmış, ters çevrilmiş veya döndürülmüş resimler, ortasına yakın bir yerdeki elmas özelliğiyle tanımlanabilir.

Geç: Resim çevrilmemiş, aynalanmış veya döndürülmemiş.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_imu_drift

Cihaz sabitken ve yüksek çözünürlüklü önizleme çekerken, eylemsiz ölçüm biriminin (IMU) 30 saniye boyunca kararlı çıkışı olup olmadığını test eder.

Test edilen API'ler:

Geçiş:

  • Jiroskopun kayması, test süresi boyunca 0,01 rad'den azdır.
  • Jiroskop okumasının varyansı, test süresi boyunca 1E-7 rad2/s2/Hz'den azdır.
  • Dönme vektörünün kayması, test süresi boyunca 0,01 rad'den azdır.
  • (Henüz zorunlu kılınmadı) Jiroskopun kayması saniyede 1 dereceden azdır.

test_imu_drift_gyro_drift.png

test_imu_drift_gyro_drift.png

test_imu_drift_rotation_vector_drift.png

test_imu_drift_rotation_vector_drift.png

test_landscape_to_portrait

Yatay moddan dikey moda geçerken geçersiz kılma işlevinin yatay sensörlerde düzgün çalışıp çalışmadığını test eder.

Test edilen API'ler:

Geçti: Test, beklenen döndürme değerine sahip bir grafik bulabilir (yataytan dikeye geçerken geçersiz kılma devre dışıyken 0 derece, etkinleştirildiğinde 90 derece).

test_landscape_to_portrait

test_landscape_to_portrait.png

test_lens_movement_reporting

Lens hareketi işaretinin düzgün şekilde raporlanıp raporlanmadığını test eder. İlk 12 kare optimum odak mesafesinde (3A tarafından bulunan) ve son 12 kare minimum odak mesafesinde olacak şekilde 24 karelik bir seri çekim yapar. 12. kare civarında lens hareket ederek keskinliğin düşmesine neden oluyor. Lens son konuma hareket ettikçe keskinlik sonunda sabitlenir. Mercek hareketi işareti, merceğin optimum odak mesafesinde sabit olduğu ilk birkaç karede ve merceğin minimum odak mesafesinde sabit olduğu son birkaç karede keskinliğin orta düzeyde olduğu tüm karelerde belirtilmelidir. Lensin hareket ettiği tam kare önemli değildir: Kontrol edilen şey, lens hareket ederken hareket işaretinin doğrulanmasıdır.

Test edilen API'ler:

Geç: Keskinlik değişikliği olan karede lens hareketi işareti True.

Başarısız olma mekanizmaları:

  • test_log.DEBUG içindeki lens_moving: True (android.hardware.camera2.CaptureResult#LENS_STATE = 1) yalnızca keskinliğin değişmediği karelerde doğrulanır.
  • test_log.DEBUG içinde lens_moving: False (android.hardware.camera2.CaptureResult#LENS_STATE = 0) olan kareler, optimum odak mesafesindeki ilk birkaç kareye veya minimum odak mesafesindeki son birkaç kareye kıyasla keskinlik farkına sahiptir.

test_reprocess_edge_enhancement

Kenar iyileştirme için desteklenen yeniden işleme yöntemlerinin düzgün çalışıp çalışmadığını test eder. Belirli bir yeniden işleme kenar modu ile yakalama isteğini işler ve yeniden işleme kenar modları devre dışıyken yakalama için farklı modları karşılaştırır.

Test edilen API'ler:

Geçti: Farklı kenar modlarının keskinliği doğrudur. HQ (mod 2), OFF'ten (mod 0) daha keskin ve farklı modlar arasındaki iyileştirme benzerdir.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

sahne4

4. sahne, kare içinde beyaz arka plan üzerinde siyah bir daireden oluşur. 4. sahnedeki testler hizalamaya duyarlı olabilir. Bu nedenle, 15 sürümünden itibaren DUT ve grafik hizalamasının kontrolünü etkinleştirmek için araç dizininde check_alignment.py simgesini kullanabilirsiniz.

sahne4

sahne4

test_30_60fps_preview_fov_match

30 FPS ve 60 FPS önizleme videolarının aynı görüş alanına sahip olup olmadığını test eder. Testte biri 30 FPS, diğeri 60 FPS olmak üzere iki video çekilir. Her videodan temsili bir kare seçilir ve iki videodaki görüş alanı değişikliklerinin spesifikasyonlara uygun olduğundan emin olmak için analiz edilir. Dairenin en boy oranının sabit kaldığını, dairenin merkezinin sabit kaldığını ve dairenin yarıçapının sabit kaldığını test eder.

Test edilen API'ler:

Geçti: Resimler uzatılmamış, resimlerin ortasındaki fark %3'ten fazla değil ve 30 FPS ile 60 FPS videolar arasındaki maksimum en boy oranı değişikliği en fazla %7,5'tir.

Başarısız olma mekanizmaları:

  • 30 FPS videodaki dairenin boyutu, 60 FPS videodaki dairenin boyutundan önemli ölçüde farklı.
  • Çekilen resimdeki daire, işleme ardışık düzeni tarafından bozuluyor.
  • Çekilen resimdeki daire, resmin yüksekliğini veya genişliğini azaltan aşırı en boy oranı yakalama isteği nedeniyle kırpılmıştır.
  • Çekilen resimdeki dairenin ortasında yansıma var ve daire tamamen dolu görünmüyor.

test_aspect_ratio_and_crop

Resimlerin resim ardışık düzeninde beklenmedik şekilde bozulup bozulmadığını veya kırpılıp kırpılmadığını test eder. Tüm biçimlerde bir dairenin fotoğrafını çeker. Dairenin bozulmadığını, dairenin resmin ortasından hareket etmediğini ve dairenin farklı en boy oranları veya çözünürlüklerle yanlış şekilde boyut değiştirmediğini doğrular.

Test edilen API'ler:

Geç: Resimler uzatılmaz, resimlerin ortasındaki fark %3'ten fazla olmaz ve mümkün olan maksimum görüş alanı (FoV) korunur.

Başarısız olma mekanizmaları:

  • Kamera, çekilen sahnenin ortasındaki tablette gösterilen daireyle hizalanmıyor.
  • Çekilen resimdeki daire, işleme ardışık düzeni tarafından bozuluyor.
  • Düşük çözünürlüklü resim, görüntü ardışık düzeninde iki kez kırpılır. Bu işlem, yüksek ve düşük çözünürlüklü resimler arasında farklı bir görüş alanı oluşturur.
  • Çekilen resimdeki daire, resmin yüksekliğini veya genişliğini azaltan aşırı en boy oranı yakalama isteği nedeniyle kırpılmıştır.
  • Çekilen resimdeki dairenin ortasında yansıma var ve daire tamamen dolu görünmüyor.

test_multi_camera_alignment

Çok kameralı sistemler için kamera konumlandırmasıyla ilgili kamera kalibrasyon parametrelerini test eder. Çok kameralı fiziksel alt kameraları kullanarak fiziksel kameralardan biriyle fotoğraf çeker. Dairenin merkezini bulur. Dairenin merkezini her kamera için dünya koordinatlarına yansıtır. Dünya koordinatlarında kameraların daire merkezleri arasındaki farkı karşılaştırır. Dünya koordinatını piksel koordinatlarına yeniden yansıtır ve geçerlilik kontrolü olarak orijinallerle karşılaştırır. Kameraların odak uzunluklarının farklı olup olmadığını kontrol ederek daire boyutlarını karşılaştırır.

Test edilen API'ler:

Geçti: Kamera kalibrasyon verileri ve odak uzunlukları kullanılarak çekilen resimlere kıyasla, yansıtılan resimlerdeki daire merkezleri ve boyutları beklendiği gibidir.

Başarısız olma mekanizmaları:

  • LENS_INTRINSIC_CALIBRATION, LENS_POSE_TRANSLATION veya LENS_POSE_ROTATION, gerçek kalibrasyon verileri değil, tasarım değerleridir.
  • Kamera sistemi, test kurulumu için uygun değil. Örneğin, RFoV test düzeneğiyle geniş ve ultra geniş kamera sistemini test etme. Daha fazla bilgi için Kamera ITS-in-a-box SSS1 başlıklı makaleyi inceleyin.

test_preview_aspect_ratio_and_crop

Hareketsiz görüntüler için test_aspect_ratio_and_crop testine benzer şekilde bu test de önizleme çerçevelerinin uygunsuz şekilde uzatılmadığından veya kırpılmadığından emin olmak için desteklenen önizleme biçimlerini kontrol eder. Dairenin en boy oranının değişmediğinden, kırpılan resimlerde dairenin karenin ortasında kaldığından ve sabit bir biçimde veya farklı çözünürlüklerde dairenin boyutunun değişmediğinden emin olur (görüş alanı kontrolü).

Test edilen API'ler:

Geç: Resimler uzatılmaz, resimlerin ortasındaki fark %3'ten fazla olmaz ve mümkün olan maksimum görüş alanı korunur.

test_preview_stabilization_fov

Görüş alanının uygun şekilde kırpıldığından emin olmak için desteklenen önizleme boyutlarını kontrol eder. Testte, biri önizleme sabitleme ON, diğeri önizleme sabitleme OFF olan iki video çekilir. Her videodan temsili bir kare seçilir ve iki videodaki görüş alanı değişikliklerinin spesifikasyonlara uygun olduğundan emin olmak için analiz edilir.

Test edilen API'ler:

Geç: Dairenin en boy oranı yaklaşık olarak sabit kalır, dairenin merkez konumu sabit kalır ve dairenin boyutu en fazla %20 değişir.

test_video_aspect_ratio_and_crop

Tüm video formatlarında kare içinde daire videoları çeker. Ana kareleri ayıklayıp dairenin en boy oranının değişmediğinden, kırpılan resimlerde dairenin ortada kaldığından ve dairenin boyutunun sabit bir biçimde veya farklı çözünürlükte değişmediğinden emin olur (görüş alanı kontrolü).

Test edilen API'ler:

Geç: Video kareleri uzatılmamış, karelerin merkezi %3'ten fazla farklı değil ve mümkün olan maksimum görüş alanı korunuyor.

sahne5

5. sahne için tekdüze aydınlatılmış gri bir sahne gerekir. Bu işlem, kamera merceğinin üzerine yerleştirilen bir difüzör tarafından gerçekleştirilir. Aşağıdaki difüzörü öneririz: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168.

Sahneyi hazırlamak için kameranın önüne bir difüzör takın ve kamerayı yaklaşık 2.000 lükslük bir ışık kaynağına doğru tutun. scene5 için çekilen resimlerde, belirgin bir özellik olmayan dağınık ışık gereklidir. Aşağıda örnek bir resim verilmiştir:

sahne5

scene5 capture

test_lens_shading_and_color_uniformity

Lens gölgelendirme düzeltmesinin uygun şekilde uygulanıp uygulanmadığını ve tek renkli tekdüze bir sahnenin renginin eşit şekilde dağıtılıp dağıtılmadığını test eder. Bu testi, otomatik 3A ile bir YUV kare üzerinde gerçekleştirir. Lens gölgelendirmesi, y kanalına göre değerlendirilir. Belirtilen her örnek blok için ortalama y değerini ölçer ve merkez y değeriyle karşılaştırarak geçer veya geçersiz sonucunu belirler. Renk tekdüzeliği testi, r/g ve b/g alanında değerlendirilir.

Test edilen API'ler:

Geç: Testin geçebilmesi için resmin belirtilen yarıçapında r/g ve b/g değerinin varyansı% 20'den az olmalıdır.

scene6

Sahne6, benzersiz şekilde tanımlanabilen ArUco işaretçilerinden oluşan bir ızgaradır. scene6'taki testler hizalamaya duyarlı olabilir. Bu nedenle, 15 sürümünden itibaren DUT ve grafik hizalamasının kontrolünü etkinleştirmek için tools dizininde check_alignment.py simgesini kullanabilirsiniz.

scene6

scene6

test_in_sensor_zoom

Kırpılmış RAW resimler oluşturan kamera sensör içi yakınlaştırma özelliğinin davranışını test eder.

Akış kullanım alanı CROPPED_RAW olarak ayarlandığında test, yakınlaştırma aralığında iki çekim yapar: tam görüş alanı (FoV) RAW görüntüsü ve kırpılmış RAW görüntüsü. Test, resimleri RGB dizilerine dönüştürür, tam boyutlu kırpılmış RAW resmini SCALER_RAW_CROP_REGION tarafından bildirilen boyuta küçültür ve iki resim arasındaki 3D karesi alınmış ortalama (RMS) farkı hesaplar.

Test edilen API'ler:

Geçti: Ölçeği küçültülmüş kırpılmış RAW resim ile tam FoV RAW resim arasındaki 3D karesi alınmış ortalama (RMS) fark, testte belirlenen eşik değerinden azdır.

test_zoom

Ultra geniş lensten geniş lense kamera yakınlaştırma davranışını test eder. Yakınlaştırma aralığında çekim yapar ve kamera yakınlaştırdıkça ArUco işaretçilerinin büyüyüp büyümediğini kontrol eder. Test, merkez işaretçisinin konumunun her yakalamada tahmin edilebilir şekilde değişip değişmediğini de kontrol eder. Merkez işaretçisinin ortasından görüntü merkezine olan mesafe, fiziksel bir kamera geçişine kadar yakınlaştırma oranına göre sabit bir hızda değişebilir veya fiziksel bir kamera geçişinden sonra aynı işaretçinin konumuna doğru monoton bir şekilde değişebilir. Jetpack Kamera Uygulaması (JCA), testten önce cihaza yüklenmiş olmalıdır.

Test edilen API'ler:

Geçti: Kameranın doğru şekilde yakınlaştırdığından emin olmak için yakalanan ArUco işaretçisinin göreceli boyutu istenen yakınlaştırma oranına göre doğrudur ve işaretçi ile resim merkezi arasındaki mesafe, test açıklamasında belirtilen ölçütlere göre değişir.

test_zoom

test_zoom: Merkeze en yakın ArUco işaretçisinin dış çizgisini bulmak için kullanılır.

test_low_latency_zoom

Kameranın düşük gecikmeli yakınlaştırma davranışını test eder. android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) ile yakınlaştırma aralığında çekim yapar ve çıkış resimlerindeki işaretçilerin, çekim meta verilerindeki yakınlaştırma oranlarıyla eşleşip eşleşmediğini kontrol eder. 3A'yı birleştirmek ve çekim yapmak için aynı kamera yakalama oturumu kullanılır.

Test edilen API'ler:

Geç: Yakalanan işaretçinin göreli boyutu, yakınlaştırma oranı sonucu meta verilerine göre doğrudur.

test_preview_video_zoom_match

Video önizlemesi ve video çıkışının, kayıt ve yakınlaştırma sırasında aynı çıkışı görüntüleyip kaydettiğini test eder. Farklı yakınlaştırma oranlarında merkeze en yakın işaretçi boyutunu hesaplar ve yakınlaştırma oranı arttıkça işaretçi boyutunun artıp artmadığını kontrol eder.

Test edilen API'ler:

Geç: Kaydedilen işaretçi, video ve önizlemede istenen yakınlaştırma oranına göre doğru boyuta sahiptir.

HD_1280x720_key_frame.png

HD_1280x720_anahtar_kare.png (yakınlaştırmadan önce)

preview_1280x720_key_frame.png

preview_1280x720_key_frame.png (zum yapmadan önce)

HD_1280x720_key_frame_zoomed.png

HD_1280x720_anahtar_kare.png (yakınlaştırmadan sonra)

preview_1280x720_key_frame_zoomed.png

preview_1280x720_key_frame.png (yakınlaştırmadan sonra)

test_preview_zoom

Her önizleme çerçevesinin yakınlaştırma oranının, ultra geniş lensten geniş lense kadar ilgili çekim meta verileriyle eşleşip eşleşmediğini test eder. Test, yakınlaştırma aralığı boyunca önizleme kareleri alır ve merkeze en yakın ArUco işaretçisini bulur. Ardından test, merkez işaretçisinin konumunun her yakalamada tahmin edilebilir şekilde değişip değişmediğini kontrol eder. Merkez işaretçisinin ortasından görüntü merkezine olan mesafe, fiziksel bir kamera geçişine kadar yakınlaştırma oranına göre sabit bir hızda değişebilir veya fiziksel bir kamera geçişinden sonra aynı işaretçinin konumuna doğru monoton bir şekilde değişebilir.

Test edilen API'ler:

Geç: Seçilen ArUco işaretçisinin göreli boyutu, tüm önizleme kareleri için ilgili yakalama sonucunun bildirilen yakınlaştırma oranıyla doğrudur. Seçilen işaretçinin resmin ortasına olan göreli mesafesi, tüm önizleme çerçevelerinin ilgili yakalama sonucunun bildirilen yakınlaştırma oranı için doğrudur.

test_zoom

Seçilen işaretçiyi merkeze en yakın şekilde gösteren test_preview_zoom resimleri

test_session_characteristics_zoom

CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION bölümünde listelenen tüm desteklenen oturum yapılandırmaları için yakınlaştırma oranı aralığını test eder. Bu yapılandırmaların her biri için CameraDeviceSetup#isSessionConfigurationSupported doğru döndürürse test, CameraDeviceSetup#getSessionCharacteristics içinde döndürülen yakınlaştırma oranı aralığına ulaşılıp ulaşılamayacağını doğrular.

Test edilen API'ler:

Geç: CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION'te listelenen her desteklenen SessionConfiguration için hem minimum hem de maksimum yakınlaştırma oranına ulaşılabilir.

scene7

Sahne7, her biri farklı bir renkle doldurulmuş dört eşit çeyreğe bölünmüş dikdörtgen bir çerçevedir. Dikdörtgenin ortasında, keskinlik kontrollerini sağlayan eğimli bir kenar grafiği bulunur. Değişen yakınlaştırma oranlarında ana dikdörtgen çerçevenin doğru koordinatlarını elde etmeye yardımcı olmak için dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır.

scene7

scene7

test_multi_camera_switch

Bu test, farklı yakınlaştırma oranlarında önizleme kaydı sırasında ultra geniş (UW) ve geniş (W) lensler arasında geçiş yapılmasının benzer RGB değerleriyle sonuçlandığını doğrular.

Test, dinamik önizleme kaydı yapmak ve fiziksel kameranın değiştiği noktayı belirlemek için önceden tanımlanmış aralıktaki farklı yakınlaştırma oranlarını kullanır. Bu nokta, ultra geniş lensten geniş lense geçiş noktasını gösterir.

Geçiş noktasında ve öncesinde çekilen kareler otomatik pozlama (AE), otomatik beyaz denge (AWB) ve otomatik odaklama (AF) açısından analiz edilir.

AE kontrolü, hem ultra geniş lens hem de geniş lens resimlerinde parlaklık değişikliğinin beklenen aralık içinde olmasını sağlar. AWB kontrolü, hem ultra geniş lens hem de geniş lens resimlerinde R/G ve B/G oranlarının eşik değerleri dahilinde olup olmadığını doğrular. AF kontrolü, keskinlik tahmini değerini ultra geniş ve geniş lens görüntüleri arasındaki ortalama gradyan büyüklüğüne göre değerlendirir.

Bu testi gerçekleştirirken moire etkisi sonuçları etkileiyorsa Kamera ITS onaylı tabletler listesinden daha yüksek çözünürlüklü bir tablet kullanın.

Test edilen API'ler:

Geçti: Testin geçebilmesi için AE ve AWB kontrollerinin geçmesi gerekir. AF kontrol sonuçları yalnızca günlük kaydı amacıyla kullanılır. Her kontrol için geçerli olan kriterler şunlardır:

  • AE kontrolü: Cihaz hem ae_regions hem de awb_regions'yi destekliyorsa ultra geniş ve geniş lens resimleri arasındaki parlaklık değişimi (Y değeri), tüm renk yamaları için% 4'ten az olmalıdır. Yalnızca ae_regions destekleniyorsa ölçütleri yalnızca gri renk yaması değerleri karşılamalıdır.
  • AWB kontrolü: Cihaz hem ae_regions hem de awb_regions'yi destekliyorsa ultra geniş ve geniş lens resimlerinin R/G ve B/G değerleri arasındaki fark, gri renk yaması için% 3'ten, diğer renk yamaları için ise% 10'dan az olmalıdır.
  • AF kontrolü: Geniş lensle çekilen görüntünün keskinliği, ultra geniş lensle çekilen görüntünün keskinliğinden daha yüksek olmalıdır.

test_multi_camera_switch_gray_uw_y

Ultra geniş lensle çekilmiş gri yama

test_multi_camera_switch_gray_w_y

W lens ile çekilmiş gri yama

scene8

Sahne 8, dört eşit bölgeye bölünmüş dikdörtgen bir çerçevedir. Her bölge, farklı bir pozlamayla çekilmiş veya farklı bir renk gölgesiyle (mavi gölge, artırılmış pozlama, azaltılmış pozlama, sarı gölge) yerleştirilmiş bir portre içerir. Ana dikdörtgen çerçevenin doğru koordinatlarını elde etmek için dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır.

scene8

scene8

test_ae_awb_regions

Farklı otomatik pozlama (AE) ve otomatik beyaz denge (AWB) bölgelerinde kayıt önizlemesi yapılırken RGB ve parlaklık değerlerinin farklı olup olmadığını test eder.

Test, her kadranda iki saniye boyunca AE ve AWB ölçümü gerçekleştirerek sekiz saniyelik bir önizleme kaydı yapar. Ardından test, her bölgenin önizleme kaydından bir kare çıkarır ve aşağıdaki AE ve AWB kontrollerini gerçekleştirmek için çıkarılan kareleri kullanır:

  • AE kontrolü: Bölgeyi azalan pozlamayla ölçen karenin, bölgeyi artan pozlamayla ölçen kareye kıyasla% 1'den fazla bir artışla daha yüksek bir luma değerine sahip olduğunu doğrular. Bu, karanlık bir bölgenin ölçümü yapılırken görüntülerin aydınlatıldığını doğrular.
  • Otomatik beyaz dengesi kontrolü: Mavi ölçüm bölgesi olan karedeki kırmızı/mavi oranının (resmin ortalama RGB değerlerinin) sarı ölçüm bölgesi olan kareden %2'den fazla yüksek olduğunu doğrular. Bu, sarı (sıcak) veya mavi (soğuk) bir bölgeyi ölçerken görüntülerin dengeli bir RGB değerine sahip olduğunu doğrular.

Test edilen API'ler:

Geçti: Hem AE hem de AWB kontrolleri geçti.

test_ae_awb_regions_dark_region

Artırılmış pozlamayla karanlık bölgeyi kadraja alma

test_ae_awb_regions_light_region

Pozlamayı azaltarak daha açık bir bölgeyi ölçen kare

Başarısız olma mekanizmaları:

  • Bu test için dört ArUco işaretçisinin de doğru şekilde algılanması önemlidir. İlk algılama başarısız olursa sistem, resmin siyah beyaz sürümünü kullanarak ikinci bir algılama geçişi dener. Aşağıdaki gri tonlamalı resim, ikincil işleme adımını temsil etmektedir.

    ArUco işaretçilerinin hizalanmaması

test_color_correction_mode_cct

Farklı renk sıcaklıkları ve tonlarında COLOR_CORRECTION_MODE testleri yapar, RGB oranlarındaki değişiklikleri scene8 çekim sahnesine göre doğrular.

Test edilen API'ler:

Geç: RGB oranları, seçilen renk sıcaklıklarına ve tonlarına göre beklenen artışları veya azalmaları gösterir.

Atlama ölçütlerini test etme

Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_color_correction_mode_cct testi atlanır:

sahne9

Scene9, JPEG sıkıştırma algoritmalarını zorlamak için çok düşük tekrarlanabilirliğe sahip bir sahne oluşturmak amacıyla rastgele boyut ve renkte binlerce daireden oluşur.

sahne9

sahne9

test_jpeg_high_entropy

Kamera JPEG sıkıştırmasının, yüksek entropi ve JPEG kalite faktörü %100 olarak ayarlanmış sahne9'da çalıştığını test eder. Tablette görüntülenen sahnenin kamera görüş alanını doldurması için yakınlaştırma faktörü artırılır.

Test edilen API'ler:

Geçti: JPEG dosyası düzgün şekilde sıkıştırılır, yazılır ve diskten tekrar okunur.

test_jpeg_quality

Kameranın JPEG sıkıştırma kalitesini test eder. JPEG kalitesini android.jpeg.quality üzerinden adım adım uygular ve Quantization Tables'ın doğru şekilde değişmesini sağlar.

Test edilen API'ler:

Geç: Kalite arttıkça kesme matrisi azalır. (Matris, bölme faktörünü temsil eder.)

test_jpeg_quality

Pixel 4 arka kamerası luma/chroma DQT matrisi ortalamaları ve JPEG kalitesi karşılaştırması

test_jpeg_quality başarısız oldu

Başarısız test örneği

Çok düşük kaliteli resimlerde (jpeg.quality < 50) kesme matrisinde sıkıştırmanın artmadığını unutmayın.

scene_video

scene_video sahnesi bir video sahnesidir. Bu resim, beyaz bir arka planda farklı kare hızlarında ileri geri hareket eden dört farklı renkli daireden oluşur.

scene_video

test_preview_frame_drop

İstenen önizleme kare hızının dinamik bir sahnede korunup korunmadığını test eder. Bu test, üçüncü taraf uygulamalarına maruz kalan tüm kameralarda çalışır.

Test edilen API'ler:

Geçti: Önizleme kare hızı, istenen kare hızı aralığının maksimum değerindedir ve art arda gelen kareler arasındaki ortalama varyasyon, testte belirlenen göreceli tolerans değerinden azdır.

scene_extensions

scene_extensions testleri, kamera uzantıları içindir ve test ortamının hassas bir şekilde kontrol edilmesini gerektirdiğinden Kamera ITS-in-a-Box kullanılmalıdır. Ayrıca, tüm ışık sızıntıları kontrol edilmelidir. Bu işlem için test düzeneğini, DUT'yu ve tableti bir örtüyle örtmeniz ve DUT'un ön ekranından ışık sızıntısını önlemeniz gerekebilir.

scene_hdr

scene_hdr sahnesi, solda bir portre ve sağda düşük kontrastlı bir QR kodundan oluşur.

scene_hdr

scene_hdr

test_hdr_extension

HDR uzantısını test eder. Uzantı etkinken ve devre dışıyken çekim yapar ve uzantının QR kodunu daha kolay algılanabilir hale getirip getirmediğini kontrol eder.

Test edilen API'ler:

Geç: HDR uzantısı, QR kodunu algılamak için gereken kontrast değişikliklerinin sayısını azaltır veya QR kodundaki degradeyi azaltır.

scene_low_light

scene_low_light sahnesi, siyah arka plan üzerinde farklı gri tonlarında karelerden oluşan bir ızgaradan oluşur ve kare ızgara kırmızı bir dış çizgiyle sınırlandırılmıştır. Kareler, Hilbert eğrisi yönü olarak düzenlenir.

scene_low_light

scene_low_light

test_night_extension

Gece uzamasını test eder. Uzantı etkinken ekran görüntüsü alır ve aşağıdakileri gerçekleştirir:

  • 20 karenin varlığını algılar
  • Her kareyle sınırlı olan luma değerini hesaplar
  • Hilbert eğrisi ızgara yönelimine göre ilk 6 karenin ortalama luma değerini hesaplar
  • 5. ve 6. karelere (kare6 - kare5) kadar art arda gelen karelerin luma değeri arasındaki farkı (örneğin, kare2 - kare1) hesaplar ve hesaplanan beş farkın ortalamasını bulur.

Android 16 veya sonraki sürümleri çalıştıran cihazlarda, yakalama isteği, kare ızgamasını çevreleyen dikdörtgene karşılık gelen bir ölçülü bölge içerir. Bu ekleme, eşik geçiş ölçütlerini değiştirir.

Test edilen API'ler:

Geçiş:

  • Android 16 veya sonraki sürümleri çalıştıran cihazlarda, ilk 6 karenin ortalama luma değeri en az 80, 5. ve 6. karelere kadar olan art arda gelen karelerin luma değeri arasındaki ortalama fark en az 18,75 olmalıdır.
  • 15 ve daha eski sürümleri çalıştıran cihazlarda ilk 6 karenin ortalama luma değeri en az 85, 5. ve 6. karelere kadar olan art arda gelen karelerin luma değeri arasındaki ortalama fark en az 17 olmalıdır.

Aşağıdaki parlaklık grafiğinde, başarılı bir test sonucunun nasıl göründüğü gösterilmektedir.

scene_low_light_night_pass

test_low_light_boost_extension

Düşük Işık Güçlendirme AE modunu test eder. Camera2, düşük ışık güçlendirme AE modunu destekliyorsa bu test Camera2 için gerçekleştirilir. Gece modu kamera uzantısı destekleniyorsa ve uzantı düşük ışık güçlendirme AE modunu destekliyorsa bu test gece modu kamera uzantısı için de gerçekleştirilir. Bu test, AE modunu düşük ışık güçlendirme olarak ayarlar, önizlemeden bir kare alır ve aşağıdakileri gerçekleştirir:

  • 20 kutunun varlığını algılar
  • Her kutunun sınırladığı luma değerini hesaplar
  • Hilbert eğrisi ızgara yönelimine göre ilk 6 karenin ortalama luma değerini hesaplar
  • 5. ve 6. karelere (kare6 - kare5) kadar art arda gelen karelerin luma değeri arasındaki farkı (örneğin, kare2 - kare1) hesaplar ve hesaplanan beş farkın ortalamasını bulur.

Android 16 veya sonraki sürümleri çalıştıran cihazlarda, yakalama isteği, kare ızgamasını çevreleyen dikdörtgene karşılık gelen bir ölçülü bölge içerir. Bu ekleme, eşik geçiş ölçütlerini değiştirir.

Test edilen API'ler:

Geçiş:

  • Android 16 veya sonraki sürümleri çalıştıran cihazlarda, ilk 6 karenin ortalama luma değeri en az 54, 5. ve 6. karelere kadar olan art arda gelen karelerin luma değeri arasındaki ortalama fark en az 17 olmalıdır.

  • 15 ve daha eski sürümleri çalıştıran cihazlarda, ilk 6 karenin ortalama luma değeri en az 70, 5. ve 6. karelere kadar olan art arda gelen karelerin luma değeri arasındaki ortalama fark en az 18 olmalıdır.

scene_tele

scene_tele testleri için önemli bir şart, grafik mesafesinin en az telefoto lensin minimum odak mesafesi olmasıdır. Bu minimum odak mesafesi cihazlar arasında farklılık gösterebileceğinden, kurulumunuzu belirli bir telefoto kameraya uyacak şekilde yapılandırmanız gerekir.

Geniş ve tele kameranın odak mesafesine göre sahne_tele ayarı

Test donanımının kurulumu hakkında daha fazla bilgi için Telefon uzatma aparatı kurulumu başlıklı makaleyi inceleyin.

scene6_tele

scene6_tele sahnesi, beyaz arka plan üzerinde bir ArUco işaretçi ızgarasıdır.

Modüler aparat'ta scene6_tele çekimleri fazla pozlanmış görünüyorsa modüler aparatın ön plakasını çıkarın.

remove_phone_mount

WFoV test aparatının uzantıdan bağlantısını kesin ve telefon montajını çıkarın.

remove_front_plate

Ön plakayı çıkarın.

test_zoom_tele

Geniş lensten telefoto lense kadar kamera yakınlaştırma davranışını test eder. Bu test, test_zoom ile aynıdır ancak geniş lensten telefoto lense kadar kamera yakınlaştırma davranışını test eder.

Test edilen API'ler:

Geçti: Kameranın doğru şekilde yakınlaştırdığından emin olmak için yakalanan ArUco işaretçisinin göreceli boyutu istenen yakınlaştırma oranına göre doğrudur ve işaretçinin resim merkezine olan mesafesi test_zoom parametresinde listelenen ölçütlere göre değişir.

test_preview_zoom_tele

Geniş lensten telefoto lense kadar önizleme kareleri için kamera yakınlaştırma davranışını test eder. Bu test, test_preview_zoom ile aynıdır ancak geniş lensten telefoto lense kadar olan önizleme kareleri için kamera yakınlaştırma davranışını test eder.

Test edilen API'ler:

Geçti: Kameranın doğru şekilde yakınlaştırdığından emin olmak için yakalanan ArUco işaretçisinin göreceli boyutu istenen yakınlaştırma oranına göre doğrudur ve işaretçinin resim merkezine olan mesafesi test_preview_zoom parametresinde listelenen ölçütlere göre değişir.

scene7_tele

scene7_tele, scene7 ile aynıdır ancak telefoto lens testi için ayarlanmıştır. Dört eşit bölüme ayrılmış ve her biri farklı bir renkle doldurulmuş dikdörtgen bir çerçevedir. Dikdörtgenin ortasında, keskinlik kontrollerini sağlayan eğimli bir kenar grafiği bulunur. Değişen yakınlaştırma oranlarında ana dikdörtgen çerçevenin doğru koordinatlarını elde etmeye yardımcı olmak için dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır.

test_multi_camera_switch_tele

Bu test, farklı yakınlaştırma oranlarında önizleme kaydı sırasında geniş (W) ve telefoto (tele) lensler arasında geçiş yapılmasının benzer RGB değerleriyle sonuçlandığını doğrular.

Test, dinamik önizleme kaydı yapmak ve fiziksel kameranın değiştiği noktayı belirlemek için önceden tanımlanmış aralıktaki farklı yakınlaştırma oranlarını kullanır. Bu nokta, W lensten tele lense geçiş noktasını gösterir.

Geçiş noktasında ve öncesinde çekilen kareler otomatik pozlama (AE), otomatik beyaz denge (AWB) ve otomatik odaklama (AF) açısından analiz edilir.

AE kontrolü, hem geniş hem de tele lens resimlerinde parlaklık değişikliğinin beklenen aralık içinde olmasını sağlar. AWB kontrolü, R/G ve B/G oranlarının hem geniş hem de tele lens görüntüleri için eşik değerleri dahilinde olduğunu doğrular. AF kontrolü, keskinlik tahmini değerini W ve tele lens görüntüleri arasındaki ortalama gradyan büyüklüğüne göre değerlendirir.

Test edilen API'ler:

Geçti: Testin başarılı olması için AE, AWB ve AF kontrollerinin hepsinin başarılı olması gerekir. Her kontrol için geçerli olan kriterler şunlardır:

  • AE kontrolü: Geniş ve tele lens resimleri arasındaki parlaklık değişimi %4'ten az olmalıdır.
  • Otomatik beyaz dengesi kontrolü: LAB renk alanında, geniş ve telefoto için R/G ile B/G arasındaki delta C 10'u aşamaz.
  • AF kontrolü: Tele lensin görüntü keskinliği, geniş lensten daha yüksek olmalıdır.

scene_flash

scene_flash testleri için sensör füzyon kutusunda karanlık bir sahne gerekir.

test_auto_flash

Arka ve ön kameralarda karanlık bir sahnede otomatik flaşın tetiklenip tetiklenmediğini test eder. Ön kameralarda otomatik flaş, sahneyi aydınlatmak için fiziksel bir flaş birimi yerine ekranı kullanır. Test, otomatik flaş etkinken karo resminin ortasının daha parlak olup olmadığını kontrol ederek otomatik flaşın tetiklendiğini doğrular. Otomatik flaş özelliğini tetiklemek için test düzeneğindeki ışıklar kapatılmalıdır. Işıklar Arduino denetleyiciyle otomatik olarak kapatılabilir. Testin doğru çalışması için sahnenin tamamen karanlık olması gerekir. Jetpack Kamera Uygulaması (JCA), testten önce cihaza yüklenmiş olmalıdır. Arka kameralarda otomatik flaş, AE durumunun tetiklenmesine bağlıdır ancak ön kameralarda otomatik flaş, AE'ye bağlı değildir ve her zaman tetiklenir.

Test edilen API'ler:

Geç: Otomatik flaş etkinken karo görüntüsünün ortası, tüm kameralar için orijinal sahne görüntüsünden daha parlaktır.

test_flash_strength

SINGLE modunda flaş gücü kontrolünün doğru şekilde uygulanıp uygulanmadığını test eder.

Cihaz, SINGLE modunda kamera kullanılırken flaş gücü kontrolünü destekliyorsa flaş gücünün, istenen farklı güç seviyeleriyle değiştiğini doğrular. Flaşın gücünü kontrol etme özelliğinin farklı AE_MODES ile çalıştığını doğrular. Örneğin, otomatik pozlama modu ON veya OFF ise flaş gücü seviyesi parlaklık üzerinde etkili olur. Mod ON_AUTO_FLASH ise flaş gücü seviyesi parlaklık üzerinde etkili olmaz. Testi yapmak için test düzeneğindeki ışıklar kapatılmalıdır. Işıklar, Arduino kontrol cihazıyla otomatik olarak kapatılabilir. Testin düzgün çalışması için sahnenin tamamen karanlık olması gerekir.

Test edilen API'ler:

Geçiş:

Otomatik pozlama modu ON veya OFF olduğunda, flaş gücü seviyesi flaşsızdan FLASH_SINGLE_STRENGTH_MAX_LEVEL'a yükseldikçe resim yamalarının parlaklığı artar. Otomatik pozlama modu ON_AUTO_FLASH olduğunda, flaş gücü seviyesi flaş yok değerinden FLASH_SINGLE_STRENGTH_MAX_LEVEL değerine yükseldikçe resim yamalarını parlaklık farkı tolerans dahilindedir.

test_led_snapshot

LED anlık görüntülerinin görüntüde doygunluk veya renk tonu oluşturmadığı test edilir.

Bu testte, ışıkları kontrol etmek için sensör füzyon kutusuna bir ışıklandırma kontrol cihazı eklenir. Işıklar OFF olarak ayarlandığında test, AUTO_FLASH modu ON olarak ayarlanmışken bir çekim yapar. Bu yakalama sırasında test, aePrecapture tetikleyicisi START olarak ayarlanmış bir ön yakalama sırası çalıştırır ve yakalama amacını Preview olarak ayarlayarak yakalamayı flaşlı olarak gerçekleştirir.

Flaş nedeniyle yakalamada belirgin bir sıcak nokta bulunduğundan test, yakalamanın tamamının flaş görüntü ortalamasını hesaplar ve değerin (68, 102) aralığında olup olmadığını doğrular. Test, görüntünün makul bir şekilde beyaz dengeli olup olmadığını kontrol etmek için R/G ve B/G oranlarını hesaplar ve oranların 0,95 ile 1,05 arasında olup olmadığını doğrular.

Test edilen API'ler:

Geçti: R/G ve B/G oranları 0,95 ile 1,05 arasındadır. Flaşlı görüntü ortalaması (68, 102) aralığındadır.

test_night_mode_indicator

Kameranın düşük ışık koşullarında çalışıp çalışmadığını ve gece modu kamera uzantısı hareketsiz görüntüsünden faydalanıp faydalanmayacağını belirten gece modu göstergesinin işlevini test eder. Bu özellik yalnızca gece modu kamera uzantılarını destekleyen cihazlarda kullanılabilir.

Bu test, gece modu göstergesinin kamera önizlemesi sırasındaki ışık koşullarını doğru şekilde yansıtıp yansıtmadığını kontrol eder. Test aşağıdaki adımları uygular:

  1. Başlatma: Test, bir ItsSession başlatır ve kamera özelliklerini alır. Ayrıca ışıklandırma kontrol cihazıyla bağlantı kurar.
  2. Atlama Koşulları: Cihaz gerekli API düzeyini veya gece modu göstergesi özelliğini desteklemiyorsa test atlanır.
  3. Camera2 Oturumu:
    • Test, Camera2 oturumu kullanarak bir önizleme yakalama oturumu başlatır.
    • Işık açılır ve bir önizleme karesi yakalanır.
    • Test, gece modu göstergesinin OFF durumunda olduğunu doğrular.
    • Işık kapatılır ve bir önizleme karesi yakalanır.
    • Test, gece modu göstergesinin ON durumunda olduğunu doğrular.
  4. Kamera uzantısı oturumu:
    • Test, Camera2 oturumunda olduğu gibi aynı prosedürü EXTENSION_NIGHT uzantılı bir CameraExtension oturumunda tekrarlar.
  5. Temizleme: Test, ItsSession'yi kapatır ve aydınlatma kontrol cihazını serbest bırakır.

Test edilen API'ler:

Geçiş:

  • Işık açıkken gece modu göstergesi OFF durumunda olmalıdır.
  • Işık kapalıyken gece modu göstergesi ON durumunda olmalıdır.
  • Hem Camera2 hem de CameraExtension oturumları için geçerlidir.

test_preview_min_frame_rate

Karanlık bir sahnede önizleme kare hızının doğru şekilde düşürüldüğünü test eder. Bu testin düzgün çalışması için test aparatındaki ışıkların kontrolör tarafından veya test operatörü tarafından manuel olarak kapatılması gerekir.

Test edilen API'ler:

Geçti: Önizleme kare hızı, istenen kare hızı aralığının minimumundadır ve kareler arasındaki varyasyon, testte belirlenen mutlak tolerans değerinden azdır.

test_torch_strength

TORCH modunda flaş gücü kontrolünün doğru şekilde uygulanıp uygulanmadığını test eder.

Cihaz, TORCH modunda kamera kullanılırken flaş gücünü kontrol etmeyi destekliyorsa el feneri gücünün, istenen farklı güç seviyelerine göre değiştiğini doğrular. Flaşın gücünü kontrol etme özelliğinin farklı AE_MODES ile çalıştığını doğrular. Örneğin, otomatik pozlama modu ON veya OFF ise flaş gücü seviyesi parlaklık üzerinde etkili olur. Mod ON_AUTO_FLASH ise flaş gücü seviyesi parlaklık üzerinde etkili olmaz. Video çekimi oturumunu simüle ederek el feneri gücünün bir grup boyunca aynı kaldığını doğrular. Testi yapmak için test düzeneğindeki ışıklar kapatılmalıdır. Işıklar Arduino kontrol cihazıyla otomatik olarak kapatılabilir. Testin doğru çalışması için sahnenin tamamen karanlık olması gerekir.

Test edilen API'ler:

Geçiş:

Otomatik pozlama modu ON veya OFF olduğunda, flaş gücü seviyesi flaşsızdan FLASH_TORCH_STRENGTH_MAX_LEVEL'a yükseldikçe görüntü patlaması yamalarının parlaklığı artar. Otomatik pozlama modu ON_AUTO_FLASH olduğunda, flaş gücü seviyesi flaşsızdan FLASH_TORCH_STRENGTH_MAX_LEVEL'a yükseldikçe görüntü patlaması yamalarının parlaklıktaki farkı tolerans dahilindedir.

sensor_fusion

Sensör birleştirme testleri, dama tahtası deseni ve ArUco işaretçilerinin önünde belirli bir telefon hareketi gerektirir. En iyi sonuçları elde etmek için test grafiğinin düz bir şekilde monte edildiğinden emin olun. Düz olmayan grafikler, testlerin çoğunun rotasyon hesaplamalarını etkiler. Grafik, 17 inç x 17 inç (43 x 43 cm) boyutunda basılarak sensör füzyon kutusunun arkasını doldurmalıdır. sensor_fusion testleri, Sensor Fusion Box ile otomatikleştirilebilir.

Sensör birleştirme grafiği

Sensör birleştirme grafiği

Rig&#39;deki sensör füzyonu grafiği

Sensör birleştirme kutusunun arkasını dolduran sensör birleştirme grafiği

test_lens_intrinsic_calibration

Optik görüntü sabitleme (OIS) nedeniyle lens hareket ettiğinde merceğin optik merkezinin doğal olarak değişip değişmediğini test eder. Lens doğal örnekleri destekleniyorsa lens doğal örneklerinin optik merkezinin, optik görüntü sabitleme (OIS) nedeniyle lens hareket ettiğinde değişip değişmediğini test eder.

Test edilen API'ler:

Geç: Lensin optik merkezi bir piksel veya daha fazla değişir. Lens doğal örnekleri destekliyorsa lens doğal örneklerinin optik merkezleri bir piksel veya daha fazla değişir.

test_lens_intrinsic_calibration_example.png

Her kare için ana noktaların piksel cinsinden değişimlerini gösteren test_lens_intrinsic_calibration grafiği örneği

test_multi_camera_frame_sync

Mantıksal kamera tarafından yakalanan kare zaman damgalarının, zaman damgasını belirlemek için dama tahtasındaki karelerin açılarını hesaplayarak 10 ms içinde olup olmadığını test eder.

Test edilen API'ler:

Geç: Telefon döndürüldüğünde her kameradan alınan görüntüler arasındaki açı önemli ölçüde değişmez.

test_preview_distortion

Çeşitli yakınlaştırma düzeylerinde çekilen her önizleme karesinde bozulmanın düzeltilip düzeltilmediğini test eder. Test, her önizleme karesi için kameranın iç ve dış özelliklerine göre ideal noktaları hesaplar. Örnek resimde ideal noktalar yeşil, gerçek noktalar ise kırmızı renkle gösterilmiştir. Bozulma hatası, gerçek noktalar ile ideal noktalar arasındaki karesi alınmış ortalama (RMS) piksel mesafesine göre hesaplanır. Resimdeki yeşil ve kırmızı vurgular, bozulma hatası alanını görsel olarak algılamak için kullanılır.

test_preview_distortion_example.jpg

İdeal noktaların yeşil, gerçek noktaların kırmızı olduğu dama tahtası resmi

Test edilen API'ler:

Geçti: Her önizleme karesinin normalleştirilmiş bozulma hatası, testte belirlenen eşiğin altındadır.

test_preview_stabilization

Sabitlenmiş önizleme videosunun jiroskoptan daha az döndüğünü test eder.

Test edilen API'ler:

Geç: Kareler üzerindeki maksimum açı rotasyonu, jiroskop rotasyonunun% 70'inden azdır.

Aşağıda, sabitleme özelliğinin kullanıldığı ve kullanılmadığı örnek videolar verilmiştir.

  • Sabitleme içeren örnek video

  • Sabitleme yapılmamış örnek video

test_sensor_fusion

AR ve VR uygulamaları için kamera ile jiroskop arasındaki zaman damgası farkını test eder. Telefon, dama tahtası deseninin önünde 10 kez 90 derece döndürülür. Hareket, gidiş dönüş yaklaşık 2 saniye sürer. Jiroskop eklenmemişse veya zaman damgası kaynağı REALTIME parametresi etkinleştirilmemişse bu test atlanır.

test_sensor_fusion testi bir dizi grafik oluşturur. Hata ayıklama için en önemli iki grafik şunlardır:

  • test_sensor_fusion_gyro_events: Test sırasında telefondaki jiroskop etkinliklerini gösterir. X ve y yönünde hareket, telefonun montaj plakasına güvenli bir şekilde monte edilmediğini gösterir ve testin geçme olasılığını azaltır. Nokta grafiğindeki döngü sayısı, kareleri kaydetme yazma hızına bağlıdır.

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations: Jiroskopun ve kamera etkinliklerinin hizalamasını gösterir. Bu nokta grafiği, kamera ile jiroskop arasındaki hareketin +/-1 ms'ye kadar eşleştiğini göstermelidir.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

Test edilen API'ler:

Geçti: CDD bölüm 7.3.9 Yüksek Hassasiyetli Sensörler [C-2-14] uyarınca kamera ve jiroskop zaman damgalarının ofseti 1 ms'den azdır.

Başarısız olma mekanizmaları:

  • Ofset hatası: Kamera jiroskopu ofseti +/-1 ms içinde doğru şekilde kalibre edilmemiştir.
  • Kare düşmesi: Ardışık olarak 200 kare yakalamak için ardışık düzen yeterince hızlı değildir.
  • Soket hataları: adb, testi yürütecek kadar uzun süre DUT'ya güvenilir bir şekilde bağlanamıyor.
  • Grafik düz bir şekilde monte edilmemiştir. test_sensor_fusion_plot_rotations grafiğinde, kamera düz olmayan grafik bölümlerinde dönerken jiroskop ve kamera dönüşümünün önemli ölçüde değiştiği kareler vardır.
  • Kamera düz bir şekilde monte edilmemiştir. test_sensor_fusion_gyro_eventsNokta grafiği, X ve Y düzlemlerindeki hareketi gösterir. Arka kamera genellikle telefonun gövdesinin geri kalanına göre daha yüksek bir çıkıntıya sahip olduğundan, telefonun arka tarafı montaj plakasına monte edilirken eğim oluşturduğundan bu arıza ön kameralarda daha yaygındır.

test_video_stabilization

Stabilize edilmiş videonun jiroskoptan daha az döndüğünü test eder.

Test edilen API'ler:

Geç: Kareler üzerindeki maksimum açı rotasyonu, jiroskop rotasyonunun% 60'ından azdır.

Aşağıda, sabitleme özelliğinin kullanıldığı ve kullanılmadığı örnek videolar verilmiştir.

  • Sabitleme içeren örnek video

  • Sabitleme yapılmamış örnek video

test_video_stabilization_jca

Jetpack Kamera Uygulaması (JCA) kullanılarak çekilen videonun, jiroskoptan daha az döndüğünü gösteren testler. JCA, test edilmeden önce cihaza yüklenmelidir.

Test edilen API'ler:

Geç: JCA kullanılarak çekilen videodan ayıklanan karelerdeki maksimum açı rotasyonu, jiroskop rotasyonunun% 70'inden azdır.

feature_combination

feature_combination testleri, birden fazla kamera özelliği aynı anda etkinleştirildiğinde özelliklerin düzgün çalıştığını doğrular. Bu testlerde, sensör birleştirme sahnesinde kullanılan damalı tahta resmi kullanılır.

test_feature_combination

Kamera cihazı tarafından desteklenen farklı yayın kombinasyonlarının, video sabitleme modunun, hedef FPS aralığının, 10 bit HDR videonun ve Ultra HDR'nin tüm kombinasyonlarını test eder.

16 ve sonraki sürümlerde test, desteklenen özelliklerin tüm kombinasyonlarını çalıştırır ve sonuçları bir proto dosyasına kaydeder. Başarısızlık iddiaları yalnızca isSessionConfigurationSupported işlevinin True döndürdüğü özellik kombinasyonları için çağrılır.

Test edilen API'ler:

İlet: Desteklenen her özellik kombinasyonu için:

  • Önizleme sabitleme açıksa önizleme akışı sabitlenir.
  • Önizleme kare hızı, yapılandırılan AE_TARGET_FPS_RANGE aralığına girmelidir.
  • Kaydedilen önizleme akışının renk alanı, ayarlanan alanla eşleşiyor.
  • Ultra HDR çekimde geçerli bir kazanç haritası olmalıdır.

scene_ip

(Android 16'dan itibaren kullanılabilir) Sahne scene_ip, çekilen resimler arasındaki önemli farklılıkları belirlemek için varsayılan kamera uygulaması ile Jetpack kamera uygulaması (JCA) arasında resim eşleşmesi kontrolleri sağlar. JCA, sosyal medya uygulaması yakalamalarını kopyalar ve sosyal medya uygulamalarının daha sonra işleyip hassaslaştıracağı bir referans görüntü sağlar.

Donanım kurulumu koşulları

scene_ip testleri için aşağıdaki donanım kurulumu gereklidir:

  • Testler, 2. nesil kameralı kutulu ITS'de yürütülür.
  • Test ortamını kontrol etmek için Gen2 donanımının parçası olan ışıklandırma ve servo kontrolörleri kullanılır.
  • Gen2 donanımının içine bir test özelliği grafiği yerleştirilir.

test_chart_gen2

Gen2chart_sample.png

Atlama ölçütlerini test etme

Aşağıdaki ölçütlerden herhangi biri karşılanırsa scene_ip testleri atlanır:

  • Cihazın ilk API düzeyi (first_api_level) 35 veya daha düşüktür.
  • Cihaz, ön ve arka birincil kamera cihazlarına sahip bir telefon cihazı değildir (ör. tablet veya TV).

test_default_jca_ip

Varsayılan kamera uygulamasını ve JCA'yı kullanarak kontrollü ışıklandırma koşullarında test özelliği grafiğinin fotoğraflarını çeker ve aşağıdaki kontrolleri gerçekleştirir:

  • FoV: Varsayılan kamera uygulamasının ve JCA yakalamalarının aynı FoV'ye sahip olup olmadığını kontrol eder. Bu kontrol, yakalanan grafik resminden ayıklanan merkez QR kodu özelliğini kullanır.

  • Parlaklık: Varsayılan kamera uygulaması ile JCA arasında ölçülen parlaklık farkının 10'u aşmadığı kontrol edilir. Bu kontrol, parlaklık ölçümü için dinamik aralık yamasını kullanır.

  • Beyaz dengesi: Varsayılan kamera uygulaması ile JCA arasındaki beyaz dengesi farkının 4'ü aşmadığından emin olur. Bu kontrol, parlaklık ölçümü için dinamik aralık yamasını kullanır.

Temel bölüm geçti: Test, görüş alanı, parlaklık ve beyaz denge kontrollerini geçmiştir. Android 16'da bu test zorunlu değildir (NOT_YET_MANDATED).