以下、図面を参照しながら、実施形態を詳細に説明する。
パノラマ映像に含まれる各時刻のパノラマ画像を符号化する場合、撮影されたパノラマ画像は歪んだ状態であるため、そのまま符号化すると符号化効率が低下する。そこで、パノラマ画像の歪みを補正して、矩形のパノラマ画像に展開した上で、展開されたパノラマ画像を符号化単位の所定領域に分割し、所定領域単位で符号化を行うのが効果的である。
各時刻における矩形のパノラマ画像は、フレーム又はピクチャと呼ばれることがあり、符号化単位の所定領域は、ブロックと呼ばれることがある。
矩形のパノラマ画像をブロックに分割する際の基準位置が、撮影されたパノラマ画像に対して固定された位置である場合、カメラのパニング、位置ずれ、又は移動によって、フレーム間で全ブロックが一定方向に移動したような映像が生成されることがある。基準位置を固定したままでこのようなパノラマ画像を符号化すると、不必要に多くの動きベクトルが発生して符号化効率が低下する。
特許文献1の動き推定方法では、360°全方向映像情報を含むパノラマ映像の相関性の高さを利用しており、画面右側境界のさらに右側の領域の画素として、画面左側境界部分の画素が読み込まれる。また、画面左側境界のさらに左側の領域の画素として、画面右側境界部分の画素が読み込まれる。これにより、画面の右側境界部分及び左側境界部分の画質を改善することができる。
この動き推定方法では、撮影される全方向のパノラマ映像について、カメラの位置が固定されており、大きく移動しないことが前提となっている。つまり、所定の点を中心として、周囲を360°見渡すパノラマ映像が対象となっている。
ところが、近年では、非特許文献1~非特許文献3に示されるような、ハンディ型又は車載型の全周囲カメラが使用されるようになっている。
図1は、非特許文献1のカメラで撮影したパノラマ画像を展開することで生成される、第1の展開パノラマ画像の例を示している。このカメラは、単一の凸レンズ(魚眼レンズ)を用いて、円形のパノラマ画像101を撮影することができる。
例えば、屋外で凸レンズを真上に向けてパノラマ画像101を撮影した場合、パノラマ画像101の中央部分には空が写るため、その中央部分を除いた領域を利用して展開パノラマ画像103を生成することができる。この場合、パノラマ画像101を境界線102で切断して矩形状に変換することで、展開パノラマ画像103が生成される。
図2は、非特許文献2の360°カメラで撮影したパノラマ画像を展開することで生成される、第2の展開パノラマ画像の例を示している。この360°カメラは、背中合わせに配置された2台のカメラを用いて、円形のパノラマ画像201及びパノラマ画像202を撮影することができる。
例えば、車両に乗車しているユーザが一方のカメラを進行方向の前方に向けて撮影した場合、パノラマ画像201には前方の風景が写り、パノラマ画像202には後方の風景が写る。この場合、パノラマ画像201及びパノラマ画像202をそれぞれ矩形状に変換することで、前方の展開パノラマ画像203及び後方の展開パノラマ画像204が生成される。さらに、展開パノラマ画像203及び展開パノラマ画像204を繋ぎ合わせることで、全周囲パノラマ画像205を生成することも可能である。
図3は、非特許文献3の360°カメラで撮影したパノラマ画像を展開することで生成される、第3の展開パノラマ画像の例を示している。この360°カメラは、球状に配置された6台のカメラを用いて、水平全周囲だけでなく、天と地も含めた全空間のパノラマ画像301を撮影することができる。
例えば、この360°カメラを車両の屋根に搭載して撮影した場合、パノラマ画像301内の領域311には、進行方向の前方の風景が写り、領域312には左後方の風景が写り、領域313及び領域314には右後方の風景が写る。この場合、領域311及び領域312の画像をそれぞれ矩形状に変換することで、前方の展開パノラマ画像321及び左後方の展開パノラマ画像322が生成される。また、領域313及び領域314の画像を矩形状に変換することで、右後方の展開パノラマ画像323が生成される。
さらに、展開パノラマ画像321~展開パノラマ画像323を含む複数の展開パノラマ画像を繋ぎ合わせることで、全周囲パノラマ画像を生成することも可能である。
図1のパノラマ画像101、図2のパノラマ画像201、パノラマ画像202、及び図3のパノラマ画像301は、広い視野を撮影した画像であるため、歪んでいることが多い。一方、展開パノラマ画像103、展開パノラマ画像203、展開パノラマ画像204、全周囲パノラマ画像205、及び展開パノラマ画像321~展開パノラマ画像323は、矩形状に変換されており、歪みがない画像である。
動画像符号化においては、歪みのあるパノラマ映像よりも、歪みのないパノラマ映像を符号化する方が、動き推定(ME)等の効率が良くなる。したがって、パノラマ映像を符号化する際には、展開パノラマ画像を用いる機会が多くなると予想される。
ME効率は、例えば、符号化対象パノラマ画像内の各ブロックの画像と、動きベクトルによって決定される予測ブロックの画像との差分の絶対値で表される。この場合、差分の絶対値が小さいほど、ME効率が良くなる。
動画像符号化はブロック単位の動き補償及び周波数変換を含むため、生成される情報は、主として、動きベクトル情報と周波数変換された差分情報である。このため、ME効率がほぼ同等である場合は、動きベクトル情報の情報量が符号化効率に大きな影響を与える。また、動きがほとんどないパノラマ画像と動きが大きいパノラマ画像とでは、後者の方が多くの動きベクトル情報が発生する。つまり、動きが大きいパノラマ画像ほど発生する符号量が多くなり、符号化効率が低下する。
発生する符号量を抑えて符号化効率を一定に保つために、量子化スケールを大きくすることも可能であるが、その場合、符号化パノラマ画像から復元されたパノラマ画像の画質が劣化する。
上述したように、カメラのパニング、位置ずれ、又は移動によって、フレーム間で全ブロックが一定方向に移動したような映像が生成される場合、特許文献1の動き推定方法では、多くの動きベクトルが発生して符号化効率が低下する。
図4は、実施形態の第1の動画像符号化装置の機能的構成例を示している。図4の動画像符号化装置401は、記憶部411、決定部412、補正部413、及び符号化部414を含む。記憶部411は、符号化対象パノラマ画像を符号化するために用いられる参照パノラマ画像421を記憶する。符号化対象パノラマ画像は、撮像装置が撮影したパノラマ映像に含まれるパノラマ画像を展開したパノラマ画像である。決定部412、補正部413、及び符号化部414は、参照パノラマ画像421を用いて動画像符号化処理を行う。
図5は、図4の動画像符号化装置401が行う第1の動画像符号化処理の例を示すフローチャートである。まず、決定部412は、参照パノラマ画像421に対する符号化対象パノラマ画像のずれ量を表すベクトルを決定する(ステップ501)。
次に、補正部413は、符号化対象パノラマ画像内における複数の符号化対象領域それぞれの位置を、ずれ量を表すベクトルに基づいて補正することで、補正された符号化対象パノラマ画像を生成する(ステップ502)。そして、符号化部414は、補正された符号化対象パノラマ画像内の複数の符号化対象領域それぞれの画像を、参照パノラマ画像421を用いて符号化する(ステップ503)。
このような動画像符号化装置401によれば、パノラマ映像の符号化効率を向上させることができる。
図6は、実施形態の第2の動画像符号化装置の機能的構成例を示している。図6の動画像符号化装置601は、記憶部611、決定部612、補正部613、及び符号化部614を含む。記憶部611は、符号化対象パノラマ画像を符号化するために用いられる参照画像621を記憶する。符号化対象パノラマ画像は、複数の撮像装置が撮影した複数の映像を組み合わせたパノラマ映像に含まれるパノラマ画像である。決定部612、補正部613、及び符号化部614は、参照画像621を用いて動画像符号化処理を行う。
図7は、図6の動画像符号化装置601が行う第2の動画像符号化処理の例を示すフローチャートである。まず、決定部612は、複数の映像それぞれの撮影範囲が移動することによって、符号化対象パノラマ画像内の符号化対象領域が参照画像621に対してずれた場合、参照画像621に対する符号化対象領域のずれ量を表すベクトルを決定する(ステップ701)。
次に、補正部613は、符号化対象パノラマ画像内における符号化対象領域の位置を、ずれ量を表すベクトルに基づいて補正することで、補正された符号化対象領域を生成する(ステップ702)。そして、符号化部614は、補正された符号化対象領域の画像を、参照画像621を用いて符号化する(ステップ703)。
このような動画像符号化装置601によれば、パノラマ映像の符号化効率を向上させることができる。
図8は、実施形態の動画像復号装置の機能的構成例を示している。図8の動画像復号装置801は、記憶部811、抽出部812、復号部813、及び補正部814を含む。図4の動画像符号化装置401は、符号化対象パノラマ画像を符号化することで、符号化パノラマ画像を生成する。動画像復号装置801は、動画像符号化装置401が生成する符号化パノラマ画像を含む、符号化パノラマ映像を復号する。
記憶部811は、符号化パノラマ画像を復号するために用いられる参照パノラマ画像821を記憶する。抽出部812、復号部813、及び補正部814は、参照パノラマ画像821を用いて動画像復号処理を行う。
図9は、図8の動画像復号装置801が行う動画像復号処理の例を示すフローチャートである。まず、抽出部812は、参照パノラマ画像821に対する符号化対象パノラマ画像のずれ量を表すベクトルを、符号化パノラマ映像から抽出する(ステップ901)。
次に、復号部813は、符号化パノラマ画像内の複数の復号対象領域それぞれを参照パノラマ画像821を用いて復号して、復号パノラマ画像を生成する(ステップ902)。そして、補正部814は、復号パノラマ画像内における複数の復号対象領域それぞれの位置を、ずれ量を表すベクトルに基づいて補正することで、符号化対象パノラマ画像を復元する(ステップ903)。
このような動画像復号装置801によれば、パノラマ映像の符号化効率を向上させることができる。
図10は、パノラマ映像符号化システムの構成例を示している。図10のパノラマ映像符号化システム1001は、撮影部1011、合成部1012、展開部1013、及び動画像符号化装置1014を含む。
撮影部1011は、1台又は複数台の撮像装置を含む。1台の撮像装置を含む撮影部1011としては、例えば、非特許文献1のカメラを用いることができる。また、複数台の撮像装置を含む撮影部1011としては、例えば、非特許文献2の360°カメラ又は非特許文献3の360°カメラを用いることができる。
撮影部1011が1台の撮像装置を含む場合、合成部1012は、その撮像装置が撮影したパノラマ映像に含まれる各時刻の全周囲パノラマ画像を出力する。展開部1013は、全周囲パノラマ画像を複数の領域に分割し、領域単位で平面射影変換を繰り返すことで、展開パノラマ画像を生成する。この場合、動画像符号化装置1014は、図4の動画像符号化装置401に対応し、各時刻の展開パノラマ画像を符号化して、符号化パノラマ映像のビットストリームを生成する。
一方、撮影部1011が複数台の撮像装置を含む場合、合成部1012は、それぞれの撮像装置が撮影した映像に含まれる画像を合成して、全周囲パノラマ画像を生成し、展開部1013は、全周囲パノラマ画像を変換して展開パノラマ画像を生成する。この場合、動画像符号化装置1014は、図6の動画像符号化装置601に対応し、各時刻の展開パノラマ画像を符号化して、符号化パノラマ映像のビットストリームを生成する。
撮影部1011が静止している場合、全周囲パノラマ画像全体としては、常に、撮影部1011を中心として周囲を360°見渡す同じ撮影範囲が撮影されている。ただし、撮影部1011のパニング等によって、各時刻における全周囲パノラマ画像の起点がずれることで、写っている被写体の位置がずれる可能性がある。一方、撮影部1011が移動している場合、時間の経過とともに撮影範囲が変化し、写っている被写体も変化することが想定される。
図11は、図10の動画像符号化装置1014の具体例を示している。図11の動画像符号化装置1014は、変更部1101、判定部1102、決定部1103、変更部1104、減算部1105、変換及び量子化部(T/Q)1106、及びエントロピー符号化部(ENT)1107を含む。さらに、動画像符号化装置1014は、逆量子化及び逆変換部(IQ/IT)1108、加算部1109、動き補償部1110、予測画像生成部1111、及びフレームメモリ1112を含む。
まず、動画像符号化装置1014が図4の動画像符号化装置401に対応する場合の動作について説明する。この場合、変更部1101及び判定部1102は、補正部413に対応し、決定部1103は、決定部412に対応する。減算部1105、T/Q1106、ENT1107、IQ/IT1108、加算部1109、動き補償部1110、及び予測画像生成部1111は、符号化部414に対応し、フレームメモリ1112は、記憶部411に対応する。
展開部1013が生成する展開パノラマ画像は、符号化対象パノラマ画像として、動画像符号化装置1014に入力される。動画像符号化装置1014は、符号化対象パノラマ画像を符号化し、符号化パノラマ画像をビットストリームとして出力する。符号化対象パノラマ画像は、複数のブロックに分割され、各ブロックが符号化対象ブロックとして、減算部1105及び動き補償部1110に入力される。符号化対象ブロックは、符号化対象領域に対応する。
決定部1103は、動き補償部1110から出力される動きベクトルを用いて、フレームメモリ1112が記憶する参照パノラマ画像に対する、符号化対象パノラマ画像のずれ量を表すグローバルベクトルを決定する。そして、決定部1103は、決定したグローバルベクトルを判定部1102、変更部1104、及びENT1107へ出力する。
決定部1103は、既に符号化済みのパノラマ画像のグローバルベクトルを、符号化対象パノラマ画像のグローバルベクトルとして用いてもよく、処理量の小さな縮小パノラマ画像を用いた動き推定の結果に基づいて、グローバルベクトルを決定してもよい。
判定部1102は、グローバルベクトルに基づいて、符号化対象パノラマ画像内の各符号化対象ブロックの位置を変更するか否かを判定し、グローバルベクトル及び判定結果を変更部1101へ出力する。
判定結果が各符号化対象ブロックの位置を変更することを示す場合、変更部1101は、グローバルベクトルに基づいて各符号化対象ブロックの位置を変更し、変更した符号化対象ブロックを減算部1105及び動き補償部1110へ出力する。一方、判定結果が各符号化対象ブロックの位置を変更しないことを示す場合、変更部1101は、各符号化対象ブロックをそのまま減算部1105及び動き補償部1110へ出力する。
減算部1105は、符号化対象ブロックと、予測画像生成部1111から出力される予測ブロック画像との差分を表す予測誤差信号を、T/Q1106へ出力する。T/Q1106は、直交変換によって予測誤差信号を周波数信号に変換し、周波数信号を量子化して係数情報を生成する。直交変換としては、例えば、離散コサイン変換、離散ウェーブレット変換等が用いられる。そして、T/Q1106は、生成した係数情報をENT1107及びIQ/IT1108へ出力する。
IQ/IT1108は、T/Q1106から出力される係数情報を逆量子化して、周波数信号を生成し、逆直交変換によって周波数信号を再構成予測誤差信号に変換する。そして、IQ/IT1108は、再構成予測誤差信号を加算部1109へ出力する。
加算部1109は、予測画像生成部1111から出力される予測ブロック画像と、再構成予測誤差信号とを加算することで、復号ブロック画像を生成し、生成した復号ブロック画像をフレームメモリ1112へ出力する。符号化対象ブロックの位置が変更されている場合、変更部1104は、グローバルベクトルに基づいて、復号ブロック画像の位置を変更前の符号化対象ブロックの位置に戻す。
フレームメモリ1112は、復号ブロック画像を蓄積し、蓄積した復号ブロック画像を参照画像として、動き補償部1110及び予測画像生成部1111へ出力する。符号化対象パノラマ画像内の複数の符号化対象ブロックそれぞれから生成された複数の復号ブロック画像は、参照パノラマ画像に対応する。
動き補償部1110は、参照画像を用いて符号化対象ブロックに対する動き推定を行うことで、動きベクトルを生成し、生成した動きベクトルを決定部1103へ出力する。動き推定では、例えば、1枚の参照パノラマ画像を用いた片方向予測、又は2枚以上の参照パノラマ画像を用いた双方向予測が行われる。そして、動き補償部1110は、参照パノラマ画像から動きベクトルが示す参照画像を取得して、予測画像生成部1111へ出力する。
予測画像生成部1111は、参照画像を用いて、符号化対象パノラマ画像内の既に符号化された周辺画素の画素値から、符号化対象ブロックのイントラ予測ブロック画像を生成する。また、予測画像生成部1111は、動き補償部1110から出力される参照画像をインター予測ブロック画像として使用する。そして、予測画像生成部1111は、イントラ予測ブロック画像又はインター予測ブロック画像のいずれか一方を選択し、選択した予測ブロック画像を減算部1105及び加算部1109へ出力する。
ENT1107は、T/Q1106から出力される係数情報、イントラ予測又はインター予測の予測モードの情報、及び決定部1103から出力されるグローバルベクトルの情報をエントロピー符号化する。エントロピー符号化では、信号中の各シンボルの出現頻度に応じて、可変長符号が割り当てられる。そして、ENT1107は、可変長符号を含むビットストリームを出力する。
図12は、変更部1101が行う補正処理の例を示している。この例では、全周囲パノラマ画像内の複数の位置を区別するために、0~9の番号が用いられている。全周囲パノラマ画像の場合、図1に示したように、左端の位置0の画像と右端の位置9の画像とが連続しているため、この連続性を利用して補正処理を行うことができる。
参照パノラマ画像1201内の各被写体の位置に対して、符号化対象パノラマ画像1202内の各被写体の位置が一斉に右へずれた場合、位置0~位置7のブロックに対して同じ動きベクトル1211が生成される。しかし、このままでは、位置8及び位置9のブロックに対して、動きベクトル1211とは全く異なる動きベクトルが生成される。
そこで、決定部1103は、動きベクトル1211をグローバルベクトルに決定し、変更部1101は、符号化対象パノラマ画像1202内の各ブロックの位置を、動きベクトル1211に従って左へずらす。そして、変更部1101は、符号化対象パノラマ画像1202からはみ出した位置8及び位置9のブロックの画像を、符号化対象パノラマ画像1202の右端に付け加えることで、符号化対象パノラマ画像1203を生成する。この場合、符号化対象パノラマ画像1203の起点が位置8から位置0に変更され、参照パノラマ画像1201の起点に一致する。
これにより、参照パノラマ画像1201内の各被写体に対する、符号化対象パノラマ画像1203内の各被写体の動きがほぼ0になるため、生成される動きベクトルを最小限に抑えることが可能になる。
図13は、人物を含む全周囲パノラマ映像の例を示している。パノラマ画像1301、パノラマ画像1302、及びパノラマ画像1303は、それぞれ、時刻T、時刻T+1、及び時刻T+2における符号化対象パノラマ画像を表す。これらの3枚のパノラマ画像に写っている人物の位置は変化しておらず、代わりに、背景の被写体の位置が時間の経過とともに右へずれている。この場合、動きのある背景の面積の方が静止している人物の面積よりも大きいため、背景が静止するように、各パノラマ画像の起点を左へずらすことが好ましい。
図14は、図13の全周囲パノラマ映像に対する補正処理の例を示している。パノラマ画像1302の動き推定において、パノラマ画像1301が参照パノラマ画像として用いられる場合、決定部1103は、パノラマ画像1301の背景に対するパノラマ画像1302の背景の動きを表わす動きベクトルを、グローバルベクトルに決定する。
そして、変更部1101は、パノラマ画像1302内の各ブロックの位置を、グローバルベクトルに従って左へずらし、パノラマ画像1302からはみ出したブロックの画像を右端に付け加えることで、パノラマ画像1401を生成する。パノラマ画像1302の代わりにパノラマ画像1401を符号化すれば、面積の大きな背景に対する動きベクトルはほとんど発生せず、面積の小さな人物に集中して動きベクトルが発生する。したがって、発生する動きベクトル情報を抑制することができ、符号化効率が向上する。
パノラマ画像1303の動き推定において、パノラマ画像1302が参照パノラマ画像として用いられる場合も、同様の補正処理が行われる。この場合、決定部1103は、パノラマ画像1302の背景に対するパノラマ画像1303の背景の動きを表わす動きベクトルを、グローバルベクトルに決定する。
そして、変更部1101は、パノラマ画像1303内の各ブロックの位置を、グローバルベクトルに従って左へずらし、パノラマ画像1303からはみ出したブロックの画像を右端に付け加えることで、パノラマ画像1402を生成する。パノラマ画像1303の代わりにパノラマ画像1401を符号化することで、符号化効率が向上する。
動画像符号化装置1014が生成した符号化パノラマ画像を復号する際は、グローバルベクトルに基づいて、符号化パノラマ画像内の各ブロックの位置を逆方向にずらすことで、パノラマ画像1302及びパノラマ画像1303を復元することができる。
このように、グローバルベクトルに基づいて符号化対象パノラマ画像の起点を変更することで、全周囲パノラマ画像を切断する境界線の位置を、画像の動きに合わせて適応的に変更することが可能になる。起点の変更は、前方向予測の動きに応じて実施することが好ましい。例えば、前方向予測ピクチャ(Pピクチャ)のみを対象として起点を変更してもよい。
ENT1107は、グローバルベクトルの情報をヘッダ情報としてビットストリームに挿入することができる。この場合、ビットストリームを受信した動画像復号装置は、ヘッダ情報を参照することでグローバルベクトルを取得し、符号化パノラマ画像内の各ブロックの位置を元の位置に戻すことができる。
図15は、図11の動画像符号化装置1014が行う動画像符号化処理の具体例を示すフローチャートである。動画像符号化装置1014は、符号化対象映像に含まれる各時刻の画像を符号化対象画像として、符号化対象画像をブロック毎に符号化する。
まず、変更部1101は、符号化対象映像が全周囲パノラマ映像であるか否かをチェックする(ステップ1501)。
符号化対象映像が全周囲パノラマ映像ではない場合(ステップ1501,No)、変更部1101は、符号化対象ブロックの位置を変更することなく、そのまま減算部1105及び動き補償部1110へ出力する。そして、動画像符号化装置1014は、符号化対象ブロックを符号化する(ステップ1502)。
一方、符号化対象映像が全周囲パノラマ映像である場合(ステップ1501,Yes)、決定部1103は、符号化対象パノラマ画像のグローバルベクトルを決定する(ステップ1505)。
例えば、決定部1103は、符号化対象パノラマ画像内で発生する動きベクトルのうち、他の動きベクトルよりも多く発生する動きベクトルをグローバルベクトルに決定することができる。他の動きベクトルよりも多く発生する動きベクトルは、符号化対象パノラマ画像内で最も多く発生する動きベクトルであってもよい。この場合、動き補償部1110は、事前に符号化対象パノラマ画像内のすべてのブロックに対する動き推定を実施し、各ブロックの動きベクトルを求めて、決定部1103へ出力する。そして、決定部1103は、発生数が最も多い動きベクトルを選択して、グローバルベクトルに決定する。
発生数が最も多い動きベクトルを選択することで、符号化対象パノラマ画像全体の動きを表わすベクトルをグローバルベクトルに決定することができる。例えば、背景の面積が前景の面積よりも大きく、背景に一定の動きが見られる場合、背景の動きを表わすベクトルがグローバルベクトルとして採用される。また、前景がクローズアップされており、前景の面積が背景の面積よりも大きい場合は、前景の動きを表わすベクトルがグローバルベクトルとして採用される。
次に、変更部1101は、符号化対象ブロックが前方向予測ピクチャのブロックであるか否かをチェックする(ステップ1506)。符号化対象ブロックが前方向予測ピクチャのブロックではない場合(ステップ1506,No)、動画像符号化装置1014は、ステップ1502以降の処理を行う。
一方、符号化対象ブロックが前方向予測ピクチャのブロックである場合(ステップ1506,Yes)、変更部1101及び判定部1102は、グローバルベクトルに基づいて補正処理を行う(ステップ1507)。
この補正処理において、判定部1102が符号化対象ブロックを補正しないと判定した場合、動画像符号化装置1014は、ステップ1502以降の処理を行う。一方、判定部1102が符号化対象ブロックを補正すると判定した場合、変更部1101は、符号化対象ブロックの位置を、グローバルベクトルの向きにグローバルベクトルの大きさだけずらすことで、補正された符号化対象ブロックを生成する。
次に、ENT1107は、グローバルベクトルの情報を含むヘッダ情報を生成し(ステップ1508)、動画像符号化装置1014は、補正された符号化対象ブロックを符号化する(ステップ1509)。そして、変更部1104は、グローバルベクトルに基づいて、復号ブロック画像の位置を元の位置に戻す(ステップ1510)。このとき、変更部1104は、復号ブロック画像の位置を、グローバルベクトルとは逆の向きにグローバルベクトルの大きさだけずらすことで、補正された復号ブロック画像を生成して、フレームメモリ1112に書き込む。
次に、変更部1101は、符号化対象画像内のすべてのブロックを符号化したか否かをチェックする(ステップ1503)。符号化していないブロックが残っている場合(ステップ1503,No)、動画像符号化装置1014は、次のブロックを符号化対象ブロックとして、ステップ1501以降の処理を繰り返す。
すべてのブロックを符号化した場合(ステップ1503,Yes)、変更部1101は、符号化対象映像に含まれるすべての画像を符号化したか否かをチェックする(ステップ1504)。符号化していない画像が残っている場合(ステップ1504,No)、動画像符号化装置1014は、次の画像を符号化対象画像として、ステップ1501以降の処理を繰り返す。そして、すべての画像を符号化した場合(ステップ1504,Yes)、動画像符号化装置1014は、処理を終了する。
例えば、動画像符号化方式がHEVCである場合、ステップ1508において、ENT1107は、ヘッダ情報に含まれるユーザデータを用いて、グローバルベクトルの情報を送信することができる。
具体的には、Supplemental Enhancement Information(SEI)のpayloadType=5のuser_data_unregistered(payloadSize)を用いることができる。この場合、グローバルベクトルのX成分及びY成分のビット数として、それぞれ、log2_max_mv_length_horizontal及びlog2_max_mv_length_verticalで示されるビット数を確保すればよい。あるいは、そのsyntax elementの最大値である16ビットを確保してもよい。
ユーザデータが他の目的で使用されることを考慮して、グローバルベクトルを示す所定の識別情報をグローバルベクトルの前に挿入したSEI(ユーザデータ)を用いることも好ましい。所定の識別情報としては、例えば、グローバルベクトルを表わす所定の文字列に対応するAmerican Standard Code for Information Interchange(ASCII)コードを用いることができる。
図15の動画像符号化処理によれば、全周囲パノラマ映像に含まれる前方向予測ピクチャを符号化する際に、符号化対象パノラマ画像全体の動きに応じて、その符号化対象パノラマ画像の起点を変更することができる。これにより、符号化対象ブロックに対して生成される動きベクトル情報を抑制することが可能になるとともに、符号化対象パノラマ画像内の全ブロックに対して適切な動き推定を行うことが可能になる。したがって、ME効率及び符号化効率が向上する。
図16は、図15のステップ1507において、符号化対象ブロックを補正するか否かを動きベクトルの発生数を用いて判定する補正処理の例を示すフローチャートである。まず、判定部1102は、符号化対象パノラマ画像内における動きベクトルの総数Num_AllMVに対するグローバルベクトルの発生数Num_GMVの比率Rを、閾値TH1と比較する(ステップ1601)。
RがTH1以上である場合(ステップ1601,Yes)、判定部1102は、符号化対象ブロックを補正すると判定する。そして、変更部1101は、グローバルベクトルを用いて符号化対象ブロックの位置をずらすことで、補正された符号化対象ブロックを生成し(ステップ1602)、動画像符号化装置1014は、ステップ1508以降の処理を行う。
一方、RがTH1未満である場合(ステップ1601,No)、判定部1102は、符号化対象ブロックを補正しないと判定し、動画像符号化装置1014は、ステップ1502以降の処理を行う。
図16の補正処理によれば、決定部1103が決定したグローバルベクトルが符号化対象パノラマ画像内において所定値以上の比率で発生している場合に、符号化対象ブロックの位置が変更される。これにより、符号化対象パノラマ画像全体に発生している一定の動きに応じて、符号化対象ブロックの位置をずらすことができる。
図17は、図15のステップ1507において、符号化対象ブロックを補正するか否かをME効率を用いて判定する補正処理の例を示すフローチャートである。
まず、判定部1102は、符号化対象パノラマ画像を補正しない場合の動き推定を、動き補償部1110に対して要求する(ステップ1701)。動き補償部1110は、符号化対象パノラマ画像内のすべてのブロックに対する動き推定を実施して、各ブロックの動きベクトルを求める。そして、動き補償部1110は、参照パノラマ画像と符号化対象パノラマ画像との間の差分絶対値和(SAD)を計算し、計算したSADをSAD1として判定部1102へ出力する。
次に、判定部1102は、符号化対象パノラマ画像を補正した場合の動き推定を、動き補償部1110に対して要求する(ステップ1702)。動き補償部1110は、グローバルベクトルを用いて符号化対象ブロックの位置をずらすことで、補正された符号化対象ブロックを生成する。次に、動き補償部1110は、補正された符号化対象パノラマ画像内のすべてのブロックに対する動き推定を実施して、各ブロックの動きベクトルを求める。そして、動き補償部1110は、参照パノラマ画像と補正された符号化対象パノラマ画像との間のSADを計算し、計算したSADをSAD2として判定部1102へ出力する。
次に、判定部1102は、SAD1とSAD2を比較する(ステップ1703)。SAD2がSAD1よりも小さい場合(ステップ1703,Yes)、判定部1102は、符号化対象ブロックを補正すると判定する。そして、変更部1101は、グローバルベクトルを用いて符号化対象ブロックの位置をずらすことで、補正された符号化対象ブロックを生成し(ステップ1704)、動画像符号化装置1014は、ステップ1508以降の処理を行う。
一方、SAD2がSAD1以上である場合(ステップ1703,No)、判定部1102は、符号化対象ブロックを補正しないと判定し、動画像符号化装置1014は、ステップ1502以降の処理を行う。
図17の補正処理によれば、決定部1103が決定したグローバルベクトルに基づいて符号化対象ブロックの位置をずらすことで、ME効率が向上する場合に、符号化対象ブロックの位置が変更される。これにより、符号化対象パノラマ画像のME効率を向上させることができる。
図18は、符号化対象パノラマ画像を補正するか否かを符号化効率を用いて判定する動画像符号化処理の例を示すフローチャートである。ステップ1801~ステップ1806の処理は、図15のステップ1501~ステップ1506の処理と同様である。
符号化対象ブロックが前方向予測ピクチャのブロックである場合(ステップ1806,Yes)、動画像符号化装置1014は、ステップ1807の処理と、ステップ1808~ステップ1811の処理とを行う。ステップ1807の処理は、符号化対象ブロックを補正しない場合のステップ1802の処理と同様である。
ステップ1808において、変更部1101は、グローバルベクトルを用いて符号化対象ブロックの位置をずらすことで、補正された符号化対象ブロックを生成する。ステップ1809~ステップ1811の処理は、図15において符号化対象ブロックを補正する場合のステップ1508~ステップ1510の処理と同様である。
次に、変更部1101は、符号化対象画像内のすべてのブロックを符号化したか否かをチェックする(ステップ1812)。符号化していないブロックが残っている場合(ステップ1812,No)、動画像符号化装置1014は、次のブロックを符号化対象ブロックとして、ステップ1801以降の処理を繰り返す。
すべてのブロックを符号化した場合(ステップ1812,Yes)、変更部1101及び判定部1102は、符号化効率に基づく補正処理を行う(ステップ1813)。そして、動画像符号化装置1014は、ステップ1804以降の処理を行う。
図19は、図18のステップ1813における補正処理の例を示すフローチャートである。判定部1102は、T/Q1106が周波数信号を量子化する際に用いる量子化スケールと、ENT1107が生成するビットストリームの情報量とを用いて符号化効率を計算する。例えば、符号化対象パノラマ画像内のすべてのブロックに対する量子化スケールの平均値と、その符号化対象パノラマ画像から生成される符号の総ビット数との積を、その符号化対象パノラマ画像の符号化効率として用いることができる。
まず、判定部1102は、符号化対象パノラマ画像内のすべてのブロックに対するステップ1807の処理の結果から、符号化対象パノラマ画像を補正しない場合の符号化効率CE1を計算する(ステップ1901)。符号化効率CE1は、符号化対象パノラマ画像を補正しない場合の量子化スケールの平均値QP1と符号の総ビット数I1との積として求められる。
次に、判定部1102は、符号化対象パノラマ画像内のすべてのブロックに対するステップ1808~ステップ1811の処理の結果から、符号化対象パノラマ画像を補正した場合の符号化効率CE2を計算する(ステップ1902)。符号化効率CE2は、符号化対象パノラマ画像を補正した場合の量子化スケールの平均値QP2と符号の総ビット数I2との積として求められる。
次に、判定部1102は、CE1とCE2を比較する(ステップ1903)。CE2がCE1よりも小さい場合(ステップ1903,Yes)、判定部1102は、符号化対象パノラマ画像を補正すると判定する。そして、動画像符号化装置1014は、ステップ1808~ステップ1811の処理の結果を採用する(ステップ1905)。
一方、CE2がCE1以上である場合(ステップ1903,No)、判定部1102は、符号化対象パノラマ画像を補正しないと判定し、動画像符号化装置1014は、ステップ1807の処理の結果を採用する(ステップ1904)。
図19の補正処理によれば、決定部1103が決定したグローバルベクトルに基づいて符号化対象ブロックの位置をずらすことで、符号化効率が向上する場合に、符号化対象ブロックの位置が変更される。これにより、符号化対象パノラマ画像の符号化効率を向上させることができる。
図20は、図8の動画像復号装置801の具体例を示している。図20の動画像復号装置2001は、抽出部2011、変更部2012、ブロック復号部2013、加算部2014、動き補償部2015、予測画像生成部2016、及びフレームメモリ2017を含む。
抽出部2011は、図8の抽出部812に対応し、変更部2012は、補正部814に対応し、ブロック復号部2013、加算部2014、動き補償部2015、及び予測画像生成部2016は、復号部813に対応し、フレームメモリ2017は、記憶部811に対応する。
図11の動画像符号化装置1014が出力するビットストリームは、符号化パノラマ映像として、動画像復号装置2001に入力される。動画像復号装置2001は、符号化パノラマ映像に含まれる各時刻の符号化パノラマ画像を復号して、符号化対象パノラマ映像を復元する。
抽出部2011は、符号化パノラマ映像に含まれるヘッダ情報からグローバルベクトルの情報を抽出して、変更部2012へ出力する。
ブロック復号部2013は、符号化パノラマ画像内の各復号対象ブロックの係数情報を逆量子化して周波数信号を生成し、逆直交変換によって周波数信号を再構成予測誤差信号に変換する。そして、ブロック復号部2013は、再構成予測誤差信号を加算部2014へ出力する。
加算部2014は、予測画像生成部2016から出力される予測ブロック画像と、再構成予測誤差信号とを加算することで、復号ブロック画像を生成し、生成した復号ブロック画像をフレームメモリ2017へ出力する。抽出部2011から符号化パノラマ画像に対するグローバルベクトルが出力された場合、変更部2012は、グローバルベクトルに基づいて、復号ブロック画像の位置を変更前の符号化対象ブロックの位置に戻す。
フレームメモリ2017は、復号ブロック画像を蓄積し、蓄積した復号ブロック画像を参照画像として、動き補償部2015及び予測画像生成部2016へ出力する。符号化パノラマ画像内の複数の復号対象ブロックそれぞれから生成された複数の復号ブロック画像は、復号パノラマ画像に対応する。そして、変更部2012によって位置を変更された後の複数の復号ブロック画像は、復元された符号化対象パノラマ画像を表し、参照パノラマ画像に対応する。
動き補償部2015は、参照パノラマ画像から動きベクトルが示す参照画像を取得して、予測画像生成部2016へ出力する。
予測画像生成部2016は、参照画像を用いて、符号化パノラマ画像内の既に復号された周辺画素の画素値から、復号対象ブロックのイントラ予測ブロック画像を生成する。また、予測画像生成部2016は、動き補償部2015から出力される参照画像をインター予測ブロック画像として使用する。そして、予測画像生成部2016は、イントラ予測ブロック画像又はインター予測ブロック画像のいずれか一方を選択し、選択した予測ブロック画像を加算部2014へ出力する。
図21は、図20の動画像復号装置2001が行う動画像復号処理の具体例を示すフローチャートである。動画像復号装置2001は、符号化映像に含まれる各時刻の画像を復号対象画像として、復号対象画像をブロック毎に符号化する。
まず、動画像復号装置2001は、復号対象映像が全周囲パノラマ映像であるか否かをチェックする(ステップ2101)。復号対象映像が全周囲パノラマ映像ではない場合(ステップ2101,No)、動画像復号装置2001は、復号対象ブロックをそのまま復号する(ステップ2102)。
一方、復号対象映像が全周囲パノラマ映像である場合(ステップ2101,Yes)、抽出部2011は、ヘッダ情報からグローバルベクトルの情報を抽出する(ステップ2105)。
次に、動画像復号装置2001は、復号対象ブロックが前方向予測ピクチャのブロックであるか否かをチェックする(ステップ2106)。復号対象ブロックが前方向予測ピクチャのブロックではない場合(ステップ2106,No)、動画像復号装置2001は、ステップ2102以降の処理を行う。
一方、復号対象ブロックが前方向予測ピクチャのブロックである場合(ステップ2106,Yes)、動画像復号装置2001は、復号対象ブロックを復号する(ステップ2107)。そして、変更部2012は、グローバルベクトルに基づいて、復号ブロック画像の位置を変更前の符号化対象ブロックの位置に戻す(ステップ2108)。このとき、変更部2012は、復号ブロック画像の位置を、グローバルベクトルとは逆の向きにグローバルベクトルの大きさだけずらすことで、補正された復号ブロック画像を生成して、フレームメモリ2017に書き込む。
次に、動画像復号装置2001は、復号対象画像内のすべてのブロックを復号したか否かをチェックする(ステップ2103)。復号していないブロックが残っている場合(ステップ2103,No)、動画像復号装置2001は、次のブロックを復号対象ブロックとして、ステップ2101以降の処理を繰り返す。
すべてのブロックを復号した場合(ステップ2103,Yes)、動画像復号装置2001は、復号対象映像に含まれるすべての画像を復号したか否かをチェックする(ステップ2104)。復号していない画像が残っている場合(ステップ2104,No)、動画像復号装置2001は、次の画像を復号対象画像として、ステップ2101以降の処理を繰り返す。そして、すべての画像を復号した場合(ステップ2104,Yes)、動画像復号装置2001は、処理を終了する。
次に、図11の動画像符号化装置1014が図6の動画像符号化装置601に対応する場合の動作について説明する。この場合、変更部1101及び判定部1102は、補正部613に対応し、決定部1103は、決定部612に対応する。減算部1105、T/Q1106、ENT1107、IQ/IT1108、加算部1109、動き補償部1110、及び予測画像生成部1111は、符号化部614に対応し、フレームメモリ1112は、記憶部611に対応する。
図10の撮影部1011が移動している場合、時間の経過とともに全周囲パノラマ映像の撮影範囲が変化し、写っている被写体も変化することが想定される。この場合、全周囲パノラマ映像に含まれる各パノラマ画像の全体を展開パノラマ画像に変換しても、1つの動画として捉えることは難しい。そこで、図3に示したように、各パノラマ画像から一部の領域を抽出して矩形状に変換することで、抽出した部分領域の動画を生成することが効果的である。
この場合、合成部1012は、撮影部1011に含まれる複数の撮像装置が撮影した複数の映像を組み合わせることで、符号化対象パノラマ映像を生成することができる。展開部1013が生成する展開パノラマ画像は、符号化対象パノラマ画像として、動画像符号化装置1014に入力される。
決定部1103は、動き補償部1110から出力される動きベクトルを用いて、フレームメモリ1112が記憶する参照画像に対する符号化対象ブロックのずれ量を表すグローバルベクトルを決定する。そして、決定部1103は、決定したグローバルベクトルを変更部1101へ出力する。
例えば、決定部1103は、符号化対象パノラマ画像内の特定のブロックの動きベクトルをグローバルベクトルに決定することができる。この場合、動き補償部1110は、事前に符号化対象パノラマ画像内のすべてのブロックに対する動き推定を実施し、各ブロックの動きベクトルを求めて、決定部1103へ出力する。そして、決定部1103は、特定のブロックの動きベクトルを選択して、グローバルベクトルに決定する。
特定のブロックの動きベクトルをグローバルベクトルとして用いることで、そのブロックの動きに合わせて、符号化対象パノラマ画像から抽出される部分領域の位置をずらすことができる。これにより、特定のブロックに写っている被写体が常に画面内の同じ位置に写るように、画面に表示される部分領域の画像が補正されるため、特定の被写体を追従する映像を生成することが可能になる。
例えば、動画像符号化装置1014がタッチパネルを搭載した表示装置を含む場合、決定部1103は、画面内でユーザがタッチした位置が属するブロックのアドレスを求め、そのアドレスを用いて特定のブロックを決定することができる。動画像符号化装置1014がタッチパネルを含まない場合は、画面内の位置を示す座標からブロックのアドレスを計算し、計算したアドレスを用いて特定のブロックを指定することができる。
例えば、ブロックサイズが16×16であり、画面内で指定する画素の座標が(x,y)である場合、ブロックのアドレスは[x/16,y/16]となる。また、ブロックサイズが64×64であり、画面内で指定する画素の座標が(x,y)である場合、ブロックのアドレスは[x/64,y/64]となる。
図22は、動画像符号化装置1014が動画像符号化装置601に対応する場合の動画像符号化処理の具体例を示すフローチャートである。動画像符号化装置1014は、符号化対象映像に含まれる各時刻の画像を符号化対象画像として、符号化対象画像をブロック毎に符号化する。
符号化対象映像が全周囲パノラマ映像である場合、動画像符号化装置1014は、符号化対象パノラマ画像から抽出される1つ又は複数の部分領域を対象として、その部分領域の画像をブロック毎に符号化する。
まず、変更部1101は、符号化対象映像が全周囲パノラマ映像であるか否かをチェックする(ステップ2201)。
符号化対象映像が全周囲パノラマ映像ではない場合(ステップ2201,No)、変更部1101は、符号化対象ブロックをそのまま減算部1105及び動き補償部1110へ出力する。そして、動画像符号化装置1014は、符号化対象ブロックを符号化する(ステップ2202)。
一方、符号化対象映像が全周囲パノラマ映像である場合(ステップ2201,Yes)、決定部1103は、符号化対象パノラマ画像のグローバルベクトルを決定する(ステップ2205)。
次に、変更部1101は、符号化対象パノラマ画像内において、符号化対象ブロックの位置を、グローバルベクトルとは逆の向きにグローバルベクトルの大きさだけずらすことで、新たな符号化対象ブロックを設定する(ステップ2206)。そして、動画像符号化装置1014は、設定された新たな符号化対象ブロックを符号化する(ステップ2207)。部分領域内の各ブロックの位置をグローバルベクトルとは逆の向きにずらすことにより、部分領域の起点を変更して、補正された部分領域を生成することができる。
次に、変更部1101は、符号化対象画像又は部分領域内のすべてのブロックを符号化したか否かをチェックする(ステップ2203)。符号化していないブロックが残っている場合(ステップ2203,No)、動画像符号化装置1014は、次のブロックを符号化対象ブロックとして、ステップ2201以降の処理を繰り返す。
すべてのブロックを符号化した場合(ステップ2203,Yes)、変更部1101は、符号化対象映像に含まれるすべての画像を符号化したか否かをチェックする(ステップ2204)。符号化していない画像が残っている場合(ステップ2204,No)、動画像符号化装置1014は、次の画像を符号化対象画像として、ステップ2201以降の処理を繰り返す。そして、すべての画像を符号化した場合(ステップ2204,Yes)、動画像符号化装置1014は、処理を終了する。
図22の動画像符号化処理では、図15の動画像符号化処理とは異なり、グローバルベクトルに基づいて復号ブロック画像の位置を元の位置に戻す処理は行われない。また、動画像復号装置においても、復号ブロック画像の位置を元の位置に戻す処理は行われないため、動画像符号化装置1014は、グローバルベクトルの情報を動画像復号装置へ送信する必要はない。
図22の動画像符号化処理によれば、撮影部1011が移動することで複数の撮像装置それぞれの映像の撮影範囲が変化した場合であっても、特定のブロックの動きに応じて、符号化対象パノラマ画像から抽出される部分領域の起点を変更することができる。これにより、部分領域内の各ブロックに対して生成される動きベクトル情報を抑制することが可能になるとともに、各ブロックに対して適切な動き推定を行うことが可能になる。したがって、ME効率及び符号化効率が向上する。
図4、図6、及び図11の動画像符号化装置の構成は一例に過ぎず、動画像符号化装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図11の動画像符号化装置1014において、エントロピー符号化を行わない場合、ENT1107を省略することができる。
図8及び図20の動画像復号装置の構成は一例に過ぎず、動画像復号装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。図10のパノラマ映像符号化システムの構成は一例に過ぎず、パノラマ映像符号化システムの用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、撮影部1011が1台の撮像装置のみを含む場合、合成部1012を省略することができる。
図5、図7、図9、図15~図19、図21、及び図22に示したフローチャートは一例に過ぎず、動画像符号化装置又は動画像復号装置の構成又は条件に応じて、一部の処理を省略又は変更してもよい。例えば、図15の動画像符号化処理において、入力される符号化対象映像が全周囲パノラマ映像に限られる場合、ステップ1501及びステップ1502の処理を省略することができる。決定部1103は、ステップ1505の処理をブロック毎に毎回行う必要はなく、1枚の符号化対象パノラマ画像に対して1回のみ、ステップ1505の処理を行ってもよい。
図17の補正処理において、動き補償部1110は、SADの代わりに、参照パノラマ画像と符号化対象パノラマ画像との差分を表す別の指標を計算し、判定部1102は、その指標を用いて符号化対象ブロックを補正するか否かを判定してもよい。
図18の動画像符号化処理において、入力される符号化対象映像が全周囲パノラマ映像に限られる場合、ステップ1801及びステップ1802の処理を省略することができる。決定部1103は、ステップ1805の処理をブロック毎に毎回行う必要はなく、1枚の符号化対象パノラマ画像に対して1回のみ、ステップ1805の処理を行ってもよい。
図19の補正処理において、判定部1102は、量子化スケールの平均値の代わりに、中央値、最大値等の別の統計値を用いて、符号化効率を計算してもよい。
図21の動画像復号処理において、入力される復号対象映像が全周囲パノラマ映像に限られる場合、ステップ2101及びステップ2102の処理を省略することができる。抽出部2011は、ステップ2105の処理をブロック毎に毎回行う必要はなく、1枚の復号対象画像に対して1回のみ、ステップ2105の処理を行ってもよい。
図22の動画像符号化処理において、入力される符号化対象映像が全周囲パノラマ映像に限られる場合、ステップ2201及びステップ2202の処理を省略することができる。決定部1103は、ステップ2205の処理をブロック毎に毎回行う必要はなく、1枚の符号化対象パノラマ画像に対して1回のみ、ステップ2205の処理を行ってもよい。
図1~図3の展開パノラマ画像は一例に過ぎず、パノラマ映像符号化システムの構成又は条件に応じて、別の展開パノラマ画像を用いてもよい。
図12~図14の全周囲パノラマ画像は一例に過ぎず、撮影範囲に存在する被写体に応じて全周囲パノラマ画像は変化する。符号化対象パノラマ画像に写った被写体の移動方向は、水平方向に限られず、垂直方向又は斜め方向である場合もある。符号化対象パノラマ画像全体の動きが垂直方向又は斜め方向であっても、図5、図7、図15、図18、及び図22の動画像符号化処理と図9及び図21の動画像復号処理を適用することができる。符号化対象パノラマ画像の直前の時刻における符号化済みのパノラマ画像の代わりに、別の時刻における符号化済みのパノラマ画像を、参照パノラマ画像として用いてもよい。
図23は、図4、図6、又は図11の動画像符号化装置、図8又は図20の動画像復号装置として用いられる情報処理装置(コンピュータ)の構成例を示している。図23の情報処理装置は、Central Processing Unit(CPU)2301、メモリ2302、入力装置2303、出力装置2304、補助記憶装置2305、媒体駆動装置2306、及びネットワーク接続装置2307を備える。これらの構成要素はバス2308により互いに接続されている。
メモリ2302は、例えば、Read Only Memory(ROM)、Random Access Memory(RAM)、フラッシュメモリ等の半導体メモリであり、動画像符号化処理又は動画像復号処理に用いられるプログラム及びデータを記憶する。メモリ2302は、図4の記憶部411、図6の記憶部611、図8の記憶部811、図11のフレームメモリ1112、及び図20のフレームメモリ2017として用いることができる。
CPU2301(プロセッサ)は、例えば、メモリ2302を利用してプログラムを実行することにより、図4の決定部412、補正部413、及び符号化部414として動作する。CPU2301は、メモリ2302を利用してプログラムを実行することにより、図6の決定部612、補正部613、及び符号化部614としても動作する。CPU2301は、メモリ2302を利用してプログラムを実行することにより、図8の抽出部812、復号部813、及び補正部814としても動作する。
CPU2301は、メモリ2302を利用してプログラムを実行することにより、図11の変更部1101、判定部1102、決定部1103、変更部1104、減算部1105、T/Q1106、及びENT1107としても動作する。CPU2301は、IQ/IT1108、加算部1109、動き補償部1110、及び予測画像生成部1111としても動作する。
CPU2301は、メモリ2302を利用してプログラムを実行することにより、図20の抽出部2011、変更部2012、ブロック復号部2013、加算部2014、動き補償部2015、及び予測画像生成部2016としても動作する。
入力装置2303は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置2304は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。情報処理装置が動画像復号装置である場合、処理結果は、復元された符号化対象パノラマ映像であってもよい。
補助記憶装置2305は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置2305は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置2305にプログラム及びデータを格納しておき、それらをメモリ2302にロードして使用することができる。
媒体駆動装置2306は、可搬型記録媒体2309を駆動し、その記録内容にアクセスする。可搬型記録媒体2309は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体2309は、Compact Disk Read Only Memory(CD-ROM)、Digital Versatile Disk(DVD)、又はUniversal Serial Bus(USB)メモリであってもよい。ユーザ又はオペレータは、この可搬型記録媒体2309にプログラム及びデータを格納しておき、それらをメモリ2302にロードして使用することができる。
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体には、メモリ2302、補助記憶装置2305、及び可搬型記録媒体2309のような、物理的な(非一時的な)記録媒体が含まれる。
ネットワーク接続装置2307は、Local Area Network(LAN)、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置が動画像符号化装置である場合、ネットワーク接続装置2307は、符号化パノラマ映像のビットストリームを動画像復号装置へ送信することができる。情報処理装置が動画像復号装置である場合、ネットワーク接続装置2307は、符号化パノラマ映像のビットストリームを動画像符号化装置から受信することができる。
情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置2307を介して受け取り、それらをメモリ2302にロードして使用することもできる。
なお、情報処理装置が図23のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、ユーザ又はオペレータとのインタフェースが不要の場合は、入力装置2303及び出力装置2304を省略してもよい。また、情報処理装置が可搬型記録媒体2309にアクセスしない場合は、媒体駆動装置2306を省略してもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図23を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
撮像装置が撮影したパノラマ映像に含まれるパノラマ画像を展開した符号化対象パノラマ画像を符号化するために用いられる参照パノラマ画像を記憶する記憶部と、
前記参照パノラマ画像に対する前記符号化対象パノラマ画像のずれ量を表すベクトルを決定する決定部と、
前記符号化対象パノラマ画像内における複数の符号化対象領域それぞれの位置を前記ずれ量を表すベクトルに基づいて補正することで、補正された符号化対象パノラマ画像を生成する補正部と、
前記補正された符号化対象パノラマ画像内の前記複数の符号化対象領域それぞれの画像を、前記参照パノラマ画像を用いて符号化する符号化部と、
を備えることを特徴とする動画像符号化装置。
(付記2)
前記決定部は、補正前の前記複数の符号化対象領域それぞれの動きベクトルのうち、他の動きベクトルよりも多く発生する動きベクトルを、前記ずれ量を表すベクトルに決定することを特徴とする付記1記載の動画像符号化装置。
(付記3)
前記補正部は、補正前の前記符号化対象パノラマ画像内における動きベクトルの総数に対する前記ずれ量を表すベクトルの個数の比率が、所定値よりも大きい場合、前記補正前の前記複数の符号化対象領域それぞれの位置を前記ずれ量を表すベクトルに基づいて補正することを特徴とする付記2記載の動画像符号化装置。
(付記4)
前記補正部は、前記参照パノラマ画像と補正前の前記符号化対象パノラマ画像とを用いた第1動き推定に基づく第1差分を求め、前記参照パノラマ画像と前記補正された前記符号化対象パノラマ画像とを用いた第2動き推定に基づく第2差分を求め、前記第2差分が前記第1差分よりも小さい場合、前記補正前の前記複数の符号化対象領域それぞれの位置を前記ずれ量を表すベクトルに基づいて補正することを特徴とする付記2記載の動画像符号化装置。
(付記5)
前記補正部は、前記参照パノラマ画像と補正前の前記符号化対象パノラマ画像とを用いた第1動き推定に基づく量子化スケールと、前記第1動き推定に基づく符号の情報量とを求め、前記参照パノラマ画像と前記補正された前記前記符号化対象パノラマ画像とを用いた第2動き推定に基づく量子化スケールと、前記第2動き推定に基づく符号の情報量とを求め、前記第2動き推定に基づく量子化スケールと前記第2動き推定に基づく符号の情報量との積が、前記第1動き推定に基づく量子化スケールと前記第1動き推定に基づく符号の情報量との積よりも小さい場合、前記補正前の前記複数の符号化対象領域それぞれの位置を前記ずれ量を表すベクトルに基づいて補正することを特徴とする付記2記載の動画像符号化装置。
(付記6)
複数の撮像装置が撮影した複数の映像を組み合わせたパノラマ映像に含まれる符号化対象パノラマ画像を符号化するために用いられる参照画像を記憶する記憶部と、
前記複数の映像それぞれの撮影範囲が移動することによって、前記符号化対象パノラマ画像内の符号化対象領域が前記参照画像に対してずれた場合、前記参照画像に対する前記符号化対象領域のずれ量を表すベクトルを決定する決定部と、
前記符号化対象パノラマ画像内における前記符号化対象領域の位置を前記ずれ量を表すベクトルに基づいて補正することで、補正された符号化対象領域を生成する補正部と、
前記補正された符号化対象領域の画像を、前記参照画像を用いて符号化する符号化部と、
を備えることを特徴とする動画像符号化装置。
(付記7)
撮像装置が撮影したパノラマ映像に含まれるパノラマ画像を展開した符号化対象パノラマ画像を符号化することで生成される符号化パノラマ画像を含む、符号化パノラマ映像を復号する動画像復号装置であって、
前記符号化パノラマ画像を復号するために用いられる参照パノラマ画像を記憶する記憶部と、
前記参照パノラマ画像に対する前記符号化対象パノラマ画像のずれ量を表すベクトルを、前記符号化パノラマ映像から抽出する抽出部と、
前記符号化パノラマ画像内の複数の復号対象領域それぞれを前記参照パノラマ画像を用いて復号して、復号パノラマ画像を生成する復号部と、
前記復号パノラマ画像内における前記複数の復号対象領域それぞれの位置を前記ずれ量を表すベクトルに基づいて補正することで、前記符号化対象パノラマ画像を復元する補正部と、
を備えることを特徴とする動画像復号装置。
(付記8)
撮像装置が撮影したパノラマ映像に含まれるパノラマ画像を展開した符号化対象パノラマ画像を符号化するために用いられる参照パノラマ画像を用いて、前記参照パノラマ画像に対する前記符号化対象パノラマ画像のずれ量を表すベクトルを決定し、
前記符号化対象パノラマ画像内における複数の符号化対象領域それぞれの位置を前記ずれ量を表すベクトルに基づいて補正することで、補正された符号化対象パノラマ画像を生成し、
前記補正された符号化対象パノラマ画像内の前記複数の符号化対象領域それぞれの画像を、前記参照パノラマ画像を用いて符号化する、
処理をコンピュータに実行させる動画像符号化プログラム。
(付記9)
前記コンピュータは、補正前の前記複数の符号化対象領域それぞれの動きベクトルのうち、他の動きベクトルよりも多く発生する動きベクトルを、前記ずれ量を表すベクトルに決定することを特徴とする付記8記載の動画像符号化プログラム。
(付記10)
複数の撮像装置が撮影した複数の映像それぞれの撮影範囲が移動することによって、前記複数の映像を組み合わせたパノラマ映像に含まれる符号化対象パノラマ画像を符号化するために用いられる参照画像に対して、前記符号化対象パノラマ画像内の符号化対象領域がずれた場合、前記参照画像に対する前記符号化対象領域のずれ量を表すベクトルを決定し、
前記符号化対象パノラマ画像内における前記符号化対象領域の位置を前記ずれ量を表すベクトルに基づいて補正することで、補正された符号化対象領域を生成し、
前記補正された符号化対象領域の画像を、前記参照画像を用いて符号化する、
処理をコンピュータに実行させる動画像符号化プログラム。
(付記11)
撮像装置が撮影したパノラマ映像に含まれるパノラマ画像を展開した符号化対象パノラマ画像を符号化することで生成される符号化パノラマ画像を含む、符号化パノラマ映像を復号するコンピュータに、
前記符号化パノラマ画像を復号するために用いられる参照パノラマ画像に対する、前記符号化対象パノラマ画像のずれ量を表すベクトルを、前記符号化パノラマ映像から抽出し、
前記符号化パノラマ画像内の複数の復号対象領域それぞれを前記参照パノラマ画像を用いて復号して、復号パノラマ画像を生成し、
前記復号パノラマ画像内における前記複数の復号対象領域それぞれの位置を前記ずれ量を表すベクトルに基づいて補正することで、前記符号化対象パノラマ画像を復元する、
処理を実行させる動画像復号プログラム。
(付記12)
コンピュータが、
撮像装置が撮影したパノラマ映像に含まれるパノラマ画像を展開した符号化対象パノラマ画像を符号化するために用いられる参照パノラマ画像を用いて、前記参照パノラマ画像に対する前記符号化対象パノラマ画像のずれ量を表すベクトルを決定し、
前記符号化対象パノラマ画像内における複数の符号化対象領域それぞれの位置を前記ずれ量を表すベクトルに基づいて補正することで、補正された符号化対象パノラマ画像を生成し、
前記補正された符号化対象パノラマ画像内の前記複数の符号化対象領域それぞれの画像を、前記参照パノラマ画像を用いて符号化する、
ことを特徴とする動画像符号化方法。
(付記13)
前記コンピュータは、補正前の前記複数の符号化対象領域それぞれの動きベクトルのうち、他の動きベクトルよりも多く発生する動きベクトルを、前記ずれ量を表すベクトルに決定することを特徴とする付記12記載の動画像符号化方法。
(付記14)
コンピュータが、
複数の撮像装置が撮影した複数の映像それぞれの撮影範囲が移動することによって、前記複数の映像を組み合わせたパノラマ映像に含まれる符号化対象パノラマ画像を符号化するために用いられる参照画像に対して、前記符号化対象パノラマ画像内の符号化対象領域がずれた場合、前記参照画像に対する前記符号化対象領域のずれ量を表すベクトルを決定し、
前記符号化対象パノラマ画像内における前記符号化対象領域の位置を前記ずれ量を表すベクトルに基づいて補正することで、補正された符号化対象領域を生成し、
前記補正された符号化対象領域の画像を、前記参照画像を用いて符号化する、
ことを特徴とする動画像符号化方法。
(付記15)
撮像装置が撮影したパノラマ映像に含まれるパノラマ画像を展開した符号化対象パノラマ画像を符号化することで生成される符号化パノラマ画像を含む、符号化パノラマ映像を復号するコンピュータが、
前記符号化パノラマ画像を復号するために用いられる参照パノラマ画像に対する、前記符号化対象パノラマ画像のずれ量を表すベクトルを、前記符号化パノラマ映像から抽出し、
前記符号化パノラマ画像内の複数の復号対象領域それぞれを前記参照パノラマ画像を用いて復号して、復号パノラマ画像を生成し、
前記復号パノラマ画像内における前記複数の復号対象領域それぞれの位置を前記ずれ量を表すベクトルに基づいて補正することで、前記符号化対象パノラマ画像を復元する、
ことを特徴とする動画像復号方法。