以下、本発明の実施形態について添付図面を参照して詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものではなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
[第1の実施形態]
第1の実施形態では、印刷装置は、複数の原稿を読み取って生成された画像データを第1の記憶手段に記憶する。続いて、印刷装置は、第1の記憶手段から読み出された画像データを第2の記憶手段に記憶する。そして、印刷装置は、第1の記憶手段、及び第2の記憶手段のいずれか一つに記憶された画像データに基づく印刷を実行する。
印刷装置は、第1の記憶手段に記憶された原稿の画像データに基づく印刷を実行できなくなるまで、第1の記憶手段に記憶された当該原稿の画像データに基づく印刷を実行する。一方、印刷装置は、第1の記憶手段に記憶された原稿の画像データに基づく印刷を実行できなくなったら、第2の記憶手段に記憶された当該原稿の画像データに基づく印刷を実行する。このような制御により、複数ページの原稿のコピーの実行時に、第1の記憶手段でオーバーフローを発生させずに、複数ページの原稿を読み取り、複数ページの原稿を読み取って生成された画像データに基づく印刷を実行するための処理時間を短縮する。
以下、詳細に説明する。
本発明の第1の実施形態に係る印刷装置の一例であるMFP103の構成について、図1のブロック図を用いて説明する。尚、MFPとは、Multi FunctionalPeripheralのことである。
MFP103は、原稿を読み取って画像データを生成する画像読取機能と、生成した画像データに基づいて画像をシートに印刷する印刷機能(コピー機能)を備えている。また、MFP103は、PC等の外部装置から印刷ジョブを受信し、印刷指示を受け付けたデータに基づいて文字や画像をシートに印刷する印刷機能(PCプリント機能)を備えている。尚、印刷機能による印刷は、カラーであっても、モノクロであってもよい。
MFP103のコントローラ部110は、画像入力デバイスであるスキャナ部130、及び、画像出力デバイスであるプリンタ部140と接続されており、画像情報の入出力を制御する。
スキャナ部130は、光学センサを用いて原稿の画像をスキャンし、スキャン画像データを取得する。スキャナ部130は、CPUやRAMやROMやデバイスI/F等を有する制御部と、スキャナデバイスから構成される。スキャナ部130の詳細については、図2で後述する。
プリンタ部140は、スキャナ部130やPC等から入力された画像データに基づいて、シートに画像を印刷する。プリンタ部140の詳細については、図3で後述する。
また、コントローラ部110は、ユーザインタフェース部の一例に該当する操作部150と接続される。操作部150は、表示部、及びキー入力部を有する。操作部150は、表示部を介して、ユーザに情報を提供する機能を有する。また、表示部は、LCD(Liquid Crystal Display:液晶表示部)と、LCD上に貼られた透明電極(静電容量方式でもよい)とを有するタッチパネルシートとで構成される。操作部150は、タッチパネルシートを介して、ユーザから各種設定を受け付ける機能を有する。LCDには、操作画面が表示される他、MFP103の状態が表示される。キー入力部には、例えば、スキャンやコピー等の実行の開始を指示するために用いられるスタートキーや、スキャンやコピー等の稼働中の動作の中止を指示するために用いられるストップキー等がある。
また、コントローラ部110は、ネットワーク104を介してPCやファイル共有サーバ等の外部装置(情報処理装置)と接続され、外部装置から印刷ジョブの受信等の処理を行う。ネットワーク104は、ローカルエリアネットワーク等のLAN(Local Area Network)であってもよく、インターネット等のWAN(Wide Area Network)であってもよい。
コントローラ部110は、CPU111、RAM112、ROM113、HDD114、ネットワークI/F115、デバイスI/F116、操作部I/F117、画像処理部118、及び、画像メモリ120を有する。各モジュールは、それぞれシステムバス125を介して互いに接続される。
CPU111は、MFP103の全体を制御するプロセッサーである。CPU111は、ROM113に記憶された制御プログラム等に基づいて、接続中の各種デバイスとのアクセスを統括的に制御する。
ネットワークI/F115は、外部のネットワークとの通信制御を行うためのインタフェースである。ネットワークI/F115は、MFP103をネットワーク104に接続し、スキャナ部130から入力された画像データをPCやファイル共有サーバ等の外部装置に送信するための通信制御を行う。
HDD114は、主に、コンピュータを起動・動作させるために必要な情報(システムソフトウェア)や、画像データを記憶するための記憶部である。また、HDD114は、操作部150を介してユーザから受け付けたジョブの設定情報(例えば、コピージョブの設定情報)が記憶される。
RAM112は、読み出し及び書き込み可能なメモリである。また、RAM112は、CPU111が動作するためのシステムワークメモリでもある。RAM112には、スキャナ部130やPC等から入力された画像データや、各種プログラムや設定情報等が記憶される。
ROM113は、読み出し専用のメモリである。また、ROM113は、ブートROMである。ROM113には、システムのブートプログラムが予め記憶されている。
ROM113又はHDD114には、CPU111により実行される、後述するフローチャートの各種処理等を実行するために必要な各種の制御プログラムが格納(記憶)されている。
また、ROM113又はHDD114には、ラスタライズを実行するプログラム等が記憶されている。
また、ROM113又はHDD114には、ユーザインタフェース画面(以下、UI画面)を含む操作部150の表示部に各種のUI画面を表示させるための表示制御プログラムも記憶されている。
CPU111が、ROM113又はHDD114に記憶されているプログラムを読み出して、RAM112に当該プログラムを展開することにより、本実施形態に係る各種動作を実行する。
デバイスI/F116は、スキャナ部130、プリンタ部140と、コントローラ部110とを接続し、画像データの同期系/非同期系の変換を行う。
操作部I/F117は、操作部150とコントローラ部110を接続するインタフェースであり、操作部150に表示するための画像データを操作部150に出力する。また、操作部I/F117は、ユーザによって操作部150から入力された情報をCPU111に伝達する。
画像処理部118は、ネットワーク104経由で受信した印刷データに含まれる画像データに対して画像処理を行うほか、デバイスI/F116から入出力される画像データに対して画像処理を行う。
画像処理部118は、ネットワーク104経由で受信した印刷データに含まれる画像データ、又はスキャナ部130による原稿の読み取りによって生成された画像データを画像メモリ120に格納する。そして、画像処理部118は、画像メモリ120に格納された画像データに対して、画像処理回路内のレジスタの値(例えば、カラーモード、変倍率、読取解像度、出力解像度、回転角等)に従って画像変換処理を実行する。ここで、画像変換処理とは、例えば、回転処理、解像度変換処理、変倍処理等のことである。その後、画像処理部118は、変換された画像データを画像メモリ120に再度格納する。
圧縮伸張部119は、JBIGやJPEG等といった各種圧縮方式によって画像メモリ120に格納されている画像データを圧縮/伸張する処理と、HDD114に格納されている画像データを伸張する処理を行う。また、圧縮伸張部119は、圧縮した画像データや伸張した画像データを画像メモリ120やHDD114に再度格納する画像処理ブロックを有する。
画像メモリ120は、画像処理部118によって処理される画像データを一時的に展開し、展開された画像データを書き込むためのメモリ(記憶部)である。画像メモリ120は、例えば、低圧縮画像データを格納するための領域(第1の画像メモリ領域121、及び第4の画像メモリ領域124)と、符号画像データを格納するための領域(第2の画像メモリ領域122、及び第3の画像メモリ領域123)を備える。
尚、画像メモリ120に画像データを格納するためのアドレスが、画像データのページごとにそれぞれ指定される。そして、画像メモリ120のどのアドレスに何ページ目の画像データが格納されているかの情報がRAM112に保存される。
第1の画像メモリ領域121は、例えば、アドレス「0x20000000」(以降、アドレス(a)とも呼ぶ。)で指定される領域である。仮に、画像メモリ120に格納すべき低圧縮画像データのサイズが133MByteである場合、アドレス「0x20000000」から133MByte分の領域が確保される。
第2の画像メモリ領域122は、例えば、アドレス「0x70000000」(以降、アドレス(b)とも呼ぶ。)で指定される領域である。仮に、画像メモリ120に格納すべき符号画像データのサイズが25MByteである場合、アドレス「0x70000000」から25MByte分の領域が確保される。
第3の画像メモリ領域123は、例えば、アドレス「0x80000000」(以降、アドレス(c)とも呼ぶ。)で指定される領域である。仮に、画像メモリ120に格納すべき符号画像データのサイズが25MByteである場合、アドレス「0x80000000」から25MByte分の領域が確保される。
第4の画像メモリ領域124は、例えば、アドレス「0x90000000」(以降、アドレス(d)とも呼ぶ。)で指定される領域である。仮に、画像メモリ120に格納すべき低圧縮画像データのサイズが133MByteである場合、アドレス「0x90000000」から133MByte分の領域が確保される。
尚、画像メモリ120に確保される領域のサイズは、第1の画像メモリ領域121と第4の画像メモリ領域124とで同一のサイズとなり、第2の画像メモリ領域122と第3の画像メモリ領域123とで同一のサイズとなる。
尚、第1の画像メモリ領域121、第2の画像メモリ領域122、第3の画像メモリ領域123、及び第4の画像メモリ領域124として確保すべきサイズは、画像データの圧縮率やサイズに応じて変動させてもよい。また、画像メモリ120に画像データを格納するためのアドレスの開始は、第1の画像メモリ領域121、第2の画像メモリ領域122、第3の画像メモリ領域123、及び第4の画像メモリ領域124のそれぞれで間隔を空けずに割り当ててもよい。
続いて、MFP103の構成について、図2の断面図を用いて説明する。MFP103は、スキャナ部130とプリンタ部140で構成される。
まず、スキャナ部130の動作について、図2の断面図を用いて説明する。
スキャナ部130は、自動原稿給送部450を有する。自動原稿給送部450は、原稿32を積載するための原稿トレイ30を有し、原稿トレイ30上に載置された原稿32を給送する。そして、スキャナ部130は、固定された光学系の位置で、給送された原稿32の画像を読み取る。以下、具体的に説明する。
自動原稿給送部450は、1枚以上の原稿32で構成される原稿束を積載する原稿トレイ30、原稿32の搬送開始前に原稿束が原稿トレイ30より突出して下流へ進出することを規制する分離パッド21、及び給送ローラ1を有する。
給送ローラ1は、原稿トレイ30に積載された原稿束の原稿面に落下し、回転する。これにより、原稿束の最上面の原稿32が給送される。給送ローラ1によって給送された複数枚の原稿32は、分離ローラ2と分離パッド21の作用によって1枚ずつ分離して給送される。この分離は周知のリタード分離技術によって実現されている。
分離ローラ2と分離パッド21によって分離された原稿32は、搬送ローラ対3により、レジストローラ4へ搬送される。そして、搬送された原稿32は、レジストローラ4に突き当てられる。これにより、原稿32をループ状に形成することによって、原稿32の搬送における斜行を解消する。レジストローラ4の下流側には、レジストローラ4を通過した原稿32を流し読みガラス201方向へ搬送する給送パスが配置されている。
給送パスに送られた原稿32は、大ローラ7及び給送ローラ5によりプラテン上に送られる。ここで、大ローラ7は、流し読みガラス201に接触する。大ローラ7により給送された原稿32は、搬送ローラ6を通過し、ローラ16と排出フラッパの間を移動する。そして、原稿32は、排出フラッパ及び排出ローラ8を介して原稿排出トレイ31に排出される。
スキャナ部130は、原稿32を反転させることで原稿32の裏面の画像を読み取ることができる。具体的には、排出ローラ8に原稿32を噛ませた状態で、排出ローラ8を逆転させて排出フラッパを切り替えることにより、反転パス19へ原稿32を移動させる。移動した原稿32を反転パス19からレジストローラ4へ突き当て、再度、原稿32をループ状に形成することによって、原稿32の搬送における斜行を解消する。その後、給送ローラ5及び大ローラ7により、再び原稿32を流し読みガラス201へ移動させる。これにより、スキャナ部130は、流し読みガラス201を通過する原稿32の裏面の画像を読み取ることができる。
スキャナ部130は、原稿台ガラス202上に載置された原稿については、光学スキャナユニット209が図3の矢印に示す副走査方向に走査することで、原稿に記録された画像情報を光学的に読み取る。一方、原稿トレイ30上の原稿32は、自動原稿給送部450によって原稿32が一枚ずつ読み取り中心位置に搬送される。そして、スキャナ部130は、自動原稿給送部450の大ローラ7の読み取り中心位置に来るように光学スキャナユニット209を移動し、大ローラ7の読み取り中心位置で原稿32を読み取る。
そして、原稿トレイ30上の原稿32、又は原稿台ガラス202上の原稿は、次の光学系で読み取られる。この光学系は、流し読みガラス201、原稿台ガラス202、光学ランプ203とミラー204を有する光学スキャナユニット209、ミラー205及び206、レンズ207、CCDセンサユニット210を備える。本実施形態では、CCDセンサユニット210は、CCD211(カラー画像の読み取り用(RGB)のCCD(3ラインセンサユニット)、及び、白黒画像の読み取り用のCCD(1ラインセンサユニット))で構成される。
この光学系で読み取られた画像情報は光電変換されて、図2で説明したコントローラ部110に画像データとして入力される。尚、本実施形態では、スキャナ部130が備える光学系は、原稿32からの反射光をCCDセンサ上に結像する縮小光学系である場合について説明したが、これに限られない。スキャナ部130が備える光学系は、原稿32からの反射光をCIS(Contact Image Sensor)上に結像する等倍光学系であってもよい。
続いて、プリンタ部140の動作について、図3の断面図を用いて説明する。プリンタ部140は、プリンタ部140に転送された画像データに基づいて画像をシート301に出力する動作(印刷動作)を行う。以下、具体的に説明する。
プリンタ部140に転送された画像データは、レーザユニット332によって画像データに応じたレーザ光への変換が行われる。そして、このレーザ光は感光体ドラム(323〜326)に照射され、感光体ドラム(323〜326)には画像データに応じた静電潜像が形成される。感光体ドラム(323〜326)の潜像の部分には、現像ユニット(327〜330)によってトナー(現像剤)が付着される。尚、カラー機では、シアン、イエロー、マゼンタ、ブラック用に、4つの感光体ドラム(323〜326)、及び4つの現像ユニット(327〜330)を備えている。
また、プリンタ部140は、シート収納部(給紙段とも呼ぶ)として、カセット(351〜354)、及び、手差しトレイ350を有している。
尚、カセット(351〜354)は、引き出し式の形状になっており、複数枚(例えば、600枚)のシート301を収納することができる。一方、手差しトレイ350は、差し込み式の形状になっており、複数枚(例えば、100枚)のシート301を収納することができる。
プリンタ部140は、カセット(351〜354)、及び、手差しトレイ350のいずれかから給送されたシート301に対して、感光体ドラム(323〜326)に付着したトナーをシート301に転写する。その後、トナーが転写されたシート301は、定着ユニット333に搬送される。そして、熱と圧力によって、トナーがシート301に定着される。定着ユニット333を通過したシート301は、搬送ローラ334、335によってMFP103が備える排出トレイ345(排出部)に排出される。
尚、MFP103は、感光体ドラム(323〜326)、及び現像ユニット(327〜330)を4つずつ備えるカラー機である場合について説明したが、これに限られない。MFP103は、感光体ドラム326と現像ユニット330を1つずつ備えるモノクロ機であっても、本発明を同様に適用できる。
尚、電子写真方式で画像をシート301に印刷する方法について説明したが、これに限られない。画像をシート301に印刷することができるものであれば、例えばインクジェット方式等であってもよく、その他の方法(例えば、熱転写方式等)であっても、本発明を同様に適用できる。
第1の実施形態では、印刷装置は、複数の原稿を読み取って生成された画像データを第1の記憶手段(例えば、画像メモリ120)に記憶する。続いて、印刷装置は、第1の記憶手段から読み出された画像データを第2の記憶手段(例えば、HDD114)に記憶する。そして、印刷装置は、第1の記憶手段、及び第2の記憶手段のいずれか一つに記憶された画像データに基づく印刷を実行する。
印刷装置は、第1の記憶手段に記憶された原稿の画像データに基づく印刷を実行できなくなるまで、第1の記憶手段に記憶された当該原稿の画像データに基づく印刷を実行する。一方、印刷装置は、第1の記憶手段に記憶された原稿の画像データに基づく印刷を実行できなくなったら、第2の記憶手段に記憶された当該原稿の画像データに基づく印刷を実行する。このような制御により、複数ページの原稿のコピーの実行時に、第1の記憶手段でオーバーフローを発生させずに、複数ページの原稿を読み取り、複数ページの原稿を読み取って生成された画像データに基づく印刷を実行するための処理時間を短縮する。
以下、詳細に説明する。
スキャナ部130からビデオ信号が入力された後、HDD114に符号画像データが格納されるまでの一連の処理(S3001〜S3003)を、図3(A)に示す模式図を用いて説明する。
CPU111は、スキャンのための画像処理の順序、及び画像領域の順序を規定した図3(A)に示すスキャン画像パス3000を設定する。そして、CPU111は、スキャン画像パス3000を設定した後に、S3001〜S3003の処理を実行する。また、CPU111は、S3001〜S3003で後述する画像処理を画像処理部118で行うための各種パラメータの設定を行う。
S3001は、スキャナ部130から入力されたビデオ信号を低圧縮画像データに変換する処理である。S3001で変換された低圧縮画像データは、画像メモリ120のアドレス(a)で参照される第1の画像メモリ領域121に格納される。
S3002は、第1の画像メモリ領域121に格納された低圧縮画像データを圧縮伸張部119で圧縮して符号画像データを生成する圧縮処理である。尚、低圧縮画像データは、圧縮率の低い画像データのことである。尚、低圧縮画像データは、圧縮されていない画像データ(非圧縮画像データ)であってもよい。一方、符号画像データは、低圧縮画像データよりも圧縮率が高い画像データのことである。即ち、低圧縮画像データは、符号画像データと比べてデータ量が大きい。S3002で生成された符号画像データは、画像メモリ120のアドレス(b)で参照される第2の画像メモリ領域122に格納される。
S3003は、第2の画像メモリ領域122に格納された符号画像データをHDD114に格納する処理である。S3003の処理により、第2の画像メモリ領域122に格納された第1のページの原稿の符号画像データの読み出しの完了を待たずに、当該第1のページに後続する第2のページの原稿の符号画像データを第2の画像メモリ領域122に格納することができる。このため、第1のページに後続する第2のページの原稿の読み取りの開始が遅れてしまうことを防ぐことができる。
尚、CPU111は、スキャン処理の開始時に、第1の画像メモリ領域121、第2の画像メモリ領域122、及びHDD114のそれぞれに対してデータを格納するためのリソースを確保する。例えば、読み取り原稿のサイズが「A4」で、且つ、読み取り解像度が「600dpi」(32bit per pixel)であるとする。この場合、第1の画像メモリ領域121に対しては、例えば、133MByte分のデータ(低圧縮画像データ)を格納するためのリソースを確保する。一方、第2の画像メモリ領域122に対しては、例えば、25MByte分のデータ(符号画像データ)を格納するためのリソースを確保する。
CPU111は、S3002で説明した圧縮処理が完了した後、第1の画像メモリ領域121のリソースを解放する。また、CPU111は、S3003で説明した格納処理が完了した後、第2の画像メモリ領域122のリソースを解放する。
尚、第1の画像メモリ領域121のリソースが解放されたことに従って、第1の画像メモリ領域121に記憶されていた低圧縮画像データは削除される。また、第2の画像メモリ領域122のリソースが解放されたことに従って、第2の画像メモリ領域122に記憶されていた符号画像データは削除される。このため、画像メモリ120にオーバーフローが発生することがない。
続いて、画像メモリ120又はHDD114からデータが読み出された後、プリンタ部140にビデオ信号が出力されるまでの一連の処理(S4001〜S4003)を、図3(B)に示す模式図を用いて説明する。
CPU111は、プリントのための画像処理の順序、及び画像領域の順序を規定した図3(B)に示すプリント画像パス4000を設定する。そして、CPU111は、プリント画像パス4000を設定した後に、S4001〜S4003の処理を実行する。尚、CPU111は、S4001〜S4003で後述する画像処理を画像処理部118で行うための各種パラメータの設定を行う。
S4001は、HDD114に格納された符号画像データを読み出す処理である。S4001でHDD114から読み出された符号画像データは、画像メモリ120のアドレス(c)で参照される第3の画像メモリ領域123に格納される。
S4002は、第3の画像メモリ領域123に格納された符号画像データを圧縮伸張部119で伸張して低圧縮画像データを生成する伸張処理である。S4002で生成された低圧縮画像データは、画像メモリ120のアドレス(d)で参照される第4の画像メモリ領域124に格納される。
S4003は、第4の画像メモリ領域124に格納された低圧縮画像データをビデオ信号に変換してプリンタ部140に出力する処理である。
尚、CPU111は、プリント処理の開始時に、第3の画像メモリ領域123、第4の画像メモリ領域124、及びHDD114のそれぞれに対してデータを格納するためのリソースを確保する。
プリント処理の実行タイミングで、同一ページの原稿の低圧縮画像データが格納された第1の画像メモリ領域121のリソースが解放されていないとする。この場合、CPU111は、画像メモリ120から低圧縮画像データを読み出すためのアドレスとして、第4の画像メモリ領域124を参照するためのアドレス(d)を、第1の画像メモリ領域121を参照するためのアドレス(a)に置き換える。
即ち、CPU111は、プリンタ部140にビデオ信号を出力するための前処理として、画像メモリ120のアドレス(a)で指定される領域に格納された低圧縮画像データを読み出せばよい。言い換えれば、CPU111は、第1の画像メモリ領域121に格納された低圧縮画像データを取得するため、図3(B)で説明したS4001、及びS4002の処理を省略することができる。このため、S4001〜S4003のすべての処理を実行する場合と比較して、シートへの画像の印刷が開始されるまでの時間を短縮することができる。
また、画像メモリ120から低圧縮画像データを読み出すためのアドレスが置き換えられた場合、第4の画像メモリ領域124には、同一ページの原稿の低圧縮画像データが格納されない。一旦確保された第4の画像メモリ領域124のリソースは不要となるため、CPU111は、第4の画像メモリ領域124のリソースを解放する。また、画像メモリ120から低圧縮画像データを読み出すためのアドレスが置き換えられた場合、第3の画像メモリ領域123には、同一ページの原稿の符号画像データが格納されない。一旦確保された第3の画像メモリ領域123のリソースは不要となるため、CPU111は、第3の画像メモリ領域123のリソースを解放する。このように不要となった画像メモリ120のリソースを解放することで、他のページのスキャン処理のために画像メモリ120のリソースを割り当てられるようになる。
一方、プリント処理の実行タイミングで同一ページの原稿の低圧縮画像データが格納された第1の画像メモリ領域121のリソースが解放され、同一ページの原稿の符号画像データが格納された第2の画像メモリ領域122のリソースが解放されていないとする。この場合、CPU111は、画像メモリ120から符号画像データを読み出すためのアドレスとして、第3のメモリ領域123を参照するためのアドレス(c)を、第2の画像メモリ領域122を参照するためのアドレス(b)に置き換える。
即ち、CPU111は、プリンタ部140にビデオ信号を出力するための前処理として、画像メモリ120のアドレス(b)で指定される領域に格納された符号画像データを読み出せばよい。言い換えれば、CPU111は、第2の画像メモリ領域122に格納された符号画像データを取得するため、図3(B)で説明したS4001の処理を省略することができる。このため、S4001〜S4003のすべての処理を実行する場合と比較して、シートへの画像の印刷が開始されるまでの時間を短縮することができる。
また、画像メモリ120から符号画像データを読み出すためのアドレスが置き換えられた場合、第3の画像メモリ領域123には、符号画像データが格納されない。一旦確保された第3の画像メモリ領域123のリソースは不要となるため、CPU111は、第3の画像メモリ領域123のリソースを解放する。このように不要となった画像メモリ120のリソースを解放することで、他のページのスキャン処理のために画像メモリ120のリソースを割り当てられるようになる。
一方、プリント処理の実行タイミングで、同一ページの原稿の低圧縮画像データが格納された第1の画像メモリ領域121のリソースが解放され、同一ページの原稿の符号画像データが格納された第2の画像メモリ領域122のリソースが解放されていたとする。この場合、CPU111は、HDD114から符号画像データを読み出して、S4001、S4002、及びS4003の処理を行う。
続いて、第1の実施形態に係るMFP103において、スキャン処理を動作させた時の処理の順序を、図4(A)〜(D)の模式図を用いてそれぞれ説明する。
図4(A)は、S3001の処理が実行されて、第1の画像メモリ領域121に低圧縮画像データが格納されるフェーズを表している。
図4(B)は、第1の画像メモリ領域121に低圧縮画像データが格納された後、S3002の処理が実行されて、第2の画像メモリ領域122に符号画像データが格納されるフェーズを表す。
図4(C)は、第2の画像メモリ領域122に符号画像データが格納された後、S3003の処理が実行されて、HDD114に符号画像データが格納されるフェーズを表している。この時、第1の画像メモリ領域121のリソースは解放されている。このため、第1の画像メモリ領域121のリソースを、他のページのスキャン処理のために割り当てられるようになる。
図4(D)は、スキャン処理が完了し、HDD114に符号画像データが格納された状態を表している。この時、第1の画像メモリ領域121、及び、第2の画像メモリ領域122のリソースは解放されている。このため、第1の画像メモリ領域121のリソース、及び、第2の画像メモリ領域122のリソースを、他のページのスキャン処理のために割り当てられるようになる。
続いて、第1の実施形態に係るMFP103において、コピー処理の動作時にスキャン処理とプリント処理を並列で動作させた時の処理の順序を、図5(A)〜(D)の模式図を用いてそれぞれ説明する。図5(A)〜(D)は、図4(A)〜(D)で説明したいずれかのフェーズでプリント処理が開始されることを表している。
尚、第1の実施形態に係るMFP103では、印刷のために画像メモリ120から画像データが読み出される速度よりも、原稿の読み取りにより画像メモリ120に画像データが書き込まれる速度の方が速い場合について想定する。
尚、第1の実施形態におけるコピー処理の動作では、第4の画像メモリ領域124を参照するためのアドレス(d)を、第1の画像メモリ領域121を参照するためのアドレス(a)に置き換えることができる設定となっているものとして以降説明を進める。
また、第1の実施形態におけるコピー処理の動作では、第3の画像メモリ領域123を参照するためのアドレス(c)を、第2の画像メモリ領域122を参照するためのアドレス(b)に置き換えることができる設定となっているものとして以降説明を進める。
図5(A)は、図4(A)で説明したスキャン処理のフェーズで、プリント処理が開始された場合のコピー処理動作の処理内容を表す。このコピー処理動作のフェーズでは、第4の画像メモリ領域124を参照するためのアドレス(d)が、第1の画像メモリ領域121を参照するためのアドレス(a)を参照するためのアドレスに置き換えられる。そして、S4003の処理では、第1の画像メモリ領域121に格納された低圧縮画像データが読み出される。即ち、図5(A)のコピー処理動作では、図3(A)で説明したS3001の処理と、図3(B)で説明したS4003の処理のみでコピー処理の動作が行われる。
即ち、図5(A)のプリント処理では、CPU111は、第1の画像メモリ領域121に格納された低圧縮画像データを取得するため、図3(B)で説明したS4001、及びS4002の処理を省略することができる。このため、S4001〜S4003のすべての処理を実行する場合と比較して、シートへの画像の印刷が開始されるまでの時間を短縮することができる。
また、図5(A)のスキャン処理では、HDD114に符号画像データを格納するために、図3(A)で説明したS3002、及びS3003の処理まで行われる。このように、HDD114に符号画像データを格納することにより、プリント処理で異常が発生した場合(例えば、プリントジャム等が発生した場合)であっても、異常からの復帰後にプリント処理を再開することができる。
図5(B)は、図4(B)で説明したスキャン処理のフェーズで、プリント処理が開始された場合のコピー処理動作の処理内容を表す。このコピー処理動作のフェーズでは、S3001の処理が完了し、且つ、S3002の処理が実行中である。即ち、当該フェーズでは、第1の画像メモリ領域121のリソースがS3002の処理のために使用中である。言い換えれば、当該フェーズでは、第1の画像メモリ領域121のリソースがまだ解放されていない。このため、図5(A)のコピー処理動作と同様に、図5(B)のコピー処理動作では、第4の画像メモリ領域124を参照するためのアドレス(d)が、第1の画像メモリ領域121を参照するためのアドレス(a)を参照するためのアドレスに置き換えられる。そして、S4003の処理では、第1の画像メモリ領域121に格納された低圧縮画像データが読み出される。即ち、図5(B)のコピー処理動作では、S3001の処理とS4003の処理のみでコピー処理の動作が行われる。
即ち、図5(B)のプリント処理では、CPU111は、第1の画像メモリ領域121に格納された低圧縮画像データを取得するため、図3(B)で説明したS4001、及びS4002の処理を省略することができる。このため、S4001〜S4003のすべての処理を実行する場合と比較して、シートへの画像の印刷が開始されるまでの時間を短縮することができる。
また、図5(B)のスキャン処理では、HDD114に符号画像データを格納するために、S3002の処理、及びS3003の処理まで行われる。このように、HDD114に符号画像データを格納することにより、プリント処理で異常が発生した場合(例えば、プリントジャム等が発生した場合)であっても、異常からの復帰後にプリント処理を再開することができる。
図5(C)は、図4(C)で説明したスキャン処理のフェーズで、プリント処理が開始された場合のコピー処理動作の処理内容を表す。このコピー処理動作のフェーズでは、S3001、及びS3002の処理が完了し、且つ、S3003の処理が実行中である。即ち、当該フェーズでは、第2の画像メモリ領域122のリソースがS3003の処理のために使用中である。言い換えれば、当該フェーズでは、第2の画像メモリ領域122のリソースがまだ解放されていない。一方、当該フェーズでは、第1の画像メモリ領域121のリソースは解放された状態である。このため、図5(C)のコピー処理動作では、第3の画像メモリ領域123を参照するためのアドレス(c)が、第2の画像メモリ領域122を参照するためのアドレス(b)を参照するためのアドレスに置き換えられる。そして、S4002の処理では、第2の画像メモリ領域122に格納された符号画像データが読み出される。即ち、図5(C)のコピー処理動作では、S3001、S3002、S4002、及びS4003の処理でコピー処理の動作が行われる。
即ち、図5(C)のプリント処理では、CPU111は、第2の画像メモリ領域122に格納された符号画像データを取得するため、図3(B)で説明したS4001の処理を省略することができる。このため、S4001〜S4003のすべての処理を実行する場合と比較して、シートへの画像の印刷が開始されるまでの時間を短縮することができる。
また、図5(C)のスキャン処理では、HDD114に符号画像データを格納するために、S3003の処理まで行われる。このように、HDD114に符号画像データを格納することにより、プリント処理で異常が発生した場合(例えば、プリントジャム等が発生した場合)であっても、異常からの復帰後にプリント処理を再開することができる。
図5(D)は、図4(D)で説明したスキャン処理のフェーズで、プリント処理が開始された場合のコピー処理動作の処理内容を表す。このコピー処理動作のフェーズでは、S3001、S3002、及びS3003の処理が完了している。即ち、当該フェーズでは、第1の画像メモリ領域121のリソースが解放された状態で、且つ、第2の画像メモリ領域122のリソースも解放された状態である。また、当該フェーズでは、HDD114に符号画像データが格納された状態である。このため、図5(D)のコピー処理動作では、画像メモリ120を参照するためのアドレスの置き換えが行われない。即ち、CPU111は、HDD114に格納された符号画像データを読み出した後、S4001、S4002、及びS4003の処理でコピー処理の動作が行われる。
図5(D)のコピー処理動作では、第2の画像メモリ領域122に格納された第1のページの原稿の符号画像データの読み出し完了を待たずに、第1のページに後続する第2のページの原稿の符号画像データを第2の画像メモリ領域122に格納する事ができる。このため、第1のページに後続する第2のページの原稿の読み取りの開始が遅れてしまうことを防ぐことができる。また、第2の画像メモリ領域122に格納された符号画像データがHDD114に格納されたことに従って、第2の画像メモリ領域122のリソースが解放されるため、画像メモリ120にオーバーフローが発生することがない。
続いて、図5(A)で前述したコピー処理動作のフェーズ(以降、当該フェーズを「コピー並列処理モード」と呼ぶ。)におけるコピー処理動作のタイミングチャートについて、図11(A)の模式図を用いて説明する。
タイミング1101は、スタートキーが押下されたことに従って、コピージョブが開始されたタイミングを示す。
タイミング1118は、プリントビデオの出力が終了したタイミングを示す。
第1の実施形態に係るMFP103は、印刷のために画像メモリ120から画像データが読み出される速度よりも、原稿の読み取りにより画像メモリ120に画像データが書き込まれる速度の方が速い場合について想定する。第1の実施形態では、このようなMFP103において、MFP103がコピー並列処理モードで動作できるまでの間、コピー並列処理モードで動作し続けることにより、タイミング1101からタイミング1118までの間に掛かる時間を短縮する。
コマンド1102、コマンド1103、コマンド1104、コマンド1105、及びコマンド1106は、スキャナ部130のデバイスI/Fと、コントローラ部110のデバイスI/F116と、の間でやり取りされるコマンドである。また、これらのコマンド1102〜1106は、コントローラ部110と、スキャナ部130の制御部と、が同期を取りながら動作するためのコマンドでもある。
コマンド1102は、原稿32の引き込みのための準備要求である。スキャナ部130の制御部は、コマンド1102を受信したことに従って、原稿トレイ30に積載された原稿32の引き込みのための初期設定等を行う。
コマンド1103は、コマンド1102に対する返答コマンドである。コントローラ部110は、コマンド1102を受信することで、原稿32の引き込みのための準備が行われたと判断する。コントローラ部110のCPU111は、コマンド1102を受信したことに従って、スキャンのための画像処理の順序、及び画像領域の順序を規定した図3(A)のスキャン画像パス3000を設定する。
コマンド1104は、原稿32の引き込みのための開始要求である。スキャナ部130の制御部は、コマンド1104を受信したことに従って、原稿トレイ30に積載された原稿32の引き込みを開始する。
コマンド1105は、コマンド1104に対する返答コマンドである。コントローラ部110は、コマンド1105を受信することで、原稿32の引き込みが開始されたと判断する。このとき、スキャナ部130の制御部は、コントローラ部110に対して、原稿32の引き込みが正常に開始された旨の情報を通知してもよい。
コマンド1106は、スキャンビデオ要求であり、スキャナ部130からのスキャン画像のビデオ信号の入力を要求するためのコマンドである。尚、コマンド1106は、コントローラ部110のCPU111が、スキャナ部130に対して原稿32の読み取りを指示するコマンドに相当する。
割り込み1107は、スキャンビデオ開始の割り込みである。割り込み1107が通知されてから、スキャン画像のビデオ信号がコントローラ部110に継続的に入力される。そして、コントローラ部110に入力されたスキャン画像のビデオ信号は、コントローラ部110の画像処理部118を介して画像処理が行われる。
ビデオ1115は、スキャン画像のビデオ信号を模式的に表したものである。
タイミング1116は、スキャン画像のビデオ信号の終了タイミングを示す。
コマンド1110、コマンド1111、及び、コマンド1113は、プリンタ部140と、コントローラ部110のデバイスI/F116と、の間でやり取りされるコマンドである。
コマンド1110は、給紙のための開始要求である。プリンタ部140は、コマンド1110を受信したことに従って、カセット(351〜354)に収納されたシートや、手差しトレイ350に保持されたシートの給送を開始する。
コマンド1111は、コマンド1110に対する返答コマンドである。コントローラ部110は、コマンド1111を受信することで、給紙が開始されたと判断する。
コマンド1113は、プリントビデオ要求であり、プリンタ部140へのプリント画像のビデオ信号の出力開始を要求するためのコマンドである。尚、コマンド1113は、コントローラ部110のCPU111が、プリンタ部140に対して印刷を指示するコマンドに相当する。
割り込み1114は、プリントビデオ開始の割り込みである。割り込み1114が通知されてから、プリント画像のビデオ信号がプリンタ部140に継続的に入力される。そして、プリンタ部140に入力されたプリント画像のビデオ信号に基づいて、プリンタ部140での印刷動作が行われる。
ビデオ1117は、プリント画像のビデオ信号を模式的に表したものである。
イベント1109とイベント1112は、プリント処理の開始イベントを示す。
イベント1109は、プリント準備の開始イベントである。コントローラ部110がイベント1109を受け付けたことに従って、コマンド1110がプリンタ部140に通知される。また、コントローラ部110のCPU111は、イベント1109を受け付けたことに従って、図3(B)で示したように、プリントのための画像処理の順序、及び画像領域の順序を規定したプリント画像パス4000を設定する。また、CPU111は、図3(B)のS4001〜S4003で説明した画像処理を行うための各種パラメータを画像処理部118に設定し、画像メモリ120の画像メモリ領域に対して確保すべきリソースを確保する。
MFP103がコピー並列処理モードで動作している場合、スキャン側処理でコマンド1105を受信してから、プリント側処理でイベント1109が通知されるところが特徴である。
イベント1112は、プリント処理の開始イベントである。コントローラ部110がイベント1112を受け付けたことに従って、コマンド1113がプリンタ部140に通知される。尚、割り込み1107が通知されたことに従って、イベント1112が発生する。
図11(B)の模式図は、図5(B)で前述したコピー処理のフェーズにおけるコピー処理動作のタイミングチャートを示したものである。図11(B)の模式図において、図11(A)で前述したコピー並列処理モードの動作と同一のイベントやコマンド等を表すものについては、同一の番号を付して詳細な説明を省略する。
図5(B)で前述したコピー処理のフェーズにおけるコピー処理動作では、第1の画像メモリ領域121への画像データの格納が完了してから、プリント準備の開始イベントが発行される。このため、コントローラ部110は、所定の画像データサイズ分のスキャンビデオを受け取った後(即ち、タイミング1116以降)に、プリント処理の開始イベントであるイベント1150を受け付ける。そして、コントローラ部110がイベント1150を受け付けた後に、プリンタ部140とコントローラ部110のデバイスI/F116との間で、コマンド1110、コマンド1111、及びコマンド1113が順次やり取りされる。
このように、コピー並列処理モードでは、図5(B)で前述したコピー処理動作と比べて、スキャンビデオ開始の割り込み発生からスキャン画像のビデオ信号の終了タイミングまで(1107〜1116)の時間分、プリント処理の準備の開始を早める事ができる。
第1の実施形態に係るMFP103は、印刷のために画像メモリ120から画像データが読み出される速度よりも、原稿の読み取りにより画像メモリ120に画像データが書き込まれる速度の方が速い場合について想定する。第1の実施形態では、このようなMFP103において、MFP103がコピー並列処理モードで動作できるまでの間、コピー並列処理モードで動作し続けることにより、タイミング1101からタイミング1118までの間に掛かる時間を短縮することができる。
続いて、第1の実施形態に係るMFP103において、実行指示を受け付けたコピージョブを実行する一連の処理を、図6に示すフローチャートを用いて説明する。この処理は、CPU111が、ROM113又はHDD114から読み出してRAM112に展開された制御プログラムを実行することで行われる。尚、図6の処理は、コピー処理を実行するための実行画面が操作部150の表示部に表示された状態で開始される。
まず、CPU111は、操作部150を介して、ユーザによってスタートキーが押下されたか否かを判定する(S701)。CPU111は、スタートキーが押下されたと判定した場合(S701:Yes)、S702に処理を進める。一方、CPU111は、スタートキーが押下されていないと判定した場合(S701:No)、スタートキーが押下されたと判定するまでS701の処理を繰り返す。
続いて、CPU111は、コピージョブの設定情報(例えば、部数、カラー選択、倍率、用紙選択、ページ印字、ページレイアウト、及び製本等の設定)をHDD114から取得する(S702)。尚、S701でスタートキーが押下される前に、操作部150を介してユーザからコピージョブの設定を受け付けたことに従って、当該コピージョブの設定情報がHDD114に記憶されているものとする。
続いて、CPU111は、スキャナ部130に対して、図7で後述するスキャン処理(S750)を開始するよう指示するコマンドを出力する(S703)。そして、スキャナ部130は、CPU111から当該指示(スキャン指示と呼ぶ。)を受け付けたことに従って、スキャン処理(S750)を実行する。
そして、コントローラ部110がプリント準備の開始イベント(イベント1109)を受け付けたら、CPU111は、プリンタ部140に対して、図9で後述するプリント処理(S800)を開始するよう指示するコマンド(コマンド1110に対応する。)を出力する(S704)。そして、コントローラ部110は、プリンタ部140が当該指示(プリント指示と呼ぶ。)を受け付けたことに従って、プリント処理(S800)を実行する。
尚、S702で取得されたコピージョブの設定情報が特定値である場合、CPU111は、スキャナ部130及びプリンタ部140のそれぞれに対して、スキャン処理(S750)とプリント処理(S800)とを並列させてコピー処理を開始するよう指示する。
例えば、コピージョブの設定情報として、倍率が「等倍」、部数の指定が「1部」で、カラーモードが「自動選択」でなく、給紙段が「自動選択」でない場合に、スキャン処理(S750)とプリント処理(S800)を並列させてコピー処理を実行させる。
尚、倍率が「等倍」であるとは、ユーザにより倍率が「100%」と指定された場合や、例えば、原稿サイズがA4に対して出力用紙サイズがA4であると指定された場合のことである。一方、倍率が「等倍」でない(即ち、「変倍」)であるとは、例えば、ユーザにより倍率が「86%」と指定された場合や、原稿サイズがB4に対して出力用紙サイズがA3であると指定された場合のことである。
カラーモードが「自動選択」であるとは、原稿を読み取って生成された画像データをCPU111が解析することにより、読み取り原稿がカラーか白黒かを判断することである。読み取り原稿が「カラー」又は「モノクロ」であることをユーザが予め指定した場合は、カラーモードは「自動選択」でない。
給紙段が「自動選択」であるとは、出力用紙サイズに一致するサイズのシートが収納されているカセット351〜354を検索し、当該出力用紙サイズに一致するサイズのシートが収納されているカセットからシートを給送することである。尚、出力用紙サイズは、例えば、読み取り原稿のサイズ、及び倍率に基づいて決定される。一方、給紙段が「自動選択」でないとは、例えば、出力するシートを給送するカセット351〜354や手差しトレイ350がユーザにより予め指定された場合のことである。
続いて、第1の実施形態に係るMFP103において、実行指示を受け付けたコピージョブのスキャン処理を実行する一連の処理(S750)を、図7に示すフローチャートを用いて説明する。この処理は、CPU111が、ROM113又はHDD114から読み出してRAM112に展開された制御プログラムを実行することで行われる。
まず、CPU111は、図3(A)で示したように、スキャンのための画像処理の順序、及び画像領域の順序を規定したスキャン画像パス3000を設定する(S751)。
続いて、CPU111は、図3(A)のS3001〜S3003で説明した画像処理を行うための各種パラメータを画像処理部118に設定する(S752)。
続いて、CPU111は、S752で設定された各種パラメータに基づいて、第1の画像メモリ領域121、及び第2の画像メモリ領域122のそれぞれに対して確保すべきリソースを算出する(S753)。尚、第1の画像メモリ領域121、及び第2の画像メモリ領域122のそれぞれに対して確保すべきリソースは、原稿を読み取って生成される画像データのデータサイズによって決まる。尚、原稿を読み取って生成される画像データのデータサイズは、例えば、カラー、モノクロ、読み取り解像度、読み取り原稿のサイズ等の設定に依存する。
続いて、CPU111は、S753の処理で算出された結果に基づいて、第1の画像メモリ領域121、及び第2の画像メモリ領域122のそれぞれに対してリソースを確保する(S754)。
ここで、画像メモリ120にデータを格納するための領域の確保と解放について、図8、及び図10に示す模式図を用いて説明する。
まず、スキャン処理におけるメモリ制御について図8に示す模式図を用いて説明する。
図8(A)は、S754の処理によって、第1の画像メモリ領域121、及び第2の画像メモリ領域122のそれぞれのリソースが画像メモリ120に確保された状態を示している。
第1の画像メモリ領域121は、例えば、アドレス「0x20000000」で指定される領域である。仮に、画像メモリ120に格納すべき低圧縮画像データのサイズが133MByteである場合、アドレス「0x20000000」から133MByte分の領域が確保される。
第2の画像メモリ領域122は、例えば、アドレス「0x70000000」で指定される領域である。仮に、画像メモリ120に格納すべき符号画像データのサイズが25MByteである場合、アドレス「0x70000000」から25MByte分の領域が確保される。
図7に示したフローチャートに説明を戻す。
CPU111は、S754の処理を実行した後、スキャナ部130に対して原稿の読み取りを指示するコマンド(コマンド1106に対応する。)を出力する(S755)。そして、スキャナ部130は、CPU111から読み取り指示を受け付けたことに従って、原稿を読み取る(S755)。そして、CPU111は、コマンド1105を受信したら、S756に処理を進める。尚、コントローラ部110は、コマンド1105を受信することで、原稿32の引き込みが開始されたと判断する。
続いて、CPU111は、ビデオ入力開始信号(割り込み1107に対応する。)を待機する(S756)。このビデオ入力開始信号は、スキャナ部130からデバイスI/F116を介して画像処理部118に入力されるハードウェア割り込み信号である。この割り込み信号をトリガとしてスキャン画像のビデオ信号がスキャナ部130から入力され始める。
CPU111は、割り込み1107が通知されたことに基づいて、ビデオ入力開始信号が入力されたと判定した場合(S756:Yes)、S757に処理を進める。一方、CPU111は、ビデオ入力開始信号が入力されていないと判定した場合(S756:No)、割り込む1107が通知されるまで(即ち、ビデオ入力開始信号が入力されるまで)、S756の処理を繰り返す。
続いて、CPU111は、画像処理部118を介して、ビデオ信号を低圧縮画像データに変換する処理を実行する(S757)。
続いて、CPU111は、S757の処理によって生成された低圧縮画像データを第1の画像メモリ領域121に書き込む(S758)。
続いて、CPU111は、S757で実行された変換処理が完了したか否かを判定する(S759)。CPU111は、変換処理が完了したと判定した場合(S759:Yes)、S760に処理を進める。一方、CPU111は、変換処理が完了していないと判定した場合(S759:No)、S757に処理を戻す。
続いて、CPU111は、圧縮伸張部119を介して、第1の画像メモリ領域121に記憶された低圧縮画像データを圧縮する処理を実行する(S760)。
続いて、CPU111は、S760で生成された符号画像データを第2の画像メモリ領域122に書き込む(S761)。
続いて、CPU111は、S760で実行された圧縮処理が完了したか否かを判定する(S762)。CPU111は、圧縮処理が完了したと判定した場合(S762:Yes)、S763に処理を進める。一方、CPU111は、圧縮処理が完了していないと判定した場合(S762:No)、S760に処理を戻す。
続いて、CPU111は、S754で確保された第1の画像メモリ領域121のリソースを解放する(S763)。尚、第1の画像メモリ領域121のリソースは、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されたことに従って解放される。言い換えれば、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されるまで、第1の画像メモリ領域121のリソースは解放されない。尚、CPU111によってコマンド(画像メモリ120のリソースを解放するためのコマンド)が出力されたことに従って、第1の画像メモリ領域121のリソースが解放される変形例であってもよい。
ここで、図8に示した模式図に説明を戻す。
図8(B)は、S763の処理によって、第2の画像メモリ領域122のリソースのみが画像メモリ120に確保されて、第1の画像メモリ領域121のリソースは画像メモリ120から解放された状態を示している。これにより、例えば、アドレス「0x20000000」で指定された第1の画像メモリ領域121は、他のページのスキャン処理のために画像メモリ120のリソースを割り当てられるようになる。図7に示したフローチャートに説明を戻す。
CPU111は、S763の処理を実行した後、第2の画像メモリ領域122に記憶された符号画像データをHDD114に格納する処理を実行する(S764)。
続いて、CPU111は、第2の画像メモリ領域122から出力された符号画像データをHDD114に書き込む(S765)。
続いて、CPU111は、S764で実行された格納処理が完了したか否かを判定する(S766)。CPU111は、格納処理が完了したと判定した場合(S766:Yes)、S767に処理を進める。一方、CPU111は、格納処理が完了していないと判定した場合(S766:No)、S764に処理を戻す。
続いて、CPU111は、S754で確保された第2の画像メモリ領域122のリソースを解放する(S767)。尚、第2の画像メモリ領域122のリソースは、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されたことに従って解放される。言い換えれば、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されるまで、第2の画像メモリ領域122のリソースは解放されない。尚、CPU111によってコマンド(画像メモリ120のリソースを解放するためのコマンド)が出力されたことに従って、第2の画像メモリ領域122のリソースが解放される変形例であってもよい。
続いて、CPU111は、画像処理部118から出力されるビデオ入力終了信号を待機する(S768)。このビデオ入力終了信号は、S752で設定されたパラメータに基づいて、画像処理部118が内部的に発生させるハードウェア割り込み信号である。
CPU111は、ビデオ入力終了信号が入力されたと判定した場合(S768:Yes)、S769に処理を進める。一方、CPU111は、ビデオ入力終了信号が入力されていないと判定した場合(S768:No)、ビデオ入力信号が入力するまでS768の処理を繰り返す。
続いて、CPU111は、前述したスキャン処理のために使用された画像処理部118のリソースを解放する(S769)。
続いて、CPU111は、次のページが有るか否かを判定する(S770)。尚、次のページとは、2ページ目以降の原稿のことである。例えば、スキャナ部130によってスキャンすべきページ(原稿)が残っている場合、CPU111は、次のページが有ると判定し(S770:Yes)、S752に処理を戻す。一方、CPU111は、次のページが無いと判定した場合(S770:No)、スキャン処理に係る一連の処理(S750)を終了する。
尚、前述したS763で、CPU111は、S760で実行された圧縮処理が完了したことに従って、第1の画像メモリ領域121のリソースを解放する場合について説明したが、これに限られない。
CPU111は、S760で実行された圧縮処理が完了しても第1の画像メモリ領域121のリソースを解放せずに、次のページの原稿が読み取られて画像データが生成されたことに従って、第1の画像メモリ領域121のリソースを解放してもよい。即ち、CPU111は、次のページのビデオ入力開始信号が入力されたと判定されるまで、前のページのために確保された第1の画像メモリ領域121のリソースを解放しなくてもよい。
また、前述したS767で、CPU111は、S764で実行された格納処理が完了したことに従って、第2の画像メモリ領域122のリソースを解放する場合について説明したが、これに限られない。
CPU111は、S764で実行された圧縮処理が完了しても第2の画像メモリ領域122のリソースを解放せずに、次のページの原稿が読み取られて画像データが生成されたことに従って、第2の画像メモリ領域122のリソースを解放してもよい。即ち、CPU111は、次のページのビデオ入力開始信号が入力されたと判定されるまで、前のページのために確保された第2の画像メモリ領域122のリソースを解放しなくてもよい。
もしくは、CPU111は、次ページのために画像メモリ120のリソースを確保しにいくタイミングで、前ページのために確保された画像メモリ120(第1の画像メモリ領域121、及び第2の画像メモリ領域122)のリソースを解放してもよい。
続いて、第1の実施形態に係るMFP103において、スキャナ部130の制御部がコピージョブのスキャン処理を実行する一連の処理を、図12に示すフローチャートを用いて説明する。この処理は、スキャナ部130の制御部のCPUが、スキャナ部130のROMから読み出して、スキャナ部130のRAMに展開された制御プログラムを実行することで行われる。
まず、スキャナ部130の制御部のCPUは、原稿32の引き込みのための準備要求(コマンド1102に対応する。)を待機する(S1201)。スキャナ部130の制御部のCPUは、コマンド1102を受信したことに基づいて、原稿32の引き込みのための準備要求が通知されたと判定し(S1201:Yes)、S1202に処理を進める。一方、スキャナ部130の制御部のCPUは、コマンド1102を受信するまで、S1201の処理を繰り返す。
続いて、スキャナ部130の制御部のCPUは、スキャナ部130の開始処理を実行する(S1202)。
続いて、スキャナ部130の制御部のCPUは、原稿32の引き込みのための開始要求(コマンド1104に対応する。)を待機する(S1203)。スキャナ部130の制御部のCPUは、コマンド1104を受信したことに基づいて、原稿32の引き込みのための開始要求が通知されたと判定し(S1203:Yes)、S1204に処理を進める。一方、スキャナ部130の制御部のCPUは、コマンド1104を受信するまで、S1203の処理を繰り返す。
続いて、スキャナ部130の制御部のCPUは、原稿トレイ30に載置された原稿32の引き込みを開始する(S1204)。このとき、スキャナ部130の制御部のCPUがコマンド1105を出力し、コントローラ部110のCPU111がコマンド1105を受信する。これにより、原稿32の引き込みが開始される。
続いて、スキャナ部130の制御部のCPUは、コントローラ部110からのスキャンビデオ要求があったか否かを判定する(S1205)。スキャナ部130の制御部のCPUは、コマンド1106を受信したことに基づいて、スキャナ部130からのスキャン画像のビデオ信号の入力の要求があったと判定し(S1205:Yes)、S1206に処理を進める。一方、スキャナ部130の制御部のCPUは、コマンド1106を受信するまで、S1205の処理を繰り返す。
続いて、スキャナ部130の制御部のCPUは、コントローラ部110に対して、ビデオ開始を示す割り込み信号(割り込み1107に対応する。)を出力する(S1206)。これにより、図7で前述したS756において、CPU111は、YESと判定する。
続いて、スキャナ部130の制御部のCPUは、スキャン画像のビデオ信号が終了か否かを判定する(S1207)。スキャナ部130の制御部のCPUは、スキャン画像のビデオ信号が終了であると判定した場合(S1207:Yes)、S1208に処理を進める。一方、スキャナ部130の制御部のCPUは、スキャン画像のビデオ信号が終了でないと判定した場合(S1207:No)、スキャン画像のビデオ信号が終了となるまでS1207の処理を繰り返す。
スキャナ部130の制御部のCPUは、コントローラ部110に対して、スキャン画像のビデオ信号の終了を示す割り込み信号を出力した後(S1208)、次ページが有るか否かを判定する(S1209)。尚、次のページとは、2ページ目以降の原稿32のことである。例えば、原稿トレイ30に載置された原稿32が残っている場合、スキャナ部130の制御部のCPUは、次ページが有ると判定し(S1209:Yes)、S1203に処理を戻す。一方、原稿トレイ30に載置された原稿32が残っていない場合、スキャナ部130の制御部のCPUは、次ページが無いと判定し(S1209:No)、所定の終了処理を実行する(S1210)。そして、S1210の処理の後、スキャナ部130の制御部がコピージョブのスキャン処理を実行する一連の処理を終了する。
続いて、第1の実施形態に係るMFP103において、実行指示を受け付けたコピージョブのプリント処理を実行する一連の処理(S800)を、図9に示すフローチャートを用いて説明する。この処理は、CPU111が、ROM113又はHDD114から読み出してRAM112に展開された制御プログラムを実行することで行われる。
プリンタ部140は、コマンド1110を受信したことに従って、S801〜S804の処理を実行する。
まず、CPU111は、図3(B)で示したように、プリントのための画像処理の順序、及び画像領域の順序を規定したプリント画像パス4000を設定する(S801)。
続いて、CPU111は、図3(B)のS4001〜S4003で説明した画像処理を行うための各種パラメータを画像処理部118に設定する(S802)。
続いて、CPU111は、S802で設定された各種パラメータに基づいて、第3の画像メモリ領域123、及び第4の画像メモリ領域124のそれぞれに対して確保すべきリソースを算出する(S803)。尚、第3の画像メモリ領域123、及び第4の画像メモリ領域124のそれぞれに対して確保すべきリソースは、原稿を読み取って生成される画像データのデータサイズによって決まる。尚、原稿を読み取って生成される画像データのデータサイズは、例えば、カラー、モノクロ、読み取り解像度、読み取り原稿のサイズ等の設定に依存する。
続いて、CPU111は、S803で算出された結果に基づいて、第3の画像メモリ領域123、及び第4の画像メモリ領域124のそれぞれに対して確保すべきリソースを確保する(S804)。
ここで、プリント処理におけるメモリ制御について図10に示す模式図を用いて説明する。
図10(A)は、画像メモリ120に対して、第1の画像メモリ領域121、及び第2の画像メモリ領域122のリソースが確保された後、第3の画像メモリ領域123、及び第4の画像メモリ領域124の夫々のリソースが更に確保された状態を示している。
第3の画像メモリ領域123は、例えば、アドレス「0x80000000」で指定される領域である。仮に、画像メモリ120に格納すべき符号画像データのサイズが25MByteである場合、アドレス「0x80000000」から25MByte分の領域が確保される。
第4の画像メモリ領域124は、例えば、アドレス「0x90000000」で指定される領域である。仮に、画像メモリ120に格納すべき低圧縮画像データのサイズが133MByteである場合、アドレス「0x90000000」から133MByte分の領域が確保される。
尚、画像メモリ120に確保される領域のサイズは、第1の画像メモリ領域121と第4の画像メモリ領域124とで同一のサイズとなり、第2の画像メモリ領域122と第3の画像メモリ領域123とで同一のサイズとなる。
図9に示したフローチャートに説明を戻す。
CPU111は、S804の処理を実行した後、プリンタ部140に対して印刷を指示するコマンド(コマンド1113に対応する。)を出力する(S805)。
続いて、CPU111は、ビデオ出力開始信号(割り込み1114に対応する。)を待機する(S806)。このビデオ出力開始信号は、プリンタ部140からデバイスI/F116を介して画像処理部118に入力されるハードウェア割り込み信号である。
続いて、CPU111は、第1の画像メモリ領域121のリソースが解放されているか否かを判定する(S807)。CPU111は、リソースが解放されていると判定した場合(S807:Yes)、S813に処理を進める。一方、CPU111は、リソースが解放されていないと判定した場合(S807:No)、S808に処理を進める。
尚、第1の画像メモリ領域121に同一ページの原稿の低圧縮画像データが格納されている場合、CPU111は、第1の画像メモリ領域121のリソースが解放されていないと判定する(S807:No)。一方、第1の画像メモリ領域121に同一ページの原稿の低圧縮画像データが格納されていない場合、CPU111は、第1の画像メモリ領域121のリソースが解放されていると判定する(S807:Yes)。
もしくは、画像メモリ120のリソースを解放するためのコマンドが出力された場合、CPU111は、第1の画像メモリ領域121のリソースが解放されていると判定してもよい(S807:Yes)。一方、画像メモリ120のリソースを解放するためのコマンドが出力されていない場合、CPU111は、第1の画像メモリ領域121のリソースが解放されていないと判定してもよい(S807:No)。
まず、S808以降の処理について説明する。
CPU111は、画像メモリ120から低圧縮画像データを読み出すためのアドレスとして、第4の画像メモリ領域124を参照するためのアドレス(d)から、第1の画像メモリ領域121を参照するためのアドレス(a)に変更する(S808)。
ここで、図10に示した模式図に説明を戻す。
図10(B)は、S808の処理によって、画像メモリ120から低圧縮画像データを読み出すためのアドレスとして、アドレス「0x90000000」からアドレス「0x20000000」に置き換えた状態を示している。これにより、CPU111は、プリンタ部140にビデオ信号を出力するための前処理として、アドレス「0x20000000」で指定される領域(即ち、第1の画像メモリ領域121)に格納された低圧縮画像データを読み出すことができるようになる。
図9に示したフローチャートに説明を戻す。
CPU111は、S808の処理を実行した後、S804で確保された第3の画像メモリ領域123、及び第4の画像メモリ領域124のリソースを解放する(S809)。尚、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されたことに従って、第3の画像メモリ領域123、及び第4の画像メモリ領域124のリソースが解放される。言い換えれば、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されるまで、第3の画像メモリ領域123、及び第4の画像メモリ領域124のリソースは解放されない。尚、CPU111によってコマンド(画像メモリ120のリソースを解放するためのコマンド)が出力されたことに従って、第3の画像メモリ領域123、及び第4の画像メモリ領域124のリソースが解放される変形例であってもよい。
ここで、図10に示した模式図に説明を戻す。
図10(C)は、第1の画像メモリ領域121、及び第2の画像メモリ領域122のリソースが画像メモリ120に確保されて、第3の画像メモリ領域123、及び第4の画像メモリ領域124のリソースは画像メモリ120から解放された状態を示している。これにより、例えば、アドレス「0x80000000」で指定された第3の画像メモリ領域123は、他のページのスキャン処理のために画像メモリ120のリソースを割り当てられるようになる。また、例えば、アドレス「0x90000000」で指定された第4の画像メモリ領域124は、他のページのスキャン処理のために画像メモリ120のリソースを割り当てられるようになる。
図9に示したフローチャートに説明を戻す。
CPU111は、S809の処理を実行した後、画像処理部118を介して、第1の画像メモリ領域121に記憶された低圧縮画像データをビデオ信号に変換する処理を実行する(S810)。
続いて、CPU111は、S809の処理で生成されたビデオ信号をプリンタ部140に出力する(S811)。
続いて、CPU111は、S809で実行された変換処理が完了したか否かを判定する(S812)。CPU111は、変換処理が完了したと判定した場合(S812:Yes)、S830に処理を進める。一方、CPU111は、変換処理が完了していないと判定した場合(S812:No)、S810に処理を戻す。
次に、S813以降の処理について説明する。
CPU111は、第2の画像メモリ領域122のリソースが解放されているか否かを判定する(S813)。CPU111は、第2の画像メモリ領域122のリソースが解放されていると判定した場合(S813:Yes)、S819に処理を進める。一方、CPU111は、第2の画像メモリ領域122のリソースが解放されていないと判定した場合(S813:No)、S814に処理を進める。
尚、第2の画像メモリ領域122に同一ページの原稿の符号画像データが格納されている場合、CPU111は、第2の画像メモリ領域122のリソースが解放されていないと判定する(S813:No)。一方、第2の画像メモリ領域122に同一ページの原稿の符号画像データが格納されていない場合、CPU111は、第2の画像メモリ領域122のリソースが解放されていると判定する(S813:Yes)。
もしくは、画像メモリ120のリソースを解放するためのコマンドが出力された場合、CPU111は、第2の画像メモリ領域122のリソースが解放されていると判定してもよい(S813:Yes)。一方、画像メモリ120のリソースを解放するためのコマンドが出力されていない場合、CPU111は、第2の画像メモリ領域122のリソースが解放されていないと判定してもよい(S813:No)。
CPU111は、画像メモリ120から符号画像データを読み出すためのアドレスとして、第3の画像メモリ領域123を参照するためのアドレス(c)から、第2の画像メモリ領域122を参照するためのアドレス(b)に変更する(S814)。
続いて、CPU111は、S804で確保された第3の画像メモリ領域123のリソースを解放する(S815)。尚、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されたことに従って、第3の画像メモリ領域123のリソースが解放される。言い換えれば、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されるまで、第3の画像メモリ領域123のリソースは解放されない。尚、CPU111によってコマンド(画像メモリ120のリソースを解放するためのコマンド)が出力されたことに従って、第3の画像メモリ領域123のリソースが解放される変形例であってもよい。
続いて、CPU111は、圧縮伸張部119を介して、第2の画像メモリ領域121(B)に記憶された符号画像データを伸張する処理を実行する(S816)。
続いて、CPU111は、S816の処理で生成された低圧縮画像データを第4の画像メモリ領域に書き込む(S817)。
続いて、CPU111は、S815で実行された伸張処理が完了したか否かを判定する(S818)。CPU111は、伸張処理が完了したと判定した場合(S818:Yes)、S826に処理を進める。一方、CPU111は、伸張処理が完了していないと判定した場合(S818:No)、S816に処理を戻す。
次に、S819以降の処理について説明する。
CPU111は、HDD114から符号画像データを読み出す処理を実行する(S819)。
続いて、CPU111は、S819で読み出された符号画像データを第3の画像メモリ領域123に書き込む(S820)。
続いて、CPU111は、S819で実行された読み出し処理が完了したか否かを判定する(S821)。CPU111は、読み出し処理が完了したと判定した場合(S821:Yes)、S822に処理を進める。一方、CPU111は、読み出し処理が完了していないと判定した場合(S821:No)、S819に処理を戻す。
続いて、CPU111は、圧縮伸張部119を介して、第3の画像メモリ領域123に記憶された符号画像データを伸張する処理を実行する(S822)。
続いて、CPU111は、S821で生成された低圧縮画像データを第4の画像メモリ領域124に書き込む(S823)。
続いて、CPU111は、S822で実行された伸張処理が完了したか否かを判定する(S824)。CPU111は、伸張処理が完了したと判定した場合(S824:Yes)、S825に処理を進める。一方、CPU111は、伸張処理が完了していないと判定した場合(S824:No)、S822に処理を戻す。
続いて、CPU111は、S804で確保された第3の画像メモリ領域124のリソースを解放する(S825)。尚、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されたことに従って、第3の画像メモリ領域123のリソースが解放される。言い換えれば、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されるまで、第3の画像メモリ領域123のリソースは解放されない。尚、CPU111によってコマンド(画像メモリ120のリソースを解放するためのコマンド)が出力されたことに従って、第3の画像メモリ領域123のリソースが解放される変形例であってもよい。
次に、S826以降の処理について説明する。
CPU111は、画像処理部118を介して、第4の画像メモリ領域124に記憶された低圧縮画像データをビデオ信号に変換する処理を実行する(S826)。
続いて、CPU111は、S826で生成されたビデオ信号をプリンタ部140に出力する(S827)。
続いて、CPU111は、S826で実行された変換処理が完了したか否かを判定する(S828)。CPU111は、変換処理が完了したと判定した場合(S828:Yes)、S804で確保された第4の画像メモリ領域124のリソースを解放する(S829)。尚、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されたことに従って、第4の画像メモリ領域124のリソースが解放される。言い換えれば、CPU111によって出力されたコマンド(画像メモリ120のリソースを解放するためのコマンド)が受信されるまで、第4の画像メモリ領域124のリソースは解放されない。尚、CPU111によってコマンド(画像メモリ120のリソースを解放するためのコマンド)が出力されたことに従って、第4の画像メモリ領域124のリソースが解放される変形例であってもよい。
次に、S830以降の処理について説明する。
プリンタ部140は、S811、又はS827の処理によって出力されたビデオ信号(即ち、画像データ)に基づいて、シートに画像を印刷する(S830)。
続いて、CPU111は、画像処理部118から出力されるビデオ出力終了信号を待機する(S831)。このビデオ出力終了信号は、S802で設定されたパラメータに基づいて、画像処理部118が内部的に発生させるハードウェア割り込み信号である。CPU111は、ビデオ出力終了信号が入力されたと判定した場合(S831:Yes)、S832に処理を進める。一方、CPU111は、ビデオ出力終了信号が入力されていないと判定した場合(S831:No)、ビデオ出力終了信号が入力されるまでS831の処理を繰り返す。
続いて、CPU111は、前述したプリント処理のために使用された画像処理部118のリソースを解放する(S832)。
続いて、CPU111は、次のページが有るか否かを判定する(S833)。例えば、プリンタ部140によってプリントすべきページが残っている場合、CPU111は、次のページが有ると判定し(S833:Yes)、S802に処理を戻す。一方、CPU111は、次のページが無いと判定した場合(S833:No)、プリント処理に係る一連の処理(S800)を終了する。
第1の実施形態では、印刷のために画像メモリ120から画像データが読み出される速度よりも、原稿の読み取りにより画像メモリ120に画像データが書き込まれる速度の方が速いMFP103で、複数ページの原稿のコピーを実行する場合について説明した。
図9で説明した制御例では、複数ページの原稿のコピーの実行時に、画像メモリ120に記憶された画像データに基づく印刷を実行できなくなるまで、画像メモリ120に記憶された画像データを読み出して、読み出された画像データに基づく印刷を実行した。また、図9で説明した制御例では、複数ページの原稿のコピーの実行時に、画像メモリ120に記憶された画像データに基づく印刷を実行できなくなったら、HDD114に記憶された画像データを読み出して、読み出された画像データに基づく印刷を実行した。
これにより、印刷のために画像メモリ120から画像データが読み出される速度よりも、原稿の読み取りにより画像メモリ120に画像データが書き込まれる速度の方が速い場合であっても、画像メモリ120でオーバーフローが発生することを防ぐ事ができる。
以上説明したように、本発明を適用した第1の実施形態では、印刷装置は、複数の原稿を読み取って生成された画像データを第1の記憶手段(例えば、画像メモリ120)に記憶した。続いて、印刷装置は、第1の記憶手段から読み出された画像データを第2の記憶手段(例えば、HDD114)に記憶した。そして、印刷装置は、第1の記憶手段、及び第2の記憶手段のいずれか一つに記憶された画像データに基づく印刷を実行した。
印刷装置は、第1の記憶手段に記憶された原稿の画像データに基づく印刷を実行できなくなるまで、第1の記憶手段に記憶された当該原稿の画像データに基づく印刷を実行した。一方、印刷装置は、第1の記憶手段に記憶された原稿の画像データに基づく印刷を実行できなくなったら、第2の記憶手段に記憶された当該原稿の画像データに基づく印刷を実行した。このような制御により、複数ページの原稿のコピーの実行時に、画像メモリ120のような記憶手段(記憶部)でオーバーフローを発生させることがない。また、複数ページの原稿を読み取り、複数ページの原稿を読み取って生成された画像データに基づく印刷を実行するための処理時間を短縮することができる。
[第2の実施形態]
第1の実施形態では、スキャン処理のために第1の画像メモリ領域121、及び第2の画像メモリ領域122のリソースを確保し、プリント処理のために第3の画像メモリ領域123、及び第4の画像メモリ領域124のリソースを確保する例を説明した。
第2の実施形態でも、スキャン処理のために第1の画像メモリ領域121、及び第2の画像メモリ領域122のリソースを確保する。一方、第2の実施形態では、プリント処理のために第3の画像メモリ領域123のリソースを確保するが、第4の画像メモリ領域124のリソースを確保しない例について説明する。
尚、第2の実施形態に係るMFP103でも、第1の実施形態と同様に、印刷のために画像メモリ120から画像データが読み出される速度よりも、原稿の読み取りにより画像メモリ120に画像データが書き込まれる速度の方が速い場合について想定する。
第2の実施形態に係る制御例では、前述した第1の実施形態に係る制御例に対して、一部の処理が異なる。そこで、第1の実施形態とは異なる処理を中心に図13、及び図14で説明する。尚、第1の実施形態で説明した処理と同一の処理については、同一のステップ番号を付し、詳細な説明を省略する。
まず、画像メモリ120又はHDD114からデータが読み出された後、プリンタ部140にビデオ信号が出力されるまでの一連の処理(S4001、S9002、及びS9003)を、図13に示す模式図を用いて説明する。
CPU111は、プリントのための画像処理の順序、及び画像領域の順序を規定した図13に示すプリント画像パス9000を設定する。そして、CPU111は、プリント画像パス9000を設定した後に、S4001、S9002、及びS9003の処理を実行する。尚、CPU111は、S4001、S9002、及びS9003で説明する画像処理を画像処理部118で行うための各種パラメータの設定を行う。
S9002で、第3の画像メモリ領域123に格納された符号画像データを圧縮伸張部119で伸張して低圧縮画像データを生成する。この時、生成された低圧縮画像データは、第4の画像メモリ領域124に格納されない。なぜなら、第2の実施形態では、プリント処理の開始時に、第3の画像メモリ領域123のリソースは確保されるが、第4の画像メモリ領域124のリソースは確保されないからである。
S9003で、S9002で生成された低圧縮画像データをビデオ信号に変換してプリンタ部140に出力する。即ち、第2の実施形態では、符号画像データを伸張して生成された低圧縮画像データをビデオ信号に変換する処理が、画像メモリ120を介さずに行われる。
続いて、第2の実施形態に係るMFP103において、コピー処理の動作時にスキャン処理とプリント処理を並列で動作させた時の処理の順序を、図14(A)、及び図14(B)の模式図を用いてそれぞれ説明する。
また、第2の実施形態におけるコピー処理の動作では、第3の画像メモリ領域123を参照するためのアドレス(c)を、第1の画像メモリ領域121を参照するためのアドレス(a)に置き換えることができる設定となっている。
また、第2の実施形態におけるコピー処理の動作では、第3の画像メモリ領域123を参照するためのアドレス(c)を、第2の画像メモリ領域122を参照するためのアドレス(b)に置き換えることができる設定となっている。
図14(A)は、図4(A)で説明したスキャン処理のフェーズで、プリント処理が開始された場合のコピー処理動作の処理内容を表す。このコピー処理動作のフェーズでは、第3の画像メモリ領域123を参照するためのアドレス(c)が、第1の画像メモリ領域121を参照するためのアドレス(a)を参照するためのアドレスに置き換えられる。
S9003の処理において、CPU111は、第1の画像メモリ領域121に格納された低圧縮画像データを読み出した後、読み出された低圧縮画像データの圧縮率に応じた伸張処理のためのパラメータを画像処理部118に設定する。そして、CPU111は、圧縮伸張部119を介して、第1の画像メモリ領域121に格納された低圧縮画像データを伸張処理のためのパラメータに基づいて伸張する。そして、CPU111は、この伸張処理によって生成された新たな圧縮率の低圧縮画像データをビデオ信号に変換した後、変換されたビデオ信号をプリンタ部140に出力する。
即ち、図14(A)のコピー処理動作では、S3001、及びS9003の処理でコピー処理の動作が行われるため、図3(A)で説明したS4001の処理を省略することができる。このため、シートへの画像の印刷が開始されるまでの時間を短縮することができる。
図14(B)は、図4(C)で説明したスキャン処理のフェーズで、プリント処理が開始された場合のコピー処理動作の処理内容を表す。このコピー処理動作のフェーズでは、S3001、及びS3002の処理が完了し、且つ、S3003の処理が実行中である。即ち、当該フェーズでは、第2の画像メモリ領域122のリソースがS3003の処理のために使用中である。言い換えれば、当該フェーズでは、第2の画像メモリ領域122のリソースがまだ解放されていない。一方、当該フェーズでは、第1の画像メモリ領域121のリソースは解放された状態である。このため、図14(B)のコピー処理動作では、第3の画像メモリ領域123を参照するためのアドレス(c)が、第2の画像メモリ領域122を参照するためのアドレス(b)を参照するためのアドレスに置き換えられる。
S9002の処理において、CPU111は、第2の画像メモリ領域122に格納された符号画像データを読み出した後、圧縮伸張部119を介して符号圧縮画像データを伸張する。そして、S9003の処理において、CPU111は、S9002の処理で生成された低圧縮画像データをビデオ信号に変換した後、変換されたビデオ信号をプリンタ部140に出力する。
即ち、図14(B)のコピー処理動作では、S3001、S3002、S9002、及びS9003の処理でコピー処理の動作が行われるため、図3(A)で説明したS4001の処理を省略することができる。このため、シートへの画像の印刷が開始されるまでの時間を短縮することができる。
第2の実施形態では、印刷のために画像メモリ120から画像データが読み出される速度よりも、原稿の読み取りにより画像メモリ120に画像データが書き込まれる速度の方が速いMFP103で、複数ページの原稿のコピーを実行する場合について説明した。
図14で説明した制御例では、複数ページの原稿のコピーの実行時に、画像メモリ120に記憶された画像データに基づく印刷を実行できなくなるまで、画像メモリ120に記憶された画像データを読み出して、読み出された画像データに基づく印刷を実行した。又、図5(B)で説明した制御例では、複数ページの原稿のコピーの実行時に、画像メモリ120に記憶された画像データに基づく印刷を実行できなくなったら、HDD114に記憶された画像データを読み出し、読み出された画像データに基づく印刷を実行した。
これにより、印刷のために画像メモリ120から画像データが読み出される速度よりも、原稿の読み取りにより画像メモリ120に画像データが書き込まれる速度の方が速い場合であっても、画像メモリ120でオーバーフローが発生することを防ぐ事ができる。
本発明を適用した第2の実施形態では、プリント処理のために第3の画像メモリ領域123のリソースを確保するが、第4の画像メモリ領域124のリソースは確保しない場合について説明した。即ち、本発明を適用した第2の実施形態では、符号画像データを伸張して生成された低圧縮画像データをビデオ信号に変換する処理が、画像メモリ120を介さずに行われる場合について説明した。
このような制御により、複数ページの原稿のコピーの実行時に、画像メモリ120のような記憶手段(記憶部)でオーバーフローを発生させることがない。また、複数ページの原稿を読み取り、複数ページの原稿を読み取って生成された画像データに基づく印刷を実行するための処理時間を短縮することができる。
(その他の実施形態)
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
例えば、本実施形態では、MFP103のコントローラ部110のCPU111が上記各種制御の主体となっていたが、これに限らない。MFP103と別筐体の外付けコントローラ等の印刷制御装置によって、上記各種制御の一部又は全部を実行可能に構成しても良い。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。