Kamera ITS Testleri

Bu sayfa, 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 listesini sunar. ITS testleri, görüntü kalitesini ölçmedikleri, ancak reklamı yapılan tüm kamera işlevlerinin beklendiği gibi çalıştığı anlamına gelen işlevsel testlerdir. Bu belge, geliştiricilerin ve testçilerin tek tek testlerin ne yaptığını ve test hatalarının nasıl hata ayıklanacağını anlamalarını sağlar.

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 vs JPEG/RAW
  • Scene2 : Yüz algılama
  • Scene3 : Kenar geliştirme, lens hareketi
  • Scene4 : En boy oranı, kırpma, görüş alanı
  • Scene5 : Mercek gölgelemesi
  • sahne6 : Yakınlaştır
  • 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 çekim yapar ve kamera zaman aşımını önlemek için yeterince hızlıdır.

test_capture_result_dump

El ile bir yakalamadan bir yakalama sonucunun döndürüldüğünü test eder ve ardından onu döker.

Test edilen API'ler:

Başarılı: Yakalamayı tamamlar ve yakalama sonuçlarını atar.

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ı: Döner okumanın deltası zaman içinde 0,01'den azdır.

test_gyro_bias_plot.png

test_gyro_bias_plot.png

test_jitter

Kamera zaman damgalarındaki titreşimi ölçer.

Test edilen API'ler:

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

test_jitter_plot.png

test_jitter_plot.png (Küçük y ekseni aralığına dikkat edin. Bu çizimde sapma 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, auto_capture_request gösterimini kullanır ve görüntü içeriği önemli olmadığından değerler kazanır.

Test edilen API'ler:

Başarılı: Donanım seviyesi, 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 patlamada düzgün şekilde uygulanıp uygulanmadığı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

Yakalama meta verilerini geri okuyarak cihazın doğru pozlama ve kazanç değerleri yazdığını test eder.

Test edilen API'ler:

Başarılı: Okuma ve yazma değerleri tüm çekimlerde eşleşir.

test_sensor_events

Sensör birleştirme desteğinin reklamını yapan cihazlar için cihazın 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 desenlerinin kamera sesini kapatmak için düzgün şekilde oluşturulduğunu test eder. Kamera sesini kapatma destekleniyorsa, düz renk test desenleri desteklenmelidir. Kamera sesini kapatma desteklenmiyorsa, düz renk test desenleri yalnızca yeteneğin tanıtılması 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 kareleri yakalamak için android.sensor.testPatternMode parametresini test eder ve karelerin 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 test deseni ve renk çubukları için basit bir doğruluk denetimi gerçekleştirir.

Test edilen API'ler:

Başarılı: Desteklenen test desenleri doğru şekilde oluşturulur.

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

Doğrusal ton haritası ile test deseninin RAW'dan YUV'ye dönüşümünü test eder. Bu test, tonemap dönüştürme için mükemmel bir görüntü deseni oluşturmak için android.sensor.testPatternMode = 2 (COLOR_BARS) gerektirir. Doğrusal ton haritası 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 görüntü 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 sesi kapatıldığında titreşmez.

sahne 1

sahne1 gri bir grafiktir. Gri grafik, kamera görüş alanının merkezi %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 derecede zorlaması bekleniyor. Ancak, yakalama talebi, 3A'nın yakınsaması 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'deki gri grafiğin bazı sınırlarını sağlamak için grafik ⅔ ile ölçeklenir.

sahne 1

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

test_3a

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

Test edilen API'ler:

Başarılı: 3A yakınsar 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 yakınsar 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ığından 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 çekim yapan testler aynı görünüyor.

Test edilen API'ler:

Başarılı: Her bir yakalama sonucunda bildirilen manuel beyaz dengesi kazanımları ve dönüşümü, kameranın 3A algoritmasından elde edilen otomatik beyaz dengesi estimate 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 görüntüler ürettiğini test eder. İlki siyah bir fotoğrafla sonuçlanan son derece düşük kazançlı ve kısa pozlu, ikincisi ise beyaz bir fotoğrafla sonuçlanan son derece yüksek kazançlı ve uzun pozlu iki çekim yapar.

Test edilen API'ler:

Geçer: Siyah beyaz görüntüler üretir.

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 50 görüntüden oluşan 5 seri çekim yapar ve hepsinin aynı olup olmadığını kontrol eder. Bu test, farklı şekilde işlenen veya yapaylık içeren düzensiz ç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 artış veya düşüş gösterir

  • Tolerans, first_API_level < 30 için %3'tür
  • Tolerans, first_API_level >= 30 için %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

CaptureResult nesnelerinde geçerli verilerin geri geldiğine dair testler. 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 lens gölgeleme düzeltmesini gösterir.

test_capture_result_plot_lsc_auto_ch0

test_capture_result_plot_lsc_auto_ch0.png

test_channel_sauration

Görüntünün doygun bölgelerindeki renk tonunu ortadan kaldırmak için RGB kanallarının eşit şekilde doyduğunu test eder.

Test edilen API'ler:

Başarılı: Doymuş kanallar, %1'den daha az hata payıyla [255, 255, 255] RGB değerlerine sahiptir.

test_channel_sauration

test_channel_sauration.jpg

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 ortadan kırpılı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 işe yaradığı testler. Tam bir resim çeker ve 5 farklı bölgeden (köşeler ve merkez) oluşan yamalar oluşturur. 5 bölge için kırpma seti ile resimler çeker. Yama ve kırpma görüntüsü değerlerini karşılaştırır.

Test edilen API'ler:

Başarılı: Kırpılan bölgenin görüntüsü, kırpma görüntüsüne 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 hassasiyette yakalanan ham çekimlerde gri kartın bir merkez yamasının ölçülen varyansını gösterir ve bu değerleri, kamera HAL'deki DNG gürültü modeli tarafından her bir hassasiyette beklenen varyansla karşılaştırır ( Yakalama sonucu 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ğerleriyle 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ığı beklenen parlaklığa karşı kontrol eder. Beklenen değerler, hiçbir 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 doygun hale gelir. 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 bir telafi değerinde sekiz kare yakalanır.

Test edilen API'ler:

Başarılı: Artan EV telafisi ayarıyla lumadaki artışı yakalar ve her EV telafisi ayarı için yakalanan sekiz karenin sabit luma değerleri vardır.

test_ev_compensation_basic

test_ev_compensation_basic.png

test_exposure

ISO ve pozlama süresi değişiklik gösterdiğinde sabit bir pozlamanın elde edildiğini test eder. ISO ve pozlama süresi birbirini dengelemek için seçilmiş bir dizi çekim yapar. Sonuçlar aynı parlaklığa sahip olmalıdır, ancak dizi boyunca görüntü daha gürültülü olmalıdır. Ö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ünmelerine neden olur). Test, yapılandırma dosyanızdaki debug bayrağını ayarlayarak 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üyor. Test, görüntünün %10'luk merkezini alır ve RGB değerini hesaplar ve 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_laching

FULL ve LEVEL_3 kameralar için ayarların (pozlama ve kazanç) sağ çerçevede 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:

Başarılı: Görüntüler [2, 3, 6, 8, 10, 12, 13] ISO'yu veya pozlamayı artırdı ve test_latching_plot_means.png üzerinde daha yüksek RGB araçlarıyla gösteriliyor.

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

test_latching_plot_means

test_latching_plot_means.png

test_linearity

Cihaz işlemenin doğrusal piksellere dönüştürülebileceğini test eder. Cihaz tek tip bir hedefe doğrultulmuş olarak bir dizi çekim yapar.

Test edilen API'ler:

Başarılı: R, G, B değerleri artan hassasiyetle lineer olarak artmalıdır.

test_linearity_plot_means

test_linearity_plot_means.png

test_locked_burst

3A kilidi ve YUV patlamasını test eder (otomatik ayarı kullanarak). Bu test, MANUAL_SENSOR veya PER_FRAME_CONTROLS özelliğine sahip olmayan sınırlı cihazlarda bile geçecek ş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 uygulanıp uygulanmadığını test eder. Farklı dönüşüm ve kazanç değerleriyle çekim yapar ve buna bağlı olarak farklı göründüklerini test eder. Dönüştürme ve kazançlar, çıktıyı giderek daha fazla kırmızı veya mavi yapacak şekilde seçilir. Doğrusal bir ton haritası kullanır. Ton eşleme, daha sınırlı dinamik aralığa sahip bir ortamdaki yüksek dinamik aralıklı görüntülerin görünümünü yaklaşık olarak tahmin etmek 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ı güçlendirme, 2=mavi güçlendirme

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 güçlendirme)

test_param_color_correction_req=2

test_param_color_correction_req=2.jpg (B güçlendirme)

test_param_exposure_time

android.sensor.exposureTime parametresinin uygulanıp uygulanmadığını test eder.

Test edilen API'ler:

Başarılı: Her çekim bir önceki çekimden 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ığı açıkça 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ünün merkezini kontrol eder.

Test edilen API'ler:

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

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. Fotoğraf makinesi loş ışıktayken görüntüler ç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ı temel 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_SNRs

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:

Başarılı: RGB, merkezin %10'u anlamına gelir, 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 lens 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ı tonmap eğrileri uygular ve çıktı görüntülerinin beklendiği gibi değiştirildiğ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ı vardır, ancak n=1 daha dik bir eğime sahiptir. 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 hassasiyet artışını kontrol eder. Farklı hassasiyette bir dizi RAW ve YUV görüntüsü yakalar, RAW duyarlılığı artırma kombinasyonunu gönderir ve çıktı piksel ortalamasının istek ayarlarıyla eşleşip eşleşmediğini kontrol eder.

Test edilen API'ler:

Başarılı: Yükseltme arttıkça RAW görüntüler daha koyulaşırken YUV görüntüleri 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_burst_sensitivity

Artan kazançlarla bir dizi ham görüntü yakalar ve gürültüyü ölçer. Bir patlamada 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 daha duyarlı 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 hassasiyetlerle bir dizi ham görüntü yakalar ve görüntünün %10'luk merkezindeki gürültüyü (varyansı) ölçer. Her atışın 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

Yeniden işleme istekleri için android.noiseReduction.mode öğesinin uygulandığını test eder. Kamera loş ışıktayken yeniden işlenmiş görüntüleri 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ı temel olarak kullanır.

Test edilen API'ler:

Geçer: HIZLI >= KAPALI, HQ >= HIZLI, HQ >> KAPALI

Tipik SNR ve NR_MODE grafiği

Tipik SNR ve 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. Her ardışık çerçeve çifti arasındaki deltayı hesaplar.

Test edilen API'ler:

Başarılı: 3 özdeş çerçeve ve ardından farklı bir 3 özdeş çerçeve kümesi 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 its.image modülü tarafından dönüştürüldüğünde aynı görünmesi için doğrusal 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'ü ile RGB dönüştürülmüş görüntülerde maksimum RMS (bir sinyalin kök-ortalama-kare 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 aynı görünmesi için doğrusal ton haritasına sahip manuel bir istek kullanır ( its.image modülü tarafından dönüştürüldüğünde).

Test edilen API'ler:

Başarılı: YUV ve JPEG görüntüleri benzerdir ve %1'den az RMS (bir sinyalin kök-ortalama-kare 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

Hem RAW hem de YUV çıktıları olarak tek bir kare yakalamayı test eder. Doğrusal ton haritası ile manuel bir istek kullanır, bu nedenle RAW ve YUV'nin aynı olması beklenir. RGB dönüştürülmüş görüntülerin merkezi %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 kök-ortalama-kare 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

Hem RAW10 hem de YUV çıktıları olarak tek bir kare yakalamayı test eder. Doğrusal ton haritası ile manuel bir istek kullanır, bu nedenle RAW ve YUV'nin aynı olması beklenir. RGB dönüştürülmüş görüntülerin merkezi %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 kök-ortalama-kare 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

Hem RAW12 hem de YUV çıktıları olarak tek bir kare yakalamayı test eder. Doğrusal ton haritası ile manuel bir istek kullanır, bu nedenle RAW ve YUV'nin aynı olması beklenir. RGB dönüştürülmüş görüntülerin merkezi %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 az RMS (bir sinyalin kök-ortalama-kare 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 giysilere sahip üç yüzü vardır. Yüzler çok çeşitli ten tonlarına sahip olacak şekilde seçilir.

sahne2_a

sahne2_a

test_efektleri

Desteklenen kamera efektleri için çerçeve 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 görüntüleri kaydeder.

Test edilen API'ler:

Başarılı: Efektler OFF olarak sahne görüntüsünü ve MONO olarak ayarlanmış efektlerle monokrom bir görüntü yakalar.

test_effects_MONO

test_effects_MONO.jpg

test_faces

Yüz algılamayı test eder. Resim kaydedilir, ancak kutu ve yer işareti bilgileri test_faces_stdout.txt içinde tablo haline getirilir.

Test edilen API'ler:

Başarılı: Görüntüden en az bir yüz algılar.

test_format_combos

Farklı çıktı biçimleri 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 kalitelerini android.jpeg.quality ile adımlayın ve Quantization Tables'ın doğru şekilde değişmesini sağlayın.

Test edilen API'ler:

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

test_jpeg_quality

Pixel 4 arka kamera luma/chroma DQT matris ortalamaları ile 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 görüntüler için (jpeg.quality < 50), nicemleme matrisinde sıkıştırmada bir artış olmadığını unutmayın.

test_num_faces

Yüz algılamayı test eder.

Test edilen API'ler:

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

Başarılı: 3 yüz bulur.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

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:

Başarılı: 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ı (3000K) altında CTS kamera PerformanceTest tarafından ölçüldüğü üzere 1080p çözünürlük için kamera2 JPEG yakalama gecikmesi < 1000 ms 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.

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 kadar açık) < 600 ms olmalıdır.

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:

Başarılı: 3 yüz bulur.

sahne2_e

test_sürekli_resim

50 VGA çözünürlüklü kare, ilk önce 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:

Başarılı: 3 yüz bulur.

sahne3

Scene3, ISO12233 grafiğini kullanır ve çoğu test, sahnedeki grafiği bulmak için bir grafik çıkarıcı yöntemini kullanır. Bu nedenle, kaydedilen resimlerin çoğu sahne 1, 2 veya 4 için olan resimler gibi kenarlıklara sahip değildir, sadece tabloya sahiptir.

test_3a_consistency

3A tutarlılık testleri.

Test edilen API'ler:

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

test_edge_enhancement

android.edge.mode parametresinin doğru uygulanıp uygulanmadığını test eder. Her kenar modu için yeniden işlenmeyen görüntüleri yakalar ve çıktı görüntüsünün netliğini ve yakalama sonucu meta verisini döndürür. Belirli bir kenar modu, hassasiyet, pozlama süresi, odak mesafesi ve çıktı yüzeyi parametresiyle bir yakalama isteğini işler.

Başarılı: Hızlı mod, HQ (yüksek kalite) modundan daha keskin değildir.

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

CDD bölüm 7.5.2 Öne Bakan Kamera [C-1-5] uyarınca görüntünün doğru yönlendirilip yönlendirilmediğini test eder.

Yansıtılmış, çevrilmiş veya döndürülmüş görüntüler, merkeze yakın elmas özelliği ile tanımlanabilir.

Başarılı: Görüntü ters çevrilmez, yansıtılmaz veya döndürülmez.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_lens_movement_reporting

Lens hareket bayrağının düzgün şekilde raporlanıp raporlanmadığını test eder. İlk 12 kare optimum netleme mesafesinde (3A tarafından bulunduğu gibi) ve son 12 kare minimum netleme mesafesinde olacak şekilde 24 görüntüden oluşan bir seri çekim yakalar. 12. kare civarında, lens hareket ederek keskinliğin düşmesine neden olur. Objektif son konuma hareket ederken netlik sonunda sabitlenir. 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_lens_position

Tests if the focus position is properly reported for moving lenses.

APIs tested:

Pass: Correct focus positions are reported.

test_reprocess_edge_enhancement

Returns sharpness of the output images and the capture result metadata. Processes a capture request with a given edge mode, sensitivity, exposure time, focus distance, output surface parameter, and reprocess format.

APIs tested:

Pass: Sharpness for the different edge modes is correct.

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.

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.

scene_change

test_scene_change

The scene change makes use of the tablet displaying a face scene and then turns the tablet on and off to create a scene change. The scene reuses scene2_e, but is in a separate scene because of the required tablet control. Additionally, for manual testing, the scene change can be accomplished by waving your hand in front of the camera.

APIs tested:

Pass: The android.control.afSceneChange flag is asserted with a scene change.

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_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 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] .