(57)【特許請求の範囲】
【請求項１】
映像を蓄積するコンテンツサーバと、配信された映像を再生する端末との間に設けられ、コンテンツサーバから映像を取得してキャッシュしつつ端末に配信する映像プロクシサーバであって、
端末からの要求を受け付ける要求受付部、
コンテンツサーバから映像を取得する映像取得部、
前記映像取得部が取得した映像をキャッシュする映像キャッシュ部、および
前記映像キャッシュ部がキャッシュした映像を端末に配信する映像配信部を備え、
前記映像取得部は、
前記要求受付部が再生要求を受け付けると、コンテンツサーバから映像を取得する動作を開始し、
コンテンツサーバから映像を取得する動作を実行中に前記要求受付部がシーク再生要求を受け付けると、当該実行中の映像取得動作を継続しつつ、コンテンツサーバからシーク位置以降の映像を取得する動作をも開始し、
前記映像キャッシュ部は、
前記映像取得部がコンテンツサーバから取得した映像をキャッシュするためのキャッシュ領域、および
前記映像取得部がコンテンツサーバから取得したシーク位置以降の映像を一時的にキャッシュするための一時的キャッシュ領域を含み、
前記映像取得部がシーク再生要求に応じてコンテンツサーバからシーク位置以降の映像を取得する動作を実行中に、前記要求受付部が次のシーク再生要求を受け付けると、前記一時的キャッシュ領域をクリアした後、当該次のシーク位置以降の映像を当該一時的キャッシュ領域にキャッシュする動作を開始することを特徴とする、映像プロクシサーバ。
【請求項２】
前記映像配信部は、
前記要求受付部が再生要求を受け付けると、前記キャッシュ領域から映像を読み出して端末に配信する動作を開始し、
前記映像取得部がコンテンツサーバから映像を取得する動作を実行中に、前記要求受付部がシーク再生要求を受け付けると、前記キャッシュ領域から映像を読み出して端末に配信する動作を停止する一方、前記一時的キャッシュ領域から映像を読み出して端末に配信する動作を開始することを特徴とする、請求項１に記載の映像プロクシサーバ。
【請求項３】
前記映像キャッシュ部は、
前記映像取得部がシーク再生要求に応じてコンテンツサーバからシーク位置以降の映像を取得する動作を実行中に、前記要求受付部が停止要求を受け付けると、前記一時的キャッシュ領域をクリアすることを特徴とする、請求項１に記載の映像プロクシサーバ。
【請求項４】
前記映像取得部は、要求された映像または要求されたシーク位置以降の映像が前記映像キャッシュ部によりキャッシュされていない場合に限って、当該映像または当該シーク位置以降の映像をコンテンツサーバから取得することを特徴とする、請求項１に記載の映像プロクシサーバ。
【請求項５】
映像を蓄積するコンテンツサーバと、配信された映像を再生する端末との間で行われる、コンテンツサーバから映像を取得してキャッシュしつつ端末に配信する映像配信方法であって、
端末からの要求を受け付ける要求受付ステップ、
コンテンツサーバから映像を取得する映像取得ステップ、
前記映像取得ステップで取得した映像をキャッシュする映像キャッシュステップ、および
前記映像キャッシュステップでキャッシュした映像を端末に配信する映像配信ステップを備え、
前記映像取得ステップでは、
前記要求受付ステップで再生要求を受け付けると、コンテンツサーバから映像を取得する動作を開始し、
コンテンツサーバから映像を取得する動作を実行中に前記要求受付ステップでシーク再生要求を受け付けると、当該実行中の映像取得動作を継続しつつ、コンテンツサーバからシーク位置以降の映像を取得する動作をも開始し、
前記映像キャッシュステップでは、
前記要求受付ステップで再生要求を受け付けると、前記映像取得ステップでコンテンツサーバから取得した映像をキャッシュする動作を開始し、
コンテンツサーバから映像を取得する動作を実行中に前記要求受付ステップでシーク再生要求を受け付けると、当該実行中の映像キャッシュ動作を継続しつつ、前記映像取得ステップでコンテンツサーバから取得したシーク位置以降の映像を一時的にキャッシュする動作を開始し、
前記映像取得ステップがシーク再生要求に応じてコンテンツサーバからシーク位置以降の映像を取得する動作を実行中に、前記要求受付ステップが次のシーク再生要求を受け付けると、一時的にキャッシュした前記シーク位置以降の映像を削除した後、当該次のシーク位置以降の映像を一時的にキャッシュする動作を開始することを特徴とする、映像配信方法。
【請求項６】
映像を蓄積するコンテンツサーバと、配信された映像を再生する端末との間で行われる、コンテンツサーバから映像を取得してキャッシュしつつ端末に配信する映像配信方法を記述したプログラムであって、
端末からの要求を受け付ける要求受付ステップ、
コンテンツサーバから映像を取得する映像取得ステップ、
前記映像取得ステップで取得した映像をキャッシュする映像キャッシュステップ、および
前記映像キャッシュステップでキャッシュした映像を端末に配信する映像配信ステップを備え、
前記映像取得ステップでは、
前記要求受付ステップで再生要求を受け付けると、コンテンツサーバから映像を取得する動作を開始し、
コンテンツサーバから映像を取得する動作を実行中に前記要求受付ステップでシーク再生要求を受け付けると、当該実行中の映像取得動作を継続しつつ、コンテンツサーバからシーク位置以降の映像を取得する動作をも開始し、
前記映像キャッシュステップでは、
前記要求受付ステップで再生要求を受け付けると、前記映像取得ステップでコンテンツサーバから取得した映像をキャッシュする動作を開始し、
コンテンツサーバから映像を取得する動作を実行中に前記要求受付ステップでシーク再生要求を受け付けると、当該実行中の映像キャッシュ動作を継続しつつ、前記映像取得ステップでコンテンツサーバから取得したシーク位置以降の映像を一時的にキャッシュする動作を開始し、
前記映像取得ステップがシーク再生要求に応じてコンテンツサーバからシーク位置以降の映像を取得する動作を実行中に、前記要求受付ステップが次のシーク再生要求を受け付けると、一時的にキャッシュした前記シーク位置以降の映像を削除した後、当該次のシーク位置以降の映像を一時的にキャッシュする動作を開始することを特徴とする映像配信方法を記述した、プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、映像プロクシサーバに関し、より特定的には、映像を蓄積するコンテンツサーバと、配信された映像を再生する端末との間に設けられ、コンテンツサーバから映像を取得してキャッシュしつつ端末に配信する映像プロクシサーバに関する。
【０００２】
【従来の技術】
近年、コンピュータ性能の著しい向上に伴い、インターネットを通じてビジネスや娯楽用途の映像を配信するサービスが急増している。そして、最近では、このような映像配信サービスにストリーミングと呼ばれる技術が用いられるようになっている。ストリーミングを用いた映像配信では、映像データはサーバに蓄積され、サーバが端末からの再生要求に応じて映像データを配信する。この場合、端末の要求がサーバに伝えられて、端末からの映像が端末に到着するまでに時間がかかることになる。そのため、端末が再生要求を出してから映像再生が開始されるまでの応答時間を短縮することが要求される。
【０００３】
従来、応答時間を短縮するために、サーバと端末との間にプロクシサーバと呼ばれる装置を設置する方法が提案されている。プロクシサーバは、端末の要求に素早く応答できるよう端末から近い位置に設置され、サーバから端末へと配信される映像データをキャッシュ（記憶）する。そして、後にその端末または別の端末が前と同じ映像データを要求した場合には、プロクシサーバにキャッシュされている映像データが端末へと配信され、それにより、応答時間が短縮される。
【０００４】
図１４は、従来の映像プロクシサーバを用いた配信システムの構成例を示すブロック図である。このシステムは、ネットワーク上のサーバ等に蓄えられるオリジナルの映像データ１０と、映像データ１０をキャッシュする映像プロクシサーバ１２と、映像データ１０を受信する端末１１とからなり、その間にネットワークが介在している。なお、図では、映像プロクシサーバ１２と接続される端末１１は１台だけであるが、複数台接続されてもよい。以下、図１４を用いて、従来の映像プロクシサーバ１２の動作をさらに詳しく説明する。
【０００５】
図１４において、各映像プロクシサーバ１２は、映像データ１０を蓄えるキャッシュ１４と、キャッシュ１４を制御するキャッシュ制御部１３とで構成される。キャッシュ制御部１３は、端末１１から出される再生開始要求に基づき、オリジナルの映像データ１０をキャッシュ１４にキャッシュさせる。
【０００６】
この従来技術では、端末１１が要求するオリジナルの映像データ１０を、映像プロクシサーバ１２でキャッシュしつつ端末１１に配信する。そして、再び端末１１が同じオリジナルの映像データ１０を要求した場合には、映像プロクシサーバ１２がキャッシュしている映像データを端末１１に配信する。これにより、サーバからオリジナルの映像データ１０を配信する場合と比べ、再生要求に対する応答時間を短縮することが可能となる。なお、このような構成は、例えば特開平０９−８１４９１号公報に開示されている。
【０００７】
【発明が解決しようとする課題】
しかしながら、従来の映像プロクシサーバ１２は、端末１１から要求を受けて、オリジナルの映像データ１０をサーバから読み出してキャッシュしながら端末１１に配信している途中で、まだキャッシュされていない位置へのシーク要求（再生時点の変更要求）を受けた場合、要求された位置（以下、シーク位置）以降の映像データがキャッシュされるまで待ってから端末１１へ配信を開始するため、端末１１が要求するシーク位置と現在の再生位置との距離（時間差）に比例して応答時間が増大するという欠点を有している。
【０００８】
なお、上記のような応答時間の増大を解消するには、オリジナルの映像データ１０における現在の読み出し位置を、要求されたシーク位置へと速やかに変更して、シーク位置以降の映像データをキャッシュしながら端末１１に配信すればよい。しかし、その場合、映像プロクシサーバ１２にキャッシュされる映像データには一部欠落が生じる（時間的に不連続になる）ので、せっかくキャッシュした映像データが再利用できずに無駄になる。
【０００９】
また、従来の映像プロクシサーバ１２には、上記シーク再生時の課題とは別に、次のような課題もある。すなわち、オリジナルの映像データ１０をサーバから読み出してキャッシュする速度が予め決められており、端末１１が複数の場合において、各端末１１がそれぞれ独自に再生速度を設定（もしくは再生速度を途中で変更）しようとしても、決められたキャッシュ速度を超えた速さで再生を行うことができなかった。
【００１０】
それゆえに、本発明の目的は、端末の要求に応えて速やかにシーク位置以降の映像を配信しながら、しかも、キャッシュしつつある映像を途切れさせないようにすることができる映像プロクシサーバを提供することである。
【００１１】
また、本発明の別の目的は、各端末に、それぞれの希望する再生速度と対応する速度で映像を配信することができるような映像プロクシサーバを提供することである。
【００１２】
【課題を解決するための手段および発明の効果】
第１の発明は、映像を蓄積するコンテンツサーバと、配信された映像を再生する端末との間に設けられ、コンテンツサーバから映像を取得してキャッシュしつつ端末に配信する映像プロクシサーバであって、
端末からの要求を受け付ける要求受付部、
コンテンツサーバから映像を取得する映像取得部、
映像取得部が取得した映像をキャッシュする映像キャッシュ部、および
映像キャッシュ部がキャッシュした映像を端末に配信する映像配信部を備え、
映像取得部は、
要求受付部が再生要求を受け付けると、コンテンツサーバから映像を取得する動作を開始し、
コンテンツサーバから映像を取得する動作を実行中に要求受付部がシーク再生要求を受け付けると、当該実行中の映像取得動作を継続しつつ、コンテンツサーバからシーク位置以降の映像を取得する動作をも開始し、
映像キャッシュ部は、
映像取得部がコンテンツサーバから取得した映像をキャッシュするためのキャッシュ領域、および
映像取得部がコンテンツサーバから取得したシーク位置以降の映像を一時的にキャッシュするための一時的キャッシュ領域を含む。
【００１３】
上記第１の発明（または下記第１２，第１３の発明）では、コンテンツサーバから映像を取得してキャッシュ領域にキャッシュしつつ端末に配信している最中に、その端末からシーク再生要求が発せられた場合、コンテンツサーバからシーク位置以降の映像を取得して一時的キャッシュ領域にキャッシュする動作を新たに開始する。このとき、コンテンツサーバから映像を取得してキャッシュ領域にキャッシュする動作は停止されることなく続けられる。
【００１４】
つまり、映像を再生中に端末がシークを行うと、本映像プロクシサーバは、その映像を取得してキャッシュする動作と、シーク位置以降の映像を取得して一時的にキャッシュする動作とを平行的に実行する。これにより、端末でシーク再生が行われても、キャッシュしつつある映像を途切れさせないようにすることができる。
【００１５】
上記のキャッシュ領域および一時的キャッシュ領域は、好ましい実施例では、１つのＲＡＭによって実現されている。ただし、２つ以上のＲＡＭによって実現してもよく、また、高速な読み書きが可能であれば、ＲＡＭ以外の記憶媒体を用いて実現してもよい。
【００１６】
第２の発明は、第１の発明において、
映像配信部は、
要求受付部が再生要求を受け付けると、キャッシュ領域から映像を読み出して端末に配信する動作を開始し、
映像取得部がコンテンツサーバから映像を取得する動作を実行中に、要求受付部がシーク再生要求を受け付けると、キャッシュ領域から映像を読み出して端末に配信する動作を停止する一方、一時的キャッシュ領域から映像を読み出して端末に配信する動作を開始することを特徴とする。
【００１７】
上記第２の発明では、コンテンツサーバから映像を取得してキャッシュ領域にキャッシュしつつ端末に配信している最中に、その端末からシーク再生要求が発せられた場合、コンテンツサーバからシーク位置以降の映像を取得して一時的キャッシュ領域にキャッシュしつつ端末に配信する動作を新たに開始する。このとき、コンテンツサーバから映像を取得してキャッシュ領域にキャッシュする動作は停止されることなく続けられ、キャッシュ領域にキャッシュした映像を端末に配信する動作だけが停止される。
【００１８】
つまり、映像を再生中に端末がシークを行うと、本映像プロクシサーバは、その映像を取得してキャッシュする動作と、シーク位置以降の映像を取得して一時的にキャッシュしながら端末に配信する動作とを平行的に実行する。これにより、端末の要求に応えて速やかにシーク位置以降の映像を配信しながら、しかも、キャッシュしつつある映像を途切れさせないようにすることができる。
【００１９】
第３の発明は、第１の発明において、
キャッシュ部は、
映像取得部がシーク再生要求に応じてコンテンツサーバからシーク位置以降の映像を取得する動作を実行中に、要求受付部が停止要求を受け付けると、一時的キャッシュ領域をクリアすることを特徴とする。
【００２０】
上記第３の発明によれば、次のシーク要求に速やかに対応することが可能となる。
【００２１】
第４の発明は、第１の発明において、
キャッシュ部は、
映像取得部がシーク再生要求に応じてコンテンツサーバからシーク位置以降の映像を取得する動作を実行中に、要求受付部が次のシーク再生要求を受け付けると、一時的キャッシュ領域をクリアした後、当該次のシーク位置以降の映像を当該一時的キャッシュ領域にキャッシュする動作を開始することを特徴とする。
【００２２】
上記第４の発明によれば、次々と行われるシーク要求に、有限なキャッシュ領域を用いて速やかに対応することが可能となる。
【００２３】
第５の発明は、第１の発明において、
映像取得部は、要求された映像または要求されたシーク位置以降の映像がキャッシュ部によりキャッシュされていない場合に限って、当該映像または当該シーク位置以降の映像をコンテンツサーバから取得することを特徴とする。
【００２４】
上記第５の発明では、また、要求された映像または要求されたシーク位置以降の映像がキャッシュ部によりキャッシュされている場合、コンテンツサーバからその映像を取得する処理が省かれるので、要求を受け付けてから配信を開始するまでにかかる時間を短縮することができると共に、ネットワークの帯域を節約することができる。
【００２５】
第６の発明は、映像を蓄積するコンテンツサーバと、配信された映像を互いに別々の速度で再生することが可能な複数の端末との間に設けられ、コンテンツサーバから映像を取得してキャッシュしつつ各端末に配信する映像プロクシサーバであって、
各端末の再生速度を管理する速度管理部、
コンテンツサーバから映像を取得する映像取得部、
映像取得部が取得した映像をキャッシュする映像キャッシュ部、および
映像キャッシュ部がキャッシュした映像を、それぞれの再生速度に応じた速度で各端末に配信する映像配信部を備え、
映像取得部は、速度管理部が管理している各端末の再生速度のうち最も速い再生速度と対応する速度Ｖｍａｘで、コンテンツサーバから映像を取得することを特徴とする。
【００２６】
上記第６の発明（または下記第１４，第１５の発明）では、各端末の再生速度を管理して、各端末の再生速度のうち最も高速なものと対応する速度でコンテンツサーバから映像を取得してキャッシュしつつ各端末に配信する。これにより、各端末にそれぞれの再生速度と対応する速度で映像を配信することが可能となる。
【００２７】
第７の発明は、第６の発明において、
各端末からの要求を受け付ける要求受付部をさらに備え、
映像取得部は、
コンテンツサーバから速度Ｖｍａｘで映像を取得する動作を実行中に、要求受付部が当該速度Ｖｍａｘとは異なる速度Ｖへの速度変更要求を受け付けると、速度Ｖを速度Ｖｍａｘと比較して、当該比較の結果がＶ＞Ｖｍａｘであれば、速度Ｖでコンテンツサーバから映像を取得する動作へと移行することを特徴とする。
【００２８】
第８の発明は、第７の発明において、
当該比較の結果がＶ＜Ｖｍａｘであれば、映像取得部は、コンテンツサーバから速度Ｖｍａｘで映像を取得する動作を継続することを特徴とする。
【００２９】
上記第７，第８の発明では、いずれかの端末が再生速度をＶに変更すると、その速度Ｖを、変更前の最高速度Ｖｍａｘと比較して、比較の結果がＶ＞Ｖｍａｘであれば、コンテンツサーバから映像を取得する速さをＶｍａｘからＶへと変更し、一方、Ｖ＜Ｖｍａｘであれば、Ｖｍａｘのまま維持する。これにより、どの端末がどのような速度変更を行っても、各端末に、それぞれの再生速度と対応する速度で映像を配信することが可能となる。
【００３０】
第９の発明は、第６の発明において、
各端末からの要求を受け付ける要求受付部をさらに備え、
映像取得部は、
コンテンツサーバから速度Ｖｍａｘで映像を取得する動作を実行中に、要求受付部が停止要求を受け付けると、速度管理部が管理している、停止要求を発した端末を除く各端末の再生速度のうち、最も速い再生速度と対応する速度Ｖ’ｍａｘでコンテンツサーバから映像を取得する動作へと移行することを特徴とする。
【００３１】
上記第９の発明では、いずれかの端末が再生動作を停止すると、残りの端末の再生速度のうち最も高速なものと対応する速度でコンテンツサーバから映像を取得する。すなわち、最も高速な端末が停止した場合には、コンテンツサーバから映像を取得する速さを、その次に高速な端末と対応する速度Ｖ’ｍａｘに変更し、最も高速なもの以外の端末が停止した場合には、速度Ｖｍａｘのまま維持する。これにより、どの端末が再生動作を停止しても、残りの各端末に、それぞれの再生速度と対応する速度で映像を配信することが可能となる。
【００３２】
第１０の発明は、第６の発明において、
各端末からの要求を受け付ける要求受付部をさらに備え、
映像取得部は、
コンテンツサーバから速度Ｖｍａｘで映像を取得する動作を実行中に、要求受付部が停止要求を受け付けると、速度管理部が管理している、停止要求を発した端末を除く各端末の再生速度のうち、最も速い再生速度と対応する速度Ｖ’ｍａｘを、予め決められた速度Ｖｄｅｆと比較して、当該比較の結果がＶ’ｍａｘ＞Ｖｄｅｆであれば、速度Ｖ’ｍａｘでコンテンツサーバから映像を取得する動作へと移行することを特徴とする。
【００３３】
第１１の発明は、第１０の発明において、
当該比較の結果がＶ’ｍａｘ＜Ｖｄｅｆであれば、映像取得部は、コンテンツサーバから速度Ｖｄｅｆで映像を取得する動作へと移行することを特徴とする。
【００３４】
上記第１０，第１１の発明によれば、端末側の再生速度が極端に遅くなっても、コンテンツサーバから映像を取得する速度をＶｄｅｆ以上に保って映像のキャッシュを継続するので、端末側で突然シークが行われても対応することが可能となる。
【００３５】
第１２の発明は、映像を蓄積するコンテンツサーバと、配信された映像を再生する端末との間で行われる、コンテンツサーバから映像を取得してキャッシュしつつ端末に配信する映像配信方法であって、
端末からの要求を受け付ける要求受付ステップ、
コンテンツサーバから映像を取得する映像取得ステップ、
映像取得ステップで取得した映像をキャッシュする映像キャッシュステップ、および
映像キャッシュステップでキャッシュした映像を端末に配信する映像配信ステップを備え、
映像取得ステップでは、
要求受付ステップで再生要求を受け付けると、コンテンツサーバから映像を取得する動作を開始し、
コンテンツサーバから映像を取得する動作を実行中に要求受付ステップでシーク再生要求を受け付けると、当該実行中の映像取得動作を継続しつつ、コンテンツサーバからシーク位置以降の映像を取得する動作をも開始し、
映像キャッシュステップでは、
要求受付ステップで再生要求を受け付けると、映像取得ステップでコンテンツサーバから取得した映像をキャッシュする動作を開始し、
コンテンツサーバから映像を取得する動作を実行中に要求受付ステップでシーク再生要求を受け付けると、当該実行中の映像キャッシュ動作を継続しつつ、映像取得ステップでコンテンツサーバから取得したシーク位置以降の映像を一時的にキャッシュする動作を開始することを特徴とする、映像配信方法。
【００３６】
第１３の発明は、映像を蓄積するコンテンツサーバと、配信された映像を再生する端末との間で行われる、コンテンツサーバから映像を取得してキャッシュしつつ端末に配信する映像配信方法を記述したプログラムであって、
端末からの要求を受け付ける要求受付ステップ、
コンテンツサーバから映像を取得する映像取得ステップ、
映像取得ステップで取得した映像をキャッシュする映像キャッシュステップ、および
映像キャッシュステップでキャッシュした映像を端末に配信する映像配信ステップを備え、
映像取得ステップでは、
要求受付ステップで再生要求を受け付けると、コンテンツサーバから映像を取得する動作を開始し、
コンテンツサーバから映像を取得する動作を実行中に要求受付ステップでシーク再生要求を受け付けると、当該実行中の映像取得動作を継続しつつ、コンテンツサーバからシーク位置以降の映像を取得する動作をも開始し、
映像キャッシュステップでは、
要求受付ステップで再生要求を受け付けると、映像取得ステップでコンテンツサーバから取得した映像をキャッシュする動作を開始し、
コンテンツサーバから映像を取得する動作を実行中に要求受付ステップでシーク再生要求を受け付けると、当該実行中の映像キャッシュ動作を継続しつつ、映像取得ステップでコンテンツサーバから取得したシーク位置以降の映像を一時的にキャッシュする動作を開始することを特徴とする映像配信方法を記述している。
【００３７】
第１４の発明は、映像を蓄積するコンテンツサーバと、配信された映像を互いに別々の速度で再生することが可能な複数の端末との間で行われる、コンテンツサーバから映像を取得してキャッシュしつつ各端末に配信する映像配信方法であって、
各端末の再生速度を管理する速度管理ステップ、
コンテンツサーバから映像を取得する映像取得ステップ、
映像取得ステップで取得した映像をキャッシュする映像キャッシュステップ、および
映像キャッシュステップでキャッシュした映像を、それぞれの再生速度に応じた速度で各端末に配信する映像配信ステップを備え、
映像取得ステップでは、速度管理ステップを通じて管理している各端末の再生速度のうち最も速い再生速度と対応する速度Ｖｍａｘで、コンテンツサーバから映像を取得することを特徴とする。
【００３８】
第１５の発明は、映像を蓄積するコンテンツサーバと、配信された映像を互いに別々の速度で再生することが可能な複数の端末との間で行われる、コンテンツサーバから映像を取得してキャッシュしつつ各端末に配信する映像配信方法を記述したプログラムであって、
各端末の再生速度を管理する速度管理ステップ、
コンテンツサーバから映像を取得する映像取得ステップ、
映像取得ステップで取得した映像をキャッシュする映像キャッシュステップ、および
映像キャッシュステップでキャッシュした映像を、それぞれの再生速度に応じた速度で各端末に配信する映像配信ステップを備え、
映像取得ステップでは、速度管理ステップを通じて管理している各端末の再生速度のうち最も速い再生速度と対応する速度Ｖｍａｘで、コンテンツサーバから映像を取得することを特徴とする映像配信方法を記述している。
【００３９】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
（第１の実施形態）
図１は、本発明の第１の実施形態に係る映像プロクシサーバを用いた映像配信システムの構成を示すブロック図である。図１において、映像配信システムは、コンテンツサーバ２０と、端末２１と、本実施形態に係る映像プロクシサーバ２２とで構成されている。端末２１は、ネットワーク３１を介して映像プロクシサーバ２２と接続され、映像プロクシサーバ２２は、ネットワーク３２を介してコンテンツサーバ２０と接続されている。
【００４０】
コンテンツサーバ２０は、映像を蓄積している。端末２１は、配信された映像を再生する。映像プロクシサーバ２２は、コンテンツサーバ２０と端末２１との間に設けられ、コンテンツサーバ２０から映像を取得してキャッシュしつつ端末２１に配信する。
【００４１】
映像プロクシサーバ２２は、要求受付部２３と、映像取得部２４と、映像キャッシュ部２５と、映像配信部２６とを備えている。
要求受付部２３は、端末２１からの要求を受け付ける。映像取得部２４は、コンテンツサーバ２０から映像を取得する。映像キャッシュ部２５は、映像取得部２４が取得した映像をキャッシュする。映像配信部２６は、映像キャッシュ部２５がキャッシュした映像を端末２１に配信する。
【００４２】
ここで、コンテンツサーバ２０が蓄積する映像は、例えば映画や、コンサート・スポーツ中継といった番組のデジタル映像である。コンテンツサーバ２０は、端末２１からの要求に応じ、映像をストリームとして送出する機能を有する。コンテンツサーバ２０から送出された映像は、ネットワーク３１，３２を通じて端末２１へと配信され、端末２１は、配信されてくる映像をリアルタイムに再生する。
【００４３】
一方、端末２１が行う再生には、映像を先頭から連続的に再生していく通常再生と、再生位置が飛躍して、先頭とは別の位置（以下、シーク位置）から再生を開始するシーク再生とがある。端末２１が通常再生を行う場合、端末２１から再生要求が発せられ、コンテンツサーバ２０は、映像を先頭位置から送出する。端末２１がシーク再生を行う場合、端末２１からシーク要求が発せられ、コンテンツサーバ２０は、シーク位置以降の映像を送出する。端末２１が再生を停止する場合、端末２１から停止要求が発せられ、コンテンツサーバ２０は、映像の送出を停止する。
【００４４】
映像キャッシュ部２５は、映像取得部２４がコンテンツサーバ２０から取得した映像をキャッシュするためのキャッシュ領域２５ａと、映像取得部２４がコンテンツサーバ２０から取得したシーク位置以降の映像を一時的にキャッシュするための一時的キャッシュ領域２５ｂとを含む。
【００４５】
映像取得部２４は、要求された映像、または要求されたシーク位置以降の映像を、それが映像キャッシュ部２５によりキャッシュされていれば映像キャッシュ部２５から、キャッシュされていなければコンテンツサーバ２０から取得する。これにより、要求を受け付けてから配信を開始するまでにかかる時間を短縮することができると共に、ネットワーク３２の帯域を節約することができる。
【００４６】
すなわち、映像取得部２４は、要求受付部２３が再生要求を受け付けると、要求された映像が映像キャッシュ部２５にキャッシュされているか否かを判定し、判定結果が否定の場合に限り、コンテンツサーバ２０から映像を取得する動作を開始する。そして、自身がコンテンツサーバ２０から映像を取得する動作を実行中に、要求受付部２３がシーク再生要求を受け付けると、実行中の映像取得動作を継続しつつ、コンテンツサーバ２０からシーク位置以降の映像を取得する一時的映像取得動作をも開始する。
【００４７】
映像配信部２６は、要求受付部２３が再生要求を受け付けると、キャッシュ領域２５ａから映像を読み出して端末２１に配信する動作を開始する。そして、映像取得部２４がコンテンツサーバ２０から映像を取得する動作を実行中に、要求受付部２３がシーク再生要求を受け付けると、キャッシュ領域２５ａから映像を読み出して端末２１に配信する動作を停止する一方、一時的キャッシュ領域２５ｂから映像を読み出して端末２１に配信する動作を開始する。
【００４８】
すなわち、コンテンツサーバ２０から映像を取得してキャッシュ領域２５ａにキャッシュしつつ端末２１に配信している最中に、その端末２１からシーク再生要求が発せられた場合、映像プロクシサーバ２２は、コンテンツサーバ２０からシーク位置以降の映像を取得して一時的キャッシュ領域２５ｂにキャッシュしつつ端末２１に配信する動作を新たに開始する。このとき、コンテンツサーバ２０から映像を取得してキャッシュ領域２５ａにキャッシュする動作は停止されることなく続けられ、キャッシュ領域２５ａにキャッシュした映像を端末２１に配信する動作だけが停止される。
【００４９】
つまり、映像を再生中に端末２１がシークを行うと、映像プロクシサーバ２２は、その映像を取得してキャッシュする動作と、シーク位置以降の映像を取得して一時的にキャッシュしながら端末２１に配信する動作とを平行的に実行する。こうすれば、端末２１のシーク要求に速やかに応えながら、しかも、キャッシュしつつある映像を途切れさせないようにすることができる。
【００５０】
また、映像キャッシュ部２５は、映像取得部２４がシーク再生要求に応じてコンテンツサーバ２０からシーク位置以降の映像を取得する動作を実行中に、要求受付部２３が次のシーク再生要求を受け付けると、一時的キャッシュ領域２５ｂをクリアした後、その次のシーク位置以降の映像を一時的キャッシュ領域２５ｂにキャッシュする動作を開始する。これにより、次々と行われるシーク要求に、有限な一時的キャッシュ領域２５ｂを用いて速やかに対応することが可能となる。
【００５１】
図２は、本実施形態に係る映像フロクシサーバのハードウエア的な構成例を示すブロック図である。図２において、本映像プロクシサーバ２２は、ＣＰＵ３３と、ＲＯＭ３４と、ＲＡＭ３５と、ネットワーク接続ボード３６とを備えている。ネットワーク接続ボード３６は、本映像プロクシサーバ２２とネットワーク３１，３２とを接続する。ＲＯＭ３４には、所定のプログラムが格納されており、ＣＰＵ３３がＲＡＭ３５を作業領域として利用しつつＲＯＭ３４内のプログラムを実行することによって、先に説明した各部（２３〜２６）の動作が実現される。なお、プログラムは、ここではＲＯＭ３４内に予め格納されているが、ＣＤ−ＲＯＭ等の携帯型記録媒体に格納した状態で提供されてもよく、ネットワークを通じて供給されてもよい。
【００５２】
以上のように構成された本映像プロクシサーバ２２の、シーク再生時の動作について、以下に説明する。図３は、本実施形態に係る映像プロクシサーバ２２の、シーク再生時の動作を示すフローチャートである。図３に示すように、本映像プロクシサーバ２２では、最初、要求受付部２３が、端末２１からの要求の有無を判定し（ステップＳ１１）、もし要求があれば、それを受け付ける（ステップＳ１２）。次いで、要求受付部２３は、その要求が再生要求であるか否かを判定し（ステップＳ１３）、その判定結果が否定の場合、ステップＳ１５に進む。
【００５３】
ステップＳ１３の判定結果が肯定の場合、コンテンツサーバ２０から映像を取得してキャッシュしつつ端末２１に配信する動作が開始される（ステップＳ１４）。
続くステップＳ１５では、ステップＳ１２で受け付けた要求がシーク要求であるか否かが判定され、その判定結果が否定の場合、ステップＳ１７が実行される。
【００５４】
ステップＳ１５の判定結果が肯定の場合、コンテンツサーバ２０からシーク位置以降の映像を取得して一時的にキャッシュしつつ端末２１に配信する動作が開始される（ステップＳ１６）。
続くステップＳ１７では、ステップＳ１２で受け付けた要求が停止要求もしくは次のシーク要求であるか否かが判定され、その判定結果が否定の場合、ステップＳ１１に戻って、端末２１から次の要求があるまで待機する。
【００５５】
ステップＳ１７の判定結果が肯定の場合、動作が停止されるか、もしくは、コンテンツサーバ２０から次のシーク位置以降の映像を取得して一時的にキャッシュしつつ端末２１に配信する動作が開始され（ステップＳ１８）、その後、ステップＳ１１に戻って、端末２１から次の要求があるまで待機する。
以上が、本映像プロクシサーバ２２の、シーク再生時の動作の概要である。次に、上記のステップＳ１４，Ｓ１６およびＳ１８の詳細な動作内容を説明する。
【００５６】
〔ステップＳ１４〕
図４は、図３のステップＳ１４、すなわち本映像プロクシサーバ２２がコンテンツサーバ２０から映像を取得してキャッシュしつつ端末２１に配信する動作の詳細を示すフローチャートである。図４において、最初、映像取得部２４は、要求された映像が映像キャッシュ部２５にキャッシュされているか否かを判定する（ステップＳ１０１）。その判定結果が肯定の場合、ステップＳ１０４に進む。
【００５７】
ステップＳ１０１の判定結果が否定の場合、映像取得部２４は、コンテンツサーバ２０から映像を取得する動作を開始する（ステップＳ１０２）。同時に、映像キャッシュ部２５は、映像取得部２４が取得した映像をキャッシュ領域２５ａにキャッシュする動作を開始し（ステップＳ１０３）、一方、映像配信部２６は、キャッシュ領域２５ａにキャッシュされた映像を読み出して端末２１に配信する動作を開始する（ステップＳ１０４）。その後、図３のフローに戻る。
【００５８】
〔ステップＳ１６〕
図５は、図３のステップＳ１６、すなわち本映像プロクシサーバ２２がコンテンツサーバ２０からシーク位置以降の映像を取得して一時的にキャッシュしつつ端末２１に配信する動作の詳細を示すフローチャートである。図６は、図３のステップＳ１６の動作を視覚的に示した概念図である。図５を参照して、端末２１からシーク再生要求が出力されると、要求受付部２３がこの要求を受け付ける（ステップＳ２０１）。
【００５９】
シーク再生要求を受信すると、要求受付部２３は、映像取得部２４に対し、コンテンツサーバ２０からシーク位置以降の映像を取得するように指示する（ステップＳ２０２）。応じて、映像取得部２４は、シーク位置以降の映像（シーク位置は、例えば「６０秒後」等のように、時間で指定される）が映像キャッシュ部２５にすでにキャッシュされているかどうかを確認する（ステップＳ２０３）。
【００６０】
ステップＳ２０３の確認の結果、シーク位置以降の映像データが映像キャッシュ部２５にすでにキャッシュされていると判断した場合、映像取得部２４は、映像配信部２６に対し、すでにキャッシュされているシーク位置以降の映像データを映像キャッシュ部２５から読み出して配信する動作を開始するように指示する（ステップＳ２０７）。そして、図３のフローに戻る。
【００６１】
ステップＳ２０３の確認の結果、シーク位置以降の映像データが映像キャッシュ部２５にまだキャッシュされていないと判断した場合、映像取得部２４は、次のような動作を行う。図６において、いま、コンテンツサーバ２０からは、時間的に連続する映像データ４２（”１”，”２”，…）が配信中である。このとき、映像取得部２４は、上記映像データ４２を受信しながら、映像キャッシュ部２５に命じて、その映像データ４２をキャッシュ領域２５ａにキャッシュさせる動作を継続している。すなわち、映像キャッシュ部２５のキャッシュ領域２５ａには、映像データが先頭から”１”，”２”，…のように順番にキャッシュされつつある（図中の実線矢印）。
【００６２】
この状態において、上記ステップ３０３でシーク位置以降の映像データがまだキャッシュされていないと判断された場合には、コンテンツサーバ２０に対して、要求されたシーク位置以降の映像データ”Ｍ”，”Ｍ＋１”，…を新たに配信するように要求する（ステップＳ２０４）。こうして、映像取得部２４は、映像データ４２を先頭から受信する動作を継続しながら、シーク位置以降の映像データを取得する動作を新たに開始する。
【００６３】
次に、映像キャッシュ部２５は、コンテンツサーバ２０から配信される映像データのうち、新たに要求したシーク位置以降の映像データ”Ｍ”，”Ｍ＋１”，…のみ、一時的映像データとして一時的キャッシュ領域２５ｂに記憶する（ステップＳ２０５）。すなわち、映像データを先頭から”１”，”２”，…のようにキャッシュ領域２５ａにキャッシュする動作は継続しながら、シーク位置以降の映像データ”Ｍ”，”Ｍ＋１”，…をも一時的キャッシュ領域２５ｂにキャッシュしていく。
【００６４】
上記ステップＳ２０４，Ｓ２０５により配信される映像データの流れを概念的に示すものが、図６中の点線矢印である。映像データ４２のシーク位置以降の部分（図中ではＭ以降）をコンテンツサーバ２０から受信し、映像データを先頭から記憶する領域（キャッシュ領域２５ａ）とは別の領域（一時的キャッシュ領域２５ｂ）に一時的映像データとして記憶する。
【００６５】
最後に、要求受付部２３は、映像キャッシュ部２５から、一時的映像データを読み出し配信するよう映像配信部２６に指示して（ステップＳ２０６）、図３のフローに戻る。
【００６６】
〔ステップＳ１８〕
図７は、図３のステップＳ１８、すなわち本映像プロクシサーバ２２がコンテンツサーバ２０から次のシーク位置以降の映像を取得して一時的にキャッシュしつつ端末２１に配信する動作の詳細を示すフローチャートである。図８は、図３のステップＳ１８の動作を視覚的に示した概念図である。図７を参照して、最初、映像配信部２６が、端末２１からのシーク要求により、シーク位置以降の映像データを一時的映像データとして配信している（ステップＳ３０１）。この状態で、要求受付部２３が端末２１から映像の配信を停止する要求（停止要求）、もしくは現在配信中の映像データにおける別の時点へのシーク要求（次のシーク要求）を受け付ける（ステップＳ３０２）。
【００６７】
要求受付部２３は、停止要求、または次のシーク要求をもとに、映像配信部２６に対し、前のシーク要求による一時的映像データの配信を停止するよう指示する（ステップＳ３０３）。次いで、要求受付部２３は、映像取得部２４に対し、一時的映像データの取得を停止するよう指示し、応じて、映像取得部２４は、コンテンツサーバ２０に一時的映像データの送出停止を要求する（ステップＳ３０４）。さらに、要求受付部２３は、映像キャッシュ部２５に対し、前のシーク要求による一時的映像データを一時的キャッシュ領域２５ｂから削除（つまり一時的キャッシュ領域２５ｂをクリア）するよう指示する（ステップＳ３０５）。
【００６８】
上述のステップＳ３０４，Ｓ３０５の動作について、図８を交えて説明する。
図８において、いま、コンテンツサーバ２０からは、時間的に連続する映像データ６２（”１”，”２”，…）が送出中であり、映像キャッシュ部２５のキャッシュ領域２５ａには、映像データ６２が先頭から”１”，”２”，…のように順番にキャッシュされつつある（図中の実線矢印）。
【００６９】
同時に、前述のシーク要求に応じて、コンテンツサーバ２０からは、シーク位置以降の映像データ”Ｍ”，”Ｍ＋１”，…がさらに送出中であり、映像キャッシュ部２５の一時的キャッシュ領域２５ｂには、シーク位置以降の映像データ”Ｍ”，”Ｍ＋１”，…が一時的映像データとしてキャッシュされつつある（図中の点線矢印）。
【００７０】
この状態において、端末２１から次のシーク要求が発せられると、前のシーク要求に応じて映像取得部２４が実行している一時的映像データ”Ｍ”，”Ｍ＋１”，…の取得動作（すなわち、コンテンツサーバ２０が実行している一時的映像データ”Ｍ”，”Ｍ＋１”，…の送出動作；図中の点線矢印）が停止され、映像キャッシュ部２５の一時的キャッシュ領域２５ｂに記憶されつつあった一時的映像データ”Ｍ”，”Ｍ＋１”，…が削除される（すなわち、一時的キャッシュ領域２５ｂがいったんクリアされる）。
【００７１】
次いで、次のシーク要求による一時的映像データ”Ｎ”，”Ｎ＋１”，…の取得動作が新たに開始され、その一時的映像データ”Ｎ”，”Ｎ＋１”，…が、いったんクリアされた一時的キャッシュ領域２５ｂに、新たに記憶されていく（図中の破線矢印）。
【００７２】
再度図７を参照し、ステップＳ３０５に続く処理を以下に説明する。ステップＳ３０２で要求受付部２３が受け付けた受けた要求が停止要求である場合は、そのまま図３のフローに戻る。
さらに、要求受付部２３は、次のシーク位置以降の映像データが映像キャッシュ部２５にすでにキャッシュされているか否かを判定する（ステップＳ３０７）。そして、その判定結果が肯定の場合、映像配信部２６に対して、すでにキャッシュされている映像データ中のシーク位置以降の映像データを映像キャッシュ部２５から読み出して、端末２１に対して配信を開始するよう指示し（ステップＳ３１１）、その後、図３のフローに戻る。
【００７３】
ステップＳ３０２で要求受付部２３が受けた指示が停止要求ではなく次のシーク要求である場合において、上記ステップＳ３０７の判定結果が否定の場合は、映像取得部２４は、コンテンツサーバ２０に対して、映像データの次のシーク位置以降を新たに配信するよう要求する（ステップＳ３０８）。次に、映像キャッシュ部２５は、コンテンツサーバ２０から送出される映像データのうち、ステップＳ３０８で行った要求に応じて送出されたデータのみ、一時的キャッシュ領域２５ｂに一時的映像データとして記憶する（ステップＳ３０９）。
【００７４】
上記ステップＳ３０８，Ｓ３０９で配信される映像データの流れを概念的に示すものが、図８中の破線矢印である。映像データ６２中の、次のシーク位置以降の部分（図中ではＮ以降）をコンテンツサーバ２０から取得し、映像データ６２を先頭から記憶する領域（キャッシュ領域２５ａ）とは別の領域（一時的キャッシュ領域２５ｂ）に一時的映像データとして記憶する。
【００７５】
最後に、要求受付部２３は、映像キャッシュ部２５の一時的キャッシュ領域２５ｂから、一時的映像データを読み出して、端末２１に配信するよう映像配信部２６に指示し（ステップＳ３１０）、その後、図３のフローに戻る。
【００７６】
以上のように、本実施形態によれば、映像を再生中に端末２１がシークを行うと、その映像を取得してキャッシュする動作と、シーク位置以降の映像を取得して一時的にキャッシュしながら端末２１に配信する動作とを平行的に実行するので、端末２１の要求に応えて速やかにシーク位置以降の映像を配信しながら、しかも、キャッシュしつつある映像を途切れさせないようにすることができる。
【００７７】
（第２の実施形態）
図９は、本発明の第２の実施形態に係る映像プロクシサーバを用いた映像配信システムの構成を示すブロック図である。図９において、映像配信システムは、コンテンツサーバ７０と、端末７１1 〜７１k （ただし、ｋは２以上の任意の整数；以下同様）と、本実施形態に係る映像プロクシサーバ７２とで構成されている。端末７１1 〜７１k は、ネットワーク８１を介して映像プロクシサーバ７２と接続され、映像プロクシサーバ７２は、ネットワーク８２を介してコンテンツサーバ７０と接続されている。なお、以下の説明では、各端末７１1 〜７１k を特に区別する必要がない場合には、単に「端末７１」のように記述する。
【００７８】
コンテンツサーバ７０は、映像を蓄積している。各端末７１は、配信された映像を再生する。映像プロクシサーバ７２は、コンテンツサーバ７０と各端末７１との間に設けられ、コンテンツサーバ７０から映像を取得してキャッシュしつつ各端末７１に配信する。
【００７９】
映像プロクシサーバ７２は、要求受付部７３と、映像取得部７４と、映像キャッシュ部７５と、映像配信部７６と、速度管理部７７とを備えている。
要求受付部７３は、各端末７１からの要求を受け付ける。映像取得部７４は、コンテンツサーバ７０から映像を取得する。映像キャッシュ部７５は、映像取得部７４が取得した映像をキャッシュする。映像配信部７６は、映像キャッシュ部７５がキャッシュした映像を各端末７１に配信する。
【００８０】
ここで、コンテンツサーバ７０が蓄積する映像は、第１の実施形態と同様のデジタル映像である。コンテンツサーバ７０は、各端末７１からの要求に応じ、映像をストリームとして送出する機能を有する。コンテンツサーバ７０から送出された映像は、ネットワーク８１，８２を通じて各端末７１へと配信され、各端末７１は、配信されてくる映像をリアルタイムに再生する。
【００８１】
一方、端末７１が行う再生には、映像を定速で再生する通常再生と、映像を定速よりも速い速度で再生する高速再生（Ｎ倍速再生）とがある。端末７１が通常再生を行う場合、端末７１から再生要求が発せられ、コンテンツサーバ７０は、通常再生と対応する速度（定速）で映像を送出する。端末７１が高速再生を行う場合、端末７１から速度変更要求が発せられ、コンテンツサーバ７０は、端末７１の再生速度と対応する速度（高速）で映像を送出する。端末７１が再生を停止する場合、端末７１から停止要求が発せられ、コンテンツサーバ７０は、映像の送出を停止する。
【００８２】
速度管理部７７は、各端末７１の再生速度を管理する。すなわち、速度管理部７７は、各端末７１の再生速度を記憶するための記憶領域を含み、例えば各端末７１からの速度変更要求をもとに、記憶している再生速度を更新することによって、各端末７１の現在の再生速度を管理している。
【００８３】
映像キャッシュ部７５は、映像取得部７４がコンテンツサーバ７０から取得した映像をキャッシュするためのキャッシュ領域７５ａを含む。
【００８４】
映像取得部７４は、要求された映像を、それが映像キャッシュ部７５によりキャッシュされていれば映像キャッシュ部７５から、キャッシュされていなければコンテンツサーバ７０から取得する。
【００８５】
すなわち、映像取得部７４は、要求受付部７３が再生要求を受け付けると、要求された映像が映像キャッシュ部７５にキャッシュされているか否かを判定し、判定結果が否定の場合に限り、コンテンツサーバ７０から映像を取得する動作を開始する。
【００８６】
映像配信部７６は、映像キャッシュ部７５がキャッシュした映像を、それぞれの再生速度に応じた速度で各端末７１に配信する。
【００８７】
映像を取得する際、映像取得部７４は、速度管理部７７が管理している各端末７１の再生速度のうち最も速い再生速度と対応する速度Ｖｍａｘで、コンテンツサーバ７０から映像を取得する。これにより、それぞれの再生速度に応じた速さで各端末７１に映像を配信することが可能となる。
【００８８】
そして、映像取得部７４は、コンテンツサーバ７０から速度Ｖｍａｘで映像を取得する動作を実行中に、要求受付部７３がその速度Ｖｍａｘとは異なる速度Ｖへの速度変更要求を受け付けると、速度Ｖを速度Ｖｍａｘと比較して、その比較の結果がＶ＞Ｖｍａｘであれば、速度Ｖでコンテンツサーバ７０から映像を取得する動作へと移行する。一方、Ｖ＜Ｖｍａｘであれば、コンテンツサーバ７０から速度Ｖｍａｘで映像を取得する動作を継続する。
【００８９】
すなわち、いずれかの端末７１が再生速度をＶに変更すると、その速度Ｖを、変更前の最高速度Ｖｍａｘと比較して、比較の結果がＶ＞Ｖｍａｘであれば、コンテンツサーバ７０から映像を取得する速さをＶｍａｘからＶへと変更し、一方、Ｖ＜Ｖｍａｘであれば、Ｖｍａｘのまま維持する。これにより、どの端末７１がどのような速度変更を行っても、各端末７１に、それぞれの再生速度と対応する速度で映像を配信することが可能となる。
【００９０】
また、映像取得部７４は、コンテンツサーバ７０から速度Ｖｍａｘで映像を取得する動作を実行中に、要求受付部７３が停止要求を受け付けると、速度管理部７７が管理している、停止要求を発した端末７１を除く各端末７１の再生速度のうち、最も速い再生速度と対応する速度Ｖ’ｍａｘでコンテンツサーバ７０から映像を取得する動作へと移行する。すなわち、映像取得部７４は、速度管理部７７が管理している、停止要求を発した端末７１を除く各端末７１の再生速度のうち、最も速い再生速度と対応する速度Ｖ’ｍａｘを、予め決められた速度Ｖｄｅｆと比較して、その比較結果がＶ’ｍａｘ＞Ｖｄｅｆであれば、コンテンツサーバ７０から映像を取得する速度をＶｍａｘからＶ’ｍａｘに変更する。
【００９１】
つまり、映像取得部７４は、最も高速な端末７１が停止した場合には、コンテンツサーバ７０から映像を取得する速さを、その次に高速な端末７１と対応する速度Ｖ’ｍａｘに変更し、最も高速なもの以外の端末７１が停止した場合には、速度Ｖｍａｘのまま維持する。これにより、どの端末７１が停止しても、残りの各端末７１に、それぞれの再生速度と対応する速度で映像を配信することが可能となる。
【００９２】
こうして、各端末７１の再生速度を管理して、各端末７１の再生速度のうち最も高速なものと対応する速度でコンテンツサーバ７０から映像を取得することにより、各端末７１にそれぞれの再生速度と対応する速度で映像を配信することが可能となる。
【００９３】
ただし、上記の速度Ｖ’ｍａｘが予め決められた速度Ｖｄｅｆを下回る場合には、映像取得部７４は、Ｖ’ｍａｘではなく速度Ｖｄｅｆでコンテンツサーバ７０から映像を取得する。すなわち、上記比較の結果がＶ’ｍａｘ＜Ｖｄｅｆであれば、映像取得部７４は、コンテンツサーバ７０から映像を取得する速度をＶｍａｘからＶｄｅｆに変更する。これにより、端末７１側の再生速度が極端に遅くなっても、端末７１側の再生速度が極端に遅くなっても、コンテンツサーバ７０から映像を取得する速度をＶｄｅｆ以上に保って映像のキャッシュを継続するので、端末７１側で突然シークが行われても対応することが可能となる。
【００９４】
本実施形態に係る映像フロクシサーバのハードウエア的な構成例は、第１の実施形態と同様であり、図２に示されている。図２の各要素の動作も、第１の実施形態と同様である。ただし、ＲＯＭ３４に格納されているプログラムが第１の実施形態と異なっており、その結果、先に説明した各部（７３〜７７）の動作が実現される。なお、プログラムは、ＣＤ−ＲＯＭ等の携帯型記録媒体に格納した状態で提供されてもよく、ネットワークを通じて供給されてもよい。
【００９５】
以上のように構成された本映像プロクシサーバ７２の、再生速度変更時の動作について、以下に説明する。図１０は、本実施形態に係る映像プロクシサーバ７２の、速度変更時の動作を示すフローチャートである。図１０に示すように、本映像プロクシサーバ７２では、最初、要求受付部７３が、端末７１からの要求の有無を判定し（ステップＳ２１）、もし要求があれば、それを受け付ける（ステップＳ２２）。次いで、要求受付部７３は、その要求が再生要求であるか否かを判定し（ステップＳ２３）、その判定結果が否定の場合、ステップＳ２５に進む。
【００９６】
ステップＳ２３の判定結果が肯定の場合、コンテンツサーバ７０から映像を取得してキャッシュしつつ端末７１に配信する動作が開始される（ステップＳ２４）。
続くステップＳ２５では、ステップＳ２２で受け付けた要求が停止要求、もしくは速度変更要求であるか否かが判定され、その判定結果が否定の場合、ステップＳ２１に戻って、端末７１から次の要求があるまで待機する。
【００９７】
ステップＳ２５の判定結果が肯定の場合、各端末７１の再生速度に基づいて取得速度が決定され、その速度でコンテンツサーバ７０から映像を取得して一時的にキャッシュしつつ、それぞれの再生速度に応じた速度で各端末７１に配信する動作が開始される（ステップＳ２６）。その後、ステップＳ２１に戻って、端末７１から次の要求があるまで待機する。
以上が、本映像プロクシサーバ７２の、速度変更時の動作の概要である。次に、上記のステップＳ２４およびＳ２６の詳細な動作内容を説明する。
【００９８】
〔ステップＳ２４〕
図１０のステップＳ２４、すなわち本映像プロクシサーバ７２がコンテンツサーバ７０から映像を取得してキャッシュしつつ端末７１に配信する動作は、第１の実施形態（図３のステップＳ１４）と同様であり、動作の詳細が図４に示されている。ただし、以下では、各端末７１に配信しようとする映像データを”Ｍ０”とし、図４のステップＳ１０２で映像取得部７４がコンテンツサーバ７０から映像Ｍ０を取得する際の速度（すなわち速度変更前における最大速度Ｖｍａｘ）をＶ０とする。
【００９９】
〔ステップＳ２６〕
図１１〜１３は、図１０のステップＳ２６、すなわち本映像プロクシサーバ７２が各端末７１の再生速度に基づいて取得速度を決定して、その速度で映像を取得して一時的にキャッシュしつつ、それぞれの再生速度に応じた速度で各端末７１に配信する動作の詳細を示すフローチャートである。図１１を参照して、最初、映像キャッシュ部７５が速度Ｖ０で映像データをキャッシュしつつ、映像配信部７６が速度Ｖ０でその映像データを配信している（ステップＳ４０１）。この状態で、端末７１のいずれかにおいて再生停止、もしくは再生速度の変更があり、要求受付部７３が、その端末７１から、映像の配信を停止する要求（停止要求）、もしくは映像の配信速度を変更する要求（速度変更要求）を受け付ける（ステップＳ４０２）。
【０１００】
次いで、ステップＳ４０２で要求受付部７３が受け付けた受けた要求が停止要求であるか否かが判定され（ステップＳ４０３）、その判定結果が肯定の場合は、図１２に示される動作”Ａ”が実行される。
【０１０１】
図１２において、要求受付部７３が停止要求を受け付けると、映像配信部７６は、その停止要求を出した端末７１への映像データＭ０の配信を停止する（ステップＳ５０１）。次に、映像配信部７６は、停止要求を発した端末７１と同じ映像データＭ０を配信中である各端末７１の再生速度を、速度管理部７７に問い合わせる。すなわち、同一映像データＭ０をｎ台の端末７１（ただし、ｎは１以上（ｋ−１）以下の任意の整数）に配信しているとすると、それらの端末７１への配信速度Ｖ１〜Ｖｎを取得する（ステップＳ５０２）。そして、Ｖ１〜Ｖｎのうちの最大速度（以降、ＭＡＸ（Ｖ１,Ｖ２,...,Ｖｎ）と記述する）と、あらかじめ定められた速度Ｖｄｅｆとを互いに比較する（ステップＳ５０３）。
【０１０２】
ステップＳ５０３の比較の結果、Ｖｄｅｆの方が大きい場合、コンテンツサーバ７０に対して映像データＭ０の配信速度をＶｄｅｆに変更するよう要求して（ステップＳ５０４）、動作を終了する。
一方、ＭＡＸ（Ｖ１,Ｖ２,...,Ｖｎ）の方がＶｄｅｆより大きい場合は、コンテンツサーバ７０に対して映像データＭ０の配信速度をＭＡＸ（Ｖ１,Ｖ２,...,Ｖｎ）にするよう要求して（ステップＳ５０５）、図１０のフローに戻る。
【０１０３】
再び図１１において、ステップＳ４０３の判定結果が否定、すなわち要求が停止要求でない場合は、端末７１からの要求は速度変更要求であり、要求された速度Ｖが元の速度Ｖ０よりも大きいか否かが判定される（ステップＳ４０４）。その判定結果が肯定の場合、図１３に示される動作”Ｂ”が実行される。
【０１０４】
図１３において、まず、映像取得部７４がコンテンツサーバ７０に対し、映像データＭ０の配信速度を、端末７１から要求された速度Ｖに変更するよう要求する（ステップＳ６０１）。一方、映像配信部７６は、速度変更要求を出した端末７１への映像データＭ０の配信速度を、要求された速度Ｖに変更する（ステップＳ６０２）。その後、図１０のフローに戻る。
【０１０５】
再び図１１において、ステップＳ４０４の判定結果が否定、すなわち端末７１から要求された速度Ｖが、コンテンツサーバ７０からの映像データＭ０の配信速度Ｖ０より小さい場合、映像配信部７６は、速度変更要求を発した端末７１と同じ映像データＭ０を配信中である各端末７１の再生速度を、速度管理部７７に問い合わせる。すなわち、同一映像データＭ０を配信しているｎ個の他の端末７１への配信速度Ｖ１〜Ｖｎを速度管理部７７から取得する（ステップＳ４０５）。そして、速度ＶおよびＶ１〜Ｖｎのうちの最大速度ＭＡＸ（Ｖ,Ｖ１,Ｖ２,...,Ｖｎ）と、あらかじめ定められた速度Ｖｄｅｆとを互いに比較する（ステップＳ４０６）。
【０１０６】
ステップＳ４０６の比較の結果、Ｖｄｅｆの方が大きい場合、コンテンツサーバ７０に対して映像データＭ０の配信速度をＶｄｅｆに変更するよう要求して（ステップＳ４０７）、ステップＳ４０９に進む。
一方、ＭＡＸ（Ｖ,Ｖ１,Ｖ２,...,Ｖｎ）の方がＶｄｅｆより大きい場合は、コンテンツサーバ７０に対して映像データＭ０の配信速度をＭＡＸ（Ｖ,Ｖ１,Ｖ２,...,Ｖｎ）にするよう要求し（ステップＳ４０８）、その後、ステップＳ４０９に進む。
【０１０７】
続くステップＳ４０９では、映像配信部７６に対して、速度変更要求を出した端末７１への映像データＭ０の配信速度を、要求された速度Ｖに変更するよう指示がなされる。その後、図１０のフローに戻る。
【０１０８】
以上のように、本実施形態によれば、各端末７１の再生速度を管理して、各端末７１の再生速度のうち最も高速なものと対応する速度でコンテンツサーバ７０から映像を取得してキャッシュしつつ各端末７１に配信するので、各端末７１にそれぞれの再生速度と対応する速度で映像を配信することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る映像プロクシサーバを用いた映像配信システムの構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る映像フロクシサーバのハードウエア的な構成例を示すブロック図である。
【図３】本発明の第１の実施形態に係る映像プロクシサーバの、シーク再生時の動作を示すフローチャートである。
【図４】図３のステップＳ１４（または図１０のステップ２４）の詳細を示すフローチャートである。
【図５】図３のステップＳ１６の詳細を示すフローチャートである。
【図６】図３のステップＳ１６の動作を視覚的に示した概念図である。
【図７】図３のステップＳ１８の詳細を示すフローチャートである。
【図８】図３のステップＳ１８の動作を視覚的に示した概念図である。
【図９】本発明の第２の実施形態に係る映像プロクシサーバを用いた映像配信システムの構成を示すブロック図である。
【図１０】本発明の第２の実施形態に係る映像プロクシサーバの、速度変更時の動作を示すフローチャートである。
【図１１】図１０のステップＳ２６の詳細を示すフローチャートである。
【図１２】図１０のステップＳ２６の詳細を示すフローチャートである（図１１中”Ａ”の処理）。
【図１３】図１０のステップＳ２６の詳細を示すフローチャートである（図１１中”Ｂ”の処理）。
【図１４】従来の映像プロクシサーバを用いた配信システムの構成例を示すブロック図である。
【符号の説明】
２０，７０…コンテンツサーバ
２１，７１…端末
２２，７２…映像プロクシサーバ
２３，７３…要求受付部
２４，７４…映像取得部
２５，７５…映像キャッシュ部
２５ａ，７５ａ…キャッシュ領域
２５ｂ…一時的キャッシュ領域
２６，７６…映像配信部
７７…速度管理部
【図１】
0004667639.tif 000002
【図２】
0004667639.tif 000003
【図３】
0004667639.tif 000004
【図４】
0004667639.tif 000005
【図５】
0004667639.tif 000006
【図６】
0004667639.tif 000007
【図７】
0004667639.tif 000008
【図８】
0004667639.tif 000009
【図９】
0004667639.tif 000010
【図１０】
0004667639.tif 000011
【図１１】
0004667639.tif 000012
【図１２】
0004667639.tif 000013
【図１３】
0004667639.tif 000014
【図１４】
0004667639.tif 000015