(57)【特許請求の範囲】
【請求項１】
可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを記憶する記録装置であって、
データを記憶する記憶手段と、
記録媒体に記憶された圧縮データを読み出し、該読み出した前記圧縮データの可変長符号に対して可変長符号復号化処理を実行して中間データを生成して前記記憶手段に記憶する可変長符号復号化手段と、
前記中間データに対して後段の復号化処理を実行して画像データを生成し、該生成した画像データを処理する第１の画像処理を実行する第１の画像処理手段と、
前記中間データに対して前記可変長符号化処理を実行すると共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして前記記憶手段に記憶する再圧縮化手段と、
所定の前記可変長符号復号化処理を実行すると共に前記後段の復号化処理を実行して画像データを生成し、該生成した画像データを処理する第２の画像処理を実行する第２の画像処理手段と、
を備え、
前記第１の画像処理手段と前記再圧縮手段は、前記記憶手段に記憶された中間データを共用して処理を実行する手段であり、
前記第２の画像処理手段は、印刷画像を回転する必要がある場合には、前記再圧縮データの可変長符号に対して前記リスタートマーカーを用いて前記可変長符号復号化処理を実行し、印刷画像を回転する必要がない場合には、前記記録媒体に記憶された圧縮データを読み出し、該読み出した圧縮データの可変長符号に対して前記可変長符号復号化処理を実行する
ことを特徴とする記録装置。
【請求項２】
請求項１記載の記録装置であって、
前記第１の画像処理手段と前記再圧縮手段は、並列処理により処理を実行する手段である
ことを特徴とする記録装置。
【請求項３】
請求項１または２記載の記録装置であって、
前記圧縮処理は、前記可変長符号化処理の前段にＤＣＴ演算処理と量子化処理とを含む処理であり、
前記後段の復号化処理は、前記可変長符号復号化処理の後段に逆量子化処理と逆ＤＣＴ演算処理とを含む処理である
ことを特徴とする記録装置。
【請求項４】
請求項１ないし３いずれか１項に記載の記録装置であって、
印刷画像を表示する表示手段を備え、
前記第１の画像処理は、記録装置に挿入された前記記録媒体に記憶された印刷画像が選択された後、前記生成した画像データに基づいて画像を前記表示手段に表示させる表示処理であり、
前記第２の画像処理は、前記表示手段に画像が表示された後、印刷の開始が指示されたときに実行され、前記リスタートマーカーを用いて前記圧縮データを部分的に復号化して部分画像を生成すると共に該生成した部分画像を回転する処理を繰り返し実行する回転処理である
ことを特徴とする記録装置。
【請求項５】
請求項１ないし３いずれか１項に記載の記録装置であって、
前記第１の画像処理は、記録装置に挿入された前記記録媒体に記憶された印刷画像が選択された後に実行され、前記生成した画像データに基づいて、人物の顔色を補正する処理を含む色補正処理であり、
前記第２の画像処理は、前記リスタートマーカーを用いて前記圧縮データを部分的に復号化して部分画像を生成すると共に該生成した部分画像を回転する処理を繰り返し実行する回転処理であり、かつ、前記回転処理が終わった後、回転処理後の画像データを前記色補正処理で求めた設定により最適化する
ことを特徴とする記録装置。
【請求項６】
可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを処理する画像処理方法であって、
（ａ）記録媒体に記憶された圧縮データを読み出し、該読み出した圧縮データの可変長符号に対して可変長符号復号化処理を実行して中間データを生成して記憶し、
（ｂ）前記ステップ（ａ）で記憶した中間データに対して後段の復号化処理を実行して画像データを生成すると共に該生成した画像データを処理する第１の画像処理を実行し、
（ｃ）前記ステップ（ａ）で記憶した中間データを共用し、該中間データに対して前記可変長符号化処理を実行すると共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして記憶し、
（ｄ）所定の前記可変長符号復号化処理を実行すると共に前記後段の復号化処理を実行して画像データを生成し、該生成した画像データを処理する第２の画像処理を実行し、
前期第２の画像処理は、印刷対象の画像を回転する必要がある場合には、前記再圧縮データの可変長符号に対して前記リスタートマーカーを用いて前記可変長符号復号化処理を実行し、印刷対象の画像を回転する必要がない場合には、前記記録媒体に記憶された圧縮データを読み出し、該読み出した圧縮データの可変長符号に対して前記可変長符号復号化処理を実行する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを記憶する記録装置および画像処理方法に関する。
【背景技術】
【０００２】
従来、この種の画像処理装置としては、画像を８×８画素に分割したブロック毎に周波数成分に変換しハフマン符号化などの可変長符号化により圧縮した圧縮画像を復号化しながら回転処理するものが提案されている（例えば、特許文献１参照）。この装置では、回転処理に用いるリスタートマーカーが挿入されていない圧縮画像を取得すると、まず、圧縮画像を一旦ハフマン復号化して、ブロック毎に再び符号化すると共に所定数のブロックの符号化が完了する度にリスタートマーカーを挿入し、これにより、１ストライプ幅（所定数のブロック）毎にリスタートマーカーが挿入された圧縮画像を生成する。この圧縮画像の回転処理は、所定数のブロックを復号化してリスタートマーカーが現れる度に予め定められた数のリスタートマーカー分のデータを読み飛ばして同一ストライプ内の１段下のブロックを復号化する処理を繰り返し、１ストライプ幅分のすべてのブロックを復号化してから、復号化したブロックを回転させることにより行なわれる。そして、１ストライプ幅分の復号化と回転処理とが完了すると、次のストライプ幅のブロックに移ってストライプ幅単位で同じ処理を繰り返すことにより、圧縮画像を復号化しながら回転する。これにより、可変長符号化により符号化後の各ブロックのデータ長が異なるものにおいても、圧縮画像を１ストライプ幅分のブロックずつ順に復号化して回転させることができるとしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−２４７４２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述した画像処理装置では、回転処理の前処理として、リスタートマーカーを挿入するために圧縮画像を一旦ハフマン復号化して再度ハフマン符号化する必要があるため、この前処理も含めると、回転処理に長時間を要する。例えば、印刷装置において、印刷対象の画像を表示装置で表示した上でユーザーからの指示を待って画像を回転させて印刷する回転印刷を行なう場合を考えると、圧縮画像を復号化して表示用画像を作成して表示装置に表示させる表示処理を実行して待機し、回転印刷が指示されると、圧縮画像に対して上述した前処理を実行してリスタートマーカーを挿入した圧縮画像を作成した上でこの圧縮画像をリスタートマーカーを用いて１ストライプ幅分ずつ復号化して回転させ、回転させた画像から印刷データを作成して印刷処理を実行するため、ユーザーにより回転印刷が指示されてから実際に印刷されるまでに長時間を要してしまう。
【０００５】
本発明の記録装置および画像処理方法は、画像処理に要する時間を短縮することを主目的とする。
【０００６】
本発明の記録装置および画像処理方法は、上述の主目的を達成するために以下の手段を採った。
即ち、本発明の記録装置は、
可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを記憶する記録装置であって、
データを記憶する記憶手段と、
記録媒体に記憶された圧縮データを読み出し、該読み出した前記圧縮データの可変長符号に対して可変長符号復号化処理を実行して中間データを生成して前記記憶手段に記憶する可変長符号復号化手段と、
前記中間データに対して後段の復号化処理を実行して画像データを生成し、該生成した画像データを処理する第１の画像処理を実行する第１の画像処理手段と、
前記中間データに対して前記可変長符号化処理を実行すると共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして前記記憶手段に記憶する再圧縮化手段と、
所定の前記可変長符号復号化処理を実行すると共に前記後段の復号化処理を実行して画像データを生成し、該生成した画像データを処理する第２の画像処理を実行する第２の画像処理手段と、
を備え、
前記第１の画像処理手段と前記再圧縮手段は、前記記憶手段に記憶された中間データを共用して処理を実行する手段であり、
前記第２の画像処理手段は、印刷画像を回転する必要がある場合には、前記再圧縮データの可変長符号に対して前記リスタートマーカーを用いて前記可変長符号復号化処理を実行し、印刷画像を回転する必要がない場合には、前記記録媒体に記憶された圧縮データを読み出し、該読み出した圧縮データの可変長符号に対して前記可変長符号復号化処理を実行する
ことを要旨とするものである。
また、本発明の画像処理方法は、
可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを処理する画像処理方法であって、
（ａ）記録媒体に記憶された圧縮データを読み出し、該読み出した圧縮データの可変長符号に対して可変長符号復号化処理を実行して中間データを生成して記憶し、
（ｂ）前記ステップ（ａ）で記憶した中間データに対して後段の復号化処理を実行して画像データを生成すると共に該生成した画像データを処理する第１の画像処理を実行し、
（ｃ）前記ステップ（ａ）で記憶した中間データを共用し、該中間データに対して前記可変長符号化処理を実行すると共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして記憶し、
（ｄ）所定の前記可変長符号復号化処理を実行すると共に前記後段の復号化処理を実行して画像データを生成し、該生成した画像データを処理する第２の画像処理を実行し、
前期第２の画像処理は、印刷対象の画像を回転する必要がある場合には、前記再圧縮データの可変長符号に対して前記リスタートマーカーを用いて前記可変長符号復号化処理を実行し、印刷対象の画像を回転する必要がない場合には、前記記録媒体に記憶された圧縮データを読み出し、該読み出した圧縮データの可変長符号に対して前記可変長符号復号化処理を実行する
ことを要旨とするものである。
【課題を解決するための手段】
【０００７】
本明細書において参考的に開示する参考発明の画像処理装置は、
可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを処理する画像処理装置であって、
データを記憶する記憶手段と、
前記圧縮データの可変長符号に対して可変長符号復号化処理を施して中間データを生成して前記記憶手段に記憶する可変長符号復号化手段と、
前記中間データに対して後段の復号化処理を施して画像データを生成し、該生成した画像データを処理する第１の画像処理を実行する第１の画像処理手段と、
前記中間データに対して前記可変長符号化処理を施すと共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして前記記憶手段に記憶する再圧縮化手段と、
前記再圧縮データの可変長符号に対して前記リスタートマーカーを用いて前記可変長符号復号化処理を施すと共に前記後段の復号化処理を施して画像データを生成し、該生成した画像データを処理する第２の画像処理を実行する第２の画像処理手段と、
を備え、
前記第１の画像処理手段と前記再圧縮手段は、前記記憶手段に記憶された中間データを共用して処理を実行する手段である
ことを要旨とする。
【０００８】
この参考発明の画像処理装置では、圧縮データの可変長符号に対して可変長符号復号化処理を施して中間データを生成して記憶手段に記憶し、記憶された中間データに対して後段の復号化処理を施して画像データを生成すると共に生成した画像データを処理する第１の画像処理を実行し、記憶された中間データを共用してこの中間データに対して可変長符号化処理を施すと共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして記憶手段に記憶し、記憶された再圧縮データの可変長符号に対してリスタートマーカーを用いて可変長符号復号化処理を施すと共に後段の復号化処理を施して画像データを生成し、生成した画像データを処理する第２の画像処理を実行する。これにより、第１の画像処理の実行過程で生じる中間データを用いてリスタートマーカーを挿入した再圧縮データを作成することができるから、第２の画像処理の実行を開始する際に、改めて再圧縮データを作成する必要がなく、第２の画像処理の実行時間を短縮することができる。ここで、「第１の画像処理」には、生成した画像データに基づいて画像を表示装置に表示させる表示処理が含まれ、「第２の画像処理」には、リスタートマーカーを用いて圧縮データを部分的に復号化して部分画像を生成すると共に生成した部分画像を回転する処理を繰り返し実行する回転処理が含まれる。
【０００９】
こうした参考発明の画像処理装置において、前記第１の画像処理手段と前記再圧縮手段は、並列処理により処理を実行する手段であるものとすることもできる。こうすれば、画像処理に要する時間をさらに短縮することができる。
【００１０】
また、参考発明の画像処理装置において、前記圧縮処理は、前記可変長符号化処理の前段にＤＣＴ演算処理と量子化処理とを含む処理であり、前記後段の復号化処理は、前記可変長符号復号化処理の後段に逆量子化処理と逆ＤＣＴ演算処理とを含む処理であるものとすることもできる。
【００１１】
参考発明の画像処理方法は、
可変長符号化処理を含む圧縮処理により圧縮された圧縮データを復号化して画像データを生成し、該生成した画像データを処理する画像処理方法であって、
（ａ）前記圧縮データの可変長符号に対して可変長符号復号化処理を施して中間データを生成して記憶し、
（ｂ）前記ステップ（ａ）で記憶した中間データに対して後段の復号化処理を施して画像
データを生成すると共に該生成した画像データを処理する第１の画像処理を実行し、
（ｃ）前記ステップ（ａ）で記憶した中間データを共用し、該中間データに対して前記可変長符号化処理を施すと共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして記憶し、
（ｄ）前記ステップ（ｃ）で記憶した再圧縮データの可変長符号に対して前記リスタートマーカーを用いて前記可変長符号復号化処理を施すと共に前記後段の復号化処理を施して画像データを生成し、該生成した画像データを処理する第２の画像処理を実行する
ことを要旨とする。
【００１２】
この参考発明の画像処理方法では、圧縮データの可変長符号に対して可変長符号復号化処理を施して中間データを生成して記憶し、記憶された中間データに対して後段の復号化処理を施して画像データを生成すると共に生成した画像データを処理する第１の画像処理を実行し、記憶された中間データを共用してこの中間データに対して可変長符号化処理を施すと共に所定数の符号化単位毎にリスタートマーカーを挿入して再圧縮データとして記憶し、記憶された再圧縮データの可変長符号に対してリスタートマーカーを用いて可変長符号復号化処理を施すと共に後段の復号化処理を施して画像データを生成し、生成した画像データを処理する第２の画像処理を実行する。これにより、第１の画像処理の実行過程で生じる中間データを用いてリスタートマーカーを挿入した再圧縮データを作成することができるから、第２の画像処理の実行を開始する際に、改めて再圧縮データを作成する必要がなく、第２の画像処理の実行時間を短縮することができる。
【図面の簡単な説明】
【００１３】
【図１】プリンター２０の構成の概略を示す構成図。
【図２】メインコントローラー６０の機能ブロックを示すブロック図。
【図３】印刷処理ルーチンの一例を示すフローチャート。
【図４】ＪＰＥＧ再構築処理の一例を示すフローチャート。
【図５】再構築処理されたＪＰＥＧデータの画像の様子を示す説明図。
【図６】変形例の印刷処理ルーチンを示すフローチャート。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態を図面に基づいて説明する。図１は、本発明の画像処理装置の一実施形態であるプリンター２０の構成の概略を示す構成図である。本実施形態のプリンター２０は、図示するように、給紙トレイ２３から搬送された用紙に印刷用データに基づいてシアン（Ｃ），マゼンタ（Ｍ），イエロー（Ｙ），ブラック（Ｋ）のＣＭＹＫの各色のインクを印刷ヘッドから吐出することにより印刷を実行し排紙トレイ２４に排紙するインクジェット方式のプリンターユニット３０と、図示しないガラス台に載置された原稿に向かって発光した後の反射光をレッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）のＲＧＢの各色に分解して画像データとするフラットベッド式のスキャナーユニット３５と、メモリーカードスロット４０ａに挿入されたメモリーカードＭＣとの間でデータを格納したファイルの読み書きを行なうカードコントローラー４０と、各種モードの設定画面や印刷の設定画面などを表示部５２に表示したり各種モードの設定や印刷の設定に関する指示などをユーザーによるボタン群５４の操作を介して入力したりする操作パネル５０と、装置全体の制御を司るメインコントローラー６０とを備える。このプリンター２０では、プリンターユニット３０やスキャナーユニット３５，カードコントローラー４０，メインコントローラー６０がバス６９を介して互いに各種制御信号やデータのやり取りをすることができるよう構成されている。
【００１５】
カードコントローラー４０は、メインコントローラー６０からの読み出し指令に基づいてメモリーカードＭＣからファイルを読み出してメインコントローラー６０に送信したり、メインコントローラー６０からの書き込み指令に基づいてメモリーカードＭＣにファイルを書き込んだりする。
【００１６】
このメモリーカードＭＣには、デジタルカメラなどで撮影されてＪＰＥＧ方式により圧縮されたＪＰＥＧデータを格納したファイルなどが記憶されている。このＪＰＥＧ方式による圧縮では、詳細については省略するが、撮影された画像の各８ビットのＲＧＢ値を輝度成分と色差成分とを示すＹＣｂＣｒ値に変換し、８×８画素（６４画素）の最小符号化ユニット（１ＭＣＵ（Minimum Coded Unit），以下、ブロックとする）に分割して、ブロック単位で離散コサイン変換（ＤＣＴ演算）して周波数成分の大きさを表す８×８成分（６４成分）のＤＣＴ係数に変換し、変換したＤＣＴ係数を量子化して、量子化後のＤＣＴ係数をランレングス符号化やグループ符号化，ハフマン符号化などによりエントロピー符号化することで、画像を圧縮している。なお、各ブロックのＤＣＴ係数は、ブロックの左上隅の成分がブロック内で変化がなくブロック内の平均値を示すＤＣ係数（直流成分）であり、残りの６３成分がブロック内の変化を示すＡＣ係数（交流成分）となる。ＤＣ係数は、隣接するブロックのＤＣ係数と値が近いことが多いため、隣接するブロックのＤＣ係数との差分値に関する情報が符号化される。具体的には、差分値がその出現頻度に応じて予め定められたグループのうちいずれのグループに属するかの情報や属するグループ内でいずれの差分値に該当するかの情報が、それぞれ対応するハフマン符号化やグループ符号化により符号化される。また、ＡＣ係数は、ブロック内の変化が小さく量子化により値０となるものが多いため、値０の連続する個数（ランレングス数）と値０の連続を止める値０でない係数とをセットにした情報が符号化される。具体的には、値０でない係数がその出現頻度に応じて予め定められたグループのうちいずれのグループに属するかの情報や属するグループ内でいずれの係数に該当するかの情報，ランレングス数の情報が、それぞれ対応するハフマン符号化やグループ符号化，ランレングス符号化により符号化される。ここで、ハフマン符号化は出現頻度が高いものほど符号化長の短い符号を割り当てる可変長符号化であるため、圧縮対象の画像が通常の人物画像や風景画像などであれば、符号化後の１ブロック当たりのデータ長はブロック毎に異なるものとなる。
【００１７】
メインコントローラー６０は、ＣＰＵ６２を中心とするマイクロプロセッサーとして構成されており、各種処理プログラムや各種データ、各種テーブルなどを記憶したＲＯＭ６４と、一時的に各種データなどを記憶するＲＡＭ６６とを備える。このメインコントローラー６０は、プリンターユニット３０やスキャナーユニット３５，カードコントローラー４０からの各種動作信号や各種検出信号を入力したり、操作パネル５０のボタン群５４からの操作信号を入力したりする。また、メモリーカードＭＣからのファイルの読み出し指令をカードコントローラー４０に出力したり、印刷指令をプリンターユニット３０に出力したり、ボタン群５４からのスキャン指示に基づいて原稿の読み取り指令をスキャナーユニット３５に出力したり、表示部５２に画像データの表示指令を出力したりする。
【００１８】
また、メインコントローラー６０は、メモリーカードＭＣから入力したＪＰＥＧデータを表示部５２で表示するための表示用データに変換する際には、ＪＰＥＧデータを上述した圧縮と逆の順即ちハフマン復号化やグループ復号化，ランレングス復号化からなるエントロピー復号化，逆量子化，逆ＤＣＴの順に復号化（解凍）し、復号化により得られたＹＣｂＣｒ値をＲＧＢ各８ビットのデータに色変換し、ＲＧＢ各８ビットのデータを表示部５２で表示可能な所定のビット数に減らす処理などが行なわれる。また、ＪＰＥＧデータをプリンターユニット３０で印刷するための印刷用データに変換する際には、表示用データと同様にＪＰＥＧデータを復号化してＲＧＢ各８ビットのデータに色変換してから、さらに、ＣＭＹＫ各８ビットのデータに色変換し、ＣＭＹＫ各８ビットのデータをディザ法や誤差拡散法などにより各２ビットのデータ（２値化データ）に変換する処理などが行なわれる。
【００１９】
このプリンター２０では、画像の色補正や画像の向きなどに関する各種設定が可能となっており、例えば、画像の向きを回転させる回転処理をしてから印刷する回転印刷などが設定可能となっている。ここで、回転処理は、対象となる画像がＪＰＥＧデータの場合には、ＪＰＥＧデータに所定数のブロック毎（１ストライプ幅ともいう）に挿入されたリスタートマーカー（ＲＳＴマーカー）を用いて行なわれる。なお、ＲＳＴマーカーは、ＪＰＥＧの規格で定められた２バイトのコードであり、ＦＦＤ０〜ＦＦＤ７で表される。ＲＳＴマーカーを用いた回転処理では、所定数のブロックを復号化してリスタートマーカーが現れる度に予め定められた数のリスタートマーカー分のデータを読み飛ばして同一ストライプ内の１段下のブロックを復号化する処理を繰り返し、１ストライプ幅分のすべてのブロックを復号化すると、復号化したブロックを回転させることにより行なわれる。そして、１ストライプ幅分の回転処理が完了すると、次のストライプ幅分のブロックに移ってストライプ幅単位で同じ処理を繰り返すことにより、圧縮画像を復号化しながら回転する。ここで、ＪＰＥＧデータは可変長符号化であるハフマン符号化により圧縮されており、各ブロックの符号化後のデータ長は通常は一定とならないものである。このため、各ブロックの境の位置も一定とはならないため、１ストライプ幅に含まれるブロックだけを復号化するのは困難である。そこで、ＪＰＥＧデータを一旦ハフマン復号化し、得られたハフマン復号データを再度ハフマン符号化しながら１ストライプ幅分の間隔でＲＳＴマーカーを挿入してＪＰＥＧデータを再構築しておくことにより、この再構築ＪＰＥＧデータをＲＳＴマーカーを用いて１ストライプ幅分ずつブロック群単位で復号化できるようにし、ストライプ幅単位でのＪＰＥＧデータの回転復号化を可能としている。
【００２０】
図２は、メインコントローラー６０の機能ブロックを示すブロック図である。なお、図２には、メインコントローラー６０の機能ブロックの他にカードコントローラー４０や表示部５２も図示している。なお、図中の実線矢印はＪＰＥＧデータを表示用データに変換する際のデータの流れを示し、図中の点線矢印はＪＥＰＧデータを回転復号化を伴って印刷用データに変換する際のデータの流れを示す。メインコントローラー６０は、メモリーカードＭＣに保存されているＪＰＥＧデータをカードコントローラー４０を介して読み出すと共に読み出したＪＰＥＧデータにハフマン復号化を施してハフマン復号データ記憶部７１に書き込むハフマン復号化部７２と、ハフマン復号データ記憶部７１からハフマン復号データを読み出すと共に読み出したハフマン復号データにグループ復号化やランレングス復号化，逆量子化，逆ＤＣＴなどのハフマン復号化よりも後段の各種復号化を施すことにより画像データを生成して画像データ記憶部７３に書き込むＪＰＥＧ後段復号化部７４と、ハフマン復号データ記憶部７１からハフマン復号データを読み出すと共に読み出したハフマン復号データに対してハフマン復号化を施しながらＲＳＴマーカーを挿入することにより再構築ＪＰＥＧデータを生成して再構築ＪＰＥＧデータ記憶部７５に書き込むハフマン符号化部７６と、画像データ記憶部７３に記憶されている画像データを読み出すと共に読み出した画像データに基づいて印刷用データを作成する印刷処理部７７と、各部の処理を管理する制御部７８とにより構成されている。ここで、本実施形態では、ハフマン復号化部７２とＪＰＥＧ後段復号化部７４とハフマン符号化部７４と印刷処理部７７と制御部７８は、ＲＯＭ６４に記憶されているプログラムをＣＰＵ６２に実行させることにより一体となって機能する。また、ハフマン符号化部７６は、例えば専用のハードウエアにより構成され、ハフマン復号化部７２やＪＰＥＧ後段復号化部７４，ハフマン符号化部７４，印刷処理部７７，制御部７８の処理に対して並列処理が可能となっている。なお、ハフマン復号データ記憶部７１や画像データ記憶部７３，再構築ＪＰＥＧデータ記憶部７５は、コントローラー６０のＲＡＭ６６に設けられている。
【００２１】
次に、こうして構成された本実施形態のプリンター２０の動作、特に、回転印刷を実行する際の動作について説明する。図３は、ＣＰＵ６２により実行される印刷処理ルーチンの一例を示すフローチャートである。このルーチンは、メモリーカードＭＣがメモリーカードスロット４０ａに挿入されたときに表示部５２に表示される選択画面からボタン群５４の操作により印刷対象の画像が選択されたときに実行される。
【００２２】
この印刷処理ルーチンが実行されると、メインコントローラー６０のＣＰＵ６２は、まず、印刷対象の圧縮データ（ここではＪＰＥＧデータとする）を入力し（ステップＳ１００）、入力したＪＰＥＧデータの１ブロック分をハフマン復号化して（ステップＳ１１０）、ハフマン復号化した１ブロック分のハフマン復号データをハフマン復号データ記憶部７１に格納する（ステップＳ１２０）。ハフマン復号データがハフマン復号データ記憶部７１に格納されると、ハフマン符号化部７６によりそのハフマン復号データをＲＳＴマーカー入りのＪＰＥＧデータに再構築するＪＰＥＧ再構築処理が実行される。ここで、印刷処理ルーチンの説明を中断し、ＪＰＥＧ再構築処理について説明する。
【００２３】
図４は、ＪＰＥＧ再構築処理の一例を示すフローチャートであり、図５は、再構築処理されたＪＰＥＧデータの画像の様子を示す説明図である。このＪＰＥＧデータの再構築処理では、まず、上述した印刷処理ルーチンのステップＳ１１０でハフマン復号化した１ブロック分のハフマン符号データ（係数）を入力し（ステップＳ３００）、入力した係数をハフマン符号化してＪＰＥＧデータを再構築する（ステップＳ３１０）。そして、再構築したブロック単位のＪＰＥＧデータを再構築ＪＰＥＧデータ記憶部７５に格納し（ステップＳ３２０）、再構築用バッファーに１ストライプ幅分のデータが格納されたか否かを判定する（ステップＳ３３０）。上述したように、１ストライプ幅は、所定数のブロックに相当するから、この判定は所定数のブロックの再構築処理が完了したか否かを判定するものとなる。なお、所定数のブロックとしては、例えば、８ブロックや１６ブロック，３２ブロックなどとすることができ、本実施形態では１６ブロックとした。ステップＳ３３０で１ストライプ幅分のデータが格納されていないと判定したときには、ステップＳ３１０に戻って次のブロックに対してハフマン符号化してＪＰＥＧデータを再構築する処理を繰り返す（ステップＳ３１０，Ｓ３２０）。所定数のブロックの処理が完了してステップＳ３３０で１ストライプ幅分のデータが格納されたと判定すると、１ストライプ幅分（所定数のブロック）のデータの末尾にＲＳＴマーカーを挿入（付加）して（ステップＳ３４０）、本処理を終了する。このＲＳＴマーカーは、上述したように、回転処理に用いられる。この再構築処理により、図５に示すように、所定数のブロック毎に即ち１ストライプ幅毎にＲＳＴマーカーが挿入されたマーカー挿入済みのＪＰＥＧデータが再構築されることになる。なお、例えば、画素数が縦１９２０画素×横２５６０画素（約５００万画素）の場合、ブロック数が縦２４０ブロック×横３２０ブロックとなり、１ストライプ幅を１６ブロックとすれば、１ブロックラインに２０個のＲＳＴマーカーが挿入されることになる。以上、ＪＰＥＧ再構築処理について説明した。
【００２４】
図３の印刷処理ルーチンのステップＳ１２０に戻って、ハフマン復号データが得られると、得られたハフマン復号データに対して後段の復号化処理、即ち、グループ符号化とランレングス符号化と逆量子化と逆ＤＣＴとをこの順に施し（ステップＳ１３０）、後段の復号化処理により得られたＹＣｂＣｒ値をＲＧＢ値に色変換し（ステップＳ１４０）、ＲＧＢ値を表示部５２の表示サイズに合わせてリサイズし（ステップＳ１５０）、画像データ記憶部７３（表示用バッファー）に格納する（ステップＳ１６０）。こうしたステップＳ１１０〜Ｓ１６０の処理の全てのブロックについて処理が完了するまで繰り返し実行し（ステップＳ１７０）、全てのブロックが処理済みとなると、印刷対象の画像を表示部５２に表示するＵＩ表示を行なって（ステップＳ１８０）、ユーザーにより印刷の開始が指示されるのを待つ（ステップＳ１９０）。印刷指示がなされると、例えば回転印刷の設定がなされているか否かによって印刷対象の画像を回転させる必要があるか否かを判定する（ステップＳ２００）。画像を回転させる必要がない場合には、メモリーカードＭＣに保存されているＪＰＥＧデータを入力して回転を伴わずにそのまま復号化し（ステップＳ２１０）、画像を回転させる必要がある場合には、再構築ＪＰＥＧデータ記憶部７５に格納した再構築ＪＰＥＧデータをＲＳＴマーカーを用いて復号化しながら回転させる回転復号化を行なう（ステップＳ２２０）。ここで、回転復号化は、上述したように、ＲＳＴマーカーを用いて１ストライプ幅分の全てのブロックを復号化してから回転させる処理を、ストライプ幅単位で繰り返し実行することにより行なうことができる。こうしてＪＰＥＧデータを復号化すると、復号化により得られたＹＣｂＣｒ値をＲＧＢ値に色変換し（ステップＳ２３０）、ＲＧＢ値をＣＭＹＫ値に変換したりＣＭＹＫ値を２値化データに変換することにより印刷用データを作成し（ステップＳ２４０）、作成した印刷用データに基づいてプリンターユニット３０を制御する印刷処理を実行して（ステップＳ２５０）、本ルーチンを終了する。
【００２５】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のＲＡＭ６６（ハフマン復号データ記憶部７１や再構築ＪＰＥＧデータ記憶部７５）が本発明の「記憶手段」に相当し、図３の印刷処理ルーチンのステップＳ１１０，Ｓ１２０のハフマン復号化を実行するメインコントローラー６０（ハフマン復号化部７２）が「可変長符号復号化手段」に相当し、印刷処理ルーチンのステップＳ１３０〜Ｓ１８０の表示処理を実行するメインコントローラー６０が「第１の画像処理手段」に相当し、図４のＪＰＥＧ再構築処理を実行するハフマン符号化部７６が「再圧縮化手段」に相当し、印刷処理ルーチンのステップＳ２２０〜Ｓ２５０の回転印刷を実行するメインコントローラー６０が「第２の画像処理手段」に相当する。
【００２６】
以上説明した本実施形態のプリンター２０によれば、印刷対象のＪＰＥＧデータをブロック毎にハフマン復号化してハフマン復号データとしてハフマン復号データ記憶部７１に格納し、ハフマン復号データに後段の復号化処理（グループ復号化，ランレングス復号化，逆量子化，逆ＤＣＴ）を施して画像データを生成し、生成した画像データに基づいて画像を表示部５２に表示させる表示処理を実行し、この表示処理の過程で生じるハフマン復号データを符号化しながら１ストライプ幅分の間隔でＲＳＴマーカーを挿入してＪＰＥＧデータを再構築して再構築ＪＰＥＧデータ記憶部７５に格納しておく。そして、回転印刷が指示されると、格納した再構築ＪＰＥＧデータをＲＳＴマーカーを用いて復号化しながら回転させる回転復号化を行なうと共に回転復号化により得られた画像データから印刷用データを作成して印刷処理を実行する。即ち、ＪＰＥＧデータをハフマン復号化して得られるハフマン復号データを、表示処理とＪＰＥＧ再構築処理とで共用するから、ハフマン復号化の回数を減らすことができる。この結果、回転印刷の実行時間を短縮することができる。しかも、印刷処理ルーチンにおけるステップＳ１３０〜Ｓ１８０の表示処理とＪＰＥＧ再構築処理とを並列処理により実行するから、回転印刷の実行時間を更に短縮することができる。
【００２７】
上述した実施形態では、印刷処理ルーチンにおけるステップＳ１３０〜Ｓ１８０の表示処理とＪＰＥＧ再構築処理とを並列処理により実行するものとしたが、これに限られず、表示処理とＪＥＰＧ再構築処理とを順番に実行する逐次処理によるものとしてもよい。この場合でも、表示処理とＪＥＰＧ再構築処理とでハフマン復号データを共用することができるから、回転印刷の実行時間を短縮することができる。
【００２８】
上述した実施形態では、表示処理を実行する過程で生じるハフマン復号データをＪＰＥＧ再構築処理で共用する場合を例として説明するものとしたが、これに限定されるものではなく、例えば、人物の顔色を補正する顔色補正などの色補正処理を実行する過程で生じるハフマン復号データをＪＰＥＧ再構築処理で共用するものとしてもよい。この場合の変形例の印刷処理ルーチンを図６に示す。この変形例の印刷処理ルーチンは、印刷対象の画像が選択されて印刷の開始が指示されたときに実行される。変形例の印刷処理ルーチンでは、まず、色補正設定の有無や回転印刷の設定の有無などの印刷情報を入力すると共に（ステップＳ４００）、印刷対象の圧縮データ（ＪＰＥＧデータ）を入力する（ステップＳ４１０）。続いて、ＪＰＥＧデータの１ブロック分をハフマン復号化してハフマン復号データ記憶部７１に格納する（ステップＳ４２０，Ｓ４３０）。これにより、ハフマン符号化部７６（図４のＪＰＥＧ再構築処理）により並列処理によってＲＳＴマーカーが挿入された再構築ＪＰＥＧデータが生成され、再構築ＪＰＥＧデータ記憶部７５に格納される。そして、得られたハフマン復号データに対して間引き復号してサンプリングを行なう（ステップＳ４３０）。ここで、間引き復号は、グループ復号化とランレングス復号化と逆量子化とを順に施して８×８成分のＤＣＴ係数に変換し、変換したＤＣＴ係数のうちＡＣ成分を縦横それぞれ１／２や１／４，１／８に間引いてから逆ＤＣＴ演算することにより行なう。ＡＣ成分の間引きは、例えば、１／２間引きでは１６個のＤＣＴ係数が残存し、１／４間引きでは４個のＤＣＴ係数が残存し、１／８間引きでは全てのＡＣ成分が間引かれＤＣ成分のみが残存する。したがって、これを逆ＤＣＴ演算することにより得られる画像は、１／２間引きではフル画像に対して縦横がそれぞれ１／２間引かれて全体ではフル画像の１／４となり、１／４間引きではフル画像に対して縦横がそれぞれ１／４間引かれて全体ではフル画像の１／１６となり、１／８間引きではフル画像に対して縦横がそれぞれ１／８間引かれて全体ではフル画像の１／６４となる。こうした間引き復号によりＹＣｂＣｒの各成分毎に間引き画像が生成されることになる。そして、間引き復号により得られたＹＣｂＣｒ値をＲＧＢ値とＨＬＳ値（色相，明度，彩度）に変換する色変換処理を実行し（ステップＳ４４０）、後述する顔認識に必要なサイズまでリサイズ（縮小）して（ステップＳ４５０）、ＲＡＭ６６に設けられた色補正用バッファーに格納すると共に（ステップＳ４６０）、得られたＲＧＢ値とＨＬＳ値のそれぞれについてヒストグラムを計算する（ステップＳ４８０）。こうしたステップＳ４２０〜Ｓ４７０の処理の全てのブロックについて処理が完了するまで繰り返し実行し（ステップＳ４８０）、全てのブロックが処理済みとなると、色補正用バッファーに格納した画像に基づいて顔認識を行ない（ステップＳ４９０）、画像中に顔が含まれているか否かを判定する（ステップＳ５００）。なお、顔認識については、目や鼻の特徴を抽出し標準化した顔データと比較するなどの周知の顔認識アルゴリズムを用いて行なうことができる。画像中に顔が含まれている場合には顔色が最適とな���ようにエンハンスパラメーターを設定し（ステップＳ５１０）、画像中に顔が含まれていない場合には画像全体の色が最適となるようエンハンスパラメーターを設定する（ステップＳ５２０）。ここで、エンハンスパラメーターの設定は、例えば、ＲＧＢ値やＨＬＳ値の各ヒストグラムから色のパラメーターの特徴量を抽出し、抽出した特徴量が画像中の顔の有無に応じてそれぞれ予め定められた最適な特徴量に近づくようにエンハンスパラメーターを設定することにより行なう。そして、印刷対象の画像を回転させる必要があるか否かを判定し（ステップＳ５３０）、画像を回転させる必要がない場合には、メモリーカードＭＣに保存されているＪＰＥＧデータを入力して回転を伴わずにそのまま復号化し（ステップＳ５４０）、画像を回転させる必要がある場合には、再構築ＪＰＥＧデータ記憶部７５に格納した再構築ＪＰＥＧデータをＲＳＴマーカーを用いて復号化しながら回転させる回転復号化を行なう（ステップＳ５５０）。こうしてＪＰＥＧデータを復号化すると、復号化により得られたＹＣｂＣｒ値をＲＧＢ値に色変換し（ステップＳ５６０）、ステップＳ５１０，Ｓ５２０のいずれかで設定されたエンハンスパラメータに基づいてエンハンス処理を実行し（ステップＳ５７０）、エンハンス後のＲＧＢ値から印刷用データを作成し（ステップＳ５８０）、作成した印刷用データに基づいてプリンターユニット３０を制御する印刷処理を実行して（ステップＳ５９０）、本ルーチンを終了する。
【００２９】
上述した実施形態では、図３の印刷処理ルーチンのステップＳ２００で画像を回転させる必要がないと判定された場合には、メモリーカードＭＣに保存されているＪＰＥＧデータを用いて復号化するものとしたが、再構築ＪＰＥＧデータを用いて復号化するものとすればよい。この場合、画像を回転させる必要はないから、ＲＳＴマーカーを無視してそのまま復号化すればよい。
【００３０】
上述した実施形態では、再構築ＪＰＥＧデータをＲＳＴマーカーを使った回転復号化の処理（回転印刷）に用いるものとしたが、これに限定されるものではなく、圧縮データを部分的に復号化して画像をトリミングしたり圧縮データを部分的に復号化して色補正するなどＲＳＴマーカーを使って圧縮データを復号化するものに用いることができれば、他の如何なる処理にも適用することが可能である。
【００３１】
上述した実施形態では、圧縮画像をＪＰＥＧデータを例として説明したが、これに限られず、ハフマン符号化などの可変長符号化を伴って圧縮された圧縮画像であればよく、例えばＭＰＥＧデータなどとしてもよい。
【００３２】
上述した実施形態では、本発明をプリンター機能（プリンターユニット３０）とスキャナー機能（スキャナーユニット３５）とを備えるプリンター２０に適用して説明したが、これに限られず、さらにＦＡＸ機能を備えるものとしてもよいし、あるいは、スキャナー機能を備えないプリンターとしてもよい。また、可変長符号化を伴う圧縮方式で圧縮された圧縮画像を解凍して画像処理を施すことができる装置であれば、プリンターに限られず、パーソナルコンピューターやデジタルカメラ，ゲーム機器，携帯電話など如何なる装置に適用するものとしてもよい。
【００３３】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【符号の説明】
【００３４】
２０  プリンター、２３  給紙トレイ、２４  排紙トレイ、３０  プリンターユニット、３５  スキャナーユニット、４０  カードコントローラー、４０ａ  メモリーカードスロット、５０  操作パネル、５２  表示部、５４  ボタン群、６０  メインコントローラー、６２  ＣＰＵ、６４  ＲＯＭ、６６  ＲＡＭ、６９  バス、７１  ハフマン復号データ記憶部、７２  ハフマン復号化部、７３  画像データ記憶部、７４  ＪＥＰＧ後段復号化部、７５  再構築ＪＰＥＧデータ記憶部、７６  ハフマン符号化部、７７  印刷処理部、７８  制御部、ＭＣ  メモリーカード。
【図１】
0006019573.tif 000002
【図２】
0006019573.tif 000003
【図３】
0006019573.tif 000004
【図４】
0006019573.tif 000005
【図５】
0006019573.tif 000006
【図６】
0006019573.tif 000007