[0001]360度のビデオは、視聴者に没頭した体験(immersed experience)を提供することができる。例えば、360度のビデオは、視聴者を、仮想的に(virtually)異なる時間および/または場所に置いて、視聴者にバーチャル・リアリティ体験を提供することができる。別の例として、360度のビデオは、視聴者に、遠隔デバイス(例えば、無人航空機(unmanned aerial vehicle)、または他のデバイス)によってキャプチャされたビデオ・コンテンツの一人称視点(first-person view)を提供することができる。360度のビデオをキャプチャするための1つの方法は、全方位カメラを使用することである。全方位カメラは、ほんの少数のレンズを用いて、広視野(wide field of view)をキャプチャすることができる。結果として生じる画像は、魚眼効果を示す(exhibit)。
[0002]様々なインプリメンテーションにおいて、360度のビデオを用いて360度のビデオ中に魚眼画像を記述するパラメータを含むためのシステム、方法、コンピュータ可読媒体が提供される。360度のビデオは、次いで、魚眼画像を何らかの他の形式に変換する(transforming)ことなく、全方位カメラによってキャプチャされると記憶され、および/または送信されることができる。パラメータは、魚眼画像を、エクイレクタングラー(equirectangular)形式などの、中間形式にマッピングするために、後に使用されることができる。中間形式は、360度のビデオを記憶、送信、および/または、表示するために使用されることができる。パラメータは、魚眼画像を、球形の形式(spherical format)のような、360度のビデオプレゼンテーションにおいて表示されることができる形式に直接にマッピングするために、代替的または追加的に使用されることができる。
[0003]少なくとも1つの例に従って、ビデオデータを処理するための方法が提供される。方法は、全方位カメラによってキャプチャされた360度のビデオデータを取得することを含む。360度のビデオデータのビデオフレームは、シーンの画像を含むことができる。その画像において、シーンは、画像の円形領域にゆがませられる。方法は、全方位カメラに関連付けられたパラメータを取得することをさらに含む。パラメータは、画像の円形領域を記述することができる。方法は、360度のビデオデータを符号化することをさらに含む。方法は、符号化されたビデオデータを生成することをさらに含む。符号化されたビデオデータは、符号化された360度のビデオデータおよび全方位カメラに関連付けられたパラメータを含むことができる。
[0004]別の例において、全方位カメラによってキャプチャされた360度のビデオデータを取得するように構成されたメモリプロセッサを含む装置が提供される。360度のビデオデータのビデオフレームは、シーンの画像を含むことができる。その画像において、シーンは、画像の円形領域にゆがませられる。プロセッサは、全方位カメラに関連付けられたパラメータを取得するように構成され、およびそれを取得することができる。パラメータは、画像の円形領域を記述することができる。プロセッサは、360度のビデオデータを符号化するように構成され、およびそれを符号化することができる。プロセッサは、符号化されたビデオデータを生成するように構成され、およびそれを生成することができる。符号化されたビデオデータは、符号化された360度のビデオデータおよび全方位カメラに関連付けられたパラメータを含むことができる。
[0005]別の例において、プロセッサによって実行されると、全方位カメラによってキャプチャされた360度のビデオデータを取得することを含む方法を行う命令を記憶するコンピュータ可読媒体が提供される。360度のビデオデータのビデオフレームは、シーンの画像を含むことができる。その画像において、シーンは、画像の円形領域にゆがませられる。方法は、全方位カメラに関連付けられたパラメータを取得することをさらに含む。パラメータは、画像の円形領域を記述することができる。方法は、360度のビデオデータを符号化することをさらに含む。方法は、符号化されたビデオデータを生成することをさらに含む。符号化されたビデオデータは、符号化された360度のビデオデータおよび全方位カメラに関連付けられたパラメータを含むことができる。
[0006]別の例において、全方位カメラによってキャプチャされた360度のビデオデータを取得するための手段を含む装置が提供される。360度のビデオデータのビデオフレームは、シーンの画像を含むことができる。その画像において、シーンは、画像の円形領域にゆがませられる。装置は、全方位カメラに関連付けられたパラメータを取得するための手段をさらに含む。パラメータは、画像の円形領域を記述することができる。装置は、360度のビデオデータを符号化するための手段をさらに含む。装置は、符号化されたビデオデータを生成するための手段をさらに含む。符号化されたビデオデータは、符号化された360度のビデオデータおよび全方位カメラに関連付けられたパラメータを含むことができる。
[0007]いくつかの態様において、シーンは、画像の1つまたは複数の円形領域にゆがませられる。これらの態様において、パラメータは、1つまたは複数の円形領域の量(a quantity of)を含む。いくつかの態様において、パラメータは、円形領域の中心の水平座標を含む。いくつかの態様において、パラメータは、円形領域の中心の垂直座標を含む。いくつかの態様において、パラメータは、全半径値を含み、ここにおいて、全半径は、円形領域の中心から円形領域の外側エッジまでの距離である。いくつかの態様において、パラメータは、フレーム半径値を含み、ここにおいて、フレーム半径は、円形領域の中心から画像のエッジまでの距離である。いくつかの態様において、パラメータは、シーン半径値を含み、ここで、シーン半径は、円形領域の中心から画像においてキャプチャされた障害物(obstruction)の外側エッジまでの距離である。いくつかの態様において、パラメータは、円形領域内のシーンの回転を含み、ここにおいて、回転は、画像の向き(orientation)に関する。いくつかの態様において、パラメータは、フリップ値(flip value)を含み、ここにおいて、フリップ値は、シーンが円形領域内で反転していたかどうか、およびシーンが反転されていた方向を示す。
[0008]いくつかの態様において、パラメータは、スケーリング値を含み、ここにおいて、スケーリング値は、シーンが円形領域内でスケーリングされていたかどうか、シーンが沿ってスケーリングされていた軸、および前記シーンがスケーリングされていた分の量を示す。いくつかの態様において、パラメータは、視野値(field-of-view value)を含み、ここにおいて、視野値は、円形領域においてキャプチャされた眺めの度の数を示す。いくつかの態様において、パラメータは、圧縮曲線値を含み、ここにおいて、圧縮曲線値は、円形領域において含まれるシーンに対する円形領域の幾何学的圧縮曲線を示す。いくつかの態様において、パラメータは、使用できない画素を含む画像内の面積の量を示す値を含む。いくつかの態様において、パラメータは、使用できない画素を含む画像内の面積の位置およびサイズを含む。
[0009]いくつかの態様において、符号化されたビデオデータを生成することは、符号化された360度のビデオデータをファイルに書き込むことを含む。これらの態様において、ファイルは、国際標準化機構ベースメディアファイルフォーマット(ISOBMFF:International Standards Organization Base Media File Format)形式に従って、フォーマットされることができる。いくつかの態様において、パラメータは、ファイルレベルにおいて、ムービーレベルにおいて、またはファイルのトラックレベルにおいて含まれる。いくつかの態様において、パラメータは、制限されたスキーム情報ボックスに含まれる。
[0010]いくつかの態様において、上記に説明された、方法、装置、およびコンピュータ可読媒体は、パラメータを付加拡張情報(SEI:Supplemental Enhancement Information)メッセージに符号化することをさらに備える。SEIメッセージは、符号化された360度のビデオデータに含まれることができる。いくつかの態様において、SEIメッセージは、Advanced Video Coding(AVC)またはHigh−Efficiency Video Code(HEVC)規格に従って、フォーマットされる。
[0011]いくつかの態様において、上記に説明された、方法、装置、およびコンピュータ可読媒体は、符号化されたビデオデータを生成することは、パラメータをセッションデータプロトコル(SDP:Session Data Protocol)属性として符号化することを含むことをさらに備える。
[0012]いくつかの態様において、上記に説明された、方法、装置、およびコンピュータ可読媒体は、符号化されたビデオデータを生成することは、パラメータをメディアプレゼンテーション記述(MPD:Media Presentation Description)ファイルに書き込むことを含むことをさらに備える。
[0013]いくつかの態様において、上記に説明された、方法、装置、およびコンピュータ可読媒体は、符号化されたビデオデータを生成することは、パラメータをMotion Pictures Experts Group(MPEG)トランスポートストリームに書き込むことを含むことをさらに備える。
[0014]いくつかの態様において、上記に説明されたような装置は、モバイルデバイスを含むことができる。いくつかのインプリメンテーションにおいて、モバイルデバイスは、全方位カメラを含む。
[0015]少なくとも1つの例に従って、ビデオデータを処理するための方法が提供される。方法は、符号化されたビデオデータを取得することを含む。符号化されたビデオデータは、全方位カメラによってキャプチャされた符号化された360度のビデオデータおよび全方位カメラに関連付けられたパラメータを含む。方法は、360度のビデオデータを作り出すために、符号化されたビデオデータを復号することをさらに含む。360度のビデオデータからのビデオフレームは、シーンの画像を含むことができ、ここにおいて、その画像において、シーンは、画像の円形領域にゆがませられる。方法は、360度のビデオプレゼンテーションを生成することをさらに含む。360度のビデオプレゼンテーションを生成することは、円形領域を360度のビデオプレゼンテーションにおいて使用されることができる形式にマッピングするためにパラメータを使用することを含むことができる。
[0016]別の例において、符号化されたビデオデータを取得するように構成されたメモリプロセッサを含む装置は、提供される。符号化されたビデオデータは、全方位カメラによってキャプチャされた符号化された360度のビデオデータおよび全方位カメラに関連付けられたパラメータを含む。プロセッサは、360度のビデオデータを作り出すために、符号化されたビデオデータを復号するように構成され、およびそれを復号することができる。360度のビデオデータからのビデオフレームは、シーンの画像を含むことができ、ここにおいて、その画像において、シーンは、画像の円形領域にゆがませられる。プロセッサは、360度のビデオプレゼンテーションを生成するように構成され、およびそれを生成することができる。360度のビデオプレゼンテーションを生成することは、円形領域を360度のビデオプレゼンテーションにおいて使用されることができる形式にマッピングするためにパラメータを使用することを含むことができる。
[0017]別の例において、プロセッサによって実行されると、符号化されたビデオデータを取得することを含む方法を行う命令を記憶するコンピュータ可読媒体が提供される。符号化されたビデオデータは、全方位カメラによってキャプチャされた符号化された360度のビデオデータおよび全方位カメラに関連付けられたパラメータを含む。方法は、360度のビデオデータを作り出すために、符号化されたビデオデータを復号することをさらに含む。360度のビデオデータからのビデオフレームは、シーンの画像を含むことができ、ここにおいて、その画像において、シーンは、画像の円形領域にゆがませられる。方法は、360度のビデオプレゼンテーションを生成することをさらに含む。360度のビデオプレゼンテーションを生成することは、円形領域を360度のビデオプレゼンテーションにおいて使用されることができる形式にマッピングするためにパラメータを使用することを含むことができる。
[0018]別の例において、符号化されたビデオデータを取得するための手段を含む装置が提供される。符号化されたビデオデータは、全方位カメラによってキャプチャされた符号化された360度のビデオデータおよび全方位カメラに関連付けられたパラメータを含む。装置は、360度のビデオデータを作り出すために、符号化されたビデオデータを復号するための手段をさらに含む。360度のビデオデータからのビデオフレームは、シーンの画像を含むことができ、ここにおいて、その画像において、シーンは、画像の円形領域にゆがませられる。装置は、360度のビデオプレゼンテーションを生成するための手段をさらに含む。360度のビデオプレゼンテーションを生成することは、円形領域を360度のビデオプレゼンテーションにおいて使用されることができる形式にマッピングするためにパラメータを使用することを含むことができる。
[0019]いくつかの態様において、上記に説明された、方法、装置、およびコンピュータ可読媒体は、円形領域をエクイレクタングラー形式にマッピングすることをさらに備える。これらの態様は、360度のビデオプレゼンテーションのためにエクイレクタングラー形式を使用することをさらに含む。
[0020]いくつかの態様において、上記に説明された、方法、装置、およびコンピュータ可読媒体は、円形領域を直接に360度の形式にマッピングすることをさらに備える。これらの態様は、360度のビデオプレゼンテーションのために360度の形式を使用することをさらに含む。
[0021]いくつかの態様において、そのシーンは、画像の1つまたは複数の円形領域にゆがませられる。これらの態様において、パラメータは、1つまたは複数の円形領域の量を含む。いくつかの態様において、パラメータは、円形領域の中心の水平座標を含む。いくつかの態様において、パラメータは、円形領域の中心の垂直座標を含む。いくつかの態様において、パラメータは、全半径値を含み、ここにおいて、全半径は、円形領域の中心から円形領域の外側エッジまでの距離である。いくつかの態様において、パラメータは、フレーム半径値を含み、ここにおいて、フレーム半径は、円形領域の中心から画像のエッジまでの距離である。いくつかの態様において、パラメータは、シーン半径値を含み、ここで、シーン半径は、円形領域の中心から画像においてキャプチャされた障害物の外側エッジまでの距離である。いくつかの態様において、パラメータは、円形領域内のシーンの回転を含み、ここにおいて、回転は、画像の向きに関する。いくつかの態様において、パラメータは、フリップ値を含み、ここにおいて、フリップ値は、シーンが円形領域内で反転していたかどうか、およびシーンが反転されていた方向を示す。
[0022]いくつかの態様において、パラメータは、スケーリング値を含み、ここにおいて、スケーリング値は、シーンが円形領域内でスケーリングされていたかどうか、シーンが沿ってスケーリングされていた軸、および前記シーンがスケーリングされていた分の量を示す。いくつかの態様において、パラメータは、視野値を含み、ここにおいて、視野値は、円形領域においてキャプチャされた眺めの度の数を示す。いくつかの態様において、パラメータは、圧縮曲線値を含み、ここにおいて、圧縮曲線値は、円形領域において含まれるシーンに対する円形領域の幾何学的圧縮曲線を示す。いくつかの態様において、パラメータは、使用できない画素を含む画像内の面積の量を示す値を含む。いくつかの態様において、パラメータは、使用できない画素を含む画像内の面積の位置およびサイズを含む。
[0023]いくつかの態様において、符号化されたビデオデータは、ファイルから取得され、ここにおいて、ファイルは、国際標準化機構ベースメディアファイルフォーマット(ISOBMFF)形式に従って、フォーマットされる。いくつかの態様において、パラメータは、ファイルレベルにおいて、ムービーレベルにおいて、またはトラックレベルにおいて含まれる。いくつかの態様において、パラメータは、制限されたスキーム情報ボックスに含まれる。
[0024]いくつかの態様において、付加拡張情報(SEI)メッセージからパラメータを復号すること、ここにおいて、SEIメッセージは、符号化されたビデオデータに含まれる。いくつかの態様において、SEIメッセージは、Advanced Video Coding(AVC)またはHigh−Efficiency Video Code(HEVC)規格に従って、フォーマットされる。
[0025]いくつかの態様において、符号化されたビデオデータを復号することは、セッションデータプロトコル(SDP)属性からパラメータを取得することを含む。
[0026]いくつかの態様において、符号化されたビデオデータを復号することは、メディアプレゼンテーション記述(MPD)ファイルからパラメータを取得することを含む。
[0027]いくつかの態様において、符号化されたビデオデータを復号することは、Motion Pictures Experts Group(MPEG)トランスポートストリームからパラメータを取得することを含む。
[0028]いくつかの態様において、上記に説明されたような装置は、モバイルデバイスを含むことができる。いくつかのインプリメンテーションにおいて、モバイルデバイスは、360度のビデオプレゼンテーションを表示するためのディスプレイを含む。
[0029]この発明の概要は、特許請求された主題事項の肝要な(key)特徴または本質的な(essential)特徴を特定することを意図しておらず、特許請求された主題事項の範囲を分離して決定するために使用されることも意図していない。本主題事項は、この特許の完全な明細書、図面のいずれかまたは全て、および各請求項の、適切な部分への参照によって、理解されるべきである。
[0030]前述したことは、他の特徴および実施形態と一緒に、以下の明細書、請求項、および添付の図面を参照する際に、より明らかになるだろう。
[0031]本願の例示的な実施形態は、以下の作図を参照して、下記の詳細において説明される。
[0032]図1Aは、広視野をキャプチャするために魚眼レンズを使用する全方位カメラによってキャプチャされたビデオフレームの例を例示する。
図1Bは、広視野をキャプチャするために魚眼レンズを使用する全方位カメラによってキャプチャされたビデオフレームの例を例示する。
[0033]図2は、エクイレクタングラービデオフレームの例を例示する。
[0034]図3は、360度のビデオプレゼンテーションにおいて使用されているエクイレクタングラービデオフレームの例を例示する。
[0035]図4Aは、360度のビデオフレームにおける魚眼画像が直接に半球形表現にマッピングされている例を例示する。
図4Bは、360度のビデオフレームにおける魚眼画像が直接に半球形表現にマッピングされている例を例示する。
[0036]図5は、2つの魚眼レンズを有する全方位カメラによってキャプチャされたビデオフレームの例を例示する。
[0037]図6Aは、ビデオフレームにおいてキャプチャされた魚眼画像を記述するために使用されることができる追加のパラメータの例を例示する。
[0038]図6Bは、画像におけるカメラ本体の存在を例示するために、魚眼画像の下方部分の例を例示する。
[0039]図7は、ISOBMFFに従ってフォーマットされた、ビデオプレゼンテーションのためのデータおよびメタデータを包含するISOベースメディアファイルの例を例示する。
[0040]図8Aは、ISOベースメディアファイルにおける最高位のボックス(top-level box)が、そのファイルが、バーチャル・リアリティ・コンテンツを含むことを示すために使用される例を例示する。
図8Bは、ISOベースメディアファイルにおける最高位のボックスが、そのファイルが、バーチャル・リアリティ・コンテンツを含むことを示すために使用される例を例示する。
[0041]図9は、ムービーレベルのインジケーションが、ファイルがバーチャル・リアリティ・コンテンツを含むことを示すために、ISOベースメディアファイルにおいて使用される例を例示する。
[0042]図10は、トラックレベルインジケータが、ファイルがバーチャル・リアリティ・コンテンツを含むことを示すために、ISOベースメディアファイルにおいて使用される例を例示する。
[0043]図11は、トラックのコンテンツがバーチャル・リアリティ・コンテンツを含むことをシグナリングするためにハンドラーボックスが使用されるISOベースメディアファイルの1つの例を例示する。
[0044]図12は、トラックがバーチャル・リアリティ・コンテンツを含むことを示すために新しいハンドラーボックスが定義されていたISOベースメディアファイルの例を例示する。
[0045]図13は、ISOベースメディアファイルに含まれることができるメディアボックスの例を例示する。
[0046]図14は、ビットストリームの部分であることができるアクセスユニットの例を例示する。
[0047]図15は、ネットワーク通信のための開放型システム間相互接続(Open Systems Interconnect)モデルの例を例示する。
[0048]図16は、ビデオ・コンテンツをストリーミングするためのDASHプレゼンテーションの例を例示する。
[0049]図17は、MPEGトランスポートストリームの例を例示する。
[0050]図18は、ビデオにおいて魚眼画像を記述するパラメータを用いて、360度の魚眼ビデオを符号化するためのプロセスの例を例示する。
[0051]図19は、360度のビデオを含む符号化されたビデオデータを復号するためのプロセスの例を例示する。
[0052]図20は、符号化デバイスおよび復号デバイスを含むシステムの例を例示するブロック図である。
[0053]図21は、例となる符号化デバイスを例示するブロック図である。
[0054]図22は、例となる復号デバイスを例示するブロック図である。
詳細な説明
[0055]本開示のある特定の態様および実施形態は、以下に提示される。これらの態様および実施形態のいくつかは、当業者にとって明らかであるように、独立して適用され得、それらのいくつかは、組み合わせて適用され得る。以下の説明において、説明の目的のために、本開示の実施形態の完全な理解を提供するために、特定の詳細が記載される。しかしながら、様々な実施形態がこれらの特定の詳細なく実施され得ることが明らかであろう。図および説明は、制限的である(restrictive)ようには、意図されていない。
[0056]次に続く説明は、例示的な実施形態のみを提供しており、本開示の範囲、適用可能性、または構成を限定するようには意図されていない。むしろ、例示的な実施形態の次に続く説明は、例示的な実施形態をインプリメントするためにそれを実施可能とする(enabling)説明を当業者に提供するだろう。添付の請求項に記載された本開示の趣旨および範囲から逸脱することなく、エレメントの機能および配置において様々な変更がなされ得ることは理解されるべきである。
[0057]実施形態の徹底的な理解を提供するために、以下の説明において特定の詳細が与えられる。しかしながら、これらの実施形態が、これらの特定の詳細なしで実施され得ることは、当業者のうちの一人によって理解されるであろう。例えば、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、不必要な詳細において実施形態を曖昧にしないために、ブロック図の形式でコンポーネントとして、示され得る。他の例において、周知の回路、プロセス、アルゴリズム、構造、および技法は、実施形態を曖昧することを回避するために、不必要な詳細なしで示され得る。
[0058]また、個々の実施形態が、フローチャート、フロー図、データフロー図、構造図、またはブロック図として描かれる、プロセスとして説明され得ることに留意されたい。フローチャートは、逐次プロセスとして動作を説明し得るが、動作の多くは並行してまたはコンカレントに実行され得る。加えて、動作の順序は並べ換えられ得る。プロセスは、それの動作が完了するときに、終了するが、図に含まれていない追加のステップも含むことができる。プロセスは、方法、ファンクション、プロシージャ、サブルーチン、サブプログラム、等に対応し得る。プロセスがファンクションに対応するとき、それの終了は、呼び出しファンクションまたは主ファンクションへのファンクションの戻りに対応することができる。
[0059]「コンピュータ可読媒体」という用語は、(1つまたは複数の)命令および/またはデータを記憶すること、包含すること、あるいは、搬送することを行う能力があるポータブルまたは非ポータブルな記憶装置デバイス、光学の記憶装置デバイス、および様々な他の媒体を含むが、それらに制限されない。コンピュータ可読媒体は、データがそれにおいて記憶されることができ、かつ、搬送波を含まない非一時的な媒体、ならびに/あるいはワイヤレスにまたは有線接続上で伝搬する一時的な電子信号を含み得る。非一時的な媒体の例は、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)のような光学記憶媒体、フラッシュメモリ、メモリ、あるいはメモリデバイス、を含み得るが、それらに限定されない。コンピュータ可読媒体は、それ上に、プロシージャ、ファンクション、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは命令、データ構造、またはプログラムステートメントの任意の組合せを表し得るコードおよび/または機械実行可能命令を記憶している可能性がある。コードセグメントは、情報、データ、引き数、パラメータ、またはメモリコンテンツを渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引き数、パラメータ、データ、等は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信、または同種のものを含む、任意の適した手段を介して渡される、転送される、または送信されることができる。
[0060]さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または、それらの任意の組合せによってインプリメントされ得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードでインプリメントされるとき、必要なタスクを行うためのプログラムコードまたはコードセグメント(例えば、コンピュータプログラム製品)は、コンピュータ可読または機械可読媒体に記憶され得る。(1つまたは複数の)プロセッサは、必要なタスクを行い得る。
[0061]バーチャル・リアリティは、一見現実的かまたは物理的なやり方で相互に作用されることができる3次元の環境を描く(describes)。いくつかの事例において、バーチャル・リアリティ環境を体験するユーザは、バーチャル環境と相互に作用するために、ヘッドマウント・ディスプレー(HMD:head-mounted display)および、随意的に、また衣類(例えば、センサが備え付けられた(fitted with)手袋)などのような、電子設備を使用する。実世界においてユーザが動くと、バーチャル環境においてレンダリングされる画像はまた、変化し、ユーザにユーザがバーチャル環境内で動いているという知覚を与える。いくつかの事例において、バーチャル環境は、ユーザの動きと相互関係を示す(correlates with)音を含み、ユーザに、その音が特定の方向またはソースから生じる(originate from)という印象を与える。バーチャル・リアリティ・ビデオは、非常に高い質で、キャプチャされることができ、およびレンダリングされることができ、本当に没入した(truly immersive)バーチャル・リアリティ体験を提供する可能性を秘めている(potentially)。バーチャル・リアリティ・アプリケーションは、数ある中でも、ゲーミング、トレーニング、教育、スポーツビデオ、およびオンラインショッピングを含む。
[0062]360度のビデオは、バーチャル・リアリティ環境における表示のためにキャプチャされるビデオである。いくつかのアプリケーションにおいて、実世界からのビデオは、コンピュータ生成のグラフィックとは対照的に、ゲーミングおよびバーチャル世界において発見され得るような、バーチャル・リアリティ環境のプレゼンテーションにおいて使用されることができる。これらのアプリケーションにおいて、ユーザは、ユーザが彼らの現在のロケーションを体験することができるのと同じやり方で別のロケーションを体験することができる。例えば、ユーザは、サンフランシスコに位置している360度のビデオシステムを使用しながら、ベルリンの徒歩ツアー(walking tour)を体験することができる。
[0063]360度のビデオシステムは、典型的に、ビデオキャプチャデバイスおよびビデオディスプレイデバイス、そして場合により、また、サーバ、データストレージ、およびデータ送信設備のような、他の中間デバイスを含む。ビデオキャプチャデバイスは、カメラセット、つまり、複数のカメラのセットを含み得、各々は、異なる方向に方向づけられ、および、異なる眺め(view)をキャプチャする。いくつかのアプリケーションにおいて、6個のカメラは、カメラセットのロケーションの中心に置かれた(centered on)フル360度の眺めをキャプチャするために使用されることができる。いくつかのビデオキャプチャデバイスは、より少ないカメラを使用し得る。例えば、いくつかのビデオキャプチャデバイスは、サイドツーサイドビュー(side-to-side views)を主に(primarily)キャプチャするか、または広視野を有するレンズを使用する。ビデオは、一般に、フレームを含み、ここで、フレームは、シーンの電子的にコーディングされた静止画像である。カメラは、秒ごとのある特定の数のフレームをキャプチャし、それは、通常、カメラのフレームレートと呼ばれる。
[0064]いくつかの事例において、シームレスな(seamless)360度の眺めを提供するために、画像ステッチング(image stitching)が、カメラセットにおけるカメラの各々によってキャプチャされたビデオ上で行われることができる。360度のビデオ生成の事例における画像ステッチングは、ビデオフレームが重複するかまたはさもなければ接続するであろうエリアにおける隣接カメラからのビデオフレームを組み合わせるかまたはマージすることを伴う(involves)。結果は、およそ球形フレームであろうし、メルカトル図法と同様に、マージされたデータは、平面様式(planar fashion)において、表現されることができる。例えば、マージされたビデオフレームにおける画素は、立方体形状の、または何らかの他の3次元の、平面形状(例えば、角錐、8面体、10面体、等)の平面上にマッピングされ得る。ビデオキャプチャおよびビデオディスプレイデバイスは、ラスタ原理上で動作することができる−ビデオフレームは、画素のグリッドとして扱われることを意味する−その事例において、正方形の平面、長方形の平面、または他の適切に成形された平面は、球形環境を表現するために使用されることができる。
[0065]360度のビデオフレームは、平面の表現にマッピングされて、記憶および/または送信のために、符号化および/または圧縮されることができる。符号化および/または圧縮は、ビデオコーデック(例えば、H.265としても知られる、High−Efficiency Video Coding(HEVC)規格、H.264としても知られる、Advanced Video Coding規格に準拠しているコード、または他の適したコーデック)、および圧縮されたビデオストリーム(または符号化されたビデオストリーム)またはビットストリームのグループにおける結果を使用して、達成されることができる。ビデオコーデックを使用するビデオデータの符号化は、下記のさらなる詳細において、説明される。
[0066]いくつかのインプリメンテーションにおいて、(1つまたは複数の)符号化されたビデオビットストリームは、メディア形式またはファイル形式において記憶されることができるかおよび/またはカプセル化されることができる。(1つまたは複数の)記憶されたビットストリームは、例えば、ネットワーク上で、表示のためにビデオを復号およびレンダリングすることができる受信機デバイスに送信されることができる。そのような受信機デバイスは、本明細書において、ビデオディスプレイデバイスとして呼ばれ得る。例えば、360度のビデオシステムは、(例えば、国際標準化機構(ISO)ベースメディアファイルフォーマットおよび/または派生されたファイル形式を使用して)符号化されたビデオデータからカプセル化されたファイルを生成することができる。例えば、ビデオコーデックは、ビデオデータを符号化することができ、カプセル化されたエンジンは、1つまたは複数のISO形式メディアファイルにビデオデータをカプセル化することによって、メディアファイルを生成することができる。代替的または追加的に、(1つまたは複数の)記憶されたビットストリームは、記憶媒体から受信機デバイスに直接に提供されることができる。
[0067]受信機デバイスはまた、符号化されたビデオビットストリームを復号および/または解凍(decompress)するために、コーデックをインプリメントすることができる。(1つまたは複数の)符号化されたビデオビットストリームが、メディア形式またはファイル形式に記憶および/またはカプセル化される事例において、受信機デバイスは、ビデオビットストリームを1つのファイル(または複数のファイル)にパックする(pack)ために使用されたメディアまたはファイル形式をサポートすることができ、符号化されたビデオデータを生成するために、ビデオ(および場合によりまた音声の)データを抽出することができる。例えば、受信機デバイスは、符号化されたビデオデータを生成するために、カプセル化されたビデオデータを有するメディアファイルをパーシングする(parse)ことができ、受信機デバイスにおけるコーデックは、符号化されたビデオデータを復号することができる。
[0068]受信機デバイスは、次いで、復号されたビデオ信号をレンダリングデバイス(例えば、ビデオディスプレイデバイス、プレーヤーデバイス、または他の適したレンダリングデバイス)に送ることができる。デバイスをレンダリングすることは、例えば、ヘッドマウント・ディスプレー、バーチャル・リアリティ・テレビジョン、および他の180度または360度のディスプレイデバイスを含む。一般に、ヘッドマウント・ディスプレーは、着用者の頭部の動きおよび/または着用者の目の動きをトラッキングすることができる。ヘッドマウント・ディスプレーは、着用者が実世界を体験するであろうと同じやり方で着用者がバーチャル環境を体験するように、着用者が見ている方向に対応する360度のビデオの部分をレンダリングするためにトラッキング情報を使用することができる。レンダリングデバイスは、ビデオがキャプチャされたのと同じフレームレートで、または異なるフレームレートで、ビデオをレンダリングし得る。
[0069]360度のビデオをキャプチャするためのカメラセットは、様々な全方位カメラ、反射屈折(catadioptric)カメラ(レンズおよび局面鏡を使用するカメラ)、魚眼レンズを具備したカメラ、および/または、他の適したカメラを含むことができる。全方位カメラの1つの例は、Ricoh Theta−Sであり、それは、反対の方向に焦点が集まる(focus)2つの魚眼レンズを使用する。
[0070]反射屈折カメラおよび魚眼レンズを伴うカメラなどの、全方位カメラは、典型的に、かなりの量のひずみ(distortion)を伴って、画像をキャプチャする。図1Aおよび図1Bは、広視野をキャプチャするために魚眼レンズを使用する全方位カメラによってキャプチャされたビデオフレームの例を例示する。図1Aの例において、ビデオフレーム100は、円周魚眼画像を含む。魚眼レンズは、例えば、180度またはそれより大きい、非常に広い角度(wide angle)をキャプチャする能力がある。従って、背中合わせに(back-to-back)配置されている、2つの魚眼レンズを具備したカメラは、360度の眺め(またはそれより多く)を共に提供する2つの画像をキャプチャし得る。非広角魚眼レンズは、約(on the order of)およそ45からおよそ90度までの視野(field of view)をキャプチャする。視野は、代替的にまたは追加的に、ラジアンで表される(expressed)ことができる。
[0071]広い角度をキャプチャするために、魚眼レンズは、シーンの画像をひずませる(distort)。図1Aにおいて例示されるように、ビデオフレーム100においてキャプチャされたシーンは、形状が円であり、その中心からこの円形領域のそれら外側エッジに(from the center to the outside edges of this circular region)ゆがませられる。カメラセンサは、長方形であるので、ビデオフレーム100は、長方形であり、画像は、シーンの部分でない、本明細書において点刻(stippling)を使用して例示された、エリアを含む。これらの領域における画素は、これらの画素はシーンの部分ではないので、使用可能でないとみなされる。
[0072]図1Bの例は、フルフレームの魚眼画像を含むビデオフレーム102を含む。ビデオフレーム102のこのタイプにおいて、広角視野はまた、円形領域において、キャプチャされており、そのシーンは、円形領域にゆがませられている。この例において、シーンが長方形のフレームのエッジを占める(fill)ように、画像がスケーリングされている(例えば、大きくされている)。この例となるビデオフレーム102は、使用可能でないエリアを含まず、レンズによってキャプチャされることができるシーンのいくつかの部分は、切り取られて(cropped out)いたかまたはキャプチャされていない。
[0073]広視野をキャプチャするために魚眼画像を使用する360度のビデオは、他の形式に再マッピングされることができる。これらの他の形式は、360度のビデオを、記憶、送信、および/または、眺めるために使用されることができる。1つの例となる形式は、エクイレクタングラー形式である。図2は、エクイレクタングラービデオフレーム200の例を例示する。この例となるエクイレクタングラービデオフレーム200において、2つの魚眼画像202a、202bからの使用可能な画素(例えば、円形領域における画素)は、エクイレクタングラー形式にマッピングされていた。この例において、各魚眼画像202a、202bは、共に、2つの魚眼画像202a、202bが、場合によりいくつかの重複を有する(possibly with some overlap)360度の視野を網羅する(encompass)ように、180度のまたはそれよりも大きい視野を含む。
[0074]魚眼画像202a、202bからの画素をマッピングすることは、魚眼画像202a、202bにおいてキャプチャされたシーンをゆがませず(unwarping)、ビデオフレーム200のエッジに対して画素を伸ばす(stretching)効果を有する。結果として生じるエクイレクタングラー画像は、ビデオフレーム200の上部および下部において、伸ばされて現れ得る。周知のエクイレクタングラー投影は、メルカトル図法であり、それにおいて、地球の地理が、直交の緯度線および経度線を用いて、提示される。
[0075]様々なインプリメンテーションにおいて、魚眼画像202a、202bは、立方体、円柱、角錐、切頂角錐、または何らかの他の幾何学的形状によって、形成された面上に、など、他の形式にマッピングされることができる。これらの事例の各々において、魚眼画像202a、202bに存在するひずみは、補正されることができ、使用可能でない画素は、除去される(eliminated)ことができる。平面のデータはまた、記憶および/または送信のためにパッケージ化されることができ、360度のビデオを表示するために使用されることができる。
[0076]いくつかの事例において、中間形式は、例えば、360度のビデオデータを記憶および/または送信することに関して、あるいは、ビデオデータを別の形式に変換する(converting)ことに関して、役立ち(useful)得る。例えば、エクイレクタングラー表現は、図3において例示されるように、ビデオデータを表示するために、球形の形式(例えば、球形幾何学)にマッピングされることができる。
[0077]図3は、360度のビデオプレゼンテーションにおいて使用されているエクイレクタングラービデオフレーム300の例を例示する。エクイレクタングラービデオフレーム300は、球形幾何学上にマッピングされることができ、結果となる球形表現は、ヘッドマウント・ディスプレーまたは何らかの他の360度のビデオディスプレイデバイスを使用して、視聴者320に表示されることができる。他の例において、エクイレクタングラービデオフレーム300は、立方体の、円柱の、角錐の、または何らかの他の幾何学的形状に、マッピングされることができ、ここで、幾何学的形状は、ビデオを表示するために360度のビデオディスプレイデバイスによって使用されることができる。
[0078]上記に述べたように、エクイレクタングラービデオフレーム300は、伸ばされたおよび/または圧縮されたように見える上方領域および下方領域における画素を用いて、フル360度の視野をキャプチャすることができる。360度のビデオプレゼンテーションにおいて、エクイレクタングラービデオフレーム300を使用するために、エクイレクタングラービデオフレーム300における画素は、球形表現にマッピングされることができる。このマッピングは、エクイレクタングラービデオフレーム300の上方領域および下方の領域を、球形表現の上部および下部(例えば、それぞれ、「北極」および「南極」)に向けて、拡大することの効果を有することができる。上方領域および下方領域を拡大することは、エクイレクタングラービデオフレーム300において見えている(apparent)これらのエリアにおけるひずみを補正することができる。
[0079]エクイレクタングラービデオフレーム300を球形表現にマッピングすることは、球形表現の中心の周り(例えば、赤道)でフレームの幅をゆがませる効果をさらに有することができる。エクイレクタングラービデオフレーム300の左および右のエッジは、「縫い目(seam)」が何も現れないように、隣同士にマッピングされることができる。
[0080]一旦、エクイレクタングラービデオフレーム300が球形表現にマッピングされると、球形表現は、表示されることができる。視聴者320は、ヘッドマウント・ディスプレーまたは別の360度のビデオディスプレイデバイスを使用して、球形表現内から球形表現を眺めることができる。多くの事例において、視聴者320は、視聴者の視点から、「地面(ground)」が、球形表現の最下部点(the bottom-most point)あるように、配置される。いくつかの事例において、球形表現の赤道は、視聴者の目の高さに(at the viewer’s eye level)配置される。様々なインプリメンテーションにおいて、球形表現は、視聴者の高さおよび/または位置(例えば、視聴者が、座っている、立っている、または何らかの他の位置にある)に適するように拡大されるかまたは縮小される(contracted)ことができる。
[0081]しかしながら、いくつかの事例において、エクイレクタングラー形式のような、中間形式は、必要ではない。様々なインプリメンテーションにおいて、エクイレクタングラー形状に最初にマッピングすることの代わりに、360度のビデオにおける魚眼画像は、表示されることができる表現に直接にマッピングされることができる。図4Aおよび図4Bは、360度のビデオフレーム400における魚眼画像が半球形表現410に直接にマッピングされている例を例示する。上記で議論されるように、図4Aのビデオフレーム400は、形状が長方形であり、ここで、長方形形状は、カメラの画像キャプチャセンサのサイズおよび形状に対応する。ビデオフレーム400は、シーンをキャプチャする画素を含む円形領域402を含む。画素が何もキャプチャされなかった、ビデオフレーム400の角404は、空白のままにされることができるか、または(例えば、0または255の画素値を有する)黒い画素を含むことができる。
[0082]円形領域402においてキャプチャされる画素は、ある特定の視野を含み、ここで、視野は、レンズおよび/またはカメラによって決定づけられる。例えば、円形領域402は、カメラのレンズ、(1つまたは複数の)鏡、および/またはセンサの構築(construction)に依存して、90度の視野、180度の視野、270度の視野、または何らかの他の度の視野を含むことができる。視野は、代替的にまたは追加的に、ラジアンで表されることができる。視野をビデオフレーム400の中に納める(fit)ために、画素は、線形または線形のやり方で、円形領域402にゆがませられる。
[0083]様々なインプリメンテーションにおいて、下記に説明される技法は、円形領域402における画素を半球形表現410にマッピングし、それの例は、図2Bにおいて例示される。半球形表現410は、次いで、360度のビデオディスプレイデバイスを使用して、ビデオフレーム400を視聴者420に提示するために使用されることができる。半球形表現410は、(180度の眺めを表現する)球の半分であることができ、(例えば、ビデオフレーム400が180度よりも少ない眺めをキャプチャするとき)球の半分より少なくあることができ、または(例えば、ビデオフレーム400が180度の眺めよりも多くをキャプチャするとき)球の半分よりも多くあることができる。
[0084]様々なインプリメンテーションにおいて、ビデオフレーム400の円形領域402を半球形表現410にマッピングすることは、円領域402における画素を半球形形状に伸ばすことの効果を有することができる。例えば、円形領域402の中心412は、中心422または半球形表現410の頂点に対応することができる。さらなる例として、円形領域402の最上部点(the top-most point)414aは、球形表現410の最上部点424a(例えば、北の極)に対応することができ、円形領域402の最下部点414bは、半球形表現410の最下部点424b(例えば、南の極)に対応することができる。同様に、円形領域402の極右414cおよび極左414dは、この例における半球形表現410の極右424cおよび目には見えない極左(not-visible far-left)424dにあるものに対応することができる。円形領域402のエッジと中心412との間における画素は、半球形表現410の表面にわたって、さらに均等に分布される(distributed)ことができる。
[0085]結果として生じる半球形表現410は、360度のビデオプレゼンテーションにおいて、平坦なビデオフレーム400を提示するために使用されることができる。360度のビデオディスプレイデバイスを使用して、半球形表現410は、視聴者420が、彼が半球形表現410によってキャプチャされる画素によって表現されるシーンの内側にいるという印象を与えられるように、レンダリングされることができる。いくつかの事例において、半球形表現410の頂点(apex)は、視聴者の視野の中心にあるように向けられることができる。
[0086]様々なインプリメンテーションにおいて、追加の半球形表現は、視聴者420の後ろにあるであろう眺めに関して提供されることができる。例えば、上記に述べたように、カメラは、背中合わせに配置されている2つの魚眼レンズを具備することができる。カメラは、シーンの360度の眺め(またはそれより多く)を共に提供する2つの画像をキャプチャすることができる。そのような例において、カメラは、第2の魚眼画像をキャプチャすることができ(図示せず)、それは、図4において示される魚眼画像と同じフレーム400に含まれることができ、または異なるフレームに含まれることができる。2つの魚眼画像は、視聴者420の真後ろにある別の半球形表現に直接にマッピングされることができる(図示せず)。2つの半球(half-spheres)は、全球(full sphere)を作り上げ(make up)、それらは、(1つまたは複数の)ビデオフレームによってキャプチャされたシーンのフル360度の眺めを提供するために、表示のためにレンダリングされることができる。
[0087]魚眼画像からディスプレイ形式に直接にマッピングすること、および中間形式をバイパスすることによって、360度のビデオを表示するために必要とされる処理の量、および処理を実行するために必要とされる時間は、減らされることができる。処理の必須要件(processing requirements)を減らすことはまた、携帯デバイスにおけるバッテリーの使用量を減らすという付加利益を有する。加えて、中間形式を避けることにおける時間の節約は、スポーツイベントの360度のライブブロードキャストのような、ライブストリーミングアプリケーションにおいて有益であり得る。フィッシング画像からディスプレイ形式に直接にマッピングすることからの他の見込まれる(possible)利益は、画像の質の改善および/または帯域幅の必須要件の減少である。例えば、中間形式を生成する際に起こり得る画素の伸ばしおよび/または外挿が、避けられ得る。この例において、外挿する画素データにおいて生成されたデータもまた、避けられることができる。代わりに、魚眼レンズの光学圧縮は、保たれる(preserved)。
[0088]キャプチャされたビデオからディスプレイ形式に直接にマッピングすることは、キャプチャされたビデオが魚眼レンズを使用するとき、場合により、より効率的に実行され得る。例えば、4つまたは6つのレンズを使用するカメラセットは、隣接したレンズ間の、大きな、重複するエリアをキャプチャし得る。この冗長データは、中間形式において取り除かれるが、中間マッピングなしでは、360度のビデオデータのサイズは、かなり大きくあり得る。対照的に、魚眼レンズを使用するカメラセットは、より少ないかまたはわずかしかない重複を有する画像を作り出すことができる。ビデオデータは、それ故、より小型であることができる。
[0089]360度のビデオにおける魚眼画像をディスプレイ形式に直接にマッピングするために、または中間形式にマッピングするために、マッピングを実行するコンピューティングデバイスは、魚眼画像についての情報を必要とする。そのような情報は、例えば、各魚眼画像においてキャプチャされた視野、ビデオフレーム内の魚眼画像のサイズおよび向き、および、さらに以下で議論されるような、他のパラメータを含むことができる。現在、360度のビデオにおいて魚眼画像を記述する(describes)情報は、全方位カメラから提供されないか、または標準外の(non-standard)やり方で提供される。加えて、各カメラは、360度の魚眼ビデオにおける使用可能な画素の位置が容易に想定される(assumed)ことができないように、異なって画像をキャプチャおよび記録し得る。
[0090]360度ビデオにおいて魚眼画像を記述するパラメータなしに、ソフトウェアアプリケーションは、魚眼データを中間形式に容易には変換することができない。ソフトウェアアプリケーションは、ビデオにおいて使用可能な画素と使用可能でない画素との間を区別することを試みることができるが、画像における半径のひずみ度および視野といった、情報を決定することは、非常に難しく、不正確になる傾向があり得る。魚眼画像を記述するパラメータを有さないソフトウェアは、それ故、低い表示品位(low visual quality)を有する再マッピングされたビデオフレームを作り出すことができる。
[0091]ビデオ変換(video conversion)の必須要件は、追加の課題を導入する(introduce)。例えば、ウェブサイトのような、ビデオ・コンテンツをホストするサービスは、しばしば、サービスのサーバにアップロードされた360度のビデオが、ある特定の中間形式(例えば、エクイレクタングラー形式、またはサービスによって指定された他の適した形式)に従ってフォーマットされることを必要とする。ビデオホスティングサービスは、キャプチャされたビデオから必要とされる中間形式への変換を提供しない可能性があり、その事例において、ビデオをアップローディングしている個人が、変換を実行することの責任を負う場合がある。
[0092]360度のビデオカメラは、カメラによって作り出されたビデオを他の形式に変換するための適したソフトウェアを搭載し(come with)得るが、しかしこのソフトウェアは、使用することが難しい可能性がある。カメラユーザは、ソフトウェアおよび任意の可能な設定(例えば、ビューモード、展開モード(unfold modes)、制御エリア、較正、等)を理解するために必要とされる技術的な知識を有さない可能性がある。実際に、カメラユーザは、掘り下げた(in-depth)技術的な知識を必要としない簡素なソフトウェア(例えば、押しボタン、または他の簡素なソフトウェア)を望む可能性がある。加えて、ソフトウェアは、キャプチャされたビデオの形式を記述する独占所有権のある(proprietary)、標準外のデータに依拠し得る。ソフトウェアは、それ故、他のタイプを有する複数のカメラからではなく、1つのタイプのカメラからのみ、ビデオデータを処理することができる。
[0093]様々なインプリメンテーションにおいて、魚眼360度のビデオ・コンテンツを記述する様々なパラメータが定義されることができる。これらのパラメータは、360度のビデオにおける魚眼画像を中間形式にマッピングするために、または360度のビデオにおける魚眼画像を直接にディスプレイ形式にマッピングするために、使用されることができる。
[0094]様々なインプリメンテーションにおいて、魚眼360度のビデオデータは、如何なる中間処理なしに、カメラから直接に符号化されることができる。様々なインプリメンテーションにおいて、ビデオキャプチャデバイスは、ビデオデータを用いて、パラメータ、それらはビデオデータにおける魚眼画像を記述する、を符号化することができる。ビデオディスプレイデバイス、または符号化されたデータを復号する何らかの他のデバイスは、360度の魚眼ビデオを中間形式またはディスプレイ形式にマッピングするためのパラメータを使用することができる。
[0095]いくつかのインプリメンテーションにおいて、魚眼ビデオのパラメータは、360度のビデオデータを記憶するファイルに符号化されることができる。例えば、ファイルは、ISOベースメディアファイルフォーマット(ISOBMFF)規格を使用して、フォーマットされることができる。この例において、パラメータは、ファイルにおける1つまたは複数のデータ構造(ISOBMFFによって「ボックス」と呼ばれる)に含まれることができる。別の例として、パラメータは、付加拡張情報(SEI)メッセージに含まれることができ、ビデオデータを含む符号化されたビットストリームに含まれることができる。別の例として、パラメータは、メディアプレゼンテーション記述(MPD)ファイルにおける属性または要素に含まれることができ、それは、DASH規格に従って、ビデオをストリーミングするために使用される。別の例として、パラメータは、セッション記述プロトコル(SDP:Session Description Protocol)属性に含まれることができる。別の例として、パラメータは、MPEG−2トランスポートストリームにおいて記述子として含まれることができる。これらおよび他の例は、独立してまたは様々な組合せにおいて、使用されることができる。
[0096]上記の例のうちの1つまたは複数を使用して提供される魚眼ビデオのパラメータは、様々なアプリケーションに使用されることができる。例えば、ユーザが生成した360度のビデオは、サーバにアップロードされることができるか、または他のデバイスは、DASHまたは何らかの他の適応ストリーミング技術を使用して、ビデオを消費する(consume)ことができる。この例において、360度のビデオデータは、魚眼形式から、エクイレクタングラーまたは立方体マップ(cube map)形式のような、共通に使用される形式に、トランスコードされるかまたは変換されることができる。いくつかの事例において、ビデオ・コンテンツをホストするサーバは、再マッピングを実行するために魚眼ビデオのパラメータを使用することができる。いくつかの事例において、ビデオは、魚眼ビデオのパラメータを有するクライアントデバイスに、提供されることができ、クライアントデバイスは、再マッピングを実行することができる。この例において、パラメータは、例えば、ISOBMFFファイルにおいて、符号化されたビットストリームにおけるSEIメッセージにおいて、DASH MPDにおいて、セッション記述において、MPEG−2トランスポートストリームにおいて、または何らかの他の適した形式において、符号化されることができる。
[0097]別の例となるアプリケーションは、See−What−I−See(SWIS)タイプのビデオチャットまたは同様のアプリケーションである。このタイプのアプリケーションの例において、2つのユーザは、ライブビデオを使用して、話すことができ、1人のユーザは、リアルタイムに、そのユーザの環境を、もう一方のユーザに、360度のビデオを使用して、示すことができる。この例において、魚眼ビデオは、魚眼パラメータと一緒に、第1のユーザデバイスから第2のユーザデバイスに送信されることができる。第2のユーザのデバイスは、次いで、第2のユーザへの表示のための魚眼ビデオをレンダリングすることができる。この例において、RTP/UDP/IPプロトコルスタックは、ビデオ送信に使用されることができ、それはなぜなら、ビデオ電話通信およびビデオ会議開催と同様に、送信の会話の性質(conversational nature of the transmission)は、低い端末間レイテンシ(low end-to-end latency)を必要とするからである。HTTP/TCP/IPプロトコルスタック、それは、ビデオをストリーミングするために使用されるであろうが、十分に低いレイテンシを有さない可能性がある。この例において、魚眼パラメータは、例えば、とりわけ、セッション記述において、符号化されることができる。
[0098]図5は、様々な魚眼パラメータの例を例示し、ここで、2つの魚眼レンズを有する全方位カメラによってキャプチャされるビデオフレーム500を使用して、例示される。この例において、レンズは、反対の方向に面して、マウントされ、カメラは、両方のレンズからの画像を1つのビデオフレーム500に同時に記録することができる。結果として、例となるビデオフレーム500は、2つの円形領域502a、502bを含む。左手の円形領域502aは、シーンのゆがんだ眺めを包含し、一方で、右手の円形領域502bは、同じシーンであるが、左手の円形領域502aにおけるシーンから180度を向いているシーンを含む。他の例において、全方位カメラからのビデオフレームは、1つの魚眼画像を有し得、または、2つよりも多い魚眼画像を有し得る。
[0099]図5の例において、様々なパラメータは、ビデオフレーム500においてキャプチャされた魚眼画像を記述することができる。例えば、パラメータは、ビデオフレーム500が2つの魚眼画像を含むこと(あるいは1つまたは4つのまたはしかしながら多くの魚眼画像がビデオフレーム500においてキャプチャされること)を規定する(provide)ことができる。別の例として、パラメータは、各魚眼画像の向きを記述することができる。例示された例において、両方の魚眼画像は、横倒しになっており(on their sides)、地面は、右手の画像における左に配置され、および左手の画像における左に配置される。
[0100]様々なインプリメンテーションにおいて、パラメータは魚眼画像のロケーションおよび幾何学を記述することができる。例えば、パラメータは、1つまたはもう一方または両方の円形領域502a、502bの中心の水平座標512を提供することができる。水平座標512は、ビデオフレーム500の左または右のエッジに関して、提供されることができる。別の例として、パラメータは、1つまたはもう一方または両方の円形領域502a、502bの中心の垂直座標514を提供することができる。垂直座標514は、ビデオフレーム500の上方または下方のエッジに対して、提供されることができる。水平512座標および垂直514座標は、ミリメートルまたは画素または何らかの他の測定単位で表されることができる。別の例として、パラメータは、円形領域502a、502bの直径520または半径を含むことができる。
[0101]様々なインプリメンテーションにおいて、パラメータはまた、ビデオフレーム500の使用されていないエリア、つまり、円形領域502a、502bの外側のエリア、を記述することができる。例えば、垂直距離516は、ビデオフレーム500の下方エッジ(および/または上方エッジ)と円形領域502a、502bとの間の距離を記述することができる。別の例として、水平距離518は、ビデオフレーム500の右のエッジ(および/または左のエッジ)と円形領域502a、502bとの間の距離を記述することができる。水平516距離および垂直518距離は、ミリメートルまたは画素または何らかの他の測定単位で表されることができる。
[0102]様々なインプリメンテーションにおいて、パラメータはまた、画像をキャプチャするレンズについての情報を含むことができる。例えば、パラメータは、視野を含むことができる。視野は、レンズによってキャプチャされることができる実世界の部分である。視野は、度で表わされることができる。例えば、魚眼レンズは、180度またはそれよりも大きい(または少ない)視野を有することができる。例示された例において、視野は、左手502aおよび右手502bの円形領域の両方に現れる要素524によって示されるように、180度よりも大きい。別の例として、パラメータは、魚眼のひずみがレンズの中心から外側エッジに対して線形であるか、または非線形であるかを含むことができる。ひずみが非線形である場合、パラメータは、非線形性に関して調整するスケーリング値を含むことができる。
[0103]様々なインプリメンテーションにおいて、パラメータはまた、カメラおよび/またはレンズのアーチファクト(artifacts)を記述する。例えば、例示された例において、カメラボディ522は、円形領域502a、502bの両方において目に見える(visible)。他の例において、カメラボディおよび/またはレンズボディの部分は、円形領域502a、502bの他の部分において目に見え得る。いくつかの例において、カメラボディおよび/またはレンズボディは、円形領域502a、502bの辺り一帯に目に見え得る。
[0104]様々な他のパラメータは、本明細書において例示されていない状況を記述することができる。例えば、パラメータは、一方のまたはもう一方の魚眼画像が、もう一方の魚眼画像に関して鏡映される(mirrored)か、または実世界に関して鏡映されるかを記述することができる。例えば、右手の魚眼画像は、上下方向に、左右方向に、または何らかの他の方向に、フリップされ得る。如何なるミラーリング(mirroring)を記述するパラメータは、左手の円形領域502aおよび右手の円形領域502bのエッジ間での対応を決定するために使用されることができる。
[0105]ビデオフレーム500をレンダリングするために役立ち得る様々な他のパラメータがまた、提供されることができる。例えば、パラメータは、回転度(例えば、勾配(pitch)、偏揺れ(yaw)、および/または横揺れ(roll))、および実世界におけるカメラのロケーションなどの、カメラ較正パラメータを含むことができる。
[0106]上記で議論されたパラメータのいくつかまたは全ては、ビデオフレーム500をキャプチャしたカメラによって提供されることができる。例えば、カメラは、例えば、レンズの視野、および/またはおよびレンズが画像をゆがませるやり方を含む、魚眼画像をキャプチャするために使用されたレンズを記述する情報を有し得る。別の例として、カメラは、魚眼画像がビデオフレーム500に書き込まれたやり方を記述する情報を有し得る。
[0107]いくつかの事例において、同じ視野、焦点距離、形状、および/または他の特性を有する、同じタイプのレンズは、これは、常に当てはまるわけではない可能性があるが、左手のおよび右手の魚眼画像の両方をキャプチャするために使用されていた。2つの魚眼画像が異なるとき、別個のパラメータは、各々に提供され得る。
[0108]図6Aは、ビデオフレーム600においてキャプチャされた魚眼画像を記述するために使用されることができる追加のパラメータの例を例示する。この例において、魚眼レンズによってキャプチャされることができる円形領域602は、ビデオフレーム600内に十分には包含されない。これは、例えば、カメラがフルフレームの魚眼ビデオをキャプチャするように構成されるとき、起こり得、それはなぜなら、視野が画像センサより広いためであり、または何らかの他の理由のためである。
[0109]このおよび別の例において、魚眼画像を記述するパラメータは、全半径620、およびシーン半径624を含むことができる。全半径620は、円形領域602の中心626から円形領域602の外側エッジまでの距離を表す。別に述べると、全半径620は、レンズによってキャプチャされることができる領域を表す。フレーム半径622は、円形領域602の中心626からビデオフレーム600の最も近いエッジまでの距離を表す。フレーム半径622は、それ故、ビデオフレーム600において実際にキャプチャされた領域を表す。いくつかのインプリメンテーションにおいて、フレーム半径値は、ビデオフレーム600の全ての4つのエッジのために提供されることができる。シーン半径624は、円形領域602の中心626から障害物のエッジまでの距離を表し、それは、この例において、カメラボディ616である。いくつかの事例において、魚眼レンズの視野は、画像にカメラそれ自体の部分をその中にキャプチャするのに十分に大きい。代替的または追加的に、カメラボディ616は、カメラボディに対するレンズの向きに起因して、画像において現れ得る。様々なインプリメンテーションにおいて、シーン半径624の値は、ビデオフレーム600において現れる、カメラボディ616、または何らかの他の一貫した障害物、に対して対応する(accommodate)ことができる。シーン半径624は、魚眼画像が別の形式にマッピングされるとき、この障害物を無視するために使用されることができる。
[0110]図6Bは、画像630におけるカメラボディ616の存在を例示するために、魚眼画像630の下方部分の例を例示する。この例において、撮影された(photographed)手は、魚眼画像の最も下方のエッジに現れるはずであるが、その代わりに、カメラボディ616が、画像のこのエリアの障害物となる(obstructs)。
[0111]様々なインプリメンテーションにおいて、360度の魚眼ビデオは、魚眼画像を別の形式に再マッピングするための如何なる中間処理なしに、ファイルに直接にパックされる(packed)ことができる。これらのインプリメンテーションにおいて、魚眼画像を記述するパラメータは、ファイルに含まれることができる。
[0112]ファイル形式規格は、ビデオ(およびまた場合により音声)データを1つまたは複数のファイルにパッキング(packing)および解凍する(unpacking)ための形式を定義することができる。ファイル形式規格は、国際標準化機構(ISO)ベースメディアファイルフォーマット(ISO/IEC14496−12において定義される、ISOBMFF)、および(ISO/IEC14496−15において定義される)Motion Pictures Experts Group(MPEG)MPEG−4ファイル形式、(3GPP(登録商標) TS26.244において定義される)第3世代パートナーシッププロジェクト(3GPP)ファイル形式、および(両方がISO/IEC14496−15において定義される)Advanced Video Coding(AVC)ファイル形式およびHigh Efficiency Video Coding(HEVC)ファイル形式を含む、ISOBMFFから派生する他のファイル形式を含む。ISO/IEC14496−12および14496−15の最新のバージョンの草案文面は、それぞれ、http://phenix.int-evry.fr/mpeg/doc_end_user/documents/111_Geneva/wg11/w15177-v6-w15177.zipおよびhttp://phenix.int-evry.fr/mpeg/doc_end_user/documents/112_Warsaw/wg11/w15479-v2-w15479.zipにおいて、入手可能である。
[0113]ISOBMFFは、多くのコーデックカプセル化形式(例えば、AVCファイル形式または任意の他の適したコーデックカプセル化形式)の、ならびに、多くのマルチメディアコンテナ形式(例えば、MPEG−4ファイル形式、3GPPファイル形式(3GPP)、デジタルビデオブロードキャスティング(DVB)ファイル形式、または任意の他の適したマルチメディアコンテナ形式)の、基礎として使用される。ISOBMFFベースのファイル形式は、連続媒体に使用されることができ、それはまたストリーミングメディアとしても呼ばれる。
[0114]連続媒体(例えば、音声およびビデオ)に加えて、静的媒体(例えば、画像)およびメタデータは、ISOBMFFに適合するファイルにおいて記憶されることができる。ISOBMFFに従って構造化されたファイルは、受信されたリアルタイムメディアストリームを記録するための、または他の使途のための、ストリーミングされることになるコンテンツのためのコンテナ(containers)として(その場合、コンテナは、パケット化の命令を含む)、Dynamic Adaptive Streaming over HTTP(DASH)のためのセグメントとして、ローカルメディアファイルプレイバック、遠隔ファイルのプログレッシブダウンローディングを含む、多くの目的に使用され得る。
[0115]ISOBMFFおよびそれの派生したファイル形式(例えば、AVCファイル形式または他の派生したファイル形式)は、多くのマルチメディアアプリケーションにおける(例えば、ビデオ、音声、およびタイムドテキスト(timed text)を含む)メディア・コンテンツの記憶およびカプセル化に広く使用される。しかしながら、ISOBMFFおよびISOBMFFから派生したファイル形式は、バーチャル・リアリティ(VR)・コンテンツを記憶するための仕様を含まない。例えば、360度のビデオがISOBMFFまたは派生したファイル形式に基づいてファイルに記憶される場合、プレーヤーデバイスは、360度のビデオを従来の平面のビデオとして取り扱い得る(例えば、処理しようと試み得る)(例えば、プレーヤーデバイスは、360度のビデオを360度のコンテンツを含まないものとして取り扱い得る)。プレーヤーは、それ故、レンダリングの間、360度のビデオの必要な投影を適用しない場合があり、結果として、ビデオはひずませられて、場合によっては、表示されたときに視聴可能でなくなる。
[0116]様々なインプリメンテーションにおいて、ISOBMFFへの修正および/または追加は、ISOBMFF、またはISOBMFFから派生した形式に従ってフォーマットされていたファイルが、バーチャル・リアリティ・コンテンツを含むことを示すことができる。例えば、いくつかのインプリメンテーションにおいて、ファイルは、ファイルレベルのインジケーションを含むことができ、それは、ファイルのコンテンツが、バーチャル・リアリティの使用事例またはインプリメンテーションにおける、使用のためにフォーマットされていることをシグナリングする(例えば、示す)。別の例として、いくつかのインプリメンテーションにおいて、ファイルは、ムービーレベルのインジケーションを含むことができ、それは、ファイルにおけるムービープレゼンテーションがバーチャル・リアリティ・コンテンツを含むことをシグナリングする(例えば、示す)。別の例として、いくつかのインプリメンテーションにおいて、ファイルは、トラックレベルのインジケーションを含むことができ、それは、トラックがバーチャル・リアリティ・コンテンツを含むことをシグナリングする(例えば、示す)。様々なインプリメンテーションにおいて、バーチャル・リアリティ・コンテンツに関連したパラメータはまた、ファイル、ムービー、および/またはトラックレベルにおいて、シグナリングされることができる。
[0117]これらおよび他のインプリメンテーションにおいて、プレーヤーデバイスは、いつファイルがバーチャル・リアリティ・コンテンツを含むかを認識することができる。いくつかの事例において、バーチャル・リアリティ・コンテンツを表示する能力がないプレーヤーデバイスは、バーチャル・リアリティ・メディアを無視および/またはスキップできる。
[0118]図7は、ISOBMFFに従ってフォーマットされた、ビデオプレゼンテーションのためのデータおよびメタデータを包含するISOベースメディアファイル700の例を例示する。ISOBMFFは、メディアの、交換、管理、編集、プレゼンテーションを容易にするフレキシブルおよび拡張可能な形式においてタイムドメディア情報を包含するように設計されている。メディアのプレゼンテーションは、プレゼンテーションを包含するシステムに対して「局所的(local)」であり得るか、あるいはプレゼンテーションは、ネットワークまたは他のストリーム配信機構を介し得る。
[0119]ISOBMFF仕様によって定義されるような、「プレゼンテーション(presentation)」は、しばしば、ビデオキャプチャデバイスによって連続してキャプチャされていることによって関連付けられるか、または何らかの他の理由のために関連付けられる、一連の(a sequence of)ピクチャである。本明細書において、プレゼンテーションはまた、ムービーまたはビデオプレゼンテーションと呼ばれ得る。プレゼンテーションは、音声を含み得る。単一のプレゼンテーションは、1つまたは複数のファイルに包含され得、1つのファイルは、完全なプレゼンテーションのためのメタデータを包含する。メタデータは、タイミングおよびフレーミングデータ、記述子、ポインタ、パラメータ、およびプレゼンテーションを記述する他の情報などの情報を含む。メタデータは、ビデオおよび/または音声データそれ自体を含まない。メタデータを包含するファイル以外のファイルは、ISOBMFFに従ってフォーマットされることを必要とせず、これらのファイルがメタデータによって参照されることができるようにフォーマットされることのみを必要とする。
[0120]ISOベースメディアファイルのファイル構造は、オブジェクト指向であり、ファイルにおける個々のオブジェクトの構造は、オブジェクトのタイプから直接推論される(inferred)ことができる。ISOベースメディアファイルにおけるオブジェクトは、ISOBMFF仕様によって、「ボックス」と呼ばれ得る。ISOベースメディアファイルは、一連のボックスとして構造化され、それは、他のボックスを包含することができる。ボックスは、一般に、ボックスに関するサイズおよびタイプを提供するヘッダを含む。サイズは、そのボックス内に包含されるヘッダ、フィールド、全てのボックスを含む、ボックスの全体のサイズを表す。プレーヤーデバイスによって認識されないタイプを有するボックスは、典型的に、無視およびスキップされる。
[0121]図7の例によって例示されるように、ファイルの最高位において、ISOベースメディアファイル700は、ファイルタイプボックス710、ムービーボックス720、および1つまたは複数のムービーフラグメント730a、730nを含むことができる。このレベルに含まれることができるがこの例においては表現されていない他のボックスは、とりわけ、空き領域ボックス、メタデータボックス、およびメディアデータボックスを含む。
[0122]ISOベースメディアファイルは、ボックスタイプ「ftyp」によって識別された、ファイルタイプボックス710を含むことができる。ファイルタイプボックス710は、ファイルをパーシングするために最も適したISOBMFF仕様を識別する。この例における「最も(most)」は、ISOベースメディアファイル700が、特定のISOBMFFの仕様に従って、フォーマットされていた可能性があるが、おそらく、その仕様の他の反復と互換性がありそうであることを意味する。この最も適した仕様は、主要ブランド(major brand)と呼ばれる。プレーヤーデバイスは、デバイスがファイルのコンテンツを復号および表示する能力があるかどうかを決定するために、主要ブランドを使用することができる。ファイルタイプボックス710はまた、バージョン番号を含むことができ、それは、ISOBMFF仕様のバージョンを示すために使用されることができる。ファイルタイプボックス710はまた、互換性のあるブランドのリストを含むことができ、それは、ファイルがそれと互換性のある他のブランドのリストを含む。ISOベースメディアファイルは、1つよりも多い主要ブランドと互換性があり得る。
[0123]ISOベースメディアファイル700がファイルタイプボックス710を含むとき、1つのファイルタイプボックスのみがある。ISOベースメディアファイル700は、より古いプレーヤーデバイスとの互換性をもたせるためにファイルタイプボックス710を省き(omit)得る。ISOベースメディアファイル700がファイルタイプボックス710を含まないとき、プレーヤーデバイスは、デフォルトの主要ブランド(例えば、「mp41」)、マイナーバージョン(例えば、「0」)、および互換性のあるブランド(例えば、「mp41」)を想定することができる。ファイルタイプボックス710は、典型的に、ISOベースメディアファイル700において、できるだけ早く配置される。
[0124]ISOベースメディアファイルは、ムービーボックス720をさらに含むことができ、それは、プレゼンテーションのためのメタデータを包含する。ムービーボックス720は、ボックスタイプ「moov」によって、識別される。ISO/IEC14496−12は、プレゼンテーションが、1つのファイルに含まれようと、または複数のファイルに含まれようと、1つのムービーボックス720のみを含むことができることを提供する。頻繁に、ムービーボックス720は、ISOベースメディアファイルの始めの近くにある。ムービーボックス720は、ムービーヘッダボックス722を含み、1つまたは複数トラックボックス724ならびに他のボックスを含むことができる。
[0125]ボックスタイプ「mvhd」によって識別される、ムービーヘッダボックス722は、全体として、メディア独立であり、プレゼンテーションに関連する情報を含むことができる。例えば、ムービーヘッダボックス722は、とりわけ、作成時間、修正時間、時間尺度、および/またはプレゼンテーションの持続時間などの情報を含むことができる。ムービーヘッダボックス722はまた、プレゼンテーションにおける次のトラックを識別する識別子を含むことができる。例えば、識別子は、例示された例におけるムービーボックス720によって含まれるトラックボックス724を指し示すことができる。
[0126]ボックスタイプ「trak」によって識別される、トラックボックス724は、プレゼンテーションのためのトラックに関する情報を包含することができる。プレゼンテーションは、1つまたは複数のトラックを含むことができ、ここで、各トラックは、プレゼンテーションにおいて他のトラックから独立している。各トラックは、トラックにおけるコンテンツに特有の時間的および空間的な情報を含むことができ、各トラックは、メディアボックスに関連付けられることができる。トラックにおけるデータは、メディアデータであることができ、その場合、トラックは、メディアトラックである、またはデータは、ストリーミングプロトコルのためのパケット化情報であることでき、その場合、トラックは、ヒントトラックである。メディアデータは、例えば、ビデオおよび音声データを含む。例示された例において、例となるトラックボックス724は、トラックヘッダボックス724aおよびメディアボックス724bを含む。トラックボックスは、トラック参照ボックス、トラックグループボックス、編集ボックス、ユーザデータボックス、メタボックス、およびその他などの、他のボックスを含むことができる。
[0127]ボックスタイプ「tkhd」によって識別される、トラックヘッダボックス724aは、トラックボックス724において包含されるトラックの特性を特定することができる。例えば、トラックヘッダボックス724aは、とりわけ、作成時間、修正時間、持続時間、トラック識別子、レイヤ識別子、グループ識別子、ボリューム、幅、および/またはトラックの高さを含むことができる。メディアラックに関して、トラックヘッダボックス724aは、とりわけ、トラックがイネーブルされるかどうか、トラックがプレゼンテーションの部分として再生されるべきかどうか、またはトラックがプレゼンテーションをプレビューするために使用されることができるかどうか、をさらに特定することができる。トラックのプレゼンテーションは、概して、プレゼンテーションの始めにあるように想定される。トラックボックス724は、明示的なタイプラインマップを含むことができる、本明細書に例示されていない、編集リストボックスを含むことができる。タイプラインマップは、とりわけ、トラックに関するオフセットタイム、を特定することができ、ここで、オフセットは、トラックに関して、プレゼンテーションの始めの後に、開始時間を示す。
[0128]例示された例において、トラックボックス724はまた、ボックスタイプ「mdia」によって識別される、メディアボックス724bを含む。メディアボックス724bは、トラックにおけるメディアデータについてのオブジェクトおよび情報を包含することができる。例えば、メディアボックス724bは、ハンドラー参照ボックスを包含することができ、それは、トラックのメディアタイプおよびトラックにおけるメディアがそれによって提示されるプロセスを識別することができる。別の例として、メディアボックス724bは、メディア情報ボックスを包含することができ、それは、トラックにおけるメディアの特性を特定することができる。メディア情報ボックスは、サンプルの表をさらに含むことができ、ここで、各サンプルは、例えば、サンプルに関するデータのロケーションを含む、メディアデータ(例えば、ビデオまたは音声データ)の塊(chunk)を記述する。サンプルに関するデータは、下記でさらに議論される、メディアデータボックスに記憶される。大部分の他のボックスと同様に、メディアボックス724bはまた、メディアヘッダボックスを含むことができる。
[0129]例示された例において、例となるISOベースメディアファイル700はまた、プレゼンテーションの複数のフラグメント730a、730b、730c、730nを含む。フラグメント730a、730b、730c、730nは、ISOBMFFボックスではないが、むしろムービーフラグメントボックス732およびムービーフラグメントボックス732によって言及されるメディアデータボックス738を記述する。ムービーフラグメントボックス732およびメディアデータボックス738は、最高位ボックスであるが、本明細書において、ムービーフラグメントボックス732とメディアデータボックス738との間の関係を示すためにグループ化される。
[0130]ボックスタイプ「moof」によって識別される、ムービーフラグメントボックス732は、さもなければムービーボックス720において記憶されるであろう追加の情報を含むことによって、プレゼンテーションを拡張することができる。ムービーフラグメントボックス732を使用して、プレゼンテーションは、増分的に(incrementally)ビルドされる(built)ことができる。ムービーフラグメントボックス732は、ムービーフラグメントヘッダボックス734およびトラックフラグメントボックス736、ならびに本明細書において例示されていない他のボックスを含むことができる。
[0131]ボックスタイプ「mfhd」によって識別される、ムービーフラグメントヘッダボックス734は、シーケンス番号を含むことができる。プレーヤーデバイスは、フラグメント730aがプレゼンテーションのためのデータの次の一片を含むことを検証する(verify)ためにシーケンス番号を使用することができる。いくつかの事例において、ファイルのコンテンツ、またはプレゼンテーションのためのファイルは、ばらばらの順序で(out of order)プレーヤーデバイス提供されることができる。例えば、ネットワークパケットは、パケットが当初送信された順序以外の順序において頻繁に到着することができる。これらの事例において、シーケンス番号は、フラグメントに関する正確な順序を決定する際に、プレーヤーデバイスを支援する(assist)ことができる。
[0132]ムービーフラグメントボックス732はまた、ボックスタイプ「traf」によって識別された、1つまたは複数のトラックフラグメントボックス736を含むことができる。ムービーフラグメントボックス732は、トラックにつきゼロまたはそれより多くの、トラックフラグメントのセットを含むことができる。トラックフラグメントは、ゼロまたはそれより多くのトラックの走行(runs)を包含することができ、それらの各々は、トラックに関するサンプルの連続的な走行を記述する。トラックフラグメントは、トラックへサンプルを追加することに加えて、空の時間をトラックに追加するために使用されることができる。
[0133]ボックスタイプ「mdat」によって識別されるメディアデータボックス738は、メディアデータを包含する。ビデオトラックにおいて、メディアデータボックス738は、ビデオフレームを包含するだろう。メディアデータボックスは、音声データを代替的または追加的に含む。プレゼンテーションは、1つまたは複数の個々のファイルにおいて包含される、ゼロまたはそれより多くのメディアデータボックスを含むことができる。メディアデータは、メタデータによって記述される。例示された例において、メディアデータボックス738におけるメディアデータは、トラックフラグメントボックス736において含まれるメタデータによって記述されることができる。他の例において、メディアデータボックスにおけるメディアデータは、ムービーボックス720におけるメタデータによって記述されることができる。メタデータは、メディアデータボックス738内のメディアデータヘッダおよび/または空き領域がスキップされることができるように、ファイル700内の絶対オフセットによる(by)特定のメディアデータを指し得る。
[0134]ISOベースメディアファイル700における他のフラグメント730b、730c、730nは、第1のフラグメント730aに関して例示されているようなものと同様のボックスを包含することができる、および/または他のボックスを包含することができる。
[0135]TISOBMFFは、メディアのローカルプレイバックをサポートすることに加えて、ネットワーク上でメディアデータをストリーミングするためのサポートを含む。1つのムービープレゼンテーションを含む1つまたは複数のファイルは、ヒントトラック(hint tracks)と呼ばれる、追加のトラック、を含むことができ、それらは、パケットとして1つまたは複数のファイルを形成して送信する際のストリーミングサーバを支援することができる命令を包含する。これらの命令は、例えば、サーバが送るためデータ(例えば、ヘッダ情報)またはメディアデータのセグメントへの参照を含むことができる。ファイルは、異なるストリーミングプロトコルに関して別個のヒントトラックを含むことができる。ヒントトラックはまた、ファイルを再フォーマットする必要なくファイルに追加されることができる。
[0136]メディアデータをストリーミングするための1つの方法は、Dynamic Adaptive Streaming over HyperText Transfer Protocol(HTTP)、または(ISO/IEC23009−1:2014において定義された)DASHである。DASHは、それは、MPEG−DASHとしてもまた知られるが、従来のHTTPウェブサーバを使用してメディア・コンテンツの高品質ストリーミングを可能にするアダプティブビットレートストリーミング(adaptive bitrate streaming)技法である。DASHは、メディア・コンテンツを一連の小さいHTTPベースのファイルセグメントに分割することによって動作し、ここで、各セグメントは、そのコンテンツの短い時間間隔を包含する。DASHを使用して、サーバは、異なるビットレートにおいてメディア・コンテンツを提供することができる。メディアを再生しているクライアントデバイスは、次のセグメントをダウンロードするとき、代替的なビットレートの中から選択することができ、それ故、ネットワーク状態を変えることに適合することができる。DASHは、ワールドワイドウェブ上でコンテンツを配信するために、インターネットのHTTPウェブサーバインフラストラクチャを使用する。DASHは、メディア・コンテンツを符号化および復号することに使用されるコーデックから独立であり、それ故、とりわけ、H.264およびHEVCなどのコーデックを用いて、動作する。
[0137]ISOBMFF仕様は、DASHを用いた使用のための6つのタイプのStream Access Points(SAP)を特定する。最初の2つのSAPタイプ(タイプ1および2)は、H.264/AVCおよびHEVCにおける瞬時復号リフレッシュ(IDR:instantaneous decoding refresh)ピクチャに対応する。例えば、IDRピクチャは、デコーダにおいて復号プロセスを完全に更新するかまたは、再初期化し、および新しいコーディングされたビデオシーケンスを開始するイントラピクチャ(I−ピクチャ)である。いくつかの例において、IDRピクチャおよび復号順序においてIDRピクチャに続くあらゆるピクチャは、復号順序においてIDRピクチャの前に来るいずれのピクチャにも依存することはできない。
[0138]第3のSAPタイプ(タイプ3)は、オープン−GOP(ピクチャのグループ)ランダムアクセスポイントに対応し、それ故に、HEVCにおけるブロークンリンクアクセス(BLA:broken link access)またはクリーンランダムアクセス(CRA:clean random access)ピクチャに対応する。例えば、CRAピクチャはまた、I−ピクチャである。CRAピクチャは、CRAピクチャの先導するピクチャが復号順序においてCRAピクチャの前に来るピクチャに依存することを可能にして、デコーダを更新しない可能性があり、および新しいCVSを開始しない可能性がある。ランダムアクセスは、CRAピクチャ、復号順序においてCRAピクチャの前に来るいずれのピクチャにも依存しないCRAピクチャと関連付けられた先導するピクチャ、および復号および出力順序の両方においてCRAに続く全てのアソシエートされたピクチャ、を復号することによってCRAピクチャにおいてなされ得る。いくつかの事例において、CRAピクチャは、アソシエートされた先導するピクチャを有さない可能性がある。いくつかの実施形態において、マルチレイヤの事例において、0よりも大きいレイヤIDを有するレイヤに属するIDRまたはCRAピクチャは、P−ピクチャまたはB−ピクチャであり得るが、これらのピクチャは、IDRまたはCRAピクチャと同じアクセセスユニットに属し、かつIDRまたはCRAピクチャを包含するレイヤよりも小さいレイヤIDを有する他のピクチャからのインターレイヤ予測のみを使用する。
[0139]第4のSAPタイプ(タイプ4)は、漸次復号リフレッシュ(GDR:gradual decoding refresh)ランダムアクセスポイントに対応する。
[0140]ISOBMFFは、フレキシブルおよび拡張可能(extensible)であり、またメディアの様々なタイプを記憶および送信するために広く使用される一方で、バーチャル・リアリティ・ビデオを記憶するための、または、バーチャル・リアリティ・コンテンツを含むものとして、ISOベースメディアファイルのコンテンツを識別するための、機構を含まない。プレーヤーデバイスは、それ故、ファイルのコンテンツが、バーチャル・リアリティまたは360度のビデオを含むことを決定することができない可能性がある。バーチャル・リアリティ・コンテンツを表示する能力がないプレーヤーデバイスは、とにかくコンテンツを表示することを試み得、ひずんだプレゼンテーションをもたらす。
[0141]様々なインプリメンテーションにおいて、ISOBMFFおよび/またはISOBMFFから派生したファイル形式は、バーチャル・リアリティ・コンテンツが識別されることができるように、修正されることができ、および/または拡張されることができる。これらのインフォメーションは、ボックス、ブランド価値(brand values)、ボックスにおいてリザーブされたビット、および/または各々がバーチャル・リアリティ・コンテンツを独立してまたは組み合わせて識別することができる他のインジケータを伴うことができる。
[0142]様々なインプリメンテーションにおいて、360度のビデオにおいて魚眼画像を記述するパラメータは、ISOBMFFファイルに含まれることができる。例えば、パラメータは、ファイルレベルに、ムービーレベルにおいて、および/またはトラックレベルにおいて含まれることができる。いくつかのインプリメンテーションにおいて、パラメータは、後方互換性のあるやり方でISOBMFFファイルに含まれることができる。このコンテキストにおける「後方互換性がある(backwards-compatible)」は、360度のビデオをサポートしない、または魚眼画像をディスプレイ形式にレンダリングすることをサポートしないビデオディスプレイデバイスが、360度のビデオを提示することおよびひずんだ結果を提供することを試みることの代わりに、未だにパーシングすることおよびビデオにおいていくつかのバーションを再生ができることを意味する。
[0143]図8Aおよび図8Bは、ISOベースメディアファイル800における最高位のボックスが、そのファイル800が、バーチャル・リアリティ・コンテンツを含むことを示すために使用される例を例示する。様々なインプリメンテーションにおいて、最高位のボックスを使用することは、ファイル800におけるコンテンツの全てが、バーチャル・リアリティ・コンテンツであることを示す。ファイル800は、ファイルタイプボックス810を含むことができ、それは、ファイル800がそれと互換性のあるISOBMFFの派生物(derivations)またはISOBMFFの特定の反復または(1つまたは複数の)ブランドを特定することができる。ファイル800はまた、ムービーボックス820を含むことができ、それは、プレゼンテーションのためのメタデータを包含することができる。ファイル800はまた、上記で議論されたように、1つまたは複数フラグメント830a、830b、830c、830nを随意的に含むことができる。
[0144]図8Aの例において、ファイルタイプボックス810は、ファイル800がバーチャル・リアリティ・コンテンツを含むことを示すために使用されることができる。ファイルタイプボックス810は、例えば、ファイルがバーチャル・リアリティのブランドと互換性があることを示すブランド価値を特定するために、使用されることができる。様々なインプリメンテーションにおいて、ファイルタイプボックス810においてリストされる互換性のあるブランドはまた、随意的なブランドインジケータを提供するために使用されることができ、それは、バーチャル・リアリティに関連したパラメータを提供するために使用されることができる。例えば、1つの互換性のあるブランド価値がバーチャル・リアリティ・コンテンツが2次元(2−D)であることを示すことができる一方で、他の互換性のあるブランド価値は、バーチャル・リアリティ・コンテンツが3次元(3−D)であることを示すことができる。別の例として、互換性のあるブランド価値が、マッピングタイプ、つまり、バーチャル・リアリティまたは360度のビデオの球形表現がエクイレクタングラー、立方体、または角錐形式、あるいはファイル800における記憶のための何らかの他の形式にマッピングされていたかどうか、を示すために使用されることができる。様々なインプリメンテーションにおいて、次元性および/またはビデオのマッピングのような情報は、ファイルタイプボックス810における随意的なフィールドを使用して、代替的または追加的に示されることができる。
[0145]図8Bの例において、新しいボックスタイプ860は、定義されていた。新しいボックスタイプ860は、ファイルタイプボックス810と同様に、最高位のボックスである。ファイルにおける新しいボックスタイプ860の存在、および/または新しいボックスタイプ860におけるインジケータは、ファイル800がバーチャル・リアリティ・コンテンツを含むことを示すために使用されることができる。例えば、新しいボックスタイプ860は、バーチャル・リアリティと互換性のあるブランド価値(a virtual reality-compatible brand value)を特定することができ、および/または互換性のあるブランドリストにおいてバーチャル・リアリティ・コンテンツと互換性のあるブランド価値を含む。新しいボックスタイプ860は、例えば、360度のビデオが魚眼画像を含むとき、バーチャル・リアリティ・コンテンツが2−Dの360度のビデオであるか、または3−Dの360度のビデオであるか、ファイル800に記憶された360度のビデオデータに関するマッピング、および/または魚眼パラメータを示すことができる随意的なパラメータをさらに含むことができる。新しいボックスタイプ860を特定することは、図8Aの例におけるように、ファイルタイプボックス810を修正することの必要性を避けることができる。新しいボックスタイプ860を認識することができないプレーヤーデバイスは、それを無視し得る。
[0146]ファイルの最高位に関して定義されたファイルタイプボックス810または新しいボックスタイプ860が、ファイル800がバーチャル・リアリティ・コンテンツを含むことを示すために使用されるとき、いくつかのインプリメンテーションにおいて、ファイル800はまた、バーチャル・リアリティ・コンテンツの存在をシグナリングするためにファイル800における他のボックスの中にインジケータを含むことが必要でない場合がある。
[0147]図9は、ムービーレベルのインジケーションが、ファイル900がバーチャル・リアリティ・コンテンツを含むことを示すために、ISOベースメディアファイル900において使用される例を例示する。ファイル900は、ファイルタイプボックス910を含むことができ、それは、ファイル900がそれと互換性のあるISOBMFFの派生物またはISOBMFFの特定の反復または(1つまたは複数の)ブランドを特定することができる。ファイル900はまた、ムービーボックス920を含むことができ、それは、プレゼンテーションのためのメタデータを包含することができる。ファイル900はまた、上記で議論されたように、1つまたは複数フラグメント930a、930b、930c、930nを随意的に含むことができる。
[0148]上記で議論されるように、ムービーボックス920は、ムービーヘッダボックス922および随意的に1つまたは複数トラックボックス924を含むことができる。図9の例において、ムービーヘッダボックス922は、ムービーボックス920によって記述されるムービーまたはプレゼンテーションは、バーチャル・リアリティ・コンテンツを含むことを示すために使用される。例えば、ムービーヘッダボックス922におけるリザーブされたビットは、1つの値に設定されたとき、ムービー・コンテンツは、バーチャル・リアリティまたは360度のビデオであること、および、ムービーが360度のビデオであり得るかまたはそうでない可能性があるとき、他の値に設定されることができること、を示すことができる。1つの例示的な例において、リザーブされたビットのうちの1つがインジケーションを運ぶために使用される場合、1に等しいビットは、コンテンツが360度のビデオ・コンテンツであることを示し、および0に等しいビットは、コンテンツが360度のビデオ・コンテンツであり得るかまたはそうでない可能性があることを示すことを示す。リザーブされたビットを処理するように構成されていないプレーヤーデバイスは、これらのビットを無視し得る。
[0149]他のフィールドおよび/またはムービーヘッダボックス922においてリザーブされたビットは、バーチャル・リアリティ・コンテンツに関連する随意的なパラメータを提供するために使用されることができる。例えば、ムービーヘッダボックス922は、バーチャル・リアリティ・コンテンツが2−Dの360度のビデオであるか、または3−Dの360度のビデオであるかを示すパラメータを含むことができる。
[0150]別の例として、ムービーヘッダボックス922は、360度のビデオ・コンテンツが、事前にステッチされるか(pre-stitched)または後にステッチされる(post-stitched)かを示すパラメータを含むことができる。「事前にステッチされる」は、360度のビデオプレゼンテーションのためにキャプチャされた異なる眺めがファイル900において記憶される前に単一表現にアセンブルされたことを意味し、「後にステッチされる」は、異なる眺めがファイル900において個別に記憶されており、デコーダデバイスによって単一表現にアセンブルされることを意味する。
[0151]事前にステッチされる360度のビデオは、形状が球形として、典型的に表現され、記憶のためにより便利な(convenient)別の形状(例えば、エクイレクタングラー、立方体マッピングされた、角錐マッピングされた、または何らかの他の形状)にマッピングされる。使用されるマッピングタイプを示すパラメータは、例えば、リザーブされたビットを使用して、ムービーヘッダボックス922においてシグナリングされることができるパラメータの別の例である。例えば、1つのリザーブされたビットは、各マッピングタイプインジケーションを運ぶために使用されることができる。様々なインプリメンテーションにおいて、プレーヤーデバイスは、複数のマッピングタイプをサポートすることができる。これらのインプリメンテーションにおいて、ムービーヘッダボックス922は、個々のトラックごとに、および/またはトラックのグループに関して、マッピングタイプを含むことができる。
[0152]ムービーヘッダボックス922が、ムービーボックス920において記憶されるムービープレゼンテーションが360度のビデオを含むことを示すために使用されるとき、様々なインプリメンテーションにおいて、ムービーボックス920における他のボックスはまた、360度のビデオが存在することをシグナリングする必要がない場合がある。
[0153]図10は、トラックレベルインジケータが、ファイル1000がバーチャル・リアリティ・コンテンツを含むことを示すために、ISOベースメディアファイル1000において使用される例を例示する。ファイル1000は、ファイルタイプボックス1010を含むことができ、それは、ファイル1000がそれと互換性のあるISOBMFFの派生物またはISOBMFFの特定の反復または(1つまたは複数の)ブランドを特定することができる。ファイル1000はまた、ムービーボックス1020を含むことができ、それは、プレゼンテーションのためのメタデータを包含することができる。ファイル1000はまた、上記で説明されるように、1つまたは複数フラグメント1030a、1030b、1030c、1030nを随意的に含むことができる。
[0154]ムービーボックス1020は、ムービーヘッダボックス1022および1つまたは複数トラックボックス1024、ならびに本明細書において例示されていない他のボックスを含むことができる。ムービーヘッダボックス1022は、全体として、プレゼンテーションを記述する情報を含むことができる。トラックボックス1024は、プレゼンテーションにおいてトラックに関する情報を含むことができる。トラックボックス1024は、トラックヘッダボックス1024aおよびゼロまたはそれより多くのメディアデータボックス1024bを含むことができる。
[0155]図10の例において、特定のトラックボックス1024のためのトラックヘッダボックス1024aは、トラックボックス1024によって説明されるトラックは、バーチャル・リアリティ・トラックであることを示すために使用され、トラックによって言及されるサンプルは、バーチャル・リアリティ・データを含むことを意味する。トラックにおけるバーチャル・リアリティ・コンテンツは、例えば、トラックヘッダボックス1024aにおいてリザーブされたビットを使用して、示されることができる。例えば、特定のリザーブされたビットが1つの値に設定されているとき、トラックは、バーチャル・リアリティ・コンテンツを含み、ビットが他の値に設定されているとき、トラックは、バーチャル・リアリティ・コンテンツを含み得るかまたは含まない可能性がある。1つの例示的な例において、リザーブされたビットのうちの1つがインジケーションを運ぶために使用される場合、1に等しいビットは、コンテンツがバーチャル・リアリティ・コンテンツであることを示し、および0に等しいビットは、コンテンツが、バーチャル・リアリティ・コンテンツであり得るかまたはそうでない可能性があるかを示す。いくつかのインプリメンテーションにおいて、トラックヘッダボックス1024aにおけるバーチャル・リアリティ・コンテンツのシグナリングは、ムービーヘッダボックス1022においてシグナリングされるものに依存し得る。例えば、ムービーヘッダボックス1122が、ムービーがバーチャル・リアリティ・コンテンツを含まないことを示すとき、トラックがバーチャル・リアリティ・データを包含するというトラックヘッダボックス1024aにおけるいずれのインジケーションも、無視されることができる。
[0156]様々なインプリメンテーションにおいて、他のバーチャル・リアリティ関連のパラメータはまた、トラックヘッダボックス1024aにおいてシグナリングされることができる。例えば、リザーブされたビットまたは何らかの他の変数は、バーチャル・リアリティまたはトラックにおける360度のビデオが事前にステッチされるかまたは後にステッチされるかを示すために使用されることができる。トラックにおけるビデオが、事前にステッチされるとき、追加のパラメータは、(例えば、視点(a point of view)および/または視野角(viewing angle)に関して)カメラ位置のような、情報を提供することができる。トラックにおけるビデオが後にステッチされるとき、追加のパラメータは、ファイル1000においてデータを記憶するために使用される表現(例えば、エクイレクタングラー、立体マップ、角錐マップ、または何らかの他の形状)と球形ビデオ表現との間にマッピングタイプを提供することができる。様々なインプリメンテーションにおいて、360度のビデオデータにおいて魚眼画像を記述する、魚眼パラメータはまた、トラックヘッダボックス1024aにおいて記憶されることができる。
[0157]トラックボックス1024のためのトラックヘッダボックス1024aが、トラックがバーチャル・リアリティ・コンテンツを含むことをシグナリングするために使用されるとき、いくつかのインプリメンテーションにおいて、トラックボックス1024における他のボックスは、トラックにおけるバーチャル・リアリティ・コンテンツの存在をまた(also)シグナリングする必要がない可能性がある。
[0158]様々なインプリメンテーションにおいて、ISOベースメディアファイルにおけるトラックがバーチャル・リアリティ・コンテンツを含むとき、バーチャル・リアリティ・コンテンツをプレーヤーデバイスにシグナリングするために様々な追加的または代替的なアプローチが使用されることができる。図11は、ISOベースメディアファイル1100の1つの例を例示し、ここで、ハンドラーボックス1124cは、トラックのコンテンツが、バーチャル・リアリティ・コンテンツを含むことをシグナリングするために使用される。ファイル1100は、ファイルタイプボックス1110を含むことができ、それは、ファイル1100がそれと互換性のあるISOBMFFの派生物またはISOBMFFの特定の反復または(1つまたは複数の)ブランドを特定することができる。ファイル1100はまた、ムービーボックス1120を含むことができ、それは、プレゼンテーションのためのメタデータを包含することができる。ファイル1100はまた、上記で説明されるように、1つまたは複数フラグメント1130a、1130b、1130c、1130nを随意的に含むことができる。
[0159]ムービーボックス1120は、ムービーヘッダボックス1122および1つまたは複数トラックボックス1124、ならびに本明細書において例示されていない他のボックスを含むことができる。ムービーヘッダボックス1122は、全体として、プレゼンテーションを記述する情報を含むことができる。トラックボックス1124は、プレゼンテーションにおいてトラックに関する情報を含むことができる。トラックボックス1124は、トラックヘッダボックス1124aおよびゼロまたはそれより多くのメディアデータボックス1124bを含むことができる。
[0160]メディアデータボックス1124bは、他のボックスの中でも、ハンドラーボックス1124cを含むことができる。ハンドラーボックス1124c、それは、ハンドラー参照ボックスとして呼ばれ得るが、トラックのメディアタイプを示すことができる。トラックのメディアタイプは、トラックにおけるメディアデータがそれにより提示されるプロセスを定義する。メディアタイプの例は、とりわけ、ビデオおよび音声を含む。メディアが提示されるやり方は、メディアのための形式を含むことができる。例えば、プレーヤーデバイスがトラックにおけるビデオデータを配信するために使用する形式(例えば、縦横比、解像度、フレームレート、等)は、ビデオトラックにおいて記憶されることができ、ハンドラーボックス1124cのビデオハンドラーバージョンによって識別されることができる。いくつかの事例において、ファイル1100は、いずれのタイプのメタデータストリームのための一般的なハンドラーを含むことができる。これらの事例において、ビデオ・コンテンツの特定の形式は、コンテンツを記述するサンプルエントリーによって識別されることができる。
[0161]いくつかの事例において、メディアデータボックス1124bは、ハンドラーボックス1124cを含むことができる。ハンドラーボックス1124cは、トラックボックス1124によって説明されるトラックがバーチャル・リアリティ・データを含むことを示すために使用されることができる。例えば、トラックがビデオデータを記述するとき、ハンドラーボックス1124cは、具体的にはビデオハンドラーボックスであることができ、それは、ボックスタイプ「vide」によって識別されることができる。
[0162]様々なインプリメンテーションにおいて、ハンドラーボックス1124cは、メディアデータボックス1124bによって参照されるメディア・コンテンツがバーチャル・リアリティ・コンテンツを含むことを示すために、使用されることができる。例えば、ハンドラーボックス1124cは、トラックにおいて包含されるビデオ・コンテンツがバーチャル・リアリティまたは360度のビデオである(例えば、リザーブされたビットまたは新しい変数における)随意的なインジケータを含むことができる。随意的なインジケータを読み込むように構成されていないビデオプレーヤーは、それを無視し得る。
[0163]いくつかのインプリメンテーションにおいて、ビデオハンドラーボックスはまた、バーチャル・リアリティまたは360度のビデオが2−Dであるかまたは3−Dであるか、360度のビデオが事前にステッチされるかまたは後にステッチされるか、360度のビデオに関するマッピング、および/または360度のビデオが魚眼画像を含むときの魚眼パラメータなどの、バーチャル・リアリティ・コンテンツを記述するパラメータを随意的に含むことができる。様々なインプリメンテーションにおいて、バーチャル・リアリティ・コンテンツに関連したパラメータは、トラックボックス1024において発見されることができる様々な他のボックスにおいて示されることができる。例えば、パラメータは、トラックヘッダボックス1124aにおいてシグナリングすることができる。代替的または追加的に、パラメータは、(ボックスタイプ「mdhd」によって識別される)メディアヘッダボックスにおいて、および/または、(ボックスタイプ「vmhd」によって識別される)ビデオメディアヘッダボックスにおいて、シグナリングされることができるが、それらは本明細書には、例示されていない。代替的または追加的に、パラメータは、サンプルエントリーにおいて、および/またはトラックボックス1124の最高位に置かれることができる新しく定義されたボックスにおいて、示されることができる。
[0164]図12は、トラックがバーチャル・リアリティ・コンテンツを含むことを示すために新しいハンドラーボックス1224dが定義されていたISOベースメディアファイル1200の例を例示する。ファイル1200は、ファイルタイプボックス1210を含むことができ、それは、ファイル1200がそれと互換性のあるISOBMFFの派生物またはISOBMFFの特定の反復または(1つまたは複数の)ブランドを特定することができる。ファイル1200はまた、ムービーボックス1220を含むことができ、それは、プレゼンテーションのためのメタデータを包含することができる。ファイル1200はまた、上記で説明されるように、1つまたは複数フラグメント1230a、1230b、1230c、1230nを随意的に含むことができる。
[0165]ムービーボックス1220は、ムービーヘッダボックス1222および1つまたは複数トラックボックス1224、ならびに本明細書において例示されていない他のボックスを含むことができる。ムービーヘッダボックス1222は、全体として、プレゼンテーションを記述する情報を含むことができる。トラックボックス1224は、プレゼンテーションにおけるトラックに関する情報を含むことができる。トラックボックス1224は、トラックヘッダボックス1224aおよびゼロまたはそれより多くのメディアデータボックス1224bを含むことができる。
[0166]上記で議論されるように、いくつかの事例において、メディアデータボックス1224bは、ハンドラーボックス1224dを含むことができ、それは、メディアデータボックス1224bによって記述されるメディア・コンテンツを提示するための形式を記述することができる。図12の例において、新しいハンドラーボックス1224dは、定義されており、それは、バーチャル・リアリティまたは360度のビデオデータに特有である。新しいハンドラーボックス1224dは、例えば、ボックスタイプ「vrvd」によって、識別されることができる。この例において、バーチャル・リアリティ・コンテンツと互換性のないビデオプレーヤーは、新しいハンドラーボックス1224dを識別することができず、それ故、新しいハンドラーボックス1224dを無視し得、およびトラックボックス1224によって言及されるいかなるコンテンツもスキップし得る。バーチャル・リアリティ・コンテンツは、それ故、バーチャル・リアリティ・ビデオを表示するように構成されていないプレーヤーによってレンダリングおよび表示されない。
[0167]いくつかのインプリメンテーションにおいて、新しいハンドラーボックスは、随意に、バーチャル・リアリティまたは360度のビデオが2−Dであるかまたは3−Dであるか、360度のビデオが事前にステッチされるかまたは後にステッチされるか、360度のビデオに関するマッピング、および/または魚眼パラメータなどの、バーチャル・リアリティ・コンテンツを記述するパラメータを含むことができる。様々なインプリメンテーションにおいて、バーチャル・リアリティ・コンテンツに関連したパラメータは、トラックボックス1224において発見されることができる様々な他のボックスにおいて示されることができる。例えば、パラメータは、トラックヘッダボックス1224aにおいてシグナリングすることができる。代替的または追加的に、パラメータは、(ボックスタイプ「mdhd」によって識別される)メディアヘッダボックスにおいて、および/または、(ボックスタイプ「vmhd」によって識別される)ビデオメディアヘッダボックスにおいて、シグナリングされることができるが、それらは本明細書には、例示されていない。代替的または追加的に、パラメータは、サンプルエントリーにおいて、および/またはトラックボックス1224の最高位に置かれることができる新しく定義されたボックスにおいて、示されることができる。
[0168]図13は、ISOベースメディアファイルに含まれることができるメディアボックス1340の例を例示する。上記で議論されるように、メディアボックスは、トラックボックスに含まれることができ、トラックにおいてメディアデータを記述するオブジェクトおよび情報を包含することができる。例示された例において、メディアボックス1340はメディア情報ボックス1342を含む。メディアボックス1340はまた、他のボックスを含むことができるが、それは、ここで例示されていない。
[0169]メディア情報ボックス1342は、トラックにおけるメディアについての特性情報を記述するオブジェクトを包含することができる。例えば、メディア情報ボックス1342は、データ情報ボックスを含むことができ、それは、トラックにおけるメディア情報のロケーションを記述する。別の例として、メディア情報ボックス1342は、トラックがビデオデータを含むとき、ビデオメディアヘッダを含むことができる。ビデオメディアヘッダは、ビデオメディアのコーディングから独立した一般的なプレゼンテーション情報を包含することができる。メディア情報ボックス1342はまた、トラックが音声データを含むとき、サウンドメディアヘッダを含むことができる。
[0170]メディア情報ボックス1342はまた、例示された例において提供されるような、サンプルテーブルボックス1344を含むことができる。ボックスタイプ「stbl」によって識別される、サンプルテーブルボックス1344は、トラックにおけるメディアサンプルに関するロケーション(例えば、ファイルを伴うロケーション)、ならびにサンプルに関する時間情報を提供することができる。サンプルテーブルボックス1344によって提供される情報を使用して、プレーヤーデバイスは、とりわけ、正しい時間順序にサンプルを位置づける(locate)こと、サンプルのタイプを決定すること、および/またはコンテナ内の、サンプルのオフセット、コンテナ、およびサイズを決定することができる。
[0171]サンプルテーブルボックス1344は、ボックスタイプ「stsd」によって識別される、サンプル記述ボックス1346、を含むことができる。サンプル記述ボックス1346は、例えば、サンプルに使用されるコーディングタイプ、およびそのコーディングタイプに必要とされるいずれの初期化情報についての詳細な情報を提供することができる。サンプル記述ボックスにおいて記憶された情報は、サンプルを含むトラックのタイプに特有であることができる。例えば、1つの形式は、トラックがビデオトラックであるとき、サンプル記述のために使用され得、トラックがヒントトラックであるとき、異なる形式が使用され得る。さらなる例として、サンプル記述のための形式はまた、ヒントトラックの形式に依存して、異なり得る。
[0172]サンプル記述ボックス1346は、1つまたは複数サンプルエントリー1348a、1348b、1348cを含むことができる。サンプルエントリータイプは、抽象型クラスであり、それ故、典型的に、サンプル記述ボックスは、他の例の中でも、ビデオデータのための視覚のサンプルエントリーまたは音声サンプルのための音声サンプルエントリーのような、特定のサンプルエントリーボックスを含む。サンプルエントリーボックスは、特定のサンプルに関するパラメータを記憶することができる。例えば、ビデオサンプルに関して、サンプルエントリーボックスは、とりわけ、ビデオサンプルに関する、幅、高さ、水平解像度、垂直解像度、フレームカウント(frame count)、および/または奥行きを含むことができる。別の例として、音声サンプルに関して、サンプルエントリーは、とりわけ、チャネルカウント、チャネルレイアウト、および/またはサンプルレートを含むことができる。
[0173]例示された例において、第1のサンプルエントリー1348aは、制限されたスキーム情報ボックス1360を含む。ボックスタイプ「rinf」によって識別される、制限されたスキーム情報ボックスは、スキームのパラメータおよびサンプルに適用される制限されたスキームを理解するために両方に必要とされる情報を包含することができる。いくつかの事例において、ファイルの著者は、プレーヤーデバイスからのある特定のアクションを必要とし得る。これらの事例において、ファイルは、制限されたスキーム情報ボックスを含むことができ、それは、プレーヤーデバイスが、ファイルのメディア・コンテンツをレンダリングするための必須要件を決定するために、場所を見つける(locate)ことができおよび使用することができる。コンテンツをレンダリングすることができない可能性があるプレーヤーはまた、それらがコンテンツをレンダリングすることができないこと、それ故、コンテンツを処理することを試みるべきではないことを決定するために、制限されたスキーム情報ボックスを使用することができる。制限されたスキーム情報ボックスは、典型的に、オリジナルのサンプルエントリータイプ、つまり、制限されたスキーム情報ボックスによって記述されるいずれの変換の前のサンプルエントリーのタイプを含む。
[0174]様々なインプリメンテーションにおいて、制限されたスキームは、バーチャル・リアリティ・コンテンツに関して定義されることができる。これらのインプリメンテーションにおいて、制限されたスキーム情報ボックス1360は、バーチャル・リアリティ・データを含むサンプルエントリー1348aに追加されることができる。制限されたスキームのタイプは、ボックスタイプ「schm」によって識別される、スキームタイプボックス1362において特定されることができる。例えば、「vrvd」に対応する符号化は、バーチャル・リアリティ・コンテンツに関する制限されたスキームを識別するために使用されることができる。
[0175]例示された例における制限されたスキーム情報ボックス1360は、ボックスタイプ「schi」によって識別される、スキーム情報ボックス1364を含む。スキーム情報ボックス1364は、特定のスキームのため情報を記憶することができる。例えば、制限されたスキームがバーチャル・リアリティ・コンテンツに関するとき、スキーム情報ボックス1364は、バーチャル・リアリティ・コンテンツに関するパラメータを含むことができる。これらのパラメータは、例えば、バーチャル・リアリティまたは360度のビデオが2−Dであるかまたは3−Dであるか、360度のビデオが事前にステッチされるかまたは後にステッチされるか、360度のビデオに関するマッピング、および/または360度のビデオが魚眼画像を含むときの魚眼パラメータ、を含むことができる。様々なインプリメンテーションにおいて、スキーム情報ボックスは、バーチャル・リアリティ・コンテンツに関して、特にバーチャル・リアリティ・コンテンツに関するパラメータを包含することに関して、定義されることができる。
[0176]図13において例示される技法を使用して、新しいボックスな何も、レガシープレーヤーデバイスによって理解されない可能性があるISOBMFF仕様に追加される必要がない。新しいボックスを用いてさえも、レガシープレーヤーデバイスは、デバイスが識別できないコンテンツを再生することを試み得、このコンテンツがバーチャル・リアリティ・メディアであるとき、結果は、ひずんだプレゼンテーションであり得る。新しいボックスを加えることを避けることにおいて、ファイルは、バーチャル・リアリティ・コンテンツに関して生成されることができ、ここで、ファイルは、恐らくレガシープレーヤーデバイスが識別できるボックスのみを含む。レガシープレーヤーデバイスは、デバイスが、制限されたスキーム情報ボックス1364によって記述される制限されたスキームをインプリメントすることができないこと、それ故、バーチャル・リアリティ・コンテンツを表示することを試みないことをさらに決定することができる。
[0177]技法は、バーチャル・リアリティ・コンテンツをレンダリングする能力があるレガシープレーヤーおよびプレーヤーの両方にフレキシビリティを追加的に提供する。レガシープレーヤーは、例えば、プレーヤーが制限されたスキーム情報ボックスによって識別されるバーチャル・リアリティ・スキームを理解するかどうかを決定することができる。プレーヤーデバイスが制限されたスキームに適合することができないとき、プレーヤーデバイスは、トラックにおけるコンテンツを全くレンダリングしないことを選び得るか、またはオリジナルの、変換されていないサンプルを代わりに処理し得る。制限されたスキーム機構は、それ故、プレーヤーデバイスが、ビットストリームをレンダリングするための必須要件を決定するためにファイルを調査(inspect)することを可能にすることができ、レガシープレーヤーデバイスがそのデバイスが処理する能力がない可能性があるファイルを復号およびレンダリングすることを止めることができる。
[0178]様々なインプリメンテーションにおいて、バーチャル・リアリティ・コンテンツは、ビデオビットストリームにおける付加拡張情報(SEI)メッセージに追加的または代替的に含まれることができる。SEIメッセージは、それ故、ビットストリームがバーチャル・リアリティ・コンテンツを含むことを示すことができる。様々なインプリメンテーションにおいて、SEIメッセージは、ファイルのレベルにおいて、ムービーレベルにおいて、および/またはトラックレベルにおいて、バーチャル・リアリティ・コンテンツを示すことができる。様々なインプリメンテーションにおいて、SEIメッセージはまた、360度のビデオのプロパティ(例えば、ビデオが2−Dであるかまたは3−Dであるか、事前にステッチされるかまたは後にステッチされるか、魚眼パラメータ、等)を記述するパラメータを含むことができる。
[0179]上記に説明された技術のうちの1つまたは複数を使用して、魚眼パラメータは、後方互換性のあるやり方でISOBMFFファイルに含まれることができる。例えば、後方互換性は、次のステップを使用して、達成されることができる。
[0180]−ジェネリックサンプルエントリー‘resv’は、サンプルエントリーの4文字コード(4CC)を取り換えるために使用される。
[0181]−制限されたスキームInfoボックスは、サンプル記述に加えられ、全ての他のボックスを修正のないままにする。
[0182]−オリジナルのサンプルエントリータイプは、制限されたスキームInfoボックスにおいて包含されるオリジナルの形式ボックス内に記憶される。
[0183]−新しいボックスは、360度のビデオメタデータ情報を包含するために定義され、およびこの新しいボックスは、制限されたスキームInfoボックスにおいて含まれる。
[0184]−バーチャル・リアリティ・スキームタイプが定義され、それは、SchemeTypeBoxに含まれる。
[0185]−360度のビデオメタデータは、SchemeInformationBoxにおいて記憶される(例えば、VRビデオボックスと呼ばれる)新しいボックスに含まれる。
[0186]ISOBMFFファイルにおいてバーチャル・リアリティまたは360度のビデオ情報を提供するための定義、シンタックス、およびセマンティクスが下記に提供される。以下のセクションは、ISOBMFF仕様のセクション8.15への修正として、起草される(drafted)。このセクションへ追加されることになるテキストは、下線が引かれているテキスト(追加のテキストの例)として示される。
[0187]バーチャル・リアリティ・ビデオ情報ボックスの定義、シンタックス、およびセマンティクスは、以下の通りである。
[0188]定義
[0189]ボックスタイプ:‘vrvd’
[0190]コンテナ:スキーム情報ボックス(‘schi’)
[0191]必須か(Mandatory)M:はい(Yes)(スキームタイプが‘vrvd’であるとき)
[0192]量:1
[0193]VRビデオボックスは、トラックに包含されるビデオがVRビデオであることを示すために使用される。VRビデオボックスは、スキームタイプが‘vrvd’であるとき、存在するものとする。
[0194]シンタックス
[0195]セマンティクス
[0196]vr_mapping_typeは、球形ビデオから長方形形式へのマッピングタイプを示す整数である。ゼロ値は、エクイレクタングラーマップを示す。1の値は、立方体マップを示す。2の値は、どの投影マップも使用されず、各コーディングされたビデオピクチャが、魚眼カメラレンズによって各々がキャプチャされた、複数の(通常は2つの)円形画像を包含する魚眼ビデオピクチャであることを示し、形式は、FisheyeVideoInfoBoxによって記述される。他の値は、リザーブされる。
[0197]紹介された魚眼ビデオ情報ボックス(Fisheye Video Information box)の定義、シンタックス、およびセマンティクスは、以下の通りである(例えば、ISOBMFF仕様のセクション8.15への追加):
[0198]定義
[0199]ボックスタイプ:‘fevi’
[0200]コンテナ:スキーム情報ボックス(‘vrvd’)
[0201]必須か:はい(vr_mapping_typeが2に等しいとき)
[0202]量:1
[0203]魚眼ビデオ情報ボックスは、トラックにおいて含まれる魚眼VRビデオの形式を示すために使用される。形式情報は、魚眼VRビデオをレンダリングする際に使用されることができる。このボックスは、コンテナ‘vrvd'ボックスのvr_mapping_typeが2に等しいとき、存在するものとする。
[0204]シンタックス
[0205]セマンティクス
[0206]num_circular_imagesは、このボックスが適用される各サンプルのコーディングされたピクチャにおける円形画像の数を示す。典型的に、値は、2に等しいが、他の非ゼロの値がまた、可能である。
[0207]image_center_xは、このボックスが適用される各サンプルのコーディングされたピクチャにおける円形画像の中心の、ルマサンプル(luma samples)における、水平座標を示す固定少数点16.16の値である。
[0208]image_center_yは、このボックスが適用される各サンプルのコーディングされたピクチャにおける円形画像の中心の、ルマサンプルにおける、垂直座標を示す固定少数点16.16の値である。
[0209]full_radiusは、円形画像の中心からの完全球形の(full round)画像のエッジまでの、ルマサンプルにおける、半径を示す固定少数点16.16の値である。[全半径、フレーム半径、およびシーン半径を示す例については図4を参照]。全半径は、万が一円形画像が完全には円形でなく、実際には楕円形(elliptical)である場合に備えて、水平および垂直半径の両方として定義され得る。円形画像が切り取られる場合、この値は、理論上は切り取られていない全半径として、それでもなお定義される。
[0210]frame_radiusは、円形画像の中心からの画像の境界の最も近いエッジまでの、ルマサンプルにおける、半径を示す固定少数点16.16の値である。円周魚眼画像は、カメラフレームによって切り取られ得、それ故、この値は、円の半径を示し、ここにおいて、画素は、使用可能である。
[0211]scene_radiusは、カメラボディそれ自体からの障害物はないことが保証される画像における円形画像の中心からエリアの最も近いエッジまでの、ルマサンプルにおける、半径を示す固定小数点の16.16の値である。
[0212]image_rotationは、円形画像の、度における、回転量を示す固定少数点16.16の値である。異なるビデオカメラ製造業者は、キャプチャされた個々の魚眼画像ごとに異なる座標系(coordinate systems)またはレイアウトを選び得る。画像は、画像+/−90度、または+/−180度、あるいは任意の他の値だけ回転され得る。
[0213]image_flipは、画像がフリップされていたか、そしてそれ故、反転フリッピング動作が適用されることが必要とされるかどうか、およびどのように画像がフリップされていたか、そしてそれ故、どのように反転フリッピング動作が適用されることが必要とされるかを示す。0の値は、画像がフリップされていなかったことを示す。1の値は、画像が垂直にフリップされていたことを示す。2の値は、画像が水平にフリップされていたことを示す。3の値は、画像が垂直にと水平にの両方でフリップされていたことを示す。
[0214]image_scale_axis_angle、image_scale_x、およびimage_scale_yは、画像が軸に沿ってスケーリングされていたか、およびどのように画像が軸に沿ってスケーリングされていたかを示す3つの固定少数点16.16の値である。軸は、度において、image_scale_axis_angleの値によって示されるように、単一の角度によって定義される。0度の角度は、水平ベクトルが完全に水平であること、および垂直ベクトルが完全に垂直であることを意味する。image_scale_xおよびimage_scale_yの値は、軸に対して、それぞれ、平行である方向および直交である方向におけるスケーリング比を示す。
[0215]field_of_viewは、度において、魚眼レンズの視野を示す固定少数点16.16の値である。半球形魚眼レンズのための典型的な値は、180.0度である。
[0216]num_compression_curve_piontsは、次の、compression_curve_xとcompression_curve_yとのペアを示す整数である。
[0217]compression_curve_xおよびcompression_curve_yのペアのリストは、キャプチャされた球のシーンの部分に対する円形画像のジオメトリック(幾何学的)圧縮曲線を表す固定少数点16.16の値である。compression_curve_xの値のアレイは、画像の中心の0.0から画像境界リムの1.0までに及ぶ半径長の正規化された値を表す。compression_curve_yの値のアレイは、カメラビュー方向(camera view direction)からの、度における、角度を表す。180度の視野を有する魚眼レンズに関して、正規化された軸に沿った度の範囲は、画像の中心における0.0から、画像の境界リムにおける90.0度までである。
[0218]num_deadzonesは、このボックスが適用される各サンプルのコーディングされたピクチャにおけるデッドゾーンの数を示す整数である。
[0219]deadzone_left_horizontal_offset、deadzone_top_vertical_offset、deadzone_widthおよびdeadzone_heightは、画素が使用可能でないデッドゾーン長方形エリアの位置およびサイズを示す整数値である。deadzone_left_horizontal_offsetおよびdeadzone_top_vertical_offsetは、コーディングされたピクチャのデッドゾーンの左上角の、ルマサンプルにおいて、それぞれ、水平および垂直座標を示す。deadzone_widthおよびdeadzone_heightは、デッドゾーンの、ルマサンプルにおける、それぞれ、幅および高さを示す。ビデオを表現するためにビットを節約するために、デッドゾーン内の全ての画素は、同じ画素値、例えば、全て黒、に設定されるべきである。
[0220]様々なインプリメンテーションにおいて、魚眼画像を有する360度のビデオに関する魚眼パラメータは、代替的または追加的に、付加拡張情報(SEI)メッセージにおいて提供されることができる。SEIメッセージは、ビデオについての情報を提供するためにビデオビットストリームにおいて使用されるネットワーク抽象化レイヤ(NAL)ユニットの一タイプである。SEIメッセージは、例えば、復号されたビデオ信号のユーザビリティを拡張し得るが、ビデオピクチャにおけるサンプルの値を復号するために必要ではないタイミング情報および他の補足データを提供することができる。
[0221]図14は、ビットストリームの部分であることができるアクセスユニット1400(AU)の例を例示する。さらに下記に議論されるように、ビットストリームは、一連のアクセスユニットを含むことができる。各アクセスユニットを復号することは、結果として、1つの復号されたピクチャをもたらす。本明細書において例示される例となるアクセスユニット1400のような、アクセスユニットは、H.264/AVCおよびH.265/HEVC規格において含まれる。
[0222]図14の例において例示される、アクセスユニット1400は、NALユニットのセットを含むことができ、それらは、一緒に、プライマリにコーディングされたピクチャを構成する。アクセスユニット1400は、随意的なNALユニットを含むことができ、それは、点線において本明細書において例示される。アクセスユニット1400は、アクセスユニットデリミタ(delimiter)1402を用いて随意的に開始することができる。アクセスユニットデリミタは、アクセスユニットの開始の場所を示すことを支援することができる。アクセスユニット1400はまた、プライマリにコーディングされたピクチャ1406に先行する付加拡張情報1404を随意的に含むことができる。SEIは、ピクチャタイミング情報のような、データを包含することができる。プライマリにコーディングされたピクチャ1406は、ビデオコーディングレイヤ(VCL)NALユニットを含むことができる。VCL NALユニットは、ビデオピクチャのサンプルを表すスライスまたはスライスデータ区分を含む。プライマリにコーディングされたピクチャ1406に続くのは、冗長コーディングされたピクチャ1408を包含するいくつかの追加のVCL NALユニットであり得る。冗長コーディングされたピクチャ1408は、同じビデオピクチャのエリアの冗長表現を含むことができ、プライマリにコーディングされたピクチャ1406においてデータの損失または破損から復元する際にデコーダによる使用のために利用可能である。デコーダは、冗長コーディングされたピクチャを、それらが存在しない場合は、復号するために必要とされない。
[0223]プライマリにコーディングされたピクチャ1406がコーディングされたビデオシーケンスの最後のピクチャであるとき、アクセスユニット1400は、シーケンスの終わりを示すためにシーケンスの終わり1410NALユニットを含むことができる。プライマリにコーディングされたピクチャ1406がまた、ビットストリームにおいて最後にコーディングされたピクチャであるとき、アクセスユニット1400はまた、ストリームの終わり1412NALユニット(また、ビットストリームの終わりNALユニットとしても呼ばれる)を含むことができる。
[0224]アクセスユニットにおけるNALユニットは、下記にさらに説明される。
[0225]様々なインプリメンテーションにおいて、SEI NALユニットは、符号化された360度の魚眼ピクチャを有する魚眼パラメータを提供するために使用されることができる。魚眼パラメータを含むSEI NALユニットに関する例となるシンタックスおよびセマンティクスが下記に提供される。
[0226]シンタックス
[0227]セマンティクス
[0228]コーディングされたレイヤワイズビデオシーケンス(CLVS:Coded Layer-wise Video Sequence)における360魚眼ビデオ情報SEIメッセージの存在は、CLVSにおける各コーディングされたビデオピクチャが、魚眼カメラレンズによってキャプチャされた複数の(通常は2つの)円形画像を包含する360度の魚眼ビデオピクチャであることを示す。360魚眼ビデオ情報SEIメッセージにおいて運ばれる360度の魚眼ビデオの情報は、バーチャル・リアリティ環境において360魚眼ビデオを直接にレンダリングするために受信機によって使用されることができる。
[0229]360魚眼ビデオ情報SEIメッセージは、SEIメッセージを包含するCLVSに適用され、また現在のCLVSとも呼ばれ得る。CVLSにおいて存在するとき、360魚眼ビデオ情報SEIメッセージは、CLVSの第1のアクセスユニットにおいて存在するものとし、およびCLVSの他のアクセスユニットにおいて存在し得る。
[0230]num_circular_images_minus1 plus 1は、現在のCLVSにおける各コーディングされたピクチャにおける円形画像の数を特定する。典型的に、num_circular_images_minus1の値は、1に等しいが、他の非ゼロの値がまた、可能である。
[0231]image_center_x_int[ i ]およびimage_center_x_frac[ i ]は、現在のCLVSにおける各コーディングされたピクチャにおけるi番目の円形画像の中心の、ルマサンプルにおける、水平座標の、それぞれ、整数および分数部分を特定する。
[0232]image_center_y_int[ i ]およびimage_center_y_frac[ i ]は、現在のCLVSにおける各コーディングされたピクチャにおけるi番目の円形画像の中心の、ルマサンプルにおける、垂直座標の、それぞれ、整数および分数部分を特定する。
[0233]full_radius_int[ i ]およびfull_radius_frac[ i ]は、円形i番目の円形画像の中心から完全球形の画像のエッジまでの、ルマサンプルにおける、半径の、それぞれ、整数および分数部分を特定する。[例については図4を参照]。全半径は、万が一円形画像が完全には円形でなく、実際には楕円形である場合に備えて、水平および垂直半径の両方として定義され得る。円形画像が切り取られる場合、この値は、理論上は切り取られていない全半径として、それでもなお定義される。
[0234]picture_radius_int[ i ]およびpicture_radius_frac[ i ]は、i番目の円形画像の中心から画像境界の最も近いエッジまでの、ルマサンプルにおける、半径の、それぞれ、整数および分数部分を特定する。[例については図4を参照]。円周魚眼画像は、カメラフレームによって切り取られ得、それ故、この値は、円の半径を示し、ここにおいて、画素は、使用可能である。
[0235]scene_radius_int[ i ]およびscene_radius_frac[ i ]は、それぞれ、カメラボディそれ自体からの障害物はないことが保証される画像におけるi番目の円形画像の中心からエリアの最も近いところまでの、ルマサンプルにおける、半径の整数および分数部分を特定する。[例については図4を参照]。
[0236]image_rotation_int[ i ]およびimage_rotation_frac[ i ]は、i番目の円形画像の、度における、回転量の、それぞれ、整数および分数部分を特定する。異なるビデオカメラ製造業者は、キャプチャされた個々の魚眼画像ごとに異なる座標系またはレイアウトを選び得る。画像は、画像+/−90度、または+/−180度、あるいは、任意の他の値だけ、回転され得る。[図3は、2つの画像を示し、1つは、+90度回転され、もう1つは、−90度回転される(すなわち、+270度)]。
[0237]image_flip_idc[ i ]は、i番目の円形画像がフリップされていたか、そしてそれ故、反転フリッピング動作が適用されることが必要とされるかどうか、およびどのようにi番目の円形画像がフリップされていたか、そしてそれ故、どのように反転フリッピング動作が適用されることが必要とされるかを示す。0の値は、画像がフリップされていなかったことを示す。1の値は、画像が垂直にフリップされていたことを示す。2の値は、画像が水平にフリップされていたことを示す。3の値は、画像が垂直にと水平にの両方でフリップされていたことを示す。
[0238]image_scale_axis_angle_int[ i ]およびimage_scale_axis_angle_frac[ i ]は、i番目の円形画像が沿ってスケーリングされていたスケーリング軸の、度における、角度の、それぞれ、整数および分数部分を特定する。0度の角度は、水平ベクトルが完全に水平であり、垂直ベクトルが完全に垂直であることを意味する。
[0239]image_scale_x_int[ i ]およびimage_scale_x_frac[ i ]は、i番目の円形画像に関するスケーリング軸に対して平行である方向のスケーリング比の、それぞれ、整数および分数部分を特定する。
[0240]image_scale_y_int[ i ]およびimage_scale_y_frac[ i ]は、i番目の円形画像に関するスケーリング軸に対して直交である方向のスケーリング比の、それぞれ、整数および分数部分を特定する。
[0241]field_of_view_int[ i ]およびfield_of_view_frac[ i ]は、i番目の円形画像に関する、度における、魚眼レンズの視野の、それぞれ、整数および分数部分を特定する。半球形魚眼レンズのための典型的な値は、180.0度である。
[0242]num_compression_curve_pionts[ i ]は、次の、compression_curve_x_int[ i ]、compression_curve_x_frac[ i ]、compression_curve_y_int[ i ]、およびcompression_curve_y_frac[ i ]のリストの数を特定する。
[0243]num_compression_curve_pionts[ i ]は、次の、compression_curve_x_int[ i ]、compression_curve_x_frac[ i ]、compression_curve_y_int[ i ]、およびcompression_curve_y_frac[ i ]のリストの数を特定する。
[0244]compression_curve_x_int[ i ][ j ]およびcompression_curve_x_frac[ i ][ j ]は、i番目の円形画像に関する、画像の中心における0.0から画像境界リムにおける1.0までに及ぶ、半径長のj番目の正規化された値を特定する。
[0245]compression_curve_y_int[ i ][ j ]およびcompression_curve_y_frac[ i ][ j ]は、i番目の円形画像に関する、カメラビュー方向からの、度数における、j番目の角度を特定する。180度の視野を有する魚眼レンズに関して、正規化された軸に沿った度の範囲は、画像の中心における0.0から、画像の境界リムにおける90.0度までである。
[0246]半径長および角度の正規化された値のペアのリストは、i番目の魚眼カメラレンズによってキャプチャされた球のシーンの部分に対する円形画像におけるジオメトリック(幾何学的)圧縮曲線を表す。
[0247]num_deadzonesは、現在のCLVSにおいて各コーディングされたピクチャにおけるデッドゾーンの数を特定する。
[0248]deadzone_left_horizontal_offset[ i ]、deadzone_top_vertical_offset[ i ]、deadzone_width[ i ]、およびdeadzone_height[ i ]は、画素が使用可能でないi番目のデッドゾーンの長方形エリアの位置およびサイズを特定する。deadzone_left_horizontal_offset[ i ]およびdeadzone_top_vertical_offset[ i ]は、現在のCLVSにおける各コーディングされたピクチャにおけるi番目のデッドゾーンの左上角の、ルマサンプルにおける、それぞれ、水平および垂直座標を特定する。deadzone_width[ i ]およびdeadzone_height[ i ]は、現在のCLVSにおける各コーディングされたピクチャにおけるi番目のデッドゾーンの、ルマサンプルにおいて、それぞれ、幅および高さを特定する。ビデオを表現するためにビットを節約するために、デッドゾーン内の全ての画素は、同じ画素値、例えば、全て黒、に設定されるべきであることを留意されたい。
[0249]様々なインプリメンテーションにおいて、魚眼画像を有する360度のビデオに関する魚眼パラメータは、代替的または追加的に、セッション記述プロトコル(SDP)を使用して、提供されることができる。SDPは、マルチメディア通信セッションを記述するために使用されることができる。このような記述は、例えば、セッション告知、セッション勧誘、およびパラメータ交渉のために、使用されることができる。SDPは、メディアそれ自体を配信するために使用されないが、メディアタイプ、形式、およびアソシエートされたプロパティの交渉のためのエンドポイント間で使用されることができる。プロパティおよびパラメータのセットは、しばしば、セッションプロフィールとして呼ばれ得る。SDPは、当初は、セッション告知プロトコル(SAP)のコンポーネントであったが、リアルタイムトランスファープロトコル(RTP)、リアルタイムストリーミングプロトコル(RTSP)、セッション開始プロトコル(SIP)と併せた、およびマルチキャストセッションを記述するためのスタンドアロン形式としての、他の使途が発見された。SDPは、RFC4566において記述される。
[0250]図15は、ネットワーク通信のための開放型システム間相互接続(OSI)モデル1500の例を例示する。このモデル内で、SDPは、セッションレイヤ1510においてインプリメントされ、ここで、接続管理、エラーリカバリ、セキュリティ、遠隔操作、および他の機能が発生する。下記にさらに記述されるように、魚眼パラメータは、セッション属性1520において含まれることができ、それは、セッションレイヤ1510において交換される。
[0251]OSIモデル1500は、通信機能を規格化し、適合性(compliance)は、多様な通信システム間の相互運用性を可能にする。モデル1500における各レイヤは、上のレイヤをサービスし、下のレイヤによりサービスされる。物理レイヤ1502は、物理媒体上で、生ビットストリームの送信および受信を定義する。データリンクレイヤ1504は、2つのノード間のデータフレームの信頼性のある(reliable)送信を定義する。物理アドレス指定(physical addressing)のような動作は、データリンクレイヤ1504においてハンドリングされる。ネットワークレイヤ1506は、アドレス指定、ルーティング、およびトラフィック制御を含め、マルチノードネットワークの構造および管理を定義する。パケットフラグメント化および論理アドレス指定(logical addressing)のような動作は、ネットワークレイヤ1506において、起こる。トランスポートレイヤ1508は、セグメンテーション、肯定応答、および多重化を含め、ネットワーク上のポイント間のデータセグメントの信頼性のある送信を定義する。端末間接続管理のような動作、メッセージセグメンテーション、メッセージ順序付け(message sequencing)、信頼性、およびフロー制御は、トランスポートレイヤ1508において起こることができる。セッションレイヤ1510は、複数のセッションの管理を定義し、それらは、2つのノード間での複数のバックツーバック送信(back-to-back transmissions)の形での情報の連続的な交換である。前に述べたように、接続管理、エラーリカバリ、セキュリティ、および遠隔操作のような、動作は、セッションレイヤ1510において発生し得る。プレゼンテーションレイヤ1512は、文字符号化、データ圧縮、および暗号化および/または暗号解読を含め、ネットワークサービスとアプリケーションとの間のデータの送信を定義する。アプリケーションレイヤ1514は、リソース共有、遠隔ファイルアクセス、および他の動作を含む、高レベルのアプリケーション・プログラミング・インターフェース(API)を含む。
[0252]様々なインプリメンテーションにおいて、魚眼パラメータは、SDPメッセージにおけるメディア記述においておよび/またはセッション記述において含まれることができる。例えば、フィールドは、ストリーミングコンテンツにおいて360度のビデオの存在を示すためにセッション記述および/またはメディア記述中に追加されるかまたは修正することができる。加えて、いくつかのインプリメンテーションにおいて、バーチャル・リアリティ・コンテンツに関連するパラメータはまた、SDPメッセージに追加されることができる。このようなパラメータは、例えば、バーチャル・リアリティ・コンテンツが2−Dであるかまたは3−Dであるか、コンテンツが事前にステッチされるかまたは後にステッチされるかまたは後にステッチされるか、データを記憶するために使用されるマッピング、および/またはビデオデータにおいて魚眼画像を記述するパラメータ、を含むことができる。このおよび別の例において、SDPは、バーチャル・リアリティ・コンテンツを含むメディア・コンテンツを示すために、RTPベースのストリーミング、ブロードキャスト、および/またはテレプレゼンス(telepresence)または会議アプリケーションにおいて使用されることができる。
[0253]セッション記述におけるフィールドの例が下記に提供される。随意的なフィールドは、「=*」を用いて、および下記の例において特定されることができ、360度のビデオパラメータは、セッション属性行および/またはメディア属性行を使用して、特定されることができる。
[0254]セッション記述
v=(プロトコルバージョン番号、現在は、0のみ)
o=(発信元およびセッション識別子:ユーザネーム、id、バージョン番号、ネットワークアドレス)
s=(セッション名称:少なくとも1つのUTF−8で符号化された文字を伴って必須である)
i=*(セッションタイトルまたはショート情報)
u=*(記述のURI)
e=*(連絡先(contacts)の随意的な名前を有するゼロまたはそれより多くのeメールアドレス)
p=*(連絡先の随意的な名称を有するゼロまたはそれより多くの電話番号)
c=*(接続情報−全てのメディアにおいて含まれる場合、必要とされない)
b=*(ゼロまたはそれより多くの帯域幅情報行)
1つまたは複数の時間記述(「t=」および「r=」行;下記を参照)
z=*(タイムゾーン調整)
k=*(暗号鍵)
a=*(ゼロまたはそれより多くのセッション属性行)
ゼロまたはそれより多くのメディア記述(各1つは、「m=」行から開始する;下記を参照)
[0255]時間記述
t=(セッションがアクティブな時間)
r=*(ゼロまたはそれより多くの繰り返し回数)
[0256]メディア記述
m=(メディア名称およびトランスポートアドレス)
i=*(メディアのタイトルまたは情報フィールド)
c=*(接続情報−セッションレベルにおいて含まれる場合は随意的)
b=*(ゼロまたはそれより多くの帯域幅情報行)
k=*(暗号鍵)
a=*(ゼロまたはそれより多くのメディア属性行−セッション属性行をオーバーライドする)
[0257]様々なインプリメンテーションにおいて、魚眼画像を含む360度のビデオに関する魚眼パラメータは、代替的または追加的に、DASHを使用して送信されたビデオデータにおいて提供されることができる。例えば、360度のビデオは、DASHプレゼンテーションのメディアプレゼンテーションレベルにおいて示されることができる。DASH仕様によって定義されるような、メディアプレゼンテーションは、有界(bounded)または非有界の(unbounded)メディアプレゼンテーション(例えば、他の例の中でも、単一の動きピクチャまたは連続したライブストリーム)に関するデータの一群(collection)の収集である。メディアプレゼンテーションは、メディアプレゼンテーション記述によって、記述されることができ、ドキュメント(document)は、メディアプレゼンテーションのセグメントにアクセスするために、適切なHTTPユニフォームリソースロケータ(uniform resource locator)を構築するためにDASHクライアントによって使用されることができるメタデータを包含する。
[0258]図16は、ビデオ・コンテンツをストリーミングするためのDASHプレゼンテーション1600の例を例示する。ビデオ・コンテンツは、メディアプレゼンテーション1602において包含され、それは、連続的なビデオストリームを記述することができる。メディアプレゼンテーション1602は、メディアプレゼンテーション記述(MPD)を含むことができ、それはまたマニフェスト(manifest)として呼ばれることができる。MPDは、例えば、メディアプレゼンテーション1602におけるメディアセグメントについての情報を包含する、例となるXML(eXtensible Markup Language)を使用して形式化された、ドキュメントである。この情報は、例えば、セグメントとセグメント間で選ぶために使用されることができる情報との間の関係を含むことができる。MPDはまた、クライアントデバイス(例えば、コンテンツを受信するデバイス)が使用できる他のデータを含むことができる。
[0259]様々なインプリメンテーションにおいて、メディアプレゼンテーション記述は、メディアプレゼンテーション記述によって記述されたメディア・コンテンツがバーチャル・リアリティ・コンテンツを含むことを示すために使用されることができる。例えば、要素は、メディアプレゼンテーション記述のためのスキーマに追加または修正されることができ、ここで、要素は、次いで、バーチャル・リアリティ・コンテンツをシグナリングする。様々なインプリメンテーションにおいて、属性はまた、上記で説明されたような、コンテンツが2−Dであるかまたは3−Dであるか、コンテンツが事前にステッチされるかまたは後にステッチされるか、コンテンツが後にステッチされるときのビデオフレームに関するマッピング、および/または魚眼パラメータ、などの、バーチャル・リアリティ・コンテンツについての情報を提供するためにメディアプレゼンテーション記述に追加されるかまたは修正されることができる。いくつかのインプリメンテーションにおいて、メディアプレゼンテーション記述におけるバーチャル・リアリティ・インジケータは、プレゼンテーションのコンテンツのうちの全てがバーチャル・リアリティのためにフォーマットされることを示す。
[0260]メディアプレゼンテーション1602は、期間(period)1604a〜1604cに分割されることができる。DASHによって定義されるような、期間は、メディアプレゼンテーション1602内の時間の間隔である。プレゼンテーションは、それ故、期間1604a〜1604cの連続的なシーケンスから成る。期間1604a〜1604cは、例えば、開始時間によって説明されることができ、ここで、開始時間は、その期間における時間の間隔が開始する時間を示す。別の言い方で述べると、開始時間は、時間ゼロからオフセットされる。
[0261]様々なインプリメンテーションにおいて、期間の要素および/または属性は、期間が360度のビデオ・コンテンツを含むことを示すために使用されることができる。例えば、要素は、期間に関するスキーマに追加されるかまたは修正されることができ、ここで、要素は、次いで、バーチャル・リアリティ・コンテンツをシグナリングする。様々なインプリメンテーションにおいて、属性はまた、コンテンツが2−Dであるかまたは3−Dであるか、コンテンツが事前にステッチされるかまたは後にステッチされるか、コンテンツが後にステッチされるときのビデオフレームに関するマッピング、および/または魚眼パラメータ、などの、バーチャル・リアリティ・コンテンツについての情報を提供するために期間に追加されるかまたは修正されることができる。いくつかのインプリメンテーションにおいて、期間におけるバーチャル・リアリティ・インジケータは、期間におけるコンテンツがバーチャル・リアリティのためにフォーマットされていることを示す。
[0262]期間1604b(例えば、例示された例における期間2)内において、メディア・コンテンツは、符号化の一貫したセットを有することができ、例えば、平均ビットレート、言語、キャプション設定、字幕設定、等を含む。期間1604bはまた、ソース(例えば、ベースユニフォームリソースロケータ(URL))を提供することができ、ここで、コンテンツは、それからストリーミングされることができる。期間1604bにおけるコンテンツは、適応セット1624、1626に配置されることができる。適応セットは、1つまたは複数のメディア・コンテンツ・コンポーネントの相互交換可能な符号化されたバージョンのセットを表す。例えば、期間は、主ビデオコンポーネントに関して、1つの適応セット1624、および主音声コンポーネントに関して、別個の適応セット1626を含み得る。キャプションまたは音声記述のような、利用可能な他のコンテンツがあるとき、これらの各々は、別個の適応セットを有することができる。
[0263]様々なインプリメンテーションにおいて、360度のビデオ情報は、適応セットにおいて含まれることができる。例えば、要素は、適応セットに関するスキーマに追加されるかまたは修正されることができ、ここで、要素は、次いで、360度のビデオ・コンテンツをシグナリングする。様々なインプリメンテーションにおいて、属性はまた、コンテンツが2−Dであるかまたは3−Dであるか、コンテンツが事前にステッチされるかまたは後にステッチされるか、コンテンツが後にステッチされるときのビデオフレームに関するマッピング、および/または魚眼パラメータ、などの、バーチャル・リアリティ・コンテンツについての情報を提供するために適応セットに追加されるかまたは修正されることができる。いくつかのインプリメンテーションにおいて、適応セットにおける360度のビデオインジケータは、適応セットにおける表現の各々が360度のビデオ・コンテンツを含むことを示す。
[0264]適応セット(例えば、ビデオ適応セット1624)は、複数の代替表現1632を包含することができる。表現は、1つまたはいくつかのメディア・コンテンツ・コンポーネントの配信可能な符号化されたバージョンを記述する。適応セット内におけるいずれの単一の表現は、期間においてメディア・コンテンツ・コンポーネントをレンダリングするために使用されることができる。送られた1つの適応における異なる表現は、知覚的に同等であると考えられ得、クライアントデバイスが動的に、適応セット内において、ネットワーク状況または他の要因に適合するために、1つの表現から別の表現に動的に切り替わることができることを意味する。例えば、各表現は、特定の帯域幅、およびフレームの高さおよび幅、ならびにフレームレートまたは符号化タイプなどの、他の情報を有することができる。表現1632は、メディアプレゼンテーション1602においてセグメントを記述するセグメント情報1642をさらに含むことができる。
[0265]様々なインプリメンテーションにおいて、360度のビデオ・コンテンツについての情報は、表現1632において提供されることができる。例えば、要素は、表現に関するスキーマに追加されるかまたは修正されることができ、ここで、要素は、次いで、バーチャル・リアリティ・コンテンツを示す。様々なインプリメンテーションにおいて、属性はまたは、コンテンツが2−Dであるかまたは3−Dであるか、コンテンツが事前にステッチされるかまたは後にステッチされるか、および/またはコンテンツが後にステッチされるときのビデオフレームに関するマッピング、などの、バーチャル・リアリティ・コンテンツについての情報を提供するために表現に追加されるかまたは修正されることができる。いくつかのインプリメンテーションにおいて、表現におけるバーチャル・リアリティ・インジケータは、表現のコンテンツ(the content of the representation)がバーチャル・リアリティのためにフォーマットされることを示す。
[0266]セグメント情報1642は、初期化セグメント1644および1つまたは複数のメディアセグメント1646a〜1646cを記述することができる。初期化セグメント1644は、メディアそれ自体に先行するいくつかのコンテンツ内容を含むことができる。各メディアセグメント1646a〜1646cは、全体の期間1604bの部分を含む。メディアセグメント1646a〜1646cは、期間1604bの開始に関連する開始時間、および、ソースロケーション(例えば、URL)によって、記述されることができる。
[0267]様々なインプリメンテーションにおいて、魚眼コンテンツを含む360度のビデオに関する魚眼パラメータは、MPEGトランスポートストリーム(MPEG−TS)において代替的にまたは追加的に提供されることができない。図17は、MPEGトランスポートストリーム1700の例を例示する。MPEG−TSは、音声、ビデオ、およびプログラミングデータを送信および記憶するために使用されるコンテナ形式である。MPEG−TSは、信号が低下したときに送信の完全性を維持するためのエラー補正およびストリーム同期機能(stream synchronization feature)を用いて、パケット化された基本的なストリーム(elementary streams)をカプセル化するコンテナの形式を指定する。MPEG−TSは、地上波のおよび衛星のブロードキャストのような、信頼できない送信媒体上でストリームラインニング(streamlining)するために意図される。
[0268]MPEGトランスポートストリーム1700は、複数のトランスポートパケット1702を含む。パケットは、トランスポートストリームにおけるデータの基本単位である。トランスポートストリームそれ自体は、如何なるグローバルヘッダも有さない、一連のパケットである。各パケット1702は、ヘッダ1704およびペイロード1706を含む。ヘッダ1704は、例えば、ペイロードのコンテンツ、他のパケットに関するパケットシーケンス、エラー情報、などを記述することを含む、パケット1702についての情報を提供する。
[0269]他のフィールドの中で、ヘッダ1704は、パケット識別子1708(PID)を含むことができる。パケット識別子1708は、ペイロード1706に含まれるデータを記述することができる。例えば、PID=2は、ペイロード1706がトランスポートストリーム記述子テーブル(TSDT)のいくつかまたは全てを含むことを示す。トランスポートストリーム記述子テーブルは、トランスポートストリーム1700に関する記述子1710を包含することができる。
[0270]様々なインプリメンテーションにおいて、記述子は、360度のビデオ・コンテンツを記述するトランスポートストリーム記述子テーブルに追加されることができる。例えば、記述子は、コンテンツが2−Dであるかまたは3−Dであるか、コンテンツが事前にステッチされるかまたは後にステッチされるか、コンテンツが後にステッチされるときのビデオフレームに関するマッピング、および/または魚眼パラメータ、などの、360度のビデオパラメータに対して追加されることができる。これらおよび他の例において、トランスポートストリーム1700を受信しているクライアントデバイスは、トランスポートストリーム170において送信されたビデオデータを再マッピングおよび/または復号するためにパラメータを使用することができる。
[0271]別の例として、マルチメディアブロードキャストマルチキャストサービス(MBMS)は、コンテンツが3GPPのセルラネットワーク上で送信されるとき、360度のビデオ・コンテンツを示すために使用されることができる。MBMSは、両方ともセル内およびコアネットワーク内である、ブロードキャストおよびマルチキャストサービスの効率的な配信を提供することができるポイントツーマルチポイントインターフェース仕様を提供することができる。MBMSに関するターゲットアプリケーションは、モバイルテレビジョン、ライブビデオおよび音声ストリーミング、ファイル配信、および緊急警報の配信を含む。
[0272]様々なインプリメンテーションにおいて、360度のビデオ・コンテンツをシグナリングすること、ならびにコンテンツに関連したパラメータは、MBMS機能必須要件リストに新しい機能を追加することによって、達成されることができる。様々なインプリメンテーションにおいて、360度のビデオ・コンテンツのシグナリングは、他のブロードキャストおよびマルチキャストアプリケーションに関して、同様のやり方で、達成されることができる。
[0273]図18は、ビデオにおいて魚眼画像を記述するパラメータを用いて、360度の魚眼ビデオを符号化するためのプロセス1800の例を例示する。1802において、プロセス1800は、全方位カメラによってキャプチャされた360度のビデオデータを取得することを含み、ここにおいて、360度のビデオデータのビデオフレームは、シーンの画像を含み、ここにおいて、その画像において、シーンは、画像の円形領域にゆがませられる。円形領域はまた、魚眼画像と呼ばれることができる。
[0274]1804において、プロセス1800は、全方位カメラに関連付けられたパラメータを取得することを含み、ここにおいて、パラメータは、画像の円形領域を記述する。パラメータは、他のパラメータの中でも特に、図5、図6A、および図6Bに関して説明されるパラメータを含む。いくつかのインプリメンテーションにおいて、パラメータは、カメラから直接に取得される。いくつかのインプリメンテーションにおいて、パラメータは、メタデータとして360度のビデオデータに埋め込まれる。
[0275]図18の1806において、プロセス1800は、360度のビデオデータを符号化することを含む。様々なインプリメンテーションにおいて、360度のビデオは、ビデオにおける魚眼画像が全方位カメラによってキャプチャされるように符号化されるように、データの如何なる変換または操作なしに符号化される。様々なインプリメンテーションにおいて、360度のビデオは、AVCまたはHEVC規格、あるいは何らかの他のビデオ符号化規格を使用して、符号化される。
[0276]1808において、プロセッサ1800は、符号化されたビデオデータを生成することを含み、ここにおいて、符号化されたビデオデータは、符号化された360度のビデオデータおよび全方位カメラに関連付けられたパラメータを含む。
[0277]いくつかのインプリメンテーションにおいて、符号化されたビデオデータを生成することは、符号化された360度のビデオをファイルに書き込むことを含み、ここで、ファイルは、ISOBMFFファイル形式に従って、フォーマットされる。これらのインプリメンテーションにおいて、パラメータは、ファイルレベルに、ムービーレベルに、および/またはファイルのトラックレベルにおいて含まれることができる。いくつかのインプリメンテーションにおいて、パラメータは、ファイルにおける制限されたスキーム情報ボックスにおいて含まれることができる。
[0278]いくつかのインプリメンテーションにおいて、符号化されたビデオデータを生成することは、SEIメッセージにおけるパラメータを符号化することを含む。これらのインプリメンテーションにおいて、SEIメッセージは、符号化された360度のビデオデータに含まれることができる。例えば、SEIメッセージ、それは、NALユニットであることができるが、符号化された360度のビデオデータを含むビットストリームのアクセスユニットにおいて含まれることができる。
[0279]いくつかのインプリメンテーションにおいて、符号化されたビデオデータを生成することは、パラメータをSDP属性として符号化することを含む。これらのインプリメンテーションにおいて、パラメータは、セッションデータプロトコルを使用して宛先に通信されることができる。
[0280]いくつかのインプリメンテーションにおいて、符号化されたビデオデータを生成することは、MPDファイルにパラメータを書き込むことを含む。MPDファイルは、符号化されたビデオデータのDASHプレゼンテーションに含まれることができる。DASHプレゼンテーションは、1つのロケーションから別のロケーションへとストリーミングされることができる。
[0281]いくつかのインプリメンテーションにおいて、符号化されたビデオデータを生成することは、MPEGトランスポートストリームにパラメータを書き込むことを含む。これらのインプリメンテーションにおいて、パラメータは、トランスポートストリームにおいて記述子として含まれることができる。パラメータは、その次に、MPEGトランスポートストリームを使用して、宛先に通信されることができる。
[0282]図19は、360度のビデオを含む符号化されたビデオデータを復号するためのプロセス1900の例を例示する。1902において、プロセス1900は、符号化されたビデオデータを取得することを含み、ここにおいて、符号化されたビデオデータは、全方位カメラによってキャプチャされた360度のビデオデータおよび全方位カメラに関連付けられたパラメータを含む。パラメータは、他のパラメータの中でも特に、図5、図6A、および図6Bに関して上記に説明されるものを含むことができる。
[0283]図19の1904において、プロセス1900は、360度のビデオデータを作り出すために、符号化されたビデオデータを復号することを含み、ここにおいて、360度のビデオデータのフレームは、シーンの画像を含み、ここにおいて、その画像において、シーンは、画像の円形領域にゆがませられる。円形領域はまた、魚眼画像と呼ばれることができる。
[0284]1906において、処理1900は、360度のビデオプレゼンテーションを生成することを含み、ここにおいて、360度のビデオプレゼンテーションを生成することは、円形領域を360度の形式にマッピングするためにパラメータを使用することを含む。
[0285]いくつかのインプリメンテーションにおいて、符号化されたビデオデータは、ファイルから取得され、ここにおいて、ファイルは、ISOBMFFファイル形式に従って、フォーマットされる。これらのインプリメンテーションにおいて、パラメータは、ファイルレベルにおいて、ムービーレベル、および/またはトラックレベルにおけるファイルにあることができる。いくつかのインプリメンテーションにおいて、パラメータは、ファイルにおける制限されたスキーム情報ボックスにあることができる。
[0286]いくつかのインプリメンテーションにおいて、パラメータは、SEIメッセージから復号される。これらのインプリメンテーションにおいて、SEIメッセージは、符号化されたビデオデータにおいて含まれることができる。例えば、SEIメッセージは、360度のビデオデータを含む符号化されたビットストリームにおけるNALユニットであることができる。様々なインプリメンテーションにおいて、SEIメッセージは、AVCまたはHEVC規格、あるいは何らかの他の規格に従って、フォーマットされることができる。
[0287]いくつかのインプリメンテーションにおいて、符号化されたビデオデータを復号することは、SDP属性からパラメータを取得することを含む。これらのインプリメンテーションにおいて、符号化されたビデオデータは、SDPプロトコルを使用して、ネットワーク上で、取得されることができる。
[0288]いくつかのインプリメンテーションにおいて、符号化されたビデオデータを復号することは、MPDファイルからパラメータを取得することを含む。これらのインプリメンテーションにおいて、符号化されたビデオデータは、DASHプロトコルを使用してストリーミングされたビデオとして取得されることができる。
[0289]いくつかのインプリメンテーションにおいて、符号化されたビデオデータを復号することは、MPEGトランスポートストリームからのパラメータを取得すること含む。これらのインプリメンテーションにおいて、パラメータは、トランスポートストリームにおける記述子として符号化されることができ、符号化されたビデオデータは、トランスポートストリームから取得されることができる。
[0290]いくつかのインプリメンテーションにおいて、上記において議論されたプロセス1800、1900は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、携帯情報端末、またはネットワークに無線電信(wireless)を接続することができるおよび/または容易に運搬されるのに小型でありかつ軽量であるコンピューティングデバイスの何らかの他の種類のような、モバイルデバイスにおいてインプリメントされることができる。これらのインプリメンテーションにおいて、モバイルデバイスは、360度のビデオをキャプチャするための全方位カメラを含むことができる。いくつかのインプリメンテーションにおいて、モバイルデバイスは、360度のビデオを表示するためのディスプレイを含むことができる。
[0291]いくつかの例において、プロセス1800、1900は、図20に関して以下に議論されたシステムなどの、コンピューティングデバイスまたは装置によって、行われ得る。例えば、プロセス1800、1900は、図20において示されるシステム2000および/または記憶装置2008あるいは出力2010によって、行われることができる。いくつかの事例において、コンピューティングデバイスまたは装置は、プロセッサ、マイクロプロセッサ、マイクロコンピュータ、または図18および図19のプロセス1800、1900のステップを実行するように構成されるデバイスの他のコンポーネントを含み得る。いくつかの例において、コンピューティングデバイスまたは装置は、ビデオフレームを含むビデオデータ(例えば、ビデオシーケンス)をキャプチャするように構成されるカメラを含み得る。例えば、コンピューティングデバイスは、ビデオコーデックを含み得るカメラデバイス(例えば、全方位カメラ、または他のタイプのカメラデバイス)を含み得る。いくつかの例において、ビデオデータをキャプチャするカメラまたは他のキャプチャデバイスは、コンピューティングデバイスから離れており、その場合、コンピューティングデバイスがキャプチャされたビデオデータを受信する。コンピューティングデバイスは、ビデオデータを通信するように構成されたネットワークインターフェースをさらに含み得る。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは任意の他の適したタイプのデータを通信するために構成され得る。
[0292]プロセス1800、1900は、論理フロー図として例示され、それの動作は、ハードウェア、コンピュータ命令、またはそれらの組合せにおいてインプリメントされることができる一連の動作を表す。コンピュータ命令のコンテキストにおいて、動作は、1つまたは複数のプロセッサによって実行されると、記載された動作を行う1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定のファンクションを行うかまたは特定のデータタイプをインプリメントするルーチン、プログラム、オブジェクト、コンポーネント、データ構造、などを含む。動作が説明される順序は、限定として解釈されることを意図しておらず、任意の数の説明された動作は、任意の順序および/または処理をインプリメントするために平行に組み合わせられることができる。
[0293]加えて、プロセス1800、1900は、実行可能な命令を用いて構成される1つまたは複数のコンピュータシステムの制御下において行われ得、1つまたは複数のプロセッサ上で、ハードウェア、またはそれらの組合せによって、集合的に実行するコード(例えば、実行可能な命令、1つまたは複数のコンピュータプログラム、または1つまたは複数のアプリケーション)としてインプリメントされ得る。上記に述べたように、コードは、例えば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形式で、コンピュータ可読または機械可読記憶媒体上に記憶され得る。コンピュータ可読または機械可読記憶媒体は、非一時的であり得る。
[0294]より多くのデバイスおよびシステムは、消費者にデジタルビデオデータを消費する能力を提供するにつれ、効率的なビデオコーディング技法への必要性は、より重要になる。ビデオコーディングは、デジタルビデオデータにおいて存在するデータの大きな量を扱うために必要な送信必須要件および記憶装置を減らすために必要とされる。様々なビデオコーディング技法は、高いビデオ品質を維持しながら、ビデオデータをより低いビットレートを使用する形式に圧縮するために使用され得る。
[0295]図20は、符号化デバイス2004および復号デバイス2012を含むシステム2000の例を例示するブロック図である。符号化デバイス2004は、ソースデバイスの部分であり得、復号デバイス2012は、受信デバイスの部分であり得る。ソースデバイスおよび/または受信デバイスは、移動式または固定式の電話の送受話器(例えば、スマートフォン、セルラ電話、または同種のもの)、デスクトップコンピュータ、ラップトップまたはノードブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、ディスプレイデバイス、ディスプレイメディアプレーヤー、ビデオゲーム機、ビデオストリーミングデバイス、または任意の他の適した電子デバイス、などのような、電子デバイスを含み得る。いくつかの例において、ソースデバイスおよび受信デバイスは、ワイヤレス通信のための1つまたは複数のワイヤレストランシーバを含み得る。本明細書において説明されるコーディング技法は、(例えば、インターネット上の)ストリーミングビデオ送信、テレビジョンブロードキャストまたは送信、データ記憶媒体上への記憶のためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他のアプリケーションを含む、様々なマルチメディアアプリケーションにおけるビデオコーディングに適用可能である。いくつかの例において、システム2000は、ビデオ会議、ビデオストリーミング、ビデオプレイバック、ビデオブロードキャスティング、ゲーミング、および/またはビデオ電話通信のような、アプリケーションをサポートするために、一方通行または2方向通行のビデオ送信をサポートすることができる。
[0296]符号化デバイス2004(またはエンコーダ)は、符号化されたビデオビットストリームを生成するために、ビデオコーディング規格またはプロトコルを使用して、バーチャル・リアリティ・ビデオデータを含む、ビデオデータを符号化するために使用されることができる。ビデオコーディング規格は、ITU−T H.261、ISO/IEC MPEG−1ビジュアル、ITU−T H.262またはISO/IEC MPEG−2ビジュアル、ITU−T H.263、ISO/IEC MPEG−4ビジュアルおよび ITU−T H.264(ISO/IEC MPEG−4AVCとしても知られる)を含み、それぞれ、SVCおよびMVCとして知られる、それの拡張性のある(scalable)ビデオコーディングおよびマルチビュー(multiview)ビデオコーディング拡張を含む。より最近のビデオコーディング規格、High−Efficiency Video Coding (HEVC)は、ITU−T Video Coding Experts Group(VCEG)およびISO/IEC Moving Picture Experts Group(MPEG)のビデオコーディングのジョイントコラボレーションチーム(JCT−VC)によってまとめられた。HEVCへの様々な拡張は、MV−HEVCと呼ばれる、HEVCへのマルチビュー拡張、および、SHVCと呼ばれる、HEVCへの拡張性のある拡張、または何らかの他の適したコーディングプロトコルを含め、マルチレイヤビデオコーディングを扱い、またJCT−VCによって発展させられている。
[0297]本明細書において説明されるインプリメンテーションは、HEVC規格、またはそれの拡張を使用する例を説明する。しかしながら、本明細書において説明される技法およびシステムはまた、AVC、MPEG、それらの拡張、あるいは既に利用可能であるかまたは未だに利用可能でないかまたは展開されていない他の適したコーディング規格などの、他のコーディング規格に適用され得る。したがって、本明細書において説明される技法およびシステムが特定のビデオコーディング規格を参照して説明され得るが、当業者のうちの1人は、記述がその特定の規格にのみ適用されるように解釈されるべきではないことを理解するだろう。
[0298]ビデオソース2002は、符号化デバイス2004にビデオデータを提供し得る。ビデオソース2002は、ソースデバイスの部分であり得、または、ソースデバイス以外のデバイスの部分であり得る。ビデオソース2002は、ビデオキャプチャデバイス(例えば、ビデオカメラ、カメラ電話、ビデオ電話、または同種のもの)、記憶されたビデオを含むビデオアーカイブ、ビデオデータを提供するビデオサーバまたはコンテンツプロバイダ、ビデオサーバまたはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックビデオデータを生成するためのコンピュータグラフィックシステム、そのようなソースの組合せ、または他の任意の適したビデオソースを含み得る。ビデオソース2002の1つの例は、インターネットプロトコルカメラ(IPカメラ)を含むことができる。IPカメラは、監視、ホームセキュリティ、または他の適したアプリケーションに使用されることができるデジタルビデオカメラの一タイプである。アナログ閉回路テレビ(CCTV)カメラとは異なって、IPカメラは、コンピュータネットワークおよびインターネットを介して、データを送ることおよび受信することができる。
[0299]ビデオソース2002からのビデオデータは、1つまたは複数の入力ピクチャまたはフレームを含み得る。ピクチャまたはフレームは、ビデオの一部である静止画像である。符号化デバイス2004の復号エンジン2006(またはエンコーダ)は、符号化されたビデオビットストリームを生成するために、ビデオデータを符号化する。いくつかの例において、符号化されたビデオビットストリーム(または「ビデオビットストリーム」または「ビットストリーム」)は、1つまたは複数のコーディングされたビデオシーケンスのシリーズである。コーディングされたビデオシーケンス(CVS)は、ベースレイヤにおいてランダムアクセスポイントピクチャを有しおよびそれまでのある特定のプロパティを有するAUから始まり、かつベースレイヤにおいてランダムアクセスポイントピクチャを有しおよびある特定のプロパティを有する次のAUを含まない、一連のアクセスユニット(AU)を含む。例えば、CVSを開始するランダムアクセスポイントピクチャのある特定のプロパティは、1に等しいRASLフラグ(例えば、NoRaslOutputFlag)を含み得る。そうでなければ、(0に等しいRASLフラグを有する)ランダムアクセスポイントピクチャは、CVSを開始しない。アクセスユニット(AU)は、同じ出力時間を共有するコーディングされたピクチャに対応する1つまたは複数のコーディングされたピクチャおよび制御情報を含む。ピクチャのコーディングされたスライスは、ビットストリームレベルにおいてネットワーク抽象化レイヤ(NAL)ユニットと呼ばれるデータユニットにカプセル化されている。例えば、HEVCビデオビットストリームは、NALユニットを含む1つまたは複数のCVSを含み得る。NALユニットの2つのクラスは、ビデオコーディングレイヤ(VCL)NALユニットおよび非VCL NALユニットを含むHEVC規格において存在する。VCL NALユニットは、コーディングされたピクチャデータの(以下に説明される)1つのスライスまたはスライスセグメントを含み、非VCL NALユニットは、1つまたは複数のコーディングされたピクチャに関連する制御情報を含む。
[0300]NALユニットは、ビデオにおけるピクチャのコーディングされた表現のような、ビデオデータのコーディングされた表現を形成する一連のビット(例えば、符号化されたビデオビットストリーム、ビットストリームのCVS、または同種のもの)を包含し得る。エンコーダエンジン2006は、各ピクチャを複数のスライスに区分化する(partitioning)ことによって、ピクチャのコーディングされた表現を生成する。スライスは、次に、ルマサンプルおよびクロマサンプルのコーディングツリーブロック(CTB)に区分化される。ルマサンプルのCTBおよびクロマサンプルの1つまたは複数のCTBは、サンプルに関するシンタックスと一緒に、コーディングツリーユニット(CTU)と呼ばれる。CTUは、HEVC符号化に関するベーシック処理ユニットである。CTUは、可変サイズの複数のコーディングユニット(CU)に分割されることができる。CUは、コーディングブロック(CB)と呼ばれるルマおよびクロマサンプルアレイを包含する。
[0301]ルマおよびクロマCBは、予測ブロック(PB)にさらに分割されることができる。PBは、インター予測に関して同じ動きパラメータを使用するルマまたはクロマコンポーネントのサンプルのブロックである。ルマPBおよび1つまたは複数のクロマPB、アソシエートされたシンタックスと共に、予測ユニット(PU)を形成する。動きパラメータのセットは、各PUごとにビットストリームにおいてシグナリングされ、ルマPBおよび1つまたは複数のクロマPBのインター予測に使用される。CBはまた、1つまたは複数の変換ブロック(TB)に区分化されることができる。TBは、同じ2次元の変換が、予測残余信号をコーディングするために、その上で適用される色コンポーネントのサンプルの正方形ブロックを表す。変換ユニット(TU)は、ルマおよびクロマサンプルのTBを表し、シンタックス要素に対応する。
[0302]CUのサイズはコーディングノードのサイズに対応し、形状が正方形であり得る。例えば、CUのサイズは、8x8のサンプル、16x16のサンプル、32x32のサンプル、64x64のサンプル、または対応するCTUのサイズまでの任意の他の適切なサイズであり得る。フレーズ「NxN」は、垂直および水平次元(例えば、8画素x8画素)の観点からビデオブロックの画素次元を参照するために本明細書において使用される。ブロックにおける画素は、行および列において配置され得る。いくつかの実施形態において、ブロックは、水平方向において、垂直方向においてとは同じ数の画素を有さない可能性がある。CUに関連付けられたシンタックスデータは、例えば、1つまたは複数のPUへのCUの区分化を記述することができる。区分モードは、CUがイントラ予測モード符号化されるか、あるいはインター予測モード符号化されるかの間で異なり得る。PUは、形状が非正方形であるように、区分化され得る。CUに関連付けられたシンタックスデータはまた、例えば、CTUに従った、1つまたは複数のTUへのCUの区分化を記述し得る。TUは、形状が正方形であるかまたは非正方形であることができる。
[0303]HEVC規格に従って、変換は、変換ユニット(TU)を使用して行われ得る。TUは、異なるCUによって、異なり得る。TUは、所与のCU内のPUのサイズに基づいて、サイズ付けされ得る。TUは、PUと同じサイズであるかまたはそれより小さい場合がある。いくつかの例において、CUに対応する残差サンプルは、「残差四分木」(RQT)として知られる四分木構造を使用してより小さい単位にさらに分割され(subdivided into)得る。RQTの葉ノードは、TUに対応し得る。TUと関連付けられた画素差分値は、変換係数を作り出すために変換され得る。変換係数は、次いで、エンコーダエンジン2006によって量子化され得る。
[0304]ビデオデータのピクチャがCUに一旦区分されると、エンコーダエンジン2006は、予測モードを使用して、各PUを予測する。予測は、次いで、残余を得るためにオリジナルのビデオデータから減算される(下記に説明される)。各CUに関して、予測モードは、シンタックスデータを使用して、ビットストリームの内部において、シグナリングされ得る。予測モードは、イントラ予測(またはイントラピクチャ予測)またはインター予測(またはインターピクチャ予測)を含み得る。イントラ予測を使用して、各PUは、例えば、PUに関する平均値を発見するためのDC予測、平面(planar surface)をPUに納めるための平面予測、近隣の(neighboring)データから外挿する(extrapolate)ための方向予測、または何らかの他の適したタイプの予測を使用して、同じピクチャにおける近隣の画像データから予測される。インター予測を使用して、各PUは、(出力順序における現在のピクチャの前または後の)1つまたは複数の参照ピクチャにおける画像データからの動き補償予測を使用して、予測される。インターピクチャまたはイントラピクチャ予測を使用して、ピクチャエリアをコーディングするかどうかの決定は、例えば、CUレベルにおいて、なされ得る。いくつかの例において、ピクチャの1つまたは複数のスライスは、スライスタイプに割り当てられる。スライスタイプは、Iスライス、Pスライス、およびBスライスを含む。Iスライス(イントラフレーム、独立して復号可能である)は、イントラ予測によってのみコーディングされるピクチャのスライスであり、それ故、Iスライスは、スライスの任意のブロックを予測するためにフレーム内のデータのみを必要とするので、独立して、復号可能である。Pスライス(単一方向予測された(uni-directional predicted)フレーム)は、イントラ予測および単一方向インター予測を用いてコーディングされ得るピクチャのスライスである。Pスライス内の各ブロックは、イントラ予測またはインター予測のいずれかを用いて、コーディングされる。インター予測が適用されるとき、ブロックは1つの参照ピクチャによってのみ予測され、それ故、参照サンプルは、1つのフレームの1つの参照領域からのみである。Bスライス(双方向予測フレーム)は、イントラ予測およびインター予測内でコーディングされ得るピクチャのスライスである。Bスライスのブロックは、2つの参照ピクチャから双方向予測され(bi-directional predicted)得、ここで、各ピクチャは、1つの参照領域に寄与し(contributes)、双方向予測されたブロックの予測信号を作り出すために、2つの参照領域のサンプルセットが(例えば、等しい重さで)重み付けされる(weighted)。上記で説明されたように、1つのピクチャのスライスは、独立してコーディングされる。いくつかの事例において、ピクチャは、ただ1つのスライスとしてコーディングされることができる。
[0305]PUは、予測プロセスに関連したデータを含み得る。例えば、イントラ予測を使用してPUが符号化されるとき、PUは、PUに関するイントラ予測モードを記述するデータを含み得る。別の例として、PUがインター予測を使用して符号化されるとき、PUは、PUに関する動きベクトルを定義するデータを含み得る。PUのための動きベクトルを定義するデータは、例えば、動きベクトルの水平コンポーネント、動きベクトルの垂直コンポーネント、動きベクトルのための解像度(例えば、4分の1画素精度または8分の1画素精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトルに関する参照ピクチャリスト(例えば、リスト0、リスト1、またはリストC)を記述することができる。
[0306]符号化デバイス2004は、次いで、変換および量子化を行い得る。例えば、予測に続いて、エンコーダエンジン2006は、PUに対応する残差値を計算し得る。残差値は、画素差分値を備え得る。予測が行われた後に残り得るいずれの残差データは、ブロック変換を使用して変換され、それは、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、または他の適した変換関数に基づき得る。いくつかの事例において、1つまたは複数のブロック変換(例えば、サイズ32x32、16x16、8x8、4x4、または同種のもの)は、各CUにおいて、残余データに適用され得る。いくつかの実施形態において、TUは、エンコーダエンジン2006によってインプリメントされた変換および量子化プロセスに使用され得る。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数のTUを有し得る。下記でさらに詳細に説明されるように、残余値は、ブロック変換を使用して、変換係数に変換され得、次いで、エントロピーコーディングのための直列に変換された(serialized)変換係数を作り出すためにTUを使用して、量子化され得、およびスキャンされ得る。
[0307]CUのPUを使用するイントラ予測またはインター予測コーディングに従ういくつかの実施形態において、エンコーダエンジン2006は、CUのTUに関する残差データを計算し得る。PUは、空間ドメイン(または画素ドメイン)において画素データを備え得る。TUは、ブロック変換のアプリケーションに続く変換ドメインにおいて係数を備え得る。前に述べられたように、残差データは、PUに対応する予測値と符号化されていないピクチャの画素との間の画素差分値に対応し得る。エンコーダエンジン2006は、CUに関する残差データを含むTUを形成し得、次いで、CUに関する変換係数を作り出すためにTUを変換し得る。
[0308]エンコーダエンジン2006は、変換係数の量子化を行い得る。量子化は、係数を表すために使用されるデータの量を減らすために、変換係数を量子化することによって、さらなる圧縮を提供する。例えば、量子化は、いくつかまたは全ての係数に関連付けられたビット深度を減らし得る。1つの例において、nビットの値を有する係数は、量子化の間、mビット値まで、数値の端数が切り捨てられ得、nは、mよりも大きい。
[0309]一旦、量子化が行われると、コーディングされたビデオビットストリームは、量子化された変換係数、予測情報(例えば、予測モード、動きベクトル、または同種のもの)、区分化情報、および、他のシンタックスデータのような、あらゆる他の適したデータ、を含む。コーディングされたビデオビットストリームの異なる要素は、次いで、エンコーダエンジン2006によってエントロピー符号化され得る。いくつかの例において、エンコーダエンジン2006は、エントロピー符号化されることができる直列に変換されたベクトルを作り出すために量子化された変換係数をスキャンするために、事前に定義されたスキャン順序を利用し得る。いくつかの例において、エンコーダエンジン2006は、適応スキャンを行い得る。ベクトルを形成するために量子化された変換係数をスキャンした後に(例えば、1次元のベクトル)、エンコーダエンジン2006は、ベクトルをエントロピー符号化し得る。例えば、エンコーダエンジン2006は、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースのコンテキスト適応型バイナリ算術コーディング、確率間隔区分化エントロピーコーディング、または別の適したエントロピー符号化技法を使用し得る。
[0310]符号化デバイス2004の出力2010は、受信デバイスの復号デバイス2012への通信リンク2020上で符号化されたビデオビットストリームデータを作り上げるNALユニットを送り得る。復号デバイス2012の入力2014は、NALユニットを受信し得る。通信リンク2020は、ワイヤレスネットワーク、有線ネットワーク、または有線およびワイヤレスネットワークの組合せによって提供されたチャネルを含み得る。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含み得、および任意の適したワイヤレスネットワーク(例えば、インターネットまたは他のワイドエリアネットワーク、パケットベースのネットワーク、WiFiTM、無線周波数(RF)、UWB、WiFi−Direct、セルラ、LTE(登録商標)(Long-Term Evolution)、WiMaxTM、または同種のもの)を含み得る。有線ネットワークは、任意の有線のインターフェース(例えば、ファイバ、イーサネット(登録商標)、電力線イーサネット、同軸ケーブル上のイーサネット、デジタルシグナルライン(DSL)、または同種のもの)を含み得る。有線および/またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチ、または同種のもののような、様々な設備を使用して、インプリメントされ得る。符号化されたビデオビットストリームデータは、ワイヤレス通信プロトコルのような、通信規格に従って変調され、宛先デバイスに送信され得る。
[0311]いくつかの例において、符号化デバイス2004は、記憶装置2008において、符号化されたビデオビットストリームデータを記憶し得る。出力2010は、エンコーダエンジン2006からまたは記憶装置2008から符号化されたビデオビットストリームデータを取り出し得る。記憶装置2008は、様々な分散された(distributed)または局所的にアクセスされたデータ記憶媒体のうちの任意のものを含み得る。例えば、記憶装置2008は、ハードドライブ、記憶ディスク、フラッシュメモリ、揮発性または非揮発性メモリ、または符号化されたビデオデータを記憶するためのあらゆる他の適したデジタル記憶媒体を含み得る。
[0312]復号デバイス2012の入力2014は、符号化されたビデオビットストリームデータを受信し、ビデオビットストリームデータをデコーダエンジン2016に、または、デコーダエンジン2016による後の使用のための記憶装置2018に、提供し得る。デコーダエンジン2016は、符号化されたビデオデータを作り上げる1つまたは複数コーディングされたビデオシーケンスの要素を(例えば、エントロピーデコーダを使用して)エントロピー復号することおよび抽出することによって、符号化されたビデオビットストリームデータを復号し得る。デコーダエンジン2016は、次いで、符号化されたビデオビットストリームデータの縮尺を変更し(rescale)およびそれに逆変換を行い得る。残差データは、そして、デコーダエンジン2016の予測ステージに渡される。デコーダエンジン2016は、次いで、画素のブロック(例えば、PU)を予測する。いくつかの例において、予測は、逆変換(残差データ)の出力に加えられる。
[0313]復号デバイス2012は、ビデオ宛先デバイス2022に復号されたビデオを出力し得、それは、コンテンツの消費者に復号されたビデオデータを表示するためのディスプレイまたは他の出力デバイスを含み得る。いくつかの態様において、ビデオ宛先デバイス2022は、復号デバイス2012を含む受信デバイスの部分であり得る。いくつかの態様において、ビデオ宛先デバイス2022は、受信デバイスとは異なる別個のデバイスの部分であり得る。
[0314]付加拡張情報(SEI)メッセージは、ビデオビットストリームにおいて含まれることができる。例えば、SEIメッセージは、復号デバイス2012によってビットストリームを復号するために必須ではない(not essential)情報(例えば、メタデータ)を運ぶために使用され得る。この情報は、復号された出力(例えば、そのような情報は、コンテンツの見易さ(viewability)を改善するためにデコーダ側のエンティティによって使用されることができる)の表示または処理を改善することにおいて役立ち得る。
[0315]いくつかの実施形態において、ビデオ符号化デバイス2004および/またはビデオ復号デバイス2012は、それぞれ、音声符号化デバイスおよび音声復号デバイスと統合されることができる。ビデオ符号化デバイス2004および/またはビデオ復号デバイス2012はまた、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、あるいはそれらのおいずれの組み合わせなどの、上記で説明されるコーディング技法をインプリメントするために必要な他のハードウェアまたはソフトウェアを含み得る。ビデオ符号化デバイス2004およびビデオ復号デバイス2012は、それぞれのデバイスにおいて組み合わされたエンコーダ/デコーダ(コーデック)の部分として統合され得る。
[0316]HEVC規格への拡張は、MV−HEVCと呼ばれる、マルチビュービデオコーディング拡張、および、SHVCと呼ばれる、スケーラブルビデオコーディング拡張を含む。MV−HEVCおよびSHVC拡張は、レイヤードコーディングの概念を、符号化されたビデオビットストリームにおいて含まれている異なるレイヤと、共有する。コーディングされたビデオシーケンスにおいて各レイヤは、固有レイヤ識別子(ID)によって、アドレス指定される。レイヤIDは、NALユニットがそれと関連付けられたレイヤを識別するために、NALユニットのヘッダにおいて存在し得る。MV−HEVCにおいて、異なるレイヤは、ビデオビットストリームにおける同じシーンの異なる眺めを表すことができる。SHVCにおいて、異なる空間解像度(spatial resolutions)(またはピクチャ解像度)または、異なる再構築の忠実性(fidelities)において、ビデオビットストリームを表す異なる拡張性のあるレイヤは、提供される。拡張性のあるレイヤは、(レイヤID =0を有する)ベースレイヤおよび1つまたは複数の(レイヤID =1、2、… nを有する)拡張レイヤを含み得る。ベースレイヤは、HEVCの初版のプロファイルに適合し得、およびビットストリームにおける最も低い利用可能なレイヤを表す。拡張レイヤは、基準レイヤと比較すると、空間解像度、時間解像度(temporal resolution)またはフレームレート、および/または再構築忠実性(または質)を増やした。拡張レイヤは、階層的に編成されており、下層レイヤに依存し得る(かまたはしない可能性がある)。いくつかの例において、異なるレイヤは、単一の規格コーデックを使用してコーディングされ得る(例えば、HEVC、SHVC、または他のコーディング規格を使用して、全てのレイヤは符号化されている)。いくつかの例において、異なるレイヤは、マルチスタンダードのコーデックを使用してコーディングされ得る。例えば、ベースレイヤは、AVCを使用してコーディングされ得る一方で、1つまたは複数の拡張レイヤは、HEVC規格へのSHVCおよび/またはMV−HEVC拡張を使用して、コーディングされ得る。一般に、レイヤは、VCL NALユニットのセットおよび非VCL NALユニットの対応するセットを含む。NALユニットは、特定のレイヤIDの値に割り当てられる。レイヤは、レイヤが下層レイヤ(a lower layer)に依存し得るという意味において階層的であることができる。
[0317]一般に、レイヤは、VCL NALユニットのセットおよび非VCL NALユニットの対応するセットを含む。NALユニットは、特定のレイヤIDの値に割り当てられる。レイヤは、レイヤが下層レイヤに依存し得るという意味において階層的であることができる。レイヤセットは、ビットストリーム内で表現される独立言語である(self-contained)レイヤのセットを指し、レイヤセット内のレイヤは、復号プロセスにおいてレイヤセットにおける他のレイヤに依存することができるが、復号するために他の如何なるレイヤにも依存するのではないことを意味する。したがって、レイヤセットにおけるレイヤは、ビデオ・コンテンツを表すことができる独立したビットストリームを形成することができる。レイヤセットのけるレイヤのセットは、サブビットストリーム抽出プロセスの動作によって、他のビットストリームから取得され得る。レイヤセットは、デコーダがある特定のパラメータに従って動作することを望むとき、復号されることになるレイヤのセットに対応し得る。
[0318]カメラ(例えば、魚眼カメラまたは他の全方位カメラ)によってキャプチャされたビデオデータは、送信および記憶に必要とされるデータの量を減らすためにコーディングされることができる。コーディング技術は、例となるビデオ符号化および復号システム(例えば、システム2000)においてインプリメントされ得る。いくつかの例において、システムは、宛先デバイスによってその後の時間に復号されることになる符号化されたビデオデータを提供するソースデバイスを含む。特に、ソースデバイスは、コンピュータ可読媒体を介して宛先デバイスにビデオデータを提供する。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話の送受話器、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤー、ビデオゲーム機、ビデオストリーミングデバイスまたは同様のものを含む、広範囲のデバイスのうちの任意のものを備え得る。いくつかの事例において、ソースデバイスおよび宛先デバイスは、ワイヤレス通信のために装備され得る。
[0319]符号化デバイス2104および復号デバイス2212の特定の詳細が、それぞれ、図21および図22に示される。図21は、本開示において説明される技法のうちの1つまたは複数をインプリメントし得る例となる符号化デバイス2104を例示しているブロック図である。符号化デバイス2104は、例えば、本明細書において説明されるシンタックス構造(例えば、VPS、SPS、PPSのシンタックス構造、あるいは、他のシンタックス要素)を生成し得る。符号化デバイス2104は、ビデオスライス内のビデオブロックのイントラ予測およびインター予測コーディングを行い得る。前に説明されたように、イントラコーディングは、所与のビデオフレームまたはピクチャ内の空間的冗長性を減らすかまたは取り除くために空間的予測に、少なくとも部分的に、依拠する。インターコーディングは、ビデオシーケンスの隣接フレームまたは周囲のフレーム内の時間冗長性を減らすかまたは取り除くために時間予測に、少なくとも部分的に、依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちの任意のものを指し得る。単一方向予測(Pモード)または双方向予測(Bモード)のような、インターモードは、いくつかの時間ベースの圧縮モードのうちの任意のものに言及し得る。
[0320]符号化デバイス2104は、区分化ユニット35、予測処理ユニット41、フィルタユニット63、ピクチャメモリ64、加算器50、変換処理ユニット52、量子化ユニット54、およびエントロピー符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、およびイントラ予測処理ユニット46を含む。ビデオブロック再構築のために、符号化デバイス2104はまた、逆量子化ユニット58、逆変換処理ユニット60、および加算器62を含む。フィルタユニット63は、非ブロック化フィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなどの、1つまたは複数のループフィルタを表すことが意図される。フィルタユニット63が図21においてインループフィルタであるとして示されるが、他の構成において、フィルタユニット63は、ポストループフィルタとしてインプリメントされ得る。後処理デバイス57は、符号化デバイス2104によって生成される符号化されたビデオデータ上で追加の処理を行い得る。本開示の技法は、いくつかの例において、符号化デバイス2104によって、インプリメントされ得る。しかしながら、他の例において、本開示の技法のうちの1つまたは複数は、後処理デバイス57によってインプリメントされ得る。
[0321]図21において示されるように、符号化デバイス2104は、ビデオデータを受信し、区分化ユニット35は、データをビデオブロックに区分する。この区分化はまた、例えば、LCUおよびCUの四分木構造に従った、ビデオブロック区分化に加え、スライス、スライスセグメント、タイルまたは他のより大きなユニットへの区分化を含み得る。符号化デバイス2104は、一般に、符号化されることになるビデオスライス内のビデオブロックを符号化するコンポーネントを例示する。スライスは、複数のビデオブロック(そして、場合によっては、タイルと呼ばれるビデオブロックのセット)へと分割され得る。予測処理ユニット41は、誤差結果(例えば、コーディングレートおよびひずみのレベル、または同種のもの)に基づいて、現在のビデオブロックに対して、複数の可能なコーディングモードのうちの1つ、例えば、複数のイントラ予測コーディングモードのうちの1つまたは複数のインター予測コーディングモードのうちの1つ、を選択し得る。予測処理ユニット41は、結果として生じるイントラまたはインターコーディングされたブロックを、残差ブロックデータを生成するために加算器50に、参照ピクチャとしての使用のための符号化されたブロックを再構築するために加算器62に、提供し得る。
[0322]予測処理ユニット41内のイントラ予測処理ユニット46は、空間的圧縮を提供するためにコーディングされることになる現在のブロックと同じフレームまたはスライスにおける1つまたは複数の近隣のブロックに対して、現在のビデオブロックのイントラ予測コーディングを行い得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を提供するために、1つまたは複数の参照ピクチャ内の1つまたは複数の予測ブロックに対して、現在のビデオブロックのインター予測コーディングを実行する。
[0323]動き推定ユニット42は、ビデオシーケンスに関する所定のパターンに従って、ビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、Pスライス、Bスライス、またはGPBスライスとしてシーケンスにおけるビデオスライスを指定することができる。動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別個に例示されている。動き推定ユニット42によって行われる、動き推定は、ビデオブロックのための動きを推定する、動きベクトルを生成する処理である。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する、現在のビデオフレームまたはピクチャ内でのビデオブロックの予測ユニット(PU)の変位(displacement)を示し得る。
[0324]予測ブロックは、画素差分の観点から、コーディングされる予定のビデオブロックのPUに密接に一致すると発見されるブロックであり、それは、絶対値差分の和(SAD)、二乗差分の和(SSD)、または他の差分メトリックによって決定され得る。いくつかの例において、符号化デバイス2104は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数画素位置に関する値を計算し得る。例えば、符号化デバイス2104は、参照ピクチャの4分の1画素位置、8分の1画素位置、または他の分数画素位置の値を補間し得る。それ故に、動き推定ユニット42は、全画素位置および分数画素位置に対して、動き探索を実行し得、分数画素精度で動きベクトルを出力し得る。
[0325]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することで、インターコーディングされたスライス内のビデオブロックのPUについての動きベクトルを算出する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの各々は、ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、算出された動きベクトルを、エントロピー符号化ユニット56および動き補償ユニット44に送る。
[0326]動き補償ユニット44によって実行される、動き補償は、動き推定によって決定される動きベクトルに基づく予測ブロックを取り込むこと(fetching)または生成することを伴い得、場合によりサブ画素精度に対する補間を実行する。現在のビデオブロックのPUについての動きベクトルを受ける際、動き補償ユニット44は、動きベクトルが指す予測ブロックを参照ピクチャリストにおいて場所を見つけ得る。符号化デバイス2104は、コーディングされている現在のビデオブロックの画素値から予測ブロックの画素値を減算することで残差ビデオブロックを形成し、画素差分値を形成する。画素差分値は、このブロックに関する残差データを形成し、ルマおよびクロマの両方の差分成分を含み得る。加算器50は、この減算演算を実行する1つまたは複数のコンポーネントを表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際に、復号デバイス2212による使用のためのビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成し得る。
[0327]イントラ予測処理ユニット46は、上記に説明されるように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在のブロックをイントラ予測することができる。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するためにイントラ予測モードを決定し得る。いくつかの例において、イントラ予測処理ユニット46は、例えば、別個の符号化パスの間に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測処理ユニット46(または、いくつかの例においては、モード選択ユニット40)は、テストされたモードから使用するための適切なイントラ予測モードを選択し得る。例えば、イントラ予測処理ユニット46は、様々なテストされたイントラ予測モードのためにレートひずみ分析を使用してレートひずみ値を計算し得、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択し得る。レートひずみ分析は、概して、符号化されたブロックを作り出すために使用されるビットレート(つまり、ビットの数)に加えて、符号化されたブロックと、符号化されたブロックを作り出すために符号化された、オリジナルの、符号化されていないブロックとの間のひずみ(または誤り)の量を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがそのブロックに関して最良のレートひずみ値を示すかを決定するために、様々な符号化されたブロックに関するひずみおよびレートからの比率を計算し得る。
[0328]いずれの場合でも、ブロックのためのイントラ予測モードを選択した後で、イントラ予測処理ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。符号化デバイス2104は、送信されたビットストリーム構成データにおいて、様々なブロックに関するコンテキストを符号化することの定義、ならびに、最も可能性の高い(most probable)イントラ予測モード、イントラ予測モードインデックステーブル、およびコンテキストの各々に使用するための修正されたイントラ予測モードインデックステーブルのインジケーションを含み得る。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルおよび複数の(また、コードワードマッピングテーブルとも呼ばれ得る)修正されたイントラ予測モードインデックステーブルを含み得る。
[0329]予測処理ユニット41がインター予測またはイントラ予測のいずれかを介して現在のビデオブロックに関する予測ブロックを生成した後で、符号化デバイス2104は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTUに含まれ得、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念上で同様の変換などの、変換を使用して残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータを画素ドメインから、周波数ドメインのような、変換ドメインに変換し得る。
[0330]変換処理ユニット52は、結果として生じる変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに減らすために変換係数を量子化する。量子化処理は、いくつかまたは全ての係数に関連付けられたビット深度を減らし得る。量子化の程度は、量子化パラメータを調整することで修正され得る。いくつかの例において、量子化ユニット54は、次いで、量子化された変換係数を含む行列のスキャンを実行し得る。代替的に、エントロピー符号化ユニット56が、スキャンを実行し得る。
[0331]量子化に続いて、エントロピー符号化ユニット56は、量子化された変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分化エントロピー(PIPE:probability interval partitioning entropy)コーディング、または別のエントロピー符号化技法を実行することができる。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化されたビットストリームは、復号デバイス2212に送信され得るか、または復号デバイス2212による後の送信または取り出しのためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在のビデオスライスについての動きベクトルおよび他のシンタックス要素をエントロピー符号化し得る。
[0332]逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとしての後の使用のための画素ドメインにおいて残差ブロックを再構築するために、逆量子化および逆変換を、それぞれ適用する。動き補償ユニット44は、参照ピクチャリスト内の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加えることで参照ブロックを算出し得る。動き補償ユニット44はまた、再構築された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定における使用のためのサブ整数画素値を算出し得る。加算器62は、ピクチャメモリ64内への記憶のための参照ブロックを作り出すために動き補償ユニット44によって作り出された動き補償予測ブロックに再構築されたビデオブロックを追加する。参照ブロックは、その後のビデオフレームまたはピクチャにおいてブロックをインター予測するために、参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用され得る。
[0333]このように、図21の符号化デバイス2104は、符号化されたビデオビットストリームに関するシンタックスを生成するために構成されたビデオエンコーダの例を表す。符号化デバイス2104は、例えば、上記で説明されたような、VPS、SPS、およびPPSのパラメータセットを生成し得る。符号化デバイス2104は、図21および図22に関して上記で説明された処理を含め、本明細書で説明される技法のうちの任意のものを行い得る。本開示の技法は、概して符号化デバイス2104に関して説明されているが、上記で述べたように、本開示の技法のうちのいくつかはまた、後処理デバイス57によってインプリメントされ得る。
[0334]図22は、例となる復号デバイス2212を例示するブロック図である。復号デバイス2212は、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、フィルタユニット91、およびピクチャメモリ92を含む。予測処理ユニット81は、動き補償ユニット82およびイントラ予測処理ユニット84を含む。復号デバイス2212は、いくつかの例において、図21からの符号化デバイス2104に関して説明される符号化パスと概して逆の(reciprocal to)復号パスを実行することができる。
[0335]復号プロセスの間、復号デバイス2212は、符号化されたビデオスライスのビデオブロックおよび符号化デバイス2104から送られたアソシエートされたシンタックス要素を表す符号化されたビデオビットストリームを受信する。いくつかの実施形態において、復号デバイス2212は、符号化デバイス2104から符号化されたビデオビットストリームを受信し得る。いくつかの実施形態において、復号デバイス2212は、サーバ、メディア認識ネットワーク要素(MANE:media-aware network element)、ビデオエディタ/スプライサ、または上記で説明された技法のうちの1つまたは複数をインプリメントするように構成された他のそのようなデバイス、などの、ネットワークエンティティ79から符号化されたビデオビットストリームを受信し得る。ネットワークエンティティ79は、符号化デバイス2104を含み得るかまたは含まない可能性がある。本開示で説明される技法のうちのいくつかは、ネットワークエンティティ79が復号デバイス2212に符号化されたビデオビットストリームを送信することに先だって、ネットワークエンティティ79によってインプリメントされ得る。いくつかのビデオ復号システムにおいて、ネットワークエンティティ79および復号デバイス2212は、別個のデバイスの部分であり得、一方で、他の例において、ネットワークエンティティ79に関して説明される機能性は、復号デバイス2212を備える同じデバイスによって行われ得る。
[0336]復号デバイス2212のエントロピー復号ユニット80は、量子化された係数、動きベクトル、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルおよび他のシンタックス要素を予測処理ユニット81に転送する。復号デバイス2212は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受け得る。エントロピー復号ユニット80は、VPS、SPS、およびPPSのセットのような、1つまたは複数のパラメータセットにおける固定長のシンタックス要素および可変長のシンタックス要素の両方を処理およびパーシングし得る。
[0337]ビデオスライスがイントラコーディングされた(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、現在のフレームまたはピクチャの以前に復号されたブロックからのシグナリングされたイントラ予測モードおよびデータに基づいて現在のビデオスライスのビデオブロックに関する予測データを生成し得る。ビデオフレームがインターコーディングされた(即ち、B、P、またはGPB)スライスとしてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受けた動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックについての予測ブロックを作り出す。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの1つから作り出され得る。復号デバイス2212は、ピクチャメモリ92内に記憶された参照ピクチャに基づいてデフォルト構築技法を使用して参照フレームリスト、リスト0およびリスト1を構築し得る。
[0338]動き補償ユニット82は、動きベクトルおよび他のシンタックス要素をパーシングすることで現在のビデオスライスのビデオブロックについての予測情報を決定し、この予測情報を使用して、復号されている現在のビデオブロックについての予測ブロックを作り出す。例えば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(例えば、イントラまたはインター予測)を決定するためにパラメータセットにおける1つまたは複数のシンタックス要素、インター予測スライスタイプ(例えば、Bスライス、Pスライス、またはGPBスライス)、スライスに関する1つまたは複数の参照ピクチャリストについての構築情報、スライスの各インター符号化されたビデオブロックについての動きベクトル、スライスの各インターコーディングされたビデオブロックについてのインター予測ステータス、および現在のビデオスライス内のビデオブロックを復号するための他の情報を使用し得る。
[0339]動き補償ユニット82はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット82は、参照ブロックのサブ整数画素についての補間値を算出するためにビデオブロックの符号化の間、符号化デバイス2104によって使用されるような補間フィルタを使用し得る。この事例において、動き補償ユニット82は、受信されたシンタックス要素から符号化デバイス2104によって使用される補間フィルタを決定し得、予測ブロックを作り出すために補間フィルタを使用し得る。
[0340]逆量子化ユニット86は、ビットストリームにおいて提供され、かつ、エントロピー復号ユニット80によって復号された量子化された変換係数を逆量子化(inverse quantize)、または、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度、また同じ様に、適用されるべき逆量子化の程度を決定するために、ビデオスライスにおける各ビデオブロックについて、符号化デバイス2104によって算出される量子化パラメータの使用を含み得る。逆変換処理ユニット88は、画素ドメインにおいて残差ブロックを作り出すために、逆変換、(例えば、逆DCTまたは他の適した逆変換)、逆整数変換、または概念上で同様の逆変換プロセスを、変換係数に適用する。
[0341]動き補償ユニット82が動きベクトルおよび他のシンタックス要素に基づいて現在のビデオブロックに関する予測ブロックを生成した後で、復号デバイス2212は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成される対応する予測ブロックと合計することによって復号されたビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数のコンポーネントを表す。所望される場合、(コーディングループ内またはコーディングループ後のどちらかの)ループフィルタは、画素遷移を平滑にするために、またはそうでなければビデオ品質を改善するためにもされ得る。フィルタユニット91は、非ブロック化フィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなどの、1つまたは複数のループフィルタを表すことが意図される。フィルタユニット91が図22においてインループフィルタであるとして示されるが、他の構成において、フィルタユニット91は、ポストループフィルタとしてインプリメントされ得る。所与のフレームまたはピクチャにおいて復号されたビデオブロックは、次いで、ピクチャメモリ92において記憶され、それは、後の動き補償のために使用される参照ピクチャを記憶する。ピクチャメモリ92はまた、図20において示されるビデオ宛先デバイス2022などのような、ディスプレイデバイス上での後のプレゼンテーションのために復号されたビデオを記憶する。
[0342]前述の記述において、出願の態様は、それの特定の実施形態を参照して説明されるが、当業者は、本開示がそれに限定されないことを認識するだろう。このように、出願の例示的な実施形態が、本明細書の詳細において記述される一方で、発明概念がさもなければ様々に実現され得および用いられ得ること、および、先行技術によって制限される場合を除き、添付の請求項がそのような変形を含むように解釈されるように意図されることが理解されるべきである。上記に説明された開示の様々な特徴および態様が個々にまたは合同で(jointly)され得る。さらに、実施形態は、本明細書のより広範な精神と範囲を逸脱することなく、本明細書で説明されるものを超えるいずれの数の環境およびアプリケーションにおいて、利用されることができる。従って、本明細書および図面は、制限的ではなく、例示的と見なされるべきである。例示の目的のために、方法は、特定の順序で説明された。代替的な実施形態において、方法は、説明されるものとは異なる順序で行われ得ることが理解されるべきである。
[0343]コンポーネントが、ある特定の動作を行う「ように構成される(configured to)」であると説明される場合、そのような構成は、例えば、動作を行うように電子回路または他のハードウェアを設計することによって、動作を行うようにプログラム可能な電子回路(例えば、マイクロプロセッサ、または他の適した電子回路)をプログラミングすることによって、あるいはそれらの任意の組合せで、達成されることができる。
[0344]本明細書で開示された実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとしてインプリメントされ得る。ハードウェアおよびソフトウェアのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップは、概してそれらの機能の観点から上記に説明された。このような機能が、ハードウェアとしてインプリメントされるか、またはソフトウェアとしてインプリメントされるかは、特定のアプリケーションおよびシステム全体に課せられる設計制約に依存する。当業者は、各特定のアプリケーションごとに多様な方法において、説明される機能をインプリメントし得るが、このようなインプリメンテーションの決定は、本開示の範囲から逸脱を引き起こしていると解釈されるべきでない。
[0345]本明細書で説明される技法は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せにおいてインプリメントされ得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットにおけるアプリケーションおよび他のデバイスを含む複数の用途を有する集積回路デバイスのような、様々なデバイスの任意のものにおいてインプリメントされ得る。モジュールまたはコンポーネントとして説明される任意の特徴は、集積論理デバイスで纏めて、または、ディスクリートではあるが相互動作可能な論理デバイスとして別々にインプリメントされ得る。ソフトウェアでインプリメントされる場合、この技法は、実行されると、上記で説明された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ読取可能なデータ記憶媒体によって、少なくとも部分的に実現され得る。コンピュータ読取可能なデータ記憶媒体は、パッケージングマテリアルを含み得る、コンピュータプログラム製品の部分を形成し得る。コンピュータ読取可能な媒体は、同期動的ランダムアクセスメモリ(SDRAM)のようなランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、不揮発ランダムアクセスメモリ(NVRAM)、電気的消去可能なプログラマブル読取専用メモリ(EEPROM(登録商標))、FLASHメモリ、磁気または光学データ記憶媒体、等のメモリまたはデータ記憶媒体を備え得る。技法は、追加的にまたは代替的に、少なくとも部分的に、伝播される信号または波のような、コンピュータによってアクセス、読取、および/または実行されることができ、かつ、データ構造または命令の形式でプログラムコードを搬送または通信するコンピュータ読取可能な通信媒体によって実現され得る。
[0346]プログラムコードは、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の同等の集積回路またはディスクリート論理回路のような、1つまたは複数のプロセッサを含み得る、プロセッサによって実行され得る。そのようなプロセッサは、本開示で説明される技法のうちの任意のものを実行するように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替的に、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成としてインプリメントされ得る。従って、「プロセッサ」という用語は、本明細書で使用される場合、前述の構造の任意のもの、前述の構造の任意の組み合わせ、または本明細書で説明される技法のインプリメンテーションに適した任意の他の構造または装置を指し得る。加えて、いくつかの態様において、本明細書で説明される機能性は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供され得るか、あるいは、複合ビデオエンコーダ−デコーダ(CODEC)に組み込まれ得る。
[0347]本明細書において議論されたコーディング技法は、例となるビデオ符号化および復号システムにおいて具現化され得る。システムは、宛先デバイスによってその後の時間に復号されることになる符号化されたビデオデータを提供するソースデバイスを含む。特に、ソースデバイスは、コンピュータ可読媒体を介して宛先デバイスにビデオデータを提供する。ソースデバイスおよび宛先デバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話の送受話器、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤー、ビデオゲーム機、ビデオストリーミングデバイスまたは同様のものを含む、広範囲のデバイスのうちの任意のものを備え得る。いくつかの事例において、ソースデバイスおよび宛先デバイスは、ワイヤレス通信のために装備され得る。
[0348]宛先デバイスは、コンピュータ可読媒体を介して復号されるべき符号化されたビデオデータを受信し得る。コンピュータ可読媒体は、符号化されたビデオデータをソースデバイスから宛先デバイスに動かす能力がある任意のタイプの媒体またはデバイスを備え得る。1つの例において、コンピュータ可読媒体は、ソースデバイスがリアルタイムに直接に宛先デバイスに符号化されたビデオデータを送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルのような、通信規格に従って変調され得、宛先デバイスに送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線のような、任意のワイヤレスのまたは有線の通信媒体を備え得る。通信媒体は、ワイドエリアネットワーク、ローカルエリアネットワーク、またはインターネットのようなグローバルネットワークなどの、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスから宛先デバイスへの通信を容易にするのに役立ち得る任意の他の設備を含み得る。
[0349]いくつかの例において、符号化されたデータは、出力インターフェースから記憶デバイスに出力され得る。同様に、符号化されたデータは、入力インターフェースによって、記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または非揮発性メモリ、あるいは符号化されたビデオデータを記憶するためのあらゆる他の適したデジタル記憶媒体のような、様々な分散型または局所的にアクセスされるデータ記憶媒体のうちの任意のものを含み得る。さらなる例において、記憶デバイスは、ファイルサーバ、またはソースデバイスによって生成された符号化されたビデオを記憶し得る別の中間記憶デバイスに対応し得る。宛先デバイスは、ストリーミングまたはダウンロードを介して記憶デバイスから記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶することとその符号化されたビデオデータを宛先デバイスに送信することとを行う能力がある任意のタイプのサーバであり得る。例となるファイルサーバは、(例えば、ウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続記憶(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイスは、インターネット接続を含む、任意の標準データ接続を通じて、符号化されたビデオデータにアクセスし得る。これは、ファイルサーバ上に記憶された符号化されたビデオデータにアクセスするのに適している、ワイヤレスチャネル(例えば、Wi−Fi接続)、有線接続(例えば、DSL、ケーブルモデム等)、またはその両方の組み合わせを含むことができる。記憶デバイスからの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組み合わせであり得る。
[0350]本開示の技法は、必ずしも、ワイヤレスアプリケーションまたはセッティングに制限されるわけではない。この技術は、無線テレビ放送、ケーブルテレビ送信、衛星テレビ送信、HTTPを介した動的適応型ストリーミング(DASH)のようなインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されるデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他のアプリケーションのような、様々なマルチメディアアプリケーションのうちの任意のものをサポートするビデオコーディングに適用され得る。いくつかの例において、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオ電話のようなアプリケーションをサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
[0351]1つの例において、ソースデバイスは、ビデオソース、ビデオエンコーダ、および出力インターフェースを含む。宛先デバイスは、入力インターフェース、ビデオデコーダ、およびディスプレイデバイスを含み得る。ソースデバイスのビデオエンコーダは、本明細書において開示された技法を適用するように構成され得る。他の例において、ソースデバイスおよび宛先デバイスは、他のコンポーネントまたは配置(arrangemants)を含むことができる。例えば、ソースデバイスは、外部のカメラのような、外部のビデオソースからビデオデータを受信することができる。同様に、宛先デバイスは、統合されたディスプレイデバイスを含むのではなく、むしろ外部のディスプレイデバイスとインターフェースで接続し得る。
[0352]上記の例となるシステムは、単なる1つの例に過ぎない。並列にビデオデータを処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。概して、本開示の技法は、ビデオ符号化デバイスによって行われるが、技法はまた、典型的に「CODEC」と呼ばれる、ビデオエンコーダ/デコーダによっても行われ得る。さらに、本開示の技法はまた、ビデオプレプロセッサによっても実行され得る。ソースデバイスおよび宛先デバイスは単に、ソースデバイスが宛先デバイスへの送信のためにコーディングされたビデオデータをその中で生成するそのようなコーディングデバイスの例に過ぎない。いくつかの例において、ソースデバイスおよび宛先デバイスは、デバイスの各々がビデオ符号化および復号コンポーネントを含むような実質的に対称なやり方で動作し得る。従って、例となるシステムは、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のための、ビデオデバイス間の一方向または二方向ビデオ送信をサポートし得る。
[0353]ビデオソースは、ビデオカメラ、以前にキャプチャされたビデオを包含するビデオアーカイブ、および/またはビデオ・コンテンツ・プロバイダからビデオを受信するためのビデオフィードインターフェースなどの、ビデオキャプチャデバイスを含み得る。さらなる代わりとして、ビデオソースは、ソースビデオのようなコンピュータグラフィックベースのデータ、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組み合わせを生成することができる。いくつかの事例において、ビデオソースがビデオカメラである場合、ソースデバイスおよび宛先デバイスは、いわゆるカメラ付電話、またはビデオ電話を形成できる。しかしながら、上記で言及されたように、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/または有線アプリケーションに適用され得る。各事例において、キャプチャされた、事前キャプチャされた、またはコンピュータ生成のビデオは、ビデオエンコーダによって符号化され得る。符号化されたビデオ情報は、次いで、コンピュータ可読媒体上に出力インターフェースによって出力され得る。
[0354]述べたように、コンピュータ可読媒体は、ワイヤレスブロードキャストまたは有線ネットワーク送信のような一時的な媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−rayディスク、または他のコンピュータ可読媒体のような記憶媒体(つまり、非一時的な記憶媒体)を含むことができる。いくつかの例において、ネットワークサーバ(図示せず)は、ソースデバイスから符号化されたビデオデータを受信し得、例えばネットワーク送信を介して、宛先デバイスに符号化されたビデオデータを提供し得る。同様に、ディスクスタンピング設備のような媒体製造設備(medium production facility)のコンピュータデバイスは、ソースデバイスから符号化されたビデオデータを受信し得、符号化されたビデオデータを包含するディスクを作り出すことができる。従って、コンピュータ可読媒体は、様々な例において、様々な形式の1つまたは複数のコンピュータ可読媒体を含むように理解され得る。
[0355]宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ブロックおよび他のコーディングされたユニット、例えば、ピクチャのグループ(GOP)、の処理および/または特性を記述するシンタックス要素を含む、ビデオエンコーダによって定義されるシンタックス情報を含み得、それはまたビデオデコーダによっても使用される。ディスプレイデバイスは、ユーザに復号されたビデオデータを表示し、ブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような様々なディスプレイデバイスのうちの任意のものを備えることができる。本出願の様々な実施形態が説明された。
[0355]宛先デバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ブロックおよび他のコーディングされたユニット、例えば、ピクチャのグループ(GOP)、の処理および/または特性を記述するシンタックス要素を含む、ビデオエンコーダによって定義されるシンタックス情報を含み得、それはまたビデオデコーダによっても使用される。ディスプレイデバイスは、ユーザに復号されたビデオデータを表示し、ブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような様々なディスプレイデバイスのうちの任意のものを備えることができる。本出願の様々な実施形態が説明された。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを処理するための方法であって、
全方位カメラによってキャプチャされた360度のビデオデータを取得すること、ここにおいて、前記360度のビデオデータのビデオフレームは、シーンの画像を含み、前記画像において、前記シーンは、前記画像の円形領域にゆがませられる、と、
前記全方位カメラに関連付けられたパラメータを取得すること、ここにおいて、前記パラメータは、前記画像の前記円形領域を記述する、と、
前記360度のビデオデータを符号化することと、
符号化されたビデオデータを生成すること、ここにおいて、前記符号化されたビデオデータは、前記符号化された360度のビデオデータおよび前記全方位カメラに関連付けられた前記パラメータを含む、と
を備える、方法。
[C2]
前記パラメータは、前記画像における1つまたは複数の円形領域の量、前記円形領域の中心の水平座標、前記円形領域の中心の垂直座標、全半径値、フレーム半径値、シーン半径値、前記円形領域内の前記シーンの回転、フリップ値、スケーリング値、視野値、圧縮曲線値、使用できない画素を含む前記画像内の面積の量を示す値、または使用できない画素を含む前記画像内の面積の位置およびサイズのうちの1つまたは複数を含む、C1に記載の方法。
[C3]
前記符号化されたビデオデータを生成することは、前記符号化された360度のビデオデータをファイルに書き込むことを含み、前記ファイルは、国際標準化機構ベースメディアファイルフォーマット(ISOBMFF)形式に従って、フォーマットされる、C1に記載の方法。
[C4]
前記パラメータは、ファイルレベルにおいて、ムービーレベルにおいて、またはトラックレベルにおいて含まれる、C3に記載の方法。
[C5]
前記パラメータは、制限されたスキーム情報ボックスに含まれる、C3に記載の方法。
[C6]
前記パラメータを付加拡張情報(SEI)メッセージに符号化すること、ここにおいて、前記SEIメッセージは、前記符号化された360度のビデオデータに含まれる、
をさらに備える、C1に記載の方法。
[C7]
前記SEIメッセージは、Advanced Video Coding(AVC)またはHigh−Efficiency Video Code(HEVC)規格に従って、フォーマットされる、C6に記載の方法。
[C8]
前記符号化されたビデオデータを生成することは、前記パラメータをセッションデータプロトコル(SDP)属性として符号化することを含む、C1に記載の方法。
[C9]
前記符号化されたビデオデータを生成することは、前記パラメータをメディアプレゼンテーション記述(MPD)ファイルに書き込むことを含む、C1に記載の方法。
[C10]
前記符号化されたビデオデータを生成することは、前記パラメータをMotion Pictures Experts Group(MPEG)トランスポートストリームに書き込むことを含む、C1に記載の方法。
[C11]
符号化されたビデオを処理するための装置であって、
全方位カメラによってキャプチャされた2次元ビデオデータを記憶するように構成されたメモリと、
全方位カメラによってキャプチャされた360度のビデオデータを取得すること、ここにおいて、前記360度のビデオデータのビデオフレームは、シーンの画像を含み、前記画像において、前記シーンは、前記画像の円形領域にゆがませられる、と、
前記全方位カメラに関連付けられたパラメータを取得すること、ここにおいて、前記パラメータは、前記画像の前記円形領域を記述する、と、
前記360度のビデオデータを符号化することと、
符号化されたビデオデータを生成すること、ここにおいて、前記符号化されたビデオデータは、前記符号化された360度のビデオデータおよび前記全方位カメラに関連付けられた前記パラメータを含む、と
を行うように構成されたプロセッサと
を備える、装置。
[C12]
前記パラメータは、前記画像における1つまたは複数の円形領域の量、前記円形領域の中心の水平座標、前記円形領域の中心の垂直座標、全半径値、フレーム半径値、シーン半径値、前記円形領域内の前記シーンの回転、フリップ値、スケーリング値、視野値、圧縮曲線値、使用できない画素を含む前記画像内の面積の量を示す値、または使用できない画素を含む前記画像内の面積の位置およびサイズのうちの1つまたは複数を含む、C11に記載の装置。
[C13]
前記符号化されたビデオデータを生成することは、前記符号化された360度のビデオデータをファイルに書き込むことを含み、前記ファイルは、国際標準化機構ベースメディアファイルフォーマット(ISOBMFF)形式に従って、フォーマットされる、C11に記載の装置。
[C14]
前記パラメータは、ファイルレベルにおいて、ムービーレベルにおいて、またはトラックレベルにおいて含まれる、C13に記載の装置。
[C15]
前記パラメータは、制限されたスキーム情報ボックスに含まれる、C13に記載の装置。
[C16]
前記プロセッサは、
前記パラメータを付加拡張情報(SEI)メッセージに符号化すること、ここにおいて、前記SEIメッセージは、前記符号化された360度のビデオデータに含まれる、
を行うようにさらに構成される、C11に記載の装置。
[C17]
前記SEIメッセージは、Advanced Video Coding(AVC)またはHigh−Efficiency Video Code(HEVC)規格に従って、フォーマットされる、C16に記載の装置。
[C18]
前記符号化されたビデオデータを生成することは、前記パラメータをセッションデータプロトコル(SDP)属性として符号化することを含む、C11に記載の装置。
[C19]
前記符号化されたビデオデータを生成することは、前記パラメータをメディアプレゼンテーション記述(MPD)ファイルに書き込むことを含む、C11に記載の装置。
[C20]
前記符号化されたビデオデータを生成することは、前記パラメータをMotion Pictures Experts Group(MPEG)トランスポートストリームに書き込むことを含む、C11に記載の装置。
[C21]
モバイルデバイス、ここにおいて、前記モバイルデバイスは、前記全方位カメラを含む、
をさらに備える、C11に記載の装置。
[C22]
非一時的なコンピュータ可読媒体であって、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
全方位カメラによってキャプチャされた360度のビデオデータを取得すること、ここにおいて、前記360度のビデオデータのビデオフレームは、シーンの画像を含み、前記画像において、前記シーンは、前記画像の円形領域にゆがませられる、と、
前記全方位カメラに関連付けられたパラメータを取得すること、ここにおいて、前記パラメータは、前記画像の前記円形領域を記述する、と、
前記360度のビデオデータを符号化することと、
符号化されたビデオデータを生成すること、ここにおいて、前記符号化されたビデオデータは、前記符号化された360度のビデオデータおよび前記全方位カメラに関連付けられた前記パラメータを含む、と
を行わせる命令を記憶した、非一時的コンピュータ可読媒体。
[C23]
装置であって、
全方位カメラによってキャプチャされた360度のビデオデータを取得するための手段、ここにおいて、前記360度のビデオデータのビデオフレームは、シーンの画像を含み、前記画像において、前記シーンは、前記画像の円形領域にゆがませられる、と、
前記全方位カメラに関連付けられたパラメータを取得するための手段、ここにおいて、前記パラメータは、前記画像の前記円形領域を記述する、と、
前記360度のビデオデータを符号化することと、
符号化されたビデオデータを生成すること、ここにおいて、前記符号化されたビデオデータは、前記符号化された360度のビデオデータおよび前記全方位カメラに関連付けられた前記パラメータを含む、と
を備える、装置。
[C24]
ビデオデータを処理するための方法であって、
符号化されたビデオデータを取得すること、ここにおいて、前記符号化されたビデオデータは、全方位カメラによってキャプチャされた符号化された360度のビデオデータおよび前記全方位カメラに関連付けられたパラメータを含む、と、
前記360度のビデオデータを作り出すために、前記符号化されたビデオデータを復号すること、ここにおいて、前記360度のビデオデータからのビデオフレームは、シーンの画像を含み、前記画像において、前記シーンは、前記画像の円形領域にゆがませられる、と、
360度のビデオプレゼンテーションを生成すること、ここにおいて、前記360度のビデオプレゼンテーションを生成することは、前記円形領域を360度のビデオプレゼンテーションにおいて使用されることができる形式にマッピングするために前記パラメータを使用することを含む、と
を備える、方法。
[C25]
前記円形領域をエクイレクタングラー形式にマッピングすることと、
前記360度のビデオプレゼンテーションのために前記エクイレクタングラー形式を使用することと
をさらに備える、C24に記載の方法。
[C26]
前記円形領域を直接に前記360度の形式にマッピングすることと、
前記360度のビデオプレゼンテーションのために前記360度の形式を使用することと
をさらに備える、C24に記載の方法。
[C27]
前記パラメータは、前記画像における1つまたは複数の円形領域の量、前記円形領域の中心の水平座標、前記円形領域の中心の垂直座標、全半径値、フレーム半径値、シーン半径値、前記円形領域内の前記シーンの回転、フリップ値、スケーリング値、視野値、圧縮曲線値、使用できない画素を含む前記画像内の面積の量を示す値、または使用できない画素を含む前記画像内の面積の位置およびサイズのうちの1つまたは複数を含む、C24に記載の方法。
[C28]
前記符号化されたビデオデータは、ファイルから取得され、前記ファイルは、国際標準化機構ベースメディアファイルフォーマット(ISOBMFF)形式に従って、フォーマットされる、C24に記載の方法。
[C29]
前記パラメータは、ファイルレベルにおいて、ムービーレベルにおいて、またはトラックレベルにおいて含まれる、C28に記載の方法。
[C30]
前記パラメータは、制限されたスキーム情報ボックスに含まれる、C28に記載の方法。
[C31]
前記パラメータを付加拡張情報(SEI)メッセージから復号すること、ここにおいて、前記SEIメッセージは、前記符号化されたビデオデータに含まれる、
をさらに備える、C24に記載の方法。
[C32]
前記SEIメッセージは、Advanced Video Coding(AVC)またはHigh−Efficiency Video Code(HEVC)規格に従って、フォーマットされる、C31に記載の方法。
[C33]
前記符号化されたビデオデータを復号することは、セッションデータプロトコル(SDP)属性から前記パラメータを取得することを含む、C24に記載の方法。
[C34]
前記符号化されたビデオデータを復号することは、メディアプレゼンテーション記述(MPD)ファイルから前記パラメータを取得することを含む、C24に記載の方法。
[C35]
前記符号化されたビデオデータを復号することは、Motion Pictures Experts Group(MPEG)トランスポートストリームから前記パラメータを取得することを含む、C24に記載の方法。
[C36]
符号化されたビデオを処理するための装置であって、
全方位カメラによってキャプチャされた2次元ビデオデータを記憶するように構成されたメモリと、
前記符号化されたビデオデータを取得すること、ここにおいて、前記符号化されたビデオデータは、全方位カメラによってキャプチャされた符号化された360度のビデオデータおよび前記全方位カメラに関連付けられたパラメータを含む、と、
前記360度のビデオデータを作り出すために、前記符号化されたビデオデータを復号すること、ここにおいて、前記360度のビデオデータからのビデオフレームは、シーンの画像を含み、前記画像において、前記シーンは、前記画像の円形領域にゆがませられる、と、
360度のビデオプレゼンテーションを生成すること、ここにおいて、前記360度のビデオプレゼンテーションを生成することは、前記円形領域を360度のビデオプレゼンテーションにおいて使用されることができる形式にマッピングするために前記パラメータを使用することを含む、と
を行うように構成されたプロセッサと
を備える、装置。
[C37]
前記プロセッサは、
前記円形領域をエクイレクタングラー形式にマッピングすることと、
前記360度のビデオプレゼンテーションのために前記エクイレクタングラー形式を使用することと
を行うようにさらに構成される、C36に記載の装置。
[C38]
前記プロセッサは、
前記円形領域を直接に前記360度の形式にマッピングすることと、
前記360度のビデオプレゼンテーションのために前記360度の形式を使用することと
を行うようにさらに構成される、C36に記載の装置。
[C39]
前記パラメータは、前記画像における1つまたは複数の円形領域の量、前記円形領域の中心の水平座標、前記円形領域の中心の垂直座標、全半径値、フレーム半径値、シーン半径値、前記円形領域内の前記シーンの回転、フリップ値、スケーリング値、視野値、圧縮曲線値、使用できない画素を含む前記画像内の面積の量を示す値、または使用できない画素を含む前記画像内の面積の位置およびサイズのうちの1つまたは複数を含む、C36に記載の装置。
[C40]
前記符号化されたビデオデータは、ファイルから取得され、前記ファイルは、国際標準化機構ベースメディアファイルフォーマット(ISOBMFF)形式に従って、フォーマットされる、C36に記載の装置。
[C41]
前記パラメータは、ファイルレベルにおいて、ムービーレベルにおいて、またはトラックレベルにおいて含まれる、C40に記載の装置。
[C42]
前記パラメータは、制限されたスキーム情報ボックスに含まれる、C40に記載の装置。
[C43]
前記プロセッサは、
前記パラメータを付加拡張情報(SEI)メッセージから復号し、ここにおいて、前記SEIメッセージは、前記符号化されたビデオデータに含まれる、
を行うようにさらに構成される、C36に記載の装置。
[C44]
前記SEIメッセージは、Advanced Video Coding(AVC)またはHigh−Efficiency Video Code(HEVC)規格に従って、フォーマットされる、C43に記載の装置。
[C45]
前記符号化されたビデオデータを復号することは、セッションデータプロトコル(SDP)属性から前記パラメータを取得することを含む、C36に記載の装置。
[C46]
前記符号化されたビデオデータを復号することは、メディアプレゼンテーション記述(MPD)ファイルから前記パラメータを取得することを含む、C36に記載の装置。
[C47]
前記符号化されたビデオデータを復号することは、Motion Pictures Experts Group(MPEG)トランスポートストリームから前記パラメータを取得することを含む、C36に記載の装置。
[C48]
モバイルデバイスをさらに備え、ここにおいて、前記モバイルデバイスは、前記360度のビデオプレゼンテーションを表示するためのディスプレイを含む、
C36に記載の装置。
[C49]
非一時的なコンピュータ可読媒体であって、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
前記符号化されたビデオデータを取得すること、ここにおいて、前記符号化されたビデオデータは、全方位カメラによってキャプチャされた符号化された360度のビデオデータおよび前記全方位カメラに関連付けられたパラメータを含む、と、
前記360度のビデオデータを作り出すために、前記符号化されたビデオデータを復号すること、ここにおいて、前記360度のビデオデータからのビデオフレームは、シーンの画像を含み、前記画像において、前記シーンは、前記画像の円形領域にゆがませられる、と、
360度のビデオプレゼンテーションを生成すること、ここにおいて、前記360度のビデオプレゼンテーションを生成することは、前記円形領域を360度のビデオプレゼンテーションにおいて使用されることができる形式にマッピングするために前記パラメータを使用することを含む、と
を行わせる命令を記憶した、非一時的コンピュータ可読媒体。
[C50]
装置であって、
前記符号化されたビデオデータを取得するための手段、ここにおいて、前記符号化されたビデオデータは、全方位カメラによってキャプチャされた符号化された360度のビデオデータおよび前記全方位カメラに関連付けられたパラメータを含む、と、
前記360度のビデオデータを作り出すために、前記符号化されたビデオデータを復号するための手段、ここにおいて、前記360度のビデオデータからのビデオフレームは、シーンの画像を含み、前記画像において、前記シーンは、前記画像の円形領域にゆがませられる、と、
360度のビデオプレゼンテーションを生成するための手段、ここにおいて、前記360度のビデオプレゼンテーションを生成することは、前記円形領域を360度のビデオプレゼンテーションにおいて使用されることができる形式にマッピングするために前記パラメータを使用することを含む、と
を備える、装置。