(57)【特許請求の範囲】
【請求項１】
方法であって、
第１の品質を有する第１のビデオストリームを再生デバイスにおいて受信することと、
少なくとも２つの第２のビデオストリームを前記再生デバイスにおいて受信することとを含み、前記少なくとも２つの第２のビデオストリームは各々、前記第１のビデオストリームの部分に対応しており、前記少なくとも２つの第２のビデオストリームは前記第１の品質と比較してより高品質である第２の品質を有しており、前記方法はさらに、
前記再生デバイスにおいて前記第１のビデオストリームを再生することと、
前記再生デバイスのユーザの視界パースペクティブに基づいて、前記少なくとも２つの第２のビデオストリームから第３のビデオストリームを選択することと、
前記再生デバイスにおいて前記第１のビデオストリームと一緒に前記第３のビデオストリームを再生することとを含み、
前記第１の品質はビットレートおよび解像度に基づいており、
前記ビットレートは最小の通信チャネル性能に基づいており、
前記解像度は前記再生デバイスに関連付けられる最小ピクセル密度に基づいている、方法。
【請求項２】
方法であって、
第１の品質を有する第１のビデオストリームを再生デバイスにおいて受信することと、
少なくとも２つの第２のビデオストリームを前記再生デバイスにおいて受信することとを含み、前記少なくとも２つの第２のビデオストリームは各々、前記第１のビデオストリームの部分に対応しており、前記少なくとも２つの第２のビデオストリームは前記第１の品質と比較してより高品質である第２の品質を有しており、前記方法はさらに、
前記再生デバイスにおいて前記第１のビデオストリームを再生することと、
前記再生デバイスのユーザの視界パースペクティブに基づいて、前記少なくとも２つの第２のビデオストリームから第３のビデオストリームを選択することと、
前記再生デバイスにおいて前記第１のビデオストリームと一緒に前記第３のビデオストリームを再生することと、
前記第１のビデオストリームをバッファリングすることとを含み、
前記再生デバイスにおいて前記第１のビデオストリームと一緒に前記第３のビデオストリームを再生することは、
前記第１のビデオストリームの対応する部分を前記第３のビデオストリームに置換することと、
前記再生デバイス上でその結果をレンダリングすることと、
前記第３のビデオストリームに問題が存在することを判定することとを含み、
前記第３のビデオストリームに問題が存在することを判定する際に、バッファリングされた前記第１のビデオストリームは前記再生デバイス上でレンダリングされる、方法。
【請求項３】
方法であって、
第１の品質を有する第１のビデオストリームを再生デバイスにおいて受信することと、
少なくとも２つの第２のビデオストリームを前記再生デバイスにおいて受信することとを含み、前記少なくとも２つの第２のビデオストリームは各々、前記第１のビデオストリームの部分に対応しており、前記少なくとも２つの第２のビデオストリームは前記第１の品質と比較してより高品質である第２の品質を有しており、前記方法はさらに、
前記再生デバイスにおいて前記第１のビデオストリームを再生することと、
前記再生デバイスのユーザの視界パースペクティブに基づいて、前記少なくとも２つの第２のビデオストリームから第３のビデオストリームを選択することと、
前記再生デバイスにおいて前記第１のビデオストリームと一緒に前記第３のビデオストリームを再生することとを含み、
前記再生デバイスはヘッドマウントディスプレイ（ＨＭＤ）であり、
前記再生デバイスにおいて前記第１のビデオストリームと一緒に前記第３のビデオストリームを再生することは、
前記ＨＭＤの左目または右目ディスプレイのうちの一方の上で前記第１のビデオストリームをレンダリングすることと、
前記ＨＭＤの前記左目または右目ディスプレイのうちの他方の上で前記第３のビデオストリームをレンダリングすることとを含む、方法。
【請求項４】
方法であって、
第１の品質を有する第１のビデオストリームを再生デバイスにおいて受信することと、
少なくとも２つの第２のビデオストリームを前記再生デバイスにおいて受信することとを含み、前記少なくとも２つの第２のビデオストリームは各々、前記第１のビデオストリームの部分に対応しており、前記少なくとも２つの第２のビデオストリームは前記第１の品質と比較してより高品質である第２の品質を有しており、前記方法はさらに、
前記再生デバイスにおいて前記第１のビデオストリームを再生することと、
前記再生デバイスのユーザの視界パースペクティブに基づいて、前記少なくとも２つの第２のビデオストリームから第３のビデオストリームを選択することと、
前記再生デバイスにおいて前記第１のビデオストリームと一緒に前記第３のビデオストリームを再生することとを含み、
前記少なくとも２つの第２のビデオストリームは、異なるタイムスタンプにてエンコードされる関連付けられるキーフレームを有する、方法。
【請求項５】
方法であって、
第１の品質を有する第１のビデオストリームを再生デバイスにおいて受信することと、
少なくとも２つの第２のビデオストリームを前記再生デバイスにおいて受信することとを含み、前記少なくとも２つの第２のビデオストリームは各々、前記第１のビデオストリームの部分に対応しており、前記少なくとも２つの第２のビデオストリームは前記第１の品質と比較してより高品質である第２の品質を有しており、前記方法はさらに、
前記再生デバイスにおいて前記第１のビデオストリームを再生することと、
前記再生デバイスのユーザの視界パースペクティブに基づいて、前記少なくとも２つの第２のビデオストリームから第３のビデオストリームを選択することと、
前記再生デバイスにおいて前記第１のビデオストリームと一緒に前記第３のビデオストリームを再生することと、
前記少なくとも２つの第２のビデオストリームの各々が前記再生デバイスの閲覧可能しきい値内にあるかどうか判定することと、
前記少なくとも２つの第２のビデオストリームが前記再生デバイスの前記閲覧可能しきい値内にあると判定する際に、前記少なくとも２つの第２のビデオストリームをデコードすることと、
前記少なくとも２つの第２のビデオストリームが前記再生デバイスの前記閲覧可能しきい値内にないと判定する際に、前記少なくとも２つの第２のビデオストリームをデコードすることをスキップすることとを含む、方法。
【請求項６】
前記再生デバイスの前記ユーザの前記視界パースペクティブが変化したことを判定することと、
変化した前記視界パースペクティブに基づいて、前記少なくとも２つの第２のビデオストリームから第４のビデオストリームを選択することと、
前記再生デバイスにおいて前記第１のビデオストリームと一緒に前記第４のビデオストリームを再生することとをさらに含む、請求項１〜請求項５のいずれか１項に記載の方法。
【請求項７】
第１の品質でビデオのフレームをエンコードすることと、
前記第１の品質と比較してより高品質である第２の品質で前記ビデオの前記フレームの少なくとも２つの部分をエンコードすることと、
前記ビデオの前記フレームを格納することと、
前記ビデオの前記フレームの前記少なくとも２つの部分を格納することとを含み、
前記第２の品質で前記ビデオの前記フレームの前記少なくとも２つの部分をエンコーディングすることは、異なるタイムスタンプを有するキーフレームを使用して前記ビデオの前記フレームの前記少なくとも２つの部分の各々をエンコードすることを含む、方法。
【請求項８】
前記ビデオの前記フレームをストリーミングすることと、
前記ビデオの前記フレームの前記少なくとも２つの部分をストリーミングすることとをさらに含む、請求項７に記載の方法。
【請求項９】
再生デバイスに関連付けられる動きの量を示すものを受信することと、
前記動きに基づいて、前記ビデオの前記フレームの前記少なくとも２つの部分に関連付けられるサイズを適合することとをさらに含む、請求項７または請求項８に記載の方法。
【請求項１０】
ビデオをストリーミングする要求を受信することと、
前記ビデオの前記フレームと、前記ビデオの前記フレームの前記少なくとも２つの部分
のうちの１つとを用いてフレームを構築することと、
構築された前記フレームをストリーミングすることとをさらに含む、請求項７〜請求項９のいずれか１項に記載の方法。
【請求項１１】
前記ビデオの前記フレームは球面ビデオに関連付けられており、
前記ビデオの前記フレームをエンコードすることは、
キューブマップとして前記ビデオの前記フレームを投影することと、
等角サンプリングアルゴリズムを使用して前記キューブマップをエンコードすることとを含む、請求項７〜請求項１０のいずれか１項に記載の方法。
【請求項１２】
前記ビデオの前記フレームは球面ビデオに関連付けられており、前記方法はさらに、
キューブマップとして前記ビデオの前記フレームを投影することと、
前記キューブマップのキューブ面を選択することとを含み、
前記ビデオの前記フレームをエンコードすることは前記第１の品質で前記キューブ面をエンコードすることを含み、
前記ビデオの前記フレームの前記少なくとも２つの部分をエンコードすることは、前記第２の品質で前記キューブ面の少なくとも２つの部分をエンコードすることを含む、請求項７〜請求項１１のいずれか１項に記載の方法。
【請求項１３】
前記ビデオの前記フレームをストリーミングすることと、
前記ビデオの前記フレームの前記少なくとも２つの部分をストリーミングすることと、
再生デバイス上での再生が一時停止したということを示すものを受信することと、
前記第２の品質で前記ビデオの前記フレームをエンコードすることと、
前記第２の品質でエンコードされた前記ビデオの前記フレームをストリーミングすることとをさらに含む、請求項７に記載の方法。
【請求項１４】
前記第１の品質は、低フレームレート高解像度ストリーム、モノストリーム、低減色ストリームおよび白黒ストリームのうちの少なくとも１つに基づく、請求項７〜請求項１３のいずれか１項に記載の方法。
【請求項１５】
複数のエンコードされたフレームとして前記ビデオの前記フレームをストリーミングすることと、
第３の品質を達成するよう、前記ビデオの前記ストリーミング中に前記複数のエンコードされたフレームのうちの少なくとも１つのフレームをドロップすることとをさらに含む、請求項７〜請求項１４のいずれか１項に記載の方法。
【請求項１６】
ストリーミングサーバであって、
エンコーダを含み、前記エンコーダは、
第１の品質でビデオのフレームをエンコードすることと、
前記第１の品質と比較してより高品質である第２の品質で前記ビデオの前記フレームの少なくとも２つの部分をエンコードすることとを行うように構成され、前記ストリーミングサーバはさらに、
メモリを含み、前記メモリは、
前記ビデオの前記フレームを格納することと、
前記ビデオの前記フレームの前記少なくとも２つの部分を格納することとを行うように構成され、前記ストリーミングサーバはさらに、
コントローラを含み、前記コントローラは、
エンコードされた前記フレームと、前記ビデオの前記フレームのエンコードされた前記少なくとも２つの部分のうちの１つ以上とを含むビデオをストリーミングすることを行うように構成され、
前記第２の品質で前記ビデオの前記フレームの前記少なくとも２つの部分をエンコーディングすることは、異なるタイムスタンプを有するキーフレームを使用して前記ビデオの前記フレームの前記少なくとも２つの部分の各々をエンコードすることを含む、ストリーミングサーバ。
【請求項１７】
前記ビデオの前記フレームは球面ビデオに関連付けられており、前記エンコーダはさらに、
キューブマップとして前記ビデオの前記フレームを投影することと、
前記キューブマップのキューブ面を選択することとを行うように構成され、
前記ビデオの前記フレームをエンコードすることは前記第１の品質で前記キューブ面をエンコードすることを含み、
前記ビデオの前記フレームの前記少なくとも２つの部分をエンコードすることは、前記第２の品質で前記キューブ面の少なくとも２つの部分をエンコードすることを含む、請求項１６に記載のストリーミングサーバ。
【請求項１８】
１つ以上のプロセッサに実行されることにより、前記１つ以上のプロセッサに請求項１〜請求項１５のいずれか１項に記載の方法を実施させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
この出願は、「球面ビデオのストリーミングおよび再生（SPHERICAL VIDEO STREAMING AND PLAYBACK）」という名称を有する２０１５年５月２７日に出願された米国特許出願番号第６２／１６７，２６０号への優先権を請求しており、その全文が本願明細書において参照により援用される。
【０００２】
分野
実施形態は球面ビデオ（spherical video）をストリーミングすることに関する。
【背景技術】
【０００３】
背景
球面ビデオ（または他の３次元ビデオ）をストリーミングすることは、有意な量のシステムリソースを消費し得る。たとえば、エンコードされた球面ビデオは、送信のために多くのビットを含み得、これにより、有意な量の帯域幅が消費され得るとともに、エンコーダおよびデコーダに関連付けられる処理およびメモリが消費され得る。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
例示的な実施形態は、ビデオをストリーミングすること、３Ｄビデオをストリーミングすること、および／または、球面ビデオをストリーミングすることを最適化するシステムおよび方法を記載する。例示的な実施形態は、ビデオの再生、３Ｄビデオの再生、および／または、球面ビデオの再生を最適化するシステムおよび方法を記載する。
【０００５】
一般的な局面において、方法は、第１の品質を有する第１のビデオストリームを再生デバイスにおいて受信することと、少なくとも２つの第２のビデオストリームを再生デバイスにおいて受信することとを含み、少なくとも２つの第２のビデオストリームは各々、第１のビデオストリームの部分に対応しており、少なくとも２つの第２のビデオストリームは第１の品質と比較してより高品質である第２の品質を有しており、上記方法はさらに、再生デバイスにおいて第１のビデオストリームを再生することと、再生デバイスのユーザの視界パースペクティブに基づいて、少なくとも２つの第２のビデオストリームから第３のビデオストリームを選択することと、再生デバイスにおいて第１のビデオストリームと一緒に第３のビデオストリームを再生することとを含む。
【０００６】
実現例は、以下の特徴のうち１つ以上を含み得る。たとえば、上記方法はさらに、再生デバイスのユーザの視界パースペクティブが変化したことを判定することと、変化した視界パースペクティブに基づいて、少なくとも２つの第２のビデオストリームから第４のビデオストリームを選択することと、再生デバイスにおいて第１のビデオストリームと一緒に第４のビデオストリームを再生することを含み得る。第１の品質はビットレートおよび解像度に基づいており、ビットレートは最小の通信チャネル性能に基づいており、解像度は再生デバイスに関連付けられる最小ピクセル密度に基づいている。たとえば、上記方法はさらに、第１のビデオストリームをバッファリングすることをさらに含み得、再生デバイスにおいて第１のビデオストリームと一緒に第３のビデオストリームを再生することは、第１のビデオストリームの対応する部分を第３のビデオストリームに置換することと、再生デバイス上でその結果をレンダリングすること、第３のビデオストリームに問題が存在することを判定することとを含み、第３のビデオストリームに問題が存在することを判定する際に、バッファリングされた第１のビデオストリームは再生デバイス上でレンダリングされる。
【０００７】
再生デバイスはヘッドマウントディスプレイ（ＨＭＤ）であり、再生デバイスにおいて第１のビデオストリームと一緒に第３のビデオストリームを再生することは、ＨＭＤの左目または右目ディスプレイのうちの一方の上で第１のビデオストリームをレンダリングすることと、ＨＭＤの左目または右目ディスプレイのうちの他方の上で第３のビデオストリームをレンダリングすることとを含む。少なくとも２つの第２のビデオストリームは、異なるタイムスタンプにてエンコードされる関連付けられるキーフレームを有する。
【０００８】
たとえば、上記方法はさらに、少なくとも２つの第２のビデオストリームの各々が再生デバイスの閲覧可能しきい値内にあるかどうか判定することと、少なくとも２つの第２のビデオストリームが再生デバイスの閲覧可能しきい値内にあると判定する際に、少なくとも２つの第２のビデオストリームをデコードすることと、少なくとも２つの第２のビデオストリームが再生デバイスの閲覧可能しきい値内にないと判定する際に、少なくとも２つの第２のビデオストリームをデコードすることをスキップすることとを含み得る。
【０００９】
別の一般的な局面において、方法は第１の品質でビデオのフレームをエンコードすることと、第１の品質と比較してより高品質である第２の品質でビデオのフレームの少なくとも２つの部分をエンコードすることと、ビデオのフレームを格納することと、ビデオのフレームの少なくとも２つの部分を格納することとを含む。
【００１０】
実現例は、以下の特徴の１つ以上を含み得る。たとえば、上記方法はさらに、ビデオのフレームをストリーミングすることと、ビデオのフレームの少なくとも２つの部分をストリーミングすることとを含み得る。第２の品質でビデオのフレームの少なくとも２つの部分をエンコーディングすることは、異なるタイムスタンプを有するキーフレームを使用してビデオのフレームの少なくとも２つの部分の各々をエンコードすることを含む。たとえば、上記方法はさらに、再生デバイスに関連付けられる動きの量を示すものを受信することと、動きに基づいて、ビデオのフレームの少なくとも２つの部分に関連付けられるサイズを適合することとを含み得る。ビデオをストリーミングする要求を受信することと、ビデオのフレームと、ビデオのフレームの少なくとも２つの部分のうちの１つとを用いてフレームを構築することと、構築されたフレームをストリーミングすることとである。ビデオのフレームは球面ビデオに関連付けられており、ビデオのフレームをエンコードすることは、キューブマップとしてビデオのフレームを投影することと、等角サンプリングアルゴリズムを使用してキューブマップをエンコードすることとを含む。
【００１１】
ビデオのフレームは球面ビデオに関連付けられており、上記方法はさらに、キューブマップとしてビデオのフレームを投影することと、キューブマップのキューブ面を選択することとを含む。ビデオのフレームをエンコードすることは第１の品質でキューブ面をエンコードすることを含み、ビデオのフレームの少なくとも２つの部分をエンコードすることは、第２の品質でキューブ面の少なくとも２つの部分をエンコードすることを含む。たとえば、上記方法はさらに、ビデオのフレームをストリーミングすることと、ビデオのフレームの少なくとも２つの部分をストリーミングすることと、再生デバイス上での再生が一時停止したということを示すものを受信することと、第２の品質でビデオのフレームをエンコードすることと、第２の品質でエンコードされたビデオのフレームをストリーミングすることとを含み得る。第１の品質は、低フレームレート高解像度ストリーム、モノストリーム、低減色ストリームおよび白黒ストリームのうちの少なくとも１つに基づく。たとえば、上記方法はさらに、複数のエンコードされたフレームとしてビデオのフレームをストリーミングすることと、第３の品質を達成するよう、ビデオのストリーミング中に複数のエンコードされたフレームのうちの少なくとも１つのフレームをドロップすることとを含み得る。
【００１２】
さらに別の一般的な局面において、サーバおよび／またはストリーミングサーバは、エンコーダ、メモリおよびコントローラを含む。エンコーダは、第１の品質でビデオのフレームをエンコードすることと、第１の品質と比較してより高品質である第２の品質でビデオのフレームの少なくとも２つの部分をエンコードすることとを行うように構成される。メモリは、ビデオのフレームを格納することと、ビデオのフレームの少なくとも２つの部分を格納することとを行うように構成される。コントローラは、エンコードされたフレームと、ビデオのフレームのエンコードされた少なくとも２つの部分のうちの１つ以上とを含むビデオをストリーミングすることを行うように構成される。
【００１３】
実現例は、以下の特徴の１つ以上を含み得る。たとえば、第２の品質でビデオのフレームの少なくとも２つの部分をエンコーディングすることは、異なるタイムスタンプを有するキーフレームを使用してビデオのフレームの少なくとも２つの部分の各々をエンコードすることを含む。ビデオのフレームは球面ビデオに関連付けられており、エンコーダはさらに、キューブマップとしてビデオのフレームを投影することと、キューブマップのキューブ面を選択することとを行うように構成される。ビデオのフレームをエンコードすることは第１の品質でキューブ面をエンコードすることを含み、ビデオのフレームの少なくとも２つの部分をエンコードすることは、第２の品質でキューブ面の少なくとも２つの部分をエンコードすることを含む。
【００１４】
例示的な実施形態は、本願明細書において以下に提供される詳細な説明および添付の図面からより完全に理解されるであろう。当該図面においては、同様の要素が同様の参照番号によって表わされ、当該要素は、例示目的でのみ与えられており、したがって、当該例示的な実施形態の限定ではない。
【図面の簡単な説明】
【００１５】
【図１】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図２】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図３】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図４】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図５Ａ】少なくとも１つの例示的な実施形態におけるタイミング図を示す図である。
【図５Ｂ】少なくとも１つの例示的な実施形態におけるタイミング図を示す図である。
【図６】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図７】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図８】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図９】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図１０】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図１１】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図１２】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図１３】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図１４】少なくとも１つの例示的な実施形態に従った方法を示す図である。
【図１５】３Ｄバーチャルリアリティ（ＶＲ）環境において立体画像および／またはビデオをキャプチャしてレンダリングするための例示的なシステムのブロック図である。
【図１６Ａ】少なくとも１つの例示的な実施形態に従ったビデオエンコーダシステムを示す図である。
【図１６Ｂ】少なくとも１つの例示的な実施形態に従ったビデオデコーダシステムを示す図である。
【図１７Ａ】少なくとも１つの例示的な実施形態に従ったビデオエンコーダシステムについてのフロー図を示す図である。
【図１７Ｂ】少なくとも１つの例示的な実施形態に従ったビデオデコーダシステムについてのフロー図を示す図である。
【図１８】少なくとも１つの例示的な実施形態に従った球面の２次元（２Ｄ）表現を示す図である。
【図１９】少なくとも１つの例示的な実施形態に従ったシステムを示す図である。
【図２０】本願明細書に記載の技術を実現するために用いられ得るコンピュータデバイスおよびモバイルコンピュータデバイスの概略的なブロック図である。
【発明を実施するための形態】
【００１６】
なお、これらの図は、ある例示的な実施形態において利用される方法、構造および／または材料の一般的な特徴を示すように意図されており、かつ、以下に提供される記載を補足するように意図されている。しかしながら、これらの図面は、尺度決めされるべきではなく、任意の所与の実施形態の厳密な構造特性または性能特性を厳密に反映していない場合があり、例示的な実施形態が包含する値または特性の範囲を規定または限定していると解釈されるべきでない。たとえば、構造要素同士の相対的な厚さおよび位置は、明瞭さのために、低減または誇張され得る。さまざまな図面における同様または同一の参照番号の使用は、同様または同一の要素または特徴の存在を示すように意図される。
【００１７】
例示的な実施形態は、さまざまな修正例および代替的な形態を含み得るが、その実施形態は、図面において例として示されており、本願明細書において詳細に記載される。しかしながら、開示された特定の形態に例示的な実施形態を限定する意図はなく、これとは反対に、例示的な実施形態は、請求の範囲内にあるすべての修正例、同等例および代替例をカバーすることが理解されるべきである。同様の数字は、図の記載の全体にわたって同様の要素を参照する。
【００１８】
図１〜図４および図６〜図１４は、例示的な実施形態に従った方法のフローチャートである。図１〜図４および図６〜図１４に関して記載されるステップは、（たとえば図１６に示されるような）装置に関連付けられるメモリ（たとえば少なくとも１つのメモリ１６１０）に格納されるソフトウェアコードの実行により行なわれ得る。当該ソフトウェアコードは、上記装置に関連付けられる少なくとも１つのプロセッサ（たとえば少なくとも１つのプロセッサ１６０５）によって実行される。しかしながら、特殊目的プロセッサとして具現化されるシステムのような代替的な実施形態が考えられる。以下に記載されるステップは、プロセッサによって実行されるものとして記載されるが、ステップは必ずしも同じプロセッサによって実行されるわけではない。言いかえれば、少なくとも１つのプロセッサが、図１〜図４および図６〜図１４に関して以下に記載されるステップを実行し得る。
【００１９】
例示的な実現例に従うと、球面ビデオおよび／または球面ビデオのフレームに関して、球面の異なる部分をカバーする複数の異なる視界パースペクティブ（view perspective）がエンコードされ得る。なんらかの間隔で（たとえばユーザが移動すると）、ユーザが見ている品質に最も重点を置いている（球面ビデオの）ストリームが選択またはスイッチングされ得る。例示的な実現例に従うと、球面ビデオの全球面の低解像度ビデオレイヤーがストリーミングされ得るとともに、動的にスイッチングされる高解像度視点ビデオがストリーミングされ、低解像度ビデオの上に合成され得る。各々が球面の一部分をカバーする高品質ストリームおよび低品質ストリームは、ユーザの視界パースペクティブに基づいて動的にスイッチングされ得る。高解像度ビデオと低解像度ビデオとの間の境界は、解像度の変化を隠すために混合され得る（たとえば、ピクセルがそれらの間で互い違いにされ得る）。解像度を向上させ、したがってレンダリングされるビデオの品質を向上させるために、ビデオタイルの最大４分木のような構造（full-on quadtree like structure）が詳細を充填するよう使用され得る。さらに、球面の閲覧部分についての高解像度と、同じフレームにおける当該球面の残りの低解像度表現とをパックする単一の動的にスイッチングされるストリームが利用され得る。例示的な実現例は、ユーザが速く振り向く場合において全球面について示すべき画像を有し得るが、ユーザがじっと見ているところにのみ高解像度画像を提供する。例示的な実現例は、クライアント側の複雑さ（複数のストリームを同期／デコードすること）およびサーバのストレージコストなどにおけるトレードオフを考慮し得る。
【００２０】
図１は、少なくとも１つの例示的な実施形態に従ったストリーミング球面ビデオのストリーム同士の間でスイッチングするための方法を示す。図１に示されるように、ステップＳ１０５では、球面ビデオのフレームが第１の品質でエンコードされる。たとえば、フレームは、球面ビデオがディスプレイ（たとえばヘッドマウントディスプレイ（ＨＭＤ： head mount display））上で再生される場合に最小のユーザ体験を提供するように構成される品質（たとえばビットレートおよび解像度）でエンコードされ得る。したがって、ビットレートは最小の通信チャネル性能に基づき得、解像度は最小のピクセル密度に基づき得る。
【００２１】
ステップＳ１１０において、エンコードされたフレームは、第１のビデオストリームのフレームとしてサーバデバイスに格納される。たとえば、エンコードされたフレームは、ユーザデバイスからの要求に基づいて将来の再生のために格納され得る。
【００２２】
ステップＳ１１５において、当該フレームの複数の部分が、視界パースペクティブに基づいて第２の品質でエンコードされる。たとえば、第２の品質は第１の品質より高品質であり得る。第２の品質は、再生時においてより高いピクセル密度を有する解像度に基づき得、および／または、第１の品質に関連付けられるビットレートより高いビットレート（たとえばより多くのデータ）のために構成される。当該フレームの複数の部分は、たとえばＨＭＤのユーザによって閲覧されると予想される部分であり得る。１つの例示的な実現例では、フレーム全体は、部分に分割され、フレームの複数の部分としてエンコードされる。
【００２３】
ステップＳ１２０において、当該フレームの複数の部分は、複数の第２のビデオストリームとしてサーバデバイスに格納される。たとえば、フレームのエンコードされた複数の部分は、ユーザデバイスからの要求に基づいた将来の再生のために格納され得る。
【００２４】
ステップＳ１２５において、第１のビデオストリームは再生デバイスにストリーミングされる。たとえば、第１のビデオストリームは、ＨＭＤ上での再生のための基本的または最小の体験のビデオとしてストリーミングされ得る。
【００２５】
ステップＳ１３０において、複数の第２のビデオストリームの少なくとも１つは再生デバイスにストリーミングされる。たとえば、第２のストリームは、視界パースペクティブ（または球面ビデオの閲覧者が現在焦点を合わせているもの）に基づいて複数の第２のビデオストリームから選択され得る。
【００２６】
ステップＳ１３５において、再生デバイスでは、第１のビデオストリームは、再生デバイス上で（表示のために）再生またはレンダリングされる。たとえば、第１のビデオストリームは、ＨＭＤ上にレンダリングおよび表示され得る。ステップＳ１４０において、再生デバイスでは、決定された視界パースペクティブに基づいて、複数の第２のビデオストリームのうちの２つ（またはそれ以上）のビデオストリームの再生がそれらの間でスイッチングされる。たとえば、ＨＭＤのユーザが視界パースペクティブを変更する（たとえば、ユーザの頭および／または目を動かす）と、ＨＭＤ上での再生のために異なる第２のビデオストリームが選択され得る。言いかえれば、（決定された）変更された視界パースペクティブに基づいて、第２のビデオストリームのうちの少なくとも２つの間でＨＭＤ上の再生が切り替わる。
【００２７】
図２は、全球面の低／中品質ストリームをバッファリングするための方法を示す。図２に示されるように、ステップＳ２０５において、球面ビデオのフレームが第１の品質でエンコードされる。たとえば、フレームは、球面ビデオがディスプレイ（たとえばヘッドマウントディスプレイ（ＨＭＤ：head mount display））上で再生される場合に最小のユーザ体験を提供するように構成される品質（たとえばビットレートおよび解像度）でエンコードされ得る。したがって、ビットレートは最小の通信チャネル性能に基づき得、解像度は最小のピクセル密度に基づき得る。その後、エンコードされたフレームは、再生デバイスにストリーミングされる（Ｓ２１０）。その後、エンコードされたフレームは、再生デバイスにおいてバッファリングされる（Ｓ２１５）。たとえば、エンコードされたストリーミングされたフレームは、再生デバイスのメモリ（または再生デバイスに関連付けられるメモリ）にバッファリングされる（またはキューに入れられる）。
【００２８】
ステップＳ２２０において、当該フレームの複数の部分が、視界パースペクティブに基づいて第２の品質でエンコードされる。たとえば、第２の品質は第１の品質より高品質であり得る。第２の品質は、再生時においてより高いピクセル密度を有する解像度に基づき得、および／または、第１の品質に関連付けられるビットレートより高いビットレート（たとえばより多くのデータ）のために構成され得る。当該フレームの複数の部分は、たとえばＨＭＤのユーザによって閲覧されると予想される部分であり得る。１つの例示的な実現例では、フレーム全体は、部分に分割され、フレームの複数の部分としてエンコードされる。その後、フレームのエンコードされた複数の部分は、再生デバイスにストリーミングされる（Ｓ２２５）。再生デバイスは、最小または第１の品質でエンコードされたフレームと、第２の品質でエンコードされたフレームの複数の部分（のうちの１つ以上）とを組み合わせ得る。その後、その結果が再生デバイス上でレンダリングされ得る。
【００２９】
ステップＳ２３０において、再生デバイスにおいてフレームのエンコードされた部分に問題が存在するかどうかが判断される。たとえば、ストリームが再生位置に追いつく間ビデオが意図せず一時停止する（たとえばストリームをダウンロードする際における）レイテンシーが存在し得る。フレームのエンコードされた部分に問題が存在する場合（Ｓ２３０）、球面ビデオの再生は、対応するバッファリングされたビデオにスイッチングされる。言いかえれば、問題が存在する場合、バッファリングされたビデオストリームが再生デバイス上でレンダリングされる。たとえば、再生デバイスは、バッファ（またはキュー）に格納されたバッファリングされた（低品質の）球面ビデオを読み出し、デコードし、レンダリングし、表示し得る。
【００３０】
ユーザが最近、相対的にゆっくり移動しているかまたは１つのエリアを凝視している場合、例示的な実現例は、相対的により高品質で球面の相対的により小さな領域をストリーミングし得る。ユーザが自身の頭をしばしば動かしている場合、例示的な実現例は、中程度の品質で球面のより大きな部分をストリーミングし得る。例示的な実現例に従うと、頭の動きの平均レベル（速度およびカバーされる球面の量など）は、ある期間にわたって決定（あるいは測定）され得、適切な高品質領域サイズが選択され得る。
【００３１】
図３は、頭の動きの量に基づいて高品質の領域のサイズを適合するための方法を示す。図３に示されるように、ステップＳ３０５では、頭および／または目の動きの量が決定される。たとえば、閲覧者の目（または頭）の方位（または方位の変化）を検出するように方位センサが構成され得る。たとえば、方位センサは、動きを検出するために加速度計を含み得、また、方位を検出するためにジャイロスコープを含み得る。代替的または付加的には、方位センサは、閲覧者の目または頭の方位を決定するために、閲覧者の目または頭に焦点を合わせたカメラまたは赤外線センサを含み得る。動きの量は、しきい値またはしきい値の範囲に基づき得る。
【００３２】
動きの量がしきい値を上回るか、または、しきい値の範囲の範囲内にある場合（ステップＳ３１０）、球面ビデオの部分のサイズが、当該動きに基づいて適合される。たとえば、ユーザが自身の頭を相対的にゆっくり動かしているか、または、１つのエリアを凝視している場合、例示的な実現例は、相対的により高品質で球面の相対的により小さな領域をストリーミングし得る。ユーザが自身の頭をしばしば動かしている場合、例示的な実現例は、中程度の品質で球面のより大きな部分をストリーミングし得る。
【００３３】
球面ビデオを表わす球面のあらかじめエンコードされた部分のセットがある品質でエンコードされる場合、当該球面ビデオ（またはその部分）は、たとえば現在の視界パースペクティブに基づいて、あらかじめエンコードされた部分を単一のビデオビットストリームへとスティッチング（stitch）することにより、あらかじめエンコードされた部分を使用して再構築され得る。球面ビデオの再構築は、オンデマンドであり得、サーバ上で行なわれ得る。
【００３４】
図４は、オンデマンドでビデオビットストリームを構築するための方法を示す。図４に示されるように、ステップＳ４０５において、球面ビデオのフレームの複数の部分が、当該フレームにおける画像に基づいて生成される。たとえば、当該複数の部分は、類似するかまたは同様の隣接した境界を有するように生成され得る。球面ビデオのフレームの複数の部分（Ｓ４１０）。たとえば、各部分は、同じ所望の品質に基づいてエンコードされ得る。
【００３５】
ステップＳ４１５において、球面ビデオのフレームのエンコードされた複数の部分は、複数のタイルとして格納される。たとえば、複数のタイルは、同じ数のピクセルを表わす同じサイズである。ステップＳ４２０において、球面ビデオをストリーミングするよう要求する。たとえば、ユーザデバイス（たとえばＨＭＤ）は、再生のために球面ビデオを要求する。サーバは、複数のタイルに基づいてビデオフレームを構築し得る（Ｓ４２５）。たとえば、隣接したタイルのピクセルを表わすビットは、デコードされたときにユーザデバイス上にレンダリングおよび表示され得る再構築されたフレームが得られる技術を使用してデータパケットに格納され得る。構築されたフレームは、球面ビデオの複数のフレームのうちの１つとしてストリーミングされる（Ｓ４３０）。
【００３６】
図５Ａは、対応する時間（Ｔ）５０５，５１０，５１５，５２０において生成されるｎ個のキーフレーム５２５，５３０，５３５，５４０を示す。キーフレームタイミングは、スイッチングレイテンシーを低減するために、視界パースペクティブにわたってずれ得る。たとえば、第１の視界パースペクティブは、タイムスタンプ０，２，４など（たとえば秒およびミリ秒など）においてキーフレームを有し得、第２の視界パースペクティブは、１，３，５，７（たとえば秒およびミリ秒など）などにおいてキーフレームを有し得る。タイムスタンプ２では、第１の視界パースペクティブが選択され得、タイムスタンプ３では、第２の視界パースペクティブが選択され得、タイムスタンプ４では、第１の視界パースペクティブが選択され得る。ずれている（変動可能または異なる）タイムスタンプによって、視界パースペクティブが同じタイムスタンプ間隔で生成されるキーフレームでエンコードされる場合よりも、視界パースペクティブ同士間のスイッチングがより速くなることが可能になり得る。
【００３７】
いくつかの研究によれば、一方の目に高解像度画像が示され、他の目に低解像度画像が示される場合、脳は、「空白を埋める」ようなことを行い得、画像が普通に（okay）見える。したがって、両目にわたるずれたキーフレーム（たとえば、左目は偶数秒ごとにストリームを有し、右目は奇数秒ごとにストリームを有する）により、知覚されるストリームスイッチング時間は、低品質ビデオから高品質ビデオにスイッチングするときから２倍になり得る。
【００３８】
可変のキーフレーム間隔も同様に使用され得る。あるシーンの最も興味深い部分が大きな動きをしている場合、キーフレーム間隔は、その動きの周辺の動きの期間の間、減少され得る。さらに、焦点および平均的な動きが、再生中にユーザ挙動のログを記録することから学習され得る。または、顕著な動きのコンピュータビジョン分析の使用によって、初期の動きのホットスポットが与えられ得る。
【００３９】
キーフレームが固定間隔（たとえば４秒ごと）で生成された場合、より速いスイッチングを可能にするために、当該タイムラインにおける異なるポイントに配置されるキーフレームで、交互のストリームがエンコードされ得る。たとえば、単一の視界パースペクティブに関連付けられる４つのストリームの場合、ストリームＡは０，４，８秒にてキーフレームを有し得、ストリームＢは１，５，９秒にてキーフレームを有し得、ストリームＣは２，６，１０秒にてキーフレームを有し得、ストリームＤは３，７，１１秒にてキーフレームを有し得る。したがって、０，１，２，または３秒のスイッチングでの視界パースペクティブが、単一のＩフレームの重い（たとえば圧縮効率が低減された）ストリームを必要とすることなく達成され得る。
【００４０】
例示的な実現例において、これらのクリップは、ストレージオーバーヘッドを低減するよう異なる長さでエンコードされ得る（たとえば、４秒ごとにキーフレームで始まる完全な４秒のストリームが存在し、その後、１秒オフセットして、そのタイムラインに１秒入ったキーフレームを有する３秒のストリームが存在し、その後、２秒オフセットした２秒のストリームが存在し、また３秒オフセットした１秒のストリームが存在する）。たとえば、ストリームＡは、０でスタートし、４の持続時間を有し得、ストリームＢは、１でスタートし、３の持続時間を有し得、ストリームＣは、２でスタートし、２の持続時間を有し得、ストリームＤは、３でスタートし、１の持続時間を有し得る。
【００４１】
図５Ｂは、複数のタイムスタンプが与えられたキーフレームを使用して、球面ビデオをエンコードするための方法を示す。図５Ｂに示されるように、ステップＳ５０５において、複数のキーフレームが、球面ビデオ内の複数の時間（またはタイムスタンプ）にてエンコードされる。たとえば、上で論じたように、キーフレームは、視界パースペクティブにわたってずれ得、および／または立体（左目／右目）視界または画像であり得る。キーフレームは、固定間隔で生成され得る。
【００４２】
ステップＳ５１０において、エンコード対象のフレームが、複数のキーフレームのうちの１つに関連付けられる。たとえば、第１の視界パースペクティブが第１のキーフレームに関連付けられ得、第２の視界パースペクティブが第２のキーフレームに関連付けられ得る。左目フレームが第１のキーフレームに関連付けられ得、右目フレームが第２のキーフレームに関連付けられ得る。次いで、エンコード対象のフレームは、当該関連付けられたキーフレームに基づいてエンコードされる（Ｓ５１５）。
【００４３】
ユーザが球面ビデオの低品質部分を見ることが予想されないユースケースでは、いくつかのフレームまたはあるフレームの部分をデコードすることがスキップされ得る。図６は、球面ビデオの低品質部分のデコーディングをスキップするための方法を示す。図６に示されるように、ステップＳ６０５では、ストリーミング球面ビデオのフレームが受信される。フレームは、複数のエンコードされた部分を含む。
【００４４】
ステップＳ６１０において、エンコードされた部分が、閲覧可能しきい値の内にあるかどうかが判定される。エンコードされた部分が閲覧可能部分内にない場合、処理は、ステップＳ６２０へと継続し、デコーディングは行なわれないかまたはスキップされる。そうでなければ、処理はステップＳ６１５へと継続し、当該部分がデコードされる。
【００４５】
正距円筒図法（equirectangular projection）は、いくつかの球面ビデオおよび／または画像には非効率的であり得る。たとえば、極部（poles）のピクセル密度には、所望よりも多くのピクセルが割り当てられる一方、閲覧者は典型的に赤道部（equator）により興味を持っている。さらに、正距円筒図法は、直線を湾曲し得、これにより、エンコードがより困難になる。キューブマップを使用して球面画像をエンコードすることがより効率的であり得る。なぜならば、各面（face）が正常なビデオのように見えるからである。したがって、各面は、ピクセル密度を変動させることを補償することなくエンコードされ得る。しかしながら、キューブマップでは、球面のサンプリングが非常に一様でなくなり得る（面の縁部／角部に向かうほどピクセルが多くなる）。例示的な実施形態において、キューブマップは、各面について９０×９０°の角度にわたって均等にサンプリングされ得る。これにより、球面の均一（または幾分均一）なサンプリングまたは等角サンプリングを提供する投影が得られる。そのため、各面は、従来のコーデックにより適切に良好に圧縮され得る。たとえば、各キューブ面は、わずかな魚眼効果（fisheye effect）を有する規則的なビデオ投影のように現われ得る。
【００４６】
図７は、球面ビデオのエンコーディングのための方法を示す。図７に示されるように、ステップＳ７０５において、球面画像またはフレームがキューブマップとして投影される。ステップＳ７１０において、キューブマップは、等角サンプリングアルゴリズムを使用してエンコードされる。たとえば、キューブマップの各面は、当該面の縁部または境界おいてよりも、面の中心においてより高いサンプリングレートでサンプリングされる。
【００４７】
図８は、球面ビデオのストリーミングのための方法を示す。図８に示されるように、ステップＳ８０５において、球面画像またはフレームのキューブマップ投影のキューブ面がエンコーディングのために選択される。
【００４８】
ステップＳ８１０において、キューブ面は第１の品質でエンコードされる。たとえば、フレームは、球面ビデオがディスプレイ（たとえばヘッドマウントディスプレイ（ＨＭＤ：head mount display））上で再生される場合に最小のユーザ体験を提供するように構成される品質（たとえばビットレートおよび解像度）でエンコードされ得る。したがって、ビットレートは最小の通信チャネル性能に基づき得、解像度は最小のピクセル密度に基づき得る。さらに、キューブ面は、等角サンプリングアルゴリズムを使用してサンプリングされ得る。
【００４９】
ステップＳ８１５において、エンコードされたキューブ面は、第１のビデオストリームのフレームの部分としてサーバデバイスに格納される。たとえば、エンコードされたキューブ面は、ユーザデバイスからの要求に基づく将来の再生のために格納され得る。
【００５０】
ステップＳ８２０において、当該キューブ面の複数の部分が、視界パースペクティブに基づいて第２の品質でエンコードされる。たとえば、第２の品質は第１の品質より高品質であり得る。第２の品質は、再生時においてより高いピクセル密度を有する解像度に基づき得、および／または、第１の品質に関連付けられるビットレートより高いビットレート（たとえばより多くのデータ）のために構成され得る。当該キューブ面の複数の部分は、たとえばＨＭＤのユーザによって閲覧されると予想される部分であり得る。１つの例示的な実現例では、キューブ面全体は、部分に分割され、フレームの複数の部分としてエンコードされる。
【００５１】
ステップＳ８２５において、当該キューブ面の複数の部分は、複数の第２のビデオストリームとしてサーバデバイスに格納される。たとえば、キューブ面のエンコードされた複数の部分は、ユーザデバイスからの要求に基づいた将来の再生のために格納され得る。
【００５２】
ステップＳ８３０において、第１のビデオストリームは再生デバイスにストリーミングされる。たとえば、第１のビデオストリームは、ＨＭＤ上での再生のための基本的または最小の体験のビデオとしてストリーミングされ得る。
【００５３】
ステップＳ８３５において、複数の第２のビデオストリームの少なくとも１つは再生デバイスにストリーミングされる。たとえば、視界パースペクティブ（または球面ビデオの閲覧者が現在焦点を合わせているもの）に基づいて複数の第２のビデオストリームから第２のストリームが選択され得る。
【００５４】
ステップＳ８４０において、再生デバイスでは、第１のビデオストリームが再生される。たとえば、第１のビデオストリームは、ＨＭＤ上にレンダリングおよび表示され得る。ステップＳ８４５において、再生デバイスでは、決定された視界パースペクティブに基づいて、複数の第２のビデオストリームのうちの２つ（またはそれ以上）のビデオストリームの再生がそれらの間でスイッチングされる。たとえば、ＨＭＤのユーザが視界パースペクティブを変更する（たとえば、ユーザの頭および／または目を動かす）と、ＨＭＤ上での再生のために異なる第２のビデオストリームが選択され得る。
【００５５】
例示的な実現例では、ビデオは、フレーム内およびフレーム間で均一な品質を有することなくストリーミングされ得る。ユーザが一時停止して周りを見回す場合、高品質（たとえば高解像度）のコンテンツが、球面画像の全球面についてストリーミングされ得る。この技術は、すべての必要な視界パースペクティブからのフレームをシーク（seek）し、デコードし、高解像度静止画像へと合成するといったように、存在するストリームを使用して実現され得る。代替的または付加的には、付加的なストリームが選択およびダウンロードされ得る。例示的な実現例では、（たとえば静止画像として）最も高いビデオ品質より高い品質のものが用いられ得、これにより、細かな詳細を検討するために一時停止することがより良好な体験になる。
【００５６】
図９は、球面ビデオのストリーミングのための方法を示す。図９に示されるように、ステップＳ９０５では、ストリーミング球面ビデオが一時停止したかどうかが判定される。ストリームビデオは第１の品質でストリーミングされる。一時停止は、再生デバイスとのユーザインタラクションに基づき得、および／または、ストリーミング球面ビデオは、なんらかのタイムスタンプにて一時停止するように構成され得る。再生デバイスは、ストリーミングサーバに一時停止を伝達し得る。
【００５７】
ステップＳ９１０において、第２の品質での球面ビデオのストリーミングがトリガされる。当該ストリーミングは、球面ビデオの全球面またはその部分を含み得る。
【００５８】
ステップＳ９１５において、第１の品質でストリーミングされるビデオが第２の品質でストリーミングされるビデオと合成される。たとえば、第２の品質でストリーミングされるビデオが、第１の品質でストリーミングされるビデオにおいて欠けているピクセルを埋め得る。たとえば、第２の品質でストリーミングされるビデオは、第１の品質でストリーミングされるビデオにおけるピクセルを置換し得る。たとえば、第２の品質でストリーミングされるビデオは、第１の品質でストリーミングされるビデオのピクセルに重畳し得る。
【００５９】
ＨＭＤを含むユースケースでは、ディスプレイの中間部分は、高品質画像を表示するべきである。したがって、例示的な実現例は、ディスプレイの中間部については高解像度コンテンツをストリーミングするべきである。さらに、視線追跡の付加により、目が見ているところに高解像度コンテンツが届けられ得る。ストリーミングレベルにおいて、当該視界パースペクティブでの狭い高品質ビデオがストリーミングされ得る。デコーディングレベルにおいて、（たとえば、ＳＶＣを使用して）中心エリアのみを完全にデコードするようにコーデックが適合され得る。レンダリングにおいて、中心領域のみが高品質でＧＰＵにアップロードされ得る（さらに、何らかのＧＰＵ帯域幅を節約することが可能になる）。
【００６０】
図１０は、球面ビデオのストリーミングのための方法を示す。図１０に示されるように、ステップＳ１００５において、ヘッドマウントディスプレイ（ＨＭＤ）位置および／または視線追跡に基づいて、ストリーミング球面ビデオについての視界パースペクティブが決定される。たとえば、閲覧者の目（または頭）の方位（または方位の変化）を検出するように、方位センサが構成され得る。たとえば、方位センサは、動きを検出するために加速度計を含み得、また、方位を検出するためにジャイロスコープを含み得る。代替的または付加的には、方位センサは、閲覧者の目または頭の方位を決定するために、閲覧者の目または頭に焦点を合わせたカメラまたは赤外線センサを含み得る。
【００６１】
ステップＳ１０１０において、人間の目の中心窩の構造および中心窩の位置の基準である中心窩基準（foveal reference）が、視界パースペクティブに基づいて決定される。たとえば、中心窩基準は、視界パースペクティブと、視線追跡を使用して決定される視界の深さとを考慮し得る。例示的な実現例では、視界の深さは、それぞれの目の間の中心窩の距離に基づいて決定され得る。言いかえれば、人間の目が異なる深さに焦点を合わせると、それぞれの目の中心窩（たとえば瞳孔）の間の距離は変わり得る。次いで、球面ビデオは、高品質画像がＨＭＤ上で中心窩基準にて表示されるようにストリーミングされる（Ｓ１０１５）。
【００６２】
図１１は、球面ビデオのストリーミングのための方法を示す。図１１に示されるように、ステップＳ１１０５において、ストリーミング球面ビデオの第１の部分は、ストリーミング球面ビデオの第２の部分に関連付けられる第２の品質より低い第１の品質でストリーミングされることが決定される。たとえば、ストリーミング球面ビデオの第１の部分が閲覧者の視界パースペクティブの外側にあると決定され得る。したがって、高品質ビデオは、ユーザ体験にとって恐らく重要ではない。
【００６３】
ステップＳ１１１０において、ストリーミング球面ビデオの第１の部分が、（１）低フレームレートの高解像度ストリーム、（２）モノストリーム、および／または、（３）低減色（もしくは白黒）のうちの少なくとも１つであるように、球面ビデオのストリーミングがトリガされる。たとえば、低フレームレートの高解像度ストリームは、画像自身がより明瞭であるので好ましい場合があるが、当該画像への変更はあまりスムーズではない場合がある。モノストリームは、低品質３Ｄストリームより好ましくあり得る。低減された色は、画像と同じほどには鮮明ではないかもしれないが、画像はより明瞭であり得る。
【００６４】
ストリームは、観察者の予測される挙動に基づいてスイッチングされ得る。たとえば、例示的な実現例は、再生デバイスのユーザがどこを次に見るか予想可能であり得る。ユーザの頭の動きを監視すると、シーンを探索する場合に左／右に振る傾向がある。方向および相対的な動きを判定することによって、ストリームはユーザの頭が次のキーフレームにおいてどこにあるかを予測することにより変更され得る。これは、可能な限り頻繁に高解像度コンテンツが見ることが可能であることを保証するために使用され得る。
【００６５】
図１２は、球面ビデオのストリーミングのための方法を示す。図１２に示されるように、ステップＳ１２０５において、ヘッドマウントディスプレイ（ＨＭＤ）のユーザの挙動が判定される。たとえば、閲覧者の目（または頭）の方位（または方位の変化）を検出するように、方位センサが構成され得る。たとえば、方位センサは、動きを検出するために加速度計を含み得、また、方位を検出するためにジャイロスコープを含み得る。代替的または付加的には、方位センサは、閲覧者の目または頭の方位を決定するために、閲覧者の目または頭に焦点を合わせたカメラまたは赤外線センサを含み得る。履歴上（たとえば最後の動き）の方位の変化が、挙動または次の動きを決定するために使用され得る。
【００６６】
ステップＳ１２１０において、決定した挙動に基づいて、ＨＭＤにストリーミングされる球面ビデオのストリームが予想される。たとえば左から右への動き（または挙動）が決定され得る。左から右への動きは、ストリーミングされるべき次の（たとえば高品質の）ストリームを予測するために使用され得る。ストリーミングされるべき次のストリームは、次のキーフレーム間隔でエンコードされ得る。その後、ステップＳ１２１５において、球面ビデオの予測されたストリームが、ＨＭＤ（またはＨＭＤに関連付けられるコンピューティングデバイス）にストリーミングされる。
【００６７】
スケーラブルビデオコーディング（ＳＶＣ： Scalable Video Coding）は、ストリームスイッチングよりも速い品質適合を可能にするように構成され得る。ストリームスイッチングおよびスケーラブルストリームの何らかのハイブリッドがさらに好ましくあり得る。
【００６８】
図１３は、球面ビデオのストリーミングのための方法を示す。ステップＳ１３０５において、図１３に示されるように、球面ビデオは第１の品質である。ステップＳ１３１０において、球面ビデオのストリーミングがトリガされる。たとえば、再生デバイスは、ビデオが通信リンクを介してストリーミングされることを要求し得る。ステップＳ１３１５において、球面ビデオの少なくとも１つのフレームは、球面ビデオについて第２の品質を達成するために、球面ビデオのストリーミングの間にドロップされる。球面ビデオについての第２の品質は、球面ビデオについての第１の品質より低い。たとえば、ストリームに低品質ストリームが指定されるユースケースにおいては、フレームは１つおきにドロップされ得る。例示的な実現例において、ストリームは、低品質の指定から高品質に変更し得る。これにより、フレームのドロップは終了し得、および／または、ドロップされるフレームをより少なくし得、これにより、より高品質のストリームが得られる。
【００６９】
テッセレーションされたメッシュ（tessellated meshes）を使用するとともに頂点レベルで歪み補正を行なうことにより、歪み補正の区分近似が与えられる。たとえば、等しい三角形サイズを仮定すると、これは、完了したメッシュ上で、レンダリング後歪み補正（distortion correction post render）を行なうことと同等である。しかしながら、付加的なレンダリングパスは必要とされない場合がある。テッセレーションされたメッシュの使用は、（１）後歪み（post distortion）が、より大きなサイズのテクスチャメッシュへのレンダリングを必要とする、（２）サンプリングがスクリーンピクセルごとに行なわれ得る、（３）１つのレンダリングパスの除去、（３）非可視画像がレンダリング時間に先立って除去され得る、（４）処理される形状量を３倍にするという代償を払って色収差が修正され得る、といった利点を有し得る。
【００７０】
図１４は、球面ビデオのストリーミングのための方法を示す。図１４に示されるように、ステップＳ１４０５において、デコードされたピクセルは、複数の頂点セットにグループ化される。たとえば、隣接するピクセルが、ポリゴン（たとえば三角形）形状にグループ化され得る。
【００７１】
ステップＳ１４１０において、複数の頂点セットは、テッセレーションされたメッシュにグループ化される。たとえば、テッセレーションされたメッシュは、キューブの形状であり得る。
【００７２】
ステップＳ１４１５において、歪み補正は、テッセレーションされたメッシュに適用される。たとえば、再生デバイス（たとえばＨＭＤ）は、たとえばレンズおよび／またはディスプレイに関連付けられる既知または決定された歪みを有し得る。この歪みは、テッセレーションされたメッシュに補正を適用することによって補正され得る。その後、ステップＳ１４２０において、歪みが補正されたテッセレーションされたメッシュが、ＨＭＤ上での表示のためにレンダリングされる。
【００７３】
図１５は、３Ｄバーチャルリアリティ（ＶＲ）環境で立体パノラマをキャプチャしてレンダリングするための例示的なシステム１５００のブロック図である。例示的なシステム１５００において、カメラリグ１５０２は、画像をキャプチャし、当該画像をネットワーク１５０４を介して提供し得るか、あるいは代替的には、分析および処理のために画像処理システム１５０６に画像を直接的に提供し得る。システム１５００のいくつかの実現例では、モバイルデバイス１５０８は、画像をネットワーク１５０４を介して提供するためのカメラリグ１５０２として機能し得る。画像がキャプチャされると、画像処理システム１５０６はたとえば、画像に対して多数の計算および処理を実行し、当該処理画像をレンダリングのためにネットワーク１５０４を介してヘッドマウントディスプレイ（ＨＭＤ）デバイス１５１０に提供し得る。いくつかの実現例では、画像処理システム１５０６はさらに、処理画像をレンダリング、記憶、またはさらなる処理のためにモバイルデバイス１５０８および／またはコンピューティングデバイス１５１２に提供し得る。
【００７４】
ＨＭＤデバイス１５１０は、バーチャルリアリティコンテンツを表示可能なバーチャルリアリティヘッドセット、眼鏡、アイピース、または他のウェアラブルデバイスを表わし得る。動作時、ＨＭＤデバイス１５１０は、受信したおよび／または処理した画像をユーザに対して再生可能なＶＲアプリケーション（図示せず）を実行し得る。いくつかの実現例では、ＶＲアプリケーションは、図１５に示すデバイス１５０６，１５０８または１５１２のうちの１つ以上によってホストされ得る。一例では、ＨＭＤデバイス１５１０は、カメラリグ１５０２がキャプチャしたシーンのビデオ再生を提供し得る。別の例では、ＨＭＤデバイス１５１０は、単一のパノラマシーンになるようスティッチングされる静止画像の再生を提供し得る。
【００７５】
カメラリグ１５０２は、ＶＲ環境でコンテンツをレンダリングするために画像データを収集するカメラ（キャプチャデバイスとも称され得る）および／または処理デバイスとして用いられるように構成され得る。カメラリグ１５０２は本願明細書では特定の機能を有するように記載されるブロック図として示されているが、リグ１５０２は他の形態を取ることができ、さらに付加的な機能を有し得る。たとえば、システム１５００の機能の記載を簡潔にするために、図１５は画像をキャプチャするカメラがリグの周りに配置されていないカメラリグ１５０２を示す。カメラリグ１５０２の他の実現例は、リグ１５０２などの円形カメラリグの周囲に配置され得る任意の数のカメラを含み得る。
【００７６】
図１５に示すように、カメラリグ１５０２は多数のカメラ１５３０および通信システム１５３２を含む。カメラ１５３０は単一のスチルカメラまたは単一のビデオカメラを含み得る。いくつかの実現例では、カメラ１５３０は、リグ１５０２の外周（たとえばリング）に沿って並んで配置された（たとえば位置した）複数のスチルカメラまたは複数のビデオカメラを含み得る。カメラ１５３０はビデオカメラ、画像センサ、立体カメラ、赤外線カメラ、および／またはモバイルデバイスであり得る。通信システム１５３２を用いて画像、命令、および／または他のカメラ関連のコンテンツがアップロードおよびダウンロードされ得る。当該通信は有線でも無線でもよく、私設網または公衆網上でインターフェイス可能である。
【００７７】
カメラリグ１５０２は、固定リグまたは回転リグとして機能するように構成され得る。リグ上の各カメラはリグの回転中心からオフセットして配置（たとえば設置）される。カメラリグ１５０２は、たとえば、３６０度回転して、シーンの３６０度ビューのすべてまたは一部をスイープしてキャプチャするように構成され得る。いくつかの実現例では、リグ１５０２は固定位置で動作するように構成され得、そのような構成では、付加的なカメラをリグに追加して、あるシーンについて付加的な外向き角度の視界をキャプチャし得る。
【００７８】
いくつかの実現例では、カメラリグ１０２は、左右にまたは背中合わせに配置される複数のデジタルビデオカメラを、それらのレンズの各々が径方向外向き方向を指し示して周囲のシーンまたは環境の異なる部分を見るように含む。いくつかの実現例では、複数のデジタルビデオカメラは、視界方向が円形カメラリグ１５０２に接している接線構成で配置される。たとえば、カメラリグ１５０２は、リグのベースに対して接線方向に配列されつつ、自身のレンズの各々が径方向外向き方向を指し示すように配置される複数のデジタルビデオカメラを含み得る。デジタルビデオカメラは、異なる方向のコンテンツをキャプチャして周囲シーンの異なる角度部分を見るように指し示され得る。
【００７９】
いくつかの実現例では、カメラはカメラリグ１５０２上においてステレオペアで配置される。そのような構成では、各ステレオペアにおける各第１のカメラはカメラリグベースの円形路に対して接線方向に配置（たとえば設置）され、左方向に（たとえばカメラレンズが左方向を指し示して）整列される。各ステレオペアにおける各第２のカメラはカメラリグベースの円形路に対して接線方向に配置（たとえば設置）され、（たとえばカメラレンズが）右方向を指し示して整列される。
【００８０】
カメラリグ１５０２上で用いられるカメラについての例示的な設定として、約６０フレーム／秒のプログレッシブスキャンモード（すなわち、ほとんどのビデオカメラの標準的な記録モードのように１行おきではなく、各ラスタ線をサンプリングしてビデオの各フレームを生成するモード）が挙げられ得る。また、カメラの各々は同一の（または同様の）設定で構成され得る。各カメラを同一の（または同様の）設定で構成することは、キャプチャ後に所望の態様で互いにスティッチングされ得る画像をキャプチャするという利点をもたらし得る。例示的な設定として、カメラの１つ以上を同じズーム、フォーカス、露光、およびシャッタスピードに設定すること、ならびに安定化機能が相関されているかまたはオフにされた状態でカメラをホワイトバランスするように設定することが挙げられ得る。
【００８１】
いくつかの実現例では、カメラリグ１５０２は１つ以上の画像またはビデオをキャプチャするために用いられる前に較正され得る。たとえば、カメラリグ１５０２上の各カメラはパノラマビデオを撮るように較正および／または構成され得る。設定は、たとえば、リグを３６０度スイープで特定の回転速度で、広視野で、時計回りまたは反時計回り方向に動作させるように構成することを含み得る。いくつかの実現例では、リグ１５０２上のカメラは、たとえば、シーンの周りのキャプチャ経路の３６０度スイープの１度毎に１フレームをキャプチャするように構成され得る。いくつかの実現例では、リグ１５０２上のカメラは、たとえば、シーンの周りのキャプチャ経路の３６０度（以下）スイープの１度毎に複数のフレームをキャプチャするように構成され得る。いくつかの実現例では、リグ１５０２上のカメラは、たとえば、１度毎に特に測定されたフレームをキャプチャする必要なしにシーンの周りのキャプチャ経路のスイープで複数のフレームをキャプチャするように構成され得る。
【００８２】
いくつかの実現例では、カメラは、同期して機能して、特定の時点でカメラリグ上のカメラからビデオをキャプチャするように構成（たとえばセットアップ）され得る。いくつかの実現例では、カメラは、同期して機能して、ある期間にわたってカメラの１つ以上からビデオの特定の部分をキャプチャするように構成され得る。カメラリグを較正する別の例は、受信画像をどのように格納するかを構成することを含み得る。たとえば、受信画像は個々のフレームまたはビデオ（たとえばａｖｉファイル、ｍｐｇファイル）として格納され得、そのように格納された画像はインターネット、別のサーバもしくはデバイスにアップロードされ得るか、またはカメラリグ１５０２上の各カメラを用いてローカルに格納され得る。いくつかの実現例では、受信画像は、エンコードされたビデオとして格納され得る。
【００８３】
画像処理システム１５０６は、補間モジュール１５１４、キャプチャ補正モジュール１５１６、およびスティッチングモジュール１５１８を含む。補間モジュール１５１６は、たとえば、デジタル画像およびビデオの一部をサンプリングし、カメラリグ１５０２からキャプチャされた隣接画像同士の間で起こると考えられる多数の補間された画像を求めるために用いられ得るアルゴリズムを表わす。いくつかの実現例では、補間モジュール１５１４は、隣接画像同士の間の補間された画像フラグメント、画像部分、および／または垂直もしくは水平画像ストリップを求めるように構成され得る。いくつかの実現例では、補間モジュール１５１４は、隣接画像内の関連画素同士の間のフローフィールド（および／またはフローベクトル）を求めるように構成され得る。フローフィールドを用いて、画像が受けた両変換、および変換を受けた処理画像が補償され得る。たとえば、フローフィールドを用いて、得られた画像の特定の画素格子の変換が補償され得る。いくつかの実現例では、補間モジュール１５１４は、周囲画像の補間によって、キャプチャされた画像の一部ではない１つ以上の画像を生成し得、生成された画像をキャプチャされた画像にインターリーブして、シーンについての付加的なバーチャルリアリティコンテンツを生成し得る。
【００８４】
キャプチャ補正モジュール１５１６は、非理想的なキャプチャセットアップを補償することによってキャプチャされた画像を補正するように構成され得る。例示的なキャプチャセットアップとして、非限定的な例では、円形カメラ軌道、平行な主（カメラ）軸、カメラ軌道に垂直な視界方向、カメラ軌道に対して接線方向である視界方向、および／または他のキャプチャ条件が挙げられ得る。いくつかの実現例では、キャプチャ補正モジュール１５１６は、画像キャプチャ時の非円形カメラ軌道、および／または画像キャプチャ時の非平行主軸の一方または両方を補償するように構成され得る。
【００８５】
キャプチャ補正モジュール１５１６は、特定の１セットの画像を調整して、カメラ同士の分離が約３０度より大きい複数のカメラを用いてキャプチャされたコンテンツを補償するように構成され得る。たとえば、カメラ同士の間の距離が４０度の場合、キャプチャ補正モジュール１５１６は、付加的なカメラからコンテンツを収集することによって、または欠けているコンテンツを補間することによって、カメラのカバー範囲不足に基づく特定のシーンにおける任意の欠けているコンテンツに対応し得る。
【００８６】
いくつかの実現例では、キャプチャ補正モジュール１５１６はさらに、１セットの画像を調整して、カメラポーズエラーなどによるカメラ誤整列を補償するように構成され得る。たとえば、カメラポーズエラー（たとえばカメラの向きおよび位置によるエラー）が画像キャプチャ時に起こると、モジュール１５１６はいくつかの画像フレームからの２つ以上の画素列同士を混合して、露光不足（もしくは画像フレーム毎の露光変化）によるおよび／または１つ以上のカメラの誤整列によるアーティファクトを含むアーティファクトを除去し得る。スティッチングモジュール１５１８は、規定された、取得された、および／または補間された画像に基づいて３Ｄ立体画像を生成するように構成され得る。スティッチングモジュール１５１８は、複数の画像部分からの画素および／または画像ストリップを混合する／スティッチングするように構成され得る。スティッチングは、たとえば補間モジュール１５１４によって求められたフローフィールドに基づき得る。たとえば、スティッチングモジュール１５１８は、１セットの画像の一部ではない補間された画像フレームを（補間モジュール１５１４から）受信し、画像フレームを１セットの画像にインターリーブし得る。インターリーブすることは、モジュール１５１８が、補間モジュール１５１４によって生成されたオプティカルフローに少なくとも部分的に基づいて画像フレームおよび１セットの画像を互いにスティッチングすることを含み得る。スティッチングされた組合せを用いて、ＶＲヘッドマウントディスプレイにおいて表示するための全ステレオパノラマが生成され得る。画像フレームは、特定のリグ上に配置されたカメラの多数のステレオペアから収集された、キャプチャ済のビデオストリームに基づき得る。そのようなリグは、カメラの約６から約８のステレオペアを含み得る。そのようなリグの他の組合せは、たとえば１２個〜１６個のペアでないカメラを含み得る。いくつかの実現例では、リグは、カメラの１つまたは２つのステレオペアを含み得る。いくつかの実現例では、リグは、リグ上に並んで位置し得るカメラの多くのステレオペアを含み得る。いくつかの実現例では、スティッチングモジュール１５１８は、少なくとも１つのステレオペアに関連付けられているポーズ情報を用いて、インターリーブを実行する前に１セットの画像の一部を予めスティッチングし得る。
【００８７】
画像処理システム１５０６のいくつかの実現例では、スティッチングモジュール１５１８は随意のコンポーネントであってもよい。たとえば、画像がエラーなしで３６０度にわたって正確なスイープ動作でキャプチャされている場合、シーンの３Ｄ立体パノラマを得るために、画像同士をスティッチングすることは必要ではない場合がある。
【００８８】
画像処理システム１５０６は、投影モジュール１５２０および画像補正モジュール１５２２をさらに含む。投影モジュール１５２０は、画像を透視平面内に投影することによって３Ｄ立体画像を生成するように構成され得る。たとえば、投影モジュール１５２０は特定の１セットの画像の投影を取得し得、画像のいくつかを平面透視投影から球面（すなわち等矩形）透視投影に変換することによって当該１セットの画像の一部の再投影を構成し得る。当該変換は投影モデリング技術を含む。
【００８９】
投影モデリングは、投影中心および投影面を規定することを含み得る。本開示に記載の例では、投影中心は、予め規定されたｘｙｚ座標系の原点（０，０，０）における光学中心を表わし得る。投影面は投影中心の前に設置され得、カメラはｘｙｚ座標系のｚ軸に沿って画像をキャプチャするように向いている。一般に、投影は、座標（ｘ，ｙ，ｚ）から投影中心までの特定の画像光線の透視平面の交点を用いて計算され得る。投影の変換は、たとえばマトリックス計算を用いて座標系を操作することによって行なわれ得る。
【００９０】
立体パノラマための投影モデリングは、単一の投影中心を有さないマルチパースペクティブ画像を用いることを一般に含む。マルチパースペクティブは典型的に円形状（球状）（図１３Ｂ参照）として示される。レンダリングは、ある座標系から別の座標系に変換する際に、近似として球面を使用し得る。
【００９１】
一般に、球面（すなわち等矩形）投影は、球面の中心が投影中心を等しく囲んでいる球状の平面を提供する。透視投影は、透視平面（たとえば２Ｄ表面）上に３Ｄオブジェクトの画像を提供してユーザの実際の視覚を近似する視界を提供する。一般に、画像は平坦な画像面（たとえばコンピュータモニタ、モバイルデバイスＬＣＤスクリーン）上にレンダリングされ得るので、投影は歪みのない視界を提供するために平面透視で示される。しかし、平面投影では３６０度の視野が可能でないので、キャプチャされた画像（たとえばビデオ）は等矩形（たとえば球面）透視で記憶され得、レンダリング時に平面透視に再投影され得る。
【００９２】
特定の再投影が完了した後、投影モジュール１５２０はＨＭＤにおいてレンダリングするために再投影された画像の部分を送信し得る。たとえば、投影モジュール１５２０は、再投影の一部をＨＭＤ１５１０における左目ディスプレイに、再投影の一部をＨＭＤ１５１０における右目ディスプレイに提供し得る。いくつかの実現例では、投影モジュール１５２０は、平面透視投影から球状透視投影に再投影することによって、垂直視差を計算および低減するように構成され得る。
【００９３】
画像補正モジュール１５２２は、透視歪みを含むがこれに限定されない歪みを補償することによって３Ｄ立体画像を生成するように構成され得る。いくつかの実現例では、画像補正モジュール１５２２は、オプティカルフローが３Ｄステレオのために維持される特定の距離を求め得、画像をセグメント化して、そのようなフローが維持されるシーンの一部のみを示し得る。たとえば、画像補正モジュール１５２２は、３Ｄステレオ画像のオプティカルフローが、たとえば、円形カメラリグ１５０２の外向きエッジから約１半径メートルから、カメラリグ１５０２の外向きエッジから約５半径メートルの間に維持されると判断し得る。したがって、画像補正モジュール１５２２は、ＨＭＤ１５１０のユーザにとって適切な視差である適切な３Ｄステレオ効果を提供しつつ、歪みのない投影においてＨＭＤ１５１０内でレンダリングするために１メートルから５メートルの間の部分が選択されることを保証し得る。
【００９４】
いくつかの実現例では、画像補正モジュール１５２２は、特定の画像を調整することによってオプティカルフローを推定し得る。当該調整は、たとえば、画像の一部を訂正すること、画像の当該一部と関連付けられている推定されたカメラポーズを求めること、および当該一部における画像同士の間のフローを求めることを含み得る。非限定的な例では、画像補正モジュール１５２２は、フローが計算されている２つの特定の画像同士の間の回転差を補償し得る。この補正は、回転差（すなわち回転フロー）に起因するフロー成分を除去するように機能し得る。そのような補正によって、変換に起因するフロー（たとえば視差フロー）がもたらされ、これは、結果として得られる画像を正確かつロバストにしつつ、フロー推定計算の複雑さを減少させることができる。いくつかの実現例では、画像補正に加えて、レンダリング前に画像に対して処理が行なわれ得る。たとえば、レンダリングが実行される前に、スティッチング、混合、または付加的な補正処理が画像に対して行なわれ得る。
【００９５】
いくつかの実現例では、画像補正モジュール１５２２は、平面透視投影に基づいていないカメラジオメトリを用いてキャプチャされた画像コンテンツに起因する投影歪みを補正し得る。たとえば、多数の異なる視界角度からの画像を補間することによって、かつ当該画像と関連付けられている視界光線を共通の原点から生じていると条件付けることによって、補正が画像に適用され得る。補間された画像はキャプチャされた画像にインターリーブされて、人間の目にとって心地よいレベルの回転視差を有して人間の目に正確に見えるバーチャルコンテンツが生成され得る。
【００９６】
例示的なシステム１５００では、デバイス１５０６，１５０８および１５１２はラップトップコンピュータ、デスクトップコンピュータ、モバイルコンピューティングデバイス、またはゲーム機であり得る。いくつかの実現例では、デバイス１５０６，１５０８および１５１２は、ＨＭＤデバイス１５１０内に配置され（たとえば設置され／位置し）得るモバイルコンピューティングデバイスであり得る。モバイルコンピューティングデバイスは、たとえば、ＨＭＤデバイス１５１０のためのスクリーンとして用いられ得る表示装置を含み得る。デバイス１５０６，１５０８および１５１２は、ＶＲアプリケーションを実行するためのハードウェアおよび／またはソフトウェアを含み得る。さらに、デバイス１５０６，１５０８および１５１２は、これらのデバイスがＨＭＤデバイス１１０の前に設置されるか、またはＨＭＤデバイス１５１０に対してある範囲の位置内に保持される場合に、ＨＭＤデバイス１５１０の３Ｄ移動を認識、監視、および追跡可能なハードウェアおよび／またはソフトウェアを含み得る。いくつかの実現例では、デバイス１５０６，１５０８および１５１２は、付加的なコンテンツをネットワーク１５０４を介してＨＭＤデバイス１５１０に提供し得る。いくつかの実現例では、デバイス１５０２，１５０６，１５０８，１５１０および１５１２は、ペアリングされるかまたはネットワーク１０４を介して接続される互いの１つ以上と接続／インターフェイス接続され得る。当該接続は有線または無線であり得る。ネットワーク１５０４は公衆通信網または私設通信網であり得る。
【００９７】
システム１５００は電子記憶装置を含み得る。電子記憶装置は、情報を電子的に記憶する非一時的な記憶媒体を含み得る。電子記憶装置は、キャプチャされた画像、取得された画像、前処理された画像、後処理された画像等を記憶するように構成され得る。開示されるカメラリグのいずれかを用いてキャプチャされた画像は、ビデオの１つ以上のストリームとして処理されて記憶され得るか、または個々のフレームとして記憶され得る。いくつかの実現例では、記憶はキャプチャ時に行われ、レンダリングはキャプチャの一部の直後に行われ、キャプチャおよび処理が同時である場合よりも早くパノラマステレオコンテンツへの高速アクセスを可能とし得る。
【００９８】
図１６Ａの例において、ビデオエンコーダシステム１６００は、少なくとも１つのコンピューティングデバイスであるかまたは当該少なくとも１つのコンピューティングデバイスを含み得、本願明細書において記載される方法を実行するように構成される事実上如何なるコンピューティングデバイスも表すと理解されるべきである。したがって、ビデオエンコーダシステム１６００は、本願明細書において記載される技術またはその異なるバージョンもしくは将来のバージョンを実現するために利用され得るさまざまなコンポーネントを含んでいることが理解され得る。例示目的として、ビデオエンコーダシステム１６００が、少なくとも１つのプロセッサ１６０５と、少なくとも１つのメモリ１６１０（たとえば一時的でないコンピュータ読取可能記憶媒体）とを含んでいることが示される。
【００９９】
図１６Ａは、少なくとも１つの例示的な実施形態に従ったビデオエンコーダシステムを示す。図１６Ａに示されるように、ビデオエンコーダシステム１６００は、少なくとも１つのプロセッサ１６０５と、少なくとも１つのメモリ１６１０と、コントローラ１６２０と、ビデオエンコーダ１６２５とを含む。少なくとも１つのプロセッサ１６０５、少なくとも１つのメモリ１６１０、コントローラ１６２０およびビデオエンコーダ１６２５は、バス１６１５を介して通信可能に結合される。
【０１００】
理解され得るように、少なくとも１つのプロセッサ１６０５は、少なくとも１つのメモリ１６１０上に格納される命令を実行するために利用され得、これにより、本願明細書において記載されるさまざまな特徴および機能または付加的もしくは代替的な特徴および機能を実現する。もちろん、少なくとも１つのプロセッサ１６０５および少なくとも１つのメモリ１６１０は、さまざまな他の目的のために利用され得る。特に、少なくとも１つのメモリ１６１０は、本願明細書において記載されるモジュールのうちのいずれかを実現するために使用され得るさまざまなタイプのメモリおよび関連するハードウェアおよびソフトウェアの例を表わすということが理解され得る。
【０１０１】
少なくとも１つのメモリ１６１０は、ビデオエンコーダシステム１６００に関連付けられるデータおよび／または情報を格納するように構成され得る。少なくとも１つのメモリ１６１０は共有されるリソースであり得る。たとえば、ビデオエンコーダシステム１６００は、（たとえばサーバ、パーソナルコンピュータおよびモバイルデバイスなどといった）より大きなシステムの要素であり得る。したがって、少なくとも１つのメモリ１６１０は、（たとえば画像／ビデオの提供、ウェブブラウジングまたは有線／無線通信といった）より大きなシステム内の他の要素に関連付けられるデータおよび／または情報を格納するように構成され得る。
【０１０２】
コントローラ１６２０は、さまざまな制御信号を生成し、かつ、ビデオエンコーダシステム１６００においてさまざまなブロックに制御信号を伝えるように構成され得る。コントローラ１６２０は、以下に記載される技術を実現するために制御信号を生成するように構成され得る。コントローラ１６２０は、例示的な実施形態に従うと、画像、画像のシーケンス、ビデオフレームおよびビデオシーケンスなどをエンコードするようビデオエンコーダ１６２５を制御するように構成され得る。たとえば、コントローラ１６２０はビデオ品質に対応する制御信号を生成し得る。
【０１０３】
ビデオエンコーダ１６２５は、ビデオストリーム入力５を受信し、圧縮された（たとえばエンコードされた）ビデオビット１０を出力するように構成され得る。ビデオエンコーダ１６２５はビデオストリーム入力５を離散ビデオフレームに変換し得る。さらに、ビデオストリーム入力５は画像であり得、したがって、圧縮された（たとえば、エンコードされた）ビデオビット１０も圧縮された画像ビットであり得る。ビデオエンコーダ１６２５はさらに、各離散ビデオフレーム（または画像）をブロックのマトリックス（以下、ブロックと称される）に変換し得る。たとえば、ビデオフレーム（または画像）は、各々が多くのピクセルを有するブロックの１６×１６，１６×８，８×８，４×４または２×２のマトリックスに変換され得る。５つの例示的なマトリックスが列挙されているが、例示的な実施形態はそれらに限定されない。
【０１０４】
圧縮ビデオビット１０は、ビデオエンコーダシステム１６００の出力を表わし得る。たとえば、圧縮ビデオビット１０は、エンコードされたビデオフレーム（またはエンコードされた画像）を表わし得る。たとえば、圧縮ビデオビット１０は、受信デバイス（図示せず）への送信が実行可能であり得る。たとえば、ビデオビットは受信デバイスへの送信のためにシステムトランシーバ（図示せず）に送信され得る。
【０１０５】
少なくとも１つのプロセッサ１６０５は、コントローラ１６２０および／またはビデオエンコーダ１６２５に関連付けられるコンピュータ命令を実行するように構成され得る。少なくとも１つのプロセッサ１６０５は共有されたリソースであり得る。たとえば、ビデオエンコーダシステム１６００は、（たとえばモバイルデバイスといった）より大きなシステムの要素であり得る。したがって、少なくとも１つのプロセッサ１６０５は、（たとえば画像／ビデオの提供、ウェブブラウジングまたは有線／無線通信といった）より大きなシステム内の他の要素に関連付けられるコンピュータ命令を実行するように構成され得る。
【０１０６】
図１６Ｂの例において、ビデオデコーダシステム１６５０は少なくとも１つのコンピューティングデバイスであり得、本願明細書において記載される方法を実行するように構成される事実上如何なるコンピューティングデバイスも表わすことが理解されるべきである。したがって、ビデオデコーダシステム１６５０は、本願明細書において記載される技術またはその異なるバージョンもしくは将来のバージョンを実現するために利用され得るさまざまなコンポーネントを含んでいることが理解され得る。例示目的として、ビデオデコーダシステム１６５０が、少なくとも１つのプロセッサ１６５５と、少なくとも１つのメモリ１６６０（たとえばコンピュータ読取可能記憶媒体）とを含んでいることが示される。
【０１０７】
したがって、理解され得るように、少なくとも１つのプロセッサ１６５５は、少なくとも１つのメモリ１６６０上に格納される命令を実行するために利用され得、これにより、本願明細書において記載されるさまざまな特徴および機能または付加的もしくは代替的な特徴および機能を実現する。もちろん、少なくとも１つのプロセッサ１６５５および少なくとも１つのメモリ１６６０は、さまざまな他の目的のために利用され得る。特に、少なくとも１つのメモリ１６６０は、本願明細書において記載されるモジュールのうちのいずれかを実現するために使用され得るさまざまなタイプのメモリおよび関連するハードウェアおよびソフトウェアの例を表わすということが理解され得る。例示的な実施形態に従うと、ビデオエンコーダシステム１６００およびビデオデコーダシステム１６５０は、（たとえばパーソナルコンピュータ、モバイルデバイスなどといった）同じより大きなシステムに含まれ得る。
【０１０８】
少なくとも１つのメモリ１６６０は、ビデオデコーダシステム１６５０に関連付けられるデータおよび／または情報を格納するように構成され得る。少なくとも１つのメモリ１６６０は共有されるリソースであり得る。たとえば、ビデオデコーダエンコーダシステム１６５０は、（たとえばパーソナルコンピュータおよびモバイルデバイスなどといった）より大きなシステムの要素であり得る。したがって、少なくとも１つのメモリ１６６０は、（たとえばウェブブラウジングまたは無線通信といった）より大きなシステム内の他の要素に関連付けられるデータおよび／または情報を格納するように構成され得る。
【０１０９】
コントローラ１６７０は、さまざまな制御信号を生成し、かつ、ビデオデコーダシステム１６５０においてさまざまなブロックに制御信号を伝えるように構成され得る。コントローラ１６７０は、以下に記載されるビデオエンコーディング／デコーディング技術を実現するために制御信号を生成するように構成され得る。コントローラ１６７０は、例示的な実施形態に従うと、ビデオフレームをデコードするようビデオデコーダ１６７５を制御するように構成され得る。
【０１１０】
ビデオデコーダ１６７５は、圧縮された（たとえばエンコードされた）ビデオビット１０入力を受信し、かつ、ビデオストリーム５を出力するように構成され得る。ビデオデコーダ１６７５は、圧縮ビデオビット１０の離散ビデオフレームをビデオストリーム５に変換し得る。さらに、圧縮された（たとえばエンコードされた）ビデオビット１０は圧縮された画像ビットであり得、したがって、ビデオストリーム５も画像であり得る。
【０１１１】
少なくとも１つのプロセッサ１６５５は、コントローラ１６７０および／またはビデオデコーダ１６７５に関連付けられるコンピュータ命令を実行するように構成され得る。少なくとも１つのプロセッサ１６５５は共有されるリソースであり得る。たとえば、ビデオデコーダシステム１６５０は、（たとえばパーソナルコンピュータおよびモバイルデバイスなどといった）より大きなシステムの要素であり得る。したがって、少なくとも１つのプロセッサ１６５５は、（たとえばウェブブラウジングまたは無線通信といった）より大きなシステム内の他の要素に関連付けられるコンピュータ命令を実行するように構成され得る。
【０１１２】
図１７Ａおよび図１７Ｂはそれぞれ少なくとも１つの例示的な実施形態に従った、図１６Ａにおいて示されるビデオエンコーダ１６２５と、図１６Ｂにおいて示されるビデオデコーダ１６７５とについてのフロー図を示す。（上記の）ビデオエンコーダ１６２５は、球面−２Ｄ表現ブロック１７０５、予測ブロック１７１０、変換ブロック１７１５、量子化ブロック１７２０、エントロピーエンコーディングブロック１７２５、逆量子化ブロック１７３０、逆変換ブロック１７３５、再構築ブロック１７４０、および、ループフィルタブロック１７４５を含む。ビデオエンコーダ１６２５の他の構造的変形例が、入力ビデオストリーム５をエンコードするために使用され得る。図１７Ａにおいて示されるように、破線が、いくつかのブロックの間の再構築パスを表わし、実線がいくつかのブロックの間の順方向パスを表わす。
【０１１３】
前述のブロックの各々は、ビデオエンコーダシステム（たとえば図１６Ａにおいて示されるように）に関連付けられるメモリ（たとえば少なくとも１つのメモリ１６１０）に格納されるとともにビデオエンコーダシステムに関連付けられる少なくとも１つのプロセッサ（たとえば少なくとも１つのプロセッサ１６０５）によって実行されるソフトウェアコードとして実行され得る。しかしながら、特殊目的プロセッサとして具現化されるビデオエンコーダのような代替的な実施形態が考えられる。たとえば、前述のブロック（単独および／または組合せ）の各々は、特定用途向け集積回路すなわちＡＳＩＣであり得る。たとえば、ＡＳＩＣは、変換ブロック１７１５および／または量子化ブロック１７２０として構成され得る。
【０１１４】
球面−２Ｄ表現ブロック１７０５は、球面フレームまたは画像を球面フレームまたは画像の２Ｄ表現にマッピングするように構成され得る。たとえば、図１８は、（たとえばフレームまたは画像として）球面１８００を示す。球面１８００（またはその部分）は、２Ｄ表面上に投影され得る。その投影はたとえば、等矩形（equirectangular）、半等矩形（semi-equirectangular）、または、立方体（cube）であり得る。
【０１１５】
予測ブロック１７１０は、ビデオフレームコヒーレンス（たとえば、以前にエンコードされたピクセルと比較して変わっていないピクセル）を利用するように構成され得る。予測は２つのタイプを含み得る。たとえば、予測はフレーム内予測およびフレーム間予測を含み得る。フレーム内予測は、同じ画像の隣接する以前にコード化されたブロックにおける基準サンプルに対して、画像のブロックにおけるピクセル値を予測することに関する。フレーム内予測においては、サンプルは、変換（たとえばエントロピーエンコーディングブロック１７２５）によってコード化される残余誤差と、予測変換コーデックのエントロピーコーディング（たとえばエントロピーエンコーディングブロック１７２５）部分とを低減する目的で、同じフレーム内の再構築されたピクセルから予測される。フレーム間予測は、以前にコード化された画像のデータに対して、画像のブロックにおけるピクセル値を予測することに関する。
【０１１６】
変換ブロック１７１５は、ピクセルの値を空間ドメインから変換ドメインにおける変換係数に変換するように構成され得る。変換係数は、通常オリジナルブロックと同じサイズである係数の二次元マトリックスに対応し得る。言いかえれば、オリジナルブロックにおけるピクセルと同じぐらい多くの変換係数が存在し得る。しかしながら、変換により、変換係数の一部は０に等しい値を有し得る。
【０１１７】
変換ブロック１７１５は、（予測ブロック１７１０からの）残差をたとえば周波数ドメインにおける変換係数に変換するように構成され得る。典型的に、変換は、カルフネン−ロエヴェ変換（ＫＬＴ： Karhunen-Loeve Transform）、離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）、特異値分解変換（ＳＶＤ： Singular Value Decomposition Transform）、および非対称離散サイン変換（ＡＤＳＴ： asymmetric discrete sine transform）を含む。
【０１１８】
量子化ブロック１７２０は、各変換係数におけるデータを低減するように構成され得る。量子化は、相対的に大きな範囲内の値から相対的に小さな範囲内の値にマッピングすることを含み得、これにより、量子化された変換係数を表わすのに必要とされるデータの量が低減される。量子化ブロック１７２０は、変換係数を、量子化変換係数または量子化レベルと称される離散量子値に変換し得る。たとえば、量子化ブロック１７２０は、変換係数に関連付けられるデータにゼロを加えるように構成され得る。たとえば、エンコーディング規準は、スカラー量子化プロセスにおける１２８個の量子化レベルを規定し得る。
【０１１９】
量子化された変換係数は、エントロピーエンコーディングブロック１７２５によってエンコードされるエントロピーである。その後、エントロピーがエンコードされた係数と、使用される予測のタイプ、運動ベクトルおよび量子化器値のようなブロックをデコードするのに必要な情報とが、圧縮ビデオビット１０として出力される。圧縮ビデオビット１０は、ランレングスエンコーディング（ＲＬＥ： run-length encoding）およびゼロランコーディング（zero-run coding）といったさまざまな技術を使用してフォーマットされ得る。
【０１２０】
図１７Ａにおける再構築パスは、ビデオエンコーダ１６２５およびビデオデコーダ１６７５（図１７Ｂに関して以下に記載される）の両方が、同じ基準フレームを使用して、圧縮ビデオビット１０（または圧縮画像ビット）をデコードすることを保証するために存在する。再構成パスは、以下により詳細に議論される、デコーディング処理の間に行なわれる機能に類似している機能を実行する。当該機能は、逆量子化ブロック１７３０において量子化された変換係数を逆量子化することと、微分残差（derivative residual）ブロック（微分残差）を作り出すために逆変換ブロック１７３５において逆量子化された変換係数を逆変換することとを含む。再構成ブロック１７４０において、予測ブロック１７１０にて予測された予測ブロックは、再構築ブロックを作り出すために、微分残差に加えられ得る。その後、ループフィルタ１７４５が、ブロッキングアーティファクトのような歪みを低減するために再構築ブロックに適用され得る。
【０１２１】
図１７Ａに関して上で記載されたビデオエンコーダ１６２５は、示されたブロックを含んでいる。しかしながら、例示的な実施形態はそれに限定されない。付加的なブロックが、使用される異なるビデオエンコーディング構成および／または技術に基づいて加えられ得る。さらに、図１７Ａに関して上で記載されたビデオエンコーダ１６２５に示されるブロックの各々は、使用される異なるビデオエンコーディング構成および/または技術に基づく随意のブロックであり得る。
【０１２２】
図１７Ｂは、圧縮ビデオビット１０（または圧縮画像ビット）をデコードするように構成されるデコーダ１６７５の概略的なブロック図である。以前に議論されたエンコーダ１６２５の再構築パスに類似しているデコーダ１６７５は、エントロピーデコーディングブロック１７５０、逆量子化ブロック１７５５、逆変換ブロック１７６０、再構築ブロック１７６５、ループフィルタブロック１７７０、予測ブロック１７７５、デブロッキングフィルタブロック１７８０、および、２Ｄ表現−球面ブロック１７８５を含む。
【０１２３】
圧縮ビデオビット１０内のデータ要素は、（たとえば、コンテキスト適応型二値算術復号化方式（Context Adaptive Binary Arithmetic Decoding）を用いて）エントロピーデコーディングブロック１７５０によってデコードされ得、これにより、量子化された変換係数のセットが生成される。逆量子化ブロック１７５５は量子化された変換係数を非量子化し、逆変換ブロック１７６０は非量子化された変換係数を（ＡＤＳＴを使用して）逆変換し、これにより、エンコーダ１６２５における再構築ステージによって作り出されたものと同一であり得る微分残差を作り出す。
【０１２４】
圧縮ビデオビット１０からデコードされたヘッダー情報を使用して、デコーダ１６７５は、エンコーダ１６７５において作り出されたのと同じ予測ブロックを作り出すよう予測ブロック１７７５を使用し得る。予測ブロックは、再構築ブロック１７６５によって再構築ブロックを作り出すよう微分残差に加えられ得る。ループフィルタブロック１７７０は、ブロッキングアーティファクトを低減するために再構築ブロックに適用され得る。デブロッキングフィルタブロック１７８０は、ブロッキング歪みを低減するために再構築ブロックに適用され得、その結果がビデオストリーム５として出力される。
【０１２５】
２Ｄ表現−球面ブロック１７８５は、球面フレームまたは画像の２Ｄ表現を球面フレームまたは画像にマッピングするように構成され得る。たとえば、図１８は、（たとえばフレームまたは画像として）球面１８００を示す。球体１８００は、以前に２Ｄ表面上に投影され得たものである。その投影はたとえば、等矩形（equirectangular）、半等矩形（semi-equirectangular）、または、立方体（cube）であり得る。球面フレームまたは画像の２Ｄ表現を球面フレームまたは画像にマッピングすることは、以前のマッピングの逆であり得る。
【０１２６】
図１７Ｂに関して上で記載されたビデオデコーダ１６７５は、示されたブロックを含んでいる。しかしながら、例示的な実施形態はそれに限定されない。付加的なブロックが、使用される異なるビデオエンコーディング構成および／または技術に基づいて加えられ得る。さらに、図１７Ｂに関して上で記載されたビデオデコーダ１６７５に示されるブロックの各々は、使用される異なるビデオエンコーディング構成および/または技術に基づく随意のブロックであり得る。
【０１２７】
エンコーダ１６２５およびデコーダはそれぞれ、球面ビデオおよび／または画像をエンコードならびに球面ビデオおよび／または画像をデコードするように構成され得る。球面画像は、球面状に組織化された複数のピクセルを含む画像である。言いかえれば、球面画像は、全方向に連続的である画像である。したがって、球面画像の閲覧者は、任意の方向（たとえば、上方向、下方向、左方向、右方向、または、その任意の組合せ）に位置を変える（たとえば自身の頭または目を動かす）ことができ、連続的に画像の一部を見ることができる。
【０１２８】
球面画像はパースペクティブを有し得る。たとえば、球面画像は、球体の画像であり得る。内部パースペクティブは、球体の中心から外方を見る視界であり得る。または、内部パースペクティブは、球体上で空間に向かって外を見ることであり得る。外部パースペクティブは、空間から球体に向かって下を見る視界であり得る。別の例として、パースペクティブは、閲覧可能なものに基づき得る。言いかえれば、閲覧可能パースペクティブは、閲覧者によって見ることができるものであり得る。閲覧可能パースペクティブは、閲覧者の前にある球面画像の一部分であり得る。たとえば、内部パースペクティブから見る場合、閲覧者は、グランド（たとえば地面）上に横たわり、空間に向かって外方を見ている。閲覧者は、画像において、月、太陽または特定の星を見る場合がある。しかしながら、閲覧者が横たわっているグランドは球面画像に含まれているが、グランドは、現在の閲覧可能パースペクティブの外部にある。この例では、閲覧者は、自身の頭を回すと、グランドが周辺の閲覧可能パースペクティブに含まれることになる。閲覧者は、反転すると、グランドが閲覧可能パースペクティブ内に存在することになる一方、月、太陽または星は閲覧可能パースペクティブ内には存在しなくなる。
【０１２９】
外部パースペクティブからの閲覧可能パースペクティブは、（たとえば画像の別の部分によって）ブロックされていない球面画像の部分であるか、および／または、視界から外れるように曲がっていない球面画像の部分であり得る。球面画像の別の部分が、球面画像を動かすこと（たとえば回転すること）によって、および／または、球面画像の移動によって、外部パースペクティブから閲覧可能パースペクティブにもたらされ得る。したがって、閲覧可能パースペクティブは、球面画像の閲覧者の閲覧可能範囲内にある球面画像の一部である。
【０１３０】
球面画像は時間に対して変化しない画像である。たとえば、地面に関係のあるような内部パースペクティブからの球面画像は、１つの位置において月および星を示し得る。その一方、球面ビデオ（または画像のシーケンス）は、時間に対して変化し得る。たとえば、地面に関係のあるような内部パースペクティブからの球面ビデオは、（たとえば地球の回転により）動く月および星ならびに／または画像（たとえば空）を横切る飛行機の筋（airplane streak）を示し得る。
【０１３１】
図１８は、球面の２次元（２Ｄ）表現である。図１８に示されるように、（たとえば球面画像としての）球面１８００は、内部パースペクティブ１８０５，１８１０、外部パースペクティブ１８１５、および、閲覧可能パースペクティブ１８２０，１８２５，１８３０の方向を示す。閲覧可能パースペクティブ１８２０は、内部パースペクティブ１８１０から閲覧される球面画像１８３５の部分であり得る。閲覧可能パースペクティブ１８２０は、内部パースペクティブ１８０５から閲覧される球面１８００の部分であり得る。閲覧可能パースペクティブ１８２５は、外部パースペクティブ１８１５から閲覧される球面１８００の部分であり得る。
【０１３２】
図１９は、少なくとも１つの例示的な実施形態に従ったシステム１９００を示す。図１９に示されるように、システム１９００は、コントローラ１６２０、コントローラ１６７０、エンコーダ１６２５、視界フレーム記憶装置１９３０、および、方位センサ１９２５を含んでいる。コントローラ１２０はさらに、視界位置制御モジュール１９０５およびタイル選択モジュール１９１０を含む。コントローラ１６７０はさらに、視界位置決定モジュール１９１５およびタイル要求モジュール１９２０を含む。
【０１３３】
例示的な実現例に従うと、方位センサ１９２５は、閲覧者の目（または頭）の方位（または方位の変化）を検出し、視界位置決定モジュール１９１５は、検出された方位に基づいて、視界、パースペクティブ、または、視界パースペクティブを決定し、また、タイル要求モジュール１９２０は、タイルもしくは複数のタイルまたはビデオストリームについての要求の部分として、視界、パースペクティブ、または、視界パースペクティブを伝える。別の例示的な実現例に従うと、方位センサ１９２５は、ディスプレイ上でレンダリングされる際の画像パン方位（image panning orientation）に基づいて方位（または方位の変化）を検出する。たとえば、ユーザは、ディスプレイ上にレンダリングされる際の球面ビデオまたは画像の部分の選択、移動、ドラッグ、および／または拡大などを行うためにマウス、トラックパッドまたは（たとえば、タッチ感知ディスプレイ上での）ジェスチャを使用し得る。
【０１３４】
タイルについての要求は、球面ビデオのフレームについての要求とともに、または、球面ビデオのフレームについての要求とは別個に通信され得る。タイルについての要求は、球面ビデオのフレームについての要求とともに、または、球面ビデオのフレームについての要求とは別個に通信され得る。たとえば、タイルについての要求は、変更された視界、パースペクティブ、または、視界パースペクティブに応答し得、これにより、以前に要求および／またはキューに入れられたタイルを置き換えることが必要になる。
【０１３５】
視界位置制御モジュール１９０５は、タイル、複数のタイル、および/またはストリームについての要求を受信および処理する。たとえば、視界位置制御モジュール１９０５は、視界に基づいて、フレームと、当該フレームにおけるタイルまたは複数のタイルの位置とを決定し得る。その後、視界位置制御モジュール１９０５は、タイル、複数のタイルまたはストリームを選択するようタイル選択モジュール１９１０に命令し得る。タイルまたは複数のタイルを選択することは、パラメータをエンコーダ１６２５へ渡すことを含み得る。パラメータは、球面ビデオ、ストリームおよび/またはタイルのエンコーディング中に使用され得る。代替的には、タイルまたは複数のタイルの選択は、視界フレーム記憶装置１９３０からタイルまたは複数のタイルを選択することを含み得る。その後、選択されたタイルまたは複数のタイルは、エンコーダ１６２５に渡され得る。別の例示的な実現例では、タイルまたは複数のタイルの選択は、あらかじめエンコードされた（あるいはあらかじめ処理された）タイル、複数のタイルまたはストリームとして、視界フレーム記憶装置１９３０からタイル、複数のタイルまたはストリームを選択することを含み得る。
【０１３６】
したがって、閲覧者の目（または頭）の方位（または方位の変化）を検出するように、方位センサ１９２５が構成され得る。たとえば、方位センサ１９２５は、動きを検出するために加速度計を含み得、また、方位を検出するためにジャイロスコープを含み得る。代替的または付加的には、方位センサ１９２５は、閲覧者の目または頭の方位を決定するために、閲覧者の目または頭に焦点を合わせたカメラまたは赤外線センサを含み得る。代替的または付加的には、方位センサ１９２５は、球面ビデオまたは画像の方位を検出するために、ディスプレイ上でレンダリングされるような球面ビデオまたは画像の部分を決定し得る。方位センサ１９２５は、方位および方位変化情報を視界位置決定モジュール１９１５に通信するように構成され得る。
【０１３７】
視界位置決定モジュール１９１５は、球面ビデオに関して視界またはパースペクティブ視界（たとえば閲覧者が現在見ている球面ビデオの部分）を決定するように構成され得る。視界、パースペクティブまたは視界パースペクティブは、球面ビデオ上の位置、ポイントまたは焦点として決定され得る。たとえば、視界は、球面ビデオ上の緯度および経度の位置であり得る。視界、パースペクティブまたは視界パースペクティブは、球面ビデオに基づいて、キューブの側として決定され得る。視界（たとえば緯度および経度位置または側）は、たとえば、ハイパーテキスト転送プロトコル（ＨＴＴＰ：Hypertext Transfer Protocol）を使用して、視界位置制御モジュール１９０５に通信され得る。
【０１３８】
視界位置制御モジュール１９０５は、球面ビデオ内のタイルまたは複数のタイルの視界位置（たとえばフレームおよびフレーム内の位置）を決定するように構成され得る。たとえば、視界位置制御モジュール１９０５は、視界位置、点または焦点（たとえば緯度および経度位置または側）を中心とする長方形を選択し得る。タイル選択モジュール１９１０は、タイルまたは複数のタイルとして長方形を選択するように構成され得る。タイル選択モジュール１９１０は、選択されたタイルもしくは複数のタイルをエンコードするようエンコーダ１６２５に（たとえばパラメータもしくは構成のセッティングを介して）命令するように構成され得、および／または、タイル選択モジュール１９１０は、視界フレーム記憶装置１９３０からタイルまたは複数のタイルを選択するように構成され得る。
【０１３９】
認識されるであろうように、図１６Ａおよび図１６Ｂにおいて示されるシステム１６００および１６５０は、図２０に関して以下に記載される一般的なコンピュータデバイス２０００および／または一般的なモバイルコンピュータデバイス２０５０の要素および/または拡張として、実現され得る。代替的または付加的には、図１６Ａおよび図１６Ｂにおいて示されるシステム１６００および１６５０は、一般的なコンピュータデバイス２０００および／または一般的なモバイルコンピュータデバイス２０５０に関して以下に記載される特徴のうちのいくつかまたはすべてを有する、一般的なコンピュータデバイス２０００および／または一般的なモバイルコンピュータデバイス２０５０とは別個のシステムにおいて実現され得る。
【０１４０】
図２０は、本願明細書において記載される技術を実現するために使用され得るコンピュータデバイスおよびモバイルコンピュータデバイスの概略的なブロック図である。図２０は、ここに記載される技術とともに用いられ得る一般的なコンピュータデバイス２０００および一般的なモバイルコンピュータデバイス２０５０の例を示す。コンピューティングデバイス２０００は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータといった、さまざまな形態のデジタルコンピュータを表わすことを意図している。コンピューティングデバイス２０５０は、携帯情報端末、セルラー電話、スマートフォン、および他の同様のコンピューティングデバイスといった、さまざまな形態のモバイルデバイスを表わすことを意図している。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は例示であることが意図されているに過ぎず、本文書に記載のおよび／または請求項に記載の本発明の実現例を限定することを意図していない。
【０１４１】
コンピューティングデバイス２０００は、プロセッサ２００２、メモリ２００４、記憶装置２００６、メモリ２００４および高速拡張ポート２０１０に接続している高速インターフェイス２００８、ならびに低速バス２０１４および記憶装置２００６に接続している低速インターフェイス２０１２を含む。コンポーネント２００２，２００４，２００６，２００８，２０１０，および２０１２の各々はさまざまなバスを用いて相互に接続されており、共通のマザーボード上にまたは他の態様で適宜搭載され得る。プロセッサ２００２は、コンピューティングデバイス２０００内で実行される命令を処理可能であり、この命令には、ＧＵＩのためのグラフィック情報を高速インターフェイス２００８に結合されているディスプレイ２０１６などの外部入出力デバイス上に表示するためにメモリ２００４内または記憶装置２００６上に記憶されている命令が含まれる。他の実現例では、複数のプロセッサおよび／または複数のバスが、複数のメモリおよび複数種類のメモリとともに必要に応じて用いられ得る。また、複数のコンピューティングデバイス２０００が接続され得、各デバイスは（たとえばサーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして）必要な動作のパーティションを提供する。
【０１４２】
メモリ２００４は情報をコンピューティングデバイス２０００内に記憶する。一実現例では、メモリ２００４は１つまたは複数の揮発性メモリユニットである。別の実現例では、メモリ２００４は１つまたは複数の不揮発性メモリユニットである。また、メモリ２００４は、磁気ディスクまたは光ディスクといった別の形態のコンピュータ読取可能媒体であってもよい。
【０１４３】
記憶装置２００６は、コンピューティングデバイス２０００に大容量記憶を提供可能である。一実現例では、記憶装置２００６は、フロッピー（登録商標）ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成におけるデバイスを含む多数のデバイスといった、コンピュータ読取可能媒体であってもよく、または当該コンピュータ読取可能媒体を含んでいてもよい。コンピュータプログラムプロダクトが情報媒体内に有形に具体化され得る。また、コンピュータプログラムプロダクトは、実行されると上述のような１つ以上の方法を実行する命令を含み得る。情報媒体は、メモリ２００４、記憶装置２００６、またはプロセッサ２００２上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体である。
【０１４４】
高速コントローラ２００８はコンピューティングデバイス２０００のための帯域幅集約的な動作を管理するのに対して、低速コントローラ２０１２はより低い帯域幅集約的な動作を管理する。そのような機能の割当ては例示に過ぎない。一実現例では、高速コントローラ２００８はメモリ２００４、ディスプレイ２０１６に（たとえばグラフィックスプロセッサまたはアクセラレータを介して）、およびさまざまな拡張カード（図示せず）を受付け得る高速拡張ポート２０１０に結合される。当該実現例では、低速コントローラ２０１２は記憶装置２００６および低速拡張ポート２０１４に結合される。さまざまな通信ポート（たとえばＵＳＢ、ブルートゥース、イーサネット（登録商標）、無線イーサネット）を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータといったネットワーキングデバイスなどの１つ以上の入出力デバイスに、たとえばネットワークアダプタを介して結合され得る。
【０１４５】
コンピューティングデバイス２０００は、図に示すように多数の異なる形態で実現されてもよい。たとえば、コンピューティングデバイス２０００は標準的なサーバ２０２０として、またはそのようなサーバのグループ内で複数回実現されてもよい。また、コンピューティングデバイス２０００はラックサーバシステム２０２４の一部として実現されてもよい。さらに、コンピューティングデバイス２０００はラップトップコンピュータ２０２２などのパーソナルコンピュータにおいて実現されてもよい。あるいは、コンピューティングデバイス２０００からのコンポーネントは、デバイス２０５０などのモバイルデバイス（図示せず）内の他のコンポーネントと組合されてもよい。そのようなデバイスの各々がコンピューティングデバイス２０００，２０５０の１つ以上を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイス２０００，２０５０で構成されてもよい。
【０１４６】
コンピューティングデバイス２０５０は、数あるコンポーネントの中でも特に、プロセッサ２０５２、メモリ２０６４、ディスプレイ２０５４などの入出力デバイス、通信インターフェイス２０６６、およびトランシーバ２０６８を含む。また、デバイス２０５０には、マイクロドライブまたは他のデバイスなどの記憶装置が提供されて付加的なストレージが提供されてもよい。コンポーネント２０５０，２０５２，２０６４，２０５４，２０６６，および２０６８の各々はさまざまなバスを用いて相互に接続されており、当該コンポーネントのいくつかは共通のマザーボード上にまたは他の態様で適宜搭載され得る。
【０１４７】
プロセッサ２０５２は、メモリ２０６４に記憶されている命令を含む、コンピューティングデバイス２０５０内の命令を実行可能である。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサは、たとえば、ユーザインターフェイス、デバイス２０５０が実行するアプリケーション、およびデバイス２０５０による無線通信の制御といった、デバイス２０５０の他のコンポーネントの協調を提供し得る。
【０１４８】
プロセッサ２０５２は、ディスプレイ２０５４に結合された制御インターフェイス２０５８およびディスプレイインターフェイス２０５６を介してユーザと通信し得る。ディスプレイ２０５４は、たとえば、ＴＦＴＬＣＤ（薄膜トランジスタ液晶ディスプレイ）もしくはＯＬＥＤ（有機発光ダイオード）ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェイス２０５６は、ディスプレイ２０５４を駆動してグラフィックおよび他の情報をユーザに提示するための適切な回路を含み得る。制御インターフェイス２０５８はユーザからコマンドを受信し、当該コマンドをプロセッサ２０５２に提出するために変換し得る。さらに、外部インターフェイス２０６２が、デバイス２０５０と他のデバイスとの隣接通信を可能にするために、プロセッサ２０５２と通信した状態で提供されてもよい。外部インターフェイス２０６２は、たとえば、ある実現例では有線通信を提供し、他の実現例では無線通信を提供してもよく、また、複数のインターフェイスが用いられてもよい。
【０１４９】
メモリ２０６４は情報をコンピューティングデバイス２０５０内に記憶する。メモリ２０６４は、１つもしくは複数のコンピュータ読取可能媒体、１つもしくは複数の揮発性メモリユニット、または１つもしくは複数の不揮発性メモリユニットの１つ以上として実現され得る。さらに、拡張メモリ２０７４が提供され、たとえばＳＩＭＭ（Single In Line Memory Module）カードインターフェイスを含み得る拡張インターフェイス２０７２を介してデバイス２０５０に接続されてもよい。このような拡張メモリ２０７４はデバイス２０５０に余分のストレージスペースを提供し得るか、またはデバイス２０５０のためのアプリケーションもしくは他の情報をさらに記憶し得る。具体的には、拡張メモリ２０７４は上述のプロセスを実行または補足するための命令を含み得、さらにセキュア情報を含み得る。ゆえに、たとえば、拡張メモリ２０７４はデバイス２０５０のためのセキュリティモジュールとして提供されてもよく、デバイス２０５０のセキュアな使用を許可する命令でプログラムされてもよい。さらに、ハッキング不可能なようにＳＩＭＭカード上に識別情報を置くといったように、セキュアなアプリケーションが付加的な情報とともにＳＩＭＭカードを介して提供されてもよい。
【０１５０】
メモリは、以下に記載のように、たとえばフラッシュメモリおよび／またはＮＶＲＡＭメモリを含み得る。一実現例では、コンピュータプログラムプロダクトが情報媒体内に有形に具体化される。コンピュータプログラムプロダクトは、実行されると上述のような１つ以上の方法を実行する命令を含む。情報媒体は、メモリ２０６４、拡張メモリ２０７４、またはプロセッサ２０５２上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体であり、これは、たとえばトランシーバ２０６８または外部インターフェイス２０６２上で受信され得る。
【０１５１】
デバイス２０５０は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス２０６６を介して無線通信し得る。通信インターフェイス２０６６は、とりわけ、ＧＳＭ（登録商標）音声通話、ＳＭＳ、ＥＭＳ、またはＭＭＳメッセージング、ＣＤＭＡ、ＴＤＭＡ、ＰＤＣ、ＷＣＤＭＡ（登録商標）、ＣＤＭＡ２０００、またはＧＰＲＳといった、さまざまなモードまたはプロトコル下の通信を提供し得る。そのような通信は、たとえば無線周波数トランシーバ２０６８を介して行われ得る。さらに、ブルートゥース（登録商標）、ＷｉＦｉ（登録商標）、または他のそのようなトランシーバ（図示せず）を用いるなどして、短距離通信が行われ得る。さらに、ＧＰＳ（全地球測位システム）レシーバモジュール２０７０が付加的なナビゲーション関連および位置関連の無線データをデバイス２０５０に提供し得、当該データはデバイス２０５０上で実行されるアプリケーションによって適宜用いられ得る。
【０１５２】
また、デバイス２０５０は、ユーザから口頭情報を受信して当該情報を使用可能なデジタル情報に変換し得る音声コーデック２０６０を用いて可聴的に通信し得る。音声コーデック２０６０も同様に、たとえばデバイス２０５０のハンドセット内で、スピーカを介すなどしてユーザに可聴音を生成し得る。そのような音は音声電話からの音を含んでいてもよく、録音された音（たとえば音声メッセージ、音楽ファイル等）を含んでいてもよく、さらに、デバイス２０５０上で実行されるアプリケーションが生成する音を含んでいてもよい。
【０１５３】
コンピューティングデバイス２０５０は、図に示すように多数の異なる形態で実現されてもよい。たとえば、コンピューティングデバイス２０５０はセルラー電話２０８０として実現されてもよい。また、コンピューティングデバイス２６５０は、スマートフォン２０８２、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
【０１５４】
上記の例示的な実施形態のうちのいくつかはフローチャートとして示される処理または方法として記載される。フローチャートは動作をシーケンシャルな処理として記載しているが、動作の多くは、並列、同時または一斉に行なわれ得る。さらに、動作の順序は再構成され得る。処理は、それらの動作が完成すると、終了し得るが、当該図に含まれていない付加的なステップを有し得る。これらの処理は、メソッド、ファンクション、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。
【０１５５】
いくつかがフローチャートによって示されている上で論じた方法は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語またはその任意の組合せによって実現され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードにおいて実現されると、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体のような機械読取可能媒体またはコンピュータ読取可能媒体に格納され得る。プロセッサは必要なタスクを実行し得る。
【０１５６】
本願明細書において開示される特定の構造的および機能的な詳細は単に、例示的な実施形態を説明する目的のための代表的なものである。しかしながら、例示的な実施形態は、多くの代替的な形態で具現化され、本願明細書において記載される実施形態のみに限定されると解釈されるべきでない。
【０１５７】
第１、第２などといった用語は、本願明細書においてさまざまな要素を記載するために使用され得るが、これらの要素はこれらの用語によって限定されるべきでないということが理解されるであろう。これらの用語は単に、１つの要素を別の要素と区別するために使用されている。たとえば、例示的な実施形態の範囲から逸脱することがなければ、第１の要素は、第２の要素と称することが可能であり、同様に、第２の要素を第１の要素と称することが可能である。本願明細書において使用されるように、「および／または」という用語は、関連付けられる列挙された項目の１つ以上のいずれかおよびすべての組合せを含む。
【０１５８】
ある要素が別の要素に接続または結合されると称される場合、ある要素は直接的に他の要素に接続または結合され得るか、または、介在要素が存在し得るということが理解されるであろう。対照的に、ある要素が別の要素に直接的に接続または直接的に結合されると称される場合、介在要素は存在しない。要素同士の関係を説明するように用いられる他の単語は、類似の態様（たとえば、「間に」と「直接的に間に」、「隣接」と「直接的に隣接」、など）で解釈されるべきである。
【０１５９】
本願明細書において使用される用語は単に特定の実施形態を説明するためのものであり、例示的な実施形態に限定するようには意図されない。本願明細書において使用されるように、「ある（a, an）」および「その（the）」といった単数形は、文脈が別の態様を明白に示していなければ、複数形も含むように意図される。「備える（comprises, comprising）」および／または「含む（includes, including）」という用語は、本願明細書において使用される場合、言及された特徴、整数、ステップ、動作、要素および／またはコンポーネントの存在を特定するが、１つ以上の他の特徴、整数、ステップ、動作、要素、コンポーネントおよび／またはそのグループの存在または追加を排除しないということがさらに理解されるであろう。
【０１６０】
さらに、いくつかの代替的な実現例では、言及された機能／動作が、図に示される順番とは異なって行われ得る。たとえば、連続して示される２つの図は実際には、関連する機能／動作に依存して、同時に実行されてもよく、または、時には逆の順序で実行されてもよい。
【０１６１】
別の態様で規定されていなければ、本願明細書において使用されるすべての用語（技術用語および科学用語を含む）は、例示的な実施形態が属する技術の当業者によって一般に理解されるのと同じ意味を有する。さらに、たとえば、一般に用いられている辞書において規定されている用語のような用語は、関連技術の文脈にあるそれらの意味と一致する意味を有すると解釈されるべきであり、理想化または過度に形式的な意味で、本願明細書においてそのように明らかに規定されていなければ、解釈されないということが理解されるであろう。
【０１６２】
ソフトウェアまたはアルゴリズム、および、コンピュータメモリ内でのデータビットに対する動作の記号的な表現に関して、上記の例示的な実施形態および対応する詳細な説明の部分が提示される。これらの記載および表現は、当業者が、他の当業者に自身の成果の実体を有効に伝えるものである。ここで使用される場合および一般的に使用される場合のアルゴリズムという用語は、所望の結果に至るステップの首尾一貫したシーケンスであると考えられる。ステップは、物理量の物理的な操作を必要とするものである。必ずではなく通常は、これらの量は、格納、転送、組み合わせ、比較、および別の態様で操作されることが可能である光学信号、電気信号、または磁気信号の形態を取る。これらの信号をビット、値、要素、記号、文字、項、または数字などと称することは、主に一般的な使用の理由により、時に簡便であると理解されている。
【０１６３】
上記の例示的な実施形態において、プログラムモジュールまたは機能的処理として実現され得る（たとえばフローチャートの形態での）行為および動作の記号的表現への参照は、特定のタスクを実行または特定の抽象データタイプを実現するとともに既存の構造要素において既存のハードウェアを使用して記述および／または実現され得るルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。そのような既存のハードウェアは、１つ以上の中央処理装置（ＣＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路、または、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）コンピュータなどを含み得る。
【０１６４】
しかしながら、これらおよび同様の用語のすべては、適切な物理量に関連付けられるべきであり、単に、これらの量に適用された簡便なラベルであるということが念頭に置かれるべきである。特に別記しない限り、あるいは、議論から明白なように、表示の処理、コンピューティング、計算、または決定といった用語は、コンピュータシステムのレジスタおよびメモリ内で物理的な電子量として表わされるデータを操作し、コンピュータシステムメモリ、レジスタ、または、他のそのような情報記憶デバイス、送信デバイスもしくは表示デバイス内の物理量として同様に表わされる他のデータへ当該データを変換するコンピュータシステムまたは同様の電子コンピューティングデバイスのアクションおよび処理を意味する。
【０１６５】
また、例示的な実施形態のソフトウェアによって実現される局面は典型的に、何らかの形態の一時的でないプログラム記憶媒体上でエンコードされるか、または、何らかのタイプの伝送媒体上で実現される。プログラム記憶媒体は、磁気的（たとえばフロッピー（登録商標）ディスクまたはハードドライブ）であるか、または、光学的（たとえば読み取り専用コンパクトディスクすなわちＣＤＲＯＭ）であり得、読み取り専用またはランダムアクセスであり得る。同様に、伝送媒体は、当該技術について公知であるツイストペア線、同軸ケーブル、光ファイバ、または、何らかの他の好適な伝送媒体であり得る。例示的な実施形態は、所与の実現例のこれらの局面によって限定されない。
【０１６６】
最後に、添付の請求の範囲は、本願明細書において記載された特徴の特定の組合せを記載しているが、本開示の範囲は、請求される特定の組合せに限定されず、その代わりに、その特定の組合せが今回、添付の請求の範囲において具体的に列挙されているかどうかに関係なく本願明細書において開示される特徴または実施形態の任意の組合せを包含するよう拡張される。
【図１】
0006501904.tif 000002
【図２】
0006501904.tif 000003
【図３】
0006501904.tif 000004
【図４】
0006501904.tif 000005
【図５Ａ】
0006501904.tif 000006
【図５Ｂ】
0006501904.tif 000007
【図６】
0006501904.tif 000008
【図７】
0006501904.tif 000009
【図８】
0006501904.tif 000010
【図９】
0006501904.tif 000011
【図１０】
0006501904.tif 000012
【図１１】
0006501904.tif 000013
【図１２】
0006501904.tif 000014
【図１３】
0006501904.tif 000015
【図１４】
0006501904.tif 000016
【図１５】
0006501904.tif 000017
【図１６Ａ】
0006501904.tif 000018
【図１６Ｂ】
0006501904.tif 000019
【図１７Ａ】
0006501904.tif 000020
【図１７Ｂ】
0006501904.tif 000021
【図１８】
0006501904.tif 000022
【図１９】
0006501904.tif 000023
【図２０】
0006501904.tif 000024