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