特許第6365102号(P6365102)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

<>
  • 特許6365102-データ処理装置およびプログラム 図000002
  • 特許6365102-データ処理装置およびプログラム 図000003
  • 特許6365102-データ処理装置およびプログラム 図000004
  • 特許6365102-データ処理装置およびプログラム 図000005
  • 特許6365102-データ処理装置およびプログラム 図000006
  • 特許6365102-データ処理装置およびプログラム 図000007
  • 特許6365102-データ処理装置およびプログラム 図000008
  • 特許6365102-データ処理装置およびプログラム 図000009
  • 特許6365102-データ処理装置およびプログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6365102
(24)【登録日】2018年7月13日
(45)【発行日】2018年8月1日
(54)【発明の名称】データ処理装置およびプログラム
(51)【国際特許分類】
   G06F 8/656 20180101AFI20180723BHJP
   G06F 9/445 20180101ALI20180723BHJP
   G06F 15/80 20060101ALI20180723BHJP
   G06T 1/20 20060101ALI20180723BHJP
   H04N 1/00 20060101ALI20180723BHJP
   H03K 19/177 20060101ALI20180723BHJP
【FI】
   G06F8/656
   G06F9/445 120
   G06F15/80
   G06T1/20 A
   H04N1/00 E
   H03K19/177
【請求項の数】5
【全頁数】16
(21)【出願番号】特願2014-165063(P2014-165063)
(22)【出願日】2014年8月14日
(65)【公開番号】特開2016-42223(P2016-42223A)
(43)【公開日】2016年3月31日
【審査請求日】2017年7月20日
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士ゼロックス株式会社
(74)【代理人】
【識別番号】110001210
【氏名又は名称】特許業務法人YKI国際特許事務所
(72)【発明者】
【氏名】松本 大輔
【審査官】 三坂 敏夫
(56)【参考文献】
【文献】 特開2006−127460(JP,A)
【文献】 特開2012−073994(JP,A)
【文献】 国際公開第2013/011608(WO,A1)
【文献】 特開2008−242850(JP,A)
【文献】 特開2013−161471(JP,A)
【文献】 特開2006−033161(JP,A)
【文献】 特開平01−183286(JP,A)
【文献】 浅野 修一 他,「FPGAを用いた全探索法による可変ブロックサイズ動き予測の実現」,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2010年 5月14日,第110巻 第32号,第7頁-第12頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00− 8/38
8/60− 8/77
9/44− 9/451
15/80
G06T 1/20
H04N 1/00
H03K 19/173−19/177
(57)【特許請求の範囲】
【請求項1】
対象データ内の複数領域において各領域ごとにデータを解析することにより、複数のブロックサイズの各々を処理単位としたデータの処理について予測される指標を導出し、複数のブロックサイズの中からそれらの指標を比較して当該領域におけるデータの処理単位として適用されるブロックサイズを選択する解析部と、
対象データ内の複数領域においてデータを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する制御部と、
を有する、
ことを特徴とするデータ処理装置。
【請求項2】
請求項に記載のデータ処理装置において、
前記解析部は、各領域ごとに複数のブロックサイズの各々を処理単位としたデータの処理について予測される処理時間を反映した前記指標を導出し、複数のブロックサイズの中から処理時間に係る選択条件を満たすブロックサイズを選択する、
ことを特徴とするデータ処理装置。
【請求項3】
請求項1または2に記載のデータ処理装置において、
前記解析部は、複数のブロックサイズについて、各ブロックサイズごとに、当該ブロックサイズの回路を再構成可能回路内に構成するのに必要な再構成時間と、当該ブロックサイズの回路を利用したデータの処理に必要なデータ処理時間と、を含む前記指標を導出する、
ことを特徴とするデータ処理装置。
【請求項4】
請求項1から3のいずれか1項に記載のデータ処理装置において、
前記解析部は、画像データ内の複数領域において画素データを解析することにより、各領域ごとに、互いに異なる画素数に対応した複数のブロックサイズの中から当該領域に適用されるブロックサイズを選択し、
前記制御部は、画像データ内の複数領域において画素データを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する、
ことを特徴とするデータ処理装置。
【請求項5】
コンピュータに、
対象データ内の複数領域において各領域ごとにデータを解析することにより、複数のブロックサイズの各々を処理単位としたデータの処理について予測される指標を導出し、複数のブロックサイズの中からそれらの指標を比較して当該領域におけるデータの処理単位として適用されるブロックサイズを選択する解析機能と、
対象データ内の複数領域においてデータを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する制御機能と、
を実現させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置およびプログラムに関する。
【背景技術】
【0002】
対象データ内のデータを処理するデータ処理装置として、例えば、画像データに対して色変換処理やフィルタ処理などの画像処理を施す画像処理装置が知られており、従来からその画像処理に係る技術がいくつか提案されている。
【0003】
例えば、特許文献1には、複数の画素をパックとしてまとめ、パック内の画素が同等な場合に画素データを削除してその画素データに対する処理を回避することにより、画像処理を高速化する技術が記載されている。
【0004】
また、特許文献2には、カラー画像のデータを並列に画像処理する複数の画像処理プロセッサを備えたカラー画像処理装置が記載されている。つまり、画像処理プロセッサを複数とすることにより画像処理の高速化が実現される。
【0005】
また、特許文献3には、画像データに対してベクター型の処理を行うベクター処理部とベクター型の処理が行われた画像データに対してスカラー型の処理を行うスカラー処理部を備えた画像処理装置が記載されている。つまり、ベクター型の処理とスカラー型の処理のそれぞれに適した複数の処理部を用いて画像処理の高速化が実現される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2012−231230号公報
【特許文献2】特開平5−143720号公報
【特許文献3】特開2008−40614号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、対象データ内の複数領域において、各領域ごとにその領域に適用されるブロックサイズによりデータを処理することを目的とする。
【課題を解決するための手段】
【0008】
請求項1に係る発明は、対象データ内の複数領域において各領域ごとにデータを解析することにより、複数のブロックサイズの各々を処理単位としたデータの処理について予測される指標を導出し、複数のブロックサイズの中からそれらの指標を比較して当該領域におけるデータの処理単位として適用されるブロックサイズを選択する解析部と、対象データ内の複数領域においてデータを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する制御部とを有することを特徴とするデータ処理装置である。
【0010】
請求項に係る発明は、請求項に記載のデータ処理装置において、前記解析部は、各領域ごとに複数のブロックサイズの各々を処理単位としたデータの処理について予測される処理時間を反映した前記指標を導出し、複数のブロックサイズの中から処理時間に係る選択条件を満たすブロックサイズを選択する、ことを特徴とするデータ処理装置である。
【0011】
請求項に係る発明は、請求項1または2に記載のデータ処理装置において、前記解析部は、複数のブロックサイズについて、各ブロックサイズごとに、当該ブロックサイズの回路を再構成可能回路内に構成するのに必要な再構成時間と、当該ブロックサイズの回路を利用したデータの処理に必要なデータ処理時間と、を含む前記指標を導出する、ことを特徴とするデータ処理装置である。
【0012】
請求項に係る発明は、請求項1から3のいずれか1項に記載のデータ処理装置において、前記解析部は、画像データ内の複数領域において画素データを解析することにより、各領域ごとに、互いに異なる画素数に対応した複数のブロックサイズの中から当該領域に適用されるブロックサイズを選択し、前記制御部は、画像データ内の複数領域において画素データを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する、ことを特徴とするデータ処理装置である。
【0013】
請求項に係る発明は、コンピュータに、対象データ内の複数領域において各領域ごとにデータを解析することにより、複数のブロックサイズの各々を処理単位としたデータの処理について予測される指標を導出し、複数のブロックサイズの中からそれらの指標を比較して当該領域におけるデータの処理単位として適用されるブロックサイズを選択する解析機能と、対象データ内の複数領域においてデータを処理するにあたり、各領域ごとにその領域に適用されるブロックサイズの回路を再構成可能回路内に構成する制御機能と、を実現させることを特徴とするプログラムである。
【発明の効果】
【0014】
請求項1に係る発明によれば、対象データ内の複数領域において、各領域ごとにその領域に適用されるブロックサイズによりデータを処理することができる。また、請求項1に係る発明によれば、複数のブロックサイズの各々を処理単位としたデータの処理についての予測を踏まえて、各領域に適用されるブロックサイズを選択することができる。
【0016】
請求項に係る発明によれば、複数のブロックサイズの各々を処理単位としたデータの処理について予測される処理時間を踏まえて、各領域に適用されるブロックサイズを選択することができる。
【0017】
請求項に係る発明によれば、再構成時間とデータ処理時間を考慮して各領域に適用されるブロックサイズを選択することができる。
【0018】
請求項に係る発明によれば、画像データ内の複数領域において、各領域ごとに、互いに異なる画素数に対応した複数のブロックサイズの中からその領域に適用されるブロックサイズを選択することができる。
【0019】
請求項に係る発明によれば、対象データ内の複数領域において、各領域ごとにその領域に適用されるブロックサイズによりデータを処理することができる。また、請求項5に係る発明によれば、複数のブロックサイズの各々を処理単位としたデータの処理についての予測を踏まえて、各領域に適用されるブロックサイズを選択することができる。
【図面の簡単な説明】
【0020】
図1】本発明の実施において好適なデータ処理装置の具体例を示す図である。
図2】対象データに対するキャッシュ処理を説明するための図である。
図3】データ解析部の具体例を示す図である。
図4】BS予測部の具体例を示す図である。
図5図1のデータ処理装置が実行する処理を纏めたフローチャートである。
図6】画像データの解析処理を示すフローチャートである。
図7】画像データのキャッシュ処理を示すフローチャートである。
図8】画像データの分割に係る変形例を説明するための図である。
図9】画像データの処理時間に関するシミュレーション結果を示す図である。
【発明を実施するための形態】
【0021】
図1は、本発明の実施において好適なデータ処理装置の具体例を示す図である。図1のデータ処理装置は、再構成可能回路100と再構成メモリ110とDRAM120と再構成制御部200を備えており、処理対象となるデータに対してデータ処理を実行する。図1のデータ処理装置は、例えばDRP(Dynamic Reconfigurable Processor:動的再構成可能プロセッサ)などにより実現することができる。なお、DRPに限らず、回路を再構成することができる他のデバイスにより図1のデータ処理装置が実現されてもよい。
【0022】
再構成可能回路100は、その内部の論理回路構成を動的に、すなわち当該回路の動作中に再構成が可能な回路であり、例えば多数の回路要素(PE:プロセッサエレメント)を内部に備えている。そして、それら回路要素間の接続構成が再構成データ(コンフィギュレーションデータ)に従って比較的高速に再構成可能(組み替え可能)となっており、再構成された回路構成により、図1に示す再構成可能回路100内の各部が実現される。
【0023】
再構成可能回路100内の回路構成は、再構成メモリ110に記憶された再構成データに基づいて再構成(リコンフィギュレーション)される。再構成メモリ110には、1つ以上の回路構成に対応した再構成データが記憶可能である。図1に示す具体例では、再構成メモリ110内に、再構成データBS2と再構成データBS4と再構成データBS8が記憶されている。
【0024】
また、図1のデータ処理装置において利用される多数の再構成データは、DRAM120に記憶されており、DRAM120に記憶された再構成データが、必要に応じて再構成メモリ110にロード(移し入れ)され、再構成可能回路100内の回路の再構成に利用される。図1に示す具体例では、DRAM120内に、多数の再構成データBSn(nは自然数)が記憶されている。
【0025】
再構成制御部200は、図1のデータ処理装置内の再構成に係る処理を制御する。再構成制御部200は、例えば演算機能等を実現するハードウェアとその動作を規定するソフトウェア(制御プログラム等)によって構成され、ハードウェアとソフトウェアとの協働により実現することができる。再構成制御部200の機能は、例えば、DRP内において実現されてもよいし、コンピュータ等により実現されてもよい。
【0026】
再構成制御部200の機能をコンピュータにより実現する場合には、後に詳述する再構成制御部200の制御機能に対応したプログラム(制御プログラム)が、例えば、ディスクやメモリなどのコンピュータが読み取り可能な記憶媒体に記憶され、その記憶媒体を介してコンピュータに提供される。もちろん、インターネット等の電気通信回線を介して当該プログラムがコンピュータに提供されてもよい。そして、コンピュータが備えるCPUやメモリ等のハードウェア資源と、提供された当該プログラム(ソフトウェア)との協働により、再構成制御部200の機能が実現される。
【0027】
また、再構成制御部200の機能の他に、再構成可能回路100内において実現される機能の一部、例えばデータ解析部80の機能がコンピュータ等により実現されてもよい。
【0028】
図1のデータ処理装置によって処理されるデータの好適な具体例は画像データであり、例えばコンピュータなどの外部の装置から、図1のデータ処理装置に画像データが提供され、図示しないデータバス等を介して、画像データが再構成可能回路100内のロードバッファ10に入力される。また、図1のデータ処理装置が、画像読み取り機能(スキャン機能)等を備えた画像処理装置内に組み込まれ、その機能を介して紙などの媒体から得られた画像データがロードバッファ10に入力されてもよい。さらに、図1のデータ処理装置による処理後の画像データがストアバッファ70から出力され、処理後の画像データに対応した画像が紙などに印刷されてもよいし、処理後の画像データが外部の装置に提供されてもよい。このように図1のデータ処理装置により画像処理装置が実現されてもよい。
【0029】
なお、画像データは、図1のデータ処理装置において処理が可能な好適な具体例の一つに過ぎず、図1のデータ処理装置が画像データ以外のデータを処理してもよい。例えば、図1のデータ処理装置が、情報処理装置、情報処理端末、オーディオ・ビジュアル機器やその他の家電機器、車両等に搭載され、様々なデータ処理や制御等に利用されてもよい。
【0030】
再構成可能回路100内には、処理対象となるデータ(対象データ)を処理するための回路構成が実現される。例えば、対象データに対してキャッシュ処理を施すための回路構成が実現される。
【0031】
図2は、対象データに対するキャッシュ処理を説明するための図であり、図2(I)には、キャッシュ処理の具体例が示されている。つまり、図1の再構成可能回路100内に構成されるデータ処理部50とキャッシュ制御部60による、画像データに対するキャッシュ画像処理が図示されている。
【0032】
図2(I)の具体例において、処理対象となる画像データを構成する複数の画素データが、いくつかの画素データからなるブロックに纏められる。例えば、図2(I)に示すように、4個の画素データAからなるブロックに纏められる。
【0033】
データ処理部50は、画像データに対してデータ処理、つまり画像処理を行う。その画像処理において、ブロック内における1つの画素データに対する処理結果から他の全ての画素データの処理結果を得ることができる場合に、つまりヒット時に、データ処理部50は、ブロック内における1つの画素データに対する処理のみを実行して他の画素データに対する処理を省略する。
【0034】
例えば、ブロック内の画素データが全て同一である場合に、つまり、図2(I)に示す具体例のように、ブロック内の4つの画素データが全て同じ画素データAである場合に、データ処理部50は、ブロック内の先頭の画素データAのみに画像処理を施して処理結果である画像データA´を得て、他の画素データAに対する処理を省略する。
【0035】
そして、データ処理部50において画像処理が省略された場合に、つまりヒット時に、キャッシュ制御部60は、ブロック内における1つの画素データに対する処理結果から他の画素データの処理結果を得る。例えば、図2(I)に示す具体例のように、ブロック内における先頭の画素データAに関する処理結果である画像データA´をコピーして、他の画素データAに関する処理結果とする。
【0036】
これにより、例えば、図2(I)に示す具体例のように、4個の画素データAからなるブロックに対する画像処理結果として、4個の画素データA´からなるブロックが得られる。
【0037】
一方、ブロック内における1つの画素データに対する処理結果から他の全ての画素データの処理結果を得ることができない場合、つまりミス時に、データ処理部50は、ブロック内における全ての画素データの各々に対して処理を実行して各画素データごとに処理結果を得る。
【0038】
そして、画像データ内における複数の画素データが次々にブロックに纏められ、ブロックごとに図2(I)のキャッシュ処理が実行される。
【0039】
図2(II)は、キャッシュ処理の性能に関する具体例を示している。キャッシュ処理の性能は、ブロック内におけるデータ数、つまり、1つのブロックを構成する画素数であるブロックサイズに依存する。図2(II)には、ブロックサイズが「2」「4」「8」の場合におけるキャッシュ処理の性能が示されている。
【0040】
図2(II)に示す具体例において、ブロックサイズ「2」は、2個の画素データを1つのブロックに纏めたものであり、ブロックサイズ「4」は、4個の画素データを1つのブロックに纏めたものであり、ブロックサイズ「8」は、8個の画素データを1つのブロックに纏めたものである。
【0041】
判定データ数は、各ブロックがヒット状態にあるか又はミス状態にあるかを判定するのに必要とされるデータ数である。例えば、ブロックサイズ「2」の場合に、各ブロックを構成する2つの画素データが同じである場合にそのブロックがヒットとなり、2つの画素データが互いに異なる場合にそのブロックがミスとなる。また、ブロックサイズ「4」の場合には、各ブロックを構成する4つの画素データが全て同じである場合に、そのブロックがヒットとなり、その他の場合にはミスとなる。同様に、ブロックサイズ「8」の場合には、各ブロックを構成する8つの画素データが全て同じである場合に、そのブロックがヒットとなり、その他の場合にはミスとなる。
【0042】
図2(II)には、キャッシュ処理の性能として、通常パイプライン処理を基準とした場合における性能比が示されている。通常パイプライン処理では、ブロックを単位としたキャッシュ処理が行われず、複数の画素データが各画素データごとに次々に画像処理される。
【0043】
図2(II)において、「ヒット時」は、ヒット状態の場合における性能比を示しており、「ミス時」は、ミス状態の場合における性能比を示している。例えば、ブロックサイズ「2」の場合、「ヒット時」において、2つの画素データのうちの一方のみを画像処理すればよいため、2つの画素データの両方を処理する通常パイプライン処理の場合に比べて、2.0倍の性能向上(例えば処理時間が1/2に短縮)となる。また、ブロックサイズ「4」「8」の場合、「ヒット時」において、それぞれ4.0倍と8.0倍の性能向上となる。
【0044】
一方、「ミス時」においては、ブロック内の複数の画素データが各画素データごとに次々に画像処理されるため、ブロックサイズに係わらず性能向上が1.0倍となる。つまり通常パイプライン処理と同じになる。
【0045】
また、図2(II)には、状態変化時の制御遅延(クロック数)が示されている。例えば、画像データ内において、ブロックサイズ「2」の複数ブロックを次々に処理する場合に、ブロックの状態が、ヒットからミスまたはミスからヒットへ変化する際に、1クロック分の制御遅延が必要となる。なお、ブロックサイズ「4」「8」の場合、状態変化時の制御遅延は、それぞれ3クロックと7クロックになる。この制御遅延は、状態変化制御の回路が、フィードバック回路により構成されている事によるフィードバック遅延である。但しキャッシュ処理の例であり、必ず発生する遅延では無い。
【0046】
一般に、ブロックサイズが大きいほど、ヒット時における性能が向上する。しかし、ブロックサイズが大きいほど、ヒットする確率が低くなってしまう。また、ヒットする確率は、対象データ内のデータの状態にも依存する。例えば、画像データを構成する複数の画素データについて、近傍データとの類似性が高い場合には、比較的大きなブロックサイズでもヒットする確率が高まる。一方、近傍データとの類似性が低い場合には、比較的小さなブロックサイズとしなければヒットする確率を高めることができない。
【0047】
そこで、図1のデータ処理装置は、対象データを複数領域に分割し、各領域ごとにデータを解析することにより、その領域におけるデータのキャッシュ処理に適用されるブロックサイズを決定する。
【0048】
図1に戻り、対象データの分割と解析とキャッシュ処理は、再構成可能回路100内に構成される各部によって実現される。そこで、再構成可能回路100内に構成される各部の機能と処理等について説明する。なお、以下においては、対象データとして画像データを処理対象とする具体例について説明する。
【0049】
処理対象となる画像データは、一時的にロードバッファ10に記憶された後、データ分割部20に送られる。データ分割部20は、画像データを複数の画像領域に分割する。画像データは、例えば、縦方向と横方向に配列された複数の画素データで構成されている。つまり、横方向に一列に配列された複数の画素データにより各ラインが構成され、複数のラインが縦方向に並べられて画像データが構成される。データ分割部20は、例えば、1つのラインを1つの画像領域として、画像データを複数のラインに分割する。
【0050】
データ判定部30とデータ削除部40とデータ処理部50とキャッシュ制御部60は、画像データに対してデータ処理(例えば図2を利用して説明したキャッシュ処理)を実行する。複数のラインに分割された画像データは、各ラインごとにデータ処理を施され、処理後の画像データがストアバッファ70に記憶される。
【0051】
データ判定部30からキャッシュ制御部60におけるデータ処理に先だって、画像データの各ラインは、データ解析部80において解析処理される。
【0052】
データ解析部80は、複数領域に分割された画像データを解析することにより、各領域ごとにその領域におけるデータ処理(例えば図2を利用して説明したキャッシュ処理)の処理単位として適用されるブロックサイズを決定する。データ解析部80は、各ラインごとに複数の画素データを解析することにより、複数のブロックサイズの中から、そのラインに適用されるブロックサイズを選択する。
【0053】
図3は、データ解析部80の具体例を示す図である。図3の具体例において、データ解析部80は、解析制御部82と、複数のブロックサイズ(BS)に対応した複数のBS予測部84と、BS(ブロックサイズ)選択部86を備えている。
【0054】
データ分割部20において複数のラインに分割された画像データは、各ラインごとに複数のBS予測部84に送られる。図3に示す具体例において、データ解析部80は、ブロックサイズ2,4,8(BS2,BS4,BS8)に対応した3つのBS予測部84を備えている。各BS予測部84は、それに対応するブロックサイズを各ラインに適用した場合におけるヒット数とミス数を計数し、さらに、ヒットとミスの切替わり数を計数する。
【0055】
図4は、BS予測部84の具体例を示す図である。図3における3つのBS予測部84の各々が図4に示す構成を備えている。
【0056】
BS予測部84は、それに対応するブロックサイズを各ラインに適用した場合におけるヒット数を計数するヒットカウンタと、ミス数を計数するミスカウンタと、ヒットとミスの切替わり数を計数する切替わりカウンタを備えている。
【0057】
例えば、ブロックサイズ2(BS2)のBS予測部84は、データ分割部20から各ラインごとに得られる複数の画素データに対して、ブロックサイズ2を適用した場合におけるヒット数とミス数と切替わり数をそれぞれ計数する。つまり、2つの画素からなるブロックごとにそのブロック内の画素データを確認し、ブロック内の画素データが全て同一であればヒットカウンタにおいてヒット数が計数され、ブロック内の画素データに1つでも他と異なるものがあればミスカウンタにおいてミス数が計数される。そして、各ライン内においてブロックを移動させながら各位置においてヒットまたはミスの判定が行われ、互いに隣り合うブロックの位置において、ヒットからミスに又はミスからヒットに状態が切り替わる場合に、切替わりカウンタにおいて切替わり数が計数される。
【0058】
同様に、ブロックサイズ4(BS4)のBS予測部84は、データ分割部20から各ラインごとに得られる複数の画素データに対して、4つの画素からなるブロックサイズ4を適用した場合におけるヒット数とミス数と切替わり数をそれぞれ計数する。また、ブロックサイズ8(BS8)のBS予測部84は、データ分割部20から各ラインごとに得られる複数の画素データに対して、8つの画素からなるブロックサイズ8を適用した場合におけるヒット数とミス数と切替わり数をそれぞれ計数する。
【0059】
さらに、BS予測部84は、予測性能に係る指標を算出する指標算出部を備えている。指標算出部は、各カウンタから得られる計数値と解析制御部82から得られる回路管理データに基づいて、例えば次式に示す予測性能に係る指標Pfn(nはブロックサイズ)を算出する。
【0060】
(数1)
Pfn(clk)=ヒットブロック処理時間+ミスブロック処理時間+再構成時間+ロード時間+その他
ヒットブロック処理時間=ヒット数×1clk
ミスブロック処理時間=ミス数×nclk
再構成時間=回路構成時間+パイプラインデータ追い出し時間
ロード時間(再構成メモリ110に再構成データをロードするのに必要な時間)
【0061】
例えば、ブロックサイズ2(BS2)のBS予測部84において、ブロックサイズ2に関する予測性能Pf2が算出され、ブロックサイズ4(BS4)のBS予測部84において、ブロックサイズ4に関する予測性能Pf4が算出され、ブロックサイズ8(BS8)のBS予測部84において、ブロックサイズ8に関する予測性能Pf8が算出される。
【0062】
図3に戻り、BS(ブロックサイズ)選択部86は、各ラインごとに、複数のBS予測部84から得られる複数の予測性能Pfnを比較することにより、そのラインに適用するブロックサイズを決定する。BS選択部86は、複数のブロックサイズの中から処理時間に係る選択条件を満たすブロックサイズを選択する。例えば、ブロックサイズ2に関する予測性能Pf2と、ブロックサイズ4に関する予測性能Pf4と、ブロックサイズ8に関する予測性能Pf8の中から、最も高速なブロックサイズ、つまりPfnが最も小さいクロック数(clk数)となるブロックサイズを選択する。
【0063】
BS選択部86は、複数のラインについて、各ラインごとにそのラインに適用するブロックサイズを選択し、その選択結果を再構成判定部90へ出力する。
【0064】
図1に戻り、再構成判定部90は、画像データに対するデータ処理(例えば図2を利用して説明したキャッシュ処理)において、再構成可能回路100内の回路構成を再構成する必要がある場合に、再構成制御部200に対して再構成を要求する。
【0065】
画像データは、データ分割部20において複数のラインに分割され、各ラインごとにデータ処理される。そのデータ処理において、各ラインごとにそのラインに対して選択されたブロックサイズが適用される。
【0066】
図1に示す再構成可能回路100内の回路構成のうち、ブロックサイズに応じて、例えば、データ判定部30とデータ削除部40とキャッシュ制御部60に係る回路構成が再構成される。つまり、再構成可能回路100内の回路構成が部分的に再構成される。
【0067】
例えば、データ処理においてブロックサイズ2が適用される場合に、再構成メモリ110内の再構成データBS2に基づいて、ブロックサイズ2に対応した回路構成(データ判定部30とデータ削除部40とキャッシュ制御部60)が再構成可能回路100内に再構成(リコンフィギュレーション)される。
【0068】
同様に、ブロックサイズ4が適用される場合に、再構成メモリ110内の再構成データBS4に基づいて、ブロックサイズ4に対応した回路構成が再構成され、ブロックサイズ8が適用される場合に、再構成メモリ110内の再構成データBS8に基づいて、ブロックサイズ8に対応した回路構成が再構成される。
【0069】
再構成判定部90は、各ラインごとのデータ処理において、そのラインに適用されるブロックサイズに対した回路構成が再構成可能回路100内に構成されていない場合に、再構成を要求する割り込み信号を再構成制御部200に出力する。つまり、複数のラインについて各ラインごとにデータ処理が進められる際に、データ処理が行われている現行のラインに適用されたブロックサイズとは異なるブロックサイズを次のラインに適用する場合に、再構成判定部90から割り込み信号が出力される。
【0070】
再構成制御部200は、再構成判定部90から割り込み信号を得ると、データ解析部80において選択されたブロックサイズに対応した回路構成を再構成可能回路100内に再構成する。
【0071】
図5は、図1のデータ処理装置が実行する処理を纏めたフローチャートである。図1に示した構成(各部)については図1の符号を利用して、図5のフローチャートについて説明する。
【0072】
データ分割部20は、ロードバッファ10から得られる画像データを複数の画像領域に分割する(S501)。データ分割部20は、例えば、1つのラインを1つの画像領域として、画像データを複数のラインに分割する。
【0073】
データ処理に先だって、画像データの各ラインは、データ解析部80において解析処理される。データ解析部80は、各ラインごとに複数の画素データを解析することにより、複数のブロックサイズの中から、そのラインに適用されるブロックサイズを選択する(S502)。
【0074】
図6は、画像データの解析処理を示すフローチャートである。データ解析部80は、各ラインごとに図6に示す解析処理を実行して、そのラインに適用されるブロックサイズを選択する。
【0075】
まず、データ解析部80は、複数のブロックサイズについて各ブロックサイズごとに、そのブロックサイズを、解析の対象となっている現行ラインに適用した場合における、ヒット数とミス数と切替わり数を計数する(S601)。例えば、ブロックサイズ2,4,8の各々について、ヒット数とミス数が計数され、さらに、ヒットとミスの切替わり数が計数される(図4参照)。
【0076】
次に、データ解析部80は、各ブロックサイズごとに、そのブロックサイズを現行ラインに適用した場合における再構成時間を算出する(S602)。再構成時間は、ブロックサイズに変更が有る場合(1)とブロックサイズに変更が無い場合(2)において、互いに算出手法が異なる。
【0077】
現行ラインよりも1つだけ前のライン(前ライン)に適用されたブロックサイズと同じブロックサイズについては、つまり、ブロックサイズに変更が無い場合には、前ラインに適用されたブロックサイズの回路構成を現行ラインにおいても利用できるため再構成の必要がなく、従って再構成時間は0(ゼロ)となる。
【0078】
一方、前ラインに適用されるブロックサイズとは異なるブロックサイズについては、つまり、ブロックサイズに変更が有る場合には、前ラインに適用されたブロックサイズの回路構成から、現行ラインに適用されるブロックサイズの回路構成へと再構成する必要がある。そのため、再構成時間は、回路構成時間とデータ追出時間の和になる。なお、回路構成時間は、再構成可能回路100内に再構成データに対応した回路を再構成するのに必要とされる時間であり、データ追出時間は、その再構成の前に、前ラインの画像処理においてデータが回路構成から抜け切るまでに必要とされる時間である。
【0079】
次に、データ解析部80は、各ブロックサイズごとに、そのブロックサイズを現行ラインに適用した場合におけるロード時間を算出する(S603)。ロード時間は、各ブロックサイズに対応した再構成データが、再構成メモリ110内に無い場合(1)と再構成メモリ110内に有る場合(2)において互いに算出手法が異なる。
【0080】
再構成メモリ110内に再構成データが有るブロックサイズについては、再構成メモリ110へのロードが必要なく、従ってロード時間は0(ゼロ)となる。一方、再構成メモリ110内に再構成データが無いブロックサイズについては、DRAM120から再構成メモリ110へ再構成データのロードが必要となる。そのため、そのロードに必要とされる時間がロード時間となる。
【0081】
そして、データ解析部80は、各ブロックサイズごとに、予測性能に係る指標Pfn(数1式)を算出する(S604)。S601からS604までの処理は、各ブロックサイズごとに実行され、全てのブロックサイズについての解析が完了まで繰り返される(S605)。
【0082】
こうして、全てのブロックサイズについての解析が完了すると、データ解析部80は、全てのブロックサイズについての予測性能Pfnを比較することにより、現行ラインに適用するブロックサイズを選択する(S606)。例えば、最も高速なブロックサイズ、つまりPfnが最も小さいクロック数(clk数)となるブロックサイズが選択される。
【0083】
図5に戻り、データ解析部80により現行ラインに適用されるブロックサイズが選択されると(S502)、再構成判定部90は、前ラインから現行ラインへの移行において、ブロックサイズの変更が有るか否かを判定する(S503)。つまり、前ラインに適用されたブロックサイズと現行ラインに適用されるブロックサイズが、互いに異なるか否かが判定される。
【0084】
ブロックサイズの変更が有る場合、再構成制御部200は、現行ラインに適用されるブロックサイズに対応した回路構成を再構成可能回路100内に再構成する(S504)。一方、ブロックサイズの変更が無い場合には、再構成が行われず、前ラインに適用されたブロックサイズに対応した回路構成が再構成可能回路100内に維持される。
【0085】
そして、データ判定部30とデータ削除部40とデータ処理部50とキャッシュ制御部60により、現行ラインの画像データに対して、データ処理(例えば図2を利用して説明したキャッシュ処理)が実行される(S505)。
【0086】
図7は、画像データのキャッシュ処理を示すフローチャートである。画像データ内の各ラインごとに、そのラインについて選択されたブロックサイズにより、そのラインに属する複数の画素データがブロックに纏められ、ブロックごとに図7に示すキャッシュ処理が実行される。
【0087】
まず、データ判定部30が、ブロック内の全画素データを確認し、ブロック内の全画素データが同一であるか否かを判定する(S701)。ブロック内の全画素データが同一であれば、そのブロックはヒット状態にあると判定され、ブロック内の全画素データのうち1つでも他と異なる画素データがあれば、そのブロックはミス状態にあると判定される。
【0088】
ブロックがヒット状態の場合、データ削除部40は、そのブロック内の画素データのうちの1つだけを残して、例えば先頭の画素データのみを残して、他の画素データを削除する(S702)。
【0089】
そして、データ処理部50は、削除されずに残された画素データに対してデータ処理、例えば色変換処理やフィルタ処理等の画像処理を実行し(S703:図2参照)、キャッシュ制御部60は、ブロック内における1つの画素データに対する処理結果をコピーして他の画素データに関する処理結果を得る(S704:図2参照)。
【0090】
一方、ブロックがミス状態の場合に、データ処理部50は、ブロック内の全画素データの各々に対してデータ処理、例えば色変換処理やフィルタ処理等の画像処理を実行する(S705)。
【0091】
図5に戻り、現行ラインに対するキャッシュ処理が終了すると(S505)、画像データ内の全領域、つまり全ラインに対する処理が終了したか否かが確認され(S506)、全ラインに対する処理が終了するまでS502からS505の処理が繰り返される。そして、全ラインに対する処理が完了すると図5のフローチャートが終了する。
【0092】
上述した具体例においては、画像データを複数のラインに分割しているが、画像データの分割については、いくつかの変形例も可能である。
【0093】
図8は、画像データの分割に係る変形例を説明するための図である。図8(I)には、可変領域による分割の具体例が図示されている。図8(I)の具体例では、ヒット状態が続く複数の画素データが1つの領域とされる。つまり、図8(I)において、ラインの先頭から続く複数の画素データAにより領域1が形成される。
【0094】
但し、領域が小さく成りすぎることを防ぐために、分割の最低画素数を設けることが望ましい。図8(I)の具体例では、分割の最低画素数が100画素とされている。したがって、ヒット状態が続かない場合においても、100画素の集合により領域2が形成される。
【0095】
図8(I)の可変領域による分割によれば、ヒット状態が続く複数の画素データが1つの領域に纏められるため、その領域に対して、例えば最大のブロックサイズを適用してもヒット状態が続き、その領域におけるキャッシュ処理の性能が大いに高められる。もちろん、ヒット状態が続かない領域においては、その領域内における画素データの解析結果に基づいて、その領域に応じたブロックサイズが選択される。
【0096】
図8(II)には、二次元領域による分割の具体例が図示されている。例えば、図8(II)に示すように、画像データが、複数の二次元領域1,2,3,4,・・・に分割されてもよい。なお、領域が二次元の場合には、ブロックの形状が二次元であってもよい。
【0097】
図9は、画像データの処理時間に関するシミュレーション結果を示す図である。図9には、本発明に係る具体例A,Bと比較例について、同一の画像データに同一の画像処理を行った場合における結果が図示されている。
【0098】
具体例Aは、画像データを複数のラインに分割して、各ラインごとにブロックサイズ(BS2またはBS4)を選択した場合における、画像データ全体に対する画像処理の処理時間を示している。
【0099】
また、具体例Bは、画像データを可変領域により分割(図8(I)参照)して、各可変領域ごとにブロックサイズ(BS2またはBS4)を選択した場合における、画像データ全体に対する画像処理の処理時間を示している。
【0100】
これらに対し、比較例は、ブロックサイズを2(BS2)に固定して、画像データ全体に対して画像処理を行った場合の結果である。
【0101】
比較例に対して、本発明に係る具体例Aと具体例Bは、共に、約1.3倍程度に高速化(処理時間が短縮)されている。つまり、各領域ごとにブロックサイズを選択することにより、画像処理に係る性能の向上が認められる。
【0102】
なお、図9のシミュレーション結果においては、領域を1ラインに固定した具体例Aと領域を可変とした具体例Bとの間に顕著な差が現れていないものの、画像データの状態によっては、例えば画素の配列状態などによっては、領域を可変とすることによる顕著な性能の向上が期待される。
【0103】
以上、本発明の好適な実施形態を説明したが、上述した実施形態は、あらゆる点で単なる例示にすぎず、本発明の範囲を限定するものではない。本発明は、その本質を逸脱しない範囲で各種の変形形態を包含する。
【符号の説明】
【0104】
10 ロードバッファ、20 データ分割部、30 データ判定部、40 データ削除部、50 データ処理部、60 キャッシュ制御部、70 ストアバッファ、80 データ解析部、90 再構成判定部、100 再構成可能回路、110 再構成メモリ、120 DRAM、200 再構成制御部。
図1
図2
図3
図4
図5
図6
図7
図8
図9