(57)【要約】【課題】３次元画像を位置合わせするためのデータ処理装置、データ処理方法、およびプログラムを提供すること。【解決手段】データ処理装置１０は、基準イメージ４０の解像度を低解像度化するダウン・サンプル処理手段４４〜４８と、ダウン・サンプル処理手段４４〜４８により低解像度化された基準イメージと、低解像度化された基準イメージと同じく低解像度化された対象イメージとの間のレジストレーションを行ない、レジストレーションを行う第１レジストレータ手段（５０、５２）と、第１レジストレータ手段５２が出力した線形変換パラメータを初期値として使用し低解像度化された基準イメージおよび低解像度化された対象イメージのレジストレーションを行う第２レジストレータ手段（５４、５６）とを備え、相互情報量の計算に使用する画素データを連続アクセスが可能なようにメイン・メモリに格納し、ローカル・メモリにフェッチして実行している。【選択図】図２
2008142137.tif 000002
【特許請求の範囲】
【請求項１】
３次元画像の基準イメージと３次元画像の対象イメージとの間の相互情報量を使用した位置合わせを行うデータ処理装置であって、前記データ処理装置は、
前記基準イメージの解像度を逐次的に低解像度化するダウン・サンプル手段と、
前記ダウン・サンプル手段により低解像度化された基準イメージと、前記低解像度化された基準イメージと同じく低解像度化された対象イメージとの間のレジストレーションを行ない、レジストレーションのための線形変換パラメータを出力する第１レジストレータ手段と、
前記第１レジストレータ手段が出力した前記線形変換パラメータを初期値として使用し、それぞれ１ステージ高い解像度を有する前記低解像度化された基準イメージおよび前記低解像度化された対象イメージのレジストレーションを行ない前記線形変換パラメータのレジストレーション精度を更新する第２レジストレータ手段と
前記低解像度化された基準イメージのサンプリング割合が設定値以上の場合には、前記第１レジストレータ手段を使用し、前記サンプリング割合が前記設定値に達しない場合には、前記第２レジストレータ手段を使用してレジストレーションを実行する手段と
を備え、前記第１レジストレータ手段および前記第２レジストレータ手段は、前記相互情報量の計算に使用する前記基準イメージの画素データおよび前記対象イメージの画素データのセットをブロック単位で連続アクセスできるようにメイン・メモリ上に格納し、ローカル・メモリにブロック単位でフェッチして前記相互情報量の計算を実行する
データ処理装置。
【請求項２】
前記第１レジストレータ手段は、
前記低解像度化された基準イメージにブロックを割当て、前記ブロックに含まれる画素データ全部を前記ローカル・メモリにフェッチし、前記画素データをランダムにサンプリングし、前記ブロックのコーナを占めるコーナ画素の３次元座標を追加してブロック・データを作成してメイン・メモリに書込むブロック・サンプル手段と、
前記ブロック・サンプル手段が作成した前記ブロック・データを前記ローカル・メモリにフェッチし、前記ブロック・データを使用し、前記ブロック・データの前記コーナ画素３次元座標に対して前記線形変換パラメータを適用して前記対象イメージのバウンディング・ボックスを求めるバウンディング・ボックス取得手段と、
前記バウンディング・ボックスに含まれる画素データを前記ローカル・メモリにフェッチして、前記ローカル・メモリ上のブロック・データとバウンディング・ボックスへのアクセスにより相互情報量を計算する相互情報量計算手段と
前記相互情報量計算手段の計算結果を受取り、前記相互情報量を最大化させる前記線形変換パラメータを計算する最適化処理手段
を含む請求項１に記載のデータ処理装置。
【請求項３】
前記第２レジストレータ手段は、
前記低解像度化された基準イメージの画素データをランダムにサンプリングし、ブロックを割当て前記メイン・メモリに書込むランダム・サンプル手段と、
前記ランダムにサンプリングされた前記画素データに対して前記線形変換パラメータの初期値を適用し、アクセスする前記対象イメージの画素データを決定し対応するブロックを割当てて前記メイン・メモリに書込む対象イメージ予測手段と、
前記メイン・メモリから前記ローカル・メモリへと、前記基準イメージおよび前記対象イメージの前記各画素データをフェッチして前記相互情報量の計算を実行する、相互情報量計算手段と
前記相互情報量計算手段の計算結果を受取り、前記相互情報量を最大化させる前記線形変換パラメータを計算する最適化処理手段
を含む、請求項１に記載のデータ処理装置。
【請求項４】
前記バウンディング・ボックス取得手段は、空間的に隣接する前記ブロック・データを結合してブロック・グループを作成し、前記ブロック・グループに対応するバウンディング・ボックスを作成し、
前記ブロック・グループと前記バウンディング・ボックスがローカル・メモリに収まりかつピクセル数が最大になるように前記ブロック・グループ内のブロック数を決定する手段を含む、請求項２に記載のデータ処理装置。
【請求項５】
３次元画像の基準イメージと３次元画像の対象イメージとの間の相互情報量を使用して位置合わせをデータ処理装置に実行させるデータ処理方法であって、前記データ処理方法は、
ダウン・サンプル手段により前記基準イメージの解像度を逐次的に低解像度化するステップと、
前記ダウン・サンプル手段により前記低解像度化された基準イメージと、前記低解像度化された基準イメージと同じく低解像度化された対象イメージとの間のレジストレーションを行ない、レジストレーションのための線形変換パラメータを出力するステップと、
前記低解像度化された基準イメージのサンプリング割合が設定値以下か否かを判断するステップと、
前記サンプリング割合が前記設定値以上の場合には第１レジストレータ手段を使用し、前記サンプリング割合が前記設定値に達しない場合には、第２レジストレータ手段を使用して、前記相互情報量の計算に使用する前記基準イメージの画素データおよび前記対象イメージの画素データのセットをブロック単位で連続アクセスできるようにメイン・メモリに格納し、ローカル・メモリにブロック単位でフェッチして、前記低解像度化された基準イメージと同じく低解像度化された対象イメージとの間のレジストレーションを実行するステップと
を前記データ処理装置に実行させ、
前記第２レジストレータ手段は、前記第１レジストレータ手段が出力した前記線形変換パラメータを初期値として使用し前記低解像度化された基準イメージおよび前記低解像度化された対象イメージのレジストレーションを行ない、前記線形変換パラメータのレジストレーション精度を更新する、データ処理方法。
【請求項６】
前記第１レジストレータ手段は、
前記低解像度化された基準イメージにブロックを割当て、前記ブロックに含まれる画素データ全部を前記ローカル・メモリにフェッチし、前記画素データをランダムにサンプリングして前記ブロックのコーナを占めるコーナ画素の３次元座標を追加してブロック・データを作成しメイン・メモリに書込むステップと、
前記ブロック・データを前記ローカル・メモリにフェッチし、前記ブロック・データを使用し、前記ブロック・データの前記コーナ画素３次元座標に対して前記線形変換パラメータを適用して前記対象イメージのバウンディング・ボックスを定義するステップと、
前記バウンディング・ボックスに含まれる画素データを前記ローカル・メモリにフェッチして、前記ローカル・メモリ上のブロック・データとバウンディング・ボックスへのアクセスにより相互情報量を計算するステップと
前記相互情報量の計算結果を受取り、前記相互情報量を最大化させる前記線形変換パラメータを決定するステップと
を実行する、請求項５に記載のデータ処理方法。
【請求項７】
前記第２レジストレータ手段は、
前記低解像度化された基準イメージの画素データをランダムにサンプリングし、ブロックを割当て前記メイン・メモリに書込むステップと、
前記ランダムにサンプリングされた前記画素データに対して前記線形変換パラメータの初期値を適用し、アクセスする前記対象イメージの画素データを決定し対応するブロックを割当てて前記メイン・メモリに予測して割当てるステップと、
前記メイン・メモリから前記ローカル・メモリへと、前記基準イメージおよび前記対象イメージの前記各画素データをフェッチして前記相互情報量の計算を実行するステップと、
前記相互情報量の計算結果を受取り、前記相互情報量を最大化させる前記線形変換パラメータを決定するステップと
を実行する、請求項５に記載のデータ処理方法。
【請求項８】
前記バウンディング・ボックスを定義するステップは、空間的に隣接する前記ブロック・データを結合してブロック・グループを作成し、前記ブロック・グループに対応するバウンディング・ボックスを形成するステップを含み、
前記ブロック・グループと前記バウンディング・ボックスがローカル・メモリに収まりかつピクセル数が最大になるように前記ブロック・グループ内のブロック数を決定するステップを含む、請求項６に記載のデータ処理方法。
【請求項９】
３次元画像の基準イメージと３次元画像の対象イメージとの間の相互情報量を使用して位置合わせをデータ処理装置に実行させるデータ処理方法を実行させるコンピュータ実行可能なプログラムであって、前記プログラムは、
ダウン・サンプル手段により前記基準イメージの解像度を逐次的に低解像度化するステップと、
前記ダウン・サンプル手段により前記低解像度化された基準イメージと、前記低解像度化された基準イメージと同じく低解像度化された対象イメージとの間のレジストレーションを行ない、レジストレーションのための線形変換パラメータを出力するステップと、
前記低解像度化された基準イメージのサンプリング割合が設定値以上か否かを判断するステップと、
前記サンプリング割合が前記設定値以上の場合には第１レジストレータ手段を使用し、前記サンプリング割合が前記設定値に達しない場合には、第２レジストレータ手段を使用して、前記相互情報量の計算に使用する前記基準イメージの画素データおよび前記対象イメージの画素データのセットをブロック単位で連続アクセスできるようにメイン・メモリに格納し、ローカル・メモリにブロック単位でフェッチして、前記低解像度化された基準イメージと同じく低解像度化された対象イメージとの間のレジストレーションを実行するステップとを前記データ処理装置に実行させ、
前記第２レジストレータ手段は、前記第１レジストレータ手段が出力した前記線形変換パラメータを初期値として使用し前記低解像度化された基準イメージおよび前記低解像度化された対象イメージのレジストレーションを行ない、前記線形変換パラメータのレジストレーション精度を更新する、コンピュータ実行可能なプログラム。
【請求項１０】
前記第１レジストレータ手段は、
前記低解像度化された基準イメージにブロックを割当て、前記ブロックに含まれる画素データ全部を前記ローカル・メモリにフェッチし、前記画素データをランダムにサンプリングして前記ブロックのコーナを占めるコーナ画素の３次元座標を追加してブロック・データを作成しメイン・メモリに格納するステップと、
前記ブロック・データを前記ローカル・メモリにフェッチし、前記ブロック・データを使用し、前記ブロック・データの前記コーナ画素の３次元座標に対して前記線形変換パラメータを適用して前記対象イメージのバウンディング・ボックスを定義するステップと、
前記バウンディング・ボックスに含まれる画素データを前記ローカル・メモリにフェッチして、前記ローカル・メモリ上のブロック・データとバウンディング・ボックスへのアクセスにより相互情報量を計算するステップと、
前記相互情報量の計算結果を受取り、前記相互情報量を最大化させる前記線形変換パラメータを決定するステップと
を実行する、請求項９に記載のプログラム。
【請求項１１】
前記第２レジストレータ手段は、
前記低解像度化された基準イメージの画素データをランダムにサンプリングし、ブロックを割当て前記メイン・メモリに書込むステップと、
前記ランダムにサンプリングされた前記画素データに対して前記線形変換パラメータの初期値を適用し、アクセスする前記対象イメージの画素データを決定し対応するブロックを割当てて前記メイン・メモリに予測して割当てるステップと、
前記メイン・メモリから前記ローカル・メモリへと、前記基準イメージおよび前記対象イメージの前記各画素データをフェッチして前記相互情報量の計算を実行するステップと、
前記相互情報量の計算結果を受取り、前記相互情報量を最大化させる前記線形変換パラメータを決定するステップと
を実行する、請求項９に記載のプログラム。
【請求項１２】
前記バウンディング・ボックスを定義するステップは、空間的に隣接する前記ブロック・データを結合してブロック・グループを作成し、前記ブロック・グループに対応するバウンディング・ボックスを形成するステップを含み、
前記ブロック・グループと前記バウンディング・ボックスがローカル・メモリに収まりかつピクセル数が最大になるように前記ブロック・グループ内のブロック数を決定するステップを含む、請求項１０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像イメージの相互比較技術に関し、より詳細には、３次元画像を位置合わせするためのデータ処理装置、データ処理方法、およびプログラムに関する。
【背景技術】
【０００２】
イメージ・レジストレーション法（Image Registration）は、同一対象に対する２つの３次元画像（ＣＴ、ＭＲＩなど）を入力とし、それらのアライメントを行う画像処理方法である。このための画像処理は、長時間の計算を必要とするため、特に医療現場では、イメージ・レジストレーション法を高速化することが要請されている。
【０００３】
イメージ・レジストレーション法は、２つの入力画像Ｆ(基準イメージ:Fixed Image)と、Ｍ(対象イメージ:Moving Image)とについて、基準イメージに線形変換（回転と平行移動）を施した画像と対象イメージとの間の相互情報量（Mutual Information）が最大になるような線形変換パラメータを、逐次的な最適化問題として求める（非特許文献１）。イメージ・レジストレーション法では、入力画像のすべての画素(Pixel)について計算を行うと莫大な計算時間がかかるため、画像イメージに含まれる画素データをランダムにサンプリングして相互情報量を計算する。このため、従来のイメージ・レジストレーション法では、メイン・メモリへのスパースなメモリアクセス・パターンが画素単位で発生する。
【０００４】
一般的にメイン・メモリが効率よく処理できるアクセス単位は、キャッシュライン・サイズであり、画素単位のスパース・アクセスは、処理速度の向上を阻害する1つの要因となっている。スパース・アクセスを含む数値計算では、メイン・メモリでスパース・データを圧縮する圧縮手法はよく知られている。一般的には、スパース・データのアクセス・パターンは、アプリケーション・アルゴリズムや入力データによって決定される。このため、既存の圧縮手法では、スパース・アクセスのパターンを予測してデータを圧縮する。
【０００５】
したがって、スパース・アクセスのパターンを予測する既存の圧縮手法が効果を発揮するためには、アクセス・パターンが実際のデータ・アクセスより充分前に予測できる必要がある。一方、アクセス・パターンが実際のデータ・アクセスの直前まで予測できない場合には、充分な処理効率を得ることができないという不都合がある。この不都合は、処理アルゴリズムが速度向上して、直前予想のための時間的余裕が限られてくると、一層頻繁に発生することが想定され、イメージ・レジストレーション法の処理速度を向上させるためのアクセス・パターンが、逆にイメージ・レジストレーション法の処理速度向上を阻害するという結果を与えることも考えられる。
【０００６】
また、医用画像のマッチングを行うシステムがこれまで知られている。例えば、特開２００６−５５４３２号公報（特許文献１）では、同一被検体に対してＸ線ＣＴ検査を行うシステムを開示している。また、特開２００６−２０９３７号公報（特許文献２）では、異なる時点で測定された医用画像の位置合わせを正確に行う方法および装置を開示している
【非特許文献１】P. Thevenazand M. Unser, “Optimization of Mutual Information for Multiresolution ImageRegistration”, IEEE Transactions on Image Processing, 9(12) December 2000.
【特許文献１】特開２００６−５５４３２号公報
【特許文献２】特開２００６−２０９３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、イメージ・レジストレーション法の処理速度を向上する、データ処理装置、データ処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上述した従来技術の不都合に鑑みてなされたものある。イメージ・レジストレーション法は、実行時での画素データへのデータアクセス・パターンには自由度がある。
【０００９】
３次元画像は、複数の２次元画像（以下、スライスとして参照する。）が２次元画像の平面に直交する方向に互いに位置決めされた構造を有している。２次元画像であるスライスにブロックを割当て、３次元画像を適切なデータ・サイズのブロック単位で処理する。ブロックに割当てられた画素データは、相互情報量計算の処理対象の画素データとして、メイン・メモリに登録される。画素データが登録される場合、処理対象の画像データは、ローカル・メモリとメイン・メモリ間の転送単位でアクセスできるデータ・サイズおよび構造を有するフォーマットとして格納される。その後、処理対象の画素データは、メイン・メモリから、ローカル・メモリに連続アクセスによりフェッチされる。ローカル・メモリにフェッチされた画素データは、ランダムにサンプリングされ、連続アクセスが可能なブロック・データとして一旦メイン・メモリに格納される。
【００１０】
メイン・メモリに格納されたブロック・データは、相互情報量計算のためにローカル・メモリにフェッチされる。さらにレジストレーションの対象である、対象イメージについて相互計算のためにアクセスするべき画素データをローカル・メモリにブロック単位でフェッチし、相互情報量計算のために提供する。
【００１１】
データ処理装置を上述したように、対象イメージのフェッチ効率を上げる（連続メモリ・アクセスが使える）ように、基準イメージを分割しサンプリングするべく実装することで、従来、基準イメージは連続にフェッチできても、対象イメージはスパースなメモリ・アクセスが必要であった従来の不都合を改善し、相互情報量計算の間でのメイン・メモリに対するスパースなデータ・アクセスを排除することが可能となる。この結果、本発明のデータ処理装置は、高効率のメモリ・アクセスを達成し、レジストレーション処理の速度を改善することができる。
【００１２】
相互情報量の計算は、ローカル・メモリに格納されたブロック単位の画素データについて実行され、第１の態様では、相互情報量計算に使用される画素データは、求められた線形変換パラメータを使用して対象イメージのバウンディング・ボックスを決定し、バウンディング・ボックスに含まれる画素データがローカル・メモリにフェッチされて実行される。さらに、本発明では、メモリ・アクセスの効率が最大になるように、基準イメージのブロック・グループと対象イメージのバウンディング・ボックスの画素数が最大でかつローカル・メモリに収まるように、前記ブロック・グループの大きさを決定することができる。また、線形変換パラメータの精度が高められた後、第２の態様では、相互情報量の計算に使用される対象データの画素データがローカル・メモリにフェッチされていない場合でも、メイン・メモリへのアクセスすることなく、近傍の画素データを使用して、外挿値として取得される。
【００１３】
また、本発明では、処理する画像イメージ、すなわち基準イメージおよび対象イメージを、解像度が逐次的に低下するように低解像度化し、低解像度の画像イメージから処理を開始して、決定された線形変換パラメータを次ステージの、より解像度の高い画像イメージの処理の初期設定パラメータとして設定する。次ステージでのレジストレーション処理は、低解像度の画像イメージについて最適化された線形変換パラメータを初期値として使用するので、次ステージのレジストレーション処理により、線形変換パラメータのレジストレーション精度が改善できる。
【００１４】
さらに、本発明では、処理対象の画像イメージのサンプリング割合が設定値よりも低い場合、相互情報量計算処理を切換え、対象イメージの画像を投機的に予測して相互情報量の計算を実行する。投機的に予測された対象イメージの画素データは、予めメイン・メモリにフェッチされて、相互情報量の計算を実行する。また、この態様で、投機的な予測が不成功の場合には、予めフェッチしてある画素データのうち、近傍の画素データを使用して相互計算に使用する画素データを外挿処理により取得し、相互情報量の計算に提供する。
【００１５】
上述したように、本発明では、相互情報量計算を、相互情報量計算に使用する画素データをローカル・メモリにフェッチした状態として、メイン・メモリへのスパース・アクセスを排除して実行することができる。この結果、相互情報量の計算における並列処理性を向上でき、さらにレジストレーション処理効率を向上させることができる。
【００１６】
また、本発明では、対象イメージの画素データに対するアクセス・パターンが実際にアクセスされる直前まで正確に予測できない場合でも適用でき、この結果、これまで、相互情報量計算の処理効率を向上させるために用いられていたスパースに画素をサンプリングする処理が、逆に相互情報量計算の効率を制限してしまうというトレード・オフの問題点を改善することが可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を図面に示した特定の実施形態をもって説明するが、本発明は、図面に示した実施形態に限定されるものではない。
【００１８】
図１は、データ処理装置１０の実施形態を示す。図１に示したデータ処理装置１０は、概ねパーソナル・コンピュータまたはワークステーションなどのコンピュータ装置として構成されている。図１に示したデータ処理装置１０は、中央処理装置（ＣＰＵ）１２と、ＣＰＵ１２が使用するデータを格納するメイン・メモリ１４とを備えている。メイン・メモリ１４は、ＤＲＡＭなどの固体メモリ素子から形成され、データ処理装置１０が処理に使用するデータを、後述する記憶装置３４から読出して格納し、ＣＰＵ１２に提供しており、本実施形態では、５１２ＭＢの容量を有している。
【００１９】
すなわち、メイン・メモリ１４のユニット２個で合計１ＧＢのメイン・メモリ１４をＣＰＵ１２は使用できる。また、ＣＰＵ１２は、本実施形態では、対称マルチコア・プロセッサとして構成されており、マルチコア・プロセッサとして構成された、ユニット・プロセッサ１６が高速バスにより接続され、並列処理を行うことができる。ユニット・プロセッサ１６は、さらに、汎用プロセッサ・コアと、画像処理などに向いた複数のＳＰＥ（Synergistic Processing Element）を備えていている。本実施形態では、ユニット・プロセッサ１６は、８つのＳＰＥを備えている。また、各ユニット・プロセッサ１６のＳＰＥは、２５６ＫＢのローカル・メモリ１８をそれぞれ管理していて、並列処理性を向上させている。ローカル・メモリ１８は、一般的なプロセッサのＬ２などのキャッシュ・メモリで置き換えることもできる。さらに、各ＳＰＥは、ＤＭＡ(Direct Memory Access)２０を備えていて、メイン・メモリ１４が格納するデータへの高速アクセスを可能としている。
【００２０】
ＣＵＰ１２は、システム・バス２２を介して、データ処理装置１０の他のデバイスまたはドライバ、例えば、グラフィックス・ドライバ２４およびネットワーク・デバイス（ＮＩＣ）２６へと接続されている。グラフィックス・ドライバ２４は、バスを介してディスプレイ装置２８に接続されて、ＣＰＵ１２による処理結果をディスプレイ画面上に表示させている。また、ネットワーク・デバイス２６は、データ処理装置１０を、ＴＣＰ／ＩＰなどの適切な通信プロトコルを使用するネットワークへと接続している。
【００２１】
システム・バス２２には、さらにＩ／Ｏバス・ブリッジ３０が接続されている。Ｉ／Ｏバス・ブリッジ３０の下流側には、ＰＣＩ、ＵＳＢなどのＩ／Ｏバス３２および、ＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、シリアルＡＴＡ、ＳＣＳＩなどのインタフェースを介して、ハードディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、ＭＯなどの記憶装置３４が接続される。また、Ｉ／Ｏバス３２には、ＵＳＢなどのバスを介して、キーボードおよびマウスなどの入出力装置３６が接続されていて、データ処理装置１０に対するレジストレーション条件設定の入力および各種指令を可能としている。
【００２２】
データ処理装置１０のＣＰＵ１２としては、より具体的には、例えば、Ｃｅｌｌ  ＢＥ  Ｐrｏｃｅｓｓｏｒ（登録商標）（クロックレート３．２ＧＨｚ、メイン・メモリ＝５１２ＭＢ、８ＳＰＥ、各ＳＰＥのローカル・メモリ２５６ＫＢ）を挙げることができる。この他にも、ＰＥＮＴＩＵＭ（登録商標）〜ＰＥＮＴＩＵＭ（登録商標）  ＩＶ、ＰＥＮＴＩＵＭ（登録商標）互換ＣＰＵ、ＰＯＷＥＲ  ＰＣ（登録商標）などＣＩＳＣまたはＲＩＳＣチップなどを挙げることができる。
【００２３】
また、使用するオペレーティング・システム（ＯＳ）としては、ＭａｃＯＳ（商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）２００Ｘ  Ｓｅｒｖｅｒ、ＵＮＩＸ（登録商標）、ＡＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）またはそれ以外の適切なＯＳを挙げることができる。さらに、データ処理装置１０は、上述したＯＳ上で動作する、アセンブラ、Ｃ、Ｃ＋＋、Ｖｉｓｕａｌ  Ｃ＋＋、ＶｉｓｕａｌＢａｓｉｃ、Ｊａｖａ（登録商標）、Ｐｅｒｌ、Ｒｕｂｙなどのレガシープログラミング言語やオブジェクト指向のプログラミング言語により記述されたアプリケーション・プログラムを格納して実行し、データ処理を可能としている。
【００２４】
図２は、図１に示したデータ処理装置１０の機能ブロックおよび各機能ブロック間のデータフローの実施形態を示す。図２に示すように、データ処理装置１０には、基準イメージ（Fixed Image）および対象イメージ(Moving Image)がそれぞれ入力される。基準イメージ４０は、イメージ・レジストレーション法により位置合わせするべき基準となるイメージであり、例えば所定の患者の過去に取得されたＸ線写真、Ｘ線ＣＴイメージ、ＭＲＩイメージなどとすることができる。また対象イメージ４２は、基準イメージ４０に対して位置合わせ(registration)すべきイメージとして定義される。対象イメージ４２は、例えば基準イメージ４０を取得した後に撮影または記録されたＸ線写真、Ｘ線ＣＴイメージ、ＭＲＩイメージなどとすることができる。なお、本発明では、位置合わせするための画像イメージの種類や属性は、特に限定されるものではない。
【００２５】
また、基準イメージ４０および対象イメージ４２は、２次元画像イメージを単位スライスとして、複数のスライスが特定深さの断面を与える３次元画像として作成されている。基準イメージ４０および対象イメージ４２は、ハードディスク装置、ＣＤ−ＲＯＭ、ＣＲ−ＲＷ、ＤＶＤ、ＭＯなどの記憶装置３０に格納され、処理要求に応答してメイン・メモリ１４に読出され、データ処理装置１０による処理に使用される。
【００２６】
データ処理装置１０は、複数のダウン・サンプル処理部を含んで構成されており、ダウン・サンプル処理部４４〜４８およびダウン・サンプル処理部５８〜６２は、処理するべき画像イメージの画素を抽出してソフトウェア的に低解像度化する、ダウン・サンプル処理手段として機能する。また、各ダウン・サンプル処理部は、基準イメージ４０および対象イメージ４２の両方について、対応した低解像度の画像イメージを与えるように、同一の処理ステージについて同一の解像度比でダウン・サンプルを実行する。
【００２７】
各処理ステージでのダウン・サイズ処理部は、上述したように同様の処理を行うため、以下、基準イメージ４０をダウンサイジングするためのダウン・サンプル処理部４４〜４８について説明する。図２に説明するように、オリジナルの解像度の基準イメージ４０は、Ｘ×Ｙ画素を有しているものとする。ダウン・サンプル処理部４４は、オリジナルの画素数を１／４とした基準イメージを作成する。ダウン・サンプル処理部４６は、ダウン・サンプル処理部４４が作成した低解像度画像をオリジナルの解像度に対して１／１６に圧縮した基準イメージを作成する。さらに、ダウン・サンプル処理部４８は、ダウン・サンプル処理部４６が作成した低解像度画像を、オリジナルの解像度の１／６４に圧縮した基準イメージを作成する。
【００２８】
この結果、図示した実施形態では、データ処理装置１０は、１（オリジナルの解像度）→１／４→１／１６→１／６４の解像度列の、低解像度化した画像イメージが作成される。これらの画像イメージの画素データは、一旦メイン・メモリ１４に書込まれる。メイン・メモリ１４に書込まれた各画素データは、以下に説明する各レジストレータに読込まれ、レジストレーション処理のために使用される。なお、本発明では、ダウン・サンプル処理部を実装する数は、特に限定されるものではない。同様に、対象イメージ４２についても同様の、または同一のダウン・サンプル処理部５８〜６２を適用して、それぞれ基準イメージ４０と同一の解像度比で低解像度画像を作成し、メイン・メモリ１４に格納する。ダウン・サンプル処理部５８〜６２を、ダウン・サンプル処理部４４〜４８と別に実装する場合には、基準イメージ４０と対象イメージ４２のダウンサイジング処理を並列処理として実行できるので、処理効率的には好ましい。
【００２９】
本実施形態では、画素データのサンプリング数を、オリジナルの解像度の総画素数の１／１００とする。このため、低解像度化して解像度が１／４、１／１６、１／６４となった場合、それぞれの解像度の画像イメージについてサンプリング割合を、４／１００、１６／１００、６４／１００としてサンプリング数を保持するようにサンプリング割合を高めて処理を実行する。すなわち、低解像度の画像イメージについては、サンプリング割合を高め、高解像度の画像イメージについてはサンプリング割合を低めて、処理対象画素数を保持させて処理を実行させる。なお、サンプリング数は、各処理ステージで、処理効率および特定の用途に応じて適切に変更することができる。作成した低解像度化された画像イメージの系列に対し、データ処理装置１０は、順次低解像度の画像イメージからイメージ・レジストレーション処理を開始する。データ処理装置１０は、処理するべき画像イメージのサンプリング割合に対応して、異なるサンプリング処理を適用し、さらに異なる相互情報量計算方法を適用する。
【００３０】
また、データ処理装置１０は、レジストレーション処理の各処理ステージに対して第１ステージを除き、１ステージ低いレジストレーション処理で得られた線形変換パラメータをその初期設定パラメータとして設定する。このため、アフィン変換パラメータなどの線形変換パラメータは、そのレジストレーション精度が順次的に向上してゆく。このため、低解像度化された画像イメージの処理に対して効率的なレジストレーション方法を適用する。また、データ処理装置１０は、パラメータ精度が改善された所定のサンプリング割合の処理ステージで、相互情報量を計算させる対象イメージの画素を投機的に圧縮するレジストレーション方法を使用することができる。このステージでは、投機的に画素データを取得して圧縮する処理を行っても、線形変換パラメータのレジストレーション精度が高められているので、ローカル・メモリ１８内のデータについてミスヒットを低く抑えることができ、また仮にミスヒットした場合にでも、圧縮した対象イメージの画素データから外挿することで対応することができる。また、本実施形態では、他の投機的予測を行って、スパース・アクセスを排除することもできる。さらに、本実施形態では、予測値について誤差規制値を設定し、誤差が誤差規制値を超える場合には精度を重視してメイン・メモリ１４にアクセスさせることもできる。なお、第１ステージについては、入出力装置３６または記憶装置３４などに格納した値から初期設定の値を取得することができる。
【００３１】
さらに図２に示したデータ処理装置１０について説明する。データ処理装置１０は、画像イメージの解像度に対応する位置決め手段として機能するレジストレータ５０〜５６を含んでいる。また、レジストレータ５０〜５６は、各処理ステージに対応するようにＲ０〜Ｒ３として序列化されている。レジストレータ５０〜５６は、ソフトウェア的に構成されるレジストレータ手段として機能する。図２に示した特定の実装では、レジストレータ５０〜５６のうち、レジストレータ５０およびレジストレータ５２は、それぞれ低解像度の画像イメージに対してブロック・サンプリングを適用する低解像度レジストレータとして構成され、第１レジストレータ手段を提供する。
【００３２】
また、レジストレータ５４およびレジストレータ５６は、高解像度の画像イメージを処理する高解像度レジストレータとして、それぞれ第２レジストレ−タ手段を提供する。高解像度レジストレータ５４、５６は、ランダム・サンプリングおよび投機的手法を使用して、レジストレーション処理を行う。また、レジストレータ５２からレジストレータ５４には、順次１ステージ下のレジストレータで決定された線形変換パラメータが初期設定パラメータとして設定される。また、最終ステージのレジストレータ５６は、データ処理装置１０が最終的にレジストレーションに使用するための線形変換パラメータ６４を出力する。
【００３３】
なお、本発明では、低解像度レジストレータおよび高解像度レジストレータの数および組み合わせについては特に制限はなく、特定の用途により、適宜増減でき、またそれらの組み合わせも適宜設定することができる。
【００３４】
図３は、データ処理装置１０が実行する処理の実施形態のフローチャートを示す。図３に示す処理は、ステップＳ１００から開始し、ステップＳ１０１で基準イメージと対象イメージとをダウン・サンプル処理部に入力し、解像度の異なる複数の画像イメージを作成し、メイン・メモリ１４に書込む。ステップＳ１０２では、最も低い解像度の画像イメージを使用し、最下位ステージのレジストレータ５０を起動して線形変換パラメータの粗近似値を計算させる。ステップＳ１０３では、パラメータの粗近似値を１ステージ解像度の高い処理を実行するレジストレータの初期設定値として画像イメージの相互情報量を計算し、線形変換パラメータを決定する。
【００３５】
さらにステップＳ１０４では、順次高い解像度の画像イメージについて相互情報量を前ステージで計算された線形変換パラメータを使用して計算し、線形変換パラメータをさらに更新し、線形変換パラメータのレジストレーション精度を向上させる。ステップＳ１０５では、次に処理する画像イメージのサンプリング割合が設定値以上であるか否かを判断する。ステップＳ１０５の判断でサンプリング割合が設定値以上であると判断された場合（ｙｅｓ）、ステップＳ１０７でブロック・サンプリングのみを使用したパラメータ更新を継続させる。また、サンプリング割合が設定値に達しないと判断された場合（ｎｏ）には、ステップＳ１０６で、本発明の特定の実施形態では、ランダム・サンプリングと、画素データの投機的フェッチを使用したレジストレーション処理を実行する。
【００３６】
ステップＳ１０８では、オリジナルの解像度の画像イメージを処理したか否かを判断する。ステップＳ１０８の判断の結果、オリジナルの解像度の画像イメージを処理したと判断した場合（ｙｅｓ）、その時点でのパラメータを出力パラメータとして登録する。また、ステップＳ１０８の判断で、未だオリジナルの解像度の画像イメージを処理していないと判断した場合（ｎｏ）には、処理をステップＳ１０５に分岐させて、処理を継続させる。なお、オリジナルの解像度の画像イメージを処理したことの判断については、処理対象の画像イメージの画素数や、高解像度レジストレータの処理ステージ数をカウントしておき、最終ステージカウントを超えたときに、処理終了と判断することができる。
【００３７】
なお、図３のステップＳ１０５の判断に使用する設定値は、特定の実装形態により異なる可能性があるが、特定の実施形態では、サンプリング割合で１６／１００とした（解像度的には、１／１６に相当する。）。説明している実装形態では、サンプリング割合が１６／１００よりも低い画像イメージ（すなわち、解像度が高い画像イメージの処理に対応する。）については、ブロック・サンプリングを使用したレジストレーション処理よりもランダム・サンプリングおよび投機的フェッチを使用するレジストレーション処理の方が処理効率が高い結果が得られたためである。ただし、本実施形態の設定値は、特定の実装形式などにより適宜最適化するように設定することができる。
【００３８】
図４は、本実施形態に使用する低解像度レジストレータ５０での機能ブロックの実施形態を示す。低解像度レジストレータ５０は、ブロック・サンプル部７０と、相互情報量計算部７２と、最適化処理部７４とを含んで構成される。ブロック・サンプル部７０は、画像イメージの複数のスライスにブロックを割当て、選択したブロックに含まれる画素データ全体をメイン・メモリ１４からローカル・メモリ１８にフェッチする。その後、ブロック・サンプル部７０は、ブロックに割当てられた画素データをランダムにサンプリングしてメイン・メモリ１４に登録する。さらに、ブロック・サンプル部７０は、ブロックのコーナを占めるコーナ画素（特定の実施形態では８サンプル）の３次元座標を求め、ランダムにサンプリングされた画素データに結合させてブロック・データとして、メイン・メモリ１４に格納する。
【００３９】
格納したブロック・データは、相互情報量計算部７２の処理に使用のために再度ローカル・メモリ１８にフェッチされる。相互情報量計算部７２は、ブロック・データを、メイン・メモリ転送単位に連続してローカル・メモリ１８にフェッチする。このとき、隣接する複数のブロックからブロック・グループを構成し、ブロック・グループ内のすべてのサンプル画素をフェッチすることもできる。さらに相互情報量計算部７２は、線形変換パラメータの値を使用して同一の解像度の対象イメージのうち、ブロック（またはブロック・グループ）に対応するコーナの画素の３次元座標を決定してバウンディング・ボックスを決定する。この処理を実行するソフトウェア手段がバウンディング・ボックス取得手段を構成する。その後、相互情報量計算部７２は、バウンディング・ボックスに含まれる対象イメージの画素データを、メイン・メモリ１４からローカル・メモリ１８に連続してフェッチする。本発明では、ブロック（またはブロック・グループ）のデータ・サイズを、ブロックに対する相互情報量の計算実行の間、メイン・メモリへのスパースなメモリ・アクセスを生じさせないサイズとして最適化する。ブロック・グループを使用する場合は、そのメモリ・サイズを、使用するローカル・メモリ１８のサイズおよび計算中の線形変換パラメータの値などにより適宜動的にブロックの単位で最適化させることができる。
【００４０】
相互情報量計算部７２は、ブロック（またはブロック・グループ）に含まれる画素データとバウンディング・ボックスに含まれる対象イメージの画素データとを使用して、相互情報量を計算する。最適化処理部７４は、計算されたブロックごとの相互情報量を使用して、線形変換パラメータを修正し、修正したパラメータを相互情報量計算部７２に渡して相互情報量を最大化するように反復的に相互情報量の計算を実行する。最適化処理部７４は、相互情報量がその時点で特定されているブロックとバウンディング・ボックスとの関係で最大化した時点あるいは、予め定められた反復数に達した時点で、処理を終了し、線形変換パラメータ７６を次ステージのレジストレータに渡して次ステージの相互情報量計算のための初期パラメータに設定する。
【００４１】
なお、本実施形態では、相互情報量計算部７２および最適化処理部７４に使用する定義式、パラメータ設定については、非特許文献１の開示にしたがって、初期設定する線形変換パラメータの設定を変更するのみで、そのまま実装することができる。なお、概略的に説明すると、相互情報量計算部７２は、確率密度関数ｐ（ｘ）を、所謂Ｐａｒｚｅｎ予測値として計算し、アフィン変換などの線形変換パラメータを使用してＰａｒｚｅｎヒストグラムを計算する。このヒストグラムでＰａｒｚｅｎ確率または周波数を計算し、相互情報量Ｓ（μ）を下記式（１）で与える。
【００４２】
【数１】
2008142137.tif 000003
なお、上記式中、ｌおよびκは、離散変数であり、ＬＴおよびＬＲは、対象イメージおよび基準イメージの深さデータ（濃度階調のビット数に対応する。）である。μは、線形変換パラメータを示し、ｐが、Ｐａｒｚｅｎ確率を示し、ｐＴ、ｐＲは、対象イメージおよび基準イメージの離散Ｐａｒｚｅｎ確率を示す。
【００４３】
より詳細については、非特許文献１を参照されたい。本発明では、上記式（１）で示した相互情報量Ｓ（μ）を最大化させるように、線形変換パラメータμの値を逐次最適化処理を実行する。最適化処理部７４は、上述した相互情報量を、テーラー展開し、Ｓ（μ）を最大化する線形変換パラメータを、出力するべき線形変換パラメータとして決定する。
【００４４】
図５は、図４に示した低解像度レジストレータ５０が実行する処理の実施形態のフローチャートである。図５に示した処理は、ステップＳ２００から開始し、ステップＳ２０１で基準イメージのブロック・データの画素データをメイン・メモリ１４からローカル・メモリ１８にフェッチする。ステップＳ２０２では、ローカル・メモリ１８にフェッチした画素データをランダムにサンプリングし、画素データの深さデータ（例えば、１６ビットの白黒の階調レベル値）および位置データを取得する。
【００４５】
ステップＳ２０３では、取得した画素の深さデータおよび位置データとブロックのコーナ画素の３次元座標データをブロック・データとして、メイン・メモリ１４に、相互情報量の計算のために書込む。ステップＳ２０４では、処理している解像度の基準イメージについてのブロックすべてについて処理が終了したか否かを判断し、終了していなければ（ｎｏ）処理をステップＳ２０１に戻す。また、すべてのブロックについて終了した場合（ｙｅｓ）、処理をステップＳ２０５に分岐させ、ローカル・メモリ１８をクリアして、メイン・メモリ１４に書込んだブロック・データを、相互情報量の計算のためローカル・メモリ１８にフェッチする。なお、本発明の特定の実施形態では、処理している画像イメージの処理効率の観点から、単一のブロック・データを使用して相互情報量の計算を実行することもできるし、複数の隣接するブロック・データからブロック・グループを形成させ、ブロック・グループ内すべてのブロック・データをローカル・メモリ１８にフェッチさせることもできる。
【００４６】
ステップＳ２０６では、ブロック・データのコーナ画素について線形変換を実行し、対象イメージの画素データのうち、線形変換で基準イメージのコーナに対応する画素を特定し、バウンディング・ボックスとして定義する。その後、ステップＳ２０７でバウンディング・ボックスに含まれる対象イメージの画素データをメイン・メモリ１４からローカル・メモリ１８にフェッチする。すなわち、低解像度レジストレータ５０では、対象イメージの処理対象の画素データについてはまったく投機的予測を使用しないで、ローカル・メモリ１８にフェッチする。
【００４７】
ステップＳ２０８では、ローカル・メモリ１８内のブロック・データとバウンディング・ボックス内の画素データとを使用して相互情報量を計算する。ステップＳ２０８の処理では、相互情報量の計算時にメイン・メモリ１４に格納された画素単位ではなく、ローカル・メモリ１８に格納された画素データについて連続アクセスすることができるので、ＣＰＵ１２の処理効率は向上する。ブロックについて計算された相互情報量は、メイン・メモリ１４に格納され、積算される。
【００４８】
その後、ステップＳ２０９すべてのブロック・データについて処理を終了したかを判断する。処理が終了していない場合（ｎｏ）には、処理をステップＳ２０５に分岐させて次のブロック・データについての処理を繰り返し実行する。ステップＳ２０９ですべてのブロック・データについて処理が終了した場合（ｙｅｓ）には、ステップＳ２１０で最適化処理部７４を起動して、相互情報量が最大化するように線形変換パラメータを修正し、ステップＳ２１１で、相互情報量が最大化したか、または設定した反復回数に達したかを判断する。相互情報量が最大化したかまたは設定した反復回数に達した場合（ｙｅｓ）場合、処理をステップＳ２１２分岐させて処理を終了させる。また、相互情報量が最大化したかまたは設定した反復回数に達しない場合（ｎｏ）、ステップＳ２０５に処理を分岐させて、更新した線形変換パラメータを使用して新たなバウンディング・ボックスを計算しなおして繰り返し計算を実行させる。
【００４９】
この理由は、低解像度では未だ、線形パラメータの精度が高くないため、更新された値を使用してバウンディング・ボックスを修正してゆくことが好ましいためである。なお、後述する高解像度レジストレータでは、低解像度レジストレータによる上述の処理によって、精度の高い線形変換パラメータが与えられるため、「初期値」をもって最新値の予測値として使用することが可能であるなお、図５で示した低解像度レジストレータ５０の決定した線形変換パラメータは、次ステージの処理を実行する低解像度レジストレータ５２の線形変換パラメータの初期値として渡される。
【００５０】
図６は、本発明で使用する３次元画像のデータ構造の実施形態を示す。図６に示した３次元画像のデータ構造は、基準イメージおよび対象イメージについて同様の構成とされる。図６に示すように３次元画像８０は、患部などを２次元画像として登録したスライス８２が、患部の深さ方向に複数Ｘ−Ｙ方向に位置決めされたデータ構造として与えられる。本実施形態では、ダウン・サンプル処理部により低解像度化した各スライスに対してブロック８４を割当てる。ブロック８４には、複数の画素データが含まれている。図６中、代表してブロック８４のみをハッチングして示す。
【００５１】
本実施形態では、ブロック８４を処理する場合、ブロック８４に含まれるすべての画素の画素データを、ローカル・メモリ１８にフェッチする。このため、ＣＰＵ１２は、処理のために使用する画素データに効率的にアクセスでき、相関情報の計算を効率化することが可能となる。以後、ブロック８４内の画素データがサンプリングされる。このときのサンプリング割合は、解像度に対応したサンプリング割合とされ、低解像度の基準イメージについては高いサンプリング割合が適用される。また、ブロックのコーナを占めるコーナ画素は、ランダムなサンプリングの他にサンプリングされて、バウンディング・ボックスを規定するために使用される。また、ブロックのデータ・サイズは、所定のサンプリング割合でのサンプリングにより、ローカル・メモリ１８にブロック・データまたはブロック・グループのデータと、対象イメージのデータとに対して相互情報量の計算の間、連続的にアクセスできように最適化されている。
【００５２】
図７は、ブロック８４に登録された画素データを、ローカル・メモリ１８の特定のページにフェッチする実施形態を示す。図７に示すように、一旦メイン・メモリ１４に書込まれたブロック８４内の全画素データは、ローカル・メモリ１８にフェッチされる。ローカル・メモリ１８は、キャッシュ・メモリと同様にライン単位でのメイン・メモリ１４からのフェッチが最適化されていて、ライン単位でのデータ転送を可能としている。さらに、ブロック・サンプル部７０は、ローカル・メモリ１８内にフェッチされた画素データをランダムにサンプリングし、コーナを占める画素のコーナ画素８６の３次元座標を、ランダムにサンプルした画素データに追加し、連続アクセスが可能となるように圧縮してブロック・データとして作成し、再度メイン・メモリ１４に書込む。
【００５３】
その後、相互情報量計算部７２は、メイン・メモリ１４からコーナ画素８６の３次元座標を含むブロック・データを、ローカル・メモリ１８の領域８８にフェッチする。さらに、相互情報量計算部７２は、対象イメージのバウンディング・ボックスに含まれる画素データについてもローカル・メモリ１８の領域９０に読込みこませ、画素データへのスパース・アクセスを生じさせずに、相互情報量の計算を実行させる。なお、ローカル・メモリ１８には複数の隣接するブロックからなるブロック・グループをフェッチでき、ローカル・メモリのサイズ、線形変換パラメータの値に応じてブロック・グループ内のブロックの個数を動的に最適化する。
【００５４】
図８は、基準イメージのブロック８４の２つから構成されるブロック・グループとバウンディング・ボックス９２との線形変換関係を示した図である。基準イメージのブロック８４は、複数の画素データを含んで構成されている。また、ブロック８４のコーナ画素８６の値は、ランダム・サンプリングにより抽出される画素データ９６とは別にサンプリングされ、ブロック・データとして一旦メイン・メモリ１４に書込まれる。コーナ画素８６の３次元座標は、相互情報量計算部７２により、線形変換パラメータの値が適用され、対象イメージで対応するべきコーナ画素９４の３次元座標を与えて対象イメージ上での対応するバウンディング・ボックス９２を定義する。また、図８には、ブロック８４が２つ示されていて、それぞれのコーナ画素８６からの、対象イメージへの線形写像が符号Ｐで示されている。バウンディング・ボックス９２は、図８に示されるように、隣接した２つのブロックからなるブロック・グループの８つのコーナ画素８６により規定される。なお、図８では、基準イメージ４０に帰属されるブロック８４の３Ｄ画像でのＸ、Ｙ、Ｚ方向は、図６に示したオリエンテーションとして設定されている。
【００５５】
バウンディング・ボックス９２は、下記の処理により定義される矩形体である。（１）基準イメージのコーナ画素８６を線形変換Ｐして対象イメージの対応する８つのコーナ画素９４を特定する。（２）その後、対象イメージのコーナ画素９４の（Ｍｘ、Ｍｙ、Ｍｚ）の８つの値の中から各座標値の最大値、最小値を選択して、（Ｍｘｍａｘ、Ｍｙｍａｘ、Ｍｚｍａｘ）および（Ｍｘｍｉｍ、Ｍｙｍｉｎ、Ｍｚｍｉｎ）を対角線として定義する。（３）そして当該対角線を有し、対象イメージを定義する座標軸Ｂｘ、Ｂｙ、Ｂｚに平行な辺を定義することにより形成される矩形空間である。上述したように定義されたバウンディング・ボックス９２は、Axis-aligned bounding boxとしても参照される。なお、バウンディング・ボックス９２を、座標軸Ｂｘ、Ｂｙ、Ｂｚに平行な辺を有する矩形体として生成するのは、バウンディング・ボックス９２に含まれる画素のアドレスの計算を高速に行えるようにするためである。
【００５６】
その後、さらに相互情報量計算部７２は、バウンディング・ボックス９２に含まれる画素データ９８を識別し、識別された画素データをメイン・メモリ１４からローカル・メモリ１８にフェッチする。相互情報量計算部７２は、以後、ブロックと、バウンディング・ボックスとについての画素データにつき、相互情報量の計算を、メイン・メモリ１４へのスパース・アクセスを行うことなく、ローカル・メモリ１８へのデータ・アクセスのみで実行する。また、複数のブロックからブロック・グループを形成する場合、メイン・メモリからのフェッチの効率を最大にし、かつブロック・グループのサンプル画素と参照イメージのバウンディング・ボックスがローカル・メモリに納まるようにブロック・グループのサイズを動的に決定できる。
【００５７】
低解像度レジストレータ５０、５２による処理が終了した後、本実施形態では、第２レジストレータとして機能する高解像度レジストレータ５４、５６によるレジストレーションが実行される。図９は、高解像度レジストレータ５４の機能ブロックの実施形態を示す。高解像度レジストレータ５４は、高解像度レジストレータ５６と同様の構成を使用しているので、高解像度レジストレータ５４の構成について詳細に説明する。高解像度レジストレータ５４は、ランダム・サンプル部１００と、対象イメージ予測部１０２とを含んでいる。ランダム・サンプル部１００は、指定された基準イメージの画素を、指定されるサンプリング割合となるようにサンプリングし、サンプリングしたデータにブロックを割当て、メイン・メモリ１４に圧縮して連続アクセスを可能とするように書込みを実行する。
【００５８】
対象イメージ予測部１０２は、ランダムにサンプリングされた画素データのブロックに対して線形変換パラメータの初期値を使用して、データ・アクセスが必要となる対象イメージの画素データを予測し、決定する。さらに、対象イメージ予測部１０２は、決定された対象イメージの画素データに対して基準イメージに対応するブロックを割当て、圧縮して連続アクセスを可能とするようにメイン・メモリ１４に書込みを実行する。この段階では、対象イメージ予測部１０２は、メイン・メモリ１４に格納された画素データに対してスパースなアクセスを実行する。
【００５９】
高解像度レジストレータ５４は、さらに相互情報量計算部１０４と最適化処理部１０６とを含んでいる。相互情報量計算部１０４は、ランダム・サンプル部１００および対象イメージ予測部１０２がそれぞれ圧縮してメイン・メモリ１４に書込んだ画素データを、ローカル・メモリ１８にそれぞれフェッチする。その後、相互情報量計算部１０４は、相互情報量の計算を、ローカル・メモリ１８にデータ・アクセスするだけで、指定されたブロックの相互情報量の計算を実行できる。この点で、本実施形態の相互情報量計算部１０４および最適化処理部１０６は、スパース・アクセスを行うことなく、効率的なデータ・アクセスを実行することができる。なお、相互情報量計算部１０４と最適化処理部１０６の構成については、低解像度レジストレータ５０、５２と同様に構成する。
【００６０】
また、相互情報量計算部１０４は、線形変換パラメータについて予めフェッチしていない画素データの計算が必要であると判断した場合、予測誤差が小さい場合には、当該画素データをメイン・メモリにアクセスして改めてフェッチするのではなく、対象データの近傍の画素データから外挿してその値を計算する。高解像度レジストレータでは、すでに低解像度レジストレータで精度が高められた線形変換パラメータを使用するので、相互情報量に重大な影響を与える誤差を生じさせることはない。その後、相互情報量計算処理部１０４は、所定のブロックの処理を終了すると、次のブロックの処理を実行し、ブロックごとに相互情報量を計算する。
【００６１】
最適化処理部１０６は、線形変換パラメータを使用して相互情報量計算部１０４が計算した結果に対して、線形変換パラメータを修正して、修正した線形変換パラメータを相互情報量計算部１０４に戻し、再度、相互情報量の計算を実行させる。最適化処理部１０６は、ブロックごとに計算される相互情報量を総和して、相互情報量の総和が最大化するように、線形変換パラメータ１０８を決定し、出力させる。
【００６２】
その後、さらに次ステージの高解像度レジストレータがある場合には、決定した線形変換パラメータを次ステージの高解像度レジストレータの線形変換パラメータの初期値として設定し、処理を終了する。
【００６３】
図１０は、高解像度レジストレータ５４が実行する処理の実施形態のフローチャートを示す。図１０に示す処理は、ステップＳ３００から開始し、ステップＳ３０１で基準イメージの画素データをランダム・サンプリングする。ステップＳ３０２では、サンプリングした画素データにブロックを割当て、圧縮してメイン・メモリ１４に書込む。ステップＳ３０３では、線形変換パラメータの初期値からアクセスする必要のある対象イメージの画素データを取得して圧縮し、基準イメージのブロックに対応するようにブロック化してメイン・メモリ１４に書込む。
【００６４】
ステップＳ３０４では、指定した基準イメージのブロックと対応する対象イメージのブロックとを、メイン・メモリ１４からローカル・メモリにそれぞれフェッチする。続いてステップＳ３０５では、対象イメージについて、新たな画素データが必要であるか否かを判断する。ステップＳ３０５の判断で、新たな画素データが必要であると判断された場合（ｙｅｓ）、ステップＳ３０６で予測誤差が設定した誤差規制値よりも小さいか否かを判断する。ステップＳ３０６の判断の結果、予測誤差が小さいと判断された場合（ｙｅｓ）、処理をステップＳ３０８に分岐させる。ステップＳ３０８では、すでにフェッチしてある対象イメージの画素データを外挿して画素データの有するべき位置データおよび深さデータなどの近似値を計算し、計算に使用すべき画素データを予測して、ポイントＡから図１２に示す処理に移す。また、ステップＳ３０６の判断で予測誤差が小さくないと判断された場合（ｎｏ）、処理をステップＳ３０７に分岐させ対象イメージの該当するデータをメイン・メモリ１４からローカル・メモリ１８にフェッチして、ポイントＡから図１２に示す処理に移し、精度を優先させる処理を行う。
【００６５】
図１１は、予測誤差を画素単位で判断する場合の他の実施形態を示す。図１１に示すように、基準イメージ４０のブロック８４の画素データ９６が、対象イメージ４２の画素データ９８を一つのコーナとする２×２×２画素の領域内に線形写像されると予測されるとする。画素データ９６に対してその時点での線形変換パラメータを適用して計算される線形写像Ｐが予測された２×２×２画素領域に充分近い場合（ニアミス）に、投機的予測値を使用して図１０のステップＳ３０８の判断を実行させる。
【００６６】
一方、線形写像Ｐが２×２×２画素領域に充分近くない場合（ファーミス）、メイン・メモリ１４から新たに画素データをフェッチするステップＳ３０７の処理を実行させる。本実施形態では、処理対象の画素単位でニアミス／ヒット／ファーミスの判断を行うことにより、より局所的な予測の一致性をフェッチに反映させることができる。一方、ステップＳ３０５で、新たな画素データが必要ないと判断された場合（ｎｏ）、処理をポイントＡから図１２に示す処理に分岐させる。
【００６７】
図１２には、図１０の処理のポイントＡ以降の処理を示したフローチャートである。高解像度レジストレータは、ポイントＡから図１２の処理に入り、ステップＳ３０９で画素データを使用して相互情報量の計算を実行する。その後、ステップＳ３１０でブロック内のすべてのサンプルについて計算終了したか否かを判断する。ステップＳ３１０の判断で、ブロック内のすべてのサンプルについて計算が終了していないと判断された場合（ｎｏ）、処理をポイントＢから図１０のステップＳ３０５に処理を分岐させ、次のサンプルについて新たな画素データが必要か否かを判断させる。
【００６８】
また、ステップＳ３１０の判断で、ブロック内のすべてのサンプルについて計算が終了したと判断した場合（ｙｅｓ）処理をステップＳ３１１に分岐させる。ステップＳ３１１では、すべてのブロックについて計算終了したか否かを判断し、すべてのブロックについて計算が終了したと判断された場合（ｙｅｓ）、ステップＳ３１２で相互情報量を最大化させるように線形変換パラメータを決定する。また、ステップＳ３１１の判断で、まだ計算するべきブロックが残されている場合（ｎｏ）、処理をポイントＣからステップＳ３０４へと分岐させて、処理を反復させる。
【００６９】
ステップＳ３１３では、相互情報量が最大化したかまたは反復回数が設定値に達したかを判断する。ステップＳ３１３の判断で相互情報量が最大化したかまたは反復回数が設定値に達したと判断された場合（ｙｅｓ）、処理をステップＳ３１４に分岐させて処理を終了させる。また、ステップＳ３１３の判断で、相互情報量が最大化したかまたは反復回数が設定値に達していないと判断された場合（ｎｏ）、処理をポイントＣからステップＳ３０４に分岐させて、相互情報量が最大化するか、反復カウンタが所定の反復回数の設定値に達するまで継続させる。
【００７０】
以上の構成を使用して本発明のレジストレータと、従来処理を使用するレジストレータとの性能比較を、スプレッドシードを使用したシミュレータで検討した。予測性能は、ＣＥＬＬ  ＢＥ  Ｐｒｏｃｅｓｓｏｒ（３．２ＧＨｚ、メイン・メモリ＝１ＧＢ、各ＳＰＥのローカル・メモリ＝２５６ＫＢ）を使用し、インターナショナル・ビジネス・マシーンズ・コーポレーション社製のブレードセンタ（登録商標）ＱＳ２０に実装したものとし、８個のＳＰＥを使用するものとし、スプレッドシートを使用して１画素当たりに要する計算時間をシミュレーションした。
【００７１】
また、比較のため、サンプリング比を１／１００とした従来のシーケンシャル逐次最適化法（非特許文献１）を使用し、相互情報量計算に対し、ローカル・メモリにフェッチできるブロック単位で処理データセットを作成せず、メイン・メモリへのスパース・アクセスを行ないながら計算を実行する従来の逐次最適化法についてもシミュレーションした。その結果を図１３および図１４に示す。対象とした３Ｄ画像は、１スライスあたり、２５６×２５６画素とした。
【００７２】
シミュレーションは、サンプリング割合６４／１００、１６／１００、４／１００、１／１００に対する低解像度レジストレータについてのシミュレーション（（ａ）〜（ｄ））、高解像度レジストレータについてのシミュレーション（ｅ）とした。また、比較例（ｆ）については、従来手法（非特許文献１）を使用し、シミュレーション（ｆ）とした。シミュレーションは、各レジストレータが１ステージの処理を実行するものとして１画素当たりの相互情報量の相互情報量計算に要するクロック時間をシミュレーションした。
【００７３】
図１３に示されるように、ブロック・サンプリングを行う低解像度レジストレータでは、サンプリング割合が高くなればなるほど（解像度が低くなることに対応する）実行時間が短縮され、サンプリング割合が低くなればなるほど（解像度が高くなることに対応する）、実行時間が増加した。
【００７４】
この理由は、サンプリング割合(計算に使用するデータのうちサンプリングされる割合)が低い場合には不要な画素データを、ブロックとしてローカル・メモリ１８にフェッチすることになり、ブロック・サンプリングの効果は小さくなるためである。このため、低解像度ではブロック・サンプリング法を使用する第１レジストレータを使用し、高解像度では、第２レジストレータを使用して精度の高められた線形変換パラメータを使用した投機的予測を併用するランダム・ダンプリングを使用して実装することが好ましいことが示された。
【００７５】
また、図１３に示されるように、本発明の各レジストレータは、相互情報量の計算処理時間が従来手法に比較にして充分に計算速度が向上されていることが示されている。
【００７６】
図１４には、従来の逐次最適化法を使用するレジストレータの総実行時間と本発明によるレジストレータの総実行時間とを、それぞれの計算時間の逆数を比として本発明の効率を比較した。シミュレーションによる比較の結果、本発明によりメイン・メモリへのスパース・アクセスを改善することに対応して、従来法に比較して、本発明の方法を使用することで約３倍程度、計算時間が短縮されることが示された。
【００７７】
また、本発明のブロック・サンプリングの代わりに、ブロック分割することなく乱数列を発生させ、ソートされた乱数列を用いて全画素データについてサンプリングし、ブロックごとに処理することでも、同様の効果を得ることも可能である。この実施形態の場合、ソフトウェア資源として、ソート処理を実行するモジュールの追加が必要となる。また、当該実施形態で、画像処理を並列処理を使用して実行させる場合、ソート処理を追加したことにともない、プロセス間通信が必要になる。本発明の好ましい実施形態では、プロセス間通信も必要とされず、より並列処理性を向上できる。また、前述のブロック・グループを構成し、そのサイズを動的に最適化する場合と同等の効果を得るためには、線形変換パラメータを計算しなおすたびにソート処理が必要であり、そのための実行時間のオーバーヘッドが発生する。
【００７８】
また、本発明の上記機能は、アセンブラ、Ｃ、Ｃ＋＋などのレガシープログラミング言語やオブジェクト指向ブログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布することができる。
【００７９】
これまで本発明を図面に示した実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００８０】
【図１】データ処理装置のハードウェア構成の実施形態を示した図。
【図２】データ処理装置の機能ブロックの実施形態を示した図。
【図３】データ処理装置が実行する処理の実施形態のフローチャート。
【図４】低解像度レジストレータの機能ブロックの実施形態を示した図。
【図５】低解像度レジストレータの処理の実施形態のフローチャート。
【図６】３次元画像のデータ構造の実施形態を示した図。
【図７】ローカル・メモリでの画素データのマッピングの実施形態を示した図。
【図８】ブロック内の画素データをバウンディング・ボックスに対応づける線形変換の実施形態を示した図。
【図９】高解像度レジストレータの機能ブロックの実施形態を示した図。
【図１０】高解像度レジストレータの処理の実施形態のフローチャート。
【図１１】予測誤差を画素単位で判断する場合の他の実施形態を示した図。
【図１２】図１０の処理のポイントＡ以降の処理のフローチャート。
【図１３】本発明のレジストレータと、従来処理を使用するレジストレータとの性能比較結果を示した図。
【図１４】本発明のレジストレータと、従来処理を使用するレジストレータとの性能比較結果を示した図。
【符号の説明】
【００８１】
１０…データ処理装置、１２…中央処理装置（ＣＰＵ）、１４…メイン・メモリ、１６…ユニット・プロセッサ、１８…ローカル・メモリ、２０…ＤＭＡ、２２…システム・バス、２４…グラフィックス・ドライバ、２６…ネットワーク・デバイス（ＮＩＣ）、２８…ディスプレイ装置、３０…Ｉ／Ｏバス・ブリッジ、３２…Ｉ／Ｏバス、３４…記憶装置、３６…入出力装置、４０…基準イメージ、４２…対象イメージ、４４〜４８…ダウン・サンプル処理部、５０〜５６…レジストレータ、５８〜６２…ダウン・サンプル処理部、６４…線形変換パラメータ、７０…ブロック・サンプル部、７２…相互情報量計算部、７４…最適化処理部、７６…線形変換パラメータ、８０…３次元画像、８２…スライス、８４…ブロック、８６…コーナ画素、８８…領域、９０…領域、９２…バウンディング・ボックス、９４…コーナ画素、９６…画素データ、９８…画素データ、１００…ランダム・サンプル部、１０２…対象イメージ予測部、１０４…相互情報量計算部、１０６…最適化処理部、１０８…線形変換パラメータ、Ｐ…線形写像
【図１】
2008142137.tif 000004
【図２】
2008142137.tif 000005
【図３】
2008142137.tif 000006
【図４】
2008142137.tif 000007
【図５】
2008142137.tif 000008
【図６】
2008142137.tif 000009
【図７】
2008142137.tif 000010
【図８】
2008142137.tif 000011
【図９】
2008142137.tif 000012
【図１０】
2008142137.tif 000013
【図１１】
2008142137.tif 000014
【図１２】
2008142137.tif 000015
【図１３】
2008142137.tif 000016
【図１４】
2008142137.tif 000017