(57)【要約】【課題】任意サイズの画像データの圧縮データの伸張、リサイズ、圧縮及び画像回転等の画像処理を最小限のメモリ容量で実現することができ、コストダウンを図る。【解決手段】任意サイズの圧縮データを１ＭＣＵごとにJPEG伸張ブロック１８で伸張し、８×８画素のブロックごとにリサイズしてＶリサイズバッファ２４に保持させる。Ｖリサイズバッファ２４に所定のデータ量が蓄積されると、１ＭＣＵ単位でJPEG圧縮してフラッシュＲＯＭ３０に保存するとともに、各ブロックのブロック番号に関連づけて各ブロックの圧縮データの書込位置及び先頭値とが記憶された情報テーブルを作成する。この作成した情報テーブルの位置情報及び先頭値に基づいてフラッシュＲＯＭ３０から各ブロックの圧縮データを任意の順番で読み出して復号し、ｎ×ｎ画素のブロック内の画像データの出力順を入れ替えて所定の角度だけ回転させた画像データを出力する。【選択図】  図１
2006313983.tif 000002
【特許請求の範囲】
【請求項１】
任意サイズの画像データの圧縮データを１コマ分連続的に受信するインターフェース手段と、
ｎ×ｎ画素のブロック単位で圧縮データを伸張する伸張手段と、
前記伸張手段によって伸張されたｎ×ｎ画素の画像データを一時記憶する伸張データバッファ手段と、
前記伸張データバッファ手段に記憶されたｎ×ｎ画素の画像データを任意サイズに変換処理する解像度変換手段と、
前記解像度変換した画像データを連続的に保持する解像度変換出力バッファ手段と、
前記解像度変換出力バッファ手段に処理可能な単位の画像データが保持されると、ｎ×ｎ画素のブロック単位で圧縮して圧縮データを生成する圧縮手段であって、１行１列のブロックからＭ行Ｎ列のブロックまでブロック単位で順次圧縮したデータ構造の圧縮データを作成する圧縮手段と、
前記圧縮手段によって圧縮された１コマ分の圧縮データを記憶するメモリと、
前記圧縮データの前記メモリへの書き込み時に、前記メモリへの書き込み順に対応する各ブロックのブロック番号に関連づけて各ブロックの圧縮データの書込位置を示す位置情報と、そのブロックの圧縮データの先頭値とを記憶させた情報テーブルを作成する情報テーブル作成手段と、
前記作成された情報テーブルの位置情報に基づいて前記メモリから各ブロックの圧縮データを任意の順番で読み出す読出手段と、
前記読み出したブロックの圧縮データを前記情報テーブルに記憶された各ブロックに関連づけて記憶された圧縮データの先頭値を利用して復号する復号手段と、
前記復号手段によって復号されたｎ×ｎ画素のブロック内の画像データの出力順を入れ替えて前記解像度変換出力バッファ手段に書き込む書込手段と、を備え、
前記読出手段による前記メモリからのブロックの読出順及び前記書込手段によるブロック内の画像データの出力順に応じて前記解像度変換出力バッファ手段から所定の角度だけ回転させた画像データを出力可能にすることを特徴とする画像処理装置。
【請求項２】
前記ブロックの圧縮データの書込位置を示す位置情報は、前記メモリのメモリマップにおけるアドレス情報とビット情報であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ブロックの圧縮データは、離散コサイン変換処理を含む圧縮処理されたデータであり、前記ブロックの圧縮データの先頭値は、各ブロックの離散コサイン変換された先頭の直流値の絶対値又はブロック間の差分値であることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記復号手段は、ｉ行ｊ列（１≦ｉ≦Ｍ，１≦ｊ≦Ｎ）のブロックの圧縮データを復号する際に、該ｉ行ｊ列のブロックの圧縮データの先頭値が差分値の場合には、圧縮データの先頭値として絶対値を有するｉ行ｊ列のブロックの直近のブロックからｉ行ｊ列のブロックまでの各ブロックの圧縮データの先頭値を前記情報テーブルから読み出して累算し、その累算した値を利用して復号することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記解像度変換手段は、画像サイズを縮小又は拡大する倍率ａ／ｂ（ａ，ｂ：自然数）に応じて補間演算に使用する補間係数が記憶された変換テーブルであって、倍率ａ／ｂの分母ｂの画素数を１周期として分子ａの数だけ補間係数の組み合わせを有する変換テーブルと、前記１コマ分の画像データの画像サイズと所望の出力画像の画像サイズとに基づいて画像サイズを縮小又は拡大する倍率ａ／ｂを算出し、この算出した倍率ａ／ｂに基づいて前記変換テーブルに補間係数を記憶させ、又は複数の変換テーブルから前記算出した倍率ａ／ｂに対応する変換テーブルを補間演算に使用する変換テーブルとして設定するテーブル設定手段とを含み、前記伸張データバッファ手段に記憶されたｎ×ｎ画素の画像データを前記変換テーブルの補間係数に基づいて補間演算して解像度変換することを特徴とする請求項１乃至４のいずれかに記載の画像処理装置。
【請求項６】
前記解像度変換手段は、前記任意サイズの画像データをＭ行Ｎ列のブロックに分割してなる複数のブロックのｉ行ｊ列（１≦ｉ≦Ｍ，１≦ｊ≦Ｎ）のブロックのｎ×ｎ画素の画像データの水平方向の解像度変換時に、ｉ行ｊ列のブロックのｎ列の画像データと該ｎ列の画像データに対応する前記変換テーブルの１周期上の位置とをｉ行ｊ＋１列のブロックの画像データの解像度変換まで保持して前記ｉ行ｊ＋１列のブロックの画像データの解像度変換に使用し、垂直方向の解像度変換時にｉ行ｊ列のブロックのｎ行の画像データと該ｎ行の画像データに対応する前記変換テーブルの１周期上の位置とをｉ＋１行ｊ列のブロックの画像データの解像度変換まで保持して前記ｉ＋１行ｊ列のブロックの画像データの解像度変換に使用することを特徴とする請求項５に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置に係り、特に任意サイズの圧縮データを少ないメモリ容量で所望の画像サイズの出力画像にリサイズし、該出力画像を回転させて出力させることが可能な画像処理装置に関する。
【背景技術】
【０００２】
一般に、画像の画素並び主走査方向と、出力主走査方向が９０度異なる場合、画像データを９０度回転する必要がある。画像データがJPEG（Joint Photographic Experts Group）画像に代表される可変長符号化圧縮されている場合は、伸張してから９０度回転させる必要があり、展開画像を保存する大容量のメモリが必要となる。
【０００３】
この問題に対し、画像の各行先頭ブロックのメモリ上アドレスを記憶し、横方向に記録された画像を縦方向に読み出すようにした画像データ変換装置が提案されている（特許文献１）。
【０００４】
また、ｎ画素×ｎ画素分の画像データが１単位とした複数個の矩形ブロックに分割され、各矩形ブロック単位で圧縮コードが生成され、各矩形ブロックに対する圧縮コードについての圧縮コードバッファにおけるアドレスを、各矩形ブロックに対して与えられているブロック番号に対応づけて記憶する圧縮コードテーブルと、圧縮コードテーブルに記憶された特定のブロック番号に基づいてアドレスを読み出して、読み出したアドレスに基づいて圧縮コードバッファに記憶された圧縮コードを読み出して伸張する回路と、伸張データを出力する回路とを持ち、必要な圧縮コードだけを読み出して伸張する処理が可能となり、回転などの処理が簡単にできる画像データ圧縮伸張装置が提案されている（特許文献２）。
【特許文献１】特開２００２−３６６３６号公報
【特許文献２】特開平８−３１７２２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の画像データ変換装置は、縦横の単純な変換しか実施できず、また、伸張した画像を縦一列×横８ドット格納するメモリが必要となる。
【０００６】
一方、特許文献２に記載の画像データ圧縮伸張装置は、ラスタ形式で入力ａ×ｂ画素の画像データをｎ×ｎ画素の画像データを１単位とした複数の矩形ブロックに分割するとともに、その矩形ブロックに対して入力画像ａ×ｂの画像データ内での位置を示すブロック位置情報を割り当てる分割・割り当て手段によって割りつけるため、入力画像が圧縮データの場合、ａ×ｂ画素の画像データに一旦伸張する必要があり、大きなメモリ容量が必要であるという問題がある。
【０００７】
本発明はこのような事情に鑑みてなされたもので、任意サイズの画像データの圧縮データの伸張、リサイズ、圧縮及び画像回転等の画像処理を最小限のメモリ容量で実現することができ、コストダウンを図ることができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記目的を達成するために請求項１に係る画像処理装置は、任意サイズの画像データの圧縮データを１コマ分連続的に受信するインターフェース手段と、ｎ×ｎ画素のブロック単位で圧縮データを伸張する伸張手段と、前記伸張手段によって伸張されたｎ×ｎ画素の画像データを一時記憶する伸張データバッファ手段と、前記伸張データバッファ手段に記憶されたｎ×ｎ画素の画像データを任意サイズに変換処理する解像度変換手段と、前記解像度変換した画像データを連続的に保持する解像度変換出力バッファ手段と、前記解像度変換出力バッファ手段に処理可能な単位の画像データが保持されると、ｎ×ｎ画素のブロック単位で圧縮して圧縮データを生成する圧縮手段であって、１行１列のブロックからＭ行Ｎ列のブロックまでブロック単位で順次圧縮したデータ構造の圧縮データを作成する圧縮手段と、前記圧縮手段によって圧縮された１コマ分の圧縮データを記憶するメモリと、前記圧縮データの前記メモリへの書き込み時に、前記メモリへの書き込み順に対応する各ブロックのブロック番号に関連づけて各ブロックの圧縮データの書込位置を示す位置情報と、そのブロックの圧縮データの先頭値とを記憶させた情報テーブルを作成する情報テーブル作成手段と、前記作成された情報テーブルの位置情報に基づいて前記メモリから各ブロックの圧縮データを任意の順番で読み出す読出手段と、前記読み出したブロックの圧縮データを前記情報テーブルに記憶された各ブロックに関連づけて記憶された圧縮データの先頭値を利用して復号する復号手段と、前記復号手段によって復号されたｎ×ｎ画素のブロック内の画像データの出力順を入れ替えて前記解像度変換出力バッファ手段に書き込む書込手段と、を備え、前記読出手段による前記メモリからのブロックの読出順及び前記書込手段によるブロック内の画像データの出力順に応じて前記解像度変換出力バッファ手段から所定の角度だけ回転させた画像データを出力可能にすることを特徴としている。
【０００９】
まず、前記インターフェース手段から任意サイズの画像データの圧縮データを１コマ分連続的に受信し、この圧縮データを受信しながらその圧縮データを伸張、解像度変換、及び解像度変換後の画像データの圧縮処理を行ってメモリに保存する。ここで、解像度変換する際に、前記受信した圧縮データをｎ×ｎ画素のブロック単位で伸張し、この伸張したｎ×ｎ画素の画像データを伸張データバッファ手段に一時保持する。この伸張データバッファ手段に保持されたブロック単位のｎ×ｎ画素の画像データは、解像度変換手段にて任意の倍率の解像度に変換されて解像度変換出力バッファ手段に一時保持される。ｎ×ｎ画素のブロック単位で伸張、及び解像度変換の処理を行うため、バッファ手段として大きなメモリ容量を必要としない。そして、前記解像度変換された画像データが前記解像度変換出力バッファ手段に処理可能な単位の画像データとして保持されると、ｎ×ｎ画素のブロック単位で圧縮される。このようにして１行１列のブロックからＭ行Ｎ列のブロックまでブロック単位で順次圧縮された１コマ分の圧縮データがメモリに格納される。
一方、前記圧縮データの前記メモリへの書き込み時に、前記メモリへの書き込み順に対応する各ブロックのブロック番号に関連づけて各ブロックの圧縮データの書込位置を示す位置情報と、そのブロックの圧縮データの先頭値とが記憶された情報テーブルが作成される。この作成された情報テーブルの位置情報に基づいて前記メモリから各ブロックの圧縮データを任意の順番で読み出すことができ、読み出したブロックの圧縮データを前記情報テーブルに記憶された各ブロックに関連づけて記憶された圧縮データの先頭値を利用して復号する。そして、この復号したｎ×ｎ画素のブロック内の画像データの出力順を入れ替えて前記解像度変換出力バッファ手段に書き込むことにより所定の角度だけ回転させた画像データを出力可能にしている。
【００１０】
請求項２に示すように請求項１に記載の画像処理装置において、前記ブロックの圧縮データの書込位置を示す位置情報は、前記メモリのメモリマップにおけるアドレス情報とビット情報であることを特徴としている。
【００１１】
請求項３に示すように請求項１又は２に記載の画像処理装置において、前記ブロックの圧縮データは、離散コサイン変換処理を含む圧縮処理されたデータであり、前記ブロックの圧縮データの先頭値は、各ブロックの離散コサイン変換された先頭の直流値の絶対値又はブロック間の差分値であることを特徴としている。
【００１２】
請求項４に示すように請求項３に記載の画像処理装置において、前記復号手段は、ｉ行ｊ列（１≦ｉ≦Ｍ，１≦ｊ≦Ｎ）のブロックの圧縮データを復号する際に、該ｉ行ｊ列のブロックの圧縮データの先頭値が差分値の場合には、圧縮データの先頭値として絶対値を有するｉ行ｊ列のブロックの直近のブロックからｉ行ｊ列のブロックまでの各ブロックの圧縮データの先頭値を前記情報テーブルから読み出して累算し、その累算した値を利用して復号することを特徴としている。
【００１３】
請求項５に示すように請求項１乃至４のいずれかに記載の画像処理装置において、前記解像度変換手段は、画像サイズを縮小又は拡大する倍率ａ／ｂ（ａ，ｂ：自然数）に応じて補間演算に使用する補間係数が記憶された補間テーブルであって、倍率ａ／ｂの分母ｂの画素数を１周期として分子ａの数だけ補間係数の組み合わせを有する補間テーブルと、前記１コマ分の画像データの画像サイズと所望の出力画像の画像サイズとに基づいて画像サイズを縮小又は拡大する倍率ａ／ｂを算出し、この算出した倍率ａ／ｂに基づいて前記補間テーブルに補間係数を記憶させ、又は複数の補間テーブルから前記算出した倍率ａ／ｂに対応する補間テーブルを補間演算に使用する補間テーブルとして設定するテーブル設定手段とを含み、前記伸張データバッファ手段に記憶されたｎ×ｎ画素の画像データを前記補間テーブルの補間係数に基づいて補間演算して解像度変換することを特徴としている。これにより、ｎ×ｎ画素のブロック単位で解像度変換を行うことができ、解像度変換時に１コマ分の全画像データを保持しておくメモリを必要としない。
【００１４】
請求項６に示すように請求項５に記載の画像処理装置において、前記解像度変換手段は、前記任意サイズの画像データをＭ行Ｎ列のブロックに分割してなる複数のブロックのｉ行ｊ列（１≦ｉ≦Ｍ，１≦ｊ≦Ｎ）のブロックのｎ×ｎ画素の画像データの水平方向の解像度変換時に、ｉ行ｊ列のブロックのｎ列の画像データと該ｎ列の画像データに対応する前記補間テーブルの１周期上の位置とをｉ行ｊ＋１列のブロックの画像データの解像度変換まで保持して前記ｉ行ｊ＋１列のブロックの画像データの解像度変換に使用し、垂直方向の解像度変換時にｉ行ｊ列のブロックのｎ行の画像データと該ｎ行の画像データに対応する前記補間テーブルの１周期上の位置とをｉ＋１行ｊ列のブロックの画像データの解像度変換まで保持して前記ｉ＋１行ｊ列のブロックの画像データの解像度変換に使用することを特徴としている。これにより、ｎ×ｎ画素のブロック単位で解像度変換を行っても１コマ分の画像の水平方向及び垂直方向に連続性をもった解像度変換を行うことができる。
【発明の効果】
【００１５】
本発明によれば、任意サイズの画像データの圧縮データを連続的に受信し、この受信した圧縮データをｎ×ｎ画素のブロック単位で伸張処理、及びリサイズ（解像度変換）処理し、かつ解像度変換された画像データを再度圧縮してメモリに記憶させるようにしたため、リサイズ、圧縮等の画像処理を行う際に最小限のメモリ容量（ＡＳＩＣ（特定用途向け集積回路）に搭載可能な少ないメモリ容量）で実現することができ、また、圧縮記録時に作成した各ブロックを任意の順番で読み出して復号することができ、これにより所定の角度だけ回転させた画像データを出力することができる。
【発明を実施するための最良の形態】
【００１６】
以下添付図面に従って本発明に係る画像処理装置の好ましい実施の形態について詳説する。
［画像処理装置の全体構成］
図１は本発明に係る画像処理装置の実施の形態を示すブロック図である。
【００１７】
この画像処理装置は、外部から入力する画像データを画像処理してプリンタの印画ヘッドに出力するもので、ＡＳＩＣ１０と、フラッシュＲＯＭ３０とから構成され、ＡＳＩＣ１０にて画像処理されたプリントデータが印画ヘッド３２に出力される。
【００１８】
ＡＳＩＣ１０は、主としてインターフェース部１２と、中央処理装置（ＣＰＵ）１４と、ワークメモリ１６と、JPEG伸張ブロック１８と、伸張データバッファ２０と、Ｈリサイズバッファ２２と、Ｖリサイズバッファ２４と、リサイズブロック２６と、プリント制御部２８とから構成されている。
【００１９】
インターフェース部１２は、ＩｒＤＡ、ブルートゥース、無線ＬＡＮ、ＵＷＢ(Ultra Wide Band)、ＵＳＢ(Universal Serial Bus)、ワイヤレスＵＳＢ、ＩＥＥＥ１３９４、ＳＣＳＩ、ＲＳ２３２Ｃなどの無線及び有線のインターフェースが考えられる。
【００２０】
ＣＰＵ１４は、各回路を統括制御するもので、データや画像の解析、解析結果に基づく必要な情報の各回路への設定、ソフトウエアによるJPEG圧縮処理、及びデータの読み書き制御等を行う。
【００２１】
ワークメモリ１６は、所望の画像サイズ（この実施の形態では、ＶＧＡ（640×480画素の画像サイズ））の出力画像の非圧縮のデータ量よりもメモリ容量の小さいメモリから構成されており、ＣＰＵ１４の作業領域、及び後述する縮小画像を一時記憶する記憶領域として機能する。
【００２２】
JPEG伸張ブロック１８は、ハフマン復号部、逆量子化部（ＩＱ部）、及び逆離散コサイン変換部（ＩＤＣＴ部）から構成され、ＣＰＵ１４から送られてくる主走査・副走査方向解像度、色成分数、各色サンプリングファクタ（ＳＦ）、各色量子化テーブル（ＩＱＮＴ）、各色ハフマン符号定義テーブル（ＤＨＴ）に基づいてJPEG圧縮された圧縮データを最小符号化単位（ＭＣＵ）で伸張する。即ち、入力する圧縮データをハフマン復号して量子化されたＤＣＴ係数を生成し、この生成した量子化されたＤＣＴ係数を逆量子化部にて逆量子化してＤＣＴ係数を生成し、更にこの生成したＤＣＴ係数をＩＤＣＴ部にてＩＤＣＴ処理して画像データを生成する。
【００２３】
伸張データバッファ２０は、ｎ×ｎ画素（この実施の形態では、８×８画素）の１ブロック分の画像データのデータ容量を有する各色別のダブルバッファで構成され、前記JPEG伸張ブロック１８にて伸張されたデータが格納される。この伸張データバッファ２０に格納された８×８画素は、リサイズブロック２６に転送される。
【００２４】
Ｈリサイズバッファ２２は、８×８画素の画像データが水平方向（Ｈ方向）に解像度変換（リサイズ）された画像データを一時保持するバッファであり、Ｖリサイズバッファ２４は、Ｈ方向及び垂直方向（Ｖ方向）にリサイズされた画像データを一時保持するとともに、プリント出力用の出力画像（複数ライン分の画像データ）を一時保持するもので、出力画像の非圧縮のデータ量よりもメモリ容量の小さいメモリから構成されている。この実施の形態では、Ｖリサイズバッファ２４は、色ごとに640Ｗ×32ライン分の画像データを保持することができるようになっている。
【００２５】
リサイズブロック２６は、伸張データバッファ２０から転送される８×８画素の１ブロック単位でＨ方向及びＶ方向のリサイズを実施する。即ち、伸張データバッファ２０に保持されたデータは、リサイズブロック２６に転送され、ここで、まずＨ方向のリサイズが実施される。Ｈ方向にリサイズされたデータは、Ｈリサイズバッファ２２に一時保持される。このＨリサイズバッファ２２にＨ方向に８ドット以上のデータが蓄積されると、Ｈ方向８ドット単位で再度リサイズブロック２６に転送される。転送されたデータは、Ｈ方向と同じリサイズ回路を利用してＶ方向のリサイズが実施されたのち、Ｖリサイズバッファ２４に転送される。尚、Ｈ方向とＶ方向のリサイズを別々のリサイズ回路で実施し、逐次処理を実施してもよい。
【００２６】
プリント制御部２８は、３Ｄ−ＬＵＴ（３次元ルックアップテーブル）を有し、Ｖリサイズバッファ２４からプリンタの副走査方向１列ごとのＹＣｂＣｒ表色系の輝度データＹ、色差データＣｂ、Ｃｒを入力すると、この輝度データＹ、色差データＣｂ、Ｃｒを、３Ｄ−ＬＵＴによってＲＧＢ表色系のＲ，Ｇ，Ｂデータに変換するとともに、ＣＰＵ１４によって作成された画像処理パラメータによる画像処理を実施したのち、処理済みのＲ，Ｇ，Ｂデータを印画ヘッド３２に送る。
【００２７】
一方、フラッシュＲＯＭ３０は、マイコンプログラムを記憶するとともに、所望の画像サイズ（ＶＧＡ）の出力画像の圧縮データを１コマ分だけ記憶することができる空き容量を有している。
［プリント部］
図２は印画ヘッド３２によって画像が印画されるプリント媒体（インスタントフイルム）５０を示す斜視図である。
【００２８】
このインスタントフイルム５０は、図２に示すように感光シート５１と、この感光シート５１の反対側の受像シート５２と、これらの感光シート５１と受像シート５２との上方に位置し、現像液を封入した現像液ポッド５３と、感光シート５１と受像シート５２との下方に位置し、余った現像液を吸収するトラップ部５４とから構成されている。そして、感光シート５１を露光することによって光化学的に潜像が形成された後、この感光シート５１と受像シート５２とを重ね合わせ、その両者間に現像処理液を展開しながら両シートを加圧することによって受像シート５２にポジ画像が転写される。
【００２９】
図３はプリント部を示す要部斜視図である。
【００３０】
同図において、プリント部には、印画ヘッド３２が配置されるとともに、印画ヘッド３２の上流側に一対の展開ローラ６０が配置されている。また、前記インスタントフイルム５０が複数枚収容可能なフイルムパック５６は、プリント部の所定の位置にセットされる。尚、印画ヘッド３２は、図３に示すように、その長手方向（主走査方向）がインスタントフイルム５０の搬送方向（矢印Ａで示す副走査方向）に対して直交するように、フイルムパック５６の露光開口の上端近くに固定配置されている。
【００３１】
インスタントフイルム５０への印画時には、フイルムパック５６内の最上位置のインスタントフイルム５０が、図示しない送り出し機構により副走査方向（矢印Ａの方向）に一定の速度で送り出されるとともに、印画ヘッド３２によって１列ごとにＲ，Ｇ，Ｂ光の露光が行われる。
【００３２】
インスタントフイルム５０が一定量送り出されると、インスタントフイルム５０の先端
（像液ポッド５３側の先端）が一対の展開ローラ６０に挟持される。そして、インスタントフイルム５０は、展開ローラ６０によって適正な押圧力が加えられるとともに、一定の速度で引き出される。これにより、像液ポッド５３内の現像液が均一に展延される。
【００３３】
図４は印画ヘッド３２の断面図である。同図に示すように、この印画ヘッド３２は、主としてＲ、Ｇ、Ｂの発光ダイオード３３Ｒ、３３Ｇ、３３Ｂと、ライトガイド３４と、反射体３５と、液晶シャッタ３６と、微小レンズアレイ３７とから構成されている。
【００３４】
Ｒ、Ｇ、Ｂの発光ダイオード３３Ｒ、３３Ｇ、３３Ｂは、１ライン分の画像光をインスタントフイルム５０に露光する際に順番に点灯制御される。各発光ダイオードから出射されたＲ、Ｇ、又はＢ光は、主走査方向に延出したライトガイド３４に導かれ、更に反射体３５によって液晶シャッタ３６に入射する。
【００３５】
液晶シャッタ３６は、画素に対応する微小な液晶セグメントが配列されて構成されており、各液晶セグメントは、１ラインのＲ、Ｇ、Ｂの画像データに応じて透過率が制御される。即ち、液晶シャッタ３６の各液晶セグメントは、Ｒ、Ｇ、Ｂの順次光に応じて線順次で透過率を制御し、１ラインにつき３回、各画素ごとの透過率を制御する。そして、上記液晶シャッタ３６から出射された光は、微小レンズアレイ３７を介してインスタントフイルム３７の露光面に結像される。
【００３６】
前記プリント制御部２８から印画ヘッド３２に出力されるＲ，Ｇ，Ｂデータは、Ｒ，Ｇ，Ｂごとに印画ヘッド３２の液晶シャッタ３６の透過率を制御するために使用される。
［画像処理］
上記構成の画像処理装置は、インターフェース部１０から任意サイズの画像データの圧縮データ（JPEGデータ）を受信するデータ受信時と、受信した画像を解析して画像処理パラメータを生成するデータ処理時と、画像処理パラメータに基づいて出力画像を処理して印画ヘッド３２に出力する印画時とに対応する画像処理を順次実施する。
《Ａ．データ受信時》
（１）ヘッダ情報解析
図５は画像処理装置によるヘッダ情報解析時のＣＰＵ動作を示すフローチャートである。
【００３７】
図５において、任意サイズの画像データの圧縮データ（JPEGデータ）は、インターフェース部１０（図１参照）を介して１コマ分連続的に受信される（ステップＳ１０）。
＜JPEGデータのデータ構造＞
ここで、JPEGデータのデータ構造について説明する。図９に示すように、JPEGデータの冒頭のヘッダ部には、主走査・副走査方向解像度（画像サイズ）、色成分数、各色サンプリングファクタ（ＳＦ）、各色量子化テーブル（ＩＱＮＴ）、各色ハフマン符号定義テーブル（ＤＨＴ）が記録され、続いて、JPEGデータの本体の画像データが最小符号化単位（ＭＣＵ）ごとに圧縮されて順次記録されている。
即ち、図１０（Ａ）に示すように１フレーム分の画像データは、１フレームの左上から右下まで１ＭＣＵごとにスキャンされ、１ＭＣＵごとに圧縮されて順次記録されている。
【００３８】
ＭＣＵは、図１０（Ｂ）に示すように１６×１６画素を符号化の最小単位としており、更に離散コサイン変換（ＤＣＴ）のサイズは８×８であるため、図１０（Ｃ）に示すように輝度データＹは、４つのブロックＹ１，Ｙ２，Ｙ３，Ｙ４に、色差データＣｒ，Ｃｂは、それぞれ２つのブロックＣｒ１，Ｃｒ２，及びＣｂ１，Ｃｂ２に区分されている。
【００３９】
８×８画素のブロックは、２次元ＤＣＴが行われ、このＤＣＴ係数が量子化テーブルの各要素でそれぞれ除算され、余りが丸められる。このようにして量子化されたＤＣＴ係数は、ハフマン符号定義テーブルで符号化される（符号の出現確率に応じて符号の割り当てを行なう）。
【００４０】
そして、図９に示すように各ブロックの先頭値（そのブロック全体の明暗レベルを示す直流値（ＤＣ値））に続いて交流値（ＡＣ値）が記録されている。尚、隣接するブロックのＤＣ値は、近い値を持つため、通常、直前ブロックのＤＣ成分との差分値が記録されている。
【００４１】
また、図９に示すように複数のＭＣＵごとにリスタートインターバルマーカ（RIT）が記録されている。このリスタートインターバルマーカの直後のブロックのＤＣ値は、絶対値が記録されている。
【００４２】
尚、図１０（Ｃ）に示した画像フォーマットは、画素を構成する色差データＣｒ，Ｃｂのデータ量をそれぞれ水平方向に２分の１に半減させ、Ｙ＝４，Ｃｒ＝２，Ｃｂ＝２の４：２：２の比率になっている。これは、人間の目は色に対して鈍感なため、色情報が半減されても画質の低下が感じられないことを利用している。また、図１０（Ｃ）に示した４：２：２フォーマットの他に、４：２：０（４：１：１）、４：４：４（１：１：１）フォーマットがあり、本発明はいずれのフォーマットであっても適用できる。
【００４３】
図５に戻って、インターフェース部１２から受信されたJPEGデータの一部がワークメモリ１６に一時保持される。ＣＰＵ１４は、ヘッダ部がワークメモリ１６に保持されると、ヘッダ情報の解析を行い（ステップＳ１２）、少なくとも主走査・副走査方向解像度、色成分数、各色サンプリングファクタ（ＳＦ）、各色量子化テーブル（ＩＱＮＴ）、各色ハフマン符号定義テーブル（ＤＨＴ）をJPEG伸張ブロック１８に設定し、少なくとも各色サンプリングファクタ（ＳＦ）、リサイズ率をリサイズブロック２６に設定する（ステップＳ１４）。尚、リサイズ率は、インターフェース部１２を介して入力するJPEGデータの画像サイズと、プリント部に出力する出力画像の画像サイズとの比から求めることができる。
ＣＰＵ１４は、ワークメモリ１６に一時保存されたデータの解析が終了すると、そのデータを順次ワークメモリ１６から消去し、次にデータをワークメモリ１６に保存する。そして、ヘッダ情報に対する処理が終了すると（ステップＳ１６）、次のステップに移行する。
（２）JPEG伸張処理とリサイズ処理
図６及び７はそれぞれ本発明に係る画像処理装置によるJPEG伸張処理とリサイズ処理におけるＣＰＵ動作を示すフローチャートである。また、図８は主としてＣＰＵ１４とJPEG伸張ブロック１８、リサイズブロック２６との信号の授受を示す概略図である。
＜JPEG伸張処理＞
インターフェース部１２からヘッダ部の情報に続いてスキャンデータが転送される（図９参照）。スキャンデータも同様にワークメモリ１６に一時保存され、ＣＰＵ１４がワークメモリ１６からデータをJPEG伸張ブロック１８に転送する。このとき、ＣＰＵ１４の負荷を軽減するためにＤＭＡ１（Direct Memory Access）を設置し（図１参照）、ＤＭＡ１がデータを転送するようにしてもよい。
【００４４】
図６に示すようにJPEG伸張ブロック１８は、ＣＰＵ１４からJPEG伸張スタート信号ａを受けて伸張を開始する（ステップＳ２０）。ＣＰＵ１４は、JPEG伸張ブロック１８からJPEG伸張アック信号ｂを受けてワークメモリ１６に一時保持されたデータをワークメモリロード信号ｉにより転送する（ステップＳ２２）。尚、ＣＰＵ１４は、後述するデータ処理時及び印画時には、フラッシュＲＯＭ３０に保存されたデータをフラッシュロード信号ｋにより転送する。
【００４５】
JPEG伸張ブロック１８では、ＣＰＵ１４から送られた主走査・副走査方向解像度、色成分数、各色サンプリングファクタ（ＳＦ）、各色量子化テーブル（ＩＱＮＴ）、各色ハフマン符号定義テーブル（ＤＨＴ）に基づいてJPEG圧縮された圧縮データを伸張する（ステップＳ２４）。
JPEG伸張ブロック１８は、ＭＣＵ単位の伸張が完了するまで伸張を続行し、ＭＣＵ単位の伸張が完了したことを判別すると、ＭＣＵ伸張完了信号ｃをＣＰＵ１４に送る（ステップ２６Ｓ）。ＣＰＵ１４は、ＭＣＵ伸張完了信号ｃを受け取ると、伸張待機信号dをJPEG伸張ブロック１８に出力してJPEG伸張ブロック１８の動作を停止させる（ステップＳ２８）。
ＣＰＵ１４は、１コマ分の画像の伸張が完了したか否かを判別し、完了していない場合には、ステップＳ２０に戻り、次のＭＣＵの伸張を開始させる（ステップＳ３０）。
【００４６】
後述するようにフラッシュＲＯＭ３０には、Ｍ行Ｎ列のＭＣＵ（ブロック）に分割された１コマ分の圧縮データが格納されるが、印画時には各ブロックの圧縮データを任意の順番で読み出すことができるようになっている。
【００４７】
したがって、印画時にフラッシュＲＯＭ３０に格納された圧縮データを伸張する場合には、次に伸張するブロックの圧縮データが格納されているメモリ領域を示すアドレス情報に基づいてその圧縮データをフラッシュロード信号ｋで読み出して転送する（ステップＳ３２）。
＜リサイズ処理＞
前記JPEG伸張ブロック１８にて伸張された８×８画素のデータは、色成分別に伸張データバッファ２０に格納される。図７において、ＣＰＵ１４は、伸張データバッファ２０からリサイズ準備信号ｅ（ＯＮ信号）を受入すると（ステップＳ４０）、リサイズブロック２６にリサイズスタート信号ｆを出力してリサイズ処理を開始させる（ステップＳ４２）。
【００４８】
リサイズブロック２６は、伸張データバッファ２０から転送される８×８画素の１ブロック単位でＨ方向及びＶ方向のリサイズを、ＣＰＵ１４によって設定されたリサイズ率にしたがって実施する（ステップＳ４４）。
【００４９】
図１１（Ａ）に示すように受信した圧縮データ(ビット列)は、JPEG伸張ブロック１８にて伸張され、伸張データバッファ２０に格納される。この伸張データバッファ２０に８×８画素の１ブロックが格納されるごとに、リサイズブロック２６に転送されて、まずＨ方向のリサイズが実施される（図１１（Ｂ））。
【００５０】
リサイズブロック２６でＨ方向にリサイズされたデータは、Ｈリサイズバッファ２２に書き込まれる（図１１（Ｃ））。尚、図１１では、４分の３にリサイズする場合に関して示しており、８×８画素のブロックは、８×６画素にＨ方向にリサイズされる。また、この実施の形態では、１／１２倍〜３倍のリサイズが可能になっており、８×８画素の１ブロックがＨ方向に３倍にリサイズされる場合を考慮してＨリサイズバッファ２２のサイズが決定されている。
【００５１】
このＨリサイズバッファ２２にＨ方向に８ドット以上のデータが蓄積されると、Ｈリサイズバッファ２２から８×８画素の１ブロックが読み出されて再度リサイズブロック２６に転送される（図１１（Ｃ））。
【００５２】
Ｈリサイズバッファ２２から転送されたデータは、リサイズブロック２６にてＶ方向のリサイズが実施されたのち、Ｖリサイズバッファ２４に書き込まれる（図１１（Ｄ））。
図７に戻って、ＣＰＵ１４は、Ｖリサイズバッファ２４に圧縮に必要な規定量のデータ（Ｈ方向に８ドット以上、Ｖ方向に８ドット以上の各色成分のデータ）が蓄積されたか否かをＶリサイズバッファ２４からの信号ｇにて判別する（ステップＳ４６）。そして、規定量蓄積を示す信号ｇ（ＯＮ信号）を受入すると、ＣＰＵ１４は、Ｖリサイズバッファ２４から８×８画素の各色成分のデータをワークメモリ書込信号ｈでワークメモリ１６に書き込む（ステップＳ４８）。尚、ＣＰＵ１４の負荷を軽減するために、ＤＭＡ２が転送を実施してもよい（図１参照）。
ＣＰＵ１４は、ワークメモリ１６に書き込まれた各色成分別の８×８画素のデータを、ソフトウエアによりJPEG圧縮し（ステップＳ５０）、その圧縮データをフラッシュ書込信号ｊにてフラッシュＲＯＭ３０に書き込む（ステップＳ５２）。
【００５３】
このJPEG圧縮処理及び圧縮データのフラッシュＲＯＭ３０への書込み処理に並行して、１コマ分の画像のリサイズ処理が終了するまでリサイズ処理を実施する（ステップＳ５６）。
【００５４】
このようにして受信した任意サイズの画像データはＶＧＡサイズにリサイズされ、リサイズされた画像データは、各色成分別（ＹＣｂＣｒ）の８×８画素のブロックごとに順次JPEG圧縮され、フラッシュＲＯＭ３０に格納される(図１１(Ｅ),(Ｆ)参照)。
＜ブロック単位のリサイズ処理＞
次に、ｎ×ｎ画素（この実施の形態では、８×８画素）のブロック単位でリサイズ（解像度変換）処理を行っても１コマ分の画像のＨ方向及びＶ方向に連続性をもったリサイズ処理を行うことができる画像処理について説明する。
リサイズブロック２６は、リサイズ率ｍ（＝ａ／ｂ）に応じて補間演算に使用する補間係数が設定される補間テーブルを有している。
一方、ＣＰＵ１４は、JPEGデータのヘッダ部に記録されている画像サイズと所望の出力画像の画像サイズとの比からリサイズ率を求め、このリサイズ率に基づいて前記補間テーブルに所要の補間係数を記憶させる。
ここで、リサイズブロック２６でリサイズ可能なリサイズ率ｍは、１／１２≦ｍ≦３の範囲に設定されており、リサイズ率ｍを決めるａ、ｂの値は、それぞれ１≦ａ≦６４，１≦ｂ≦６４の整数である。
【００５５】
次に、上記補間テーブルについて詳述する。
【００５６】
補間テーブルは、リサイズ率ｍを決めるａ／ｂの分母ｂの数（画素数）を１周期として分子ａの数だけ補間係数の組み合わせを有するテーブルである。即ち、リサイズ率ｍ（＝ａ／ｂ）の場合、分母ｂの画素数を基にして分子ａの数の画素が補間演算によって作成されるが、これが分母ｂの画素数を周期として繰り返される。
【００５７】
例えば、リサイズ率ｍ＝２／３の場合、３つの画素から２つの画素が補間演算によって作成される。この場合の周期は３であり、３画素ごとに２つの画素を補間演算するための補間係数が繰り返し使用される。
【００５８】
図１２（Ａ）はリサイズ率ｍ＝２／３の場合の補間テーブルを示しており、この補間テーブルは、分母３（番号０、１、２）を１周期として、分子２の数だけ補間係数の組み合わせ（（0.75，0.25）、（0.25，0.75））を有している。
【００５９】
図１２（Ｂ）はブロック単位のデータをＨ方向に２／３にリサイズした場合に関して示している。同図に示すように、３つの画素｛（Ａ１〜Ａ３），（Ａ４〜Ａ６），（Ａ７，Ａ８，Ｂ１），…｝ごとに２つの画素｛（ａ１，ａ２），（ａ３,ａ４），（ａ５，ｂ１），…｝を、図１２（Ａ）に示した補間テーブルの補間係数を用いて補間演算により求める。
【００６０】
ところで、画素ａ５は、同一ブロック内の画素Ａ７，Ａ８に基づいて算出することができるが、画素ｂ１は、隣接する２つのブロックの画素Ａ８，Ｂ１に基づいて算出する必要がある。そこで、Ｈ方向のリサイズを行う場合には、各ブロックの最終列（８×８画素のブロックでは８列目）の画素のデータを、次のブロックのリサイズ時まで保持しておく。また、各ブロックのＨ方向の１周期上の最後の位置（この例では、０１２、０１２、…の周期の番号１）を保持しておく。これにより、次のブロックのＨ方向のリサイズ時に前記保持した最終列の画素のデータと１周期上の位置とに基づいて、左右に隣接するブロックの画素間に補間位置がある画素のデータを算出することができる。
【００６１】
各ブロックのＶ方向のリサイズ時にもＨ方向のリサイズ時と同じ補間テーブルの補間係数を使用してリサイズすることができる。また、Ｖ方向のリサイズを行う場合には、Ｈ方向のリサイズ時と同様にして、各ブロックの最終行（８×８画素のブロックでは８行目）の画素のデータを、上下に隣接する下側のブロックのリサイズ時まで保持するとともに、各ブロックのＶ方向の１周期上の最後の位置を保持しておく。これにより、上下に隣接する下側のブロックのＶ方向のリサイズ時に前記保持した最終行の画素のデータと１周期上の位置とに基づいて、上下隣接するブロックの画素間に補間位置がある画素のデータを算出することができる。
【００６２】
尚、この実施の形態では、リサイズ率を算出するＣＰＵ１４が、そのリサイズ率に対応する補間係数を補間テーブルに記憶させて補間演算に使用する補間テーブルを作成するようにしているが、これに限らず、予めリサイズ率に対応する補間係数を記憶する複数の補間テーブルを準備しておき、リサイズ率を算出するＣＰＵ１４が、そのリサイズ率に対応する補間係数が記憶された補間テーブルを、補間演算に使用する補間テーブルとして設定するようにしてもよい。
（３）JPEG圧縮処理とポインタ保存
前述したようにＣＰＵ１４は、ワークメモリ１６に書き込まれた各色成分別の８×８画素のデータをソフトウエアによりJPEG圧縮し、その圧縮データを順次フラッシュＲＯＭ３０に書き込む。
即ち、８×８画素の輝度データＹ，８×８画素の色差データＣｂ，８×８画素の色差データＣｒを１ＭＣＵとしてJPEG圧縮する。このときの画像フォーマットは、１：１：１フォーマットである。尚、このときのＭＣＵを、以下ブロックとも称す。
【００６３】
ＣＰＵ１４は、１ＭＣＵ（１ブロック）単位の圧縮データのフラッシュＲＯＭ３０への書き込みに際し（圧縮データの作成時を含む）、図１３（Ａ）に示すように各ブロックのフラッシュＲＯＭ３０への書込順に対応するブロック番号（０，１，２，…Ｘ）に関連づけて各ブロックのアドレスポインタ、ビット情報、及び圧縮データの先頭値（ＤＣ値）を保存した情報テーブルを作成する。尚、ＤＣ値としては、輝度データＹ，色差データＣｂ，Ｃｒ別の３つのＤＣ値を記憶させる。
このようにして作成した情報テーブル上のアドレスポインタに基づいてフラッシュＲＯＭ３０から可変長データのブロックに対して任意の箇所のブロックを読み出すことができるとともに、情報テーブル上のＤＣ値に基づいて読み出した圧縮ブロックをJPEG伸張することができるようになっている。
【００６４】
尚、この実施の形態では、ＣＰＵ１４がソフトウエアによって１ブロック単位でJPEG圧縮するようにしたが、これに限らず、図１の点線で示すようにJPEG圧縮ブロック２９を設置し、ハードウエアでJPEG圧縮するようにしてもよい。ハードウエアでJPEG圧縮を実施する場合には、圧縮データをフラッシュＲＯＭ３０に書き込むのは、ＣＰＵ１４の代わりにＤＭＡ３が実施してもよい。
《Ｂ．データ処理時》
（１）データのロードとJPEG伸張処理・リサイズ処理
フラッシュＲＯＭ３０に保存した出力画像を解析して画像処理パラメータを生成するデータ処理時には、ＣＰＵ１４がフラッシュＲＯＭ３０からポインタにしたがったアドレス順序でスキャンデータをロードし、JPEG伸張ブロック１８に順次転送する。JPEG伸張処理
及びリサイズ処理は、前述した《Ａ．データ受信時》の場合と同様に行われるが（図６及び図７参照）、リサイズ処理時のリサイズ率ｍは、Ｙ／Ｘ（Ｘ，Ｙは整数かつ定数）で固定する。
【００６５】
Ｘ，Ｙは、ワークメモリ１６のサイズ（保存可能な非圧縮画像の画像サイズ）に依存する値であり、この実施の形態では、Ｙ／Ｘ＝１／４としている。尚、フラッシュＲＯＭ３０に保存される出力画像の画像サイズは、640×480画素であるため、画像解析用にワークメモリ１６に保存される解析用画像の画像サイズは、160×120画素である。
【００６６】
リサイズ処理された画像データは、ＣＰＵ１４によってワークメモリ１６に転送される。
（２）画像処理パラメータの決定
ＣＰＵ１４は、ワークメモリ１６に格納された出力画像の縮小画像を基に画像解析し、画像処理パラメータを決定する。
【００６７】
例えば、解析対象画像の輝度データＹ、色差データＣｂ，ＣｒをＲ，Ｇ，Ｂデータに変換し、図１４に示すようにＲ，Ｇ，Ｂごとの輝度分布を示すヒストグラムを作成する。このヒストグラムを解析し、例えばＢの輝度が低いためにホワイトバランスが悪いと判断した場合には、Ｂの輝度を一律に上げるためのホワイトバランス補正値を求め、これを画像処理パラメータとする。また、上記ヒストグラムから画像全体の明るさやコントラストの大きさを判断して明るさ補正やガンマ補正、トーンカーブの設定等を行うための画像処理パラメータを決定することができる。更に、ＣＰＵ１４は、顔を認識して顔の上下方向から出力画像の天地方向を判断することができる。
《Ｃ．印画時》
（１）データのロードとJPEG伸張処理・リサイズ処理
フラッシュＲＯＭ３０に保存した出力画像を前記画像処理パラメータに基づいて処理して印画ヘッド３２に出力する印画時には、《Ｂ．データ処理時》の場合と同様にＣＰＵ１４がフラッシュＲＯＭ３０からポインタにしたがったアドレス順序でスキャンデータをロードし、JPEG伸張ブロック１８に順次転送する。
ここで、フラッシュＲＯＭ３０からの各ブロックの読出順に応じて出力画像を９０度、１８０度、又は２７０度回転させて出力できる。
＜出力画像を回転出力させる第１の実施の形態＞
（９０度回転）
Ｐ×Ｑ画素の出力画像をｎ×ｎ画素のブロックで分割すると、（Ｐ／ｎ）×（Ｑ／ｎ）のブロックに分割される。尚、この実施の形態では、出力画像は640×480画素、１ブロックは８×８画素であるため、８０×６０のブロックに分割される。
いま、出力画像がＭ行Ｎ列のブロックに分割されている場合、フラッシュＲＯＭ３０には、１行１列のブロック、１行２列のブロック、…、１行Ｎ列のブロック、…、Ｍ行Ｎ列のブロックの順でスキャンデータが記録される。そして、出力画像を９０度回転させて出力する場合には、フラッシュＲＯＭ３０からＭ行Ｎ列のブロックを１列目から順に列方向に読み出す。
図１３は出力画像を９０度回転させて出力する場合（主走査方向と副走査方向とを変換する場合）のフラッシュＲＯＭ３０からの各ブロックの読出順等を示す。図１３（Ｂ）に示すように列方向のブロックに対応するブロック番号は、１列目は０，Ｎ，２Ｎ，…、２列目は１，Ｎ＋１，２Ｎ＋１，…、である。従って、図１３（Ａ）に示した情報テーブルに記憶された各列方向のブロック番号に対応するアドレス及びビット情報に基づいてフラッシュＲＯＭ３０からＭ行Ｎ列のブロックを１列目から順に列方向に読み出すことができる。図１３（Ｃ）は１列目のブロックが割り当てられている様子を示すフラッシュＲＯＭ３０のメモリマップを示している。
このようにして列方向の順で読み出された各ブロックは、JPEG伸張ブロック１８に順次転送される。
【００６８】
JPEG伸張ブロック１８によるJPEG伸張処理は、前述した《Ａ．データ受信時》の場合と同様に行われるが、伸張対象のブロック（ｉ行ｊ列（１≦ｉ≦Ｍ，１≦ｊ≦Ｎ）のブロック）の圧縮データを復号する際に、ｉ行ｊ列のブロックの圧縮データのＤＣ値が差分値の場合には、圧縮データのＤＣ値として絶対値を有するｉ行ｊ列のブロックの直近のブロックからｉ行ｊ列のブロックまでの各ブロックの圧縮データのＤＣ値を、図１３（Ａ）に示した情報テーブルから読み出して累算し、その累算した値を利用して復号する。
また、リサイズブロック２６によるリサイズ処理時のリサイズ率ｍは、１倍（等倍）に固定する。尚、リサイズしない印画時にもリサイズ率を１倍にして必ずリサイズブロック２６を経由させることにより、リサイズブロック２６を迂回させるための特別な切換手段を省略することができる。
【００６９】
上記のようにしてJPEG伸張処理、及び１倍にリサイズされた各色成分のブロックの８×８画素のデータは、Ｖリサイズバッファ２４に一時保存され、その後、１ラインずつプリント制御部２８に送られる。そして、プリント制御部２８で適宜の画像処理が実施されたＲ，Ｇ，Ｂデータが順次印画ヘッド３２に出力される。
【００７０】
図１５はフラッシュＲＯＭから印画ヘッドまでの印画時のデータの流れを示す概念図である。図１５（Ａ）に示すようにブロック列の先頭ポインタによってフラッシュＲＯＭ３０からの各ブロックが読み出され、JPEG伸張処理、及び等倍のリサイズ処理されたデータは、図１５（Ｂ）に示すように８×８画素のブロック単位で順次Ｖリサイズバッファ２４に書き込まれる。尚、Ｖリサイズバッファ２４への書き込み時に、画像の回転（９０度、１８０度、２７０度）に応じて８×８画素のブロック内の画像データの出力順を入れ替えて書き込む。
【００７１】
そして、Ｖリサイズバッファ２４に１列分のブロックのデータが書き込まれると、Ｖリサイズバッファ２４に保持されたデータが１ラインずつプリント制御部２８及びプリントバッファを介して印画ヘッドに送られる（図１５（Ｃ））。
（１８０度回転）
図１６は出力画像を１８０度回転させて出力する場合のフラッシュＲＯＭ３０からの各ブロックの読出順等を示す。この場合、図１６（Ａ）に示した情報テーブル上で、最も大きいブロック番号Ｘから順次小さいブロック番号Ｘ−１，Ｘ−２，…２,１,０の順に対応するブロックを読み出す（図１６（Ｂ）及び（Ｃ））。
【００７２】
同様にして、出力画像を２７０度回転させて出力させることもでき、更に鏡面反転させて出力させることもできる。
【００７３】
尚、印画時に上記のようにして画像を９０回転させて印画ヘッド３２に出力するのは、図３に示したように印画ヘッド３２は、長方形のインスタントフイルム５０の短辺と平行に配置されているからである。更に、出力画像を１８０度や２７０度回転させる理由は、図２に示したインスタントフイルム５０には、予め周囲の余白部分にフレーム画像が印画されたものがあり、そのフレーム画像の天地方向と出力画像の天地方向とが一致するように印画するためである。尚、出力画像の天地方向は、ＣＰＵ１４が画像解析を行うことによって検知することができる。
＜出力画像を回転出力させる第２の実施の形態＞
ＣＰＵ１４は、ワークメモリ１６に書き込まれた各色成分別の８×８画素のデータをソフトウエアにより１ＭＣＵ（１ブロック）単位でJPEG圧縮するが、１ＭＣＵごとにリスタートインターバルマーカ（RIT）を挿入する（図９参照）。これにより、ブロックの圧縮データの先頭のＤＣ値は、絶対値として記録されることになる。
また、図１７（Ｃ）に示すようにリスタートインターバルマーカ（RIT）を挿入する際には、その前のブロックの最後のバイトに空きビットがある場合には、ダミーデータ（”1”）Ｄによって埋められたのち、２バイトのリスタートインターバルマーカ（RIT）が記録される。各リスタートインターバルマーカ（RIT）は、アドレス情報のみで（ビット情報なしで）フラッシュＲＯＭ３０上の記録位置が特定される。
従って、各ブロックの圧縮データのフラッシュＲＯＭ３０への書き込みに際し（圧縮データの作成時を含む）、各ブロックのフラッシュＲＯＭ３０への書込順に対応するブロック番号に関連づけて各ブロックの直前のリスタートインターバルマーカ（RIT）のアドレスポインタを保存した情報テーブルを作成しておくことにより、第1の実施の形態と同様に任意の順番でブロックをフラッシュＲＯＭ３０から読み出してJPEG伸張ブロック１８に転送することができる。これにより、出力画像を９０度、１８０度、２７０度回転させて出力させることができる。
また、各ブロックの圧縮データの先頭のＤＣ値は、絶対値であるため、他のブロックの先頭のＤＣ値を利用する必要がなく、第1の実施の形態のように情報テーブルにＤＣ値を格納しておく必要がない。
＜第２の実施の形態の変形例＞
上記第２の実施の形態では、１ＭＣＵごとにリスタートインターバルマーカ（RIT）を挿入したが、第２の実施の形態の変形例では、リスタートインターバルマーカ（RIT）を挿入せずに、ブロックの圧縮データの先頭のＤＣ値を絶対値として記録した圧縮データを作成する。
【００７４】
また、図１３（Ａ）に示すように各ブロックのフラッシュＲＯＭ３０への書込順に対応するブロック番号（０，１，２，…Ｘ）に関連づけて各ブロックのアドレスポインタ、ビット情報を保存した情報テーブルを作成する。
このようにして作成した情報テーブル上のアドレスポインタに基づいてフラッシュＲＯＭ３０から任意の箇所のブロックを読み出し、JPEG伸張ブロック１８に転送することができる。
一方、JPEG伸張ブロック１８では、フラッシュＲＯＭ３０からブロックを取り込むときのみ、その直前にダミーのリスタートインターバルマーカ（RIT）を入力するようにする。これにより、JPEG伸張ブロック１８は、フラッシュＲＯＭ３０から取り込まれるブロックは、リスタートインターバルマーカ（RIT）直後のブロックとして判断し、そのブロックの圧縮データのＤＣ値を絶対値としてブロックの圧縮データの伸張処理を行う。
第２の実施の形態の変形例は、第２の実施の形態に比べてフラッシュＲＯＭ３０にリスタートインターバルマーカ（RIT）が記録されない分だけフラッシュＲＯＭ３０のメモリ容量を節約することができる。
＜出力画像を回転出力させる第３の実施の形態＞
ＣＰＵ１４は、ワークメモリ１６に書き込まれた各色成分別の８×８画素のデータをソフトウエアにより１ＭＣＵ（１ブロック）単位でJPEG圧縮するとともに、最終列のブロックの直後のみにリスタートインターバルマーカを挿入する。これにより、１列目のブロックの圧縮データの先頭のＤＣ値は、絶対値として記録され、他の列のブロックの圧縮データの先頭のＤＣ値は、直前のブロックのＤＣ値との差分値として記録されることになる。
また、図１７（Ａ）に示すように各ブロックの圧縮データのフラッシュＲＯＭ３０への書き込みに際し、１列目のブロックのブロック番号０，Ｎ，２Ｎ，…に関連づけて各行の最終列のブロック直後のリスタートインターバルマーカ（RIT）のアドレスポインタを保存した情報テーブルを作成する。この場合、図１７（Ａ）及び（Ｃ）に示すようにリスタートインターバルマーカ（RIT）のアドレスポインタは、アドレス情報のみでビット位置は０が設定される。
従って、１列目の各ブロックの圧縮データは、図１７（Ａ）に示したアドレスポインタにしたがってフラッシュＲＯＭ３０から読み出すことができる。このようにして読み出したブロックは、JPEG伸張ブロック１８に転送されて復号される。
一方、１列目の各ブロックの圧縮データの読み出しが行われると、２列目の各ブロックの圧縮データの先頭のビット位置及びアドレス情報を検知することができるため、情報テーブルのビット位置及びアドレス情報を前記検知したビット位置及びアドレス位置に更新する。これにより、ビット位置及びアドレス位置が更新された情報テーブルに基づいて２列目の各ブロックの圧縮データを順次読み出すことができる。同様にして、３列目、４列目、…、の各ブロックの圧縮データを順次読み出すことができる。
一方、２列目の各ブロックの復号に必要なＤＣ値は、１列目の各ブロックの先頭のＤＣ値（絶対値）と、２列目の各ブロックの先頭のＤＣ値（差分値）とを累算することで求めることができるため、２列目の各ブロックの復号時まで１列目の各ブロックの先頭のＤＣ値を保持しておく。同様に、３列目の各ブロックの復号に必要なＤＣ値は、２列目の各ブロックの復号に必要なＤＣ値（１列目のＤＣ値と２列目のＤＣ値の累算値）と、３列目の各ブロックの先頭のＤＣ値（差分値）とを累算することで求めることができるため、３列目の各ブロックの復号時まで前記累算値を保持しておく。
即ち、第ｉ列（１≦ｉ≦Ｎ）のブロックの復号に必要なＤＣ値は、第１列から第ｉ列までの各ブロックの圧縮データのＤＣ値の累算値であるため、この累算値を第ｉ＋１列のブロックの復号時まで保持しておく。
【００７５】
尚、この実施の形態では、伸張対象ブロックの伸張時まで、その伸張対象ブロックの行の先頭ブロックのＤＣ値から直前のブロックのＤＣ値までを累算し、その累算値を保持するようにしたが、これに限らず、伸張対象ブロックの伸張時に、その伸張対象ブロックの行の先頭のブロックのＤＣ値から直前のブロックのＤＣ値までの累算値をその都度計算して求めてもよい。
（２）ＹＣｂＣｒ／ＲＧＢ変換及び画像処理
Ｖリサイズバッファ２４に印画ヘッドのドット数（480）×８ドットの各色成分のデータが蓄積されると、その蓄積されたデータは、１ラインずつプリント制御部２８に送られる（図１５参照）。
【００７６】
前述したようにプリント制御部２８は、３Ｄ−ＬＵＴから構成されている。この３Ｄ−ＬＵＴは、図１８（Ａ）に示すようにＹＣｂＣｒの入力データをＲＧＢの出力データに変換するとともに、色再現性や階調再現性を向上させる階調変換等を行う基本テーブルが準備されている。
【００７７】
また、プリント制御部２８には、ＣＰＵ１４から画像解析結果に応じた画像処理パラメータが加えられており、プリント制御部２８は、画像処理パラメータに基づいて基本ＬＵＴをカスタマイズする。即ち、図１８（Ａ）に示す基本ＬＵＴ１は、画像解析結果に応じてカスタマイズされ、図１８（Ｂ）に示すＬＵＴ２となる。
例えば、Ｂの輝度が低いためにホワイトバランスが悪い場合には、ＣＰＵ１４からＢの輝度を一律に上げるための画像処理パラメータがプリント制御部２８に加えられ、プリント制御部２８は、この画像処理パラメータによってＢの輝度を一律（×１．３）に増加させたＬＵＴ２を再構成する。また、複数の画像処理パラメータを単一のＬＵＴに反映させることもできる。
【００７８】
そして、Ｖリサイズバッファ２４から１ラインずつプリント制御部２８に送られるＹＣｂＣｒの入力データは、プリント制御部２８内の３Ｄ−ＬＵＴによってＲＧＢの出力データに変換されるとともに、ホワイトバランス補正や階調変換等の画像処理が行われる。
【００７９】
このようにしてプリント制御部２８から１ラインずつ画像処理されたＲ，Ｇ，Ｂのデータが印画ヘッド３２に出力される。Ｒ，Ｇ，Ｂデータは、Ｒ，Ｇ，Ｂごとに印画ヘッド３２の液晶シャッタ３６の透過率を制御してインスタントフイルムを露光する。
【００８０】
尚、この実施の形態では、圧縮された出力画像を揮発性メモリ(フラッシュＲＯＭ３０)に保存するようにしたが、これに限らず、揮発性メモリに保存するようにしてもよい。また、圧縮データをブロック単位の圧縮が完了するごとにメモリに順次書き込むようにしたが、これに限らず、全てのデータの圧縮が完了した後に圧縮データを一括してメモリに書き込むようにしてもよい。また、ヘッダ情報の解析等は、ＣＰＵ内部のキャッシュメモリを利用して行うことができ、この場合にはワークメモリ１６を省略することができる。更に、出力画像をプリンタ部に出力する場合について説明したが、画像表示装置に出力する場合にも本発明は適用できる。
【図面の簡単な説明】
【００８１】
【図１】図１は本発明に係る画像処理装置の実施の形態を示すブロック図である。
【図２】図２は印画ヘッドによって画像が印画されるインスタントフイルムを示す斜視図である。
【図３】図３はプリント部を示す要部斜視図である。
【図４】図４は印画ヘッドの断面図である。
【図５】図５は画像処理装置によるヘッダ情報解析時のＣＰＵ動作を示すフローチャートである。
【図６】図６は本発明に係る画像処理装置によるJPEG伸張処理におけるＣＰＵ動作を示すフローチャートである。
【図７】図７は本発明に係る画像処理装置によるリサイズ処理におけるＣＰＵ動作を示すフローチャートである。
【図８】図８は主としてＣＰＵとJPEG伸張ブロック、リサイズブロックとの信号の授受を示す概略図である。
【図９】図９はJPEGデータのデータ構造を説明するために用いた図である。
【図１０】図１０は受信する圧縮データの最小符号化単位（ＭＣＵ）を説明するために用いた図である。
【図１１】図１１はデータ受信時のJPEG伸張、リサイズ、及びJPEG圧縮時のデータの流れを示す図である。
【図１２】図１２はブロック単位のリサイズ処理の詳細を説明するために用いた図である。
【図１３】図１３は出力画像を９０度回転させて出力する画像処理の第１の実施の形態を示す図である。
【図１４】図１４はＲ，Ｇ，Ｂデータのヒストグラムを作成して画像解析する様子を示す図である。
【図１５】図１５はフラッシュＲＯＭから印画ヘッドまでの印画時のデータの流れを示す概念図である。
【図１６】図１６は出力画像を１８０度回転させて出力する画像処理の第１の実施の形態を示す図である。
【図１７】図１７は出力画像を９０度回転させて出力する場合の画像処理の他の実施の形態を示す図である。
【図１８】図１８は３Ｄ−ＬＵＴによるＹＣｂＣｒ／ＲＧＢ変換及び画像処理方法を示す図である。
【符号の説明】
【００８２】
１０…ＡＳＩＣ、１２…インターフェース部、１４…ＣＰＵ、１６…ワークメモリ、１８…JPEG伸張ブロック、２０…伸張データバッファ、２２…Ｈリサイズバッファ、２４…Ｖリサイズバッファ、２６…リサイズブロック、２８…プリント制御部、３０…フラッシュＲＯＭ、３２…印画ヘッド
【図１】
2006313983.tif 000003
【図２】
2006313983.tif 000004
【図３】
2006313983.tif 000005
【図４】
2006313983.tif 000006
【図５】
2006313983.tif 000007
【図６】
2006313983.tif 000008
【図７】
2006313983.tif 000009
【図８】
2006313983.tif 000010
【図９】
2006313983.tif 000011
【図１０】
2006313983.tif 000012
【図１１】
2006313983.tif 000013
【図１２】
2006313983.tif 000014
【図１３】
2006313983.tif 000015
【図１４】
2006313983.tif 000016
【図１５】
2006313983.tif 000017
【図１６】
2006313983.tif 000018
【図１７】
2006313983.tif 000019
【図１８】
2006313983.tif 000020