(57)【要約】【課題】再生遅延を少なくしつつ途切れることなくセグメントを再生可能にすることを課題とする。【解決手段】セグメントの単位時間を指定する第１の時間を示す情報を外部装置から取得する時間取得手段（３０２）と、第１の時間を示す情報に基づいてセグメントの単位時間の候補である第２の時間を少なくとも一つ決定する決定手段（３０３）と、メディアデータのストリームを第２の時間ごとのセグメントに分けたセグメント情報を生成する生成手段（３０６）と、セグメント情報を前記外部装置に送信する送信手段（３０７）と、を有する。【選択図】図３
2020022106.tif 000002
【特許請求の範囲】
【請求項１】
セグメントの単位時間を指定する第１の時間を示す情報を、外部装置から取得する時間取得手段と、
前記第１の時間を示す情報に基づいて、前記セグメントの単位時間の候補である第２の時間を少なくとも一つ、決定する決定手段と、
メディアデータのストリームを、前記決定された前記第２の時間ごとの前記セグメントに分けたセグメント情報を生成する生成手段と、
前記セグメント情報を前記外部装置に送信する送信手段と、
を有することを特徴とする情報処理装置。
【請求項２】
設定情報に基づいて前記メディアデータを生成するデータ生成手段をさらに有し、
前記決定手段は、前記メディアデータの生成に使用された前記設定情報を基に、前記第２の時間を決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記設定情報は異なる複数の設定情報からなり、
前記決定手段は、前記メディアデータの生成に使用が可能な複数の前記設定情報に基づいて、前記第２の時間を決定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記データ生成手段は、前記メディアデータの最小単位の時間であるフレーム周期の設定情報に基づいて、前記フレーム周期ごとのデータからなる前記メディアデータを生成し、
前記決定手段は、前記フレーム周期の設定情報を基に、前記第２の時間を決定することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
メディアデータの最小単位の時間であるフレーム周期を取得する周期取得手段と、
セグメントの単位時間を指定する第１の時間を示す情報を取得する時間取得手段と、
前記第１の時間を示す情報に基づいて、前記セグメントの単位時間の候補である第２の時間を少なくとも一つ、決定する決定手段と、
メディアデータのストリームから前記セグメントごとのセグメント情報を生成する外部装置に対し、前記決定された第２の時間を示す情報を送信する送信手段と、
を有することを特徴とする情報処理装置。
【請求項６】
前記決定手段は、前記第１の時間以下の前記フレーム周期の整数倍の最大値を、前記第２の時間として決定することを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
前記決定手段は、前記第１の時間が前記フレーム周期より短い場合には、前記フレーム周期の設定情報に基づいて前記第２の時間を決定しないことを特徴とする請求項４から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記決定手段は、前記第１の時間以上の前記フレーム周期の整数倍の最小値を、前記第２の時間として決定することを特徴とする請求項４から７のいずれか１項に記載の情報処理装置。
【請求項９】
前記決定手段は、前記第２の時間の上限値または下限値を示す所定の閾値と前記第１の時間との比較結果に基づいて、前記所定の閾値を前記第２の時間として決定することを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記所定の閾値は前記メディアデータの最小単位のデータを一つ以上、含むグループの時間長であり、
前記グループには他の最小単位のデータを用いずに復号が可能な最小単位のデータが少なくとも一つ含まれ、
前記決定手段は、前記第１の時間が前記所定の閾値以上の場合に、前記所定の閾値を前記第２の時間として決定することを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記決定手段は、
前記セグメントが送信されてから受信されるまでに要する遅延時間を推定し、
前記第１の時間が、前記遅延時間以上の時間である場合に、前記遅延時間以上の前記所定の閾値を、前記第２の時間として決定することを特徴とする請求項９または１０に記載の情報処理装置。
【請求項１２】
前記第１の時間は、時間長で示されることを特徴とする請求項１から１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記第１の時間は、前記メディアデータの最小単位の数で示されることを特徴とする請求項１から１１のいずれか１項に記載の情報処理装置。
【請求項１４】
前記メディアデータは、リアルタイムに取得された映像データと音声データの少なくとも何れかを含むデータであることを特徴とする請求項１から１３のいずれか１項に記載の情報処理装置。
【請求項１５】
セグメントの単位時間を指定する第１の時間を示す情報を、外部装置から取得する時間取得工程と、
前記第１の時間を示す情報に基づいて、前記セグメントの単位時間の候補である第２の時間を少なくとも一つ、決定する決定工程と、
メディアデータのストリームを、前記決定された前記第２の時間ごとの前記セグメントに分けたセグメント情報を生成する生成工程と、
前記セグメント情報を前記外部装置に送信する送信工程と、
を有することを特徴とする情報処理方法。
【請求項１６】
メディアデータの最小単位の時間であるフレーム周期を取得する周期取得工程と、
セグメントの単位時間を指定する第１の時間を示す情報を取得する時間取得工程と、
前記第１の時間を示す情報に基づいて、前記セグメントの単位時間の候補である第２の時間を少なくとも一つ、決定する決定工程と、
メディアデータのストリームから前記セグメントごとのセグメント情報を生成する外部装置に対し、前記決定された第２の時間を示す情報を送信する送信工程と、
を有することを特徴とする情報処理方法。
【請求項１７】
コンピュータを、請求項１から１４のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像データや音声データを含むメディアデータを送信する技術に関する。
【背景技術】
【０００２】
近年、映像データや音声データを含むメディアデータのストリームをセグメント時間（ｓｅｇｍｅｎｔ  ｄｕｒａｔｉｏｎ）単位のメディアセグメントに分割して送信するアダプティブストリーミング技術を用いたシステムが普及している。アダプティブストリーミング技術としては、以下の二つがある。第１の技術は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）によって規格化されたＤＡＳＨ（Ｄｙｎａｍｉｃ  Ａｄａｐｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  ｏｖｅｒ  ＨＴＴＰ）である。第２の技術は、ＨＬＳ（ＨＴＴＰ  Ｌｉｖｅ  Ｓｔｒｅａｍｉｎｇ）である。
【０００３】
ＤＡＳＨの規格に基づくアダプティブストリーミングにおいては、まずクライアント装置は、ＭＰＤファイル（Ｍｅｄｉａ  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ）を取得する。ＭＰＤファイルには、配信サーバが送信可能なメディアセグメントの系列の情報であるＲｅｐｒｅｓｅｎｔａｔｉｏｎが一つ以上記載されている。そして、クライアント装置は、ＭＰＤに記載されたＲｅｐｒｅｓｅｎｔａｔｉｏｎの中から、クライアント装置の表示性能や通信状況に応じた適切なＲｅｐｒｅｓｅｎｔａｔｉｏｎを選択する。その後、クライアント装置は、ＭＰＤの記載に従って、ＭＰＥＧ２−ＴＳまたはＩＳＯＢＭＦＦ（ＩＳＯ Ｂａｓｅ  Ｍｅｄｉａ  Ｆｉｌｅ  Ｆｏｒｍａｔ）の映像フォーマットをメディアセグメント単位でダウンロードして再生する。
【０００４】
また特許文献１や特許文献２等には、クライアント装置からの要求に対して、配信サーバがセグメントを送信するための方法が開示されている。特許文献１は、セグメントのデータサイズの変更の要求に対し、符号化される動き情報の量を調節して、セグメントのデータサイズを変更する方法を開示している。また特許文献２は、時間セクションを指定する要求に対し、要求された時間セクションのセグメントを出力する方法を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００９−５２５７０５号公報
【特許文献２】特表２０１３−５０９８１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上述の特許文献１、２に開示された従来技術では、特にライブストリームの配信時に、配信サーバにおいてクライアント装置の所望するセグメント時間のセグメントが用意されない場合、クライアント装置にて次の現象が生じる虞がある。例えば、セグメント時間が長すぎる場合には、セグメントの生成が行われて、クライアント装置がそのセグメントを受信して再生を行うまでの再生遅延が大きくなる場合がある。また、セグメント時間が短すぎる場合には、クライアント装置から配信サーバに対する要求処理のオーバーヘッドが大きくなり、セグメントの再生が一時的に途切れる場合がある。
【０００７】
そこで、本発明は、再生遅延を少なくしつつ途切れることなくセグメントの再生を可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、セグメントの単位時間を指定する第１の時間を示す情報を、外部装置から取得する時間取得手段と、前記第１の時間を示す情報に基づいて、前記セグメントの単位時間の候補である第２の時間を少なくとも一つ、決定する決定手段と、メディアデータのストリームを、前記決定された前記第２の時間ごとの前記セグメントに分けたセグメント情報を生成する生成手段と、前記セグメント情報を前記外部装置に送信する送信手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、再生遅延を少なくしつつ途切れることなくセグメントの再生が可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るシステムの概略構成例を示す図である。
【図２】情報生成装置のハードウェア構成例を示す図である。
【図３】情報生成装置の機能構成例を示す図である。
【図４】初期化セグメントとメディアセグメントのデータ構造を説明する図である。
【図５】第１の実施形態に係るＭＰＤファイルの一例を示す図である。
【図６】プレイリスト送信処理を示すフローチャートである。
【図７】第１の実施形態のセグメント時間決定処理を示すフローチャートである。
【図８】第２の実施形態におけるフレーム周期のリストを示す図である。
【図９】第２の実施形態の情報生成装置における処理を示すフローチャートである。
【図１０】第２の実施形態に係るＭＰＤファイルの一例を示す図である。
【図１１】クライアント装置のハードウェア構成例を示す図である。
【図１２】クライアント装置の機能構成例を示す図である。
【図１３】第３の実施形態のセグメント時間決定処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態について説明する。
＜第１の実施形態＞
図１は、本発明の情報処理装置の一例である情報生成装置１０１およびクライアント装置１０２を含むシステムの概略的な構成例を示す図である。本実施形態では、例えばリアルタイムで取得された映像データや音声データを含むメディアデータのライブストリームを、単位時間毎のセグメントに分割したメディアセグメントを送信するアダプティブストリーミング技術を用いたシステムを例に挙げている。
【００１２】
図１に示すシステムは、本実施形態に係る情報生成装置１０１およびクライアント装置１０２と、ネットワーク１０３とを有する。例えば、情報生成装置１０１はネットワークカメラであり、ネットワーク１０３はＬＡＮ等のＩＰネットワークである。情報生成装置１０１は、アダプティブストリーミング技術を用いて、映像や音声の少なくともいずれかを含むメディアデータのストリームを単位時間毎に分割してメディアセグメントを生成可能な装置である。本実施形態では、情報生成装置１０１が配信サーバの機能を有する例を挙げているが、配信サーバは別に設けられていてもよい。クライアント装置１０２は、情報生成装置１０１に対する外部装置であり、ネットワーク１０３を介して情報生成装置１０１と通信可能な通信装置である。本実施形態において、クライアント装置１０２は、情報生成装置１０１からアダプティブストリーミング技術を用いて送信されるメディアセグメントのデータを受信して再生可能な例えばパーソナルコンピュータ（ＰＣ）であるとする。
【００１３】
このように、情報生成装置１０１とクライアント装置１０２は、ネットワーク１０３を介して接続され、相互に通信可能となされている。
クライアント装置１０２は、情報生成装置１０１に対して各種要求コマンドを送信することができる。本実施形態の場合、クライアント装置１０２が情報生成装置１０１に送信するコマンドとしては、後述するプレイリスト送信要求やセグメント送信要求のコマンド等を挙げることができる。詳細は後述するが、本実施形態の場合、クライアント装置１０２は、例えばプレイリスト送信要求のコマンドに、セグメントの単位時間を指定する指定時間を含む単位時間情報を含めることができる。
【００１４】
情報生成装置１０１は、クライアント装置１０２からの各種要求コマンドを受信すると、それらコマンドに対するレスポンスを、クライアント装置１０２に返送する。詳細は後述するが、本実施形態の場合、情報生成装置１０１は、クライアント装置１０２からプレイリスト送信要求のコマンドを受信すると、そのコマンドに含まれる単位時間情報からセグメントの単位時間を指定する指定時間の情報を取得する。そして情報生成装置１０１は、その指定時間に基づいて、セグメントの単位時間の候補であるセグメント時間を少なくとも一つ決定し、当該セグメントの単位時間を含むプレイリストの情報をクライアント装置１０２に送信することができる。また情報生成装置１０１は、メディアデータのストリームを、セグメントの単位時間毎のセグメントに分けたセグメント情報を生成して、クライアント装置１０２に送信可能となされている。
【００１５】
ネットワーク１０３は、Ｅｔｈｅｒｎｅｔ（登録商標）等の通信規格を満足する複数のルータ、スイッチ、ケーブル等を有する。ネットワーク１０３は、情報生成装置１０１およびクライアント装置１０２間の通信が行えるものであれば、その通信規格、規模、構成は限定されず、インターネットから無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）にまで適用可能である。なお、図１では、説明の簡略化のために、情報生成装置１０１は１台としているが、２台以上であってもよい。また、クライアント装置１０２以外にも、ネットワーク１０３を介して情報生成装置１０１に接続する１台以上のクライアント装置があってもよい。
【００１６】
図２は、本実施形態に係る情報生成装置１０１のハードウェア構成例を示す図である。
情報生成装置１０１は、ＣＰＵ２０１、一次記憶装置２０２、二次記憶装置２０３、画像キャプチャＩ／Ｆ２０６、ネットワークＩ／Ｆ２０７を有し、それらが内部バス２０４を介して相互に接続されている。また情報生成装置１０１は、ＣＣＤセンサやＣＭＯＳセンサからなる撮像素子２０５も有する。
【００１７】
一次記憶装置２０２は、例えばＲＡＭであり、書き込み可能な高速の記憶装置である。一次記憶装置２０２は、ＯＳや各種プログラムおよび各種データがロードされ、またＯＳや各種プログラムの作業領域として使用される。二次記憶装置２０３は、例えばフラッシュメモリ、ＨＤＤ、ＳＤカード等であり、不揮発性記憶装置である。二次記憶装置２０３は、ＯＳや各種プログラムおよび各種データの永続的な記憶領域として使用され、短期的な各種データの記憶領域としても使用される。
【００１８】
ＣＰＵ２０１は、二次記憶装置２０３に記憶されているプログラムを一次記憶装置２０２に展開して実行することにより、本実施形態の情報生成装置１０１に係る各種処理を実現する。画像キャプチャＩ／Ｆ２０６には、撮像素子２０５が接続され、撮像素子２０５が撮像したリアルタイムの画像データを所定のフォーマットのデータに変換等して一次記憶装置２０２に転送する。ネットワークＩ／Ｆ２０７は、ネットワーク１０３を介してクライアント装置１０２に接続可能とするインタフェースであり、クライアント装置１０２等との間の通信に係る各処理を担う。
【００１９】
図３は、本実施形態に係る情報生成装置１０１の機能構成例を示す図である。
情報生成装置１０１は、受信部３０１、時間取得部３０２、時間決定部３０３、プレイリスト生成部３０４、データ生成部３０５、セグメント生成部３０６、および送信部３０７を有する。受信部３０１、時間取得部３０２、時間決定部３０３、プレイリスト生成部３０４、データ生成部３０５、セグメント生成部３０６、および送信部３０７は、図２のＣＰＵ２０１がプログラムを実行することにより機能する処理部である。なお、これらの一部の機能がハードウェア構成により実現され、残りの機能がプログラムの実行によるソフトウェア構成として実現されてもよい。
【００２０】
データ生成部３０５は、画像キャプチャＩ／Ｆ２０６により一次記憶装置２０２に転送された画像データに対して符号化処理を行い、映像データとして映像フレーム及び映像メタデータを生成する。画像データの符号化方式には、例えばＨ．２６４／ＡＶＣまたはＨ．２６５／ＨＥＶＣを用いることができる。但し、符号化方式はこれらに限らず、他の種々の符号化方式が用いられてもよく、映像データを生成可能なものであればいずれの方式であってもよい。
【００２１】
映像メタデータは、例えばＳＰＳ（Ｓｅｑｕｅｎｃｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）やＰＰＳ（Ｐｉｃｔｕｒｅ  Ｐａｒａｍｅｔｅｒ  Ｓｅｔ）等の映像再生を開始するために必要なデータである。映像フレームは、映像再生時に継続して表示される映像１コマ単位の情報を示すデータである。映像フレーム及び映像メタデータはデータ生成部３０５が生成する映像データの最小単位であり、後述のセグメント生成部３０６が生成するセグメントは、１以上の映像フレームまたは映像メタデータを含み得るデータである。
【００２２】
映像フレームには、例えば独立フレームと従属フレームがある。独立フレームは、フレーム内符号化処理によって生成され、復号時に他の映像フレームの情報を必要としない映像フレームであり、例えばＩフレームである。従属フレームは、フレーム間符号化処理によって生成され、他の映像フレームとの差分情報から構成される映像フレームであり、例えばＰフレーム又はＢフレームである。データ生成部３０５は、例えば所定のグループ（ＧＯＰ：Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｕｔｕｒｅ）の周期毎に独立フレームを少なくとも一つ生成し、ＧＯＰ周期内のその他の映像フレームを従属フレームとして生成する。なお映像フレームの構成方式はこの例に限られるものではない。
【００２３】
データ生成部３０５は、一定の周期（フレーム周期）毎に連続して映像フレームを生成する。フレーム周期は設定情報に応じて変更可能となされており、データ生成部３０５は、映像フレームの生成の際に使用したフレーム周期を示す設定情報を、二次記憶装置２０３に保持することができる。なお本実施形態において、フレーム周期が例えば４０ミリ秒である場合、フレーム周期の設定情報は４０ミリ秒の時間を表す値となされる。またデータ生成部３０５は、映像フレームの解像度、符号化方式、送信ビットレート等についてもそれぞれの設定情報によって変更可能となされている。そして、データ生成部３０５は、映像データを生成する際に使用した、映像フレームの解像度、符号化方式、送信ビットレート等をそれぞれ示す設定情報についても、二次記憶装置２０３に保持することができる。
【００２４】
受信部３０１は、クライアント装置１０２からの各種要求コマンドとして、例えばプレイリストの送信要求やセグメントの送信要求のコマンド等を受信することができる。プレイリスト及びセグメントの詳細なデータ構造については後述する。
受信部３０１は、プレイリスト送信要求のコマンドをクライアント装置１０２から受信すると、時間取得部３０２に対し、プレイリスト送信要求受信通知を送る。プレイリスト送信要求は、プレイリスト生成部３０４が生成するプレイリストに対する送信要求である。また本実施形態の場合、プレイリスト送信要求のコマンドには、プレイリスト自体のパスに加え、セグメント生成部３０６が生成するセグメントの時間長であるセグメント時間を要求するクエリ等として単位時間情報を含めることができる。受信部３０１は、プレイリスト送信要求のコマンドに単位時間情報が含まれていた場合、その単位時間情報をもプレイリスト送信要求受信通知に含めて、時間取得部３０２に送る。
【００２５】
本実施形態の場合、プレイリスト送信要求に含まれる単位時間情報は、クライアント装置１０２がセグメントの単位時間を指定した指定時間を含んだ情報となされている。本実施形態の場合、指定時間は、例えばクライアント装置１０２が自身の表示性能や処理性能、通信状況等に基づいて設定した時間とするが、クライアント装置１０２に予め設定された時間であってもよい。
【００２６】
単位時間情報のフォーマットとしては、例えば、時間長方式又はフレーム数方式を用いることができる。
時間長方式の場合、単位時間情報はクライアント装置１０２が要求するセグメント時間（指定時間）の時間長を含み、プレイリスト送信要求コマンドのクエリパラメータ名としてはセグメント時間の時間長を表現する「ｄｕｒａｔｉｏｎ」を定義することができる。例えば、クライアント装置１０２が時間長Ｘとして１２０ミリ秒のセグメント時間を要求する場合には、時間長Ｘ＝１２０とし、クエリとして「ｄｕｒａｔｉｏｎ＝１２０」をプレイリスト送信要求のコマンドが含むようにすればよい。
【００２７】
フレーム数方式の場合、単位時間情報は、フレーム周期のＹ倍の時間を示す値Ｙを、クライアント装置１０２が要求するセグメント時間（指定時間）を示す情報として含むものとなされる。フレーム数方式の場合、プレイリスト送信要求のコマンドのクエリパラメータとしては、そのような値Ｙを表現可能な「ｆｒａｍｅ」を定義することができる。例えば、クライアント装置１０２が１２０ミリ秒のセグメント時間を要求する場合、フレーム周期が４０ミリ秒であるため、値Ｙ＝３とし、クエリとして「ｆｒａｍｅ＝３」をプレイリスト送信要求のコマンドが含むようにすればよい。
なお単位時間情報のフォーマットは、時間長方式やフレーム数方式以外の方式でもよく、単位時間を表現できるものであればよい。
【００２８】
時間取得部３０２は、受信部３０１からプレイリスト送信要求受信通知を受け取ると、その通知に含まれる単位時間情報から指定時間を取得し、時間決定部３０３に対して指定時間取得通知を行う。指定時間取得通知は指定時間を示すものとする。
ここで時間取得部３０２は、受信部３０１から受け取ったプレイリスト送信要求受信通知に含まれる単位時間情報を、所定のフォーマットの情報に変換するものとしてもよい。
【００２９】
例えば、受信部３０１から受け取った単位時間情報が前述した時間長方式の「ｄｕｒａｔｉｏｎ＝Ｘ」を含む場合、指定時間は以下の式（１）で表わされる。
（指定時間）＝Ｘ［ミリ秒］  ・・・式（１）
【００３０】
また、受信部３０１から受け取った単位時間情報が前述したフレーム数方式の「ｆｒａｍｅ＝Ｙ」を含む場合、指定時間は以下の式（２）で算出することができる。
（データ生成部３０５のフレーム周期）×Ｙ［ミリ秒］  ・・・式（２）
なお、時間取得部３０２は、データ生成部３０５において使用するフレーム周期を二次記憶装置２０３から読み出し可能であるものとする。
【００３１】
時間決定部３０３は、時間取得部３０２から指定時間取得通知を受け取ると、指定時間取得通知が示す指定時間を基に、後述するメディアセグメントの単位時間の候補であるセグメント時間を少なくとも一つ決定する。セグメント時間の決定処理の詳細は後述する。そして、時間決定部３０３は、プレイリスト生成部３０４に対してセグメント時間決定通知を送信する。セグメント時間決定通知は、時間決定部３０３が決定したセグメント時間を示すものとする。
【００３２】
プレイリスト生成部３０４は、時間決定部３０３からセグメント時間決定通知を受け取ると、セグメント時間決定通知が示すセグメント時間を記載したプレイリストを生成し、一次記憶装置２０２に保持する。
プレイリストの一例としては、ＩＳＯ／ＩＥＣ２３００９−１にて定義されるＭＰＤファイルを用いることができる。ＭＰＤファイルには、情報生成装置１０１が送信可能なセグメントの情報、セグメント時間情報、セグメントの映像データの解像度情報、フレームレート情報、符号化方式情報、送信ビットレート情報等を、送信メディア情報として記述することができる。
【００３３】
その後、プレイリスト生成部３０４は、送信部３０７に対しプレイリスト送信指示を送り、プレイリストのデータをクライアント装置１０２に送信させるようにする。なお、プレイリスト生成部３０４は、情報生成装置１０１の処理負荷増大等により、一時的にプレイリストが生成不可となる場合には、送信部３０７に対しＨＴＴＰ５０３等のエラーレスポンスをクライアント装置１０２に送信させる指示を行うものとしてもよい。
送信部３０７は、プレイリスト生成部３０４からプレイリストの送信指示を受け取ると、一次記憶装置２０２が保持しているプレイリストのデータを読み出してクライアント装置１０２に送信する。
【００３４】
受信部３０１は、セグメント送信要求のコマンドをクライアント装置１０２から受信すると、クライアント装置１０２に対してレスポンスを送信する指示を送信部３０７に行う。セグメント送信要求は、セグメント生成部３０６が生成するセグメントに対する送信要求である。送信部３０７は、送信要求が行われたセグメントが既にセグメント生成部３０６により生成されて一次記憶装置２０２内に存在している場合には、その送信要求が行われたセグメントのデータをレスポンスとしてクライアント装置１０２に送信する。一方、送信要求が行われたセグメントが一次記憶装置２０２に存在しない場合、送信部３０７は、ＨＴＴＰ４０４等のエラーレスポンスを送信することができる。
【００３５】
セグメント生成部３０６は、データ生成部３０５が生成した映像メタデータと映像フレームにヘッダ部を付加し、それぞれ初期化セグメント及びメディアセグメントを生成して、一次記憶装置２０２に保持する。以下、初期化セグメント及びメディアセグメントを併せてセグメントと呼称する。初期化セグメントとメディアセグメントの詳細は後述する。セグメントは例えばＩＳＯ／ＩＥＣ１４４９６−１２にて定義される構造を持つものとすることができる。セグメント生成部３０６は、時間決定部３０３にて決定されたセグメント時間の時間長分に相当する数の映像フレームを含むように、メディアセグメントを生成する。またセグメント生成部３０６は、セグメントを生成して一次記憶装置２０２に保持すると、送信部３０７に対しセグメントの送信指示を行う。
【００３６】
送信部３０７は、セグメント生成部３０６からセグメントの送信指示を受け取ると、その送信指示に応じたセグメントを一次記憶装置２０２から読み出して、クライアント装置１０２に対して送信する。なおここでは、送信部３０７はクライアント装置１０２からセグメント送信要求のコマンドを受信してからセグメントを送信する例を挙げているが、これに限定されない。例えば、ＨＴＴＰ／２やＷｅｂｓｏｃｋｅｔなどのプロトコルの場合、送信部３０７は、クライアント装置１０２から送信要求を受信しなくても、セグメント生成部３０６においてセグメントの生成が完了した時点で次々と送信することができる。この場合、セグメント生成部３０６はセグメントの生成が完了する度に送信部３０７に対しセグメント生成通知を行い、送信部３０７はセグメント生成通知の受信によりセグメントの生成完了を検知し、それらセグメントの生成が完了した時点で次々と送信する。
【００３７】
図４は、セグメント生成部３０６が生成する初期化セグメント４４１及びメディアセグメント４５１のデータ構成を説明する図である。
図４に示すように、初期化セグメント４４１は、前述したＳＰＳやＰＰＳ等を有した映像メタデータ４６１を含む。メディアセグメント４５１は一つ以上の映像フレームを含むことができる。メディアセグメント４５１は映像フレーム４７１〜４７３を符号化順に含んでいる。例えば、映像フレーム４７１を独立フレーム、映像フレーム４７２と映像フレーム４７３を従属フレームとすることができる。なおここではメディアセグメント４５１の先頭の映像フレームを独立フレームとしたが、先頭の映像フレームが独立フレームでないメディアセグメントがあってもよい。情報生成装置１０１は、メディアセグメント４５１を含む複数のメディアセグメントを、クライアント装置１０２の送信要求に応じてネットワークＩ／Ｆ２０７を通して次々に送信することができる。
【００３８】
メディアセグメント４５１のセグメント時間は、以下の式（３）で算出することができる。
（データ生成部３０５のフレーム周期）×（メディアセグメント４５１に含まれる映像フレームのフレーム数）＝４０［ミリ秒］×３＝１２０［ミリ秒］  ・・・式（３）
【００３９】
図５は、情報生成装置１０１がクライアント装置１０２に送信するプレイリストとしてのＭＰＤファイル５８０の構成の一例を示す図である。
プレイリスト生成部３０４は、二次記憶装置２０３にて保持するフレーム周期等の設定情報、及び、時間決定部３０３からのセグメント時間決定通知が示すセグメント時間に基づいて、ＭＰＤファイル５８０を作成する。
【００４０】
ＭＰＤファイル５８０は、Ｐｅｒｉｏｄ５８１、ＡｄａｐｔａｔｉｏｎＳｅｔ５８２、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３、ＳｅｇｍｅｎｔＴｅｍｐｌａｔｅ５８４の順の各要素からなる階層構造となっている。この階層構造によって情報生成装置１０１がクライアント装置１０２に送信することが可能なセグメントに関する情報を定義することができる。
【００４１】
Ｐｅｒｉｏｄ５８１は、下位階層の要素が定義される期間の範囲を定義する。例えば、Ｐｅｒｉｏｄ５８１では、Ｐｅｒｉｏｄ５８１の開始時間ｓｔａｒｔを０と記述し、Ｐｅｒｉｏｄ５８１の期間の時間長ｄｕｒａｔｉｏｎを記述しないことで、情報生成装置１０１が連続して送信する全てのセグメント情報を定義することができる。
ＡｄａｐｔａｔｉｏｎＳｅｔ５８２は、映像の情報を示しており、例えば同じＰｅｒｉｏｄ５８１の期間で別の視点の映像を定義することができる。
【００４２】
Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３では、セグメントの映像の情報として解像度やフレームレート等を定義することができる。ｉｄ情報５９５は、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３を識別するためのｉｄ情報であり、この例ではＲｅｐｒｅｓｅｎｔａｔｉｏｎ５８３のｉｄが１であることを示している。Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３は、解像度情報５８５、フレームレート情報５８６、符号化方式情報５９２、送信ビットレート情報５９３、及び、後述のＳｅｇｍｅｎｔＴｅｍｐｌａｔｅ５８４中のセグメント時間情報等を送信メディア情報として含む。解像度情報５８５、フレームレート情報５８６、符号化方式情報５９２、送信ビットレート情報５９３は、二次記憶装置２０３に保持されている前述した各設定情報に基づき記述される。
【００４３】
解像度情報５８５は、セグメントの映像フレームの解像度として幅×高さが例えば２５６×１４４［ピクセル］であることを示している。フレームレート情報５８６は、セグメントの映像フレームが１秒当たりに生成される枚数、つまりフレーム周期の秒値表現の逆数が例えば２５であることを示している。符号化方式情報５９２は、セグメントの映像の符号化方式が、例えばＨ．２６４／ＡＶＣ  Ｍａｉｎプロファイル  レベル３．１であることを示している。送信ビットレート情報５９３は、セグメントを送信する送信ビットレートが、例えば６５５３６［ｂｐｓ］であることを示している。
【００４４】
ＳｅｇｍｅｎｔＴｅｍｐｌａｔｅ５８４では、以下の式（４）を満たすように、タイムスケール情報５８７及びセグメント時間情報５８８を用いることにより、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３のメディアセグメントのセグメント時間を記述することができる。
（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３のセグメント時間）＝（セグメント時間情報５８８）／（タイムスケール情報５８７）＝３００／２５００［秒］＝１２０［ミリ秒］  ・・・式（４）
Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３のセグメント時間は、時間決定部３０３が決定したセグメント時間に一致するよう記述する。
【００４５】
また、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３は、初期化セグメントＵＲＩ情報５８９、及び、メディアセグメントＵＲＩ情報５９０を含んでいる。クライアント装置１０２は、情報生成装置１０１のＩＰアドレスを含むＭＰＤＢａｓｅＵＲＩ情報５９１、ＲｅｐｒｅｓｅｎｔａｔｉｏｎＢａｓｅＵＲＩ情報５９４を使用することにより、下記のＵＲＩにアクセスすることができる。そして、クライアント装置１０２は、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３及びＳｅｇｍｅｎｔＴｅｍｐｌａｔｅ５８４によって定義された初期化セグメントと各メディアセグメントとの取得を行うことができる。クライアント装置１０２は、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３の初期化セグメントＵＲＩ、及び、メディアセグメントＵＲＩを、ｉｄ情報５９５から＄ＲｅｐｒｅｓｅｎｔａｔｉｏｎＩＤ＄を１として、それぞれ式（５）、式（６）で決定することができる。
【００４６】
（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３の初期化セグメントＵＲＩ）＝（ＭＰＤＢａｓｅＵＲＩ情報５９１）＋（ＲｅｐｒｅｓｅｎｔａｔｉｏｎＢａｓｅＵＲＩ情報５９４）＋（初期化セグメントＵＲＩ情報５８９）＝"ｈｔｔｐ：／／１９２．１６９．１００．１：８０／ｖｉｄｅｏ／ｓｔｒｅａｍ１／ｉｎｉｔ１．ｍｐ４"  ・・・式（５）
（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ５８３のメディアセグメントＵＲＩ）＝（ＭＰＤＢａｓｅＵＲＩ情報５９１）＋（ＲｅｐｒｅｓｅｎｔａｔｉｏｎＢａｓｅＵＲＩ情報５９４）＋（メディアセグメントＵＲＩ情報５９０）＝"ｈｔｔｐ：／／１９２．１６９．１００．１：８０／ｖｉｄｅｏ／ｓｔｒｅａｍ１／ｍｅｄｉａ１＿＄Ｎｕｍｂｅｒ＄．ｍ４ｓ"  ・・・式（６）
【００４７】
上記の式において、要素Ａ＋要素Ｂは、要素Ａの文字列の右側に要素Ｂの文字列を結合すること意味する。＄Ｎｕｍｂｅｒ＄は、テンプレート表現であり、メディアセグメントＵＲＩ情報５９０のｓｔａｒｔＮｕｍｂｅｒの値からメディアセグメントの映像の時系列順又は符号化順に評価値がインクリメントされていく。
実際の各メディアセグメントのＵＲＩは一例として以下のようになる。"ｈｔｔｐ：／／１９２．１６９．１００．１：８０／ｖｉｄｅｏ／ｓｔｒｅａｍ１／ｍｅｄｉａ１＿１．ｍ４ｓ"、"ｈｔｔｐ：／／１９２．１６９．１００．１：８０／ｖｉｄｅｏ／ｓｔｒｅａｍ１／ｍｅｄｉａ１＿２．ｍ４ｓ"、・・・。
【００４８】
送信部３０７が、このようなＭＰＤファイル５８０をクライアント装置１０２に送信することで、クライアント装置１０２は、情報生成装置１０１に対し初期化セグメント又はメディアセグメントの送信要求を次々に行うことが可能となる。例えば、まず、クライアント装置１０２は、初期化セグメントを取得し、映像再生のための初期化処理を行う。そして、クライアント装置１０２は、タイムスケール情報５８７、セグメント時間情報５８８に基づいたセグメント時間毎にメディアセグメントの送信要求を行って、順次、メディアセグメントを取得し映像を再生する。
【００４９】
図６は、第１の実施形態の情報生成装置１０１におけるプレイリスト送信処理を示すフローチャートである。なお、以下の説明では、図６のフローチャートの各ステップＳ６０１〜ステップＳ６０４をＳ６０１〜Ｓ６０４と略記する。このことは、後述する他のフローチャートにおいても同様とする。
この図６のフローチャートに示すプレイリスト送信処理は、時間取得部３０２が、受信部３０１からのプレイリスト送信要求受信通知を受け取ることにより開始する。
【００５０】
Ｓ６０１では、時間取得部３０２が、受信部３０１からのプレイリスト送信要求受信通知に含まれる単位時間情報から、セグメント時間の指定時間を取得する。そして、時間取得部３０２は、時間決定部３０３に対し、指定時間取得通知を送信する。
【００５１】
Ｓ６０２では、時間決定部３０３が、時間取得部３０２からの指定時間取得通知に含まれる指定時間を基に、セグメントの単位時間の候補であるセグメント時間を少なくとも一つ決定し、プレイリスト生成部３０４に対してセグメント時間決定通知を送信する。
【００５２】
Ｓ６０３では、プレイリスト生成部３０４が、時間決定部３０３からのセグメント時間決定通知が示すセグメント時間を記載したＭＰＤファイル５８０を生成し、そのＭＰＤファイル５８０を一次記憶装置２０２に保持する。そして、プレイリスト生成部３０４は、ＭＰＤファイル５８０をクライアント装置１０２に対して送信する送信指示を、送信部３０７に送る。
【００５３】
Ｓ６０４では、送信部３０７が、プレイリスト生成部３０４からのＭＰＤファイル５８０の送信指示に応答し、一次記憶装置２０２に保持されるＭＰＤファイル５８０のデータを取得してクライアント装置１０２に対して送信する。そして、ＭＰＤファイル５８０の送信が完了すると、情報生成装置１０１におけるプレイリスト送信処理は終了する。
【００５４】
図７は、時間決定部３０３におけるセグメント時間決定処理を示すフローチャートである。
Ｓ７０１において、時間決定部３０３は、時間取得部３０２からの指定時間取得通知に含まれる指定時間を超えない（フレーム周期）×（自然数ｎ）の最大値を算出する。つまり、時間決定部３０３は、クライアント装置１０２からの指定時間を超えないフレーム周期の整数倍の最大値をセグメント時間として算出する。セグメント時間は、下記の式（７）の条件を満たす数となる。
（セグメント時間）＝（データ生成部３０５のフレーム周期）×（自然数ｎ）≦（時間取得部３０２が取得した指定時間）、かつ、（時間取得部３０２が取得した指定時間）＜（データ生成部３０５のフレーム周期）×（ｎ＋１）  ・・・式（７）
【００５５】
例えば、時間取得部３０２が取得した指定時間が１５０［ミリ秒］であり、自然数ｎ＝３、データ生成部３０５のフレーム周期が４０［ミリ秒］である場合、式（７）により以下のような時間が算出される。
（セグメント時間）＝（フレーム周期の４０［ミリ秒］）×３＝１２０［ミリ秒］≦（指定時間の１５０［ミリ秒］）、かつ、（指定時間の１５０［ミリ秒］）＜（フレーム周期の４０［ミリ秒］）×４＝１６０［ミリ秒］
すなわちこの場合、セグメント時間としては１２０［ミリ秒］が算出される。
【００５６】
そしてＳ７０２において、時間決定部３０３は、Ｓ７０１にて算出した時間をセグメント時間として決定し、その決定したセグメント時間を示すセグメント時間決定通知を、プレイリスト生成部３０４に送信する。
【００５７】
このように、情報生成装置１０１は、クライアント装置１０２からのプレイリスト送信要求（つまりＭＰＤファイル５８０の送信要求）に含まれる単位時間情報からセグメントの単位時間を指定する指定時間を取得する。そして、情報生成装置１０１は、その指定時間を基に、クライアント装置１０２が所望するセグメント時間のセグメントを返信できるようにする。これにより、情報生成装置１０１は、クライアント装置１０２に対して、最小限の遅延で映像を送信することができることになる。
【００５８】
前述の例では、データ生成部３０５が映像フレームを生成するフレーム周期を４０［ミリ秒］としたが、フレーム周期は４０［ミリ秒］以外の時間でもよい。また、データ生成部３０５は単一のフレーム周期で映像フレームを生成するものとしたが、複数のフレーム周期の系列の映像フレームを同時に生成可能であってもよい。
【００５９】
またセグメント生成部３０６は、時間決定部３０３がセグメント時間を決定した時点でセグメントの生成を開始するものとしたが、それには限定されない。例えば、セグメント生成部３０６は、クライアント装置１０２がＭＰＤファイル５８０を取得してセグメントの送信要求を情報生成装置１０１に行った後に、セグメントの生成を開始するものとしてもよい。
【００６０】
また時間取得部３０２から時間決定部３０３に送られる指定時間取得通知が示す指定時間は、ミリ秒値としたが、例えば秒値でもよく、前述のセグメント時間情報５８８のようなｔｉｍｅｓｃａｌｅ基準の時間表現であってもよい。指定時間は、時間長表現ができるものであればこれらに限らない。
【００６１】
前述したように、時間決定部３０３は、指定時間を超えない（フレーム周期）×（自然数ｎ）の最大値をセグメント時間として決定するものとしたが、以下の方法（ａ）〜方法（ｄ）のようにしてセグメント時間を決定してもよい。
【００６２】
方法（ａ）：時間決定部３０３は、時間取得部３０２からの指定時間取得通知に含まれる指定時間以上の（フレーム周期）×（自然数ｎ）の最小値、つまり指定時間以上のフレーム周期の整数倍の最小値を、セグメント時間として決定する。
【００６３】
方法（ｂ）：時間決定部３０３は、任意データのパケットを送信部３０７が送信してクライアント装置１０２からの応答を受信部３０１が受信するまでの時間によりメディアセグメントの送信遅延時間を推定する。さらに、時間決定部３０３は、送信遅延時間以上の任意の時間を最短待ち時間とし、セグメント時間の所定の閾値として設定する。そして、時間決定部３０３は、時間取得部３０２からの指定時間取得通知に含まれる指定時間が閾値以下つまり最短待ち時間以下の場合に、その閾値つまり最短待ち時間をセグメント時間として決定する。
【００６４】
方法（ｃ）：時間決定部３０３は、データ生成部３０５のフレーム周期または時間決定部３０３が決定するセグメント時間に関わらず、セグメント生成部３０６がセグメントを生成するのに最低限所要する時間以上の任意の時間を最短待ち時間とする。つまり、最短待ち時間を、セグメント時間の所定の閾値として設定する。そして、時間決定部３０３は、時間取得部３０２からの指定時間取得通知に含まれる指定時間が最短待ち時間以下つまり閾値以下の場合に、その閾値つまり最短待ち時間をセグメント時間として決定する。
【００６５】
方法（ｄ）：時間決定部３０３は、データ生成部３０５で連続的に生成される映像フレームにおいて他のフレームを用いずに復号可能な独立フレームが生成されてから、次の独立フレームが生成されるまでの時間を最長待ち時間として所定の閾値に設定する。例えばＧＯＰにおいて取り得る最長待ち時間が閾値として設定される。そして、時間決定部３０３は、時間取得部３０２からの指定時間取得通知に含まれる指定時間が閾値以上つまり最長待ち時間以上の場合に、その閾値つまり最長待ち時間をセグメント時間として決定する。
【００６６】
前述した方法（ａ）〜方法（ｄ）のうち、方法（ｂ）〜方法（ｄ）によれば、時間決定部３０３は、セグメント生成部３０６がセグメントを生成するのに所要する上限値または下限値の時間を所定の閾値として設定している。そして、時間決定部３０３は、時間取得部３０２からの指定時間取得通知に含まれる指定時間と、所定の閾値とを比較し、その比較結果を基に、所定の閾値をセグメント時間に決定するかどうかを判断するようなことが行われている。
【００６７】
また情報生成装置１０１は、前述した指定時間を超えない（フレーム周期）×（自然数ｎ）の最大値や方法（ａ）〜方法（ｄ）のようなそれぞれ異なる方法で決定した複数のセグメント時間を、セグメント時間の候補としてもよい。それらそれぞれ異なる方法で決定したセグメント時間を、異なる複数のＲｅｐｒｅｓｅｎｔａｔｉｏｎまたはＡｄａｐｔａｔｉｏｎＳｅｔがセグメント時間情報としてＭＰＤファイルに含めるようにしてもよい。さらに、時間決定部３０３が複数のセグメント時間を決定し、セグメント生成部３０６はそれら複数のセグメント時間の各セグメントを同時に生成可能となされていてもよい。この場合、クライアント装置１０２は、複数のセグメント時間の候補を含んだＭＰＤファイルから、自身の表示性能や通信状況に応じた適切なセグメント時間を基に生成されるセグメントの送信要求を、情報生成装置１０１に送信すればよい。
【００６８】
また、データ生成部３０５では、一定のフレーム周期を持たずに不定の時間間隔で映像フレーム（不定周期映像フレームとする。）を生成することも可能である。この場合、セグメント生成部３０６は、時間決定部３０３が決定したセグメント時間に対し、不定周期映像フレームを含むメディアセグメントを生成するものとしてもよい。
【００６９】
また前述の例では、指定時間や決定したセグメント時間は、フレーム周期の整数倍としたが、例えば一部のフレームの表示時間をセグメントのヘッダ部内の情報等で調整し、フレーム周期の整数倍でないセグメント時間のセグメントを生成可能としてもよい。
またセグメント時間は、メディアデータのストリーム毎に決定されてもよい。
またセグメント生成部３０６が生成するセグメントは映像データを含むものとしたが、セグメント生成部３０６は音声データを含むメディアセグメントを生成可能としてもよい。
【００７０】
前述の例では、情報生成装置１０１は、データ生成部３０５、セグメント生成部３０６の機能を含むものとしたが、例えばこれらの機能を持つ他の装置と通信を行うことで、これらの機能を含まないような構成となされていてもよい。この場合の情報生成装置１０１は、受信部３０１、時間取得部３０２、時間決定部３０３、プレイリスト生成部３０４、送信部３０７のみを有し、プレイリストを生成するものとしてもよい。
【００７１】
前述したように、第１の実施形態においては、クライアント装置１０２から所望されるセグメント時間（指定時間）に基づき、情報生成装置１０１が送信可能なセグメント時間を決定してクライアント装置１０２に対し提示する。これにより、本実施形態によれば、再生遅延を最小限にしながら途切れることなくセグメントを再生することが可能となる。
【００７２】
＜第２の実施形態＞
以下、第２の実施形態の情報生成装置１０１について説明する。第２の実施形態の情報生成装置１０１の構成は前述した第１の実施形態の例と同様であるため、その構成等の図示を省略する。
第２の実施形態では、主に第１の実施形態とは異なる部分について説明を行う。
図８は、第２の実施形態において、データ生成部３０５が映像フレームを生成可能なフレーム周期のリスト（フレーム周期リスト８００）の一例を示した図である。
【００７３】
データ生成部３０５は、フレーム周期リスト８００を作成し二次記憶装置２０３にて保持することを可能とする。図８に示したフレーム周期リスト８００は、データ生成部３０５が、フレーム周期８０１、８０２、８０３にそれぞれ対応する、４０［ミリ秒］、８０［ミリ秒］、１２０［ミリ秒］のフレーム周期で映像フレームを生成可能であることを示している。フレーム周期リスト８００はこの例に限らず、データ生成部３０５が生成可能なフレーム周期を示すことが可能なものであればどのようなものでもよい。
【００７４】
図９は、第２の実施形態の時間決定部３０３におけるセグメント時間決定処理を示すフローチャートである。第２の実施形態においては、第１の実施形態における図６のフローチャートのＳ６０２のセグメント時間決定処理を、図９のフローチャートの処理に代えて行うものとする。
【００７５】
まず、時間決定部３０３は、フレーム周期リスト８００が示す各フレーム周期について、Ｓ９０１からＳ９０４までのループ処理を開始する。時間決定部３０３は、フレーム周期リスト８００に含まれる全てのフレーム周期についての処理が終了すると、Ｓ９０１からＳ９０４までのループ処理を終了し、セグメント時間決定通知を行った後にセグメント時間決定処理を終了する。
【００７６】
Ｓ９０１からＳ９０４までのループ処理では、時間決定部３０３は、まずＳ９０２の処理として、時間取得部３０２からの指定時間取得通知における指定時間が、フレーム周期リスト８００に含まれるフレーム周期以下であるかどうかを判定する。時間決定部３０３は、指定時間がフレーム周期リスト８００に含まれるフレーム周期以下であると判定した場合には処理をＳ９０３に進め、指定時間がフレーム周期リスト８００に含まれるフレーム周期を超過していると判定した場合には処理をＳ９０４に進める。本実施形態において、例えば指定時間を１００［ミリ秒］とした場合、時間決定部３０３は、フレーム周期８０１、８０２に対しては処理をＳ９０３進め、フレーム周期８０３に対しては処理をＳ９０４に進めることとなる。指定時間は、１００［ミリ秒］以外でもよい。
【００７７】
Ｓ９０３に進むと、時間決定部３０３は、時間取得部３０２からの指定時間取得通知が示す指定時間に基づいてセグメント時間を決定する。セグメント時間の算出方法としては、例えば第１の実施形態で述べた各種の方法を用いることができる。時間決定部３０３において、例えば指定時間を超えない（フレーム周期）×（自然数ｎ）の最大値をセグメント時間に決定する場合、フレーム周期８０１に対するセグメント時間は式（８）、フレーム周期８０２に対するセグメント時間は式（９）で決定される。
【００７８】
（セグメント時間）＝（フレーム周期８０１の４０［ミリ秒］）×２＝８０［ミリ秒］＜１００［ミリ秒］  ・・・式（８）
（セグメント時間）＝（フレーム周期８０２の８０［ミリ秒］）×１＝８０［ミリ秒］＜１００［ミリ秒］  ・・・式（９）
Ｓ９０３にて各フレーム周期について決定されたセグメント時間は、各フレーム周期と対応付けた情報として一次記憶装置２０２にて保持される。
【００７９】
Ｓ９０４に進むと、時間決定部３０３は、フレーム周期リスト８００が示すフレーム周期についてのループ処理が続く場合には、Ｓ９０２の処理に戻る。そして、フレーム周期リスト８００が示すフレーム周期のループ処理が終わった場合、時間決定部３０３は、Ｓ９０５に処理を進める。
Ｓ９０５に進むと、時間決定部３０３は、セグメント時間を示すセグメント時間決定通知をプレイリスト生成部３０４に送信し、セグメント時間決定処理を終了する。
【００８０】
図１０は、第２の実施形態の情報生成装置１０１がクライアント装置１０２に送信するプレイリストとしてのＭＰＤファイル１０００の構成の一例を示す図である。
プレイリスト生成部３０４は、セグメント時間決定通知が示すセグメント時間を基に、一次記憶装置２０２に保持しているセグメント時間が対応付けられたフレーム周期毎にＲｅｐｒｅｓｅｎｔａｔｉｏｎを一つ作成し、ＭＰＤファイル１０００を作成する。
【００８１】
ＭＰＤファイル１０００では、ＡｄａｐｔａｔｉｏｎＳｅｔ１００１内に、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ１００２、１００３の２つのＲｅｐｒｅｓｅｎｔａｉｏｎが定義される。
Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ１００２は、フレーム周期８０１に対応するフレームレート情報１００４を含む。これによりクライアント装置１０２は、タイムスケール情報１００５及びセグメント時間情報１００６と下記の式（１０）とを用いることにより、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ１００２のメディアセグメントのセグメント時間を算出することができる。
【００８２】
（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ１００２のセグメント時間）＝（セグメント時間情報１００６）／（タイムスケール情報１００５）＝２００／２５００［秒］＝８０［ミリ秒］  ・・・式（１０）
【００８３】
Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ１００３は、フレーム周期８０２に対応するフレームレート情報１００７を含む。これによりクライアント装置１０２は、タイムスケール情報１００８及びセグメント時間情報１００９と下記の式（１１）とを用いることにより、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ１００３のメディアセグメントのセグメント時間を算出することができる。
【００８４】
（Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ１００３のセグメント時間）＝（セグメント時間情報１００９）／（タイムスケール情報１００８）＝２００／２５００［秒］＝８０［ミリ秒］  ・・・式（１１）
【００８５】
このようなＭＰＤファイル１０００を取得したクライアント装置１０２は、表示性能や通信状況に応じた適切なＲｅｐｒｅｓｅｎｔａｔｉｏｎを、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ１００２及び１００３から選択する。これにより、情報生成装置１０１に対し初期化セグメント又はメディアセグメントの送信要求を行うことが可能となる。
【００８６】
このように、第２の実施形態の情報生成装置１０１は、データ生成部３０５が映像フレームを生成可能である各フレーム周期と、プレイリスト送信要求に含まれるセグメントの単位時間の指定時間とを比較する。そして、情報生成装置１０１は、データ生成部３０５が映像フレームを生成可能な各フレーム周期について、クライアント装置１０２が所望するセグメント時間のセグメントを返信できるようにしている。これにより、情報生成装置１０１は、クライアント装置１０２に対して、最小限の遅延を可能とするフレームレートでの映像送信を可能とする。
【００８７】
なお、時間決定部３０３は、フレーム周期が指定時間を超過するものについてはセグメント時間の決定を行わないものとしたが、そのようなフレーム周期に対しては、例えば第１の実施形態の方法（ａ）〜方法（ｄ）を用いてセグメント時間を決定してもよい。この場合も時間決定部３０３は、フレーム周期とセグメント時間を対応付けた情報として一次記憶装置２０２にて保持するものとしてもよい。
【００８８】
また、データ生成部３０５は、フレーム周期リスト８００が示す各フレーム周期の映像データを同時に生成可能であってもよく、単一のフレーム周期の系列の映像フレームしか同時に生成できなくてもどちらでもよい。この場合、受信部３０１は、クライアント装置１０２からセグメントの送信要求を受信した後、その要求されたセグメントが一次記憶装置２０２に保持されたＭＰＤファイル１０００に記述されているいずれのＲｅｐｒｅｓｅｎｔａｔｉｏｎのものかを判別する。そして、データ生成部３０５は、受信部３０１により判別されたＲｅｐｒｅｓｅｎｔａｔｉｏｎのフレームレート情報に対応するフレーム周期で映像フレームの生成を開始するものとしてもよい。
【００８９】
セグメント生成部３０６は、時間決定部３０３がセグメント時間を決定した時点でセグメントの生成を開始するものとしたが、Ｒｅｐｒｅｓｅｎｔａｔｉｏｎに含まれるセグメント時間情報に対応するセグメント時間でセグメントを生成開始するものとしてもよい。この場合、受信部３０１は、クライアント装置１０２からセグメントの送信要求を受信した後、その要求されたセグメントが一次記憶装置２０２に保持されているＭＰＤファイル１０００に記述されたいずれのＲｅｐｒｅｓｅｎｔａｔｉｏｎのものかを判別する。そして、セグメント生成部３０６は、受信部３０１により判別されたＲｅｐｒｅｓｅｎｔａｔｉｏｎに含まれるセグメント時間情報に対応するセグメント時間でセグメントの生成を開始するものとしてもよい。
【００９０】
セグメント生成部３０６は、複数のセグメント時間の系列のセグメントを同時に生成可能であってもよく、単一のセグメント時間の系列のセグメントしか同時に生成できなくてもどちらでもよい。例えば後者の場合、受信部３０１がクライアント装置１０２からセグメントの送信要求を受信してから、そのセグメントに対応するＲｅｐｒｅｓｅｎｔａｔｉｏｎのフレーム周期で、データ生成部３０５が映像フレームの生成を開始するものとしてもよい。
【００９１】
＜第３の実施形態＞
以下、第３の実施形態の情報処理装置について説明する。第３の実施形態の情報処理装置は図１のクライアント装置１０２であり、自らがセグメント時間を決定して、情報生成装置１０１側に伝えることを可能とした場合の例である。第３の実施形態の場合、図１の情報生成装置１０１は、前述した実施形態で説明したようなセグメント時間の決定処理を行わず、クライアント装置１０２が自ら決定して送信してきたセグメント時間の情報を受信する。そして、情報生成装置１０１は、クライアント装置１０２から送信されてきたセグメント時間に応じたセグメントのデータを生成して、そのクライアント装置１０２に送信する。
【００９２】
図１１は、第３の実施形態におけるクライアント装置１０２のハードウェア構成例を示した図である。
第３の実施形態のクライアント装置１０２は、ＣＰＵ１１０１、一次記憶装置１１０２、二次記憶装置１１０３、操作Ｉ／Ｆ１１０５、出力Ｉ／Ｆ１１０６、ネットワークＩ／Ｆ１１０７を有し、それらが内部バス１１０４を介して相互に接続されている。またクライアント装置１０２の出力Ｉ／Ｆ１１０６には、表示装置や音声出力装置等の再生装置１１１０が接続されているとする。
【００９３】
一次記憶装置１１０２は、ＲＡＭ等の書き込み可能な高速の記憶装置であり、ＯＳや各種プログラムおよび各種データがロードされ、それらの作業領域として使用される。二次記憶装置１１０３は、フラッシュメモリ、ＨＤＤ、ＳＤカード等の不揮発性記憶装置であり、ＯＳや各種プログラムおよび各種データの永続的な記憶領域として使用され、また短期的な各種データの記憶領域としても使用される。
【００９４】
ＣＰＵ１１０１は、二次記憶装置１１０３に記憶されているプログラムを一次記憶装置１１０２に展開して実行することにより、第３の実施形態に係るクライアント装置１０２の処理を行う。操作Ｉ／Ｆ１１０５は、本実施形態のクライアント装置１０２に対してユーザが各種指示を入力するためのインタフェースである。ネットワークＩ／Ｆ１１０７は、ネットワーク１０３を介して情報生成装置１０１に接続するインタフェースであり、情報生成装置１０１との通信を担う。
【００９５】
図１２は、第３の実施形態に係るクライアント装置１０２の機能構成例を示す図である。
第３の実施形態のクライアント装置１０２は、通信部１２０１、周期取得部１２０２、時間取得部１２０３、時間決定部１２０４、セグメント処理部１２０５、および再生処理部１２０６を有する。これら通信部１２０１〜再生処理部１２０６は、図１１のＣＰＵ１１０１がプログラムを実行することにより機能する処理部である。
【００９６】
第３の実施形態の場合、周期取得部１２０２は、情報生成装置１０１が生成するメディアデータの最小単位であるフレーム周期を示す情報の取得要求コマンドを、通信部１２０１を介して情報生成装置１０１に送る。なお、フレーム周期を示す情報の取得要求は、プレイリスト送信要求コマンドに先立って送信することが望ましい。そして、周期取得部１２０２は、その送信要求に対するレスポンスとして情報生成装置１０１から送信されたフレーム周期を示す情報を、通信部１２０１を介して取得する。
【００９７】
時間取得部１２０３は、クライアント装置１０２の表示性能や処理性能、通信状況等に基づいて、セグメントの単位時間を指定する指定時間を示す情報を取得する。第３の実施形態において、時間取得部１２０３が取得する指定時間の情報は、前述した実施形態の情報生成装置１０１の時間取得部３０２が取得する単位時間情報に含まれる指定時間と同様の情報である。指定時間は、例えば前述した時間長方式やフレーム数方式により表現可能な時間であってもよい。
【００９８】
時間決定部１２０４は、フレーム周期および指定情報の情報を基に、情報生成装置１０１が生成するセグメントの単位時間の候補であるセグメント時間を少なくとも一つ決定する。第３の実施形態において、時間決定部１２０４が決定するセグメント時間は、前述した第１の実施形態あるいは第２の実施形態で決定されるのと同様のセグメント時間である。そして、クライアント装置１０２は、その決定したセグメント時間を示す情報を、例えばプレイリスト送信要求のコマンドに含め、通信部１２０１を介して情報生成装置１０１に対して送信する。
【００９９】
クライアント装置１０２は、前述したセグメント時間を含むプレイリスト送信要求のコマンド送信後、そのセグメント時間を基に情報生成装置１０１が生成して送信したセグメントのデータを、通信部１２０１を介して受信する。
セグメント処理部１２０５は、通信部１２０１が受信したセグメントのデータを復号化し、その復号化後のフレームのデータを結合等してメディアデータを復元する処理を行う。
再生処理部１２０６は、セグメント処理部１２０５にて復元されたメディアデータを基に、図１１の再生装置１１１０において再生される映像や音声のデータを生成する再生処理を行う。
【０１００】
図１３は、第３の実施形態のクライアント装置１０２における主要な処理の流れを示したフローチャートである。この図１３のフローチャートの処理は、情報生成装置１０１に対して例えばプレイリスト送信要求の送信する前に行われるとする。
【０１０１】
Ｓ１３０１では、周期取得部１２０２が、前述したフレーム周期取得要求のレスポンスとして情報生成装置１０１から送信されてきたフレーム周期を示す情報を、通信部１２０１を介して取得する。
Ｓ１３０２では、時間取得部１２０３が、クライアント装置１０２の表示性能や処理性能、通信状況等を基に、セグメントの単位時間を指定する指定時間の情報を取得する。
Ｓ１３０３では、時間決定部１２０４が、フレーム周期および指定時間の情報を基に、情報生成装置１０１が生成するセグメントの単位時間の候補であるセグメント時間を少なくとも一つ決定する。
Ｓ１３０４では、Ｓ１３０３で決定されたセグメント時間を示す情報を、通信部１２０１が、例えばプレイリスト送信要求のコマンドに含めて情報生成装置１０１に対して送信する。そして、セグメント時間を含むプレイリスト送信要求コマンドの送信が完了すると、クライアント装置１０２は、情報生成装置１０１からプレイリストが送信されてくるのを待つ状態となる。
【０１０２】
＜その他の実施形態＞
なお、クライアント装置１０２は、情報生成装置１０１からプレイリストであるＭＰＤを取得した後、そのＭＰＤに記述されたフレーム周期を設定・変更等することも可能である。この場合、クライアント装置１０２は、フレーム周期を変更等した場合、その変更等した内容を、例えばメディアセグメントの送信要求コマンドに含めて情報生成装置１０１側に返送する。これにより、情報生成装置１０１は、変更等されたフレーム周期に応じたセグメントのデータを生成して、クライアント装置１０２に送信する。
【０１０３】
また、情報生成装置１０１は、第３の実施形態のようにクライアント装置１０２側でセグメント時間の決定が行われたかどうかを検出可能であってもよい。情報生成装置１０１は、クライアント装置１０２側でセグメント時間の決定されていないことを検出した場合には、自身がセグメント時間を決定する処理を行うようにしてもよい。クライアント装置１０２側でセグメント時間の決定が行われたかどうかは、例えばｆｏｒｃｅオプションや、クライアント装置１０２から送られてきた指定時間の値がフレームレートに対して正確であるか否か等により検出することができる。
【０１０４】
また、前述した各実施形態では、ＤＡＳＨ配信を例に説明したが、ＨＬＳ配信など他のアダプティブストリーミング技術にも本発明は適用可能である。
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
なお、前述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１０５】
１０１：情報生成装置、３０１：時間取得部、３０２：時間決定部、３０３：プレイリスト生成部、３０４：プレイリスト生成部、３０５：データ生成部、３０６：セグメント生成部、３０７：送信部、１０２：クライアント装置、１０３：ネットワーク
【図１】
2020022106.tif 000003
【図２】
2020022106.tif 000004
【図３】
2020022106.tif 000005
【図４】
2020022106.tif 000006
【図５】
2020022106.tif 000007
【図６】
2020022106.tif 000008
【図７】
2020022106.tif 000009
【図８】
2020022106.tif 000010
【図９】
2020022106.tif 000011
【図１０】
2020022106.tif 000012
【図１１】
2020022106.tif 000013
【図１２】
2020022106.tif 000014
【図１３】
2020022106.tif 000015