(57)【要約】【課題】画像データの格納などのシステムの性能を落とすことなく、システムの構成に必要なメモリサイズを削減し、システムコストダウンを図ることである。【解決手段】画像データを圧縮した際に生成する圧縮画像データサイズをあらかじめ設定する。次に、画像データを、量子化テーブルを用いて圧縮した後、符号化を行う。圧縮と符号化が行われた後のデータ長が、あらかじめ定められたデータ長よりも短いときに、圧縮・符号化後のデータに符号化データを追加して、あらかじめ定められたデータ長を有するデータとする。【選択図】図１
2009159334.tif 000002
【特許請求の範囲】
【請求項１】
あらかじめ設定された量子化テーブルを用いて画像データを圧縮符号化し、
前記圧縮符号化データのデータ長があらかじめ定められた値未満のとき、前記圧縮符号化データに符号化データを追加して、前記あらかじめ定められたデータ長の圧縮符号化データを得る
ことを特徴とする画像データ圧縮方法。
【請求項２】
前記圧縮符号化データのデータ長が、前記あらかじめ定められた値を超えたとき、前記あらかじめ設定された量子化テーブルを変更して、前記あらかじめ定められた値未満のデータ長の圧縮符号化データを求め、
前記求められた圧縮符号化データに符号化データを追加する
ことを特徴とする請求項１に記載の画像データ圧縮方法。
【請求項３】
前記あらかじめ設定された量子化テーブルに含まれる数値のうち、所定の数値より大きな数値を、前記所定の数値より小さい数値に置き換えることにより、得られた符号化データを画像データに変換する際に用いる伸張用量子化テーブルを生成する
ことを特徴とする請求項１に記載の画像データ圧縮方法。
【請求項４】
前記圧縮符号化データに追加する前記符号化データは、前記符号化データが追加された前記圧縮符号化データを伸張する際の逆量子化の対象となる係数として表現したときに、小さい値となる符号である
ことを特徴とする請求項１に記載の画像データ圧縮方法。
【請求項５】
あらかじめ設定された量子化テーブルを用いて画像データを圧縮符号化した圧縮符号化データを生成するステップ、
前記圧縮符号化データのデータサイズが所定のデータサイズ未満であるときに、前記圧縮符号化データのデータサイズと前記所定のデータサイズの差分データサイズを求めるステップ、および、
前記差分データサイズ分の符号化データを追加するステップ
を計算機に実行させることを特徴とする画像データ圧縮プログラム。
【請求項６】
あらかじめ設定された量子化テーブルを用いて画像データを圧縮符号化する圧縮符号化手段と、
圧縮符号化データのデータサイズが所定のデータサイズ未満であるときに、前記圧縮符号化データのデータサイズと前記所定のデータサイズの差分データサイズを算出する算出手段と
前記差分データサイズの大きさの符号化データを追加するデータ追加手段と
を有することを特徴とする、画像データ圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを圧縮する技術に関わる。
【背景技術】
【０００２】
静止画像データの圧縮方法として、ＪＰＥＧ（Joint Photographic Coding Experts Group）方式が広く用いられている。図１３は、ＪＰＥＧ方式を用いた場合の画像圧縮処理の流れを示すフローチャートである。圧縮データサイズを設定した後、原画像を８画素×８画素単位のブロックに分割し、離散コサイン変換（ＤＣＴ変換）を行って、データをＤＣＴ係数に変換する（ステップＳ１０１〜１０３）。算出したＤＣＴ係数を、量子化テーブルを用いて量子化した後、一次元データに並び替え、ハフマン符号化を行うことによって、圧縮データを生成し、ＥＯＢ（End of Block）ビットを付加する（ステップＳ１０４〜１０６）。伸張処理においては、圧縮処理の逆処理を行う。
【０００３】
このような画像圧縮技術に関する関連技術としての特許文献１では、ＪＰＥＧ方式を用いて画像データ圧縮をした後のデータサイズを制御する方法が提案されている。これは、予め設定した圧縮データサイズから１ブロックに割り当て可能なビット数を算出し、画像データの符号化を行うときに、割り当てビット数を超える場合に超える分のデータ以降について符号化を止めてＥＯＢ符号を付加するものである。
【０００４】
同じく関連技術としての特許文献２においては、量子化で使用する量子化テーブルの量子化係数の各値に、掛算回路により任意のパラメータ（正の整数）を掛けて圧縮率を変化させるようにしたＪＰＥＧ画像圧縮方式が開示されている。
【０００５】
また、ＪＰＥＧ画像にデータを埋め込むこともできる。特許文献３には、ＪＰＥＧ符号化時にデータを埋め込んだ画像を標準の復号器で復号することができ、復号時に埋め込まれたデータを、非可逆符号法の使用のもとでも完全に取り出すことができる方法が開示されている。
【特許文献１】特開平７−２２２１５２号公報  画像処理装置及びそれにおける圧縮データ制御方法
【特許文献２】特開平６−５４１９８号公報  画像伝送方式
【特許文献３】特開２００２−３３０２７９号公報  画像へのデータ埋め込み方法及び当該データの抽出方法
【発明の開示】
【発明が解決しようとする課題】
【０００６】
関連技術の部分で述べたとおり、画像の圧縮方法としてＪＰＥＧ方式が良く用いられている。しかし、ＪＰＥＧ方式において、同じ量子化テーブルを使用して画像の圧縮を行うと、原画像によって、圧縮後のデータサイズが変動するという問題がある。画像を圧縮する際に、おおよその圧縮率は分かるものの、一定のサイズの圧縮データを作成することはできない。そのため、ＪＰＥＧデータ処理装置を含む画像処理システムにおいて、圧縮後の画像データを格納するためのメモリ領域を確保する場合、圧縮後のデータサイズとして予測されるデータサイズよりも大きいメモリ領域を確保する必要がある。従って、システムに必要となるメモリ容量が、実際に画像の格納に用いられるメモリの容量より大きくなってしまうという問題がある。また、圧縮後のデータサイズが予測できないため、メモリアクセスの際にも、アクセスしたいデータの位置が予測できないという問題もある。同様の問題は、他の画像圧縮方式を用いた場合においても生ずると考えられる。
【０００７】
本発明の課題は、画像データの格納などのシステムの性能を落とすことなく、システムの構成に必要なメモリサイズを削減し、システムコストダウンを図ることである。
【課題を解決するための手段】
【０００８】
本発明に係る画像データ圧縮方法では、あらかじめ設定された量子化テーブルを用いて画像データを圧縮符号化し、前記圧縮符号化データのデータ長があらかじめ定められた値未満のとき、前記圧縮符号化データに符号化データを追加して、前記あらかじめ定められたデータ長の圧縮符号化データを得る。
【０００９】
上記画像データ圧縮方法において、画像データの圧縮は、あらかじめ設定された量子化テーブルを用いて行われる。また、画像データに対する上記画像データ圧縮方法による処理が終了した際のデータ長も、あらかじめ定められている。画像データを、設定されている量子化テーブルを用いて圧縮した後、符号化を行う。圧縮と符号化が行われた後のデータ長は、必ずしも、上記画像データ圧縮方法による処理が終了した際のデータ長として定められているデータ長と一致しない。そこで、画像データに対して圧縮と符号化が行われたときのデータ長が、あらかじめ定められたデータ長よりも短いときに、圧縮・符号化後のデータに符号化データを追加して、あらかじめ定められたデータ長を有するデータとする。
【発明の効果】
【００１０】
本発明によれば、一定のデータサイズの圧縮画像を生成することができる。このため、画像を格納する際に用意する必要があるメモリ領域を予め知ることができ、画像の格納のために余分なメモリ領域を確保する必要がない。結果として、メモリサイズを削減することができるため、システムコストダウンを可能にすることができる。また、メモリサイズが一定であるため、データへのアクセスが容易になるという効果もある。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
＜画像圧縮処理の実施形態（１）＞
〔画像データ圧縮装置の構成〕
図１は、本発明の実施形態に係る画像データ圧縮装置の構成を示す図である。本実施形態においては、画像データ圧縮装置１０は、画像データ１、量子化テーブル２およびハフマンテーブル３が与えられると、画像圧縮データをＪＰＥＧデータ４として出力する。なお、ここでは理解を助けるために、ＪＰＥＧ方式を用いた圧縮を具体例として述べるが、画像の圧縮方式はＪＰＥＧ方式に限られるものではない。
【００１２】
本実施例に係る画像データ圧縮装置１０は、ＤＣＴ変換演算器１１、量子化器１２、ハフマン符号器１３、データサイズ制御器１４、ＪＰＥＧ出力用量子化テーブル生成器１６を備える。また、メモリ領域に、量子化テーブル１５、ハフマンテーブル１７などを記憶する。
【００１３】
ＤＣＴ変換演算器１１は、画像データ圧縮装置１０に入力された画像データ１をＤＣＴ変換することにより、画像データ１を周波数成分に関する情報として表現する。ここで、画像データ１は、ＲＧＢ、ＹＣｂＣｒなど、任意の表色系を用いて表現することができ、ＤＣＴ変換の際には画像の各々の成分についてＤＣＴ変換が行われる。また、画像の大きさなどに応じて、画像データ１を８画素×８画素などの小さな領域に分割してＤＣＴ変換を行うこともできる。画像データ１を小さな領域に分割する際には、ＤＣＴ変換演算器１１が、分割を行った後にＤＣＴ変換を行う。なお、画像データ１を分割する際の領域の大きさは任意である。
【００１４】
量子化器１２は、与えられた量子化テーブル１５を用いて、ＤＣＴ変換されたデータの量子化を行い、量子化データを生成する。
ハフマン符号器１３は、まず、量子化器１２が生成した量子化データをスキャンして一次元のデータを生成する。ここでのスキャン方法は、ジグザグシーケンスによって行うのが好ましいが、他のスキャン方法を用いても良い。一次元データにした後に、ハフマンテーブル１７に従ってハフマン符号を当てはめる。なお、ハフマン符号器１３が生成したデータは、画像データ１全体についてのデータでも良いし、画像データ１を分割して得られた分割部分について生成されたデータであっても良い。
【００１５】
データサイズ制御器１４は、画像データ１の圧縮処理が終了する時点において求められるべきデータ長を認識しており、ハフマン符号器１３によって符号化されたデータのデータサイズとの比較を行う。データサイズ制御器１４は、圧縮処理後の求められるべきデータ長として定められたデータ長と符号化後のデータ長の差を算出する。符号化後のデータ長が、求められるべきデータ長よりも小さい場合には、不足分のデータ長に相当するデータを符号化後のデータに追加する。ここで、データサイズ制御器１４は、圧縮処理後のデータ長として定められたデータ長から、ＥＯＢビットなどの圧縮処理後のデータに必ず含まれるデータのビット数を除いた所定のデータサイズを認識していて、この所定のデータサイズと符号化後のデータ長を比較する構成にしても良い。データサイズ制御器１４が追加するデータとしては、例えばハフマン符号が考えられるが、用いる圧縮処理方式に適応した任意のデータとすることができる。
【００１６】
量子化テーブル１５は、画像データ圧縮装置１０において画像データ１の処理を行う際に用いるものとして設定されている量子化テーブルである。画像データ圧縮装置１０に入力した量子化テーブル２をそのまま用いる構成においては、量子化テーブル１５には、入力した量子化テーブル２が記憶されている。量子化テーブル２を変更する場合については他の実施形態として述べる。なお、実施形態（１）、（２）においては、量子化テーブル２は、入力される画像データ１に対応して、符号化後のデータ長が圧縮処理後の求められるべきデータ長よりも小さくなるようにあらかじめ設定されているものとする。
【００１７】
ＪＰＥＧ出力用量子化テーブル生成器１６は、本実施形態にかかる装置で生成した画像圧縮データを伸張する際に用いるＪＰＥＧ出力用量子化テーブルを生成する。ＪＰＥＧ出力用量子化テーブルとＪＰＥＧ出力用量子化テーブル生成器１６の動作については、後で詳しく説明する。
【００１８】
なお、ＤＣＴ変換演算器１１、量子化器１２、ハフマン符号器１３、データサイズ制御器１４、ＪＰＥＧ出力用量子化テーブル生成器１６は、例えば、ハードウェア回路により実現される。ただし、これらの機能の一部または全部をソフトウェアにより実現するようにしてもよい。
【００１９】
〔画像データ圧縮装置の動作の概要〕
図２は、実施形態に係る画像データ圧縮装置が画像圧縮の際に行う動作を説明するフローチャートである。
【００２０】
画像データ圧縮装置１０は、図１で示したように、画像データ１、量子化テーブル２およびハフマンテーブル３が与えられると、画像データ１の圧縮処理を開始する。まず、圧縮後のデータのサイズとして求められるべき圧縮データサイズを設定する（ステップＳ１１）。あらかじめ用意しておいた量子化テーブル２を使用する場合においては、量子化テーブル２を読み込んで画像データ圧縮に用いる量子化テーブル１５として設定・記憶する（ステップＳ１２）。また、与えられたハフマンテーブル３を読み込んで、ハフマンテーブル１７として記憶する。
【００２１】
次に、ＪＰＥＧ出力用量子化テーブル生成器１６において、圧縮した画像データを伸張する際に用いるＪＰＥＧ出力用量子化テーブルを生成する（ステップＳ１３）。ステップＳ１３で行われる動作は、後で詳しく述べる。一般にＪＰＥＧでは、圧縮に用いる量子化テーブルと、圧縮したデータの伸張に用いる量子化テーブルは同じである。しかし、本実施形態においては、データの伸張に用いる量子化テーブルを新たに作成することによって、後述するように、符号化後のデータに加えた付加分のデータがデータの伸張の際に及ぼす影響を小さくしている。
【００２２】
与えられた画像データ１を分割する際にできるブロック数を算出し、設定した圧縮データサイズに基づいて、１ブロックあたりのデータ長を算出する（ステップＳ１４）。ステップＳ１１〜１４は、画像データ１全体に対して一回の操作を行う。なお、ステップＳ１１〜１４の順序は例示的に示したに過ぎず、順序を変更して実施してもよい。
【００２３】
画像データ１を複数のブロックに分けている場合には、ステップＳ１５〜２０の処理はブロックごとに行う。画像データ圧縮装置１０は、個々のブロックに対して、ＤＣＴ変換、量子化、ハフマン符号化を行った後、不足データ長の算出を行う（ステップＳ１５〜１８）。不足データ長は、データサイズ制御器１４において、
不足データ長＝１ブロックごとのデータ長−ハフマン符号化したデータ長−ＥＯＢビット数
として計算される。不足データ長分のハフマン符号を符号化後のデータに付加し、ＥＯＢ符号を付すと、一つのブロックに対する処理が終了する（ステップＳ１９、２０）。ステップＳ１５〜２０の処理は、全てのブロックの処理が終了するまで繰り返し行われる（ステップＳ２１）。
【００２４】
〔画像圧縮時の動作〕
以下に、本実施形態に係る画像データ圧縮装置１０が、圧縮画像データを生成するときの動作について、図２を適宜参照しながら詳しく説明する。
【００２５】
（１）先に述べたように、圧縮画像の生成に当たって、画像データ圧縮装置１０に対して、圧縮データサイズが与えられる。また、量子化テーブル２、ハフマンテーブル３も与えられる。ここで、与えられる量子化テーブル２は、画像データ１の各ブロックを、後に算出する１ブロック毎のデータ長よりも小さい大きさに圧縮・符号化するために用いることが可能であることが確かめられている量子化テーブル２である。本実施形態においては、与えられた量子化テーブル２、および、ハフマンテーブル３の値を用いるので、画像データ圧縮装置１０は、与えられたテーブルをそれぞれ量子化テーブル１５、ハフマンテーブル１７に格納する（図２のステップＳ１２に相当）。
【００２６】
図３に、量子化テーブル１５の例を示す。画像データ１をＤＣＴ変換して得られるＤＣＴ係数は、横方向空間周波数および／または縦方向空間周波数が大きくなるほど、高周波の成分となる。このような高周波成分は、一般に画質に大きな影響を与えないため、量子化テーブル１５は、量子化後のＤＣＴ係数において高周波成分を取り除くことができるように設定される。横方向空間周波数が大きい係数ほど右側、縦方向空間周波数が大きい係数ほど下側に示した表としてＤＣＴ係数を表すと、右下に行くほど、画質に与える影響が小さい成分である。そこで、量子化テーブル１５は、高周波成分のＤＣＴ係数との演算に用いられる値に大きな値を設定する。例えば、図３において、量子化テーブル１５は右下側が大きな値に設定されている。量子化テーブル１５において、「２５５」の値が設定されている部分は、量子化を行うと、量子化後ＤＣＴ係数として０の値が得られるため、量子化後のＤＣＴ係数を伸張しても、画像データ１から高周波成分が削減された画像として伸張される。
【００２７】
（２）量子化テーブル１５が設定されると、ＪＰＥＧ出力用量子化テーブル生成器１６がＪＰＥＧ出力用量子化テーブルを生成する。ＪＰＥＧ出力用量子化テーブルを用いて圧縮された画像を伸張したときに、ステップＳ１９で付加される不足データ分のハフマン符号の影響が小さくなるようにする必要がある。この要件を満たすようなＪＰＥＧ出力用量子化テーブルを生成する方法の一つとして、量子化テーブル１５において所定の値よりも大きな値をとっている数値を全て、その所定の値よりも小さな値に変更する方法がある。例えば、量子化テーブル１５において「２５５」の値に設定されていた部分を「１」に変更することができる。図４は、ＪＰＥＧ出力用量子化テーブル生成器１６で生成されるＪＰＥＧ出力用量子化テーブルの例である。
【００２８】
先に述べたとおり、量子化テーブル１５で一定以上の値（２５５など）が設定されている部分と演算を行うＤＣＴ係数に対応する周波数成分は、量子化によって削除される。この削除されている周波数成分として不足データのハフマン符号が付加される。従って、量子化後ＤＣＴ係数を逆量子化データとする際に、付加されたハフマン符号に対応するＤＣＴ係数の逆量子化に用いる値を小さくすることにより、付加したデータの影響を小さくすることができる。なお、ここでは、量子化テーブル１５での一定以上の値の数値をすべて同じ数値である「１」に置き換えているが、これは例示に過ぎず、適宜、２種類以上の数値に置き換える構成にしても良い。
【００２９】
（３）ステップＳ１１で設定されたデータサイズ、および、画像データ１のブロック数を用いて、１ブロック毎のデータ長が算出される（ステップＳ１４）。
（４）ＤＣＴ変換演算器１１において、画像データ１のＤＣＴ変換が行われる（ステップＳ１５）。図５は、ＤＣＴ変換によって得られるＤＣＴ係数の例である。図５の例においては、画像データ１を８画素×８画素に分割した際の１ブロックについて得られたＤＣＴ係数を示している。
【００３０】
（５）ＤＣＴ係数が求まると、量子化テーブル１５を用いて量子化が行われる。量子化では、
ＤＣＴ係数値÷量子化テーブル値
の演算が行われ、正の整数として量子化後ＤＣＴ係数が求められる。図６に、量子化後ＤＣＴ係数の例を示す。先に述べたように、量子化テーブル１５において大きな値（２５５）を設定した部分では量子化後ＤＣＴ係数は０となり、その係数に相当する周波数成分が削除されている。
【００３１】
（６）量子化後ＤＣＴ係数を一次元データに変換する。ここで、好ましくは、ランレングスを大きくして圧縮率を高めるために、ジグザグスキャンを用いて一次元データを作成する。図７は、ジグザグスキャンを説明する図である。得られた一次元データを、ハフマンテーブル１７を用いて、ハフマン符号化する（ステップＳ１７）。
【００３２】
（７）ハフマン符号化が終了すると、データサイズ制御器１４においてハフマン符号化されたデータの大きさと、先に求めておいた１ブロック毎のデータ長とを比較する。ここで、前述のとおり、画像データ１の各ブロックの圧縮・符号化には、１ブロック毎のデータ長よりも小さいデータサイズに圧縮する量子化テーブル１５を用いている。従って、得られた圧縮・符号化データのデータサイズは、必ず、１ブロック毎のデータ長よりも小さいはずである。そこで、データサイズ制御器１４は、各ブロックの圧縮・符号化データの長さと１ブロック毎のデータ長からＥＯＢビット分を除いたデータ長の差である不足サイズを算出する。算出された不足サイズ分のデータを、データサイズ制御器１４が、圧縮・符号化データに付加し、ＥＯＢビットを付した後、ＪＰＥＧデータ４として出力する（ステップＳ１８〜２０）。各ブロックのＤＣＴ変換からＥＯＢビットの付加までの過程は、
全てのブロックに対する処理が終了するまで繰り返し行われる（ステップＳ２１）。
【００３３】
（８）ＪＰＥＧデータ４には、全てのブロックについてのデータサイズ制御器１４から出力されたデータと共に、ＪＰＥＧ出力用量子化テーブル生成器１６によって算出されたＪＰＥＧ出力用量子化テーブルやハフマンテーブル１７も含められる。
【００３４】
以上のように、あらかじめ設定したデータサイズよりも小さくなるような圧縮・符号化データを作成した後に、設定されているデータサイズに対する不足分のデータを追加することによって、設定されたデータサイズの圧縮データを作成することができる。このように、圧縮画像の大きさを一定にすることができることにより、圧縮画像を記憶するメモリ領域において、画像の記憶の際に余分なメモリ領域を取る必要がなくなり、メモリサイズの削減につながる。そのため、結果としてシステム全体のコストダウンを図ることができる。また、圧縮された画像のデータサイズが一定であるため、生成された圧縮データのうちのデータ部分、ヘッダ部分などがファイルのほぼ同じ位置になる。従って、圧縮されているデータを含むファイルにアクセスする際には、アクセスする目的によって、ファイルの一定の位置にアクセスすればよいことになり、圧縮データに対するアクセスの簡略化、システムの応答の迅速化につながる。
【００３５】
〔圧縮された画像の伸張〕
次に、本実施形態に係る画像データ圧縮装置１０で生成された圧縮画像を伸張する際の処理について述べる。圧縮画像の伸張は、一般に圧縮手順の逆順序で行われる。
【００３６】
まず、圧縮画像を伸張する装置は、圧縮されたデータを受け取ると、ＪＰＥＧ出力用量子化テーブルや成分ごとに用いられるハフマンテーブルなどを認識し、画像データをブロック毎に復号処理する。その後、復号処理によって得られた一次元データをＤＣＴ係数として表現する。
【００３７】
ここで、不足データ数分のハフマン符号が付加されている圧縮・符号化データを復号処理して、ＤＣＴ係数として表現するので、得られたＤＣＴ係数は、量子化後ＤＣＴ係数に追加されたハフマン符号に対応するＤＣＴ係数を加えたものとなっている。図８は、不足データ数分のハフマン符号を加えたデータをＤＣＴ係数として表したときの例を示す図である。図８の網掛け部分が、追加したハフマン符号に対応するＤＣＴ係数である。
【００３８】
復号処理によってＤＣＴ係数が得られると、
復号処理により得られたＤＣＴ係数値×ＪＰＥＧ出力用量子化テーブル値
の式に従って逆量子化データが生成される。得られた逆量子化データを逆ＤＣＴ変換することによって、圧縮された画像を伸張する。従って、逆量子化の際に、追加したハフマン符号に対応して得られたＤＣＴ係数（図８の網掛け部分のＤＣＴ係数）に掛け合わせる値が大きいと、伸張後の画像データにおける付加したデータの影響が大きくなる。このため、ＪＰＥＧ出力用量子化テーブルのうちで、追加したハフマン符号に対応して得られたＤＣＴ係数との演算に用いられる値はなるべく小さな値にする必要がある。
【００３９】
追加したデータの影響を小さくするために、データサイズ制御器１４は、不足ビット分のデータを付加する際に、ＤＣＴ係数として表したときになるべく小さくなるハフマン符号を選択する構成とすることができる。このときには、データサイズ制御器１４は、ハフマン符号器１３を経由してハフマンテーブル１７のデータを参照して、不足ビット分のデータ長であって、小さい値のＤＣＴ係数に対応するハフマン符号を選択する。このような構成をとることにより、付加したデータが圧縮データを伸張した画像に及ぼす影響を小さくすることができる。
【００４０】
＜画像圧縮処理の実施形態（２）＞
〔画像データ圧縮装置の構成〕
先の実施形態では、量子化テーブル１５の中の所定の値以上の数値を、一律に、所定の値以下に変更することによってＪＰＥＧ出力用量子化テーブルを作成した。しかし、ＪＰＥＧ出力用量子化テーブルにおいて小さな値とする必要があるのは、追加されたデータに対応するＤＣＴ係数を逆量子化する際に用いる数値である。そこで、追加されたデータに対応するＤＣＴ係数の個数が分かれば、量子化テーブルの一定以上の数値部分を、一定以上の数値の開始部分から、その個数だけ小さな値に変更することが可能である。ここで「一定以上の値の開始部分」は、仮にＪＰＥＧ出力用量子化テーブルの値を、ＤＣＴ係数をジグサグスキャンしたのと同じ方法で一次元の数列にしたとすると、一定以上の値が開始する部分のことを指す。例えば、図８で示したように追加されたデータに対応するＤＣＴ係数の個数が３個であれば、図３に示した量子化テーブル１５のうちの「２５５」の値となっている部分のうち、３個だけを「１」に設定してＪＰＥＧ出力用量子化テーブルとすることができる。
【００４１】
図９は、ＪＰＥＧ出力用量子化テーブルのうち、追加されたデータに対応するＤＣＴ係数を逆量子化する際に用いる数値を変更する場合の、実施形態に係る画像データ圧縮装置の構成を示す図である。画像データ圧縮装置３０の構成は、先に示した実施形態（１）に係る画像データ圧縮装置１０とほぼ同じである。ただし、データサイズ制御器１４からＪＰＥＧ出力用量子化テーブル生成器１６に対してデータの送信を行うことができる構成になっている部分が異なる。このような構成をとることにより、ＪＰＥＧ出力用量子化テーブル生成器１６は、量子化テーブル１５に含まれる値のうち、データサイズ制御器１４から指定された個数分の値を変更することが可能になる。
【００４２】
なお、画像データ圧縮装置１０と同様に、ＤＣＴ変換演算器１１、量子化器１２などを例えば、ハードウェア回路により実現しても良く、これらの機能の一部または全部をソフトウェアにより実現するようにしてもよい。
【００４３】
〔画像データ圧縮装置の動作〕
次に、画像データ圧縮装置３０の動作を説明する。画像データ圧縮装置３０の動作は、図２を参照しながら説明した動作と似ているが、ＪＰＥＧ出力用量子化テーブルの作成（ステップＳ１３）は、全てのブロックのＤＣＴ変換からＥＯＢビットの付加までの手順が終了した後（ステップＳ２１の後）に行われる点が異なる。
【００４４】
図１０は、ＪＰＥＧ出力用量子化テーブルのうち、追加されたデータに対応するＤＣＴ係数を逆量子化する際に用いる数値を変更する場合の動作を説明するフローチャートである。同図は、ステップＳ１１、１２、１４の処理の後に行われる処理のフローチャートである。画像データ圧縮装置３０に画像データ１、量子化テーブル２、および、ハフマンテーブル３が与えられると、図２のステップＳ１５〜２０と同様に各ブロックの圧縮処理を行う（ステップＳ３１）。ただし、このときに、データサイズ制御器１４は、付加したハフマン符号が何個のＤＣＴ係数を示すか（付加ＤＣＴ係数の個数）を記憶する（ステップＳ３２）。
【００４５】
データサイズ制御器１４は、付加ＤＣＴ係数の個数を記憶する際に、既に記憶している付加ＤＣＴ係数の個数が、記憶されている個数より大きいかを確認し、記憶しようとする個数の方が大きい場合に、付加ＤＣＴ係数の個数を上書きする（ステップＳ３３）。なお、付加ＤＣＴ係数の個数を記憶する際には、各ブロックの付加ＤＣＴ係数の個数を記憶していき、後からメモリ上の最大値を取り出す構成にしても良い。
【００４６】
全てのブロックに対しての不足データの付加が終了すると、最大で何個のＤＣＴ係数を
付加したかをＪＰＥＧ出力用量子化テーブル生成器１６に通知する。この通知に従って、ＪＰＥＧ出力用量子化テーブル生成器１６は、量子化テーブル１５の一定以上の値の開始部分から指定された個数分の値を変更する（ステップＳ３５）。図１０の例では、ＪＰＥＧ出力用量子化テーブル生成器１６は、データサイズ制御器１４から指定された個数分だけの量子化テーブル１５で「２５５」となっていた値を「１」に変更する。
【００４７】
このような構成にすることによって、量子化テーブルからＪＰＥＧ出力用量子化テーブルを作成する際に画像データ圧縮装置３０が数値を変更する部分が一部だけですむことになる。その結果、ＪＰＥＧ出力用量子化テーブル生成器１６が行う処理量を軽減することができる。
【００４８】
＜その他の実施形態＞
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【００４９】
〔量子化テーブルを作成する場合の実施形態〕
これまで説明してきた実施形態においては、量子化テーブル２はあらかじめ設定されているものを用いていた。しかし、画像データ圧縮装置が、画像データ１の圧縮処理を行うに際して、入力される画像データ１に対応して画像データ１を一定の大きさ以下に圧縮するような量子化テーブルを作成する構成にすることも可能である。
【００５０】
｛画像データ圧縮装置の構成｝
図１１は、圧縮用量子化テーブルを作成する場合の画像データ圧縮装置の構成を示す図である。画像データ圧縮装置４０は、量子化テーブル生成器２０を有する以外は、画像データ圧縮装置１０と同じ構成を有する。
【００５１】
量子化テーブル生成器２０は、画像データ圧縮装置４０に与えられた量子化テーブル２を用いて、画像データ１を所定のデータサイズ以下の圧縮データにすることができる量子化テーブル１５を作成する。量子化テーブル生成器２０は、メモリ２１、量子化テーブル変更部２２、および量子化テーブル変更制御部２３を備える。
【００５２】
メモリ２１は、量子化テーブル１５とハフマンテーブル１７を用いて圧縮・符号化した際の各ブロックの符号化データを記憶しておく部分である。また、符号化後の１ブロック毎のデータ長など、量子化テーブル生成器２０の動作に必要なデータや数値を適宜記憶する。
【００５３】
量子化テーブル変更部２２は、量子化テーブル変更制御部２３からの指示に従って、量子化テーブル１５を変更する。例えば、量子化テーブル変更部２２は、量子化テーブル１５に含まれる値を大きくすることによって、画像データ１の圧縮率を高める。このとき、量子化テーブル１５のうちの右下側の高周波成分の量子化に用いる値など、量子化テーブル１５の一部の値を大きくするように設計することもできる。
【００５４】
量子化テーブル変更制御部２３は、量子化テーブル１５によって画像データ１を圧縮した場合に、全てのブロックにおいて所定のデータサイズ以下になるかを確認する。このとき、一つでも所定のデータサイズ以上のものがあれば、量子化テーブル１５の変更を量子化テーブル変更部２２に指示する。
【００５５】
なお、量子化テーブル変更部２２および量子化テーブル変更制御部２３は、例えば、ハードウェア回路により実現される。ただし、これらの機能の一部または全部をソフトウェアにより実現するようにしてもよい。また、その他の構成もハードウェア回路で実現して
も良く、その機能の一部または全部をソフトウェアにより実現するようにしてもよい。
【００５６】
｛画像データ圧縮装置の動作｝
次に、画像データ圧縮装置４０の動作を説明する。画像データ圧縮装置４０の動作の概要は図２に示したフローチャートとほぼ同じであるが、１ブロック毎のデータ長の算出（ステップＳ１４）が量子化テーブル値の設定（ステップＳ１２）の前に行われる点が異なる。また、画像データ圧縮装置４０が量子化テーブル１５を作成する場合は、後で詳しく述べるとおり、メモリ２１に作成された量子化テーブルに対応する符号化データが記憶されている。そのため、各ブロックについてのＤＣＴ変換、量子化、ハフマン符号化（ステップＳ１５〜１７）の必要がない点が異なる。
【００５７】
図１２は、圧縮用量子化テーブルを作成する際に行われる動作を説明するフローチャートである。
（１）デフォルトの量子化テーブル２が画像データ圧縮装置４０に与えられ（ステップＳ４１）、画像データ圧縮装置４０は、量子化テーブル２を、一時的な量子化テーブル１５として設定する。なお、画像データ圧縮装置４０においても、ハフマンテーブル１７は、与えられたハフマンテーブル３を記憶して用いる。
【００５８】
（２）画像データ１の全てのブロックについて、一時的な量子化テーブルとして設定されている量子化テーブル１５を用いて圧縮、符号化を行い、処理後のデータ長を求める（ステップＳ４２〜４５）。この圧縮、符号化は、量子化テーブルの生成をしない場合の実施形態の説明で述べた手順（４）〜（６）と同じである。
【００５９】
（３）ハフマン符号器１３は、生成した符号化データを量子化テーブル生成器２０に与え、量子化テーブル生成器２０は、そのデータをメモリ２１に格納する。
（４）量子化テーブル変更制御部２３は、メモリ２１にアクセスして各ブロックの符号化後のデータ長を、圧縮データサイズから算出しておいた１ブロック毎のデータ長からＥＯＢビット分を差し引いた長さ（設定サイズ）と比較する。処理後のデータ長が設定サイズ以上のデータ長を有するブロックがあるかを判断する（ステップＳ４６）。設定サイズ以上のデータ長を有するブロックがある場合には、その旨を量子化テーブル変更部２２に通知する。
【００６０】
（５）通知を受けた量子化テーブル変更部２２は、一時的に設定されている量子化テーブル１５の値を変更する。変更方法としては、例えば、量子化テーブル１５に含まれている値のうち、なるべく高周波成分の量子化に用いられる数値を大きな値に変更することが挙げられる。その後、変更後の量子化テーブルを新たな量子化テーブル１５として一時的に設定しなおす（ステップＳ４７）。
【００６１】
（６）画像データ圧縮装置４０は、新たに設定された量子化テーブル１５を用いて、画像データ１の圧縮・符号化を行う。一時的に設定された量子化テーブル１５を用いて得られた符号化データが、全てのブロックにおいて、１ブロック毎のデータ長よりも小さくなるまで手順（２）〜（５）を繰り返す。
【００６２】
（７）全てのブロックで、量子化テーブル１５を用いて圧縮・符号化を行った符号化データの大きさが１ブロック毎のデータ長よりも小さくなったときに、量子化テーブル変更制御部２３は、量子化テーブル１５を画像データ１の圧縮に用いるテーブルとして設定する。なお、ＪＰＥＧ出力用量子化テーブル生成器１６は、最終的に量子化テーブル１５として設定された量子化テーブルを用いて、ＪＰＥＧ出力用量子化テーブルを生成・出力する。
【００６３】
（８）メモリ２１は、記憶している符号化データをデータサイズ制御器１４に与える。データサイズ制御器１４は量子化テーブルの生成をしない場合の実施形態（１）の説明で述べた手順（７）と同様の処理を行い、符号化データに不足データサイズ分のハフマン符号を追加する。
【００６４】
以上に述べたような構成を用いると、画像の種類などに応じて量子化テーブル２を使い分けるなどして、量子化テーブル２をあらかじめ設定しておく必要がない。画像データ圧縮装置４０では、任意の量子化テーブル２与えることにより、画像データ１を与えられた圧縮データサイズよりも小さくする量子化テーブル１５を自律的に算出して、一定のデータサイズになった圧縮画像データを生成することができる。
【００６５】
〔その他〕
以上の説明では、ＪＰＥＧ方式を用いた場合の圧縮を例としていたが、これは理解を助けるために過ぎず、ＪＰＥＧ以外の任意の画像圧縮方式に適用することができる。また、用いる圧縮方式や画像の伸張用の装置の構成によっては、出力用量子化テーブルやハフマンテーブルを、個々の圧縮後のファイルに含めない構成にすることも可能である。かかる場合においては、出力用量子化テーブルやハフマンテーブルを、画像の伸張用の装置に画像データと別に与える構成にすることも可能である。
【００６６】
以上説明したことを概観すれば本発明は以下のような構成を備えるものである。
（付記１）あらかじめ設定された量子化テーブルを用いて画像データを圧縮符号化し、
前記圧縮符号化データのデータ長があらかじめ定められた値未満のとき、前記圧縮符号化データに符号化データを追加して、前記あらかじめ定められたデータ長の圧縮符号化データを得る
ことを特徴とする画像データ圧縮方法。
【００６７】
（付記２）前記圧縮符号化データのデータ長が、前記あらかじめ定められた値を超えたとき、前記あらかじめ設定された量子化テーブルを変更して、前記あらかじめ定められた値未満のデータ長の圧縮符号化データを求め、
前記求められた圧縮符号化データに符号化データを追加する
ことを特徴とする付記１に記載の画像データ圧縮方法。
【００６８】
（付記３）前記あらかじめ設定された量子化テーブルに含まれる数値のうち、所定の数値より大きな数値を、前記所定の数値より小さい数値に置き換えることにより、得られた符号化データを画像データに変換する際に用いる伸張用量子化テーブルを生成する
ことを特徴とする付記１に記載の画像データ圧縮方法。
【００６９】
（付記４）追加された前記符号化データを伸張する際に、逆量子化の対象となる係数の逆量子化に用いられる数値が所定の値より小さくなるように、前記あらかじめ設定された量子化テーブルに含まれる数値を前記所定の値より小さい値に置き換えることにより、前記伸張用量子化テーブルを生成する
ことを特徴とする付記３に記載の画像データ圧縮方法。
【００７０】
（付記５）前記圧縮符号化データに追加する前記符号化データは、前記符号化データが追加された前記圧縮符号化データを伸張する際の逆量子化の対象となる係数として表現したときに、小さい値となる符号である
ことを特徴とする付記１に記載の画像データ圧縮方法。
【００７１】
（付記６）あらかじめ設定された量子化テーブルを用いて画像データを圧縮符号化した圧縮符号化データを生成するステップ、
前記圧縮符号化データのデータサイズが所定のデータサイズ未満であるときに、前記圧縮符号化データのデータサイズと前記所定のデータサイズの差分データサイズを求めるステップ、および、
前記差分データサイズ分の符号化データを追加するステップ
を計算機に実行させることを特徴とする画像データ圧縮プログラム。
【００７２】
（付記７）あらかじめ設定された量子化テーブルを用いて画像データを圧縮符号化する圧縮符号化手段と、
圧縮符号化データのデータサイズが所定のデータサイズ未満であるときに、前記圧縮符号化データのデータサイズと前記所定のデータサイズの差分データサイズを算出する算出手段と
前記差分データサイズの大きさの符号化データを追加するデータ追加手段と
を有することを特徴とする、画像圧縮装置。
【００７３】
（付記８）前記データ追加手段によって追加されたデータを伸張する際に、逆量子化の対象となる係数の逆量子化に用いられる数値が所定の値より小さい伸張用量子化テーブルを生成する伸張用量子化テーブル生成手段
をさらに有することを特徴とする付記７に記載の画像圧縮装置。
【００７４】
（付記９）前記圧縮符号化データのデータサイズが前記所定のデータサイズよりも大きい場合に、前記量子化テーブルに含まれる一つ以上の値を大きくして、新たな量子化テーブルを生成する量子化テーブル生成手段
をさらに有することを特徴とする付記７に記載の画像圧縮装置。
【００７５】
（付記１０）前記圧縮符号化手段が前記画像データを分割したブロックを単位として圧縮符号化を行い、
前記算出手段が前記ブロックに対して設定された前記所定のデータサイズを用いて前記差分データサイズを算出し、
前記データ追加手段が、前記ブロックの圧縮符号化データの終了を表す符号の前に、前記差分データサイズの符号化データを追加する
ことを特徴とする付記７に記載の画像圧縮装置。
【００７６】
（付記１１）前記データ追加手段は、前記差分データサイズの大きさのデータをハフマン符号化データとして追加する
ことを特徴とする付記７に記載の画像圧縮装置。
【図面の簡単な説明】
【００７７】
【図１】実施形態（１）に係る画像データ圧縮装置の構成を示す図である。
【図２】実施形態（１）に係る画像データ圧縮装置が画像圧縮の際に行う動作を説明するフローチャートである。
【図３】画像データ圧縮装置に記憶される量子化テーブルの例である。
【図４】ＪＰＥＧ出力用量子化テーブル生成器で生成されるＪＰＥＧ出力用量子化テーブルの例である。
【図５】ＤＣＴ変換によって得られるＤＣＴ係数の例である。
【図６】量子化後ＤＣＴ係数の例である。
【図７】ジグザグスキャンを説明する図である。
【図８】不足データ数分のハフマン符号を加えたデータをＤＣＴ係数として表したときの例を示す図である。
【図９】実施形態（２）に係る画像データ圧縮装置の構成を示す図である。
【図１０】実施形態（２）に係る画像データ圧縮装置が画像圧縮の際に行う動作を説明するフローチャートである。
【図１１】圧縮用量子化テーブルを作成する場合の画像データ圧縮装置の構成を示す図である。
【図１２】圧縮用量子化テーブルを作成する際に行われる動作を説明するフローチャートである。
【図１３】ＪＰＥＧ方式を用いた場合の画像圧縮方式の関連技術における処理の流れを示すフローチャートである。
【符号の説明】
【００７８】
１  画像データ
２  量子化テーブル
３  ハフマンテーブル
４  ＪＰＥＧデータ
１０  画像データ圧縮装置
１１  ＤＣＴ変換演算器
１２  量子化器
１３  ハフマン符号器
１４  データサイズ制御器
１５  量子化テーブル
１６  ＪＰＥＧ出力用量子化テーブル生成器
１７  ハフマンテーブル
２０  量子化テーブル生成器
２１  メモリ
２２  量子化テーブル変更部
２３  量子化テーブル変更制御部
３０  画像データ圧縮装置
４０  画像データ圧縮装置
【図１】
2009159334.tif 000003
【図２】
2009159334.tif 000004
【図３】
2009159334.tif 000005
【図４】
2009159334.tif 000006
【図５】
2009159334.tif 000007
【図６】
2009159334.tif 000008
【図７】
2009159334.tif 000009
【図９】
2009159334.tif 000010
【図１０】
2009159334.tif 000011
【図１１】
2009159334.tif 000012
【図１２】
2009159334.tif 000013
【図１３】
2009159334.tif 000014
【図８】
2009159334.tif 000015