(57)【特許請求の範囲】
【請求項１】
画像データを印刷する第１の処理手段と、
画像データのプレビュー画像を表示する第２の処理手段と、
前記第１の処理手段と前記第２の処理手段とで共通に使用されるメモリと、
ユーザから指示されたアプリケーションの種類に基づき前記第１の処理手段と前記第２の処理手段とを並行して使用するか否か判定する判定手段と、
前記判定手段によって前記第１の処理手段と前記第２の処理手段とを並行して使用すると判定された場合、前記第１の処理手段と前記第２の処理手段の両者のために割り当てる前記メモリのサイズを決定する決定手段とを有することを特徴とする画像処理装置。
【請求項２】
前記判定手段は、ユーザから指示されたアプリケーションの種類と設定内容の組み合わせに基づいて、前記第１の処理手段と前記第２の処理手段とを並行して使用するか否かを判定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
アプリケーションの種類として、メモリカードに記憶されたデータを印刷するカード印刷モードが指示された場合、前記判定手段は、前記第１の処理手段と前記第２の処理手段とを並行して使用すると判定することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記決定手段は、前記第１の処理手段に対し、前記第２の処理手段よりも大きいサイズを割り当てることを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記判定手段が前記第１および第２の処理手段を並行して実行すると判定した後、前記第１の処理手段が実行されないと判定された場合、前記決定手段は、前記第１の処理手段と前記第２の処理手段の両者のために割り当てられた前記メモリのサイズを、前記第２の処理手段が単独で前記メモリを使用するように変更することを特徴とする請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
画像データを印刷する第１の処理手段と、画像データのプレビュー画像を表示する第２の処理手段と、前記第１の処理手段と前記第２の処理手段とで共通に使用されるメモリを備える画像処理装置において読取可能なプログラムであって、
ユーザから指示されたアプリケーションの種類に基づき前記第１の処理手段と前記第２の処理手段とを並行して使用するか否か判定する判定ステップと、
前記判定ステップによって前記第１の処理手段と前記第２の処理手段とを並行して使用すると判定された場合、前記第１の処理手段と前記第２の処理手段の両者のために割り当てる前記メモリのサイズを決定する決定ステップを前記画像処理装置に実行させることを特徴とするプログラム。
【請求項７】
前記判定ステップは、ユーザから指示されたアプリケーションの種類と設定内容の組み合わせに基づいて、前記第１の処理手段と前記第２の処理手段とを並行して使用するか否かを判定することを特徴とする請求項６に記載のプログラム。
【請求項８】
アプリケーションの種類として、メモリカードに記憶されたデータを印刷するカード印刷モードが指示された場合、前記判定ステップは、前記第１の処理手段と前記第２の処理手段とを並行して使用すると判定することを特徴とする請求項６または７に記載のプログラム。
【請求項９】
前記決定ステップは、前記第１の処理手段に対し、前記第２の処理手段よりも大きいサイズを割り当てることを特徴とする請求項６〜８のいずれか１項に記載のプログラム。
【請求項１０】
前記判定ステップが前記第１および第２の処理手段を並行して実行すると判定した後、前記第１の処理手段が実行されないと判定された場合、前記決定ステップは、前記第１の処理手段と前記第２の処理手段の両者のために割り当てられた前記メモリのサイズを、前記第２の処理手段が単独で前記メモリを使用するように変更することを特徴とする請求項６〜９のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを処理する画像処理装置及びその制御方法に関する。
【背景技術】
【０００２】
従来、画像データを処理する画像処理装置において、入力された画像データの表示と印刷とを行うものが知られている（特許文献１参照）。特許文献１では、受信した制御データ中に印刷データのプレビューを指示する信号が含まれていた場合は、受信した印刷データを一時的に記憶する受信バッファメモリを小さくし、空いたバッファメモリをプレビュー用に割り当てる。これにより、印刷処理とプレビュー処理を同時に行うことが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１６０４０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載のものは、プレビューを指示する制御コマンドを受けてから、印刷受信バッファのサイズを小さくしていき、プレビュー用のバッファを確保している。よって印刷受信バッファが必要分小さくなるまでは、バッファの空き待ちが発生し、プレビュー処理（またはプレビュー後の操作）を行うことができない。
【０００５】
本発明は、上記の点に鑑みなされたものであり、複数の処理を並行して行う必要がある場合に処理が滞るような事態をなるべく低減した画像処理装置及びその制御方法並びにプログラムを提供するものである。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の画像処理装置は、画像データを印刷する第１の処理手段と、画像データのプレビュー画像を表示する第２の処理手段と、前記第１の処理手段と前記第２の処理手段とで共通に使用されるメモリと、ユーザから指示されたアプリケーションの種類に基づき前記第１の処理手段と前記第２の処理手段とを並行して使用するか否か判定する判定手段と、前記判定手段によって前記第１の処理手段と前記第２の処理手段とを並行して使用すると判定された場合、前記第１の処理手段と前記第２の処理手段の両者のために割り当てる前記メモリのサイズを決定する決定手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ユーザから指示された処理の内容に基づき２つの処理手段を並行して使用するか判定し、その判定結果に応じて割り当てるサイズを決定するので、事前に割り振りを決めることができ、処理の開始が滞る事態を低減できる。
【図面の簡単な説明】
【０００８】
【図１】実施形態の画像処理装置の構成を示すブロック図である。
【図２】画像処理装置の共通バッファメモリの割り振りを示す図である。
【図３】画像処理装置の共通バッファメモリの割り振りを示す図である。
【図４】画像処理装置の共通バッファメモリの割り振りを示す図である。
【図５】画像処理装置のプログラムの構成を示す図である。
【図６】画像処理装置による処理の流れを示すフローチャートである。
【図７】画像処理装置による処理の流れを示すフローチャートである。
【図８】画像処理装置による処理の流れを示すフローチャートである。
【図９】共通バッファメモリの割り振りの遷移図である。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１０】
図１は、本実施形態における画像処理装置の構成を示すブロック図である。
【００１１】
図１において、操作部１０１はハードキーやソフトキーを含み（タッチパネル形式でもよい）、ユーザによる各種操作を受け付ける。操作部１０１には、メモリカードに記憶された画像データを選択し記録をスタートするためのダイレクト写真印刷スタートキーを有する。またモノクロ画像やカラー画像の読取を開始する時のスキャンスタートキー、コピー時に使用されるモノクロコピースタートキー、カラーコピースタートキーを有する。また操作部１０１は、コピーやスキャンの解像度や画質などのモードを指定するモードキー、コピー等の動作を停止するためのストップキー、コピー部数を入力するテンキーや登録キー、印刷する画像ファイル選択手段を指定するカーソルキー等も有する。カードインタフェース１０２はメモリカードをセット可能であり、セットされたメモリカードに記憶されている画像データを操作部１０１からの指示に従って入力可能である。読取部１０３はＣＣＤを備え、このＣＣＤは、原稿画像を読み取り、赤（Ｒ）、緑（Ｇ）および青（Ｂ）色のアナログ輝度データを出力する。なお、読取部１０３はＣＣＤの代わりに、密着型イメージセンサ（ＣＩＳ）を使用するようにしてもよい。記録部１０４は入力された画像データに応じて記録シート上にインク、トナー等の記録剤を付与して画像をプリントする。読取部１０３、記録部１０４のそれぞれの動作において、給排紙ローラを駆動するためのステッピングモータと、ステッピングモータの駆動力を伝達するギヤと、ステッピングモータを制御するドライバ回路などを含む。
【００１２】
ＣＰＵ２００はＲＯＭ２０１に記憶されている制御命令プログラムや画像処理プログラム等をＲＡＭ２０２にロードし、それを実行することによって画像処理装置の動作を制御する。ＣＰＵ２００は操作部１０１の各種キーの押下状態を検出し、この押下状態に応じて、各部を制御する。ＲＡＭ２０２は各種プログラムやプログラムの実行の際に必要な各種設定値の記憶の他、記録部１０４がプリントを実行するための印刷データの記憶も行う。表示部２０３は操作部１０１の操作状態、画像処理装置の各種状態などユーザに通知すべき種々の情報を表示可能である。また表示部２０３は入力された画像データのプレビュー画像（記録部１０４によるプリント前の確認画像）を表示可能である。画像処理部２０４においては、読取部１０３にて読み取られた画像および圧縮／解凍部２０５で解凍された画像の入力画像処理が実行される。またカードインタフェース１０２を介して読み取られた画像が圧縮／解凍部２０５で解凍された画像の出力画像処理も実行する。入力画像処理および出力画像処理は、デジタルカメラ等に用いられている色空間（例えばＹＣｂＣｒ）と標準的なＲＧＢ色空間（例えばＮＴＳＣ−ＲＧＢやｓＲＧＢ）との変換を行う。また画像データの解像度の変換処理、画像データを包括する画像ファイルに含まれるヘッダ情報の生成および解析処理、画像の解析処理および画像補正処理、サムネイル画像生成および補正処理等の機能を備えている。これらの画像処理によって得られた画像データはＲＡＭ２０２に格納され、カードインタフェース１０２を介してメモリカードに記録する場合には必要な所定量に達すると記録処理が実行される。また記録部１０４で印刷される場合にも必要な所定量に達すると記録部１０４による記録動作が実行される。圧縮／解凍部２０５においては、読取部１０３にて読み取られた画像および記録部１０４で出力される画像の圧縮／解凍処理を実行する。例えばＪＰＥＧなどの圧縮画像の生成及びその解凍処理である。
【００１３】
図２は、図１の画像処理装置のＲＡＭ２０２の割り当てを示す図である。ＲＡＭ２０２には、図２（ａ）に示すような、共通バッファメモリ３０１とそれ以外に分けられ、共通バッファメモリ３０１は記録部１０４によるプリント処理と表示部２０３によるプレビュー処理とにおいて共通に用いられる領域である。その他の領域は他の用途に用いられる。
【００１４】
記録部１０４によるプリント処理を行う際は、図２（ｂ）に示すように共通バッファメモリ３０１を、記録部１０４によるプリント処理のための印刷ワークバッファ３０２と受信する印刷データを記憶するための印刷受信バッファ３０３とに区別して使用する。印刷受信バッファ３０３は、カードインタフェース１０２や読取部１０３等から得られた印刷画像を一時格納するためのバッファであり、格納された印刷画像に対して画像処理等（例えば拡縮・回転・伸長処理）が施され、印刷データが生成される。その印刷データが必要な所定量蓄積されるとプリント動作が実行される。印刷ワークバッファ３０２は、それら画像処理等を実行する際に内部的に必要なワーク領域である。よって印刷ワークバッファ３０２は動作内容に関わらず所定のサイズ分が必要なバッファメモリとなる。一方、印刷受信バッファ３０３は最低限のサイズを割り振ることができれば動作は可能となるが、サイズが小さくなると印刷画像の受信を分割して行わなくてはならなくなり、画像処理等の処理速度の低下を招くことがあるのである程度のサイズは確保する。
【００１５】
表示部２０３によるプレビュー処理を行う際は、図２（ｃ）に示すように共通バッファメモリ３０１を、プレビュー処理のためのプレビューワークバッファ３０４と受信する表示対象の画像データを記憶するためのプレビュー受信バッファとに区別して使用する。プレビュー受信バッファ３０５は、カードインタフェース１０２等から得られた画像データを一時格納するためのバッファであり、格納された画像データに対して画像処理等（例えば拡縮・回転・伸長処理）が施され、プレビュー画像が生成される。プレビュー画像が一面分蓄積されるとプレビュー表示が実行される。プレビューワークバッファ３０４は、それら画像処理等を実行する際に内部的に必要なワーク領域である。よってプリント処理同様、プレビューワークバッファ３０４は動作内容に関わらず所定サイズ分必要なバッファメモリである。そしてプレビュー受信バッファ３０５は最低限必要なサイズを割り振ることができれば動作は可能となるが、サイズが小さくなると画像データの受信を分割して行わなくてはならなくなり、画像処理等の処理速度の低下を招くためある程度のサイズは確保する。なお、プレビュー処理の際は、プリント処理で扱う画像データより画素数を減らしたプレビュー用画像データを用いるため、プリント処理よりも使用するメモリ量（サイズ）は少なくなる。
【００１６】
次に図３、４を用いて、各処理における受信バッファ、ワークバッファの割り振りについて説明する。前述のとおり、印刷処理を行うには印刷受信バッファ３０３と印刷ワークバッファ３０２、プレビュー処理を行うにはプレビュー受信バッファ３０５とプレビューワークバッファ３０４を確保する必要がある。しかし、ＲＡＭ２０２のサイズをなるべく小さくするために、本実施形態のように印刷とプレビューでバッファメモリを共有すると、次のような処理が起こりうる。即ち、各処理で処理速度の低下を防ぐために最大限のバッファメモリを受信バッファに割り当てると、同時処理を行った際に共有バッファメモリが不足し、メモリの空き待ちが発生してしまう。そこで本実施形態では、図３、４に示すように、印刷処理とプレビュー処理の同時動作が発生する可能性があるか否かで、各処理の受信バッファの割り振るバッファサイズを切り替えることで、メモリの空き待ちが発生する可能性を低減する。なお、図３、４に示すように、印刷処理の方が表示処理よりも扱う画像データのサイズが大きく、また処理負荷も高いため、プレビュー処理よりも大きいサイズのメモリ領域が割り振られる。
【００１７】
図３は、記録部１０４によるプリント処理のためのバッファサイズの割り振りを示した図である。
【００１８】
プリント処理を単独で行う場合は、図３（ａ）に示すように共通バッファメモリ３０１をプリント処理のために全て使用する。詳細は後述するが、ジョブ発行元となるアプリケーションの種類から同時動作の可能性の有無を判定し、同時動作の可能性なしと判定された場合に図３（ａ）のような割り振りがなされる。図３（ａ）に示すように、共通バッファメモリのうち、印刷ワークバッファを差し引いた残りのバッファメモリを最大限に印刷受信バッファとして割り振ることで、単独でしか動作しない場合の処理速度を高めることができる。
【００１９】
一方、ジョブ発行元となるアプリケーションの種類から同時動作の可能性の有無を判定し、同時動作の可能性ありと判定された場合、図３（ｂ）に示すような割り振りとなる。図３（ｂ）では、印刷ワークバッファを差し引いた残り全てを印刷受信バッファに割り振ることは行わず、プレビュー処理に必要なバッファサイズ分（予め決められている）を余らせて、印刷受信バッファを割り振る。これにより、後にプレビュー処理が指示された場合でも、バッファ待ちが発生することなく即動作可能となる。
【００２０】
図４は、表示部２０３によるプレビュー処理のためのバッファサイズの割り振りを示した図である。
【００２１】
ジョブ発行元となるアプリケーションの種類から同時動作の可能性の有無を判定し、同時動作の可能性なしと判定された場合に図４（ａ）のような割り振りがなされる。図４（ａ）に示すようにプレビューの動作速度を引き出すに十分なバッファメモリサイズをプレビュー受信バッファとして割り振ることで、単独でしか動作しない場合の処理速度を高めることができる。
【００２２】
一方、ジョブ発行元となるアプリケーションの種類から同時動作の可能性の有無を判定し、同時動作の可能性ありと判定された場合、図４（ｂ）に示すような割り振りとなる。図４（ｂ）では、印刷処理に必要なバッファサイズ分（予め決められている）を余らせて、プレビュー受信バッファを割り振る。これにより、後に印刷処理が指示された場合でも、バッファ待ちが発生することなく即動作可能となる。
【００２３】
図５は、図１に示した各構成とＲＯＭ２０１に格納されているプログラムで実行される処理との関係を模式的に表した図である。
【００２４】
アプリケーション制御部７０１は、操作部１０１を介して入力されたユーザの指示に応じてジョブを発行する制御プログラムである。印刷ジョブ制御部７０２は、生成された画像データを記録部１０４に印刷させるための処理を制御する制御プログラムである。プレビュージョブ制御部７０３は、生成された画像データを表示部２０３に表示させるための処理を制御する制御プログラムである。バッファサイズ制御部７０４は、印刷ジョブ制御部７０２やプレビュージョブ制御部７０３が動作する時に必要な共通バッファメモリ３０１の割り振りを制御する制御プログラムである。なお、アプリケーション制御部７０１、印刷ジョブ制御部７０２、プレビュージョブ制御部７０３は、カードインタフェース１０２を介して画像ファイルの読み出しが可能な構成である。
【００２５】
ＣＰＵ２００が画像処理装置を制御する際は、図５に示したプログラム群の全てまたは一部をＲＡＭ２０２にロードし、それを実行することによってなされる。以降で示すフローチャートはこのプログラムに基づく処理の流れを示す。また、図５に示していないプログラムを実行する場合もある。
【００２６】
図６は、メモリカードからのカード印刷（カード印刷モード）におけるアプリケーション制御部７０１の処理の流れを示すフローチャートである。
【００２７】
まず、Ｓ８０１にてカードインタフェース１０２を介してメモリカードにアクセスし、保存されているＪＰＥＧ画像ファイルの検索を行い、画像ファイルごとに画像ＩＤを生成し画像ファイル名を付加したファイルリストを生成する。本実施形態においては、画像ファイルの検索がなされると、各画像ファイルに対して画像ＩＤ（１〜Ｎ）を割り当て、それと画像ファイルのファイル名とを対応付けたファイルリストを生成しＲＡＭ２０２上に記憶する。なお、本実施形態で扱う画像ファイルはデジタルスチルカメラで撮影した際の種々の情報を含むＥｘｉｆ形式のＪＰＥＧファイルとする。
【００２８】
次にＳ８０２にて画像ＩＤ＝１の画像に対するプレビュージョブをプレビュージョブ制御部７０３に発行する。その後操作部１０１を介してのユーザ指示を受け取るべく、Ｓ８０３、Ｓ８０４の判断を繰り返す。Ｓ８０３では、ユーザによって、現在表示中あるいは表示処理中の画像データの次なる画像の閲覧指示が行われたか否かを確認する。ユーザによって次なる画像の閲覧指示が検出された場合は、Ｓ８０２にて、ファイルリスト上で次なる画像である、画像ＩＤ＝２の画像に対するプレビュージョブを、プレビュージョブ制御部７０３に発行し、再度Ｓ８０３、Ｓ８０４の指示待ちを行う。Ｓ８０３にて次なる画像の閲覧指示が検出されなかった場合は、Ｓ８０４にてユーザによって印刷画像の指定が行われたか否かを検出する。ユーザによって、印刷画像の指定が行われた場合は、現在表示中あるいは表示処理中の画像ＩＤ＝２の画像を印刷対象として確定しＳ８０４を実行する。
【００２９】
そしてＳ８０５にて、ユーザによる印刷設定の指示を受け付ける。本実施形態では、印刷部数が設定できるものとする。以降、Ｓ８０５にて、印刷部数を３部と設定された場合の処理について説明する。次にＳ８０６にて、印刷ジョブ制御部に対して、画像ＩＤ＝２の画像を３部印刷するよう、印刷ジョブを発行する。
【００３０】
その後、Ｓ８０７にてユーザが指示したアプリケーションの種類や印刷設定（Ｓ８０５）から、予約可能なアプリケーションか否かを判定する。ここでは、選択されているアプリケーションとしてカード印刷モード、さらに印刷設定として３部印刷設定が共に予約可能なアプリケーションと判定するものとする。これらの判定基準の情報は予めＲＡＭ２０２等に保持しておき、それらの組合せに基づいて、予約の可否を判定する。ここでは予約可能と判定されたと想定し、その後Ｓ８０８に移り、予約受付を開始する。そして、ユーザが別なる画像の印刷指示を予約する、予約指示があるか否かを確認するとともに、実行中あるいは予約済みの印刷ジョブ終了を検出するために、Ｓ８０９、Ｓ８１０を繰り返す。Ｓ８０９にて予約指示がないと判断されると、Ｓ８１０を実行する。Ｓ８１０では、現在実行中あるいは予約済みの印刷ジョブが存在する場合は、処理Ｓ８０９を実行する。次に処理Ｓ８０９にて予約指示を検出した場合は、処理Ｓ８０３を実行する。この段階で、表示部２０３には最後にプレビュージョブを発行した画像ＩＤ＝２の画像データ、あるいは画像ＩＤ＝２が表示処理中であることを示す画面が表示されている。次に、処理Ｓ８０３にて、次なる画像データの閲覧指示を検出した場合は、Ｓ４０２にて、ファイルリスト上で次なる画像である、画像ＩＤ＝３の画像に対するプレビュージョブを、プレビュージョブ制御部７０３に発行し、再度Ｓ８０３、Ｓ８０４の指示待ちを行う。以降、Ｓ８０５にて、ユーザが画像ＩＤ＝３の画像を印刷対象として指定し、Ｓ８０５にて２部印刷するよう設定された場合は、Ｓ８０６にて、印刷ジョブ制御部に対して、画像ＩＤ＝３の画像を２部印刷するよう、印刷ジョブを発行する。その後ユーザから予約指示がなければ、Ｓ８０９とＳ８１０が繰り返されることになる。これまで印刷ジョブが発行された画像ＩＤ＝２を３部印刷し、画像ＩＤ＝３を２部印刷が終了した段階で、Ｓ８１０にて全印刷ジョブ終了を検出する。
【００３１】
その後、Ｓ８１１で予約受付を終了したうえで、Ｓ８１３を実行する。Ｓ８１３ではユーザがカード印刷モードを終了する要求しているかを確認し、終了要求がない場合は引き続き継続するためにＳ８０３に戻る。この段階では、表示部２０３には最後にプレビュージョブを発行した画像ＩＤ＝３の画像データ、あるいは画像ＩＤ＝３の画像データがプレビュー処理中であることを示す画面が表示されている。
【００３２】
Ｓ８１３にてユーザの終了要求が確認できた場合は、現アプリケーション、カード印刷モードを終了する。仮にＳ８０７にて予約不可能なアプリケーションと判定された場合は（例えばカード印刷モード、又は複数部印刷設定が予約不可だった場合等）、Ｓ８１２に移り現在実行中の印刷ジョブが終了したか確認する。印刷ジョブが終了するまでＳ８１２に留まり、印刷ジョブの終了が確認出来次第、Ｓ８１３に移る。Ｓ８１３では前述同様、ユーザがカード印刷モードを終了する要求しているかを確認し、終了要求がない場合は引き続き継続するためにＳ８０３に戻る。この段階では、表示部２０３には最後にプレビュージョブを発行した画像データ、あるいはその画像データのプレビュー処理中であることを示す画面が表示されている。
【００３３】
図７は、印刷ジョブ受信したときの印刷ジョブ制御部７０２の処理の流れを示すフローチャートである。
【００３４】
印刷ジョブを受信した場合、まず始めに現在他の印刷ジョブが実行中か否かを確認する（Ｓ１００１）。実行中であった場合は、ジョブ発行元となるアプリケーションの種類から、印刷予約可能か否か（印刷処理とプレビュー処理が同時動作する可能性があるか）を判断する（Ｓ１０１２）。印刷予約可能なアプリケーションの場合は、印刷ジョブキューにジョブを追加登録（印刷予約）し、処理を終える（Ｓ１０１３）。印刷予約が行えないアプリケーションの場合は、エラーとして処理を終える（Ｓ１０１４）。
【００３５】
Ｓ１００１にて処理中でないと判断された場合は、ジョブ発行元となるアプリケーションの種類から、印刷予約可能か否か（印刷処理とプレビュー処理が同時動作する可能性があるか）を判断する（Ｓ１００２）。印刷予約可能なアプリケーションの場合は、同時動作用の印刷バッファ（図３（ｂ））を取得する（Ｓ１００３）。印刷予約が行えないアプリケーションの場合は、単独動作用の印刷バッファ（図３（ａ））を取得する（Ｓ１００４）。
【００３６】
印刷バッファを取得後、印刷画像の受信を開始する（Ｓ１００５）。そして受信した印刷画像に対して画像処理等を施し、印刷データを生成する（Ｓ１００６）。生成した印刷データが所定量に達すると、記録部１０４によって印刷処理を開始する（Ｓ１００７）。印刷処理を終えると、印刷ジョブとしての全ての印刷（１ページ分かつ部数設定も含める）を終えたかを確認する（Ｓ１００８）。Ｓ１００８にて、全ての印刷が完了していなかった場合はＳ１００５に戻り、残りの印刷を行うための印刷画像の受信を行う。Ｓ１００８にて、全ての印刷が完了したと判断された場合は、取得した印刷バッファ（Ｓ１００３、Ｓ１００４を開放する（Ｓ１００９）。印刷ジョブキューを参照し（Ｓ１０１０）、登録済みの印刷ジョブがあった場合は再びＳ１００２に戻る。予約済みの印刷ジョブがなかった場合は、印刷ジョブ制御部７０２の一連の処理を終える。
【００３７】
図８は、プレビュージョブ受信時のプレビュージョブ制御部７０３の処理の流れを示すフローチャートである。
【００３８】
プレビュージョブを受信した場合、まず始めに現在他のプレビュージョブが実行中か否かを確認する（Ｓ１１０１）。実行中であった場合は、実行中のプレビュージョブをキャンセルする（Ｓ１１０２）。次にジョブ発行元となるアプリケーションの種類から、印刷予約可能か否か（印刷処理とプレビュー処理が同時動作する可能性があるか）を判断する（Ｓ１１０３）。
【００３９】
印刷予約可能なアプリケーションの場合は、同時動作用のプレビューバッファ（図４（ｂ））を取得する（Ｓ１１０４）。印刷予約が行えないアプリケーションの場合は、単独動作用のプレビューバッファ（図４（ａ））を取得する（Ｓ１１０５）。
【００４０】
プレビューバッファを取得後、プレビュー画像を生成するための画像データの受信を開始する（Ｓ１１０６）。受信した画像データに対して画像処理等を施し、プレビュー画像を生成する（Ｓ１１０７）。生成したプレビュー画像が一面分蓄積され、プレビュー画像として完成したか確認する（Ｓ１１０８）。Ｓ１１０８にて、プレビュー画像が一面分完成していなかったと判断された場合はＳ１１０６に戻り、引き続きプレビュー画像を生成するための画像データの受信を行う。Ｓ１１０８にて、プレビュー画像が一面分完成していたと判断された場合は、表示部２０３に生成したプレビュー画像を表示する（Ｓ１１０９）。最後に取得したプレビューバッファ（Ｓ１１０４、Ｓ１１０５）を開放し、プレビュージョブ制御部７０３の一連の処理を終える（Ｓ１１１０）。
【００４１】
図９は、以上説明した本実施形態の処理における共通バッファメモリの割り振りの状況を示す遷移図である。図９で示した共通バッファメモリの背景は図３、４で示したものと同じものを表している。
【００４２】
図９（ａ）は操作部１０１からの指定で実行されるアプリケーションが予約可能なアプリケーション（例えば、印刷対象を選びながら印刷するアプリ）の場合のバッファメモリの割り振り遷移を示す。ここでは次のようにジョブが発行される場合を例に説明する。
【００４３】
まずファイルリストの１枚目（ＩＤ＝１）の画像データをプレビューするプレビュージョブが発行（Ｓ１２０１）される。するとＳ１２０１のプレビュー表示後に、ファイルリストの１枚目（ＩＤ＝１）の画像データを印刷画像として決定し、ファイルリストの１枚目（ＩＤ＝１）に対する印刷ジョブを発行する（Ｓ１２０２）。
【００４４】
Ｓ１２０２に対する印刷ジョブ動作中に、次の印刷画像の予約が指示されると、次画像選択指示により、ファイルリストの２枚目（ＩＤ＝２）の画像データに対するプレビュージョブが発行される（Ｓ１２０３）。Ｓ１２０３のプレビュー表示後に、ファイルリストの２枚目（ＩＤ＝２）の画像データを印刷画像として決定し、ファイルリストの２枚目（ＩＤ＝２）に対する印刷ジョブが発行される（Ｓ１２０４）。
【００４５】
Ｓ１２０４に対する印刷ジョブ動作中に、再び次の印刷画像の予約が指示されると、次画像選択指示により、ファイルリストの３枚目（ＩＤ＝３）の画像データに対するプレビュージョブが発行される（Ｓ１２０５）。
【００４６】
以上のようにジョブが発行された場合の共通バッファメモリの遷移は以下の通りである。共通バッファメモリの初期状態は、プレビュージョブも印刷ジョブも実行中ではないので空の状態である、（１２０１）。次にＳ１２０１にてアプリケーション制御部７０１からファイルリストのＩＤ＝１に対するプレビュージョブが発行されると、プレビュージョブ制御部７０３はジョブを受信する。その後、Ｓ１１０１にて他のプレビュージョブを実行中か否かを確かめ、実行中ではないことを確認すると、Ｓ１１０３に移る。ここでは予約可能なアプリケーションであるため、Ｓ１１０３からＳ１１０４にフローが移り、同時動作用プレビューバッファを取得する（１２０２）。その後Ｓ１１０６、１１０７、１１０８と処理を行い、プレビュー画像完成後、プレビュー画像の表示（Ｓ１１０９）を終えると、Ｓ１１１０にてプレビューバッファを開放し、プレビュージョブ制御部７０３の処理を終える（１２０３）。
【００４７】
次にＳ１２０２にて、アプリケーション制御部７０１からファイルリストのＩＤ＝１に対する印刷ジョブが発行されると、印刷ジョブ制御部７０２はジョブを受信し、Ｓ１００１にて他の印刷ジョブを実行か否かを確かめ、Ｓ１００２に移る。ここでは予約可能なアプリケーションであるため、Ｓ１００２からＳ１００３にフローが移り、同時動作用印刷バッファを取得する（１２０４）。その後、印刷ジョブ制御部７０２は印刷が完了するまでＳ１００５、１００６、１００７、１００８の処理を繰り返し行っていく。
【００４８】
一方、印刷ジョブ制御部７０２が繰り返し処理を行っている間に、Ｓ１２０３にてファイルリストＩＤ＝２に対するプレビュージョブが発行されると、プレビュージョブ制御部７０３はジョブを受信する。そして、Ｓ１１０１、１１０３、１１０４の処理を経て、同時動作用プレビューバッファを取得する。その際、既に印刷バッファが取得されている状態のため、残りの共有バッファメモリからプレビューバッファを割り振る（１２０５）。その後プレビュージョブ制御部７０３は、Ｓ１１０６、１１０７、１１０８と処理を行い、プレビュー画像の表示（Ｓ１１０９）を終えると、Ｓ１１１０にてプレビューバッファを開放し、プレビュージョブ制御部７０３の処理を終える（１２０６）。
【００４９】
次にＳ１２０４にて、アプリケーション制御部７０１からファイルリストのＩＤ＝２に対する印刷ジョブが発行される。印刷ジョブ制御部７０２は、ジョブを受信し、Ｓ１００１にて実行中であることを確認すると、Ｓ１０１２、１０１３に移り、受信したジョブを印刷ジョブキューに登録して処理を終える。次にＳ１２０５にて、ファイルリストのＩＤ＝３に対するプレビュージョブが発行される。プレビュージョブ制御部７０３はジョブを受信し、Ｓ１１０１、１１０３と処理を経て同時動作用プレビューバッファを取得する。その際、既に印刷バッファが取得されている状態のため、残りの共有バッファメモリからプレビューバッファを割り振る（１２０７）。その後プレビュージョブ制御部７０３は、プレビュー画像が一面完成するまでＳ１１０６、１１０７、１１０８の処理を繰り返し行っていく。
【００５０】
一方、プレビュージョブ制御部７０３が繰り返し処理を行っている中、印刷ジョブ制御部７０２がＳ１２０２にて受信した印刷ジョブの印刷処理が完了し、Ｓ１００９で印刷バッファを開放して、Ｓ１０１０に処理が移る（１２０８）。
【００５１】
その後、印刷ジョブ制御部７０２は、印刷ジョブキューを参照し（Ｓ１０１０）、登録済みの印刷ジョブが存在していることを確認すると、Ｓ１００２に処理が移る（Ｓ１０１１）。そしてＳ１００２、１００３と処理を経て、印刷バッファを取得する。その際、既にプレビューバッファが取得されている状態のため、残りの共有バッファメモリから印刷バッファを割り振る（１２０９）。プレビュージョブ制御部７０３がＳ１２０５にて受信したプレビュージョブのプレビュー画像の一面生成が完了し、Ｓ１１０９でプレビューバッファを開放し、処理を終える（１２１０）。
【００５２】
その後、印刷ジョブ制御部７０２がＳ１２０４にて受信した印刷ジョブの印刷処理が完了次第、印刷バッファを開放し（Ｓ１００９）、さらに登録済みの印刷ジョブが存在しないことを確認して（Ｓ１０１０、１０１１）、印刷ジョブ制御部の処理を終える。このとき共有バッファは全て開放され、初期の状態に戻る。
【００５３】
図９（ｂ）は操作部１０１からの指定で実行されるアプリケーションが予約不可なアプリケーション（先に印刷対象を選んでまとめて印刷するアプリ）の場合のバッファメモリの割り振り遷移を示す。ここでは次のようにジョブが発行される場合を例に説明する。
【００５４】
まずファイルリストの１枚目（ＩＤ＝１）の画像データをプレビューするプレビュージョブが発行される（Ｓ１２０６）。Ｓ１２０６におけるプレビュー表示後に、次画像選択指示によりファイルリストの２枚目（ＩＤ＝２）の画像データに対するプレビュージョブが発行される（Ｓ１２０７）。そしてＳ１２０７におけるプレビュー表示後に、ファイルリストの２枚目（ＩＤ＝２）の画像データを印刷画像として決定し、ファイルリストの２枚目（ＩＤ＝２）に対する印刷ジョブが発行される（Ｓ１２０８）。そしてＳ１２０８に対する印刷ジョブ終了後、次の引き続き継続して印刷画像が選択される。そして次画像選択指示により、ファイルリストの３枚目（ＩＤ＝３）の画像データをプレビューするプレビュージョブが発行される（Ｓ１２０９）。Ｓ１２０９におけるプレビュー表示後に、ファイルリストの３枚目（ＩＤ＝３）の画像データを印刷画像として決定する。ファイルリストの３枚目（ＩＤ＝３）に対する印刷ジョブが発行される（Ｓ１２１０）。
【００５５】
以上のようにジョブが発行された場合の共通バッファメモリの遷移は以下の通りである。共通バッファメモリの初期状態は空の状態である（１２１１）。次にＳ１２０６にてアプリケーション制御部７０１からファイルリストＩＤ＝１に対するプレビュージョブが発行されると、プレビュージョブ制御部７０３はジョブを受信し、Ｓ１１０１、１１０３の処理を行う。ここでは予約不可能なアプリケーションであるため、Ｓ１１０３からＳ１１０５にフローが移り、単独動作用プレビューバッファを取得する（１２１２）。その後Ｓ１１０６、１１０７、１１０８と処理を行い、プレビュー画像の表示（Ｓ１１０９）を終えると、Ｓ１１１０にてプレビューバッファを開放し、プレビュージョブ制御部７０３の処理を終える（１２１３）。
【００５６】
次にＳ１２０７にてアプリケーション制御部７０１からファイルリストＩＤ＝２に対するプレビュージョブが発行されると、プレビュージョブ制御部７０３はジョブを受信する。そしてＳ１１０１、１１０３、１１０５の処理を経て、単独動作用プレビューバッファを取得する（１２１４）。その後Ｓ１１０６、１１０７、１１０８と処理を行い、プレビュー画像の表示（Ｓ１１０９）を終えると、Ｓ１１１０にてプレビューバッファを開放して処理を終える（１２１５）。
【００５７】
次にＳ１２０８にて、アプリケーション制御部７０１からファイルリストＩＤ＝２に対する印刷ジョブが発行されると、印刷ジョブ制御部７０２は、ジョブを受信し、Ｓ１００１、１００２に移る。ここでは予約不可能なアプリケーションであるため、Ｓ１００２からＳ１１０４にフローが移り、単独動作用印刷バッファを取得する（１２１６）。その後、印刷ジョブ制御部７０２は印刷が完了するまでＳ１００５、１００６、１００７、１００８の処理を繰り返し行い、Ｓ１００８にて印刷の完了が確認出来次第、Ｓ１００９で印刷バッファを開放する。そして登録済みの印刷ジョブが存在しないことを確認すると（Ｓ１０１０、１０１１）、印刷ジョブ制御部の処理を終える（１２１７）。
【００５８】
次にＳ１２０９にてアプリケーション制御部７０１からファイルリストＩＤ＝３に対するプレビュージョブが発行されると、プレビュージョブ制御部７０３はジョブを受信する。そして、Ｓ１１０１、１１０３、１１０５の処理を経て、単独動作用プレビューバッファを取得する（１２１８）。その後Ｓ１１０６、１１０７、１１０８と処理を行い、プレビュー画像の表示（Ｓ１１０９）を終えると、Ｓ１１１０にてプレビューバッファを開放して処理を終える（１２１９）。
【００５９】
次にＳ１２１０にて、アプリケーション制御部７０１からファイルリストＩＤ＝３に対する印刷ジョブが発行されると、印刷ジョブ制御部７０２は、ジョブを受信する。そして、Ｓ１００１、１００２、１１０４の処理を経て、単独動作用印刷バッファを取得する（１２２０）。その後、印刷ジョブ制御部７０２がＳ１２１０にて受信した印刷ジョブの印刷処理が完了次第、印刷バッファを開放し（Ｓ１００９）、さらに登録済みの印刷ジョブが存在しないことを確認して（Ｓ１０１０、１０１１）、処理を終える。このとき共有バッファは全て開放され、初期の状態に戻る。
【００６０】
なお、本実施形態ではプレビュー時に同時動作の可能性の判定を、ジョブ発行元となるアプリケーションが印刷予約可能か否かによって、同時動作の可能性の有無を判定している。これはアプリケーションの種類に応じて判定するものには限らず、操作部１０１から指示された処理の内容に従って同時動作を行うものか否かを判定すればよい。また、このように判定した後、例えば、予約済みの印刷ジョブが存在するか、若しくは印刷処理が動作中か否かによって、さらにバッファの割り振りを変更してもよい。即ち、一旦同時動作の可能性があると判定された後、印刷処理が行われないことが分かったら、プレビュー処理の単独動作を行うための割り振りに変更すればよい。
【００６１】
また、同時動作の対象として、印刷と表示とを例示したが、これら以外の処理としてもよいし、同時動作する処理は３つ以上であってもよい。
【００６２】
以上のように本実施形態では、操作部１０１から指示された処理の内容に従って同時動作（並行動作）の可能性を判定し、その判定結果に応じて同時動作対象の処理のためのメモリの領域の割り振りを決定する。従って、対象となる動作を実行する前に必要なメモリの領域が確保できる。従って、メモリの空き待ちによって処理が滞る可能性を低減させることができる。
【００６３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行することによって実現可能である。また、このプログラムは、１つのコンピュータで実行させても、複数のコンピュータが連動して実行するようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部または全部をハードウェアによって実現するようにしてもよい。
【図１】
0005676939.tif 000002
【図２】
0005676939.tif 000003
【図３】
0005676939.tif 000004
【図４】
0005676939.tif 000005
【図５】
0005676939.tif 000006
【図６】
0005676939.tif 000007
【図７】
0005676939.tif 000008
【図８】
0005676939.tif 000009
【図９】
0005676939.tif 000010