(57)【要約】【課題】高精細な画像を表示する際、対象物の表面に凹凸感を表現する。【解決手段】表示画像処理部１１４において、視差表現部１２４は、画素ごとに対象物の高さ情報を保持するハイトマップ１３２を用いて、対象物に高さがあることによって発生する、視点の移動による見え方の違いを座標のずれとして表現する。色表現部１２６は、視差表現部１２４が導出したテクスチャ座標値などを用い、カラーマップ１３４の画素をずらしてレンダリングを行う。この際、画素ごとに対象物表面の法線を保持する法線マップ１３６を用いて光の当たり具合を変化させ凹凸を表現する。影表現部１２８は、光源の角度によって影が生じるか否かの情報を画素ごとに保持するホライズンマップ１３８を用いて、色表現部１２６が描画した画像に影をつける。画像出力部１３０は、最終的な表示画像を表示処理部４４のフレームメモリに描画する。【選択図】図６
2011134101.tif 000002
【特許請求の範囲】
【請求項１】
表示対象の画像を描画するための複数の処理のそれぞれに用いる複数の画像データを格納した記憶部と、
ユーザが入力した視点移動要求に従い、表示対象の画像のうち新たに表示すべき領域のフレーム座標を特定する描画領域特定部と、
前記フレーム座標に対応する表示画像の領域を、前記記憶部に格納された画像データを用いて描画し、表示装置に出力する表示画像処理部と、を備え、
前記複数の画像データのそれぞれは、表示対象の一つの画像を異なる解像度で表した複数の画像平面にそれぞれ対応する二次元のデータを解像度順に階層化した階層構造を有し、
前記表示画像処理部は、前記視点移動要求に基づく視点の高さによって、描画に用いる画像データの階層を切り替えることを特徴とする画像処理装置。
【請求項２】
前記記憶部は少なくとも、色情報を画素ごとに保持するカラーマップの階層構造と、各画素に画像中の対象物の影が生じるときの光源の方向の情報を画素ごとに保持するホライズンマップの階層構造と、を格納し、
前記表示画像処理部は、前記カラーマップを用いて対象物の色を表現するとともに、前記ホライズンマップを用いてホライズンマッピングを行うことにより、設定された光源の方向に対応する影をつけることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記記憶部は少なくとも、色情報を画素ごとに保持するカラーマップの階層構造と、画像中の対象物の画像平面に対する高さの情報を画素ごとに保持するハイトマップの階層構造と、を格納し、
前記表示画像処理部は、前記カラーマップを用いて対象物の色を表現するとともに、前記ハイトマップと前記視点とを用いて視差マッピングを行うことにより、対象物に対する視差を表現することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記記憶部は少なくとも、色情報を画素ごとに保持するカラーマップの階層構造と、画像中の対象物の表面の法線ベクトルの情報を画素ごとに保持する法線マップの階層構造と、を格納し、
前記表示画像処理部は、前記カラーマップを用いて対象物の色を表現するとともに、前記法線マップを用いてバンプマッピングを行うことにより、画像中の対象物の表面に凹凸を表現することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記表示画像処理部は、前記視点の高さによって、描画に用いる画像データの階層を切り替える際、前記複数の画像データのいずれかを用いる前記複数の処理のうち実施する処理を切り替えることを特徴とする請求項１から４のいずれかに記載の画像処理装置。
【請求項６】
対象物を撮影した画像のデータを生成する画像データ生成装置であって、
光源の方向を異ならせて対象物を撮影した複数の計測画像を取得する計測画像取得部と、
前記計測画像のうち所定の光源の方向での計測画像と、それを縮小して生成した異なる解像度の画像から、画素ごとの色情報を保持するカラーマップを解像度順に階層化したカラーマップの階層データを生成するカラーマップ作成部と、
前記計測画像を照度差ステレオ法により解析し、前記対象物の法線ベクトルを画像中の画素に対応させて表した、前記計測画像の解像度に対応する法線マップを生成する法線マップ作成部と、
前記法線マップ作成部が作成した、前記計測画像の解像度に対応する法線マップを所定の方向にて全面走査し、法線ベクトルから得られる当該所定の方向における対象物の傾きを積分することにより当該対象物の高さを画素に対応させて表したハイトマップを作成したうえ、当該ハイトマップを縮小して生成した異なる解像度の複数のハイトマップを解像度順に階層化した、ハイトマップの階層データを生成するハイトマップ作成部と、
を備え、
前記法線マップ作成部はさらに、前記ハイトマップの階層データにおける各階層のハイトマップのうち、計測画像の解像度に対応する階層以外の階層のハイトマップを複数の方向にて全面走査して対象物の高さを微分することで、各走査方向における前記対象物の傾き情報を取得し、当該傾きから得られる各走査方向の法線ベクトルを画素ごとに合成した法線ベクトルを算出することにより、異なる解像度の複数の法線マップを解像度順に階層化した、法線マップの階層データを生成することを特徴とする画像データ生成装置。
【請求項７】
前記ハイトマップの階層データにおける各階層のハイトマップを用いて、各画素に対象物の影が生じるときの光源の方向の情報を画素ごとに表したホライズンマップを階層ごとに生成することにより、解像度が異なる複数のホライズンマップを解像度順に階層化したホライズンマップの階層データを生成するホライズンマップ作成部をさらに備えたことを特徴とする請求項６に記載の画像データ生成装置。
【請求項８】
ユーザが入力した視点移動要求に従い、表示対象の画像のうち新たに表示すべき領域のフレーム座標を特定するステップと、
記憶装置に格納された、表示対象の画像を描画するための複数の処理のそれぞれに用いる複数の画像データのうち少なくともいずれかを読み出し、それを用いて前記フレーム座標に対応する表示画像の領域を描画するステップと、
描画した領域のデータを表示装置に出力するステップと、を含み、
前記複数の画像データのそれぞれは、表示対象の一つの画像を異なる解像度で表した複数の画像平面にそれぞれ対応する二次元のデータを解像度順に階層化した階層構造を有し、
前記描画するステップは、前記視点移動要求に基づく視点の高さによって、描画に用いる画像データの階層を切り替えることを特徴とする画像処理方法。
【請求項９】
対象物を撮影した画像のデータを生成する画像データ生成方法であって、
光源の方向を異ならせて対象物を撮影した複数の計測画像を取得するステップと、
前記計測画像のうち所定の光源の方向での計測画像と、それを縮小して生成した異なる解像度の画像から、画素ごとの色情報を保持するカラーマップを解像度順に階層化したカラーマップの階層データを生成するステップと、
前記計測画像を照度差ステレオ法により解析し、前記対象物の法線ベクトルを画像中の画素に対応させて表した、前記計測画像の解像度に対応する法線マップを生成するステップと、
前記計測画像の解像度に対応する法線マップを所定の方向にて全面走査し、法線ベクトルから得られる当該所定の方向における対象物の傾きを積分することにより当該対象物の高さを画素に対応させて表したハイトマップを作成したうえ、当該ハイトマップを縮小して生成した異なる解像度の複数のハイトマップを解像度順に階層化した、ハイトマップの階層データを生成するステップと、
前記ハイトマップの階層データにおける各階層のハイトマップのうち、計測画像の解像度に対応する階層以外の階層のハイトマップを複数の方向にて全面走査して対象物の高さを微分することで、各走査方向における前記対象物の傾き情報を取得し、当該傾きから得られる各走査方向の法線ベクトルを画素ごとに合成した法線ベクトルを算出することにより、異なる解像度の複数の法線マップを解像度順に階層化した、法線マップの階層データを生成するステップと、
を含むことを特徴とする画像データ生成方法。
【請求項１０】
ユーザが入力した視点移動要求に従い、表示対象の画像のうち新たに表示すべき領域のフレーム座標を特定する機能と、
記憶装置に格納された、表示対象の画像を描画するための複数の処理のそれぞれに用いる複数の画像データのうち少なくともいずれかを読み出し、それを用いて前記フレーム座標に対応する表示画像の領域を描画する機能と、
描画した領域のデータを表示装置に出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムであって、
前記複数の画像データのそれぞれは、表示対象の一つの画像を異なる解像度で表した複数の画像平面にそれぞれ対応する二次元のデータを解像度順に階層化した階層構造を有し、
前記描画する機能は、前記視点移動要求に基づく視点の高さによって、描画に用いる画像データの階層を切り替えることを特徴とするコンピュータプログラム。
【請求項１１】
対象物を撮影した画像のデータを生成する機能をコンピュータに実現させるコンピュータプログラムであって、
光源の方向を異ならせて対象物を撮影した複数の計測画像を取得しメモリに格納する機能と、
前記メモリより読み出した、前記計測画像のうち所定の光源の方向での計測画像と、それを縮小して生成した異なる解像度の画像から、画素ごとの色情報を保持するカラーマップを解像度順に階層化したカラーマップの階層データを生成する機能と、
前記計測画像を照度差ステレオ法により解析し、前記対象物の法線ベクトルを画像中の画素に対応させて表した、前記計測画像の解像度に対応する法線マップを生成する機能と、
前記計測画像の解像度に対応する法線マップを所定の方向にて全面走査し、法線ベクトルから得られる当該所定の方向における対象物の傾きを積分することにより当該対象物の高さを画素に対応させて表したハイトマップを作成したうえ、当該ハイトマップを縮小して生成した異なる解像度の複数のハイトマップを解像度順に階層化した、ハイトマップの階層データを生成する機能と、
前記ハイトマップの階層データにおける各階層のハイトマップのうち、計測画像の解像度に対応する階層以外の階層のハイトマップを複数の方向にて全面走査して対象物の高さを微分することで、各走査方向における前記対象物の傾き情報を取得し、当該傾きから得られる各走査方向の法線ベクトルを画素ごとに合成した法線ベクトルを算出することにより、異なる解像度の複数の法線マップを解像度順に階層化した、法線マップの階層データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項１２】
ユーザが入力した視点移動要求に従い、表示対象の画像のうち新たに表示すべき領域のフレーム座標を特定する機能と、
記憶装置に格納された、表示対象の画像を描画するための複数の処理のそれぞれに用いる複数の画像データのうち少なくともいずれかを読み出し、それを用いて前記フレーム座標に対応する表示画像の領域を描画する機能と、
描画した領域のデータを表示装置に出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した記録媒体であって、
前記複数の画像データのそれぞれは、表示対象の一つの画像を異なる解像度で表した複数の画像平面にそれぞれ対応する二次元のデータを解像度順に階層化した階層構造を有し、
前記描画する機能は、前記視点移動要求に基づく視点の高さによって、描画に用いる画像データの階層を切り替えることを特徴とするコンピュータプログラムを記録した記録媒体。
【請求項１３】
対象物を撮影した画像のデータを生成する機能をコンピュータに実現させるコンピュータプログラムを記録した記録媒体であって、
光源の方向を異ならせて対象物を撮影した複数の計測画像を取得しメモリに格納する機能と、
前記メモリより読み出した、前記計測画像のうち所定の光源の方向での計測画像と、それを縮小して生成した異なる解像度の画像から、画素ごとの色情報を保持するカラーマップを解像度順に階層化したカラーマップの階層データを生成する機能と、
前記計測画像を照度差ステレオ法により解析し、前記対象物の法線ベクトルを画像中の画素に対応させて表した、前記計測画像の解像度に対応する法線マップを生成する機能と、
前記計測画像の解像度に対応する法線マップを所定の方向にて全面走査し、法線ベクトルから得られる当該所定の方向における対象物の傾きを積分することにより当該対象物の高さを画素に対応させて表したハイトマップを作成したうえ、当該ハイトマップを縮小して生成した異なる解像度の複数のハイトマップを解像度順に階層化した、ハイトマップの階層データを生成する機能と、
前記ハイトマップの階層データにおける各階層のハイトマップのうち、計測画像の解像度に対応する階層以外の階層のハイトマップを複数の方向にて全面走査して対象物の高さを微分することで、各走査方向における前記対象物の傾き情報を取得し、当該傾きから得られる各走査方向の法線ベクトルを画素ごとに合成した法線ベクトルを算出することにより、異なる解像度の複数の法線マップを解像度順に階層化した、法線マップの階層データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した記録媒体。
【請求項１４】
画像の少なくとも一部をディスプレイに表示するために記憶装置から読み出される画像ファイルのデータ構造であって、
表示対象の画像を描画するための複数の処理のそれぞれに用いる複数の画像データであり、そのそれぞれが、表示対象の一つの画像を異なる解像度で表した複数の画像平面にそれぞれ対応する二次元のデータを解像度順に階層化した階層構造を有する、複数の画像データを対応づけたことを特徴とする画像ファイルのデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視点の移動に伴い表示画像を変化させる画像処理技術に関する。
【背景技術】
【０００２】
ゲームプログラムを実行するだけでなく、動画を再生できる家庭用エンタテインメントシステムが提案されている。この家庭用エンタテインメントシステムでは、ＧＰＵがポリゴンを用いた三次元画像を生成する（例えば特許文献１参照）。
【０００３】
画像表示の目的に関わらず、画像をいかに効率よく表示するかは常に重要な問題となる。特に高精細な画像を高速に描画するためには様々な工夫が必要となり、例えばテクスチャデータを別に保持しマッピングを効率的に行う手法について提案がなされている（例えば非特許文献１および２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第６５６３９９９号公報
【非特許文献】
【０００５】
【非特許文献１】Sylvain Fefebvre, et. al., Unified Texture Management for Arbitrary Meshes, Repport de recherche, N5210, May 2004, Institut National De Recherche En Informatique Et En Automatique
【非特許文献２】Martin Kraus, et. al., Adaptive Texture Maps, Graphics Hardware (2002), pp1-10, The Eurographics Association
【発明の概要】
【発明が解決しようとする課題】
【０００６】
表示画像が高精細化しても、データサイズを小さく抑えること、高速に描画することは、画像を応答性良く表示するためには常に重要な課題である。また高精細な画像を利用して、視点の様々な移動に対応させて表示画像を変化させ、臨場感を表現することのできる技術が望まれている。
【０００７】
本発明はこのような課題に鑑みてなされたものであり、その目的は、高精細な画像を効率的かつ臨場感をもって表示することのできる画像処理技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明のある態様は画像処理装置に関する。この画像処理装置は、表示対象の画像を描画するための複数の処理のそれぞれに用いる複数の画像データを格納した記憶部と、ユーザが入力した視点移動要求に従い、表示対象の画像のうち新たに表示すべき領域のフレーム座標を特定する描画領域特定部と、フレーム座標に対応する表示画像の領域を、記憶装置に格納された画像データを用いて描画し、表示装置に出力する表示画像処理部と、を備え、複数の画像データのそれぞれは、表示対象の一つの画像を異なる解像度で表した複数の画像平面にそれぞれ対応する二次元のデータを解像度順に階層化した階層構造を有し、表示画像処理部は、前記視点移動要求に基づく視点の高さによって、描画に用いる画像データの階層を切り替えることを特徴とする。
【０００９】
本発明の別の態様は画像データ生成装置に関する。この画像データ生成装置は、対象物を撮影した画像のデータを生成する画像データ生成装置であって、光源の方向を異ならせて対象物を撮影した複数の計測画像を取得する計測画像取得部と、計測画像のうち所定の光源の方向での計測画像と、それを縮小して生成した異なる解像度の画像から、画素ごとの色情報を保持するカラーマップを解像度順に階層化したカラーマップの階層データを生成するカラーマップ作成部と、計測画像を照度差ステレオ法により解析し、対象物の法線ベクトルを画像中の画素に対応させて表した、計測画像の解像度に対応する法線マップを生成する法線マップ作成部と、法線マップ作成部が作成した、計測画像の解像度に対応する法線マップを所定の方向にて全面走査し、法線ベクトルから得られる当該所定の方向における対象物の傾きを積分することにより当該対象物の高さを画素に対応させて表したハイトマップを作成したうえ、当該ハイトマップを縮小して生成した異なる解像度の複数のハイトマップを解像度順に階層化した、ハイトマップの階層データを生成するハイトマップ作成部と、を備え、法線マップ作成部はさらに、ハイトマップの階層データにおける各階層のハイトマップのうち、計測画像の解像度に対応する階層以外の階層のハイトマップを複数の方向にて全面走査して対象物の高さを微分することで、各走査方向における対象物の傾き情報を取得し、当該傾きから得られる各走査方向の法線ベクトルを画素ごとに合成した法線ベクトルを算出することにより、異なる解像度の複数の法線マップを解像度順に階層化した、法線マップの階層データを生成することを特徴とする。
【００１０】
本発明のさらに別の態様は画像処理方法に関する。この画像処理方法は、ユーザが入力した視点移動要求に従い、表示対象の画像のうち新たに表示すべき領域のフレーム座標を特定するステップと、記憶装置に格納された、表示対象の画像を描画するための複数の処理のそれぞれに用いる複数の画像データのうち少なくともいずれかを読み出し、それを用いてフレーム座標に対応する表示画像の領域を描画するステップと、描画した領域のデータを表示装置に出力するステップと、を含み、複数の画像データのそれぞれは、表示対象の一つの画像を異なる解像度で表した複数の画像平面にそれぞれ対応する二次元のデータを解像度順に階層化した階層構造を有し、描画するステップは、視点移動要求に基づく視点の高さによって、描画に用いる画像データの階層を切り替えることを特徴とする。
【００１１】
本発明のさらに別の態様は画像データ生成方法に関する。この画像データ生成方法は、対象物を撮影した画像のデータを生成する画像データ生成方法であって、光源の方向を異ならせて対象物を撮影した複数の計測画像を取得するステップと、計測画像のうち所定の光源の方向での計測画像と、それを縮小して生成した異なる解像度の画像から、画素ごとの色情報を保持するカラーマップを解像度順に階層化したカラーマップの階層データを生成するステップと、計測画像を照度差ステレオ法により解析し、対象物の法線ベクトルを画像中の画素に対応させて表した、計測画像の解像度に対応する法線マップを生成するステップと、計測画像の解像度に対応する法線マップを所定の方向にて全面走査し、法線ベクトルから得られる当該所定の方向における対象物の傾きを積分することにより当該対象物の高さを画素に対応させて表したハイトマップを作成したうえ、当該ハイトマップを縮小して生成した異なる解像度の複数のハイトマップを解像度順に階層化した、ハイトマップの階層データを生成するステップと、ハイトマップの階層データにおける各階層のハイトマップのうち、計測画像の解像度に対応する階層以外の階層のハイトマップを複数の方向にて全面走査して対象物の高さを微分することで、各走査方向における対象物の傾き情報を取得し、当該傾きから得られる各走査方向の法線ベクトルを画素ごとに合成した法線ベクトルを算出することにより、異なる解像度の複数の法線マップを解像度順に階層化した、法線マップの階層データを生成するステップと、を含むことを特徴とする。
【００１２】
本発明のさらに別の態様は画像ファイルのデータ構造に関する。このデータ構造は、画像の少なくとも一部をディスプレイに表示するために記憶装置から読み出される画像ファイルのデータ構造であって、表示対象の画像を描画するための複数の処理のそれぞれに用いる複数の画像データであり、そのそれぞれが、表示対象の一つの画像を異なる解像度で表した複数の画像平面にそれぞれ対応する二次元のデータを解像度順に階層化した階層構造を有する、複数の画像データを対応づけたことを特徴とする。
【００１３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によると、臨場感のある画像表示を効率的に行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態の画像処理システムの使用環境を示す図である。
【図２】図１の画像処理システムに適用できる入力装置の外観構成を示す図である。
【図３】本実施の形態における画像処理装置の構成を示す図である。
【図４】本実施の形態において使用する画像データの階層構造の概念図である。
【図５】本実施の形態における画像を表示する機能を有する制御部の構成を詳細に示す図である。
【図６】本実施の形態における表示画像処理部およびバッファメモリのより詳細な構成を示す図である。
【図７】視差マッピングの原理を説明するための図である。
【図８】ホライズンマッピングの原理を説明するための図である。
【図９】本実施の形態において、視点の高さによって表示画像処理部が行う処理を変化させる態様の例を説明するための図である。
【図１０】本実施の形態において、カラーマップ、ハイトマップ、法線マップ、およびホライズンマップのデータ構造を異ならせた場合の概念図である。
【図１１】本実施の形態における画像表示の処理手順を示すフローチャートである。
【図１２】本実施の形態における画像データを生成する画像データ生成装置の構成を示す図である。
【図１３】本実施の形態において計測画像取得部をカメラとした場合の、計測画像の取得態様を説明するための図である。
【図１４】本実施の形態においてハイトマップ作成部が法線マップを用いてハイトマップを作成する原理を説明するための図である。
【図１５】本実施の形態において法線マップに対し斜めに走査してハイトマップを作成する手法を説明するための図である。
【図１６】本実施の形態においてカラーマップ、法線マップ、ハイトマップ、ホライズンマップの階層データを作成する手順を示すフローチャートである。
【図１７】本実施の形態においてカラーマップ、法線マップ、ハイトマップ、ホライズンマップの階層データを作成する別の手順を示すフローチャートである。
【発明を実施するための形態】
【００１６】
本実施の形態は、凹凸のある対象物の画像を精細かつ臨場感をもって表示する。対象物として油絵を例にとると、絵の具ののせ方を含む筆のタッチは作者によって様々であり、それが表現手法の一つとなる。展覧会などで鑑賞者は、絵画に顔を近づけてそのようなタッチを見たり、遠ざかって全体の構成を見たりすることにより作品を味わう。油絵に限らず対象物の表面にある凹凸はその物の質感を表現するために重要な要素である。対象物を画面上で再現する場合、画素数を多くして色情報を詳細にするのみではこのような凹凸感は出にくい。そこで本実施の形態では、表面の凹凸による陰影、細かい鏡面反射、視線の隠蔽などを表現することにより、臨場感のある画像表示を可能にする。
【００１７】
図１は、本実施の形態の画像処理システム１の使用環境を示す。画像処理システム１は、画像処理を含むアプリケーションプログラムを実行する画像処理装置１０と、画像処理装置１０による処理結果を出力する表示装置１２とを備える。表示装置１２は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよい。
【００１８】
表示装置１２は、画像処理装置１０に有線ケーブルで接続されてよく、また無線ＬＡＮ（Local Area Network）などにより無線接続されてもよい。画像処理システム１において、画像処理装置１０は、ケーブル１４を介してインターネットなどの外部ネットワークに接続し、圧縮画像データを含むコンテンツなどをダウンロードして取得してもよい。なお画像処理装置１０は、無線通信により外部ネットワークに接続してもよい。
【００１９】
画像処理装置１０は、ユーザからの視点移動要求に応じて、表示装置１２のディスプレイに表示する画像の拡大／縮小処理や、上下左右方向への移動処理など、表示領域を変更する処理を行う。ユーザが、ディスプレイに表示された画像を見ながら入力装置を操作すると、入力装置が、視点移動要求信号を画像処理装置１０に送信する。
【００２０】
図２は、入力装置２０の外観構成を示す。入力装置２０は、ユーザが操作可能な操作手段として、十字キー２１、アナログスティック２７ａ、２７ｂと、４種の操作ボタン２６を備える。４種の操作ボタン２６は、○ボタン２２、×ボタン２３、□ボタン２４および△ボタン２５から構成される。
【００２１】
画像処理システム１において、入力装置２０の操作手段には、視点の高さの変更要求、すなわち表示画像の拡大／縮小要求、および視点の水平面での移動要求、すなわち上下左右方向へのスクロール要求を入力するための機能が割り当てられる。たとえば、表示画像の拡大／縮小要求の入力機能は、右側のアナログスティック２７ｂに割り当てられる。ユーザはアナログスティック２７ｂを手前に引くことで、表示画像の縮小要求を入力でき、また手前から押すことで、表示画像の拡大要求を入力できる。
【００２２】
また、上下左右方向へのスクロール要求の入力機能は、十字キー２１に割り当てられる。ユーザは十字キー２１を押下することで、十字キー２１を押下した方向への移動要求を入力できる。なお、視点移動要求の入力機能は別の操作手段に割り当てられてもよく、たとえばアナログスティック２７ａに、スクロール要求の入力機能が割り当てられてもよい。
【００２３】
図３は画像処理装置１０の構成を示している。画像処理装置１０は、無線インタフェース４０、スイッチ４２、表示処理部４４、ハードディスクドライブ５０、記録媒体装着部５２、ディスクドライブ５４、メインメモリ６０、バッファメモリ７０および制御部１００を有して構成される。表示処理部４４は、表示装置１２のディスプレイに表示するデータをバッファするフレームメモリを有する。
【００２４】
スイッチ４２は、イーサネットスイッチ（イーサネットは登録商標）であって、外部の機器と有線または無線で接続して、データの送受信を行うデバイスである。スイッチ４２は、ケーブル１４を介して外部ネットワークに接続し、サーバから画像データなどを受信できるように構成される。またスイッチ４２は無線インタフェース４０に接続し、無線インタフェース４０は、所定の無線通信プロトコルで入力装置２０と接続する。入力装置２０においてユーザから入力された信号は、無線インタフェース４０、スイッチ４２を経由して、制御部１００に供給される。
【００２５】
ハードディスクドライブ５０は、データを記憶する記憶装置として機能する。スイッチ４２を介して受信された画像データは、ハードディスクドライブ５０に格納される。記録媒体装着部５２は、メモリカードなどのリムーバブル記録媒体が装着されると、リムーバブル記録媒体からデータを読み出す。ディスクドライブ５４は、読出専用のＲＯＭディスクが装着されると、ＲＯＭディスクを駆動して認識し、データを読み出す。ＲＯＭディスクは、光ディスクや光磁気ディスクなどであってよい。画像データはこれらの記録媒体に格納されていてもよい。
【００２６】
制御部１００は、マルチコアＣＰＵを備え、１つのＣＰＵの中に１つの汎用的なプロセッサコアと、複数のシンプルなプロセッサコアを有する。汎用プロセッサコアはＰＰＵ（PowerPC Processor Unit）と呼ばれ、残りのプロセッサコアはＳＰＵ（Synergistic Processor Unit）と呼ばれる。
【００２７】
制御部１００は、メインメモリ６０およびバッファメモリ７０に接続するメモリコントローラを備える。ＰＰＵはレジスタを有し、演算実行主体としてメインプロセッサを備えて、実行するアプリケーションにおける基本処理単位としてのタスクを各ＳＰＵに効率的に割り当てる。なお、ＰＰＵ自身がタスクを実行してもよい。ＳＰＵはレジスタを有し、演算実行主体としてのサブプロセッサとローカルな記憶領域としてのローカルメモリを備える。ローカルメモリは、バッファメモリ７０として使用されてもよい。
【００２８】
メインメモリ６０およびバッファメモリ７０は記憶装置であり、ＲＡＭ（ランダムアクセスメモリ）として構成される。ＳＰＵは制御ユニットとして専用のＤＭＡ（Direct Memory Access）コントローラをもち、メインメモリ６０とバッファメモリ７０の間のデータ転送を高速に行うことができ、また表示処理部４４におけるフレームメモリとバッファメモリ７０の間で高速なデータ転送を実現できる。本実施の形態の制御部１００は、複数のＳＰＵを並列動作させることで、高速な画像処理機能を実現する。表示処理部４４は、表示装置１２に接続されて、ユーザからの要求に応じた画像処理結果を出力する。
【００２９】
本実施の形態の画像処理装置１０は、表示画像の拡大／縮小処理や表示領域の移動処理を行う際に表示画像をスムーズに変更させるために、圧縮画像データの一部をハードディスクドライブ５０からメインメモリ６０にロードしておく。また、メインメモリ６０にロードした圧縮画像データのさらに一部をデコードしてバッファメモリ７０に格納しておく。これにより、後の必要なタイミングで、表示画像の生成に使用する画像を瞬時に切り替えることが可能となる。
【００３０】
本実施の形態において表示対象とする画像のデータ構造は特に限定されないが、ここでは高精細な画像をより効率よく表示することを可能とするため、階層構造を有する階層画像データを用いた形態について説明する。階層画像データは、原画像を複数段階に縮小して生成した異なる解像度の画像からなる画像データである。各階層の画像は一又は複数のタイル画像に分割される。たとえば最も解像度の低い画像は１つのタイル画像で構成し、最も解像度の高い原画像は、最も多い数のタイル画像で構成する。画像表示時は、描画に使用しているタイル画像を、表示画像が所定の解像度になったときに異なる階層のタイル画像に切り替えることで、拡大表示または縮小表示を迅速に行う。
【００３１】
図４は、本実施の形態において使用する画像データの階層構造の概念図を示す。画像データは、深さ（Ｚ軸）方向に、第０階層３０、第１階層３２、第２階層３４および第３階層３６からなる階層構造を有する。なお同図においては４階層のみ示しているが、階層数はこれに限定されない。以下、このような階層構造をもつ画像データを「階層データ」とよぶ。ただし同図の階層データは概念的なものであり、実際には後に述べるように複数のデータのセットで画像を表現する。
【００３２】
図４に示す階層データは４分木の階層構造を有し、各階層は１以上のタイル画像３８で構成される。すべてのタイル画像３８は同じ画素数をもつ同一サイズに形成され、たとえば２５６×２５６画素を有する。各階層の画像データは、一つの画像を異なる解像度で表現しており、最高解像度をもつ第３階層３６の原画像を複数段階に縮小して、第２階層３４、第１階層３２、第０階層３０の画像データが生成される。たとえば第Ｎ階層の解像度（Ｎは０以上の整数）は、左右（Ｘ軸）方向、上下（Ｙ軸）方向ともに、第（Ｎ＋１）階層の解像度の１／２であってよい。
【００３３】
画像処理装置１０において、階層データは、所定の圧縮形式で圧縮された状態でハードディスクドライブ５０などの記憶装置に保持されており、ディスプレイに表示される前に記憶装置から読み出されてデコードされる。本実施の形態の画像処理装置１０は、複数種類の圧縮形式に対応したデコード機能を有し、たとえばＳ３ＴＣ形式、ＪＰＥＧ形式、ＪＰＥＧ２０００形式の圧縮データをデコード可能とする。
【００３４】
階層データの階層構造は、図４に示すように、左右方向をＸ軸、上下方向をＹ軸、深さ方向をＺ軸として設定され、仮想的な３次元空間を構築する。画像処理装置１０は、入力装置２０から供給される視点移動要求信号から表示画像の変更量を導出すると、その変更量を用いて仮想空間におけるフレームの４隅の座標（フレーム座標）を導出する。仮想空間におけるフレーム座標は、後述するメインメモリへの圧縮データのロードおよび表示画像の描画処理に利用される。なお、仮想空間におけるフレーム座標の代わりに、画像処理装置１０は、階層を特定する情報と、その階層におけるテクスチャ座標（ＵＶ座標）を導出してもよい。以下、階層特定情報およびテクスチャ座標の組み合わせも、フレーム座標と呼ぶ。
【００３５】
データ構造が階層構造であるか否かに関わらず画像は基本的に、画素ごとに色情報を保持するカラーマップを用いて表示される。本実施の形態ではカラーマップに加え、対象物の凹凸を表現するための凹凸情報を導入することにより、絵画表面のタッチなど微細な構造をより臨場感をもって表現する。したがって本実施の形態では、カラーマップと凹凸情報をまとめて画像データとする。
【００３６】
図５は本実施の形態において画像を表示する機能を有する制御部１００の構成を詳細に示している。制御部１００は、入力装置２０からユーザが入力した情報を取得する入力情報取得部１０２、新たに表示すべき領域を特定する描画領域特定部１１０、新たにロードすべき画像データを決定するロードブロック決定部１０６、必要な圧縮画像データをハードディスクドライブ５０からロードするロード部１０８を含む。制御部１００はさらに、圧縮画像データをデコードするデコード部１１２、および表示画像を描画する表示画像処理部１１４を含む。
【００３７】
図５や後に示す図６、図１２において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。既述したように、制御部１００は１つのＰＰＵと複数のＳＰＵとを有し、ＰＰＵおよびＳＰＵがそれぞれ単独または協同して、各機能ブロックを構成できる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３８】
入力情報取得部１０２は、ユーザが入力装置２０に対して入力した、画像表示の開始／終了、視点の移動などの指示内容を取得する。描画領域特定部１１０は、現在の表示領域のフレーム座標とユーザが入力した視点移動要求の情報に従い、新たに表示すべき領域のフレーム座標を特定する。そして当該領域を含むタイル画像のデータが既にメインメモリ６０にロードされていれば、デコード部１１２に、ロードされていなければロードブロック決定部１０６に、当該情報を供給する。描画領域特定部１１０はその時点で表示すべき領域の他、以後必要と予測される領域も特定してよい。描画領域特定部１１０はまた、ユーザが入力した視点移動要求に対応する新たな視点の位置と、特定したフレーム座標を表示処理部４４に供給する。
【００３９】
ロードブロック決定部１０６は、描画領域特定部１１０からの情報に基づき、ハードディスクドライブ５０からメインメモリ６０へ新たにロードすべきタイル画像のデータを特定し、ロード部１０８にロード要求を発行する。ロードブロック決定部１０６は、ロード部１０８がロード処理中でない状態において、例えば所定の時間間隔、あるいは、ユーザが視点移動要求を行った際など、所定のタイミングでロード要求を行ってもよい。ロード部１０８は、ロードブロック決定部１０６からの要求に従い、圧縮画像のデータをハードディスクドライブ５０からメインメモリ６０にロードする。
【００４０】
デコード部１１２は、描画領域特定部１１０から取得した新たに表示すべき領域のフレーム座標に基づきバッファメモリ７０を検索し、該当するフレーム座標の領域がバッファメモリ７０に格納されていなければ、メインメモリ６０からタイル画像のデータを読み出しデコードし、バッファメモリ７０にデコード後のデータを格納する。表示画像処理部１１４は、新たに表示すべき領域のフレーム座標に基づき、バッファメモリ７０から対応する画像データを読み出し、表示処理部４４のフレームメモリに表示画像を描画する。この際、視点の移動に伴って変化する、対象物の凹凸による見え方の変化を、凹凸情報を用いて表現する。
【００４１】
図６は表示画像処理部１１４およびバッファメモリ７０のより詳細な構成を示している。上述したように本実施の形態では、画素ごとに色情報を保持するカラーマップの他、凹凸情報を画像データに含める。そのためロード部１０８やデコード部１１２はカラーマップ以外に、表示に必要な領域の凹凸情報もロードまたはデコードし、デコードされた各データはバッファメモリ７０に格納される。凹凸情報としては同図に示すように、ハイトマップ１３２、法線マップ１３６、ホライズンマップ１３８を用いる。ハイトマップ１３２、法線マップ１３６、ホライズンマップ１３８はいずれも、画素ごとにデータを保持する。
【００４２】
表示画像処理部１１４は、ハイトマップ１３２を用いて視差による座標のずれを算出する視差表現部１２４、カラーマップ１３４および法線マップ１３６を用いて、凹凸を考慮した対象物の色を表現する色表現部１２６、ホライズンマップ１３８を用いて画像に影をつける影表現部１２８、最終的な表示画像をフレームメモリに描画する画像出力部１３０を含む。
【００４３】
視差表現部１２４は、画素ごとに対象物の高さ情報を保持するハイトマップ１３２を用いて、対象物に高さがあることによって発生する、視点の移動による見え方の違いを座標のずれとして表現する。具体的な計算は、視差マッピング（Parallax Mapping）として一般に提案されている技術を導入することができる（例えばNatalya Tatarchuk, Dynamic parallax occlusion mapping with approximate soft shadows, Symposium on Interactive 3D Graphics, Proceedings of the 2006 symposium on Interactive 3D graphics and games, P. 63-69, 2006 参照)。
【００４４】
図７は視差マッピングの原理を説明するための図である。対象物の形状２１０が図のように、画像平面２１８に対し凹凸を有する場合、視線２１２上にある対象物の表面の点２１４は、画像平面上では点２１６上に見える。したがって視差表現部１２４は、点２１４の画素の色情報などを点２１６の位置にずらすように、画素の位置を変換する新たなな座標を作成する。このため視差表現部１２４は、形状２１０を表すハイトマップを用い、描画領域特定部１１０から取得した新たな視点からの視線２１２が対象物の形状２１０および画像平面と交わる点２１４、点２１６を線形探索により求める。そして元の画像を表示画像として表すときの画素のずれを、テクスチャ座標値などで表す。
【００４５】
色表現部１２６は、視差表現部１２４が導出したテクスチャ座標値などを用い、カラーマップ１３４の画素をずらしてレンダリングを行う。この際、画素ごとに対象物表面の法線を保持する法線マップ１３６を用いて光の当たり具合を変化させ凹凸を表現する。色表現部１２６は、コンピュータグラフィクスで一般的に用いられるバンプマッピングによって同処理を行ってよい。
【００４６】
影表現部１２８は、光源の角度によって影が生じるか否かの情報を画素ごとに保持するホライズンマップ１３８を用いて、色表現部１２６が描画した画像に影をつける。この手法は、ホライズンマッピングとして一般に提案されている技術を導入することができる（例えばPeter-Pike J. Sloan et al., Interactive Horizon Mapping, Eurographics Rendering Workshop 2000 , June, 2000 参照）。
【００４７】
図８はホライズンマッピングの原理を説明するための図である。対象物の形状２２０が図のように、画像平面２２８に対し凹凸を有する場合、光源２２２からの光は対象物に遮られないため点２３０に影は生じないが、光源２２４からの光は対象物に遮られるため影が生じる。すなわち点２３０については、光源２２６の角度を境に、影ができる／できないが決定づけられる。そこで点２３０などの各画素における画像平面の垂線に対する、光源の角度θを多段階で変化させたときに、影ができるか否かの２値を表したデータをホライズンマップとして準備する。
【００４８】
そして影表現部１２８は、あらかじめ設定された光源の位置、または視点の移動などによってあらかじめ設定された規則に従い変化させるなどして決定した光源の位置と、ホライズンマップとを比較し、必要な画素に適宜影をつけていく。画像出力部１３０は、上述のように描画された画像のデータを表示処理部４４のフレームメモリに出力する。
【００４９】
ここでカラーマップ１３４を上述のように階層データとした場合、ハイトマップ１３２、法線マップ１３６、およびホライズンマップ１３８もまた、階層データとしてもよい。この場合、カラーマップ１３４と同様に、その他のマップもタイル画像に分割し、画像表示に必要な領域のタイル画像データを適宜ロードしデコードする。各マップを同じ解像度の階層構造とすれば、表示画像の解像度を大きく変化させても、用いるデータの階層を全て切り替えるのみで同様の処理により表示画像を描画でき、対象物の凹凸を表現した詳細な画像を迅速に表示させることができる。
【００５０】
カラーマップ１３４を階層データとした場合、一つの解像度の画像データを用いた場合と比較し、上述のとおり応答性よく表示できる解像度の幅が広がる。そのような解像度の変化に対応するように、実際に対象物を遠くから見たときと近接して見たときとでは、対象物の見た目の印象も変化する。本実施の形態では、表示画像においてそのような印象の変化を表現するため、上述した凹凸情報を用いた処理を、視点の高さ、すなわち解像度によって変化させてもよい。
【００５１】
図９は視点の高さによって表示画像処理部１１４が行う処理を変化させる態様の例を説明するための図である。同図において横軸は視点の高さであり、右へ向かうほど画像平面へ近づくとする。そのような視点の変化に対して表された各チャートは、上から視差表現部１２４がハイトマップ１３２を用いて行う処理、色表現部１２６がカラーマップ１３４を用いて行う処理、法線マップ１３６を用いて行う処理、および影表現部１２８がホライズンマップ１３８を用いて行う処理の動作／非動作を示している。
【００５２】
まず視点の高さが最大であるＨｍａｘから所定のしきい値Ｈ１までの間は、対象物から十分離れたときの印象として凹凸や影は認識されにくく、視差も生じにくいことから、色表現部１２６のみが動作し、なおかつバンプマッピングは行わずにカラーマップのみで画像を描画する。視線の高さがＨ１から次のしきい値Ｈ２までの間は、凹凸を表現するために色表現部１２６がカラーマップ１３４および法線マップ１３６を用いて画像を描画する。このとき視差表現部１２４と影表現部１２８は動作しない。
【００５３】
そして視線の高さがＨ２から次のしきい値Ｈ３までの間は、凹凸の影を認識できる状態として、色表現部１２６に加え影表現部１２８がホライズンマップ１３８を用いて影をつける。そして視点の高さがＨ３から最小であるＨｍｉｎまでの間は、視差の影響が大きくなるため色表現部１２６、影表現部１２８に加え、視差表現部１２４がハイトマップ１３２を用いて視差による画素のずれを表現する。
【００５４】
このように視点の高さによって画像描画のための処理内容を変化させることにより、実世界において対象物との距離の変化によって人が受ける印象の変化を表現できるとともに、必要十分な処理のみを行うことで処理の負荷を抑えることができる。処理を切り替える視点の高さのしきい値は、表示に用いる階層を切り替えるときの視点の高さと同じにしてもよい。また、ハイトマップから得られる対象物の高さの最大値と視点の高さの比によってしきい値を変化させてもよい。また、ホライズンマップを用いて影を付ける際は、視点の高さに応じて光源の方向を変化させるようにしてもよい。また、点光源、面光源を切り替えてもよい。このような光源の変化によっても、可能となる表現の幅が広がる。
【００５５】
このように視点が低くなるほど表示画像処理部１１４が行う処理を多くした場合、図９の最下段に示すように、視点が低くなるほど表示領域の移動速度が遅くなるように調整して、処理に要する時間を吸収するようにしてもよい。具体的にはガウス関数などの伝達関数のピーク値を、視点が低くなるほど低く設定し、ユーザが入力した視点移動要求の信号と畳み込み演算することにより、信号の入力から当該信号に対応する表示画像が表示されるまでの時間を調整すればよい。
【００５６】
また、カラーマップ１３４、ハイトマップ１３２、法線マップ１３６、およびホライズンマップ１３８を階層データとした場合でも、上述のとおり視点の高さによって用いるマップを変化させるときは、マップごとに階層の数を異ならせてもよい。図１０はカラーマップ１３４、ハイトマップ１３２、法線マップ１３６、およびホライズンマップ１３８のデータ構造を異ならせた場合の概念図を示している。同図において横軸は視点の高さであり、右へ向かうほど画像平面へ近づくとする。そして各マップの階層構造を図４に示したのと同様に示している。
【００５７】
同図に示すようにカラーマップ１３４は、全ての視点の高さ、すなわち全ての解像度で必要であるため、その階層は最も多い。そして例えば、カラーマップ１３４の最上階層である第０階層の次の第１階層を用いて画像を表示する際の視点の高さから法線マップ１３６を用いたバンプマッピングを行うように設定すると、法線マップ１３６はカラーマップ１３４の第１階層に対応する階層から準備すればよくなる。
【００５８】
そして、カラーマップ１３４の第２階層を用いて画像を表示する際の視点の高さからホライズンマップ１３８を用いたホライズンマッピングを行うように設定すると、ホライズンマップ１３８はカラーマップ１３４の第２階層に対応する階層から準備すればよくなる。同様に、カラーマップ１３４の第３階層を用いて画像を表示する際の視点の高さから視差マッピングを行うように設定すると、ハイトマップ１３２はカラーマップ１３４の第３階層に対応する階層から準備すればよくなる。
【００５９】
このようにデータを準備することにより、画像データ全体としてのデータサイズを小さくすることができる。なお図９、図１０に示した、視点の高さの変化による処理の組み合わせの変化はあくまで例示であり、画像中の対象物の性質、画像データ作成者の表現意図などによって適宜設定してよい。また各種マップの階層数は、表示する画像の性質などによっては、視点の高さによる処理の変化とは独立に決定してもよい。
【００６０】
画像処理装置１０がネットワークに接続されている状態では、一部のマップ、または一部の階層を有料とし、代金を支払ったユーザのみがダウンロードできるようにしてもよい。例えばカラーマップ１３４のみを安価で提供し、それを用いた画像を表示させているユーザが画像を拡大していき追加のマップが適用できる解像度となったら、当該マップを購入するか否かを確認するメッセージを表示する。ユーザが購入する意志表示を行ったら、追加のマップがダウンロードできるようにする。
【００６１】
そして画像処理装置１０において、新たにダウンロードしたマップを用いて対応する処理を施す。これによりユーザは初めて、凹凸まで表現された高精細画像を見ることができる。またカラーマップ１３４も、最初は低解像度の階層のみ提供し、拡大時に必要となる高解像度の階層のダウンロードに対し課金するようにしてもよい。
【００６２】
次にこれまで述べた構成による画像処理装置１０の動作を説明する。図１１は画像表示の処理手順を示すフローチャートである。まずユーザが画像表示を開始する指示を行った際などに、表示対象の画像の全体像などあらかじめ定めた初期画像の表示に必要な画像データをハードディスクドライブ５０から読み出し、デコードしたうえで表示画像を作成し、表示する（Ｓ１０）。ユーザが入力装置２０に対し視点移動要求を入力するまで初期画像を表示し続ける（Ｓ１２のＮ、Ｓ１０）。表示領域移動要求がなされたら（Ｓ１２のＹ）、制御部１００の描画領域特定部１１０は、当該要求に従い新たに表示すべき表示領域のフレーム座標と新たな視点を導出する（Ｓ１４）。
【００６３】
新たな画像の描画に必要なデータは必要に応じてハードディスクドライブ５０からロード部１０８によってロード、デコード部１１２によってデコードされ、バッファメモリ７０に格納される（Ｓ１６）。すると表示画像処理部１１４の視差表現部１２４は、バッファメモリ７０のハイトマップ１３２を読み出し、視差マッピングを行うことにより視差による画素のずれを算出する（Ｓ１８）。次に色表現部１２６は、バッファメモリ７０のカラーマップ１３４および法線マップ１３６を読み出し、凹凸を表現しながら画像を描画する（Ｓ２０）。
【００６４】
次に影表現部１２８は、バッファメモリ７０のホライズンマップ１３８を読み出し、ホライズンマッピングを行うことにより画像に影をつける（Ｓ２２）。なお上述したように視点の高さ、またはそれ以外の設定により、Ｓ１８、Ｓ２０、Ｓ２２の処理のいずれかを選択的に行ってもよい。またＳ２０のバンプマッピングは、法線を全て垂直としてカラーマップ１３４をそのままマッピングしてもよい。このように描画した画像を表示処理部４４のフレームメモリに描き出し、表示装置１２に表示することにより、表示画像が更新される（Ｓ２４）。
【００６５】
次に本実施の形態で用いる画像データの作成方法について説明する。図１２は本実施の形態において画像データを生成する画像データ生成装置の構成を示している。画像データ生成装置３００は対象物を撮影した計測画像を取得する計測画像取得部３０２、計測画像や、場合によってはハイトマップから法線マップを取得する法線マップ作成部３０４、法線マップからハイトマップを作成するハイトマップ作成部３０６、およびハイトマップからホライズンマップを作成するホライズンマップ作成部３０８、計測画像からカラーマップを作成するカラーマップ作成部３１０、および作成した各マップのデータを圧縮して格納する記憶装置３１２を含む。
【００６６】
計測画像取得部３０２は、対象物の真上でカメラを固定し、光源の方向を３つ以上変化させて撮影した３つ以上の画像のデータを、計測画像のデータとして取得する。計測画像のデータはあらかじめ記憶装置３１２に格納しておいたものを読み出してもよいし、計測画像取得部自体をカメラとし、撮影することで取得してもよい。光源の方向は例えば、対象物の中心を取り巻く８方向、およびカメラと同じ方向の計９方向などとする。これにより９枚の計測画像が取得される。
【００６７】
法線マップ作成部３０４は、計測画像を用いて各画素の法線ベクトルを取得する。法線ベクトルは照度差ステレオ法（photometric stereo）を用いることによって得られる。具体的には、法線ベクトルをｎ、表面反射率をρ、ｉ番目の光源の方向ベクトルをＬｉ、当該光源に対しカメラで撮影された明るさをＩｉとしたとき、各画素について次の式をｎについて解く。
【００６８】
【数１】
2011134101.tif 000003
【００６９】
表面反射率ρを既知とした場合、法線ベクトルｎの要素であるｘ、ｙ、ｚ座標を求めるには上記式が３つあればよい。計測画像が９方向の光源で取得した９枚の画像であるとすると、それらの画像のうち、鏡面反射している画像、影になっている画像を、画素の色情報より検出して除外したうえで上記式を立てることにより、精度よく法線ベクトルを導出できる。
【００７０】
ハイトマップ作成部３０６は、法線マップ作成部３０４が作成した法線マップの法線ベクトルから、所定方向における対象物の傾きを求め、それから得られる高さの変位を足していくことにより画素の列ごとに高さ情報を取得し、ハイトマップを作成する。詳細は後に述べる。
【００７１】
ホライズンマップ作成部３０８は、ハイトマップ作成部が作成したハイトマップを用いてホライズンマップを作成する。ホライズンマップは上述のとおり、光源の傾きによって影が出るか否かを表すデータであるため、対象物の高さ情報がハイトマップより得られていれば、仮想的に光源の方向を所定の角度に振ることによりデータが得られる。
【００７２】
例えばＲＧＢＡカラーモデルでは、赤、緑、青、アルファ値の４種類のデータを画素ごとに保持し、一般的にはそれぞれに対し２５６階調の値を設定できる。このデータ構造をそのまま利用すると、光源の画像平面上での４方向に対し、画像平面の垂線からの角度を２５６段階に調節したときに影になるか否かを画素ごとに保持することができる。このようなデータを２つ準備すれば、合計８方向の光源によるホライズンマップを作成できる。
【００７３】
カラーマップ作成部３１０は計測画像のうち例えばカメラと同じ方向に光源を設置したときの計測画像から各画素の色情報を取得し、カラーマップを作成する。なお法線マップ作成部３０４、ハイトマップ作成部３０６、ホライズンマップ作成部３０８、およびカラーマップ作成部３１０が作成した各マップは、圧縮して記憶装置３１２に格納される。また後述するように、法線マップ作成部３０４、ハイトマップ作成部３０６、ホライズンマップ作成部３０８、およびカラーマップ作成部３１０は、各マップの階層データを作成してもよい。この場合、図４で示したように、各階層のデータは所定サイズの領域に分割したタイル画像ごとに圧縮してもよい。
【００７４】
図１３は、計測画像取得部３０２をカメラとした場合の、計測画像の取得態様を説明するための図である。絵画などの対象物３１４に対し、カメラ３１６は真上の位置に固定とする。そして対象物の中心を中心とし所定の高さにある円周上に光源３１８を配置する。図では円周上に８つの光源を表している。またカメラと同じ位置にも光源３１９を配置する。そして光源を一つ一つ点灯しながらカメラ３１６で対象物３１４を撮影する。
【００７５】
この場合、光源３１８を複数備えたリング型のストロボ装置を用意し、各光源を順次点灯させてもよい。あるいは、円周上を回転可能な光源３１８を一つ備えたストロボ装置を用意し、カメラ３１６の撮影タイミングに合わせて円周上を回転させることにより、複数方向の光源による撮影を実現してもよい。
【００７６】
図１４はハイトマップ作成部３０６が法線マップを用いてハイトマップを作成する原理を説明するための図である。同図において横方向が画像平面を表し、対象物が形状３２０を有するとする。縦の破線で区切られた領域を一つの画素とすると、法線マップは図中、各画素に対して矢印で表される法線ベクトルの成分情報を保持している。
【００７７】
このような状況においてハイトマップ作成部３０６は、法線マップ上を所定の方向に走査していき、当該方向における画素ごとの対象物の傾きを、各法線ベクトルより算出する。そして走査線上の１つ前の画素との境界における対象物の高さに、対象画素の傾きから得られる高さの変位を足していくことにより、対象画素と次の画素の境界における高さを算出する。
【００７８】
図１４の場合、図の左から右、すなわち画素Ａ、Ｂ、Ｃ、Ｄ、・・・と走査していくと、画素Ａとその左隣の画素の境界における対象物の高さＨ１に、画素Ａの傾きから得られる高さの変位Δ１を足した高さＨ２が、画素Ａと画素Ｂの境界における高さとなる。次に高さＨ２に、画素Ｂの傾きから得られる高さの変位Δ２を足した高さＨ３が、画素Ｂと画素Ｃの境界における高さとなる。高さＨ３に画素Ｃの高さの変位Ｄ３を足した高さＨ４が画素Ｃと画素Ｄの境界における高さとなる。
【００７９】
これを画像の左端から右端まで繰り返すことにより一行分の画素の高さ情報が得られる。なお左端の高さは０．５など初期値を与えておく。このような行ごとの処理を画像中の全ての行で行うことにより、画像を構成する全ての画素の高さ情報、すなわちハイトマップが得られる。行ごとの処理は独立しているため、並列に行うことにより処理に要する時間を短縮できる。
【００８０】
図１４に示した処理により、連続的な勾配を有する対象物に対して精度よくハイトマップを取得できる。一方、対象物に不連続な段差がある場合、隣接する画素で高さは異なるが法線ベクトルが当該高さの差を反映していないことがあり得る。このような場合に精度を維持するため、ハイトマップ作成部３０６はさらに、同じ法線マップに対し、別の方向で同様の高さ情報を取得する。例えば上述の左端から右端の方向に加え、上端から下端、右端から左端、下端から上端の４方向で走査を行い、４つのハイトマップを作成する。そして４つのハイトマップが保持する高さを画素ごとに平均した値を、最終的なハイトマップの高さ情報とする。
【００８１】
油絵などでも絵の具の盛り上がりなどによって急な段差が形成されている場合があるが、どの方向から走査しても急な段差になっていることは稀であり、通常、筆の運びによって連続的な勾配がいずれかの方向で存在する。勾配が連続的であれば正確な高さを導出できるため、上述のように複数の方向で走査した結果、生成したハイトマップを平均化することにより、精度のよいハイトマップを生成できる。
【００８２】
走査方向は縦、横のみならず斜めでもよい。図１５は法線マップに対し斜めに走査してハイトマップを作成する手法を説明するための図である。同図の例では画像３２２に対し矢印に示すように、左上から右下へ、右上から左下へ、左下から右上へ、右下から左上へ、いずれも画像の縦横方向から４５°の方向に走査する。矢印は４本のみ示しているが、この場合も同一の方向で全ての列について高さ情報を取得し、計４枚のハイトマップを作成する。そして上述同様、各画素における平均値を最終的なハイトマップのデータとする。
【００８３】
同図では、このように斜めに走査した場合の、ある走査線３２４が横切る画素ＥおよびＨと、それらに隣接する画素ＦおよびＧの２×２個の画素を拡大した画素ブロック３２６を示している。同画素ブロック３２６において画素Ｈにおける対象物の高さを求めるときは、画素Ｆ、Ｇ、Ｈの法線を用いてＥからＨへの方向の傾きを求め、その方向の高さの変位を画素Ｅと画素Ｈとの境界における高さに足す。このように左上から右下への走査によるハイトマップを作成するときは、左端一列分の画素と上端一行分の画素に初期値を与えておく。その他の方向についても同様の処理により、各方向の走査によるハイトマップを取得できる。
【００８４】
なお、縦横方向の走査と図１５のような斜め方向の走査を行い８つのハイトマップを作成し、それら全ての平均値を最終的なハイトマップのデータとしてもよい。複数のハイトマップから最終的なハイトマップのデータを算出する手法は、単に平均値でなくてもよく、様々な統計手法を適用してよい。例えば画素ごとに各ハイトマップにおける高さの偏差を算出し、それが所定のしきい値を超える高さの値を除外した後、平均値を求めたり、ニューラルネットワークにかけたりしてもよい。
【００８５】
次に、法線マップ、ハイトマップ、ホライズンマップを階層データとするときのデータ作成手法について説明する。カラーマップは上述のように、高精細な画像を最下層とし、それを順次縮小した画像を作成することで階層化した。一方、高精細画像の計測画像を用いて法線マップやホライズンマップの最下層のデータを作成しても、これらのマップが保持するデータは基本的に画素ごとに独立した値であるため、縮小することが困難である。そのため、階層データにおける最下層以外の階層のデータを作成するのは容易でない。
【００８６】
そこで本実施の形態ではまず、カラーマップの最下層にあたる高解像度の計測画像から、同じ解像度の法線マップを作成し、一旦ハイトマップのの階層データを作成してから法線マップの階層データ作成処理に戻すようにする。図１６はカラーマップ、法線マップ、ハイトマップ、ホライズンマップの階層データを作成する手順を示すフローチャートである。
【００８７】
まず計測画像取得部３０２は、階層データのうち最下層の解像度、すなわち最も高い解像度での計測画像を取得する（Ｓ３０）。するとカラーマップ作成部３１０は、当該計測画像のうち光源がカメラと同じ方向にある画像を取得し、それを所定の解像度に縮小していくことにより、カラーマップの階層データを作成する（Ｓ３２）。
【００８８】
次に法線マップ作成部３０４は、計測画像を用いて、カラーマップの最下層の画像に対応する解像度の法線マップを作成する（Ｓ３４）。これは法線マップの階層データにおける最下層のデータとなる。次にハイトマップ作成部３０６は、Ｓ３４で得られた最下層の法線マップを所定の方向に走査して平均化するなどして、最下層のハイトマップを作成する（Ｓ３６）。続いてハイトマップ作成部３０６は、画像を縮小する際一般的に用いられるバイリニア法などの手法によって、最下層のハイトマップを順次縮小していき、カラーマップの階層データに対応する階層データを作成する（Ｓ３８）。
【００８９】
法線マップ作成部３０４は、そのようにして作成されたハイトマップの階層データのうち、最下層を除く各階層のハイトマップを微分することにより法線マップの各階層を生成し、階層データとする（Ｓ４０）。具体的には、各階層のハイトマップを例えば縦横２方向で走査してハイトマップを微分することにより各方向における対象物の傾き情報を得る。そして画素ごとに当該傾きから得られる走査方向ごとの法線ベクトルを合成することにより最終的な法線ベクトルを得、法線マップを生成する。一方、ホライズンマップ作成部３０８は、ハイトマップの各階層からホライズンマップの各階層を生成し、階層データとする（Ｓ４２）。作成した各マップはそれぞれタイル画像に分割し、圧縮した後、記憶装置３１２に格納する（Ｓ４４）。
【００９０】
図１７はカラーマップ、法線マップ、ハイトマップ、ホライズンマップの階層データを作成する別の手順を示すフローチャートである。この例では、最初に計測画像を階層化し、カラーマップ、法線マップにおける各階層は、計測画像の対応する階層から直接生成する。まず計測画像取得部３０２は、階層データのうち最下層の解像度、すなわち最も高い解像度での計測画像を取得し（Ｓ５０）、さらに当該画像を所定サイズに順次縮小していき複数の画像を生成することで階層化する（Ｓ５２）。
【００９１】
次にカラーマップ作成部３１０は、光源がカメラと同じ方向にある計測画像の階層データの各階層から直接、カラーマップの各階層を生成して階層データとする（Ｓ５４）。法線マップ作成部３０４は、同じ階層の計測画像を集めて階層ごとに方程式を解くことにより、対応する階層の法線マップを生成して階層データとする（Ｓ５６）。ハイトマップ作成部３０６は、法線マップの階層データにおける各階層に対し走査を行うなどして、対応する階層のハイトマップを作成し階層データとする（Ｓ５８）。ホライズンマップ作成部３０８は、ハイトマップの階層データにおける各階層から、対応する階層のホライズンマップを作成し階層データとする（Ｓ６０）。そして作成した各マップはそれぞれタイル画像に分割し、圧縮した後、記憶装置３１２に格納する（Ｓ６２）。
【００９２】
なお階層データを用いることにより、より広範囲な解像度の変化に対応させて画像を表示できるため、その最下層の画像は部分的な領域を撮影した複数の画像をつなぎ合わせて作成してもよい。このような場合、複数の画像をつなぎ合わせた画像を計測画像とし、各マップは、つなぎ合わせた後の計測画像を用いて作成してもよい。あるいは、つなぎ合わせる前の各領域の画像を計測画像とし、領域ごとにマップを生成した後で、マップごとにつなぎ合わせることで最終的なマップを作成してもよい。
【００９３】
以上述べた本実施の形態によれば、表示画像のデータとして、画素ごとの色情報を保持するカラーマップの他に、ハイトマップ、法線マップ、ホライズンマップを準備する。そして、画像表示装置において、視差や凹凸、影を表現することにより、色情報のみでは得られにくい、臨場感のある画像表示が可能となる。このような態様は、油絵など表面の詳細な構造が重要となる対象物の画像では特に顕著な効果を発揮する。
【００９４】
また、視点の高さによって施す処理を変化させることにより、実際に対象物との距離を変化させたときに人に与える印象を再現できるとともに処理の負荷を調整することができる。また画像データ作成者の表現手法のひとつに用いることもできる。ユーザが拡大縮小の指示入力を行う場合は、画像に施す処理の数によって入力信号から画像更新までの遅延時間が連続的に変化するように制御することにより、より自然な動きで様々な効果を加えていくことができる。
【００９５】
このような特徴は、画像データを階層構造として、解像度の可変範囲を広げる態様でより効果的になる。このとき、カラーマップ以外の、ハイトマップ、法線マップ、ホライズンマップも階層データとし、対応する階層の同じ領域のデータを用いるようにすれば、解像度によらず処理が同等となるため、精度のよい処理を迅速に行える。ただし視点の高さ、すなわち解像度の範囲によって施す処理を異ならせる場合は、ハイトマップ、法線マップ、ホライズンマップについては必要な階層のみを準備することにより、画像データのサイズを抑えることができる。また画像表示に用いる階層の切り替えに伴って施す処理を切り替えれば、切り替えが容易になる。
【００９６】
このような画像表示を容易に実現するため、画像データを生成する際は、ます計測画像から法線マップを生成し、それを積分することによってハイトマップを生成する。ハイトマップの生成には通常、レーザを用いて対象物を測定したり、複数の角度から撮影したりすることが求められる。本実施の形態によれば、カメラを固定とし光源のみを複数に動かした計測画像を用いることで、法線マップ、ハイトマップ、ホライズンマップを作成するため、より手軽に画像データを作成できる。また複数の方向から法線マップを走査した結果を利用することにより、ハイトマップの精度を高めることができる。
【００９７】
さらに各マップを階層データとする場合は、法線マップから一度ハイトマップの階層データを作成し、その後に法線マップの各階層を作成することで、容易に法線マップの階層データを生成できる。ホライズンマップも、ハイトマップの各階層から直接各階層を生成でき、生成が容易である。または計測画像を階層化した後で、各階層に対応するマップを作成していくことで各マップの階層データを作成するようにしても、容易に画像データを生成できる。
【００９８】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００９９】
例えば本実施の形態では、撮影した画像を元に、各マップを含む画像データを作成した。一方、画面上に擬似的な油絵のキャンバスを表示させ、ユーザがマウスなどの入力装置を用いて絵を描くことのできる画像描画機能を備えた画像データ生成装置を実現してもよい。このときユーザは自分の描いた絵を拡大縮小可能とし、所定の解像度以上では凹凸感が出るように、ユーザの筆の運びなどに対応させて法線マップ、ハイトマップ、ホライズンマップを生成していく。これによりユーザは、あたかも油絵を描いているような感覚で画面上に凹凸感のある絵を描くことができる。
【符号の説明】
【０１００】
１  画像処理システム、  １０  画像処理装置、  １２  表示装置、  ２０  入力装置、  ３８  タイル画像、  ４４  表示処理部、  ５０  ハードディスクドライブ、  ６０  メインメモリ、  ７０  バッファメモリ、  １００  制御部、  １０２  入力情報取得部、  １０６ ロードブロック決定部、  １０８ ロード部、  １１０  描画領域特定部、  １１２ デコード部、  １１４ 表示画像処理部、  １２４  視差表現部、  １２６  色表現部、  １２８  影表現部、  １３０  画像出力部、  １３２  ハイトマップ、  １３４  カラーマップ、  １３６  法線マップ、  １３８  ホライズンマップ、  ３００  画像データ生成装置  、  ３０２  計測画像取得部、  ３０４  法線マップ作成部、  ３０６  ハイトマップ作成部、  ３０８  ホライズンマップ作成部、  ３１０  カラーマップ作成部、  ３１２  記憶装置。
【図１】
2011134101.tif 000004
【図２】
2011134101.tif 000005
【図３】
2011134101.tif 000006
【図４】
2011134101.tif 000007
【図５】
2011134101.tif 000008
【図６】
2011134101.tif 000009
【図７】
2011134101.tif 000010
【図８】
2011134101.tif 000011
【図９】
2011134101.tif 000012
【図１０】
2011134101.tif 000013
【図１１】
2011134101.tif 000014
【図１２】
2011134101.tif 000015
【図１３】
2011134101.tif 000016
【図１４】
2011134101.tif 000017
【図１５】
2011134101.tif 000018
【図１６】
2011134101.tif 000019
【図１７】
2011134101.tif 000020