以下に添付図面を参照して、本発明に係る印刷システムの実施形態を詳細に説明する。先ず、理解を容易とするために、各実施形態による印刷システムが適用されるプロダクションプリンティングについて、概略的に説明する。プロダクションプリンティングでは、短時間に大量の印刷を行うことを基本的な考え方としている。そのために、プロダクションプリンティングでは、印刷の高速化を図ると共に、ジョブ管理や印刷データの管理などを効率的に行うために、印刷データの作成から印刷物の分配までの管理を行うワークフローのシステムを構築する。
各実施形態による印刷システムは、プロダクションプリンティングのワークフローにおける、印刷を実行する部分に関わるもので、RIP(Raster Image Processor)処理と、RIP処理により得られたビットマップデータの印刷とを別の装置で行う。RIP処理は、印刷処理の中でも最も処理時間を要し、RIP処理を行う装置と、印刷処理を行う装置とを分離することで、印刷の高速化が可能となる。
(各実施形態に適用可能な印刷システムの概要)
図1は、本発明の各実施形態に適用可能な印刷システムの一例の構成を示す。この印刷システムは、上位装置10と、画像形成装置としてのプリンタ装置13とが、複数のデータ線11と、制御線12とで接続されて構成される。ホスト装置5は、例えばコンピュータであって、印刷画像データと、印刷設定情報とを含む印刷ジョブデータを生成する。
印刷ジョブデータは、例えばページ記述言語(PDL)によるデータ(以下、PDLデータと呼ぶ)を含む。このPDLデータを解釈することで、印刷を行うビットマップイメージからなる印刷画像データと、印刷の際のページ情報、レイアウト情報、印刷部数を示す情報など、印刷の設定に関わる印刷設定情報とが生成される。
上位装置10は、ホスト装置5から供給される印刷ジョブデータに従ってRIP処理を行い、印刷画像データである各色毎のビットマップデータを作成する。それと共に、上位装置10は、当該印刷ジョブデータやホスト装置5からの情報などに基づき、印刷動作を制御するための制御情報を作成する。
上位装置10で作成された各色毎の印刷画像データは、複数のデータ線11をそれぞれ介してプリンタ装置13の図示されないプリンタエンジン部に供給される。また、上位装置10とプリンタコントローラ14との間で、制御線12を介して、印刷を制御するための制御情報の送受信が行われる。プリンタコントローラ14は、この制御情報の送受信に基づきプリンタエンジン部を制御して印刷媒体に対する画像形成を行い、印刷ジョブに従った印刷を実行する。なお、この制御情報の具体的な例については、図10−1〜図10−3を用いて後述する。
印刷方式は特に限定されないが、各実施形態では、印刷媒体として印刷用紙を用い、インクジェット方式により印刷用紙に対して印刷画像を形成する。これに限らず、各実施形態を、トナーを用いて印刷用紙に対して印刷画像を形成する印刷装置にも適用可能である。また、印刷用紙は、切断可能なミシン目が所定間隔で打たれた連続紙である連帳紙(連続帳票)を用いるものとする。プロダクションプリンティングでは、印刷用紙としてこの連帳紙を用いることが多い。勿論、これに限らず、A4サイズ、B4サイズなど、サイズが固定的とされたカット紙を印刷用紙として用いてもよい。なお、連帳紙において、ページは、例えば所定間隔で打たれたミシン目で挟まれる領域をいうものとする。
なお、各実施形態による印刷システムが印刷対象とする印刷媒体は、紙の印刷用紙に限定されない。すなわち、各実施形態に適用される印刷方式により印刷が可能で、且つ、ロールとして提供可能な印刷媒体であれば、他の印刷媒体を用いてもよい。例えば、プラスチックフィルムや布などを印刷媒体として用いてもよい。
(上位装置)
図2−1は、上位装置10の一例の構成を示す。バス100に対してCPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、ハードディスクドライブ(HDD)104が接続される。バス100に対して、さらに、外部I/F110、制御情報用I/F111および印刷画像データ用I/F112が接続される。バス100に接続されたこれら各部は、バス100を介して互いに通信可能とされている。
ROM102およびHDD104は、CPU101が動作するためのプログラムが予め格納される。RAM103は、CPU101のワークメモリとして用いられる。すなわち、CPU101は、ROM102およびHDD104に格納されるプログラムに従い、RAM103をワークメモリとして用いて、この上位装置10の全体の動作を制御する。
外部I/F110は、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)に対応し、ホスト装置5との通信を制御する。制御情報用I/F111は、制御情報の通信を制御する。また、印刷画像データ用I/F112は、印刷画像データの通信を制御するもので、複数のチャネルを有する。例えば、上位装置10において作成された、色Y(Yellow)、C(Cyan)、M(Magenta)およびK(Black)による各色の印刷画像データは、これら複数のチャネルからそれぞれ出力される。印刷画像データ用I/F112は、高速な転送速度が要求されるため、例えばPCI Express(Peripheral Component Interconnect Bus Express)が用いられる。制御情報用I/F111の方式は特に限定されないが、ここでは、印刷画像データ用I/F112と同様に、PCI Expressを用いるものとする。
このような構成において、ホスト装置5から送信された印刷ジョブデータが、上位装置10の外部I/F110に受信され、CPU101を介してHDD104に格納される。CPU101は、HDD104から読み出した印刷ジョブデータに基づきRIP処理を行い、各色のビットマップデータを生成してRAM103にそれぞれ書き出す。例えば、CPU101は、RIP処理によりPDL(Page Description Language)データをレンダリングして各色のビットマップデータを生成してRAM103に書き出す。CPU101は、RAM103に書き出された各色のビットマップデータを圧縮符号化してHDD104に一旦格納する。
CPU101は、例えばプリンタ装置13において印刷動作が開始される際に、HDD104から圧縮符号化された各色のビットマップデータを読み出して圧縮符号を復号し、伸張された各色のビットマップデータをRAM103にそれぞれ書き込む。そして、CPU101は、RAM103からこれら各色のビットマップデータを読み出して、各色の印刷画像データとして印刷画像データ用I/F112の各チャネルからそれぞれ出力させ、プリンタ装置13に対して供給する。また、CPU101は、印刷動作の進行などに応じて、印刷を制御するための制御情報の送受信を、プリンタ装置13との間で制御情報用I/F111を介して行う。
図2−2は、上位装置10の機能を説明するための一例の機能ブロック図である。上位装置10は、インターフェイス(I/F)120、123および125、RIP部121、記憶部122、ならびに、制御部124を含む。インターフェイス120、123および125は、それぞれ図2−1における外部I/F110、印刷画像データ用I/F112および制御情報用I/F111に対応する。RIP部121および制御部124は、図2−1におけるCPU101上で動作するプログラムにより構成される。また、記憶部122は、図2−1におけるRAM103またはHDD104のうち少なくとも一方に対応する。
ホスト装置5でPDLデータを含む印刷ジョブデータが作成され、上位装置10に対して送信される。この印刷ジョブデータは、インターフェイス120に受信されてRIP部121に供給される。RIP部121は、供給された印刷ジョブデータに含まれるPDLデータに基づきレンダリングを行い、Y、C、M、K各色のビットマップデータによる印刷画像データを生成する。RIP部121は、生成したY、C、M、K各色の印刷画像データを、記憶部122に順次格納する。
制御部124は、インターフェイス125を介してプリンタ装置13のプリンタコントローラ14と通信を行う。例えば、制御部124は、ホスト装置5からインターフェイス120を介して供給された印刷ジョブデータに基づき、プリンタ装置13における印刷を制御するための制御情報を生成する。この制御情報は、制御部124からインターフェイス125を介してプリンタコントローラ14に送信される。
インターフェイス123は、記憶部122に記憶されるY、C、M、K各色の印刷画像データにそれぞれ独立してアクセスできるようになっている。また、インターフェイス123は、Y、C、M、K各色に対応する複数のデータ線11を介してプリンタ装置13に接続され、この複数のデータ線11を介して、プリンタ装置13との間でY、C、M、K各色の印刷画像データ転送に関する制御情報のやりとりや、Y、C、M、K各色の印刷画像データの転送を行う。
(プリンタ装置)
図3−1は、プリンタ装置13の一例の構成を示す。プリンタ装置13は、プリンタコントローラ14およびプリンタエンジン15を有する。プリンタコントローラ14は、制御線12が接続され、上位装置10との間で制御線12を介して制御情報の送受信を行って印刷動作の制御を行う。プリンタエンジン15は、複数のデータ線11a、11b、11cおよび11dがそれぞれ接続され、プリンタコントローラ14の制御に従い、これらデータ線11a、11b、11cおよび11dをそれぞれ介して上位装置10から転送された各色の印刷画像データによる印刷処理を行う。
プリンタコントローラ14およびプリンタエンジン15について、より詳細に説明する。プリンタコントローラ14は、制御情報送受信部20、制御信号送受信部21、用紙搬送制御部22および制御部23を有する。
制御情報送受信部20は、上位装置10との間で、印刷を制御するための制御情報の送受信を制御線12を介して行う。制御信号送受信部21は、後述するデータ転送制御部30a、30b、30cおよび30dのそれぞれと、エンジンI/F制御線40a、40b、40cおよび40dにより接続される。制御信号送受信部21は、各データ転送制御部30a、30b、30cおよび30dとの間で、それぞれ個別に制御信号の送受信を行う。用紙搬送制御部22は、後述する搬送制御部51と搬送制御線41により接続され、搬送制御部51との間で用紙搬送を制御するための制御信号の送受信を行う。
制御部23は、例えばCPU、ROMおよびRAMを有し、ROMに予め記憶されるプログラムに従い、RAMをワークメモリとして用いてプリンタコントローラ14の各部の制御を行う。また、制御部23は、上位装置10から送信され制御情報送受信部20により受信された制御情報を解釈して、制御信号送受信部21や用紙搬送制御部22に渡す。
なお、制御情報送受信部20、制御信号送受信部21および用紙搬送制御部22は、制御部23に制御されるハードウェアとして構成してもよいし、制御部23上で動作されるプログラムのモジュールとして構成してもよい。
図3−2は、プリンタコントローラ14の一例のハードウェア構成を示す。プリンタコントローラ14は、CPU321、インターフェイス(I/F)322、RAM323およびROM324を有し、これらCPU321、インターフェイス322、RAM323およびROM324が互いに通信可能にバス320に接続される。バス320には、図示されない通信I/Fを介して制御線12も接続される。CPU321は、ROM324に格納されるプログラムに従いRAM323をワークメモリとして用いて動作し、プリンタ装置13の全体の動作を制御する。インターフェイス322には、ハードウェア的に構成されたロジック回路が含まれ、プリンタコントローラ14と、データ転送制御部30a、30b、30cおよび30d、ならびに、搬送制御部51との通信を制御する。
このような構成において、例えば、図3−1における制御信号送受信部21および用紙搬送制御部22の機能は、I/F322により実現される。制御部23の機能は、CPU321上で動作するプログラムにより実現される。また、制御情報送受信部20の機能は、図示されない通信I/Fおよびバス320により実現される。
図3−1の説明に戻り、プリンタエンジン15は、同一の構成による複数のデータ転送制御部30a、30b、30cおよび30dを有すると共に、印刷画像データに基づく画像を用紙に出力し画像形成を行う画像出力部50と、印刷用紙の搬送を制御する搬送制御部51とを有する。
データ転送制御部30a、30b、30cおよび30dは、それぞれデータ線11a、11b、11cおよび11dが接続される。また、データ転送制御部30a、30b、30cおよび30dは、それぞれメモリ31a、31b、31cおよび31dを含み、上位装置10から、データ線11a、11b、11cおよび11dを介して転送された各色の印刷画像データを、それぞれメモリ31a、31b、31cおよび31dに格納する。
これらメモリ31a、31b、31cおよび31dは、例えば同一のメモリ容量と、アドレス構成とを有する。また、メモリ31a、31b、31cおよび31dのそれぞれは、好ましくは少なくとも3ページ分の印刷画像データを格納可能な容量を有する。3ページ分の印刷画像データは、例えば、上位装置10から転送中のページの印刷画像データと、現在出力中のページの印刷画像データと、次のページの印刷画像データとに対応する。これに限らず、メモリ31a、31b、31cおよび31dのそれぞれは、2ページ分以下の印刷画像データを格納可能であってもよい。
さらに、データ転送制御部30a、30b、30cおよび30dは、それぞれエンジンI/F制御線40a、40b、40cおよび40dにより制御信号送受信部21と接続される。制御信号送受信部21は、これらエンジンI/F制御線40a、40b、40cおよび40dを介して、各データ転送制御部30a、30b、30cおよび30dとの間でそれぞれ個別に制御信号の送受信を行うことができる。
図4−1は、データ転送制御部30aの一例の構成を概略的に示す。なお、データ転送制御部30a、30b、30cおよび30dは、共通の構成が適用されるので、図4−1では、データ転送制御部30a、30b、30cおよび30dを代表してデータ転送制御部30aの構成を示す。
データ転送制御部30aは、メモリ31aおよびロジック回路32aを含む。ロジック回路32aに対して、エンジンI/F制御線40aおよびデータ線11aが接続される。ロジック回路32aは、制御信号送受信部21からエンジンI/F制御線40aを介して受け取った制御信号に従い、上位装置10からデータ線11aを介して転送された印刷画像データをメモリ31aに対して格納する。同様に、ロジック回路32aは、制御信号送受信部21からエンジンI/F制御線40aを介して受け取った制御信号に従い、メモリ31aから印刷画像データを読み出して、出力線33aを介して後述する画像出力部50に供給する。
なお、論理回路などの組み合わせによりハードウェア的に構成されたロジック回路32aによる制御は、プログラムに対する割り込みにより処理を分岐させる、CPUを用いた制御に対してより高速な処理が可能であるという利点がある。ロジック回路32aは、例えば、エンジンI/F制御線40aを介して受け取った、ビット列による制御信号に対して論理判定を行い、実行する処理を決定する。これに限らず、ロジック回路32aと同等の機能を、CPUを用いてソフトウェア的に実現してもよい。
データ転送制御部30a、30b、30cおよび30dからそれぞれ出力された各色の印刷画像データは、画像出力部50に供給される。画像出力部50は、各色の印刷画像データによる印刷を実行する。なお、各実施形態では、印刷画像データによる印刷を、ヘッドに設けられたノズルからインクを射出して印刷を行う、インクジェット方式により行う。勿論、印刷方式はインクジェット方式に限られず、例えばレーザプリンタ方式などを用いてもよい。
図4−2は、データ転送制御部30aの一例の構成をより詳細に示す。なお、図4−2において、上述した図4−1と共通する部分には同一の符号を付して、詳細な説明を省略する。データ転送制御部30aは、メモリ31a、メモリコントローラ132a、データ転送DMA(Direct Memory Access)133aおよび134a、ならびに、データ転送制御部コントローラ135aを有する。これらのうち、メモリコントローラ132a、データ転送DMA(Direct Memory Access)133aおよび134a、ならびに、データ転送制御部コントローラ135aが、図4−1におけるロジック回路32aに含まれる。
メモリコントローラ132aは、メモリ31aに対するアクセスを制御する。データ転送DMA133aは、上位装置10から印刷画像データを受信し、メモリコントローラ132aを介してメモリに書き込む。データ転送DMA134aは、メモリコントローラ132aを介してメモリ31aからデータを読み出し、出力線33aを介して画像出力部50に転送する。データ転送制御部コントローラ135aは、プリンタコントローラ14内の制御信号送受信部21からエンジンI/F制御線40aを介して送信される制御情報を受信し、受信した制御情報に従いデータ転送DMA133aおよび134aを制御する。
例えば、制御信号送受信部21から送信されたデータ転送の開始要求が、エンジンI/F制御線40aを介してデータ転送制御部コントローラ135aに受信されると、データ転送制御部コントローラ135aは、この要求に従い、データ転送DMA133aに対してデータ転送の開始を指示する。データ転送DMA133aは、この指示に従い、データ転送要求をデータ線11aを介して上位装置10に送信する。この要求に従い上位装置10から送信されたデータは、例えばデータ転送DMA133aに受信され、メモリコントローラ132aを介して、メモリ31aの所定のアドレスに書き込まれる。
また、制御信号送受信部21から送信された印刷指示が、エンジンI/F制御線40aを介してデータ転送制御部コントローラ135aに受信されると、データ転送制御部コントローラ135aは、データ転送DMA134aに対して、メモリ31aからのデータ読み出しを指示する。データ転送DMA134aは、この指示に応じて、メモリコントローラ132aを介してメモリ31aからデータを読み出す。そして、データ転送DMA134aは、読み出したデータを、出力線33aを介して画像出力部50に転送する。
図5は、画像出力部50の一例の構成を示す。画像出力部50は、出力制御部55と、色Y、C、MおよびK各色のヘッド56a、56b、56cおよび56dとを含む。なお、各色とヘッド56a、56b、56cおよび56dとの関係は、この例に限られない。出力制御部55は、各データ転送制御部30a、30b、30cおよび30dそれぞれの印刷画像データが出力される各出力線33a、33b、33cおよび33dと、ヘッド56a、56b、56cおよび56dとの接続を制御する。すなわち、出力制御部55は、各ヘッド56a、56b、56cおよび56dに対して、それぞれ各出力線33a、33b、33cおよび33dから1を選択して接続するように経路を設定することができる。
例えば、出力制御部55は、各出力線33a、33b、33cおよび33dと、各ヘッド56a、56b、56cおよび56dとを、1対1に接続するように設定できる。また例えば、出力線33aに対して、各ヘッド56a、56b、56cおよび56dを接続する、というように、出力線33a、33b、33cおよび33dと、ヘッド56a、56b、56cおよび56dとを、1対多に接続するように設定できる。
各出力線33a、33b、33cおよび33dと各ヘッド56a、56b、56cおよび56dとを接続する経路は、例えばディップスイッチなどを用いてユーザ操作により設定することができる。これに限らず、当該経路を、制御信号送受信部21からの制御信号により設定してもよい。
上述したように、各実施形態によるプリンタ装置13では、上位装置10からの印刷画像データの転送と、当該印刷画像データによる印刷を制御する制御信号の上位装置10とプリンタ装置13との間の送受信とが、異なる経路を介して行われる。また、上位装置10から、各色の印刷画像データがそれぞれ異なるデータ線11a、11b、11cおよび11dを介して転送されると共に、これらデータ線11a、11b、11cおよび11dを介して転送された各色の印刷画像データが、互いに独立して制御され、共通の構成を持つデータ転送制御部30a、30b、30cおよび30dにそれぞれ供給される。さらに、画像出力部50において、各データ転送制御部30a、30b、30cおよび30dの出力と各色のヘッド56a、56b、56cおよび56dとの接続経路をユーザ操作などにより設定可能とされている。
したがって、各実施形態によるプリンタ装置13は、印刷画像データの色数(Y、C、MおよびKの4色、または、K色のみ、など)や、画像出力部50において用いるヘッド数に応じて、プリンタエンジン15の構成を容易に変更することが可能である。このとき、プリンタエンジン15に対して、各データ転送制御部30a、30b、30cおよび30dのうち、要求される構成に応じて必要とされるものだけを設けるようにできる。
例えば、色Y、C、MおよびKの4色でフルカラーの印刷を行いたい場合は、プリンタエンジン15に対してデータ転送制御部30a、30b、30cおよび30dを全て設け、出力制御部55において、データ転送制御部30a、30b、30cおよび30dの各出力を、それぞれヘッド56a、56b、56cおよび56dに接続すればよい。また例えば、色Kの1色で印刷を行う場合において、装置コスト優先として、それぞれ1のデータ転送制御部30aおよびヘッド56aのみを設け、出力制御部55においてデータ転送制御部30aの出力をヘッド56aに接続することができる。さらに例えば、色Kの1色で印刷を行う場合において、印刷速度優先として、1のデータ転送制御部30aと4のヘッド56a、56b、56cおよび56dとを設け、出力制御部55においてデータ転送制御部30aの出力をヘッド56a、56b、56cおよび56dにそれぞれ接続することができる。この場合、同一色を複数回、重ねて印刷することになるため、例えば、各ヘッド56a、56b、56cおよび56dでのインクの噴出時間を通常の1/4とし、印刷用紙の搬送速度を通常の4倍として高速印刷を行うことが考えられる。
(印刷用紙の搬送系)
図3−1を参照し、搬送制御部51は、用紙搬送制御部22と搬送制御線41により接続され、画像出力部50により印刷画像データに基づく画像が形成される用紙の搬送を制御する。図6は、各実施形態に適用可能な、用紙の搬送系を含めたプリンタ装置200の一例の構造を概略的に示す。既に述べたように、各実施形態では、プリンタ装置200は、印刷用紙として連帳紙を用いる。
印刷用紙201は、印刷用紙補給部210から電源操作ボックス220を介して第1搬送部230に供給される。印刷用紙201は、第1搬送部230において、搬送制御部51の搬送制御により複数のローラなどを介して搬送されて位置合わせなどがなされ、上述のプリンタエンジン15に対応するプリンタエンジン部240および250に供給される。
プリンタエンジン部240および250は、上述の画像出力部50に対応する印刷部241において、第1搬送部230から供給された印刷用紙201に対して印刷画像データに従った印刷を行う。印刷が終了した印刷用紙201は、搬送制御部51の搬送制御によりプリンタエンジン部250から排出され、第2搬送部260に供給される。印刷後の印刷用紙201は、第2搬送部260の内部で所定に搬送されて排出され、裁断部270に供給される。印刷後の印刷用紙201は、裁断部270によりミシン目に従い裁断され各ページを分離される。
ここで、プリンタ装置200は、ページが連続した連続紙である印刷用紙201に印刷を行うため、プリンタエンジン部240および250における印刷用紙201への印刷後、当該印刷用紙201が第2搬送部260から排出されるまでの経路にも、印刷用紙201が絶えず存在することになる。
なお、第1搬送部230、プリンタエンジン部240および250、ならびに、第2搬送部260からなる構成をもう一組用意して、前側の第2搬送部260から排出された印刷後の印刷用紙201を表裏反転して後側の第1搬送部230に供給することで、印刷用紙201に対する両面印刷が可能となる。
(各実施形態に適用可能な印刷処理の詳細)
次に、各実施形態に適用可能な印刷処理について、より詳細に説明する。図7は、上位装置10とプリンタ装置13のプリンタコントローラ14との間で、制御線12を介して送受信される制御情報の一例を示す。なお、図7において、上位装置10をDFE(Digital Front End Processor)、プリンタコントローラ14をPCTLとして示している。制御情報は、大まかには、(1)ジョブ(JOB)情報と、(2)プリンタ状態および印刷プロセスを示す情報と、(3)印刷条件を示す情報と、(4)接続を示す情報とが含まれる。
(1)のジョブ情報は、ジョブ(JOB)開始とジョブ終了とを通知する。ジョブ開始は、上位装置10からプリンタコントローラ14に対するジョブ開始の通知と、当該通知に対するプリンタ装置13から上位装置10への応答が含まれる。ジョブ終了は、上位装置10からプリンタコントローラ14に対する、ジョブ開始により要求した全印刷プロセスの終了の通知と、当該通知に対するプリンタコントローラ14から上位装置10への応答が含まれる。これらジョブ開始およびジョブ終了における応答の際に、ジョブを識別するためのジョブ識別子(JOBID)がプリンタコントローラ14から上位装置10に対して送信される。
(2)のプリンタ状態および印刷プロセスを示す情報には、印刷プロセス受け付け開始と、プリンタ情報の要求および通知と、印刷プロセス開始と、印刷プロセス要求と、データ転送完了と、データ受信完了と、印刷プロセス完了と、プロセス状態報告と、SC(Service Control)通知と、エラー発生および解除とを通知する。
印刷プロセス受け付け開始は、プリンタコントローラ14が印刷プロセスの受け付けが可能となったことをプリンタ装置13から上位装置10に対して通知する。プリンタ情報の要求および通知は、上位装置10からプリンタコントローラ14に対する必要なプリンタ情報の要求と、当該要求に対するプリンタコントローラ14から上位装置10に対する応答とが含まれる。
印刷プロセス開始は、印刷画像データの準備が完了した旨の上位装置10からプリンタコントローラ14に対する通知と、当該通知に対するプリンタ装置13から上位装置10に対する応答を含む。印刷画像データの準備完了通知は、印刷画像データの出力順およびページ(プロセス)単位に行われる。ページは、一連の印刷動作で印刷が行われる印刷単位であるといえる。
印刷プロセス要求は、プリンタコントローラ14から上位装置10に対する印刷プロセスの通知と、当該通知に対する上位装置10からプリンタコントローラ14に対する応答とが含まれる。プリンタコントローラ14は、この印刷プロセス要求により、印刷を行う色Y、C、MおよびKをそれぞれ示す色情報(Yellow, Cyan, Magenta or Black)、プロセス識別番号processIDおよびプレーン識別番号を上位装置10に対して通知する。なお、プレーンは、1ページに印刷される各色の印刷画像データによる画像それぞれに対応するものとする。プリンタコントローラ14は、プレーン単位およびエンジンすなわちデータ転送制御部30a、30b、30cおよび30dの要求順に従い、これらの情報を通知する。すなわち、ビットマップデータからなる印刷画像データは、プリンタエンジン15側から上位装置10に取りに行くことになる。
データ転送完了は、上位装置10からプリンタコントローラ14に対して要求されたプレーンの印刷画像データの転送完了が通知される。データ受信完了は、プリンタコントローラ14から上位装置10に対して、要求したプレーンの印刷画像データの受信完了が通知される。印刷プロセス完了は、上位装置10からプリンタコントローラ14に対して、全ページ(プロセス)の印刷要求の完了が通知される。プロセス状態報告は、プリンタコントローラ14から上位装置10に対して、ページ(プロセス)の印刷状態が通知される。このとき、プリンタコントローラ14は、プリンタエンジン15から給紙、排紙および印刷開始に関する情報を取得し、取得したこれらの情報を当該通知に付加して上位装置10に送信する。
SC通知は、上位装置10からプリンタコントローラ14に対してプリンタ装置13の障害情報の取得が要求されると共に、当該要求に対して取得された障害情報がプリンタコントローラ14から上位装置10に対して通知される。エラー発生および解除は、上位装置10側でのエラー発生および当該エラーの解除が上位装置10からプリンタコントローラ14に対して通知される。
(3)の印刷条件を示す情報は、印刷条件の設定、すなわち、上位装置10からプリンタコントローラ14に対する印刷条件の通知と、当該通知に対するプリンタコントローラ14の応答とを含む。印刷条件の例としては、印刷形態、印刷種別、給排紙情報、印刷面順、印刷用紙サイズ、印刷データサイズ、解像度および階調、ならびに、色情報などを含む。
印刷形態は、例えば印刷用紙201に対して両面印刷および片面印刷のうち何れを行うかを示す。印刷種別は、印刷画像データが存在しておりそれを印刷するのか、印刷画像データが存在しておらず白紙ページとするのかを示す。給排紙情報は、印刷用紙201の給紙元および排紙先のスタッカなどの識別情報を示す。印刷面順は、印刷用紙201に対して表面から裏面へと印刷するのか、裏面から表面へと印刷するのかを示す。印刷用紙サイズは、例えば印刷用紙201として連帳紙を用いる場合、印刷を行うページの印刷用紙201の搬送方向の長さを示す。印刷データサイズは、印刷画像データのデータサイズを示す。すなわち、印刷データサイズは、1ページ分の印刷画像データのサイズを示す。解像度および階調は、印刷画像データを印刷用紙201に印刷する際の解像度および階調を示す。また、色情報は、例えば印刷を色Y、C、MおよびK各色を用いたフルカラーで行うのか、色Kのみを用いた単色で行うかを示す。
(4)の接続を示す情報は、登録および解除を含み、上位装置10およびプリンタコントローラ14のそれぞれで、互いの情報の登録および登録された情報の解除を行う。
(印刷シーケンス)
次に、各実施形態に適用可能な印刷処理について説明する。図8は、各実施形態に適用可能な印刷処理を概念的に示す一例のシーケンス図である。ここでは、色Y、C、MおよびKの各色を用いたフルカラー印刷を行うものとする。プリンタコントローラ14は、上位装置10から制御情報として印刷用紙201に関する情報を受信したら(SEQ100)、受信した情報に基づき搬送制御部51に対して用紙送り長を設定する(SEQ110)。用紙送り長は、例えば搬送方向における1ページのサイズである。
プリンタコントローラ14は、上位装置10から1ページ目(ページ#1)のジョブ開始を示す制御情報を受信したら(SEQ101)、データ転送制御部30a、30b、30cおよび30dのそれぞれに対して、色Y、C、MおよびK各色について1ページ目のデータ転送を開始するように要求する(SEQ110a、110b、110cおよび110d)。データ転送制御部30aは、この要求に従い、データ線11aを介して上位装置10に対して色Yの1ページ目の印刷画像データを要求し、この要求に応じて上位装置10から転送された色Yの1ページ目の印刷画像データをメモリ31aに格納する。
各データ転送制御部30b、30cおよび30dについても同様に、SEQ110b、110cおよび110dの要求に従い、データ線11b、11cおよび11dを介して上位装置10に対して各色C、MおよびKの1ページ目の印刷画像データをそれぞれ要求する。各データ転送制御部30b、30cおよび30dは、この要求に応じて上位装置10から転送された各色C、MおよびKの1ページ目の印刷画像データを、それぞれメモリ31b、31cおよび31dに格納する。
一方、この図8の例では、プリンタコントローラ14から各データ転送制御部30a、30b、30cおよび30dに対して1ページ目のデータ転送が要求されている間に、プリンタコントローラ14は、上位装置10から送信された次の2ページ目のジョブ開始を示す制御情報を受信する(SEQ102)。受信された制御情報は、例えばRAM323に保持される。
各データ転送制御部30a、30b、30cおよび30dは、上位装置10からの各色の1ページ目の印刷画像データの転送が終了したら、それぞれ、その旨をプリンタコントローラ14に通知する(SEQ111a、111b、111cおよび111d)。プリンタコントローラ14は、当該通知にそれぞれ応答して、データ転送制御部30a、30b、30cおよび30dに対してそれぞれ2ページ目(ページ#2)のデータ転送を開始するように要求する(SEQ112a、112b、112cおよび112d)。
この要求に応じて、各データ転送制御部30a、30b、30cおよび30dは、上位装置10に対して各色の2ページ目の印刷画像データをそれぞれ要求し、この要求に応じて上位装置10から転送された各色の2ページ目の印刷画像データを、それぞれメモリ31a、31b、31cおよび31dに格納する。
なお、各データ転送制御部30a、30b、30cおよび30dは、転送された印刷画像データのデータ量に基づきデータ転送の終了を知ることができる。1ページ分の印刷画像のデータ量を示す情報は、例えば各データ転送制御部30a、30b、30cおよび30dに対するデータ転送開始時に、上位装置10が印刷画像データの先頭などに付加して送信する。また、印刷画像データを所定単位毎に転送する場合に、上位装置10が、1ページの最後の印刷画像データの転送単位に対して1ページ分の転送終了を示す終了情報を付加するようにしてもよい。さらに、上位装置10が、1ページ分の印刷画像データの転送直後などに、1ページ分の印刷画像データの転送終了を示す情報を印刷画像データとは別途に、各データ転送制御部30a、30b、30cおよび30dに対して送信することもできる。
一方、プリンタコントローラ14は、各データ転送制御部30a、30b、30cおよび30dの全てから1ページ目のデータ転送終了の通知を受信したら、搬送制御部51に対して用紙搬送開始を要求する(SEQ113)。搬送制御部51は、この要求に応じて印刷用紙201の所定速度での搬送を開始する。また、プリンタコントローラ14は、搬送制御部51に対して用紙搬送開始の要求を行うと共に、各データ転送制御部30a、30b、30cおよび30dに対して、1ページ目の印刷の開始を指示する(SEQ114)。
搬送制御部51は、例えば印刷用紙201が所定位置に到達したら、印刷可能状態である旨をプリンタコントローラ14に対して通知する(SEQ117)。プリンタコントローラ14は、この搬送制御部51からの印刷可能状態報告に応じて、各データ転送制御部30a、30b、30cおよび30dに対して印刷の先頭位置を指示する(SEQ118)。
各データ転送制御部30a、30b、30cおよび30dは、印刷先頭指示に応じて印刷を開始する。この例では、印刷用紙201の搬送方向に沿って各色Y、C、MおよびKのヘッドがヘッド56a、56b、56c、56dの順に並べられているものとする。この場合、印刷用紙201における1ページ目の印刷の先頭位置がヘッド56aによる印刷位置に達したら、先ずデータ転送制御部30aにおいて、メモリ31aからの1ページ目の印刷画像データの読み出しが開始される。メモリ31aから読み出された色Yの印刷画像データは、画像出力部50に転送される。そして、印刷画像データが出力制御部55を介してヘッド56aに供給され、印刷用紙201に対する印刷が行われる(SEQ119a)。色Yの1ページ目の印刷が終了すると、その旨がプリンタコントローラ14に対して通知される(SEQ120a)。
続けて、印刷用紙201における1ページ目の印刷の先頭位置がヘッド56bによる印刷位置に達したら、データ転送制御部30bにおいて、メモリ31bからの1ページ目の印刷画像データの読み出しが開始される。メモリ31bから読み出された色Cの印刷画像データは、画像出力部50に転送される。そして、出力制御部55を介してヘッド56bに供給され、印刷用紙201に対する印刷が開始される(SEQ119b)。色Cの1ページ目の印刷が終了したら、その旨がプリンタコントローラ14に対して通知される(SEQ120b)。
以下同様にして、色MおよびKの印刷が順次開始され(SEQ119c、119d)、印刷が終了したら、その旨がプリンタコントローラ14に対して通知される(SEQ120cおよび120d)。
一方、上述のSEQ112a〜112dで開始された2ページ目の各色の印刷画像データの転送が終了すると、各データ転送制御部30a、30b、30cおよび30dは、その旨をプリンタコントローラ14に対して通知する(SEQ115)。プリンタコントローラ14は、このデータ転送完了の通知に応じて、各データ転送制御部30a、30b、30cおよび30dに対して、2ページ目の印刷の開始をそれぞれ指示する(SEQ116)。
各データ転送制御部30a、30b、30cおよび30dは、1ページ目の印刷の終了後に、それぞれ2ページ目の印刷を開始する。例えば、データ転送制御部30aは、1ページ目の印刷が完了(SEQ120a)した後、印刷用紙201における2ページ目の印刷の先頭位置がヘッド56aによる印刷位置に達したら、メモリ31aから2ページ目の色Yの印刷画像データを読み出して画像出力部50に供給し、印刷用紙201に対する印刷を開始する(SEQ121a)。色Yの印刷が終了したら、その旨がプリンタコントローラ14に対して通知される(SEQ122a)。
各データ転送制御部30b、30cおよび30dにおいても、同様にして、2ページ目の先頭位置がヘッド56b、56cおよび56dによる印刷位置に達したら、メモリ31b、31cおよび31dから各色の印刷画像データを読み出し、印刷用紙201に対する印刷を開始する(SEQ121b〜121d)。各色の印刷が終了したら、その旨がプリンタコントローラ14に対してそれぞれ通知される(SEQ122b〜122d)。
プリンタコントローラ14は、2ページ目の色Kの印刷終了通知をデータ転送制御部30dから受け取ると、印刷ジョブによる最終ページの印刷が終了したとして、搬送制御部51に対して印刷用紙201の搬送の停止を要求する(SEQ123)。搬送制御部51は、この要求に応じて印刷用紙201の搬送を停止させ、その旨をプリンタコントローラ14に対して報告する(SEQ124)。これにより、一連の印刷処理が終了する。
(印刷処理の詳細)
次に、各実施形態に適用可能な印刷処理について、より具体的に説明する。各実施形態では、各データ転送制御部30a〜30dは、プリンタコントローラ14の制御に従い、印刷を制御するための制御情報を上位装置10から取得する。また、各データ転送制御部30a〜30dは、プリンタコントローラ14の制御に従い、上位装置10から転送された各色の印刷画像データを、それぞれメモリ31a〜31dに格納する。
各実施形態に適用可能な印刷画像データのデータ転送処理について、図9−1〜図9−4のフローチャートを用いて説明する。なお、以下において、データ線11a、11b、11cおよび11dは、それぞれ色Y、色C、色Mおよび色Kの印刷画像データが転送され、データ転送制御部30a、30b、30cおよび30dは、それぞれ色Y、色C、色Mおよび色Kの印刷画像データの転送を制御するものとする。
図9−1は、データ転送に係る上位装置10における処理の例を示すフローチャートである。上位装置10は、ホスト装置5からのジョブデータを受信すると、ステップS100で、ジョブ開始を示す制御情報をプリンタコントローラ14に対して制御線12を介して送信する。そして、当該制御信号に応答してプリンタコントローラ14から送信される、印刷プロセス受け付けを示す制御信号を待機する(ステップS101)。
上位装置10は、プリンタコントローラ14からの印刷プロセス受け付けを示す制御信号を受信すると、ステップS102で、ジョブデータに示される印刷条件を示す制御情報を、プリンタコントローラ14に対して制御線12を介して送信し、次のステップS103で、ページ番号をnとして、nページ目の印刷プロセス開始の制御信号をプリンタコントローラ14に対して制御線12を介して送信する。このステップS103からステップS112までの処理は、ページ単位の処理となる。
ステップS104〜ステップS110の処理は、Y、C、M、K各色について実行される処理となる。以下、色Yに関する処理を中心に説明する。上位装置10は、ステップS104で、プリンタコントローラ14からの、例えば色Yの印刷画像データの要求を待機する。上位装置10は、プリンタコントローラ14から制御線12を介して送信されたデータ要求を受信すると、ステップS105で、受け取ったデータ要求に対する応答をプリンタコントローラ14に返す。そして、次のステップS106で、データ転送制御部30aからデータ線11aを介して送信されるデータ転送要求を待機する。
上位装置10は、データ転送制御部30aからのデータ転送要求をデータ線11aを介して受信すると、ステップS107で、データ転送制御部30aに対する色Yの印刷画像データの転送を開始する。色Yの印刷画像データは、データ線11aを介してデータ転送制御部30aに転送される。このとき、上位装置10は、転送する色Yの印刷画像データに対して、当該印刷画像データのサイズを示す情報を付加する。
上位装置10は、ステップS108で、色Yの1ページ分のデータ転送が終了するのを待機する。図2−2を参照し、上位装置10は、例えば、制御部124が記憶部122およびインターフェイス123を監視し、Y、C、M、K各色について、1ページ分のデータ量の転送が行われたか否かをそれぞれ判定する。色Yの1ページ分のデータ転送が終了したと判定された場合、処理はステップS109に移行され、1ページ分のデータ転送が終了したことを示すデータ転送終了通知が制御線12を介してプリンタコントローラ14に対して送信される。そして、上位装置10は、次のステップS110で、プリンタコントローラ14からの色Yについてのデータ受信完了通知を待機する。
上位装置10は、ステップS111で、Y、C、M、Kの全色について、データ受信完了通知を受信したか否かを判定する。若し、受信していないと判定した場合、処理をステップS104に戻し、次の色について処理を実行する。
なお、図9−1では、ステップS104〜ステップS110の処理がY、C、M、K各色について順次実行されるように説明したが、これはこの例に限定されない。例えば、ステップS104〜ステップS110の処理を、Y、C、M、K各色について並列的に実行することも可能である。この場合、ステップS111は、Y、C、M、K各色の処理におけるステップS110でのデータ受信完了通知を待機することになる。
上位装置10は、ステップS111で、Y、C、M、Kの全色についてデータ受信完了通知を受信したと判定したら、処理をステップS112に移行させ、次のページの印刷処理を行うか否かを判定する。印刷を行うページ数は、ホスト装置5から受信した印刷ジョブデータから取得することができる。若し、次ページの印刷処理があると判定された場合、ページ番号n=n+1とされて処理がステップS103に戻される。
一方、印刷ジョブデータに示される全ページ分のデータ転送が終了したと判定された場合、処理がステップS113に移行され、上位装置10は、プリンタコントローラ14からの全ページの排紙報告が待機される。上位装置10は、プリンタコントローラ14からの全ページの排紙報告を受信した場合、処理をステップS114に移行させ、プリンタコントローラ14に対して、制御線12を介して全ての印刷ジョブが終了した旨を示すジョブ終了通知を送信する。
図9−2は、データ転送に係るプリンタコントローラ14における処理の例を示すフローチャートである。プリンタコントローラ14は、ステップS120で、制御線12を介して上位装置10から送信されるジョブ開始を示す制御情報を待機する。プリンタコントローラ14は、この制御情報を受信したら、次のステップS121で、上位装置10に対して、制御線12を介して応答を返す。さらに、プリンタコントローラ14は、このステップS121で、上位装置10に対して、制御線12を介して印刷プロセス受け付け開始を示す制御情報を送信する。そして、次のステップS122で、上位装置10から制御線12を介して送信された印刷条件を示す制御情報を受信する。
次のステップS123で、プリンタコントローラ14は、上位装置10から制御線12を介して送信される、nページ目の印刷プロセス開始を示す制御信号を受信したか否かを判定する。若し、受信していないと判定されたら、処理をステップS130に移行させ、上位装置10から制御線12を介してジョブ終了通知を受信したか否かを判定する。若し、ジョブ終了通知を受信していないと判定したら、処理をステップS123に戻す。一方、ステップS130でジョブ終了通知を受信したと判定したら、一連の印刷処理が終了される。
プリンタコントローラ14は、ステップS123で、上位装置10から制御線12を介して送信された印刷プロセス開始を示す制御信号を受信したと判定したら、処理をステップS124に移行させる。以下のステップS124〜ステップS128の処理は、Y、C、M、K各色の処理となる。ここでは、色Yの印刷画像データの転送処理について説明する。
ステップS124で、プリンタコントローラ14は、上位装置10に対して、制御線12を介して印刷画像データを要求し、次のステップS125で、この要求に対する上位装置10からの応答を待機する。プリンタコントローラ14は、上位装置10からの応答を受信したら、次のステップS126で、データ転送制御部30aに対して、エンジンI/F制御線40aを介してデータ転送の開始を要求する。
このとき、プリンタコントローラ14は、図15を用いて後述する転送管理テーブルから、少なくとも、印刷を行うページ(nページ目)を示すページ識別子PBIDと、印刷画像データの転送元のアドレスを示す転送元アドレスとを抽出する。そして、プリンタコントローラ14は、抽出されたこれらページ識別子PBIDと転送元アドレスとを、データ転送の開始を要求するデータ転送開始要求に付加して、例えばデータ転送制御部30aに送信する。
次のステップS127で、プリンタコントローラ14は、上位装置10からのデータ転送終了通知と、データ転送制御部30aからのデータ転送終了通知とを待機する。プリンタコントローラ14は、これら上位装置10およびデータ転送制御部30aからそれぞれ制御線12およびエンジンI/F制御線40aを介してデータ転送終了通知を受信したら、処理をステップS128に移行させ、色Yについてのデータ受信完了通知を、上位装置10に対して制御線12介して送信する。
プリンタコントローラ14は、ステップS129で、Y、C、M、Kの全色のデータ転送が終了したか否かを判定する。若し、終了していないと判定した場合、処理をステップS124に戻し、次の色について処理を実行する。一方、プリンタコントローラ14は、ステップS129でY、C、M、Kの全色のデータ転送が終了したと判定した場合、ページ番号n=n+1として処理をステップS123に戻す。
なお、図9−2では、ステップS124〜ステップS128の処理がY、C、M、K各色について順次実行されるように説明したが、これはこの例に限定されない。例えば、ステップS124〜ステップS128の処理を、Y、C、M、K各色について並列的に実行することも可能である。この場合、ステップS129は、Y、C、M、K各色の処理におけるステップS128でのデータ受信完了通知を待機することになる。
なお、プリンタコントローラ14は、データ転送制御部30a〜30dに対して、各エンジンI/F制御線40a〜40dを介して印刷指示を送信する。この印刷指示により、各データ転送制御部30a〜30dにおいてメモリ31a〜31dから印刷画像データが読み出され、印刷用紙に対する印刷画像データの印刷が実行される。
なお、プリンタコントローラ14から各データ転送制御部30a〜30dに対して送信される印刷指示は、例えば図7を用いて説明した制御情報のうち、印刷条件の設定の情報といった、印刷を行うために必要な情報によるテーブルとして作成することができる。プリンタコントローラ14は、こうして作成したテーブルを、各データ転送制御部30a〜30dに対して送信する。
図9−3は、このプリンタコントローラ14が印刷指示を行う際の一例の処理を示すフローチャートである。なお、このフローチャートの実行に先立って、プリンタコントローラ14が搬送制御部51に対して、既に印刷準備指示を送信しているものとする。
プリンタコントローラ14は、ステップS140で、上位装置10からジョブ終了通知が送信されたか否かを判定する。若し、送信されたと判定したら、一連の処理を終了する。上位装置10からジョブ終了通知が送信されていないと判定した場合、処理をステップS141に移行させる。
ステップS141では、プリンタコントローラ14は、Y、C、M、K各色について少なくとも1ページ分の印刷画像データの転送終了を待機する。プリンタコントローラ14は、1ページ分の印刷画像データの転送が終了したと判定したら、処理をステップS142に移行させ、搬送制御部51からの印刷準備完了を示す応答の受信が待機される。プリンタコントローラ14は、搬送制御部51から送信された印刷準備完了を示す応答を、搬送制御線41を介して受信すると、次にステップS143において、各データ転送制御部30a〜30dに対して、nページ目の印刷を指示する印刷指示を、エンジンI/F制御線40a〜40dを介して送信する。
図9−4は、データ転送に係る各データ転送制御部30a〜30dにおける処理の例を示すフローチャートである。ここでは、説明のため、色Y、データ転送制御部30aでの処理について説明する。データ転送制御部30aは、ステップS150で、プリンタコントローラ14からエンジンI/F制御線40aを介して送信されるデータ転送開始要求を待機する。
データ転送制御部30aは、データ転送開始要求を受信すると、次のステップS151で、上位装置10に対して、色Yの印刷画像データの転送を要求するデータ転送要求を、データ線11aを介して送信する。このデータ転送要求に応じて上位装置10からデータ線11aを介して転送される、色Yの印刷画像データを、データ転送制御部30aが受信する(ステップS152)。データ転送制御部30aは、データ転送DMA133aを制御して、受信した色Yの印刷画像データをメモリ31aの所定の領域に格納する(ステップS153)。
データ転送制御部30aは、ステップS154で、上位装置10からの色Yの印刷画像データの転送が終了したか否かを判定する。データ転送制御部30aは、例えば、転送される印刷画像データに付加されるサイズ情報に基づき、印刷画像データの転送が終了したか否かを判定することができる。若し、印刷画像データの転送が終了していないと判定した場合は、処理をステップS152に戻し、データの受信およびメモリ31aへの格納を継続する。一方、印刷画像データの転送が終了したと判定したら、処理をステップS155に移行させ、プリンタコントローラ14に対して、エンジンI/F制御線40aを介してデータ転送終了通知を送信する。そして、処理がステップS150に戻される。
図10−1〜図10−3は、上述した図9−1〜図9−4に示した各フローチャートに従って実行される、各実施形態に適用可能な印刷処理をより具体的に示す一例のシーケンス図である。なお、図10−1〜図10−3において、符号A〜Fは、異なる図面間で対応する符号に処理が移行することを示す。また、以下では、印刷ジョブは、全2ページの印刷を行うものであるとする。
図10−1を参照し、先ず、上位装置10からプリンタコントローラ14に対して制御線12を介してジョブ開始の制御情報が送信される(SEQ200)。プリンタコントローラ14は、この制御情報に対して、ジョブ識別子jobID=1を応答する制御情報を、制御線12を介して上位装置10に送信する(SEQ201)。それと共に、プリンタコントローラ14は、ジョブの開始に伴いジョブを実行するためのリソースを獲得する。そして、プリンタコントローラ14は、上位装置10に対して、印刷プロセス受け付け開始を示す制御情報を制御線12を介して送信する(SEQ202)。
次に、上位装置10は、プリンタコントローラ14に対して、印刷条件を設定する制御情報を制御線12を介して送信する(SEQ203)。プリンタコントローラ14に対して設定される印刷条件は、図7を用いて説明したように、印刷形態、印刷種別、給排紙情報、印刷面順、印刷用紙サイズ、印刷画像データのデータサイズ、解像度および階調、ならびに、色情報が含まれる。また、印刷を行うページ数の情報も、印刷条件に含ませることができる。この制御情報がプリンタコントローラ14に受信されると、受信した制御情報に含まれる各種の印刷条件が、例えばプリンタコントローラ14のレジスタなどに書き込まれ、印刷条件が設定される。
次に、上位装置10は、1ページ目の印刷プロセス開始の制御情報を、制御線12を介してプリンタコントローラ14に送信する(SEQ204)。この制御情報は、当該プロセスを識別するためのプロセス識別番号processID=1と、1ページ目を構成する画像を示す画像識別番号imageID=1とを含む。プリンタコントローラ14は、この印刷プロセス開始に対する応答である印刷プロセス開始の制御情報を上位装置10に返す(SEQ205)。
次に、プリンタコントローラ14は、上位装置10に対して、印刷プロセス要求の制御情報を送信し、印刷画像データを要求する。この印刷プロセス要求は、色Y、C、MおよびKの各色について、プリンタエンジン15における色の並び順に従って、順次行われる。この例では、印刷用紙201の搬送方向に沿って各色Y、C、MおよびKのヘッドがヘッド56a、56b、56c、56dの順に並べられているものとする。
先ず、プリンタコントローラ14は、色Yの印刷画像データを要求する印刷プロセス要求の制御情報を、上位装置10に対して制御線12を介して送信する(SEQ206)。この制御情報は、プロセスを指定するプロセス識別番号processID=1と、色Yを指定する色情報Yellowとが含まれる。上位装置10は、この制御情報に対する応答として、画像識別番号imageID=1を含む制御情報をプリンタコントローラ14に返す(SEQ207)。プリンタコントローラ14は、この制御情報を受信すると、色Yに対応するデータ転送制御部30aに対して印刷画像データの転送を開始するよう要求する(SEQ208)。このとき、プリンタコントローラ14は、例えば、転送の開始を要求する印刷画像データのデータサイズを、この要求と共にデータ転送制御部30aに送信する。
データ転送制御部30aは、この要求を受けて、データ線11aを介して上位装置10に対して色Yのプレーンの印刷画像データを要求し(SEQ209A)、この要求に応じて、上位装置10からデータ転送制御部30aに対して、色Yの印刷画像データが転送される(SEQ209)。転送された印刷画像データは、データ転送制御部30aのメモリ31aにおける、1ページ目の印刷画像データのために割り当てられた領域に格納される。
以下、他の各色C、MおよびKについても、上述のSEQ206、SEQ207、SEQ208、SEQ209AおよびSEQ209と同様の処理が繰り返され、各色の印刷画像データが上位装置10から各データ線11b、11cおよび11dを介してデータ転送制御部30b、30cおよび30dにそれぞれ転送され、メモリ31b、31cおよび31dそれぞれの、1ページ目の印刷画像データのために割り当てられた領域に格納される(SEQ210〜SEQ221)。
また、上位装置10は、1のプレーンの印刷画像データの転送が終了すると、データ転送完了の制御情報をプリンタコントローラ14に対して送信する。プリンタコントローラ14は、この制御情報に応じて、印刷画像データの受信完了の制御情報を上位装置10に送信する。
例えば、上位装置10は、色Yのプレーンの印刷画像データの転送が終了すると、画像識別番号imageID=1と色情報Yellowとを含むデータ転送完了の制御情報をプリンタコントローラ14に対して送信する(SEQ222)。一方、データ転送制御部30aは、上位装置10からデータ線11aを介しての印刷画像データの転送が終了すると、その旨示す通知をプリンタコントローラ14に対して送信する(SEQ223)。プリンタコントローラ14は、この通知に応じて、画像識別番号imageID=1と、色情報Yellowとを含むデータ受信完了の制御情報を上位装置10に対して送信する(SEQ224)。
以下、他の各色C、MおよびKについても、各印刷画像データの転送終了に伴い上述のSEQ222〜SEQ224と同様の処理が繰り返され、上位装置10に対してデータ受信完了の制御情報が送信される(SEQ225〜SEQ233)。
プリンタコントローラ14は、SEQ233で、1ページ目の最後の印刷画像データ(すなわち色Kの印刷画像データ)についてのデータ受信完了の制御情報を上位装置10に送信した後に、搬送制御部51に対して印刷の準備を指示する。搬送制御部51は、この指示に従い印刷用紙201の印刷位置への搬送を開始する。
説明は図10−2に移り、1ページ目の各色の印刷画像データの転送が完了すると、上位装置10は、2ページ目の印刷プロセス開始の制御情報を、制御線12を介してプリンタコントローラ14に送信する(SEQ234)。この制御情報は、当該2ページ目のプロセスを識別するプロセス識別番号processID=2と、2ページ目を構成する画像を示す画像識別番号imageID=2とを含む。プリンタコントローラ14は、この印刷プロセス開始に対する応答である印刷プロセス開始の制御情報を上位装置10に返す(SEQ235)。
例えば全2ページの印刷を行う場合には、このSEQ234およびSEQ235の処理で印刷プロセス開始要求が完了することになる。そのため、上位装置10は、SEQ235で2ページ目の印刷プロセス開始要求に対する応答を受け取ると、SEQ236で、ジョブ識別子jobID=1が指定されたプロセス開始要求完了の制御情報を、プリンタコントローラ14に対して送信する。
次に、上述したSEQ206〜SEQ221と同様にして、プリンタコントローラ14は、上位装置10に対して印刷プロセス要求の制御情報を送信し、印刷画像データを要求する。この印刷プロセス要求は、色Y、C、MおよびKの各色について、プリンタエンジン15における色の並び順に従って、順次行われる。
先ず、プリンタコントローラ14は、色Yの印刷画像データを要求する印刷プロセス要求の制御情報を、上位装置10に対して制御線12を介して送信する(SEQ237)。この制御情報は、プロセスを指定するプロセス識別番号processID=2と、色Yを指定する色情報Yellowとが含まれる。上位装置10は、この制御情報に対する応答として、画像識別番号imageID=2を含む制御情報をプリンタコントローラ14に返す(SEQ238)。プリンタコントローラ14は、この制御情報を受信すると、色Yに対応するデータ転送制御部30aに対して印刷画像データの転送を開始するよう要求する(SEQ239)。
データ転送制御部30aは、この要求を受けて、データ線11aを介して上位装置10に対して色Yのプレーンの印刷画像データを要求し(SEQ240A)、この要求に応じて、上位装置10からデータ転送制御部30aに対して、色Yの印刷画像データが転送される(SEQ240)。転送された印刷画像データは、データ転送制御部30aのメモリ31aにおける2ページ目の印刷画像データのために割り当てられた領域に格納される。
以下、他の各色C、MおよびKについても、上述のSEQ237、SEQ238、SEQ239、SEQ240AおよびSEQ240と同様の処理が繰り返され、各色の印刷画像データが上位装置10から各データ線11b、11cおよび11dを介してデータ転送制御部30b、30cおよび30dにそれぞれ転送され、メモリ31b、31cおよび31dそれぞれの2ページ目の印刷画像データのために割り当てられた領域に格納される(SEQ244〜SEQ251、SEQ255〜SEQ258)。
また、上述と同様に、上位装置10は、1のプレーンの印刷画像データの転送終了毎に、データ転送完了の制御情報をプリンタコントローラ14に対して送信する。プリンタコントローラ14は、この制御情報に応答して、印刷画像データの受信完了の制御情報を上位装置10に送信する。
図10−2の例では、上位装置10は、SEQ240で転送された色Yの印刷画像データの転送が終了されると、データ転送完了の制御情報をプリンタコントローラ14に対して送信する(SEQ252)。データ転送制御部30aは、上位装置10からデータ線11aを介しての印刷画像データの転送が終了すると、その旨示す通知をプリンタコントローラ14に対して送信する(SEQ253)。プリンタコントローラ14は、この通知に応答して、画像識別番号imageID=2と、色情報Yellowとを含むデータ受信完了の制御情報を上位装置10に対して送信する(SEQ254)。
以下、他の各色C、MおよびKについても、各印刷画像データの転送終了に伴い上述のSEQ252〜SEQ254と同様の処理が行われ、上位装置10に対してデータ受信完了の制御情報が送信される(SEQ259〜SEQ267)。
なお、図10−2の例では、上述したSEQ234の直前における搬送制御部51に対する印刷準備の指示に対する、搬送制御部51からの印刷準備が完了した旨の応答が、SEQ240の直後に、搬送制御部51からプリンタコントローラ14に対して通知されている。プリンタコントローラ14は、この通知を受信すると、それぞれプロセス識別番号processID=1およびプロセス識別番号processID=2とした、印刷プロセス開始の2の制御情報を、上位装置10に対して送信する(SEQ241、SEQ243)。これにより、上位装置10に対して、1ページ目および2ページ目の印刷が可能となった旨が通知される。
また、SEQ241の時点で、1ページ目の各色の印刷画像データのデータ転送制御部30a、30b、30cおよび30dへの転送が完了している。そのため、プリンタコントローラ14は、各データ転送制御部30a、30b、30cおよび30dに対して、1ページ目の印刷を行う印刷指示をそれぞれ通知する(SEQ242)。この印刷指示は、例えば各データ転送制御部30a、30b,30cおよび30dにおいて、メモリ31a,31b,31cおよび31dにそれぞれ格納されるなどにより保持される。この印刷指示に従った実際の印刷動作は、後続するページの印刷動作などとタイミングを合わせて実行される。
さらに、図10−2の例では、プリンタコントローラ14において、SEQ241およびSEQ243の印刷プロセス開始の制御情報の送信により、2番目に転送が開始される色Cのプレーンの印刷画像データの上位装置10に対する要求が遅延している(SEQ244参照)。そして、この遅延に伴い、最初に転送が開始された色Yのプレーンの印刷画像データの転送が、色Kのプレーンの印刷画像データの転送が開始される前に完了してしまっている(SEQ253参照)。さらにまた、色Yのプレーンの印刷画像データの転送完了の通知処理(SEQ253)の後に、色Kのプレーンの印刷画像データの転送が開始されている(SEQ257、SEQ258)。
図10−1に示す1ページ目のデータ転送処理では、各色の印刷画像データの転送が各色の順序で行われ、印刷画像データの転送が終了した後に、データ転送の終了処理が各色の順序で行われている。これに対して、図10−2に示す2ページ目のデータ転送処理では、各色の印刷画像データの転送が終了しないうちに、データ転送の終了処理が開始してしまっている。
上述のように、各色Y、C、MおよびKのデータ転送を制御するデータ転送制御部30a、30b、30cおよび30dがそれぞれ独立した構成とされ、プリンタコントローラ14は、各データ転送制御部30a、30b、30cおよび30dとそれぞれ独立して通信を行うことができ、また、各データ転送制御部30a、30b、30cおよび30dは、それぞれ独立して処理を実行する。そのため、このように、各データ転送制御部30a、30b、30cおよび30dによる一連の処理の途中に他の処理が割り込んできても、それぞれの処理を変更する必要が無い。
SEQ267で、プリンタコントローラ14が上位装置10に対して色Kのプレーンの印刷画像データの転送が完了したことを通知すると、プリンタコントローラ14は、各データ転送制御部30a、30b、30cおよび30dに対して2ページ目の印刷を行う印刷指示をそれぞれ通知する(SEQ268)。
説明は図10−3に移り、プリンタエンジン15においてSEQ242の印刷指示に従い1ページ目の印刷が実行され、印刷用紙201の給紙が開始される。プリンタエンジン15は、この1ページ目の給紙開始をプリンタコントローラ14に対して通知する(SEQ269)。プリンタコントローラ14は、この通知を受信すると、上位装置10に対して、プロセス識別番号processID=1として、1ページ目の給紙が開始されたことを示す制御情報を送信する(SEQ270)。それと共に、プリンタコントローラ14は、データ転送制御部30a、30b、30cおよび30dに対して、互いに同期して印刷を実行するよう、印刷指示を送信する。この印刷指示に従い、データ転送制御部30a、30b、30cおよび30dは、各メモリ31a、31b、31cおよび31dから各色Y、C、MおよびKの印刷画像データをそれぞれ読み出し、印刷用紙201に対する1ページ目の各プレーンの印刷を順次行う。
同様に、プリンタエンジン15は、1ページ目の印刷が完了し、2ページ目の印刷に移行すると、2ページ目の給紙開始をプリンタコントローラ14に通知する(SEQ271)。プリンタコントローラ14は、この通知を受信すると、上位装置10に対して、プロセス識別番号processID=2として、2ページ目の給紙が開始されたことを示す制御情報を送信する(SEQ272)と共に、データ転送制御部30a、30b、30cおよび30dに対して、互いに同期して印刷を実行するよう、印刷指示を送信する。この印刷指示に従い、データ転送制御部30a、30b、30cおよび30dは、各メモリ31a、31b、31cおよび31dから各色Y、C、MおよびKの印刷画像データをそれぞれ読み出し、印刷用紙201に対する2ページ目の各プレーンの印刷を順次行う。
また、プリンタエンジン15は、1ページ目の各色の印刷が終了し印刷用紙201の1ページ目が排紙されると、その旨をプリンタコントローラ14に通知する(SEQ273)。プリンタコントローラ14は、この通知を受信すると、上位装置10に対して、プロセス識別番号processID=1として、1ページ目の印刷用紙201が排紙されたことを示す制御情報を送信する(SEQ274)。同様に、プリンタエンジン15は、2ページ目の各色の印刷が終了し、印刷用紙201の2ページ目が排紙されると、その旨をプリンタコントローラ14に通知し(SEQ275)、プリンタコントローラ14は、この通知に応じてプロセス識別番号processID=2として2ページ目の印刷用紙201が排紙されたことを示す制御情報を上位装置10に対して送信する(SEQ276)。
上位装置10は、プリンタコントローラ14から、例えばSEQ203で印刷条件の設定の制御情報に含まれる、印刷ページ数を示す情報に対応する排紙報告を受信したら、SEQ200で開始を通知したジョブによる印刷が終了したとして、ジョブ識別番号jobID=1としたジョブ終了の制御情報をプリンタコントローラ14に対して送信する(SEQ277)。プリンタコントローラ14は、この制御情報を受信すると、ジョブ識別番号jobID=1として、応答の制御情報を上位装置10に送信する(SEQ278)。これにより、一連の印刷処理が終了する。
上述したように、印刷画像データの上位装置10からの転送タイミングの制御や、上位装置10との間の制御情報のやりとりなど、従来、各色のデータ転送制御部がそれぞれ行っていた機能を、プリンタコントローラ14が一括して行うようにしている。また、各色に対応するデータ転送制御部(データ転送制御部30a〜30d)は、印刷画像データを受信および読み出しのみを行うようにしている。そのため、印刷画像データの転送処理を高速化することができる。
また、各色Y、C、MおよびKのデータ転送を制御するデータ転送制御部30a、30b、30cおよび30dがそれぞれ独立した構成とされている。それと共に、プリンタコントローラ14と各データ転送制御部30a、30b、30cおよび30dとがエンジンI/F制御線40a、40b、40cおよび40dでそれぞれ接続され、プリンタコントローラ14と各データ転送制御部30a、30b、30cおよび30dとの間の通信は、データ転送制御部30a、30b、30cおよび30dそれぞれで独立して行われる。また、各データ転送制御部30a、30b、30cおよび30dは、それぞれ独立して処理を実行する。
そのため、上述の例えばSEQ237〜SEQ266のように、各データ転送制御部30a、30b、30cおよび30dによる一連の処理の途中に他の処理が割り込んできても、それぞれの処理を変更する必要が無い。また、各データ転送制御部30a、30b、30cおよび30dの処理が独立しているため、データ転送制御部30a、30b、30cおよび30dの追加や削除を容易に行うことができ、システム構成の様々なバリエーションを共通の構成で提供することができる。
(データ転送処理の別の例)
次に、上述したデータ転送処理の別の例について説明する。上述では、各色の印刷画像データの転送処理に際して、上位装置10は、各色のデータ転送制御部30a〜30dから各データ線11a〜11dを介して送信されたデータ転送要求に応じて、各色の印刷画像データを転送していた。これに対して、本例では、データ転送制御部30a〜30dから上位装置10に対してデータ転送要求を送信しない。上位装置10は、プリンタコントローラ14からのデータ要求に応答した後、直接的に、データ転送制御部30a〜30dに対してデータ線11a〜11dを介して各色の印刷画像データを転送する。
データ転送処理の別の例による印刷画像データのデータ転送処理について、図11−1および図11−2のフローチャートを用いて説明する。図11−1は、本例による、データ転送に係る上位装置10における処理の例を示すフローチャートである。なお、図11−1において、上述した図9−1と共通する処理には同一の符号を付し、詳細な説明を省略する。
図11−1のフローチャートに示されるように、上位装置10の処理は、ステップS100のジョブ開始を示す制御情報の送信から、ステップS105の、プリンタコントローラ14からのデータ要求に対する応答をプリンタコントローラ14に返すまでの処理は、図9−1で説明した処理と同一であるので、ここでの説明を省略する。
本例では、上位装置10は、ステップS105でプリンタコントローラ14からのデータ要求に対する応答をプリンタコントローラ14に制御線12を介して送信した後、処理をステップS160に移行させる。ステップS160で、上位装置10は、例えば色Yの印刷画像データを、データ線11aを介してデータ転送制御部30aに送信し、データ転送制御部30a内のメモリ31aに格納する。このとき、上位装置10は、例えば、送信する印刷画像データに対してメモリ31aのアドレス情報を付加してデータ転送制御部30aに送信する。データ転送制御部30aは、印刷画像データに付加されたアドレス情報に従い、当該印刷画像データをメモリ31aに格納する。
上位装置10は、ステップS160による印刷画像データの転送処理を、所定量、例えば1ページ分の印刷画像データの転送が終了するまで行う。上位装置10は、ステップS108で、印刷画像データの転送が終了したと判定したら、ステップS109でデータ転送終了通知をプリンタコントローラ14に対して制御線12を介して送信し、ステップS110で、この通知に対するプリンタコントローラ14からの応答を待機する。以降は、上述した図9−1で説明した処理と同一であるので、ここでの説明を省略する。
本例において、プリンタコントローラ14におけるデータ転送処理および印刷指示処理は、図9−2および図9−3を用いて説明した処理と何ら変わるところが無いので、ここでの説明は省略する。
図11−2は、本例による、データ転送に係るデータ転送制御部30aにおける処理の別の例を示すフローチャートである。なお、図11−2において、上述した図9−4と共通する処理には同一の符号を付し、詳細な説明を省略する。
ステップS150で、データ転送制御部30aは、プリンタコントローラ14からエンジンI/F制御線40aを介して送信されるデータ転送開始要求を待機する。データ転送制御部30aは、プリンタコントローラ14からのデータ転送開始要求を受信すると、処理をステップS161に移行させ、上位装置10からデータ線11aを介して転送される色Yの印刷画像データを受信する。そして、データ転送制御部30aは、当該印刷画像データに付加されるアドレス情報に従い、当該印刷画像データをメモリ31aに格納する。
データ転送制御部30aは、ステップS154で、上位装置10からの色Yの印刷画像データの転送が終了したか否かを判定する。データ転送制御部30aは、例えば、上位装置10が転送する印刷画像データに付加したサイズ情報に基づき、印刷画像データの転送が終了したか否かを判定する。上位装置10が印刷画像データ転送の終了時に、その旨示す情報をデータ転送制御部30aに送信してもよい。若し、印刷画像データの転送が終了していないと判定した場合は、処理をステップS161に戻し、データの受信およびメモリ31aへの格納を継続する。
一方、印刷画像データの転送が終了したと判定したら、処理をステップS155に移行させ、プリンタコントローラ14に対して、エンジンI/F制御線40aを介してデータ転送終了通知を送信する。そして、処理がステップS150に戻される。
このように、データ転送制御部30a〜30dから上位装置10に対してデータ転送要求を送信せずに、上位装置10がプリンタコントローラ14からのデータ要求に応答した後、直接的に、データ転送制御部30a〜30dに対してデータ線11a〜11dを介して各色の印刷画像データを転送する方式を用いることも可能である。
(第1の実施形態)
次に、本発明の第1の実施形態について説明する。本第1の実施形態では、各データ転送制御部30a〜30dがそれぞれ有するメモリ31a〜31dの管理を、プリンタコントローラ14側で一元的に行う。なお、以下では、印刷画像データがC、M、Y、K各色で同一サイズのビットマップデータによって、上位装置10からプリンタ装置13に供給されるものとして説明する。
本第1の実施形態では、図12に例示されるように、プリンタコントローラ14において、各メモリ31a〜31dそれぞれのメモリ空間と同一のメモリ空間を持つ仮想的なメモリ60(以下、仮想メモリ60と呼ぶ)を定義する。プリンタコントローラ14は、上位装置10から転送された印刷画像データを各メモリ31a〜31dに対して書き込む先頭位置(入力ポインタと呼ぶ)と、メモリ31a〜31dから印刷画像データを読み出す際の先頭位置(出力ポインタと呼ぶ)とを、それぞれ仮想メモリ60上で管理する。
プリンタコントローラ14は、各メモリ31a〜31dに対して書き込みを行う際には、入力ポインタが示すアドレスを各データ転送制御部30a〜30dにそれぞれ渡す。各データ転送制御部30a〜30dは、プリンタコントローラ14から渡されたこの入力ポインタが示すアドレスを先頭アドレスとして、データの書き込みを開始する。同様に、プリンタコントローラ14は、各メモリ31a〜31dからデータの読み出しを行う際には、出力ポインタが示すアドレスを各データ転送制御部30a〜30dにそれぞれ渡す。各データ転送制御部30a〜30dは、プリンタコントローラ14から渡されたこの出力ポインタが示すアドレスを先頭アドレスとして、各メモリ31a〜31dからのデータの読み出しを開始する。
プリンタコントローラ14は、入力ポインタを、1ページ分の書き込みが終了したら1ページ分アドレスを移動させて更新する。同様に、出力ポインタを、1ページ分の読み出しが終了したら1ページ分アドレスを移動させて更新する。各メモリ31a〜31dの書き込み開始位置および読み出し開始位置がプリンタコントローラ14側で一元的に管理されるため、ページ単位での各メモリ31a〜31dの記憶領域の確保および解放が容易となる。
仮想メモリ60は、例えば、各メモリ31a〜31dのメモリ空間を示す情報であるアドレスマップとして構成される。図13は、仮想メモリ60のより具体的な例を示す。一例として、図13(a)に示されるように、実メモリである各メモリ31a〜31dは、それぞれ、利用可能な領域の先頭位置を示すTopアドレスが「0000h」、利用可能な領域の終端位置を示すBottomアドレスが「FFFFh」であるものとする。アドレスは、TopアドレスからBottomアドレスの方向に向けて、所定単位毎に増加される。なお、アドレス表記において「h」は、直前の文字列が16進表記の数値であることを示す。
仮想メモリ60のTopアドレスおよびBottomアドレスは、それぞれ、各メモリ31a〜31dのTopアドレスおよびBottomアドレスと同一の、「0000h」および「FFFFh」に設定される。また、実メモリである各メモリ31a〜31dそれぞれの入力ポインタ(IN)および出力ポインタ(OUT)は、仮想メモリ60上の入力ポインタおよび出力ポインタと同じアドレスとして管理される。図13(a)の例では、出力ポインタがアドレス「3000h」、入力ポインタがアドレス「A000h」とされている。
図13(b)は、仮想メモリ60の実体となるアドレスマップ60aの例を示す。アドレスマップ60aは、例えば、TopアドレスおよびBottomアドレスと、ある時点での出力ポインタおよび入力ポインタそれぞれのアドレスとによる、アドレスの集合体として構成される。また、図13(b)の例では、データを書き込む書き込みアドレス(write)が、アドレスマップ60aにさらに含められている。
入力ポインタおよび出力ポインタのアドレスは、それぞれ、1ページ分の書き込みの終了時、ならびに、1ページ分の読み出しの終了時に、1ページ分のアドレスが増加されて更新される。また、書き込みアドレスは、各メモリ30a〜30dに対するデータの書き込み時に、データの書き込み単位毎に増加され、各メモリ30a〜30dに対するデータの書き込み位置が示される。これら入力ポインタ、出力ポインタおよび書き込みアドレスは、更新された結果、値がBottomアドレスを超える場合、Topアドレスから巡回的にアドレスが設定される。
このアドレスマップ60aは、例えばプリンタコントローラ14内の制御部23において構築される。より具体的には、例えばCPU321によりRAM323上に各値を記憶させることで構築される。TopアドレスおよびBottomアドレスは、例えば予めROM324に記憶しておくことができる。また、プリンタ装置13の起動時の初期化処理時などに、制御部23が制御信号送受信部21を介して各データ転送制御部30a〜30dと通信を行い、各メモリ31a〜31dのTopアドレスおよびBottomアドレスを取得して、アドレスマップ60aを生成することもできる。これに限らず、プリンタコントローラ14が有するRAM323上に実際にメモリ空間を確保して、仮想メモリ60を構築してもよい。
図14を用いて、仮想メモリ60上での入力ポインタおよび出力ポインタの制御について説明する。なお、図14では、図の上側から下側に向けてアドレスが増加するものとする。図14(a)に例示されるように、仮想メモリ60では、初期状態において、入力ポインタおよび出力ポインタが共にアドレスP0を示している。
例えば図8のSEQ101において、上位装置10からプリンタコントローラ14に対して1ページ目のデータ転送が要求されると、各メモリ31a〜31dに対し、仮想メモリ60上の入力ポインタが示すアドレスP0から、当該1ページ目の印刷画像データが書き込まれる。1ページ目の全色の印刷画像データの転送が終了されたと判定されたら、プリンタコントローラ14は、仮想メモリ60の入力ポインタをアドレスP0から1ページ分移動させてアドレスP1として入力ポインタの更新を行い、次の1ページ分の印刷画像データを転送する転送先のアドレスを指定する。図8の例では、SEQ111dで1ページ目の色Kの印刷画像データの転送終了がプリンタコントローラ14に通知されると、プリンタコントローラ14は、1ページ目の全色の印刷画像データの転送が終了したと判定する。
なお、ここでは、1ページ目の全色の印刷画像データの転送が終了した場合に、入力ポインタの更新を行うように説明したが、これはこの例に限定されない。例えば、1ページ目の各色の印刷画像データの転送終了毎に、それぞれ入力ポインタの更新を行ってもよい。
2ページ目の印刷画像データは、仮想メモリ60上の入力ポインタが示すアドレスP1を転送先アドレスとして、各メモリ31a〜31dに対して書き込まれる。そして、例えば図8のSEQ115において、2ページ目の全色の印刷画像データの転送が終了し、且つ次のページのデータ転送が要求されている場合、プリンタコントローラ14は、入力ポインタをさらにアドレスP1から1ページ分移動させてアドレスP2として、入力ポインタの更新を行い、次の1ページ分の印刷画像データの転送先アドレスを指定する(図14(b)参照)。
また、1ページ目の全色の印刷が終了すると、図14(c)に例示されるように、プリンタコントローラ14は、出力ポインタの位置をアドレスP0から1ページ分移動させてアドレスP1として、出力ポインタの更新を行い、次の印刷開始位置を2ページ目の先頭に指定する。図8の例では、SEQ120dにおいて、1ページ目の色Kの印刷が終了すると、プリンタコントローラ14は、当該1ページ目の全色の印刷が終了したと判定する。
なお、ここでは、1ページ目の全色の印刷が終了した場合に、出力ポインタの更新を行うように説明したが、これはこの例に限定されない。例えば、1ページの各色の印刷画像ーによる印刷が終了する毎に、それぞれ出力ポインタの更新を行ってもよい。
1ページ分の全色の印刷が終了すると、出力ポインタの移動と共に、プリンタコントローラ14は、各データ転送制御部30a〜30dに対し、各メモリ31a〜31dの印刷が終了した印刷画像データが書き込まれている領域をゼロクリアするように指示を出す。この指示に従い、各データ転送制御部30a〜30dは、各メモリ31a〜31dの印刷が終了した領域(例えば1ページ目、仮想メモリ60上でアドレスP0〜P1として指定される領域)を値「0」で埋め尽くし、当該領域のゼロクリアを実行する。このように、各メモリ31a〜31dにおける印刷が終了した領域をゼロクリアすることで、後続する印刷における誤印刷を防ぐことができる。
上述では、各メモリ31a〜31dに対してゼロクリアする領域を、印刷が終了した印刷画像データが書き込まれた領域としているが、これはこの例に限定されない。例えば、各メモリ31a〜31dに対してゼロクリアする領域を、排紙が終了した印刷画像データが書き込まれた領域とすれば、各データ転送制御部30a〜30dのメモリ31a〜31dそれぞれには、排紙される前のデータが保存されることになる。したがって、例えば印刷用紙201のジャムなどの発生などによりページの再印刷が必要になっても、上位装置10からの印刷画像データの再送信を不要とすることができる。
また、上述では、各メモリ31a〜31dのゼロクリアを1ページ分の印刷が終了した時点としているが、これはこの例に限定されない。すなわち、各メモリ31a〜31dのゼロクリアは、これから印刷を行うページの印刷画像データが上位装置10から転送され各メモリ31a〜31dに書き込まれるまでの間に実行されればよい。この場合、出力ポインタは、1ページ分の印刷が終了した時点で予め移動させておいてもよいし、ゼロクリアを行う時点で移動させてもよい。また、ゼロクリアは、各メモリ31a〜31dで略同時に行ってもよいし、メモリ31a〜31dのうち印刷画像データが転送されるメモリから順次行ってもよい。
次に2ページ目のデータ転送が終了すると、プリンタコントローラ14は、図14(d)に例示されるように、仮想メモリ60上の入力ポインタの位置をアドレスP2から1ページ分移動させてアドレスP3として、入力ポインタの更新を行い、3ページ目のデータの転送先アドレスを指定する。
このように、本第1の実施形態では、1ページ分のデータ転送の終了時に、仮想メモリ60上で印刷画像データの転送先アドレスを示す入力ポインタを移動させ、各色の1ページ分の印刷の終了時に、仮想メモリ60上で印刷画像データの読み出しの開始位置のアドレスを示す出力ポインタを移動させるようにしている。そして、メモリ31a〜31dに対する印刷画像データの書き込みおよび読み出しを、仮想メモリ60上の入力ポインタおよび出力ポインタが示すアドレスに従い行っている。そのため、プリンタコントローラ14は、各メモリ31a〜31dの状態を容易に把握することが可能となり、それに伴い、1ページの印刷において、全色の印刷が終了したか否かを容易に判定することができる。
なお、1ページの画像データの書き込みおよび読み出しは、同じタイミング(速度)で発生するとは限らない。すなわち、高速で印刷を行おうとする場合、印刷画像データをバッファリングしておくことで連続印刷を保証しようとすることが多い。そのため、印刷画像データの各メモリ30a〜30dに対するアクセスは、読み出しの速度よりも書き込みの速度の方が速くできるように制御することが好ましい。この場合、各メモリ30a〜30dには、1ページ分以上の印刷画像データが格納されることになり、入力ポインタと出力ポインタとのアドレスの差分は、1ページ分以上のページサイズとなる。
また、入力ポインタと出力ポインタとのアドレスの差分は、上位装置10における印刷画像データの展開速度(RIP処理の速度)に影響される。すなわち、印刷画像データの展開速度は、印刷画像データの内容に依存するので、入力ポインタの変化速度は、印刷画像データの内容に依存することになる。一方、出力ポインタの変化速度は、画像出力部50における印刷速度(各ヘッド56a〜56dへのデータの出力速度)に依存し、一定となる。なお、各メモリ30a〜30dに対する印刷画像データの書き込み速度が画像出力部50における印刷速度よりも遅い場合は、入力ポインタと出力ポインタとのアドレスの差分が0となる。
(転送管理テーブル)
次に、本第1の実施形態による転送管理テーブルについて説明する。この転送管理テーブルは、データ転送制御部30a〜30dによるデータ転送処理や、画像出力部50における印刷処理を管理するために用いられる。プリンタコントローラ14において、制御部23は、上位装置10から送信された印刷ジョブ、用紙情報、ならびに、図7を用いて説明した(3)印刷条件を示す情報などに基づきこの転送管理テーブルを作成して保持する。具体的には、CPU321が転送管理テーブルを作成して、RAM323に記憶する。
また、制御部23は、各データ転送制御部30a〜30dに対してデータ転送の開始要求や印刷指示などを行う際に、転送管理テーブルの情報のうち必要な情報を、各データ転送制御部30a〜30dに保持させる。例えば、制御部23は、当該情報を制御信号送受信部21からエンジンI/F制御線40a〜40dを介して各データ転送制御部30a〜30dに対して送信し、これら各データ転送制御部30a〜30dが有するレジスタなどの記憶手段に書き込む。
データ転送制御部30aを例にとって、より具体的な例を説明する。制御部23は、転送管理テーブルの情報のうち必要な情報を、制御信号送受信部21からエンジンI/F制御線40aを介してデータ転送制御部30aに送信し、データ転送制御部30aにおけるロジック回路32a(データ転送制御部コントローラ135a)が有するレジスタに書き込む。
各データ転送制御部30a〜30dは、このレジスタに書き込まれた転送管理テーブルの情報に従い、上位装置10に対する印刷画像データの転送要求や、画像出力部50に対する印刷指示を出す。なお、転送管理テーブルには、ページを識別するページ識別子が含まれ、各データ転送制御部30a〜30dは、このページ識別子に基づき転送管理テーブルの情報を選択し、データ転送および印刷処理を実行する。
図15は、本第1の実施形態に適用される転送管理テーブルの一例を示す。転送管理テーブルは、C、M、Y、K各色に共通の情報と、各色毎の情報とを含む。また、各色共通の情報および各色毎の情報は、それぞれ、上位装置10からの印刷画像データの転送のために用いるデータ転送用の情報と、画像出力部50に対する印刷指示に関する情報である印刷用の情報とを含む。なお、転送管理テーブルに含まれる各情報は、テーブル形式で管理されるのに限られず、他のデータ管理形式で管理されるようにしてもよい。
本第1の実施形態による各色共通の情報について説明する。各色共通の情報において、データ転送用および印刷用以外の情報として、ページ識別子PBIDおよび1ページ当たりのデータ数が含まれる。ページ識別子PBIDは、印刷ページを識別するためのページ識別子であり、当該転送管理テーブルは、このページ識別子PBIDにより識別される。1ページ当たりのデータ数は、ページ識別子PBIDで識別されるページに用いられる色数であり、例えばモノクロの場合は値が「1」、フルカラーの場合は値が「4」とされる。
本第1の実施形態に適用される各色共通の情報におけるデータ転送用の情報は、データ転送元アドレス、データ格納先アドレスおよびデータ転送サイズを含む。データ転送元アドレスは、上位装置10においてページ識別子PBIDで示されるページの印刷画像データが格納されるアドレスを示す。データ転送元アドレスは、例えばラスタ(ライン)単位で印刷画像データを指定する。
なお、本第1の実施形態の場合、各色の印刷画像データに対し、同一のアドレスが転送元アドレスとして用られることになる。一例として、上位装置10において、図2−2に示される記憶部122に対して、各色の印刷画像データをそれぞれ格納する。より具体的には、例えば、図2−1に示されるRAM103に対し、各データ線11a〜11dまたは各色で識別されるアドレスに、各色の印刷画像データをそれぞれ格納する。
データ格納先アドレスは、上述した入力ポインタが示すアドレスである。したがって、入力ポインタが更新される度に、データ格納先アドレスも更新される。データ転送サイズは、データ転送制御部30a〜30dの要求により転送される印刷画像データのデータサイズを示し、例えばページ識別子PBIDで示されるページの印刷画像データのデータサイズである。
データ転送サイズは、印刷画像データのサイズを所定単位(例えばバイト単位)で揃えるためのバウンダリ調整サイズを含む。1ページが印刷される際には、各メモリ31a〜31dに対して、このデータ転送サイズで示されるデータサイズの印刷画像データが格納されることになる。例えば、図7を用いて説明した、(3)印刷条件を示す情報中の「印刷データサイズ」にバウンダリ調整サイズを加えた値が、このデータ転送サイズになる。
本第1の実施形態に適用される各色共通の情報における印刷用の情報について説明する。印刷用の情報は、印刷を行う印刷画像データの情報として解像度および階調を含み、印刷対象に関する情報として用紙送り長、用紙幅、印刷面(表/裏)、印刷不可領域(上/下/左/右)および画像情報を含む。画像情報は、ビットマップ印刷位置Xおよびビットマップ印刷位置Y、ならびに、X方向有効サイズおよびY方向有効サイズを含む。
印刷を行う印刷画像データの情報において、解像度は、主走査および副走査方向それぞれの印刷解像度を示す。また、階調は、1画素当たりのビット数を示す。
印刷対象に関する情報について、図16(a)および図16(b)を用いて説明する。図16(a)は、印刷用紙201に対するページ領域202の一例を示す。図16(b)は、印刷画像データによる有効な印刷領域204の一例を示す。用紙送り長は、印刷用紙201の送り方向における1ページ分の長さをドット数で示し、用紙幅は、印刷用紙201の幅方向の長さをドット数で示す。印刷面は、当該ページが印刷用紙201の表面および裏面の何れに印刷されるかを示す。
印刷不可領域上、下、左、右は、印刷を禁止する印刷不可領域203を、ページ領域202の上端(用紙送り方向の先頭)、下端(用紙送り方向の後端)、左端(用紙幅方向の用紙送り方向に向けて左端)、右端(用紙幅方向の用紙送り方向に向けて右端)それぞれからのドット数で示す。
画像情報のうち、ビットマップ印刷位置XおよびYは、ページ領域202の左上(用紙送り方向の先頭、且つ、用紙幅方向の左端)を原点とした場合の、印刷開始位置のアドレス(座標)をドット数で示す。また、画像情報のうち、X方向有効サイズは、X方向(用紙幅方向)のバウンダリ調整領域205を含まないサイズをドット数で示す。バウンダリ調整領域205は、1ラスタデータのデータサイズが所定単位(例えばバイト単位)以下の端数を含む場合に、データサイズを所定単位に揃えるために設けられる。また、Y方向有効サイズがY方向(用紙送り方向)のサイズをドット数で示す。すなわち、X方向有効サイズは、1のラスタデータにより印刷される有効なサイズを示し、Y方向有効サイズは、X方向有効サイズで印刷されるラスタ数(ライン数)を示す。
すなわち、ビットマップ印刷位置XおよびYを左上とし、X方向有効サイズおよびY方向有効サイズで示される領域が、印刷領域204となる。また、印刷領域204のうち、印刷不可領域203と重なる領域は、印刷されないことになる。
本第1の実施形態による各色毎の情報について説明する。各色毎の情報において、データ転送用および印刷用以外の情報として、C、M、Y、K各色のうち何れの印刷色に関する情報が記述されるかを示すColor識別子が含まれる。各色毎の情報は、構成が共通するので、以下では、Color識別子が「シアン」の情報について説明する。転送管理テーブルには、各色毎の情報がC、M、Y、K各色についてそれぞれ含まれる。
本第1の実施形態に適用される各色毎の情報におけるデータ転送用の情報は、データ転送要否を含む。データ転送要否は、当該印刷色の印刷画像データの転送の要否を示す。例えば、白紙すなわち印刷を行わない場合は、C、M、Y、Kの全色について、データ転送要否を「否」とする。また、Color(Cyan、Magenta、Yellow、Black)で指示される色以外は、データ転送要否を「否」に設定する。
本第1の実施形態に適用される各色毎の情報における印刷用の情報は、印刷要否を含む。印刷要否は、当該印刷色の印刷画像データの印刷の要否を示す。例えば、白紙すなわち印刷を行わない場合は、C、M、Y、Kの全色について、印刷要否を「否」とする。また、Color識別子で指示される色以外は、印刷要否を「否」に設定する。
(メモリ制御処理)
次に、本第1の実施形態によるメモリ31a〜31dの制御処理について、図17〜図21を用いて説明する。図17は、プリンタコントローラ14が上位装置10からデータを受信した場合の一例の処理を示す。この図17のフローチャートによる処理は、例えば、図8のSEQ101やSEQ102で、プリンタコントローラ14において、制御部23により、上位装置10からのページの印刷ジョブの受信をきっかけに起動される。なお、図17のフローチャートにおける各処理は、プリンタコントローラ14内の制御部23の制御により実行される。
プリンタコントローラ14は、上位装置10から印刷ジョブを受信した際に、受信した印刷ジョブおよび図8のSEQ100で上位装置10から受信した用紙情報、ならびに、図7を用いて説明した(3)印刷条件を示す情報などに基づき、上述した転送管理テーブルを作成する(ステップS200)。そして、図17のステップS201で、プリンタコントローラ14は、仮想メモリ60をチェックして各メモリ31a〜31dの空き容量を取得する。
図18および図19を用いて、仮想メモリ60による各メモリ31a〜31dの空き容量のチェックについて説明する。なお、以下では、「仮想メモリ60による各メモリ31a〜31dの空き容量」を、「仮想メモリ60上での空き容量」、または、単に「空き容量」と記述する。上位装置10から転送される、1ページ分の印刷画像データのデータサイズは、図18に例示されるように、印刷領域204のデータサイズとバウンダリ調整領域205のデータサイズとを合計したものになる。
一方、仮想メモリ60上での空き容量は、入力ポインタの示すアドレスPiと、出力ポインタの示すアドレスPoとの差分に基づき計算することができる。図19を用いて、仮想メモリ60上での空き容量を計算する方法について、概略的に説明する。なお、図19(a)〜図19(d)において、仮想メモリ60のアドレスは図の上側から下側に向けて増加し、印刷画像データが書き込まれる領域は、斜線を付して示している。
ここで、仮想メモリ60上での入力ポインタと出力ポインタとの関係は、(A)入力ポインタのアドレスPiが出力ポインタのアドレスPoより大きい場合(図19(a))と、(B)出力ポインタのアドレスPoが入力ポインタのアドレスPiより大きい場合(図19(b))と、(C)入力ポインタのアドレスPiと出力ポインタのアドレスPoとが等しい場合(図19(c)および図19(d))との3通りがある。仮想メモリ60での空き容量DEMPは、入力ポインタのアドレスPiと出力ポインタのアドレスPoとの差分に基づき求めることができる。
(A)の、入力ポインタのアドレスPiが出力ポインタのアドレスPoより大きい場合(Pi>Po)は、図19(a)に例示されるように、出力ポインタのアドレスPoから入力ポインタのアドレスPiの間の領域に印刷画像データが格納されていることが示される。この場合、空き容量DEMPは、1アドレス当たりのデータサイズをW、仮想メモリ60の容量をDFULLとすると、下記の式(1)で求められる。
DEMP=DFULL−(Pi−Po)×W …(1)
(B)の、出力ポインタのアドレスPoが入力ポインタのアドレスPiより大きい場合(Po>Pi)は、図19(b)に例示されるように、出力ポインタのアドレスPoから仮想メモリ60のBottomアドレスの間の領域と、仮想メモリ60のTopアドレスから入力ポインタのアドレスPiの間の領域とに印刷画像データが格納されることが示される。この場合、空き容量DEMPは、下記の式(2)で求められる。なお、(B)の場合には、TopアドレスとBottomアドレスとが接続され、リングバッファ的に読み出しが制御される。
DEMP=(Po−Pi)×W …(2)
(C)の、入力ポインタのアドレスPiと出力ポインタのアドレスPoとが等しい場合(Pi=Po)は、仮想メモリ60が空を示している場合(図19(c))と、仮想メモリ60にフルに印刷画像データが格納されていることを示している場合(図19(d))との2通りが考えられる。印刷が終了したか否か、ならびに、印刷が開始したか否かに基づき、仮想メモリ60が空およびフルの何れの状態を示しているかを判定できる。これに限らず、プリンタコントローラ14が仮想メモリ60上の入力ポインタおよび出力ポインタの動きを監視し、フル状態になった場合にフラグをセットすることも考えられる。
説明を図17のフローチャートに戻し、ステップS201で仮想メモリ60での空き容量が算出されたら、次のステップS202で、プリンタコントローラ14は、転送管理テーブルのデータ転送サイズに基づき、算出された仮想メモリ60での空き容量に対して1ページ分の印刷画像データ(この場合は1色分の印刷画像データ)を格納可能か否かを判定する。若し、格納可能ではないと判定されたら、この図17のフローチャートの処理を抜ける。この場合、例えば、プリンタコントローラ14は、印刷終了の判定がなされたら印刷画像データの転送を要求することが考えられる。
一方、プリンタコントローラ14は、ステップS202で1ページ分の印刷画像データが格納可能であると判定したら、処理をステップS203に移行させ、前ページの印刷画像データの転送が終了したか否かを判定する。若し、終了していないと判定されたら、この図17のフローチャートの処理を抜ける。この場合、転送中の印刷画像データの転送が終了したら、次ページの印刷画像データの転送を要求することが考えられる。一方、終了していると判定したら、処理がステップS204に移行される。
ステップS204で、プリンタコントローラ14は、各データ転送制御部30a〜30dに対して、転送管理テーブルにおいてページ識別子PBIDで示される、各色の印刷画像データの転送を開始するように要求する。これは、例えば、ページ識別子PBIDが1ページ目を示していれば、図8のシーケンスにおけるSEQ110a〜110d、ならびに、図10−1のシーケンスにおけるSEQ208、SEQ212、SEQ216およびSEQ220の処理に対応する。そして、処理がステップS205に移行され、プリンタコントローラ14は、仮想メモリ60上の入力ポインタの位置を1ページ分進めて、入力ポインタの更新を行う。入力ポインタが更新されると、処理は図17のフローチャートを抜ける。
なお、ステップS204で、プリンタコントローラ14から各データ転送制御部30a〜30dに対して印刷画像データの転送開始が要求されると、各データ転送制御部30a〜30dから上位装置10に対して、印刷画像データの転送が要求される。これは、例えば、ページ識別子PBIDが1ページ目を示している場合、図10−1のシーケンスにおいてSEQ209A、SEQ213A、SEQ217AおよびSEQ221Aの処理に対応する。
このとき、各データ転送制御部30a〜30dのそれぞれは、例えば、図15の転送管理テーブルに示される、少なくともページ識別子PBIDとデータ転送元アドレスとをデータ転送開始要求に付加して、上位装置10に送信する。これらページ識別子PBIDおよびデータ転送元アドレスは、上述したように、図9−2のステップS126で、プリンタコントローラ14において転送管理テーブルから抽出され、各データ転送制御部30a〜30dに送信されたものである。
上位装置10は、各データ転送制御部30a〜30dから送信されたこれらページ識別子PBIDとデータ転送元アドレスとに基づき、記憶部122から各色の印刷画像データを読み出して、データ線11a〜11dをそれぞれ介して、各データ転送制御部30a〜30dに転送する。ここで、ページ識別子PBIDおよびデータ転送元アドレスは、プリンタコントローラ14が印刷画像データの転送開始要求に対して付加して、各データ転送制御部30a〜30dに送信することが考えられる。
図20は、転送終了時の一例の処理を示すフローチャートである。この図20のフローチャートによる処理は、例えば、図8のSEQ111a〜111dで、プリンタコントローラ14において、データ転送制御部30a〜30dからのデータ転送終了の通知の受信をきっかけに起動され、プリンタコントローラ14により実行される。
先ず、ステップS210で、上位装置10からデータ転送制御部30a〜30dに対する、4色全て、すなわち、C、M、Y、K各色の1ページ分の印刷画像データの転送が終了したか否かが判定される。例えば、プリンタコントローラ14は、図8のSEQ111a〜SEQ111dで各データ転送制御部30a〜30dから印刷画像データの転送終了通知を受信する毎にフラグをセットし、4色分のフラグがセットされたら、各色の1ページ分の印刷画像データの転送が終了したと判定する。若し、終了していないと判定されたら、処理はステップS213に移行される。
一方、各色の1ページ分の印刷画像データの転送が終了したと判定したら、プリンタコントローラ14は、処理をステップS211に移行させ、現在印刷中であるか否かを判定する。例えば、プリンタコントローラ14は、図8のSEQ114などで印刷指示を各データ転送制御部30a〜30dに対して出した後に、SEQ120a〜120dで対応する印刷終了通知を受信していなければ、印刷中であると判定する。若し、印刷中であると判定したら、処理はステップS213に移行される。一方、現在印刷中ではないと判定したら、プリンタコントローラ14は、処理をステップS212に移行させ、各データ転送制御部30a〜30dに対してページ識別子PBIDで示されるページの印刷指示を出す(例えば図8のSEQ114)。
次のステップS213で、プリンタコントローラ14は、上位装置10からデータ転送制御部30a〜30dに対して転送される次の印刷画像データが有るか否かが判定される。例えば、ステップS212で印刷指示が出された印刷画像データが1ページ目の印刷画像データであって、ステップS213に処理が移行した時点で、図8のSEQ102により次の2ページ目の印刷ジョブが受信されていれば、次に転送される印刷画像データがあると判定される。
若し、次に転送される印刷画像データが無いと判定されたら、この図20のフローチャートによる処理を抜ける。一方、次に転送される印刷画像データがあると判定したら、プリンタコントローラ14は、処理をステップS214に移行させる。ステップS214の処理は、図17に示したフローチャートにおけるステップS201以降の処理と同様であり、メモリの空き状態を確認後、空きがあれば、各データ転送制御部30a〜30dに対して、次の印刷画像データの転送を開始するように要求し、図20のフローチャートによる処理を抜ける。
図21は、印刷終了時の一例の処理を示すフローチャートである。この図21のフローチャートによる処理は、例えば、図8のSEQ120a〜120dやSEQ122a〜122dで、プリンタコントローラ14において、データ転送制御部30a〜30dからの印刷終了の通知の受信をきっかけに起動され、プリンタコントローラ14により実行される。
先ず、ステップS220で、1ページ分の印刷画像データについて、4色全ての印刷が終了したか否かが判定される。例えば、プリンタコントローラ14は、図8のSEQ120a〜120dで各データ転送制御部30a〜30dから印刷終了通知を受信する毎にフラグをセットし、4色分のフラグがセットされたら、各色の1ページ分の印刷画像データの印刷が終了したと判定する。これに限らず、例えば印刷が色C、色M、色Y、色Kの順に行われる場合、最後の色Kの印刷終了通知を受信することで、印刷終了を判定してもよい。若し、4色全ての印刷が終了していないと判定されたら、処理はステップS222に移行される。
一方、各色の1ページ分の印刷画像データの印刷が終了したと判定されたら、処理はステップS221に移行される。ステップS221で、プリンタコントローラ14は、仮想メモリ60上で出力ポインタの位置を1ページ分進めて、出力ポインタの更新を行う。出力ポインタが更新されると、処理がステップS222に移行される。
ステップS222で、プリンタコントローラ14は、次のページの印刷があるか否かを判定する。例えば、プリンタコントローラ14は、データ転送制御部30a〜30dからのデータ転送終了通知を受信しているが、印刷終了通知を受信していないページがある場合に、次ページの印刷があると判定することができる。若し、次ページの印刷がないと判定したら、この図21のフローチャートによる処理を抜ける。一方、次ページの印刷があると判定したら、プリンタコントローラ14は、処理をステップS223に移行させ、各データ転送制御部30a〜30dに対して当該次ページを示すページ識別子PBIDを指定して当該次ページの印刷を開始するように指示し、この図21のフローチャートによる処理を抜ける。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。本第2の実施形態は、各データ転送制御部30a〜30dがそれぞれ有するメモリ31a〜31dの管理を、プリンタコントローラ14側で一元的に行う場合において、印刷画像データがC、M、Y、K各色で異なるサイズのビットマップデータによって、上位装置10からプリンタ装置13に転送される場合の例である。なお、以下において、上述した第1の実施形態と異なる部分を中心に説明する。
図22を用いて、各色で異なるサイズのビットマップデータを転送する場合の例について説明する。例えば、図22(a)に例示されるように、1ページの印刷領域75内に色Cを用いて印刷される画像70と、色Mを用いて印刷される画像71と、色Yを用いて印刷される画像72と、色Kを用いて印刷される画像73とが配置されている場合について考える。なお、これら画像70〜73は、互いに大きさが異なるものとする。
この場合、例えば色Cの印刷画像データとして、画像70を含む最小限の矩形領域の印刷画像データを上位装置10側で作成し、データ転送制御部30aに対して転送する。他の色M、Y、Kについても同様に、それぞれ画像71、72および73を含む最小限の矩形領域の印刷画像データを上位装置10側で作成し、データ転送制御部30b、30cおよび30dにそれぞれ転送する。これにより、各色毎に1ページ全域分の印刷画像データを転送する場合に比べて、データ転送量を削減することができる。
さらにこの場合において、各色の画像70〜73をそれぞれ含む最小限の矩形領域の各印刷画像データの所定位置への配置を、メモリ31a〜31d上で行う第1の方法と、印刷の際に行う第2の方法とがある。なお、以下では、「各色の画像70〜73をそれぞれ含む最小限の矩形領域の各印刷画像データ」を、適宜、「各色の画像70〜73それぞれの印刷画像データ」などと記述する。
第1の方法は、図22(b)に例示されるように、各画像70〜73それぞれの印刷画像データを、当該各画像70〜73の印刷位置に対応するメモリ31a〜31dのアドレスに書き込む。なお、図22(b)では、説明のため、メモリ31a〜31dにおける1ページ分の記憶領域のみを示している。この第1の方法によれば、メモリ31a〜31dは、1ページ分の領域が共通であるため、プリンタコントローラ14側では、メモリ31a〜31dに共通の1の仮想メモリ60を用意すればよい。
この第1の方法において、転送管理テーブルに対して、各画像70〜73それぞれの印刷画像データをメモリ31a〜31dに対して書き込む際のアドレス情報を記述する。また、上述したように、メモリ31a〜31dは、各色の1ページ分の印刷が終了し出力ポインタが更新された後、印刷が終了した領域がゼロクリアされる。そのため、各データ転送制御部30a〜30dは、各画像70〜73それぞれの印刷画像データをメモリ31a〜31dの指定アドレスに対して上書きするだけでよい。
第2の方法は、図22(c)に例示されるように、各画像70〜73それぞれの印刷画像データを、そのままメモリ31a〜31dにそれぞれ書き込む。そして、各メモリ31a〜31dから読み出された各画像70〜73それぞれの印刷画像データを、当該各画像70〜73それぞれの所定の配置位置に対して印刷する。この第2の方法によれば、メモリ31a〜31dのページ当たりの消費量を削減することができる。
一方、この第2の方法によれば、各画像70〜73それぞれの印刷画像データのサイズが互いに異なる可能性があるので、プリンタコントローラ14側において、メモリ31a〜31dそれぞれについて仮想メモリ60を用意する必要がある。この場合、例えば、図13(b)に示されるアドレスマップ60aにおいて、入力ポインタ(IN)、出力ポインタ(OUT)および書き込みアドレス(write)の組を、(INa、OUTa、writea)、(INb、OUTb、writeb)、…のように、メモリ31a〜31dそれぞれについて設けることが考えられる。それと共に、転送管理テーブルに対して各色の転送情報および印刷情報をそれぞれ記述する必要がある。
図22(c)を用いて、第2の方法についてより具体的に説明する。例えば色Cの画像70に関し、画像70を含む最小限の矩形領域の印刷画像データ70aが、印刷領域75の印刷アドレス70bで示される位置に印刷される。同様に、色M、YおよびKそれぞれの画像71、72および73に関し、画像71、72および73をそれぞれ含む最小限の矩形領域の印刷画像データ71a、72aおよび73aが、印刷領域75の印刷アドレス71b、72bおよび73bで示される位置に印刷される。したがって、転送管理テーブルの情報として、各印刷画像データ70a〜73aについて、それぞれデータサイズと共に座標70b〜73bを示す情報を保持している必要がある。
図23は、本第2の実施形態による転送管理テーブルの一例の構成を示す。なお、以下において、図15を用いて説明した、第1の実施形態による転送管理テーブルと共通する項目については、詳細な説明を省略する。
この第2の実施形態による転送管理テーブルについても、上述の第1の実施形態による転送管理テーブルと同様に、各色に共通の情報と、各色毎の情報とを含む。ここで、第1の実施形態による転送管理テーブルと、第2の実施形態による転送管理テーブルとでは、各色に共通の情報および各色毎の情報で含まれる情報が異なる。
本第2の実施形態による各色共通の情報について説明する。図23に例示されるように、第2の実施形態による転送管理テーブルでは、各色に共通の情報は、ページ識別子PBIDおよび1ページ当たりのデータ数を含むと共に、印刷用の情報として、解像度、階調、用紙送り長、用紙幅および印刷面を含む。また、各色で転送される印刷画像データのサイズが異なるため、各色に共通の情報は、データ転送用の情報を含まない。
本第2の実施形態による各色毎の情報について説明する。各色毎の情報において、Color識別子が含まれると共に、データ転送用の情報と、印刷用の情報とが含まれる。本第2の実施形態に適用される各色毎の情報におけるデータ転送用の情報は、データ転送要否、転送済みフラグ、データ転送元アドレス、データ格納先アドレスおよびデータ転送サイズを含む。これらのうち、転送済みフラグは、プリンタコントローラ14が当該色の印刷画像データの転送終了通知を受信した場合に、ONとされる。プリンタコントローラ14は、この転送済みフラグがONとなった色について、対応する仮想メモリ60の入力ポインタを更新することができる。
本第2の実施形態に適用される各色毎の情報における印刷用の情報は、印刷要否、印刷不可領域上、下、左および右、ならびに、画像情報を含む。また、画像情報は、ビットマップ印刷位置XおよびY、ならびに、Y方向有効サイズおよびX方向有効サイズを含む。
本第2の実施形態において、上述した第1の方法による、各画像70〜73それぞれの印刷画像データのメモリ31a〜31d上への配置を行うためのアドレス指定や、第2の方法による、各画像70〜73それぞれの印刷画像データの印刷アドレスの指定は、例えば、転送管理テーブルに各色毎の印刷用の情報として記述される、ビットマップ印刷位置XおよびYにより行うことができる。
第1の方法による各画像70〜73それぞれの印刷画像データのメモリ31a〜31d上への一例の配置方法について、図24を用いて説明する。ここでは、上述した図22における画像73を例にとって説明する。
画像73は、色Kの画像であって、画像73を含む最小限の矩形領域の印刷画像データ73aは、データ転送制御部30d内のメモリ31dに書き込まれる。プリンタコントローラ14内の、各色共通の仮想メモリ60に設定される出力ポインタが示すアドレスにより、メモリ31dにおける1ページの領域の先頭が規定される。図24に模式的に示されるように、この1ページの領域の先頭のアドレスに基づき、画像73のビットマップ印刷位置XおよびYで示される、印刷上のアドレス73bに対応するメモリ31dのアドレスを求める。そして、求められたこのアドレスを基点として、メモリ31dに対して印刷画像データ73aを書き込む。
第2の方法による各画像70〜73それぞれの印刷画像データのメモリ31a〜31d上への一例の配置方法について、図25を用いて説明する。ここでは、上述した図22における画像73を例にとって説明する。図25(a)は、色Y用の仮想メモリ60の例を示し、図25(b)は、印刷用紙201における実際の印刷領域75の例を示す。
プリンタコントローラ14において、色Y用の仮想メモリ60に対し、転送管理テーブルの、X方向有効サイズ(x1とする)およびY方向有効サイズ(y1とする)から求められるデータサイズsize(=x1×y1)を1ページのデータサイズと見做して、出力ポインタおよび入力ポインタの更新時のアドレス移動量が設定される。メモリ31dにおいて、出力ポインタから、次に印刷を行う画像73の印刷画像データ73aが書き込まれる(図25(b)参照)。
なお、ここでは、説明のため、1ページ分の印刷画像データのみがメモリ31dに書き込まれるものとする。また、図25(a)では、出力ポインタのみを示し、入力ポインタを省略している。
印刷時に、画像出力部50は、メモリ31dから、出力ポインタで示されるアドレスに基づき印刷画像データ73aを読み出して、画像73のビットマップ印刷位置XおよびYにより示される印刷アドレス73bを基点として、印刷画像データ73aによる印刷を行う。データサイズsize分の印刷画像データが読み出されると、出力ポインタがデータサイズsize分移動され、出力ポインタが更新される。
本第2の実施形態において、仮想メモリ60における入力ポインタおよび出力ポインタの管理方法や、上位装置10からのデータ受信時の処理、印刷画像データの転送終了時の処理、印刷終了時の処理などは、上述した第1の実施形態と共通であるので、ここでの説明を省略する。
なお、上述の第1の実施形態および第2の実施形態では、印刷に用いる色が、色C、M、Y、Kの所謂プロセスカラーであるとして説明したが、これはこの例に限定されない。例えば、R(赤色)、G(緑色)およびB(青色)や、金色、銀色、白色などの所謂特色を印刷に用いる場合でも、第1の実施形態および第2の実施形態をそのまま適用することができる。また、色数も4色に限らず、5色以上、または、3色以下を用いた印刷にも、第1の実施形態および第2の実施形態は、そのまま適用できる。