(57)【要約】【課題】変換対象の画像の入力から２次元離散フーリエ変換の実行までの時間を短縮することができる画像処理装置を提供することを課題とする。【解決手段】画像処理装置は、被検査物に照射される光を２次元に走査するように制御する走査制御部と、前記照射された光が前記被検査物で反射した光に基づき生成された２次元画像に対して２次元離散フーリエ変換する画像処理部とを有し、前記走査制御部は、前記２次元画像上に並ぶラインの順番とは異なるラインの順番で前記被検査物を走査するように制御し、前記画像処理部は、前記走査制御部が走査を制御するラインの順番で前記２次元画像を入力し、前記入力したラインの順番で前記２次元画像に対して２次元離散フーリエ変換する。【選択図】図８
2017086683.tif 000002
【特許請求の範囲】
【請求項１】
被検査物に照射される光を２次元に走査するように制御する走査制御部と、
前記照射された光が前記被検査物で反射した光に基づき生成された２次元画像に対して２次元離散フーリエ変換する画像処理部とを有し、
前記走査制御部は、前記２次元画像上に並ぶラインの順番とは異なるラインの順番で前記被検査物を走査するように制御し、
前記画像処理部は、前記走査制御部が走査を制御するラインの順番で前記２次元画像を入力し、前記入力したラインの順番で前記２次元画像に対して２次元離散フーリエ変換することを特徴とする画像処理装置。
【請求項２】
前記画像処理部は、前記２次元離散フーリエ変換の結果を基に前記被検査物の移動量を演算し、
前記走査制御部は、前記被検査物の移動量に応じて、前記被検査物の走査領域をずらすように制御することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記画像処理部は、
前記走査制御部が走査を制御するラインの順番で、前記２次元画像の行毎の離散フーリエ変換を行い、
前記２次元画像の行毎の離散フーリエ変換の結果を基に、前記２次元画像の列毎の離散フーリエ変換を行うことを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記画像処理部は、
前記走査制御部が走査を制御するラインの順番で、前記２次元画像の行毎の離散フーリエ変換を行い、
前記２次元画像の行毎の離散フーリエ変換の結果を基に、前記２次元画像の列毎の第１のステージの離散フーリエ変換を行い、
前記２次元画像の列毎の第１のステージの離散フーリエ変換の結果を基に、前記２次元画像の列毎の第２のステージの離散フーリエ変換を行い、
前記２次元画像の列毎の第２のステージの離散フーリエ変換の結果を基に、前記２次元画像の列毎の第３のステージの離散フーリエ変換を行うことを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記画像処理部は、
前記２次元画像の行毎の離散フーリエ変換を行う第１のフーリエ変換部と、
時分割で前記２次元画像の列毎の第１及び第２のステージの離散フーリエ変換を行う第２のフーリエ変換部と、
前記２次元画像の列毎の第３のステージの離散フーリエ変換を行う第３のフーリエ変換部とを有することを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記走査制御部は、前記被検査物を分割した領域毎に光が２次元に走査するように制御し、
前記画像処理部は、前記２次元画像に対して、前記分割された領域毎に２次元離散フーリエ変換を行うことを特徴とする請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
前記走査制御部は、撮影条件に応じて、走査するラインの順番を変えるように制御することを特徴とする請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記走査制御部は、撮影条件に応じて、最大飛び越し量が違うラインの順番で走査するように制御することを特徴とする請求項１〜７のいずれか１項に記載の画像処理装置。
【請求項９】
前記走査制御部は、ｊが２のＭ乗（Ｍは自然数）である場合に、Ｍの小さい順にｊの倍数でないライン番号のラインを優先した順番で走査するように制御することを特徴とする請求項１〜８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記走査制御部は、１ライン目、５ライン目、３ライン目、７ライン目、２ライン目、６ライン目、４ライン目、８ライン目の順番、１ライン目、３ライン目、５ライン目、７ライン目、６ライン目、２ライン目、４ライン目、８ライン目の順番、及び１ライン目、３ライン目、２ライン目、５ライン目、７ライン目、４ライン目、６ライン目、８ライン目の順番のうちのいずれかの順番で走査するように制御することを特徴とする請求項１〜８のいずれか１項に記載の画像処理装置。
【請求項１１】
走査制御部により、被検査物に照射される光を２次元に走査するように制御する走査制御ステップと、
画像処理部により、前記照射された光が前記被検査物で反射した光に基づき生成された２次元画像に対して２次元離散フーリエ変換する画像処理ステップとを有し、
前記走査制御ステップでは、前記２次元画像上に並ぶラインの順番とは異なるラインの順番で前記被検査物を走査するように制御し、
前記画像処理ステップでは、前記走査制御ステップで走査を制御するラインの順番で前記２次元画像を入力し、前記入力したラインの順番で前記２次元画像に対して２次元離散フーリエ変換することを特徴とする画像処理方法。
【請求項１２】
被検査物に照射される光を２次元に走査するように制御する走査制御ステップと、
前記照射された光が前記被検査物で反射した光に基づき生成された２次元画像に対して２次元離散フーリエ変換する画像処理ステップとをコンピュータに実行させるためのプログラムであって、
前記走査制御ステップでは、前記２次元画像上に並ぶラインの順番とは異なるラインの順番で前記被検査物を走査するように制御し、
前記画像処理ステップでは、前記走査制御ステップで走査を制御するラインの順番で前記２次元画像を入力し、前記入力したラインの順番で前記２次元画像に対して２次元離散フーリエ変換することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、走査型レーザ検眼鏡（Scanning Laser Ophthalmoscope）や光干渉断層計（Optical Coherence Tomography）のように、スキャン対象に対してレーザ光を２次元状に走査する装置が知られている。その装置は、レーザ光のスキャン対象からの反射光の光量などを連続的に測定することにより、画像を生成する。眼底を撮影する場合、眼球の動き（固視微動）により好ましくない画像が生成されることがある。例えば、画像に歪みが生じたり、複数フレームを続けて撮影した場合に撮影場所がずれていくことがある。固視微動の影響を低減するため、随時眼球の動きを計測し、その分だけレーザ光の走査領域（もしくは撮影されたデジタル画像）をずらすことで歪みを防止する技術（眼底トラッキング）が知られている（例えば非特許文献１参照）。非特許文献１によれば、画像の短冊領域（strip）毎に参照画像との相互相関（Cross Correlation）を演算することで移動量を求め、これを基にＴｉｐ／Ｔｉｌｔミラーを制御している。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Closed-loop optical stabilization and digital image registration in adaptive optics scanning light ophthalmoscopy, Biomedical Optics Express Vol. 5, Issue 9, pp. 3174-3191 (2014)
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、短冊領域が撮影されてからミラーの制御が終わるまでの経過時間をトラッキング遅延時間とする。トラッキング遅延時間が長いと、遅延時間中にも眼球は動き続けるためトラッキングの誤差が大きくなり、歪みを除去しきれない。また、撮影画像と参照画像との重複面積が小さくなるため、計測精度の低下に繋がり得る。以上の理由から、トラッキング遅延時間は短いほど好ましい。また、演算資源に制限がなければ並列演算による遅延時間短縮も可能だが、実際はコストなどの問題により並列化による遅延時間短縮には限りがある。
【０００５】
本発明の目的は、変換対象の画像の入力から２次元離散フーリエ変換の実行までの時間を短縮することができる画像処理装置、画像処理方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、被検査物に照射される光を２次元に走査するように制御する走査制御部と、前記照射された光が前記被検査物で反射した光に基づき生成された２次元画像に対して２次元離散フーリエ変換する画像処理部とを有し、前記走査制御部は、前記２次元画像上に並ぶラインの順番とは異なるラインの順番で前記被検査物を走査するように制御し、前記画像処理部は、前記走査制御部が走査を制御するラインの順番で前記２次元画像を入力し、前記入力したラインの順番で前記２次元画像に対して２次元離散フーリエ変換することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、変換対象の画像の入力から２次元離散フーリエ変換の実行までの時間を短縮することができる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態による画像処理装置の構成例を示す図である。
【図２】第１の実施形態による短冊領域を説明する図である。
【図３】第１の実施形態によるレーザ光の走査例を説明する図である。
【図４】第１の実施形態による短冊領域の移動量を説明する図である。
【図５】第１の実施形態による移動量計測部の構成例を示す図である。
【図６】第１の実施形態によるＦＦＴ処理部の構成例を示す図である。
【図７】第１の実施形態によるデータの依存性を説明する図である。
【図８】第１の実施形態によるタイミングチャートを示す図である。
【図９】第１の実施形態による一時記憶部の動作を説明する図である。
【図１０】第２の実施形態によるレーザ光の走査例を説明する図である。
【図１１】第２の実施形態によるタイミングチャートを示す図である。
【図１２】レーザ光の走査例を説明する図である。
【発明を実施するための形態】
【０００９】
（第１の実施形態）
図１は、本発明の第１の実施形態による画像処理装置１００の構成例を示す図である。画像処理装置１００は、画像取得部１１０、画像処理部１２０、記憶部１３０、制御部１４０及びミラー制御部１５０を有する。画像処理部１２０は、移動量計測部１２１及び幾何変換処理部１２２を有する。次に、画像処理装置１００の画像処理方法を説明する。光源（不図示）から出射されたレーザ光は、共振ミラー１０２及びＴｉｐ／Ｔｉｌｔミラー（ＴＴＭ）１０３を介して、眼球（被検査物）に照射される。共振ミラー１０２及びＴＴＭ１０３は、眼球に対してレーザ光を２次元状に走査する。共振ミラー１０２は、主走査方向にレーザ光を走査する。ＴＴＭ１０３は、副走査方向にレーザ光を走査する。レーザ光は、眼球の眼底で反射する。ミラー制御部１５０は、走査制御部であり、眼球に照射される光を２次元に走査するように制御する。フォトダイオード１０１は、光電変換を行う素子を有し、その眼底で反射した光に基づく画素データを生成する。
【００１０】
画像取得部１１０は、フォトダイオード１０１から画素データを順に取得して２次元画像を構成する。制御部１４０は、画像取得部１１０が構成した画像を記憶部１３０へ格納するか、又は画像処理部１２０へ出力する。画像処理部１２０は、その画像に対して画像処理を実行する。移動量計測部１２１は、画像の部分領域（後述の短冊領域）毎に眼底移動量計測処理を行うことにより、眼底移動量を計測する。制御部１４０は、移動量計測部１２１により計測された眼底移動量をミラー制御部１５０に出力する。記憶部１３０は、眼底移動量計測の基準として用いる参照画像を含む所定の画像や中間データなどを記憶する。制御部１４０は、各構成要素に対して動作を指示する。また、制御部１４０は、記憶部１３０に格納されている画像を外部機器（図示せず）へ出力する。ミラー制御部１５０は、眼底のトラッキングを実現するため、移動量計測部１２１が計測した眼底移動量を補償（走査領域をずらす）した上で、眼底の所定の領域をレーザ光が走査するように、共振ミラー１０２及びＴＴＭ１０３を制御する。すなわち、ミラー制御部１５０は、移動量計測部１２１により計測された眼底移動量に応じて、眼球の走査領域をずらすように制御する。この時、ミラー制御部１５０は、後で説明するように移動量計測部１２１でのデータ依存性を基にした走査を行う。
【００１１】
図２は、フォトダイオード１０１により生成される画素データにより構成された画像２００を示す図である。画像取得部１１０は、５１２×５１２画素のフレーム画像２００を生成し、１秒間に３０フレームの画像を生成する。移動量計測部１２１は、画像２００を８ライン毎に区切った６４個の短冊領域ＡＡ１〜ＡＡ６４に分割し、短冊領域ＡＡ１〜ＡＡ６４毎に眼底移動量計測処理を行う。６４個の短冊領域ＡＡ１〜ＡＡ６４の各々は、５１２×８画素のデータを有する。移動量計測部１２１は、各短冊領域ＡＡ１〜ＡＡ６４を順次、基準となる参照フレームの短冊領域と比較して眼底移動量を計測する。移動量計測部１２１は、この短冊領域の比較を１フレーム画像２００内で６４回行うことになる。ミラー制御部１５０は、眼底移動量が計測される度に補償するので、１フレーム画像２００の撮影中に６４回走査領域をずらすことになる。ここで、トラッキングを考慮しない時の画像２００の左上隅の座標を（Ｂｘ，Ｂｙ）とし、計測された眼底移動量を（Ｄｘ，Ｄｙ）とする。この時、実際の走査領域は、（Ｂｘ−Ｄｘ，Ｂｙ−Ｄｙ）〜（Ｂｘ−Ｄｘ＋５１１，Ｂｙ−Ｄｙ＋５１１）の矩形領域となる。眼底移動量（Ｄｘ，Ｄｙ）は、短冊領域ＡＡ１〜ＡＡ６４毎に計測されるため、上記の走査領域も随時変動していくことになる。なお、画像２００には眼底移動量計測に用いない領域があってもよく、例えば画像２００の中央部のみを眼底移動量計測に用いてもよい。
【００１２】
図３は、ミラー制御部１５０の動作を説明するための図である。ミラー制御部１５０は、レーザ光が眼底上の短冊領域ＡＡ１を２次元状に走査するように共振ミラー１０２及びＴＴＭ１０３を制御する。共振ミラー１０２は主走査方向のみに動作するが、ＴＴＭ１０３は２次元状に動作する。本実施形態では、主走査方向（左右方向）の走査（往復走査）に共振ミラー１０２を用い、副走査方向（上下方向）の走査にＴＴＭ１０３を用い、眼底移動量の補償にＴＴＭ１０３を用いる。副走査方向の走査は、一方向に１ラインずつ走査するのではなく、図３に示したパターンで走査する。具体的には、ミラー制御部１５０は、１ライン目、５ライン目、３ライン目、７ライン目、２ライン目、６ライン目、４ライン目、８ライン目の順番で、短冊領域ＡＡ１を走査するように制御する。同様に、ミラー制御部１５０は、９ライン目、１３ライン目、１１ライン目、１５ライン目、１０ライン目、１４ライン目、１２ライン目、１６ライン目の順番で、短冊領域ＡＡ２を走査するように制御する。ミラー制御部１５０は、短冊領域ＡＡ３〜ＡＡ６４も上記と同様のラインの順番で走査を制御する。すなわち、ミラー制御部１５０は、分割した短冊領域ＡＡ１〜ＡＡ６４毎に、生成される２次元画像上に並ぶラインの順番とは異なる順番で眼球を走査するように制御する。ミラー制御部１５０がこのようにＴＴＭ１０３の走査を制御することで、画像取得部１１０は、フォトダイオード１０１から上記のラインの順番で画像２００を構成する画素データを取得することができる。後で説明するが、このラインの順番は、移動量計測部１２１が画像２００に対して眼底移動量計測処理する際に、演算に必要な順番と同様となっている。なお、図３では、トラッキングによる変動を図示していないが、移動量計測部１２１で眼底移動量（Ｄｘ，Ｄｙ）が算出される度にＴＴＭ１０３のパラメータを更新する。
【００１３】
画像処理部１２０は、移動量計測部１２１と幾何変換処理部１２２とを有する。幾何変換処理部１２２は、共振ミラー１０２の走査の振舞いに応じた走査補正処理や、眼底移動量に応じた補正処理などを行う。移動量計測部１２１は、画像取得部１１０から入力した現在撮影中の現フレームの短冊領域ＡＡ１〜ＡＡ６４と、記憶部１３０から読み出した参照フレームの短冊領域とを比較して、両者のシフト成分を眼底移動量として計測する。なお、参照フレームは、画像取得部１１０が過去に構成した１枚のフレームを固定的に用いてもよいし、直前に撮影したフレームを用いてもよい。例えば、図４（Ａ）に示す現フレームの短冊領域４００と参照フレームの短冊領域４１０が得られたとすると、図４（Ｂ）中の矢印で示した短冊領域４１０から短冊領域４００への移動ベクトルが補償すべき眼底移動量（Ｄｘ，Ｄｙ）となる。
【００１４】
図５は、移動量計測部１２１の構成例を示す図である。移動量計測部１２１は、２つの短冊領域４００及び４１０の相互相関（Cross Correlation）を演算し、そのピーク位置を求めることで、眼底移動量（Ｄｘ，Ｄｙ）を計測する。移動量計測部１２１は、高速フーリエ変換（ＦＦＴ）部５１０、畳み込み部５２０、逆高速フーリエ変換（ＩＦＦＴ）部５３０、及びピーク検出部５４０を有する。ＦＦＴ部５１０は、画像取得部１１０から入力した現フレーム画像（２次元画像）の短冊領域４００に対して２次元離散フーリエ変換することにより、座標空間から周波数空間へ変換し、畳み込み部５２０へ出力する。２次元離散フーリエ変換とは、行毎（５１２要素）の離散フーリエ変換（Ｘ−ＦＦＴ）を実行し、その後、Ｘ−ＦＦＴの結果を基に、列毎（８要素）の離散フーリエ変換（Ｙ−ＦＦＴ）を実行することを意味する。以下、２次元画像の行毎（ライン毎）の離散フーリエ変換を「Ｘ−ＦＦＴ」と呼び、２次元画像の列毎の離散フーリエ変換を「Ｙ−ＦＦＴ」と呼ぶ。参照フレーム画像の短冊領域４１０は、予め２次元離散フーリエ変換された後のデータが記憶部１３０へ格納されており、畳み込み部５２０は、その２次元離散フーリエ変換された参照フレーム画像の短冊領域４１０を入力する。畳み込み部５２０は、ＦＦＴ部５１０により２次元離散フーリエ変換された現フレーム画像の短冊領域４００と、記憶部１３０から入力した２次元離散フーリエ変換された参照フレーム画像の短冊領域４１０との乗算により畳み込み（Convolution）を行う。ＩＦＦＴ部５３０は、畳み込み部５２０の演算結果を２次元逆離散フーリエ変換することにより、周波数空間から座標空間へ戻し、ピーク検出部５４０へ出力する。ピーク検出部５４０は、ＩＦＦＴ部５３０のＩＦＦＴ後の画像の値が最大となる位置（ピーク位置）の座標を求め、これを眼底移動量（Ｄｘ，Ｄｙ）として出力する。ピーク検出部５４０は、補間などを用いて、ピーク位置をサブピクセル精度で計測する。なお、畳み込み部５２０は、畳み込みを演算する際に、位相成分のみを用いて位相限定相関を実現してもよい。以上のように、移動量計測部１２１は、ＦＦＴ部５１０の２次元離散フーリエ変換の結果を基に眼底の移動量（Ｄｘ，Ｄｙ）を演算する。なお、画像処理部１２０は、上記のように、ＦＦＴ部５１０の演算結果を基に、眼底の移動量（Ｄｘ，Ｄｙ）を演算する例の他、ＦＦＴ部５１０の演算結果を基に、周波数解析等の他の処理を行ってもよい。
【００１５】
図６は、図５のＦＦＴ部５１０の構成例を示す図である。ＦＦＴ部５１０は、Ｘ−ＦＦＴ部６１０、Ｙ−ＦＦＴ部６２０、Ｙ−ＦＦＴ部６３０、及び一時記憶部６４０を有する。まず、Ｘ−ＦＦＴ部６１０は、第１のフーリエ変換部であり、現フレーム画像の短冊領域４００のライン毎（行毎）にＸ方向の１次元離散フーリエ変換を実行する。前述したように、ミラー制御部１５０は、１ライン目、５ライン目、３ライン目、７ライン目、２ライン目、６ライン目、４ライン目、８ライン目の順番でレーザ光の走査を制御しているので、Ｘ−ＦＦＴ部６１０もこのライン順で処理する。Ｘ−ＦＦＴ部６１０の演算結果は、一時記憶部６４０へ順次格納される。なお、レーザ光の走査時に逆方向へ走査しているライン（図３で左方向に矢印が描かれているライン）は、画素データも逆順に得られるので、ＦＦＴ部５１０は、Ｘ−ＦＦＴ部６１０のＸ−ＦＦＴ後に複素共役を取るなどにより反転処理を行う。次に、Ｙ−ＦＦＴ部６２０及び６３０は、Ｘ−ＦＦＴ後のデータに対して、Ｙ−ＦＦＴ部６２０及び６３０の順番で、Ｙ方向の１次元離散フーリエ変換を行う。中間データは、一時記憶部６４０を介して入出力される。短冊領域は８ラインなので、Ｙ−ＦＦＴ部６２０及び６３０は、１回の１次元離散フーリエ変換を８画素（＝２の３乗）毎に実行する。基数２の離散フーリエ変換の場合、Ｙ−ＦＦＴ部６２０及び６３０は、３つのステージに分けて、１回の１次元離散フーリエ変換を実行する。Ｙ−ＦＦＴ部６２０は、第１のステージ及び第２のステージのバタフライ演算を時分割で実行し、Ｙ−ＦＦＴ部６２０は、第３のステージのバタフライ演算を実行する。すなわち、Ｙ−ＦＦＴ部６２０は、第２のフーリエ変換部であり、第１のステージ及び第２のステージのＹ−ＦＦＴを行う。Ｙ−ＦＦＴ部６３０は、第３のフーリエ変換部であり、第３のステージのＹ−ＦＦＴを行う。ここで、バタフライ演算とは、２つの複素数（Ｓ［ｋ］，Ｓ［ｋ＋Ｎ］）から２つの複素数（Ｔ［ｋ］，Ｔ［ｋ＋Ｎ］）を求める演算であり、次式で表される。
Ｔ［ｋ］＝Ｓ［ｋ］＋Ｗｋ×Ｓ［ｋ＋Ｎ］
Ｔ［ｋ＋Ｎ］＝Ｓ［ｋ］−Ｗｋ×Ｓ［ｋ＋Ｎ］
【００１６】
ここで、Ｗｋは、回転因子となるパラメータである。Ｎはステージ毎によって変わり、第１のステージではＮ＝４、第２のステージではＮ＝２、第３のステージではＮ＝１となる。すなわち、Ｙ−ＦＦＴの第１のステージでは、Ｎ＝４であるので、例えば、１ライン目と５ライン目のデータがセットで演算され、２ライン目と６ライン目のデータがセットで演算される。Ｙ−ＦＦＴの第２のステージでは、Ｎ＝２であるので、例えば、１ライン目と３ライン目のデータがセットで演算される。
【００１７】
図７は、ＦＦＴ部５１０におけるデータの依存関係を示す図である。データ７１０は、フォトダイオード１０１により撮影された生データを表し、Ｒ−１、Ｒ−２、…はそれぞれ１ライン目、２ライン目、…のデータを意味している。図７中下方に向かって処理が進み、最終段のデータ７９０は２次元離散フーリエ変換後のデータである。データ７３０，７５０，７７０は、それぞれ２次元離散フーリエ変換における中間データであり、１単位（１つの四角）が５１２個の複素数データである。Ｘ−ＦＦＴ部６１０は、データ７１０に対してＸ−ＦＦＴ処理７２０を行い、データ７３０を出力する。Ｘ−ＦＦＴ処理７２０は、ライン毎に独立の処理であるため、１ライン分のデータ７１０を入力として、１ライン分のデータ７３０を出力する。例えば、Ｘ−ＦＦＴ部６１０は、１ライン目のデータＲ−１からデータＸ−１を計算、２ライン目のデータＲ−２からデータＸ−２を計算する。次に、Ｙ−ＦＦＴ部６２０は、Ｙ−ＦＦＴの第１のステージ処理７４０及びＹ−ＦＦＴの第２のステージ処理７６０を実行する。その後、Ｙ−ＦＦＴ部６３０は、Ｙ−ＦＦＴの第３のステージ処理７８０を実行する。Ｙ−ＦＦＴの第１のステージ処理７４０、Ｙ−ＦＦＴの第２のステージ処理７６０、及びＹ−ＦＦＴの第３のステージ処理７８０は、それぞれ２ライン分のデータを入力して２ライン分のデータを出力するため、２入力２出力として示している。Ｙ−ＦＦＴの第１のステージ処理７４０は、例えば、データＸ−１及びＸ−５からデータＹ１−１Ａ及びＹ１−１Ｂを計算する。すなわち、Ｙ−ＦＦＴの第１のステージ処理７４０は、２個の複素数データから２個の複素数データをバタフライ演算により算出する処理をＸ方向に５１２回繰り返す処理を１つの処理単位として示している。同様に、Ｙ−ＦＦＴの第１のステージ処理７４０は、データＸ−３及びＸ−７からデータＹ１−３Ａ及びＹ１−３Ｂを計算する。次に、Ｙ−ＦＦＴの第２のステージ処理７６０は、例えば、データＹ１−１Ａ及びＹ１−３ＡからデータＹ２−１Ａ及びＹ２−１Ｂを計算し、データＹ１−１Ｂ及びＹ１−３ＢからデータＹ２−１Ｃ及びＹ２−１Ｄを計算する。次に、Ｙ−ＦＦＴの第３のステージ処理７８０は、例えば、データＹ２−１Ａ及びＹ２−２ＡからデータＹ３−Ａ及びＹ３−Ｂを計算し、データＹ２−１Ｃ及びＹ２−２ＣからデータＹ３−Ｃ及びＹ３−Ｄを計算する。
【００１８】
図８（Ａ）は、図７に対応し、ＦＦＴ部５１０の処理を示すタイミングチャートである。図８（Ａ）中、右方向に行くほど時間が経過していることを意味している。ＦＦＴ部５１０の処理は、図７で示したデータの依存関係に律速されている。ミラー制御部１５０は、１ライン目、５ライン目、３ライン目、７ライン目、２ライン目、６ライン目、４ライン目、８ライン目の順番でレーザ光の走査を制御しているので、Ｘ−ＦＦＴ部６１０のＸ−ＦＦＴ処理７２０もこのライン順で処理する。すなわち、ＦＦＴ部５１０は、分割された短冊領域ＡＡ１〜ＡＡ６４毎に、ミラー制御部１５０が走査を制御するラインの順番で２次元画像を入力し、その入力したラインの順番で２次元画像に対して２次元離散フーリエ変換する。具体的には、Ｘ−ＦＦＴ部６１０は、ミラー制御部１５０が走査を制御するラインの順番で、Ｘ−ＦＦＴ処理７２０を行う。Ｙ−ＦＦＴ部６２０は、時分割で、Ｘ−ＦＦＴ処理７２０の結果を基に、Ｙ−ＦＦＴの第１のステージ処理７４０を行い、Ｙ−ＦＦＴの第１のステージ処理７４０の結果を基に、Ｙ−ＦＦＴの第２のステージ処理７６０を行う。Ｙ−ＦＦＴ部６３０は、Ｙ−ＦＦＴの第２のステージ処理７６０の結果を基に、Ｙ−ＦＦＴの第３のステージ処理７８０を行う。
【００１９】
Ｙ−ＦＦＴの第１のステージ（１）は、Ｘ−ＦＦＴ（１）とＸ−ＦＦＴ（２）が終了してから処理を開始する。Ｙ−ＦＦＴの第１のステージ（２）は、Ｘ−ＦＦＴ（３）とＸ−ＦＦＴ（４）が終了してから処理を開始する。Ｙ−ＦＦＴの第１のステージ（３）は、Ｘ−ＦＦＴ（５）とＸ−ＦＦＴ（６）が終了してから処理を開始する。Ｙ−ＦＦＴの第１のステージ（４）は、Ｘ−ＦＦＴ（７）とＸ−ＦＦＴ（８）が終了してから処理を開始する。Ｙ−ＦＦＴの第２のステージ（１）は、Ｙ−ＦＦＴの第１のステージ（１）とＹ−ＦＦＴの第１のステージ（２）が終了してから処理を開始する。Ｙ−ＦＦＴの第２のステージ（２）は、Ｙ−ＦＦＴの第１のステージ（１）とＹ−ＦＦＴの第１のステージ（２）が終了してから処理を開始する。Ｙ−ＦＦＴの第２のステージ（３）は、Ｙ−ＦＦＴの第１のステージ（３）とＹ−ＦＦＴの第１のステージ（４）が終了してから処理を開始する。Ｙ−ＦＦＴの第２のステージ（４）は、Ｙ−ＦＦＴの第１のステージ（３）とＹ−ＦＦＴの第１のステージ（４）が終了してから処理を開始する。また、Ｙ−ＦＦＴの第１のステージ処理７４０とＹ−ＦＦＴの第２のステージ処理７６０は、同じＹ−ＦＦＴ処理部６２０が実行するため、排他的に実行するようにスケジューリングされている。なお、ライン８の後には、ライン９、ライン１３等の次の短冊領域の処理を順次実行するため、次の短冊領域の処理とも排他的であることが望ましい。Ｙ−ＦＦＴの第３のステージ（１）は、Ｙ−ＦＦＴの第２のステージ（１）とＹ−ＦＦＴの第２のステージ（３）が終了してから処理を開始する。Ｙ−ＦＦＴの第３のステージ（２）は、Ｙ−ＦＦＴの第２のステージ（１）とＹ−ＦＦＴの第２のステージ（３）が終了してから処理を開始する。Ｙ−ＦＦＴの第３のステージ（３）は、Ｙ−ＦＦＴの第２のステージ（２）とＹ−ＦＦＴの第２のステージ（４）が終了してから処理を開始する。Ｙ−ＦＦＴの第３のステージ（４）は、Ｙ−ＦＦＴの第２のステージ（２）とＹ−ＦＦＴの第２のステージ（４）が終了してから処理を開始する。ＦＦＴ部５１０が図８（Ａ）のスケジューリングで２次元離散フーリエ変換を実行する場合、短冊領域の最後のライン８が入力されてから２次元離散フーリエ変換が終了するまでの遅延時間８１０は、Ｙ−ＦＦＴ６段分（１段分はバタフライ演算５１２回分）である。
【００２０】
次に、この遅延時間８１０の比較のため、ライン順次で走査する場合を、図１２及び図８（Ｂ）を参照しながら説明する。図１２に示すように、ミラー制御部１５０は、短冊領域１２００に対して、１ライン目、２ライン目、３ライン目、…、８ライン目の順番でレーザ光の走査を制御する。この場合、図８（Ｂ）に示すように、ＦＦＴ部５１０は、上記の走査順と同様に、１ライン目、２ライン目、３ライン目、…、８ライン目の順番でデータを入力し、２次元離散フーリエ変換を実行する。この場合、短冊領域の最後のライン８が入力されてから２次元離散フーリエ変換が終了するまでの遅延時間８２０は、Ｙ−ＦＦＴ８段分である。
【００２１】
すなわち、本実施形態による図８（Ａ）の遅延時間８１０は、図８（Ｂ）の遅延時間８２０に対して、２５％削減できている。遅延時間８１０が長いと、遅延時間８１０中にも眼球は動き続けるため補正の誤差が大きくなり、歪みを除去しきれない。また、現フレーム画像と参照フレーム画像との重複面積が小さくなるため、眼底移動量計測精度の低下に繋がり得る。本実施形態の遅延時間８１０は、図８（Ｂ）の遅延時間８２０より短くなるので、本実施形態は、眼球の動きに基づく補正誤差を低減し、眼底移動量計測精度を向上させることができる。
【００２２】
図９は、一時記憶部６４０の動作を示す図である。一時記憶部６４０は、少なくとも短冊領域４００を格納可能な容量を有し、Ｘ−ＦＦＴ以後の演算結果は一時記憶部６４０を介して入出力される。Ｙ−ＦＦＴの各ステージでは、処理の前後でデータ量は変化しないので、一時記憶部６４０への処理後のデータの書き込みは、入力データが格納されていた領域に格納すればよい。例えば、図８（Ａ）に示すように、Ｘ−ＦＦＴ（１）及びＸ−ＦＦＴ（２）の結果は、Ｙ−ＦＦＴの第１のステージ（１）の開始まで一時記憶部６４０で保持される。Ｙ−ＦＦＴの第１のステージ（１）は、１ライン目のＸ−ＦＦＴ（１）の演算結果データ９３０（Ｘ−１）及び５ライン目のＸ−ＦＦＴ（２）の演算結果データ９４０（Ｘ−５）を順に読み出し、演算結果データ９１０及び９２０を同じ場所に上書きする。図９は、Ｙ−ＦＦＴの第１のステージ（１）の処理の状況を示している。データ９３０及び９４０は、Ｙ−ＦＦＴの第１のステージ（１）の処理前のデータ（図７のＸ−１及びＸ−５）であり、処理前の一時記憶部６４０に格納されている。データ９１０及び９２０は、Ｙ−ＦＦＴの第１のステージ（１）の処理後のデータ（図７のＹ１−１Ａ及びＹ１−１Ｂ）であり、処理後に一時記憶部６４０に上書きされる。データ９５０及び９６０は、データ処理中のウィンドウを示し、一時記憶部６４０は、Ｙ−ＦＦＴ部６２０に対して、２画素分のデータを出力する一方で、２画素分のデータを入力している。Ｙ−ＦＦＴ部６２０は、このウィンドウ９５０及び９６０を順次右方向にずらしていくことで処理を行う。他のステージでも同様であり、例えばＹ−ＦＦＴの第２のステージ（１）では、図７に示すように、ウィンドウ位置が１ライン目及び３ライン目となる。これを繰り返すことにより、ＦＦＴ処理が実行される。なお、一時記憶部６４０の使い方は、上記の通りである必要はなく、Ｘ−ＦＦＴ後、Ｙ−ＦＦＴの各ステージ後のデータをそれぞれ別の領域に格納するようにしてもよい。一時記憶部６４０は、２個分の短冊領域を格納可能な容量を有し、ダブルバッファとして入力データ蓄積用の記憶部とＦＦＴの中間データ用の記憶部とを短冊領域毎に切り替えるようにしてもよい。
【００２３】
以上説明したように、本実施形態によれば、ＦＦＴ部５１０の演算処理のデータ依存性に合わせて、ミラー制御部１５０がレーザ光を走査するラインの順番を設定することにより、図８（Ａ）の遅延時間８１０を短縮することができる。これにより、トラッキング処理全体の遅延時間もその分短縮されるため、より精度の高いトラッキングを実現できる。
【００２４】
（第２の実施形態）
図１０は、本発明の第２の実施形態によるミラー制御部１５０が走査するラインの順番の例を示す図である。第１の実施形態では、ＦＦＴ部５１０の演算順番と同じの順番でミラー制御部１５０が走査を制御するようにしたが、他の順番であっても遅延時間短縮の効果が得られる。以下、本実施形態が第１の実施形態と異なる点を説明する。本実施形態では、ミラー制御部１５０は、短冊領域１０００に対し、１ライン目、３ライン目、５ライン目、７ライン目、６ライン目、２ライン目、４ライン目、８ライン目の順番でレーザ光を走査するように共振ミラー１０２及びＴＴＭ１０３を制御する。第１の実施形態では、図３に示すように、７ライン目から２ライン目に戻る際に最大４ライン飛び越しの走査になる。これに対し、本実施形態では、図１０に示すように、６ライン目から２ライン目に戻る際に最大３ラインの飛び越しの走査になっており、第１の実施形態より少ない。すなわち、例えば共振ミラー１０２及びＴＴＭ１０３の応答性の制約や撮影条件（例えば画角）などにより、最大飛び越し走査ライン数を低減させることが望ましい場合は、本実施形態のような走査を適用することが好ましい。
【００２５】
図１１は、ミラー制御部１５０１が図１０の走査制御を行った場合のＦＦＴ部５１０の処理を示すタイミングチャートである。ミラー制御部１５０は、１ライン目、３ライン目、５ライン目、７ライン目、６ライン目、２ライン目、４ライン目、８ライン目の順番でレーザ光の走査を制御しているので、Ｘ−ＦＦＴ部６１０のＸ−ＦＦＴ処理７２０もこのライン順で処理する。Ｙ−ＦＦＴの第１のステージ（１）は、Ｘ−ＦＦＴ（１）とＸ−ＦＦＴ（３）が終了してから処理を開始する。Ｙ−ＦＦＴの第１のステージ（２）は、Ｘ−ＦＦＴ（２）とＸ−ＦＦＴ（４）が終了してから処理を開始する。Ｙ−ＦＦＴの第１のステージ（３）は、Ｘ−ＦＦＴ（５）とＸ−ＦＦＴ（６）が終了してから処理を開始する。Ｙ−ＦＦＴの第１のステージ（４）は、Ｘ−ＦＦＴ（７）とＸ−ＦＦＴ（８）が終了してから処理を開始する。Ｙ−ＦＦＴの第２のステージ（１）は、Ｙ−ＦＦＴの第１のステージ（１）とＹ−ＦＦＴの第１のステージ（２）が終了してから処理を開始する。Ｙ−ＦＦＴの第２のステージ（２）は、Ｙ−ＦＦＴの第１のステージ（１）とＹ−ＦＦＴの第１のステージ（２）が終了してから処理を開始する。Ｙ−ＦＦＴの第２のステージ（３）は、Ｙ−ＦＦＴの第１のステージ（３）とＹ−ＦＦＴの第１のステージ（４）が終了してから処理を開始する。Ｙ−ＦＦＴの第２のステージ（４）は、Ｙ−ＦＦＴの第１のステージ（３）とＹ−ＦＦＴの第１のステージ（４）が終了してから処理を開始する。また、Ｙ−ＦＦＴの第１のステージ処理７４０とＹ−ＦＦＴの第２のステージ処理７６０は、同じＹ−ＦＦＴ処理部６２０が実行するため、排他的に実行するようにスケジューリングされている。Ｙ−ＦＦＴの第３のステージ（１）は、Ｙ−ＦＦＴの第２のステージ（１）とＹ−ＦＦＴの第２のステージ（３）が終了してから処理を開始する。Ｙ−ＦＦＴの第３のステージ（２）は、Ｙ−ＦＦＴの第２のステージ（１）とＹ−ＦＦＴの第２のステージ（３）が終了してから処理を開始する。Ｙ−ＦＦＴの第３のステージ（３）は、Ｙ−ＦＦＴの第２のステージ（２）とＹ−ＦＦＴの第２のステージ（４）が終了してから処理を開始する。Ｙ−ＦＦＴの第３のステージ（４）は、Ｙ−ＦＦＴの第２のステージ（２）とＹ−ＦＦＴの第２のステージ（４）が終了してから処理を開始する。ＦＦＴ部５１０は、図１１のスケジューリングで２次元離散フーリエ変換を実行する。この場合、短冊領域の最後のライン８が入力されてから２次元離散フーリエ変換が終了するまでの遅延時間１１１０は、第１の実施形態の遅延時間８１０と同じく、Ｙ−ＦＦＴ６段分であり、図８（Ｂ）の遅延時間８２０のＹ−ＦＦＴ８段分よりも短縮できている。
【００２６】
以上説明したように、本実施形態では、第１の実施形態とは別の走査順序でもトラッキング遅延時間を短縮できることを示した。走査順序は他の順序でもよい。例えば、ミラー制御部１５０は、１ライン目、３ライン目、２ライン目、５ライン目、７ライン目、４ライン目、６ライン目、８ライン目の順番で走査するように制御してもよい。この場合、遅延時間短縮の効果は少なくなるが、最大飛び越し走査ライン数を２に減らすことができる。
【００２７】
また、ＦＦＴ部５１０が処理する短冊領域のライン数は８に限定されるものではない。例えば、短冊領域のライン数が１６ラインの場合、ミラー制御部１５０は、１，３，５，７，９，１１，１３，１５，１４，１０，６，２，４，８，１２，１６ライン目の順番で走査するように制御してもよい。ＦＦＴ部５１０の演算依存性を考えると、２の倍数でないライン番号は比較的優先度が高く、次に４の倍数でないライン番号が優先度が高く、次に８の倍数でないライン番号が優先度が高い。すなわち、ミラー制御部１５０は、ｊが２のＭ乗（Ｍは自然数）である場合に、Ｍの小さい順にｊの倍数でないライン番号のラインを優先した順番で走査するように制御する。ただし、上記にも示したように、優先度が高いラインを必ずしも全て先に走査する必要はなく、優先度が逆転する場所があってもよい。許容できる最大飛び越し走査ライン数を満たす走査順のうち、データ依存性の観点から演算遅延時間が最小となる走査順を選択してもよい。
【００２８】
ミラー制御部１５０は、撮影条件に応じて、走査するラインの順番を動的に変えるように制御してもよい。例えば、撮影の画角によってトラッキングの要求精度を達成するための短冊領域のサイズは変わる可能性があるので、撮影の画角に応じて短冊領域のサイズを変え、ライン走査順序を変えてもよい。第１の画角が第２の画角より広い画角の場合を説明する。画角が広い第１の画角では、眼底移動量が小さくなるので、狭い短冊領域に設定し、短冊領域のライン数を例えば８にする。これに対し、画角が狭い第２の画角では、眼底移動量が大きくなるので、広い短冊領域に設定し、短冊領域のライン数を例えば１６にする。画角変更前の第１の画角の撮影条件の場合には、短冊領域のライン数が８であり、ミラー制御部１５０は、１，３，５，７，６，２，４，８，９，１１，１３，１５，１４，１０，１２，１６ライン目（短冊領域２つ分まで記載）の順番で走査するように制御する。また、画角変更後の第２の画角の撮影条件の場合には、短冊領域のライン数が１６であり、ミラー制御部１５０は、１，３，５，７，９，１１，１３，１５，１４，１０，６，２，４，８，１２，１６ライン目の順番で走査するように制御する。
【００２９】
以上のように、第１及び第２の実施形態によれば、演算資源増加に頼ることなくトラッキング遅延時間を低減することができる。また、移動量の計測のための演算をより早く開始できるため、比較的少ない演算資源で演算遅延時間を低減することができる。これにより、トラッキングが高速になり、画像中の歪みを低減することができる。
【００３０】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００３１】
上述した実施形態では、被検査物が眼の場合について述べているが、眼以外の皮膚や臓器等の被検査物の画像生成に本発明を適用することも可能である。この場合、本発明は眼科装置以外の、例えば内視鏡等の医療機器としての態様を有する。従って、本発明は眼科装置に例示される検査装置として把握され、被検眼は被検査物の一態様として把握されることが望ましい。
【００３２】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００３３】
１００  画像処理装置、１１０  画像取得部、１２０  画像処理部、１３０  記憶部、１４０  制御部、１５０  ミラー制御部
【図１】
2017086683.tif 000003
【図２】
2017086683.tif 000004
【図３】
2017086683.tif 000005
【図４】
2017086683.tif 000006
【図５】
2017086683.tif 000007
【図６】
2017086683.tif 000008
【図７】
2017086683.tif 000009
【図８】
2017086683.tif 000010
【図９】
2017086683.tif 000011
【図１０】
2017086683.tif 000012
【図１１】
2017086683.tif 000013
【図１２】
2017086683.tif 000014