(57)【特許請求の範囲】
【請求項１】
区分された複数の画像記憶領域を各色毎に確保する画像メモリ管理手段と、
各色毎に前記複数の画像記憶領域に対し順次画像データの入出力を行う画像入出力手段と、
前記画像記憶領域各々に対する画像データの入出力の状況を検知する検知手段と、
検知された入出力の状況から、少なくとも１つの色について画像記憶領域の画像データの準備が、出力に間に合わないとき、前記画像入出力手段を待機させる制御を実行する制御手段と
を含み、
前記準備は、（ｉ）前記画像入出力手段から１次記憶装置上に確保される画像記憶領域へ、出力すべき画像データを入力すること、（ｉｉ）２次記憶装置から１次記憶装置上に確保された画像記憶領域へ、出力すべき画像データを転送すること、または（ｉｉｉ）１次記憶装置上に確保される画像記憶領域へプリントデータを展開することを含む、画像処理装置。
【請求項２】
前記検知手段は、前記画像記憶領域に対しポイントを設定し、前記画像入出力手段による入出力位置が該ポイントに到達したことを検知する手段であり、
前記制御手段は、前記検知に応答して、少なくとも１つの色について次に出力する画像記憶領域の画像データの準備が完了していないと判定したときに前記待機を行う手段である、請求項１に記載の画像処理装置。
【請求項３】
前記画像入出力手段は、完結動作が可能な画像形成手段を含み、前記制御手段は、前記待機の制御によって前記画像形成手段の動作を一時停止させる、請求項１に記載の画像処理装置。
【請求項４】
前記検知手段は、前記画像入出力手段による入出力位置が前記ポイントに到達したときに、前記画像記憶領域に対しポイントの再設定を行う、請求項２に記載の画像処理装置。
【請求項５】
前記画像入出力手段は、画像入力動作を行うスキャナ・ユニットおよび画像出力動作を行うプロッタ・ユニットの両方または前記プロッタ・ユニットを含む、請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
画像処理装置を実現するためのコンピュータ実行可能なプログラムであって、コンピュータを、
区分された複数の画像記憶領域を各色毎に確保する画像メモリ管理手段、
エンジンが各色毎に前記複数の画像記憶領域に順次画像データを入出力する状況を検知する検知手段、および
検知された入出力の状況から、少なくとも１つの色について画像記憶領域の画像データの準備が、出力に間に合わないとき、前記エンジンを待機させる制御を実行する制御手段
として機能させるためのプログラムであり、
前記準備は、（ｉ）前記エンジンから１次記憶装置上に確保される画像記憶領域へ、出力すべき画像データを入力すること、（ｉｉ）２次記憶装置から１次記憶装置上に確保された画像記憶領域へ、出力すべき画像データを転送すること、または（ｉｉｉ）１次記憶装置上に確保される画像記憶領域へプリントデータを展開することを含む、プログラム。
【請求項７】
前記検知手段は、前記画像記憶領域に対しポイントを設定し、前記エンジンによる入出力位置が該ポイントに到達したことを検知する手段であり、
前記制御手段は、前記検知に応答して、少なくとも１つの色について次に出力する画像記憶領域の画像データの準備が完了していないと判定したときに前記待機を行う手段である、請求項６に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関し、より詳細には、大容量の画像データを処理する画像処理装置およびプログラムに関する。
【背景技術】
【０００２】
近年、複合機、プリンタおよびスキャナなどの画像処理装置の高解像度化および大判化が進んでおり、設計図やポスターなどの大判印刷や長尺印刷が可能なデジタル広幅複写機が提供されている。昨今の高画質化に対する要請から、広幅機に対しても、Ａ３サイズなどの普及機と同等の画質が求められ、さらにカラー化への対応も求められている。
【０００３】
上述のような長尺原稿の画像処理では、画像データが大容量となるため、膨大なメモリ容量が必要となる。しかしながら、画像処理装置に搭載できるメモリ容量は無制限に増強することはできない。オペレーティング・システムや他のアプリケーションにもメモリ領域も必要であるため、搭載されたメモリの領域すべてを画像用に確保することもできない。このような背景から、メモリ消費量を抑制して画像処理を行う技術が開発されている。
【０００４】
例えば、特許第３７３０５８６号公報（特許文献１）は、２つのトグルバッファを使用して、長尺時に、交互に画像データを入力することにより、画像データより少ないメモリ使用量で画像読取を行う技術を開示する。
【０００５】
上述のように、大容量の画像データでは、一定のメモリ領域上に画像データを繰り返して入力することになるため、入力された画像データは、随時ＨＤＤ（Hard Disk Drive）などに退避される。このとき、モノクロ・プリントのような単色の画像処理の場合は、入力が１プレーンであり、退避先もＨＤＤ１台であるため、特段の問題とならないが、カラー化に伴い、不具合を生じる場合があった。複数色の画像処理の場合は、入力にＣＭＹＫやＲＧＢなどの複数色プレーン必要となる一方で、退避先のＨＤＤが１つしか設けられておらず、退避処理がボトルネックとなるためである。
【０００６】
通常、充分なＨＤＤの転送速度が得られるよう仕様が設計されるが、何らかの理由で遅延が発生し、すべてのプレーンがＨＤＤへ退避される前に繰り返し入力が行われてしまうと、退避されていない画像データが上書きされ、異常画像となる。また、出力動作時に、ＨＤＤから画像データの準備が完了する前に追い越して出力が行われると、これも異常画像となる。また、バッファメモリ領域に画像データを繰り返して入力する場合、入力位置がバッファメモリ領域のどこまで通過したかを検知するためのポイントが設定されるが、ポイント設定数はＡＳＩＣ（Application Specific Integrated Circuit）の仕様上有限であり、各色に対応して充分なポイントを確保することが難しかった。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、画像処理の生産性を向上させるためには、上記異常画像の発生など動作が破綻しないように、画像の入出力のタイミングを調整する必要がある。しかしながら、上記カラー化に伴い、入出力のタイミング調整の条件が厳しくなり、カラー化が妨げられていた。
【０００８】
本発明は、上記従来技術における不充分な点に鑑みてなされたものであり、本発明は、ソフトウェア側で入出力のタイミング調整することを可能とし、小さな消費メモリで、複数色かつ大規模な画像データを処理することが可能な画像処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では、上記課題を解決するために、以下の特徴を有する画像処理装置を提供する。本画像処理装置は、区分された複数の画像記憶領域を各色毎に確保する画像メモリ管理手段と、各色毎に複数の画像記憶領域に対し順次画像データの入出力を行う画像入出力手段とを含む。さらに、本画像処理装置は、画像記憶領域各々に対する画像データの入出力の状況を検知する検知手段と、検知された入出力の状況から、少なくとも１つの色について画像記憶領域の画像データの退避または準備が、入力または出力に間に合わないとき、上記画像入出力手段を待機させる制御を実行する制御手段とを含む。
【発明の効果】
【００１０】
上記カラー化に伴い、入出力のタイミング調整の条件が厳しくなるが、上記構成によれば、画像記憶領域各々に対する画像データの入出力の状況を検知し、画像データの退避または準備が入力または出力に間に合わない場合に待ち制御を行うことができる。このため好適に入出力のタイミング調整することが容易となり、長尺原稿のカラー画像処理を円滑に実行すること可能となる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態による複合機のソフトウェア構成およびハードウェア構成を示す図。
【図２】本実施形態の複合機のハードウェア構成図。
【図３】画像入力動作における主としてエンジンの動作を説明する図。
【図４】画像入力動作における主としてデバイスドライバの動作を説明する図。
【図５】画像入力動作における主としてＩＭＨの動作を説明する図。
【図６】異常画像が発生する状態を例示する図。
【図７】好適な実施形態による画像入力動作における待ち制御を説明する図（１／２）。
【図８】好適な実施形態による画像入力動作における待ち制御を説明する図（２／２）。
【図９】画像出力動作におけるエンジン、デバイスドライバおよびＩＭＨのはたらきを説明する図。
【図１０】好適な実施形態による画像出力動作における待ち制御を説明する図（１／２）。
【図１１】好適な実施形態による画像出力動作における待ち制御を説明する図（２／２）。
【図１２】画像入力される画像データをＨＤＤに順次退避しながら、画像出力するコピー処理を模式的に説明する図。
【図１３】画像入力される画像データをＨＤＤへ退避せずに、メモリ上から直接画像出力するコピー処理を説明する図。
【図１４】上記画像出力動作中のキャンセル時の動作を説明する図。
【図１５】画像入出力動作におけるエンジンとソフトウェア（デバイスドライバおよびＩＭＨ）との協同を説明する図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について説明するが、本発明の実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下の実施形態は、画像処理装置の一例として、コピー、スキャナ、プリンタ等の各種画像処理機能を備える複合機を用いて説明する。
【００１３】
図１は、本実施形態による複合機１０のソフトウェア構成およびハードウェア構成を示す図である。図１に示す複合機１０は、種々のソフトウェア・コンポーネントが含まれるソフトウェア部１２と、複合機起動部１４と、種々のハードウェア・リソースが含まれるハードウェア部１６とを含み構成される。
【００１４】
ハードウェア部１６は、スキャナやファクシミリなどのハードウェア・リソース３０と、モノクロ・レーザプリンタ（Ｂ＆ＷＬＰ）３２と、カラー・レーザプリンタ（ＣｏｌｏｒＬＰ）３４と、メディア・リンク・コントローラ（ＭＬＣ）３６とを含む。ソフトウェア部１２は、複合機としての機能を提供するための各種アプリケーション４０〜４８が含まれるアプリケーション層１８と、プラットフォーム層２０とを含む。
【００１５】
アプリケーション層１８は、プリンタ、コピー、ファックスおよびスキャナなどの画像処理に関するユーザ・サービス固有の処理を行う。図１に示した実施形態では、アプリケーション層１８は、プリンタ機能を提供するプリンタ・アプリケーション４０と、コピー機能を提供するコピー・アプリケーション４２と、ファクシミリ機能を提供するファックス・アプリケーション４６と、スキャナ機能を提供するスキャナ・アプリケーション４８とを含む。
【００１６】
プラットフォーム層２０は、図示しないオペレーティング・システム（ＯＳ）とともにアプリケーション４０〜４８からの処理要求を解釈して、ハードウェア資源の獲得要求を発生するコントロール・サービス層２２を含む。プラットフォーム層２０は、さらに、１つまたは複数のハードウェア・リソースの管理を行い、コントロール・サービス層２２からの獲得要求を調停し実行制御するシステム資源管理部（ＳＲＭ）２４と、ＳＲＭ２４からの獲得要求に応じてハードウェア・リソースの管理を行うハンドラ層２６とを含む。
【００１７】
上記ＯＳとしては、例えば、ＵＮＩＸ（登録商標）を採用することができるが、ＷＩＮＤＯＷＳ（登録商標）やその他のいかなるＯＳを採用することを妨げない。ソフトウェア部１２の各ソフトウェア・コンポーネントは、ＵＮＩＸ（登録商標）などのＯＳ上に、プロセス単位で並列的に実現される。また、ＯＳには、後述するＡＳＩＣ（Application Specific Integrated Circuit）に接続される各種デバイスを利用するためのデバイスドライバ８０が含まれる。
【００１８】
各種コントロール・サービスとしては、図１に示した実施形態では、ネットワーク制御サービス（ＮＣＳ）５０と、デリバリー制御サービス（ＤＣＳ）５２と、オペレーションパネル制御サービス（ＯＣＳ）５４と、ファクシミリ制御サービス（ＦＣＳ）５６と、エンジン制御サービス（ＥＣＳ）５８と、メモリ制御サービス（ＭＣＳ）６０と、ユーザ情報制御サービス（ＵＣＳ）６２と、システム制御サービス（ＳＣＳ）６４とが含まれる。
【００１９】
ＳＣＳ６４は、各種アプリケーションの管理、システム画面表示、ＬＥＤ表示、ハードウェア資源の管理および割込みアプリケーションの制御などを行う。ＵＣＳ６２は、ユーザ情報を管理する。ＭＣＳ６０は、画像メモリの取得および解放、画像データの圧縮・伸張等のメモリ制御などを行う。ＥＣＳ５８は、モノクロ・レーザプリンタ３２、カラー・レーザプリンタ３４、スキャナなどのエンジンを制御し、画像読取処理および画像形成処理を実行する。
【００２０】
ＦＣＳ５６は、ＧＳＴＮインタフェースと接続し、ＧＳＴＮ網を使用したファクシミリ送受信、バックアップメモリで管理されている各種ファクシミリ・データの登録／引用、ファクシミリ読み取りなどを制御する。ＯＣＳ５４は、オペレータと本体制御との間のインタフェースとなるオペレーションパネルの制御を行う。ＤＣＳ５２は、ＨＤＤなどに蓄積された蓄積文書の配信を制御を行う。
【００２１】
ＮＣＳ５０は、ＮＩＣ（ネットワーク・インタフェース・カード）を制御して、複合機１０をイーサネット（登録商標）と接続させ、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用可能なサービスを提供する。ＮＣＳ５０は、より具体的には、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分け、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。例えばＮＣＳ５０は、ネットワークを介して接続されるネットワーク機器とのデータ通信を、ｈｔｔｐｄ（HyperText Transfer Protocol Daemon）によりＨＴＴＰ（HyperText Transfer Protocol）で制御する。
【００２２】
プラットフォーム層２０とアプリケーション層１８との間には、アプリケーション・プログラム・インタフェース（ＡＰＩ）７８を有する。プラットフォーム層２０は、ＡＰＩ７８に含まれる予め定義された関数により、各種アプリケーション４０〜４８からの処理要求を受信する。
【００２３】
ＳＲＭ２４は、ＳＣＳ６４とともに、システム制御およびハードウェア・リソースの管理を行う。ＳＲＭ２４は、獲得要求されたハードウェア・リソースが利用可能か否かを判定し、利用可能であれば獲得要求されたハードウェア・リソースが利用可能である旨を、上位層に通知する。また、ＳＲＭ２４は、上位層からの獲得要求に対して、ハードウェア・リソースを利用するためのスケジューリングを行い、例えばエンジン３２，３４による紙搬送や画像形成動作やメモリ確保やファイル生成などを直接実施している。
【００２４】
ハンドラ層２６は、ファクシミリ・コントロール・ユニットを管理するファクシミリ・コントロール・ユニット・ハンドラ（ＦＣＵＨ）７０と、プロセスに対するメモリ割当て、プロセスに割当てたメモリの管理を行うイメージメモリハンドラ（ＩＭＨ）７２と、ＭＬＣ３６を利用するメディア・エディット・ユーティリティ（ＭＥＵ）７４とを含む。ＳＲＭ２４およびＦＣＵＨ７０は、エンジン・インタフェース（Ｉ／Ｆ）７６に含まれる予め定義されている関数を使用して、ハードウェア部１６のハードウェア・リソースに対する処理要求を送信する。
【００２５】
複合機起動部１４は、複合機１０の電源投入時に最初に実行され、上述までのプラットフォーム層２０およびアプリケーション層１８のソフトウェア群（プロセス）に対応する制御プログラムを、図示しないＲＯＭやＨＤＤなどから読出す。そして、複合機起動部１４は、読み出した制御プログラムを、ＣＰＵの作業メモリ領域を提供するシステムメモリ上に展開し、各プロセスを起動することにより、上記したソフトウェア手段および後述の各処理を実現する。複合機１０は、上述のソフトウェア群により、ハードウェア・リソースを制御し、ユーザ指令や外部コンピュータからの入力に応答して、コピー、ファクシミリ、カラーコピーなど、複合機としての機能をユーザに提供する。
【００２６】
なお、上述したアプリケーション、コントロール・サービスおよびハードウェアは、種々の組み合わせにより構成することができ、特定の用途、機種に対応して追加・削除することができる。また、図１に示した実施形態では、複合機としての各アプリケーションや制御サービスにおける共通部分を抽出して、プラットフォーム化した構成として参照したが、複合機１０のハードウェア構成およびソフトフェアの構成は、特に限定されるものではない。
【００２７】
図２は、本実施形態の複合機１０のハードウェア構成を示す図である。複合機１０は、コントローラ１００と、オペレーション・パネル１２４と、ＦＣＵ（ファクシミリ・コントロール・ユニット）１２６と、ＵＳＢインタフェース１２８と、ＩＥＥＥ１３９４インタフェース１３０と、エンジン１３２とを含む。なお、図２に示すエンジン１３２は、図１に示したモノクロ・レーザプリンタ３２およびカラー・レーザプリンタ３４のプロッタ・ユニットと、ハードウェア・リソース３０内のスキャナ・ユニットとを含む。
【００２８】
コントローラ１００は、ＣＰＵ（中央演算処理装置）１１０と、ＮＢ（ノース・ブリッジ）１１２と、ＮＢ１１２を介してＣＰＵ１１０と接続するＡＳＩＣ１１４と、ＳＢ（サウス・ブリッジ）１２０とを含む。
【００２９】
ＣＰＵ１１０は、複合機１０の全体制御を行う制御手段である。ＣＰＵ１１０は、図１に示したＮＣＳ５０、ＤＣＳ５２、ＯＣＳ５４、ＦＣＳ５６、ＥＣＳ５８、ＭＣＳ６０、ＵＣＳ６２、ＳＣＳ６４、ＳＲＭ２４、ＦＣＵＨ７０、ＩＭＨ７２およびＭＥＵ７４をＯＳ上にそれぞれプロセスとして起動して実行させる。同時に、ＣＰＵ１１０は、各種アプリケーション４０〜４８を起動して実行させる。
【００３０】
ＡＳＩＣ１１４は、各種画像処理を実行し、ＡＧＰ（Accelerated Graphic Port）を介してＮＢ１１２と接続される。ＳＢ１２０は、図示しないＲＯＭやＰＣＩバス周辺デバイスなどとＮＢ１１２とを接続するためのブリッジである。
【００３１】
ＡＳＩＣ１１４は、メモリ１１６と、ＨＤＤ１１８と、ＮＩＣなどの物理層（ＰＨＹ）１２２と接続される。メモリ１１６は、描画用メモリ、コピー用画像バッファや符号バッファとして用いられる１次記憶装置である。ＨＤＤ１１８は、メモリ１１６から退避された画像データ、文書データ、プログラム、フォントデータやフォームデータなどを蓄積する２次記憶装置である。ＨＤＤ１１８の代わりにＳＳＤ（Solid State Drive）を設けても良い。物理層１２２は、複合機１０をインターネットやＬＡＮなどのネットワークに接続するインタフェース機器の物理層であり、ネットワークを介した指令を受付ける。
【００３２】
オペレーション・パネル１２４は、コントローラ１００のＡＳＩＣ１１４と接続され、オペレータからの各種指示の入力を受付けや画面表示を行なうためのユーザ・インタフェースを提供する。上記ＦＣＵ１２６、ＵＳＢインタフェース１２８、ＩＥＥＥ１３９４インタフェース１３０およびエンジン１３２は、コントローラ１００のＡＳＩＣ１１４にＰＣＩバス１３４を介して接続される。ＦＣＵ１２６は、Ｇ３またはＧ４といったファクシミリ通信規格に準じた通信方法を実行する。ＵＳＢインタフェース１２８およびＩＥＥＥ１３９４インタフェース１３０は、それぞれの規格に準じたインタフェースであり、印刷ジョブなどを受付ける。エンジン１３２は、アプリケーションが発行したコピー指令、プリント指令およびスキャン指令を受け、画像形成処理および画像読取処理を実行する。
【００３３】
コピー処理では、画像入力動作として、エンジン１３２のスキャナ・ユニットが実行する画像読取処理により原稿が読み取られ、メモリ１１６に確保された画像メモリ領域上に画像データが入力される。入力された画像データは、随時ＨＤＤ１１８に退避することができる。一方、コピー処理の画像出力動作では、画像メモリ領域上に準備された画像データが順次読み出されて、エンジン１３２のプロッタ・ユニットが実行する画像形成処理により、転写部材上に画像が転写される。上記準備される画像データは、画像入力動作で画像メモリ領域上に入力された画像データ、または事前に退避されたＨＤＤ１１８から画像メモリ領域上に転送された画像データである。
【００３４】
プリント処理では、ホスト装置から受信したＰＤＬ（Page Description Language）などのプリントデータに従って、描画処理が行われ、画像メモリ領域上に画像データが準備される。プリント処理の画像出力動作では、上記画像メモリ領域上に準備された画像データが読み出され、エンジン１３２のプロッタ・ユニットが実行する画像形成処理により、転写部材上に画像が転写される。
【００３５】
スキャン処理では、画像入力動作として、エンジン１３２のスキャナ・ユニットが実行する画像読取処理により、原稿が読み取られ、画像メモリ領域上に画像データが入力される。入力された画像データは、コピー処理と同様に随時ＨＤＤ１１８に随時退避され、ホスト装置へ送信される。
【００３６】
以下の説明では、代表してコピー処理について、コピー処理における画像入力動作と、コピー処理における画像出力動作とに分けて、本実施形態の複合機１０が実行する画像処理について、より詳細に説明する。
【００３７】
まず以下、図３〜図８を参照しながら、本実施形態の複合機１０が実行する、画像入力動作について説明する。本実施形態の画像入力動作においては、エンジン１３２、ＩＭＨ７２およびデバイスドライバ８０が主要なはたらきを担う。図３、図４および図５は、それぞれ、画像入力動作におけるエンジン１３２、デバイスドライバ８０およびＩＭＨ７２の動作を説明する図である。
【００３８】
コピー・アプリケーション４２においてコピー要求が発生すると、プラットフォーム層２０に対し、コピー指令が発行される。プラットフォーム層２０では、ＩＭＨ７２は、ＳＲＭ２４を経由して上記指令を受けて、メモリ１１６上に画像入力を行うための画像メモリ領域２０２を確保する。ＩＭＨ７２は、本実施形態の画像メモリ管理手段を構成する。
【００３９】
ＩＭＨ７２により獲得される画像メモリ領域２０２は、各色毎のプレーンとして構成され、図３において矩形２００は、各色毎の処理単位を表している。ＣＭＹＫカラーのコピー処理であれば、シアン（Ｃ）、マゼンダ（Ｍ）、イエロー（Ｙ）およびブラック（Ｋ）の４色のプレーンが獲得される。ＲＧＢカラーのスキャン処理であれば、レッド（Ｒ）、グリーン（Ｇ）およびブルー（Ｂ）の３色のプレーンが、黒および赤などの２色刷りでは、ブラック（Ｋ）およびレッド（Ｒ）の２色のプレーンが獲得される。なお、説明する実施形態では、ＣＭＹＫの４色の処理単位２００Ｃ〜２００Ｋから構成されるものとして説明する。また、以下に行う説明では、特に各色毎に説明を行わないが、本実施形態では、各色毎に同一の構成を備えている点に留意されたい。
【００４０】
本実施形態では、図３に示すように、画像入力が行われる画像メモリ領域２０２は、複数のバンド領域２０４に区分されている。この複数のバンド領域２０４に対し全体の画像データを折り返し入力することにより、確保される画像メモリ領域よりもサイズの大きな画像データが取り扱い可能となる。図３〜図８では、特に限定されるものではないが、各色毎の画像メモリ領域２０２が、それぞれ、８つのバンド領域２０４−１〜２０４−８に区分されている場合を例示する。また図３等においては、画像メモリ領域２０２は、連続するバンド領域２０４として模式的に示されているが、バンド領域２０４は非連続な物理メモリ領域に対応していてもよい。
【００４１】
ＩＭＨ７２は、複数のバンド領域２０４に区分された画像メモリ領域２０２を確保すると、続いて、この画像メモリ領域２０２への画像入力の仕方を設定し、図３に示すように入力設定情報２２０を記載したポインタをエンジン１３２に渡す。上記入力設定情報２２０には、画像メモリ領域２０２を構成する各バンド領域２０４について、先頭位置を表すスタート・アドレス、終了位置を表すエンド・アドレス、幅や高さなどの情報が記述される。また、ＩＭＨ７２は、コピー設定やスキャン設定において、特定のサイズの原稿が指定されたり、原稿サイズ自動検知が指定されたりする場合は、長尺原稿で画像メモリ領域２０２への折り返し入力が必要であると判断する。この場合は、ＩＭＨ７２は、入力設定情報２２０として、折り返しポイントおよび折り返し入力する入力方式を示す指定値を設定する。
【００４２】
エンジン１３２は、渡されたポインタから入力設定情報２２０を読み出し、入力設定情報２２０の内容を解釈する。エンジン１３２は、入力設定情報２２０に設定された各スタート・アドレスおよび各エンド・アドレスで指定される各バンド領域２０４に、原稿Ｒから読み取った画像データを順次入力する。エンジン１３２は、各色毎に複数のバンド領域２０４に対し順次画像データの入力を行う、本実施形態の画像入出力手段を構成する。なお、本実施形態において「入出力」とは、画像の入力および出力を総称するものとする。
【００４３】
図３中には、エンジン１３２が画像データを入力したラインを指す現在の入力位置２０６が示されている。エンジン１３２により、先頭から第１のバンド領域２０４−１、第２のバンド領域２０４−２、・・・第８のバンド領域２０４−８の順に、画像データが順次入力される。特定のサイズの原稿または原稿サイズ自動検知が指定される場合は、長尺原稿であり折り返し入力が必要である旨の指定値が設定されているので、第８のバンド領域２０４−８がフルとなった折り返しポイントの後、再び第１のバンド領域２０４−１に折り返して入力が続けられる。なお、以下、折り返し入力が必要である旨の指定値が設定されるものとして説明を行う。
【００４４】
図４を参照すると、ＩＭＨ７２は、上記画像メモリ領域２０２に対し複数のチェックポイント２０８を設定し、すべてのチェックポイント２０８が記述されたポイント設定情報２３０をデバイスドライバ８０に渡す。画像メモリ領域２０２への入力は、エンジン１３２が主導で行われるので、入力位置を検知するための手段を要する。このチェックポイント２０８は、画像メモリ領域２０２において各バンド領域２０４の最後まで入力が行われたことを検知するために設定されるものである。説明する実施形態では、各チェックポイント２０８には、各バンド領域２０４のエンド・アドレスが設定される。
【００４５】
図４の例示では、各色毎に、８つのバンド領域２０４−１〜２０４−８に対応して、各領域の末尾を表すチェックポイント２０８−１〜２０８−８が設定されている。長尺原稿または原稿サイズ自動検知の場合は、折り返し入力が行われるので、第１のチェックポイント２０８−１は、２巡目の第９のチェックポイント２０８に対応する。第２のチェックポイント２０８−２以降についても、３巡目以降についても、同様である。
【００４６】
デバイスドライバ８０は、上記ポイント設定情報２３０を受け取り、設定されたチェックポイント２０８−１〜２０８−８のうち、先頭の方から第１および第２のチェックポイント２０８−１，２０８−２をチェックポイント・レジスタ２１０に設定する。このチェックポイント・レジスタ２１０は、ＡＳＩＣ１１４に設けられたレジスタであり、割り込みが発生させて、指定アドレスまで入力が行われたことを検知するために設定されるものである。チェックポイント・レジスタ２１０の数は、その実装上有限とされており、特定の実施例では、４色それぞれに対し、２つのチェックポイント・レジスタ２１０−１，２１０−２が用意される。
【００４７】
ＩＭＨ７２は、エンジン１３２へ入力設定情報２２０のポインタを渡し、デバイスドライバ８０へポインタ情報を渡すと、ＳＲＭ２４を経由して、エンジン１３２に対し読取開始の指示を発行する。エンジン１３２は、読取開始の指示を受けて、図３に示すように各色毎の画像メモリ領域２０２へ、画像データの入力を開始し、順次ラインを書き込む。
【００４８】
エンジン１３２による入力位置２０６が、第１のチェックポイント・レジスタ２１０−１が保持するアドレスに到達すると、割り込みが発生する。デバイスドライバ８０は、この割り込みに応答して、入力位置２０６が第１チェックポイント２０８−１、すなわち上記第１バンド領域２０４−１のエンド・アドレスに到達したことを検知する。この間にも入力位置２０６は進行することになるが、デバイスドライバ８０は、チェックポイントの通過に対応して、少なくとも入力位置２０６が第２のチェックポイント２０８−２に到達するまでの間に、第１のチェックポイント・レジスタ２１０−１に対し、１つ飛ばしで後続する第３チェックポイント２０８−３に切り替える。
【００４９】
同様に、入力位置２０６が、第２のチェックポイント・レジスタ２１０−２が保持する第２チェックポイント２０８−２に到達したことを検知すると、デバイスドライバ８０は、レジスタ２１０−２に対し、１つ飛ばしで後続する第４チェックポイント２０８−４を設定する。つまり、第１のレジスタ２１０−１には、第１チェックポイント２０８−１、第３チェックポイント２０８−３、第５チェックポイント２０８−５、第７チェックポイント２０８−７が順に再設定されて行き、折り返して、第１チェックポイント２０８−１から繰り返される。第２のレジスタ２１０−２も同様に、第２、第４、第６、第８のチェックポイント２０８の順に再設定され、折り返して、第２チェックポイント２０８−２から繰り返される。
【００５０】
上述のように、デバイスドライバ８０は、２つのレジスタ２１０−１，２１０−２が保持するチェックポイントを入力位置２０６が通過する毎に、レジスタ２１０−１，２１０−２を再設定する。これにより、２つのチェックポイント・レジスタのみで複数のバンド領域２０４に対し交互に入力を行いつつ、入力位置が各チェックポイントを通過することを検知することが可能となる。
【００５１】
ここで、図５を参照すると、本実施形態のデバイスドライバ８０は、各レジスタ２１０が保持するチェックポイント２０８に到達したことを検知すると、上記再設定と共に、ＩＭＨ７２に対し、その到達を通知する。ＩＭＨ７２は、チェックポイント到達通知を受けて、到達が検知されたチェックポイント２０８の位置に対応したバンド領域２０４に保持される画像データ２１２をＨＤＤ１１８へ退避する。図５に示す例では、第１のチェックポイント２０８−１に到達したことに応答して、第１バンド領域２０４−１の画像データ２１２が退避されている。
【００５２】
本実施形態では、画像メモリ領域２０２が各色毎に用意されているため、入力位置２０６がチェックポイント２０８に到達する毎に、各色分同時に通知が行われ、各色毎の画像データ２１２の退避処理が必要となる。一方、ＨＤＤ１１８は、通常１台のみであるため、上記複数色の退避処理は、待ちキュー２４０にキューイングされ、順番に行われることになる。
【００５３】
このとき、退避すべきすべての色のバンド領域２０４の画像データがＨＤＤ１１８へ退避完了する前に、エンジン１３２の画像入力が折り返され、この未退避のバンド領域に対する入力が行われると、図６に示すように異常画像を発生させてしまう。図６は、入力位置２０６が一巡して再び第１チェックポイント２０８−１に達したにもかかわらず、入力済みの退避すべきバンド領域２０４−２の画像データがいまだ退避されていない状態を例示する。図６に示す状態では、バンド領域２０４−２が上書きされ異常画像２１４が発生している様子を例示する。画像異常２１４は、スキャン・データや印刷物中の繰り返されたスジなどとなって現れる。
【００５４】
上記異常画像の発生を抑制するため、ＨＤＤ１１８の転送速度は、通常、エンジン１３２の入力速度よりも充分に速くなるように設計される。しかしながら、他のアプリケーションによるＨＤＤ１１８へのアクセスがあるなど、何らかの理由により遅延が発生する可能性もある。このような遅延が発生し、エンジン１３２が入力を折り返すまでに遅延が解消されない場合は、上述したように異常画像となってしまう。そこで、説明する実施形態では、エラーを発生させ、異常画像が発生する旨をオペレータに警告するとともに、好適にはエンジン１３２による画像入力の待ち制御を行う。
【００５５】
図７および図８は、好適な実施形態による画像入力動作における待ち制御を説明する図である。ＩＭＨ７２は、デバイスドライバ８０からバンド領域２０４−１の末尾のチェックポイント２０８−１に到達した旨の通知を受けると、待ちキュー２４０内での次に入力しようとしているバンド領域２０４−２の退避状況を確認する。ＩＭＨ７２は、図７に示すように、ＣＭＹＫの少なくとも１つの色について、次に入力するバンド領域２０４−２の画像データの退避が完了していないと判定したときは、デバイスドライバ８０を用いてエンジン１３２の待ち制御を行う制御手段である。ＩＭＨ７２は、待ちキュー２４０での退避状況を継続して確認しており、図８に示すように次に入力するバンド領域２０４−２の画像データの退避が完了したと判定した場合は、デバイスドライバ８０を用いてエンジン１３２のポーズを解除し、画像入力を再開させる。
【００５６】
上述した待ち制御により、異常画像の発生を好適に防止することが可能となる。エンジン１３２が備えるスキャナ・ユニットが完結動作できず、画像読取処理自体を停止できない実装であっても、エンジン１３２が備えるバッファメモリで緩衝できる範囲で、異常画像の発生を防止することができる。また、ＯＣＳ５４を介してオペレーション・パネル１２４のディスプレイ上にエラー警告を行うことによって、早期の印刷中止を促したり、異常画像の発生の注意を促したりすることができる。
【００５７】
以下、図９〜図１１を参照しながら、本実施形態の複合機１０が実行する、画像出力動作について説明する。本実施形態の画像出力動作においても、エンジン１３２、ＩＭＨ７２およびデバイスドライバ８０が主要な構成要素となる。図９は、画像出力動作におけるエンジン１３２、デバイスドライバ８０およびＩＭＨ７２のはたらきを説明する図である。図１０および図１１は、好適な実施形態による画像出力動作における待ち制御を説明する図である。
【００５８】
コピー処理においては、上記画像入力動作と並列して、または上記画像入力動作に続いて、画像出力動作が実行される。画像出力動作においては、プラットフォーム層２０では、ＩＭＨ７２が、メモリ１１６上に獲得された画像メモリ領域２０２上に画像データを準備する。上記準備される画像データは、コピー処理では、画像入力動作において画像メモリ領域上に入力された画像データ、または事前に退避されたＨＤＤ１１８から画像メモリ領域上に転送された画像データである。プリント処理では、ホスト装置から受信したＰＤＬなどのプリントデータに従って、描画処理が行われ、画像メモリ領域上に画像データが準備される。
【００５９】
ＩＭＨ７２は、画像メモリ領域２０２からの画像出力の仕方を設定し、図９に示すように出力設定情報２５０が記載されたポインタをエンジン１３２に渡す。上記出力設定情報２５０には、上述した入力設定情報２２０と同様に、各バンド領域２０４のスタート・アドレス、エンド・アドレス、高さや幅などの情報が記述される。また、ＩＭＨ７２は、コピー設定やプリント設定において、特定サイズの原稿が指定されたり、原稿サイズ自動検知が指定されたりする場合は、画像メモリ領域２０２への折り返し出力が必要であると判断し、折り返しポイントおよび折り返し出力する出力方式である旨を示す指定値を設定する。
【００６０】
エンジン１３２は、渡されたポインタから出力設定情報２５０を読み出し、画像形成開始指示に応答して、各スタート・アドレスおよび各エンド・アドレスで指定される各バンド領域から画像データ読み出し、順次出力することになる。そして、エンジン１３２のプロッタ・ユニットが実行する画像形成処理により、読み出された画像データが転写部材上に転写され、印刷物Ｐが得られる。
【００６１】
図９中には、エンジン１３２が画像データを出力したラインを表す現在の出力位置２１６が示されている。エンジン１３２により、第１のバンド領域２０４−１、第２のバンド領域２０４−２、・・・第８のバンド領域２０４−８の順に、画像データが順次読み出され出力される。折り返し出力が必要である旨の指定値が設定されている場合は、第８のバンド領域２０４−８が読み出された後、再び第１のバンド領域２０４−１に折り返して出力が続けられる。
【００６２】
一方、上述したように、画像出力を行うためには、ＣＭＹＫ各プレーンの画像データ２１８の準備処理が必要となり、一方で、ＨＤＤ１１８は、上述したように１台のみである。このため、上記複数色の準備処理は、待ちキュー２４０にキューイングされ、順番に行われることになる。このとき、すべての色についてバンド領域２０４に画像データの準備が完了する前に、そのバンド領域２０４の出力が開始されてしまうと、異常画像を発生させてしまうことになる。
【００６３】
そこで、ＩＭＨ７２は、画像入力動作と同様に、上記画像メモリ領域２０２に対し複数のチェックポイント２０８を設定し、各チェックポイント２０８で、画像の準備状況を確認し、遅延がある場合は画像出力の待ち制御を行う。ＩＭＨ７２は、上記画像メモリ領域２０２に対しチェックポイント２０８を設定すると、各チェックポイント２０８が記述されたポイント設定情報２３０をデバイスドライバ８０に渡す。デバイスドライバ８０は、画像入力動作と同様に、上記ポイント設定情報２３０に設定されたチェックポイント２０８−１〜２０８−８のうち、先頭の方から交互にチェックポイント２０８をチェックポイント・レジスタ２１０に設定して行く。また、チェックポイント・レジスタ２１０には、エンジン１３２への画像の出力を再開するためのフラグが用意される。
【００６４】
ＩＭＨ７２は、画像出力動作が開始されると、まず第１のバンド領域２０４−１の画像データの準備完了を待って、ＳＲＭ２４を経由して、エンジン１３２に対し画像形成開始の指示を発行する。エンジン１３２は、画像形成開始の指示を受けて、各色の画像メモリ領域２０２から順次ラインを読み出し、画像データの出力を開始する。
【００６５】
ここで、図１０に示すように、エンジン１３２による出力位置２１６が、第１のチェックポイント・レジスタ２１０−１が保持するアドレスに到達したとすると、割り込みが発生する。デバイスドライバ８０は、上記第１バンド領域２０４−１の画像データが引き取られたことを検知し、ＩＭＨ７２にチェックポイントへの到達を通知する。このとき、デバイスドライバ８０は、上記フラグが立っていないため、コントローラ１００からの画像データの出力をポーズしており、画像データがエンジン１３２へ流れないようになっている。エンジン１３２は、画像読み出しをリトライするが、画像メモリ領域２０２から画像データを引き取ることができず、出力位置２１６はチェックポイントの位置で一時停止される。
【００６６】
ＩＭＨ７２は、チェックポイント到達通知を受けて、チェックポイントの位置に対応したバンド領域２０４の画像データが準備済みであるか否かを判定する。このとき、図１０に示すように、準備されるべきバンド領域２０４−２の画像データ２１８の準備が完了していない場合は、ＩＭＨ７２は、画像データ２１８が準備中であると判定する。この場合、ＩＭＨ７２は、エラー通知を行うとともに、デバイスドライバ８０に上記ポーズを継続させて、エンジン１３２による画像出力の待ち制御を行う。
【００６７】
一方、ＩＭＨ７２は、待ちキュー２４０での準備状況を継続して確認しており、図１１に示すように、次に出力するバンド領域２０４−２の画像データ２１８の準備が完了していると判定した場合は、デバイスドライバ８０を用いて、上記フラグを立てて、ポーズを解除し、エンジン１３２による画像出力を再開させる。ポーズが解除されると、コントローラ１００からエンジン１３２へ画像データが流れ始め、画像読み出しをリトライしていたエンジン１３２は、画像メモリ領域２０２から画像データを引き取れるようになる。
【００６８】
上述した待ち制御により、画像出力動作時の異常画像の発生を防止することができる。エンジン１３２のプロッタ・ユニットが完結動作できず、画像形成処理を停止できない実装でも、エンジン１３２が備えるバッファで緩衝できる範囲で、異常画像の発生を防止することができる。さらに、インクジェット式のように、完結動作が可能なプロッタ・ユニットの実装では、画像形成処理の動作自体を好適に一時停止させることが可能となり、より大きな遅れが発生しても、異常画像をより防止しやすくなる。
【００６９】
以下、図１２および図１３を参照しながら、上記で分けて説明した画像入力動作および画像出力動作からなる一連のコピー処理について説明する。図１２は、画像入力される画像データをＨＤＤ１１８に順次退避しながら、画像出力するコピー処理を模式的に説明する図である。
【００７０】
コピー・アプリケーション４２においてコピー要求が発生すると、ＩＭＨ７２は、画像読取指令を受けて、メモリ１１６上に画像入力を行うための画像メモリ領域２０２を獲得する。エンジン１３２のスキャナ・ユニットは、画像メモリ領域２０２に画像入力を開始する。ＩＭＨ７２は、入力位置２０６がチェックポイント２０８に到達するごとに、チェックポイント到達通知を受けて、通過したバンド領域２０４の画像データをＨＤＤ１１８に退避させる。一定量の画像データが退避されると、ＩＭＨ７２は、メモリ１１６上に画像出力を行うための画像メモリ領域２０２を獲得し、バンド領域２０４への画像データの準備を順次行う。なお、画像出力動作のために確保される画像メモリ領域２０２は、画像入力動作のために獲得されるものと異なってもよい。
【００７１】
上述した画像出力動作は、原稿の全体がスキャンされて、原稿全体の画像データが退避された段階で開始してもよいが、好適には原稿の一部のみの画像データが得られた段階で開始し、画像読取処理と画像形成処理とを並列に実行することができる。この場合は、上述した画像出力動作における待ち制御により、画像データの準備を待ち合わせて画像出力が進行することになる。このため、全体の入力動作が完了する前に出力が開始されても、画像出力が画像入力を追い越さないように制御し、動作が破綻することを防止しながら、コピー処理を完遂することが可能となる。
【００７２】
図１３は、画像入力される画像データをＨＤＤ１１８へ退避せずに、メモリ１１６上から直接画像出力するコピー処理を説明する図である。図１３に示す例は、複合機１０がＨＤＤ１１８を備えていない場合に好適に適用することができる。図１３に示す実施形態では、コピー要求が発生すると、ＩＭＨ７２は、メモリ１１６上に画像入力を行うための画像メモリ領域２０２を獲得する。エンジン１３２のスキャナ・ユニットは、この画像メモリ領域２０２に画像入力を開始する。ＩＭＨ７２は、チェックポイント到達通知を受けて、上記画像入力動作により入力されてバンド領域２０４に準備された画像データを読み出し、出力を開始する。
【００７３】
図１３に示すコピー処理では、画像読取処理と画像形成処理とは同期的に実行されて、上記画像出力動作は、画像入力動作により画像データの準備が完了したバンド領域から順次実行される。この場合は、上述した画像出力動作における待ち制御により、画像データの入力準備が待ち合わせられるため、画像出力が画像入力を追い越さないように制御することが可能となる。
【００７４】
なお、図１２に示した、ＨＤＤ１１８への退避処理を含むコピー処理を実行するか、図１３に示すメモリ１１６上の画像メモリ領域のみの確保でコピー処理を実行するかは、オペレータに選択させることができる。メモリ１１６およびＨＤＤ１１８を共に備える場合は、好適には、図１３に示すメモリ１１６上の画像メモリ領域のみの確保でコピー処理を優先して実施することができる。また、図１３に示すメモリ１１６のみでの処理を優先的に実行し、画像出力処理が入力及び準備に間に合わない場合、スキャンした画像データを退避させるモードに切り替える制御としてもよい。
【００７５】
図１４は、上記画像出力動作中のキャンセル時の動作を説明する図である。図１４に示すように、上記画像入出力動作中に、エラーが発生し、オペレータがオペレーション・パネル１２４に対し処理キャンセルの指示を行う場合がある。この場合、長尺印刷では、ロール紙等が複合機１０の機構部を通紙している状態で停止してしまうので、印刷ＪＡＭとなってしまう。そこで、本実施形態では、上記指示に応答してＯＣＳ５４からＩＭＨ７２にキャンセル指令が発行された場合、ＩＭＨ７２は、バンド領域２０４にダミー画像２５２を準備し、最後まで出力を完了させることができる。
【００７６】
以上説明したように、本実施形態によれば、ソフトウェア側で入出力のタイミング調整することを可能とし、小さな消費メモリで、複数色かつ大規模な画像データを処理することが可能な画像処理装置およびプログラムを提供することができる。
【００７７】
上記カラー化に伴い、入出力のタイミング調整の条件が厳しくなるが、上述した本実施形態の構成によれば、図１５に示す画像入出力動作におけるエンジンとソフトウェア（デバイスドライバおよびＩＭＨ）との協同により、入出力のタイミング調整することが容易となる。ＩＭＨ７２は、エンジン１３２に入出力設定情報を渡すと共に、デバイスドライバ８０にチェックポイントを設定する。デバイスドライバ８０は、エンジンの入出力の状況を監視し、ＩＭＨ７２にチェックポイント到達を通知する。ＩＭＨ７２は、チェックポイント到達の通知を受けて、検知された入出力の状況から待ち制御を要するか否かを判定する。
【００７８】
上述した連携により複合機１０では、バンド領域各々に対する画像データの入出力の状況に応じて、画像データの退避または準備が入力または出力に間に合わないと判定した場合に待ち制御をし、入出力のタイミング調整することが容易となる。画像メモリ領域に折り返して入出力し、入力された画像データを随時退避し、または出力する画像データを随時準備する場合に、退避または準備が間に合わずに入力または出力が先行してしまうことを防止することができる。また、画像出力が画像入力を追い越してしまうことも防止される。ひいては、長尺原稿のカラー画像処理を円滑に実行すること可能となる。
【００７９】
上記機能部は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ブルーレイディスク、ＳＤカード、ＭＯなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。
【００８０】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００８１】
１０…複合機、１２…ソフトウェア部、１４…複合機起動部、１６…ハードウェア部、１８…アプリケーション層、２０…プラットフォーム層、２２…コントロール・サービス層、２４…ＳＲＭ、２６…ハンドラ層、３０…ハードウェア・リソース、３２…Ｂ＆ＷＬＰ、３４…ＣｏｌｏｒＬＰ、３６…ＭＬＣ、４０…プリンタ・アプリケーション、４２…コピー・アプリケーション、４６…ファックス・アプリケーション、４８…スキャナ・アプリケーション、５０…ＮＣＳ、５２…ＤＣＳ、５４…ＯＣＳ、５６…ＦＣＳ、５８…ＥＣＳ、６０…ＭＣＳ、６２…ＵＣＳ、６４…ＳＣＳ、７０…ＦＣＵＨ、７２…ＩＭＨ、７４…ＭＥＵ、７６…エンジンインタフェース、７８…ＡＰＩ、８０…デバイスドライバ、１００…コントローラ、１１０…ＣＰＵ、１１２…ＮＢ、１１４…ＡＳＩＣ、１１６…メモリ、１１８…ＨＤＤ、１２０…ＳＢ、１２２…物理層、１２４…オペレーション・パネル、１２６…ＦＣＵ、１２８…ＵＳＢインタフェース、１３０…ＩＥＥＥ１３９４インタフェース、１３２…エンジン、１３４…ＰＣＩバス、２００…矩形、２０２…画像メモリ領域、２０４…バンド領域、２０６…入力位置、２０８…チェックポイント、２１０…チェックポイント・レジスタ、２１２，２１８…画像データ、２１４…異常画像、２１６…出力位置、２２０…入力設定情報、２３０…ポイント設定情報、２４０…待ちキュー、２５０…出力設定情報、２５２…ダミー画像
【先行技術文献】
【特許文献】
【００８２】
【特許文献１】特許第３７３０５８６号公報
【図１】
0005884440.tif 000002
【図２】
0005884440.tif 000003
【図３】
0005884440.tif 000004
【図４】
0005884440.tif 000005
【図５】
0005884440.tif 000006
【図６】
0005884440.tif 000007
【図７】
0005884440.tif 000008
【図８】
0005884440.tif 000009
【図９】
0005884440.tif 000010
【図１０】
0005884440.tif 000011
【図１１】
0005884440.tif 000012
【図１２】
0005884440.tif 000013
【図１３】
0005884440.tif 000014
【図１４】
0005884440.tif 000015
【図１５】
0005884440.tif 000016