(57)【要約】【課題】表示用画像の生成をより短時間で実行可能とする技術を提供する。【解決手段】制御部２０が、ボリュームデータを記憶部２２又はメモリカード５１などから読み込んで、ＲＡＭ２０ｂ内に一時的に記憶する。そして、ハイブリッド型のボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータとして分割階層レベルを段階的に異なる値に設定する。このとき、段階的に異なる値に分割階層レベルを設定した状態で、分割階層レベルに応じたオクトリーデータをボリュームデータに基づいて生成する。更に、異なる分割階層レベルそれぞれについて、ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測し、最短の処理時間に対応する分割階層レベルを計算上最適な分割階層レベルとして決定する。【選択図】図１
2006099422.tif 000002
【特許請求の範囲】
【請求項１】
ボリュームレンダリングによって表示用画像を生成する画像処理装置であって、
ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータを段階的に異なる値に設定するパラメータ設定手段と、
処理対象となる３次元領域に係るボリュームデータを所定の記憶手段に読込む読込手段と、
前記ボリュームデータに基づくボリュームレンダリングを行うレンダリング手段と、
前記パラメータ設定手段によって前記段階的に異なるパラメータにそれぞれ設定された状態で、前記レンダリング手段による前記ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測する計測手段と、
前記段階的に異なるパラメータと、当該段階的に異なるパラメータにそれぞれ対応する前記計測手段によって計測された処理時間とを関連付けて一時的に記憶する一時記憶手段と、
前記一時記憶手段に記憶された複数の処理時間のうち、最短の処理時間に対応するパラメータを、前記ボリュームデータに対するパラメータとして決定するパラメータ決定手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
コンピュータにおいて実行されることにより、ボリュームレンダリングによって表示用画像を生成する画像処理装置として前記コンピュータを機能させるプログラムであって、
前記画像処理装置が、
ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータを段階的に異なる値に設定するパラメータ設定手段と、
処理対象となる３次元領域に係るボリュームデータを所定の記憶手段に読込む読込手段と、
前記ボリュームデータに基づくボリュームレンダリングを行うレンダリング手段と、
前記パラメータ設定手段によって前記段階的に異なるパラメータにそれぞれ設定された状態で、前記レンダリング手段による前記ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測する計測手段と、
前記段階的に異なるパラメータと、当該段階的に異なるパラメータにそれぞれ対応する前記計測手段によって計測された処理時間とを関連付けて一時的に記憶する一時記憶手段と、
前記一時記憶手段に記憶された複数の処理時間のうち、最短の処理時間に対応するパラメータを、前記ボリュームデータにに対するパラメータとして決定するパラメータ決定手段と、
を備えることを特徴とするプログラム。
【請求項３】
請求項２に記載されたプログラムであって、
前記レンダリング手段が、
前記ボリュームデータに基づいて３次元データを生成するとともに、前記３次元データに基づくボリュームレンダリングを行い、
前記パラメータが、
前記３次元データの解像度を決定するパラメータであることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ボリュームレンダリングによって表示用の画像を生成する技術に関する。
【背景技術】
【０００２】
３次元オブジェクトを示すボリュームデータを視覚化して表示する手法として、ボリュームレンダリング(Volume Rendering)が良く知られている。このボリュームレンダリングには、レイキャスティング(Ray Casting)法と呼ばれる手法があり、更に、レイキャスティング法には、いわゆるオブジェクトオーダーレンダリング(object order rendering)方法と画像オーダーレンダリング(image order rendering)方法とがある（例えば、特許文献１）。
【０００３】
また、このボリュームレンダリングは、医療の現場で、内蔵などの３次元オブジェクトに係るボリュームデータを画面上に視覚化する場面で良く使われる。そして、視線方向を適宜変化させつつ、患部などを観察する際には、表示画像の切り替わりが速く、ユーザーがストレスを感じないようにすることが望まれている。
【０００４】
そのため、ボリュームレンダリングを高速化する手法が種々考えられ、提案されている。その中で、投影面が設定される度に、投影面と３次元オブジェクトとの距離の分布を示すデプスマップを生成するオブジェクトオーダーの処理が実行され、生成されたデプスマップを用いて各視線に沿ったサンプリングを行う画像オーダーの処理が実行されることで、ボリュームデータの視覚化が実施されるタイプ（ハイブリッド型）のレイキャスティング法が知られている。
【０００５】
この従来のハイブリッド型のレイキャスティング法では、デプスマップの生成精度が固定されている。そして、例えば、デプスマップの生成精度が高い状態に固定されたものでは、オブジェクトオーダーの処理に係る演算量が相対的に高く、画像オーダーの処理に係る演算量が相対的に低くなる傾向にある。その一方で、デプスマップの生成精度が低い状態に固定されたものでは、オブジェクトオーダーの処理に係る演算量が相対的に低く、画像オーダーの処理に係る演算量が相対的に高くなる傾向にある。
【０００６】
このような技術に関する先行技術文献としては、以下のようなものがある。
【０００７】
【特許文献１】特開２００２−１８３７４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、３次元オブジェクトの形状によっては、必要以上にデプスマップを詳細に生成し過ぎたり、画像オーダーの処理の演算時間を抑える観点から、デプスマップを粗く生成し過ぎることで、ボリュームレンダリングに要する処理時間全体が増大し過ぎてしまうといった問題が生じる。つまり、これまでは、デプスマップの生成精度と、表示用画像の生成に要する時間とのバランスについては、あまり考慮されておらず、表示用画像の生成、ひいては表示画像の表示切り替えに長時間を要し、投影面すなわち視線方向の変更に応じて表示画像をスムーズに変化させることが難しかった。
【０００９】
本発明は、上記課題に鑑みてなされたものであり、表示用画像の生成をより短時間で実行可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、請求項１の発明は、ボリュームレンダリングによって表示用画像を生成する画像処理装置であって、ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータを段階的に異なる値に設定するパラメータ設定手段と、処理対象となる３次元領域に係るボリュームデータを所定の記憶手段に読込む読込手段と、前記ボリュームデータに基づくボリュームレンダリングを行うレンダリング手段と、前記パラメータ設定手段によって前記段階的に異なるパラメータにそれぞれ設定された状態で、前記レンダリング手段による前記ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測する計測手段と、前記段階的に異なるパラメータと、当該段階的に異なるパラメータにそれぞれ対応する前記計測手段によって計測された処理時間とを関連付けて一時的に記憶する一時記憶手段と、前記一時記憶手段に記憶された複数の処理時間のうち、最短の処理時間に対応するパラメータを、前記ボリュームデータに対するパラメータとして決定するパラメータ決定手段とを備えることを特徴とする。
【００１１】
また、請求項２の発明は、コンピュータにおいて実行されることにより、ボリュームレンダリングによって表示用画像を生成する画像処理装置として前記コンピュータを機能させるプログラムであって、前記画像処理装置が、ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータを段階的に異なる値に設定するパラメータ設定手段と、処理対象となる３次元領域に係るボリュームデータを所定の記憶手段に読込む読込手段と、前記ボリュームデータに基づくボリュームレンダリングを行うレンダリング手段と、前記パラメータ設定手段によって前記段階的に異なるパラメータにそれぞれ設定された状態で、前記レンダリング手段による前記ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測する計測手段と、前記段階的に異なるパラメータと、当該段階的に異なるパラメータにそれぞれ対応する前記計測手段によって計測された処理時間とを関連付けて一時的に記憶する一時記憶手段と、前記一時記憶手段に記憶された複数の処理時間のうち、最短の処理時間に対応するパラメータを、前記ボリュームデータにに対するパラメータとして決定するパラメータ決定手段とを備えることを特徴とする。
【００１２】
また、請求項３の発明は、請求項２に記載されたプログラムであって、前記レンダリング手段が、前記ボリュームデータに基づいて３次元データを生成するとともに、前記３次元データに基づくボリュームレンダリングを行い、前記パラメータが、前記３次元データの解像度を決定するパラメータであることを特徴とするプログラムである。
【発明の効果】
【００１３】
請求項１に記載の発明によれば、ボリュームレンダリングにおける画像オーダーの処理とオブジェクトオーダーの処理との処理割合に影響するパラメータを段階的に異なる値に設定した状態で、ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測して、最短の処理時間に対応するパラメータをボリュームデータに対するパラメータとして決定する構成とすることで、その後、決定された計算上最適なパラメータに従ってボリュームレンダリングを行うことにより、表示用画像の生成をより短時間で実行可能とすることができる。
【００１４】
また、請求項２の発明によれば、請求項１に記載された発明と同様な効果を奏する。
【００１５】
また、請求項３の発明によれば、ボリュームレンダリングにおける画像オーダーの処理とオブジェクトオーダーの処理との処理割合に影響するパラメータが、ボリュームデータに基づいて生成される３次元データの解像度であるような構成とすることで、表示用画像の生成をより短時間で実行可能とする観点から、３次元データの解像度を好ましいレベルに設定することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を図面に基づいて説明する。
【００１７】
＜画像処理システムの概要＞
図１は、本発明の実施形態に係る画像処理システム１の概要を例示する図である。
【００１８】
画像処理システム１は、パーソナルコンピュータ（以下単に「パソコン」と称する）２と、パソコン２とデータ送受信可能に接続されるモニター３及び装着部５と、パソコン２に対してユーザーが各種選択事項などを入力する操作部４とを備えて構成される。
【００１９】
パソコン２は、制御部２０、入出力Ｉ／Ｆ２１、及び記憶部２２を備えている。
【００２０】
入出力Ｉ／Ｆ２１は、パソコン２と、モニター３、操作部４、及び装着部５との間でデータの送受信を行うためのインターフェイス（Ｉ／Ｆ）であり、制御部２０との間でデータの送受信を行う。
【００２１】
記憶部２２は、例えばハードディスクなどで構成されており、後述するボリュームレンダリングおよびボリュームレンダリングにおけるパラメータの調整などを実現するための画像処理プログラムＰＧなどを格納している。
【００２２】
制御部２０は、主にＣＰＵ、ＲＯＭ２０ａ、及びＲＡＭ２０ｂなどを有し、パソコン２の各部を統括制御する部位である。そして、この制御部２０は、記憶部２２に格納される画像処理プログラムＰＧを読み込んでＣＰＵで実行することにより、ボリュームデータに基づいて表示用の画像データ（「表示用画像」とも称する）を生成するボリュームレンダリングを実施し、当該表示用画像を入出力Ｉ／Ｆ２１を介してモニター３に出力する。このように、パソコン２は、ボリュームレンダリングによりボリュームデータに基づいて表示用画像を生成する画像処理装置として働く。
【００２３】
モニター３は、例えばＣＲＴで構成され、制御部２０で生成される表示用画像を可視的に出力する。つまり、表示用画像に基づいた表示画像を出力する。
【００２４】
操作部４は、キーボードやマウスなどから構成され、ユーザーの各種操作にしたがって各種電気信号を入出力Ｉ／Ｆ２１に送信する。また、装着部５は、メモリカード５１などの記憶媒体を着脱自在に装着することができる。そして、装着部５に装着されたメモリカード５１に格納される各種データやプログラムなどを入出力Ｉ／Ｆ２１を介して制御部２０や記憶部２２に取り込むことができる。
【００２５】
＜ボリュームレンダリングについて＞
ここでは、物体を非常に小さい立方体（又は直方体）を要素とする集合により表現するボクセル表現と呼ばれる手法が用いられる。そして、この要素としての立方体（又は直方体）がボクセルと呼ばれる。
【００２６】
一般に、Ｘ線を利用したＣＴスキャン（Computed Tomography Scan）を使用することにより、人体を輪切りにした時の映像を得ることができる。そして、この輪切りの位置をずらすことにより、また切断方向を上下、前後、左右に変化させることにより、ボクセルごとにＸ線の吸収量を蓄えたデータが得られる。このように３次元空間内の濃度や密度の分布を表したデータは「ボリュームデータ」と呼ばれる。このボリュームデータは、ボリュームデータが表現する対象となる３次元領域、すなわちボリュームデータに対応する３次元領域が複数のボクセルに分割されて、各ボクセルに対して１つのボクセル値（ここでは、Ｘ線の吸収量を示す値）が与えられたデータとなっている。そして、このボリュームデータに対応する３次元領域が、ボリュームデータに基づくボリュームレンダリングにおける演算処理の対象となる。
【００２７】
画像処理システム１におけるボリュームレンダリングに際しては、まず、ボリュームデータに基づいて、ボリュームレンダリングの対象物、すなわち３次元オブジェクトの形状を示すオクトリー（Octree）データを生成する（オクトリーデータの生成法については後述する）。そして、３次元オブジェクトを投影するための投影面が設定されると、オクトリーデータを利用して、３次元オブジェクトと投影面との距離の分布（デプスマップ）を生成し、更に、デプスマップを利用して、例えば、レイキャスティング(Ray Casting)法による処理が行われる。つまり、ここでは、下表１に示すように、オクトリーデータを利用して、３次元オブジェクト側を基準として投影面までの距離を逐次計算することでデプスマップを生成する処理（オブジェクトオーダー処理）と、デプスマップを利用して、表示用画像などがデータ上で生成される投影面側から視線方向にサンプリングを行うレイキャスティング法による処理（画像オーダー処理）とを備えた所謂ハイブリッド型のボリュームレンダリングが行われる。
【００２８】
【表１】
2006099422.tif 000003
【００２９】
＜オクトリーデータの生成＞
ここで、画像処理システム１で実施されるボリュームデータに基づいたオクトリーデータの生成方法は、一般的に良く知られている方法であり、以下、簡単に説明する。
【００３０】
このボリュームデータに対応する３次元領域、すなわち３次元オブジェクトの存在する所定の立方体の空間（以下、ブロックとも称する）を処理対象として、まず、所定の立方体の空間を上下左右にそれぞれ２分割、すなわち２×２×２の合計８ブロックに分割する。そして、分割後の８ブロックについて、それぞれ３次元オブジェクトを構成する部分の存在状態を判定し、３次元オブジェクトがブロック全体を占めているブロックはそのまま採用し、３次元オブジェクトが全く存在しないブロックは採用せず、３次元オブジェクトが一部だけ占めているブロックは更に上述の如く８分割して、同様な判定を繰り返す。なお、ここで、３次元オブジェクトが存在するか否かの判定は、処理対象となる３次元オブジェクトに対応する所定値域範囲のボクセル値を示すボクセルが、判定の対象となるブロック内にどのように存在しているかに従って実施される。
【００３１】
そして、予め設定された分割する限界の回数、すなわち分割するレベル（「分割階層レベル」とも称する）によって、最終的なオクトリーデータが、３次元オブジェクトの形状をより詳細に反映した３次元データとなるか否かが決まる。
【００３２】
なお、本明細書中では、オクトリーデータが、３次元オブジェクトの形状をより詳細に反映していればしている程、オクトリーデータの解像度が高く、３次元オブジェクトの形状をより詳細に反映していなければしていない程、オクトリーデータの解像度が低いと表現する。よって、分割階層レベルは、ボリュームデータに基づいて生成される３次元の構造を示すデータ（３次元データ）であるオクトリーデータの解像度を規定するパラメータとなる。換言すれば、分割階層レベルがオクトリーデータの解像度を決定するパラメータとなる。
【００３３】
また、ここでは、分割階層レベルで決まる分割回数の最大値までブロックの分割が行われた際に、ブロック内に３次元オブジェクトが存在するものの、ブロック全体を３次元オブジェクトが占めていないブロックも生じるが、このようなブロックはそのまま採用されて、オクトリーデータの示す構造体に含まれる。
【００３４】
このようにして、ボリュームデータに基づいて、３次元オブジェクトの形状を大凡示す複数のブロックで構成されたオクトリーデータが生成される。
【００３５】
図２および図３は、ある３次元オブジェクトについて生成されたオクトリーデータが可視的に示された構造体の斜視図である。図２は、分割階層レベルがＮ＋１（Ｎは所定の自然数）に設定された場合に生成されるオクトリーデータが可視的に示された構造体Ｃ１の斜視図であり、図３は、分割階層レベルがＮに設定された場合に生成されるオクトリーデータが可視的に示された構造体Ｃ２の斜視図である。
【００３６】
なお、オクトリーデータに対応する構造体については、３次元オブジェクトの内部に相当する部分と、外縁の部分とで、ブロックが分割される回数が異なるため、実際には、異なる大きさのブロックが混在したものとなる傾向にある。しかし、図２および図３で示す構造体Ｃ１，Ｃ２は、便宜的に、全てのブロックを最終的に分割される最小のブロックの大きさまで分割されたブロック（以下「セル」とも称する）の集合体として示している。
【００３７】
図２および図３で示すように、分割階層レベルが相対的に１つ（１階層）多い構造体Ｃ１の方が、分割階層レベルが相対的に１つ（１階層）少ない構造体Ｃ２よりも、３次元オブジェクトの外縁部分をより詳細に示したものとなる。
【００３８】
＜オブジェクトオーダー処理＞
次に、上述のようにして生成されたオクトリーデータを利用したデプスマップの生成、すなわちオブジェクトオーダー処理について説明する。
【００３９】
３次元オブジェクトを投影するための投影面が設定されると、３次元オブジェクトに対応するオクトリーデータに係る構造体を投影面に対して投影して、デプスマップが生成される。例えば、図２および図３に示す構造体Ｃ１，Ｃ２を投影面に対して投影することで、デプスマップが生成される。
【００４０】
具体的には、例えば、構造体Ｃ１を対象とした場合、構造体Ｃ１を構成する各セルが順次指定されて、投影面に投影される。ここでは、１つのセルが指定されると、投影面のうち最終的に生成される表示用画像の各画素に対応する各点（「画素対応点」とも称する）に対し、投影面に対向するセルの表面と各画素対応点との距離（距離値）が検出されて与えられる。そして、順次セルが指定され、同一の画素対応点に複数の距離値が検出された場合には、より短距離側の距離値が採用され、全セルの指定が終了すると、各画素対応点に対して、構造体Ｃ１全体に対応する距離値が与えられた状態となる。つまり、構造体Ｃ１すなわち３次元オブジェクトについてのデプスマップが作成される。なお、デプスマップは、例えば、各画素対応点の位置座標と、対応する距離値とが関連付けられたデータとなる。
【００４１】
図４および図５は、図２および図３に示す構造体Ｃ１，Ｃ２にそれぞれ対応するデプスマップＤＭ１，ＤＭ２を可視的に示している。なお、図４および図５では、画素対応点に与えられる距離値が小さければ小さいほど低濃度となるようにデプスマップＤＭ１，ＤＭ２を示している。
【００４２】
図４および図５に示すように、分割階層レベルが比較的大きな場合には、相対的により詳細なデプスマップＤＭ１が生成される。
【００４３】
＜画像オーダー処理＞
図６及び図７は、レイキャスティング法によるボリュームレンダリング、すなわち画像オーダー処理を説明するための概念図である。
【００４４】
レイキャスティング法によるボリュームレンダリングでは、例えば、図６に示すように、３次元空間内に分布しているボクセルデータＶＤを、任意の視点ＳＰから投影面ＳＣ上の所定の各点ＣＰを介して射出されるレイ（視線とも称する）ＲＹに沿って一定間隔のサンプリング点ＳＭでサンプリングし、その値を加算していくことで最終的に半透明な表示用の画像（表示用画像）が生成される。なお、投影面ＳＣ上の各点ＣＰは、最終的に生成される表示用画像の各画素に対応する各画素対応点となっている。また、表示用画像上の画素のうち画素値を算出する対象となっている画素を「対象画素」とも称する。このボリュームレンダリングでは、半透明表示を行うことで物体の内部を可視化するが、これは各ボクセルＶＸに不透明度αを与えることで実現している。
【００４５】
レイキャスティング法によるボリュームレンダリングでは、レイＲＹに沿って視点ＳＰ側から順次各ボクセルの輝度値と不透明度αとの積を加算していき、αの総和が１となるか、又はレイＲＹが対象としているボリュームから抜け出たとき、その対象画素（対象画素に対応する画素対応点ＣＰ）に対する処理を終了し、加算結果を当該対象画素の値（画素値）として採用する。
【００４６】
現在のサンプリング点での輝度値及び不透明度をそれぞれｃ及びαとし、視線に沿って並んだサンプリング点に入射した積算輝度値Ｃinと当該サンプリング点を抜けたときの積算輝度値Ｃoutとの関係は、下式（１）のようになる。
【００４７】
【数１】
2006099422.tif 000004
【００４８】
また、図７に示すように、レイキャスティング法におけるサンプリング点（図７中でハッチングを付した丸印）ＳＭでの輝度値と不透明度は、例えば、周囲の隣接する８つのボクセル（図７中ではボクセルの中心点を白丸印で示す）に係る輝度値及び不透明度から線形補間によって求められる。
【００４９】
図８は、画像オーダー処理の動作フローを示すフローチャートである。なお、上述したオブジェクトオーダー処理が開始される前に、メモリカード５１や記憶部２２などに格納されたボリュームデータが制御部２０によって読み出されて取得され、ＲＡＭ２０ｂ内に一時的に格納されているものとする。そして、オブジェクトオーダー処理に引き続いて、図８に示す画像オーダー処理の動作フローが開始される。
【００５０】
画像オーダー処理の動作フローが開始されると、まず、各ボクセルの輝度値と不透明度とを決定し（ステップＳ１）、投影面上の各画素対応点からレイに沿って輝度値と不透明度との積を加算することで、各対象画素に対する最終的な画素値を求めて、１つの画像（表示用画像など）が生成される（ステップＳ２〜Ｓ５）。
【００５１】
この各レイに沿ってサンプリングを行い、輝度値と不透明度との積を加算する際に、サンプリングを行う開始点が、デプスマップを利用して決定される。このことは、いわゆるハイブリッド型のボリュームレンダリングでは、周知の事項であるが、具体的には、デプスマップでは、各画素対応点に対して３次元オブジェクトまでの大凡の距離値が与えられているため、デプスマップを参照することで、各レイについて、投影面ＳＣからどの程度離れた地点から３次元オブジェクトが存在するのかを認識することができる。したがって、３次元オブジェクトが存在しない位置において無駄なサンプリング処理および演算をさせないために、デプスマップを参照して、各レイ毎に、対応する距離値以上の地点からサンプリングを行うようにすることができる。さらに、デプスマップを参照することで、レイ上に３次元オブジェクトが全く存在していない状態も認識することができるため、サンプリングが必要ないレイも検出可能となり、無駄なサンプリングをより省略することができる。
【００５２】
ここで、各ボクセルの輝度値ｃ及び不透明度αの算出方法について説明する。
【００５３】
各ボクセルの輝度値ｃは、隣接するボクセル値の勾配より推定される法線ベクトルＮを用いてフォンのシェーディングモデルから下式（２）のように算出される。
【００５４】
【数２】
2006099422.tif 000005
【００５５】
ここでは、ｃpは光源強度を、ｋa，ｋd，ｋsはそれぞれ環境光、拡散光、及び鏡面反射光成分の割合を表す。ｄは投影面からボクセルまでの距離を表し、ｋ1及びｋ2は投影面に近いものほど明るく表示するデプスコーディング(Depth Cording)法のパラメータである。また、Ｌはボクセルから光源への単位方向ベクトルであり、Ｈは正反射光を求めるためのベクトルで、レイの方向を示す視線方向ベクトルＶにより下式（３）で求められる。
【００５６】
【数３】
2006099422.tif 000006
【００５７】
また、あるボクセル値ｆ（ｉ，ｊ，ｋ）の法線ベクトルＮは下式（４）で求められる。なお、ボクセル値ｆ（ｉ，ｊ，ｋ）は、３次元空間をｘ，ｙ，ｚの３次元直交座標系で示した場合のｘ＝ｉ，ｙ＝ｊ，ｚ＝ｋの座標におけるボクセル値を示す。
【００５８】
【数４】
2006099422.tif 000007
【００５９】
また、ここで、∇ｆ（ｉ，ｊ，ｋ）は、ボクセル値のｘ，ｙ，ｚ方向それぞれの勾配として下式（５）のように求められる。
【００６０】
【数５】
2006099422.tif 000008
【００６１】
また、レンダリングによって得られる表示用画像をカラー画像とする場合には、例えば、光源のＲ（レッド）Ｇ（グリーン）Ｂ（ブルー）の各成分毎に上式（２）〜（５）を用いた同様の計算を行うことで、各対象画素に対するＲＧＢの画素値を求めることができる。
【００６２】
なお、上式（２）〜（５）において、光源強度ｃp、環境光成分の割合ｋa，拡散光成分の割合ｋd，鏡面反射光成分の割合ｋs、及びデプスコーディング法のパラメータｋ1，ｋ2は、ユーザーによって適当な値に設定される。また、単位方向ベクトルＬは、光源の位置設定とボクセルとの位置関係によって求まり、レイの方向を示す視線方向ベクトルＶは、視点ＳＰの位置設定によって求まる。したがって、ここでは、上式（２）の右辺の値が全て求まるため、各ボクセルの輝度値ｃを算出することができる。
【００６３】
一方、不透明度αについては、下式（６）によって算出することができる。
【００６４】
【数６】
2006099422.tif 000009
【００６５】
ここでは、ｆ（ｉ，ｊ，ｋ）をｆと略して示し、ｆnは、不透明度を与えたいボクセル値の範囲におけるボクセル値の最低値を示し、ｆn+1は、不透明度を与えたいボクセル値の範囲におけるボクセル値の最大値を示す。また、αnは、ボクセル値がｆnのときの不透明度を示し、αn+1は、ボクセル値がｆn+1のときの不透明度を示す。更に、上式（６）によって不透明度を求めるのは、ｆn＜ｆ＜ｆn+1の関係を満たす場合であり、ｆn＜ｆ＜ｆn+1の関係を満たさない場合には、α＝０とする。
【００６６】
＜分割階層レベルと計算コストとの関係＞
ここで、ボリュームデータに基づいてオクトリーデータを生成する際の分割レベル（分割階層レベル）をパラメータとして、当該パラメータを変化させることを考え、パラメータの大小とオブジェクトオーダー処理および画像オーダー処理における計算コストとの関係を下表２に示している。
【００６７】
【表２】
2006099422.tif 000010
【００６８】
表２に示すように、分割階層レベルが比較的大きくなると、図２に示したように、各セルのサイズが比較的小さく、セルの数が比較的多くなる。そうすると、オブジェクトオーダー処理においては、投影面に対向するセルの表面の表面積が増大するため、デプスマップを生成するための投影の演算量が多くなり、計算時間（計算コストとも称する）が増大してしまう。その一方で、分割階層レベルが比較的大きくなると、図４に示すように、相対的により詳細なデプスマップＤＭ１が生成される。そのため、デプスマップＤＭ１を参照することで、３次元オブジェクトの外縁部分周辺において、３次元オブジェクトが存在するか否かをより詳細に認識することができる。その結果として、無駄なサンプリングを低減することができるため、画像オーダー処理の計算時間（計算コスト）が低減される。
【００６９】
これに対して、分割階層レベルが比較的小さくなると、図３に示したように、各セルのサイズが比較的大きく、セルの数が比較的少なくなる。そうすると、オブジェクトオーダー処理においては、セルの数が少なくなる分だけ、デプスマップを生成するための投影の演算量が少なくなり、計算時間（計算コスト）が低減する。その一方で、分割階層レベルが比較的小さくなると、図５に示すように、相対的により粗い（精度の悪い）デプスマップＤＭ２が生成される。そのため、デプスマップＤＭ２を参照することによっては、３次元オブジェクトの外縁部分周辺において、３次元オブジェクトが存在するか否かを詳細に認識することができない。その結果として、無駄なサンプリングが相対的に多くなってしまうため、画像オーダー処理の計算時間（計算コスト）が増大してしまう。
【００７０】
このように、分割階層レベルは、ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響し、当該処理割合を左右するパラメータとなる。そして、オブジェクトオーダー処理と画像オーダー処理との計算コストのバランスを、オクトリーデータを生成する際の分割階層レベルというパラメータによって適宜変更させることができる。しかしながら、オブジェクトオーダー処理や画像オーダー処理における計算コストは、処理対象となる３次元オブジェクトの形状や画像処理を行うハードウェア構成によって左右される。
【００７１】
３次元オブジェクトの形状の影響については、処理対象となる３次元オブジェクトがボールなどといった非常に単純な形状を有するものであれば、精度の悪いデプスマップを利用しても画像オーダー処理の計算コストの増大する度合いが相対的に小さくなる傾向にある。このような場合には、分割階層レベルを比較的小さくした方が、オブジェクトオーダー処理の計算コストと画像オーダー処理の計算コストとを合計した計算コスト（以下「合計計算コスト」と称する）を低く抑えることができる。
【００７２】
一方、処理対象となる３次元オブジェクトが木の枝のように非常に複雑な形状を有するものであれば、精度の悪いデプスマップを利用すると、無駄なサンプリングに係る計算が増大し、画像オーダー処理の計算コストが非常に大きくなる傾向にある。このような場合には、分割階層レベルを比較的大きくした方が、合計計算コストを低く抑えることができる。
【００７３】
また、ハードウェア構成の影響としては、例えば、制御部２０内のＲＡＭ２０ｂには、いわゆる１次キャッシュメモリと２次キャッシュメモリとが存在し、１次キャッシュメモリの容量はある程度の大きさに限定される。そのため、分割階層レベルが大きくなると、オクトリーデータに係る構造体が複雑化し、オクトリーデータの容量が大きくなって、１次キャッシュメモリに格納しきれない。このときには、２次キャッシュメモリにまでオクトリーデータを格納させなければならない。しかしながら、１次キャッシュメモリからＣＰＵがデータを読出す際に必要な時間よりも、２次キャッシュメモリからＣＰＵがデータを読出す際に必要な時間の方が、格段に大きいことが知られている。よって、分割階層レベルが大きく、２次キャッシュメモリにまでオクトリーデータが格納されるような状況では、オブジェクトオーダー処理に際して、オクトリーデータを読出すのに要する時間が増大し、オブジェクトオーダー処理の計算コスト、ひいては、合計計算コストの増大を招いてしまう傾向にある。
【００７４】
したがって、ハイブリッド型のボリュームレンダリングを行う際には、処理対象となる３次元オブジェクトの形状、およびメモリなどのハードウェア構成などといった条件によって、合計計算コストを低く抑えるために必要な分割階層レベルが異なる。
【００７５】
そこで、本発明の実施形態に係る画像処理システム１では、処理対象となる３次元オブジェクトが決定されると、分割階層レベルを段階的に変化させつつ、ハイブリッド型のボリュームレンダリングを行って、最も計算コストが低くなる分割階層レベルを、当該３次元オブジェクトに対する好ましい分割階層レベルとして設定する。このようにして、分割階層レベルの調整を行う。その後、視線方向の変化、すなわち投影面の変更に応じて、当該設定された分割階層レベルに従ったオクトリーデータを利用してボリュームレンダリングを行うことで、表示画像をスムーズに変化させることができる。
【００７６】
以下、分割階層レベルの調整について説明する。
【００７７】
＜分割階層レベルの調整＞
図９は、分割階層レベルの調整フローを示すフローチャートである。なお、本調整フローは、制御部２０が、記憶部２２に格納される画像処理プログラムＰＧを読み込んでＣＰＵで実行することにより実現される。ここでは、例えば、ユーザーが操作部４を種々操作することで、ボリュームレンダリングの対象となるボリュームデータを指定すると、図９のステップＳ１１に進む。
【００７８】
ステップＳ１１では、メモリカード５１や記憶部２２などに格納される処理対象となる３次元領域に係るボリュームデータが、制御部２０によって読み出されて取得され、記憶手段として機能するＲＡＭ２０ｂに読み込まれて一時的に記憶される。そして、ステップＳ１２に進む。なお、このとき、制御部２０によりボリュームデータに対して雑音除去のフィルター処理などの前処理が施されるようにしても良い。
【００７９】
ステップＳ１２では、ボリュームデータに基づいてオクトリーデータを生成する際のＸ段階（Ｘは２以上の自然数）の分割階層レベルを設定し、ステップＳ１３に進む。ここでは、例えば、５〜１０の６段階の異なる分割階層レベルを設定することができる。この異なる段階の分割階層レベルは、画像処理プログラムＰＧによって予め決まっているものであっても良いし、ユーザーが操作部４を種々操作することで、適宜決定することができるようにしても良い。
【００８０】
ステップＳ１３では、ステップＳ１２で設定された分割階層レベルのうち、最も小さな分割階層レベルｎを指定し、ステップＳ１４に進む。
【００８１】
ステップＳ１４では、ステップＳ１３で指定された分割階層レベルに従って、ステップＳ１１で取得したボリュームデータに基づいてオクトリーデータを生成し、ステップＳ１５に進む。ここでは、生成されたオクトリーデータがＲＡＭ２０ｂ内に一時的に格納される。
【００８２】
ステップＳ１５では、ボリュームレンダリングを実行し、ボリュームレンダリングの処理に要した時間（「所要処理時間」とも称する）を計測し、ステップＳ１３で指定された分割階層レベルｎと関連付けてＲＡＭ２０ｂ内に一時的に格納し、ステップＳ１６に進む。
【００８３】
ステップＳ１６では、ステップＳ１２で設定されたＸ段階の分割階層レベルの全てについて、ボリュームレンダリングが完了したか否かを判定する。ここでは、Ｘ段階全ての分割階層レベルについてボリュームレンダリングが完了していなければ、ステップＳ１７に進み、完了していれば、ステップＳ１８に進む。
【００８４】
ステップＳ１７では、分割階層レベルを、ステップＳ１３で指定された分割階層レベルｎよりも１階層だけ増加させて、ステップＳ１４に戻る。例えば、分割階層レベルとして５が指定されていた状態で、ステップＳ１７に進むと、分割階層レベルが６に設定される。このようにして、制御部２０の制御下で、分割階層レベルが段階的に異なる値に設定される。
【００８５】
したがって、ステップＳ１４からステップＳ１７の処理を繰り返すことで、Ｘ段階全ての分割階層レベルについてボリュームレンダリングが実行され、ステップＳ１８に進む。このとき、ステップＳ１５の処理がＸ回繰り返されることにより、段階的に異なるＸ段階の分割階層レベルにそれぞれ設定された状態で、ボリュームデータに基づくボリュームレンダリングに要する所要処理時間がそれぞれ計測される。そして、ＲＡＭ２０ｂには、Ｘ個の段階的に異なる分割階層レベルと、当該段階的に異なる分割階層レベルにそれぞれ対応するＸ個の所要処理時間とがそれぞれ関連づけられて一時的に記憶される。
【００８６】
なお、ステップＳ１４の処理が２回目以降の場合には、前回のステップＳ１４の処理においてオクトリーデータを生成するために使用されたデータをＲＡＭ２０ｂや記憶部２２などに記憶しておき、当該データを利用して、順次、分割階層レベルの増加に応じてブロックを更に分割しつつ、３次元オブジェクトの存在状態を判定することで、所望のオクトリーデータを生成するようにすることができる。
【００８７】
ステップＳ１８では、ＲＡＭ２０ｂに記憶されたＸ個の所要処理時間のうち、最短の所要処理時間を抽出し、当該最短の所要処理時間に対応する（関連付けて記憶された）分割階層レベルを検出する。そして、検出された分割階層レベルを、好ましい分割階層レベルとして決定し、ＲＡＭ２０ｂに記憶する。
【００８８】
図１０は、分割階層レベルと所要処理時間（合計計算コスト）との関係を曲線Ｃｖとして例示する図である。ステップＳ１８では、図１０に示すように、所要処理時間のうち、最短の所要処理時間に対応する分割階層レベルＡｊを検出する。
【００８９】
なお、ここで決定された好ましい分割階層レベルは、実際に演算処理を行った結果中で、合計計算コストを低減するといった観点から、最も好ましい分割階層レベルであるため、「計算上最適な分割階層レベル」とも称する。
【００９０】
このようにして、計算上最適な分割階層レベルが決定されることで、分割階層レベルの調整が完了し、図９に示す調整フローが終了する。
【００９１】
なお、その後、投影面が変更される度に、上記調整フローにおいて調整された計算上最適な分割階層レベルに従って、オクトリーデータが生成され、ボリュームレンダリングが行われることで、表示用画像が生成される。
【００９２】
以上のように、本発明の実施形態に係る画像処理システム１では、ハイブリッド型のボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータとして分割階層レベルを段階的に異なる値に設定する。そして、段階的に異なる値に分割階層レベルを設定した状態で、分割階層レベルに応じたオクトリーデータを処理対象となる３次元領域に係るボリュームデータ基づいて生成する。更に、異なる分割階層レベルそれぞれに対して、ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測し、最短の処理時間に対応する分割階層レベルを計算上最適な分割階層レベルとして決定する。このような構成とすることにより、一旦決定された計算上最適な分割階層レベルに従ってオクトリーデータを生成し、その後は、処理対象となる３次元オブジェクトについて、視線方向（投影面）を適宜変更させつつ表示用画像を生成するボリュームレンダリングを実施することができる。その結果、表示用画像の生成をより短時間で実行可能とすることができる。すなわち、モニター３に表示される表示画像を短時間で切り換えることができ、スムーズな表示画像の変化を実現することができる。
【００９３】
また、ここでは、ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータが、ボリュームデータに基づいて生成されるオクトリーデータの解像度にあたる。そのため、表示用画像の生成をより短時間で実行可能とするといった観点から、３次元データの解像度を好ましいレベル（比較的最適なもの）に設定することができる。
【００９４】
＜変形例＞
以上、この発明の実施形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
【００９５】
◎例えば、上述した実施形態では、１つの３次元オブジェクトに対する計算上最適な分割階層レベルを決定した。しかしながら、これに限られず、例えば、２以上の３次元オブジェクトに対してそれぞれ計算上最適な分割階層レベルを決定し、各々の３次元オブジェクトとそれに対応する計算上最適な分割階層レベルとを関連付けたデータベースを作成し、２以上の３次元オブジェクトを含む３次元領域についてボリュームレンダリングを行う際に、データベースを参照して、各３次元オブジェクトについて、計算上最適な分割階層レベルに従って演算処理を行うようにしても良い。なお、各々の３次元オブジェクトとそれに対応する計算上最適な分割階層レベルを示す情報とを、各３次元オブジェクトに係るボリュームデータに対して属性情報として付与するようにしても良い。
【００９６】
このような構成とすることで、複数の３次元オブジェクトを含む３次元領域について、表示用画像の生成をより短時間で実行可能とすることができる。
【００９７】
◎また、上述した実施形態では、分割階層レベルを６段階だけ変化させて、計算上最適な分割階層レベルを求めたが、これに限られず、例えば、３段階以上など複数の異なる分割階層レベルについて所要計算時間を計測して、計算上最適な分割階層レベルを求めるようにしても良い。但し、より表示用画像の生成を短時間で実行するといった観点からすれば、分割階層レベルを変化させる段階が多ければ多いほど、より最適な分割階層レベルを求めることができる。
【００９８】
◎なお、上述した実施形態では、ボリュームデータを読み込んだ際に、まず、分割階層レベルを段階的に変化させつつ、オクトリーデータを作成して、計算上最適な分割階層レベルを求めるため、最初にボリュームデータに基づいて表示用画像が生成されるまでに要する時間が長くなる。しかしながら、ボリュームデータの容量が大きく、当該ボリュームデータの読み込みには相対的に非常に長い時間を要するため、初期における計算上最適な分割階層レベルを求めるための時間は、ユーザーにとってそれ程気にならない程度となる。
【図面の簡単な説明】
【００９９】
【図１】本発明の実施形態に係る画像処理システム１の概要を例示する図である。
【図２】３次元オブジェクトに係るOctreeデータを例示する図である。
【図３】３次元オブジェクトに係るOctreeデータを例示する図である。
【図４】デプスマップを視覚的に表現した図である。
【図５】デプスマップを視覚的に表現した図である。
【図６】Ray Casting法によるVolume Renderingについて説明する図である。
【図７】Ray Casting法によるVolume Renderingについて説明する図である。
【図８】Ray Casting法によるVolume Renderingの一般的な動作フローを例示するフローチャートである。
【図９】分割階層レベルの調整フローを示すフローチャートである。
【図１０】分割階層レベルと計算コストとの関係を例示する図である。
【符号の説明】
【０１００】
１  画像処理システム
２  パソコン
２０  制御部
２０ａ  ＲＯＭ
２０ｂ  ＲＡＭ
２２  記憶部
ＰＧ  画像処理プログラム
【図１】
2006099422.tif 000011
【図２】
2006099422.tif 000012
【図３】
2006099422.tif 000013
【図４】
2006099422.tif 000014
【図５】
2006099422.tif 000015
【図６】
2006099422.tif 000016
【図７】
2006099422.tif 000017
【図８】
2006099422.tif 000018
【図９】
2006099422.tif 000019
【図１０】
2006099422.tif 000020