(57)【特許請求の範囲】
【請求項１】
出力画像データを生成すると共にコマンド信号を出力するコントローラ部であって、前記生成された出力画像データをメディアに出力するエンジン部と協働して画像出力装置を構成するコントローラ部の動作を検証するプリンタエミュレート装置において、
前記コントローラ部とデータ通信を行うインターフェース手段と、
前記インターフェース手段を介して前記コントローラ部から出力されるコマンド信号を取得する取得手段と、
所定の時間の経過を通知するタイマと、前記タイマによる時間経過通知及び前記取得したコマンド信号に従い前記エンジン部の状態をエミュレートするエミュレート手段と、
前記エミュレートした前記エンジン部の状態及び前記取得したコマンド信号に従いステータス信号を送信する送信手段と、
前記エミュレートしたエンジン部の状態に従い前記コントローラ部に対して画像同期信号を生成する生成手段とを備えることを特徴とするプリンタエミュレート装置。
【請求項２】
前記エミュレートしたエンジン部の状態を表示する表示手段を備えることを特徴とする請求項１記載のプリンタエミュレート装置。
【請求項３】
前記タイマは、前記所定の時間を設定する設定手段を有することを特徴とする請求項１又は２記載のプリンタエミュレート装置。
【請求項４】
前記エミュレート手段は、前記エミュレートしたエンジン部の状態を保持することを特徴とする請求項１乃至３のいずれか１項に記載のプリンタエミュレート装置。
【請求項５】
前記エミュレート手段は、前記エンジンの状態が変化した時刻を保持することを特徴とする請求項１乃至４のいずれか１項に記載のプリンタエミュレート装置。
【請求項６】
前記取得手段は、前記コマンド信号を取得した時刻を保持することを特徴とする請求項１乃至５のいずれか１項に記載のプリンタエミュレート装置。
【請求項７】
前記送信手段は、前記送信したステータス信号を保持することを特徴とする請求項１乃至６のいずれか１項に記載のプリンタエミュレート装置。
【請求項８】
前記送信手段は、ステータス信号を送信した時刻を保持することを特徴とする請求項１乃至７のいずれか１項に記載のプリンタエミュレート装置。
【請求項９】
前記送信手段は、前記受信したコマンド信号と前記送信したステータス信号の組み合わせを保持することを特徴とする請求項１乃至８のいずれか１項に記載のプリンタエミュレート装置。
【請求項１０】
擬似的なエラー状態を指定する指定手段を備え、
前記エミュレート手段は、前記エンジンの状態を前記指定手段により指定されたエラー状態とすることを特徴とする請求項１乃至９のいずれか１項に記載のプリンタエミュレート装置。
【請求項１１】
前記インターフェース手段を介して前記コントローラ部から出力される出力画像データを取得する他の取得手段と、前記取得した画像データを保持する画像メモリと、前記保持した画像データを可視化する可視化手段とを備えることを特徴とする請求項１乃至１０のいずれか１項に記載のプリンタエミュレート装置。
【請求項１２】
出力画像データを生成すると共にコマンド信号を出力するコントローラ部であって、前記生成された出力画像データをメディアに出力するエンジン部と協働して画像出力装置を構成するコントローラ部の動作を検証するプリンタエミュレート方法において、
前記コントローラ部とデータ通信を行うインターフェース手段を介して前記コントローラ部から出力されるコマンド信号を取得する取得工程と、
所定の時間の経過を通知するタイマによる時間経過通知及び前記取得したコマンド信号に従い前記エンジン部の状態をエミュレートするエミュレート工程と、
前記エミュレートした前記エンジン部の状態及び前記取得したコマンド信号に従いステータス信号を送信する送信工程と、
前記エミュレートしたエンジン部の状態に従い前記コントローラ部に対して画像同期信号を生成する生成工程とを備えることを特徴とするプリンタエミュレート方法。
【請求項１３】
前記エミュレートしたエンジン部の状態を表示する表示手段を備えることを特徴とする請求項１２記載のプリンタエミュレート方法。
【請求項１４】
前記タイマは、前記所定の時間を設定することを特徴とする請求項１２又は１３記載のプリンタエミュレート方法。
【請求項１５】
前記エミュレート工程は、前記エミュレートしたエンジン部の状態を保持することを特徴とする請求項１２乃至１４のいずれか１項に記載のプリンタエミュレート方法。
【請求項１６】
前記エミュレート工程は、前記エンジンの状態が変化した時刻を保持することを特徴とする請求項１２乃至１５のいずれか１項に記載のプリンタエミュレート方法。
【請求項１７】
前記取得工程は、前記コマンド信号を取得した時刻を保持することを特徴とする請求項１２乃至１６のいずれか１項に記載のプリンタエミュレート方法。
【請求項１８】
前記送信工程は、前記送信したステータス信号を保持することを特徴とする請求項１２乃至１７のいずれか１項に記載のプリンタエミュレート方法。
【請求項１９】
前記送信工程は、ステータス信号を送信した時刻を保持することを特徴とする請求項１２乃至１８のいずれか１項に記載のプリンタエミュレート方法。
【請求項２０】
前記送信工程は、前記受信したコマンド信号と前記送信したステータス信号の組み合わせを保持することを特徴とする請求項１２乃至１９のいずれか１項に記載のプリンタエミュレート方法。
【請求項２１】
擬似的なエラー状態を指定する指定工程を備え、
前記エミュレート工程は、前記エンジンの状態を前記指定手段により指定されたエラー状態とすることを特徴とする請求項１２乃至２０のいずれか１項に記載のプリンタエミュレート方法。
【請求項２２】
前記インターフェース手段を介して前記コントローラ部から出力される出力画像データを取得する他の取得工程と、前記取得した画像データを保持する保持工程と、前記保持した画像データを可視化する可視化工程とを備えることを特徴とする請求項１２乃至２１のいずれか１項に記載のプリンタエミュレート方法。
【請求項２３】
出力画像データを生成すると共にコマンド信号を出力するコントローラ部であって、前記生成された出力画像データをメディアに出力するエンジン部と協働して画像出力装置を構成するコントローラ部の動作を検証するプリンタエミュレート方法をコンピュータに実行させるプログラムにおいて、
前記プリンタエミュレート方法は、
前記コントローラ部とデータ通信を行うインターフェース手段を介して前記コントローラ部から出力されるコマンド信号を取得する取得ステップと、
所定の時間の経過を通知するタイマによる時間経過通知及び前記取得したコマンド信号に従い前記エンジン部の状態をエミュレートするエミュレートステップと、
前記エミュレートした前記エンジン部の状態及び前記取得したコマンド信号に従いステータス信号を送信する送信ステップとを備えることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタエミュレート装置及び方法、並びにプログラムに関し、特に、出力画像データを生成するコントローラ部であって、生成された出力画像データを紙等のメディアに出力するエンジン部と協働してプリンタを構成するコントローラ部の動作を検証し、プリンタの開発を支援するプリンタエミュレート装置及び方法、並びにプログラムに関する。
【０００２】
【従来の技術】
画像出力装置としてのプリンタは、図２７に示すように、ネットワーク、USBインターフェース等を介して、プリンタドライバを有するホストコンピュータに接続される。このプリンタは、ホストコンピュータ等の機器が印刷元データから生成した中間出力データを出力に適した出力画像データに変換するコントローラ部と、コントローラ部から出力された出力画像データを取得し、紙等のメディアに画像出力するエンジン部とを有する。
【０００３】
プリンタの一例としてのレーザビームプリンタに画像の出力を行う際には、ホストコンピュータ等の機器でプリンタのコントローラ部に適した中間出力データを生成する。この中間出力データの生成は一般にはプリンタドライバと呼ばれるソフトウェアで行われる。中間出力データは、パラレル回線、ユニバーサルシリアルバス、イーサネット（登録商標）等のネットワーク回線を通じてプリンタのコントローラ部に入力される。コントローラ部では中間出力データをエンジン部に適した出力画像データに変換し、エンジン部からの画像転送許可信号に同期してエンジン部にビデオ信号として出力する。エンジン部では電子写真プロセスを制御・駆動して入力されたビデオ信号を紙等のメディア上に画像として出力する。エンジン部からの画像転送許可信号の出力タイミングは、紙の搬送状態、電子写真プロセスの状態等から決定される。
【０００４】
コントローラ部とエンジン部との間はビデオインターフェースと呼ばれる通信路により接続されている。このビデオインターフェースは、出力画像データを転送するためのビデオ信号、ビデオ信号のタイミング等を制御するコントロール信号、コントローラ部がエンジン部に指示を行うためのコマンド信号、エンジン部がコントローラ部にエンジンの状態を伝えるためのステータス信号等の通信を行っている。
【０００５】
上記紙の搬送状態とは、給紙中・印字中・排紙中等のエンジン内部での紙の状態のことを示し、電子写真プロセスの状態とはアイドル状態・初期化状態・後処理中状態等を示す。エンジン部は、常に印刷可能な状態であるわけではなく、印刷可能状態になった場合にコントローラ部に画像転送許可信号を出力する。コントローラ部とエンジン部は上記コントロール信号・コマンド信号・ステータス信号を用いて密接に協調して動作している。
【０００６】
レーザビームプリンタ以外のプリンタシステム、例えば、インクジェットプリンタにおいても印刷までのデータの流れは同様である。インクジェットプリンタのコントローラ部はホストコンピュータからの中間出力データをエンジン部に適した出力画像データに変換し、エンジン部に同期してラスタ信号として出力する。エンジン部ではインクジェットプロセスを制御駆動して入力したラスタ信号を紙等のメディア上に画像として形成する。
【０００７】
上記のようにコントローラ部とエンジン部により構成されるプリンタの開発においては、
１．正常なタイミングで動作し、所望の印刷速度が達成されているか、
２．正常に画像が出力されているか、
の２点が特に重要となっている。
【０００８】
従来のプリンタの開発過程や動作検証過程においては、ホストコンピュータで中間出力データを生成し、コントローラ部に送信することで実際にエンジン部を動作させ出力画像（印刷物）を得ている。この出力時間の測定と、出力画像の直接目視によりプリンタの動作の評価と検証をしている。また、この様な中間出力データ生成・エンジン出力・出力時間測定・出力画像評価のプロセスは繰り返し行われている
しかし、実際にプリンタを稼動させて出力画像を得る従来の手法では、コントローラ部とエンジン部の両方の開発が十分に進み、両者が動作する段階に至らなければ行うことができず、開発期間の短縮及び並行開発が困難である。また、画像の評価・印刷時間の測定をする印刷物の量が膨大になり、また多大な時間とトナーや印刷用紙等の消耗品を必要とする問題がある。
【０００９】
上記の問題に対し、特開平０４-０５５９３５では、ホストコンピュータ上のプリンタドライバが生成した中間出力データを受信し、CRT等の表示システムに画像として表示するプリンタエミュレート装置が提案されている。このプリンタエミュレート装置によれば、プリンタの開発過程おいて実際にプリンタを稼動させて出力画像を得ることなくホストコンピュータからの中間出力データを検証することができる。
【００１０】
また、特願２００１−１１０５２９号では、コントローラ部が出力するビデオ信号を受信し、CRT等の表示装置に画像として可視化する画像処理装置が提案されている。この画像処理装置によれば、プリンタの開発過程によってエンジン部を用いることなく、コントローラ部が出力するビデオ信号を可視化することができ、出力画像を検証することができる。
【００１１】
上記２つの提案による手法を用いることで、画像を実際に出力する時間、トナーや印刷用紙等の消耗品の節約が可能となる。また、エンジン部を使用することなく出力画像の検証を行うことができ、エンジン部とコントローラ部の分散・平行開発を可能となる。
【００１２】
【発明が解決しようとしている課題】
しかしながら、上記提案は中間出力データと出力画像データを確認するためのものであり、その機能はプリンタ開発段階において画像を確認するためのものに限定されていた。プリンタの開発においては上述のように「正常なタイミング・所望の印刷速度の達成」も重要視されるが、上記提案はタイミングと印刷速度に関しては効果が無いと言う問題がある。
【００１３】
また、プリンタの印刷速度は実際に画像を出力するエンジン部の能力だけではなく、コントローラ部の出力画像データ生成能力も影響する。すなわち、高速に動作するエンジン部を使用したとしても、コントローラ部が十分な速度で出力画像データを生成してビデオ信号を出力しなければならない。逆にコントローラ部が高速に出力画像データを生成したとしても、エンジン部がそれに応じて動作できなければプリンタ全体として高速には動作できない。このように、プリンタ全体としての速度はコントローラ部とエンジン部が相互に影響しており、評価する際に印刷速度を制限している要因を切り分けるのが困難であった。
【００１４】
さらに、上記のようにプリンタの速度はエンジン部とコントローラ部との密接な条件により決定されるため、コントローラ部の開発過程においては、印刷実行時の詳細なエンジン部の状態変化情報が必要であるが、コントローラ部はエンジン部と接続されているため、状態変化情報を取得するのは困難であった。そのため、従来では、ロジックアナライザ等で電気的な波形を観察し推定するか、熟練した技術者がエンジンの動作音等から経験的にエンジンの状態変化を推定していた。
【００１５】
本発明の目的は、プリンタ部と協働してプリンタを構成するコントローラ部のタイミング処理及び処理速度の検証をエンジン部が完成していない状況でも行うことができるプリンタエミュレート装置及び方法、並びに記憶媒体を提供することにある。
【００１６】
【課題を解決するための手段】
上記目的を達成するために、請求項１記載のプリンタエミュレート装置は、出力画像データを生成すると共にコマンド信号を出力するコントローラ部であって、前記生成された出力画像データをメディアに出力するエンジン部と協働して画像出力装置を構成するコントローラ部の動作を検証するプリンタエミュレート装置において、前記コントローラ部とデータ通信を行うインターフェース手段と、前記インターフェース手段を介して前記コントローラ部から出力されるコマンド信号を取得する取得手段と、所定の時間の経過を通知するタイマと、前記タイマによる時間経過通知及び前記取得したコマンド信号に従い前記エンジン部の状態をエミュレートするエミュレート手段と、前記エミュレートした前記エンジン部の状態及び前記取得したコマンド信号に従いステータス信号を送信する送信手段と、前記エミュレートしたエンジン部の状態に従い前記コントローラ部に対して画像同期信号を生成する生成手段とを備えることを特徴とする。
【００１７】
請求項２記載のプリンタエミュレート装置は、請求項１記載のプリンタエミュレート装置において、前記エミュレートしたエンジン部の状態を表示する表示手段を備えることを特徴とする。
【００１８】
請求項３記載のプリンタエミュレート装置は、請求項１又は２記載のプリンタエミュレート装置において、前記タイマは、前記所定の時間を設定する設定手段を有することを特徴とする。
【００１９】
請求項４記載のプリンタエミュレート装置は、請求項１乃至３のいずれか１項に記載のプリンタエミュレート装置において、前記エミュレート手段は、前記エミュレートしたエンジン部の状態を保持することを特徴とする。
【００２０】
請求項５記載のプリンタエミュレート装置は、請求項１乃至４のいずれか１項に記載のプリンタエミュレート装置において、前記エミュレート手段は、前記エンジンの状態が変化した時刻を保持することを特徴とする。
【００２１】
請求項６記載のプリンタエミュレート装置は、請求項１乃至５のいずれか１項に記載のプリンタエミュレート装置において、前記取得手段は、前記コマンド信号を取得した時刻を保持することを特徴とする。
【００２２】
請求項７記載のプリンタエミュレート装置は、請求項１乃至６のいずれか１項に記載のプリンタエミュレート装置において、前記送信手段は、前記送信したステータス信号を保持することを特徴とする。
【００２３】
請求項８記載のプリンタエミュレート装置は、請求項１乃至７のいずれか１項に記載のプリンタエミュレート装置において、前記送信手段は、ステータス信号を送信した時刻を保持することを特徴とする。
【００２４】
請求項９記載のプリンタエミュレート装置は、請求項１乃至８のいずれか１項に記載のプリンタエミュレート装置において、前記送信手段は、前記受信したコマンド信号と前記送信したステータス信号の組み合わせを保持することを特徴とする。
【００２５】
請求項１０記載のプリンタエミュレート装置は、請求項１乃至９のいずれか１項に記載のプリンタエミュレート装置において、擬似的なエラー状態を指定する指定手段を備え、前記エミュレート手段は、前記エンジンの状態を前記指定手段により指定されたエラー状態とすることを特徴とする。
【００２６】
請求項１１記載のプリンタエミュレート装置は、請求項１乃至１０のいずれか１項に記載のプリンタエミュレート装置において、前記インターフェース手段を介して前記コントローラ部から出力される出力画像データを取得する他の取得手段と、前記取得した画像データを保持する画像メモリと、前記保持した画像データを可視化する可視化手段とを備えることを特徴とする。
【００２７】
上記目的を達成するために、請求項１２記載のプリンタエミュレート方法は、出力画像データを生成すると共にコマンド信号を出力するコントローラ部であって、前記生成された出力画像データをメディアに出力するエンジン部と協働して画像出力装置を構成するコントローラ部の動作を検証するプリンタエミュレート方法において、前記コントローラ部とデータ通信を行うインターフェース手段を介して前記コントローラ部から出力されるコマンド信号を取得する取得工程と、所定の時間の経過を通知するタイマによる時間経過通知及び前記取得したコマンド信号に従い前記エンジン部の状態をエミュレートするエミュレート工程と、前記エミュレートした前記エンジン部の状態及び前記取得したコマンド信号に従いステータス信号を送信する送信工程と、前記エミュレートしたエンジン部の状態に従い前記コントローラ部に対して画像同期信号を生成する生成工程とを備えることを特徴とする。
【００２８】
請求項１３記載のプリンタエミュレート方法は、請求項１２記載のプリンタエミュレート方法において、前記エミュレートしたエンジン部の状態を表示する表示手段を備えることを特徴とする。
【００２９】
請求項１４記載のプリンタエミュレート方法は、請求項１２又は１３記載のプリンタエミュレート方法において、前記タイマは、前記所定の時間を設定することを特徴とする。
【００３０】
請求項１５記載のプリンタエミュレート方法は、請求項１２乃至１４のいずれか１項に記載のプリンタエミュレート方法において、前記エミュレート工程は、前記エミュレートしたエンジン部の状態を保持することを特徴とする。
【００３１】
請求項１６記載のプリンタエミュレート方法は、請求項１２乃至１５のいずれか１項に記載のプリンタエミュレート方法において、前記エミュレート工程は、前記エンジンの状態が変化した時刻を保持することを特徴とする。
【００３２】
請求項１７記載のプリンタエミュレート方法は、請求項１２乃至１６のいずれか１項に記載のプリンタエミュレート方法において、前記取得工程は、前記コマンド信号を取得した時刻を保持することを特徴とする。
【００３３】
請求項１８記載のプリンタエミュレート方法は、請求項１２乃至１７のいずれか１項に記載のプリンタエミュレート方法において、前記送信工程は、前記送信したステータス信号を保持することを特徴とする。
【００３４】
請求項１９記載のプリンタエミュレート方法は、請求項１２乃至１８のいずれか１項に記載のプリンタエミュレート方法において、前記送信工程は、ステータス信号を送信した時刻を保持することを特徴とする。
【００３５】
請求項２０記載のプリンタエミュレート方法は、請求項１２乃至１９のいずれか１項に記載のプリンタエミュレート方法において、前記送信工程は、前記受信したコマンド信号と前記送信したステータス信号の組み合わせを保持することを特徴とする。
【００３６】
請求項２１記載のプリンタエミュレート方法は、請求項１２乃至２０のいずれか１項に記載のプリンタエミュレート方法において、擬似的なエラー状態を指定する指定工程を備え、前記エミュレート工程は、前記エンジンの状態を前記指定手段により指定されたエラー状態とすることを特徴とする。
【００３７】
請求項２２記載のプリンタエミュレート方法は、請求項１２乃至２１のいずれか１項に記載のプリンタエミュレート方法において、前記インターフェース手段を介して前記コントローラ部から出力される出力画像データを取得する他の取得工程と、前記取得した画像データを保持する保持工程と、前記保持した画像データを可視化する可視化工程とを備えることを特徴とする。
【００３８】
上記目的を達成するために、請求項２３記載のプログラムは、出力画像データを生成すると共にコマンド信号を出力するコントローラ部であって、前記生成された出力画像データをメディアに出力するエンジン部と協働して画像出力装置を構成するコントローラ部の動作を検証するプリンタエミュレート方法をコンピュータに実行させるプログラムにおいて、前記プリンタエミュレート方法は、前記コントローラ部とデータ通信を行うインターフェース手段を介して前記コントローラ部から出力されるコマンド信号を取得する取得ステップと、所定の時間の経過を通知するタイマによる時間経過通知及び前記取得したコマンド信号に従い前記エンジン部の状態をエミュレートするエミュレートステップと、前記エミュレートした前記エンジン部の状態及び前記取得したコマンド信号に従いステータス信号を送信する送信ステップとを備えることを特徴とする。
【００３９】
【発明の実施の形態】
以下、本発明の実施の形態に係るプリンタエミュレート装置を図面を参照しながら説明する。
【００４０】
図１は、本発明の実施の形態に係るプリンタエミュレート装置を有する画像処理装置の概略構成を示すブロック図である。
【００４１】
図１において、本発明の実施の形態に係るプリンタエミュレート装置は、出力画像データを生成するビデオデータ制御部２００から成る。ビデオデータ制御部２００は、ビデオインターフェース部４００を介してコントローラ部１００に接続されると共に、直接パーソナルコンピュータの拡張バス３００に接続され、コントローラ部１００、ビデオインターフェース部４００、及びビデオデータ制御部２００及び拡張スロット３００は画像処理装置と構成する。
【００４２】
ビデオデータ制御部２００は、互いに直列に接続された、画像入力制御部２０３、デュアルポートメモリ制御部２０４、及び画像出力制御部２０５と、デュアルポートメモリ制御部２０４に接続された、コントローラインタフェース制御部２０１、拡張バスインターフェース制御部２０２、及びフレームメモリ２０６とを備える。
【００４３】
プリンタエミュレート装置としてのビデオデータ制御部２００は、コントローラ部１００から出力される画像データをフレームメモリ２０６に蓄積し、さらに蓄積した画像データを拡張バス３００を介してパーソナルコンピュータの処理部に転送する機能を有する。
【００４４】
コントローラインターフェース制御部２０１がコントローラ１００からの画像転送要求信号に対して画像転送許可信号を発することにより、コントローラ１００は画像転送許可信号に同期して画像データの転送を開始する。
【００４５】
画像入力制御部２０３は、コントローラ１００が出力する画像データをデュアルポートメモリ制御部２０４に転送し、さらに、デュアルポートメモリ制御部２０４は画像入力制御部２０３から転送された画像データをフレームメモリ２０６に書き込む。
【００４６】
拡張バスインターフェース制御部２０２は、拡張バス３００を介して画像データの転送状態を通知すると共に、転送要求に従ってフレームメモリ２０６に保持された画像を読出し、画像出力制御部２０５に転送する。さらに、画像出力制御部２０５は拡張バス３００に画像データを出力する。
【００４７】
図２は、図１の画像処理装置の接続構成の説明図である。
【００４８】
画像処理装置２３は、ケーブルを介してプリンタコントローラ２１の出力に接続される。プリンタコントローラ２１は、図示しないパラレルインターフェースやUSBインターフェース又はネットワークを介してパーソナルコンピュータ等に接続される。
【００４９】
画像処理装置２３は、インターフェース部（ＰＣＩボード）２２を有する汎用コンピュータ２４と、ＣＲＴ２５とを備える。
【００５０】
プリンタコントローラ２１の出力は、本来プリンタのエンジンコントローラに接続されるものである。エンジンコントローラは、例えば電子写真方式のプリンタの場合、レーザードライバを駆動してコントローラにより生成されたラスター画像データを感光体ドラム表面に静電潜像し、トナーを磁気的に付着させ記録用紙に現像する。
【００５１】
一方、プリンタエミュレート装置を利用してプリンタコントローラ２１の検証を行う場合、ビデオインターフェースをプリンタエミュレート装置２３のインターフェース部２２に接続する。インターフェース部２２はプリンタコントローラ２１の出力コマンド等に従って同期信号（水平同期信号及び垂直同期信号）を生成し、プリンタコントローラ２１の出力するラスター画像データをインターフェース部２２上のメモリに保持する。保持された画像データは汎用コンピュータ２４上で動作するソフトウェアにより再構成され、ＣＲＴ２５に表示される。プリンタエミュレート装置２３はこのようにプリンタエンジンの代わりに接続され、コントローラのハードウェア／ソフトウェアの開発などに利用される。
【００５２】
図３は、図２におけるインターフェース部２２の説明図である。
【００５３】
インターフェース部２２は、ビデオインターフェース部３１と、ビデオデータ制御部３２とから成る。ビデオデータ制御部３２はビデオインターフェースロジック、メモリコントローラ、メモリ、PCIインターフェース等からなり、ビデオインターフェース部３１を介してデータの蓄積制御や同期信号（水平同期信号及び垂直同期信号）の生成、プリンタコマンドの処理等を行う。ビデオデータ制御部３２は、PCIインターフェースの拡張ボードとして汎用コンピュータ２４の拡張スロットに装着される。ビデオインターフェース部３１はビデオデータ制御部３２に板間結合されるユニットであり、取替え可能な構造をなす。インターフェース部２２が汎用の拡張スロットに装着可能な構成をなすため必要な処理速度に応じてシステム制御部となるコンピュータを取り替えることが可能になる。また、ビデオインターフェース部３１を取り替え可能な構成にすることにより、他の異なるインターフェースの画像出力装置の開発に本プリンタエミュレート装置を容易に適応させることができる。これにより、ハードウェアがビデオインターフェース部３１の変更だけで対応可能である。
【００５４】
図４は、図３におけるビデオインターフェース部３１の内部構成を示すブロック図である。
【００５５】
ビデオインターフェース部３１は、コネクタ４０と、コネクタ４０に接続されたラインドライバ４１と、ラインドライバ４１に直接、又はＦＩＦＯ４２を介して接続された板間結合用のコネクタ４３とを備える。ラインドライバ４１は、高速のビデオ信号をケーブルを介して接続するための平衡型の信号インターフェース用ドライバ／レシーバデバイスからなる。ＦＩＦＯ４２は、ビデオ同期クロックに従って、画像データが保持される。
【００５６】
コネクタ４０は、専用のビデオケーブルを介してコントローラ１００に接続され、コントローラ１００には、各種同期信号、同期信号に同期したCMYK画像データ、プリンタエンジンとのインターフェースを司るシリアルコマンド信号、ステータス信号、各種コントロール信号等が入力される。コネクタ４３は、ビデオデータ制御部３２との物理的インターフェースを司る。ビデオデータ制御部３２はコントローラ１００から送出されるプリントコマンド等に従って同期信号（水平同期信号及び垂直同期信号）を生成し（生成手段）、プリンタコントローラ１００から同期信号に従って送られる画像データをＦＩＦＯ４２から抽出する。
【００５７】
図５は、図１のプリンタエミュレート装置の動作を示すタイミングチャートである。
【００５８】
図１のプリンタエミュレート装置は、４色の画像データを順次並行して画像転送処理する。この処理をスムーズに実行するため、プリンタエミュレート装置のフレームメモリは２ページ分の容量を有する。２ページ分のデータを連続して出力することにより、各色の画像データ転送タイミングのズレを利用して１ページ目のデータ転送終了前に、２ページ目の画像データ転送を開始することで、ページ間隔の短縮を行ない、全体の処理時間を大幅に短縮することができる。
【００５９】
図５において、画像転送要求信号ａがコントローラ１００より発せられると、これに対してコントローラインターフェース制御部２０１は画像転送許可信号ｂを返送する。画像転送許可信号ｂを返送されたコントローラ１００は所定のタイミングに従って、ｃ〜ｆの画像データ転送を行う。
【００６０】
画像入力制御部２０３は転送されたｃ〜ｆの画像データをデュアルポートメモリ制御部２０４を介してフレームメモリ２０６に格納し、１ページ目の画像データ入力4の転送が終了した時点で拡張バスインターフェース制御部２０２は拡張バス割込み信号ｇを発生させて１ページ目のデータ格納が終了したことをシステム側に通知する。
【００６１】
一方、システム側においては、拡張バス３００を介した割込み信号に基づき、ビデオデータ制御部２００に格納された画像データの取得を行う。
【００６２】
ビデオデータ制御部からシステム側へのデータ転送については拡張バスインターフェースに基づき実行可能であるどのような方法を用いてもよい。例えば、フレームメモリ２０６を拡張バス上のメモリ空間にマッピングして通常のメモリリードアクセスによって読出す方法や、又はプリンタエミュレート装置側に拡張バス上で動作可能なマスタ転送機能を持たせ、予め指定されたメモリに転送させる方法を用いることが可能である。
【００６３】
以上の一連の動作により１ページ目の画像データはコントローラ１００よりビデオデータ制御部２００を介して拡張バス３００に転送され、２ページ目のデータ転送手順も１ページ目の転送と全く同じように行なわれる。
【００６４】
図１の画像処理装置は、図５に示すように、コントローラ１００からビデオデータ制御部２００に対する２ページ目の画像データの転送と、プリンタエミュレート装置２００から拡張バス３００に対する１ページ目の画像データの転送とを並行して実行する。
【００６５】
ビデオデータ制御部２００は１ページ目のデータ出力と２ページ目のデータ入力を並行して実行させるために２ページ分のメモリ容量を有し、読出しと書き込みを並行して制御する手段を有するため、ページ間隔の短縮を可能とし、処理のスループットを向上させることができる。
【００６６】
次に、本発明の実施の形態に係るプリンタエミュレート装置によって実行されるソフトウェア（ホストとなる汎用コンピュータ２４）を説明する。
【００６７】
図６は、図２における汎用コンピュータ２４上のソフトウェアの構成を示す図である。
【００６８】
汎用コンピュータ２４は、オペレーティングシステム（基本ＯＳ）６１と、ドライバ６２と、マネージャ６３と、アプリケーション６４とを備える。
【００６９】
本実施の形態では、基本ＯＳとして、米マイクロソフト社のWindows（登録商標）2000を利用している。オペレーティングシステム６１はパーソナルコンピュータのメモリ、割込み、ハードディスクなどのリソースを管理する。デバイス６２は、本実施の形態に必要なハードウェアであるインターフェース部２２に対する基本的操作を提供するソフトウェアであるデバイスドライバを有する。基本的な操作とは、インターフェース部２２上のレジスタへのアクセス、バッファメモリへのアクセス、インターフェース部２２からの割込みの処理等である。マネージャ６３は、インターフェース部２２へのより高度な操作を提供するミドルウェアである。高度な操作とは、インターフェース部２２上のバッファに格納されたの画像データをDIBフォーマット（デバイス非依存ビットマップ形式）で取得する機能などであり、取得時には縮小・拡大・ディザ補正などを同時に処理することができる。マネージャ６３は内部でデバイスドライバを利用している。アプリケーション６４は当該装置のオペレータに対するユーザインターフェースとなるソフトウェアである。オペレータはアプリケーション６４を通じて、当該装置に起動、停止、解析などの指示を出すことができる。アプリケーション６４は内部でミドルウェアを利用している。
【００７０】
図７は、図１のプリンタエミュレート装置によって実行されるリアルタイム解析処理のフローチャートである。
【００７１】
本フローチャートで示すソフトウェアは全て汎用コンピュータ２４上で動作するソフトウェアである。当該ソフトウェアはユーザーに対するGUIを提供すると共にインターフェース部２２を制御する。
【００７２】
図７において、当該ソフトウェアが起動されると、初期化処理が行われる（ステップＳ７０１）。この初期化処理は当該ソフトウェアに関する変数等の初期化と共に、ビデオデータ制御部２００に関するレジスタの設定等ハードウェアの初期化処理を実行する。
【００７３】
続くステップＳ７０２では、ＣＲＴ２５により後述する図８の初期画面を表示する。
【００７４】
図８は、図７のステップＳ７０２で表示されるＣＲＴ２５の初期画面の説明図である。
【００７５】
図８において、８０１は画像表示領域であり、この領域８０１は、プリンタコントローラ２１の生成する画像データを表示する。ユーザーは、まず、表示する画像データのサイズと色空間を指定する。８０２は紙サイズを指定するためのコンボボックス領域であり、この領域８０２で予め設定された紙サイズに対応する主走査画素数／主走査開始位置／副走査ライン数／副走査開始位置が設定される。８０３は詳細設定のためのユーザーインターフェースを表示するためのボタンであり、このボタン８０３の押下によって図９に示す詳細設定ウィンドウが表示される。ここでは予め設定したパラメータを変更することが可能である。
【００７６】
図７に戻り、画像サイズの変更が指示されたときは（ステップＳ７０３でＹＥＳ）、指定された画像データを表示するようにパラメータを設定した（ステップＳ７０４）後、ステップＳ７０５に進む。ビデオデータ制御部２００は、設定されたパラメータに従って有効な領域の画像データのみを画像メモリに保持する。
【００７７】
また、表示色空間の変更が指示されたときは（ステップＳ７０５でＹＥＳ）、指定された画像データを表示するようにパラメータを設定した（ステップＳ１０６）後、ステップＳ７０７に進む。表示色空間はカラー、Cプレーン、Mプレーン、Yプレーン、Kプレーンの５種類を選択することが可能である（ラジオボタン８０４）。プリンタコントローラ２１が出力する画像データは通常CMYK色空間であるため、ここでカラーを選択した場合、画像メモリに蓄積したCMYK画像データを取り出し、RGBデータに色変換後表示領域に表示する。C／M／Y／Kプレーンを表示する場合、画像メモリから必要な色プレーンデータのみを取り出し表示する。以上画像サイズ及び表示色空間の設定が終了すると実際の画像取り込みを開始することが可能である。なお、これらのパラメータはデフォルト値が設定されているため、必要が無い場合再設定する必要はない。
【００７８】
ステップＳ７０７では、開始ボタン８０５の押下を検出したか否かを判別し、検出しないときは、ステップＳ７０３以降の処理を繰り返すと共に、検出したときは、アプリケーションソフトによりマネージャレイヤのソフトウェアを介して制御部に画像データ取得動作の開始を設定して、ビデオデータ制御部２００の処理開始レジスタが設定されると同時に本ソフトウェアに対する後述する図１０，図１４及び図１５の割込み処理を有効化する（ステップＳ７０８）。
【００７９】
この割込み処理は、
１．ビデオデータ制御部２００が画像データの１ページ蓄積終了、
２．コントローラ部１００が出力するコマンド信号の受信、
３．画像要求信号や画像転送許可信号等のコントロール信号の受信
をソフトウェアに通知するためのものであり、以下、ページエンド割込み処理、コマンド受信割込み処理、コントロール信号受信割込み処理と呼び、夫々、図１０の処理、図１４の処理、及び図１５の処理に対応する。また、割込み処理には上記インターフェース部２２からのハードウェア割込みの他に、一定時間の経過後に割込み処理を実行するソフトウェア割込み処理もあり、それをタイマ割込みと呼び図２８の処理に対応する。割込みが有効化されると、本ソフトウェアは停止ボタン８０６が押下されるまで（ステップＳ７０９でＹＥＳ）割込み処理を待ち続け、その後、レジスタを設定して（ステップＳ７１０）、本処理を終了する。
【００８０】
図１０は、図７のステップＳ７０８におけるページエンド割込み処理のフローチャートである。
【００８１】
図１０において、まず、表示色空間としてカラー表示が指定されたか否かを判別し（ステップＳ１００２）、カラー表示が指定されていないときは、画像メモリに蓄積された画像データを指定プレーンを縮小変換しながら汎用コンピュータ２５の作業メモリ上に転送する（ステップＳ１００３）。多くの場合、プリンタコントローラの出力する画像データのサイズに比較して画像表示領域のサイズが小さいため縮小変換を行いながら画像データを取り出す。具体的には、画像メモリに蓄積された主走査画素数４８６４画素、副走査ライン数６８４９画素等の高精細画像データを1／8倍に縮小し、６０８画素×８５６ラインの画像データをパーソナルコンピュータに転送する。更に、この際、サブサンプリングに伴う折り返し雑音などの影響を抑えるため所定の空間フィルタで帯域制限を行う。ここでの縮小変換により画像メモリから画像表示装置へのデータ転送量を削減し、高速な動作を実現することができる。表示領域をより小さくすることでより高速な動作を実現することもできる。取り出す画像データは、表示画像色空間がC／M／Y／Kプレーンに設定されている場合、指定プレーンのみを取り出す。指定プレーンのみを表示する場合、カラー表示する場合に比べてデータ転送量及び処理量が少ないため、汎用コンピュータ２５に要求される処理能力を低くすることが可能である。更に、各プレーンのデータをコントローラが生成したデータとしてプレーン毎にそのまま観察することができる。
【００８２】
続くステップＳ１００５では、見易さを向上させるためネガポジ反転し、画像表示領域に表示し（ステップＳ１００７）、表示済みの印刷枚数、即ち印刷完了ページ数８７を表示する（ステップＳ１００８）。ステップＳ１００７のネガポジ反転は必要が無い場合省略してもよい。
【００８３】
一方、ステップＳ１００２の判別の結果、カラー表示が指定されていないときは、CMYK各プレーンの画像データをそれぞれ所定の縮小倍率で取り出し（ステップＳ１００４）、取り出された画像データに対して色変換処理を行った（ステップＳ１００６）後、ステップＳ１００７及びＳ１００８を実行する。
【００８４】
ステップＳ１００６の色変換処理は一般的に行われている変換式によりCMYK画像データを表示用のRGB画像データに変換する。下式は色変換の変換式の例を示す。
【００８５】
R = 1 - （ C + K ）
G = 1 - （ M + K ）
B = 1 - （ Y + K ）
上記変換式により得られたRGB画像データはステップＳ１００７で画像表示領域にカラー表示される。カラー表示の場合、色変換処理やプリンタエンジンとCRT等の表示デバイスとの色再現性の違いなどから、コントローラの生成するCMYK画像が純粋に再現される訳ではないが、カラー画像として再現されるため明らかなラスタライズエラー等の発見に有効である。
【００８６】
図１０のステップＳ１００２〜Ｓ１００８の処理により、ページエンド割込みが発生するに従って、プリンタエンジンを接続した場合の紙への出力と同様に、プリンタコントローラのラスタライズする画像データを表示部にリアルタイムに表示することができる。
【００８７】
続くステップＳ１００９〜Ｓ１０１１では、アプリケーションソフトウェア６０４がエミュレートするエンジンの状態を更新する後述する図１１のエンジン状態更新処理を行い（ステップＳ１００９）、後述する図１２のタイマ処理を行い（ステップＳ１０１０）、後述する図１３のコントロール信号処理を行って（ステップＳ１０１１）、本処理を終了する。
【００８８】
図１１は、図１０のステップＳ１００９におけるエンジン状態更新処理のフローチャートである。
【００８９】
図１１において、ページエンド割込み処理によってエンジン状態が遷移したときは（ステップＳ１１０１でＹＥＳ）（エミュレート手段）、エンジン状態を時刻と共にパーソナルコンピュータに記録し（ステップＳ１１０２）、新たなエンジンの状態をＣＲＴ２５の領域８０８に表示する（ステップＳ１１０３）。ステップＳ１１０３において、後述する図１６のエンジンステータスチャートウィンドウを表示している場合は当該ウィンドウの表示を更新する。
【００９０】
図１２は、図１０のステップＳ１０１０におけるタイマ処理のフローチャートである。
【００９１】
図１２において、タイマ割込みの設定が必要なとき、例えば、「後処理中」のように時間によりエンジンの状態が遷移する可能性があるときは（ステップＳ１２０１でＹＥＳ）、エンジンの状態の遷移に必要な時間に対応したタイマ割込みをセットする（ステップＳ１２０２）。
【００９２】
図１３は、図１０のステップＳ１０１１におけるコントロール信号処理のフローチャートである。
【００９３】
図１３において、受信したコマンド又はエンジンの状態遷移に伴ってコントロール信号を出力する必要があるときは（ステップＳ１３０１でＹＥＳ）、当該コントロール信号をマネージャ６０３を介して出力する（ステップＳ１３０２）（送信手段）。
【００９４】
図１４は、図７のステップＳ７０８におけるコマンド受信割込み処理のフローチャートである。
【００９５】
図１４において、パーソナルコンピュータは受信したコマンド信号をビデオデータ制御部２００から読込み、受信時刻と共に記録し（ステップＳ１４０１）（取得手段）、受信したコマンド信号を解析して（ステップＳ１４０２）、アプリケーション６４が保持しているエンジンの状態を解析し（ステップＳ１４０３）、新たなエンジンの状態と返信するコマンド信号を決定する。
【００９６】
エンジンの状態とは、「アイドル」、「初期化」、「給紙中」等のエンジンの状態を表し、本実施の形態ではアプリケーション６４の内部で、エンジンの状態をエミュレートしている。なお、開始ボタン８０５の押下直後のエンジンの状態は「アイドル」状態である。例えば、エンジンの状態が「アイドル状態」において「印刷準備開始」を表すコマンド信号を受信しした場合、返信するステータス信号を「正常実行」、次のエンジンの状態を「初期化」と決定する。
【００９７】
続くステップＳ１４０４では、マネージャ６３を介してビデオデータ制御部２００からステータス信号を返信する（送信手段）。返信したステータス信号はステップＳ１４０１で受信したコマンド信号と対応がわかるように記録する（ステップＳ１４０５）。受信したコマンド信号とステータス信号は、「印刷準備開始→正常実行」の様に操作者に分かりやすいように対応をつけてＣＲＴ２５の領域８０７で表示する（ステップＳ１４０６）。ステップＳ１４０７〜Ｓ１４０９では、図１０のステップＳ１００９〜Ｓ１００１と同様の処理を実行する。動作例としては、エンジン状態が「アイドル」から「初期化」に遷移した場合は時間T１のタイマ割込みをセットする等のように動作する。
【００９８】
図１５は、図７のステップＳ７０８におけるコントロール信号受信割込み処理のフローチャートである。
【００９９】
図１５において、パーソナルコンピュータは受信したコントロール信号をビデオデータ制御部２００から読込み、受信時刻と共に記録し（ステップＳ１５０１）（取得手段）、アプリケーション６４が保持しているエンジンの状態と受信したコントロール信号とから新たなエンジンの状態を解析する（ステップＳ１５０２）。
【０１００】
続くステップＳ１５０３〜Ｓ１５０６では、図１０のステップＳ１００９〜Ｓ１００１と同様の処理を実行する。動作例としては、エンジンの状態が「給紙中」の場合にコントロール信号「画像転送要求信号」を受信した場合は、エンジンの状態を「印刷中」に遷移し「画像転送許可信号」を出力する等のように動作する。
【０１０１】
図２８は、図７のステップＳ７０８におけるタイマ割り込み処理のフローチャートである。
【０１０２】
図２８において、アプリケーション68が保持しているエンジン状態と割り込みを発生したタイマから新たなエンジンの状態を解析する（ステップＳ２８０１）。
【０１０３】
続くステップＳ２８０２〜Ｓ２８０４では、図１０のステップＳ１００９〜Ｓ１００１と同様の処理を実行する。動作例としては、エンジン状態が「排紙中」の場合に時間T4（図１６の１６０３）の経過を通知するタイマ割り込みが発生した場合は、エンジンの状態を「後処理中」に変更するなどのように動作する。
【０１０４】
図１６は、図１１のステップＳ１１０３において表示されるエンジンステートチャートウィンドウの説明図である。
【０１０５】
図１６において、エンジン状態は１６０１のようにに楕円で囲まれて表示される。本実施の形態のエンジン部２０３は６個の内部状態をもつことがわかる。矢印１６０２はエンジン状態の遷移方向を示しており、矢印に沿わない方向の状態遷移や、矢印が無い状態間の遷移の発生を検出することで、エンジン部の異常を発見することができる。１６０３が示す不等式は、エンジン状態が遷移するのに必要な時間を示している。この場合は、エンジン状態が「排紙中」の場合に、時間「T３」が経過するとエンジン状態は「後処理中」に遷移することを示している。１６０４が示す文字列は、エンジン状態が遷移するのに必要なコマンドを示している。この場合は、エンジン状態が「アイドル」の場合に、コマンド「印刷準備実行」を受信するとエンジン状態は「初期化中」に遷移することを示している。なお、アプリケーションソフトウェア６０４が保持しているエンジン状態は１６０５の様に目立つように着色されて表示され、当該状態に遷移する前のエンジン状態も１６０１の様に着色されて表示される。このため、操作者が現在のエンジン状態等のエンジン状態を把握するのは容易になっている。
【０１０６】
さらに、図１６のエンジンステートチャートウィンドウにおいて、１６０３のような不等式をマウスによりクリックすると図１７のエンジンタイミング設定ウィンドウが表示される。図１７のエンジンタイミング設定ウィンドウにおいて、各タイミングの時間を１０００分の１秒単位で設定することができる（１７０１）。例えば、本実施の形態のプリンタエミュレート装置において、高速のプリンタエンジンをエミュレートする場合は、印刷時間をはじめとした各数値を小さくする。ここで指定された数値はタイマ処理サブルーチンのS１２０２でセットするするタイマの時間に影響する。このように、エンジン部の各タイミングを容易に変更することが可能のため、エンジン部の仕様変更に対して速やかに対応することができる。また、本実施の形態のプリンタエミュレータを用いて検証するプリンタコントローラにおいて、処理タイミングではなく、主に画像データを確認したい場合には、初期化時間、給紙時間、排紙時間、後処理時間を０とすることで画像データに関連しない部分の時間を削減することができ、画像データの確認・解析の時間を短縮することができる。なお、図１７のエンジンタイミング設定ウィンドウ１７は図８のウィンドウの環境設定メニュー８１０より表示することもできる。
【０１０７】
さて、停止ボタン８０６が押下されると、システムは以後オフライン解析モードと呼ぶモードで動作する。
【０１０８】
オフライン解析モードではリアルタイム解析モード動作時に画像メモリに蓄積した最終ページの画像データに対する解析機能を提供する。図１８はオフライン解析モード時のユーザインターフェースを示す。画像表示領域１８０１には最終ページの画像が表示されている。オフライン解析モードの場合、拡大/縮小機能１８０２、データ保存機能１８０３、ログ表示機能１８０４等のオペレーションを促すボタンが有効化される。
【０１０９】
図７において、ユーザーが停止ボタンを押下すると（ステップＳ７０９でＹＥＳ）、アプリケーションソフトウェアは、マネージャソフトウェア及びドライバソフトウェアを介して割込み処理の発生を禁止すると共に、ビデオデータ制御部３２に対してプリンタコマンドに対するプリンタエミュレーション処理の停止を命じる。このとき、システムは、図１８のオフライン解析モードで動作する。オフライン解析モードではリアルタイム解析モード動作時に画像メモリに蓄積した最終ページの画像データに対する解析機能を提供する。
【０１１０】
図１８は、オフライン解析モード時のＣＲＴ２５の表示画面の説明図である。
【０１１１】
画像表示領域１８０１には最終ページの画像が表示されている。オフライン解析モードの場合、拡大／縮小機能１８０２、データ保存機能１８０３、ログ表示機能１８０４等のオペレーションを促すボタンが有効化される。
【０１１２】
図１９は、図１のプリンタエミュレート装置によって実行されるオフライン解析処理のフローチャートである。
【０１１３】
図１９において、表示色空間の変更が指示されたときは（ステップＳ１９０１でＹＥＳ）、後述する図２０の画像再取得表示処理を実行して（ステップＳ１２０２）、ステップＳ１９０３に進む。
【０１１４】
図２０は、図１９のステップＳ１９０２における画像再取得表示処理のフローチャートである。
【０１１５】
この処理は、所定の倍率に縮小した所望のプレーンの画像データを画像メモリから転送し表示領域に表示するものである。
【０１１６】
図２０において、まず、表示色空間としてカラー表示が指定されたか否かを判別し（ステップＳ２００２）、カラー表示が指定されておらず、C／M／Y／K独立プレーンが指定されているときは、指定されたプレーンの画像データのみを所望の縮小倍率で縮小変換しながら汎用コンピュータ２５の記憶装置に転送し（ステップＳ２００３）、転送された画像データをネガポジ変換（ステップＳ２００４）後モノクログレースケール画像データとして画像表示領域に表示する（ステップＳ２００７）。
【０１１７】
一方、ステップＳ２００２の判別の結果、カラー表示が指定されたときは、CMYK各プレーンの画像データを所定の倍率に縮小しながらパーソナルコンピュータの記憶装置に転送する（ステップＳ２００５）と共に、転送された画像データに対して色変換処理を行い（ステップＳ２００６）、得られたRGB画像データを画像表示領域に表示する（ステップＳ２００７）。
【０１１８】
図１９に戻り、拡大ボタンが押下されたときは（ステップＳ１９０３でＹＥＳ）、図２０の画像再取得表示処理を実行して（ステップＳ１９０２）、ステップＳ１９」０５に進む。拡大ボタン１回の押下で＋１０パーセント拡大した画像データを画像メモリから再転送する。この場合もステップＳ１９０２で画像メモリから必要な画像データを所定の縮小倍率で転送する。
【０１１９】
図２１は、図１９のステップＳ１９０３で拡大ボタンを押下したときのＣＲＴ２５の表示画面の説明図である。
【０１２０】
画像表示領域２１０１により高解像度の画像データが転送され表示されている。この場合、画像表示領域に収まらないためスクロールバー２１０２が自動的に表示される。スクロールバーを操作することで画像全体を確認することが可能である。
【０１２１】
図１９に戻り、縮小ボタンが押下されたときは（ステップＳ１９０５でＹＥＳ）、図２０の画像再取得表示処理を実行して（ステップＳ１９０２）、ステップＳ１９０７に進む。縮小ボタン１回の押下で−１０％縮小された画像データを画像メモリから再転送する。
【０１２２】
続いて、全体表示ボタンが押下されたときは（ステップＳ１９０７でＹＥＳ）、図２０の画像再取得表示処理を実行して（ステップＳ１９０２）、ステップＳ１９０９に進む。全体表示ボタンの押下により、画像表示領域に画像全体を表示可能な縮小倍率で画像データを画像メモリから再転送する。更に、マウスの領域指定による拡大表示も図２１に示すように可能である。
【０１２３】
図２１は、マウスによる領域指定の様子を示す図である。
【０１２４】
２２０１は指定された領域であり、当該領域が画像表示領域全体に表示されるような倍率で画像メモリからデータを再転送し表示する。
【０１２５】
なお、図１９のフローチャートでは、マウスの操作に関するステップは図示していない。
【０１２６】
次に、ユーザーが保存ボタンを押下すると（ステップＳ１９０９でＹＥＳ）、表示色空間がカラーに設定されているか否かを判別する（ステップＳ１９１０）。
【０１２７】
保存ボタンを押下したときは、例えば、カラー表示に設定された場合、ＣＲＴ２５の表示画面は図２３に示すようになる（TIFF（CMYK）フォーマットでの保存）。
【０１２８】
ステップＳ１９１０の判別の結果、カラーに設定されているときは、画像メモリに蓄積されているCMYK画像データの全色を汎用コンピュータ２４の主記憶部に転送し（ステップＳ１９１３）、TIFF（CMYK）フォーマットでファイル化し汎用コンピュータ２４のハードディスク等に記録する（ステップＳ１９１４）。
【０１２９】
一方、ステップＳ１９１０の判別の結果、カラーではなく、C／M／Y／Kプレーン指定が設定されている場合、指定されたプレーンの画像データのみを画像メモリから全て汎用コンピュータ２４の主記憶部に転送し（ステップＳ１９１１）、モノクロ（ＢＭＰ）グレースケールのDIBフォーマット画像ファイルとして記録する（ステップＳ１９１２）。この処理により、プリンタコントローラによりラスタライズされた画像データを表示領域に表示している画像データの表示色空間に応じて、一般的なフォーマットでファイル化することができる。これにより、他の解析ツール等を利用して画像データを解析することもできる。
【０１３０】
続いて、図１８の画面でコマンド表示ボタン１８０４が押下されたときは（ステップＳ１９１５でＹＥＳ）、ステップＳ１４０１、Ｓ１４０４及び、S１５０１で蓄積したコマンド信号、ステータス信号、コントロール信号を読み出して（ステップＳ１９１６）、読み出した信号を汎用コンピュータのＣＲＴ２５に転送して表示する（ステップＳ１９１７）。このときのＣＲＴ２５の表示画面は、図２４に示すようになり、コマンド信号を受信した時刻（２４０１）、１６進表示のコマンド（２４０２）、デコードしたコマンド（２４０３）、１６進表示のステータス（２４０４）、デコードしたステータス（２４０５）を表示している。さらに、コントロール信号より得られた印刷開始、ページエンド等の情報も時刻とともに表示している（２４０６）。コントローラ部とエンジン部の間のコマンド、ステータス、及び、コントロール信号を確認することで、コントローラ部とエンジン部が正常な動作を行っているか否か等の検証を行うことができる。
【０１３１】
次に、図１６のエンジンステートチャートウィンドウのログ表示ボタン１６０６が押されたときは（ステップＳ１９１８でＹＥＳ）、ステップＳ１１０２で蓄積したエンジン状態の記録を読み出し（ステップＳ１９１９）、読み出した信号を汎用コンピュータ２４のＣＲＴ２５に転送して表示する（ステップＳ１９２０）。このときのＣＲＴ２５の表示画面は、図２５に示すようになり、ステータスが遷移した時刻（２５０１）、遷移前のエンジンステータス（２５０２）、遷移後のエンジンステータス（２５０３）を表示している。エンジン部の状態変化タイミングを確認することで、コントローラ部とエンジン部が正常な動作を行っているか否か等のより詳細な検証を行うことができる。
【０１３２】
上記オフライン解析モードではこれらの解析オペレーションを画像メモリに蓄積した画像データに対して行うことができる。これにより、画像データに対する画素レベル単位の検証等を容易なオペレーションでリアルタイム解析モードの停止後、直ちに行うことができる。即ち、リアルタイム解析モードで連続動作の状況を観察し、異常が発生したと判断した場合、停止ボタンの押下だけで、対象となる画像データをオフラインで詳細に解析することができる。
【０１３３】
次に、開始ボタン１８０７を押下したときは（ステップＳ１９２１でＹＥＳ）、直ちにリアルタイム解析モードに移行すべく、ステップＳ１０８に進む。リアルタイム解析モードに移行した場合、起動時と同様にプリンタコントローラの出力するラスタ画像データを画像メモリに蓄積し、リアルタイムに画像表示部に表示する。以上のオペレーションにより、リアルタイム解析モードとオフライン解析モードを任意のタイミングで移行しながら、簡単なオペレーションでプリンタコントローラの検証作業を繰り返し行うことができる。
【０１３４】
以上のオペレーションにより、リアルタイム解析モードとオフライン解析モードを任意のタイミングで移行しながら、簡単なオペレーションでプリンタコントローラの検証作業を繰り返し行うことができる。
【０１３５】
上記実施の形態では、プリンタとしてレーザービームプリンタを対象にした場合について説明したが、本発明はこれに限るわけではなくバブルジェット（登録商標）方式のプリンタ等他の様々なプリンタコントローラ等の開発に利用することが可能である。その場合、ビデオインターフェース部をプリンタ等のビデオインターフェース方式に合わせて変更することで、様々なプリンタコントローラの開発に利用することが可能である。
【０１３６】
上記実施の形態では、プリンタ状態の表示例としてステートチャートを利用して表示する場合について説明したが、給紙トレイ、感光ドラム、定着器、排紙トレイ等のプリンタの内部構成がわかるように図示し、エンジン状態の変化に合わせて、感光ドラムの感光や紙送りの様子等をアニメーション表示してもよい。
【０１３７】
上記実施の形態では、プリンタコマンドログの表示例として１６進データをそのまま表示する場合について説明したが、コマンド表にしたがってより分かりやすい様にコマンドをデコードして表示してもよい。
【０１３８】
さらに、紙切れ、ジャム、トナー切れ等のエラー状態を発生させるようなユーザインターフェースを設けてもよい。
【０１３９】
図２６はエラー状態を発生させる場合のユーザインターフェースの例である。この場合、例えばｎ枚目の印刷時又はランダムのタイミングで指定したエラー状態を発生させる。これにより、プリンタコントローラのコマンド処理機能の検証をさらに詳細に行うことができる。
【０１４０】
更に、紙切れやジャム等のエラーレスポンスを返送するようなユーザーインターフェースを設けてもよい（図２６）。この場合、例えばｎ枚目の印刷時又はランダムに指定したエラーレスポンス（この場合「紙切れ」「ジャム」「メカ故障」）を発生させる。つまり指定した所定の発生タイミングで指定したエラー要因を発生させるように設定される。これにより、プリンタコントローラのラスタライズ機能の検証だけでなく、プリンタコマンドに対するレスポンス処理機能の検証も可能になる。
【０１４１】
上記実施の形態では、オペレーションシステムとして米マイクロソフト社のWindows（登録商標）を利用した場合について説明したが、本発明はこれに限るわけではなく他の様々な環境上で構成することも可能である。
【０１４２】
上記実施の形態では、パーソナルコンピュータと組み合わせてシステムを構成する場合について説明したが、本発明はこれに限るわけでなく、他の様々な機器と組み合わせて実現してもよい。
【０１４３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記録媒体を、システム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し、実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１４４】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１４５】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１４６】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１４７】
また、このときのプログラムコードは、ＭＰＵネイティブなコードであってもよいし、所定のインタプリタ言語で記述されたものでランタイム時にＭＰＵネイティブなコードに変換されるようなものでもよいし、所定様式で記述されたスクリプトデータであってオペレーティングシステム等により解釈実行されるようなものであってもよい。
【０１４８】
【発明の効果】
以上詳細に説明したように、本発明によれば、出力画像データを生成するコントローラ部であって、生成された出力画像データをメディアに出力するエンジン部と協働して画像出力装置を構成するコントローラ部の生成するコマンド信号とコントロール信号からエンジン部の状態をエミュレートし、適切なステータス信号とコントロール信号を生成することができ、その結果、コントローラ部のタイミング処理及び処理速度の検証をエンジン部が完成していない状況でも行うことができ、その結果、画像出力装置の開発スピードの向上や開発コストの低減を図ることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に係るプリンタエミュレート装置を有する画像処理装置の概略構成を示すブロック図である。
【図２】図１の画像処理装置の接続構成の説明図である。
【図３】図２におけるインターフェース部２２の説明図である。
【図４】図３におけるビデオインターフェース部３１の内部構成を示すブロック図である。
【図５】図１のプリンタエミュレート装置の動作を示すタイミングチャートである。
【図６】図２における汎用コンピュータ２４上のソフトウェアの構成を示す図である。
【図７】図１のプリンタエミュレート装置によって実行されるリアルタイム解析処理のフローチャートである。
【図８】図７のステップＳ７０２で表示されるＣＲＴ２５の初期画面の説明図である。
【図９】図８におけるボタン８０３の押下時にＣＲＴ２５に表示される詳細設定ウィンドウの説明図である。
【図１０】図７のステップＳ７０８におけるページエンド割込みの処理のフローチャートである。
【図１１】図１０のステップＳ１００９におけるエンジン状態更新処理のフローチャートである。
【図１２】図１０のステップＳ１０１０におけるタイマ処理のフローチャートである。
【図１３】図１０のステップＳ１０１１におけるコントロール信号処理のフローチャートである。
【図１４】図７のステップＳ７０８におけるコマンド受信割込み処理のフローチャートである。
【図１５】図７のステップＳ７０８におけるコントロール信号受信割込み処理のフローチャートである。
【図１６】図１１のステップＳ１１０３において表示されるエンジンステートチャートウィンドウの説明図である。
【図１７】図１６における不等式１６０３をマウスによりクリックしたときに表示されるエンジンタイミング設定ウィンドウの説明図である。
【図１８】オフライン解析モード時のＣＲＴ２５の表示画面の説明図である。
【図１９】図７の処理の後に実行されるオフライン解析処理のフローチャートである。
【図２０】図８のステップＳ１２０２における画像再取得表示処理のフローチャートである。
【図２１】図１９のステップＳ１２０３で拡大ボタンを押下したときのＣＲＴ２５の表示画面の説明図である。
【図２２】マウスによる領域指定の様子を示す図である。
【図２３】図１９のステップＳ１２０９で保存ボタンを押下したときのＣＲＴ２５の表示画面の説明図である。
【図２４】図１９のステップＳ１９１７で表示されるＣＲＴ２５の表示画面の説明図である。
【図２５】図１９のステップＳ１９２０で表示されるＣＲＴ２５の表示画面の説明図である。
【図２６】エラーレスポンスを設定する場合のＣＲＴ２５の表示画面の説明図である。
【図２７】従来のプリンタの概略構成を示すブロック図である。
【図２８】図７のステップＳ７０８におけるタイマ割り込み処理のフローチャートである。
【符号の説明】
１００  コントローラ
２００  ビデオデータ制御部
２０１  コントローラインターフェース制御部
２０２  拡張バスインターフェース制御部
２０３  画像入力制御部
２０４  デュアルポートメモリ制御部
２０５  画像出力制御部
２０６  フレームメモリ
３００  拡張バス
４００  ビデオインターフェース部
【図１】
0004677133.tif 000002
【図２】
0004677133.tif 000003
【図３】
0004677133.tif 000004
【図４】
0004677133.tif 000005
【図５】
0004677133.tif 000006
【図６】
0004677133.tif 000007
【図７】
0004677133.tif 000008
【図８】
0004677133.tif 000009
【図９】
0004677133.tif 000010
【図１０】
0004677133.tif 000011
【図１１】
0004677133.tif 000012
【図１２】
0004677133.tif 000013
【図１３】
0004677133.tif 000014
【図１４】
0004677133.tif 000015
【図１５】
0004677133.tif 000016
【図１６】
0004677133.tif 000017
【図１７】
0004677133.tif 000018
【図１８】
0004677133.tif 000019
【図１９】
0004677133.tif 000020
【図２０】
0004677133.tif 000021
【図２１】
0004677133.tif 000022
【図２２】
0004677133.tif 000023
【図２３】
0004677133.tif 000024
【図２４】
0004677133.tif 000025
【図２５】
0004677133.tif 000026
【図２６】
0004677133.tif 000027
【図２７】
0004677133.tif 000028
【図２８】
0004677133.tif 000029