(57)【特許請求の範囲】
【請求項１】
対象データ内の複数領域において各領域ごとにデータを解析することにより、複数のブロックサイズの各々を処理単位としたデータの処理について予測される指標を導出し、複数のブロックサイズの中からそれらの指標を比較して当該領域におけるデータの処理単位として適用されるブロックサイズを選択する解析部と、
対象データ内の複数領域においてデータを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する制御部と、
を有する、
ことを特徴とするデータ処理装置。
【請求項２】
請求項１に記載のデータ処理装置において、
前記解析部は、各領域ごとに複数のブロックサイズの各々を処理単位としたデータの処理について予測される処理時間を反映した前記指標を導出し、複数のブロックサイズの中から処理時間に係る選択条件を満たすブロックサイズを選択する、
ことを特徴とするデータ処理装置。
【請求項３】
請求項１または２に記載のデータ処理装置において、
前記解析部は、複数のブロックサイズについて、各ブロックサイズごとに、当該ブロックサイズの回路を再構成可能回路内に構成するのに必要な再構成時間と、当該ブロックサイズの回路を利用したデータの処理に必要なデータ処理時間と、を含む前記指標を導出する、
ことを特徴とするデータ処理装置。
【請求項４】
請求項１から３のいずれか１項に記載のデータ処理装置において、
前記解析部は、画像データ内の複数領域において画素データを解析することにより、各領域ごとに、互いに異なる画素数に対応した複数のブロックサイズの中から当該領域に適用されるブロックサイズを選択し、
前記制御部は、画像データ内の複数領域において画素データを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する、
ことを特徴とするデータ処理装置。
【請求項５】
コンピュータに、
対象データ内の複数領域において各領域ごとにデータを解析することにより、複数のブロックサイズの各々を処理単位としたデータの処理について予測される指標を導出し、複数のブロックサイズの中からそれらの指標を比較して当該領域におけるデータの処理単位として適用されるブロックサイズを選択する解析機能と、
対象データ内の複数領域においてデータを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する制御機能と、
を実現させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置およびプログラムに関する。
【背景技術】
【０００２】
対象データ内のデータを処理するデータ処理装置として、例えば、画像データに対して色変換処理やフィルタ処理などの画像処理を施す画像処理装置が知られており、従来からその画像処理に係る技術がいくつか提案されている。
【０００３】
例えば、特許文献１には、複数の画素をパックとしてまとめ、パック内の画素が同等な場合に画素データを削除してその画素データに対する処理を回避することにより、画像処理を高速化する技術が記載されている。
【０００４】
また、特許文献２には、カラー画像のデータを並列に画像処理する複数の画像処理プロセッサを備えたカラー画像処理装置が記載されている。つまり、画像処理プロセッサを複数とすることにより画像処理の高速化が実現される。
【０００５】
また、特許文献３には、画像データに対してベクター型の処理を行うベクター処理部とベクター型の処理が行われた画像データに対してスカラー型の処理を行うスカラー処理部を備えた画像処理装置が記載されている。つまり、ベクター型の処理とスカラー型の処理のそれぞれに適した複数の処理部を用いて画像処理の高速化が実現される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−２３１２３０号公報
【特許文献２】特開平５−１４３７２０号公報
【特許文献３】特開２００８−４０６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、対象データ内の複数領域において、各領域ごとにその領域に適用されるブロックサイズによりデータを処理することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に係る発明は、対象データ内の複数領域において各領域ごとにデータを解析することにより、複数のブロックサイズの各々を処理単位としたデータの処理について予測される指標を導出し、複数のブロックサイズの中からそれらの指標を比較して当該領域におけるデータの処理単位として適用されるブロックサイズを選択する解析部と、対象データ内の複数領域においてデータを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する制御部とを有することを特徴とするデータ処理装置である。
【００１０】
請求項２に係る発明は、請求項１に記載のデータ処理装置において、前記解析部は、各領域ごとに複数のブロックサイズの各々を処理単位としたデータの処理について予測される処理時間を反映した前記指標を導出し、複数のブロックサイズの中から処理時間に係る選択条件を満たすブロックサイズを選択する、ことを特徴とするデータ処理装置である。
【００１１】
請求項３に係る発明は、請求項１または２に記載のデータ処理装置において、前記解析部は、複数のブロックサイズについて、各ブロックサイズごとに、当該ブロックサイズの回路を再構成可能回路内に構成するのに必要な再構成時間と、当該ブロックサイズの回路を利用したデータの処理に必要なデータ処理時間と、を含む前記指標を導出する、ことを特徴とするデータ処理装置である。
【００１２】
請求項４に係る発明は、請求項１から３のいずれか１項に記載のデータ処理装置において、前記解析部は、画像データ内の複数領域において画素データを解析することにより、各領域ごとに、互いに異なる画素数に対応した複数のブロックサイズの中から当該領域に適用されるブロックサイズを選択し、前記制御部は、画像データ内の複数領域において画素データを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する、ことを特徴とするデータ処理装置である。
【００１３】
請求項５に係る発明は、コンピュータに、対象データ内の複数領域において各領域ごとにデータを解析することにより、複数のブロックサイズの各々を処理単位としたデータの処理について予測される指標を導出し、複数のブロックサイズの中からそれらの指標を比較して当該領域におけるデータの処理単位として適用されるブロックサイズを選択する解析機能と、対象データ内の複数領域においてデータを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する制御機能と、を実現させることを特徴とするプログラムである。
【発明の効果】
【００１４】
請求項１に係る発明によれば、対象データ内の複数領域において、各領域ごとにその領域に適用されるブロックサイズによりデータを処理することができる。また、請求項１に係る発明によれば、複数のブロックサイズの各々を処理単位としたデータの処理についての予測を踏まえて、各領域に適用されるブロックサイズを選択することができる。
【００１６】
請求項２に係る発明によれば、複数のブロックサイズの各々を処理単位としたデータの処理について予測される処理時間を踏まえて、各領域に適用されるブロックサイズを選択することができる。
【００１７】
請求項３に係る発明によれば、再構成時間とデータ処理時間を考慮して各領域に適用されるブロックサイズを選択することができる。
【００１８】
請求項４に係る発明によれば、画像データ内の複数領域において、各領域ごとに、互いに異なる画素数に対応した複数のブロックサイズの中からその領域に適用されるブロックサイズを選択することができる。
【００１９】
請求項５に係る発明によれば、対象データ内の複数領域において、各領域ごとにその領域に適用されるブロックサイズによりデータを処理することができる。また、請求項５に係る発明によれば、複数のブロックサイズの各々を処理単位としたデータの処理についての予測を踏まえて、各領域に適用されるブロックサイズを選択することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施において好適なデータ処理装置の具体例を示す図である。
【図２】対象データに対するキャッシュ処理を説明するための図である。
【図３】データ解析部の具体例を示す図である。
【図４】ＢＳ予測部の具体例を示す図である。
【図５】図１のデータ処理装置が実行する処理を纏めたフローチャートである。
【図６】画像データの解析処理を示すフローチャートである。
【図７】画像データのキャッシュ処理を示すフローチャートである。
【図８】画像データの分割に係る変形例を説明するための図である。
【図９】画像データの処理時間に関するシミュレーション結果を示す図である。
【発明を実施するための形態】
【００２１】
図１は、本発明の実施において好適なデータ処理装置の具体例を示す図である。図１のデータ処理装置は、再構成可能回路１００と再構成メモリ１１０とＤＲＡＭ１２０と再構成制御部２００を備えており、処理対象となるデータに対してデータ処理を実行する。図１のデータ処理装置は、例えばＤＲＰ（Dynamic Reconfigurable Processor：動的再構成可能プロセッサ）などにより実現することができる。なお、ＤＲＰに限らず、回路を再構成することができる他のデバイスにより図１のデータ処理装置が実現されてもよい。
【００２２】
再構成可能回路１００は、その内部の論理回路構成を動的に、すなわち当該回路の動作中に再構成が可能な回路であり、例えば多数の回路要素（ＰＥ：プロセッサエレメント）を内部に備えている。そして、それら回路要素間の接続構成が再構成データ（コンフィギュレーションデータ）に従って比較的高速に再構成可能（組み替え可能）となっており、再構成された回路構成により、図１に示す再構成可能回路１００内の各部が実現される。
【００２３】
再構成可能回路１００内の回路構成は、再構成メモリ１１０に記憶された再構成データに基づいて再構成（リコンフィギュレーション）される。再構成メモリ１１０には、１つ以上の回路構成に対応した再構成データが記憶可能である。図１に示す具体例では、再構成メモリ１１０内に、再構成データＢＳ２と再構成データＢＳ４と再構成データＢＳ８が記憶されている。
【００２４】
また、図１のデータ処理装置において利用される多数の再構成データは、ＤＲＡＭ１２０に記憶されており、ＤＲＡＭ１２０に記憶された再構成データが、必要に応じて再構成メモリ１１０にロード（移し入れ）され、再構成可能回路１００内の回路の再構成に利用される。図１に示す具体例では、ＤＲＡＭ１２０内に、多数の再構成データＢＳｎ（ｎは自然数）が記憶されている。
【００２５】
再構成制御部２００は、図１のデータ処理装置内の再構成に係る処理を制御する。再構成制御部２００は、例えば演算機能等を実現するハードウェアとその動作を規定するソフトウェア（制御プログラム等）によって構成され、ハードウェアとソフトウェアとの協働により実現することができる。再構成制御部２００の機能は、例えば、ＤＲＰ内において実現されてもよいし、コンピュータ等により実現されてもよい。
【００２６】
再構成制御部２００の機能をコンピュータにより実現する場合には、後に詳述する再構成制御部２００の制御機能に対応したプログラム（制御プログラム）が、例えば、ディスクやメモリなどのコンピュータが読み取り可能な記憶媒体に記憶され、その記憶媒体を介してコンピュータに提供される。もちろん、インターネット等の電気通信回線を介して当該プログラムがコンピュータに提供されてもよい。そして、コンピュータが備えるＣＰＵやメモリ等のハードウェア資源と、提供された当該プログラム（ソフトウェア）との協働により、再構成制御部２００の機能が実現される。
【００２７】
また、再構成制御部２００の機能の他に、再構成可能回路１００内において実現される機能の一部、例えばデータ解析部８０の機能がコンピュータ等により実現されてもよい。
【００２８】
図１のデータ処理装置によって処理されるデータの好適な具体例は画像データであり、例えばコンピュータなどの外部の装置から、図１のデータ処理装置に画像データが提供され、図示しないデータバス等を介して、画像データが再構成可能回路１００内のロードバッファ１０に入力される。また、図１のデータ処理装置が、画像読み取り機能（スキャン機能）等を備えた画像処理装置内に組み込まれ、その機能を介して紙などの媒体から得られた画像データがロードバッファ１０に入力されてもよい。さらに、図１のデータ処理装置による処理後の画像データがストアバッファ７０から出力され、処理後の画像データに対応した画像が紙などに印刷されてもよいし、処理後の画像データが外部の装置に提供されてもよい。このように図１のデータ処理装置により画像処理装置が実現されてもよい。
【００２９】
なお、画像データは、図１のデータ処理装置において処理が可能な好適な具体例の一つに過ぎず、図１のデータ処理装置が画像データ以外のデータを処理してもよい。例えば、図１のデータ処理装置が、情報処理装置、情報処理端末、オーディオ・ビジュアル機器やその他の家電機器、車両等に搭載され、様々なデータ処理や制御等に利用されてもよい。
【００３０】
再構成可能回路１００内には、処理対象となるデータ（対象データ）を処理するための回路構成が実現される。例えば、対象データに対してキャッシュ処理を施すための回路構成が実現される。
【００３１】
図２は、対象データに対するキャッシュ処理を説明するための図であり、図２（Ｉ）には、キャッシュ処理の具体例が示されている。つまり、図１の再構成可能回路１００内に構成されるデータ処理部５０とキャッシュ制御部６０による、画像データに対するキャッシュ画像処理が図示されている。
【００３２】
図２（Ｉ）の具体例において、処理対象となる画像データを構成する複数の画素データが、いくつかの画素データからなるブロックに纏められる。例えば、図２（Ｉ）に示すように、４個の画素データＡからなるブロックに纏められる。
【００３３】
データ処理部５０は、画像データに対してデータ処理、つまり画像処理を行う。その画像処理において、ブロック内における１つの画素データに対する処理結果から他の全ての画素データの処理結果を得ることができる場合に、つまりヒット時に、データ処理部５０は、ブロック内における１つの画素データに対する処理のみを実行して他の画素データに対する処理を省略する。
【００３４】
例えば、ブロック内の画素データが全て同一である場合に、つまり、図２（Ｉ）に示す具体例のように、ブロック内の４つの画素データが全て同じ画素データＡである場合に、データ処理部５０は、ブロック内の先頭の画素データＡのみに画像処理を施して処理結果である画像データＡ´を得て、他の画素データＡに対する処理を省略する。
【００３５】
そして、データ処理部５０において画像処理が省略された場合に、つまりヒット時に、キャッシュ制御部６０は、ブロック内における１つの画素データに対する処理結果から他の画素データの処理結果を得る。例えば、図２（Ｉ）に示す具体例のように、ブロック内における先頭の画素データＡに関する処理結果である画像データＡ´をコピーして、他の画素データＡに関する処理結果とする。
【００３６】
これにより、例えば、図２（Ｉ）に示す具体例のように、４個の画素データＡからなるブロックに対する画像処理結果として、４個の画素データＡ´からなるブロックが得られる。
【００３７】
一方、ブロック内における１つの画素データに対する処理結果から他の全ての画素データの処理結果を得ることができない場合、つまりミス時に、データ処理部５０は、ブロック内における全ての画素データの各々に対して処理を実行して各画素データごとに処理結果を得る。
【００３８】
そして、画像データ内における複数の画素データが次々にブロックに纏められ、ブロックごとに図２（Ｉ）のキャッシュ処理が実行される。
【００３９】
図２（ＩＩ）は、キャッシュ処理の性能に関する具体例を示している。キャッシュ処理の性能は、ブロック内におけるデータ数、つまり、１つのブロックを構成する画素数であるブロックサイズに依存する。図２（ＩＩ）には、ブロックサイズが「２」「４」「８」の場合におけるキャッシュ処理の性能が示されている。
【００４０】
図２（ＩＩ）に示す具体例において、ブロックサイズ「２」は、２個の画素データを１つのブロックに纏めたものであり、ブロックサイズ「４」は、４個の画素データを１つのブロックに纏めたものであり、ブロックサイズ「８」は、８個の画素データを１つのブロックに纏めたものである。
【００４１】
判定データ数は、各ブロックがヒット状態にあるか又はミス状態にあるかを判定するのに必要とされるデータ数である。例えば、ブロックサイズ「２」の場合に、各ブロックを構成する２つの画素データが同じである場合にそのブロックがヒットとなり、２つの画素データが互いに異なる場合にそのブロックがミスとなる。また、ブロックサイズ「４」の場合には、各ブロックを構成する４つの画素データが全て同じである場合に、そのブロックがヒットとなり、その他の場合にはミスとなる。同様に、ブロックサイズ「８」の場合には、各ブロックを構成する８つの画素データが全て同じである場合に、そのブロックがヒットとなり、その他の場合にはミスとなる。
【００４２】
図２（ＩＩ）には、キャッシュ処理の性能として、通常パイプライン処理を基準とした場合における性能比が示されている。通常パイプライン処理では、ブロックを単位としたキャッシュ処理が行われず、複数の画素データが各画素データごとに次々に画像処理される。
【００４３】
図２（ＩＩ）において、「ヒット時」は、ヒット状態の場合における性能比を示しており、「ミス時」は、ミス状態の場合における性能比を示している。例えば、ブロックサイズ「２」の場合、「ヒット時」において、２つの画素データのうちの一方のみを画像処理すればよいため、２つの画素データの両方を処理する通常パイプライン処理の場合に比べて、２．０倍の性能向上（例えば処理時間が１／２に短縮）となる。また、ブロックサイズ「４」「８」の場合、「ヒット時」において、それぞれ４．０倍と８．０倍の性能向上となる。
【００４４】
一方、「ミス時」においては、ブロック内の複数の画素データが各画素データごとに次々に画像処理されるため、ブロックサイズに係わらず性能向上が１．０倍となる。つまり通常パイプライン処理と同じになる。
【００４５】
また、図２（ＩＩ）には、状態変化時の制御遅延（クロック数）が示されている。例えば、画像データ内において、ブロックサイズ「２」の複数ブロックを次々に処理する場合に、ブロックの状態が、ヒットからミスまたはミスからヒットへ変化する際に、１クロック分の制御遅延が必要となる。なお、ブロックサイズ「４」「８」の場合、状態変化時の制御遅延は、それぞれ３クロックと７クロックになる。この制御遅延は、状態変化制御の回路が、フィードバック回路により構成されている事によるフィードバック遅延である。但しキャッシュ処理の例であり、必ず発生する遅延では無い。
【００４６】
一般に、ブロックサイズが大きいほど、ヒット時における性能が向上する。しかし、ブロックサイズが大きいほど、ヒットする確率が低くなってしまう。また、ヒットする確率は、対象データ内のデータの状態にも依存する。例えば、画像データを構成する複数の画素データについて、近傍データとの類似性が高い場合には、比較的大きなブロックサイズでもヒットする確率が高まる。一方、近傍データとの類似性が低い場合には、比較的小さなブロックサイズとしなければヒットする確率を高めることができない。
【００４７】
そこで、図１のデータ処理装置は、対象データを複数領域に分割し、各領域ごとにデータを解析することにより、その領域におけるデータのキャッシュ処理に適用されるブロックサイズを決定する。
【００４８】
図１に戻り、対象データの分割と解析とキャッシュ処理は、再構成可能回路１００内に構成される各部によって実現される。そこで、再構成可能回路１００内に構成される各部の機能と処理等について説明する。なお、以下においては、対象データとして画像データを処理対象とする具体例について説明する。
【００４９】
処理対象となる画像データは、一時的にロードバッファ１０に記憶された後、データ分割部２０に送られる。データ分割部２０は、画像データを複数の画像領域に分割する。画像データは、例えば、縦方向と横方向に配列された複数の画素データで構成されている。つまり、横方向に一列に配列された複数の画素データにより各ラインが構成され、複数のラインが縦方向に並べられて画像データが構成される。データ分割部２０は、例えば、１つのラインを１つの画像領域として、画像データを複数のラインに分割する。
【００５０】
データ判定部３０とデータ削除部４０とデータ処理部５０とキャッシュ制御部６０は、画像データに対してデータ処理（例えば図２を利用して説明したキャッシュ処理）を実行する。複数のラインに分割された画像データは、各ラインごとにデータ処理を施され、処理後の画像データがストアバッファ７０に記憶される。
【００５１】
データ判定部３０からキャッシュ制御部６０におけるデータ処理に先だって、画像データの各ラインは、データ解析部８０において解析処理される。
【００５２】
データ解析部８０は、複数領域に分割された画像データを解析することにより、各領域ごとにその領域におけるデータ処理（例えば図２を利用して説明したキャッシュ処理）の処理単位として適用されるブロックサイズを決定する。データ解析部８０は、各ラインごとに複数の画素データを解析することにより、複数のブロックサイズの中から、そのラインに適用されるブロックサイズを選択する。
【００５３】
図３は、データ解析部８０の具体例を示す図である。図３の具体例において、データ解析部８０は、解析制御部８２と、複数のブロックサイズ（ＢＳ）に対応した複数のＢＳ予測部８４と、ＢＳ（ブロックサイズ）選択部８６を備えている。
【００５４】
データ分割部２０において複数のラインに分割された画像データは、各ラインごとに複数のＢＳ予測部８４に送られる。図３に示す具体例において、データ解析部８０は、ブロックサイズ２，４，８（ＢＳ２，ＢＳ４，ＢＳ８）に対応した３つのＢＳ予測部８４を備えている。各ＢＳ予測部８４は、それに対応するブロックサイズを各ラインに適用した場合におけるヒット数とミス数を計数し、さらに、ヒットとミスの切替わり数を計数する。
【００５５】
図４は、ＢＳ予測部８４の具体例を示す図である。図３における３つのＢＳ予測部８４の各々が図４に示す構成を備えている。
【００５６】
ＢＳ予測部８４は、それに対応するブロックサイズを各ラインに適用した場合におけるヒット数を計数するヒットカウンタと、ミス数を計数するミスカウンタと、ヒットとミスの切替わり数を計数する切替わりカウンタを備えている。
【００５７】
例えば、ブロックサイズ２（ＢＳ２）のＢＳ予測部８４は、データ分割部２０から各ラインごとに得られる複数の画素データに対して、ブロックサイズ２を適用した場合におけるヒット数とミス数と切替わり数をそれぞれ計数する。つまり、２つの画素からなるブロックごとにそのブロック内の画素データを確認し、ブロック内の画素データが全て同一であればヒットカウンタにおいてヒット数が計数され、ブロック内の画素データに１つでも他と異なるものがあればミスカウンタにおいてミス数が計数される。そして、各ライン内においてブロックを移動させながら各位置においてヒットまたはミスの判定が行われ、互いに隣り合うブロックの位置において、ヒットからミスに又はミスからヒットに状態が切り替わる場合に、切替わりカウンタにおいて切替わり数が計数される。
【００５８】
同様に、ブロックサイズ４（ＢＳ４）のＢＳ予測部８４は、データ分割部２０から各ラインごとに得られる複数の画素データに対して、４つの画素からなるブロックサイズ４を適用した場合におけるヒット数とミス数と切替わり数をそれぞれ計数する。また、ブロックサイズ８（ＢＳ８）のＢＳ予測部８４は、データ分割部２０から各ラインごとに得られる複数の画素データに対して、８つの画素からなるブロックサイズ８を適用した場合におけるヒット数とミス数と切替わり数をそれぞれ計数する。
【００５９】
さらに、ＢＳ予測部８４は、予測性能に係る指標を算出する指標算出部を備えている。指標算出部は、各カウンタから得られる計数値と解析制御部８２から得られる回路管理データに基づいて、例えば次式に示す予測性能に係る指標Ｐｆｎ（ｎはブロックサイズ）を算出する。
【００６０】
（数１）
Ｐｆｎ（ｃｌｋ）＝ヒットブロック処理時間＋ミスブロック処理時間＋再構成時間＋ロード時間＋その他
ヒットブロック処理時間＝ヒット数×1clk
ミスブロック処理時間＝ミス数×nclk
再構成時間＝回路構成時間＋パイプラインデータ追い出し時間
ロード時間（再構成メモリ１１０に再構成データをロードするのに必要な時間）
【００６１】
例えば、ブロックサイズ２（ＢＳ２）のＢＳ予測部８４において、ブロックサイズ２に関する予測性能Ｐｆ２が算出され、ブロックサイズ４（ＢＳ４）のＢＳ予測部８４において、ブロックサイズ４に関する予測性能Ｐｆ４が算出され、ブロックサイズ８（ＢＳ８）のＢＳ予測部８４において、ブロックサイズ８に関する予測性能Ｐｆ８が算出される。
【００６２】
図３に戻り、ＢＳ（ブロックサイズ）選択部８６は、各ラインごとに、複数のＢＳ予測部８４から得られる複数の予測性能Ｐｆｎを比較することにより、そのラインに適用するブロックサイズを決定する。ＢＳ選択部８６は、複数のブロックサイズの中から処理時間に係る選択条件を満たすブロックサイズを選択する。例えば、ブロックサイズ２に関する予測性能Ｐｆ２と、ブロックサイズ４に関する予測性能Ｐｆ４と、ブロックサイズ８に関する予測性能Ｐｆ８の中から、最も高速なブロックサイズ、つまりＰｆｎが最も小さいクロック数（ｃｌｋ数）となるブロックサイズを選択する。
【００６３】
ＢＳ選択部８６は、複数のラインについて、各ラインごとにそのラインに適用するブロックサイズを選択し、その選択結果を再構成判定部９０へ出力する。
【００６４】
図１に戻り、再構成判定部９０は、画像データに対するデータ処理（例えば図２を利用して説明したキャッシュ処理）において、再構成可能回路１００内の回路構成を再構成する必要がある場合に、再構成制御部２００に対して再構成を要求する。
【００６５】
画像データは、データ分割部２０において複数のラインに分割され、各ラインごとにデータ処理される。そのデータ処理において、各ラインごとにそのラインに対して選択されたブロックサイズが適用される。
【００６６】
図１に示す再構成可能回路１００内の回路構成のうち、ブロックサイズに応じて、例えば、データ判定部３０とデータ削除部４０とキャッシュ制御部６０に係る回路構成が再構成される。つまり、再構成可能回路１００内の回路構成が部分的に再構成される。
【００６７】
例えば、データ処理においてブロックサイズ２が適用される場合に、再構成メモリ１１０内の再構成データＢＳ２に基づいて、ブロックサイズ２に対応した回路構成（データ判定部３０とデータ削除部４０とキャッシュ制御部６０）が再構成可能回路１００内に再構成（リコンフィギュレーション）される。
【００６８】
同様に、ブロックサイズ４が適用される場合に、再構成メモリ１１０内の再構成データＢＳ４に基づいて、ブロックサイズ４に対応した回路構成が再構成され、ブロックサイズ８が適用される場合に、再構成メモリ１１０内の再構成データＢＳ８に基づいて、ブロックサイズ８に対応した回路構成が再構成される。
【００６９】
再構成判定部９０は、各ラインごとのデータ処理において、そのラインに適用されるブロックサイズに対した回路構成が再構成可能回路１００内に構成されていない場合に、再構成を要求する割り込み信号を再構成制御部２００に出力する。つまり、複数のラインについて各ラインごとにデータ処理が進められる際に、データ処理が行われている現行のラインに適用されたブロックサイズとは異なるブロックサイズを次のラインに適用する場合に、再構成判定部９０から割り込み信号が出力される。
【００７０】
再構成制御部２００は、再構成判定部９０から割り込み信号を得ると、データ解析部８０において選択されたブロックサイズに対応した回路構成を再構成可能回路１００内に再構成する。
【００７１】
図５は、図１のデータ処理装置が実行する処理を纏めたフローチャートである。図１に示した構成（各部）については図１の符号を利用して、図５のフローチャートについて説明する。
【００７２】
データ分割部２０は、ロードバッファ１０から得られる画像データを複数の画像領域に分割する（Ｓ５０１）。データ分割部２０は、例えば、１つのラインを１つの画像領域として、画像データを複数のラインに分割する。
【００７３】
データ処理に先だって、画像データの各ラインは、データ解析部８０において解析処理される。データ解析部８０は、各ラインごとに複数の画素データを解析することにより、複数のブロックサイズの中から、そのラインに適用されるブロックサイズを選択する（Ｓ５０２）。
【００７４】
図６は、画像データの解析処理を示すフローチャートである。データ解析部８０は、各ラインごとに図６に示す解析処理を実行して、そのラインに適用されるブロックサイズを選択する。
【００７５】
まず、データ解析部８０は、複数のブロックサイズについて各ブロックサイズごとに、そのブロックサイズを、解析の対象となっている現行ラインに適用した場合における、ヒット数とミス数と切替わり数を計数する（Ｓ６０１）。例えば、ブロックサイズ２，４，８の各々について、ヒット数とミス数が計数され、さらに、ヒットとミスの切替わり数が計数される（図４参照）。
【００７６】
次に、データ解析部８０は、各ブロックサイズごとに、そのブロックサイズを現行ラインに適用した場合における再構成時間を算出する（Ｓ６０２）。再構成時間は、ブロックサイズに変更が有る場合（１）とブロックサイズに変更が無い場合（２）において、互いに算出手法が異なる。
【００７７】
現行ラインよりも１つだけ前のライン（前ライン）に適用されたブロックサイズと同じブロックサイズについては、つまり、ブロックサイズに変更が無い場合には、前ラインに適用されたブロックサイズの回路構成を現行ラインにおいても利用できるため再構成の必要がなく、従って再構成時間は０（ゼロ）となる。
【００７８】
一方、前ラインに適用されるブロックサイズとは異なるブロックサイズについては、つまり、ブロックサイズに変更が有る場合には、前ラインに適用されたブロックサイズの回路構成から、現行ラインに適用されるブロックサイズの回路構成へと再構成する必要がある。そのため、再構成時間は、回路構成時間とデータ追出時間の和になる。なお、回路構成時間は、再構成可能回路１００内に再構成データに対応した回路を再構成するのに必要とされる時間であり、データ追出時間は、その再構成の前に、前ラインの画像処理においてデータが回路構成から抜け切るまでに必要とされる時間である。
【００７９】
次に、データ解析部８０は、各ブロックサイズごとに、そのブロックサイズを現行ラインに適用した場合におけるロード時間を算出する（Ｓ６０３）。ロード時間は、各ブロックサイズに対応した再構成データが、再構成メモリ１１０内に無い場合（１）と再構成メモリ１１０内に有る場合（２）において互いに算出手法が異なる。
【００８０】
再構成メモリ１１０内に再構成データが有るブロックサイズについては、再構成メモリ１１０へのロードが必要なく、従ってロード時間は０（ゼロ）となる。一方、再構成メモリ１１０内に再構成データが無いブロックサイズについては、ＤＲＡＭ１２０から再構成メモリ１１０へ再構成データのロードが必要となる。そのため、そのロードに必要とされる時間がロード時間となる。
【００８１】
そして、データ解析部８０は、各ブロックサイズごとに、予測性能に係る指標Ｐｆｎ（数１式）を算出する（Ｓ６０４）。Ｓ６０１からＳ６０４までの処理は、各ブロックサイズごとに実行され、全てのブロックサイズについての解析が完了まで繰り返される（Ｓ６０５）。
【００８２】
こうして、全てのブロックサイズについての解析が完了すると、データ解析部８０は、全てのブロックサイズについての予測性能Ｐｆｎを比較することにより、現行ラインに適用するブロックサイズを選択する（Ｓ６０６）。例えば、最も高速なブロックサイズ、つまりＰｆｎが最も小さいクロック数（ｃｌｋ数）となるブロックサイズが選択される。
【００８３】
図５に戻り、データ解析部８０により現行ラインに適用されるブロックサイズが選択されると（Ｓ５０２）、再構成判定部９０は、前ラインから現行ラインへの移行において、ブロックサイズの変更が有るか否かを判定する（Ｓ５０３）。つまり、前ラインに適用されたブロックサイズと現行ラインに適用されるブロックサイズが、互いに異なるか否かが判定される。
【００８４】
ブロックサイズの変更が有る場合、再構成制御部２００は、現行ラインに適用されるブロックサイズに対応した回路構成を再構成可能回路１００内に再構成する（Ｓ５０４）。一方、ブロックサイズの変更が無い場合には、再構成が行われず、前ラインに適用されたブロックサイズに対応した回路構成が再構成可能回路１００内に維持される。
【００８５】
そして、データ判定部３０とデータ削除部４０とデータ処理部５０とキャッシュ制御部６０により、現行ラインの画像データに対して、データ処理（例えば図２を利用して説明したキャッシュ処理）が実行される（Ｓ５０５）。
【００８６】
図７は、画像データのキャッシュ処理を示すフローチャートである。画像データ内の各ラインごとに、そのラインについて選択されたブロックサイズにより、そのラインに属する複数の画素データがブロックに纏められ、ブロックごとに図７に示すキャッシュ処理が実行される。
【００８７】
まず、データ判定部３０が、ブロック内の全画素データを確認し、ブロック内の全画素データが同一であるか否かを判定する（Ｓ７０１）。ブロック内の全画素データが同一であれば、そのブロックはヒット状態にあると判定され、ブロック内の全画素データのうち１つでも他と異なる画素データがあれば、そのブロックはミス状態にあると判定される。
【００８８】
ブロックがヒット状態の場合、データ削除部４０は、そのブロック内の画素データのうちの１つだけを残して、例えば先頭の画素データのみを残して、他の画素データを削除する（Ｓ７０２）。
【００８９】
そして、データ処理部５０は、削除されずに残された画素データに対してデータ処理、例えば色変換処理やフィルタ処理等の画像処理を実行し（Ｓ７０３：図２参照）、キャッシュ制御部６０は、ブロック内における１つの画素データに対する処理結果をコピーして他の画素データに関する処理結果を得る（Ｓ７０４：図２参照）。
【００９０】
一方、ブロックがミス状態の場合に、データ処理部５０は、ブロック内の全画素データの各々に対してデータ処理、例えば色変換処理やフィルタ処理等の画像処理を実行する（Ｓ７０５）。
【００９１】
図５に戻り、現行ラインに対するキャッシュ処理が終了すると（Ｓ５０５）、画像データ内の全領域、つまり全ラインに対する処理が終了したか否かが確認され（Ｓ５０６）、全ラインに対する処理が終了するまでＳ５０２からＳ５０５の処理が繰り返される。そして、全ラインに対する処理が完了すると図５のフローチャートが終了する。
【００９２】
上述した具体例においては、画像データを複数のラインに分割しているが、画像データの分割については、いくつかの変形例も可能である。
【００９３】
図８は、画像データの分割に係る変形例を説明するための図である。図８（Ｉ）には、可変領域による分割の具体例が図示されている。図８（Ｉ）の具体例では、ヒット状態が続く複数の画素データが１つの領域とされる。つまり、図８（Ｉ）において、ラインの先頭から続く複数の画素データＡにより領域１が形成される。
【００９４】
但し、領域が小さく成りすぎることを防ぐために、分割の最低画素数を設けることが望ましい。図８（Ｉ）の具体例では、分割の最低画素数が１００画素とされている。したがって、ヒット状態が続かない場合においても、１００画素の集合により領域２が形成される。
【００９５】
図８（Ｉ）の可変領域による分割によれば、ヒット状態が続く複数の画素データが１つの領域に纏められるため、その領域に対して、例えば最大のブロックサイズを適用してもヒット状態が続き、その領域におけるキャッシュ処理の性能が大いに高められる。もちろん、ヒット状態が続かない領域においては、その領域内における画素データの解析結果に基づいて、その領域に応じたブロックサイズが選択される。
【００９６】
図８（ＩＩ）には、二次元領域による分割の具体例が図示されている。例えば、図８（ＩＩ）に示すように、画像データが、複数の二次元領域１，２，３，４，・・・に分割されてもよい。なお、領域が二次元の場合には、ブロックの形状が二次元であってもよい。
【００９７】
図９は、画像データの処理時間に関するシミュレーション結果を示す図である。図９には、本発明に係る具体例Ａ，Ｂと比較例について、同一の画像データに同一の画像処理を行った場合における結果が図示されている。
【００９８】
具体例Ａは、画像データを複数のラインに分割して、各ラインごとにブロックサイズ（ＢＳ２またはＢＳ４）を選択した場合における、画像データ全体に対する画像処理の処理時間を示している。
【００９９】
また、具体例Ｂは、画像データを可変領域により分割（図８（Ｉ）参照）して、各可変領域ごとにブロックサイズ（ＢＳ２またはＢＳ４）を選択した場合における、画像データ全体に対する画像処理の処理時間を示している。
【０１００】
これらに対し、比較例は、ブロックサイズを２（ＢＳ２）に固定して、画像データ全体に対して画像処理を行った場合の結果である。
【０１０１】
比較例に対して、本発明に係る具体例Ａと具体例Ｂは、共に、約１．３倍程度に高速化（処理時間が短縮）されている。つまり、各領域ごとにブロックサイズを選択することにより、画像処理に係る性能の向上が認められる。
【０１０２】
なお、図９のシミュレーション結果においては、領域を１ラインに固定した具体例Ａと領域を可変とした具体例Ｂとの間に顕著な差が現れていないものの、画像データの状態によっては、例えば画素の配列状態などによっては、領域を可変とすることによる顕著な性能の向上が期待される。
【０１０３】
以上、本発明の好適な実施形態を説明したが、上述した実施形態は、あらゆる点で単なる例示にすぎず、本発明の範囲を限定するものではない。本発明は、その本質を逸脱しない範囲で各種の変形形態を包含する。
【符号の説明】
【０１０４】
１０  ロードバッファ、２０  データ分割部、３０  データ判定部、４０  データ削除部、５０  データ処理部、６０  キャッシュ制御部、７０  ストアバッファ、８０  データ解析部、９０  再構成判定部、１００  再構成可能回路、１１０  再構成メモリ、１２０  ＤＲＡＭ、２００  再構成制御部。
【図１】
0006365102.tif 000002
【図２】
0006365102.tif 000003
【図３】
0006365102.tif 000004
【図４】
0006365102.tif 000005
【図５】
0006365102.tif 000006
【図６】
0006365102.tif 000007
【図７】
0006365102.tif 000008
【図８】
0006365102.tif 000009
【図９】
0006365102.tif 000010