Android 13 リリースでは、カメラ ITS に複数の変更が加えられています。Python とパッケージのバージョンの更新やテスト ハードウェアのアップデートなどの増分の変更に加え、Android 13 では動画テストがサポートされています。
このページでは、Android 13 のカメラ ITS の変更点をまとめています。変更は大きく 7 つのカテゴリに分類されます。
Python とパッケージのバージョン
Android 13 では、Android 12 でサポートされている Python のバージョンとライブラリに加えて、次の 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
ファイルにはコントローラ用と照明チャネル用の 2 つの追加パラメータが必要です。テスト対象デバイス(DUT)が折りたたみ式デバイスかどうかを特定するには、config.yml
ファイルで 3 つ目のパラメータを追加し、このパラメータはタブレット ベースとセンサー フュージョンのセクションの両方に追加する必要があります。
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
テストは、3 台のカメラと 4 台のカメラのシステムを簡単にテストできるようにリファクタリングされました。カメラが 10 倍以上のズーム倍率範囲で正常にテストされると、テストは正常に終了します。これにより、単一のチャート距離でズームテストを実施できます。
scene_change/test_scene_change.py
test_scene_change
テストは Android 13 でサポートが終了しました。
新しいタブレット ベースのテスト
Android 13 では、タブレット ベースのテストが新たに 2 つ追加されました。どちらのテストも、Android 13 でリリースするデバイスでは必須ですが、Android 13 にアップグレードするデバイスでは省略されます。
シーン | テスト名 | 初期 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 形式で 2 つの画像をキャプチャします。このとき、解像度 1920x1440 以下で最大の JPEG 形式のアスペクト比が共通して使用されます。jpeg.quality
を 100 に設定し、デュアル サーフェス リクエストをキャプチャします。次に、両方の画像を RGB 配列に変換し、2 つの画像の 3D 二乗平均平方根(RMS)の差を計算します。差の許容範囲は 1% に設定されています。
動画テスト
カメラ ITS で、Android 13 における動画テストのサポートが追加されました。
Android 13 では次のテストが追加されました。
シーン | テスト名 | 初期 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 が不適切に切り抜かれていないことを確認します。
方法
このテストでは、プレビューの手ぶれ補正をオンにした動画とオフにした動画をキャプチャします。各動画から代表的なフレームを選択し、分析して、2 つの動画における 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 では 2 つの新しいユーティリティ関数(image_fov_utils
、video_processing_utils
)も追加されました。
方法
このテストでは、RAW 形式か、RAW 形式がサポートされていない場合は最高解像度の JPEG 形式で、基準画像をキャプチャします。基準画像から、円のサイズと位置が決定されます。その後、サポートされているすべての画質で短い動画を撮影します。最終的な基準フレームは各画質から抽出されます。この基準フレームから、画質ごとに画角(FoV)、センタリング(切り抜き)、アスペクト比が計算されます。
FoV の計算では、動画フレームの円のサイズと、基準画像と動画形式のサイズから計算された円のサイズを比較します。切り抜きのチェックでは、動画フレームのセンタリングと基準画像のセンタリングを比較します。アスペクト比のチェックでは、白色の背景に黒色の大きな円が描かれたシーンを使用して円のアスペクト比を求め、フレームが歪んでいないことを確認します。
sensor_fusion/test_preview_stabilization.py
Android 13 で test_preview_stabilization
テストが追加されました。サポートされているすべてのプレビュー品質(1920×1080 まで)をテストします。このテストでは、センサー フュージョン テスト装置を使用します。新しいリビジョン 2 センサー フュージョン コントローラか、以前のバージョンの Arduino コントローラのファームウェア アップグレードが必要となります。新しいコントローラの詳細については、ハードウェアのアップデートと追加をご覧ください。
方法
プレビューの手ぶれ補正を有効にした状態で、スマートフォンを約 15 度ゆっくりと傾けます。次に、画像の回転をジャイロスコープの回転と比較します。
sensor_fusion/test_video_stabilization.py
Android 13 で test_video_stabilization
テストが追加されました。サポートされている動画品質(1920×1080 まで)をテストします。QCIF の低解像度の動画品質は除きます。このテストでは、センサー フュージョン テスト装置を使用します。新しいリビジョン 2 センサー フュージョン コントローラか、以前のバージョンの Arduino コントローラのファームウェア アップグレードが必要となります。新しいコントローラの詳細については、ハードウェアのアップデートと追加をご覧ください。
方法
プレビューの手ぶれ補正を有効にした状態で、テスト装置によってスマートフォンを約 15 度ゆっくりと傾けます。次に、画像の回転をジャイロスコープの回転と比較します。
ハードウェアのアップデートと追加
Android 13 では、Arduino ベースのリビジョン 2 センサー フュージョン コントローラへのアップグレードが追加されました。このアップグレードには、ハードウェアとファームウェアの両方に対する変更が含まれます。このアップグレードにより、コントローラで回転速度と照明の制御を設定できるようになりました。3 チャンネルの回転と 3 チャンネルの照明の制御が可能となる新しいシールド(図 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