Kamera ITS testleri

Bu sayfada, Android Compatibility Test Suite (CTS) Doğrulayıcı'nın bir parçası olan Kamera Görüntü Test Paketi (ITS) kapsamındaki testlerin kapsamlı bir listesi sunulmaktadır. ITS testleri işlevsel testlerdir. Yani resim kalitesini ölçmezler ancak reklamı yapılan tüm kamera işlevleri beklendiği gibi çalışır. Bu belge, geliştiricilerin ve test kullanıcılarının her bir testin işlevini ve test hatalarında nasıl hata ayıklayacaklarını anlamalarına olanak tanır.

Kamera ITS'si; gerekli kamera özellikleri, API düzeyi ve medya performans sınıfı (MPC) düzeyine göre testleri gerçekleştirir. API düzeyi için ITS, belirli bir API düzeyine eklenen ve düşük API seviyelerindeki işlevler için olumsuz kullanıcı deneyimlerini test eden testleri engellemek amacıyla ro.product.first_api_level kullanır. ITS, belirli bir API seviyesinde eklenen ve yeni donanım özelliği gerektiren özelliklere yönelik testlerin güvenliğini sağlamak için ro.vendor.api_level kullanır. Bir cihaz için ro.odm.build.media_performance_class tanımlanırsa ITS, MPC seviyesine bağlı olarak belirli testlerin çalıştırılmasını gerektirir.

Testler sahneye göre şu şekilde gruplandırılır:

  • scene0: Meta veri, ses dalgalanması, jiroskop, titreşim yakala
  • scene1: Pozlama, hassasiyet, EV dengeleme, YUV ve JPEG/RAW karşılaştırması
  • scene2: Yüz algılama, renkli sahneler veya tam karanlık gerektiren testler
  • scene3: Kenar iyileştirme, lens hareketi
  • scene4: En boy oranı, kırpma, görüş alanı
  • scene5: Lens gölgelendirmesi
  • scene6: yakınlaştırma
  • scene_extensions: Kamera uzantıları
  • sensor_fusion: Kamera/jiroskop zamanlama farkı

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

sahne0

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

test_patlama_yakalama

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

Test edilen API'ler:

Başarılı: Seri çekim tam boyutlu görüntüler yakalar ve kamera, zaman aşımını önleyecek kadar hızlıdır.

test_capture_sonuç_dökümü

Manuel yakalamadan bir yakalama sonucunun döndürüldüğünü test eder ve ardından bu sonucu döküm yapar.

Test edilen API'ler:

Başarılı: Yakalama işlemini tamamlar ve yakalama sonuçlarını siler.

test_jiroskopu

Cihaz sabit durumdayken jiroskopun sabit çıkışa sahip olup olmadığını test eder. Verilerin grafiği, ortalama 20 veri noktası şeklinde gösterilir.

Test edilen API'ler:

Başarılı: Jiroskop ölçümünün delta değeri zaman içinde 0,01'den azdır.

test_jiroskop_tamiri.png

test_jiroskop_tamiri.png

test_gecikmesi

Kamera zaman damgalarındaki titremeyi ölçer.

Test edilen API'ler:

Başarılı: Kareler arasında en az 30 ms delta vardır.

test_jitter_plot.png

test_jitter_plot.png (Küçük y ekseni aralığına dikkat edin. Bu hikayede dalgalanma aslında çok azdır.)

test_metadata

Meta veri girişlerinin geçerliliğini test eder. Çekim sonuçlarına ve kamera özellikleri nesnelerine bakar. Bu testte, resim içeriği önemli olmadığı için auto_capture_request karşılaşma ve değer kazanma verileri kullanılır.

Test edilen API'ler:

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

test_paramı_hassaslık_patlaması

android.sensor.sensitivity parametresinin seri işlem sırasında doğru şekilde uygulandığını test eder. Yalnızca çıkış meta verilerini inceler.

Test edilen API'ler:

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

test_okuma_yazma

Cihazın doğru pozlamayı yazıp yazmadığını ve yakalama meta verilerini tekrar okuyarak değerler kazanıp kazanmadığını test eder.

Test edilen API'ler:

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

test_sensörü_etkinlikleri

Sensör füzyon desteğini tanıtan cihazlar için cihazın sensör etkinliklerini sorgulayıp yazdırdığını test eder. Kullanılması beklenen sensörler; ivme ölçer, jiroskop ve manyetometre. Bu test yalnızca ekran açıkken çalışır, yani cihaz bekleme modunda değilse

Test edilen API'ler:

Başarılı: Her bir sensördeki etkinlikler alınır.

test_katı_renk_test_modeli

Kameranın sesinin kapatılması için düz renk testi desenlerinin doğru şekilde oluşturulduğunu test eder. Kameranın sesinin kapatılması destekleniyorsa düz renk testi desenleri desteklenmektedir. Kameranın sesinin kapatılması desteklenmiyorsa düz renk testi desenleri, yalnızca özelliğin tanıtıldığı durumlarda test edilir.

RAW resimler destekleniyorsa renk ataması da test edilir. Test edilen renkler siyah, beyaz, kırmızı, mavi ve yeşildir. RAW resimleri desteklemeyen kameralarda yalnızca siyah test edilir.

Test edilen API'ler:

Başarılı: Desteklenen katı test desenleri doğru renktir ve resimde düşük sapma vardır.

test_test_modeli

Geçerli her test kalıbı için kareleri yakalamak üzere android.sensor.testPatternMode parametresini test eder ve tek renkler ile renk çubukları için karelerin doğru şekilde oluşturulup oluşturulmadığını kontrol eder. Bu test aşağıdaki adımları içerir:

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

Test edilen API'ler:

Başarılı: Desteklenen test kalıpları doğru şekilde oluşturulmuştur.

test_modelleri_2

test_test_modelleri_2.jpg

test_tonemap_eğri

Doğrusal ton eşleme ile test kalıbının RAW'dan YUV'ye dönüşümünü test eder. Bu test, android.sensor.testPatternMode = 2 (COLOR_BARS) işlevinin ton eşleme dönüşümü için mükemmel bir resim kalıbı oluşturmasını gerektirir. Ardışık düzenin doğrusal ton eşleme ve ideal görüntü girişiyle (test_test_patterns tabanlı) doğru renk çıkışlarına sahip olmasını sağlar.

Test edilen API'ler:

Başarılı: YUV ve RAW birbirine benzer.

test_tonemap_eğri_ham_2

test_tonemap_curve_ham_2.jpg

test_tonemap_curve_yuv_2.jpg

test_tonemap_curve_yuv_2.jpg

test_unified_timestamp [test_unified_zaman_damgası]

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

Test edilen API'ler:

Başarılı: Hareket zaman damgaları, iki resim zaman damgası arasındadır.

test_titreşim_kısıtlama

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

Test edilen API'ler:

Geçiş: Kamera Audio restriction API tarafından sesi kapatıldığında cihaz titreşmez.

sahne1

Sahne1, gri bir grafiktir. Gri grafik, kamera görüş alanının ortadaki% 30'unu kapsamalıdır. Orta bölgede hiçbir özellik olmadığından gri grafikte 3A'yı (otomatik pozlama, otomatik beyaz dengesi, otomatik odaklama) orta düzeyde zorlaması beklenir. Ancak yakalama isteği, 3A'nın yakınlaşması için yeterli özellik içeren sahnenin tamamını belirtir.

RFoV kameralar, WFoV veya RFoV test düzeneğinde test edilebilir. WFoV test cihazında bir RFoV kamera test edilirse, 3A yakınsmasına yardımcı olmak amacıyla FoV'deki gri grafikte bazı sınırlar olmasını sağlamak için grafik 2⁄3 oranında ölçeklendirilir. Kamera test ekipmanları hakkında daha ayrıntılı açıklamalar için Kamera ITS'si bölümüne bakın.

sahne1

1. sahne: Tam boyutlu grafik (solda). 2⁄3 ölçekli grafik (sağ).

test_3a

Orta düzeyde zor bir hedefle 3A'nın yakınsaklığını test eder.

Test edilen API'ler:

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

test_ae_af

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

Test edilen API'ler:

Başarılı: 3A yakınlaşıyor ve döndürülen 3A değerleri yasal.

test_ae_precapture_trigger

Önceden yakalama tetikleyicisini kullanırken AE durum makinesini test eder. AE devre dışıyken beş manuel isteği yakalar. Son istekte bir AE önceden yakalama tetikleyicisi var. AE devre dışı bırakıldığı için bu tetikleyicinin göz ardı edilmesi gerekir.

Test edilen API'ler:

Başarılı: Reklam Kitlesi (AE) kesişir.

test_auto_vs_manual

Otomatik ve manuel çekimler yapılan testler aynı görünür.

Test edilen API'ler:

Başarılı: Kameranın 3A algoritmasından otomatik beyaz dengesi estimate ile her yakalama sonucu eşleşmesinde bildirilen manuel beyaz dengesi kazanımları ve dönüşümü.

test_auto_vs_manual_auto

test_auto_vs_manual_auto.jpg

test_auto_vs_manual_wb

test_auto_vs_manual_wb.jpg

test_auto_vs_manual_manual_wb_tm

test_auto_vs_manual_manual_wb_tm.jpg

test_siyah_beyaz

Cihazın tam siyah beyaz görüntüler üretip üretmediğini test eder. İlki çok düşük kazanca ve kısa pozlamaya sahip olan, diğeri siyah fotoğraf, ikincisi ise çok yüksek kazanım ve uzun pozlama ile beyaz fotoğraf ile sonuçlanır.

Test edilen API'ler:

Geçti: Siyah beyaz resimler oluşturur. Beyaz resimlerin doymuş kanallarının RGB değerleri [255, 255, 255] olup hata payı %1'den azdır.

test_siyah_beyaz_siyah test_siyah_beyaz_siyah
test_siyah_beyaz_siyah.jpg test_siyah_beyaz_beyaz.jpg

test_siyah_beyaz_diyagram_ortalaması

test_siyah_beyaz_diyagram_ortalaması.png

aynı_test_patlaması

Manuel çekim ayarıyla 50 görüntüden oluşan 5 seri çekim çeker ve bunların hepsinin aynı olup olmadığını kontrol eder. Bu test, farklı şekilde işlenen veya kusurlu kareler olup olmadığını belirlemek için kullanılabilir.

Test edilen API'ler:

Başarılı: Resimler görsel olarak aynı ve RGB değerlerindedir.

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

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

test_patlaması_aynı_manuel_ortalama

test_burst_sameness_manual_mean.jpg

test_patlaması_aynı_manuel_diyagram_ortalaması

test_burst_sameness_manuel_diyagram_means.png

test_yakalama_sonucu

Geçerli verilerin CaptureResult nesnede geri gelip gelmediğini test eder. Video çekerken otomatik, manuel ve otomatik çekim yapar.

Test edilen API'ler:

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

test_yakalama_sonucu_grafiği_lsc_otomatik_ch0

test_capture_sonuç_diyagramı_lsc_auto_ch0.png

test_kırpma_bölgesi_ham

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

Test edilen API'ler:

Başarılı: YUV resimleri merkezden kırpılır ancak RAW resimler için geçerli değildir.

test_kırpma_bölgesi_ham_comp_ham_kırpma

test_kırpma_bölgesi_ham_comp_ham_Kırpma.jpg

test_kırpma_bölgesi_ham_comp_ham_tam

test_kırpma_bölgesi_ham_comp_ham_tam.jpg

test_kırpma_bölgesi_ham_comp_yuv_kırpma

test_kırpma_bölgesi_ham_comp_yuv_kırpma.jpg

test_kırpma_bölgesi_ham_yuv_tam

test_kırpma_bölgesi_ham_yuv_tam.jpg

test_kırpma_bölgeleri

Kırpma bölgelerinin çalıştığını test eder. Resmin tamamını alır ve 5 farklı bölgeden (köşeler ve orta) yamaları oluşturur. 5 bölge için kırparak resim çeker. Yamayı ve kırpma resminin değerlerini karşılaştırır.

Test edilen API'ler:

Başarılı: Kırpılan bölgenin resmi, kırpma resmine karşılık gelen yamayla eşleşir.

test_dng_noise_model

Ham DNG model parametrelerinin doğru olduğunu doğrular. Grafik, çeşitli hassasiyetler aralığında yakalanan ham çekimlerde gri kartın merkez bandının ölçülen varyansını gösterir ve bu değerleri, kamera HAL'sindeki DNG gürültü modelinin her bir hassasiyetinde beklenen varyansla karşılaştırır (yakalama sonucu nesnelerinde döndürülen O,S parametrelerine göre). DNG gürültü modeli hakkında daha ayrıntılı bilgi için DNG Gürültü Modeli üzerinde aşağıdaki belgeyi indirin.

Test edilen API'ler:

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

test_dng_noise_model_plog

test_dng_noise_model_plog.png

test_ev_kombinasyonu_gelişmiş

Pozlama değeri (EV) dengelemesinin uygulandığını test eder. Test, pozlama süresini sekiz adımda artırır ve ölçülen parlaklık ile beklenen parlaklık karşılaştırmasını kontrol eder. Beklenen değerler, EV düzeltmesi uygulanmadan resmin görüntü parlaklığına göre hesaplanır ve hesaplanan değerlerin gerçek görüntü değeri aralığını aşması durumunda beklenen değer doyacaktır. Beklenen değerler ile ölçülen değerler eşleşmezse veya resimler beş adımda aşırı pozlanırsa test başarısız olur.

Test edilen API'ler:

Başarılı: Resimler, beş adımda aşırı pozlama olmadan artan pozlamayı gösteriyor.

test_ev_kombinasyonu_gelişmiş_diyagram_ortalaması

test_ev_kompensation_gelişmiş_diyagram_ortalaması.png

test_ev_compensation_temel

EV dengelemesinin CONTROL_AE_COMPENSATION_STEP ile oluşturulan bir aralık kullanarak uygulandığını test eder. Her bir dengeleme değerinde sekiz kare yakalanır.

Test edilen API'ler:

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

test_ev_compensation_temel

test_ev_compensation_temel.png

test_karşılaşması

ISO ve pozlama süresi değiştiğinden sabit bir maruz kalma elde edildiğini test eder. ISO ve pozlama süresinin dengeli bir şekilde belirtildiği bir dizi fotoğraf çeker. Sonuçlar aynı parlaklığa sahip olmalıdır, ancak sıra arttığında resim daha gürültülü olacaktır. Örnek piksel ortalama değerlerinin birbirine yakın olduğunu doğrular. Resimlerin 0 veya 1'e sabitlenmemesini sağlar (bu da düz çizgiler gibi görünür). Test, yapılandırma dosyanızda debug işareti ayarlanarak RAW resimlerle de çalıştırılabilir.

Test edilen API'ler:

Başarılı: Resimler aynı parlaklığa sahiptir ancak daha yüksek ISO ile daha gürültülüdür. ISO*pozlama değeri test edilen kazanç alanı üzerinde sabit olduğunda RGB düzlemleri sabittir.

test_karşılığı_diyagramı_ortalaması

test_exposure_plot_means.png

test_exposure_mult=1,00 test_exposure_mult=64,00
test_exposure_mult=1.00.jpg test_exposure_mult=64.00.jpg

test_jpeg

Dönüştürülen YUV resimleri ile cihaz JPEG resimlerinin aynı görünüp görünmediğini test eder. Test, görüntünün% 10'unu merkeze alır ve RGB değerini hesaplayıp bunların eşleştiğini doğrular.

Test edilen API'ler:

Başarılı: Her resim arasındaki ortalama RGB farkı %3'ten azdır.

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

test_mandalı

FULL ve LEVEL_3 kameralarda ayarların (pozlama ve kazanç) doğru karede mandalını test eder. Arka arkaya istekleri kullanarak çekim isteği parametrelerini kareler arasında değiştirerek bir dizi çekim yapar. Resimlerin beklenen özelliklere sahip olup olmadığını kontrol eder.

Test edilen API'ler:

Başarılı: Resimler [2, 3, 6, 8, 10, 12, 13] ISO veya pozlamayı artırmıştır ve test_latching_plot_means.png tarihinde daha yüksek RGB anlamına gelmektedir.

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

test_manmasi_diyagramı_ortalaması

test_laketi_diyagramı.png

test_doğrusallık

Cihaz işlemenin doğrusal piksellere ters çevrilebileceğini test eder. Cihaz tek tip bir hedefe doğru tutulduğunda arka arkaya çekim yapar.

Test edilen API'ler:

Başarılı: R, G, B değerleri, daha hassas bir şekilde doğrusal olarak artmalıdır.

test_doğrusallık_diyagramı_ortalaması

test_doğrusallık_diyagramı_ortalaması.png

kilitli_patlama_testi

3A kilidi ve YUV patlaması (otomatik ayar kullanılarak) test edilir. Bu test, MANUAL_SENSOR veya PER_FRAME_CONTROLS bulunmayan sınırlı cihazlarda bile başarılı olacak şekilde tasarlanmıştır. Kare hızı kontrolü CTS'deyken test, YUV görüntüsünün tutarlılığını kontrol eder.

Test edilen API'ler:

Başarılı: Yakalamalar tutarlı görünüyor.

test_kilitli_patlama_karesi0

test_kilidi_patlama_karesi0.jpg

test_kilitli_patlama_karesi1

test_kilidi_patlama_karesi1.jpg

test_kilidi_patlama_karesi2

test_kilidi_patlama_karesi2.jpg

test_param_renk_düzeltmesi

Ayarlandığında android.colorCorrection.* parametrelerinin uygulandığını test eder. Farklı dönüşüm ve kazanç değerlerine sahip çekimler ve uygun şekilde farklı göründüklerini test eder. Dönüştürme ve kazançlar, çıktıyı daha fazla kırmızı veya mavi yapmak için seçilir. Doğrusal bir ton haritası kullanır. Ton eşleme, yüksek dinamik aralıklı resimlerin daha sınırlı bir dinamik aralığa sahip bir ortamda görünümünü yaklaşık olarak belirlemek üzere bir renk grubunu diğeriyle eşlemek için resim işlemede kullanılan bir tekniktir.

Test edilen API'ler:

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

test_param_renk_düzeltme_diyagramı

test_param_renk_düzeltme_diyagramı_ortalaması.png

*X ekseni, yakalama istekleridir: 0 = birlik, 1=kırmızı güçlendirme, 2= mavi artış

test_param_color_düzeltme_req=0

test_param_color_troubleshoot_req=0.jpg

test_param_color_verifyness_req=1

test_param_color_VERIFICATIONness_req=1.jpg (R artışı)

test_param_color_düzeltme_req=2

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

test_param_exposure_time

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

Test edilen API'ler:

Başarılı: Her kare bir önceki çekimden daha parlaktır.

test_param_exposure_time_frame0

test_param_exposure_time_frame0.jpg

test_param_exposure_time_grafiği

test_param_exposure_time_grafiği.png

test_paramı_flaş_modu

android.flash.mode parametresinin uygulandığını test eder. Flaşın etkinleşip etkinleşmediği açıkça belli olacak şekilde pozlamayı karanlık tarafta olacak şekilde manuel olarak ayarlar ve doğrusal bir ton haritası kullanır. Flaşın etkinleşip etkinleşmediğini doğrulamak için oluşturulmuş büyük bir gradyan olup olmadığını görmek için karo resmin yer aldığı merkezi kontrol eder.

Test edilen API'ler:

Başarılı: Karo resminin ortasında flaşın etkinleştiği anlamına gelen büyük bir gradyan vardır.

test_paramı_flaş_modu_1

test_param_flash_mode_1.jpg

test_paramı_flaş_modu_1_kutusu

test_param_flash_mode_1_tile.jpg

test_paramı_flaş_modu_2

test_param_flash_mode_2.jpg

test_paramı_flaş_modu_2_kutu

test_param_flash_mode_2_tile.jpg

test_param_noise_azaltma

Ayarlandığında android.noiseReduction.mode parametresinin doğru şekilde uygulandığını test eder. Kamera loş ışık açıkken çeker. Çekilen görüntünün parazitli olmasını sağlamak için yüksek bir analog kazanç kullanır. NR kapalı, "hızlı" ve "yüksek kalite" için üç görüntü yakalar. Ayrıca, düşük kazanç ve NR kapalı olduğu bir görüntüyü yakalar ve bunun varyansını referans değer olarak kullanır. SNR (Sinyal-Gürültü Oranı) yükseldikçe görüntü kalitesi de artar.

Test edilen API'ler:

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

test_param_gürültü_azaltma_diyagramı_SNR

test_param_gürültü_azaltma_diyagramı_SNR'ler.png

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

test_param_noise_azaltma_yüksek_kazanç_nr=0

test_param_noise_reduction_high_gain_nr=0.jpg

test_param_noise_azaltma_yüksek_kazanç_nr=1

test_param_noise_reduction_high_gain_nr=1.jpg

test_param_noise_azaltma_yüksek_kazanç_nr=2

test_param_noise_reduction_high_gain_nr=2.jpg

test_param_noise_azaltma_yüksek_kazanç_nr=3

test_param_noise_reduction_high_gain_nr=3.jpg

test_param_noise_azaltma_düşük_kazanç

test_param_noise_reduction_low_gain.jpg

test_param_hassaslık

android.sensor.sensitivity parametresinin uygulandığını test eder. Test, her çekimde sabit pozlama ile hassasiyeti 5 adımda artırır.

Test edilen API'ler:

Başarılı: RGB, merkezin% 10'u daha yüksek hassasiyetle daha parlak hale gelir.

test_param_sensitivity_iso=0055

test_param_sensitivity_iso=0055.jpg

test_param_sensitivity_iso=1819

test_param_sensitivity_iso=1819.jpg

test_param_sensitivity_iso=3583

test_param_sensitivity_iso=3583.jpg

test_param_sensitivity_iso=5347

test_param_sensitivity_iso=5347.jpg

test_param_sensitivity_iso=7111

test_param_sensitivity_iso=7111.jpg

test_paramı_hassaslık_grafiği

test_param_hassaslık_diyagramı.png

test_paramı_gölgeleme_modu

android.shading.mode parametresinin uygulandığını test eder.

Test edilen API'ler:

Başarılı: Gölgelendirme modları değiştirilir ve lens gölgelendirme haritaları beklendiği gibi değiştirilir.

test_param_gölgeleme_modu_ls_haritalar_modu_0_döngü_0

test_param_gölgeleme_modu_ls_haritalar_modu_0_döngü_0.png

test_param_gölgeleme_modu_ls_haritalar_modu_1_döngü_0

test_param_gölgeleme_modu_ls_haritalar_modu_1_döngü_0.png

test_param_gölgeleme_modu_ls_haritalar_modu_2_döngü_0

test_param_gölgeleme_modu_ls_haritalar_modu_2_döngü_0.png

test_param_tone eşlem_modu

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

Test edilen API'ler:

Başarılı:

  • test1: Her iki resimde de doğrusal bir ton eşlemesi var, ancak n=1'in daha dik bir gradyanı vardır. G (yeşil) kanalı, n=1 resmi için daha parlaktır.
  • test2: Ton eşlemesi aynı, ancak uzunlukları farklı. Resimler aynı.
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg
test_param_tonemap_mode_n=0.jpg test_param_tonemap_mode_n=1.jpg

ham_hassaslık_artırma_sonucu_test_sonrası

RAW hassasiyeti artışından sonra kontroller. Farklı hassasiyetle bir dizi RAW ve YUV resmi yakalar, RAW hassasiyeti artırma kombinasyonunu yayınlar ve çıkış pikselinin istek ayarlarıyla eşleşip eşleşmediğini kontrol eder.

Test edilen API'ler:

Başarılı: RAW resimler daha koyu hale gelirken YUV resimleri parlaklıkta sabit kalır

test_sonrası_ham_hassaslık_artırma_artırma=3583_artırma=0100

test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg

test_sonrası_ham_hassaslık_artırma_artırma=1792_artırma=0200

test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg

test_sonrası_ham_hassaslık_artırma_artırma=0896_artırma=0400

test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg

test_sonrası_ham_hassaslık_artırma_artırma=0448_artırma=0800

test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg

test_sonrası_ham_hassaslık_artırma_artırma=0224_artırma=1600

test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg

test_sonrası_ham_hassaslık_artırma_artırma=0112_artırma=3199

test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg

test_sonrası_ham_hassaslık_artırma_oranları_artırma

test_sonrası_ham_hassaslık_artırma_oranı.png

test_sonrası_ham_hassaslık_artırma_yuv_s=0112_artırma=3199

test_post_ham_sensitivity_boost_yuv_s=0112_boost=3199.jpg

test_sonrası_ham_hassaslık_artırma_yuv_s=0448_artırma=0800

test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg

test_sonrası_ham_hassaslık_artırma_yuv_s=0896_artırma=0400

test_post_ham_sensitivity_boost_yuv_s=0896_boost=0400.jpg

test_sonrası_ham_hassaslık_artırma_yuv_s=1792_artırma=0200

test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg

test_sonrası_ham_hassaslık_artırma_yuv_s=3585_artırma=0100

test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg

test_sonrası_ham_hassaslık_artırma_yüzdesi_diyagramı

test_sonrası_ham_hassaslık_artırma_yürütme_diyagramı.png

ham_patlama_hassaslığı

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

Test edilen API'ler:

Geçiş: Kazanç arttığı için her kare bir önceki çekimden daha gürültülüdür.

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

iş_ham_patlaması_hassaslık_varyansı

test_ham_patlama_hassaslık_varyansı.png

test_ham_pozlama

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 değerini (kazanç) artırdığınızda pikseller ışığa karşı daha hassas hale gelir, böylece grafik sola doğru hareket eder.

test_raw_exposure_s=55

test_raw_exposure_s=55.png

(100 ms'dir, 101 10 ms'dir, 10−1 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

ham_hassaslık_testi

Artan hassasiyete sahip bir dizi ham görüntü yakalar ve görüntünün% 10'luk merkezindeki gürültüyü (varyansı) ölçer. Her çekimin bir öncekine göre daha gürültülü olup olmadığını test eder.

Test edilen API'ler:

Başarılı: Her karede varyans artar.

ham_hassaslık_varyansı_test

ham_hassaslık_varyansı.png

gürültü_azaltma_test_tekrar_işlemi

Yeniden işleme isteklerine android.noiseReduction.mode öğesinin uygulandığını test eder. Yeniden işlenmiş görüntüleri kamera loş ışık altında çeker. Yakalanan görüntünün parazitli olmasını sağlamak için yüksek bir analog kazanç kullanır. NR kapalı, "hızlı" ve "yüksek kaliteli" için yeniden işlenmiş üç görüntü yakalar. Düşük kazanç ve NR kapalı olduğu için yeniden işlenmiş bir görüntü yakalar ve bunun varyansını referans değer olarak kullanır.

Test edilen API'ler:

Başarılı: HIZLI >= KAPALI, HQ >= 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 dizi çekimi test eder. Doğrusal bir ton haritasıyla 3 manuel çekim yapabiliyorsunuz. Varsayılan ton haritasıyla 3 manuel çekim yakalar. Her bir ardışık kare çifti arasındaki deltayı hesaplar.

Test edilen API'ler:

Başarılı: Birbirinin aynı olan 3 kare ve ardından 3 tane aynı kareden oluşan farklı bir grup vardır.

test_tonemap_sequence_i=0

test_tonemap_sequence_i=0.jpg

test_tonemap_sequence_i=1

test_tonemap_sequence_i=1.jpg

test_tonemap_sequence_i=2

test_tonemap_sequence_i=2.jpg

test_tonemap_sequence_i=3

test_tonemap_sequence_i=3.jpg

test_tonemap_sequence_i=4

test_tonemap_sequence_i=4.jpg

test_tonemap_sequence_i=5

test_tonemap_sequence_i=5.jpg

test_yuv_jpeg_all

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

Test edilen API'ler:

Başarılı: Tüm görüntü merkezlerinin, en yüksek çözünürlüklü YUV görüntüsüne sahip RGB'den dönüştürülmüş resimlerde maksimum RMS (bir sinyalin kök ortalama kare değeri) farkı vardır.

test_yuv_jpeg_all

test_yuv_jpeg_all.png

test_yuv_plus_dng

Görüntü yakalama için bildirilen boyut ve biçimlerin işe yarayıp yaramadığını test eder.

Test edilen API'ler:

Başarılı: Test, istenen resimleri tamamlayıp döndürür.

test_yuv_plus_dng

test_yuv_plus_dng.jpg

test_yuv_plus_jpeg

Hem YUV hem de JPEG çıkışları olarak tek bir kare yakalamayı test eder. image_processing_utils modülü tarafından dönüştürüldüğünde YUV ve JPEG'nin aynı görünmesi için doğrusal ton eşlemesine sahip manuel bir istek kullanır.

Test edilen API'ler:

Başarılı: YUV ve JPEG resimleri benzerdir ve% 1'den az RMS (bir sinyalin kök ortalama kare değeri) farkına sahiptir.

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

test_yuv_plus_ham

Hem RAW/RAW10/RAW12 hem de YUV çıkışları olarak tek bir kare yakalamayı test eder (destekleniyorsa). Ham ve YUV'nin aynı olması beklendiği için doğrusal ton eşlemeyle manuel istek kullanır. RGB'den dönüştürülmüş görüntülerin orta% 10 RGB değerlerini karşılaştırır. Günlüklerandroid.shading.mode.

Test edilen API'ler:

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

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

sahne2_a

sahne2_a'da gri arka planlı ve nötr giysilerle üç yüzü vardır. Yüzler, çok çeşitli ten rengine sahip olacak şekilde seçilir. Yüz algılamanın en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir.

sahne2_a

sahne2_a

otomatik_flaşı test et

Karanlık bir sahnede otomatik flaşın tetiklendiğini test eder. Döşeme resminin ortasındaki büyük bir gradyan kontrol edilerek otomatik flaşın etkinleştiğini doğrular. Otomatik flaşın tetiklenmesi için test düzeneğindeki tabletin ve ışıkların kapatılması gerekir. Tablet, test yapılarak kapatılmıştır. Işıklar, Arduino kumanda ile otomatik olarak kapatılabilir. Testin doğru şekilde çalışması için sahne tamamen karanlık olmalıdır. Bu nedenle, arka tabletin açıklığı sahne tableti tarafından tamamen kapatılmalıdır ve ön açıklık, uzak ışığın düzene girmesini engellemek için bir diyafram açıklığı ve DUT telefon ile kapatılmalıdır.

Test edilen API'ler:

Başarılı: Karo resminin ortasında otomatik flaşın etkinleştiği anlamına gelen büyük bir gradyan vardır.

test_otomatik çerçeveleme

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

Test edilen API'ler:

Başarılı: Üç yüz de algılandı.

test_display_p3

ColorSpaceProfiles API'yi kullanarak JPEG biçiminde Display P3 yakalamayı test eder. Yakalanan JPEG'nin başlığında uygun bir ICC profiline sahip olup olmadığını ve resmin sRGB gamının dışında renkler içerip içermediğini test eder.

Test edilen API'ler:

Başarılı: JPEG, Display P3 ICC profili ve sRGB gamının dışında renkler içeriyor.

test_efektleri

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

Test edilen API'ler:

Geçiş: Sahne resmini OFF efektleriyle ve efektleri MONO olarak ayarlanmış tek renkli resim yakalar.

test_efektleri_MONO

test_efektleri_MONO.jpg

test_biçimi_komboları

Farklı çıkış biçimi kombinasyonlarını test eder.

Test edilen API'ler:

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

test_jpeg_quality

Kameranın JPEG sıkıştırma kalitesini test eder. JPEG kalitelerini android.jpeg.quality tarihine kadar uygulayın ve Nicelendirme Tablolarının doğru şekilde değişmesini sağlayın.

Test edilen API'ler:

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

test_jpeg_quality

Pixel 4 arka kamera luma/renk DQT matrisi ortalamaları ile JPEG kalitesi karşılaştırması

test_jpeg_quality başarısız oldu

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

Çok düşük kaliteli resimler için (jpeg.quality < 50) miktar matrisinde sıkıştırmada artış olmadığını unutmayın.

yüz_sayısı

Yüz algılamayı test eder.

Test edilen API'ler:

Başarılı: Üç yüz bulur.

test_yüzleri_fd_modu_1

test_num_faces_fd_mode_1.jpg

test_önizleme_min_kare_oranı

Önizleme kare hızının karanlık bir sahnede doğru şekilde düşüp düşmediğini test eder. Bu testin doğru şekilde çalışması için test sistemindeki ışıklar, kumanda tarafından veya test operatörü tarafından manuel olarak kapatılmalıdır.

Test edilen API'ler:

Başarılı: Önizleme kare hızı, istenen kare hızı aralığının minimumunda ve kareler arasındaki varyasyon, testte ayarlanan mutlak toleranstan az.

test_yeniden_işleme_uv_değişim

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

Test edilen API'ler:

Geçiş: U ve V uçakları değiştirilmez.

test_yeniden_işleme_uv_değişim

test_yeniden_işleme_uv_değişim.png

sahne2_b

yüz_sayısı

Yüz sahnelerinde daha fazla ten rengi sunarak yüz algılamayı test eder.

Test edilen API'ler:

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

test_yüzleri_fd_modu_1

test_num_faces_fd_mode_1.jpg

test_yuv_jpeg_capture_aynılık

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

Test edilen API'ler:

Başarılı: YUV ve JPEG resimleri benzerdir ve% 1'den az RMS (bir sinyalin kök ortalama kare değeri) farkına sahiptir.

sahne2_c

yüz_sayısı

Yüz sahnelerinde daha fazla ten rengi sunarak yüz algılamayı test eder.

Test edilen API'ler:

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

test_yüzleri_fd_modu_1

test_num_faces_fd_mode_1.jpg

test_jpeg_capture_perf_class

CDD'nin bölüm 2.2.7.2 Kamera'da 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 ışıklandırma koşulları (3000 K) altında CTS kamera PerformanceTest tarafından ölçüldüğü üzere, 1.080p çözünürlük için Camera2 JPEG yakalama gecikmesinin 1.000 ms'den az olması ZORUNLUDUR.

test_kamera_başlatma_perf_sınıfı

CDD'deki bölüm 2.2.7.2'de 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 de ITS ışıklandırma koşulları (3000K) altında CTS kamera PerformanceTest tarafından ölçüldüğü üzere kamera2 başlatma gecikmesinin (kamerayı ilk önizleme karesine açma) 600 ms'den az olması ZORUNLUDUR.

sahne2_d

yüz_sayısı

Yüz sahnelerinde daha fazla ten rengi sunarak yüz algılamayı test eder.

Test edilen API'ler:

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

sahne2_e

sürekli_resim_test

Yakalama isteğinin ilk ayarıyla 50 VGA çözünürlük karesi yakalanır android.control.afMode = 4 (CONTINUOUS_PICTURE).

Test edilen API'ler:

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

yüz_sayısı

Yüz sahnelerinde daha fazla ten rengi sunarak yüz algılamayı test eder.

Test edilen API'ler:

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

sahne2_f

sahne2_f'de, arka planı beyaz ve kıyafetli üç yüzü var. Yüzlerin farklı ten rengine sahip olması ve arka planla yüksek kontrastları vardır.

sahne2_f.png

sahne2_f

yüz_sayısı

Yüz sahnelerinde daha fazla ten rengi sunarak yüz algılamayı test eder.

Test edilen API'ler:

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

test_yüzleri_fd_modu_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 ayıklayıcı yöntemi kullanır. Bu nedenle, kaydedilen resimlerin çoğu sahne 1, 2 veya 4'teki resimler gibi kenarlıklarla değil, yalnızca grafik içerir. Grafik bulucunun en iyi şekilde çalışması için grafik doğru yönde olmalıdır.

test_3a_tutarlılık

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

Test edilen API'ler:

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

test_kenarı_geliştirme

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 çıkış görüntüsü ile yakalama sonucu meta verisinin keskinliğini döndürür. Yakalama isteğini belirli bir sınır modu, hassasiyet, pozlama süresi, odak mesafesi ve çıkış yüzeyi parametresiyle işler.

Başarılı: HQ modu (2) OFF modundan (0) daha keskindir. FAST modu (1), OFF modundan daha keskindir. HQ modu, FAST moduna daha keskin veya eşit.

Test edilen API'ler:

Etkilenen kamera parametreleri:

  • EDGE_MODE

test_edge_geliştirme_ucu=0

test_edge_enhancement_edge=0.jpg

test_kenarı_geliştirme_ucu=1

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

test_kenarı_geliştirme_ucu=2

test_edge_enhancement_edge=2.jpg (yüksek kaliteli mod)

test_flip_ayna

Görüntünün CDD bölüm 7.5.2 Ön Yüzey Kamera [C-1-5] bölümüne göre doğru şekilde yönlendirilip yönlendirilmediğini test eder.

Yansıtılmış, çevrilmiş veya döndürülmüş görüntüler, ortaya yakın yerde bulunan elmas özelliğiyle tanınabilir.

Başarılı: Resim döndürülmüyor, yansıtılmıyor veya döndürülmüyor.

test_flip_yansıtma_sahnesi_yama

test_flip_ayna_sahne_yamasi.jpg

portre_yatay_testi

Yataydan dikey yöndeki geçersiz kılmanın, yatay 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 dikey konuma geçiş devre dışı bırakıldığında 0 derece, etkinleştirildiğinde 90 derece).

portre_yatay_testi

portrait_test_manzarası.png

test_lens_movement_raporlama

Lens hareketi işaretinin doğru şekilde bildirilip bildirilmediğini test eder. İlk 12 kare optimum odak uzaklığında (3 A'da bulunan şekilde) ve son 12 kare minimum odak mesafesinde olacak şekilde 24 görüntüden oluşan seri çekim yakalar. 12. kare çevresinde lens hareket eder ve keskinliğin düşmesine neden olur. Mercek son konuma yaklaştıkça keskinlik stabil hale gelir. Mercek hareketi işareti, lensin optimum odak uzaklığında sabit olduğu ilk birkaç karede ve lensin minimum odak uzaklığında sabit olduğu son birkaç karede keskinliğin orta düzeyde keskinlik olduğu tüm karelerde belirtilmelidir. Merceğin hareket ettiği tam kare önemli değildir: İşaretlenen, mercek hareket ederken hareket bayrağının onaylandığıdır.

Test edilen API'ler:

Başarılı: Keskinlik değişimiyle karede Lens hareketi işareti True.

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

  • test_log.DEBUG öğesinde lens_moving: True (android.hardware.camera2.CaptureResult#LENS_STATE = 1), yalnızca keskinliğin değişmediği karelerde belirtilir.
  • test_log.DEBUG içinde lens_moving: False (android.hardware.camera2.CaptureResult#LENS_STATE = 0) bulunan karelerde, optimum odak mesafesindeki ilk birkaç kareye veya minimum odak mesafesindeki son birkaç kareye kıyasla bir keskinlik farkı vardır.

test_yeniden_işleme_ucu_geliştirme

Uç geliştirme için desteklenen yeniden işleme yöntemlerinin düzgün çalışıp çalışmadığını test eder. Yakalama isteğini belirli bir yeniden işleme uç moduyla işler ve yeniden işleme kenar modları devre dışıyken yakalamak için farklı modları karşılaştırır.

Test edilen API'ler:

Başarılı: Farklı kenar modlarında keskinlik. HQ (mod 2), OFF'dan (mod 0) daha keskindir ve farklı modlar arasındaki iyileşme benzerdir.

test_yeniden_işleme_ucu_geliştirme_grafiği

test_yeniden_işleme_ucu_geliştirme_diyagramı.png

sahne4

Scene4, kare içinde beyaz bir arka plan üzerinde siyah bir daireden oluşuyor.

sahne4

sahne4

test_en boy_oranı_ve_kırpma

Görüntülerin, görüntü ardışık düzeninde beklenmedik bir şekilde bozulup bozulmadığını veya kırpılıp kırpılmadığını test eder. Bir dairenin tüm biçimlerdeki resmini çeker. Dairenin bozuk olmadığını, dairenin resmin merkezinden hareket etmediğini ve farklı en boy oranlarında veya çözünürlüklerde yanlış bir şekilde boyut değiştirmediğini doğrular.

Test edilen API'ler:

Başarılı: Resimler uzatılmaz, resimlerin ortası %3'ten fazla farklılık göstermiyor ve mümkün olan maksimum FoV (görüş alanı) korunur.

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

  • Kamera, çekilen sahnenin ortasında, tablette gösterilen çemberle hizalı değildir.
  • Yakalanan görüntüdeki daire, işleme ardışık düzeni tarafından bozulmuş.
  • Düşük çözünürlüklü resimler, resim ardışık düzeninde iki kez kırpılarak yüksek ve düşük çözünürlüklü resimler arasında farklı FoV'ler oluşturulur.
  • Yakalanan resimdeki daire, resmin yüksekliğini veya genişliğini azaltan aşırı bir en boy oranı yakalama isteği nedeniyle kırpılmıştır.
  • Çekilen görüntüdeki dairenin merkezinde bir yansıma vardır ve tamamen dolu görünmez.

test_çoklu_kamera_hizalama

Çok kameralı sistemler için kameranın konumlandırmasıyla ilgili kamera kalibrasyon parametrelerini test eder. Çok kameralı fiziksel alt kameralar kullanıldığında, fiziksel kameralardan biriyle resim çekilir. Dairenin merkezini bulur. Daire merkezini her bir kamera için dünya koordinatlarına yansıtır. Dünya koordinatlarında kameraların çember merkezleri arasındaki farkı karşılaştırır. Dünya koordinatını piksel koordinatlarına göre yeniden planlar ve doğruluk kontrolü olarak orijinallerle karşılaştırır. Kameraların odak uzaklıklarının farklı olup olmadığını kontrol ederek daire boyutlarını karşılaştırır.

Test edilen API'ler:

Başarılı: Daire merkezleri ve boyutları, kamera kalibrasyon verileri ve odak uzaklıkları kullanılarak çekilen görüntülere kıyasla, öngörülen görüntülerde beklendiği gibidir.

Başarısızlık 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 kurulumu için uygun değil. Örneğin, RFoV test düzeneği ile geniş ve ultra geniş bir kamera sistemini test etmek. Daha fazla bilgi için Kamera ITS'si ile ilgili SSS1 bölümünü inceleyin.

test_önizleme_en boy_oranı_ve_kırpma

Hareketsiz çekimler için test_aspect_ratio_and_crop testine benzer şekilde bu test, önizleme karelerinin uzatılmadığından veya uygun şekilde kırpılmadığından emin olmak için desteklenen önizleme biçimlerini kontrol eder. Dairenin en boy oranının değişmediğini, kırpılan resimlerin daireyi çerçevenin merkezinde tuttuğunu ve daire boyutunun sabit bir biçim veya farklı çözünürlüklerde (görüş alanı kontrolü) değişmediğini doğrular.

Test edilen API'ler:

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

test_önizleme_stabilization_fov

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

Test edilen API'ler:

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

test_video_en_oranı_ve_kırpma

Tüm video biçimlerinin üzerinde, bir karenin içindeki bir dairenin videolarını çeker. Animasyon karelerini çıkarır ve dairenin en boy oranının değişmediğini doğrular, kırpılan resimler daireyi ortada tutar ve daire boyutu sabit biçimde veya farklı çözünürlükte değişmez (görüş alanı kontrolü).

Test edilen API'ler:

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

sahne5

Scene5'te eşit şekilde aydınlatılmış gri bir sahne gerekir. Bu işlem, kamera lensine yerleştirilen bir difüzörle gerçekleştirilir. Aşağıdaki difüzörü öneririz: www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168.

Sahneyi hazırlamak için kameranın önüne bir difüzör takın ve kamerayı yaklaşık 2000 lüks ışıklandırma kaynağına doğrultun. Sahne5 için çekilen görüntülerde, hiçbir özelliğin belirlenmediği dağınık ışıklandırma gerekir. Aşağıda örnek bir görüntü verilmiştir:

sahne5

sahne5 çekimi

test_lens_gölgelemesi_ve_renk_tek tiplik

Lens gölgelendirmesi düzeltmesinin uygun şekilde uygulandığını ve tek renkli tek tip bir sahnenin renginin eşit olarak dağıtıldığını test eder. Bu testi otomatik 3A ile bir YUV çerçevesi üzerinde gerçekleştirir. Lens gölgelendirmesi, y kanalına göre değerlendirilir. Belirtilen her örnek blok için ortalama y değerini ölçer ve ortadaki 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 alanında değerlendirilir.

Test edilen API'ler:

Başarılı: Resmin belirtilen yarıçapında, r/g ve b/g değerinin varyansı testi geçmek için% 20'den az olmalıdır.

sahne6

Scene6, bir köşesinde yönü belirtmek için karenin bulunduğu küçük dairelerden oluşan bir ızgaradır. Küçük daireler, yakınlaştırma işlevini geniş bir aralık üzerinde test etmek için gereklidir.

sahne6

sahne6

Sensörde_yakınlaştırma_testi

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

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

Test edilen API'ler:

Başarılı: Aşağı ölçeklenmiş kırpılmış RAW resmi ile tam FoV RAW resmi arasındaki 3D kök ortalama kare (RMS) farkı %1'den azdır.

test_yakınlaştırma

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

Test edilen API'ler:

Başarılı: Çekilen dairenin göreli boyutu, kameranın doğru yakınlaştırma yaptığından emin olmak için, istenen yakınlaştırma oranına göre doğru hesaplanır.

test_yakınlaştırma

merkeze en yakın dairenin dış çizgisini bulmak için test_zoom yöntemini kullanın.

test_düşük_gecikme_yakınlaştırma

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 görüntüleri alır ve çıkış 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öreli boyutu, yakınlaştırma oranı sonuç meta verilerine göre doğrudur.

test_önizleme_video_yakınlaştırma_eşleşmesi

Kayıt ve yakınlaştırma sırasında video önizleme ve video çıkışının gösterilip gösterilmediğini test eder ve aynı çıkışı kaydeder. 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 da artıp artmadığını kontrol eder.

Test edilen API'ler:

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

VGA_640x480_anahtar_karesi.png

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

önizleme_640x480_anahtar_karesi.png

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

VGA_640x480_anahtar_çerçeve_yakınlaştırılmış.png

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

önizleme_640x480_anahtar_kare_yakınlaştırıldı.png

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

sahne_uzantıları

scene_extensions testleri, kamera uzantıları içindir ve test ortamı üzerinde hassas bir kontrole ihtiyaç duydukları için Kamera ITS'sini kullanmalıdır.

sahne_hdr

scene_hdr sahnesinin sol tarafında dikey bir resim ve sağ tarafta düşük kontrastlı bir QR kodu bulunur.

sahne_hdr

sahne_hdr

test_hdr_uzantısı

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

Test edilen API'ler:

Başarılı: HDR uzantısı, QR kodunu algılamak için gereken kontrast değişikliklerinin sayısını azaltır veya QR kodu genelinde gradyanı azaltır.

sahne_gecesi

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

sahne_gecesi

sahne_gecesi

test_gecesi_uzantısı

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

  • Gece uzantısı etkinleştirilmişse çekim daha uzun sürer.
  • Gece uzantısı etkinleştirildiğinde fotoğraf daha parlak olur veya iyileştirilmiş bir görünüme sahip sahne yapılarına sahiptir.

Test edilen API'ler:

Başarılı: Gece uzantısı etkinleştirilmemiş çekimlerle karşılaştırıldığında Gece uzantısı etkinleştirilmiş olan çekim en az 0, 5 saniye sürer. Yakalama, en az% 10 daha parlak olmalıdır veya sahnedeki gri noktalar, etrafındaki dairenin merkezinden 20 piksel daha aşağıda olmalıdır.

sensör_füzyonu

Sensör füzyon testleri, dama tahtası deseninin önünde belirli bir telefon hareketi gerektirir. En iyi sonuçlar için test grafiğinin düz bir şekilde yerleştirildiğinden emin olun. Düz olmayan grafikler, testlerin çoğu için rotasyon hesaplamalarını etkiler. sensor_fusion testleri, Sensor Fusion Box ile otomatikleştirilebilir.

dama tahtası

Dama tahtası resmi

test_çoklu_kamera_karesi_senkronizasyon

Zaman damgasını belirlemek için dama tahtası içindeki karelerin açılarını hesaplayarak mantıksal kamera tarafından yakalanan kare zaman damgalarının 10 ms. içinde olduğunu test eder.

Test edilen API'ler:

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

önizleme_stabilizasyonu

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

Test edilen API'ler:

Geçti: Kareler üzerinde maksimum açı döndürme, jiroskop dönüşünün% 70'inden azdır.

Aşağıda sabitleme kullanılan ve olmayan örnek videolar verilmiştir.

  • Sabitleme uygulanmış örnek video

  • Sabitlemesiz örnek video

test_sensörü_füzyonu

AR ve VR uygulamaları için kamera ile jiroskop arasındaki zaman damgası farkını test eder. Telefon, dama tahtası deseninin önünde 90 derece 10 kez döndürülür. Hareket yaklaşık 2 sn'lik gidiş dönüştür. Herhangi bir jiroskop eklenmezse veya zaman damgası kaynağı REALTIME parametresi etkinleştirilmediyse bu test atlanır.

test_sensor_fusion testi birkaç grafik oluşturur. Hata ayıklamayla ilgili en önemli iki grafik şunlardır:

  • test_sensor_fusion_gyro_events: Test sırasında telefonun jiroskop etkinliklerini gösterir. X ve y yönünde hareket etmek, telefonun montaj plakasına güvenli bir şekilde takılmadığı anlamına gelir. Bu da testin geçme olasılığını azaltır. Grafikteki döngü sayısı, çerçeveleri kaydetmek için kullanılan yazma hızına bağlıdır.

    test_sensor_fusion_gyro_events.png

    test_sensörü_fusion_gyro_etkinlikleri

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

    test_sensörü_füzyon_grafiği_rotations.png

    test_sensörü_füzyon_rotasyonları

Test edilen API'ler:

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

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

  • Kaydırma hatası: Kamera-jiroskop ofseti, +/-1 ms. içinde olacak şekilde doğru şekilde kalibre edilmemiş.
  • Kare düşüşleri: Ardışık düzen, art arda 200 kare yakalayacak kadar hızlı değil.
  • Yuva hataları: adb, testi yürütülecek kadar uzun süre DUT'ye güvenilir şekilde bağlanamaz.
  • Grafik düz eklenmez. test_sensor_fusion_plot_rotations grafiğinde, kamera grafiğin düz olmayan kısımları arasında dönerken jiroskop ve kamera dönüşünün önemli ölçüde değiştiği kareler bulunmaktadır.
  • Kamera düz bir şekilde monte edilmemiş. test_sensor_fusion_gyro_events grafiği, X ve Y düzlemlerindeki hareketi gösteriyor. Arka kamerada çoğu zaman telefon gövdesinin geri kalanına yükseltilmiş bir çıkıntı olduğundan, telefonun arkasını montaj plakasına monte ederken bir eğilim oluştuğundan bu hata ön kameralarda daha yaygındır.

video_stabilizasyonu

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

Test edilen API'ler:

Geçti: Kareler üzerinde maksimum açı döndürme, jiroskop dönüşünün% 60'ından azdır.

Aşağıda sabitleme kullanılan ve olmayan örnek videolar verilmiştir.

  • Sabitleme uygulanmış örnek video

  • Sabitlemesiz örnek video

test_led_anlık_görüntü

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

Bu test, ışıkları kontrol etmek için sensör füzyon kutusuna bir ışıklandırma denetleyicisi ekler. Işıklar OFF olarak ayarlandığında, test AUTO_FLASH modu ON olarak ayarlanarak fotoğraf çeker. Bu yakalama sırasında test, aePrecapture tetikleyicisi START olarak ayarlanmış bir önceden yakalama sırası çalıştırır ve yakalamayı flash ile almak için yakalama amacını Preview olarak ayarlar.

Yakalamanın flaş nedeniyle ayırt edici bir hotspot'u 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. Resmin makul ölçüde 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 dahilinde olup olmadığını doğrular.

Test edilen API'ler:

Başarılı: R/G ve S/G oranları 0,95 ve 1,05 dahilinde. Flash görüntüsü ortalaması (68, 102) aralığındadır.