Kamera ITS testleri

Bu sayfada, Android Compatibility Test Suite (CTS) Verifier'ın bir parçası olan Kamera Görüntüsü Test Paketi (ITS) kapsamındaki testlerin kapsamlı bir listesi yer alı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ığını doğrularlar. Bu belge, geliştiricilerin ve test uzmanlarının her bir testin ne işe yaradığını ve test hatalarının nasıl ayıklanacağını anlamasını sağlar.

ITS testleri, her Android sürümüyle birlikte güncellenir veya eklenir. Bu testler, ilgili Android sürümünün Kamera ITS sürüm notlarında ayrıntılı olarak açıklanır. Güncellemeler, kullanıcı veya geliştirici tarafından bildirilen hatalara göre yapılır. Eklemeler, kullanıcı veya geliştirici tarafından bildirilen hatalara ve yeni kamera çerçevesi özelliklerinin doğru davranışının doğrulanmasına göre yapılır.

Android 17 ve sonraki sürümlerde, paralel yürütmeye olanak tanımak ve test süresini kısaltmak için Kamera ITS testleri, CTS Verifier'da iki etkinliğe ayrılır: feature_combination ve sensor_fusion testleri için bir etkinlik, diğer tüm testler için başka bir etkinlik. Daha fazla bilgi için Test süresini kısaltma başlıklı makaleyi inceleyin.

Kamera ITS, testleri gerekli kamera özelliklerine, API düzeyine ve medya performans sınıfı (MPC) düzeyine göre filtreler. ITS, API düzeyi için daha düşük API düzeylerindeki işlevlerle ilgili olumsuz kullanıcı deneyimlerini test eden belirli bir API düzeyine eklenen testleri geçitlemek amacıyla ro.product.first_api_level kullanır. ITS, yeni donanım özelliği gerektiren belirli bir API düzeyinde eklenen özelliklerin testlerini geçitlemek için ro.vendor.api_level kullanır. Bir cihaz için ro.odm.build.media_performance_class tanımlanmışsa ITS, MPC seviyesine bağlı olarak belirli testlerin çalıştırılmasını gerektirir.

Testler, sahneye göre aşağıdaki bölümlerde gruplandırılır:

Tablet tabanlı test sahneleri

  • scene0: Meta verileri, titreşimi, jiroskopu ve sarsıntıyı yakalama
  • scene1: Pozlama, hassasiyet, pozlama değeri (EV) telafisi, YUV ile JPEG ve RAW karşılaştırması
  • scene2: Yüz algılama, renkli sahneler gerektiren testler
  • scene3: Kenar geliştirme, lens hareketi
  • scene4: En-boy oranı, kırpma, görüş alanı
  • scene6: Zoom
  • scene7: Çoklu kamera anahtarı
  • scene8: Otomatik pozlama (AE) ve otomatik beyaz dengesi (AWB) bölge ölçümü
  • scene9: JPEG sıkıştırma
  • scene_extensions: Kamera uzantıları
  • scene_tele: Telefoto lens geçişi
  • scene_video: Kare düşüşleri

Gen2 donanımı / sensor_fusion tabanlı test sahneleri

Difüzör tabanlı test sahnesi

Geniş gamutlu tablet tabanlı test sahnesi

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

Tablete dayalı test sahneleri

scene0

Testler için belirli bir sahne bilgisi gerekmez. Ancak jiroskop ve titreşim testi için telefonun sabit olması gerekir.

test_jitter

Kamera zaman damgalarındaki seğirmeyi ölçer.

Test edilen API'ler:

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

Aşağıdaki şekilde, küçük y ekseni aralığına dikkat edin. Bu grafikte seğirme aslında küçük.

test_jitter plot

Şekil 1. test_jitter grafiği.

test_metadata

Yakalama sonuçlarına ve kamera özellikleri nesnelerine bakarak meta veri girişlerinin geçerliliğini test eder. Bu testte, görüntü içeriği önemli olmadığı için auto_capture_request pozlama ve kazanç değerleri kullanılır. Bu, kısa sürede çalıştırılan, minimum kurulum gerektiren ve sonraki aşamalarda önemli sayıda testin başarısız olacağını gösteren bir hızlı başarısızlık testidir. test_metadata başarılı olana kadar test paketinin tamamı çalıştırılmamalıdır.

Test edilen API'ler:

Başarılı: Donanım seviyesi, rollingShutterSkew, frameDuration etiketleri, timestampSource, croppingType, blackLevelPattern, pixel_pitch, görüş alanı (FoV) ve hiperfokal mesafe mevcut ve geçerli değerlere sahip.

test_request_capture_match

Yakalama meta verilerini okuyarak cihazın doğru pozlama ve kazanç değerlerini yazıp yazmadığını test eder. Bu, minimum kurulum gerektiren ve çok sayıda testin başarısız olduğunu gösteren bir hızlı BAŞARISIZ testidir. test_request_capture_match başarılı olana kadar tüm test paketi çalıştırılmamalıdır.

Test edilen API'ler:

Başarılı: İstek ve yakalama meta veri değerleri tüm çekimlerde eşleşiyor.

test_sensor_events

Bu test, sensör füzyonu desteği bildiren cihazların sensör etkinliklerini sorgulayıp yazdırmadığını kontrol eder. Beklenen sensörler ivme ölçer, jiroskop ve manyetometredir. Bu test yalnızca ekran açıksa yani cihaz bekleme modunda değilse çalışır. Bu, kısa bir süre çalışan, minimum kurulum gerektiren ve sensör füzyon testinin başarısız olduğunu bildiren bir hızlı başarısızlık testidir. test_sensor_events, PASS veya SKIP değilse sensor_fusion sahne testleri çalıştırılmamalıdır.

Test edilen API'ler:

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

test_solid_color_test_pattern

Kamera sesini kapatma için düz renk test desenlerinin düzgün şekilde oluşturulup oluşturulmadığını test eder. Kamera sesini kapatma destekleniyorsa düz renkli test desenleri de desteklenmelidir. Kamera sesini kapatma özelliği desteklenmiyorsa düz renk test desenleri yalnızca özellik tanıtılıyorsa test edilir.

Ham 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 düz renk test desenleri doğru renkte ve görüntüde düşük varyans var.

test_test_pattern

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

  1. Desteklenen tüm test desenleri için görüntü yakalar.
  2. Düz renk test deseni ve renk çubukları için doğruluk kontrolü yapar.

Test edilen API'ler:

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

test_test_patterns example

Şekil 2. test_test_patterns örneği.

test_tonemap_curve

Doğrusal ton eşlemeli ham test deseninin YUV'ye dönüşümünü test eder. Bu test, ton eşleme 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 eşleme ve ideal görüntü girişiyle ardışık düzenin doğru renk çıkışlarına sahip olduğunu doğrular (test_test_patterns kullanır).

Test edilen API'ler:

Başarılı: YUV ve RAW birbirine benzer görünür.

test_tonemap_curve ham örneği

Şekil 3. test_tonemap_curve ham örneği.

test_tonemap_curve YUV örneği

Şekil 4. test_tonemap_curve YUV örneği.

test_unified_timestamp

Görüntü ve hareket sensörü etkinliklerinin aynı zaman alanında olup olmadığını test eder. Bu, kısa sürede çalışan, minimum kurulum gerektiren ve sensör füzyon testinin başarısız olduğunu bildiren hızlı bir başarısızlık testidir. sensor_fusion sahne testleri, test_unified_timestamp GEÇTİ veya ATLANDI olarak işaretlenmediği sürece çalıştırılmamalıdır.

Test edilen API'ler:

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

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 titreşmez.

scene1_1

scene1 gri bir grafiktir. Gri grafik, kamera görüş alanının ortadaki% 30'luk kısmını kaplamalıdır. Gri grafik, merkez bölgede özellik bulunmadığından 3A'yı (AE, AWB ve AF) orta düzeyde zorlar. Ancak yakalama isteği, 3A'nın birleşmesi için yeterli özellik içeren sahnenin tamamını belirtir.

RFoV kameralar, WFoV veya RFoV test düzeneğinde test edilebilir. Dar görüş alanına sahip bir kamera, geniş görüş alanına sahip test düzeneğinde test edilirse grafik, 3A'nın yakınsamasına yardımcı olmak için görüş alanındaki gri grafik için bazı sınırlar belirlemek üzere 2/3 oranında ölçeklendirilir. Kamera test donanımlarının daha ayrıntılı açıklamaları için Kamera ITS-in-a-box başlıklı makaleyi inceleyin.

scene1 example

Şekil 5. Tam boyutlu sahne1 grafiği (solda), 2/3 ölçekli grafik (sağda).

test_ae_precapture_trigger

Ön yakalama tetikleyicisi kullanılırken AE durum makinesini test eder. AE devre dışıyken beş manuel istek yakalar. Son istekte, AE devre dışı bırakıldığı için yoksayılması gereken bir AE ön yakalama tetikleyicisi var.

Test edilen API'ler:

Başarılı: AE yakınsar.

test_auto_vs_manual

Otomatik ve manuel çekimlerin yapıldığı testler aynı görünür.

Test edilen API'ler:

Başarılı: Her yakalama sonucunda bildirilen manuel beyaz dengesi kazançları ve dönüşümü, kameranın 3A algoritmasından alınan otomatik beyaz dengesi estimate ile eşleşiyor.

test_auto_vs_manual auto example

Şekil 6. test_auto_vs_manual otomatik örneği.

test_auto_vs_manual white balance example

Şekil 7. test_auto_vs_manual beyaz dengesi örneği.

test_auto_vs_manual manuel beyaz dengesi dönüşümü örneği

Şekil 8. test_auto_vs_manual manuel beyaz dengesi dönüşümü örneği.

test_black_white

Cihazın tamamen siyah beyaz görüntüler üretip üretmediğini test eder. İki çekim yapar. İlkinde son derece düşük kazanç ve kısa pozlama kullanır. Bu çekim, siyah bir fotoğrafla sonuçlanır. İkincisinde ise son derece yüksek kazanç ve uzun pozlama kullanır. Bu çekim, beyaz bir fotoğrafla sonuçlanır.

Test edilen API'ler:

Geçiş: Siyah beyaz resimler üretir. Beyaz resimlerin doygun kanalları, %1'den az farkla hata payı olan [255, 255, 255] RGB değerlerine sahiptir.

test_black_white, black example

Şekil 9. test_black_white, siyah örnek.

test_auto_vs_manual manuel beyaz dengesi dönüşümü örneği

Şekil 10. test_black_white, beyaz örnek.

test_black_white plot means example

Şekil 11. test_black_white, grafik ortalama örneği.

test_burst_capture

Tüm yakalama ardışık düzeninin, tam boyutlu yakalama ve CPU süresi hızına ayak uydurabildiğini doğrular.

Test edilen API'ler:

Başarılı: Tam boyutlu bir dizi görüntü yakalar, kare düşüşlerini ve görüntü parlaklığını kontrol eder.

test_burst_sameness_manual

Manuel yakalama ayarıyla 50 resimden oluşan 5 seri çekim yapar ve hepsinin aynı olduğunu kontrol eder. Farklı şekilde işlenen veya kusurlu olan düzensiz kareler olup olmadığını belirlemek için bu testi kullanın.

Test edilen API'ler:

Başarılı: Resimler görsel olarak ve RGB değerleri açısından aynıdır.

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_burst_sameness_manual_mean

Şekil 12. test_burst_sameness_manual ortalama örneği.

test_burst_sameness_manual_plot_means

Şekil 13. test_burst_sameness_manual_plot_means

test_crop_region_raw

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

Test edilen API'ler:

Başarılı: YUV resimler ortadan kırpılır ancak RAW resimler kırpılmaz.

test_crop_region_raw comp raw kırpma örneği

Şekil 14. test_crop_region_raw comp ham kırpma örneği.

test_crop_region_raw comp raw full example

Şekil 15. test_crop_region_raw comp raw tam örneği.

test_crop_region_raw comp YUV kırpma örneği

Şekil 16. test_crop_region_raw comp YUV kırpma örneği.

test_crop_region_raw_yuv_full example

Şekil 17. test_crop_region_raw YUV tam örneği.

test_crop_regions

Kırpma bölgelerinin çalışıp çalışmadığını test eder. Tam bir görüntü alır ve beş farklı bölgenin (köşeler ve merkez) yamalarını oluşturur. Beş bölge için kırpma ayarı yapılmış resimler çeker. Yama ve kırpılan resim değerlerini karşılaştırır.

Test edilen API'ler:

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

test_ev_compensation

Pozlama değeri (EV) telafisinin uygulanıp uygulanmadığını test eder. Test, temel ve ileri düzey olmak üzere iki bölümden oluşur.

Temel bölümde, EV telafisinin CONTROL_AE_COMPENSATION_STEP ile oluşturulan bir aralık kullanılarak uygulanıp uygulanmadığı test edilir. Her telafi değerinde sekiz kare yakalanır.

Gelişmiş bölümü, pozlamayı sekiz adımda artırır ve ölçülen parlaklığı beklenen parlaklıkla karşılaştırır. Beklenen değerler, EV telafisi uygulanmamış görüntünün parlaklığından hesaplanır. Hesaplanan değerler gerçek görüntü değeri aralığını aşarsa beklenen değer doygunluğa ulaşır. Beklenen değerler ile ö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:

Temel bölüm geçişi: Resimler, beş adımda aşırı pozlama olmadan artan pozlamayı gösterir.

test_ev_compensation_basic

Şekil 18. test_ev_compensation_basic.

Gelişmiş bölüm geçişi: EV telafi ayarı arttıkça luma değerindeki artışı yakalar. Her EV telafisi ayarı için yakalanan sekiz karede sabit luma değerleri vardır.

test_ev_compensation_advanced_plot_means

Şekil 19. test_ev_compensation_advanced_plot_means.

test_exposure_x_iso

ISO ve pozlama süresi değiştiğinde sabit bir pozlama elde edilip edilmediğini test eder. Birbirini dengeleyecek şekilde seçilmiş ISO ve pozlama süresine sahip bir dizi fotoğraf çeker. Sonuçlar aynı parlaklığa sahip olmalıdır ancak dizi boyunca 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 sabitlenmediğini (bu durumda düz çizgiler gibi görünürler) doğrular. Test, yapılandırma dosyanızda debug işaretini ayarlayarak RAW resimlerle de çalıştırılabilir.

Test edilen API'ler:

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

Başarısızlık mekanizması: Aşağıdaki şekilde, kazanç çarpanı değerleri (x ekseni) arttıkça normalleştirilmiş RGB düzlemi ortalama değerleri (y ekseni), düşük kazanç çarpanı değerlerinden sapmaya başlar.

test_exposure_plot_means

Şekil 20. test_exposure_plot_means.

test_exposure_mult=1.00.jpg

Şekil 21. test_exposure_mult=1.00.

test_exposure_mult=64.00

Şekil 22. test_exposure_mult=64.00.

test_latching

FULL ve LEVEL_3 kameralar için ayarların (pozlama ve kazanç) doğru karede kilitlendiğini test eder. Arka arkaya istekler kullanarak bir dizi çekim yapar ve çekimler arasında yakalama isteği parametrelerini değiştirir. Resimlerin beklenen özelliklere sahip olup olmadığını kontrol eder.

Test edilen API'ler:

Başarılı: [2, 3, 6, 8, 10, 12, 13] numaralı resimlerde ISO veya pozlama artırılmış ve aşağıdaki şekildeki grafikte daha yüksek RGB ortalamalarıyla gösterilmiştir.

test_latching plot means example

Şekil 23. test_latching grafiği ortalama örneği.

test_latching i=00

Şekil 24. test_latching i=00.

test_latching i=01

Şekil 25. test_latching i=01.

test_latching i=02

Şekil 26. test_latching i=02.

test_latching i=03

Şekil 27. test_latching i=03.

test_latching i=04

Şekil 28. test_latching i=04.

test_latching i=05

Şekil 29. test_latching i=05.

test_latching i=06

Şekil 30. test_latching i=06.

test_latching i=07

Şekil 31. test_latching i=07.

test_latching i=08

Şekil 32. test_latching i=08.

test_latching i=09

Şekil 33. test_latching i=09.

test_latching i=10

Şekil 34. test_latching i=10.

test_latching i=11

Şekil 35. test_latching i=11.

test_latching i=12

Şekil 36. test_latching i=12.

test_linearity

Cihaz işlemenin doğrusal piksellere dönüştürülüp dönüştürülemeyeceğini test eder. Cihaz, tek tip bir hedefe doğrultulmuşken bir dizi çekim yapar.

Test edilen API'ler:

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

test_linearity plot means example

Şekil 37. test_linearity grafiği ortalama örneği.

test_locked_burst

3A kilidini ve YUV seri çekimini test eder (otomatik ayar kullanılarak). Bu test, MANUAL_SENSOR veya PER_FRAME_CONTROLS bulunmayan sınırlı cihazlarda bile başarılı olacak şekilde tasarlanmıştır. Test, YUV görüntü tutarlılığını kontrol ederken kare hızı kontrolü CTS'dedir.

Test edilen API'ler:

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

test_locked_burst frame0 example

Şekil 38. test_locked_burst frame0 örneği.

test_locked_burst frame1 example

Şekil 39. test_locked_burst frame1 örneği.

test_locked_burst_frame2

Şekil 40. test_locked_burst frame2 örneği.

scene1_2

scene 1_2, scene 1_1'in işlevsel olarak aynı kopyasıdır ve scene 1'nin uzun süresini kısaltmak için bir alt sahne yapısı uygular.

test_param_color_correction

Ayarlandığında android.colorCorrection.* parametrelerinin uygulandığını test eder. Farklı dönüşüm ve kazanç değerleriyle çekim yapar ve bunların buna göre farklı göründüğünü test eder. Dönüşüm ve kazançlar, çıkışın giderek daha kırmızı veya mavi olmasını sağlayacak şekilde seçilir. Doğrusal ton eşleme kullanır.

Ton eşleme, görüntü işlemede kullanılan bir tekniktir. Bu teknikte, yüksek dinamik aralıklı görüntülerin görünümünü daha sınırlı bir dinamik aralığa sahip bir ortamda yaklaşık olarak elde etmek için bir renk kümesi başka bir renk kümesiyle eşlenir.

Test edilen API'ler:

Başarılı: Kırmızı ve mavi değerleri, dönüşüme göre artar.

test_param_color_correction plot means example

Şekil 41. test_param_color_correction grafiği ortalama örneği.

Aşağıdaki şekillerde x ekseni, yakalama isteklerini gösterir: 0 = birlik, 1 = kırmızı güçlendirme ve 2 = mavi güçlendirme.

test_param_color_correction req=0 unity example

Şekil 42. test_param_color_correction req=0 unity örneği.

test_param_color_correctness req=1 red boost example

Şekil 43. test_param_color_correctness req=1 kırmızı güçlendirme örneği.

test_param_color_correction req=2 mavi güçlendirme örneği

Şekil 44. test_param_color_correction req=2 mavi güçlendirme örneği.

test_param_flash_mode

android.flash.mode parametresinin uygulanıp uygulanmadığını test eder. Pozlamayı manuel olarak karanlık tarafa ayarlar. Böylece flaşın patlayıp patlamadığı anlaşılır ve doğrusal ton eşleme kullanılır. Flaşın patlayıp patlamadığını doğrulamak için oluşturulan büyük bir gradyan olup olmadığını görmek üzere karo resminin merkezini kontrol eder.

Test edilen API'ler:

Başarılı: Karo görüntüsünün ortasında büyük bir gradyan var. Bu, flaşın patladığı anlamına gelir.

test_param_flash_mode 1 örneği

Şekil 45. test_param_flash_mode 1 örneği.

test_param_flash_mode 1 karo örneği

Şekil 46. test_param_flash_mode tek karo örneği.

test_param_flash_mode_2 example

Şekil 47. test_param_flash_mode 2 örneği.

test_param_flash_mode 2 karo örneği

Şekil 48. test_param_flash_mode iki karo örneği.

test_param_noise_reduction

Ayarlandığında android.noiseReduction.mode parametresinin doğru şekilde uygulanıp uygulanmadığını test eder. Kamera loş ışıkta görüntü yakalıyor. Yüksek analog kazanç kullanarak yakalanan görüntünün gürültülü olmasını sağlar. Gürültü giderme kapalı, hızlı ve yüksek kalite için üç resim çeker. Ayrıca düşük kazançlı ve gürültü azaltma kapalı bir görüntü yakalar ve bunun varyansını referans olarak kullanır. Sinyal-gürültü oranı (SNR) ne kadar yüksek olursa resim kalitesi de 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 grafiğe benzer şekilde davranır:

test_param_noise_reduction plot SNRs example

Şekil 49. test_param_noise_reduction grafiği SNR'leri örneği.

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

test_param_noise_reduction high gain nr=0 example

Şekil 50. test_param_noise_reduction yüksek kazanç nr=0 örneği.

test_param_noise_reduction high gain nr=1 example

Şekil 51. test_param_noise_reduction yüksek kazanç nr=1 örneği.

test_param_noise_reduction high gain nr=2 example

Şekil 52. test_param_noise_reduction yüksek kazanç nr=2 örneği.

test_param_noise_reduction high gain nr=3 example

Şekil 53. test_param_noise_reduction yüksek kazanç nr=3 örneği.

test_param_noise_reduction düşük kazanç örneği

Şekil 54. test_param_noise_reduction düşük kazanç örneği.

test_param_shading_mode

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

Test edilen API'ler:

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

test_param_shading_mode lens gölgeleme haritası, mod 0 döngü 0 örneği

Şekil 55. test_param_shading_mode lens gölgeleme haritası, mod 0 döngü 0 örneği.

test_param_shading_mode lens gölgeleme haritası, mod 1 döngü 0 örneği

Şekil 56. test_param_shading_mode lens gölgeleme haritası, mod 1 döngü 0 örneği.

test_param_shading_mode lens gölgeleme haritası, mod 2 döngü 0 örneği

Şekil 57. test_param_shading_mode lens gölgeleme haritası, mod 2 döngü 0 örneği.

test_param_tonemap_mode

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

Test edilen API'ler:

Kart:

  • test1: Her iki resimde de doğrusal ton eşleme var ancak n=1 daha dik bir gradyana sahip. n=1 görüntüsünde G (yeşil) kanalı daha parlak.
  • test2: Aynı ton eşleme ancak farklı uzunluk. Görseller aynı.

test_param_tonemap_mode with n=0

Şekil 58. n=0 ile test_param_tonemap_mode.

test_param_tonemap_mode (n=1)

Şekil 59. n=1 ile test_param_tonemap_mode.

test_post_raw_sensitivity_boost

Ham hassasiyet artışından sonraki değeri kontrol eder. Farklı hassasiyetlere sahip bir dizi ham ve YUV görüntüsü yakalar, ham hassasiyet artırma kombinasyonunu yayınlar ve çıkış pikseli ortalamasının istek ayarlarıyla eşleşip eşleşmediğini kontrol eder.

Test edilen API'ler:

Başarılı: Güçlendirme arttıkça RAW görüntüler kararır, YUV görüntülerinin parlaklığı ise sabit kalır.

test_post_raw_sensitivity_boost raw s=3583 boost=0100 example

Şekil 60. test_post_raw_sensitivity_boost raw s=3583 boost=0100 örneği.

test_post_raw_sensitivity_boost raw s=1792 boost=0200 example

Şekil 61. test_post_raw_sensitivity_boost raw s=1792 boost=0200 örneği.

test_post_raw_sensitivity_boost raw s=0896 boost=0400 example

Şekil 62. test_post_raw_sensitivity_boost raw s=0896 boost=0400 örneği.

test_post_raw_sensitivity_boost raw s=0448 boost=0800 example

Şekil 63. test_post_raw_sensitivity_boost raw s=0448 boost=0800 örneği.

test_post_raw_sensitivity_boost raw s=0224 boost=1600 example

Şekil 64. test_post_raw_sensitivity_boost raw s=0224 boost=1600 örneği.

test_post_raw_sensitivity_boost raw s=0112 boost=3199 example

Şekil 65. test_post_raw_sensitivity_boost raw s=0112 boost=3199 örneği.

test_post_raw_sensitivity_boost ham grafik ortalamaları örneği

Şekil 66. test_post_raw_sensitivity_boost ham grafik ortalama örneği.

test_post_raw_sensitivity_boost YUV s=0112 boost=3199 örneği

Şekil 67. test_post_raw_sensitivity_boost YUV s=0112 boost=3199 örneği.

test_post_raw_sensitivity_boost YUV s=0448 boost=0800 örneği

Şekil 68. test_post_raw_sensitivity_boost YUV s=0448 boost=0800 örneği.

test_post_raw_sensitivity_boost YUV s=0896 boost=0400 örneği

Şekil 69. test_post_raw_sensitivity_boost YUV s=0896 boost=0400 örneği.

test_post_raw_sensitivity_boost YUV s=1792 boost=0200 örneği

Şekil 70. test_post_raw_sensitivity_boost YUV s=1792 boost=0200 örneği.

test_post_raw_sensitivity_boost YUV s=3585 boost=0100 örneği

Şekil 71. test_post_raw_sensitivity_boost YUV s=3585 boost=0100 örneği.

test_post_raw_sensitivity_boost_yuv_plot_means

Şekil 72. test_post_raw_sensitivity_boost_yuv_plot_means örneği.

test_raw_exposure

Pozlama süresi artırılarak bir dizi ham görüntü yakalanır ve piksel değerleri ölçülür.

Test edilen API'ler:

Başarılı: ISO (kazanç) artırıldığında pikseller ışığa karşı daha hassas hale gelir ve grafik sola doğru kayar.

test_raw_exposure ISO=55 örneği

Şekil 73. test_raw_exposure ISO=55 örneği.

10⁰, 1 ms; 10¹, 10 ms ve 10⁻¹, 0,1 ms'dir.

test_raw_exposure ISO=132 örneği

Şekil 74. test_raw_exposure ISO=132 örneği.

test_raw_exposure ISO=209 example

Şekil 75. test_raw_exposure ISO=209 örneği.

test_raw_exposure ISO=286 örneği

Şekil 76. test_raw_exposure ISOs=286 örneği.

test_raw_exposure ISO=363 örneği

Şekil 77. test_raw_exposure ISO=363 örneği.

test_raw_exposure_s=440

Şekil 78. test_raw_exposure ISO=440 örneği.

test_reprocess_noise_reduction

Yeniden işleme istekleri için android.noiseReduction.mode uygulanıp uygulanmadığını test eder. Kameranın loş ışıkta yeniden işlediği görüntüleri yakalar. Yüksek analog kazanç kullanarak yakalanan görüntünün gürültülü olduğunu doğrular. Gürültü azaltma kapalı, hızlı ve yüksek kalite için yeniden işlenmiş üç görüntü yakalar. Düşük kazançlı ve gürültü azaltma kapalıyken yeniden işlenmiş bir görüntü yakalar ve bunun varyansını referans olarak kullanır.

Test edilen API'ler:

Başarılı: FAST >= OFF, HQ >= FAST ve HQ >> OFF.

Tipik SNR ve NR modu grafiği

Şekil 79. Tipik SNR ve NR modu grafiği örneği.

test_tonemap_sequence

Farklı ton eşleme eğrilerine sahip bir dizi çekimi test eder. Doğrusal ton eşleme ile 3 manuel çekim yapar. Varsayılan ton eşleme ile 3 manuel çekim yapar. Birbirini takip eden her kare çifti arasındaki farkı hesaplar.

Test edilen API'ler:

Başarılı: Üç aynı kare ve ardından farklı bir üç aynı kare grubu var.

test_tonemap_sequence i=0 örneği

Şekil 80. test_tonemap_sequence i=0 örneği.

test_tonemap_sequence i=1 örneği

Şekil 81. test_tonemap_sequence i=1 örneği.

test_tonemap_sequence i=2 example

Şekil 82. test_tonemap_sequence i=2 örneği.

test_tonemap_sequence i=3 örneği

Şekil 83. test_tonemap_sequence i=3 örneği.

test_tonemap_sequence_i=4 örneği

Şekil 84. test_tonemap_sequence i=4 örneği.

test_tonemap_sequence i=5 örneği

Şekil 85. test_tonemap_sequence i=5 örneği.

test_yuv_jpeg_all

Resim Yakalama için bildirilen tüm boyutların ve biçimlerin çalışıp çalışmadığını test eder. Doğrusal ton eşlemeli manuel istek kullanır. Böylece YUV ve JPEG, image_processing_utils modülü tarafından dönüştürüldüğünde aynı görünür. Resimler varsayılan olarak kaydedilmez ancak debug_mode etkinleştirilerek kaydedilebilir.

Test edilen API'ler:

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

test_yuv_jpeg_all örneği

Şekil 86. test_yuv_jpeg_all örneği.

test_yuv_plus_dng

Resim 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 resimler döndürülür.

test_yuv_plus_dng örneği

Şekil 87. test_yuv_plus_dng örneği.

scene1_3

scene 1_3, scene 1_1'in işlevsel olarak aynı kopyasıdır ve scene 1'nin uzun süresini kısaltmak için bir alt sahne yapısı uygular.

test_capture_result

CaptureResult nesnelerinde geçerli verilerin döndürülüp döndürülmediğini test eder. Test, otomatik çekim, manuel çekim ve ikinci bir otomatik çekimden oluşur.

Test edilen API'ler:

Başarılı: Meta veriler tüm çekimler için geçerlidir ve manuel ayarlar ikinci otomatik çekime sızmaz. Çekimler için lens gölgeleme düzeltmesini gösterir.

test_capture_result_plot_lsc_auto_ch0

Şekil 88. test_capture_result_plot_lsc_auto_ch0.

test_dng_noise_model

DNG ham model parametrelerinin doğru olduğunu doğrular. Grafik, çeşitli hassasiyetlerde çekilen ham çekimlerde gri kartın orta parçasının ölçülen varyansını gösterir ve bu değerleri, kamera HAL'deki 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 parametrelerine göre). DNG gürültü modeli hakkında daha fazla bilgi için DNG Gürültü Modeli ile ilgili aşağıdaki belgeyi indirin.

Test edilen API'ler:

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

test_dng_noise_model_plog

Şekil 89. test_dng_noise_model_plog.

test_jpeg

Dönüştürülen YUV resimlerinin ve cihaz JPEG resimlerinin aynı göründüğünü test eder. Test, görüntünün ortasındaki% 10'luk kısmı alır, RGB değerini hesaplar ve 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

Şekil 90. test_jpeg_fmt=jpg.jpg.

test_jpeg=fmt=yuv.jpg

Şekil 91. test_jpeg=fmt=yuv.jpg.

test_raw_burst_sensitivity

Artan kazançlarla bir dizi ham görüntü yakalar ve gürültüyü ölçer. Yalnızca RAW formatında seri çekim yapar.

Test edilen API'ler:

Başarılı: Kazanç arttıkça her çekim bir önceki çekimden daha gürültülü olur.

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

test_raw_burst_sensitivity_variance

Şekil 92. test_raw_burst_sensitivity_variance.

test_raw_sensitivity

Hassasiyetleri artan bir dizi ham görüntü yakalar ve görüntünün ortasındaki% 10'luk bölümdeki paraziti (varyans) ölçer. Her çekimin bir öncekinden daha gürültülü olup olmadığını test eder.

Test edilen API'ler:

Pas: Varyans her atışta artar.

test_raw_sensitivity_variance

Şekil 93. test_raw_sensitivity_variance.

test_yuv_plus_jpeg

Tek bir kareyi hem YUV hem de JPEG çıkışı olarak yakalamayı test eder. Doğrusal ton eşlemeli manuel istek kullanır. Böylece YUV ve JPEG, image_processing_utils modülü tarafından dönüştürüldüğünde aynı görünür.

Test edilen API'ler:

Başarılı: YUV ve JPEG resimler benzerdir ve% 1'den az RMS (sinyal değeri) farkına sahiptir.

JPEG biçiminde test_yuv_plus_jpeg

Şekil 94. JPEG biçiminde test_yuv_plus_jpeg.

YUV biçiminde test_yuv_plus_jpeg

Şekil 95. YUV biçiminde test_yuv_plus_jpeg.

test_yuv_plus_raw

Destekleniyorsa tek bir kareyi hem ham (10 bit ve 12 bit ham) hem de YUV çıkışları olarak yakalamayı test eder. Doğrusal ton eşlemeli manuel istek kullanır. Bu nedenle, ham ve YUV'nin aynı olması beklenir. RGB'ye dönüştürülmüş resimlerin merkezdeki% 10'luk 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 ortalama karekök değeri) farkına sahiptir.

test_yuv_plus_raw_shading=1_raw.jpg

Şekil 96. test_yuv_plus_raw_shading=1_raw.jpg.

test_yuv_plus_raw_shading=1_yuv.jpg

Şekil 97. test_yuv_plus_raw_shading=1_yuv.jpg.

test_sensitivity_priority

Daha yüksek ISO ile artan gürültü seviyeleri arasındaki ilişkiyi doğrulamak için çeşitli ISO ayarlarında CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY testleri yapar.

Test edilen API'ler:

Başarılı: Daha yüksek ISO, gürültü seviyelerinin artmasına neden olur.

Test atlama ölçütleri

Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_sensitivity_priority.py testi atlanır:

test_exposure_time_priority

ISO'nun telafi edebileceği aralıkta parlaklığın sabit olup olmadığını kontrol etmek için çeşitli pozlama sürelerinde CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY testleri yapılır.

Test edilen API'ler:

Başarılı: ISO, telafi aralığındaysa parlaklık, pozlama süreleri boyunca sabittir (tolerans dahilinde).

Test atlama ölçütleri

Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_exposure_time_priority testi atlanır:

scene2_a

scene2_a, gri arka plan ve nötr kıyafetlerle üç yüze sahiptir. Yüzler, geniş bir cilt tonu yelpazesine sahip olacak şekilde seçilir. Yüz algılama özelliğinin en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir.

scene2_a örneği

Şekil 98. scene2_a örneği.

test_autoframing

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 yapar, CaptureRequest içindeki AUTOFRAMING değerini True olarak ayarlayarak otomatik çerçeveleme modunu etkinleştirir ve durum birleştiğinde (yani CaptureResult içindeki AUTOFRAMING_STATE değeri AUTOFRAMING_STATE_CONVERGED olarak ayarlandığında) orijinal sahnedeki tüm yüzlerin algılanıp algılanamayacağını doğrular.

Test edilen API'ler:

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

test_display_p3

ColorSpaceProfiles API'sini kullanarak JPEG biçiminde Display P3 yakalamayı test eder. Çekilen JPEG'in başlığında uygun bir ICC profili olup olmadığını ve görüntünün 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ışındaki renkleri içeriyor.

test_effects

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

Test edilen API'ler:

Başarılı: Sahne görüntüsünü OFF efektleriyle ve MONO efektleriyle tek renkli bir görüntüyle yakalar.

test_effects_MONO

Şekil 99. test_effects_MONO.

test_exposure_keys_consistent

Bu test, AE'nin etkin olduğu bir çekimin ortalama luma değerini, AE'nin etkin olduğu çekimin CaptureResult içinde alınan pozlama parametrelerini (hassasiyet, pozlama süresi, kare süresi, RAW sonrası hassasiyet artışı) manuel olarak uygulayan AE'nin devre dışı olduğu bir çekimle karşılaştırır.

Test edilen API'ler:

Başarılı: İki çekim arasındaki luma değerinin göreceli farkı %4'ten azdır.

test_format_combos

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

Test edilen API'ler:

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

test_num_faces

Yüz algılamayı test eder.

Test edilen API'ler:

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

test_num_faces yüz algılama modu 1 örneği

Şekil 100. test_num_faces yüz algılama modu 1 örneği.

test_reprocess_uv_swap

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

Test edilen API'ler:

Başarılı: U ve V düzlemleri değiştirilmez.

test_reprocess_uv_swap

Şekil 101. test_reprocess_uv_swap örneği.

scene2_b

scene2_b, gri arka plan ve nötr kıyafetlerle üç yüze sahiptir. Yüzler, geniş bir cilt tonu yelpazesine sahip olacak şekilde seçilir. Yüz algılama özelliğinin en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir.

test_preview_num_faces

Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle önizlemede yüz algılamayı test eder.

Test edilen API'ler:

Başarılı: Yüz sınırlayıcı kutularda yüz noktaları olan üç yüz bulur.

test_num_faces_fd_mode_1

Şekil 102. test_num_faces yüz algılama modu 1 örneği.

test_yuv_jpeg_capture_sameness

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

Ayrıca bu test, desteklenen tüm akış kullanım alanları için YUV çıkışlarının STILL_CAPTURE kullanım alanına sahip YUV'ye makul ölçüde benzer olduğunu doğrular.

Test edilen API'ler:

Başarılı: STILL_CAPTURE kullanım alanı için YUV ve JPEG resimlerde% 3'ten az RMS (bir sinyalin ortalama karekök değeri) farkı vardır. Desteklenen tüm kullanım alanları için YUV resimlerde, STILL_CAPTURE kullanım alanına sahip YUV resimlere kıyasla% 4'ten az CIELAB farkı vardır.

scene2_c

test_num_faces

Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle yüz algılamayı test eder.

Test edilen API'ler:

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

test_num_faces_fd_mode_1

Şekil 103. test_num_faces yüz algılama modu örneği.

test_jpeg_capture_perf_class

CDD'nin bölüm 2.2.7.2 Kamera kısmında belirtildiği gibi S performans sınıfı için JPEG yakalama gecikmesini test eder.

Başarılı: Her iki birincil kamera için de ITS aydınlatma koşulları (3.000 K) altında CTS kamera PerformanceTest tarafından ölçüldüğü şekilde, 1080p çözünürlük için camera2 JPEG yakalama gecikmesi 1.000 ms'den az OLMALIDIR.

test_camera_launch_perf_class

CDD'nin 2.2.7.2 Kamera bölümünde belirtilen S performans sınıfı için kamera başlatma gecikmesini test eder.

Başarılı: Her iki birincil kamera için de ITS aydınlatma koşulları (3.000 K) altında CTS kamera PerformanceTest tarafından ölçüldüğü şekilde camera2 başlatma gecikmesi (kameranın açılmasından ilk önizleme karesine kadar geçen süre) 600 ms'den az OLMALIDIR.

test_default_camera_hdr

CDD'nin bölüm 2.2.7.2 Kamera kısmında belirtildiği gibi, performans sınıfı 15 için varsayılan kamera çekiminin Ultra HDR olduğunu test eder.

Başarılı: Performans sınıfı 15 cihazlarda varsayılan kamera paketi yakalama işlemi Ultra HDR OLMALIDIR.

scene2_d

test_preview_num_faces

Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle önizlemede yüz algılamayı test eder.

Test edilen API'ler:

Başarılı: Yüz sınırlayıcı kutularda yüz noktaları olan üç yüz bulur.

scene2_e

test_continuous_picture

Önce yakalama isteği ayarıyla 50 VGA çözünürlüklü kare yakalanır android.control.afMode = 4 (CONTINUOUS_PICTURE).

Test edilen API'ler:

Başarılı: 3A sistemi, 50 karelik bir çekimin sonunda sabitlenir.

test_num_faces

Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle yüz algılamayı test eder.

Test edilen API'ler:

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

scene2_f

scene2_f, beyaz arka plan ve beyaz kıyafetli üç yüze sahip. Yüzlerde çok çeşitli cilt tonları ve arka planla yüksek kontrast kullanılmış.

scene2_f example

Şekil 104. scene2_f örneği.

test_preview_num_faces

Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle yüz algılamayı test eder.

Test edilen API'ler:

Başarılı: Yüz sınırlayıcı kutularda yüz noktaları olan üç yüz bulur.

test_num_faces_fd_mode_1

Şekil 105. test_num_faces_fd_mode_1 örneği.

scene2_g

scene2_g, beyaz arka plan ve beyaz kıyafetli üç profil yüzüne sahiptir. Yüzlerde çok çeşitli cilt tonları ve arka planla yüksek kontrast var.

scene2_g.png

Şekil 106. scene2_g örneği.

test_preview_num_faces

Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle yüz algılamayı test eder.

Test edilen API'ler:

Başarılı: Yüz sınırlayıcı kutularda yüz noktaları olan üç yüz bulur.

test_preview_num_faces

Şekil 107. test_preview_num_faces örneği.

scene3

scene3, ISO12233 grafiğini kullanır ve çoğu test, sahnedeki grafiği bulmak için grafik çıkarıcı yöntemini kullanır. Bu nedenle, kaydedilen resimlerin çoğunda 1, 2 veya 4. sahnelerdeki resimler gibi kenarlıklar yoktur, yalnızca grafik vardır. Grafik bulucunun en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir. Android 17 ve sonraki sürümlerde scene3, grafik algılama için ArUco işaretçilerini kullanır.

scene3_aruco_chart

Şekil 108. scene3 grafiği.

test_edge_enhancement

android.edge.mode parametresinin doğru şekilde uygulandığını test eder. Her kenar modu için yeniden işlenmeyen görüntüleri yakalar ve çıkış görüntüsünün keskinliğini ve yakalama sonucu meta verilerini döndürür. Belirli bir kenar modu, hassasiyet, pozlama süresi, odak mesafesi ve çıkış yüzeyi parametresiyle yakalama isteğini işler. Android 17 ve sonraki sürümlerde, gerekli keskin kenarları içeren grafik alanını tanımlamak için ArUco işaretçileri kullanılır.

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

Test edilen API'ler:

Etkilenen kamera parametreleri:

  • EDGE_MODE

test_edge_enhancement_edge=0

Şekil 109. test_edge_enhancement edge=0 örneği.

test_edge_enhancement edge=1 example

Şekil 110. test_edge_enhancement edge=1 (hızlı mod) örneği.

test_edge_enhancement edge=2 example

Şekil 111. test_edge_enhancement edge=2 (yüksek kalite modu) örneği.

test_flip_mirror

Görüntünün, CDD'deki 7.5.2 Ön Kamera bölümüne göre doğru şekilde yönlendirilip yönlendirilmediğini test eder. Android 17 ve sonraki sürümlerde, grafiğin hem varlığını hem de yönünü doğrulamak için ArUco işaretçilerini kullanır. Yansıtılmış, ters çevrilmiş veya döndürülmüş resimler, ortadaki elmas özelliğiyle tanımlanabilir.

Başarılı: Tüm işaretçiler algılandı ve doğru şekilde hizalandı. Resim çevrilmemiş, yansıtılmamış veya döndürülmemiş olmalıdır.

test_flip_mirror sahne yaması örneği

Şekil 112. test_flip_mirror sahne yaması örneği.

test_imu_drift

Cihaz sabitken ve yüksek çözünürlüklü önizleme yakalarken atalet ölçüm biriminin (IMU) 30 saniye boyunca kararlı çıkış verip vermediğini test eder.

Test edilen API'ler:

Kart:

  • Jiroskopun sapması, test süresi boyunca 0,01 rad'dan az olmalıdır.
  • Jiroskop okumasının varyansı, test süresi boyunca 1E-7 rad2/sn2/Hz'den azdır.
  • Dönüş vektörünün sapması, test süresi boyunca 0,01 rad değerinden az olmalıdır.
  • (Henüz zorunlu değil) Jiroskopun sapması saniyede 1 dereceden az olmalıdır.

test_imu_drift jiroskop sapması örneği

Şekil 113. test_imu_drift jiroskop sapması örneği.

test_imu_drift dönüş vektörü sapması örneği

Şekil 114. test_imu_drift dönüş vektörü sapması örneği.

test_landscape_to_portrait

Yataydan dikeye geçersiz kılma işlevinin, yatay yönlü 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 grafik bulur (yataydan dikeye geçersiz kılma devre dışı bırakıldığında 0 derece, etkinleştirildiğinde 90 derece).

test_landscape_to_portrait örneği

Şekil 115. test_landscape_to_portrait örneği.

test_lens_movement_reporting

Lens hareketi işaretinin doğru şekilde bildirilip bildirilmediğini test eder. İlk 12 kare optimum odak mesafesinde (3A tarafından belirlendiği şekilde) ve son 12 kare minimum odak mesafesinde olacak şekilde 24 resimlik bir seri çekim yapar. 12. kare civarında lens hareket ediyor ve keskinlik düşüyor. Lens son konuma ulaştığında keskinlik sabitlenir.

Lens hareketi işareti, keskinliğin optimum odak uzaklığında sabit lensle ilk birkaç karedeki keskinlik ile minimum odak uzaklığında sabit lensle son birkaç karedeki keskinlik arasında olduğu tüm karelerde onaylanmalıdır. Lensin hareket ettiği tam kare önemli değildir. Önemli olan, lens hareket ederken hareket işaretinin etkinleştirilmesidir.

Android 17 ve sonraki sürümlerde bu test, gerekli keskin kenarları içeren grafik alanını tanımlamak için ArUco işaretçilerini kullanır. Bu yöntem, ultra geniş (UW) kameralardan telefoto uygulamalarına kadar tüm kameralar için kararlı bir algılama sağlar.

Test edilen API'ler:

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

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

  • lens_moving: True (android.hardware.camera2.CaptureResult#LENS_STATE = 1) in test_log.DEBUG yalnızca keskinliğin değişmediği karelerde onaylanır.
  • test_log.DEBUG içinde lens_moving: False (android.hardware.camera2.CaptureResult#LENS_STATE = 0) olan kareler, optimum odak uzaklığındaki ilk birkaç kareye veya minimum odak uzaklığındaki son birkaç kareye kıyasla keskinlik farkına sahiptir.

test_reprocess_edge_enhancement

Kenar geliştirme için desteklenen yeniden işleme yöntemlerinin düzgün çalışıp çalışmadığını test eder. Belirli bir yeniden işleme kenar moduyla yakalama isteğini işler ve farklı modları, yeniden işleme kenar modları devre dışı bırakılmış yakalama modlarıyla karşılaştırır.

Test edilen API'ler:

Başarılı: Farklı kenar modları için keskinlik doğru. HQ (mod 2), OFF (mod 0) değerinden daha keskindir ve farklı modlar arasındaki iyileştirme benzerdir.

test_reprocess_edge_enhancement grafiği örneği

Şekil 116. test_reprocess_edge_enhancement grafiği örneği.

scene4

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

scene4'teki testler hizalamaya duyarlı olabilir. Bu nedenle, Android 15'ten itibaren, test edilen cihazın ve grafik hizalamasının kontrolünü etkinleştirmek için araçlar dizininde check_alignment.py kullanabilirsiniz.

scene4 example

Şekil 117. scene4 örneği.

test_30_60fps_preview_fov_match

30 FPS ve 60 FPS önizleme videolarının aynı görüş alanına sahip olup olmadığını test eder. Testte biri 30 FPS, diğeri 60 FPS olmak üzere iki video kaydedilir. Her videodan temsili bir kare seçilir ve iki videodaki FoV değişikliklerinin spesifikasyonlara uygun olduğunu doğrulamak için analiz edilir. Dairenin en boy oranının, merkezinin ve yarıçapının sabit kaldığını test eder.

Test edilen API'ler:

Başarılı: Görüntüler uzatılmıyor, görüntülerin merkezleri %3'ten fazla farklılık göstermiyor ve 30 FPS ile 60 FPS videolar arasındaki maksimum en-boy oranı değişimi %7,5'ten fazla değil.

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

  • 30 FPS videodaki dairenin boyutu, 60 FPS videodaki dairenin boyutundan önemli ölçüde farklıdır.
  • Çekilen görüntüdeki daire, işleme hattı tarafından bozulur.
  • Yakalanan görüntüdeki daire, görüntünün yüksekliğini veya genişliğini azaltan aşırı en-boy oranına sahip bir yakalama isteği nedeniyle kırpılır.
  • Çekilen görüntüdeki dairenin ortasında yansıma var ve daire tamamen dolu görünmüyor.

test_aspect_ratio_and_crop

Resim ardışık düzeninde resimlerin bozulup bozulmadığını veya beklenmedik şekilde kırpılıp kırpılmadığını test eder. Tüm biçimlerde dairenin fotoğrafını çeker. Dairenin bozulmadığını, görüntünün merkezinden hareket etmediğini ve farklı en boy oranları veya çözünürlüklerle yanlış şekilde boyut değiştirmediğini doğrular.

Test edilen API'ler:

Başarılı: Resimler esnetilmez, resimlerin merkezleri %3'ten fazla farklılık göstermez ve mümkün olan maksimum FoV korunur.

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

  • Kamera, yakalanan sahnenin ortasında tablette gösterilen daireyle hizalanmamış.
  • Çekilen görüntüdeki daire, işleme hattı tarafından bozulur.
  • Düşük çözünürlüklü resim, resim ardışık düzeninde iki kez kırpılır. Bu da yüksek ve düşük çözünürlüklü resimler arasında farklı görüş alanları oluşturur.
  • Yakalanan görüntüdeki daire, görüntünün yüksekliğini veya genişliğini azaltan aşırı en-boy oranı yakalama isteği nedeniyle kırpılır.
  • Çekilen görüntüdeki dairenin ortasında bir yansıma var ve daire tamamen dolu görünmüyor.

test_multi_camera_alignment

Çok kameralı sistemlerde kamera konumlandırmayla ilgili kamera kalibrasyon parametrelerini test eder. Çoklu kamera fiziksel alt kameralarını kullanarak fiziksel kameralardan biriyle fotoğraf çeker. Dairenin merkezini bulur. Daire merkezini her kamera için dünya koordinatlarına yansıtır. Kameraların daire merkezleri arasındaki farkı dünya koordinatlarında karşılaştırır. Dünya koordinatını tekrar piksel koordinatlarına yansıtır ve geçerlilik 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ı: Kamera kalibrasyon verileri ve odak uzaklıkları kullanılarak çekilen görüntülerle karşılaştırıldığında, yansıtılan görüntülerdeki daire merkezleri ve boyutları beklendiği gibidir.

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

  • LENS_INTRINSIC_CALIBRATION, LENS_POSE_TRANSLATION ve LENS_POSE_ROTATION, tasarım değerleridir ve gerçek kalibrasyon verileri değildir.
  • Kamera sistemi, test düzeneği için uygun değil. Örneğin, RFoV test düzeneğiyle geniş ve ultra geniş kamera sistemini test etme. Daha fazla bilgi için Kamera ITS-in-a-box SSS S1 bölümüne bakın.

test_preview_aspect_ratio_and_crop

Fotoğraf çekimleri için yapılan test_aspect_ratio_and_crop testine benzer şekilde, önizleme karelerinin uygunsuz şekilde uzatılmadığını veya kırpılmadığını doğrulamak için desteklenen önizleme biçimlerini kontrol eder. Dairenin en boy oranının değişmediğini, kırpılan resimlerde dairenin çerçevenin ortasında kaldığını ve daire boyutunun sabit bir formatta veya farklı çözünürlüklerde değişmediğini doğrular (FoV kontrolü).

Test edilen API'ler:

Başarılı: Resimler esnetilmez, resimlerin merkezleri %3'ten fazla farklılık göstermez ve mümkün olan maksimum FoV korunur.

test_preview_stabilization_fov

Görüş alanının uygun şekilde kırpıldığından emin olmak için desteklenen önizleme boyutlarını kontrol eder. Testte iki video kaydedilir. Bunlardan biri önizleme sabitleme ON, diğeri ise önizleme sabitleme OFF ile kaydedilir. Her videodan temsili bir kare seçilir ve iki videodaki FoV değişikliklerinin spesifikasyon dahilinde olduğunu doğrulamak için analiz edilir.

Test edilen API'ler:

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

test_video_aspect_ratio_and_crop

Tüm video formatlarında kare içindeki bir dairenin videosunu çeker. Ana kareleri ayıklar ve dairenin en boy oranının değişmediğini, kırpılan resimlerde dairenin ortada kaldığını ve daire boyutunun sabit bir biçim için veya farklı çözünürlükte değişmediğini doğrular (FoV kontrolü).

Test edilen API'ler:

Başarılı: Video kareleri esnetilmez, karelerin merkezleri %3'ten fazla farklılık göstermez ve mümkün olan maksimum görüş alanı korunur.

scene6

scene6, kimliği net bir şekilde tespit edilebilir ArUco işaretçilerinden oluşan bir ızgaradır. scene6 testleri hizalamaya duyarlı olabilir. Bu nedenle, 15 sürümünden itibaren araçlar dizininde check_alignment.py kullanarak DUT ve grafik hizalamasının kontrol edilmesini sağlayabilirsiniz.

scene6

Şekil 118. scene6 örneği.

test_in_sensor_zoom

Kırpılmış RAW görüntüler üreten kamera 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ığında iki çekim yapar: tam FoV RAW resim ve kırpılmış RAW resim. 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 küçültür ve iki görüntü arasındaki 3D RMS farkını hesaplar.

Test edilen API'ler:

Başarılı: Küçültülmüş kırpılmış ham görüntü ile tam FoV ham görüntü arasındaki 3D RMS farkı, testte ayarlanan eşikten daha azdır.

test_zoom

Ultra geniş lensten geniş lense kamera yakınlaştırma davranışını test eder. Yakınlaştırma aralığında çekim yapar ve kamera yakınlaştırdıkça ArUco işaretçilerinin büyüyüp büyümediğini kontrol eder. Test, merkez işaretçinin konumunun her çekimde tahmin edilebilir şekilde değişip değişmediğini de kontrol eder. Merkez işaretçinin merkezinden görüntü merkezine olan mesafe, fiziksel kamera geçişine kadar yakınlaştırma oranına göre sabit bir hızda değişebilir veya fiziksel kamera geçişinden sonra aynı işaretçinin konumuna doğru monoton bir şekilde değişebilir. Testten önce cihaza Jetpack Camera uygulaması (JCA) yüklenmelidir.

Test edilen API'ler:

Başarılı: Yakalanan ArUco işaretçisinin göreceli boyutu, kameranın doğru şekilde yakınlaştırdığını doğrulamak için istenen yakınlaştırma oranına göre doğru ve işaretçinin görüntü merkezine olan mesafesi, test açıklamasında belirtilen ölçütlere göre değişiyor.

test_zoom to find the contour of the ArUco marker closest to the center

Şekil 119. Merkeze en yakın ArUco işaretçisinin konturunu bulmak için test_zoom.

test_low_latency_zoom

Kameranın düşük gecikmeli yakınlaştırma davranışını test eder. android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) ile yakınlaştırma aralığında çekim yapar ve çıkış görüntülerindeki işaretçilerin, çekim meta verilerindeki yakınlaştırma oranlarıyla eşleşip eşleşmediğini kontrol eder. 3A'yı birleştirmek ve çekim yapmak için aynı kamera çekim oturumu kullanılır.

Test edilen API'ler:

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

test_preview_video_zoom_match

Kayıt ve yakınlaştırma sırasında video önizlemesi ile video çıkışının aynı çıkışı gösterip kaydettiğini test eder. Farklı yakınlaştırma oranlarında merkeze en yakın işaretçinin boyutunu hesaplar ve yakınlaştırma oranı arttıkça işaretçinin boyutunun artıp artmadığını kontrol eder.

Test edilen API'ler:

Başarılı: Yakalanan işaretçinin göreli boyutu, video ve önizlemede istenen yakınlaştırma oranıyla uyumlu.

HD_1280x720_key_frame.png

Şekil 120. HD_1280x720_key_frame.png (yakınlaştırmadan önce).

preview_1280x720_key_frame.png

Şekil 121. preview_1280x720_key_frame.png (yakınlaştırmadan önce).

HD_1280x720_key_frame_zoomed.png

Şekil 122. HD_1280x720_key_frame.png (yakınlaştırmadan sonra).

preview_1280x720_key_frame_zoomed.png

Şekil 123. preview_1280x720_key_frame.png (yakınlaştırmadan sonra).

test_preview_zoom

Her önizleme karesinin yakınlaştırma oranının, ultra geniş lensten geniş lense karşılık gelen yakalama meta verileriyle eşleşip eşleşmediğini test eder. Test, yakınlaştırma aralığı boyunca önizleme kareleri alır ve merkeze en yakın ArUco işaretçisini bulur. Test, her çekimde merkez işaretçinin konumunun tahmin edilebilir şekilde değişip değişmediğini kontrol eder. Merkez işaretçinin merkezinden görüntü merkezine olan mesafe, fiziksel kamera geçişine kadar yakınlaştırma oranına göre sabit bir hızda değişebilir veya fiziksel kamera geçişinden sonra aynı işaretçinin konumuna doğru monoton bir şekilde değişebilir.

Test edilen API'ler:

Başarılı: Seçilen ArUco işaretçisinin göreceli boyutu, tüm önizleme kareleri için ilgili yakalama sonucunun bildirilen yakınlaştırma oranı açısından doğru. Seçilen işaretçinin görüntünün merkezine olan göreli mesafesi, tüm önizleme karelerinin ilgili yakalama sonucunun bildirilen yakınlaştırma oranı için doğrudur.

test_preview_zoom images showing selected marker closest to the center

Şekil 124. Merkeze en yakın seçili işaretçiyi gösteren test_preview_zoom resimleri

test_session_characteristics_zoom

CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION bölümünde listelenen, desteklenen tüm oturum yapılandırmaları için yakınlaştırma oranı aralığını test eder. Bu yapılandırmaların her biri için CameraDeviceSetup#isSessionConfigurationSupported true değerini döndürürse test, CameraDeviceSetup#getSessionCharacteristics tarafından döndürülen yakınlaştırma oranı aralığına ulaşılabildiğini doğrular.

Test edilen API'ler:

Başarılı: CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION içinde listelenen desteklenen her SessionConfiguration için hem minimum hem de maksimum yakınlaştırma oranlarına ulaşılabilir.

scene7

scene7, her biri farklı bir renkle doldurulmuş dört eşit çeyrek daireye bölünmüş dikdörtgen bir çerçevedir. Dikdörtgenin ortasında, keskinlik kontrolleri için eğimli kenar grafiği bulunur. Dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır. Bu işaretçiler, farklı yakınlaştırma oranlarında ana dikdörtgen çerçevesinin doğru koordinatlarını elde etmeye yardımcı olur.

scene7

Şekil 125. scene7.

test_multi_camera_switch

Bu test, farklı yakınlaştırma oranlarında önizleme kaydı sırasında ultra geniş (UW) ve geniş (W) lensler arasında geçiş yapıldığında benzer RGB değerleri elde edildiğini doğrular.

Test, dinamik bir önizleme kaydı gerçekleştirmek ve fiziksel kameranın değiştiği noktayı belirlemek için önceden tanımlanmış aralıkta farklı yakınlaştırma oranları kullanır. Bu nokta, UW lensten W lense geçişi gösterir.

Geçiş noktasında ve öncesinde yakalanan kareler otomatik pozlama (AE), otomatik beyaz dengesi (AWB) ve otomatik odaklama (AF) açısından analiz edilir.

AE kontrolü, luma değişikliğinin hem UW hem de W lens görüntüleri için beklenen aralıkta olduğunu doğrular. AWB kontrolü, kırmızı-yeşil ve mavi-yeşil oranlarının hem UW hem de W lens görüntüleri için eşik değerleri içinde olduğunu doğrular. AF kontrolü, UW ve W lens görüntüleri arasındaki ortalama gradyan büyüklüğüne göre keskinlik tahmin değerini değerlendirir.

Bu testi yürütürken hareli efekti sonuçları etkiliyorsa Kamera ITS onaylı tabletler listesinden daha yüksek çözünürlüklü bir tablet kullanın.

Test edilen API'ler:

Başarılı: Testin başarılı olması için AE ve AWB kontrollerinin başarılı olması gerekir. AF kontrol sonuçları yalnızca günlük kaydı amacıyla kullanılır. Her bir kontrolün ölçütleri aşağıda verilmiştir:

  • AE kontrolü: Cihaz hem ae_regions hem de awb_regions değerini destekliyorsa UW ve W lens görüntüleri arasındaki luma değişimi (Y değeri), tüm renk yamaları için% 4'ten az olmalıdır. Yalnızca ae_regions destekleniyorsa yalnızca gri renkli yama değerleri ölçütleri karşılamalıdır.
  • AWB kontrolü: Cihaz hem ae_regions hem de awb_regions değerini destekliyorsa UW ve W lens görüntülerinin kırmızı-yeşil ve mavi-yeşil değerleri arasındaki fark, gri renk yaması için% 3'ten, diğer renk yamaları için% 10'dan az olmalıdır.
  • AF kontrolü: W lensle çekilen görüntünün keskinliği, UW ile çekilen görüntünün keskinliğinden daha yüksek olmalıdır.

test_multi_camera_switch_gray_uw_y

Şekil 126. UW lens ile çekilmiş gri yama.

test_multi_camera_switch_gray_w_y

Şekil 127. Geniş lensle çekilmiş gri yama.

scene8

scene8, dört eşit bölgeye bölünmüş dikdörtgen bir çerçevedir. Her bölgede farklı pozlamayla çekilmiş veya farklı bir renk tonuyla (mavi ton, artırılmış pozlama, azaltılmış pozlama, sarı ton) kaplanmış bir portre bulunur. Ana dikdörtgen çerçevenin doğru koordinatlarını elde etmek için dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır.

scene8 örneği

Şekil 128. scene8 örneği.

test_ae_awb_regions

Farklı AE ve AWB bölgelerinde önizleme kaydı yaparken RGB ve luma değerlerinin farklı olup olmadığını test eder.

Test, her bir kadranda 2 saniye boyunca AE ve AWB ölçümü yaparak 8 saniyelik bir önizleme kaydı oluşturur. Ardından test, her bölgenin önizleme kaydından bir kare çıkarır ve çıkarılan kareleri kullanarak aşağıdaki AE ve AWB kontrollerini gerçekleştirir:

  • AE kontrolü: Pozlaması azaltılmış bölgeyi ölçen karenin, pozlaması artırılmış bölgeyi ölçen kareye kıyasla% 1'den daha fazla luma değerine sahip olduğunu doğrular. Bu test, karanlık bir bölge ölçülürken görüntülerin parlaklığının artırıldığını doğrular.
  • AWB kontrolü: Mavi ölçüm bölgesine sahip karedeki kırmızı/mavi oranının (görüntünün ortalama RGB değerleri), sarı ölçüm bölgesine sahip kareden %2'den daha yüksek olduğunu doğrular. Bu sayede, sarı (sıcak) veya mavi (soğuk) bir bölge ölçülürken resimlerin dengeli bir RGB değerine sahip olduğu doğrulanır.

Test edilen API'ler:

Başarılı: AE ve AWB kontrollerinin ikisi de başarılıdır.

test_ae_awb_regions_dark_region

Şekil 129. Pozlama artırılarak kadraj ölçümü yapılan karanlık bölge.

test_ae_awb_regions_light_region

Şekil 130. Kare ölçümü, pozlama azaltılarak daha açık renkli bölgeye ayarlandı.

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

  • Bu test için dört ArUco işaretçisinin de doğru şekilde algılanması gerekir. İlk algılama başarısız olursa sistem, görüntünün siyah beyaz bir sürümünü kullanarak ikinci bir algılama denemesi yapar. Aşağıdaki gri tonlamalı resim, ikincil işleme adımını temsil eder:

    ArUco işaretçilerinin yanlış hizalanması

    Şekil 131. ArUco işaretçileri yanlış hizalanmış.

test_color_correction_mode_cct

Farklı renk sıcaklıkları ve tonlarında COLOR_CORRECTION_MODE testleri yaparak RGB oranlarındaki değişiklikleri çekim sahnesine (scene8) göre doğrular.

Test edilen API'ler:

Başarılı: RGB oranları, seçilen renk sıcaklıklarına ve tonlarına göre beklenen artışları veya azalmaları gösterir.

Test atlama ölçütleri

Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_color_correction_mode_cct testi atlanır:

scene9

scene9, JPEG sıkıştırma algoritmalarını zorlamak için tekrarlanabilirliği çok düşük bir sahne oluşturmak amacıyla rastgele boyut ve renklerde binlerce daireden oluşur.

scene9 example

Şekil 132. scene9 örneği.

test_jpeg_high_entropy

Kamera JPEG sıkıştırmasının, yüksek entropi ve %100'e ayarlanmış JPEG kalite faktörüyle scene9 üzerinde çalışıp çalışmadığını test eder. Tablette görüntülenen sahnenin kameranın görüş alanını doldurduğunu doğrulamak için yakınlaştırma faktörü artırılır.

Test edilen API'ler:

Başarılı: JPEG dosyası düzgün şekilde sıkıştırıldı, yazıldı ve diskten geri okundu.

test_jpeg_quality

Kamera JPEG sıkıştırma kalitesini test eder. JPEG kalitelerini android.jpeg.quality ile adım adım ilerletir ve niceleme tablolarının doğru şekilde değiştiğini doğrular.

Test edilen API'ler:

Başarılı: Kalite arttıkça niceleme matrisi azalır. (Matris, bölme faktörünü temsil eder.)

Pixel 4 arka kamera luma ve kroma DQT matris ortalamaları ile JPEG kalitesi karşılaştırması

Şekil 133. Pixel 4 arka kamera parlaklık ve renk DQT matris ortalamaları ile JPEG kalitesi karşılaştırması.

test_jpeg_quality başarısız test örneği

Şekil 134. Başarısız test örneği.

scene_extensions

scene_extensions testleri, kamera uzantıları içindir ve test ortamının hassas kontrolünü gerektirdiğinden Camera ITS-in-a-Box kullanılmalıdır. Ayrıca, tüm ışık sızıntıları kontrol edilmelidir. Bunun için test düzeneğinin, test edilen cihazın ve tabletin bir örtüyle kapatılması ve test edilen cihazın ön ekranından ışık sızıntısının önlenmesi gerekebilir.

scene_hdr

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

scene_hdr

Şekil 135. scene_hdr örneği.

test_hdr_extension

HDR uzantısını test eder. Uzantı etkinleştirilmiş ve etkinleştirilmemiş olarak ekran görüntüleri 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 kodundaki gradyanı azaltır.

scene_low_light

scene_low_light sahnesi, siyah arka plan üzerinde farklı gri tonlarında karelerden oluşan bir ızgaradan oluşur ve karelerden oluşan ızgara kırmızı bir çerçeveyle sınırlanır. Kareler, Hilbert eğrisi yönünde düzenlenir.

scene_low_light örneği

Şekil 136. scene_low_light örneği.

test_night_extension

Gece uzantısını test eder. Uzantı etkinleştirilmiş olarak ekran görüntüleri alır ve aşağıdakileri yapar:

  • 20 kare algılar
  • Her kareyle sınırlanan parlaklığı hesaplar.
  • Hilbert eğrisi ızgara yönüne göre ilk 6 karenin ortalama luma değerini hesaplar.
  • Ardışık karelerin luma değerindeki farkı (ör. kare2 - kare1) 5 ve 6. karelere (kare6 - kare5) kadar hesaplar ve hesaplanan beş farkın ortalamasını bulur.

Android 16 veya sonraki sürümlerin yüklü olduğu cihazlarda yakalama isteği, karelerden oluşan ızgarayı sınırlayan dikdörtgene karşılık gelen ölçülü bir bölge içerir. Bu ekleme, eşik geçme ölçütlerini değiştirir.

Test edilen API'ler:

Kart:

  • Android 16 veya sonraki sürümleri çalıştıran cihazlarda ilk 6 karenin ortalama luma değeri en az 80, 5 ve 6.karelere kadar olan ardışık karelerin luma değerindeki ortalama fark ise en az 18, 75 olmalıdır.
  • Android 15 ve önceki sürümleri çalıştıran cihazlarda ilk 6 karenin ortalama luma değeri en az 85, 5 ve 6. karelere kadar olan ardışık karelerin luma değerindeki ortalama fark ise en az 17 olmalıdır.

Aşağıdaki parlaklık grafiğinde, başarılı bir test sonucunun nasıl göründüğü gösterilmektedir.

Düşük ışıklı gece sahnesi testi geçme örneği

Şekil 137. Düşük ışıklı gece sahnesi testi başarılı örneği.

test_low_light_boost_extension

Düşük Işık Güçlendirme AE modunu test eder. Camera2, düşük ışık güçlendirmesi AE modunu destekliyorsa bu test Camera2 için gerçekleştirilir. Gece modu kamera uzantısı destekleniyorsa ve uzantı, düşük ışık güçlendirmesi AE modunu destekliyorsa bu test gece modu kamera uzantısı için de gerçekleştirilir. Bu test, AE modunu düşük ışıkta güçlendirme olarak ayarlar, önizlemeden bir kare alır ve aşağıdakileri yapar:

  • 20 kutunun varlığını algılar
  • Her kutuyla sınırlanan luma değerini hesaplar
  • Hilbert eğrisi ızgara yönüne göre ilk 6 karenin ortalama luma değerini hesaplar.
  • Ardışık karelerin luma değerindeki farkı (ör. kare2 - kare1) 5 ve 6. karelere (kare6 - kare5) kadar hesaplar ve hesaplanan beş farkın ortalamasını bulur.

Android 16 veya sonraki sürümlerin yüklü olduğu cihazlarda yakalama isteği, karelerden oluşan ızgarayı sınırlayan dikdörtgene karşılık gelen ölçülü bir bölge içerir. Bu ekleme, eşik geçme ölçütlerini değiştirir.

Test edilen API'ler:

Kart:

  • Android 16 veya sonraki sürümleri çalıştıran cihazlarda ilk 6 karenin ortalama luma değeri en az 54, 5 ve 6. karelere kadar olan ardışık karelerin luma değerindeki ortalama fark ise en az 17 olmalıdır.

  • Android 15 ve önceki sürümleri çalıştıran cihazlarda ilk 6 karenin ortalama luma değeri en az 70, 5 ve 6. karelere kadar ardışık karelerin luma değerindeki ortalama fark en az 18 olmalıdır.

scene_tele

scene_tele testleri için temel şart, grafik mesafesinin en az telefoto lensin minimum odak mesafesi kadar olmasıdır. Bu minimum odak mesafesi cihazlar arasında farklılık gösterebileceğinden, kurulumunuzu belirli telefoto kameraya uyacak şekilde yapılandırmanız gerekir.

scene_tele kurulumu, geniş ve telefoto kameranın odak mesafesine göre yapılır

Şekil 138. Geniş ve telefoto kameranın odak mesafesine göre scene_tele kurulumu.

Test donanımı kurulumu hakkında daha fazla bilgi için Telefoto uzatma düzeneği kurulumu başlıklı makaleyi inceleyin.

scene6_tele

scene6_tele sahnesi, beyaz arka plan üzerinde ArUco işaretçilerinden oluşan bir ızgaradan oluşur.

scene6_tele çekimleri modüler düzenekte fazla pozlanmış görünüyorsa modüler düzeneğin ön plakasını çıkarın.

WFoV test düzeneğini uzatmadan ayırın ve telefon montaj aparatını çıkarın.

WFoV test düzeneğini uzatmadan ayırın ve telefon montaj aparatını çıkarın.

Şekil 139. WFoV test düzeneğini uzatmadan ayırın ve telefon montaj aparatını çıkarın.

remove_front_plate

Şekil 140. Ön plakayı çıkarın.

test_zoom_tele

Geniş lensten telefoto lense kadar kamera yakınlaştırma davranışını test eder. Bu test, test_zoom ile aynıdır ancak geniş lensten telefoto lense kadar kamera yakınlaştırma davranışını test eder.

Test edilen API'ler:

Başarılı: Yakalanan ArUco işaretçisinin göreli boyutu, kameranın doğru şekilde yakınlaştırma yaptığını doğrulamak için istenen yakınlaştırma oranına göre doğru ve işaretçinin görüntü merkezine olan mesafesi, test_zoom bölümünde listelenen ölçütlere göre değişiyor.

test_preview_zoom_tele

Geniş lensten telefoto lense kadar önizleme kareleri için kamera yakınlaştırma davranışını test eder. Test, test_preview_zoom ile aynıdır ancak geniş lensten telefoto lense kadar önizleme kareleri için kamera yakınlaştırma davranışını test eder.

Test edilen API'ler:

Başarılı: Yakalanan ArUco işaretçisinin göreceli boyutu, kameranın doğru şekilde yakınlaştırma yaptığını doğrulamak için istenen yakınlaştırma oranına göre doğru ve işaretçinin görüntü merkezine olan mesafesi, test_preview_zoom bölümünde listelenen ölçütlere göre değişiyor.

scene7_tele

scene7_tele, scene7 ile aynıdır ancak telefoto lens testi için ayarlanmıştır. Bu, her biri farklı bir renkle doldurulmuş dört eşit bölüme ayrılmış dikdörtgen bir çerçevedir. Dikdörtgenin ortasında, keskinlik kontrolleri için eğimli kenar grafiği bulunur. Dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır. Bu işaretçiler, farklı yakınlaştırma oranlarında ana dikdörtgen çerçevesinin doğru koordinatlarını elde etmeye yardımcı olur.

test_multi_camera_switch_tele

Bu test, farklı yakınlaştırma oranlarında önizleme kaydı sırasında geniş (W) ve telefoto (tele) lensler arasında geçiş yapıldığında benzer RGB değerleri elde edildiğini doğrular.

Test, dinamik bir önizleme kaydı gerçekleştirmek ve fiziksel kameranın değiştiği noktayı belirlemek için önceden tanımlanmış aralıkta farklı yakınlaştırma oranları kullanır. Bu nokta, geniş açıdan telefoto lense geçişi gösterir.

Geçiş noktasında ve öncesinde yakalanan kareler AE, AWB ve AF için analiz edilir.

AE kontrolü, luma değişikliğinin hem W hem de telefoto lens görüntüleri için beklenen aralıkta olduğunu doğrular. AWB kontrolü, kırmızı-yeşil ve mavi-yeşil oranlarının hem W hem de tele lens görüntülerinde eşik değerleri içinde olduğunu doğrular. AF kontrolü, W ve telefoto lens görüntüleri arasındaki ortalama gradyan büyüklüğüne göre netlik tahmin değerini değerlendirir.

Test edilen API'ler:

Başarılı: Testin başarılı olması için AE, AWB ve AF kontrollerinin tümünün başarılı olması gerekir. Her bir kontrolün ölçütleri şunlardır:

  • AE kontrolü: Geniş ve telefoto lens görüntüleri arasındaki lüminans değişimi %4'ten az olmalıdır.
  • AWB kontrolü: LAB renk alanında, geniş ve telefoto için kırmızı-yeşil ile mavi-yeşil arasındaki delta C 10'u aşamaz.
  • AF kontrolü: Tele lensin görüntü keskinliği, W lensten daha yüksek olmalıdır.

scene_video

scene_video, beyaz arka plan üzerinde farklı kare hızlarında ileri geri hareket eden dört farklı renkli daireden oluşan bir video sahnesidir.

Şekil 141. scene_video örneği.

test_preview_frame_drop

İstenen önizleme kare hızının dinamik bir sahneyle korunduğunu test eder. Bu test, üçüncü taraf uygulamalara açık olan tüm kameralarda çalıştırılır.

Test edilen API'ler:

Başarılı: Önizleme kare hızı, istenen kare hızı aralığının maksimum değerindedir ve ardışık kareler arasındaki ortalama varyasyon, testte ayarlanan göreceli toleranstan daha düşüktür.

2. nesil donanım / sensor_fusion tabanlı test sahneleri

feature_combination

feature_combination testleri, birden fazla kamera özelliği aynı anda etkinleştirildiğinde özelliklerin doğru şekilde çalıştığını doğrular. Bu testlerde, sensör füzyon sahnesinde kullanılan dama tahtası resmi kullanılır.

test_feature_combination

Kamera cihazı tarafından desteklenen farklı akış kombinasyonları, video sarsıntı önleme modu, hedef FPS aralığı, 10 bit HDR video ve Ultra HDR'nin tüm kombinasyonlarını test eder.

Android 16 ve sonraki sürümlerde test, desteklenen özelliklerin tüm kombinasyonlarını çalıştırır ve sonuçları bir proto dosyasına kaydeder. Başarısızlık iddiaları, yalnızca isSessionConfigurationSupported işlevinin True döndürdüğü özellik kombinasyonları için çağrılır.

Test edilen API'ler:

Başarılı: Desteklenen her özellik kombinasyonu için:

  • Önizleme sabitleme özelliği açıksa önizleme akışı sabitlenir.
  • Önizleme kare hızı, yapılandırılan AE_TARGET_FPS_RANGE aralığında.
  • Kaydedilen önizleme akışının renk alanı, ayarlananla eşleşir.
  • Ultra HDR çekimde geçerli bir kazanç haritası vardır.

scene_flash

scene_flash testleri için sensör füzyon kutusunda karanlık bir sahne gerekir. Android 17 ve sonraki sürümlerde scene_flash testi, Gen2 düzeneği kullanılarak yapılabilir.

test_auto_flash

Arka ve ön kameralar için karanlık bir sahnede otomatik flaşın tetiklenip tetiklenmediğini test eder. Ön kameralarda otomatik flaş, sahneyi aydınlatmak için fiziksel bir flaş birimi yerine ekranı kullanır. Test, otomatik flaş etkinleştirildiğinde karo görüntüsünün merkezinin daha parlak olduğunu kontrol ederek otomatik flaşın patladığını doğrular. Otomatik flaşı tetiklemek için test düzeneğindeki ışıklar kapatılmalıdır. Işıklar, Arduino denetleyiciyle otomatik olarak kapatılabilir. Testin doğru çalışması için ortamın tamamen karanlık olması gerekir. Testten önce cihaza Jetpack Camera uygulaması (JCA) yüklenmelidir. Arka kameralar için otomatik flaş, AE durumunun tetiklenmesine bağlıdır ancak ön kameralar için otomatik flaş, AE'ye bağlı değildir ve her zaman tetiklenir.

Android 17 ve sonraki sürümlerde, desteklenen tüm yakınlaştırma aralıklarında doğru işlevselliği doğrulamak için 1x olmayan yakınlaştırma seviyelerini test eder.

Test edilen API'ler:

Başarılı: Otomatik flaşın etkin olduğu karo görüntüsünün merkezi, tüm kameralar için orijinal sahne görüntüsünden daha parlaktır.

test_flash_strength

SINGLE modunda flaş gücü kontrolünün doğru şekilde uygulanıp uygulanmadığını test eder.

Cihaz, SINGLE modunda kamera kullanımı sırasında flaş gücü kontrolünü destekliyorsa flaş gücünün, istenen farklı güç seviyelerine göre değiştiğini doğrular. Flaş gücü kontrolünün farklı AE_MODES ile çalıştığını doğrular. Örneğin, otomatik pozlama modu ON veya OFF ise flaş gücü seviyesi parlaklığı etkiler. Mod ON_AUTO_FLASH ise flaş gücü seviyesinin parlaklık üzerinde etkisi olmaz.

Testi gerçekleştirmek için test düzeneğindeki ışıkların kapatılması gerekir. Işıklar, Arduino denetleyiciyle otomatik olarak kapatılabilir. Testin doğru şekilde çalışması için sahnenin tamamen karanlık olması gerekir.

Test edilen API'ler:

Kart:

Otomatik pozlama modu ON veya OFF olduğunda, flaş gücü seviyesi flaşsızdan FLASH_SINGLE_STRENGTH_MAX_LEVEL'ya yükseldikçe görüntü parçalarının parlaklığı artar. Otomatik pozlama modu ON_AUTO_FLASH olduğunda, flaş gücü seviyesi flaşsızdan FLASH_SINGLE_STRENGTH_MAX_LEVEL seviyesine yükseldikçe görüntü parçalarının parlaklığındaki fark tolerans dahilinde olur.

test_led_snapshot

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

Bu test, ışıkları kontrol etmek için Sensor Fusion Box'a bir ışık denetleyicisi ekler. Işıklar OFF olarak ayarlandığında test, AUTO_FLASH modu ON olarak ayarlanmış şekilde bir çekim yapar. Bu çekim sırasında test, aePrecapture tetikleyicisi START olarak ayarlanmış bir ön çekim dizisi çalıştırır ve flaşla çekim yapmak için çekim amacını Preview olarak ayarlar.

Çekimde flaş nedeniyle belirgin bir parlama noktası olduğundan test, tüm çekimin flaşlı görüntü ortalamasını hesaplar ve değerin (68, 102) aralığında olup olmadığını doğrular. Test, görüntünün beyaz dengesinin makul olup olmadığını kontrol etmek için kırmızı-yeşil ve mavi-yeşil oranlarını hesaplar ve oranların 0,95 ile 1,05 arasında olup olmadığını doğrular.

Test edilen API'ler:

Başarılı: Kırmızı-yeşil ve mavi-yeşil oranları 0,95 ile 1,05 arasındadır. Flaşlı görüntü ortalaması (68, 102) aralığında.

test_night_mode_indicator

Kameranın düşük ışık koşullarında çalışıp çalışmadığını ve gece modu kamera uzantısı fotoğraf çekiminden yararlanıp yararlanmayacağını gösteren gece modu göstergesinin işlevini test eder. Bu özellik yalnızca Gece Modu Kamera uzantılarını destekleyen cihazlarda kullanılabilir.

Bu test, gece modu göstergesinin kamera önizlemesi sırasında ışık koşullarını doğru şekilde yansıtıp yansıtmadığını kontrol eder. Testte aşağıdaki adımlar uygulanır:

  1. Başlatma: Test, bir ItsSession başlatır ve kamera özelliklerini alır. Ayrıca aydınlatma kontrolörüyle bağlantı kurar.
  2. Atlama Koşulları: Cihaz, gerekli API düzeyini veya gece modu göstergesi özelliğini desteklemiyorsa test atlanır.
  3. Camera2 Oturumu:
    • Test, Camera2 oturumu kullanarak bir önizleme yakalama oturumu başlatır.
    • Işık açılır ve bir önizleme karesi yakalanır.
    • Test, gece modu göstergesinin OFF durumunda olduğunu doğrular.
    • Işık kapatılır ve bir önizleme karesi yakalanır.
    • Test, gece modu göstergesinin ON durumunda olduğunu doğrular.
  4. Kamera uzantısı oturumu:
    • Test, Camera2 oturumuyla aynı prosedürü tekrarlar ancak EXTENSION_NIGHT uzantısına sahip bir CameraExtension oturumu kullanır.
  5. Temizleme: Test, ItsSession nesnesini kapatır ve aydınlatma denetleyicisini serbest bırakır.

Test edilen API'ler:

Kart:

  • Işık açıkken gece modu göstergesi OFF durumunda olmalıdır.
  • Işık kapalıyken gece modu göstergesi ON durumunda olmalıdır.
  • Hem Camera2 hem de CameraExtension oturumları için geçerlidir.

test_preview_min_frame_rate

Önizleme kare hızının karanlık bir sahnede doğru şekilde azalıp azalmadığını test eder. Bu testin doğru şekilde ç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 değerindedir ve kareler arasındaki varyasyon, testte ayarlanan mutlak toleranstan daha azdır.

test_torch_strength

TORCH modunda flaş gücü kontrolünün doğru şekilde uygulanıp uygulanmadığını test eder.

Cihaz, TORCH modunda kamera kullanımı sırasında flaş gücü kontrolünü destekliyorsa fener gücünün farklı istenen güç seviyelerine göre değiştiğini doğrular. Flaş gücü kontrolünün farklı AE_MODES ile çalıştığını doğrular. Örneğin, otomatik pozlama modu ON veya OFF ise flaş gücü seviyesi parlaklığı etkiler. Mod ON_AUTO_FLASH ise flaş gücü seviyesinin parlaklık üzerinde etkisi olmaz. Video çekim oturumunu simüle ederek seri çekim süresi boyunca fener gücünün aynı kaldığını doğrular. Testi gerçekleştirmek için test düzeneğindeki ışıkların kapatılması gerekir. Işıklar, Arduino denetleyiciyle otomatik olarak kapatılabilir. Testin doğru çalışması için ortamın tamamen karanlık olması gerekir.

Test edilen API'ler:

Kart:

Otomatik pozlama modu ON veya OFF olduğunda, flaş gücü seviyesi flaşsızdan FLASH_TORCH_STRENGTH_MAX_LEVEL seviyesine yükseldikçe görüntü patlaması yamalarının parlaklığı artar. Otomatik pozlama modu ON_AUTO_FLASH olduğunda, flaş gücü seviyesi flaşsızdan FLASH_TORCH_STRENGTH_MAX_LEVEL seviyesine yükseldikçe görüntü seri çekim parçalarının parlaklığındaki fark tolerans dahilinde olur.

scene_gen2_chart

Android 17 ve sonraki sürümlerde scene_gen2_chart, Gen2 kağıt grafiğini kullanır.

Bu test çizelgesi; yüz örnekleri, QR kodu, gri tonlamalı yamalar, Siemens yıldızı, renk çizelgesi ve eğik karelerden oluşur.

test_chart_gen2

Şekil 142. Gen2 grafik örneği.

test_tonemap_sequence

Bu test, bir cihazın varsayılan ton eşleme eğrisini doğrusal bir eğri ve iki üstel eğriye (biri tek tip noktalara, diğeri tek tip olmayan noktalara sahip) göre değerlendirir. Başarılı bir sonuç için varsayılan eğrinin parlaklığı, doğrusal ve üstel eğrilerin parlaklığından daha yüksek olmalıdır. Ayrıca doğrusal eğri, üstel eğrilerden daha parlak olmalı ve iki üstel eğri benzer parlaklık seviyelerine sahip olmalıdır.

Test, cihazın varsayılan eğrisinin doğruluğunu da kontrol eder. Bu işlem, varsayılan eğriyi çıkarıp yeniden girerek ve ardından elde edilen görüntünün parlaklığını orijinal varsayılan eğrinin görüntüsüyle karşılaştırarak yapılır.

Test ton eşleme dizisi grafiği

Şekil 143. Ton eşleme dizisi grafiğini test edin.

Test edilen API'ler:

Başarılı: Varsayılan ve doğrusal eğriler arasındaki parlaklık farkı %15'ten fazla, iki üstel eğri arasındaki fark ise %8'den azdır.

test_multi_camera_switch

Bu test, dinamik yakınlaştırma geçişleri sırasında renk ve pozlama tutarlılığını doğrular. Önizleme kaydı sırasında ultra geniş (UW) ve geniş (W) lensler arasında geçiş yapıldığında neredeyse aynı CIELAB değerlerinin korunduğunu ve kullanıcı deneyiminde görünür değişikliklerin önlendiğini doğrular.

Test, önceden tanımlanmış bir yakınlaştırma aralığında dinamik bir önizleme kaydı gerçekleştirerek fiziksel kamera "geçiş" noktasını tetikler. Bu noktada ultra geniş lens, geniş lense geçer. Test, lens geçişinin gerçekleştiği tam kareyi belirler. Bu geçiş noktasından hemen önceki ve sonraki kareler yakalanır ve otomatik pozlama (AE) ile otomatik beyaz dengesi (AWB) açısından kararlılıkları analiz edilir.

AE kontrolü, lens geçişi sırasında Luma dalgalanmalarının kabul edilebilir bir aralıkta kaldığını doğrular. AWB kontrolü, kırmızı-yeşil ve mavi-yeşil oranlarının tanımlanmış renk nötrlüğü eşikleri içinde kaldığını doğrular.

Test edilen API'ler:

Başarılı: Testin başarılı olması için aşağıdaki AE ve AWB kontrollerinin başarılı olması gerekir:

  • AE kontrolü: Cihaz hem ae_regions hem de awb_regions değerini destekliyorsa UW ve W lens görüntüleri arasındaki luma değişimi (Y değeri), tüm renk yamaları için% 4'ten az olmalıdır. Yalnızca ae_regions destekleniyorsa yalnızca gri renkli yama değerleri ölçütleri karşılamalıdır.
  • AWB kontrolü: Cihaz hem ae_regions hem de awb_regions değerini destekliyorsa UW ve W lens görüntülerinin kırmızı-yeşil ve mavi-yeşil değerleri arasındaki fark, gri renk yaması için% 3'ten, diğer renk yamaları için% 10'dan az olmalıdır.

uw_dynamic_range_patch_cell_8

Şekil 144. UW lens ile çekilmiş gri yama.

w_dynamic_range_patch_cell_7

Şekil 145. Geniş lensle çekilmiş gri yama.

scene_ip

Android 16 ve sonraki sürümlerde sahne scene_ip, varsayılan kamera uygulaması ile Jetpack Kamera Uygulaması (JCA) arasında görüntü eşliği kontrolleri yaparak çekilen görüntüler arasındaki önemli farkları tespit eder. JCA, sosyal medya uygulaması çekimlerini kopyalar ve sosyal medya uygulamalarının daha sonra işleyip hassaslaştırdığı bir temel görüntü sağlar.

Donanım kurulumu koşulları

scene_ip testleri için aşağıdaki donanım kurulumu gereklidir:

  • Testler, 2. nesil kamera ITS-in-a-box'ta yürütülür.
  • Gen2 düzeneğinin bir parçası olan aydınlatma ve servo denetleyiciler, test ortamını kontrol etmek için kullanılır.
  • Gen2 donanımının içine bir test özelliği grafiği yerleştirilir.

test_chart_gen2

Şekil 146. Gen2chart_sample örneği.

Test atlama ölçütleri

Aşağıdaki ölçütlerden herhangi biri karşılanırsa scene_ip testleri atlanır:

  • Cihazın ilk API düzeyi (first_api_level) 35 veya daha düşük.
  • Cihaz, ön ve arka birincil kamera cihazları olan bir telefon cihazı değildir (örneğin, tablet veya TV).

test_default_jca_ip

Varsayılan kamera uygulamasını ve JCA'yı kullanarak kontrollü ışıklandırma koşullarında test özelliği grafiğinin görüntülerini yakalar ve aşağıdaki kontrolleri gerçekleştirir:

  • FoV: Varsayılan kamera uygulaması ve JCA çekimlerinin aynı FoV'ye sahip olup olmadığını kontrol eder. Bu kontrolde, yakalanan grafik resminden çıkarılan merkez QR kodu özelliği kullanılır.

  • Parlaklık: Varsayılan kamera uygulaması ile JCA arasında ölçülen parlaklık farkının 10'u aşmadığını kontrol eder. Bu kontrolde, parlaklık ölçümü için dinamik aralık yaması kullanılır.

  • Beyaz dengesi: Varsayılan kamera uygulaması ile JCA arasındaki beyaz dengesi farkının 4'ü aşmadığını kontrol eder. Bu kontrolde, parlaklık ölçümü için dinamik aralık yaması kullanılır.

  • Renk oluşturma: Varsayılan kamera uygulaması ile JCA arasındaki renk oluşturma farkının 6'yı aşmadığını kontrol eder.

Başarılı: Test; FoV, parlaklık ve beyaz dengesi kontrollerini geçer. Android 16'da bu test zorunlu değildir (NOT_YET_MANDATED). Android 17 ve sonraki sürümlerde FoV, parlaklık ve beyaz dengesi eşitlik kontrolleri zorunludur. Android 17'de renk oluşturma kontrolü zorunlu değildir (NOT_YET_MANDATED).

test_jca_jpegr_ip

JPEG_R JCA önizleme anlık görüntüsü ile çekilen görüntüler arasındaki beyaz dengesi farkının 4'ü aşmadığını doğrular.

Test edilen API'ler:

Başarılı: JCA önizleme anlık görüntüsü ile çekilen JPEG_R görüntüsü arasındaki beyaz dengesi farkı, eşik değerinin (varsayılan değer 4'tür) içindedir.

sensor_fusion

Sensör füzyon testleri, telefonun dama tahtası deseni ve ArUco işaretçilerinin önünde belirli bir şekilde hareket ettirilmesini gerektirir. En iyi sonuçlar için test grafiğinin düz bir şekilde monte edildiğinden emin olun. Düz olmayan grafikler, testlerin çoğu için rotasyon hesaplamalarını etkiler. Çizelge, 17x17 inç boyutunda yazdırılarak sensör füzyon kutusunun arkasını doldurmalıdır. (43x43 cm). sensor_fusion testleri, Sensor Fusion Box ile otomatikleştirilebilir.

Sensör füzyon grafiği

Şekil 147. Sensör füzyon grafiği.

Rig'deki sensör füzyon grafiği

Şekil 148. Sensör füzyon kutusunun arkasını dolduran sensör füzyon grafiği.

test_lens_intrinsic_calibration

Lensin optik merkezinin, optik görüntü sabitleme (OIS) nedeniyle lens hareket ettiğinde değişip değişmediğini test eder. Lens iç örnekleri destekleniyorsa lens OIS nedeniyle hareket ettiğinde lens iç örneklerinin optik merkezinin değiştiğini test eder.

Test edilen API'ler:

Başarılı: Lensin optik merkezi 1 piksel veya daha fazla değişir. Lens iç örnekleri destekleniyorsa lens iç örneklerinin optik merkezleri 1 piksel veya daha fazla değişir.

Aşağıdaki şekilde, her kare için piksel cinsinden ana nokta değişikliklerini gösteren örnek bir test_lens_intrinsic_calibration grafiği verilmiştir:

test_lens_intrinsic_calibration_example.png

Şekil 149. Her kare için piksel cinsinden ana noktaların değişikliklerini gösteren test_lens_intrinsic_calibration grafiği örneği.

test_multi_camera_frame_sync

Mantıksal kamera tarafından yakalanan kare zaman damgalarının, zaman damgasını belirlemek için dama tahtasındaki karelerin açılarını hesaplayarak 10 ms içinde olup olmadığını test eder.

Test edilen API'ler:

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

test_preview_distortion

Çeşitli yakınlaştırma seviyelerinde çekilen her önizleme karesinde bozulmanın düzeltilip düzeltilmediğini test eder. Test, her önizleme karesi için kameranın iç ve dış özelliklerine göre ideal noktaları hesaplar.

Örnek resimde ideal puanlar yeşil, gerçek puanlar ise kırmızı renkle gösterilmiştir. Bozulma hatası, gerçek noktalar ile ideal noktalar arasındaki RMS piksel mesafesine göre hesaplanır. Resimdeki yeşil ve kırmızı vurgular, bozulma hatasının olduğu alanı görsel olarak tespit etmek için kullanılır.

test_preview_distortion_example.jpg

Şekil 150. İdeal noktaların yeşil, gerçek noktaların kırmızı olduğu dama tahtası resmi.

Test edilen API'ler:

Başarılı: Her önizleme karesinin normalleştirilmiş bozulma hatası, testte ayarlanan eşikten daha düşüktür.

test_preview_stabilization

Sabitlenmiş önizleme videosunun jiroskoptan daha az döndüğünü gösteren testler.

Test edilen API'ler:

Başarılı: Kareler üzerindeki maksimum açı dönüşü, jiroskop dönüşünün% 70'inden azdır.

Aşağıda, stabilizasyon uygulanmış ve uygulanmamış örnek videolar verilmiştir:

Şekil 151. Sabitleme özelliğinin kullanıldığı örnek video.

Şekil 152. Sabitleme özelliği kullanılmayan örnek video.

test_sensor_fusion

AR ve VR uygulamaları için kamera ile jiroskop arasındaki zaman damgası farkını test eder. Telefon, dama tahtası deseninin önünde 10 kez 90 derece döndürülür. Hareket yaklaşık 2 saniye gidiş dönüş süresine sahiptir. Jiroskop yoksa veya zaman damgası kaynağı REALTIME parametresi etkinleştirilmemişse bu test atlanır.

test_sensor_fusion testi, bir dizi grafik oluşturur. Hata ayıklama için en önemli iki grafik şunlardır:

  • test_sensor_fusion_gyro_events: Test sırasında telefonun jiroskop etkinliklerini gösterir. X ve Y yönündeki hareket, telefonun montaj plakasına güvenli bir şekilde monte edilmediğini gösterir ve testin geçme olasılığını azaltır. Grafikteki döngü sayısı, kareleri kaydetme sırasındaki yazma hızına bağlıdır.

    test_sensor_fusion jiroskop etkinlikleri örneği

    Şekil 153. test_sensor_fusion jiroskop etkinlikleri örneği.

  • test_sensor_fusion_plot_rotations: Jiroskop ve kamera etkinliklerinin hizalamasını gösterir. Bu grafikte, kamera ile jiroskop arasındaki hareketin +/-1 ms'ye kadar eşleştiği gösterilmelidir.

    test_sensor_fusion plot rotations örneği

    Şekil 154. test_sensor_fusion çizim rotasyonları örneği.

Test edilen API'ler:

Başarılı: Kamera ve jiroskop zaman damgalarının ofseti, CDD'deki 7.3.9 Yüksek Doğruluklu Sensörler uyarınca 1 ms'den azdır.

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

  • Ofset hatası: Kamera-jiroskop ofseti +/-1 ms içinde doğru şekilde kalibre edilmemiş.
  • Kare düşüşleri: Ardışık 200 kareyi yakalamak için ardışık düzen yeterince hızlı değil.
  • Soket hataları: adb, testi yürütmek için yeterli süre boyunca DUT'ye güvenilir bir şekilde bağlanamıyor.
  • Grafik düz bir şekilde monte edilmemiş. test_sensor_fusion_plot_rotations grafiğinde, kamera grafiğin düz olmayan kısımlarında dönerken jiroskop ve kamera dönüşünün önemli ölçüde farklılık gösterdiği kareler var.
  • Kamera düz bir şekilde monte edilmemiş. Grafik test_sensor_fusion_gyro_events, X ve Y düzlemlerindeki hareketi gösterir. Arka kameranın genellikle telefon gövdesinin geri kalanına göre çıkıntılı olması, telefonun arka tarafını montaj plakasına monte ederken eğim oluşturur. Bu nedenle, bu hata ön kameralarda daha yaygındır.

test_video_stabilization

Desteği sonlandırıldı: Bu testin desteği Android 17'den itibaren sonlandırılmıştır. Android 17 ve sonraki sürümlerde bu testin yerini test_video_stabilization_jca alır.

Stabilize edilen videonun jiroskoptan daha az döndüğünü test eder.

Test edilen API'ler:

Başarılı: Kareler üzerindeki maksimum açı dönüşü, jiroskop dönüşünün% 60'ından azdır.

Aşağıda, stabilizasyonun uygulandığı ve uygulanmadığı örnek videolar verilmiştir.

Şekil 155. Sabitleme özelliğinin kullanıldığı örnek video.

Şekil 156. Sabitleme özelliği kullanılmayan örnek video.

test_video_stabilization_jca

JCA kullanılarak çekilen sabitlenmiş videonun jiroskoptan daha az döndüğünü test eder. Testten önce JCA'nın cihaza yüklenmesi gerekir.

Test edilen API'ler:

Başarılı: JCA kullanılarak çekilen videodan çıkarılan karelerdeki maksimum açı dönüşü, jiroskop dönüşlerinin% 70'inden azdır. 4).

Difüzör tabanlı test sahnesi

scene5

scene5 için eşit şekilde aydınlatılmış gri bir sahne gerekir. Bu, kamera lensinin üzerine yerleştirilen bir difüzörle sağlanır. Aşağıdaki difüzörü kullanmanızı öneririz: http://www.edmundoptics.com/optics/windows-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 2.000 lüks değerinde bir ışık kaynağına doğrultun. scene5 için çekilen resimlerde, belirgin özellikler içermeyen dağınık ışık kullanılmalıdır. Aşağıda örnek bir resim verilmiştir:

scene5 example

Şekil 157. scene5 yakalama örneği.

Bu sahne için tablet veya kumanda gerekmediğinden testlerde TEST_BED_MANUAL test ortamı kullanılır. Örnek için Manuel test config.yml dosyası başlıklı makaleyi inceleyin. Varsayılan config.yml dosyası TEST_BED_MANUAL içermez ancak dosyayı bir tane içerecek şekilde değiştirebilirsiniz.

test_lens_shading_and_color_uniformity

Lens gölgeleme düzeltmesinin doğru şekilde uygulandığını ve tek renkli, tek tip bir sahnenin renginin eşit şekilde dağıtıldığını test eder. Bu testi, otomatik 3A özellikli bir YUV karesinde gerçekleştirir. Lens gölgeleme, y kanalına göre değerlendirilir. Belirtilen her örnek blok için ortalama y değerini ölçer ve merkez y değeriyle karşılaştırarak başarılı veya başarısız olduğunu belirler. Renk bütünlüğü testi, kırmızı-yeşil ve mavi-yeşil uzayda değerlendirilir.

Test edilen API'ler:

Başarılı: Testi geçmek için resmin belirtilen yarıçapında kırmızı-yeşil ve mavi-yeşil değerinin varyansı% 20'den az olmalıdır.

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

  • Resimlerde aşırı vinyet etkisi
  • Resimlerde siyah kenarlık yapaylıkları

test_lens_shading_and_color_uniformity_y_plane

Şekil 158. test_lens_shading_and_color_uniformity_y_plane.

test_lens_shading_and_color_uniformity_color_uniformity_result

Şekil 159. test_lens_shading_and_color_uniformity_color_uniformity.

test_lens_shading_and_color_uniformity_lens_shading_result

Şekil 160. test_lens_shading_and_color_uniformity_lens_shading_result.

Geniş gamutlu tablet tabanlı test sahnesi

scene_wide_gamut

scene_wide_gamut, her biri farklı bir renkle doldurulmuş dört eşit kadrana bölünmüş dikdörtgen bir çerçevedir. Bu işlem için tabletin grafiği geniş gamutlu olarak göstermesi ve test edilen cihazın ekranın geniş gamutlu bir fotoğrafını çekmesi gerekir.

Bu testler, çekilen görüntünün doğru renk profiline ve renk aralığına uygun olduğunu doğrular.

test_display_p3

ColorSpaceProfiles API'sini kullanarak JPEG'de Display P3 yakalamayı test eder. Yakalanan JPEG'in başlığında uygun bir ICC profili olup olmadığını ve görüntünün sRGB gamı dışında belirli bir renk yüzdesi içerip içermediğini test eder.

Test edilen API'ler:

Başarılı: JPEG, Display P3 ICC profili ve sRGB gamutunun dışında %1'den fazla renk içeriyor.

test_display_p3 example

Şekil 161. test_display_p3 örneği.