(57)【特許請求の範囲】
【請求項１】
原画像を、それぞれ複数の画素からなる複数のブロックに分割し、ブロック毎に、該ブロック内の複数の画素の階調値を直交変換し、直交変換により得られた変換係数を量子化して量子化係数を求め、該量子化係数を符号化する画像データ符号化方法であって、
それぞれ複数の該ブロックを含む複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の第１領域のそれぞれに属し且つ該第１領域よりも小さい第２領域を指定し、
指定された各サブエリアに含まれる該ブロックに対する量子化を行ない、
該量子化によって得られた量子化係数に含まれる有効係数の数を、該サブエリア毎に計数し、
該サブエリア毎に計数された該有効係数の数の分散を算出し、
算出された該分散に基づいて、前記原画像の符号化に用いる量子化閾値を決定し、
決定された該量子化閾値を用いて前記原画像全体に対する量子化処理および符号化処理を行なって、前記原画像の特徴に応じた該量子化係数の符号量制御を行なうことを特徴とする、画像データ符号化方法。
【請求項２】
原画像を、それぞれ複数の画素からなる複数のブロックに分割し、ブロック毎に、該ブロック内の複数の画素の階調値を直交変換し、直交変換により得られた変換係数を量子化して量子化係数を求め、該量子化係数を符号化する画像データ符号化方法であって、
それぞれ複数の該ブロックを含む複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の領域の中の、２以上の領域を指定し、
指定された各サブエリアに含まれる該ブロックに対する量子化を行ない、
該量子化によって得られた量子化係数に含まれる有効係数の数を、該サブエリア毎に計数し、
該サブエリア毎に計数された該有効係数の数の分散を算出し、
算出された該分散に基づいて、前記原画像の符号化に用いる量子化閾値を決定し、
決定された該量子化閾値を用いて前記原画像全体に対する量子化処理および符号化処理を行なって、前記原画像の特徴に応じた該量子化係数の符号量制御を行なうすることを特徴とする、画像データ符号化方法。
【請求項３】
原画像を、それぞれ複数の画素からなる複数のブロックに分割し、ブロック毎に、該ブロック内の複数の画素の階調値を直交変換し、直交変換により得られた変換係数を量子化して量子化係数を求め、該量子化係数を符号化する画像データ符号化方法であって、
それぞれ複数の該ブロックを含む複数のサブエリアとして、該原画像の種別に応じた２以上の領域を指定し、
指定された各サブエリアに含まれる該ブロックに対する量子化を行ない、
該量子化によって得られた量子化係数に含まれる有効係数の数を、該サブエリア毎に計数し、
該サブエリア毎に計数された該有効係数の数の分散を算出し、
算出された該分散に基づいて、前記原画像の符号化に用いる量子化閾値を決定し、
決定された該量子化閾値を用いて前記原画像全体に対する量子化処理および符号化処理を行なって、前記原画像の特徴に応じた該量子化係数の符号量制御を行なうことを特徴とする、画像データ符号化方法。
【請求項４】
該量子化係数の符号量を計数しながら該量子化係数の符号化を行ない、
該符号化処理中に計数されている符号量に基づいて、最終的な符号量が目標符号量を超えるものと予測される場合、該量子化係数に含まれる有効係数の一部を無効係数に置き換えることを特徴とする、請求項１〜請求項３のいずれか一つに記載の画像データ符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多値画像を複数の画素（例えば８×８画素）からなるブロックに分割し、ブロック内の画素の階調値を直交変換した後に符号化するための技術に関する。
【０００２】
【従来の技術】
一般に、数値データに比べて情報量が桁違いに多い画像データ、特に、中間調画像やカラー画像のデータを蓄積し、あるいは、高速かつ高品質で伝送するためには、画素毎の階調値を効率よく符号化する必要がある。
【０００３】
画像データを高効率で圧縮する方式としては、例えばＪＰＥＧ（Joint Photographic Expert Group）符号化方式が知られている。このＪＰＥＧ符号化方式では、画像を８×８画素からなるブロックに分割し、各ブロックの画信号を、二次元離散コサイン変換（以下、ＤＣＴ変換と称する）により空間周波数分布のＤＣＴ係数に変換し、得られたＤＣＴ係数を、視覚に適合した閾値を用いて量子化することにより、量子化ＤＣＴ係数を求め、その量子化ＤＣＴ係数を、予め統計的に求められたハフマン・テーブルにより符号化する。
【０００４】
図１０は一般的なＪＰＥＧ符号化回路の構成を示すブロック図であり、この図１０に示すように、ＪＰＥＧ符号化回路は、入力端子３１，二次元ＤＣＴ変換部３２，線形量子化部３３，量子化マトリクス３４，可変長符号化部３５，符号表（ハフマン・テーブル）３６および出力端子３７をそなえて構成されている。
【０００５】
変換対象の画像は、８×８画素からなる複数のブロック（そのブロックの一例を図１１に示す）に分割された上で、画信号として、入力端子３１から二次元ＤＣＴ変換部３２に入力される。二次元ＤＣＴ変換部３２では、入力された画信号をＤＣＴ変換により直交変換することにより、例えば図１１に示すブロックを図１２に示す空間周波数分布のＤＣＴ係数に変換し、そのＤＣＴ係数を線形量子化部３３へ出力する。
【０００６】
線形量子化部３３では、視覚実験により予め決められた８×８の量子化マトリクス３４の各要素に、量子化制御パラメータを乗算して量子化閾値を求め、求められた量子化閾値により、二次元ＤＣＴ変換部３２からのＤＣＴ係数を除算して量子化ＤＣＴ係数を求める線形量子化を行なう。量子化マトリクス３４は、例えば図１３に示すごとく８×８の閾値から構成されており、このような量子化マトリクス３４を用いて図１２に示すＤＣＴ係数に対する線形量子化を行なうと、線形量子化部３３によって、例えば図１４に示すような量子化ＤＣＴ係数が生成される。量子化ＤＣＴ係数においては、図１４に示すように閾値以下のＤＣＴ係数は零となり、ＤＣ成分（図１４では値“５”；総レベルを示す成分）と少数（図１４では５個）のＡＣ成分とが残る。
【０００７】
二次元的に配列された量子化ＤＣＴ係数は、図１５に示す順序で行なわれるジグザグスキャンにより、一次元のシリアルデータに変換され、可変長符号化部３５に入力される。可変長符号化部３５は、各ブロックの先頭要素のＤＣ成分と、一つ前のブロックのＤＣ成分との差分を可変長符号化する。また、可変長符号化部３５は、ＡＣ成分については、零でない有効係数の値（以下、インデックスと称する）と、インデックスまでの無効係数（零）のランの長さ（以下、ランと称する）とを可変長符号化する。さらに、可変長符号化部３５において、ＤＣ成分およびＡＣ成分のそれぞれは、画像毎の統計量に基づいて作成されるハフマン・テーブルで構成される符号表３６を用いて符号化され、このようにして得られた符号データは、順次、出力端子３７から出力される。
【０００８】
上述のようなＪＰＥＧ符号化方式において、画像を符号化した時の符号量（符号データ量）が所望の符号量となるように制御しなければならない場合がある。かかる必要性は、例えば、限られた容量の記憶媒体（例えばＩＣメモリやフレキシブルディスク等）に所定枚数の画像を入力する場合などに生じる。
【０００９】
符号量を所望の値になるように制御するには、従来、以下のような手法が採られている。つまり、上述のごとくＤＣＴ係数を量子化した後に可変長符号化を行なって符号量を求め、その符号量が所望の符号量と異なる場合には、量子化の粗さ（つまり量子化閾値）を変更し、再度、量子化および可変長符号化を行なう。そして、符号データの量が所望の符号量となるまで、量子化閾値の変更，量子化および可変長符号化を繰り返し実行する。
【００１０】
上述した手法では、符号化結果が所望の符号量となるように符号化を行なうべく、最低１回は可変長符号化を行なって符号量と量子化の粗さとの関係を求め、その関係から所望の符号量となる量子化の粗さを求めている。このことは可変長符号化と量子化との間でフィードバック制御を行なうことを意味し、処理が複雑になる。また、可変長符号化には相当の時間を要し、目的とする量子化の粗さ、つまりは所望の符号量の符号データを得るまでには相当の時間を要する。特に、上述の手法では、可変長符号化を複数回繰り返し実行する場合もあり、このような場合、処理に要する時間は極めて長くなる。
【００１１】
そこで、特許第２８２０８０７号公報においては、以下のような画像データ符号化方法が開示されている。この画像データ符号化方法を適用されたＪＰＥＧ符号化回路は、例えば図１６に示すごとく構成されている。この図１６に示すＪＰＥＧ符号化回路は、二次元ＤＣＴ変換部１，ＤＣＴ係数保持部２，線形量子化部３，量子化ＤＣＴ係数保持部４，符号表５，可変長符号化部６，有効係数累積部７および符号量制御部８から構成されている。
【００１２】
二次元ＤＣＴ変換部１は、画像を８×８画素からなるブロックに分割した時、ブロック毎に８×８画素の画信号データＰＣＳを入力され、図１０の二次元ＤＣＴ変換部３２と同様、画信号データＰＣＳをＤＣＴ変換により直交変換して、空間周波数分布の８×８個のＤＣＴ係数に変換するものであり、ＤＣＴ係数保持部２は、二次元ＤＣＴ変換部１によって得られた８×８個のＤＣＴ係数を一時的に保持するものである。
【００１３】
線形量子化部３は、ＤＣＴ係数保持部２の８×８個のＤＣＴ係数を入力され、図１０の線形量子化部３３と同様、そのＤＣＴ係数に対して線形量子化処理を施して量子化ＤＣＴ係数を出力するもので、除算器３ａをそなえて構成され、この除算器３ａを用い、１ブロック当たり８×８個のＤＣＴ係数を、それぞれ対応する量子化閾値ｑ(i)（ｑ(i)は０以上の整数；ｉ＝０，１，…，６３）により除算して量子化するものである。
【００１４】
量子化ＤＣＴ係数保持部４は、線形量子化部３によって得られた８×８個の量子化ＤＣＴ係数を一時的に保持するものであり、符号表５は、図１０の符号表３６と同様、ハフマン・テーブルで構成されるものである。
可変長符号化部６は、二次元的に配列された８×８個の量子化ＤＣＴ係数が上記ジグザグスキャンにより量子化ＤＣＴ係数保持部４から一次元のシリアルデータに変換されて入力されると、図１０の可変長符号化部３５と同様、符号化表５を用いて、入力順に各量子化ＤＣＴ係数を符号化するものである。
【００１５】
有効係数累積部７は、線形量子化部３で得られた量子化ＤＣＴ係数に含まれる有効係数（零でない係数）の数を累積して１画面分の有効係数の総数ｎを算出するものである。
符号量制御部８は、最終的に可変長符号化部６によって得られる１画面分の符号データの量（符号量）が指定符号量Ｆになるように、有効係数の総数ｎに基づいて量子化閾値ｑ(i)を決定して符号量を制御するもので、符号量／有効係数変換部８１および量子化閾値決定部８２をそなえて構成されている。
【００１６】
符号量／有効係数変換部８１は、指定符号量Ｆを１画面分の有効係数の総数ｍに変換するものである。符号量（ビット／画素）と８×８画素の１ブロック当たりの有効係数の数の平均値との間には図１７に示すような比例関係が成立するので、符号量／有効係数変換部８１は、その比例関係に基づいて、指定符号量Ｆに応じた１画面分の有効係数の総数ｍを算出する。
【００１７】
量子化閾値決定部８２は、有効係数累積部７によって得られた総数ｎと符号量／有効係数変換部８１によって得られた総数ｍとの差に応じて量子化閾値ｑ(i)を決定するもので、量子化閾値保持部８２ａ，スケーリング制御部８２ｂおよび乗算器８２ｃをそなえて構成されている。
量子化閾値保持部８２ａは、予め設定されている８×８個の量子化閾値Ｑ(i)（Ｑ(i)は０以上の整数；ｉ＝０，１，…，６３）を記憶するものである。
【００１８】
スケーリング制御部８２ｂは、有効係数累積部７によって得られた総数ｎと符号量／有効係数変換部８１によって得られた総数ｍとの差に応じて、量子化閾値Ｑ(i)をスケーリングするスケーリングファクタ（重み係数）ＳＦを決定するものである。
乗算器８２ｃは、スケーリング制御部８２ｂで決定された重み係数ＳＦと量子化閾値保持部８２ａの量子化閾値Ｑ(i)とを乗算することにより、量子化閾値Ｑ(i)のスケーリングを行ない、実際の量子化閾値ｑ(i)を算出して線形量子化部３の除算器３ａに入力するものである。
【００１９】
重み係数ＳＦを大きくすれば量子化閾値ｑ(i)は大きくなって（換言すれば量子化の粗さが大きくなって）、有効係数の総数ｎは減少する一方、重み係数ＳＦを小さくすれば量子化閾値ｑ(i)は小さくなって（換言すれば量子化の粗さが小さくなって）、有効係数の総数ｎは増大する。即ち、重み係数ＳＦと有効係数の総数ｎとの間には、図１８に示すような関係がある。従って、スケーリング制御部８２ｂは、有効係数の総数ｎとｍとの差が予め設定された許容範囲内になく且つｎ＞ｍの場合には重み係数ＳＦを大きく設定する一方、有効係数の総数ｎとｍとの差が前記許容設定範囲内になく且つｎ＜ｍの場合には重み係数ＳＦを小さく設定する。
【００２０】
次に、図１６に示すごとく構成されたＪＰＥＧ符号化回路の動作について説明する。このＪＰＥＧ符号化回路では、可変長符号化により得られるデータの符号量が所望符号量Ｆとほぼ等しくなるような量子化閾値ｑ(i)を、以下のステップ（１）〜（１３）により決定する。なお、初期状態において、重み係数ＳＦは“１”に設定されているものとする。
【００２１】
（１）二次元ＤＣＴ変換部１は、入力された１ブロック８×８画素の画信号データＰＣＳをＤＣＴ変換により直交変換して８×８個のＤＣＴ係数を求め、ＤＣＴ係数保持部２に記憶させる。
（２）符号量／有効係数変換部８１は、指定入力された所望の符号量Ｆと図１７に示す関係とに基づいて１画面分の有効係数の総数ｍを算出し、算出された総数ｍをスケーリング制御部８２ｂに入力する。
【００２２】
（３）ＤＣＴ係数保持部２は、図示しないタイミング制御部からのデータ読出信号ＲＤＴに従って、ＤＣＴ係数を１個ずつ線形量子化部３の除算器３ａに順次出力する。
（４）ＤＣＴ係数の読出しと同時に、量子化閾値保持部８２ａから読み出された量子化閾値Ｑ(i)が、スケーリング制御部８２ｂから出力される初期値１の重み係数ＳＦと乗算器８２ｃで乗算され、その乗算結果が量子化閾値ｑ(i)として除算器３ａに入力される。
【００２３】
（５）除算器３ａは、受信したＤＣＴ係数を量子化閾値ｑ(i)で除算し、その除算結果（量子化ＤＣＴ係数）を量子化ＤＣＴ係数保持部４および有効係数累積部７へ出力する。
（６）有効係数累積部７は、量子化ＤＣＴ係数として零でない係数（つまり有効係数）を入力されるとカウントアップし、有効係数の数を計数し、その計数値を累積する。
【００２４】
（７）１個分のＤＣＴ係数の量子化を終了すると、上記タイミング制御部は、ＤＣＴ係数保持部２に対し次のＤＣＴ係数の読出しを指示し、次のＤＣＴ係数の量子化〔上述したステップ（４）〜（６）〕を行なわせる。
（８）上述したステップ（３）〜（７）を、１画面における全てのブロックについて実行することにより、１画面分の有効係数の総数ｎが有効係数累積部７によって得られる。
【００２５】
（９）有効係数累積部７によって得られた総数ｎは、スケーリング制御部８２ｂに入力される。
（１０）スケーリング制御部８２ｂでは、指定符号量Ｆに対応する有効係数の総数ｍと有効係数累積部７によって得られた総数ｎとの差に基づいて、重み係数ＳＦを更新するか否かを判定する。
【００２６】
（１１）スケーリング制御部８２ｂは、ｍとｎとの差が予め設定された許容範囲内であれば重み係数ＳＦの更新を終了し、ｍとｎとの差が前記許容範囲外で且つｎ＞ｍの場合には重み係数ＳＦを所定量だけ大きく設定する一方、ｍとｎとの差が前記許容範囲外で且つｎ＜ｍの場合には重み係数ＳＦを所定量だけ小さく設定する。
【００２７】
（１２）重み係数ＳＦを更新した場合には、以後、有効係数累積部７の累積値ｎをクリアして零にしてから、ｍとｎとの差が前記許容範囲内に入るまで、上述したステップ（３）〜（１１）の処理を繰り返し実行する。
（１３）そして、ｍとｎとの差が前記許容範囲内に入った時点で、重み係数ＳＦの更新が終了され、その時点の量子化閾値ｑ(i)を用いて、ＤＣＴ係数を量子化ＤＣＴ係数に変換され、その量子化ＤＣＴ係数が、符号表５を用いて可変長符号化部６により符号化される。
【００２８】
このように、図１６に示すＪＰＥＧ符号化回路では、画像全体の量子化により得られた量子化係数に含まれる有効係数の総数ｎを求め、その総数ｎと指定符号量Ｆに対応する推定総数ｍとに基づいて量子化閾値ｑ(i)を決定して符号量が制御されるので、可変長符号化を実際に行なわなくても、符号量が指定符号量Ｆとなる量子化閾値ｑ(i)が決定され、指定符号量Ｆの符号データを短時間で得ることができる。
【００２９】
【発明が解決しようとする課題】
しかしながら、図１６に示すＪＰＥＧ符号化回路による画像データ符号化方法では、符号化対象の画像の全体について求められた有効係数の総数ｎに基づいて量子化閾値ｑ(i)を決定しているため、画像の特徴が平均化され、高精度の符号量制御の結果が得られなかった。つまり、従来、画像全体の有効係数の出現頻度に基づいて画像の特徴を捉えていたため、例えば、風景画の中心に緩やかな階調変化の物がある画像では、その部分は他の部分の特徴により粗く量子化されることになり、精度よく符号量制御を行なえなかった。
【００３０】
また、図１６に示すＪＰＥＧ符号化回路による画像データ符号化方法では、可変長符号化部６による符号化処理は１回だけ実行されるが、線形量子化部３による量子化処理は、ｍとｎとの差が前記許容範囲内に入るまで複数回実行されることになる。このため、図１６に示すＪＰＥＧ符号化回路では、符号化処理を完了するまでに要する処理時間は、線形量子化部３による量子化処理も可変長符号化部６による符号化処理も１回だけで済む場合の処理時間の１．５倍以上を要することになり、その処理時間をより短縮することが望まれている。
【００３１】
本発明は、このような課題に鑑み創案されたもので、画像の特徴に応じた高精度の符号量制御を実現するほか、このような高精度の符号量制御を高速に行なえるようにすることを目的とする。
【００３２】
【課題を解決するための手段】
上記目的を達成するために、本発明の画像データ符号化方法（請求項１）は、原画像を、それぞれ複数（Ｎ×Ｍ個；Ｎ，Ｍはいずれも自然数）の画素からなる複数のブロックに分割し、ブロック毎に、該ブロック内の複数の画素の階調値を直交変換し、直交変換により得られた変換係数を量子化して量子化係数を求め、該量子化係数を符号化するものであって、それぞれ複数の該ブロックを含む複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の第１領域のそれぞれに属し且つ該第１領域よりも小さい第２領域を指定し、指定された各サブエリアに含まれる該ブロックに対する量子化を行ない、該量子化によって得られた量子化係数に含まれる有効係数の数を、該サブエリア毎に計数し、該サブエリア毎に計数された該有効係数の数の分散を算出し、算出された該分散に基づいて、前記原画像の符号化に用いる量子化閾値を決定し、決定された該量子化閾値を用いて前記原画像全体に対する量子化処理および符号化処理を行なって、前記原画像の特徴に応じた該量子化係数の符号量制御を行なうことを特徴としている。
【００３３】
また、本発明の画像データ符号化方法（請求項２）は、原画像を、それぞれ複数の画素からなる複数のブロックに分割し、ブロック毎に、該ブロック内の複数の画素の階調値を直交変換し、直交変換により得られた変換係数を量子化して量子化係数を求め、該量子化係数を符号化するものであって、それぞれ複数の該ブロックを含む複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の領域の中の、２以上の領域を指定し、指定された各サブエリアに含まれる該ブロックに対する量子化を行ない、該量子化によって得られた量子化係数に含まれる有効係数の数を、該サブエリア毎に計数し、該サブエリア毎に計数された該有効係数の数の分散を算出し、算出された該分散に基づいて、前記原画像の符号化に用いる量子化閾値を決定し、決定された該量子化閾値を用いて前記原画像全体に対する量子化処理および符号化処理を行なって、前記原画像の特徴に応じた該量子化係数の符号量制御を行なうすることを特徴としている。
さらに、本発明の画像データ符号化方法（請求項３）は、原画像を、それぞれ複数の画素からなる複数のブロックに分割し、ブロック毎に、該ブロック内の複数の画素の階調値を直交変換し、直交変換により得られた変換係数を量子化して量子化係数を求め、該量子化係数を符号化するものであって、それぞれ複数の該ブロックを含む複数のサブエリアとして、該原画像の種別に応じた２以上の領域を指定し、指定された各サブエリアに含まれる該ブロックに対する量子化を行ない、該量子化によって得られた量子化係数に含まれる有効係数の数を、該サブエリア毎に計数し、該サブエリア毎に計数された該有効係数の数の分散を算出し、算出された該分散に基づいて、前記原画像の符号化に用いる量子化閾値を決定し、決定された該量子化閾値を用いて前記原画像全体に対する量子化処理および符号化処理を行なって、前記原画像の特徴に応じた該量子化係数の符号量制御を行なうことを特徴としている。
【００３４】
また、該量子化係数の符号量を計数しながら該量子化係数の符号化を行ない、この符号化処理中に計数されている符号量に基づいて、最終的な符号量が目標符号量を超えるものと予測される場合、該量子化係数に含まれる有効係数の一部を無効係数に置き換えるように構成してもよい（請求項４）。
【００３５】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
〔１〕第１実施形態の説明
図１は本発明の第１実施形態としての画像データ符号化方法を適用されたＪＰＥＧ符号化回路の構成を示すブロック図である。この図１に示すＪＰＥＧ符号化回路も、原画像を、それぞれ８×８個（Ｎ＝Ｍ＝８）の画素からなる複数のブロックに分割し、ブロック毎に、そのブロック内の複数の画素の階調値を直交変換し、直交変換により得られたＤＣＴ係数（変換係数）を量子化して量子化ＤＣＴ係数（量子化係数）を求め、この量子化係数を符号化するものであるが、第１実施形態のＪＰＥＧ符号化回路は、二次元ＤＣＴ変換部１，ＤＣＴ係数保持部２，線形量子化部３，量子化ＤＣＴ係数保持部４，符号表５，可変長符号化部６，有効係数累積部７Ａ，符号量制御部８Ａおよびサブエリア選択部９から構成されている。
【００３６】
サブエリア選択部（サブエリア指定手段）９は、ユーザ等によって予め与えられるサブエリア指定情報に応じ、符号化対象の原画像（画信号）において、それぞれ複数のブロックを含む複数のサブエリア（マクロブロック）を指定・選択するものである。本実施形態では、実際の符号化処理に先立って、符号化結果の符号量が所望の符号量（指定符号量Ｆ）となるような量子化条件〔量子化閾値ｑ(i)（ｑ(i)は０以上の整数；ｉ＝０，１，…，６３）〕を決定すべく、有効係数の算出を行なう際に、サブエリア選択部９は、複数のサブエリアを一つずつ選択する。このサブエリア選択部９によって選択されたサブエリア毎に、後述するごとく、有効係数の計数が行なわれる。
【００３７】
ここで、図３を参照しながら、ブロックとサブエリアとの関係、および、そのサブエリア（有効係数の計数対象領域）を説明する。第１実施形態では、図３に示すように、２８８×２８８画素の原画像が、それぞれ８×８画素からなる３６×３６個のブロックに分割されるとともに、これらのブロックが、３×３個（Ｘ＝Ｙ＝３）のサブエリア（図３中の太線枠内の領域）に分割される。各サブエリアは、１２×１２個のブロックから構成されている。つまり、サブエリア選択部９は、サブエリアとして、図３に示すように、原画像を均等に分割して得られる３×３個の領域の全てを指定し、各サブエリアを原画像から順次選択・抽出し、サブエリア毎に有効係数の計数を実行させるように構成されている。
【００３８】
なお、原画像を成す画素の数や、ブロックを成す画素の数や、サブエリアを成すブロックの数や、サブエリアの数は、上述した値に限定されるものではなく、サブエリアは１個以上のブロックを含むものであればよい。また、有効係数の計数対象領域であるサブエリアの指定・選択手法の変形例については、図４〜図７を参照しながら後述する。
【００３９】
二次元ＤＣＴ変換部１は、前記ブロック毎に８×８画素の画信号データ（階調値）を入力され、この画信号データをＤＣＴ変換により直交変換して、空間周波数分布の８×８個のＤＣＴ係数（変換係数）に変換するものであり、ＤＣＴ係数保持部２は、二次元ＤＣＴ変換部１によって得られた８×８個のＤＣＴ係数を一時的に保持するものである。
【００４０】
線形量子化部（量子化手段）３は、ＤＣＴ係数保持部２の８×８個のＤＣＴ係数を入力され、そのＤＣＴ係数に対して線形量子化処理を施して量子化ＤＣＴ係数（量子化係数）を出力するもので、除算器３ａをそなえて構成され、この除算器３ａを用い、１ブロック当たり８×８個のＤＣＴ係数を、それぞれ対応する量子化閾値ｑ(i)（ｑ(i)は０以上の整数；ｉ＝０，１，…，６３）により除算して量子化するものである。
【００４１】
上述した二次元ＤＣＴ変換部１および線形量子化部３は、サブエリア毎に有効係数の数を計数する際に動作するとともに、サブエリア毎の有効係数の計数結果に基づいて後述するごとく決定された量子化閾値ｑ(i)を用いて、実際に量子化処理および符号化処理を行なう際に再動作するようになっている。
【００４２】
量子化ＤＣＴ係数保持部４は、線形量子化部３によって得られた８×８個の量子化ＤＣＴ係数を一時的に保持するものであり、符号表５は、ハフマン・テーブルで構成されるものである。
可変長符号化部６は、二次元的に配列された８×８個の量子化ＤＣＴ係数が上記ジグザグスキャンにより量子化ＤＣＴ係数保持部４から一次元のシリアルデータに変換されて入力されると、符号表５を用いて、入力順に各量子化ＤＣＴ係数を符号化するものである。
【００４３】
有効係数累積部（有効係数係数手段）７Ａは、線形量子化部３によって得られた量子化ＤＣＴ係数に含まれる有効係数（零でない係数）の数を、サブエリア毎に計数するものである。この有効係数累積部７Ａによる累積・係数結果の例を図２に示す。この図２に示す例では、ｋ個のサブエリア１〜ｋについて、有効係数累積部７Ａにより、それぞれ有効係数の数Ｎ1，Ｎ2，…，Ｎkが累積・計数されている。なお、図３に示すようにサブエリアを指定した場合、ｋ＝Ｘ×Ｙ＝３×３＝９である。
【００４４】
符号量制御部（符号量制御手段）８Ａは、最終的に可変長符号化部６によって得られる１画面分の符号データの量（符号量）が指定符号量Ｆになるように、有効係数累積部７Ａによって得られた有効係数の数Ｎ1〜Ｎkの分布に基づいて量子化閾値ｑ(i)を決定し、量子化ＤＣＴ係数の符号量を制御するもので、符号量／有効係数変換部８１，量子化閾値決定部８２および総数・分散算出部８３をそなえて構成されている。
【００４５】
符号量／有効係数変換部８１は、指定符号量Ｆを１画面分の有効係数の総数ｍに変換するものである。符号量（ビット／画素）と８×８画素の１ブロック当たりの有効係数の数の平均値との間には、前述した通り、図１７に示すような比例関係が成立するので、符号量／有効係数変換部８１は、その比例関係に基づいて、指定符号量Ｆに応じた１画面分の有効係数の総数ｍを算出する。
【００４６】
総数・分散算出部（分散算出手段）８３は、サブエリア１〜ｋの累積結果Ｎ1〜Ｎkに基づいて画像全体の有効係数の総数ｎを算出または推定するとともに、サブエリア１〜ｋの累積結果Ｎ1〜Ｎkの分散（有効係数の数のバラツキ）を算出し、算出された分散に応じて、算出または推定された総数ｎの大きさを調整することにより原画像の特徴を量子化閾値ｑ(i)に反映させるものである。具体的に、総数・分散算出部８３は、算出された分散が所定値を超えると、算出または推定された総数ｎを、所定量だけ大きな値Ｎに変更して出力するものである。
【００４７】
このとき、図３に示すようなサブエリアを採用した場合、総数・分散算出部８３は、画像全体の有効係数の総数ｎを、累積結果Ｎ1〜Ｎkの総和として算出することができる。また、１ブロック当たりの有効係数の数の平均値を、累積結果Ｎ1〜Ｎkに基づいて算出し、その平均値に基づいて、有効係数の総数ｎを算出または推定することもできる。
【００４８】
そして、量子化閾値決定部８２は、総数・分散算出部８３によって得られた総数Ｎと符号量／有効係数変換部８１によって得られた総数ｍとの差に応じて量子化閾値ｑ(i)を決定するもので、量子化閾値保持部８２ａ，スケーリング制御部８２ｂおよび乗算器８２ｃをそなえて構成されている。
量子化閾値保持部８２ａは、予め設定されている８×８個の量子化閾値Ｑ(i)（Ｑ(i)は０以上の整数；ｉ＝０，１，…，６３）を記憶するものである。
【００４９】
スケーリング制御部８２ｂは、総数・分散算出部８３によって得られた総数Ｎと符号量／有効係数変換部８１によって得られた総数ｍとの差に応じて、量子化閾値Ｑ(i)をスケーリングするスケーリングファクタ（重み係数）ＳＦを決定するものである。なお、有効係数の計数を行なうべく最初に量子化を行なう際、ＳＦは“１”に設定され、量子化閾値として、量子化閾値保持部８２ａに保持されたＱ(i)がそのまま用いられるようになっている。
【００５０】
乗算器８２ｃは、スケーリング制御部８２ｂで決定された重み係数ＳＦと量子化閾値保持部８２ａの量子化閾値Ｑ(i)とを乗算することにより、量子化閾値Ｑ(i)のスケーリングを行ない、実際の量子化閾値ｑ(i)を算出して線形量子化部３の除算器３ａに入力するものである。このようにして符号量制御部８Ａにより量子化閾値ｑ(i)が決定されると、その量子化閾値ｑ(i)を用いて、原画像全体に対する量子化処理および符号化処理が実行されるようになっている。
【００５１】
なお、重み係数ＳＦを大きくすれば量子化閾値ｑ(i)は大きくなって（換言すれば量子化の粗さが大きくなって）、有効係数の総数は減少する一方、重み係数ＳＦを小さくすれば量子化閾値ｑ(i)は小さくなって（換言すれば量子化の粗さが小さくなって）、有効係数の総数は増大する。前述した通り、重み係数ＳＦと有効係数の総数との間には、図１８に示すような関係がある。従って、本実施形態のスケーリング制御部８２ｂも、有効係数の総数Ｎとｍとの差が予め設定された許容範囲内になく且つＮ＞ｍの場合には重み係数ＳＦを大きく設定する一方、有効係数の総数Ｎとｍとの差が前記許容設定範囲内になく且つＮ＜ｍの場合には重み係数ＳＦを小さく設定する。
【００５２】
上述した二次元ＤＣＴ変換部１，線形量子化部３，符号表５，可変長符号化部６，有効係数累積部７Ａ，符号量制御部８Ａおよびサブエリア選択部９は、専用ソフトウェア（画像データ符号化プログラム）によって実現される。
この画像データ符号化プログラムは、例えばフレキシブルディスク，ＣＤ−ＲＯＭ等のコンピュータ読取可能な記録媒体に記録された形態で提供される。本実施形態においては、ＪＰＥＧ符号化回路として機能するコンピュータ内のＲＯＭ（Read Only Memory；図示省略）等に予め画像データ符号化プログラムを格納しておき、この画像データ符号化プログラムを、上記コンピュータ内のＣＰＵ（Central Processing Unit；図示省略）により読み出して実行することで、上述した二次元ＤＣＴ変換部１，線形量子化部３，符号表５，可変長符号化部６，有効係数累積部７Ａ，符号量制御部８Ａおよびサブエリア選択部９としての機能が実現される。
【００５３】
なお、画像データ符号化プログラムは、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供されてもよい。
また、上述したＤＣＴ係数保持部２および量子化ＤＣＴ係数保持部４は、上記コンピュータに内蔵されたＲＡＭ（Random Access Memory；図示省略）やハードディスクなどの記憶装置（あるいは外付けの記憶装置）によって実現される。
【００５４】
次に、図１に示すごとく構成された第１実施形態のＪＰＥＧ符号化回路の動作について説明する。この第１実施形態のＪＰＥＧ符号化回路では、可変長符号化により得られるデータの符号量が所望符号量Ｆとほぼ等しくなるような量子化閾値ｑ(i)が、以下のステップ（２０）〜（３３）により決定され、量子化ＤＣＴ係数に対する符号化処理が実行される。なお、初期状態において、重み係数ＳＦは１に設定されているものとする。
【００５５】
（２０）符号量／有効係数変換部８１に、所望の符号量を指定入力し、この符号量／有効係数変換部８１は、その符号量Ｆと図１７に示す関係とに基づいて１画面分の有効係数の総数ｍを算出し、算出された総数ｍをスケーリング制御部８２ｂに入力する。
（２１）実際の符号化処理に先立って、サブエリア選択部９は、ユーザ等によって予め与えられるサブエリア指定情報に応じ、符号化対象の原画像において複数のサブエリアを指定・選択する。このサブエリア選択部９により選択されたサブエリア毎に、以下のステップ（２２）〜（２７）による処理が実行される。
【００５６】
（２２）二次元ＤＣＴ変換部１は、サブエリア毎に、入力された１ブロック８×８画素の画信号データをＤＣＴ変換により直交変換して８×８個のＤＣＴ係数を求め、ＤＣＴ係数保持部２に記憶させる。
（２３）ＤＣＴ係数保持部２は、図示しないタイミング制御部からのデータ読出信号に従って、ＤＣＴ係数を１個ずつ線形量子化部３の除算器３ａに順次出力する。
【００５７】
（２４）ＤＣＴ係数の読出しと同時に、量子化閾値保持部８２ａから読み出された量子化閾値Ｑ(i)が、スケーリング制御部８２ｂから出力される初期値１の重み係数ＳＦと乗算器８２ｃで乗算され、その乗算結果が量子化閾値ｑ(i)として除算器３ａに入力される。
（２５）除算器３ａは、受信したＤＣＴ係数を量子化閾値ｑ(i)で除算し、その除算結果（量子化ＤＣＴ係数）を有効係数累積部７Ａへ出力する。
【００５８】
（２６）有効係数累積部７Ａは、量子化ＤＣＴ係数として零でない係数（つまり有効係数）を入力されるとカウントアップし、図２に示したように、サブエリア毎に有効係数の数を計数し、その計数値を累積する。
（２７）１個分のＤＣＴ係数の量子化を終了すると、上記タイミング制御部は、ＤＣＴ係数保持部２に対し次のＤＣＴ係数の読出しを指示し、次のＤＣＴ係数の量子化〔上述したステップ（２４）〜（２６）〕を行なわせる。
【００５９】
（２８）上述したステップ（２３）〜（２７）を、全てのサブエリアについてサブエリア毎に実行することにより、サブエリア毎の有効係数の数Ｎ1〜Ｎkが有効係数累積部７Ａによって累積される。
（２９）有効係数累積部７Ａによって得られたサブエリア毎の有効係数の数Ｎ1〜Ｎkは、符号量制御部８Ａの総数・分散算出部８３に入力される。
【００６０】
（３０）総数・分散算出部８３では、サブエリア１〜ｋの累積結果Ｎ1〜Ｎkに基づいて画像全体の有効係数の総数ｎが算出または推定されるとともに、サブエリア１〜ｋの累積結果Ｎ1〜Ｎkの分散（有効係数の数のバラツキ）が算出される。そして、算出された分散が所定値を超えた場合、上記総数ｎを、所定量だけ大きな値Ｎに変更して出力する。
【００６１】
（３１）スケーリング制御部８２ｂでは、指定符号量Ｆに対応する有効係数の総数ｍと総数・分散算出部８３によって得られた総数Ｎとの差に基づいて、重み係数ＳＦを更新するか否かを判定する。
（３２）スケーリング制御部８２ｂは、ｍとＮとの差が予め設定された許容範囲内であれば重み係数ＳＦは“１”のままとし、ｍとＮとの差が前記許容範囲外で且つＮ＞ｍの場合には重み係数ＳＦを所定量だけ大きく設定する一方、ｍとＮとの差が前記許容範囲外で且つＮ＜ｍの場合には重み係数ＳＦを所定量だけ小さく設定する。
【００６２】
（３３）（３２）で得られた重み係数ＳＦと量子化閾値保持部８２ａの量子化閾値Ｑ(i)とを乗算することにより、量子化閾値Ｑ(i)のスケーリングを行ない、量子化閾値ｑ(i)を算出して線形量子化部３の除算器３ａに入力する。
上述のように決定された量子化閾値ｑ(i)を用いて、原画像全体に対する量子化処理および符号化処理が、ＤＣＴ変換部１，量子化部３，符号表５および可変長符号化部６により実行される。
【００６３】
このように、本発明の第１実施形態によれば、各サブエリア内における有効係数の分布（出現頻度，分散）に基づいて量子化ＤＣＴ係数の符号量が制御されることになるので、符号化対象の原画像における特徴を符号化処理に反映させることができ、画像の特徴に応じた高精度の符号量制御を実現することができる。特に、本実施形態では、サブエリア毎に計数された有効係数の数の分散に応じて量子化閾値ｑ(i)を決定することにより、原画像における有効係数のバラツキ、つまり原画像の特徴が捉えられて符号化処理に反映されている。
【００６４】
ここで、第１実施形態について、より具体的に説明する。変化の激しい画像は有効係数の数が多くなる一方で、変化の緩やかな画像は有効係数の数が少なくなる。実際の画像では、建物や木などエッジ部を多く含む風景画像が、変化の激しい画像に相当し、人物（人の肌）や単色の背景などを含む人物画像が、エッジ部がなく変化の緩やかな画像に相当する。風景画像のような変化の激しい画像では、量子化閾値ｑ(i)を大きくして、人間の目では捕らえることのできない高周波成分（エッジ部）の情報を落として符号量を抑える。また、人物画像のような変化の緩やかな画像では量子化閾値を小さくして、微妙な階調の変化を保存することで符号量を増加させる。
【００６５】
従来、画像全体の有効係数の出現頻度から画像の特徴を捉えていたため、例えば風景画像の中心に緩やかな階調変化の物がある画像では、その部分は他の部分の特徴により粗く量子化されることになり、精度良く符号量制御を行なえていなかった。
本発明によれば、サブエリア毎に有効係数を累積し、それぞれのサブエリアの有効係数の出現頻度（分散）に基づいて、符号化に用いる量子化閾値ｑ(i)を決定することによって、部分的に特徴の異なる画像も精度良く符号量制御が行なえるようになる。
【００６６】
上述した第１実施形態では、図３に示すようなサブエリアを指定・選択した場合について説明したが、以下に、サブエリアの指定・選択手法の第１〜第３変形例について説明する。
〔１−１〕第１変形例の説明
図４はサブエリア（有効係数の計数対象領域）の第１変形例を説明するための図であり、この図４に示すように、第１変形例では、サブエリア選択部９が、複数のサブエリアとして、原画像を均等に分割して得られるＸ×Ｙ個（ここでは、Ｘ＝Ｙ＝３）の第１領域のそれぞれに属し且つこの第１領域よりも小さい第２領域（図４中の太線枠内の領域）を指定・選択している。
【００６７】
図４に示す例では、原画像を均等に分割して得られる３×３個の第１領域は、図３に示したサブエリアと同様のもので、それぞれ１２×１２個のブロックから構成されている。そして、第１変形例のサブエリアとしての第２領域は、各第１領域の中央に位置する、４×４個のブロックから構成されている。このようなサブエリア（第２領域）を採用した場合、サブエリア選択部９は、図４に示す９個の第２領域をサブエリアとして原画像から順次選択・抽出し、サブエリア毎に有効係数の計数を実行させる。これにより、図２に示す例と同様の累積結果Ｎ1〜Ｎk（ただしｋ＝９）が得られる。
【００６８】
また、図４に示すようなサブエリア（第２領域）を採用した場合、総数・分散算出部８３は、画像全体の有効係数の総数ｎを、累積結果Ｎ1〜Ｎkの総和と、画像全体の面積に対する全サブエリアの面積（ここでは９個の第２領域の合計面積）の比率とによって推定する。例えば、累積結果Ｎ1〜Ｎkの総和をＮT、画像全体の面積をＳ、全サブエリアの面積をＳSとすると、画像全体の有効係数の総数ｎは、下記（１）式により推定される。
ｎ＝ＮT×（Ｓ／ＳS）            （１）
【００６９】
図４に示す例では、ｎ＝ＮT×９となる。
図４に示すようなサブエリアを用いることにより、量子化閾値ｑ(i)を決定するための処理の対象になるブロックの数（データ量）を大幅に削減することができ、処理速度が速くなり、原画像の特徴を確実に捉えながら処理時間を大幅に短縮できる。
【００７０】
ここで、第１変形例について、より具体的に説明する。図３に示すサブエリアを採用した場合、処理対象となる画像のサイズは従来技術と同一である。一方、一般に、画像データの特徴は、その画像データ中の、ある一定の面積の部分だけで把握することができる。従って、図３に示すサブエリア（第１領域）内から図４に示す第２領域をサブエリアとして抽出し、そのサブエリア毎に有効係数の数を計数すれば、少量の面積の画像データから画像全体の特徴を把握することができる。
【００７１】
例えば、６４０×４８０画素のカラー画像（ＲＧＢ）を均等に９分割したサブエリア（第１領域）を設定した場合、処理対象のデータ量は９２１．６ＫＢとなる。これに対し、各第１領域をさらに９分割したうちの一つである第２領域をサブエリアとして設定した場合、処理対象のデータ量は、１０２．４ＫＢとなり、第１領域をそのままサブエリアとして用いた場合の９分の１のデータ量となり、つまりは処理時間を９分の１に短縮することができる。
【００７２】
〔１−２〕第２変形例の説明
図５はサブエリア（有効係数の計数対象領域）の第２変形例を説明するための図であり、この図５に示すように、第２変形例では、サブエリア選択部９が、複数のサブエリアとして、原画像を均等に分割して得られるＸ×Ｙ個（ここでは、Ｘ＝Ｙ＝３）の領域の中の、２以上の領域を指定・選択している。
【００７３】
図５に示す例では、第１実施形態（図３に示す例）と同様の３×３個のサブエリアの中から、５個のサブエリア（図５中の太線枠内の領域）を、各サブエリアの位置〔二次元アドレス(X0,Y0),(Xx,Y0),(Xi,Yj),(X0,Yy),(Xx,Yy)〕により有効サブエリアとして指定している。そして、サブエリア選択部９は、図５に示す５個の有効サブエリアを原画像から順次選択・抽出し、サブエリア毎に有効係数の計数を実行させる。これにより、図２に示す例と同様の累積結果Ｎ1〜Ｎk（ただしｋ＝５）が得られる。
【００７４】
また、図５に示すようなサブエリアを採用した場合、総数・分散算出部８３は、第１変形例と同様、上記（１）式により、画像全体の有効係数の総数ｎを、累積結果Ｎ1〜Ｎkの総和ＮTと、画像全体の面積に対する全サブエリアの面積（ここでは５個の有効サブエリアの合計面積）の比率ＳS／Ｓとによって推定する。図５に示す例では、ｎ＝ＮT×（９／５）となる。
【００７５】
図５に示すように、画像の特徴を得やすい画像の中心や左右四隅等のサブエリアを指定して用いることにより、第１変形例と同様、量子化閾値ｑ(i)を決定するための処理の対象になるブロックの数（データ量）を大幅に削減することができ、処理速度が速くなり、原画像の特徴を確実に捉えながら処理時間を大幅に短縮できるほか、処理対象のサブエリアの数も減るため、有効係数の計数結果を保持するための記憶領域を削減でき省メモリ化にも寄与することになる。
【００７６】
ここで、第２変形例について、より具体的に説明する。一般に、画像全体の特徴は、その画像の中心や左右四隅に現れることが多い。そこで、第２変形例ではサブエリア自体を予め決めた場所に設定することにより、処理対象の画像データ量や、累積結果Ｎ1〜Ｎk（ｋ＝５）の記憶領域（メモリ）の容量を削減することができる。
【００７７】
例えば、６４０×４８０画素のカラー画像（ＲＧＢ）を均等に９分割したサブエリアを設定した場合、処理対象のデータ量は９２１．６ＫＢとなる。これに対し、図５に示すごとく有効サブエリアを中心と左右四隅の５箇所とした場合、処理対象のデータ量は、５１２ＫＢとなり、図３に示す例の９分の５となり、つまりは処理時間を９分の５に短縮することができる。また、累積結果Ｎ1〜Ｎk（ｋ＝５）の記憶領域の容量も９分の５となり、省メモリ化を実現することができる。
【００７８】
〔１−３〕第３変形例の説明
図６（Ａ），（Ｂ）および図７（Ａ），（Ｂ）はいずれも有効係数の計数対象領域の第３変形例を説明するための図である。
第３変形例では、サブエリア選択部９が、複数のサブエリアとして、原画像の種別に応じた２以上の領域（図中の太線枠内の領域）を指定・選択している。
【００７９】
人物画像と風景画像とでは、画像の特徴は大きく異なる。そこで、予め符号化対象の画像種別を特定することができる場合（例えば、カメラのモード設定等により、撮影時の対象をユーザが明示的に指定することができる場合）、サブエリアの配置パターンを、画像種別に応じた、画像の特徴を最も捉えやすいものに変更する。
【００８０】
例えば、図６（Ａ）に示すような人物画像に対しては、図６（Ｂ）に示す３箇所のサブエリアを指定する一方、図７（Ａ）に示すような風景画像に対しては、図７（Ｂ）に示す３箇所のサブエリアを指定する。つまり、第３変形例では、画像種別に応じて、サブエリアの場所を変えて指定している。
そして、サブエリア選択部９は、図６（Ｂ）または図７（Ｂ）に示す３個の有効サブエリアを原画像から順次選択・抽出し、サブエリア毎に有効係数の計数を実行させる。これにより、図２に示す例と同様の累積結果Ｎ1〜Ｎk（ただしｋ＝３）が得られる。
【００８１】
また、図６（Ｂ）や図７（Ｂ）に示すようなサブエリアを採用した場合、総数・分散算出部８３は、第１変形例と同様、上記（１）式により、画像全体の有効係数の総数ｎを、累積結果Ｎ1〜Ｎkの総和ＮTと、画像全体の面積に対する全サブエリアの面積（ここでは３個の有効サブエリアの合計面積）の比率ＳS／Ｓとによって推定する。
【００８２】
図６（Ｂ）や図７（Ｂ）に示すように、サブエリアとして、原画像の種別（風景画像，人物画像等の種別）に応じた２以上の領域を指定することにより、量子化閾値ｑ(i)を決定するための処理の対象になるブロックの数（データ量）を大幅に削減することができ、画像種別に応じた特徴を確実に捉えながら処理時間を大幅に短縮できるほか、処理対象のサブエリアの数も減るため、有効係数の計数結果を保持するための記憶領域を削減でき省メモリ化にも寄与することになる。
【００８３】
ここで、第３変形例について、より具体的に説明する。第３変形例を実際に採用する場合には、撮影対象の画像種別を予めユーザが指定することのできる手段を有する画像入力装置（デジタルカメラ等）において、その手段による選択肢（人物，風景等）に対応させてサブエリアの配置パターンも自動的に選択されるように構成しておく。一般に、撮影対象の画像種別によって、特徴のある部分を特定することができる。例えば、人物画像ならば画像中心に特徴があり、風景画像ならば画像全体に特徴がある。従って、画像種別毎にサブエリアの配置パターンを決定しておくことで、符号化処理対象の画像の特徴を得やすくなる上に、処理対象の画像データ量や、累積結果Ｎ1〜Ｎk（ｋ＝３）の記憶領域（メモリ）の容量を削減することもできる。
【００８４】
例えば、６４０×４８０画素のカラー画像（ＲＧＢ）を均等に９分割したサブエリアを設定した場合、処理対象のデータ量は９２１．６ＫＢとなる。これに対し、図６（Ｂ）や図７（Ｂ）に示すごとく画像種別毎に３個のサブエリアを設定する場合、処理対象のデータ量は、３０７．２ＫＢとなり、図３に示す例の３分の１となり、つまりは処理時間を３分の１に短縮することができる。また、累積結果Ｎ1〜Ｎk（ｋ＝３）の記憶領域の容量も３分の１となり、省メモリ化を実現することができる。
【００８５】
〔２〕第２実施形態の説明
図８は本発明の第２実施形態としての画像データ符号化方法を適用されたＪＰＥＧ符号化回路の構成を示すブロック図である。この図８に示すＪＰＥＧ符号化回路も、図１に示した第１実施形態のＪＰＥＧ符号化回路とほぼ同様に構成されているが、この第２実施形態では、線形量子化部３に代えて線形量子化部３Ａがそなえられるほか、符号量制御部８Ａに代えて符号量制御部８Ｂがそなえられている。なお、図８中、既述の符号と同一の符号は同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
【００８６】
線形量子化部（量子化手段）３Ａには、上述した除算器３ａに加えて、さらに係数置換部３ｂがそなえられている。また、符号量制御部（符号量制御手段）８Ｂには、上述した符号量／有効係数変換部８１，量子化閾値決定部８２および総数・分散算出部８３に加えて、さらに符号量計数部８４がそなえられている。
【００８７】
符号量計数部（符号量係数手段）８４は、量子化ＤＣＴ係数を可変長符号化部６により符号化している際に、可変長符号化部６によって符号化された量子化ＤＣＴ係数の符号量を計数するものである。
係数置換部（係数置換手段）３ｂは、符号量計数部８４によって計数されている符号量に基づいて、最終的な符号量が目標符号量Ｆを超えるものと予測される場合、量子化ＤＣＴ係数に含まれる有効係数の一部を強制的に無効係数に置き換えるものである。
なお、上述した線形量子化部３Ａおよび符号量制御部８Ｂとしての機能も、第１実施形態と同様、専用プログラム（画像データ符号化プログラム）をコンピュータ上で実行することによって実現される。
【００８８】
次に、図８に示すごとく構成された第２実施形態のＪＰＥＧ符号化回路の動作について説明する。この第２実施形態のＪＰＥＧ符号化回路でも、第１実施形態と同様にして量子化閾値ｑ(i)が決定され、その量子化閾値ｑ(i)を用いて原画像全体に対する量子化処理が線形量子化部３Ａ（除算器３ａ）により実行され、符号表５および可変長符号化部６により、量子化ＤＣＴ計数の符号化処理が実行される。
【００８９】
その際、第２実施形態では、可変長符号化部６によって符号化された量子化ＤＣＴ係数の符号量が、符号量計数部８４により計数される。そして、例えば全画像の半分の符号化処理を完了した時点で、符号量計数部８４によって計数された符号量が目標符号量（指定符号量）Ｆの半分を超えたような場合、最終的な符号量が目標符号量Ｆを超えるものと予測され、図９（Ａ）に示すような量子化結果において、係数置換部３ｂにより、図９（Ｂ）に示すように、画像周囲ブロック内の有効係数の一部（図中、９個の有効係数）が無効係数に置き換えられる。
【００９０】
このように、本発明の第２実施形態によれば、符号化処理中に計数される符号量に基づいて最終的な符号量が目標符号量Ｆを超えるものと予測される場合に、量子化ＤＣＴ係数に含まれる有効係数の一部を無効係数に置き換えることによって、例えばユーザの注目度の低い画像周辺部の画質は若干低下させるが特に注目される画像中心の画質は向上させながら、最終的な符号量を強制的に目標符号量Ｆに抑制させることができ、極めて高精度の符号量制御を高速に行なうことができる。
【００９１】
つまり、第２実施形態では、第１実施形態において前述したステップ（２０）〜（３３）を１回だけ実行して量子化閾値ｑ(i)を決定すると、直ちに量子化ＤＣＴ係数に対する量子化処理および符号化処理を実行する。そして、最終的な符号量が目標符号量Ｆを超えそうになった場合に、符号量計数部８４および係数置換部３ｂの機能を用いて最終的な符号量を強制的に目標符号量Ｆに抑制する。従って、第２実施形態によれば、従来のごとくステップ（３）〜（１１）の処理を繰り返し実行して量子化閾値ｑ(i)を決定する必要がなくなり、極めて高精度の符号量制御を極めて短時間で行なうことができる。
【００９２】
ここで、第２実施形態について、より具体的に説明する。符号量制御を行なう場合、実際の符号量を制御目標値である指定符号量Ｆに完全に合致させるためには、ある程度、全体の符号データの発生量を制限するように制御を行なう必要がある。その結果、符号化対象の画像全体の画質が低下する。そこで、全体の符号量の発生の制限を緩やかにし（つまり画質を向上し）、指定符号量Ｆを超えそうな場合に、ユーザの注目度が低い画像周辺部の画質を、有効係数を無効係数にすることで、若干画質を低下させ、特に注目される画像中心の画質を向上させた上で、実際の符号量を指定符号量Ｆに抑えることができる。
【００９３】
〔３〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００９４】
〔４〕付記
（付記１）  原画像を、それぞれ複数の画素からなる複数のブロックに分割し、ブロック毎に、該ブロック内の複数の画素の階調値を直交変換し、直交変換により得られた変換係数を量子化して量子化係数を求め、該量子化係数を符号化する画像データ符号化方法であって、
それぞれ複数の該ブロックを含む複数のサブエリアを指定し、
指定された各サブエリアに含まれる該ブロックに対する量子化を行ない、
該量子化によって得られた量子化係数に含まれる有効係数の数を、該サブエリア毎に計数し、
該サブエリア毎に計数された該有効係数の数の分布（即ち各サブエリア内における有効係数の出現頻度）に基づいて、該量子化係数の符号量を制御することを特徴とする、画像データ符号化方法。
【００９５】
（付記２）  該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の領域の全てを指定することを特徴とする、付記１記載の画像データ符号化方法。
（付記３）  該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の第１領域のそれぞれに属し且つ該第１領域よりも小さい第２領域を指定することを特徴とする、付記１記載の画像データ符号化方法。
【００９６】
（付記４）  該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の領域の中の、２以上の領域を指定することを特徴とする、付記１記載の画像データ符号化方法。
（付記５）  該複数のサブエリアとして、該原画像の種別に応じた２以上の領域を指定することを特徴とする、付記１記載の画像データ符号化方法。
【００９７】
（付記６）  該量子化係数の符号量を計数しながら該量子化係数の符号化を行ない、
該符号化処理中に計数されている符号量に基づいて、最終的な符号量が目標符号量を超えるものと予測される場合、該量子化係数に含まれる有効係数の一部を無効係数に置き換えることを特徴とする、付記１〜付記５のいずれか一つに記載の画像データ符号化方法。
（付記７）  該サブエリア毎に計数された該有効係数の数の分散を算出し、算出された該分散に基づいて、該量子化係数の符号量を制御することを特徴とする、付記１〜付記６のいずれか一つに記載の画像データ符号化方法。
【００９８】
（付記８）  原画像を、それぞれ複数の画素からなる複数のブロックに分割し、ブロック毎に、該ブロック内の複数の画素の階調値を直交変換し、直交変換により得られた変換係数を量子化して量子化係数を求め、該量子化係数を符号化する画像データ符号化装置であって、
それぞれ複数の該ブロックを含む複数のサブエリアを指定するサブエリア指定手段と、
該サブエリア指定手段により指定された各サブエリアに含まれる該ブロックに対する量子化を行なう量子化手段と、
該量子化部によって得られた量子化係数に含まれる有効係数の数を、該サブエリア毎に計数する有効係数計数手段と、
該有効係数計数手段により該サブエリア毎に計数された該有効係数の数の分布（即ち各サブエリア内における有効係数の出現頻度）に基づいて、該量子化係数の符号量を制御する符号量制御手段とをそなえたことを特徴とする、画像データ符号化装置。
【００９９】
（付記９）  該サブエリア指定手段が、該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の領域の全てを指定することを特徴とする、付記８記載の画像データ符号化装置。
（付記１０）  該サブエリア指定手段が、該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の第１領域のそれぞれに属し且つ該第１領域よりも小さい第２領域を指定することを特徴とする、付記８記載の画像データ符号化装置。
【０１００】
（付記１１）  該サブエリア指定手段が、該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の領域の中の、２以上の領域を指定することを特徴とする、付記８記載の画像データ符号化装置。
（付記１２）  該サブエリア指定手段が、該複数のサブエリアとして、該原画像の種別に応じた２以上の領域を指定することを特徴とする、付記８記載の画像データ符号化装置。
【０１０１】
（付記１３）  該量子化係数の符号化処理中に該量子化係数の符号量を計数する符号量計数手段と、
該符号量計数手段によって計数されている符号量に基づいて、最終的な符号量が目標符号量を超えるものと予測される場合、該量子化係数に含まれる有効係数の一部を無効係数に置き換える係数置換手段とをさらにそなえたことを特徴とする、付記８〜付記１２のいずれか一つに記載の画像データ符号化装置。
【０１０２】
（付記１４）  該サブエリア毎に計数された該有効係数の数の分散を算出する分散算出手段をさらにそなえ、
該符号量制御手段が、該分散算出手段によって算出された該分散に基づいて、該量子化係数の符号量を制御することを特徴とする、付記８〜付記１３のいずれか一つに記載の画像データ符号化装置。
【０１０３】
（付記１５）  原画像を、それぞれ複数の画素からなる複数のブロックに分割し、ブロック毎に、該ブロック内の複数の画素の階調値を直交変換し、直交変換により得られた変換係数を量子化して量子化係数を求め、該量子化係数を符号化する画像データ符号化装置として、コンピュータを機能させる画像データ符号化プログラムであって、
それぞれ複数の該ブロックを含む複数のサブエリアを指定するサブエリア指定手段、
該サブエリア指定手段により指定された各サブエリアに含まれる該ブロックに対する量子化を行なう量子化手段、
該量子化部によって得られた量子化係数に含まれる有効係数の数を、該サブエリア毎に計数する有効係数計数手段、および、
該有効係数計数手段により該サブエリア毎に計数された該有効係数の数の分布（即ち各サブエリア内における有効係数の出現頻度）に基づいて、該量子化係数の符号量を制御する符号量制御手段として、該コンピュータを機能させることを特徴とする、画像データ符号化プログラム。
【０１０４】
（付記１６）  該コンピュータを該サブエリア指定手段として機能させる際に、該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の領域の全てを指定することを特徴とする、付記１５記載の画像データ符号化プログラム。
【０１０５】
（付記１７）  該コンピュータを該サブエリア指定手段として機能させる際に、該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の第１領域のそれぞれに属し且つ該第１領域よりも小さい第２領域を指定することを特徴とする、付記１５記載の画像データ符号化プログラム。
【０１０６】
（付記１８）  該コンピュータを該サブエリア指定手段として機能させる際に、該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の領域の中の、２以上の領域を指定することを特徴とする、付記１５記載の画像データ符号化プログラム。
（付記１９）  該コンピュータを該サブエリア指定手段として機能させる際に、該複数のサブエリアとして、該原画像の種別に応じた２以上の領域を指定することを特徴とする、付記１５記載の画像データ符号化プログラム。
【０１０７】
（付記２０）  該量子化係数の符号化処理中に該量子化係数の符号量を計数する符号量計数手段、および、
該符号量計数手段によって計数されている符号量に基づいて、最終的な符号量が目標符号量を超えるものと予測される場合、該量子化係数に含まれる有効係数の一部を無効係数に置き換える係数置換手段として、該コンピュータをさらに機能させることを特徴とする、付記１５〜付記１９のいずれか一つに記載の画像データ符号化プログラム。
【０１０８】
（付記２１）  該サブエリア毎に計数された該有効係数の数の分散を算出する分散算出手段として、該コンピュータを機能させるとともに、
該コンピュータを該符号量制御手段として機能させる際に、該分散算出手段によって算出された該分散に基づいて、該量子化係数の符号量を制御することを特徴とする、付記１５〜付記２０のいずれか一つに記載の画像データ符号化プログラム。
【０１０９】
（付記２２）  原画像を、それぞれ複数の画素からなる複数のブロックに分割し、ブロック毎に、該ブロック内の複数の画素の階調値を直交変換し、直交変換により得られた変換係数を量子化して量子化係数を求め、該量子化係数を符号化する画像データ符号化装置として、コンピュータを機能させる画像データ符号化プログラムを記録したコンピュータ読取可能な記録媒体であって、
該画像データ符号化プログラムが、
それぞれ複数の該ブロックを含む複数のサブエリアを指定するサブエリア指定手段、
該サブエリア指定手段により指定された各サブエリアに含まれる該ブロックに対する量子化を行なう量子化手段、
該量子化部によって得られた量子化係数に含まれる有効係数の数を、該サブエリア毎に計数する有効係数計数手段、および、
該有効係数計数手段により該サブエリア毎に計数された該有効係数の数の分布（即ち各サブエリア内における有効係数の出現頻度）に基づいて、該量子化係数の符号量を制御する符号量制御手段として、該コンピュータを機能させることを特徴とする、画像データ符号化プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１０】
（付記２３）  該画像データ符号化プログラムが該コンピュータを該サブエリア指定手段として機能させる際に、該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の領域の全てを指定することを特徴とする、付記２２記載の画像データ符号化プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１１】
（付記２４）  該画像データ符号化プログラムが該コンピュータを該サブエリア指定手段として機能させる際に、該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の第１領域のそれぞれに属し且つ該第１領域よりも小さい第２領域を指定することを特徴とする、付記２２記載の画像データ符号化プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１２】
（付記２５）  該画像データ符号化プログラムが該コンピュータを該サブエリア指定手段として機能させる際に、該複数のサブエリアとして、該原画像を均等に分割して得られるＸ×Ｙ個（Ｘ，Ｙはいずれも自然数）の領域の中の、２以上の領域を指定することを特徴とする、付記２２記載の画像データ符号化プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１３】
（付記２６）  該画像データ符号化プログラムが該コンピュータを該サブエリア指定手段として機能させる際に、該複数のサブエリアとして、該原画像の種別に応じた２以上の領域を指定することを特徴とする、付記２２記載の画像データ符号化プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１４】
（付記２７）  該画像データ符号化プログラムが、
該量子化係数の符号化処理中に該量子化係数の符号量を計数する符号量計数手段、および、
該符号量計数手段によって計数されている符号量に基づいて、最終的な符号量が目標符号量を超えるものと予測される場合、該量子化係数に含まれる有効係数の一部を無効係数に置き換える係数置換手段として、該コンピュータをさらに機能させることを特徴とする、付記２２〜付記２６のいずれか一つに記載の画像データ符号化プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１５】
（付記２８）  該画像データ符号化プログラムが、該サブエリア毎に計数された該有効係数の数の分散を算出する分散算出手段として、該コンピュータを機能させるとともに、
該画像データ符号化プログラムが該コンピュータを該符号量制御手段として機能させる際に、該分散算出手段によって算出された該分散に基づいて、該量子化係数の符号量を制御することを特徴とする、付記２２〜付記２７のいずれか一つに記載の画像データ符号化プログラムを記録したコンピュータ読取可能な記録媒体。
【０１１６】
【発明の効果】
以上詳述したように、本発明によれば、以下のような効果ないし利点を得ることができる。
（１）各サブエリア内における有効係数の分布（出現頻度，分散）に基づいて量子化係数の符号量が制御されるので、符号化対象の原画像における特徴を符号化処理に反映させることができ、画像の特徴に応じた高精度の符号量制御を実現することができる（請求項１〜４）。
【０１１７】
（２）サブエリアとして、原画像を均等に分割して得られるＸ×Ｙ個の第１領域のそれぞれに属し且つこの第１領域よりも小さい第２領域を指定することにより、処理対象のデータ量を大幅に削減することができ、原画像の特徴を捉えながら処理時間を大幅に短縮できる（請求項１）。
【０１１８】
（３）サブエリアとして、Ｘ×Ｙ個の領域の中の２以上の領域を指定することにより、処理対象のデータ量を大幅に削減することができ、原画像の特徴を捉えながら処理時間を大幅に短縮できるほか、処理対象のサブエリアの数も減るため、有効係数の計数結果を保持するための記憶領域を削減でき省メモリ化に寄与する（請求項２）。
【０１１９】
（４）サブエリアとして、原画像の種別（風景画像，人物画像等の種別）に応じた２以上の領域を指定することにより、処理対象のデータ量を大幅に削減することができ、画像種別に応じた特徴を確実に捉えながら処理時間を大幅に短縮できるほか、処理対象のサブエリアの数も減るため、有効係数の計数結果を保持するための記憶領域を削減でき省メモリ化に寄与する（請求項３）。
【０１２０】
（５）符号化処理中に計数される符号量に基づいて、最終的な符号量が目標符号量を超えるものと予測される場合、量子化係数に含まれる有効係数の一部を無効係数に置き換えることにより、例えばユーザの注目度の低い画像周辺部の画質は若干低下させるが特に注目される画像中心の画質は向上させながら、最終的な符号量を強制的に目標符号量に抑制させることができ、極めて高精度の符号量制御を高速に行なうことができる（請求項４）。
【０１２１】
（６）サブエリア毎に計数された有効係数の数の分散を算出し、その分散に基づいて量子化係数の符号量を制御することにより、原画像における有効係数のバラツキ、つまりは原画像の特徴が捉えられ、その特徴に応じた高精度の符号量制御を実現することができる（請求項１）。
【図面の簡単な説明】
【図１】本発明の第１実施形態としての画像データ符号化方法を適用されたＪＰＥＧ符号化回路の構成を示すブロック図である。
【図２】サブエリア毎に累積される有効係数の数を説明するための図である。
【図３】ブロックとサブエリアとの関係を示すとともにそのサブエリア（有効係数の計数対象領域）を説明するための図である。
【図４】有効係数の計数対象領域の第１変形例を説明するための図である。
【図５】有効係数の計数対象領域の第２変形例を説明するための図である。
【図６】（Ａ），（Ｂ）は有効係数の計数対象領域の第３変形例を説明するための図である。
【図７】（Ａ），（Ｂ）は有効係数の計数対象領域の第３変形例を説明するための図である。
【図８】本発明の第２実施形態としての画像データ符号化方法を適用されたＪＰＥＧ符号化回路の構成を示すブロック図である。
【図９】（Ａ），（Ｂ）は第２実施形態における特徴的な動作（有効係数を無効係数に置き換える動作）について説明するための図である。
【図１０】一般的なＪＰＥＧ符号化回路の構成を示すブロック図である。
【図１１】変換対象原画像における８×８画素からなるブロックの一例を示す図である。
【図１２】図１１に示すブロックを空間周波数分布のＤＣＴ係数に変換した結果を示す図である。
【図１３】８×８の閾値から構成された量子化マトリクスの一例を示す図である。
【図１４】図１３に示す量子化マトリクスを用いて図１２に示すＤＣＴ係数に対する線形量子化を行なった結果（量子化ＤＣＴ係数）を示す図である。
【図１５】量子化ＤＣＴ係数の走査順序（ジグザグスキャン）の一例を示す図である。
【図１６】ＪＰＥＧ符号化回路の他の構成を示すブロック図である。
【図１７】符号量と１ブロック当たりの有効係数の数の平均値との関係を示すグラフである。
【図１８】重み係数と有効係数の総数との関係を示すグラフである。
【符号の説明】
１  二次元ＤＣＴ変換部
２  ＤＣＴ係数保持部
３，３Ａ  線形量子化部（量子化手段）
３ａ  除算器
３ｂ  係数置換部（係数置換手段）
４  量子化ＤＣＴ係数保持部
５  符号表
６  可変長符号化部
７Ａ  有効係数累積部（有効係数係数手段）
８Ａ，８Ｂ  符号量制御部（符号量制御手段）
８１  符号量／有効係数変換部
８２  量子化閾値決定部
８２ａ  量子化閾値保持部
８２ｂ  スケーリング制御部
８２ｃ  乗算器
８３  総数・分散算出部（分散算出手段）
８４  符号量計数部（符号量係数手段）
９  サブエリア選択部（サブエリア指定手段）
【図１】
0004183432.tif 000002
【図２】
0004183432.tif 000003
【図３】
0004183432.tif 000004
【図４】
0004183432.tif 000005
【図５】
0004183432.tif 000006
【図６】
0004183432.tif 000007
【図７】
0004183432.tif 000008
【図８】
0004183432.tif 000009
【図９】
0004183432.tif 000010
【図１０】
0004183432.tif 000011
【図１１】
0004183432.tif 000012
【図１２】
0004183432.tif 000013
【図１３】
0004183432.tif 000014
【図１４】
0004183432.tif 000015
【図１５】
0004183432.tif 000016
【図１６】
0004183432.tif 000017
【図１７】
0004183432.tif 000018
【図１８】
0004183432.tif 000019