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