Bu sayfada, Android Compatibility Test Suite (CTS) Verifier'ın bir parçası olan Kamera Görüntüsü Test Paketi (ITS) kapsamındaki testlerin kapsamlı bir listesi yer alır. ITS testleri, işlevsel testlerdir. Yani görüntü kalitesini ölçmezler ancak reklamı yapılan tüm kamera işlevlerinin beklendiği gibi çalıştığını doğrularlar. Bu belge, geliştiricilerin ve test uzmanlarının her bir testin ne işe yaradığını ve test hatalarının nasıl ayıklanacağını anlamasını sağlar.
ITS testleri, her Android sürümüyle birlikte güncellenir veya eklenir. Bu testler, ilgili Android sürümünün Kamera ITS sürüm notlarında ayrıntılı olarak açıklanır. Güncellemeler, kullanıcı veya geliştirici tarafından bildirilen hatalara göre yapılır. Eklemeler, kullanıcı veya geliştirici tarafından bildirilen hatalara ve yeni kamera çerçevesi özelliklerinin doğru davranışının doğrulanmasına göre yapılır.
Android 17 ve sonraki sürümlerde, paralel yürütmeye olanak tanımak ve test süresini kısaltmak için Kamera ITS testleri, CTS Verifier'da iki etkinliğe ayrılır: feature_combination ve sensor_fusion testleri için bir etkinlik, diğer tüm testler için başka bir etkinlik. Daha fazla bilgi için Test süresini kısaltma başlıklı makaleyi inceleyin.
Kamera ITS, testleri gerekli kamera özelliklerine, API düzeyine ve medya performans sınıfı (MPC) düzeyine göre filtreler. ITS, API düzeyi için daha düşük API düzeylerindeki işlevlerle ilgili olumsuz kullanıcı deneyimlerini test eden belirli bir API düzeyine eklenen testleri geçitlemek amacıyla ro.product.first_api_level kullanır. ITS, yeni donanım özelliği gerektiren belirli bir API düzeyinde eklenen özelliklerin testlerini geçitlemek için ro.vendor.api_level kullanır. Bir cihaz için ro.odm.build.media_performance_class tanımlanmışsa ITS, MPC seviyesine bağlı olarak belirli testlerin çalıştırılmasını gerektirir.
Testler, sahneye göre aşağıdaki bölümlerde gruplandırılır:
scene0: Meta verileri, titreşimi, jiroskopu ve sarsıntıyı yakalamascene1: Pozlama, hassasiyet, pozlama değeri (EV) telafisi, YUV ile JPEG ve RAW karşılaştırmasıscene2: Yüz algılama, renkli sahneler gerektiren testlerscene3: Kenar geliştirme, lens hareketiscene4: En-boy oranı, kırpma, görüş alanıscene6: Zoomscene7: Çoklu kamera anahtarıscene8: Otomatik pozlama (AE) ve otomatik beyaz dengesi (AWB) bölge ölçümüscene9: JPEG sıkıştırmascene_extensions: Kamera uzantılarıscene_tele: Telefoto lens geçişiscene_video: Kare düşüşleri
Gen2 donanımı / sensor_fusion tabanlı test sahneleri
feature_combination: Özellik kombinasyonlarıscene_flash: Otomatik flaş, minimum kare hızıscene_gen2_chart: Gen2 kağıt grafik kullanılarak yapılan testlerscene_ip: Varsayılan kamera uygulaması ile Jetpack Kamera Uygulaması (JCA) arasında görüntü eşitliğisensor_fusion: Kamera ve jiroskop zamanlama farkı
scene5: Lens gölgeleme
Geniş gamutlu tablet tabanlı test sahnesi
scene_wide_gamut: Geniş gam renk profili ve aralığı
Her sahnenin açıklaması için ilgili bölümlere bakın.
Tablete dayalı test sahneleri
scene0
Testler için belirli bir sahne bilgisi gerekmez. Ancak jiroskop ve titreşim testi için telefonun sabit olması gerekir.
test_jitter
Kamera zaman damgalarındaki seğirmeyi ölçer.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
Başarılı: Kareler arasında en az 30 ms fark vardır.
Aşağıdaki şekilde, küçük y ekseni aralığına dikkat edin. Bu grafikte seğirme aslında küçük.
Şekil 1. test_jitter grafiği.
test_metadata
Yakalama sonuçlarına ve kamera özellikleri nesnelerine bakarak meta veri girişlerinin geçerliliğini test eder. Bu testte, görüntü içeriği önemli olmadığı için auto_capture_request pozlama ve kazanç değerleri kullanılır. Bu, kısa sürede çalıştırılan, minimum kurulum gerektiren ve sonraki aşamalarda önemli sayıda testin başarısız olacağını gösteren bir hızlı başarısızlık testidir.
test_metadata başarılı olana kadar test paketinin tamamı çalıştırılmamalıdır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVELandroid.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPEandroid.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERNandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Başarılı: Donanım seviyesi, rollingShutterSkew, frameDuration etiketleri,
timestampSource, croppingType, blackLevelPattern, pixel_pitch,
görüş alanı (FoV) ve hiperfokal mesafe mevcut ve geçerli değerlere sahip.
test_request_capture_match
Yakalama meta verilerini okuyarak cihazın doğru pozlama ve kazanç değerlerini yazıp yazmadığını test eder. Bu, minimum kurulum gerektiren ve çok sayıda testin başarısız olduğunu gösteren bir hızlı BAŞARISIZ testidir.
test_request_capture_match başarılı olana kadar tüm test paketi çalıştırılmamalıdır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
Başarılı: İstek ve yakalama meta veri değerleri tüm çekimlerde eşleşiyor.
test_sensor_events
Bu test, sensör füzyonu desteği bildiren cihazların sensör etkinliklerini sorgulayıp yazdırmadığını kontrol eder. Beklenen sensörler ivme ölçer, jiroskop ve manyetometredir. Bu test yalnızca ekran açıksa yani cihaz bekleme modunda değilse çalışır. Bu, kısa bir süre çalışan, minimum kurulum gerektiren ve sensör füzyon testinin başarısız olduğunu bildiren bir hızlı başarısızlık testidir. test_sensor_events, PASS veya SKIP değilse sensor_fusion sahne testleri çalıştırılmamalıdır.
Test edilen API'ler:
Başarılı: Her sensör için etkinlikler alınır.
test_solid_color_test_pattern
Kamera sesini kapatma için düz renk test desenlerinin düzgün şekilde oluşturulup oluşturulmadığını test eder. Kamera sesini kapatma destekleniyorsa düz renkli test desenleri de desteklenmelidir. Kamera sesini kapatma özelliği desteklenmiyorsa düz renk test desenleri yalnızca özellik tanıtılıyorsa test edilir.
Ham görüntüler destekleniyorsa renk ataması da test edilir. Test edilen renkler siyah, beyaz, kırmızı, mavi ve yeşildir. RAW görüntüleri desteklemeyen kameralar için yalnızca siyah test edilir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATAandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Başarılı: Desteklenen düz renk test desenleri doğru renkte ve görüntüde düşük varyans var.
test_test_pattern
Geçerli her test deseni için kareleri yakalamak üzere android.sensor.testPatternMode parametresini test eder ve karelerin düz renkler ile renk çubukları için doğru şekilde oluşturulup oluşturulmadığını kontrol eder. Bu test aşağıdaki adımları içerir:
- Desteklenen tüm test desenleri için görüntü yakalar.
- Düz renk test deseni ve renk çubukları için doğruluk kontrolü yapar.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_AVAILABLE_TEST_PATTERN_MODESandroid.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Başarılı: Desteklenen test desenleri doğru şekilde oluşturuluyor.
Şekil 2. test_test_patterns örneği.
test_tonemap_curve
Doğrusal ton eşlemeli ham test deseninin YUV'ye dönüşümünü test eder. Bu test, ton eşleme dönüşümü için mükemmel bir görüntü deseni oluşturmak amacıyla android.sensor.testPatternMode = 2 (COLOR_BARS) gerektirir. Doğrusal ton eşleme ve ideal görüntü girişiyle ardışık düzenin doğru renk çıkışlarına sahip olduğunu doğrular (test_test_patterns kullanır).
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
Başarılı: YUV ve RAW birbirine benzer görünür.
Ş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. Bu, kısa sürede çalışan, minimum kurulum gerektiren ve sensör füzyon testinin başarısız olduğunu bildiren hızlı bir başarısızlık testidir. sensor_fusion sahne testleri, test_unified_timestamp GEÇTİ veya ATLANDI olarak işaretlenmediği sürece çalıştırılmamalıdır.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.hardware.Sensor#TYPE_GYROSCOPE
Başarılı: Hareket zaman damgaları, iki resim zaman damgası arasında.
test_vibration_restriction
Cihazın titreşiminin beklendiği gibi çalışıp çalışmadığını test eder.
Test edilen API'ler:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_ACCELEROMETERandroid.os.Vibratorandroid.hardware.camera2.CameraDevice#setCameraAudioRestriction
Başarılı: Cihaz, kamera ses kısıtlama API'si tarafından sessize alındığında titreşmez.
scene1_1
scene1 gri bir grafiktir. Gri grafik, kamera görüş alanının ortadaki% 30'luk kısmını kaplamalıdır. Gri grafik, merkez bölgede özellik bulunmadığından 3A'yı (AE, AWB ve AF) orta düzeyde zorlar.
Ancak yakalama isteği, 3A'nın birleşmesi için yeterli özellik içeren sahnenin tamamını belirtir.
RFoV kameralar, WFoV veya RFoV test düzeneğinde test edilebilir. Dar görüş alanına sahip bir kamera, geniş görüş alanına sahip test düzeneğinde test edilirse grafik, 3A'nın yakınsamasına yardımcı olmak için görüş alanındaki gri grafik için bazı sınırlar belirlemek üzere 2/3 oranında ölçeklendirilir. Kamera test donanımlarının daha ayrıntılı açıklamaları için Kamera ITS-in-a-box başlıklı makaleyi inceleyin.
Şekil 5. Tam boyutlu sahne1 grafiği (solda), 2/3 ölçekli grafik (sağda).
test_ae_precapture_trigger
Ön yakalama tetikleyicisi kullanılırken AE durum makinesini test eder. AE devre dışıyken beş manuel istek yakalar. Son istekte, AE devre dışı bırakıldığı için yoksayılması gereken bir AE ön yakalama tetikleyicisi var.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATE
Başarılı: AE yakınsar.
test_auto_vs_manual
Otomatik ve manuel çekimlerin yapıldığı testler aynı görünür.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
Başarılı: Her yakalama sonucunda bildirilen manuel beyaz dengesi kazançları ve dönüşümü, kameranın 3A algoritmasından alınan otomatik beyaz dengesi estimate ile eşleşiyor.
Şekil 6. test_auto_vs_manual otomatik örneği.
Şekil 7. test_auto_vs_manual beyaz dengesi örneği.
Şekil 8. test_auto_vs_manual manuel beyaz dengesi dönüşümü örneği.
test_black_white
Cihazın tamamen siyah beyaz görüntüler üretip üretmediğini test eder. İki çekim yapar. İlkinde son derece düşük kazanç ve kısa pozlama kullanır. Bu çekim, siyah bir fotoğrafla sonuçlanır. İkincisinde ise son derece yüksek kazanç ve uzun pozlama kullanır. Bu çekim, beyaz bir fotoğrafla sonuçlanır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Geçiş: Siyah beyaz resimler üretir. Beyaz resimlerin doygun kanalları, %1'den az farkla hata payı olan [255, 255, 255] RGB değerlerine sahiptir.
Şekil 9. test_black_white, siyah örnek.
Şekil 10. test_black_white, beyaz örnek.
Şekil 11. test_black_white, grafik ortalama örneği.
test_burst_capture
Tüm yakalama ardışık düzeninin, tam boyutlu yakalama ve CPU süresi hızına ayak uydurabildiğini doğrular.
Test edilen API'ler:
Başarılı: Tam boyutlu bir dizi görüntü yakalar, kare düşüşlerini ve görüntü parlaklığını kontrol eder.
test_burst_sameness_manual
Manuel yakalama ayarıyla 50 resimden oluşan 5 seri çekim yapar ve hepsinin aynı olduğunu kontrol eder. Farklı şekilde işlenen veya kusurlu olan düzensiz kareler olup olmadığını belirlemek için bu testi kullanın.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSORandroid.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
Başarılı: Resimler görsel olarak ve RGB değerleri açısından aynıdır.
Başarısız: Her seri çekimin başında RGB ortalama grafiğinde ani bir artış veya düşüş gösterir.
first_API_level< 30 için tolerans% 3'tür.first_API_level>= 30 için tolerans% 2'dir.
Ş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ılabilir olmadığını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CaptureResult#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Başarılı: YUV resimler ortadan 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 görüntü alır ve beş farklı bölgenin (köşeler ve merkez) yamalarını oluşturur. Beş bölge için kırpma ayarı yapılmış resimler çeker. Yama ve kırpılan resim değerlerini karşılaştırır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Başarılı: Kırpılan bölgenin resmi, kırpılan resme karşılık gelen yamayla eşleşiyor.
test_ev_compensation
Pozlama değeri (EV) telafisinin uygulanıp uygulanmadığını test eder. Test, temel ve ileri düzey olmak üzere iki bölümden oluşur.
Temel bölümde, EV telafisinin CONTROL_AE_COMPENSATION_STEP ile oluşturulan bir aralık kullanılarak uygulanıp uygulanmadığı test edilir. Her telafi değerinde sekiz kare yakalanır.
Gelişmiş bölümü, pozlamayı sekiz adımda artırır ve ölçülen parlaklığı beklenen parlaklıkla karşılaştırır. Beklenen değerler, EV telafisi uygulanmamış görüntünün parlaklığından hesaplanır. Hesaplanan değerler gerçek görüntü değeri aralığını aşarsa beklenen değer doygunluğa ulaşır. Beklenen değerler ile ölçülen değerler eşleşmezse veya görüntüler beş adım içinde aşırı pozlanırsa test başarısız olur.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_COMPENSATION_STEPandroid.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATIONandroid.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCKandroid.hardware.camera2.CaptureResult#TONEMAP_CURVEandroid.hardware.camera2.CaptureResult#TONEMAP_MODE
Temel bölüm geçişi: Resimler, beş adımda aşırı pozlama olmadan artan pozlamayı gösterir.
Şekil 18. test_ev_compensation_basic.
Gelişmiş bölüm geçişi: EV telafi ayarı arttıkça luma değerindeki artışı yakalar. Her EV telafisi ayarı için yakalanan sekiz karede sabit luma değerleri vardır.
Şekil 19. test_ev_compensation_advanced_plot_means.
test_exposure_x_iso
ISO ve pozlama süresi değiştiğinde sabit bir pozlama elde edilip edilmediğini test eder. Birbirini dengeleyecek şekilde seçilmiş ISO ve pozlama süresine sahip bir dizi fotoğraf çeker.
Sonuçlar aynı parlaklığa sahip olmalıdır ancak dizi boyunca görüntü daha gürültülü hale gelmelidir. Örnek piksel ortalama değerlerinin birbirine yakın olduğunu doğrular. Görüntülerin 0 veya 1'e sabitlenmediğini (bu durumda düz çizgiler gibi görünürler) doğrular. Test, yapılandırma dosyanızda debug işaretini ayarlayarak RAW resimlerle de çalıştırılabilir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Başarılı: Görüntüler aynı parlaklığa sahip ancak daha yüksek ISO ile daha gürültülü hale geliyor. Test edilen kazanç alanı boyunca ISO*pozlama değeri sabit olduğunda RGB düzlemleri düzdür.
Başarısızlık mekanizması: Aşağıdaki şekilde, kazanç çarpanı değerleri (x ekseni) arttıkça normalleştirilmiş RGB düzlemi ortalama değerleri (y ekseni), düşük kazanç çarpanı değerlerinden sapmaya başlar.
Ş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 (pozlama ve kazanç) doğru karede kilitlendiğini test eder. Arka arkaya istekler kullanarak bir dizi çekim yapar ve çekimler arasında yakalama isteği parametrelerini değiştirir. Resimlerin beklenen özelliklere sahip olup olmadığını kontrol eder.
Test edilen API'ler:
Başarılı: [2, 3, 6, 8, 10, 12, 13] numaralı resimlerde ISO veya pozlama artırılmış ve aşağıdaki şekildeki grafikte daha yüksek RGB ortalamalarıyla gösterilmiştir.
Şekil 23. test_latching grafiği ortalama örneği.
Ş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 dönüştürülüp dönüştürülemeyeceğini test eder. Cihaz, tek tip bir hedefe doğrultulmuşken bir dizi çekim yapar.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCKandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
Başarılı: R, G, B değerleri, artan hassasiyetle doğrusal olarak artmalıdır.
Şekil 37. test_linearity grafiği ortalama örneği.
test_locked_burst
3A kilidini ve YUV seri çekimini test eder (otomatik ayar kullanılarak). Bu test, MANUAL_SENSOR veya PER_FRAME_CONTROLS bulunmayan sınırlı cihazlarda bile başarılı olacak şekilde tasarlanmıştır.
Test, YUV görüntü tutarlılığını kontrol ederken kare hızı kontrolü CTS'dedir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCKandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
Başarılı: Çekimler 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'in işlevsel olarak aynı kopyasıdır ve scene 1'nin uzun süresini kısaltmak için bir alt sahne yapısı uygular.
test_param_color_correction
Ayarlandığında android.colorCorrection.* parametrelerinin uygulandığını test eder.
Farklı dönüşüm ve kazanç değerleriyle çekim yapar ve bunların buna göre farklı göründüğünü test eder. Dönüşüm ve kazançlar, çıkışın giderek daha kırmızı veya mavi olmasını sağlayacak şekilde seçilir. Doğrusal ton eşleme kullanır.
Ton eşleme, görüntü işlemede kullanılan bir tekniktir. Bu teknikte, yüksek dinamik aralıklı görüntülerin görünümünü daha sınırlı bir dinamik aralığa sahip bir ortamda yaklaşık olarak elde etmek için bir renk kümesi başka bir renk kümesiyle eşlenir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
Başarılı: Kırmızı ve mavi değerleri, dönüşüme göre artar.
Şekil 41. test_param_color_correction grafiği ortalama örneği.
Aşağıdaki şekillerde x ekseni, yakalama isteklerini gösterir: 0 = birlik, 1 = kırmızı güçlendirme ve 2 = mavi güçlendirme.
Şekil 42. test_param_color_correction req=0 unity örneği.
Şekil 43. test_param_color_correctness req=1 kırmızı güçlendirme örneği.
Şekil 44. test_param_color_correction req=2 mavi güçlendirme örneği.
test_param_flash_mode
android.flash.mode parametresinin uygulanıp uygulanmadığını test eder. Pozlamayı manuel olarak karanlık tarafa ayarlar. Böylece flaşın patlayıp patlamadığı anlaşılır ve doğrusal ton eşleme kullanılır. Flaşın patlayıp patlamadığını doğrulamak için oluşturulan büyük bir gradyan olup olmadığını görmek üzere karo resminin merkezini kontrol eder.
Test edilen API'ler:
Başarılı: Karo görüntüsünün ortasında büyük bir gradyan var. Bu, flaşın patladığı anlamına gelir.
Ş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
Ayarlandığında android.noiseReduction.mode parametresinin doğru şekilde uygulanıp uygulanmadığını test eder. Kamera loş ışıkta görüntü yakalıyor. Yüksek analog kazanç kullanarak yakalanan görüntünün gürültülü olmasını sağlar. Gürültü giderme kapalı, hızlı ve yüksek kalite için üç resim çeker. Ayrıca düşük kazançlı ve gürültü azaltma kapalı bir görüntü yakalar ve bunun varyansını referans olarak kullanır. Sinyal-gürültü oranı (SNR) ne kadar yüksek olursa resim kalitesi de o kadar iyi olur.
Test edilen API'ler:
Başarılı: SNR, farklı gürültü azaltma modlarına göre değişir ve aşağıdaki grafiğe benzer şekilde davranır:
Şekil 49. test_param_noise_reduction grafiği SNR'leri örneği.
0: KAPALI, 1: HIZLI, 2: HQ, 3: MIN , 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_MODEandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
Başarılı: Gölgeleme modları değiştirilir ve lens gölgeleme haritaları beklendiği gibi değiştirilir.
Şekil 55. test_param_shading_mode lens gölgeleme haritası, mod 0 döngü 0 örneği.
Şekil 56. test_param_shading_mode lens gölgeleme haritası, mod 1 döngü 0 örneği.
Şekil 57. test_param_shading_mode lens gölgeleme haritası, mod 2 döngü 0 örneği.
test_param_tonemap_mode
android.tonemap.mode parametresinin uygulanıp uygulanmadığını test eder. Her R, G, B kanalına farklı ton eşleme eğrileri uygular ve çıkış resimlerinin beklendiği gibi değiştirildiğini kontrol eder. Bu test, test1 ve test2 olmak üzere iki testten oluşur.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_CURVEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
Kart:
test1: Her iki resimde de doğrusal ton eşleme var ancakn=1daha dik bir gradyana sahip.n=1görüntüsünde G (yeşil) kanalı daha parlak.test2: Aynı ton eşleme ancak farklı uzunluk. Görseller aynı.
Şekil 58. n=0 ile test_param_tonemap_mode.
Şekil 59. n=1 ile test_param_tonemap_mode.
test_post_raw_sensitivity_boost
Ham hassasiyet artışından sonraki değeri kontrol eder. Farklı hassasiyetlere sahip bir dizi ham ve YUV görüntüsü yakalar, ham hassasiyet artırma kombinasyonunu yayınlar ve çıkış pikseli ortalamasının istek ayarlarıyla eşleşip eşleşmediğini kontrol eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGEandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Başarılı: Güçlendirme arttıkça RAW görüntüler kararır, YUV görüntülerinin parlaklığı ise sabit kalır.
Ş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 grafik ortalama ö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 örneği.
test_raw_exposure
Pozlama süresi artırılarak bir dizi ham görüntü yakalanır ve piksel değerleri ölçülür.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
Başarılı: ISO (kazanç) artırıldığında pikseller ışığa karşı daha hassas hale gelir ve grafik sola doğru kayar.
Ş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 uygulanıp uygulanmadığını test eder.
Kameranın loş ışıkta yeniden işlediği görüntüleri yakalar. Yüksek analog kazanç kullanarak yakalanan görüntünün gürültülü olduğunu doğrular. Gürültü azaltma kapalı, hızlı ve yüksek kalite için yeniden işlenmiş üç görüntü yakalar. Düşük kazançlı ve gürültü azaltma kapalıyken yeniden işlenmiş bir görüntü yakalar ve bunun varyansını referans olarak kullanır.
Test edilen API'ler:
Başarılı: FAST >= OFF, HQ >= FAST ve HQ >> OFF.
Şekil 79. Tipik SNR ve NR modu grafiği örneği.
test_tonemap_sequence
Farklı ton eşleme eğrilerine sahip bir dizi çekimi test eder. Doğrusal ton eşleme ile 3 manuel çekim yapar. Varsayılan ton eşleme ile 3 manuel çekim yapar. Birbirini takip eden her kare çifti arasındaki farkı hesaplar.
Test edilen API'ler:
Başarılı: Üç aynı kare ve ardından farklı bir üç aynı kare grubu var.
Ş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
Resim Yakalama için bildirilen tüm boyutların ve biçimlerin çalışıp çalışmadığını test eder. Doğrusal ton eşlemeli manuel istek kullanır. Böylece YUV ve JPEG, image_processing_utils modülü tarafından dönüştürüldüğünde aynı görünür. Resimler varsayılan olarak kaydedilmez ancak debug_mode etkinleştirilerek kaydedilebilir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#JPEG
Başarılı: Tüm görüntü merkezleri, RGB'ye dönüştürülmüş görüntülerde en yüksek çözünürlüklü YUV görüntüsünün% 3'ü kadar maksimum ortalama karekök (RMS) (sinyal değeri) farkına sahiptir.
Şekil 86. test_yuv_jpeg_all örneği.
test_yuv_plus_dng
Resim Yakalama için bildirilen boyutların ve biçimlerin çalışıp çalışmadığını test eder.
Test edilen API'ler:
Başarılı: Test tamamlanır ve istenen resimler döndürülür.
Şekil 87. test_yuv_plus_dng örneği.
scene1_3
scene 1_3, scene 1_1'in işlevsel olarak aynı kopyasıdır ve scene 1'nin uzun süresini kısaltmak için bir alt sahne yapısı uygular.
test_capture_result
CaptureResult nesnelerinde geçerli verilerin döndürülüp döndürülmediğini test eder. Test, otomatik çekim, manuel çekim ve ikinci bir otomatik çekimden oluşur.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AF_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
Başarılı: Meta veriler tüm çekimler için geçerlidir ve manuel ayarlar ikinci otomatik çekime sızmaz. Çekimler için lens gölgeleme düzeltmesini gösterir.
Şekil 88. test_capture_result_plot_lsc_auto_ch0.
test_dng_noise_model
DNG ham model parametrelerinin doğru olduğunu doğrular. Grafik, çeşitli hassasiyetlerde çekilen ham çekimlerde gri kartın orta parçasının ölçülen varyansını gösterir ve bu değerleri, kamera HAL'deki DNG gürültü modeli tarafından her hassasiyette beklenen varyansla karşılaştırır (yakalama sonucu nesnelerinde döndürülen O,S parametrelerine göre). DNG gürültü modeli hakkında daha fazla bilgi için DNG Gürültü Modeli ile ilgili aşağıdaki belgeyi indirin.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILEandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Başarılı: 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
Dönüştürülen YUV resimlerinin ve cihaz JPEG resimlerinin aynı göründüğünü test eder. Test, görüntünün ortasındaki% 10'luk kısmı alır, RGB değerini hesaplar ve bunların eşleştiğini doğrular.
Test edilen API'ler:
Başarılı: Her resim arasındaki ortalama RGB farkı %3'ten azdır.
Ş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 RAW formatında seri çekim yapar.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Başarılı: Kazanç arttıkça her çekim bir önceki çekimden daha gürültülü olur.
Merkez istatistikleri ızgara hücresinin varyansını kullanır.
Şekil 92. test_raw_burst_sensitivity_variance.
test_raw_sensitivity
Hassasiyetleri artan bir dizi ham görüntü yakalar ve görüntünün ortasındaki% 10'luk bölümdeki paraziti (varyans) ölçer. Her çekimin bir öncekinden daha gürültülü olup olmadığını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVELandroid.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITYandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Pas: Varyans her atışta artar.
Şekil 93. test_raw_sensitivity_variance.
test_yuv_plus_jpeg
Tek bir kareyi hem YUV hem de JPEG çıkışı olarak yakalamayı test eder. Doğrusal ton eşlemeli manuel istek kullanır. Böylece YUV ve JPEG, image_processing_utils modülü tarafından dönüştürüldüğünde aynı görünür.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#JPEG
Başarılı: YUV ve JPEG resimler 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
Destekleniyorsa tek bir kareyi hem ham (10 bit ve 12 bit ham) hem de YUV çıkışları olarak yakalamayı test eder. Doğrusal ton eşlemeli manuel istek kullanır. Bu nedenle, ham ve YUV'nin aynı olması beklenir. RGB'ye dönüştürülmüş resimlerin merkezdeki% 10'luk RGB değerlerini karşılaştırır. Günlüklerandroid.shading.mode.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAWandroid.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAPandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINSandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORMandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_MODEandroid.hardware.camera2.CaptureRequest#SHADING_MODEandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODEandroid.graphics.ImageFormat#RAW10android.graphics.ImageFormat#RAW12
Başarılı: YUV ve ham görüntüler benzerdir ve% 3,5'ten az RMS (bir sinyalin ortalama karekök değeri) farkına sahiptir.
Ş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_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
Başarılı: Daha yüksek ISO, gürültü seviyelerinin artmasına neden olur.
Test atlama ölçütleri
Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_sensitivity_priority.py testi atlanır:
- Cihazın ilk API düzeyi (
first_api_level) 35 veya daha düşük. - Cihaz,
CONTROL_AE_AVAILABLE_PRIORITY_MODESiçindeCONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITYreklam yayınlamıyor.
test_exposure_time_priority
ISO'nun telafi edebileceği aralıkta parlaklığın sabit olup olmadığını kontrol etmek için çeşitli pozlama sürelerinde CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY testleri yapılır.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGEandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_MODEandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ONandroid.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
Başarılı: ISO, telafi aralığındaysa parlaklık, pozlama süreleri boyunca sabittir (tolerans dahilinde).
Test atlama ölçütleri
Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_exposure_time_priority testi atlanır:
- Cihazın ilk API düzeyi (
first_api_level) 35 veya daha düşük. - Cihaz,
CONTROL_AE_AVAILABLE_PRIORITY_MODESiçindeCONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITYreklam yayınlamıyor.
scene2_a
scene2_a, gri arka plan ve nötr kıyafetlerle üç yüze sahiptir. Yüzler, geniş bir cilt tonu yelpazesine sahip olacak şekilde seçilir. Yüz algılama özelliğinin en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir.
Şekil 98. scene2_a örneği.
test_autoframing
Kamera cihazının otomatik çerçeveleme davranışını test eder. Sahnedeki yüzlerin hiçbiri görünmeyecek şekilde büyük bir yakınlaştırma yapar, CaptureRequest içindeki AUTOFRAMING değerini True olarak ayarlayarak otomatik çerçeveleme modunu etkinleştirir ve durum birleştiğinde (yani CaptureResult içindeki AUTOFRAMING_STATE değeri AUTOFRAMING_STATE_CONVERGED olarak ayarlandığında) orijinal sahnedeki tüm yüzlerin algılanıp algılanamayacağını doğrular.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMINGandroid.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
Başarılı: Üç yüz de algılandı.
test_display_p3
ColorSpaceProfiles API'sini kullanarak JPEG biçiminde Display P3 yakalamayı test eder. Çekilen JPEG'in başlığında uygun bir ICC profili olup olmadığını ve görüntünün sRGB gamının dışında renkler içerip içermediğini test eder.
Test edilen API'ler:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
Başarılı: JPEG, Display P3 ICC profili ve sRGB gamının dışındaki renkleri içeriyor.
test_effects
Desteklenen kamera efektleri için kare yakalar ve bunların doğru şekilde oluşturulup oluşturulmadığını kontrol eder. Test yalnızca OFF ve MONO efektlerini kontrol eder ancak desteklenen tüm efektler için resimleri kaydeder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTSandroid.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Başarılı: Sahne görüntüsünü OFF efektleriyle ve MONO efektleriyle tek renkli bir görüntüyle yakalar.
Şekil 99. test_effects_MONO.
test_exposure_keys_consistent
Bu test, AE'nin etkin olduğu bir çekimin ortalama luma değerini, AE'nin etkin olduğu çekimin CaptureResult içinde alınan pozlama parametrelerini (hassasiyet, pozlama süresi, kare süresi, RAW sonrası hassasiyet artışı) manuel olarak uygulayan AE'nin devre dışı olduğu bir çekimle karşılaştırır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOSTandroid.hardware.camera2.CaptureResult#SENSOR_SENSITIVITYandroid.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
Başarılı: İki çekim arasındaki luma değerinin göreceli farkı %4'ten azdır.
test_format_combos
Farklı çıkış biçimi kombinasyonlarını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAPandroid.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()android.hardware.camera2.CameraCaptureSession#captureBurst()
Başarılı: 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_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: Üç 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, yeniden işlenen görüntü ile yeniden işlenmemiş bir çekim arasındaki mutlak farkların toplamı (SAD) hesaplanarak tespit edilir. Yeniden işlenen yakalamanın çıkış U ve V düzlemlerinin değiştirilmesi SAD'nin artmasına neden oluyorsa çıkışın doğru U ve V düzlemlerine sahip olduğu varsayılır.
Test edilen API'ler:
android.hardware.camera2.CameraDevice#createCaptureSessionandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSINGandroid.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
Başarılı: U ve V düzlemleri değiştirilmez.
Şekil 101. test_reprocess_uv_swap örneği.
scene2_b
scene2_b, gri arka plan ve nötr kıyafetlerle üç yüze sahiptir. Yüzler, geniş bir cilt tonu yelpazesine sahip olacak şekilde seçilir. Yüz algılama özelliğinin en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir.
test_preview_num_faces
Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle önizlemede yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: Yüz sınırlayıcı kutularda yüz noktaları olan üç yüz bulur.
Şekil 102. test_num_faces yüz algılama modu 1 örneği.
test_yuv_jpeg_capture_sameness
1920x1440 çözünürlüğü aşmayan en büyük JPEG biçimiyle aynı en boy oranına sahip en büyük ortak YUV ve JPEG biçimlerini kullanarak iki resim çeker.
jpeg.quality değerini 100 olarak ayarlar ve çift yüzey isteği yakalar. Her iki resmi de RGB dizilerine dönüştürür ve iki resim arasındaki 3D ortalama karekök (RMS) farkını hesaplar.
Ayrıca bu test, desteklenen tüm akış kullanım alanları için YUV çıkışlarının STILL_CAPTURE kullanım alanına sahip YUV'ye makul ölçüde benzer olduğunu doğrular.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureRequest#JPEG_QUALITYandroid.graphics.ImageFormat#JPEG
Başarılı: STILL_CAPTURE kullanım alanı için YUV ve JPEG resimlerde% 3'ten az RMS (bir sinyalin ortalama karekök değeri) farkı vardır. Desteklenen tüm kullanım alanları için YUV resimlerde, STILL_CAPTURE kullanım alanına sahip YUV resimlere kıyasla% 4'ten az CIELAB farkı vardır.
scene2_c
test_num_faces
Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: Üç yüz bulur.
Şekil 103. test_num_faces yüz algılama modu örneği.
test_jpeg_capture_perf_class
CDD'nin bölüm 2.2.7.2 Kamera kısmında belirtildiği gibi S performans sınıfı için JPEG yakalama gecikmesini test eder.
Başarılı: Her iki birincil kamera için de ITS aydınlatma koşulları (3.000 K) altında CTS kamera PerformanceTest tarafından ölçüldüğü şekilde, 1080p çözünürlük için camera2 JPEG yakalama gecikmesi 1.000 ms'den az OLMALIDIR.
test_camera_launch_perf_class
CDD'nin 2.2.7.2 Kamera bölümünde belirtilen S performans sınıfı için kamera başlatma gecikmesini test eder.
Başarılı: Her iki birincil kamera için de ITS aydınlatma koşulları (3.000 K) altında CTS kamera PerformanceTest tarafından ölçüldüğü şekilde camera2 başlatma gecikmesi (kameranın açılmasından ilk önizleme karesine kadar geçen süre) 600 ms'den az OLMALIDIR.
test_default_camera_hdr
CDD'nin bölüm 2.2.7.2 Kamera kısmında belirtildiği gibi, performans sınıfı 15 için varsayılan kamera çekiminin Ultra HDR olduğunu test eder.
Başarılı: Performans sınıfı 15 cihazlarda varsayılan kamera paketi yakalama işlemi Ultra HDR OLMALIDIR.
scene2_d
test_preview_num_faces
Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle önizlemede yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: Yüz sınırlayıcı kutularda yüz noktaları olan üç yüz bulur.
scene2_e
test_continuous_picture
Önce yakalama isteği ayarıyla 50 VGA çözünürlüklü kare yakalanır
android.control.afMode = 4 (CONTINUOUS_PICTURE).
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODEandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AF_STATEandroid.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
Başarılı: 3A sistemi, 50 karelik bir çekimin sonunda sabitlenir.
test_num_faces
Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: 3 yüz bulur.
scene2_f
scene2_f, beyaz arka plan ve beyaz kıyafetli üç yüze sahip. Yüzlerde çok çeşitli cilt tonları ve arka planla yüksek kontrast kullanılmış.
Şekil 104. scene2_f örneği.
test_preview_num_faces
Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: Yüz sınırlayıcı kutularda yüz noktaları olan üç yüz bulur.
Şekil 105. test_num_faces_fd_mode_1 örneği.
scene2_g
scene2_g, beyaz arka plan ve beyaz kıyafetli üç profil yüzüne sahiptir.
Yüzlerde çok çeşitli cilt tonları ve arka planla yüksek kontrast var.
Şekil 106. scene2_g örneği.
test_preview_num_faces
Yüz sahnelerinde daha fazla ten rengi çeşitliliğiyle yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACESandroid.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: Yüz sınırlayıcı kutularda yüz noktaları olan üç yüz bulur.
Şekil 107. test_preview_num_faces örneği.
scene3
scene3, ISO12233 grafiğini kullanır ve çoğu test, sahnedeki grafiği bulmak için grafik çıkarıcı yöntemini kullanır. Bu nedenle, kaydedilen resimlerin çoğunda 1, 2 veya 4. sahnelerdeki resimler gibi kenarlıklar yoktur, yalnızca grafik vardır. Grafik bulucunun en iyi şekilde çalışması için grafiğin doğru yönde olması gerekir.
Android 17 ve sonraki sürümlerde scene3, grafik algılama için ArUco işaretçilerini kullanır.
Şekil 108. scene3 grafiği.
test_edge_enhancement
android.edge.mode parametresinin doğru şekilde uygulandığını test eder. Her kenar modu için yeniden işlenmeyen görüntüleri yakalar ve çıkış görüntüsünün keskinliğini ve yakalama sonucu meta verilerini döndürür. Belirli bir kenar modu, hassasiyet, pozlama süresi, odak mesafesi ve çıkış yüzeyi parametresiyle yakalama isteğini işler. Android 17 ve sonraki sürümlerde, gerekli keskin kenarları içeren grafik alanını tanımlamak için ArUco işaretçileri kullanılır.
Başarılı: HQ modu (2), OFF modundan (0) daha keskin. FAST modu, OFF modundan (1) daha net. HQ modu, FAST modundan daha keskin veya ona eşit.
Test edilen API'ler:
Etkilenen kamera parametreleri:
EDGE_MODE
Şekil 109. test_edge_enhancement edge=0 örneği.
Şekil 110. test_edge_enhancement edge=1 (hızlı mod) örneği.
Şekil 111. test_edge_enhancement edge=2 (yüksek kalite modu) örneği.
test_flip_mirror
Görüntünün, CDD'deki 7.5.2 Ön Kamera bölümüne göre doğru şekilde yönlendirilip yönlendirilmediğini test eder. Android 17 ve sonraki sürümlerde, grafiğin hem varlığını hem de yönünü doğrulamak için ArUco işaretçilerini kullanır. Yansıtılmış, ters çevrilmiş veya döndürülmüş resimler, ortadaki elmas özelliğiyle tanımlanabilir.
Başarılı: Tüm işaretçiler algılandı ve doğru şekilde hizalandı. Resim çevrilmemiş, yansıtılmamış veya döndürülmemiş olmalıdır.
Şekil 112. test_flip_mirror sahne yaması örneği.
test_imu_drift
Cihaz sabitken ve yüksek çözünürlüklü önizleme yakalarken atalet ölçüm biriminin (IMU) 30 saniye boyunca kararlı çıkış verip vermediğini test eder.
Test edilen API'ler:
android.hardware.Sensorandroid.hardware.SensorEventandroid.hardware.Sensor#TYPE_GYROSCOPEandroid.hardware.Sensor#TYPE_ROTATION_VECTOR
Kart:
- Jiroskopun sapması, test süresi boyunca 0,01 rad'dan az olmalıdır.
- Jiroskop okumasının varyansı, test süresi boyunca 1E-7 rad2/sn2/Hz'den azdır.
- Dönüş vektörünün sapması, test süresi boyunca 0,01 rad değerinden az olmalıdır.
- (Henüz zorunlu değil) Jiroskopun sapması saniyede 1 dereceden az olmalıdır.
Şekil 113. test_imu_drift jiroskop sapması örneği.
Şekil 114. test_imu_drift dönüş vektörü sapması örneği.
test_landscape_to_portrait
Yataydan dikeye geçersiz kılma işlevinin, yatay yönlü sensörler için doğru şekilde çalışıp çalışmadığını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODESandroid.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATIONandroid.hardware.camera2.CameraManager#getCameraCharacteristics
Başarılı: Test, beklenen dönüşe sahip bir grafik bulur (yataydan dikeye geçersiz kılma devre dışı bırakıldığında 0 derece, etkinleştirildiğinde 90 derece).
Şekil 115. test_landscape_to_portrait örneği.
test_lens_movement_reporting
Lens hareketi işaretinin doğru şekilde bildirilip bildirilmediğini test eder. İlk 12 kare optimum odak mesafesinde (3A tarafından belirlendiği şekilde) ve son 12 kare minimum odak mesafesinde olacak şekilde 24 resimlik bir seri çekim yapar. 12. kare civarında lens hareket ediyor ve keskinlik düşüyor. Lens son konuma ulaştığında keskinlik sabitlenir.
Lens hareketi işareti, keskinliğin optimum odak uzaklığında sabit lensle ilk birkaç karedeki keskinlik ile minimum odak uzaklığında sabit lensle son birkaç karedeki keskinlik arasında olduğu tüm karelerde onaylanmalıdır. Lensin hareket ettiği tam kare önemli değildir. Önemli olan, lens hareket ederken hareket işaretinin etkinleştirilmesidir.
Android 17 ve sonraki sürümlerde bu test, gerekli keskin kenarları içeren grafik alanını tanımlamak için ArUco işaretçilerini kullanır. Bu yöntem, ultra geniş (UW) kameralardan telefoto uygulamalarına kadar tüm kameralar için kararlı bir algılama sağlar.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#LENS_STATEandroid.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCEandroid.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
Başarılı: Lens hareketi işareti, keskinlik değişikliği olan karede True.
Başarısızlık mekanizmaları:
lens_moving: True(android.hardware.camera2.CaptureResult#LENS_STATE= 1) intest_log.DEBUGyalnızca keskinliğin değişmediği karelerde onaylanır.test_log.DEBUGiçindelens_moving: False(android.hardware.camera2.CaptureResult#LENS_STATE= 0) olan kareler, optimum odak uzaklığındaki ilk birkaç kareye veya minimum odak uzaklığındaki son birkaç kareye kıyasla keskinlik farkına sahiptir.
test_reprocess_edge_enhancement
Kenar geliştirme için desteklenen yeniden işleme yöntemlerinin düzgün çalışıp çalışmadığını test eder. Belirli bir yeniden işleme kenar moduyla yakalama isteğini işler ve farklı modları, yeniden işleme kenar modları devre dışı bırakılmış yakalama modlarıyla karşılaştırır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#EDGE_MODEandroid.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
Başarılı: Farklı kenar modları için keskinlik doğru. HQ (mod 2), OFF (mod 0) değerinden daha keskindir ve farklı modlar arasındaki iyileştirme benzerdir.
Şekil 116. test_reprocess_edge_enhancement grafiği örneği.
scene4
scene4, bir kare içinde beyaz arka plan üzerinde siyah bir daireden oluşur.
scene4'teki testler hizalamaya duyarlı olabilir. Bu nedenle, Android 15'ten itibaren, test edilen cihazın ve grafik hizalamasının kontrolünü etkinleştirmek için araçlar dizininde check_alignment.py kullanabilirsiniz.
Şekil 117. scene4 örneği.
test_30_60fps_preview_fov_match
30 FPS ve 60 FPS önizleme videolarının aynı görüş alanına sahip olup olmadığını test eder. Testte biri 30 FPS, diğeri 60 FPS olmak üzere iki video kaydedilir. Her videodan temsili bir kare seçilir ve iki videodaki FoV değişikliklerinin spesifikasyonlara uygun olduğunu doğrulamak için analiz edilir. Dairenin en boy oranının, merkezinin ve yarıçapının sabit kaldığını test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIMEandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Başarılı: Görüntüler uzatılmıyor, görüntülerin merkezleri %3'ten fazla farklılık göstermiyor ve 30 FPS ile 60 FPS videolar arasındaki maksimum en-boy oranı değişimi %7,5'ten fazla değil.
Başarısızlık mekanizmaları:
- 30 FPS videodaki dairenin boyutu, 60 FPS videodaki dairenin boyutundan önemli ölçüde farklıdır.
- Çekilen görüntüdeki daire, işleme hattı tarafından bozulur.
- Yakalanan görüntüdeki daire, görüntünün yüksekliğini veya genişliğini azaltan aşırı en-boy oranına sahip bir yakalama isteği nedeniyle kırpılır.
- Çekilen görüntüdeki dairenin ortasında yansıma var ve daire tamamen dolu görünmüyor.
test_aspect_ratio_and_crop
Resim ardışık düzeninde resimlerin bozulup bozulmadığını veya beklenmedik şekilde kırpılıp kırpılmadığını test eder. Tüm biçimlerde dairenin fotoğrafını çeker. Dairenin bozulmadığını, görüntünün merkezinden hareket etmediğini ve farklı en boy oranları veya çözünürlüklerle yanlış şekilde boyut değiştirmediğini doğrular.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Başarılı: Resimler esnetilmez, resimlerin merkezleri %3'ten fazla farklılık göstermez ve mümkün olan maksimum FoV korunur.
Başarısızlık mekanizmaları:
- Kamera, yakalanan sahnenin ortasında tablette gösterilen daireyle hizalanmamış.
- Çekilen görüntüdeki daire, işleme hattı tarafından bozulur.
- Düşük çözünürlüklü resim, resim ardışık düzeninde iki kez kırpılır. Bu da yüksek ve düşük çözünürlüklü resimler arasında farklı görüş alanları oluşturur.
- Yakalanan görüntüdeki daire, görüntünün yüksekliğini veya genişliğini azaltan aşırı en-boy oranı yakalama isteği nedeniyle kırpılır.
- Çekilen görüntüdeki dairenin ortasında bir yansıma var ve daire tamamen dolu görünmüyor.
test_multi_camera_alignment
Çok kameralı sistemlerde kamera konumlandırmayla ilgili kamera kalibrasyon parametrelerini test eder. Çoklu kamera fiziksel alt kameralarını kullanarak fiziksel kameralardan biriyle fotoğraf çeker. Dairenin merkezini bulur. Daire merkezini her kamera için dünya koordinatlarına yansıtır. Kameraların daire merkezleri arasındaki farkı dünya koordinatlarında karşılaştırır. Dünya koordinatını tekrar piksel koordinatlarına yansıtır ve geçerlilik kontrolü olarak orijinallerle karşılaştırır. Kameraların odak uzaklıklarının farklı olup olmadığını kontrol ederek daire boyutlarını karşılaştırır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraCharacteristics#LENS_DISTORTIONandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATIONandroid.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATIONandroid.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.CaptureRequest#SCALER_CROP_REGIONandroid.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
Başarılı: Kamera kalibrasyon verileri ve odak uzaklıkları kullanılarak çekilen görüntülerle karşılaştırıldığında, yansıtılan görüntülerdeki daire merkezleri ve boyutları beklendiği gibidir.
Başarısızlık mekanizmaları:
LENS_INTRINSIC_CALIBRATION,LENS_POSE_TRANSLATIONveLENS_POSE_ROTATION, tasarım değerleridir ve gerçek kalibrasyon verileri değildir.- Kamera sistemi, test düzeneği için uygun değil. Örneğin, RFoV test düzeneğiyle geniş ve ultra geniş kamera sistemini test etme. Daha fazla bilgi için Kamera ITS-in-a-box SSS S1 bölümüne bakın.
test_preview_aspect_ratio_and_crop
Fotoğraf çekimleri için yapılan test_aspect_ratio_and_crop testine benzer şekilde, önizleme karelerinin uygunsuz şekilde uzatılmadığını veya kırpılmadığını doğrulamak için desteklenen önizleme biçimlerini kontrol eder. Dairenin en boy oranının değişmediğini, kırpılan resimlerde dairenin çerçevenin ortasında kaldığını ve daire boyutunun sabit bir formatta veya farklı çözünürlüklerde değişmediğini doğrular (FoV kontrolü).
Test edilen API'ler:
android.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
Başarılı: Resimler esnetilmez, resimlerin merkezleri %3'ten fazla farklılık göstermez ve mümkün olan maksimum FoV korunur.
test_preview_stabilization_fov
Görüş alanının uygun şekilde kırpıldığından emin olmak için desteklenen önizleme boyutlarını kontrol eder. Testte iki video kaydedilir. Bunlardan biri önizleme sabitleme ON, diğeri ise önizleme sabitleme OFF ile kaydedilir. Her videodan temsili bir kare seçilir ve iki videodaki FoV değişikliklerinin spesifikasyon dahilinde olduğunu doğrulamak için analiz edilir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
Başarılı: Dairenin en boy oranı yaklaşık olarak sabit kalır, dairenin merkez konumu sabit kalır ve dairenin boyutu %20'den fazla değişmez.
test_video_aspect_ratio_and_crop
Tüm video formatlarında kare içindeki bir dairenin videosunu çeker. Ana kareleri ayıklar ve dairenin en boy oranının değişmediğini, kırpılan resimlerde dairenin ortada kaldığını ve daire boyutunun sabit bir biçim için veya farklı çözünürlükte değişmediğini doğrular (FoV kontrolü).
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#LENS_DISTORTIONandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTHandroid.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
Başarılı: Video kareleri esnetilmez, karelerin merkezleri %3'ten fazla farklılık göstermez ve mümkün olan maksimum görüş alanı korunur.
scene6
scene6, kimliği net bir şekilde tespit edilebilir ArUco işaretçilerinden oluşan bir ızgaradır.
scene6 testleri hizalamaya duyarlı olabilir. Bu nedenle, 15 sürümünden itibaren araçlar dizininde check_alignment.py kullanarak DUT ve grafik hizalamasının kontrol edilmesini sağlayabilirsiniz.
Şekil 118. scene6 örneği.
test_in_sensor_zoom
Kırpılmış RAW görüntüler üreten kamera sensör içi yakınlaştırma özelliğinin davranışını test eder.
Akış kullanım alanı CROPPED_RAW olarak ayarlandığında test, yakınlaştırma aralığında iki çekim yapar: tam FoV RAW resim ve kırpılmış RAW resim. Test, görüntüleri RGB dizilerine dönüştürür, tam boyutlu kırpılmış ham görüntüyü SCALER_RAW_CROP_REGION tarafından bildirilen boyuta küçültür ve iki görüntü arasındaki 3D RMS farkını hesaplar.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAWandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
Başarılı: Küçültülmüş kırpılmış ham görüntü ile tam FoV ham görüntü arasındaki 3D RMS farkı, testte ayarlanan eşikten daha azdır.
test_zoom
Ultra geniş lensten geniş lense kamera yakınlaştırma davranışını test eder. Yakınlaştırma aralığında çekim yapar ve kamera yakınlaştırdıkça ArUco işaretçilerinin büyüyüp büyümediğini kontrol eder. Test, merkez işaretçinin konumunun her çekimde tahmin edilebilir şekilde değişip değişmediğini de kontrol eder. Merkez işaretçinin merkezinden görüntü merkezine olan mesafe, fiziksel kamera geçişine kadar yakınlaştırma oranına göre sabit bir hızda değişebilir veya fiziksel kamera geçişinden sonra aynı işaretçinin konumuna doğru monoton bir şekilde değişebilir. Testten önce cihaza Jetpack Camera uygulaması (JCA) yüklenmelidir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Başarılı: Yakalanan ArUco işaretçisinin göreceli boyutu, kameranın doğru şekilde yakınlaştırdığını doğrulamak için istenen yakınlaştırma oranına göre doğru ve işaretçinin görüntü merkezine olan mesafesi, test açıklamasında belirtilen ölçütlere göre değişiyor.
Şekil 119. Merkeze en yakın ArUco işaretçisinin konturunu bulmak için test_zoom.
test_low_latency_zoom
Kameranın düşük gecikmeli yakınlaştırma davranışını test eder. android.control.settingsOverride = 1 (SETTINGS_OVERRIDE_ZOOM) ile yakınlaştırma aralığında çekim yapar ve çıkış görüntülerindeki işaretçilerin, çekim meta verilerindeki yakınlaştırma oranlarıyla eşleşip eşleşmediğini kontrol eder. 3A'yı birleştirmek ve çekim yapmak için aynı kamera çekim oturumu kullanılır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDESandroid.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
Başarılı: Yakalanan işaretçinin göreceli boyutu, yakınlaştırma oranı sonuç meta verilerine göre doğru.
test_preview_video_zoom_match
Kayıt ve yakınlaştırma sırasında video önizlemesi ile video çıkışının aynı çıkışı gösterip kaydettiğini test eder. Farklı yakınlaştırma oranlarında merkeze en yakın işaretçinin boyutunu hesaplar ve yakınlaştırma oranı arttıkça işaretçinin boyutunun artıp artmadığını kontrol eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Başarılı: Yakalanan işaretçinin göreli boyutu, video ve önizlemede istenen yakınlaştırma oranıyla uyumlu.
Şekil 120. HD_1280x720_key_frame.png (yakınlaştırmadan önce).
Şekil 121. preview_1280x720_key_frame.png (yakınlaştırmadan önce).
Şekil 122. HD_1280x720_key_frame.png (yakınlaştırmadan sonra).
Şekil 123. preview_1280x720_key_frame.png (yakınlaştırmadan sonra).
test_preview_zoom
Her önizleme karesinin yakınlaştırma oranının, ultra geniş lensten geniş lense karşılık gelen yakalama meta verileriyle eşleşip eşleşmediğini test eder. Test, yakınlaştırma aralığı boyunca önizleme kareleri alır ve merkeze en yakın ArUco işaretçisini bulur. Test, her çekimde merkez işaretçinin konumunun tahmin edilebilir şekilde değişip değişmediğini kontrol eder. Merkez işaretçinin merkezinden görüntü merkezine olan mesafe, fiziksel kamera geçişine kadar yakınlaştırma oranına göre sabit bir hızda değişebilir veya fiziksel kamera geçişinden sonra aynı işaretçinin konumuna doğru monoton bir şekilde değişebilir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Başarılı: Seçilen ArUco işaretçisinin göreceli boyutu, tüm önizleme kareleri için ilgili yakalama sonucunun bildirilen yakınlaştırma oranı açısından doğru. Seçilen işaretçinin görüntünün merkezine olan göreli mesafesi, tüm önizleme karelerinin ilgili yakalama sonucunun bildirilen yakınlaştırma oranı için doğrudur.
Şekil 124. Merkeze en yakın seçili işaretçiyi gösteren test_preview_zoom resimleri
test_session_characteristics_zoom
CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION bölümünde listelenen, desteklenen tüm oturum yapılandırmaları için yakınlaştırma oranı aralığını test eder.
Bu yapılandırmaların her biri için CameraDeviceSetup#isSessionConfigurationSupported true değerini döndürürse test, CameraDeviceSetup#getSessionCharacteristics tarafından döndürülen yakınlaştırma oranı aralığına ulaşılabildiğini doğrular.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSIONandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
Başarılı: CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION içinde listelenen desteklenen her SessionConfiguration için hem minimum hem de maksimum yakınlaştırma oranlarına ulaşılabilir.
scene7
scene7, her biri farklı bir renkle doldurulmuş dört eşit çeyrek daireye bölünmüş dikdörtgen bir çerçevedir. Dikdörtgenin ortasında, keskinlik kontrolleri için eğimli kenar grafiği bulunur. Dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır. Bu işaretçiler, farklı yakınlaştırma oranlarında ana dikdörtgen çerçevesinin doğru koordinatlarını elde etmeye yardımcı olur.
Şekil 125. scene7.
test_multi_camera_switch
Bu test, farklı yakınlaştırma oranlarında önizleme kaydı sırasında ultra geniş (UW) ve geniş (W) lensler arasında geçiş yapıldığında benzer RGB değerleri elde edildiğini doğrular.
Test, dinamik bir önizleme kaydı gerçekleştirmek ve fiziksel kameranın değiştiği noktayı belirlemek için önceden tanımlanmış aralıkta farklı yakınlaştırma oranları kullanır. Bu nokta, UW lensten W lense geçişi gösterir.
Geçiş noktasında ve öncesinde yakalanan kareler otomatik pozlama (AE), otomatik beyaz dengesi (AWB) ve otomatik odaklama (AF) açısından analiz edilir.
AE kontrolü, luma değişikliğinin hem UW hem de W lens görüntüleri için beklenen aralıkta olduğunu doğrular. AWB kontrolü, kırmızı-yeşil ve mavi-yeşil oranlarının hem UW hem de W lens görüntüleri için eşik değerleri içinde olduğunu doğrular. AF kontrolü, UW ve W lens görüntüleri arasındaki ortalama gradyan büyüklüğüne göre keskinlik tahmin değerini değerlendirir.
Bu testi yürütürken hareli efekti sonuçları etkiliyorsa Kamera ITS onaylı tabletler listesinden daha yüksek çözünürlüklü bir tablet kullanın.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
Başarılı: Testin başarılı olması için AE ve AWB kontrollerinin başarılı olması gerekir. AF kontrol sonuçları yalnızca günlük kaydı amacıyla kullanılır. Her bir kontrolün ölçütleri aşağıda verilmiştir:
- AE kontrolü: Cihaz hem
ae_regionshem deawb_regionsdeğerini destekliyorsa UW ve W lens görüntüleri arasındaki luma değişimi (Y değeri), tüm renk yamaları için% 4'ten az olmalıdır. Yalnızcaae_regionsdestekleniyorsa yalnızca gri renkli yama değerleri ölçütleri karşılamalıdır. - AWB kontrolü: Cihaz hem
ae_regionshem deawb_regionsdeğerini destekliyorsa UW ve W lens görüntülerinin kırmızı-yeşil ve mavi-yeşil değerleri arasındaki fark, gri renk yaması için% 3'ten, diğer renk yamaları için% 10'dan az olmalıdır. - AF kontrolü: W lensle çekilen görüntünün keskinliği, UW ile çekilen görüntünün keskinliğinden daha yüksek olmalıdır.
Şekil 126. UW lens ile çekilmiş gri yama.
Şekil 127. Geniş lensle çekilmiş gri yama.
scene8
scene8, dört eşit bölgeye bölünmüş dikdörtgen bir çerçevedir. Her bölgede farklı pozlamayla çekilmiş veya farklı bir renk tonuyla (mavi ton, artırılmış pozlama, azaltılmış pozlama, sarı ton) kaplanmış bir portre bulunur.
Ana dikdörtgen çerçevenin doğru koordinatlarını elde etmek için dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır.
Şekil 128. scene8 örneği.
test_ae_awb_regions
Farklı AE ve AWB bölgelerinde önizleme kaydı yaparken RGB ve luma değerlerinin farklı olup olmadığını test eder.
Test, her bir kadranda 2 saniye boyunca AE ve AWB ölçümü yaparak 8 saniyelik bir önizleme kaydı oluşturur. Ardından test, her bölgenin önizleme kaydından bir kare çıkarır ve çıkarılan kareleri kullanarak aşağıdaki AE ve AWB kontrollerini gerçekleştirir:
- AE kontrolü: Pozlaması azaltılmış bölgeyi ölçen karenin, pozlaması artırılmış bölgeyi ölçen kareye kıyasla% 1'den daha fazla luma değerine sahip olduğunu doğrular. Bu test, karanlık bir bölge ölçülürken görüntülerin parlaklığının artırıldığını doğrular.
- AWB kontrolü: Mavi ölçüm bölgesine sahip karedeki kırmızı/mavi oranının (görüntünün ortalama RGB değerleri), sarı ölçüm bölgesine sahip kareden %2'den daha yüksek olduğunu doğrular. Bu sayede, sarı (sıcak) veya mavi (soğuk) bir bölge ölçülürken resimlerin dengeli bir RGB değerine sahip olduğu doğrulanır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONSandroid.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONSandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AEandroid.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
Başarılı: AE ve AWB kontrollerinin ikisi de başarılıdır.
Şekil 129. Pozlama artırılarak kadraj ölçümü yapılan karanlık bölge.
Şekil 130. Kare ölçümü, pozlama azaltılarak daha açık renkli bölgeye ayarlandı.
Başarısızlık mekanizmaları:
Bu test için dört ArUco işaretçisinin de doğru şekilde algılanması gerekir. İlk algılama başarısız olursa sistem, görüntünün siyah beyaz bir sürümünü kullanarak ikinci bir algılama denemesi yapar. Aşağıdaki gri tonlamalı resim, ikincil işleme adımını temsil eder:
Şekil 131. ArUco işaretçileri yanlış hizalanmış.
test_color_correction_mode_cct
Farklı renk sıcaklıkları ve tonlarında COLOR_CORRECTION_MODE testleri yaparak RGB oranlarındaki değişiklikleri çekim sahnesine (scene8) göre doğrular.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODEandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATUREandroid.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGEandroid.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCTandroid.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
Başarılı: RGB oranları, seçilen renk sıcaklıklarına ve tonlarına göre beklenen artışları veya azalmaları gösterir.
Test atlama ölçütleri
Aşağıdaki ölçütlerden herhangi biri karşılanırsa test_color_correction_mode_cct testi atlanır:
- Cihazın ilk API düzeyi (
first_api_level) 35 veya daha düşük. - Cihaz,
COLOR_CORRECTION_AVAILABLE_ABERRATION_MODESiçindeCOLOR_CORRECTION_MODE_CCTreklam yayınlamıyor.
scene9
scene9, JPEG sıkıştırma algoritmalarını zorlamak için tekrarlanabilirliği çok düşük bir sahne oluşturmak amacıyla rastgele boyut ve renklerde binlerce daireden oluşur.
Şekil 132. scene9 örneği.
test_jpeg_high_entropy
Kamera JPEG sıkıştırmasının, yüksek entropi ve %100'e ayarlanmış JPEG kalite faktörüyle scene9 üzerinde çalışıp çalışmadığını test eder. Tablette görüntülenen sahnenin kameranın görüş alanını doldurduğunu doğrulamak için yakınlaştırma faktörü artırılır.
Test edilen API'ler:
Başarılı: JPEG dosyası düzgün şekilde sıkıştırıldı, yazıldı ve diskten geri okundu.
test_jpeg_quality
Kamera JPEG sıkıştırma kalitesini test eder. JPEG kalitelerini android.jpeg.quality ile adım adım ilerletir ve niceleme tablolarının doğru şekilde değiştiğini doğrular.
Test edilen API'ler:
Başarılı: Kalite arttıkça niceleme matrisi azalır. (Matris, bölme faktörünü temsil eder.)
Şekil 133. Pixel 4 arka kamera parlaklık ve renk DQT matris ortalamaları ile JPEG kalitesi karşılaştırması.
Şekil 134. Başarısız test örneği.
scene_extensions
scene_extensions testleri, kamera uzantıları içindir ve test ortamının hassas kontrolünü gerektirdiğinden Camera ITS-in-a-Box kullanılmalıdır. Ayrıca, tüm ışık sızıntıları kontrol edilmelidir. Bunun için test düzeneğinin, test edilen cihazın ve tabletin bir örtüyle kapatılması ve test edilen cihazın ön ekranından ışık sızıntısının önlenmesi gerekebilir.
scene_hdr
scene_hdr sahnesi, solda bir portre ve sağda düşük kontrastlı bir QR kodundan oluşur.
Şekil 135. scene_hdr örneği.
test_hdr_extension
HDR uzantısını test eder. Uzantı etkinleştirilmiş ve etkinleştirilmemiş olarak ekran görüntüleri alır ve uzantının QR kodunu daha algılanabilir hale getirip getirmediğini kontrol eder.
Test edilen API'ler:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
Başarılı: HDR uzantısı, QR kodunu algılamak için gereken kontrast değişikliklerinin sayısını azaltır veya QR kodundaki gradyanı azaltır.
scene_low_light
scene_low_light sahnesi, siyah arka plan üzerinde farklı gri tonlarında karelerden oluşan bir ızgaradan oluşur ve karelerden oluşan ızgara kırmızı bir çerçeveyle sınırlanır. Kareler, Hilbert eğrisi yönünde düzenlenir.
Şekil 136. scene_low_light örneği.
test_night_extension
Gece uzantısını test eder. Uzantı etkinleştirilmiş olarak ekran görüntüleri alır ve aşağıdakileri yapar:
- 20 kare algılar
- Her kareyle sınırlanan parlaklığı hesaplar.
- Hilbert eğrisi ızgara yönüne göre ilk 6 karenin ortalama luma değerini hesaplar.
- Ardışık karelerin luma değerindeki farkı (ör. kare2 - kare1) 5 ve 6. karelere (kare6 - kare5) kadar hesaplar ve hesaplanan beş farkın ortalamasını bulur.
Android 16 veya sonraki sürümlerin yüklü olduğu cihazlarda yakalama isteği, karelerden oluşan ızgarayı sınırlayan dikdörtgene karşılık gelen ölçülü bir bölge içerir. Bu ekleme, eşik geçme ölçütlerini değiştirir.
Test edilen API'ler:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensionsandroid.hardware.camera2.CameraExtensionSession#capture
Kart:
- Android 16 veya sonraki sürümleri çalıştıran cihazlarda ilk 6 karenin ortalama luma değeri en az 80, 5 ve 6.karelere kadar olan ardışık karelerin luma değerindeki ortalama fark ise en az 18, 75 olmalıdır.
- Android 15 ve önceki sürümleri çalıştıran cihazlarda ilk 6 karenin ortalama luma değeri en az 85, 5 ve 6. karelere kadar olan ardışık karelerin luma değerindeki ortalama fark ise en az 17 olmalıdır.
Aşağıdaki parlaklık grafiğinde, başarılı bir test sonucunun nasıl göründüğü gösterilmektedir.
Şekil 137. Düşük ışıklı gece sahnesi testi başarılı örneği.
test_low_light_boost_extension
Düşük Işık Güçlendirme AE modunu test eder. Camera2, düşük ışık güçlendirmesi AE modunu destekliyorsa bu test Camera2 için gerçekleştirilir. Gece modu kamera uzantısı destekleniyorsa ve uzantı, düşük ışık güçlendirmesi AE modunu destekliyorsa bu test gece modu kamera uzantısı için de gerçekleştirilir. Bu test, AE modunu düşük ışıkta güçlendirme olarak ayarlar, önizlemeden bir kare alır ve aşağıdakileri yapar:
- 20 kutunun varlığını algılar
- Her kutuyla sınırlanan luma değerini hesaplar
- Hilbert eğrisi ızgara yönüne göre ilk 6 karenin ortalama luma değerini hesaplar.
- Ardışık karelerin luma değerindeki farkı (ör. kare2 - kare1) 5 ve 6. karelere (kare6 - kare5) kadar hesaplar ve hesaplanan beş farkın ortalamasını bulur.
Android 16 veya sonraki sürümlerin yüklü olduğu cihazlarda yakalama isteği, karelerden oluşan ızgarayı sınırlayan dikdörtgene karşılık gelen ölçülü bir bölge içerir. Bu ekleme, eşik geçme ölçütlerini değiştirir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_MODESandroid.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITYandroid.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
Kart:
Android 16 veya sonraki sürümleri çalıştıran cihazlarda ilk 6 karenin ortalama luma değeri en az 54, 5 ve 6. karelere kadar olan ardışık karelerin luma değerindeki ortalama fark ise en az 17 olmalıdır.
Android 15 ve önceki sürümleri çalıştıran cihazlarda ilk 6 karenin ortalama luma değeri en az 70, 5 ve 6. karelere kadar ardışık karelerin luma değerindeki ortalama fark en az 18 olmalıdır.
scene_tele
scene_tele testleri için temel şart, grafik mesafesinin en az telefoto lensin minimum odak mesafesi kadar olmasıdır. Bu minimum odak mesafesi cihazlar arasında farklılık gösterebileceğinden, kurulumunuzu belirli telefoto kameraya uyacak şekilde yapılandırmanız gerekir.
Şekil 138. Geniş ve telefoto kameranın odak mesafesine göre scene_tele kurulumu.
Test donanımı kurulumu hakkında daha fazla bilgi için Telefoto uzatma düzeneği kurulumu başlıklı makaleyi inceleyin.
scene6_tele
scene6_tele sahnesi, beyaz arka plan üzerinde ArUco işaretçilerinden oluşan bir ızgaradan oluşur.
scene6_tele çekimleri modüler düzenekte fazla pozlanmış görünüyorsa modüler düzeneğin ön plakasını çıkarın.
WFoV test düzeneğini uzatmadan ayırın ve telefon montaj aparatını çıkarın.
Şekil 139. WFoV test düzeneğini uzatmadan ayırın ve telefon montaj aparatını çıkarın.
Şekil 140. Ön plakayı çıkarın.
test_zoom_tele
Geniş lensten telefoto lense kadar kamera yakınlaştırma davranışını test eder. Bu test, test_zoom ile aynıdır ancak geniş lensten telefoto lense kadar kamera yakınlaştırma davranışını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Başarılı: Yakalanan ArUco işaretçisinin göreli boyutu, kameranın doğru şekilde yakınlaştırma yaptığını doğrulamak için istenen yakınlaştırma oranına göre doğru ve işaretçinin görüntü merkezine olan mesafesi, test_zoom bölümünde listelenen ölçütlere göre değişiyor.
test_preview_zoom_tele
Geniş lensten telefoto lense kadar önizleme kareleri için kamera yakınlaştırma davranışını test eder. Test, test_preview_zoom ile aynıdır ancak geniş lensten telefoto lense kadar önizleme kareleri için kamera yakınlaştırma davranışını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHSandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Başarılı: Yakalanan ArUco işaretçisinin göreceli boyutu, kameranın doğru şekilde yakınlaştırma yaptığını doğrulamak için istenen yakınlaştırma oranına göre doğru ve işaretçinin görüntü merkezine olan mesafesi, test_preview_zoom bölümünde listelenen ölçütlere göre değişiyor.
scene7_tele
scene7_tele, scene7 ile aynıdır ancak telefoto lens testi için ayarlanmıştır. Bu, her biri farklı bir renkle doldurulmuş dört eşit bölüme ayrılmış dikdörtgen bir çerçevedir. Dikdörtgenin ortasında, keskinlik kontrolleri için eğimli kenar grafiği bulunur. Dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanır. Bu işaretçiler, farklı yakınlaştırma oranlarında ana dikdörtgen çerçevesinin doğru koordinatlarını elde etmeye yardımcı olur.
test_multi_camera_switch_tele
Bu test, farklı yakınlaştırma oranlarında önizleme kaydı sırasında geniş (W) ve telefoto (tele) lensler arasında geçiş yapıldığında benzer RGB değerleri elde edildiğini doğrular.
Test, dinamik bir önizleme kaydı gerçekleştirmek ve fiziksel kameranın değiştiği noktayı belirlemek için önceden tanımlanmış aralıkta farklı yakınlaştırma oranları kullanır. Bu nokta, geniş açıdan telefoto lense geçişi gösterir.
Geçiş noktasında ve öncesinde yakalanan kareler AE, AWB ve AF için analiz edilir.
AE kontrolü, luma değişikliğinin hem W hem de telefoto lens görüntüleri için beklenen aralıkta olduğunu doğrular. AWB kontrolü, kırmızı-yeşil ve mavi-yeşil oranlarının hem W hem de tele lens görüntülerinde eşik değerleri içinde olduğunu doğrular. AF kontrolü, W ve telefoto lens görüntüleri arasındaki ortalama gradyan büyüklüğüne göre netlik tahmin değerini değerlendirir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
Başarılı: Testin başarılı olması için AE, AWB ve AF kontrollerinin tümünün başarılı olması gerekir. Her bir kontrolün ölçütleri şunlardır:
- AE kontrolü: Geniş ve telefoto lens görüntüleri arasındaki lüminans değişimi %4'ten az olmalıdır.
- AWB kontrolü: LAB renk alanında, geniş ve telefoto için kırmızı-yeşil ile mavi-yeşil arasındaki delta C 10'u aşamaz.
- AF kontrolü: Tele lensin görüntü keskinliği, W lensten daha yüksek olmalıdır.
scene_video
scene_video, beyaz arka plan üzerinde farklı kare hızlarında ileri geri hareket eden dört farklı renkli daireden oluşan bir video sahnesidir.
Şekil 141. scene_video örneği.
test_preview_frame_drop
İstenen önizleme kare hızının dinamik bir sahneyle korunduğunu test eder. Bu test, üçüncü taraf uygulamalara açık olan tüm kameralarda çalıştırılır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
Başarılı: Önizleme kare hızı, istenen kare hızı aralığının maksimum değerindedir ve ardışık kareler arasındaki ortalama varyasyon, testte ayarlanan göreceli toleranstan daha düşüktür.
2. nesil donanım / sensor_fusion tabanlı test sahneleri
feature_combination
feature_combination testleri, birden fazla kamera özelliği aynı anda etkinleştirildiğinde özelliklerin doğru şekilde çalıştığını doğrular. Bu testlerde, sensör füzyon sahnesinde kullanılan dama tahtası resmi kullanılır.
test_feature_combination
Kamera cihazı tarafından desteklenen farklı akış kombinasyonları, video sarsıntı önleme modu, hedef FPS aralığı, 10 bit HDR video ve Ultra HDR'nin tüm kombinasyonlarını test eder.
Android 16 ve sonraki sürümlerde test, desteklenen özelliklerin tüm kombinasyonlarını çalıştırır ve sonuçları bir proto dosyasına kaydeder. Başarısızlık iddiaları, yalnızca isSessionConfigurationSupported işlevinin True döndürdüğü özellik kombinasyonları için çağrılır.
Test edilen API'ler:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupportedandroid.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
Başarılı: Desteklenen her özellik kombinasyonu için:
- Önizleme sabitleme özelliği açıksa önizleme akışı sabitlenir.
- Önizleme kare hızı, yapılandırılan
AE_TARGET_FPS_RANGEaralığında. - Kaydedilen önizleme akışının renk alanı, ayarlananla eşleşir.
- Ultra HDR çekimde geçerli bir kazanç haritası vardır.
scene_flash
scene_flash testleri için sensör füzyon kutusunda karanlık bir sahne gerekir.
Android 17 ve sonraki sürümlerde scene_flash testi, Gen2 düzeneği kullanılarak yapılabilir.
test_auto_flash
Arka ve ön kameralar için karanlık bir sahnede otomatik flaşın tetiklenip tetiklenmediğini test eder. Ön kameralarda otomatik flaş, sahneyi aydınlatmak için fiziksel bir flaş birimi yerine ekranı kullanır. Test, otomatik flaş etkinleştirildiğinde karo görüntüsünün merkezinin daha parlak olduğunu kontrol ederek otomatik flaşın patladığını doğrular. Otomatik flaşı tetiklemek için test düzeneğindeki ışıklar kapatılmalıdır. Işıklar, Arduino denetleyiciyle otomatik olarak kapatılabilir. Testin doğru çalışması için ortamın tamamen karanlık olması gerekir. Testten önce cihaza Jetpack Camera uygulaması (JCA) yüklenmelidir. Arka kameralar için otomatik flaş, AE durumunun tetiklenmesine bağlıdır ancak ön kameralar için otomatik flaş, AE'ye bağlı değildir ve her zaman tetiklenir.
Android 17 ve sonraki sürümlerde, desteklenen tüm yakınlaştırma aralıklarında doğru işlevselliği doğrulamak için 1x olmayan yakınlaştırma seviyelerini test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGERandroid.hardware.camera2.CaptureResult#CONTROL_AE_STATEandroid.hardware.camera2.CaptureRequest#FLASH_MODE
Başarılı: Otomatik flaşın etkin olduğu karo görüntüsünün merkezi, tüm kameralar için orijinal sahne görüntüsünden daha parlaktır.
test_flash_strength
SINGLE modunda flaş gücü kontrolünün doğru şekilde uygulanıp uygulanmadığını test eder.
Cihaz, SINGLE modunda kamera kullanımı sırasında flaş gücü kontrolünü destekliyorsa flaş gücünün, istenen farklı güç seviyelerine göre değiştiğini doğrular. Flaş gücü kontrolünün farklı AE_MODES ile çalıştığını doğrular.
Örneğin, otomatik pozlama modu ON veya OFF ise flaş gücü seviyesi parlaklığı etkiler. Mod ON_AUTO_FLASH ise flaş gücü seviyesinin parlaklık üzerinde etkisi olmaz.
Testi gerçekleştirmek için test düzeneğindeki ışıkların kapatılması gerekir. Işıklar, Arduino denetleyiciyle otomatik olarak kapatılabilir. Testin doğru şekilde çalışması için sahnenin tamamen karanlık olması gerekir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
Kart:
Otomatik pozlama modu ON veya OFF olduğunda, flaş gücü seviyesi flaşsızdan FLASH_SINGLE_STRENGTH_MAX_LEVEL'ya yükseldikçe görüntü parçalarının parlaklığı artar.
Otomatik pozlama modu ON_AUTO_FLASH olduğunda, flaş gücü seviyesi flaşsızdan FLASH_SINGLE_STRENGTH_MAX_LEVEL seviyesine yükseldikçe görüntü parçalarının parlaklığındaki fark tolerans dahilinde olur.
test_led_snapshot
LED anlık görüntülerinin görüntüyü doygunlaştırmadığını veya renklendirmediğini test eder.
Bu test, ışıkları kontrol etmek için Sensor Fusion Box'a bir ışık denetleyicisi ekler. Işıklar OFF olarak ayarlandığında test, AUTO_FLASH modu ON olarak ayarlanmış şekilde bir çekim yapar. Bu çekim sırasında test, aePrecapture tetikleyicisi START olarak ayarlanmış bir ön çekim dizisi çalıştırır ve flaşla çekim yapmak için çekim amacını Preview olarak ayarlar.
Çekimde flaş nedeniyle belirgin bir parlama noktası olduğundan test, tüm çekimin flaşlı görüntü ortalamasını hesaplar ve değerin (68, 102) aralığında olup olmadığını doğrular. Test, görüntünün beyaz dengesinin makul olup olmadığını kontrol etmek için kırmızı-yeşil ve mavi-yeşil oranlarını hesaplar ve oranların 0,95 ile 1,05 arasında olup olmadığını doğrular.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#FLASH_MODE
Başarılı: Kırmızı-yeşil ve mavi-yeşil oranları 0,95 ile 1,05 arasındadır. Flaşlı görüntü ortalaması (68, 102) aralığında.
test_night_mode_indicator
Kameranın düşük ışık koşullarında çalışıp çalışmadığını ve gece modu kamera uzantısı fotoğraf çekiminden yararlanıp yararlanmayacağını gösteren gece modu göstergesinin işlevini test eder. Bu özellik yalnızca Gece Modu Kamera uzantılarını destekleyen cihazlarda kullanılabilir.
Bu test, gece modu göstergesinin kamera önizlemesi sırasında ışık koşullarını doğru şekilde yansıtıp yansıtmadığını kontrol eder. Testte aşağıdaki adımlar uygulanır:
- Başlatma: Test, bir
ItsSessionbaşlatır ve kamera özelliklerini alır. Ayrıca aydınlatma kontrolörüyle 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,
Camera2oturumu kullanarak bir önizleme yakalama oturumu başlatır. - Işık açılır ve bir önizleme karesi yakalanır.
- Test, gece modu göstergesinin
OFFdurumunda olduğunu doğrular. - Işık kapatılır ve bir önizleme karesi yakalanır.
- Test, gece modu göstergesinin
ONdurumunda olduğunu doğrular.
- Test,
- Kamera uzantısı oturumu:
- Test,
Camera2oturumuyla aynı prosedürü tekrarlar ancakEXTENSION_NIGHTuzantısına sahip birCameraExtensionoturumu kullanır.
- Test,
- Temizleme: Test,
ItsSessionnesnesini kapatır ve aydınlatma denetleyicisini serbest bırakır.
Test edilen API'ler:
Kart:
- Işık açıkken gece modu göstergesi
OFFdurumunda olmalıdır. - Işık kapalıyken gece modu göstergesi
ONdurumunda olmalıdır. - Hem
Camera2hem deCameraExtensionoturumları için geçerlidir.
test_preview_min_frame_rate
Önizleme kare hızının karanlık bir sahnede doğru şekilde azalıp azalmadığını test eder. Bu testin doğru şekilde çalışması için test düzeneğindeki ışıkların kontrolör tarafından veya test operatörü tarafından manuel olarak kapatılması gerekir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGESandroid.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGEandroid.media.CamcorderProfileandroid.media.MediaRecorder
Başarılı: Önizleme kare hızı, istenen kare hızı aralığının minimum değerindedir ve kareler arasındaki varyasyon, testte ayarlanan mutlak toleranstan daha azdır.
test_torch_strength
TORCH modunda flaş gücü kontrolünün doğru şekilde uygulanıp uygulanmadığını test eder.
Cihaz, TORCH modunda kamera kullanımı sırasında flaş gücü kontrolünü destekliyorsa fener gücünün farklı istenen güç seviyelerine göre değiştiğini doğrular. Flaş gücü kontrolünün farklı AE_MODES ile çalıştığını doğrular.
Örneğin, otomatik pozlama modu ON veya OFF ise flaş gücü seviyesi parlaklığı etkiler. Mod ON_AUTO_FLASH ise flaş gücü seviyesinin parlaklık üzerinde etkisi olmaz.
Video çekim oturumunu simüle ederek seri çekim süresi boyunca fener gücünün aynı kaldığını doğrular. Testi gerçekleştirmek için test düzeneğindeki ışıkların kapatılması gerekir. Işıklar, Arduino denetleyiciyle otomatik olarak kapatılabilir. Testin doğru çalışması için ortamın tamamen karanlık olması gerekir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVELandroid.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
Kart:
Otomatik pozlama modu ON veya OFF olduğunda, flaş gücü seviyesi flaşsızdan FLASH_TORCH_STRENGTH_MAX_LEVEL seviyesine yükseldikçe görüntü patlaması yamalarının parlaklığı artar.
Otomatik pozlama modu ON_AUTO_FLASH olduğunda, flaş gücü seviyesi flaşsızdan FLASH_TORCH_STRENGTH_MAX_LEVEL seviyesine yükseldikçe görüntü seri çekim parçalarının parlaklığındaki fark tolerans dahilinde olur.
scene_gen2_chart
Android 17 ve sonraki sürümlerde scene_gen2_chart, Gen2 kağıt grafiğini kullanır.
Bu test çizelgesi; yüz örnekleri, QR kodu, gri tonlamalı yamalar, Siemens yıldızı, renk çizelgesi ve eğik karelerden oluşur.
Şekil 142. Gen2 grafik örneği.
test_tonemap_sequence
Bu test, bir cihazın varsayılan ton eşleme eğrisini doğrusal bir eğri ve iki üstel eğriye (biri tek tip noktalara, diğeri tek tip olmayan noktalara sahip) göre değerlendirir. Başarılı bir sonuç için varsayılan eğrinin parlaklığı, doğrusal ve üstel eğrilerin parlaklığından daha yüksek olmalıdır. Ayrıca doğrusal eğri, üstel eğrilerden daha parlak olmalı ve iki üstel eğri benzer parlaklık seviyelerine sahip olmalıdır.
Test, cihazın varsayılan eğrisinin doğruluğunu da kontrol eder. Bu işlem, varsayılan eğriyi çıkarıp yeniden girerek ve ardından elde edilen görüntünün parlaklığını orijinal varsayılan eğrinin görüntüsüyle karşılaştırarak yapılır.
Şekil 143. Ton eşleme dizisi grafiğini test edin.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_CONTRAST_CURVEandroid.hardware.camera2.CameraMetadata#TONEMAP_MODE_FASTandroid.hardware.camera2.CaptureRequest#TONEMAP_CURVEandroid.hardware.camera2.CaptureRequest#TONEMAP_MODE
Başarılı: Varsayılan ve doğrusal eğriler arasındaki parlaklık farkı %15'ten fazla, iki üstel eğri arasındaki fark ise %8'den azdır.
test_multi_camera_switch
Bu test, dinamik yakınlaştırma geçişleri sırasında renk ve pozlama tutarlılığını doğrular. Önizleme kaydı sırasında ultra geniş (UW) ve geniş (W) lensler arasında geçiş yapıldığında neredeyse aynı CIELAB değerlerinin korunduğunu ve kullanıcı deneyiminde görünür değişikliklerin önlendiğini doğrular.
Test, önceden tanımlanmış bir yakınlaştırma aralığında dinamik bir önizleme kaydı gerçekleştirerek fiziksel kamera "geçiş" noktasını tetikler. Bu noktada ultra geniş lens, geniş lense geçer. Test, lens geçişinin gerçekleştiği tam kareyi belirler. Bu geçiş noktasından hemen önceki ve sonraki kareler yakalanır ve otomatik pozlama (AE) ile otomatik beyaz dengesi (AWB) açısından kararlılıkları analiz edilir.
AE kontrolü, lens geçişi sırasında Luma dalgalanmalarının kabul edilebilir bir aralıkta kaldığını doğrular. AWB kontrolü, kırmızı-yeşil ve mavi-yeşil oranlarının tanımlanmış renk nötrlüğü eşikleri içinde kaldığını doğrular.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.media.CamcorderProfileandroid.media.MediaRecorder
Başarılı: Testin başarılı olması için aşağıdaki AE ve AWB kontrollerinin başarılı olması gerekir:
- AE kontrolü: Cihaz hem
ae_regionshem deawb_regionsdeğerini destekliyorsa UW ve W lens görüntüleri arasındaki luma değişimi (Y değeri), tüm renk yamaları için% 4'ten az olmalıdır. Yalnızcaae_regionsdestekleniyorsa yalnızca gri renkli yama değerleri ölçütleri karşılamalıdır. - AWB kontrolü: Cihaz hem
ae_regionshem deawb_regionsdeğerini destekliyorsa UW ve W lens görüntülerinin kırmızı-yeşil ve mavi-yeşil değerleri arasındaki fark, gri renk yaması için% 3'ten, diğer renk yamaları için% 10'dan az olmalıdır.
Şekil 144. UW lens ile çekilmiş gri yama.
Şekil 145. Geniş lensle çekilmiş gri yama.
scene_ip
Android 16 ve sonraki sürümlerde sahne scene_ip, varsayılan kamera uygulaması ile Jetpack Kamera Uygulaması (JCA) arasında görüntü eşliği kontrolleri yaparak çekilen görüntüler arasındaki önemli farkları tespit eder. JCA, sosyal medya uygulaması çekimlerini kopyalar ve sosyal medya uygulamalarının daha sonra işleyip hassaslaştırdığı bir temel görüntü sağlar.
Donanım kurulumu koşulları
scene_ip testleri için aşağıdaki donanım kurulumu gereklidir:
- Testler, 2. nesil kamera ITS-in-a-box'ta yürütülür.
- Gen2 düzeneğinin bir parçası olan aydınlatma ve servo denetleyiciler, test ortamını kontrol etmek için kullanılır.
- Gen2 donanımının içine bir test özelliği grafiği yerleştirilir.
Şekil 146. Gen2chart_sample örneği.
Test atlama ölçütleri
Aşağıdaki ölçütlerden herhangi biri karşılanırsa scene_ip testleri atlanır:
- Cihazın ilk API düzeyi (
first_api_level) 35 veya daha düşük. - Cihaz, ön ve arka birincil kamera cihazları olan bir telefon cihazı değildir (örneğin, tablet veya TV).
test_default_jca_ip
Varsayılan kamera uygulamasını ve JCA'yı kullanarak kontrollü ışıklandırma koşullarında test özelliği grafiğinin görüntülerini yakalar ve aşağıdaki kontrolleri gerçekleştirir:
FoV: Varsayılan kamera uygulaması ve JCA çekimlerinin aynı FoV'ye sahip olup olmadığını kontrol eder. Bu kontrolde, yakalanan grafik resminden çıkarılan merkez QR kodu özelliği kullanılır.
Parlaklık: Varsayılan kamera uygulaması ile JCA arasında ölçülen parlaklık farkının 10'u aşmadığını kontrol eder. Bu kontrolde, parlaklık ölçümü için dinamik aralık yaması kullanılır.
Beyaz dengesi: Varsayılan kamera uygulaması ile JCA arasındaki beyaz dengesi farkının 4'ü aşmadığını kontrol eder. Bu kontrolde, parlaklık ölçümü için dinamik aralık yaması kullanılır.
Renk oluşturma: Varsayılan kamera uygulaması ile JCA arasındaki renk oluşturma farkının 6'yı aşmadığını kontrol eder.
Başarılı: Test; FoV, parlaklık ve beyaz dengesi kontrollerini geçer. Android 16'da bu test zorunlu değildir (NOT_YET_MANDATED). Android 17 ve sonraki sürümlerde FoV, parlaklık ve beyaz dengesi eşitlik kontrolleri zorunludur. Android 17'de renk oluşturma kontrolü zorunlu değildir (NOT_YET_MANDATED).
test_jca_jpegr_ip
JPEG_R JCA önizleme anlık görüntüsü ile çekilen görüntüler arasındaki beyaz dengesi farkının 4'ü aşmadığını doğrular.
Test edilen API'ler:
Başarılı: JCA önizleme anlık görüntüsü ile çekilen JPEG_R görüntüsü arasındaki beyaz dengesi farkı, eşik değerinin (varsayılan değer 4'tür) içindedir.
sensor_fusion
Sensör füzyon testleri, telefonun dama tahtası deseni ve ArUco işaretçilerinin önünde belirli bir şekilde hareket ettirilmesini gerektirir. En iyi sonuçlar için test grafiğinin düz bir şekilde monte edildiğinden emin olun. Düz olmayan grafikler, testlerin çoğu için rotasyon hesaplamalarını etkiler. Çizelge, 17x17 inç boyutunda yazdırılarak sensör füzyon kutusunun arkasını doldurmalıdır. (43x43 cm). sensor_fusion testleri, Sensor Fusion Box ile otomatikleştirilebilir.
Şekil 147. Sensör füzyon grafiği.
Şekil 148. Sensör füzyon kutusunun arkasını dolduran sensör füzyon grafiği.
test_lens_intrinsic_calibration
Lensin optik merkezinin, optik görüntü sabitleme (OIS) nedeniyle lens hareket ettiğinde değişip değişmediğini test eder. Lens iç örnekleri destekleniyorsa lens OIS nedeniyle hareket ettiğinde lens iç örneklerinin optik merkezinin değiştiğini test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATIONandroid.media.MediaRecorderandroid.media.CamcorderProfile
Başarılı: Lensin optik merkezi 1 piksel veya daha fazla değişir. Lens iç örnekleri destekleniyorsa lens iç örneklerinin optik merkezleri 1 piksel veya daha fazla değişir.
Aşağıdaki şekilde, her kare için piksel cinsinden ana nokta değişikliklerini gösteren örnek bir test_lens_intrinsic_calibration grafiği verilmiştir:
Şekil 149. Her kare için piksel cinsinden ana noktaların değişikliklerini gösteren test_lens_intrinsic_calibration grafiği örneği.
test_multi_camera_frame_sync
Mantıksal kamera tarafından yakalanan kare zaman damgalarının, zaman damgasını belirlemek için dama tahtasındaki karelerin açılarını hesaplayarak 10 ms içinde olup olmadığını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPEandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERAandroid.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
Başarılı: Telefon döndürüldüğünde her kameradan alınan görüntüler arasındaki açı önemli ölçüde değişmiyor.
test_preview_distortion
Çeşitli yakınlaştırma seviyelerinde çekilen her önizleme karesinde bozulmanın düzeltilip düzeltilmediğini test eder. Test, her önizleme karesi için kameranın iç ve dış özelliklerine göre ideal noktaları hesaplar.
Örnek resimde ideal puanlar yeşil, gerçek puanlar ise kırmızı renkle gösterilmiştir. Bozulma hatası, gerçek noktalar ile ideal noktalar arasındaki RMS piksel mesafesine göre hesaplanır. Resimdeki yeşil ve kırmızı vurgular, bozulma hatasının olduğu alanı görsel olarak tespit etmek için kullanılır.
Şekil 150. İdeal noktaların yeşil, gerçek noktaların kırmızı olduğu dama tahtası resmi.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGEandroid.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIOandroid.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()android.media.CamcorderProfileandroid.media.MediaRecorder
Başarılı: Her önizleme karesinin normalleştirilmiş bozulma hatası, testte ayarlanan eşikten daha düşüktür.
test_preview_stabilization
Sabitlenmiş önizleme videosunun jiroskoptan daha az döndüğünü gösteren testler.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
Başarılı: Kareler üzerindeki maksimum açı dönüşü, jiroskop dönüşünün% 70'inden azdır.
Aşağıda, stabilizasyon uygulanmış ve uygulanmamış örnek videolar verilmiştir:
Şekil 151. Sabitleme özelliğinin kullanıldığı örnek video.
Şekil 152. Sabitleme özelliği kullanılmayan örnek video.
test_sensor_fusion
AR ve VR uygulamaları için kamera ile jiroskop arasındaki zaman damgası farkını test eder. Telefon, dama tahtası deseninin önünde 10 kez 90 derece döndürülür. Hareket yaklaşık 2 saniye gidiş dönüş süresine sahiptir. Jiroskop yoksa veya zaman damgası kaynağı REALTIME parametresi etkinleştirilmemişse bu test atlanır.
test_sensor_fusion testi, bir dizi grafik oluşturur. Hata ayıklama için en önemli iki grafik şunlardır:
test_sensor_fusion_gyro_events: Test sırasında telefonun jiroskop etkinliklerini gösterir. X ve Y yönündeki hareket, telefonun montaj plakasına güvenli bir şekilde monte edilmediğini gösterir ve testin geçme olasılığını azaltır. Grafikteki döngü sayısı, kareleri kaydetme sırasındaki yazma hızına bağlıdır.
Şekil 153. test_sensor_fusion jiroskop etkinlikleri örneği.
test_sensor_fusion_plot_rotations: Jiroskop ve kamera etkinliklerinin hizalamasını gösterir. Bu grafikte, kamera ile jiroskop arasındaki hareketin +/-1 ms'ye kadar eşleştiği gösterilmelidir.
Şekil 154. test_sensor_fusion çizim rotasyonları örneği.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LENS_FACINGandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIMEandroid.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGEandroid.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATIONandroid.hardware.camera2.CaptureResult#SENSOR_TIMESTAMPandroid.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Başarılı: Kamera ve jiroskop zaman damgalarının ofseti, CDD'deki 7.3.9 Yüksek Doğruluklu Sensörler uyarınca 1 ms'den azdır.
Başarısızlık mekanizmaları:
- Ofset hatası: Kamera-jiroskop ofseti +/-1 ms içinde doğru şekilde kalibre edilmemiş.
- Kare düşüşleri: Ardışık 200 kareyi yakalamak için ardışık düzen yeterince hızlı değil.
- Soket hataları:
adb, testi yürütmek için yeterli süre boyunca DUT'ye güvenilir bir şekilde bağlanamıyor. - Grafik düz bir şekilde monte edilmemiş.
test_sensor_fusion_plot_rotationsgrafiğinde, kamera grafiğin düz olmayan kısımlarında dönerken jiroskop ve kamera dönüşünün önemli ölçüde farklılık gösterdiği kareler var. - Kamera düz bir şekilde monte edilmemiş. Grafik
test_sensor_fusion_gyro_events, X ve Y düzlemlerindeki hareketi gösterir. Arka kameranın genellikle telefon gövdesinin geri kalanına göre çıkıntılı olması, telefonun arka tarafını montaj plakasına monte ederken eğim oluşturur. Bu nedenle, bu hata ön kameralarda daha yaygındır.
test_video_stabilization
Desteği sonlandırıldı: Bu testin desteği Android 17'den itibaren sonlandırılmıştır. Android 17 ve sonraki sürümlerde bu testin yerini test_video_stabilization_jca alır.
Stabilize edilen videonun jiroskoptan daha az döndüğünü test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.MediaRecorderandroid.media.CamcorderProfile
Başarılı: Kareler üzerindeki maksimum açı dönüşü, jiroskop dönüşünün% 60'ından azdır.
Aşağıda, stabilizasyonun uygulandığı ve uygulanmadığı örnek videolar verilmiştir.
Şekil 155. Sabitleme özelliğinin kullanıldığı örnek video.
Şekil 156. Sabitleme özelliği kullanılmayan örnek video.
test_video_stabilization_jca
JCA kullanılarak çekilen sabitlenmiş videonun jiroskoptan daha az döndüğünü test eder. Testten önce JCA'nın cihaza yüklenmesi gerekir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASESandroid.media.CamcorderProfileandroid.media.MediaRecorder
Başarılı: JCA kullanılarak çekilen videodan çıkarılan karelerdeki maksimum açı dönüşü, jiroskop dönüşlerinin% 70'inden azdır. 4).
Difüzör tabanlı test sahnesi
scene5
scene5 için eşit şekilde aydınlatılmış gri bir sahne gerekir. Bu, kamera lensinin üzerine yerleştirilen bir difüzörle sağlanır. Aşağıdaki difüzörü kullanmanızı öneririz:
http://www.edmundoptics.com/optics/windows-diffusers/optical-diffusers/opal-diffusing-glass/46168/.
Sahneyi hazırlamak için kameranın önüne bir difüzör takın ve kamerayı yaklaşık 2.000 lüks değerinde bir ışık kaynağına doğrultun. scene5 için çekilen resimlerde, belirgin özellikler içermeyen dağınık ışık kullanılmalıdır. Aşağıda örnek bir resim verilmiştir:
Şekil 157. scene5 yakalama örneği.
Bu sahne için tablet veya kumanda gerekmediğinden testlerde TEST_BED_MANUAL test ortamı kullanılır. Örnek için Manuel test config.yml dosyası başlıklı makaleyi inceleyin.
Varsayılan config.yml dosyası TEST_BED_MANUAL içermez ancak dosyayı bir tane içerecek şekilde değiştirebilirsiniz.
test_lens_shading_and_color_uniformity
Lens gölgeleme düzeltmesinin doğru şekilde uygulandığını ve tek renkli, tek tip bir sahnenin renginin eşit şekilde dağıtıldığını test eder. Bu testi, otomatik 3A özellikli bir YUV karesinde gerçekleştirir. Lens gölgeleme, y kanalına göre değerlendirilir. Belirtilen her örnek blok için ortalama y değerini ölçer ve merkez y değeriyle karşılaştırarak başarılı veya başarısız olduğunu belirler. Renk bütünlüğü testi, kırmızı-yeşil ve mavi-yeşil uzayda değerlendirilir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODEandroid.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Başarılı: Testi geçmek için resmin belirtilen yarıçapında kırmızı-yeşil ve mavi-yeşil değerinin varyansı% 20'den az olmalıdır.
Başarısızlık mekanizmaları:
- Resimlerde aşırı vinyet etkisi
- Resimlerde siyah kenarlık yapaylıkları
Şekil 158. test_lens_shading_and_color_uniformity_y_plane.
Şekil 159. test_lens_shading_and_color_uniformity_color_uniformity.
Şekil 160. test_lens_shading_and_color_uniformity_lens_shading_result.
Geniş gamutlu tablet tabanlı test sahnesi
scene_wide_gamut
scene_wide_gamut, her biri farklı bir renkle doldurulmuş dört eşit kadrana bölünmüş dikdörtgen bir çerçevedir. Bu işlem için tabletin grafiği geniş gamutlu olarak göstermesi ve test edilen cihazın ekranın geniş gamutlu bir fotoğrafını çekmesi gerekir.
Bu testler, çekilen görüntünün doğru renk profiline ve renk aralığına uygun olduğunu doğrular.
test_display_p3
ColorSpaceProfiles API'sini kullanarak JPEG'de Display P3 yakalamayı test eder. Yakalanan JPEG'in başlığında uygun bir ICC profili olup olmadığını ve görüntünün sRGB gamı dışında belirli bir renk yüzdesi içerip içermediğini test eder.
Test edilen API'ler:
android.hardware.camera2.params.ColorSpaceProfilesandroid.hardware.camera2.params.SessionConfiguration#setColorSpace
Başarılı: JPEG, Display P3 ICC profili ve sRGB gamutunun dışında %1'den fazla renk içeriyor.
Şekil 161. test_display_p3 örneği.