(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】2019523921
(43)【公表日】20190829
(54)【発明の名称】360度ビデオのためのレンズひずみ補正を用いた魚眼レンダリング
(51)【国際特許分類】
   G06T 3/00 20060101AFI20190802BHJP
   H04N 5/232 20060101ALI20190802BHJP
【FI】
   !G06T3/00 710
   !H04N5/232 290
   !H04N5/232 380
   !H04N5/232 930
   !H04N5/232 300
【審査請求】未請求
【予備審査請求】有
【全頁数】48
(21)【出願番号】2018560066
(86)(22)【出願日】20170425
(85)【翻訳文提出日】20181114
(86)【国際出願番号】US2017029441
(87)【国際公開番号】WO2017204971
(87)【国際公開日】20171130
(31)【優先権主張番号】62/340,914
(32)【優先日】20160524
(33)【優先権主張国】US
(31)【優先権主張番号】15/495,709
(32)【優先日】20170424
(33)【優先権主張国】US
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
【住所又は居所】アメリカ合衆国 カリフォルニア 92121 サン ディエゴ モアハウス ドライブ 5775
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】ヘルト・ファン・デル・アウウェラ
【住所又は居所】アメリカ合衆国・カリフォルニア・92121−1714・サン・ディエゴ・モアハウス・ドライヴ・5775
(72)【発明者】
【氏名】ムハンマド・コバン
【住所又は居所】アメリカ合衆国・カリフォルニア・92121−1714・サン・ディエゴ・モアハウス・ドライヴ・5775
(72)【発明者】
【氏名】マルタ・カルチェヴィッチ
【住所又は居所】アメリカ合衆国・カリフォルニア・92121−1714・サン・ディエゴ・モアハウス・ドライヴ・5775
【テーマコード(参考)】
5B057
5C122
【Fターム(参考)】
5B057BA15
5B057CA08
5B057CA12
5B057CA16
5B057CB08
5B057CB12
5B057CB16
5B057CD11
5B057CD17
5B057CG01
5C122DA03
5C122FA18
5C122FB06
5C122FB11
5C122FH04
5C122FH06
5C122FH12
5C122FH18
5C122FH20
5C122FK24
5C122GC52
5C122HA01
5C122HA88
5C122HB01
5C122HB05
5C122HB06
5C122HB10
(57)【要約】
様々な実装形態では、魚眼画像の中に存在するひずみを補正するとともに360度ビデオとしての表示のために画像をレンダリングするためのシステムおよび方法が提供される。様々な実装形態では、コンピューティングデバイスは、全方向性カメラによってキャプチャされた2次元ビデオデータを受信することができる。コンピューティングデバイスは、各ビデオフレームから3次元半球状表現に画像をマッピングすることができる。様々な実装形態では、このマッピングは、多項式モデルを使用して実行することができる。3次元半球状表現は、次いで仮想現実体験をもたらすために360度ビデオプレゼンテーションにおいて使用することができる。
【特許請求の範囲】
【請求項1】
360度ビデオデータを処理する方法であって、
全方向性カメラによってキャプチャされた2次元ビデオデータを取得するステップであって、前記2次元ビデオデータがシーンの画像を含み、前記画像の中で、前記シーンが前記画像の円形領域の中へワープされている、ステップと、
前記画像を3次元半球状表現にマッピングするステップであって、前記画像をマッピングするステップが、前記画像の前記円形領域の中のピクセルを前記3次元半球状表現上の対応するロケーションにマッピングするステップを含み、前記画像をマッピングするステップが、前記シーンの前記ワープを補正する、ステップと、
前記3次元半球状表現を360度ビデオプレゼンテーションにおいて使用するステップと
を備える、方法。
【請求項2】
前記画像をマッピングするステップが、前記画像の中の点を前記3次元半球状表現上の対応する点に投影するための多項式を使用するステップを含み、前記画像の中の前記点が、前記3次元半球状表現上の前記点にマッピングすべきピクセルを提供する、請求項1に記載の方法。
【請求項3】
前記ワープが非直線的であり、前記方法が、
調整された半径方向値を使用して前記2次元画像の中のピクセルに対する座標を決定するステップであって、前記調整された半径方向値が前記ワープの前記非直線性に対応する、ステップと、
前記決定された座標を前記マッピングにおいて使用するステップと
をさらに備える、
請求項1に記載の方法。
【請求項4】
前記画像が180度よりも大きい視野を含み、前記方法が、
前記視野にしたがってスケーリングされている半径方向値を使用して前記2次元画像の中のピクセルに対する座標を調整するステップと、
前記調整された座標を前記マッピングにおいて使用するステップと
をさらに備える、
請求項1に記載の方法。
【請求項5】
前記画像が少なくとも180度の視野を含む、請求項1に記載の方法。
【請求項6】
前記全方向性カメラが魚眼レンズを含む、請求項1に記載の方法。
【請求項7】
前記ビデオデータが符号化ビットストリームから取得され、前記符号化ビットストリームが前記ワープを記述する1つまたは複数のパラメータを含み、前記画像をマッピングするステップが前記1つまたは複数のパラメータを使用するステップを含む、請求項1に記載の方法。
【請求項8】
前記1つまたは複数のパラメータが前記符号化ビットストリームの中の補足エンハンスメント情報(SEI)メッセージの中で符号化される、請求項7に記載の方法。
【請求項9】
前記符号化ビットストリームがISOベースメディアファイルフォーマットにしたがってフォーマットされたファイルの中に含まれ、前記1つまたは複数のパラメータが前記ファイルの中の構造の中で符号化される、請求項7に記載の方法。
【請求項10】
前記1つまたは複数のパラメータが、多項式次数、多項式係数、多項式スケーリングパラメータ、またはマッピングスケーリングパラメータのうちの少なくとも1つまたは複数を含む、請求項7に記載の方法。
【請求項11】
符号化ビデオを処理するための装置であって、
全方向性カメラによってキャプチャされた2次元ビデオデータを記憶するように構成されるメモリと、
プロセッサであって、
前記2次元ビデオデータを取得することであって、前記2次元ビデオデータがシーンの画像を含み、前記画像の中で、前記シーンが前記画像の円形領域の中へワープされている、取得することと、
前記画像を3次元半球状表現にマッピングすることであって、前記画像をマッピングすることが、前記画像の前記円形領域の中のピクセルを前記3次元半球状表現上の対応するロケーションにマッピングすることを含み、前記画像をマッピングすることが、前記シーンの前記ワープを補正する、マッピングすることと、
前記3次元半球状表現を360度ビデオプレゼンテーションにおいて使用することと
を行うように構成される、プロセッサと
を備える、装置。
【請求項12】
前記画像をマッピングすることが、前記画像の中の点を前記3次元半球状表現上の対応する点に投影するための多項式を使用することを含み、前記画像の中の前記点が、前記3次元半球状表現上の前記点にマッピングすべきピクセルを提供する、請求項11に記載の装置。
【請求項13】
前記ワープが非直線的であり、前記プロセッサが、
調整された半径方向値を使用して前記2次元画像の中のピクセルに対する座標を決定することであって、前記調整された半径方向値が前記ワープの前記非直線性に対応する、決定することと、
前記正規化された座標を前記マッピングにおいて使用することと
を行うようにさらに構成される、
請求項11に記載の装置。
【請求項14】
前記画像が180度よりも大きい視野を含み、前記プロセッサが、
前記視野にしたがってスケーリングされている半径方向値を使用して前記2次元画像の中のピクセルに対する座標を調整することと、
前記調整された座標を前記マッピングにおいて使用することと
を行うようにさらに構成される、
請求項11に記載の装置。
【請求項15】
前記画像が少なくとも180度の視野を含む、請求項11に記載の装置。
【請求項16】
前記全方向性カメラが魚眼レンズを含む、請求項11に記載の装置。
【請求項17】
前記ビデオデータが符号化ビットストリームから取得され、前記符号化ビットストリームが前記ワープを記述する1つまたは複数のパラメータを含み、前記画像をマッピングすることが前記1つまたは複数のパラメータを使用することを含む、請求項11に記載の装置。
【請求項18】
前記1つまたは複数のパラメータが前記符号化ビットストリームの中の補足エンハンスメント情報(SEI)メッセージの中で符号化される、請求項17に記載の装置。
【請求項19】
前記符号化ビットストリームがISOベースメディアファイルフォーマットにしたがってフォーマットされたファイルの中に含まれ、前記1つまたは複数のパラメータが前記ファイルの中の構造の中で符号化される、請求項17に記載の装置。
【請求項20】
前記1つまたは複数のパラメータが、多項式次数、多項式係数、多項式スケーリングパラメータ、またはマッピングスケーリングパラメータのうちの少なくとも1つまたは複数を含む、請求項17に記載の装置。
【請求項21】
モバイルデバイスをさらに備え、前記モバイルデバイスが前記全方向性カメラを含む、請求項11に記載の装置。
【請求項22】
ビデオを復号するための装置であって、
全方向性カメラによってキャプチャされた2次元ビデオデータを記憶するように構成されるメモリと、
プロセッサであって、
前記2次元ビデオデータを取得することであって、前記2次元ビデオデータがシーンの画像を含み、前記画像の中で、前記シーンが前記画像の円形領域の中へワープされている、取得することと、
前記画像を3次元半球状表現にマッピングすることであって、前記画像をマッピングすることが、前記画像の前記円形領域の中のピクセルを前記3次元半球状表現上の対応するロケーションにマッピングすることを含み、前記画像をマッピングすることが、前記シーンの前記ワープを補正する、マッピングすることと、
前記3次元半球状表現を360度ビデオプレゼンテーションにおいて使用することと
を行うように構成される、プロセッサと
を備える、装置。
【請求項23】
前記画像をマッピングすることが、前記画像の中の点を前記3次元半球状表現上の対応する点に投影するための多項式を使用することを含み、前記画像の中の前記点が、前記3次元半球状表現上の前記点にマッピングすべきピクセルを提供する、請求項22に記載の装置。
【請求項24】
前記ワープが非直線的であり、前記プロセッサが、
調整された半径方向値を使用して前記2次元画像の中のピクセルに対する座標を決定することであって、前記調整された半径方向値が前記ワープの前記非直線性に対応する、決定することと、
前記正規化された座標を前記マッピングにおいて使用することと
を行うようにさらに構成される、
請求項22に記載の装置。
【請求項25】
前記画像が180度よりも大きい視野を含み、前記プロセッサが、
前記視野にしたがってスケーリングされている半径方向を使用して調整された前記2次元画像の中のピクセルに対する座標をしたがって調整することと、
前記調整された座標を前記マッピングにおいて使用することと
を行うようにさらに構成される、
請求項22に記載の装置。
【請求項26】
前記画像が少なくとも180度の視野を含む、請求項22に記載の装置。
【請求項27】
前記全方向性カメラが魚眼レンズを含む、請求項22に記載の装置。
【請求項28】
前記ビデオデータが符号化ビットストリームから取得され、前記符号化ビットストリームが前記ワープを記述する1つまたは複数のパラメータを含み、前記画像をマッピングすることが前記1つまたは複数のパラメータを使用することを含む、請求項22に記載の装置。
【請求項29】
前記1つまたは複数のパラメータが前記符号化ビットストリームの中の補足エンハンスメント情報(SEI)メッセージの中で符号化される、請求項28に記載の装置。
【請求項30】
前記符号化ビットストリームがISOベースメディアファイルフォーマットにしたがってフォーマットされたファイルの中に含まれ、前記1つまたは複数のパラメータが前記ファイルの中の構造の中で符号化される、請求項28に記載の装置。
【請求項31】
前記1つまたは複数のパラメータが、多項式次数、多項式係数、多項式スケーリングパラメータ、またはマッピングスケーリングパラメータのうちの少なくとも1つまたは複数を含む、請求項28に記載の装置。
【請求項32】
モバイルデバイスをさらに備え、前記モバイルデバイスが前記全方向性カメラを含む、請求項22に記載の装置。
【請求項33】
モバイルデバイスをさらに備え、前記モバイルデバイスが前記360度ビデオプレゼンテーションを表示するためのディスプレイを含む、請求項22に記載の装置。
【請求項34】
命令を記憶した非一時的コンピュータ可読記録媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
全方向性カメラによってキャプチャされた2次元ビデオデータを取得することであって、前記2次元ビデオデータがシーンの画像を含み、前記画像の中で、前記シーンが前記画像の円形領域の中へワープされている、取得することと、
前記画像を3次元半球状表現にマッピングすることであって、前記画像をマッピングすることが、前記画像の前記円形領域の中のピクセルを前記3次元半球状表現上の対応するロケーションにマッピングすることを含み、前記画像をマッピングすることが、前記シーンの前記ワープを補正する、マッピングすることと、
前記3次元半球状表現を360度ビデオプレゼンテーションにおいて使用することと
を行わせる、非一時的コンピュータ可読記録媒体。
【請求項35】
装置であって、
2次元ビデオデータを取得するための手段であって、前記2次元ビデオデータがシーンの画像を含み、前記画像の中で、前記シーンが前記画像の円形領域の中へワープされている、手段と、
前記画像を3次元半球状表現にマッピングするための手段であって、前記画像をマッピングすることが、前記画像の前記円形領域の中のピクセルを前記3次元半球状表現上の対応するロケーションにマッピングすることを含み、前記画像をマッピングすることが、前記シーンの前記ワープを補正する、手段と、
前記3次元半球状表現を360度ビデオプレゼンテーションにおいて使用するための手段と
を備える、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、360度ビデオのためのレンズひずみ補正を用いた魚眼レンダリングに関する。
【背景技術】
【0002】
360度ビデオは、観察者に没入型体験をもたらすことができる。たとえば、360度ビデオは、観察者に仮想現実体験をもたらすことができ、仮想的に異なる時間および/または場所に観察者を置く。別の例として、360度ビデオは、リモートデバイス(たとえば、無人航空機、または他のデバイス)によってキャプチャされたビデオコンテンツの一人称の視界を観察者に提供することができる。360度ビデオをキャプチャするための1つの方法は、全方向性カメラを使用することである。全方向性カメラは、ほんの数個のレンズを用いて広い視野をキャプチャすることができる。得られた画像は魚眼効果を示す。
【0003】
様々な実装形態では、魚眼画像に固有のひずみを補正しながら360度ビデオプレゼンテーション向けに魚眼画像をレンダリングするためのシステム、方法、およびコンピュータ可読媒体が提供される。360度ビデオは、反射屈折光学系および/または魚眼レンズを使用する、全方向性カメラによってキャプチャすることができる。そのようなカメラは、1つまたは2つほど少数の画像の中にシーンをキャプチャすることができる。これらの画像は180度またはさらには360度の視野などの大量の情報をキャプチャできるが、シーンは画像の中へ圧縮され、したがって人間の目にはひずんだように見える。追加として、画像は2次元であり、360度ビデオシステムによって表示されるために3次元表現にマッピングされる必要がある。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Davide Scaramuzzaら、"A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion"
【発明の概要】
【課題を解決するための手段】
【0005】
少なくとも一例によれば、360度ビデオデータを処理するための方法が提供される。本方法は、全方向性カメラによってキャプチャされた2次元ビデオデータを取得することを含む。2次元ビデオデータはシーンの画像を含むことができる。画像の中で、シーンは画像の円形領域の中へワープされている。本方法は、画像を3次元半球状表現にマッピングすることをさらに含む。画像をマッピングすることは、画像の円形領域の中のピクセルを3次元半球状表現上の対応するロケーションにマッピングすることを含むことができる。画像をマッピングすることは、シーンのワープを補正することができる。本方法は、3次元半球状表現を360度ビデオプレゼンテーションにおいて使用することをさらに含む。
【0006】
別の例では、メモリと、360度ビデオデータを処理するように構成されるプロセッサとを含む、装置が提供される。プロセッサは、全方向性カメラによってキャプチャされた2次元ビデオデータを取得するように構成されるとともに、それを行うことができる。2次元ビデオデータはシーンの画像を含むことができる。画像の中で、シーンは画像の円形領域の中へワープされている。プロセッサは、画像を3次元半球状表現にマッピングするようにさらに構成されるとともに、それを行うことができる。画像をマッピングすることは、画像の円形領域の中のピクセルを3次元半球状表現上の対応するロケーションにマッピングすることを含むことができる。画像をマッピングすることは、シーンのワープを補正することができる。プロセッサは、3次元半球状表現を360度ビデオプレゼンテーションにおいて使用するようにさらに構成されるとともに、それを行うことができる。
【0007】
別の例では、プロセッサによって実行されたとき、全方向性カメラによってキャプチャされた2次元ビデオデータを取得することを含む方法を実行する命令を記憶したコンピュータ可読媒体が提供される。2次元ビデオデータはシーンの画像を含むことができる。画像の中で、シーンは画像の円形領域の中へワープされている。本方法は、画像を3次元半球状表現にマッピングすることをさらに含む。画像をマッピングすることは、画像の円形領域の中のピクセルを3次元半球状表現上の対応するロケーションにマッピングすることを含むことができる。画像をマッピングすることは、シーンのワープを補正することができる。本方法は、3次元半球状表現を360度ビデオプレゼンテーションにおいて使用することをさらに含む。
【0008】
別の例では、全方向性カメラによってキャプチャされた2次元ビデオデータを取得するための手段を含む装置が提供される。2次元ビデオデータはシーンの画像を含むことができる。画像の中で、シーンは画像の円形領域の中へワープされている。本装置は、画像を3次元半球状表現にマッピングするための手段をさらに含む。画像をマッピングすることは、画像の円形領域の中のピクセルを3次元半球状表現上の対応するロケーションにマッピングすることを含むことができる。画像をマッピングすることは、シーンのワープを補正することができる。本装置は、3次元半球状表現を360度ビデオプレゼンテーションにおいて使用するための手段をさらに含む。
【0009】
いくつかの態様では、画像をマッピングすることは、画像の中の点を3次元半球状表現上の対応する点に投影するための多項式を使用することを含む。画像の中の点は、3次元半球状表現上の点にマッピングすべきピクセルを提供することができる。
【0010】
いくつかの態様では、ワープは非直線的である。これらの態様では、上記で説明した方法、装置、およびコンピュータ可読媒体は、2次元画像の中のピクセルに対する座標を決定することをさらに備える。座標は、調整された半径方向値を使用して決定することができ、ここで調整された半径方向値はワープの非直線性に対応する。これらの態様は、正規化された座標をマッピングにおいて使用することをさらに含む。
【0011】
いくつかの態様では、画像は、180度よりも大きい視野を含む。これらの態様では、上記で説明した方法、装置、およびコンピュータ可読媒体は、2次元画像の中のピクセルに対する座標を調整することをさらに備え、ここで座標は、視野にしたがってスケーリングされている半径方向値を使用して調整される。これらの態様は、調整された座標をマッピングにおいて使用することをさらに含む。
【0012】
いくつかの態様では、画像は少なくとも180度の視野を含む。
【0013】
いくつかの態様では、全方向性カメラは魚眼レンズを含む。
【0014】
いくつかの態様では、ビデオデータは、符号化ビットストリームから取得され、ここで符号化ビットストリームは、ワープを記述する1つまたは複数のパラメータを含む。これらの態様では、画像をマッピングすることは、1つまたは複数のパラメータを使用することを含む。いくつかの態様では、1つまたは複数のパラメータは、符号化ビットストリームの中の補足エンハンスメント情報(SEI)メッセージの中で符号化される。いくつかの態様では、符号化ビットストリームは、ISOベースメディアファイルフォーマットにしたがってフォーマットされたファイルの中に含まれ、1つまたは複数のパラメータは、ファイルの中の構造の中で符号化される。いくつかの態様では、1つまたは複数のパラメータは、多項式次数、多項式係数、多項式スケーリングパラメータ、またはマッピングスケーリングパラメータのうちの少なくとも1つまたは複数を含む。
【0015】
いくつかの態様では、上記で説明したような装置は、モバイルデバイスを含むことができる。いくつかの実装形態では、モバイルデバイスは全方向性カメラを含む。いくつかの実装形態では、モバイルデバイスは360度ビデオプレゼンテーションを表示するためのディスプレイを含む。
【0016】
本概要は、特許請求される主題の主要または不可欠な特徴を識別するものでなく、特許請求される主題の範囲を決定するために独立して使用されるものでもない。主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分への参照によって理解されるべきである。
【0017】
上記のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付図面を参照するとより明らかになろう。
【0018】
本出願の例示的な実施形態が、以下の図面を参照しながら以下で詳細に説明される。
【図面の簡単な説明】
【0019】
【図1】魚眼レンズを使用してキャプチャされたピクチャの一例を示す図である。
【図2A】本明細書で説明する技法の例示的な適用例を示す図である。
【図2B】本明細書で説明する技法の例示的な適用例を示す図である。
【図3】半球状表現の例示的な使用を示す図である。
【図4】180度アンギュラ魚眼レンズの横断面、およびレンズのための対応する画像平面の一例を示す図である。
【図5】半球状魚眼レンズの一例、および半球状魚眼レンズのための対応する画像平面を示す図である。
【図6A】全方向性カメラによってキャプチャできる画像の一例を示す図である。
【図6B】図6Aの画像の中にキャプチャされたシーンがそこにマッピングされるべき半球状表現の一例を示す図である。
【図7A】補正を用いてレンダリングされた画像および補正を用いずにレンダリングされた画像の例を示す図である。
【図7B】補正を用いてレンダリングされた画像および補正を用いずにレンダリングされた画像の例を示す図である。
【図8】360度ビデオプレゼンテーションにおける表示のために、2次元魚眼画像を3次元半球状表現にマッピングするためのプロセスの一例を示す図である。
【図9】符号化デバイスおよび復号デバイスを含むシステムの一例を示すブロック図である。
【図10】例示的な符号化デバイスを示すブロック図である。
【図11】例示的な復号デバイスを示すブロック図である。
【発明を実施するための形態】
【0020】
本開示のいくつかの態様および実施形態が以下に提供される。当業者に明らかになるように、これらの態様および実施形態のうちのいくつかは独立に適用されてよく、それらのうちのいくつかは組み合わせて適用されてよい。以下の説明では、説明の目的で、本開示の実施形態の完全な理解をもたらすように具体的な詳細が説明される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実践されてもよいことは明らかであろう。図および説明は限定的であることを意図しない。
【0021】
以下の説明は、例示的な実施形態のみを提供し、本開示の範囲、適用性、または構成を限定することを意図しない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実施することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載したような本開示の趣旨および範囲から逸脱することなく様々な変更が要素の機能および構成に加えられてもよいことを理解されたい。
【0022】
本実施形態の十分な理解をもたらすために、以下の説明において具体的な詳細が与えられる。しかしながら、本実施形態がこれらの具体的な詳細なしに実践されてもよいことが当業者によって理解されよう。たとえば、不必要な詳細で本実施形態を不明瞭にしないように、回路、システム、ネットワーク、プロセス、および他の構成要素はブロック図の形態で構成要素として示されることがある。他の事例では、本実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細なしに示されることがある。
【0023】
また、個々の実施形態がフローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明されてもよいことに留意されたい。フローチャートは逐次プロセスとして動作を説明することがあるが、動作の多くは並列または同時に実行されてもよい。加えて、動作の順序は並べ替えられてよい。プロセスは、その動作が完了するときに終了するが、図に含まれない追加のステップを有することができる。プロセスは、方法、機能、プロシージャ、サブルーチン、サブプログラムなどに相当してもよい。プロセスが関数に相当するとき、その終了は、その関数が呼出し関数またはメイン関数に戻ることに相当してもよい。
【0024】
「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブルの記憶デバイス、光記憶デバイス、ならびに命令および/またはデータを記憶、包含、または搬送することができる様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶されてもよいとともに、ワイヤレスに、または有線接続を介して伝搬する搬送波および/または一時的な電子信号を含まない非一時的媒体を含んでもよい。非一時的媒体の例は、限定はしないが、磁気ディスクもしくは磁気テープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、またはメモリデバイスを含んでもよい。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表してもよい、その上に記憶されたコードおよび/または機械実行可能命令を有してもよい。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受けることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して渡されてよく、転送されてよく、または送信されてよい。
【0025】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによって実装されてよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体に記憶されてもよい。プロセッサは、必要なタスクを実行してもよい。
【0026】
仮想現実は、一見したところ現実的または物理的な方法で相互作用できる3次元環境を表す。場合によっては、仮想現実環境を体験するユーザは、ヘッドマウントディスプレイ(HMD)および同じく随意に衣類(たとえば、センサが備えつけられた手袋)などの電子機器を使用して、仮想環境と相互作用する。実世界の中でユーザが動くにつれて、仮想環境の中でレンダリングされる画像も変化し、ユーザが仮想環境内で動いているという知覚をユーザに与える。場合によっては、仮想環境はユーザの動きと相互に関連する音を含み、音が特定の方向または音源から発生するという印象をユーザに与える。仮想現実ビデオは極めて高品質でキャプチャおよびレンダリングすることができ、真に没入型の仮想現実体験を潜在的にもたらす。仮想現実の適用例は、特にゲーミング、トレーニング、教育、スポーツビデオ、およびオンラインショッピングを含む。
【0027】
360度ビデオは、仮想現実環境における表示のためにキャプチャされたビデオである。いくつかの適用例では、実世界からのビデオは、ゲーミングおよび仮想世界において見られることがあるようなコンピュータ生成グラフィックスではなく、仮想現実環境のプレゼンテーションにおいて使用することができる。これらの適用例では、ユーザは、ユーザがその人の現在のロケーションを体験できるのと同様に別のロケーションを体験することができる。たとえば、ユーザはサンフランシスコに位置する360度ビデオシステムを使用しながらベルリンの徒歩旅行を体験することができる。
【0028】
360度ビデオシステムは、通常、ビデオキャプチャデバイスおよびビデオディスプレイデバイスを含み、場合によってはサーバ、データストレージ、およびデータ送信機器などの他の中間デバイスもまた含む。ビデオキャプチャデバイスは、カメラセット、すなわち各々が異なる方向を向いており異なる視界をキャプチャする複数のカメラのセットを含んでよい。いくつかの適用例では、カメラセットのロケーションを中心とした完全な360度の視界をキャプチャするために6つのカメラが使用されることが可能である。いくつかのビデオキャプチャデバイスは、たとえば主に横方向の視界をキャプチャするかまたは広い視野を有するレンズを使用するビデオキャプチャデバイスなどのもっと少ないカメラを使用してもよい。ビデオは、一般にフレームを含み、ここでフレームは、電子的にコーディングされたシーンの静止画像である。カメラは、通常はカメラのフレームレートと呼ばれる、毎秒いくつかの数のフレームをキャプチャする。
【0029】
場合によっては、シームレスな360度の視界を提供するために、カメラセットの中のカメラの各々によってキャプチャされたビデオに対して画像スティッチング(image stitching)が実行されることが可能である。360度ビデオ生成の場合の画像スティッチングは、ビデオフレームがオーバーラップするかまたは別の方法で連結することになるエリアの中の、互いに隣接するカメラからのビデオフレームを合成またはマージすることを伴う。結果は、ほぼ球状のフレーム、ただしメルカトル投影と類似であることになり、マージされたデータは、通常、平面的に表される。たとえば、マージされたビデオフレームの中のピクセルは、立方体形状またはいくつかの他の3次元平面形状(たとえば、角錐、8面体、10面体など)の平面の上にマッピングされてよい。ビデオキャプチャデバイスおよびビデオディスプレイデバイスは、ラスタ原理で動作することができ、-ビデオフレームがピクセルのグリッドとして扱われることを意味する。その場合、正方形平面、長方形平面、または他の好適な形状の平面が、球状の環境を表すために使用されることが可能である。
【0030】
平面状の表現にマッピングされた360度ビデオフレームは、記憶および/または送信のために符号化および/または圧縮することができる。符号化および/または圧縮は、ビデオコーデック(たとえば、H.265/HEVC準拠コーデック、H.264/AVC準拠コーデック、または他の好適なコーデック)を使用して達成することができ、圧縮ビデオビットストリーム(または、符号化ビデオビットストリーム)、またはビットストリームのグループをもたらす。ビデオコーデックを使用するビデオデータの符号化は、以下でさらに詳細に説明される。
【0031】
いくつかの実装形態では、符号化ビデオビットストリームは、メディアフォーマットまたはファイルフォーマットの中に記憶および/またはカプセル化することができる。記憶されたビットストリームは、たとえばネットワークを介して、表示のためにビデオを復号およびレンダリングできるレシーバデバイスへ送信することができる。そのようなレシーバデバイスは、本明細書でビデオディスプレイデバイスと呼ばれることがある。たとえば、360度ビデオシステムは、符号化ビデオデータから(たとえば、国際標準化機構(ISO)ベースメディアファイルフォーマット、および/または導出されるファイルフォーマットを使用して)カプセル化されたファイルを生成することができる。たとえば、ビデオコーデックは、ビデオデータを符号化することができ、カプセル化エンジンが、ビデオデータを1つまたは複数のISOフォーマットメディアファイルの中にカプセル化することによってメディアファイルを生成することができる。代替または追加として、記憶されたビットストリームは、記憶媒体からレシーバデバイスに直接提供することができる。
【0032】
レシーバデバイスはまた、符号化ビデオビットストリームを復号および/または圧縮解除するためにコーデックを実装することができる。符号化ビデオビットストリームがメディアフォーマットまたはファイルフォーマットの中に記憶および/またはカプセル化される場合、レシーバデバイスは、ビデオビットストリームをファイル(または、複数のファイル)の中に詰め込むために使用されたメディアフォーマットまたはファイルフォーマットをサポートすることができ、ビデオデータを(また、場合によってはオーディオデータも)抽出して符号化ビデオデータを生成することができる。たとえば、レシーバデバイスは、カプセル化されたビデオデータを有するメディアファイルを構文解析して符号化ビデオデータを生成することができ、レシーバデバイスの中のコーデックは、符号化ビデオデータを復号することができる。
【0033】
レシーバデバイスは、次いで復号されたビデオ信号をレンダリングデバイス(たとえば、ビデオディスプレイデバイス、プレーヤデバイス、または他の好適なレンダリングデバイス)へ送信することができる。レンダリングデバイスは、たとえばヘッドマウントディスプレイ、仮想現実テレビジョン、および他の180度または360度ディスプレイデバイスを含む。一般に、ヘッドマウントディスプレイは、着用者の頭部の動きおよび/または着用者の目の動きを追跡することができる。ヘッドマウントディスプレイは、追跡情報を使用して、着用者が見ている方向に対応する360度ビデオの一部をレンダリングすることができ、その結果着用者は、その人が実世界を体験することになるのと同様に仮想環境を体験する。レンダリングデバイスは、ビデオがキャプチャされたのと同じフレームレートで、または異なるフレームレートでビデオをレンダリングしてよい。
【0034】
360度ビデオをキャプチャするためのカメラセットは、様々な全方向性カメラ、反射屈折カメラ(レンズおよび湾曲したミラーを使用するカメラ)、および/または魚眼レンズが装備されたカメラを含むことができる。全方向性カメラの一例は、反対方向に焦点を合わせる2つの魚眼レンズを使用する、リコーのTheta-Sである。
【0035】
反射屈折カメラや魚眼レンズを有するカメラなどの全方向性カメラは、通常、ひずみの量が顕著な画像をキャプチャする。図1は、魚眼レンズを使用してキャプチャされたピクチャ100の一例を示す。魚眼レンズは、最大180度以上の視野を有することができる広角レンズである。背中合わせに配置されたそのような2つのレンズが装備されたカメラは、360度の(または、それを越える)視界を一緒に提供する2つの画像をそのようにキャプチャすることができる。
【0036】
しかしながら、そのような広い視野を可能にするレンズの極端な曲率はまた、画像をひずんだ状態にさせる。図1の例において示すように、ピクチャ100の中にキャプチャされているシーン102は形状が円形であり、レンズの曲率にしたがってワープされる。カメラセンサは、通常、長方形であるので、ピクチャ100は長方形であり、ピクセルがキャプチャされなかった隅角部104は、通常は空白または黒色である。この例では、シーン102の上部および下部は切り取られている。シーン102の上部および下部は、様々な理由のために切り取ることができる。例示的な一例では、シーン102の上部および下部は、レンズの形状および/またはカメラセンサの形状に起因して切り取ることができる。
【0037】
例示的な画像100は、大量の情報、この場合180度の視野をキャプチャする。他の画像は、270度の視界などの180度よりも大きくキャプチャすることができる。しかしながら、シーン102のひずみは、極めて現実的なプレゼンテーションを観察者に提供するとは限らない。追加として、画像100は、3次元シーンの平坦な2次元表現である。360度ビデオとしてのプレゼンテーションのために、画像100は、球状の3次元(3D)表現にマッピングされる必要がある。
【0038】
様々な実装形態では、魚眼画像の中に存在するひずみを補正するとともに360度ビデオとしての表示のために画像をレンダリングするためのシステムおよび方法が提供される。様々な実装形態では、コンピューティングデバイスは、全方向性カメラによってキャプチャされた2次元ビデオデータを受信することができる。コンピューティングデバイスは、各ビデオフレームから3次元半球状表現に画像をマッピングすることができる。様々な実装形態では、このマッピングは、多項式モデルを使用して実行することができる。3次元半球状表現は、次いで仮想現実体験をもたらすために360度ビデオプレゼンテーションにおいて使用することができる。
【0039】
図2Aおよび図2Bは、本明細書で説明する技法の例示的な適用例を示す。図2Aの例は、全方向性カメラによってキャプチャできる画像200を示す。上記で説明したように、画像200は形状が長方形であり、ここで長方形の形状はカメラの画像キャプチャセンサのサイズおよび形状に対応する。画像200は、シーンをキャプチャするピクセルを含む円形領域202を含む。ピクセルがキャプチャされなかった画像200の隅角部204は、空白のままにされること、または黒色ピクセルを含むことが可能である(たとえば、0または255というピクセル値を有する)。
【0040】
円形領域202の中でキャプチャされたピクセルはいくつかの視野を含み、ここで視野はレンズおよび/またはカメラによって規定される。たとえば、円形領域202は、カメラのレンズ、ミラー、および/またはセンサの構成に応じて、90度の視野、180度の視野、270度の視野、またはいくつかの他の程度の視野を含むことができる。視野を画像200の中に合わせるために、ピクセルは、以下でさらに説明するように直線的または非直線的に円形領域202の中へワープされる。
【0041】
様々な実装形態では、以下で説明する技法は、円形領域202の中のピクセルを半球状表現210にマッピングし、その一例が図2Bに示される。半球状表現210は、次いで仮想現実レンダリングデバイスを使用する観察者に画像200を提示するために使用することができる。半球状表現210は、球体のうちの半分であること(180度の視界を表す)、球体のうちの半分よりも小さいこと(たとえば、画像200が180度よりも小さい視界をキャプチャするとき)、または球体のうちの半分よりも大きいこと(たとえば、画像200が180度よりも大きい視界をキャプチャするとき)が可能である。
【0042】
様々な実装形態では、以下で説明する技法は、円形領域202の中のピクセルを半球状の形状の中へ伸張する効果がある。たとえば、円形領域202の中心212は、半球状表現210の中心222すなわち頂点に対応することができる。さらなる例として、円形領域202の一番上の点214aは半球状表現210の一番上の点224a(たとえば、北極(polar north))に対応することができ、円形領域202の一番下の点214bは半球状表現210の一番下の点224b(たとえば、南極(polar south))に対応することができる。同様に、円形領域202の一番右214cおよび一番左214dは、この例では半球状表現210の一番右224cおよび見えていない一番左224dとなるものに対応することができる。円形領域202の中心212と縁部との中間のピクセルは、さらに半球状表現210の表面にわたって均等に分散することができる。
【0043】
得られた半球状表現210は、平坦な画像200を360度表示で提示するために使用することができる。図3は、半球状表現310の例示的な使用を示す。360度ディスプレイデバイスを使用すると、半球状表現310は、観察者320にその人が半球状表現310によってキャプチャされたピクセルによって表されるシーンの内側にいるという印象が与えられるようにレンダリングすることができる。場合によっては、半球状表現310の頂点は、観察者の視野の中心にあるように向けることができる。様々な実装形態では、観察者320の後ろにあることになる視界のために追加の半球状表現が設けられることが可能である。
【0044】
様々なタイプの魚眼レンズがあり、その各々は異なる方法で広角度の視野を画像平面にマッピングする。一例は、fシータレンズ(f-theta lens)とも呼ばれるアンギュラ魚眼レンズである。アンギュラ魚眼レンズを用いると、画像の中心からの距離は、カメラ視界方向からの角度に比例する。その結果、解像度は画像全体にわたってほぼ等しい。アンギュラ魚眼レンズは、完全な360度いっぱいの角度に対して使用することができる。
【0045】
図4は、180度アンギュラ魚眼レンズ420の横断面、およびレンズ420のための対応する画像平面402の一例を示す。図は、レンズの画像平面402に垂直な側部から見たときのレンズ420を示す。示される図はまた、レンズ420の上面図、またはレンズの画像平面402と垂直な任意の他の角度からの図であることが可能であるが、この例では図4が側面図を示すと想定する。レンズの画像平面402の正面図が図4の左側に示される。
【0046】
アンギュラレンズの構成は、0からの任意の角度に対して(ただし、0はレンズ420の中心(カメラ位置406とも見なされる)である)、その角度においてキャプチャされる空間の中の点が画像平面402の中の点ρに直線的に対応するようなものである。すなわち、たとえば0からのα=45度において、レンズ420に入る光は画像平面402の中心と画像平面402の上部との間の中間の点においてキャプチャされる。画像平面402の上部は、α=90度にスケーリング係数または拡大係数を掛けたものに対応する。同様に、0からのα=22.5度において、レンズに入る光は画像平面402の中で、ρ=0と、45度としてキャプチャされるピクセルとの間の中間でキャプチャされ、0からの67.5度において、光は画像平面402の中で45度と画像平面402の上部との間の中間でキャプチャされる。この例ではレンズ420が側部から見られていることが想定されるので、画像平面402の中心からρの距離は垂直方向にのみ変化する。
【0047】
図4の例示的なレンズ420によって生成される画像平面402は、半球にマッピングすることができ、ここで半球はコンピューティングデバイスにおいて3次元メッシュを使用して表すことができる。たとえば、画像平面402からの円形画像は、グラフィックス処理装置(GPU)を使用してレンダリングすることができる。画像を半球にマッピングすることは、レンズ420が生み出す固有のひずみを矯正することができる。このマッピングのための技法は、以下でさらに説明される。
【0048】
他のタイプの魚眼レンズは、レンズの中心から画像の外縁部まで非直線ひずみを生み出す。図5は、半球状魚眼レンズ520の一例を示す。レンズ520の側面図が図の右側に示され、レンズのための画像平面502の正面図が図の左側に示される。
【0049】
半球状レンズは、画像平面502上への半球の平行投影を生み出す。このおよび他の例では、画像は半径方向に圧縮された状態になり、レンズのより外側の縁部に向かってより大きい圧縮が発生する。すなわち、角度αが0から増大するにつれて(ただし、0はレンズ520の中心(カメラ位置506とも見なされる)である)、画像平面502の中でキャプチャされる画像は、非直線的にますます圧縮された状態になる。これらのタイプのレンズによってキャプチャされる画像は、ひずみの非直線性が補正される必要がある。
【0050】
様々な実装形態では、キャプチャされた画像の中に魚眼投影が持ち込むことができる非直線ひずみを補正するために、以下で説明する技法が使用されることが可能である。様々な実装形態では、これらの技法は、多項式モデルを採用する全方向性カメラ較正技法を使用することを含む。全方向性カメラ較正技法は、参照によりその全体が本明細書に組み込まれる、Davide Scaramuzzaらの"A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion"において説明されている。全方向性カメラ(反射屈折カメラおよび光屈折カメラを含む)がこの技法にしたがって較正されていると、実世界における点は、カメラのセンサによってキャプチャされたピクセルごとに決定することができる。
【0051】
図6Aは、全方向性カメラによってキャプチャできる画像602の一例を示す。上記で説明したように、画像602は、魚眼ひずみを有することができ、ここで画像の中でキャプチャされたシーンは、円形の形状にワープされている。画像602を半球状表現610にマッピングするために、画像の水平軸はuと標示され、垂直軸はvと標示される。水平寸法と垂直寸法の両方に対して0は画像602の中心に位置する。この例では、ρは画像602によって形成される円の半径に沿った点として規定される。そのような点604は座標(u,v)を有することができる。
【0052】
図6Bは、画像602の中にキャプチャされたシーンがそこにマッピングされるべき半球状表現610の一例を示す。このマッピングのために、直交のX軸およびY軸が規定される。様々な実装形態では、X軸は、たとえば実世界における上下に対応することができ、Y軸は左右に対応することができる。Z軸は、カメラのイメージセンサに垂直であるように規定される。半球状表現610の表面上の点614は、座標(x,y,z)を使用して表すことができる。点614はまた、X軸とY軸との間での点の回転を表す、対応する角度値Φを有することができる。点614はまた、Z軸とX軸およびY軸によって形成される平面との間での点の回転を表す、角度値rを有することができる。
【0053】
様々な実装形態では、上述の全方向性カメラ較正方法は、画像602の中の点604の位置(u,v)をセンサ軸に対して(すなわち、図6Bに示すZ軸に対して)点614に関係付けるために、以下の多項式を使用する。
f(ρ)=a0+a1ρ+a2ρ2+…+aNρN
【0054】
上式において、係数ai(i=0,1,2,...N)および多項式次数Nは、較正によって決定されるモデルパラメータであり、ρは、上記で説明したように半径方向値と呼ばれることがあるセンサ軸からの距離である。
【0055】
カメラ較正は、一般に特定のカメラ用の固有パラメータおよび外部パラメータを決定することを伴う。カメラの固有パラメータは、カメラの焦点距離および光心を含む。上式において、係数aiは画像602の形状を表す固有パラメータである。外部パラメータは、地上に対する回転の程度(たとえば、ピッチ、ヨー、および/またはロール)、およびカメラの3次元の実世界ロケーションを含むことができる(カメラの「トランスレーション(translation)」と呼ばれる)。外部パラメータは、一般にカメラのセンサの中心から測定される。カメラ較正は、一般にカメラの固有パラメータおよび外部パラメータを決定することを伴う。様々な実装形態では、これは自動的に、かつ/または較正パターンをキャプチャする画像の支援を伴って達成することができる。
【0056】
上記の関数f(ρ)は、画像602が回転的に均一であると想定し、そのことは、画像602の中心からの所与の距離に対して画像602の中のその距離におけるすべての点が、カメラセンサから等距離の空間における点をキャプチャすることを意味する。カメラレンズが通常は精密に対称的であるように製造されるので、このことは妥当な想定である。関数は、円形の魚眼画像602を半球状表現610上にマッピングするために、そのように使用することができる。上述のように、関数は、画像602の中の座標を半球状表現610のZ軸に対して対応する点に関係付ける。したがって、半球状表現610上の任意の点614に対して、関数は、画像602の中の対応する点604を見つけるために使用することができる。ピクセルは、次いで画像602の中の点604から採ることができ、半球状表現610における対応する点614に配置することができる。
【0057】
図6Aにおける画像602が(図4の例で説明したような)直線ひずみを含むとき、半球状表現610における点614(回転座標(r,Φ)とともに座標(x,y,z)を有する)に対して、対応する点604(画像平面602の中の座標(u,v)を有する)は、次の式を使用して決定することができる。
【数1】
【0058】
上式において、uおよびvは正規化され、そのことは、uおよびvが各々0〜1の間で変化することを意味する。
【0059】
回転座標(r,Φ)は、関数atan2を使用して決定することができる。atan2関数は、2つの引数を有する逆正接関数であり、両方が0に等しいわけではない任意の実数引数xおよびyに対して、atan2(y,x)は、平面の正のx軸と座標(x,y)によって与えられる平面上の点との間の角度をラジアン単位で戻す。角度は、反時計回りの角度(たとえば、y>0である平面の上半分)に対して正であり、時計回りの角度(たとえば、y<0である平面の下半分)に対して負である。atan2を使用すると、rおよびΦは次のように計算することができる。
【数2】
【0060】
上式において、rは0から1まで変動し、Φは0から2πまで変動する。
【0061】
上式を使用すると、画像602からのピクセルは、半球状表現610にマッピングすることができる。具体的には、座標(x,y,z)を有する所与の点614に対して、画像602の中の座標(u,v)を有する対応する点604が計算されることが可能である。ピクセルは、次いで画像602の中の点604から採ることができ、半球状表現において(x,y,z)に配置することができる。
【0062】
画像602が(図5の例で説明したような)非直線ひずみを含むとき、画像602(図6Aに示すような)を半球状表現610にマッピングするために、以下の追加および/または代替の計算が使用されることが可能である。これらの式は、非直線ひずみを補正することができる。以下の説明では、非直線ひずみを含む画像602の中の点に対して、補正済み正規化座標と呼ばれることがあるu'およびv'が、これらの点に対する座標を表すために使用される。
【0063】
上述のように、画像602の中心からの距離ρは非直線的に変化する。ρの値は次のように表現することができる。
ρ=k0r
【0064】
上式において、角度値rは上記で説明したように計算することができる。
【0065】
関数f(ρ)は、さらに次のように修正することができる。
f(ρ)=k1(a0+a1ρ+a2ρ2+…+aNρN)
【0066】
上の2つの式において、k0およびk1はスケーリングパラメータであり、aiは上記で説明したようにカメラ較正によって決定された係数である。関数f(ρ)は座標(x,y,z)を有する点614のセンサ軸Z上への投影を行う。関数f(ρ)の結果はそのようにz座標を与える。
【0067】
パラメータk0はrをρにスケーリングし、すなわちk0はρの非直線的な変動にしたがってrを調整する。パラメータk0は、図5に関して上記で説明したような魚眼画像における非直線的な圧縮に対して多項式を調整するためにそのように使用することができる。パラメータk0に対する値は、rおよび関数f(ρ)から導出することができる。具体的には、k0はr=1のときにf(ρ)=0となるように決定することができる。図6Bに示すように、r=1は、画像602がそこにマッピングされている半球状表現610の末端の縁部である。半球状表現610の縁部において、z座標は0であり、したがって(z座標を与える)f(ρ)もまた0である。
【0068】
パラメータk1はf(ρ)をzにスケーリングする。関数f(ρ)を導出するために使用されるカメラ較正方法は半球状の投影を想定し、ただしf(ρ)<0である。したがって、k1は-1などの負の値に設定することができ、その結果f(ρ)は正の値を生み出す。代替として、係数aiの符号は変化させることが可能である。代替として、場合によっては符号変化は以下で説明する式の中に含められてよい。
【0069】
画像平面602の中の点(u',v')に対する座標は、次式を使用して決定することができる。
【数3】
【0070】
上式において、u'およびv'は正規化され、0〜1の間で変化する。
【0071】
上式について、r'は次のように計算することができる。
【数4】
【0072】
上式を使用すると、半径方向のひずみは、〜ここで画像の中心からの距離が増大するにつれて画像602はますます大きい圧縮を受ける〜画像が半球状表現610にマッピングされるときに補正することができる。具体的には、半球状表現610上の点614(x,y,z)に対して、画像の中の座標(u',v')を有する点を決定することができる。点(u',v')からのピクセルは、次いで点614(x,y,z)に配置することができる。
【0073】
場合によっては、追加のスケーリング係数が必要とされてよい。たとえば、画像が180度よりも大きいかもしくは180度よりも小さい視野を含み、かつ/または視野の一部分が切り取られているとき、視野および/またはクロッピングに適応するようにスケーリング係数αおよびβが導入されることが可能である(切り取られた魚眼画像の一例については図1を参照)。視野が、たとえばすべての方向において220度のような対称であるとき、αおよびβは同じであることが可能である(たとえば、両方が180/220に等しい)。視野が非対称であるとき、αおよび/またはβは非対称性に適応する値に設定することができる。たとえば、図1の例では視野が180度であると想定すると、βは1に設定することができ、αは180/nに設定することができ、ただしnは画像の中心からフレームの切り取られた上縁部または下縁部までの距離である。
【0074】
αおよびβを用いると、(u'',v'')として表現される画像602の中の点を決定するための式は、次式を使用して決定することができる。
【数5】
【0075】
上式において、r'は上記で説明したように決定することができる。
【0076】
図7Aおよび図7Bは、補正を用いてレンダリングされた画像および補正を用いずにレンダリングされた画像の例を示す。図7Aの例では、画像702は、カメラによって引き起こされたひずみに対するいかなる補正も用いずに全方向性カメラによってキャプチャされたものとしてレンダリングされる。この例によって示されるように、シーンの中の建物および通路がまっすぐであるのではなく消失点に向かって曲がるように画像702はワープされる。
【0077】
図7Bの例では、画像710は、上記で説明した技法を使用してレンダリングされる。この例示的な画像710では、建物および建物の正面の通路の縁部は、実世界において出現することになるようにまっすぐである。例示的な画像710は、明快のためかつ理解しやすいように、ここでは2次元かつ形状が長方形として示される。例示的な画像710は、上記のように3次元半球状表現にレンダリングされており、取得された補正がここで図示される。
【0078】
様々な実装形態では、上記で説明した多項式モデルに関連するパラメータの一部または全部は、全方向性カメラを使用してキャプチャされた画像データとともに伝達することができる。これらのパラメータは、特に多項式係数ai(i=0,1,2,...N)、多項式次数N、スケーリングパラメータk0、k1、ならびに/またはスケーリングパラメータαおよびβを含む。ビデオデータに含まれるとき、これらのパラメータは、次いでビデオフレームの中の魚眼画像を360度ビデオプレゼンテーション用の半球状表現にレンダリングするために使用することができる。いくつかの実装形態では、パラメータは、カメラによってキャプチャされた2次元画像を3次元表現にマッピングするためにビデオキャプチャデバイスにおいて使用することができる。3次元表現は、次いで記憶および/または送信のために符号化することができる。いくつかの実装形態では、2次元画像は、記憶および/または送信のために符号化することができ、レシーバデバイスは、360度ビデオプレゼンテーション向けに画像をレンダリングするために画像を復号するとともにパラメータを使用することができる。
【0079】
モデルパラメータを伝達するために、様々な方法が使用されることが可能である。たとえば、パラメータは、ビットストリームの構文的な構造を使用してビデオビットストリームの中に含めることができる。たとえば、パラメータは、1つまたは複数の補足エンハンスメント情報(SEI)メッセージの中に含めることができる。別の例として、パラメータは、360度ビデオを記憶するために使用されるファイルフォーマットの中へ組み込むことができる。別の例として、パラメータは、特別なネットワークプロトコル拡張の中へ組み込むことができる。
【0080】
様々な実装形態では、同じ結果を達成するために、上記で説明した多項式モデルの代替形態を使用することができる。たとえば、代替のパラメータを使用する区分線形モデルなどの多項式モデルの近似も使用することができる。
【0081】
図8は、360度ビデオプレゼンテーションにおける表示のために、2次元魚眼画像を3次元半球状表現にマッピングするためのプロセス800の一例を示すフローチャートである。802において、プロセス800は、全方向性カメラによってキャプチャされた2次元ビデオデータを取得することを含み、2次元ビデオデータはシーンの画像を含み、画像の中で、シーンは画像の円形領域の中へワープされている。いくつかの実装形態では、ワープは半径方向に直線的であってよく、すなわち画像は円形領域の中心から外縁部まで一様にゆがむ。場合によっては、画像が、中心において存在するよりも大きい圧縮を円形領域の外縁部に向かって含むようにワープは非直線的であってよい。
【0082】
いくつかの実装形態では、ビデオデータは、符号化ビットストリームから取得される。これらの実装形態では、符号化ビットストリームは、画像のワープを記述するパラメータを含むことができる。これらのパラメータは、たとえば特に多項式次数、多項式係数、多項式スケーリングパラメータ、またはマッピングスケーリングパラメータを含むことができる。いくつかの実装形態では、パラメータは、符号化ビットストリームの中のSEIメッセージから取得することができる。いくつかの実装形態では、パラメータは、符号化ビットストリームを含むファイルの中に含まれることが可能である。これらの実装形態では、ファイルは、パラメータを記憶するためのデータ構造を含むことができる。
【0083】
804において、プロセス800は、画像を3次元半球状表現にマッピングすることを含み、画像をマッピングすることは、画像の円形領域の中のピクセルを3次元半球状表現上の対応するロケーションにマッピングすることを含み、画像をマッピングすることは、シーンのワープを補正する。いくつかの実装形態では、画像をマッピングすることは、画像の中の点を3次元半球状表現上の対応する点に投影するための多項式を使用することを含む。画像の中の点は、3次元半球状表現上の点にマッピングすべきピクセルを提供することができる。
【0084】
いくつかの実装形態では、円形領域の中への画像のワープは非直線的であってよい。これらの実装形態では、画像を3次元半球状表現にマッピングすることは、調整された半径方向値を使用して2次元画像の中のピクセルに対する座標を決定することを含むことができる。調整された半径方向値は、ワープの非直線性に対応することができる。たとえば、調整された半径方向値は、画像の中心から外縁部まで非直線的に増大する。調整された半径方向値を使用して決定された座標は、次いで画像から半球状表現にピクセルをマッピングするために使用することができる。
【0085】
いくつかの実装形態では、画像は、180度よりも大きい視野を含む。これらの実装形態では、プロセス800は、視野にしたがってスケーリングされている半径方向値を使用して2次元画像の中のピクセルに対する座標をしたがって調整することをさらに含む。座標は、次いで画像から半球状表現にピクセルをマッピングするために使用することができる。いくつかの実装形態では、画像は180度以下の視野を含む。
【0086】
806において、プロセスは、3次元半球状表現を360度ビデオプレゼンテーションにおいて使用することを含む。たとえば、3次元半球状表現は、ビデオディスプレイデバイスによる表示のためにレンダリングすることができる。代替または追加として、3次元半球状表現は、記憶および/または送信のために符号化することができ、ここで符号化データは、後で復号および表示することができる。
【0087】
いくつかの実装形態では、プロセス800は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、携帯情報端末、あるいはワイヤレスをネットワークに接続することができ、かつ/または容易にトランスポートされるのに十分に小型かつ軽量である任意の他の種類のコンピューティングデバイスなどのモバイルデバイスにおいて実施されることが可能である。これらの実装形態では、モバイルデバイスは、360度ビデオをキャプチャするための全方向性カメラを含むことができる。いくつかの実装形態では、モバイルデバイスは、360度ビデオを表示するためのディスプレイを含むことができる。
【0088】
いくつかの例では、プロセス800は、図9に関して以下で説明するシステムなどのコンピューティングデバイスまたは装置によって実行されてよい。たとえば、プロセス800は、図9に示すシステム900および/またはストレージ908もしくは出力部910によって実行することができる。場合によっては、コンピューティングデバイスまたは装置は、図8のプロセス800のステップを実行するように構成されているデバイスのプロセッサ、マイクロプロセッサ、マイクロコンピュータ、または他の構成要素を含んでよい。いくつかの例では、コンピューティングデバイスまたは装置は、ビデオフレームを含むビデオデータ(たとえば、ビデオシーケンス)をキャプチャするように構成されるカメラを含んでよい。たとえば、コンピューティングデバイスは、ビデオコーデックを含んでよいカメラデバイス(たとえば、全方向性カメラ、または他のタイプのカメラデバイス)を含んでよい。いくつかの例では、ビデオデータをキャプチャするカメラまたは他のキャプチャデバイスは、コンピューティングデバイスとは別個であり、その場合、コンピューティングデバイスは、キャプチャされたビデオデータを受信する。コンピューティングデバイスは、ビデオデータを通信するように構成されるネットワークインターフェースをさらに含んでもよい。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは任意の他の好適なタイプのデータを通信するように構成されてよい。
【0089】
プロセス800は、論理フロー図として図示され、その動作は、ハードウェア、コンピュータ命令、またはそれらの組合せで実施されてもよい動作のシーケンスを表す。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されたとき、説明する動作を実行する1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。一般的に、コンピュータ実行可能命令は、特定の機能を実行し、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が説明される順序は、限定として解釈されることを意図せず、説明される任意の数の動作は、プロセスを実施するために任意の順序で、かつ/または並列に組み合わせられてよい。
【0090】
追加として、プロセス800は、実行可能命令とともに構成される1つまたは複数のコンピュータシステムの制御下で実行されてよく、ハードウェアまたはその組合せによって1つまたは複数のプロセッサ上で集合的に実行するコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実装されてよい。上述のように、コードは、たとえば1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体または機械可読記憶媒体に記憶されてもよい。コンピュータ可読記憶媒体または機械可読記憶媒体は非一時的であってよい。
【0091】
図9は、符号化デバイス904および復号デバイス912を含むシステム900の一例を示すブロック図である。符号化デバイス904はソースデバイスの一部であってよく、復号デバイス912は受信デバイスの一部であってよい。ソースデバイスおよび/または受信デバイスは、モバイルもしくは固定の電話ハンドセット(たとえば、スマートフォン、セルラー電話など)、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、または任意の他の適切な電子デバイスなどの電子デバイスを含んでもよい。いくつかの例では、ソースデバイスおよび受信デバイスは、ワイヤレス通信用の1つまたは複数のワイヤレストランシーバを含んでもよい。本明細書で説明するコーディング技法は、(たとえば、インターネットを介した)ストリーミングビデオ送信、テレビジョン放送もしくは送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例を含む様々なマルチメディア用途におけるビデオコーディングに適用可能である。いくつかの例では、システム900は、ビデオ会議、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、ゲーミング、および/またはビデオ電話などの適用例をサポートするために一方向または双方向のビデオ送信をサポートすることができる。
【0092】
符号化デバイス904(すなわち、エンコーダ)は、符号化ビデオビットストリームを生成するためのビデオコーディング規格またはビデオコーディングプロトコルを使用して仮想現実ビデオデータを含むビデオデータを符号化するために使用されてもよい。ビデオコーディング規格は、ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262またはISO/IEC MPEG-2 Visual、ITU-T H.263、それぞれ、SVCおよびMVCと呼ばれるそのスケーラブルビデオコーディングおよびマルチビュービデオコーディング拡張を含むISO/IEC MPEG-4 VisualおよびITU-T H.264(ISO/IEC MPEG-4 AVCとも呼ばれる)を含む。より最近のビデオコーディング規格、すなわち高効率ビデオコーディング(HEVC)が、ITU-Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECムービングピクチャエキスパートグループ(MPEG)とのビデオコーディング共同研究部会(JCT-VC)によって確定された。MV-HEVCと呼ばれるHEVCのマルチビュー拡張、およびSHVCと呼ばれるHEVCのスケーラブル拡張、または任意の他の適切なコーディングプロトコルを含むHEVCの様々な拡張が、マルチレイヤビデオコーディングを扱い、同様にJCT-VCによって開発されている。
【0093】
本明細書で説明する実装形態は、HEVC規格またはそれの拡張を使用する例を説明する。しかしながら、本明細書で説明する技法およびシステムはまた、AVC、MPEG、それらの拡張、あるいはすでに利用可能であるかまたはまだ利用可能もしくは開発済みでない他の適切なコーディング規格などの他のコーディング規格に適用可能であってもよい。したがって、本明細書で説明する技法およびシステムは特定のビデオコーディング規格を参照しながら説明されてもよいが、説明がその特定の規格だけに適用されるものと解釈されるべきでないことを当業者なら了解されよう。
【0094】
ビデオソース902は、符号化デバイス904にビデオデータを提供してもよい。ビデオソース902は、ソースデバイスの一部であってよく、またはソースデバイス以外のデバイスの一部であってもよい。ビデオソース902は、ビデオキャプチャデバイス(たとえば、ビデオカメラ、カメラ付き携帯電話、ビデオ付き携帯電話など)、記憶されたビデオを含むビデオアーカイブ、ビデオデータを提供するビデオサーバもしくはコンテンツプロバイダ、ビデオサーバもしくはコンテンツプロバイダからビデオを受信するビデオフィードインターフェース、コンピュータグラフィックスビデオデータを生成するためのコンピュータグラフィックスシステム、そのようなソースの組合せ、または任意の他の適切なビデオソースを含んでもよい。ビデオソース902の一例は、インターネットプロトコルカメラ(IPカメラ)を含むことができる。IPカメラは、監視、ホームセキュリティ、または他の好適な適用例のために使用されてもよいタイプのデジタルビデオカメラである。アナログ閉回路テレビジョン(CCTV:closed circuit television)カメラとは異なり、IPカメラは、コンピュータネットワークおよびインターネットを経由してデータを送ることができ、または受信することができる。
【0095】
ビデオソース902からのビデオデータは、1つまたは複数の入力ピクチャまたは入力フレームを含んでもよい。ピクチャまたはフレームは、ビデオの一部である静止画像である。符号化デバイス904のエンコーダエンジン906(または、エンコーダ)は、ビデオデータを符号化して符号化ビデオビットストリームを生成する。いくつかの例では、符号化ビデオビットストリーム(または、「ビデオビットストリーム」もしくは「ビットストリーム」)は、一連の1つまたは複数のコード化ビデオシーケンスである。コード化ビデオシーケンス(CVS:coded video sequence)は、ベースレイヤの中でいくつかの特性を伴うランダムアクセスポイントピクチャを有するアクセスユニット(AU:access unit)で開始し、ベースレイヤの中でいくつかの特性を伴うランダムアクセスポイントピクチャを有する次のAUの直前までの一連のAUを含む。たとえば、CVSを開始するランダムアクセスポイントピクチャのいくつかの特性は、1に等しいRASLフラグ(たとえば、NoRaslOutputFlag)を含んでもよい。そうでない場合、ランダムアクセスポイントピクチャ(0に等しいRASLフラグを有する)はCVSを開始しない。アクセスユニット(AU)は、1つまたは複数のコード化ピクチャ、および同じ出力時間を共有するコード化ピクチャに対応する制御情報を含む。ピクチャのコード化スライスは、ビットストリームレベルで、ネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニットと呼ばれるデータ単位の中にカプセル化される。たとえば、HEVCビデオビットストリームは、NALユニットを含む1つまたは複数のCVSを含んでもよい。ビデオコーディングレイヤ(VCL)NALユニットおよび非VCL NALユニットを含む、NALユニットの2つのクラスがHEVC規格に存在する。VCL NALユニットは、コード化ピクチャデータの1つのスライスまたはスライスセグメント(以下で説明する)を含み、非VCL NALユニットは、1つまたは複数のコード化ピクチャに関係する制御情報を含む。
【0096】
NALユニットは、ビデオの中のピクチャのコード化表現などのビデオデータのコード化表現(たとえば、符号化ビデオビットストリーム、ビットストリームのCVSなど)を形成するビットのシーケンスを含んでもよい。エンコーダエンジン906は、各ピクチャを複数のスライスに区分することによって、ピクチャのコード化表現を生成する。スライスは、次いでルーマサンプルおよびクロマサンプルのコーディングツリーブロック(CTB:coding tree block)に区分される。ルーマサンプルのCTB、およびクロマサンプルの1つまたは複数のCTBは、サンプル用のシンタックスとともにコーディングツリーユニット(CTU:coding tree unit)と呼ばれる。CTUは、HEVC符号化のための基本処理ユニットである。CTUは、様々なサイズの複数のコーディングユニット(CU:coding unit)に分割されてもよい。CUは、コーディングブロック(CB:coding block)と呼ばれるルーマサンプルアレイおよびクロマサンプルアレイを含む。
【0097】
ルーマCBおよびクロマCBは、予測ブロック(PB:prediction block)にさらに分割されてもよい。PBは、インター予測のために同じ動きパラメータを使用するルーマまたはクロマ成分のサンプルのブロックである。ルーマPBおよび1つまたは複数のクロマPBは、関連するシンタックスとともに予測ユニット(PU:prediction unit)を形成する。動きパラメータのセットは、PUごとにビットストリームの中でシグナリングされ、ルーマPBおよび1つまたは複数のクロマPBのインター予測のために使用される。CBはまた、1つまたは複数の変換ブロック(TB:transform block)に区分されてもよい。TBは、予測残差信号をコーディングするために同じ2次元変換がそこに適用される、色成分のサンプルの正方形ブロックを表す。変換ユニット(TU:transform unit)は、ルーマサンプルおよびクロマサンプルのTB、ならびに対応するシンタックス要素を表す。
【0098】
CUのサイズは、コーディングノードのサイズに対応し、形状が正方形であってもよい。たとえば、CUのサイズは、8×8サンプル、16×16サンプル、32×32サンプル、64×64サンプル、または対応するCTUのサイズまでの任意の他の適切なサイズであってよい。本明細書では、"N×N"という句は、垂直寸法および水平寸法に関してビデオブロックのピクセル寸法(たとえば、8ピクセル×8ピクセル)を指すために使用される。ブロックの中のピクセルは、行および列をなして配置されてよい。いくつかの実施形態では、ブロックは、水平方向において垂直方向と同じ数のピクセルを有しなくてよい。CUに関連するシンタックスデータは、たとえば1つまたは複数のPUへのCUの区分を記述してもよい。区分モードは、CUがイントラ予測モード符号化されるのか、それともインター予測モード符号化されるのかの間で異なる場合がある。PUは、形状が非正方形であるように区分されてよい。CUに関連するシンタックスデータはまた、たとえばCTUによる1つまたは複数のTUへのCUの区分を記述してもよい。TUは、形状が正方形または非正方形であってよい。
【0099】
HEVC規格によれば、変換は、変換ユニット(TU)を使用して実行されてもよい。TUは、異なるCUに対して異なってよい。TUは、所与のCU内のPUのサイズに基づいてサイズ決定されてもよい。TUは、同じサイズであってよく、またはPUより小さくてよい。いくつかの例では、CUに対応する残差サンプルは、残差4分木(RQT:residual quad tree)と呼ばれる4分木構造を使用して、より小さいユニットに再分割されてもよい。RQTのリーフノードは、TUに対応してもよい。TUに関連するピクセル差分値は、変換係数を生成するように変換されてもよい。変換係数は、次いでエンコーダエンジン906によって量子化されてもよい。
【0100】
ビデオデータのピクチャがCUに区分されると、エンコーダエンジン906は、予測モードを使用して各PUを予測する。予測は、次いで残差(以下で説明する)を得るために元のビデオデータから減算される。CUごとに、予測モードが、シンタックスデータを使用してビットストリームの内部でシグナリングされてもよい。予測モードは、イントラ予測(または、イントラピクチャ予測)またはインター予測(または、インターピクチャ予測)を含んでもよい。イントラ予測を使用すると、たとえばPUにとっての平均値を見つけるためのDC予測、平坦面をPUに適合させるための平面予測、隣接データから外挿するための方向予測、または任意の他の適切なタイプの予測を使用して、同じピクチャの中の隣接画像データから各PUが予測される。インター予測を使用すると、1つまたは複数の(出力順序において現在ピクチャの前または後の)参照ピクチャの中の画像データからの動き補償予測を使用して、各PUが予測される。ピクチャエリアを、インターピクチャ予測を使用してコーディングすべきか、それともイントラピクチャ予測を使用してコーディングすべきかという決定は、たとえばCUレベルにおいて行われてもよい。いくつかの例では、ピクチャの1つまたは複数のスライスは、スライスタイプが割り当てられる。スライスタイプは、Iスライス、Pスライス、およびBスライスを含む。Iスライス(独立に復号可能なイントラフレーム)は、イントラ予測のみによってコーディングされているピクチャのスライスであり、したがってIスライスがスライスの任意のブロックを予測するのにフレーム内のデータしか必要としないので、独立に復号可能である。Pスライス(単方向予測フレーム)は、イントラ予測および単方向インター予測を用いてコーディングされてもよいピクチャのスライスである。Pスライス内の各ブロックは、イントラ予測またはインター予測のいずれかを用いてコーディングされる。インター予測が適用されるとき、ブロックは、1つの参照ピクチャのみによって予測され、したがって参照サンプルは、1つのフレームの1つの参照領域だけからのものである。Bスライス(双方向予測フレーム)は、イントラ予測およびインター予測を用いてコーディングされてもよいピクチャのスライスである。Bスライスのブロックは、2つの参照ピクチャから双方向に予測されてもよく、ここで各ピクチャは1つの参照領域に寄与し、2つの参照領域のサンプルセットが重み付けられて(たとえば、等しい重みを用いて)、双方向予測ブロックの予測信号を生成する。上述のように、1つのピクチャのスライスは、独立にコーディングされる。場合によっては、ピクチャは、ただ1つのスライスとしてコーディングされてもよい。
【0101】
PUは、予測プロセスに関係するデータを含んでもよい。たとえば、PUがイントラ予測を使用して符号化されるとき、PUは、PU用のイントラ予測モードを記述するデータを含んでもよい。別の例として、PUがインター予測を使用して符号化されるとき、PUは、PU用の動きベクトルを規定するデータを含んでもよい。PU用の動きベクトルを規定するデータは、たとえば動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルに対する分解能(たとえば、1/4ピクセル精度、または1/8ピクセル精度)、動きベクトルが指す参照ピクチャ、および/または動きベクトル用の参照ピクチャリスト(たとえば、リスト0、リスト1、またはリストC)を記述してもよい。
【0102】
符号化デバイス904は、次いで変換および量子化を実行してもよい。たとえば、予測に続いて、エンコーダエンジン906は、PUに対応する残差値を計算してもよい。残差値は、ピクセル差分値を備えてもよい。予測が実行された後に残ることがある任意の残差データは、ブロック変換を使用して変換され、ブロック変換は、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、または他の適切な変換関数に基づいてもよい。場合によっては、1つまたは複数のブロック変換(たとえば、サイズ32×32、16×16、8×8、4×4など)が、各CUにおける残差データに適用されてもよい。いくつかの実施形態では、エンコーダエンジン906によって実施される変換プロセスおよび量子化プロセスのためにTUが使用されてよい。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数のTUを含んでもよい。以下でさらに詳細に説明するように、残差値は、ブロック変換を使用して変換係数に変換されてもよく、次いでエントロピーコーディングのためのシリアル化変換係数を生成するために、TUを使用して量子化および走査されてもよい。
【0103】
いくつかの実施形態では、CUのPUを使用するイントラ予測コーディングまたはインター予測コーディングに続いて、エンコーダエンジン906は、CUのTUに対する残差データを計算してもよい。PUは、空間領域(すなわち、ピクセル領域)におけるピクセルデータを備えてもよい。TUは、ブロック変換を適用した後の、変換領域における係数を備えてもよい。前記のように、残差データは、符号化されていないピクチャのピクセルとPUに対応する予測値との間のピクセル差分値に相当してもよい。エンコーダエンジン906は、CUに対する残差データを含むTUを形成してもよく、次いでTUを変換してCUに対する変換係数を生成してもよい。
【0104】
エンコーダエンジン906は、変換係数の量子化を実行してもよい。量子化は、変換係数を量子化することによってさらなる圧縮をもたらして、係数を表すために使用されるデータの量を低減する。たとえば、量子化は、係数の一部または全部に関連するビット深度を低減してもよい。一例では、nビット値を有する係数は、量子化の間にmビット値に切り捨てられてよく、nはmよりも大きい。
【0105】
量子化が実行されると、コード化ビデオビットストリームは、量子化変換係数、予測情報(たとえば、予測モード、動きベクトルなど)、区分情報、および他のシンタックスデータなどの任意の他の適切なデータを含む。コード化ビデオビットストリームの様々な要素が、次いでエンコーダエンジン906によってエントロピー符号化されてもよい。いくつかの例では、エンコーダエンジン906は、既定の走査順序を利用して量子化変換係数を走査して、エントロピー符号化されてもよいシリアル化ベクトルを生成してもよい。いくつかの例では、エンコーダエンジン906は適応走査を実行してもよい。量子化変換係数を走査してベクトル(たとえば、1次元ベクトル)を形成した後、エンコーダエンジン906は、ベクトルをエントロピー符号化してもよい。たとえば、エンコーダエンジン906は、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースコンテキスト適応型バイナリ算術コーディング、確率間隔区分エントロピーコーディング、または別の適切なエントロピー符号化技法を使用してよい。
【0106】
符号化デバイス904の出力部910は、符号化ビデオビットストリームデータを構成するNALユニットを、通信リンク920を介して受信デバイスの復号デバイス912へ送ってもよい。復号デバイス912の入力部914は、NALユニットを受信してもよい。通信リンク920は、ワイヤレスネットワーク、有線ネットワーク、または有線ネットワークとワイヤレスネットワークとの組合せによって設けられるチャネルを含んでもよい。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含んでよく、任意の適切なワイヤレスネットワーク(たとえば、インターネットまたは他のワイドエリアネットワーク、パケットベースネットワーク、WiFi(商標)、無線周波数(RF)、UWB、WiFi-Direct、セルラー、ロングタームエボリューション(LTE)、WiMax(商標)など)を含んでよい。有線ネットワークは、任意の有線インターフェース(たとえば、ファイバ、イーサネット(登録商標)、電力線イーサネット(登録商標)、同軸ケーブルを介したイーサネット(登録商標)、デジタル信号ライン(DSL)など)を含んでよい。有線ネットワークおよび/またはワイヤレスネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチなどの様々な機器を使用して実装されてもよい。符号化ビデオビットストリームデータは、ワイヤレス通信プロトコルなどの通信規格にしたがって変調されてよく、受信デバイスへ送信されてよい。
【0107】
いくつかの例では、符号化デバイス904は、符号化ビデオビットストリームデータをストレージ908に記憶してもよい。出力部910は、エンコーダエンジン906から、またはストレージ908から、符号化ビデオビットストリームデータを取り出してもよい。ストレージ908は、分散されるかまたは局所的にアクセスされる様々なデータ記憶媒体のうちのいずれかを含んでもよい。たとえば、ストレージ908は、ハードドライブ、ストレージディスク、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体を含んでもよい。
【0108】
復号デバイス912の入力部914は、符号化ビデオビットストリームデータを受信し、デコーダエンジン916に、またはデコーダエンジン916によって後で使用できるようにストレージ918にビデオビットストリームデータを提供してもよい。デコーダエンジン916は、エントロピー復号すること(たとえば、エントロピーデコーダを使用して)、および符号化ビデオデータを構成する1つまたは複数のコード化ビデオシーケンスの要素を抽出することによって、符号化ビデオビットストリームデータを復号してもよい。デコーダエンジン916は、次いで符号化ビデオビットストリームデータを再スケーリングしてもよく、符号化ビデオビットストリームデータにおいて逆変換を実行してもよい。残差データが、次いでデコーダエンジン916の予測ステージに渡される。デコーダエンジン916は、次いでピクセルのブロック(たとえば、PU)を予測する。いくつかの例では、逆変換の出力(残差データ)に予測が加算される。
【0109】
復号デバイス912は、復号ビデオをビデオデスティネーションデバイス922に出力してもよく、ビデオデスティネーションデバイス922は、復号ビデオデータをコンテンツの消費者に表示するためのディスプレイまたは他の出力デバイスを含んでもよい。いくつかの態様では、ビデオデスティネーションデバイス922は、復号デバイス912を含む受信デバイスの一部であってよい。いくつかの態様では、ビデオデスティネーションデバイス922は、受信デバイス以外の別個のデバイスの一部であってよい。
【0110】
補足エンハンスメント情報(SEI:Supplemental Enhancement information)メッセージが、ビデオビットストリームの中に含まれてもよい。たとえば、SEIメッセージは、復号デバイス912によってビットストリームを復号するために必須でない情報(たとえば、メタデータ)を搬送するために使用されてもよい。この情報は、復号された出力の表示または処理を改善する際に有用である(たとえば、そのような情報は、コンテンツの視認性を改善するためにデコーダ側エンティティによって使用されてもよい)。
【0111】
いくつかの実施形態では、ビデオ符号化デバイス904および/またはビデオ復号デバイス912は、それぞれ、オーディオ符号化デバイスおよびオーディオ復号デバイスと統合されてよい。ビデオ符号化デバイス904および/またはビデオ復号デバイス912はまた、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなどの上記で説明したコーディング技法を実施するために必要な他のハードウェアまたはソフトウェアを含んでよい。ビデオ符号化デバイス904およびビデオ復号デバイス912は、複合エンコーダ/デコーダ(コーデック)の一部としてそれぞれのデバイスの中に統合されてよい。
【0112】
HEVC規格の拡張は、MV-HEVCと呼ばれるマルチビュービデオコーディング拡張、およびSHVCと呼ばれるスケーラブルビデオコーディング拡張を含む。MV-HEVC拡張およびSHVC拡張は階層化コーディングの概念を共有し、異なるレイヤが符号化ビデオビットストリームの中に含まれる。コード化ビデオシーケンスの中の各レイヤは、固有のレイヤ識別子(ID)によってアドレス指定される。レイヤIDは、NALユニットが関連付けられているレイヤを識別するために、NALユニットのヘッダの中に存在してもよい。MV-HEVCでは、異なるレイヤは、ビデオビットストリームの中で同じシーンの異なるビューを表すことができる。SHVCでは、異なる空間解像度(すなわち、ピクチャ解像度)で、または異なる再構成忠実度でビデオビットストリームを表す異なるスケーラブルレイヤが提供される。スケーラブルレイヤは、(レイヤID=0である)ベースレイヤ、および(レイヤID=1、2、...nである)1つまたは複数のエンハンスメントレイヤを含んでもよい。ベースレイヤは、HEVCの第1のバージョンのプロファイルに準拠してもよく、ビットストリームの中の最低利用可能レイヤを表す。エンハンスメントレイヤは、ベースレイヤと比較して増大した空間解像度、時間分解能もしくはフレームレート、および/または再構成忠実度(すなわち、品質)を有する。エンハンスメントレイヤは、階層的に編成され、下位レイヤに依存することがある(または、依存しないこともある)。いくつかの例では、異なるレイヤは、単一標準コーデックを使用してコーディングされてもよい(たとえば、すべてのレイヤが、HEVC、SHVC、または他のコーディング規格を使用して符号化される)。いくつかの例では、異なるレイヤは、多標準コーデックを使用してコーディングされてもよい。たとえば、ベースレイヤがAVCを使用してコーディングされてよく、1つまたは複数のエンハンスメントレイヤがHEVC規格に対するSHVC拡張および/またはMV-HEVC拡張を使用してコーディングされてよい。一般的に、レイヤは、VCL NALユニットのセット、および非VCL NALユニットの対応するセットを含む。NALユニットは、特定のレイヤID値が割り当てられる。レイヤが下位レイヤに依存することがあるという意味で、レイヤは階層的であってもよい。
【0113】
一般的に、レイヤは、VCL NALユニットのセット、および非VCL NALユニットの対応するセットを含む。NALユニットは、特定のレイヤID値が割り当てられる。レイヤが下位レイヤに依存することがあるという意味でレイヤは階層的であってもよい。レイヤセットは、自蔵式であるビットストリーム内で表されるレイヤのセットを参照し、自蔵式とは、レイヤセット内のレイヤが、復号プロセスにおいてレイヤセットの中の他のレイヤに依存してもよいが、いかなる他のレイヤにも復号のために依存しないことを意味する。したがって、レイヤセットの中のレイヤは、ビデオコンテンツを表すことができる独立したビットストリームを形成することができる。レイヤセットの中のレイヤのセットは、サブビットストリーム抽出プロセスの動作によって別のビットストリームから取得されてもよい。レイヤセットは、いくつかのパラメータにしたがって動作することをデコーダが望むときに復号されるべきレイヤのセットに相当してもよい。
【0114】
カメラ(たとえば、魚眼カメラまたは他の全方向性カメラ)によってキャプチャされるビデオデータは、送信および記憶にとって必要なデータの量を低減するようにコーディングすることができる。コーディング技法は、例示的なビデオ符号化および復号システム(たとえば、システム900)において実施されてよい。いくつかの例では、システムは、デスティネーションデバイスによって後で復号されるべき符号化ビデオデータを提供するソースデバイスを含む。具体的には、ソースデバイスは、コンピュータ可読媒体を介してデスティネーションデバイスにビデオデータを提供する。ソースデバイスおよびデスティネーションデバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む幅広いデバイスのいずれかを備えてよい。場合によっては、ソースデバイスおよびデスティネーションデバイスは、ワイヤレス通信のために装備されてよい。
【0115】
符号化デバイス1004および復号デバイス1112の具体的な詳細が、それぞれ、図10および図11に示される。図10は、本開示で説明する技法のうちの1つまたは複数を実施してもよい例示的な符号化デバイス1004を示すブロック図である。符号化デバイス1004は、たとえば本明細書で説明するシンタックス構造(たとえば、VPS、SPS、PPS、または他のシンタックス要素のシンタックス構造)を生成してもよい。符号化デバイス1004は、ビデオスライス内のビデオブロックのイントラ予測コーディングおよびインター予測コーディングを実行してもよい。前に説明したように、イントラコーディングは、所与のビデオフレーム内またはピクチャ内の空間的冗長性を低減または除去するために、空間予測に少なくとも部分的に依拠する。インターコーディングは、ビデオシーケンスの隣接するまたは取り囲むフレーム内の時間的冗長性を低減または除去するために、時間予測に少なくとも部分的に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのうちのいずれかを指してもよい。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのうちのいずれかを指してもよい。
【0116】
符号化デバイス1004は、パーティショニングユニット35、予測処理ユニット41、フィルタユニット63、ピクチャメモリ64、加算器50、変換処理ユニット52、量子化ユニット54、およびエントロピー符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、およびイントラ予測処理ユニット46を含む。ビデオブロック再構成のために、符号化デバイス1004はまた、逆量子化ユニット58、逆変換処理ユニット60、および加算器62を含む。フィルタユニット63は、デブロッキングフィルタ、適応ループフィルタ(ALF:adaptive loop filter)、およびサンプル適応オフセット(SAO)フィルタなどの1つまたは複数のループフィルタを表すことを意図する。フィルタユニット63がループ内フィルタであるものとして図10に示されるが、他の構成では、フィルタユニット63はループ後フィルタとして実装されてよい。後処理デバイス57は、符号化デバイス1004によって生成された符号化ビデオデータに、さらなる処理を実行してもよい。本開示の技法は、いくつかの事例では、符号化デバイス1004によって実施されてもよい。しかしながら、他の事例では、本開示の技法のうちの1つまたは複数は、後処理デバイス57によって実施されてよい。
【0117】
図10に示すように、符号化デバイス1004はビデオデータを受信し、パーティショニングユニット35はデータをビデオブロックに区分する。区分することはまた、スライス、スライスセグメント、タイル、または他のもっと大きいユニットに区分すること、ならびに、たとえばLCUおよびCUの4分木構造によるビデオブロック区分を含んでもよい。符号化デバイス1004は、一般的に符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示す。スライスは、複数のビデオブロックに(また場合によっては、タイルと呼ばれるビデオブロックのセットに)分割されてもよい。予測処理ユニット41は、エラー結果(たとえば、コーディングレート、およびひずみのレベルなど)に基づいて、現在ビデオブロックに対して、複数のイントラ予測コーディングモードのうちの1つ、または複数のインター予測コーディングモードのうちの1つなどの複数の可能なコーディングモードのうちの1つを選択してもよい。予測処理ユニット41は、残差ブロックデータを生成するために加算器50に、また参照ピクチャとして使用するための符号化ブロックを再構成するために加算器62に、得られたイントラまたはインターコード化ブロックを提供してもよい。
【0118】
予測処理ユニット41内のイントラ予測処理ユニット46は、空間的な圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライスの中の1つまたは複数の隣接ブロックに対する現在ビデオブロックのイントラ予測コーディングを実行してもよい。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間的な圧縮を行うために、1つまたは複数の参照ピクチャの中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実行する。
【0119】
動き推定ユニット42は、ビデオシーケンスにとっての所定のパターンにしたがってビデオスライス用のインター予測モードを決定するように構成されてもよい。所定のパターンは、シーケンスの中のビデオスライスを、Pスライス、Bスライス、またはGPBスライスとして指定してもよい。動き推定ユニット42および動き補償ユニット44は高集積されてもよいが、概念的な目的のために別個に図示される。動き推定ユニット42によって実行される動き推定は、ビデオブロックにとっての動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば現在ビデオフレーム内または現在ピクチャ内のビデオブロックの予測ユニット(PU)の参照ピクチャ内の予測ブロックに対する変位を示してもよい。
【0120】
予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、または他の差分メトリックによって決定されてもよいピクセル差分の観点で、コーディングされるべきビデオブロックのPUと密接に整合するように見出されたブロックである。いくつかの例では、符号化デバイス1104は、ピクチャメモリ64に記憶された参照ピクチャのサブ整数ピクセル位置に対する値を計算してもよい。たとえば、符号化デバイス1104は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間してもよい。したがって、動き推定ユニット42は、フルピクセル位置および分数ピクセル位置に対する動き探索を実行してもよく、分数ピクセル精度を有する動きベクトルを出力してもよい。
【0121】
動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスの中のビデオブロックのPU用の動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択されてよく、その各々はピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44へ送る。
【0122】
動き補償ユニット44によって実行される動き補償は、場合によってはサブピクセル精度への補間を実行する動き推定によって決定される動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴ってもよい。現在ビデオブロックのPU用の動きベクトルを受信すると、動き補償ユニット44は、参照ピクチャリストの中で動きベクトルが指す予測ブロックの位置を特定してもよい。符号化デバイス1004は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックに対する残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含んでもよい。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際の図11の復号デバイス1112による使用のために、ビデオブロックおよびビデオスライスに関連付けられたシンタックス要素を生成してもよい。
【0123】
図10のイントラ予測処理ユニット46は、上記で説明したように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、現在ブロックをイントラ予測してもよい。具体的には、イントラ予測処理ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定してもよい。いくつかの例では、イントラ予測処理ユニット46は、たとえば別個の符号化パスの間、様々なイントラ予測モードを使用して現在ブロックを符号化してもよく、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから使用すべき適切なイントラ予測モードを選択してもよい。たとえば、イントラ予測処理ユニット46は、テストされた様々なイントラ予測モードに対してレートひずみ分析を使用してレートひずみ値を計算してもよく、テストされたモードの中から最良のレートひずみ特性を有するイントラ予測モードを選択してもよい。レートひずみ分析は、一般的に符号化ブロックと、符号化ブロックを生成するために符号化された、符号化されていない元のブロックとの間のひずみ(すなわち、エラー)の量、ならびに符号化ブロックを生成するために使用されるビットレート(すなわち、ビット数)を決定する。イントラ予測処理ユニット46は、どのイントラ予測モードがブロックにとって最良のレートひずみ値を示すのかを決定するために、様々な符号化ブロックに対するひずみおよびレートから比を計算してもよい。
【0124】
いずれの場合も、ブロック用のイントラ予測モードを選択した後、イントラ予測処理ユニット46は、ブロック用の選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供してもよい。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化してもよい。符号化デバイス1004は、様々なブロック用の符号化コンテキストの構成データ定義、ならびに最確のイントラ予測モード、イントラ予測モードインデックステーブル、およびコンテキストの各々に対して使用すべき修正されたイントラ予測モードインデックステーブルの表示を送信されるビットストリームの中に含めてもよい。ビットストリーム構成データは、複数のイントラ予測モードインデックステーブルおよび修正された複数のイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)を含んでもよい。
【0125】
予測処理ユニット41がインター予測またはイントラ予測のいずれかを介して現在ビデオブロックに対する予測ブロックを生成した後、符号化デバイス1004は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロックの中の残差ビデオデータは、1つまたは複数のTUの中に含められてよく、変換処理ユニット52に適用されてもよい。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、ピクセル領域から周波数領域などの変換領域に、残差ビデオデータを変換してもよい。
【0126】
変換処理ユニット52は、得られた変換係数を量子化ユニット54へ送ってもよい。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減してもよい。量子化の程度は、量子化パラメータを調整することによって変更されてもよい。いくつかの例では、量子化ユニット54は、次いで量子化変換係数を含む行列の走査を実行してもよい。代替として、エントロピー符号化ユニット56が走査を実行してもよい。
【0127】
量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:probability interval partitioning entropy)コーディング、または別のエントロピー符号化技法を実行してもよい。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、復号デバイス1112へ送信されてよく、または復号デバイス1112によって後で送信もしくは取出しができるようにアーカイブされてもよい。エントロピー符号化ユニット56はまた、コーディングされている現在ビデオスライス用の動きベクトルおよび他のシンタックス要素をエントロピー符号化してもよい。
【0128】
逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後で使用できるようにピクセル領域における残差ブロックを再構成するために、それぞれ、逆量子化および逆変換を適用する。動き補償ユニット44は、参照ピクチャリスト内の参照ピクチャのうちの1つの予測ブロックに残差ブロックを加算することによって、参照ブロックを計算してもよい。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、1つまたは複数の補間フィルタを再構成残差ブロックに適用してもよい。加算器62は、ピクチャメモリ64に記憶するための参照ブロックを生成するために、動き補償ユニット44によって生成された動き補償された予測ブロックに再構成残差ブロックを加算する。参照ブロックは、後続のビデオフレームまたはピクチャの中のブロックをインター予測するための参照ブロックとして、動き推定ユニット42および動き補償ユニット44によって使用されてもよい。
【0129】
このようにして、図10の符号化デバイス1004は、符号化ビデオビットストリームのためのシンタックスを生成するように構成されるビデオエンコーダの一例を表す。符号化デバイス1004は、たとえば上記で説明したように、VPS、SPS、およびPPSパラメータセットを生成してもよい。符号化デバイス1004は、図10および図11に関して上記で説明したプロセスを含む、本明細書で説明する技法のうちのいずれかを実行してもよい。本開示の技法が、一般的に符号化デバイス1004に関して説明されたが、上述のように、本開示の技法のいくつかはまた、後処理デバイス57によって実施されてよい。
【0130】
図11は、例示的な復号デバイス1112を示すブロック図である。復号デバイス1112は、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、フィルタユニット91、およびピクチャメモリ92を含む。予測処理ユニット81は、動き補償ユニット82およびイントラ予測処理ユニット84を含む。復号デバイス1112は、いくつかの例では、図10からの符号化デバイス1004に関して説明した符号化パスと一般的に相反の復号パスを実行してもよい。
【0131】
復号プロセスの間、図11の復号デバイス1112は、図10の符号化デバイス1004によって送られた符号化ビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化ビデオビットストリームを受信する。いくつかの実施形態では、図11の復号デバイス1112は、符号化デバイス1004から符号化ビデオビットストリームを受信してもよい。いくつかの実施形態では、復号デバイス1112は、サーバ、メディアアウェアネットワーク要素(MANE:media-aware network element)、ビデオエディタ/スプライサ、または上記で説明した技法のうちの1つもしくは複数を実施するように構成されるそのような他のデバイスなどのネットワークエンティティ79から符号化ビデオビットストリームを受信してもよい。ネットワークエンティティ79は、符号化デバイス1004を含んでよく、または含まなくてもよい。本開示で説明する技法のうちのいくつかは、ネットワークエンティティ79が符号化ビデオビットストリームを復号デバイス1112へ送信する前に、ネットワークエンティティ79によって実施されてもよい。いくつかのビデオ復号システムでは、ネットワークエンティティ79および復号デバイス1112は、別個のデバイスの一部であってよく、他の事例では、ネットワークエンティティ79に関して説明する機能は、復号デバイス1112を備える同じデバイスによって実行されてよい。
【0132】
復号デバイス1112のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他のシンタックス要素を生成するためにビットストリームをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルおよび他のシンタックス要素を予測処理ユニット81に転送する。復号デバイス1112は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信してもよい。エントロピー復号ユニット80は、VPSセット、SPSセット、およびPPSセットなどの1つまたは複数のパラメータセットの中の、固定長シンタックス要素と可変長シンタックス要素の両方を処理および構文解析してもよい。
【0133】
ビデオスライスがイントラコード化(I)スライスとしてコーディングされるとき、予測処理ユニット81のイントラ予測処理ユニット84は、シグナリングされたイントラ予測モード、および現在フレームまたは現在ピクチャの、前に復号されたブロックからのデータに基づいて、現在ビデオスライスのビデオブロックに対する予測データを生成してもよい。ビデオフレームがインターコード化(すなわち、B、P、またはGPB)スライスとしてコーディングされるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在ビデオスライスのビデオブロックに対する予測ブロックを生成する。予測ブロックは、参照ピクチャリスト内の参照ピクチャのうちの1つから生成されてもよい。復号デバイス1112は、ピクチャメモリ92に記憶された参照ピクチャに基づいてデフォルトの構成技法を使用して、参照フレームリスト、すなわちリスト0およびリスト1を構成してもよい。
【0134】
動き補償ユニット82は、動きベクトルおよび他のシンタックス要素を構文解析することによって、現在ビデオスライスのビデオブロックに対する予測情報を決定し、予測情報を使用して復号されている現在ビデオブロックに対する予測ブロックを生成する。たとえば、動き補償ユニット82は、パラメータセットの中の1つまたは複数のシンタックス要素を使用して、ビデオスライスのビデオブロックをコーディングするために使用された予測モード(たとえば、イントラ予測またはインター予測)、インター予測スライスタイプ(たとえば、Bスライス、Pスライス、またはGPBスライス)、スライスのための1つまたは複数の参照ピクチャリストに対する構成情報、スライスのインター符号化ビデオブロックごとの動きベクトル、スライスのインターコード化ビデオブロックごとのインター予測ステータス、および現在ビデオスライスの中のビデオブロックを復号するための他の情報を決定してもよい。
【0135】
動き補償ユニット82はまた、補間フィルタに基づいて補間を実行してもよい。動き補償ユニット82は、参照ブロックのサブ整数ピクセルに対する補間値を計算するために、ビデオブロックの符号化の間に符号化デバイス1004によって使用されたような補間フィルタを使用してもよい。この場合、動き補償ユニット82は、符号化デバイス1004によって使用された補間フィルタを、受信されたシンタックス要素から決定してもよく、予測ブロックを生成するためにその補間フィルタを使用してもよい。
【0136】
逆量子化ユニット86は、ビットストリームの中で提供されるとともにエントロピー復号ユニット80によって復号された量子化変換係数を逆量子化(inverse quantize)または逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するために、ビデオスライスの中のビデオブロックごとに符号化デバイス1004によって計算された量子化パラメータを使用することを含んでもよい。逆変換処理ユニット88は、ピクセル領域における残差ブロックを生成するために、変換係数に逆変換(たとえば、逆DCTまたは他の適切な逆変換)、逆整数変換、または概念的に類似の逆変換プロセスを適用する。
【0137】
動き補償ユニット82が動きベクトルおよび他のシンタックス要素に基づいて現在ビデオブロックに対する予測ブロックを生成した後、復号デバイス1112は、逆変換処理ユニット88からの残差ブロックを、動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器90は、この加算演算を実行する1つまたは複数の構成要素を表す。所望される場合、(コーディングループ中またはコーディングループ後のいずれかの)ループフィルタもまた、ピクセル遷移を平滑化するために、または別の方法でビデオ品質を改善するために使用されてもよい。フィルタユニット91は、デブロッキングフィルタ、適応ループフィルタ(ALF)、およびサンプル適応オフセット(SAO)フィルタなどの1つまたは複数のループフィルタを表すことを意図する。フィルタユニット91がループ内フィルタであるものとして図11に示されるが、他の構成では、フィルタユニット91はループ後フィルタとして実装されてよい。所与のフレームまたはピクチャの中の復号ビデオブロックは、次いでピクチャメモリ92に記憶され、ピクチャメモリ92は、後続の動き補償のために使用される参照ピクチャを記憶する。ピクチャメモリ92はまた、図9に示すビデオデスティネーションデバイス922などのディスプレイデバイス上で後で提示できるように復号ビデオを記憶する。
【0138】
上記の説明では、本出願の態様は、その特定の実施形態を参照しながら説明されたが、本開示がそれらに限定されないことを当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されたが、本発明の概念が別の方法で様々に具現化または採用されてよく、従来技術による限定を除いて、添付の特許請求の範囲がそのような変形形態を含むものと解釈されることを意図することを理解されたい。上記で説明した開示の様々な特徴および態様は、個別または一緒に使用されてもよい。さらに、実施形態は、本明細書の広い趣旨および範囲から逸脱することなく、本明細書で説明したものを越えた任意の数の環境および適用例において利用されてもよい。したがって、本明細書および図面は、限定ではなく例示であると見なされるべきである。例示のために、方法は特定の順序で説明された。代替実施形態では、説明した順序とは異なる順序で方法が実行されてもよいことを了解されたい。
【0139】
構成要素がいくつかの動作を実行する「ように構成」されているものとして説明される場合、そのような構成は、たとえば動作を実行するための電子回路もしくはハードウェアを設計することによって、動作を実行するためのプログラマブル電子回路(たとえば、マイクロプロセッサ、または他の適切な電子回路)をプログラムすることによって、またはそれらの任意の組合せで達成されてもよい。
【0140】
本明細書で開示する実施形態に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよい。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、一般的にそれらの機能に関して上記で説明された。そのような機能がハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課された設計制約によって決まる。当業者は説明した機能を特定の適用例ごとに様々な方法で実装してもよいが、そのような実装決定は本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【0141】
本明細書で説明した技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの様々なデバイスのいずれかにおいて実装されてもよい。モジュールまたは構成要素として説明した任意の特徴が、集積論理デバイスの中で一緒に、または個別であるが相互動作可能な論理デバイスとして別個に実装されてもよい。ソフトウェアで実装される場合、技法は、実行されたとき、上記で説明した方法の1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって、少なくとも部分的に実現されてもよい。コンピュータ可読データ記憶媒体は、パッケージング材料を含んでもよいコンピュータプログラム製品の一部を形成してもよい。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体などのメモリまたはデータ記憶媒体を備えてもよい。技法は、追加または代替として、伝搬される信号または波などの命令またはデータ構造の形態でプログラムコードを搬送または通信するとともに、コンピュータによってアクセスされ、読み取られ、かつ/または実行されてもよい、コンピュータ可読通信媒体によって少なくとも部分的に実現されてもよい。
【0142】
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路もしくは個別論理回路などの1つまたは複数のプロセッサを含んでもよいプロセッサによって実行されてもよい。そのようなプロセッサは、本開示で説明した技法のうちのいずれかを実行するように構成されてもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえばDSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装されてもよい。したがって、本明細書で使用した「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明した技法の実装にとって適した任意の他の構造もしくは装置のいずれかを指してもよい。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成される専用のソフトウェアモジュール内もしくはハードウェアモジュール内で提供されてよく、または複合ビデオエンコーダデコーダ(コーデック)に組み込まれてよい。
【0143】
本明細書で説明したコーディング技法は、例示的なビデオ符号化および復号システムにおいて具現化されてもよい。システムは、デスティネーションデバイスによって後で復号されるべき符号化ビデオデータを提供するソースデバイスを含む。具体的には、ソースデバイスは、コンピュータ可読媒体を介してデスティネーションデバイスにビデオデータを提供する。ソースデバイスおよびデスティネーションデバイスは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む幅広いデバイスのいずれかを備えてもよい。場合によっては、ソースデバイスおよびデスティネーションデバイスは、ワイヤレス通信のために装備されてもよい。
【0144】
デスティネーションデバイスは、復号されるべき符号化ビデオデータをコンピュータ可読媒体を介して受信してもよい。コンピュータ可読媒体は、ソースデバイスからデスティネーションデバイスへ符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備えてもよい。一例では、コンピュータ可読媒体は、ソースデバイスが符号化ビデオデータをリアルタイムでデスティネーションデバイスに直接送信することを可能にするための通信媒体を備えてもよい。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格にしたがって変調されてもよく、デスティネーションデバイスへ送信されてもよい。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などの任意のワイヤレス通信媒体または有線通信媒体を備えてもよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成してもよい。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイスからデスティネーションデバイスへの通信を容易にするために有用であってよい任意の他の機器を含んでもよい。
【0145】
いくつかの例では、符号化データは、出力インターフェースから記憶デバイスに出力されてもよい。同様に、符号化データは、入力インターフェースによって記憶デバイスからアクセスされてもよい。記憶デバイスは、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性メモリもしくは不揮発性メモリ、または符号化ビデオデータを記憶するための任意の他の適切なデジタル記憶媒体などの分散されるかまたは局所的にアクセスされる様々なデータ記憶媒体のいずれかを含んでもよい。さらなる一例では、記憶デバイスは、ソースデバイスによって生成された符号化ビデオを記憶してもよいファイルサーバまたは別の中間記憶デバイスに相当してもよい。デスティネーションデバイスは、記憶デバイスからの記憶されたビデオデータに、ストリーミングまたはダウンロードを介してアクセスしてもよい。ファイルサーバは、符号化ビデオデータを記憶するとともにその符号化ビデオデータをデスティネーションデバイスへ送信することが可能な、任意のタイプのサーバであってよい。例示的なファイルサーバは、ウェブサーバ(たとえば、ウェブサイト用の)、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブを含む。デスティネーションデバイスは、インターネット接続を含む任意の標準的なデータ接続を通じて符号化ビデオデータにアクセスしてもよい。これは、ワイヤレスチャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブルモデムなど)、またはファイルサーバに記憶された符号化ビデオデータにアクセスするのに適した、その両方の組合せを含んでもよい。記憶デバイスからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであってもよい。
【0146】
本開示の技法は、必ずしもワイヤレスの適用例または設定に限定されるとは限らない。技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他の適用例などの様々なマルチメディア用途のいずれかのサポートの際にビデオコーディングに適用されてもよい。いくつかの例では、システムは、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオ電話などの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成されてもよい。
【0147】
一例では、ソースデバイスは、ビデオソース、ビデオエンコーダ、および出力インターフェースを含む。デスティネーションデバイスは、入力インターフェース、ビデオデコーダ、およびディスプレイデバイスを含んでもよい。ソースデバイスのビデオエンコーダは、本明細書で開示する技法を適用するように構成されてもよい。他の例では、ソースデバイスおよびデスティネーションデバイスは、他の構成要素または構成を含んでもよい。たとえば、ソースデバイスは、外部カメラなどの外部ビデオソースからビデオデータを受信してよい。同様に、デスティネーションデバイスは、一体型ディスプレイデバイスを含むのではなく、外部のディスプレイデバイスとインターフェースしてよい。
【0148】
上記の例示的なシステムは一例にすぎない。ビデオデータを並行して処理するための技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行されてよい。一般的に、本開示の技法はビデオ符号化デバイスによって実行されるが、技法はまた、通常は「コーデック」と呼ばれるビデオエンコーダ/デコーダによって実行されてよい。その上、本開示の技法はまた、ビデオプロセッサによって実行されてよい。ソースデバイスおよびデスティネーションデバイスはそのようなコーディングデバイスの例にすぎず、ソースデバイスは、デスティネーションデバイスへの送信のためにコード化ビデオデータを生成する。いくつかの例では、ソースデバイスおよびデスティネーションデバイスは、デバイスの各々がビデオ符号化および復号構成要素を含むように実質的に対称的に動作してもよい。したがって、例示的なシステムは、たとえばビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のために、ビデオデバイス間での一方向または双方向のビデオ送信をサポートしてもよい。
【0149】
ビデオソースは、ビデオカメラ、前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなどのビデオキャプチャデバイスを含んでもよい。さらなる代替として、ビデオソースは、ソースビデオとしてのコンピュータグラフィックスベースデータ、またはライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せを生成してもよい。場合によっては、ビデオソースがビデオカメラである場合、ソースデバイスおよびデスティネーションデバイスは、いわゆるカメラフォンまたはビデオフォンを形成してもよい。しかしながら、上述のように、本開示で説明する技法は、一般にビデオコーディングに適用可能であってもよく、ワイヤレスおよび/または有線の用途に適用されてもよい。各事例において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダによって符号化されてもよい。符号化されたビデオ情報は、次いで出力インターフェースによってコンピュータ可読媒体上に出力されてもよい。
【0150】
述べたように、コンピュータ可読媒体は、ワイヤレスブロードキャストもしくは有線ネットワーク送信などの一時的媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-ray(登録商標)ディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含んでもよい。いくつかの例では、ネットワークサーバ(図示せず)が、ソースデバイスから符号化ビデオデータを受信してもよく、たとえばネットワーク送信を介してデスティネーションデバイスに符号化ビデオデータを提供してもよい。同様に、ディスクスタンピング施設などの媒体生産施設のコンピューティングデバイスが、ソースデバイスから符号化ビデオデータを受信してもよく、符号化ビデオデータを含むディスクを生産してもよい。したがって、コンピュータ可読媒体は、様々な例において、様々な形式の1つまたは複数のコンピュータ可読媒体を含むものと理解されてもよい。
【0151】
デスティネーションデバイスの入力インターフェースは、コンピュータ可読媒体から情報を受信する。コンピュータ可読媒体の情報は、ビデオエンコーダによって規定されるシンタックス情報を含んでもよく、シンタックス情報はまた、ビデオデコーダによって使用され、ブロックの特性および/または処理ならびに他のコード化ユニット、たとえばピクチャグループ(GOP:group of pictures)を記述する、シンタックス要素を含む。ディスプレイデバイスは、復号ビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの様々なディスプレイデバイスのいずれかを備えてもよい。本出願の様々な実施形態が説明された。
【符号の説明】
【0152】
35 パーティショニングユニット
41 予測処理ユニット
42 動き推定ユニット
44 動き補償ユニット
46 イントラ予測処理ユニット
50 加算器
52 変換処理ユニット
54 量子化ユニット
56 エントロピー符号化ユニット
57 後処理デバイス
58 逆量子化ユニット
60 逆変換処理ユニット
62 加算器
63 フィルタユニット
64 ピクチャメモリ
79 ネットワークエンティティ
80 エントロピー復号ユニット
81 予測処理ユニット
82 動き補償ユニット
84 イントラ予測処理ユニット
86 逆量子化ユニット
88 逆変換処理ユニット
90 加算器
91 フィルタユニット
92 ピクチャメモリ
100 ピクチャ
102 シーン
104 隅角部
200 画像
202 円形領域
204 隅角部
210 半球状表現
212 中心
222 中心
214a 一番上の点
214b 一番下の点
214c 一番右
214d 一番左
224a 一番上の点
224b 一番下の点
224c 一番右
224d 見えていない一番左
310 半球状表現
320 観察者
402 画像平面
406 カメラ位置
420 レンズ、アンギュラ魚眼レンズ
520 半球状魚眼レンズ
502 画像平面
602 画像、魚眼画像、画像平面
610 半球状表現
604 点
614 点
710 画像
800 プロセス
900 システム
902 ビデオソース
904 符号化デバイス
906 エンコーダエンジン
908 ストレージ
910 出力部
912 復号デバイス
914 入力部
916 デコーダエンジン
918 ストレージ
920 通信リンク
922 ビデオデスティネーションデバイス
1004 符号化デバイス
1112 復号デバイス
N 多項式次数
n 距離
r 角度値
u 水平軸
v 垂直軸
u'、v' 補正済み正規化座標
α 角度、スケーリングパラメータ
β スケーリングパラメータ
Φ 角度値
ρ 点、距離
【図1】
【図2A】
【図2B】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11】
【手続補正書】
【提出日】20181127
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
360度ビデオデータを処理する方法であって、
全方向性カメラによってキャプチャされた2次元ビデオデータを取得するステップであって、前記2次元ビデオデータがシーンの画像を含み、前記画像の中で、前記シーンが前記画像の円形領域の中へワープされる、ステップと、
前記画像を3次元半球状表現にマッピングするステップであって、前記画像をマッピングするステップが、前記画像の前記円形領域の中のピクセルを前記3次元半球状表現上の対応するロケーションにマッピングするステップを含む、ステップと、
前記3次元半球状表現を使用して360度ビデオプレゼンテーションを生成するステップであって、前記360度ビデオプレゼンテーションが3次元仮想現実環境を提供する、ステップと
を備える、方法。
【請求項2】
前記画像をマッピングするステップが、前記画像の中の点を前記3次元半球状表現上の対応する点に投影するための多項式を使用するステップを含み、前記画像の中の前記点が、前記3次元半球状表現上の前記点にマッピングすべきピクセルを提供する、請求項1に記載の方法。
【請求項3】
前記ワープが非直線的であり、前記方法が、
調整された半径方向値を使用して前記2次元画像の中のピクセルに対する座標を決定するステップであって、前記調整された半径方向値が前記ワープの前記非直線性に対応する、ステップと、
前記決定された座標を前記マッピングにおいて使用するステップと
をさらに備える、
請求項1に記載の方法。
【請求項4】
前記画像が180度よりも大きい視野を含み、前記方法が、
前記視野に従ってスケーリングされている半径方向値を使用して前記2次元画像の中のピクセルに対する座標を調整するステップと、
前記調整された座標を前記マッピングにおいて使用するステップと
をさらに備える、
請求項1に記載の方法。
【請求項5】
前記画像が少なくとも180度の視野を含む、請求項1に記載の方法。
【請求項6】
前記全方向性カメラが魚眼レンズを含む、請求項1に記載の方法。
【請求項7】
前記ビデオデータが符号化ビットストリームから取得され、前記符号化ビットストリームが前記ワープを記述する1つまたは複数のパラメータを含み、前記画像をマッピングするステップが前記1つまたは複数のパラメータを使用するステップを含む、請求項1に記載の方法。
【請求項8】
前記1つまたは複数のパラメータが前記符号化ビットストリームの中の補足エンハンスメント情報(SEI)メッセージの中で符号化される、請求項7に記載の方法。
【請求項9】
前記符号化ビットストリームがISOベースメディアファイルフォーマットに従ってフォーマットされたファイルの中に含まれ、前記1つまたは複数のパラメータが前記ファイルの中の構造の中で符号化される、請求項7に記載の方法。
【請求項10】
前記1つまたは複数のパラメータが、多項式次数、多項式係数、多項式スケーリングパラメータ、またはマッピングスケーリングパラメータのうちの少なくとも1つまたは複数を含む、請求項7に記載の方法。
【請求項11】
符号化ビデオを処理するための装置であって、
全方向性カメラによってキャプチャされた2次元ビデオデータを記憶するように構成されるメモリと、
プロセッサであって、
前記2次元ビデオデータを取得することであって、前記2次元ビデオデータがシーンの画像を含み、前記画像の中で、前記シーンが前記画像の円形領域の中へワープされる、取得することと、
前記画像を3次元半球状表現にマッピングすることであって、前記画像をマッピングすることが、前記画像の前記円形領域の中のピクセルを前記3次元半球状表現上の対応するロケーションにマッピングすることを含む、マッピングすることと、
前記3次元半球状表現を使用して360度ビデオプレゼンテーションを生成することであって、前記360度ビデオプレゼンテーションが3次元仮想現実環境を提供する、生成することと
を行うように構成される、プロセッサと
を備える、装置。
【請求項12】
前記画像をマッピングすることが、前記画像の中の点を前記3次元半球状表現上の対応する点に投影するための多項式を使用することを含み、前記画像の中の前記点が、前記3次元半球状表現上の前記点にマッピングすべきピクセルを提供する、請求項11に記載の装置。
【請求項13】
前記ワープが非直線的であり、前記プロセッサが、
調整された半径方向値を使用して前記2次元画像の中のピクセルに対する座標を決定することであって、前記調整された半径方向値が前記ワープの前記非直線性に対応する、決定することと、
前記正規化された座標を前記マッピングにおいて使用することと
を行うようにさらに構成される、
請求項11に記載の装置。
【請求項14】
前記画像が180度よりも大きい視野を含み、前記プロセッサが、
前記視野に従ってスケーリングされている半径方向値を使用して前記2次元画像の中のピクセルに対する座標を調整することと、
前記調整された座標を前記マッピングにおいて使用することと
を行うようにさらに構成される、
請求項11に記載の装置。
【請求項15】
前記画像が少なくとも180度の視野を含む、請求項11に記載の装置。
【請求項16】
前記全方向性カメラが魚眼レンズを含む、請求項11に記載の装置。
【請求項17】
前記ビデオデータが符号化ビットストリームから取得され、前記符号化ビットストリームが前記ワープを記述する1つまたは複数のパラメータを含み、前記画像をマッピングすることが前記1つまたは複数のパラメータを使用することを含む、請求項11に記載の装置。
【請求項18】
前記1つまたは複数のパラメータが前記符号化ビットストリームの中の補足エンハンスメント情報(SEI)メッセージの中で符号化される、請求項17に記載の装置。
【請求項19】
前記符号化ビットストリームがISOベースメディアファイルフォーマットに従ってフォーマットされたファイルの中に含まれ、前記1つまたは複数のパラメータが前記ファイルの中の構造の中で符号化される、請求項17に記載の装置。
【請求項20】
前記1つまたは複数のパラメータが、多項式次数、多項式係数、多項式スケーリングパラメータ、またはマッピングスケーリングパラメータのうちの少なくとも1つまたは複数を含む、請求項17に記載の装置。
【請求項21】
モバイルデバイスをさらに備え、前記モバイルデバイスが前記全方向性カメラを含む、請求項11に記載の装置。
【請求項22】
ビデオを復号するための装置であって、
全方向性カメラによってキャプチャされた2次元ビデオデータを記憶するように構成されるメモリと、
プロセッサであって、
前記2次元ビデオデータを取得することであって、前記2次元ビデオデータがシーンの画像を含み、前記画像の中で、前記シーンが前記画像の円形領域の中へワープされる、取得することと、
前記画像を3次元半球状表現にマッピングすることであって、前記画像をマッピングすることが、前記画像の前記円形領域の中のピクセルを前記3次元半球状表現上の対応するロケーションにマッピングすることを含む、マッピングすることと、
前記3次元半球状表現を使用して360度ビデオプレゼンテーションを生成することであって、前記360度ビデオプレゼンテーションが3次元仮想現実環境を提供する、生成することと
を行うように構成される、プロセッサと
を備える、装置。
【請求項23】
前記画像をマッピングすることが、前記画像の中の点を前記3次元半球状表現上の対応する点に投影するための多項式を使用することを含み、前記画像の中の前記点が、前記3次元半球状表現上の前記点にマッピングすべきピクセルを提供する、請求項22に記載の装置。
【請求項24】
前記ワープが非直線的であり、前記プロセッサが、
調整された半径方向値を使用して前記2次元画像の中のピクセルに対する座標を決定することであって、前記調整された半径方向値が前記ワープの前記非直線性に対応する、決定することと、
前記正規化された座標を前記マッピングにおいて使用することと
を行うようにさらに構成される、
請求項22に記載の装置。
【請求項25】
前記画像が180度よりも大きい視野を含み、前記プロセッサが、
前記視野に従ってスケーリングされている半径方向値を使用して前記2次元画像の中のピクセルに対する座標を調整することと、
前記調整された座標を前記マッピングにおいて使用することと
を行うようにさらに構成される、
請求項22に記載の装置。
【請求項26】
前記画像が少なくとも180度の視野を含む、請求項22に記載の装置。
【請求項27】
前記全方向性カメラが魚眼レンズを含む、請求項22に記載の装置。
【請求項28】
前記ビデオデータが符号化ビットストリームから取得され、前記符号化ビットストリームが前記ワープを記述する1つまたは複数のパラメータを含み、前記画像をマッピングすることが前記1つまたは複数のパラメータを使用することを含む、請求項22に記載の装置。
【請求項29】
前記1つまたは複数のパラメータが前記符号化ビットストリームの中の補足エンハンスメント情報(SEI)メッセージの中で符号化される、請求項28に記載の装置。
【請求項30】
前記符号化ビットストリームがISOベースメディアファイルフォーマットに従ってフォーマットされたファイルの中に含まれ、前記1つまたは複数のパラメータが前記ファイルの中の構造の中で符号化される、請求項28に記載の装置。
【請求項31】
前記1つまたは複数のパラメータが、多項式次数、多項式係数、多項式スケーリングパラメータ、またはマッピングスケーリングパラメータのうちの少なくとも1つまたは複数を含む、請求項28に記載の装置。
【請求項32】
モバイルデバイスをさらに備え、前記モバイルデバイスが前記全方向性カメラを含む、請求項22に記載の装置。
【請求項33】
モバイルデバイスをさらに備え、前記モバイルデバイスが前記360度ビデオプレゼンテーションを表示するためのディスプレイを含む、請求項22に記載の装置。
【請求項34】
命令を記憶した非一時的コンピュータ可読記録媒体であって、前記命令が、1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
全方向性カメラによってキャプチャされた2次元ビデオデータを取得することであって、前記2次元ビデオデータがシーンの画像を含み、前記画像の中で、前記シーンが前記画像の円形領域の中へワープされる、取得することと、
前記画像を3次元半球状表現にマッピングすることであって、前記画像をマッピングすることが、前記画像の前記円形領域の中のピクセルを前記3次元半球状表現上の対応するロケーションにマッピングすることを含む、マッピングすることと、
360度ビデオプレゼンテーションにおける前記3次元半球状表現を使用して360度ビデオプレゼンテーションを生成することであって、前記360度ビデオプレゼンテーションが3次元仮想現実環境を提供することと
を行わせる、非一時的コンピュータ可読記録媒体。
【請求項35】
装置であって、
2次元ビデオデータを取得するための手段であって、前記2次元ビデオデータがシーンの画像を含み、前記画像の中で、前記シーンが前記画像の円形領域の中へワープされる、手段と、
前記画像を3次元半球状表現にマッピングするための手段であって、前記画像をマッピングすることが、前記画像の前記円形領域の中のピクセルを前記3次元半球状表現上の対応するロケーションにマッピングすることを含む、手段と、
前記3次元半球状表現を使用して360度ビデオプレゼンテーションを生成するための手段であって、前記360度ビデオプレゼンテーションが3次元仮想現実環境を提供する、手段と
を備える、装置。
【国際調査報告】