Bu sayfada, Android Uyumluluk Test Paketi (CTS) Doğrulayıcı'nın bir parçası olan Kamera Görüntüsü Test Paketi (ITS) kapsamındaki testlerin kapsamlı bir listesi verilmektedir. ITS testleri işlevsel testlerdir. Bu nedenle, görüntü kalitesini ölçmez ancak reklamı yapılan tüm kamera işlevlerinin beklendiği gibi çalıştığını gösterir. Bu belge, geliştiricilerin ve test uzmanlarının tek tek testlerin ne yaptığını ve test hatalarında nasıl hata ayıklama yapacaklarını anlamalarını sağlar.
Kamera ITS, testleri gerekli kamera özellikleri, API düzeyi ve medya performans sınıfı (MPC) düzeyine göre filtreler. ITS, API düzeyi için belirli bir API düzeyinde eklenen ve daha düşük API düzeylerindeki işlevlerde olumsuz kullanıcı deneyimlerini test eden testleri sınırlamak amacıyla ro.product.first_api_level
kullanır. ITS, belirli bir API düzeyinde eklenen ve yeni donanım özelliği gerektiren özelliklerin testlerini kontrol etmek 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 şekilde gruplandırılır:
scene0
: Meta verileri, titreşimi, jiroskopu, titreşimi yakalamascene1
: Pozlama, hassasiyet, pozlama değeri (EV) telafisi, YUV ve JPEG ile RAWscene2
: Yüz algılama, renkli sahneler gerektiren testlerscene3
: Kenar geliştirme, lens hareketiscene4
: En-boy oranı, kırpma, görüş alanıscene5
: Lens gölgelendirmesiscene6
: Yakınlaştırmascene7
: Çoklu kamera anahtarıscene8
: Otomatik pozlama (AE) ve otomatik beyaz dengesi (AWB) bölge ölçümüscene9
: JPEG sıkıştırmasıscene_extensions
: Kamera uzantılarıscene_tele
: Telefoto lens değiştirmescene_flash
: Otomatik flaş, minimum kare hızıscene_video
: Kare düşmelerisensor_fusion
: Kamera ve jiroskop zamanlama farkıfeature_combination
: Özellik kombinasyonlarıscene_ip
: Varsayılan kamera uygulaması ile Jetpack Kamera Uygulaması (JCA) arasında görüntü eşliği
Her sahnenin açıklaması için ilgili bölüme bakın.
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 titremeyi ölçer.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
Geçti: Kareler arasında en az 30 ms fark vardır.
Aşağıdaki şekilde, küçük y ekseni aralığına dikkat edin. Bu grafikteki titreme aslında küçüktür.
Şekil 1. test_jitter grafiği.
test_metadata
Meta veri girişlerinin geçerliliğini, çekim sonuçlarına ve kamera özellikleri nesnelerine bakarak 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.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL
android.hardware.camera2.CameraCharacteristics#SCALER_CROPPING_TYPE
android.hardware.camera2.CameraCharacteristics#SENSOR_BLACK_LEVEL_PATTERN
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Geçti: Donanım düzeyi, rollingShutterSkew
, frameDuration
etiketleri,
timestampSource
, croppingType
, blackLevelPattern
, pixel_pitch
,
görüş alanı (FoV) ve hiperfokal mesafe mevcut ve geçerli değerlere sahip.
test_request_capture_match
Cihazın, çekim meta verilerini geri okuyarak doğru pozlama ve kazanç değerlerini yazdığını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_EXPOSURE_TIME_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
Geçti: İstek ve yakalama meta veri değerleri tüm çekimlerde eşleşiyor.
test_sensor_events
Sensör füzyonu desteği reklamı yapan cihazlarda bu test, cihazın sensör etkinliklerini sorgulayıp yazdırdığını kontrol eder. Beklenen sensörler; ivme ölçer, jiroskop ve manyetometredir. Bu test yalnızca ekran açıkken (cihaz bekleme modunda değilken) çalışır.
Test edilen API'ler:
Geçti: Her sensörün etkinlikleri alınır.
test_solid_color_test_pattern
Kamera kapatma için düz renkli test desenlerinin düzgün şekilde oluşturulduğunu test eder. Kameranın sessize alınması destekleniyorsa düz renkli test desenleri desteklenmelidir. Kameranın sesi kapatma özelliği desteklenmiyorsa düz renkli test desenleri yalnızca bu özellik reklamı yapılıyorsa test edilir.
Ham görüntüler destekleniyorsa renk atama da test edilir. Test edilen renkler siyah, beyaz, kırmızı, mavi ve yeşildir. Ham görüntüleri desteklemeyen kameralarda yalnızca siyah renk test edilir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Geçti: Desteklenen sabit test desenleri doğru renktedir ve görüntüde düşük varyans vardır.
test_test_pattern
Her geçerli test deseni için kareleri yakalamak üzere android.sensor.testPatternMode
parametresini test eder ve karelerin düz renkler ve renk çubukları için doğru şekilde oluşturulduğunu kontrol eder. Bu test aşağıdaki adımları içerir:
- Desteklenen tüm test desenleri için resimler yakalar.
- Düz renkli test deseni ve renk çubukları için doğruluk kontrolü gerçekleştirir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Geçti: Desteklenen test kalıpları doğru şekilde oluşturuluyor.
Şekil 2. test_test_patterns örneği.
test_tonemap_curve
Test deseninin doğrusal ton eşleme ile hamdan YUV'ye dönüştürülmesini test eder. Bu test, ton eşleme dönüşümü için mükemmel bir görüntü deseni oluşturmak üzere android.sensor.testPatternMode = 2
(COLOR_BARS
) gerektirir. Ardışık düzenin, doğrusal ton eşleme ve ideal görüntü girişiyle uygun renk çıkışlarına sahip olduğunu doğrular (test_test_patterns
'ya bağlıdır).
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_TEST_PATTERN_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Geçti: YUV ve RAW birbirine benziyor.
Şekil 3. test_tonemap_curve ham örneği.
Şekil 4. test_tonemap_curve YUV örneği.
test_unified_timestamp
Resim ve hareket sensörü etkinliklerinin aynı zaman alanında olup olmadığını test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.hardware.Sensor#TYPE_GYROSCOPE
Geçti: Hareket zaman damgaları, iki resim zaman damgası arasındadır.
test_vibration_restriction
Cihazın titreşiminin beklendiği gibi çalışıp çalışmadığını test eder.
Test edilen API'ler:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_ACCELEROMETER
android.os.Vibrator
android.hardware.camera2.CameraDevice#setCameraAudioRestriction
Geçti: Cihaz, kamera ses kısıtlama API'si tarafından kapatıldığında titreşmiyor.
scene1_1
scene1
gri bir grafiktir. Gri grafik, kameranın görüş alanının ortadaki% 30'unu kaplamalıdır. Merkez bölgede özellik bulunmadığından gri grafiğin 3A'ya (AE, AWB ve AF) orta düzeyde meydan okuması beklenir.
Ancak yakalama isteği, 3A'nın yakınlaşması için yeterli özellikler içeren tüm sahneyi belirtir.
RFoV kameralar, WFoV veya RFoV test düzeneğinde test edilebilir. Bir RFoV kamerası WFoV test düzeneğinde test edilirse 3A'nın yakınlaşmasına yardımcı olmak için FoV'daki gri grafik için bazı sınırlar belirtmek üzere grafik 2/3 oranında ölçeklendirilir. Kamera test düzeneği hakkında daha ayrıntılı açıklamalar için Camera ITS-in-a-box başlıklı makaleyi inceleyin.
5.şekil 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 ön yakalama tetikleyicisi var. AE devre dışı olduğundan bu tetikleyici yoksayılmalıdır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
Geçti: AE birleşiyor.
test_auto_vs_manual
Otomatik ve manuel çekimlerin yapıldığı testler aynı görünüyor.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Geçti: Her yakalama sonucunda bildirilen manuel beyaz dengesi kazançları ve dönüşümleri, kameranın 3A algoritmasındaki otomatik beyaz dengesiyle estimate
eşleşiyor.
Şekil 6. test_auto_vs_manual otomatik örnek.
Şekil 7. Otomatik ve manuel beyaz dengesi karşılaştırması örneği.
Şekil 8. test_auto_vs_manual manuel beyaz dengesi dönüştürme örneği.
test_black_white
Cihazın tamamen siyah beyaz görüntüler oluşturup oluşturmadığını test eder. İki çekim yapar. İlk çekimde kazanç son derece düşük ve pozlama kısa olduğundan siyah bir fotoğraf elde edilir. İkinci çekimde ise kazanç son derece yüksek ve pozlama uzun olduğundan beyaz bir fotoğraf elde edilir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Geçti: Siyah beyaz görüntüler üretir. Beyaz resimlerin doygun kanalları, %1'den az hata payıyla [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, plot means example.
test_burst_capture
Tüm yakalama hattının, tam boyutlu yakalama ve CPU süresinin hızına ayak uydurabildiğini doğrular.
Test edilen API'ler:
Geçti: Tam boyutlu görüntülerin patlamasını yakalar, kare düşmelerini ve görüntü parlaklığını kontrol eder.
test_burst_sameness_manual
Manuel çekim ayarıyla 50 görüntülük 5 çekim yapar ve tüm görüntülerin aynı olduğunu kontrol eder. Bu testi, farklı şekilde işlenen veya yapaylıklar içeren aralıklı kareler olup olmadığını belirlemek için kullanın.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
Başarılı: Resimler görsel olarak ve RGB değerleri açısından aynıdır.
Başarısız: Her patlamanın başında RGB ortalama grafiğinde ani bir yükseliş veya düşüş gösteriliyor.
first_API_level
< 30 için tolerans% 3'tür.first_API_level
>= 30 için tolerans% 2'dir.
Şekil 12. test_burst_sameness_manual ortalama örneği.
Şekil 13. test_burst_sameness_manual_plot_means
test_crop_region_raw
RAW akışlarının kırpılamadığını test edin.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Geçti: YUV resimler ortadan kırpılır ancak RAW resimler kırpılmaz.
Şekil 14. test_crop_region_raw comp raw crop example.
Şekil 15. test_crop_region_raw comp raw full example.
Ş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ıştığını test edin. 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ırpma görüntüsü değerlerini karşılaştırır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Başarılı: Kırpılan bölgenin resmi, kırpma resmine karşılık gelen yama ile 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üm, EV telafisinin CONTROL_AE_COMPENSATION_STEP
ile oluşturulan bir aralık kullanılarak uygulandığını test eder. Her telafi değerinde sekiz kare yakalanır.
Gelişmiş bölüm, sekiz adımda pozlamayı 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ığı ve hesaplanan değerler gerçek görüntü değeri aralığını aşarsa beklenen değer doygun hale gelir. Beklenen değerler ile ölçülen değerler eşleşmezse veya resimler 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_STEP
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
android.hardware.camera2.CaptureResult#TONEMAP_CURVE
android.hardware.camera2.CaptureResult#TONEMAP_MODE
Temel bölüm geçişi: 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 telafisi ayarı arttıkça parlaklıkta artış yakalar. Her EV telafisi ayarı için çekilen sekiz karede sabit parlaklık değerleri bulunur.
Şekil 19. test_ev_compensation_advanced_plot_means.
test_exposure_x_iso
ISO ve pozlama süresi değiştiğinde sabit pozlama elde edilen testler. ISO ve pozlama süresinin birbirini dengeleyecek şekilde seçildiği bir dizi çekim yapar.
Sonuçlar aynı parlaklığa sahip olmalıdır ancak dizideki görüntü daha fazla gürültü içermelidir. Örnek piksel ortalama değerlerinin birbirine yakın olduğunu doğrular. Resimlerin 0 veya 1'e sabitlenmediğini (bu durumda resimler düz çizgiler gibi görünür) 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_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Geçti: Görüntülerin parlaklığı aynı ancak ISO değeri yükseldikçe daha fazla gürültü oluşuyor. RGB düzlemleri, ISO*pozlama değeri test edilen kazanç alanı boyunca sabit olduğunda düzdür.
Arıza 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
Bu ayarların (pozlama ve kazanç) FULL
ve LEVEL_3
kameralar için doğru kareye kilitlendiğini test edin. 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:
Geçti: [2, 3, 6, 8, 10, 12, 13] numaralı resimlerin ISO'su veya pozlaması artırılmış ve aşağıdaki şekildeki grafikte daha yüksek RGB ortalamalarıyla gösterilmiştir.
Şekil 23. test_latching grafiği, örnek anlamına gelir.
Şekil 24. test_latching i=00.
Şekil 25. test_latching i=01.
Şekil 26. test_latching i=02.
Şekil 27. test_latching i=03.
Şekil 28. test_latching i=04.
Şekil 29. test_latching i=05.
Şekil 30. test_latching i=06.
Şekil 31. test_latching i=07.
Şekil 32. test_latching i=08.
Şekil 33. test_latching i=09.
Şekil 34. test_latching i=10.
Şekil 35. test_latching i=11.
Şekil 36. test_latching i=12.
test_linearity
Cihazda işleme, doğrusal piksellere dönüştürülebilir. Cihaz, tek renkli bir hedefe doğrultulmuşken bir dizi çekim yapar.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#BLACK_LEVEL_LOCK
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Geçti: R, G, B değerleri, hassasiyet arttıkça doğrusal olarak artmalıdır.
Şekil 37. test_linearity grafiği, ortalama örneği.
test_locked_burst
3A kilidini ve YUV patlamasını (otomatik ayarı kullanarak) test eder. Bu test, MANUAL_SENSOR
veya PER_FRAME_CONTROLS
bulunmayan sınırlı cihazlarda bile geçecek şekilde tasarlanmıştır.
Test, kare hızı kontrolü CTS'de yapılırken YUV görüntü tutarlılığını kontrol eder.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
android.hardware.camera2.CaptureRequest#CONTROL_AWB_LOCK
Geçti: Yakalamalar tutarlı görünüyor.
Şekil 38. test_locked_burst frame0 örneği.
Şekil 39. test_locked_burst frame1 örneği.
Şekil 40. test_locked_burst frame2 örneği.
scene1_2
scene 1_2
, scene 1_1
ile işlevsel olarak aynıdır ve scene 1
'nin uzun süresini azaltmak için alt sahne yapısını kullanır.
test_param_color_correction
android.colorCorrection.*
parametrelerinin ayarlandığında uygulandığını test eder.
Farklı dönüştürme ve kazanç değerleriyle çekimler yapar ve bunların buna uygun şekilde farklı göründüğünü test eder. Dönüşüm ve kazançlar, çıktının giderek daha kırmızı veya mavi olması için seçilir. Doğrusal bir ton eşleme kullanır.
Ton eşleme, 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ştırmak için görüntü işlemede kullanılan bir tekniktir. Bu teknikte, bir renk grubu başka bir renk grubuyla eşlenir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
Geçti: Dönüşüme göre R ve B değerleri artırılır.
Şekil 41. test_param_color_correction grafiği, ortalama örneği anlamına gelir.
Aşağıdaki şekillerde x ekseni, yakalama istekleridir: 0 = birleştirme, 1 = kırmızı artırma ve 2 = mavi artırma.
Ş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 artırma örneği.
test_param_flash_mode
android.flash.mode
parametresinin uygulanıp uygulanmadığını test eder. Pozlamayı manuel olarak koyu tarafa ayarlar. Böylece flaşın patlayıp patlamadığı açıkça anlaşılır ve doğrusal bir 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 merkezi karo resmiyle kontrol eder.
Test edilen API'ler:
Geçti: Döşeme resminin ortasında büyük bir renk geçişi var. Bu, flaşın patladığı anlamına gelir.
Şekil 45. test_param_flash_mode 1 örneği.
Şekil 46. test_param_flash_mode bir kutucuk örneği.
Şekil 47. test_param_flash_mode 2 örneği.
Şekil 48. test_param_flash_mode iki kutulu örneği.
test_param_noise_reduction
android.noiseReduction.mode
parametresinin ayarlandığında doğru şekilde uygulanıp uygulanmadığını test eder. Kamerayla loş ışıkta görüntü yakalama Çekilen görüntünün gürültülü olmasını sağlamak için yüksek analog kazanç kullanır. NR kapalı, hızlı ve yüksek kaliteli olmak üzere üç görüntü yakalar. Ayrıca, düşük kazanç ve NR kapalıyken bir görüntü yakalar ve bunun varyansını temel değer olarak kullanır. Sinyal-gürültü oranı (SNR) ne kadar yüksek olursa görüntü kalitesi de o kadar iyi olur.
Test edilen API'ler:
Geçiş: SNR, farklı gürültü azaltma modlarına göre değişir ve aşağıdaki grafikteki gibi davranır:
Şekil 49. test_param_noise_reduction grafiği, SNR örneklerini gösterir.
0: KAPALI, 1: HIZLI, 2: YÜKSEK KALİTE, 3: MİNİMUM , 4: ZSL
Şekil 50. test_param_noise_reduction yüksek kazançlı nr=0 örneği.
Şekil 51. test_param_noise_reduction high gain nr=1 örneği.
Şekil 52. test_param_noise_reduction yüksek kazançlı nr=2 örneği.
Şekil 53. test_param_noise_reduction yüksek kazançlı nr=3 örneği.
Şekil 54. test_param_noise_reduction düşük kazanç örneği.
test_param_shading_mode
android.shading.mode
parametresinin uygulanıp uygulanmadığını test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
Geçti: Gölgeleme modları değiştiriliyor ve lens gölgeleme haritaları beklendiği gibi değiştiriliyor.
Şekil 55. test_param_shading_mode lens gölgelendirme haritası, mod 0 döngü 0 örneği.
Şekil 56. test_param_shading_mode lens gölgelendirme haritası, mod 1 döngü 0 örneği.
Şekil 57. test_param_shading_mode lens gölgelendirme haritası, mod 2 döngü 0 örneği.
test_param_tonemap_mode
android.tonemap.mode
parametresinin uygulanıp uygulanmadığını test eder. Her R, G, B kanalına farklı ton 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_MODE
android.hardware.camera2.CameraMetadata#TONEMAP_MODE_FAST
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Geçiş:
test1
: Her iki resimde de doğrusal ton eşleme var ancakn=1
daha dik bir renk geçişine sahip.n=1
resminde G (yeşil) kanalı daha parlaktır.test2
: Aynı ton eşleme, ancak farklı uzunluk. Resimler aynı.
n=0 ile Şekil 58. test_param_tonemap_mode.
n=1 ile Şekil 59. test_param_tonemap_mode.
test_post_raw_sensitivity_boost
Ham hassasiyet artışını kontrol eder. Farklı hassasiyetlere sahip bir dizi RAW ve YUV görüntüsü yakalar, RAW hassasiyet artışı kombinasyonunu yayınlar ve çıkış piksel ortalamasının istek ayarlarıyla eşleşip eşleşmediğini kontrol eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Geçti: Yükseltme arttıkça RAW görüntüler koyulaşır, YUV görüntülerin 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 example.
Şekil 64. test_post_raw_sensitivity_boost raw s=0224 boost=1600 örneği.
Şekil 65. test_post_raw_sensitivity_boost raw s=0112 boost=3199 örneği.
Şekil 66. test_post_raw_sensitivity_boost ham grafiği, ortalama örneği ifade eder.
Ş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 example.
Şekil 69. test_post_raw_sensitivity_boost YUV s=0896 boost=0400 örneği.
Şekil 70. test_post_raw_sensitivity_boost YUV s=1792 boost=0200 örneği.
Şekil 71. test_post_raw_sensitivity_boost YUV s=3585 boost=0100 örneği.
Şekil 72. test_post_raw_sensitivity_boost_yuv_plot_means
test_raw_exposure
Pozlama süresi artan bir dizi ham görüntü yakalar ve piksel değerlerini ölçer.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
Geçer: ISO'nun (kazanç) artırılması, pikselleri ışığa karşı daha hassas hale getirir. Bu nedenle, grafik sola doğru hareket eder.
Şekil 73. test_raw_exposure ISO=55 örneği.
10⁰ 1 ms, 10¹ 10 ms ve 10⁻¹ 0, 1 ms'dir.
Şekil 74. test_raw_exposure ISO=132 örneği.
Şekil 75. test_raw_exposure ISO=209 örneği.
Şekil 76. test_raw_exposure ISOs=286 örneği.
Şekil 77. test_raw_exposure ISO=363 örneği.
Şekil 78. test_raw_exposure ISO=440 örneği.
test_reprocess_noise_reduction
Yeniden işleme istekleri için android.noiseReduction.mode
uygulanan testler.
Kameranın ışığı azken yeniden işlenmiş görüntüleri yakalar. Yakalanan görüntünün gürültülü olduğunu doğrulamak için yüksek analog kazanç kullanır. NR kapalı, hızlı ve yüksek kalite için üç yeniden işlenmiş görüntü yakalar. Düşük kazançlı ve NR kapalı olarak yeniden işlenmiş bir görüntü yakalar ve bunun varyansını referans değeri olarak kullanır.
Test edilen API'ler:
Geçti: FAST >= OFF, HQ >= FAST ve HQ >> OFF.
Şekil 79. Tipik SNR ile NR modu grafiği örneği.
test_tonemap_sequence
Farklı ton eşleme eğrileriyle çekim dizisini test eder. Doğrusal ton eşleme ile 3 manuel çekim yapar. Varsayılan ton eşleme ile 3 manuel çekim yapar. Birbirini izleyen her kare çifti arasındaki farkı hesaplar.
Test edilen API'ler:
Geçti: Üç özdeş kare ve ardından farklı bir üç özdeş 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
Görüntü yakalama için bildirilen tüm boyut ve biçimlerin çalıştığı testler. image_processing_utils
modülü tarafından dönüştürüldüğünde YUV ve JPEG'nin aynı görünmesi için doğrusal ton eşlemeli manuel istek kullanır. Resimler varsayılan olarak kaydedilmez ancak debug_mode
seçeneği etkinleştirilerek kaydedilebilir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
Geçti: Tüm görüntü merkezleri, en yüksek çözünürlüklü YUV görüntünün% 3'ü ile RGB'ye dönüştürülmüş görüntülerde en fazla ortalama karesel hata (RMS) (bir sinyalin değeri) farkına sahiptir.
Şekil 86. test_yuv_jpeg_all örneği.
test_yuv_plus_dng
Resim yakalama için bildirilen boyutların ve biçimlerin çalıştığını test eder.
Test edilen API'ler:
Geçti: Test tamamlanır ve istenen resimler döndürülür.
Şekil 87. test_yuv_plus_dng örneği.
scene1_3
scene 1_3
, scene 1_1
ile işlevsel olarak aynıdır ve scene 1
'nin uzun süresini azaltmak için alt sahne yapısını kullanır.
test_capture_result
Geçerli verilerin CaptureResult
nesnelerinde döndüğünü test eder. Test; otomatik çekim, manuel çekim ve ikinci bir otomatik çekimden oluşur.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AF_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Geçti: Meta veriler tüm çekimler için geçerlidir ve manuel ayarlar ikinci otomatik çekime sızmaz. Çekimler için lens gölgelendirme düzeltmesini planlar.
Şekil 88. test_capture_result_plot_lsc_auto_ch0.
test_dng_noise_model
DNG ham model parametrelerinin doğru olduğunu doğrular. Grafikte, çeşitli hassasiyetlerde çekilen ham fotoğraflardaki gri kartın merkez yamasının ölçülen varyansı gösterilir ve bu değerler, kamera HAL'sindeki DNG gürültü modeli tarafından her hassasiyette beklenen varyansla (yakalama sonucu nesnelerinde döndürülen O,S parametrelerine göre) karşılaştırılır. DNG gürültü modeli hakkında daha ayrıntılı 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_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_NOISE_PROFILE
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Geçti: DNG ham model parametreleri doğru. Beklenen RGB değerleri, ölçülen gerçek RGB değerleriyle eşleşir.
Şekil 89. test_dng_noise_model_plog.
test_jpeg
YUV görüntülerini ve cihaz JPEG görüntülerini dönüştüren testler aynı görünüyor. Test, görüntünün ortasındaki% 10'luk kısmı alır, RGB değerini hesaplar ve bu değerlerin eşleştiğini doğrular.
Test edilen API'ler:
Geçti: Her resim arasındaki ortalama RGB farkı %3'ten azdır.
Şekil 90. test_jpeg_fmt=jpg.jpg.
Şekil 91. test_jpeg=fmt=yuv.jpg.
test_raw_burst_sensitivity
Artan kazançlarla bir dizi ham görüntü yakalar ve gürültüyü ölçer. Yalnızca ham görüntüleri seri çekim olarak yakalar.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Geçti: Kazanç arttığı için her çekim, bir öncekinden daha gürültülü.
Merkez istatistikleri ızgara hücresinin varyansını kullanır.
Şekil 92. test_raw_burst_sensitivity_variance.
test_raw_sensitivity
Artan hassasiyetlerle bir dizi ham görüntü yakalar ve görüntünün ortasındaki% 10'luk alandaki gürültüyü (varyans) ölçer. Her çekimin bir öncekinden daha gürültülü olduğunu test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_WHITE_LEVEL
android.hardware.camera2.CameraCharacteristics#SENSOR_MAX_ANALOG_SENSITIVITY
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
Geçiş: Varyans her çekimde artar.
Şekil 93. test_raw_sensitivity_variance.
test_yuv_plus_jpeg
Tek bir kareyi hem YUV hem de JPEG çıkışı olarak yakalamayı test eder. image_processing_utils
modülü tarafından dönüştürüldüğünde YUV ve JPEG'nin aynı görünmesi için doğrusal ton eşlemeli manuel istek kullanır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.graphics.ImageFormat#JPEG
Geçti: YUV ve JPEG resimleri benzerdir ve RMS (bir sinyalin değeri) farkı% 1'den azdır.
Şekil 94. JPEG biçiminde test_yuv_plus_jpeg.
YUV biçimindeki Şekil 95. 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şleme ile manuel istek kullanıldığından ham ve YUV değerlerinin 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_RAW
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
android.hardware.camera2.CaptureRequest#CONTROL_MODE
android.hardware.camera2.CaptureRequest#SHADING_MODE
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
android.hardware.graphics.ImageFormat#RAW10
android.hardware.graphics.ImageFormat#RAW12
Geçti: YUV ve ham görüntüler benzerdir ve% 3,5'ten daha az RMS (bir sinyalin karesi alınmış ortalama değeri) farkı vardır.
Ş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ında bir korelasyon olduğunu doğrulamak için çeşitli ISO ayarlarında CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
testler yapın.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
Geçti: 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üşüktür. - Cihaz,
CONTROL_AE_AVAILABLE_PRIORITY_MODES
içindeCONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
reklamı yayınlamıyor.
test_exposure_time_priority
ISO'nun telafi edebileceği aralıkta sabit parlaklık olup olmadığını kontrol ederek CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
farklı pozlama sürelerinde testler yapın.
Test edilen API'ler:
android.hardware.camera2.CameraMetadata#CONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_PRIORITY_MODE
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_MODE
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_PRIORITY_MODES
Başarılı: ISO telafi aralığındaysa parlaklık, pozlama süreleri boyunca 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üşüktür. - Cihaz,
CONTROL_AE_AVAILABLE_PRIORITY_MODES
içindeCONTROL_AE_PRIORITY_MODE_SENSOR_EXPOSURE_TIME_PRIORITY
reklamı yayınlamıyor.
scene2_a
scene2_a
, gri arka plan ve nötr renkli kıyafetler giyen üç yüz içeriyor. Yüzler, çeşitli cilt tonlarına sahip olacak şekilde seçilir. Yüz algılama özelliğinin optimum düzeyde ç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, AUTOFRAMING
değerini CaptureRequest
içinde True
olarak ayarlayarak otomatik çerçeveleme modunu etkinleştirir ve durum yakınlaştığında (yani AUTOFRAMING_STATE
değeri CaptureResult
içinde AUTOFRAMING_STATE_CONVERGED
olarak ayarlandığında) orijinal sahnedeki tüm yüzlerin algılanıp algılanmadığını doğrular.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AUTOFRAMING_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING
android.hardware.camera2.CaptureResult#CONTROL_AUTOFRAMING_STATE
Geçti: Üç yüzün tamamı algılandı.
test_display_p3
Testler
Display P3
ColorSpaceProfiles
API'si kullanılarak JPEG biçiminde yakalama. Yakalanan JPEG'in başlığında uygun bir ICC profili olup olmadığını ve resmin sRGB gamının dışında renkler içerip içermediğini test eder.
Test edilen API'ler:
android.hardware.camera2.params.ColorSpaceProfiles
android.hardware.camera2.params.SessionConfiguration#setColorSpace
Geçti: JPEG, Display P3 ICC profili ve sRGB 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_EFFECTS
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Geçiş: Sahne görüntüsünü OFF
efektleriyle ve efektleri MONO
olarak ayarlanmış tek renkli bir görüntüyle yakalar.
Şekil 99. test_effects_MONO.
test_exposure_keys_consistent
Bu testte, AE'nin etkin olduğu bir çekimin ortalama parlaklığı, AE'nin devre dışı olduğu ve pozlama parametrelerinin (hassasiyet, pozlama süresi, kare süresi, ham sonrası hassasiyet artışı) manuel olarak uygulandığı bir çekimle karşılaştırılır. Bu parametreler, AE'nin etkin olduğu çekimin CaptureResult
bölümünde alınır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
Geçti: İki çekim arasındaki parlaklıkta göreli 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_MAP
android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes()
android.hardware.camera2.CameraCaptureSession#captureBurst()
Başarılı: Tüm kombinasyonlar başarıyla yakalandı.
test_num_faces
Yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geçti: Üç 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ği testler. 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#createCaptureSession
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureResult#NOISE_REDUCTION_MODE
Geçti: U ve V düzlemleri değiştirilmez.
Şekil 101. test_reprocess_uv_swap örneği.
scene2_b
test_preview_num_faces
Yüz sahnelerinde cilt tonu çeşitliliğini artırarak önizlemede yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geçti: Yüz sınırlama kutularında yüz işaret 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 görüntü yakalar.
jpeg.quality
değerini 100 olarak ayarlar ve çift yüzeyli bir istek yakalar. Her iki resmi de RGB dizilerine dönüştürür ve iki resim arasındaki 3D karesi alınmış ortalama (RMS) farkını hesaplar.
Ayrıca bu test, desteklenen tüm akış kullanım alanlarının YUV çıkışlarının, STILL_CAPTURE
kullanım alanıyla YUV çıkışına makul ölçüde benzer olduğunu doğrular.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_STREAM_USE_CASES
android.hardware.camera2.CaptureRequest#JPEG_QUALITY
android.graphics.ImageFormat#JPEG
Geçti: STILL_CAPTURE
kullanım alanına yönelik YUV ve JPEG resimler, %3'ten daha az RMS (bir sinyalin ortalama karekök değeri) farkına sahiptir. Desteklenen tüm kullanım alanlarına yönelik YUV resimler, STILL_CAPTURE
kullanım alanına yönelik YUV resimlerden% 10'dan daha az RMS farkına sahiptir.
scene2_c
test_num_faces
Yüz sahnelerinde cilt tonu çeşitliliği artırılarak yüz algılama test edilir.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geçti: Üç yüz bulur.
Şekil 103. test_num_faces yüz algılama modu örneği.
test_jpeg_capture_perf_class
CDD'deki 2.2.7.2 Kamera bölümünde belirtildiği gibi S performans sınıfı için JPEG yakalama gecikmesini test eder.
Geçti: Birincil kameraların her ikisi için de ITS aydınlatma koşulları (3000K) altında CTS kamera PerformanceTest ile ölçülen 1080p çözünürlükte kamera2 JPEG yakalama gecikmesi < 1000 ms OLMALIDIR.
test_camera_launch_perf_class
CDD'de bölüm 2.2.7.2 Kamera'da belirtildiği gibi S performans sınıfı için kamera başlatma gecikmesini test eder.
Geçti: Birincil kameraların her ikisi için de ITS aydınlatma koşulları (3000 K) altında CTS kamera PerformanceTest ile ölçülen camera2 başlatma gecikmesi (kamerayı ilk önizleme karesine açma) < 600 ms olmalıdır.
test_default_camera_hdr
CDD'nin 2.2.7.2 Kamera bölümünde belirtildiği gibi, varsayılan kamera yakalamanın performans sınıfı 15 için Ultra HDR olup olmadığını test eder.
Geçti: Varsayılan kamera paketi yakalama, performans sınıfı 15 cihaz için Ultra HDR OLMALIDIR.
scene2_d
test_preview_num_faces
Yüz sahnelerinde cilt tonu çeşitliliğini artırarak önizlemede yüz algılamayı test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geçti: Yüz sınırlama kutularında yüz işaret noktaları olan üç yüz bulur.
scene2_e
test_continuous_picture
50 VGA çözünürlüklü kare, yakalama isteği ilk ayarıyla yakalanır.
android.control.afMode = 4 (CONTINUOUS_PICTURE).
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureResult#CONTROL_AF_STATE
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
Geçti: 3A sistemi, 50 karelik çekimin sonunda yerleşir.
test_num_faces
Yüz sahnelerinde cilt tonu çeşitliliği artırılarak yüz algılama test edilir.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geçti: 3 yüz bulur.
scene2_f
scene2_f
, beyaz arka plan ve beyaz kıyafetlerle üç yüze sahip. Yüzlerde çok çeşitli cilt tonları ve arka planla yüksek kontrast var.
Şekil 104. scene2_f örneği.
test_preview_num_faces
Yüz sahnelerinde cilt tonu çeşitliliği artırılarak yüz algılama test edilir.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geçti: Yüz sınırlama kutularında yüz işaret 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ıyafetlerle üç profil yüzüne sahip.
Yüzlerde geniş bir ten rengi aralığı ve arka planla yüksek kontrast vardır.
Şekil 106. scene2_g örneği.
test_preview_num_faces
Yüz sahnelerinde cilt tonu çeşitliliği artırılarak yüz algılama test edilir.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#STATISTICS_FACES
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Geçti: Yüz sınırlama kutularında yüz işaret noktaları olan üç yüz bulur.
Şekil 107. test_preview_num_faces örneği.
scene3
scene3
, ISO12233 tablosunu kullanır ve çoğu test, sahnedeki tabloyu bulmak için tablo ayıklama yöntemini kullanır. Bu nedenle, kaydedilen resimlerin çoğu 1, 2 veya 4. sahne resimlerindeki gibi kenarlıklara sahip değildir, yalnızca grafik vardır. Grafik bulucunun optimum şekilde çalışması için grafiğin doğru yönde olması gerekir.
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 netliğ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.
Geçti: HQ
modu (2), OFF
modundan (0) daha keskindir. FAST
modu (1) OFF
modundan daha keskindir. HQ
modu, FAST
modundan daha keskin veya ona eşittir.
Test edilen API'ler:
Etkilenen kamera parametreleri:
EDGE_MODE
Şekil 108. test_edge_enhancement edge=0 örneği.
Şekil 109. test_edge_enhancement edge=1 (hızlı mod) örneği.
Şekil 110. test_edge_enhancement edge=2 (yüksek kaliteli mod) örneği.
test_flip_mirror
Resmin, CDD'deki 7.5.2 Ön Yüz Kamerası bölümünde belirtildiği şekilde doğru yönlendirildiğini test eder.
Aynalanmış, ters çevrilmiş veya döndürülmüş resimler, merkeze yakın konumdaki elmas özelliğiyle tanımlanabilir.
Geçti: Resim çevrilmemiş, yansıtılmamış veya döndürülmemiştir.
Şekil 111. test_flip_mirror sahne düzeltme eki örneği.
test_imu_drift
Cihaz hareketsizken ve yüksek çözünürlüklü önizleme yakalarken atalet ölçüm biriminin (IMU) 30 saniye boyunca sabit çıkış verip vermediğini test eder.
Test edilen API'ler:
android.hardware.Sensor
android.hardware.SensorEvent
android.hardware.Sensor#TYPE_GYROSCOPE
android.hardware.Sensor#TYPE_ROTATION_VECTOR
Geçiş:
- Jiroskopun kayması, test süresi boyunca 0,01 rad'dan azdır.
- Jiroskop okumasının varyansı, test süresi boyunca 1E-7 rad2/s2/Hz değerinden düşüktür.
- Dönüş vektörünün kayması, test süresi boyunca 0,01 rad'dan azdır.
- (Henüz zorunlu değil) Jiroskopun kayması saniyede 1 dereceden az olmalıdır.
Şekil 112. test_imu_drift jiroskop sapması örneği.
Şekil 113. test_imu_drift döndürme vektörü kayma örneği.
test_landscape_to_portrait
Yataydan dikeye geçiş geçersiz kılma işlevinin yatay yönlü sensörlerde doğru şekilde çalışıp çalışmadığını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALER_AVAILABLE_ROTATE_AND_CROP_MODES
android.hardware.camera2.CameraCharacteristics#SENSOR_ORIENTATION
android.hardware.camera2.CameraCharacteristics#getCameraCharacteristics
Geçti: Test, beklenen döndürmeye (yataydan dikeyye geçiş geçersiz kılındığında 0 derece, etkinleştirildiğinde 90 derece) sahip bir grafik bulur.
Şekil 114. test_landscape_to_portrait örneği.
test_lens_movement_reporting
Lens hareketi işaretinin düzgün şekilde bildirilip bildirilmediğini test eder. İlk 12 kare optimum odak mesafesinde (3A tarafından belirlendiği şekilde), son 12 kare ise minimum odak mesafesinde olmak üzere 24 resimlik bir seri çeker. 12. kare civarında lens hareket ediyor ve bu da keskinliğin düşmesine neden oluyor. Lens son konuma hareket ederken keskinlik sonunda dengelenir.
Keskinliğin, lensin optimum odak mesafesinde sabit olduğu ilk birkaç karedeki ve lensin minimum odak mesafesinde sabit olduğu son birkaç karedeki keskinlik arasında olduğu tüm karelerde lens hareketi işareti onaylanmalıdır. Lensi hareket ettiren tam kare önemli değildir. Önemli olan, lens hareket ederken hareket işaretinin onaylanmasıdır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#LENS_STATE
android.hardware.camera2.CaptureResult#LENS_FOCUS_DISTANCE
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
Geçti: Lens hareketi işareti, keskinlik değişikliği olan karede True
.
Hata mekanizmaları:
lens_moving: True
(android.hardware.camera2.CaptureResult#LENS_STATE
= 1) intest_log.DEBUG
yalnızca keskinliğin değişmediği karelerde onaylanır.lens_moving: False
(android.hardware.camera2.CaptureResult#LENS_STATE
= 0) olan karelerdetest_log.DEBUG
, optimum odak uzaklığındaki ilk birkaç kareye veya minimum odak uzaklığındaki son birkaç kareye kıyasla keskinlik farkı vardır.
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 bir yakalama isteğini işler ve yeniden işleme kenar modları devre dışı bırakılmışken yakalamak için farklı modları karşılaştırır.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#EDGE_MODE
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
Geçti: Farklı kenar modlarının keskinliği doğru. HQ
(mod 2), OFF
(mod 0) modundan daha keskindir ve farklı modlar arasındaki iyileştirme benzerdir.
Şekil 115. test_reprocess_edge_enhancement grafiği örneği.
scene4
scene4
, bir karenin içindeki beyaz arka plan üzerinde siyah bir daireden oluşur.
scene4'teki testler hizalamaya duyarlı olabilir. Bu nedenle, Android 15'ten itibaren DUT ve grafik hizalamasının kontrolünü etkinleştirmek için tools dizininde check_alignment.py
kullanabilirsiniz.
Şekil 116. scene4 örneği.
test_30_60fps_preview_fov_match
30 FPS ve 60 FPS önizleme videolarının aynı görüş alanına sahip olup olmadığını test eder. Testte biri 30 FPS, diğeri 60 FPS olmak üzere iki video çekilir. Her videodan temsili bir kare seçilir ve iki videodaki görüş alanı değişikliklerinin spesifikasyonlar dahilinde olup olmadığı doğrulanmak için analiz edilir. Dairenin en-boy oranının sabit kaldığını, dairenin merkezinin sabit kaldığını ve dairenin yarıçapının sabit kaldığını test eder.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Geçti: Resimler genişletilmiyor, resimlerin merkezi %3'ten fazla farklılık göstermiyor ve 30 FPS ile 60 FPS videolar arasındaki maksimum en boy oranı değişikliği %7,5'ten fazla değil.
Hata mekanizmaları:
- 30 FPS'lik videodaki daire, 60 FPS'lik videodaki daireden boyut olarak önemli ölçüde farklı.
- Çekilen resimdeki daire, işleme hattı nedeniyle bozuluyor.
- Çekilen resimdeki daire, resmin yüksekliğini veya genişliğini azaltan aşırı bir en boy oranı yakalama isteği nedeniyle kırpılıyor.
- Çekilen resimdeki dairenin ortasında yansıma var ve daire tam dolu görünmüyor.
test_aspect_ratio_and_crop
Resimlerin, resim işlem hattında bozulup bozulmadığını veya beklenmedik şekilde kırpılıp kırpılmadığını test eder. Tüm biçimlerdeki bir dairenin fotoğrafını çeker. Dairenin bozulmadığını, resmin merkezinden hareket etmediğini ve farklı en-boy oranları veya çözünürlüklerle boyutunun yanlış şekilde değişmediğini doğrular.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Geçti: Resimler gerilmez, resimlerin merkezi %3'ten fazla farklılık göstermez ve mümkün olan maksimum FoV korunur.
Hata mekanizmaları:
- Kamera, çekilen sahnenin ortasında tablette gösterilen daireyle aynı hizada değil.
- Çekilen resimdeki daire, işleme hattı nedeniyle bozuluyor.
- Düşük çözünürlüklü görüntü, görüntü işlem hattında iki kez kırpılarak yüksek ve düşük çözünürlüklü görüntüler arasında farklı bir görüş alanı oluşturulur.
- Çekilen resimdeki daire, resmin yüksekliğini veya genişliğini azaltan aşırı bir en boy oranı yakalama isteği nedeniyle kırpılıyor.
- Çekilen resimdeki dairenin ortasında yansıma var ve daire tam 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. Daire 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ı piksel koordinatına yeniden 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_DISTORTION
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_ROTATION
android.hardware.camera2.CameraCharacteristics#LENS_POSE_TRANSLATION
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
android.hardware.camera2.CaptureRequest#DISTORTION_CORRECTION_MODE
Geçti: Yansıtılan görüntülerde daire merkezleri ve boyutları, kamera kalibrasyon verileri ve odak uzaklıkları kullanılarak çekilen görüntülere kıyasla beklendiği gibidir.
Hata mekanizmaları:
LENS_INTRINSIC_CALIBRATION
,LENS_POSE_TRANSLATION
veLENS_POSE_ROTATION
değerleri tasarım değerleridir ve gerçek kalibrasyon verileri değildir.- Kamera sistemi, test kurulumu için uygun değildir. Örneğin, RFoV test düzeneğiyle geniş ve ultra geniş kamera sistemi test ediliyordur. Daha fazla bilgi için Camera ITS-in-a-box SSS Q1 bölümüne bakın.
test_preview_aspect_ratio_and_crop
Hareketsiz çekimler için test_aspect_ratio_and_crop
testine benzer şekilde, desteklenen önizleme biçimlerini kontrol ederek önizleme karelerinin uygunsuz şekilde uzatılmadığını veya kırpılmadığını doğrular. Dairenin en boy oranının değişmediğini, kırpılan resimlerde dairenin karenin ortasında kaldığını ve sabit bir biçimde veya farklı çözünürlüklerde (FoV kontrolü) daire boyutunun değişmediğini doğrular.
Test edilen API'ler:
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Geçti: Resimler gerilmez, resimlerin merkezi %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 biri önizleme sabitleme ON
, diğeri önizleme sabitleme OFF
ile olmak üzere iki video çekilir. Her videodan temsili bir kare seçilir ve iki videodaki görüş alanı değişikliklerinin spesifikasyon dahilinde olup olmadığı doğrulanmak için analiz edilir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Geçti: Dairenin en boy oranı yaklaşık olarak sabit kalır, dairenin merkez konumu sabit kalır ve dairenin boyutu en fazla %20 değişir.
test_video_aspect_ratio_and_crop
Tüm video biçimlerinde kare içindeki bir dairenin videolarını çeker. Anahtar kareleri ayıklar ve dairenin en boy oranının değişmediğini, kırpılan resimlerde dairenin merkezde kaldığını ve daire boyutunun sabit bir biçimde veya farklı çözünürlükte (FoV kontrolü) değişmediğini doğrular.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#LENS_DISTORTION
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
Geçti: Video kareleri genişletilmiyor, karelerin merkezi %3'ten fazla farklılık göstermiyor ve mümkün olan maksimum FoV korunuyor.
scene5
scene5
, eşit şekilde aydınlatılmış gri bir sahne gerektirir. Bu işlem, kamera merceğinin üzerine yerleştirilen bir difüzörle gerçekleştirilir. Aşağıdaki difüzörü kullanmanızı öneririz:
www.edmundoptics.com/optics/window-diffusers/optical-diffusers/opal-diffusing-glass/46168
.
Sahneyi hazırlamak için kameranın önüne bir difüzör takın ve kamerayı yaklaşık 2.000 lüks bir ışık kaynağına doğru tutun. scene5
için çekilen görüntülerde belirgin özelliklerin olmadığı dağınık bir ışıklandırma gerekir. Aşağıda örnek bir resim verilmiştir:
Şekil 117. scene5 yakalama örneği.
test_lens_shading_and_color_uniformity
Lens gölgelendirme düzeltmesinin uygun şekilde uygulandığını ve tek renkli düzgün bir sahnenin renginin eşit şekilde dağıtıldığını test eder. Bu testi, otomatik 3A ile bir YUV çerçevesinde gerçekleştirir. Lens gölgelendirmesi, y kanalına göre değerlendirilir. Belirtilen her örnek blok için ortalama y değerini ölçer ve merkez y değeriyle karşılaştırarak başarılı veya başarısız olduğunu belirler. Renk tekdüzeliği testi, kırmızı-yeşil ve mavi-yeşil alanında değerlendirilir.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Geçti: Testin geçmesi için resmin belirtilen yarıçapında kırmızı-yeşil ve mavi-yeşil değerinin varyansı% 20'den az olmalıdır.
scene6
scene6
, benzersiz şekilde tanımlanabilen ArUco işaretlerinden oluşan bir ızgaradır.
scene6
içindeki testler hizalamaya duyarlı olabilir. Bu nedenle, 15'ten itibaren, DUT ve grafik hizalamasının kontrolünü etkinleştirmek için araçlar dizininde check_alignment.py
kullanabilirsiniz.
Şekil 118. scene6 örneği.
test_in_sensor_zoom
Kameranın sensör içi yakınlaştırma özelliğinin davranışını test eder. Bu özellik, kırpılmış ham görüntüler üretir.
Akış kullanım alanı CROPPED_RAW
olarak ayarlandığında test, yakınlaştırma aralığında iki çekim yapar: tam FoV ham görüntü ve kırpılmış ham görüntü. 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_RANGE
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CameraMetadata#SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#SCALER_RAW_CROP_REGION
Geçti: Ölçeği küçültülmüş kırpılmış ham görüntü ile tam FoV ham görüntü arasındaki 3D RMS farkı, testte belirlenen eşikten daha azdır.
test_zoom
Ultra geniş lensten geniş lense geçişte kamera yakınlaştırma davranışını test eder. Yakınlaştırma aralığında çekim yapar ve kamera yakınlaştırıldığında ArUco işaretçilerinin büyüyüp büyümediğini kontrol eder. Test ayrıca merkez işaretçinin konumunun her yakalama işleminde 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ıyla ilgili olarak 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 App (JCA) yüklenmelidir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Geçti: Kameranın doğru şekilde yakınlaştırdığını doğrulamak için yakalanan ArUco işaretçisinin göreceli boyutu, istenen yakınlaştırma oranıyla karşılaştırıldığında doğru olmalıdır. Ayrıca, işaretçi ile görüntü merkezi arasındaki mesafe, test açıklamasında belirtilen ölçütlere göre değişmelidir.
Merkeze en yakın ArUco işaretçisinin konturunu bulmak için Şekil 119. 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ı yakınlaştırmak ve çekim yapmak için aynı kamera çekimi oturumu kullanılır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_SETTINGS_OVERRIDES
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_SETTINGS_OVERRIDE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#CONTROL_SETTINGS_OVERRIDE
Geçti: Yakalanan işaretçinin göreli boyutu, yakınlaştırma oranı sonuç meta verilerine göre doğrudur.
test_preview_video_zoom_match
Kaydederken ve yakınlaştırırken video önizlemesi ile video çıkışının aynı çıkışı gösterip kaydettiği testler. 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_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Geçti: Yakalanan işaretçinin göreli boyutu, videoda ve önizlemede istenen yakınlaştırma oranıyla doğru orantılıdır.
Ş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ştiği testler. Test, yakınlaştırma aralığındaki önizleme karelerini alır ve merkeze en yakın ArUco işaretçisini bulur. Ardından test, merkez işaretçinin konumunun her yakalama işleminde 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ıyla ilgili olarak 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_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Geçti: Seçilen ArUco işaretçisinin göreli boyutu, önizleme karelerinin tümünde ilgili yakalama sonucunun bildirilen yakınlaştırma oranı için doğrudur. Seçilen işaretçinin resmin merkezine olan göreceli uzaklığı, tüm önizleme karelerinin ilgili yakalama sonucunun bildirilen yakınlaştırma oranı için doğrudur.
Merkeze en yakın işaretçinin seçildiği Şekil 124. test_preview_zoom resimleri
test_session_characteristics_zoom
CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
bölümünde listelenen tüm desteklenen oturum yapılandırmaları için yakınlaştırma oranı aralığını test eder.
Bu yapılandırmaların her biri için CameraDeviceSetup#isSessionConfigurationSupported
true
değerini döndürürse test, CameraDeviceSetup#getSessionCharacteristics
içinde 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_VERSION
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#getSessionCharacteristics
Geçti: CameraCharacteristics#INFO_SESSION_CONFIGURATION_QUERY_VERSION
bölümünde listelenen her desteklenen SessionConfiguration
için hem minimum hem de maksimum yakınlaştırma oranına ulaşılabilir.
scene7
scene7
, her biri farklı bir renkle doldurulmuş dört eşit çeyrek daireye bölünmüş dikdörtgen bir çerçevedir. Dikdörtgenin ortasında, keskinlik kontrolleri için eğimli kenarlı bir grafik yer alır. Dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanarak farklı yakınlaştırma oranlarında ana dikdörtgen çerçevesinin doğru koordinatlarının elde edilmesine 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 önizleme kaydı yapmak 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'den W lense geçişi gösterir.
Geçiş noktasında ve öncesinde çekilen kareler otomatik pozlama (AE), otomatik beyaz dengesi (AWB) ve otomatik odaklama (AF) açısından analiz edilir.
AE kontrolü, parlaklık 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 netlik tahmini değerini değerlendirir.
Bu testi yürütürken Moire efekti sonuçları etkiliyorsa Camera ITS onaylı tabletler listesinden daha yüksek çözünürlüklü bir tablet kullanın.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: Testin 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 şunlardır:
- AE kontrolü: Cihaz hem
ae_regions
hem deawb_regions
değerini destekliyorsa UW ve W lens görüntüleri arasındaki parlaklık değişikliği (Y değeri), tüm renk yamaları için% 4'ten az olmalıdır. Yalnızcaae_regions
destekleniyorsa yalnızca gri renk yaması değerleri ölçütleri karşılamalıdır. - AWB kontrolü: Cihaz hem
ae_regions
hem deawb_regions
değerini destekliyorsa UW ve W lens görüntülerinin kırmızı-yeşil ve mavi-yeşil değerleri arasındaki fark, gri renk yaması için% 3'ten, diğer renk yamaları için ise% 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. Ultra geniş lensle çekilmiş gri yama.
Şekil 127. W lensiyle çekilmiş gri yama.
scene8
scene8
, dört eşit bölgeye ayrılmış 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çevesinin doğru koordinatlarını elde etmek için dört ArUco işaretleyici, 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ı yapılırken RGB ve parlaklık değerlerinin farklı olup olmadığını test eder.
Testte 8 saniyelik bir önizleme kaydı alınır. AE ve AWB ölçümü, her çeyrekte 2 saniye boyunca yapılır. 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ü: Azaltılmış pozlamaya sahip bölgeyi ölçen karenin, artırılmış pozlamaya sahip bölgeyi ölçen kareye kıyasla% 1'den fazla artırılmış parlaklık değerine sahip olduğunu doğrular. Bu, karanlık bir bölge ölçülürken görüntülerin aydınlatıldığını doğrular.
- AWB kontrolü: Mavi ölçüm bölgesini içeren karedeki kırmızı-mavi oranının (görüntünün ortalama RGB değerleri) sarı ölçüm bölgesini içeren kareden %2'den fazla yüksek olduğunu doğrular. Bu, sarı (sıcak) veya mavi (soğuk) bir bölge ölçülürken görüntülerin dengeli bir RGB değerine sahip olduğunu doğrular.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_AWB_REGIONS
android.hardware.camera2.CaptureRequest#CONTROL_AE_REGIONS
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AE
android.hardware.camera2.CameraCharacteristics#CONTROL_MAX_REGIONS_AWB
Geçti: AE ve AWB kontrolleri başarılı oldu.
Şekil 129. Pozlama artırılarak karanlık bölge çerçeve ölçümü yapılır.
Şekil 130. Pozlama azaltılarak daha açık bölge çerçevesinde ölçüm yapılır.
Hata 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 versiyonunu kullanarak ikinci bir algılama denemesi yapar. Aşağıdaki gri tonlamalı resimde ikincil işleme adımı gösterilmektedir:
Şekil 131. ArUco işaretçilerinin yanlış hizalanması.
test_color_correction_mode_cct
Farklı renk sıcaklıkları ve tonlarında COLOR_CORRECTION_MODE
testleri yaparak RGB oranlarındaki değişiklikleri yakalama sahnesi scene8 ile karşılaştırın.
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_MODE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TEMPERATURE
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CaptureResult#COLOR_CORRECTION_COLOR_TINT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE
android.hardware.camera2.CameraMetadata#COLOR_CORRECTION_MODE_CCT
android.hardware.camera2.CameraCharacteristics#COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
Geçti: RGB oranları, seçilen renk sıcaklıkları ve tonlarına göre beklenen artış veya azalmaları gösteriyor.
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üşüktür. - Cihaz,
COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES
içindeCOLOR_CORRECTION_MODE_CCT
reklamı yayınlamıyor.
scene9
scene9
, JPEG sıkıştırma algoritmalarını zorlamak için çok düşük tekrarlanabilirliğe sahip bir sahne oluşturmak üzere rastgele boyutlandırılmış ve renklendirilmiş binlerce daireden oluşur.
Şekil 132. scene9 örneği.
test_jpeg_high_entropy
Kamera JPEG sıkıştırmasının, scene9
üzerinde yüksek entropiyle ve JPEG kalite faktörü %100 olarak ayarlanmış şekilde çalıştığını test edin. Tablette gösterilen sahnenin kamera FoV'unu doldurduğunu doğrulamak için yakınlaştırma faktörü artırılır.
Test edilen API'ler:
Geçti: JPEG dosyası düzgün şekilde sıkıştırılmış, yazılmış ve diskten geri okunmuştur.
test_jpeg_quality
Kameranın JPEG sıkıştırma kalitesini test eder. JPEG kalitelerini android.jpeg.quality
ile adım adım ilerletir ve nicemleme tablolarının doğru şekilde değiştiğini doğrular.
Test edilen API'ler:
Geçti: Kalite arttıkça nicemleme matrisi azalır. (Matris, bölme faktörünü gösterir.)
Şekil 133. Pixel 4 arka kamera parlaklığı ve renk doygunluğu DQT matris ortalamaları ile JPEG kalitesi karşılaştırması.
Şekil 134. Başarısız test örneği.
scene_video
scene_video
, beyaz bir arka plan üzerinde farklı kare hızlarında ileri geri hareket eden dört farklı renkli daireden oluşan bir video sahnesidir.
Şekil 135. scene_video örneği.
test_preview_frame_drop
İstenen önizleme kare hızının dinamik bir sahnede korunup korunmadığını test eder. Bu test, üçüncü taraf uygulamalarına açık olan tüm kameralarda çalışır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: Önizleme kare hızı, istenen kare hızı aralığının maksimum değerindedir ve ardışık kareler arasındaki ortalama varyasyon, testte ayarlanan göreceli toleranstan daha azdır.
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ısı kontrol edilmelidir. Bu işlem için test düzeneğini, DUT'yi ve tableti bir örtüyle kapatmanızın yanı sıra DUT'nin ön ekranından ışık sızıntısını gidermeniz gerekebilir.
scene_hdr
scene_hdr
sahnesinde solda bir portre, sağda ise düşük kontrastlı bir QR kodu yer alıyor.
Şekil 136. scene_hdr örneği.
test_hdr_extension
HDR uzantısını test eder. Uzantı etkinleştirilmişken ve devre dışıyken çekimler yapar ve uzantının QR kodunu daha kolay algılanabilir hale getirip getirmediğini kontrol eder.
Test edilen API'ler:
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
Geçme: 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şuyor. Kare ızgarası kırmızı bir ana hatla çevrili. Kareler, Hilbert eğrisi yönünde düzenlenir.
Şekil 137. scene_low_light örneği.
test_night_extension
Night extension'ı test eder. Uzantı etkin durumdayken yakalama yapar ve aşağıdakileri gerçekleştirir:
- 20 karenin varlığını algılar
- Her kareyle sınırlanan parlaklığı hesaplar.
- Hilbert eğrisi ızgara yönüne göre ilk 6 karenin ortalama parlaklık değerini hesaplar.
- Ardışık karelerin parlaklık değerindeki farkı (örneğin, kare2 - kare1) 5. ve 6. karelere (kare6 - kare5) kadar hesaplar ve hesaplanan beş farkın ortalamasını bulur.
Android 16 veya daha yeni sürümlerin yüklü olduğu cihazlarda yakalama isteği, kareler ızgarasını 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#getSupportedExtensions
android.hardware.camera2.CameraExtensionSession#capture
Geçiş:
- Android 16 veya daha yeni bir sürümü çalıştıran cihazlarda ilk 6 karenin ortalama parlaklık değeri en az 80 olmalı ve 5. ile 6. kareye kadar olan ardışık karelerin ortalama parlaklık değeri farkı en az 18,75 olmalıdır.
- Android 15 ve önceki sürümlerin yüklü olduğu cihazlarda ilk 6 karenin ortalama parlaklık değeri en az 85 olmalı ve 5. ile 6. kareye kadar olan ardışık karelerin parlaklık değerindeki ortalama fark en az 17 olmalıdır.
Aşağıdaki parlaklık grafiğinde, başarılı bir test sonucunun nasıl göründüğü gösterilmektedir.
Şekil 138. Düşük ışıkta gece sahnesi testini geçen örnek.
test_low_light_boost_extension
Zayıf ışıkta otomatik pozlama modunu test eder. Camera2, düşük ışık güçlendirmesi AE modunu destekliyorsa bu test Camera2 için yapılır. 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 testte AE modu düşük ışıkta artırma olarak ayarlanır, önizlemeden bir kare alınır ve aşağıdakiler yapılır:
- 20 kutunun varlığını algılar
- Her kutuyla sınırlanan parlaklığı hesaplar.
- Hilbert eğrisi ızgara yönüne göre ilk 6 karenin ortalama parlaklık değerini hesaplar.
- Ardışık karelerin parlaklık değerindeki farkı (örneğin, kare2 - kare1) 5. ve 6. karelere (kare6 - kare5) kadar hesaplar ve hesaplanan beş farkın ortalamasını bulur.
Android 16 veya daha yeni sürümlerin yüklü olduğu cihazlarda yakalama isteği, kareler ızgarasını 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_MODES
android.hardware.camera2.CameraMetadata#CONTROL_AE_MODE_ON_LOW_LIGHT_BOOST_BRIGHTNESS_PRIORITY
android.hardware.camera2.CameraExtensionCharacteristics#getSupportedExtensions
Geçiş:
Android 16 veya sonraki sürümlerin yüklü olduğu cihazlarda ilk 6 karenin ortalama parlaklık değeri en az 54 olmalı ve 5. ile 6. kareye kadar olan ardışık karelerin parlaklık değerindeki ortalama fark en az 17 olmalıdır.
Android 15 ve önceki sürümlerin yüklü olduğu cihazlarda ilk 6 karenin ortalama parlaklık değeri en az 70 olmalı ve 5. ile 6. kareye kadar olan ardışık karelerin parlaklık değerindeki ortalama fark en az 18 olmalıdır.
scene_tele
scene_tele
testleri için önemli bir şart, grafik mesafesinin en azından telefoto lensin minimum odak mesafesi olmasıdır. Bu minimum odak mesafesi cihazlar arasında farklılık gösterebileceğinden kurulumunuzu belirli telefoto kameraya uygun şekilde yapılandırmanız gerekir.
Şekil 139. Geniş ve telefoto kameranın odak mesafesine göre scene_tele kurulumu.
Test donanımı kurulumu hakkında daha fazla bilgi için Tele uzatma düzeneği kurulumu başlıklı makaleyi inceleyin.
scene6_tele
scene6_tele
sahnesi, beyaz arka plan üzerinde bir ArUco işaretçileri ızgarasından oluşur.
scene6_tele
çekimlerinde modüler kamera düzeneği ile aşırı pozlanma görünüyorsa modüler kamera düzeneğinin ön plakasını çıkarın.
WFoV test düzeneğinin uzantı bağlantısını kesin ve telefon montajını çıkarın.
Şekil 140. WFoV test düzeneğinin uzantı bağlantısını kesin ve telefon montajını çıkarın.
Şekil 141. Ön plakayı çıkarın.
test_zoom_tele
Geniş lensden telefoto lense geçişte kamera yakınlaştırma davranışını test eder. Test, test_zoom
ile aynıdır ancak geniş lensten telefoto lense geçişte kamera yakınlaştırma davranışını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Geçti: Kameranın doğru şekilde yakınlaştırdığını doğrulamak için yakalanan ArUco işaretçisinin göreli boyutu, istenen yakınlaştırma oranıyla karşılaştırıldığında doğru olmalı ve işaretçi ile görüntü merkezi arasındaki mesafe, test_zoom
bölümünde listelenen ölçütlere göre değişmelidir.
test_preview_zoom_tele
Geniş lensten telefoto lense geçişte önizleme kareleri için kamera yakınlaştırma davranışını test eder. Test, test_preview_zoom
ile aynıdır ancak geniş lensden telefoto lense geçişte önizleme kareleri için kamera yakınlaştırma davranışını test eder.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
Geçti: Kameranın doğru şekilde yakınlaştırdığını doğrulamak için yakalanan ArUco işaretçisinin göreceli boyutu, istenen yakınlaştırma oranıyla karşılaştırıldığında doğru olmalı ve işaretçi ile görüntü merkezi arasındaki mesafe, test_preview_zoom'da listelenen ölçütlere göre değişmelidir.
scene7_tele
scene7_tele
, scene7
ile aynıdır ancak telefoto lens testi için ayarlanmıştır. Dört eşit çeyreğe bölünmüş, her biri farklı bir renkle doldurulmuş dikdörtgen bir çerçevedir. Dikdörtgenin ortasında, keskinlik kontrolleri için eğimli kenarlı bir grafik yer alır. Dört ArUco işaretçisi, dikdörtgenin dört dış köşesiyle hizalanarak farklı yakınlaştırma oranlarında ana dikdörtgen çerçevesinin doğru koordinatlarının elde edilmesine 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 önizleme kaydı yapmak 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çılı lensten telefoto lense geçişi gösterir.
Çapraz geçiş noktasında ve öncesinde çekilen kareler AE, AWB ve AF için analiz edilir.
AE kontrolü, parlaklık değişikliğinin hem geniş hem de telefoto lens görüntülerinde 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 telefoto lens görüntüleri için 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 keskinlik tahmini değerini değerlendirir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_ZOOM_RATIO_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: Testin başarılı olması için AE, AWB ve AF kontrollerinin tümü başarılı olmalıdır. Her kontrolün kriterleri aşağıda verilmiştir:
- AE kontrolü: Geniş ve telefoto lens görüntüleri arasındaki parlaklık 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 değeri 10'u aşamaz.
- AF kontrolü: Tele lensin görüntü keskinliği, geniş açılı lensten daha yüksek olmalıdır.
scene_flash
scene_flash
testleri için sensör füzyon kutusunda karanlık bir sahne gerekir.
test_auto_flash
Arka ve ön kameralarda otomatik flaşın karanlık bir sahnede 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şın etkinleştirilmesiyle karo resminin ortasının daha parlak olduğunu kontrol ederek otomatik flaşın tetiklendiğini doğrular. Otomatik flaşı tetiklemek için test düzeneğindeki ışıkların kapatılması gerekir. Işıklar, Arduino denetleyicisiyle otomatik olarak kapatılabilir. Testin doğru çalışması için sahnenin tamamen karanlık olması gerekir. Testten önce cihaza Jetpack Camera App (JCA) yüklenmelidir. Arka kameralar için otomatik flaşın tetiklenmesi AE durumuna bağlıdır ancak ön kameralar için otomatik flaşın tetiklenmesi AE'ye bağlı değildir ve her zaman tetiklenir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
android.hardware.camera2.CaptureRequest#FLASH_MODE
Geçti: Otomatik flaş etkin durumdayken karo resminin merkezi, tüm kameralar için orijinal sahne resminden daha parlaktır.
test_flash_strength
SINGLE
modunda flaş gücü kontrolünün doğru şekilde uygulandığını test edin.
Cihazın, kamera kullanımı sırasında SINGLE
modunda flaş gücü kontrolünü destekleyip desteklemediğini ve istenen farklı güç seviyelerine göre flaş gücünün değişip değişmediğ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 yapmak için test düzeneğindeki ışıklar kapatılmalıdır. Işıklar, Arduino denetleyicisiyle otomatik olarak kapatılabilir. Testin doğru çalışması için sahnenin tamamen karanlık olması gerekir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_SINGLE_STRENGTH_MAX_LEVEL
Geçiş:
Otomatik pozlama modu ON
veya OFF
olduğunda, flaş gücü seviyesi flaşsızdan FLASH_SINGLE_STRENGTH_MAX_LEVEL
'e yükseldikçe görüntü yamalarının parlaklığı artar.
Otomatik pozlama modu ON_AUTO_FLASH
olduğunda, flaş gücü seviyesi flaşsızdan FLASH_SINGLE_STRENGTH_MAX_LEVEL
'ya yükselirken görüntü yamalarının parlaklık farkı tolerans dahilindedir.
test_led_snapshot
LED anlık görüntülerinin resmi doygunlaştırmadığını veya renklendirmediğini test eder.
Bu test, ışıkları kontrol etmek için Sensör Füzyon Kutusu'na bir aydınlatma denetleyicisi ekler. Işıklar OFF
olarak ayarlanmışken test, AUTO_FLASH
modu ON
olarak ayarlanmış şekilde çekim yapar. Bu yakalama sırasında test, aePrecapture
tetikleyicisi START
olarak ayarlanmış bir ön yakalama dizisi çalıştırır ve yakalamayı flaşla yapmak için yakalama amacını Preview
olarak ayarlar.
Çekimde flaş nedeniyle belirgin bir sıcak nokta olduğundan test, çekimin tamamının flaş görüntüsü ortalamasını hesaplar ve değerin (68, 102) aralığında olup olmadığını doğrular. Resmin makul ölçüde beyaz dengeli olup olmadığını kontrol etmek için kırmızı-yeşil ve mavi-yeşil oranları hesaplanır ve bu oranların 0,95 ile 1,05 arasında olup olmadığı doğrulanır.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_AVAILABLE
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
android.hardware.camera2.CaptureRequest#FLASH_MODE
Geçti: Kırmızı-yeşil ve mavi-yeşil oranları 0,95 ile 1,05 arasındadır. Flaş görüntüsünün ortalaması (68, 102) aralığında olmalıdır.
test_night_mode_indicator
Kameranın düşük ışık koşullarında çalışıp çalışmadığını ve gece modu kamera uzantısı ile çekilen fotoğraflardan yararlanıp yararlanmayacağını gösteren bir özellik olan gece modu göstergesinin işlevselliğini 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 aydınlatma koşullarını doğru şekilde yansıttığını kontrol eder. Testte aşağıdaki adımlar uygulanır:
- Başlatma: Test,
ItsSession
başlatır ve kamera özelliklerini alır. Aydınlatma denetleyicisiyle de bağlantı kurar. - Atlama Koşulları: Cihaz, gerekli API düzeyini veya gece modu göstergesi özelliğini desteklemiyorsa test atlanır.
- Camera2 Oturumu:
- Test,
Camera2
oturumunu kullanarak bir önizleme yakalama oturumu başlatır. - Işık açılır ve bir önizleme karesi yakalanır.
- Test, gece modu göstergesinin
OFF
durumunda olduğunu doğrular. - Işık kapatılır ve önizleme karesi yakalanır.
- Test, gece modu göstergesinin
ON
durumunda olduğunu doğrular.
- Test,
- Kamera uzantısı oturumu:
- Test,
Camera2
oturumundakiyle aynı prosedürü tekrarlar ancakEXTENSION_NIGHT
uzantısıylaCameraExtension
oturumu kullanır.
- Test,
- Temizleme: Test
ItsSession
kapanır ve aydınlatma denetleyicisi serbest bırakılır.
Test edilen API'ler:
Geçiş:
- Işık açıkken gece modu göstergesi
OFF
durumunda olmalıdır. - Işık kapalıyken gece modu göstergesi
ON
durumunda olmalıdır. - Hem
Camera2
hem deCameraExtension
oturumları için geçerlidir.
test_preview_min_frame_rate
Önizleme kare hızının karanlık bir sahnede doğru şekilde azaldığını test eder. Bu testin doğru şekilde çalışması için test düzeneğindeki ışıkların kontrol cihazı tarafından veya test operatörü tarafından manuel olarak kapatılması gerekir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.hardware.camera2.CaptureResult#CONTROL_AE_TARGET_FPS_RANGE
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: Önizleme kare hızı, istenen kare hızı aralığının minimum değerindedir ve kareler arasındaki varyasyon, testte belirlenen mutlak toleranstan daha azdır.
test_torch_strength
TORCH
modunda flaş gücü kontrolünün doğru şekilde uygulandığını test edin.
Cihazın TORCH
modunda kamera kullanılırken flaş gücü kontrolünü destekleyip desteklemediğini doğrular. Destekliyorsa istenen farklı güç seviyelerine göre el feneri gücünün 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 çekimini simüle ederek, patlama süresi boyunca el feneri gücünün aynı kaldığını doğrular. Testi yapmak için test düzeneğindeki ışıklar kapatılmalıdır. Işıklar, Arduino denetleyicisiyle otomatik olarak kapatılabilir. Testin doğru çalışması için sahnenin tamamen karanlık olması gerekir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_INFO_STRENGTH_MAXIMUM_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_DEFAULT_LEVEL
android.hardware.camera2.CameraCharacteristics#FLASH_TORCH_STRENGTH_MAX_LEVEL
Geçiş:
Otomatik pozlama modu ON
veya OFF
olduğunda, flaş gücü seviyesi flaşsızdan FLASH_TORCH_STRENGTH_MAX_LEVEL
seviyesine yükseldikçe patlama moduyla çekilen fotoğrafların parlaklığı artar.
Otomatik pozlama modu ON_AUTO_FLASH
olduğunda, flaş gücü seviyesi flaşsızdan FLASH_TORCH_STRENGTH_MAX_LEVEL
'ya yükselirken seri çekim görüntülerinin parlaklık farkı tolerans dahilindedir.
sensor_fusion
Sensör füzyonu testleri için telefonun dama deseni ve ArUco işaretlerinin önünde belirli bir şekilde hareket ettirilmesi gerekir. En iyi sonuçları elde etmek için test çizelgesinin düz bir şekilde monte edildiğini doğrulayın. Düz olmayan grafikler, testlerin birçoğunun rotasyon hesaplamalarını etkiler. Grafik, 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 142. Sensör birleştirme grafiği.
Şekil 143. Sensör füzyon kutusunun arka tarafını dolduran sensör füzyon grafiği.
test_lens_intrinsic_calibration
Optik görüntü sabitleme (OIS) nedeniyle mercek hareket ettiğinde merceğin doğal optik merkezinin değişip değişmediğini test eder. Lensin içsel örnekleri destekleniyorsa lensin içsel örneklerinin optik merkezinin, OIS nedeniyle lens hareket ettiğinde değiştiği test edilir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LENS_INTRINSIC_CALIBRATION
android.media.MediaRecorder
android.media.CamcorderProfile
Geçti: Merceğin optik merkezi 1 piksel veya daha fazla değişiyor. Lensin içsel örnekleri destekleniyorsa lensin içsel örneklerinin optik merkezleri 1 piksel veya daha fazla değişir.
Aşağıdaki şekil, her kare için piksel cinsinden ana noktaların değişikliklerini gösteren bir test_lens_intrinsic_calibration
grafiği örneğidir:
Şekil 144. Her bir kare için piksellerdeki temel noktaların değişikliklerini gösteren test_lens_intrinsic_calibration grafiği örneği.
test_multi_camera_frame_sync
Zaman damgasını belirlemek için dama tahtasındaki karelerin açılarını hesaplayarak mantıksal kamera tarafından yakalanan zaman damgalarının 10 ms içinde olduğunu gösteren testler.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LOGICAL_MULTI_CAMERA_SENSOR_SYNC_TYPE
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
android.hardware.camera2.params.OutputConfiguration#setPhysicalCameraId()
Geçti: Telefon döndürülürken her kameranın çektiği resimler arasındaki açı önemli ölçüde değişmiyor.
test_preview_distortion
Çeşitli yakınlaştırma düzeylerinde çekilen her önizleme karesinde bozulmanın düzeltildiğini test eder. Test, her önizleme karesi için ideal noktaları kameranın iç ve dış parametrelerine göre hesaplar.
Örnek resimde, ideal noktalar yeşil, gerçek noktalar ise kırmızı renkte 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 bulunduğu alanı görsel olarak tespit etmek için kullanılır.
Şekil 145. İ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_RANGE
android.hardware.camera2.CaptureRequest#CONTROL_ZOOM_RATIO
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: Her önizleme karesinin normalleştirilmiş bozulma hatası, testte belirlenen eşikten düşüktür.
test_preview_stabilization
Önizleme videosunu dengeleyen testler, jiroskopla daha az döner.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Geçti: Kareler üzerindeki maksimum açı dönüşü, jiroskop dönüşünün% 70'inden az.
Aşağıda, sabitleme özelliği kullanılan ve kullanılmayan örnek videolar yer almaktadır:
Şekil 146. Sabitleme özelliğinin kullanıldığı örnek video.
Şekil 147. Sabitleme uygulanmamış örnek video.
test_sensor_fusion
AR ve VR uygulamaları için kamera ile jiroskop arasındaki zaman damgası farkını test eder. Telefon, dama deseninin önünde 10 kez 90 derece döndürülür. Hareket yaklaşık 2 saniye gidiş dönüş sürüyor. Jiroskop yoksa veya zaman damgası kaynağı REALTIME
parametresi etkin değilse bu test atlanır.
test_sensor_fusion
testi, bir dizi grafik oluşturur. Hata ayıklama için en önemli iki grafik şunlardır:
test_sensor_fusion_gyro_events
: Test sırasında telefonun jiroskop etkinliklerini gösterir. X ve Y yönündeki hareket, telefonun montaj plakasına güvenli bir şekilde monte edilmediği anlamına gelir. Bu da testin geçme olasılığını azaltır. Grafikteki döngü sayısı, kareleri kaydetmek için gereken yazma hızına bağlıdır.Şekil 148. test_sensor_fusion jiroskop etkinlikleri örneği.
test_sensor_fusion_plot_rotations
: Jiroskop ve kamera etkinliklerinin hizalanmasını gösterir. Bu grafik, kamera ile jiroskop arasında +/- 1 ms'ye kadar eşleşen hareketi göstermelidir.Şekil 149. test_sensor_fusion grafiği döndürme örneği.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#LENS_FACING
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE
android.hardware.camera2.CameraMetadata#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
android.hardware.camera2.CaptureRequest#SENSOR_FRAME_DURATION
android.hardware.camera2.CaptureRequest#SENSOR_TIMESTAMP
android.hardware.camera2.CaptureResult#SENSOR_ROLLING_SHUTTER_SKEW
Geçti: CDD'deki 7.3.9 Yüksek Doğruluklu Sensörler bölümüne göre kamera ve jiroskop zaman damgalarının farkı 1 ms'den az.
Hata mekanizmaları:
- Ofset hatası: Kamera-jiroskop ofseti +/-1 ms içinde olacak şekilde doğru şekilde kalibre edilmemiş.
- Kare düşmeleri: İşlem hattı, 200 kareyi art arda yakalayacak kadar hızlı değil.
- Soket hataları:
adb
, testi yürütecek kadar uzun süre güvenilir bir şekilde DUT'a bağlanamıyor. - Grafik düz bir şekilde monte edilmemiş. Grafik
test_sensor_fusion_plot_rotations
düz olmayan grafik bölümlerinde kamera döndükçe jiroskop ve kamera dönüşünün önemli ölçüde değiştiği kareler içeriyor. - Kamera düz bir şekilde monte edilmemiş. Grafik,
test_sensor_fusion_gyro_events
X ve Y düzlemlerindeki hareketi gösterir. Bu arıza, arka kamera genellikle telefon gövdesinin geri kalan kısmına göre yükseltilmiş bir çıkıntıya sahip olduğundan ve telefonun arkasını montaj plakasına takarken eğim oluşturduğundan ön kameralarda daha yaygındır.
test_video_stabilization
Videoyu, jiroskopun döndürdüğünden daha az döndürerek sabitleyen testler.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.MediaRecorder
android.media.CamcorderProfile
Geçti: Kareler üzerindeki maksimum açı dönüşü, jiroskop dönüşünün% 60'ından az.
Aşağıda, dengeleme özelliği etkin ve devre dışı bırakılmış örnek videolar yer almaktadır.
Şekil 150. Sabitleme özelliğinin kullanıldığı örnek video.
Şekil 151. Sabitleme uygulanmamış örnek video.
test_video_stabilization_jca
JCA kullanılarak çekilen videoları dengeleyen testlerde, jiroskopla çekilen videolara kıyasla daha az döndürme yapılıyor. Testten önce JCA, cihaza yüklenmelidir.
Test edilen API'ler:
android.hardware.camera2.CameraCharacteristics#SCALAR_AVAILABLE_CAPABILITIES_STREAM_USE_CASES
android.media.CamcorderProfile
android.media.MediaRecorder
Geçti: JCA kullanılarak çekilen videodan çıkarılan karelerdeki maksimum açı dönüşü, jiroskop dönüşünün% 70'inden azdır.
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ı görüntüsü kullanılır.
test_feature_combination
Farklı akış kombinasyonları, video sabitleme modu, hedef FPS aralığı, 10 bit HDR video ve Ultra HDR'nin kamera cihazı tarafından desteklenen 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. Hata onayları yalnızca isSessionConfigurationSupported
'nın True
döndürdüğü özellik kombinasyonları için çağrılır.
Test edilen API'ler:
android.hardware.camera2.CameraDevice.CameraDeviceSetup#isSessionConfigurationSupported
android.hardware.camera2.CameraDevice.CameraDeviceSetup#createCaptureRequest
Geçti: Desteklenen her özellik kombinasyonu için:
- Önizleme sabitleme özelliği açıksa önizleme akışı sabitlenir.
- Önizleme kare hızı, yapılandırılan
AE_TARGET_FPS_RANGE
içinde olmalıdır. - Kaydedilen önizleme akışının renk alanı, ayarlanan renk alanıyla eşleşir.
- Ultra HDR yakalama işleminde geçerli bir kazanç haritası var.
scene_ip
Android 16 ve sonraki sürümlerde, sahne scene_ip
, çekilen görüntüler arasındaki büyük farklılıkları belirlemek için varsayılan kamera uygulaması ile Jetpack kamera uygulaması (JCA) arasında görüntü eşliği kontrolleri yapılmasını sağlar. JCA, sosyal medya uygulaması çekimlerini kopyalar ve sosyal medya uygulamalarının işleyip iyileştirdiği 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, Gen2 kamera ITS-in-a-box'ta yürütülür.
- 2. nesil düzeneğin parçası olan ışıklandırma ve servo denetleyiciler, test ortamını kontrol etmek için kullanılır.
- 2. nesil rig'in içine bir test özelliği grafiği yerleştirilir.
Şekil 152. 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üşüktür. - Cihaz, ön ve arka birincil kamera cihazlarına sahip bir telefon cihazı değildir (ör. tablet veya TV).
test_default_jca_ip
Varsayılan kamera uygulaması ve JCA kullanılarak kontrollü ışık koşullarında test özelliği grafiğinin çekimlerini yapar ve aşağıdaki kontrolleri gerçekleştirir:
Görüş alanı: Varsayılan kamera uygulaması ve JCA çekimlerinin aynı görüş alanına sahip olup olmadığını kontrol eder. Bu kontrol, yakalanan grafik görüntüsünden çıkarılan merkezdeki QR kodu özelliğini kullanır.
Parlaklık: Varsayılan kamera uygulaması ile JCA arasında ölçülen parlaklık farkının 10'u aşmadığını kontrol eder. Bu kontrol, parlaklık ölçümü için dinamik aralık yamasını kullanır.
Beyaz dengesi: Varsayılan kamera uygulaması ile JCA arasındaki beyaz dengesi farkının 4'ü aşmadığını kontrol eder. Bu kontrol, parlaklık ölçümü için dinamik aralık yamasını kullanır.
Temel bölüm geçişi: Test, görüş alanı, parlaklık ve beyaz dengesi kontrollerini geçer. Android 16'da bu test zorunlu değildir
(NOT_YET_MANDATED
).