Android 13 sürümünde Camera ITS ile ilgili çeşitli değişiklikler yapıldı. Android 13, güncellenen Python ve paket sürümleri ile test donanımı güncellemeleri gibi artımlı değişikliklerin yanı sıra video testini de destekler.
Bu sayfada, Android 13'teki Camera ITS değişiklikleri özetlenmektedir. Değişiklikler yedi geniş kategoriye ayrılır:
- Python ve paket sürümleri
- Yapılandırma dosyasına eklenenler
- Değişiklikleri test etme
- Yeni tablet tabanlı testler
- Video testi
- Donanım güncellemeleri ve eklemeleri
- Katlanabilir cihazlarda test desteği
Python ve paket sürümleri
Android 13, Android 12'de desteklenen Python sürümleri ve kitaplıklarına ek olarak aşağıdaki Python sürümlerini destekler:
- Python 3.9.2
- OpenCV 4.2.0
- Numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- pySerial 3.5
- Pillow 8.3.1
- PyYAML 5.4.1
- Mobly 1.11
- FFmpeg 4.4.1
Yapılandırma dosyasına eklenenler
test_auto_flash.py testi için aydınlatma kontrolü eklendiğinden config.yml dosyasının kontrol cihazı ve aydınlatma kanalı için iki ek parametreye ihtiyacı var. Test edilen cihazın (DUT) katlanabilir olup olmadığını belirlemek için config.yml dosyası, hem tablet tabanlı hem de sensör füzyonu bölümlerine eklenmesi gereken üçüncü bir parametreye ihtiyaç duyar.
TestBeds:
- Name: TEST_BED_TABLET_SCENES
# Test configuration for scenes[0:4, 6, _change]
Controllers:
AndroidDevice:
- serial: 8A9X0NS5Z
label: dut
- serial: 5B16001229
label: tablet
TestParams:
brightness: 192
chart_distance: 22.0
debug_mode: "False" # "True" or "False"; quotes needed
lighting_cntl: <controller-type> # "arduino" or "None"; quotes needed
lighting_ch: <controller-channel>
camera: 0
foldable_device: "False". # set "True" if testing foldable
scene: <scene-name> # if <scene-name> runs all scenes
Değişiklikleri test etme
scene1_1/test_black_white.py
test_black_white testinde, Android'in önceki sürümleriyle tutarlı bir şekilde kanal doygunluğu kontrolü yapılır. Bu nedenle, kanal doygunluğu kontrolü için gereken ilk API düzeyi Android 10'dur.
scene1_2/test_yuv_plus_raw.py
test_yuv_plus_raw testi, RAW için daha iyi destek sağlamak amacıyla 16:9 veya 4:3 olmayan sensörleri işler. Test, sensörün RAW biçimi ile YUV yakalama biçimleri arasında ortak bir biçim bulamazsa en boy oranları farklı olsa bile RAW yakalamayı en büyük YUV yakalamayla karşılaştırır.
scene2_a/test_faces.py
test_faces, test_num_faces olarak yeniden düzenlendi.
scene2_a/test_num_faces.py
test_num_faces testi, sensör kırpma işlemini gerçekleştirir ve yüz dikdörtgenlerini, kırpılmış olan UW kamera çekimlerine doğru şekilde yerleştirir.
scene3/test_lens_position.py
test_lens_position testi, Android 13'te kullanımdan kaldırılmıştır.
scene6/test_zoom.py
Üç ve dört kameralı sistemlerin daha kolay test edilmesini sağlamak için test_zoom testi yeniden düzenlendi. Kamera, yakınlaştırmada 10 kat oran aralığında doğru şekilde test ediliyorsa
test doğru şekilde sonlandırılır. Bu sayede, tek bir grafik mesafesinde yakınlaştırma testi yapılabilir.
scene_change/test_scene_change.py
test_scene_change testi, Android 13'te kullanımdan kaldırılmıştır.
Yeni tablet tabanlı testler
Android 13'te iki yeni tablet tabanlı test bulunur. Her iki test de Android 13 ile kullanıma sunulan cihazlarda zorunludur ancak Android 13'e yükseltilen cihazlarda atlanır.
| Sahne | Test adı | İlk API düzeyi | Açıklama |
|---|---|---|---|
| 2_a | test_auto_flash | 33 | Karanlık sahnelerde otomatik flaşın tetiklendiğini onaylar. |
| 2_b | test_yuv_jpg_capture_sameness | 33 | YUV ve JPEG ile çekilen görüntülerin bit düzeyinde aynı olduğunu onaylar. |
scene2_a/test_auto_flash.py
Android 13'te test_auto_flash testi eklenmiştir.
Parametreler
flash: Flash kullanılamıyorsa testi atlar.
Yöntem
Test, otomatik flaş için yakalama isteğini yapılandırır ve flaş etkinliği gerektiren bir sahne sunar. Otomatik pozlama algoritması için karanlık bir sahne sunmak amacıyla test düzeneğindeki ve tabletteki ışıklar kapatılır. Test, otomatik flaş etkinleştirilmiş NUM_FRAMES yakalama sırası yapılandırır. AE_STATE ayarı FLASH_REQUIRED değerini döndürürse test, çekimlerde flaşın kullanıldığını doğrular.
Işıklandırma, istendiğinde manuel olarak veya otomatik test için ışıklandırma kontrolü eklenmiş bir Arduino denetleyiciyle otomatik olarak kontrol edilebilir. Yeni bir yardımcı program klasörü lighting_control_utils, testlerdeki ışıklandırmayı kontrol etmeye yönelik kodu merkezileştirir.
scene2_a/test_yuv_jpeg_capture_sameness.py
Android 13'te test_yuv_jpeg_capture_sameness
testi eklenmiştir.
Parametreler
streamUseCase: Kameranın canlı yayın kullanım alanını destekleyip desteklemediğini belirler.android.jpeg.quality: JPEG kalitesini 100 olarak ayarlar.
Yöntem
Bu testte, 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çimleri kullanılarak iki resim çekilir. Test, jpeg.quality değerini 100 olarak ayarlar ve çift yüzeyli bir isteği yakalar. Ardından, 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. Fark toleransı %1 olarak ayarlanır.
Video testi
Kamera ITS, Android 13'te video testi desteği ekler.
Android 13'te aşağıdaki testler eklenmiştir:
| Sahne | Test adı | İlk API düzeyi | Açıklama |
|---|---|---|---|
| 4 | test_preview_stabilization_fov | 33 | Video önizlemesinin, sabitleme etkinleştirildiğinde çok fazla kırpılmadığını onaylar. |
| 4 | test_video_aspect_ratio_and_crop | 33 | Video biçimlerinin FoV, en-boy oranı ve kırpma özelliklerini onaylar. |
| sensor_fusion | test_preview_stabilition | 33 | Önizleme sabitleme özelliğinin çalıştığını onaylar. |
| sensor_fusion | test_video_stabilition | 33 | Video sabitlemenin çalıştığını onaylar. |
scene4/test_preview_stabilization_fov.py
Android 13'te test_preview_stabilization_fov
testi eklenmiştir. Bu test, desteklenen önizleme boyutlarını kontrol ederek görüş alanının uygunsuz şekilde kırpılmadığından emin olur.
Yöntem
Testte iki video çekilir. Birinde önizleme sabitleme özelliği açık, diğerinde ise kapalıdır. Her videodan temsili bir kare seçilir ve iki videodaki FoV değişikliklerinin spesifikasyonlar dahilinde olduğundan emin olmak için analiz edilir.
Daha ayrıntılı olarak belirtmek gerekirse test, aşağıdaki parametreleri hem önizleme sabitleme ile hem de önizleme sabitleme olmadan kontrol eder:
- Dairenin yuvarlaklığı sabit kalır.
- Dairenin merkezi sabit kalır.
- Dairenin boyutu en fazla %20 değişir. Bu da görüş alanının en fazla %20 değiştiği anlamına gelir.
scene4/test_video_aspect_ratio_and_crop.py
Android 13'te test_video_aspect_ratio_and_crop
testi eklenmiştir. test_aspect_ratio_and_crop
Sabit görüntüler için yapılan teste benzer şekilde, bu test de video karelerinin uygunsuz şekilde uzatılmadığından veya kırpılmadığından emin olmak için desteklenen video biçimlerini kontrol eder.
Kullanıcı tarafından bildirilen tüm video kaliteleri test edilir. Ayrıca, kamera HLG10 videoyu destekliyorsa 10 bit video test edilir.
Android 13, get_available_video_qualities yöntemini its_session_utils'e ekler. Android 13, mevcut testlerle ortak kod paylaşmak için iki yeni yardımcı işlev (image_fov_utils ve video_processing_utils) de içerir.
Yöntem
Test, RAW biçiminde veya RAW desteklenmiyorsa en yüksek çözünürlüklü JPEG biçiminde bir referans görüntü yakalar. Referans resimden dairenin boyutu ve konumu belirlenir. Kısa videolar, desteklenen tüm video kalitelerinde çekilir. Son referans karesi, her video kalitesinden çıkarılır. Referans kareden itibaren, her video kalitesi için görüş alanı (FoV), ortalama (kırpma) ve en boy oranı hesaplanır.
Görüş alanı hesaplaması için test, video karesi daire boyutunu referans görsel ve video biçimi boyutlarından hesaplanan daire boyutuyla karşılaştırır. Kırpma kontrolünde, testte video karesinin ortalanması referans resmin ortalanmasıyla karşılaştırılır. En boy oranı kontrolü için beyaz arka plan üzerinde büyük bir siyah daire olan sahne kullanılır. Test, dairenin en boy oranını belirler ve çerçevenin bozulmadığını doğrular.
sensor_fusion/test_preview_stabilization.py
Android 13, 1920x1080'e kadar desteklenen tüm önizleme kalitelerini test eden test_preview_stabilization testini ekler. Testte sensör füzyonu test düzeneği kullanılır ve yeni revizyon 2 sensör füzyonu denetleyicisi ya da önceki Arduino denetleyici sürümlerinin donanım yazılımı yükseltmesi gerekir. Yeni kumanda hakkında daha fazla bilgi için Donanım güncellemeleri ve eklemeleri başlıklı makaleyi inceleyin.
Yöntem
Telefon, önizleme sabitleme özelliği etkinleştirilmiş şekilde yaklaşık 15 derecelik bir açıyla yavaşça hareket ettiriliyor. Ardından, resimlerin dönüşü jiroskopun dönüşüyle karşılaştırılır.
sensor_fusion/test_video_stabilization.py
Android 13, 1920x1080'e kadar desteklenen video kalitelerini test eden test_video_stabilization testini ekler. QCIF düşük çözünürlüklü video kalitesi hariç tutulur. Testte sensör füzyonu test düzeneği kullanılır ve yeni revizyon 2 sensör füzyonu denetleyicisi ya da önceki Arduino denetleyici sürümlerinin donanım yazılımı yükseltmesi gerekir. Yeni kumanda hakkında daha fazla bilgi için Donanım güncellemeleri ve eklemeleri başlıklı makaleyi inceleyin.
Yöntem
Test düzeneği, telefonu yaklaşık 15 derecelik bir açıyla yavaşça hareket ettirir. Bu sırada önizleme sabitleme özelliği etkindir. Ardından, resimlerin dönüşü jiroskopun dönüşüyle karşılaştırılır.
Donanım güncellemeleri ve eklemeleri
Android 13, Arduino tabanlı revizyon 2 sensör füzyon denetleyicisinin yükseltilmiş sürümünü içerir. Bu yükseltme hem donanım hem de ürün yazılımı değişikliklerini içerir. Yükseltme, kontrol cihazının dönüş hızını ve aydınlatma kontrolünü ayarlamasına olanak tanır. Yükseltme, üç dönüşüm kanalı ve üç aydınlatma kontrolü kanalı sağlayan yeni bir kalkanı (Şekil 1'de gösterilmiştir) da içerir.
Şekil 1. Dönme ve ışıklandırma kontrolü özellikli Arduino shield rev2.0
Ayrıca, 13 için dönüş hızı kontrolünün etkinleştirilmesi amacıyla mevcut kumandaların donanım yazılımının güncellenmesi gerekir. Bu donanım yazılımı şu adresten indirilebilir:
Yeni denetleyici hakkında daha fazla bilgi için Android 13 sensör füzyon denetleyicisi başlıklı makaleyi inceleyin.
Katlanabilir cihazlarda test desteği
Android 13, katlanabilir cihazlar için test desteği içerir. Katlanabilir cihazlarda çoklu kamera API'sinin etkinleştirilmesi için test sırasında telefon durumu (Folded veya Unfolded) gereklidir.
Katlanabilir olmayan telefonlar da dahil olmak üzere tüm DUT'lar için telefon durumunun yoklanmasını etkinleştirmek üzere DUT ana makineye bağlandıktan sonra aşağıdaki adb komutunu çalıştırın.
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier