Android 13 sürümü, Kamera ITS'de bir dizi değişiklik içerir. Android 13, güncellenmiş Python ve paket sürümleri ve test donanım güncellemeleri gibi artımlı değişikliklerin yanı sıra video testini de destekler.
Bu sayfada, Android 13 için Kamera ITS değişiklikleri özetlenmiştir. Değişiklikler yedi geniş kategoriye ayrılır:
- Python ve paket sürümleri
- Yapılandırma dosyası eklemeleri
- Değişiklikleri test etme
- Tablet tabanlı yeni testler
- Video testi
- Donanım güncellemeleri ve eklemeleri
- Katlanabilir cihaz test desteği
Python ve paket sürümleri
Android 13, Android 12'de desteklenen Python sürümleri ve kitaplıklarının yanı sıra 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ı eklemeleri
test_auto_flash.py
testi için ışıklandırma kontrolünün eklenmesi nedeniyle config.yml
dosyasında kumanda ve aydınlatma kanalı için iki ek parametreye ihtiyaç vardır. Test edilen cihazın (DUT) katlanabilir olup olmadığını belirlemek için config.yml
dosyasında hem tablet tabanlı hem de sensör füzyonu bölümlerine eklenmesi gereken üçüncü bir ek parametre gerekir.
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
sahne1_1/test_siyah_beyaz.py
test_black_white
testinde, Android'in önceki sürümleriyle tutarlı bir kanal doygunluğu kontrolü vardır. Bu, kanal doygunluğu kontrolü için gereken ilk API düzeyinin Android 10 olduğu anlamına gelir.
sahne1_2/test_yuv_plus_raw.py
test_yuv_plus_raw
testi, RAW için daha iyi destek sağlamak üzere 16:9 veya 4:3 olmayan sensörleri işler. Test, sensör RAW biçimi ile YUV yakalama biçimleri arasında ortak bir biçim bulamıyorsa 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 yapılandırılır.
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ılan geniş açılı 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
test_zoom
testi, üç ve dört kameralı sistemlerin daha kolay test edilmesini sağlamak için yeniden yapılandırıldı. Kamera, yakınlaştırmada 10x oran aralığında doğru şekilde test edilirse test doğru şekilde sonlandırılır. Bu sayede yakınlaştırma testinin tek bir grafik mesafesinde yapılması sağlanır.
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, tablete dayalı iki yeni test içerir. Her iki test de Android 13 ile kullanıma sunulan cihazlar için zorunludur ancak Android 13'e yükseltilen cihazlar için atlanır.
Sahne | Test adı | İlk API seviyesi | Açıklama |
---|---|---|---|
2_a | test_auto_flash | 33 | Karanlık sahnelerin otomatik flaş özelliğini tetiklediğini onaylar. |
2_b | test_yuv_jpg_capture_sameness | 33 | YUV ve JPEG yakalamalarının bit bazında aynı olduğunu onaylar. |
scene2_a/test_auto_flash.py
Android 13'e test_auto_flash
testi eklendi.
Parametreler
flash
: Flash kullanılamıyorsa testi atlar.
Yöntem
Test, otomatik flaş yakalama isteğini yapılandırır ve flash etkinliği gerektiren bir sahne gösterir. Otomatik pozlama algoritmasına karanlık bir sahne sunmak için test düzeneğindeki ve tabletteki ışıklar kapatılır. Test, otomatik flaş etkinken NUM_FRAMES
fotoğraf çekme sırası yapılandırır. AE_STATE
ayarı FLASH_REQUIRED
döndürürse test, çekimler sırasında flaşın ateşlendiğini 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
, testlerde ışığı kontrol eden kodu merkezileştirir.
sahne2_a/test_yuv_jpeg_capture_sameness.py
Android 13, test_yuv_jpeg_capture_sameness
testini ekler.
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 test, en büyük JPEG biçimiyle aynı en boy oranına sahip en yaygın YUV ve JPEG biçimlerini kullanarak 1920x1440 çözünürlüğü aşmayan iki resim yakalar. Test, jpeg.quality
değerini 100'e ayarlar ve çift yüzey isteği yakalar. Daha sonra, her iki görüntüyü RGB dizilerine dönüştürür ve iki görüntü arasındaki 3D kök ortalama kare (RMS) farkını hesaplar. Fark toleransı %1 olarak ayarlanmıştır.
Video testi
Kamera ITS, Android 13'te video testi desteği ekler.
Android 13'e aşağıdaki testleri ekler:
Sahne | Test adı | İlk API seviyesi | Açıklama |
---|---|---|---|
4 | test_önizleme_stabilization_fov | 33 | Sabitleme etkinken video önizlemesinin çok fazla kırpma yapmadığını onaylar. |
4 | test_video_aspect_ratio_and_crop | 33 | Video biçimlerinin görüş alanı, en boy oranı ve kırpma ayarlarını onaylar. |
sensor_fusion | test_preview_stabilition | 33 | Önizleme sabitlemenin çalıştığını onaylar. |
sensor_fusion | video_stabilasyonu | 33 | Video sabitlemenin çalıştığını onaylar. |
scene4/test_preview_stabilization_fov.py
Android 13, test_preview_stabilization_fov
testini ekler. Bu test, FoV'nin uygun bir şekilde kırpılmadığından emin olmak için desteklenen önizleme boyutlarını kontrol eder.
Yöntem
Testte, biri önizleme sabitlemesi açık, diğeri kapalı olmak üzere iki video çekilir. Her videodan temsili bir kare seçilir ve iki videodaki görüş alanı değişikliklerinin spesifikasyonlara uygun olduğundan emin olmak için analiz edilir.
Test, önizleme sabitlemesi ile ve olmadan aşağıdaki parametreleri kontrol eder:
- Dairenin yuvarlaklığı sabit kalır.
- Çemberin merkezi sabit kalır.
- Dairenin boyutu %20'den fazla değişmez. Diğer bir deyişle, FoV en fazla %20 değişir.
Sahne4/test_video_en_yüksek_oranı_ve_crop.py
Android 13, test_video_aspect_ratio_and_crop
testini ekler. test_aspect_ratio_and_crop
Kişisel fotoğraflar 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.
İçerik üretici tarafından bildirilen tüm video kaliteleri test edilir. Ayrıca, kamera HLG10
videoyu destekliyorsa 10 bit video test edilir.
Android 13, its_session_utils
sınıfına get_available_video_qualities
yöntemini ekler. Android 13, ortak kodu mevcut testlerle paylaşmak için image_fov_utils
ve video_processing_utils
adlı iki yeni yardımcı program işlevi de içerir.
Yöntem
RAW desteklenmiyorsa testte RAW biçiminde veya en yüksek çözünürlüklü JPEG biçiminde bir referans görüntü yakalanır. Referans görüntüden daire boyutu ve konumu belirlenir. Ardından, desteklenen tüm video kalitesi ayarlarıyla kısa videolar çekilir. Her video kalitesinden nihai referans kare ayıklanır. Referans çerçevesinden, her video kalitesi için görüş alanı (FoV), merkezleme (kırpma) ve en boy oranı hesaplanır.
Test, görüş alanı hesaplaması için video karesi daire boyutunu referans resim ve video biçimi boyutlarından hesaplanan daire boyutuyla karşılaştırır. Kırpma kontrolü için test, video çerçevesinin ortasını referans görüntünün ortasıyla karşılaştırır. En boy oranı kontrolü için test, beyaz arka plan üzerinde büyük siyah bir daire olan sahneyi kullanarak dairenin en boy oranını belirler ve çerçevenin bozuk olup olmadığı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 2. düzeltme sensör füzyonu denetleyicisi veya ö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 bölümüne bakın.
Yöntem
Önizleme sabitleme özelliği etkinken telefon yaklaşık 15 derecelik bir açıyla yavaşça hareket ettirilir. Ardından, resimlerin dönüşümü jiroskopun dönüşümüyle karşılaştırılır.
sensör_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 2. düzeltme sensör füzyonu denetleyicisi veya önceki Arduino denetleyici sürümlerinin donanım yazılımı yükseltmesi gerekir. Yeni kontrol cihazı hakkında daha fazla bilgi için Donanım güncellemeleri ve eklemeler başlıklı makaleyi inceleyin.
Yöntem
Test düzeneği, önizleme sabitlemesi etkinken telefonu yaklaşık 15 derecelik bir açıyla yavaşça hareket ettirir. Ardından, resimlerin dönüşümü jiroskopun dönüşümüyle karşılaştırılır.
Donanım güncellemeleri ve eklemeler
Android 13, Arduino tabanlı 2. revizyon sensör füzyon denetleyicisinde bir yükseltme içerir. Bu yükseltme hem donanım hem de donanım yazılımı değişikliklerini içerir. Yükseltme, denetleyicinin dönme hızını ve ışık kontrolünü ayarlamasına olanak tanır. Yükseltme, üç dönme kanalı ve üç ışıklandırma kontrolü kanalı sağlayan yeni bir kalkan (Şekil 1'de gösterilmiştir) da içerir.
Şekil 1. Döndürme ve ışık kontrollü Arduino kalkan rev2.0
Ayrıca, 13 için mevcut kumandaların donanım yazılımı, dönme hızı kontrolünü etkinleştirecek şekilde güncellenmelidir. Bu donanım yazılımını şuradan indirebilirsiniz:
Yeni denetleyici hakkında daha fazla bilgi için Android 13 sensör birleştirme denetleyicisi başlıklı makaleyi inceleyin.
Katlanabilir test desteği
Android 13, katlanabilir cihazlar için test desteği içerir. Katlanabilir cihazlar için çoklu kamera API'sini etkinleştirmek üzere test sırasında telefon durumunun (Folded
veya Unfolded
) kullanılması gerekir.
Katlanabilir olmayan telefonlar da dahil olmak üzere tüm DUT'lerde telefon durumunun yoklanmasını etkinleştirmek için 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