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 grafik için bazı sınırlar sağlamak üzere 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 çekimlerdeki 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ıkla ve dağınık ışığın donanıma girmesini engellemek için DUT telefonuyla kapatılmalıdır.

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 (kamerayı ilk önizleme karesine açın) < 600 ms olmalıdır.

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.

scene2_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

Scene3, ISO12233 grafiğini 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ğunun 1, 2 veya 4 sahneleri için görüntüler gibi sınırları yoktur, ancak sadece grafik. Grafik, grafik bulucunun en iyi şekilde çalışması için doğru yönde olmalıdır.

test_3a_consistence

3A tutarlılık testleri.

API'lar test edildi:

Geçiş: 3A, tolerans içinde üç kez maruz kalma, kazanç, AWB (otomatik beyaz denge) ve FD (odak mesafesi) için birleşir.

test_edge_enhancement

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

Pass: HQ modu (2) OFF moddan (0) daha keskin. FAST mod (1) OFF moddan daha keskin. HQ modu daha keskin veya FAST moda eşit.

API'lar test edildi:

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 mod)

test_flip_mirror

Görüntünün CDD Bölüm 7.5.2 öne bakan kamera [C-1-5] uyarınca uygun şekilde yönlendirilmiş olup olmadığını test eder.

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

Pass: 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_landscape_to_portrait

Portreye portre geçersiz kılma manzarasının peyzaj odaklı sensörler için doğru işlev gördüğünü test eder.

API'lar test edildi:

Pass: Test beklenen rotasyona sahip bir grafik bulabilir (portre geçersiz kılınan manzara 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

Lens hareketi bayrağının uygun şekilde rapor edildiğini test eder. Optimum odak mesafesinde (3A tarafından bulunduğu gibi) ilk 12 kare ve minimum odak mesafesinde son 12 kare ile 24 görüntü patlaması yakalar. Çerçeve 12 çevresinde, lens hareket eder ve keskinliğin düşmesine neden olur. Lens nihai konuma geçerken netlik nihayetinde stabilize olur. Lens hareketi bayrağı, lens optimum odak mesafesinde sabit olan ilk birkaç çerçevede keskinliğin netliğin netliğine ve lensin minimum odak mesafesinde sabit olduğu son birkaç kare olduğu tüm çerçevelerde iddia edilmelidir. Lensin hareket ettiği tam çerçeve önemli değildir: kontrol edilen şey, lens hareket ederken hareket bayrağının iddia edilmesidir.

API'lar test edildi:

Geçiş: Lens hareket bayrağı, keskinlik değişikliği ile çerçevede True .

Başarısız Mekanizmalar:

  • Lens_moving: test_log.DEBUG lens_moving: True ( android.hardware.camera2.CaptureResult#LENS_STATE = 1) yalnızca keskinliğin değişmediği çerçevelerde iddia edilir.
  • lens_moving: False ( android.hardware.camera2.CaptureResult#LENS_STATE = 0) test_log.DEBUG optimum odak mesafesindeki ilk birkaç kareye veya minimum odak mesafesindeki son birkaç kareye kıyasla keskinlik farkına sahiptir.

Test_reprocess_edge_enhancement

Kenar geliştirme için desteklenen yeniden işleme yöntemleri düzgün çalışırsa testler. Belirli bir Reprocess Edge modu ile bir yakalama isteğini işler ve devre dışı bırakılan yeniden işleme kenar modları ile yakalamak için farklı modları karşılaştırır.

API'lar test edildi:

Geçiş: Farklı kenar modları için keskinlik doğrudur. HQ (Mod 2) OFF daha keskin (mod 0) ve farklı modlar arasındaki iyileştirme benzerdir.

test_reprocess_edge_enhancement_plot

test_reprocess_edge_enhancement_plot.png

Sahne 4

Scene4, bir karenin içindeki beyaz bir arka plan üzerinde siyah bir daireden oluşur.

Sahne 4

Sahne 4

test_aspect_ratio_and_crop

Görüntüler görüntü boru hattında beklenmedik bir şekilde çarpıtılmış veya kırpılmış olup olmadığını test eder. Tüm formatlarda bir dairenin fotoğraflarını çeker. Daire'nin bozulmadığını doğrular, daire görüntünün merkezinden hareket etmez ve daire farklı en boy oranları veya çözünürlüklerle boyutu yanlış değiştirmez.

API'lar test edildi:

Pass: Görüntüler gerilmez, görüntülerin merkezi%3'ten fazla değişmez ve mümkün olan maksimum FOV (görüş alanı) korunur.

Başarısız Mekanizmalar:

  • Yakalanan görüntüdeki daire işleme boru hattı tarafından bozulur.
  • Daha düşük çözünürlüklü görüntü, yüksek ve düşük çözünürlüklü görüntüler arasında farklı FOV oluşturan görüntü boru hattında çift kırpılmıştır.
  • Yakalanan görüntüdeki daire, görüntünün yüksekliğini veya genişliğini azaltan aşırı bir en boy oranı yakalama isteği nedeniyle kırpılır.
  • Yakalanan görüntüdeki dairenin merkezde bir yansıması vardır ve tam olarak doldurulmaz.

test_multi_camera_alignment

Çok kamera sistemleri için kamera konumlandırma ile ilgili kamera kalibrasyon parametrelerini test eder. Çok kameralı fiziksel alt kameraları kullanarak, fiziksel kameralardan biriyle bir resim çeker. Daire merkezini bulur. Circle Center'ı her kamera için dünya koordinatlarına yansıtıyor. Dünya koordinatlarındaki kameraların daire merkezleri arasındaki farkı karşılaştırır. Dünya koordinatını piksel koordinatlarına geri döndürü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.

API'lar test edildi:

Geçiş: Daire merkezleri ve boyutları, öngörülen görüntülerde beklendiği gibi, kamera kalibrasyon verileri ve odak uzunlukları kullanılarak yakalanan görüntülere kıyasla.

Başarısız Mekanizmalar:

  • LENS_INTRINSIC_CALIBRATION , LENS_POSE_TRANSLATION veya LENS_POSE_ROTATION , gerçek kalibrasyon verileri değil tasarım değerleridir.
  • Kamera sistemi test kurulumu için uygun değildir. Örneğin, RFOV test teçhizatıyla geniş ve ultra geniş bir kamera sisteminin test edilmesi. Daha fazla bilgi için, bkz. Kameranın Box-In-Box SSS1 .

Test_preview_aspect_ratio_and_crop

Hala yakalamalar için test_aspect_ratio_and_crop testine benzer şekilde, bu test, önizleme çerçevelerinin uygunsuz bir şekilde gerilmemesini veya kırpılmamasını sağlamak için desteklenen önizleme formatlarını kontrol eder. Çemberin en boy oranının değişmediğini, kırpılmış görüntülerin daireyi çerçevenin ortasında tuttuğunu ve daire boyutunun sabit bir format veya farklı çözünürlüklerle (görünüm kontrolü) değişmediğini doğrular.

API'lar test edildi:

Pass: Görüntüler gerilmez, görüntülerin merkezi%3'ten fazla değişmez ve mümkün olan maksimum FOV (görüş alanı) korunur.

test_preview_stabilization_fov

FOV'un uygun şekilde kırpılmasını sağlamak için desteklenen önizleme boyutlarını kontrol eder. Test, biri önizleme stabilizasyonu ve diğeri önizleme stabilizasyonu ON OFF üzere iki video yakalar. Her videodan temsili bir çerçeve seçilir ve iki videodaki FOV değişikliklerinin spec içinde olduğundan emin olmak için analiz edilir.

API'lar test edildi:

Pass: Daire en boy oranı sabit kalır, dairenin merkez konumu sabit kalır ve daire boyutu%20'den daha fazla değişmez.

test_video_aspect_ratio_and_crop

Bir karenin içindeki bir dairenin videolarını tüm video formatlarında alır. Anahtar çerçeveleri çıkarır ve dairenin en boy oranının değişmediğini doğrular, kırpılmış görüntüler daireyi merkezde tutar ve daire boyutu sabit bir format veya farklı çözünürlükle değişmez (görüş alanı kontrolü).

API'lar test edildi:

Geçiş: Video çerçeveleri gerilmez, çerçevelerin merkezi%3'ten fazla farklı değildir ve mümkün olan maksimum FOV (görüş alanı) korunur.

Sahne5

Scene5, tek tip aydınlatılmış gri bir sahne gerektirir. Bu, kamera merceğinin üzerine yerleştirilmiş bir difüzörle 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 yönlendirin. Sahne 5 için yakalanan görüntüler, belirgin bir özellik olmadan dağınık aydınlatma gerektirir. Aşağıda örnek bir resim:

Sahne5

Scene5 Yakalama

test_lens_shading_and_color_omiformity

Lens gölgeleme düzeltmesinin uygun şekilde uygulandığını ve tek renkli üniforma sahnesinin renginin eşit olarak dağıtıldığını test eder. Bu testi Auto 3A ile bir YUV çerçevesinde gerçekleştirir. Lens gölgeleme Y kanalına göre değerlendirilir. Belirtilen her numune bloğu için ortalama y değerini ölçer ve merkez y değeri ile karşılaştırılarak geçişi veya başarısızlığı belirler. Renk tekdüzeliği testi r/g ve b/g boşlukta değerlendirilir.

API'lar test edildi:

Pass: Görüntünün belirtilen yarıçapında, r/g ve b/g değerinin varyansı% 20'den az olmalıdır.

Sahne 6

Scene6, oryantasyonu belirtmek için bir köşede bir kare olan küçük dairelerin bir ızgarasıdır. Zoom fonksiyonunu geniş bir aralıkta test etmek için küçük daireler gereklidir.

Sahne 6

Sahne 6

test_in_sensor_zoom

Kırpılmış ham görüntüler üreten kamera-sensör yakınlaştırma özelliğinin davranışını test eder.

Akış kullanım durumu CROPPED_RAW olarak ayarlanmış olarak, test zoom aralığında iki yakalama, tam bir görüş alanı (FOV) ham görüntü ve kırpılmış bir ham görüntü alır. Test, görüntüleri RGB dizilerine dönüştürür, tam boyutlu kırpılmış ham görüntüyü SCALER_RAW_CROP_REGION tarafından bildirilen boyuta indirir ve iki görüntü arasındaki 3D kök ortalama kare (RMS) farkını hesaplar.

API'lar test edildi:

Geçiş: Düşük ölçeklendirilmiş kırpılmış ham görüntü ile tam FOV ham görüntü arasındaki 3D kök ortalama kare (RMS) farkı%1'den azdır.

Test_zoom

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

API'lar test edildi:

Pass: Kameranın doğru bir şekilde yakınlaştırılmasını sağlamak için yakalanan dairenin göreceli boyutu, istenen zoom oranına karşı doğrudur.

Test_zoom

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

test_low_latency_zoom

Kameranın düşük gecikme zum davranışını test eder. Yaklaşımları android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) ile zoom aralığında alır ve çıkış görüntülerindeki dairelerin yakalama meta verilerindeki zoom oranlarıyla eşleşip eşleşmediğini kontrol eder.

API'lar test edildi:

Geçiş: Yakalanan dairenin göreceli boyutu, Zoom Oranı Sonuç Meta verilerine karşı doğrudur.

test_preview_video_zoom_match

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

API'lar test edildi:

Geçiş: Yakalanan dairenin göreceli boyutu, video ve önizlemede talep edilen zoom oranına karşı doğrudur.

Vga_640x480_key_frame.png

Vga_640x480_key_frame.png (zumdan önce)

önizleme_640x480_key_frame.png

önizleme_640x480_key_frame.png (zoom'dan önce)

Vga_640x480_key_frame_zoomed.png

Vga_640x480_key_frame.png (zumdan sonra)

önizleme_640x480_key_frame_zoomed.png

önizleme_640x480_key_frame.png (zoom'dan sonra)

scene_extensions

scene_extensions testleri kamera uzantıları içindir ve test ortamının kesin kontrolünü gerektirdikleri için kamera için bir kutu kullanmalıdır.

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. Uzatma etkinleştirilmiş ve olmadan çekimler etkinleştirilir ve uzantının QR kodunu daha algılanabilir hale getirip getirmediğini kontrol eder.

API'lar test edildi:

Pass: HDR uzantısı, QR kodunu tespit etmek için gereken kontrast değişikliklerinin sayısını azaltır veya QR kodu boyunca gradyanı azaltır.

scene_night

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

scene_night

scene_night

test_night_extension

Gece uzantısını test eder. Uzatma etkinleştirilmiş ve bunlar olmadan çekimler alır ve aşağıdakileri kontrol eder:

  • Gece uzantısı etkinleştirilmiş yakalama daha uzun sürer.
  • Gece uzantısı etkinleştirilmiş yakalama daha parlaktır veya gelişmiş bir görünüme sahip sahne eserleri vardır.

API'lar test edildi:

Pass: Gece uzantısı etkinleştirilmeden yakalamaya kıyasla, gece uzantısı etkinleştirilmiş 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ğer daha düşük olmalıdır.

Sensor_fusion

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

dama tahtası

Dama tahtasının görüntüsü

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 kareler açılarını hesaplayarak 10 ms'dir.

API'lar test edildi:

Geçiş: Her kameradaki görüntüler arasındaki açı, telefon döndürüldükçe kayda değer bir şekilde değişmez.

test_preview_stabilizasyon

Önizleme videosunu stabilize eden testler jiroskoptan daha az döner.

API'lar test edildi:

Geçiş: Çerçeveler üzerinde maksimum açılı dönme, jiroskop rotasyonunun% 70'inden azdır.

Aşağıda stabilizasyonlu ve stabilizasyon olmayan örnek videolardır.

  • Stabilizasyonlu Örnek Video

  • Stabilizasyon olmadan örnek video

test_sensor_fusion

AR ve VR uygulamaları için kamera ve jiroskop arasındaki zaman damgası farkını test eder. Telefon, dama tahtası deseninin önünde 10 kez 10 derece döndürülür. Hareket yaklaşık 2 sn gidiş gezisidir. Hiçbir jiroskop dahil değilse veya zaman damgası kaynağı REALTIME parametresi etkin değilse atlanır.

test_sensor_fusion testi bir dizi parsel üretir. Hata ayıklama için en önemli iki parsel şunlardır:

  • test_sensor_fusion_gyro_events : Test sırasında telefon için jiroskop olaylarını gösterir. X ve Y yönündeki hareket, telefonun montaj plakasına güvenli bir şekilde monte edilmediğini ve test geçiş olasılığını azalttığını ima eder. Arsadaki döngü sayısı, çerçeveler tasarrufu 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 hizalanmasını gösterir. Bu grafik, kamera ve jiroskop arasındaki eşleşen hareketi +/- 1 ms ile göstermelidir.

    Test_sensor_fusion_plot_rotations.png

    Test_sensor_fusion_plot_rotations

API'lar test edildi:

Pass: Kamera ve jiroskop zaman damgası ofseti CDD Bölüm 7.3.9 Yüksek Sadakat Sensörleri [C-2-14] uyarınca 1 ms'den azdır.

Başarısız Mekanizmalar:

  • Ofset Hatası: Kamera-Gyroscope ofseti +/- 1 ms içinde doğru bir şekilde kalibre edilmez.
  • Çerçeve Damlaları: Boru hattı, arka arkaya 200 kare yakalayacak kadar hızlı değildir.
  • Soket Hataları: adb Testi yürütecek kadar uzun süre DUT'a güvenilir bir şekilde bağlanamaz.
  • Grafik düz monte edilmez. test_sensor_fusion_plot_rotations , jiroskop ve kamera rotasyonunun, kameranın grafiğin düz olmayan kısımlarından geçtikçe önemli ölçüde değiştiği çerçevelere sahiptir.
  • Kamera düz monte edilmez. test_sensor_fusion_gyro_events , X ve Y düzlemlerinde hareketi gösterir. Bu arıza, öne bakan kameralarda daha yaygındır, çünkü arka kamera genellikle telefon gövdesinin geri kalanına yükseltilmiş bir yumru vardır ve telefonun arkasını montaj plakasına monte ederken bir eğim oluşturur.

test_video_stabilizasyon

Stabilize video testler jiroskoptan daha az döner.

API'lar test edildi:

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

Aşağıda stabilizasyonlu ve stabilizasyon olmayan örnek videolardır.

  • Stabilizasyonlu Örnek Video

  • Stabilizasyon olmadan örnek video

test_led_snapshot

LED anlık görüntülerinin görüntüyü doyurmadığını veya renklendirmediğini test eder.

Bu test, ışıkları kontrol etmek için sensör füzyon kutusuna bir aydınlatma denetleyicisi ekler. Işıklar OFF , test AUTO_FLASH modu ON bir yakalama alır. Bu yakalama sırasında, test START şekilde aePrecapture Tetikleyici ayarıyla bir önleme sırası çalıştırır ve yakalama niyetini flash ile yakalamayı Preview ayarlar.

Yakalama flaş nedeniyle ayırt edici bir sıcak noktaya sahip olduğundan, test tüm yakalamanın flash görüntü ortalamasını hesaplar ve değerin (68, 102) aralığında olup olmadığını doğrular. Görüntünün makul olarak beyaz dengeli olup olmadığını kontrol etmek için test, r/g ve b/g oranlarını hesaplar ve oranların 0.95 ve 1.05 içinde olup olmadığını doğrular.

API'lar test edildi:

Geçiş: R/G ve B/G oranları 0.95 ve 1.05'tir. Flash görüntü ortalaması (68, 102) aralığında.