Bu sayfa, 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 listesini sunar. ITS testleri, görüntü kalitesini ölçmedikleri, ancak reklamı yapılan tüm kamera işlevlerinin beklendiği gibi çalıştığı anlamına gelen işlevsel testlerdir. Bu belge, geliştiricilerin ve test uzmanlarının tek tek testlerin ne yaptığını ve test hatalarının nasıl hata ayıklanacağını anlamalarını sağlar.
Testler sahneye göre aşağıdaki gibi gruplandırılmıştır:
- Scene0 : Meta verileri, titreşimi, jiroskopu, titreşimi yakalayın
- sahne1 : Pozlama, hassasiyet, EV telafisi, YUV vs JPEG/RAW
- Scene2 : Yüz algılama
- Scene3 : Kenar geliştirme, lens hareketi
- Scene4 : En boy oranı, kırpma, görüş alanı
- Scene5 : Mercek gölgelemesi
- sahne6 : Yakınlaştır
- sensor_fusion : Kamera/jiroskop zamanlama kayması
Her sahnenin açıklaması için ayrı bölümlere bakın.
sahne0
Scene0 testleri, belirli bir sahne bilgisi gerektirmez. Ancak jiroskop ve titreşim testi için telefonun sabit olması gerekir.
test_burst_capture
Tüm yakalama işlem hattının tam boyutlu yakalama hızına ve CPU süresine ayak uydurabileceğini doğrular.
Test edilen API'ler:
Başarılı: Tam boyutlu görüntülerden oluşan bir seri çekim yapar ve kamera zaman aşımını önlemek için yeterince hızlıdır.
test_capture_result_dump
El ile bir yakalamadan bir yakalama sonucunun döndürüldüğünü test eder ve ardından bunu döküm yapar.
Test edilen API'ler:
Başarılı: Yakalamayı tamamlar ve yakalama sonuçlarını atar.
test_gyro_bias
Cihaz sabitken jiroskopun kararlı çıkışa sahip olup olmadığını test eder. Veriler, ortalama 20 veri noktası olarak çizilir.
Test edilen API'ler:
Başarılı: Döner okumanın deltası zaman içinde 0,01'den azdır.
test_gyro_bias_plot.png
test_jitter
Kamera zaman damgalarındaki titreşimi ölçer.
Test edilen API'ler:
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_TARGET_FPS_RANGE
Başarılı: Çerçeveler arasında en az 30 ms'lik bir delta var.
test_jitter_plot.png (Küçük y ekseni aralığına dikkat edin. Bu çizimde sapma aslında küçüktür.)
test_metadata
Meta veri girişlerinin geçerliliğini test eder. Yakalama sonuçlarına ve kamera özellikleri nesnelerine bakar. Bu test, auto_capture_request
gösterimini kullanır ve görüntü içeriği önemli olmadığından değerler kazanı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
Başarılı: Donanım seviyesi, rollingShutterSkew
, frameDuration
etiketleri, timestampSource
, croppingType
, blackLevelPattern
, pixel_pitch
, FOV, hyperfocal Distance mevcut ve geçerli değerlere sahip.
test_param_sensitivity_burst
android.sensor.sensitivity
parametresinin patlamada düzgün şekilde uygulanıp uygulanmadığını test eder. Yalnızca çıktı meta verilerini inceler.
Test edilen API'ler:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_SENSITIVITY_RANGE
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Başarılı: Çıktı verilerinin hata toleransı %0,2'den azdır.
test_read_write
Yakalama meta verilerini geri okuyarak cihazın doğru pozlama ve kazanç değerleri 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
Başarılı: Okuma ve yazma değerleri tüm çekimlerde eşleşir.
test_sensor_events
Sensör birleştirme desteğinin reklamını yapan cihazlar için cihazın sensör olaylarını sorguladığını ve yazdırdığını test eder. Beklenen sensörler ivmeölçer, jiroskop ve manyetometredir. Bu test yalnızca ekran açıksa, yani cihaz bekleme modunda değilse çalışır.
Test edilen API'ler:
Başarılı: Her sensör için olaylar alınır.
test_solid_color_test_pattern
Düz renk test desenlerinin kamera sesini kapatmak için düzgün şekilde oluşturulduğunu test eder. Kamera sesini kapatma destekleniyorsa, düz renk test desenleri desteklenmelidir. Kamera sesini kapatma desteklenmiyorsa, düz renk test desenleri yalnızca yeteneğin tanıtılması durumunda test edilir.
RAW görüntüler destekleniyorsa renk ataması da test edilir. Test edilen renkler siyah, beyaz, kırmızı, mavi ve yeşildir. RAW görüntüleri desteklemeyen kameralar için yalnızca siyah test edilir.
Test edilen API'ler:
-
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_DATA
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Başarılı: Desteklenen katı test desenleri doğru renktedir ve görüntüde düşük sapma vardır.
test_test_pattern
Her geçerli test deseni için kareleri yakalamak için 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 görüntüler yakalar.
- Düz renk test deseni ve renk çubukları için basit bir doğruluk denetimi gerçekleştirir.
Test edilen API'ler:
-
android.hardware.camera2.CameraCharacteristic#SENSOR_AVAILABLE_TEST_PATTERN_MODES
-
android.hardware.camera2.CaptureResult#SENSOR_TEST_PATTERN_MODE
Başarılı: Desteklenen test desenleri doğru şekilde oluşturulur.
test_test_patterns_2.jpg
test_tonemap_curve
Doğrusal ton haritası ile test deseninin RAW'dan YUV'ye dönüşümünü test eder. Bu test, tonemap dönüştürme için mükemmel bir görüntü deseni oluşturmak için android.sensor.testPatternMode = 2
(COLOR_BARS) gerektirir. Doğrusal ton haritası ve ideal görüntü girişi ile ardışık düzenin uygun renk çıktılarına sahip olmasını sağlar ( test_test_patterns
dayanı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
Başarılı: YUV ve RAW birbirine benziyor.
test_tonemap_curve_raw_2.jpg
test_tonemap_curve_yuv_2.jpg
test_unified_timestamp
Görüntü ve hareket sensörü olaylarının 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
Başarılı: Hareket zaman damgaları, iki görüntü 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
Başarılı: Cihaz, kamera ses kısıtlama API'sı tarafından sesi kapatıldığında titreşmez.
sahne 1
sahne1 gri bir grafiktir. Gri çizelge, kamera görüş alanının merkezi %30'unu kapsamalıdır. Merkez bölgenin hiçbir özelliği olmadığı için gri grafiğin 3A'yı (otomatik pozlama, otomatik beyaz dengesi, otomatik odaklama) orta derecede zorlaması bekleniyor. Ancak, yakalama talebi, 3A'nın yakınsaması için yeterli özellikleri içeren tüm sahneyi belirtir.
RFoV kameralar, WFoV veya RFoV test teçhizatında test edilebilir. Bir RFoV kamera WFoV test teçhizatında test edilirse, 3A'nın yakınsamasına yardımcı olmak için FoV'deki gri grafiğin bazı sınırlarını sağlamak için grafik ⅔ ile ölçeklenir.
sahne1: Tam boyut tablosu (solda). ⅔ ölçekli tablo (sağda).
test_3a
Orta derecede zorlu bir hedefle 3A'nın yakınsamasını test eder.
Test edilen API'ler:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Başarılı: 3A yakınsar ve döndürülen 3A değerleri geçerlidir.
test_ae_af
3A otomatik pozlama (AE) ve otomatik odaklama (AF) algoritmalarını ayrı ayrı test eder.
Test edilen API'ler:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AF_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Başarılı: 3A yakınsar ve döndürülen 3A değerleri yasaldır.
test_ae_precapture_trigger
Ön yakalama tetikleyicisini kullanırken AE durum makinesini test eder. AE devre dışıyken beş manuel isteği yakalar. Son istek, AE devre dışı bırakıldığından göz ardı edilmesi gereken bir AE ön yakalama tetikleyicisine sahiptir.
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çer: AE yakınsar.
test_auto_vs_manual
Otomatik ve manuel çekim yapan 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
Başarılı: Her bir yakalama sonucunda bildirilen manuel beyaz dengesi kazanımları ve dönüşümü, kameranın 3A algoritmasından elde edilen otomatik beyaz dengesi estimate
eşleşir.
test_auto_vs_manual_auto.jpg
test_auto_vs_manual_wb.jpg
test_auto_vs_manual_manual_wb_tm.jpg
test_black_white
Cihazın tam siyah beyaz görüntüler ürettiğini test eder. İlki siyah bir fotoğrafla sonuçlanan son derece düşük kazançlı ve kısa pozlu, ikincisi ise beyaz bir fotoğrafla sonuçlanan son derece yüksek kazançlı ve uzun pozlu iki çekim yapar.
Test edilen API'ler:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Geçer: Siyah beyaz görüntüler üretir.
![]() | ![]() | |
test_black_white_black.jpg | test_black_white_white.jpg |
test_black_white_plot_means.png
test_burst_sameness_manual
Manuel yakalama ayarıyla 50 görüntüden oluşan 5 seri çekim yapar ve hepsinin aynı olup olmadığını kontrol eder. Bu test, farklı şekilde işlenen veya yapaylık içeren düzensiz çerçeveler olup olmadığını belirlemek için kullanılabilir.
Test edilen API'ler:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR
-
android.hardware.camera2.CameraMetadata#SYNC_MAX_LATENCY_PER_FRAME_CONTROL
Başarılı: Görüntüler görsel olarak ve RGB değerlerinde aynıdır.
Başarısız: Her patlamanın başlangıcında RGB ortalama grafiğinde bir artış veya düşüş gösterir
- Tolerans,
first_API_level
< 30 için %3'tür - Tolerans,
first_API_level
>= 30 için %2'dir
test_burst_sameness_manual_mean.jpg
test_burst_sameness_manual_plot_means.png
test_capture_result
Geçerli verilerin CaptureResult
nesnelerinde geri geldiğine dair testler. Otomatik, manuel ve otomatik yakalama yapar.
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
Başarılı: Meta veriler tüm yakalamalar için geçerlidir ve manuel ayarlar ikinci otomatik yakalamaya sızmaz. Yakalamalar için lens gölgeleme düzeltmesini gösterir.
test_capture_result_plot_lsc_auto_ch0.png
test_channel_sauration
Görüntünün doygun bölgelerindeki renk tonunu ortadan kaldırmak için RGB kanallarının eşit olarak doygunluğunu 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
Başarılı: Doymuş kanalların RGB değerleri [255, 255, 255] %1'den az hata payıyla.
test_channel_sauration.jpg
test_crop_region_raw
RAW akışlarının kırpılabilir olmadığını test eder.
Test edilen API'ler:
-
android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE
-
android.hardware.camera2.CaptureResult#SCALER_CROP_REGION
-
android.hardware.camera2.CaptureRequest#SCALER_CROP_REGION
Başarılı: YUV görüntüleri merkezden kırpılır ancak RAW görüntüler olmaz.
test_crop_region_raw_comp_raw_crop.jpg
test_crop_region_raw_comp_raw_full.jpg
test_crop_region_raw_comp_yuv_crop.jpg
test_crop_region_raw_yuv_full.jpg
test_crop_regions
Kırpma bölgelerinin işe yaradığı testler. Tam bir resim çeker ve 5 farklı bölgeden (köşeler ve merkez) oluşan yamalar oluşturur. 5 bölge için kırpma seti ile 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 görüntüsü, kırpma görüntüsüne karşılık gelen yamayla eşleşir.
test_dng_noise_model
DNG ham model parametrelerinin doğru olduğunu doğrular. Çizim, bir dizi hassasiyette yakalanan ham çekimlerde gri kartın bir merkez yamasının ölçülen varyansını gösterir ve bu değerleri, kamera HAL'ındaki DNG gürültü modeli tarafından her bir hassasiyette beklenen varyansla karşılaştırır ( Yakalama sonucu nesnelerinde döndürülen O,S parametreleri). DNG gürültü modeli hakkında daha fazla ayrıntı 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
Başarılı: DNG ham model parametreleri doğru. Beklenen RGB değerleri, ölçülen gerçek RGB değerleriyle eşleşir.
test_dng_noise_model_plog.png
test_ev_compensation_advanced
Pozlama değeri (EV) telafisinin uygulandığını test eder. Test, pozlamayı sekiz adımda artırır ve ölçülen parlaklığı beklenen parlaklığa karşı kontrol eder. Beklenen değerler, hiçbir EV telafisi uygulanmadan görüntünün görüntü parlaklığından hesaplanır ve hesaplanan değerler gerçek görüntü değeri aralığını aşarsa beklenen değer doygun hale gelir. Beklenen değerler ve ölçülen değerler eşleşmezse veya görüntüler beş adımda aşırı pozlanırsa test başarısız olur.
Test edilen API'ler:
Başarılı: Görüntüler, beş adımda aşırı pozlama olmadan artan pozlamayı gösterir.
test_ev_compensation_advanced_plot_means.png
test_ev_compensation_basic
Pozlamayı kademeli olarak artırarak EV telafisinin uygulandığını test eder. Görüntüler pozlamayı kademeli olarak artırır, ancak test_ev_compensation_advanced
testinde olduğu gibi aşırı pozlama yapmaz.
Test edilen API'ler:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_LOCK
-
android.hardware.camera2.CaptureResult#CONTROL_AE_EXPOSURE_COMPENSATION
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
Başarılı: Luma artışını yakalar.
test_ev_compensation_basic.png
test_exposure
ISO ve pozlama süresi değişiklik gösterdiğinde sabit bir pozlamanın elde edildiğini test eder. ISO ve pozlama süresi birbirini dengelemek için seçilmiş bir dizi çekim yapar. Sonuçlar aynı parlaklığa sahip olmalıdır, ancak dizi boyunca görüntü daha gürültülü hale gelmelidir. Örnek piksel ortalama değerlerinin birbirine yakın olduğunu doğrular. Görüntülerin 0 veya 1'e sabitlenmemesini sağlar (bu, onları düz çizgiler gibi gösterir).
Test edilen API'ler:
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Başarılı: Görüntüler aynı parlaklığa sahiptir, ancak daha yüksek ISO ile daha gürültülü hale gelir. RGB düzlemleri, sabit ISO pozlama ile düzdür.
test_exposure_plot_means.png
![]() | ![]() | |
test_exposure_mult=1.00.jpg | test_exposure_mult=64.00.jpg |
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 %10'luk merkezini alır ve RGB değerini hesaplar ve eşleştiğini doğrular.
Test edilen API'ler:
Başarılı: Her görüntü arasındaki ortalama RGB farkı %3'ten azdır.
![]() | ![]() | |
test_jpeg_fmt=jpg.jpg | test_jpeg=fmt=yuv.jpg |
test_laching
FULL
ve LEVEL_3
kameralar için ayarların (pozlama ve kazanç) sağ çerçevede kilitlendiğini test eder. Çekimler arasında yakalama isteği parametrelerini değiştirerek, arka arkaya istekleri kullanarak bir dizi çekim yapar. Görüntülerin beklenen özelliklere sahip olup olmadığını kontrol eder.
Test edilen API'ler:
Başarılı: Görüntüler [2, 3, 6, 8, 10, 12, 13] artırılmış ISO'ya veya pozlamaya sahiptir ve test_latching_plot_means.png
üzerinde daha yüksek RGB araçlarıyla görünür.
![]() | ![]() | ![]() | |
test_laching_i=00.jpg | test_laching_i=01.jpg | test_laching_i=02.jpg | |
![]() | ![]() | ![]() | |
test_laching_i=03.jpg | test_laching_i=04.jpg | test_laching_i=05.jpg | |
![]() | ![]() | ![]() | |
test_laching_i=06.jpg | test_laching_i=07.jpg | test_laching_i=08.jpg | |
![]() | ![]() | ![]() | |
test_laching_i=09.jpg | test_laching_i=10.jpg | test_laching_i=11.jpg | |
![]() | |||
test_laching_i=12.jpg |
test_latching_plot_means.png
test_linearity
Cihaz işlemenin doğrusal piksellere dönüştürülebileceğini test eder. Cihaz tek tip bir hedefe doğrultulmuş haldeyken 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
Başarılı: R, G, B değerleri artan hassasiyetle lineer olarak artmalıdır.
test_linearity_plot_means.png
test_locked_burst
3A kilidi ve YUV patlamasını test eder (otomatik ayarı kullanarak). Bu test, MANUAL_SENSOR
veya PER_FRAME_CONTROLS
özelliğine sahip olmayan sınırlı cihazlarda bile geçecek şekilde tasarlanmıştır. Test, kare hızı kontrolü CTS'deyken 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
Başarılı: Yakalamalar tutarlı görünüyor.
test_locked_burst_frame0.jpg
test_locked_burst_frame1.jpg
test_locked_burst_frame2.jpg
test_multi_camera_match
Cihazlardaki çoklu kameraların gri bir yama için benzer RGB değerleri verip vermediğini test eder.
Test edilen API'ler:
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_AVAILABLE_FOCAL_LENGTHS
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA
-
android.hardware.camera2.CaptureRequest#LENS_FOCAL_LENGTH
Başarılı: Farklı kameralar aynı gri yama için benzer RGB değerleri üretir.
test_multi_camera+match_yuv_fl=4.38.jpg
test_param_color_correction
android.colorCorrection.*
parametrelerinin uygulanıp uygulanmadığını test eder. Farklı dönüşüm ve kazanç değerleriyle çekim yapar ve buna bağlı olarak farklı göründüklerini test eder. Dönüştürme ve kazançlar, çıktıyı giderek daha fazla kırmızı veya mavi yapacak şekilde seçilir. Doğrusal bir ton haritası kullanır. Ton eşleme, daha sınırlı dinamik aralığa sahip bir ortamdaki yüksek dinamik aralıklı görüntülerin görünümünü yaklaşık olarak tahmin etmek için bir renk kümesini diğerine eşlemek için görüntü işlemede kullanılan bir tekniktir.
Test edilen API'ler:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_MODE
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
Başarılı: R ve B değerleri dönüşüme göre yükselir.
test_param_color_correction_plot_means.png
*X ekseni yakalama istekleridir: 0 = birlik, 1=kırmızı güçlendirme, 2=mavi güçlendirme
test_param_color_correction_req=0.jpg
test_param_color_correctness_req=1.jpg (R güçlendirme)
test_param_color_correction_req=2.jpg (B güçlendirme)
test_param_exposure_time
android.sensor.exposureTime
parametresinin uygulanıp uygulanmadığını test eder.
Test edilen API'ler:
Başarılı: Her çekim bir önceki çekimden daha parlaktır.
test_param_exposure_time_frame0.jpg
test_param_exposure_time_plot.png
test_param_flash_mode
android.flash.mode
parametresinin uygulanıp uygulanmadığını test eder. Pozlamayı manuel olarak karanlık tarafta olacak şekilde ayarlar, böylece flaşın patlayıp patlamadığı belli olur ve doğrusal bir ton haritası kullanır. Flaşın patlayıp patlamadığını doğrulamak için oluşturulmuş büyük bir degrade olup olmadığını görmek için döşeme görüntüsünün merkezini kontrol eder.
Test edilen API'ler:
Başarılı: Döşeme görüntüsünün merkezi, flaşın patladığı anlamına gelen büyük bir eğime sahiptir.
test_param_flash_mode_1.jpg
test_param_flash_mode_1_tile.jpg
test_param_flash_mode_2.jpg
test_param_flash_mode_2_tile.jpg
test_param_noise_reduction
android.noiseReduction.mode
parametresinin ayarlandığında doğru şekilde uygulanıp uygulanmadığını test eder. Fotoğraf makinesi loş ışıktayken fotoğraf çeker. Yakalanan görüntünün gürültülü olmasını sağlamak için yüksek bir analog kazanç kullanır. NR kapalı, "hızlı" ve "yüksek kalite" için üç görüntü yakalar. Ayrıca düşük kazançlı ve NR kapalı bir görüntü yakalar ve bunun varyansını temel olarak kullanır. SNR (Sinyal-Gürültü Oranı) ne kadar yüksek olursa, görüntü kalitesi o kadar iyi olur.
Test edilen API'ler:
Başarılı: SNR, farklı gürültü azaltma modlarına göre değişir ve aşağıdaki grafikle benzer şekilde davranır.
test_param_noise_reduction_plot_SNRs.png
0: KAPALI, 1: HIZLI, 2: HQ, 3: MIN , 4: ZSL
test_param_noise_reduction_high_gain_nr=0.jpg
test_param_noise_reduction_high_gain_nr=1.jpg
test_param_noise_reduction_high_gain_nr=2.jpg
test_param_noise_reduction_high_gain_nr=3.jpg
test_param_noise_reduction_low_gain.jpg
test_param_sensitivity
android.sensor.sensitivity
parametresinin uygulanıp uygulanmadığını test eder. Test, her çekim için sabit pozlama ile hassasiyeti 5 adımda artırır.
Test edilen API'ler:
Başarılı: RGB, merkezin %10'luk anlamı, artan hassasiyetle daha parlak hale gelir.
test_param_sensitivity_iso=0055.jpg
test_param_sensitivity_iso=1819.jpg
test_param_sensitivity_iso=3583.jpg
test_param_sensitivity_iso=5347.jpg
test_param_sensitivity_iso=7111.jpg
test_param_sensitivity_plot.png
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
Başarılı: Gölgeleme modları değiştirilir ve lens gölgeleme haritaları beklendiği gibi değiştirilir.
test_param_shading_mode_ls_maps_mode_0_loop_0.png
test_param_shading_mode_ls_maps_mode_1_loop_0.png
test_param_shading_mode_ls_maps_mode_2_loop_0.png
test_param_tonemap_mode
android.tonemap.mode parametresinin uygulanıp uygulanmadığını test eder. Her R, G, B kanalına farklı tonmap eğrileri uygular ve çıktı görüntülerinin 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.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Geçmek:
- test1: Her iki görüntünün de doğrusal bir ton haritası vardır, ancak n=1 daha dik bir eğime sahiptir. G (yeşil) kanalı n=1 görüntü için daha parlaktır.
- test2: Aynı ton haritası, ancak farklı uzunluk. Görüntüler aynı.
![]() | ![]() | |
test_param_tonemap_mode_n=0.jpg | test_param_tonemap_mode_n=1.jpg |
test_post_raw_sensitivity_boost
RAW hassasiyet artışını kontrol eder. Farklı hassasiyette bir dizi RAW ve YUV görüntüsü yakalar, RAW duyarlılığı artırma kombinasyonunu gönderir ve çıktı pikseli ortalamasının istek ayarlarıyla eşleşip eşleşmediğini kontrol eder.
Test edilen API'ler:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
Başarılı: Yükseltme arttıkça RAW görüntüler daha koyulaşırken YUV görüntüleri parlaklıkta sabit kalır
test_post_raw_sensitivity_boost_raw_s=3583_boost=0100.jpg
test_post_raw_sensitivity_boost_raw_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_raw_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_raw_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_raw_s=0224_boost=1600.jpg
test_post_raw_sensitivity_boost_raw_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_raw_plot_means.png
test_post_raw_sensitivity_boost_yuv_s=0112_boost=3199.jpg
test_post_raw_sensitivity_boost_yuv_s=0448_boost=0800.jpg
test_post_raw_sensitivity_boost_yuv_s=0896_boost=0400.jpg
test_post_raw_sensitivity_boost_yuv_s=1792_boost=0200.jpg
test_post_raw_sensitivity_boost_yuv_s=3585_boost=0100.jpg
test_post_raw_sensitivity_boost_yuv_plot_means.png
test_raw_burst_sensitivity
Artan kazançlarla bir dizi ham görüntü yakalar ve gürültüyü ölçer. Bir patlamada yalnızca ham 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
Pas: Kazanç arttıkça her atış bir önceki atıştan daha gürültülüdür.
Merkez istatistik ızgara hücresinin varyansını kullanır.
test_raw_burst_sensitivity_variance.png
test_raw_exposure
Artan pozlama süresiyle 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
Başarılı: ISO'yu (kazanç) artırmak, pikselleri ışığa daha duyarlı hale getirir, böylece çizim sola doğru hareket eder.
test_raw_exposure_s=55.png
(10⁰ 1 ms'dir, 10¹ 10 ms'dir, 10⁻¹ 0,1 ms'dir)
test_raw_exposure_s=132.png
test_raw_exposure_s=209.png
test_raw_exposure_s=286.png
test_raw_exposure_s=363.png
test_raw_exposure_s=440.png
test_raw_sensitivity
Artan hassasiyetlerle bir dizi ham görüntü yakalar ve görüntünün %10'luk merkezindeki gürültüyü (varyansı) ölçer. Her atışın 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
Pas: Varyans her atışta artar.
test_raw_sensitivity_variance.png
test_reprocess_noise_reduction
Yeniden işleme istekleri için android.noiseReduction.mode
öğesinin uygulandığını test eder. Kamera loş ışıktayken yeniden işlenmiş görüntüleri yakalar. Yakalanan görüntünün gürültülü olmasını sağlamak için yüksek bir analog kazanç kullanır. NR kapalı, "hızlı" ve "yüksek kalite" için yeniden işlenmiş üç görüntü yakalar. Düşük kazanç ve NR kapalı ile yeniden işlenmiş bir görüntü yakalar ve bunun varyansını temel olarak kullanır.
Test edilen API'ler:
Geçer: HIZLI >= KAPALI, HQ >= HIZLI, HQ >> KAPALI
Tipik SNR ve NR_MODE grafiği
test_tonemap_sequence
Farklı ton haritası eğrileriyle bir dizi çekimi test eder. Doğrusal bir ton haritasıyla 3 manuel çekim yapar. Varsayılan ton haritasıyla 3 manuel çekim yapar. Her ardışık çerçeve çifti arasındaki deltayı hesaplar.
Test edilen API'ler:
Başarılı: 3 özdeş çerçeve ve ardından farklı bir 3 özdeş çerçeve kümesi vardır.
test_tonemap_sequence_i=0.jpg
test_tonemap_sequence_i=1.jpg
test_tonemap_sequence_i=2.jpg
test_tonemap_sequence_i=3.jpg
test_tonemap_sequence_i=4.jpg
test_tonemap_sequence_i=5.jpg
test_yuv_jpeg_all
Görüntü yakalama için bildirilen tüm boyutların ve biçimlerin çalıştığını test eder. YUV ve JPEG'in its.image modülü tarafından dönüştürüldüğünde aynı görünmesi için doğrusal ton haritasına sahip manuel bir istek kullanır.
Test edilen API'ler:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
Başarılı: Tüm görüntü merkezleri, en yüksek çözünürlüklü YUV görüntüsünün %3'ü ile RGB dönüştürülmüş görüntülerde maksimum RMS (bir sinyalin kök-ortalama-kare değeri) farkına sahiptir.
test_yuv_jpeg_all.png
test_yuv_plus_dng
Görüntü yakalama için bildirilen boyutların ve biçimlerin çalıştığını test eder.
Test edilen API'ler:
Başarılı: Test tamamlanır ve istenen görüntüleri döndürür.
test_yuv_plus_dng.jpg
test_yuv_plus_jpeg
Hem YUV hem de JPEG çıktıları olarak tek bir kare yakalamayı test eder. YUV ve JPEG'in aynı görünmesi için doğrusal ton haritasına sahip manuel bir istek kullanır ( its.image
modülü tarafından dönüştürüldüğünde).
Test edilen API'ler:
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
-
android.graphics.ImageFormat#JPEG
Başarılı: YUV ve JPEG görüntüleri benzerdir ve %1'den az RMS (bir sinyalin kök-ortalama-kare değeri) farkına sahiptir.
![]() | ![]() | |
test_yuv_plus_jpg_jpg.jpg | test_yuv_plus_jpeg_yuv.jpg |
test_yuv_plus_raw
Hem RAW hem de YUV çıktıları olarak tek bir kare yakalamayı test eder. Doğrusal ton haritası ile manuel bir istek kullanır, bu nedenle RAW ve YUV'nin aynı olması beklenir. RGB dönüştürülmüş görüntülerin merkezi %10 RGB değerlerini karşılaştırır. android.shading.mode
günlüğe kaydeder.
Test edilen API'ler:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
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
Başarılı: YUV ve JPEG görüntüleri benzerdir ve %3,5'ten az RMS (bir sinyalin kök-ortalama-kare değeri) farkına sahiptir.
![]() | ![]() | |
test_yuv_plus_raw_shading=1_raw.jpg | test_yuv_plus_raw_shading=1_yuv.jpg |
test_yuv_plus_raw10
Hem RAW10 hem de YUV çıktıları olarak tek bir kare yakalamayı test eder. Doğrusal ton haritası ile manuel bir istek kullanır, bu nedenle RAW ve YUV'nin aynı olması beklenir. RGB dönüştürülmüş görüntülerin merkezi %10 RGB değerlerini karşılaştırır. android.shading.mode
günlüğe kaydeder.
Test edilen API'ler:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
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
Başarılı: RAW10 ve YUV görüntüleri benzerdir ve %3,5'ten az RMS (bir sinyalin kök-ortalama-kare değeri) farkına sahiptir.
![]() | ![]() | |
test_yuv_plus_raw10_shading=1_raw.jpg | test_yuv_plus_raw10_shading=1_yuv.jpg |
test_yuv_plus_raw12
Hem RAW12 hem de YUV çıktıları olarak tek bir kare yakalamayı test eder. Doğrusal ton haritası ile manuel bir istek kullanır, bu nedenle RAW ve YUV'nin aynı olması beklenir. RGB dönüştürülmüş görüntülerin merkezi %10 RGB değerlerini karşılaştırır. android.shading.mode
günlüğe kaydeder.
Test edilen API'ler:
-
android.hardware.camera2.CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_RAW
-
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#RAW12
Başarılı: RAW12 ve YUV görüntüleri benzerdir ve %3,5'ten daha az RMS (bir sinyalin kök-ortalama-kare değeri) farkına sahiptir.
![]() | ![]() | |
test_yuv_plus_raw12_shading=1_raw.jpg | test_yuv_plus_raw12_shading=1_yuv.jpg |
sahne2_a
Scene2_a, gri bir arka plana ve nötr giysilere sahip üç yüze sahiptir. Yüzler çok çeşitli ten tonlarına sahip olacak şekilde seçilir.
sahne2_a
test_efektleri
Desteklenen kamera efektleri için çerçeve 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 görüntüleri kaydeder.
Test edilen API'ler:
-
android.hardware.camera2.CameraCharacteristics#CONTROL_AVAILABLE_EFFECTS
-
android.hardware.camera2.CaptureRequest#CONTROL_EFFECT_MODE
Başarılı: Efektler OFF
olarak sahne görüntüsünü ve MONO
olarak ayarlanmış efektlerle monokrom bir görüntü yakalar.
test_effects_MONO.jpg
test_faces
Yüz algılamayı test eder. Resim kaydedilir, ancak kutu ve yer işareti bilgileri test_faces_stdout.txt
içinde tablo haline getirilir.
Test edilen API'ler:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: Görüntüden en az bir yüz algılar.
test_format_combos
Farklı çıktı biçimleri 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 yakalanır.
test_jpeg_quality
Kameranın JPEG sıkıştırma kalitesini test eder. JPEG kalitelerini android.jpeg.quality
ile adımlayın ve Quantization Tables'ın doğru şekilde değişmesini sağlayın.
Test edilen API'ler:
Başarılı: Niceleme matrisi kalite artışıyla azalır. (Matris, bölme faktörünü temsil eder.)
Pixel 4 arka kamera luma/chroma DQT matris ortalamaları ile JPEG kalitesi karşılaştırması
Başarısız test örneği
Çok düşük kaliteli görüntüler için (jpeg.quality < 50), niceleme matrisinde sıkıştırmada bir artış olmadığına dikkat edin.
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
Başarılı: Üç yüz bulur.
test_num_faces_fd_mode_1.jpg
sahne2_b
test_auto_per_frame_control
Otomatik yakalama istekleri için PER_FRAME_CONTROL
özelliklerini test eder.
Test edilen API'ler:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureResult#CONTROL_AE_STATE
-
android.hardware.camera2.CaptureResult#CONTROL_AWB_STATE
-
android.hardware.camera2.CaptureRequest#CONTROL_POST_RAW_SENSITIVITY_BOOST
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureRequest#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureRequest#SENSOR_SENSITIVITY
-
android.hardware.camera2.CaptureRequest#STATISTICS_LENS_SHADING_MAP_MODE
-
android.hardware.camera2.CaptureResult#STATISTICS_LENS_SHADING_CORRECTION_MAP
-
android.hardware.camera2.CaptureRequest#TONEMAP_CURVE
-
android.hardware.camera2.CaptureRequest#TONEMAP_MODE
Başarılı: PER_FRAME_CONTROL
özelliklerinin tümü mevcut.
test_auto_per_frame_control_frame_1.jpg
test_auto_per_frame_control_frame_10.jpg
test_auto_per_frame_control_frame_29.jpg
test_auto_per_frame_control_plot.png
test_num_faces
Yüz sahnelerinde artan cilt tonu çeşitliliği ile yüz algılamayı test eder.
Test edilen API'ler:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: 3 yüz bulur.
test_num_faces_fd_mode_1.jpg
sahne2_c
test_num_faces
Yüz sahnelerinde artan cilt tonu çeşitliliği ile yüz algılamayı test eder.
Test edilen API'ler:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: 3 yüz bulur.
test_num_faces_fd_mode_1.jpg
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.
Başarılı: Her iki birincil kamera için ITS aydınlatma koşulları (3000K) altında CTS kamera PerformanceTest tarafından ölçüldüğü üzere 1080p çözünürlük için kamera2 JPEG yakalama gecikmesi < 1000ms OLMALIDIR.
test_camera_launch_perf_class
CDD'deki 2.2.7.2 Kamera bölümünde belirtildiği gibi S performans sınıfı için kamera başlatma gecikmesini test eder.
Başarılı: Her iki birincil kamera için ITS aydınlatma koşulları (3000K) altında CTS kamera PerformanceTest tarafından ölçüldüğü üzere kamera2 başlatma gecikmesine (kamerayı ilk önizleme karesine açık) < 600 ms olmalıdır.
sahne2_d
test_num_faces
Yüz sahnelerinde artan cilt tonu çeşitliliği ile yüz algılamayı test eder.
Test edilen API'ler:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: 3 yüz bulur.
sahne2_e
test_sürekli_resim
50 VGA çözünürlüklü kare, ilk önce android.control.afMode = 4 (CONTINUOUS_PICTURE).
Test edilen API'ler:
android.hardware.camera2.CaptureRequest#CONTROL_CAPTURE_INTENT
android.hardware.camera2.CaptureResult#CONTROL_POST_RAW_SENSITIVITY_BOOST
Başarılı: 3A sistemi, 50 karelik bir yakalamanın sonunda yerleşir.
test_num_faces
Yüz sahnelerinde artan cilt tonu çeşitliliği ile yüz algılamayı test eder.
Test edilen API'ler:
-
android.hardware.camera2.CaptureResult#STATISTICS_FACES
-
android.hardware.camera2.CaptureResult#STATISTICS_FACE_DETECT_MODE
Başarılı: 3 yüz bulur.
sahne3
Scene3, ISO12233 grafiğini kullanır ve çoğu test, sahnedeki grafiği bulmak için bir grafik çıkarıcı yöntemini kullanır. Bu nedenle, kaydedilen görüntülerin çoğu sahne 1, 2 veya 4'teki görüntüler gibi sınırlara sahip değildir, yalnızca tabloya sahiptir.
test_3a_consistency
3A tutarlılık testleri.
Test edilen API'ler:
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_GAINS
-
android.hardware.camera2.CaptureRequest#COLOR_CORRECTION_TRANSFORM
-
android.hardware.camera2.CaptureRequest#LENS_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#SENSOR_EXPOSURE_TIME
-
android.hardware.camera2.CaptureResult#SENSOR_SENSITIVITY
Başarılı: 3A, tolerans dahilinde üç kez pozlama, kazanç, awb (otomatik beyaz dengesi) ve fd (odak mesafesi) için yakınsar.
test_edge_enhancement
android.edge.mode
parametresinin doğru uygulanıp uygulanmadığını test eder. Her kenar modu için yeniden işlenmeyen görüntüleri yakalar ve çıktı görüntüsünün ve yakalama sonucu meta verilerinin netliğini döndürür. Belirli bir kenar modu, hassasiyet, pozlama süresi, odak mesafesi ve çıktı yüzeyi parametresiyle bir yakalama isteğini işler.
Başarılı: Hızlı mod, HQ (yüksek kalite) modundan daha keskin değildir.
Test edilen API'ler:
Etkilenen kamera parametreleri:
-
EDGE_MODE
test_edge_enhancement_edge=0.jpg
test_edge_enhancement_edge=1.jpg (hızlı mod)
test_edge_enhancement_edge=2.jpg (yüksek kalite modu)
test_flip_mirror
CDD bölüm 7.5.2 Öne Bakan Kamera [C-1-5] uyarınca görüntünün doğru yönlendirilip yönlendirilmediğini test eder.
Yansıtılmış, çevrilmiş veya döndürülmüş görüntüler, merkeze yakın elmas özelliği ile tanımlanabilir.
Başarılı: Görüntü ters çevrilmez, yansıtılmaz veya döndürülmez.
test_flip_mirror_scene_patch.jpg
test_lens_movement_reporting
Lens hareket bayrağının düzgün şekilde raporlanıp raporlanmadığını test eder. İlk 12 kare optimum netleme mesafesinde (3A tarafından bulunduğu gibi) ve son 12 kare minimum netleme mesafesinde olacak şekilde 24 görüntüden oluşan bir seri çekim yakalar. 12. kare civarında, lens hareket ederek keskinliğin düşmesine neden olur. Objektif son konuma hareket ederken netlik sonunda sabitlenir. Objektifin optimum odak mesafesinde sabit olduğu ilk 10 karede ve asgari odak mesafesinde sabit olduğu son 10 karede netliğin netliğe orta düzeyde olduğu tüm karelerde objektif hareket bayrağı belirtilmelidir. Merceğin tam olarak hareket ettiği çerçeve önemli değildir: kontrol edilen şey, mercek hareket ederken hareket bayrağının gösterilmesidir.
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
Başarılı: Objektif hareket bayrağı, netlik değişikliği ile çerçevede True
.
test_lens_position
Tests if the focus position is properly reported for moving lenses.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_HYPERFOCAL_DISTANCE
-
android.hardware.camera2.CameraCharacteristics#LENS_INFO_MINIMUM_FOCUS_DISTANCE
-
android.hardware.camera2.CaptureResult#LENS_STATE
-
android.hardware.camera2.CaptureResult#SENSOR_TIMESTAMP
Pass: Correct focus positions are reported.
test_reprocess_edge_enhancement
Returns sharpness of the output images and the capture result metadata. Processes a capture request with a given edge mode, sensitivity, exposure time, focus distance, output surface parameter, and reprocess format.
APIs tested:
-
android.hardware.camera2.CaptureRequest#EDGE_MODE
-
android.hardware.camera2.CaptureRequest#REPROCESS_EFFECTIVE_EXPOSURE_FACTOR
Pass: Sharpness for the different edge modes is correct.
scene4
Scene4 consists of a black circle on a white background inside a square.
scene4
test_aspect_ratio_and_crop
Takes pictures of a circle inside of a square over all formats. Verifies that the aspect ratio of the circle doesn't change, the cropped images keep the circle in center, and the circle size doesn't change for a constant format or with different resolution (field of view check).
APIs tested:
-
android.hardware.camera2.CaptureResult#LENS_DISTORTION
-
android.hardware.camera2.CaptureResult#LENS_FOCAL_LENGTH
-
android.hardware.camera2.CaptureResult#LENS_INTRINSIC_CALIBRATION
Pass: Images aren't stretched, the center of images don't differ by more than 3%, and the maximum possible FOV (field of view) is preserved.
test_multi_camera_alignment
Tests the multi camera system parameters related to camera spacing. Using the multi-camera physical sub-cameras, takes a picture with one of the physical cameras. Finds the circle center. Projects the circle center to the world coordinates for each camera. Compares the difference between the cameras' circle centers in world coordinates. Reprojects the world coordinate back to pixel coordinates and compares against originals as a validity check. Compares the circle sizes checking if the focal lengths of the cameras are different.
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#getPhysicalCameraIds()
-
android.hardware.camera2.CameraCharacteristics#LENS_DISTORTION
-
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
Pass: Focal lengths and circles sizes are consistent.
scene5/diffuser
test_lens_shading_and_color_uniformity
Tests that the lens shading correction is applied appropriately, and color of a monochrome uniform scene is evenly distributed. Performs this test on a YUV frame with auto 3A. Lens shading is evaluated based on the y channel. Measures the average y value for each sample block specified, and determines pass or fail by comparing with the center y value. The color uniformity test is evaluated in r/g and b/g space.
APIs tested:
-
android.hardware.camera2.CaptureRequest#CONTROL_AE_MODE
-
android.hardware.camera2.CaptureRequest#CONTROL_AWB_MODE
Pass: At the specified radius of the image, the variance of r/g and b/g value must be less than 20% to pass the test.
scene6
Scene6 is a grid of small circles with a square in one corner to indicate orientation. The small circles are needed to test zoom function over a large range.
scene6
test_zoom
Tests the camera zoom behavior. Takes captures over the zoom range and checks if the circles get bigger as the camera zooms in.
APIs tested:
-
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
Pass: Relative size of captured circle is accurate against requested zoom ratio to ensure camera is zooming correctly.
test_zoom to find the contour of the circle closest to the center.
scene_change
test_scene_change
The scene change makes use of the tablet displaying a face scene and then turns the tablet on and off to create a scene change. The scene reuses scene2_e, but is in a separate scene because of the required tablet control. Additionally, for manual testing, the scene change can be accomplished by waving your hand in front of the camera.
APIs tested:
Pass: The android.control.afSceneChange
flag is asserted with a scene change.
sensor_fusion
Sensor fusion tests require specific phone movement in front of a checkerboard pattern. The sensor_fusion
tests can be automated with the Sensor Fusion Box .
Image of checkerboard
test_multi_camera_frame_sync
Tests that frame timestamps captured by logical camera are within 10 ms by computing angles of squares within the checkerboard to determine the timestamp.
APIs tested:
-
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()
Pass: Angle between images from each camera doesn't change appreciably as phone is rotated.
test_sensor_fusion
Tests the timestamp difference between the camera and the gyroscope for AR and VR applications. Phone is rotated 90 degrees 10 times in front of the checkerboard pattern. Motion is about 2 s round trip. This test is skipped if no gyroscope is included or if the REALTIME
parameter is not enabled.
The test_sensor_fusion
test generates a number of plots. The two most important plots for debugging are:
test_sensor_fusion_gyro_events
: Shows the gyroscope events for the phone during the test. Movement in the x and y direction implies the phone isn't securely mounted on the mounting plate, reducing the probability of the test passing. The number of cycles in the plot depends on the write speed for saving frames.test_sensor_fusion_gyro_events
test_sensor_fusion_plot_rotations
: Shows the alignment of the gyroscope and camera events. This plot must show matching movement between camera and gyroscope to +/-1 ms.test_sensor_fusion_plot_rotations
APIs tested:
-
android.hardware.camera2.CameraCharacteristics#LENS_FACING
-
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
Pass: Camera and gyroscope timestamps' offset is less than 1 ms as per CDD section 7.3.9 High Fidelity Sensors [C-2-14] .