Kamera ITS testleri

Bu sayfa, Android Uyumluluk Test Paketi (CTS) Doğrulayıcı'nın bir parçası olan Camera Image Test Suite (ITS) kapsamındaki testlerin kapsamlı bir listesini sunar. ITS testleri işlevsel testlerdir, yani görüntü kalitesini ölçmezler, ancak tanıtılan tüm kamera işlevlerinin beklendiği gibi çalıştığı anlamına gelir. Bu belge, geliştiricilerin ve test uzmanlarının, bireysel testlerin ne yaptığını ve test hatalarında nasıl hata ayıklanacağını anlamalarına olanak tanır.

Testler sahneye göre aşağıdaki gibi gruplandırılmıştır:

  • scene0 : Meta verileri, titreşimi, jiroskopu, titreşimi yakalayın
  • sahne1 : Pozlama, hassasiyet, EV telafisi, YUV - JPEG/RAW
  • sahne2 : Yüz algılama
  • scene3 : Kenar iyileştirme, mercek hareketi
  • scene4 : En boy oranı, kırpma, görüş alanı
  • scene5 : Lens gölgeleme
  • sahne6 : Yakınlaştırma
  • sensor_fusion : Kamera/jiroskop zamanlama ofseti

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

sahne0

Scene0 testleri, belirli bir sahne bilgisi gerektirmez. Ancak, jiroskop ve titreşim testi için telefonun sabit olması gerekir.

test_burst_capture

Tüm yakalama işlem hattının, tam boyutlu yakalama hızına ve CPU süresine ayak uydurabileceğini doğrular.

Test edilen API'ler:

Başarılı: Tam boyutlu görüntülerden oluşan bir seri yakalar ve kamera zaman aşımını önleyecek kadar hızlıdır.

test_capture_result_dump

Bir yakalama sonucunun manuel yakalamadan döndürüldüğünü test eder ve ardından dökümü alır.

Test edilen API'ler:

Pass: Yakalamayı tamamlar ve yakalama sonuçlarını döker.

test_gyro_bias

Cihaz sabitken jiroskopun kararlı çıkışa sahip olup olmadığını test eder. Veriler, ortalama 20 veri noktası olarak çizilir.

Test edilen API'ler:

Başarılı: Cayro okumasının deltası zamanla 0,01'den azdır.

test_gyro_bias_plot.png

test_gyro_bias_plot.png

test_jitter

Kamera zaman damgalarındaki titremeyi ölçer.

Test edilen API'ler:

Başarılı: Çerçeveler arasında en az 30 ms'lik bir delta vardır.

test_jitter_plot.png

test_jitter_plot.png (Küçük y ekseni aralığına dikkat edin. Bu çizimde seğirme aslında küçüktür.)

test_metadata

Meta veri girişlerinin geçerliliğini test eder. Yakalama sonuçlarına ve kamera özellikleri nesnelerine bakar. Bu test, görüntü içeriği önemli olmadığı için auto_capture_request pozlama ve kazanç değerlerini kullanır.

Test edilen API'ler:

Başarılı: Donanım düzeyi, rollingShutterSkew , frameDuration etiketleri, timestampSource , croppingType , blackLevelPattern , pixel_pitch , FOV, hyperfocal distance mevcut ve geçerli değerlere sahip.

test_param_sensitivity_burst

android.sensor.sensitivity parametresinin burst'te doğru şekilde uygulandığını test eder. Yalnızca çıktı meta verilerini inceler.

Test edilen API'ler:

Başarılı: Çıktı verilerinin hata toleransı %0,2'den azdır.

test_read_write

Cihazın doğru pozu yazdığını test eder ve yakalama meta verilerini geri okuyarak değerler kazanır.

Test edilen API'ler:

Geçiş: Okuma ve yazma değerleri tüm çekimlerde eşleşir.

test_sensor_events

Cihazın, sensör füzyon desteğini tanıtan cihazlar için sensör olaylarını sorguladığını ve yazdırdığını test eder. Beklenen sensörler ivmeölçer, jiroskop ve manyetometredir. Bu test yalnızca ekran açıksa, yani cihaz bekleme modunda değilse çalışır.

Test edilen API'ler:

Başarılı: Her sensör için olaylar alınır.

test_solid_color_test_pattern

Düz renk test modellerinin kameranın sessize alınması için uygun şekilde oluşturulduğunu test eder. Kamera sessize alma destekleniyorsa, düz renk test desenleri desteklenmelidir. Kamera sessize alma desteklenmiyorsa, düz renk testi desenleri yalnızca bu özelliğin bildirilmesi durumunda test edilir.

RAW görüntüler destekleniyorsa renk ataması da test edilir. Test edilen renkler siyah, beyaz, kırmızı, mavi ve yeşildir. RAW görüntüleri desteklemeyen kameralar için yalnızca siyah test edilir.

Test edilen API'ler:

Başarılı: Desteklenen katı test desenleri doğru renktedir ve görüntüde düşük sapma vardır.

test_test_pattern

Her geçerli test deseni için çerçeveleri yakalamak üzere android.sensor.testPatternMode parametresini test eder ve çerçevelerin düz renkler ve renk çubukları için doğru şekilde oluşturulduğunu kontrol eder. Bu test aşağıdaki adımları içerir:

  1. Desteklenen tüm test desenleri için görüntüler yakalar.
  2. Düz renk testi deseni ve renk çubukları için basit bir doğruluk kontrolü gerçekleştirir.

Test edilen API'ler:

Geçer: Desteklenen test desenleri doğru şekilde oluşturulur.

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

Test deseninin RAW'dan YUV'ye dönüşümünü lineer tonemap ile test eder. Bu test, tonemap dönüştürme için mükemmel bir görüntü deseni oluşturmak üzere android.sensor.testPatternMode = 2 (COLOR_BARS) gerektirir. Lineer tonemap ve ideal görüntü girişi ile ardışık düzenin uygun renk çıktılarına sahip olmasını sağlar ( test_test_patterns dayanır).

Test edilen API'ler:

Başarılı: 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ü olaylarının aynı zaman alanında olup olmadığını test eder.

Test edilen API'ler:

Başarılı: 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:

Başarılı: Cihaz, kamera ses kısıtlama API'sı tarafından sessize alındığında titremez.

sahne 1

sahne1 gri bir grafiktir. Gri grafik, kamera görüş alanının ortadaki %30'unu kapsamalıdır. Merkez bölgenin hiçbir özelliği olmadığı için gri grafiğin 3A'yı (otomatik pozlama, otomatik beyaz dengesi, otomatik odaklama) orta düzeyde zorlaması bekleniyor. Ancak, yakalama isteği, 3A'nın birleşmesi için yeterli özellikleri içeren tüm sahneyi belirtir.

RFoV kameralar, WFoV veya RFoV test teçhizatında test edilebilir. Bir RFoV kamera WFoV test teçhizatında test edilirse, 3A'nın yakınsamasına yardımcı olmak için FoV'daki gri grafiğin bazı sınırlarını sağlamak üzere tablo ⅔ oranında ölçeklenir.

sahne 1

sahne1: Tam boyutlu tablo (solda). ⅔ ölçekli tablo (sağda).

test_3a

3A'nın yakınsamasını orta derecede zorlu bir hedefle test eder.

Test edilen API'ler:

Başarılı: 3A birleşir ve döndürülen 3A değerleri geçerlidir.

test_ae_af

3A otomatik pozlama (AE) ve otomatik odaklama (AF) algoritmalarını ayrı ayrı test eder.

Test edilen API'ler:

Başarılı: 3A birleşir ve döndürülen 3A değerleri yasaldır.

test_ae_precapture_trigger

Ön yakalama tetikleyicisini kullanırken AE durum makinesini test eder. AE devre dışıyken beş manuel isteği yakalar. Son istek, AE devre dışı bırakıldığı için göz ardı edilmesi gereken bir AE ön yakalama tetikleyicisine sahiptir.

Test edilen API'ler:

Geçer: AE yakınsar.

test_auto_vs_manual

Otomatik ve manuel çekimleri yakalayan testler aynı görünüyor.

Test edilen API'ler:

Başarılı: Her bir yakalama sonucunda bildirilen manuel beyaz dengesi kazançları ve dönüşümü, kameranın 3A algoritmasından otomatik beyaz dengesi 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_siyah_beyaz

Cihazın tamamen siyah beyaz görüntüler ürettiğini test eder. İlki son derece düşük kazanç ve kısa pozlama ile siyah bir fotoğrafla sonuçlanır ve ikincisi son derece yüksek kazanç ve uzun pozla beyaz bir fotoğrafla sonuçlanır.

Test edilen API'ler:

Geçiş: Siyah beyaz görüntüler üretir. Doymuş beyaz görüntü kanalları, %1'den daha az bir hata payı ile [255, 255, 255] RGB değerlerine sahiptir.

test_black_white_blacktest_black_white_black
test_black_white_black.jpg test_black_white_white.jpg

test_black_white_plot_means

test_black_white_plot_means.png

test_burst_sameness_manual

Manuel yakalama ayarıyla 5 seri halinde 50 fotoğraf çeker ve hepsinin aynı olup olmadığını kontrol eder. Bu test, farklı şekilde işlenen ya da kusurları olan tek tük çerçeveler olup olmadığını belirlemek için kullanılabilir.

Test edilen API'ler:

Başarılı: Görüntüler görsel olarak ve RGB değerlerinde aynıdır.

Başarısız: Her patlamanın başlangıcında RGB ortalama grafiğinde bir ani 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_capture_result

Geçerli verilerin CaptureResult nesnelerinde geri gelip gelmediğini test eder. Otomatik, manuel ve otomatik yakalama yapar.

Test edilen API'ler:

Başarılı: Meta veriler tüm yakalamalar için geçerlidir ve manuel ayarlar ikinci otomatik yakalamaya sızmaz. Yakalamalar için mercek gölgeleme düzeltmesini çizer.

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_crop_region_raw

RAW akışlarının kırpılabilir olmadığını test eder.

Test edilen API'ler:

Başarılı: YUV görüntüleri ortalanır, ancak RAW görüntüler olmaz.

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ıştığını test eder. Tam bir görüntü çeker ve 5 farklı bölgeden (köşeler ve merkez) yamalar oluşturur. 5 bölge için kırpma ayarlı görüntüler çeker. Yama ve kırpılan görüntü değerlerini karşılaştırır.

Test edilen API'ler:

Başarılı: Kırpılan bölgenin görüntüsü, kırpılan görüntüye karşılık gelen yamayla eşleşir.

test_dng_noise_model

DNG ham model parametrelerinin doğru olduğunu doğrular. Çizim, bir dizi hassasiyet üzerinden yakalanan ham çekimlerde gri kartın orta parçasının ölçülen varyansını tasvir eder ve bu değerleri, kamera HAL'sindeki DNG gürültü modeli tarafından her bir hassasiyette beklenen varyansla karşılaştırır. Yakalama sonuç nesnelerinde döndürülen O,S parametreleri). DNG gürültü modeli hakkında daha fazla ayrıntı için DNG Gürültü Modeli ile ilgili aşağıdaki belgeyi indirin.

Test edilen API'ler:

Başarılı: DNG ham model parametreleri doğru. Beklenen RGB değerleri, ölçülen gerçek RGB değerleri ile eşleşir.

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_compensation_advanced

Pozlama değeri (EV) telafisinin uygulandığını test eder. Test, pozlamayı sekiz adımda artırır ve ölçülen parlaklığa karşı beklenen parlaklığı kontrol eder. Beklenen değerler, EV telafisi uygulanmadan 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 doyuma ulaşır. Beklenen değerler ve ö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:

Başarılı: Görüntüler, beş adımda aşırı pozlama olmadan artan pozlamayı gösterir.

test_ev_compensation_advanced_plot_means

test_ev_compensation_advanced_plot_means.png

test_ev_compensation_basic

CONTROL_AE_COMPENSATION_STEP ile oluşturulan bir aralık kullanılarak EV telafisinin uygulandığını test eder. Her telafi değerinde sekiz kare yakalanır.

Test edilen API'ler:

Başarılı: Artırılmış EV telafisi ayarıyla ışıktaki artışı yakalar ve her bir EV telafisi ayarı için yakalanan sekiz kare sabit ışık değerlerine sahiptir.

test_ev_compensation_basic

test_ev_compensation_basic.png

test_pozlama

ISO ve pozlama süresi değiştikçe sabit bir pozlamanın elde edildiğini test eder. Birbirini dengelemek için seçilen ISO ve pozlama süresine sahip bir dizi çekim yapar. Sonuçlar aynı parlaklığa sahip olmalıdır, ancak sekansın üzerinde görüntü daha gürültülü hale gelmelidir. Örnek piksel ortalama değerlerinin birbirine yakın olduğunu doğrular. Görüntülerin 0 veya 1'e sabitlenmemesini sağlar (bu, düz çizgiler gibi görünmelerini sağlar). Test, yapılandırma dosyanızda debug bayrağı ayarlanarak RAW görüntülerle de çalıştırılabilir.

Test edilen API'ler:

Başarılı: Görüntüler aynı parlaklığa sahiptir, ancak daha yüksek ISO ile daha gürültülü hale gelir. ISO*pozlama değeri test edilen kazanç alanı üzerinde sabit olduğunda RGB düzlemleri düzdür.

test_exposure_plot_means

test_exposure_plot_means.png

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

test_jpeg

YUV görüntülerini ve cihaz JPEG görüntülerini dönüştüren testler aynı görünür. Test, görüntünün ortadaki %10'luk bölümünü alır ve RGB değerini hesaplar ve bunların eşleştiğini doğrular.

Test edilen API'ler:

Başarılı: Her görüntü arasındaki ortalama RGB farkı %3'ten azdır.

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

test_latching

FULL ve LEVEL_3 kameralar için ayarların (pozlama ve kazanç) sağ kareye kilitlendiğini test eder. Çekimler arasında yakalama isteği parametrelerini değiştirerek arka arkaya istekleri kullanarak bir dizi çekim yapar. Görüntülerin beklenen özelliklere sahip olup olmadığını kontrol eder.

Test edilen API'ler:

Geçti: Görüntüler [2, 3, 6, 8, 10, 12, 13] ISO veya pozlamayı artırdı ve test_latching_plot_means.png daha yüksek RGB ortalamalarıyla görünüyor.

test_latching_i=00.jpgtest_latching_i=01.jpgtest_latching_i=02.jpg
test_latching_i=00.jpg test_latching_i=01.jpg test_latching_i=02.jpg
test_latching_i=03.jpgtest_latching_i=04.jpgtest_latching_i=05.jpg
test_latching_i=03.jpg test_latching_i=04.jpg test_latching_i=05.jpg
test_latching_i=06.jpgtest_latching_i=07.jpgtest_latching_i=08.jpg
test_latching_i=06.jpg test_latching_i=07.jpg test_latching_i=08.jpg
test_latching_i=09.jpgtest_latching_i=10.jpgtest_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 çevrilebileceğini test eder. Cihaz tek tip bir hedefe yöneltilmiş olarak bir dizi çekim yapar.

Test edilen API'ler:

Geçti: R, G, B değerleri artan hassasiyetle doğrusal olarak artmalıdır.

test_linearity_plot_means

test_linearity_plot_means.png

test_locked_burst

3A kilidini ve YUV patlamasını test eder (otomatik ayarı kullanarak). Bu test, MANUAL_SENSOR veya PER_FRAME_CONTROLS sahip olmayan sınırlı cihazlarda bile başarılı olacak şekilde tasarlanmıştır. Test, kare hızı kontrolü CTS'deyken YUV görüntü tutarlılığını kontrol eder.

Test edilen API'ler:

Başarılı: Yakalamalar 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

test_multi_camera_match

Cihazlardaki çoklu kameraların gri bir yama için benzer RGB değerleri verip vermediğini test eder.

Test edilen API'ler:

Başarılı: Farklı kameralar, aynı gri yama için benzer RGB değerleri üretir.

test_multi_camera+match_yuv_fl=4.38

test_multi_camera+match_yuv_fl=4.38.jpg

test_param_color_correction

android.colorCorrection.* parametrelerinin ayarlandığında uygulanıp uygulanmadığını test eder. Farklı dönüştürme ve kazanç değerleri ile çekimler yapar ve buna uygun olarak farklı göründüklerini test eder. Dönüştürme ve kazanımlar, çıktıyı giderek daha fazla kırmızı veya mavi yapmak için seçilir. Doğrusal bir ton haritası kullanır. Ton eşleme, daha sınırlı bir dinamik aralığa sahip bir ortamda yüksek dinamik aralıklı görüntülerin görünümüne yaklaşmak için bir renk kümesini diğerine eşlemek için görüntü işlemede kullanılan bir tekniktir.

Test edilen API'ler:

Başarılı: R ve B değerleri dönüşüme göre artar.

test_param_color_correction_plot_means

test_param_color_correction_plot_means.png

*X ekseni yakalama istekleridir: 0 = birlik, 1=kırmızı artırma, 2= mavi artırma

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 artışı)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (B takviyesi)

test_param_exposure_time

android.sensor.exposureTime parametresinin uygulandığını test eder.

Test edilen API'ler:

Geçiş: Her atış bir önceki atıştan daha parlaktır.

test_param_exposure_time_frame0

test_param_exposure_time_frame0.jpg

test_param_exposure_time_plot

test_param_exposure_time_plot.png

test_param_flash_mode

android.flash.mode parametresinin uygulanıp uygulanmadığını test eder. Pozlamayı manuel olarak karanlık tarafta olacak şekilde ayarlar, böylece flaşın patlayıp patlamadığı anlaşılır ve doğrusal bir ton haritası kullanır. Flaşın patlayıp patlamadığını doğrulamak için oluşturulmuş büyük bir degrade olup olmadığını görmek için döşeme görüntüsüyle merkezi kontrol eder.

Test edilen API'ler:

Başarılı: Döşeme görüntüsünün ortasında, flaşın patladığı anlamına gelen büyük bir eğim vardır.

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 uygulandığını test eder. Fotoğraf makinesi loş ışıktayken fotoğraf çeker. Yakalanan görüntünün gürültülü olmasını sağlamak için yüksek bir analog kazanç kullanır. NR kapalı, "hızlı" ve "yüksek kalite" için üç görüntü yakalar. Ayrıca düşük kazançlı ve NR kapalı bir görüntü yakalar ve bunun varyansını taban çizgisi olarak kullanır. SNR (Sinyal Gürültü Oranı) ne kadar yüksek olursa görüntü kalitesi o kadar iyi olur.

Test edilen API'ler:

Başarılı: SNR, farklı gürültü azaltma modlarına göre değişir ve aşağıdaki grafikle benzer şekilde davranır.

test_param_noise_reduction_plot_SNR'ler

test_param_noise_reduction_plot_SNRs.png

0: KAPALI, 1: HIZLI, 2: HQ, 3: MIN , 4: ZSL

test_param_noise_reduction_high_gain_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_reduction_high_gain_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_reduction_high_gain_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_reduction_high_gain_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_reduction_low_gain

test_param_noise_reduction_low_gain.jpg

test_param_sensitivity

android.sensor.sensitivity parametresinin uygulanıp uygulanmadığını test eder. Test, her çekim için sabit pozlama ile hassasiyeti 5 adımda artırır.

Test edilen API'ler:

Geçer: RGB merkez anlamına gelir %10 artan hassasiyetle daha parlak hale gelir.

test_param_sensitivity_iso=0055

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

test_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

test_param_sensitivity_plot

test_param_sensitivity_plot.png

test_param_shading_mode

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

Test edilen API'ler:

Başarılı: Gölgeleme modları değiştirilir ve mercek gölgeleme 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 çıktı görüntülerinin 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çmek:

  • test1: Her iki görüntünün de doğrusal bir ton haritası var, ancak n=1 daha dik bir eğime sahip. G (yeşil) kanalı, n=1 görüntü için daha parlaktır.
  • test2: Aynı ton haritası, ancak farklı uzunluk. Görüntüler aynı.
test_param_tonemap_mode_n=0.jpgtest_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

test_post_raw_sensitivity_boost

RAW sonrası hassasiyet artışını kontrol eder. Farklı hassasiyete sahip bir dizi RAW ve YUV görüntü yakalar, RAW hassasiyet artırma 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:

Başarılı: YUV görüntülerinin parlaklığı sabit kalırken, güçlendirme arttıkça RAW görüntüler daha koyu hale gelir

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_burst_sensitivity

Artan kazançlarla bir dizi ham görüntü yakalar ve gürültüyü ölçer. Seri çekimde yalnızca ham olarak yakalar.

Test edilen API'ler:

Pas: Kazanç arttıkça her atış bir önceki atıştan daha gürültülüdür.

Merkez istatistik ızgara hücresinin varyansını kullanır.

test_raw_burst_sensitivity_variance

test_raw_burst_sensitivity_variance.png

test_raw_exposure

Artan pozlama süresiyle bir dizi ham görüntü yakalar ve piksel değerlerini ölçer.

Test edilen API'ler:

Başarılı: ISO'yu (kazanç) artırmak, pikselleri ışığa karşı daha hassas hale getirir, böylece çizim sola doğru hareket eder.

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(10⁰ 1 ms'dir, 10¹ 10 ms'dir, 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_raw_sensitivity

Artan hassasiyetlere sahip bir dizi ham görüntü yakalar ve görüntünün merkezindeki %10'luk gürültüyü (varyans) ölçer. Her çekimin bir öncekinden daha gürültülü olduğunu test eder.

Test edilen API'ler:

Pas: Varyans her atışta artar.

test_raw_sensitivity_variance

test_raw_sensitivity_variance.png

test_reprocess_noise_reduction

İsteklerin yeniden işlenmesi için android.noiseReduction.mode uygulandığını test eder. Kamera loş ışıkta yeniden işlenmiş görüntüler yakalar. Yakalanan görüntünün gürültülü olmasını sağlamak için yüksek bir analog kazanç kullanır. NR kapalı, "hızlı" ve "yüksek kalite" için yeniden işlenmiş üç görüntü yakalar. Düşük kazanç ve NR kapalı ile yeniden işlenmiş bir görüntü yakalar ve bunun varyansını taban çizgisi olarak kullanır.

Test edilen API'ler:

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

Tipik SNR - NR_MODE grafiği

Tipik SNR - NR_MODE grafiği

test_tonemap_sequence

Farklı ton haritası eğrileriyle bir dizi çekimi test eder. Doğrusal bir ton haritasıyla 3 manuel çekim yapar. Varsayılan ton haritasıyla 3 manuel çekim yapar. Ardışık her çerçeve çifti arasındaki deltayı hesaplar.

Test edilen API'ler:

Geçiş: 3 özdeş çerçeve ve ardından 3 özdeş çerçeveden oluşan farklı bir set 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 boyutların ve biçimlerin çalıştığını test eder. YUV ve JPEG'in image_processing_utils modülü tarafından dönüştürüldüğünde aynı görünmesi için doğrusal bir ton haritasına sahip manuel bir istek kullanır. Görüntüler varsayılan olarak kaydedilmez, ancak debug_mode etkinleştirilerek kaydedilebilir.

Test edilen API'ler:

Başarılı: Tüm görüntü merkezleri, en yüksek çözünürlüklü YUV görüntüsünün %3'üne sahip RGB dönüştürülmüş görüntülerde maksimum RMS (bir sinyalin ortalama karekök değeri) farkına sahiptir.

test_yuv_jpeg_all

test_yuv_jpeg_all.png

test_yuv_plus_dng

Görüntü yakalama için bildirilen boyutların ve biçimlerin çalıştığını test eder.

Test edilen API'ler:

Başarılı: Test tamamlanır ve istenen görüntüleri döndürür.

test_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

Tek bir kareyi hem YUV hem de JPEG çıktıları olarak yakalamayı test eder. YUV ve JPEG'in image_processing_utils modülü tarafından dönüştürüldüğünde aynı görünmesi için doğrusal bir ton haritasına sahip manuel bir istek kullanır.

Test edilen API'ler:

Başarılı: YUV ve JPEG görüntüleri benzerdir ve %1'den daha az RMS (bir sinyalin ortalama karekök değeri) farkına sahiptir.

test_yuv_plus_jpg_jpg.jpgtest_yuv_plus_jpeg_yuv.jpg
test_yuv_plus_jpg_jpg.jpg test_yuv_plus_jpeg_yuv.jpg

test_yuv_plus_raw

Tek bir kareyi hem RAW hem de YUV çıktıları olarak yakalayan testler. Doğrusal ton haritasına sahip manuel bir istek kullanır, bu nedenle RAW ve YUV'nin aynı olması beklenir. RGB dönüştürülmüş görüntülerin merkez %10 RGB değerlerini karşılaştırır. android.shading.mode günlüğe kaydeder.

Test edilen API'ler:

Başarılı: YUV ve JPEG görüntüleri benzerdir ve %3,5'ten daha az RMS (bir sinyalin ortalama karekök değeri) farkına sahiptir.

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

test_yuv_plus_raw10

Tek bir kareyi hem RAW10 hem de YUV çıkışları olarak yakalayan testler. Doğrusal ton haritasına sahip manuel bir istek kullanır, bu nedenle RAW ve YUV'nin aynı olması beklenir. RGB dönüştürülmüş görüntülerin merkez %10 RGB değerlerini karşılaştırır. android.shading.mode günlüğe kaydeder.

Test edilen API'ler:

Başarılı: RAW10 ve YUV görüntüleri benzerdir ve %3,5'ten daha az RMS (bir sinyalin ortalama karekök değeri) farkına sahiptir.

test_yuv_plus_raw10_shading=1_rawtest_yuv_plus_raw10_shading=1_yuv
test_yuv_plus_raw10_shading=1_raw.jpg test_yuv_plus_raw10_shading=1_yuv.jpg

test_yuv_plus_raw12

Tek bir kareyi hem RAW12 hem de YUV çıkışları olarak yakalayan testler. Doğrusal ton haritasına sahip manuel bir istek kullanır, bu nedenle RAW ve YUV'nin aynı olması beklenir. RGB dönüştürülmüş görüntülerin merkez %10 RGB değerlerini karşılaştırır. android.shading.mode günlüğe kaydeder.

Test edilen API'ler:

Başarılı: RAW12 ve YUV görüntüleri benzerdir ve %3,5'ten daha az RMS (bir sinyalin ortalama karekök değeri) farkına sahiptir.

test_yuv_plus_raw12_shading=1_raw.jpgtest_yuv_plus_raw12_shading=1_yuv.jpg
test_yuv_plus_raw12_shading=1_raw.jpg test_yuv_plus_raw12_shading=1_yuv.jpg

sahne2_a

scene2_a'nın gri bir arka plana ve nötr bir giysiye sahip üç yüzü vardır. Yüzler, çok çeşitli cilt tonlarına sahip olacak şekilde seçilir.

sahne2_a

sahne2_a

test_auto_flash

Otomatik flaşın karanlık bir sahnede tetiklendiğini test eder. Döşeme görüntüsünün merkezinin büyük bir eğime sahip olduğunu kontrol ederek otomatik flaşın patladığını doğrular. Otomatik flaşı tetiklemek için tablet ve test teçhizatındaki ışıklar kapatılmalıdır. Tablet test ile kapatılır ve Arduino kontrolcüsü ile ışıklar otomatik olarak kapatılabilir. Testin düzgün çalışması için sahne tamamen karanlık olmalıdır. Bu nedenle, arka tablet açıklığı, sahne tableti tarafından tamamen kapatılmalı ve kaçak ışığın donanıma girmesini engellemek için ön açıklık bir açıklık ve DUT telefon ile kapatılmalıdır.

Test edilen API'ler:

Başarılı: Döşeme görüntüsünün ortasında, otomatik flaşın patladığı anlamına gelen büyük bir eğim vardır.

test_efektleri

Desteklenen kamera efektleri için kare yakalar ve bunların doğru oluşturulup oluşturulmadığını kontrol eder. Test yalnızca efektleri OFF ve MONO olarak kontrol eder, ancak desteklenen tüm efektler için görüntüleri kaydeder.

Test edilen API'ler:

Başarılı: Etkileri OFF olan sahne görüntüsünü ve efektleri MONO olarak ayarlanmış tek renkli bir görüntüyü yakalar.

test_efektleri_MONO

test_efektleri_MONO.jpg

test_format_combos

Çıktı biçimlerinin farklı kombinasyonlarını test eder.

Test edilen API'ler:

Başarılı: Tüm kombinasyonlar başarıyla yakalanır.

test_jpeg_quality

Kameranın JPEG sıkıştırma kalitesini test eder. JPEG niteliklerini android.jpeg.quality aracılığıyla adım adım ve Niceleme Tablolarının doğru şekilde değişmesini sağlar.

Test edilen API'ler:

Başarılı: Niceleme matrisi, kalite artışıyla birlikte azalır. (Matris bölme faktörünü temsil eder.)

test_jpeg_quality

Pixel 4 arka kamera luma/chroma DQT matrix ortalamaları ve JPEG kalitesi

test_jpeg_quality başarısız oldu

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

Çok düşük kaliteli görüntüler için (jpeg.quality < 50), niceleme matrisinde sıkıştırmada artış olmadığına dikkat edin.

test_num_faces

Yüz algılamayı test eder.

Test edilen API'ler:

Pas: Üç yüz bulur.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

sahne2_b

test_auto_per_frame_control

Otomatik yakalama istekleri için PER_FRAME_CONTROL özelliklerini test eder.

Test edilen API'ler:

Başarılı: PER_FRAME_CONTROL özelliklerinin tümü mevcut.

test_auto_per_frame_control_frame_1

test_auto_per_frame_control_frame_1.jpg

test_auto_per_frame_control_frame_10

test_auto_per_frame_control_frame_10.jpg

test_auto_per_frame_control_frame_29

test_auto_per_frame_control_frame_29.jpg

test_auto_per_frame_control_plot

test_auto_per_frame_control_plot.png

test_num_faces

Yüz sahnelerinde artan cilt tonu çeşitliliği ile yüz algılamayı test eder.

Test edilen API'ler:

Pas: 3 yüz bulur.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpg_capture_sameness

1920x1440 çözünürlüğünü aşmayan en büyük JPEG formatıyla aynı en boy oranına sahip en yaygın YUV ve JPEG formatlarını kullanarak iki görüntü yakalar. jpeg.quality 100 olarak ayarlar ve çift yüzey isteğini yakalar. Her iki görüntüyü de RGB dizilerine dönüştürür ve iki görüntü arasındaki 3B kök ortalama kare (RMS) farkını hesaplar.

Test edilen API'ler:

Başarılı: YUV ve JPEG görüntüleri benzerdir ve %1'den daha az RMS (bir sinyalin ortalama karekök değeri) farkına sahiptir.

sahne2_c

test_num_faces

Yüz sahnelerinde artan cilt tonu çeşitliliği ile yüz algılamayı test eder.

Test edilen API'ler:

Pas: 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.

Başarılı: Her iki birincil kamera için ITS aydınlatma koşullarında (3000K) CTS kamera Performans Testi ile ölçüldüğü üzere, 1080p çözünürlük için camera2 JPEG yakalama gecikmesinin < 1000ms olması GEREKİR.

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.

Başarılı: Her iki birincil kamera için ITS aydınlatma koşulları (3000K) altında CTS kamera PerformanceTest tarafından ölçüldüğü üzere camera2 başlatma gecikmesine (kamerayı ilk önizleme karesine açma) < 600ms sahip OLMALIDIR.

sahne2_d

test_num_faces

Yüz sahnelerinde artan cilt tonu çeşitliliği ile yüz algılamayı test eder.

Test edilen API'ler:

Pas: 3 yüz bulur.

sahne2_e

test_continuous_picture

50 VGA çözünürlüklü çerçeve, yakalama isteği ilk ayarı android.control.afMode = 4 (CONTINUOUS_PICTURE).

Test edilen API'ler:

Başarılı: 3A sistemi, 50 karelik bir yakalamanın sonunda yerleşir.

test_num_faces

Yüz sahnelerinde artan cilt tonu çeşitliliği ile yüz algılamayı test eder.

Test edilen API'ler:

Pas: 3 yüz bulur.

sahne3

Scene3, ISO12233 tablosunu kullanır ve çoğu test, sahnedeki grafiği bulmak için bir grafik çıkarıcı yöntemi kullanır. Bu nedenle, kaydedilen görüntülerin çoğunda sahne 1, 2 veya 4'teki görüntüler gibi kenarlıklar yoktur, sadece tablo vardır.

test_3a_tutarlılık

3A tutarlılığını test eder.

Test edilen API'ler:

Başarılı: 3A, tolerans dahilinde pozlama, kazanç, awb (otomatik beyaz dengesi) ve fd (odak mesafesi) için üç kez birleşir.

test_edge_enhancement

android.edge.mode parametresinin doğru uygulandığını test eder. Her bir kenar modu için yeniden işlenmeyen görüntüleri yakalar ve çıktı görüntüsünün ve yakalama sonucu meta verilerinin keskinliğini döndürür. Belirli bir kenar modu, hassasiyet, pozlama süresi, odak mesafesi ve çıktı yüzeyi parametresi ile bir yakalama talebini işler.

Başarılı: HQ modu (2), OFF modundan (0) daha keskin. FAST mod (1) OFF moddan daha keskin. HQ modu daha keskin veya FAST moda eşittir.

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 (high quality mode)

test_flip_mirror

Tests if image is properly oriented as per CDD section 7.5.2 Front-Facing Camera [C-1-5] .

Mirrored, flipped, or rotated images can be identified by the diamond feature near the center.

Pass: Image isn't flipped, mirrored or rotated.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_lens_movement_reporting

Tests if the lens movement flag is properly reported. Captures a burst of 24 images with the first 12 frames at the optimum focus distance (as found by 3A) and the last 12 frames at the minimum focus distance. Around frame 12, the lens moves causing the sharpness to drop. The sharpness eventually stabilize as the lens moves to the final position. The lens movement flag should be asserted in all frames where the sharpness is intermediate to sharpness in the first 10 frames with the lens stationary at optimum focal distance, and the final 10 frames where the lens is stationary in the minimum focal distance. The exact frame the lens moves isn't important: what is checked is that the movement flag is asserted when the lens is moving.

APIs tested:

Pass: Lens movement flag is True in the frame with sharpness change.

test_reprocess_edge_enhancement

Tests if supported reprocess methods for edge enhancement work properly. Processes a capture request with a given reprocess edge mode and compares different modes to capture with reprocess edge modes disabled.

APIs tested:

Pass: Sharpness for the different edge modes is correct. HQ (mode 2) is sharper than OFF (mode 0), and improvement between different modes is similar.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

scene4

Scene4 consists of a black circle on a white background inside a square.

scene4

scene4

test_aspect_ratio_and_crop

Takes pictures of a circle inside of a square over all formats. Verifies that the aspect ratio of the circle doesn't change, the cropped images keep the circle in center, and the circle size doesn't change for a constant format or with different resolution (field of view check).

APIs tested:

Pass: Images aren't stretched, the center of images don't differ by more than 3%, and the maximum possible FOV (field of view) is preserved.

test_multi_camera_alignment

Tests the multi camera system parameters related to camera spacing. Using the multi-camera physical sub-cameras, takes a picture with one of the physical cameras. Finds the circle center. Projects the circle center to the world coordinates for each camera. Compares the difference between the cameras' circle centers in world coordinates. Reprojects the world coordinate back to pixel coordinates and compares against originals as a validity check. Compares the circle sizes checking if the focal lengths of the cameras are different.

APIs tested:

Pass: Focal lengths and circles sizes are consistent.

test_preview_stabilization_fov

Checks the supported preview sizes to ensure the FoV is cropped appropriately. The test captures two videos, one with preview stabilization ON , and another with preview stabilization OFF . A representative frame is selected from each video, and analyzed to ensure that the FoV changes in the two videos are within spec.

APIs tested:

Pass: The circle aspect ratio remains about constant, the center location of the circle remains stable, and the size of circle changes no more that 20%. ie the FOV changes at most 20%

test_video_aspect_ratio_and_crop

Takes videos of a circle inside of a square over all video formats. Extracts the key frames, and verifies the aspect ratio of the circle doesn't change, the cropped images keep the circle in center, and the circle size doesn't change for a constant format or with different resolution (field of view check).

APIs tested:

Pass: Video frames aren't stretched, the center of frames don't differ by more than 3%, and the maximum possible FoV (field of view) is preserved.

scene5/diffuser

test_lens_shading_and_color_uniformity

Tests that the lens shading correction is applied appropriately, and color of a monochrome uniform scene is evenly distributed. Performs this test on a YUV frame with auto 3A. Lens shading is evaluated based on the y channel. Measures the average y value for each sample block specified, and determines pass or fail by comparing with the center y value. The color uniformity test is evaluated in r/g and b/g space.

APIs tested:

Pass: At the specified radius of the image, the variance of r/g and b/g value must be less than 20% to pass the test.

scene6

Scene6 is a grid of small circles with a square in one corner to indicate orientation. The small circles are needed to test zoom function over a large range.

scene6

scene6

test_zoom

Tests the camera zoom behavior. Takes captures over the zoom range and checks if the circles get bigger as the camera zooms in.

APIs tested:

Pass: Relative size of captured circle is accurate against requested zoom ratio to ensure camera is zooming correctly.

test_zoom

test_zoom to find the contour of the circle closest to the center.

sensor_fusion

Sensor fusion tests require specific phone movement in front of a checkerboard pattern. The sensor_fusion tests can be automated with the Sensor Fusion Box .

checkerboard

Image of checkerboard

test_multi_camera_frame_sync

Tests that frame timestamps captured by logical camera are within 10 ms by computing angles of squares within the checkerboard to determine the timestamp.

APIs tested:

Pass: Angle between images from each camera doesn't change appreciably as phone is rotated.

test_preview_stabilization

Tests that stabilized preview video rotates less than gyroscope.

APIs tested:

Pass: Max angle rotation over frames is less than 70% of gyroscope rotation.

The following are sample videos with and without stabilization.

  • Sample video with stabilization

  • Sample video without stabilization

    test_sensor_fusion

Tests the timestamp difference between the camera and the gyroscope for AR and VR applications. Phone is rotated 90 degrees 10 times in front of the checkerboard pattern. Motion is about 2 s round trip. This test is skipped if no gyroscope is included or if the timestamp source REALTIME parameter is not enabled.

The test_sensor_fusion test generates a number of plots. The two most important plots for debugging are:

  • test_sensor_fusion_gyro_events : Shows the gyroscope events for the phone during the test. Movement in the x and y direction implies the phone isn't securely mounted on the mounting plate, reducing the probability of the test passing. The number of cycles in the plot depends on the write speed for saving frames.

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations : Shows the alignment of the gyroscope and camera events. This plot must show matching movement between camera and gyroscope to +/-1 ms.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

APIs tested:

Pass: Camera and gyroscope timestamps' offset is less than 1 ms as per CDD section 7.3.9 High Fidelity Sensors [C-2-14] .

test_video_stabilization

Tests that stabilized video rotates less than gyroscope.

APIs tested:

Pass: Max angle rotation over frames is less than 60% of gyroscope rotation.

The following are sample videos with and without stabilization.

  • Sample video with stabilization

  • Sample video without stabilization