(57)【特許請求の範囲】
【請求項１】
１画面の画像データを蓄積する第１の蓄積手段と、
第１の蓄積手段に接続され、画像データを直交変換して変換係数を出力する直交変換手段と、
該直交変換手段に接続され、変換係数を正規化係数の値に応じて正規化する正規化手段と、
該正規化手段に接続され、正規化された変換係数を圧縮符号化し、圧縮データを出力する符号化手段と、
該符号化手段の出力に接続され、圧縮データの符号量を計数して該符号量の計数値を出力する計数手段と、
前記第１の蓄積手段、直交変換手段、正規化手段、符号化手段および計数手段を制御して、画像データの直交変換、正規化および圧縮符号化を行わせ、前記計数手段の計数した計数値に基づいて前記符号化手段の出力する圧縮データの符号量を第１および第２の目標符号値を基に制御する制御手段とを含み、
該装置は、１画面の画像データに対する圧縮符号化の実行回数を計数する実行計数手段と、
スケールファクタと符号量の関係を近似した直線の傾きの値を蓄積する第１の記憶手段と、
前記スケールファクタを蓄積する第２の記憶手段と、
前記計数手段から得られる値が示す符号量を一時蓄積する第３の記憶手段と、
第２の目標符号値を少なくとも、格納する第４の記憶手段と、
第２の目標符号値の少なくとも、許容範囲を格納する第５の記憶手段とを含み、
さらに、前記制御手段は、前記実行回数に応じて動作手順を制御する手順制御機能と、
第１の蓄積手段から読み出す１画面の画像データに対する間引き読出しを制御する間引き機能と、
該間引き読出しした画像データを前記直交変換手段に与えて、直交変換して変換係数を生成させる制御機能と、
前記正規化手段に正規化係数の初期値を与え、該正規化係数の初期値によって前記変換係数の正規化を制御する初期化機能と、
前記符号化手段から出力される正規化し圧縮符号化された変換係数の符号量の計数を制御する機能と、
第３の記憶手段に格納する該符号量の計数値を第１の目標値と比較して、該比較結果から正規化係数対符号量の関係に従って第１の目標値に対応する正規化係数の値を算出する正規化機能と、
第１正規化機能により算出した正規化係数の値で前記変換係数を正規化し圧縮符号化された変換係数の符号量の計数値を第２の目標値と比較して、該計数値が前記許容範囲にあるか否かを判断する機能とを含み、
該計数値が第２の目標値を前記許容範囲内になるまで、前記実行回数に応じて前記正規化係数の値を算出し直して前記間引き読出しした画像データに対する前記正規化、圧縮符号化、符号量の計数および正規化係数の算出を繰り返すことを特徴とする画像データの符号量制御装置。
【請求項２】
請求項１に記載の装置において、
前記制御手段は、前記符号量の計数値を第１または第２の目標値と比較した結果、該計数値が第１または第２の目標値より大きいときは、前記正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きを有する第１の直線に従って第１の目標値に対応する正規化係数の第１の値を算出し、前記計数値が第１または第２の目標値より小さいときは、前記正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きより大きな第２の傾きを有する第２の直線に従って第１または第２の目標値に対応する正規化係数の第２の値を算出し、
前記制御手段は、該算出された第１または第２の値を前記正規化手段に与えることを特徴とする符号量制御装置。
【請求項３】
請求項２に記載の装置において、該装置は、正規化係数のデフォルト値を蓄積する第２の蓄積手段を含み、
前記制御手段は、第１または第２の直線に応じた前記スケールファクタの値を算出し、第２の蓄積手段から前記デフォルト値を読み出して、これを前記算出したスケールファクタの値を演算することによって、前記正規化係数の第１および第２の値を算出することを特徴とする符号量制御装置。
【請求項４】
請求項３に記載の装置において、前記制御手段は、前記算出されたスケールファクタの値を前記デフォルト値に演算する際、これに該スケールファクタの値に応じた定数を演算することによって前記正規化係数の第１および第２の値を算出することを特徴とする符号量制御装置。
【請求項５】
１画面の画像データを間引きして直交変換し、変換係数を生成する第１の直交変換工程と、
該変換係数を正規化係数の初期値によって正規化する第１の正規化工程と、
該正規化された変換係数を圧縮符号化する第１の圧縮符号化工程と、
該圧縮符号化された変換係数の符号量を計数する第１の計数工程と、
該符号量の計数値を第１の目標値と比較して、該比較結果から、正規化係数対符号量の関係に従って第１の目標値に対応する正規化係数の値を算出する第１の算出工程と、
前記１画面の間引き画像データを直交変換し、変換係数を生成する第２の直交変換工程と、
該変換係数を前記算出された正規化係数の値によって正規化する第２の正規化工程と、
該正規化された変換係数を圧縮符号化する第２の圧縮符号化工程と、
該圧縮符号化された変換係数の符号量を計数する第２の計数工程と、
前記計数された計数値を第２の目標値と比較して、該比較結果から、正規化係数対符号量の関係に従って第２の目標値に対応する正規化係数の値を算出する第２の算出工程とを含み、
第２の算出工程における前記計数値が第２の目標値を所定の許容範囲内で満足するまで、第２の直交変換工程から第２の算出工程までを繰り返すことを特徴とする画像データの符号量制御方法。
【請求項６】
請求項５に記載の方法において、
第１の算出工程は、前記符号量の計数値を第１の目標値と比較した結果、該計数値が第１の目標値より大きいときは、前記正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きを有する第１の直線に従って第１の目標値に対応する正規化係数の第１の値を算出し、前記計数値が第１の目標値より小さいときは、前記正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きより大きな第２の傾きを有する第２の直線に従って第１の目標値に対応する正規化係数の第２の値を算出し、
第２の正規化工程は、該算出された第１または第２の値によって前記変換係数を正規化することを特徴とする符号量制御方法。
【請求項７】
請求項６に記載の方法において、第２の算出工程は、前記符号量の計数値を第２の目標値と比較した結果、該計数値が第２の目標値より大きいときは、前記正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きを有する第１の直線に従って第２の目標値に対応する正規化係数の第１の値を算出し、前記計数値が第２の目標値より小さいときは、前記正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きより大きな第２の傾きを有する第２の直線に従って第２の目標値に対応する正規化係数の第２の値を算出することを特徴とする符号量制御方法。
【請求項８】
請求項６に記載の方法において、該方法は、
正規化係数のデフォルト値を用意する工程を含み、
第２の算出工程は、第１または第２の直線に応じたスケールファクタの値を算出し、前記デフォルト値に前記算出したスケールファクタの値を演算することによって、前記正規化係数の第１および第２の値を算出することを特徴とする符号量制御方法。
【請求項９】
請求項８に記載の方法において、第２の算出工程は、前記算出されたスケールファクタの値を前記デフォルト値に演算する際、これに該スケールファクタの値に応じた定数を演算する工程を含み、これによって前記正規化係数の第１および第２の値を算出することを特徴とする符号量制御方法。
【請求項１０】
請求項５に記載の方法において、第１の目標値は、間引き画像データに対して得られた総符号量をフル画面に換算した値であることを特徴とする符号量制御方法。
【請求項１１】
請求項６に記載の方法において、第１の値は実質的に-0.6に、また第２の値は実質的に-0.7に等しいことを特徴とする符号量制御方法。
【請求項１２】
請求項５に記載の方法において、前記間引きは、４画素に対して１画素の割合でサンプリングすることを特徴とする符号量制御方法。
【請求項１３】
請求項12に記載の方法において、前記間引きは、４画素に対して１画素の割合でサンプリングし、第１の目標値は、第２の目標値のほぼ1/3 に等しく設定することを特徴とする符号量制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データの符号量制御方式、たとえば、画像データを直交変換符号化によって圧縮して所望の目標符号量にする画像データの符号量制御方法、およびこれを実現する符号量制御装置に関するものである。
【０００２】
【従来の技術】
画像データの符号量制御方式には、１画面の画像データを複数のブロックに分割し、各ブロックごとに画像データを直交変換して変換係数を得、これを適切な正規化係数によって割り算して正規化し、割り算結果の端数を丸めることで量子化し、この量子化した値を符号化して圧縮データを得る方式がある。これは、たとえば、チェン他による"Scene Adaptive Coder" IEEE Trans. on Comm. 第COM-32巻、第３号、第 225頁〜第 232頁（1984年）に記載されている。この文献では、圧縮データを所望の目標符号量に制限するには、圧縮データを一時蓄積する出力バッファを監視して、バッファにおける圧縮データの符号量に応じて正規化係数を変更する。たとえば特開平2-104180号公報には、１画面の画像データのうちの代表ブロックについて符号量を計数し、その計数結果を基に圧縮データが所望の目標符号量に収まるような正規化係数を選択し、これを繰り返して所望の目標符号量に圧縮データを制御する方式が記載されている。この方式は、圧縮データの符号量が代表ブロックの選択の仕方に依存する。
【０００３】
【発明が解決しようとする課題】
特開平2-100487号公報には、１画面の画像データを直交変換し、その変換係数をある正規化係数で正規化し量子化して、結果の符号量が所望の目標値に収まらないときは、正規化係数を変えて再試行する、いわゆるフィードバック方式が開示されている。このような単純なフィードバック方式では、最初の試行の正規化係数、すなわち初期値をどのような値に選ぶかによって、目標符号量への収束、したがってフィードバック回数が左右される。
【０００４】
たとえば、図８に線10で示すように、一般に、変換係数を正規化する際、正規化係数テーブルに乗ずるスケールファクタαに対して圧縮データの符号量Ｅは、両対数メモリで近似的に直線状に変化する。このスケールファクタ対符号量の関係の直線10が、たとえば、ある絵柄の画像について図示のように傾き-0.5であったとする。スケールファクタαの値α1 として初期値α0 を与えてこの画像の変換係数を正規化すると、その符号量は、直線10上の値E1をとる。経験的に、一般の絵柄の画像では、スケールファクタ対符号量の関係は、傾きβが-0.6の直線状であることが多い。そこで、傾きβが-0.6の直線12に沿って目標符号量Ecを満足するスケールファクタαを算出すると、その値は図示のようにα2 となる。この値α2 を用いて、再び傾きβが-0.6の直線14に従って目標符号量Ecを満足するスケールファクタαを算出すると、その値は図示のようにα3 となる。こうして、傾きβが-0.6の直線14に従って目標符号量Ecを満足するスケールファクタαを更新しながら正規化を繰り返し、最終的には、目標符号量Ecを所定の許容範囲±ΔE で満足する直線10上のスケールファクタ値αn が得られる。この値αn で正規化係数テーブルを修正して、変換係数を量子化すると、目標符号量に収まるデータ量の圧縮データが得られる。
【０００５】
これからわかるように、この方式では、スケールファクタの算出と正規化を含むフィードバックを何回も繰り返して正規化係数を修正しなければならない。これは、低い圧縮率で圧縮する画像の場合、すなわち上述のスケールファクタ対符号量の関係の直線の勾配が急峻であるような絵柄の画像の場合、顕著である。たとえば、図９に示すように、ある絵柄の画像について図示のように傾き-0.7である場合、これを上述と同様に一般の絵柄の画像についての傾きβが-0.6である直線12に従って目標符号量Ecを満足するスケールファクタαを算出すると、非常に多くの回数、フィードバックを繰り返すことになる。このように従来のフィードバックによる符号量制御方式では、フィードバックの繰返しが多いので、最終的に所望の目標符号量を満足する圧縮データが得られるまでの時間が長いという欠点があった。
【０００６】
本発明はこのような従来技術の欠点を解消し、フィードバックによる符号量制御に要する時間が短い画像データの符号量制御方法、および符号量制御装置を提供することを目的とする。
【０００７】
本発明はまた、どのような目標符号量をも達成できる、とくに低圧縮率でも目標符号量を達成できる画像データの符号量制御方法、および符号量制御装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明による画像データの符号量制御方式は、画像データを直交変換し、正規化し、符号化して圧縮データを生成する際、まず、１画面の画像データを間引きして直交変換し、変換係数を生成し、この変換係数を正規化係数の初期値によって正規化し、圧縮符号化してその符号量を計数し、この計数値を第１の目標値と比較して、その比較の結果から、正規化係数対符号量の関係に従って第１の目標値に対応する正規化係数の値を算出する。次に、同じ１画面の画像データを直交変換し、その変換係数を、先に算出した正規化係数の値によって正規化し、圧縮符号化してその符号量を計数し、この計数値を第２の目標値と比較して、その比較の結果から、正規化係数対符号量の関係に従って第２の目標値に対応する正規化係数の値を算出し、この値を用いて再度、変換係数を正規化し、符号化する。圧縮データの計数値が第２の目標値を所定の範囲内で満足するまで、これを繰り返すことによって、圧縮画像データの符号量を制御する。
【０００９】
本発明による画像データの符号量制御装置は、１画面の画像データを蓄積する第１の蓄積手段と、第１の蓄積手段に接続され、画像データを直交変換して変換係数を出力する直交変換手段と、直交変換手段に接続され、変換係数を正規化係数の値に応じて正規化する正規化手段と、正規化手段に接続され、正規化された変換係数を圧縮符号化し、圧縮データを出力する符号化手段と、符号化手段の出力に接続され、圧縮データの符号量を計数してこの符号量の計数値を出力する計数手段と、第１の蓄積手段、直交変換手段、正規化手段、符号化手段および計数手段を制御して、画像データの直交変換、正規化および圧縮符号化を行なわせ、計数手段の計数した計数値に基づいて符号化手段の出力する圧縮データの符号量を制御する制御手段とを含み、制御手段は、第１の蓄積手段から１画面の画像データを間引き読出しして直交変換手段に与え、直交変換手段は、間引き読出しされた画像データを直交変換して変換係数を生成し、制御手段は、正規化手段に正規化係数の初期値を与え、正規化手段は、正規化係数の初期値によって変換係数を正規化し、計数手段は、符号化手段から出力される正規化し圧縮符号化された変換係数の符号量を計数し、制御手段は、符号量の計数値を第１の目標値と比較して、その比較の結果から、正規化係数対符号量の関係に従って第１の目標値に対応する正規化係数の値を算出し、制御手段は、算出された正規化係数の値を正規化手段に与え、制御手段は、第１の蓄積手段から１画面の画像データを読み出して直交変換手段に与え、第１の蓄積手段、直交変換手段、正規化手段、符号化手段および計数手段を制御して、第１の蓄積手段から１画面の画像データを読み出して画像データの直交変換、正規化および圧縮符号化を行なわせ、計数手段の計数した計数値を第２の目標値と比較して、この計数値が第２の目標値を所定の範囲内で満足するまで、正規化係数の値を算出し直して正規化、圧縮符号化、符号量の計数および正規化係数の算出を繰返し行なう。
【００１０】
本発明によればまた、制御手段は、符号量の計数値を第１または第２の目標値と比較した結果、この計数値が第１または第２の目標値より大きいときは、正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きを有する第１の直線に従って第１の目標値に対応する正規化係数の第１の値を算出し、同計数値が第１または第２の目標値より小さいときは、正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きより大きな第２の傾きを有する第２の直線に従って第１または第２の目標値に対応する正規化係数の第２の値を算出し、制御手段は、この算出された第１または第２の値を正規化手段に与えるように構成してもよい。
【００１１】
本発明によれば、画像データの符号量制御方法は、１画面の画像データを間引きして直交変換し、変換係数を生成する第１の直交変換工程と、この変換係数を正規化係数の初期値によって正規化する第１の正規化工程と、正規化された変換係数を圧縮符号化する第１の圧縮符号化工程と、圧縮符号化された変換係数の符号量を計数する第１の計数工程と、この符号量の計数値を第１の目標値と比較して、その比較の結果から、正規化係数対符号量の関係に従って第１の目標値に対応する正規化係数の値を算出する第１の算出工程と、同じ１画面の画像データを直交変換し、変換係数を生成する第２の直交変換工程と、この変換係数を前記算出された正規化係数の値によって正規化する第２の正規化工程と、正規化された変換係数を圧縮符号化する第２の圧縮符号化工程と、圧縮符号化された変換係数の符号量を計数する第２の計数工程と、この計数された計数値を第２の目標値と比較して、その比較の結果から、正規化係数対符号量の関係に従って第２の目標値に対応する正規化係数の値を算出する第２の算出工程とを含み、第２の算出工程における計数値が第２の目標値を所定の範囲内で満足するまで、第２の正規化工程から第２の算出工程までを繰返し行なう。
【００１２】
本発明によれば、第１の算出工程は、符号量の計数値を第１の目標値と比較した結果、この計数値が第１の目標値より大きいときは、正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きを有する第１の直線に従って第１の目標値に対応する正規化係数の第１の値を算出し、同計数値が第１の目標値より小さいときは、正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きより大きな第２の傾きを有する第２の直線に従って第１の目標値に対応する正規化係数の第２の値を算出し、第２の正規化工程は、算出された第１または第２の値によって変換係数を正規化するように構成してもよい。
【００１３】
本発明によればさらに、第２の算出工程は、符号量の計数値を第２の目標値と比較した結果、計数値が第２の目標値より大きいときは、正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きを有する第１の直線に従って第２の目標値に対応する正規化係数の第１の値を算出し、同計数値が第２の目標値より小さいときは、前記正規化係数対符号量の関係を両対数で近似した直線のうち第１の傾きより大きな第２の傾きを有する第２の直線に従って第２の目標値に対応する正規化係数の第２の値を算出するように構成してもよい。
【００１４】
【発明の実施の形態】
次に添付図面を参照して本発明による画像データの符号量制御装置の実施例を詳細に説明する。図１を参照すると、実施例の画像データの符号量制御装置は、入力30に取り込まれる１画面の画像データを複数のブロックに分割し、各ブロックごとに画像データを直交変換して変換係数を得て、これを適切な正規化係数によって正規化して量子化し、この量子化した値を符号化して圧縮データをその出力32から出力する画像データの圧縮符号化装置に適用されている。入力30に取り込まれる画像データは、たとえば固体撮像デバイスにより撮像されディジタルデータに変換された１画面の画像データである。この画像データは、本実施例では、カラー画像を表わすカラーデータであり、輝度データ(Y) および色差データ(Q) を含むものである。本装置は、このような画像データを一時蓄積するための画像データメモリ34を有している。画像データメモリ34は、少なくとも１画面分の画像データを蓄積する記憶領域を有し、後述の全体制御部36が制御線38に生成するアドレスに応じた記憶位置へ画像データを記憶し、またこれから画像データをその出力40に読み出す記憶装置である。出力40は直交変換部42の入力に接続されている。
【００１５】
直交変換部42は、全体制御部36の制御の下に１画面の画像領域を、同じ大きさの分割された複数のブロックを単位として画像データを直交変換し、その変換結果である変換係数データをブロック単位でその出力44に出力するデータ変換装置である。ブロックは、本実施例では、水平走査方向に８画素、垂直走査方向に８ラインの大きさである。直交変換としては、たとえば離散的コサイン変換(DCT) が有利に適用される。直交変換部42の出力44は、図示のように変換係数メモリ46および正規化部48に接続されている。
【００１６】
変換係数メモリ46は、直交変換部42からのブロック単位の変換係数データを一時蓄積し、またこれをブロック単位に読み出してポート50に出力する一時記憶装置である。この読出しは、全体制御部36によって制御され、各ブロック単位で低周波成分から高周波成分に向かって順次、行なわれる。読み出された変換係数データは正規化部48へ入力される。正規化部48は、ブロック単位の変換係数データを、後述のように全体制御部36から接続線58を通して与えられる適切な正規化係数Ｑによって割り算して正規化し、割り算結果の端数を、たとえば四捨五入するなどして丸めることで量子化する機能部である。一般には、正規化とともに、またはその前に、閾値処理を行なう。閾値処理は、変換係数のうち最も低次の成分（直流成分）以外の成分、すなわち交流成分について、ある閾値以下の成分を切り捨てる処理である。こうして量子化された変換係数値は、正規化部48の出力52から符号化部54に送られる。
【００１７】
符号化部54は、たとえばハフマン符号化などの冗長度圧縮符号化方式によって入力52の変換係数値を圧縮符号化して、これを圧縮データとして装置出力32に出力する機能部である。出力32には、記憶装置や通信回線などの利用装置（図示せず）が接続され、圧縮データは、記憶装置に蓄積されたり、通信回線を通して伝送されたりする。
【００１８】
符号化部54の出力32には、図示のように符号量カウンタ56が接続されている。符号量カウンタ56は、出力32の圧縮データ量をモニタし、その符号量を１画面単位で計数する計数装置である。カウンタ56は出力60を有し、その計数値を１画面の総符号量データＥとして全体制御部36に入力される。
【００１９】
全体制御部36は、本装置全体の動作を統括し制御する制御装置であり、処理システムを含む。このため全体制御部36は、接続線38で象徴的に示すように、本装置の各構成要素34、42、46、48、54および56に制御線およびデータ線が接続され、これによって各構成要素の状態をモニタし、またこれらに指示やデータを与えるように構成されている。全体制御部36は、本装置の各部を制御して、入力30から入力される１画面の画像データの複数のブロックのそれぞれについて直交変換を行ない、変換係数を正規化し量子化し、この量子化した値を符号化して圧縮データを出力32から出力する直交変換、圧縮符号化処理を行なわせる。とくに本発明に関して全体制御部36は、符号量カウンタ56の計数結果Ｅに基づいて、圧縮データ32の符号量が目標符号量Ecを満足する正規化係数Ｑの値を選択する符号量制御機能を備えている。
【００２０】
この直交変換、圧縮符号化処理の制御機能および符号量制御機能は、本実施例では全体制御部36の処理プログラムシーケンスによって実現される。このため、全体制御部36を構成する処理システムには、正規化係数Ｑのデフォルト値Qdが半固定データとして蓄積されたＱテーブル62を備えている。正規化係数のデフォルト値Qdは、１画面に含まれる各ブロックについてそれぞれ用意され、１画面領域のテーブルを構成している。デフォルト値Qdはまた、実際には、輝度データ用のＱテーブルデータQYd 、および色差データ用のＱテーブルデータQYd を含む。なお、蓄積プログラム制御に必要な記憶領域や演算処理要素は、本発明の理解に直接関係ないので、図示も説明も割愛する。
【００２１】
全体制御部36にはまた、符号量制御プログラムシーケンスを実現するための様々なレジスタやカウンタが含まれている。これらのレジスタやカウンタには、たとえば図示のように、ループカウンタ64、傾きデータレジスタ66、スケールファクタレジスタ68、中央値レジスタ70、符号量レジスタ72および目標符号量レジスタ74がある。
【００２２】
ループカウンタ64は、１画面の画像データについて圧縮符号化の実行回数ｎを計数するカウンタである。
【００２３】
傾きデータレジスタ66は、前述したスケールファクタα対符号量Ｅの関係を近似した直線の傾きβの値を蓄積するレジスタである。本実施例では、図10に示すように、スケールファクタα対符号量Ｅの関係をプロットする領域を目標符号量Ecを超える領域 200と下回る領域 202に２分して、一方の領域 200では所定の値β1 とし、他方の領域 202ではこの値β1 を上回る他の所定の値β2 としている。前述のように、一般の絵柄の画像では、スケールファクタα対符号量Ｅの関係を表わす直線は、傾きβが-0.6であることが多いことが経験的にわかっている。そこで本実施例では、β1 を-0.6に、またβ2 を-0.7に半固定値として設定している。しかし本発明は、このような具体的数値のみに限定されるものではない。
【００２４】
スケールファクタレジスタ68は、Ｑテーブル62から得られるデフォルト値Qdに乗じて正規化係数の値Ｑを作成するためのスケールファクタの値αを蓄積するレジスタである。好ましい実施例では、スケールファクタレジスタ68は、前回の圧縮符号化について求めたスケールファクタの値αn-1 と今回のスケールファクタの値αn の両方を蓄積する。また、スケールファクタαの初期値α0 として全体制御部36には、半固定値が設定される。この初期値α0 は、この値を用いて間引き画像データの変換係数を正規化し、これを圧縮符号化したときの圧縮データ32の符号量Ｅが後述の目標値Emを超えるような値に設定するのが有利である。たとえば、入力画像データ30の表わす１画面の画像が 130万画素からなり、装置出力32に接続されるメモリカードなどの記憶媒体（図示せず）が１クラスタ当り8192ビットの記憶容量を有する適用例の場合、初期値α0 としては、圧縮率１ビット／画素(bpp) では 100が、圧縮率2 bpp では70が、また圧縮率4bppの場合は40が有利に設定される。もちろん本発明は、このような具体的数値に限定されない。
【００２５】
符号量レジスタ72は、符号量カウンタ56から取り込んだ実際の符号量の値Ｅを一時蓄積するレジスタである。好ましい実施例では、符号量レジスタ72は、前回の圧縮符号化でカウンタ56から得られた符号量の値En-1と今回の符号量の値Enの両方を蓄積する。
【００２６】
目標符号量レジスタ74は、装置出力32から最終的に出力すべき圧縮データの符号量の目標値Et、およびその下限値Emを設定するレジスタである。目標値Etは、目標とする符号量の上限値でもある。下限値Emは、本実施例では、圧縮率1 bpp および2 bpp の場合、目標値Etを5%、また4 bpp の場合は目標値Etを10% 下回る値が有利に適用される。たとえば、上述の適用例において、圧縮率1 bpp の場合は、クラスタ数で表わすと目標値Etが20クラスタに、下限値Emが19クラスタに、圧縮率2 bpp では、目標値Etが40クラスタに、下限値Emが38クラスタに、また圧縮率4 bpp では、目標値Etが80クラスタに、下限値Emが72クラスタに設定される。これらの値EtおよびEmは、半固定的または可変的に設定される。
【００２７】
中央値レジスタ70は、目標とする符号量の許容範囲の中央値EcおよびErを設定するレジスタである。本実施例では、中央値は２種類用意されている。一方の中央値Ecは、間引きしないフル画面の画像についての中央値である。たとえば上述の適用例において、中央値Ecは、圧縮率1 bpp の場合は19クラスタに、圧縮率2 bpp では39クラスタに、また圧縮率4 bpp では76クラスタに、それぞれ設定される。他方の中央値Erは、間引きした画像データについての中央値である。たとえば1/4 画素の間引きサンプリング画像の場合は、経験的にフル画面の中央値Ecの1/3 程度の値が有利に適用される。たとえば上述の適用例において、1/4 画素の間引きサンプリングを行なうと、中央値Erは、圧縮率1 bpp では 5クラスタに、圧縮率2 bpp では11クラスタに、また圧縮率4 bpp では22クラスタに、それぞれ設定される。これらの値EtおよびEmは、半固定的または可変的に設定される。本発明がこれらの数値に限定されないことは、言うまでもない。
【００２８】
動作状態において、図２を参照すると、全体制御部36は、入力30に到来する画像データを画像データメモリ34に取り込むとともに、まず系を初期化する（ステップ 100）。この初期化 100では、たとえばループカウンタ64を初期値n=1 に、また傾きデータレジスタ66、スケールファクタレジスタ68、および符号量レジスタ72を初期値（たとえば０）にクリアする。以下の説明において、信号またはデータは、その現れる接続線または構成要素の参照符号で指定する。画像データメモリ34に蓄積された画像データについて、初めて圧縮符号化を行なうとき、つまりループカウンタ64の計数値ｎが１のとき（ステップ 102）は、全体制御部36は、メモリ34の記憶位置をとびとびに指定する記憶位置アドレスを生成して、１画面の画像データをブロックに分割し間引きサンプリング 104を行なう。本実施例では、たとえば1/4 画素の間引きを行なう。つまり、画像データメモリ34に蓄積されている１画面を構成する画像データを、１画素読み出しては１画素スキップし、次にまた１画素読み出す。こうして１列分の画素データを読み出したら、次の１列をスキップして、さらのその次の列について、同じように画素をスキップしながら読み出し、こうして、1/4 画素間引きサンプリングを行なう。こうしてメモリ34から間引き読出しされた画像データは、その接続線40を通して直交変換部42に送られる。もちろん、本発明は、この間引きサンプリングレート1/4 に限定されるものではない。
【００２９】
その際、全体制御部36は、正規化係数Ｑを決定するＱテーブル決定処理 106を行なう。図４を参照すると、Ｑテーブル決定処理 106は、２つのサブルーチン 120および 150を含む。つまり、まず量子化スケールファクタαを決定し（ステップ 120）、次にＱテーブルの計算を行なう（ステップ 150）。図５を参照すると、量子化スケールファクタαの決定サブルーチン 120では、間引き画像データの場合、ループカウンタ64の計数値ｎが１であるから（ステップ 122）、全体制御部36は、現在のスケールファクタの値α1 として初期値α0 を選択し（ステップ 124）、これをスケールファクタレジスタ68にセットする（ステップ 126）。そこで、図４に戻って、全体制御部36は、Ｑテーブルの計算ステップ 150にはいる。
【００３０】
図７を参照して、全体制御部36は、Ｑテーブル62を参照して、正規化係数のデフォルト値Qdを読み出し、これにスケールファクタレジスタ68に蓄積されているスケールファクタの値αを乗じて、さらにこれを定数Ａで割り算して、実際に用いる正規化係数Ｑを得る演算を行なう。この場合のスケールファクタの値は、初期値α0 である。より具体的には、ステップ 151において、輝度データ用の正規化係数のデフォルト値QYd にこの場合のスケールファクタの値α0 を乗じ、さらにこれを定数Ａで割り、これを輝度データ用の正規化係数QYとする。次に、ステップ 152において、同様にして、色差データ用の正規化係数のデフォルト値QCd にスケールファクタの値α0 を乗じ、さらにこれを所定の値Ａで割り、これを色差データ用の正規化係数QCとする。なお、ステップ 151および 152の順序は、逆でもよい。こうして制御は、図２に戻ってステップ 107へ進む。
【００３１】
ステップ 151および 152において定数Ａで割るのは、スケールファクタαの的中する精度を向上させるためである。つまり、前述したように、スケールファクタα対符号量Ｅの関係は、両対数メモリで直線近似される。そこで、スケールファクタの値αが小さいほど、その変化に対する符号量Ｅの変動範囲が大きくなる。つまり低い圧縮率の圧縮であるほど、目標符号量付近の正規化係数の該当割合が少なくなる。そこで本実施例では、目標符号量Etに応じて定数Ａの値を変え、小数点以下の精度を高くするようにして、精度を向上させるのが有利である。上述の適用例では、圧縮率1 bpp では 256が、圧縮率2 bpp では 512が、また圧縮率4bppの場合は1024が有利に設定される。もちろん本発明は、これらの数値に限定されない。このように本実施例では、圧縮率が低い場合、目標符号量付近についての正規化係数の幅が狭いので、その精度を高くとることによって、系の収束をしやすくしている。
【００３２】
ステップ 107において、直交変換部42では、全体制御部36の制御の下に、各ブロックごとに間引き画像データ40を直交変換し、その結果である変換係数データ44はブロック単位で変換係数メモリ46に蓄積される。全体制御部36は、前述のようにして求めた正規化係数Ｑ（QYおよびQC）を接続線58を通して正規化部48に設定する。そこで全体制御部36は、変換係数メモリ46からブロック単位で交流成分の変換係数データを低周波成分から高周波成分に向かって順次、読み出して、正規化部48へ取り込む。正規化部48は、ステップ 108に示すように、ブロック単位の変換係数データを、それに設定された正規化係数Ｑで割り、割り算結果の端数を丸め、閾値処理を行なうなどして、正規化および量子化をする。こうして量子化された変換係数値52は、符号化部54に送られる。
【００３３】
ステップ 109において、符号化部54は、入力52の変換係数値を符号化して、これを圧縮データ32として出力する。この出力32は、まだ利用装置（図示せず）出は利用されない。その際、符号量カウンタ56は、出力32の圧縮データ流をモニタし、その符号量を計数する。カウンタ56の計数値は、１画面の総符号量データＥとして全体制御部36に入力される。
【００３４】
全体制御部36は、この総符号量の値Ｅを符号量レジスタ72に取り込む。その際、全体制御部36は、この間引き画像データについて得られた総符号量の値Ｅをフル画面に対応する符号量の値E1に換算する。この換算値E1を目標符号量レジスタ74に保持されている目標値Etと比較する（ステップ 110）。比較の結果、総符号量の換算値E1が目標値Etを超えない場合は、飛越し記号Ａから図３に進み、ループカウンタ64の判定ステップ 113を経て、判定ステップ 114に進む。つまり、ループカウンタ64の計数値ｎは、この状態では１であるので、判定ステップ 114において、総符号量換算値EnすなわちE1と下限値Emとを比較する。総符号量換算値E1が下限値Emを超えていれば、このとき設定されているスケールファクタの値α0 が適切であったことを意味する。そこで、この状態では、ループカウンタ64の計数値ｎが１であるので（ステップ 115）、ループカウンタ64をインクリメントし（ステップ 116）、飛越し記号Ｃを経てステップ 102に戻る。つまり、このときの値α0 を以降の符号化（本番）でも使用することになる。これについては、後に詳述する。
【００３５】
なお、この実施例では、ステップ 110および 114において、間引き画像データについて得られた総符号量の値Ｅをフル画面のデータに換算した値E1を使用してこれをフル画面データ用の目標値EtおよびErと比較した。しかし、このようにしないで、間引き画像データについては、フル画面データ用の目標値EtおよびErを使用せず、間引き画像データ用の目標値を別に用意して、これを基準にして間引き画像データの符号量Ｅを比較する用に構成してもよい。間引きサンプリング率1/4 の適用例では、この間引き画像データ用の目標値は、それぞれフル画面データ用の目標値EtおよびErの1/3 程度でよい。
【００３６】
ところで、ステップ 110の比較において、間引き画像データの符号量の換算値E1が目標値Etより大きいときは、制御はステップ 111に進む。また、ステップ 114の比較において、間引き画像データの符号量の換算値E1が下限値Emより小さいときも、制御はステップ 111に進む。ステップ 111では、ループカウンタ64の計数値ｎをインクリメントして、再びＱテーブル決定ルーチン 106へ戻る。
【００３７】
ループカウンタ64の計数値ｎが２の状態でステップ 111からＱテーブル決定ルーチン 106へ戻ると、全体制御部36は、Ｑテーブル決定ルーチン 106を再び実行することになる。したがって、制御は、サブルーチン 120においてステップ 122からステップ 127を通ってステップ 128に進む。ステップ 128では、傾きレジスタ66に値β3 を設定して、サブルーチン 160に移行する。この値β3 は、本実施例では-0.5である。これは、経験的に原画像よりも間引き画像の方が前述のスケールファクタα対符号量Ｅの両対数グラフの直線の傾きが緩やかであることが多いからである。
【００３８】
サブルーチン 160では、図６に示すように、このときのスケールファクタの値αn を算出するシーケンスである。現在の状態では、ループカウンタ64の計数値ｎは２に更新されているので、ステップ 162からステップ 163に進み、図示の式に従って次に使用されるスケールファクタの値α2 を求める。現在、スケールファクタレジスタ68にセットされている値α1 は、前述のように初期値α0 である。また傾きレジスタ66には、この状態では、前述のように領域 200についての値β1 がセットされている。そこで、ステップ 163では、これらの値α1 およびβ1 と、符号量レジスタ72の保持値E1および中央値レジスタ70に保持されている間引き画像データ用の中央値Erとを用いて、以降に使用するスケールファクタの値α2 を求める。
【００３９】
そこで、制御は図５のステップ 126に戻り、全体制御部36は、こうして求めたスケールファクタの値α2 をスケールファクタレジスタ68にセットする（ステップ 126）。そこで、図４に戻って、全体制御部36は、前述と同様にして、スケールファクタレジスタ68のセット値α2 についてＱテーブルの計算ステップ 150を実行する。全体制御部36は、こうして新たに求まった正規化係数Q2を正規化部48に設定する。
【００４０】
これまでのところを要約すると、たとえば、入力画像データ30の表わす画像の絵柄が、図10に示すように、傾き-0.7のスケールファクタα対符号量Ｅの両対数の近似直線 204に載るような性質であったとする。このスケールファクタ対符号量の関係の直線 204について、スケールファクタの値α1 として初期値α0 を与えて、この画像の間引きデータを直交変換して変換係数を正規化し、その符号量は、直線 204上の換算値E1をとったことになる。この値E1は、目標符号量Etを超えているので、傾きβが値β1=-0.6である直線 206に従って次回のスケールファクタα2 を算出し、それに応じた正規化係数Q2を正規化部48に設定したところである。
【００４１】
図２に戻って、全体制御部36は、前述と同様にして直交変換 107、正規化および量子化 108、ならびに符号化 109を実行する。しかし、この状態では、ループカウンタ64の計数値ｎが２であるので、全体制御部36は、間引きサンプリングではなく、フル画面の画像データを画像データメモリ34から読み出す。全体制御部36は、メモリ34の記憶位置を順次指定する記憶位置アドレスを生成して、１画面の画像データをブロックに分割して読み出し、読み出された画像データは、直交変換部42に送られる。直交変換部42では、前述と同様にして各ブロックごとに画像データ40を直交変換し、変換係数データ44をブロック単位で変換係数メモリ46に蓄積する。全体制御部36は、変換係数メモリ46からブロック単位で交流成分の変換係数データを低周波成分から高周波成分に向かって順次、読み出す。いわゆる、ジグザグスキャンで正規化部48へ読み込む。正規化部48は、それに設定された正規化係数Q2でブロック単位の変換係数データを正規化および量子化をする。こうして量子化された変換係数値52は、符号化部54で符号化され、その出力32に出力される。
【００４２】
ここでまた、符号量カウンタ56は、圧縮データ32の総符号量Ｅを計数する（ステップ 110）。全体制御部36は、この総符号量の値Ｅを符号量レジスタ72に取り込む。その際、全体制御部36は、このフル画面の画像データについて得られた総符号量の値E2を目標符号量レジスタ74に保持されている目標値Etと比較する。比較の結果、総符号量の値E2が目標値Etを超えない場合は、前述と同様に判定ステップ 113に進む。この状態では、ループカウンタ64の計数値ｎは２であるので、判定ステップ 114に進む。判定ステップ 114において、総符号量の値E2と下限値Emとを比較する。総符号量の値Enが下限値Emを超えていれば、つまり、目標符号量Etを下回ること5%以内であれば、このとき設定されているスケールファクタの値α2 が適切である。この状態では、ループカウンタ64の計数値ｎが２であるので（ステップ 115）、処理を終了する。つまり、このとき、装置出力32から出力された圧縮データは、所望の符号量の目標値Etと下限値Emの間の符号量である。
【００４３】
ところで、ステップ 110および 114の比較において、これらの比較条件を満たしていないときは、つまり、画像データの符号量の値E2が目標値Etより大きいか、または下限値Emより小さいときは、制御はステップ 111に進み、ループカウンタ64の計数値ｎを３にインクリメントして、再びＱテーブル決定ルーチン 106へ戻る。つまり、再度、スケールファクタαn 、したがって正規化係数Qnの計算をやり直して、新たな値で変換係数メモリ46に蓄積の変換係数について量子化、および符号化を行なう。
【００４４】
この場合、ループカウンタ64の計数値ｎは３になっているので、スケールファクタの決定サブルーチン 120（図５）では、ステップ 122および 127からステップ 130に移行する。ステップ 130では、前回の圧縮データの符号量En-1と中央値ECを比較する。前者が後者を超えていなければ、全体制御部36は、傾きレジスタ66に所定値β2 、つまり領域 202についての所定の値-0.7を設定する（ステップ 131）。前者が後者を超えていれば、傾きレジスタ66には他の所定値β1 、つまり領域 200についての所定の値-0.6が設定される（ステップ 129）。こうして制御は、サブルーチン 160に移行する。
【００４５】
サブルーチン 160では、このときの状態では、ループカウンタ64の計数値ｎは３に更新されているので、図６に示すように、ステップ 162からステップ 164に進む。ステップ 164では、図示の式に従って次に使用されるスケールファクタの値αn 、この場合はα3 を求める。そこで、現在、スケールファクタレジスタ68にセットされている値α2 と、傾きレジスタ66にセットされている値β1 またはβ2 と、符号量レジスタ72の保持値En-1、この場合はE2と、中央値レジスタ70に保持されているフル画面の画像データ用の中央値Ecとを用いて、以降に使用するスケールファクタの値αn 、すなわちα3 を求める。
【００４６】
こうして求められたスケールファクタの値αn を前回の値αn-1 と比較する（ステップ 165）。今回の値αn が前回の値αn-1 と相違すれば、この値αn は利用可能な値である。処理はステップ 126（図５）へ戻る。以降の処理は、前述と同様である。
【００４７】
ステップ 164において、今回求めたスケールファクタの値αn が前回の値αn-1 に等しいと、系がこのルーチンを繰り返す可能性があるので、これを避けるために、この値αn を若干、修正する。この修正は、符号量レジスタ72に保持されている前回の符号量の値En-1に対して目標値Etが大きいか否かによって（ステップ 166）相違する。前回の符号量の値En-1が目標値Etより大きいときは、今回得られたスケールファクタの値αn から所定の値ａを減算して（ステップ 167）、その結果である新たな値をαn としてスケールファクタレジスタ68に蓄積し、以降の処理にこれを使用する。前回の符号量の値En-1が目標値Etより大きくないときは、今回得られたスケールファクタの値αn に所定の値ａを加算して（ステップ 168）、その結果の値をαn としてスケールファクタレジスタ68に蓄積し、以降の処理に使用する。所定の値ａは、前述の適用例の場合、１程度の値でよいが、本発明はこの数値のみに限定されない。このようにして、系の発振もしくは発散を防ぐ。こうして処理は、図５のステップ 126に進み、図４のルーチン 150を経て、新たに算出された正規化係数Qnが正規化部48に設定される。このようなフィードバックを繰り返すことで、正規化係数Qnは、急速にある値に向かって収束する。
【００４８】
これまでのところは、図10を参照して前述した画像データ30について言えば、傾きβがβ1=-0.6の直線 206に従って目標符号量Etと下限値Emの間の範囲を満足するスケールファクタα2 を算出する。この値α2 を用いて、フル画面の画像データ40について実際に圧縮符号化を行ない、実際の符号量E2を得る。この値E2は、下限値Emを下回っているので、今度は、傾きβがβ2=-0.7の直線 208に従って目標符号量Ecを満足するスケールファクタαを算出する。その値は、図示のように目標符号量Etと下限値Emの間の範囲を満足する値α3 となる。この例では、傾きβが-0.7の直線 208は、たまたま実際の画像データ40の直線 204と一致している。こうして、領域 200では傾きβがβ1=-0.6の直線 206に従って目標符号量Etと下限値Emの間の範囲を満足し、領域 202では傾きβがβ2=-0.7の直線 208に従って目標符号量Etと下限値Emの間の範囲を満足するようなスケールファクタαを更新しながら正規化を繰り返し、最終的に、目標符号量Ecを所定の許容範囲±ΔE （図８）で満足する直線 204上のスケールファクタ値αn が得られる。この値αn で正規化係数テーブルQdを修正して、変換係数50を量子化すると、目標符号量に収まるデータ量の圧縮データが得られる。
【００４９】
図11に示すように、たとえば、入力画像データ30の表わす画像の絵柄が、傾き-0.65 のスケールファクタα対符号量Ｅの近似直線 210であった場合も、本装置は同様に機能する。この場合も、領域 200では傾きβがβ1=-0.6の直線 206に従って目標符号量Etと下限値Emの間の範囲を満足し、領域 202では傾きβがβ2=-0.7の直線 208に従って目標符号量Etと下限値Emの間の範囲を満足するようなスケールファクタαを更新しながら正規化を繰り返し、最終的に、目標符号量Ecを所定の許容範囲±ΔE で満足する直線 210上のスケールファクタ値αn が得られる。
【００５０】
また、図８に線10で示すような傾き-0.5の絵柄の画像データ30については、常に中央値Ecより符号量の多い領域 200（図10）の中で傾きβが-0.6の直線12または14に従ったスケールファクタαの算出、ひいては正規化係数Ｑの算出が行なわれる。
【００５１】
このように本実施例では、最初の符号量算出を間引きサンプリングした画像データで行なっている。たとえば1/4 画素の間引きサンプリングの場合、画像データを圧縮符号化して符号量から正規化係数を求めるまでの処理時間は、２回目以降のフル画面の画像データを圧縮符号化して符号量から正規化係数を求めるまでの処理時間の約1/4 程度である。フル画面の画像データの圧縮符号化シーケンスに要する時間に対して回数を１回として計算すると、前述した従来の方式では、一般の画像データについて適切な正規化係数を求める時間に換算して平均3.5回のフィードバック回数であった。これに対して本発明では、同様の時間/回数換算を用いて表し、間引きサンプリングの画像データの圧縮符号化シーケンスを0.25回とすると、平均２回程度のフィードバック系が収束、すなわち適切な正規化係数を求めることができ、処理に要する時間を短縮することができる。
【００５２】
【発明の効果】
このように本発明によれば、最初の符号量算出を、間引きサンプリングした画像データで行なっている。また、スケールファクタ対符号量の関係について、目標符号量を下回る領域については、超える領域よりその両対数近似直線の傾きを大きくしてスケールファクタを算出する。こうすることによって本発明では、従来の方式に比べて、圧縮符号化における適切な正規化係数を求めるフィードバック回数が少なくなり、速やかに系が収束する。また、低い圧縮率でも目標符号量を高い精度で達成することができる。
【図面の簡単な説明】
【図１】本発明による画像データの符号量制御装置の好ましい実施例の構成を示す機能ブロック図である。
【図２】図１に示す好ましい実施例における全体制御部の動作フローの例を説明するためのフロー図である。
【図３】図２に示す動作フローの続きを示すフロー図である。
【図４】図２に示す動作フローにおけるＱテーブル決定のルーチンの例を示すフロー図である。
【図５】図４に示す動作フローにおける量子化スケールファクタ決定のサブルーチンの例を示す、図４と同様のフロー図である。
【図６】図５に示す動作フローにおけるスケールファクタ計算のサブルーチンの例を示す、図４と同様のフロー図である。
【図７】図４に示す動作フローにおけるＱテーブル計算のサブルーチンの例を示す、図４と同様のフロー図である。
【図８】スケールファクタの収束を説明するために、ある絵柄の画像データの例についてスケールファクタ対符号量の関係を近似的にプロットしたグラフである。
【図９】従来技術におけるスケールファクタの収束を説明するために、スケールファクタ対符号量の関係を近似的にプロットした、図８と同様のグラフである。
【図１０】本発明によるスケールファクタの収束を説明するために、他の例の絵柄の画像データについてスケールファクタ対符号量の関係の一例を近似的にプロットした、図８と同様のグラフである。
【図１１】本発明によるスケールファクタの収束を説明するために、さらに他の例の絵柄の画像データについてスケールファクタ対符号量の関係の他の例を近似的にプロットした、図８と同様のグラフである。
【符号の説明】
36  全体制御部
42  直交変換部
48  正規化部
54  符号化部
56  符号量カウンタ
62  Ｑテーブル
66  傾きレジスタ
68  スケールファクタレジスタ
72  符号量レジスタ
【図１】
0003681828.tif 000002
【図２】
0003681828.tif 000003
【図３】
0003681828.tif 000004
【図４】
0003681828.tif 000005
【図５】
0003681828.tif 000006
【図６】
0003681828.tif 000007
【図７】
0003681828.tif 000008
【図８】
0003681828.tif 000009
【図９】
0003681828.tif 000010
【図１０】
0003681828.tif 000011
【図１１】
0003681828.tif 000012