(57)【特許請求の範囲】
【請求項１】
入力される静止画像に対応した画像データをアダマール変換することにより、アダマール変換係数を求めるアダマール変換手段と、
前記アダマール変換係数を、量子化係数で構成される量子化テーブルに基いて量子化することにより、ビット列で表される量子化アダマール変換係数を求める量子化手段と、
前記量子化アダマール変換係数のビット列を、ビット配分係数で構成されるビット配分テーブルに基いて上位ビット列と下位ビット列に分離し、前記上位ビット列で表される上位量子化アダマール変換係数と前記下位ビット列で表される下位量子化アダマール変換係数とを求めるビット分離手段と、
前記上位量子化アダマール変換係数を符号化することにより、圧縮画像データを求める符号化手段と、
前記圧縮画像データと、前記下位量子化アダマール変換係数とを記録媒体に記録する記録手段とを備え、
前記量子化係数が２の累乗で表されるとともに、前記量子化テーブルが対称行列によって構成され、
前記ビット配分テーブルが、絶対値の大きい量子化アダマール変換係数ほど絶対値が大きいビット配分係数が対応するように構成されていることを特徴とする画像圧縮装置。
【請求項２】
前記量子化テーブルが、以下に示す量子化係数から構成される８行８列の行列であることを特徴とする請求項１に記載の画像圧縮装置。
【数１】
0003845206.tif 000006
【請求項３】
前記ビット配分テーブルが、前記ビット分離手段により分離される前記下位ビット列のビット数を表すビット配分係数から構成される８行８列の行列であることを特徴とする請求項１に記載の画像圧縮装置。
【請求項４】
前記ビット分離手段が、前記量子化アダマール変換係数のビット列を右シフト演算し、前記右シフト演算により変換される前記量子化アダマール変換係数のビット列を上位ビット列、前記右シフト演算により分離される下位ビットを前記下位ビット列とすることを特徴とする請求項１に記載の画像圧縮装置。
【請求項５】
請求項１に記載された画像圧縮装置によって得られた圧縮画像データを伸張する画像伸張装置であって、
前記記録媒体に記録された前記圧縮画像データを復号化することにより、上位量子化アダマール変換係数を求める復号化手段と、
前記上位量子化アダマール変換係数と前記記録媒体に記録された前記下位量子化アダマール変換係数を、前記ビット配分テーブルを用いてビット合成することにより、前記量子化アダマール変換係数を求めるビット合成手段と、
前記量子化アダマール変換係数を前記量子化テーブルに基いて逆量子化することにより、逆量子化アダマール変換係数を求める逆量子化手段と、
前記逆量子化アダマール変換係数を、前記量子化テーブルに基づいてアダマール変換係数と同値の補正係数に変換する補正係数作成手段と、
前記アダマール変換係数を逆アダマール変換することにより、画像データを求める逆アダマール変換手段とを備え、
前記補正係数作成手段が、アダマール変換係数の特性、前記量子化テーブルの特性、および逆量子化アダマール変換係数間の相関関係とに基づき、前記逆量子化アダマール変換係数を２の累乗で除算したときの剰余データの値を求め、求められた剰余データの値と前記逆量子化アダマール変換係数の値とに基づいて前記逆量子化アダマール変換係数を補正し、前記補正係数を求めることを特徴とする画像伸張装置。
【請求項６】
前記補正係数生成手段が、量子化係数が同じ値の逆量子化アダマール変換係数に対し、該逆量子化アダマール変換係数の剰余データ、対応する量子化係数、および既に得られた他の逆量子化アダマール変換係数の補正係数に基づいて補正係数を作成し、前記逆量子化アダマール変換係数を更新しながら前記補正係数を作成する処理を、量子化係数の小さい値の順で繰り返し行うことを特徴とする請求項５に記載の画像伸張装置。
【請求項７】
前記量子化テーブルにおいて、行列左上隅の量子化係数の値が１であることを特徴とする請求項５に記載の画像伸張装置。
【請求項８】
前記逆量子化アダマール変換係数が、２、４、８、１６、３２、６４の順番に除算され、それぞれの剰余データが求められることを特徴とする請求項６に記載の画像伸張装置。
【請求項９】
前記補正係数作成手段が、前記逆量子化アダマール変換係数の符号、および前記剰余データの数値と符号とに基いて、前記逆量子化アダマール変換係数を予め定められた所定値分だけ増減させることにより、前記補正係数を求めることを特徴とする請求項５に記載の画像伸張装置。
【請求項１０】
前記補正係数作成手段が、前記剰余データが０の場合には、前記逆量子化アダマール変換係数を前記補正係数とすることを特徴とする請求項５に記載の画像伸張装置。
【請求項１１】
前記ビット合成手段が、前記上位量子化アダマール変換係数のビット列を左シフト演算し、前記左シフト演算により空白になる部分に前記下位ビット列を当てはめることで前記量子化アダマール変換係数を求めることを特徴とする請求項５に記載の画像伸張装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、カラー静止画像を圧縮し、伸張する画像圧縮装置および画像伸張装置に関する。
【０００２】
【従来の技術】
カラー静止画像を圧縮することによって通信回路を介した画像の転送を効率的に行うため、ＪＰＥＧ（Joint Photographic Expert Group)方式と呼ばれる画像圧縮方式が標準化されている。ＪＰＥＧ方式の基本方式（ベースラインプロセス）では、まず画像データを直交変換することによって空間周波数成分ごとに分解し、空間周波数成分毎に表されたデータを量子化し、量子化されたデータを符号化（圧縮）する。符号化された画像データは、復号化し、逆量子化し、逆離散コサイン変換することによって伸張され、これにより原画像が復元される。
【０００３】
【発明が解決しようとする課題】
このようなＪＰＥＧ方式によれば、高解像度の画像を効率的に圧縮することができるが、圧縮、伸張の過程で何らかの歪みが発生するため画質劣化が生じ、完全な原画像に復元することができない。無歪みで画像を圧縮、伸張することができる可逆符号化方式の１つとして、アダマール変換方式がある。アダマール変換方式では、対称行列を用いて画像データを直交変換し、量子化せずに符号化するため、画質劣化を生じないように画像を圧縮、 伸張することができる。しかしながら、このような方式では高解像度の画像を効率的に圧縮できない。
【０００４】
本発明は、高解像度の画像を効率的に圧縮し、かつ画質劣化を生じさせないように圧縮、伸張するための画像圧縮装置および画像伸張装置を得ることを目的としている。
【０００５】
【課題を解決するための手段】
本発明の画像圧縮装置は、入力される静止画像に対応した画像データをアダマール変換することにより、アダマール変換係数を求めるアダマール変換手段と、アダマール変換係数を量子化テーブルに基いて量子化することにより、ビット列で表される量子化アダマール変換係数を求める量子化手段と、量子化アダマール変換係数のビット列をビット配分テーブルに基いて上位ビット列と下位ビット列に分離し、上位ビット列で表される上位量子化アダマール変換係数と下位ビット列で表される下位量子化アダマール変換係数とを求めるビット分離手段と、上位量子化アダマール変換係数を符号化することにより、圧縮画像データを求める符号化手段とを備えたことを特徴とする。
【０００６】
量子化テーブルは、２の累乗である量子化係数から構成される８行８列の行列であることが望ましい。
【０００７】
ビット配分テーブルは、ビット分離手段により分離される下位ビット列のビット数を表すビット配分係数から構成される８行８列の行列であることが望ましい。
【０００８】
ビット分離手段は、量子化アダマール変換係数のビット列を右シフト演算し、右シフト演算により変換される量子化アダマール変換係数のビット列を上位ビット列、右シフト演算により分離される下位ビットを下位ビット列とすることが望ましい。
【０００９】
本発明の画像伸張装置は、圧縮画像データを復号化することにより、上位量子化アダマール変換係数を求める復号化手段と、上位量子化アダマール変換係数と下位量子化アダマール変換係数をビット合成することにより、量子化アダマール変換係数を求めるビット合成手段と、量子化アダマール変換係数を量子化テーブルに基いて逆量子化することにより、逆量子化アダマール変換係数を求める逆量子化手段と、逆量子化アダマール変換係数をアダマール変換係数と同値の補正係数に変換する補正係数作成手段と、アダマール変換係数を逆アダマール変換することにより、画像データを求める逆アダマール変換手段とを備えたことを特徴とする。
【００１０】
補正係数作成手段において、補正係数が逆量子化アダマール変換係数を２の累乗で除算したときの剰余データによって求められることが望ましい。
【００１１】
逆量子化アダマール変換係数が、２、４、８、１６、３２、６４の順番に除算され、それぞれの剰余データが求められることが望ましい。
【００１２】
補正係数作成手段において、逆量子化アダマール変換係数の符号、および剰余データの数値と符号とに基いて、逆量子化アダマール変換係数を予め定められた所定値分だけ増減させることにより、補正係数が求められることが望ましい。
【００１３】
補正係数作成手段において、剰余データが０の場合には、逆量子化アダマール変換係数を補正係数とすることが望ましい。
【００１４】
ビット合成手段が、上位量子化アダマール変換係数のビット列を左シフト演算し、左シフト演算により空白になる部分に下位ビット列を当てはめることで量子化アダマール変換係数を求めることが望ましい。
【００１５】
【発明の実施の形態】
以下、 本発明の実施形態である画像圧縮装置および画像伸張装置について図面を参照して説明する。
図１は、本発明の一実施形態例である画像圧縮装置のブロック図である。
【００１６】
被写体像( 静止画像）１６は、レンズ１７を介して固体撮像素子１８の受光面上に結像される。固体撮像素子１８の受光面には光電変換素子が配設され、光電変換素子の上面にはレッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の各色フィルタ要素からなるカラーフィルタが設けられている。各光電変換素子は１つの画素データに対応しており、被写体像１６は各光電変換素子によって所定の色に対応した電気的な画像信号に変換される。そして画像信号は、Ａ／Ｄ変換器( 図示せず）においてアナログ信号からデジタル信号に変換される。
【００１７】
デジタル化された画像信号は、信号処理回路（図示せず）において輝度データＹ、色差データＣｂ、Ｃｒに変換されて画像メモリ１５に画像データとして記録される。画像メモリ１５には、輝度データＹおよび色差データＣｂ、Ｃｒがそれぞれ独立した領域に格納されており、各メモリ領域は１画像分の記憶容量を有している。輝度データＹおよび色差データＣｂ、Ｃｒは、画像圧縮装置１０に対する入力データである。
【００１８】
輝度データＹおよび色差データＣｂ、Ｃｒは、１画面において複数のブロックに分割され、ブロック単位で処理される。各ブロックは、８×８個の画素データからなる。
【００１９】
輝度データＹ及び色差データＣｂ，Ｃｒは、画像メモリ１５から読み出され、画像圧縮装置１０に送られる。画像圧縮装置１０は、アダマール変換部１１、量子化部１２、ビット分離部１３、ハフマン符号化部１４から構成されている。輝度データＹおよび色差データＣｂ，Ｃｒは、画像圧縮装置１０内においてそれぞれ別々に処理される。
【００２０】
輝度データＹおよび色差データＣｂ，Ｃｒは、アダマール変換部１１においてアダマール変換係数に変換される。アダマール変換は直交変換の１つであり、各ブロックにおいて画像データを空間周波数成分毎に分解する。ここでは、変換行列として、ウォルシュ−アダマール行列（Ｗ−Ｈ行列）を用いる。
【００２１】
輝度データＹおよび色差データＣｂ，Ｃｒのアダマール変換係数は、量子化部１２において量子化テーブルＱに基き量子化される。この量子化は線形量子化であり、８×８＝６４個の量子化係数から構成される量子化テーブルＱを用いて行われる。すなわち、各アダマール変換係数がそれぞれ対応する量子化係数で除算され、余りが丸められる。量子化テーブルＱとして、輝度データＹ用の量子化テーブルＱy 、色差データＣｂ，Ｃｒ用の量子化テーブルＱc がそれぞれ設けられている。
【００２２】
輝度データＹおよび色差データＣｂ，Ｃｒは、画像圧縮装置１０内では２進数のビット列で表され、輝度データＹおよび色差データＣｂ，Ｃｒの量子化アダマール変換係数も２進数のビット列で表される。量子化アダマール変換係数のビット列は、ビット分離部１３においてビット配分テーブルＢＴに基き上位量子化アダマール変換係数のビット列（上位ビット列）と下位量子化アダマール変換係数のビット列（下位ビット列）に分離される。ビット配分テーブルＢＴは、ビット配分係数から構成された８×８のマトリクスであり、ビット配分係数は、分離されるビット数を示している。ビット分離により得られた上位量子化アダマール変換係数は、ハフマン符号化部１４に送られるが、下位量子化アダマール変換係数は符号化されずにそのまま記録媒体Ｍの下位記録領域Ｍ３に記録される。
【００２３】
輝度データＹおよび色差データＣｂ，Ｃｒの上位量子化アダマール変換係数は、ハフマン符号化部１４において符号化され、圧縮画像データが求められる。符号化に関しては、ＪＰＥＧで適用されているハフマン符号化方式に準拠する。ハフマン符号化により得られた圧縮画像データは記録媒体Ｍの圧縮画像データ記録領域Ｍ２に記録される。また輝度データＹ用の量子化テーブルＱy と色差データ用の量子化テーブルＱc も、記録媒体Ｍの記録領域Ｍ１に記録される。
【００２４】
図２、図３、図４を用いて１つの画素ブロックに対する圧縮処理を説明する。ここでは、輝度データＹの画像データを対象とする。
【００２５】
図２では、画素ブロックＰと、アダマール変換係数行列Ａと、量子化テーブルＱと、量子化アダマール変換係数行列Ｂとがそれぞれ８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ画素値Ｐyx、アダマール変換係数Ａvu、量子化係数Ｑvu，量子化アダマール変換係数Ｂvuと表される。
【００２６】
画素値Ｐyxにおいて、添字ｙは縦方向の位置を示し、上から０，１，２，・・・７である。また添字ｘは横方向の位置を示し、左から０，１，２，・・・７である。例えば、ｙ＝１、ｘ＝１の場合、画素値Ｐ11＝１６２である。
【００２７】
アダマール変換係数Ａvu、量子化係数Ｑvu、量子化アダマール変換係数Ｂvuにおける添字ｖは、添字ｙと同じように縦方向の位置を示し、上から０，１，２，・・・７である。また添字ｕは、添字ｘと同じように横方向の位置を示し、左から０，１，２，・・・７である。例えば、ｖ＝１、ｕ＝１の場合、アダマール変換係数Ａ11＝２５２である。
【００２８】
画素値Ｐyxはアダマール変換され、アダマール変換係数Ａvuに変換される。アダマール変換は次の（１）式によって表される。
【００２９】
【数２】
0003845206.tif 000002
【００３０】
（１）式においてＨuxおよびＨvyは（１）式の下に示されたウォルシュ−アダマール行列Ｈの要素であり、｛１／（２・２1/2 ）｝  または｛−１／（２・２1/2 ）｝のいずれかの値となる。Ｈuxにおいて添字ｕ，ｘはそれぞれ行列Ｈの縦、横方向を表し、Ｈvyにおける添字ｖ、ｙも同様に行列Ｈの縦、横方向を表す。
【００３１】
アダマール変換係数行列Ａのなかで位置（０，０）にあるアダマール変換係数Ａ00はＤＣ成分であり、残りの位置にあるアダマール変換係数ＡvuはＡＣ成分である。ＤＣ成分は画素ブロックＰの画素値Ｐyxの合計を表し、空間周波数は０である。一方ＡＣ成分は、アダマール変換係数Ａ01ないしＡ10からアダマール変換係数Ａ77の方向に向かって、より高い空間周波数成分の値が画素ブロックＰの中にどれほどあるかを表す。このように画素ブロックＰは、アダマール変換によって空間周波数成分毎に分解される。
【００３２】
各アダマール変換係数Ａvuは量子化され、量子化係数Ｑvuによって量子化アダマール変換係数Ｂvuに変換される。すなわち、各アダマール変換係数Ａvuがそれぞれ対応する量子化係数Ｑvuで割り算され、余りが丸められる（四捨五入される）。例えば、アダマール変換係数Ａ11（＝２５２）が量子化係数Ｑ11（＝４）で除算され、余りが丸められて量子化アダマール変換係数Ｂ11（＝６３）が求められる。
【００３３】
量子化において用いられる量子化テーブルＱは、２m （ｍ＝０，１，２，・・・）と表される量子化係数Ｑvuから構成されている。また、量子化テーブルＱは対称行列であり、
Ｑvu= Ｑuv（ｖ≠ｕ）
となる。
【００３４】
図３では、量子化アダマール変換係数行列Ｂと、ビット配分テーブルＢＴと、上位量子化アダマール変換係数行列ＢＨと、下位量子化アダマール変換係数行列ＢＬとがそれぞれ８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ量子化アダマール変換係数Ｂvu、ビット配分係数ＢＴvu、上位アダマール変換係数ＢＨvu、下位量子化アダマール変換係数ＢＬvuと表される。
【００３５】
量子化アダマール変換係数Ｂvuのビット列は、ビット分離により上位ビット列と下位ビット列に分離され、上位ビット列で表される上位量子化アダマール変換係数ＢＨvuと下位ビット列で表される下位量子化アダマール変換係数ＢＬvuが求められる。このときビット分離されるビット数、すなわち下位ビット列のビット数は、対応するビット配分係数ＢＴvuの値に従う。
【００３６】
例えば、量子化アダマール変換係数Ｂ36（＝４）のビット列は、対応するビット配分係数ＢＴ36（＝２）に基いてビット分離され、上位ビット列で表される上位量子化アダマール変換係数ＢＨ36（＝１）と２ビットの下位ビット列で表される下位量子化アダマール変換係数ＢＬ36（＝０）が求められる。ビット分離に関しては後述する。
【００３７】
図４には、６つのビット配分テーブルＢＴ1 〜ＢＴ6 が示されており、ここではビット配分テーブルＢＴ6 が用いられている。ビット配分テーブルＢＴは、絶対値が大きい量子化アダマール変換係数Ｂvuには大きい値のビット配分係数ＢＴvu、絶対値が小さい量子化アダマール変換係数Ｂvuには小さい値のビット配分係数ＢＴvuが対応するように構成されている。このため、絶対値が大きい量子化アダマール変換係数Ｂvuに対するビット分離の場合でも、分離される下位ビット列のビット数が多いことから絶対値が小さい上位量子化アダマール変換係数ＢＨvuが求められる。なおビット分離を実行するとき、１画面に１つのビット配分テーブルＢＴを適用してもよいし、各ブロック毎にそれぞれ違ったビット配分テーブルＢＴを適用してもよい。
【００３８】
このように量子化アダマール変換係数Ｂvuのビット列は、対応するビット配分係数ＢＴvuの値が下位ビット列のビット数となるようにビット分離され、上位ビット列で表される上位量子化アダマール変換係数ＢＨvuと下位ビット列で表される下位量子化アダマール変換係数ＢＬvuが求められる。
【００３９】
上位量子化アダマール変換係数行列ＢＨvuは、ジグザグスキャンされ、ハフマン符号化される。そのとき、ＡＣ成分、ＤＣ成分の上位量子化アダマール変換係数ＢＨvuはそれぞれ別々に符号化される。まずＤＣ成分の上位量子化アダマール変換係数ＢＨvuがハフマン符号化され、次に上位量子化アダマール変換係数行列ＢＨが従来公知のようにジグザグスキャンされて２次元のマトリクスから１列のデータに変換された後にＡＣ成分の上位量子化アダマール変換係数ＢＨvuがハフマン符号化される。一方、 下位量子化アダマール変換係数ＢＬvuハフマン符号化されない。
【００４０】
上位量子化アダマール変換係数行列ＢＨをジグザグスキャンして１列に並べ替えたとき、ゼロの出現頻度が量子化アダマール変換係数行列Ｂをジグザグスキャンするときに比べて増える。そのため、ゼロラン長（連続する０の長さ）が長くなり、符号化するときに必要なビット数が少なくなる。また、０以外の上位量子化アダマール変換係数ＢＨvuの絶対値は量子化アダマール変換係数Ｂvuの絶対値よりも小さいため、０以外の上位量子化アダマール変換係数ＢＨvuを符号化するときに必要なビット数は、量子化アダマール変換係数Ｂvuの場合に比べて少ない。
【００４１】
さらにビット配分テーブルＢＴに基いたビット分離により、量子化アダマール変換係数Ｂvuの絶対値の大きさに対応して量子化アダマール変換係数Ｂvuのビット列が適切な配分で上位ビット列と下位ビット列に分離されるため、すべて同じビット数でビット分離する場合に比べ、記録媒体に記録される下位ビット列のビット数と圧縮画像データに必要なビット数が少なくて済む。このようなビット配分テーブルＢＴに基いたビット分離の実行により、画像を効率的に圧縮することができる。
【００４２】
図３、図５を用いて、２ビットのビット分離を説明する。そのため、量子化アダマール変換係数Ｂvuをビット列で表す。アダマール変換係数Ａvuは通常１４ビット割り当てられるが、ここでは量子化アダマール変換係数Ｂvuのビット列は１６ビットとし、１６ビットのうち１４ビットが使用されて量子化アダマール変換係数Ｂvuの２進数が表されることにする。正負の値をとるＡＣ成分の量子化アダマール変換係数Ｂvuの場合、１６ビットのうち最上位の１ビットが符号ビットとして使用され、右端からの１４ビットを使用して量子化アダマール変換係数Ｂvuの２進数が表される。
【００４３】
図５では、量子化アダマール変換係数Ｂ36（＝４）に対するビット分離を示している。
【００４４】
量子化アダマール変換係数Ｂ36（＝４）は、２進法で表すと「０００００００００００１００」であり、符号ビットＦは正を表す「０」である。１６ビットのビット列Ｃ０において、２進数「０００００００００００１００」は右端からの１４ビットを使って表される。「０」である符号ビットＦは、ビット列Ｃ０の左端にある最上位ビットに位置する。なお量子化アダマール変換係数Ｂvuが正の値の場合、使用されていない１ビットＪ０は「０」である。
【００４５】
ビット分離の実行により、量子化アダマール変換係数Ｂ36（＝４）は右シフト演算される。 右シフト演算とは、各ビットを指定されたビット数だけ右に桁移動させる演算である。２ビットの右シフト演算が実行されると、各ビットが右に２つずつ移動させられ、「００」である右端の下位ビットＫは分離される。そして右シフト演算によって空白になった左端の２ビットには、２つの符号ビットＦが当てはめられる。
【００４６】
このようにして、ビット列Ｃ０は右シフト演算により１２ビットを使用して２進数「０００００００００００１」が表されるビット列Ｃ１に変換される。このビット列Ｃ１が上位ビット列であり、２進数「０００００００００００１」を１０進法で表した値が上位量子化アダマール変換係数ＢＨ36の値となる。すなわち、上位量子化アダマール変換係数ＢＨ36の値は１である。
【００４７】
一方、右シフト演算によって分離された下位ビットＫが下位ビット列であり、下位ビットＫの値が下位量子化アダマール変換係数ＢＬ36の値となる。２進数「００」は１０進法で０であるから、下位量子化アダマール変換係数ＢＬ36の値は０である。
【００４８】
このように量子化アダマール変換係数Ｂ36（＝４）のビット列Ｃ０は、ビット分離によって上位ビット列であるビット列Ｃ１と下位ビット列である下位ビットＫに分離され、上位量子化アダマール変換係数ＢＨ36（＝１）と下位量子化アダマール変換係数ＢＬ36（＝０）が求められる。
【００４９】
負である量子化アダマール変換係数Ｂvuの場合でも、同じようにビット分離される。ただし、符号ビットＦは負を示す「１」であり、使用されていない１ビットＪ０は「１」である。
【００５０】
なお、ｎビットのビット分離を実行する場合、量子化アダマール変換係数Ｂvuに対してｎビットの右シフト演算が実行される。
【００５１】
図６は、ｎビットのビット分離の手順を示したフローチャートである。図３、図６を用いてビット分離の手順を説明する。
【００５２】
ステップ２０１では、縦方向の位置を表す添字ｖが０に設定される。ステップ２０２では、横方向の位置を表す添字ｕが０と設定され、行列の横方向を表す行のなかで最も左側の量子化アダマール変換係数Ｂvuがビット分離の対象とされる。量子化アダマール変換係数Ｂ00が最初のビット分離の対象である。
【００５３】
ステップ２０３では、量子化アダマール変換係数Ｂvuに対してｎビットのビット分離をするためにｎビットの右シフト演算が実行され、上位量子化アダマール変換係数ＢＨvuが求められる。量子化アダマール変換係数Ｂvuに対応するビット配分係数ＢＴvuの値がｎである。
【００５４】
例えば２ビットのビット分離の場合、量子化アダマール変換係数Ｂ36（＝４）がビット分離されることにより上位量子化アダマール変換係数ＢＨ36（＝１）が求められる。また３ビットのビット分離の場合、量子化アダマール変換係数Ｂ70（＝−１５）がビット分離されることにより上位量子化アダマール変換係数ＢＨ70（＝−２）が求められる。
【００５５】
ステップ２０４では、下位量子化アダマール変換係数ＢＬvuが求められる。下位量子化アダマール変換係数ＢＬvuを求める算術式は、次の（２）式のようになる。
【００５６】
ＢＬvu＝Ｂvu−（ＢＨvu×２n ) ・・・・・・・・（２）
【００５７】
例えば２ビットのビット分離の場合、量子化アダマール変換係数Ｂ36（＝４）に対して下位量子化アダマール変換係数ＤＬ36の値は、上位量子化アダマール変換係数ＢＨ36の値が１であることから
ＤＬ36＝  ４−（１×２2)＝０
となる。
【００５８】
例えば３ビットのビット分離の場合、量子化アダマール変換係数Ｂ70（＝−１５）に対して下位量子化アダマール変換係数ＢＬ70の値は、上位量子化アダマール変換係数ＢＨ70の値が−２であることから
ＢＬ70＝−１５−（−２×２3 ）＝１
となる。
【００５９】
ステップ２０５では、添字ｕに１が加算される。これによりビット分離される対象の量子化アダマール変換係数Ｂvuが１つ右隣の量子化アダマール変換係数Ｂvuに移される。
【００６０】
ステップ２０６では、添字ｕが８であるか否かが判定される。すなわち、横方向の１つの行に関してすべての量子化アダマール変換係数Ｂvuがビット分離されたか否かが判定される。添字ｕが８であると判定されるとステップ２０７に移る。添字ｕが８でないと判定されるとステップ２０３に戻る。
【００６１】
ステップ２０７では、添字ｖに１が加算される。すなわち、ビット分離される量子化アダマール変換係数Ｂvuが、１つ下の行の量子化アダマール変換係数Ｂvuに移される。
【００６２】
ステップ２０８では、添字ｖが８であるか否かが判定される。すなわち、全ての量子化アダマール変換係数Ｂvuがビット分離されたか否かが判定される。添字ｖが８であると判定されると、量子化アダマール変換係数行列Ｂに対するビット分離は終了する。添字ｖが８でないと判定されると、ステップ２０２に戻る。
【００６３】
以上のように本実施形態により画像を圧縮処理すれば、符号化に必要なビット数、すなわち情報量が少なくて済むため、画像を効率的に圧縮することができる。
【００６４】
図７は、本発明の一実施形態である画像伸張装置のブロック図である。
【００６５】
輝度データＹおよび色差データＣｂ，Ｃｒの圧縮画像データは、記録媒体Ｍの圧縮画像データ記録領域Ｍ２から読み出され、画像伸張装置２０に送られる。画像伸張装置２０は、ハフマン復号化部２１、ビット合成部２２、逆量子化部２３、補正係数作成部２４、逆アダマール変換部２５から構成されている。
【００６６】
輝度データＹおよび色差データＣｂ，Ｃｒの圧縮画像データはハフマン復号化部２１において復号化され、上位量子化アダマール変換係数に変換される。この復号化は、ハフマン符号化とは逆の作用である。
【００６７】
輝度データＹおよび色差データＣｂ、Ｃｒの上位量子化アダマール変換係数と、記録媒体Ｍの下位記録領域Ｍ３から読み出された下位量子化アダマール変換係数が、ビット合成部２２においてビット配分テーブルＢＴに基いてビット合成され、量子化アダマール変換係数が復元される。
【００６８】
輝度データＹおよび色差データＣｂ，Ｃｒの量子化アダマール変換係数は、逆量子化部２３において量子化テーブルＱに基いて逆量子化され、逆量子化アダマール変換係数が求められる。すなわち、量子化アダマール変換係数に量子化係数が乗じられ、逆量子化アダマール変換係数が求められる。
【００６９】
輝度データＹおよび色差データＣｂ，Ｃｒの逆量子化アダマール変換係数は、補正係数作成部２４において、補正係数に変換される。補正係数はアダマール変換係数と同値であり、量子化、逆量子化において生じた量子化誤差が取り除かれる。
【００７０】
補正係数、すなわちアダマール変換係数は、逆アダマール変換部２５において逆アダマール変換され、画像データが復元される。輝度データＹおよび色差データＣｂ，Ｃｒの画像データは、画像メモリ１５に記録される。
【００７１】
図８、図９を用いて圧縮画像データに対する伸張処理を説明する。ここでは、輝度データＹの圧縮画像データを対象とする。
【００７２】
図８では、上位量子化アダマール変換係数行列ＢＨと、下位量子化アダマール変換係数行列ＢＬと、ビット配分テーブルＢＴと、量子化アダマール変換係数行列Ｂとが８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ上位アダマール変換係数ＢＨvu、下位アダマール変換係数ＢＬvu、ビット配分係数ＢＴvu、量子化アダマール変換係数Ｂvuと表される。
【００７３】
圧縮画像データは、ハフマンテーブルを用いて復号化され、ジグザグスキャンの逆であるマトリクス化されることにより、上位量子化アダマール変換係数行列ＢＨが求められる。
【００７４】
上位量子化アダマール変換係数ＢＨvuと下位量子化アダマール変換係数ＢＬvuは、ビット配分係数ＢＴvuに基いてビット合成され、量子化アダマール変換係数Ｂvuが復元される。ビット合成に関しては、後述する。
【００７５】
例えば、上位量子化アダマール変換係数ＢＨ36（＝１）と下位量子化アダマール変換係数ＢＬ36（＝０）がビット配分係数ＢＴ36（＝２）に基いてビット合成され、量子化アダマール変換係数Ｂ36（＝４）が復元される。
【００７６】
図９には、量子化アダマール変換係数行列Ｂと、量子化テーブルＱと、逆量子化アダマール変換係数行列Ａ’と、補正係数行列Ａ”（アダマール変換係数行列Ａ）と、画素ブロックＰとが８×８のマトリクスで例示されている。各マトリクスの要素は、それぞれ量子化アダマール変換係数Ｂvu、量子化係数Ｑvu、逆量子化アダマール変換係数Ａ’vu、補正係数Ａ”vu，画素値Ｐyxと表される。
【００７７】
量子化アダマール変換係数Ｂvuは、量子化テーブルＱを用いて逆量子化され、逆量子化アダマール変換係数Ａ’が求められる。すなわち、量子化アダマール変換係数Ｂvuに対して対応する量子化係数Ｑvuが乗じられ、逆量子化アダマール変換係数Ａ’vuが求められる。
【００７８】
圧縮処理における量子化では、アダマール変換係数Ａvuに対する除算の余りを四捨五入する。そのため、逆量子化により得られる逆アダマール変換係数Ａ’vuには量子化（丸め）誤差が生じる。そのため、逆量子化アダマール変換係数Ａ’vuとアダマール変換係数Ａvuは、必ずしも同値ではない。例えば、図２で示されたアダマール変換係数Ａ06（＝−４２）に対応する逆アダマール変換係数Ａ’06（＝−４４）には、量子化誤差が生じている。
【００７９】
そのため本実施形態では、逆量子化アダマール変換係数Ａ’vuが量子化テーブルＱに基いて量子化誤差が修正され、補正係数Ａ”vuが作成される。この補正係数Ａ”vuは、アダマール変換係数Ａvuと同値である。すなわち、補正係数作成処理により、量子化誤差のある逆量子化アダマール変換係数Ａ’vuから量子化誤差のない補正係数Ａ”vuに変換される。補正係数作成処理に関しては、後述する。
【００８０】
補正係数Ａ”vuは逆アダマール変換され、画素値Ｐyxが復元される。逆アダマール変換は、次の（３）式で表される。
【００８１】
【数３】
0003845206.tif 000003
【００８２】
（３）式においてＨuxおよびＨvyは、（３）式の下に示されたウォルシュ−アダマール行列Ｈの要素である。この逆アダマール変換は、アダマール変換の逆の作用である。
【００８３】
図８、図１０を用いて、２ビットのビット合成について説明する。そのため、上位量子化アダマール変換係数ＢＨvuをビット列で表す。
【００８４】
図１０では、上位量子化アダマール変換係数ＢＨ36（＝１）と下位量子化アダマール変換係数ＢＬ36（＝０）に対するビット合成を示している。
【００８５】
上位量子化アダマール変換係数ＢＨ36（＝１）は、図５で示したように１６ビットのビット列Ｃ１で表される。下位量子化アダマール変換係数ＢＬ36（＝０）は２進数で「０」であり、２ビットの下位ビット列Ｋ１で表される。
【００８６】
ビット合成の実行により、上位量子化アダマール変換係数ＢＨ36（＝１）は左シフト演算される。左シフト演算とは、指定されたビット数だけビット列の各ビットを左に桁移動させる演算である。２ビットの左シフト演算が実行されると、ビット列Ｃ１の各ビットが左に２つずつ移動させられ、左端にある２つの「０」である符号ビットＦが分離される。そして左シフト演算によって空白になった右端の下位ビットには、「００」である下位ビット列Ｋ１が埋められる。また左端から３番目の「０」である１ビットＦ０が、左端の最上位ビットに移動され、符号ビットＦとなる。
【００８７】
左シフト演算により、ビット列Ｃ１は１４ビットを使用して２進数「０００００００００００１００」が表されるビット列Ｃ０に変換される。そして、２進数「０００００００００００１００」を１０進法で表した値が量子化アダマール変換係数Ｂ36となる。すなわち、量子化アダマール変換係数Ｂ36の値は４である。
【００８８】
このように、上位量子化アダマール変換係数ＢＨ36（＝１）と下位量子化アダマール変換係数ＢＬ36（＝０）がビット合成されることにより、量子化アダマール変換係数Ｂ36（＝４）が復元される。
【００８９】
図１１は、ｎビットのビット合成の手順を示したフローチャートである。図８、図１１を用いてビット合成の手順のフローチャート説明する。
【００９０】
ステップ３０１では、縦方向の位置を表すｖが０に設定される。ステップ３０２では、横方向の位置を表す添字ｕが０に設定され、行列の横方向を表す行の中で最も左側の上位量子化アダマール変換係数ＢＨvuと下位量子化アダマール変換係数ＢＬvuがビット合成の対象とされる。上位量子化アダマール変換係数ＢＨ00と下位量子化アダマール変換係数ＢＬ00が最初のビット合成の対象である。
【００９１】
ステップ３０３では、上位量子化アダマール変換係数ＢＨvuに対してｎビットの左シフト演算が実行され、量子化アダマール変換係数Ｂvuが求められる。量子化アダマール変換係数Ｂvuを求める算術式は、（４）式のようになる。
【００９２】
Ｂvu＝ＢＨvu×２n ＋ＢＬvu・・・・・・（４）
【００９３】
例えば、２ビットのビット合成の場合、上位量子化アダマール変換係数ＤＨ36（＝１）と下位量子化アダマール変換係数ＢＬ36（＝０）に対して量子化アダマール変換係数Ｂ36の値は、
Ｂ36＝１×２2 ＋０＝４
となる。
【００９４】
例えば、３ビットのビット合成の場合、上位量子化アダマール変換係数ＢＨ70（＝−２）と下位量子化アダマール変換係数ＢＬ70（＝１）に対して量子化アダマール変換係数Ｂ70の値は、
Ｂ70＝−２×２3 ＋１＝−１５
となる。
【００９５】
ステップ３０４では、添字ｕに１が加算される。これによりビット合成される対象の上位量子化アダマール変換係数ＢＨvuと下位量子化アダマール変換係数ＢＬvuが１つ右隣の上位量子化アダマール変換係数ＢＨvuと下位量子化アダマール変換係数ＢＬvuに移される。
【００９６】
ステップ３０５では、添字ｕが８であるか否かが判定される。すなわち、横方向の１つの行に関して全ての上位量子化アダマール変換係数ＢＨvuと下位量子化アダマール変換係数ＢＬvuがビット合成されたか否かが判定される。添字ｕが８であると判定されるとステップ３０６に移る。添字ｕが８でないと判定されるとステップ３０３に戻る。
【００９７】
ステップ３０６では、添字ｖに１が加算される。すなわち、ビット合成される対象の上位量子化アダマール変換係数ＢＨvuと下位量子化アダマール変換係数ＢＬvuが、１つ下の行の上位量子化アダマール変換係数ＢＨvuと下位量子化アダマール変換係数ＢＬvuに移される。
【００９８】
ステップ３０７では、添字ｖが８であるか否かが判定される。すなわち、全ての上位量子化アダマール変換係数ＢＨvuと下位量子化アダマール変換係数ＢＬvuがビット合成された否かが判定される。添字ｖが８であると判定されると、８×８の上位量子化アダマール変換係数行列ＢＨと下位量子化アダマール変換係数行列ＢＬに対するビット合成は終了する。添字ｖが８でないと判定されると、ステップ３０２に戻る。
【００９９】
図１２〜図２３を用いて、補正係数作成処理について説明する。
【０１００】
図１２、図１３は補正係数作成処理を示すフローチャートである。図１４〜図１７は補正係数作成処理の一部を詳細に示すフローチャートである。即ち、図１４は図１２に示すステップ１１０のサブルーチンである。同様に、図１５は図１２に示すステップ１２０のサブルーチン、図１６は図１２に示すステップ１３０のサブルーチン、図１７は図１２に示すステップ１４０のサブルーチンである。
【０１０１】
アダマール変換では、（１）式に示す行列Ｈの各要素は｛１／（２・２1/2 ）｝または｛−１／（２・２1/2 ）｝のみであるが、（１）式の結果としてアダマール変換係数Ａvuは画素値Ｐyxの加減算で表すことができる。補正係数作成処理では、このアダマール変換の特性と量子化係数Ｑvuが２の累乗で表されることを利用して、逆量子化アダマール変換係数Ａ’vuを２の累乗で割ったときの余り即ち剰余と、逆量子化アダマール変換係数Ａ’vuの各係数の相関関係とから、逆量子化アダマール変換係数Ａ’vuを補正して補正係数Ａ”vuを作成する。なお、本実施形態で行なわれる剰余計算において、剰余の符号は割られる数、即ち逆量子化アダマール変換係数Ａ’vuと同符号で示される。例えば−１１８の４の剰余は−２である。
【０１０２】
補正係数作成処理がスタートし、まずステップ１０２が実行される。ステップ１０２では、逆量子化アダマール変換係数Ａ’00が補正係数Ａ”00に定められる。アダマール変換係数Ａ00は、量子化係数Ｑ00、即ち１で除算・乗算されるので、逆量子化アダマール変換係数Ａ’00と常に同じ値であり、アダマール変換係数Ａ00と逆量子化アダマール変換係数Ａ’00との誤差は生じない。従って逆量子化アダマール変換係数Ａ’00が補正係数Ａ”00に定められる。例えば図９に示すように逆量子化アダマール変換係数Ａ’00が１０２８０であれば、補正係数Ａ”00は１０２８０に定められる。
【０１０３】
ステップ１０２が終了すると、ステップ１１０の第１の係数更新処理が実行される。ステップ１１０では、補正係数Ａ”00を２で割ったときの余り、即ち２の剰余Ｍ2 00により、残り６３個の逆量子化アダマール変換係数Ａ’vu（Ａ00以外）が更新される。
【０１０４】
図１４は第１の係数更新処理（ステップ１１０）を詳細に示すフローチャートである。図１４には示さないが、第１の係数更新処理は６３個の逆量子化アダマール変換係数Ａ’vu（Ａ00以外）について繰り返し行なわれる。
【０１０５】
図１８（ａ）は一例として図２に示すアダマール変換係数Ａvuの２の剰余Ｍ2 vu（以下、剰余Ｍ2 vuという）を示す図である。なお、図１８（ａ）の網掛け部分はステップ１０２において求められた既知の剰余Ｍ2 vuを示し、丸付き数字はこの既知の剰余Ｍ2 vuから導出される補正係数Ａ”vuに対応した剰余Ｍ2 vuを示す。８×８のマトリクスにおける丸付き数字の位置は、値が２である量子化係数Ｑvuの位置と対応している。図１８（ａ）に示される既知の剰余Ｍ2 vuから、対応した位置の補正係数Ａ”vuがそれぞれ導出されるが、導出する処理（ステップ１２０）は後で詳述する。図１８（ｂ）は補正係数Ａ”vuを示す図であり、網掛け部分の数字はステップ１１０の実行前に求められた補正係数Ａ”vuを、網掛けされていない数字はステップ１１０およびステップ１２０の実行により求められる補正係数Ａ”vuを示す。
【０１０６】
アダマール変換係数Ａvuの任意の２つを加算した値は常に偶数である、即ちアダマール変換係数Ａvuは全て偶数か、全て奇数かのどちらかである。また逆量子化アダマール変換係数Ａ’vu（Ａ00以外）は、２の累乗で乗算されたものであり、必ず偶数である。従って、補正係数Ａ”00が偶数であれば誤差はないが、補正係数Ａ”00が奇数の場合、逆量子化アダマール変換係数Ａ’vu（Ａ00以外）は量子化・逆量子化による誤差を有している。
【０１０７】
まず、ステップ１１２において補正係数Ａ”vuの２の剰余Ｍ2 vuが（５）式により求められる。
【０１０８】
Ｍ2 00＝Ａ”00  mod ２                  ・・・（５）
｜Ｍ2 vu｜＝｜Ｍ2 00｜
【０１０９】
ステップ１１４では剰余Ｍ2 00の絶対値が１であるか、即ち補正係数Ａ”00が奇数か否かが判定される。剰余Ｍ2 00の絶対値が１であれば、他の剰余Ｍ2 vuの絶対値も１に決定され、ステップ１１６が実行される。ステップ１１６では、逆量子化アダマール変換係数Ａ’vu（Ａ00以外）に１が加算されることにより逆量子化アダマール変換係数Ａ’vuが更新され、第１の係数更新処理が終了する。剰余Ｍ2 00の絶対値が１でない、即ち剰余Ｍ2 00が０であれば、他の剰余Ｍ2 vuも０に決定され、逆量子化アダマール変換係数Ａ’vu（Ａ00以外）の数値はそのままで第１の係数更新処理が終了し、その後ステップ１２０が実行される。
【０１１０】
例えば、図９に示すように補正係数Ａ”00が１０２８０ならば、図１８（ａ）に示すように剰余Ｍ2 vuは全て０に決定され、逆量子化アダマール変換係数Ａ’vuの数値は変わらない。図示しないが、補正係数Ａ”00が例えば１０３８９といった奇数であれば、剰余Ｍ2 vuの絶対値は全て１に決定され、偶数である他の逆量子化アダマール変換係数Ａ’vuは１が加算され、全て奇数に変更される。
【０１１１】
ステップ１１０が終了すると、ステップ１２０の第１の補正係数作成処理が実行される。ステップ１２０では、ステップ１１０で更新された逆量子化アダマール変換係数Ａ’vuと剰余Ｍ2 vuに基づいて、図１８（ｂ）に示されるように６個の補正係数Ａ”01、Ａ”02、Ａ”04、Ａ”10、Ａ”20、Ａ”40が作成される。
【０１１２】
６個の逆量子化アダマール変換係数Ａ’01、Ａ’02、Ａ’04、Ａ’10、Ａ’20、Ａ’40は、それぞれアダマール変換係数Ａ01、Ａ02、Ａ04、Ａ10、Ａ20、Ａ40を、対応した量子化係数Ｑ01、Ｑ02、Ｑ04、Ｑ10、Ｑ20、Ｑ40によって、量子化・逆量子化されている。即ちこれら６個の逆量子化アダマール変換係数Ａ’vuは、全てアダマール変換係数Ａvuを２（量子化係数Ｑvu）で割り、小数点以下を四捨五入したものに、また２（量子化係数Ｑvu）を掛け合わせて求められる。
【０１１３】
従ってアダマール変換係数Ａvuが２の倍数、即ち偶数ならば、対応する逆量子化アダマール変換係数Ａ’vuと一致する。例えばアダマール変換係数Ａvuが１６であれば、逆量子化アダマール変換係数Ａ’vuも１６である。
【０１１４】
これに対し、アダマール変換係数Ａvuが正の奇数であれば、量子化・逆量子化によって１増加しており、さらにステップ１１６によって１加算されるので、逆量子化アダマール変換係数Ａ’vuは対応するアダマール変換係数Ａvuよりも２大きくなる。例えばアダマール変換係数Ａvuが１５であれば、round １５÷２＝８（量子化）、８×２＝１６（逆量子化）を経て、逆量子化アダマール変換係数Ａ’vuは１６となり、ステップ１１６において１７になる。ただしround は、最も近い整数への近似を示す。
【０１１５】
アダマール変換係数Ａvuが負の奇数の場合、量子化・逆量子化によって１減少する（絶対値が１増加する）が、ステップ１１６において１加算されることにより打ち消しあっているので、偶数の場合と同様、逆量子化アダマール変換係数Ａ’vuは対応するアダマール変換係数Ａvuと一致する。例えばアダマール変換係数Ａvuが（−１５）であれば、round ｛（−１５）÷２｝＝−８（量子化）、（−８）×２＝−１６（逆量子化）を経て、逆量子化アダマール変換係数Ａ’vuは（−１６）となり、ステップ１１６において（−１５）に戻る。以上のことを利用して、ステップ１２０が実行される。
【０１１６】
図１５は第１の補正係数作成処理（ステップ１２０）を詳細に示すフローチャートである。図１５の処理は（ｖ，ｕ）が（０，１）、（０，２）、（０，４）、（１，０）、（２，０）、（４，０）の６個の組み合わせについてそれぞれ順に実行される。例えばＡ”01を求める場合、図１５のフローチャートにおいてｖ＝０、ｕ＝１として実行される。
【０１１７】
まずステップ１２１が実行され、２の剰余Ｍ2 vuが更新される。即ち、ステップ１１０によって更新された逆量子化アダマール変換係数Ａ’vuに基づいて剰余Ｍ2 vuが新たに求められ、ステップ１１２で決定された剰余Ｍ2 vuと置き換えられる。次にステップ１２２が実行される。ステップ１２２では、ステップ１２１で更新された剰余Ｍ2 vuが０か否かが判定される。逆量子化アダマール変換係数Ａ’vuの２の剰余が０、即ち逆量子化アダマール変換係数Ａ’vuが偶数であると判定されるとステップ１２８が実行される。逆量子化アダマール変換係数Ａ’vuの２の剰余が０でない、即ち奇数と判定されるとステップ１２４が実行される。
【０１１８】
ステップ１２４では、逆量子化アダマール変換係数Ａ’vuが０以上であるか否かが判定される。逆量子化アダマール変換係数Ａ’vuが０以上でない、即ち負であると判定されると、ステップ１２８が実行される。逆量子化アダマール変換係数Ａ’vuが０以上であればステップ１２６が実行され、第１の補正係数作成処理が終了する。ステップ１２６では、逆量子化アダマール変換係数Ａ’vuから２を引いた数値が補正係数Ａ”vuに決定される。ステップ１２８では、逆量子化アダマール変換係数Ａ’vuの数値がそのまま補正係数Ａ”vuに決定され、第１の補正係数作成処理が終了する。
【０１１９】
例えば、図２に示すようにアダマール変換係数Ａ40が（−１０）（偶数）であれば、量子化、逆量子化、およびステップ１１０においても補正されず、逆量子化アダマール変換係数Ａ’40も（−１０）となる。このとき、ステップ１２１、ステップ１２２、ステップ１２８が実行され補正係数Ａ”40は（−１０）に決定される。また前述したように、アダマール変換係数Ａvuが正の奇数、例えば１５であれば、量子化・逆量子化により逆量子化アダマール変換係数Ａ’vuは１６となり、ステップ１１０において逆量子化アダマール変換係数Ａ’vuが１７に補正される。このとき、ステップ１２１、ステップ１２２、ステップ１２４、ステップ１２６が実行され、ステップ１１０で更新された数値（＝１７）から２減算される。そして補正係数Ａ”vuは１５に決定される。アダマール変換係数Ａvuが負の奇数、例えば（−１５）であれば、量子化・逆量子化により逆量子化アダマール変換係数Ａ’vuは（−１６）となり、ステップ１１０において逆量子化アダマール変換係数Ａ’vuが（−１５）に補正される。このとき、ステップ１２１、ステップ１２２、ステップ１２８が実行され、補正係数Ａ”vuは（−１５）に決定される。
【０１２０】
このように、第１の係数更新処理（ステップ１１０）および第１の補正係数作成処理（ステップ１２０）では、２で量子化された逆量子化アダマール変換係数Ａ’vuを、２の剰余Ｍ2 vuによって補正することにより、６個の補正係数Ａ”vuが求められる。この２の量子化係数Ｑvuに対応した６個の補正係数Ａ”vuは、それぞれ対応するアダマール変換係数Ａvuと等値である。
【０１２１】
再び図１２を参照する。ステップ１２０の第１の補正係数作成処理が終了すると、ステップ１３０の第２の係数更新処理が実行される。ステップ１３０では、既知の７個の補正係数Ａ”vuを４で割ったときの余り、即ち剰余Ｍ4 vuと、４の倍数となるような４個の補正係数Ａ”vu（アダマール変換係数Ａvu）の和とにより、残り５７個の剰余Ｍ4 vuを求める。そして剰余Ｍ4 vuから、逆量子化アダマール変換係数Ａ’vuが更新される。以下、第２の係数更新処理（ステップ１３０）について説明する。
【０１２２】
各アダマール変換係数Ａvuは画素値Ｐyxの加減算で表されるため、例えば４つの係数Ａ00、Ａ20、Ａ02、Ａ22を足し合わせた結果は、以下の（６）式で表され、画素値Ｐyxの数値に関わらず４の倍数に定められる。
【０１２３】
0003845206.tif 000004
【０１２４】
（６）式に示すように４の倍数となるアダマール変換係数の和において、アダマール変換係数Ａ00、Ａ20、Ａ02即ち補正係数Ａ”00、Ａ”20、Ａ”02はステップ１０２およびステップ１２０により数値が既知であり、剰余Ｍ4 00、Ｍ4 20、Ｍ4 02が求められるので、残り１つの補正係数Ａ”22の剰余Ｍ4 22を求めることができる。例えば図９に示す補正係数Ａ”00が１０２８０（Ｍ4 00は０）、補正係数Ａ”20が１８（Ｍ4 20は２）、補正係数Ａ”02が（−１１８）（Ｍ4 02は−２）であれば、剰余Ｍ4 22は０である。このように、４の倍数となりうる４つの補正係数Ａ”vu（アダマール変換係数Ａvu）を組合せることにより、６４個の補正係数Ａ”vuの剰余Ｍ4 vuが求められる。
【０１２５】
図１９（ａ）は既知の剰余Ｍ4 vuと、この既知の剰余Ｍ4 vuから導き出される剰余Ｍ4 vuとを対応させた表である。図１９（ｂ）は一例として図２に示すアダマール変換係数Ａvuの剰余Ｍ4 vuを８×８のマトリクスで示す図である。なお、図１９（ｂ）において網掛け部分の剰余Ｍ4 vuは、図１９（ａ）の左側に示す既知の剰余Ｍ4 vuと対応している。丸付き数字の剰余Ｍ4 vuは、ステップ１３０およびステップ１４０において補正係数Ａ”vuを導き出せる剰余Ｍ4 vuであることを示す。８×８のマトリクスにおける丸付き数字の剰余Ｍ4 vuの位置は、値が４である量子化係数Ｑvuの位置と対応している。図１９（ｃ）は、補正係数Ａ”vuを８×８のマトリクスで示す図であり、網掛け部分の数字はステップ１３０の実行前に求められた補正係数Ａ”vuであり、網掛けのない部分の数字はステップ１３０およびステップ１４０の実行により求められる補正係数Ａ”vuである。
【０１２６】
図１６は、ステップ１３０の第２の係数更新処理を詳細に示すフローチャートである。なお図１６には示さないが、第２の係数更新処理は、まだ補正係数が決まっていない５７個の逆量子化アダマール変換係数Ａ’vuについて繰り返し行なわれる。
【０１２７】
まず第２の係数更新処理がスタートすると、ステップ１３１では６４個の補正係数Ａ”vuを４で割ったときの剰余Ｍ4 vuが求められる。まず、ステップ１０２およびステップ１２０で求められた補正係数Ａ”00、Ａ”01、Ａ”02、Ａ”04、Ａ”10、Ａ”20、Ａ”40の剰余Ｍ4 vuが（７）式により求められる。
【０１２８】
0003845206.tif 000005
【０１２９】
補正係数Ａ”vuの剰余Ｍ4 vuの絶対値は０、１、２、３の何れかであるが、補正係数Ａ”vuは６４個の全てが偶数か、全てが奇数かのどちらかである。従って、補正係数Ａ”vuが偶数の場合には、６４個の剰余Ｍ4 vuの絶対値は０または２のみで形成される。補正係数Ａ”vuが奇数の場合には、剰余Ｍ4 vuの絶対値は１または３のみで形成される。（７）式によって求められた７個の剰余Ｍ4 vuと、（６）式のような補正係数Ａ”vu同士の相関関係とから、残り５７個の剰余Ｍ4 vuが決定され、ステップ１３１が終了する。例えば図９において補正係数Ａ”vuは全て偶数であり、図１９（ｂ）に示すように剰余Ｍ4 vuの絶対値は０または２のみから形成される。
【０１３０】
剰余Ｍ4 vuの絶対値が２以上、すなわち剰余Ｍ4 vuの絶対値が量子化係数Ｑvu＝４の半値以上の場合、量子化・逆量子化によって絶対値は増加し、逆量子化アダマール変換係数Ａ’vuの絶対値は必ずアダマール変換係数Ａvuの絶対値より大きくなる。ステップ１３２からステップ１３８では、逆量子化アダマール変換係数Ａ’vuの正負と、剰余Ｍ4 vuが２以上あるいは（−２）以上であるかどうかで逆量子化アダマール変換係数Ａ’vuが分類され、更新される。
【０１３１】
ステップ１３２では、剰余Ｍ4 vuが０であるか否かが判定される。剰余Ｍ4 vuが０であると判定されると逆量子化アダマール変換係数Ａ’vuは更新されずに終了する。剰余Ｍ4 vuが０でないと判定されるとステップ１３４が実行され、逆量子化アダマール変換係数Ａ’vuが０より大きいか否か、即ち逆量子化アダマール変換係数Ａ’vuが正であるか否かが判定される。逆量子化アダマール変換係数Ａ’vuが正であればステップ１３６が実行され、負であればステップ１３７が実行される。
【０１３２】
ステップ１３６では、剰余Ｍ4 vuが２以上、即ち剰余Ｍ4 vuが２または３であるか否かが判定される。剰余Ｍ4 vuが２または３であれば、ステップ１３８が実行され、逆量子化アダマール変換係数Ａ’vuには２が加算され、第２の係数更新処理は終了する。ステップ１３６において剰余Ｍ4 vuが２以上でなければ、剰余Ｍ4 vuは１であると判定され、逆量子化アダマール変換係数Ａ’vuの数値はそのままで、第２の係数更新処理は終了する。
【０１３３】
ステップ１３７では、剰余Ｍ4 vuが（−２）以上、即ち剰余Ｍ4 vuが（−１）または（−２）であるか否かが判定される。剰余Ｍ4 vuが（−１）または（−２）であれば、ステップ１３８において逆量子化アダマール変換係数Ａ’vuに２が加算された後、第２の係数更新処理が終了する。ステップ１３７において剰余Ｍ4 vuが（−２）以上でない、即ち剰余Ｍ4 vuが（−３）であると判定されると、逆量子化アダマール変換係数Ａ’vuの数値はそのままで、第２の係数更新処理は終了する。
【０１３４】
以上のように第２の係数更新処理では、剰余Ｍ4 vuが２、３、（−１）、（−２）の場合にのみ逆量子化アダマール変換係数Ａ’vuに２が加算され、剰余Ｍ4 vuが０、１、（−３）の場合は逆量子化アダマール変換係数Ａ’vuは更新されない。例えば、アダマール変換係数Ａvuが１０、１１、（−１３）、（−１０）の時、逆量子化アダマール変換係数Ａ’vuは、１２、１２、（−１２）、（−１２）となり、ステップ１１０において更新された後の逆量子化アダマール変換係数Ａ’vuは１２（剰余Ｍ4 vu＝２）、１３（剰余Ｍ4 vu＝３）、（−１１）（剰余Ｍ4 vu＝−１）、または（−１２）（剰余Ｍ4 vu＝−２）となる。このとき、ステップ１３８において数値が２加算され、それぞれ１４、１５、−９、−１０に更新される。アダマール変換係数Ａvuが、１２、１３、（−１２）、（−１１）の時、逆量子化アダマール変換係数Ａ’vuは１２、１２、（−１２）、（−１２）となり、ステップ１１０において更新された後の逆量子化アダマール変換係数Ａ’vuは１２（剰余Ｍ4 vu＝０）、１３（剰余Ｍ4 vu＝１）、（−１２）（剰余Ｍ4 vu＝０）または（−１１）（剰余Ｍ4 vu＝−３）となり、ステップ１３０において数値は更新されない。
【０１３５】
再び図１２を参照する。ステップ１３０が終了すると、ステップ１４０の第２の補正係数作成処理が実行される。ステップ１４０では、ステップ１３０で更新された逆量子化アダマール変換係数Ａ’vuと求められた剰余Ｍ4 vuとに基づいて、１５個の補正係数Ａ”03、Ａ”05、Ａ”06、Ａ”11、Ａ”12、Ａ”14、Ａ”21、Ａ”22、Ａ”24、Ａ”30、Ａ”41、Ａ”42、Ａ”44、Ａ”50、Ａ”60が作成される。
【０１３６】
上述の１５個に対応する逆量子化アダマール変換係数Ａ’vuは、全て数値が４の量子化係数Ｑvuによって量子化・逆量子化される。即ち、アダマール変換係数Ａvuを４で割り、小数点以下を四捨五入したものに、また４をかけあわせて求められる。従ってアダマール変換係数Ａvuの剰余Ｍ4 vuが０、即ち４の倍数ならば、対応する逆量子化アダマール変換係数Ａ’vuと一致する。
【０１３７】
剰余Ｍ4 vuの絶対値が１の場合について説明する。アダマール変換係数Ａvuが正であれば、２の剰余Ｍ2 vuが１である場合に含まれるので、第１の係数更新処理（ステップ１１０）において逆量子化アダマール変換係数Ａ’vuは更新されており、アダマール変換係数Ａvuと逆量子化アダマール変換係数Ａ’vuとは一致する。アダマール変換係数Ａvuが負であれば、量子化・逆量子化によって１増加し、ステップＳ１１０において１が加算され、さらにステップ１３８によって２加算されているので、逆量子化アダマール変換係数Ａ’vuは対応するアダマール変換係数Ａvuよりも４大きくなる。
【０１３８】
例えば、アダマール変換係数Ａvuが２１、量子化係数Ｑvuが４ならば、逆量子化アダマール変換係数Ａ’vuは２０、剰余Ｍ2 vu＝１、および剰余Ｍ4 vu＝１である。逆量子化アダマール変換係数Ａ’vuの数値はステップ１１０で２１に更新されており、ステップ１３２、ステップ１３４、ステップ１３６が実行されるが、数値２１は更新されない。アダマール変換係数Ａvuが（−２１）、量子化係数Ｑvuが４ならば、逆量子化アダマール変換係数Ａ’vuは（−２０）、剰余Ｍ2 vu＝（−１）、および剰余Ｍ4 vu＝（−１）である。逆量子化アダマール変換係数Ａ’vuの数値はステップ１１０で（−１９）に更新されており、ステップ１３２、ステップ１３４、ステップ１３７、ステップ１３８が実行され、数値（−１７）に更新される。
【０１３９】
剰余Ｍ4 vuの絶対値が２の場合について説明する。アダマール変換係数Ａvuが正であれば、量子化・逆量子化によって２増加しており、さらにステップ１３８によって２加算されているので、逆量子化アダマール変換係数Ａ’vuは対応するアダマール変換係数Ａvuよりも４大きくなる。アダマール変換係数Ａvuが負の場合、量子化・逆量子化によって２減少する（絶対値が２増加する）が、ステップ１３８において２加算されることにより打ち消しあっているので、逆量子化アダマール変換係数Ａ’vuは対応するアダマール変換係数Ａvuと一致する。
【０１４０】
例えば、アダマール変換係数Ａvuが２２、量子化係数Ｑvuが４ならば、逆量子化アダマール変換係数Ａ’vuは２４、剰余Ｍ2 vu＝０、および剰余Ｍ4 vu＝２である。逆量子化アダマール変換係数Ａ’vuの数値はステップ１１０で２４のままであり、ステップ１３８において、数値２４は数値２６に更新される。アダマール変換係数Ａvuが（−２２）、量子化係数Ｑvuが４ならば、逆量子化アダマール変換係数Ａ’vuは（−２４）、剰余Ｍ2 vu＝０、および剰余Ｍ4 vu＝（−２）である。逆量子化アダマール変換係数Ａ’vuの数値はステップ１１０でそのままであり、ステップ１３８において、数値（−２４）は数値（−２２）に更新される。
【０１４１】
剰余Ｍ4 vuの絶対値が３の場合について説明する。アダマール変換係数Ａvuが正であれば、量子化・逆量子化によって１増加し、第１の係数更新処理（ステップ１１０）においてＭ2 vuが１であるため１が加算され、さらにステップ１３８において２加算されるので、逆量子化アダマール変換係数Ａ’vuは対応するアダマール変換係数Ａvuよりも４大きくなる。アダマール変換係数Ａvuが負であれば、第１の係数更新処理において更新されており、逆量子化アダマール変換係数Ａ’vuは対応するアダマール変換係数Ａvuと一致する。
【０１４２】
例えば、アダマール変換係数Ａvuが２３、量子化係数Ｑvuが４ならば、逆量子化アダマール変換係数Ａ’vuは２４、剰余Ｍ2 vu＝１、および剰余Ｍ4 vu＝３である。逆量子化アダマール変換係数Ａ’vuの数値はステップ１１０で２５に更新されており、ステップ１３８において、数値２５は数値２７に更新される。アダマール変換係数Ａvuが（−２３）、量子化係数Ｑvuが４ならば、逆量子化アダマール変換係数Ａ’vuは（−２４）、剰余Ｍ2 vu＝（−１）、および剰余Ｍ4 vu＝（−３）である。逆量子化アダマール変換係数Ａ’vuの数値はステップ１１０で（−２３）に更新されており、ステップ１３０では数値（−２３）は更新されない。
【０１４３】
以上のように、４で量子化・逆量子化された逆量子化アダマール変換係数Ａ’vuは剰余Ｍ4 vuによって場合分けされて求められる。第２の補正係数作成処理は剰余Ｍ4 vuの情報を利用して行なわれる。
【０１４４】
図１７は、図１２に示すステップ１４０の第２の補正係数作成処理を詳細に示すフローチャートである。ステップ１４０もステップ１２０と同様、１５個の各補正係数Ａ”vuについてそれぞれ行なわれる。
【０１４５】
まずステップ１４１では、４の剰余Ｍ4 vuが更新される。即ち、ステップ１３０によって更新された逆量子化アダマール変換係数Ａ’vuに基づいて剰余Ｍ4 vuが新たに求められ、ステップ１３１で決定された剰余Ｍ4 vuと置き換えられる。次にステップ１４２が実行される。
【０１４６】
ステップ１４２では、ステップ１４１で更新された剰余Ｍ4 vuが０か否かが判定される。剰余Ｍ4 vuが０であればステップ１５４が実行され、剰余Ｍ4 vuが０でなければステップ１４４が実行される。ステップ１４４では逆量子化アダマール変換係数Ａ’vuが正であるか否かが判定され、正であればステップ１４６が実行され、負であればステップ１５０が実行される。
【０１４７】
ステップ１４６では剰余Ｍ4 vuが２より小さいか否か、即ち剰余Ｍ4 vuが１であるか否かが判定される。剰余Ｍ4 vuが１であればステップ１５４が実行され、剰余Ｍ4 vuが２または３であればステップ１４８が実行される。またステップ１５０では剰余Ｍ4 vuが（−２）より大きいか否か、即ち（−１）であるか否かが判定される。剰余Ｍ4 vuが（−１）であればステップ１４８が実行され、剰余Ｍ4 vuが（−２）または（−３）であればステップ１５２が実行される。
【０１４８】
ステップ１４８では補正係数Ａ”vuは逆量子化アダマール変換係数Ａ’vuから４が減算されて、第２の補正係数作成処理が終了する。ステップ１５２およびステップ１５４では補正係数Ａ”vuは逆量子化アダマール変換係数Ａ’vuそのままの数値になり、第２の補正係数作成処理が終了する。
【０１４９】
第２の補正係数作成処理（ステップ１４０）では、剰余Ｍ4 vuが０、１、（−２）、（−３）の場合には、補正係数Ａ”vuは逆量子化アダマール変換係数Ａ’vuと同じ数値であり、剰余Ｍ4 vuが２、３、（−１）の場合は、補正係数Ａ”vuは逆量子化アダマール変換係数Ａ’vuに４減算された数値となる。
【０１５０】
このように、第２の係数更新処理（ステップ１３０）および第２の補正係数作成処理（ステップ１４０）では、４で量子化された逆量子化アダマール変換係数Ａ’vuを、４の剰余Ｍ4 vuによって補正することにより、１５個の補正係数Ａ”vuが求められる。この数値が４の量子化係数Ｑvuに対応した１５個の補正係数Ａ”vuは、それぞれ対応するアダマール変換係数Ａvuと等値である。
【０１５１】
例えば、アダマール変換係数Ａ06が（−４２）の場合（図２参照）、逆量子化アダマール変換係数Ａ’06は（−４４）である（図９参照）が、ステップ１３１においてＭ4 06＝（−２）が求められ、ステップ１３８において逆量子化アダマール変換係数Ａ’06は、２が加算されて（−４２）に更新される。そしてステップ１４２、ステップ１４４、ステップ１５０、ステップ１５２が実行されて、補正係数Ａ”06＝（−４２）が求められる（図９参照）。
【０１５２】
再び図１２を参照する。ステップ１４０が終了すると、ステップ１６０の第３の係数更新処理が実行される。第３の係数更新処理は前述した第２の係数更新処理と同様の手順で行なわれる。即ち、既知の２２個の補正係数Ａ”vuを８で割ったときの余り、即ち剰余Ｍ8 vuと、８の倍数となるような８個のアダマール変換係数Ａvuの和とにより、残り４２個の剰余Ｍ8 vuが求められる。そして剰余Ｍ8 vuから、逆量子化アダマール変換係数Ａ’vuが更新され、ステップ１６０が終了する。
【０１５３】
図２０（ａ）は既知の剰余Ｍ8 vuと、この既知の剰余Ｍ8 vuから導き出される剰余Ｍ8 vuとを対応させた表である。図２０（ｂ）は、図２に示すアダマール変換係数Ａvuの剰余Ｍ8 vuを示す図であり、図２０（ｃ）は補正係数Ａ”vuを示す図である。網掛け部の数字はステップ１６０の実行前に既に求められた補正係数Ａ”vuである。網掛けされていない部分の数字はステップ１６０およびステップ１６２の実行により求められる補正係数Ａ”vuであり、図２０（ｂ）の丸付き数字に対応している。
【０１５４】
図１２のステップ１６２では第３の補正係数作成処理が行なわれる。第３の補正係数作成処理は前述した第２の補正係数作成処理と同様の手順で行なわれる。即ち、ステップ１６０において更新された逆量子化アダマール変換係数Ａ’vuと剰余Ｍ8 vuに基づいて、２０個の補正係数Ａ”vuが作成される。ステップ１６２が終了すると、ステップ１６４が実行される。
【０１５５】
図１２のステップ１６４では第４の係数更新処理が行なわれる。第４の係数更新処理は前述した第２および第３の係数更新処理と同様の手順で行なわれる。即ち、既知の４２個の補正係数Ａ”vuを１６で割ったときの余り、即ち剰余Ｍ16vuと、１６の倍数となるような１６個のアダマール変換係数Ａvuの和とにより、残り２２個の剰余Ｍ16vuが求められる。そして剰余Ｍ16vuから、逆量子化アダマール変換係数Ａ’vuが更新され、ステップ１６４が終了する。
【０１５６】
図２１（ａ）は既知の剰余Ｍ16vuと、この既知の剰余Ｍ16vuから導き出される剰余Ｍ16vuとを対応させた表である。図２１（ｂ）は、図２に示すアダマール変換係数Ａvuの剰余Ｍ16vuを示す図であり、図２１（ｃ）は補正係数Ａ”vuを示す図である。網掛け部の数字はステップ１６４の実行前に既に求められた補正係数Ａ”vuである。網掛けされていない部分の数字はステップ１６４およびステップ１６６の実行により求められる補正係数Ａ”vuであり、図２１（ｂ）の丸付き数字に対応している。
【０１５７】
図１３のステップ１６６では第４の補正係数作成処理が行なわれる。第４の補正係数作成処理は前述した第２および第３の補正係数作成処理と同様の手順で行なわれる。即ち、ステップ１６４において更新された逆量子化アダマール変換係数Ａ’vuと剰余Ｍ16vuに基づいて、１５個の補正係数Ａ”vuが作成される。ステップ１６６が終了すると、ステップ１６８が実行される。
【０１５８】
ステップ１６８では第５の係数更新処理が行なわれる。第５の係数更新処理は前述した第２から第４の係数更新処理と同様の手順で行なわれる。即ち、既知の５７個の補正係数Ａ”vuを３２で割ったときの余り、即ち剰余Ｍ32vuと、３２の倍数となるような３２個のアダマール変換係数Ａvuの和とにより、残り７個の剰余Ｍ32vuが求められる。そして剰余Ｍ32vuから、逆量子化アダマール変換係数Ａ’vuが更新され、ステップ１６８が終了する。
【０１５９】
図２２（ａ）は既知の剰余Ｍ32vuと、この既知の剰余Ｍ32vuから導き出される剰余Ｍ32vuとを対応させた表である。図２２（ｂ）は、図２に示すアダマール変換係数Ａvuの剰余Ｍ32vuを示す図であり、図２２（ｃ）は補正係数Ａ”vuを示す図である。網掛け部の数字はステップ１６８の実行前に既に求められた補正係数Ａ”vuである。網掛けされていない部分の数字はステップ１６８およびステップ１７０の実行により求められる補正係数Ａ”vuであり、図２２（ｂ）の丸付き数字に対応している。
【０１６０】
図１３のステップ１７０では第５の補正係数作成処理が行なわれる。第５の補正係数作成処理は前述した第２から第４の補正係数作成処理と同様の手順で行なわれる。即ち、ステップ１６８において更新された逆量子化アダマール変換係数Ａ’vuと剰余Ｍ32vuに基づいて、６個の補正係数Ａ”vuが作成される。ステップ１７０が終了すると、ステップ１７２が実行される。
【０１６１】
ステップ１７２では第６の係数更新処理が行なわれる。第６の係数更新処理は前述した第２から第５の係数更新処理と同様の手順で行なわれる。即ち、既知の６３個の補正係数Ａ”vuを６４で割ったときの余り、即ち剰余Ｍ64vuと、６４個のアダマール変換係数Ａvuの総和とにより、残り１個の剰余Ｍ6477を求める。そして剰余Ｍ6477から、逆量子化アダマール変換係数Ａ’77が更新され、ステップ１７２が終了する。
【０１６２】
図２３（ａ）は、図２に示すアダマール変換係数Ａvuの剰余Ｍ64vuを示す図であり、図２３（ｂ）の網掛けされていない数字は補正係数Ａ”77を示し、ステップ１７２およびステップ１７４において、図２３（ａ）に示す丸付き数字の剰余Ｍ6477により求められる。
【０１６３】
図１３のステップ１７４では第６の補正係数作成処理が行なわれる。第６の補正係数作成処理は、ステップ１７２において更新された逆量子化アダマール変換係数Ａ’77と剰余Ｍ6477に基づいて、補正係数Ａ”77が作成される。ステップ１７４が終了すると、補正係数作成処理は終了する。
【０１６４】
補正係数作成処理では、２の累乗である２，４，８，１６，３２，６４の順に剰余を求める処理と、求められた剰余の情報に基づいて逆量子化アダマール変換係数Ａ’vuを更新する処理とが交互に行われ、図１８（ｂ）、図１９（ｃ）、図２０（ｃ）、図２１（ｃ）、図２２（ｃ）および図２３（ｂ）に示すように、Ａ”00からＡ”77まで順に補正係数Ａ”vuが求められる。図９に示す補正係数Ａ”vuは図２に示すアダマール変換係数Ａvuと一致しており、可逆的に変換されたことになる。従って原画像データに対して画像劣化のない再生画像データが得られる。
【０１６５】
本来６４の剰余を求めるための情報量は、６４個の各係数につき６ビット、即ち計３８４ビット必要である。しかし本実施形態では、６段階で求める補正係数作成処理において必要な情報量は半分で良い。即ち、２の剰余の情報量はＭ2 00が１か０かがわかればよいので、１ビットである。さらに４の剰余の情報量は、図１９（ｂ）の網掛け部分で示される７個のＭ4 vu、即ち７ビットである。同様に８、１６、３２、６４の剰余の情報量はそれぞれ２２、４２、５７、６３ビットである。従って、総計１９２ビット、即ち３８４ビットの半分の情報量でアダマール変換係数Ａvuは正確に復元される。
【０１６６】
また、量子化を行なった後の量子化アダマール変換係数Ｂvuにおいて、低周波項にパワーが集中するように、量子化テーブルＱvuが構成されるので（図２参照）、ハフマン符号化を用いて符号化（圧縮）した場合、ＪＰＥＧ方式の圧縮率とほぼ同程度の圧縮率が得られる。そして量子化テーブルＱvuはアダマール変換の特性に鑑みて２の累乗から形成されているので、画像情報の伸張が正確にでき、従来の圧縮・伸張で生じていた量子化誤差が無い再生画像データを容易に得ることができる。
【０１６７】
以上のように本実施形態によれば、量子化アダマール変換係数Ｂvuをビット配分テーブルＢＴvuに基いてビット分離し、上位量子化アダマール変換係数ＢＨvuと下位アダマール変換係数ＢＬvuを求めることにより、圧縮画像データの情報量が少なくて済み、画像を効率的に圧縮することができる。また、上位量子化アダマール変換係数ＢＨvuと下位量子化アダマール変換係数ＢＬvuをビット合成して量子化アダマール変換係数Ｂvuを復元し、逆量子化アダマール変換係数Ａ’vuを補正係数Ａ”vuに変換することにより、原画像を無歪みで復元することができる。
【０１６８】
【発明の効果】
以上のように本発明によれば、高解像度の画像を無歪みで圧縮、伸張処理することができ、かつ効率的に圧縮することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態例である画像圧縮装置のブロック図である。
【図２】画素ブロックとアダマール変換係数行列と量子化テーブルと量子化アダマール変換係数行列を示した図である。
【図３】量子化アダマール変換係数行列とビット配分テーブルと上位量子化アダマール変換係数行列と下位量子化アダマール変換係数行列を示した図である。
【図４】６つのビット配分テーブルを示した図である。
【図５】量子化アダマール変換係数に対する２ビットのビット分離を示した図である。
【図６】量子化アダマール変換係数行列に対するビット分離の手順を示したフローチャートである。
【図７】本発明の一実施形態例である画像伸張装置のブロック図である。
【図８】上位量子化アダマール変換係数行列と下位量子化アダマール変換係数行列とビット配分テーブルと量子化アダマール変換係数行列を示した図である。
【図９】量子化アダマール変換係数行列と量子化テーブルと逆量子化アダマール変換係数行列と補正係数行列と画素ブロックを示した図である。
【図１０】上位量子化アダマール変換係数と下位量子化アダマール変換係数に対する２ビットのビット合成を示した図である。
【図１１】上位量子化アダマール変換係数行列と下位量子化アダマール変換係数行列に対するビット合成の手順を示したフローチャートである。
【図１２】補正係数作成部の処理の前半を示すフローチャートである。
【図１３】補正係数作成部の処理の後半を示すフローチャートである。
【図１４】図１２に示す第１の係数更新処理の詳細を示すフローチャートである。
【図１５】図１２に示す第１の補正係数作成処理の詳細を示すフローチャートである。
【図１６】図１２に示す第２の係数更新処理の詳細を示すフローチャートである。
【図１７】図１２に示す第２の補正係数作成処理の詳細を示すフローチャートである。
【図１８】図２に示すアダマール変換係数Ａvuから求められた２の剰余Ｍ2 vuと、補正係数Ａ”vuとを示す図である。
【図１９】アダマール変換係数Ａvuの４の剰余Ｍ4 vuから求められる、逆量子化アダマール変換係数Ａ’vuの４の剰余を示す一覧表と、図２に示すアダマール変換係数Ａvuから求められた４の剰余Ｍ4 vuと、補正係数Ａ”vuとを示す図である。
【図２０】アダマール変換係数Ａvuの８の剰余Ｍ8 vuから求められる、逆量子化アダマール変換係数Ａ’vuの８の剰余を示す一覧表と、図２に示すアダマール変換係数Ａvuから求められた８の剰余Ｍ8 vuと、補正係数Ａ”vuとを示す図である。
【図２１】アダマール変換係数Ａvuの１６の剰余Ｍ16vuから求められる、逆量子化アダマール変換係数Ａ’vuの１６の剰余を示す一覧表と、図２に示すアダマール変換係数Ａvuから求められた１６の剰余Ｍ16vuと、補正係数Ａ”vuとを示す図である。
【図２２】アダマール変換係数Ａvuの３２の剰余Ｍ32vuから求められる、逆量子化アダマール変換係数Ａ’vuの３２の剰余を示す一覧表と、図２に示すアダマール変換係数Ａvuから求められた３２の剰余Ｍ32vuと、補正係数Ａ”vuとを示す図である。
【図２３】図２に示すアダマール変換係数Ａvuから求められた６４の剰余Ｍ64vuと、補正係数Ａ”vuとを示す図である。
【符号の説明】
１０    画像圧縮装置
Ｑ      量子化テーブル
ＢＴ    ビット配分テーブル
２０    画像伸張装置
【図１】
0003845206.tif 000007
【図２】
0003845206.tif 000008
【図３】
0003845206.tif 000009
【図４】
0003845206.tif 000010
【図５】
0003845206.tif 000011
【図６】
0003845206.tif 000012
【図７】
0003845206.tif 000013
【図８】
0003845206.tif 000014
【図９】
0003845206.tif 000015
【図１０】
0003845206.tif 000016
【図１１】
0003845206.tif 000017
【図１２】
0003845206.tif 000018
【図１３】
0003845206.tif 000019
【図１４】
0003845206.tif 000020
【図１５】
0003845206.tif 000021
【図１６】
0003845206.tif 000022
【図１７】
0003845206.tif 000023
【図１８】
0003845206.tif 000024
【図１９】
0003845206.tif 000025
【図２０】
0003845206.tif 000026
【図２１】
0003845206.tif 000027
【図２２】
0003845206.tif 000028
【図２３】
0003845206.tif 000029