(57)【要約】      （修正有）【課題】処理に使用するデータ量を考慮して各演算器の負荷バランスが均等となるような並列処理を行うことにより、画像処理を高速化することが可能な演算装置、Ｘ線ＣＴ装置、及びデータ処理方法を提供する。【解決手段】Ｘ線ＣＴ装置の演算装置２０２は複数の演算器を備える。演算装置２０２は、例えば逆投影処理において負荷分散処理を実行する。逆投影処理の負荷分散処理において、演算装置２０２は処理領域である画像を複数のブロックに分割し、分割された各ブロックの処理に使用する投影データのデータ量を算出する。更に演算装置２０２は各ブロックの処理の負荷量を使用データ量に基づいて算出し、負荷量に基づいて処理領域に演算器を割り当てる。これにより各演算器にかかる負荷量が均等となり、効率よくデータ処理を行うことが可能となる。【選択図】図３
2017124081.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器を有する演算装置であって、
処理に使用するデータを取得するデータ取得部と、
処理領域を複数ブロックに分割する処理領域分割部と、
前記ブロックの処理に使用するデータ量である使用データ量を求める使用データ量算出部と、
前記使用データ量に基づいて各ブロックでの処理の負荷量を算出する負荷量算出部と、
前記負荷量に基づいて演算器を割り当てる演算器割り当て部と、
割り当てられた演算器によって前記処理を行う演算処理部と、
を備えることを特徴とする演算装置。
【請求項２】
前記演算器割り当て部は、ブロック間の負荷量の差異が予め定められた閾値以下になるように各ブロックに演算器を割り当てることを特徴とする請求項１に記載の演算装置。
【請求項３】
前記処理に使用するデータは投影データであり、前記処理は前記投影データを用いて前記処理領域である画像を生成する逆投影処理であることを特徴とする請求項２に記載の演算装置。
【請求項４】
前記使用データ量算出部は、Ｘ線焦点から照射されたＸ線が通過する各ブロックの画素の位置に対応する投影データの範囲を算出することにより前記使用データ量を算出することを特徴とする請求項３に記載の演算装置。
【請求項５】
前記処理に使用するデータは画像データであり、前記処理は前記画像データを前記処理領域である検出器へ順投影する順投影処理であることを特徴とする請求項２に記載の演算装置。
【請求項６】
前記使用データ量算出部は、Ｘ線焦点から照射されたＸ線が通過する画像数を前記検出器の検出素子位置について求めることにより、前記ブロックの使用データ量を算出することを特徴とする請求項５に記載の演算装置。
【請求項７】
前記負荷量算出部は、更に、演算器のデータ転送速度に基づいて前記負荷量を算出することを特徴とする請求項２に記載の演算装置。
【請求項８】
前記演算器割り当て部は、演算器１つ当たりの平均負荷量を算出し、複数ブロックの負荷量を積算し、積算値が演算器１つ当たりの平均負荷量以内に収まるように各演算器に割り当てる処理範囲を決定することを特徴とする請求項２に記載の演算装置。
【請求項９】
前記演算器割り当て部は、各ブロックの負荷量の比率を算出し、前記比率に基づいてブロックに割り当てる演算器数を決定し、決定した演算器数分の演算器を各ブロックに割り当てることを特徴とする請求項２に記載の演算装置。
【請求項１０】
前記演算器割り当て部は、処理領域の位置と使用データ量との関係を表す関数を用いて演算器を割り当てることを特徴とする請求項２に記載の演算装置。
【請求項１１】
請求項１に記載の演算装置を備えたＸ線ＣＴ装置。
【請求項１２】
複数の演算器を有する演算装置が、
処理に使用するデータを取得するステップと、
処理領域を複数ブロックに分割するステップと、
前記ブロックの処理に使用するデータ量である使用データ量を求めるステップと、
前記使用データ量に基づいて各ブロックでの処理の負荷量を算出するステップと、
前記負荷量に基づいて各ブロックに演算器を割り当てるステップと、
割り当てられた演算器によって前記処理を行うステップと、
を含むことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置、Ｘ線ＣＴ装置、及びデータ処理方法に関し、詳細には、複数の演算器を有する演算装置を用いたデータ処理における演算速度の高速化に関する。
【背景技術】
【０００２】
近年、ＣＴ（Computed Tomography）装置では、データ量の増加や計算の複雑化に伴い演算装置の処理量が増加している。一方で、病院施設でのワークフローを滞らせないようにするため、処理の高速化が求められている。こうした背景により、複数の演算器（コア）を搭載するマルチコアプロセッサ（演算装置）を用いて並列処理を行うことが一般に行われている。並列処理では、例えばモジュールの１つ１つに演算器を割り当てる方法や処理すべき領域（画像や投影データ等）を分割し、分割した領域それぞれに演算器を割り当てる方法が提案されている。
【０００３】
このように、複数の演算器を用いて並列処理を行う場合、各演算器の処理量はできるだけ均等であることが望ましい。なぜなら処理量の少ない演算器は早く処理を終了し、処理量の多い演算器の処理を待つことになるためである。このような課題に対し、画像を等分割することにより各演算器の処理時間のバランスをとり、効率のよい並列処理を行う方法等が提案されている。
【０００４】
Ｘ線ＣＴ装置で得た投影データから画像を生成する逆投影処理では、画素の位置によって１画素を生成するために使用する投影データの量は異なる。そのため、処理する画素位置によって演算負荷が異なる。また画像から投影データを生成する順投影処理においても、検出素子の位置によって透過する画素数（画像数）が異なるので、処理する素子位置によって演算負荷が異なる。
【０００５】
使用データ量が多いほど演算負荷が大きいのは、データ量が多いほど演算器にデータを転送するためのコストがかかるためである。
【０００６】
特許文献１には、再構成するスライス面を複数のブロックに分割し、これに対応した投影画像の領域を切り出して各ブロックのローカルデータとしてブロック毎に処理単位を設定して演算単位に振り分けて並列処理を行う画像処理方法について記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−５５３３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１の手法では処理領域によってデータ量が変化しないもの（投影画像のコンボリューション）に対しては処理領域を等分割することで演算器の負荷バランスを均等化しているが、処理領域によってデータ量が変化する処理（バックプロジェクション）に対しては演算器の負荷バランスの均等化は考慮されていない。
【０００９】
本発明は、以上の問題点に鑑みてなされたものであり、その目的とするところは、処理に使用するデータ量を考慮して各演算器の負荷バランスが均等となるような並列処理を行うことにより、画像処理を高速化することが可能な演算装置、Ｘ線ＣＴ装置、及び画像処理方法を提供することである。
【課題を解決するための手段】
【００１０】
前述した目的を達成するための第１の発明は、複数の演算器を有する演算装置であって、処理に使用するデータを取得するデータ取得部と、処理領域を複数ブロックに分割する処理領域分割部と、前記ブロックの処理に使用するデータ量である使用データ量を求める使用データ量算出部と、前記使用データ量に基づいて各ブロックでの処理の負荷量を算出する負荷量算出部と、前記負荷量に基づいて各ブロックに演算器を割り当てる演算器割り当て部と、割り当てられた演算器によって前記処理を行う演算処理部と、を備えることを特徴とする演算装置である。
【００１１】
第２の発明は、第１の発明の演算装置を備えたＸ線ＣＴ装置である。
【００１２】
第３の発明は、複数の演算器を有する演算装置が、処理に使用するデータを取得するステップと、処理領域を複数ブロックに分割するステップと、前記ブロックの処理に使用するデータ量である使用データ量を求めるステップと、前記使用データ量に基づいて各ブロックでの処理の負荷量を算出するステップと、前記負荷量に基づいて各ブロックに演算器を割り当てるステップと、割り当てられた演算器によって前記処理を行うステップと、を含むことを特徴とするデータ処理方法である。
【発明の効果】
【００１３】
本発明によれば、処理に使用するデータ量が一定でない場合でも各演算器の負荷バランスが均等となるような並列処理を行うことにより、画像処理を高速化することが可能な演算装置、Ｘ線ＣＴ装置、及びデータ処理方法を提供できる。
【図面の簡単な説明】
【００１４】
【図１】Ｘ線ＣＴ装置１の全体構成を示す外観図
【図２】Ｘ線ＣＴ装置１の内部構成を示すブロック図
【図３】演算装置２０２の機能ブロック図
【図４】逆投影処理におけるＸ線検出器１０３（使用データ）とＸ線ビームと画像ｉ１、ｉ２、ｉ３、…（処理領域）の位置関係を示す図
【図５】画像再構成位置と使用データ量との関係を示すグラフ
【図６】演算器の割り当てについて説明する図
【図７】逆投影処理の流れを示す図
【図８】図７のステップＳ１０２の負荷分散処理の流れを示すフローチャート
【図９】図８のステップＳ２０２の使用データ量の算出処理の流れを示すフローチャート
【図１０】分割された処理領域（ブロックＢ１、Ｂ２、Ｂ３、…）の例
【図１１】図９のステップＳ３０２の使用データの範囲算出処理の流れを示すフローチャート
【図１２】使用ｃｈ座標の算出（ステップＳ４０１）の仕方を説明する図
【図１３】使用ｓｌｉｃｅ座標の算出（ステップＳ４０２）の仕方を説明する図
【図１４】ブロックの端点と対応する投影データ上の座標との位置関係を説明する図
【図１５】図８のステップＳ２０４の演算器の割り当て処理の流れを示すフローチャート
【図１６】順投影処理におけるＸ線検出器１０３（処理領域）とＸ線ビームと画像ｉ１、ｉ２、ｉ３、…（使用データ）との位置関係を示す図
【図１７】順投影処理の流れを示す図
【図１８】図１７のステップＳ６０２の負荷分散処理の流れを示すフローチャート
【図１９】図１８のステップＳ７０２の使用データ量の算出処理の流れを示すフローチャート
【図２０】分割された処理領域（ブロックＲｄ１、Ｒｄ２、…ＲｄＮ）の例
【図２１】各ブロックの代表端点Ｒｄ１[０，ｓｌ１]、Ｒｄ２[０，ｓｌ２]、…ＲｄＮ[０，ｓｌＮ]に対応する画像上の位置を説明する図
【図２２】処理ブロック数よりも演算器の数が多い場合の演算器の割り当て処理（図８のステップＳ２０４）について説明するフローチャート
【発明を実施するための形態】
【００１５】
［第１の実施の形態］
以下、図面に基づいて本発明の好適な実施形態を詳細に説明する。まず、図１及び図２を参照しながら、Ｘ線ＣＴ装置１のハードウェア構成を説明する。
【００１６】
図１及び図２に示すように、Ｘ線ＣＴ装置１は、大別してスキャナ１０及び操作ユニット２０から構成される。スキャナ１０は、ガントリ１００及び寝台１０１を有する。ガントリ１００は、図２に示すようにＸ線管１０２、Ｘ線検出器１０３、コリメータ１０４、高電圧発生装置１０５、データ収集装置１０６、及びガントリ駆動装置１０７等を有する。操作ユニット２０は、中央制御装置２００、入出力装置２０１、及び演算装置２０２等を有する。
【００１７】
操作者は、操作ユニット２０の入出力装置２０１を用いて撮影条件や再構成条件等を入力する。撮影条件は、例えばＸ線ビーム幅、寝台送り速度、管電流、管電圧、撮影範囲（体軸方向範囲）、周回当たりの撮影ビュー数等である。また再構成条件は、例えば関心領域、ＦＯＶ（Field Of View）、再構成フィルタ関数等である。入出力装置２０１は、ＣＴ画像等を表示する表示装置２１１、マウス、トラックボール、キーボード、タッチパネル等の入力装置２１２、データを記憶する記憶装置２１３等を含む。
【００１８】
中央制御装置２００は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only
Memory）、ＲＡＭ（Random Access Memory）等を備えたコンピュータであり、Ｘ線ＣＴ装置１全体の動作を制御する。中央制御装置２００は、撮影条件や再構成条件に基づいて撮影に必要な制御信号をスキャナ１０の各装置に送信する。
【００１９】
中央制御装置２００からの撮影スタート信号を受けて撮影が開始されると、高電圧発生装置１０５は中央制御装置２００からの制御信号に基づいてＸ線管１０２に所定の大きさの管電圧、管電流を印加する。Ｘ線管１０２は、印加された管電圧に応じたエネルギーの電子を陰極から放出し、放出された電子がターゲット（陽極）に衝突することによって電子エネルギーに応じたエネルギーのＸ線を被写体３に照射する。
【００２０】
Ｘ線管１０２から照射されるＸ線は、コリメータ１０４によって照射領域が制限される。コリメータ１０４の開口幅は中央制御装置２００からの制御信号に基づいて制御される。
【００２１】
２次元方向に検出素子が配列されるＸ線検出器１０３を用いるマルチスライスＣＴでは、Ｘ線検出器１０３に合わせてＸ線源であるＸ線管１０２から円錐状、もしくは角錐状に広がるＸ線ビームが照射される。
【００２２】
Ｘ線管１０２から照射され、コリメータ１０４によって照射領域が制限されたＸ線は被写体３内の各組織においてＸ線減弱係数に応じて吸収（減衰）され、被写体３を通過し、Ｘ線管１０２に対向する位置に配置されたＸ線検出器１０３によって検出される。
【００２３】
寝台１０１は、被写体３を寝載する天板、上下動装置、及び天板駆動装置を備え、中央制御装置２００からの制御信号に基づき天板高さを上下に昇降したり、体軸方向へ前後動したり、体軸と垂直方向かつ床面に対し平行な方向（左右方向）へ左右動する。撮影中において寝台１０１は、中央制御装置２００により決定された寝台移動速度及び移動方向で天板を移動させる。
【００２４】
ガントリ駆動装置１０７は、中央制御装置２００からの制御信号に基づいて、ガントリ１００の回転盤を周回させる。
【００２５】
Ｘ線検出器１０３は、例えばシンチレータとフォトダイオードの組み合わせによって構成されるＸ線検出素子群をチャンネル方向（周回方向）及び列方向（体軸方向）に２次元配列したものである。Ｘ線検出器１０３は、被写体３を介してＸ線管１０２に対向するように配置される。Ｘ線検出器１０３はＸ線管１０２から照射されて被写体３を透過したＸ線量を検出し、データ収集装置１０６に出力する。
【００２６】
データ収集装置１０６は、Ｘ線検出器１０３の個々のＸ線検出素子により検出されるＸ線量の情報を収集し、デジタル信号に変換し、透過Ｘ線情報として操作ユニット２０の演算装置２０２に順次出力する。
【００２７】
演算装置２０２は、再構成処理装置２２１及び画像処理装置２２２等を備える。
再構成処理装置２２１は、データ収集装置１０６により収集された透過Ｘ線情報を取得し、画像を再構成するために必要な投影データを作成する。また、再構成処理装置２２１は投影データを用いて被写体３の断層像（ＣＴ画像）を再構成する。
【００２８】
本発明において、演算装置２０２は複数の演算器（コア）を備える。また演算装置２０２は、後述する負荷分散処理を行って複数の演算器へ負荷バランスが均等となるように処理を割り当て、画像生成を行う。処理とは、例えば逆投影、順投影、または逆投影及び順投影を繰り返し行う逐次近似再構成処理等の画像生成に関する処理である。演算装置２０２が実行する負荷分散処理の詳細については後述する。再構成処理装置２２１は、生成したＣＴ画像を記憶装置２１３に保存するとともに表示装置２１１に表示する。
【００２９】
画像処理装置２２２は、再構成処理装置２２１により作成され、記憶装置２１３に記憶されたＣＴ画像に対して画像処理を行う。また、画像処理後の画像を表示装置２１１に表示するとともに記憶装置２１３に保存する。
【００３０】
次に、図３を参照しながら、演算装置２０２の機能構成について説明する。
演算装置２０２は主要な機能構成として、データ取得部４１、処理領域分割部４２、使用データ量算出部４３、負荷量算出部４４、演算器割り当て部４５、演算処理部４６等を有する。
【００３１】
データ取得部４１は、処理に使用するデータを取得する。処理に使用するデータとは、逆投影処理においては投影データであり、順投影処理においては画像データである。投影データは、Ｘ線管１０２から照射され、被写体３及び寝台１０１を透過しＸ線検出器１０３によって検出されたＸ線の線量情報（透過Ｘ線情報）に基づき生成される。
【００３２】
ここで、図４〜図６を参照して、投影データから画像を生成する処理（逆投影処理）における画像位置と使用データとの関係について説明する。図４において、ｉ１、ｉ２、ｉ３、…は、各スライス位置（画像再構成位置）における断層画像である。
【００３３】
図４に示すように、Ｘ線管（Ｘ線焦点）１０２とＸ線検出器１０３の各検出素子とを結ぶ線はＸ線ビームである。Ｘ線ビームが画像ｉ１、ｉ２、ｉ３、…と交差する数は、画像のスライス位置によって異なる。例えば、画像ｉ１を生成するために使用する投影データのスライス数をｓ１、画像ｉ２を生成するために使用するスライス数をｓ２、画像ｉ３を生成するために使用するスライス数をｓ３とすると、Ｘ線管装置１０２から中心に近い画像ほど、使用スライス数が少なく、遠いほど使用スライス数が多い（ｓ２＞ｓ１）。画像位置がＸ線管１０２から一定以上離れると、Ｘ線検出器１０３のスライス範囲を超える画素が出てくる。スライス範囲を超え、例えば端スライスを使用する場合は使用スライス数が少なくなる（ｓ２＞ｓ３）。
【００３４】
つまり、投影データから画像を生成する逆投影処理では、図５に示すように１画素を生成するために使用するデータ量は均等ではなく画像再構成位置によって異なる。
【００３５】
図６に示すように、画像ｉ１、ｉ２、ｉ３、ｉ４を作成するのに使用する投影データは、それぞれＤ１、Ｄ２、Ｄ３、Ｄ４の範囲である。つまり逆投影処理では、処理する領域（画像）のサイズ（画素数）は各画像ｉ１〜ｉ４で同じであるが、処理（画像生成）に使用するデータ量Ｄ１〜Ｄ４が各画像で異なる。
【００３６】
ところで、演算装置２０２の演算器の負荷量は、計算量とデータ転送量で決定される。計算量は、画素数（画像のサイズ）によって決定されるが、データ転送量は処理に使用するデータ量Ｄ１〜Ｄ４に依存する。よって図６の上段に示すように、画像ｉ１、ｉ２、ｉ３、ｉ４を生成するための負荷量はそれぞれ異なる。
【００３７】
処理領域のサイズ（画像サイズ）のみを考慮して演算器を均等分配すると、図６の下段に示すように、演算器の負荷量にばらつきが生じ、全体として処理が非効率である。本発明では、図６の中段に示すように、演算器の計算量（画素数）と演算に使用するデータ量（使用データ量）とを用いて負荷量を算出し、演算器の負荷に基づいて演算器を割り当てることで、効率よく高速に処理を行うことを可能とする。
【００３８】
図３の説明に戻る。
処理領域分割部４２は、処理領域を複数ブロックに分割する。処理領域とは、逆投影処理では画像である。
【００３９】
使用データ量算出部４３は、処理領域分割部４２により分割された各ブロックの処理に使用するデータ量を求める。使用データ量の求め方については後述する。
【００４０】
負荷量算出部４４は、上述の各ブロックの負荷量を算出する。このとき負荷量算出部４４は、画像サイズ（計算量）のみならず使用データ量を考慮して各ブロックの負荷量を算出する。負荷量の算出については後述する。
【００４１】
演算器割り当て部４５は、負荷量算出部４４によって算出された負荷量に基づいて均等になるように処理領域を処理する演算器の割り当てを行う。なお、負荷量が均等になることが望ましいが、負荷量が均等にならない場合は、各処理領域の負荷量の差異が予め定めた閾値以下になるように演算器を割り当ててもよい。演算器の割り当てについては後述する。
【００４２】
演算処理部４６は、演算器割り当て部４５によって割り当てられた演算器によって処理領域の処理を実施する。処理とは、第１の実施の形態では投影データから画像データを生成する逆投影処理である。
【００４３】
次に図７を参照しながら、本発明のＸ線ＣＴ装置１の処理全体の流れを説明する。
【００４４】
まずＸ線ＣＴ装置１は、被写体３に対して位置決め撮影を行う。位置決め撮影では、ガントリ１００を回転させずＸ線の照射方向を固定し、寝台１０１を所定の速さで移動しながら被写体３及び寝台１０１を透過したＸ線量を計測する。Ｘ線ＣＴ装置１は、位置決め撮影によって得られた透過Ｘ線データに基づいて位置決め画像を作成する。中央制御装置２００は、位置決め画像を使用して撮影条件や再構成条件等の各種条件設定を受け付ける。そして、中央制御装置２００は設定された各種条件に基づいて本撮影を実行する。本撮影では、ガントリ１００を回転させて被写体３の周囲の各方向からＸ線を照射し、被写体３及び寝台１０１を透過したＸ線情報を計測する。この本撮影により、投影データを取得する（ステップＳ１０１）。
【００４５】
次に演算装置２０２は、負荷分散処理を実行する。負荷分散処理では、演算装置２０２は複数の演算器の負荷バランスが均等となるように各演算器を処理領域に割り当てる（ステップＳ１０２）。
【００４６】
ステップＳ１０２で求められた割り当てに従い、演算装置２０２は分割画像処理を実施する（ステップＳ１０３）。分割画像処理では、全演算器を用いて並列処理を実施し、画像を生成する。演算装置２０２は、ステップＳ１０３で生成された画像を表示装置２１１に表示する（ステップＳ１０４）。
【００４７】
次に、図８を参照して、ステップＳ１０２の負荷分散処理について説明する。
演算装置２０２はまず記憶装置２１３からパラメータとして作成画像枚数及び処理ブロックサイズ（縦横サイズ）の情報を取得する。処理ブロックサイズは、通常、プロセッサのアーキテクチャに応じた適切なサイズ、または処理を実行しやすいサイズが予め設定されている。演算装置２０２は、取得した作成画像枚数から全処理画素数を求め、処理ブロックサイズで除算することで分割数Ｎを算出する（ステップＳ２０１）。
【００４８】
分割数Ｎの算出について具体的に説明する。演算装置２０２は、記憶装置２１３から、画像サイズＸ×Ｙ、作成画像枚数ｉ、画像再構成位置ｚ、演算器数ｔ、ブロックサイズＸ×ｙｂ［画素］を取得する。分割数Ｎは、以下の式（１）で求められる。ブロックサイズは可変であり、例えば１×１と設定してもよい。
【００４９】
【数１】
2017124081.tif 000003
【００５０】
演算装置２０２は、ステップＳ２０１で算出したＮ個の処理ブロックについて、それぞれ使用データ量を算出し（ステップＳ２０２）、使用データ量に基づいて各処理ブロックの負荷量を算出する（ステップＳ２０３）。逆投影処理の場合、例えば図９に示す手順で使用データ量を算出する。
【００５１】
図９に示すように、演算装置２０２はまず分割した各領域（ブロック）の端点の座標を求める（ステップＳ３０１）。例えば、図１０に示すように、処理領域（画像ｉ１，ｉ２、…）が複数のブロックＢ１，Ｂ２，Ｂ３，…，Ｂ９，Ｂ１０，Ｂ１１，…に分割されているとする。ブロックＢ１の端点の画素Ｂ１１，Ｂ１２，Ｂ１３，Ｂ１４の座標はそれぞれ以下のようになる。
【００５２】
Ｂ１１［０，ｙ，ｚ］
Ｂ１２［Ｘ，ｙ，ｚ］
Ｂ１３［０，ｙ＋ｙｂ，ｚ］
Ｂ１４［Ｘ，ｙ＋ｙｂ，ｚ］
【００５３】
同様に全Ｎ個のブロックＢ２，Ｂ３，…，ＢＮについてそれぞれ端点の座標を算出する。
【００５４】
次に演算装置２０２は、使用データ範囲を算出する（ステップＳ３０２）。使用データ範囲とは、逆投影の場合、ブロックの範囲に対応する投影データ上の範囲である。すなわち、ステップＳ３０１で求めた端点座標に対応する投影データ上の座標を算出することにより、投影データ上の使用データ範囲を求める。
【００５５】
ステップＳ３０２において、図１１のフローチャートに示すように、演算装置２０２は、使用ｃｈ座標を算出し（ステップＳ４０１）、また使用ｓｌｉｃｅ座標を算出する（ステップＳ４０２）。
【００５６】
使用ｃｈ座標とは、ブロックの端点座標に対応する投影データ（使用データ）上の座標のチャンネル位置（ｃｈ座標）である。使用ｓｌｉｃｅ座標とは、ブロックの端点座標に対応する投影データ（使用データ）上の座標のスライス位置（ｓｌｉｃｅ座標）である。
【００５７】
演算装置２０２は、各ブロックの端点に対応する使用ｃｈ座標を算出する。Ｘ線ＣＴ装置１の幾何学系にも依存するが、例えば平行ビームの場合、図１２に示すように、画像上の画素ｉのＸ座標は、画素サイズから素子サイズ（ｃｈ）へのスケーリング係数ｋ１を用いて、以下の式（２）のように算出される（ステップＳ４０１）。
【００５８】
【数２】
2017124081.tif 000004
【００５９】
次に、演算装置２０２は、使用ｓｌｉｃｅ座標を算出する（ステップＳ４０２）。ステップＳ４０２では、演算装置２０２は、画素のＹ座標、Ｚ座標、Ｘ線管１０２（Ｘ線焦点位置）から画像中心までの距離ｄ、画像上の画素ｉの位置から素子サイズ（Ｓｌｉｃｅ）へのスケーリング係数ｋ２を用いて、以下の式（３）のように使用ｓｌｉｃｅ座標を算出する。
【００６０】
【数３】
2017124081.tif 000005
【００６１】
ただし、算出した座標が存在しない場合は、以下の式（４）のように丸め込みを行ってもよい。
【００６２】
【数４】
2017124081.tif 000006
【００６３】
ステップＳ４０１〜ステップＳ４０２の処理により各ブロック端点に対応する投影データ上のｃｈ座標及びｓｌｉｃｅ座標が算出できる。図１４に示すように、各ブロックの端点の使用データの座標を、Ｂｄ１１［ｃｈ１，ｓｌｉｃｅ１］、Ｂｄ１２［ｃｈ２，ｓｌｉｃｅ２］、Ｂｄ１３［ｃｈ３，ｓｌｉｃｅ３］、Ｂｄ１４［ｃｈ４，ｓｌｉｃｅ４］のように表すものとする。
【００６４】
図９の説明に戻る。上述したようにステップＳ３０２によりブロック端点座標に対応する使用データ範囲が算出されると、次に演算装置２０２は使用データ量を算出する（ステップＳ３０３）。ステップＳ３０３において、演算装置２０２は、ブロック内の使用データ量は、各ブロックの端点に対応する使用データ範囲からチャンネル方向及びスライス方向の最大値と最小値をそれぞれ抽出し、式（５）のように算出する。
【００６５】
使用データ量＝（ｃｈ最大値−ｃｈ最小値）×（ｓｌｉｃｅ最大値−ｓｌｉｃｅ最小値）    ・・・（５）
【００６６】
その後、演算装置２０２は負荷量を算出する（図８のステップＳ２０３）。ステップＳ２０３において演算装置２０２は、以下のように各ブロックの負荷量を算出する。負荷量は、単位処理領域の処理速度に対する単位使用データを転送する速度との速度比率係数αを用いて、以下の式（６）のようにあらわすことができる。
【００６７】
負荷量＝処理領域＋α×使用データ量  ・・・（６）
【００６８】
ここで、αはプロセッサのデータ転送性能やアーキテクチャに依存する係数であり、例えばバンド幅やキャッシュ等に依存する。
【００６９】
上述したように負荷量が算出されると、演算装置２０２は、算出した各ブロックの負荷量に基づいて、各演算器の負荷量が均等になるように演算器を各ブロックに割り当てる（ステップＳ２０４）。
【００７０】
ステップＳ２０４の演算器の割り当てについて図１５のフローチャートを参照して説明する。
演算装置２０２は、まず演算器１つ当たりの平均負荷量を算出する（ステップＳ５０１）。ステップＳ５０１において、演算装置２０２は全ブロックの総負荷量を以下の式（７）から求め、式（８）により演算器１つ当たりの平均負荷量を算出する。
【００７１】
総負荷量＝ブロックＢ１の負荷量＋ブロックＢ２の負荷量＋・・・＋ブロックＢＮの負荷量  ・・・（７）
平均負荷量＝総負荷量／演算器数ｔ  ・・・（８）
【００７２】
次に、演算装置２０２は、式（９）によりブロックＢ１から順に各ブロックの負荷量を加算していく（ステップＳ５０２）。
【００７３】
積算値＋＝負荷量［ｎ］  ・・・（９）
【００７４】
ステップＳ５０２で求めた積算値が、ステップＳ５０１で求めた平均負荷量に達した場合、そのブロックを処理終了ブロックｅｎｄ_ｂとし、処理開始ブロックｓｔ_ｂから処理終了ブロックｅｎｄ_ｂまでを１つの演算器が処理する範囲（処理ブロック）とする（ステップＳ５０３）。これを繰り返し、各演算器の処理開始ブロックと処理終了ブロックを求める。
【００７５】
ただし、上述の負荷量の積算値がちょうどよく平均負荷量に達するとは限らない。その場合は、例えば、以下の式（１０）に示すように、
【００７６】
積算値  ＞  平均負荷量−１ブロック当たりの平均負荷量  ・・・（１０）
【００７７】
としてもよい。ここで、１ブロック当たりの平均負荷量＝総負荷量／ブロック数である。
【００７８】
最後の演算器まで処理ブロックが割り当てられたとき、処理ブロックがまだ残っていた場合は、１ブロックずつ各演算器に割り当てる。残っているブロック数が演算器の数よりも多い場合は、上述の負荷分散処理を繰り返してもよい。
【００７９】
演算装置２０２は、ステップＳ５０３で割り当てられた処理ブロックの座標を求める（ステップＳ５０４）。
【００８０】
ステップＳ５０４では、具体的には、処理ブロックの端点［ｓｔ_ｘ，ｓｔ_ｙ］、［ｅｎｄ_ｘ，ｅｎｄ_ｙ］を算出する。例えば、処理開始座標と終了座標は、それぞれ、
【００８１】
［ｓｔ_ｘ，ｓｔ_ｙ］＝［０，ｓｔ_ｂ×ｙｂ］
［ｅｎｄ_ｘ，ｅｎｄ_ｙ］＝［０，ｅｎｄ_ｂ×ｙｂ］
【００８２】
のように求められる。以上より、処理開始座標と処理終了座標が決定される。
【００８３】
図８の負荷分散処理において、演算器の割り当て（ステップＳ２０３；ステップＳ５０１〜ステップＳ５０４）までの処理が終了すると、図７の分割画像処理へ移行する（ステップＳ１０３）。
【００８４】
ステップＳ１０３の分割画像処理では、各演算器はステップＳ５０４で決定された処理開始座標から処理終了座標の画素に対し、逆投影処理を行う。逆投影処理によって各画素の値が求められ画像が生成される。
【００８５】
演算装置２０２は表示装置２１１に画像を表示し、一連の逆投影処理を終了する（ステップＳ１０４）。
【００８６】
以上説明したように、処理領域である画像領域に投影データを投影する逆投影処理において、並列処理で使用する各演算器にかかる負荷量を均等に割り当てる。これにより、各演算器で処理に要する時間が均等となり、高速な画像処理を行うことが可能となる。
【００８７】
なお、第１の実施の形態の処理は、処理領域の分割数（ブロック数）を演算器の数よりも多く設定した場合に有効である。逆投影処理では処理領域は画像であるが、大きな単位の処理領域を固定して割り当てるのではなく、本発明では１枚の画像を小さな複数ブロックに分割して柔軟に演算器を割り当てる。つまり、全ての演算器で処理領域を同じ大きさにするのではなく、演算器毎に柔軟に処理領域のサイズを変えられる。これにより、負荷量が均等になるようにバランスよく演算器の割り当てを行うことが可能である。また、処理領域の分割の仕方は任意であり、図１０の例に限定されない。
【００８８】
［第２の実施の形態］
本発明は、順投影処理にも適用できる。順投影処理は検出器領域（投影データ領域）を処理領域として、画像データから各検出素子の投影データを生成する処理である。図１６に示すように複数の画像（断層像）ｉ１〜ｉ７が作成されている場合、Ｘ線管１０２（Ｘ線焦点）とＸ線検出器１０３の各検出素子ｓ１，ｓ２，ｓ３，…とを結ぶ線が画像ｉ１，ｉ２，ｉ３，…と交差する数は、画像のスライス位置によって異なる。例えば、検出素子ｓ１は画像ｉ３，ｉ４，ｉ５と交差する。また、検出素子ｓ２は画像ｉ１，ｉ２，ｉ３，ｉ４と交差する。また、検出素子ｓ３は画像ｉ１，ｉ２，ｉ３と交差する。つまりＸ線管１０２からの中心位置に近い素子程、使用画素数が少なく、遠いほど使用画素数が多い。そして、検出素子位置がＸ線管１０２（Ｘ線焦点）から所定距離以上離れると画像が存在しないため、使用画素数は少なくなる。つまり、画像データから投影データを生成する順投影処理においても、１検出素子の投影データを生成するために使用するデータ量は均等ではなく素子位置によって異なる。
【００８９】
そのため、順投影処理においても第１の実施の形態（逆投影処理）と同様に、演算器の計算量（素子数）と使用するデータ量（画素数）とに基づいて演算器の負荷バランスが均等となるように演算器を分配すれば、効率よく高速に処理を行うことが可能となる。以下、順投影処理における負荷分散処理について説明する。
【００９０】
まず図１７を参照して、順投影処理全体の流れを説明する。
順投影処理において演算装置２０２は投影データを生成するために使用するデータである画像データを取得し（ステップＳ６０１）、負荷分散処理を実行する（ステップＳ６０２）。負荷分散処理では、複数の演算器の負荷バランスが均等となるように、各演算器の処理領域（検出素子）を割り当てる。
【００９１】
ステップＳ６０２で求められた割り当てに従い、演算装置２０２は分割データ処理を実施する（ステップＳ６０３）。分割データ処理では、全演算器を用いて処理領域を順投影処理する。すなわち、画像データを使用して順投影処理を行って各素子での投影値を算出し、投影データを生成する。演算装置２０２は、ステップＳ６０３で生成された投影データを記憶装置２１３に出力（保存）する（ステップＳ６０４）。
【００９２】
ステップＳ６０２の負荷分散処理は、第１の実施の形態と同様の手順で行われる。すなわち、図１８に示すように、負荷分散処理において演算装置２０２は、まず処理領域である検出器領域を複数ブロックに分割し（ステップＳ７０１）、分割したブロックの処理に使用するデータ量（透過画素数）を算出する（ステップＳ７０２）。そして、ステップＳ７０２で算出した使用データ量に基づいて各ブロックの負荷量を算出し（ステップＳ７０３）、負荷量が均等になるように各ブロックに割り当てる演算器数を求め、求めた演算器数だけ各ブロックに演算器を割り当てる（ステップＳ７０４）。
【００９３】
ステップＳ７０１の処理領域の分割ステップでは、演算装置２０２は、記憶装置２１３から、例えば検出器の素子サイズCh×Sl、演算器数ｔ、ブロックサイズCh×１画素を取得する。そして、以下の式（１１）から処理領域の分割数Ｎを算出する。
【００９４】
【数５】
2017124081.tif 000007
【００９５】
次に、ステップＳ７０２の各ブロックの使用データ量の算出ステップでは、演算装置２０２は図１９に示す手順で使用データ量を算出する。
【００９６】
まず演算装置２０２は、ブロックの端点の座標を算出する（ステップＳ８０１）。ステップＳ８０１の処理において演算装置２０２は、図２０のように処理領域を各ブロックＲｄ１，Ｒｄ２，…ＲｄＮに分割し、各ブロックの端点座標（Ｒｄ１１，Ｒｄ１２，・・・）を算出する。順投影の場合、図２１のように、ｃｈ位置による使用データ量（透過画像）の変化は小さいと仮定し、各ブロックの端点座標を、各ブロックの代表端点としてそれぞれ１点ずつＲｄ１［０，ｓｌ１］、Ｒｄ２［０，ｓｌ２］…ＲｄＮ［０，ｓｌＮ］と近似的に設定できる。
【００９７】
次に演算装置２０２は、各ブロックの端点に対応する画像上の位置（透過座標）を算出し（ステップＳ８０２）、算出した透過座標が画像上にあるか否かの範囲判定を行う（ステップＳ８０３）。算出した透過座標が画像上にある場合は（ステップＳ８０３；Ｙｅｓ）、透過画素数として積算する（ステップＳ８０４）。ステップＳ８０２で算出した透過座標が画像上にない場合は（ステップＳ８０３；Ｎｏ）、透過画素数を加算しない。
【００９８】
ステップＳ８０２の透過座標の算出ステップでは、演算装置２０２は、Ｘ線管１０２から該当素子までのｚ軸方向の長さＬ、画像間隔ｐ、該当素子からＸ線管１０２方向に向かって最初に透過する画像位置までの距離ｌ、Ｘ線管１０２からＸ線管１０２直下の素子までの長さＤを用いて、該当素子の最初の透過座標（１枚目に透過する画像上の座標）Ｉ１［ｙ，ｚ］を求める。
具体的には、式（１２）のように算出できる。
【００９９】
【数６】
2017124081.tif 000008
【０１００】
それ以降（ｎ枚目の画像の透過座標）の透過座標Ｉｎ［ｙ，ｚ］は、式（１３）のように算出できる。
【０１０１】
【数７】
2017124081.tif 000009
【０１０２】
ステップＳ８０２において透過座標が算出されると、演算装置２０２は算出した透過座標が画像上にあるかどうかを判定する（ステップＳ８０３）。ステップＳ８０３の判定では、演算装置２０２は、Ｘ線管位置（Ｘ線焦点位置）から最も近い画像のｚ座標ｚ_ｍｉｎ、画像の下端ｙ_ｍｉｎ、画像の上端ｙ_ｍａｘを用いて、以下の式（１４）に示す条件を満たしていれば、透過画素数を積算する（透過画素数＝透過画素数＋１）。
【０１０３】
【数８】
2017124081.tif 000010
【０１０４】
以上のように各ブロックの端点の透過画素数が算出できる。
各端点の透過画素数は、Ｒｄ１［透過画素数１］、Ｒｄ２［透過画素数２］、…ＲｄＮ［透過画素数Ｎ］のように求めることができる。
【０１０５】
各ブロックの端点の透過画素数が算出されると、次に演算装置２０２はブロック内の使用データ量を求める（ステップＳ８０５）。
【０１０６】
ｎ番目ブロック内の使用データ量は、ｎ番目ブロックの端点の透過画素数の値を抽出し、以下の式（１５）から求められる。
【０１０７】
使用データ量ｎ＝Ｒｄｎ［透過画素数］×Ｃｈ  ・・・（１５）
【０１０８】
各ブロックの使用データ量が求められると、演算装置２０２は図１８のステップＳ７０３の処理を行う。演算装置２０２は負荷量を算出する（図１８のステップＳ７０３）。
【０１０９】
ステップＳ７０３の負荷量の算出処理は、第１の実施の形態と同様に、演算装置２０２は各ブロックの負荷量を算出する。単位処理領域（ブロック）の処理速度に対する単位使用データを転送する速度との速度比率係数αを用いて、上述の式（６）のようにあらわすことができる。
【０１１０】
負荷量＝処理領域＋α×使用データ量  ・・・（６）
【０１１１】
上述したように負荷量が算出されると、演算装置２０２は算出した負荷量に基づいて演算器に処理ブロックを割り当てる（図１８のステップＳ７０４）。
【０１１２】
演算器の割り当てステップは、第１の実施の形態と同様である。具体的には、図１５のフローチャートに示すように、演算装置２０２は、まず平均負荷量を算出する（ステップＳ５０１）。次に、演算装置２０２は、最初の処理ブロックＢ１から各ブロックの負荷量を加算していく（ステップＳ５０２）。
ステップＳ５０２で求めた負荷量（式（９）の積算値）が平均負荷量に達した場合、処理開始ブロックｓｔ_ｂからそのブロックｅｎｄ_ｂまでを１つの演算器の処理領域とする（ステップＳ５０３）。これを繰り返し、各演算器の開始ブロックと終了ブロックを求める。
【０１１３】
演算装置２０２は、ステップＳ５０３で割り当てられた処理ブロックの座標を求める（ステップＳ５０４）。
【０１１４】
演算器の割り当て（ステップＳ７０４）までの処理が終了すると負荷分散処理を終了し、演算装置２０２は次に図１７の分割データ処理へ移行する（ステップＳ６０３）。
【０１１５】
ステップＳ６０３の分割データ処理では、各演算器は決定された処理開始素子から処理終了素子に対し順投影処理を行う。分割データ処理により投影データが生成されると、演算装置２０２は生成した投影データを記憶装置２１３等に記憶し、一連のデータ処理を終了する（ステップＳ６０４）。
【０１１６】
以上説明したように、処理領域である検出器領域に透過画素の値を積算して各検出素子の値を求める順投影処理のように、素子位置によって使用データ量が異なる処理であっても、各演算器の負荷量が均等となるように処理ブロックを割り当てることにより、効率よくデータ処理を行うことができる。これにより、高速な画像処理を提供することができる。
【０１１７】
［第３の実施の形態］
第１及び第２の実施の形態では、処理ブロック数（処理領域の分割数）を演算器の数より多くした場合における演算器の割り当てについて説明した。第３の実施の形態では、処理ブロック数よりも演算器の数の方が多い場合における演算器の割り当てについて説明する。処理ブロック数よりも演算器の数の方が多い場合とは、例えば、処理ブロックサイズが画像単位となるように作られた装置のように、１つの演算器が複数の画像の処理を跨いで行えない場合等である。
【０１１８】
以下、図２２を参照して、第３の実施の形態における演算器の割り当て処理について説明する。なお、演算器の割り当て処理以外の各処理（データ取得、処理領域分割処理、使用データ算出処理、負荷量算出処理、演算処理等）は、第１または第２の実施の形態と同様に行われるものとする。
【０１１９】
第３の実施の形態において、演算装置２０２（演算器割り当て部４５）は、例えば図２２のフローチャートに示すように、各ブロックの負荷量の比率を算出し（ステップＳ９０１）、算出した比率に基づいて処理領域に割り当てる演算器数を決定する（ステップＳ９０２）。
【０１２０】
ステップＳ９０１において、演算装置２０２は、全ブロックの総負荷量を算出する。総負荷量は、各ブロックの負荷量の和であり、以下の式（１６）から算出できる。
【０１２１】
総負荷量＝ブロックＢ１の負荷量＋ブロックＢ２の負荷量＋…＋ブロックＢＮの負荷量    ・・・（１６）
【０１２２】
次に、演算装置２０２は、式（１７）に示すように各ブロックの負荷量の比率である負荷比率を求める。
【０１２３】
負荷比率＝［ブロックＢ１の負荷量／総負荷量、ブロックＢ２の負荷量／総負荷量、・・・、ブロックＢＮの負荷量／総負荷量］  ・・・（１７）
【０１２４】
そして、演算装置２０２は、各ブロックに割り当てる演算器数を求める。以下の式（１８）から各ブロックに割り当てる演算器数を決定する。
【０１２５】
ブロックＢｎの演算器数＝総演算器数×ブロックＢｎ負荷量／総負荷量  ・・・（１８）
【０１２６】
演算装置２０２は、全てのブロックに対して、割り当てる演算器数を決定する。ここで、演算器数が小数で求められた場合は、小数点以下は切り捨てとし、余った演算器分は切り捨てた小数点以下の値の大きさに応じて再度処理領域に分配してもよい。ただし、演算器数が１未満になったときは演算器数１とする。
【０１２７】
以上説明したように、第３の実施の形態では、各ブロックの負荷比率に応じて各ブロックに割り当てる演算器数を算出する。そのため、処理ブロックサイズが画像単位のように大きく、処理ブロック数よりも演算器の数が多い場合でも、演算器の負荷を可能な限り均等に割り当てることが可能となる。これにより、高速なデータ処理を行うことが可能となる。
【０１２８】
［第４の実施の形態］
第１または第２の実施の形態において、負荷量算出部４４（図８のステップＳ２０３、図１８のステップＳ７０３）は、各処理領域の使用データ量の変化を予め関数（使用データ量特性ｆ（ｚ））として用意しておき、この使用データ量特性ｆ（ｚ）に基づき、負荷量を算出してもよい。
【０１２９】
例えば、コンベンショナルスキャン（ノーマルスキャン、ステップアンドシュートスキャンともいう）では、図５に示すように画像位置（ｚ位置）に応じて使用データ量が変化する。このような使用データ量とｚ位置との関係を示す近似曲線を、例えば使用データ量特性ｆ（ｚ）として予め用意しておき、演算器負荷量の算出に使用する。
【０１３０】
第１の実施の形態の負荷量算出ステップ（図８のステップＳ２０３）または第２の実施の形態の負荷量算出ステップ（図１８のステップＳ７０３）の場合、演算装置２０２は、以下の式（１９）、（２０）を用いて負荷量を算出することができる。
【０１３１】
使用データ量＝ｆ（ｚ）        ・・・（１９）
負荷量＝処理領域＋α×ｆ（ｚ）    ・・・（２０）
【０１３２】
以上説明したように、第４の実施の形態では、各ブロックの負荷量を関数を用いて容易に算出することができる。そのため負荷分散処理の演算時間を短縮でき、より効率の良いデータ処理を行えるようになる。
【０１３３】
［第５の実施の形態］
ハードウェアに応じて高速なデータ読み出しが可能なサイズは決まっている。例えば、読み出したいデータサイズが大きければ、ＤＭＡ転送を複数回行う必要があったり、転送速度の遅いキャッシュの階層を参照したりすることが考えられる。第５の実施の形態では、データサイズによって読み出し速度が変化するハードウェアを用いる場合への適用について説明する。
【０１３４】
高速転送が可能なデータサイズ（ｄａｔａ_ｓｉｚｅ）に関する閾値をＴｈ１、Ｔｈ２、データサイズに応じた速度比率係数をｃ０、ｃ１とする。これらの値は予め記憶装置２１３に記憶されているものとする。
そして例えば、上述の式（６）や式（２０）に含まれる速度比率係数αを、以下の条件（式（２１））に従って変化させる。
【０１３５】
【数９】
2017124081.tif 000011
2017124081.tif 000012
【０１３６】
このように速度比率係数αをデータサイズ（ｄａｔａ_ｓｉｚｅ）に応じて変化させることで、演算器の負荷量の算出精度を向上させることができる。これにより、演算器の負荷の均等化の精度を向上でき、画像処理を高速化することができる。
【０１３７】
以上説明したように、複数の演算器を備えるＸ線ＣＴ装置１（演算装置２０２）において、演算装置２０２は負荷分散処理を実行する。負荷分散処理において、演算装置２０２は処理領域を複数のブロックに分割し、分割された各ブロックの処理に使用するデータ量を算出する。更に演算装置２０２は各ブロックの負荷量を使用データ量に基づいて算出し、各演算器で負荷量が均等になるように各演算器に処理領域（処理するブロック）を割り当てる。これにより各演算器にかかる負荷量が均等となり、効率よくデータ処理を行うことが可能となる。
【０１３８】
なお、上述の実施形態では、逆投影処理及び順投影処理についてそれぞれ説明したが、本発明は、逆投影と順投影とを繰り返して画像を生成する逐次近似再構成処理にも適用可能である。
【０１３９】
［実施例］
逆投影処理を例として、具体的な数値を当てはめて負荷分散処理の結果を示す。以下の説明では、処理領域の分割（ステップＳ２０１）、使用データ量の算出（ステップＳ２０２）、負荷量の算出（ステップＳ２０３）に関しては図８のフローチャートの手順に従って説明し、演算器の割り当て処理（ステップＳ２０４）については第３の実施の形態（図２２）の処理を適用する。
【０１４０】
＜ステップＳ２０１（処理領域（画像）の分割）＞
演算装置２０２は、記憶装置２１３から画像サイズ「５１２×５１２」、画像再構成位置「１、３」、作成枚数「２」、ブロックサイズ「５１２×５１２［画素］」、演算器数「２０」を取得する。
分割数（ブロック数）Ｎは、上述の式（１）から求められる。
【０１４１】
Ｎ＝５１２×５１２×２／（５１２×５１２）
＝２
【０１４２】
＜ステップＳ２０２；各ブロックの使用データ量の算出＞
演算装置２０２は分割領域端点の座標を算出する（図９のステップＳ３０１）。まず演算装置２０２は、分割した各領域の座標を求める。
１番目のブロックＢ１の端点の座標は、例えば以下のようになる。
Ｂ１１［１，２５６，１］
Ｂ１２［５１２，２５６，１］
Ｂ１３［１，−２５６，１］
Ｂ１４［５１２，−２５６，１］。
【０１４３】
また２番目のブロックＢ２の端点の座標は、例えば以下のようになる。
Ｂ２１［１，２５６，３］
Ｂ２２［５１２，２５６，３］
Ｂ２３［１，−２５６，３］
Ｂ２４［５１２，−２５６，３］。
【０１４４】
次に、演算装置２０２は使用データの範囲を算出する（図９のステップＳ３０２）。
演算装置２０２は、各ブロックの端点で投影データの座標を算出する。
幾何学系にも依存するが、例えば並行ビームの場合、図１２、図１３に示すように使用データを算出する。
【０１４５】
まず演算装置２０２は、使用ｃｈ座標を算出する（図１１のステップＳ４０１）。
画素のｘ座標、画素サイズから素子サイズ（ｃｈ）へのスケーリング係数ｋ１（＝２．０）を用いて、
ブロックＢ１の使用ｃｈ＝最大ｃｈ−最小ｃｈ
＝５１２×２−１×２
＝１０２２
【０１４６】
また演算装置２０２は、使用ｓｌｉｃｅ座標を算出する（図１１のステップＳ４０２）。
画像の上端点のｙ＝２５６、ｚ座標＝１、画像の下端点のｙ＝−２５６、ｚ座標＝１、Ｘ線管１０２から画像中心までの距離ｄ＝５００、画素位置から素子サイズ（ｓｌｉｃｅ）へのスケーリング係数ｋ２＝４．０とすると、上述の式（３）（ｓｌｉｃｅ＝ｚ×ｄ／（ｄ−ｙ）×ｋ２）から、
ブロックＢ１の使用ｓｌｉｃｅ
＝最大ｓｌｉｅ−最小ｓｌｉｃｅ
＝｛１×５００／（５００−２５６）−１×５００／（５００＋２５６）｝
＝６（値切り上げ）
【０１４７】
以上のように、投影データのｃｈ、ｓｌｉｃｅの使用数が算出できる。
【０１４８】
次に、演算装置２０２は使用データ量を算出する（図９のステップＳ３０３）。
ブロック内の使用データ量は、上述したように式（５）で表される。
使用データ量＝（ｃｈ最大値−ｃｈ最小値）×（ｓｌｉｃｅ最大値−ｓｌｉｃｅ最小値）・・・・（５）
これにより、
Ｂ１の使用データ量＝１０２２×６＝６１３２
が求められる。
【０１４９】
＜ステップＳ２０３；各ブロックの負荷量の算出＞
次に演算装置２０２は各ブロックの負荷量を算出する。
単位処理領域の処理速度に対する単位使用データを転送する速度との速度比率係数α＝５０とすると、上述の式（６）（負荷量＝処理領域＋α×使用データ量）から、
ブロックＢ１の負荷量＝５１２×５１２＋５０×６１３２
＝５６８７４４
が求められる。
【０１５０】
以上の計算をブロックＢ２に対しても同様に行うと、
Ｂ２の負荷量＝１１３０８４４
が求まる。
【０１５１】
＜ステップＳ２０４；演算器の割り当て＞
演算器の割り当て処理は、第３の実施の形態の処理を行うものとする（図１７のステップＳ８０１、ステップＳ８０２）。
まず演算装置２０２は、各ブロックの負荷比率を算出する（ステップＳ８０１）。
全ブロックの総負荷量は、
総負荷量＝５６８７４４＋１１３０８４４＝１６９９５８８
である。
負荷比率＝［（ブロックＢ１：５６８７４４／１６９９５８８＝）０．３３５、（ブロックＢ２：１１３０８４４／１６９９５８８＝）０．６６５］
【０１５２】
演算装置２０２は、負荷比率に従って各ブロックに割り当てる演算器数を決定する（ステップＳ８０２）。
ブロックＢｎの演算器数＝総演算器数×負荷量ｎ／総負荷量
であるので、
ブロックＢ１の演算器数は、２０×０．３３５＝６（切り下げ）
ブロックＢ２の演算器数は、２０×０．６６５＝１３（切り下げ）
この場合、演算器１つ当たりの負荷量は、８６９８８（１１３０８４４／１３）〜９４７９０．６７（５６８７４４／６）となる。
【０１５３】
一方、比較例として従来のように、使用データ量を用いずに負荷量を算出し、演算器を各画像に均等に分配した場合は、
ブロックＢ１の演算器数＝２０×０．５＝１０
ブロックＢ２の演算器数＝２０×０．５＝１０
この場合の演算器１つ当たりの負荷量は、５６８７４．４（５６８７４４／１０）〜１１３０８４．４（１１３０８４４／１０）となる。
【０１５４】
画像処理のトータルの処理時間は最も負荷の大きい演算器の処理時間となる。
従来手法と本発明の手法での処理時間とを比較すると、
１１３０８４．４（従来手法での最大負荷量）／９４７９０．６７（本発明での最大負荷量）＝１．１９
である。
【０１５５】
本発明の手法を用いることにより、従来手法と比較して１９％程度、処理速度を向上できる。
【０１５６】
以上、本発明の好適な実施形態について説明したが、本発明は、上述の実施形態に限定されるものではない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１５７】
１・・・・・・・・・・・・・・Ｘ線ＣＴ装置
３・・・・・・・・・・・・・・被写体
１０・・・・・・・・・・・・・スキャナ
２０・・・・・・・・・・・・・操作ユニット
１００・・・・・・・・・・・・ガントリ
１０１・・・・・・・・・・・・寝台装置
１０２・・・・・・・・・・・・Ｘ線管
１０３・・・・・・・・・・・・Ｘ線検出器
１０４・・・・・・・・・・・・コリメータ
１０５・・・・・・・・・・・・高電圧発生装置
１０６・・・・・・・・・・・・データ収集装置
１０７・・・・・・・・・・・・ガントリ駆動装置
２００・・・・・・・・・・・・中央制御装置
２０１・・・・・・・・・・・・入出力装置
２０２・・・・・・・・・・・・演算装置
２１１・・・・・・・・・・・・表示装置
２１２・・・・・・・・・・・・入力装置
２１３・・・・・・・・・・・・記憶装置
２２１・・・・・・・・・・・・再構成処理装置
２２２・・・・・・・・・・・・画像処理装置
４１・・・・・・・・・・・・・データ取得部
４２・・・・・・・・・・・・・処理領域分割部
４３・・・・・・・・・・・・・使用データ量算出部
４４・・・・・・・・・・・・・負荷量算出部
４５・・・・・・・・・・・・・演算器割り当て部
４６・・・・・・・・・・・・・演算処理部
ｉ１，ｉ２，…・・・・・・・・画像
ｓ１，ｓ２，…・・・・・・・・検出素子
Ｄ１，Ｄ２，…・・・・・・・・投影データ上の範囲
Ｂ１，Ｂ２，…・・・・・・・・ブロック
【図１】
2017124081.tif 000013
【図２】
2017124081.tif 000014
【図３】
2017124081.tif 000015
【図４】
2017124081.tif 000016
【図５】
2017124081.tif 000017
【図６】
2017124081.tif 000018
【図７】
2017124081.tif 000019
【図８】
2017124081.tif 000020
【図９】
2017124081.tif 000021
【図１０】
2017124081.tif 000022
【図１１】
2017124081.tif 000023
【図１２】
2017124081.tif 000024
【図１３】
2017124081.tif 000025
【図１４】
2017124081.tif 000026
【図１５】
2017124081.tif 000027
【図１６】
2017124081.tif 000028
【図１７】
2017124081.tif 000029
【図１８】
2017124081.tif 000030
【図１９】
2017124081.tif 000031
【図２０】
2017124081.tif 000032
【図２１】
2017124081.tif 000033
【図２２】
2017124081.tif 000034