(57)【要約】  【課題】  入力データの符号化効率を評価し、評価結果に応じたデータ処理を行うデータ処理装置を提供する。  【解決手段】  データ処理装置２は、入力された画像データに対して周波数変換を施して、変換係数を生成し、生成された変換係数（中間データ）に基づいて、符号量を評価し、評価結果に応じて量子化処理を行い、量子化が行われた変換係数をハフマン符号で符号化する。これにより、処理負荷の大きなハフマン符号化処理を試行することなく、符号量制御を行うことができるため、より高速な符号量制御が実現可能になる。【選択図】図６
2011142660.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象として入力された画像データに対して周波数変換を施して得られた各周波数における変換係数を、前記画像データを異なる表現形式で表現する中間データとして生成する中間データ生成手段と、
前記中間データ生成手段により生成された中間データを符号データに変換する符号化手段と、
前記中間データ生成手段により生成された各周波数における変換係数のうちゼロ以外の値を有する変換係数の個数と符号量との関係に基づいて、前記符号化手段により生成される符号データの符号量を推定する符号量評価手段と
を有するデータ処理装置。
【請求項２】
前記符号量評価手段による評価結果に基づいて、所望の符号量を達成するための符号化パラメータを決定するパラメータ決定手段と、
前記パラメータ決定手段により決定された符号化パラメータに応じて、入力された画像データ又は中間データに対して非可逆なデータ処理を行う非可逆処理手段と
をさらに有する請求項１に記載のデータ処理装置。
【請求項３】
前記符号量評価手段は、量子化間隔を奇数倍した場合の変換係数の数を算出し、算出された変換係数の数に基づいて、符号量を評価する
請求項１に記載のデータ処理装置。
【請求項４】
前記符号量評価手段によって推定された符号量が所望の符号量以下である場合、
前記符号化手段は、前記非可逆処理手段によって非可逆なデータ処理が施された中間データを符号データに変換する
請求項２に記載のデータ処理装置。
【請求項５】
前記符号量評価手段によって推定された符号量が所望の符号量を超える場合、
前記パラメータ決定手段は、前記変換係数の個数と符号量との関係を用いて、所望の符号量に対応するゼロ以外の値を有する変換係数の個数を算出し、算出した変換係数の個数に基づいて符号化パラメータを決定する
請求項２に記載のデータ処理装置。
【請求項６】
符号化対象として入力された画像データに対して周波数変換を施して得られた各周波数における変換係数を、前記画像データを異なる表現形式で表現する中間データとして生成するステップと、
生成された中間データを符号データに変換するステップと、
生成された各周波数における変換係数のうちゼロ以外の値を有する変換係数の個数と符号量との関係に基づいて、前記符号化手段により生成される符号データの符号量を推定するステップと、
符号量の評価結果に応じて、符号化パラメータを決定するステップと、
決定された符号化パラメータに応じて、生成された中間データに対して非可逆なデータ
処理を行うステップと、
非可逆なデータ処理が施された中間データを符号データに変換するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力データに対する符号化効率を評価するデータ処理装置及びプログラムに関する。
【背景技術】
【０００２】
例えば、特許文献１には、符号量と量子化パラメータとの関係式を用いて、符号量が所定の量以下となるように領域毎の量子化パラメータを推定する方法が開示されている。
【特許文献１】特開２００２−２３２７２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、入力データの符号化効率を評価し、
評価結果に応じたデータ処理を行うデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［データ処理装置］
上記目的を達成するために、本発明にかかるデータ処理装置は、符号化対象として入力された画像データに対して周波数変換を施して得られた各周波数における変換係数を、前記画像データを異なる表現形式で表現する中間データとして生成する中間データ生成手段と、前記中間データ生成手段により生成された中間データを符号データに変換する符号化手段と、前記中間データ生成手段により生成された各周波数における変換係数のうちゼロ以外の値を有する変換係数の個数と符号量との関係に基づいて、前記符号化手段により生成される符号データの符号量を推定する符号量評価手段とを有する。
【０００５】
好適には、前記符号量評価手段による評価結果に基づいて、所望の符号量を達成するための符号化パラメータを決定するパラメータ決定手段と、前記パラメータ決定手段により決定された符号化パラメータに応じて、入力された画像データ又は中間データに対して非可逆なデータ処理を行う非可逆処理手段とをさらに有する。
【０００６】
好適には、前記符号量評価手段は、量子化間隔を奇数倍した場合の変換係数の数を算出し、算出された変換係数の数に基づいて、符号量を評価する。
【０００７】
好適には、前記符号量評価手段によって推定された符号量が所望の符号量以下である場合、前記符号化手段は、前記非可逆処理手段によって非可逆なデータ処理が施された中間データを符号データに変換する。
【０００８】
好適には、前記符号量評価手段によって推定された符号量が所望の符号量を超える場合、前記パラメータ決定手段は、前記変換係数の個数と符号量との関係を用いて、所望の符号量に対応するゼロ以外の値を有する変換係数の個数を算出し、算出した変換係数の個数に基づいて符号化パラメータを決定する。
【０００９】
好適には、前記中間データ生成手段は、入力データと予測データとが一致したことを示す一致情報、及び、入力データと予測データとの差分を示す予測誤差を前記中間データとして生成し、前記符号量評価手段は、前記中間データ生成手段により算出された予測誤差の分布情報を生成する。
【００１０】
［プログラム］
また、本発明にかかるプログラムは、符号化対象として入力された画像データに対して周波数変換を施して得られた各周波数における変換係数を、前記画像データを異なる表現形式で表現する中間データとして生成するステップと、生成された中間データを符号データに変換するステップと、生成された各周波数における変換係数のうちゼロ以外の値を有する変換係数の個数と符号量との関係に基づいて、前記符号化手段により生成される符号データの符号量を推定するステップと、符号量の評価結果に応じて、符号化パラメータを決定するステップと、決定された符号化パラメータに応じて、生成された中間データに対して非可逆なデータ処理を行うステップと、非可逆なデータ処理が施された中間データを符号データに変換するステップとをコンピュータに実行させる。
【発明の効果】
【００１１】
本発明のデータ処理装置によれば、入力データの符号化効率を評価し、評価結果に応じたデータ処理を行うことができる。
【発明を実施するための最良の形態】
【００１２】
まず、本発明の理解を助けるために、その背景及び概略を説明する。
符号化処理は、入力データを中間データに変換するソースコーダと、中間データを符号データに変換するエントロピーコーダとによって実現される。また、符号量とは、エントロピーコーダの出力データ量である。
符号量を既定値以下に制限したい場合がある。しかしながら、可逆な符号化処理では、
圧縮率に限界があるため、量子化処理などを用いた非可逆な符号化方式（例えば、ＪＰＥＧ）が用いられている。
非可逆な符号化方式とは、入力データ又は中間データを非可逆に変更して、これらの情報量を減少させ、符号化効率を向上させるものである。しかしながら、このような非可逆処理（例えば、量子化処理）は、データの劣化（例えば、画質の低下）を伴う。
したがって、データの劣化を最小限に抑えながら所望の圧縮率を実現するためには、量子化処理などの非可逆処理を行わない場合、又は、所定の非可逆処理を行った場合の符号量を評価して、必要十分な非可逆処理をさがす必要がある。例えば、カットアンドトライによって、実際の符号データのデータ量を評価しながら、量子化処理の程度を規定する量子化パラメータが決定されている。
【００１３】
しかしながら、エントロピーコーダは、ビットバイビットの処理になるので、一般に処理負荷が重い。そのため、エントロピーコーダの処理前に符号量を推定することができれば、必要のないエントロピーコーダの処理を省くことで処理負荷を軽減することができる。
【００１４】
ここで、エントロピーコーダは、純粋に統計量に基づいて設計されるため、エントロピーコーダに入力される中間データ（つまりソースコーダの出力）について適切な統計量を知っていれば、最終的な符号量を推定することができる。
【００１５】
そこで、本実施形態におけるデータ処理装置２は、ソースコーダにより生成された中間データに基づいて、符号量を評価し、評価結果に応じたデータ処理を行う。
本例では、符号量の評価結果に応じた符号化処理を説明する。
【００１６】
例えば、変換符号化方式の例として、ＪＰＥＧ方式について説明する。
ＪＰＥＧ方式は、エントロピーコーダに２次元ハフマン（Huffman）符号化を採用している。２次元ハフマン符号化は、ゼロ係数（ゼロの値を有するＤＣＴ係数）をランレングス符号化し、非ゼロ係数（ゼロ以外の値を有するＤＣＴ係数）をハフマン符号化する働きがある。したがって、ＪＰＥＧ方式により生成される符号データの符号量は、非ゼロ係数の個数に依存することが予想される。
【００１７】
図１（Ａ）は、非ゼロ係数の個数と符号量との関係を示すグラフである。
図１（Ａ）に示されたグラフは、同一画像において量子化パラメータ（スケーリングファクタ）を変更した場合の実測値をプロットしたものである。
図１（Ａ）に示すように、非ゼロ係数の個数とほぼ比例して符号量が変化することがわかる。
そこで、変換符号化方式を用いる場合には、データ処理装置２は、変換係数（中間データ）のうち、非ゼロ係数の個数の統計値（全個数、出現確率など）を算出し、算出された統計値に基づいて、符号量を評価する。
なお、非ゼロ係数の個数をカウントするためには、中間データ列をメモリに格納することになるが、このような処理は、エントロピー符号化を最適化するために一般的に行われる処理なので、特別なオーバーヘッドにはならない。例えば、ＪＰＥＧ方式は、ハフマン符号を最適化するために、変換係数列をメモリに蓄積し、その統計量に基づいてハフマン符号を最適設計する。
【００１８】
また、予測符号化方式についても同様に符号量を評価することができる。
すなわち、予測符号化方式のうち、単純なランレングス符号化方式又はＬＺ符号化方式のようにランレングスを使う符号化方式などでは、ランがどれくらい"とれないか"、つまり予測がどのくらい外れるかが符号量に影響することが考えられる。
例えば、複数の予測方法が設けられた符号化方式の場合、非ラン画素（全ての予測が外れた画素）の個数が符号量に影響することが考えられる。
【００１９】
図１（Ｂ）は、非ラン画素の出現頻度と符号量との関係を示すグラフである。
図１（Ｂ）に示されたグラフは、８種類の画像において量子化パラメータ（解像度パラメータ）を変更した場合の実測値をプロットしたものである。
図１（Ｂ）に示すように、画像によって定量的な符号量の違い（上下のずれ）はあるが、同一画像においては強い相関を示す。
そこで、予測符号化方式を用いる場合には、データ処理装置２は、入力データと予測データとの一致情報から、予測外れの出現頻度を算出し、算出された予測外れの出現頻度に基づいて、符号量を評価する。
【００２０】
なお、ＪＰＥＧ方式などの変換符号化方式では、変換係数の量子化処理（非可逆処理）
を用いて符号量を制御するが、予測符号化方式では、例えば、予測時の許容誤差を大きくしたり、空間フィルタによって画素値を塗りつぶしたりすることで、量子化効果を得る。
また、予測符号化方式におけるエントロピー符号化は、２つの単位で処理を行う。つまり、（１）非ラン画素の１画素単位処理、及び、（２）ラン画素のラン単位処理、の２つである。本例では、支配的である（１）だけを考慮して符号量を評価しているが、（２）を考慮するためにランの個数（ラン長ではなく）をも用いて符号量を評価してもよい。
【００２１】
以下、変換符号化方式に本発明を適用した具体例を第１の実施形態で説明し、予測符号化方式に本発明を適用した具体例を第２の実施形態で説明する。
【００２２】
［ハードウェア構成］
まず、本実施形態におけるデータ処理装置２のハードウェア構成を説明する。
図２は、本発明にかかるデータ処理方法が適応されるデータ処理装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
図２に例示するように、データ処理装置２は、ＣＰＵ２０２及びメモリ２０４などを含む制御装置２０、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ
表示装置あるいはＣＲＴ表示装置及びキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２６から構成される。
データ処理装置２は、例えば、プリンタ装置１０に設けられた処理装置であり、通信装置２２又は記録装置２４などを介して画像データを取得し、取得された画像データを符号化する。
【００２３】
［符号化プログラム］
図３は、制御装置２０（図２）により実行され、本発明にかかるデータ処理方法を実現する符号化プログラム５の機能構成を例示する図である。
図２に例示するように、符号化プログラム５は、周波数変換部５００、量子化部５１０、符号量評価部５２０、量子化制御部５３０、変換係数バッファ５４０、及びハフマン符号化部５５０を有する。
【００２４】
符号化プログラム５において、周波数変換部５００は、入力された画像データ（入力データ）に対して変換処理を施して、各周波数の係数（変換係数）を生成する。生成される変換係数は中間データの一例である。
本例の周波数変換部５００は、入力された画像データに対して離散コサイン変換（ＤＣＴ）を施して、８×８のＤＣＴ係数を生成する。
【００２５】
量子化部５１０は、周波数変換部５００により生成された変換係数に対して量子化処理を施す。
本例の量子化部５１０は、図４に例示する量子化テーブルを用いて、８×８のＤＣＴ係数を量子化する。より具体的には、量子化部５１０は、８×８のＤＣＴ係数の値を、量子化テーブル（図４）の対応する量子化係数で除算し、その商を量子化後のＤＣＴ係数とする。
【００２６】
符号量評価部５２０は、周波数変換部５００により生成された変換係数、又は、量子化部５１０により量子化された変換係数に基づいて、符号量を評価する。
より具体的には、符号量評価部５２０は、変換係数のうち、ゼロ以外の値を有する変換係数（非ゼロ係数）の個数の統計値（非ゼロ係数の全個数、出現確率など）を算出し、算出された統計値に基づいて、符号量を推定する。
本例の符号量評価部５２０は、生成されたＤＣＴ係数の中から、非ゼロ係数の個数をカウントし、図１（Ａ）に示したグラフの近似式を用いて、非ゼロ係数の個数に対応する符号量を算出する。
また、本例の符号量評価部５２０は、図１（Ａ）に示したグラフの近似式を用いて、所望の符号量に対応する非ゼロ係数の個数を算出する。
【００２７】
量子化制御部５３０は、符号量評価部５２０による符号量の評価結果に基づいて、量子化部５１０による量子化処理を制御する。
本例の量子化制御部５３０は、符号量評価部５２０により推定された符号量が所望の符号量以下である場合には、変換係数をそのままハフマン符号化するよう変換係数バッファ５４０に指示し、推定された符号量が所望の符号量を超える場合には、量子化部５１０に対して変換係数を再量子化するよう指示する。
本例の量子化制御部５３０は、所望の符号量に対応する非ゼロ係数の個数が符号量評価部５２０により算出されると、算出された非ゼロ係数の個数を実現する量子化パラメータを決定し、決定された量子化パラメータを量子化部５１０に設定する。より具体的には、本例の量子化制御部５３０は、所望の符号量に対応する非ゼロ係数の個数を実現するようなスケーリングファクタを算出する。
【００２８】
変換係数バッファ５４０は、量子化部５１０から入力された変換係数（ＤＣＴ係数）を保持し、量子化制御部５３０からの指示に応じて、保持されている変換係数をハフマン符号化部５５０に出力する。
【００２９】
ハフマン符号化部５５０は、変換係数バッファ５４０から入力された変換係数（ＤＣＴ係数）をハフマン符号で符号化する。
【００３０】
図４は、量子化部５１０により用いられる量子化テーブルを例示する図である。
図４に例示するように、８×８のブロックの位置によって量子化係数が異なる。すなわち、本図に例示されている量子化テーブルは、推奨量子化テーブルであり、高域に行くほど量子化を粗くするために、高域の量子化係数は、低域（例えば、ＤＣ成分）よりも大きな値を有する。
本例の量子化部５１０は、図４に例示する量子化テーブルの各係数に対して、量子化制御部５３０により設定されたスケーリングファクタを乗じて、各ＤＣＴ係数に適用すべき量子化係数を決定し、決定された各量子化係数で各ＤＣＴ係数を除算する。
【００３１】
図５（Ａ）は、種々のスケーリングファクタで量子化した場合の変換係数の分布を示し、図５（Ｂ）は、種々の量子化係数に対応する量子化間隔を例示する図である。
スケーリングファクタ（図中のＳＦ）が大きくなるに従って（すなわち、量子化間隔が広がるに従って）、量子化後の変換係数の分布は、ゼロ値の方向に移動していく。
例えば、ＳＦ＝10/50と、ＳＦ＝50/50とを比較すると、量子化係数が５倍違うので、スケーリングファクタが10/50である場合に０から２に存在した変換係数値は、スケーリングファクタが50/50になると、０に量子化される。厳密には、量子化テーブルを整数化する必要があるので、誤差が含まれることがある。
これは、図５（Ｂ）に例示する量子化間隔を見れば明らかである。
このように、符号量評価部５２０は、より低圧縮の量子化結果（変換係数の分布）に基づいて、より高圧縮の量子化で得られる変換係数の分布（すなわち、非ゼロ係数の個数、又は、符号量）を推定することができる。
【００３２】
また、符号量評価部５２０は、基準となる量子化間隔（本例では、スケーリングファクタ）を奇数倍した場合の符号量を評価することが望ましい。
図５（Ｂ）に例示するように、量子化係数が１動いても、切上げ又は切下げの閾値は、
０．５しか動かないので、量子化係数が２倍になっても量子化後の値が１／２になるとは限らない。例えば、１．２の変換係数は、量子化係数が１でも２でも量子化すると１になる。換言すると、量子化係数１の場合に量子化区間１に含まれる各変換係数（０．５〜１．５）は、量子化係数２で量子化されると、量子化区間０に含まれるのか、量子化区間１に含まれることになるのを推定することができない。
したがって、符号量評価部５２０は、量子化係数を奇数倍した場合の符号量（変換係数の分布、又は、非ゼロ係数の個数）を推定することにより、より高い精度の推定を実現することができる。
【００３３】
［全体動作］
次に、データ処理装置２（符号化プログラム５）の全体動作を説明する。
図６は、符号化プログラム５（図３）による符号化処理（Ｓ１０）のフローチャートである。
図６に示すように、ステップ１００（Ｓ１００）において、周波数変換部５００（図３）は、外部から、画像データが入力されると、入力された画像データを８×８の画像ブロックに分割し、分割された各画像ブロックに対して離散コサイン変換を施して、８×８ブロックのＤＣＴ係数を生成し、生成されたＤＣＴ係数を量子化部５１０に出力する。
【００３４】
ステップ１０５（Ｓ１０５）において、量子化部５１０は、量子化制御部５３０により設定されたスケーリングファクタ（ＳＦ）に基づいて、量子化係数を算出し、算出された量子化係数を用いて、周波数変換部５００から入力されたＤＣＴ係数を量子化し、量子化されたＤＣＴ係数を符号量評価部５２０及び変換係数バッファ５４０に出力する。
なお、量子化制御部５３０は、入力された画像データに対する最初の量子化処理に対しては、最小のＳＦを初期値として設定する。
【００３５】
ステップ１１０（Ｓ１１０）において、符号量評価部５２０は、量子化部５１０から入力されたＤＣＴ係数（量子化後）のヒストグラムを作成する。
【００３６】
ステップ１１５（Ｓ１１５）において、符号量評価部５２０は、図１（Ａ）に示されたグラフの近似式を用いて、非ゼロ係数の個数に対応する符号量（推定符号量）を算出し、算出された符号量を量子化制御部５３０に出力する。
【００３７】
ステップ１２０（Ｓ１２０）において、符号化プログラム５は、符号量評価部５２０により算出された符号量（推定符号量）が所望の符号量以下である場合に、Ｓ１３０の処理に移行し、算出された符号量が所望の符号量を超える場合に、Ｓ１２５の処理に移行する。
【００３８】
ステップ１２５（Ｓ１２５）において、符号量評価部５２０は、図１（Ａ）に示されたグラフの近似式を用いて、所望の符号量に対応する非ゼロ係数の個数（目標値）を算出し、算出された非ゼロ係数の個数と、ＤＣＴ係数のヒストグラムとを量子化制御部５３０に出力する。
量子化制御部５３０は、符号量評価部５２０から入力された非ゼロ係数の個数（目標値）と、ＤＣＴ係数のヒストグラムとに基づいて、適用すべきスケーリングファクタを決定し、決定されたスケーリングファクタを量子化部５１０に設定する。
符号化プログラム５は、Ｓ１０５の処理に戻り、新たに設定されたスケーリングファクタを用いて、ＤＣＴ係数の量子化を行い、量子化後のＤＣＴ係数に基づいて符号量の推定を行う。
【００３９】
ステップ１３０（Ｓ１３０）において、量子化制御部５３０は、推定符号量が所望の符号量以下になると、変換係数バッファ５４０にＤＣＴ係数を出力するよう指示する。
変換係数バッファ５４０は、量子化部５１０から入力されたＤＣＴ係数（最新のＤＣＴ係数）をハフマン符号化部５５０に出力する。
ハフマン符号化部５５０は、変換係数バッファ５４０から入力されたＤＣＴ係数をハフマン符号で符号化し、外部に出力する。
【００４０】
なお、本例では、所望の符号量に対応する非ゼロ係数の個数（目標値）を算出して、算出された非ゼロ係数の目標値に応じたスケーリングファクタを決定しているが、これに限定されるものではなく、例えば、符号化プログラム５は、推定された符号量が所望の符号量以下となるまで、既定の規則に従ってスケーリングファクタを大きくしていってもよい。
【００４１】
以上説明したように、本実施形態におけるデータ処理装置２は、変換係数の分布に基づいて、符号量を評価することができる。
これにより、ハフマン符号化処理を繰り返すことなく、所望の符号量制御が可能になる。
【００４２】
［変形例１］
以下、上記実施形態の変形例を説明する。
上記実施形態では、スケーリングファクタを奇数倍でのみ変化させることにより、変換係数の分布を高精度に推定していたが、これに限定されるものではなく、例えば、スケーリングファクタを偶数倍又は実数倍した場合の変換係数の分布を推定してもよい。
図７は、スケーリングファクタを偶数倍した場合の変換係数の分布を推定する方法を説明する図である。
図７（Ａ）に示すように、スケーリングファクタを偶数倍又は実数倍した場合、新たなスケーリングファクタによる量子化区間の境界が元の量子化区間の境界と重ならないため、元の量子化区間に属する変換係数が、新たなスケーリングファクタによる量子化でいずれの量子化区間に組み込まれるか推定できない。
そこで、本変形の符号量評価部５２０は、新たな量子化区間の境界と重なる元の量子化区間（図７（Ｂ）の量子化区間１）が存在する場合には、この量子化区間に含まれる変換係数の個数を、図７（Ｃ）に例示するように、新たな量子化区間に分配する。
具体的には、符号量評価部５２０は、変換係数の頻度値を離散値でなく連続補間してから、新たな量子化区間の頻度値を算出する。なお、連続補間は、線形補間のほか、多次補間やスプライン補間などであってもよい。
【００４３】
［変形例２］
上記実施形態では、１つの量子化部５１０が設けられているが、変形例２では、図８に例示するように、２つの量子化部（第１量子化部５１２及び第２量子化部５１４）が設けられている。
図８に例示する第１量子化部５１２は、既定のスケーリングファクタ（比較的小さなＳＦ）によって量子化（すなわち、よりゆるい量子化）を行い、第２量子化部５１４は、所望の符号量を得られるようなスケーリングファクタによって量子化を行う。第２量子化部５１４による量子化は、第１量子化部５１２によりもきつい量子化（非可逆性の大きな量子化）となる。
また、本変形例では、第１量子化部５１２により量子化された変換係数が、第２量子化部５１４によって重畳的に量子化される。
このように、符号化プログラム５２が第１量子化部５１２及び第２量子化部５１４を有することにより、１パスで符号量制御を行うことができる。
【００４４】
なお、上記実施形態及び変形例では、スケーリングファクタによる量子化処理の調整だけを行っているが、量子化テーブルに非線形な変更を加えたい場合には、第１量子化部５１２は、量子化係数が全て１の量子化テーブルを用いて量子化を行ってもよい。この場合の量子化は、係数の整数化だけを行い、それ以上の量子化を行わないのと同値である。
そして、第２量子化部５１４は、８×８ブロック内の位置毎に、量子化係数を設定する。これにより、任意の量子化係数に対して、非ゼロ係数の個数を見積もることが可能となる。なお、第１量子化部５１２の量子化係数を全て０．５にしてもよい。この場合、変換係数の分布が誤差なしに推定できる。
【００４５】
また、量子化制御部５３０は、非ゼロ係数の個数が所望値に収まるように量子化テーブルを決定する場合に、既定の量子化テーブル群の中から、１つの量子化テーブルを選択してもよいし、量子化テーブルにかけるスケーリングファクタを微調整してもよい。
また、量子化制御部５３０は、量子化の度合いに応じて、非線形に量子化テーブルを算出するようなアルゴリズムを備えていてもよい。例えば、量子化が激しくなると低域の誤差が知覚しやすくなるので、量子化制御部５３０は、全体の量子化係数が大きくなる場合に、高域の量子化係数をより大きくするようなアルゴリズムで量子化テーブルを生成することが好ましい。
【００４６】
［変形例３］
上記実施形態では、画像データを符号データに変換する形態を説明したが、これに限定されるものではなく、例えば、入力された符号データを再符号化してもよい。
図９は、再符号化プログラム６の機能構成を例示する図である。なお、本図に示された各構成のうち、図８に示された構成と実質的に同一のものには同一の符号が付されている。
図９に例示するように、再符号化プログラム６は、ハフマン復号化部６００、符号量評価部５２０、量子化制御部５３０、変換係数バッファ５４０、量子化部５１４、及びハフマン符号化部５５０を有する。
再符号化プログラム６において、ハフマン復号化部６００は、入力された符号データを復号化して、変換係数を生成し、生成された変換係数を符号量評価部５２０及び変換係数バッファ５４０に出力する。
符号量評価部５２０は、ハフマン復号化部６００から入力された変換係数に基づいて、
変換係数のヒストグラムを作成し、作成されたヒストグラムを量子化制御部５３０に出力する。
量子化制御部５３０は、符号量評価部５２０により作成された変換係数のヒストグラムに基づいて、所望の符号量を達成する量子化係数を決定し、決定された量子化計数を量子化部５１４に設定する。
量子化部５１４は、変換係数バッファ５４０から入力された変換係数を、量子化制御部５３０により設定された量子化係数を用いて量子化し、量子化された変換係数をハフマン符号化部５５０に出力する。
ハフマン符号化部５５０は、量子化部５１４により量子化された変換係数をハフマン符号で符号化する。
このように、本例の再符号化プログラム６は、再符号化処理において、中間データ（本
例では変換係数）の統計情報に基づいて符号量制御を行うことができる。例えば、プリンタドライバなどで再符号化する場合に本変形例は好適である。
【００４７】
［第２実施形態］
次に、第２の実施形態を説明する。上記実施形態では、本発明を変換符号化方式に適用する形態を説明したが、本実施形態では、本発明を予測符号化方式に適用する形態を説明する。
本実施形態では、被符号化シンボル（中間データ）の統計を使うことでエントロピーコーダの試行をやめることができるが、ソースコーダにおける試行をやめるためには、所望符号量を得る量子化パラメータを推定する必要がある。
そのためには、ソースコーダから出力される中間データ（例えば、予測の的中数、予測誤差の個数）を計数するだけでなく、その分布などから必要な量子化の強さを解析的に予測することが必要になる。
予測符号化方式では、単純なランレングス符号化方式やＬＺ符号化方式のようにランレングスを使う符号化方式の場合、ランがどれくらい「とれないか」、つまり予測がどのくらい外れるかが符号量に影響する。ここで、予測が的中してランのとれる画素をラン画素、ランのとれない画素を非ラン画素と呼ぶことにする。
【００４８】
図１（Ｂ）に示すように、予測符号化方式による符号量は、非ラン画素の出現頻度に依存するが、その依存の程度は、量子化のかけ方によって異なる。
本実施形態では、予測が外れて予測誤差が発生した場合でも、閾値以下の誤差であれば誤差０とみなす量子化を具体例として説明する。このタイプの量子化は、国際標準ＪＰＥＧ−ＬＳなどでも採用されている。
このような量子化では、閾値以下の予測誤差は全て０に量子化され、ラン画素になる。
したがって、量子化前の予測誤差の分布がわかっていれば、ラン画素と非ラン画素の個数の変化が推定できることになる。
なお、ここで推定可能なのは、非ラン画素の個数の推定であって、測定ではないことに注意する必要がある。つまり、ここでとっている統計は量子化のないとき（あるいは別の量子化が行われたとき）の分布に基づくものであって、実際の量子化が行われるときには量子化された画素値が出現するために、予測誤差の出現頻度分布もその影響を受ける。つまり、推定値は実測値に対してある程度の誤差を含む。
以下、本実施形態をより具体的に説明する。
【００４９】
図１０は、第２の実施形態における符号化プログラム７の機能構成を例示する図である。
図１０に例示するように、符号化プログラム７は、予備予測部７００、符号量評価部７１０、量子化制御部７２０、フィルタ処理部７３０、予測処理部７４０、及びエントロピー符号化部７５０を有する。
【００５０】
符号化プログラム７において、予備予測部７００は、予測処理部７４０により生成される中間データ（本例では、予測が的中したことを示す情報、及び、予測が外れた場合に生成される予測誤差）の少なくとも一部を生成する。
本例の予備予測部７００は、予測処理部７４０と同一の予測方法を用いて、予測が的中した予測方法を示す予測部ＩＤ及びその連続数、並びに、いずれの予測方法も外れた場合に生成される予測誤差を生成するが、これに限定されるものではなく、例えば、予測誤差のみを生成してもよい。
【００５１】
符号量評価部７１０は、予備予測部７００により生成された中間データに基づいて、符号量を評価する。
本例の符号量評価部７１０は、生成された予測誤差の頻度分布（ヒストグラム）を作成し、作成された頻度分布に基づいて、符号量を推定する。
【００５２】
量子化制御部７２０は、符号量評価部７１０による符号量の評価結果に基づいて、フィルタ処理部７３０による量子化処理を制御する。
本例の量子化制御部７２０は、符号量評価部７１０により推定された符号量が所望の符号量以下である場合には、入力された画像データを量子化することなく符号化するようフィルタ処理部７３０に指示し、推定された符号量が所望の符号量を超える場合には、入力された画像データに対して量子化処理を施すようフィルタ処理部７３０に指示する。
また、量子化制御部７２０は、符号量評価部７１０により作成されたヒストグラムに基づいて、所望の符号量を達成できる量子化パラメータを推定し、推定された量子化パラメータをフィルタ処理部７３０に設定する。
【００５３】
フィルタ処理部７３０は、量子化制御部７２０により設定された量子化パラメータに応じて、予測処理部７４０による予測の的中率が向上するような量子化処理を画像データに施す。
本例のフィルタ処理部７３０は、量子化制御部７２０により設定された量子化パラメータ（許容誤差）の範囲内で、入力された画像データを塗り潰すことにより、予測処理部７４０による予測の的中率を向上させる。
【００５４】
予測処理部７３０は、既定の予測方法で、フィルタ処理部７３０から入力された画像データについて予測データを生成し、生成された予測データと、入力された画像データとを比較して、予測データと画像データとの一致情報（中間データ）を生成する。
本例の予測処理部７３０は、注目画素の近傍にある画素（参照画素）の画素値を予測値とし、予測値と注目画素値とが一致する場合には、一致した旨を示す情報（予測部ＩＤ）及びその連続数（ラン）を出力し、予測値が注目画素値と一致しない場合に、予測値と注目画素値との差分を予測誤差として出力する。
【００５５】
エントロピー符号化部７５０は、予測処理部７３０から入力される一致情報（中間データ）をエントロピー符号化する。
本例のエントロピー符号化部７５０は、予測処理部７３０から入力される予測部ＩＤ及びラン、並びに予測誤差をエントロピー符号化する。
【００５６】
図１１は、予備予測部７００及び予測処理部７４０の構成をより詳細に説明する図である。なお、本例では、予備予測部７００及び予測処理部７４０は、同じ構成を有するが、これに限定されるものではなく、例えば、予備予測部７００にラン計数部７４８は不要である。
以下、予測処理部７４０の構成として説明する。
図１１に示すように、予測処理部７４０は、予測部７４２、予測誤差算出部７４４、選択部７４６、及びラン計数部７４８を有する。
予測部７４２は、図１２（Ａ）に例示する既定の参照位置Ａ〜Ｄの画素値を、予測値として選択部７４６に対して出力する。
予測誤差算出部７４４は、図１２（Ａ）に示す参照位置Ａの画素値と、注目画素Ｘの画素値との差分を予測誤差値として選択部７４６に対して出力する。
選択部７４６は、予測部７４２から入力された予測値それぞれと、注目画素Ｘの画素値とを比較して、一致しているか否かを判定する。選択部７４６は、判定の結果、予測が的中した予測値（参照位置）があればその識別番号（すなわち予測部ＩＤ）を、いずれも的中しなかった場合は、予測誤差算出部７４４から入力された予測誤差値を、ラン計数部５７８及び図１０のエントロピー符号化部７５０（予備予測部７００の場合には符号量評価部７１０）に対して出力する。
【００５７】
ラン計数部７４８は、識別番号（予測部ＩＤ）が入力された場合には、予測部ＩＤに対応する内部カウンタを１だけ増やす。また、ラン計数部７４８は、予測誤差が入力された場合（すなわち、全ての予測が外れた場合）には、各予測部ＩＤに対応する内部カウンタの値と参照位置ＩＤとをランデータとしてエントロピー符号化７５０（図１０）に対して出力する。
【００５８】
図１２は、予測処理部７４０及びエントロピー符号化部７５０による符号化処理を説明する図である。
図１２（Ａ）に例示するように、本例の予測符号化処理では、注目画素Ｘの画素値を符号化する場合に、他の画素（本例では、参照位置Ａ〜Ｄの画素）を参照して、注目画素Ｘの予測値を生成し、生成された予測値と注目画素Ｘの画素値との一致情報を符号化する。ここで、一致情報とは、予測値と真の値との一致度合いを示す情報であり、例えば、一致したか否か、差分が既定の範囲内であるか否か、又は、予測値と真の値との差分値（すなわち、予測誤差値）などである。本例の参照位置Ａ〜Ｄは、注目画素Ｘとの相対位置として設定されている。具体的には、参照位置Ａは、注目画素Ｘの主走査方向上流に設定され、参照位置Ｂ〜Ｄは、注目画素Ｘの上方（副走査方向上流）の主走査ライン上に設定されている。
【００５９】
いずれかの参照位置から読み出された画素値（予測値）が注目画素Ｘの画素値と一致した場合（すなわち、いずれかの参照位置で予測が的中した場合）には、一致した参照位置を特定する情報（以下、予測部ＩＤ）が注目画素Ｘの被符号化シンボル（中間データ）として出力される。また、同一の参照位置から読み出される予測値が、複数の注目画素Ｘの画素値と連続して一致する場合には、この参照位置の予測部ＩＤと、連続数（ラン）とがこれらの注目画素Ｘの被符号化シンボルとして出力される。したがって、連続して一致する回数（連続一致長）が多いほど、符号化効率が高いことになる。本例の予測符号化方式では、予測部ＩＤは、図１２（Ｂ）に例示するように、符号に対応付けられている。
また、本例の予測符号化方式では、いずれの参照位置の画素値（予測値）も注目画素Ｘの画素値と一致しない場合には、参照位置Ａの画素値と注目画素Ｘの画素値との差分（予測誤差値）が注目画素Ｘの被符号化シンボル（中間データ）として出力され、符号化される。
これによって生成される符号データは、図１２（Ｃ）に例示するように、予測誤差を示す符号、予測値が的中した参照位置に対応する符号、及び、その連続数によって構成される。
【００６０】
図１３は、符号量評価部７１０により作成される予測誤差の累積頻度分布を例示する図である。
図１３に示すように、画像によって予測誤差の分布が大きく異なる。図１（Ｂ）に例示したグラフ（非ラン画素の出現頻度ｖｓ符号量）と並べてみると、予測誤差が小さい値にまとまっている画像１は、同一の量子化パラメータ（許容誤差）における非ラン画素数と符号量の減少効果が高く、そうでない画像２は、その逆の結果を示している。
本例の符号量評価部７１０及び量子化制御部７２０は、この原理に基づいて、所定の量子化を行った場合の符号量を評価する。
【００６１】
図１４は、フィルタ処理部７３０の構成をより詳細に説明する図である。
図１４に示すように、フィルタ処理部７３０は、予測部７３２、画素値変更処理部７３４、及び誤差分配処理部７３６を有する。
予測部７３６は、図１２（Ａ）に例示する複数の参照位置Ａ〜Ｄの画素値それぞれを注目画素Ｘの予測値として、画素値変更処理部７３４に対して出力する。なお、本例では、参照位置Ａ〜Ｄそれぞれの画素値を予測値としているが、これに限定されるものではなく、少なくとも１つの参照位置の画素値を予測値とすれば足りる。
画素値変更処理部７３４は、注目画素Ｘの画素値と、予測部７３２から入力された予測値それぞれとを比較し、画素値と予測値との差分が符号化パラメータにより規定された許容誤差より小さい場合には、その予測値を後段（予測処理部７４０）に対して出力し、さらに、注目画素の画素値と予測値との差分（以下、誤差値）を誤差分配処理部７３６に対して出力する。なお、複数の予測値について差分が許容誤差の範囲内となった場合には、差分が最も小さい予測値が適用される。
また、画素値変更処理部７３４は、画素値と予測値との差分が符号化パラメータ（許容誤差）より小さい場合には、徐々に許容誤差を小さくしていく。
一方、画素値変更処理部７３６は、注目画素Ｘの画素値と予測値との差分がいずれも許容誤差以上である場合には、注目画素Ｘの画素値をそのまま後段（予測処理部７４０）に対して出力し、誤差分配処理部７３６に対して０を出力する。すなわち、フィルタ処理部７３０は、予測誤差が許容誤差以上である場合には、注目画素Ｘの画素値を変換せず、許容誤差以上の誤差値を誤差分配しない。換言すると、許容誤差（符号化パラメータ）が大きいほど、入力画像の画素値が変更されて、後段の予測処理部７４０による予測の的中率が向上し、圧縮率が高くなる。
誤差分配処理部７３６は、画素値変更処理部７３４から入力された誤差値に基づいて、
誤差分配値を生成し、画像データに含まれる所定の画素の画素値にこれを加算する。誤差分配値は、例えば、重み行列を用いた誤差拡散法や平均誤差最小法に従って、誤差値に重み行列の値を掛け合わせて算出される。
【００６２】
このように、フィルタ処理部７３０は、後段の予測処理部７４０による予測が的中しやすくなるように画像データに含まれる画素値を変換する。その際に、フィルタ処理部７３０は、画素値の変更により生じた真の画素値との差分を、周辺画素に分配して、画素値の変更を巨視的に目立たなくする。
【００６３】
［全体動作］
次に、第２の実施形態におけるデータ処理装置２（符号化プログラム７）の全体動作を説明する。
図１５は、符号化プログラム７（図１０）による符号化処理（Ｓ２０）のフローチャートである。
図１５に示すように、ステップ２００（Ｓ２００）において、予備予測部７００（図１０）は、外部から、画像データが入力されると、入力された画像データについて予測誤差（注目画素Ｘの画素値と参照位置Ａの画素値との差分値）を算出し、算出された差分値（予測誤差）を符号量評価部７１０に出力する。
【００６４】
ステップ２０５（Ｓ２０５）において、符号量評価部７１０は、予備予測部７００から入力される予測誤差の出現頻度分布（ヒストグラム）を作成し、作成された出現頻度分布を量子化制御部７２０に出力する。
【００６５】
ステップ２１０（Ｓ２１０）において、量子化制御部７２０は、図１（Ｂ）に例示するグラフの近似式を用いて、所望の符号量に対応する非ラン画素数を算出する。
【００６６】
ステップ２１５（Ｓ２１５）において、量子化制御部７２０は、符号量評価部７１０から入力された出現頻度分布に基づいて、算出された非ラン画素数を達成する許容誤差（量子化パラメータ）を決定し、決定された量子化パラメータをフィルタ処理部７３０に出力する。
【００６７】
ステップ２２０（Ｓ２２０）において、フィルタ処理部７３０は、量子化制御部７２０から入力された許容誤差（量子化パラメータ）を用いて、入力された画像データに対してフィルタ処理を施し、フィルタ処理が施された画像データを予測処理部７４０に出力する。
【００６８】
ステップ２２５（Ｓ２２５）において、予測処理部７４０は、フィルタ処理部７３０から入力された画像データに対して予測処理を行い、予測部ＩＤ及びそのラン、並びに、予測誤差を生成し、生成された予測部ＩＤ、ラン及び予測誤差を被符号化シンボルとしてエントロピー符号化部７５０に出力する。
【００６９】
ステップ２３０（Ｓ２３０）において、エントロピー符号化部７５０は、予測処理部７４０から入力された被符号化シンボル（予測部ＩＤ、ラン、及び予測誤差）をハフマン符号などにより符号化する。
【００７０】
以上説明したように、本実施形態におけるデータ処理装置２は、予測誤差の分布に基づいて、符号量を評価することができる。
これにより、予測符号化方式においても、エントロピー符号化処理を繰り返すことなく、所望の符号量制御が可能になる。
【００７１】
［変形例１］
次に、第２の実施形態の変形例を説明する。
図１（Ｂ）の分布は、画像によってほとんど変わらない。したがって、予測誤差の分布と違って画像ごとの補正は重要ではないが、この補正を加えることによって制御精度を向上することができる。
ここで補正すべきは、図１（Ｂ）の各プロットの上下方向のずれである。これを補正するには、いずれかの点の符号量を知る必要がある。この符号量は実際にはどの点でもよいのだが、本変形例では量子化なしの場合の符号量を用いる形態を説明する。
図１６（Ａ）は、第１の変形例における符号化プログラム７２の機能構成を例示し、図１６（Ｂ）は、実験結果を例示する図である。なお、本図に示された各構成のうち、図１０に示された構成と実質的に同一のものには同一の符号が付されている。
図１６（Ａ）に例示するように、本変形例における符号化プログラム７２は、予備符号化部７６０をさらに有する。予備符号化部７６０は、予備予測部７００により生成された被符号化シンボル（予測部ＩＤ、ラン及び予測誤差）をエントロピー符号化する。
本例の量子化制御部７２２は、予備符号化部７６０により生成された符号量（量子化なしの場合の符号量）に基づいて、図１（Ｂ）に示すグラフの近似式を補正する。より具体的には、量子化制御部７２２は、図１（Ｂ）に示すグラフが、予備符号化部７６０により生成された符号量（量子化なしの符号量）のプロットを通るようにｙ切片を調整する。
【００７２】
図１６（Ｂ）に示すように、予備符号化による補正を行った場合と、予備符号化による補正を行わなかった場合とを比較すると、予備符号化による補正を行った場合の方が、画像間のｙ方向のずれを吸収できるため、より直線性が向上し、推定精度が向上する。
なお、本図のグラフは、非ラン画素数と符号量の関係を、両軸ともlogをとって表現したものである。
【００７３】
［変形例２］
上記実施形態では、量子化なしの状態で予備予測部７００が予測誤差を算出し、この予測誤差を用いて符号量の評価が行われているが、これに限定されるものではなく、例えば、量子化なしではまず実現できないような圧縮率（例えば写真画像で圧縮率１０以上）を目標とする場合などであれば、適切な量子化を行った後の画像データについて予備予測部７００に予測誤差を算出させ、この予測誤差により符号量を評価させてもよい。
この場合には、予備予測前の量子化は、比較的緩やかであることが望ましい。
【００７４】
［変形例３］
第２の実施形態では、ソースコーダにおける試行をやめるために、所望符号量を得る量子化パラメータを予測誤差の出現頻度分布に基づいて推定している。
しかしながら、本実施形態のフィルタ処理部７３０は、量子化誤差をフィードバックする量子化（誤差拡散を伴う量子化）を行っている。また、過度に同一画素値で塗りつぶすことを避けるために、量子化が連続して行われる場合には、その連続長に応じて閾値（許容誤差）を小さくしている。そのため、フィルタ処理部７３０による量子化は、非常に非線形な効果を有し、予測誤差の分布と許容誤差（閾値）とから高精度に非ラン画素数を推測することが困難である。
図１７（Ａ）は、フィルタ処理部７３０による非線形的な量子化が行われた場合の量子化パラメータ（許容誤差）と非ラン画素数との関係について示すグラフである。なお、本図は、横軸（Ｘ軸）に非ラン画素数、縦軸（Ｙ軸）に相対誤差値をプロットしたものである。ここで、相対誤差値とは、特定の画像に対して、ある非ラン画素数に対応する予測誤差値（絶対値）を指す。
もし許容誤差（量子化パラメータ）が、単純に図１３のＸ軸に対する閾値として働けば、同一量子化パラメータにおける相対誤差値は、画像によらず一定になるはずである。しかし図１７（Ａ）ではそうなっていない。つまり、同じ許容誤差（量子化パラメータ）であっても、実質的な許容誤差のレベルが画像によって異なることになる。したがって、画像と量子化パラメータとが与えられても、許容誤差又は非ラン画素数を高精度に推定することができず、結果として符号量も推定できない。
【００７５】
しかしながら、図１７（Ａ）をよく見てみると、同一量子化パラメータのプロットは、
それぞれ傾きが異なる直線に乗っているように見える。そこで、図１７（Ａ）のプロットを増やし、ＸＹ軸を入れ替え、両対数グラフにプロットすると、図１７（Ｂ）に示すように、直線で、比較的よく近似できていることが分かる。
このように、量子化パラメータが直線でほぼ近似できているということは、画像ではなく量子化パラメータだけに依存して、予測誤差値と非ラン画素との関係が決まるということである。
換言すると、ある量子化パラメータによって得られる非ラン画素数は、画像によって異なるが、その非ラン画素数と相対誤差値との間には一定の関係がある。
一方、図１３で見たように、誤差値と非ラン画素数の累積値とは、統計的に求めることができるから、特定の画像と量子化パラメータとの組に対して、図１３と図１７（Ｂ）との交点を求めれば、それが求める非ラン画素数に対応する。そして、この非ラン画素数と図１（Ｂ）のグラフとによって推定符号量が求められる。
実際の処理では、図１（Ｂ）及び図１７（Ｂ）のデータあるいは近似式は、予め設計して用いられる。近似式は、直線近似を行ってもよいし、非線形近似を行ってもよい。
【００７６】
すなわち、第３の変形例のおけるデータ処理装置２は、図１３のグラフと許容誤差（量
子化パラメータ）とから直接非ラン画素数を求めるのではなく、同一の量子化パラメータに対する相対誤差値と非ラン画素数の関係の一定性（画像非依存性）を利用することで、符号量制御を行う。
より具体的には、本変形例のデータ処理装置２は、図１７（Ｃ）に例示するように、予測誤差の累積出現頻度分布と、図１７（Ｂ）に示すグラフの近似式との交点を算出し、算出された交点のうち、所望の非ラン画素数ｎ（すなわち符号量）に対応する量子化パメータｐを補間により算出する。
【００７７】
図１８（Ａ）は、本変形例における符号化プログラム７４の機能構成を例示し、図１８（Ｂ）は、近似式保持部７７０により保持される近似式を例示する図である。なお、本図に示された各構成のうち、図１０に示された構成と実質的に同一のものには同一の符号が
付されている。
図１８（Ａ）に例示するように、符号化プログラム７４において、近似式保持部７７０は、図１７（Ｂ）に例示するグラフを近似する近似式を、対応する量子化パラメータ（許容誤差）に対応付けて記憶する。本例の近似式保持部７７０は、図１８（Ｂ）に例示するように、複数の量子化パラメータ（許容誤差）それぞれに対応付けて、複数の近似式を保持する。
本変形例の量子化制御部７２４は、符号量評価部７１０により作成された予測誤差の累積出現頻度分布（図１３）と、近似式保持部７７０に保持されている複数の近似式（図１７（Ｂ）のグラフ）との交点を算出し、算出された交点の値を用いて、補間により所望の非ラン画素数に対応する量子化パラメータ（許容誤差）を算出する。
なお、量子化制御部７２４による補間は、量子化パラメータの刻みが小さければ線形補間を行ってもよいし、前後の量子化パラメータの交点を使った多次の補間を行ってもよい。
【００７８】
図１９は、本変形例における符号化処理（Ｓ２４）のフローチャートである。なお、本図に示された各処理のうち、図１５に示された処理と実質的に同一のものには同一の符号が付されている。
図１９に示すように、Ｓ２００において、予備予測部７００（図１８）は、外部から、
画像データが入力されると、入力された画像データについて予測誤差を算出し、算出された予測誤差を符号量評価部７１０に出力する。
Ｓ２０５において、符号量評価部７１０は、予備予測部７００から入力される予測誤差の累積出現頻度分布（図１３）を作成し、作成された累積出現頻度分布を量子化制御部７２４に出力する。
Ｓ２１０において、量子化制御部７２４（図１８）は、図１（Ｂ）に例示するグラフの近似式を用いて、所望の符号量に対応する非ラン画素数ｎを算出する。
【００７９】
ステップ２４０（Ｓ２４０）において、量子化制御部７２４は、符号量評価部７１０から入力された累積出現頻度分布と、近似式保持部７７０に保持されている近似式との交点を算出する。
【００８０】
ステップ２４５（Ｓ２４５）において、量子化制御部７２４は、算出された交点のうち、算出された非ラン画素数ｎと累積出現頻度分布との交点に近い２つの交点を選択する。
【００８１】
ステップ２５０（Ｓ２５０）において、量子化制御部７２４は、選択された２つの交点による補間演算によって、非ラン画素数ｎに対応する量子化パラメータ（許容誤差）を算出し、算出された量子化パラメータをフィルタ処理部７３０に設定する。
【００８２】
Ｓ２２０において、フィルタ処理部７３０は、量子化制御部７２４により設定された許容誤差（量子化パラメータ）を用いて、入力された画像データに対してフィルタ処理を施し、フィルタ処理が施された画像データを予測処理部７４０に出力する。
Ｓ２２５において、予測処理部７４０は、フィルタ処理部７３０から入力された画像データに対して予測処理を行い、予測部ＩＤ及びそのラン、並びに、予測誤差を生成し、生成された予測部ＩＤ、ラン及び予測誤差を被符号化シンボルとしてエントロピー符号化部７５０に出力する。
Ｓ２３０において、エントロピー符号化部７５０は、予測処理部７４０から入力された被符号化シンボル（予測部ＩＤ、ラン、及び予測誤差）をハフマン符号などにより符号化する。
【００８３】
このように、本変形例によれば、画像非依存な特徴量同士の関係を近似表現することにより、非線形的な量子化処理であっても高精度に制御することができる。
なお、本変形例では、量子化パラメータを算出する形態を説明しているが、単純な符号量推定処理に本変形例の原理を利用することもできる。
【図面の簡単な説明】
【００８４】
【図１】（Ａ）は、非ゼロ係数の個数と符号量との関係を示すグラフであり、（Ｂ）は、非ラン画素の出現頻度と符号量との関係を示すグラフである。
【図２】本発明にかかるデータ処理方法が適応されるデータ処理装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
【図３】制御装置２０（図２）により実行され、本発明にかかるデータ処理方法を実現する符号化プログラム５の機能構成を例示する図である。
【図４】量子化部５１０により用いられる量子化テーブルを例示する図である。
【図５】（Ａ）は、種々のスケーリングファクタで量子化した場合の変換係数の分布を示し、（Ｂ）は、種々の量子化係数に対応する量子化間隔を例示する図である。
【図６】符号化プログラム５（図３）による符号化処理（Ｓ１０）のフローチャートである。
【図７】スケーリングファクタを偶数倍した場合の変換係数の分布を推定する方法を説明する図である。
【図８】２つの量子化部が設けられた符号化プログラム５２の機能構成を例示する図である。
【図９】再符号化プログラム６の機能構成を例示する図である。
【図１０】予測符号化方式を適用する符号化プログラム７の機能構成を例示する図である。
【図１１】予備予測部７００及び予測処理部７４０をより詳細に説明する図である。
【図１２】本実施形態における予測符号化処理を説明する図である。
【図１３】予測誤差の累積出現頻度を示すグラフである。
【図１４】フィルタ処理部７３０をより詳細に説明する図である。
【図１５】符号化プログラム７（図１０）による符号化処理（Ｓ２０）のフローチャートである。
【図１６】（Ａ）は、第１の変形例における符号化プログラム７２の機能構成を例示し、（Ｂ）は、実験結果を例示する図である。
【図１７】フィルタ処理部７３０による非線形的な量子化が行われた場合の量子化パラメータの算出方法を説明する図である。
【図１８】（Ａ）は、符号化プログラム７４の機能構成を例示し、（Ｂ）は、近似式保持部７７０により保持される近似式を例示する図である。
【図１９】補間処理を用いて量子化パラメータを算出する符号化処理（Ｓ２４）のフローチャートである。
【符号の説明】
【００８５】
２・・・データ処理装置
５，５２・・・符号化プログラム
５００・・・周波数変換部
５１０・・・量子化部
５１２・・・第１量子化部
５１４・・・第２量子化部
５２０・・・符号量評価部
５３０・・・量子化制御部
５４０・・・変換係数バッファ
５５０・・・ハフマン符号化部
５６０・・・符号化部
６・・・再符号化部
６００・・・ハフマン復号化部
７，７２，７４・・・符号化プログラム
７００・・・予備予測部
７１０・・・符号量評価部
７２０，７２２，７２４・・・量子化制御部
７３０・・・フィルタ処理部
７４０・・・予測処理部
７５０・・・エントロピー符号化部
７６０・・・予備符号化部
７７０・・・近似式保持部
【図１】
2011142660.tif 000003
【図２】
2011142660.tif 000004
【図３】
2011142660.tif 000005
【図４】
2011142660.tif 000006
【図５】
2011142660.tif 000007
【図６】
2011142660.tif 000008
【図７】
2011142660.tif 000009
【図８】
2011142660.tif 000010
【図９】
2011142660.tif 000011
【図１０】
2011142660.tif 000012
【図１１】
2011142660.tif 000013
【図１２】
2011142660.tif 000014
【図１３】
2011142660.tif 000015
【図１４】
2011142660.tif 000016
【図１５】
2011142660.tif 000017
【図１６】
2011142660.tif 000018
【図１７】
2011142660.tif 000019
【図１８】
2011142660.tif 000020
【図１９】
2011142660.tif 000021