(57)【要約】【課題】DMACと圧縮伸長モジュールとの間のインターフェース装置において、簡単な構成で効率的に画像データを転送できるようにする。【解決手段】DMAコントローラから転送されるデータのライン長情報と圧縮伸長器のラインメモリ容量とに基づいて、圧縮伸長器の処理単位であるライン長の設定値を算出する。圧縮時には、DMAコントローラから転送されるデータ量が圧縮器のラインメモリ容量より大きい場合は、１ラインのデータをラインメモリ容量以下になるように分割し、複数回に分けて圧縮器へ転送する。伸長時には、処理データ量が伸長器のラインメモリ容量より大きい場合は、伸長器から出力された複数のラインデータを１ラインとして連結してDMAコントローラへ転送する。【選択図】図４
2006217007.tif 000002
【特許請求の範囲】
【請求項１】
画像メモリの所定単位長の画像データを、DMAコントローラを介して受信し、ラインメモリを利用して設定処理単位で圧縮処理をする圧縮器に転送する圧縮伸長器用インターフェース装置であって、前記所定単位長の画像データを前記ラインメモリの容量以下に分割するように、前記所定単位長と前記ラインメモリの容量とに基づいて前記圧縮器の設定処理単位のデータ長を算出する手段と、前記所定単位長の画像データを前記圧縮器の設定処理単位のデータ長に分割して前記圧縮器へ転送する手段とを具備することを特徴とする圧縮伸長器用インターフェース装置。
【請求項２】
ラインメモリを利用して設定処理単位で伸長処理をする伸長器からの出力データを受信して、DMAコントローラを介して所定単位長の画像データを画像メモリに転送する圧縮伸長器用インターフェース装置であって、前記伸長器の設定処理単位の画像データを１つまたは複数連結して前記所定単位長の画像データとするために、前記伸長器の設定処理単位のデータ長が前記ラインメモリの容量に近くダミーデータも少なくなるように、前記所定単位長と前記ラインメモリの容量とに基づいて前記設定処理単位を算出する手段と、前記伸長器から出力された設定処理単位の画像データを１つまたは複数連結して前記所定単位長の画像データとして前記DMAコントローラを介して前記画像メモリへ転送する手段とを具備することを特徴とする圧縮伸長器用インターフェース装置。
【請求項３】
画像メモリの所定単位長の画像データを、DMAコントローラを介して送受信するとともに、ラインメモリを利用して設定処理単位で圧縮伸長処理をする圧縮伸長器との間でデータ転送する圧縮伸長器用インターフェース装置であって、前記所定単位長の画像データを前記ラインメモリの容量以下に分割するように、前記所定単位長と前記ラインメモリの容量とに基づいて前記圧縮伸長器の設定処理単位のデータ長を算出する手段と、前記所定単位長の画像データを前記圧縮伸長器の設定処理単位のデータ長に分割して前記圧縮伸長器へ転送する手段と、前記圧縮伸長器から出力された設定処理単位の画像データを１つまたは複数連結して前記所定単位長の画像データとして前記DMAコントローラを介して前記画像メモリへ転送する手段とを具備することを特徴とする圧縮伸長器用インターフェース装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮伸長モジュールのインターフェース装置に関し、特に、複写機やプリンタやMFPにおける、ASICに内蔵された画像圧縮伸長モジュールと汎用DMACとのインターフェース装置に関する。
【背景技術】
【０００２】
プリンタやMFP等の画像処理装置は、画像をRAMやHDDなどのストレージに蓄積する際のデータ量を削減する目的で、圧縮伸長器を搭載している。圧縮伸長の方式は多種あるが、ハードウェア化されてASICに内蔵され、ラインメモリを使って圧縮伸長を行うという形態の圧縮伸長器の場合、圧縮伸長器に入力しようとする処理画像の主走査幅に制限が付く。
【０００３】
一般に、ラインメモリは１ライン分の画像データを蓄積するために使用される。ラインメモリを使用するケースとしては、以下のような理由がある。
（１）圧縮伸長の方式が、前ラインを参照する２次元圧縮方式であるとき。
（２）圧縮伸長器が１ラインの画像をスキャンして、最適な圧縮方式または内部パラメータを選択するとき。
（３）外部インターフェースとの速度的なボトルネックの解消などのため。
【０００４】
専用のラインメモリを持つ場合は、容量は有限となり、処理可能な画像主走査幅に上限ができる。ここでいう画像の主走査幅は、データ容量のことであり、２値データであれば画素数と一致するが、多値データであれば、同じ画素数でもデータ量が増加する。システムが扱う画像主走査幅を超えるラインメモリを持つ場合は問題とならないが、ASICのゲート数（コスト）の制限で、十分な容量のラインメモリをもてない場合があり、問題となる。一方、ラインメモリ容量より処理画像の主走査幅が小さいケースもある。圧縮伸長器が、ラインメモリ容量単位でしか圧縮／伸長処理しない構成の場合は、予め処理画像の主走査幅がラインメモリ容量と一致するように、ダミーデータを付加する必要がある。また、ラインメモリ以下の主走査幅のデータであっても、処理単位を指定して処理可能な構成であれば、ダミーデータを最小化するような処理単位を選択することができる。
【０００５】
主走査幅の制限に対応するためには、予めソフトウェアによって処理画像に冗長な画像を付加するか、あるいは処理画像を複数に分割する必要がある。つまり、ソフトウェアにより以下の処理が必要である。
【０００６】
圧縮時の処理は、以下のとおりである。
（１）圧縮伸長器のランメモリ容量と処理画像データ量とを比較する。
（２）以下の要領でデータを加工する。
（Ａ）「圧縮伸長器のランメモリ容量＝処理画像データ量」なら、処理画像の加工は不要である。
（Ｂ）「圧縮伸長器のランメモリ容量＞処理画像データ量」なら、処理画像にダミーデータを付加する。
（Ｃ）「圧縮伸長器のランメモリ容量＜処理画像データ量」なら、処理画像を分割して圧縮伸長器に入力する。ただし、
（Ｃ-1）「処理画像データ量が圧縮伸長器のランメモリ容量の整数倍」ならダミーデータの付加は不要である。
（Ｃ-2）「処理画像データ量が圧縮伸長器のランメモリ容量の整数倍」でなければ、最終ラインにダミーデータを付加する。
（３）加工情報を処理画像と対応付けてメモリに格納する。
（４）加工された画像データを圧縮伸長器に入力する。
【０００７】
伸長時の処理は、以下のとおりである。
（１）伸長された画像データを圧縮伸長器の出力として得る
（２）処理画像と対応付けられた加工情報をメモリから取得する。
（３）加工情報に基づき画像データを復元する。
【０００８】
画像DMACと圧縮伸長器の間にインターフェース回路が無い場合の、画像DMACと圧縮伸長器の動作について説明する。簡単のため符号DMACの動作説明は省略する。圧縮時には、画像DMACは、CPUの起動命令を受け付けて、RAMの所定領域の画像データを読み出し、圧縮伸長器に転送する。RAMに格納されたデータは２次元の画像データであり、そのライン長は、画像DMAC内のIWIDTHレジスタに予め格納されている。画像DMACは、IWIDTHの値に従って、ライン長毎に圧縮伸長器に対してEOL（End Of Line）信号を送出してラインの終端を示しながら、複数ラインの転送を行う。圧縮伸長器（又は圧縮器）は、画像DMACからの１ラインのデータを受け取ると、一旦そのデータをラインメモリに格納した後、圧縮処理を行う。さらに、圧縮後の符号データを、順次、符号DMACに転送する。
【０００９】
伸長時には、画像DMACは、CPUの起動命令を受け付けて、圧縮伸長器にデータを要求する。画像DMACからデータを要求された圧縮伸長器は、符号DMACから符号データを受け取り、伸長しながらラインメモリに格納する。さらに、ラインメモリがFullになると、画像DMACに対して画像データを転送する。画像DMACは、転送されてくるデータをRAMの所定領域に格納する。これは、（１）処理画像のライン長（IWIDTH設定値）が、圧縮伸長器のラインメモリ容量を超えない、（２）圧縮伸長器は、ラインメモリの容量に満たなくても画像DMACからのEOLで処理画像のライン長を検知する、という条件のもとに成立する動作である。
【００１０】
データ分割やダミーデータ付加の処理のために、ラインメモリの容量（＝圧縮伸長器の主走査方向の処理単位の最大設定値）と処理画像の主走査幅（画素数ではなくデータ容量をさす。以後同様）の情報に基づき、ハードウェアで自動的にデータの加工及び復元を行うインターフェース装置がある。また、圧縮伸長器の処理単位であるライン長の設定値をソフトウェアにより任意に設定することを可能としたインターフェース装置もある。
【００１１】
画像DMACと圧縮伸長器との間のインターフェース回路の動作について説明する。処理画像の主走査幅とラインメモリ容量との関係で、インターフェース回路の動作が異なる。その場合分けを、図８に示す。処理画像の主走査幅は、IWIDTHとして画像DMACから信号線で通知される。ラインメモリ容量は、XWIDTHとしてインターフェース回路内部のレジスタに持ち、信号線で圧縮伸長器へ通知する。
（１)「圧縮伸長器のラインメモリ容量＞処理画像データ量」なら、処理画像にダミーデータを付加する。
（２)「圧縮伸長器のラインメモリ容量＝処理画像データ量」なら、処理画像の加工は不要である。
（３)「圧縮伸長器のラインメモリ容量＜処理画像データ量」なら、処理画像の主走査を分割する。「処理画像データ量が圧縮伸長器のラインメモリ容量の整数倍」なら、ダミーデータの付加は不要である。「処理画像データ量が圧縮伸長器のラインメモリ容量の整数倍」でなければ、最終ラインにダミーデータを付加する。
【００１２】
具体的な分割方法は次のとおりである。
（Ａ）「圧縮伸長器のラインメモリ容量＜処理画像データ量≦圧縮伸長器のラインメモリ容量×２」なら、処理画像の主走査を２分割する。ちょうど２分割できない場合は、ちょうど２分割できるように最終ラインにダミーデータを付加する。
（Ｂ）「圧縮伸長器のラインメモリ容量×２＜処理画像データ量≦圧縮伸長器のラインメモリ容量×３」なら、処理画像の主走査を３分割する。ちょうど３分割できない場合は、ちょうど３分割できるように最終ラインにダミーデータを付加する。
（Ｃ）「圧縮伸長器のラインメモリ容量×（ｋ−１）＜処理画像データ量≦圧縮伸長器のラインメモリ容量×ｋ」なら、処理画像の主走査をｋ分割する。ちょうどｋ分割できない場合は、ちょうどｋ分割できるように最終ラインにダミーデータを付加する。
【００１３】
以下に、圧縮伸張装置の従来例を挙げる。特許文献１に開示された「画像形成装置」は、データ変換形式によらず、固定容量の記憶領域を用いて、１次記憶部に記憶された画像データの形式を変換し、その変換後の画像データを効率的に２次記憶部に転送できる装置である。メモリ制御部が、画像メモリ（１次記憶部）上に、圧縮画像記憶領域（変換画像記憶領域）を確保する。入出力画像DMACによって、画像メモリ内の通常画像記憶領域に書き込んだ画像データを、画像転送DMACによって、予め設定された所定サイズ（１バイト）毎に分割して順次読み出して、圧縮伸長器へ転送する。そこで圧縮された（他のデータ形式に変換された）分割データである符号データ（変換画像データ）を、符号転送DMACによって圧縮画像記憶領域に書き込む。その符号データを、HDDコントローラによって、HDD（２次記憶部）へ転送する。
【００１４】
特許文献２に開示された「画像処理装置」は、大きな容量のバッファメモリを用いることなく、画像データの圧縮処理／伸張処理を可能とする装置である。分割処理部では、画像読取部から入力される画像データを、圧縮用バッファメモリの一方に、所定サイズの画像データとして格納する。次の画像データを、他方の圧縮用バッファメモリに格納する。同時に、一方の圧縮用バッファメモリに格納している画像データを、圧縮処理部へ出力する。圧縮処理部は、所定サイズのブロック毎に分割されながら入力される画像データから、ブロックごとの符号データを生成して、一時記憶手段に出力する。これにより、１ページ分の画像データを格納するバッファメモリを用いることなく、画像データに基づいた符号データを生成することができる。
【特許文献１】特開2003-018336号公報
【特許文献２】特開2003-051952号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかし、従来の圧縮伸長装置では、次のような問題がある。ラインメモリを利用する圧縮器に、ラインメモリ容量より大きなライン長のデータを処理させるためには、処理データを複数回に分けて圧縮器に入力する必要がある。圧縮された符号データが、伸長器により伸長されて出力された場合は、出力された複数のラインデータを連結して１ラインとしてDMAコントローラへ転送する必要がある。これらの処理をソフトウェアで行う方法では、設定の自由度が高まる反面、ソフトウェアによる演算が必要となるため、制御が複雑になり、処理速度が低下する。このソフトウェア処理をハードウェア化する方法も提案されているが、ハードウェア構成が複雑となり、実用的ではない。処理画像に単純にダミーデータを付加する方法では、ダミーデータ転送によるオーバーヘッドが無視できないという問題がある。
【００１６】
本発明の目的は、上記従来の問題を解決して、DMAコントローラと圧縮伸長モジュールとの間のインターフェース装置において、簡単な構成で効率的に画像データを転送できるようにすることである。
【課題を解決するための手段】
【００１７】
上記の課題を解決するために、本発明では、圧縮伸長器の処理単位であるライン長の設定値を、インターフェース装置のハードウェアで演算して決定する構成とした。すなわち、画像メモリの所定単位長の画像データを、DMAコントローラを介して受信し、ラインメモリを利用して設定処理単位で圧縮処理をする圧縮器に転送する圧縮伸長器用インターフェース装置に、所定単位長の画像データをラインメモリの容量以下に分割するように、所定単位長とラインメモリの容量とに基づいて圧縮器の設定処理単位のデータ長を算出する手段と、所定単位長の画像データを圧縮器の設定処理単位のデータ長に分割して圧縮器へ転送する手段とを設けた。
【００１８】
また、ラインメモリを利用して設定処理単位で伸長処理をする伸長器からの出力データを受信して、DMAコントローラを介して所定単位長の画像データを画像メモリに転送する圧縮伸長器用インターフェース装置に、伸長器の設定処理単位の画像データを１つまたは複数連結して所定単位長の画像データとするために、伸長器の設定処理単位のデータ長がラインメモリの容量に近くダミーデータも少なくなるように、所定単位長とラインメモリの容量とに基づいて設定処理単位を算出する手段と、伸長器から出力された設定処理単位の画像データを１つまたは複数連結して所定単位長の画像データとしてDMAコントローラを介して画像メモリへ転送する手段とを設けた。
【００１９】
また、画像メモリの所定単位長の画像データを、DMAコントローラを介して送受信するとともに、ラインメモリを利用して設定処理単位で圧縮伸長処理をする圧縮伸長器との間でデータ転送する圧縮伸長器用インターフェース装置に、所定単位長の画像データをラインメモリの容量以下に分割するように、所定単位長とラインメモリの容量とに基づいて圧縮伸長器の設定処理単位のデータ長を算出する手段と、所定単位長の画像データを圧縮伸長器の設定処理単位のデータ長に分割して圧縮伸長器へ転送する手段と、圧縮伸長器から出力された設定処理単位の画像データを１つまたは複数連結して所定単位長の画像データとしてDMAコントローラを介して画像メモリへ転送する手段とを設けた。
【発明の効果】
【００２０】
本発明では、上記のように構成したことにより、DMAコントローラと圧縮器に変更を加えることなく、ラインメモリ容量より大きなライン長のデータを圧縮器に入力できる。さらに、圧縮器の処理単位であるライン長の設定値を、ソフトウェアで演算して決定する必要が無いため、制御が簡単になり、処理が高速化できる。
【００２１】
また、DMAコントローラと伸長器に変更を加えることなく、ラインメモリ容量より大きなライン長のデータを伸長出力として得ることができる。さらに、伸長器の処理単位であるライン長の設定値を、ソフトウェアで演算して決定する必要が無いため、制御が簡単になり、処理が高速化される。
【００２２】
また、圧縮伸長器とDMAコントローラとの間に変更を加えることなく、ラインメモリ容量より大きなライン長のデータを、圧縮器伸長器に入力できるとともに伸長出力として得ることができる。さらに、圧縮伸長器の処理単位であるライン長の設定値を、ソフトウェアで演算して決定する必要が無いため、制御が簡単になり、処理が高速化される。
【発明を実施するための最良の形態】
【００２３】
以下、本発明を実施するための最良の形態について、図１〜図７を参照しながら詳細に説明する。
【実施例１】
【００２４】
本発明の実施例１は、DMAコントローラから転送されるデータのライン長情報と圧縮器のラインメモリ容量とに基づいて、圧縮器の処理単位であるライン長の設定値を算出し、DMAコントローラから転送されるデータ量が圧縮器のラインメモリ容量より大きい場合は、１ラインのデータをラインメモリ容量以下になるように分割し、複数回に分けて圧縮器へ転送する圧縮モジュールのインターフェース装置である。
【００２５】
図１は、本発明の実施例１におけるインターフェース回路を内蔵するASICを利用したシステム構成図である。このシステムは、プリンタまたはMFPに適用した例である。図１において、プリンタコントローラ100は、プリンタまたはMPFに搭載されるプリンタ制御基板である。CPU101は、プリンタコントローラのメインCPUである。ASIC102は、圧縮伸長器を内蔵するLSIである。詳細を図２に示す。ROM103は、プログラムを内蔵するROMである。RAM104は、メインメモリである。HDD105は、ハードディスクである。拡張スロット106は、RAM/ROMの増設などのために、オプション基板を装着できるスロットである。操作部インターフェース107は、オペレーションパネルを接続するインターフェースである。エンジンインターフェース108は、プロッタやスキャナを接続するインターフェースである。ネットワークインターフェース109は、LANを接続するインターフェースである。エンジン110は、プロッタやスキャナの本体である。ホストPC111は、プロッタやスキャナを利用するコンピュータである。
【００２６】
図２は、本発明の実施例１におけるインターフェース回路を内蔵するASIC102の構成図である。このASIC102は、RAM104に格納された画像データを圧縮伸長器で圧縮（符号化）してHDD105に蓄積し、HDD105に蓄積された符号を圧縮伸長器で伸長してRAM104に展開する構成を示している。画像や符号の蓄積デバイスは、RAM104やHDD105以外のものでもよい。図２において、CPU101は、プリンタコントローラのメインCPUである。ASIC102は、圧縮伸長器を内蔵するASICである。HDD103は、画像や符号を蓄積可能はハードディスクである。RAM104は、画像や符号を蓄積可能なメモリである。システム制御部113は、CPU101からの指令により、ASIC102内部の各モジュールを制御するとともに、RAM104やHDD105へのアクセスを制御する回路である。
【００２７】
HDDインターフェース114は、HDD105との間のインターフェース制御を行う回路である。符号DMAC115は、符号転送用のDMAコントローラである。圧縮時に、圧縮伸長器116から出力された符号をHDD105に転送するとともに、伸長時に、HDD105に蓄積された符号を圧縮伸長器116へ入力する回路である。圧縮伸長器116は、画像を圧縮及び伸長するハードウェアモジュールである。圧縮器と伸長器とに分離されていても良い。画像DMAC117は、画像転送用のDMAコントローラである。画像を２次元として扱い、主走査単位で転送を行う。圧縮時には、RAM104上の画像データを圧縮伸長器116へ入力し、伸長時には、圧縮伸長器116から出力された画像データをRAM104に転送する。RAMインターフェース118は、RAM104とのインターフェース制御を行う回路である。インターフェース回路112は、画像DMAC117と圧縮伸長器116との間でデータを転送するためのハードウェアモジュールである。ラインメモリ119は、１ライン分のデータを保持するバッファメモリである。
【００２８】
図３は、圧縮伸長器と周辺の構成を示す図である。インターフェース回路112は、圧縮伸長器116と画像DMAC117との間に位置している。この回路ブロックでは、REQ信号とACK信号のやり取りで、64ビットのデータをやりとりする。図３において、圧縮伸長器116は、圧縮伸長アルゴリズム実行手段を内蔵したハードウェアモジュールである。インターフェース回路112は、画像DMACと圧縮伸長器との間でデータを転送するためのハードウェアモジュールである。画像DMAC107は、メモリから圧縮伸長器（圧縮部）へのDMA転送と、圧縮伸長器（伸長部）からメモリへのDMA転送を行うハードウェアモジュールである。インターフェース回路112は、XWIDTHレジスタを持ち、ソフトウェアによって設定可能である。インターフェース回路112は、演算回路を有しており、XWIDTH_MAX（XWIDTHの最大設定値、すなわちラインメモリ容量）とIWIDTH（処理画像の主走査幅）とに基づいて、XWIDTHを算出することができる。
【００２９】
図４は、実施例１におけるインターフェース回路で、処理画像の主走査幅とラインメモリ容量との関係で異なる動作の場合分けを示す図である。図５は、圧縮伸長器の主走査幅を求める回路の機能ブロック図である。図６は、圧縮時のデータの流れを示す図である。
【００３０】
上記のように構成された本発明の実施例１におけるインターフェース回路の動作を説明する。処理画像の主走査幅とラインメモリ容量との関係で、インターフェース回路の動作が異なる。その場合分けを、図４に示す。処理画像の主走査幅は、IWIDTHとして画像DMACから信号線で通知される。ラインメモリ容量（XWIDTH_MAX）は、圧縮伸長器からインターフェース装置に信号線で通知される。ソフトウェアによって、インターフェース装置のレジスタに設定される方法でもよい。インターフェース回路は、XWIDTH_MAXとIWIDTHとの情報に基づいて演算し、インターフェース回路内部のIWIDTHレジスタに値を設定する。XWIDTHは、信号線で圧縮伸長器へ通知される。
【００３１】
ダミーデータ付加を最小にするアルゴリズムでXWIDTHを演算する方法を説明する。ダミーデータは無駄なデータであるが、処理画像とともに符号化されてしまうので、最も圧縮率の良いデータとすべきである。一般的には、白画素に対応したデータ（ALL０またはALL１）が望ましい。
（１)「圧縮伸長器のラインメモリ容量≧処理画像データ量」なら、XWIDTHにIWIDTHを代入する。「圧縮伸長器のラインメモリ容量＝処理画像データ量」なら、処理画像の加工は不要である。
【００３２】
（２)「圧縮伸長器のラインメモリ容量＜処理画像データ量」なら、処理画像の主走査を分割する。分割方法は次のとおりである。
（Ａ)「圧縮伸長器のラインメモリ容量＜処理画像データ量≦圧縮伸長器のラインメモリ容量×２」なら、処理画像の主走査を２分割する。処理画像をちょうど２分割できれば、その値をXWIDTHに選択する。２分割できなければ、ダミーデータを付加して２分割する。ダミーデータのサイズは、（処理画像データ量 mod２）で、０か１である。
【００３３】
（Ｂ）「圧縮伸長器のラインメモリ容量×２＜処理画像データ量≦圧縮伸長器のラインメモリ容量×３」なら、処理画像の主走査を３分割する。処理画像をちょうど３分割できれば、その値をXWIDTHに選択する。３分割できなければ、ダミーデータを付加して３分割する。ダミーデータのサイズは、（−処理画像データ量 mod３）で、０か１か２である。
【００３４】
（Ｃ)「圧縮伸長器のラインメモリ容量×（ｋ−１）＜処理画像データ量≦圧縮伸長器のラインメモリ容量×ｋ」なら、処理画像の主走査をｋ分割する。処理画像をちょうどｋ分割できれば、その値をXWIDTHに選択する。ｋ分割できなければ、ダミーデータを付加してｋ分割する。ダミーデータのサイズは、（−処理画像データ量 modｋ）で、０〜（ｋ−１）のいずれかである。
【００３５】
このようにして、処理画像を整数分割できるようなXWIDTHがなければ、分割数とダミーデータ量が最小になるようなXWIDTHを選択する方法により、インターフェース回路の演算回路で自動的にXWIDTHを算出する。XWIDTH算出のための演算回路を、図５を参照しながら説明する。図５（ａ）の回路では、処理画像データ量Ｍを、圧縮伸長器のラインメモリ容量NNで割って、その商(Ｍ／NN)を切り上げて、分割数ｋを求める。処理画像データ量Ｍの負数を分割数ｋで割った余り（−Ｍ modｋ）により、ダミーデータ量を求める。処理画像データ量Ｍにダミーデータ量を加算して、分割数ｋで割ることにより、圧縮伸長器の主走査幅Ｎを求める。図５（ｂ）は、同機能の他の回路例である。分割数ｋが１の場合は、処理画像データ量が圧縮伸長器の主走査幅となる。分割数ｋが２以上の場合のダミーデータ量は、０〜（ｋ−１）となる。図５に示した括弧内の数値は、計算例である。
【００３６】
インターフェース回路の動作フローを説明する。圧縮時には、圧縮伸長器のラインメモリ容量と処理画像の主走査幅とを比較する。図４の場合分けに従い、データを加工しながら画像データを圧縮伸長器に入力する。圧縮時のデータの流れを、図６に示す。画像DMACに処理画像の主走査幅をIWIDTH[13:3]として保持する。インターフェース回路には信号線で伝達する。インターフェース回路に圧縮伸長器のラインメモリ容量をXWIDTH[10:3]として保持する。図６の例では、IWIDHTは１０、XWIDTHは３である。
【００３７】
したがって、インターフェース回路は、次の動作を行う。
（１）画像DMACから入力する画像データの１ラインを、４回に分けて圧縮伸長器へ入力する。
（２）１ラインの４回目の転送において、不足しているデータはダミーデータを付加して圧縮伸長器へ入力する。
（３）圧縮伸長器が１ラインの最終データを示すEOL（End Of Line）信号を必要とする場合は、ラインメモリ容量毎にEOLを発生する。
（４）１ライン終了後は、２ライン目以降も同様の操作で画像データの転送を行う。
【００３８】
図３と図６を参照しながら、圧縮時のインターフェース回路の内部動作を説明する。ハンドシェークにより、６４ビットのデータのやり取りをする。データのやり取りはバースト転送で行われ、１ラインの間バーストが途切れないインターフェースであり、インターフェース回路の内部バッファは１段であり、データ入力の次クロックでデータ出力する。インターフェース回路は、転送の準備ができると、画像DMACに対してREQ_Dを出力してデータを要求する。REQ_Dを受けた画像DMACは、ACK_Dと同時にDATA_Dを出力する。ACK_Dを検出したインターフェース回路は、次クロックから１クロック毎にデータをラッチし続ける。この動作は、基本的には、周知のバーストモードDMAと同じである。DMA転送に先立ってダミーデータを用意する部分のみが異なる。
【００３９】
DMAの転送制御のために、以下の２つのカウンタを使う。
（１）Ｘカウンタ：XWIDTHをカウントするカウンタである。転送開始時にXWIDTHの設定値がロードされ、画像DMACからデータが入力されるたびにカウントダウンする。カウンタ値が１のとき、再度XWIDTHがロードされる。
（２）Ｉカウンタ：IWIDTHをカウントするカウンタである。転送開始時にIWIDTHの設定値がロードされ、画像DMACからデータが入力されるたびにカウントダウンする。カウンタ値が１になるとカウントダウンを停止し、１を保持する。IWIDTHがXWIDTHの整数倍（同じ値の場合を含む）時には、２つのカウンタは同時に１になる。この場合、ダミーデータを付加する必要が無い。
【００４０】
インターフェース回路は、２つのカウンタ値を参照しながら次の動作を行う。
（１）Ｘカウンタが１の時に画像DMACから入力されたデータを圧縮伸長器へ出力する際には、EOL_Uをアサートする。
（２）Ｉカウンタが１になると、直ちにREQ_Dをネゲートする。さらに、以降の圧縮伸長器へ内部生成したダミーデータを出力する。１以外の時は、画像DMACからの入力データを圧縮伸長器へ出力する。
（３）２つのカウンタがともに１のとき、処理画像の１ラインが終了したので、２つのカウンタには、それぞれ初期値をリロードし、次ラインの転送に備える。
【００４１】
上記のように、本発明の実施例１では、圧縮モジュールのインターフェース装置を、DMAコントローラから転送されるデータのライン長情報と圧縮器のラインメモリ容量とに基づいて、圧縮器の処理単位であるライン長の設定値を算出し、DMAコントローラから転送されるデータ量が圧縮器のラインメモリ容量より大きい場合は、１ラインのデータをラインメモリ容量以下になるように分割し、複数回に分けて圧縮器へ転送する構成としたので、DMAコントローラと圧縮器に変更を加えることなく、ラインメモリ容量より大きなライン長のデータを圧縮器に入力できる。
【実施例２】
【００４２】
本発明の実施例２は、DMACから転送されるデータのライン長情報と伸長器のラインメモリ容量とに基づいて、伸長器の処理単位であるライン長の設定値を算出し、処理データ量が伸長器のラインメモリ容量より大きい場合は、伸長器から出力された複数のラインデータを１ラインとして連結してDMAコントローラへ転送する伸張モジュールのインターフェース装置である。
【００４３】
本発明の実施例２におけるインターフェース装置の構成は、実施例１と同様である。伸長器の処理単位であるライン長の設定値を算出する点が異なる。この算出回路などは、実施例１と同じであるので、説明は省略する。伸長時には、伸長された画像データを圧縮伸長器の出力として得る。図４の場合分けに従い、データを復元しながら画像データをメモリ／HDDへ転送する。
【００４４】
伸長時のデータの流れを図７に示す。図６の条件で圧縮されたデータを伸長するので、インターフェース回路は次の動作を行う。
（１）圧縮伸長器から入力する画像データ４回分の転送を１ラインと見立てて画像DMACへ入力する。
（２）１ラインの４回目の転送において、付加されているダミーデータを削除して画像DMACへ入力する。
（３）画像DMACは処理画像の主走査幅を知っている（IWIDTHデータを保持）ので、EOL信号は不要である。
（４）１ライン終了後は、２ライン目以降も同様の操作で画像データの転送を行う。
【００４５】
図３と図７を参照しながら、伸長時のインターフェース回路の内部動作を説明する。これは、基本的には、周知のバーストモードDMAと同じである。ハンドシェークにより６４ビットのデータのやり取りをする。データのやり取りはバースト転送で行われ、１ラインの間バーストが途切れないインターフェースであり、インターフェース回路の内部バッファは１段であり、データ入力の次クロックでデータ出力する。インターフェース回路は、圧縮伸長器からREQ_Uを受け取ると、DATA_Uをラッチすると同時にACK_Uをアサートする。インターフェース回路は次クロックから１クロック毎にデータをラッチし続ける。
【００４６】
DMAの転送制御のために、以下の２つのカウンタを使う。
（１）Ｘカウンタ：XWIDTHをカウントするカウンタである。転送開始時にXWIDTHの設定値がロードされ、画像DMACからデータが入力されるたびにカウントダウンする。カウンタ値が１のとき、再度XWIDTHがロードされる。
（２）Ｉカウンタ：IWIDTHをカウントするカウンタである。転送開始時にIWIDTHの設定値がロードされ、画像DMACからデータが入力されるたびにカウントダウンする。カウンタ値が１になるとカウントダウンを停止し、Ｘカウンタが１になるまで１を保持する。IWIDTHがXWIDTHの整数倍（同じ値の場合を含む）時には、２つのカウンタは同時に１になる。この場合、伸長された画像にはダミーデータが付加されていないため、データの読み捨て動作は発生しない。
【００４７】
インターフェース回路は、２つのカウンタ値を参照しながら次の動作を行う。
（１）Ｉカウンタが１になると、以降、圧縮伸長器から入力されたデータを読み捨てる。１以外の時は、圧縮伸長器からの入力データを画像DMACへ出力する。
（２）２つのカウンタがともに１のとき、処理画像の１ラインが終了したので、２つのカウンタには、それぞれ初期値をリロードし、次ラインの転送に備える。
【００４８】
実施例２では、伸長時にEOL信号が無いが、EOLが必要なシステムでは、次のような処理となる。圧縮伸長器からEOLがXWIDTH毎に転送されてくるが、IWIDTHの満了時のみ画像DMACへEOLをアサートする。Ｉカウンタが１の時に圧縮伸長器から入力されたデータを画像DMACへ出力する際には、EOL信号をアサートする。
【００４９】
上記のように、本発明の実施例２では、伸張モジュールのインターフェース装置を、DMAコントローラから転送されるデータのライン長情報と伸長器のラインメモリ容量とに基づいて、伸長器の処理単位であるライン長の設定値を算出し、処理データ量が伸長器のラインメモリ容量より大きい場合は、伸長器から出力された複数のラインデータを１ラインとして連結してDMAコントローラへ転送する構成としたので、DMAコントローラと圧縮器に変更を加えることなく、ラインメモリ容量より大きなライン長のデータを圧縮器に入力できる。
【実施例３】
【００５０】
本発明の実施例３は、DMAコントローラから転送されるデータのライン長情報と圧縮伸長器のラインメモリ容量とに基づいて、圧縮伸長器の処理単位であるライン長の設定値を算出し、圧縮時には、DMAコントローラから転送されるデータ量が圧縮器のラインメモリ容量より大きい場合は、１ラインのデータをラインメモリ容量以下になるように分割し、複数回に分けて圧縮器へ転送し、伸長時には、処理データ量が伸長器のラインメモリ容量より大きい場合は、伸長器から出力された複数のラインデータを１ラインとして連結してDMAコントローラへ転送する圧縮伸長モジュールのインターフェース装置である。
【００５１】
本発明の実施例３におけるインターフェース装置の構成は、実施例１、２と同様である。圧縮と伸長の両方向について、実施例１と実施例２の構成を適用したものである。それぞれの構成と動作は、実施例１、２と同じであるので、説明は省略する。
【産業上の利用可能性】
【００５２】
本発明の圧縮伸長モジュールのインターフェース装置は、複写機やプリンタやMFPにおける、ASICに内蔵された画像圧縮伸長モジュールと汎用DMACとのインターフェース装置として最適である。画像圧縮伸長装置以外の処理装置、例えば、画像補正装置や電子透かし付加装置などにも応用できる。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施例１におけるインターフェース回路を内蔵するASICを利用したシステム構成図である。
【図２】本発明の実施例１におけるインターフェース回路を内蔵するASICの構成図である。
【図３】本発明の実施例１におけるインターフェース回路と圧縮伸長器と画像DMACとの接続関係を示す図である。
【図４】本発明の実施例１におけるインターフェース回路で、処理画像の主走査幅とラインメモリ容量との関係で異なる動作の場合分けを示す図である。
【図５】本発明の実施例１におけるインターフェース回路で、圧縮伸長器の主走査幅を求める回路の機能ブロック図である。
【図６】本発明の実施例１におけるインターフェース回路で、圧縮時のデータの流れを示す図である。
【図７】本発明の実施例２におけるインターフェース回路で、伸長時のデータの流れを示す図である。
【図８】従来のインターフェース回路で、処理画像の主走査幅とラインメモリ容量との関係で異なる動作の場合分けを示す図である。
【符号の説明】
【００５４】
100・・・プリンタコントローラ、101・・・CPU、102・・・ASIC、103・・・ROM、104・・・RAM、105・・・HDD、106・・・拡張スロット、107・・・操作部インターフェース、108・・・エンジンインターフェース、109・・・ネットワークインターフェース、110・・・エンジン、111・・・ホストPC、112・・・インターフェース回路、113・・・システム制御部、114・・・HDDインターフェース、115・・・符号DMAC、116・・・圧縮伸長器、117・・・画像DMAC、118・・・RAMインターフェース、119・・・ラインメモリ。
【図１】
2006217007.tif 000003
【図２】
2006217007.tif 000004
【図３】
2006217007.tif 000005
【図４】
2006217007.tif 000006
【図５】
2006217007.tif 000007
【図６】
2006217007.tif 000008
【図７】
2006217007.tif 000009
【図８】
2006217007.tif 000010