説明

画像処理装置及びその制御方法並びにプログラム

【課題】 複数の処理を並行して行う必要がある場合に処理が滞るような事態をなるべく低減すること。
【解決手段】 操作部101を介して指示された処理内容が同時動作可能なアプリケーションの場合、印刷ジョブとプレビュージョブの両方を行うための共通バッファメモリの割り振りとする。同時動作不可のアプリケーションの場合、印刷ジョブあるいはプレビュージョブが単独で動作するための割り振りとする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを処理する画像処理装置及びその制御方法に関する。
【背景技術】
【0002】
従来、画像データを処理する画像処理装置において、入力された画像データの表示と印刷とを行うものが知られている(特許文献1参照)。特許文献1では、受信した制御データ中に印刷データのプレビューを指示する信号が含まれていた場合は、受信した印刷データを一時的に記憶する受信バッファメモリを小さくし、空いたバッファメモリをプレビュー用に割り当てる。これにより、印刷処理とプレビュー処理を同時に行うことが可能となる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−160406号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載のものは、プレビューを指示する制御コマンドを受けてから、印刷受信バッファのサイズを小さくしていき、プレビュー用のバッファを確保している。よって印刷受信バッファが必要分小さくなるまでは、バッファの空き待ちが発生し、プレビュー処理(またはプレビュー後の操作)を行うことができない。
【0005】
本発明は、上記の点に鑑みなされたものであり、複数の処理を並行して行う必要がある場合に処理が滞るような事態をなるべく低減した画像処理装置及びその制御方法並びにプログラムを提供するものである。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明の画像処理装置は、画像データを処理する第1の処理手段と、画像データを処理する第2の処理手段と、前記第1の処理手段と前記第2の処理手段とで共通に使用されるメモリと、ユーザから指示された処理の内容に基づき前記第1の処理手段と前記第2の処理手段とを並行して使用するか否か判定する判定手段と、前記判定手段による判定結果に応じて、前記第1の処理手段と前記第2の処理手段のために割り当てる前記メモリのサイズを決定する決定手段とを有する。
【発明の効果】
【0007】
本発明によれば、ユーザから指示された処理の内容に基づき2つの処理手段を並行して使用するか判定し、その判定結果に応じて割り当てるサイズを決定するので、事前に割り振りを決めることができ、処理の開始が滞る事態を低減できる。
【図面の簡単な説明】
【0008】
【図1】実施形態の画像処理装置の構成を示すブロック図である。
【図2】画像処理装置の共通バッファメモリの割り振りを示す図である。
【図3】画像処理装置の共通バッファメモリの割り振りを示す図である。
【図4】画像処理装置の共通バッファメモリの割り振りを示す図である。
【図5】画像処理装置のプログラムの構成を示す図である。
【図6】画像処理装置による処理の流れを示すフローチャートである。
【図7】画像処理装置による処理の流れを示すフローチャートである。
【図8】画像処理装置による処理の流れを示すフローチャートである。
【図9】共通バッファメモリの割り振りの遷移図である。
【発明を実施するための形態】
【0009】
以下、本発明を実施するための形態について図面を用いて説明する。
【0010】
図1は、本実施形態における画像処理装置の構成を示すブロック図である。
【0011】
図1において、操作部101はハードキーやソフトキーを含み(タッチパネル形式でもよい)、ユーザによる各種操作を受け付ける。操作部101には、メモリカードに記憶された画像データを選択し記録をスタートするためのダイレクト写真印刷スタートキーを有する。またモノクロ画像やカラー画像の読取を開始する時のスキャンスタートキー、コピー時に使用されるモノクロコピースタートキー、カラーコピースタートキーを有する。また操作部101は、コピーやスキャンの解像度や画質などのモードを指定するモードキー、コピー等の動作を停止するためのストップキー、コピー部数を入力するテンキーや登録キー、印刷する画像ファイル選択手段を指定するカーソルキー等も有する。カードインタフェース102はメモリカードをセット可能であり、セットされたメモリカードに記憶されている画像データを操作部101からの指示に従って入力可能である。読取部103はCCDを備え、このCCDは、原稿画像を読み取り、赤(R)、緑(G)および青(B)色のアナログ輝度データを出力する。なお、読取部103はCCDの代わりに、密着型イメージセンサ(CIS)を使用するようにしてもよい。記録部104は入力された画像データに応じて記録シート上にインク、トナー等の記録剤を付与して画像をプリントする。読取部103、記録部104のそれぞれの動作において、給排紙ローラを駆動するためのステッピングモータと、ステッピングモータの駆動力を伝達するギヤと、ステッピングモータを制御するドライバ回路などを含む。
【0012】
CPU200はROM201に記憶されている制御命令プログラムや画像処理プログラム等をRAM202にロードし、それを実行することによって画像処理装置の動作を制御する。CPU200は操作部101の各種キーの押下状態を検出し、この押下状態に応じて、各部を制御する。RAM202は各種プログラムやプログラムの実行の際に必要な各種設定値の記憶の他、記録部104がプリントを実行するための印刷データの記憶も行う。表示部203は操作部101の操作状態、画像処理装置の各種状態などユーザに通知すべき種々の情報を表示可能である。また表示部203は入力された画像データのプレビュー画像(記録部104によるプリント前の確認画像)を表示可能である。画像処理部204においては、読取部103にて読み取られた画像および圧縮/解凍部205で解凍された画像の入力画像処理が実行される。またカードインタフェース102を介して読み取られた画像が圧縮/解凍部205で解凍された画像の出力画像処理も実行する。入力画像処理および出力画像処理は、デジタルカメラ等に用いられている色空間(例えばYCbCr)と標準的なRGB色空間(例えばNTSC−RGBやsRGB)との変換を行う。また画像データの解像度の変換処理、画像データを包括する画像ファイルに含まれるヘッダ情報の生成および解析処理、画像の解析処理および画像補正処理、サムネイル画像生成および補正処理等の機能を備えている。これらの画像処理によって得られた画像データはRAM202に格納され、カードインタフェース102を介してメモリカードに記録する場合には必要な所定量に達すると記録処理が実行される。また記録部104で印刷される場合にも必要な所定量に達すると記録部104による記録動作が実行される。圧縮/解凍部205においては、読取部103にて読み取られた画像および記録部104で出力される画像の圧縮/解凍処理を実行する。例えばJPEGなどの圧縮画像の生成及びその解凍処理である。
【0013】
図2は、図1の画像処理装置のRAM202の割り当てを示す図である。RAM202には、図2(a)に示すような、共通バッファメモリ301とそれ以外に分けられ、共通バッファメモリ301は記録部104によるプリント処理と表示部203によるプレビュー処理とにおいて共通に用いられる領域である。その他の領域は他の用途に用いられる。
【0014】
記録部104によるプリント処理を行う際は、図2(b)に示すように共通バッファメモリ301を、記録部104によるプリント処理のための印刷ワークバッファ302と受信する印刷データを記憶するための印刷受信バッファ303とに区別して使用する。印刷受信バッファ303は、カードインタフェース102や読取部103等から得られた印刷画像を一時格納するためのバッファであり、格納された印刷画像に対して画像処理等(例えば拡縮・回転・伸長処理)が施され、印刷データが生成される。その印刷データが必要な所定量蓄積されるとプリント動作が実行される。印刷ワークバッファ302は、それら画像処理等を実行する際に内部的に必要なワーク領域である。よって印刷ワークバッファ302は動作内容に関わらず所定のサイズ分が必要なバッファメモリとなる。一方、印刷受信バッファ303は最低限のサイズを割り振ることができれば動作は可能となるが、サイズが小さくなると印刷画像の受信を分割して行わなくてはならなくなり、画像処理等の処理速度の低下を招くことがあるのである程度のサイズは確保する。
【0015】
表示部203によるプレビュー処理を行う際は、図2(c)に示すように共通バッファメモリ301を、プレビュー処理のためのプレビューワークバッファ304と受信する表示対象の画像データを記憶するためのプレビュー受信バッファとに区別して使用する。プレビュー受信バッファ305は、カードインタフェース102等から得られた画像データを一時格納するためのバッファであり、格納された画像データに対して画像処理等(例えば拡縮・回転・伸長処理)が施され、プレビュー画像が生成される。プレビュー画像が一面分蓄積されるとプレビュー表示が実行される。プレビューワークバッファ304は、それら画像処理等を実行する際に内部的に必要なワーク領域である。よってプリント処理同様、プレビューワークバッファ304は動作内容に関わらず所定サイズ分必要なバッファメモリである。そしてプレビュー受信バッファ305は最低限必要なサイズを割り振ることができれば動作は可能となるが、サイズが小さくなると画像データの受信を分割して行わなくてはならなくなり、画像処理等の処理速度の低下を招くためある程度のサイズは確保する。なお、プレビュー処理の際は、プリント処理で扱う画像データより画素数を減らしたプレビュー用画像データを用いるため、プリント処理よりも使用するメモリ量(サイズ)は少なくなる。
【0016】
次に図3、4を用いて、各処理における受信バッファ、ワークバッファの割り振りについて説明する。前述のとおり、印刷処理を行うには印刷受信バッファ303と印刷ワークバッファ302、プレビュー処理を行うにはプレビュー受信バッファ305とプレビューワークバッファ304を確保する必要がある。しかし、RAM202のサイズをなるべく小さくするために、本実施形態のように印刷とプレビューでバッファメモリを共有すると、次のような処理が起こりうる。即ち、各処理で処理速度の低下を防ぐために最大限のバッファメモリを受信バッファに割り当てると、同時処理を行った際に共有バッファメモリが不足し、メモリの空き待ちが発生してしまう。そこで本実施形態では、図3、4に示すように、印刷処理とプレビュー処理の同時動作が発生する可能性があるか否かで、各処理の受信バッファの割り振るバッファサイズを切り替えることで、メモリの空き待ちが発生する可能性を低減する。なお、図3、4に示すように、印刷処理の方が表示処理よりも扱う画像データのサイズが大きく、また処理負荷も高いため、プレビュー処理よりも大きいサイズのメモリ領域が割り振られる。
【0017】
図3は、記録部104によるプリント処理のためのバッファサイズの割り振りを示した図である。
【0018】
プリント処理を単独で行う場合は、図3(a)に示すように共通バッファメモリ301をプリント処理のために全て使用する。詳細は後述するが、ジョブ発行元となるアプリケーションの種類から同時動作の可能性の有無を判定し、同時動作の可能性なしと判定された場合に図3(a)のような割り振りがなされる。図3(a)に示すように、共通バッファメモリのうち、印刷ワークバッファを差し引いた残りのバッファメモリを最大限に印刷受信バッファとして割り振ることで、単独でしか動作しない場合の処理速度を高めることができる。
【0019】
一方、ジョブ発行元となるアプリケーションの種類から同時動作の可能性の有無を判定し、同時動作の可能性ありと判定された場合、図3(b)に示すような割り振りとなる。図3(b)では、印刷ワークバッファを差し引いた残り全てを印刷受信バッファに割り振ることは行わず、プレビュー処理に必要なバッファサイズ分(予め決められている)を余らせて、印刷受信バッファを割り振る。これにより、後にプレビュー処理が指示された場合でも、バッファ待ちが発生することなく即動作可能となる。
【0020】
図4は、表示部203によるプレビュー処理のためのバッファサイズの割り振りを示した図である。
【0021】
ジョブ発行元となるアプリケーションの種類から同時動作の可能性の有無を判定し、同時動作の可能性なしと判定された場合に図4(a)のような割り振りがなされる。図4(a)に示すようにプレビューの動作速度を引き出すに十分なバッファメモリサイズをプレビュー受信バッファとして割り振ることで、単独でしか動作しない場合の処理速度を高めることができる。
【0022】
一方、ジョブ発行元となるアプリケーションの種類から同時動作の可能性の有無を判定し、同時動作の可能性ありと判定された場合、図4(b)に示すような割り振りとなる。図4(b)では、印刷処理に必要なバッファサイズ分(予め決められている)を余らせて、プレビュー受信バッファを割り振る。これにより、後に印刷処理が指示された場合でも、バッファ待ちが発生することなく即動作可能となる。
【0023】
図5は、図1に示した各構成とROM201に格納されているプログラムで実行される処理との関係を模式的に表した図である。
【0024】
アプリケーション制御部701は、操作部101を介して入力されたユーザの指示に応じてジョブを発行する制御プログラムである。印刷ジョブ制御部702は、生成された画像データを記録部104に印刷させるための処理を制御する制御プログラムである。プレビュージョブ制御部703は、生成された画像データを表示部203に表示させるための処理を制御する制御プログラムである。バッファサイズ制御部704は、印刷ジョブ制御部702やプレビュージョブ制御部703が動作する時に必要な共通バッファメモリ301の割り振りを制御する制御プログラムである。なお、アプリケーション制御部701、印刷ジョブ制御部702、プレビュージョブ制御部703は、カードインタフェース102を介して画像ファイルの読み出しが可能な構成である。
【0025】
CPU200が画像処理装置を制御する際は、図5に示したプログラム群の全てまたは一部をRAM202にロードし、それを実行することによってなされる。以降で示すフローチャートはこのプログラムに基づく処理の流れを示す。また、図5に示していないプログラムを実行する場合もある。
【0026】
図6は、メモリカードからのカード印刷(カード印刷モード)におけるアプリケーション制御部701の処理の流れを示すフローチャートである。
【0027】
まず、S801にてカードインタフェース102を介してメモリカードにアクセスし、保存されているJPEG画像ファイルの検索を行い、画像ファイルごとに画像IDを生成し画像ファイル名を付加したファイルリストを生成する。本実施形態においては、画像ファイルの検索がなされると、各画像ファイルに対して画像ID(1〜N)を割り当て、それと画像ファイルのファイル名とを対応付けたファイルリストを生成しRAM202上に記憶する。なお、本実施形態で扱う画像ファイルはデジタルスチルカメラで撮影した際の種々の情報を含むExif形式のJPEGファイルとする。
【0028】
次にS802にて画像ID=1の画像に対するプレビュージョブをプレビュージョブ制御部703に発行する。その後操作部101を介してのユーザ指示を受け取るべく、S803、S804の判断を繰り返す。S803では、ユーザによって、現在表示中あるいは表示処理中の画像データの次なる画像の閲覧指示が行われたか否かを確認する。ユーザによって次なる画像の閲覧指示が検出された場合は、S802にて、ファイルリスト上で次なる画像である、画像ID=2の画像に対するプレビュージョブを、プレビュージョブ制御部703に発行し、再度S803、S804の指示待ちを行う。S803にて次なる画像の閲覧指示が検出されなかった場合は、S804にてユーザによって印刷画像の指定が行われたか否かを検出する。ユーザによって、印刷画像の指定が行われた場合は、現在表示中あるいは表示処理中の画像ID=2の画像を印刷対象として確定しS804を実行する。
【0029】
そしてS805にて、ユーザによる印刷設定の指示を受け付ける。本実施形態では、印刷部数が設定できるものとする。以降、S805にて、印刷部数を3部と設定された場合の処理について説明する。次にS806にて、印刷ジョブ制御部に対して、画像ID=2の画像を3部印刷するよう、印刷ジョブを発行する。
【0030】
その後、S807にてユーザが指示したアプリケーションの種類や印刷設定(S805)から、予約可能なアプリケーションか否かを判定する。ここでは、選択されているアプリケーションとしてカード印刷モード、さらに印刷設定として3部印刷設定が共に予約可能なアプリケーションと判定するものとする。これらの判定基準の情報は予めRAM202等に保持しておき、それらの組合せに基づいて、予約の可否を判定する。ここでは予約可能と判定されたと想定し、その後S808に移り、予約受付を開始する。そして、ユーザが別なる画像の印刷指示を予約する、予約指示があるか否かを確認するとともに、実行中あるいは予約済みの印刷ジョブ終了を検出するために、S809、S810を繰り返す。S809にて予約指示がないと判断されると、S810を実行する。S810では、現在実行中あるいは予約済みの印刷ジョブが存在する場合は、処理S809を実行する。次に処理S809にて予約指示を検出した場合は、処理S803を実行する。この段階で、表示部203には最後にプレビュージョブを発行した画像ID=2の画像データ、あるいは画像ID=2が表示処理中であることを示す画面が表示されている。次に、処理S803にて、次なる画像データの閲覧指示を検出した場合は、S402にて、ファイルリスト上で次なる画像である、画像ID=3の画像に対するプレビュージョブを、プレビュージョブ制御部703に発行し、再度S803、S804の指示待ちを行う。以降、S805にて、ユーザが画像ID=3の画像を印刷対象として指定し、S805にて2部印刷するよう設定された場合は、S806にて、印刷ジョブ制御部に対して、画像ID=3の画像を2部印刷するよう、印刷ジョブを発行する。その後ユーザから予約指示がなければ、S809とS810が繰り返されることになる。これまで印刷ジョブが発行された画像ID=2を3部印刷し、画像ID=3を2部印刷が終了した段階で、S810にて全印刷ジョブ終了を検出する。
【0031】
その後、S811で予約受付を終了したうえで、S813を実行する。S813ではユーザがカード印刷モードを終了する要求しているかを確認し、終了要求がない場合は引き続き継続するためにS803に戻る。この段階では、表示部203には最後にプレビュージョブを発行した画像ID=3の画像データ、あるいは画像ID=3の画像データがプレビュー処理中であることを示す画面が表示されている。
【0032】
S813にてユーザの終了要求が確認できた場合は、現アプリケーション、カード印刷モードを終了する。仮にS807にて予約不可能なアプリケーションと判定された場合は(例えばカード印刷モード、又は複数部印刷設定が予約不可だった場合等)、S812に移り現在実行中の印刷ジョブが終了したか確認する。印刷ジョブが終了するまでS812に留まり、印刷ジョブの終了が確認出来次第、S813に移る。S813では前述同様、ユーザがカード印刷モードを終了する要求しているかを確認し、終了要求がない場合は引き続き継続するためにS803に戻る。この段階では、表示部203には最後にプレビュージョブを発行した画像データ、あるいはその画像データのプレビュー処理中であることを示す画面が表示されている。
【0033】
図7は、印刷ジョブ受信したときの印刷ジョブ制御部702の処理の流れを示すフローチャートである。
【0034】
印刷ジョブを受信した場合、まず始めに現在他の印刷ジョブが実行中か否かを確認する(S1001)。実行中であった場合は、ジョブ発行元となるアプリケーションの種類から、印刷予約可能か否か(印刷処理とプレビュー処理が同時動作する可能性があるか)を判断する(S1012)。印刷予約可能なアプリケーションの場合は、印刷ジョブキューにジョブを追加登録(印刷予約)し、処理を終える(S1013)。印刷予約が行えないアプリケーションの場合は、エラーとして処理を終える(S1014)。
【0035】
S1001にて処理中でないと判断された場合は、ジョブ発行元となるアプリケーションの種類から、印刷予約可能か否か(印刷処理とプレビュー処理が同時動作する可能性があるか)を判断する(S1002)。印刷予約可能なアプリケーションの場合は、同時動作用の印刷バッファ(図3(b))を取得する(S1003)。印刷予約が行えないアプリケーションの場合は、単独動作用の印刷バッファ(図3(a))を取得する(S1004)。
【0036】
印刷バッファを取得後、印刷画像の受信を開始する(S1005)。そして受信した印刷画像に対して画像処理等を施し、印刷データを生成する(S1006)。生成した印刷データが所定量に達すると、記録部104によって印刷処理を開始する(S1007)。印刷処理を終えると、印刷ジョブとしての全ての印刷(1ページ分かつ部数設定も含める)を終えたかを確認する(S1008)。S1008にて、全ての印刷が完了していなかった場合はS1005に戻り、残りの印刷を行うための印刷画像の受信を行う。S1008にて、全ての印刷が完了したと判断された場合は、取得した印刷バッファ(S1003、S1004を開放する(S1009)。印刷ジョブキューを参照し(S1010)、登録済みの印刷ジョブがあった場合は再びS1002に戻る。予約済みの印刷ジョブがなかった場合は、印刷ジョブ制御部702の一連の処理を終える。
【0037】
図8は、プレビュージョブ受信時のプレビュージョブ制御部703の処理の流れを示すフローチャートである。
【0038】
プレビュージョブを受信した場合、まず始めに現在他のプレビュージョブが実行中か否かを確認する(S1101)。実行中であった場合は、実行中のプレビュージョブをキャンセルする(S1102)。次にジョブ発行元となるアプリケーションの種類から、印刷予約可能か否か(印刷処理とプレビュー処理が同時動作する可能性があるか)を判断する(S1103)。
【0039】
印刷予約可能なアプリケーションの場合は、同時動作用のプレビューバッファ(図4(b))を取得する(S1104)。印刷予約が行えないアプリケーションの場合は、単独動作用のプレビューバッファ(図4(a))を取得する(S1105)。
【0040】
プレビューバッファを取得後、プレビュー画像を生成するための画像データの受信を開始する(S1106)。受信した画像データに対して画像処理等を施し、プレビュー画像を生成する(S1107)。生成したプレビュー画像が一面分蓄積され、プレビュー画像として完成したか確認する(S1108)。S1108にて、プレビュー画像が一面分完成していなかったと判断された場合はS1106に戻り、引き続きプレビュー画像を生成するための画像データの受信を行う。S1108にて、プレビュー画像が一面分完成していたと判断された場合は、表示部203に生成したプレビュー画像を表示する(S1109)。最後に取得したプレビューバッファ(S1104、S1105)を開放し、プレビュージョブ制御部703の一連の処理を終える(S1110)。
【0041】
図9は、以上説明した本実施形態の処理における共通バッファメモリの割り振りの状況を示す遷移図である。図9で示した共通バッファメモリの背景は図3、4で示したものと同じものを表している。
【0042】
図9(a)は操作部101からの指定で実行されるアプリケーションが予約可能なアプリケーション(例えば、印刷対象を選びながら印刷するアプリ)の場合のバッファメモリの割り振り遷移を示す。ここでは次のようにジョブが発行される場合を例に説明する。
【0043】
まずファイルリストの1枚目(ID=1)の画像データをプレビューするプレビュージョブが発行(S1201)される。するとS1201のプレビュー表示後に、ファイルリストの1枚目(ID=1)の画像データを印刷画像として決定し、ファイルリストの1枚目(ID=1)に対する印刷ジョブを発行する(S1202)。
【0044】
S1202に対する印刷ジョブ動作中に、次の印刷画像の予約が指示されると、次画像選択指示により、ファイルリストの2枚目(ID=2)の画像データに対するプレビュージョブが発行される(S1203)。S1203のプレビュー表示後に、ファイルリストの2枚目(ID=2)の画像データを印刷画像として決定し、ファイルリストの2枚目(ID=2)に対する印刷ジョブが発行される(S1204)。
【0045】
S1204に対する印刷ジョブ動作中に、再び次の印刷画像の予約が指示されると、次画像選択指示により、ファイルリストの3枚目(ID=3)の画像データに対するプレビュージョブが発行される(S1205)。
【0046】
以上のようにジョブが発行された場合の共通バッファメモリの遷移は以下の通りである。共通バッファメモリの初期状態は、プレビュージョブも印刷ジョブも実行中ではないので空の状態である、(1201)。次にS1201にてアプリケーション制御部701からファイルリストのID=1に対するプレビュージョブが発行されると、プレビュージョブ制御部703はジョブを受信する。その後、S1101にて他のプレビュージョブを実行中か否かを確かめ、実行中ではないことを確認すると、S1103に移る。ここでは予約可能なアプリケーションであるため、S1103からS1104にフローが移り、同時動作用プレビューバッファを取得する(1202)。その後S1106、1107、1108と処理を行い、プレビュー画像完成後、プレビュー画像の表示(S1109)を終えると、S1110にてプレビューバッファを開放し、プレビュージョブ制御部703の処理を終える(1203)。
【0047】
次にS1202にて、アプリケーション制御部701からファイルリストのID=1に対する印刷ジョブが発行されると、印刷ジョブ制御部702はジョブを受信し、S1001にて他の印刷ジョブを実行か否かを確かめ、S1002に移る。ここでは予約可能なアプリケーションであるため、S1002からS1003にフローが移り、同時動作用印刷バッファを取得する(1204)。その後、印刷ジョブ制御部702は印刷が完了するまでS1005、1006、1007、1008の処理を繰り返し行っていく。
【0048】
一方、印刷ジョブ制御部702が繰り返し処理を行っている間に、S1203にてファイルリストID=2に対するプレビュージョブが発行されると、プレビュージョブ制御部703はジョブを受信する。そして、S1101、1103、1104の処理を経て、同時動作用プレビューバッファを取得する。その際、既に印刷バッファが取得されている状態のため、残りの共有バッファメモリからプレビューバッファを割り振る(1205)。その後プレビュージョブ制御部703は、S1106、1107、1108と処理を行い、プレビュー画像の表示(S1109)を終えると、S1110にてプレビューバッファを開放し、プレビュージョブ制御部703の処理を終える(1206)。
【0049】
次にS1204にて、アプリケーション制御部701からファイルリストのID=2に対する印刷ジョブが発行される。印刷ジョブ制御部702は、ジョブを受信し、S1001にて実行中であることを確認すると、S1012、1013に移り、受信したジョブを印刷ジョブキューに登録して処理を終える。次にS1205にて、ファイルリストのID=3に対するプレビュージョブが発行される。プレビュージョブ制御部703はジョブを受信し、S1101、1103と処理を経て同時動作用プレビューバッファを取得する。その際、既に印刷バッファが取得されている状態のため、残りの共有バッファメモリからプレビューバッファを割り振る(1207)。その後プレビュージョブ制御部703は、プレビュー画像が一面完成するまでS1106、1107、1108の処理を繰り返し行っていく。
【0050】
一方、プレビュージョブ制御部703が繰り返し処理を行っている中、印刷ジョブ制御部702がS1202にて受信した印刷ジョブの印刷処理が完了し、S1009で印刷バッファを開放して、S1010に処理が移る(1208)。
【0051】
その後、印刷ジョブ制御部702は、印刷ジョブキューを参照し(S1010)、登録済みの印刷ジョブが存在していることを確認すると、S1002に処理が移る(S1011)。そしてS1002、1003と処理を経て、印刷バッファを取得する。その際、既にプレビューバッファが取得されている状態のため、残りの共有バッファメモリから印刷バッファを割り振る(1209)。プレビュージョブ制御部703がS1205にて受信したプレビュージョブのプレビュー画像の一面生成が完了し、S1109でプレビューバッファを開放し、処理を終える(1210)。
【0052】
その後、印刷ジョブ制御部702がS1204にて受信した印刷ジョブの印刷処理が完了次第、印刷バッファを開放し(S1009)、さらに登録済みの印刷ジョブが存在しないことを確認して(S1010、1011)、印刷ジョブ制御部の処理を終える。このとき共有バッファは全て開放され、初期の状態に戻る。
【0053】
図9(b)は操作部101からの指定で実行されるアプリケーションが予約不可なアプリケーション(先に印刷対象を選んでまとめて印刷するアプリ)の場合のバッファメモリの割り振り遷移を示す。ここでは次のようにジョブが発行される場合を例に説明する。
【0054】
まずファイルリストの1枚目(ID=1)の画像データをプレビューするプレビュージョブが発行される(S1206)。S1206におけるプレビュー表示後に、次画像選択指示によりファイルリストの2枚目(ID=2)の画像データに対するプレビュージョブが発行される(S1207)。そしてS1207におけるプレビュー表示後に、ファイルリストの2枚目(ID=2)の画像データを印刷画像として決定し、ファイルリストの2枚目(ID=2)に対する印刷ジョブが発行される(S1208)。そしてS1208に対する印刷ジョブ終了後、次の引き続き継続して印刷画像が選択される。そして次画像選択指示により、ファイルリストの3枚目(ID=3)の画像データをプレビューするプレビュージョブが発行される(S1209)。S1209におけるプレビュー表示後に、ファイルリストの3枚目(ID=3)の画像データを印刷画像として決定する。ファイルリストの3枚目(ID=3)に対する印刷ジョブが発行される(S1210)。
【0055】
以上のようにジョブが発行された場合の共通バッファメモリの遷移は以下の通りである。共通バッファメモリの初期状態は空の状態である(1211)。次にS1206にてアプリケーション制御部701からファイルリストID=1に対するプレビュージョブが発行されると、プレビュージョブ制御部703はジョブを受信し、S1101、1103の処理を行う。ここでは予約不可能なアプリケーションであるため、S1103からS1105にフローが移り、単独動作用プレビューバッファを取得する(1212)。その後S1106、1107、1108と処理を行い、プレビュー画像の表示(S1109)を終えると、S1110にてプレビューバッファを開放し、プレビュージョブ制御部703の処理を終える(1213)。
【0056】
次にS1207にてアプリケーション制御部701からファイルリストID=2に対するプレビュージョブが発行されると、プレビュージョブ制御部703はジョブを受信する。そしてS1101、1103、1105の処理を経て、単独動作用プレビューバッファを取得する(1214)。その後S1106、1107、1108と処理を行い、プレビュー画像の表示(S1109)を終えると、S1110にてプレビューバッファを開放して処理を終える(1215)。
【0057】
次にS1208にて、アプリケーション制御部701からファイルリストID=2に対する印刷ジョブが発行されると、印刷ジョブ制御部702は、ジョブを受信し、S1001、1002に移る。ここでは予約不可能なアプリケーションであるため、S1002からS1104にフローが移り、単独動作用印刷バッファを取得する(1216)。その後、印刷ジョブ制御部702は印刷が完了するまでS1005、1006、1007、1008の処理を繰り返し行い、S1008にて印刷の完了が確認出来次第、S1009で印刷バッファを開放する。そして登録済みの印刷ジョブが存在しないことを確認すると(S1010、1011)、印刷ジョブ制御部の処理を終える(1217)。
【0058】
次にS1209にてアプリケーション制御部701からファイルリストID=3に対するプレビュージョブが発行されると、プレビュージョブ制御部703はジョブを受信する。そして、S1101、1103、1105の処理を経て、単独動作用プレビューバッファを取得する(1218)。その後S1106、1107、1108と処理を行い、プレビュー画像の表示(S1109)を終えると、S1110にてプレビューバッファを開放して処理を終える(1219)。
【0059】
次にS1210にて、アプリケーション制御部701からファイルリストID=3に対する印刷ジョブが発行されると、印刷ジョブ制御部702は、ジョブを受信する。そして、S1001、1002、1104の処理を経て、単独動作用印刷バッファを取得する(1220)。その後、印刷ジョブ制御部702がS1210にて受信した印刷ジョブの印刷処理が完了次第、印刷バッファを開放し(S1009)、さらに登録済みの印刷ジョブが存在しないことを確認して(S1010、1011)、処理を終える。このとき共有バッファは全て開放され、初期の状態に戻る。
【0060】
なお、本実施形態ではプレビュー時に同時動作の可能性の判定を、ジョブ発行元となるアプリケーションが印刷予約可能か否かによって、同時動作の可能性の有無を判定している。これはアプリケーションの種類に応じて判定するものには限らず、操作部101から指示された処理の内容に従って同時動作を行うものか否かを判定すればよい。また、このように判定した後、例えば、予約済みの印刷ジョブが存在するか、若しくは印刷処理が動作中か否かによって、さらにバッファの割り振りを変更してもよい。即ち、一旦同時動作の可能性があると判定された後、印刷処理が行われないことが分かったら、プレビュー処理の単独動作を行うための割り振りに変更すればよい。
【0061】
また、同時動作の対象として、印刷と表示とを例示したが、これら以外の処理としてもよいし、同時動作する処理は3つ以上であってもよい。
【0062】
以上のように本実施形態では、操作部101から指示された処理の内容に従って同時動作(並行動作)の可能性を判定し、その判定結果に応じて同時動作対象の処理のためのメモリの領域の割り振りを決定する。従って、対象となる動作を実行する前に必要なメモリの領域が確保できる。従って、メモリの空き待ちによって処理が滞る可能性を低減させることができる。
【0063】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行することによって実現可能である。また、このプログラムは、1つのコンピュータで実行させても、複数のコンピュータが連動して実行するようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部または全部をハードウェアによって実現するようにしてもよい。

【特許請求の範囲】
【請求項1】
画像データを処理する第1の処理手段と、
画像データを処理する第2の処理手段と、
前記第1の処理手段と前記第2の処理手段とで共通に使用されるメモリと、
ユーザから指示された処理の内容に基づき前記第1の処理手段と前記第2の処理手段とを並行して使用するか否か判定する判定手段と、
前記判定手段による判定結果に応じて、前記第1の処理手段と前記第2の処理手段のために割り当てる前記メモリのサイズを決定する決定手段とを有することを特徴とする画像処理装置。
【請求項2】
前記判定手段は、ユーザから指示された処理の内容が前記第1の処理手段による処理の予約が可能な処理である場合、前記第1の処理手段と前記第2の処理手段とを並行して使用する可能性があると判定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記判定手段は、前記第2の処理手段による処理の指示を受け付けたときに、既に前記第1の処理手段による処理の予約がなされていた場合、前記第1の処理手段と前記第2の処理手段とを並行して使用する可能性があると判定することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記決定手段は、前記第1の処理手段に対し、前記第2の処理手段よりも大きいサイズを割り当てることを特徴とする請求項1〜3のいずれか1項に記載の画像処理装置。
【請求項5】
前記第1の処理手段は、画像データに基づく画像の印刷を行うことを特徴とする請求項1〜4のいずれか1項に記載の画像処理装置。
【請求項6】
前記第2の処理手段は、前記印刷を行うための画像のプレビュー処理を行うことを特徴とする請求項5に記載の画像処理装置。
【請求項7】
画像データを処理する第1の処理手段と、画像データを処理する第2の処理手段と、前記第1の処理手段と前記第2の処理手段とで共通に使用されるメモリとを有する画像処理装置の制御方法であって、
ユーザから指示された処理の内容に基づき前記第1の処理手段と前記第2の処理手段とを並行して使用するか否か判定し、
前記判定の結果に応じて、前記第1の処理手段と前記第2の処理手段のために割り当てる前記メモリのサイズを決定することを特徴とする画像処理装置の制御方法。
【請求項8】
請求項7に記載の画像処理装置の制御方法をコンピュータにより実現するためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−15653(P2012−15653A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−148207(P2010−148207)
【出願日】平成22年6月29日(2010.6.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】