Android 13 版本包括對Camera ITS的許多更改。除了更新 Python 和包版本以及測試硬件更新等增量更改外,Android 13 還支持視頻測試。
本頁總結了 Android 13 的相機 ITS 變化。這些變化分為七大類:
Python 和包版本
除了 Android 12 中支持的 Python 版本和庫之外,Android 13 還支持以下 Python 版本:
- 蟒蛇 3.9.2
- OpenCV 4.2.0
- 麻木 1.20.3
- Matplotlib 3.3.4
- 科學 1.6.2
- 序列號 3.5
- 枕頭8.3.1
- PyYAML 5.4.1
- 移動 1.11
- FFmpeg 4.4.1
配置文件添加
由於test_auto_flash.py
測試增加了燈光控制, config.yml
文件需要controller和lighting channel兩個額外的參數。要確定被測設備 (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
測試更改
場景 1_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
測試處理傳感器裁剪並將面部矩形正確放置在裁剪後的 UW 相機捕獲上。
scene3/test_lens_position.py
Android 13 中棄用了test_lens_position
測試。
場景6/test_zoom.py
test_zoom
測試經過重構,可以更輕鬆地測試三攝像頭和四攝像頭系統。如果相機在 10 倍變焦比範圍內正確測試,則測試正確退出。這使得能夠在單個圖表距離執行縮放測試。
scene_change/test_scene_change.py
Android 13 中棄用了test_scene_change
測試。
新的基於平板電腦的測試
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 shield 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