(57)【要約】【課題】複数の投影方式が存在する画像データをクライアントに適した投影方式で投影した上で提供できるようにする技術を提供する。【解決手段】複数の投影方式が存在する画像データをサーバ装置から受信する情報処理装置は、画像データのプッシュ送信を指示するためのプッシュ指示を生成する生成手段と、プッシュ指示をサーバ装置へ送信する送信手段と、プッシュ指示に応じてサーバ装置からプッシュ送信された画像データに係るセグメントを受信する受信手段とを備え、生成手段は、情報処理装置が再生可能な投影方式に関する情報を含むプッシュ指示を生成する。【選択図】  図１０
2018049386.tif 000002
【特許請求の範囲】
【請求項１】
複数の投影方式が存在する画像データをサーバ装置から受信する情報処理装置であって、
前記画像データのプッシュ送信を指示するためのプッシュ指示を生成する生成手段と、
前記プッシュ指示を前記サーバ装置へ送信する送信手段と、
前記プッシュ指示に応じて前記サーバ装置からプッシュ送信された前記画像データに係るセグメントを受信する受信手段と
を備え、
前記生成手段は、前記情報処理装置が再生可能な投影方式に関する情報を含むプッシュ指示を生成する
ことを特徴とする情報処理装置。
【請求項２】
前記受信手段は、前記サーバ装置から、前記投影方式により二次元平面に投影された前記画像データのセグメントを受信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置が再生可能な少なくとも１つの投影方式を取得する取得手段をさらに備え、
前記生成手段は、前記少なくとも１つの投影方式に含まれる投影方式に関する情報を含むプッシュ指示を生成する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記受信手段が受信した前記画像データに係るセグメントを、前記情報処理装置が再生可能な投影方式に基づきレンダリングするレンダリング手段と、
レンダリングされた前記セグメントを表示手段に表示させる表示制御手段と
をさらに備えることを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記画像データは、三次元空間の全方位に画像を有する全天周画像の画像データであり、
前記投影方式には、前記全天周画像を円筒、多面体、又は、円錐に投影して二次元平面に展開する方式が含まれる
ことを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記生成手段は、前記情報処理装置が全天周画像を再生可能でないときは、二次元画像の画像データに係るセグメントのプッシュ送信を指示するためのプッシュ指示を生成することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記生成手段は、ＭＰＤ（Ｍｅｄｉａ  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ）により記述された前記プッシュ指示を生成することを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記生成手段は、前記画像データの注目領域を示す情報をさらに含むプッシュ指示を生成し、
前記受信手段は、前記プッシュ指示に応じて前記サーバ装置からプッシュ送信された前記注目領域に係るセグメントを受信する
ことを特徴とする請求項１から７のいずれか１項に記載の情報処理装置。
【請求項９】
複数の投影方式が存在する画像データをクライアント装置へプッシュ送信する情報処理装置であって、
前記画像データのプッシュ送信を指示するためのプッシュ指示を受信する通信手段と、
前記通信手段により前記プッシュ指示を受信したことに応じて、前記画像データに係るセグメントを前記クライアント装置へプッシュ送信するように前記通信手段を制御する制御手段と
を備え、
前記制御手段は、前記クライアント装置が再生可能な投影方式に関する情報が前記プッシュ指示に含まれる場合に、当該投影方式により二次元平面に投影された前記画像データのセグメントを前記クライアント装置へプッシュ送信するように前記通信手段を制御する
ことを特徴とする情報処理装置。
【請求項１０】
前記画像データは、三次元空間の全方位に画像を有する全天周画像の画像データであり、
前記投影方式には、前記全天周画像を円筒、多面体、又は、円錐に投影して二次元平面に展開する方式が含まれる
ことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記制御手段は、受信した前記プッシュ指示が、二次元画像の画像データに係るセグメントのプッシュ送信を指示するものであるときは、当該二次元画像の画像データのセグメントを前記クライアント装置へプッシュ送信するように前記通信手段を制御することを特徴とする請求項９又は１０に記載の情報処理装置。
【請求項１２】
前記通信手段は、ＭＰＤ（Ｍｅｄｉａ  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ）により記述されたプッシュ指示を受信することを特徴とする請求項９から１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記制御手段は、前記画像データの注目領域を示す情報が前記プッシュ指示に含まれる場合に、当該注目領域に係るセグメントを前記クライアント装置へプッシュ送信するように前記通信手段を制御することを特徴とする請求項９から１２のいずれか１項に記載の情報処理装置。
【請求項１４】
複数の投影方式が存在する画像データをサーバ装置から受信する情報処理装置の制御方法であって、
前記画像データのプッシュ送信を指示するためのプッシュ指示を生成する生成工程と、
前記プッシュ指示を前記サーバ装置へ送信する送信工程と、
前記プッシュ指示に応じて前記サーバ装置からプッシュ送信された前記画像データに係るセグメントを受信する受信工程と
を備え、
前記生成工程においては、前記情報処理装置が再生可能な投影方式に関する情報を含むプッシュ指示を生成する
ことを特徴とする情報処理装置の制御方法。
【請求項１５】
複数の投影方式が存在する画像データをクライアント装置へプッシュ送信する、通信手段を備えた情報処理装置の制御方法であって、
前記画像データのプッシュ送信を指示するためのプッシュ指示を前記通信手段により受信する受信工程と、
前記通信手段により前記プッシュ指示を受信したことに応じて、前記画像データに係るセグメントを前記クライアント装置へプッシュ送信するように前記通信手段を制御する制御工程と
を備え、
前記制御工程においては、前記クライアント装置が再生可能な投影方式に関する情報が前記プッシュ指示に含まれる場合に、当該投影方式により二次元平面に投影された前記画像データのセグメントを前記クライアント装置へプッシュ送信するように前記通信手段を制御する
ことを特徴とする情報処理装置の制御方法。
【請求項１６】
コンピュータを請求項１から１３のいずれか１項に記載の情報処理装置が備える各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置及びその制御方法、コンピュータプログラムに関し、特に、画像データの送信技術に関する。
【背景技術】
【０００２】
近年、全天周撮像装置により撮像された全天周映像データを、ユーザへリアルタイムに配信する配信システムが提供されている。特許文献１には、ＨＴＴＰストリーミング技術を活用して、３６０度の全天周映像データの配信を行うシステムが記載されている。
【０００３】
一方で、ＨＴＴＰ／２などのプロトコルは、サーバが主導でクライアントへデータをプッシュ送信する手順について規定している。これを、ＨＴＴＰストリーミングに適用し、セグメントに対する個別的なリクエストを受信しなくてもクライアントの再生に必要なセグメントをプッシュ送信することで、再生までの遅延を低減することが知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１０５５９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
全天周映像データを送信する場合、サーバは、全天周映像データを二次元平面上に投影（展開）して、配信するセグメントを生成することができる。全天周映像データを二次元平面上に投影する方式としては、複数の方式が存在する。
【０００６】
クライアントによっては、特定の投影方式で投影された全天周映像データの表示処理に対応していない場合がありうる。そのため、サーバが全天周映像データをプッシュ送信してもクライアントが再生できないという課題があった。また、クライアントによっては、サーバによって特定の投影方式で投影された全天周映像データを他の投影方式で投影された全天周映像データに変換する処理に対応していない場合がありうる。そのような場合も、クライアントは、所望の投影方式で投影された全天周映像データを表示することができない。たとえクライアントが、サーバによって特定の投影方式で投影された全天周映像データを他の投影方式で投影された全天周映像データに変換することが可能だったとしても、その変換処理には負荷がかかってしまう。また、投影（展開）されていない全天周映像データの受信をクライアントが望んでいるにも関わらず、サーバが特定の投影方式で投影された全天周映像データを送信してしまうというケースも考えられる。
【０００７】
なお、上記のような課題は、全天周映像データ以外の映像データを送信する場合においても発生しうる。例えば、魚眼レンズで撮影された映像データや、超広角レンズで撮影された映像データについても、その投影方式（展開方式）は、複数存在する。また、全天周映像データのうち、一部の領域の映像データが除かれた部分全天周映像データについても、同様の課題が発生する。複数の投影方式が存在するということは、複数の表示形式が存在するというように言い換えることも可能である。
【０００８】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、複数の投影方式が存在する画像データをクライアントに適した形式で提供できるようにする技術を提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明による情報処理装置は以下の構成を備える。即ち、
複数の投影方式が存在する画像データをサーバ装置から受信する情報処理装置であって、
前記画像データのプッシュ送信を指示するためのプッシュ指示を生成する生成手段と、
前記プッシュ指示を前記サーバ装置へ送信する送信手段と、
前記プッシュ指示に応じて前記サーバ装置からプッシュ送信された前記画像データに係るセグメントを受信する受信手段と
を備え、
前記生成手段は、前記情報処理装置が再生可能な投影方式に関する情報を含むプッシュ指示を生成する
ことを特徴とする情報処理装置。
【発明の効果】
【００１０】
本発明によれば、複数の投影方式が存在する画像データをクライアントに適した形式で提供することができる。
【図面の簡単な説明】
【００１１】
【図１】全天周映像データの投影方式の一例を説明する図である。
【図２】システム構成図である。
【図３】クライアントのハードウェア構成例を示すブロック図である
【図４】クライアントの機能構成例を示すブロック図である
【図５】サーバのハードウェア構成例を示すブロック図である
【図６】サーバの機能構成例を示すブロック図である
【図７】プッシュ指示の一例である。
【図８】MPEG-DASHのMPDファイルの記述方式の一例を示す図である。
【図９】プッシュ応答の一例である。
【図１０】クライアントの動作を示すフローチャートである
【図１１】サーバの動作を示すフローチャートである
【図１２】シーケンスを表すシーケンス図である
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態に係る通信装置、通信システムについて、添付の図面を参照しながら詳細に説明する。なお、以下の実施形態は特許請求の範囲に関る本発明を限定するものではなく、また、以下の実施形態で説明されている特徴の組み合わせの全てが本発明に必須のものとは限らない。
【００１３】
（全天周映像データ）
図１は、全天周映像データ及びその投影方式の例を示す図である。全天周映像データは、図１（ａ）の１００１に示すように、原点Ｏ（１００３）を中心とした、周囲（方位角φ＝０°〜３６０°、仰角θ＝−９０°〜９０°）の範囲を撮像した映像データである。全周囲映像データは、全方位映像データ、Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ（ＶＲ）映像データ、３６０°映像データや、その他異種の呼び方があるが、これらの呼び方に関わらず、本実施形態の構成は適用可能である。なお、本実施形態では三次元空間の全方位に画像を有する全天周画像の画像データとして、映像（動画）を配信する例を説明するが、静止画像を配信するようにしてもよい。すなわち、本実施形態では、全天周映像データという表現を用いて説明するが、この全天周映像データは、映像（動画）であっても、静止画であっても良い。
【００１４】
また、本実施形態の構成が適用することができる映像データの範囲は、１００１で示されるような、方位角φ＝０°〜３６０°、仰角θ＝−９０°〜９０°の映像データに限定されない。例えば、方位角φ＝０°〜３６０°、仰角θ＝０°〜９０°の半球や、その他の任意の方位角、仰角の値を取る映像データに対しても、本実施形態の構成は適用可能である。また、右目用データ、左目用データ、立体視用データなどの全天周映像データに対しても、本実施形態の構成は適用することができる。
【００１５】
撮像された全天周映像データを配信する場合、全天周映像データを二次元平面上に展開する投影処理が行われる。全天周映像データを二次元平面上に投影する方式は、複数の方式が存在する。図１（ｂ）の１００５は、全天周映像データ１００４を円筒に投影して二次元平面上に展開する、正距円筒図法（Ｅｑｕｉｒｅｃｔａｎｇｕｌａｒ）を示している。図１（ｃ）の１００７は、全天周映像データ１００４を、直方体１００６に投影し、その直方体１００６を二次元平面に展開する投影方式（Ｃｕｂｅ）を示している。図１（ｄ）の１００９は、全天周映像データ１００４を、ピラミッド型の正四角錐（Ｐｙｒａｍｉｄ）１００８に投影し、その正四角錐に投影された全天周映像データを二次元平面に展開する投影方式を示している。このように、全天周画像の展開方式には、全天周画像を円筒、多面体、円錐などに投影して二次元平面に展開する方式が含まれうる。本実施形態は、全天周映像データの投影方式の種類に関わらず適用可能である。つまり、図１に例示した全天周投影方式の例以外の、魚眼、円錐、正多面体などのその他の投影方式に対しても、本実施形態の構成は適用可能である。
【００１６】
一方で、全天周映像データを再生する場合、二次元平面上に展開された全天周映像データに対して、レンダリング処理を行う。
【００１７】
投影処理が行われた全天周映像データは、符号化処理が行われる。本実施形態は、ＨＥＶＣ、ＡＶＣやＶＰ８、ＶＰ９やその他異種の符号化方式であっても適用可能である。ＨＥＶＣはＨｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇの略称であり、ＡＶＣはＡｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇの略称である。
【００１８】
また、本実施形態における全天周映像データは複数のタイルに分割されていてもよい。全天周映像データをタイルに分割して符号化する方式には、個々のタイルを個別に符号化する方式や、タイル符号化を用いて符号化する方式あるが、符号化のやり方に関わらず本実施形態は適用可能である。
【００１９】
本実施形態は、スケーラブル符号化方式であるＬＨＥＶＣ、ＳＶＣ、ＭＶＣや、その他異種のスケーラブル符号化方式や階層符号化方式であっても適用可能である。ＬＨＥＶＣはＬａｙｅｒｅｄ  ＨＥＶＣの略称であり、ＳＶＣはＳｃａｌａｂｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇの略称であり、ＭＶＣはＭｕｌｔｉｖｉｅｗ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇの略称である。なお、階層符号化を適用する場合、レイヤ数は２つ以上であっても、本実施形態は適用可能である。
【００２０】
また、階層化とタイル化を組み合わせて適用してもよい。例えば、低画質であるベースレイヤはタイル化せず全天周映像データの全領域を含むように符号化し、高画質であるエンハンスメントレイヤはタイル化を行う。符号化処理が行われた全天周映像データは、動画コンテナに格納される。本実施形態は、ＩＳＯＢＭＦＦ、ＨＥＶＣ  ＦｉｌｅＦｏｒｍａｔ、ＭＰＥＧ２-ＴＳ、ＣｏｍｍｏｎＭｅｄｉａＡｐｐｌｉｃａｔｉｏｎＦｏｒｍａｔ、ＷｅｂＭや、その他異種の動画コンテナフォーマットであっても適用可能である。ＩＳＯＢＭＦＦのＢＭＦＦはＢａｓｅ  Ｍｅｄｉａ  Ｆｉｌｅ  Ｆｏｒｍａｔの略称である。
【００２１】
全天周映像データは、動画コンテナフォーマットに格納される際に、複数の動画ファイルに分割されるセグメント化が行われる。なお、本実施形態において、サーバに格納されている映像データは、複数のファイルにセグメント化されているが、これに限らず単一のファイルに格納されていてもよい。単一のファイルに格納されている場合、クライアントはそのファイルの特定の範囲（バイトレンジ）を指定してセグメントの取得を行う。また、二次元平面上に投影した全天周映像データを、複数の領域に分割し、それぞれの領域毎に、符号化、動画コンテナへの格納、及び、セグメント化を行ってもよい。なお、セグメントとは、映像データを空間的又は時間的に分割した映像データの単位をいう。
【００２２】
本実施形態は、１つの全天周映像データをもとに、複数の投影方式、視野角、解像度、着目領域の組み合わせに対応するために、異なる複数のビットストリームが生成してもよい。この場合、サーバ１０２は、それぞれのビットストリームをセグメント化したセグメントを保持する。
【００２３】
本実施形態においては、通信プロトコルとしてＨＴＴＰ／２を使用する例を説明するが、これに限定されない。例えば、ＳＰＤＹ（スピーディー）、ＱＵＩＣ（Ｑｕｉｃ  ＵＤＰ  Ｉｎｔｅｒｎｅｔ  Ｃｏｎｎｅｃｔｉｏｎｓ）やＷｅｂＳｏｃｋｅｔなどの通信プロトコルであってもよい。また、プッシュ通信機能を有する通信プロトコルであれば、本実施形態は適用可能である。
【００２４】
本実施形態においてはマニフェストファイルとして、ＭＰＥＧ−ＤＡＳＨで規定されているＭＰＤ（Ｍｅｄｉａ  Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ）を利用する例について説明する。なお、本実施形態は、ＭＰＥＧ−ＤＡＳＨのＭＰＤに限らず、Ｈｔｔｐ  ＬｉｖｅｓｔｒｅａｍｉｎｇやＳｍｏｏｔｈ  Ｓｔｒｅａｍｉｎｇなどの、プレイリスト記述を使用する他のプロトコルであっても適用可能である。
【００２５】
（通信システム）
図２は、本実施形態に係る通信システムの構成の一例を示す図である。本実施形態におけるクライアント装置としてのクライアント１０１は、サーバ１０２から全天周動画のプッシュ送信を受信する情報処理装置である。クライアント１０１は、例えば、ＤＴＶ（Ｄｉｇｉｔａｌ  ＴＶ）、ＨＭＤ（Ｈｅａｄ  Ｍｏｕｎｔ  Ｄｉｓｐｌａｙ）、スマートフォン、タブレット等の表示機能を備える通信装置である。クライアント１０１はスマートフォン、タブレット、または、ＰＣ上のＷｅｂブラウザや、その他のインストールされたアプリケーションであってもよい。また、クライアント１０１は、投影装置を備えたプロジェクタであってもよい。また、クライアント１０１は、複数の投影装置を備えた、マルチプロジェクタであってもよい。なお、クライアント１０１は、プロキシ装置、ＣＤＮ（Ｃｏｎｔｅｎｔｓ  Ｄｅｌｉｖｅｒ  Ｎｅｔｗｏｒｋ）など中間装置であっても本実施形態は適用可能である
本実施形態におけるサーバ装置としてのサーバ１０２は、クライアント１０１へ全天周動画をプッシュ送信する情報処理装置である。サーバ１０２は、デジタルカメラ、デジタルビデオカメラ、ネットワークカメラ、プロジェクタ、携帯電話、スマートフォン、ＰＣ（パーソナルコンピュータ）、及び、サーバ装置等であり、映像データの送信元であるサーバ装置として機能する。本実施形態では、サーバ１０２を１台のＰＣによって実現しているが、クラウド上で分散して配置されていてもよい。
【００２６】
ネットワーク１０３は、クライアント１０１とサーバ１０２との間で通信を行うための通信網である。ネットワーク１０３には、クライアント１０１とサーバ１０２とが接続される。本実施形態は、ネットワーク１０３の形態により限定されない。例えば、ネットワーク１０３は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、公衆移動体通信であるＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ），又はそれらの組み合わせにより接続される。ＬＡＮはＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略称であり、ＷＡＮはＷｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略称である。ＬＴＥはＬｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎの略称である。ＬＡＮとしては、例えばＥｔｈｅｒｎｅｔ（登録商標）に則った有線ＬＡＮや、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）８０２．１１シリーズに則った無線ＬＡＮなどが用いられる。ＷＡＮとしては、例えばインターネットなどが用いられる。なお、クライアント１０１とサーバ１０２は、ネットワーク１０３を介さずに、直接接続されてもよい。例えば、無線アドホックネットワークを用いて、クライアント１０１とサーバ１０２が通信するようにしてもよい。
【００２７】
（クライアント）
図３は、クライアント１０１のハードウェア構成例を示すブロック図である。図３において、制御部２０１は、クライアント１０１における動作を統括的に制御する中央演算処理装置（ＣＰＵ）であり、システムバス２１１を介して、各構成部（２０２、２０５、２０６、２０８、２０９）を制御する。
【００２８】
記憶部２０２は、各種データを記憶し管理する記憶装置である。記憶部２０２は、例えば、ハードディスク、ＳＳＤ（ソリッドステートドライブ）等のストレージ装置や、ＲＡＭ（書込み可能メモリ）、ＲＯＭ（読出し専用メモリ）等により構成される。
【００２９】
表示部２０５は、制御部２０１の制御下で各種表示を行う。表示部２０５は、例えば、液晶パネル、有機ＥＬディスプレイ等により構成される。操作部２０６は、ユーザからの操作を受け付ける。操作部２０６は、例えば、タッチパネル、キーボード、ポインティング装置により構成される。
【００３０】
復号化部２０８は、映像データの復号化処理を行う。本実施形態では、復号化部２０８を専用の論理回路により実現する例を説明するが、制御部２０１がコンピュータプログラムに基づきクライアント１０１全体を制御することで、復号化部２０８を実現してもよい。
【００３１】
通信部２０９は、無線ＬＡＮインターフェース２１０を制御し、各種通信処理を制御する。２１０は、無線ＬＡＮインターフェースである。なお、本実施形態では、無線ＬＡＮインターフェースを介して、無線ＬＡＮ通信を行っているが、これに限らず、有線ＬＡＮインターフェース、または、公衆移動体通信インターフェースを介した通信であってもよい。また、これらの通信方式に限定されず、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの他の無線方式により通信を行ってもよい。また、これらのインターフェースを複数備えていてもよい。なお、本実施形態では、映像データを表示する表示部２０５がクライアント１０１の構成要素として１つのハードウェアに含まれているが、クライアント１０１の外部の表示装置をインターフェースを介して接続するようにしてもよい。例えば、表示部２０５は、ＨＤＭＩ（登録商標）などで接続された、ディスプレイ、テレビ等の表示機能を備える装置であっても、本実施形態は適用可能である。
【００３２】
図４は、クライアント１０１の機能構成例を示すブロック図である。なお、本実施形態では、以下に示す各機能ブロックの機能は、制御部２０１のＣＰＵ（不図示）が記憶部２０２のメモリ（不図示）に格納されているソフトウェアプログラム（コンピュータプログラム）を実行することにより実現される。ただし、各機能ブロックに含まれる一部または全部がハードウェア化されていてもよい。
【００３３】
図４において、通信制御部３０１は、通信部２０９を介して通信を制御する。表示制御部３０２は、レンダリング処理部３１４がレンダリング処理を行った全天周映像データを、表示部２０５を介して表示する。また、表示制御部３０２は、ユーザからの操作を受け付けるためのＵＩ（ユーザインタフェース）を表示する。表示部２０５は、ユーザに対して、全天周映像データを視聴するかどうかの選択肢を出すボタン、ダイアログ、またはその他のメッセージを表示することができる。操作制御部３０３は、操作部２０６を制御しユーザからの操作を受け付ける。記憶制御部３０４は、記憶部２０２を制御し、処理データ、または映像データ等のデータの記憶や削除等を行う。
【００３４】
ＴＣＰ／ＩＰ通信制御部３０５は、通信部２０９を利用して、サーバ１０２との間で、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）方式の通信制御を行う。なお、本実施形態ではＴＣＰ／ＩＰ通信を利用する例を示すが、これに限らず、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）を利用してもよい。セグメント解析部３０６は、サーバ１０２から取得した映像データであるセグメントをデコードする。
【００３５】
プレイリスト解析部３０７は、サーバ１０２から取得したＭＰＤファイルに記述されたプレイリストを解析する。プレイリストには、特定のタイミングに、特定のセグメントにアクセスするためのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）が記述されている。また、ＭＰＤファイルには、セグメントが全天周映像データかどうかを表す識別子、特定のセグメントに適用された投影方式、セグメントの視野角といった情報が記述されていてもよい。なお、本実施形態は、セグメントの情報をプレイリストに記述してクライアントに渡しているが、この方式に限定されない。例えば、これらのパラメータをＨＴＭＬファイルや、ｊａｖａｓｃｒｉｐｔファイルなどのファイルを解析して取得してもよい。
【００３６】
ＨＴＴＰ／２通信処理部３０８は、ＨＴＴＰ／２（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ２）において規定されるクライアントとしての通信処理を行う。ＨＴＴＰ／２通信処理部３０８は、プッシュ指示をサーバに通知する。プッシュ指示とは、クライアントとサーバの間で、サーバのプッシュの振る舞いについて交渉を行う公知の手順である。
【００３７】
プッシュポリシーは、Accept-Push-Policy Header Field（ｈｔｔｐｓ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｄｒａｆｔ−ｒｕｅｌｌａｎ−ｈｔｔｐ−ａｃｃｅｐｔ−ｐｕｓｈ−ｐｏｌｉｃｙ−０２）に詳細な記述がある。クライアント１０１はサーバ１０２に対して、“ａｃｃｅｐｔ−ｐｕｓｈ−ｐｏｌｉｃｙ”というヘッダフィールドを送信する。クライアントはこのヘッダフィールドに、クライアントにとって好ましいサーバの振る舞いを設定して送信する。サーバは、クライアントから受け取ったプッシュポリシーに対して、サーバが選択したサーバの振る舞いを“ｐｕｓｈ−ｐｏｌｉｃｙ”というヘッダフィールドに設定して送信する。
【００３８】
本実施形態では、クライアント１０１はＨＴＴＰリクエストにａｃｃｅｐｔ−ｐｕｓｈ−ｐｏｌｉｃｙというプッシュポリシーを要求するためのヘッダフィールドを使用するが、ヘッダフィールドの名前はこれに限定されない。また、ａｃｃｅｐｔ−ｐｕｓｈ−ｐｏｌｉｃｙには、１つまたは複数のプッシュポリシーを含めることができる。
【００３９】
再生制御部３０９は、復号化部２０８を通じて、受信したセグメントの復号処理を行う。能力取得部３１０は、クライアント１０１の処理能力に関する情報を取得する。クライアント１０１の処理能力には、例えば、クライアント１０１がレンダリング処理を実行可能な全天周映像データの投影方式、表示部２０５に表示可能な視野角、画面サイズ等の表示処理に関連する情報等が含まれる。能力取得部３１０が取得する能力情報はこれらに限定されず、その他の取得した全て周映像データの再生に必要となる情報を含んでいてもよい。
【００４０】
着目領域取得部３１２は、クライアント１０１が視聴する全天周映像データの着目領域を取得する。着目領域取得部３１２は極座標を用いて着目領域を取得してもよいし、二次元平面に投影処理が行われた後の領域を二次元平面の座標で取得してもよい。また、サーバ１０２が推奨する着目領域を、クライアント１０１が取得したい着目領域としてもよい。サーバ１０２の推奨する領域とは、サーバ側が選択した領域であってもよいし、多数のユーザが視聴を行っている領域でもよい。
【００４１】
プッシュ指示生成部３１３は、クライアント１０１がサーバ１０２に行うプッシュ指示の内容を生成する。プッシュ指示生成部３１３が、全天周映像データを要求するために生成するプッシュ指示の例は、図７を参照して後述する。
【００４２】
レンダリング処理部３１４は、取得したセグメントに対して、投影方式に基づいたレンダリング処理を行い、全天周映像データを復元する。プッシュ応答解析部３１５は、プッシュ応答の解析を行い、サーバ１０２がプッシュ送信するセグメントが、全天周映像データであるかどうかの情報を取得する。また、プッシュ応答解析部３１５は、プッシュ応答の解析を行い、サーバ１０２がプッシュ送信するセグメントの投影方式や、領域情報を取得する。
【００４３】
（サーバ）
図５は、サーバ１０２のハードウェア構成例を示すブロック図である。図５において、制御部４０１は、サーバ１０２における動作を統括的に制御する中央演算処理装置（ＣＰＵ）であり、システムバス４１１を介して、各構成部（４０２、４０５〜４０９）を制御する。
【００４４】
記憶部４０２は、各種データを記憶し管理する記憶装置である。記憶部４０２は、例えば、ハードディスク、ＳＳＤ等のストレージ装置や、ＲＡＭ、ＲＯＭ等により構成される。
【００４５】
表示部４０５は、制御部４０１の制御下で各種表示を行う。表示部４０５は、例えば、液晶パネル、有機ＥＬディスプレイ等により構成される。操作部４０６は、ユーザからの操作を受け付ける。操作部４０６は、例えば、タッチパネル、キーボード、ポインティング装置により構成される。撮像部４０７は、映像データの撮像を行う撮像装置である。撮像部４０７は、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）センサ等により実現される。
【００４６】
符号化部４０８は、映像データの符号化処理を行う。本実施形態では、符号化部４０８を専用の論理回路により実現する例を説明するが、制御部４０１がコンピュータプログラムに基づきサーバ１０２全体を制御することで、符号化部４０８を実現してもよい。
【００４７】
通信部４０９は、有線ＬＡＮインターフェース４１０を制御し、各種通信処理を制御する。４１０は、有線ＬＡＮインターフェースである。なお、本実施形態では、通信制御部が有線ＬＡＮインターフェースを制御する例を説明するが、これに限らず、無線ＬＡＮインターフェース、または、公衆移動体通信インターフェースを制御して通信を行ってもよい。また、これらの通信方式に限定されず、Ｂｌｕｅｔｏｏｔｈなど他の通信方式により通信を行ってもよい。
【００４８】
なお、本実施形態では、サーバ１０２が映像データの撮像を行う例を説明するが、サーバ１０２は全天周映像データを他の装置から取得してもよい。また、本実施形態では一台のサーバ装置が取得した映像データを使用する例を説明するが、これに限らず、サーバ１０２は複数の機器から取得した映像データを元に映像データを生成してもよい。また、サーバ１０２は複数の機器から取得した映像データをもとに生成された映像データを、他の機器から取得してもよい。なお、本実施形態では、サーバ１０２が、符号化部４０８を含んでいるが、サーバ１０２は他の装置から符号化済みのデータを取得してもよい。
【００４９】
図６は、サーバ１０２の機能構成例を示すブロック図である。図６において、通信制御部５０１は、通信部４０９を介して通信を制御する。表示制御部５０２は、表示部４０５を介して、ユーザからの操作を受け付けるためのＵＩを表示してもよい。操作制御部５０３は、操作部４０６を制御し、ユーザからの操作を受け付ける。ＴＣＰ／ＩＰ通信制御部５０５は、通信部４０９を利用して、クライアント１０１との間で、ＴＣＰ／ＩＰ方式の通信制御を行う。なお、本実施形態ではＴＣＰ／ＩＰ通信を利用する例を示すが、これに限らず、ＵＤＰを利用してもよい。
【００５０】
ＨＴＴＰ／２通信処理部５０６は、ＨＴＴＰ／２において規定されるサーバとして通信処理を行う。ＨＴＴＰ／２通信処理部５０６は、プッシュ応答生成部５１２が生成したプッシュ応答を付与し、ＨＴＴＰレスポンスを送信する。ＨＴＴＰ／２通信処理部５０６はプッシュ応答をクライアントに送信する場合、“ｐｕｓｈ−ｐｏｌｉｃｙ”というヘッダフィールドを使用する。サーバ１０２はクライアント１０１から受信した“ａｃｃｅｐｔ−ｐｕｓｈ−ｐｏｌｉｃｙ”ヘッダフィールドを含むＨＴＴＰリクエストへのレスポンスに、“ｐｕｓｈ−ｐｏｌｉｃｙ”ヘッダを付与する。サーバ１０２は“ｐｕｓｈ−ｐｏｌｉｃｙ”ヘッダフィールドに対して、クライアント１０１へのプッシュ応答を記載する。本実施形態では、ＨＴＴＰレスポンスにプッシュ応答を付与する時に、“ｐｕｓｈ−ｐｏｌｉｃｙ”ヘッダフィールドを使用するが、これに限らず、他のヘッダを用いてもよいし、レスポンスボディにプッシュ応答を含めてもよい。
【００５１】
セグメント生成部５０７は、投影処理部５１０によって投影処理を行った全天周映像データから、クライアント１０１へ送信するセグメントを生成する。セグメント生成部５０７は、１つの全天周映像データを投影処理した映像データに対して、複数の異なるビットレート、解像度のセグメントを生成してもよい。また、セグメント生成部５０７は、複数の異なる投影処理方式によって投影された映像データに対して、それぞれセグメントを生成してもよい。なお、サーバ１０２が送信するセグメントは、他の装置が生成したセグメントであってもよい。
【００５２】
プレイリスト生成部５０８は、クライアントが、映像データの取得に使用するプレイリストを生成する。プレイリストには特定のタイミングで特定のセグメントにアクセスするためのＵＲＬを記述する。また、プレイリストには、特定のセグメントが、どの撮影方式で投影されたセグメントであるかの情報や、セグメントの視野角の情報などを記述する。なお、本実施形態では、各レイヤのセグメントの情報を、プレイリストに記述しているが、これに限定されず、ＨＴＭＬファイルや、ｊａｖａｓｃｒｉｐｔファイルに記述してもよい。なお、サーバ１０２が送信するプレイリストは、他の装置で生成されたものであってもよい。
【００５３】
プッシュ指示解析部５０９は、クライアントから受信したリクエストに付与されているプッシュ指示の内容を解析する。クライアントから受信するプッシュ指示には、クライアントが処理可能な全天周映像データの投影方式、クライアントの視野角、及び、クライアントの画面領域などが含まれる。なお、プッシュ指示解析部５０９は、ＤＡＳＨ  ｗｉｔｈ  Ｓｅｒｖｅｒ  Ｐｕｓｈ  ａｎｄ  Ｗｅｂｓｏｃｋｅｔｓ（２３００９−６）などで規定されているプッシュ指示の解析も行う。
【００５４】
投影処理部５１０は、撮像部４０７が撮影した映像データの２次元平面上への投影処理を行う。なお、サーバ１０２は、全天周映像データに対して、複数の投影処理方式を適用し、別々の映像データを生成してもよい。また、サーバ１０２は、他の装置によって投影処理が行われた映像データを使用してもよい。
【００５５】
セグメント選択部５１１は、クライアント１０１から受信したプッシュ指示に基づき、プッシュ送信する初期化セグメント及びメディアセグメントを選択する。なお、本実施形態では、初期化セグメント及びメディアセグメントを選択する例を説明するが、初期化セグメントのみを選択してもよい。
【００５６】
プッシュ応答生成部５１２は、クライアントから受信したプッシュ指示に対する応答を生成する。プッシュ応答生成部５１２は、クライアントから受信したプッシュ指示に対して、サーバ１０２がプッシュ送信を行うセグメントの情報を記載する。プッシュ応答の具体例は図９を参照して後述する。
【００５７】
（プッシュ指示）
図７は、クライアント１０１が生成するプッシュ指示の例を示す図である。なお、本実施形態におけるプッシュ指示は、一例であり、プッシュ指示の中身、文法、及び、記法は、これらに限定されない。
【００５８】
９０１は、全天周映像データのプッシュ要求を含む、プッシュ指示の例である。これにより、クライアント１０１はサーバ１０２に対して全天周映像データのプッシュ送信を指示することができる。
【００５９】
「“urn:mpeg:dash:fdh:201x:push-fast-start”」は、このプッシュ指示が、ＭＰＥＧ−ＤＡＳＨのスキームにより示されるバージョンに対応していることを示す識別子である。この識別子は、ＭＰＤリクエストにプッシュ指示が付与されていることを示す。なお、識別子の記述方式はこの方式に限定されない。
【００６０】
「format =“vr”」はサーバ１０２に対して、全天周映像データのプッシュを指示するプッシュ指示である。なお、全天周映像データのプッシュを指示するプッシュ指示は、「format」や「vr」を用いた記法に限定されない。例えば、「media=“vr”」と指定してもよいし、「format=“omnidirectional”」という指定を行ってもよい。
【００６１】
なお、全天周映像データのプッシュ要求は、右目用データ、左目用データ、立体使用データ、を指示する識別子を記述してもよい。この場合、「format =“vr, stereoscopic”」と指定すると、立体視用のデータをプッシュするプッシュ指示となる。また、「format=“vr, right, left”」と記述すると、右目用データと左目用のデータの両方をプッシュするプッシュ指示となる。全天周映像データをプッシュするプッシュ指示は、例えば、
・Ｏｍｎｉｄｉｒｅｃｔｉｏｎａｌ  Ｍｅｄｉａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｒｍａｔ（２３０００−２０）。
・ＤＡＳＨ  ｗｉｔｈ  Ｓｅｒｖｅｒ  Ｐｕｓｈ  ａｎｄ  Ｗｅｂｓｏｃｋｅｔｓ（２３００９−６）
などの各種標準仕様書に規定されている、指示子、識別子、パラメータを用いて記述してもよい。
【００６２】
９０２は、全天周映像データの投影方式を指示するプッシュ指示の例である。投影方式を指示することにより、クライアント１０１は、サーバ１０２に、クライアントが処理可能である投影方式を指示することができる。その結果、クライアント１０１は、自身が再生可能である全天周映像データのセグメントをサーバ１０２から受信できる可能性を高めることができる。投影方式は複数の種類を指定してもよいし、１つだけ指定してもよい。
【００６３】
「projection_type=“cube,equirectangular”」は、クライアントが対応している全天周映像データの投影方式を指示する識別子である。本例では、投影方式として、キューブ（cube）と正距円筒図法（equirectangular）にクライアントが対応していることを示す。なお、クライアントが対応している全天周映像データの投影方式を指示する識別子の記法はこれに限定されない。例えば、「projection_type」に限らず、「projection」や、「mapping」といったその他の記述方式を用いてもよい。
【００６４】
また、クライアントが対応している全天周映像データの投影方式は、「cube」、「equirectangular」などの具体的な投影方式を指示するやり方に限定されない。例えば、「equirectangular:0」、「cube:1」、「pyramid:2」のように、投影方式に対応する番号を予め定義し、その番号を通知してもよい。つまり「projection_type=“0,1”」のように記述してもよい。
【００６５】
なお、本実施形態では、投影方式を指定しているが、これに加えて、投影後の図形の領域を指定してもよい。例えば、直方体に投影を行った場合、直方体の面を表す情報を付与してもよい。例えば、「projection_type=“cube,front”」のように記述する。この場合、直方体の正面に投影されたセグメントのプッシュを指示するように要求する。なお、本実施形態では、frontと記述しているが、直方体の６つの面に値、又は識別子を割り当て、それらを指定してもよい。例えば、frontに“０”、または“ｆ”を割り当てると、「projection_type=“cube,0”」、「projection_type=“cube,ｆ”」のように記述できる。
【００６６】
なお、投影方式の種類と、投影方式毎に異なる領域を指示する方式は、例えば、
・Ｏｍｎｉｄｉｒｅｃｔｉｏｎａｌ  Ｍｅｄｉａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｒｍａｔ（２３０００−２０）。
・ＤＡＳＨ  ｗｉｔｈ  Ｓｅｒｖｅｒ  Ｐｕｓｈ  ａｎｄ  Ｗｅｂｓｏｃｋｅｔｓ（２３００９−６）。
などの各種標準仕様書に規定されている、指示子、識別子、パラメータを用いて記述してもよい。
【００６７】
９０３は、全天周映像データの着目領域を指示するプッシュ指示の例である。着目領域を指示することにより、クライアントは、ユーザが所望する着目領域のセグメントを受信できる可能性を高めることができる。「vr_view=“180,90”」は、方位角が１８０°、仰角９０°の着目領域を要求するプッシュ指示である。本実施形態では、方位角、仰角の順番でプッシュ指示を送っているが、この順番に限定されない。この場合、サーバが規定する原点（０°）から１８０°までの方位角と、サーバが規定する原点（０°）から９０°までの仰角が着目領域であることを示す。
【００６８】
また、９０３の例では方位角と仰角の２つの値を与えているが、着目領域を指示する方式はこれに限らず、方位角の始点、方位角の終点、仰角の始点、仰角の終点の４つの値を与えてもよい。例えば、「vr_view=30,180,-20,90」と記述する。これは、方位角が30°から180°、仰角が-20°から90°の全天周映像データを要求するプッシュ指示となる。なお、４つの値を与える記述方式はこれに限定されない。
【００６９】
また、本実施形態では、方位角と仰角の２つの値を与えているが、これに限らず、方位角、または、仰角のどちらか１つの値を与えてもよい。方位角のみを与える場合、「vr_view=H_FOV=180」のように、サーバが規定する原点（０°）からの方位角を規定する方式や、「vr_view=H_FOV,-30,180」のように、方位角の始点と方位角の終点を指示してもよい。なお、vr_viewやH_FOVといった記述方式はこの記述方式に限定されない。仰角のみを与える場合、「vr_view=V_FOV=90」のように、サーバが規定する原点（０°）からの仰角を規定する方式や、「vr_view=V_FOV,-20,90」のように、仰角の始点と、方位角の終点を指示してもよい。なお、vr_viewやV_FOVといった記述方式はこの記述方式に限定されない。
【００７０】
また、本実施形態では、本実施形態では、方位角、仰角の組み合わせで着目領域を指定しているが、これに限定されず、Ｘ，Ｙ，Ｚ軸の回転軸（yaw, pitch, roll）の回転角度の中から１つ以上パラメータを選択して、指定してもよい。例えば、「vr_view=yaw=90, pitch=90, roll=90」のように指定できる。また、着目領域を指示する方式は、画面内のピクセルの相対座標であってもよい。例えば、「vr_view=0,0, 640, 480」と記述することができる。これは、全天周映像データを２次元平面に投影した場合に、例えば左上の座標から640×480ピクセル分の領域を含むセグメントのプッシュ指示を行うことになる。
【００７１】
また、着目領域を指示する方式は、例えば、
・Ｏｍｎｉｄｉｒｅｃｔｉｏｎａｌ  Ｍｅｄｉａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｒｍａｔ（２３０００−２０）。
・ＤＡＳＨ  ｗｉｔｈ  Ｓｅｒｖｅｒ  Ｐｕｓｈ  ａｎｄ  Ｗｅｂｓｏｃｋｅｔｓ（２３００９−６）。
などの各種標準仕様書に規定されている、全天周映像データの領域を指定する、指示子、識別子、パラメータを用いて記述してもよい。
【００７２】
また、本実施形態では、クライアント１０１が方位角、仰角を指定しているが、サーバが推奨する領域を取得するように、プッシュ指示を出してもよい。例えば、”vr_view=optimalViewPoint”と記述する。これにより、サーバ側が、クライアントに見せたい着目領域を送信するように指示することができる。なお、着目領域は、複数の領域を指定してもよい。
【００７３】
９０４は、全天周映像データのプッシュ要求と、全天周映像データの投影方式を指示するプッシュ指示の組み合わせの例である。９０４では、「format=“vr”」により全天周映像データのプッシュ要求を行い、「projection_type=“cube,equirectangular”」により投影方式の指示を行っている。
【００７４】
９０５は、全天周映像データを要求するプッシュ指示と、全天周映像データの着目領域を指示するプッシュ指示の組み合わせの例である。９０５では、「format=“vr”」により全天周映像データのプッシュ要求を行い、「vr_view=“180,90”」により、方位角が１８０°、仰角９０°の着目領域を指示している。
【００７５】
９０６は、全天周映像データの投影方式を指示するプッシュ指示と、全天周映像データの着目領域を指示するプッシュ指示の例である。９０６では、「projection_type=“cube,equirectangular”」により投影方式の指示を行い、「vr_view=“180,90”」により、方位角が１８０°、仰角９０°の着目領域を指示している。
【００７６】
なお、全天周映像データの着目領域は、投影方式毎に指定してもよい。例えば、「projection_type=“cube,equirectangular” ; vr_view=“cube,front, equirectangular,360,180”」と記述することができる。この場合、直方体に投影したセグメントは、正面のセグメントをプッシュ送信するように指示し、正距円筒図法で投影したセグメントは方位角３６０°、仰角１８０の全ての領域を含むように、プッシュ送信を指示する。
【００７７】
また、ある投影方式には着目領域を指定し、別の投影方式には着目領域を指定しなくてもよい。例えば、「projection_type=“cube,equirectangular” ; vr_view=“cube,front, equirectangular”」と記述することができる。この場合、直方体に投影したセグメントは、正面のセグメントをプッシュ送信することを通知し、正距円筒図法で投影したセグメント角１８０の全ての領域を含むセグメントをプッシュ送信することを通知する。
【００７８】
９０７は、全天周映像データのプッシュ要求を含むプッシュ指示と、全天周映像データの投影方式を指示するプッシュ指示と、全天周映像データの着目領域を指示するプッシュ指示の組み合わせの例である。
【００７９】
９０４〜９０７で示したように、複数のプッシュ指示を組み合わせることで、クライアントにとって適した全天周映像データのセグメントを受信できる可能性をさらに高めることができる。
【００８０】
９０８は、全天周映像データをプッシュせず、２次元の映像データセグメントを送信するように要求するプッシュ指示の例である。これにより、サーバ１０２に対して、明示的に全天周映像データの再生に対応していないことを通知することができる。「format =“2d”」はサーバ１０２に対して、全天周映像データをプッシュせず、２次元の映像データセグメントを送信するように要求するプッシュ指示である。なお、全天周映像データをプッシュせずに、２次元の映像データをプッシュするように要求するため記法は、この記法に限定されない。
【００８１】
また、２次元の映像データセグメントを送信するように要求するプッシュ指示は、例えば、
・Ｏｍｎｉｄｉｒｅｃｔｉｏｎａｌ  Ｍｅｄｉａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｒｍａｔ（２３０００−２０）。
・ＤＡＳＨ  ｗｉｔｈ  Ｓｅｒｖｅｒ  Ｐｕｓｈ  ａｎｄ  Ｗｅｂｓｏｃｋｅｔｓ（２３００９−６）。
などの各種標準仕様書に規定されている、指示子、識別子、パラメータを用いて記述してもよい。なお、二次元の映像データセグメントは、全天周映像データが複数の動画をスティッチングされて生成された場合、スティッチング前の動画データのいずれかであってもよい。
【００８２】
（ＭＰＤファイル）
図８は、サーバ１０２がクライアント１０１へ送信するＭＰＤファイルの一例を示す図である。クライアント１０１は、サーバ１０２から受信したセグメントのＵＲＬと、ＭＰＤファイルの内容から、受信したセグメントが全天周映像データかどうかを判断する。また、クライアント１０１は、サーバ１０２から受信したセグメントのＵＲＬと、ＭＰＤファイルの内容から、投影方式、着目領域を判断する。
【００８３】
１１０１は、全天周映像データであることを示すＭＰＤファイルの例を示している。１１０２において、ＳｕｐｐｌｅｍｅｎｔａｌＰｒｏｐｅｒｔｙに”ＳｃｈｅｍｅＩｄＵｒｉ”を与えることにより、クライアント１０１は、このＡｄａｐｔａｔｉｏｎＳｅｔに記述されているセグメントが全天周映像データであることを理解することができる。
【００８４】
１１０３は、ＭＰＤファイルの別の例を示している。この例では、あるＡｄａｐｔａｔｉｏｎＳｅｔに含まれるセグメントが、Ｃｕｂｅの投影方式を用いて処理されたものであり、方位角１８０度、仰角１２０度の範囲の映像データを含んでいることを意味する（１１０４）。
【００８５】
なお、ここで紹介したＭＰＤファイルの記述方式は一例であり、ＭＰＤファイルの記述方式はこれらの方式に限定されない。
【００８６】
クライアント１０１は、プッシュ送信されたセグメントのＵＲＬと、ＭＰＤファイルから、プッシュ送信されたセグメントの投影処理方式、そのセグメントがどの投影方式で処理されたのかを判断する。
【００８７】
（プッシュ応答）
図９は、サーバ１０２が生成するプッシュ応答の例を示す。なお、本実施形態におけるプッシュ応答は一例であり、プッシュ応答の中身、文法、及び、記法はこれらに限定されない。
【００８８】
１２０１は、全天周映像データを送信すること通知するプッシュ応答の例である。これにより、クライアント１０１に対してプッシュ送信するセグメントが、全天周映像データであることを通知することができる。
【００８９】
「urn:mpeg:dash:fdh:201x:push-fast-start」は、このプッシュ応答が、ＭＰＥＧ−ＤＡＳＨの当該スキームにより示されるバージョンに対応していることを示す識別子である。この識別子は、この識別子が付与されているＭＰＤレスポンスはプッシュ応答が付与されていることを示す。
【００９０】
「format =“vr”」はクライアント１０１に対して、全天周映像データのプッシュ送信をすることを通知するプッシュ応答である。なお、全天周映像データのプッシュ送信をすることを通知するプッシュ応答は、この記法に限定されない。
【００９１】
全天周映像データのプッシュ応答は、右目用データ、左目用データ、立体使用データ、を指示する識別子を記述してもよい。この場合、例えば、「format =“vr, stereoscopic”」と指定すると、立体視用のデータをプッシュ送信するプッシュ応答となる。また、「format =“vr, right, left”」と記述すると、右目用データと左目用のデータの両方をプッシュ送信するプッシュ指示となる。
【００９２】
全天周映像データをプッシュ送信するプッシュ応答は、例えば、
・Ｏｍｎｉｄｉｒｅｃｔｉｏｎａｌ  Ｍｅｄｉａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｒｍａｔ（２３０００−２０）。
・ＤＡＳＨ  ｗｉｔｈ  Ｓｅｒｖｅｒ  Ｐｕｓｈ  ａｎｄ  Ｗｅｂｓｏｃｋｅｔｓ（２３００９−６）。
などの各種標準仕様書に規定されている、指示子、識別子、パラメータを用いて記述してもよい。
【００９３】
サーバ１０２は１２０１で示すようなプッシュ指示を受信した場合、１つの投影方式で生成された複数のセグメントをプッシュ送信してもよいし、複数の投影方式により生成された複数のセグメントをプッシュ送信してもよい。また、サーバ１０２は、ある着目領域を含むセグメントをプッシュ送信してもよいし、全天周映像データの全領域を含むセグメントの組み合わせを選んでプッシュ送信してもよい。
【００９４】
１２０２は、全天周映像データの投影方式を通知するプッシュ応答の例である。投影方式を通知することにより、クライアントは、ＭＰＤを解析せずに、プッシュ送信されるセグメントの投影方式を知ることが可能となる。その結果、再生までの時間を短縮することができる。
【００９５】
「projection_type=“cube,equirectangular”」は、サーバ１０２がプッシュ送信するセグメントの全天周映像データの投影方式を表す識別子である。本例では、投影方式として、キューブと正距円筒図法のセグメントをプッシュ送信することを示している。なお、サーバ１０２がプッシュ送信する全天周映像データの投影方式を指示する識別子の記法はこれに限定されない。
【００９６】
また、サーバ１０２がプッシュ送信する全天周映像データの投影方式は、「cube」、「equirectangular」などの具体的な投影方式を記述する方式に限定されない。例えば、「equirectangular:0」、「cube:1」、「pyramid:2」のように、投影方式に対応する番号を予め定義し、その番号を通知してもよい。つまり「projection_type=“0,1”」のように記述してもよい。
【００９７】
なお、本実施形態では、投影方式を指定しているが、これに加えて、投影後の図形の領域を指定してもよい。例えば、直方体に投影を行った場合、直方体の面を表す情報を付与してもよい。例えば、「projection_type=“cube,front”」のように記述する。この場合、直方体の正面に投影されたセグメントをプッシュ送信することを意味する。なお、本実施形態では、frontと記述しているが、直方体の６つの面に値、又は識別子を割り当て、それらを指定してもよい。例えば、frontに「０」、または「ｆ」を割り当てると、「projection_type=“cube,0”」、「projection_type=“cube,ｆ”」のように記述できる。
【００９８】
なお、投影方式の種類と、投影方式毎に異なる領域を識別する方式は、例えば、
・Ｏｍｎｉｄｉｒｅｃｔｉｏｎａｌ  Ｍｅｄｉａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｒｍａｔ（２３０００−２０）。
・ＤＡＳＨ  ｗｉｔｈ  Ｓｅｒｖｅｒ  Ｐｕｓｈ  ａｎｄ  Ｗｅｂｓｏｃｋｅｔｓ（２３００９−６）。
などの各種標準仕様書に規定されている、全天周映像データの投影方式と領域を意味する識別子、パラメータなどを用いて記述してもよい。
【００９９】
サーバ１０２は、１２０２のようなプッシュ指示を受信した場合、ある着目領域を含むセグメントをプッシュ送信してもよいし、全天周映像データの全領域を含むセグメントの組み合わせを選んでプッシュ送信してもよい。
【０１００】
１２０３は、全天周映像データのプッシュ送信する領域を表すプッシュ応答の例である。「vr_view=180,90」は、方位角が１８０°、仰角９０°の着目領域をプッシュ送信するプッシュ応答を示している。本実施形態では、方位角、仰角の順番でプッシュ応答を送っているが、この順番に限定されない。この場合、サーバ１０２が規定する原点（０°）から１８０°までの方位角と、サーバ１０２が規定する原点（０°）から９０°までの仰角が着目領域であることを示す。
【０１０１】
また、本実施形態では方位角と仰角の２つの値を与えているが、着目領域を指示する方式はこれに限らず、方位角の始点、方位角の終点、仰角の始点、仰角の終点の４つの値を特定して着目領域を示してもよい。例えば、「vr_view=30,180, -20,90」と記述する。これは、方位角が30°から、180°、仰角が-20°から90°の全天周映像データをプッシュ送信するプッシュ応答となる。なお、４つの値を与える記述方式はこのような記法に限定されない。
【０１０２】
また、本実施形態では、方位角と仰角の２つの値を与えているが、これに限らず、方位角、または、仰角のどちらか１つの値を与えてもよい。方位角のみを与える場合、例えば、「vr_view=H_FOV=180」のように、サーバが規定する原点（０°）からの方位角を規定する方式により記述してもよい。あるいは、「vr_view=H_FOV,-30,180」のように、方位角の始点と方位角の終点を指示する方式により記述してもよい。なお、vr_viewやH_FOVといった記述方式はこの記述方式に限定されない。仰角のみを与える場合、例えば、「vr_view=V_FOV=90」のように、サーバが規定する原点（０°）からの仰角を規定する方式に記述してもよい。あるいは、「vr_view=V_FOV,-20,90」のように、仰角の始点と、方位角の終点を指示する方式により記述してもよい。なお、vr_viewやV_FOVといった記述方式はこの記述方式に限定されない。
【０１０３】
また、本実施形態では、本実施形態では、方位角、仰角の組み合わせで着目領域を指定しているが、これに限定されず、Ｘ，Ｙ，Ｚ軸の回転軸（yaw, pitch, roll）の中から１つ以上パラメータを選択して、指定してもよい。例えば、「vr_view=yaw=90, pitch=90, roll=90」のように指定できる。
【０１０４】
また、着目領域を指示する方式は、画面内のピクセルの相対座標により着目領域を指示するものであってもよい。例えば、「vr_view=0,0, 640, 480」と記述することができる。これは、全天周映像データを２次元平面に投影した場合に、例えば左上の座標から640×480ピクセル分の領域を含むセグメントのプッシュ指示を行うことになる。
【０１０５】
また、着目領域を指示する方式は、例えば、
・Ｏｍｎｉｄｉｒｅｃｔｉｏｎａｌ  Ｍｅｄｉａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｒｍａｔ（２３０００−２０）。
・ＤＡＳＨ  ｗｉｔｈ  Ｓｅｒｖｅｒ  Ｐｕｓｈ  ａｎｄ  Ｗｅｂｓｏｃｋｅｔｓ（２３００９−６）。
などの各種標準仕様書に規定されている、全天周映像データの領域を指定するパラメータにより記述してもよい。
【０１０６】
サーバ１０２は１２０３のようなプッシュ指示を受信した場合、１つの投影方式で生成されたセグメントをプッシュ送信してもよいし、複数の投影方式により生成された、複数のセグメントをプッシュ送信してもよい。
【０１０７】
１２０４は、全天周映像データのプッシュ応答と、全天周映像データの投影方式を通知するプッシュ応答の組み合わせの例である。
【０１０８】
１２０５は、全天周映像データをプッシュ送信するプッシュ応答と、全天周映像データの着目領域を指示するプッシュ応答の組み合わせの例である。
【０１０９】
１２０６は、プッシュ送信する全天周映像データの投影方式を通知するプッシュ応答と、プッシュ送信する全天周映像データの着目領域を通知するプッシュ応答の例である。
【０１１０】
なお、全天周映像データの着目領域は、投影方式毎に指定してもよい。例えば、「projection_type=“cube,equirectangular” ; vr_view=“cube,front, equirectangular,360,180」と記述することができる。この場合、直方体に投影したセグメントは、正面のセグメントをプッシュ送信するように通知し、正距円筒図法で投影したセグメントは方位角３６０°、仰角１８０の全ての領域を含むセグメントをプッシュ送信することを通知する。
【０１１１】
また、ある投影方式には着目領域を指定し、別の投影方式には着目領域を指定しなくてもよい。例えば、「projection_type=“cube,equirectangular” ; vr_view=“cube,front, equirectangular”」と記述することができる。この場合、直方体に投影したセグメントは、正面のセグメントをプッシュ送信することを通知し、正距円筒図法で投影したセグメント角１８０の全ての領域を含むセグメントをプッシュ送信することを通知する。
【０１１２】
１２０７は、全天周映像データをプッシュ送信することを通知するプッシュ応答と、プッシュ送信する全天周映像データの投影方式を通知するプッシュ応答と、プッシュ送信する全天周映像データの着目領域を通知するプッシュ応答の組み合わせの例である。なお、本実施形態では、プッシュ応答として、「urn:mpeg:dash:fdh:201x:push-fast-start」を送信する例を説明しているが、これに限定されず、他の情報をプッシュ応答として送信することもできる。例えば、プッシュ送信するセグメントのＵＲＬのリストや、プッシュ送信する複数のセグメントのテンプレートを表すＵＲＬテンプレートを、プッシュ応答に含めてもよい。
【０１１３】
１２０８は、全天周映像データをプッシュせず、２次元の映像データセグメントをプッシュ送信することを通知するプッシュ応答の例である。これにより、クライアント１０１に対して、明示的に全天周映像データの再生に対応していないことを通知することができる。
【０１１４】
「format =“2d”」はクライアント１０１に対して、全天周映像データをプッシュせず、２次元の映像データセグメントをプッシュ送信するように通知するプッシュ応答である。なお、全天周映像データをプッシュせずに、２次元の映像データをプッシュするように通知するプッシュ応答の記法は、この記法に限定されない。
【０１１５】
また、２次元の映像データセグメントを送信するように要求するプッシュ指示は、例えば、
・Ｏｍｎｉｄｉｒｅｃｔｉｏｎａｌ  Ｍｅｄｉａ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｒｍａｔ（２３０００−２０）。
・ＤＡＳＨ  ｗｉｔｈ  Ｓｅｒｖｅｒ  Ｐｕｓｈ  ａｎｄ  Ｗｅｂｓｏｃｋｅｔｓ（２３００９−６）。
などの各種標準仕様書に規定されている、指示子、識別子、パラメータにより記述してもよい。
【０１１６】
（クライアントの動作）
次に、以上のような構成を備えた本実施形態のクライアント１０１、サーバ１０２の動作について説明する。まず、クライアント１０１の動作について、図１０を参照しながら詳細に説明する。図１０はクライアント１０１の動作手順を示すフローチャートである。図１０の各ステップは、クライアント１０１の制御部２０１がコンピュータプログラムに基づき装置全体を制御することにより実行される。
【０１１７】
クライアント１０１の能力取得部３１０は、クライアント１０１が全天周映像データを再生可能であるかを判断する（Ｓ６０１）。クライアント１０１は、全天周映像データのレンダリング能力があるかを判断してもよいし、ユーザからの操作を受け付けて、全天周映像データの再生が必要かを判断してもよい。全天周映像データを再生可能である場合（Ｓ６０１でＹＥＳ）はＳ６０２へ進み、再生可能でない場合（Ｓ６０１でＮＯ）はＳ６１８へ進む。
【０１１８】
Ｓ６０２では、クライアント１０１の能力取得部３１０は、クライアント１０１が処理可能である全天周映像データの投影方式を取得する。ここで、能力取得部３１０は、クライアントが処理可能な複数の投影方式の中から、一部、又は、全ての方式を選択してもよい。後述するようにＳ６０６において、クライアント１０１は選択した投影方式をサーバ１０２に通知する。複数の投影方式を選択してサーバ１０２に通知すると、サーバ１０２は、クライアントが再生可能である投影方式で生成されたセグメントをプッシュ送信できる可能性を高めることができる。
【０１１９】
次に、クライアント１０１の能力取得部３１０は、クライアント１０１の表示能力の情報を取得する（Ｓ６０３）。能力取得部３１０が取得する表示能力は、例えば、クライアント１０１が表示部２０５に表示可能である視野角や、クライアント１０１の画面解像度等が含まれるが、これらに限定されない。
【０１２０】
次に、クライアント１０１の着目領域取得部３１２は、クライアント１０１の着目領域を取得する（Ｓ６０４）。
【０１２１】
次に、クライアント１０１のプッシュ指示生成部３１３は、全天周映像データを取得するためのプッシュ指示を生成する（Ｓ６０５）。プッシュ指示の内容は、図７を参照して前述したとおりである。プッシュ指示は、Ｓ６０２、Ｓ６０３，Ｓ６０４で取得した情報の一部、または、全部を用いて生成される。Ｓ６０２、Ｓ６０３、Ｓ６０４で取得した情報の一部を用いる場合、使用しない情報を取得するためのステップは省略可能である。例えば、サーバ１０２に対して、処理可能な全天周映像データの投影方式だけを指示する場合、Ｓ６０３、Ｓ６０４は省略可能である。また、プッシュ指示生成部３１３が生成するプッシュ指示は、全天周映像データを要求するプッシュ指示であってもよい。この場合、Ｓ６０２〜Ｓ６０４の処理は省略可能である。
【０１２２】
なお、本実施形態では、プッシュ指示生成部３１３が生成するプッシュ指示には、全天周映像データの取得に関連する情報が含まれるが、これらの情報に限定されない。例えば、映像データ／音声データを指示するプッシュ指示や、所望のビットレートを指定するプッシュ指示などの複数のプッシュ指示と組み合わせてプッシュ指示を生成してもよい。
【０１２３】
次に、クライアント１０１のＨＴＴＰ／２通信処理部３０８は、プッシュ指示生成部３１３が生成したプッシュ指示を付与したＭＰＤリクエストを送信する（Ｓ６０６）。
【０１２４】
次に、クライアント１０１のＨＴＴＰ／２通信処理部３０８は、ＭＰＤレスポンスを受信する（Ｓ６０７）。
【０１２５】
次に、クライアント１０１のＨＴＴＰ／２通信処理部３０８は、サーバ１０２がプッシュ送信に対応しているかどうかを判断する（Ｓ６０８）。ＨＴＴＰ／２通信処理部３０８は、サーバからのＭＰＤレスポンスに、「ｐｕｓｈ−ｐｏｌｉｃｙ」ヘッダフィールドが含まれている場合、サーバ１０２がプッシュ送信に対応していると判断する。プッシュ応答解析部３１５は、サーバ１０２から受信したプッシュ応答が、“ｐｕｓｈ−ｎｏｎｅ”あるいは、プッシュ送信に対応していないことを示す内容である場合、サーバ１０２がプッシュ送信に対応していないと判断する。また、ＨＴＴＰ／２通信処理部３０８は、「ｐｕｓｈ−ｐｏｌｉｃｙ」ヘッダが、サーバからのＭＰＤレスポンスに含まれていない場合、サーバがプッシュ送信に対応していないと判断する。サーバ１０２がプッシュ送信に対応している場合（Ｓ６０８でＹＥＳ）はＳ６０９へ進み、対応していない場合（Ｓ６０８でＮＯ）はＳ６１５へ進む。
【０１２６】
Ｓ６０９では、クライアント１０１のプッシュ応答解析部３１５は、サーバ１０２のプッシュ応答を解析し、クライアント１０１が再生可能であるセグメントがプッシュされるかどうかを判断する（Ｓ６０９）。プッシュ応答解析部３１５は、サーバ１０２からプッシュされるセグメントの投影方式をレンダリング処理できる場合に、再生可能であると判断する。例えば、プッシュ応答解析部３１５は、クライアントがＣｕｂｅ形式の投影方式を処理可能である場合、サーバからのプッシュ応答にＣｕｂｅが含まれていれば、再生可能なセグメントがプッシュされると判断する。なお、プッシュ応答に投影方式が含まれていない場合であっても、ＭＰＤファイルに記述されている投影方式から、プッシュ送信されるセグメントの投影方式を判断し、再生可能かを判断してもよい。再生可能なセグメントがプッシュ送信される場合（Ｓ６０９でＹＥＳ）はＳ６１０へ進み、送信されない場合（Ｓ６０９でＮＯ）はＳ６１５へ進む。
【０１２７】
Ｓ６１０では、クライアント１０１のＨＴＴＰ／２通信処理部３０８は、サーバ１０２からプッシュ送信された初期化セグメント及びメディアセグメントを受信する。
【０１２８】
次に、クライアント１０１のレンダリング処理部３１４は、受信したセグメントファイルのレンダリング処理を行う（Ｓ６１２）。ここで、レンダリング処理部３１４は、プッシュで受信したセグメントのＵＲＬと、ＭＰＤファイル内に記述されている該当セグメントの投影処理方式から、全天周映像データの投影方式を判断し、それに基づきレンダリング処理を行う。
【０１２９】
次に、クライアント１０１の再生制御部３０９は、表示制御部３０２を介して、全天周映像データを表示部２０５に表示する（Ｓ６１３）。そして、処理を終了する。
【０１３０】
Ｓ６０８でＮＯ、または、Ｓ６０９でＮＯと判断した場合、Ｓ６１５において、クライアントは再生可能な初期化セグメント及びメディアセグメントの取得を開始する。そして、Ｓ６１２へ進む。
【０１３１】
一方、Ｓ６０１でＮＯの場合、Ｓ６１８において、クライアント１０１のプッシュ指示生成部３１３は、全天周映像データはプッシュせずに、二次元の映像データのプッシュ送信を要求するプッシュ指示を生成する。そして、Ｓ６０６へ進む。Ｓ６０６移行の処理は前述の通りである。
【０１３２】
上記のように、クライアント１０１は、全天周動画等の複数の投影方式が存在する画像データをサーバ１０２から受信する情報処理装置である。クライアント１０１は、画像データのプッシュ送信を指示するためのプッシュ指示を生成し、そのプッシュ指示をサーバ１０２へ送信して、それに応じてサーバ１０２からプッシュ送信された画像データに係るセグメントを受信する。ここで、クライアント１０１は、当該クライアント１０１が再生可能な投影方式に関する情報を含むプッシュ指示を生成する。そのため、サーバ１０２は、クライアント１０１が再生可能な投影方式により二次元平面に展開された画像データをセグメントに分割してクライアント１０１へ送信することができ、クライアント１０１はそのセグメントを受信して再生することができる。
【０１３３】
また、クライアント１０１は、全天周画像を再生可能でないときは、二次元画像の画像データに係るセグメントのプッシュ送信を指示するためのプッシュ指示を生成して（Ｓ６１８）、サーバ１０２へ送信する。このため、クライアント１０１は、その能力に応じて、再生可能な画像データを受信して再生することができる。
【０１３４】
また、クライアント１０１は、画像データの注目領域を示す情報を含むプッシュ指示を生成してサーバ１０２へ送信する。そのため、クライアント１０１は、サーバ１０２からプッシュ送信された注目領域に係るセグメントを受信して再生することが可能である。
【０１３５】
（サーバの動作）
次に、サーバ１０２の動作について、図１１を参照しながら詳細に説明する。図１１はサーバ１０２の動作手順を示すフローチャートである。図１１の各ステップは、サーバ１０２の制御部４０１がコンピュータプログラムに基づき装置全体を制御することにより実行される。
【０１３６】
サーバ１０２のＨＴＴＰ／２通信処理部５０６は、クライアント１０１からＭＰＤリクエストを受信する（Ｓ７０１）。
【０１３７】
サーバ１０２のプッシュ指示解析部５０９は、ＭＰＤリクエストにプッシュ指示が付与されているかどうかを判断する（Ｓ７０２）。プッシュ指示解析部５０９は、ＭＰＤリクエストに「Ａｃｃｅｐｔ−Ｐｕｓｈ−Ｐｏｌｉｃｙ」ヘッダフィールドが含まれている場合、プッシュ指示が付与されていると判断する。プッシュ指示解析部５０９は、ＭＰＤリクエストに「Ａｃｃｅｐｔ−Ｐｕｓｈ−Ｐｏｌｉｃｙ」ヘッダフィールドが含まれていない場合、プッシュ指示が付与されていないと判断する。プッシュ指示が付与されている場合（Ｓ７０２でＹＥＳ）はＳ７０３へ進み、付与されていない場合（Ｓ７０２でＮＯ）はＳ７３０へ進む。
【０１３８】
Ｓ７０３では、サーバ１０２のプッシュ指示解析部５０９は、プッシュ指示に全天周映像データのプッシュ指示があるかどうかを判断する。プッシュ指示解析部５０９は、
・全天周映像データを要求するプッシュ指示。
・全天周映像データの投影方式を指示するプッシュ指示。
・全天周映像データの着目領域を指示するプッシュ指示。
のいずれかを含む場合、全天周映像データのプッシュ指示があると判断する。全天周映像データのプッシュ指示がある場合（Ｓ７０３でＹＥＳ）はＳ７０４へ進み、全天周映像データのプッシュ指示がない場合（Ｓ７０３でＮＯ）はＳ７２６へ進む。
【０１３９】
Ｓ７０４では、サーバ１０２のプッシュ指示解析部５０９は、プッシュ指示に、全天周映像データの投影方式を指示するプッシュ指示が含まれているかを判断する。含まれている場合（Ｓ７０４でＹＥＳ）はＳ７０５へ進み、含まれていない場合（Ｓ７０４でＮＯ）はＳ７１６へ進む。
【０１４０】
Ｓ７０５では、サーバ１０２のセグメント選択部５１１は、プッシュ指示で指示された投影方式で生成されたセグメントを保持しているかを判断する。なお、セグメント選択部は、クライアントから指示された投影方式のうち、少なくとも１つに対応している場合、Ｓ７０５でＹＥＳと判断してもよい。指示された投影方式のセグメントを保持している場合（Ｓ７０５でＹＥＳ）はＳ７０６へ進み、保持していない場合（Ｓ７０５でＮＯ）はＳ７２６へ進む。
【０１４１】
Ｓ７０６では、サーバ１０２のプッシュ指示解析部５０９は、プッシュ指示に、全天周映像データの着目領域を指示するプッシュ指示が含まれているかを判断する。着目領域の指示が含まれる場合（Ｓ７０６でＹＥＳ）はＳ７０７へ進み、含まれない場合（Ｓ７０６でＮＯ）はＳ７１２へ進む。
【０１４２】
Ｓ７０７では、サーバ１０２のセグメント選択部５１１は、指示された投影方式で指示された領域をカバーするセグメントを保持するかどうかを判断する。保持している場合（Ｓ７０７でＹＥＳ）はＳ７０８へ進み、保持していない場合（Ｓ７０７でＮＯ）はＳ７１２へ進む。
【０１４３】
Ｓ７０８では、サーバ１０２のセグメント選択部５１１は、指示された投影方式で、指示された着目領域をカバーするセグメントを選択する。そして、サーバ１０２のプッシュ応答生成部５１２は、プッシュ応答を生成する（Ｓ７０９）。プッシュ応答生成部５１２は、セグメント選択部５１１が選択したセグメントの投影方式と、領域を含むプッシュ応答を生成する。
【０１４４】
次に、サーバ１０２のＨＴＴＰ／２通信処理部５０６は、プッシュ応答生成部５１２が生成したプッシュ応答を付与し、ＭＰＤレスポンスを送信する（Ｓ７１０）。なお、サーバ１０２が選択した投影方式のみを含むＭＰＤファイルを生成して送信してもよい。これにより、クライアント１０１は再生可能なセグメントのみを含むＭＰＤファイルを処理することになる。その結果、クライアント１０１のＭＰＤファイルの解析処理負荷を低減することができる。
【０１４５】
次に、サーバ１０２のＨＴＴＰ／２通信処理部５０６は、セグメント選択部５１１が選択したセグメントをプッシュ送信する（Ｓ７１１）。そして、処理を終了する。
【０１４６】
一方、Ｓ７０７でＮＯの場合、Ｓ７１２において、サーバ１０２のセグメント選択部５１１は、指示された投影方式で、全天周映像データの全ての領域をカバーするようにセグメントを選択する。次に、サーバ１０２のプッシュ応答生成部５１２は、プッシュ応答を生成する（Ｓ７１３）。プッシュ応答生成部５１２は、セグメント選択部５１１が選択したセグメントに対応する投影方式を含むプッシュ応答を生成する。なお、プッシュ応答生成部５１２は、セグメント選択部５１１が選択したセグメントに対応する領域を、プッシュ応答に含めてもよい。そして、Ｓ７１０へ進む。
【０１４７】
また、Ｓ７０４でＮＯの場合、Ｓ７１６において、サーバ１０２のプッシュ指示解析部５０９は、プッシュ指示に、全天周映像データの着目領域を指示するプッシュ指示が含まれているかを判断する。含まれている場合（Ｓ７１６でＹＥＳ）はＳ７１７へ進み、含まれていない場合（Ｓ７１６でＮＯ）はＳ７２２へ進む。
【０１４８】
Ｓ７１７では、サーバ１０２のセグメント選択部５１１は、指示された領域をカバーするセグメントを保持するかどうかを判断する。保持している場合（Ｓ７１７でＹＥＳ）はＳ７１８へ進み、保持していない場合（Ｓ７１７でＮＯ）はＳ７２２へ進む。
【０１４９】
Ｓ７１８では、サーバ１０２のセグメント選択部５１１は、指示された領域をカバーするセグメントを選択する。セグメント選択部５１１は、複数の投影方式で生成されたセグメントから、１つ、または、複数の投影方式で生成されたセグメントを選んでもよい。
【０１５０】
次に、サーバ１０２のプッシュ応答生成部５１２は、プッシュ応答を生成する（Ｓ７１９）。プッシュ応答生成部５１２は、セグメント選択部５１１が選択したセグメントに対応する投影方式、着目領域を含むプッシュ応答を生成する。そして、Ｓ７１０へ進む。
【０１５１】
一方、Ｓ７２２では、サーバ１０２のセグメント選択部５１１は、全領域をカバーできるように、全天周映像データのセグメントを選択する。
【０１５２】
次に、サーバ１０２のプッシュ応答生成部５１２は、Ｓ７２２でセグメント選択部５１１が選択したセグメントの投影方式、着目領域を含む、プッシュ応答を生成する（Ｓ７２３）。そして、Ｓ７１０へ進む。
【０１５３】
Ｓ７０３でＮＯの場合、Ｓ７２６において、サーバ１０２のセグメント選択部５１１は、２次元の映像データセグメント、例えば正距円筒図法で生成されたセグメントを選択する。次に、サーバ１０２のプッシュ応答生成部５１２は二次元の映像データセグメントをプッシュすることを通知するプッシュ応答を生成する（Ｓ７２７）。そして、Ｓ７１０へ進む。
【０１５４】
また、Ｓ７０２において、ＭＰＤリクエストにプッシュ指示が付与されていないと判断された場合（Ｓ７０２でＮＯ）、Ｓ７３０において、サーバ１０２のＨＴＴＰ／２通信処理部５０６はＭＰＤファイルをレスポンスとして送信する（Ｓ７３０）。そして、処理を終了する。
【０１５５】
なお、本実施形態では、サーバ１０２は事前にセグメントのデータを生成して保持している例を説明したが、ライブ配信のようにセグメントをリアルタイムで生成する場合であっても本実施形態は適用可能である。その場合、サーバ１０２は、クライアントからプッシュ指示のあった投影方式、着目領域のセグメントのみを生成することで、処理負荷の低減を行うことが可能となる。
【０１５６】
また、本実施形態では、サーバ１０２のセグメント選択部５１１は、初期化セグメントとメディアセグメントを選択しているが、初期化セグメントのみを選択しプッシュ送信する場合であっても本実施形態は適用可能である。
【０１５７】
サーバ１０２の動作について、以下に補足する。
【０１５８】
○投影方式の指示がある場合
クライアントからのプッシュ指示に、複数の全天周映像データの投影処理方式が指示されている場合（Ｓ７０８、Ｓ７１２）、複数の異なる投影方式の、１つまたは複数の投影方式に対応するセグメントを選択してもよい。また、ある投影方式に対応するセグメントを選択する場合、ビットストリームの異なる複数のセグメントを選択してもよい。
【０１５９】
また、サーバ１０２は、投影方式毎の圧縮効率や、ファイルサイズなどを基準に、いずれかの投影方式を選択してもよい。
【０１６０】
○投影方式の指示がない場合
本実施形態において、投影方式の指定がない場合（Ｓ７１８、Ｓ７２２）、セグメント選択部５１１は、複数の投影方式で生成されたセグメントを選択してもよいし、単一の投影方式で生成されたセグメントを選択してもよい。
【０１６１】
○着目領域の指定がある場合
本実施形態において、着目領域を指定された場合（Ｓ７０８、Ｓ７１８）、着目領域をカバーする複数のセグメント中の１つ、又は、複数のセグメントを選んでもよい。なお、指示された着目領域が複数のビットストリームにまたがる場合、複数のビットストリームを選択し、そのビットストリームのセグメントをプッシュ送信してもよい。
【０１６２】
また、指示された着目領域を含むセグメントが複数存在する場合、その中の１つ、または、全部を選択して送信してもよい。例えば、スケーラブル符号化を用いる場合、低解像度の全領域をカバーするセグメントと、高解像度で着目領域をカバーするセグメントを生成することができる。高解像度の着目領域をカバーするセグメントをプッシュ送信すると、クライアント１０１を使用するユーザは、着目領域を高解像度で視聴できる。低解像度で全領域をカバーするセグメントをプッシュ送信すると、クライアント１０１を使用するユーザは、着目領域を変更した場合であっても途切れることなく動画の視聴が可能となる。
【０１６３】
高解像度と低解像度のセグメント両方をプッシュ送信すると、着目領域の高解像度の視聴と、着目領域を変更した場合に途切れることない動画の視聴の両立が可能となる。
【０１６４】
○着目領域の指定がない場合
本実施形態において、着目領域を指示するプッシュ指示がない場合（Ｓ７１２，Ｓ７２２、Ｓ７２６）、セグメント選択部５１１は、全ての領域をカバーするように、１つまたは複数のセグメントを選択してもよい。セグメント選択部５１１が全ての領域を含むようにセグメントをプッシュ送信することで、クライアント１０１は、どの着目領域であってもスムーズに視聴を開始し、スムーズに着目領域を切り替えることができる。
【０１６５】
また、セグメント選択部５１１は、全領域を含むセグメントを選択する代わりに、サーバが推奨する領域のセグメントを選択しプッシュ送信してもよい。ここで、サーバが推奨するセグメントは、全天周映像データのコンテンツを生成者が視聴を推奨する領域であってもよいし、他のユーザのアクセスログから、視聴しているユーザが多い領域を選択してもよい。これにより、クライアント１０１は、高画質な全天周映像データを視聴することができる。これに加えて、全天周映像データの全領域を含むセグメントをプッシュ送信すると、クライアント１０１は、高画質な全天周映像データの視聴と、着目領域の切替えをスムーズに視聴することができる。
【０１６６】
上記のように、サーバ１０２は、複数の投影方式が存在する画像データをクライアント１０１へプッシュ送信する情報処理装置である。サーバ１０２は、画像データのプッシュ送信を指示するためのプッシュ指示を通信部４０９により受信したことに応じて、画像データに係るセグメントをクライアント１０１へプッシュ送信するように通信部４０９を制御する。ここで、クライアント１０１が再生可能な投影方式に関する情報がプッシュ指示に含まれる場合に、当該投影方式により二次元平面に投影された画像データのセグメントをクライアント１０１へプッシュ送信するように通信部４０９を制御する。そのため、サーバ１０２は、クライアント１０１が再生可能な投影方式により二次元平面に展開された画像データをセグメントに分割してクライアント１０１へ送信することができる。
【０１６７】
（通信シーケンス）
次に、図１２を参照して、クライアント１０１とサーバ１０２の間の通信シーケンスについて説明する。
【０１６８】
クライアント１０１のプッシュ指示生成部３１３は、全天周映像取得のためのプッシュ指示を生成する（Ｍ８０１）。この処理は、図１０のＳ６０５またはＳ６１８の処理と同様の処理である。
【０１６９】
Ｍ８０２では、クライアント１０１は、サーバ１０２へ、プッシュ指示を付与したＭＰＤリクエストを送信する。この処理は、クライアント１０１のＳ６０６、及び、サーバ１０２のＳ７０１の処理と同様である。
【０１７０】
Ｍ８０３では、サーバ１０２は、受信したプッシュ指示をもとに、プッシュ送信するセグメントを選択する。この処理は、Ｓ７０８、Ｓ７１２、Ｓ７１８、Ｓ７２２、又は、Ｓ７２６の処理と同様である。
【０１７１】
Ｍ８０４では、サーバ１０２はプッシュ応答を生成する。この処理は、Ｓ７０９、Ｓ７１３、Ｓ７１９、Ｓ７２３、または、Ｓ７２７の処理と同様である。
【０１７２】
Ｍ８０５では、サーバ１０２は、クライアント１０１へ、プッシュ応答を付与したＭＰＤレスポンスを送信する。この処理は、サーバ１０２のＳ７１０、及び、クライアント１０１のＳ６０７の処理と同様である。
【０１７３】
Ｍ８０６では、サーバ１０２は、クライアント１０１へ、初期化セグメントをプッシュ送信する。この処理は、クライアント１０１のＳ６１０、及び、サーバ１０２のＳ７１１の処理と同様である。
【０１７４】
Ｍ８０７では、サーバ１０２は、クライアント１０１へ、メディアセグメントをプッシュ送信する。この処理も、クライアント１０１のＳ６１０、及び、サーバ１０２のＳ７１１と同様の処理である。
【０１７５】
Ｍ８０８では、クライアント１０１は、受信したセグメントをレンダリングする。この処理は、Ｓ６１２と同様の処理である。
【０１７６】
Ｍ８０９は、クライアント１０１は、レンダリングしたセグメントを表示部２０５に表示して再生する。この処理は、Ｓ６１３と同様の処理である。
【０１７７】
クライアント１０１は、Ｍ８０２において送信したプッシュ指示に基づく全てのセグメントを再生し終えて、さらに別のセグメントを受信する場合、再度、サーバ１０２へセグメントリクエスト及びプッシュ指示を送信する。すなわち、Ｍ８１０では、クライアント１０１は、サーバ１０２に対して、プッシュ指示を付与しセグメントリクエストを送信する。例えば、クライアント１０１は、ユーザからコンテンツ再生を指示されたような場合に、このようなセグメントリクエストを送信する。
【０１７８】
次に、サーバ１０２は、クライアント１０１に対して、プッシュ応答を付与し、メディアセグメントを送信する（Ｍ８１１）。さらに、サーバ１０２は、クライアント１０１に対して、メディアセグメントをプッシュ送信する（Ｍ８１２）。
【０１７９】
以上説明したように、本発明の実施形態によれば、クライアント１０１は、論理的なストリームを用いて、着目領域と周辺領域の取得を制御する。これにより、ネットワークの帯域を消費しないように、より詳細な制御が可能となる。その結果、ユーザが着目している領域の映像をシームレスに切り替えることができるようになる。
【０１８０】
また、本実施形態によれば、クライアント１０１は、サーバに対して全天周映像データのプッシュ送信を要求するプッシュ指示を送信する。これにより、クライアント１０１は、サーバ１０２からプッシュ送信された全天周映像データを受信することで、再生遅延を低減することができる。
【０１８１】
さらに、クライアント１０１は、サーバ１０２に対して、自身が処理可能な投影方式をプッシュ指示することによって、クライアントが再生可能である全天周映像データを受信できる可能性を高めることができる。その結果、帯域が限られても映像を可能な限りスムーズに視聴可能とすることが可能となる。
【０１８２】
さらに、クライアント１０１は、サーバ１０２に対して、着目領域を送信する。これにより、クライアントはサーバから、クライアントが所望する領域の全天周映像データを受信できる可能性を高めることができる。その結果、帯域が限られても、着目領域の映像を可能な限りスムーズに視聴することが可能となる。
【０１８３】
なお、上述の実施形態では、全天周映像データをプッシュ送信する場合の例を中心に説明したが、全天周映像データ以外の画像データ（静止画像を含む）を送信する場合においても効果が得られる。例えば、魚眼レンズで撮影された画像データや、超広角レンズで撮影された画像データ、及び、全天周画像データのうち、一部の領域の画像データが除かれた部分全天周画像データを送信する場合にも、本実施形態の構成による効果が得られる。また、複数の投影方式（展開方式）が存在するということは、複数の表示形式が存在するというように言い換えることも可能である。このような全天周映像以外の複数の投影方式が存在する画像データについても、その投影方式に関する情報を含むプッシュ指示を送受信することで、クライアントに適した投影方式により二次元平面に展開してプッシュ送信することが可能である。また、図７及び上述の実施形態では、クライアント１０１が処理可能な投影方式をサーバ１０２に通知する例を中心に説明したが、この形態に限らない。例えば、クライアント１０１が処理可能な複数の投影方式のうち、ユーザに選択された投影方式をサーバ１０２に通知するようにしても良い。また、クライアント１０１は、投影処理（展開処理）がされていない全天周映像データを要求する場合は、図７のprojection_type=”none”などを記述しても良い。また、クライアント１０１は、投影処理（展開処理）がされていない全天周映像データを要求する場合に、図７のprojection_typeを省略してプッシュ要求を行うようにしてもよい。この場合、サーバ１０２は、projection_typeに記述がないプッシュ要求を受信した場合、投影処理がなされていない全天周映像データをクライアント１０１に対してプッシュ送信する。
【０１８４】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１８５】
クライアント１０１、通信部２０９、能力取得部３１０、着目領域取得部３１２、プッシュ指示生成部３１３、プッシュ応答解析部３１５、サーバ１０２、通信部４０９、プレイリスト生成部５０８、プッシュ指示解析部５０９、投影処理部５１０、セグメント選択部５１１、プッシュ応答生成部５１２
【図１】
2018049386.tif 000003
【図２】
2018049386.tif 000004
【図３】
2018049386.tif 000005
【図４】
2018049386.tif 000006
【図５】
2018049386.tif 000007
【図６】
2018049386.tif 000008
【図７】
2018049386.tif 000009
【図８】
2018049386.tif 000010
【図９】
2018049386.tif 000011
【図１０】
2018049386.tif 000012
【図１１】
2018049386.tif 000013
【図１２】
2018049386.tif 000014