Bu sayfada, Android Uyumluluk Test Paketi (CTS) Doğrulayıcı'nın bir parçası olan Kamera Görüntüsü Test Paketi (ITS) kapsamındaki testlerin kapsamlı bir listesi sağlanmaktadır. ITS testleri işlevsel testlerdir. Yani görüntü kalitesini değil, reklamı yapılan kamera işlevlerinin tümünün beklendiği gibi çalışıp çalışmadığını ölçerler. Bu doküman, geliştiricilerin ve test uzmanlarının her bir testin ne yaptığını ve test hatalarının nasıl ayıklandığını anlamalarına olanak tanır.
Kamera ITS kapıları, gerekli kamera özelliklerine, API düzeyine ve medya performans sınıfına (MPC) göre testler yapar. ITS, API düzeyi için belirli bir API düzeyinde eklenen ve daha düşük API düzeylerindeki işlevlerle ilgili olumsuz kullanıcı deneyimlerini test eden testleri kontrol etmek üzere ro.product.first_api_level
kullanır. ITS, belirli bir API düzeyinde eklenen ve yeni donanım özelliği gerektiren özellikler için testleri ro.vendor.api_level
ile kontrol eder. Bir cihaz için ro.odm.build.media_performance_class
tanımlanmışsa ITS, MPC düzeyine bağlı olarak belirli testlerin çalıştırılmasını gerektirir.
Testler aşağıdaki şekilde sahneye göre gruplandırılır:
scene0
: Meta veri, titreme, jiroskop, titreşim yakalamascene1
: Pozlama, hassasiyet, pozlama değeri (EV) telafisi, YUV'ye kıyasla JPEG ve RAWscene2
: Yüz algılama, renkli sahneler gerektiren testlerscene3
: Kenar geliştirme, lens hareketiscene4
: En boy oranı, kırpma, görüş alanıscene5
: Lens gölgelendirmesiscene6
: Yakınlaştırmascene7
: Çoklu kamera anahtarıscene8
: Otomatik pozlama (AE) ve otomatik beyaz denge (AWB) bölgesel ölçümüscene9
: JPEG sıkıştırmascene_extensions
: Kamera uzantılarıscene_tele
: Telefoto lensi değiştirmescene_flash
: Otomatik flaş, minimum kare hızıscene_video
: Çerçeve düşmesisensor_fusion
: Kamera ve jiroskop zamanlama farkıfeature_combination
: Özellik kombinasyonlarıscene_ip
: Varsayılan kamera uygulaması ile Jetpack Kamera Uygulaması (JCA) arasındaki görüntü eşleşmesi
Her sahnenin açıklaması için ilgili bölümlere bakın.
sahne0
Testler için belirli sahne bilgileri gerekmez. Ancak jiroskop ve titreşim testi için telefonun sabit olması gerekir.
test_jitter
Kamera zaman damgalarındaki titremeyi ölçer.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
Geçti: Kareler arasında en az 30 ms fark vardır.
Aşağıdaki şekilde küçük y ekseni aralığına dikkat edin. Bu grafikte jitter aslında küçüktür.
Şekil 1. test_jitter grafiği.
test_metadata
Kayıt sonuçlarına ve kamera özellikleri nesnelerine bakarak meta veri girişlerinin geçerliliğini test eder. Bu testte, resim içeriği önemli olmadığı için auto_capture_request
pozlama ve kazanç değerleri kullanılır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Geçti: Donanım düzeyi, rollingShutterSkew
, frameDuration
etiketleri,
timestampSource
, croppingType
, blackLevelPattern
, pixel_pitch
,
görüş alanı (FoV) ve hiper odak uzaklığı mevcuttur ve geçerli değerlere sahiptir.
test_request_capture_match
Cihazın, yakalama meta verilerini geri okuyarak doğru pozlama ve kazanç değerlerini yazdığını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
Geç: Meta veri değerlerinin istek ve yakalama işlemleri tüm çekimler arasında eşleşiyor.
test_sensor_events
Sensör füzyonu desteğinin reklamını yapan cihazlarda bu test, cihazın sensör etkinliklerini sorup yazdırıp yazdırmadığını kontrol eder. İvme ölçer, jiroskop ve manyetometre sensörlerinin bulunması gerekir. Bu test yalnızca ekran açıkken (cihaz bekleme modunda değilken) çalışır.
Test edilen API'ler:
Geç: Her sensör için etkinlikler alınır.
test_solid_color_test_pattern
Kameranın sesini kapatmak için düz renk test kalıplarının düzgün şekilde oluşturulup oluşturulmadığını test eder. Kameranın sessize alınması destekleniyorsa düz renk test kalıpları da desteklenmelidir. Kameranın sessize alınması desteklenmiyorsa tek renkli test kalıpları yalnızca bu özelliğin reklamı yapılıyorsa test edilir.
Ham resimler destekliyorsa renk atama da test edilir. Test edilen renkler siyah, beyaz, kırmızı, mavi ve yeşildir. Ham görüntüleri desteklemeyen kameralarda yalnızca siyah test edilir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Geçti: Desteklenen düz test desenleri doğru renktedir ve resimde düşük bir varyasyon vardır.
test_test_pattern
Her geçerli test deseni için kare yakalamak üzere android.sensor.testPatternMode
parametresini test eder ve karelerin düz renkler ve renk çubukları için doğru şekilde oluşturulup oluşturulmadığını kontrol eder. Bu test aşağıdaki adımları içerir:
- Desteklenen tüm test desenleri için resimler çeker.
- Düz renk test deseni ve renk çubukları için doğruluk kontrolü gerçekleştirir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Geçti: Desteklenen test kalıpları doğru şekilde oluşturulur.
Şekil 2. test_test_patterns örneği.
test_tonemap_curve
Test deseninin doğrusal ton haritası ile hamdan YUV'ye dönüştürülmesini test eder. Bu test, ton haritası dönüştürme işlemi için mükemmel bir resim kalıbı oluşturmak üzere android.sensor.testPatternMode = 2
(COLOR_BARS
) gerektirir. Doğrusal ton haritası ve ideal resim girişi ile doğru renk çıkışlarına sahip bir ardışık düzen olduğunu doğrular (test_test_patterns
kullanır).
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Geç: YUV ve RAW birbirine benziyor.
Şekil 3. test_tonemap_curve ham ö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.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.hardware.Sensor#TYPE_GYROSCOPE
Geçiş: Hareket zaman damgaları, iki resim zaman damgası arasındadır.
test_vibration_restriction
Cihazın titreşiminin beklendiği gibi çalışıp çalışmadığını test eder.
Test edilen API'ler:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.os.Vibrator
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
Geç: Kamera ses kısıtlaması API'si tarafından sessize alındığında cihaz titreşmez.
scene1_1
scene1
gri bir grafiktir. Gri grafik, kamera FOV'sinin orta% 30'unu kapsamalıdır. Orta bölgenin özelliği olmadığından gri grafiğin 3A'ya (AE, AWB ve AF) orta düzeyde meydan okuması beklenir.
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. WFoV test düzeninde bir RFoV kamera test edilirse 3A'nın birleşmesine yardımcı olmak için FoV'deki gri grafik için bazı sınırlar belirtmek üzere grafik 2/3 oranında ölçeklendirilir. Kamera test aparatlarının daha ayrıntılı açıklamaları için Kamera ITS-in-a-box başlıklı makaleyi inceleyin.
Şekil 5. Tam boyutlu sahne 1 grafiği (solda), 2/3 ölçekli grafik (sağda).
test_ae_precapture_trigger
Ön çekim tetikleyicisi kullanıldığında AE durum makinesini test eder. AE devre dışıyken beş manuel istek yakalar. Son istekte AE ön yakalama tetikleyicisi var. AE devre dışı olduğundan bu tetikleyici yoksayılmalıdır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
Geçti: AE yakınsadı.
test_auto_vs_manual
Otomatik ve manuel çekimlerin yapıldığı testler aynı görünüyor.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Geç: Her yakalama sonucunda raporlanan manuel beyaz denge kazançları ve dönüşümü, kameranın 3A algoritmasındaki otomatik beyaz denge estimate
ile eşleşir.
Şekil 6. test_auto_vs_manual otomatik örneği.
Şekil 7. test_auto_vs_manual beyaz denge örneği.
Şekil 8. test_auto_vs_manual manuel beyaz dengeleme dönüşümü örneği.
test_siyah_beyaz
Cihazın tam siyah beyaz resimler üretip üretmediğini test eder. İki çekim yapar. İlkinde son derece düşük kazanç ve kısa pozlama kullanılır. Bu, siyah bir fotoğrafla sonuçlanır. İkincisinde ise son derece yüksek kazanç ve uzun pozlama kullanılır. Bu, beyaz bir fotoğrafla sonuçlanır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Geç: Siyah beyaz resimler oluşturur. Beyaz resimlerin doygun kanalları, %1'den az fark içeren hata payıyla [255, 255, 255] RGB değerlerine sahiptir.
Şekil 9. test_siyah_beyaz, siyah örnek.
Şekil 10. test_siyah_beyaz, beyaz örnek.
Şekil 11. test_siyah_beyaz, plot (grafik) örnek anlamına gelir.
test_burst_capture
Tüm yakalama ardışık düzeninin tam boyutlu yakalama hızına ve CPU süresine ayak uydurabileceğini doğrular.
Test edilen API'ler:
Geç: Tam boyutlu bir resim grubu yakalar, kare atlama ve resim parlaklığını kontrol eder.
test_burst_sameness_manual
Manuel çekim ayarıyla 50'şer resimden oluşan 5 seri çekim yapar ve bunların hepsinin aynı olup olmadığını kontrol eder. Farklı şekilde işlenmiş veya kusur içeren ara sıra kareler olup olmadığını belirlemek için bu testi kullanın.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
Başarılı: Görsel olarak ve RGB değerleri açısından aynı resimler.
Başarısız: Her patlamanın 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.
Şekil 12. test_burst_sameness_manual ortalama örneği.
Şekil 13. test_burst_sameness_manual_plot_means
test_crop_region_raw
RAW akışlarının kırpılamadığı test edilir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Geç: YUV resimleri ortasından kırpılır ancak RAW resimler kırpılmaz.
Şekil 14. test_crop_region_raw comp ham kırpma örneği.
Şekil 15. test_crop_region_raw comp raw tam örneği.
Şekil 16. test_crop_region_raw comp YUV kırpma örneği.
Ş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 resim alır ve beş farklı bölgeden (köşeler ve orta) yamalar oluşturur. Beş bölge için kırpma ayarlanmış resimler çeker. Yama ve kırpma resmi değerlerini karşılaştırır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Geçti: Kırpılan bölgenin resmi, kırpma resmine karşılık gelen yamakla eşleşiyor.
test_ev_compensation
Pozlama değeri (EV) telafisinin uygulanıp uygulanmadığını test eder. Test, temel ve ileri seviye bölümlerden oluşur.
Temel bölüm, EV telafisinin CONTROL_AE_COMPENSATION_STEP
ile oluşturulan bir aralık kullanılarak uygulandığını test eder. 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 görüntü parlaklığından hesaplanır ve hesaplanan değerler gerçek görüntü değeri aralığını aşarsa beklenen değer doygun hale gelir. Beklenen değerler ile ölçülen değerler eşleşmezse veya görüntüler beş adımda aşırı pozlanırsa test başarısız olur.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEP
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Temel bölüm geçişi: Görüntülerde, beş adımda aşırı pozlama olmadan artan pozlama gösterilir.
Şekil 18. test_ev_compensation_basic.
Gelişmiş bölüm geçişi: EV telafi ayarı arttıkça lumada bir artış yakalar. Her EV dengeleme ayarı için çekilen sekiz karenin parlaklık değerleri sabit olmalıdır.
Şekil 19. test_ev_compensation_advanced_plot_means.
test_exposure_x_iso
ISO ve pozlama süresi değiştikçe sabit bir pozlama elde edilip edilmediğini test eder. ISO ve pozlama süresinin birbirini dengeleyecek şekilde seçildiği bir dizi fotoğraf çeker.
Sonuçlar aynı parlaklığa sahip olmalıdır ancak sırayla görüntü daha gürültülü hale gelmelidir. Örnek piksel ortalama değerlerinin birbirine yakın olduğunu doğrular. Resimlerin 0 veya 1 değerine sabitlenmediğini (bu durumda düz çizgiler gibi görünürler) doğrular. Yapılandırma dosyanızda debug
işaretini ayarlayarak testi RAW resimlerle de çalıştırabilirsiniz.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Geç: Resimler aynı parlaklığa sahiptir ancak ISO değeri yükseldikçe daha fazla gürültü oluşur. ISO*exposure değeri, test edilen kazanç alanında 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.
Şekil 20. test_exposure_plot_means.
Şekil 21. test_exposure_mult=1,00.
Şekil 22. test_exposure_mult=64,00.
test_latching
FULL
ve LEVEL_3
kameralar için ayarların (ör. pozlama ve kazanç) doğru çerçeveye kilitlendiğini test eder. Arka arkaya istek kullanarak bir dizi çekim yapar ve çekim isteği parametrelerini çekimler arasında değiştirir. Resimlerin beklenen özelliklere sahip olup olmadığını kontrol eder.
Test edilen API'ler:
Geçti: [2, 3, 6, 8, 10, 12, 13] numaralı resimlerde ISO veya pozlama artmıştır ve aşağıdaki şekildeki grafikte daha yüksek RGB ortalamaları ile gösterilir.
Şekil 23. test_latching grafiği, örnek anlamına gelir.
Şekil 24. test_latching i=00.
Şekil 25. test_latching i=01.
Şekil 26. test_latching i=02.
Şekil 27. test_latching i=03.
Şekil 28. test_latching i=04.
Şekil 29. test_latching i=05.
Şekil 30. test_latching i=06.
Şekil 31. test_latching i=07.
Şekil 32. test_latching i=08.
Şekil 33. test_latching i=09.
Şekil 34. test_latching i=10.
Şekil 35. test_latching i=11.
Şekil 36. test_latching i=12.
test_linearity
Cihaz işlemenin doğrusal piksellere ters çevrilip çevrilemeyeceğini test eder. Cihazın sabit bir hedefe yönlendirildiği bir dizi fotoğraf çeker.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Geç: R, G, B değerleri, hassasiyet arttıkça doğrusal olarak artmalıdır.
Şekil 37. test_linearity grafiği, örnek anlamına gelir.
test_locked_burst
3A kilidini ve YUV patlamasını (otomatik ayar kullanılarak) test eder. Bu test, MANUAL_SENSOR
veya PER_FRAME_CONTROLS
bulunmayan sınırlı cihazlarda bile geçecek şekilde tasarlanmıştır.
Test, YUV resim tutarlılığını kontrol ederken kare hızı kontrolü CTS'dedir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
Geçti: Kayıtlar tutarlı görünüyor.
Şekil 38. test_locked_burst frame0 örneği.
Şekil 39. test_locked_burst frame1 örneği.
Şekil 40. test_locked_burst frame2 örneği.
scene1_2
scene 1_2
, scene 1_1
ile işlevsel olarak aynı bir kopyadır ve scene 1
'nin uzatılmış süresini azaltmak için alt sahne yapısı uygular.
test_param_color_correction
android.colorCorrection.*
parametrelerinin ayarlandığında uygulanıp uygulanmadığını test eder.
Farklı dönüştürme ve kazanç değerleriyle fotoğraflar çeker 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 bir ton haritası kullanır.
Ton eşleme, daha sınırlı dinamik aralığa sahip bir ortamda yüksek dinamik aralıklı görüntülerin görünümünü yaklaşık olarak elde etmek için bir renk grubunu başka bir renk grubuyla eşlemek amacıyla görüntü işlemede kullanılan bir tekniktir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
İlet: R ve B değerleri, dönüştürme işlemine göre artırılır.
Şekil 41. test_param_color_correction grafiği ortalaması örneği.
Aşağıdaki şekillerde x ekseni, yakalama isteklerinden oluşur: 0 = unity, 1 = kırmızı artışı ve 2 = mavi artışı.
Şekil 42. test_param_color_correction req=0 birlik örneği.
Şekil 43. test_param_color_correctness req=1 kırmızı renk artışı örneği.
Şekil 44. test_param_color_correction req=2 mavi renk artışı örneği.
test_param_flash_mode
android.flash.mode
parametresinin uygulanıp uygulanmadığını test eder. Flaşın patlayıp patlamadığının net bir şekilde anlaşılması için pozlamayı manuel olarak karanlık tarafa ayarlar ve doğrusal bir ton haritası kullanır. Flaşın ateşlenip ateşlenmediğini doğrulamak için oluşturulan büyük bir gradyan olup olmadığını görmek üzere karo resmiyle merkezi kontrol eder.
Test edilen API'ler:
Geçti: Kart resminin ortasında büyük bir renk geçişi varsa flaş kullanılmıştır.
Şekil 45. test_param_flash_mode 1 örneği.
Şekil 46. test_param_flash_mode tek karo örneği.
Şekil 47. test_param_flash_mode 2 örneği.
Şekil 48. test_param_flash_mode iki karo örneği.
test_param_noise_reduction
android.noiseReduction.mode
parametresinin ayarlandığında doğru şekilde uygulanıp uygulanmadığını test eder. Kameranın ışığı düşükken fotoğraf çekme Kaydedilen görüntünün gürültülü olmasını sağlamak için yüksek analog kazanç kullanır. NR kapalı, hızlı ve yüksek kaliteli olmak üzere üç resim çeker. Ayrıca, düşük kazanç ve NR kapalıyken bir resim yakalar ve bunun varyansını referans olarak kullanır. Sinyal-gürültü oranı (SNR) ne kadar yüksek olursa görüntü kalitesi de o kadar iyi olur.
Test edilen API'ler:
Geç: SNR, farklı gürültü azaltma modlarına göre değişir ve aşağıdaki grafiğe benzer şekilde çalışır:
Şekil 49. test_param_noise_reduction plot SNRs örneği.
0: KAPALI, 1: HIZLI, 2: HD, 3: MİN , 4: ZSL
Şekil 50. test_param_noise_reduction yüksek kazanç nr=0 örneği.
Şekil 51. test_param_noise_reduction yüksek kazanç nr=1 örneği.
Şekil 52. test_param_noise_reduction yüksek kazanç nr=2 örneği.
Şekil 53. test_param_noise_reduction yüksek kazanç nr=3 ö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:
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
Geçiş: Gölgelendirme modları değiştirilir ve lens gölgelendirme haritaları beklendiği gibi değiştirilir.
Şekil 55. test_param_shading_mode lens gölgelendirme haritası, mod 0 döngü 0 örneği.
Şekil 56. test_param_shading_mode lens gölgelendirme haritası, mod 1 döngü 0 örneği.
Şekil 57. test_param_shading_mode lens gölgelendirme 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 haritası 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:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_MODE
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Geçiş:
test1
: Her iki resimde de doğrusal bir ton haritası vardır ancakn=1
'te daha dik bir renk geçişi vardır.n=1
resmi için G (yeşil) kanalı daha parlak.test2
: Aynı ton haritası, ancak farklı uzunluk. Resimler aynı.
Şekil 58. n=0 olan test_param_tonemap_mode.
Şekil 59. n=1 olan test_param_tonemap_mode.
test_post_raw_sensitivity_boost
Ham hassasiyet artışı sonrası kontrolü yapar. Farklı hassasiyete sahip bir dizi ham ve YUV resmi yakalar, ham hassasiyet artışı 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:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Geç: Güçlendirme arttıkça ham görüntüler daha koyu olurken YUV görüntülerinin parlaklığı sabit kalır.
Şekil 60. test_post_raw_sensitivity_boost raw s=3583 boost=0100 örneği.
Şekil 61. test_post_raw_sensitivity_boost raw s=1792 boost=0200 örneği.
Şekil 62. test_post_raw_sensitivity_boost raw s=0896 boost=0400 örneği.
Şekil 63. test_post_raw_sensitivity_boost raw s=0448 boost=0800 örneği.
Şekil 64. test_post_raw_sensitivity_boost raw s=0224 boost=1600 örneği.
Şekil 65. test_post_raw_sensitivity_boost raw s=0112 boost=3199 örneği.
Şekil 66. test_post_raw_sensitivity_boost ham grafiği örneği.
Şekil 67. test_post_raw_sensitivity_boost YUV s=0112 boost=3199 örneği.
Şekil 68. test_post_raw_sensitivity_boost YUV s=0448 boost=0800 örneği.
Şekil 69. test_post_raw_sensitivity_boost YUV s=0896 boost=0400 örneği.
Şekil 70. test_post_raw_sensitivity_boost YUV s=1792 boost=0200 örneği.
Şekil 71. test_post_raw_sensitivity_boost YUV s=3585 boost=0100 örneği.
Şekil 72. test_post_raw_sensitivity_boost_yuv_plot_means
test_raw_exposure
Pozlama süresini artırarak bir dizi ham görüntü yakalar ve piksel değerlerini ölçer.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
Geçiş: ISO (kazanç) değerini artırmak, piksellerin ışığa karşı daha hassas olmasını sağlar. Bu nedenle, nokta grafik sola doğru hareket eder.
Şekil 73. test_raw_exposure ISO=55 örneği.
10⁰ 1 ms, 10¹ 10 ms ve 10⁻¹ 0, 1 ms'dir.
Şekil 74. test_raw_exposure ISO=132 örneği.
Şekil 75. test_raw_exposure ISO=209 örneği.
Şekil 76. test_raw_exposure ISOs=286 örneği.
Şekil 77. test_raw_exposure ISO=363 örneği.
Şekil 78. test_raw_exposure ISO=440 örneği.
test_reprocess_noise_reduction
Yeniden işleme istekleri için android.noiseReduction.mode
'ün uygulandığını test eder.
Kamera loş ışıktayken yeniden işlenmiş görüntüler çeker. Kayıt görüntüsünün gürültülü olduğunu doğrulamak için yüksek analog kazanç kullanır. Gürültü azaltma kapalı, hızlı ve yüksek kalite için üç yeniden işlenmiş resim çeker. Düşük kazanç ve NR kapalıyken yeniden işlenmiş bir görüntü yakalar ve bunun varyansını referans olarak kullanır.
Test edilen API'ler:
Geçiş: HIZLI >= KAPALI, HD >= HIZLI ve HD >> KAPALI.
Şekil 79. Tipik SNR ve NR modu çizelgesi örneği.
test_tonemap_sequence
Farklı ton haritası eğrileri içeren bir fotoğraf dizisini test eder. Doğrusal ton haritasıyla 3 manuel çekim yapar. Varsayılan ton haritasıyla 3 manuel çekim yapar. Her ardışık kare çifti arasındaki farkı hesaplar.
Test edilen API'ler:
Geç: Üç aynı karenin ardından farklı bir üç aynı kare grubu vardır.
Şekil 80. test_tonemap_sequence i=0 örneği.
Şekil 81. test_tonemap_sequence i=1 örneği.
Şekil 82. test_tonemap_sequence i=2 örneği.
Şekil 83. test_tonemap_sequence i=3 örneği.
Şekil 84. test_tonemap_sequence i=4 örneği.
Şekil 85. test_tonemap_sequence i=5 örneği.
test_yuv_jpeg_all
Görüntü yakalama için bildirilen tüm boyut ve biçimlerin çalıştığı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 haritası içeren manuel bir istek kullanır. Resimler varsayılan olarak kaydedilmez ancak debug_mode
etkinleştirilerek kaydedilebilir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
Geçti: Tüm resim merkezleri, en yüksek çözünürlüklü YUV resminin% 3'ü olan RGB dönüştürülmüş resimlerde maksimum karesi alınmış ortalama (RMS) (sinyal değeri) farkına sahiptir.
Şekil 86. test_yuv_jpeg_all örneği.
test_yuv_plus_dng
Resim yakalama için bildirilen boyutların ve biçimlerin çalıştığını test eder.
Test edilen API'ler:
Geçti: Test tamamlanır ve istenen resimler döndürülür.
Şekil 87. test_yuv_plus_dng örneği.
scene1_3
scene 1_3
, scene 1_1
ile işlevsel olarak aynı bir kopyadır ve scene 1
'nin uzatılmış süresini azaltmak için alt sahne yapısı uygular.
test_capture_result
CaptureResult
nesnelerinde geçerli verilerin döndürüldüğünü test eder. Test, bir otomatik çekim, bir manuel çekim ve ikinci bir otomatik çekimden oluşur.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Geç: Meta veriler tüm yakalamalar için geçerlidir ve manuel ayarlar ikinci otomatik yakalamaya aktarılmaz. Kayıtlar için lens gölgelendirme düzeltmesini gösterir.
Şekil 88. test_capture_result_plot_lsc_auto_ch0.
test_dng_noise_model
DNG ham model parametrelerinin doğru olduğunu doğrular. Nokta grafiği, çeşitli hassasiyetlerde çekilen ham çekimler sırasında gri kartın ortadaki bir 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 (çekim 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 dokümanı indirin.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Geçti: DNG ham model parametreleri doğru. Beklenen RGB değerleri, ölçülen gerçek RGB değerleriyle eşleşir.
Şekil 89. test_dng_noise_model_plog.
test_jpeg
YUV resimlerinin ve cihaz JPEG resimlerinin dönüştürüldüğü testler aynı görünüyor. Test, resmin ortasındaki% 10'u alır ve RGB değerini hesaplar, ardından bu değerlerin eşleşip eşleşmediğini doğrular.
Test edilen API'ler:
Geçti: Her resim arasındaki ortalama RGB farkı %3'ten azdır.
Şekil 90. test_jpeg_fmt=jpg.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 ham olarak seri çekim yapar.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Geçiş: Kazanç arttıkça her kare önceki kareden daha gürültülü olur.
Ortalama istatistikler ızgara hücresinin varyansını kullanır.
Şekil 92. test_raw_burst_sensitivity_variance.
test_raw_sensitivity
Artan hassasiyetlerle bir dizi ham görüntü yakalar ve görüntünün ortasındaki% 10'luk alandaki gürültüyü (varyans) ölçer. Her çekimin öncekinden daha gürültülü olup olmadığını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Geçiş: Varyans her çekimde artar.
Şekil 93. test_raw_sensitivity_variance.
test_yuv_plus_jpeg
Tek bir karenin hem YUV hem de JPEG çıkışı olarak yakalanması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 haritası içeren manuel bir istek kullanır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
Geç: YUV ve JPEG resimleri benzerdir ve% 1'den az RMS (sinyal değeri) farkına sahiptir.
Şekil 94. JPEG biçiminde test_yuv_plus_jpeg.
Şekil 95. YUV biçiminde test_yuv_plus_jpeg.
test_yuv_plus_raw
Tek bir karenin hem ham (10 bit ve 12 bit ham) hem de YUV çıkışı olarak yakalanmasını (destekleniyorsa) test eder. Doğrusal ton haritası içeren manuel bir istek kullanır. Bu nedenle, ham ve YUV'nin aynı olması beklenir. RGB'ye dönüştürülmüş resimlerin ortasındaki% 10 RGB değerlerini karşılaştırır. Günlüklerandroid.shading.mode
.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.hardware.graphics.ImageFormat#RAW10
android.hardware.graphics.ImageFormat#RAW12
Geçti: YUV ve ham görüntüler benzerdir ve% 3,5'ten az RMS (bir sinyalin karesi alınmış ortalama değeri) farkına sahiptir.
Şekil 96. test_yuv_plus_raw_shading=1_raw.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:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
Geç: ISO değeri yükseldikçe gürültü seviyesi de artar.
Atlama ölçütlerini test etme
Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_sensitivity_priority.py
testi atlanır:
- Cihazın ilk API düzeyi (
first_api_level
) 35 veya daha düşüktür. - Cihaz,
CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
'unCONTROL_AE_AVAILABLE_PRIORITY_MODES
'te reklamını yapmıyor.
test_exposure_time_priority
ISO'nun telafi edebileceği aralıkta sabit parlaklığı kontrol ederek CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
'yi çeşitli pozlama sürelerinde test eder.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
Başarılı: ISO, telafi aralığındaysa parlaklık, pozlama süreleri boyunca sabit (tolerans dahilinde) olur.
Atlama ölçütlerini test etme
Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_exposure_time_priority
testi atlanır:
- Cihazın ilk API düzeyi (
first_api_level
) 35 veya daha düşüktür. - Cihaz,
CONTROL_AE_AVAILABLE_PRIORITY_MODES
'teCONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
'un reklamını yapmıyor.
scene2_a
scene2_a
, gri arka planlı ve nötr kıyafetli üç yüze sahiptir. Yüzlerin cilt tonları geniş bir yelpazede olacak şekilde seçilir. Yüz algılamanın en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir.
Şekil 98. scene2_a örneği.
test_autoframing
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, 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:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
Geç: Üç yüzün tümü algılandı.
test_display_p3
ColorSpaceProfiles
API'yi kullanarak JPEG biçiminde Display P3 yakalamayı test eder. Kaydedilen JPEG'in başlığında uygun bir ICC profili bulunduğunu ve resmin sRGB gamutunun dışındaki renkleri içerdiğini test eder.
Test edilen API'ler:
android.hardware.camera2.params.ColorSpaceProfiles
android.hardware.camera2.params.SessionConfiguration#setColorSpace
Geçti: JPEG, Display P3 ICC profili ve sRGB gamutunun dışındaki renkleri içerir.
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:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Geçiş: Sahne resmini OFF
efektleriyle ve efektler MONO
olarak ayarlanmış tek renkli bir resimle çeker.
Şekil 99. test_effects_MONO.
test_exposure_keys_consistent
Bu test, AE etkin bir yakalamanın ortalama parlaklığını, AE devre dışı bir yakalamayla karşılaştırır. AE devre dışı yakalama, AE etkin yakalamanın CaptureResult
bölümünde alınan pozlama parametrelerini (duyarlılık, pozlama süresi, kare süresi, ham sonrası hassasiyet artışı) manuel olarak uygular.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
Geçti: İki yakalama arasındaki parlaklıktaki göreceli fark yüzde 4'ten azdır.
test_format_combos
Çıkış biçimlerinin farklı kombinasyonlarını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
Geç: Tüm kombinasyonlar başarıyla yakalanır.
test_num_faces
Yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geç: Üç yüz bulur.
Ş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 durum, yeniden işlenmiş resim ile yeniden işlenmemiş bir yakalama arasındaki mutlak farkların toplamı (SAD) hesaplanarak tespit edilir. Yeniden işlenmiş yakalamanın çıkış U ve V düzlemlerinin değiştirilmesi SAD'nin artmasına neden olursa çıkışın doğru U ve V düzlemlerine sahip olduğu varsayılır.
Test edilen API'ler:
android.hardware.camera2.CameraDevice#createCaptureSession
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
Geç: U ve V düzlemleri değiştirilmez.
Şekil 101. test_reprocess_uv_swap örneği.
scene2_b
test_preview_num_faces
Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle önizlemede yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geç: Yüz sınır kutularında yüz yer işaretleri olan üç yüz bulur.
Şekil 102. test_num_faces yüz algılama modu 1 örneği.
test_yuv_jpeg_capture_sameness
En büyük JPEG biçimiyle aynı en boy oranına sahip en yaygın YUV ve JPEG biçimlerini kullanarak 1920x1440 çözünürlüğünü aşmayan 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 karesi alınmış ortalama (RMS) farkı hesaplar.
Ayrıca bu test, desteklenen tüm akış kullanım alanları için YUV çıkışlarının STILL_CAPTURE
kullanım alanındaki YUV'ye makul ölçüde benzer olduğunu doğrular.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
android.graphics.ImageFormat#JPEG
Geçti: STILL_CAPTURE
kullanım alanı için YUV ve JPEG resimleri arasındaki RMS (bir sinyalin kare ortalama değeri) farkı% 3'ten azdır; desteklenen tüm kullanım alanları için YUV resimleri arasındaki RMS farkı, STILL_CAPTURE
kullanım alanındaki YUV resimlerinden% 10'dan azdır.
scene2_c
test_num_faces
Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geç: Üç yüz bulur.
Şekil 103. test_num_faces yüz algılama modu örneği.
test_jpeg_capture_perf_class
CDD'deki 2.2.7.2 Kamera bölümünde belirtildiği gibi S performans sınıfı için JPEG yakalama gecikmesini test eder.
Geçti: Her iki birincil kamera için de kendi ışıklandırma koşullarında (3000K) CTS kamera Performans Testi tarafından ölçülen 1080p çözünürlükte kamera2 JPEG yakalama gecikmesi 1000 ms'den az OLMALIDIR.
test_camera_launch_perf_class
CDD'deki 2.2.7.2 Kamera bölümünde belirtildiği gibi S performans sınıfı için kamera başlatma gecikmesini test eder.
Geçti: Her iki birincil kamera için de kendi ışıklandırma koşullarında (3000K) CTS kamera Performans Testi tarafından ölçülen camera2 başlatma gecikmesi (kameranın ilk önizleme çerçevesine açılması) 600 ms'den az OLMALIDIR.
test_default_camera_hdr
CDD'nin 2.2.7.2 Kamera bölümünde belirtildiği gibi, performans sınıfı 15 için varsayılan kamera yakalamanın Ultra HDR olduğunu test eder.
Geçti: Performans sınıfı 15 cihaz için varsayılan kamera paketi yakalaması Ultra HDR OLMALIDIR.
scene2_d
test_preview_num_faces
Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle önizlemede yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geç: Yüz sınır kutularında yüz yer işaretleri olan üç yüz bulur.
scene2_e
test_continuous_picture
Kayıt isteği ilk ayarıyla 50 VGA çözünürlüğündeki kareler yakalanır
android.control.afMode = 4 (CONTINUOUS_PICTURE).
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
Geçti: 3A sistemi, 50 karelik bir çekimin sonuna kadar yerleşir.
test_num_faces
Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geç: 3 yüz bulur.
scene2_f
scene2_f
, beyaz arka plan ve beyaz giysilerle üç yüze sahiptir. Yüzlerde çok çeşitli cilt tonları ve arka planla yüksek kontrast olmalıdır.
Şekil 104. scene2_f örneği.
test_preview_num_faces
Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geç: Yüz sınır kutularında yüz yer işaretleri olan üç yüz bulur.
Şekil 105. test_num_faces_fd_mode_1 örneği.
scene2_g
scene2_g
, beyaz arka plan ve beyaz giysilerle üç profil resmine sahip.
Yüzlerde çok çeşitli ten tonları ve arka planla yüksek kontrast olmalıdır.
Şekil 106. scene2_g örneği.
test_preview_num_faces
Yüz sahnelerinde daha fazla cilt tonu çeşitliliğiyle yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geç: Yüz sınır kutularında yüz yer işaretleri olan üç yüz bulur.
Şekil 107. test_preview_num_faces örneği.
sahne3
scene3
, ISO12233 grafiğini kullanır ve çoğu test, sahnedeki grafiği bulmak için bir grafik çıkarıcı yöntemi kullanır. Bu nedenle, kaydedilen resimlerin çoğunda 1, 2 veya 4 numaralı sahnelerdeki resimler gibi kenarlıklar yoktur, yalnızca grafik bulunur. Grafik bulucu'nun en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir.
test_edge_enhancement
android.edge.mode
parametresinin doğru şekilde uygulanıp uygulanmadığını test eder. Her kenar modu için yeniden işlenmeyen resimleri yakalar ve çıkış resminin 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 parametresi içeren bir yakalama isteğini işler.
Geç: HQ
modu (2), OFF
modundan (0) daha keskin. FAST
modu (1), OFF
modundan daha keskindir. HQ
modu, FAST
modundan daha keskin veya FAST
moduna eşit.
Test edilen API'ler:
Etkilenen kamera parametreleri:
EDGE_MODE
Şekil 108. test_edge_enhancement edge=0 örneği.
Şekil 109. test_edge_enhancement edge=1 (hızlı mod) örneği.
Şekil 110. test_edge_enhancement edge=2 (yüksek kaliteli mod) örneği.
test_flip_mirror
Resmin, CDD'deki 7.5.2 Ön Kamera bölümüne göre doğru yönde olup olmadığını test eder.
Yansıtılmış, ters çevrilmiş veya döndürülmüş resimler, ortasına yakın bir yerdeki elmas özelliğiyle tanımlanabilir.
Geç: Resim çevrilmemiş, aynalanmış veya döndürülmemiş.
Şekil 111. test_flip_mirror sahne yaması örneği.
test_imu_drift
Cihaz sabitken ve yüksek çözünürlüklü önizleme çekerken eylemsiz ölçüm biriminin (IMU) 30 saniye boyunca kararlı çıkış verip vermediğini test eder.
Test edilen API'ler:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_GYROSCOPE
android.hardware.Sensor#TYPE_ROTATION_VECTOR
Geçiş:
- Jiroskopun kayması, test süresi boyunca 0,01 rad'den azdır.
- Jiroskop okumasının varyansı, test süresi boyunca 1E-7 rad2/s2/Hz'den azdır.
- Dönme vektörünün kayması, test süresi boyunca 0,01 rad'den azdır.
- (Henüz zorunlu kılınmadı) Jiroskopun kayması saniyede 1 dereceden azdır.
Şekil 112. test_imu_drift jiroskop kayması örneği.
Şekil 113. test_imu_drift dönme vektörü kayması örneği.
test_landscape_to_portrait
Yatay moddan dikey moda geçerken geçersiz kılma işlevinin yatay sensörlerde düzgün çalışıp çalışmadığını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
Geçti: Test, beklenen döndürmeye sahip bir grafik bulur (yataydan dikeye geçerken geçersiz kılma devre dışıyken 0 derece, etkinleştirildiğinde 90 derece).
Şekil 114. test_landscape_to_portrait örneği.
test_lens_movement_reporting
Lens hareketi işaretinin düzgün şekilde raporlanıp raporlanmadığını test eder. İlk 12 kare optimum odak mesafesinde (3A tarafından bulunan) ve son 12 kare minimum odak mesafesinde olacak şekilde 24 karelik bir seri çekim yapar. 12. kare civarında lens hareket ederek keskinliğin düşmesine neden oluyor. Lens son konuma hareket ettikçe keskinlik sonunda sabitlenir.
Lens hareketi işareti, lensin optimum odak mesafesinde sabit olduğu ilk birkaç karede ve lensin minimum odak mesafesinde sabit olduğu son birkaç karede keskinliğin orta düzeyde olduğu tüm karelerde belirtilmelidir. Lensin hareket ettiği tam kare önemli değildir: Önemli olan, lens hareket ederken hareket işaretinin belirtilmesidir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#LENS_STATE
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
Geç: Keskinlik değişikliği olan karede lens hareketi işareti True
.
Başarısız olma mekanizmaları:
test_log.DEBUG
içindekilens_moving: True
(android.hardware.camera2.CaptureResult#LENS_STATE
= 1) yalnızca keskinliğin değişmediği karelerde doğrulanır.test_log.DEBUG
içindelens_moving: False
(android.hardware.camera2.CaptureResult#LENS_STATE
= 0) olan kareler, optimum odak mesafesindeki ilk birkaç kareye veya minimum odak mesafesindeki son birkaç kareye kıyasla keskinlik farkına sahiptir.
test_reprocess_edge_enhancement
Kenar iyileştirme için desteklenen yeniden işleme yöntemlerinin düzgün çalışıp çalışmadığını test eder. Belirli bir yeniden işleme kenar modu ile yakalama isteğini işler ve yeniden işleme kenar modları devre dışıyken yakalama için farklı modları karşılaştırır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
Geçti: Farklı kenar modlarının keskinliği doğrudur. HQ
(mod 2), OFF
'ten (mod 0) daha keskin ve farklı modlar arasındaki iyileştirme benzerdir.
Şekil 115. test_reprocess_edge_enhancement çizelgesi örneği.
sahne4
scene4
, kare içinde beyaz arka plan üzerinde siyah bir daireden oluşur.
scene4'teki testler hizalamaya duyarlı olabilir. Bu nedenle, Android 15'ten itibaren DUT ve grafik hizalamasının kontrolünü etkinleştirmek için tools dizininde check_alignment.py
'ü kullanabilirsiniz.
Şekil 116. 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 çekilir. Her videodan temsili bir kare seçilir ve iki videodaki görüş alanı değişikliklerinin spesifikasyonlara uygun olup olmadığını doğrulamak için analiz edilir. Dairenin en boy oranının sabit kaldığını, dairenin merkezinin sabit kaldığını ve dairenin yarıçapının sabit kaldığını test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Geçti: Resimler uzatılmamış, resimlerin merkezi %3'ten fazla farklı değil ve 30 FPS ile 60 FPS videolar arasındaki maksimum en boy oranı değişikliği en fazla %7,5'tir.
Başarısız olma mekanizmaları:
- 30 FPS videodaki dairenin boyutu, 60 FPS videodaki dairenin boyutundan önemli ölçüde farklı.
- Çekilen resimdeki daire, işleme ardışık düzeni tarafından bozulmuştur.
- Çekilen resimdeki daire, resmin yüksekliğini veya genişliğini azaltan aşırı en boy oranı yakalama isteği nedeniyle kırpılmıştır.
- Çekilen resimdeki dairenin ortasında yansıma var ve daire tamamen dolu görünmüyor.
test_aspect_ratio_and_crop
Resimlerin resim ardışık düzeninde beklenmedik şekilde bozulup bozulmadığını veya kırpılıp kırpılmadığını test eder. Tüm biçimlerde bir dairenin fotoğrafını çeker. Dairenin bozulmadığını, dairenin resmin ortasından hareket etmediğini ve dairenin farklı en boy oranları veya çözünürlüklerle yanlış şekilde boyut değiştirmediğini doğrular.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Geç: Resimler uzatılmaz, resimlerin ortasındaki fark %3'ten fazla olmaz ve mümkün olan maksimum görüş alanı korunur.
Başarısız olma mekanizmaları:
- Kamera, çekilen sahnenin ortasındaki tablette gösterilen daireyle hizalanmıyor.
- Çekilen resimdeki daire, işleme ardışık düzeni tarafından bozulmuştur.
- Düşük çözünürlüklü resim, görüntü ardışık düzeninde iki kez kırpılır. Bu işlem, yüksek ve düşük çözünürlüklü resimler arasında farklı bir görüş alanı oluşturur.
- Çekilen resimdeki daire, resmin yüksekliğini veya genişliğini azaltan aşırı en boy oranı yakalama isteği nedeniyle kırpılmıştır.
- Çekilen resimdeki dairenin ortasında yansıma var ve daire tamamen dolu görünmüyor.
test_multi_camera_alignment
Çok kameralı sistemler için kamera konumlandırmasıyla ilgili kamera kalibrasyon parametrelerini test eder. Çok kameralı fiziksel alt kameraları kullanarak fiziksel kameralardan biriyle fotoğraf çeker. Dairenin merkezini bulur. Dairenin merkezini her kamera için dünya koordinatlarına yansıtır. Kameraların dünya koordinatlarındaki daire merkezleri arasındaki farkı karşılaştırır. Dünya koordinatını tekrar piksel koordinatlarına projelendirir ve geçerlilik kontrolü olarak orijinallerle karşılaştırır. Kameraların odak uzunluklarının farklı olup olmadığını kontrol ederek daire boyutlarını karşılaştırır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
Geçti: Kamera kalibrasyon verileri ve odak uzunlukları kullanılarak çekilen resimlere kıyasla, yansıtılan resimlerdeki daire merkezleri ve boyutları beklendiği gibidir.
Başarısız olma mekanizmaları:
LENS_INTRINSIC_CALIBRATION
,LENS_POSE_TRANSLATION
veLENS_POSE_ROTATION
, gerçek kalibrasyon verileri değil, tasarım değerleridir.- Kamera sistemi, test kurulumu için uygun değildir (ör. RFoV test düzeneğiyle geniş ve ultra geniş kamera sisteminin test edilmesi). Daha fazla bilgi için Kamera ITS-in-a-box SSS 1. Bölüm başlıklı makaleyi inceleyin.
test_preview_aspect_ratio_and_crop
Hareketsiz görüntüler için test_aspect_ratio_and_crop
testine benzer şekilde, önizleme çerçevelerinin 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ğinden, kırpılan resimlerde dairenin karenin ortasında kaldığından ve dairenin boyutunun sabit bir biçimde veya farklı çözünürlüklerde değişmediğinden emin olur (FoV kontrolü).
Test edilen API'ler:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Geç: Resimler uzatılmaz, resimlerin ortasındaki fark %3'ten fazla olmaz ve mümkün olan maksimum görüş alanı korunur.
test_preview_stabilization_fov
Görüş alanının uygun şekilde kırpılmasını sağlamak için desteklenen önizleme boyutlarını kontrol eder. Testte, biri önizleme sabitleme ON
, diğeri önizleme sabitleme OFF
olan iki video çekilir. Her videodan temsili bir kare seçilir ve iki videodaki görüş alanı değişikliklerinin spesifikasyonlara uygun olduğunu doğrulamak için analiz edilir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Geç: Dairenin en boy oranı yaklaşık olarak sabit kalır, dairenin merkez konumu sabit kalır ve dairenin boyutu en fazla %20 değişir.
test_video_aspect_ratio_and_crop
Tüm video formatlarında kare içinde daire videoları çeker. Ana kareleri ayıklayıp dairenin en boy oranının değişmediğinden, kırpılan resimlerin daireyi ortada tuttuğundan ve dairenin boyutunun sabit bir biçimde veya farklı çözünürlükte değişmediğinden emin olur (FoV kontrolü).
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
Geç: Video kareleri uzatılmamış, karelerin merkezi %3'ten fazla farklı değil ve mümkün olan maksimum görüş alanı korunuyor.
sahne5
scene5
için tekdüze aydınlatılmış gri bir sahne gerekir. Bu işlem, kamera merceğinin üzerine yerleştirilen bir difüzör tarafından 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 2.000 lükslük bir ışık kaynağına doğru tutun. scene5
için çekilen resimlerde, belirgin bir özelliğin olmadığı dağınık ışık kullanılmalıdır. Aşağıda örnek bir resim verilmiştir:
Şekil 117. scene5 yakalama örneği.
test_lens_shading_and_color_uniformity
Lens gölgelendirme düzeltmesinin uygun şekilde uygulanıp uygulanmadığını ve tek renkli tekdüze bir sahnenin renginin eşit şekilde dağıtılıp dağıtılmadığını test eder. Bu testi, otomatik 3A ile bir YUV çerçevesinde 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 merkez y değeriyle karşılaştırarak geçer veya geçersiz sonucunu belirler. Renk tekdüzeliği testi, kırmızı-yeşil ve mavi-yeşil alanda değerlendirilir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Geçti: Testin geçebilmesi 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.
scene6
scene6
, benzersiz bir şekilde tanımlanabilen ArUco işaretlerinden oluşan bir ızgaradır.
scene6
içindeki testler hizalamaya duyarlı olabilir. Bu nedenle, 15 sürümünden itibaren DUT ve grafik hizalamasının kontrol edilmesini sağlamak için araçlar dizininde check_alignment.py
'ı kullanabilirsiniz.
Şekil 118. scene6 örneği.
test_in_sensor_zoom
Kırpılmış ham görüntüler oluşturan 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 ham resmi ve kırpılmış ham resim. Test, resimleri RGB dizilerine dönüştürür, tam boyutlu kırpılmış ham resmi SCALER_RAW_CROP_REGION
tarafından bildirilen boyuta küçültür ve iki resim arasındaki 3D RMS farkını hesaplar.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
Geçti: Ölçek küçültülmüş kırpılmış ham görüntü ile tam FoV ham görüntüsü arasındaki 3D RMS farkı, testte belirlenen eşik değerinden 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çisinin konumunun her yakalamada tahmin edilebilir şekilde değişip değişmediğini de kontrol eder. Merkez işaretçisinin ortasından görüntü merkezine olan mesafe, fiziksel bir kamera geçişine kadar yakınlaştırma oranına göre sabit bir hızda değişebilir veya fiziksel bir kamera geçişinden sonra aynı işaretçinin konumuna doğru monoton bir şekilde değişebilir. Jetpack Kamera Uygulaması (JCA), testten önce cihaza yüklenmiş olmalıdır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Geçti: Kameranın yakınlaştırma işlemini doğru şekilde gerçekleştirdiğini doğrulamak için yakalanan ArUco işaretçisinin göreceli boyutu istenen yakınlaştırma oranına göre doğrudur ve işaretçi ile görüntü merkezi arasındaki mesafe, test açıklamasında belirtilen ölçütlere göre değişir.
Şekil 119. Merkeze en yakın ArUco işaretçisinin dış çizgisini 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ış resimlerindeki 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 yakalama oturumu kullanılır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
Geç: Yakalanan işaretçinin göreli boyutu, yakınlaştırma oranı sonucu meta verilerine göre doğrudur.
test_preview_video_zoom_match
Video önizlemesi ve video çıkışının, kayıt ve yakınlaştırma sırasında aynı çıkışı görüntüleyip kaydettiğini test eder. Farklı yakınlaştırma oranlarında merkeze en yakın işaretçi boyutunu hesaplar ve yakınlaştırma oranı arttıkça işaretçi boyutunun artıp artmadığını kontrol eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Geç: Kaydedilen işaretçi, video ve önizlemede istenen yakınlaştırma oranına göre doğru boyuta sahiptir.
Şekil 120. HD_1280x720_anahtar_kare.png (yakınlaştırmadan önce).
Şekil 121. preview_1280x720_key_frame.png (yakınlaştırmadan önce).
Şekil 122. HD_1280x720_anahtar_kare.png (yakınlaştırmadan sonra).
Şekil 123. preview_1280x720_key_frame.png (yakınlaştırmadan sonra).
test_preview_zoom
Her önizleme çerçevesinin yakınlaştırma oranının, ultra geniş lensten geniş lense kadar ilgili çekim 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. Ardından test, merkez işaretçisinin konumunun her yakalamada tahmin edilebilir şekilde değişip değişmediğini kontrol eder. Merkez işaretçisinin ortasından görüntü merkezine olan mesafe, fiziksel bir kamera geçişine kadar yakınlaştırma oranına göre sabit bir hızda değişebilir veya fiziksel bir kamera geçişinden sonra aynı işaretçinin konumuna doğru monoton bir şekilde değişebilir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Geç: Seçilen ArUco işaretçisinin göreli boyutu, tüm önizleme kareleri için ilgili yakalama sonucunun bildirilen yakınlaştırma oranıyla doğrudur. Seçilen işaretçinin resmin ortasına olan göreli mesafesi, tüm önizleme çerçevelerinin ilgili yakalama sonucunun bildirilen yakınlaştırma oranı için doğrudur.
Ş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 tüm desteklenen 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
döndürürse test, CameraDeviceSetup#getSessionCharacteristics
içinde döndürülen yakınlaştırma oranı aralığına ulaşılıp ulaşılamayacağını doğrular.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
Geç: CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
bölümünde listelenen her desteklenen SessionConfiguration
için hem minimum hem de maksimum yakınlaştırma oranına ulaşılabilir.
scene7
scene7
, her biri farklı bir renkle doldurulmuş dört eşit çeyreğe bölünmüş dikdörtgen bir çerçevedir. Dikdörtgenin ortasında, keskinlik kontrollerini sağlayan eğimli bir kenar grafiği bulunur. Değişen yakınlaştırma oranlarında ana dikdörtgen çerçevenin doğru koordinatlarını elde etmeye yardımcı olmak için dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır.
Ş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ılmasının benzer RGB değerleriyle sonuçlandığını doğrular.
Test, dinamik önizleme kaydı yapmak ve fiziksel kameranın değiştiği noktayı belirlemek için önceden tanımlanmış aralıktaki farklı yakınlaştırma oranlarını kullanır. Bu nokta, ultra geniş lensten geniş lense geçiş noktasını gösterir.
Geçiş noktasında ve öncesinde çekilen kareler otomatik pozlama (AE), otomatik beyaz denge (AWB) ve otomatik odaklama (AF) açısından analiz edilir.
AE kontrolü, hem ultra geniş lens hem de geniş lens görüntüleri için parlaklık değişikliğinin beklenen aralık içinde olduğunu doğrular. AWB kontrolü, hem ultra geniş lens hem de geniş lens resimlerinde kırmızı-yeşil ve mavi-yeşil oranlarının eşik değerleri dahilinde olup olmadığını doğrular. AF kontrolü, keskinlik tahmini değerini ultra geniş ve geniş lens görüntüleri arasındaki ortalama gradyan büyüklüğüne göre değerlendirir.
Bu testi gerçekleştirirken moire etkisi sonuçları etkileiyorsa Kamera ITS onaylı tabletler listesinden daha yüksek çözünürlüklü bir tablet kullanın.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: Testin geçebilmesi için AE ve AWB kontrollerinin geçmesi gerekir. AF kontrol sonuçları yalnızca günlük kaydı amacıyla kullanılır. Her kontrol için ölçütler aşağıda verilmiştir:
- AE kontrolü: Cihaz hem
ae_regions
hem deawb_regions
'ı destekliyorsa ultra geniş ve geniş lens resimleri arasındaki parlaklık değişimi (Y değeri), tüm renk yamaları için% 4'ten az olmalıdır. Yalnızcaae_regions
destekleniyorsa yalnızca gri renk yaması değerleri ölçütleri karşılamalıdır. - AWB kontrolü: Cihaz hem
ae_regions
hem deawb_regions
'u destekliyorsa UW ve W lens resimlerinin kırmızı-yeşil ve mavi-yeşil değerleri arasındaki fark, gri renk yaması için% 3'ten az, diğer renk yamaları için ise% 10'dan az olmalıdır. - AF kontrolü: Geniş lensle çekilen görüntünün keskinliği, ultra geniş lensle çekilen görüntünün keskinliğinden daha yüksek olmalıdır.
Şekil 126. Ultra geniş lensle çekilmiş gri yama.
Şekil 127. W lens ile çekilmiş gri yama.
scene8
scene8
, dört eşit bölgeye bölünmüş dikdörtgen bir çerçevedir. Her bölge, farklı bir pozlamayla çekilmiş veya farklı bir renk gölgesiyle (mavi gölge, artırılmış pozlama, azaltılmış pozlama, sarı gölge) yerleştirilmiş bir portre içerir.
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.
Şekil 128. scene8 örneği.
test_ae_awb_regions
Farklı AE ve AWB bölgelerinde kayıt önizlenirken RGB ve parlaklık değerlerinin farklı olup olmadığını test eder.
Test, her kadranda 2 saniye boyunca AE ve AWB ölçümü gerçekleştirerek 8 saniyelik bir önizleme kaydı yapar. Ardından test, her bölgenin önizleme kaydından bir kare çıkarır ve aşağıdaki AE ve AWB kontrollerini gerçekleştirmek için çıkarılan kareleri kullanır:
- AE kontrolü: Bölgeyi azalan pozlamayla ölçen karenin, bölgeyi artan pozlamayla ölçen kareye kıyasla% 1'den fazla bir artışla daha yüksek bir luma değerine sahip olduğunu doğrular. Bu, karanlık bir bölgenin ölçümü yapılırken görüntülerin aydınlatıldığını doğrular.
- Otomatik beyaz dengesi kontrolü: Mavi ölçüm bölgesi olan karedeki kırmızı/mavi oranının (resmin ortalama RGB değerlerinin) sarı ölçüm bölgesi olan kareden %2'den fazla yüksek olduğunu doğrular. Bu, sarı (sıcak) veya mavi (soğuk) bir bölgeyi ölçerken görüntülerin dengeli bir RGB değerine sahip olduğunu doğrular.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AE
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
Geçti: Hem AE hem de AWB kontrolleri geçti.
Şekil 129. Artırılmış pozlamayla koyu bölgeyi ölçen çerçeve.
Şekil 130. Pozlamayı azaltarak kareyi daha açık bir bölgeye göre ölçme.
Başarısız olma mekanizmaları:
Bu test için dört ArUco işaretçisinin de doğru şekilde algılanması önemlidir. İlk algılama başarısız olursa sistem, resmin siyah beyaz sürümünü kullanarak ikinci bir algılama geçişi dener. Aşağıdaki gri tonlamalı resim, ikincil işleme adımını temsil etmektedir:
Şekil 131. ArUco işaretçilerinin hizalanmaması.
test_color_correction_mode_cct
Farklı renk sıcaklıkları ve tonlarında COLOR_CORRECTION_MODE
testleri yaparak, RGB oranlarındaki değişiklikleri scene8 çekim sahnesiyle karşılaştırmalı olarak doğrular.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE
android.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
Geç: RGB oranları, seçilen renk sıcaklıklarına ve tonlarına göre beklenen artışları veya azalmaları gösterir.
Atlama ölçütlerini test etme
Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_color_correction_mode_cct
testi atlanır:
- Cihazın ilk API düzeyi (
first_api_level
) 35 veya daha düşüktür. - Cihaz,
COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
'teCOLOR_CORRECTION_MODE_CCT
'un reklamını yapmıyor.
sahne9
scene9
, JPEG sıkıştırma algoritmalarını zorlamak için çok düşük tekrarlanabilirliğe sahip bir sahne oluşturmak üzere rastgele boyut ve renkte binlerce daireden oluşur.
Şekil 132. scene9 örneği.
test_jpeg_high_entropy
Kamera JPEG sıkıştırmasının, yüksek entropi ve JPEG kalite faktörü %100 olarak ayarlanmış scene9
üzerinde çalıştığını test eder. Tablette görüntülenen sahnenin kamera FOV'sini doldurduğunu doğrulamak için yakınlaştırma faktörü artırılır.
Test edilen API'ler:
Geçti: JPEG dosyası düzgün şekilde sıkıştırılır, yazılır ve diskten tekrar okunur.
test_jpeg_quality
Kameranın JPEG sıkıştırma kalitesini test eder. JPEG kalitesini android.jpeg.quality
üzerinden adım adım uygular ve kesme noktaları tablolarının doğru şekilde değiştiğini doğrular.
Test edilen API'ler:
Geç: Kalite arttıkça kesme matrisi azalır. (Matris, bölme faktörünü temsil eder.)
Şekil 133. JPEG kalitesine kıyasla Pixel 4 arka kamerası luma ve renk DQT matrisi ortalamaları.
Şekil 134. Başarısız test örneği.
scene_video
scene_video
, beyaz bir arka planda farklı kare hızlarında ileri geri hareket eden dört farklı renkli daireden oluşan bir video sahnesidir.
Şekil 135. scene_video örneği.
test_preview_frame_drop
İstenen önizleme kare hızının dinamik bir sahnede korunup korunmadığını test eder. Bu test, üçüncü taraf uygulamalarına maruz kalan tüm kameralarda çalışır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: Önizleme kare hızı, istenen kare hızı aralığının maksimum değerindedir ve art arda gelen kareler arasındaki ortalama varyasyon, testte belirlenen göreceli tolerans değerinden azdır.
scene_extensions
scene_extensions
testleri, kamera uzantıları içindir ve test ortamının hassas bir şekilde kontrol edilmesini gerektirdiğinden Kamera ITS-in-a-Box kullanılmalıdır. Ayrıca, tüm ışık sızıntıları kontrol edilmelidir. Bu işlem için test düzeneğini, DUT'yu ve tableti bir örtüyle örtmeniz ve DUT'un ön ekranından ışık sızıntısını önlemeniz gerekebilir.
scene_hdr
scene_hdr
sahnesi, solda bir portre ve sağda düşük kontrastlı bir QR kodundan oluşur.
Şekil 136. scene_hdr örneği.
test_hdr_extension
HDR uzantısını test eder. Uzantı etkinken ve devre dışıyken çekim yapar ve uzantının QR kodunu daha kolay algılanabilir hale getirip getirmediğini kontrol eder.
Test edilen API'ler:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
Geç: HDR uzantısı, QR kodunu algılamak için gereken kontrast değişikliklerinin sayısını azaltır veya QR kodundaki degradeyi 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 kare ızgara kırmızı bir dış çizgiyle sınırlandırılmıştır. Kareler, Hilbert eğrisi yönü olarak düzenlenir.
Şekil 137. scene_low_light örneği.
test_night_extension
Night uzantısını test eder. Uzantı etkinken ekran görüntüsü alır ve aşağıdakileri gerçekleştirir:
- 20 karenin varlığını algılar
- Her kareyle sınırlı olan luma değerini hesaplar
- Hilbert eğrisi ızgara yönelimine göre ilk 6 karenin ortalama luma değerini hesaplar
- 5. ve 6. karelere (kare6 - kare5) kadar art arda gelen karelerin luma değeri arasındaki farkı (örneğin, kare2 - kare1) hesaplar ve hesaplanan beş farkın ortalamasını bulur.
Android 16 veya sonraki sürümleri çalıştıran cihazlarda, yakalama isteği, kare ızgamasını çevreleyen dikdörtgene karşılık gelen bir ölçülü bölge içerir. Bu ekleme, eşik geçiş ölçütlerini değiştirir.
Test edilen API'ler:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
Geçiş:
- 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 art arda gelen karelerin luma değeri arasındaki ortalama fark 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 art arda karelerin luma değeri arasındaki ortalama fark 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.
Şekil 138. Düşük ışıklı gece sahnesinin testi geçme örneği.
test_low_light_boost_extension
Düşük Işık Güçlendirme AE modunu test eder. Camera2, düşük ışık güçlendirme AE modunu destekliyorsa bu test Camera2 için gerçekleştirilir. Gece modu kamera uzantısı destekleniyorsa ve uzantı düşük ışık güçlendirme AE modunu destekliyorsa bu test gece modu kamera uzantısı için de gerçekleştirilir. Bu test, AE modunu düşük ışık güçlendirme olarak ayarlar, önizlemeden bir kare alır ve aşağıdakileri gerçekleştirir:
- 20 kutunun varlığını algılar
- Her kutunun sınırladığı parlaklık değerini hesaplar
- Hilbert eğrisi ızgara yönelimine göre ilk 6 karenin ortalama luma değerini hesaplar
- 5. ve 6. karelere (kare6 - kare5) kadar art arda gelen karelerin luma değeri arasındaki farkı (örneğin, kare2 - kare1) hesaplar ve hesaplanan beş farkın ortalamasını bulur.
Android 16 veya sonraki sürümleri çalıştıran cihazlarda, yakalama isteği, kare ızgamasını çevreleyen dikdörtgene karşılık gelen bir ölçülü bölge içerir. Bu ekleme, eşik geçiş ölçütlerini değiştirir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics.CONTROL_AE_AVAILABLE_MODES
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
Geçiş:
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 art arda gelen karelerin luma değeri arasındaki ortalama fark 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 olan art arda karelerin luma değeri arasındaki ortalama fark en az 18 olmalıdır.
scene_tele
scene_tele
testleri için önemli bir şart, grafik mesafesinin en az telefoto lensin minimum odak mesafesi olmasıdır. Bu minimum odak mesafesi cihazlar arasında farklılık gösterebileceğinden, kurulumunuzu belirli bir telefoto kameraya uyacak şekilde yapılandırmanız gerekir.
Şekil 139. Geniş ve tele kameranın odak mesafesine göre scene_tele kurulumu.
Test donanımının kurulumu hakkında daha fazla bilgi için Telefon uzatma aparatı kurulumu başlıklı makaleyi inceleyin.
scene6_tele
scene6_tele
sahnesi, beyaz arka plan üzerinde bir ArUco işaretçi ızgarasıdır.
Modüler aparat'ta scene6_tele
çekimleri fazla pozlanmış görünüyorsa modüler aparatın ön plakasını çıkarın.
WFoV test aparatının uzantıdan bağlantısını kesin ve telefon montajını çıkarın.
Şekil 140. WFoV test aparatının uzantıdan bağlantısını kesin ve telefon montajını çıkarın.
Şekil 141. Ön plakayı çıkarın.
test_zoom_tele
Geniş lensten telefoto lense kadar kamera yakınlaştırma davranışını test eder. 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:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Geçti: Kameranın doğru şekilde yakınlaştırdığını doğrulamak için yakalanan ArUco işaretçisinin göreli boyutu istenen yakınlaştırma oranına göre doğrudur ve işaretçi ile resim merkezi arasındaki mesafe test_zoom
bölümünde listelenen ölçütlere göre değişir.
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 olan önizleme kareleri için kamera yakınlaştırma davranışını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Geçti: Kameranın yakınlaştırma işlemini doğru şekilde gerçekleştirdiğini doğrulamak için yakalanan ArUco işaretçisinin göreceli boyutu istenen yakınlaştırma oranına göre doğrudur ve işaretçi ile resim merkezi arasındaki mesafe test_preview_zoom parametresinde listelenen ölçütlere göre değişir.
scene7_tele
scene7_tele
, scene7
ile aynıdır ancak telefoto lens testi için ayarlanmıştır. Dört eşit bölüme ayrılmış ve her biri farklı bir renkle doldurulmuş dikdörtgen bir çerçevedir. Dikdörtgenin ortasında, keskinlik kontrollerini sağlayan eğimli bir kenar grafiği bulunur. Değişen yakınlaştırma oranlarında ana dikdörtgen çerçevenin doğru koordinatlarını elde etmeye yardımcı olmak için dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır.
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ılmasının benzer RGB değerleriyle sonuçlandığını doğrular.
Test, dinamik önizleme kaydı yapmak ve fiziksel kameranın değiştiği noktayı belirlemek için önceden tanımlanmış aralıktaki farklı yakınlaştırma oranlarını kullanır. Bu nokta, W lensten tele lense geçiş noktasını gösterir.
Geçiş noktasında ve öncesinde çekilen kareler AE, AWB ve AF için analiz edilir.
AE kontrolü, hem geniş hem de tele lens görüntülerinde parlaklık değişikliğinin beklenen aralık içinde olduğunu doğrular. Otomatik beyaz dengesi kontrolü, hem geniş hem de tele lens resimlerinde kırmızı-yeşil ve mavi-yeşil oranlarının eşik değerleri dahilinde olup olmadığını doğrular. AF kontrolü, keskinlik tahmini değerini W ve tele lens görüntüleri arasındaki ortalama gradyan büyüklüğüne göre değerlendirir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: Testin başarılı olması için AE, AWB ve AF kontrollerinin hepsinin başarılı olması gerekir. Her kontrol için geçerli olan kriterler şunlardır:
- AE kontrolü: Geniş ve tele lens resimleri arasındaki parlaklık değişimi %4'ten az olmalıdır.
- Otomatik beyaz dengesi 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, geniş lensten daha yüksek olmalıdır.
scene_flash
scene_flash
testleri için sensör füzyon kutusunda karanlık bir sahne gerekir.
test_auto_flash
Arka ve ön kameralarda 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ş etkinken karo resminin ortasının daha parlak olup olmadığını kontrol ederek otomatik flaşın tetiklendiğini doğrular. Otomatik flaş özelliğini 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 sahnenin tamamen karanlık olması gerekir. Jetpack Kamera Uygulaması (JCA), testten önce cihaza yüklenmiş olmalıdır. Arka kameralarda otomatik flaş, AE durumunun tetiklenmesine bağlıdır ancak ön kameralarda otomatik flaş, AE'ye bağlı değildir ve her zaman tetiklenir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#FLASH_MODE
Geç: Otomatik flaş etkinken karo görüntüsünün ortası, 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üç seviyeleriyle değiştiğini doğrular. Flaşın gücünü kontrol etme özelliğinin farklı AE_MODES
ile çalıştığını doğrular.
Örneğin, otomatik pozlama modu ON
veya OFF
ise flaş gücü seviyesi parlaklık üzerinde etkili olur. Mod ON_AUTO_FLASH
ise flaş gücü seviyesi parlaklık üzerinde etkili olmaz.
Testi yapmak için test düzeneğindeki ışıklar kapatılmalıdır. Işıklar, Arduino kontrol cihazıyla otomatik olarak kapatılabilir. Testin düzgün çalışması için sahnenin tamamen karanlık olması gerekir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
Geçiş:
Otomatik pozlama modu ON
veya OFF
olduğunda, flaş gücü seviyesi flaşsızdan FLASH_SINGLE_STRENGTH_MAX_LEVEL
'a yükseldikçe resim yamalarının parlaklığı artar.
Otomatik pozlama modu ON_AUTO_FLASH
olduğunda, flaş gücü seviyesi flaş yok değerinden FLASH_SINGLE_STRENGTH_MAX_LEVEL
değerine yükseldikçe resim yamalarını parlaklık farkı tolerans dahilindedir.
test_led_snapshot
LED anlık görüntülerinin görüntüde doygunluk veya renk tonu oluşturmadığı test edilir.
Bu test, ışıkları kontrol etmek için Sensor Fusion Box'a bir aydınlatma kontrol cihazı ekler. Işıklar OFF
olarak ayarlandığında test, AUTO_FLASH
modu ON
olarak ayarlanmışken bir çekim yapar. Bu yakalama sırasında test, aePrecapture
tetikleyicisi START
olarak ayarlanmış bir ön yakalama sırası çalıştırır ve yakalama amacını Preview
olarak ayarlayarak yakalamayı flaşlı olarak gerçekleştirir.
Yakalama, flaşın neden olduğu belirgin bir sıcak noktaya sahip olduğundan test, yakalamanın tamamının 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 makul bir şekilde beyaz dengeli 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:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#FLASH_MODE
Geç: 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ığındadır.
test_night_mode_indicator
Kameranın düşük ışık koşullarında çalışıp çalışmadığını ve gece modu kamera uzantısı sabit görüntüsünden yararlanıp yararlanamayacağını belirten 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ındaki ışık koşullarını doğru şekilde yansıtıp yansıtmadığını kontrol eder. Test aşağıdaki adımları uygular:
- Başlatma: Test, bir
ItsSession
başlatır ve kamera özelliklerini alır. Ayrıca ışıklandırma kontrol cihazıyla bağlantı kurar. - Atlama Koşulları: Cihaz gerekli API düzeyini veya gece modu göstergesi özelliğini desteklemiyorsa test atlanır.
- 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.
- Test,
- Kamera uzantısı oturumu:
- Test,
Camera2
oturumunda olduğu gibi aynı prosedürüEXTENSION_NIGHT
uzantılı birCameraExtension
oturumunda tekrarlar.
- Test,
- Temizleme: Test,
ItsSession
'yi kapatır ve aydınlatma kontrol cihazını serbest bırakır.
Test edilen API'ler:
Geçiş:
- 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 deCameraExtension
oturumları için geçerlidir.
test_preview_min_frame_rate
Karanlık bir sahnede önizleme kare hızının doğru şekilde düşürüldüğünü test eder. Bu testin düzgün ç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:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: Önizleme kare hızı, istenen kare hızı aralığının minimumundadır ve kareler arasındaki varyasyon, testte belirlenen mutlak tolerans değerinden 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ılırken flaş gücünü kontrol etmeyi destekliyorsa el feneri gücünün, istenen farklı güç seviyeleriyle değiştiğini doğrular. Flaşın gücünü kontrol etme özelliğinin farklı AE_MODES
ile çalıştığını doğrular.
Örneğin, otomatik pozlama modu ON
veya OFF
ise flaş gücü seviyesi parlaklık üzerinde etkili olur. Mod ON_AUTO_FLASH
ise flaş gücü seviyesi parlaklık üzerinde etkili olmaz.
Video kaydı oturumunu simüle ederek, el feneri gücünün bir grup boyunca aynı kaldığını doğrular. Testi yapmak için test düzeneğindeki ışıklar kapatılmalıdır. Işıklar Arduino kontrol cihazıyla otomatik olarak kapatılabilir. Testin doğru çalışması için sahnenin tamamen karanlık olması gerekir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
Geçiş:
Otomatik pozlama modu ON
veya OFF
olduğunda, flaş gücü seviyesi flaşsızdan FLASH_TORCH_STRENGTH_MAX_LEVEL
'a 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
'a yükseldikçe görüntü patlaması yamalarının parlaklıktaki farkı tolerans dahilindedir.
sensor_fusion
Sensör füzyonu testleri, dama tahtası deseni ve ArUco işaretçilerinin önünde belirli bir telefon hareketi gerektirir. En iyi sonuçları elde etmek için test grafiğinin düz bir şekilde monte edildiğinden emin olun. Düz olmayan grafikler, birçok testin rotasyon hesaplamalarını etkiler. Grafik, 43x43 cm boyutunda basılarak sensör füzyon kutusunun arkasını doldurmalıdır. (43x43 cm). sensor_fusion
testleri, Sensor Fusion Box ile otomatikleştirilebilir.
Şekil 142. Sensör birleştirme grafiği.
Şekil 143. Sensör birleştirme kutusunun arka tarafını dolduran sensör birleştirme grafiği.
test_lens_intrinsic_calibration
Optik görüntü sabitleme (OIS) nedeniyle lens hareket ettiğinde merceğin optik merkezinin doğal olarak değişip değişmediğini test eder. Lens doğal örnekleri destekleniyorsa lens doğal örneklerinin optik merkezinin, OIS nedeniyle lens hareket ettiğinde değişip değişmediğini test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
Geç: Merceğin optik merkezi 1 piksel veya daha fazla değişir. Lens doğal örnekleri destekliyorsa lens doğal örneklerinin optik merkezleri 1 piksel veya daha fazla değişir.
Aşağıdaki şekil, her kare için ana noktaların piksel cinsinden değişimlerini gösteren örnek bir test_lens_intrinsic_calibration
grafiğidir:
Şekil 144. Her kare için ana noktaların piksel cinsinden değişimlerini 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:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
Geç: Telefon döndürüldüğünde her kameradan gelen görüntüler arasındaki açı önemli ölçüde değişmez.
test_preview_distortion
Çeşitli yakınlaştırma düzeylerinde ç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 noktalar yeşil, gerçek noktalar 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. Görüntüdeki yeşil ve kırmızı vurgular, bozulma hatası alanını görsel olarak algılamak için kullanılır.
Şekil 145. İdeal noktaların yeşil, gerçek noktaların ise kırmızı olduğu dama tahtası resmi.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: Her önizleme karesinin normalleştirilmiş bozulma hatası, testte belirlenen eşiğin altındadır.
test_preview_stabilization
Sabitlenmiş önizleme videosunun jiroskoptan daha az döndüğünü test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Geç: Kareler üzerindeki maksimum açı dönüşümü, jiroskop dönüşümünün% 70'inden azdır.
Aşağıda, sabitleme özelliğinin kullanıldığı ve kullanılmadığı örnek videolar verilmiştir:
Şekil 146. Sabitleme içeren örnek video.
Şekil 147. Sabitleme içermeyen örnek video.
test_sensor_fusion
AR ve VR uygulamaları için kamera ile jiroskop arasındaki zaman damgası farkını test eder. Telefon, dama tahtası deseninin önünde 10 kez 90 derece döndürülür. Hareket, gidiş dönüş yaklaşık 2 saniye sürer. Jiroskop eklenmemişse veya zaman damgası kaynağı REALTIME
parametresi etkin değilse 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 telefondaki jiroskop etkinliklerini gösterir. X ve y yönünde hareket, telefonun montaj plakasına güvenli bir şekilde monte edilmediğini gösterir ve testin geçme olasılığını azaltır. Nokta grafiğindeki döngü sayısı, kareleri kaydetme yazma hızına bağlıdır.Şekil 148. test_sensor_fusion jiroskop etkinlikleri örneği.
test_sensor_fusion_plot_rotations
: Jiroskopun ve kamera etkinliklerinin hizalamasını gösterir. Bu nokta grafiği, kamera ile jiroskop arasındaki hareketin +/-1 ms'ye kadar eşleştiğini göstermelidir.Şekil 149. test_sensor_fusion çizim rotasyonları örneği.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LENS_FACING
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Geçti: Kamera ve jiroskop zaman damgalarının ofseti, CDD'deki 7.3.9 Yüksek Hassasiyetli Sensörler bölümünde belirtildiği üzere 1 ms'den azdır.
Başarısız olma mekanizmaları:
- Ofset hatası: Kamera jiroskopu ofseti +/-1 ms içinde doğru şekilde kalibre edilmemiştir.
- Kare düşmesi: Ardışık olarak 200 kare yakalamak için ardışık düzen yeterince hızlı değildir.
- Soket hataları:
adb
, testi yürütecek kadar uzun süre DUT'ya güvenilir bir şekilde bağlanamıyor. - Grafik düz bir şekilde monte edilmemiştir.
test_sensor_fusion_plot_rotations
grafiğinde, kamera düz olmayan grafik bölümlerinde dönerken jiroskop ve kamera dönüşümünün önemli ölçüde değiştiği kareler vardır. - Kamera düz bir şekilde monte edilmemiştir.
test_sensor_fusion_gyro_events
Nokta grafiği, X ve Y düzlemlerindeki hareketi gösterir. Arka kamera genellikle telefonun gövdesinin geri kalanına göre daha yüksek bir çıkıntıya sahip olduğundan ve telefonun arka tarafı montaj plakasına monte edilirken eğim oluşturduğundan bu arıza ön kameralarda daha yaygındır.
test_video_stabilization
Stabilize edilmiş videonun jiroskoptan daha az döndüğünü test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Geç: Kareler üzerindeki maksimum açı dönüşümü, jiroskop dönüşümünün% 60'ından azdır.
Aşağıda, sabitleme özelliğinin kullanıldığı ve kullanılmadığı örnek videolar verilmiştir.
Şekil 150. Sabitleme içeren örnek video.
Şekil 151. Sabitleme içermeyen örnek video.
test_video_stabilization_jca
JCA kullanılarak çekilen videonun, stabilizasyon özelliği sayesinde cayroskoptan daha az döndüğünü gösteren testler. JCA, testten önce cihaza yüklenmelidir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.CamcorderProfile
android.media.MediaRecorder
Geç: JCA kullanılarak çekilen videodan ayıklanan karelerdeki maksimum açı rotasyonu, jiroskop rotasyonunun% 70'inden azdır.
feature_combination
feature_combination
testleri, birden fazla kamera özelliği aynı anda etkinleştirildiğinde özelliklerin düzgün çalıştığını doğrular. Bu testlerde, sensör birleştirme sahnesinde kullanılan damalı tahta resmi kullanılır.
test_feature_combination
Kamera cihazı tarafından desteklenen farklı yayın kombinasyonlarının, video sabitleme modunun, hedef FPS aralığının, 10 bit HDR videonun 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:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
İlet: Desteklenen her özellik kombinasyonu için:
- Önizleme sabitleme açıksa önizleme akışı sabitlenir.
- Önizleme kare hızı, yapılandırılan
AE_TARGET_FPS_RANGE
aralığına girmelidir. - Kaydedilen önizleme akışının renk alanı, ayarlanan alanla eşleşiyor.
- Ultra HDR çekimde geçerli bir kazanç haritası olmalıdır.
scene_ip
Android 16 ve sonraki sürümlerde scene_ip
sahnesi, çekilen resimler arasındaki önemli farklılıkları belirlemek için varsayılan kamera uygulaması ile Jetpack kamera uygulaması (JCA) arasında resim eşleşmesi kontrolleri sağlar. JCA, sosyal medya uygulaması yakalamalarını kopyalar ve sosyal medya uygulamalarının daha sonra işleyip hassaslaştıracağı bir referans 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 kameralı kutulu ITS'de yürütülür.
- Test ortamını kontrol etmek için Gen2 donanımının bir parçası olan ışıklandırma ve servo kontrolörleri kullanılır.
- Gen2 donanımının içine bir test özelliği grafiği yerleştirilir.
Şekil 152. Gen2chart_sample örneği.
Atlama ölçütlerini test etme
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üşüktür. - Cihaz, ön ve arka birincil kamera cihazlarına sahip bir telefon cihazı değildir (ör. 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 fotoğraflarını çeker ve aşağıdaki kontrolleri gerçekleştirir:
FoV: Varsayılan kamera uygulamasının ve JCA yakalamalarının aynı FoV'ye sahip olup olmadığını kontrol eder. Bu kontrol, yakalanan grafik resminden ayıklanan merkez QR kodu özelliğini kullanır.
Parlaklık: Varsayılan kamera uygulaması ile JCA arasında ölçülen parlaklık farkının 10'u aşmadığı kontrol edilir. Bu kontrol, parlaklık ölçümü için dinamik aralık yamasını kullanır.
Beyaz dengesi: Varsayılan kamera uygulaması ile JCA arasındaki beyaz dengesi farkının 4'ü aşmamasını kontrol eder. Bu kontrol, parlaklık ölçümü için dinamik aralık yamasını kullanır.
Temel bölüm geçti: Test, görüş alanı, parlaklık ve beyaz denge kontrollerini geçer. Android 16'da bu test zorunlu değildir (NOT_YET_MANDATED
).