このページでは、優れたユーザー エクスペリエンスを実現するための Google Meet Media API クライアント ビデオ コーデックの基本要件について説明します。
機能要件
このセクションでは、コーデックのタイプと機能の要件について説明します。
機能 | 要件 | ||
---|---|---|---|
プロフィール | AV1 | VP9 | VP8 |
Main |
Profile 0 |
なし | |
スケーラビリティ | デコーダは、特定のコーデック タイプとプロファイルのコーディング仕様で必要とされる場合は、時間スケーラビリティ、空間スケーラビリティ、またはその両方をサポートする必要があります。 | ||
未加工の動画形式 |
コーデックは、奇数解像度(フレームの幅または高さが 2 の倍数でない場合、133 × 141 など)を処理できる必要があります。サブサンプリングされたクロマ形式の場合、輝度サンプル数から導出されたディメンションあたりのクロマサンプル数は切り上げなければなりません。 切り抜き、パディング、スケーリングは許可されません。出力フレームの解像度は入力フレームの解像度と一致する必要があります。 |
運用上の要件
このセクションでは、動画コーデックが動作することが想定されるさまざまな条件の要件を指定します。これらの要件に違反すると、コーデックの使用がシナリオのサブセットに制限される可能性がありますが、必ずしも使用が禁止されるわけではありません。たとえば、コーデック インスタンスの最大数が必要な数より少ない場合でも、そのコーデックは他のタイプまたは実装のコーデックと併用できます。
パラメータ | 要件 | |||
---|---|---|---|---|
最小解像度(ピクセル) | ≤ 128 × 128 | |||
最大解像度(ピクセル) | ≥ 2880 × 1800 | |||
最小フレームレート(FPS) | 1 以下 | |||
最大フレームレート(FPS) | ≥ 30 | |||
最小ビットレート(kbps) | ≤ 30 | |||
最大ビットレート(kbps) | 5,000 以上 | |||
デコーダ インスタンスの最大数 | ≥ 3 | |||
最大合計デコード スループット(ピクセル / 秒) | 3 × 2880 × 1880 × 30 以上 |
パフォーマンス要件
このセクションでは、コーデックのパフォーマンスに関する要件について説明します。これらの要件に違反すると、ユーザー エクスペリエンスに重大な影響を与え、コーデックの使用がブロックされる可能性があります。
パラメータ | 要件 |
---|---|
フレーム間の最大処理時間(秒) | ≤ 1 / max(30, encode_target_frame_rate_fps) |
キーフレームの最大処理時間(秒) | ≤ 2 / max(30, encode_target_frame_rate_fps) |
フレーム処理時間は、2 つのイベント(1)コーデックがフレームを配信するイベントと(2)コーデックがフレームを受信するイベントの間の差分です。平均フレーム処理時間は、少なくとも 10 秒の長さで少なくとも 10 フレームを保持するスライディング ウィンドウで計算されます。最大フレーム処理時間は、すべての個々のフレーム処理時間値の中で最も高い値です。
スループットは、ドロップされたフレームを含む処理されたフレーム数を、2 つのイベント(1)コーデックが最後のフレームを配信するイベント、(2)コーデックが最初のフレームを配信するイベント)の間の時間差で割って算出されます。
テストケース
使用できるテストケースは次のとおりです。
テスト | |
---|---|
デコード スループット | 最大 3 つの 2880 × 1880 × 30 ストリームを同時にデコードし、デコーダがパフォーマンス要件に違反していないことを確認します。 |
デコーダの適合性 |
事前にエンコードされた一連のビットストリームをデコードします。テスト デコーダの出力は、リファレンス デコーダの出力(VP8 と VP9 の場合は libvpx 、AV1 の場合は libaom )と一致する必要があります。 |
時間的なスケーラビリティ | 複数のテンポラル レイヤ(2 と 3)を使用して動画をデコードします。テスト デコーダの出力は、リファレンス デコーダの出力と一致する必要があります。 |
空間スケーラビリティ | 複数の空間レイヤ(2 と 3)を含む動画をデコードします。テスト デコーダの出力は、リファレンス デコーダの出力と一致する必要があります。 |