"可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを処理する画像処理装置であって、データを記憶する記憶手段と、前記圧縮データの可変長符号に対して可変長符号復号化処理を施して中間データを生成して前記記憶手段に記憶する可変長符号復号化手段と、前記中間データに対して後段の復号化処理を施して画像データを生成し、該生成した画像データを処理する第1の画像処理を実行する第1の画像処理手段と、前記中間データに対して前記可変長符号化処理を施すと共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして前記記憶手段に記憶する再圧縮化手段と、前記再圧縮データの可変長符号に対して前記リスタートマーカーを用いて前記可変長符号復号化処理を施すと共に前記後段の復号化処理を施して画像データを生成し、該生成した画像データを処理する第2の画像処理を実行する第2の画像処理手段と、を備え、前記第1の画像処理手段と前記再圧縮手段は、前記記憶手段に記憶された中間データを共用して処理を実行する手段であることを特徴とする画像処理装置。請求項1記載の画像処理装置であって、前記第1の画像処理手段と前記再圧縮手段は、並列処理により処理を実行する手段であることを特徴とする画像処理装置。請求項1または2記載の画像処理装置であって、前記圧縮処理は、前記可変長符号化処理の前段にDCT演算処理と量子化処理とを含む処理であり、前記後段の復号化処理は、前記可変長符号復号化処理の後段に逆量子化処理と逆DCT演算処理とを含む処理である画像処理装置。表示装置に接続された請求項1ないし3いずれか1項に記載の画像処理装置であって、前記第1の画像処理は、前記生成した画像データに基づいて画像を前記表示装置に表示させる表示処理であり、前記第2の画像処理は、前記リスタートマーカーを用いて前記圧縮データを部分的に復号化して部分画像を生成すると共に該生成した部分画像を回転する処理を繰り返し実行する回転処理であるを備える画像処理装置。可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを処理する画像処理方法であって、a前記圧縮データの可変長符号に対して可変長符号復号化処理を施して中間データを生成して記憶し、b前記ステップaで記憶した中間データに対して後段の復号化処理を施して画像データを生成すると共に該生成した画像データを処理する第1の画像処理を実行し、c前記ステップaで記憶した中間データを共用し、該中間データに対して前記可変長符号化処理を施すと共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして記憶し、d前記ステップcで記憶した再圧縮データの可変長符号に対して前記リスタートマーカーを用いて前記可変長符号復号化処理を施すと共に前記後段の復号化処理を施して画像データを生成し、該生成した画像データを処理する第2の画像処理を実行する画像処理方法。ところで、上述した画像処理装置では、回転処理の前処理として、リスタートマーカーを挿入するために圧縮画像を一旦ハフマン復号化して再度ハフマン符号化する必要があるため、この前処理も含めると、回転処理に長時間を要する。例えば、印刷装置において、印刷対象の画像を表示装置で表示した上でユーザーからの指示を待って画像を回転させて印刷する回転印刷を行なう場合を考えると、圧縮画像を復号化して表示用画像を作成して表示装置に表示させる表示処理を実行して待機し、回転印刷が指示されると、圧縮画像に対して上述した前処理を実行してリスタートマーカーを挿入した圧縮画像を作成した上でこの圧縮画像をリスタートマーカーを用いて1ストライプ幅分ずつ復号化して回転させ、回転させた画像から印刷データを作成して印刷処理を実行するため、ユーザーにより回転印刷が指示されてから実際に印刷されるまでに長時間を要してしまう。本発明の画像処理装置および画像処理方法は、画像処理に要する時間を短縮することを主目的とする。本発明の画像処理装置および画像処理方法は、上述の主目的を達成するために以下の手段を採った。本発明の画像処理装置は、可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを処理する画像処理装置であって、データを記憶する記憶手段と、前記圧縮データの可変長符号に対して可変長符号復号化処理を施して中間データを生成して前記記憶手段に記憶する可変長符号復号化手段と、前記中間データに対して後段の復号化処理を施して画像データを生成し、該生成した画像データを処理する第1の画像処理を実行する第1の画像処理手段と、前記中間データに対して前記可変長符号化処理を施すと共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして前記記憶手段に記憶する再圧縮化手段と、前記再圧縮データの可変長符号に対して前記リスタートマーカーを用いて前記可変長符号復号化処理を施すと共に前記後段の復号化処理を施して画像データを生成し、該生成した画像データを処理する第2の画像処理を実行する第2の画像処理手段と、を備え、前記第1の画像処理手段と前記再圧縮手段は、前記記憶手段に記憶された中間データを共用して処理を実行する手段であることを要旨とする。この本発明の画像処理装置では、圧縮データの可変長符号に対して可変長符号復号化処理を施して中間データを生成して記憶手段に記憶し、記憶された中間データに対して後段の復号化処理を施して画像データを生成すると共に生成した画像データを処理する第1の画像処理を実行し、記憶された中間データを共用してこの中間データに対して可変長符号化処理を施すと共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして記憶手段に記憶し、記憶された再圧縮データの可変長符号に対してリスタートマーカーを用いて可変長符号復号化処理を施すと共に後段の復号化処理を施して画像データを生成し、生成した画像データを処理する第2の画像処理を実行する。これにより、第1の画像処理の実行過程で生じる中間データを用いてリスタートマーカーを挿入した再圧縮データを作成することができるから、第2の画像処理の実行を開始する際に、改めて再圧縮データを作成する必要がなく、第2の画像処理の実行時間を短縮することができる。ここで、第1の画像処理には、生成した画像データに基づいて画像を表示装置に表示させる表示処理が含まれ、第2の画像処理には、リスタートマーカーを用いて圧縮データを部分的に復号化して部分画像を生成すると共に生成した部分画像を回転する処理を繰り返し実行する回転処理が含まれる。こうした本発明の画像処理装置において、前記第1の画像処理手段と前記再圧縮手段は、並列処理により処理を実行する手段であるものとすることもできる。こうすれば、画像処理に要する時間をさらに短縮することができる。また、本発明の画像処理装置において、前記圧縮処理は、前記可変長符号化処理の前段にDCT演算処理と量子化処理とを含む処理であり、前記後段の復号化処理は、前記可変長符号復号化処理の後段に逆量子化処理と逆DCT演算処理とを含む処理であるものとすることもできる。本発明の画像処理方法は、可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを処理する画像処理方法であって、a前記圧縮データの可変長符号に対して可変長符号復号化処理を施して中間データを生成して記憶し、b前記ステップaで記憶した中間データに対して後段の復号化処理を施して画像データを生成すると共に該生成した画像データを処理する第1の画像処理を実行し、c前記ステップaで記憶した中間データを共用し、該中間データに対して前記可変長符号化処理を施すと共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして記憶し、d前記ステップcで記憶した再圧縮データの可変長符号に対して前記リスタートマーカーを用いて前記可変長符号復号化処理を施すと共に前記後段の復号化処理を施して画像データを生成し、該生成した画像データを処理する第2の画像処理を実行することを要旨とする。この本発明の画像処理方法では、圧縮データの可変長符号に対して可変長符号復号化処理を施して中間データを生成して記憶し、記憶された中間データに対して後段の復号化処理を施して画像データを生成すると共に生成した画像データを処理する第1の画像処理を実行し、記憶された中間データを共用してこの中間データに対して可変長符号化処理を施すと共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして記憶し、記憶された再圧縮データの可変長符号に対してリスタートマーカーを用いて可変長符号復号化処理を施すと共に後段の復号化処理を施して画像データを生成し、生成した画像データを処理する第2の画像処理を実行する。これにより、第1の画像処理の実行過程で生じる中間データを用いてリスタートマーカーを挿入した再圧縮データを作成することができるから、第2の画像処理の実行を開始する際に、改めて再圧縮データを作成する必要がなく、第2の画像処理の実行時間を短縮することができる。次に、本発明の実施の形態を図面に基づいて説明する。図1は、本発明の画像処理装置の一実施形態であるプリンター20の構成の概略を示す構成図である。本実施形態のプリンター20は、図示するように、給紙トレイ23から搬送された用紙に印刷用データに基づいてシアンC,マゼンタM,イエローY,ブラックKのCMYKの各色のインクを印刷ヘッドから吐出することにより印刷を実行し排紙トレイ24に排紙するインクジェット方式のプリンターユニット30と、図示しないガラス台に載置された原稿に向かって発光した後の反射光をレッドR、グリーンG、ブルーBのRGBの各色に分解して画像データとするフラットベッド式のスキャナーユニット35と、メモリーカードスロット40aに挿入されたメモリーカードMCとの間でデータを格納したファイルの読み書きを行なうカードコントローラー40と、各種モードの設定画面や印刷の設定画面などを表示部52に表示したり各種モードの設定や印刷の設定に関する指示などをユーザーによるボタン群54の操作を介して入力したりする操作パネル50と、装置全体の制御を司るメインコントローラー60とを備える。このプリンター20では、プリンターユニット30やスキャナーユニット35,カードコントローラー40,メインコントローラー60がバス69を介して互いに各種制御信号やデータのやり取りをすることができるよう構成されている。カードコントローラー40は、メインコントローラー60からの読み出し指令に基づいてメモリーカードMCからファイルを読み出してメインコントローラー60に送信したり、メインコントローラー60からの書き込み指令に基づいてメモリーカードMCにファイルを書き込んだりする。このメモリーカードMCには、デジタルカメラなどで撮影されてJPEG方式により圧縮されたJPEGデータを格納したファイルなどが記憶されている。このJPEG方式による圧縮では、詳細については省略するが、撮影された画像の各8ビットのRGB値を輝度成分と色差成分とを示すYCbCr値に変換し、8×8画素64画素の最小符号化ユニット1MCUMinimumCodedUnit,以下、ブロックとするに分割して、ブロック単位で離散コサイン変換DCT演算して周波数成分の大きさを表す8×8成分64成分のDCT係数に変換し、変換したDCT係数を量子化して、量子化後のDCT係数をランレングス符号化やグループ符号化,ハフマン符号化などによりエントロピー符号化することで、画像を圧縮している。なお、各ブロックのDCT係数は、ブロックの左上隅の成分がブロック内で変化がなくブロック内の平均値を示すDC係数直流成分であり、残りの63成分がブロック内の変化を示すAC係数交流成分となる。DC係数は、隣接するブロックのDC係数と値が近いことが多いため、隣接するブロックのDC係数との差分値に関する情報が符号化される。具体的には、差分値がその出現頻度に応じて予め定められたグループのうちいずれのグループに属するかの情報や属するグループ内でいずれの差分値に該当するかの情報が、それぞれ対応するハフマン符号化やグループ符号化により符号化される。また、AC係数は、ブロック内の変化が小さく量子化により値0となるものが多いため、値0の連続する個数ランレングス数と値0の連続を止める値0でない係数とをセットにした情報が符号化される。具体的には、値0でない係数がその出現頻度に応じて予め定められたグループのうちいずれのグループに属するかの情報や属するグループ内でいずれの係数に該当するかの情報,ランレングス数の情報が、それぞれ対応するハフマン符号化やグループ符号化,ランレングス符号化により符号化される。ここで、ハフマン符号化は出現頻度が高いものほど符号化長の短い符号を割り当てる可変長符号化であるため、圧縮対象の画像が通常の人物画像や風景画像などであれば、符号化後の1ブロック当たりのデータ長はブロック毎に異なるものとなる。メインコントローラー60は、CPU62を中心とするマイクロプロセッサーとして構成されており、各種処理プログラムや各種データ、各種テーブルなどを記憶したROM64と、一時的に各種データなどを記憶するRAM66とを備える。このメインコントローラー60は、プリンターユニット30やスキャナーユニット35,カードコントローラー40からの各種動作信号や各種検出信号を入力したり、操作パネル50のボタン群54からの操作信号を入力したりする。また、メモリーカードMCからのファイルの読み出し指令をカードコントローラー40に出力したり、印刷指令をプリンターユニット30に出力したり、ボタン群54からのスキャン指示に基づいて原稿の読み取り指令をスキャナーユニット35に出力したり、表示部52に画像データの表示指令を出力したりする。また、メインコントローラー60は、メモリーカードMCから入力したJPEGデータを表示部52で表示するための表示用データに変換する際には、JPEGデータを上述した圧縮と逆の順即ちハフマン復号化やグループ復号化,ランレングス復号化からなるエントロピー復号化,逆量子化,逆DCTの順に復号化解凍し、復号化により得られたYCbCr値をRGB各8ビットのデータに色変換し、RGB各8ビットのデータを表示部52で表示可能な所定のビット数に減らす処理などが行なわれる。また、JPEGデータをプリンターユニット30で印刷するための印刷用データに変換する際には、表示用データと同様にJPEGデータを復号化してRGB各8ビットのデータに色変換してから、さらに、CMYK各8ビットのデータに色変換し、CMYK各8ビットのデータをディザ法や誤差拡散法などにより各2ビットのデータ2値化データに変換する処理などが行なわれる。このプリンター20では、画像の色補正や画像の向きなどに関する各種設定が可能となっており、例えば、画像の向きを回転させる回転処理をしてから印刷する回転印刷などが設定可能となっている。ここで、回転処理は、対象となる画像がJPEGデータの場合には、JPEGデータに所定数のブロック毎1ストライプ幅ともいうに挿入されたリスタートマーカーRSTマーカーを用いて行なわれる。なお、RSTマーカーは、JPEGの規格で定められた2バイトのコードであり、FFD0~FFD7で表される。RSTマーカーを用いた回転処理では、所定数のブロックを復号化してリスタートマーカーが現れる度に予め定められた数のリスタートマーカー分のデータを読み飛ばして同一ストライプ内の1段下のブロックを復号化する処理を繰り返し、1ストライプ幅分のすべてのブロックを復号化すると、復号化したブロックを回転させることにより行なわれる。そして、1ストライプ幅分の回転処理が完了すると、次のストライプ幅分のブロックに移ってストライプ幅単位で同じ処理を繰り返すことにより、圧縮画像を復号化しながら回転する。ここで、JPEGデータは可変長符号化であるハフマン符号化により圧縮されており、各ブロックの符号化後のデータ長は通常は一定とならないものである。このため、各ブロックの境の位置も一定とはならないため、1ストライプ幅に含まれるブロックだけを復号化するのは困難である。そこで、JPEGデータを一旦ハフマン復号化し、得られたハフマン復号データを再度ハフマン符号化しながら1ストライプ幅分の間隔でRSTマーカーを挿入してJPEGデータを再構築しておくことにより、この再構築JPEGデータをRSTマーカーを用いて1ストライプ幅分ずつブロック群単位で復号化できるようにし、ストライプ幅単位でのJPEGデータの回転復号化を可能としている。図2は、メインコントローラー60の機能ブロックを示すブロック図である。なお、図2には、メインコントローラー60の機能ブロックの他にカードコントローラー40や表示部52も図示している。なお、図中の実線矢印はJPEGデータを表示用データに変換する際のデータの流れを示し、図中の点線矢印はJEPGデータを回転復号化を伴って印刷用データに変換する際のデータの流れを示す。メインコントローラー60は、メモリーカードMCに保存されているJPEGデータをカードコントローラー40を介して読み出すと共に読み出したJPEGデータにハフマン復号化を施してハフマン復号データ記憶部71に書き込むハフマン復号化部72と、ハフマン復号データ記憶部71からハフマン復号データを読み出すと共に読み出したハフマン復号データにグループ復号化やランレングス復号化,逆量子化,逆DCTなどのハフマン復号化よりも後段の各種復号化を施すことにより画像データを生成して画像データ記憶部73に書き込むJPEG後段復号化部74と、ハフマン復号データ記憶部71からハフマン復号データを読み出すと共に読み出したハフマン復号データに対してハフマン復号化を施しながらRSTマーカーを挿入することにより再構築JPEGデータを生成して再構築JPEGデータ記憶部75に書き込むハフマン符号化部76と、画像データ記憶部73に記憶されている画像データを読み出すと共に読み出した画像データに基づいて印刷用データを作成する印刷処理部77と、各部の処理を管理する制御部78とにより構成されている。ここで、本実施形態では、ハフマン復号化部72とJPEG後段復号化部74とハフマン符号化部74と印刷処理部77と制御部78は、ROM64に記憶されているプログラムをCPU62に実行させることにより一体となって機能する。また、ハフマン符号化部76は、例えば専用のハードウエアにより構成され、ハフマン復号化部72やJPEG後段復号化部74,ハフマン符号化部74,印刷処理部77,制御部78の処理に対して並列処理が可能となっている。なお、ハフマン復号データ記憶部71や画像データ記憶部73,再構築JPEGデータ記憶部75は、コントローラー60のRAM66に設けられている。次に、こうして構成された本実施形態のプリンター20の動作、特に、回転印刷を実行する際の動作について説明する。図3は、CPU62により実行される印刷処理ルーチンの一例を示すフローチャートである。このルーチンは、メモリーカードMCがメモリーカードスロット40aに挿入されたときに表示部52に表示される選択画面からボタン群54の操作により印刷対象の画像が選択されたときに実行される。この印刷処理ルーチンが実行されると、メインコントローラー60のCPU62は、まず、印刷対象の圧縮データここではJPEGデータとするを入力しステップS100、入力したJPEGデータの1ブロック分をハフマン復号化してステップS110、ハフマン復号化した1ブロック分のハフマン復号データをハフマン復号データ記憶部71に格納するステップS120。ハフマン復号データがハフマン復号データ記憶部71に格納されると、ハフマン符号化部76によりそのハフマン復号データをRSTマーカー入りのJPEGデータに再構築するJPEG再構築処理が実行される。ここで、印刷処理ルーチンの説明を中断し、JPEG再構築処理について説明する。図4は、JPEG再構築処理の一例を示すフローチャートであり、図5は、再構築処理されたJPEGデータの画像の様子を示す説明図である。このJPEGデータの再構築処理では、まず、上述した印刷処理ルーチンのステップS110でハフマン復号化した1ブロック分のハフマン符号データ係数を入力しステップS300、入力した係数をハフマン符号化してJPEGデータを再構築するステップS310。そして、再構築したブロック単位のJPEGデータを再構築JPEGデータ記憶部75に格納しステップS320、再構築用バッファーに1ストライプ幅分のデータが格納されたか否かを判定するステップS330。上述したように、1ストライプ幅は、所定数のブロックに相当するから、この判定は所定数のブロックの再構築処理が完了したか否かを判定するものとなる。なお、所定数のブロックとしては、例えば、8ブロックや16ブロック,32ブロックなどとすることができ、本実施形態では16ブロックとした。ステップS330で1ストライプ幅分のデータが格納されていないと判定したときには、ステップS310に戻って次のブロックに対してハフマン符号化してJPEGデータを再構築する処理を繰り返すステップS310,S320。所定数のブロックの処理が完了してステップS330で1ストライプ幅分のデータが格納されたと判定すると、1ストライプ幅分所定数のブロックのデータの末尾にRSTマーカーを挿入付加してステップS340、本処理を終了する。このRSTマーカーは、上述したように、回転処理に用いられる。この再構築処理により、図5に示すように、所定数のブロック毎に即ち1ストライプ幅毎にRSTマーカーが挿入されたマーカー挿入済みのJPEGデータが再構築されることになる。なお、例えば、画素数が縦1920画素×横2560画素約500万画素の場合、ブロック数が縦240ブロック×横320ブロックとなり、1ストライプ幅を16ブロックとすれば、1ブロックラインに20個のRSTマーカーが挿入されることになる。以上、JPEG再構築処理について説明した。図3の印刷処理ルーチンのステップS120に戻って、ハフマン復号データが得られると、得られたハフマン復号データに対して後段の復号化処理、即ち、グループ符号化とランレングス符号化と逆量子化と逆DCTとをこの順に施しステップS130、後段の復号化処理により得られたYCbCr値をRGB値に色変換しステップS140、RGB値を表示部52の表示サイズに合わせてリサイズしステップS150、画像データ記憶部73表示用バッファーに格納するステップS160。こうしたステップS110~S160の処理の全てのブロックについて処理が完了するまで繰り返し実行しステップS170、全てのブロックが処理済みとなると、印刷対象の画像を表示部52に表示するUI表示を行なってステップS180、ユーザーにより印刷の開始が指示されるのを待つステップS190。印刷指示がなされると、例えば回転印刷の設定がなされているか否かによって印刷対象の画像を回転させる必要があるか否かを判定するステップS200。画像を回転させる必要がない場合には、メモリーカードMCに保存されているJPEGデータを入力して回転を伴わずにそのまま復号化しステップS210、画像を回転させる必要がある場合には、再構築JPEGデータ記憶部75に格納した再構築JPEGデータをRSTマーカーを用いて復号化しながら回転させる回転復号化を行なうステップS220。ここで、回転復号化は、上述したように、RSTマーカーを用いて1ストライプ幅分の全てのブロックを復号化してから回転させる処理を、ストライプ幅単位で繰り返し実行することにより行なうことができる。こうしてJPEGデータを復号化すると、復号化により得られたYCbCr値をRGB値に色変換しステップS230、RGB値をCMYK値に変換したりCMYK値を2値化データに変換することにより印刷用データを作成しステップS240、作成した印刷用データに基づいてプリンターユニット30を制御する印刷処理を実行してステップS250、本ルーチンを終了する。ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のRAM66ハフマン復号データ記憶部71や再構築JPEGデータ記憶部75が本発明の記憶手段に相当し、図3の印刷処理ルーチンのステップS110,S120のハフマン復号化を実行するメインコントローラー60ハフマン復号化部72が可変長符号復号化手段に相当し、印刷処理ルーチンのステップS130~S180の表示処理を実行するメインコントローラー60が第1の画像処理手段に相当し、図4のJPEG再構築処理を実行するハフマン符号化部76が再圧縮化手段に相当し、印刷処理ルーチンのステップS220~S250の回転印刷を実行するメインコントローラー60が第2の画像処理手段に相当する。以上説明した本実施形態のプリンター20によれば、印刷対象のJPEGデータをブロック毎にハフマン復号化してハフマン復号データとしてハフマン復号データ記憶部71に格納し、ハフマン復号データに後段の復号化処理グループ復号化,ランレングス復号化,逆量子化,逆DCTを施して画像データを生成し、生成した画像データに基づいて画像を表示部52に表示させる表示処理を実行し、この表示処理の過程で生じるハフマン復号データを符号化しながら1ストライプ幅分の間隔でRSTマーカーを挿入してJPEGデータを再構築して再構築JPEGデータ記憶部75に格納しておく。そして、回転印刷が指示されると、格納した再構築JPEGデータをRSTマーカーを用いて復号化しながら回転させる回転復号化を行なうと共に回転復号化により得られた画像データから印刷用データを作成して印刷処理を実行する。即ち、JPEGデータをハフマン復号化して得られるハフマン復号データを、表示処理とJPEG再構築処理とで共用するから、ハフマン復号化の回数を減らすことができる。この結果、回転印刷の実行時間を短縮することができる。しかも、印刷処理ルーチンにおけるステップS130~S180の表示処理とJPEG再構築処理とを並列処理により実行するから、回転印刷の実行時間を更に短縮することができる。上述した実施形態では、印刷処理ルーチンにおけるステップS130~S180の表示処理とJPEG再構築処理とを並列処理により実行するものとしたが、これに限られず、表示処理とJEPG再構築処理とを順番に実行する逐次処理によるものとしてもよい。この場合でも、表示処理とJEPG再構築処理とでハフマン復号データを共用することができるから、回転印刷の実行時間を短縮することができる。上述した実施形態では、表示処理を実行する過程で生じるハフマン復号データをJPEG再構築処理で共用する場合を例として説明するものとしたが、これに限定されるものではなく、例えば、人物の顔色を補正する顔色補正などの色補正処理を実行する過程で生じるハフマン復号データをJPEG再構築処理で共用するものとしてもよい。この場合の変形例の印刷処理ルーチンを図6に示す。この変形例の印刷処理ルーチンは、印刷対象の画像が選択されて印刷の開始が指示されたときに実行される。変形例の印刷処理ルーチンでは、まず、色補正設定の有無や回転印刷の設定の有無などの印刷情報を入力すると共にステップS400、印刷対象の圧縮データJPEGデータを入力するステップS410。続いて、JPEGデータの1ブロック分をハフマン復号化してハフマン復号データ記憶部71に格納するステップS420,S430。これにより、ハフマン符号化部76図4のJPEG再構築処理により並列処理によってRSTマーカーが挿入された再構築JPEGデータが生成され、再構築JPEGデータ記憶部75に格納される。そして、得られたハフマン復号データに対して間引き復号してサンプリングを行なうステップS430。ここで、間引き復号は、グループ復号化とランレングス復号化と逆量子化とを順に施して8×8成分のDCT係数に変換し、変換したDCT係数のうちAC成分を縦横それぞれ1/2や1/4,1/8に間引いてから逆DCT演算することにより行なう。AC成分の間引きは、例えば、1/2間引きでは16個のDCT係数が残存し、1/4間引きでは4個のDCT係数が残存し、1/8間引きでは全てのAC成分が間引かれDC成分のみが残存する。したがって、これを逆DCT演算することにより得られる画像は、1/2間引きではフル画像に対して縦横がそれぞれ1/2間引かれて全体ではフル画像の1/4となり、1/4間引きではフル画像に対して縦横がそれぞれ1/4間引かれて全体ではフル画像の1/16となり、1/8間引きではフル画像に対して縦横がそれぞれ1/8間引かれて全体ではフル画像の1/64となる。こうした間引き復号によりYCbCrの各成分毎に間引き画像が生成されることになる。そして、間引き復号により得られたYCbCr値をRGB値とHLS値色相,明度,彩度に変換する色変換処理を実行しステップS440、後述する顔認識に必要なサイズまでリサイズ縮小してステップS450、RAM66に設けられた色補正用バッファーに格納すると共にステップS460、得られたRGB値とHLS値のそれぞれについてヒストグラムを計算するステップS480。こうしたステップS420~S470の処理の全てのブロックについて処理が完了するまで繰り返し実行しステップS480、全てのブロックが処理済みとなると、色補正用バッファーに格納した画像に基づいて顔認識を行ないステップS490、画像中に顔が含まれているか否かを判定するステップS500。なお、顔認識については、目や鼻の特徴を抽出し標準化した顔データと比較するなどの周知の顔認識アルゴリズムを用いて行なうことができる。画像中に顔が含まれている場合には顔色が最適となるようにエンハンスパラメーターを設定しステップS510、画像中に顔が含まれていない場合には画像全体の色が最適となるようエンハンスパラメーターを設定するステップS520。ここで、エンハンスパラメーターの設定は、例えば、RGB値やHLS値の各ヒストグラムから色のパラメーターの特徴量を抽出し、抽出した特徴量が画像中の顔の有無に応じてそれぞれ予め定められた最適な特徴量に近づくようにエンハンスパラメーターを設定することにより行なう。そして、印刷対象の画像を回転させる必要があるか否かを判定しステップS530、画像を回転させる必要がない場合には、メモリーカードMCに保存されているJPEGデータを入力して回転を伴わずにそのまま復号化しステップS540、画像を回転させる必要がある場合には、再構築JPEGデータ記憶部75に格納した再構築JPEGデータをRSTマーカーを用いて復号化しながら回転させる回転復号化を行なうステップS550。こうしてJPEGデータを復号化すると、復号化により得られたYCbCr値をRGB値に色変換しステップS560、ステップS510,S520のいずれかで設定されたエンハンスパラメータに基づいてエンハンス処理を実行しステップS570、エンハンス後のRGB値から印刷用データを作成しステップS580、作成した印刷用データに基づいてプリンターユニット30を制御する印刷処理を実行してステップS590、本ルーチンを終了する。上述した実施形態では、図3の印刷処理ルーチンのステップS200で画像を回転させる必要がないと判定された場合には、メモリーカードMCに保存されているJPEGデータを用いて復号化するものとしたが、再構築JPEGデータを用いて復号化するものとすればよい。この場合、画像を回転させる必要はないから、RSTマーカーを無視してそのまま復号化すればよい。上述した実施形態では、再構築JPEGデータをRSTマーカーを使った回転復号化の処理回転印刷に用いるものとしたが、これに限定されるものではなく、圧縮データを部分的に復号化して画像をトリミングしたり圧縮データを部分的に復号化して色補正するなどRSTマーカーを使って圧縮データを復号化するものに用いることができれば、他の如何なる処理にも適用することが可能である。上述した実施形態では、圧縮画像をJPEGデータを例として説明したが、これに限られず、ハフマン符号化などの可変長符号化を伴って圧縮された圧縮画像であればよく、例えばMPEGデータなどとしてもよい。上述した実施形態では、本発明をプリンター機能プリンターユニット30とスキャナー機能スキャナーユニット35とを備えるプリンター20に適用して説明したが、これに限られず、さらにFAX機能を備えるものとしてもよいし、あるいは、スキャナー機能を備えないプリンターとしてもよい。また、可変長符号化を伴う圧縮方式で圧縮された圧縮画像を解凍して画像処理を施すことができる装置であれば、プリンターに限られず、パーソナルコンピューターやデジタルカメラ,ゲーム機器,携帯電話など如何なる装置に適用するものとしてもよい。なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。"