ICN向けの軽量な動画配信システム

ICN向けの軽量な動画配信システム

ACM ICN 2017で発表した “Demo: Panoramic Streaming using Named Tiles“では、Raspberry Pi 3をカメラに接続し、360°のパノラマ映像を配信しました。ここでは、その基礎となったキャッシュを考慮した適応的フレームレート制御方式について紹介します。

解決しようとする課題

動画の配信を行う場合、様々なネットワーク品質を持つユーザに対して最適な動画を届けることが1つの課題です。そのため、様々な画質の動画を提供し、それぞれのユーザが最適な画質を選択されています。例えばYouTubeは、2017/10現在で7段階の画質を提供しています

しかしながら、ICNにおいて様々なコンテンツを用意することはキャッシュのヒット率に悪い影響があります。例えば画質が3種類あり、Consumerがそれぞれ別の画質を選択した場合、ネットワーク内のキャッシュの効果はなくなります(図1)。この問題を解決するために各ユーザのビットレートを合わせる技術などが提案されていますが、今回は少し異なる手法を使います。

fig1
図1 適応型ビットレート制御手法

適応的フレームレート制御方式

動画とは静止画(フレーム)が連続したものであり、それをパラパラ漫画の要領で見せています。1秒間に表示させるフレームの数をユーザの回線品質毎に変化させようというのが、適応型フレームレート制御方式です(図2)。具体的には、そのフレームそれぞれにユニークな「名前」をつけて配信しています。Consumerは自分のネットワーク品質に合わせた間隔でフレームを取得し表示します。この時、各Consumerが選択したレートが異なった場合においてもフレームは同じであるため、キャッシュを有効利用することができます。

これによるメリットとしては

  • ネットワーク内キャッシュの有効活用
  • Priducer側で動画圧縮の必要がない
  • 要求されたフレームのみ圧縮すればよい

という利点があります。このため、軽量なPC(Raspberry Pi)でも遅延少なく動画配信を可能としました。

fig2
図2 適応型フレームレート制御

シーケンス番号推定手法

fig3
図3 シーケンス番号推定手法

上記制御を実現するためにフレーム番号の推定が必要となります。通常の動画配信の場合シーケンシャルに連続した番号のコンテンツを要求すれば良いのですが、我々の配信方式の場合、離散的にフレーム番号をリクエストする必要があります。これに対応するために以下のようにフレーム番号を推定しています(図3)。

  1. ConsumerがBase TimeにMetadataを要求する
  2. Producerは現在のフレーム番号 (m) を含むMetadataを返信する
  3. Consumerがフレームを要求する時、Base Timeからの経過時間を元に、現在リクエストした時帰ってくるフレーム番号を推定し、要求する
  4. Metadataを定期的にリクエストすることにより時刻誤差を修正する

シンプルな方法ですが、これにより離散的なシーケンス番号の要求が可能となります。

まとめ

ネットワーク内キャッシュはICNの特徴の一つですが、どのようにしてそれを活用するかというのは課題の1つです。動画配信においてもICNの機能を活用可能な方法は何かのかということを考えることは、重要なことだと思います。