JP2006099422A - 画像処理装置、およびプログラム - Google Patents
画像処理装置、およびプログラム Download PDFInfo
- Publication number
- JP2006099422A JP2006099422A JP2004284598A JP2004284598A JP2006099422A JP 2006099422 A JP2006099422 A JP 2006099422A JP 2004284598 A JP2004284598 A JP 2004284598A JP 2004284598 A JP2004284598 A JP 2004284598A JP 2006099422 A JP2006099422 A JP 2006099422A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- volume
- data
- rendering
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
【課題】表示用画像の生成をより短時間で実行可能とする技術を提供する。
【解決手段】制御部20が、ボリュームデータを記憶部22又はメモリカード51などから読み込んで、RAM20b内に一時的に記憶する。そして、ハイブリッド型のボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータとして分割階層レベルを段階的に異なる値に設定する。このとき、段階的に異なる値に分割階層レベルを設定した状態で、分割階層レベルに応じたオクトリーデータをボリュームデータに基づいて生成する。更に、異なる分割階層レベルそれぞれについて、ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測し、最短の処理時間に対応する分割階層レベルを計算上最適な分割階層レベルとして決定する。
【選択図】図1
【解決手段】制御部20が、ボリュームデータを記憶部22又はメモリカード51などから読み込んで、RAM20b内に一時的に記憶する。そして、ハイブリッド型のボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータとして分割階層レベルを段階的に異なる値に設定する。このとき、段階的に異なる値に分割階層レベルを設定した状態で、分割階層レベルに応じたオクトリーデータをボリュームデータに基づいて生成する。更に、異なる分割階層レベルそれぞれについて、ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測し、最短の処理時間に対応する分割階層レベルを計算上最適な分割階層レベルとして決定する。
【選択図】図1
Description
本発明は、ボリュームレンダリングによって表示用の画像を生成する技術に関する。
3次元オブジェクトを示すボリュームデータを視覚化して表示する手法として、ボリュームレンダリング(Volume Rendering)が良く知られている。このボリュームレンダリングには、レイキャスティング(Ray Casting)法と呼ばれる手法があり、更に、レイキャスティング法には、いわゆるオブジェクトオーダーレンダリング(object order rendering)方法と画像オーダーレンダリング(image order rendering)方法とがある(例えば、特許文献1)。
また、このボリュームレンダリングは、医療の現場で、内蔵などの3次元オブジェクトに係るボリュームデータを画面上に視覚化する場面で良く使われる。そして、視線方向を適宜変化させつつ、患部などを観察する際には、表示画像の切り替わりが速く、ユーザーがストレスを感じないようにすることが望まれている。
そのため、ボリュームレンダリングを高速化する手法が種々考えられ、提案されている。その中で、投影面が設定される度に、投影面と3次元オブジェクトとの距離の分布を示すデプスマップを生成するオブジェクトオーダーの処理が実行され、生成されたデプスマップを用いて各視線に沿ったサンプリングを行う画像オーダーの処理が実行されることで、ボリュームデータの視覚化が実施されるタイプ(ハイブリッド型)のレイキャスティング法が知られている。
この従来のハイブリッド型のレイキャスティング法では、デプスマップの生成精度が固定されている。そして、例えば、デプスマップの生成精度が高い状態に固定されたものでは、オブジェクトオーダーの処理に係る演算量が相対的に高く、画像オーダーの処理に係る演算量が相対的に低くなる傾向にある。その一方で、デプスマップの生成精度が低い状態に固定されたものでは、オブジェクトオーダーの処理に係る演算量が相対的に低く、画像オーダーの処理に係る演算量が相対的に高くなる傾向にある。
このような技術に関する先行技術文献としては、以下のようなものがある。
しかしながら、3次元オブジェクトの形状によっては、必要以上にデプスマップを詳細に生成し過ぎたり、画像オーダーの処理の演算時間を抑える観点から、デプスマップを粗く生成し過ぎることで、ボリュームレンダリングに要する処理時間全体が増大し過ぎてしまうといった問題が生じる。つまり、これまでは、デプスマップの生成精度と、表示用画像の生成に要する時間とのバランスについては、あまり考慮されておらず、表示用画像の生成、ひいては表示画像の表示切り替えに長時間を要し、投影面すなわち視線方向の変更に応じて表示画像をスムーズに変化させることが難しかった。
本発明は、上記課題に鑑みてなされたものであり、表示用画像の生成をより短時間で実行可能とする技術を提供することを目的とする。
上記の課題を解決するために、請求項1の発明は、ボリュームレンダリングによって表示用画像を生成する画像処理装置であって、ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータを段階的に異なる値に設定するパラメータ設定手段と、処理対象となる3次元領域に係るボリュームデータを所定の記憶手段に読込む読込手段と、前記ボリュームデータに基づくボリュームレンダリングを行うレンダリング手段と、前記パラメータ設定手段によって前記段階的に異なるパラメータにそれぞれ設定された状態で、前記レンダリング手段による前記ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測する計測手段と、前記段階的に異なるパラメータと、当該段階的に異なるパラメータにそれぞれ対応する前記計測手段によって計測された処理時間とを関連付けて一時的に記憶する一時記憶手段と、前記一時記憶手段に記憶された複数の処理時間のうち、最短の処理時間に対応するパラメータを、前記ボリュームデータに対するパラメータとして決定するパラメータ決定手段とを備えることを特徴とする。
また、請求項2の発明は、コンピュータにおいて実行されることにより、ボリュームレンダリングによって表示用画像を生成する画像処理装置として前記コンピュータを機能させるプログラムであって、前記画像処理装置が、ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータを段階的に異なる値に設定するパラメータ設定手段と、処理対象となる3次元領域に係るボリュームデータを所定の記憶手段に読込む読込手段と、前記ボリュームデータに基づくボリュームレンダリングを行うレンダリング手段と、前記パラメータ設定手段によって前記段階的に異なるパラメータにそれぞれ設定された状態で、前記レンダリング手段による前記ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測する計測手段と、前記段階的に異なるパラメータと、当該段階的に異なるパラメータにそれぞれ対応する前記計測手段によって計測された処理時間とを関連付けて一時的に記憶する一時記憶手段と、前記一時記憶手段に記憶された複数の処理時間のうち、最短の処理時間に対応するパラメータを、前記ボリュームデータにに対するパラメータとして決定するパラメータ決定手段とを備えることを特徴とする。
また、請求項3の発明は、請求項2に記載されたプログラムであって、前記レンダリング手段が、前記ボリュームデータに基づいて3次元データを生成するとともに、前記3次元データに基づくボリュームレンダリングを行い、前記パラメータが、前記3次元データの解像度を決定するパラメータであることを特徴とするプログラムである。
請求項1に記載の発明によれば、ボリュームレンダリングにおける画像オーダーの処理とオブジェクトオーダーの処理との処理割合に影響するパラメータを段階的に異なる値に設定した状態で、ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測して、最短の処理時間に対応するパラメータをボリュームデータに対するパラメータとして決定する構成とすることで、その後、決定された計算上最適なパラメータに従ってボリュームレンダリングを行うことにより、表示用画像の生成をより短時間で実行可能とすることができる。
また、請求項2の発明によれば、請求項1に記載された発明と同様な効果を奏する。
また、請求項3の発明によれば、ボリュームレンダリングにおける画像オーダーの処理とオブジェクトオーダーの処理との処理割合に影響するパラメータが、ボリュームデータに基づいて生成される3次元データの解像度であるような構成とすることで、表示用画像の生成をより短時間で実行可能とする観点から、3次元データの解像度を好ましいレベルに設定することができる。
以下、本発明の実施形態を図面に基づいて説明する。
<画像処理システムの概要>
図1は、本発明の実施形態に係る画像処理システム1の概要を例示する図である。
図1は、本発明の実施形態に係る画像処理システム1の概要を例示する図である。
画像処理システム1は、パーソナルコンピュータ(以下単に「パソコン」と称する)2と、パソコン2とデータ送受信可能に接続されるモニター3及び装着部5と、パソコン2に対してユーザーが各種選択事項などを入力する操作部4とを備えて構成される。
パソコン2は、制御部20、入出力I/F21、及び記憶部22を備えている。
入出力I/F21は、パソコン2と、モニター3、操作部4、及び装着部5との間でデータの送受信を行うためのインターフェイス(I/F)であり、制御部20との間でデータの送受信を行う。
記憶部22は、例えばハードディスクなどで構成されており、後述するボリュームレンダリングおよびボリュームレンダリングにおけるパラメータの調整などを実現するための画像処理プログラムPGなどを格納している。
制御部20は、主にCPU、ROM20a、及びRAM20bなどを有し、パソコン2の各部を統括制御する部位である。そして、この制御部20は、記憶部22に格納される画像処理プログラムPGを読み込んでCPUで実行することにより、ボリュームデータに基づいて表示用の画像データ(「表示用画像」とも称する)を生成するボリュームレンダリングを実施し、当該表示用画像を入出力I/F21を介してモニター3に出力する。このように、パソコン2は、ボリュームレンダリングによりボリュームデータに基づいて表示用画像を生成する画像処理装置として働く。
モニター3は、例えばCRTで構成され、制御部20で生成される表示用画像を可視的に出力する。つまり、表示用画像に基づいた表示画像を出力する。
操作部4は、キーボードやマウスなどから構成され、ユーザーの各種操作にしたがって各種電気信号を入出力I/F21に送信する。また、装着部5は、メモリカード51などの記憶媒体を着脱自在に装着することができる。そして、装着部5に装着されたメモリカード51に格納される各種データやプログラムなどを入出力I/F21を介して制御部20や記憶部22に取り込むことができる。
<ボリュームレンダリングについて>
ここでは、物体を非常に小さい立方体(又は直方体)を要素とする集合により表現するボクセル表現と呼ばれる手法が用いられる。そして、この要素としての立方体(又は直方体)がボクセルと呼ばれる。
ここでは、物体を非常に小さい立方体(又は直方体)を要素とする集合により表現するボクセル表現と呼ばれる手法が用いられる。そして、この要素としての立方体(又は直方体)がボクセルと呼ばれる。
一般に、X線を利用したCTスキャン(Computed Tomography Scan)を使用することにより、人体を輪切りにした時の映像を得ることができる。そして、この輪切りの位置をずらすことにより、また切断方向を上下、前後、左右に変化させることにより、ボクセルごとにX線の吸収量を蓄えたデータが得られる。このように3次元空間内の濃度や密度の分布を表したデータは「ボリュームデータ」と呼ばれる。このボリュームデータは、ボリュームデータが表現する対象となる3次元領域、すなわちボリュームデータに対応する3次元領域が複数のボクセルに分割されて、各ボクセルに対して1つのボクセル値(ここでは、X線の吸収量を示す値)が与えられたデータとなっている。そして、このボリュームデータに対応する3次元領域が、ボリュームデータに基づくボリュームレンダリングにおける演算処理の対象となる。
画像処理システム1におけるボリュームレンダリングに際しては、まず、ボリュームデータに基づいて、ボリュームレンダリングの対象物、すなわち3次元オブジェクトの形状を示すオクトリー(Octree)データを生成する(オクトリーデータの生成法については後述する)。そして、3次元オブジェクトを投影するための投影面が設定されると、オクトリーデータを利用して、3次元オブジェクトと投影面との距離の分布(デプスマップ)を生成し、更に、デプスマップを利用して、例えば、レイキャスティング(Ray Casting)法による処理が行われる。つまり、ここでは、下表1に示すように、オクトリーデータを利用して、3次元オブジェクト側を基準として投影面までの距離を逐次計算することでデプスマップを生成する処理(オブジェクトオーダー処理)と、デプスマップを利用して、表示用画像などがデータ上で生成される投影面側から視線方向にサンプリングを行うレイキャスティング法による処理(画像オーダー処理)とを備えた所謂ハイブリッド型のボリュームレンダリングが行われる。
<オクトリーデータの生成>
ここで、画像処理システム1で実施されるボリュームデータに基づいたオクトリーデータの生成方法は、一般的に良く知られている方法であり、以下、簡単に説明する。
ここで、画像処理システム1で実施されるボリュームデータに基づいたオクトリーデータの生成方法は、一般的に良く知られている方法であり、以下、簡単に説明する。
このボリュームデータに対応する3次元領域、すなわち3次元オブジェクトの存在する所定の立方体の空間(以下、ブロックとも称する)を処理対象として、まず、所定の立方体の空間を上下左右にそれぞれ2分割、すなわち2×2×2の合計8ブロックに分割する。そして、分割後の8ブロックについて、それぞれ3次元オブジェクトを構成する部分の存在状態を判定し、3次元オブジェクトがブロック全体を占めているブロックはそのまま採用し、3次元オブジェクトが全く存在しないブロックは採用せず、3次元オブジェクトが一部だけ占めているブロックは更に上述の如く8分割して、同様な判定を繰り返す。なお、ここで、3次元オブジェクトが存在するか否かの判定は、処理対象となる3次元オブジェクトに対応する所定値域範囲のボクセル値を示すボクセルが、判定の対象となるブロック内にどのように存在しているかに従って実施される。
そして、予め設定された分割する限界の回数、すなわち分割するレベル(「分割階層レベル」とも称する)によって、最終的なオクトリーデータが、3次元オブジェクトの形状をより詳細に反映した3次元データとなるか否かが決まる。
なお、本明細書中では、オクトリーデータが、3次元オブジェクトの形状をより詳細に反映していればしている程、オクトリーデータの解像度が高く、3次元オブジェクトの形状をより詳細に反映していなければしていない程、オクトリーデータの解像度が低いと表現する。よって、分割階層レベルは、ボリュームデータに基づいて生成される3次元の構造を示すデータ(3次元データ)であるオクトリーデータの解像度を規定するパラメータとなる。換言すれば、分割階層レベルがオクトリーデータの解像度を決定するパラメータとなる。
また、ここでは、分割階層レベルで決まる分割回数の最大値までブロックの分割が行われた際に、ブロック内に3次元オブジェクトが存在するものの、ブロック全体を3次元オブジェクトが占めていないブロックも生じるが、このようなブロックはそのまま採用されて、オクトリーデータの示す構造体に含まれる。
このようにして、ボリュームデータに基づいて、3次元オブジェクトの形状を大凡示す複数のブロックで構成されたオクトリーデータが生成される。
図2および図3は、ある3次元オブジェクトについて生成されたオクトリーデータが可視的に示された構造体の斜視図である。図2は、分割階層レベルがN+1(Nは所定の自然数)に設定された場合に生成されるオクトリーデータが可視的に示された構造体C1の斜視図であり、図3は、分割階層レベルがNに設定された場合に生成されるオクトリーデータが可視的に示された構造体C2の斜視図である。
なお、オクトリーデータに対応する構造体については、3次元オブジェクトの内部に相当する部分と、外縁の部分とで、ブロックが分割される回数が異なるため、実際には、異なる大きさのブロックが混在したものとなる傾向にある。しかし、図2および図3で示す構造体C1,C2は、便宜的に、全てのブロックを最終的に分割される最小のブロックの大きさまで分割されたブロック(以下「セル」とも称する)の集合体として示している。
図2および図3で示すように、分割階層レベルが相対的に1つ(1階層)多い構造体C1の方が、分割階層レベルが相対的に1つ(1階層)少ない構造体C2よりも、3次元オブジェクトの外縁部分をより詳細に示したものとなる。
<オブジェクトオーダー処理>
次に、上述のようにして生成されたオクトリーデータを利用したデプスマップの生成、すなわちオブジェクトオーダー処理について説明する。
次に、上述のようにして生成されたオクトリーデータを利用したデプスマップの生成、すなわちオブジェクトオーダー処理について説明する。
3次元オブジェクトを投影するための投影面が設定されると、3次元オブジェクトに対応するオクトリーデータに係る構造体を投影面に対して投影して、デプスマップが生成される。例えば、図2および図3に示す構造体C1,C2を投影面に対して投影することで、デプスマップが生成される。
具体的には、例えば、構造体C1を対象とした場合、構造体C1を構成する各セルが順次指定されて、投影面に投影される。ここでは、1つのセルが指定されると、投影面のうち最終的に生成される表示用画像の各画素に対応する各点(「画素対応点」とも称する)に対し、投影面に対向するセルの表面と各画素対応点との距離(距離値)が検出されて与えられる。そして、順次セルが指定され、同一の画素対応点に複数の距離値が検出された場合には、より短距離側の距離値が採用され、全セルの指定が終了すると、各画素対応点に対して、構造体C1全体に対応する距離値が与えられた状態となる。つまり、構造体C1すなわち3次元オブジェクトについてのデプスマップが作成される。なお、デプスマップは、例えば、各画素対応点の位置座標と、対応する距離値とが関連付けられたデータとなる。
図4および図5は、図2および図3に示す構造体C1,C2にそれぞれ対応するデプスマップDM1,DM2を可視的に示している。なお、図4および図5では、画素対応点に与えられる距離値が小さければ小さいほど低濃度となるようにデプスマップDM1,DM2を示している。
図4および図5に示すように、分割階層レベルが比較的大きな場合には、相対的により詳細なデプスマップDM1が生成される。
<画像オーダー処理>
図6及び図7は、レイキャスティング法によるボリュームレンダリング、すなわち画像オーダー処理を説明するための概念図である。
図6及び図7は、レイキャスティング法によるボリュームレンダリング、すなわち画像オーダー処理を説明するための概念図である。
レイキャスティング法によるボリュームレンダリングでは、例えば、図6に示すように、3次元空間内に分布しているボクセルデータVDを、任意の視点SPから投影面SC上の所定の各点CPを介して射出されるレイ(視線とも称する)RYに沿って一定間隔のサンプリング点SMでサンプリングし、その値を加算していくことで最終的に半透明な表示用の画像(表示用画像)が生成される。なお、投影面SC上の各点CPは、最終的に生成される表示用画像の各画素に対応する各画素対応点となっている。また、表示用画像上の画素のうち画素値を算出する対象となっている画素を「対象画素」とも称する。このボリュームレンダリングでは、半透明表示を行うことで物体の内部を可視化するが、これは各ボクセルVXに不透明度αを与えることで実現している。
レイキャスティング法によるボリュームレンダリングでは、レイRYに沿って視点SP側から順次各ボクセルの輝度値と不透明度αとの積を加算していき、αの総和が1となるか、又はレイRYが対象としているボリュームから抜け出たとき、その対象画素(対象画素に対応する画素対応点CP)に対する処理を終了し、加算結果を当該対象画素の値(画素値)として採用する。
現在のサンプリング点での輝度値及び不透明度をそれぞれc及びαとし、視線に沿って並んだサンプリング点に入射した積算輝度値Cinと当該サンプリング点を抜けたときの積算輝度値Coutとの関係は、下式(1)のようになる。
また、図7に示すように、レイキャスティング法におけるサンプリング点(図7中でハッチングを付した丸印)SMでの輝度値と不透明度は、例えば、周囲の隣接する8つのボクセル(図7中ではボクセルの中心点を白丸印で示す)に係る輝度値及び不透明度から線形補間によって求められる。
図8は、画像オーダー処理の動作フローを示すフローチャートである。なお、上述したオブジェクトオーダー処理が開始される前に、メモリカード51や記憶部22などに格納されたボリュームデータが制御部20によって読み出されて取得され、RAM20b内に一時的に格納されているものとする。そして、オブジェクトオーダー処理に引き続いて、図8に示す画像オーダー処理の動作フローが開始される。
画像オーダー処理の動作フローが開始されると、まず、各ボクセルの輝度値と不透明度とを決定し(ステップS1)、投影面上の各画素対応点からレイに沿って輝度値と不透明度との積を加算することで、各対象画素に対する最終的な画素値を求めて、1つの画像(表示用画像など)が生成される(ステップS2〜S5)。
この各レイに沿ってサンプリングを行い、輝度値と不透明度との積を加算する際に、サンプリングを行う開始点が、デプスマップを利用して決定される。このことは、いわゆるハイブリッド型のボリュームレンダリングでは、周知の事項であるが、具体的には、デプスマップでは、各画素対応点に対して3次元オブジェクトまでの大凡の距離値が与えられているため、デプスマップを参照することで、各レイについて、投影面SCからどの程度離れた地点から3次元オブジェクトが存在するのかを認識することができる。したがって、3次元オブジェクトが存在しない位置において無駄なサンプリング処理および演算をさせないために、デプスマップを参照して、各レイ毎に、対応する距離値以上の地点からサンプリングを行うようにすることができる。さらに、デプスマップを参照することで、レイ上に3次元オブジェクトが全く存在していない状態も認識することができるため、サンプリングが必要ないレイも検出可能となり、無駄なサンプリングをより省略することができる。
ここで、各ボクセルの輝度値c及び不透明度αの算出方法について説明する。
各ボクセルの輝度値cは、隣接するボクセル値の勾配より推定される法線ベクトルNを用いてフォンのシェーディングモデルから下式(2)のように算出される。
ここでは、cpは光源強度を、ka,kd,ksはそれぞれ環境光、拡散光、及び鏡面反射光成分の割合を表す。dは投影面からボクセルまでの距離を表し、k1及びk2は投影面に近いものほど明るく表示するデプスコーディング(Depth Cording)法のパラメータである。また、Lはボクセルから光源への単位方向ベクトルであり、Hは正反射光を求めるためのベクトルで、レイの方向を示す視線方向ベクトルVにより下式(3)で求められる。
また、あるボクセル値f(i,j,k)の法線ベクトルNは下式(4)で求められる。なお、ボクセル値f(i,j,k)は、3次元空間をx,y,zの3次元直交座標系で示した場合のx=i,y=j,z=kの座標におけるボクセル値を示す。
また、ここで、∇f(i,j,k)は、ボクセル値のx,y,z方向それぞれの勾配として下式(5)のように求められる。
また、レンダリングによって得られる表示用画像をカラー画像とする場合には、例えば、光源のR(レッド)G(グリーン)B(ブルー)の各成分毎に上式(2)〜(5)を用いた同様の計算を行うことで、各対象画素に対するRGBの画素値を求めることができる。
なお、上式(2)〜(5)において、光源強度cp、環境光成分の割合ka,拡散光成分の割合kd,鏡面反射光成分の割合ks、及びデプスコーディング法のパラメータk1,k2は、ユーザーによって適当な値に設定される。また、単位方向ベクトルLは、光源の位置設定とボクセルとの位置関係によって求まり、レイの方向を示す視線方向ベクトルVは、視点SPの位置設定によって求まる。したがって、ここでは、上式(2)の右辺の値が全て求まるため、各ボクセルの輝度値cを算出することができる。
一方、不透明度αについては、下式(6)によって算出することができる。
ここでは、f(i,j,k)をfと略して示し、fnは、不透明度を与えたいボクセル値の範囲におけるボクセル値の最低値を示し、fn+1は、不透明度を与えたいボクセル値の範囲におけるボクセル値の最大値を示す。また、αnは、ボクセル値がfnのときの不透明度を示し、αn+1は、ボクセル値がfn+1のときの不透明度を示す。更に、上式(6)によって不透明度を求めるのは、fn<f<fn+1の関係を満たす場合であり、fn<f<fn+1の関係を満たさない場合には、α=0とする。
<分割階層レベルと計算コストとの関係>
ここで、ボリュームデータに基づいてオクトリーデータを生成する際の分割レベル(分割階層レベル)をパラメータとして、当該パラメータを変化させることを考え、パラメータの大小とオブジェクトオーダー処理および画像オーダー処理における計算コストとの関係を下表2に示している。
ここで、ボリュームデータに基づいてオクトリーデータを生成する際の分割レベル(分割階層レベル)をパラメータとして、当該パラメータを変化させることを考え、パラメータの大小とオブジェクトオーダー処理および画像オーダー処理における計算コストとの関係を下表2に示している。
表2に示すように、分割階層レベルが比較的大きくなると、図2に示したように、各セルのサイズが比較的小さく、セルの数が比較的多くなる。そうすると、オブジェクトオーダー処理においては、投影面に対向するセルの表面の表面積が増大するため、デプスマップを生成するための投影の演算量が多くなり、計算時間(計算コストとも称する)が増大してしまう。その一方で、分割階層レベルが比較的大きくなると、図4に示すように、相対的により詳細なデプスマップDM1が生成される。そのため、デプスマップDM1を参照することで、3次元オブジェクトの外縁部分周辺において、3次元オブジェクトが存在するか否かをより詳細に認識することができる。その結果として、無駄なサンプリングを低減することができるため、画像オーダー処理の計算時間(計算コスト)が低減される。
これに対して、分割階層レベルが比較的小さくなると、図3に示したように、各セルのサイズが比較的大きく、セルの数が比較的少なくなる。そうすると、オブジェクトオーダー処理においては、セルの数が少なくなる分だけ、デプスマップを生成するための投影の演算量が少なくなり、計算時間(計算コスト)が低減する。その一方で、分割階層レベルが比較的小さくなると、図5に示すように、相対的により粗い(精度の悪い)デプスマップDM2が生成される。そのため、デプスマップDM2を参照することによっては、3次元オブジェクトの外縁部分周辺において、3次元オブジェクトが存在するか否かを詳細に認識することができない。その結果として、無駄なサンプリングが相対的に多くなってしまうため、画像オーダー処理の計算時間(計算コスト)が増大してしまう。
このように、分割階層レベルは、ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響し、当該処理割合を左右するパラメータとなる。そして、オブジェクトオーダー処理と画像オーダー処理との計算コストのバランスを、オクトリーデータを生成する際の分割階層レベルというパラメータによって適宜変更させることができる。しかしながら、オブジェクトオーダー処理や画像オーダー処理における計算コストは、処理対象となる3次元オブジェクトの形状や画像処理を行うハードウェア構成によって左右される。
3次元オブジェクトの形状の影響については、処理対象となる3次元オブジェクトがボールなどといった非常に単純な形状を有するものであれば、精度の悪いデプスマップを利用しても画像オーダー処理の計算コストの増大する度合いが相対的に小さくなる傾向にある。このような場合には、分割階層レベルを比較的小さくした方が、オブジェクトオーダー処理の計算コストと画像オーダー処理の計算コストとを合計した計算コスト(以下「合計計算コスト」と称する)を低く抑えることができる。
一方、処理対象となる3次元オブジェクトが木の枝のように非常に複雑な形状を有するものであれば、精度の悪いデプスマップを利用すると、無駄なサンプリングに係る計算が増大し、画像オーダー処理の計算コストが非常に大きくなる傾向にある。このような場合には、分割階層レベルを比較的大きくした方が、合計計算コストを低く抑えることができる。
また、ハードウェア構成の影響としては、例えば、制御部20内のRAM20bには、いわゆる1次キャッシュメモリと2次キャッシュメモリとが存在し、1次キャッシュメモリの容量はある程度の大きさに限定される。そのため、分割階層レベルが大きくなると、オクトリーデータに係る構造体が複雑化し、オクトリーデータの容量が大きくなって、1次キャッシュメモリに格納しきれない。このときには、2次キャッシュメモリにまでオクトリーデータを格納させなければならない。しかしながら、1次キャッシュメモリからCPUがデータを読出す際に必要な時間よりも、2次キャッシュメモリからCPUがデータを読出す際に必要な時間の方が、格段に大きいことが知られている。よって、分割階層レベルが大きく、2次キャッシュメモリにまでオクトリーデータが格納されるような状況では、オブジェクトオーダー処理に際して、オクトリーデータを読出すのに要する時間が増大し、オブジェクトオーダー処理の計算コスト、ひいては、合計計算コストの増大を招いてしまう傾向にある。
したがって、ハイブリッド型のボリュームレンダリングを行う際には、処理対象となる3次元オブジェクトの形状、およびメモリなどのハードウェア構成などといった条件によって、合計計算コストを低く抑えるために必要な分割階層レベルが異なる。
そこで、本発明の実施形態に係る画像処理システム1では、処理対象となる3次元オブジェクトが決定されると、分割階層レベルを段階的に変化させつつ、ハイブリッド型のボリュームレンダリングを行って、最も計算コストが低くなる分割階層レベルを、当該3次元オブジェクトに対する好ましい分割階層レベルとして設定する。このようにして、分割階層レベルの調整を行う。その後、視線方向の変化、すなわち投影面の変更に応じて、当該設定された分割階層レベルに従ったオクトリーデータを利用してボリュームレンダリングを行うことで、表示画像をスムーズに変化させることができる。
以下、分割階層レベルの調整について説明する。
<分割階層レベルの調整>
図9は、分割階層レベルの調整フローを示すフローチャートである。なお、本調整フローは、制御部20が、記憶部22に格納される画像処理プログラムPGを読み込んでCPUで実行することにより実現される。ここでは、例えば、ユーザーが操作部4を種々操作することで、ボリュームレンダリングの対象となるボリュームデータを指定すると、図9のステップS11に進む。
図9は、分割階層レベルの調整フローを示すフローチャートである。なお、本調整フローは、制御部20が、記憶部22に格納される画像処理プログラムPGを読み込んでCPUで実行することにより実現される。ここでは、例えば、ユーザーが操作部4を種々操作することで、ボリュームレンダリングの対象となるボリュームデータを指定すると、図9のステップS11に進む。
ステップS11では、メモリカード51や記憶部22などに格納される処理対象となる3次元領域に係るボリュームデータが、制御部20によって読み出されて取得され、記憶手段として機能するRAM20bに読み込まれて一時的に記憶される。そして、ステップS12に進む。なお、このとき、制御部20によりボリュームデータに対して雑音除去のフィルター処理などの前処理が施されるようにしても良い。
ステップS12では、ボリュームデータに基づいてオクトリーデータを生成する際のX段階(Xは2以上の自然数)の分割階層レベルを設定し、ステップS13に進む。ここでは、例えば、5〜10の6段階の異なる分割階層レベルを設定することができる。この異なる段階の分割階層レベルは、画像処理プログラムPGによって予め決まっているものであっても良いし、ユーザーが操作部4を種々操作することで、適宜決定することができるようにしても良い。
ステップS13では、ステップS12で設定された分割階層レベルのうち、最も小さな分割階層レベルnを指定し、ステップS14に進む。
ステップS14では、ステップS13で指定された分割階層レベルに従って、ステップS11で取得したボリュームデータに基づいてオクトリーデータを生成し、ステップS15に進む。ここでは、生成されたオクトリーデータがRAM20b内に一時的に格納される。
ステップS15では、ボリュームレンダリングを実行し、ボリュームレンダリングの処理に要した時間(「所要処理時間」とも称する)を計測し、ステップS13で指定された分割階層レベルnと関連付けてRAM20b内に一時的に格納し、ステップS16に進む。
ステップS16では、ステップS12で設定されたX段階の分割階層レベルの全てについて、ボリュームレンダリングが完了したか否かを判定する。ここでは、X段階全ての分割階層レベルについてボリュームレンダリングが完了していなければ、ステップS17に進み、完了していれば、ステップS18に進む。
ステップS17では、分割階層レベルを、ステップS13で指定された分割階層レベルnよりも1階層だけ増加させて、ステップS14に戻る。例えば、分割階層レベルとして5が指定されていた状態で、ステップS17に進むと、分割階層レベルが6に設定される。このようにして、制御部20の制御下で、分割階層レベルが段階的に異なる値に設定される。
したがって、ステップS14からステップS17の処理を繰り返すことで、X段階全ての分割階層レベルについてボリュームレンダリングが実行され、ステップS18に進む。このとき、ステップS15の処理がX回繰り返されることにより、段階的に異なるX段階の分割階層レベルにそれぞれ設定された状態で、ボリュームデータに基づくボリュームレンダリングに要する所要処理時間がそれぞれ計測される。そして、RAM20bには、X個の段階的に異なる分割階層レベルと、当該段階的に異なる分割階層レベルにそれぞれ対応するX個の所要処理時間とがそれぞれ関連づけられて一時的に記憶される。
なお、ステップS14の処理が2回目以降の場合には、前回のステップS14の処理においてオクトリーデータを生成するために使用されたデータをRAM20bや記憶部22などに記憶しておき、当該データを利用して、順次、分割階層レベルの増加に応じてブロックを更に分割しつつ、3次元オブジェクトの存在状態を判定することで、所望のオクトリーデータを生成するようにすることができる。
ステップS18では、RAM20bに記憶されたX個の所要処理時間のうち、最短の所要処理時間を抽出し、当該最短の所要処理時間に対応する(関連付けて記憶された)分割階層レベルを検出する。そして、検出された分割階層レベルを、好ましい分割階層レベルとして決定し、RAM20bに記憶する。
図10は、分割階層レベルと所要処理時間(合計計算コスト)との関係を曲線Cvとして例示する図である。ステップS18では、図10に示すように、所要処理時間のうち、最短の所要処理時間に対応する分割階層レベルAjを検出する。
なお、ここで決定された好ましい分割階層レベルは、実際に演算処理を行った結果中で、合計計算コストを低減するといった観点から、最も好ましい分割階層レベルであるため、「計算上最適な分割階層レベル」とも称する。
このようにして、計算上最適な分割階層レベルが決定されることで、分割階層レベルの調整が完了し、図9に示す調整フローが終了する。
なお、その後、投影面が変更される度に、上記調整フローにおいて調整された計算上最適な分割階層レベルに従って、オクトリーデータが生成され、ボリュームレンダリングが行われることで、表示用画像が生成される。
以上のように、本発明の実施形態に係る画像処理システム1では、ハイブリッド型のボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータとして分割階層レベルを段階的に異なる値に設定する。そして、段階的に異なる値に分割階層レベルを設定した状態で、分割階層レベルに応じたオクトリーデータを処理対象となる3次元領域に係るボリュームデータ基づいて生成する。更に、異なる分割階層レベルそれぞれに対して、ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測し、最短の処理時間に対応する分割階層レベルを計算上最適な分割階層レベルとして決定する。このような構成とすることにより、一旦決定された計算上最適な分割階層レベルに従ってオクトリーデータを生成し、その後は、処理対象となる3次元オブジェクトについて、視線方向(投影面)を適宜変更させつつ表示用画像を生成するボリュームレンダリングを実施することができる。その結果、表示用画像の生成をより短時間で実行可能とすることができる。すなわち、モニター3に表示される表示画像を短時間で切り換えることができ、スムーズな表示画像の変化を実現することができる。
また、ここでは、ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータが、ボリュームデータに基づいて生成されるオクトリーデータの解像度にあたる。そのため、表示用画像の生成をより短時間で実行可能とするといった観点から、3次元データの解像度を好ましいレベル(比較的最適なもの)に設定することができる。
<変形例>
以上、この発明の実施形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
以上、この発明の実施形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
◎例えば、上述した実施形態では、1つの3次元オブジェクトに対する計算上最適な分割階層レベルを決定した。しかしながら、これに限られず、例えば、2以上の3次元オブジェクトに対してそれぞれ計算上最適な分割階層レベルを決定し、各々の3次元オブジェクトとそれに対応する計算上最適な分割階層レベルとを関連付けたデータベースを作成し、2以上の3次元オブジェクトを含む3次元領域についてボリュームレンダリングを行う際に、データベースを参照して、各3次元オブジェクトについて、計算上最適な分割階層レベルに従って演算処理を行うようにしても良い。なお、各々の3次元オブジェクトとそれに対応する計算上最適な分割階層レベルを示す情報とを、各3次元オブジェクトに係るボリュームデータに対して属性情報として付与するようにしても良い。
このような構成とすることで、複数の3次元オブジェクトを含む3次元領域について、表示用画像の生成をより短時間で実行可能とすることができる。
◎また、上述した実施形態では、分割階層レベルを6段階だけ変化させて、計算上最適な分割階層レベルを求めたが、これに限られず、例えば、3段階以上など複数の異なる分割階層レベルについて所要計算時間を計測して、計算上最適な分割階層レベルを求めるようにしても良い。但し、より表示用画像の生成を短時間で実行するといった観点からすれば、分割階層レベルを変化させる段階が多ければ多いほど、より最適な分割階層レベルを求めることができる。
◎なお、上述した実施形態では、ボリュームデータを読み込んだ際に、まず、分割階層レベルを段階的に変化させつつ、オクトリーデータを作成して、計算上最適な分割階層レベルを求めるため、最初にボリュームデータに基づいて表示用画像が生成されるまでに要する時間が長くなる。しかしながら、ボリュームデータの容量が大きく、当該ボリュームデータの読み込みには相対的に非常に長い時間を要するため、初期における計算上最適な分割階層レベルを求めるための時間は、ユーザーにとってそれ程気にならない程度となる。
1 画像処理システム
2 パソコン
20 制御部
20a ROM
20b RAM
22 記憶部
PG 画像処理プログラム
2 パソコン
20 制御部
20a ROM
20b RAM
22 記憶部
PG 画像処理プログラム
Claims (3)
- ボリュームレンダリングによって表示用画像を生成する画像処理装置であって、
ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータを段階的に異なる値に設定するパラメータ設定手段と、
処理対象となる3次元領域に係るボリュームデータを所定の記憶手段に読込む読込手段と、
前記ボリュームデータに基づくボリュームレンダリングを行うレンダリング手段と、
前記パラメータ設定手段によって前記段階的に異なるパラメータにそれぞれ設定された状態で、前記レンダリング手段による前記ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測する計測手段と、
前記段階的に異なるパラメータと、当該段階的に異なるパラメータにそれぞれ対応する前記計測手段によって計測された処理時間とを関連付けて一時的に記憶する一時記憶手段と、
前記一時記憶手段に記憶された複数の処理時間のうち、最短の処理時間に対応するパラメータを、前記ボリュームデータに対するパラメータとして決定するパラメータ決定手段と、
を備えることを特徴とする画像処理装置。 - コンピュータにおいて実行されることにより、ボリュームレンダリングによって表示用画像を生成する画像処理装置として前記コンピュータを機能させるプログラムであって、
前記画像処理装置が、
ボリュームレンダリングにおける画像オーダー処理とオブジェクトオーダー処理との処理割合に影響するパラメータを段階的に異なる値に設定するパラメータ設定手段と、
処理対象となる3次元領域に係るボリュームデータを所定の記憶手段に読込む読込手段と、
前記ボリュームデータに基づくボリュームレンダリングを行うレンダリング手段と、
前記パラメータ設定手段によって前記段階的に異なるパラメータにそれぞれ設定された状態で、前記レンダリング手段による前記ボリュームデータに基づくボリュームレンダリングに要する処理時間をそれぞれ計測する計測手段と、
前記段階的に異なるパラメータと、当該段階的に異なるパラメータにそれぞれ対応する前記計測手段によって計測された処理時間とを関連付けて一時的に記憶する一時記憶手段と、
前記一時記憶手段に記憶された複数の処理時間のうち、最短の処理時間に対応するパラメータを、前記ボリュームデータにに対するパラメータとして決定するパラメータ決定手段と、
を備えることを特徴とするプログラム。 - 請求項2に記載されたプログラムであって、
前記レンダリング手段が、
前記ボリュームデータに基づいて3次元データを生成するとともに、前記3次元データに基づくボリュームレンダリングを行い、
前記パラメータが、
前記3次元データの解像度を決定するパラメータであることを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004284598A JP2006099422A (ja) | 2004-09-29 | 2004-09-29 | 画像処理装置、およびプログラム |
US11/226,522 US7576737B2 (en) | 2004-09-24 | 2005-09-14 | Image processing device and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004284598A JP2006099422A (ja) | 2004-09-29 | 2004-09-29 | 画像処理装置、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006099422A true JP2006099422A (ja) | 2006-04-13 |
Family
ID=36239169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004284598A Pending JP2006099422A (ja) | 2004-09-24 | 2004-09-29 | 画像処理装置、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006099422A (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008084295A (ja) * | 2006-09-01 | 2008-04-10 | Hitachi Medical Corp | 画像処理装置、画像処理方法、およびプログラム |
EP2017789A2 (en) | 2007-04-11 | 2009-01-21 | FUJIFILM Corporation | Projection image generation apparatus and program |
JP2009535710A (ja) * | 2006-04-26 | 2009-10-01 | クゥアルコム・インコーポレイテッド | 構成可能なキャッシュを有するグラフィックスシステム |
US8644643B2 (en) | 2006-06-14 | 2014-02-04 | Qualcomm Incorporated | Convolution filtering in a graphics processor |
US8766996B2 (en) | 2006-06-21 | 2014-07-01 | Qualcomm Incorporated | Unified virtual addressed register file |
US8869147B2 (en) | 2006-05-31 | 2014-10-21 | Qualcomm Incorporated | Multi-threaded processor with deferred thread output control |
US8884972B2 (en) | 2006-05-25 | 2014-11-11 | Qualcomm Incorporated | Graphics processor with arithmetic and elementary function units |
JP2016009374A (ja) * | 2014-06-25 | 2016-01-18 | 株式会社東芝 | 情報処理装置、方法及びプログラム |
JP2017076374A (ja) * | 2015-09-04 | 2017-04-20 | アーム・リミテッド | グラフィックス処理システム |
JP2020191061A (ja) * | 2019-05-20 | 2020-11-26 | キヤノンメディカルシステムズ株式会社 | 画像処理装置及び画像生成方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002183748A (ja) * | 2000-10-04 | 2002-06-28 | Terarikon Inc | ボリュームデータセットのレンダリング方法およびシステム |
-
2004
- 2004-09-29 JP JP2004284598A patent/JP2006099422A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002183748A (ja) * | 2000-10-04 | 2002-06-28 | Terarikon Inc | ボリュームデータセットのレンダリング方法およびシステム |
Non-Patent Citations (2)
Title |
---|
及川道雄, 外2名: ""対話的領域変更を可能とする高速ボリュームレンダリングに適した領域限定モデルの提案"", 電子情報通信学会論文誌, vol. 第J82−D−II巻, 第1号, JPN6010003657, 25 January 1999 (1999-01-25), JP, pages 127 - 136, ISSN: 0001522603 * |
松井学, 外2名: ""大規模データセットを可視化するための効率のよい並列ボリュームレンダリング"", 先進的計算基盤システムシンポジウム SACSIS2004 論文集, vol. 第2004巻, 第6号, JPN6010003655, 26 May 2004 (2004-05-26), JP, pages 93 - 101, ISSN: 0001522604 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009535710A (ja) * | 2006-04-26 | 2009-10-01 | クゥアルコム・インコーポレイテッド | 構成可能なキャッシュを有するグラフィックスシステム |
JP4938843B2 (ja) * | 2006-04-26 | 2012-05-23 | クゥアルコム・インコーポレイテッド | 構成可能なキャッシュを有するグラフィックスシステム |
US8766995B2 (en) | 2006-04-26 | 2014-07-01 | Qualcomm Incorporated | Graphics system with configurable caches |
US8884972B2 (en) | 2006-05-25 | 2014-11-11 | Qualcomm Incorporated | Graphics processor with arithmetic and elementary function units |
US8869147B2 (en) | 2006-05-31 | 2014-10-21 | Qualcomm Incorporated | Multi-threaded processor with deferred thread output control |
US8644643B2 (en) | 2006-06-14 | 2014-02-04 | Qualcomm Incorporated | Convolution filtering in a graphics processor |
US8766996B2 (en) | 2006-06-21 | 2014-07-01 | Qualcomm Incorporated | Unified virtual addressed register file |
JP2008084295A (ja) * | 2006-09-01 | 2008-04-10 | Hitachi Medical Corp | 画像処理装置、画像処理方法、およびプログラム |
EP2017789A2 (en) | 2007-04-11 | 2009-01-21 | FUJIFILM Corporation | Projection image generation apparatus and program |
JP2016009374A (ja) * | 2014-06-25 | 2016-01-18 | 株式会社東芝 | 情報処理装置、方法及びプログラム |
JP2017076374A (ja) * | 2015-09-04 | 2017-04-20 | アーム・リミテッド | グラフィックス処理システム |
JP2020191061A (ja) * | 2019-05-20 | 2020-11-26 | キヤノンメディカルシステムズ株式会社 | 画像処理装置及び画像生成方法 |
JP7479818B2 (ja) | 2019-05-20 | 2024-05-09 | キヤノンメディカルシステムズ株式会社 | 画像処理装置及び画像生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7576737B2 (en) | Image processing device and program | |
US7545384B2 (en) | Image generation method and apparatus | |
US20060056726A1 (en) | Image processing device, and program | |
US8659593B2 (en) | Image processing apparatus, method and program | |
US7327363B2 (en) | Image processing apparatus, and computer program | |
KR102018386B1 (ko) | 볼륨 렌더링된 이미지에 대한 광 방향을 지시하는 방법 및 시스템 | |
US8736609B2 (en) | Method and device for visualizing surface-like structures in volumetric data sets | |
CN104933749B (zh) | 图形图元的裁剪 | |
CN113436303A (zh) | 渲染体积和嵌入体积中的表面的方法 | |
US7773086B2 (en) | Range-peeling for punching masks in volume rendering | |
JP4885042B2 (ja) | 画像処理方法および装置ならびにプログラム | |
JP2002531905A (ja) | ボクセル空間から透視描画を形成する方法 | |
CN111009033A (zh) | 一种基于OpenGL的病灶区域的可视化方法和*** | |
JP2006099422A (ja) | 画像処理装置、およびプログラム | |
US6556198B1 (en) | Polyhedron generating method and apparatus thereof, and storage medium for storing the method | |
JP4122314B2 (ja) | 投影画像処理方法、投影画像処理プログラム、投影画像処理装置 | |
JP2006000127A (ja) | 画像処理方法および装置並びにプログラム | |
US6967653B2 (en) | Apparatus and method for semi-automatic classification of volume data | |
JP5122650B2 (ja) | 経路近傍レンダリング | |
JP4425734B2 (ja) | 隠線を消去したベクトルイメージを提供する方法 | |
KR100466409B1 (ko) | 가상 내시경 시스템, 가상 내시경 디스플레이 방법과 그 방법을 컴퓨터 상에서 수행하는 프로그램을 저장한 컴퓨터가 판독 가능한 기록 매체 | |
US6346949B1 (en) | Three-dimensional form data processor retaining information on color boundaries of an object when thinning coordinate data | |
JP2006000126A (ja) | 画像処理方法および装置並びにプログラム | |
IL280826B1 (en) | Determining the boundary wall surface of a cavity of an organ | |
US5821942A (en) | Ray tracing through an ordered array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070605 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20091016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100126 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100601 |