Kamera ITS testleri

Bu sayfada, Android Uyumluluk Testi 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 sunulmaktadır. ITS testleri işlevsel testlerdir; yani görüntü kalitesini ölçmezler, ancak reklamı yapı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ındaki hataları nasıl ayıklayacaklarını anlamalarını sağlar.

Kamera ITS kapıları, gerekli kamera özelliklerine, API düzeyine ve medya performans sınıfı (MPC) düzeyine göre test eder. API düzeyi için ITS, daha düşük API düzeylerinde işlevsellik açısından olumsuz kullanıcı deneyimlerini test eden belirli bir API düzeyine eklenen testleri geçmek için ro.product.first_api_level kullanır. ITS, yeni donanım yeteneği gerektiren belirli bir API düzeyinde eklenen özelliklere yönelik testleri geçmek için ro.vendor.api_level kullanır. Bir cihaz için ro.odm.build.media_performance_class tanımlanmışsa ITS, MPC düzeyine bağlı olarak belirli testlerin yürütülmesini gerektirir.

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

  • scene0 : Meta verileri, titreşimi, jiroskopu, titreşimi yakalayın
  • sahne1 : Pozlama, hassasiyet, EV telafisi, YUV ve JPEG/RAW
  • sahne2 : Yüz algılama, renkli sahneler veya tamamen karanlık gerektiren testler
  • sahne3 : Kenar geliştirme, lens hareketi
  • sahne4 : En boy oranı, kırpma, görüş alanı
  • sahne5 : Mercek gölgeleme
  • sahne6 : Yakınlaştırma
  • scene_extensions : Kamera uzantıları
  • sensör_füzyon : Kamera/jiroskop zamanlama farkı

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

sahne0

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

test_burst_capture

Tüm yakalama hattının tam boyutlu yakalama hızına ve CPU süresine ayak uydurabildiğini doğrular.

Test edilen API'ler:

Geçiş: Bir dizi tam boyutlu görüntü 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 onu döker.

Test edilen API'ler:

Geçiş: Yakalamayı tamamlar ve yakalama sonuçlarını döker.

test_gyro_bias

Cihaz sabitken jiroskopun kararlı çıkışı olup olmadığını test eder. Veriler ortalama 20 veri noktası olarak çizilmiştir.

Test edilen API'ler:

Başarılı: Jiroskop 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 titreşimi ölçer.

Test edilen API'ler:

Geçiş: Ç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 titreşim 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, resim içeriği önemli olmadığından auto_capture_request pozlama ve kazanç değerlerini kullanır.

Test edilen API'ler:

Geçiş: Donanım düzeyi, rollingShutterSkew , frameDuration etiketleri, timestampSource , croppingType , blackLevelPattern , pixel_pitch , FoV, hiperfokal mesafe mevcuttur ve geçerli değerlere sahiptir.

test_param_sensitivity_burst

android.sensor.sensitivity parametresinin seri çekimde düzgün şekilde uygulandığını test eder. Yalnızca çıktı meta verilerini inceler.

Test edilen API'ler:

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

test_read_write

Yakalama meta verilerini tekrar okuyarak cihazın doğru pozlamayı ve kazanç değerlerini 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

Cihazın, sensör füzyon desteği reklamı yapan 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çıkken çalışır, yani cihaz bekleme modunda değildir.

Test edilen API'ler:

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

test_solid_color_test_pattern

Kameranın sesini kapatmak için düz renk test desenlerinin düzgün şekilde oluşturulduğunu test eder. Kameranın sesini kapatma destekleniyorsa düz renk test desenleri desteklenmelidir. Kameranın sesini kapatma desteklenmiyorsa düz renk test modelleri yalnızca bu özelliğ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 farklılık vardır.

test_test_pattern

Geçerli her test desenine ilişkin 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 modelleri için görüntüleri yakalar.
  2. Düz renk test deseni ve renk çubukları için basit bir doğruluk kontrolü gerçekleştirir.

Test edilen API'ler:

Başarılı: Desteklenen test modelleri doğru şekilde oluşturuldu.

test_test_patterns_2

test_test_patterns_2.jpg

test_tonemap_curve

Doğrusal ton haritasıyla test deseninin RAW'dan YUV'ye dönüştürülmesini test eder. Bu test, tonemap dönüşümü için mükemmel bir görüntü deseni oluşturmak amacıyla android.sensor.testPatternMode = 2 (COLOR_BARS) gerektirir. Doğrusal ton haritası ve ideal görüntü girişi ile boru hattının uygun renk çıktılarına sahip olmasını sağlar ( test_test_patterns dayanır).

Test edilen API'ler:

Geçiş: YUV ve RAW birbirine benzer görünüyor.

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:

Geçiş: 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'si 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ölgede hiçbir özellik bulunmadığından gri grafiğin 3A'ya (otomatik pozlama, otomatik beyaz dengesi, otomatik odaklama) orta düzeyde meydan okuması bekleniyor. Ancak yakalama talebi, 3A'nın yakınsaması için yeterli özellikleri içeren sahnenin tamamını belirtir.

RFoV kameralar WFoV veya RFoV test cihazında test edilebilir. Bir RFoV kamera WFoV test düzeneğinde test edilirse, 3A'nın yakınsamasına yardımcı olmak amacıyla FoV'deki gri grafiğin bazı sınırlarını sağlamak için grafik ⅔ oranında ölçeklendirilir. Kamera test donanımlarının daha ayrıntılı açıklamaları için bkz . Kutuda Kamera ITS .

sahne 1

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

test_3a

3A'nın orta derecede zorlu bir hedefle 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 istekte, AE devre dışı olduğundan göz ardı edilmesi gereken bir AE ön yakalama tetikleyicisi var.

Test edilen API'ler:

Geçiş: 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 çekim 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. İki çekim yapar; birincisi son derece düşük kazançlı ve kısa pozlamayla siyah fotoğrafla sonuçlanır, ikincisi son derece yüksek kazançlı ve uzun pozlamayla beyaz fotoğrafla sonuçlanır.

Test edilen API'ler:

Geçiş: Siyah beyaz görüntüler üretir. Beyaz görüntülerin doygun 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 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ıklar içeren düzensiz çerçevelerin 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ğindeki yükselişi 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

CaptureResult nesnelerinde geçerli verilerin 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 ortadan kırpılır, ancak RAW görüntüler için bu geçerli değildir.

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

Mahsul bölgelerinin işe yaradığını gösteren testler. Tam bir görüntü çeker ve 5 farklı bölgenin (köşeler ve merkez) yamalarını oluşturur. 5 bölge için kırpma seti ile görüntüler ç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. Grafik, bir dizi hassasiyette çekilen ham çekimlerde gri kartın merkez yamasının ölçülen varyansını gösterir ve bu değerleri, kamera HAL'sindeki DNG gürültü modeli tarafından her 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ğrudur. Beklenen RGB değerleri, ölçülen gerçek RGB değerleriyle eşleşiyor.

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ık ile beklenen parlaklığı karşılaştırır. 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 doygunluğa ulaşacaktır. Beklenen değerler ve ölçülen değerler eşleşmezse veya görüntüler beş adım içinde 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ı: Artan EV telafisi ayarıyla parlaklıktaki artışı yakalar ve her bir EV telafisi ayarı için yakalanan sekiz karenin sabit ışık değerleri vardır.

test_ev_compensation_basic

test_ev_compensation_basic.png

test_maruziyeti

ISO ve pozlama süresi değiştikçe sabit bir pozlamanın elde edildiğini test eder. ISO ve pozlama süresinin birbirini dengeleyecek şekilde seçildiği bir dizi çekim yapar. Sonuçlar aynı parlaklığa sahip olmalıdır ancak sıra ilerledikçe 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 da onların düz çizgiler gibi görünmesine 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ı boyunca 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 ortadaki %10'luk kısmı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ğ karede mandallandığını 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] artırılmış ISO veya pozlamaya sahiptir ve test_latching_plot_means.png dosyasında daha yüksek RGB ortalamalarıyla gösterilir.

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 doğrultulduğunda bir dizi çekim yakalar.

Test edilen API'ler:

Geçiş: R, G, B değerleri artan hassasiyetle birlikte 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 özelliği 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_param_color_correction

android.colorCorrection.* parametrelerinin ayarlandığında uygulandığını test eder. Farklı dönüşüm ve kazanç değerlerine sahip çekimler yapar ve bunların farklı görünüp görünmediğini test eder. Dönüşüm ve kazançlar, çıktının giderek kırmızı veya mavi olmasını sağlayacak şekilde seçilir. Doğrusal bir tonemap kullanır. Ton eşleme, daha sınırlı bir dinamik aralığa sahip bir ortamdaki yüksek dinamik aralıklı görüntülerin görünümüne yaklaşmak amacıyla bir renk kümesini diğerine eşlemek için görüntü işlemede kullanılan bir tekniktir.

Test edilen API'ler:

Geçiş: 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 artırma)

test_param_color_correction_req=2

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

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 uygulandığını test eder. Pozlamayı manuel olarak karanlık tarafta olacak şekilde ayarlar, böylece flaşın patlayıp patlamadığı açıkça görülür ve doğrusal bir ton haritası kullanılır. Flaşın patlayıp patlamadığını doğrulamak için oluşturulan büyük bir degradenin olup olmadığını görmek için döşeme görüntüsünün merkezini kontrol eder.

Test edilen API'ler:

Geçiş: Döşeme görüntüsünün ortasında büyük bir degrade var, bu da flaşın patladığı anlamına geliyor.

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 uygulandığı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 analog kazanç kullanır. NR kapalı, "hızlı" ve "yüksek kalite" olmak üzere üç görüntü çeker. 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_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 uygulandığını test eder. Test, her çekimde sabit pozlamayla hassasiyeti 5 adımda artırır.

Test edilen API'ler:

Geçiş: RGB, merkezin %10'unun artan hassasiyetle daha parlak hale geldiği anlamına 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 uygulandığını test eder.

Test edilen API'ler:

Geçiş: Gölgeleme modları değiştirilir ve mercek 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 uygulandığı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'in eğimi daha dik. G (yeşil) kanalı n=1 görüntüsü için daha parlaktır.
  • test2: Aynı tonemap, ancak farklı uzunluk. Görseller 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ı hassasiyete sahip bir dizi RAW ve YUV görüntüsü yakalar, RAW hassasiyet artırma kombinasyonunu gönderir ve çıkış pikseli ortalamasının istek ayarlarıyla eşleşip eşleşmediğini kontrol eder.

Test edilen API'ler:

Geçiş: Güçlendirme arttıkça RAW görüntüler koyulaşırken YUV görüntülerin parlaklığı 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ımlarla bir dizi ham görüntü yakalar ve gürültüyü ölçer. Bir seri çekimde yalnızca ham olarak yakalar.

Test edilen API'ler:

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

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 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 hassasiyetle bir dizi ham görüntü yakalar ve görüntünün ortasındaki %10'luk 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:

Geçiş: Her atışta farklılık 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ş ışı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 analog kazanç kullanır. NR kapalı, "hızlı" ve "yüksek kalite" için yeniden işlenmiş üç görüntü yakalar. Düşük kazançlı ve NR kapalıyken 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 ve NR_MODE grafiği

Tipik SNR ve NR_MODE grafiği

test_tonemap_sequence

Farklı ton haritası eğrilerine sahip bir çekim dizisini 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 boyut ve formatların ç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. Resimler varsayılan olarak kaydedilmez ancak debug_mode etkinleştirilerek kaydedilebilir.

Test edilen API'ler:

Geçiş: 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 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ışıp çalışmadığını test eder.

Test edilen API'ler:

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

test_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

Tek bir kareyi hem YUV hem de JPEG çıktısı 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 az RMS (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

Destekleniyorsa hem RAW/RAW10/RAW12 hem de YUV çıkışı olarak tek bir kareyi yakalamayı testler. Doğrusal ton haritasına sahip manuel bir istek kullandığından ham ve YUV'nin aynı olması beklenir. RGB'ye dönüştürülmüş görüntülerin merkezdeki %10 RGB değerlerini karşılaştırır. android.shading.mode dosyasını günlüğe kaydeder.

Test edilen API'ler:

Başarılı: YUV ve ham görüntüler 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

sahne2_a

scene2_a'nın gri arka planı ve nötr giysisi olan üç yüzü var. Yüzler çok çeşitli cilt tonlarına sahip olacak şekilde seçilmiştir. Yüz algılamanın en iyi şekilde çalışması için grafiğin doğru yönelime sahip olması gerekir.

sahne2_a

sahne2_a

test_auto_flash

Karanlık bir sahnede otomatik flaşın tetiklendiğini test eder. Döşeme görüntüsünün merkezinin büyük bir degradeye sahip olup olmadığını kontrol ederek otomatik flaşın patladığını doğrular. Otomatik flaşın tetiklenmesi için tabletin ve test düzeneğindeki ışıkların kapatılması gerekir. Test ile tablet kapatılır ve Arduino kontrolcüsü ile ışıklar otomatik olarak kapatılabilir. Testin doğru çalışması için sahnenin tamamen karanlık olması gerekir. Bu nedenle, arka tablet açıklığı sahne tableti tarafından tamamen kapatılmalı ve ön açıklık bir açıklık ve DUT telefonuyla kapatılarak dağınık ışığın donanıma girmesini engellenmelidir.

Test edilen API'ler:

Geçiş: Döşeme görüntüsünün merkezinde, otomatik flaşın patladığı anlamına gelen büyük bir gradyan bulunur.

test_otomatik çerçeveleme

Kamera cihazının otomatik çerçeveleme davranışını test eder. Sahnedeki yüzlerin hiçbiri görünmeyecek şekilde büyük bir yakınlaştırma gerçekleştirir, CaptureRequest AUTOFRAMING True olarak ayarlayarak otomatik çerçeveleme modunu etkinleştirir ve durum yakınsadığında (yani, orijinal sahnedeki tüm yüzlerin algılanıp algılanamayacağını doğrular) CaptureResult AUTOFRAMING_STATE AUTOFRAMING_STATE_CONVERGED olarak ayarlanmıştır).

Test edilen API'ler:

Başarılı: Üç yüzün tümü algılanır.

test_display_p3

Testler ColorSpaceProfiles API'yi kullanarak P3 yakalamayı JPEG formatında görüntüler. Yakalanan JPEG'in başlığında uygun bir ICC profiline sahip olduğunu ve görüntünün sRGB gamının dışında renkler içerdiğini test eder.

Test edilen API'ler:

Başarılı: JPEG, Display P3 ICC profilini ve sRGB gamının dışındaki renkleri içerir.

test_efektleri

Desteklenen kamera efektleri için çerçeveyi yakalar ve bunların doğru şekilde 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:

Geçiş: Efektler OFF iken sahne görüntüsünü ve efektleri MONO olarak ayarlanmış bir monokrom görüntü yakalar.

test_fects_MONO

test_fects_MONO.jpg

test_format_combos

Çıkış formatlarının farklı kombinasyonlarını test eder.

Test edilen API'ler:

Geçiş: 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 gerçekleştirin ve Niceleme Tablolarının doğru şekilde değişmesini sağlayın.

Test edilen API'ler:

Geçiş: 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 matris 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 kalitesi < 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:

Geçiş: Üç yüzü bulur.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_preview_min_frame_rate

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

Test edilen API'ler:

Başarılı: Önizleme kare hızı, istenen kare hızı aralığının minimum seviyesindedir ve kareler arasındaki fark, testte belirlenen mutlak toleranstan daha azdır.

test_reprocess_uv_swap

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

Test edilen API'ler:

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

test_reprocess_uv_swap

test_reprocess_uv_swap.png

sahne2_b

test_num_faces

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

Test edilen API'ler:

Geçiş: 3 yüz bulur.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_sameness

1920x1440 çözünürlüğü aşmayan en büyük JPEG formatıyla aynı en boy oranına sahip, en büyük ortak YUV ve JPEG formatlarını kullanarak iki görüntü yakalar. jpeg.quality 100'e 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 ortalama karekök (RMS) farkını hesaplar.

Test edilen API'ler:

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

sahne2_c

test_num_faces

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

Test edilen API'ler:

Geçiş: 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 Performans Testi ile ölçülen 1080p çözünürlük için kamera2 JPEG yakalama gecikmesi < 1000 ms olmalıdı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 Performans Testi ile ölçülen kamera2 başlatma gecikmesi (kameradan ilk önizleme karesine kadar açık) < 600 ms OLMALIDIR.

sahne2_d

test_num_faces

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

Test edilen API'ler:

Geçiş: 3 yüz bulur.

sahne2_e

test_continuous_picture

Yakalama isteği ilk ayarı android.control.afMode = 4 (CONTINUOUS_PICTURE).

Test edilen API'ler:

Geçiş: 3A sistemi, 50 karelik bir yakalamanın sonunda yerleşir.

test_num_faces

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

Test edilen API'ler:

Geçiş: 3 yüz bulur.

sahne2_f

scene2_f'nin arka planı beyaz ve kıyafetleri beyaz olan üç yüzü vardır. Yüzler çok çeşitli cilt tonlarına ve arka planla yüksek kontrasta sahiptir.

sahne2_f.png

sahne2_f

test_num_faces

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

Test edilen API'ler:

Geçiş: 3 yüz bulur.

test_num_faces_fd_mode_1

test_num_faces_fd_mode_1.jpg

sahne3

Sahne3, 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 görüntülerin çoğunda, sahne 1, 2 veya 4'teki görüntülerde olduğu gibi kenarlıklar yoktur, yalnızca tablo bulunur. Harita bulucunun en iyi şekilde çalışması için haritanın doğru yönde olması gerekir.

test_3a_consistency

3A tutarlılığı için testler.

Test edilen API'ler:

Geçiş: 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 şekilde uygulandığını test eder. Her kenar modu için yeniden işlenmeyen görüntüleri yakalar ve çıktı görüntüsünün 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 parametresiyle bir yakalama isteğini işler.

Geçiş: HQ modu (2), OFF modundan (0) daha keskindir. FAST mod (1) OFF modundan daha keskindir. HQ modu daha keskin veya FAST moduna 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 (yüksek kalite modu)

test_flip_mirror

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

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

Geçiş: Görüntü çevrilmez, yansıtılmaz veya döndürülmez.

test_flip_mirror_scene_patch

test_flip_mirror_scene_patch.jpg

test_landscape_to_portrait

Yataydan dikeye geçişin yatay odaklı sensörler için doğru şekilde çalışıp çalışmadığını test eder.

Test edilen API'ler:

Başarılı: Test, beklenen dönüşe sahip bir grafiği bulabilir (yataydan dikeye geçersiz kılma devre dışı bırakıldığında 0 derece, etkinleştirildiğinde 90 derece).

test_landscape_to_portrait

test_landscape_to_portrait.png

test_lens_movement_reporting

Mercek hareket bayrağının düzgün şekilde bildirilip bildirilmediğini test eder. İlk 12 karesi optimum odak mesafesinde (3A tarafından bulunduğu gibi) ve son 12 karesi minimum odak mesafesinde olacak şekilde 24 görüntüden oluşan bir seri çekim yakalar. 12. karenin etrafında lens hareket ederek netliğin düşmesine neden olur. Lens son konuma hareket ettikçe netlik en sonunda sabitlenir. Mercek hareket bayrağı, merceğin optimum odak mesafesinde sabit olduğu ilk birkaç karede keskinliğin keskinlik ile orta düzeyde olduğu tüm karelerde ve merceğin minimum odak mesafesinde sabit olduğu son birkaç karede geçerli olmalıdır. Merceğin hareket ettiği tam kare önemli değildir: Kontrol edilen şey, mercek hareket ederken hareket bayrağının ileri sürülmesidir.

Test edilen API'ler:

Başarılı: Lens hareketi bayrağı, keskinlik değişikliğiyle karede True .

Arıza mekanizmaları:

  • lens_moving: test_log.DEBUG lens_moving: True ( android.hardware.camera2.CaptureResult#LENS_STATE = 1), yalnızca keskinliğin değişmediği karelerde ileri sürülür.
  • Lens_moving içeren kareler: test_log.DEBUG lens_moving: False ( android.hardware.camera2.CaptureResult#LENS_STATE = 0), 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 moduyla bir yakalama isteğini işler ve yeniden işleme kenar modları devre dışı bırakıldığında yakalama için farklı modları karşılaştırır.

Test edilen API'ler:

Başarılı: Farklı kenar modları için keskinlik doğrudur. HQ (mod 2), OFF (mod 0) daha keskindir ve farklı modlar arasındaki gelişme benzerdir.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

sahne4

Sahne4, bir karenin içinde beyaz zemin üzerine siyah bir daireden oluşur.

sahne4

sahne4

test_aspect_ratio_and_crop

Görüntü ardışık düzenindeki görüntülerin beklenmedik bir şekilde bozulup bozulmadığını veya kırpılıp kırpılmadığını test eder. Tüm formatlarda bir dairenin fotoğraflarını çeker. Dairenin bozulmadığını, dairenin görüntünün merkezinden hareket etmediğini ve farklı en boy oranları veya çözünürlüklerde dairenin boyutunun yanlış şekilde değişmediğini doğrular.

Test edilen API'ler:

Başarılı: Görüntüler uzatılmaz, görüntülerin merkezi %3'ten fazla farklılık göstermez ve mümkün olan maksimum FoV (görüş alanı) korunur.

Arıza mekanizmaları:

  • Yakalanan görüntüdeki daire, işleme hattı nedeniyle bozuluyor.
  • Düşük çözünürlüklü görüntü, görüntü hattında iki kez kırpılır ve yüksek ve düşük çözünürlüklü görüntüler arasında farklı FoV oluşturulur.
  • Yakalanan görüntüdeki daire, görüntünün yüksekliğini veya genişliğini azaltan aşırı en boy oranı yakalama isteği nedeniyle kırpılıyor.
  • Yakalanan görüntüdeki dairenin ortasında bir yansıma var ve tam olarak dolu görünmüyor.

test_multi_camera_alignment

Çoklu kamera sistemleri için kamera konumlandırmayla ilgili kamera kalibrasyon parametrelerini test eder. Çoklu kamera fiziksel alt kameralarını kullanarak, fiziksel kameralardan biriyle fotoğraf çeker. Çemberin merkezini bulur. Her kamera için daire merkezini dünya koordinatlarına yansıtır. Kameraların daire merkezleri arasındaki farkı dünya koordinatlarında karşılaştırır. Dünya koordinatını piksel koordinatlarına yeniden yansıtır ve bir 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:

Başarılı: Kamera kalibrasyon verileri ve odak uzunlukları kullanılarak çekilen görüntülerle karşılaştırıldığında, yansıtılan görüntülerde daire merkezleri ve boyutları beklendiği gibidir.

Arıza mekanizmaları:

  • LENS_INTRINSIC_CALIBRATION , LENS_POSE_TRANSLATION veya LENS_POSE_ROTATION tasarım değerleridir ve gerçek kalibrasyon verileri değildir.
  • Kamera sistemi test kurulumuna uygun değil. Örneğin geniş ve ultra geniş bir kamera sistemini RFoV test donanımıyla test etmek. Daha fazla bilgi için bkz. Kutuda Kamera SSS1 .

test_preview_aspect_ratio_and_crop

Hareketsiz görüntülere yönelik test_aspect_ratio_and_crop testine benzer şekilde, bu test, önizleme çerçevelerinin uygunsuz şekilde uzatılmadığından veya kırpılmadığından emin olmak için desteklenen önizleme formatlarını kontrol eder. Dairenin en boy oranının değişmediğini, kırpılan görüntülerin daireyi çerçevenin merkezinde tuttuğunu ve daire boyutunun sabit bir formatta veya farklı çözünürlüklerde değişmediğini doğrular (görüş alanı kontrolü).

Test edilen API'ler:

Başarılı: Görüntüler uzatılmaz, görüntülerin merkezi %3'ten fazla farklılık göstermez ve mümkün olan maksimum FoV (görüş alanı) korunur.

test_preview_stabilization_fov

FoV'nin uygun şekilde kırpıldığından emin olmak için desteklenen önizleme boyutlarını kontrol eder. Test, biri önizleme stabilizasyonu ON ve diğeri önizleme stabilizasyonu OFF olan iki video yakalar. Her videodan temsili bir çerçeve seçilir ve iki videodaki FoV değişikliklerinin spesifikasyon dahilinde olduğundan emin olmak için analiz edilir.

Test edilen API'ler:

Başarılı: Dairenin en boy oranı yaklaşık olarak sabit kalır, dairenin merkez konumu sabit kalır ve dairenin boyutu %20'den fazla değişmez.

test_video_aspect_ratio_and_crop

Tüm video formatlarında karenin içindeki dairenin videolarını çeker. Anahtar kareleri çıkarır ve dairenin en boy oranının değişmediğini, kırpılan görüntülerin daireyi merkezde tuttuğunu ve daire boyutunun sabit bir formatta veya farklı çözünürlükte değişmediğini doğrular (görüş alanı kontrolü).

Test edilen API'ler:

Geçiş: Video kareleri uzatılmaz, karelerin merkezi %3'ten fazla farklılık göstermez ve mümkün olan maksimum FoV (görüş alanı) korunur.

sahne5

Sahne 5, eşit şekilde aydınlatılmış gri bir sahne gerektirir. Bu, kamera merceğinin üzerine yerleştirilen bir difüzör ile gerçekleştirilir. Aşağıdaki difüzörü öneriyoruz: 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 2000 lüks bir aydınlatma kaynağına doğrultun. Sahne5 için çekilen görüntüler, hiçbir özelliğin belirgin olmadığı dağınık aydınlatma gerektirir. Aşağıdaki örnek bir resimdir:

sahne5

sahne5 yakalama

test_lens_shading_and_color_uniformity

Mercek gölgeleme düzeltmesinin uygun şekilde uygulandığını ve monokrom tekdüze bir sahnenin renginin eşit şekilde dağıtıldığını test eder. Bu testi otomatik 3A'lı bir YUV çerçevesinde gerçekleştirir. Lens gölgelemesi 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 başarılı veya başarısız olduğunu belirler. Renk bütünlüğü testi r/g ve b/g uzayında değerlendirilir.

Test edilen API'ler:

Başarılı: Görüntünün belirtilen yarıçapında, testi geçebilmek için r/g ve b/g değerinin varyansının %20'den az olması gerekir.

sahne6

Sahne6, yönlendirmeyi belirtmek için bir köşesinde bir kare bulunan küçük dairelerden oluşan bir ızgaradır. Yakınlaştırma işlevini geniş bir aralıkta test etmek için küçük dairelere ihtiyaç vardır.

sahne6

sahne6

test_in_sensor_zoom

Kırpılmış RAW görüntüler üreten kameranın sensör içi yakınlaştırma özelliğinin davranışını test eder.

Akış kullanım durumu CROPPED_RAW olarak ayarlandığında test, yakınlaştırma aralığında iki çekim alır; tam görüş alanı (FoV) RAW görüntüsü ve kırpılmış bir RAW görüntüsü. Test, görüntüleri RGB dizilerine dönüştürür, tam boyutlu kırpılmış RAW görüntünün ölçeğini SCALER_RAW_CROP_REGION tarafından bildirilen boyuta küçültür ve iki görüntü arasındaki 3D ortalama karekök (RMS) farkını hesaplar.

Test edilen API'ler:

Başarılı: Ölçeği küçültülmüş, kırpılmış RAW görüntüsü ile tam FoV RAW görüntüsü arasındaki 3D ortalama karekök (RMS) farkı %1'den azdır.

test_zoom

Kamera yakınlaştırma davranışını test eder. Yakınlaştırma aralığının üzerinde çekimler yapar ve kamera yaklaştıkça dairelerin büyüyüp büyümediğini kontrol eder.

Test edilen API'ler:

Başarılı: Yakalanan dairenin göreceli boyutu, kameranın doğru yakınlaştırma yapmasını sağlamak için istenen yakınlaştırma oranına göre doğrudur.

test_zoom

merkeze en yakın dairenin konturunu bulmak için test_zoom.

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ığı üzerinden çekimler alır ve çıktı görüntülerindeki dairelerin, yakalama meta verilerindeki yakınlaştırma oranlarıyla eşleşip eşleşmediğini kontrol eder.

Test edilen API'ler:

Başarılı: Yakalanan dairenin göreceli boyutu, yakınlaştırma oranı sonuç meta verilerine göre doğrudur.

test_preview_video_zoom_match

Kayıt ve yakınlaştırma sırasında video ön izleme ve video çıkışının aynı çıktıyı görüntüleyip kaydettiğini test eder. Farklı yakınlaştırma oranlarında merkeze en yakın dairenin boyutunu hesaplar ve yakınlaştırma oranı arttıkça dairenin boyutunun artıp artmadığını kontrol eder.

Test edilen API'ler:

Başarılı: Yakalanan dairenin göreceli boyutu, video ve önizlemede istenen yakınlaştırma oranına göre doğrudur.

VGA_640x480_key_frame.png

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

önizleme_640x480_key_frame.png

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

VGA_640x480_key_frame_zoomed.png

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

önizleme_640x480_key_frame_zoomed.png

önizleme_640x480_key_frame.png (yakınlaştırmadan sonra)

sahne_uzantıları

scene_extensions testleri, kamera uzantıları içindir ve test ortamının hassas kontrolünü gerektirdiğinden, Kamera ITS-in-a-Box'ı kullanması gerekir.

sahne_hdr

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

sahne_hdr

sahne_hdr

test_hdr_extension

HDR uzantısını test eder. Uzantı etkinken veya etkin değilken yakalamalar yapar ve uzantının QR kodunu daha algılanabilir hale getirip getirmediğini kontrol eder.

Test edilen API'ler:

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

sahne_gece

scene_night sahnesi, tamamı siyah bir arka plana karşı, içinde dört küçük daire bulunan beyaz bir daireden oluşur. Sağ üst köşedeki daha küçük daire, yönü belirtmek için diğerlerinden daha koyudur.

sahne_gece

sahne_gece

test_night_extension

Gece uzantısını test eder. Uzantı etkinken veya etkin değilken yakalamalar alır ve aşağıdakileri kontrol eder:

  • Gece uzantısı etkinken yakalama daha uzun sürer.
  • Gece uzantısı etkinken yapılan çekim daha parlaktır veya daha iyi bir görünüme sahip sahne yapaylıkları içerir.

Test edilen API'ler:

Başarılı: Gece uzantısı etkin olmayan bir yakalamayla karşılaştırıldığında, Gece uzantısı etkin olan bir yakalama en az 0,5 saniye daha uzun sürer. Yakalama en az %10 daha parlak olmalı veya sahnedeki gri noktalar, çevredeki dairenin merkezinden 20 piksel değeri daha düşük olmalıdır.

sensör_füzyonu

Sensör füzyon testleri, dama tahtası deseninin önünde belirli bir telefon hareketi gerektirir. Optimum sonuçlar için test tablosunun düz monte edildiğinden emin olun. Düz olmayan grafikler birçok testin rotasyon hesaplamalarını etkiler. sensor_fusion testleri, Sensor Fusion Box ile otomatikleştirilebilir.

dama tahtası

Dama tahtası resmi

test_multi_camera_frame_sync

Mantıksal kamera tarafından yakalanan zaman damgalarını çerçeveleyen testler, zaman damgasını belirlemek için dama tahtası içindeki karelerin açıları hesaplanarak 10 ms dahilindedir.

Test edilen API'ler:

Başarılı: Her kameradan alınan görüntüler arasındaki açı, telefon döndürüldüğünde önemli ölçüde değişmiyor.

test_preview_stabilization

Önizleme videosunun jiroskoptan daha az dönmesini sağlayan testler.

Test edilen API'ler:

Geçiş: Çerçeveler üzerindeki maksimum açı dönüşü, jiroskop dönüşünün %70'inden azdır.

Aşağıda stabilizasyonlu ve stabilizasyonsuz örnek videolar bulunmaktadır.

  • Stabilizasyonlu örnek video

  • Sabitleme olmadan ö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 saniyedir. Jiroskop dahil edilmemiş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 telefona ilişkin jiroskop olaylarını gösterir. X ve y yönündeki hareket, telefonun montaj plakasına güvenli bir şekilde monte edilmediği anlamına gelir ve testin geçme olasılığını azaltır. Çizimdeki döngü sayısı, karelerin kaydedilmesi için yazma hızına bağlıdır.

    test_sensor_fusion_gyro_events.png

    test_sensor_fusion_gyro_events

  • test_sensor_fusion_plot_rotations : Jiroskop ve kamera olaylarının hizalamasını gösterir. Bu grafik, kamera ile jiroskop arasındaki eşleşen hareketi +/-1 ms'ye kadar göstermelidir.

    test_sensor_fusion_plot_rotations.png

    test_sensor_fusion_plot_rotations

Test edilen API'ler:

Başarılı: Kamera ve jiroskop zaman damgalarının ofseti , CDD bölüm 7.3.9 Yüksek Hassasiyetli Sensörler [C-2-14] uyarınca 1 ms'den azdır.

Arıza mekanizmaları:

  • Ofset hatası: Kamera-jiroskop ofseti +/-1 ms dahilinde doğru şekilde kalibre edilmedi.
  • Kare düşüşleri: İşlem hattı art arda 200 kare yakalayacak kadar hızlı değil.
  • Soket hataları: adb testi yürütecek kadar uzun süre DUT'a güvenilir bir şekilde bağlanamıyor.
  • Grafik düz bir şekilde monte edilmemiştir. test_sensor_fusion_plot_rotations grafiği, kamera grafiğin düz olmayan kısımlarında döndükçe jiroskop ve kamera dönüşünün önemli ölçüde değiştiği çerçevelere sahiptir.
  • Kamera düz bir şekilde monte edilmemiştir. test_sensor_fusion_gyro_events grafiği X ve Y düzlemlerindeki hareketi gösterir. Bu arıza, ön kameralarda daha yaygındır, çünkü arka kamera genellikle telefon gövdesinin geri kalan kısmında yükseltilmiş bir çıkıntıya sahiptir ve bu da telefonun arkasını montaj plakasına monte ederken bir eğim oluşturur.

test_video_stabilization

Videonun jiroskoptan daha az dönmesini stabilize eden testler.

Test edilen API'ler:

Geçiş: Çerçeveler üzerindeki maksimum açı dönüşü, jiroskop dönüşünün %60'ından azdır.

Aşağıda stabilizasyonlu ve stabilizasyonsuz örnek videolar bulunmaktadır.

  • Stabilizasyonlu örnek video

  • Sabitleme olmadan örnek video

test_led_snapshot

LED anlık görüntülerinin görüntüyü doygunlaştırmadığını veya renk tonlamadığını test eder.

Bu test, ışıkları kontrol etmek için sensör füzyon kutusuna bir aydınlatma kontrol cihazı ekler. Işıklar OFF olarak ayarlandığında test, AUTO_FLASH modu ON olarak ayarlandığında bir çekim gerçekleştirir. Bu yakalama sırasında test, aePrecapture tetikleyicisi START olarak ayarlıyken bir yakalama öncesi diziyi çalıştırır ve yakalamayı flaşla almak için yakalama amacını Preview olarak ayarlar.

Yakalamanın flaş nedeniyle ayırt edici bir sıcak noktası olduğundan test, tüm yakalamanın flaş görüntü ortalamasını hesaplar ve değerin (68, 102) aralığında olup olmadığını doğrular. Görüntünün makul derecede beyaz dengeli olup olmadığını kontrol etmek için test, 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:

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