Android 13 版本包含相機 ITS的多項變更。除了更新Python和軟體包版本以及測試硬體更新等增量變更外,Android 13還支援視訊測試。
本頁總結了 Android 13 的相機 ITS 變更。這些變更分為七大類:
Python 和套件版本
除了 Android 12 支援的 Python 版本和函式庫之外,Android 13 還支援以下 Python 版本:
- Python 3.9.2
- OpenCV 4.2.0
- numpy 1.20.3
- Matplotlib 3.3.4
- Scipy 1.6.2
- py串口3.5
- 枕頭8.3.1
- PyYAML 5.4.1
- 莫比利1.11
- FFmpeg 4.4.1
設定檔添加
由於test_auto_flash.py
測試增加了燈光控制, config.yml
檔案需要控制器和燈光通道兩個額外參數。為了確定被測設備 (DUT) 是否可折疊, config.yml
檔案需要第三個附加參數,該參數必須添加到基於平板電腦的部分和感測器融合部分。
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
測試變更
scene1_1/test_black_white.py
test_black_white
測試具有與先前版本的Android一致的通道飽和度檢查,這意味著通道飽和度檢查所需的第一個API等級是Android 10。
scene1_2/test_yuv_plus_raw.py
test_yuv_plus_raw
測試處理非 16:9 或 4:3 感測器,以便為 RAW 提供更好的支援。如果測試無法找到感測器 RAW 格式和 YUV 捕獲格式之間的通用格式,則測試會將 RAW 捕獲與最大 YUV 捕獲進行比較,即使縱橫比不同。
scene2_a/test_faces.py
test_faces
被重構為test_num_faces
。
scene2_a/test_num_faces.py
test_num_faces
測試處理感測器裁切並將臉部矩形正確放置在裁切後的華盛頓大學相機捕捉上。
scene3/test_lens_position.py
Android 13 中已棄用test_lens_position
測試。
場景6/test_zoom.py
test_zoom
測試經過重構,可以更輕鬆地測試三鏡頭和四攝影機系統。如果相機在 10 倍變焦倍率範圍內測試正確,測試將正確退出。這使得可以在單一圖表距離上執行縮放測試。
scene_change/test_scene_change.py
test_scene_change
測試在 Android 13 中已棄用。
基於平板電腦的新測試
Android 13 包括兩項新的基於平板電腦的測試。對於搭載 Android 13 的設備,這兩項測試都是強制執行的,但對於升級到 Android 13 的設備,則跳過這兩項測試。
場景 | 測試名稱 | 第一 API 級別 | 描述 |
---|---|---|---|
2_a | 測試自動閃光 | 33 | 確認黑暗場景觸發自動閃光。 |
2_b | test_yuv_jpg_capture_sameness | 33 | 確認 YUV 和 JPEG 靜態捕獲按位相同。 |
scene2_a/test_auto_flash.py
Android 13 新增了test_auto_flash
測試。
參數
flash
:如果 flash 不可用,則跳過測試。
方法
此測試配置自動閃光的捕獲請求並呈現需要閃光事件的場景。測試裝置和平板電腦中的照明被關閉,為自動曝光演算法呈現黑暗場景。此測試配置了啟用自動閃光的NUM_FRAMES
個擷取序列。如果AE_STATE
設定返回FLASH_REQUIRED
,則測試將驗證捕獲中是否觸發了閃光燈。
可以根據提示手動控制照明,也可以使用 Arduino 控制器自動控制照明,並添加照明控制以進行自動測試。新的實用程式資料夾lighting_control_utils
集中了用於在測試中控制照明的程式碼。
scene2_a/test_yuv_jpeg_capture_sameness.py
Android 13 新增了test_yuv_jpeg_capture_sameness
測試。
參數
streamUseCase
:確定相機是否支援串流用例。-
android.jpeg.quality
:將 JPEG 品質設定為 100。
方法
此測試使用最大的常見 YUV 和 JPEG 格式擷取兩張影像,其寬高比與最大的 JPEG 格式相同,解析度不超過 1920x1440。此測試將jpeg.quality
設為 100 並擷取雙錶面請求。然後,它將兩個影像轉換為 RGB 數組,並計算兩個影像之間的 3D 均方根 (RMS) 差異。差異容差設定為 1%。
影片測試
Camera ITS 在 Android 13 中新增了對視訊測試的支援。
Android 13 新增了以下測試:
場景 | 測試名稱 | 第一 API 級別 | 描述 |
---|---|---|---|
4 | test_preview_stabilization_fov | 33 | 確認啟用穩定功能後影片預覽不會裁剪太多。 |
4 | test_video_aspect_ratio_and_crop | 33 | 確認影片格式 FoV、寬高比和裁切。 |
感測器融合 | 測試預覽穩定性 | 33 | 確認預覽穩定性有效。 | 感測器融合 | 測試影片穩定性 | 33 | 確認視訊穩定功能有效。 |
scene4/test_preview_stabilization_fov.py
Android 13 新增了test_preview_stabilization_fov
測試。此測試檢查支援的預覽尺寸,以確保 FoV 不會被不當裁切。
方法
該測試捕獲了兩段視頻,一段啟用了預覽穩定功能,另一段則關閉了預覽穩定功能。從每個影片中選擇一個代表性幀並進行分析,以確保兩個影片中的 FoV 變化在規格範圍內。
具體來說,該測試在有和沒有預覽穩定的情況下檢查以下參數:
- 圓的圓度保持恆定。
- 圓心保持穩定。
- 圓的大小變化不超過 20%,這意味著 FoV 最多變化 20%。
scene4/test_video_aspect_ratio_and_crop.py
Android 13 新增了test_video_aspect_ratio_and_crop
測試。與靜態捕獲的test_aspect_ratio_and_crop
測試類似,此測試檢查支援的視訊格式,以確保視訊幀不會被不當拉伸或裁剪。所有自我報告的視訊品質都經過測試。此外,如果相機支援HLG10
視頻,則測試 10 位元視頻。
Android 13 將get_available_video_qualities
方法加入到its_session_utils
。為了與現有測試共享通用程式碼,Android 13 還包含兩個新的實用函數: image_fov_utils
和video_processing_utils
。
方法
此測試以 RAW 格式擷取參考影像,如果不支援 RAW,則可擷取最高解析度的 JPEG 格式。根據參考影像,確定圓圈的大小和位置。然後拍攝支援所有影片品質的短影片。從每個視訊品質中提取最終參考幀。根據參考幀,計算每種視訊品質的視場 (FoV)、居中(裁剪)和寬高比。
對於 FoV 計算,測試將視訊幀圓圈大小與根據參考圖像和視訊格式大小計算的圓圈大小進行比較。對於裁剪檢查,測試將視訊幀居中與參考影像居中進行比較。對於長寬比檢查,使用場景(白色背景上的大黑色圓圈)進行測試,確定圓圈的長寬比並驗證框架是否扭曲。
sensor_fusion/test_preview_stabilization.py
Android 13 新增了test_preview_stabilization
測試,該測試可測試最高 1920x1080 的所有支援的預覽品質。此測試使用感測器融合測試裝置,並需要新的修訂版 2 感測器融合控制器或早期 Arduino 控制器版本的韌體升級。有關新控制器的更多詳細信息,請參閱硬體更新和新增。
方法
啟用預覽穩定功能後,手機會緩慢移動約 15 度角。然後將影像的旋轉與陀螺儀的旋轉進行比較。
sensor_fusion/test_video_stabilization.py
Android 13 增加了test_video_stabilization
測試,該測試可測試支援的視訊質量,最高可達 1920x1080。 QCIF 低解析度視訊品質不包括在內。此測試使用感測器融合測試裝置,並需要新的修訂版 2 感測器融合控制器或早期 Arduino 控制器版本的韌體升級。有關新控制器的更多詳細信息,請參閱硬體更新和新增。
方法
測試裝置在啟用預覽穩定功能的情況下將手機緩慢移動約 15 度角。然後將影像的旋轉與陀螺儀的旋轉進行比較。
硬體更新和添加
Android 13 包含基於 Arduino 的修訂版 2 感測器融合控制器的升級。此次升級包括硬體和韌體的變更。升級允許控制器設定旋轉速度和閃電控制。升級還包括一個新的防護罩(如圖1所示),它提供三個旋轉通道和三個照明控制通道。
圖 1.具有旋轉和照明控制功能的 Arduino 擴充板 rev2.0
此外,對於13,必須更新現有控制器的韌體才能實現轉速控制。該韌體可以從以下位置下載:
有關新控制器的更多信息,請參閱Android 13 感測器融合控制器。
可折疊測試支架
Android 13 包含可折疊裝置的測試支援。若要為可折疊裝置啟用多相機 API ,測試期間需要手機狀態( Folded
或Unfolded
」)。若要啟用對所有 DUT(包括不可折疊手機)的手機狀態輪詢,請在 DUT 連接到主機後執行以下 adb 命令。
adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier