(57)【要約】【課題】動画ストリームの切り替え時においても、連続再生可能な動画ストリームを配信することを目的とする。【解決手段】撮影画像に基づいて、種類の異なる複数の動画データを生成する動画生成手段と、生成手段により生成された動画データの時間軸方向の一部のデータであるセグメントを生成するセグメント生成手段と、セグメントを送信する送信手段とを有し、セグメント生成手段は、クライアント装置から、送信済みのセグメントと異なる種類のセグメントの取得要求を受信した場合に、取得要求に係るセグメントよりも前の、フレーム内符号化されたフレームから取得要求に係るセグメントの最後のフレームまでを含む第１の再構成セグメントを生成し、取得要求に係るセグメントよりも前のフレームの表示時間を、取得要求に係るセグメントに含まれるフレームの表示時間よりも短い時間に設定し、送信手段は、第１の再構成セグメントを送信する。【選択図】図８
2020150321.tif 000002
【特許請求の範囲】
【請求項１】
撮影画像に基づいて、種類の異なる複数の動画データを生成する動画生成手段と、
前記生成手段により生成された前記動画データの時間軸方向の一部のデータであるセグメントを生成するセグメント生成手段と、
前記セグメントを送信する送信手段と
を有し、
前記セグメント生成手段は、クライアント装置から、送信済みのセグメントと異なる種類のセグメントの取得要求を受信した場合に、前記取得要求に係るセグメントよりも前の、フレーム内符号化されたフレームから前記取得要求に係るセグメントの最後のフレームまでを含む第１の再構成セグメントを生成し、前記取得要求に係るセグメントよりも前のフレームの表示時間を、前記取得要求に係るセグメントに含まれるフレームの表示時間よりも短い時間に設定し、
前記送信手段は、前記第１の再構成セグメントを送信することを特徴とする動画配信装置。
【請求項２】
前記セグメント生成手段は、前記取得要求に係るセグメントの先頭のフレームがフレーム内符号化されたフレームでない場合に、前記再構成セグメントを生成することを特徴とすることを特徴とする請求項１に記載の動画配信装置。
【請求項３】
前記セグメント生成手段により生成されたセグメントを格納する記憶手段をさらに有し、
前記セグメント生成手段は、前記取得要求に係るセグメントの先頭のフレームがフレーム内符号化されたフレームではなく、かつ前記記憶手段にフレーム内符号化されたフレームが格納されている場合に、前記再構成セグメントを生成することを特徴とする請求項２に記載の動画配信装置。
【請求項４】
前記セグメント生成手段は、前記取得要求に係るセグメントの先頭のフレームがフレーム内符号化されたフレームではなく、かつ前記記憶手段にフレーム内符号化されたフレームが格納されていない場合に、前記取得要求に係るセグメントに含まれるフレーム内符号化されたフレームから前記取得要求に係るセグメントの最後のフレームまでを含む第２の再構成セグメントを生成し、
前記送信手段は、前記第２の再構成セグメントを送信することを特徴とする請求項３に記載の動画配信装置。
【請求項５】
前記動画生成手段は、前記取得要求に係るセグメントの先頭のフレームがフレーム内符号化されたフレームではなく、前記記憶手段にフレーム内符号化されたフレームが格納されておらず、かつ前記取得要求に係るセグメントにフレーム内符号化されたフレームが含まれない場合に、フレーム内符号化されたフレームを生成し、
前記セグメント生成手段は、前記動画生成手段により生成された前記フレーム内符号化されたフレームを先頭フレームとする第３の再構成セグメントを生成することを特徴とする請求項４に記載の動画配信装置。
【請求項６】
前記動画生成手段は、前記取得要求に係るセグメントの先頭のフレームがフレーム内符号化されたフレームではなく、前記記憶手段にフレーム内符号化されたフレームが格納されておらず、前記取得要求に係るセグメントにフレーム内符号化されたフレームが含まれておらず、かつ前記取得要求に係るセグメント以降において、はじめに生成されるフレーム内符号化されたフレームまでの期間が所定の期間以上の場合に、前記フレーム内符号化されたフレームを生成することを特徴とする請求項５に記載の動画配信装置。
【請求項７】
前記セグメント生成手段は、前記表示時間をゼロに設定することを特徴とする請求項１乃至６の何れか１項に記載の動画配信装置。
【請求項８】
前記複数の動画データは、解像度、フレームレート、及びビットレートの少なくとも１つが異なるデータであることを特徴とする請求項１乃至７の何れか１項に記載の動画配信装置。
【請求項９】
動画配信装置と、クライアント装置と、を有する動画配信システムであって、
前記動画配信装置は、
撮影画像に基づいて、種類の異なる複数の動画データを生成する動画生成手段と、
前記生成手段により生成された前記動画データの時間軸方向の一部のデータであるセグメントを生成するセグメント生成手段と、
前記セグメントを送信する送信手段と
を有し、
前記セグメント生成手段は、クライアント装置から、送信済みのセグメントと異なる種類のセグメントの取得要求を受信した場合に、前記取得要求に係るセグメントよりも前のフレーム内符号化されたフレームから前記取得要求に係るセグメントの最後のフレームまでを含む第１の再構成セグメントを生成し、前記取得要求に係るセグメントよりも前のフレームの表示時間を、前記取得要求に係るセグメントに含まれるフレームの表示時間よりも短い時間に設定し、
前記送信手段は、前記第１の再構成セグメントを送信することを特徴とする動画配信システム。
【請求項１０】
前記クライアント装置は、
受信した動画データに基づいてネットワーク帯域を算出する算出手段をさらに有し、
前記算出手段は、受信済みのセグメントと異なる種類のセグメントを受信した場合には、種類が切り替わった直後に受信したセグメントを除いて前記ネットワーク帯域を算出することを特徴とする請求項９に記載の動画配信システム。
【請求項１１】
前記クライアント装置は、
前記受信した動画データに基づいてネットワーク帯域を算出する算出手段をさらに有し、
前記算出手段は、表示時間が所定の時間よりも短いフレームを除いて前記ネットワーク帯域を算出することを特徴とする請求項９に記載の動画配信システム。
【請求項１２】
動画配信装置が実行する動画配信方法であって、
撮影画像に基づいて、種類の異なる複数の動画データを生成する動画生成ステップと、
前記生成ステップにおいて生成された前記動画データの時間軸方向の一部のデータであるセグメントを生成するセグメント生成ステップと、
前記セグメントを送信する送信ステップと
を含み、
前記セグメント生成ステップでは、クライアント装置から、送信済みのセグメントと異なる種類のセグメントの取得要求を受信した場合に、前記取得要求に係るセグメントよりも前の、フレーム内符号化されたフレームから前記取得要求に係るセグメントの最後のフレームまでを含む第１の再構成セグメントを生成し、前記取得要求に係るセグメントよりも前のフレームの表示時間を、前記取得要求に係るセグメントに含まれるフレームの表示時間よりも短い時間に設定し、
前記送信ステップでは、前記第１の再構成セグメントを送信することを特徴とする動画配信方法。
【請求項１３】
コンピュータを、請求項１乃至８の何れか１項に記載の動画配信装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画配信装置、動画配信方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークを利用した配信システムが増加してきている。こうした配信システムとしては、スキー場や動物園の状況を配信するシステムや、店舗・ビル監視のシステムがある。
【０００３】
動画サービスでは、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を用いたＡｄａｐｔｉｖｅ  Ｂｉｔｒａｔｅ  Ｓｔｒｅａｍｉｎｇ技術が普及してきている。Ａｄａｐｔｉｖｅ  Ｂｉｔｒａｔｅ  Ｓｔｒｅａｍｉｎｇ技術としては、ＤＡＳＨ（Ｄｙｎａｍｉｃ  Ａｄａｐｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ）やＨＬＳ（ＨＴＴＰ  Ｌｉｖｅ  Ｓｔｒｅａｍｉｎｇ）がある。ＤＡＳＨは、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）によって規格化された技術である。ＨＬＳは、Ａｐｐｌｅが主導して規格化している技術である。
【０００４】
一般的なＤＡＳＨ配信では、配信サーバ側で解像度やビットレートが異なる複数の動画データを数秒単位のセグメントと言われる動画ファイルに分割する。一方、クライアントは、配信サーバから動画の全体情報が記載されているＭＰＤ（Ｍｅｄｉａ  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ）ファイルを取得し、ファイルを参照し、適切な解像度やビットレートの動画ストリームを選択する。そして、クライアントは、ＭＰＤの記載に従って、ＭＰＥＧ２  ＴＳストリームまたはＭＰ４ファイルの動画データをセグメント単位でダウンロードして再生する。
【０００５】
特許文献１には、複数の映像ストリームを蓄積しておき、ストリーム切り換え時は蓄積された映像を送ることで、ストリーム切り替え時の再生開始待ち時間を削減し、任意の時点でストリームを切り替える方法が開示されている。特許文献２には、異なる帯域を持つ複数の映像ストリームを同期配信するシステムにおいて、再生する映像ストリームをＦＩＦＯ（Ｆｉｒｓｔ  ｉｎ，Ｆｉｒｓｔ  ｏｕｔ）でバッファリングしながらネットワークの通信速度や欠損を検出してストリームを切り換える方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３４９７４３号公報
【特許文献２】特開２００３−３４８５４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般に、複数の映像ストリームを同時に生成できる機器では各映像ストリームが独立して生成される。このため、フレーム内符号化されたフレーム（以降では、Iフレーム）は必ずしも同じタイミングで生成されるわけではない。
【０００８】
Ａｄａｐｔｉｖｅ  Ｂｉｔｒａｔｅ  Ｓｔｒｅａｍｉｎｇ技術を使ったライブ配信では、ネットワーク帯域等に合わせて映像ストリームを切り替えることができる。しかしながら、Ｉフレームの生成タイミングが異なる状況で映像ストリームを切り替えようとすると、必ずしもＩフレームから始まるセグメントを構成できるとは限らない。すなわち、配信映像データを受信するクライアント側で連続して再生できなくなるという課題があった。
【０００９】
本発明はこのような問題点に鑑みなされたもので、動画ストリームの切り替え時においても、連続再生可能な動画ストリームを配信することを目的とする。
【課題を解決するための手段】
【００１０】
そこで、本発明は、動画配信装置であって、撮影画像に基づいて、種類の異なる複数の動画データを生成する動画生成手段と、前記生成手段により生成された前記動画データの時間軸方向の一部のデータであるセグメントを生成するセグメント生成手段と、前記セグメントを送信する送信手段とを有し、前記セグメント生成手段は、クライアント装置から、送信済みのセグメントと異なる種類のセグメントの取得要求を受信した場合に、前記取得要求に係るセグメントよりも前の、フレーム内符号化されたフレームから前記取得要求に係るセグメントの最後のフレームまでを含む第１の再構成セグメントを生成し、前記取得要求に係るセグメントよりも前のフレームの表示時間を、前記取得要求に係るセグメントに含まれるフレームの表示時間よりも短い時間に設定し、前記送信手段は、前記第１の再構成セグメントを送信することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、動画ストリームの切り替え時においても、連続再生可能な動画ストリームを配信することができる。
【図面の簡単な説明】
【００１２】
【図１】動画配信システムの全体構成図である。
【図２】カメラサーバ装置のハードウェア構成図である。
【図３】カメラサーバ装置の機能構成図である。
【図４】配信データの構成図である。
【図５】動画ストリームとセグメントの関係図である。
【図６】セグメントのデータ構造の一例を示す図である。
【図７】動画配信処理を示すシーケンス図である。
【図８】配信管理処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面に基づいて説明する。
【００１４】
（第１の実施形態）
図１は、本実施形態に係る動画配信システムの全体構成図である。動画配信システムは、カメラサーバ装置１００とクライアント装置１２０とを有している。カメラサーバ装置１００は、動画配信装置の一例である。カメラサーバ装置１００とクライアント装置１２０は、ネットワーク１４０を介して相互に接続されている。カメラサーバ装置１００は、カメラを備え、カメラにより得られた撮影画像（動画）を、ネットワーク１４０を介して配信する。本実施形態のカメラサーバ装置１００は、ＤＡＳＨ配信により、種類が異なる複数の動画を生成し、クライアント装置１２０の表示性能や通信帯域に応じた種類の動画をセグメント単位でクライアント装置１２０に送信する。ここで、種類の異なる複数の動画としては、解像度やビットレート、フレームレートが異なる複数の動画が挙げられる。また、セグメントとは、所定の分割単位で分割（セグメント化）された動画データのファイルである。すなわち、セグメントは、動画のうち時間軸方向の一部のデータを含んだ動画ファイルである。クライアント装置１２０は、カメラサーバ装置１００から受信した動画を表示する。
【００１５】
図１においては、説明の簡略化のためにカメラサーバ装置１００を１台のみ示しているが、動画配信システムは、複数のカメラサーバ装置１００を有してもよい。すなわち、複数のカメラサーバ装置１００が一のクライアント装置１２０に対し動画を配信してもよい。また、他の例としては、一のカメラサーバ装置１００が複数のクライアント装置１２０に動画を配信してもよい。
【００１６】
ネットワーク１４０は、Ｅｔｈｅｒｎｅｔ（登録商標）等の通信規格を満足する複数のルータ、スイッチ、ケーブル等から構成される。なお、ネットワーク１４０は、装置間の通信が支障なく行えるものであればその通信規格、規模、構成を問わない。故にインターネットからＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）にまで適用可能である。
【００１７】
図２は、カメラサーバ装置１００のハードウェア構成図である。カメラサーバ装置１００は、ＣＰＵ２０１、一次記憶装置２０２、二次記憶装置２０３、画像キャプチャＩ／Ｆ２０４、画像センサ２０５及びネットワークＩ／Ｆ２０６を有している。ＣＰＵ２０１、一次記憶装置２０２、二次記憶装置２０３、画像キャプチャＩ／Ｆ２０４及びネットワークＩ／Ｆ２０６は、内部バス２０７を介して相互に接続されている。
【００１８】
ＣＰＵ２０１は、カメラサーバ装置１００の全体を制御する。一次記憶装置２０２は、ＲＡＭに代表される書き込み可能な高速の記憶装置で、ＯＳや各種プログラム及び各種データがロードされ、またＯＳや各種プログラムの作業領域としても使用される。二次記憶装置２０３は、フラッシュメモリ、ＨＤＤ、ＳＤカード等に代表される不揮発性記憶装置で、ＯＳや各種プログラム及び各種データの永続的な記憶領域として使用される他に、短期的な各種データの記憶領域としても使用される。
【００１９】
画像キャプチャＩ／Ｆ２０４には、ＣＣＤやＣＭＯＳからなる画像センサ２０５が接続されている。画像キャプチャＩ／Ｆ２０４は、画像センサ２０５から取得した画像データを所定のフォーマットに変換・圧縮し、変換・圧縮後の画像データを一次記憶装置２０２に転送する。ネットワークＩ／Ｆ２０６は、前述のネットワーク１４０と接続するためのＩ／Ｆであり、Ｅｔｈｅｒｎｅｔ等の通信媒体を介してクライアント装置１２０等との通信を担う。
【００２０】
図３は、カメラサーバ装置１００の機能構成図である。カメラサーバ装置１００は、撮像処理部３０１と、配信管理部３０２と、通信処理部３０３と、を有している。なお、これらの機能は、ＣＰＵ２０１が、ＯＳを含む各種プログラムを実行することにより実現されるものである。撮像処理部３０１は、画像キャプチャＩ／Ｆ２０４を経由して、画像センサ２０５で生成されたフレームを取得する。そして、撮像処理部３０１は、取得したフレームに対し、符号化処理を行う。さらに、撮像処理部３０１は、ＳＰＳ（Ｓｅｑｕｅｎｃｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）やＰＰＳ（Ｐｉｃｔｕｒｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）などの動画再生に必要な動画メタ情報と共に、符号化後のフレームを一次記憶装置２０２に格納する。
【００２１】
配信管理部３０２は、ＤＡＳＨ配信により、一次記憶装置２０２に記憶されているフレームをクライアント装置１２０に配信する処理を制御する。配信管理部３０２は、一次記憶装置２０２に記憶されているフレームから、種類の異なる複数のフレームを生成する。具体的には、配信管理部３０２は、解像度の異なる複数のフレームを生成する。さらに、配信管理部３０２は、一次記憶装置２０２に記憶されている動画メタ情報とフレームとに基づいて、初期化セグメント情報及びセグメント情報を作成する。ここで、初期化セグメント情報は、動画ストリームの再生に必要な情報である。セグメント情報は、フレームに含まれる各セグメントの再生に必要な情報である。セグメント情報は、セグメントに含まれる単数又は複数のフレームと、セグメントのヘッダー部とを含む。通信処理部３０３は、外部装置との通信を制御する。通信処理部３０３は、例えば、配信管理部３０２の制御の下、セグメント情報をクライアント装置１２０に送信する。
【００２２】
図４は、ＤＡＳＨ配信に利用される配信データの構成図である。配信データの最上位には、動画情報を束ねるＭＰＤファイル４００が存在する。ＭＰＤファイル４００には、動画ストリーム情報として、解像度や符号化情報、セグメントの情報が定義されている。なお、動画ストリームは、単数でも複数でもよい。本実施形態においては、ＭＰＤファイル４００において、解像度の異なる３つの動画ストリーム（動画ストリーム１、動画ストリーム２及び動画ストリーム３）が定義されているものとする。
【００２３】
動画ストリーム１は、最も解像度の大きい動画ファイルである。動画ストリーム１が配信された場合、クライアント装置１２０がダウンロードするデータ量は大きくなるが高画質な動画の再生が可能である。動画ストリーム３は、最も解像度が小さい動画ファイルである。動画ストリーム２は、解像度が中程度の動画ファイルである。動画ストリーム２は、動画ストリーム１よりもデータ量が小さく、動画ストリーム３よりもデータ量が大きい。なお、本実施形態においては、撮像処理部３０１は、種類の異なる複数の動画ストリームを生成するものとするが、種類及びその数は実施形態に限定されるものではない。動画ストリームの種類は、フレームレート、ビットレート等に応じて定められてもよい。
【００２４】
図５は、動画ストリーム１〜３とセグメントの関係図である。ここでは、理解し易くするため、１秒当たりに生成されるフレームを３フレームとし、３フレームを１セグメントとする。撮像処理部３０１は、動画ストリーム１として、連続したフレーム５００〜５０８を生成する。このうち、フレーム５００，５０３，５０６は、Ｉフレームである。これ以外のフレーム５０１，５０２，５０４，５０５，５０７，５０８は、Ｐフレームである。ここで、Ｉフレームは、映像を構成するために必要な映像情報を有するフレームであり、フレーム内符号化されたフレームの一例である。Ｐフレームは、直前の画像との差分の映像情報を有するフレームである。同様に、撮像処理部３０１は、動画ストリーム２として、フレーム５１０〜５１８を生成し、動画ストリーム３として、フレーム５２０〜５２８を生成する。
【００２５】
各セグメントは、３つのフレームを含んでいる。すなわち、動画ストリーム１の最初のセグメント（セグメント１）には、フレーム５００〜５０２が含まれ、続くセグメント２には、フレーム５０３〜５０５が含まれ、続くセグメント３には、フレーム５０６〜５０８が含まれている。同様に、動画ストリーム２のセグメント１には、フレーム５１０〜５１２が含まれ、セグメント２には、フレーム５１３〜５１５が含まれ、セグメント３には、フレーム５１６〜５１８が含まれている。動画ストリーム３も同様である。なお、本実施形態においては、差分の動画情報をＰフレームとしたが、Ｂフレームとしてもよい。
【００２６】
セグメントは動画ストリームのある時間帯に含まれるフレームを示しており、クライアント装置１２０は動画ストリーム番号とセグメント番号を指定して所望のストリームの動画データを取得することができる。
【００２７】
本実施形態においては、クライアント装置１２０が動画ストリーム１のセグメント１、動画ストリーム２のセグメント２、動画ストリーム３のセグメント３の順に動画ストリームの切り替えを要求した場合を例にカメラサーバ装置１００の処理について説明する。
【００２８】
カメラサーバ装置１００は、まず、動画ストリーム１のセグメント１を送信する場合、セグメント１の先頭フレーム５００がIフレームであるため、フレーム５００，５０１，５０２をセグメント化してクライアント装置１２０へ送信する。
【００２９】
次に、カメラサーバ装置１００は、動画ストリーム２のセグメント２を送信する。ただし、動画ストリーム２のセグメント２の先頭フレーム５１３はIフレームではないため、このまま送信しても、クライアント装置１２０は、先頭フレーム５１３を再生することができない。そこで、カメラサーバ装置１００は、先頭フレーム５１３よりも前のIフレーム５１１からセグメント２の最終フレーム５１５までをセグメント化してクライアント装置１２０へ送信する。このとき、クライアント装置１２０は、フレーム５１１，５１２と同じ時間のフレーム５０１，５０２を既に受信、表示しているため、フレーム５１１，５１２を表示する必要がない。そこで、カメラサーバ装置１００は、セグメントのヘッダー部にて、フレーム５１１，５１２の表示時間にゼロを設定する。なお、セグメントデータのデータ構成については、図６を参照しつつ後に詳述する。
【００３０】
さらに、カメラサーバ装置１００は、動画ストリーム３のセグメント３を送信する。ただし、動画ストリーム３のセグメント３の先頭フレーム５２６がIフレームではない。そこで、カメラサーバ装置１００は、フレーム５２６より前のIフレーム５２５からセグメント３の最終フレーム５２８までをセグメント化してクライアント装置１２０へ送信する。この場合も、クライアント装置１２０は、フレーム５１５についてはすでにクライアント装置１２０に送信しているため、セグメントのヘッダー部にてフレーム５２５の表示時間にゼロを設定する。
【００３１】
このように、カメラサーバ装置１００が動画ストリームを切り換えた直後のセグメントにIフレームから始まる映像データを含め、表示が重複する場合は表示時間をゼロにして、映像ストリームを配信する。これにより、クライアント装置１２０は任意のタイミングでストリームを切り換えることができる。さらに、クライアント装置１２０は、重複配信された映像データについては、復号化処理は行うものの表示処理をしなくて済むため途切れやスキップがない映像を再生することができる。
【００３２】
図６は、セグメント５５１のデータ構造の一例を示す図である。本実施形態においては、セグメントデータは、ＭＰ４ファイルフォーマットのデータであるものとする。セグメントデータの先頭には、セグメントであることを示すＢＯＸ  ｓｔｙｐ６００とセグメントの順番を示すＢＯＸ  ｓｉｄｘ６０１が存在する。続いて、フラグメントの先頭を示すＢＯＸ  ｍｏｏｆ６０２がある。ＢＯＸ  ｍｏｏｆ６０２の中にはＢＯＸ  ｔｒｕｎ６０３が含まれている。ＢＯＸ  ｔｒｕｎ６０３には、フラグメントに含まれるフレームの表示時間が格納される。ＢＯＸ  ｔｒｕｎ６０３にはフラグメントに含まれるフレーム数ｓａｍｐｌｅ＿ｃｏｕｎｔ と、各フレームの表示時間ｓａｍｐｌｅ＿ｄｕｒａｔｉｏｎが含まれる。図６の例においては、フレーム数ｓａｍｐｌｅ＿ｃｏｕｎｔが５、先頭の２フレームが表示時間ゼロ、続く３フレームの表示時間はフレームレートから算出される表示時間ｎであることを示している。例えば、３０ｆｐｓの場合は３３ｍｓを意味する数字が設定される。最後に映像データを含むＢＯＸ  ｍｄａｔ６０４が存在する。
【００３３】
図７は、動画配信処理を示すシーケンス図である。動画配信処理は、カメラサーバ装置１００がクライアント装置１２０に動画を配信する処理である。図５に示す動画ストリーム１，２，３を配信対象とする場合を例に説明する。
【００３４】
Ｓ７０１において、クライアント装置１２０は、ＭＰＤファイルの取得要求をカメラサーバ装置１００に送信する。カメラサーバ装置１００の配信管理部３０２は、Ｓ７０１においてＭＰＤファイルの取得要求を受信すると、Ｓ７０２において、配信可能な動画ストリームの動画生成の開始を撮像処理部３０１に指示する。次に、Ｓ７０３において、配信管理部３０２は、動画ストリーム情報を記載したＭＰＤファイルを作成して、クライアント装置１２０に返信する。
【００３５】
なお、本図においては、前提として、別のクライアント装置に映像配信する、または録画しているなどの理由により、撮像処理部３０１が動画ストリーム２、３の映像生成を既に開始している状態であるものとする。さらに、動画ストリーム２、３において、次に生成される映像はＰフレームであるものとする。なお、別クライアントへの映像配信や録画処理は省略する。
【００３６】
撮像処理部３０１は、また、取得要求を受信すると、動画ストリーム１，２，３それぞれのフレーム１、すなわちフレーム５００，５１０，５２０（Ｉ，Ｐ，Ｐフレーム）を生成する。本処理は、動画生成処理の一例である。撮像処理部３０１は、フレームが生成されると、Ｓ７０４において、フレーム１を生成したことを配信管理部３０２に通知する。なお、説明の都合上、３ストリーム全てのフレームを一緒に通知するものとして説明するが、最初に生成されるフレームがＰフレームとなる場合はフレームの生成を通知せずＩフレームが生成するまでスキップしても構わない。
【００３７】
次に、Ｓ７０５において、配信管理部３０２は、動画ストリーム１のIフレームに付属するＳＰＳ／ＰＰＳデータから初期化セグメントを作成する。本例においては、ＳＰＳ／ＰＰＳデータはＩフレームに付属するものとするが、Ｉ／Ｐ／Ｂフレームなどの種別に関係なく、ＳＰＳ／ＰＰＳデータを配信管理部３０２に通知しても構わない。以降、配信管理部３０２は各ストリームの最初のＩフレームを受信した時に初期化セグメントを作成するものとする。
【００３８】
一方で、クライアント装置１２０は、Ｓ７０６において、ＭＰＤファイルを受信すると、自装置のＣＰＵ能力、表示解像度及びネットワーク帯域などから受信する動画ストリームを選択する。そして、クライアント装置１２０は、再生に必要な情報が含まれている初期化セグメントの取得要求をカメラサーバ装置１００に送信する。本例においては、クライアント装置１２０は動画ストリーム１を選択したものとする。次に、Ｓ７０７において、配信管理部３０２は、Ｓ７０５にて作成した初期化セグメントをレスポンスとして送信する。
【００３９】
カメラサーバ装置１００においては、撮像処理部３０１は、動画ストリーム１、２、３それぞれのフレーム２、すなわちフレーム５０１，５１１，５２１（Ｐ，Ｉ，Ｐフレーム）を生成すると、処理をＳ７０８へ進める。Ｓ７０８において、撮像処理部３０１は、フレーム２を生成したことを配信管理部３０２に通知する。同様に、Ｓ７０９において、撮像処理部３０１は、次に生成したフレーム３、すなわちフレーム５０２，５１２，５２２（Ｐ、Ｐ、Ｉフレーム）についても、生成した旨を通知する。次に、Ｓ７１０において、配信管理部３０２は、フレーム１，２，３から３ストリーム分のセグメント１を作成し、セグメントの取得要求を受信するまでバッファリングする。本処理は、セグメント生成処理の一例である。Ｓ７１１において、クライアント装置１２０は、動画ストリーム１のセグメント１の取得要求を送信する。次に、Ｓ７１２において、カメラサーバ装置１００の配信管理部３０２は、Ｓ７１０で生成したセグメントをレスポンスとして送信する。図５の例では、セグメント５５０が送信される。
【００４０】
同様に、撮像処理部３０１は、順次、３つの動画ストリームのフレーム（フレーム４，５，６）を生成し（Ｓ７１３，Ｓ７１４，Ｓ７１７）、配信管理部３０２は、３フレームが揃った時点で次のセグメントを作成する（Ｓ７１８）。Ｓ７１３で通知されるフレーム４は、フレーム５０３，５１３，５２３（Ｉ，Ｐ，Ｐフレーム）である。Ｓ７１４で通知されるフレーム５は、フレーム５０４，５１４，５２４（Ｐ，Ｉ，Ｐフレーム）である。Ｓ７１７で通知されるフレーム６は、フレーム５０５，５１５、５２５（Ｐ，Ｐ，Ｉフレーム）である。
【００４１】
Ｓ７１８において生成される、動画ストリーム２及び動画ストリーム３のセグメントは、いずれもＰフレームから始まるセグメントである。Ｐフレームから始まるセグメントを最初のフレームとするセグメントを送信した場合に、クライアント装置１２０は、Ｐフレームを表示することができない。
【００４２】
クライアント装置１２０においては、Ｓ７１５において、既にカメラサーバ装置１００から送信済みの動画ストリーム１から動画ストリーム２に切り替えるため、新しい動画ストリーム２の初期化セグメントの取得要求を送信する。次に、Ｓ７１６において、カメラサーバ装置１００の配信管理部３０２は、動画ストリーム２の初期化セグメントをレスポンスとして送信する。
【００４３】
次に、Ｓ７１９において、クライアント装置１２０は、動画ストリーム２のセグメント２の取得要求を送信する。ただし、配信管理部３０２が保持しているセグメント２の先頭はＰフレームである。そこで、Ｓ７２０において、配信管理部３０２は、直前のＩフレーム、すなわちフレーム５１１まで遡り、フレーム５１１（Ｉフレーム）からフレーム５１５までを含んだ再構成されたセグメント５５１を再構成する。次に、Ｓ７２１において、配信管理部３０２は、再構成されたセグメントをレスポンスとして送信する。
【００４４】
なお、この場合、配信管理部３０２は、Ｓ７２０にて再構成されたセグメントよりも前のフレーム（フレーム５１１，５１２）の表示時間をゼロに設定する。また、配信管理部３０２は、送信対象のセグメント（セグメント２）のフレーム（フレーム５１３，５１４，５１５）の表示時間については、フレームレートから算出された値を設定する。
【００４５】
このように、クライアント装置１２０はセグメントを順次取得しながら動画再生を行う。クライアント装置１２０では、ネットワーク帯域を測定するためにセグメントのデータ量をカウントするが、表示時間がゼロのフレームを含むセグメントは本来必要ないデータである。このため、受信済みの動画ストリームからの切り替え時の再構成されたセグメントを受信したときはセグメント全体をカウント対象から外す、もしくは表示時間ゼロのフレームのみカウント対象から外してもよい。
【００４６】
図８は、配信管理部３０２による配信管理処理を示すフローチャートである。配信管理処理は、カメラサーバ装置１００がクライアント装置１２０からＭＰＤファイルの取得要求を受信した場合に開始される。
【００４７】
Ｓ８０１において、配信管理部３０２は、撮像処理部３０１に対してフレームの生成開始を指示する。本処理は、図７を参照しつつ説明したＳ７０２の処理に対応する。次に、Ｓ８０２において、配信管理部３０２は、クライアント装置１２０にＭＰＤファイルを送信する。本処理は、Ｓ７０３の処理に対応する。次に、Ｓ８０３において、配信管理部３０２は、イベントが発生するのを待つ。次に、Ｓ３０２は、イベントが発生すると、イベントの内容を確認する。配信管理部３０２は、イベントの内容が、撮像処理部３０１からのフレーム生成通知イベントの場合には（Ｓ８０４でフレーム生成通知）、処理をＳ８０５へ進める。配信管理部３０２は、イベントの内容が、クライアント装置１２０からのセグメント取得要求イベントの場合には（Ｓ８０４でセグメント取得要求）、処理をＳ８１０へ進める。
【００４８】
Ｓ８０５において、配信管理部３０２は、生成されたフレームがセグメント分生成されたか否かを判定する。配信管理部３０２は、セグメント分のフレームが生成された場合には（Ｓ８０５でＹＥＳ）、処理をＳ８０６へ進める。配信管理部３０２は、セグメント分のフレームが生成されていない場合には（Ｓ８０５でＮＯ）、処理をＳ８０８へ進める。Ｓ８０６において、配信管理部３０２は、セグメント番号とセグメントに含まれるフレーム情報から、生成されたフレームを含むセグメントを生成する。次に、Ｓ８０７において、配信管理部３０２は、一次記憶装置２０２に設けられた、該当する動画ストリームの送信待ちリストに追加し、その後処理をＳ８０３へ進める。また、Ｓ８０８においては、配信管理部３０２は、フレーム情報を保存し、その後処理をＳ８０３に戻る。
【００４９】
Ｓ８１０においては、配信管理部３０２は、要求されたストリームの送信待ちリストに、要求されたセグメントが格納されているか否かを判定する。配信管理部３０２は、要求されたセグメントが格納されている場合には（Ｓ８１０でＹＥＳ）、処理をＳ８１１へ進める。配信管理部３０２は、要求されたセグメントが格納されていない場合には（Ｓ８１０でＮＯ）、処理をＳ８１９へ進める。
【００５０】
Ｓ８１１において、配信管理部３０２は、セグメントの先頭のフレームがＩフレームであるか否かを判定する。配信管理部３０２は、Ｉフレームの場合には（Ｓ８１１でＹＥＳ）、処理をＳ８１２へ進める。配信管理部３０２は、Ｉフレームでない場合には（Ｓ８１１でＮＯ）、処理をＳ８１３へ進める。Ｓ８１２において、配信管理部３０２は、セグメントをクライアント装置１２０に送信し、その後処理をＳ８０３へ進める。
【００５１】
Ｓ８１３において、配信管理部３０２は、直前のＩフレームが送信待ちリスト内に存在するか否かを判定する。配信管理部３０２は、直前のＩフレームが送信待ちリストに存在する場合には（Ｓ８１３でＹＥＳ）、処理をＳ８１４へ進める。配信管理部３０２は、直前のＩフレームが送信待ちリストに存在しない場合には（Ｓ８１３でＮＯ）、処理をＳ８１６へ進める。なお、図５の例においては、各セグメントに１つのＩフレームが含まれるが、例えば、１つのＩフレームに対し、Ｐフレームが３以上連続するような場合には、送信待ちリストにＩフレームが存在しない場合がある。また、送信待ちリストのバッファリング量を超えたことで直前のＩフレームが送信待ちリストから削除される場合がある。
【００５２】
Ｓ８１４において、配信管理部３０２は、第１のセグメント再構成処理を行う。具体的には、配信管理部３０２は、直前のＩフレームから要求セグメントまでのフレームを含むセグメント（第１の再構成セグメント）を再構成する。さらにこの場合、配信管理部３０２は、要求に係るセグメントよりも前のフレームの表示時間にゼロを設定し、要求に係るセグメントに含まれるフレームの表示時間にはフレームレートにより算出された値を設定する。なお、要求に係るセグメントよりも前のフレームの表示時間には、フレームレートにより算出された値よりも短い時間が設定されればよく、その値はゼロに限定されるものではない。次に、Ｓ８１５において、配信管理部３０２は、再構成されたセグメントをクライアント装置１２０に送信し、その後処理をＳ８０３へ進める。
【００５３】
このように、配信管理部３０２は、配信対象のセグメントの先頭フレームがＩフレームでない場合には、先頭フレームよりも前のＩフレームから配信対象のセグメントの最後のフレームまでのセグメントを再構成し、これを送信する。したがって、クライアント装置１２０は、配信対象のセグメントの先頭フレームから抜けなく再生することができる。さらに、配信対象のセグメントよりも前のフレームの表示時間がゼロに設定されるので、クライアント装置１２０において、ストリームが切り替えられた後では、ストリーム切り換え前に表示されたフレームに続くフレームから表示することができる。
【００５４】
Ｓ８１６において、配信管理部３０２は、要求されたセグメント内にＩフレームが存在するか否かを判定する。配信管理部３０２は、要求されたセグメント内にＩフレームが存在する場合には（Ｓ８１６でＹＥＳ）、処理をＳ８１７へ進める。配信管理部３０２は、要求されたセグメント内にＩフレームが存在しない場合には（Ｓ８１６でＮＯ）、処理をＳ８１９へ進める。
【００５５】
Ｓ８１７において、配信管理部３０２は、第２の再構成処理を行う。具体的には、配信管理部３０２は、要求されたセグメント内のＩフレームを先頭とし、要求されたセグメント内の最終フレームを最終フレームとするセグメント（第２の再構成セグメント）を再構成する。次に、Ｓ８１８において、配信管理部３０２は、再構成されたセグメントをクライアント装置１２０に送信し、その後処理をＳ８０３へ進める。なお、Ｓ８１６、Ｓ８１７、Ｓ８１８の処理は、動画データの一部を捨ててしまう処理である。これら処理については、省略してもよい。
【００５６】
Ｓ８１９においては、配信管理部３０２は、エラーレスポンスをクライアント装置１２０に送信し、その後処理をＳ８０３へ進める。なお、配信管理部３０２は、Ｓ８１９の処理に替えて、次に配信可能なセグメントが生成されるまで待機することとしてもよい。
【００５７】
以上のように、本実施形態に係るカメラサーバ装置１００は、配信対象のセグメントよりも前のＩフレームを含んだセグメントを再構成し、これをクライアント装置１２０に送信する。したがって、カメラサーバ装置１００は、動画ストリームの切り替え時においても、連続再生可能な動画ストリームを配信することができる。
【００５８】
実施形態の第１の変形例としては、配信管理部３０２は、Ｓ８１６にてＮＯと判定した場合には、以下の処理を行うこととしてもよい。すなわち、配信管理部３０２は、配信対象のセグメント以降において初めに生成されるＩフレームまでの期間が所定の期間以上未来の場合には、撮像処理部３０１に対しＩフレームの生成を要求してもよい。これに対し、撮像処理部３０１は、次に予定されるＩフレームよりも前のタイミングにおいてＩフレームを生成する。そして、配信管理部３０２は、撮像処理部３０１により生成されたＩフレームを先頭フレームとするセグメント（第３の再構成セグメント）を再構成し、クライアント装置１２０に送信することとしてもよい。
第２の変形例について説明する。本実施形態においては、ＤＡＳＨ配信を利用する場合を例に、動画配信処理を説明したが、配信方法は実施形態に限定されるものではない。他の例としては、動画配信に、ＨＬＳ配信など他のＡｄａｐｔｉｖｅ  Ｂｉｔｒａｔｅ  Ｓｔｒｅａｍｉｎｇ技術を用いてもよい。
【００５９】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００６０】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６１】
１００  カメラサーバ装置
１２０  クライアント装置
３０１  撮像処理部
３０２  配信管理部
３０３  通信管理部
【図１】
2020150321.tif 000003
【図２】
2020150321.tif 000004
【図３】
2020150321.tif 000005
【図４】
2020150321.tif 000006
【図５】
2020150321.tif 000007
【図６】
2020150321.tif 000008
【図７】
2020150321.tif 000009
【図８】
2020150321.tif 000010