(57)【要約】【課題】データの欠落が生じ得るネットワークにおいて、欠落したデータの再送を低遅延で行うことを可能とする技術を提供する。【解決手段】キャッシュ装置において、データを格納するためのデータ記憶部と、送信装置から受信装置へ順次送信されるデータを取得し、最新のデータを前記データ記憶部に格納する制御部と、前記受信装置から再送要求を受信した場合に、前記データ記憶部から読み出したデータを前記受信装置に送信する送信部とを備える。【選択図】図２
2020127181.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するためのデータ記憶部と、
送信装置から受信装置へ順次送信されるデータを取得し、最新のデータを前記データ記憶部に格納する制御部と、
前記受信装置から再送要求を受信した場合に、前記データ記憶部から読み出したデータを前記受信装置に送信する送信部と
を備えるキャッシュ装置。
【請求項２】
前記制御部は、前記データ記憶部に格納されるデータが最新のデータのみになるように、あるいは、前記データ記憶部に格納されるデータが最新のデータを含む所定数個のデータのみになるように、前記データ記憶部に格納されているデータを削除する
請求項１に記載のキャッシュ装置。
【請求項３】
前記送信装置から前記受信装置へ順次送信されるデータは映像データであり、前記データ記憶部に格納されるデータはキーフレームデータである
請求項１又は２に記載のキャッシュ装置。
【請求項４】
請求項１ないし３のうちいずれか１項に記載のキャッシュ装置であって、前記受信装置が接続するエッジネットワーク内に備えられるキャッシュ装置と、
前記送信装置と
を備えるデータ配信システム。
【請求項５】
データを格納するためのデータ記憶部を備えるキャッシュ装置が実行する再送方法であって、
送信装置から受信装置へ順次送信されるデータを取得し、最新のデータを前記データ記憶部に格納するステップと、
前記受信装置から再送要求を受信した場合に、前記データ記憶部から読み出したデータを前記受信装置に送信するステップと
を備える再送方法。
【請求項６】
コンピュータを、請求項１ないし３のうちいずれか１項に記載のキャッシュ装置における各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信装置から受信装置にデータを配信するシステムにおけるデータの再送技術に関連するものである。
【背景技術】
【０００２】
映像配信などのリアルタイム通信では、Ｈ．２６４のような差分圧縮技術を用いてコンテンツを圧縮し、通信量を削減する手法が用いられている。差分圧縮とは、一定の区間ごとにキーフレームなどと呼ばれるフレームを生成し、キーフレーム以外の任意のフレームは直前のキーフレームとの差分のみを送信することによってコンテンツを圧縮する技術である。なお、本願に関連する先行技術文献として特許文献１がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許５５７９１１９号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＩＰ通信のようなパケットの欠落が生じるネットワーク上での通信においては、キーフレームの欠落が予想される。キーフレームが欠落すると、以後、そのキーフレームを参照するフレームに含まれる情報が利用できない。
【０００５】
既存の映像配信システムなどでは、キーフレームの再送が一般に行われているが、再送されたキーフレームが到着されるまでの間コンテンツの情報が得られないため、リアルタイムコミュニケーションなどでは、ユーザの体感品質を損なう。すなわち、既存の映像配信に含まれるキーフレーム再送技術では、エンド・トゥ・エンドでの再送を前提としているため、再送時の遅延が大きい。
【０００６】
なお、上記のような再送時の遅延が大きくなるという課題は、差分圧縮技術を用いる映像配信に限らず、データ配信全般で生じ得る課題である。
【０００７】
本発明は上記の点に鑑みてなされたものであり、データの欠落が生じ得るネットワークにおいて、欠落したデータの再送を低遅延で行うことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
開示の技術によれば、データを格納するためのデータ記憶部と、
送信装置から受信装置へ順次送信されるデータを取得し、最新のデータを前記データ記憶部に格納する制御部と、
前記受信装置から再送要求を受信した場合に、前記データ記憶部から読み出したデータを前記受信装置に送信する送信部と
を備えるキャッシュ装置が提供される。
【発明の効果】
【０００９】
開示の技術によれば、データの欠落が生じ得るネットワークにおいて、欠落したデータの再送を低遅延で行うことを可能とする技術が提供される。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態において前提となるシステムの構成例を示す図である。
【図２】本発明の実施の形態におけるシステムの構成と動作の概要を説明するための図である。
【図３】本発明の実施の形態におけるシステムの動作例を説明するための図である。
【図４】本発明の実施の形態におけるシステムの動作例を説明するための図である。
【図５】本発明の実施の形態におけるシステムの動作例を説明するための図である。
【図６】キャッシュノードの機能構成例を示す図である。
【図７】ハードウェア構成例を示す図である。
【図８】キャッシュノードの動作を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施の形態（本実施の形態）を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。
【００１２】
以下、「データ」の用語を使用するが、これを「パケット」、「フレーム」などと呼んでもよい。また、以下の実施の形態では、差分圧縮技術を用いる映像配信を例にとって説明するが、本発明は、差分圧縮技術を用いる映像配信以外のデータ配信にも適用可能である。
【００１３】
（システム構成例、動作例）
図１に、本発明の実施の形態において前提となるシステムの構成例を示す。図１に示すシステムにはキャッシュノードは配置されていない。図１に示すように、本システムにおいて、映像データを配信する送信装置１０、及び、映像データを受信して映像再生を行う受信装置２０が備えられる。送信装置１０及び受信装置２０のそれぞれはエッジネットワーク内に存在し、各エッジネットワークはインターネット３０に接続されている。受信装置２０が接続されるエッジネットワークは、例えば、無線ＬＡＮである。
【００１４】
図１に示すシステムにおいて、送信装置１０は、映像データを順次送信する。順次送信される映像データは、キーフレームのデータ（キーフレームデータ）、キーフレームからの差分を表すフレームのデータ（差分フレームデータ）を含む。なお、キーフレームをＩフレームと呼んでもよい。また、差分を表すフレームをＰフレーム、Ｂフレームなどと呼んでもよい。
【００１５】
受信装置２０は、送信装置１０から送信される映像データを順次受信し、復号・再生して、映像を表示している。ここで、受信装置２０が、キーフレームデータが欠落したことを検知すると、当該キーフレームデータの再送要求を送信装置１０に向けて送信する。送信装置１０は、要求されたキーフレームデータを受信装置２０に再送する。
【００１６】
なお、例えば、各映像データには、その順番を表すシーケンス番号と、フレームの種別を表す識別情報が含まれている。これにより、受信装置２０は、受信すべきキーフレームデータを受信していないこと（欠落したこと）を検知できる。
【００１７】
図１のシステムでは、再送要求を送信してからキーフレームデータが受信装置２０に到着するまでの間、受信装置２０はコンテンツの情報を得られないため、ユーザの体感品質を損なう。
【００１８】
そこで、本実施の形態では、図２に示すように、受信装置２０が配置されるエッジネットワーク内にキャッシュノード１００を配置する。キャッシュノード１００は、サーバ、ＰＣなどであってもよいし、ルータなどの通信機器であってもよい。また、図２の「キャッシュノード１００」は、図３〜図５に示す「ネットワーク機器４０とキャッシュノード１００とからなる装置」であってもよい。なお、キャッシュノードをキャッシュ装置と称してもよい。図２に示すシステムの動作例は次のとおりである。
【００１９】
送信装置１０は、映像データを順次送信する。受信装置２０は、送信装置１０から送信される映像データを、キャッシュノード１００を経由して順次受信し、復号・再生して、映像を表示している。なお、受信装置２０と送信装置１０との間で送受信されるデータがキャッシュノード１００を経由する形態は一例に過ぎない。例えば、既存のネットワーク機器を経由するデータをコピー等で取得して、監視することとしてもよい。つまり、キャッシュノード１００を入れても抜いても受信装置２０と送信装置１０との間のデータのルートが変わらない方法を採用してもよい。この方法については後述する。
【００２０】
また、キャッシュノード１００は、送信装置１０から送信される映像データを順次受信し、最新のキーフレームデータのみをキャッシュする。なお、キャッシュすることを、格納する、記憶する、保持するなどと言い換えてもよい。
【００２１】
例えば、キャッシュノード１００は、映像データに含まれる識別情報から、映像データがキーフレームデータであることを識別すると、当該キーフレームデータをキャッシュする。もしも、既にキャッシュされているキーフレームデータがある場合には、そのキーフレームデータを削除して、新たに到着したキーフレームデータをキャッシュする。
【００２２】
なお、キャッシュノード１００は、最新のキーフレームデータのみでなく、所定数個のキーフレームデータを格納することとしてもよい。例えば、３つ分をキャッシュする場合を考えると、キャッシュノード１００は、キーフレームデータ１、キーフレームデータ２、キーフレームデータ３をキャッシュし、次に、キーフレームデータ４を受信した場合、キャッシュしたキーフレームデータの中で、最も過去のデータであるキーフレームデータ１を削除し、キーフレームデータ４をキャッシュする。
【００２３】
ここで、受信装置２０が、キーフレームデータが欠落したことを検知する。キャッシュノード１００は、当該キーフレームデータを最新のキーフレームデータとして保持している。
【００２４】
受信装置２０は、欠落を検知したキーフレームデータの再送要求を送信装置１０に向けて送信する。キャッシュノード１００は、キーフレームデータの再送要求を受信し、送信装置１０の代理で、要求されたキーフレームデータを受信装置２０に送信する。これにより、図１の場合に比べて、受信装置２０は低遅延で必要なキーフレームデータを取得でき、低遅延で映像を再生できる。
【００２５】
仮に、キャッシュノード１００が、受信装置２０から送信された再送要求に該当するキーフレームデータを保持していない場合には、キャッシュノード１００は要求されたキーフレームデータを送信できないが、その場合でも、再送要求はキャッシュノード１００を経由して送信装置１０に届けられるので、キーフレームデータの再送は実施される。
【００２６】
なお、キャッシュノード１００は、受信装置２０から送信された再送要求を遮断し、送信装置１０に届かないようにしてもよい。遮断することによって、インターネット３０のトラフィック量を低減させることができる。また、送信装置１０の再送処理に伴う負荷を低減させることができる。なお、この再送要求の遮断は、キャッシュノード１００が再送要求に係るキーフレームデータを保持している場合にのみ行うこととしてもよい。
【００２７】
映像データを運ぶＩＰパケットの欠落は、インターネット基幹網ではなく、エッジネットワークにおける通信、すなわち、コンテンツを利用する受信装置が実行する無線通信などで生じることが一般的である。そのため、図２に示すように、本実施の形態では、キャッシュノード１００をエッジネットワークに備えることで、エンド・トゥー・エンドで再送処理を行うのではなく、通信の信頼性が低い区間（例：無線区間）に限って、再送処理を行うこととしている。これにより、低遅延な再送処理が可能となる。
【００２８】
ただし、キャッシュノード１００を配置する場所はエッジネットワークに限られるわけではなく、送信装置１０と受信装置２０との間の経路上であればどこに設置してもよい。例えば、インターネット３０上にキャッシュノード１００を設置してもよい。送信装置１０と受信装置２０との間の経路上にキャッシュノード１００を設置することで、エンド・トゥー・エンドで再送処理を行う場合に比べて、低遅延な再送処理が可能となる。
【００２９】
（他の例）
本実施の形態に係るシステムの他の例を図３〜図５を参照して説明する。図３に示すように、本システムは、送信装置１０、受信装置２０、キャッシュノード１００、及びネットワーク機器４０を有する。ネットワーク機器４０は、例えば無線ＬＡＮのアクセスポイントルータである。
【００３０】
ネットワーク機器４０と受信装置２０との間では無線で通信が行われる。ネットワーク機器４０とキャッシュノード１００との間は有線で接続される。また、ネットワーク機器４０と送信装置１０との間は例えばインターネットを介して接続されている。
【００３１】
ネットワーク機器４０は、送信装置１０から受信装置２０宛てに送信されたデータを受信すると当該データを受信装置２０に送信するとともに、キャッシュノード１００にも送信する。また、ネットワーク機器４０は、受信装置２０から送信装置１０宛てに送信されたデータを受信すると当該データを送信装置１０に送信するとともに、キャッシュノード１００にも送信する。ただし、ネットワーク機器４０がキャッシュノード１００に送信するデータは特定のデータのみ（例：キーフレームデータ、再送要求）としてもよい。
【００３２】
図３において、送信装置１０は受信装置２０宛てに順次映像データを送信する。ネットワーク機器４０は、送信装置１０から受信した映像データを受信装置２０に送信するとともに、キャッシュノード１００にも送信する。キャッシュノード１００は、最新のキーフレームデータのみ（あるいは最新のキーフレームデータを含む所定数個のキーフレームデータ）をキャッシュする。
【００３３】
ここで、ネットワーク機器４０と受信装置２０との間でパケットロスが生じ、受信装置２０がキーフレームデータを受信し損ねるものとする。すると、図４に示すように、受信装置２０は、当該キーフレームデータの再送要求を送信装置１０宛てに送信する。再送要求は、ネットワーク機器４０を経由してキャッシュノード１００に届く。また、当該再送要求は、ネットワーク機器４０を経由して、送信装置１０にも届く。ただし、送信装置１０へはインターネット等を経由するので時間がかかる。よって、キャッシュノード１００は、送信装置１０よりも早く再送要求を受信する。
【００３４】
図５に示すように、再送要求を受信したキャッシュノード１００は、キャッシュしていたキーフレームデータを受信装置２０宛てに送信する。これにより、受信装置２０は、低遅延でキーフレームデータを受信できる。
【００３５】
なお、この例では、送信装置１０からキーフレームデータが再送され、受信装置２０に届くが、受信装置２０は既に当該キーフレームデータを再生済みなので、送信装置１０から再送されたキーフレームデータは破棄される。
【００３６】
（装置構成例）
図６にキャッシュノード１００の機能構成例を示す。図６に示すように、キャッシュノード１００は、送信部１１０、受信部１２０、制御部１３０、データ記憶部１４０を有する。
【００３７】
送信部１１０は、再送要求に基づき、要求されたキーフレームデータをデータ記憶部１４０から読み出し、当該キーフレームデータを再送要求元宛てに送信する。受信部１２０は、外部からデータを受信する。
【００３８】
制御部１３０は、受信部１２０により受信されたデータを受け取り、当該データが最新のキーフレームであるか否かを判定し、最新のキーフレームデータである場合に、当該キーフレームデータをデータ記憶部１４０に格納する。また、受信したデータが再送要求であれば、送信部１１０にキーフレームデータの送信を指示する。
【００３９】
データ記憶部１４０は、最新のキーフレームデータを格納する。ただし、前述したように、最新のキーフレームデータを含む所定数個のキーフレームデータを格納することとしてもよい。
【００４０】
キャッシュノード１００は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。
【００４１】
すなわち、キャッシュノード１００は、コンピュータに内蔵されるＣＰＵやメモリ等のハードウェア資源を用いて、当該キャッシュノード１００で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【００４２】
図７は、本実施の形態における上記コンピュータのハードウェア構成例を示す図である。図７のコンピュータは、それぞれバスＢで相互に接続されているドライブ装置１０００、補助記憶装置１００２、メモリ装置１００３、ＣＰＵ１００４、インタフェース装置１００５、表示装置１００６、及び入力装置１００７等を有する。
【００４３】
当該コンピュータでの処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ又はメモリカード等の記録媒体１００１によって提供される。プログラムを記憶した記録媒体１００１がドライブ装置１０００にセットされると、プログラムが記録媒体１００１からドライブ装置１０００を介して補助記憶装置１００２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１００１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１００２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００４４】
メモリ装置１００３は、プログラムの起動指示があった場合に、補助記憶装置１００２からプログラムを読み出して格納する。ＣＰＵ１００４は、メモリ装置１００３に格納されたプログラムに従って、当該キャッシュノード１００に係る機能を実現する。インタフェース装置１００５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１００６はプログラムによるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等を表示する。入力装置１００７はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【００４５】
（キャッシュノード１００の動作例）
図８は、図６に示した構成を備えるキャッシュノード１００の動作例を示すフローチャートである。
【００４６】
Ｓ１０１において、受信部１２０がデータを受信する。Ｓ１０２において、制御部１３０は、受信したデータが最新のキーフレームデータであるか否かを判定する。例えば、データ記憶部１４０に最新のキーフレームデータとして、シーケンス番号が１００番の映像データであるキーフレームデータが格納されている場合に、１００番よりも後である１０５番の映像データとして次のキーフレームデータを受信した場合、制御部１３０は、当該映像データを最新のキーフレームデータであると判断する。
【００４７】
Ｓ１０２の判定結果がＹｅｓの場合（受信したデータが最新のキーフレームデータである場合）、Ｓ１０３において、制御部１３０は当該最新のキーフレームデータをデータ記憶部１４０に格納する。データ記憶部１４０に格納されていた以前の「最新のキーフレームデータ」は削除される。なお、前述したように、既に格納されていた「最新のキーフレームデータ」をすぐに削除するのではなく、格納するキーフレームデータが所定数個分残るように、最新のキーフレームデータが来たら、所定数個からあふれる古いキーフレームデータを削除するようにしてもよい。
【００４８】
Ｓ１０２の判定結果がＮｏである場合（受信したデータが最新のキーフレームデータでない場合）、Ｓ１０４において、制御部１３０は、受信したデータが再送要求であるか否かを判断する。
【００４９】
Ｓ１０４の判断結果がＹｅｓである場合（受信したデータが再送要求である場合）、Ｓ１０５において、送信部１１０が、再送要求で要求されたキーフレームデータをデータ記憶部１４０から読み出し、要求元に向けて送信する。
【００５０】
Ｓ１０４の判断結果がＮｏである場合（受信したデータが再送要求でない場合）、制御部１３０は、Ｓ１０６において受信したデータを破棄する。
【００５１】
（実施の形態のまとめ、効果）
以上、説明したように、本実施の形態では、受信装置側のエッジネットワーク内に、キーフレームデータをキャッシュするキャッシュノード１００を配置し、再送要求が受信装置２０から送信装置１０に送られる際、キャッシュノード１００が再送要求を受信し、送信装置１０の代わりに、キャッシュしておいたキーフレームデータを再送する。
【００５２】
通常、映像などのデータを全てキャッシュすると、キャッシュするデータ量が膨大になってしまうが、本実施の形態のように、最新のキーフレームデータのみ（あるいは所定数個分のキーフレームデータのみ）をキャッシュすることで、キャッシュするデータ量を抑えることができる。
【００５３】
なお、本実施の形態における上記の仕組みを実現するにあたり、キャッシュノード以外の既存の実装を変更する必要はない。ただし、ネットワーク機器４０において、再送要求の送信装置１０側への転送を遮断する機能を設けてもよい。
【００５４】
本実施の形態で説明した技術により、キーフレーム欠落時に生じる、コンテンツが利用できる様になるまでのタイムラグを低減することができ、ユーザ体験を向上させることができる。
【００５５】
本明細書には、少なくとも下記の事項が開示されている。
（第１項）
データを格納するためのデータ記憶部と、
送信装置から受信装置へ順次送信されるデータを取得し、最新のデータを前記データ記憶部に格納する制御部と、
前記受信装置から再送要求を受信した場合に、前記データ記憶部から読み出したデータを前記受信装置に送信する送信部と
を備えるキャッシュ装置。
（第２項）
前記制御部は、前記データ記憶部に格納されるデータが最新のデータのみになるように、あるいは、前記データ記憶部に格納されるデータが最新のデータを含む所定数個のデータのみになるように、前記データ記憶部に格納されているデータを削除する
第１項に記載のキャッシュ装置。
（第３項）
前記送信装置から前記受信装置へ順次送信されるデータは映像データであり、前記データ記憶部に格納されるデータはキーフレームデータである
第１項又は第２項に記載のキャッシュ装置。
（第４項）
第１項ないし第３項のうちいずれか１項に記載のキャッシュ装置であって、前記受信装置が接続するエッジネットワーク内に備えられるキャッシュ装置と、
前記送信装置と
を備えるデータ配信システム。
（第５項）
データを格納するためのデータ記憶部を備えるキャッシュ装置が実行する再送方法であって、
送信装置から受信装置へ順次送信されるデータを取得し、最新のデータを前記データ記憶部に格納するステップと、
前記受信装置から再送要求を受信した場合に、前記データ記憶部から読み出したデータを前記受信装置に送信するステップと
を備える再送方法。
（第６項）
コンピュータを、第１項ないし第３項のうちいずれか１項に記載のキャッシュ装置における各部として機能させるためのプログラム。
【００５６】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００５７】
１０  送信装置
２０  受信装置
３０  インターネット
１００  キャッシュノード
１１０  送信部
１２０  受信部
１３０  制御部
１４０  データ記憶部
１０００  ドライブ装置
１００２  補助記憶装置
１００３  メモリ装置
１００４  ＣＰＵ
１００５  インタフェース装置
１００６  表示装置
１００７  入力装置
【図１】
2020127181.tif 000003
【図２】
2020127181.tif 000004
【図３】
2020127181.tif 000005
【図４】
2020127181.tif 000006
【図５】
2020127181.tif 000007
【図６】
2020127181.tif 000008
【図７】
2020127181.tif 000009
【図８】
2020127181.tif 000010