(57)【特許請求の範囲】
【請求項１】
静止画像の複数の領域のそれぞれに対して辞書データを参照して１または複数の照合処理を順次行い、対象物体を認識するデータ処理装置であって、
前記照合処理で参照する辞書データを取得する取得手段と、
前記取得手段により取得された辞書データを複数保持可能な保持手段と、
前記保持手段により保持された１つの辞書データを参照して前記複数の領域に対して前記照合処理を行う演算手段と、
前記演算手段による以前の照合処理結果を保持する履歴保持手段と、
前記演算手段が現在処理中の領域の位置に基づいて、当該領域に対して所定の位置関係となる隣接領域の照合処理結果が前記履歴保持手段に保持されているかを判定する結果判定手段と、
前記結果判定手段により前記所定の位置関係となる隣接領域の照合処理結果が前記履歴保持手段に保持されていると判定された場合に、前記演算手段が後続の照合処理で参照する辞書データを、前記後続の照合処理の前に予め前記取得手段が取得して前記保持手段に保持するプリフェッチ処理を行うか否かを、当該所定の位置関係となる隣接領域の照合処理結果に基づいて判定するプリフェッチ判定手段と、
前記プリフェッチ処理を行うと判定された場合に当該プリフェッチ処理を行う処理手段と、
を備えることを特徴とするデータ処理装置。
【請求項２】
前記演算手段は、前記複数の領域のそれぞれに対して順次、ステップ番号ごとに対応する照合処理を前記ステップ番号順に行い、１つのステップ番号に対応する照合処理を行った結果として前記対象物体であると判断された場合に次のステップ番号に対応する照合処理を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記履歴保持手段に保持されている前記照合処理結果は、現在照合処理を行っている領域に対して前記所定の位置関係となる隣接領域の照合処理の結果として前記対象物体であると判断された際の最大ステップ番号であって、
前記プリフェッチ判定手段は、現在照合処理を行っている領域のステップ番号の次のステップ番号が、前記履歴保持手段に保持されている前記最大ステップ番号以下である場合に、前記プリフェッチ処理を行うと判定することを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記履歴保持手段は直前の照合処理結果を保持し、
前記所定の位置関係となる隣接領域は、現在照合処理を行っている領域の横に位置する領域であることを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記履歴保持手段は以前の複数の照合処理結果を保持し、
前記所定の位置関係となる隣接領域は、現在照合処理を行っている領域の上に位置する領域であることを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
取得手段と、辞書データを複数保持可能な保持手段と、演算手段と、履歴保持手段と、結果判定手段と、プリフェッチ判定手段と、処理手段とを備え、静止画像の複数の領域のそれぞれに対して辞書データを参照して１または複数の照合処理を順次行って、対象物体を認識するデータ処理装置の制御方法であって、
前記取得手段が、前記照合処理で参照する辞書データを取得する取得工程と、
前記演算手段が、前記保持手段に保持された１つの辞書データを参照して前記複数の領域に対して前記照合処理を行い、当該処理結果を前記履歴保持手段に登録する演算工程と、
前記結果判定手段が、前記演算手段が現在処理中の領域の位置に基づいて、当該領域に対して所定の位置関係となる隣接領域の照合処理結果が前記履歴保持手段に保持されているかを判定する結果判定工程と、
前記プリフェッチ判定手段が、前記結果判定工程により前記所定の位置関係となる隣接領域の照合処理結果が前記履歴保持手段に保持されていると判定された場合に、前記演算工程により後続の照合処理で参照される辞書データを、前記後続の照合処理の前に予め前記取得工程で取得して前記保持手段に保持するプリフェッチ処理を行うか否かを、当該所定の位置関係となる隣接領域の照合処理結果に基づいて判定するプリフェッチ判定工程と、
前記処理手段が、前記プリフェッチ処理を行うと判定された場合に当該処理を行う処理工程と、
を備えることを特徴とするデータ処理装置の制御方法。
【請求項７】
請求項６に記載のデータ処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理装置の制御方法、およびプログラムに関し、特に、複数の入力データに対して繰返しデータ処理を行ない、前段の処理結果によって、次段の処理が実行されるか否かが決まるデータ処理（いわゆるカスケード処理）を実行するデータ処理装置、データ処理装置の制御方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、デジタルカメラやプリンタにおいて、入力画像中の人物や顔といった特定の被写体を検出し、検出された被写体に適した処理を行なう技術が提案されている。この特定の被写体を検出する一例として、顔に対して肌色補正処理を行なうための、顔検出処理がある。
【０００３】
顔検出処理にはさまざまな手法が提案されており、非特許文献１(以下、Viola＆Jones手法と称する)や、人間の顔の対称的特徴、テンプレート・マッチング、ニューラル・ネットワークなどを利用することによって、人間の顔を検出する方式がある。Viola&Jones手法においては、Adaboostによる学習結果に基づいて照合処理が実行される。この照合処理では、ある照合処理により照合が行われた結果、次の照合処理を行なう時はTrue、次の照合処理を行なわない時は、Falseが出力される。そして、Falseであった場合は、照合処理を終了するカスケード処理である。
【０００４】
また、このような照合処理において、内部メモリの回路規模を抑制しつつ処理を高速化するために、辞書データなどのパラメータのロードに伴う処理待ち時間を短縮するための従来技術として、キャッシュ手法やプリフェッチ手法(次に必要となるパラメータを事前に準備する方法)が広く用いられている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】P. Viola and M. Jones, “Robust Real-time Object Detection”, SECOND INTERNATIONAL WORKSHOP ON STATISTICAL AND COMPUTATIONAL THEORIES OF VISION, July 13 2001.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、内部メモリの回路規模を抑制しつつ処理を高速化するための従来技術であるキャッシュ手法およびプリフェッチ手法においては以下のような課題がある。
【０００７】
すなわち、記憶領域が不足すると最古の辞書データから消すようなキャッシュ手法においては、処理がパラメータ保存部の数より多いステップ数だけ進んでからFalseになった場合、次の入力データ処理では、必ず全辞書データの再ロードが必要となり、キャッシュ効果が全くでないという問題がある。
【０００８】
また、プリフェッチ手法においては、次に必要となる辞書データが次ステップ用辞書データであると予測しプリフェッチを行なうが、認識処理では、予測が外れることがあるという特徴がある。よって、プリフェッチ手法においては、ステップ番号順に対応する処理を順次行うが、例えば、ステップ2処理中に辞書データ3のロードを行なうものの、ステップ2処理結果がFalseになった場合、辞書データ3のロードが無駄になる。更に、次に必要となる辞書データ1が削除されてしまうことで、再度辞書データ1をロードするのに時間を要するという問題がある。
【０００９】
上記の課題に鑑み、本発明は、内部メモリの回路規模を抑制しつつ処理の高速化を図ることを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成する本発明に係るデータ処理装置は、
静止画像の複数の領域のそれぞれに対して辞書データを参照して１または複数の照合処理を順次行い、対象物体を認識するデータ処理装置であって、
前記照合処理で参照する辞書データを取得する取得手段と、
前記取得手段により取得された辞書データを複数保持可能な保持手段と、
前記保持手段により保持された１つの辞書データを参照して前記複数の領域に対して前記照合処理を行う演算手段と、
前記演算手段による以前の照合処理結果を保持する履歴保持手段と、
前記演算手段が現在処理中の領域の位置に基づいて、当該領域に対して所定の位置関係となる隣接領域の照合処理結果が前記履歴保持手段に保持されているかを判定する結果判定手段と、
前記結果判定手段により前記所定の位置関係となる隣接領域の照合処理結果が前記履歴保持手段に保持されていると判定された場合に、前記演算手段が後続の照合処理で参照する辞書データを、前記後続の照合処理の前に予め前記取得手段が取得して前記保持手段に保持するプリフェッチ処理を行うか否かを、当該所定の位置関係となる隣接領域の照合処理結果に基づいて判定するプリフェッチ判定手段と、
前記プリフェッチ処理を行うと判定された場合に当該プリフェッチ処理を行う処理手段と、
を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、無駄なプリフェッチを軽減し、パラメータロードによる待ち時間を短縮でき、内部メモリの回路規模を抑制しつつ処理を高速に行なうことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明に係るデータ処理装置の概略構成を示す図。
【図２】本発明に係る処理時間を説明する図。
【図３】第１実施形態に係る処理の手順を示すフローチャート。
【図４】第３実施形態に係るデータ処理装置の概略構成を示す図。
【図５】顔検出処理を説明する図。
【図６】顔検出処理を説明する図。
【図７】顔検出処理を説明する図。
【図８】顔検出処理を説明する図。
【図９】顔検出処理を説明する図。
【図１０】全照合処理分のパラメータ保持部を有する従来技術の説明図。
【図１１】パラメータ保持部が1つである従来技術1の説明図。
【図１２】認識処理例の説明図。
【図１３】従来例1の処理時間の説明図。
【図１４】パラメータ保持部が2つである従来技術2および3の説明図。
【図１５】従来例2(キャッシュ手法)の処理時間を説明する図。
【図１６】従来例3(プリフェッチ手法)の処理時間を説明する図。
【図１７】フレーム画像間の処理結果の相関を説明する図。
【図１８】本発明に係る前フレーム画像の処理結果を説明する図。
【発明を実施するための形態】
【００１３】
（第１実施形態）
まず、図５乃至図８を参照して、Viola＆Jones手法について概略説明を行なう。Viola&Jones手法においては、Adaboostによる学習結果に基づいて照合処理が実行される。この照合処理は図５のフローに示すように、ある照合処理により照合が行われた結果、次の照合処理を行なう時はTrue、次の照合処理を行なわない時は、Falseが出力される。そして、Falseであった場合は、照合処理を終了するというカスケード処理になっている。顔認識の場合、多くの顔データを入力し、顔の認識率や誤認識率がある一定の水準になるように学習させた結果、照合処理を行なう段数と、辞書パラメータが出力される。この照合処理とは、パターン照合処理のことである。よって、顔検出処理とは、この辞書パラメータを用いたパターン照合処理群のことである。また、辞書パラメータとは、パターン照合処理に必要な特徴量やTrue/False判定の基準に用いる閾値などのパラメータである。
【００１４】
以降、辞書パラメータのことを辞書データと称して説明する。学習結果の一例を図６に挙げる。辞書データの一部である、枠210で示される特徴量0は、両目部分の小矩形と両目下部分(頬の部分)を比べると、両目部分の輝度は両目下部分の輝度より黒っぽいという特徴を示す特徴量である。また、枠211で示される特徴量1は、両目部分の輝度分布において、目の部分の輝度は黒っぽく、目と目の間である眉間部の輝度は、目の部分の輝度に比べ、白っぽいという特徴を示す特徴量である。このような辞書データの一部である特徴量0〜特徴量Nを、実際に照合させたい入力データ200に対して、パターン照合処理を行なっていく。枠212は、入力データ210と特徴量0とを重ね合わせた図である。枠213は、入力データ210と特徴量1とを重ね合わせた図である。
【００１５】
また、Viola&Jones手法では、図7のフローに示すように、照合処理毎に、True, Falseの判定を行っていくことで、顔と非顔を判定していく。また、前段のステップでは、false negative（顔を非顔と判定すること：見落とし）を最小化し、false positive（非顔を顔と判定すること：誤検出）が比較的高めの確率になるような単純な特徴のみを用いている。単純な特徴のみを用いると、少ない演算回数で照合処理が可能となるため、プロセッサを用いて処理を行った場合においても高速処理が可能となる。さらに、多くの矩形領域を、より前段で効率よくFalse（非顔）と判定していくことが出来るため、画像全体に対する顔検出処理を短時間に完了することが可能になる。よって、顔検出処理を実現するカスケードに並んだ照合処理は、後段に行くほど照合パターンを多く含む傾向がある。以下、このTrue/Falseの判定を行なう処理単位のことをステップと称する。プリフェッチ手法においては、ステップ番号順に対応する照合処理を順次行っていく。
【００１６】
Viola&Jones手法に代表される認識処理は、動画像の認識にも適用される。認識処理の動画への適用例としては、デジタルカメラで顔を検出し合焦を行なう処理や、監視カメラで顔を検出し不審者を特定する処理などがある。認識処理を動画像に適用した場合には、動画像を構成する各フレーム画像に対して認識処理を行なうことになる。このとき、あるフレームの処理結果は、1フレーム前の処理結果と非常に似た結果を示す可能性が高い。すなわち、1フレーム前の処理で顔が検出された領域の近辺では、1フレーム後の処理でも顔が検出される可能性が高いということである。これは、動画像のフレームレートに対して、顔や人体などの認識対象物の移動速度が十分に遅いと考えられるからである。例として、図17(a)にフレームN-1の認識処理結果を、図17(b)とフレームNの認識処理結果を示す。図内の数字はそれぞれ、処理が最後にTrueとなったステップ番号（最大ステップ番号）を表す。この図から、フレーム間の処理結果の相関が高いことがわかる。
【００１７】
また、静止画像(ある1フレームの画像)においては、近傍の領域の認識処理結果は、似た結果を示すという特徴がある。実際の認識処理では、顔が検出された複数の隣接するもしくは重なりのある領域の重心等を演算することにより、より正確な顔の位置の検出を行なう。図17（b）のフレームNの処理結果の例は静止画像における処理結果の例を示す。図17(b)のフレームNの処理結果を見ると、ステップ5まで処理がTrueとなった領域の近傍領域においてはやはりステップ5や4まで処理がTrueとなっているのが分かる。
【００１８】
次に、図8にViola&Jones手法をハード実装する場合の概念的な構成図を示す。照合器1060には、ステップ0用辞書データである特徴量0が保存されている。また、前述した、ステップ0の結果がTrue又はFalseであるか判定するために用いる閾値0も、照合器1060に保存されている。このステップ0に必要な特徴量0と閾値0のことを、以下辞書データ0と呼ぶ。また、ステップ0の処理のことを、ステップ0処理と呼ぶ。前述したように、入力データ200が照合器1060に入力されると、辞書データ0を用いたステップ0処理が行なわれる。その結果(True/False)が照合器1061へ入力される。Trueであった場合、次の照合器1061は照合器1060と同様に、入力データ200とステップ1処理(特徴量1とのパターン照合処理と、閾値1との判定)を行なう。
【００１９】
次に、図9に示すブロック図は、図8で示した概念的ハード構成を、より具体化したものである。処理部108は演算部1080とパラメータ保持部1085とを備える。パラメータ保持部1085は、ステップ処理Xに必要な辞書データXを保持する内部メモリである。例えば、図8のステップ0を行なう照合器1060の場合、演算部1080は、パラメータ保持部1085に保持された辞書データ0に含まれる特徴量0を用いて、入力データ200に対しパターン照合を行なう。ステップ0処理は、特徴量0のパターン照合範囲対象である矩形0_1に対する入力データと、矩形0_2に対する入力データの総和を取り、矩形0_1と矩形0_2との輝度差を計算する。計算された輝度差が閾値0を超えている場合は、入力データ200は特徴量0が示す特徴に合致するとし、処理結果(True(顔である))を出力する。
【００２０】
辞書データ0に含まれる特徴量0には照合すべき画素位置が示されている。そのため、パターン照合処理を行なう演算部1080は、指定された画素位置における矩形内の画素値の総和を演算する。さらに各矩形における総和の差分を演算し、閾値0との比較演算を行なうことにより、ステップ0処理結果を出している。つまり、演算部1080は、辞書データにより指定される画素位置や閾値に従って、ステップ非依存の同様の演算を行なうように実装することが可能である。パラメータ保持部1085は、処理に必要なステップ分ないし全ステップ分の辞書データを保持し、処理ステップに応じて辞書データを切り替えることにより、全ステップの照合処理を実現可能である。
【００２１】
近年、Viola&Jones手法に代表される認識処理をデジタルカメラ等に搭載し、例えば顔を検出し合焦を行なうといった機能の実現が求められており、認識処理をリアルタイムに(高速に)実装する要求が高まっている。一方、デジタルカメラ等のデジタル家電製品は非常にコストセンシティブであるため、認識処理機能は出来るだけ安価に実装したい、すなわち回路規模を最小限に抑えたいという要求も高い。
【００２２】
そこで、図9に示すブロック図においては、演算部1080を全ステップ処理で共有することにより回路規模を抑制した実装例を示した。この場合、パラメータ保持部1085に何ステップ分の辞書データを保持するかが、回路規模の支配的な要因となる。一方で、何ステップ分の辞書データを保持するかにより、処理速度も大幅に異なる。
【００２３】
例えば、非常に高速な処理が必要な場合には、全ステップ分の辞書データを高速アクセス可能な内部メモリ(パラメータ保持部1085)に保持しておき、ステップ毎の処理を、辞書データの入れ換えなく実現する方法がある。  この方法を、図10の構成図を用いて、詳細に説明する。前述したように、パターン照合処理を行なう演算部1080はステップ非依存の実装となっているため、図9と同様に演算部1080を１つだけ搭載している。そして、ステップ依存である辞書データを保持するパラメータ保存部1085は、全ステップ（Nステップ）分搭載する。処理を開始する前に、パラメータ保持部1085(1085_0〜1085_N)へ、全ての辞書データをロードしておく。入力データ200が入力されると、パラメータ切替部1081により辞書データ0(ステップ0用辞書データ)が演算部1080で設定され、ステップ0処理が開始される。その結果、Trueと判断された場合、入力データ200に対し、パラメータ切替部1081は次の辞書データ1(ステップ1用辞書データ)へ切り替えることで、次段であるステップ1処理が可能となる。このように全ステップ用の辞書データを保持することにより、ステップ毎に必要な辞書データを、内部メモリと比べてアクセススピードの遅い外部メモリからロードするためのオーバーヘッドが不要となるため、高速処理が可能となる。
【００２４】
しかし、図10の構成では、処理が高速である一方、全ステップ分の辞書データを保持するための巨大な内部メモリを装備する必要があるため、非常にコストが高くなるという問題がある。
【００２５】
パラメータ保持部1085を巨大化させないためには、図11に示すように、1082で示されるパラメータ保持部1を1つ搭載し、ステップ毎に必要な辞書データのみを外部メモリからロードする構成が一般的に用いられている(以降、従来例1と呼ぶ)。
【００２６】
従来例1は、ステップ非依存の演算部1080と、ステップ処理に依存する辞書データを保持するためのデータ書換可能なパラメータ保持部1と、パラメータ取得部1054とを備えている演算部1080は画像入力信号から入力された矩形画像データとパラメータ保持部1082に保持されている辞書データを用い、パターン照合処理を行なった結果を処理結果とし出力する。この結果は、パラメータ取得部1054で検知される。
【００２７】
パラメータ取得部1054は、その処理結果がTrueであった場合、現在の矩形画像データに対し、次のステップ処理を行なう必要があることから、次のステップ処理に必要な辞書データ取得を行なう。反対に、結果がFalseであった場合、又は、最終段のステップ処理が終わった場合、次の入力データに対する処理を初段のステップ0処理から行なう必要があることから、パラメータ保持部1に辞書データ0がない場合は、辞書データ0ロード(取得)を行なう。このように、ステップ処理切り替え(辞書データ取得)が必要な場合は、パラメータ(入力)要求を行ない、図示しない外部メモリから辞書データを取得する。パラメータ(入力)要求に対するパラメータ(入力)応答を受けると、パラメータ取得部1054は、パラメータ保持部1へのパラメータロード許可1を出す。この許可により、パラメータ保持部1へ、パラメータ入力が開始され取得した辞書データがロードされる。パラメータ保持部1へのパラメータ入力が終了した後、パラメータ取得部1054よりパラメータ切替完了通知信号が演算部1080へ通知されることにより、演算部1080は、次のステップ処理を行うことが可能となる。
【００２８】
このように、パラメータ取得部1054においては、演算部1080の処理結果の検知を行ない、必要に応じて、次に必要な辞書データを取得する。取得した辞書データは、パラメータ保持部1へパラメータをロードし、書き換え完了後、演算部1080へ指示を出すという制御を行なうことで、入力された矩形画像データに対して、順次ステップ処理を可能にしている。
【００２９】
次に、図12に示されるように、ある入力画像中のあるライン方向に対し、矩形画像データを切り出し、矩形画像データに対して行なう処理の流れについて説明する。ここからは、矩形画像データはA1、A2、…として示し、矩形画像データA1に対し、ステップ1処理を行なうことをA1(S1)と示し、ステップ1処理に必要な辞書データ1のロードを行なうことを、S1として説明を行なう。
【００３０】
図12の横方向はライン方向を意味し、縦方向は、処理の深さを意味している。つまり、あるライン方向の一番左端である矩形画像データA1に対し、ステップ1の処理を行なった結果、Falseであったため、次の矩形画像データであるA2に対し、ステップ１の処理を行ない、結果がTrueであったため、ステップ2の処理を行なった例を示している。
【００３１】
まず、処理時間の説明に必要な用語を定義する。ステップ処理時間とは、各ステップ処理にかかる時間のことである。パラメータロード時間とは、外部メモリに保存されている辞書データを、パラメータ保持部へロードするために必要な時間である。
【００３２】
以下では、S1、S2、S3のパラメータロード時間が1、2、4倍と徐々に大きくなる例を説明する。これは、図7で説明したように、ステップは後段に行くにつれて、照合処理数が多くなるものと仮定したためである。また、ステップ処理時間は全て同じ例を示している。これは、ハードウェアは、複数の照合処理を並列実行できるように作成することが可能であるからである。また、ステップ処理時間とS1のパラメータロード時間が同じと仮定している。
【００３３】
図12で説明した認識処理を、図11の構成で実現した場合における処理時間について、図13を用いて説明する。
【００３４】
まず、図13での表現方法について説明する。(後に説明する図15、図17(a)、図17(b)、図2も共通の表現で処理時間を図示している。
【００３５】
図13の1段目(最上段)は、図11における演算部1080が処理を行なっている時間(処理サイクル)を示している。矩形画像データA1に対しステップ1を処理しているサイクルをA1(S1)としている。
【００３６】
次に2段目は、辞書データロードサイクルを示している。図11において、パラメータ取得部1054がパラメータ(入力)要求を行ない、図示しない外部メモリから辞書データを取得する。この辞書データをロードしている時間を示しており、辞書データS1をロードしている辞書データロードサイクルを、S1としている。次に3段目は、図11におけるパラメータ保持部1に保持されている辞書データを示す。また、パラメータ保持部1の数を図示しており、図13ではパラメータ保持部1が１つの場合の処理時間を示した図であるため、3段目には、1つのメモリを、後述するパラメータ保持部が2つの例では、2つのメモリを図示している。
【００３７】
ステップ処理は、必ずステップ１から処理が開始されることから、従来例1(図11)において、まずステップ1用辞書データのロードS1が行なわれる。矩形画像データA1が入力されると、『A1(S1)』の処理が開始される。処理結果がFalseであったため、次の入力データに対する処理を行なう、この時、パラメータ保持部1には、次に必要なステップ1用の辞書データ1が既に保存されているため、そのまま、『A2(S1)』を行なうことができる。そして、A2(S1)を行なった結果、Trueとなることで、ステップ2用の辞書データ2のロード『S2』が終わるのを待って、A2(S2)を行なう。A2(S2)の結果Falseとなったことで、次に必要なS1がロードされる間待った後、A3(S1)を行なう。このように、従来例1では、パラメータ保持部1が１つであることから、ステップ処理切替があるたびに、辞書データをロードする必要がある。そのため、辞書データロードの間、ステップ処理は停止することになる。つまり、図10に示した、全ステップ処理用辞書データ0〜N(1085_0〜1085_N)を保持している場合と比較して、ステップ処理が停止する時間(つまり、辞書データロード時間)分、遅延することになる。ステップ処理時間を1サイクルという単位であると仮定した場合、図13の従来例1では、A3(S3)の処理が終わるまでに、16サイクルかかっており、処理時間6サイクルに加え辞書データロードに10サイクル要していることがわかる。図11の構成においては、辞書データの切替が起きるたび、辞書ロードが行なわれるため、処理と辞書ロード時間が排他となっている。つまり、辞書ロードの間、必ず処理が停止することになる。
【００３８】
以上に述べたように、全ステップ分の辞書データを内部メモリに保持する構成は、処理は最速であるが回路規模が最大となる。一方、従来例1の1ステップ分の辞書データを内部メモリに保持し、ステップ処理ごとに必要な辞書データを外部メモリからロードする構成の場合、回路規模は最小であるが処理速度の低下が著しい。
【００３９】
このような課題に対し、内部メモリの回路規模を抑制しつつ処理を高速化するための従来技術として、キャッシュ手法やプリフェッチ手法(次に必要となるパラメータを事前に準備する方法)が広く用いられている。
【００４０】
以下、キャッシュ手法とプリフェッチ手法について詳しく説明する。以降、キャッシュ手法を従来例2と、プリフェッチ手法を従来例3と呼び説明する。
【００４１】
図14において、従来例2キャッシュ手法と従来例3プリフェッチ手法とを実現するものとして、図11の構成に、1083で示されるパラメータ保持部2とパラメータ切替部1081を加えた構成(従来例2、3共通)を示す。パラメータ保持部が複数になるため、取得された辞書データを複数保持可能である。
【００４２】
図14の構成における従来例2キャッシュ手法の処理の流れを示す。特にここでは、最古の辞書データから消すキャッシュ手法について説明する。
【００４３】
前述したように、演算部1080は転送されてきた矩形画像データに対し、順次ステップ処理を実行する。そして、演算部1080からのステップ処理結果をパラメータ取得部1054が検知する。検知結果に応じ、次に処理するステップが決定される。よって、パラメータ保持部1、パラメータ保持部2に次ステップ処理に必要な辞書データがあるか検知する。必要な辞書データがあった場合、パラメータ取得部1054は、パラメータ切替部1081へ切り替え指示を出すことで、演算部1080は次ステップに必要なパラメータを用いた処理が可能となる。
【００４４】
パラメータ取得部1054は、演算部1080からのステップ処理結果を検知し、辞書データ取得が必要なことが判明した場合は、パラメータ入力要求を行ない、辞書データを取得する。辞書データ取得は、パラメータ入力応答を受けた後、最古の辞書データを保持している、パラメータ保持部へパラメータロード許可を出すことで行なわれる。この結果、2つのパラメータ保持部1、パラメータ保持部2のうち、最古の辞書データを保持していた一方のパラメータ保持部へデータの書き換え(Write)が行なわれる。このパラメータ書き換えの終了を検知すると、パラメータ切替部1081にパラメータ切替指示を行なう。
【００４５】
このように、パラメータ取得部1054においては、演算部1080からの結果を検知し、必要に応じて、次に必要な辞書データを取得する。パラメータ保持部1又はパラメータ保持部2へパラメータをロードし、ロード終了後、パラメータ切替部1081へ指示を出す。このような制御を行なうことで、転送されてきた矩形画像データに対して、順次ステップ処理を可能にしている。
【００４６】
次に、図14の構成における従来例3プリフェッチ手法の処理について、前述した従来例2キャッシュ手法との差異部分を説明する。
【００４７】
プリフェッチ手法は、演算部1080がステップ処理Sを行なうと同時に、演算結果を待たず、演算部1080が参照していないもう一方のパラメータ保持部に対し、次ステップS+1のパラメータ取得を行なうというものである。
【００４８】
パラメータ取得部1054はステップS用のパラメータが保持されているパラメータ保持部を、演算部1080が用いてステップS処理が可能になるようにパラメータ切替部1081に切替指示を出す。この切替指示と共に、次ステップであるS＋1のプリフェッチを行なうため、S+1のパラメータ(入力)要求を出す。パラメータ取得部1054はパラメータ(入力)応答を受けると、ステップS処理に使用されていないパラメータ保持部へパラメータロード許可を出し、パラメータの書き換えを許可する。パラメータ入力は、書き換え許可が出ているパラメータ保持部へ、辞書データのロード(Write)を行なう。
【００４９】
再び図15、および図17(a)、図17(b)を用いて、従来例2キャッシュ手法と従来例3プリフェッチ手法を用いた場合の処理時間を説明する。
【００５０】
まず、図14の構成において従来例2キャッシュ手法を用いた場合の処理時間について図15を用いて説明する。
【００５１】
ステップ1までしか処理が進まない間は、キャッシュ手法の場合、全くロスがない。しかし、図15に示したように、A2(S1)の結果がTrueとなる場合、次のA2(S2)を行なうために、S2(ステップ2の辞書ロード)が必要となり、このロードが終わるまで処理が停止することになる。このように、キャッシュ手法においては、同じステップを行なっている間はロスがないが、キャッシュに残っていないステップを処理する際に、必ず辞書ロード時間の間待つことになる。しかし、パラメータ保持部が2つあることで、ステップ1、ステップ2が連続して処理されている間は、キャッシュ効果が現れることとなる。
【００５２】
本例においては、結果A3(S3)処理までに13サイクルかかり、図13の例と比較すると、S1、S2が連続しているA3(S2)処理までの間で、2サイクル速くなっていることがわかる。
【００５３】
次に、図14の構成において従来例3プリフェッチ手法を用いた場合の処理時間について図16を用いて説明する。ただし、現在処理しているステップS処理の次に処理されるものがステップS+1処理であると想定するプリフェッチ手法を例にあげ説明する。
【００５４】
従来例2キャッシュ方式と同様、図14においてパラメータ保持部1、パラメータ保持部2の2つを搭載している例で説明する。
【００５５】
図16において、A1(S1)処理がスタートすると同時に、S1を保持していたパラメータ保持部1ではないもう一方のパラメータ保持部2へS2のプリフェッチが開始される。その後、A1(S1)の結果がFalseとなるが、パラメータ保持部1にS1が保持されていることから、すぐにA2(S1)処理が開始される。そしてA2(S1)の結果がTrueになり、次の処理A2(S2)が始まる。ここで、A1(S1)処理と同時にプリフェッチを開始していたため、パラメータ保持部2にはS2がすでにロードされており、処理をすぐ開始できる。次に、A2(S2)を開始すると同時に、パラメータ保持部1にS3のプリフェッチを行なう。このプリフェッチにより、この時点での最古データであるS1を消去してしまうこととなる。A2(S2)の結果がFalseになると、次の入力データA3に対し、初段のパラメータ照合処理に必要なS1をロードする必要がある。そこで、この時点での最古データであるS2を削除し、S1をロードすることになる。S1がロードできた時点で、もう一方のパラメータ保持部2には、S3がロードされていることになる。そこで、A3(S1)の処理を開始すると同時に、後続の処理に必要と予測されるS2のプリフェッチを開始する。このようにプリフェッチを随時行ない、この例においては、A3(S3)の処理が終了するまでに、22サイクルかかることになる。つまり、プリフェッチを強制停止できない場合、次に必要ではなくなったパラメータをロードしている間、処理が停止することになる。ここでは、A2(S2)を処理し結果Falseとなった後も、次に必要ではないS3のロードを待つ間、処理が停止している。更に、次に必要となるパラメータ辞書データを上書きしてしまうことで、再度辞書ロードが必要になる。ここでは、A2(S2)処理における結果を待たず、S3をロードしてしまうことで、この時点で最古データであるS1を上書きしている。このため、次の処理A3(S1)に必要な辞書データS1のロードが再度必要になる。つまり、次に必要となるパラメータを予測した結果が外れることにより、パラメータロードミスのペナルティが発生することとなる。
【００５６】
すなわち認識処理において、有効なプリフェッチ動作を行なえるのは、処理がTrueとなる間のみである。更に、A2(S2)の結果がFalseになった場合に起きているように、A2(S2)の結果がFalseになった時点で、現在ロードしているステップ3用の辞書データS3はすぐ(次処理)には必要なくなる。この辞書データS3をロードしたために、S1が消去されてしまうことから、次処理で必要なS1を再度ロードする間、処理が停止することになる。
【００５７】
つまり、プリフェッチ方式において、ステップ処理結果がFalseになる回数が多いほど、無駄な辞書データロード回数と、無駄な辞書データロードのために上書きされた辞書データの再ロード回数とが増えることになる。
【００５８】
これらに対して、図１を参照して、本発明の第１実施形態に係るデータ処理装置について説明する。第１実施形態に係るデータ処理装置は、複数の入力データのそれぞれに対して辞書データを参照して当該入力データの所定領域ごとに１または複数の照合処理を順次行うことによって対象物体を認識する。図1に示すデータ処理装置の構成は、図14に示した従来のデータ処理装置の構成に対し、処理履歴保持部1058及びプリフェッチ判定部1057を加えたものである。すなわち、データ処理装置は、演算部1080と、パラメータ切替部1081と、1082で示されるパラメータ保持部1と、1083で示されるパラメータ保持部2と、パラメータ取得部1054と、プリフェッチ判定部1057と、処理履歴保持部1058とを備える。
【００５９】
演算部1080は、現在処理中のフレームの矩形画像データと、現在処理中のステップで必要な辞書データとを受け取り、照合処理を行なって処理結果を出力する。
【００６０】
処理履歴保持部1058は、演算部1080から出力された処理結果を保持する。
【００６１】
パラメータ取得部1054は、演算部1080により出力された処理結果を受け取ることにより、次に必要な辞書データを検知する。必要な辞書データがパラメータ保持部1、パラメータ保持部2のいずれにも保持されていない場合は、必要な辞書データのロード処理を行なう。ロード処理を行なうために、パラメータ取得部1054はパラメータ入力要求を出力する。パラメータ入力要求に対するパラメータ入力応答を受けると、一方のパラメータ保持部に対し、パラメータロード許可を出力する。パラメータロード許可信号を受け取ったパラメータ保持部は、入力されるパラメータをロードする。必要な辞書データのロードが完了した場合、もしくは、既に必要な辞書データがパラメータ保持部1又はパラメータ保持部2に保持されている場合は、パラメータ取得部1054はパラメータ切替部1081へパラメータ切替指示を行なう。
【００６２】
パラメータ切替指示は、演算処理1080が必要なパラメータ保持部を使用して、演算が行なえるようにするため、パラメータ保持部を切り替える方法であって、例えば、セレクト信号により行う。演算部1080はパラメータの切替が終わると、処理を開始する。処理開始を指示すると同時に、パラメータ取得部1054は、現在の処理ステップ番号(S)をプリフェッチ判定部1057へ入力する。プリフェッチ判定部1057は、現在の処理ステップ(S)に基づいて、次のステップ(S+1)で必要となる辞書データをプリフェッチするか否かの判定を行ない、判定結果をパラメータ取得部1054へ返す。判定処理は、演算部1080から現在処理中の領域を示すアドレス情報を受け取り、処理履歴保持部1058に保持されている前フレームの処理結果を参照することにより行なわれる。
【００６３】
パラメータ取得部1054はプリフェッチを行なうという判定結果を受けると、次ステップに必要なパラメータのロードを要求するため、次ステップのパラメータ入力要求を出す。パラメータ入力要求に対するパラメータ入力応答を受けると、現在のステップ処理Sで使用されていないもう一方のパラメータ保持部に対し、パラメータロード許可を出力し、入力されるパラメータをそのパラメータ保持部にロードする。
【００６４】
演算部1080からの処理結果を受け、Trueであった場合は、次ステップS+1のステップ処理が行われる。このとき、前述したプリフェッチ方法により、次ステップS+1のパラメータがすでにパラメータ保持部に保持されている場合には、パラメータ切替部1081へ切替指示を出すだけで、次のステップ処理S+1を行なうことが出来る。
【００６５】
次に、処理履歴保持部1058について詳細に説明する。
【００６６】
処理履歴保持部1058には、演算部1080から出力された処理結果が保持される。処理結果とは、処理を行なった所定領域のアドレス情報と、その領域の処理がTrueとなった最後のステップ番号である。領域のアドレス情報とは、フレームを識別する為の情報と、フレーム内の矩形画像データを識別する為の情報とによって構成される。例えば、フレームを識別する為の情報としてはフレーム番号を用いることが出来る。また、フレーム内の矩形画像データを識別する為の情報としては、矩形画像データの右上の画素のアドレスを用いることが出来る。続いて、処理履歴保持部1058に保持されるステップ番号について説明する。ある領域における処理結果がステップSでFalseとなった場合には、ステップS-1までの処理結果はTrueであると考えられる。よって、ステップ番号S-1が、処理履歴保持部1058に保持されることになる。例えば、ステップ3で処理がFalseとなった場合には、ステップ番号2が処理履歴保持部1058に保持される。また、ステップ1で処理がFalseとなった場合には、ステップ番号0が処理履歴保持部1058に保持される。また、最終ステップで処理がTrueとなった場合には、最終ステップ番号SMAXが処理履歴保持部1058に保持される。
【００６７】
次に、プリフェッチ判定部1057について詳細に説明する。
【００６８】
プリフェッチ判定部1057は、演算部1080から現在処理中の所定領域を示すアドレス情報を受け取る。受け取ったアドレス情報に基づいて、処理履歴保持部1058に保持されている現在処理を行なっている矩形画像データの前フレームの処理結果を参照し、前フレームの処理がTrueとなった最後のステップ番号（最大ステップ番号）を取得する。さらに、プリフェッチ判定部1057はパラメータ取得部1054から、現在処理中のステップ番号Sを受け取り、次のステップ番号S+1と処理履歴保持部1058から取得されたステップ番号との比較を行なう。比較の結果、次のステップ番号S+1が処理履歴保持部1058から取得された最大ステップ番号以下であれば、プリフェッチを行なうと判定する。判定結果は、パラメータ取得部1054に出力される。
【００６９】
前述したように、動画を用いた認識処理の場合には、前フレームの処理結果と、現在処理中のフレームの処理結果は非常に近い結果になる。すなわち、前フレームの処理結果がTrueとなったステップまでは現在処理中のフレームの処理結果もTrueとなる可能性が高い。よって、前ステップでTrueとなったステップまで辞書データのプリフェッチを行なうことで、無駄なプリフェッチを削減することが可能になる。
【００７０】
次に図2を参照して本発明(図1)における処理時間について、前述した図12と同じ条件で説明する。なお、本発明で必要となる前フレームの処理結果を図18に示す。
【００７１】
本発明でも従来例と同様に、まずS1のロードを行なう。プリフェッチ判定部1057は、演算部1080がA1(S1)の処理を行なうと同時に、現在処理中の矩形画像データA1に対して、どのステップまでプリフェッチを行なうべきかを決定する。プリフェッチ判定部1057は矩形画像データA1の前フレームにおける処理結果を処理履歴保持部1058から参照する。前フレームにおける処理結果がS1までTrueであったために、現在処理中の矩形画像データA1に関してはS1まで辞書データのプリフェッチを行なうと決定される。さらに、プリフェッチ判定部1057はパラメータ取得部1054から現在処理中のステップ番号S1を受け取り、次のステップS2の辞書データをプリフェッチするかの判定を行なう。次のステップS2はプリフェッチを行なうと決定されたステップS1よりも前段のステップを示している為に、S2のパラメータのプリフェッチを行なわないと判定される。すなわち次のステップ番号2が処理履歴保持部1058から取得されたステップ番号1以下でないので、プリフェッチを行わないと判定される。判定結果はパラメータ取得部1054に返され、判定結果を受けてパラメータ取得部1054はパラメータのプリフェッチを行なわない。
【００７２】
続いて演算部1080において、A1(S1)の結果がFalseとなった為に、次処理であるA2(S1)を行なう。プリフェッチ判定部1057は、矩形画像データA2について、矩形画像データA1と同様に、どのステップまでプリフェッチを行なうべきか、決定する。矩形画像データA2は前フレームでS2まで処理がTrueであったために、S2まではプリフェッチを行なうと決定される。さらに、プリフェッチ判定部1057はパラメータ取得部1054から現在処理中のステップ番号S1を受け取り、次のステップS2の辞書データをプリフェッチするかの判定を行なう。次のステップS2はプリフェッチを行なうと決定されたステップS2と同じステップを示している為に、S2のパラメータのプリフェッチを行なうと判定される。すなわち次のステップ番号2が処理履歴保持部1058から取得されたステップ番号2以下なので、プリフェッチを行うと判定される。判定結果はパラメータ取得部1054に返され、判定結果を受けてパラメータ取得部1054はS2のパラメータのプリフェッチを行なう。続いて、A2(S1)の結果がTrueとなるが、この時点ではS2の辞書データのプリフェッチをまだ行なっている為に、S2の辞書データのプリフェッチが完了するまで、処理を待つ。S2の辞書データのプリフェッチが完了した後に、パラメータ切替を行ない、A2(S2)の処理を行なう。矩形画像データA2に関しては、プリフェッチ判定結果がS2までである為にパラメータ取得部はS3の辞書データのプリフェッチは行なわない。この時点でパラメータ保持部には、S1、S2のパラメータが保持されている。続いて、A2(S2)の処理結果がFalseとなるが、S1のパラメータが保持されているため、矩形画像データA3に関して、引き続きA3(S1)の処理が開始できる。
【００７３】
このように、本発明においては、処理結果がプリフェッチ判定結果と一致した場合、従来例2のキャッシュ手法のように、辞書ロードの待ちによる処理停止が起きない。また、従来例3のプリフェッチ手法のように、必ずプリフェッチすることで、無駄な辞書データロード時間中、処理が停止することや、必要な辞書データを上書きしてしまうことで生じる、次に必要な辞書データの再ロードの必要がない。本実施形態では、A3(S3)処理終了まで、12サイクルであることから、従来例1に比べ5サイクル、従来例2キャッシュ手法に比べ2サイクル、従来例3プリフェッチ手法に比べ11サイクル速く処理できていることがわかる。
【００７４】
次に図3のフローチャートを参照して、本実施形態の処理手順を詳細に説明する。
【００７５】
認識処理は、S301〜S313のLoopで処理が行なわれる。
【００７６】
S301において、認識処理がスタートすると、S302において、入力画像から切り出された(またはアドレス指定された)矩形画像データが入力される。続いて、入力された矩形画像データに対し、S303において、プリフェッチ判定部1057は、プリフェッチ判定値計算処理を行なう。プリフェッチ判定値計算処理では、矩形画像データに対し、どのステップまでプリフェッチを行なうかが決定される。ここでは、プリフェッチ判定部1057は、1フレーム前における当該矩形画像データの処理が最後にTrueとなったステップの処理までプリフェッチを行なうものとする。
【００７７】
プリフェッチ判定値計算処理が完了すると、S304〜S311において順次ステップ処理が実行される。
【００７８】
ステップ処理では、まず、S305において、プリフェッチ判定部1057は、ステップ処理YのパラメータSYがあるか否かの判定を行なう。判定結果がYesであった場合は、S306において、パラメータ取得部1054がパラメータ切替部1081に対してパラメータ切替指示を出し、パラメータを切り替える。この切替により演算部1080はステップYの処理に必要なパラメータSYによる演算が可能になる。
【００７９】
S305において、判定結果がNoであった場合は、S314において、プリフェッチ判定部1057は、プリフェッチ処理中であるか否か判定する。S314において判定結果がYesの場合には、S316において、プリフェッチ処理の完了を待つ。また、S314において判定結果がNoの場合には、S315において、パラメータ取得部1054はパラメータの取得処理を行ない、S316においてパラメータの取得処理が完了するまで待つ。S315におけるパラメータの取得処理はパラメータのプリフェッチ処理ではなく通常のパラメータのロード処理である。続いて、S316においてプリフェッチ処理、もしくはパラメータのロード処理によって、パラメータの取得が完了した場合には、S306において、パラメータ取得部1054がパラメータ切替指示を出し、パラメータを切り替える。この切替により演算部1080はステップ処理に必要なパラメータSYによる演算が可能になる。
【００８０】
続いて、S307において、プリフェッチ判定部1057は、次ステップY+1のパラメータSY+1をプリフェッチするか否か判定する。判定にはS303で取得した判定値を用い、プリフェッチ判定部1057は、次ステップのステップ番号Y+1がS303で取得された判定値以下のステップ番号であれば、プリフェッチを行なうと判定する。
【００８１】
続いて、S307において、YES(プリフェッチを行なう)と判定された場合は、S308において、次ステップに必要なパラメータのプリフェッチ処理を開始するために、パラメータ取得部1054がパラメータ(入力)要求を出す。このパラメータ(入力)要求を出した後、S309において、照合処理を開始する。
【００８２】
S307において、NO(プリフェッチをしない)と判定された場合は、S308におけるプリフェッチ処理を行わず、S309において照合処理を開始する。
【００８３】
照合処理が終わると、S310において、照合処理結果がTrueかFalseかの判定を行なう。Trueであった場合、S311において、最終段のステップ処理が完了したかの判定が行われる。S311において最終段のステップ処理が完了したと判定されなかった場合には、S304に戻り次のステップ処理を行なう。S311において最終段のステップ処理が完了したと判定された場合、もしくはS310において処理結果がFalseと判定された場合は、S312において、処理履歴の更新が行なわれる。その後、S313において、演算部1080は最終矩形画像データまで処理が行なわれたか否か判定する。S313において、最終矩形画像データの処理が完了したと判定されなかった場合には、F1に戻り、次の矩形画像データに対する処理を行なう。S313において、最終矩形画像データの処理が完了したと判定された場合には、認識処理を終了する。
【００８４】
本実施形態では、動画の前フレームのパターンにおける処理履歴を利用してプリフェッチの制御を行なうようにした。それにより、処理履歴の相関が高いパターン同士の場合に、パターンの相関に基づく効果的な辞書転送のプリフェッチが実現できる。
【００８５】
（第２実施形態）
本発明における第2実施形態のデータ処理装置について説明する。本発明における第2実施形態のデータ処理装置のブロック図は、第1実施形態のデータ処理装置のブロック図と同じであるが、プリフェッチ判定部1057の動作が第1実施形態とは異なる。
【００８６】
第1実施形態のプリフェッチ判定部1057は、処理履歴保持部1058から現在処理を行なっている矩形画像データの前フレームの処理結果を参照し、処理結果をそのまま、判定結果としてパラメータ取得部1054に出力していた。
【００８７】
それに対して、第2実施形態のプリフェッチ判定部1057は、現在処理を行なっている矩形画像データの近傍領域の前フレームの処理結果を参照し、処理結果の平均値を求め、平均値を判定結果として、パラメータ取得部1054に出力する。
【００８８】
例として、現在処理を行っている矩形画像データの1画素近傍の処理結果を判定結果とする場合について説明する。現在処理を行っている矩形画像データのアドレスを(X,Y)とする。ただし、Xは入力画像中における、矩形画像データのライン方向の位置を表し、Yは入力画像中における、矩形画像データのカラム方向の位置を表す。プリフェッチ判定部1057は処理履歴保持部1058から、前フレームの以下に示す9つのアドレスが示す矩形画像データの処理結果を参照する。
【００８９】
(X-1,Y-1)、(X,Y-1)、(X+1,Y-1)、
(X-1,Y)、(X,Y)、(X+1,Y)、
(X-1,Y+1)、(X,Y+1)、(X+1,Y+1)
1画素近傍領域の平均処理結果を得る為に、プリフェッチ判定部1057は、参照された9つの処理結果の和を求め9で割る。ただし、入力画像の縁近辺では、9画素分の処理結果が得られない可能性がある。その場合には、得られた処理結果だけの和を取り、得られた処理結果の数で割ることで平均処理結果を得ることが出来る。また、割った結果が、割り切れない可能性がある。その場合には、得られ結果を四捨五入しても切捨てしても切り上げしても構わない。
【００９０】
プリフェッチ判定部1057は得られた平均処理結果をパラメータ取得部1054に出力し、パラメータ取得部1054は入力された平均処理結果のステップまではパラメータのプリフェッチを行なう。
【００９１】
（第３実施形態）
本発明における第3実施形態のデータ処理装置について、図4のブロック図を参照して説明する。図4に示すデータ処理装置の構成は、図1に示した本発明における第1実施形態のデータ処理装置の構成に対し、動きベクトル検出部1059を加えたものである。
【００９２】
動きベクトル検出部1059は、フレーム画像間（入力データ間）の各画素における対象物体の位置の変化を示す動きベクトルを検出する。検出結果としては、各画素における動きベクトルの方向及びベクトルの大きさが得られる。例えば、動きベクトルが画像のX方向に+2、Y方向に-1であれば(+2,-1)のような形で結果が得られる。
【００９３】
プリフェッチ判定部1057は、動きベクトル検出部1059から、現在処理を行なっている矩形画像データの動きベクトルを参照する。さらに、処理履歴保持部1058に保持されている前フレームの処理結果を参照する際に、参照された動きベクトルを用いて参照先のアドレスにオフセットを加える。例えば、現在処理を行っている矩形画像データのアドレスが(X,Y)で与えられ、当該領域に置ける動きベクトルが(+2,-1)で与えられた場合を考える。この場合、オフセットを加えたアドレスは(X-2,Y+1)となり、処理履歴保持部1058から前フレームの処理結果を参照する場合にはオフセットつきのアドレス(X-2,Y+1)を用いる。すなわち、参照先をより適切な領域へ変更する。
【００９４】
プリフェッチ判定部1057は、得られたオフセット付きアドレスの処理結果をパラメータ取得部1054に出力し、パラメータ取得部1054は入力されたオフセット付きアドレスの処理結果のステップまではパラメータのプリフェッチを行なう。
【００９５】
本実施形態によれば、参照先のアドレスに動きベクトルを用いてオフセットを加えることで、物体の動きに対する補正が可能になり、より精度の高い予測が可能になる。特に、フレームを間引いて処理を行なう場合や、移動速度の速い物体を認識する場合には、フレーム間の相関関係が低くなってしまうために、本実施形態による動き補正が有効である。
【００９６】
（第４実施形態）
本発明における第4実施形態のデータ処理装置について説明する。本発明における第1実施形態のデータ処理装置は動画像を処理していたのに対して、第4実施形態のデータ処理装置は静止画像の処理を行なう。そのため、第4実施形態のデータ処理装置のブロック図は、第1実施形態のデータ処理装置のブロック図と同じであるが、入力画像が静止画となる。また、処理履歴保持部1058に登録されて保持される情報、および、プリフェッチ判定部1057の動作が第1実施形態とは異なる。
【００９７】
まず、処理履歴保持部1058について説明する。第1実施形態の処理履歴保持部1058は、前フレームの処理結果及び現フレームの処理結果を保持していた。それに対し、第4実施形態のデータ処理装置の入力画像は静止画像であるために、第4実施形態における処理履歴保持部1058には、現在処理中の矩形画像データの直前に処理を行なっていた矩形画像データの処理結果が保持される。処理結果とは、処理を行なった領域のアドレス情報と、その領域の処理がTrueとなった最後のステップ番号である。領域のアドレス情報とは、第1実施形態とは異なり、静止画内の矩形画像データを識別する為の情報のみによって構成される。
【００９８】
例えば、現在処理中の矩形画像データのアドレスが(X,Y)であれば、処理履歴保持部1058にはアドレスが(X-1,Y)の矩形画像データの処理結果が保持される。ただし、X=0である場合には直前に処理した矩形画像データのアドレスは(Xmax-1,Y-1)となり、アドレス(Xmax-1,Y-1)の矩形画像データの処理結果が保持される。ただし、XmaxはX方向の画像サイズを表す。
【００９９】
次に、プリフェッチ判定部1057について説明する。第4実施形態のプリフェッチ判定部1057は、処理履歴保持部1058に保持されている、現在処理を行なっている矩形画像データの直前に処理を行なっていた矩形画像データの処理結果を参照する。
【０１００】
例えば、現在処理中の矩形画像データのアドレスが(X,Y)であれば、アドレス(X-1,Y)の矩形画像データの処理結果の参照を行なう。ただし、X=0である場合には、直前に処理した矩形画像データのアドレスは(Xmax-1,Y-1)となり、現在処理中の矩形画像データ(X,Y)とは隣接していない。隣接していない矩形画像データの処理結果は似た結果を示さない可能性があるので、その場合には、処理結果を参照せずに通常のプリフェッチ処理を行ってもよい。
【０１０１】
参照を行なった結果、直前の近傍矩形画像データの処理がTrueとなった最後のステップ番号を取得する。さらに、プリフェッチ判定部1057はパラメータ取得部1054から、現在処理中のステップ番号Sを受け取り、次のステップ番号S+1と処理履歴保持部1058から取得されたステップ番号との比較を行なう。比較の結果、次のステップ番号S+1が処理履歴保持部1058から取得されたステップ番号以下であれば、プリフェッチを行なうと判定する。判定結果は、パラメータ取得部1054に出力される。
【０１０２】
パラメータ取得部1054は、プリフェッチ判定部1057の判定結果を受けて、直前の矩形画像データの処理がTrueとなった最後のステップまではパラメータのプリフェッチを行なう。
【０１０３】
前述したように、静止画像を用いた認識処理の場合には、現在処理中の矩形画像データの処理結果と、その近傍矩形画像データの処理結果は非常に近い結果になる。すなわち、近傍矩形画像データの処理結果がTrueとなったステップまでは現在処理中の矩形画像データの処理結果もTrueとなる可能性が高い。よって、前ステップでTrueとなったステップまで辞書データのプリフェッチを行なうことで、無駄なプリフェッチを削減することが可能になる。
【０１０４】
（第５実施形態）
本発明における第5実施形態のデータ処理装置について説明する。本発明における第5実施形態のデータ処理装置は、処理履歴保持部1058に保持される情報、および、プリフェッチ判定部1057の動作が第4実施形態とは異なる。
【０１０５】
まず、処理履歴保持部1058について説明する。第4実施形態の処理履歴保持部1058は、現在処理中の矩形画像データの直前に処理を行なっていた矩形画像データの処理結果が保持される。それに対し、第5実施形態における処理履歴保持部1058には、現在処理中の矩形画像データの1画素上の矩形画像データの処理結果から、直前の矩形画像データの処理結果までが保持されている。
【０１０６】
例えば、現在処理中の矩形画像データのアドレスが(X,Y)であれば、処理履歴保持部1058にはアドレスが(X,Y-1)、(X+1,Y-1)・・・(Xmax-1,Y-1)、(0,Y)、(1,Y)・・・(X-1,Y)の複数の矩形画像データの処理結果が保持される。
【０１０７】
続いて、プリフェッチ判定部1057について説明する。第5実施形態のプリフェッチ判定部1057は、現在処理を行なっている矩形画像データの1画素上の矩形画像データの処理結果を参照する。
【０１０８】
例えば、現在処理中の矩形画像データのアドレスが(X,Y)であれば、アドレス(X,Y-1)の矩形画像データの処理結果の参照を行なう。ただし、Y=0である場合には、1画素上の矩形画像データの処理結果は存在しない。その場合には、処理結果を参照せずに通常のプリフェッチ処理を行ってもよい。
【０１０９】
参照を行なった結果、1画素上の矩形画像データの処理がTrueとなった最後のステップ番号を取得する。さらに、プリフェッチ判定部1057はパラメータ取得部1054から、現在処理中のステップ番号Sを受け取り、次のステップ番号S+1と処理履歴保持部1058から取得されたステップ番号との比較を行なう。比較の結果、次のステップ番号S+1が処理履歴保持部1058から取得されたステップ番号以下であれば、プリフェッチを行なうと判定する。
【０１１０】
パラメータ取得部1054は、プリフェッチ判定部1057の判定結果を受けて、1画素上の矩形画像データの処理がTrueとなった最後のステップまではパラメータのプリフェッチを行なう。
【０１１１】
（第６実施形態）
本発明における第6実施形態のデータ処理装置について説明する。本発明における第6実施形態のデータ処理装置は、プリフェッチ判定部1057の動作が第5実施形態とは異なる。
【０１１２】
第5実施形態のプリフェッチ判定部1057は、現在処理を行なっている矩形画像データの1画素上の矩形画像データの処理結果を参照する。それに対し、第6実施形態のプリフェッチ判定部は、現在処理中の矩形画像データの複数の隣接矩形画像データの処理結果を参照し、それらの平均値を用いて判定処理を行う。
【０１１３】
例えば、現在処理を行っている矩形画像データのアドレスを(X,Y)とすると、プリフェッチ判定部1057は処理履歴保持部1058から、以下に示す4つのアドレスが示す矩形画像データの処理結果を参照する。
【０１１４】
(X-1,Y-1)、(X,Y-1)、(X+1,Y-1)、(X-1,Y)
1画素近傍領域の平均処理結果を得る為に、参照された4つの処理結果の和を求め4で割る。ただし、X=0やY=0となる入力画像の縁近辺では、4画素分の処理結果が得られない可能性がある。その場合には、得られた処理結果だけの和を取り、得られた処理結果の数で割ることで平均処理結果を得ることが出来る。また、割った結果が、割り切れない可能性がある。その場合には、得られ結果を四捨五入しても切捨てしても切り上げしても構わない。また、X=0かつY=0である、処理の開始アドレスにおいては、処理結果が全く得られない。その場合には、処理結果を参照せずに通常のプリフェッチ処理を行っても構わない。
【０１１５】
参照を行なった結果、隣接領域の矩形画像データの処理がTrueとなった最後のステップ番号（最大ステップ番号）の平均値が得られる。さらに、プリフェッチ判定部1057はパラメータ取得部1054から、現在処理中のステップ番号Sを受け取り、次のステップ番号S+1と算出された平均ステップ番号との比較を行なう。比較の結果、次のステップ番号S+1が算出された平均ステップ番号以下（最大ステップ番号の平均値以下）であれば、プリフェッチを行なうと判定する。
【０１１６】
パラメータ取得部1054は、プリフェッチ判定部1057の判定結果を受けて、隣接領域の矩形画像データの処理がTrueとなった最後のステップの平均ステップまではパラメータのプリフェッチを行なう。
【０１１７】
また、本実施形態では1画素隣接した矩形画像データの処理結果を用いた例を示したが、隣接していない複数の近傍の矩形画像データの処理結果を用いて平均値を求めても構わない。その場合には、処理履歴保持部1058には、必要となる近傍矩形画像データの処理結果が保持されている必要がある。
【０１１８】
（第７実施形態）
第4実施形態、第5実施形態および第6実施形態は静止画像を用いて説明したが、いずれの実施形態も動画に適用することも出来る。第1実施形態では処理履歴保持部1058には現在処理中のフレームの前のフレームの処理結果が保持されていた。それに対して、第4実施形態、第5実施形態および第6実施形態で説明した静止画像と同様の処理を動画に対して行う場合には、処理履歴保持部1058には現フレームの処理結果のみを保持していれば十分である。
【０１１９】
（第８実施形態）
上述した実施形態ではパラメータ保持部1082とパラメータ保持部1083を明示的に分けて説明したが、同じパラメータ保持部のエリアを区別することで実施してもかまわない。
【０１２０】
また、認識処理を例に説明を行なったが、認識処理以外の処理においても、時間的、空間的に処理履歴に相関のある処理であれば、本提案を実施しても構わない。認識処理ではない場合でも、時間的、空間的な処理履歴の相関性を利用してプリフェッチ判定部1057が辞書データをプリフェッチするか否かを判定することで、無駄なプリフェッチを抑制することが可能になる。
【０１２１】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005778983.tif 000002
【図２】
0005778983.tif 000003
【図３】
0005778983.tif 000004
【図４】
0005778983.tif 000005
【図１１】
0005778983.tif 000006
【図１２】
0005778983.tif 000007
【図１３】
0005778983.tif 000008
【図１４】
0005778983.tif 000009
【図１５】
0005778983.tif 000010
【図１８】
0005778983.tif 000011
【図５】
0005778983.tif 000012
【図６】
0005778983.tif 000013
【図７】
0005778983.tif 000014
【図８】
0005778983.tif 000015
【図９】
0005778983.tif 000016
【図１０】
0005778983.tif 000017
【図１６】
0005778983.tif 000018
【図１７】
0005778983.tif 000019