図1〜図6は、本発明の画像形成装置、画像形成制御方法、画像形成制御プログラム及び記録媒体の一実施例を示す図であり、図1は、本発明の画像形成装置、画像形成制御方法、画像形成制御プログラム及び記録媒体の一実施例を適用した複合装置1の要部ブロック構成図である。
図1において、複合装置1は、スキャナ部2、エンジン部3、インクジェットヘッド部4、システムコントローラ部5及びハードディスク(HDD)6等を備えているとともに、図示しないが、操作表示部や通信部等を備えており、スキャナ機能、プリンタ機能、コピー機能、ファクシミリ機能等の複合機能を実行する。複合装置1は、インク噴射方式で、定型サイズとして、広幅の用紙(画像形成媒体)、例えば、A0サイズ用紙への記録を行い、特殊サイズとして、長尺の用紙、例えば、A0幅(841mm)で長さが15mの広幅のロール紙やロール布等への画像形成(印刷)出力に対応している。複合装置1には、LAN(Local Area Network)等のネットワーク、あるいは、専用通信回線等の有線または無線の通信回線によってコンピュータ等のホスト装置HSが接続される通信部(図示略)を備えており、複合装置1は、該通信部を介してホスト装置HSと通信処理を行って該ホスト装置HSから印刷データを受信する。
操作表示部は、各種操作キー及び表示部(液晶ディスプレイ等)を備えており、操作キーからは複合装置1に各種処理を行わせるための各種操作が行われる。操作表示部は、表示部に、操作キーからの入力内容や複合装置1からユーザに通知する各種情報、例えば、異常発生情報、サービスコール要求情報等を表示する。
エンジン部(画像形成制御手段)3は、スキャナ側画像処理部11、エンジンCPU(Central Processing Unit )12、ヘッド制御部13、コントローラI/F制御部14、画像データ制御部15及びヘッド側画像処理部16等を備えており、画像データ制御部15は、メモリ制御部21、スキップ用メモリ22及びスキップ制御部23等を備えている。スキップ制御部23は、入力制御部31、データ格納バッファ32及び出力制御部33等を備えている。
システムコントローラ部(システム制御手段)5は、画像メモリアクセス制御部41、画像メモリ(画像記憶手段)42及び図示しないCPU、ROM(Read Only Memory)、RAM(Random Access Memory)、画像処理部等を備えている。
そして、複合装置1は、システムコントローラ部5が、レーザプリンタ装置等のページ画像形成装置のシステムコントローラ部が流用され、また、該ページ画像形成装置のシステムコントローラ部のソフトウェアが可能な限り使用されている。また、スキャナ部2、スキャナ側画像処理部11及びコントローラI/F制御部14も、適宜、ページ画像形成装置、例えば、ページ複合装置、ページファクシミリ装置等のスキャナ部、スキャナ側画像処理部及びコントローラI/F制御部を流用することができる。
スキャナ部2は、例えば、CCD(Charge Coupled Device )を利用したカラーイメージスキャナ等が用いられている。スキャナ部2は、光源から読み取り光をカラー原稿に照射して、カラー原稿からの反射光をミラー及びレンズを介してCCD等の受光素子に集光させ、該受光素子で光電変換することで、カラー原稿を主走査及び副走査してカラー原稿のカラー画像を読み取って、RGBのカラー画像信号をデジタル変換した後、エンジン部3のスキャナ側画像処理部11に出力する。
インクジェットヘッド部(画像形成手段)4は、ヘッド制御部13の制御下でC(シアン)、M(マゼンタ)、Y(イエロー)、K(ブラック)の各色のインクを吐出するインクジェットヘッド、該インクジェットヘッドを搭載して主走査方向に往復移動するキャリッジ、該キャリッジを主走査方向に往復移動させるキャリッジ駆動部、インクジェットからのインクが噴射されて画像の形成される用紙を副走査方向に搬送する用紙搬送機構部等を備えており、ヘッド側画像処理部16から送られてくる画像データに基づいてヘッド制御部13の制御下で、インクジェットヘッドから所定ラインを1バンドとして、該1バンド分同時にインクを噴射しつつ該インクジェットヘッドを主走査方向に移動させて1バンド(数ライン)分を同時に画像形成する。
スキャナ側画像処理部11は、エンジンCPU12の制御下で、スキャナ部2からのRGBのカラー画像データに対して、スキャナ部2の光源のバラツキやCCDの画素毎の感度ムラ等が原因で一様な濃度の原稿を読み取ったにもかかわらず、読み取りデータがばらつく現象を補正するシェーディング補正、地肌除去、固定長符号化等の画像処理を施してコントローラI/F制御部14に出力する。
コントローラI/F制御部14は、メモリアクセスのアービトレーションを制御して、エンジン部3とシステムコントローラ部5との間の画像データの転送を行う。
ヘッド制御部13は、インクジェットヘッド部4及び紙搬送等の制御を行い、また、エンジンCPU12の命令によってスキップ制御部23に対してバンド転送開始信号をアサートし、スキップ制御部23にバンド単位で画像データの転送要求を行う。
画像データ制御部15のメモリ制御部21は、スキップ用メモリ22とスキップ制御部23に接続されているとともに、コントローラI/F制御部14に接続されており、コントローラI/F制御部14を介してシステムコントローラ部5の画像メモリアクセス制御部41にリード要求を行って、システムコントローラ部5の画像メモリ42の画像データを受信してスキップ用メモリ22に書き込む。また、メモリ制御部21は、スキップ用メモリ22の画像データの格納状態に応じてコントローラI/F制御部14及びスキップ制御部23に画像データの書き込み及び読み出しの停止命令を出して、スキップ用メモリ22の上書きや空読みの発生を防止する制御を行う。
スキップ用メモリ22は、システムコントローラ5の画像メモリ42から送られてきた画像データをメモリ制御部21の制御下で蓄積し、また、メモリ制御部21によって読み出されてスキップ制御部23に転送する。
スキップ制御部23は、上述のように、入力制御部31、データ格納バッファ32及び出力制御部33を備えており、スキップ用メモリ22から読み取った画像データ(以下、必要に応じて、検知対象画像データという。)を読み取ると同時に該画像データが白画素であるか否かの白検知を画素毎に順次行って、白画素であると該白画素を破棄して連続白画素数を連続白画素数カウンタでカウントするとともに該連続白画素数が所定のスキップバンド(スキップライン)数分になるとスキップ通知を出力する。そして、スキップ制御部23は、該白検知を行って連続する白画素の後に白以外の有効画素を検知すると、スキップ用メモリ22からの画像データの読み取りを一時停止し、該スキップ通知を出力するラインの次ラインの先頭画素から該有効画素までの破棄した白画素の画像データを連続白画素数に基づいて生成してヘッド側画像処理部16を介してインクジェットヘッド部4に出力する。
入力制御部31は、メモリ制御部21への画像データの転送要求及び該転送要求によってメモリ制御部21によってスキップ用メモリ22から転送されてきた検知対象画像データに対して画素単位で白画素であるか否かを検知する白検知を実行し、白画素(白データ)が何画素連続しているかの連続白画素数情報を内部カウンタである連続白画素数カウンタに記録する。また、入力制御部31は、エンジンCPU12に対して空白バンド通知割り込みを発生する割り込み発生機能を備えており、予め設定されているスキップバンド数(割り込み空白バンド)分のデータが全て白データであると、エンジンCPU12に空白バンド通知割り込みを発生して空白バンドの通知(スキップ通知)を行う。
データ格納バッファ32は、入力制御部31が白データを連続して検知して、有効データ(白以外のデータ)を検知すると、所定画素分(スキップ用メモリ22からの画像データの読み取り速度と有効画素を検知してから該スキップ用メモリ22からの画像データの読み取りを停止するまでのディレイ時間等で決定される画素分)の有効画素データを一時格納する。すなわち、入力制御部31は、スキップ用メモリ22から連続して画像データを受信して白検知を行って、白であると判断した画素データはそのまま破棄して何画素白データが連続しているかの連続白画素数情報のみを連続白画素数カウンタでカウントし、次の画素データの白検知を行うという処理を繰り返し行う。したがって、入力制御部31は、白画素の後に白画素以外の有効画素があると、該有効画素を破棄することができないため、データ格納バッファ32に一時格納する。
出力制御部33は、ヘッド制御部13からのバンド転送開始信号に応じて、入力制御部31内の内部カウンタのカウンタ情報である連続白画素数情報に基づいて白データの生成を行い、生成した白データをヘッド側画像処理部16に転送する。すなわち、上述のように、入力制御部31は、検知対象画像データが白データであるか否かを画素毎に検知して、白画素であると、連続白画素数情報のみを連続白画素数カウンタでカウントし、該白の画像データを破棄しているため、インクジェットヘッド部4を正常に動作させるためには、該破棄された連続する白の画像データを出力制御部33が、該連続白画素数情報に基づいて生成して、ヘッド側画像処理部16に出力する。出力制御部33は、該連続白画素数情報に基づいて破棄された全ての白画像データを生成すると、続いて、データ格納バッファ32に格納されている有効データをヘッド側画像処理部16に出力する。
ヘッド側画像処理部16は、エンジンCPU12の制御下で、スキップ制御部23の出力制御部33から入力される画像データに対して固定長符号化の伸張、階調処理等を行うとともにレンダリングを行って、インクジェットヘッド部4に出力する。
システムコントローラ部5は、ROM内のプログラムに基づいてRAMをワークメモリとして利用しつつ複合装置1の各部を制御して複合装置1としての処理を実行する。そして、複合装置1は、上述のように、ページ画像形成装置のシステムコントローラ部が流用されており、そのソフトウェアも可能な限りページ画像形成装置のシステムコントローラのソフトウェアが流用されている。また、上述のように、スキャナ部2、スキャナ側画像処理部11及びコントローラI/F制御部14も、適宜、ページ画像形成装置、例えば、ページ複合装置、ページファクシミリ装置等のスキャナ部、スキャナ側画像処理部及びコントローラI/F制御部を流用することができる。
複合装置1は、スキャナ部2で読み取った原稿の画像データ(スキャナ画像データ)やホスト装置HSから受信した画像データ(受信画像データ)に基づいて、インクジェットヘッド部4で画像形成するが、システムコントローラ部5は、内蔵する画像処理部で、該スキャナ画像データ及び受信画像データをCMYKの画像データに変換する。
画像メモリ42は、例えば、図2に示すように、CMYKの各版(本実施例では、各色)それぞれ1対のトグルバッファBuf1〜Buf8を有しており、画像メモリ42としては、通常、ページ画像形成装置の画像形成可能な用紙サイズ幅の数ライン分の画像データを記憶する容量のみを有している。
そして、複合装置1は、広幅であって、かつ、長尺の画像データを取り込んで、バンド毎にインクジェットヘッド部4で画像形成するため、画像メモリ42に画像データを取り込んで必要な画像処理を行った後、エンジン部3に転送すると、ページ画像形成装置のシステムコントローラ部を流用したシステムコントローラ部5が備えている画像メモリ42ではメモリ容量が不足するため、一旦大容量のHDD(大容量記憶手段)6にスキャナ部2から受け取った画像データ(スキャナ画像データ)やホスト装置HSから受け取った画像データ(受信画像データ)を保管し、該HDD6から画像メモリ42のトグルバッファBuf1〜Buf8への画像データの転送を該トグルバッファBuf1〜Buf8のディスクリプタに基づくDMAC(Direct Memory Access Controller :DMAコントローラ)を用いたDMA転送で行う。
画像メモリアクセス制御部41は、エンジン部3に設けられている画像データ制御部15のメモリ制御部21からコントローラI/F制御部14を介して送られてくる画像データのリード要求に応じて画像メモリ42の各対となっているトグルバッファBuf1〜Buf8から順次交代で各版毎に画像データを読み出してメモリ制御部21に転送する。
そして、複合装置1は、ROM、EEPROM(Electrically Erasable and Programmable Read Only Memory )、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Video Disk)、SD(Secure Digital)カード、MO(Magneto-Optical Disc)等のコンピュータが読み取り可能な記録媒体に記録されている本発明の画像形成制御方法を実行する画像形成制御プログラムを読み込んでシステムコントローラ部5のROMやエンジン部3の図示しないROMに導入することで、後述するページ画像形成装置のシステムコントローラ部を流用して、広幅で長尺の画像データをスキップ処理を行いつつライン画像形成を行う場合の画像データの転送処理や白検知を適切かつ効率的に行う画像形成制御方法を実行する画像形成装置として構築されている。この画像形成制御プログラムは、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
次に、本実施例の作用を説明する。本実施例の複合装置1は、ページ画像形成装置のシステムコントローラ部を流用して、広幅で長尺の画像データをスキップ処理を行いつつライン画像形成を行う場合の画像データの転送処理や白検知を適切かつ効率的に行う。
すなわち、複合装置1は、コピー機能の場合には、図1にデータ転送ラインL1で示すように、スキャナ部2で原稿のカラー画像を読み取ったデジタルのRGB画像データを、エンジン部3のスキャナ側画像処理部11で必要な画像処理を行った後、該読み取った原稿の画像データをコントローラI/F制御部14を介してシステムコントローラ5に転送する。システムコントローラ部5は、CPUの制御下で、コントローラI/F制御部14を介して送られてきた画像データを、画像処理部によって必要な画像処理を施し、特に、CMYKの画像データを生成してHDD6に保管する。
また、複合装置1は、プリンタ機能の場合には、図1にデータ転送ラインL2で示すように、通信回線を介してホスト装置HSから印刷データが送信されてくると、該印刷データを通信部で受信してシステムコントローラ部5に転送し、システムコントローラ部5は、CPUの制御下で、通信部から送られてきた画像データを、画像処理部によって必要な画像処理を施した後、特に、CMYKの画像データを生成してHDD6に保管する。
システムコントローラ部5は、HDD6に保管した画像データを、図2に示すように、各色毎に、それぞれ画像メモリ42の対応するトグルバッファBuf1〜Buf8に、順次ディスクリプタに基づくDMA転送によって転送する。
システムコントローラ部5の画像メモリアクセス制御部41は、トグルバッファBuf1〜Buf8に画像データが書き込まれると、図2に示すように、リード許可をエンジン部3の画像データ制御部15のメモリ制御部21に通知し、画像データ制御部15のメモリ制御部21は、画像メモリアクセス制御部41にディスクリプタサイズ分の画像データを要求する。画像メモリアクセス制御部41は、図1にデータ転送ラインL3で示すように、画像メモリ42からディスクリプタサイズの画像データを読み出して画像データ制御部15のスキップ用メモリ22に転送し、また、トグルバッファBuf1〜Buf8の対となっている他のトグルバッファBuf1〜Buf8に画像データが格納されていると、リード許可を画像データ制御部15に通知するという処理を繰り返し行う。
ところが、複合装置1は、上述のように、スキップ制御部23の入力制御部31が、スキップ用メモリ22の画像データをメモリ制御部21を介して順次読み込んで該画像データを画素毎に白画素であるか否かの白検知を行って、白画素(白データ)であると、該白データを破棄して、白画素が何画素連続しているかの連続白画素数情報を内部カウンタに記録し、図3に示すように、白画素のラインが予め設定されたスキップバンド数分(図3では、2バンド分)連続すると、エンジンCPU12に空白バンド通知割り込みを発生して空白バンドの通知を行って、該空白バンド分の紙搬送を行う。なお、図3において、ハッチングされている画素部分が有効画素であり、その他の画素が白画素を示している。図3では、バンド番号N=0、1が、全てのライン画素が白の白バンドであり、N=2の3ライン目以降N=4バンド目の5ライン目まで有効画素が続いていることを示している。そこで、図3では、N=1バンドの最後の画素が白画素であることを検知した時点でスキップ制御部23の入力制御部31がエンジンCPU12に空白バンド通知割り込みを発生させる。
このように、入力制御部31は、画像データが連続して白画素であると、該白画素の画像データを破棄して次の画像データの白検知を行うため、白画素が連続すると、その分白検知の処理が高速で行われ、スキップ用メモリ22からメモリ制御部21を介して入力制御部31に送られる画像データの転送速度が速くなる。その結果、メモリ制御部21は、処理対象となる次のディスクリプタサイズの画像データを、システムコントローラ部5の画像メモリアクセス制御部41に要求し、画像メモリアクセス制御部41は、画像メモリ42内のトグルバッファBuf1〜Buf8の画像データをスキップ用メモリ22に転送する。
ところが、画像データに白画素が連続していて入力制御部31で破棄する白画素の数が多くなると、メモリ制御部21からシステムコントローラ部5に頻繁に画像データのリード要求を行うこととなり、HDD6から画像メモリ42のトグルバッファBuf1〜Buf8へのディスクリプタに基づく画像データのDMA転送が、メモリ制御部21からのリード要求に間に合わなくなって、次の画像データがHDD6から画像メモリ42の読み取り対象となるトグルバッファBuf1〜Buf8に書き込まれていない状態で読み出しが発生する事態を招く。このような事態が発生すると、画像データの異常となって、画像品質が劣化することとなる。
そこで、本発明のデジタル複合装置1は、図4に示すように、画像メモリ42へのリード許可を画像メモリ42の少なくとも次のトグルバッファBuf1〜Buf8への画像データの書き込みが完了するまで待たせることで、トグルバッファBuf1〜Buf8に次の画像データが書き込まれた状態で、画像データ制御部15にリード許可を与えて、不良の画像データを画像データ制御部15がスキップ用メモリ22に取り込むことを防止する。なお、図4では、1つの色の対のトグルバッファBuf1〜Buf8(トグルバッファBuf1とトグルバッファBuf2、トグルバッファBuf3とトグルバッファBuf4、トグルバッファBuf5とトグルバッファBuf6、トグルバッファBuf7とトグルバッファBuf8が対となっている。)であるトグルバッファBuf1とトグルバッファBuf2を用いた場合の画像データ転送制御処理を示しており、以下、このトグルバッファBuf1とトグルバッファBuf2を用いた画像データ転送制御処理について説明する。
すなわち、図4に示すように、システムコントローラ部5は、HDD6から画像メモリ42のトグルバッファBuf1とトグルバッファBuf2にディスクリプタを用いたDMA転送によってディスクリプタサイズの画像データが転送されて格納されると(ステップS1)、画像メモリアクセス制御部41が、まず、トグルバッファBuf1のリード許可を画像データ制御部15のメモリ制御部21に通知し(ステップS2)、HDD6からトグルバッファBuf1へのデータ転送に用いられたディスクリプタ1で指定されているディスクリプタサイズの画像データの転送を画像メモリアクセス制御部41に要求する。
画像メモリアクセス制御部41は、画像メモリ42のトグルバッファBuf1から該画像データのリードを画像データ制御部15のメモリ制御部21に許可し、メモリ制御部21は、トグルバッファBuf1のデータをリードすると、待機する。そして、画像メモリアクセス制御部41は、画像メモリ42のトグルバッファBuf1からディスクリプタ1のディスクリプタ情報で指定されているライン数分のリードが完了すると、ポーズ割り込みを立て、エンジンCPU12のソフトウェアは、該ポーズ割り込みが入ったことで、トグルバッファBuf1のデータリードが終了したことを確認する。
すなわち、次のトグルバッファBuf2には、画像データが準備されているので、画像メモリアクセス制御部41は、トグルバッファBuf2のリード許可を画像データ制御部15のメモリ制御部21に通知し(ステップS7)、上記ステップS3からステップS7の手順を実行して、HDD6からトグルバッファBuf2へのデータ転送に用いられたディスクリプタ2のディスクリプタサイズの画像データを画像メモリ42からスキップ用メモリ22に転送する。そして、システムコントローラ部5は、トグルバッファBuf2に対する画像データの転送手順の間に、先に転送を完了しているトグルバッファBuf1へのHDD6からのディスクリプタによるDMA転送を行うが、画像メモリアクセス制御部41は、ステップS5の処理で、ディスクリプタ1のディスクリプタ情報のライン数分リードを完了した後、次のディスクリプタ1に基づくディスクリプタ情報のライン数分(ディスクリプタで設定されているデータサイズ分)の画像データがトグルバッファBuf1にDMA転送されるまで待って、ポーズ割り込みを立てる。このポーズ割り込みで、ソフトウェアは、トグルバッファBuf1のデータリードが終了し、かつ、次の画像データの書き込みが完了したことを知る。
このように、本実施例の複合装置1は、システムコントローラ部5が、入力画像データを一旦HDD6に保管した後、HDD6よりも小さい容量の画像メモリ42に転送して、画像メモリ42の画像データを、エンジン部3からのリード要求に応じてエンジン部3に転送し、エンジン部3で、該リード要求によってシステムコントローラ部5から転送されてくる画像データが白画素であるか否かの白検知を画素毎に順次行って白画素が所定のスキップライン(スキップバンド)分連続すると、後で詳細に説明するように、インクジェットヘッド部4の主走査移動を停止させて用紙のみをスキップライン分副走査方向に搬送するスキップ動作を行う。そして、システムコントローラ部5は、画像メモリ42の画像データをエンジン部3へ転送して、HDD6から画像メモリ42への画像データの転送が完了すると、エンジン部3に画像データのリード許可を発行し、エンジン部3が、該リード許可を受け取ると、画像データのリード要求を発行する。
したがって、システムコントローラ5としてページ画像形成装置のシステムコントローラを流用して、スキップ処理を伴うライン画像形成を行う場合に、画像メモリ42のトグルバッファBuf1〜Buf8へのエンジン部3からのリード要求が、HDD6から該トグルバッファBuf1〜Buf8への画像データのディスクリプタを用いたDMA転送を追い越してしまうことを確実に防止して、適切な画像データの転送を行うことができ、画像品質の悪化を防止して、適切な画像形成を高速にかつ安価に行うことができる。
この場合、エンジン部3の画像データ制御部15、特に、メモリ制御部21は、システムコントローラ部5の画像メモリアクセス制御部41からリード許可が送られてくるまで待機するが、HDD16から画像メモリ42及び画像メモリアクセス制御部41の経路等に不具合がある場合等には、リード許可が送られてこないことがある。そこで、メモリ制御部21は、予め設定された所定のリード許可待ち時間が経過してもリード許可を受信しない場合には、エンジンCPU12を介して操作表示部の表示部に故障表示等を行って、故障通知等のサービスコール等の異常時処理を行い、速やかな対応を促すようにしてもよい。
このようにすると、複合装置1が原因不明の停止状態に陥ることを未然に防止したり、適切な処理を行うことができる。
また、システムコントローラ部5のCPUは、HDD6から画像メモリ42のトグルバッファBuf1〜Buf8への画像データの転送完了を確認すると、画像データ制御部15のメモリ制御部21からのリード要求を受信するのを待つが、予め設定されている所定のリード要求待ち時間を経過してもリード要求を受信しないと、操作表示部の表示部に故障表示等を行って、故障通知等のサービスコール等の異常時処理を行い、速やかな対応を促すようにしてもよい。
このようにすると、複合装置1が原因不明の停止状態に陥ることを未然に防止したり、適切な処理を行うことができる。
これらの待ち時間としては、例えば、複合装置1の画像形成出力の生産性に影響する程度の待ち時間(例えば、通常の画像形成出力時間に対して所定の遅延%時間だけ遅延させた時間)を演算して設定してもよい。
さらに、システムコントローラ部5の画像メモリアクセス制御部41は、画像データ制御部15のメモリ制御部21にリード許可を出すと、メモリ制御部21からのリード要求を待つが、画像データ制御部15からのリード要求を、予め設定されている所定のリード要求待ち時間経過しても受信しない場合には、操作表示部の表示部に故障表示等を行って、故障通知等のサービスコール等の異常時処理を行い、速やかな対応を促すようにしてもよい。
このようにすると、複合装置1が原因不明の停止状態に陥ることを未然に防止したり、適切な処理を行うことができる。
また、システムコントローラ部5は、画像メモリアクセス制御部41から画像データ制御部15のメモリ制御部21にリード許可を出したにもかかわらず、画像データ制御部15からのリード要求を、予め設定されている所定の待ち時間が経過しても受信しない場合には、再度、リード許可を画像データ制御部15に発行してもよい。
このようにすると、エンジン部3側のハードウェアの異常等でリード要求を画像データ制御部15が認識できない場合に、複合装置1が処理の停止に陥ることを回避する機会を増やすことができ、適切な動作の確保を向上させることができる。
さらに、画像メモリアクセス制御部41は、メモリ制御部21からリード要求があると、該リード要求による画像データのデータサイズとHDD6から画像メモリ42へのディスクリプタによるDMA転送でディスクリプタによって設定されているデータサイズと比較し、リード要求によるデータサイズがディスクリプタのデータサイズを超えていると、適切なデータ転送を行えないと判断して、操作表示部の表示部に故障表示等を行って、故障通知等のサービスコール等の異常時処理を行い、速やかな対応を促すようにしてもよい。
このようにすると、複合装置1が原因不明の停止状態に陥ることを未然に防止したり、適切な処理を行うことができる。
そして、エンジン部3の画像データ制御部15は、上述のようにして、スキップ用メモリ22に画像データが転送されてくると、スキップ制御部23の入力制御部31が、図1のデータ転送ラインL4に示すように、メモリ制御部21を介してスキップ用メモリ22から画像データを順次読み出して白検知を行うが、広幅の画像データを処理する場合、スキップ用メモリ22から読み出した画像データをスキップ制御部15側で保管していると、大容量のメモリを必要とし、コストが高くつく。
そこで、スキップ用メモリ22としては、数ライン部の画像データを記憶する容量のメモリを用い、図5に示すように、スキップ制御部23の入力制御部31が、スキップ用メモリ22から画像データを読み出すと同時に白検知を行う。すなわち、エンジン部3は、図5に示すように、まず、エンジンCPU12が入力制御部31にバンドデータの転送開始命令を出し(図5のステップa)、入力制御部31が、メモリ制御部21に対して画像データの転送要求を行う(図5のステップb)。メモリ制御部21は、スキップ用メモリ22内に予め設定された設定データ量が蓄積されていると、入力制御部31に対して画像データの転送を行う(図5のステップc)。この場合、メモリ制御部21は、スキップ用メモリ22内に該設定データ量以上の画像データが蓄積されていない場合には、入力制御部31に対して画像データの転送を行わないで、該設定データ量以上の画像データがスキップ用メモリ22内に蓄積されるのを待つ。
入力制御部31は、画像データがメモリ制御部21から送られてくると、該画像データの白検知(白判定)を行い、白画素であると該白画素の画像データ自体を廃棄するとともに、連続する白画素数を連続白画素数カウンタでカウントし、次の画像データをメモリ制御部21に要求するという処理を白画素が連続する限り繰り返し行う(図5のステップd、ステップc)。上記入力制御部31による、白検知と、白画素の連続白画素数カウンタでのカウント及び次の画像データの要求、メモリ制御部21からの画像データの転送を繰り返し行って、連続白画素数カウンタのカウント値が予め設定されたスキップバンド数(本実施例では、図3に示すように、2バンド)になると、エンジンCPU12に対して空白バンド通知割り込みを発生してスキップ通知を行い(図5のステップe)、エンジンCPU12は、空白バンド通知割り込みが入ると、ヘッド制御部13に予め設定されているスキップ動作処理を行わせるとともに、入力制御部31に対して次のバンド転送要求を行う(図5のステップf)。ヘッド制御部13は、スキップ処理として、上述のように、インクジェットヘッド部4のインクジェットヘッドを搭載するキャリッジの主走査方向の往復移動を停止して、用紙搬送機構部によって該空白バンド(空白ライン)分の用紙搬送を行う処理を実行する。
入力制御部31は、図3のN=2のバンドの4ライン目に示すように、空白以外の画像形成すべき有効画素を検知すると、該有効画素データをデータ格納バッファ32に格納し(図5のステップg)、メモリ制御部21にデータ転送停止命令を出す(図5のステップh)。メモリ制御部21は、該データ転送停止命令に応じてスキップ用メモリ22の画像データの入力制御部31への転送を停止する(図5のステップh)。
一方、スキップ制御部23の出力制御部33は、入力制御部31の連続白画素数カウンタのカウント値から破棄された白画素(連続白画素)分の白データを生成し、ヘッド側画像処理部16に出力する(図5のステップi)。例えば、図3では、スキップラインの次のラインであるN=2バンドの最初のラインにおける先頭白画素から4ライン目の有効画素手前の白画素までの白データを生成して、ヘッド側画像処理部16に出力する。出力制御部33は、白データの生成と出力を行うと、続いて、データ格納バッファ32に格納されている有効データを読み出して、該有効画像データをヘッド側画像処理部16に出力する(図5のステップj)。
そして、入力制御部31は、上記同様に、メモリ制御部21に対して画像データのリード要求を行い(図5のステップb)、メモリ制御部21は、スキップ用メモリ22内に予め設定された設定データ量が蓄積されていると、入力制御部31に対して画像データの転送を行う(図5のステップc)。
入力制御部31は、画像データがメモリ制御部21から送られてくると、白検知(白判定)を行うことなく、該画像データをヘッド側画像処理部16に転送するという処理を該有効画素の存在したバンドにおける最終ラインの最後の画素まで繰り返し実行する(図5のステップc、ステップk)。
そして、入力制御部31は、該バンドの最後の画素までスキップ用メモリ22から読み込んだ画像データをヘッド側画像処理部16に転送する処理を行うと、バンド転送完了割り込みをエンジンCPU12に発生し(図5のステップl)、エンジンCPU12は、該バンド転送完了割り込みを受け取ると、最初の処理に戻って、入力制御部31にバンドデータの転送開始命令を出し、上記同様の処理を該画像データが終了するまで実行する(図5のステップaからステップl)。
エンジンCPU12は、上記画像形成制御処理を図6に示すように実行する。すなわち、エンジンCPU12は、まず、バンド番号Nをページ最初の「0」に設定し(ステップS101)、該バンド番号Nが、1ページ分のバンド数かチェックして(ステップS102)、1ページ分のバンド数でないときには、Nバンド目の先頭ラインの先頭画素に処理アドレスを設定する(ステップS103)。次に、入力制御部31が、メモリ制御部21に対してリード要求を行い(ステップS104)、入力制御部31が、白検知(白判定)を行って(ステップS105)、該画素が白画素(白データ)であるかチェックする(ステップS106)。
入力制御部31は、検知対象の画素が白画素であると、連続白画素数カウンタによる連続白画素数をカウントするとともに、該白画素を破棄する白画素数カウント処理を行う(ステップS107)。この白画素数カウント処理では、入力制御部31は、まず、画素単位の白画素数をカウントする白画素カウンタH_CNTを「1」だけインクリメントし(ステップS201)、白画素カウンタH_CNTのカウント値が主走査サイズ(1ラインの画素数)になったかチェックする(ステップS202)。ステップS202で、白画素カウンタH_CNTのカウント値が1ラインの画素数になっていないときには、入力制御部31は、白画素数カウント処理から抜けて、ステップS104に戻って、入力制御部21に対してリード要求を行う処理から上記同様に処理し(ステップS104〜S107)、ステップS202で、白画素カウンタH_CNTが主走査サイズ(1ラインの画素数)になっていると、ライン白画素カウンタL_CNTのカウント値を「1」だけインクリメントして(ステップS203)、ライン白画素カウンタL_CNTのカウント値が1バンドのライン数に達したかチェックする(ステップS204)。
ステップS204で、ライン白画素カウンタL_CNTのカウント値が1バンドのライン数に達していないときには、入力制御部31は、ステップS104に戻って、入力制御部21に対してリード要求を行う処理から上記同様に処理し(ステップS104〜S107)、ステップS204で、ライン白画素カウンタL_CNTのカウント値が1バンドのライン数に達していると、バンド白画素カウンタB_CNTのカウント値を「1」だけインクリメントして(ステップS205)、白画素数カウント処理を抜けて、連続白データが予め設定されているスキップバンド数に達したかチェックする(ステップS108)。
ステップS108で、入力制御部31は、連続白画素のライン数が予め設定されているスキップバンド数に達していないときには、ステップS102に戻って、該インクリメントしたバンド番号Nが1ページ分のバンド数かのチェックから上記同様に処理する(ステップS102〜S108)。ステップS108で、連続白画素のライン数がスキップバンド数に達していると、入力制御部31は、エンジンCPU12に空白バンド通知割り込みを発生してスキップ通知を行い、エンジンCPU12に、スキップ処理を行わせるとともに、バンド番号Nを「1」だけインクリメントして(ステップS110)、ステップS102に戻って、バンド番号Nが1ページ分のバンド数であるかのチェックから上記同様に処理する(ステップS102〜S110)。
ステップS106で、白検知の対象画素が白データでないとき、すなわち、有効画素データのときには、入力制御部31は、データ格納バッファ32に該有効画素データを格納し(ステップS111)、メモリ制御部21にデータ転送停止命令を出す(ステップS112)。
出力制御部33は、入力制御部31の連続白画素数カウンタのカウント値(カウンタ情報)に基づいて破棄された白画素分の白データを生成して、後段であるヘッド側画像処理部16に出力し(ステップS113)、次に、入力制御部31は、データ格納バッファ32に格納した有効データを出力制御部33に渡して、出力制御部33がヘッド側画像処理部16に出力する(ステップS114)。入力制御部31は、メモリ制御部21に次の画像データの転送要求(リード要求)を行い(ステップS115)、白検知を行うことなく、該バンドの最後の画像データまでそのままスキップ用メモリ22からの画像データを、出力制御部33を介してヘッド側画像処理部16に転送する(ステップS116)。
入力制御部31は、該有効画素データのあったバンドの最後の画像データまでデータ転送を行うと、エンジンCPU12にバンドの転送完了割り込みを行い、エンジンCPU12がバンド番号Nを「1」だけインクリメントして(ステップS117)、ステップS102に戻って、バンド番号Nが1ページ分のバンド数であるかのチェックから上記同様に処理する(ステップS102〜S117)。
ステップS102で、バンド番号Nが1ページ分のバンド数であると、1ページ分の画像形成処理を完了したと判断して、処理を終了する。
なお、上記説明においては、有効画素を検知したバンドにおいては、該有効画素検知以降の該バンドの最後の画素データまでは、スキップ用メモリ22から読み取った画素に対して白検知を行わず、該画素データをそのまま後段のヘッド側画像処理部16に出力しているが、有効画素を検知したバンドの画像データに対する画像処理の方法は、上記方法に限るものではない。例えば、有効画素を検知したバンドの画像データについても、順次白検知を行い、白画素については破棄して連続白画素数カウンタで連続白画素数をカウントして、次に有効画素を検知するかバンドの最後まで処理を行うと、該連続白画素分の白画像データを出力制御部33で生成してヘッド側画像処理部16に出力するようにしてもよい。
このように、本実施例の複合装置1は、スキップ制御部23が、画像データを保管するスキップ用メモリ22の該画像データを読み取ると同時に該画像データが白画素であるか否かの白検知を画素毎に順次行って、白画素が連続すると該白画素を破棄して連続白画素数をカウントするとともに該連続白画素数が予め設定されているスキップバンド数分になるとスキップ通知を出力し、インクジェットヘッド部4の主走査移動を停止させて用紙のみを該スキップバンド分搬送するスキップ動作を行う。そして、複合装置1は、該スキップ用メモリ22から読み取った画像データから連続する白画素の後に白以外の有効画素を検知すると、スキップ用メモリ22からの画像データの読み取りを一時停止し、該スキップ通知を出力するラインの次ラインの先頭画素から該有効画素までの破棄した白画素の画像データを連続白画素数に基づいて生成して、ヘッド側画像処理部16及びインクジェットヘッド部4に送って画像形成する画像形成制御動作を行っている。
したがって、複合装置1は、ページ画像形成装置のシステムコントローラ部5を流用して、広幅で長尺の画像に対してスキップ処理を行いつつライン画像形成を行うのに、スキップ用メモリ22から画像データを読み込むと同時に白検知を行って、白画素を破棄するとともに、有効画素を検知するとスキップ用メモリ22からのデータ読み込みを一時停止するので、システムコントローラ部5としてページ画像形成装置のシステムコントローラ部を流用した場合にも、スキップ用メモリ22として大容量のメモリを用いることなく、適切にスキップ処理を行って画像形成することができ、高速にかつ安価にライン画像形成処理を行うことができる。
また、本実施例の複合装置1は、入力画像データを保管するHDD6と、HDD16よりも小さい容量の画像メモリ42を有し入力される画像データを一旦HDD6に保管させた後画像メモリ42に順次転送してエンジン部3の画像データ制御部15からのリード要求に応じて画像メモリ42の画像データを転送するシステムコントローラ部5と、を備え、画像データ制御部15が、メモリ制御部21の空き状況に応じて画像データ制御部15にリード要求を行ってシステムコントローラ部5から受け取った画像データをスキップ用メモリ22に格納するメモリ制御部21を、さらに備え、スキップ制御部23が、該メモリ制御部21を介してスキップ用メモリ22から画像データを取得すると同時に白検知を行っている。
したがって、スキップ用メモリ22として大容量のメモリを用いることなく、広幅で長尺の画像データに対しても、適切にスキップ用メモリ22に画像データを格納して、スキップ処理を伴う画像処理を適切に行うことができ、高速かつ安価にライン画像形成処理を行うことができる。
さらに、本実施例の複合装置1は、スキップ制御部23が、スキップ用メモリ22の画像データを読み取ると同時に該画像データの白検知を行って検知した白画素の破棄及び連続白画素数のカウントとスキップ通知を行うとともに、有効画素の検知によってスキップ用メモリ22からの画像データの読み取りの一時停止及びスキップ用メモリ22からの画像データの読み取りの再開と該白検知の再開を行う入力制御部31と、入力制御部31の検知した有効画素を保管するデータ格納バッファ32と、入力制御部31が有効画素を検知すると該有効画素を検知するまでに破棄した白画素の画像データを生成してヘッド側画像処理部16に出力するとともに、データ格納バッファ33に保管されている有効画素をヘッド側画像処理部16に出力する出力制御部33と、を備えている。
したがって、入力制御部31による白検知と出力制御部33によるデータ出力を並行して行うことができ、処理効率を向上させて、より一層画像形成速度を高速化することができる。
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。