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
- MatGraphlib 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
新增的設定檔
由於 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。
情境 1_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
test_lens_position
測試已在 Android 13 中淘汰。
scene6/test_zoom.py
test_zoom
測試已重構,以便更輕鬆地測試三相機和四相機系統。如果攝影機在 10 倍變焦率範圍內正確通過測試,則測試會正常結束。這可讓您在單一圖表距離執行縮放測試。
scene_change/test_scene_change.py
test_scene_change
測試已在 Android 13 中淘汰。
全新平板電腦式測試
Android 13 包含兩項新的平板電腦測試。這兩項測試皆適用於搭載 Android 13 的裝置,但如果裝置升級至 Android 13,則會略過這兩項測試。
Scene | 測試名稱 | 第一個 API 級別 | 說明 |
---|---|---|---|
2_ a.m. | test_auto_flash | 33 | 確認深色場景會觸發自動閃光燈。 |
2_b | test_yuv_jpg_capture_sameness | 33 | 確認 YUV 和 JPEG 靜態影像擷取結果在位元上相同。 |
scene2_a/test_auto_flash.py
Android 13 新增 test_auto_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 新增了以下測試:
Scene | 測試名稱 | 第一個 API 級別 | 說明 |
---|---|---|---|
4 | test_preview_stabilization_fov | 33 | 確認啟用防震功能時,影片預覽畫面不會過度裁剪。 |
4 | test_video_aspect_ratio_and_crop | 33 | 確認影片格式 FoV、顯示比例和裁剪。 |
感應器融合 | test_preview_stabilition | 33 | 確認預覽防震功能可正常運作。 |
感應器融合 | test_video_stabilition | 33 | 確認影片防震功能運作正常。 |
scene4/test_preview_stabilization_fov.py
Android 13 新增 test_preview_stabilization_fov
測試。這項測試會檢查支援的預覽大小,確保 FoV 未經不當裁剪。
方法
這項測試會擷取兩部影片,一部開啟預覽穩定功能,另一個開啟預覽穩定功能。系統會從每部影片中選取具代表性的影格,並進行分析,確保兩部影片的 FoV 變更都在規格範圍內。
具體來說,測試會在有/無預覽畫面穩定功能的情況下,檢查下列參數:
- 圓形的圓度保持不變。
- 圓圈的中心會保持穩定。
- 圓圈的大小變化幅度不得超過 20%,也就是說,視野範圍最多可變動 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 格式或最高解析度的 JPEG 格式 (如果不支援 RAW 格式) 擷取參考圖片。系統會根據參考圖片判斷圓形的大小和位置。系統會拍攝短片,並支援所有支援的影片畫質。最終參考影格會從每個影片品質中擷取。系統會根據參考影格計算每個影片品質的視角 (FoV)、置中 (裁剪) 和顯示比例。
針對 FoV 計算,這項測試會將影片框架圓形大小與參考圖片和影片格式大小的計算圓形大小進行比較。針對裁剪檢查,測試會比較影片邊框與參考圖片的對齊方式。針對顯示比例檢查,使用白色背景上的大型黑色圓形場景,測試會判斷圓形的顯示比例,並驗證影格是否有扭曲。
sensor_fusion/test_preview_stabilization.py
Android 13 新增 test_preview_stabilization
測試,可測試所有支援的預覽畫質,最高可達 1920 x 1080。這項測試會使用感應器融合測試架,並需要新的第 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 護盾 2.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