Android 13 版本對 Camera ITS 進行了多項變更。除了 Python 和套件版本更新及測試硬體更新等漸進式變更,Android 13 也支援影片測試。
本頁面概要說明 Android 13 的相機攝影機資訊安全性變更。異動內容可分為七大類:
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
- 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。
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
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 | 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、顯示比例和裁剪。 |
sensor_fusion | test_preview_stabilition | 33 | 確認預覽防震功能是否正常運作。 |
sensor_fusion | 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 擴充板 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