JP2006313984A - 画像処理装置 - Google Patents

画像処理装置 Download PDF

Info

Publication number
JP2006313984A
JP2006313984A JP2005135318A JP2005135318A JP2006313984A JP 2006313984 A JP2006313984 A JP 2006313984A JP 2005135318 A JP2005135318 A JP 2005135318A JP 2005135318 A JP2005135318 A JP 2005135318A JP 2006313984 A JP2006313984 A JP 2006313984A
Authority
JP
Japan
Prior art keywords
block
data
image
blocks
image data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005135318A
Other languages
English (en)
Inventor
Koichi Kitano
浩一 北野
Yoshiki Takeoka
良樹 竹岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Holdings Corp
Original Assignee
Fuji Photo Film Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Photo Film Co Ltd filed Critical Fuji Photo Film Co Ltd
Priority to JP2005135318A priority Critical patent/JP2006313984A/ja
Publication of JP2006313984A publication Critical patent/JP2006313984A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

【課題】1コマ分の画像を示すM行N列のブロック単位の圧縮データを任意の順番で簡単に読み出すことができるとともに、ブロック単独でそのブロックの圧縮データを復号可能にする。
【解決手段】圧縮処理されるブロック単位ごとにリスタートインターバルマーカを挿入したデータ構造の圧縮データを作成する。これにより、各ブロックの圧縮データの先頭の直流値は絶対値となり、更に各リスタートインターバルマーカは、アドレス情報のみで(ビット情報なしで)フラッシュROM30への記録位置が特定される。従って、フラッシュROM30から任意のブロックを読み出す際にビット位置を指定する必要がなく、また、JPEG伸張ブロック18での伸張時に他のブロックの先頭の直流値を必要としないため、ブロック単独でそのブロックの圧縮データを復号することができる。
【選択図】 図1

Description

本発明は画像処理装置に係り、特に任意サイズの圧縮データを少ないメモリ容量で所望の画像サイズの出力画像にリサイズし、該出力画像を回転させて出力させることが可能な画像処理装置に関する。
一般に、画像の画素並び主走査方向と、出力主走査方向が90度異なる場合、画像データを90度回転する必要がある。画像データがJPEG(Joint Photographic Experts Group)画像に代表される可変長符号化圧縮されている場合は、伸張してから90度回転させる必要があり、展開画像を保存する大容量のメモリが必要となる。
この問題に対し、画像の各行先頭ブロックのメモリ上アドレスを記憶し、横方向に記録された画像を縦方向に読み出すようにした画像データ変換装置が提案されている(特許文献1)。
また、n画素×n画素分の画像データが1単位とした複数個の矩形ブロックに分割され、各矩形ブロック単位で圧縮コードが生成され、各矩形ブロックに対する圧縮コードについての圧縮コードバッファにおけるアドレスを、各矩形ブロックに対して与えられているブロック番号に対応づけて記憶する圧縮コードテーブルと、圧縮コードテーブルに記憶された特定のブロック番号に基づいてアドレスを読み出して、読み出したアドレスに基づいて圧縮コードバッファに記憶された圧縮コードを読み出して伸張する回路と、伸張データを出力する回路とを持ち、必要な圧縮コードだけを読み出して伸張する処理が可能となり、回転などの処理が簡単にできる画像データ圧縮伸張装置が提案されている(特許文献2)。
特開2002−36636号公報 特開平8−317225号公報
しかしながら、特許文献1に記載の画像データ変換装置は、縦横の単純な変換しか実施できず、また、伸張した画像を縦一列×横8ドット格納するメモリが必要となる。
一方、特許文献2に記載の画像データ圧縮伸張装置は、ラスタ形式で入力a×b画素の画像データをn×n画素の画像データを1単位とした複数の矩形ブロックに分割するとともに、その矩形ブロックに対して入力画像a×bの画像データ内での位置を示すブロック位置情報を割り当てる分割・割り当て手段によって割りつけるため、入力画像が圧縮データの場合、a×b画素の画像データに一旦伸張する必要があり、大きなメモリ容量が必要であるという問題がある。
また、JPEG圧縮された画像に対して、任意の箇所を復号する場合には、特許文献2に示すような符号化単位のアドレスを記憶して、復号箇所のアドレスポインタを指定する必要がある。しかしながら、JPEG画像データはバイト単位のデータには必ずしもならないため、ビット位置を指定する必要があり、回路規模又は指定手段の規模が増大するという問題がある。更に、JPEG画像データは、前の符号化単位(ブロック)情報に対する差分を符号化した情報(周波数成分のDC値)を含んでいるため、各ブロックのDC値を保存し、抽出する必要がある。
本発明はこのような事情に鑑みてなされたもので、1コマ分の画像を示すM行N列のブロック単位の圧縮データを任意の順番で簡単に読み出すことができるともに、ブロック単独でそのブロックの圧縮データを復号することができ、更に任意サイズの画像データの圧縮データの伸張、リサイズ、圧縮及び画像回転等の画像処理を最小限のメモリ容量で実現することができ、コストダウンを図ることができる画像処理装置を提供することを目的とする。
前記目的を達成するために請求項1に係る画像処理装置は、M行N列のブロックに分割された1コマ分の画像データを、1行1列のブロックからM行N列のブロックまでn×n画素からなるブロック単位で順次圧縮するとともに、該ブロック単位ごとにリスタートインターバルマーカを挿入したデータ構造の圧縮データを作成する圧縮手段と、前記圧縮手段によって圧縮された1コマ分の圧縮データを記憶するメモリと、前記圧縮データの前記メモリへの書き込み時に、前記メモリへの書き込み順に対応する各ブロックのブロック番号に関連づけて各ブロックの圧縮データの書込位置を示す位置情報を記憶させた情報テーブルを作成する情報テーブル作成手段と、前記作成された情報テーブルの位置情報に基づいて前記メモリから任意の順番でブロックの圧縮データを読み出す読出手段と、前記読み出したブロックの圧縮データを復号する復号手段と、所望の画像サイズの出力画像のデータ量よりも小さい容量のバッファ手段と、前記復号手段によって復号されたn×n画素のブロック内の画像データの出力順を入れ替えて前記バッファ手段に書き込む書込手段と、を備え、前記読出手段による前記メモリからのブロックの読出順序及び前記書込手段によるブロック内の画像データの出力順に応じて前記バッファ手段から所定の角度だけ回転させた画像データを出力可能にすることを特徴としている。
即ち、圧縮処理されるブロック単位ごとにリスタートインターバルマーカを挿入したデータ構造の圧縮データを作成するようにしたため、各ブロックの圧縮データの先頭の直流値は絶対値となり、更に各リスタートインターバルマーカは、アドレス情報のみで(ビット情報なしで)記録位置が特定される。これにより、任意のブロックの圧縮データを読み出す際にビット位置を指定する必要がなく、また、他のブロックの先頭の直流値を必要としないため、ブロック単独でそのブロックの圧縮データを復号することができ、ブロックの読み出しやその復号化が簡単になる。
請求項2に示すように請求項1に記載の画像処理装置において、前記ブロックの圧縮データの書込位置を示す位置情報は、前記メモリのメモリマップにおけるバイト単位のアドレス情報であることを特徴としている。
請求項3に係る画像処理装置は、M行N列のブロックに分割された1コマ分の画像データを、1行1列のブロックからM行N列のブロックまでn×n画素からなるブロック単位で順次離散コサイン変換処理を含む圧縮を行い、かつ各ブロックの圧縮データの先頭の直流値として絶対値を有するデータ構造の圧縮データを作成する圧縮手段と、前記圧縮手段によって圧縮された1コマ分の圧縮データを記憶するメモリと、前記圧縮データの前記メモリへの書き込み時に、前記メモリへの書き込み順に対応する各ブロックのブロック番号に関連づけて各ブロックの圧縮データの書込位置を示す位置情報を記憶させた情報テーブルを作成する情報テーブル作成手段と、前記作成された情報テーブルの位置情報に基づいて前記メモリから任意の順番でブロックの圧縮データを読み出す読出手段と、前記読み出したブロックの圧縮データの復号に先立って該圧縮データに対してリスタートインターバルマーカを付加するマーカ付加手段と、前記リスタートインターバルマーカが付加された圧縮データを入力し、該圧縮データを復号する復号手段と、前記出力画像のデータ量よりも小さい容量のバッファ手段と、前記復号手段によって復号されたn×n画素のブロック内の画像データの出力順を入れ替えて前記バッファ手段に書き込む書込手段と、を備え、前記読出手段による前記メモリからのブロックの読出順序及び前記書込手段によるブロック内の画像データの出力順に応じて前記バッファ手段から所定の角度だけ回転させた画像データを出力可能にすることを特徴としている。
請求項1に係る発明と同様に、圧縮処理されるブロック単位ごとに圧縮データの先頭の直流値が絶対値として記録されるため、任意のブロックの圧縮データを復号する際に他のブロックの先頭の直流値を必要とせず、ブロック単独でそのブロックの圧縮データを復号することができ、また、リスタートインターバルマーカが記録されない分だけメモリ容量を節約することができる。
請求項4に示すように請求項1乃至3のいずれかに記載の画像処理装置において、任意サイズの画像データの圧縮データを1コマ分連続的に受信するインターフェース手段と、n×n画素のブロック単位で圧縮データを伸張する伸張手段と、前記伸張手段によって伸張されたn×n画素の画像データを一時記憶する伸張データバッファ手段と、前記伸張データバッファ手段に記憶されたn×n画素の画像データを任意サイズに変換処理し、前記バッファ手段に出力する解像度変換手段と、を更に備え、前記圧縮手段は、前記バッファ手段に処理可能な単位の画像データが保持されると、n×n画素のブロック単位で順次圧縮したデータ構造の圧縮データを作成することを特徴としている。
即ち、前記インターフェース手段から任意サイズの画像データの圧縮データを1コマ分連続的に受信し、この圧縮データを受信しながらその圧縮データを伸張、解像度変換、及び解像度変換後の画像データの圧縮処理を行ってメモリに保存する。ここで、解像度変換する際に、前記受信した圧縮データをn×n画素のブロック単位で伸張し、この伸張したn×n画素の画像データを伸張データバッファ手段に一時保持する。この伸張データバッファ手段に保持されたブロック単位のn×n画素の画像データは、解像度変換手段にて任意の倍率の解像度に変換されて解像度変換出力バッファ手段に一時保持される。n×n画素のブロック単位で伸張、及び解像度変換の処理を行うため、バッファ手段として大きなメモリ容量を必要としない。そして、前記解像度変換された画像データが前記バッファ手段に処理可能な単位の画像データとして保持されると、n×n画素のブロック単位で圧縮される。
請求項5に示すように請求項4に記載の画像処理装置において、前記解像度変換手段は、画像サイズを縮小又は拡大する倍率a/b(a,b:自然数)に応じて補間演算に使用する補間係数が記憶された補間テーブルであって、倍率a/bの分母bの画素数を1周期として分子aの数だけ補間係数の組み合わせを有する補間テーブルと、前記1コマ分の画像データの画像サイズと所望の出力画像の画像サイズとに基づいて画像サイズを縮小又は拡大する倍率a/bを算出し、この算出した倍率a/bに基づいて前記補間テーブルに補間係数を記憶させ、又は複数の補間テーブルから前記算出した倍率a/bに対応する補間テーブルを補間演算に使用する補間テーブルとして設定するテーブル設定手段とを含み、前記伸張データバッファ手段に記憶されたn×n画素の画像データを前記補間テーブルの補間係数に基づいて補間演算して解像度変換することを特徴としている。これにより、n×n画素のブロック単位で解像度変換を行うことができ、解像度変換時に1コマ分の全画像データを保持しておくメモリを必要としない。
請求項6に示すように請求項5に記載の画像処理装置において、前記解像度変換手段は、前記任意サイズの画像データをM行N列のブロックに分割してなる複数のブロックのi行j列(1≦i≦M,1≦j≦N)のブロックのn×n画素の画像データの水平方向の解像度変換時に、i行j列のブロックのn列の画像データと該n列の画像データに対応する前記補間テーブルの1周期上の位置とをi行j+1列のブロックの画像データの解像度変換まで保持して前記i行j+1列のブロックの画像データの解像度変換に使用し、垂直方向の解像度変換時にi行j列のブロックのn行の画像データと該n行の画像データに対応する前記補間テーブルの1周期上の位置とをi+1行j列のブロックの画像データの解像度変換まで保持して前記i+1行j列のブロックの画像データの解像度変換に使用することを特徴としている。これにより、n×n画素のブロック単位で解像度変換を行っても1コマ分の画像の水平方向及び垂直方向に連続性をもった解像度変換を行うことができる。
本発明によれば、1コマ分の画像を示すM行N列のブロック単位の圧縮データを任意の順番で簡単に読み出すことができるともに、ブロック単独でそのブロックの圧縮データを復号することができ、これにより所定の角度だけ回転させた画像データを出力することができる。また、任意サイズの画像データの圧縮データの伸張、リサイズ、圧縮及び画像回転等の画像処理を最小限のメモリ容量(ASIC(特定用途向け集積回路)に搭載可能な少ないメモリ容量)で実現することができ、コストダウンを図ることができる。
以下添付図面に従って本発明に係る画像処理装置の好ましい実施の形態について詳説する。
[画像処理装置の全体構成]
図1は本発明に係る画像処理装置の実施の形態を示すブロック図である。
この画像処理装置は、外部から入力する画像データを画像処理してプリンタの印画ヘッドに出力するもので、ASIC10と、フラッシュROM30とから構成され、ASIC10にて画像処理されたプリントデータが印画ヘッド32に出力される。
ASIC10は、主としてインターフェース部12と、中央処理装置(CPU)14と、ワークメモリ16と、JPEG伸張ブロック18と、伸張データバッファ20と、Hリサイズバッファ22と、Vリサイズバッファ24と、リサイズブロック26と、プリント制御部28とから構成されている。
インターフェース部12は、IrDA、ブルートゥース、無線LAN、UWB(Ultra Wide Band)、USB(Universal Serial Bus)、ワイヤレスUSB、IEEE1394、SCSI、RS232Cなどの無線及び有線のインターフェースが考えられる。
CPU14は、各回路を統括制御するもので、データや画像の解析、解析結果に基づく必要な情報の各回路への設定、ソフトウエアによるJPEG圧縮処理、及びデータの読み書き制御等を行う。
ワークメモリ16は、所望の画像サイズ(この実施の形態では、VGA(640×480画素の画像サイズ))の出力画像の非圧縮のデータ量よりもメモリ容量の小さいメモリから構成されており、CPU14の作業領域、及び後述する縮小画像を一時記憶する記憶領域として機能する。
JPEG伸張ブロック18は、ハフマン復号部、逆量子化部(IQ部)、及び逆離散コサイン変換部(IDCT部)から構成され、CPU14から送られてくる主走査・副走査方向解像度、色成分数、各色サンプリングファクタ(SF)、各色量子化テーブル(IQNT)、各色ハフマン符号定義テーブル(DHT)に基づいてJPEG圧縮された圧縮データを最小符号化単位(MCU)で伸張する。即ち、入力する圧縮データをハフマン復号して量子化されたDCT係数を生成し、この生成した量子化されたDCT係数を逆量子化部にて逆量子化してDCT係数を生成し、更にこの生成したDCT係数をIDCT部にてIDCT処理して画像データを生成する。
伸張データバッファ20は、n×n画素(この実施の形態では、8×8画素)の1ブロック分の画像データのデータ容量を有する各色別のダブルバッファで構成され、前記JPEG伸張ブロック18にて伸張されたデータが格納される。この伸張データバッファ20に格納された8×8画素は、リサイズブロック26に転送される。
Hリサイズバッファ22は、8×8画素の画像データが水平方向(H方向)に解像度変換(リサイズ)された画像データを一時保持するバッファであり、Vリサイズバッファ24は、H方向及び垂直方向(V方向)にリサイズされた画像データを一時保持するとともに、プリント出力用の出力画像(複数ライン分の画像データ)を一時保持するもので、出力画像の非圧縮のデータ量よりもメモリ容量の小さいメモリから構成されている。この実施の形態では、Vリサイズバッファ24は、色ごとに640W×32ライン分の画像データを保持することができるようになっている。
リサイズブロック26は、伸張データバッファ20から転送される8×8画素の1ブロック単位でH方向及びV方向のリサイズを実施する。即ち、伸張データバッファ20に保持されたデータは、リサイズブロック26に転送され、ここで、まずH方向のリサイズが実施される。H方向にリサイズされたデータは、Hリサイズバッファ22に一時保持される。このHリサイズバッファ22にH方向に8ドット以上のデータが蓄積されると、H方向8ドット単位で再度リサイズブロック26に転送される。転送されたデータは、H方向と同じリサイズ回路を利用してV方向のリサイズが実施されたのち、Vリサイズバッファ24に転送される。尚、H方向とV方向のリサイズを別々のリサイズ回路で実施し、逐次処理を実施してもよい。
プリント制御部28は、3D−LUT(3次元ルックアップテーブル)を有し、Vリサイズバッファ24からプリンタの副走査方向1列ごとのYCbCr表色系の輝度データY、色差データCb、Crを入力すると、この輝度データY、色差データCb、Crを、3D−LUTによってRGB表色系のR,G,Bデータに変換するとともに、CPU14によって作成された画像処理パラメータによる画像処理を実施したのち、処理済みのR,G,Bデータを印画ヘッド32に送る。
一方、フラッシュROM30は、マイコンプログラムを記憶するとともに、所望の画像サイズ(VGA)の出力画像の圧縮データを1コマ分だけ記憶することができる空き容量を有している。
[プリント部]
図2は印画ヘッド32によって画像が印画されるプリント媒体(インスタントフイルム)50を示す斜視図である。
このインスタントフイルム50は、図2に示すように感光シート51と、この感光シート51の反対側の受像シート52と、これらの感光シート51と受像シート52との上方に位置し、現像液を封入した現像液ポッド53と、感光シート51と受像シート52との下方に位置し、余った現像液を吸収するトラップ部54とから構成されている。そして、感光シート51を露光することによって光化学的に潜像が形成された後、この感光シート51と受像シート52とを重ね合わせ、その両者間に現像処理液を展開しながら両シートを加圧することによって受像シート52にポジ画像が転写される。
図3はプリント部を示す要部斜視図である。
同図において、プリント部には、印画ヘッド32が配置されるとともに、印画ヘッド32の上流側に一対の展開ローラ60が配置されている。また、前記インスタントフイルム50が複数枚収容可能なフイルムパック56は、プリント部の所定の位置にセットされる。尚、印画ヘッド32は、図3に示すように、その長手方向(主走査方向)がインスタントフイルム50の搬送方向(矢印Aで示す副走査方向)に対して直交するように、フイルムパック56の露光開口の上端近くに固定配置されている。
インスタントフイルム50への印画時には、フイルムパック56内の最上位置のインスタントフイルム50が、図示しない送り出し機構により副走査方向(矢印Aの方向)に一定の速度で送り出されるとともに、印画ヘッド32によって1列ごとにR,G,B光の露光が行われる。
インスタントフイルム50が一定量送り出されると、インスタントフイルム50の先端
(像液ポッド53側の先端)が一対の展開ローラ60に挟持される。そして、インスタントフイルム50は、展開ローラ60によって適正な押圧力が加えられるとともに、一定の速度で引き出される。これにより、像液ポッド53内の現像液が均一に展延される。
図4は印画ヘッド32の断面図である。同図に示すように、この印画ヘッド32は、主としてR、G、Bの発光ダイオード33R、33G、33Bと、ライトガイド34と、反射体35と、液晶シャッタ36と、微小レンズアレイ37とから構成されている。
R、G、Bの発光ダイオード33R、33G、33Bは、1ライン分の画像光をインスタントフイルム50に露光する際に順番に点灯制御される。各発光ダイオードから出射されたR、G、又はB光は、主走査方向に延出したライトガイド34に導かれ、更に反射体35によって液晶シャッタ36に入射する。
液晶シャッタ36は、画素に対応する微小な液晶セグメントが配列されて構成されており、各液晶セグメントは、1ラインのR、G、Bの画像データに応じて透過率が制御される。即ち、液晶シャッタ36の各液晶セグメントは、R、G、Bの順次光に応じて線順次で透過率を制御し、1ラインにつき3回、各画素ごとの透過率を制御する。そして、上記液晶シャッタ36から出射された光は、微小レンズアレイ37を介してインスタントフイルム37の露光面に結像される。
前記プリント制御部28から印画ヘッド32に出力されるR,G,Bデータは、R,G,Bごとに印画ヘッド32の液晶シャッタ36の透過率を制御するために使用される。
[画像処理]
上記構成の画像処理装置は、インターフェース部10から任意サイズの画像データの圧縮データ(JPEGデータ)を受信するデータ受信時と、受信した画像を解析して画像処理パラメータを生成するデータ処理時と、画像処理パラメータに基づいて出力画像を処理して印画ヘッド32に出力する印画時とに対応する画像処理を順次実施する。
《A.データ受信時》
(1)ヘッダ情報解析
図5は画像処理装置によるヘッダ情報解析時のCPU動作を示すフローチャートである。
図5において、任意サイズの画像データの圧縮データ(JPEGデータ)は、インターフェース部10(図1参照)を介して1コマ分連続的に受信される(ステップS10)。
<JPEGデータのデータ構造>
ここで、JPEGデータのデータ構造について説明する。図9に示すように、JPEGデータの冒頭のヘッダ部には、主走査・副走査方向解像度(画像サイズ)、色成分数、各色サンプリングファクタ(SF)、各色量子化テーブル(IQNT)、各色ハフマン符号定義テーブル(DHT)が記録され、続いて、JPEGデータの本体の画像データが最小符号化単位(MCU)ごとに圧縮されて順次記録されている。
即ち、図10(A)に示すように1フレーム分の画像データは、1フレームの左上から右下まで1MCUごとにスキャンされ、1MCUごとに圧縮されて順次記録されている。
MCUは、図10(B)に示すように16×16画素を符号化の最小単位としており、更に離散コサイン変換(DCT)のサイズは8×8であるため、図10(C)に示すように輝度データYは、4つのブロックY1,Y2,Y3,Y4に、色差データCr,Cbは、それぞれ2つのブロックCr1,Cr2,及びCb1,Cb2に区分されている。
8×8画素のブロックは、2次元DCTが行われ、このDCT係数が量子化テーブルの各要素でそれぞれ除算され、余りが丸められる。このようにして量子化されたDCT係数は、ハフマン符号定義テーブルで符号化される(符号の出現確率に応じて符号の割り当てを行なう)。
そして、図9に示すように各ブロックの先頭値(そのブロック全体の明暗レベルを示す直流値(DC値))に続いて交流値(AC値)が記録されている。尚、隣接するブロックのDC値は、近い値を持つため、通常、直前ブロックのDC成分との差分値が記録されている。
また、図9に示すように複数のMCUごとにリスタートインターバルマーカ(RIT)が記録されている。このリスタートインターバルマーカの直後のブロックのDC値は、絶対値が記録されている。
尚、図10(C)に示した画像フォーマットは、画素を構成する色差データCr,Cbのデータ量をそれぞれ水平方向に2分の1に半減させ、Y=4,Cr=2,Cb=2の4:2:2の比率になっている。これは、人間の目は色に対して鈍感なため、色情報が半減されても画質の低下が感じられないことを利用している。また、図10(C)に示した4:2:2フォーマットの他に、4:2:0(4:1:1)、4:4:4(1:1:1)フォーマットがあり、本発明はいずれのフォーマットであっても適用できる。
図5に戻って、インターフェース部12から受信されたJPEGデータの一部がワークメモリ16に一時保持される。CPU14は、ヘッダ部がワークメモリ16に保持されると、ヘッダ情報の解析を行い(ステップS12)、少なくとも主走査・副走査方向解像度、色成分数、各色サンプリングファクタ(SF)、各色量子化テーブル(IQNT)、各色ハフマン符号定義テーブル(DHT)をJPEG伸張ブロック18に設定し、少なくとも各色サンプリングファクタ(SF)、リサイズ率をリサイズブロック26に設定する(ステップS14)。尚、リサイズ率は、インターフェース部12を介して入力するJPEGデータの画像サイズと、プリント部に出力する出力画像の画像サイズとの比から求めることができる。
CPU14は、ワークメモリ16に一時保存されたデータの解析が終了すると、そのデータを順次ワークメモリ16から消去し、次にデータをワークメモリ16に保存する。そして、ヘッダ情報に対する処理が終了すると(ステップS16)、次のステップに移行する。
(2)JPEG伸張処理とリサイズ処理
図6及び7はそれぞれ本発明に係る画像処理装置によるJPEG伸張処理とリサイズ処理におけるCPU動作を示すフローチャートである。また、図8は主としてCPU14とJPEG伸張ブロック18、リサイズブロック26との信号の授受を示す概略図である。
<JPEG伸張処理>
インターフェース部12からヘッダ部の情報に続いてスキャンデータが転送される(図9参照)。スキャンデータも同様にワークメモリ16に一時保存され、CPU14がワークメモリ16からデータをJPEG伸張ブロック18に転送する。このとき、CPU14の負荷を軽減するためにDMA1(Direct Memory Access)を設置し(図1参照)、DMA1がデータを転送するようにしてもよい。
図6に示すようにJPEG伸張ブロック18は、CPU14からJPEG伸張スタート信号aを受けて伸張を開始する(ステップS20)。CPU14は、JPEG伸張ブロック18からJPEG伸張アック信号bを受けてワークメモリ16に一時保持されたデータをワークメモリロード信号iにより転送する(ステップS22)。尚、CPU14は、後述するデータ処理時及び印画時には、フラッシュROM30に保存されたデータをフラッシュロード信号kにより転送する。
JPEG伸張ブロック18では、CPU14から送られた主走査・副走査方向解像度、色成分数、各色サンプリングファクタ(SF)、各色量子化テーブル(IQNT)、各色ハフマン符号定義テーブル(DHT)に基づいてJPEG圧縮された圧縮データを伸張する(ステップS24)。
JPEG伸張ブロック18は、MCU単位の伸張が完了するまで伸張を続行し、MCU単位の伸張が完了したことを判別すると、MCU伸張完了信号cをCPU14に送る(ステップ26S)。CPU14は、MCU伸張完了信号cを受け取ると、伸張待機信号dをJPEG伸張ブロック18に出力してJPEG伸張ブロック18の動作を停止させる(ステップS28)。
CPU14は、1コマ分の画像の伸張が完了したか否かを判別し、完了していない場合には、ステップS20に戻り、次のMCUの伸張を開始させる(ステップS30)。
後述するようにフラッシュROM30には、M行N列のMCU(ブロック)に分割された1コマ分の圧縮データが格納されるが、印画時には各ブロックの圧縮データを任意の順番で読み出すことができるようになっている。
したがって、印画時にフラッシュROM30に格納された圧縮データを伸張する場合には、次に伸張するブロックの圧縮データが格納されているメモリ領域を示すアドレス情報に基づいてその圧縮データをフラッシュロード信号kで読み出して転送する(ステップS32)。
<リサイズ処理>
前記JPEG伸張ブロック18にて伸張された8×8画素のデータは、色成分別に伸張データバッファ20に格納される。図7において、CPU14は、伸張データバッファ20からリサイズ準備信号e(ON信号)を受入すると(ステップS40)、リサイズブロック26にリサイズスタート信号fを出力してリサイズ処理を開始させる(ステップS42)。
リサイズブロック26は、伸張データバッファ20から転送される8×8画素の1ブロック単位でH方向及びV方向のリサイズを、CPU14によって設定されたリサイズ率にしたがって実施する(ステップS44)。
図11(A)に示すように受信した圧縮データ(ビット列)は、JPEG伸張ブロック18にて伸張され、伸張データバッファ20に格納される。この伸張データバッファ20に8×8画素の1ブロックが格納されるごとに、リサイズブロック26に転送されて、まずH方向のリサイズが実施される(図11(B))。
リサイズブロック26でH方向にリサイズされたデータは、Hリサイズバッファ22に書き込まれる(図11(C))。尚、図11では、4分の3にリサイズする場合に関して示しており、8×8画素のブロックは、8×6画素にH方向にリサイズされる。また、この実施の形態では、1/12倍〜3倍のリサイズが可能になっており、8×8画素の1ブロックがH方向に3倍にリサイズされる場合を考慮してHリサイズバッファ22のサイズが決定されている。
このHリサイズバッファ22にH方向に8ドット以上のデータが蓄積されると、Hリサイズバッファ22から8×8画素の1ブロックが読み出されて再度リサイズブロック26に転送される(図11(C))。
Hリサイズバッファ22から転送されたデータは、リサイズブロック26にてV方向のリサイズが実施されたのち、Vリサイズバッファ24に書き込まれる(図11(D))。
図7に戻って、CPU14は、Vリサイズバッファ24に圧縮に必要な規定量のデータ(H方向に8ドット以上、V方向に8ドット以上の各色成分のデータ)が蓄積されたか否かをVリサイズバッファ24からの信号gにて判別する(ステップS46)。そして、規定量蓄積を示す信号g(ON信号)を受入すると、CPU14は、Vリサイズバッファ24から8×8画素の各色成分のデータをワークメモリ書込信号hでワークメモリ16に書き込む(ステップS48)。尚、CPU14の負荷を軽減するために、DMA2が転送を実施してもよい(図1参照)。
CPU14は、ワークメモリ16に書き込まれた各色成分別の8×8画素のデータを、ソフトウエアによりJPEG圧縮し(ステップS50)、その圧縮データをフラッシュ書込信号jにてフラッシュROM30に書き込む(ステップS52)。
このJPEG圧縮処理及び圧縮データのフラッシュROM30への書込み処理に並行して、1コマ分の画像のリサイズ処理が終了するまでリサイズ処理を実施する(ステップS56)。
このようにして受信した任意サイズの画像データはVGAサイズにリサイズされ、リサイズされた画像データは、各色成分別(YCbCr)の8×8画素のブロックごとに順次JPEG圧縮され、フラッシュROM30に格納される(図11(E),(F)参照)。
<ブロック単位のリサイズ処理>
次に、n×n画素(この実施の形態では、8×8画素)のブロック単位でリサイズ(解像度変換)処理を行っても1コマ分の画像のH方向及びV方向に連続性をもったリサイズ処理を行うことができる画像処理について説明する。
リサイズブロック26は、リサイズ率m(=a/b)に応じて補間演算に使用する補間係数が設定される補間テーブルを有している。
一方、CPU14は、JPEGデータのヘッダ部に記録されている画像サイズと所望の出力画像の画像サイズとの比からリサイズ率を求め、このリサイズ率に基づいて前記補間テーブルに所要の補間係数を記憶させる。
ここで、リサイズブロック26でリサイズ可能なリサイズ率mは、1/12≦m≦3の範囲に設定されており、リサイズ率mを決めるa、bの値は、それぞれ1≦a≦64,1≦b≦64の整数である。
次に、上記補間テーブルについて詳述する。
補間テーブルは、リサイズ率mを決めるa/bの分母bの数(画素数)を1周期として分子aの数だけ補間係数の組み合わせを有するテーブルである。即ち、リサイズ率m(=a/b)の場合、分母bの画素数を基にして分子aの数の画素が補間演算によって作成されるが、これが分母bの画素数を周期として繰り返される。
例えば、リサイズ率m=2/3の場合、3つの画素から2つの画素が補間演算によって作成される。この場合の周期は3であり、3画素ごとに2つの画素を補間演算するための補間係数が繰り返し使用される。
図12(A)はリサイズ率m=2/3の場合の補間テーブルを示しており、この補間テーブルは、分母3(番号0、1、2)を1周期として、分子2の数だけ補間係数の組み合わせ((0.75,0.25)、(0.25,0.75))を有している。
図12(B)はブロック単位のデータをH方向に2/3にリサイズした場合に関して示している。同図に示すように、3つの画素{(A1〜A3),(A4〜A6),(A7,A8,B1),…}ごとに2つの画素{(a1,a2),(a3,a4),(a5,b1),…}を、図12(A)に示した補間テーブルの補間係数を用いて補間演算により求める。
ところで、画素a5は、同一ブロック内の画素A7,A8に基づいて算出することができるが、画素b1は、隣接する2つのブロックの画素A8,B1に基づいて算出する必要がある。そこで、H方向のリサイズを行う場合には、各ブロックの最終列(8×8画素のブロックでは8列目)の画素のデータを、次のブロックのリサイズ時まで保持しておく。また、各ブロックのH方向の1周期上の最後の位置(この例では、012、012、…の周期の番号1)を保持しておく。これにより、次のブロックのH方向のリサイズ時に前記保持した最終列の画素のデータと1周期上の位置とに基づいて、左右に隣接するブロックの画素間に補間位置がある画素のデータを算出することができる。
各ブロックのV方向のリサイズ時にもH方向のリサイズ時と同じ補間テーブルの補間係数を使用してリサイズすることができる。また、V方向のリサイズを行う場合には、H方向のリサイズ時と同様にして、各ブロックの最終行(8×8画素のブロックでは8行目)の画素のデータを、上下に隣接する下側のブロックのリサイズ時まで保持するとともに、各ブロックのV方向の1周期上の最後の位置を保持しておく。これにより、上下に隣接する下側のブロックのV方向のリサイズ時に前記保持した最終行の画素のデータと1周期上の位置とに基づいて、上下隣接するブロックの画素間に補間位置がある画素のデータを算出することができる。
尚、この実施の形態では、リサイズ率を算出するCPU14が、そのリサイズ率に対応する補間係数を補間テーブルに記憶させて補間演算に使用する補間テーブルを作成するようにしているが、これに限らず、予めリサイズ率に対応する補間係数を記憶する複数の補間テーブルを準備しておき、リサイズ率を算出するCPU14が、そのリサイズ率に対応する補間係数が記憶された補間テーブルを、補間演算に使用する補間テーブルとして設定するようにしてもよい。
(3)JPEG圧縮処理とポインタ保存
前述したようにCPU14は、ワークメモリ16に書き込まれた各色成分別の8×8画素のデータをソフトウエアによりJPEG圧縮し、その圧縮データを順次フラッシュROM30に書き込む。
即ち、8×8画素の輝度データY,8×8画素の色差データCb,8×8画素の色差データCrを1MCUとしてJPEG圧縮する。このときの画像フォーマットは、1:1:1フォーマットである。尚、このときのMCUを、以下ブロックとも称す。
CPU14は、1MCU(1ブロック)単位の圧縮データのフラッシュROM30への書き込みに際し(圧縮データの作成時を含む)、図13(A)に示すように各ブロックのフラッシュROM30への書込順に対応するブロック番号(0,1,2,…X)に関連づけて各ブロックのアドレスポインタ、ビット情報、及び圧縮データの先頭値(DC値)を保存した情報テーブルを作成する。尚、DC値としては、輝度データY,色差データCb,Cr別の3つのDC値を記憶させる。
このようにして作成した情報テーブル上のアドレスポインタに基づいてフラッシュROM30から可変長データのブロックに対して任意の箇所のブロックを読み出すことができるとともに、情報テーブル上のDC値に基づいて読み出した圧縮ブロックをJPEG伸張することができるようになっている。
尚、この実施の形態では、CPU14がソフトウエアによって1ブロック単位でJPEG圧縮するようにしたが、これに限らず、図1の点線で示すようにJPEG圧縮ブロック29を設置し、ハードウエアでJPEG圧縮するようにしてもよい。ハードウエアでJPEG圧縮を実施する場合には、圧縮データをフラッシュROM30に書き込むのは、CPU14の代わりにDMA3が実施してもよい。
《B.データ処理時》
(1)データのロードとJPEG伸張処理・リサイズ処理
フラッシュROM30に保存した出力画像を解析して画像処理パラメータを生成するデータ処理時には、CPU14がフラッシュROM30からポインタにしたがったアドレス順序でスキャンデータをロードし、JPEG伸張ブロック18に順次転送する。JPEG伸張処理
及びリサイズ処理は、前述した《A.データ受信時》の場合と同様に行われるが(図6及び図7参照)、リサイズ処理時のリサイズ率mは、Y/X(X,Yは整数かつ定数)で固定する。
X,Yは、ワークメモリ16のサイズ(保存可能な非圧縮画像の画像サイズ)に依存する値であり、この実施の形態では、Y/X=1/4としている。尚、フラッシュROM30に保存される出力画像の画像サイズは、640×480画素であるため、画像解析用にワークメモリ16に保存される解析用画像の画像サイズは、160×120画素である。
リサイズ処理された画像データは、CPU14によってワークメモリ16に転送される。
(2)画像処理パラメータの決定
CPU14は、ワークメモリ16に格納された出力画像の縮小画像を基に画像解析し、画像処理パラメータを決定する。
例えば、解析対象画像の輝度データY、色差データCb,CrをR,G,Bデータに変換し、図14に示すようにR,G,Bごとの輝度分布を示すヒストグラムを作成する。このヒストグラムを解析し、例えばBの輝度が低いためにホワイトバランスが悪いと判断した場合には、Bの輝度を一律に上げるためのホワイトバランス補正値を求め、これを画像処理パラメータとする。また、上記ヒストグラムから画像全体の明るさやコントラストの大きさを判断して明るさ補正やガンマ補正、トーンカーブの設定等を行うための画像処理パラメータを決定することができる。更に、CPU14は、顔を認識して顔の上下方向から出力画像の天地方向を判断することができる。
《C.印画時》
(1)データのロードとJPEG伸張処理・リサイズ処理
フラッシュROM30に保存した出力画像を前記画像処理パラメータに基づいて処理して印画ヘッド32に出力する印画時には、《B.データ処理時》の場合と同様にCPU14がフラッシュROM30からポインタにしたがったアドレス順序でスキャンデータをロードし、JPEG伸張ブロック18に順次転送する。
ここで、フラッシュROM30からの各ブロックの読出順に応じて出力画像を90度、180度、又は270度回転させて出力できる。
<出力画像を回転出力させる第1の実施の形態>
(90度回転)
P×Q画素の出力画像をn×n画素のブロックで分割すると、(P/n)×(Q/n)のブロックに分割される。尚、この実施の形態では、出力画像は640×480画素、1ブロックは8×8画素であるため、80×60のブロックに分割される。
いま、出力画像がM行N列のブロックに分割されている場合、フラッシュROM30には、1行1列のブロック、1行2列のブロック、…、1行N列のブロック、…、M行N列のブロックの順でスキャンデータが記録される。そして、出力画像を90度回転させて出力する場合には、フラッシュROM30からM行N列のブロックを1列目から順に列方向に読み出す。
図13は出力画像を90度回転させて出力する場合(主走査方向と副走査方向とを変換する場合)のフラッシュROM30からの各ブロックの読出順等を示す。図13(B)に示すように列方向のブロックに対応するブロック番号は、1列目は0,N,2N,…、2列目は1,N+1,2N+1,…、である。従って、図13(A)に示した情報テーブルに記憶された各列方向のブロック番号に対応するアドレス及びビット情報に基づいてフラッシュROM30からM行N列のブロックを1列目から順に列方向に読み出すことができる。図13(C)は1列目のブロックが割り当てられている様子を示すフラッシュROM30のメモリマップを示している。
このようにして列方向の順で読み出された各ブロックは、JPEG伸張ブロック18に順次転送される。
JPEG伸張ブロック18によるJPEG伸張処理は、前述した《A.データ受信時》の場合と同様に行われるが、伸張対象のブロック(i行j列(1≦i≦M,1≦j≦N)のブロック)の圧縮データを復号する際に、i行j列のブロックの圧縮データのDC値が差分値の場合には、圧縮データのDC値として絶対値を有するi行j列のブロックの直近のブロックからi行j列のブロックまでの各ブロックの圧縮データのDC値を、図13(A)に示した情報テーブルから読み出して累算し、その累算した値を利用して復号する。
また、リサイズブロック26によるリサイズ処理時のリサイズ率mは、1倍(等倍)に固定する。尚、リサイズしない印画時にもリサイズ率を1倍にして必ずリサイズブロック26を経由させることにより、リサイズブロック26を迂回させるための特別な切換手段を省略することができる。
上記のようにしてJPEG伸張処理、及び1倍にリサイズされた各色成分のブロックの8×8画素のデータは、Vリサイズバッファ24に一時保存され、その後、1ラインずつプリント制御部28に送られる。そして、プリント制御部28で適宜の画像処理が実施されたR,G,Bデータが順次印画ヘッド32に出力される。
図15はフラッシュROMから印画ヘッドまでの印画時のデータの流れを示す概念図である。図15(A)に示すようにブロック列の先頭ポインタによってフラッシュROM30からの各ブロックが読み出され、JPEG伸張処理、及び等倍のリサイズ処理されたデータは、図15(B)に示すように8×8画素のブロック単位で順次Vリサイズバッファ24に書き込まれる。尚、Vリサイズバッファ24への書き込み時に、画像の回転(90度、180度、270度)に応じて8×8画素のブロック内の画像データの出力順を入れ替えて書き込む。
そして、Vリサイズバッファ24に1列分のブロックのデータが書き込まれると、Vリサイズバッファ24に保持されたデータが1ラインずつプリント制御部28及びプリントバッファを介して印画ヘッドに送られる(図15(C))。
(180度回転)
図16は出力画像を180度回転させて出力する場合のフラッシュROM30からの各ブロックの読出順等を示す。この場合、図16(A)に示した情報テーブル上で、最も大きいブロック番号Xから順次小さいブロック番号X−1,X−2,…2,1,0の順に対応するブロックを読み出す(図16(B)及び(C))。
同様にして、出力画像を270度回転させて出力させることもでき、更に鏡面反転させて出力させることもできる。
尚、印画時に上記のようにして画像を90回転させて印画ヘッド32に出力するのは、図3に示したように印画ヘッド32は、長方形のインスタントフイルム50の短辺と平行に配置されているからである。更に、出力画像を180度や270度回転させる理由は、図2に示したインスタントフイルム50には、予め周囲の余白部分にフレーム画像が印画されたものがあり、そのフレーム画像の天地方向と出力画像の天地方向とが一致するように印画するためである。尚、出力画像の天地方向は、CPU14が画像解析を行うことによって検知することができる。
<出力画像を回転出力させる第2の実施の形態>
CPU14は、ワークメモリ16に書き込まれた各色成分別の8×8画素のデータをソフトウエアにより1MCU(1ブロック)単位でJPEG圧縮するが、1MCUごとにリスタートインターバルマーカ(RIT)を挿入する(図9参照)。これにより、ブロックの圧縮データの先頭のDC値は、絶対値として記録されることになる。
また、図17(C)に示すようにリスタートインターバルマーカ(RIT)を挿入する際には、その前のブロックの最後のバイトに空きビットがある場合には、ダミーデータ(”1”)Dによって埋められたのち、2バイトのリスタートインターバルマーカ(RIT)が記録される。各リスタートインターバルマーカ(RIT)は、アドレス情報のみで(ビット情報なしで)フラッシュROM30上の記録位置が特定される。
従って、各ブロックの圧縮データのフラッシュROM30への書き込みに際し(圧縮データの作成時を含む)、各ブロックのフラッシュROM30への書込順に対応するブロック番号に関連づけて各ブロックの直前のリスタートインターバルマーカ(RIT)のアドレスポインタを保存した情報テーブルを作成しておくことにより、第1の実施の形態と同様に任意の順番でブロックをフラッシュROM30から読み出してJPEG伸張ブロック18に転送することができる。これにより、出力画像を90度、180度、270度回転させて出力させることができる。
また、各ブロックの圧縮データの先頭のDC値は、絶対値であるため、他のブロックの先頭のDC値を利用する必要がなく、第1の実施の形態のように情報テーブルにDC値を格納しておく必要がない。
<第2の実施の形態の変形例>
上記第2の実施の形態では、1MCUごとにリスタートインターバルマーカ(RIT)を挿入したが、第2の実施の形態の変形例では、リスタートインターバルマーカ(RIT)を挿入せずに、ブロックの圧縮データの先頭のDC値を絶対値として記録した圧縮データを作成する。
また、図13(A)に示すように各ブロックのフラッシュROM30への書込順に対応するブロック番号(0,1,2,…X)に関連づけて各ブロックのアドレスポインタ、ビット情報を保存した情報テーブルを作成する。
このようにして作成した情報テーブル上のアドレスポインタに基づいてフラッシュROM30から任意の箇所のブロックを読み出し、JPEG伸張ブロック18に転送することができる。
一方、JPEG伸張ブロック18では、フラッシュROM30からブロックを取り込むときのみ、その直前にダミーのリスタートインターバルマーカ(RIT)を入力するようにする。これにより、JPEG伸張ブロック18は、フラッシュROM30から取り込まれるブロックは、リスタートインターバルマーカ(RIT)直後のブロックとして判断し、そのブロックの圧縮データのDC値を絶対値としてブロックの圧縮データの伸張処理を行う。
第2の実施の形態の変形例は、第2の実施の形態に比べてフラッシュROM30にリスタートインターバルマーカ(RIT)が記録されない分だけフラッシュROM30のメモリ容量を節約することができる。
<出力画像を回転出力させる第3の実施の形態>
CPU14は、ワークメモリ16に書き込まれた各色成分別の8×8画素のデータをソフトウエアにより1MCU(1ブロック)単位でJPEG圧縮するとともに、最終列のブロックの直後のみにリスタートインターバルマーカを挿入する。これにより、1列目のブロックの圧縮データの先頭のDC値は、絶対値として記録され、他の列のブロックの圧縮データの先頭のDC値は、直前のブロックのDC値との差分値として記録されることになる。
また、図17(A)に示すように各ブロックの圧縮データのフラッシュROM30への書き込みに際し、1列目のブロックのブロック番号0,N,2N,…に関連づけて各行の最終列のブロック直後のリスタートインターバルマーカ(RIT)のアドレスポインタを保存した情報テーブルを作成する。この場合、図17(A)及び(C)に示すようにリスタートインターバルマーカ(RIT)のアドレスポインタは、アドレス情報のみでビット位置は0が設定される。
従って、1列目の各ブロックの圧縮データは、図17(A)に示したアドレスポインタにしたがってフラッシュROM30から読み出すことができる。このようにして読み出したブロックは、JPEG伸張ブロック18に転送されて復号される。
一方、1列目の各ブロックの圧縮データの読み出しが行われると、2列目の各ブロックの圧縮データの先頭のビット位置及びアドレス情報を検知することができるため、情報テーブルのビット位置及びアドレス情報を前記検知したビット位置及びアドレス位置に更新する。これにより、ビット位置及びアドレス位置が更新された情報テーブルに基づいて2列目の各ブロックの圧縮データを順次読み出すことができる。同様にして、3列目、4列目、…、の各ブロックの圧縮データを順次読み出すことができる。
一方、2列目の各ブロックの復号に必要なDC値は、1列目の各ブロックの先頭のDC値(絶対値)と、2列目の各ブロックの先頭のDC値(差分値)とを累算することで求めることができるため、2列目の各ブロックの復号時まで1列目の各ブロックの先頭のDC値を保持しておく。同様に、3列目の各ブロックの復号に必要なDC値は、2列目の各ブロックの復号に必要なDC値(1列目のDC値と2列目のDC値の累算値)と、3列目の各ブロックの先頭のDC値(差分値)とを累算することで求めることができるため、3列目の各ブロックの復号時まで前記累算値を保持しておく。
即ち、第i列(1≦i≦N)のブロックの復号に必要なDC値は、第1列から第i列までの各ブロックの圧縮データのDC値の累算値であるため、この累算値を第i+1列のブロックの復号時まで保持しておく。
尚、この実施の形態では、伸張対象ブロックの伸張時まで、その伸張対象ブロックの行の先頭ブロックのDC値から直前のブロックのDC値までを累算し、その累算値を保持するようにしたが、これに限らず、伸張対象ブロックの伸張時に、その伸張対象ブロックの行の先頭のブロックのDC値から直前のブロックのDC値までの累算値をその都度計算して求めてもよい。
(2)YCbCr/RGB変換及び画像処理
Vリサイズバッファ24に印画ヘッドのドット数(480)×8ドットの各色成分のデータが蓄積されると、その蓄積されたデータは、1ラインずつプリント制御部28に送られる(図15参照)。
前述したようにプリント制御部28は、3D−LUTから構成されている。この3D−LUTは、図18(A)に示すようにYCbCrの入力データをRGBの出力データに変換するとともに、色再現性や階調再現性を向上させる階調変換等を行う基本テーブルが準備されている。
また、プリント制御部28には、CPU14から画像解析結果に応じた画像処理パラメータが加えられており、プリント制御部28は、画像処理パラメータに基づいて基本LUTをカスタマイズする。即ち、図18(A)に示す基本LUT1は、画像解析結果に応じてカスタマイズされ、図18(B)に示すLUT2となる。
例えば、Bの輝度が低いためにホワイトバランスが悪い場合には、CPU14からBの輝度を一律に上げるための画像処理パラメータがプリント制御部28に加えられ、プリント制御部28は、この画像処理パラメータによってBの輝度を一律(×1.3)に増加させたLUT2を再構成する。また、複数の画像処理パラメータを単一のLUTに反映させることもできる。
そして、Vリサイズバッファ24から1ラインずつプリント制御部28に送られるYCbCrの入力データは、プリント制御部28内の3D−LUTによってRGBの出力データに変換されるとともに、ホワイトバランス補正や階調変換等の画像処理が行われる。
このようにしてプリント制御部28から1ラインずつ画像処理されたR,G,Bのデータが印画ヘッド32に出力される。R,G,Bデータは、R,G,Bごとに印画ヘッド32の液晶シャッタ36の透過率を制御してインスタントフイルムを露光する。
尚、この実施の形態では、圧縮された出力画像を揮発性メモリ(フラッシュROM30)に保存するようにしたが、これに限らず、揮発性メモリに保存するようにしてもよい。また、圧縮データをブロック単位の圧縮が完了するごとにメモリに順次書き込むようにしたが、これに限らず、全てのデータの圧縮が完了した後に圧縮データを一括してメモリに書き込むようにしてもよい。また、ヘッダ情報の解析等は、CPU内部のキャッシュメモリを利用して行うことができ、この場合にはワークメモリ16を省略することができる。更に、出力画像をプリンタ部に出力する場合について説明したが、画像表示装置に出力する場合にも本発明は適用できる。
図1は本発明に係る画像処理装置の実施の形態を示すブロック図である。 図2は印画ヘッドによって画像が印画されるインスタントフイルムを示す斜視図である。 図3はプリント部を示す要部斜視図である。 図4は印画ヘッドの断面図である。 図5は画像処理装置によるヘッダ情報解析時のCPU動作を示すフローチャートである。 図6は本発明に係る画像処理装置によるJPEG伸張処理におけるCPU動作を示すフローチャートである。 図7は本発明に係る画像処理装置によるリサイズ処理におけるCPU動作を示すフローチャートである。 図8は主としてCPUとJPEG伸張ブロック、リサイズブロックとの信号の授受を示す概略図である。 図9はJPEGデータのデータ構造を説明するために用いた図である。 図10は受信する圧縮データの最小符号化単位(MCU)を説明するために用いた図である。 図11はデータ受信時のJPEG伸張、リサイズ、及びJPEG圧縮時のデータの流れを示す図である。 図12はブロック単位のリサイズ処理の詳細を説明するために用いた図である。 図13は出力画像を90度回転させて出力する画像処理の第1の実施の形態を示す図である。 図14はR,G,Bデータのヒストグラムを作成して画像解析する様子を示す図である。 図15はフラッシュROMから印画ヘッドまでの印画時のデータの流れを示す概念図である。 図16は出力画像を180度回転させて出力する画像処理の第1の実施の形態を示す図である。 図17は出力画像を90度回転させて出力する場合の画像処理の他の実施の形態を示す図である。 図18は3D−LUTによるYCbCr/RGB変換及び画像処理方法を示す図である。
符号の説明
10…ASIC、12…インターフェース部、14…CPU、16…ワークメモリ、18…JPEG伸張ブロック、20…伸張データバッファ、22…Hリサイズバッファ、24…Vリサイズバッファ、26…リサイズブロック、28…プリント制御部、30…フラッシュROM、32…印画ヘッド

Claims (6)

  1. M行N列のブロックに分割された1コマ分の画像データを、1行1列のブロックからM行N列のブロックまでn×n画素からなるブロック単位で順次圧縮するとともに、該ブロック単位ごとにリスタートインターバルマーカを挿入したデータ構造の圧縮データを作成する圧縮手段と、
    前記圧縮手段によって圧縮された1コマ分の圧縮データを記憶するメモリと、
    前記圧縮データの前記メモリへの書き込み時に、前記メモリへの書き込み順に対応する各ブロックのブロック番号に関連づけて各ブロックの圧縮データの書込位置を示す位置情報を記憶させた情報テーブルを作成する情報テーブル作成手段と、
    前記作成された情報テーブルの位置情報に基づいて前記メモリから任意の順番でブロックの圧縮データを読み出す読出手段と、
    前記読み出したブロックの圧縮データを復号する復号手段と、
    所望の画像サイズの出力画像のデータ量よりも小さい容量のバッファ手段と、
    前記復号手段によって復号されたn×n画素のブロック内の画像データの出力順を入れ替えて前記バッファ手段に書き込む書込手段と、を備え、
    前記読出手段による前記メモリからのブロックの読出順序及び前記書込手段によるブロック内の画像データの出力順に応じて前記バッファ手段から所定の角度だけ回転させた画像データを出力可能にすることを特徴とする画像処理装置。
  2. 前記ブロックの圧縮データの書込位置を示す位置情報は、前記メモリのメモリマップにおけるバイト単位のアドレス情報であることを特徴とする請求項1に記載の画像処理装置。
  3. M行N列のブロックに分割された1コマ分の画像データを、1行1列のブロックからM行N列のブロックまでn×n画素からなるブロック単位で順次離散コサイン変換処理を含む圧縮を行い、かつ各ブロックの圧縮データの先頭の直流値として絶対値を有するデータ構造の圧縮データを作成する圧縮手段と、
    前記圧縮手段によって圧縮された1コマ分の圧縮データを記憶するメモリと、
    前記圧縮データの前記メモリへの書き込み時に、前記メモリへの書き込み順に対応する各ブロックのブロック番号に関連づけて各ブロックの圧縮データの書込位置を示す位置情報を記憶させた情報テーブルを作成する情報テーブル作成手段と、
    前記作成された情報テーブルの位置情報に基づいて前記メモリから任意の順番でブロックの圧縮データを読み出す読出手段と、
    前記読み出したブロックの圧縮データの復号に先立って該圧縮データに対してリスタートインターバルマーカを付加するマーカ付加手段と、
    前記リスタートインターバルマーカが付加された圧縮データを入力し、該圧縮データを復号する復号手段と、
    前記出力画像のデータ量よりも小さい容量のバッファ手段と、
    前記復号手段によって復号されたn×n画素のブロック内の画像データの出力順を入れ替えて前記バッファ手段に書き込む書込手段と、を備え、
    前記読出手段による前記メモリからのブロックの読出順序及び前記書込手段によるブロック内の画像データの出力順に応じて前記バッファ手段から所定の角度だけ回転させた画像データを出力可能にすることを特徴とする画像処理装置。
  4. 任意サイズの画像データの圧縮データを1コマ分連続的に受信するインターフェース手段と、n×n画素のブロック単位で圧縮データを伸張する伸張手段と、前記伸張手段によって伸張されたn×n画素の画像データを一時記憶する伸張データバッファ手段と、前記伸張データバッファ手段に記憶されたn×n画素の画像データを任意サイズに変換処理し、前記バッファ手段に出力する解像度変換手段と、を更に備え、
    前記圧縮手段は、前記バッファ手段に処理可能な単位の画像データが保持されると、n×n画素のブロック単位で順次圧縮したデータ構造の圧縮データを作成することを特徴とする請求項1乃至3のいずれかに記載の画像処理装置。
    置。
  5. 前記解像度変換手段は、画像サイズを縮小又は拡大する倍率a/b(a,b:自然数)に応じて補間演算に使用する補間係数が記憶された補間テーブルであって、倍率a/bの分母bの画素数を1周期として分子aの数だけ補間係数の組み合わせを有する補間テーブルと、前記1コマ分の画像データの画像サイズと所望の出力画像の画像サイズとに基づいて画像サイズを縮小又は拡大する倍率a/bを算出し、この算出した倍率a/bに基づいて前記補間テーブルに補間係数を記憶させ、又は複数の補間テーブルから前記算出した倍率a/bに対応する補間テーブルを補間演算に使用する補間テーブルとして設定するテーブル設定手段とを含み、前記伸張データバッファ手段に記憶されたn×n画素の画像データを前記補間テーブルの補間係数に基づいて補間演算して解像度変換することを特徴とするとする請求項4に記載の画像処理装置。
  6. 前記解像度変換手段は、前記任意サイズの画像データをM行N列のブロックに分割してなる複数のブロックのi行j列(1≦i≦M,1≦j≦N)のブロックのn×n画素の画像データの水平方向の解像度変換時に、i行j列のブロックのn列の画像データと該n列の画像データに対応する前記補間テーブルの1周期上の位置とをi行j+1列のブロックの画像データの解像度変換まで保持して前記i行j+1列のブロックの画像データの解像度変換に使用し、垂直方向の解像度変換時にi行j列のブロックのn行の画像データと該n行の画像データに対応する前記補間テーブルの1周期上の位置とをi+1行j列のブロックの画像データの解像度変換まで保持して前記i+1行j列のブロックの画像データの解像度変換に使用することを特徴とする請求項5に記載の画像処理装置。
JP2005135318A 2005-05-06 2005-05-06 画像処理装置 Pending JP2006313984A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005135318A JP2006313984A (ja) 2005-05-06 2005-05-06 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005135318A JP2006313984A (ja) 2005-05-06 2005-05-06 画像処理装置

Publications (1)

Publication Number Publication Date
JP2006313984A true JP2006313984A (ja) 2006-11-16

Family

ID=37535300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005135318A Pending JP2006313984A (ja) 2005-05-06 2005-05-06 画像処理装置

Country Status (1)

Country Link
JP (1) JP2006313984A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010232754A (ja) * 2009-03-26 2010-10-14 Sony Corp データマスク装置およびマスクデータ復元システム
CN103778631A (zh) * 2014-01-16 2014-05-07 西安理工大学 基于jpeg文件流的图片分割方法
US8982426B2 (en) 2011-12-07 2015-03-17 Seiko Epson Corporation Image processing apparatus, printing apparatus and image processing method
CN113126858A (zh) * 2019-12-31 2021-07-16 深圳开阳电子股份有限公司 一种图像旋转数据处理装置及显示终端

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010232754A (ja) * 2009-03-26 2010-10-14 Sony Corp データマスク装置およびマスクデータ復元システム
US8982426B2 (en) 2011-12-07 2015-03-17 Seiko Epson Corporation Image processing apparatus, printing apparatus and image processing method
CN103778631A (zh) * 2014-01-16 2014-05-07 西安理工大学 基于jpeg文件流的图片分割方法
CN113126858A (zh) * 2019-12-31 2021-07-16 深圳开阳电子股份有限公司 一种图像旋转数据处理装置及显示终端

Similar Documents

Publication Publication Date Title
US8503827B2 (en) Apparatus and method for decoding image data
US7499592B2 (en) Image decoding apparatus and its control method
US7643694B2 (en) Method and apparatus for processing a compressed image in an order other than the order in which it was compressed
US6442302B2 (en) Rotated read-out of JPEG compressed images
JPH10112796A (ja) Jpeg圧縮を使用して少ないメモリで画像を回転するための装置
JP5383416B2 (ja) 画像処理装置及びその制御方法とプログラム
JP2000295113A (ja) ハフマン符号化データ圧縮装置
JP2007251423A (ja) 画像処理装置及び方法
JP2006313984A (ja) 画像処理装置
US7742199B2 (en) System and method for compressing and rotating image data
US7570822B2 (en) Image processing apparatus, printer and control method of the image processing
US6353682B2 (en) Rotated read-out of JPEG compressed images
US6934417B2 (en) Transcoding scheme for assistance in image transformations
JP2006313985A (ja) 画像処理装置
US7373000B2 (en) Image processing apparatus
JP2006304243A (ja) 画像処理装置、印刷装置、および、画像処理方法
JP2006340338A (ja) 画像処理装置
JP2006313983A (ja) 画像処理装置
JP2006313982A (ja) 画像処理装置及び方法
JP2006313986A (ja) 画像処理装置及び方法
JP5441676B2 (ja) 画像処理装置及びその処理方法
JP6541387B2 (ja) 処理装置及びその制御方法、プログラム
US11314995B2 (en) Image processing apparatus, image processing method, and storage medium
JP2009038740A (ja) 画像符号化装置
US9049404B2 (en) Image processing apparatus and method that perform multiple image processes, and storage medium storing a program thereof, for decompressing a compressed image according to first and second information indicating image processing to be performed

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20070116