(57)【特許請求の範囲】
【請求項１】
画像データをハードウェア処理によって画像処理する第１の画像処理手段と、
画像データをソフトウェア処理によって画像処理する第２の画像処理手段と、
第１の画像データが印刷対象として決定された場合、前記第１の画像データを前記第１の画像処理手段を用いて処理させると決定する決定手段と、
前記第１の画像データの印刷処理が開始してから終了する前に印刷の予約指示が受け付けられた場合、前記第１の画像データを表示する表示手段と、
前記表示手段により表示される対象となる画像データを前記第１の画像データから前記第１の画像データとは異なる第２の画像データに変更するための閲覧指示を検出する検出手段と、
前記閲覧指示が検出された場合、前記第２の画像データがサムネイル画像を備えるか否かを判定する判定手段を有し、
前記判定手段が前記第２の画像データがサムネイル画像を備えると判定した場合、前記決定手段は、前記第２の画像データのサムネイル画像を前記第２の画像処理手段で処理させると決定し、
前記表示手段は、前記第１の画像データの印刷が終了する前に前記第２の画像処理手段の処理結果として前記第２の画像データを表示することを特徴とする画像処理装置。
【請求項２】
前記第２の画像データが前記判定手段によりサムネイル画像を備えないと判定された場合、画像データのサイズが所定のサイズより小さいか否かを判定するサイズ判定手段を更に有し、
前記サイズ判定手段の判定結果に基づき、前記第２の画像データは前記第１の画像処理手段または前記第２の画像処理手段で処理されることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の画像データが前記判定手段によりサムネイル画像を備えないと判定された場合、前記第１の画像処理手段が解放されるまでの時間を判定する時間判定手段を有し、
前記時間判定手段の判定結果に基づき、前記第２の画像データは、前記第１の画像処理手段または前記第２の画像処理手段で処理されることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
画像データをハードウェア処理によって画像処理する第１の画像処理手段と画像データをソフトウェア処理によって画像処理する第２の画像処理手段とを有する画像処理装置の制御方法であって、
第１の画像データが印刷対象として決定された場合、前記第１の画像データを前記第１の画像処理手段を用いて処理させると決定し、
前記第１の画像データの印刷処理が開始してから終了する前に印刷の予約指示が受け付けられた場合、前記第１の画像データを表示し、
前記表示手段により表示される対象となる画像データを前記第１の画像データから前記第１の画像データとは異なる第２の画像データに変更するための閲覧指示を検出し、
前記閲覧指示が検出された場合、前記第２の画像データがサムネイル画像を備えるか否かを判定し、
前記第２の画像データがサムネイル画像を備えると判定された場合、前記第２の画像データのサムネイル画像を前記第２の画像処理手段で処理させると決定し、前記第１の画像データの印刷が終了する前に前記第２の画像処理手段の処理結果として前記第２の画像データを表示することを特徴とする制御方法。
【請求項５】
請求項４に記載の画像処理装置の制御方法をコンピュータにより実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア処理による画像処理手段とソフトウェア処理による画像処理手段とを有する画像処理装置及びその制御方法に関する。
【背景技術】
【０００２】
従来、画像データを処理する際、ハードウェア処理による画像処理手段とソフトウェア処理による画像処理手段とを適宜使い分けるものが知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−７８７６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載のものは、用途に応じてハードウェア処理とソフトウェア処理とを固定的に使い分けるものである。画像データの処理に際しては、状況によってはハードウェア処理可能となるまで待つよりも、ソフトウェア処理行った方が結果的に早く処理を終えられる場合がある。しかしながら、従来、固定的にハードウェア処理とソフトウェア処理とを使い分けるものであったため、処理速度としては必ずしも効率的であったとは言えないものであった。
【０００５】
本発明は、以上の点に鑑みなされたものであり、ハードウェア処理による画像処理手段とソフトウェア処理による画像処理手段とを効率的に使い分けることが可能な画像処理装置、その制御方法並びにプログラムを提供するものである。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の画像処理装置は、画像データをハードウェア処理によって画像処理する第１の画像処理手段と、画像データをソフトウェア処理によって画像処理する第２の画像処理手段と、第１の画像データが印刷対象として決定された場合、前記第１の画像データを前記第１の画像処理手段を用いて処理させると決定する決定手段と、前記第１の画像データの印刷処理が開始してから終了する前に印刷指示の予約指示が受け付けられた場合、前記第１の画像データを表示する表示手段と、前記表示手段により表示される対象となる画像データを前記第１の画像データから前記第１の画像データとは異なる第２の画像データに変更するための閲覧指示を検出する検出手段と、前記閲覧指示が検出された場合、前記第２の画像データがサムネイル画像を備えるか否かを判定する判定手段を有し、前記判定手段が前記第２の画像データがサムネイル画像を備えると判定した場合、前記決定手段は、前記第２の画像データのサムネイル画像を前記第２の画像処理手段で処理させると決定し、前記表示手段は、前記第１の画像データの印刷が終了する前に前記第２の画像処理手段の処理結果として前記第２の画像データを表示することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画像データの処理内容と、処理対象の画像データの内容とに基づいてハードウェア処理とするか、ソフトウェア処理とするかを決定するので、それぞれを効率的に使い分けることが可能となる。
【図面の簡単な説明】
【０００８】
【図１】実施形態の画像処理装置の構成を示すブロック図である。
【図２】画像処理装置のプログラムの構成を示す図である。
【図３】画像処理装置による処理の流れを示すフローチャートである。
【図４】画像処理装置による処理の流れを示すフローチャートである。
【図５】画像処理装置による処理の流れを示すフローチャートである。
【図６】画像処理装置による処理の流れを示すフローチャートである。
【図７】画像処理装置による処理の流れを示すフローチャートである。
【図８】本実施形態の処理を行った場合と行わなかった場合との処理速度を示す図である。
【図９】本実施形態の処理を行った場合と行わなかった場合との処理速度を示す図である。
【図１０】画像処理装置による処理の流れを示すフローチャートである。
【図１１】画像処理装置による処理の流れを示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１０】
図１は、本実施形態における画像処理装置の構成を示すブロック図である。
【００１１】
図１において、操作部１０１はハードキーやソフトキーを含み、ユーザによる各種操作を受け付ける。カードインターフェース１０２はメモリカードをセット可能であり、セットされたメモリカードに記憶されている画像データを操作部１０１からの指示に従って入力可能である。読取部１０３はＣＣＤを備え、このＣＣＤは、原稿画像を読み取り、赤（Ｒ）、緑（Ｇ）および青（Ｂ）色のアナログ輝度データを出力する。印刷部１０４は入力された画像データに応じて記録シート上にインク、トナー等の記録剤を付与して画像をプリントする。
【００１２】
ＣＰＵ２００はＲＯＭ２０１に記憶されている制御命令プログラムや画像処理プログラム等をＲＡＭ２０２にロードし、それを実行することによって画像処理装置の動作を制御する。ＪＰＥＧ伸張ハードウェア２０３はＪＰＥＧ圧縮された画像データを伸張処理することができるハードウェアモジュールである。ＪＰＥＧ伸張ハードウェア２０３は、ＪＰＥＧ圧縮されたデータの検索、伸張や回転に必要な情報の収集などを行い、画像データを９０度単位で回転して伸張することも可能である。表示部２０４は操作部１０１の操作状態、画像処理装置の各種状態などユーザに通知すべき種々の情報を表示可能である。
【００１３】
図２は、図１に示した各構成とＲＯＭ２０１に格納されているプログラムで実行される処理との関係を模式的に表した図である。
【００１４】
アプリケーション制御部３０１は、操作部１０１を介して入力されたユーザの指示に応じてジョブを発行する制御プログラムである。印刷ジョブ制御部３０２は、生成された画像データを印刷部１０４に印刷させるための処理を制御する制御プログラムである。表示ジョブ制御部３０３は、生成された画像データを表示部２０４に表示させるための処理を制御する制御プログラムである。量子化処理部３０４は、画像データを、印刷部１０４で印刷する形態に適した形にハーフトーン処理を行う画像処理プログラムである。ＪＰＥＧ処理部３０５は、ＪＰＥＧ伸張ハードウェア２０３及びＪＰＥＧ伸張ソフトウェア３０８を制御する画像処理制御プログラムである。色変換処理部３０６は、画像データの色変換を行う画像処理プログラムである。変倍処理部３０７は、画像データの変倍を行う画像処理プログラムである。ＪＰＥＧ伸張ソフトウェア３０８は、ＪＰＥＧ画像中の圧縮データを伸張する機能をそなえた画像処理プログラムである。また、ＪＰＥＧ伸張ソフトウェア３０８は、ＪＰＥＧ画像中の圧縮データを全て検索し、回転伸張に必要な情報を収集するＪＰＥＧ解析伸張機能も有する。ＪＰＥＧ伸張ソフトウェア３０８は、同ＪＰＥＧ伸張ソフトウェア３０８にて、ＪＰＥＧ解析伸張機能を実行した後であれば、画像データを９０度回転して伸張することが可能である。ＪＰＥＧ解析伸張機能とは、ＪＰＥＧ画像中の圧縮データを全て検索し、回転伸張に必要な情報を収集する機能である。ＪＰＥＧ処理部３０５、色変換処理部３０６、変倍処理部３０７は印刷ジョブ制御部からも、表示ジョブ制御部からも呼び出し可能なように共通化されている。なお、図示を省略したがアプリケーション制御部３０１、印刷ジョブ制御部３０２、表示ジョブ制御部３０３、ＪＰＥＧ処理部３０５は、カードインターフェース１０２を介して画像ファイルの読み出しが可能な構成とする。
【００１５】
ＣＰＵ２００が画像処理装置を制御する際は、図２に示したプログラム群の全てまたは一部をＲＡＭ２０２にロードし、それを実行することによってなされる。以降で示すフローチャートはこのプログラムに基づく処理の流れを示す。
【００１６】
図３は、メモリカードからの印刷アプリケーションを制御する際のアプリケーション制御部３０１による処理の流れを示す。
【００１７】
まず、Ｓ４０１にてカードインターフェース１０２を介してメモリカードにアクセスし、保存されているＪＰＥＧ画像ファイルの検索を行い、画像ファイルごとに画像ＩＤを生成し画像ファイル名を付加したファイルリストを生成する。本実施形態においては、画像ファイルの検索がなされると、各画像ファイルに対して画像ＩＤ（１〜Ｎ）を割り当て、それと画像ファイルのファイル名とを対応付けたファイルリストを生成しＲＡＭ２０２上に記憶する。なお、本実施形態で扱う画像ファイルはデジタルスチルカメラで撮影した際の種々の情報を含むＥｘｉｆ形式のＪＰＥＧファイルとする。
【００１８】
次にＳ４０２にて画像ＩＤ＝１の画像に対する表示ジョブを表示ジョブ制御部３０３に発行する。その後操作部１０１を介してのユーザ指示を受け取るべく、Ｓ４０３、Ｓ４０４の判断を繰り返す。Ｓ４０３では、ユーザによって、現在表示中あるいは表示処理中の画像データの次なる画像の閲覧指示が行われたか否かを確認する。ユーザによって次なる画像の閲覧指示が検出された場合は、Ｓ４０２にて、ファイルリスト上で次なる画像である、画像ＩＤ＝２の画像に対する表示ジョブを、表示ジョブ制御部３０３に発行し、再度Ｓ４０３、Ｓ４０４の指示待ちを行う。Ｓ４０３にて次なる画像の閲覧指示が検出されなかった場合は、Ｓ４０４にてユーザによって印刷画像の指定が行われたか否かを検出する。ユーザによって、印刷画像の指定が行われた場合は、現在表示中あるいは表示処理中の画像ＩＤ＝２の画像を印刷対象として確定しＳ４０４を実行する。
【００１９】
そしてＳ４０５にて、ユーザによる印刷設定の指示を受け付ける。本実施形態では、印刷部数が設定できるものとする。以降、Ｓ４０５にて、印刷部数を３部と設定された場合の処理について説明する。次にＳ４０６にて、印刷ジョブ制御部に対して、画像ＩＤ＝２の画像を３部印刷するよう、印刷ジョブを発行する。さらに、ユーザが別なる画像の印刷指示を予約する、予約指示があるか否かを確認するとともに、実行中あるいは予約済みの印刷ジョブ終了を検出するために、Ｓ４０７、Ｓ４０８を繰り返す。Ｓ４０７にて予約指示がないと判断されると、Ｓ４０８を実行する。Ｓ４０８では、現在実行中あるいは予約済みの印刷ジョブが存在する場合は、処理Ｓ４０７を実行する。次に処理Ｓ４０７にて予約指示を検出した場合は、処理Ｓ４０３を実行する。この段階で、表示部２０４には最後に表示ジョブを発行した画像ＩＤ＝２の画像データ、あるいは画像ＩＤ＝２が表示処理中であることを示す画面が表示されている。次に、処理Ｓ４０３にて、次なる画像データの閲覧指示を検出した場合は、Ｓ４０２にて、ファイルリスト上で次なる画像である、画像ＩＤ＝３の画像に対する表示ジョブを、表示ジョブ制御部３０３に発行し、再度Ｓ４０３、Ｓ４０４の指示待ちを行う。以降、Ｓ４０５にて、ユーザが画像ＩＤ＝３の画像を印刷対象として指定し、Ｓ４０５にて２部印刷するよう設定された場合は、Ｓ４０６にて、印刷ジョブ制御部に対して、画像ＩＤ＝３の画像を２部印刷するよう、印刷ジョブを発行する。その後ユーザから予約指示がなければ、Ｓ４０７とＳ４０８が繰り返されることになる。これまで印刷ジョブが発行された画像ＩＤ＝２を３部印刷し、画像ＩＤ＝３を２部印刷が終了した段階で、Ｓ４０８にて全印刷ジョブ終了を検出し、Ｓ４０３を実行する。この段階で、表示部２０４には最後に表示ジョブを発行した画像ＩＤ＝３の画像データ、あるいは画像ＩＤ＝３の画像データが表示処理中であることを示す画面が表示されている。アプリケーション制御部３０１の制御を以上のような構成とした場合、ユーザは画像が印刷中であっても、異なる画像の印刷を予約指示することが可能となる。
【００２０】
図４は、図３におけるＳ４０２にて発行された表示ジョブを受け付けた表示ジョブ制御部３０３の処理の流れを示したフローチャートである。ここでは、初めに画像ＩＤ＝１に対する表示ジョブを受け付けた後に、画像ＩＤ＝２に対する画像表示ジョブを受け付け、最後に画像ＩＤ＝３に対する表示ジョブを受け付ける場合の例を示す。
【００２１】
Ｓ６０１では現在実行中の表示ジョブがあるか否かを判断する。初回の要求である、画像ＩＤ＝１の実行中に実行中のその他の表示ジョブは存在しないので、Ｓ６０３以降の処理を順次実行する。Ｓ６０３にて表示部２０４に画像表示処理中であることを示す画面を表示させる。本実施例では、この画面中に画像ＩＤ＝１の画像ファイル名を表示することとする。次にＳ６０４以降の処理を実行することになるが、以降の処理実行中に次なる画像ＩＤ＝２の画像表示ジョブを受け付けた場合、Ｓ６０１で実行中の表示ジョブが存在すると判断され、Ｓ６０２を実行する。Ｓ６０２では、画像ＩＤ＝１の画像表示ジョブを直ちに終了するよう制御を行う。以降は画像ＩＤ＝２に対するジョブを受け付けたものとして、説明する。
【００２２】
次にＳ６０３にて画像ＩＤ＝２の画像ファイル名を表示し、処理Ｓ６０４を実行する。Ｓ６０４では、画像ＩＤ＝２に対応する画像データのヘッダ部分をカードインターフェース１０２から、ＲＡＭ２０２の所定領域に読み込みを行う。Ｓ６０５では、画像ＩＤ＝２に対応する画像データのヘッダ部分の解析を行い、ＪＰＥＧ伸張に必要な画像サイズ、量子化テーブルなどといった情報を収集する。また、デジタルスチルカメラで撮影された画像ＪＰＥＧ画像の多くは、画像ファイル中のヘッダ内部にＪＰＥＧ圧縮されたサムネイル画像データが存在している。そのためＳ６０５では、画像ファイル中にサムネイル画像が付加されているか否かも検出し、サムネイルが付加されている場合はサムネイル伸張に必要な、情報も収集する。なお、ここでは画像ＩＤ＝２の画像ファイルにはサムネイル画像が付加されているものとする。
【００２３】
Ｓ６０６では、Ｓ６０５で検出したサムネイルの有無を判断材料として、次なる処理を切りかえる。サムネイルが付加されていない画像ファイルであれば、Ｓ６０７が実行されるが、画像ＩＤ＝２はサムネイルが有りと判断されるため、Ｓ６０８を実行する。Ｓ６０８では、ＲＡＭ２０２中にＪＰＥＧ伸張入力バッファを確保し、カードインターフェース１０２から、画像ＩＤ＝２のファイル中にあるサムネイル画像を読み出しＪＰＥＧ伸張入力バッファに保存する。さらにサムネイル画像を読み出したことを記憶しておく。なお、ＪＰＥＧ伸張入力バッファは少なくとも圧縮されたサムネイル画像が全て格納可能な領域を確保するものとする。次にＳ６０９では、ＪＰＥＧ伸張をソフトウェアで実行するか、ハードウェアで実行するかを判断する。
【００２４】
図５は、入力されたＪＰＥＧ画像の伸張をソフトウェア処理により実行するか、ハードウェア処理により実行するかを判断する処理の流れを示すフローチャートである。
【００２５】
Ｓ７０１では、図４における、Ｓ６０８にてサムネイル画像がＪＰＥＧ伸張入力バッファに記憶されているか否かを示す情報を参照し、サムネイルが記憶されている場合は、Ｓ７０３を実行する。Ｓ７０３ではソフト伸張処理が選択される。即ち、処理対象の画像データがサムネイル画像でありそのサイズが小さい（大きくはない）ことがわかっているため、ソフトウェアにより処理を行うよう決定する。一方Ｓ７０１にて、主画像が記憶されている場合は、Ｓ７０２を実行する。Ｓ７０２ではハード伸張処理が選択される。即ち、処理対象の画像データがサムネイル画像ではない場合、画像データのサイズが大きい可能性が高いためハードウェアにより処理を行う。このように画像データの処理内容が表示である場合、処理対象の画像データの内容を判定し、その判定結果に従ってハードウェア処理するかソフトウェア処理するかを決定する。今回は、処理Ｓ６０８にて、画像ＩＤ＝２のファイル中にあるサムネイル画像を取り込んでいるため、Ｓ６０９ではソフトウェア実行が選択されることになる。
【００２６】
続いて、Ｓ６１０ではＳ６０９にて、ソフトウェアによる実行が選択されているため、ソフトウェアによる処理を実行すべくＳ６１１が実行されるよう制御を行う。Ｓ６１１では、ＪＰＥＧ処理部３０５に対して、ＪＰＥＧ伸張ソフトウェア３０８にてＪＰＥＧ伸張を行うよう要求を行い、要求が完了するのを待つ。なお伸張後の画像サイズによっては伸張後の画像データを全面保存できるだけの領域確保が困難なケースも想定されるため、本実施形態では、伸張後の画像データが保存可能なライン数Ｎ単位で、処理要求を行うものとする。
【００２７】
次にＳ６１３で、表示部２０４における画像表示領域のサイズ及び解像度に適したサイズに画像データの拡大もしくは縮小を行う。さらに、Ｓ６１４では、表示部２０４に適した形式に色変換を色変換処理部３０６にて行う。色変換処理部３０６では、例えば、マトリクス演算や、テーブル参照を用いて、表示部のデバイス色空間への変換を行う。
【００２８】
続いてＳ６１５にて、今回選択された画像データ（画像ＩＤ＝２のサムネイル画像）の全面が処理済みか否かを判断し、未処理データが残っている場合は、Ｓ６１０、Ｓ６１１、Ｓ６１３、Ｓ６１４、Ｓ６１５を順次実行する。
【００２９】
以上のように画像処理を繰り返し実行した結果、Ｓ６１５にて、画像データの全面が処理済みであると判断されるとＳ６１６が実行される。Ｓ６１６では画像処理済みの画像データを表示部２０４に転送し、画像処理済の画像データが表示部２０４に表示されることになる。
【００３０】
続いて、Ｓ６１７では今回表示した画像がサムネイル画像か否かを判断する。今回表示された画像データは、画像ＩＤ＝２のサムネイル画像であるため、次にＳ６０７を実行するよう制御を行う。Ｓ６０７では、ＲＡＭ２０２中にＪＰＥＧ伸張入力バッファを確保し、カードインターフェース１０２から、画像ＩＤ＝２のファイル中にある主画像データを読み出し、ＪＰＥＧ伸張入力バッファに保存する。なお、ＪＰＥＧ伸張入力バッファが確保可能なサイズよりも主画像データのサイズが大きい場合は、主画像データの先頭から、ＪＰＥＧ伸張入力バッファのサイズまでを読み込むものとする。
【００３１】
次に、Ｓ６０４では図５におけるＳ７０１で主画像の伸張を行うと判断されるためハードウェアによる実行が選択される。続いて、Ｓ６１０ではＳ６０９にて、ハードウェアによる実行が選択されているため、ハードウェアによる処理を実行すべく、Ｓ６１２が実行されるよう制御する。Ｓ６１２では、ＪＰＥＧ処理部３０５に対して、ＪＰＥＧ伸張ハードウェア２０３を用いて伸張後の画像データ保存領域に収まるライン数ＮのＪＰＥＧ伸張を行うよう要求を行い、要求が完了するのを待つ。以降、サムネイル画像表示時と同様に、Ｓ６１３、Ｓ６１４、Ｓ６１５を実行し主画像データに対して、全面画像処理が終了するまで、一連の画像処理を繰り返し実行する。
【００３２】
Ｓ６１６では画像処理済みの画像データを表示部２０４に転送し、画像処理済の画像データが表示部２０４に表示されることになる。続いて、Ｓ６１７では今回表示した画像がサムネイル画像か否かを判断する。今回表示された画像データは、画像ＩＤ＝２の主画像であるため、今回受け付けた画像ＩＤ＝２に対する表示ジョブを終了する。
【００３３】
以上の例では、画像ＩＤ＝２の次に画像ＩＤ＝３に対する表示ジョブを受け付けることになるが、以降の処理はこれまで画像ＩＤ＝２を用いて説明したものと同じになる。表示ジョブ制御部３０３を以上のような構成としたことで、表示対象となる画像ファイルにサムネイルが含まれている場合は、一連の画像処理を終え、表示部２０４にサムネイル画像が一旦表示される。その後、主画像に対して一連の画像処理を実行し、主画像が表示されるよう切り替わる。主画像データの処理に時間がかかり、表示までの時間を要する場合であっても、サムネイル画像が高速に表示されれば、ユーザは印刷すべき画像を閲覧することが可能となる。また、ハードウェアによる処理と、ソフトウェアによる処理の切り替わりが、１つの画像内で発生することはないため、ハードウェアとソフトウェアの演算誤差があっても、表示画像に色むらは発生しない。
【００３４】
図６は、図３におけるＳ４０６にて発行された印刷ジョブを受け付けた印刷ジョブ制御部３０２の処理の流れを示したフローチャートである。この例では、初めに画像ＩＤ＝２に対する印刷ジョブを受け付けた後に、画像ＩＤ＝３に対する印刷ジョブを受け付けるものとする。
【００３５】
まず、Ｓ８０１では受け付けた印刷ジョブを一旦印刷ジョブキューに登録する。次に、Ｓ８０２では、現在実行中の印刷ジョブがあるか否かを判断する。初めに受け付けた画像ＩＤ＝２に対する印刷ジョブが要求された時は、現在実行中の印刷ジョブが無いため、Ｓ８０３を実行するよう制御される。一方、画像ＩＤ＝２に対する印刷ジョブの実行中に画像ＩＤ＝３に対する印刷ジョブの実行要求を受け付けた場合は、Ｓ８０１にて印刷ジョブキューに登録した後、画像ＩＤ＝２に対する印刷ジョブを継続実行するように制御を戻す。
【００３６】
以降は画像ＩＤ＝２に対する印刷ジョブが実行中であるとして説明する。次に、Ｓ８０３では印刷ジョブキューから最も古い印刷ジョブである、画像ＩＤ＝２に対する印刷ジョブを取得し、印刷設定（ここでは部数＝３部）を取得する。次に、Ｓ８０４では画像ＩＤ＝２に対応する画像データのヘッダ部分をカードインターフェース１０２から、ＲＡＭ２０２の所定領域に読み込む。さらに、Ｓ８０５画像ＩＤ＝２に対応する画像データのヘッダ部分の解析を行い、ＪＰＥＧ伸張に必要な画像サイズ、量子化テーブルなどといった情報を収集する。なお、ここでは印刷ジョブでのヘッダ解析においては、サムネイル有無の判定を行わず、主画像の伸張に必要な情報のみを収集する。
【００３７】
次に、Ｓ８０６では、ＲＡＭ２０２中にＪＰＥＧ伸張入力バッファを確保し、カードインターフェース１０２から、画像ＩＤ＝２のファイル中にある主画像を読み出しＪＰＥＧ伸張入力バッファに保存する。なお、ＪＰＥＧ伸張入力バッファが確保可能なサイズよりも主画像データのサイズが大きい場合は、主画像データの先頭から、ＪＰＥＧ伸張入力バッファのサイズまでを読み込むものとする。
【００３８】
次に、ＪＰＥＧ画像の伸張処理に移るが、デジタルスチルカメラで撮影された画像データの多くはランドスケープ画像として横長の画像データとして保存されている。一方、本実施形態において印刷部１０４は、印刷の際、印刷用紙の長手方向に紙送りを行う。よって印刷対象の画像データを９０度回転して伸張する必要がある。そこで、まずＳ８０７にて、ＪＰＥＧ処理部３０５に対して、ＪＰＥＧ伸張ハードウェア２０３でＪＰＥＧ解析伸張を行うよう要求を行い、処理が終了するのを待つ。次に、Ｓ８０８にて、ＪＰＥＧ伸張ハードウェア２０３を用いて９０度の回転と伸張とが行われた後のデータを出力するよう要求を行い、要求が完了するのを待つ。
【００３９】
次にＳ８０９で、印刷用紙９０２のサイズ及び印刷部１０４の印刷解像度に適したサイズに画像データの拡大もしくは縮小を変倍処理部３０７にて行う。なお本実施形態において印刷部１０４は、１６ライン単位に印刷処理を行うものとする。よって、Ｓ８０８では変倍処理部３０７が１６ライン出力するために必要十分なライン数であるＭライン単位で処理要求を行うものとし、変倍処理部３０７はＳ８０９においては、１６ラインのデータを出力するものとする。さらに、Ｓ８１０では、印刷部１０４に適した色空間にすべく色変換を色変換処理部３０６にて行う。例えば、マトリクス演算や、テーブル参照を用いて、印刷部１０４のデバイス色空間への変換を行う。
【００４０】
次に、Ｓ８１１では画像データを印刷部１０４に適したドットパタンに変換する量子化処理を行う。次に、Ｓ８１２では、Ｓ８１１で生成された１６ライン分のドットデータを印刷するよう、印刷部１０４にデータ送信を行う。Ｓ８１３では、全画像データの印刷が終了したか否かを検出し、未印刷データが残っている場合は処理Ｓ８０８から、Ｓ８１２までの一連の処理を実行するよう判断する。全画像データの印刷が終了したら、Ｓ８１４にて全部数の印刷が終了したか否かの確認を行い、全部数の印刷が終わっている場合は、Ｓ８０４以降の処理を残り部数分実行するよう制御を行う。画像ＩＤ＝２は３部印刷するよう求められているため、Ｓ８０４以降の処理を３度行うことで全部数の印刷が終了し、Ｓ８１５が実行される。
【００４１】
Ｓ８１５では、印刷ジョブキューを参照し、印刷ジョブの有無を確認し、印刷ジョブが残っている場合は、Ｓ８０３以降の処理を印刷ジョブが無くなるまで続けるよう制御を行う。画像ＩＤ＝２の印刷ジョブがＳ８１５に到達する以前に画像ＩＤ＝３の印刷ジョブを受け付けている場合は、印刷ジョブキューに印刷ジョブが存在するため、Ｓ８０３が実行される。Ｓ８０３にて画像ＩＤ＝３の印刷ジョブを印刷ジョブキューから取り出し、要求された２部の印刷が終了するまで、以降の処理を実行する。
【００４２】
印刷ジョブ制御部３０２を以上のような構成としたことで、アプリケーション制御部３０１は、印刷ジョブ制御部３０２が実行中か否かにかかわらず、印刷ジョブを発行することが可能となる。印刷ジョブ制御部３０２は、実行中の印刷処理が終了すると即座に、印刷ジョブキューに蓄積されている印刷ジョブを取り出し、印刷を開始することが可能となる。また、ハードウェアによる処理と、ソフトウェアによる処理の切り替わりが、１つの画像内で発生することはないため、ハードウェアとソフトウェアの演算誤差があっても、印刷画像に色むらは発生しない。
【００４３】
図７は、ＪＰＥＧ処理部３０５による処理の流れを示したフローチャートである。
【００４４】
ＪＰＥＧ処理部３０５は、処理要求を受けた場合まず、その要求がハードウェアで実行するよう指示されているか、ソフトウェアで実行するよう指示されているかをＳ１００１で判断する。ハードウェアで実行するよう指示されている場合は、ハードウェアにて処理を実行するべく、Ｓ１００２以降の処理を実行するよう、制御を行う。ソフトウェアで実行するよう指示されている場合は、ソフトウェアにて処理を実行するべく、Ｓ１００２以降の処理を実行するよう制御を行う。
【００４５】
まず、ソフトウェアで実行するよう指示されている場合の処理についてＳ１００２から説明する。上述した表示ジョブ制御部３０３の処理における、Ｓ６０６にてサムネイル有りと判定された場合にＳ６１１にてソフトＪＰＥＧ伸張が要求された場合が該当する。
【００４６】
ソフトウェアにてＪＰＥＧ処理を実行する場合、Ｓ１００２にて解析伸張要求を受けたか、伸張要求を受けたかを判定する。解析伸張要求を受けた場合は、Ｓ１００４にてＪＰＥＧ伸張ソフトウェア３０８に対して解析伸張要求を行い、応答が戻るまで待つ。一方、通常の伸張要求がなされた場合は、Ｓ１００３にてＪＰＥＧ伸張ソフトウェア３０８に対して、伸張要求を行い、応答が戻るまで待つ。ＪＰＥＧ伸張ソフトウェア３０８は、ＪＰＥＧ伸張入力バッファのデータを順次解析伸張処理または伸張処理を行い、ＪＰＥＧ伸張入力バッファ上のデータが尽きると、継続処理に必要な入力データを呼び出し元に要求する。一方ＪＰＥＧ伸張入力バッファ上のデータが尽きることなく処理が完結した場合は完了を呼び出し元に通知する。
【００４７】
なお、本実施形態においては、これまで説明した中で、ＪＰＥＧ伸張ソフトウェア３０８を使用するケースはサムネイル画像の伸張処理のみである。サムネイル画像の圧縮データはＪＰＥＧ伸張入力バッファに全て読み込み済みの状態で要求がかけられるため、入力データを呼び出しもとに要求することは無い。
【００４８】
ＪＰＥＧ伸張ソフトウェア３０８からの応答があった場合、Ｓ１００５が実行される。Ｓ１００５では、ＪＰＥＧ伸張ソフトウェア３０８からの応答が入力データ要求であるか、処理完了であるかを判断し、入力データ要求があった場合は、Ｓ１００６を実行する。Ｓ１００６ではＪＰＥＧ伸張ソフトウェア３０８から指定された継続処理に必要な入力データを、カードインターフェース１０２から読み出し、ＪＰＥＧ伸張入力バッファに格納する。一方Ｓ１００５にて、ＪＰＥＧ伸張ソフトウェア３０８からの応答が処理完了であった場合は処理を終了し、呼び出し元に終了を通知する。
【００４９】
続いて、ハードウェア実行するよう指示されている場合の処理についてＳ１００７から説明する。Ｓ１００７では、ハードウェア資源が解放されているか否かを判定する。ハードウェア資源が解放されていない場合はハードウェア資源が解放されるまで待ち続ける。一方ハードウェア資源が解放されている場合は、Ｓ１００８にてハードウェア資源の獲得を行う。Ｓ１００８にてハードウェア資源の獲得後、解放するまでの間は、別なるハード伸張要求を受け付けた場合であっても、Ｓ１００７にて解放を待ち続けることになる。次にＳ１００９にて解析伸張要求を受けたか、伸張要求を受けたかを判定する。
【００５０】
解析伸張要求を受けた場合は、Ｓ１０１１にて、ＪＰＥＧ伸張ハードウェア２０３に対して、解析伸張要求を行い、応答が戻るまで待つ。一方、通常の伸張要求がなされた場合は、Ｓ１０１０にて、ＪＰＥＧ伸張ハードウェア２０３に対して、伸張要求を行い、応答が戻るまで待つ。ＪＰＥＧ伸張ハードウェア２０３は、ＪＰＥＧ伸張入力バッファのデータを順次解析伸張処理または伸張処理を行い、ＪＰＥＧ伸張入力バッファ上のデータが尽きると、継続処理に必要な入力データを呼び出し元に要求する。一方ＪＰＥＧ伸張入力バッファ上のデータが尽きることなく処理が完結した場合は完了を呼び出し元に通知する。
【００５１】
ＪＰＥＧ伸張ハードウェア２０３からの応答があった場合、Ｓ１０１２が実行される。Ｓ１０１２では、ＪＰＥＧ伸張ハードウェア２０３からの応答が入力データ要求であるか、処理完了であるかを判断し、入力データ要求があった場合は、Ｓ１０１３を実行する。Ｓ１０１３ではＪＰＥＧ伸張ハードウェア２０３から指定された継続処理に必要な入力データを、カードインターフェース１０２から読み出し、ＪＰＥＧ伸張入力バッファに格納する。一方Ｓ１０１２にて、ＪＰＥＧ伸張ハードウェア２０３からの応答が処理完了であった場合はＳ１０１４にてハードウェア資源の解放を行った後に処理を終了し、呼び出し元に終了を通知する。
【００５２】
ＪＰＥＧ処理部３０５を以上のような構成としたことで、ハードウェアによる処理要求であっても、ソフトウェアによる処理要求であっても、適切に処理を切り分けて実行することが可能となる。また、ハードウェアの資源管理を適切に行っているため、ＪＰＥＧ伸張ハードウェア２０３は常に１つの処理要求を満たす機能を持つだけでよい。
【００５３】
次に、本実施形態の処理による処理効率について説明する。
【００５４】
ＪＰＥＧ伸張ハードウェア２０３の伸張処理または解析伸張処理の処理能力（処理速度）は、圧縮画像データのサイズが５０ＫＢｙｔｅにつき、０．０１秒かかるものとする。また、ＪＰＥＧ伸張ソフトウェア３０８の処理能力は、ＪＰＥＧ伸張ハードウェアの１／１０程度の処理能力であり、圧縮画像データのサイズが５０ＫＢｙｔｅにつき、０．１秒かかるものとする。
【００５５】
図８は、ＪＰＥＧ伸張ハードウェア、ＪＰＥＧ伸張ソフトウェア、各ジョブの処理にかかる時間を示すタイミングチャート図を示したもので、本実施形態の制御によるものとそれ以外のものとを示す図である。図８（ａ）は、常にＪＰＥＧ伸張ハードウェアを使用するよう制御した場合の挙動を示す。図８（ｂ）は、上述した本実施形態の制御による挙動を示す。また、これらは、印刷ジョブ制御部３０２が画像ＩＤ＝２に対するＪＰＥＧ解析伸張要求を行った直後に、表示ジョブ制御部３０３が画像ＩＤ＝３に対するサムネイル画像のＪＰＥＧ伸張要求を行った場合の状況を示している。
【００５６】
なお、画像ＩＤ＝２の主画像データのサイズを５ＭＢｙｔｅ、画像ＩＤ＝３のサムネイル画像データのサイズを５０ＫＢｙｔｅ、主画像データのサイズを５Ｍｂｙｔｅとする。Ｔ１１０１からＴ１１０５までは、それぞれ、後述するイベントが発生した時刻を表す。また、図８（ａ）、（ｂ）ともに同一の時刻となるものには同一の符号を付した。
【００５７】
Ｔ１１０１は印刷ジョブにおける、画像ＩＤ＝２の主画像をＪＰＥＧ解析伸張要求した時刻を表す。Ｔ１１０２は表示ジョブにおける、画像ＩＤ＝３のサムネイル画像をＪＰＥＧ伸張要求した時刻を表す。Ｔ１１０３は、画像ＩＤ＝２の主画像をＪＰＥＧ解析伸張要求に対する処理が終了した時刻を表す。
【００５８】
図８（ａ）においては、表示ジョブ制御部によるＪＰＥＧ伸張要求を受けた時点でハードウェアが解放されていないため、ハードウェアが解放されるまで、すなわちＴ１１０３の時刻になるまで、待ち続けることになる。画像ＩＤ＝２の主画像サイズが５Ｍｂｙｔｅで、画像伸張ハードウェアの処理能力が５０ＫＢｙｔｅにつき、０．０１秒であるため、最悪の場合１秒程度表示ジョブのＪＰＥＧ伸張が待たされることになる。その後、ＪＰＥＧ伸張ハードウェアの解放を検出し、即座に画像伸張を行い、Ｔ１１０４の時刻にて、伸張処理が終了する。Ｔ１１０３からＴ１１０４までにかかる時間はおおよそ０．０１秒と高速であるが、その前段である解放待ち時間により、表示要求にかかる処理は１秒以上かかってしまうことになる。
【００５９】
一方、図８（ｂ）においては、表示ジョブ制御部によるＪＰＥＧ伸張要求を受けた時点で、即座にサムネイル画像のソフトウェア伸張要求を行うよう制御を行う。そのため、ＪＰＥＧ伸張ハードウェアの解放状況に左右されること無く表示処理が行われ、Ｔ１１０５に示す時刻に伸張処理が終了する。画像ＩＤ＝３のサムネイルサイズが５０Ｋｂｙｔｅで、画像伸張ソフトウェアの処理能力が５０ＫＢｙｔｅにつき、０．１秒であるため、Ｔ１１０２からＴ１１０５にかかる時間は、０．１秒程度となる。ハードウェアを使用した場合と比べると処理自体は低速ではあるが、サムネイル画像のデータサイズは小さいためユーザにストレスを与えることなく表示のための画像伸張が可能となる。
【００６０】
図９は、ＪＰＥＧ伸張ハードウェア、ＪＰＥＧ伸張ソフトウェア、印刷ジョブの処理にかかる時間を示すタイミングチャート図を示したもので、本実施形態の制御によるものとそれ以外のものとを示す図である。図９（ａ）は、本実施形態のような制御を行うことなく、用途に応じて固定的にハードウェア処理とソフトウェア処理を使い分けたり、ハードウェアの解放状況を確認してソフトウェア処理を実行する場合の挙動を示す。図９（ｂ）は、上述した本実施形態の制御による挙動を示す。また、図９は、図８と異なり、印刷ジョブ制御部３０２が画像ＩＤ＝２に対するＪＰＥＧ解析伸張要求を行った直後に、表示ジョブ制御部３０３が画像ＩＤ＝３に対する主画像のＪＰＥＧ伸張要求を行った場合の状況している。Ｔ１２０１からＴ１２０５までは、それぞれ、後述するイベントが発生した時刻を表す。画像ＩＤ＝２の主画像をＪＰＥＧ解析伸張要求した時刻を表す。Ｔ１２０２は表示ジョブにおける、画像ＩＤ＝３の主画像をＪＰＥＧ伸張要求した時刻を表す。Ｔ１２０３は、画像ＩＤ＝２の主画像をＪＰＥＧ解析伸張要求に対する処理が終了した時刻を表す。
【００６１】
図９（ａ）においては、表示ジョブ制御部によるＪＰＥＧ伸張要求を受けた時点でハードウェアが解放されていないため、ソフトウェアにて実行するように制御される。あるいは、表示目的ではソフトウェアを使うように予め定められてしまう。いずれにせよ、表示ジョブ制御部によるＪＰＥＧ伸張要求を受けた時点で、即座に主画像のソフトウェア伸張要求を行うよう制御を行う。そして、Ｔ１２０４の時刻にソフト処理が終了することになる。Ｔ１２０２からＴ１２０４までの時間は、処理能力からおおよそ１０秒程度かかることになる。仮に画像ＩＤ＝３にサムネイルが付加されていないと、ユーザは選択する画像が閲覧できず、非常なストレスとなる。
【００６２】
一方、図９（ｂ）においては、ハードウェアの解放を待った後に、ハードウェアによる処理が実行される。そのため、最悪の場合でも、１２０２からＴ１２０３の間即ち１秒程度待ったのちに、伸張処理を開始する。その後、伸張処理が終了する時刻Ｔ１２０５に終了する。Ｔ１２０３から、Ｔ１２０５までの時間はおよそ１秒程度であるため、ハードの解放待ち時間を含めても２秒程度で、表示に係る伸張処理が終了する。図９（ａ）の１０秒と比較して、ユーザのストレスは著しく軽減する。
【００６３】
次に、ＪＰＥＧ伸張をソフトウェア処理で実行するか、ハードウェア処理で実行するかを判断する処理について、上述の例（図５等）とは異なる方法で行う例について説明する。図１０はこの場合の処理の流れを示すフローチャートである。本フローチャートの処理は、図４のＳ６０９から呼び出されて実行される。図１０では、Ｓ１３０１において、処理対象の画像データのサイズと所定の閾値とを比較し、閾値以下であればソフトウェア処理を選択し、閾値より大きければハードウェア処理を選択する。これ以降は上述のとおり選択された処理を実行する。
【００６４】
この閾値は、例えばユーザがストレスを感じない時間とソフトウェア処理の処理能力の処理能力に基づき決定すればよい。例えば、ソフトウェアによる処理であっても、ユーザが体感上、ストレスを感じ得ない速度が０．５秒であるとし、ＪＰＥＧ伸張ソフトウェア３０８の処理能力が圧縮画像データのサイズが５０ＫＢｙｔｅにつき０．１秒かかる場合、閾値は２５０ＫＢｙｔｅとなる。
【００６５】
図１０の処理では、ＪＰＥＧ伸張処理の対象となる画像データのサイズが２５０ＫＢｙｔｅ以下であれば、即座にＪＰＥＧ伸張ソフトウェア３０８にて実行される。そのため、ハードウェアの占有状況にかかわらず、ユーザにストレスを与えないことが分かっている０．５秒以内に伸張処理が終了することになる。
【００６６】
また、２５０ＫＢｙｔｅより大きいサイズであれば、ＪＰＥＧ伸張ハードウェア２０３にて実行される。そのため、ＪＰＥＧ伸張ハードウェア２０３が解放される時間が加算されるものの、巨大なデータをＪＰＥＧ伸張ソフトウェア３０８にて実行することを防ぐことが可能となる。
【００６７】
即ち、図５の例では処理対象の画像がサムネイル画像であるか否かに応じて処理方法を切り替えていたが、図１０の例ではサムネイル画像でなくともサイズの小さい画像であればソフトウェアによる処理を行わせる。従って、図５の例よりも伸張処理に関しては処理効率の向上が図れる。
【００６８】
なお、上述の閾値の算出では、単純にＪＰＥＧ伸張ソフトウェア３０８の処理能力が常に１００％発揮できるものとして求めたが、所定の値を加減乗除しても良い。例えば、ＪＰＥＧ伸張ソフトウェアを実行するＣＰＵ２００の競合状況を考慮に入れる方法が考えられる。同時に印刷ジョブと表示ジョブが実行されることから、ＣＰＵ２００が表示ジョブに割り当てられる時間が半分になるような構成であれば、２５０ＫＢｙｔｅに１／２を積算した１２５ＫＢｙｔｅを閾値とする方法が考えられる。
【００６９】
次に、ＪＰＥＧ伸張をソフトウェア処理で実行するか、ハードウェア処理で実行するかを判断する処理について、さらに異なる方法で行う例について説明する。図１１はこの場合の処理の流れを示すフローチャートである。本フローチャートの処理は、図４のＳ６０９から呼び出されて実行される。
【００７０】
図１１の例では、まず、Ｓ１４０１にて、占有されているハードウェアの残り占有時間の予測値を取得する。ここでは、占有時間の予測値は印刷ジョブによって占有されているハードウェアの未処理データサイズから求めるものとする。なお、ＪＰＥＧ伸張ソフトウェア３０８及び、ＪＰＥＧ伸張ハードウェア２０３の処理能力は、例えば上述のものと同様とする。例えば、ＪＰＥＧ伸張ハードウェア２０３が、５ＭＢｙｔｅのデータのうち、３ＭＢｙｔｅのデータの処理が終了しているとすると、残りサイズ２ＭＢｙｔｅのデータを処理するために必要な時間は０．４秒でとなる。また、ハードが占有されていない場合は０秒となる。
【００７１】
次に、Ｓ１４０２にて、Ｓ１４０３で用いる閾値を求める。この閾値は、例えばこれから処理対象の画像データのサイズから求めたＪＰＥＧ伸張ハードウェア２０３による伸張処理時間の予測値、Ｓ１４０１で取得したＪＰＥＧ伸張ハードウェア２０３の解放までに要する時間の予測値の合計から求めればよい。例えば１００ＫＢｙｔｅのデータを伸張する場合は、ＪＰＥＧ伸張ハードウェア２０３の処理能力から、０．０２秒となる。つまり、ハードウェアの解放待ち時間０．４秒とハードウェアによる実行時間０．０２秒を加算した０．４２秒がＪＰＥＧ伸張ハードウェア２０３を用いた場合の処理にかかる時間となる。ＪＰＥＧ伸張ソフトウェア３０８は、その処理能力から、０．４２秒の間に２１０ＫＢｙｔｅの処理が可能であるため、２１０Ｋｂｙｔｅを閾値とする。
【００７２】
そしてＳ１４０３では、入力データのサイズとＳ１４０２で求めた閾値を比較して、閾値以下であれば、ソフトウェア処理を選択し、閾値より大きければ、ハードウェア処理を選択する。以降は上述のとおり選択された処理を実行する。
【００７３】
以上のように図１１の例では、ＪＰＥＧ伸張ハードウェア２０３が解放される時間を考慮してソフトウェア処理とハードウェア処理のいずれとするかを決定する。従って、処理が滞る時間を短縮し、状況に応じてより効率的にソフトウェアとハードウェアの使い分けが可能となる。なお、ここでは、閾値を求めるにあたり、占有されているハードウェアの残り占有時間のみを考慮したが、画像データの読み込みにかかる時間等を加算してもよい。図１０で示すとおり、Ｓ１０１３による画像データの読み込みはハードウェア資源の獲得中に行われており、画像データの読み込み時間は、ハード占有時間に加算されてしまう。ハード占有中のジョブが、そのため画像データが全て読み込めていない場合は、未読み込みデータサイズとファイル読み込み能力から、未読み込みデータの読み込みに要する時間を求め、閾値算出に用いる方法が考えられる。この場合、未読み込みデータの読み込みに要する時間を、Ｓ１４０１で求めた占有中ハードの残り占有時間に加算すればよい。また、例えばハードウェアの処理時間が十分に高速であり、画像データの読み込みにかかる時間のみが問題となる場合などは、ハード占有中のジョブの未読み込みデータサイズのみを用いてもよい。さらに、より簡易な構成とするために、未読み込みデータの有り無し判定のみで、ハードウェアとソフトウェアの切り替えを行ってもよい。例えば、ハードウェア占有中のジョブが未読み込みデータを有する場合は、ソフトウェア処理を実行するという方法でも、十分に効果は得られる。
【００７４】
なお、以上のようにＪＰＥＧ伸張をソフトウェア処理とするかハードウェア処理とするかを決定する方法として、図５、１０、１１の例を挙げたが、これらは適宜組合せてもよい。即ち、例えば図５と図１０を組合せて、まず処理対象の画像データがサムネイル画像かどうかを判定し（Ｓ７０１）、サムネイル画像であればＳ７０２に進み、サムネイル画像でなければＳ１３０１に進む。そしてＳ１３０１において画像データのサイズを判定し、その結果に従ってＳ１３０２またはＳ１３０３に進む。また、図５と図１１を組合せて、Ｓ７０１でサムネイル画像でなかったと判定された場合にＳ１４０１に進み、同様の処理を行う。また、図５、１０、１１を組合せてもよい。即ち、Ｓ７０１でサムネイル画像でなかったと判定された場合にＳ１３０１に進み、処理対象の画像データのサイズを第１の閾値と比較し、大きいと判定された場合にＳ１４０１に進み、Ｓ１４０２で算出される第２の閾値と比較して同様の処理を行う。また、これら以外にも種々の条件を加えたり、変更したりしてハードウェア処理とソフトウェア処理とを使い分けるようにしてもよい。また、ＪＰＥＧ伸張されたデータは、画像の表示や印刷には限らず、種々の処理にも適用可能である。
【００７５】
また、以上の説明において、ＪＰＥＧ伸張処理に対してソフトウェア処理とハードウェア処理を使い分ける例を示したが、その他の画像処理に対して、適用しても効果がある。例えば、変倍処理や色変換処理を実行するハードウェアを持つ構成であれば、これらの画像処理のソフトウェアとハードウェアの実行を切り替えるものに適用してもよい。
【００７６】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能（処理対象のデータをハードウェア処理とするかソフトウェア処理とするかを決定するための処理）を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行することによって実現可能である。また、このプログラムは、１つのコンピュータで実行させても、複数のコンピュータが連動して実行するようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部または全部をハードウェアによって実現するようにしてもよい。
【図１】
0005709417.tif 000002
【図２】
0005709417.tif 000003
【図３】
0005709417.tif 000004
【図４】
0005709417.tif 000005
【図５】
0005709417.tif 000006
【図６】
0005709417.tif 000007
【図７】
0005709417.tif 000008
【図８】
0005709417.tif 000009
【図９】
0005709417.tif 000010
【図１０】
0005709417.tif 000011
【図１１】
0005709417.tif 000012