(57)【要約】【課題】複数の入力画像から生成される任意視点画像の画質を向上させる画像処理装置を提供すること。【解決手段】任意視点と該任意視点の画像上の画素位置を通る第一の直線に沿う点が複数の入力画像の各々に投影される投影位置の画像情報を取得する取得手段と、前記第一の直線に沿う点について前記取得手段により取得される画像情報を用いて、前記画素位置における前記複数の入力画像の視差情報を算出する算出手段と、前記画素位置の画像情報を、該画素位置に対する視差情報を用いて前記複数の入力画像から算出することにより、前記任意視点の画像を生成する生成手段とを有することを特徴とする構成とした。【選択図】図１
2014026641.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力画像を用いて任意視点の画像を生成する画像処理装置であって、
前記任意視点と該任意視点の画像上の画素位置を通る第一の直線に沿う点が前記複数の入力画像の各々に投影される投影位置の画像情報を取得する取得手段と、
前記第一の直線に沿う点について前記取得手段により取得される画像情報を用いて、前記画素位置における前記複数の入力画像の視差情報を算出する算出手段と、
前記画素位置の画像情報を、該画素位置に対する視差情報を用いて前記複数の入力画像から算出することにより、前記任意視点の画像を生成する生成手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記取得手段は、
前記第一の直線に沿う点と前記入力画像の視点を通る第二の直線が、前記入力画像の投影面と交わる位置を前記投影位置に決定し、前記投影位置における画像情報を、前記入力画像の該投影位置に隣接する画素の情報を用いて補間することにより生成することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記任意視点の画像を分割して得られた任意視点ブロックに含まれる複数の画素位置と前記任意視点を通る複数の第一の直線に沿う前記任意視点からの距離が等しい複数の点を設定し、前記複数の点と前記入力画像の視点を通る複数の第二の直線が前記入力画像の投影面と交わる複数の投影位置の画像情報を前記取得手段を用いて得ることにより、前記任意視点ブロックに対応した前記入力画像におけるブロック画像を決定する決定手段を更に備え、
前記算出手段は、前記決定手段により決定されたブロック画像の情報に基づいて前記任意視点ブロックに対する視差情報を、該任意視点ブロックの中の全ての画素位置に対する視差情報として算出することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記算出手段は、前記第一の直線に沿って、前記任意視点からの複数の距離に複数の点を設定し、各距離において前記複数の入力画像から前記取得手段により取得された画像情報についてマッチング評価値を算出し、前記複数の点のうち最も高いマッチング評価値が得られた距離に基づいて前記視差情報を算出する、ことを特徴とする特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記算出手段は、最も高いマッチング評価値が前記第一の直線に沿う２つ以上の点について算出された場合は、前記任意視点に最も近い距離に基づいて前記視差情報を算出することを特徴とすること請求項４記載の画像処理装置。
【請求項６】
前記生成手段は、前記複数の入力画像から取得された複数の画像情報を加重平均することにより前記画素位置の画像情報を生成することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記入力画像の投影面は、平面、球面、円筒面のいずれかであることを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
複数の入力画像を用いて任意視点の画像を生成する画像処理装置の制御方法であって、  生成手段が、前記任意視点と該任意視点の画像上の画素位置を通る第一の直線に沿う点が前記複数の入力画像の各々に投影される投影位置の画像情報を取得工程と、
算出手段が、前記第一の直線に沿う点について前記取得工程で取得された画像情報を用いて、前記画素位置における前記複数の入力画像の視差情報を算出する算出工程と、
生成手段が、前記画素位置の画像情報を、該画素位置に対する視差情報を用いて前記複数の画像から算出することにより、前記任意視点の画像を生成する生成工程と、
を有することを特徴とする画像処理装置の制御方法。
【請求項９】
請求項８に記載された制御方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１０】
前記任意視点ブロックに含まれる前記複数の画素位置、および画素数が、前記任意視点ブロックの画素値によって決定されることを特徴とする請求項２および３に記載の画像処理装置。
【請求項１１】
前記任意視点ブロックの画素値は、前記任意視点ブロックの平均画素値であることを特徴とする請求項１０に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数視点より撮像された複数の画像から任意視点における画像を生成する、画像処理装置、その制御方法、およびプログラムに関する。
【背景技術】
【０００２】
異なる複数視点より撮像された全周画像（視点から３６０°の全周囲が記録された画像）を用いて、任意視点から撮像した場合に得られる画像を生成する技術（任意視点映像生成技術）が提案されている。一般に、このような任意視点画像生成処理を行なう技術としては、特許文献１や非特許文献１などが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１７５７６２号公報
【非特許文献】
【０００４】
【非特許文献１】視点位置に応じた３次元メッシュモデルの逐次生成による全方位動画像からの自由視点画像生成（「画像の認識・理解シンポジウム（ＭＩＲＵ２００９）」−２００９年７月）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１には、複数の撮像装置から取得した複数の全周画像を用いて、任意視点からの画像を生成する構成が記載されている。特許文献１で示される技術では、入力画像から抽出される特徴点を用いて、任意視点画像を生成する際に用いる視差情報を算出している。より具体的には、一方の入力画像視点とその入力画像上の特徴点を結ぶ視線方向をマッチングの基準として、他方の入力画像から抽出される特徴点をマッチングさせていた。ここで、マッチングにより得られる特徴点間の位置ずれ量に関する情報が視差情報として検出される。このように、視差情報は、一方の入力画像の視点とその入力画像上の特徴点とを結ぶ視線方向を基準として検出されるため、この視線方向以外の画像領域において視差情報を検出することは困難であった。
【０００６】
また、非特許文献１に示される技術では、視差情報により任意視点映像を生成する際に、視差が検出されない画像領域においては、隣接する特徴点位置における視差情報を用いて、画像情報を補償していた。用いた視差情報は幾何的に正確ではなく、このため、任意視点映像の画質が低かった。
【０００７】
本発明は、上記課題に鑑みてなされたものであり、複数の入力画像から生成される任意視点画像の画質を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための、本発明の一態様による画像処理装置は以下の構成を有する。すなわち、
複数の入力画像を用いて任意視点の画像を生成する画像処理装置であって、
前記任意視点と該任意視点の画像上の画素位置を通る第一の直線に沿う点が前記複数の入力画像の各々に投影される投影位置の画像情報を取得する取得手段と、
前記第一の直線に沿う点について前記取得手段により取得される画像情報を用いて、前記画素位置における前記複数の入力画像の視差情報を算出する算出手段と、
前記画素位置の画像情報を、該画素位置に対する視差情報を用いて前記複数の入力画像から算出することにより、前記任意視点の画像を生成する生成手段と、を有する。
【発明の効果】
【０００９】
本発明によれば、複数の入力画像から生成される任意視点画像の画質を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態による任意視点画像の生成を説明する模式図。
【図２】実施形態のコンピュータのハードウェア構成例を示す図。
【図３】実施形態の入力装置を示す模式図。
【図４】実施形態の入力画像の投影形状を示す模式図。
【図５】実施形態による全体の処理を示すフローチャート。
【図６】実施形態による視差マップ生成処理を示すフローチャート。
【図７】実施形態による入力画像を用いたブロック分割処理を説明する図。
【図８】実施形態による処理を示すフローチャート。
【図９】実施形態による処理を示すフローチャート。
【図１０】実施形態による画素補間生成処理を示す模式図。
【図１１】実施形態による処理を示すフローチャート。
【図１２】実施形態２による視差マップ生成処理を示すフローチャート。
【図１３】実施形態２によるコンピュータグラフィックス用光源画像生成処理の概要を示す図。
【図１４】実施形態２による視差マップ生成処理内のブロック画像解像度決定の概要を示す図。
【発明を実施するための形態】
【００１１】
以下、添付の図面を参照して本発明の好適な実施形態について説明する。
【００１２】
［実施形態１］
本実施形態の概要として、図を用いて本発明の従来技術に対する差異・特徴を説明する。図１は、特許文献１に記載された技術と本実施形態との違いを説明するための模式図である。一般的に、視差情報（視差ベクトル）を算出するためには、複数の画像を用いて、画像データの対応位置を特定する必要がある。特許文献１に記載の技術および本実施形態では、３次元空間における３次元モデルに基づいて、その視差情報を算出する。
【００１３】
なお、本実施形態においては、２次元空間における２次元モデルを併用して説明を行なう。以下の説明において、３次元空間の所定の位置に視点が配置される全周画像は、ＸＺ平面上に配置されるものとする。また、説明中で用いられる光線関数は以下の直線関数である。
Ｒ（ｔ）＝Ｏ＋ｔＤ    数１
数１において、ｔはスカラーで表される距離パラメータであり、Ｒ（ｔ）、Ｏ、Ｄはベクトルである。３次元空間における３次元モデルでは、ベクトルは３次元ベクトルであり、座標値や方向を示すために用いられる。２次元空間における２次元モデルではベクトルは２次元ベクトルであり、同様に座標値や方向を示すために用いられる。
【００１４】
図１（Ａ）は、特許文献１に記載されている、視差情報の算出方法を示す模式図である。図１（Ａ）において、１０１、１０２は入力画像を表す。特許文献１においては、これらの入力画像のうち一つを選択する。ここでは、入力画像１０１を選択し、さらに、入力画像１０１の投影面に対応した所定の円周上の一点ｐ１＿ｉ１を選択する。なお、円周上の点には、画像情報が記録されている。入力画像１０１は、円中心Ｏ＿１が定義されており、当該円中心Ｏ＿１の座標値Ｏ１と所定の一点ｐ１＿ｉ１より、以下の数２で表される直線Ｒ１を描くことができる。数２において、Ｄ１は円中心Ｏ＿１と点ｐ１＿ｉ１より算出される方向ベクトルであり、大きさが１の単位方向ベクトルである。ｔ１は距離パラメータである。
Ｒ１（ｔ１）＝Ｏ１＋ｔ１×Ｄ１    数２
数２において、ｔ１に所定の値を入力することで、数１で表される直線上の点を特定できる。例えば、点ｐ１＿ｉ１が図１（Ａ）のように特定されるときはｔ１＝１である。また、点ｐ１＿ｉ２、ｐ１＿ｉ３、ｐ１＿ｉ４が図１（Ａ）のように特定されるときは、それぞれｔ１＝ａ、ｔ１＝ｂ、ｔ１＝ｃ（１＜ａ＜ｂ＜ｃ）である。
【００１５】
次に、平面上の特徴点ｐ１＿ｉ２の、入力画像１０２における投影位置ｐ２＿ｉ２を算出する。まず、投影位置ｐ２＿ｉ２と円中心Ｏ＿２を通る直線Ｒ２は数２のように表される。ここでＯ２は円中心Ｏ＿２のの座標値あり、Ｄ２は円中心Ｏ＿２と点ｐ１＿ｉ２より算出される単位方向ベクトルである。ｔ２は距離パラメータである。
Ｒ２（ｔ２）＝Ｏ２＋ｔ２×Ｄ２    数３
数３を数４のように式変形することで、投影位置ｐ２＿ｉ２を得る。数４において、ｓｔａｎｄは入力されたベクトルの単位ベクトルを返す関数（Ｒ’＝ｓｔａｎｄ（Ｒ））である。
Ｄ２＝ｓｔａｎｄ（Ｒ２（ｔ２）−Ｏ２）    数４
ここで単位ベクトルとｓｔａｎｄについて補足する。ベクトルＲに対してその単位ベクトルＲ’は、Ｒ’＝Ｒ／｜Ｒ｜＝Ｒ／ｒと表される。ここで、ｒ＝｜Ｒ｜はベクトルＲの長さである。
【００１６】
ｘｙｚの３次元空間を扱うときは、Ｒ＝ｘＩ＋ｙＪ＋ｚＫと表すことができる。Ｉ、Ｊ、Ｋはそれぞれ、ｘ、ｙ、ｚの各軸方向の単位ベクトルである。ベクトルの長さは｜Ｒ｜＝ｓｑｒｔ（ｘ２＋ｙ２＋ｚ２）と表される。ｓｑｒｔは入力された値の平方根を返す関数である。したがって、単位ベクトルＲ’は以下の数５で表される。
Ｒ’＝ｓｔａｎｄ（Ｒ）＝ｘ／｜Ｒ｜Ｉ＋ｙ／｜Ｒ｜Ｊ＋ｚ／｜Ｒ｜Ｋ    数５
ｘｚの２次元平面を扱うときは、Ｒ＝ｘＩ＋ｚＫと表すことができる。ベクトルの長さは｜Ｒ｜＝ｓｑｒｔ（ｘ２＋ｚ２）と表される。したがって、単位ベクトルＲ’は以下の数６で表される。
Ｒ’＝ｓｔａｎｄ（Ｒ）＝ｘ／｜Ｒ｜Ｉ＋ｚ／｜Ｒ｜Ｋ    数６
【００１７】
次に、点ｐ１＿ｉ１に記録されている画像情報と投影位置ｐ２＿ｉ２に記録されている画像情報とのマッチング評価値を算出する。このマッチング評価値をｉ（１−２）とする。なお、マッチング評価値についての詳細は後述する。同様に、特徴点ｐ１＿ｉ３についても、入力画像１０２における投影位置ｐ２＿ｉ３を算出する。そして、点ｐ１＿ｉ１に記録されている画像情報と投影位置ｐ２＿ｉ３に記録されている画像情報とのマッチング評価値ｉ（１−３）を算出する。特徴点ｐ１＿ｉ４についても同様にして、マッチング評価値ｉ（１−４）を算出する。
【００１８】
上述のようにして算出されたマッチング評価値ｉ（１−２）、ｉ（１−３）、ｉ（１−４）を比較することにより、視差が算出される。この特許文献１に記載の視差とは、具体的には、マッチング評価値が一番高かった平面上の特徴点（ｐ１＿ｉ２、ｐ１＿ｉ３、ｐ１＿ｉ４のいずれか）までの円中心Ｏ＿１からの距離である。
【００１９】
視差がｉ（１−２）と算出された場合、任意視点画像１０３からは、任意視点画像１０３の円中心Ｏ＿３と特徴点ｐ１＿ｉ２を結ぶ直線上の投影位置ｐ３＿ｉ２に画像情報が記録されるのが幾何的に妥当である。ここで、投影位置ｐ３＿ｉ２は以下のように算出される。まず、投影位置ｐ３＿ｉ２と円中心Ｏ＿３を通る直線Ｒ３は数７のように表され、ここで、Ｏ３は円中心Ｏ＿３の座標値あり、Ｄ３は円中心Ｏ＿３と特徴点ｐ１＿ｉ２より算出される単位方向ベクトルである。ｔ３は距離パラメータである。
Ｒ３（ｔ３）＝Ｏ３＋ｔ３×Ｄ３    数７
数７を数８のように式変形することで、投影位置ｐ３＿ｉ２を得る。
Ｄ３＝ｓｔａｎｄ（Ｒ３（ｔ３）−Ｏ３）    数８
同様にして、投影位置ｐ３＿ｉ３と投影位置ｐ３＿ｉ４も算出できる。
【００２０】
このように、特許文献１に記載の技術では、入力画像１０１の円中心Ｏ＿１を通る数２で表される直線Ｒ１に視差が算出される。このため、任意視点画像１０３における投影位置は、入力画像１０１と入力画像１０２の視差に依存してしまい、一意に特定されない。
【００２１】
一方、図１（Ｂ）は、本実施形態による視差情報の算出方法を示す模式図である。本実施形態においては、まず任意視点画像１０６が選択される。選択された任意視点画像１０６において、投影面に対応した所定の円周上の一点ｐ６＿ｉ１（画素位置）が選択される。任意視点画像１０６は、円中心Ｏ＿６（任意視点）が定義されており、円中心Ｏ＿６の座標値Ｏ６と円周上の所定の一点ｐ６＿ｉ１により、以下の数９で表される直線を描くことができる。数９において、Ｄ６は円中心Ｏ＿６と点ｐ６＿ｉ１より算出される単位方向ベクトルである。また、ｔ６は距離パラメータであり、ｔ６に所定の値を入力することで、数９で表される直線上の点を特定できる。
Ｒ６（ｔ６）＝Ｏ６＋ｔ６×Ｄ６    数９
例えば、点ｐ６＿ｉ１が図１（Ｂ）のように特定されているときはｔ６＝１である。また、点ｐ６＿ｉ２、ｐ６＿ｉ３、ｐ６＿ｉ４が図１（Ｂ）のように特定されているときは、それぞれｔ６＝ｄ、ｔ６＝ｅ、ｔ６＝ｆ（１＜ｄ＜ｅ＜ｆ）である。
【００２２】
次に、平面上の一点ｐ６＿ｉ２について、入力画像１０７における投影位置ｐ７＿ｉ２を以下の数１０、数１１を用いて算出する。ここでＯ７は、入力画像１０７の投影面に対応した円の円中心Ｏ＿７の座標値あり、Ｄ７は円中心Ｏ＿７と点ｐ６＿ｉ２より算出される単位方向ベクトルである。Ｄ７は入力画像１０７における円中心Ｏ＿７から距離１の位置に形成される画像平面上の投影位置ｐ７＿ｉ２に一致する。ｔ７は距離パラメータである。
Ｒ７（ｔ７）＝Ｏ７＋ｔ７×Ｄ７    数１０
Ｄ７＝ｓｔａｎｄ（Ｒ７（ｔ７）−Ｏ７）    数１１
【００２３】
同様に、入力画像１０８において、平面上の一点ｐ６＿ｉ２に対する投影位置ｐ８＿ｉ２を以下の数１２、数１３を用いて算出する。Ｏ８は入力画像１０７の投影面に対応した円の円中心Ｏ＿８の座標値あり、Ｄ８は円中心Ｏ＿８と点ｐ６＿ｉ２より算出される単位方向ベクトルである。Ｄ８は入力画像１０８における円中心Ｏ＿８から距離１の位置に形成される画像平面上の投影位置ｐ８＿ｉ２に一致する。ｔ８は距離パラメータである。
Ｒ８（ｔ８）＝Ｏ８＋ｔ８×Ｄ８    数１２
Ｄ８＝ｓｔａｎｄ（Ｒ８（ｔ８）−Ｏ８）    数１３
【００２４】
次に、入力画像１０７の投影位置ｐ７＿ｉ２に記録されている画像情報と、入力画像１０８の投影位置ｐ８＿ｉ２に記録されている画像情報とのマッチング評価値を算出する。そのマッチング評価値をｉ（６−２）とする。同様に、点ｐ６＿ｉ３についても、入力画像１０７における投影位置ｐ７＿ｉ３と、入力画像１０８における投影位置ｐ８＿ｉ３を算出し、この２つの投影位置に記録されている画像情報のマッチング評価値を算出する。そのマッチング評価値をｉ（６−３）とする。点ｐ６＿ｉ４についても同様にして、マッチング評価値ｉ（６−４）を算出する。
【００２５】
上述のように算出された評価値ｉ（６−２）、ｉ（６−３）、ｉ（６−４）を比較することで、点ｐ６＿ｉ１（画素位置）における視差が算出される。本実施形態による視差とは、具体的には、マッチング評価値が一番高かった平面上の一点までの円中心Ｏ＿６からの距離である。評価値ｉ（６−２）、ｉ（６−３）、ｉ（６−４）のいずれが最大の評価値となっても、任意視点画像１０６の円中心Ｏ＿６と点ｐ６＿ｉ２〜４を結ぶ直線上の点ｐ６＿ｉ１の位置に画像情報が記録されるのが幾何的に妥当である。このように、本実施形態では任意視点画像１０６の円中心Ｏ＿６を通る数９で表される直線Ｒ６に視差が算出される。このため、任意視点画像１０６における投影位置は、視差に依存せず一意に特定される。なお、入力画像１０７、１０８、および、これらから生成される任意視点画像１０６は、静止画像であっても動画像であってもよい。
【００２６】
（画像処理装置）
図２は、本実施形態によるコンピュータのハードウェア構成の一例を示す図である。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｃｅｓｉｎｇ  Ｕｎｉｔ）２０１は、外部記憶装置（ハードディスク）２０７に格納されているＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、アプリケーションプログラム等を実行して画像処理装置２００の動作を制御する。なお、ＣＰＵ２０１は、対応する処理プログラムを実行する。また、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２は、基本Ｉ／Ｏプログラム等のプログラムが記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ネットワークＩ／Ｆ２０４は、ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続して外部装置と通信するためのインタフェースである。入力装置２０５は、ユーザーからの入力を受け付けるマウス、キーボードの他、被写体の画像を撮影して画像入力を行うための撮像装置を含むことができる。当該撮像装置を有することにより、画像処理装置２００はデジタルカメラ、或いは、デジタルビデオカメラとして機能することができる。
【００２７】
入力装置２０５における撮像装置は、図３の模式図で示される。撮像装置は、カメラボディ部３０１、第一の撮像レンズ部３０２、第二の撮像レンズ部３０３により構成される。第一の撮像レンズ部３０２および第二の撮像レンズ部３０３は、画角１８０°以上の超広角レンズ相当の光学系を備えている。本発明において、レンズの数は構成要件ではなく、視点の数が構成要件となる。視点の数は２つ以上の複数である。本実施形態では視点は２つとする。また、入力装置２０５における撮像装置は、図４に示されるような、４０１で示される全周画像を、複数入力するものとする。全周画像４０１は、球面に投影された画像であり、球面は視点位置４０２を中心として、所定の半径４０３を持つ球の表面である。
【００２８】
図２に戻り、出力装置２０６は、液晶ディスプレイのような表示装置である。外部記憶装置２０７は、アプリケーションプログラム、ドライバプログラム、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、制御プログラム、本実施形態に対応する処理を実行するための処理プログラム等を格納している。システムバス２０８は、装置内のデータの流れを司る。
【００２９】
（画像処理方法）
図５は、ＣＰＵ２０１が実行する本実施形態の画像処理プログラム（以下、本処理（メインプロセス）プログラムという）を説明するフローチャートである。このフローチャートで表される本処理プログラムは、通常、外部記憶装置２０７に記録されており、処理を開始するにあたりＣＰＵ２０１が外部記憶装置２０７から読み込んで、ＲＡＭ２０３に展開し、実行する。
【００３０】
Ｓ５０１は、処理条件入力ステップである。ＣＰＵ２０１は、本処理プログラムが必要とする情報を入力する。入力情報は、本処理プログラムが外部記憶装置２０７から読み込むことや、ネットワークＩ／Ｆ２０４を介すことによって取得することができる。また、入力装置２０５を介して、ユーザーによる入力を読み込むようにしても良い。
【００３１】
本実施形態では、入力情報として、図４に示されるような、視点４０２に対して全周囲の画像を用いるものとし、異なる２視点以上の全周囲の画像が入力される。また、各視点の視点位置、視線方向も入力する。視点位置や視線方向が固定されている場合や、事前に視点位置や視線方向の変動が取得できる場合は、外部記憶装置２０７から読み込むようにする。
【００３２】
ここで、入力する画像の投影面について説明する。一般的には撮像時において、シーンは平面に投影されて画像に記録されることが多い。このことを鑑みて、本実施形態では、平面の投影面を持つ画像を入力可能とする。また、更に平面の投影面に投影変換できる、平面以外の別の投影面を持つ画像を入力可能する。そのような投影面として円筒面・球面・複数の平面が挙げられる。本実施形態では、円筒面の投影面を持つ画像を入力する。このように、多くの投影面形状を入力可能とすることで、本実施形態の画像処理装置は、より広範な画像を扱うことが可能な、汎用的な構成とすることができる。なお、各視点の画像を撮影するときの撮像設定（ＩＳＯ感度、露光時間、絞り値、ピント）は、同じとする。このように撮像設定を同じにすることで、後に説明する画像同士を比較する処理の精度を上げることができる。ただし、画像間で撮像設定は同じでなくても、本実施形態では良いものとする。
【００３３】
また、入力情報として、本実施形態の概要で述べた、数１において距離パラメータｔ１の取る値を設定する。すなわち、距離パラメータのステップｔｓ、距離パラメータの上限値ｔ＿ｅｎｄ、距離パラメータの下限値ｔ＿ｓｔａｒｔを入力する。これらを用いた処理については後述する。
【００３４】
Ｓ５０１ではさらに、任意視点画像の視点位置を入力し、任意視点画像の投影面を設定する。ここで、任意視点画像の投影面について説明する。本実施形態の画像処理装置は、最終的な出力である任意視点画像において、平面の投影面を持つ画像を出力可能とする。また、更に平面の投影面に投影変換できる、平面以外の別の投影面を持つ画像を出力可能とする。そのような投影面として円筒面・球面・複数の平面が挙げられる。以下では、円筒面の投影面を持つ画像を出力する場合を説明する。
【００３５】
Ｓ５０２は、視差マップ生成ステップである。ＣＰＵ２０１は、Ｓ５０１で設定された任意視点画像を所定のブロックに分割し、入力された全周囲の画像を用いて、そのブロック単位の視差情報（深度情報）を算出する。そして、算出した視差情報を、任意視点画像上における分割したブロックにマッピングすることで、視差マップを生成する。
【００３６】
視差マップ生成ステップＳ５０２について、図６を用いて説明する。なお、以下の説明では、図６に示されるフローチャートを本サブフローチャート−１と称する。
【００３７】
Ｓ６０１は、ブロック生成ステップであり、ＣＰＵ２０１は、任意視点画像における所定の画像領域を指定する。本実施形態では、円筒座標系に投影された任意視点画像を生成する。円筒座標系は球座標系に投影変換できる。また、球座標系は円筒座標系に投影変換できる。このことを利用して、円筒座標系における任意視点画像の視差マップを生成する。
【００３８】
Ｓ６０２は、探索基準ブロック更新ステップである。Ｓ６０２の処理について、図７を用いて説明する。図７に示される模式図は、円筒座標系の平面展開図である。円筒座標系の投影面は平面に展開可能であり、画像領域を分割することでブロックが生成される。本実施形態では等間隔の正方形にブロック分割される。ｘ方向をＭ＋１、ｙ方向をＮ＋１に分割することで、総ブロック数が（Ｍ＋１）×（Ｎ＋１）になるように円筒座標系の平面展開図をブロック分割する。生成したブロック群において、処理対象のブロックを指示するポインタが更新される。図７（Ａ）ではｍｐ行ｎｑ列のブロックが選択されている。図７（Ａ）のように選択された後、図７（Ｂ）のように、ｍｐ＋１行ｎｑ＋１列のブロックを選択するように、図７（Ａ）で選択されていたｍｐ行ｎｑ列のブロックに対して異なるブロックが選択される。なお、ブロックの選択順は特に規定されるものではないが、以前選択したブロックが再び選択されることはない。
【００３９】
Ｓ６０３は、光源推定距離パラメータ更新ステップである。数１４で表されるように、第一の光線関数（第一の直線）の距離パラメータｔを、距離パラメータのステップｔｓだけ更新する。距離パラメータｔが取り得る値の範囲は、距離パラメータの上限値ｔ＿ｅｎｄ、距離パラメータの下限値ｔ＿ｓｔａｒｔによって決まる。すなわち、ｔ＿ｓｔａｒｔ≦ｔ≦ｔ＿ｅｎｄの関係を有する。ここでｔ＿ｓｔａｒｔは０以上の値を取り、ｔ＿ｅｎｄは無限大より小さい値を取る。
ｔ＝ｔ＋ｔｓ    数１４
距離パラメータｔの初期値は、距離パラメータｔが取り得る値の範囲内で所望の値を取ることができる。また、ｔｓは定数と変数のいずれかを取ることができる。ｔｓが変数を取る場合、ｔｓ＝ｆ（ｘ）＝ａｘ＋ｂのような関数の形をとっても良いし、ｔｓ０＝０、ｔｓ１＝１、ｔｓ２＝２、ｔｓ３＝３、ｔｓ４＝５、ｔｓ５＝７・・・のように配列に格納された値を順次参照するようにしてもよい。
【００４０】
Ｓ６０４は、ブロック画像生成ステップである。本ステップでは、以下の３つの処理が行なわれる。
（１）第一の光線関数（第一の直線）を用いた平面上の所定の一点Ｐの算出
（２）平面上の所定の一点Ｐと入力画像の視点による第二の光線関数（第二の直線）の算出
（３）第二の光線関数と入力画像の投影面との交わる点における画素の補間生成
上記Ｓ６０４における処理（１）〜（３）について、図８を用いて説明する。
【００４１】
図８は、図６におけるＳ６０４の処理を詳細化させた処理フローチャートである。なお、以下の説明では、図８に示される処理フローチャートを本サブフローチャート−２と称する。また、本サブフローチャート−２の処理の説明を補足するため、図９の模式図を用いる。なお、以下では、入力画像１０７から得られるブロック画像ＢＫ１の生成方法について述べる。同様の方法で入力画像１０８から得られるブロック画像ＢＫ２については説明を省略する。
【００４２】
図９（Ａ）は、任意視点画像１０６の円筒座標系の平面展開図（任意視点ブロック画像）であり、総ブロック数（Ｍ＋１）×（Ｎ＋１）のうち、ｍｐ行ｎｑ列のブロックが選択されている状態であり、その様子が網掛け部分によって図示されている。それぞれのブロックは複数の画素によって構成される。例えば、本実施形態では、１ブロックは３×３の９画素によって構成されている。
【００４３】
図９（Ｂ）は、３次元空間上に仮想的に配置された光源から射出される光が、二つの異なる視点へ到達する際の、光線のベクトルを模式的に示した図である。なお、図９（Ｂ）において図１（Ｂ）と同一の内容については、図１（Ｂ）と同じ参照番号が付されている。また、図９（Ｃ）は、入力画像１０７の円筒座標系の平面展開図である。図９（Ｃ）では、第二の光線関数と入力画像の投影面との交わる点の集合により構成されるブロック画像ＢＫ１が示されている。
【００４４】
Ｓ８０１は、ブロック画素座標値更新ステップである。図９（Ａ）におけるブロックは３×３の９画素で構成されており、ＣＰＵ２０１はこれらの画素の一つずつについて処理を行なうため、３×３の９画素のうち一つを選択する。
【００４５】
Ｓ８０２は、第一光線ベクトル算出ステップである。図９（Ａ）で示されるｍｐ行ｎｑ列目のブロック内において、隣り合う画素の座標値（画素位置）であるＣ６＿１とＣ６＿１＿１は、図９（Ｂ）で示される３次元空間上では、それぞれ異なる単位方向ベクトルｐ６＿ｉ１とｐ６＿ｉ１＿１となる。円中心Ｏ＿６と画素の座標値から単位方向ベクトルは一意に決まる。これらの単位方向ベクトルを用いて、ブロック内の画素ごとにそれぞれ第一の光線関数を算出する。このように、光線関数に用いる単位方向ベクトルと画像中の画素の座標値を画像の中心位置を用いて相互に変換することが本処理の特徴である。
【００４６】
単位方向ベクトルｐ６＿ｉ１＿１を選択した場合の第一の光線関数の算出について、図９（Ｂ）を用いて説明する。数９において、距離パラメータをｔ６＝ｆとするとき、円中心Ｏ＿６と単位方向ベクトルｐ６＿ｉ１＿１によって以下の数１５で示される３次元空間上の位置が算出される。
ｐ６＿ｉ４＿１＝Ｏ６＋ｔ６×ｐ６＿ｉ１＿１    数１５
後述のＳ８０５によりＳ８０１とＳ８０２が繰り返されることにより、ｍｐ行ｎｑ列目のブロック内の９画素のすべてについて、単位方向ベクトルと円中心Ｏ＿６を用いてそれぞれ第一の光線関数が算出される。
【００４７】
図９（Ｂ）に示されるように、位置ｐ６＿ｉ４とｐ６＿ｉ４＿１により、円中心Ｏ＿６を中心とする距離ｆの円弧が形成されるのがわかる。なお、実際には、３次元空間上で処理を行なうので、球面の一部が形成されることになる。
【００４８】
Ｓ８０３は、補間画素投影座標値算出ステップである。位置ｐ６＿ｉ４＿１と入力画像１０７の円中心Ｏ＿７から算出される第二の光線関数より、単位方向ベクトルｐ７＿ｉ４＿１は以下のように求められる。
ｐ７＿ｉ４＿１＝ｓｔａｎｄ（ｐ６＿ｉ４＿１−Ｏ７）    数１６
ＣＰＵ２０１は、得られた単位方向ベクトルｐ７＿ｉ４＿１と円中心Ｏ＿７から図９（Ｃ）のように、画素の座標値Ｃ７＿１＿１を特定する。図９（Ｃ）は入力画像１０７を平面に展開した模式図である。ブロック画像ＢＫ１はこのようして特定された画素の座標値から構成される。
【００４９】
Ｓ８０４は、補間画素生成ステップである。画素座標値Ｃ７＿１＿１は、小数精度の座標値となるため、ＣＰＵ２０１は、入力画像１０７を構成する整数精度の座標値を持つ画素を用いて、画素値を補間生成する。画素の補間生成方法としては、最近傍補間法、バイリニア補間法、バイキュービック補間法など、周知の補間技術が適用可能である。最近傍補間法を用いて画素座標値Ｃ７＿１＿１における画素値を補間生成する場合、入力画像１０７における画素のうち、その配置座標が画素座標値Ｃ７＿１＿１に最も近い画素を、画素座標値Ｃ７＿１＿１における画素値として出力する。
【００５０】
図１０では、バイキュービック補間法における入力画素の選定方法を図示している。図１０において、Ｄで表される画素座標値Ｃ７＿１＿１が整数値をとるように、小数値を切り捨てることで、（ｘｉｎｔ、ｙｉｎｔ）で示される入力画素を特定する。特定された入力画素を基準にして、Ｃで示される画素座標値Ｃ７＿１＿１の周囲の近傍１６点を選定することで、Ｄをバイキュービック補間法するための入力画素を得る。複数の入力画素を得た後は、バイキュービック補間関数を適応して補間画素値を算出する。バイリニア補間法についても画素座標値Ｃ７＿１＿１に最近傍に隣接する入力画素の座標値から、複数の画素値を得ることで、バイリニア補間関数を適用して補間画素値を算出する。
【００５１】
Ｓ８０５は、ブロック画像生成終了判定ステップである。Ｓ８０１でブロック内の全ての画素が選択されたらＳ６０５へ処理を進め、全て選択されていなければＳ８０１へ処理を進める。
【００５２】
以上が図８に示される本サブフローチャート−２（図６のＳ６０４）の処理である。本サブフローチャート−２の終了によりブロック画像ＢＫ１が生成される。また、同様に入力画像１０８を用いてブロック画像ＢＫ２が生成される。
【００５３】
図６に戻り、Ｓ６０５は、マッチング評価値算出ステップである。ＣＰＵ２０１は、入力画像１０７のブロック画像ＢＫ１と入力画像１０８のブロック画像ＢＫ２のマッチングを行なう。本実施形態では、マッチング評価値として、数１７で示されるＳＡＤ値（差分絶対値和）を算出する。なお、数１７において、本実施形態ではＭ＝Ｎ＝３である（ブロックサイズに一致する）。ｇ（ｘ）はブロック画像ＢＫ１の画像平面を表し、ｈ（ｘ）はブロック画像ＢＫ２の画像平面を表す。
2014026641.tif 000003
また、上記の他にも相関係数や、最小二乗マッチング法を適用してもよい。
【００５４】
ＣＰＵ２０１は、マッチング演算により算出されるマッチング評価値（ＳＡＤ値）を出力する。そして、後述するＳ６０６でマッチング終了と判定されるまで、Ｓ６０３で距離パラメータｔ６が更新され、Ｓ６０５で新たなマッチング評価値の算出と比較が行われる。
【００５５】
マッチング演算にＳＡＤ値を用いている場合、ＣＰＵ２０１は、以前のマッチング演算結果の中で最も高くマッチングした（最も低い値を示した）マッチング評価値ＳＡＤｐｒｅと、今回のマッチング評価値ＳＡＤｃｕｒを用いて、以下の比較結果Ｒｅｓｕｌｔを算出する。
2014026641.tif 000004
【００５６】
Ｒｅｓｕｌｔ＝０の場合、以前に演算したマッチング評価値の中で最もマッチングした評価値の方が信頼できる値であると判断して、今回のマッチング評価値は破棄する。Ｒｅｓｕｌｔ＝１の場合、以前に演算した全てのマッチング評価値よりも、今回のマッチング評価値の方がマッチングしている。すなわち、今回のマッチング演算に用いたブロック画像を算出するために用いた視差情報が、より正しい視差情報であると判断する。視差情報については、後述する。そして、距離パラメータｔ６が更新された新たなマッチング評価値との比較で用いるため、数１９に示されるように、今回のマッチング演算結果を、最もマッチングしたマッチング評価値をＳＡＤｐｒｅに設定する。
2014026641.tif 000005
【００５７】
また、Ｒｅｓｕｌｔ＝１の場合は、以前に演算したマッチング評価値の中で最もマッチングした評価値と今回のマッチング評価値が同じである場合も含まれる。この場合、任意視点に最も近い点についてのマッチング評価値をＳＡＤｐｒｅに設定する。
【００５８】
比較結果を得ると同時に、今回のマッチング演算に用いたブロック画像（ＢＫ１とＢＫ２）を算出するために用いた、視差情報を保持する。保持する視差情報には、距離パラメータｔ６（本実施形態ではｔ６＝ｆ）が含まれる。また、ブロック画像ＢＫ１とブロック画像ＢＫ２を算出するに用いた単位方向ベクトルｐ６＿ｉ１やｐ６＿ｉ１＿１も含まれる。また、単位方向ベクトルｐ６＿ｉ１と、隣り合う画素の座標値から変換される単位方向ベクトルの差分が含まれるようにしても良い。隣り合う画素からそれぞれ変換される２つの単位方向ベクトルの差分は、単位方向ベクトルｐ６＿ｉ１とｐ６＿ｉ１＿１の差を算出することで得られる。または、ブロック画像ＢＫ１とブロック画像ＢＫ２を直接保持するようにしてもよい。
【００５９】
Ｓ６０６は、マッチング終了判定ステップである。距離パラメータｔ６には、ステップｔｓ、下限値ｔ＿ｓｔａｒｔ、上限値ｔ＿ｅｎｄにより、取り得る値が定められている。上限値または下限値を超える値が距離パラメータｔ６に設定される場合、マッチングを終了して、Ｓ６０７へ処理を進める。他方、距離パラメータｔ６に設定される値が取り得る値の範囲内である場合はＳ６０３へ処理を進める。このようにして、マッチング終了と判定されたときに保持されている視差情報は、Ｓ６０５によるマッチング評価の最も高い視差情報であり、この視差情報がＳ６０２で選択された探索基準ブロックに対応する視差情報に決定される。
【００６０】
Ｓ６０７は、視差情報マッピングステップである。ＣＰＵ２０１は、Ｓ６０５で保持した視差情報をメモリに保持する。本実施形態では、図９（Ａ）に示すように、総ブロック数（Ｍ＋１）×（Ｎ＋１）であり、ｍｐ行ｎｑ列のブロックについては、ｍｐ行ｎｑ列のメモリ位置にマッピングされる。こうして、Ｓ６０２で選択された探索基準ブロックに視差情報が対応付けられる。
【００６１】
Ｓ６０８は、視差マップ生成終了判定ステップである。Ｓ６０２で総ブロック数（Ｍ＋１）×（Ｎ＋１）のブロックが全て選択されたら、本サブフローチャート−１の処理は終了であり、そうでなければＳ６０２へ処理を進める。以上が、図６に示される本サブフローチャート−１（図５のＳ５０２）の処理である。
【００６２】
図５に戻り、Ｓ５０３は、任意視点画像生成ステップである。Ｓ５０２で算出された視差マップを用いて任意視点画像１０６を補間生成する。図１１を用いて本実施形態における任意視点画像の生成方法を説明する。図１１は、図５におけるＳ５０３の処理を詳細化させた処理フローチャート図である。なお、以下の説明では、図１１に示されるフローチャートを本サブフローチャート−３と称する。
【００６３】
Ｓ１１０１は、探索基準ブロック更新ステップである。処理内容は、図６におけるＳ６０２と同じである。Ｓ１１０２は、視差情報取得ステップである。Ｓ５０２で算出された視差マップから、当該ブロックに相当する視差情報を取得する。本実施形態では、総ブロック数（Ｍ＋１）×（Ｎ＋１）である。以下、ブロックを補間生成する処理について、ｍｐ行ｎｑ列のメモリ位置にマッピングされているｍｐ行ｎｑのブロックの場合を例として説明する。
【００６４】
Ｓ１１０３は、ブロック画像生成である。ＣＰＵ２０１は、取得された視差情報（距離パラメータｔ６、単位方向ベクトルｐ６＿ｉ１、単位方向ベクトルｐ６＿ｉ１＿１）から、ｍｐ行ｎｑ列のブロック画像（ブロック画像ＢＫ１、ブロック画像ＢＫ２）を生成する。詳細な処理内容は、既に述べた図６におけるＳ６０４の処理内容と同じである。なお、前述したように、Ｓ６０５において評価の最も高い視差情報としてブロック画像ＢＫ１、ＢＫ２を保持しておいてもよい。
【００６５】
Ｓ１１０４は、ブロック画像マッピングステップある。ＣＰＵ２０１は、ｍｐ行ｎｑ列のブロックの座標位置にブロック画像を複写する。ブロック画像は、入力画像１０７と１０８について、それぞれＢＫ１、ＢＫ２と２つあるので、ブロック画像の複写においては、これらブロック画像（ＢＫ１、ＢＫ２）を加算平均処理して任意視点のブロック画像を生成する。
【００６６】
ここで、ＢＫ１とＢＫ２の加重平均処理について説明する。ＢＫ１は、ＢＫ１（ｘ、ｙ）で表される２次元の画素配列である。同様にＢＫ２は、ＢＫ２（ｘ、ｙ）で表される２次元の画素配列である。新たに生成されるブロック画像ＢＫ３の２次元の画素配列ＢＫ３（ｘ，ｙ）は、以下の数２０で表されるように生成される。ＡおよびＢはＡ＋Ｂ＝１になるように実数の範囲で値を設定してよい。例えば、入力画像１０７と任意視点画像１０６の視点位置間の距離をＫ、入力画像１０８と任意視点画像１０６の視点位置間の距離をＬとした場合に、Ａ＝Ｌ／（Ｋ＋Ｌ）、Ｂ＝Ｋ／（Ｋ＋Ｌ）のように、距離に逆比例する重みづけを行なうことが考えられる。なお、ＢＫ１（ｘ、ｙ）は、ＢＫ３（ｘ、ｙ）を通る第１の光線関数上の視差情報により決定される点と入力画像１０７の視点とにより得られる第２の光線関数が入力画像投影面と交わる点である。同様に、ＢＫ２（ｘ、ｙ）は、ＢＫ３（ｘ、ｙ）を通る第１の光線関数上の視差情報により決定される点と入力画像１０８の視点とにより得られる第２の光線関数が入力画像投影面と交わる点である。
【００６７】
ＢＫ３（ｘ、ｙ）＝Ａ×ＢＫ１（ｘ、ｙ）＋Ｂ×ＢＫ２（ｘ、ｙ）    数２０
Ｓ１１０５は、ブロック更新終了判定ステップである。ＣＰＵ２０１は、Ｓ１１０２で総ブロック数（Ｍ＋１）×（Ｎ＋１）のブロックが全て選択されたら本サブフローチャート−３の処理は終了であり、そうでなければＳ１１０１へ処理を進める。
【００６８】
以上が、図５に示される本処理プログラムの処理である。以上の説明から明らかなように、本実施形態においては、視差情報を算出するのに、入力画像の特徴点を必要としない。また、入力画像に基づく光線関数を用いて視差を算出するのではなく、任意視点映像に基づく光線関数を用いて視差を算出するので、任意視点画像の画素の配置座標値が幾何的に正確となる視差情報を算出することが可能になる。
【００６９】
以上のように、上記実施形態によれば、入力画像に特徴点が存在しない画像領域においても、幾何的に正確な視差情報を算出することが可能になり、任意視点画像の画質を向上させることができる。
【００７０】
なお、上記実施形態では、２つの入力画像から任意視点の画像を生成する例を説明したが、３つ以上の入力画像を用いて任意視点の画像を生成できる構成としてもよいことは明らかである。
【００７１】
また、上記実施形態では、視差情報（視差ベクトル）を全てのブロックについて決定する視差情報マッピングを行ない（図６）、その後、視差情報を読み出しながら任意視点画像を生成する（図１１）が、これに限られるものではない。たとえば、静止画像を処理する場合は、図６のステップＳ６０７において１つのブロックに関して視差情報（任意視点からの距離）が確定しているので、この時点で該１つのブロックについてステップＳ１１０３、Ｓ１１０４を実行するようにしてもよい。このようにすれば、全ブロックに対応した視差マップを保持しておくことが不要になる。他方、視差マップを生成し、保持しておけば、入力画像の視点および任意視点の３者の位置関係が変化しない限り、生成した視差マップを利用して任意視点からの画像を生成することができる。また、動画像を処理する場合は、保持された視差マップを用いて、入力画像の各フレームから任視点画像の各フレームを生成できる。
【００７２】
［実施形態２］
本発明の実施形態１では、視差情報を生成し、その視差情報から任意視点を生成した。本実施形態では、コンピュータグラフィックス（ＣＧ）のレンダリングに用いられる周囲環境光画像を、複数の視点画像をもとに、任意位置で生成する例を示す。
【００７３】
一般的に、ＣＧのレンダリングを行う場合には、物体などのオブジェクトデータと、光源データが必要になる。特に、光源データについては、あるオブジェクトが光源となる場合と、レンダリングする周囲環境の明るさを画像として保持し、その画像を光源データとしてレンダリングする場合とがある。ここで、視点画像を周囲の明るさ画像とみなしたものを、周囲環境光画像と呼ぶ。周囲環境光画像は、レンダリング対象となる被写体位置に応じて取得する必要がある。
【００７４】
例えば、図１３（Ａ）に示すように、あるオブジェクト（被写体）１３０１および１３０２からなるシーンを、視点１３０３から、周囲環境光画像を光源としてレンダリングする場合、周囲環境光画像は１３０４に示す様に位置Ｔを中心とした全周囲の画像が必要となる。また、周囲環境光画像１３０４は、図１３（Ｂ）に示すように、被写体が位置Ｔにある場合は周囲環境光画像１３０４となる。一方で、被写体が位置Ａにある場合は周囲環境光画像１３０５、また、位置Ｂにある場合は周囲環境光画像１３０６となる。すなわち、被写体の位置に応じた周囲環境光画像が必要となる。そのため、任意の位置で周囲光環境画像を用いたＣＧレンダリングを行うためには、無数の周囲環境光画像が必要となる。ここで、本実施形態によれば、位置Ａの周囲環境光画像１３０５と、位置Ｃの周囲環境光画像１３０６から、位置Ｔの周囲環境光画像１３０４を生成することができる。つまり、任意の周囲環境光画像を、少なくとも２か所の視点画像より生成可能となる。そのため、無数の周囲環境光画像を用意することなく、任意位置での周囲環境光画像を用いてのＣＧレンダリングが可能となる。
【００７５】
また、周囲環境光画像を生成するにあたり、光源としての寄与が高いのは画像の明るい部分、すなわち、画素値の高い部分である。そこで、補間元の視点画像ブロックのうち、平均画素値の高い部分については詳細にブロック画像を生成し、平均画素値の低い部分については粗いブロック画像を生成する。このようにすることで、周囲環境光画像の生成を高速に行うことができる。
【００７６】
以下、図を用いて、本実施形態の処理と実施形態１の処理との違いについて述べる。本実施形態では、実施形態１と比較して、図５におけるＳ５０２処理の内容が異なる。具体的には、生成する視差マップのうち、ＣＧレンダリングにおける周囲環境光源としての寄与が大きいと考えられる平均画素値の高いブロック画像は通常通り詳細な視差マップを作成し、平均画素値の低いブロックは、視差マップを粗く作成する。
【００７７】
図１２は、実施形態２における、視差マップ生成処理（周囲環境光生成処）の概要を示すフローチャートである。以下、図１２のフローチャートを本サブフローチャート４とする。なお、図１２のＳ１０２４〜Ｓ１２１０は、図６のＳ６０２〜Ｓ６０７と同様の処理を行うので、説明を省略する。
【００７８】
まず、Ｓ１２０１で、任意視点画像における所定の画像領域を指定する。ここでは、図１４（Ａ）に示すように、画像領域は（Ｎ＋１）×（Ｍ＋１）個のブロックに分割され、（ｍｐ，ｎｑ）、（ｍｐ＋１，ｎｐ＋１）で囲まれる位置の画素値が明るくなっていると仮定する。また、各ブロックは、図９と同様、縦３画素、横３画素で区切られているとする。なお、ブロックの個数やブロック内の画素数は、特に上記の数に規定されるものではない。
【００７９】
次に、Ｓ１２０２で、各ブロック画像の平均画素値を計算する。具体的には、以下のようにして平均画素値Ａｉｍｇを求める。
Ａｉｍｇ＝（１／ｎｉｍｇ）ΣＩｉｍｇ    数２１
ここで、ｎｉｍｇはある視点画像ブロックの画素数、Ｉｉｍｇはある視点画像ブロックの画素値である。例えば、ある視点画像から周囲環境光画像を作成する場合は、それぞれの視点画像に対応するブロック画像がＢｋ（ｍｐ，ｎｑ）、平均画素値はＡｉｍｇ（ｍｐ，ｎｑ）、となる。
【００８０】
次に、Ｓ１２０３で、ブロック画像の解像度を決定する。ここで、各ブロック画像の平均画素値Ａｉｍｇ（ｍｐ，ｎｑ）が所定の閾値を超えた場合には、図１４（Ｂ）に示す様に、そのようなブロックの解像度を縦３画素、横３画素とする。超えなかった場合は、図１４（Ｂ）に示す様に、そのようなブロックの解像度を１画素とし、画素値として中心１画素を代表値とする。なお、本実施形態では、ブロック画像の平均画素値と比較する所定の閾値を１つと設定し、また、閾値以上であればブロック内画素値を３ｘ３画素、閾値より小さければ１画素、と設定したが、閾値の数や、ブロック内の画素数はこれに限定するものではない。その後、Ｓ１２０４〜Ｓ１２１０においてそれぞれの処理が行われる。
【００８１】
以上のようにして、本サブフローチャート４を行うことによって、視点画像のうち、画素値の高い部分、すなわち、光源としての寄与が高い部分に関して優先的に計算を行うためのブロック画像を生成することができる。
【００８２】
以上のように、本実施形態によれば、ＣＧレンダリングのための任意位置での周囲環境光画像を高速に生成することができる。
【００８３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014026641.tif 000006
【図２】
2014026641.tif 000007
【図３】
2014026641.tif 000008
【図４】
2014026641.tif 000009
【図５】
2014026641.tif 000010
【図６】
2014026641.tif 000011
【図７】
2014026641.tif 000012
【図８】
2014026641.tif 000013
【図９】
2014026641.tif 000014
【図１０】
2014026641.tif 000015
【図１１】
2014026641.tif 000016
【図１２】
2014026641.tif 000017
【図１３】
2014026641.tif 000018
【図１４】
2014026641.tif 000019