(57)【特許請求の範囲】
【請求項１】
原画像データに直交変換を施して直交変換係数を求める直交変換手段と、
前記直交変換係数を第１の量子化テーブルを用いて量子化することにより第１の量子化直交変換係数を求める第１の量子化手段と、
この第１の量子化手段により得られた量子化直交変換係数を、第１のハフマンテーブルを用いて符号化する第１のハフマン符号化手段と、
この第１のハフマン符号化手段により得られた符号量を算定し、前記符号量が設定符号量以下であるか否かを判定する符号量判定手段と、
この符号量判定手段により前記符号量が設定符号量以下ではないと判定されたとき、第２のハフマンテーブルを生成する手段と、
少なくとも一部の量子化係数が前記第１の量子化テーブルの量子化係数よりも大きい値を有する第２の量子化テーブルを用いて、前記直交変換係数を量子化することにより第２の量子化直交変換係数を求める第２の量子化手段と、
前記第２のハフマンテーブルを用いて前記第１または第２の量子化直交変換係数を符号化する第２のハフマン符号化手段とを備え、
前記第２のハフマンテーブルは、前記第１のハフマンテーブルの符号長を基にして、前記第１の量子化直交変換係数に対応した係数値において、出現数が最大である係数値の符号長と最小の符号長を有する係数値のうち出現数が最小である符号長とを交換して、全符号語のビット長の総和を減少させることにより生成されることを特徴とする画像圧縮装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、カラー静止画像をＪＰＥＧアルゴリズムに準拠して情報圧縮する画像圧縮装置に関する。
【０００２】
【従来の技術】
高解像度画像を符号化して通信伝送路を介して情報の授受を行う標準化アルゴリズムが、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）から勧告されている。このＪＰＥＧから勧告されているアルゴリズム、すなわちＪＰＥＧアルゴリズムのベースライン・プロセスでは、大幅な情報圧縮を行うため、初めに２次元ＤＣＴ変換によって原画像データを空間周波数軸上の成分に分解し、そして、その空間周波数軸上で表された各データを量子化し、さらに量子化した各データを符号化する。ＪＰＥＧでは、この符号化のため、所定のハフマンテーブルを推奨している。
【０００３】
一方、固定長化圧縮、すなわち１つの画面に対応した画像データの量が一定値になるように情報圧縮する画像圧縮装置が従来知られている。このような画像圧縮装置では、ハフマンテーブルを用いた符号化によっても画像データの量がまだ一定値を越えている場合、量子化テーブルを変更して量子化を再び行うことにより情報圧縮を図っている。この結果、まだ画像データの量が多過ぎる場合には、設定ビット長を越えた高周波成分のデータを強制的に０にしている。
【０００４】
【発明が解決しようとする課題】
しかし、このような従来の固定長化圧縮によると、量子化の結果、画像データの量が一定値よりも減少しすぎることがあり、このような場合、画像データを再生した時、原画像に比較して画質が低下することとなる。また、量子化の後、設定ビット長を越えた高周波成分のデータを強制的に０に定めた場合にも、再生画像の画質が低下するという問題が発生する。
【０００５】
本発明は、以上のような問題点に鑑み、再生画像の画質を低下させることなく、画像データを固定長化圧縮することができる画像圧縮装置を提供することを目的としている。
【０００６】
【課題を解決するための手段】
本発明に係る画像圧縮装置は、原画像データに直交変換を施して直交変換係数を求める直交変換手段と、直交変換係数を第１の量子化テーブルを用いて量子化することにより量子化直交変換係数を求める第１の量子化手段と、この第１の量子化手段により得られた量子化直交変換係数を、第１のハフマンテーブルを用いて符号化する第１のハフマン符号化手段と、この第１のハフマン符号化手段により得られた符号量を算定し、符号量が設定符号量以下であるか否かを判定する符号量判定手段と、この符号量判定手段により符号量が設定符号量以下ではないと判定されたとき、第２のハフマンテーブルを生成する手段と、第２のハフマンテーブルを用いて量子化直交変換係数を符号化する第２のハフマン符号化手段とを備えたことを特徴としている。
【０００７】
【実施例】
以下図示実施例に基づいて本発明を説明する。
図１は本発明の第１実施例に係る画像圧縮装置のブロック図である。
【０００８】
被写体Ｓから到来した光は集光レンズ１１によって集光され、被写体像がＣＣＤ（固体撮像素子）１２の受光面上に結像される。ＣＣＤ１２の受光面には多数の光電変換素子が配設され、また光電変換素子の上面には、例えばＲ、Ｇ、Ｂの各色フィルタ要素から成るカラーフィルタが設けられている。各光電変換素子はひとつの画素データに対応している。被写体像は、各光電変換素子によって所定の色に対応した電気信号に変換され、Ａ／Ｄ変換器１３に入力される。なお、図１の構成ではＣＣＤ１２が１枚のみであるが、２枚以上のＣＣＤが設けられた構成でもよい。
【０００９】
Ａ／Ｄ変換器１３においてＡ／Ｄ変換された信号は、図示しない信号処理回路によって輝度信号Ｙと色差信号Ｃｂ、Ｃｒとに変換され、画像メモリ１４に入力される。画像メモリ１４は輝度信号Ｙおよび色差信号Ｃｂ、Ｃｒをそれぞれ格納するために、相互に独立したメモリ領域に分割されており、各メモリ領域は１画像分の記憶容量を有している。
【００１０】
画像メモリ１４から読み出された輝度信号Ｙおよび色差信号Ｃｂ、Ｃｒは、データ圧縮処理のため、ＤＣＴ処理回路２１に入力される。ＤＣＴ処理回路２１では、輝度信号Ｙ等の原画像データが離散コサイン変換（以下ＤＣＴという）される。すなわち本実施例では、原画像データの直交変換としてＤＣＴ変換が利用される。なお、図１ではＤＣＴ処理回路２１が１つの処理回路として示されているが、実際には輝度信号Ｙおよび色差信号Ｃｂ、Ｃｒ毎に独立したＤＣＴ処理回路が設けられている。
【００１１】
ＤＣＴ処理回路２１、量子化処理回路２２、ハフマン符号化処理回路２３、制御回路２４等から成る画像圧縮装置では、輝度信号Ｙ等の画像データは１画面に関して複数のブロックに分割され、ブロック単位で処理される。また各ブロックは８×８個の画素データから構成される。
【００１２】
ＤＣＴ処理回路２１において求められた輝度信号Ｙおよび色差信号Ｃｂ、ＣｒのＤＣＴ係数は、それぞれ量子化処理回路２２に入力される。量子化処理回路２２も、ＤＣＴ処理回路２１と同様、各信号毎に設けられている。量子化処理回路２２に入力された輝度信号Ｙ、色差信号Ｃｂ、ＣｒのＤＣＴ係数は、８×８個の量子化係数により構成される量子化テーブルによって、それぞれ量子化される。この量子化は線形量子化であり、すなわち各ＤＣＴ係数は対応する量子化係数によって割算される。
【００１３】
なお本実施例においては、ＪＰＥＧアルゴリズムに準拠して、輝度信号ＹのＤＣＴ係数を量子化する量子化テーブルと、色差信号Ｃｂ、ＣｒのＤＣＴ係数を量子化する量子化テーブルとは異なっているが、各信号において同一の量子化テーブルを用いてもよい。また、これらの量子化テーブルは、後述するように固定長化圧縮のため、制御回路２４によって変更可能である。
【００１４】
量子化処理回路２２から出力された輝度信号Ｙ、色差信号Ｃｂ、Ｃｒの量子化ＤＣＴ係数はハフマン符号化処理回路２３に入力され、所定のアルゴリズムによりハフマン符号化される。このハフマン符号化において用いられるハフマンテーブルはハフマン符号長テーブルに従って生成され、ハフマン符号長テーブルは、量子化テーブルと同様に制御回路２４によって変更可能である。
【００１５】
ハフマン符号化により得られた画像信号（Ｙ’，Ｃｂ’，Ｃｒ’）は、ＩＣメモリカード（記録媒体）Ｍに記録される。この画像データのＩＣメモリカードＭへの記録の際に、量子化テーブルとハフマン符号長テーブルも画像データ内に組み込まれてＩＣメモリカードＭに記録される。
【００１６】
図２は、一例として、８×８画素のブロックの画像データＰ（Ｙ）ｘｙ  と、ＤＣＴ係数Ｓ（Ｙ）ｕｖ  と、量子化ＤＣＴ係数Ｒ（Ｙ）ｕｖ  と、量子化テーブルＱ（Ｙ）ｕｖ  とを示している。
【００１７】
図２（ａ）の画像データＰ（Ｙ）ｘｙ  は、２次元ＤＣＴ変換によって、図２（ｂ）に示す８×８＝６４個のＤＣＴ係数Ｓ（Ｙ）ｕｖ  に変換される。これらのＤＣＴ係数のうち、位置（０，０）にあるＤＣＴ係数Ｓ（Ｙ）００  はＤＣ係数であり、残り６３個のＤＣＴ係数Ｓ（Ｙ）ｕｖ  はＡＣ係数である。ＡＣ係数は、係数Ｓ（Ｙ）０１  若しくは係数Ｓ（Ｙ）１０  から係数Ｓ（Ｙ）７７  に向かって、より高い空間周波数成分が８×８画素ブロックの画像データ中にどのくらいあるかを示している。ＤＣ係数は８×８画素のブロック全体の画素値の平均値（直流成分）を表している。すなわち、各ＤＣＴ係数Ｓ（Ｙ）ｕｖ  はそれぞれ所定の空間周波数に対応している。
【００１８】
図２（ｄ）は量子化処理回路２１で用いられる量子化テーブルＱ（Ｙ）ｕｖ  の一例を示している。このような量子化テーブルＱ（Ｙ）ｕｖ  としては、上述したように、輝度信号Ｙと色差信号Ｃｂ、Ｃｒとで別のものでもよい。この場合、ＪＰＥＧフォーマットの画像データをＩＣメモリカードＭに記録する際に、各信号に対応した位置に、その信号の量子化に使用された量子化テーブルＱ（Ｙ）ｕｖ  の内容が記録される。
【００１９】
量子化テーブルＱ（Ｙ）ｕｖ  を用いてＤＣＴ係数Ｓ（Ｙ）ｕｖ  を量子化する式は以下のように定義される。
Ｒ（Ｙ）ｕｖ  ＝ｒｏｕｎｄ（Ｓ（Ｙ）ｕｖ  ／Ｑ（Ｙ）ｕｖ）  ｛０≦  ｕ，ｖ≦７｝
この式における  ｒｏｕｎｄは最も近い整数への近似を意味する。すなわち、ＤＣＴ係数Ｓ（Ｙ）ｕｖ  及び量子化テーブルＱ（Ｙ）ｕｖ  の各要素同士の割算と四捨五入とによって、図２（ｃ）に示すような量子化ＤＣＴ係数Ｒ（Ｙ）ｕｖ  が求められる。
【００２０】
このようにして量子化処理回路２２において求められた量子化ＤＣＴ係数Ｒ（Ｙ）ｕｖ  、Ｒ（Ｃｂ）ｕｖ、Ｒ（Ｃｒ）ｕｖは、ハフマン符号化処理回路２３に入力される。
【００２１】
次にハフマン符号化処理回路２３におけるハフマン符号化について、図３〜図７を参照して説明する。
量子化ＤＣ係数Ｒ（Ｙ）００  と量子化ＡＣ係数（量子化ＤＣ係数Ｒ（Ｙ）００  以外の量子化ＤＣＴ係数Ｒ（Ｙ）ｕｖ  ）では符号化方法が異なっている。量子化ＤＣ係数Ｒ（Ｙ）００  の符号化は次のように行われる。
【００２２】
まず、現在符号化しようとするブロックの量子化ＤＣ係数Ｒ（Ｙ）００  と一つ前に符号化されたブロックの量子化ＤＣ係数Ｒ（Ｙ）００  との差分が求められる。この差分値が図３に示すグループの何れに属するかが判断され、そのグループの番号を表す符号語が、図４に示す符号表（ＤＣ係数の符号化テーブル）から求められる。例えば、現在符号化しようとするブロックの量子化ＤＣ係数Ｒ（Ｙ）００  が「１６」であり、一つ前に符号化されたブロックの量子化ＤＣ係数Ｒ（Ｙ）００  が「２５」である時、差分値は「−９」であるので、図３のグループ番号表から、差分値＝−９の属するグループの番号（ＳＳＳＳ）は「４」と判別され、さらにそのグループ番号（ＳＳＳＳ）の符号語が図４の符号表より「  １０１」と判断される。
【００２３】
次いで差分値が、図３のグループ番号表において、そのグループ内において何番目の値であるかが、付加ビットにより表される。例えば差分値＝−９はグループ番号（ＳＳＳＳ）＝４のグループにおいて、小さい方から７番目にあるので、付加ビットは「０１１０」となる。すなわち、現在符号化しているブロックの量子化ＤＣ係数Ｒ（Ｙ）００  のハフマン符号語は「  １０１０１１０」となる。
【００２４】
一方、量子化ＡＣ係数の符号化は、図５に示す処理ルーチンによって行われる。まずステップ１２０において、６３個の量子化ＡＣ係数が図６に示す順序でジクザクスキャンされ、１次元配列データに並びかえられる。次に、ステップ１２２では、１次元に並べられた各量子化ＡＣ係数値が「０」であるか否かが判断される。量子化ＡＣ係数が「０」である時、ステップ１２４において、その「０」である量子化ＡＣ係数が連続する数がカウントされる。これにより「０」が連続する長さ、すなわちラン長（ＮＮＮＮ）が求められる。
【００２５】
これに対し、ステップ１２２において量子化ＡＣ係数が「０」でないと判断された時、ステップ１２６において、量子化ＤＣ係数と同じようなグループ分けが行われるとともに付加ビットが求められる。この量子化ＡＣ係数のグループ分けは、量子化ＤＣ係数のグループ分けとは異なり、その量子化ＡＣ係数そのものについて行われる。すなわち、量子化ＡＣ係数が例えば「４」である時、図７に示す表を参照してグループ番号（ＳＳＳＳ）「３」が得られる。また、量子化ＡＣ係数「４」はグループ番号（ＳＳＳＳ）＝３のグループにおいて小さい方から５番目にあるので、付加ビットは「  １００」となる。
【００２６】
ステップ１３０では、ハフマンテーブルのＡＣ符号表（図９）を参照し、例えば量子化ＡＣ係数「４」の直前のデータのラン長が「０」である場合、このラン長とグループ番号（ＳＳＳＳ）  ＝３とに基づいて、符号語「  １００」が得られる。そして、この符号語「  １００」とステップ１２６において得られた付加ビット「  １００」を組み合わせことにより２次元ハフマン符号語「１００１００」が求められる。
【００２７】
図２（ｃ）の量子化ＤＣＴ係数をハフマン符号化した結果を、図８の符号化データ９９として示す。
【００２８】
図１０は、画像データの固定長化圧縮の処理の流れを示すブロック図であり、図１１は、この固定長化圧縮の処理ルーチンを示すフローチャートである。これらの図を参照して、固定長化圧縮の処理を説明する。
【００２９】
ステップ２０１では、Ａ／Ｄ変換された画像データが画像メモリ１４に格納される。画像メモリ１４から読み出された画像データは、ステップ２０２において、ＤＣＴ処理回路２１によりＤＣＴ係数に変換される。ＤＣＴ係数はステップ２０３において、第１の量子化テーブルＲＴ１を用いて量子化され、ステップ２０４において、第１のハフマンテーブルＨＴ１を用いてハフマン符号化される。なお、ハフマンテーブルＨＴ１の一部は図９に示されている。
【００３０】
ステップ２０５では、ハフマン符号化により得られた全符号語のビット長の総和、すなわち圧縮符号量が算定されるとともに、設定符号量以下であるか否かが判定される。この設定符号量は、固定長化圧縮により得られる符号量の目標値であり、例えばユーザーが画像圧縮装置のスイッチ等を操作することにより定められる。圧縮符号量が設定符号量以下であると判定された場合、そのハフマン符号語はステップ２０６において圧縮データとして出力され、記録媒体Ｍ（図１）に記録される。
【００３１】
一方ステップ２０５において、圧縮符号量が設定符号量以下ではないと判定された場合、ステップ２１１において、後述するハフマン符号長テーブルが生成され、このハフマン符号長テーブルに基づいて第２のハフマンテーブルＨＴ２が生成される。そしてステップ２１２では、第２のハフマンテーブルＨＴ２を用いて量子化ＤＣＴ係数をハフマン符号化した場合の圧縮符号量が算定されるとともに、この圧縮符号量が設定符号量以下であるか否かが判定される。圧縮符号量が設定符号量以下であると判定された場合、ステップ２１３〜２１６が実行されて圧縮データが記録媒体Ｍに記録され、圧縮符号量がまだ設定符号量よりも大きいと判定された場合、ステップ２２１以下が実行され、量子化テーブルを変更して再びハフマン符号化が行われる。
【００３２】
すなわちステップ２１３では、画像データがＤＣＴ処理回路２１によりＤＣＴ係数に変換される。ステップ２１４では、ＤＣＴ係数が第１の量子化テーブルＲＴ１により量子化される。この量子化ＤＣＴ係数は、ステップ２１５において、第２のハフマンテーブルＨＴ２によりハフマン符号化される。このようにして得られたハフマン符号語は、ステップ２１６において圧縮データとして出力され、記録媒体Ｍに記録される。
【００３３】
一方ステップ２２１では、第２の量子化テーブルＲＴ２が生成される。この量子化テーブルＲＴ２は、少なくとも一部の量子化係数が第１の量子化テーブルＲＴ１の量子化係数よりも大きい値を有している。したがって、第１の量子化テーブルを用いて量子化を行う場合と比較して、第２の量子化テーブルＲＴ２を用いた量子化の方が、量子化ＤＣＴ係数の絶対値が小さくなり、これによりハフマン符号語のビット長を短縮させることができる。なお、このような第２の量子化テーブルＲＴ２の生成は従来公知であるので、その説明は省略する。
【００３４】
ステップ２２２では、画像データがＤＣＴ処理回路２１によりＤＣＴ係数に変換され、このＤＣＴ係数はステップ２２３において、第２の量子化テーブルＲＴ２により量子化され、ステップ２２４において、第１のハフマンテーブルＨＴ１によりハフマン符号化される。次いでステップ２２５では、ハフマン符号化の処理の後の圧縮符号量が算定され、設定符号量以下であるか否かが判定される。圧縮符号量が設定符号量以下であると判定された場合、そのハフマン符号語はステップ２２６において圧縮データとして出力され、記録媒体Ｍに記録される。
【００３５】
一方ステップ２２５において、圧縮符号量が設定符号量よりも大きいと判定された場合、ステップ２３１において画像データがＤＣＴ処理回路２１によりＤＣＴ係数に変換され、ステップ２３２において第２の量子化テーブルＲＴ２により量子化される。ステップ２３３では、ビット量調整が行われ、設定ビット長を越えた所定の高周波成分のデータが強制的に０に定められる。次いでステップ２３４では、量子化ＤＣＴ係数が第２のハフマンテーブルＨＴ２によりハフマン符号化され、このハフマン符号語は、ステップ２３５において圧縮データとして出力され、記録媒体Ｍに記録される。
【００３６】
次に図１２〜図１５を参照して、第２のハフマンテーブルを用いたハフマン符号化により達成される固定長化圧縮について説明する。図１２は、ある画像データをハフマン符号化するために生成された第２のハフマンテーブルと、このハフマンテーブルを生成するための手順を示し、図１３〜図１５は第２のハフマンテーブルに対応した符号長等の表を示している。
【００３７】
図１３〜図１５の各表において、最上欄の「０」〜「Ａ」の数値はグループ番号（図３、図７参照）を、左欄の「０」〜「Ｆ」の数値はラン長をそれぞれ示す。なお以下の説明において、ラン長とグループ番号の組合せ（例えばラン長が「０」でグループ番号が「１」である場合は「０１」）をシンボルという。図１３の表中の数値は各シンボルの出現数を示しており、例えばシンボル「０１」の出現数は７２３０である。図１４の表中の各数値はＪＰＥＧにより推奨されたハフマンテーブルの各符号語の符号長を示し、図１５の表中の各数値は、第２のハフマンテーブルの各符号語の符号長を示している。
【００３８】
図１３から理解されるように、この例の画像データにおいて、グループ番号の最大値は「４」であり、ラン長の最大値は「４」である。そして、出現数が０であるものを除くと、各シンボルの出現数はシンボル「０１」が最も多く、「０３」、「００」、「０２」の順に少なくなっており、出現数の最も少ないシンボルは「４１」である。
【００３９】
図１２を参照して第２のハフマンテーブルの生成手順を説明する。
まず、シンボルがその出現数の大きい順に並べられる。なお図１２では、０であるシンボルとしてダミーシンボルを１個追加している。
【００４０】
出現数が最も少ないシンボル「（ダミー）」と、出現数が２番目に小さいシンボル「４１」とに対し、それぞれ１と０が割り当てられる。そして、この２つのシンボルを併せたもの「４１（ダミー）」を１つのシンボルと見做し、このシンボル「４１（ダミー）」と、出現数が次に小さいシンボル「４４」に対し、それぞれ１と０が割り当てられる。以下同様にして、全てのシンボルに１または０が割り当てられる。
【００４１】
次いで、上述のようにして割り当てられた１または０の数字を、割り当てられた時とは逆の順に読み出し、これにより得られた数字がそのシンボルに対する符合語となる。例えば、シンボル「０３」の符合語は「110」であり、シンボル「４１」の符合語は「11111111111110」である。
【００４２】
このようにして得られた第２のハフマンテーブルの符号語は、ＪＰＥＧにより推奨されたハフマンテーブルの符号語とは異なっており、図１３〜図１５の各表の比較から理解されるように、例えば出現数の最も多いシンボル「０１」については、ＪＰＥＧによる符号長（図１４において「２」）よりも第２のハフマンテーブルの符号長（図１５において「１」）の方が短くなっている。また第２のハフマンテーブルにおいて、グループ番号が「４」よりも大きく、あるいはラン長が「４」よりも大きいシンボルについては、符号語は存在しない。
【００４３】
本実施例では、出現数が０より多いシンボルについて第２のハフマンテーブルを生成しており、図１２〜図１５に示す例では、２１個の符号語が生成されている。各シンボルの出現数と、そのシンボルに対応する符号長との積を求め、各積の和を計算すると全符号量（ただし付加ビットのデータ量は含まない）が得られ、図１４の符号長テーブルによると、全符号量は４６７８５ビットであるが、図１５の符号長テーブルによると、全符号量は３８２１８ビットまで縮小されている。
【００４４】
以上のように本実施例によれば、第２のハフマンテーブルを用いて画像データを情報圧縮するように構成されているため、量子化テーブルだけを変更する従来装置と比較して、画像データの情報量を減らしすぎて再生画像の画質が低下することはない。また本実施例によれば、全符号量をできるだけ圧縮できるので、一定の容量を有する記録媒体Ｍに対して、より多くの画像データを記録することが可能となる。
【００４５】
図１６と図１７は第２実施例を示し、図１６は、第２実施例において第２のハフマンテーブルを生成する処理を示すフローチャートであり、図１７は第２のハフマンテーブルに対応した符号長の表を示している。その他の構成は第１実施例と同様である。
【００４６】
これらの図を参照して、第２実施例において、第２のハフマンテーブルを用いたハフマン符号化により達成される固定長化圧縮について説明する。なお、画像データ中の各シンボルの出現数は、第１実施例と同じであり（図１３参照）、またＪＰＥＧにより推奨されたハフマンテーブルの各符号語の符号長も第１実施例と同じである（図１４参照）。図１７の表中の各数値は、第２実施例における第２のハフマンテーブルの各符号語の符号長を示している。
【００４７】
図１６の処理ルーチンにおいて、最初ハフマンテーブルはＪＰＥＧに準拠して生成された図１４の表が設定されている。第２のハフマンテーブルは後述するように、図１４のハフマンテーブルの符号長を基にして、全符号語のビット長の総和が減少するように、２つの係数値（シンボル）に対応した符号長を相互に交換することにより生成される。
【００４８】
ステップ３０１では、削減しようとするビット数すなわち削減ビット数ＢＤが算出される。例えば、図１４のハフマンテーブルを用いた時、図１３の全符号量は４６７８５ビットであり、これを４３０００ビットまで削減しようとする場合、削減ビット数ＢＤは４６７８５−４３０００＝３７８５（ビット）である。ステップ３０２では、全てのシンボルについて、フラグＦｉ  が０に定められる。このフラグＦｉ  は、ステップ３０３が実行された後、ステップ３０４において１に定められる。なお添字ｉは、量子化ＤＣＴ係数のＡＣ成分に関しては１〜１６２の範囲にあり、ＤＣ成分に関しては１〜１２の範囲にある。
【００４９】
ステップ３０３では、フラグＦｊ  が０のシンボルの中で最大の出現数Ｎｊ  を持つシンボルの符号長Ｂｊ  と、フラグＦｋ  が０のシンボルの中で最小の符号長を有するシンボルのうち最も出現数が少ないシンボルの符号長Ｂｋ  とが交換される。初めてステップ３０３が実行されるとき、全てのフラグは０であり、シンボル「０１」が最大の出現数７２３０を有しており、またシンボル「０２」が最小の符号長２を有している。したがってシンボル「０１」と「０２」の符号長が交換されるが、これらは共に２であるので、この場合にはビット長は削減されない。
【００５０】
ステップ３０４では、ステップ３０３において符号長の交換が行われた、最大の出現数を持つシンボルのフラグＦｊ  が１に定められる。
【００５１】
ステップ３０５では、ステップ３０３における符号長の交換により削減されたビット数が下式に従って削減ビット数ＢＤから減算され、新たな削減ビット数ＢＤが求められる。
ＢＤ←ＢＤ−〔（Ｎｊ  Ｂｊ  ＋Ｎｋ  Ｂｋ  ）─（Ｎｊ  Ｂｋ  ＋Ｎｋ  Ｂｊ  ）〕
上述のようにシンボル「０１」と「０２」の符号長は交換しても変化しないので、削減ビット数ＢＤは減少しない。したがってステップ３０６では、ＢＤが正であると判定される。次いでステップ３０７では、全てのフラグＦｉ  が１ではないと判定され、再びステップ３０３以下が実行される。
【００５２】
次のステップ３０３の実行では、シンボル「０３」が最大の出現数２０１１を有しており、またシンボル「０２」が最小の符号長２を有しているため、これらのシンボルにおいて符号長の交換が行われる。このシンボル「０３」の符号長は３であり、シンボル「０２」の符号長２よりも長いため、ステップ３０３の符号長の交換処理によって全符号量は削減される。
【００５３】
ステップ３０６では、現在の削減ビット数ＢＤが０以下であるか否かが判定され、０以下になっていれば、すなわちさらに削減すべきビット数がなければ、これにより本ルーチンは終了する。一方、ステップ３０７において全てのフラグＦｉ  が１に変化していると判定された場合、これ以上交換できる符号長がないため、本ルーチンは終了する。
【００５４】
図１７のハフマン符号長テーブルは、図１６のルーチンによって得られたハフマン符号長を示しており、図１４との比較から理解されるように、全部で１２個のシンボルに関して符号長が変更されている。また全符号量は４２４７２ビットであり、固定長化圧縮の目標値である４３０００ビットに近く、最小限の情報圧縮が施されている。
【００５５】
本実施例において第２のハフマンテーブルは、第１のハフマンテーブルの符号長を基にして、全符号量が減少するように、２つのシンボルに対応した符号長を相互に交換することにより、生成される。そして、削減ビット数ＢＤが０以下になったことにより、図１６の処理ルーチンは終了する。したがって、第１実施例の処理ルーチン（図１１）と比較して、符号長が変更されるシンボルの数は少なく、短時間で固定長化圧縮が達成される。
【００５６】
以上のように第２実施例によれば、短時間で固定長化圧縮が達成される点を除いて、第１実施例と同様な効果が得られる。
【００５７】
なお第１および第２実施例では、量子化ＤＣＴ係数の各係数値を、出現数を用いて統計処理することにより第２のハフマンテーブルを生成しているが、出現数以外の統計量を用いてもよい。
【００５８】
【発明の効果】
以上のように本発明によれば、再生画像の画質を低下させることなく、画像データを固定長化圧縮することができるという効果が得られる。
【図面の簡単な説明】
【図１】本発明の第１実施例の画像圧縮装置を示すブロック図である。
【図２】第１実施例における画像データＰ（Ｙ）ｘｙ  、ＤＣＴ変換係数Ｓ（Ｙ）ｕｖ  、量子化ＤＣＴ係数Ｒ（Ｙ）ｕｖ  の例を示す図である。
【図３】ＤＣ係数の差分値のグループ化を示す図である。
【図４】ＤＣ係数の符号表を示す図である。
【図５】量子化ＡＣ係数の符号化を行う処理ルーチンを示すフローチャートである。
【図６】ＡＣ係数のハフマン符号化におけるジグザグスキャンを示す図である。
【図７】ＡＣ係数のグループ化を示す図である。
【図８】ハフマン符号化による符号化データの一例を示す図である。
【図９】ＪＰＥＧにより推奨されたハフマンテーブルを示す図である。
【図１０】画像データの固定長化圧縮の処理の流れを示すブロック図である。
【図１１】画像データの固定長化圧縮の処理ルーチンを示すフローチャートである。
【図１２】ある画像をハフマン符号化するために生成された第２のハフマンテーブルと、このハフマンテーブルを生成するための手順を示す図である。
【図１３】図１２における画像データ中の「ラン長とグループ番号の組合せ」の出現数を示す図である。
【図１４】ＪＰＥＧにより推奨されたハフマンテーブルの各符号語の符号長を示す図である。
【図１５】第１実施例において生成された第２のハフマンテーブルの各符号語の符号長を示す図である。
【図１６】第２実施例において第２のハフマンテーブルを生成する処理ルーチンを示すフローチャートである。
【図１７】第２実施例において生成された第２のハフマンテーブルの各符号語の符号長を示す図である。
【符号の説明】
Ｍ  ＩＣメモリカード
【図１】
0003559314.tif 000002
【図２】
0003559314.tif 000003
【図３】
0003559314.tif 000004
【図４】
0003559314.tif 000005
【図５】
0003559314.tif 000006
【図６】
0003559314.tif 000007
【図７】
0003559314.tif 000008
【図８】
0003559314.tif 000009
【図９】
0003559314.tif 000010
【図１０】
0003559314.tif 000011
【図１１】
0003559314.tif 000012
【図１２】
0003559314.tif 000013
【図１３】
0003559314.tif 000014
【図１４】
0003559314.tif 000015
【図１５】
0003559314.tif 000016
【図１６】
0003559314.tif 000017
【図１７】
0003559314.tif 000018