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