以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
図1は、本発明の実施形態1に係る印刷装置の一例である画像形成装置の構成を説明するブロック図である。ここでは画像形成装置として、読取部による原稿の読み取り、印刷などを実行できる多機能処理装置(MFP:Multi-function peripheral)を例に説明するが、本発明の画像形成装置は印刷機能だけを有する印刷装置であっても良い。
制御部115は、この画像形成装置全体の動作を制御している。制御部115はシステムバス101及び画像バス110を有している。ROM102はブートプログラムを格納しており、装置の電源がオンされるとCPU103は、このブートプログラムを実行して、蓄積メモリ105に格納されているOSやプログラムをRAM104に展開する。そしてCPU103が、RAM104に展開されたプログラムを実行することにより、この装置全体の動作を制御する。またRAM104は、CPU103がプログラムを実行するためのワークメモリを提供しており、画像データを処理する際に、画像データを一時記憶するための画像メモリとしても使用される。蓄積メモリ105は、例えば、ハードディスクやSSDメモリ等の大容量メモリで、読取部112から入力される画像データや各種プログラムなどを記憶する。LAN(ローカルエリアネットワーク)I/F部106は、LANと接続するためのI/F(インターフェース)部で、LANを介して接続された各機器との情報の入出力を行う。IO制御部108は、操作部114とのインターフェース部で、操作部114に表示する画像データを操作部114に出力し、また操作部114からユーザが入力した情報をCPU103に伝える役割をする。操作部114は、タッチパネル機能を備えた表示部やキー等を搭載し、IO制御部108を介して供給されるVGA信号を解釈して表示部に画像や文字等を表示してユーザとのインタフェースを司る。回線I/F部107は広域通信網(WAN)と接続して通信を行う。またIO制御部109は、システムバス101と、画像データを高速で転送する画像バス110とを接続し、システムバス101のデータ構造を変換するバスブリッジである。以上の処理部がシステムバス101上に配置される。
画像バス110は、PCIバスやIEEE1394、PCIExなどの汎用バスで構成される。画像バス110上には、スキャナを備えた読取部112、プリンタ部113、及び画像処理部111が接続されている。IO制御部109は画像データの同期系、非同期系の変換を行う。またプリンタ部113と読取部112の間では、制御部115から発行される、プリンタ部及び読取部の制御動作を実施するための制御命令をやりとりするための通信バスも接続されている。通信バスは、UART(RS232C)や、USBなどの汎用通信プロトコルや、専用の通信プロトコルを用いて実現される。画像処理部111は、入力画像データ及び出力画像データに対し解像度変換、圧縮伸張、2値多値変換、トリミングなどの画像処理を行う。また画像処理部111は、読取部112から画像データを受け取り、その受け取った画像データを、画像バス110、システムバス101を経由してRAM104へ転送する制御も行う。画像処理部111は、それぞれの処理を画像処理ASIC(ハードウェア)及び、それを制御するCPU103上で実行されるソフトウェアによって実現されている。画像処理ASICは、それぞれ、処理するデータの形式、処理内容を設定するためのレジスタを持ち、画像処理部111は、画像処理ASICのレジスタに、CPU103上で実行される制御ソフトウェアから設定を行うことで画像処理を行う。
プリンタ部113は、例えば電子写真方式のプリンタエンジンを有し、エンジン制御部116が、そのプリンタエンジンを制御して、制御部115から受け取った画像データに従って画像を印刷する。エンジン制御部116は、CPU121、ROM122、RAM123、タイマ124を有している。CPU121は、ROM122に記憶されているプログラム実行し、またRAM123をワークメモリとして使用して、このエンジン制御部116を制御している。タイマ124は、CPU121の指示により計時を開始して、CPU121に、その計時した時間を通知する。
図2は、実施形態1に係るMFPのプリンタ部113の概略構成を説明するブロック図である。
光源としての半導体レーザ202から発射されたレーザ光204は、回転しているポリゴンミラー203により反射されることにより感光体ドラム201を走査し、画像データに対応する静電潜像を感光体ドラム201上に形成する。帯電ローラ205は感光体ドラム201の表面を一様に帯電する。現像器206は、感光体ドラム201上に形成された静電潜像をトナーにより現像する。転写ローラ207は、感光体ドラム201上で現像されたトナー像を用紙に転写する。定着ローラ208は、用紙に転写されたトナーを融着して用紙に定着させる。給紙ローラ209は、用紙サイズを識別可能なカセットから用紙を搬送路へ送り込む。手差し給紙ローラ210は、手差し給紙口から用紙を搬送路に送り込む。レジストローラ211は、給紙された用紙の先端を突き当て斜行を補正するとともに、感光体ドラム201への画像データの書き込みと用紙の搬送との同期を取る。レジストセンサ212は、給紙された用紙の先端を検出するとともに、手差し給紙された用紙の搬送方向の長さ測定するのに使用される。排出ローラ213は、画像が定着された用紙を排出する。排紙センサ214は、定着後の用紙が機外に排出されたかを検知する。
また図2では、レジストセンサ212から、転写位置である感光体ドラム201までの距離は実際の距離関係とは異なる。プリンタ部113は、制御部115と接続され、制御部115からの給紙、印刷指示などの制御命令を受信することで印刷動作を行う。プリンタ部113は、給紙指示及び、印刷指示に含まれる、画像サイズの情報に従って、制御部115の画像処理部111から出力される画像データを画像バス110経由して受信する。プリンタ部113は、受信した画像データに応じて、半導体レーザ202の点灯、消灯を制御することによって静電潜像を形成し、現像、転写などのプロセスを経て、用紙上に画像を形成する。
ここではプリンタ部113は、レーザビーム、感光体ドラム、現像機をそれぞれ1つ有するモノクロプリンタとして説明した。これは説明の簡略化のためで、各構成部材を複数使用して構成したプリンタエンジンを有する画像形成装置であっても良い。プリンタ部113は上述したように、図2に示した、ローラやセンサからの情報を用いて印刷を行うための制御を行うためのエンジン制御部116を有する。このエンジン制御部116は、ローラを回転させるためのモータコントローラや、定着ローラの温度制御のためのサーミスタなどを含む。またエンジン制御部116は、前述のプリンタ部113の機構を制御し、制御部115からの給紙指示、印刷指示などの命令に応じて、各構成部を制御し、給紙動作、印刷動作などを制御する。
図3は、実施形態に係るMFPのプログラムにより実現される機能部とエンジン制御部116との間の制御命令のやり取りのシーケンスを説明する図である。
これら機能部は、制御部115のCPU103がRAM104に展開したプログラムを実行することにより実現され、ジョブ制御部301、プリント処理部302を含んでいる。尚、画像処理部111は前述したように、画像処理ASIC(ハードウェア)と、それを制御するCPU103により実行されるソフトウェアによって実現されている。ここではジョブ制御部301、プリント処理部302、画像処理部111は、制御部115で動作するアプリケーションのモジュールで構成されているものとするが、それぞれハードウェアで構成されても良いことは言うまでもない。
いま画像形成装置のユーザによってフリーサイズでコピー処理が指示されると、読取部112により原稿の読み取りが行われた後、ジョブ制御部301から印刷実行指示310がプリント処理部302に発行される。この印刷実行指示310は、原稿に紐づいた画像IDを識別子として発行される。この印刷開始指示を受けたプリント処理部302は、画像処理の開始指示311を画像処理部111に発行し、また給紙指示312をエンジン制御部116に発行する。これにより画像処理部111は、印刷対象の画像データに対してガンマ処理、ハーフトーン化などの処理を行い、画像処理が終了すると、画像処理終了通知313をプリント処理部302に発行する。このときの画像処理時間は、印刷する画像の面積(原稿幅×原稿長さ)に依存する。
エンジン制御部116は、給紙指示312を受けると給紙動作を開始し、給紙動作が終了すると、プリント制御部302に給紙終了通知314を発行する。
プリント処理部302は、印刷対象のページに対する給紙終了通知314及び画像処理終了通知313を受け取ると、印刷開始指示315をエンジン制御部116に発行する。これによりエンジン制御部116は、制御部115に対して画像データの出力同期信号を送信する。この同期信号を受けた制御部115は、画像データをプリンタ部113に出力する。この画像データを受け取ったエンジン制御部116は、その画像データに従って用紙に画像を印刷し、印刷が終了して印刷済の用紙を排出すると排紙通知317をプリント処理部302に発行する。また排紙通知317の他に、必要に応じて、印刷を実行した際に、識別した用紙のサイズを紙サイズ通知316として、プリント処理部302に発行する。以上の処理シーケンスをエンジン制御部116、制御部115の制御アプリケーションが実行することによって印刷処理が実行される。
図4は、図3に示すプリント処理部302とエンジン制御部116との間の制御命令のデータ構造を説明する図である。
図4(A)は、制御命令のデータ構造を示す。この制御命令をエンジン制御部116と制御部115とがやりとりすることにより、上述した各機能部が動作を実行する。制御ID401は制御命令の識別子である。この制御ID401と各種制御命令の種別は、図4(B)に示す通りである。印刷ページID402は、印刷対象のページに対して、一意に割り振られる印刷ページの識別子である。ここでは印刷動作を高速化するために、給紙指示、印刷開始指示、給紙終了通知、排紙通知などの制御命令は、複数ページにわたる制御で発行される。そのため、印刷ページID402により、どのページを印刷する用紙に対する制御命令であるかを識別できるようにしている。紙サイズ403,404は、印刷を行う用紙のサイズ情報である。紙サイズ(X)403は、用紙の搬送方向に垂直な方向の長さであり、紙サイズ(Y)404は、用紙の搬送方向の長さを示す。
実施形態1では、用紙の搬送に要する時間に関係する紙サイズ(Y)404に対する処理について説明する。この紙サイズ(Y)404に設定されるサイズは、1mmを単位として通知されるが、特定の数値(例えば0mmや1000mmなど)は、フリーサイズの印刷指定での用紙サイズとしても使用される。この数値は、エンジン制御部116及び制御部115の双方で前もって決められている数値であってもよく、或いは制御部115とエンジン制御部116との間で動的に決定されても良い。
次に図5を参照して、実施形態1に係るMFPにおける用紙サイズの決定処理を説明する。
図5は、実施形態1に係るMFPのエンジン制御部116による用紙サイズの決定処理を説明するフローチャートである。尚、この処理を実行するプログラムはCPU121がROM122に記憶されているプログラムを実行することにより、このフローチャートで示す処理が達成される。
この処理は前述のプリント処理部302から給紙指示312を受けることにより開始され、まずS501でCPU121は、その給紙指示312に含まれる紙サイズ(Y)404の情報を取得する。ここで取得した紙サイズ(Y)404の情報が、フリーサイズ印刷指定(手差し印刷)のサイズ(例えば0mmや1000mm)かどうか判定し、そうであればS502に進み、そうでないときはS506に進んで通常の給紙動作を行ってS510に進む。
S502でCPU121は、フリーサイズ印刷を示すRAM123のフラグをオンにし、フリーサイズ印刷に応じた給紙動作を行う。即ち、CPU121は、手差し給紙ローラ210を回転させて手差しトレイに置かれた用紙を搬送し、S503でレジストセンサ212の出力がオンになって、その搬送された用紙の先端を検出するまで手差し給紙ローラ210を回転させる。こうしてレジストセンサ212の出力がオンになるとS504に進み、再度、S502でオンしたフラグを基に、フリーサイズ印刷による給紙指示かどうか判定する。ここでフリーサイズ印刷の指示でないと判定するとS506に進むが、フリーサイズ印刷指定であればS505に進む。S505でCPU121は、その搬送された用紙の搬送方向の長さを測定するためにタイマ124による計時を開始する。そしてS507に進みCPU121は、レジストセンサ212が紙無しを検知したか、即ち、レジストセンサ212の出力がオフになったかどうか判定する。オンであればS509に進み、次のページの印刷のための用紙の搬送前処理を実行してS507に進む。この搬送前処理は、次のページに対して給紙指示312が来ていた場合に、先行して用紙を搬送することで、レジストセンサ212の位置まで用紙が到達する時間を短くするための処理である。この搬送前処理を実行することで、次ページの給紙指示312が早く来るほど、前ページに続く給紙処理を高速化することができるため、パフォーマンスが向上する。そしてS507でレジストセンサ212の出力がオフになって紙無しを検知するとS508に進む。S508でCPU121は、その時点でタイマ124が計時した時間と、手差し給紙ローラ210の回転速度に依存する用紙の搬送速度から用紙の搬送方向の長さを求め、それをRAM123に記憶してS510に進む。尚、S508でCPU121は、RAM123に記憶されている前回決定した紙サイズとの差分が所定値以内であれば計測誤差と判断し、RAM123に記憶されている紙サイズを更新しない。尚、RAM123に紙サイズが記憶されていないときは、S508で求めた紙サイズをRAM123に記憶する。
S510でCPU121は、給紙が完了したことを示す給紙終了通知314を制御部115に発行する。次にS511に進みCPU121は、制御部115から次の給紙指示312がきているかどうか判定し、来ていないときは処理を終了するが、次の給紙指示312がきていればS512に進む。S512でCPU121は、紙サイズ通知316の発行可否を判定する。ここでは判定条件は、紙サイズ通知316が一度も発行されていない、またはS508で、前回通知した紙サイズと異なるサイズの情報がRAM123に記憶されたことなどを条件に判定する。ここで紙サイズ通知316の発行が必要と判定し場合はS513に進みCPU121は、制御部115に紙サイズ通知316を発行する。この紙サイズ通知316は、制御ID401に「5」を、紙サイズ(Y)404に、S508で求めた紙サイズをセットした制御命令である。また、この紙サイズを決定する給紙動作を開始した際の給紙指示312で受け取った印刷ページIDを、その紙サイズ通知316の印刷ページID402にセットする。こうして紙サイズ通知316を発行した後、後続のページの処理を行うためS501に戻る。
以上の処理により、エンジン制御部116は、フリーサイズ印刷時、最初の用紙を給送した後、次の用紙への印刷が指示されていると、最初の用紙の用紙サイズを制御部115に通知して印刷及び給紙動作を実行する。また、印刷中の用紙への印刷終了前に後続ページに対する給紙指示が到達していれば、次のページの印刷のための用紙の給紙を速やかに開始できるため、印刷速度を向上することができる。
図6は、実施形態1に係るMFPの操作部114に表示される用紙サイズの設定画面の一例を示す図である。尚、操作部114への画面の表示及び、エンジン制御部116への制御命令の発行などによる印刷動作の実行などの処理は主に制御部115のCPU103がプログラムを実行することによって実現される。
フリーサイズボタン601は、ユーザがフリーサイズ印刷(ここでは手差し印刷)を指示する際に押下する。ユーザ定義ボタン602は、ユーザが特定の用紙サイズを入力するように指示するボタンで、ユーザがこのボタン602を押下すると、図7に示す用紙サイズの入力画面が表示される。定型サイズボタン603は、A3,A4,A5,B4,B5等の定型サイズを指示するボタンである。尚、これらボタンのうち、選択中のボタンが反転表示される。図6では、フリーサイズボタン601が選択された状態にある。OKボタン604は、この画面でユーザの選択を確定するボタンで、キャンセルボタン605は、この画面でユーザの選択をキャンセルして、一つ前の画面に戻すためのボタンである。ここでフリーサイズボタン601が押下された状態であるため、OKボタン604が押下されるとMFPはフリーサイズ印刷モードで動作する。尚、この画面及び図7の画面で設定された用紙サイズと印刷モードは、RAM104に記憶される。
図7は、実施形態1に係る画像形成装置の操作部114に表示される用紙サイズの入力画面の一例を示す図である。
X方向長さ701及びY方向長さ702の指定をテンキー703で入力した後、OKボタン704を押下することにより、任意のサイズの用紙に対して印刷を行うことができる。このユーザ定義サイズの用紙サイズの入力画面は、ユーザが図6の画面でフリーサイズ印刷及び、定型サイズ印刷を指定した場合には表示されない。
以下、実施形態1では、フリーサイズ印刷の説明を、読取部112が原稿を読み取ってプリンタ部113で印刷するコピー動作を例に説明する。しかしながら、LANI/F部106を介してホストコンピュータから受信した画像データに基づいて印刷する場合でも、フリーサイズ印刷の基本的な動作は同じである。ここではユーザは、原稿を読取部112に設置した後、操作部114のスタートキー606(図6)を押下することにより、原稿の読み取り及び印刷処理の開始をMFPに指示する。この時制御部115は、原稿の読み取りの開始に先立って、まず印刷動作モードの指定に従って読み取る原稿の画像サイズを決定する。
図8は、実施形態1に係るMFPでコピー動作を実行する際の読み取り画像サイズの決定処理を説明するフローチャートである。尚、このフローチャートで示す処理は、CPU103が蓄積メモリ105からRAM104に展開したプログラムを実行することにより達成される。
まずS801でCPU103は、ユーザが図6の画面を介して指定してRAM104に記憶されている印刷モードを判定する。実施形態1では、搬送方向に水平であるY方向の用紙の長さが重要であるため、用紙のY方向の長さで説明し、搬送方向に垂直なX方向の長さについては言及しない。S801でCPU103は、フリーサイズ印刷モードが指定されていると判定するとS802に進み、読み取りサイズ(Y)を最大サイズ(所定サイズ)に設定する。ここでの最大サイズは、基本的に、プリンタ部113が印刷可能な最大サイズに応じて決定する。ここでは印刷可能な最大サイズを、例として630mmとする。
一方、S801でCPU103は、定型印刷モードが指定されていると判定するとS803に進み、図6の画面でユーザが選択した定型サイズに従って、予め決められている定型サイズの読み取りサイズ(Y)を設定する。ここで定型サイズに従った読み取りサイズ(Y)は、CPU103が実行するプログラムによって保持されている。またプログラムに保持されていなくても、ROM102に記憶されていてもよい。
またS801でCPU103は、ユーザ定義サイズでの印刷モードが指定されていると判定するとS804に進み、ユーザが指定したサイズを読み取りサイズ(Y)に設定する。ここでユーザが定義したサイズは、図7の画面で、Y方向長さ702に入力した長さ(サイズ)である。
こうして決定した読み取りサイズ(Y)に基づいて、読取部112に原稿の読み取りを指示し、原稿を読み取って得られた画像データを画像バス110経由で受け取る。こうしてCPU103は、その受け取った画像データを画像処理部111により必要な画像処理を施した後、蓄積メモリ105に画像データとして蓄積する。またこのとき、各画像データに属性情報を付与する。
尚、フリーサイズ印刷モードで読み取りサイズ(Y)を最大サイズに設定して画像を読み取って得られた画像データを、例えばA4サイズの用紙に印刷する場合を考えると、原稿を読み取った時の起点と、用紙に印刷するときの起点とは一致している。従って、最大サイズで読み取って得られた画像データのサイズがA4サイズに入る大きさであれば、A4サイズの用紙に問題なく印刷される。
図9は、蓄積メモリ105に記憶された画像データの属性情報を説明する図である。
この属性情報は主に、画像ID901、画像サイズX902、画像サイズY902、カラー情報を含んでいる。画像サイズY903には、図8のS802,S803,S804のいずれかで決定された読み取りサイズYが設定される。また読み取り動作、印刷処理動作にかかわらず、MFPが処理する際に各画像を識別するためのID情報が画像に一意に割り振られ、画像ID901として記憶される。また原稿の読み取り時には、原稿1枚に対して、1つのIDが割り振られ、そのIDがそのまま、この属性情報の画像ID901に設定される。印刷時は、この属性情報の画像ID901と、制御命令の印刷ページID402とを対応付けて印刷制御を行う。実施形態1では、説明の簡略化のため、読取部112が3枚の原稿を読み取り、各原稿の画像をフリーサイズ印刷モードで印刷するものとして説明する。
図10は、実施形態1に係るMFPにおいて、読取部112が3枚の原稿を読み取ったときに蓄積メモリ105に記憶されている画像データの構造を説明する図である。尚、ここで図9と共通する部分は同じ参照番号で示している。
1001は3枚の原稿の画像データを示し、各画像データに1:1で対応する属性データ1002が関連付けて配置されている。例えば、原稿Aの画像データ1001の属性情報では、画像IDが「1」、画像サイズXが「297mm」、画像サイズYが「630mm」として記憶されている。
次に、こうして蓄積メモリ105に記憶されている画像データの印刷処理を、図11〜図15を参照して説明する。
図11は、実施形態1に係るMFPにおいて、印刷する原稿データの1ページに一つ生成する印刷管理情報を説明する図である。
印刷ページID1111は、エンジン制御部116へ制御命令を発行する際に使用する印刷ページの識別情報である。画像ID1112には、読み取り時に付加された画像ID901と同じものが設定される。給紙指示ステータス1113、画像処理ステータス1114、印刷指示ステータス1115はそれぞれ、給紙指示及び、画像処理指示、印刷指示の発行状態及び、シーケンスを管理するためのものである。ここには給紙指示及び、給紙終了通知、印刷開始指示、排紙通知などの制御命令を、エンジン制御部116と制御部115とがやり取りした結果が反映される。印刷画像サイズX1116と印刷画像サイズY1117には、制御命令でやり取りする画像サイズの情報が反映される。
図12は、実施形態1に係るMFPによる印刷処理を説明するフローチャートである。尚、このフローチャートで示す処理は、CPU103が蓄積メモリ105からRAM104に展開したプログラムを実行することにより達成される。この処理は、読取部112が原稿を読み取って、図10に示すように画像データが蓄積メモリ105に格納され、その画像データの印刷指示を行うことにより開始される。
まずS1201でCPU103は、これから印刷する、蓄積メモリ105に記憶されている原稿の枚数を取得する。この原稿の枚数は、原稿の読み取り処理の際に決定されてRAM104に記憶されているため、その枚数を取得する。次にS1202に進みCPU103は、RAM104に処理済みページ数の情報を記憶するための変数ppを設定し、それを「0」に初期化する。以上により、印刷処理のページ数に対する初期化が終了する。次にS1203に進みCPU103は、変数ppの処理済みページ数と原稿の枚数とを比較し、一致するかどうか、即ち、全ページの印刷が終了したかどうかを判定する。S1203で全ページの印刷が終了したと判定した場合は、この処理を終了する。
一方、S1203でCPU103が、全ページの印刷が終了していないと判定するとS1204に進み、例えば図11に示すような印刷管理情報を、図10に示す属性情報1002を参照して生成する。この印刷管理情報は、プリント処理部302が、ジョブ制御部301が発行した印刷実行指示310で通知する画像ID901から、マッチング処理により、必要な情報をコピーして作成される。このときコピーされる主な情報は、属性情報1002として記憶されている画像ID901、画像サイズX902、画像サイズY903であり、それぞれ印刷画像サイズX1116、印刷画像サイズY1117にコピーする。次にS1205に進みCPU103は、エンジン制御部116との制御命令のやり取りに使用する印刷ページIDを生成する。尚、ここで印刷ページID1111と画像ID901は必ずしも同じである必要はない。例えば、1枚の原稿の画像データを複数枚コピーする場合は、一つの画像ID901に対して複数の印刷ページIDが付与される。実施形態1では、1:1で対比可能な設定での動作を説明するが、これは発明の範囲を1:1での対比可能な画像形成に限定するものではない。
こうしてS1205でCPU103は印刷ページIDを生成するとS1206に進み、サイズ更新フラグがオンかどうか判定する。このサイズ更新フラグは、RAM104に確保された変数であり、制御命令の1つである紙サイズ通知の受信に伴って更新される。この紙サイズ通知の受信時の動作は、図15のフローチャートを参照して後述する。S1206でCPU103は、紙サイズ更新フラグがオンでないと判定するとS1207のサイズ更新処理を行わずにS1208に進んで給紙指示を発行する。S1207でCPU103は、生成された印刷管理情報の印刷画像サイズYを、紙サイズ通知で受信した紙サイズで更新してS1208に進む。この通知された紙サイズの情報は、後述する図15の通知サイズ処理でRAM104に記憶された紙サイズを読み出すことで印刷画像サイズY1117を更新する。
S1208でCPU103は、S1204〜S1207で作成された印刷管理情報に基づいて、エンジン制御部116に給紙指示312を発行する。そしてS1209に進みCPU130は、印刷のための画像処理開始311を画像処理部111に指示する。印刷のための画像処理は、印刷する画像サイズの情報を、印刷管理情報の印刷画像サイズX/Yの情報をもとに設定して、画像のサイズを変更する処理などを含む。こうして印刷のための画像処理の開始を通知した後、S1210でCPU103は、画像処理及び給紙動作が完了したかどうかを判定する。ここでは、印刷管理情報から、給紙指示ステータス1113及び、画像処理ステータス1114のフィールドがそれぞれ、給紙処理完了、画像処理完了の状態になっているかどうかにより判定する。そして給紙及び画像処理が終了するとS1211に進みCPU103は、エンジン制御部116に印刷開始指示315を発行する。そして1ページの印刷が終了するとS1212に進み、RAM104に記憶している印刷済のページ数を示す変数ppの値を+1してS1203に進む。
図13は、図12のS1208の給紙指示の発行処理を説明するフローチャートである。
まずS1301でCPU103は、印刷対象のページの印刷ページIDを印刷管理情報から取得する。次にS1302に進みCPU103は、その印刷管理情報から、印刷画像サイズX及び印刷画像サイズYを取得する。そしてS1303に進みCPU103は、エンジン制御部116に送信する給紙指示312の制御命令のデータを作成してRAM104に記憶する。このS1303の時点では、まだエンジン制御部116に制御命令を発行せずにRAM104に保存するだけである。次にS1304に進みCPU103は、エンジン制御部116に制御命令を発行できるかどうか判定する。ここで制御命令が発行可能となるのは、現在、生成済みの印刷管理情報が一つも存在しない先頭ページか、或いは、他の印刷管理情報について、一つ前の印刷ページIDに対して給紙指示312が発行済みかが条件となる。ここで制御命令が発行可能と判定するとS1305に進み、エンジン制御部116に対して給紙指示312を発行する。そしてS1306に進みCPU103は、印刷管理情報の給紙指示ステータス1113を「給紙指示発行済み」へ変更して、この処理を終了する。
こうして給紙指示312をエンジン制御部116に対して発行した後、図12のS1209でCPU103は、印刷のための画像処理の開始を画像処理部111に通知する。このとき画像処理部111は、印刷する画像サイズの情報を、印刷管理情報の印刷画像サイズX/Yの情報をもとに決定して、印刷対象の画像データの処理を行う。
図14は、実施形態1に係る画像処理部111の機能を説明する機能ブロック図である。
画像処理部111は、読取部112から入力した画像データに対して、回転、変倍などの必要な処理をした後、トリミング部1401で、印刷画像サイズX/Yに応じたサイズとなるように画像サイズのトリミングを行う。
次に図15を参照して、図12のS1211の印刷開始指示315の発行処理を説明する。
図15は、図12のS1211で制御部115からエンジン制御部116に対して行われる印刷開始指示の発行処理を説明するフローチャートである。
まずS1501でCPU103は、処理対象ページの印刷ページIDを取得する。次にS1502に進みCPU103は、S1501で取得した印刷ページIDに関して、印刷管理情報から、処理対象ページの印刷ページIDより前の印刷ページIDで印刷開始指示が未発行のものがないかを調べる。ここで未発行のページが無ければS1504に進むが、そうでないときはS1503に進む。S1503でCPU103は、処理対象ページが先頭ページかどうか、即ち、前のページの情報があるかどうか判定し、先頭ページでなければS1502に進むが、先頭ページであればS1504に進む。S1504でCPU103は、エンジン制御部116に送信するための制御命令を作成してRAM104に保存し、その制御命令の制御IDに「3」(印刷開始指示)を設定する。また、紙サイズ(X)と紙サイズ(Y)に、印刷管理情報から、印刷画像サイズX、印刷画像サイズYをコピーする。そしてS1505に進みCPU130は、その生成した制御命令(印刷開始指示)をエンジン制御部116に送信する。そしてS1506に進みCPU103は、印刷指示ステータスを「印刷指示発行済み」に変更して、この処理を終了する。
これにより図12のフローチャートでS1212に進み、印刷処理済のページ数をカウントするカウンタを+1してS1203に進む。こうして印刷対象の画像データの印刷処理を実施することができる。
また、この印刷開始指示を受けたエンジン制御部116は、画像データの同期信号を出力する。この同期信号を受けた制御部115は、印刷管理情報の印刷指示ステータスを「同期信号受信済み」に変更する。ここで複数ページの印刷処理を行う場合、前述した通り、給紙指示、印刷開始指示、給紙終了通知、排紙通知などの制御命令は、複数ページにわたる制御で発行される。従って制御部115とエンジン制御部116は、図16のようなシーケンスで動作する。
図16は、実施形態1に係るMFPのプログラムにより実現される機能部とエンジン制御部116との間の制御命令のやり取りのシーケンスを説明する図である。ここで前述の図4と共通する処理部及び制御部は、同じ番号で示している。ここでは、3枚の原稿の画像データを3枚の用紙に印刷する例で示している。
いま画像形成装置のユーザによってフリーサイズでコピー処理が指示されると、読取部112により原稿の読み取りが行われた後、ジョブ制御部301から1ページ目の画像データの印刷実行指示(画像ID=1)がプリント処理部302に発行される。この印刷実行指示は、原稿に紐づいた画像ID(=1)を識別子として含んでいる。この印刷開始指示を受けたプリント処理部302は1、1ページ目の画像データの画像処理の開始指示1601を画像処理部111に発行し、また、1ページ目の画像データを印刷する1枚目の用紙の給紙指示1602をエンジン制御部116に発行する。これにより画像処理部111は、1ページ目の画像データに対してガンマ処理、ハーフトーン化などの処理を行い、画像処理が終了すると、1ページ目の画像処理終了通知1603をプリント処理部302に発行する。またエンジン制御部116は、1枚目の給紙指示1602を受けると給紙動作を開始し、給紙動作が終了すると、プリント制御部302に、1枚目の用紙の給紙終了通知1604を発行する。
こうして1ページ目の画像データが準備され、1枚目の用紙の給紙が完了すると、プリント処理部302は、1ページ目の画像データの印刷開始指示1605をエンジン制御部116に発行する。これによりエンジン制御部116は、制御部115に対して画像データの同期信号を送信する。この同期信号を受けた制御部115は、その同期信号に同期して画像データをプリンタ部113に出力する。この画像データを受け取ったエンジン制御部116は、その1ページ目の画像データに従って1枚目の用紙に画像を印刷し、印刷が終了し、その印刷済の用紙を排出すると、1枚目の用紙の排紙通知1609をプリント処理部302に発行する。
この1ページ目の印刷時、次に2ページ目の印刷実行指示がジョブ制御部301からプリント処理部302に発行される。これによりプリント処理部302は、2ページ目の画像データの画像処理の開始指示1606を画像処理部111に発行し、またプリント処理部302は、2ページ目の画像データを印刷する2枚目の用紙の給紙指示1607をエンジン制御部116に発行する。そしてエンジン制御部116は、1ページ目を印刷した1枚目の用紙のサイズを検知した結果を、紙サイズ通知1608としてプリント処理部302に発行する。
画像処理部111は、2ページ目の画像データに対して画像処理を行い、画像処理が終了すると、2ページ目の画像処理終了通知1610をプリント処理部302に発行する。またエンジン制御部116は、1ページ目の印刷中に2ページ目の給紙指示1607を受けると2枚目の用紙の給紙動作を開始し、その給紙動作が終了すると、プリント制御部302に、2枚目の用紙の給紙終了通知1611を発行する。以下同様にして、1612〜1619で、2ページ目と3ページ目の画像データが、それぞれ2枚目と3枚目の用紙に印刷される。
図17は、図16でプリント処理部302が、2ページ目の印刷開始指示1612をエンジン制御部116に発行したときの印刷管理情報の一例を示す図である。
この時点では、1ページ目の画像データの印刷が完了していて、2ページ目の画像データの印刷の開始が指示されている。このため、1ページ目の印刷管理情報1701は完結しているため、削除されても良い。また2ページ目の印刷管理情報1702では、1704で示す印刷指示ステータス1115が「発行済み」となっている。これは2ページ目の画像データの印刷開始指示を発行済みであるが、その印刷が完了していないことを示している。また3ページ目の印刷管理情報1703は、給紙指示ステータス1113、画像処理ステータス1114、印刷指示ステータス115は全て「未発行」である。但し、2枚目の用紙の給紙指示1607を発行した後、1ページ目を印刷した用紙のサイズ、即ち、紙サイズ(「紙サイズ(Y)=210.0mm」)が紙サイズ通知1608としてエンジン制御部116から通知されている。このため、3ページ目の印刷管理情報1703では、印刷画像サイズY1117には、この紙サイズ通知1608で通知された1枚目の用紙のサイズ「210.0mm」が格納されている。
この印刷管理情報の作成に関する説明を捕捉する。印刷管理情報の生成直後は、読み取り時に作成された画像データに設定された、画像属性情報の原稿のサイズで、印刷画像サイズX/Yが設定されており、各ステータスは「未発行」である。そして例えば図16の1枚目の用紙の給紙指示1602の時点では、1ページ目の印刷管理情報1701の給紙指示ステータス1113は「給紙指示発行済み」に、画像処理ステータス1114が「画像処理発行済み」となる。そして図16の1ページ目の印刷開始指示1605の時点では、1ページ目の画像データを印刷する用紙の給紙とその画像データの画像処理が終了して1ページ目の印刷開始指示1605が発行されている。従って、この時点での1ページ目の印刷管理情報1701は、給紙指示ステータス1113が「給紙完了」、画像処理ステータス1115が「画像処理完了」、印刷指示ステータス1115が「印刷指示発行済み」となる。以下、同様にして、印刷管理情報が更新され、紙サイズ通知1608を受信すると、図18のフローチャートで示す処理が実行される。そして3ページ目の印刷時に、図12のS1206で紙サイズ更新フラグがオンとなっているため、図12のS1207で、3ページ目の印刷管理情報1703の印刷画像サイズY1117に、その通知されたサイズ(ここでは「210.0mm」)が格納される。
次に、制御部115が、エンジン制御部116から紙サイズ通知を受信したときの処理を図18のフローチャートを参照して説明する。
図18は、実施形態1に係るMFPにおける印刷ページサイズの更新処理を説明するフローチャートである。尚、このフローチャートで示す処理は、CPU103が蓄積メモリ105からRAM104に展開したプログラムを実行することにより達成される。
ここでは、例えば、図16の1608での紙サイズ通知で、紙サイズ(Y)として「210.0mm」が通知されたとする。
まずS1801でCPU103は、RAM104に確保した紙サイズ変数に「210.0mm」を設定する。次にS1802に進みCPU103は、RAM104の紙サイズ更新フラグをオンにして、この処理を終了する。
これにより図16の3ページ目の画像処理開始指示1613で、3ページ目の画像データに対して図12のS1204、S1205の処理が実施される。更に、紙サイズ更新フラグをオンであるためS1207に進み、3ページ目の印刷管理情報の印刷画像サイズY1117を「210.0mm」に変更する。従って図17に示すように、3ページ目の印刷管理情報1703では、印刷画像サイズY1117が「210.0mm」に変更され、3ページ目の給紙動作及び画像処理は、その更新された印刷画像サイズY「210.0mm」に応じて処理される。
これにより、1ページ目と2ページ目の画像データの場合のように、印刷可能な最大サイズである「630mm」で処理する必要がなくなり、その1/3のサイズの画像データを処理することになる。これにより、画像データの処理時間を短くできる。また、これにより、一つのページの印刷に要する時間を短縮でき、印刷のパフォーマンスを向上できる。また排紙通知を受け取ったページの印刷管理情報、例えば図17の1ページ目の印刷管理情報1701は、適宜削除される。
図19は、実施形態1に係る印刷制御と従来の印刷制御とを比較するタイミングチャートである。図19(A)が従来技術による印刷制御を示すタイミングチャート、図19(B)が実施形態1に係る印刷制御のタイミングチャートである。図中、括弧で示す数字は、印刷対象のページ番号を示している。
図19(A)では、2ページ目の画像データの給紙1902及び画像処理1903は、1ページ目の画像データを印刷した用紙のサイズ情報を受け取るのを待って開始している。従って、2ページ目を印刷する用紙の給紙1902及び、2ページ目の画像データに対する画像処理1903は、1ページ目の画像データの印刷が終了してから開始される。このため、2ページ目の画像データの印刷1901の開始が遅くなっている。
これに対して図19(B)に示す実施形態1に係る印刷制御の場合、2ページ目の画像データを印刷するための処理は、1ページ目の画像データを印刷した用紙のサイズ情報を受け取るのを待たない。このため、2ページ目の画像データを印刷する用紙の給紙開始指示1905が、1ページ目の画像データの印刷を待たずに先行して発行される。これにより1ページ目の用紙の給紙終了とともに、2ページ目の画像データを印刷する用紙の給紙1905と画像処理1906が開始される。このようにして、2ページ目の用紙の給紙とその画像処理を先行して実施できるため、2ページ目の印刷1904を開始するまでの時間を早めることができる。
また3ページ目の画像データの印刷時には、紙サイズ通知により通知された、先行用紙の用紙サイズに従って画像処理と印刷処理を実行する。このため、1ページ目と2ページ目のように最大サイズに応じた画像処理と印刷処理を行う場合と比べて、3枚目の用紙の給紙と3ページ目の画像データの処理に要する時間が短くなる。尚、3ページ目以降の画像データの印刷に際しては、先行技術と同じパフォーマンスとなる。
このように、2ページ目の画像データの印刷を開始するまでの時間を短縮しつつ、それ以後のパフォーマンスについては従来技術と同様のパフォーマンスを実現できる。
尚、例として示した図16のシーケンスでは、2ページ目と3ページ目の給紙指示の間に紙サイズ通知が行われているが、この紙サイズ通知は、このタイミングに限定するものではない。例えば給紙と画像処理に要する時間がより高速であれば、紙サイズ通知はこれ以降のタイミングとなり得る。またプリンタ部113の構成次第では、1ページ目と2ページ目の給紙の間に紙サイズ通知がなされることもあり得る。
以上説明したように実施形態1によれば、紙サイズが通知されるタイミングに依らず、2ページ目の画像データの印刷の開始を速めることができる。また紙サイズが通知された以降の後続ページの画像データの印刷においては、その通知された紙サイズを適宜、画像処理や印刷処理に反映させることができるため、従来と同等の印刷パフォーマンスを発揮できる。
[実施形態2]
上述の実施形態1では、紙サイズ通知を受け取った後続のページに対しては、画像処理部111のトリミング部1401で、必要な分の画像データだけを処理することで画像処理の高速化をはかっている。しかしながら画像処理部には、例えば図20のように、トリミング部2001が印刷処理では使用できない、或いはトリミング部そのものが無い画像処理部を備えている場合がある。この場合は、前述の高速化ができないため、実施形態2として、別の方法により、フリーサイズ印刷を実行する例を説明する。尚、実施形態2に係るMFPの構成は、画像処理部2000を除いて前述の実施形態1に係るMFPの構成と同じであるため、その説明を省略する。
図20は、実施形態2に係る画像処理部2000の機能構成を説明するブロック図である。
図20の画像処理部2000では、印刷処理においてトリミング部2001が使用できない。
実施形態2に係るMFPでは、印刷を行う紙サイズによらず、フリーサイズ印刷モードでは、用紙サイズが確定するまでは、読み取り画像の最大のサイズの画像データを出力し、エンジン制御部116が通知する排紙通知により印刷動作を制御する。画像データの処理では、読み取った画像の最大長分の画像データを生成するため、用紙のサイズに応じて処理を行うためには、用紙サイズから外れた未出力の画像データ部分を削除するトリミング処理が必要となる。しかし、画像処理部2000が未出力の画像データ部分を削除するトリミング部2001を使用できないときは、エンジン制御部116から紙サイズが通知されたとしても、その通知された紙サイズに合わせて未出力の画像データ部分を削除することができない。従って、そのような場合は、その通知された紙サイズを、画像処理や給紙指示に反映させないようにする必要がある。
図21は、実施形態2に係るMFPにおける印刷ページサイズの更新処理を説明するフローチャートである。尚、このフローチャートで示す処理は、CPU103が蓄積メモリ105からRAM104に展開したプログラムを実行することにより達成される。
まずS2101でCPU103は、画像処理部2000の能力情報を取得する。この能力情報は、例えば、ROM102に能力情報を示す領域を用意しておき、CPU103が、ROM102から画像処理部2000の能力情報を取得してもよい。また画像処理部2000を構成するASICの種別を動的に判別し、それを能力情報としてもよい。次にS2102に進みCPU103は、画像処理部2000にトリミングを実行できるトリミング部があるかどうかを判定する。ここでトリミング部が無いと判定するとS2104に進み、サイズ更新フラグをオフにして、印刷管理情報の印刷画像サイズY1117を変更させないようにして、この処理を終了する。
一方、S2102でCPU103が、トリミング部があると判定した場合はS2103に進み、CPU103は、そのトリミング部を印刷用の画像処理に適用可能かどうかを判定する。ここでトリミング部が印刷処理で使用できないと判定するとS2104に進み、印刷管理情報の印刷画像サイズY1117を変更させないようにして、この処理を終了する。
一方、S2103でCPU103が、トリミング部が印刷処理で使用できると判定したときはS2105に進みCPU103は、紙サイズ通知により通知されたサイズ情報をRAM104に保存する。そしてS2106に進みCPU130は、サイズ更新フラグをオンに設定して、この処理を終了する。
以上説明した処理により、フリーサイズ印刷モードでも、画像処理部の能力によっては、紙サイズ通知の結果を印刷管理情報に反映させずに、常に、最大サイズで画像処理して印刷することができる。しかしながら、紙サイズを印刷管理情報に反映させない場合、通常では、画像処理部が生成した画像データの全てをプリンタ部113に出力する必要がある。このため、印刷対象の画像データのサイズが実際の紙サイズよりも大きい場合は、用紙が排紙センサ214を通過してエンジン制御部116から排紙通知が来ているのに、制御部115が画像データを出力している状態が発生する。従って、排紙通知を受信すると、例え画像データの出力中であっても、画像データの印刷を即時停止させるのが望ましい。
図22は、実施形態2に係るMFPによる排紙通知の受信処理を説明するフローチャートである。尚、このフローチャートで示す処理は、CPU103が蓄積メモリ105からRAM104に展開したプログラムを実行することにより達成される。
まずS2201でCPU103は、排紙通知の制御命令に含まれる印刷ページIDを取得する。次にS2202に進みCPU103は、その印刷ページIDを基に印刷管理情報を参照し、同じ印刷ページIDがあるかどうかを判定する。ここで同じ印刷ページIDがあり、更に、その印刷ページの印刷管理情報の印刷指示ステータスが「同期信号受信済み」かどうかを基に、そのページを印刷中かどうか判定する。S2202でCPU103が、排紙通知が来たページが印刷中であると判定するとS2203に進み、画像データの出力を中止して印刷を停止する処理を行う。この停止処理では、未出力の画像データがあればそれを削除する。一方、S2202でCPU103が、排紙通知が来たページが印刷中でないと判定するとS2204に進み、画像データの出力を継続して印刷を継続させる。
以上のような制御を行うことで、排紙通知があったとき、そのページの画像データを出力中であれば、その画像データを削除するため画像データを出力する時間を短くすることができる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。