メインコンテンツまでスキップ

13.3 Example of Robust Packet Scheduling (堅牢なパケットスケジューリングの例)

13.3. Example of Robust Packet Scheduling (堅牢なパケットスケジューリングの例)

堅牢なパケットスケジューリングの例を示す. 例で用いる通信システムは, 動画がソースからシンクへ処理される順に, 次の構成要素からなる.

  • カメラとキャプチャ
  • pre-encoding buffer (符号化前バッファ)
  • encoder (エンコーダ)
  • encoded picture buffer (符号化画像バッファ)
  • transmitter (送信機)
  • transmission channel (伝送チャネル)
  • receiver (受信機)
  • receiver buffer (受信バッファ)
  • decoder (デコーダ)
  • decoded picture buffer (復号画像バッファ)
  • display (表示)

本例の動画通信システムは次のように動作する. 動画ストリームの処理は, システムのすべての構成要素で漸進的かつ同時に行われる点に注意する. ソース動画シーケンスは撮影され, pre-encoding buffer に取り込まれる. pre-encoding buffer は, sampling order (サンプリング順) から encoding order (符号化順) への画像の並べ替えや, ビットレート制御のために複数の非圧縮フレームを解析する用途などに用いられる. 場合によっては pre-encoding buffer が存在せず, サンプルされた画像が直ちに符号化される. エンコーダは pre-encoding buffer から画像を符号化し, 出力 (すなわち符号化画像) を encoded picture buffer に格納する. 送信機は encoded picture buffer の符号化画像を伝送パケットにカプセル化し, transmission channel 経由で受信機へ送る. 受信機は受信パケットを receiver buffer に格納する. 受信バッファリングは, 通常 transmission delay jitter (伝送遅延ジッタ) のバッファリングを含む. receiver buffer は, 符号化データの正しい復号順序を回復するためにも用いられる. デコーダは receiver buffer から符号化データを読み取り, 復号画像を decoded picture buffer へ出力する. decoded picture buffer は画像の output (または display) 順を回復するために用いられる. 最後に画像が表示される.

以下の例図では, I は IDR picture (Instantaneous Decoder Refresh 画像), R は参照画像, N は非参照画像を表し, I, R, N の後の数字は, 復号順序における直前の IDR 画像に対する相対的なサンプリング時刻を示す. 画像シーケンスの下の値はスケールされたシステムクロックのタイムスタンプである. 本例ではシステムクロックは任意に初期化され, 時間は左から右へ進む. 符号化, 伝送, 復号に時間がかからないと仮定すると, 各 I, R, N 画像は, 直前の処理段階があればそれと比較して同じタイムラインに写像される. したがって, 同時に起きる事象は, すべての例図で同じ列に位置する.

符号化画像シーケンスの一部を, sampling order で下に示す.

    ...  N58 N59 I00 N01 N02 R03 N04 N05 R06 ... N58 N59 I00 N01 ...
... --|---|---|---|---|---|---|---|---|- ... -|---|---|---|- ...
... 58 59 60 61 62 63 64 65 66 ... 128 129 130 131 ...

図 16. sampling order における画像シーケンス

サンプルされた画像は pre-encoding buffer で encoding order に並べ替えられる. 本例では, 非参照画像は output order における直前および直後の参照画像の両方から予測されると仮定するが, IDR 画像の直前の非参照画像は, output order における直前の参照画像からのみ予測される. したがって, pre-encoding buffer は少なくとも 2 枚の画像を保持し, バッファリングは 2 画像分の間隔の遅延を生じさせる. pre-encoding buffer 処理の出力および画像の符号化 (と復号) の順序は次のとおりである.

   ... N58 N59 I00 R03 N01 N02 R06 N04 N05 ...
... -|---|---|---|---|---|---|---|---|- ...
... 60 61 62 63 64 65 66 67 68 ...

図 17. pre-encoding buffer 内で並べ替えられた画像

エンコーダまたは送信機は, 各画像の DON を, 復号順序で直前の画像の DON に 1 を加えた値に設定できる.

単純化のため, 次を仮定する.

  • シーケンスのフレームレートは一定である,
  • 各画像は 1 スライスのみからなる,
  • 各スライスは単一の NAL unit パケットにカプセル化される,
  • 伝送遅延はなく,
  • 画像は一定間隔 (すなわち 1 / (フレームレート)) で伝送される.

画像を復号順序で伝送すると, 次のように受信される.

   ... N58 N59 I00 R03 N01 N02 R06 N04 N05 ...
... -|---|---|---|---|---|---|---|---|- ...
... 60 61 62 63 64 65 66 67 68 ...

図 18. 復号順序で受信した画像

任意のメディアタイプパラメータ sprop-interleaving-depth は 0 に設定される. 伝送 (または受信) 順が復号順序と同一だからである.

初期状態では, デコーダは decoded picture buffer で 1 画像分の間隔をバッファし, 画像を復号順序から output order へ整理する必要がある. 下図のとおりである.

   ... N58 N59 I00 N01 N02 R03 N04 N05 R06 ...
... -|---|---|---|---|---|---|---|---|- ...
... 61 62 63 64 65 66 67 68 69 ...

図 19. output order

decoded picture buffer に必要な初期バッファ量は, buffering period SEI (補助拡張情報) メッセージ, または H.264 video usability information の num_reorder_frames 構文要素で通知できる. num_reorder_frames は, シーケンス内で復号順序では任意のフレーム, complementary field pair (補完場ペア), または non-paired field (非ペア場) より前にあり, output order ではそれより後にあるような, フレーム, 補完場ペア, または非ペア場の最大個数を示す. 単純化のため, num_reorder_frames が decoded picture buffer の初期バッファを示すと仮定する. 本例では num_reorder_frames は 1 である.

IDR 画像 I00 が伝送中に失われ, システムクロックの値が 62 のとき再送要求が発行された場合, システムクロックがタイムスタンプ 63 に達するまでの 1 画像分の時間があり, 再送された IDR 画像 I00 を受信できることが分かる.

次に, IDR 画像を復号位置より 2 フレーム間隔早く伝送すると仮定する. すなわち画像は次のように伝送される.

   ...  I00 N58 N59 R03 N01 N02 R06 N04 N05 ...
... --|---|---|---|---|---|---|---|---|- ...
... 62 63 64 65 66 67 68 69 70 ...

図 20. インターリーブ: 送信順での早期 IDR 画像

任意のメディアタイプパラメータ sprop-interleaving-depth は, 定義に従い 1 に等しく設定される. (本例の sprop-interleaving-depth の値は次のように導出できる: 画像 I00 は, 画像 N58 または N59 について伝送順では前にあり復号順序では後にある唯一の画像である. 画像 I00, N58, N59 を除き, 伝送順は画像の復号順序と同じである. 符号化画像は正確に 1 つの NAL unit にカプセル化されるため, sprop-interleaving-depth の値は, 任意の画像について伝送順でその画像より前にあり復号順序でその画像より後にある画像の最大個数に等しい.)

受信バッファリング処理は sprop-interleaving-depth パラメータの値に従い同時に 2 枚の画像を保持し, 各画像に関連付けられた DON の値に基づき, 受信順から正しい復号順序へ画像を並べ替える. 受信バッファリング処理の出力は次のとおりである.

   ... N58 N59 I00 R03 N01 N02 R06 N04 N05 ...
... -|---|---|---|---|---|---|---|---|- ...
... 63 64 65 66 67 68 69 70 71 ...

図 21. インターリーブ: 受信バッファ

再び, 画像を復号順序から output order へ整理するには, 1 画像分の初期バッファ遅延が必要である. 下図のとおりである.

    ... N58 N59 I00 N01 N02 R03 N04 N05 ...
... -|---|---|---|---|---|---|---|- ...
... 64 65 66 67 68 69 70 71 ...

図 22. インターリーブ: 並べ替え後の受信バッファ

IDR 画像が伝送中に (アプリケーション, トランスポート, またはリンク層の再送を含め) 被りうる最大遅延は 3 画像分の間隔に等しいことに注意する. したがって, 画像を復号順序で伝送する場合と比較して, 再送をサポートするシステムでは IDR 画像の損失耐性が改善される.