100,100A,100B,100C,10000,10000A,10000B,10000C 画像圧縮装置、101 周波数変換部、103 量子化部、105 エントロピー符号化部、107,107A,107B 出力部、110,110A,110B,110C,1110,1110A,1110B,1110C 量子化テーブル生成部、111,111A,111B 量子化テーブル取得部、113,113A 調整部、113B 第1調整部、115 空間フィルタ取得部、117 変換テーブル生成部、119 第2調整部、130 画像圧縮部、140,140A,140B,140C 量子化テーブル生成部、200,200A,200B,200C 画像圧縮伸張装置、210 画像伸張部、211 エントロピー復号部、213 逆量子化部、215 周波数逆変換部、1107,1107A,1107B,1107C 置換部。
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
(第1の実施の形態)
図1は、本発明の第1の実施の形態における画像圧縮装置の概略構成を示す機能ブロック図である。図1を参照して、画像圧縮装置100は、入力画像データを周波数変換するための周波数変換部101と、周波数変換されたデータを量子化する量子化部103と、量子化されたデータをエントロピー符号化するためのエントロピー符号化部105と、符号化されたデータを出力するための出力部107と、量子化テーブルを生成するための量子化テーブル生成部110とを含む。
周波数変換部101は、入力画像データを離散コサイン変換(DCT)などの直交変換して周波数変換する。周波数変換部101で周波数変換されたデータは、量子化部103に出力される。
量子化部103は、周波数変換部101および量子化テーブル生成部110と接続される。周波数変換部101からは周波数変換されたデータが入力され、量子化テーブル生成部110からは、量子化に用いる量子化テーブルが入力される。量子化部103は、周波数変換されたデータを、量子化テーブルを用いて量子化する。
量子化部103には、量子化テーブル生成部110から第2量子化テーブルが入力される。
エントロピー符号化部105は、量子化部103と接続される。エントロピー符号化部105には、外部から符号テーブルが入力される。エントロピー符号化部105は、量子化部103で量子化されたデータを、入力された符号テーブルを用いてエントロピー符号化する。この符号テーブルは、入力画像データ、および符号化率等に基づいて定まるもので、従来のJPEGで用いられる符号テーブルを用いればよい。エントロピー符号化部105は、符号データを出力部107に出力する。
周波数変換部101に入力される入力画像データは、実際には、入力画像データを縦横それぞれN画素(N×N)の複数のブロックに分割してブロック単位で入力される。ここでは、ブロックサイズを縦横それぞれ8画素(8×8)の64画素のブロックとしている。量子化部103およびエントロピー符号化部105も同様に、ブロック単位でデータが入力される。
量子化テーブル生成部110は、空間フィルタを取得するための空間フィルタ取得部115と、空間フィルタを直交変換して周波数空間のデータに変換するための変換テーブル生成部117と、第1量子化テーブルを取得するための量子化テーブル取得部111と、変換テーブルを用いて第1量子化テーブルを調整して第2量子化テーブルを生成する調整部113とを含む。
空間フィルタ取得部115は、予め定められた空間フィルタのうちから選択された空間フィルタを取得する。選択はユーザが指定してもよいし、予め定められたものとしてもよい。さらに、入力画像データに基づいて選択するようにしてもよい。空間フィルタは、平滑化フィルタ、鮮鋭化フィルタまたはエッジ強調フィルタを含む。たとえば、入力画像データが、階調変化のなだらかな写真などが表されている場合には、平滑化フィルタを選択し、文字等のエッジ領域を多く含む場合には鮮鋭化フィルタまたはエッジ強調フィルタを選択する等する。さらに、各空間フィルタのうちでも、空間フィルタ処理の程度によって複数の空間フィルタを予め記憶しておき、選択するようにしても良い。さらに、入力画像データの領域ごとに空間フィルタを選択するようにしても良い。空間フィルタのサイズは、縦横それぞれM画素(M×M)である。ここでは、説明のため空間フィルタのサイズを縦横それぞれ3画素(3×3)として説明する。
変換テーブル生成部117は、空間フィルタ取得部115と接続され、空間フィルタ取得部115で取得された空間フィルタが入力される。変換テーブル生成部117は、入力された空間フィルタを、離散コサイン変換(DCT)などの直交変換して変換テーブルを生成する。ここで変換テーブルのサイズは、周波数変換部101に入力されるブロックサイズ(N×N)と同じである。ここでの変換テーブルのサイズは、縦横それぞれ8画素(8×8)となる。
以下に、3×3のサイズの空間フィルタを用いて、8×8のサイズの変換テーブルの具体的な生成方法を説明する。
まず、空間フィルタ(3×3)(図4参照)の各要素値は、中心要素位置に原点を置いた場合に、縦軸と横軸の各々に関して線対称(偶対象)となるような値を有することを前提とする。
空間フィルタ(3×3)をf(x、y)と表現するとする。空間フィルタの中心要素位置を原点とみなした場合、離散フーリエ変換(DFT)による周波数応答は、以下の式(1)で表される。
次に、求める変換テーブルを8×8のマトリクス|F2(i,j)|とする。ここで、F2(i,j)の絶対値を使用するのは、JPEGにおける量子化テーブルでは負の値を表現できないためである。
式(1)のω1およびω2に、0を代入して算出されたF(x、y)の実数成分の値は、マトリクス|F2(0,0)|(図5の左上の値(1.00)に対応)に対応する。ここで、空間フィルタf(x,y)は偶対象な値で構成されており、偶関数とみなせるため、虚数成分については、すべて0となり無視することができる。
同様に、式(1)のω1は0のままで、ω2を、π/8,2π/8,・・・,7π/8とそれぞれ、変化させたときに算出されるF(x、y)の実数成分の値を、それぞれ、|F2(0,1)|,|F2(0,2)|,・・・,|F2(0,7)|とする。たとえば、|F2(0,7)|は、図5の左下の値(0.28)に対応する。
そして、式(1)のω2が、それぞれ0,π/8,2π/8,・・・,7π/8の時に、式(1)のω1を、0,π/8,2π/8,・・・,7π/8とそれぞれ変化させたときに算出されるF(x、y)の実数成分の値を、それぞれ、対応する|F2(i,j)|の値とする。たとえば、|F2(7,7)|は、式(1)のω1およびω2に、7π/8を代入して算出された値となり、その値は、図5の右下の値(0.08)に対応する。以上の計算により、8×8のサイズの変換テーブル(図5参照)が生成(算出)される。
変換テーブル生成部117は、生成した変換テーブルを調整部113に出力する。
量子化テーブル取得部111は、予め定められた量子化テーブルを取得する。予め定められた量子化テーブルは、圧縮レベルに応じて複数あってもよい。この場合、複数の量子化テーブルのうちから外部から入力される圧縮レベルに基づき第1量子化テーブルが選択される。また、入力画像データの種類に基づいて選択するようにしてもよい。さらに、第1量子化テーブルは、予め定められた量子化テーブルに、圧縮レベルに応じた定数pを乗算したものであってもよい。
量子化テーブルのサイズは、周波数変換部101に入力されるブロックサイズ(N×N)と同じである。量子化部103ではブロックごとに量子化されるからである。量子化テーブル取得部111で取得された第1量子化テーブルは、調整部113および出力部107に出力される。
調整部113は、変換テーブル生成部117および量子化テーブル取得部111と接続される。変換テーブル生成部117から変換テーブルが入力され、量子化テーブル取得部111から第1量子化テーブルが入力される。調整部113は、変換テーブルを第1量子化テーブルに作用させてテーブル値を調整し、第2量子化テーブルを生成する。調整部113は、第2量子化テーブルを量子化部103に出力する。
この調整部113における調整では、第2量子化テーブルの各要素は、それに対応する第1量子化テーブルの要素値を変換テーブルの要素値で除算した値とされる。すなわち、調整部113は、第1量子化テーブルをQ1(i,j)、第2量子化テーブルをQ2(i,j)、変換テーブルをF(i,j)とすると、Q2(i,j)=Q1(i,j)/F(i,j)を算出する。第2量子化テーブルの各要素Q2(i,j)は全て整数であることが好ましく、除算の際には、小数点以下を切り捨て、四捨五入、切り上げなどの方法により整数化される。原理的には四捨五入であることが好ましい。
出力部107は、エントロピー符号化部105および量子化テーブル取得部111と接続される。エントロピー符号化部105から符号化データが入力され、量子化テーブル取得部111から第1量子化テーブルが入力される。そして、出力部107は、符号化データと第1量子化テーブルとを関連付けて出力する。関連付けは量子化テーブルと符号化データとをまとめて1つの圧縮データとして出力する場合を含む。出力部107には、ブロック単位に符号化データが入力されるので、ブロックごとに量子化テーブルが関連付けられてもよいし、複数のブロックをまとめた複数ブロックごとに量子化テーブルを関連付けてもよい。
図1に示した画像圧縮装置100は、一般的なコンピュータやマイクロプロセッサで実現することができる。また、周波数変換部101、量子化部103、エントロピー符号化部105は、一般に広く利用されているJPEG方式による圧縮処理を実行するための専用のLSI素子などで構成し、量子化テーブル生成部110および出力部107をマイクロプロセッサ等で実現するようにしてもよい。
量子化テーブル生成部110または画像圧縮装置100を、パーソナルコンピュータやマイコンなどで構成させる場合に、後述する量子化テーブル取得処理または画像圧縮処理をコンピュータに実行させるためのプログラムとして記述するようにしてもよい。そのようなプログラムは、CD−ROM(Compact Disc - Read Only Memory)等の記録媒体に記録されてプログラム製品として流通し、CD−ROMドライブなどによりコンピュータが備えるRAM等に読込まれ、中央演算装置(CPU)で実行される。なお、プログラムが記録される記録媒体は、CD−ROMのほかに、たとえば、フレキシブルディスク、カセットテープ、ハードディスク、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード(メモリカードを含む)、光カード、マスクROM、EPROM、EEPROM、フラッシュROMなどの半導体メモリ等の固定的にプログラムを担持する媒体でもよい。さらに、インターネット等のネットワークを介して他の装置からダウンロードされてもよい。
ここでいうプログラムは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図2は、第1の実施の形態の画像圧縮装置で実行される画像圧縮処理の流れを示すフローチャートである。図2を参照して、量子化テーブルが取得される(ステップS101)。ここで取得される量子化テーブルは第1量子化テーブルと第2量子化テーブルである。このステップS101で実行される量子化テーブル取得処理については後述する。
そして、取得された第1量子化テーブルは、半導体メモリや磁気メモリなどの記憶装置に出力され、一時的に記憶される(ステップS102)。
そして、符号テーブルが取得される(S103)。ここでは符号テーブルは、統計的なデータ圧縮技術であるハフマン符号を表すハフマン符号テーブルなどである。
次に、入力画像データをブロック単位で読み込む(S104)。ここで、入力画像データは、例えば輝度成分Yと色差成分Cb、Crとの3つのプレーンで構成されるカラー画像などである。なお、輝度成分Yのみからなるモノクロ画像であってもよい。
次に、S104においてブロック単位で入力された入力画像データを周波数変換する(S105)。周波数変換は、例えば離散コサイン変換(DCT)などである。
次に、ステップS101で取得された第2量子化テーブルを用いて、周波数変換された周波数画像を量子化する(ステップS106)。
次に、ステップS103で読込んだ符号テーブルを用いて、ステップS106で量子化したデータをエントロピー符号化する(S107)。そして、符号化したデータを、ステップS102で第1量子化テーブルを出力したのと同じ記憶装置に出力し、記憶する(S108)。これにより、第1量子化テーブルと符号データとが関連付けられて出力される。
ステップS109では、全てのブロックについて、ステップS104〜ステップS108までの処理が終了したか否かが判断される。終了した場合には処理を終了し、終了していない場合はステップS104に戻る。第1量子化テーブルと符号データとは圧縮データとして、他の装置に出力される。このような圧縮データを受信した装置では、第1量子化テーブルを用いて逆量子化することができる。
図3は、第1の実施の形態の画像圧縮装置で実行される量子化テーブル取得処理の流れを示すフローチャートである。この量子化テーブル取得処理は、図2に示したフローチャートのステップS101で実行される処理である。
図3を参照して、ステップS121では、空間フィルタを読み込む。この空間フィルタは、画像処理用のフィルタであり、システム設計者などにより予め用意されて記憶されている。ここでは、空間フィルタのフィルタサイズをM×M(M=3)としている。
次に、ステップS121で読み込んだ空間フィルタ(M×M)を周波数変換し、変換テーブルを生成する(ステップS122)。ここで、変換テーブルのサイズ(N×N)は、量子化テーブルのサイズ(N×N)を規定するNと等価なものである。先述した定数Mは、(3≦M≦2・N−1)で規定される値で、なるべく小さい値であることが好ましい。
次に、第1量子化テーブルを読み込む(ステップS123)。ここで、第1量子化テーブルは、量子化処理における量子化ステップを規定するものであり、システム設計者などにより予め用意されて記憶されている。ここでは、第1量子化テーブルのサイズをN×Nとしている。例えばJPEG方式の圧縮処理において適用する量子化テーブル(N×N)は、N=8の値からなるテーブルである。量子化テーブルは、何らかの知見に基づいて自由に設計することも可能であるが、簡単には、JPEG方式でデフォールトとして用いられる量子化テーブルを用いればよい。
次に、ステップS123で読み込んだ第1量子化テーブル(N×N)を、ステップS122で生成した変換テーブル(N×N)を用いて調整し、第2量子化テーブルを生成する(S124)。ここでは説明のため第1量子化テーブルの各要素を配列Q1(i,j)で、変換テーブルの各要素を配列F(i,j)で表す。第2量子化テーブルの各要素Q2(i,j)は、Q1(i,j)/F(i,j)で算出される。ただし、変数i,jそれぞれは、縦方向(行方向)、横方向(列方向)の要素位置を表し、変数i,jを1から起算する場合、1≦i≦N、1≦j≦N (ただし、i,jは整数)となる。
図4は、空間フィルタの一例を示す図である。空間フィルタ11は、8近傍平均フィルタの一例を示す。空間フィルタ11は、画像データに対して平滑化処理を施すための平滑化フィルタである。空間フィルタ11は、全ての要素が等価な「1」である。
空間フィルタは、原画像(例えばRGBの3プレーンで構成されるカラー画像)の画素値に対して畳み込み演算する際に用いられる。畳み込み演算を行う際には空間フィルタ11の各要素の値を重みとして用いるが、重みの総和で正規化されるべきであることは言うまでもない。
空間フィルタ12は、加重平均による平滑化フィルタの一例を示す。また、上記8近傍平均や上記加重平均は、いずれも平滑化フィルタの要素値の一例を示すもので、空間フィルタの要素値の構成は、これらに限定されるものではない。また、空間フィルタは、平滑化フィルタに限定されるものではなく、鮮鋭化フィルタなど異なる効果を得られるフィルタを用いてもよい。
図5は、図4に示す空間フィルタ11(M=3)を周波数変換して生成した変換テーブルの一例を示す図である。変換テーブルのサイズは、量子化テーブルおよびブロックのサイズと同じ縦横8画素となっている。
図6は、JPEG方式のデフォールトの量子化テーブルのうちの輝度成分用テーブルを示す図である。図6を参照して、量子化テーブル31は、直流(DC)成分は図中左上隅の値「16」を示し、交流(AC)成分は直流成分を除く要素であり、左上ほど低周波成分を表し、右下へ行くほど高周波成分を表す。このデフォールトの量子化テーブルを、本実施の形態においては第1量子化テーブルとしている。
図7は、第1量子化テーブルと変換テーブルとから算出された第2量子化テーブルの一例を示す図である。図7では、図6に示した第1量子化テーブル31の各要素値を図5に示した変換テーブル21の対応する要素値で除算して求めた第2量子化テーブル32を示している。図7に示すように、第2量子化テーブル32の各要素は全て整数であることが好ましく、除算の際には、小数点以下を切り捨て、四捨五入、切り上げなどの方法により整数化される。原理的には四捨五入であることが好ましい。また、図7に示す第2量子化テーブル32において、「268」、「1238」などの「256」以上の要素値が含まれるが、圧縮前の原画像の画素値が「0」以上「255」以下の値をとるような場合、第2量子化テーブル32の要素値のうち、「256」以上の値を全て「255」に置換えるなどの処理を施すようにしてもよい。
なお、本実施の形態における変換テーブル、量子化テーブル、空間フィルタとは次の関係にあるのが好ましい。
(1)変換テーブルと、量子化テーブルとは、要素数が同じである。
(2)空間フィルタの要素数は、量子化テーブルの要素数より小さい。
(3)空間フィルタは、縦方向と横方向それぞれの要素数が同じである。
(4)変換テーブルと量子化テーブルとは、縦方向と横方向それぞれの要素数が同じである。
本実施の形態における画像圧縮装置100において、量子化テーブル生成部110は、第1量子化テーブルを取得して逆量子化に用いる量子化テーブルとして出力部107に出力する。一方、空間フィルタを用いて、第1量子化テーブルを調整して量子化に用いる第2量子化テーブルを生成して量子化部103に出力する。このため、圧縮時の量子化に用いる第2量子化テーブルと、伸張時の逆量子化に用いる第1量子化テーブルとを容易に生成することができる。
また、調整部113は、量子化に用いる第2量子化テーブルを、空間フィルタを用いて逆量子化に用いる量子化テーブルを調整して生成する。このため、空間フィルタの要素数(9個)の値を決定することにより量子化のための量子化テーブルおよび逆量子化のための量子化テーブルを決定することができる。
また、空間フィルタに平滑化フィルタを用いた場合には、量子化部103による量子化処理で発生する量子化誤差により発生するノイズ、例えばモスキートノイズを低減することができる。
さらに、量子化テーブル生成部110は、量子化に用いる量子化テーブルを空間フィルタを用いて調整して生成するので、圧縮データを伸張した画像は、空間フィルタを用いた画像処理と同等の処理が施されたものとなる。圧縮または伸張の処理過程で空間フィルタ処理を行う必要がない。
さらに、変換テーブル生成部117は、空間フィルタを周波数変換して変換テーブルを生成し、調整部113は、量子化テーブルの要素を変換テーブルの対応する要素で除算するので、第2量子化テーブルを容易に求めることができる。
また、画像圧縮装置100は、量子化テーブル記憶部120をさらに含む。量子化テーブル記憶部120には、前述の第1量子化テーブルと、量子化テーブル生成部110で予め生成された前述の第2量子化テーブルとが関連付けて記憶される。
本実施の形態の処理は、量子化テーブル記憶部120に記憶された第1および第2量子化テーブルを用いても実施可能である。
この場合、まず、周波数変換部101が、入力画像データを周波数変換する。次に、量子化部103は、量子化テーブル記憶部120に記憶された第2量子化テーブルを用いて、周波数変換部101により周波数変換されたデータを量子化する。次に、エントロピー符号化部105が、量子化部103により生成された量子化データをエントロピー符号化する。次に、出力部107は、エントロピー符号化部105により符号化されたデータと、量子化テーブル記憶部120に記憶されている第1量子化テーブルとを関連付けて出力する。
(第2の実施の形態)
図8は、第2の実施の形態における画像圧縮装置の概略構成を示す機能ブロック図である。図8を参照して、第2の実施の形態における画像圧縮装置100Aは、第1の実施の形態における画像圧縮装置100と異なるところは、量子化テーブル取得部111A、調整部113A、出力部107A、量子化テーブル記憶部120Aである。以下異なる点を主に説明する。
量子化テーブル取得部111Aは、予め定められた量子化テーブルを取得する。この点では量子化テーブル取得部111と変わるところはない。量子化テーブル取得部111Aは、取得した第1量子化テーブルを調整部113Aおよび量子化部103に出力する。したがって、量子化部103は、第1量子化テーブルが入力されるので、第1量子化テーブルを用いて量子化することになる。
調整部113Aは、変換テーブル生成部117および量子化テーブル取得部111Aと接続される。変換テーブル生成部117から変換テーブルが入力され、量子化テーブル取得部111Aから第1量子化テーブルが入力される。調整部113Aは、変換テーブルを第1量子化テーブルに作用させてテーブル値を調整し、第3量子化テーブルを生成する。調整部113が第2量子化テーブルを生成するのに対して、調整部113Aが第3量子化テーブルを生成する点で異なる。調整部113Aは、生成した第3量子化テーブルを出力部107Aに出力する。第3量子化テーブルは、圧縮データの伸長においてエントロピー復号された周波数画像データを逆量子化する際に用いる量子化テーブルである。
この調整部113Aでは、第3量子化テーブルの各要素は、それに対応する第1量子化テーブルの要素値と変換テーブルの要素値とを乗算した値とされる。すなわち、調整部113Aは、第3量子化テーブルの各要素の配列をQ3(i,j)で表現すると、Q3(i,j)=Q1(i,j)・F(i,j)を算出する。第3量子化テーブルQ3(i,j)は全て整数であることが好ましく、乗算の際には、小数点以下を切り捨て、四捨五入、切り上げなどの方法により整数化される。原理的には四捨五入であることが好ましい。
出力部107Aは、エントロピー符号化部105および調整部113Aと接続される。エントロピー符号化部105から符号化データが入力され、調整部113Aから第3量子化テーブルが入力される。そして、出力部107Aは、符号化データと第3量子化テーブルとを関連付けて出力する。関連付けは量子化テーブルと符号化データとをまとめて1つの圧縮データとして出力する場合を含む。出力部107Aには、ブロック単位に符号化データが入力されるので、ブロックごとに第3量子化テーブルを関連付けても良いし、複数のブロックをまとめた複数ブロックごとに第3量子化テーブルを関連付けてもよい。
図9は、第2の実施の形態の画像圧縮装置で実行される画像圧縮処理の流れを示すフローチャートである。図9を参照して、第1の実施の形態における画像圧縮装置100で実行される画像圧縮処理と異なるところは、ステップS101A、S102A、S106Aである。以下異なる処理について主に説明する。
ステップS101Aでは、量子化テーブルが取得される。ここで取得される量子化テーブルは第1量子化テーブルと第3量子化テーブルである。このステップS101で実行される量子化テーブル取得処理については後述する。
ステップS102Aでは、ステップS101Aで取得された第3量子化テーブルが、半導体メモリや磁気メモリなどの記憶装置に出力され、一時的に記憶される。
ステップS106Aでは、ステップS101Aで取得された第1量子化テーブルを用いて、周波数変換された周波数画像を量子化する。
ステップS108では、符号化したデータを、ステップS102Aで第3量子化テーブルを出力したのと同じ記憶装置に出力し、記憶する。これにより、第3量子化テーブルと符号データとが関連付けられて出力される。第3量子化テーブルと符号データとは圧縮データとして、他の装置に出力される。このような圧縮データを受信した装置では、第3量子化テーブルを用いて逆量子化することができる。
図10は、第2の実施の形態の画像圧縮装置で実行される量子化テーブル取得処理の流れを示すフローチャートである。この量子化テーブル取得処理は、図9に示したフローチャートのステップS101Aで実行される処理である。図10を参照して、図3に示した第1の実施の形態における画像圧縮装置100で実行される量子化テーブル取得処理と異なるところは、ステップS124Aにおける第3量子化テーブルの算出処理が異なる。
ステップS124Aでは、ステップS123で読み込んだ第1量子化テーブル(N×N)を、ステップS122で生成した変換テーブル(N×N)を用いて調整し、第3量子化テーブルを生成する。第3量子化テーブルQ3(i,j)は、Q1(i,j)・F(i,j)で算出される。
図11は、第1量子化テーブルと変換テーブルとから算出された第3量子化テーブルの一例を示す図である。図11では、図6に示した第1量子化テーブル31の各要素値と図5に示した変換テーブル21の対応する要素値とを乗算して求めた第3量子化テーブル33を示している。図11に示すように、第3量子化テーブル33の各要素は全て整数であることが好ましく、乗算の際には、小数点以下を切り捨て、四捨五入、切り上げなどの方法により整数化される。原理的には四捨五入であることが好ましい。
以上説明したように第2の実施の形態における画像圧縮装置100Aにおいて、量子化テーブル生成部110Aは、第1量子化テーブルを取得して量子化に用いる量子化テーブルとして量子化部103に出力する。一方、空間フィルタを用いて、第1量子化テーブルを調整して逆量子化に用いる第3量子化テーブルを生成して出力部107Aに出力する。このため、空間フィルタの要素数(9個)の値を決定することにより量子化のための第1量子化テーブルおよび逆量子化のための第3量子化テーブルを決定することができる。圧縮時の量子化に用いる第1量子化テーブルと、伸張時の逆量子化に用いる第3量子化テーブルとを容易に生成することができる。
また、調整部113Aは、逆量子化に用いる第3量子化テーブルを、空間フィルタを用いて量子化に用いる量子化テーブルを調整して生成する。このため、圧縮データを伸張した画像は、空間フィルタを用いた画像処理と同等の処理が施されたものとなるので、圧縮または伸張の処理過程で空間フィルタ処理を行う必要がない。
特に、空間フィルタに平滑化フィルタを用いた場合には、量子化部103による量子化処理で発生する量子化誤差により発生するノイズ、例えばモスキートノイズを低減することができる。
さらに、変換テーブル生成部117は、空間フィルタを周波数変換して変換テーブルを生成し、調整部113Aは、第1量子化テーブルの要素と変換テーブルの対応する要素とを乗算するので、第3量子化テーブルを容易に求めることができる。
さらに、画像圧縮装置100Aの構成を変更することが困難である場合に、伸長装置側のみでフィルタ処理を施すことを可能とすることができる。
量子化テーブル記憶部120Aには、前述の第1量子化テーブルと、前述の処理により予め生成された第3量子化テーブルとが関連付けて記憶されている。
本実施の形態の処理は、量子化テーブル記憶部120Aに記憶された第1および第3量子化テーブルを用いても実施可能である。
この場合、まず、周波数変換部101が、入力画像データを周波数変換する。次に、量子化部103は、量子化テーブル記憶部120Aに記憶された第1量子化テーブルを用いて、周波数変換部101により周波数変換されたデータを量子化する。次に、エントロピー符号化部105が、量子化部103により生成された量子化データをエントロピー符号化する。次に、出力部107Aは、エントロピー符号化部105により符号化されたデータと、量子化テーブル記憶部120Aに記憶されている第3量子化テーブルとを関連付けて出力する。
(第3の実施の形態)
図12は、第3の実施の形態における画像圧縮装置の概略構成を示す機能ブロック図である。図12を参照して、第3の実施の形態における画像圧縮装置100Bは、第2の実施の形態における画像圧縮装置100Aと異なるところは、量子化テーブル取得部111Aを含まない点と、量子化テーブル記憶部120Aの代わりに量子化テーブル記憶部120Bを含む点と、調整部113Aに量子化部103から第1量子化テーブルが入力される点である。量子化テーブル記憶部120Bには、予め、第1量子化テーブルが記憶されている。以下異なる点を主に説明する。
量子化部103には、量子化テーブル記憶部120Bから第1量子化テーブルが入力される。量子化部103は、第1量子化テーブルが入力されるので、第1量子化テーブルを用いて量子化することになる。そして、量子化部103は、量子化に用いた第1量子化テーブルを調整部113Aに出力する。
調整部113Aは、変換テーブル生成部117および量子化部103と接続される。変換テーブル生成部117から変換テーブルが入力され、量子化部103から第1量子化テーブルが入力される。調整部113Aは、変換テーブルを第1量子化テーブルに作用させてテーブル値を調整し、第3量子化テーブルを生成する。調整部113Aは、生成した第3量子化テーブルを出力部107Aに出力する。第3量子化テーブルは、圧縮データの伸長においてエントロピー復号された周波数画像データを逆量子化する際に用いる量子化テーブルである。
以上説明したように第3の実施の形態における画像圧縮装置100Bにおいて、量子化テーブル生成部110Bは、量子化部103から第1量子化テーブルを取得し、空間フィルタを用いて、第1量子化テーブルを調整して逆量子化に用いる第3量子化テーブルを生成して出力部107Aに出力する。このため、量子化部103で量子化に用いる量子化テーブルが、実際に量子化部103に入力された量子化テーブルと異なる場合であっても、量子化に用いた第1量子化テーブルを調整した第3量子化テーブルを生成することができる。たとえば、量子化部103において、入力された量子化テーブルに所定の倍率を乗算するなどした量子化テーブルを量子化に用いた場合である。
なお、第3の実施の形態においては、空間フィルタ取得部115で取得された空間フィルタを変換テーブル生成部117で変換した変換テーブルを予め準備して記憶しておくようにしてもよい。この場合には、図9に示した画像圧縮処理のステップS101Aにおいては、図10に示した量子化テーブル取得処理のうちステップS121,S122は実行されることなく、記憶された変換テーブルが読み出されることになる。
(第4の実施の形態)
図13は、第4の実施の形態における画像圧縮装置の概略構成を示す機能ブロック図である。図13を参照して、第4の実施の形態における画像圧縮装置100Cは、第1の実施の形態における画像圧縮装置100と異なるところは、量子化テーブル取得部111の代わりに量子化テーブル取得部111Bを含む点と、調整部113の代わりに第1調整部113Bを含む点と、出力部107の代わりに出力部107Bを含む点と、量子化テーブル記憶部120の代わりに量子化テーブル記憶部120Cを含む点と、第2調整部119をさらに含む点とである。以下異なる点を主に説明する。
量子化テーブル取得部111Bは、予め定められた量子化テーブルを取得する。この点では量子化テーブル取得部111と変わるところはない。量子化テーブル取得部111Bは、取得した第1量子化テーブルを第1調整部113Bにのみ出力する。
第1調整部113Bは、変換テーブル生成部117および量子化テーブル取得部111Bと接続される。変換テーブル生成部117から変換テーブルが入力され、量子化テーブル取得部111Bから第1量子化テーブルが入力される。第1調整部113Bは、変換テーブルを第1量子化テーブルに作用させてテーブル値を調整し、第2量子化テーブルを生成する。この点では調整部113と変わらない。すなわち、第1調整部113Bでは、第2量子化テーブルの各要素は、それに対応する第1量子化テーブルの要素値を変換テーブルの要素値で除算した値とされる。より具体的に説明すれば、第1調整部113Bは、第1量子化テーブルをQ1(i,j)、第2量子化テーブルをQ2(i,j)、変換テーブルをF(i,j)とすると、Q2(i,j)=Q1(i,j)/F(i,j)を算出する。第2量子化テーブルの各要素Q2(i,j)は全て整数であることが好ましく、除算の際には、小数点以下を切り捨て、四捨五入、切り上げなどの方法により整数化される。原理的には四捨五入であることが好ましい。
第1調整部113Bは、量子化部103で量子化に用いられる第2量子化テーブルを生成し、量子化部103に出力する。このため、量子化部103では、第2量子化テーブルを用いて量子化する。
第2調整部119は、変換テーブル生成部117および量子化部103と接続される。変換テーブル生成部117から変換テーブルが入力され、量子化部103から量子化に用いた第2量子化テーブルが入力される。第2調整部119は、変換テーブルを第2量子化テーブルに作用させてテーブル値を調整し、第4量子化テーブルを生成する。第4量子化テーブルは、圧縮データの伸長においてエントロピー復号された周波数画像データを逆量子化する際に用いる量子化テーブルである。
第2調整部119における調整は、第4量子化テーブルの各要素は、それに対応する第2量子化テーブルの要素値と変換テーブルの要素値とを乗算した値とされる。より具体的に説明すれば、第2調整部119は、第4量子化テーブルの各要素の配列をQ4(i,j)で表すと、Q4(i,j)=Q2(i,j)・F(i,j)=(Q1(i,j)/F(i,j))・F(i,j)を算出する。第4量子化テーブルQ4(i,j)の各要素は全て整数であることが好ましく、乗算の際には、小数点以下を切り捨て、四捨五入、切り上げなどの方法により整数化される。原理的には四捨五入であることが好ましい。第2調整部119は、逆量子化に用いる第4量子化テーブルを生成して、出力部107Bに出力する。
出力部107Bは、エントロピー符号化部105および第2調整部119と接続される。エントロピー符号化部105から符号データが入力され、第2調整部119から第4量子化テーブルが入力される。そして、出力部107Bは、符号データと第4量子化テーブルとを関連付けて出力する。関連付けは量子化テーブルと符号化データとをまとめて1つの圧縮データとして出力する場合を含む。出力部107Bには、ブロック単位に符号化データが入力されるので、ブロックごとに第4量子化テーブルを関連付けてもよいし、複数のブロックをまとめた複数ブロックごとに第4量子化テーブルを関連付けてもよい。
図14は、第4の実施の形態の画像圧縮装置で実行される画像圧縮処理の流れを示すフローチャートである。図14を参照して、第1の実施の形態における画像圧縮装置100で実行される画像圧縮処理と異なるところは、ステップS101C、S102Cである。以下異なる処理について主に説明する。
ステップS101Cでは、量子化テーブルが取得される。ここで取得される量子化テーブルは第1量子化テーブル、第2量子化テーブルおよび第4量子化テーブルである。このステップS101Cで実行される量子化テーブル取得処理については後述する。
ステップS102Cでは、ステップS101Cで取得された第4量子化テーブルが、半導体メモリや磁気メモリなどの記憶装置に出力され、一時的に記憶される。
ステップS108では、符号化したデータを、ステップS102Cで第4量子化テーブルを出力したのと同じ記憶装置に出力し、記憶する。これにより、第4量子化テーブルと符号データとが関連付けられて出力される。第4量子化テーブルと符号データとは圧縮データとして、他の装置に出力される。このような圧縮データを受信した装置では、第4量子化テーブルを用いて逆量子化することができる。
図15は、第4の実施の形態の画像圧縮装置で実行される量子化テーブル取得処理の流れを示すフローチャートである。この量子化テーブル取得処理は、図14に示したフローチャートのステップS101Cで実行される処理である。図15を参照して、図3に示した第1の実施の形態における画像圧縮装置100で実行される量子化テーブル取得処理と異なるところは、ステップS125が追加された点である。
ステップS125では、ステップS124で算出された第2量子化テーブル(N×N)を、ステップS122で生成した変換テーブル(N×N)を用いて調整し、第4量子化テーブルを生成する。第4量子化テーブルの各要素Q4(i,j)は、Q2(i,j)・F(i,j)で算出される。
以上説明したように第4の実施の形態における画像圧縮装置100Cにおいて、量子化テーブル生成部110Cは、空間フィルタを用いて、第1量子化テーブルを調整して量子化に用いる第2量子化テーブルを生成して量子化部103に出力する。一方、量子化部103より入力される量子化に用いた第2量子化テーブルを、空間フィルタを用いて調整して逆量子化に用いる第4量子化テーブルを生成して出力部107Bに出力する。このため、量子化部103で量子化に用いる量子化テーブルが、実際に量子化部103に入力された量子化テーブルと異なる場合であっても、量子化に用いた第2量子化テーブルを調整した第4量子化テーブルを生成することができる。たとえば、量子化部103において、入力された量子化テーブルに所定の倍率を乗算するなどした量子化テーブルを量子化に用いた場合である。
なお、第4の実施の形態においては、空間フィルタ取得部115で取得された空間フィルタを変換テーブル生成部117で変換した変換テーブルを予め準備して記憶しておくようにしてもよい。この場合には、図14に示した画像圧縮処理のステップS101Cにおいては、図15に示した量子化テーブル取得処理のうちステップS121およびS122は実行されることなく、記憶された変換テーブルが読み出され、ステップS123〜S125が実行されることになる。
なお、量子化テーブル記憶部120Cには、第1調整部113Bが、第1量子化テーブルを空間フィルタで調整することで予め生成した第2量子化テーブルが記憶されている。
本実施の形態の処理は、量子化テーブル記憶部120Cに記憶された第2量子化テーブルを用いても実施可能である。
この場合、まず、周波数変換部101が、入力画像データを周波数変換する。次に、量子化部103は、量子化テーブル記憶部120Cに記憶された第2量子化テーブルを用いて、周波数変換部101により周波数変換されたデータを量子化する。第2調整部119は、空間フィルタを用いて量子化に用いられた第2量子化テーブルに作用させてテーブル値を調整し、逆量子化に用いる第4量子化テーブルを生成する。
次に、エントロピー符号化部105が、量子化部103により生成された量子化データをエントロピー符号化する。次に、出力部107Bは、エントロピー符号化部105により符号化されたデータと、第4量子化テーブルとを関連付けて出力する。
すなわち、この場合には、図14の画像圧縮処理のステップS101Cにおいては、図15に示した量子化テーブル取得処理のうちステップS121〜ステップS124は実行されることなく、予め記憶された変換テーブルおよび第2量子化テーブルが読出され、ステップS125が実行される。
(第5の実施の形態)
図16は、本発明の第5の実施の形態における画像圧縮伸張装置の概略構成を示す機能ブロック図である。図16を参照して、画像圧縮伸張装置200は、量子化テーブル生成部140と、画像圧縮部130と、画像伸張部210と、量子化テーブル記憶部120とを備える。
画像圧縮部130は、入力画像データを周波数変換するための周波数変換部101と、周波数変換されたデータを量子化する量子化部103と、量子化されたデータをエントロピー符号化するためのエントロピー符号化部105とを含む。
量子化テーブル生成部140は、第1の実施の形態で説明した量子化テーブル生成部110と同様の構成を有し、量子化テーブル取得部111が取得した第1量子化テーブルを、出力部107ではなく逆量子化部213に出力する点で異なる。
画像伸張部210は、符号データを復号するためのエントロピー復号部211と、復号されたデータを逆量子化するための逆量子化部213と、逆量子化されたデータを逆周波数変換するための周波数逆変換部215とを含む。
エントロピー復号部211は、エントロピー符号化部105と接続され、エントロピー符号化部105から符号データが入力される。エントロピー復号部211は、入力された符号データを復号して、復号したデータを逆量子化部213に出力する。
逆量子化部213は、エントロピー復号部211および量子化テーブル取得部111と接続される。逆量子化部213には、量子化テーブル取得部111から第1量子化テーブルが入力される。逆量子化部213は、エントロピー復号部211より入力されたデータを量子化テーブル取得部111より入力された第1量子化テーブルを用いて逆量子化する。したがって、逆量子化部213は、第1量子化テーブルを用いて逆量子化する。
周波数逆変換部215は、逆量子化部213と接続される。周波数逆変換部215は、入力されたデータを離散コサイン逆変換などの直交逆変換して画像データに変換する。
第5の実施の形態における画像圧縮伸張装置200では、画像圧縮部130において第2量子化テーブルを用いて量子化し、画像伸張部210において第1量子化テーブルを用いて逆量子化する。
量子化テーブル記憶部120には、第1量子化テーブルと、前述の処理により予め生成された前述の第2量子化テーブルとが関連付けて記憶される。
本実施の形態の処理は、量子化テーブル記憶部120に記憶された第1および第2量子化テーブルを用いても実施可能である。
この場合、画像圧縮部130は、量子化テーブル記憶部120に記憶されている第2量子化テーブルを用いて量子化する。また、画像伸張部210は、量子化テーブル記憶部120に記憶されている第1量子化テーブルを用いて逆量子化する。
(第6の実施の形態)
図17は、本発明の第6の実施の形態における画像圧縮伸張装置の概略構成を示す機能ブロック図である。図17を参照して、第6の実施の形態における画像圧縮伸張装置200Aは、第5の実施の形態における画像圧縮伸張装置200の量子化テーブル生成部140を、量子化テーブル生成部140Aに置換え、量子化テーブル記憶部120を、量子化テーブル記憶部120Aに置換えたものである。量子化テーブル生成部140Aは、第2の実施の形態で説明した量子化テーブル生成部110Aと同様の構成を有し、調整部113Aが生成した第3量子化テーブルを、出力部107Aではなく逆量子化部213に出力する点で異なる。
第6の実施の形態における画像圧縮伸張装置200Aでは、画像圧縮部130は、量子化テーブル生成部140Aから取得した第1量子化テーブルを用いて量子化する。画像伸張部210は、量子化テーブル生成部140Aから取得した第3量子化テーブルを用いて逆量子化する。
量子化テーブル記憶部120Aには、第1量子化テーブルと、前述の処理により予め生成された第3量子化テーブルとが関連付けて記憶される。
本実施の形態の処理は、量子化テーブル記憶部120Aに記憶された第1および第3量子化テーブルを用いても実施可能である。
この場合、画像圧縮部130は、量子化テーブル記憶部120Aに記憶されている第1量子化テーブルを用いて量子化する。また、画像伸張部210は、量子化テーブル記憶部120Aに記憶されている第3量子化テーブルを用いて逆量子化する。
(第7の実施の形態)
図18は、本発明の第7の実施の形態における画像圧縮伸張装置の概略構成を示す機能ブロック図である。図18を参照して、第7の実施の形態における画像圧縮伸張装置200Bは、第5の実施の形態における画像圧縮伸張装置200の量子化テーブル生成部140を、量子化テーブル生成部140Bに置換え、量子化テーブル記憶部120を、量子化テーブル記憶部120Bに置換えたものである。量子化テーブル生成部140Bは、第3の実施の形態で説明した量子化テーブル生成部110Bと同様の構成を有する。量子化テーブル記憶部120Bには、予め、第1量子化テーブルが記憶されている。
第7の実施の形態における画像圧縮伸張装置200Bでは、画像圧縮部130は、量子化テーブル記憶部120Bに記憶されている第1量子化テーブルを用いて量子化し、画像伸張部210は、量子化テーブル生成部140Bから取得した第3量子化テーブルを用いて逆量子化する。
(第8の実施の形態)
図19は、本発明の第8の実施の形態における画像圧縮伸張装置の概略構成を示す機能ブロック図である。図19を参照して、第8の実施の形態における画像圧縮伸張装置200Cは、第5の実施の形態における画像圧縮伸張装置200の量子化テーブル生成部140を、量子化テーブル生成部140Cに置換え、量子化テーブル記憶部120を、量子化テーブル記憶部120Cに置換えたものである。量子化テーブル生成部140Cは、第4の実施の形態で説明した量子化テーブル生成部110Cと同様の構成を有し、第2調整部119が生成した第4量子化テーブルを、出力部107Bではなく逆量子化部213に出力する点で異なる。
第8の実施の形態における画像圧縮伸張装置200Cでは、画像圧縮部130は、量子化テーブル生成部140Cから取得した第2量子化テーブルを用いて量子化し、画像伸張部210は、量子化テーブル生成部140Cから取得した第4量子化テーブルを用いて逆量子化する。
量子化テーブル記憶部120Cには、予め生成された第2量子化テーブルが記憶されている。
本実施の形態の処理は、量子化テーブル記憶部120Cに記憶された第2量子化テーブルを用いても実施可能である。この場合、画像圧縮部130は、量子化テーブル記憶部120Cに記憶された第2量子化テーブルを用いて量子化する。それ以外の処理は、前述の処理と同様である。
(第9の実施の形態)
図20は、本発明の第9の実施の形態における画像圧縮装置の概略構成を示す機能ブロック図である。図20を参照して、画像圧縮装置10000は、圧縮部106と、量子化テーブル生成部1110と、データバッファ109と、量子化テーブル記憶部120とを含む。
圧縮部106は、前述の周波数変換部101と、前述の量子化部103と、前述のエントロピー符号化部105とを含む。
周波数変換部101は、入力画像データを離散コサイン変換(DCT)などの直交変換して周波数変換する。周波数変換部101で周波数変換されたデータは、量子化部103に出力される。
量子化部103は、周波数変換部101および量子化テーブル生成部1110と接続される。周波数変換部101からは周波数変換されたデータが入力され、量子化テーブル生成部1110からは、量子化に用いる量子化テーブルが入力される。量子化部103は、周波数変換されたデータを、量子化テーブルを用いて量子化する。量子化部103は、また、量子化に用いた量子化テーブルをデータバッファ109に出力する。これにより、量子化部103で量子化に用いられた量子化テーブルがデータバッファ109に記憶される。
量子化部103には、量子化テーブル生成部1110から第2量子化テーブルが入力される。
エントロピー符号化部105は、量子化部103と接続される。エントロピー符号化部105には、外部から前述の符号テーブルが入力される。エントロピー符号化部105は、量子化部103で量子化されたデータを、入力された符号テーブルを用いてエントロピー符号化する。
エントロピー符号化部105は、符号化に用いた符号テーブルをデータバッファ109に出力する。また、エントロピー符号化部105は、符号データをデータバッファ109に出力する。これにより、エントロピー符号化部105で符号化に用いられた符号テーブルと符号化された符号データとがデータバッファ109に記憶される。
周波数変換部101に入力される入力画像データは、実際には、入力画像データを縦横それぞれN画素(N×N)の複数のブロックに分割してブロック単位で入力される。ここでは、ブロックサイズを縦横それぞれ8画素(8×8)の64画素のブロックとしている。量子化部103およびエントロピー符号化部105も同様に、ブロック単位でデータが入力される。
データバッファ109は、RAM(Random Access Memory)等の半導体メモリ等の記憶装置である。半導体メモリだけでなく、磁気記憶装置、光磁気記憶装置、光記憶装置などを用いても良い。データバッファ109は、量子化部103で量子化に用いた第2量子化テーブルと、エントロピー符号化部105で符号化された符号データとが記憶される。これらがデータバッファ109に記憶されることにより、量子化に用いた量子化テーブルと符号データとが関連付けられる。本実施の形態においては、データバッファ109には、第2量子化テーブルが記憶される。
量子化テーブル生成部1110は、前述した空間フィルタを取得するための空間フィルタ取得部115と、空間フィルタを直交変換して周波数空間のデータに変換するための変換テーブル生成部117と、第1量子化テーブルを取得するための量子化テーブル取得部111と、変換テーブルを用いて第1量子化テーブルを調整して第2量子化テーブルを生成する調整部113と、量子化に用いられた量子化テーブルを逆量子化に用いる量子化テーブルに置換するための置換部1107とを含む。
空間フィルタ取得部115は、前述と同様、予め定められた空間フィルタのうちから選択された空間フィルタを取得する。空間フィルタ取得部115の機能および動作は、前述したのと同様なので、詳細な説明は繰り返さない。空間フィルタについては、前述したのと同様なので、詳細な説明は繰り返さない。ここでは、説明のため空間フィルタのサイズを縦横それぞれ3画素(3×3)として説明する。
変換テーブル生成部117の機能および動作は、前述したものと同様なので詳細な説明は繰り返さない。
量子化テーブル取得部111の機能および動作は、前述したものと同様なので詳細な説明は繰り返さない。
量子化テーブルのサイズは、周波数変換部101に入力されるブロックサイズ(N×N)と同じである。量子化部103ではブロックごとに量子化されるからである。量子化テーブル取得部111で取得された第1量子化テーブルは、調整部113および置換部1107に出力される。
調整部113の機能および動作は、前述したものと同様なので詳細な説明は繰り返さない。
置換部1107は、量子化テーブル取得部111およびデータバッファ109と接続される。置換部1107は、量子化テーブル取得部111から逆量子化に用いる量子化テーブルが入力される。置換部1107は、データバッファ109から量子化に用いられた量子化テーブルと、符号テーブルと、符号データとを読出し、量子化に用いられた量子化テーブルを逆量子化に用いる量子化テーブルに置換する。本実施の形態においては、データバッファ109に記憶された第2量子化テーブルを、量子化テーブル取得部111から入力された第1量子化テーブルに置換する。
そして、置換部1107は、第1量子化テーブル、符号テーブルおよび符号データを出力する。すなわち、置換部1107は、逆量子化に用いる第1量子化テーブルと符号データとを関連付けて出力する。関連付けは量子化テーブルをヘッダとして符号データに付加して1つの圧縮データとして出力する場合を含む。なお、ブロックごとに量子化テーブルを関連付けてもよいし、複数のブロックをまとめた複数ブロックごとに量子化テーブルを関連付けてもよい。
図20に示した画像圧縮装置10000は、一般的なコンピュータやマイクロプロセッサで実現することができる。また、圧縮部106は、一般に広く利用されているJPEG方式による圧縮処理を実行するための専用のLSI素子などで構成してもよい。量子化テーブル生成部1110を専用のLSI素子で構成してもよい。さらに、圧縮部106、データバッファ109および量子化テーブル生成部1110を1つのLSI素子などで構成してもよい。
量子化テーブル生成部1110または画像圧縮装置10000を、パーソナルコンピュータやマイコンなどで構成させる場合に、後述する画像圧縮処理をコンピュータに実行させるためのプログラムとして記述するようにしてもよい。そのようなプログラムは、CD−ROM(Compact Disc - Read Only Memory)等の記録媒体に記録されてプログラム製品として流通し、CD−ROMドライブなどによりコンピュータが備えるRAM等に読込まれ、中央演算装置(CPU)で実行される。なお、プログラムが記録される記録媒体は、CD−ROMのほかに、前述したような固定的にプログラムを担持する媒体でもよい。さらに、インターネット等のネットワークを介して他の装置からダウンロードされてもよい。
ここでいうプログラムは、CPUにより直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
図21は、第9の実施の形態の画像圧縮装置で実行される画像圧縮処理の流れを示すフローチャートである。図21を参照して、空間フィルタを読み込む(S1101)。この空間フィルタは、画像処理用のフィルタであり、システム設計者などにより予め用意されて記憶されている。ここでは、空間フィルタのフィルタサイズをM×M(M=3)としている。
次に、ステップS1101で読み込んだ空間フィルタ(M×M)を周波数変換し、前述のステップS122の処理と同様、変換テーブルを生成する(ステップS1102)。
次に、第1量子化テーブルを読み込む(ステップS1103)。ここで、第1量子化テーブルは、前述したものと同様なので詳細な説明は繰り返さない。
次に、ステップS1103で読み込んだ第1量子化テーブル(N×N)を、ステップS1102で生成した変換テーブル(N×N)を用いて調整し、第2量子化テーブルを生成する(S1104)。ここでは説明のため第1量子化テーブルの各要素を配列Q1(i,j)で、変換テーブルの各要素を配列F(i,j)で表す。第2量子化テーブルの各要素Q2(i,j)は、Q1(i,j)/F(i,j)で算出される。ただし、変数i,jそれぞれは、縦方向(行方向)、横方向(列方向)の要素位置を表し、変数i,jを1から起算する場合、1≦i≦N、1≦j≦N (ただし、i,jは整数)となる。
ステップS1105では、ステップS1103で読込まれた第1量子化テーブルを逆量子化用の量子化テーブルとして出力する。また、ステップS1106では、ステップS1104で算出された第2量子化テーブルを量子化用の量子化テーブルとして出力する。第1および第2量子化テーブルの出力先は、画像処理装置10000が予め備えるRAMなどの半導体メモリである。
次のステップS1107では、圧縮処理が実行される。この圧縮処理は、圧縮部106で実行される処理である。圧縮処理の詳細は後述する。この圧縮処理が終了すると、データバッファ109には、量子化部103で量子化に用いた第2量子化テーブルと、エントロピー符号化部105で符号化に用いた符号テーブルおよび符号データが記憶される。
ステップS1108では、ステップS1105で記憶した逆量子化用の第1量子化テーブルを読込む。次のステップS1109では、データバッファ109に記憶されている圧縮データ、すなわち第2量子化テーブルと、エントロピー符号化部105で符号化に用いた符号テーブルおよび符号データを読出す。そして、読出した圧縮データの量子化に用いた第2量子化テーブルを、ステップS1108で読み出した逆量子化用の第1量子化テーブルに置換する(ステップS1110)。ステップS1110では、量子化テーブルを置換するので、圧縮データの書式(フォーマット)は変更されない。ステップS1111では、量子化テーブルが置換された圧縮データを出力する。
図22は、圧縮処理の流れを示すフローチャートである。この圧縮処理は、図21のステップS1107で実行される処理である。図22を参照して、圧縮処理では、量子化に用いる量子化テーブルを読込み、データバッファ109に出力する(ステップS1121)。データバッファ109には、量子化に用いる量子化テーブルが圧縮データの一部(例えばヘッダ)として記憶される。ここで読出される量子化テーブルは、第2量子化テーブルである。
次に、符号テーブルを読込み、データバッファ109に出力する(ステップS1122)。データバッファ109には、符号化に用いた符号テーブルが圧縮データの一部(例えばヘッダ)として記憶される。ここで読出される符号テーブルは、統計的なデータ圧縮技術であるハフマン符号を表すハフマン符号テーブルなどである。
次に、入力画像データをブロック単位で読み込む(S1123)。ここでは、ブロックサイズを8画素×8画素としているが、ブロックサイズはこれに限定されることなく、適宜定めることができる。ここで、入力画像は、例えば輝度成分Yと色差成分Cb、Crとの3プレーンで構成されるカラー画像などである。なお、輝度成分Yのみからなるモノクロ画像であってもよい。
次に、ステップS1123でブロック単位で入力された画像データを周波数変換する(S1124)。周波数変換は、例えば離散コサイン変換(DCT)などである。
そして、ステップS1121で読込んだ量子化用の量子化テーブルを用いて、周波数変換された周波数画像を量子化する(ステップS1125)。
次に、ステップS1122で読込んだ符号テーブルを用いて、ステップS1125で量子化したデータをエントロピー符号化する(ステップS1126)。そして、S1126でエントロピー符号化した符号データをデータバッファ109に出力する(S1127)。データバッファ109には、符号データが量子化に用いた第2量子化テーブルと関連付けて記憶される。
ステップS1128では、全てのブロックについて、ステップS1123〜ステップS1127までの処理が終了したか否かが判断される。終了した場合には処理を終了し、終了していない場合はステップS1123に戻る。
本実施の形態における画像圧縮装置10000において、量子化テーブル生成部1110は、第1量子化テーブルを取得して逆量子化に用いる量子化テーブルとして、置換部1107に出力する。一方、空間フィルタを用いて、第1量子化テーブルを調整して量子化に用いる第2量子化テーブルを生成して量子化部103に出力する。このため、圧縮時の量子化に用いる第2量子化テーブルと、伸張時の逆量子化に用いる第1量子化テーブルとを容易に生成することができる。
また、調整部113は、量子化に用いる第2量子化テーブルを、空間フィルタを用いて逆量子化に用いる第1量子化テーブルを調整して生成する。このため、空間フィルタの要素数(9個)の値を決定することにより量子化のための量子化テーブルおよび逆量子化のための量子化テーブルを決定することができる。特に、空間フィルタに平滑化フィルタを用いた場合には、量子化部103による量子化処理で発生する量子化誤差により発生するノイズ、例えばモスキートノイズを低減することができる。
さらに、量子化テーブル生成部1110は、量子化に用いる量子化テーブルを空間フィルタを用いて調整して生成するので、圧縮データを伸張した画像は、空間フィルタを用いた画像処理と同等の処理が施されたものとなる。圧縮または伸張の処理過程で空間フィルタ処理を行う必要がない。
さらに、変換テーブル生成部117は、空間フィルタを周波数変換して変換テーブルを生成し、調整部113は、量子化テーブルの要素を変換テーブルの対応する要素で除算するので、第2量子化テーブルを容易に求めることができる。
量子化テーブル記憶部120には、前述の第1量子化テーブルと、量子化テーブル生成部1110の前述の処理により予め生成された第2量子化テーブルとが関連付けて記憶される。
本実施の形態の処理は、量子化テーブル記憶部120に記憶された第1および第2量子化テーブルを用いても実施可能である。
この場合、まず、周波数変換部101が、入力画像データを周波数変換する。次に、量子化部103は、量子化テーブル記憶部120に記憶された第2量子化テーブルを用いて、周波数変換部101により周波数変換されたデータを量子化する。また、量子化部103は、第2量子化テーブルをデータバッファ109に記憶させる。
次に、エントロピー符号化部105が、量子化部103により生成された量子化データをエントロピー符号化する。また、エントロピー符号化部105は、エントロピー符号化した符号データを、第2量子化テーブルと関連付けてデータバッファ109に記憶させる。
次に、置換部1107は、データバッファ109により符号化された符号データと関連付けられた第2量子化テーブルを量子化テーブル記憶部120に記憶された第1量子化テーブルに置換する。
すなわち、図21に示した画像圧縮処理において、ステップS1101〜S1104を実行することなく、記憶された第1量子化テーブルと第2量子化テーブルが読込まれる。
(第10の実施の形態)
図23は、第10の実施の形態における画像圧縮装置の概略構成を示す機能ブロック図である。図23を参照して、第10の実施の形態における画像圧縮装置10000Aは、第9の実施の形態における画像圧縮装置10000と異なるところは、量子化テーブル生成部1110Aの量子化テーブル取得部111A、調整部113A、置換部1107A、量子化テーブル記憶部120Aである。以下異なる点を主に説明する。
量子化テーブル取得部111Aは、予め定められた量子化テーブルを取得する。この点では量子化テーブル取得部111と変わるところはない。量子化テーブル取得部111Aは、取得した第1量子化テーブルを調整部113Aおよび量子化部103に出力する。したがって、量子化部103は、第1量子化テーブルが入力されるので、第1量子化テーブルを用いて量子化することになる。そして、第1量子化テーブルが量子化に用いる量子化テーブルとしてデータバッファ109に記憶される。
調整部113Aは、変換テーブル生成部117および量子化テーブル取得部111Aと接続される。変換テーブル生成部117から変換テーブルが入力され、量子化テーブル取得部111Aから第1量子化テーブルが入力される。調整部113Aは、変換テーブルを第1量子化テーブルに作用させてテーブル値を調整し、第3量子化テーブルを生成する。調整部113が第2量子化テーブルを生成するのに対して、調整部113Aが第3量子化テーブルを生成する点で異なる。調整部113Aは、生成した第3量子化テーブルを置換部1107Aに出力する。第3量子化テーブルは、圧縮データの伸長においてエントロピー復号された周波数画像データを逆量子化する際に用いる量子化テーブルである。
この調整部113Aでは、第3量子化テーブルの各要素は、それに対応する第1量子化テーブルの要素値と変換テーブルの要素値とを乗算した値とされる。すなわち、調整部113Aは、第3量子化テーブルの各要素の配列をQ3(i,j)で表現すると、Q3(i,j)=Q1(i,j)・F(i,j)を算出する。第3量子化テーブルの各要素Q3(i,j)は全て整数であることが好ましく、除算の際には、小数点以下を切り捨て、四捨五入、切り上げなどの方法により整数化される。原理的には四捨五入であることが好ましい。
置換部1107Aは、調整部113Aおよびデータバッファ109と接続される。置換部1107Aは、調整部113Aから逆量子化に用いる量子化テーブルが入力される。置換部1107Aは、データバッファ109から量子化に用いられた量子化テーブルと、符号テーブルと、符号データとを読出し、量子化に用いられた量子化テーブルを逆量子化に用いる量子化テーブルに置換する。本実施の形態においては、データバッファ109に記憶された第1量子化テーブルを、調整部113Aから入力された第3量子化テーブルに置換する。
そして、置換部1107Aは、第3量子化テーブル、符号テーブルおよび符号データを出力する。すなわち、置換部1107Aは、逆量子化に用いる第3量子化テーブルと符号データとを関連付けて出力する。関連付けは量子化テーブルをヘッダとして符号データに付加して1つの圧縮データとして出力する場合を含む。なお、ブロックごとに量子化テーブルを関連付けてもよいし、複数のブロックをまとめた複数ブロックごとに量子化テーブルを関連付けてもよい。
図24は、第10の実施の形態の画像圧縮装置で実行される画像圧縮処理の流れを示すフローチャートである。図24を参照して、第9の実施の形態における画像圧縮装置10000で実行される画像圧縮処理と異なるところは、ステップS1104A,S1105A,S1106A,S1108A,S1110Aである。以下異なる処理について主に説明する。
ステップS1104Aでは、ステップS1103で読み込んだ第1量子化テーブル(N×N)を、ステップS1102で生成した変換テーブル(N×N)を用いて調整し、前述の図11で説明した第3量子化テーブルを生成する。ここでは説明のため第1量子化テーブルの各要素を配列Q1(i,j)で、変換テーブルの各要素を配列F(i,j)で表す。第3量子化テーブルの各要素Q3(i,j)は、Q1(i,j)・F(i,j)で算出される。ただし、変数i,jそれぞれは、縦方向(行方向)、横方向(列方向)の要素位置を表し、変数i,jを1から起算する場合、1≦i≦N、1≦j≦N (ただし、i,jは整数)となる。
ステップS1105Aでは、ステップS1103で読込まれた第1量子化テーブルを量子化用の量子化テーブルとして出力する。また、ステップS1106Aでは、ステップS1104Aで算出された第3量子化テーブルを逆量子化用の量子化テーブルとして出力する。第1および第3量子化テーブルの出力先は、画像処理装置10000Aが予め備えるRAMなどの半導体メモリである。
次のステップS1107では、図22に示した圧縮処理が実行される。この圧縮処理が実行されると、データバッファ109には、量子化部103で量子化に用いた第1量子化テーブルと、エントロピー符号化部105で符号化に用いた符号テーブルおよび符号データが記憶される。
ステップS1108Aでは、ステップS1106Aで記憶した逆量子化用の第3量子化テーブルを読込む。次のステップS1109では、データバッファ109に記憶されている圧縮データ、すなわち第1量子化テーブルと、エントロピー符号化部105で符号化に用いた符号テーブルおよび符号データを読出す。そして、読出した圧縮データの量子化に用いた第1量子化テーブルを、ステップS1108Aで読み出した逆量子化用の第3量子化テーブルに置換する(ステップS1110A)。ステップS1110Aでは、量子化テーブルを置換するので、圧縮データの書式(フォーマット)は変更されない。ステップS1111では、量子化テーブルが置換された圧縮データを出力する。
以上説明したように第10の実施の形態における画像圧縮装置10000Aにおいて、量子化テーブル生成部1110Aは、第1量子化テーブルを取得して量子化に用いる量子化テーブルとして量子化部103に出力する。一方、空間フィルタを用いて、第1量子化テーブルを調整して逆量子化に用いる第3量子化テーブルを生成して置換部1107Aに出力する。このため、空間フィルタの要素数(9個)の値を決定することにより量子化のための第1量子化テーブルおよび逆量子化のための第3逆量子化テーブルを決定することができる。圧縮時の量子化に用いる第1量子化テーブルと、伸張時の逆量子化に用いる第3量子化テーブルとを容易に生成することができる。
また、調整部113Aは、逆量子化に用いる第3量子化テーブルを、空間フィルタを用いて量子化に用いる量子化テーブルを調整して生成する。このため、圧縮データを伸張した画像は、空間フィルタを用いた画像処理と同等の処理が施されたものとなるので、圧縮または伸張の処理過程で空間フィルタ処理を行う必要がない。
特に、空間フィルタに平滑化フィルタを用いた場合には、量子化部103による量子化処理で発生する量子化誤差により発生するノイズ、例えばモスキートノイズを低減することができる。
さらに、変換テーブル生成部117は、空間フィルタを周波数変換して変換テーブルを生成し、調整部113Aは、量子化テーブルの要素と変換テーブルの対応する要素とを乗算するので、第3量子化テーブルを容易に求めることができる。
さらに、画像圧縮装置10000Aの構成を変更することが困難である場合に、伸長装置側のみでフィルタ処理を施すことを可能とすることができる。
量子化テーブル記憶部120Aには、前述の第1量子化テーブルと、量子化テーブル生成部1110Aの前述の処理により予め生成された第3量子化テーブルとが関連付けて記憶される。
本実施の形態の処理は、量子化テーブル記憶部120Aに記憶された第1および第3量子化テーブルを用いても実施可能である。
この場合、まず、周波数変換部101が、入力画像データを周波数変換する。次に、量子化部103は、量子化テーブル記憶部120Aに記憶された第1量子化テーブルを用いて、周波数変換部101により周波数変換されたデータを量子化する。また、量子化部103は、第1量子化テーブルをデータバッファ109に記憶させる。
次に、エントロピー符号化部105が、量子化部103により生成された量子化データをエントロピー符号化する。また、エントロピー符号化部105は、エントロピー符号化した符号データを、第1量子化テーブルと関連付けてデータバッファ109に記憶させる。
次に、置換部1107Aは、データバッファ109により符号化された符号データと関連付けられた第1量子化テーブルを量子化テーブル記憶部120Aに記憶された第3量子化テーブルに置換する。
(第11の実施の形態)
図25は、第11の実施の形態における画像圧縮装置の概略構成を示す機能ブロック図である。図25を参照して、第11の実施の形態における画像圧縮装置10000Bは、第10の実施の形態における画像圧縮装置10000Aと異なるところは、量子化テーブル取得部111Aを含まない点と、量子化テーブル記憶部120Aの代わりに量子化テーブル記憶部120Bを含む点と、調整部113Aに量子化部103から第1量子化テーブルが入力される点である。量子化テーブル記憶部120Bには、予め、第1量子化テーブルが記憶されている。以下異なる点を主に説明する。
量子化部103には、量子化テーブル記憶部120Bから第1量子化テーブルが入力される。量子化部103は、第1量子化テーブルが入力されるので、第1量子化テーブルを用いて量子化することになる。そして、量子化部103は、量子化に用いた第1量子化テーブルを調整部113Aに出力する。
調整部113Aは、変換テーブル生成部117および量子化部103と接続される。変換テーブル生成部117から変換テーブルが入力され、量子化部103から第1量子化テーブルが入力される。調整部113Aは、変換テーブルを第1量子化テーブルに作用させてテーブル値を調整し、第3量子化テーブルを生成する。調整部113Aは、生成した第3量子化テーブルを置換部1107Aに出力する。第3量子化テーブルは、圧縮データの伸長においてエントロピー復号された周波数画像データを逆量子化する際に用いる量子化テーブルである。
以上説明したように第11の実施の形態における画像圧縮装置10000Bにおいて、量子化テーブル生成部1110Bは、量子化部103から第1量子化テーブルを取得し、空間フィルタを用いて、第1量子化テーブルを調整して逆量子化に用いる第3量子化テーブルを生成して置換部1107Aに出力する。このため、量子化部103で量子化に用いる量子化テーブルが、実際に量子化部103に入力された量子化テーブルと異なる場合であっても、量子化に用いた第1量子化テーブルを調整した第3量子化テーブルを生成することができる。たとえば、量子化部103において、入力された量子化テーブルに所定の倍率を乗算するなどした量子化テーブルを量子化に用いた場合である。
なお、第11の実施の形態においては、空間フィルタ取得部115で取得された空間フィルタを変換テーブル生成部117で変換した変換テーブルを予め準備して記憶しておくようにしてもよい。この場合には、図24に示した画像圧縮処理のステップS1101〜S1102は実行されることなく、記憶された変換テーブルが読み出されることになる。
(第12の実施の形態)
図26は、第12の実施の形態における画像圧縮装置の概略構成を示す機能ブロック図である。図26を参照して、第12の実施の形態における画像圧縮装置10000Cは、第9の実施の形態における画像圧縮装置10000と異なるところは、量子化テーブル生成部1110Cの量子化テーブル取得部111B、第1調整部113B、第2調整部119、置換部1107Bおよび量子化テーブル記憶部120Cである。以下異なる点を主に説明する。
量子化テーブル取得部111Bは、予め定められた量子化テーブルを取得する。この点では量子化テーブル取得部111と変わるところはない。量子化テーブル取得部111Bは、取得した第1量子化テーブルを第1調整部113Bにのみ出力する。
第1調整部113Bは、変換テーブル生成部117および量子化テーブル取得部111Bと接続される。変換テーブル生成部117から変換テーブルが入力され、量子化テーブル取得部111Bから第1量子化テーブルが入力される。第1調整部113Bは、変換テーブルを第1量子化テーブルに作用させてテーブル値を調整し、第2量子化テーブルを生成する。この点では調整部113と変わらない。第1調整部113Bでは、第2量子化テーブルの各要素は、それに対応する第1量子化テーブルの要素値を変換テーブルの要素値で除算した値とされる。より具体的に説明すれば、第1調整部113Bは、第1量子化テーブルをQ1(i,j)、第2量子化テーブルをQ2(i,j)、変換テーブルをF(i,j)とすると、Q2(i,j)=Q1(i,j)/F(i,j)を算出する。第2量子化テーブルの各要素Q2(i,j)は全て整数であることが好ましく、除算の際には、小数点以下を切り捨て、四捨五入、切り上げなどの方法により整数化される。原理的には四捨五入であることが好ましい。第1調整部113Bは、生成した第2量子化テーブルを量子化部103に出力する。
第1調整部113Bは、量子化部103で量子化に用いられる第2量子化テーブルを生成し、量子化部103に出力する。このため、量子化部103では、第2量子化テーブルを用いて量子化する。
第2調整部119は、変換テーブル生成部117および量子化部103と接続される。変換テーブル生成部117から変換テーブルが入力され、量子化部103から量子化に用いた第2量子化テーブルが入力される。第2調整部119は、変換テーブルを第2量子化テーブルに作用させてテーブル値を調整し、第4量子化テーブルを生成する。第4量子化テーブルは、圧縮データの伸長においてエントロピー復号された周波数画像データを逆量子化する際に用いる量子化テーブルである。
第2調整部119における調整は、第4量子化テーブルの各要素は、それに対応する第2量子化テーブルの要素値と変換テーブルの要素値とを乗算した値とされる。より具体的に説明すれば、第2調整部119は、第4量子化テーブルの各要素の配列をQ4(i,j)で表すと、Q4(i,j)=Q2(i,j)・F(i,j)を算出する。第4量子化テーブルQ4(i,j)の各要素は全て整数であることが好ましく、乗算の際には、小数点以下を切り捨て、四捨五入、切り上げなどの方法により整数化される。原理的には四捨五入であることが好ましい。
第2調整部119は、生成した第4量子化テーブルを置換部1107Bに出力する。第2調整部119は、逆量子化に用いる第4量子化テーブルを生成して、置換部1107Bに出力する。
置換部1107Bは、第2調整部119およびデータバッファ109と接続される。置換部1107Bは、第2調整部119から逆量子化に用いる量子化テーブルが入力される。置換部1107Bは、データバッファ109から量子化に用いられた量子化テーブルと、符号テーブルと、符号データとを読出し、量子化に用いられた量子化テーブルを逆量子化に用いる量子化テーブルに置換する。本実施の形態においては、データバッファ109に記憶された第2量子化テーブルを、第2調整部119から入力された第4量子化テーブルに置換する。
そして、置換部1107Bは、第4量子化テーブル、符号テーブルおよび符号データを出力する。すなわち、置換部1107Bは、逆量子化に用いる第4量子化テーブルと符号データとを関連付けて出力する。関連付けは量子化テーブルをヘッダとして符号データに付加して1つの圧縮データとして出力する場合を含む。なお、ブロックごとに量子化テーブルを関連付けてもよいし、複数のブロックをまとめた複数ブロックごとに量子化テーブルを関連付けてもよい。
図27は、第12の実施の形態の画像圧縮装置で実行される画像圧縮処理の流れを示すフローチャートである。図27を参照して、第9の実施の形態における画像圧縮装置10000で実行される画像圧縮処理と異なるところは、ステップS1104BがステップS1104の後に追加された点、およびステップS1105B,S1106B,S1108B,S1110Bが変更された点である。以下異なる処理について主に説明する。
ステップS1104Bでは、ステップS1104で算出された第2量子化テーブル(N×N)を、ステップS1102で生成した変換テーブル(N×N)を用いて調整し、第4量子化テーブルを生成する。ここでは説明のため第2量子化テーブルの各要素を配列Q2(i,j)で、変換テーブルの各要素を配列F(i,j)で表す。第4量子化テーブルの各要素Q4(i,j)は、Q2(i,j)・F(i,j)で算出される。ただし、変数i,jそれぞれは、縦方向(行方向)、横方向(列方向)の要素位置を表し、変数i,jを1から起算する場合、1≦i≦N、1≦j≦N (ただし、i,jは整数)となる。
ステップS1105Bでは、ステップS1104で算出された第2量子化テーブルを量子化用の量子化テーブルとして出力する。また、ステップS1106Bでは、ステップS1104Bで算出された第4量子化テーブルを逆量子化用の量子化テーブルとして出力する。第2および第4量子化テーブルの出力先は、画像処理装置10000Cが予め備えるRAMなどの半導体メモリである。
次のステップS1107では、図22に示した圧縮処理が実行される。この圧縮処理が実行されると、データバッファ109には、量子化部103で量子化に用いた第2量子化テーブルと、エントロピー符号化部105で符号化に用いた符号テーブルおよび符号データが記憶される。
ステップS1108Bでは、ステップS1106Bで記憶した逆量子化用の第4量子化テーブルを読込む。次のステップS1109では、データバッファ109に記憶されている圧縮データ、すなわち第2量子化テーブルと、エントロピー符号化部105で符号化に用いた符号テーブルおよび符号データを読出す。そして、読出した圧縮データの量子化に用いた第2量子化テーブルを、ステップS1108Bで読み出した逆量子化用の第4量子化テーブルに置換する(ステップS1110B)。ステップS1110Bでは、量子化テーブルを置換するので、圧縮データの書式(フォーマット)は変更されない。ステップS1111では、量子化テーブルが置換された圧縮データを出力する。
以上説明したように第12の実施の形態における画像圧縮装置10000Cにおいて、量子化テーブル生成部1110Cは、空間フィルタを用いて、第1量子化テーブルを調整して量子化に用いる第2量子化テーブルを生成して量子化部103に出力する。一方、空間フィルタを用いて、第2量子化テーブルを調整して逆量子化に用いる第4量子化テーブルを生成して置換部1107Bに出力する。このため、空間フィルタの要素数(9個)の値を決定することにより量子化のための第2量子化テーブルおよび逆量子化のための第4量子化テーブルを決定することができる。また、圧縮時の量子化に用いる第2量子化テーブルと、伸張時の逆量子化に用いる第4量子化テーブルとを容易に生成することができる。
また、第2調整部119は、量子化に用いた量子化テーブルを、空間フィルタを用いて調整して第4量子化テーブルを生成するので、量子化部103で量子化に用いる量子化テーブルが、第1調整部113Bで生成され、量子化部103に入力された第2量子化テーブルと異なる場合であっても、量子化に用いた量子化テーブルを調整した第4量子化テーブルを生成することができる。たとえば、量子化部103において、入力された第2量子化テーブルに所定の倍率を乗算するなどした量子化テーブルを量子化に用いた場合である。
また、空間フィルタに平滑化フィルタを用いた場合には、量子化部103による量子化処理で発生する量子化誤差により発生するノイズ、例えばモスキートノイズを低減することができる。
さらに、変換テーブル生成部117は、空間フィルタを周波数変換して変換テーブルを生成し、第1調整部113Bは、第1量子化テーブルの要素を変換テーブルの対応する要素で除算するので、第2量子化テーブルを容易に求めることができ、第2調整部119は、第2量子化テーブルの要素を変換テーブルの対応する要素で乗算するので、第4量子化テーブルを容易に求めることができる。
なお、第12の実施の形態においては、空間フィルタ取得部115で取得された空間フィルタを変換テーブル生成部117で変換した変換テーブルを予め準備して記憶しておくようにしてもよい。この場合には、図27に示した画像圧縮処理のステップS1101およびS1102は実行されることなく、記憶された変換テーブルが読み出される。
量子化テーブル記憶部120Cには、第1調整部113Bが、第1量子化テーブルを空間フィルタで調整することで予め生成した第2量子化テーブルが記憶されている。
本実施の形態の処理は、量子化テーブル記憶部120Cに記憶された第2量子化テーブルを用いても実施可能である。
この場合、まず、周波数変換部101が、入力画像データを周波数変換する。次に、量子化部103は、量子化テーブル記憶部120Cに記憶された第2量子化テーブルを用いて、周波数変換部101により周波数変換されたデータを量子化する。また、量子化部103は、第2量子化テーブルをデータバッファ109に記憶させる。
次に、エントロピー符号化部105が、量子化部103により生成された量子化データをエントロピー符号化する。また、エントロピー符号化部105は、エントロピー符号化した符号データを、第2量子化テーブルと関連付けてデータバッファ109に記憶させる。第2調整部119は、空間フィルタを用いて量子化に用いられた第2量子化テーブルに作用させてテーブル値を調整し、逆量子化に用いる第4量子化テーブルを生成する。
次に、置換部1107Bは、データバッファ109により符号化された符号データと関連付けられた第2量子化テーブルを、第4量子化テーブルに置換する。
すなわち、この場合には、図27の画像圧縮処理のステップS1101〜S1104は実行されることなく、予め記憶された変換テーブルおよび第2量子化テーブルが読出される。
上記の説明では、説明のためにフローチャートを一例として挙げて説明しているが、処理順番について例示したものに限定するものではなく、本発明の主旨に反しない範囲であれば処理の順番を変更しても何ら差し支えはない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。