(57)【特許請求の範囲】
【請求項１】
画像処理手段から出力された命令列を保持する保持手段と、
前記保持手段の保持する命令列の解釈に従って、前記画像処理手段が行う画像処理と時間的に並列に、第１の記憶手段に記憶された画像処理対象の画像データの一部から前記画像処理手段の画像処理の内容を決定する値を取得し、前記画像データの一部と前記値とを第２の記憶手段に転送する転送手段とを備えることを特徴とするデータ転送制御装置。
【請求項２】
前記転送手段は、前記画像処理手段が行う画像処理と時間的に並列に、前記画像処理手段により画像処理が行われて前記第２の記憶手段に記憶された画像データを、前記第１の記憶手段に転送することを特徴とする請求項１に記載のデータ転送制御装置。
【請求項３】
前記第２の記憶手段は、前記第１の記憶手段よりも低いレイテンシで動作することを特徴とする請求項１又は２に記載のデータ転送制御装置。
【請求項４】
前記第２の記憶手段は、前記第１の記憶手段よりも小容量であり、
前記転送手段は、前記第１の記憶手段が保持する画像処理対象の画像データを所定単位ごとに分割しながら前記第２の記憶手段に転送し、
前記転送手段は、所定単位ごとに前記画像処理手段の画像処理の内容を決定する値を取得して前記第２の記憶手段に転送することを特徴とする請求項１乃至３のいずれか１項に記載のデータ転送制御装置。
【請求項５】
前記画像処理手段は、前記転送手段によって前記第２の記憶手段に転送された画像データに画像処理を施し、前記第２の記憶手段に書き戻すことを特徴とする請求項１乃至４のいずれか１項に記載のデータ転送制御装置。
【請求項６】
前記画像処理手段は、前記保持手段の保持する命令列を書き換え可能であることを特徴とする請求項１乃至５のいずれか１項に記載のデータ転送制御装置。
【請求項７】
前記転送手段は、前記保持手段の示す命令列に基づいて、前記処理手段の処理した所定単位の画像データを前記第２の記憶手段から前記第１の記憶手段へ転送してから、前記第１の記憶手段の保持する処理対象の分割した画像データを前記第２の記憶手段へ転送することを特徴とする請求項１乃至６のいずれか１項に記載のデータ転送制御装置。
【請求項８】
前記転送手段は、画像データをライン単位に分割し、当該ライン毎に前記画像処理手段が用いる値を取得することを特徴とする請求項１乃至７のいずれか１項に記載のデータ転送制御装置。
【請求項９】
請求項１乃至８の何れか１項に記載のデータ転送制御装置と、前記画像処理手段と、前記第１の記憶手段と、前記第２の記憶手段とを備え、
前記画像処理手段は、前記転送手段により取得した前記値に応じて決定される画像処理を、前記転送手段が前記第２の記憶手段へ転送した画像データの一部に実行することを特徴とするデータ処理装置。
【請求項１０】
前記画像処理手段からアクセス可能なレジスタを内蔵し、前記画像処理手段による前記レジスタの書き換えにより前記データ転送制御装置の前記保持手段の保持内容を書き換え可能とするインタフェース手段を更に備えることを特徴とする請求項９に記載のデータ処理装置。
【請求項１１】
前記転送手段により取得する前記画像処理手段の画像処理の内容を決定する値は、分割した画像データが白一色であるのか否かを示す値であり、
前記画像処理手段は、前記値が分割した画像データが白一色であることを示す場合に２値化処理を簡略化することを特徴とする請求項９又は１０に記載のデータ処理装置。
【請求項１２】
前記画像処理手段は、誤差拡散法による２値化処理を実行し、前記転送手段から取得した値に基づいて前記分割した画像データは白一色であると判断する場合に、当該分割した画像データの次に処理する画像データへの誤差値を０とすることを特徴とする請求項１１に記載のデータ処理装置。
【請求項１３】
画像処理手段から出力された命令列を保持する保持手段を有するデータ転送制御装置の制御方法であって、
前記保持手段の保持する命令列の解釈に従って、前記画像処理手段が行う画像処理と時間的に並列に、第１の記憶手段に記憶された画像処理対象の画像データを分割し、前記分割した画像データから前記画像処理手段の画像処理の内容を決定する値を取得し、前記分割した画像データと前記値とを第２の記憶手段に転送する転送工程を備えることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理に適用可能なデータ転送制御装置、データ処理装置、及びデータ転送制御装置の制御方法に関する。
【背景技術】
【０００２】
近年、半導体プロセスの発展及びアーキテクチャの進化に伴い、各種機器に搭載されるプロセッサの処理速度が非常に高まってきている。これにより、以前は専用のハードウェアによってソフトウェアの介在無しに実現していた処理の幾つかは、プロセッサ上のソフトウェアによって実現することが可能になってきている。
【０００３】
プロセッサは、その動作周波数が上がることで性能の向上を遂げてきた。他方、メモリの動作周波数はプロセッサのそれよりも向上の度合いが低く、プロセッサとメモリの動作周波数の差がプロセッサの性能向上の足枷となってしまってきている。
【０００４】
そこで、プロセッサには、メモリアクセス時におけるレイテンシ（データ転送要求から実際にデータが転送されてくるまでの遅延時間）を短縮するために、プロセッサとメインメモリの間に低レイテンシでアクセスが可能なキャッシュメモリを配置する場合が多い（例えば、特許文献１参照）。キャッシュメモリは、同じアドレスのデータを繰り返しアクセスすることが多い、というデータアクセスの局所性を利用したものであり、プロセッサによって実行される多くの処理を該キャッシュメモリによって高速化することができる。
【０００５】
画像処理においても、高画質化を実現するために処理が複雑化すると共に多様化しており、ハードウェアによって単純かつ固定の処理を行うよりは、プロセッサによって柔軟に処理したいという要求が出てきている。
【０００６】
しかしながら、画像処理においては、処理対象となる画像のデータ容量が大きい上に、プロセッサからメインメモリに対し、データが配置されているアドレス範囲の端から順番にアクセスするような場合が多く、データアクセスの局所性が非常に低い。そのため、キャッシュメモリによる処理の高速化の効果が低い。その代わり、メインメモリに対するアクセスパターンに規則性が高く、画像処理内容が予め分かっていれば、プロセッサのアクセスを予測することが比較的容易である。
【０００７】
そこで、一般に、プロセッサとメインメモリの間に、キャッシュメモリだけでなく、プロセッサから自由に読み出し／書き込みが可能な小容量かつ低レイテンシでアクセス可能なローカルメモリを配置し、プロセッサがこのローカルメモリ上で処理を行う。このローカルメモリには、DMA（Direct Memory Access）可能な制御装置が接続されており、プロセッサの処理と並列に、次の処理に必要なデータをメインメモリ上からローカルメモリ上に転送し、処理結果のデータをローカルメモリ上からメインメモリ上に書き戻す。これによって、メインメモリへのアクセスレイテンシを隠蔽することができ、処理の高速化がなされる。
【特許文献１】特開平６−１２３２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した手法によって処理の高速化を実現しようとする場合、より高速なプロセッサを使う必要があるが、プロセッサの搭載対象とする製品によっては低消費電力、低発熱、低コスト等に対する要求が存在する。このような場合においては、プロセッサの処理能力をある程度低く抑える必要が生じる場合がある。そのため、例えば画像処理に用いるプロセッサが要求性能に満たない場合には、ある特定の画像処理を補佐する専用機能を有するハードウェアを追加しなくてはならなくなる。
【０００９】
しかし、画像処理をプロセッサで行うことによって画像処理のアルゴリズムをソフトウェアによって実装することが可能となり、同一のハードウェアを使用しているにも関わらず複数の画像処理のアルゴリズムを実現するという柔軟性を得ることが可能となるはずが、専用機能を有するハードウェアを追加してしまうことで柔軟性を低下させてしまうという問題がある。
【００１０】
また、プロセッサ側の画像処理は小容量のローカルメモリ上で行うため、処理対象となる画像データを幾つかに分割し、メインメモリ及びローカルメモリ間をデータ転送し、何回かに分けて処理を行う必要がある。このデータ転送はDMA制御装置によって制御されているが、DMA制御装置自体もDMA専用のハードウェアであり、決まったデータ転送手順を行うことしかできない。つまり、後から新しい画像処理内容を実現しようとしたときに、DMA制御装置が対応していないデータ転送手順を利用しなくてはならない場合には、後から新しい画像処理内容を実現することができないか、もしくは著しく処理速度が低下してしまうという問題がある。
【００１１】
本発明の目的は、画像処理の高速化と処理内容の柔軟性を実現することを可能とし、特に、転送装置の結果に応じて画像処理手段で効率良く画像データを処理することを可能としたデータ転送制御装置、データ処理装置、及びデータ転送制御装置の制御方法を提供することにある。
【課題を解決するための手段】
【００１２】
上述の目的を達成するために、本発明のデータ転送制御装置は、画像処理手段から出力された命令列を保持する保持手段と、前記保持手段の保持する命令列の解釈に従って、前記画像処理手段が行う画像処理と時間的に並列に、第１の記憶手段に記憶された画像処理対象の画像データの一部から前記画像処理手段の画像処理の内容を決定する値を取得し、前記画像データの一部と前記値とを第２の記憶手段に転送する転送手段とを備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、従来のように専用機能を有するハードウェアを追加しなくとも（同一のハードウェア構成を用いながら）、データ転送制御装置が、画像処理装置側の複数の画像処理の内容それぞれに適したデータ転送及び画像処理装置側の画像処理を補佐する処理を行うことができ、画像処理の高速化と処理内容の柔軟性を実現することが可能となる。特に、画像データを部分的に転送をしながら、この画像データの一部に適用する画像処理を決定する値を抽出することで、転送装置の結果に応じて画像処理手段で効率良く画像データを処理することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面に基づき説明する。
【００１７】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係るデータ処理装置の構成を示すブロック図である。
【００１８】
図１において、データ処理装置は、プロセッサ１、DMAプロセッサ２、ローカルメモリ３、ローカルメモリ４、メモリコントローラ５、メインメモリ６、DMAプロセッサインタフェース７、アドレスバス・データバス８を備えている。
【００１９】
プロセッサ１は、アドレス・データバス８に接続されているローカルメモリ上の画像データに対する画像処理を行う。DMAプロセッサ２は、プロセッサ１が行う画像処理の内容に応じて処理内容を変更可能であり、内蔵のインストラクションメモリに保持されている命令列を読み込み、命令列を解釈し実行する。また、DMAプロセッサ２は、プロセッサが行う画像処理と時間的に並列に、アドレス・データバス８に接続されているローカルメモリ３、４と、メモリコントローラ５を介したメインメモリ６との間のデータ転送を行う。インストラクションメモリは、32ビットを１ワードとし、128ワードの命令列を格納することが可能である。個々のワードには0〜127のアドレスが割り振られており、基本的には0番地から順に命令列を実行する。
【００２０】
また、DMAプロセッサ２は、プロセッサ１が行う画像処理の内容に応じて、画像処理対象の画像データをプロセッサ側の処理に都合の良い形式に並べ替えながら、プロセッサ１の画像処理対象とするメインメモリ上の画像データの一部分をローカルメモリ３（または４）に転送し、プロセッサ側の処理を補佐する処理を行いながら、プロセッサ１の画像処理対象とするメインメモリ上の画像データの一部分をローカルメモリ３（または４）に転送する。
【００２１】
また、DMAプロセッサ２は、プロセッサ１が行う画像処理の内容に応じて、プロセッサ側の画像処理に都合の良い形式で存在している画像データを後段の画像処理に都合の良い形式に変換しながら、プロセッサ１が画像処理を完了したローカルメモリ上の画像データをメインメモリ６に転送し、プロセッサ側の画像処理を補佐する処理を行いながら、プロセッサ１が画像処理を完了したローカルメモリ上の画像データをメインメモリ６に転送する。
【００２２】
DMAプロセッサインタフェース７は、DMAプロセッサ２と接続されていると共に、アドレス・データバス８経由でプロセッサ１からの読み出し及び書き込みが可能な複数のレジスタ（図３）を備えている。プロセッサ１によりDMAプロセッサインタフェース７の前記レジスタを書き換えることによって、DMAプロセッサ２のリセット状態の制御と、DMAプロセッサ２内のインストラクションメモリの書き換えを行うことができる。
【００２３】
ローカルメモリ３、４は、低レイテンシでアクセス可能なSRAM（Static RAM）から構成されている。メモリコントローラ５は、プロセッサ１、DMAプロセッサ２からアドレス・データバス８経由でメインメモリ６にアクセスする際の制御を行う。メインメモリ６は、アクセスには多くのレイテンシを必要とするが容量を大きくすることが可能なDRAM（Dynamic RAM）から構成されている。プロセッサ１、DMAプロセッサ２、ローカルメモリ３、４、メモリコントローラ５は、それぞれクロスバ接続されている。プロセッサ１とDMAプロセッサ２のアクセス要求先が同一でなければ、時間的に並列にローカルメモリ３、４、メインメモリ６にアクセスすることが可能になっている。
【００２４】
図２は、プロセッサ１及びDMAプロセッサ２において有効なメインメモリ６、ローカルメモリ３、４、DMAプロセッサインタフェース７のレジスタのアドレスマップ２１を示す図である。
【００２５】
図２において、メインメモリ６は、0x00000000〜0x03ffffffの範囲であり、容量が64Mbytesである。ローカルメモリ３は、0xc0000000〜0xc0001fffの範囲であり、容量が8Kbytesである。ローカルメモリ４は、0xc0002000〜0xc0003fffの範囲であり、容量が8Kbytesである。DMAプロセッサインタフェース７のレジスタは、0xe0000000〜0xefffffffの範囲である。0xf0000000〜0xffffffffの範囲は、プロセッサ１のブート及びプログラム格納用のROM領域になっている。
【００２６】
図３は、プロセッサ１からアクセス可能なDMAプロセッサインタフェース７のレジスタマップ３１を示す図である。
【００２７】
図３において、0xe0000000番地はresetレジスタ３２である。プロセッサ１がresetレジスタ３２に１を書き込むと、DMAプロセッサ２がreset 状態となり、プロセッサ１がresetレジスタ３２に０を書き込むと、DMAプロセッサ２がreset解除状態となる。resetレジスタ３２の初期値は１である。
【００２８】
0xe0000004番地はtrigger emitレジスタ３３である。プロセッサ１がtrigger emitレジスタ３３に１を書き込むと、DMAプロセッサ２に対してtriggerイベントを発生させることができる。DMAプロセッサ２はtriggerイベントを専用の命令によって検知することができる。
【００２９】
0xe0000008番地はtrigger statusレジスタ３４である。DMAプロセッサ２がtrigger emit命令を実行した後に、プロセッサ１がtrigger statusレジスタ３４を読み込むと、値として１を得る。以前にDMAプロセッサ２がtrigger emit命令を実行していない場合に、プロセッサ１がtrigger statusレジスタ３４を読み込むと、値として０を得る。プロセッサ１がtrigger statusレジスタ３４に０を書き込むと、trigger statusレジスタ３４が保持していた値がリセットされ、０が読み込めるようになる。trigger statusレジスタ３４の初期値は０である。
【００３０】
0xe000000c番地はmodeレジスタ３５である。プロセッサ１がmodeレジスタ３５に１を書き込むと、DMAプロセッサ２がインストラクションメモリ書き換え可能な停止状態となり、プロセッサ１がmodeレジスタ３５に０を書き込むと、DMAプロセッサ２が命令実行状態となる。modeレジスタ３５の初期値は0である。
【００３１】
0xe0000010番地はIMEM Addressレジスタ３６である。DMAプロセッサ２がインストラクションメモリ書き換え可能な停止状態にある時に、プロセッサ１がインストラクションメモリの書き換え対象のアドレスをIMEM Addressレジスタ３６に書き込むことで指定する。
【００３２】
0xe0000014番地はIMEM Dataレジスタ３７である。DMAプロセッサ２がインストラクションメモリ書き換え可能な停止状態にある時に、プロセッサ１がIMEM Dataレジスタ３７に値を書き込むことで、インストラクションメモリのIMEM Addressレジスタ３６で指定された番地にDMAプロセッサ２の命令として書き込むことができる。
【００３３】
次に、上記構成を有する本実施の形態のデータ処理装置の画像処理における動作例を図４乃至図７を参照しながら説明する。
【００３４】
図４は、画像処理の対象となる画像データを示す図である。
【００３５】
図４において、画像データは、横2048ピクセル、縦1536ピクセルから構成されている。１ピクセルは256階調の１バイトで存在している。プロセッサ１は、画像データを横2048ピクセルの１ライン2Kbytes単位に分割し、誤差拡散法によって二値画像に変換する画像処理を行う。
【００３６】
誤差拡散法による二値化は、注目しているピクセルの値が0〜127の場合には結果に０を出力し、128〜255の場合には結果に１を出力する。それと同時に、結果に０を出力した場合にはピクセル値を、結果に１を出力した場合にはピクセル値から127を引いた値を誤差値とし、後に処理するピクセル値に加算する。対象としているピクセルの座標を(x,y)とすると、加算の配分は、座標(x+1,y)のピクセルに誤差値の1/2、座標(x-1,y+1)のピクセルに誤差値の1/4、座標(x,y+1)のピクセルに誤差値の1/8と誤差値を8で割った余り、座標(x+1,y+1)のピクセルに誤差値の1/8とする。
【００３７】
ここで、画像処理対象とする画像データの中に横１ラインが白一色なものが存在していた場合には、上記の誤差拡散法による二値化の処理を簡略化することが可能となる。例えば白地に横に文字が表示されているような画像データが画像処理対象であった場合には、文字の上下の余白及び行間は白一色のラインとなる。
【００３８】
そこで、一回の処理単位とする横１ラインをメインメモリ６からローカルメモリ３（または４）にDMAプロセッサ２が転送する際に、DMAプロセッサ２は、転送した画像データの１バイト単位での最小値を同時に求めておく。プロセッサ１は、DMAプロセッサ２により算出された最小値が既定値よりも大きい場合は、ローカルメモリ側から画像データを読むこと無く出力結果を全て１とし、次のラインへの誤差値を０として画像処理を簡略化する。これは、画像処理の高速化につながる。プロセッサ１における上記最小値に関わる画像処理については下記の動作説明で詳述する。
【００３９】
図５は、DMAプロセッサ用プログラムを示す図である。
【００４０】
図５において、DMAプロセッサ用プログラムは、DMAプロセッサ２上で動作し、メインメモリ６とローカルメモリ３（または４）との間のデータの転送及び各データの最小値の計算を行うものであり、図７のフローチャートに示す処理を実行する。図５におけるar0 、ar1、ar7レジスタ、lp0レジスタ、ofst0レジスタ、gpr0、gpr1レジスタは、DMAプロセッサ２内のレジスタである。
【００４１】
まず、プロセッサ１は、DMAプロセッサ２のインストラクションメモリに対してDMAプロセッサ用プログラムの書き込みを行うために、DMAプロセッサインタフェース７のレジスタ（図３）にアクセスし、以下の処理を行う。
【００４２】
（１）DMAプロセッサインタフェース７のmodeレジスタである0xe000000c番地に１を書き込み、DMAプロセッサ２をインストラクションメモリ書き換え可能な状態とする。
【００４３】
（２）resetレジスタである0xe0000000番地に０を書き込み、DMAプロセッサ２のリセットを解除する。
【００４４】
（３）IMEM Addressレジスタである0xe0000010番地に図５の命令に対応したインストラクションメモリ内の番地を書き込む。
【００４５】
（４）IMEM Dataレジスタである0xe0000014番地に（３）で指定した図５のオペレーションコードを書き込む。
【００４６】
（５）図５の命令数分だけ（３）〜（４）を繰り返す。
【００４７】
（６）modeレジスタである0xe000000c番地に０を書き込み、DMAプロセッサ２を命令実行状態にする。
【００４８】
上記の処理により、DMAプロセッサ２は、そのインストラクションメモリの０番地から順に命令を実行し、画像データの転送と各画像データの最小値を求める。
【００４９】
図６は、ローカルメモリ側の詳細なアドレスマップを示す図である。
【００５０】
図６において、アドレスマップは、画像データのnライン目の画像処理を行う場合のデータの配置を示したものである。プロセッサ１は、nライン目の画像処理を開始する前に、まず、DMAプロセッサ２のデータ転送動作を開始するために以下の処理を行う。
【００５１】
プロセッサ１は、DMAプロセッサインタフェース７のresetレジスタである0xc0000000番地に0xc0000900を、trigger emitレジスタである0xc0000004番地に0x02000400を、trigger statusレジスタである0xc0000008番地に0x00000100をそれぞれ書き込み、画像処理の完了した画像データをローカルメモリ３（または４）からメインメモリ６に対して転送するアドレス範囲を指定する。更に、プロセッサ１は、0xc0000010番地に0x01002000を、0xc0000014番地に0xc0000100を、0xc0000018番地に0x00000800をそれぞれ書き込み、次の画像処理対象の画像データをメインメモリ６からローカルメモリ３（または４）に対して転送するアドレス範囲を指定する。
【００５２】
次に、プロセッサ１は、nライン目のデータ転送と同時にDMAプロセッサ２が計算した最小値を0xc0000020番地から読み込んでおく。そして、プロセッサ１は、0xe0000004番地に１を書き込むことで、triggerイベントをDMAプロセッサ２に伝達し、DMAプロセッサ２のインストラクションメモリの2番地の「WAIT」命令によって一時停止していた命令の実行を３番地から再開する。
【００５３】
図７は、DMAプロセッサ２の処理を示すフローチャートである。
【００５４】
図７において、DMAプロセッサ２は、そのインストラクションメモリの3〜5番地で、画像処理の完了したn-1ライン目の画像データをローカルメモリ３（または４）からメインメモリ６に対して転送するアドレス範囲と転送サイズを得て、8〜9番地を転送サイズ分繰り返すことでデータ転送を行う（ステップＳ１）。
【００５５】
該処理が完了したら、DMAプロセッサ２は、インストラクションメモリの0xa〜0xc 番地で、n+1ライン目の画像処理対象の画像データをメインメモリ６からローカルメモリ３（または４）に対して転送するアドレス範囲を得て、0x10〜0x12番地を転送サイズ分繰り返すことでデータ転送と最小値の計算を行う（ステップＳ２）。
【００５６】
該処理も完了したら、DMAプロセッサ２は、インストラクションメモリの0x13番地で計算した最小値をローカルメモリ３（または４）の0xc0000020番地に書き込み、処理が完了した合図としてプロセッサ１に対してtriggerイベントを通知し、インストラクションメモリの0x15番地で2番地にジャンプし、次の転送指示が来るまで待つ（ステップＳ３）。
【００５７】
DMAプロセッサ２が上記の処理を実行している間、プロセッサ１は、まず、DMAプロセッサ２が計算したnライン目の画像データの最小値を調べる。最小値が0xf0以上であった場合には、プロセッサ１は、nラインは全部白一色のラインであると判断し、ローカルメモリ３（または４）の0xc0002900〜0xc0002a00番地に判断結果を書き込む。最小値が0xf0より小さかった場合には、プロセッサ１は、ローカルメモリ３（または４）の0xc0002100〜0xc00028ffのnライン目の画像データを読み込み、上記誤差拡散法による画像処理を行い、ローカルメモリ３（または４）の0xc0002900〜0xc0002a00番地に画像処理結果を書き込む。
【００５８】
プロセッサ１は、上記の画像処理が完了した後、DMAプロセッサインタフェース７のtrigger statusレジスタである0xe0000008番地を読み込む。プロセッサ１は、０が読み込めた場合には１が読み込めるようになるまで待ち、１が読み込めた場合には0xe0000008番地に０を書き込んでtriggerイベントをクリアし、nライン目の処理を完了とする。
【００５９】
プロセッサ１は、以上のような処理を画像データの縦1536ライン分について行い、最終的に横2048ピクセル及び縦1536ピクセルからなる画像データの画像処理を完了する。
【００６０】
以上説明したように、本実施の形態によれば、プロセッサ１は、DMAプロセッサ用の複数の命令列の中から、対象とする画像処理の種類に応じた命令を選択し、DMAプロセッサ２のインストラクションメモリに書き込みを行い、画像処理を開始する。DMAプロセッサ２は、プロセッサ１の画像処理と時間的に並列に、メインメモリ６から画像処理対象の画像データを幾つかに分割したうちのひとかたまりをローカルメモリ３（または４）に転送し、ローカルメモリ上の画像処理済みの画像データをメインメモリ６に転送する。プロセッサ１は、DMAプロセッサ２が行った補佐的な処理を利用しながらローカルメモリ上の画像データに対して画像処理を行う。
【００６１】
これにより、従来のように専用機能を有するハードウェアを追加しなくとも（同一のハードウェア構成を用いながら）、DMAプロセッサ２が、プロセッサ側の複数の画像処理の内容それぞれに適したDMA転送と、プロセッサ側の画像処理を補佐する処理を行うことができ、画像処理の高速化と処理内容の柔軟性を実現することが可能となる。
【００６２】
［第２の実施の形態］
本発明の第２の実施の形態は、上述した第１の実施の形態に対して、画像処理対象の画像データ及びDMAプロセッサ２の動作が下記の点において相違する。本実施の形態のその他の要素は、上述した第１の実施の形態（図１〜図３）の対応するものと同一なので、説明を省略する。
【００６３】
次に、上記構成を有する本実施の形態のデータ処理装置の画像処理における動作例を図８乃至図１１を参照しながら説明する。
【００６４】
図８は、画像処理の対象となる画像データを示す図である。
【００６５】
図８において、画像データは、横2048ピクセル、縦1536ピクセルから構成されている。１ピクセルはRGB各色256階調の３バイトで構成されており、メインメモリ６上には１バイトずつRGBRGBRGB・・・という順番で存在している。プロセッサ１は、画像データの横2048ピクセルの１ライン6Kbytes単位に分割し、誤差拡散法によって二値画像に変換する画像処理を行う。
【００６６】
図９及び図１０は、DMAプロセッサ用プログラムを示す図である。
【００６７】
図９及び図１０において、DMAプロセッサ用プログラムは、DMAプロセッサ２上で動作し、図１１のフローチャートに示す処理を実行する。尚、DMAプロセッサ用プログラムは、図示の都合上、図９及び図１０に分割して図示している。
【００６８】
図１１は、DMAプロセッサ２の処理を示すフローチャートである。
【００６９】
図１１において、DMAプロセッサ２は、画像処理対象が図８に示す画像データである場合に、プロセッサ１の画像処理を補佐するために、メインメモリ及びローカルメモリ間のデータ転送を行う（ステップＳ１１）。これと同時に、DMAプロセッサ２は、RGBの各色データ毎の最小値の計算を行い（ステップＳ１２）、１ピクセル３バイト単位のものに対して３バイトおきに１バイトの空きをつくり、１ピクセル４バイト単位の形式に変換する（ステップＳ１３）。
【００７０】
プロセッサ１が、第１の実施の形態と同様に、DMAプロセッサ用プログラムをDMAプロセッサインタフェース７を用いてDMAプロセッサ２のインストラクションメモリに書き込むことで、DMAプロセッサ２は上記の動作を開始することができる。
【００７１】
以上説明したように、本実施の形態によれば、第１の実施の形態と同様に、従来のように専用機能を有するハードウェアを追加しなくとも（同一のハードウェア構成を用いながら）、DMAプロセッサ２が、プロセッサ側の複数の画像処理の内容それぞれに適したDMA転送と、プロセッサ側の画像処理を補佐する処理を行うことができ、画像処理の高速化と処理内容の柔軟性を実現することが可能となる。
【００７２】
［他の実施の形態］
上記第１及び第２の実施の形態では、図１に示す構成を有するデータ処理装置単体について説明したが、本発明は、データ処理装置単体のみへの適用に限定されるものではなく、データ処理装置を搭載した各種の画像形成装置（プリンタ、複写機、複合機、ファクシミリ等）に適用することができる。
【００７３】
上記第１及び第２の実施の形態では、DMAプロセッサ２にDMAプロセッサインタフェース７を接続した構成を例に挙げたが、本発明は、これに限定されるものではなく、DMAプロセッサ２にDMAプロセッサインタフェースの機能を内蔵する構成としてもよい。
【００７４】
本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラム（図７、図１１のフローチャート）をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが該供給されたプログラムを読出して実行することによって、達成することができる。
【００７５】
この場合、上記プログラムは、該プログラムを記録した記憶媒体から直接供給されるか、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【００７６】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【００７７】
また、本発明は、上述した実施の形態の機能を実現するソフトウェアのプログラムを記憶した記憶媒体をコンピュータ又はＣＰＵに供給し、そのコンピュータ又はＣＰＵが記憶媒体に記憶されたプログラムを読出して実行することによっても、達成することができる。
【００７８】
この場合、格納媒体から読出されたプログラムコード自体が上述した各実施の形態の機能を実現すると共に、そのプログラムコードを記憶した記憶媒体は本発明を構成する。
【００７９】
プログラムコードを記憶する記憶媒体としては、例えば、ＲＯＭ、ＲＡＭ、ＮＶ−ＲＡＭ、フロッピー（登録商標）ディスク、ハードディスク、光ディスク（登録商標）、光磁気ディスク、ＣＤ−ＲＯＭ、ＭＯ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード等がある。
【００８０】
上述した実施の形態の機能は、コンピュータから読出されたプログラムコードを実行することによるばかりでなく、コンピュータ上で稼動するＯＳ等がプログラムコードの指示に基づいて実際の処理の一部又は全部を行うことによっても実現することができる。
【図面の簡単な説明】
【００８１】
【図１】本発明の第１の実施の形態に係るデータ処理装置の構成を示すブロック図である。
【図２】プロセッサ及びDMAプロセッサにおいて有効なメインメモリ、ローカルメモリ、DMAプロセッサインタフェースのレジスタのアドレスマップを示す図である。
【図３】プロセッサからアクセス可能なDMAプロセッサインタフェースのレジスタマップを示す図である。
【図４】画像処理の対象となる画像データを示す図である。
【図５】DMAプロセッサ用プログラムを示す図である。
【図６】ローカルメモリ側の詳細なアドレスマップを示す図である。
【図７】DMAプロセッサの処理を示すフローチャートである。
【図８】本発明の第２の実施の形態に係る画像処理の対象となる画像データを示す図である。
【図９】DMAプロセッサ用プログラムを示す図である。
【図１０】図９の続きである。
【図１１】DMAプロセッサの処理を示すフローチャートである。
【符号の説明】
【００８２】
１  プロセッサ
２  DMAプロセッサ
３、４  ローカルメモリ
６  メインメモリ
７  DMAプロセッサインタフェース
【図１】
0004845351.tif 000002
【図２】
0004845351.tif 000003
【図３】
0004845351.tif 000004
【図４】
0004845351.tif 000005
【図５】
0004845351.tif 000006
【図６】
0004845351.tif 000007
【図７】
0004845351.tif 000008
【図８】
0004845351.tif 000009
【図９】
0004845351.tif 000010
【図１０】
0004845351.tif 000011
【図１１】
0004845351.tif 000012