符号化対象として入力された画像データに対して周波数変換を施して得られた各周波数における変換係数を、前記画像データを異なる表現形式で表現する中間データとして生成する中間データ生成手段と、前記中間データ生成手段により生成された中間データを符号データに変換する符号化手段と、前記中間データ生成手段により生成された各周波数における変換係数のうちゼロ以外の値を有する変換係数の個数と符号量との関係に基づいて、前記符号化手段により生成される符号データの符号量を推定する符号量評価手段とを有するデータ処理装置。前記符号量評価手段による評価結果に基づいて、所望の符号量を達成するための符号化パラメータを決定するパラメータ決定手段と、前記パラメータ決定手段により決定された符号化パラメータに応じて、入力された画像データ又は中間データに対して非可逆なデータ処理を行う非可逆処理手段とをさらに有する請求項1に記載のデータ処理装置。前記符号量評価手段は、量子化間隔を奇数倍した場合の変換係数の数を算出し、算出された変換係数の数に基づいて、符号量を評価する請求項1に記載のデータ処理装置。前記符号量評価手段によって推定された符号量が所望の符号量以下である場合、前記符号化手段は、前記非可逆処理手段によって非可逆なデータ処理が施された中間データを符号データに変換する請求項2に記載のデータ処理装置。前記符号量評価手段によって推定された符号量が所望の符号量を超える場合、前記パラメータ決定手段は、前記変換係数の個数と符号量との関係を用いて、所望の符号量に対応するゼロ以外の値を有する変換係数の個数を算出し、算出した変換係数の個数に基づいて符号化パラメータを決定する請求項2に記載のデータ処理装置。符号化対象として入力された画像データに対して周波数変換を施して得られた各周波数における変換係数を、前記画像データを異なる表現形式で表現する中間データとして生成するステップと、生成された中間データを符号データに変換するステップと、生成された各周波数における変換係数のうちゼロ以外の値を有する変換係数の個数と符号量との関係に基づいて、前記符号化手段により生成される符号データの符号量を推定するステップと、符号量の評価結果に応じて、符号化パラメータを決定するステップと、決定された符号化パラメータに応じて、生成された中間データに対して非可逆なデータ処理を行うステップと、非可逆なデータ処理が施された中間データを符号データに変換するステップとをコンピュータに実行させるプログラム。本発明は、上述した背景からなされたものであり、入力データの符号化効率を評価し、評価結果に応じたデータ処理を行うデータ処理装置を提供することを目的とする。[データ処理装置]上記目的を達成するために、本発明にかかるデータ処理装置は、符号化対象として入力された画像データに対して周波数変換を施して得られた各周波数における変換係数を、前記画像データを異なる表現形式で表現する中間データとして生成する中間データ生成手段と、前記中間データ生成手段により生成された中間データを符号データに変換する符号化手段と、前記中間データ生成手段により生成された各周波数における変換係数のうちゼロ以外の値を有する変換係数の個数と符号量との関係に基づいて、前記符号化手段により生成される符号データの符号量を推定する符号量評価手段とを有する。好適には、前記符号量評価手段による評価結果に基づいて、所望の符号量を達成するための符号化パラメータを決定するパラメータ決定手段と、前記パラメータ決定手段により決定された符号化パラメータに応じて、入力された画像データ又は中間データに対して非可逆なデータ処理を行う非可逆処理手段とをさらに有する。好適には、前記符号量評価手段は、量子化間隔を奇数倍した場合の変換係数の数を算出し、算出された変換係数の数に基づいて、符号量を評価する。好適には、前記符号量評価手段によって推定された符号量が所望の符号量以下である場合、前記符号化手段は、前記非可逆処理手段によって非可逆なデータ処理が施された中間データを符号データに変換する。好適には、前記符号量評価手段によって推定された符号量が所望の符号量を超える場合、前記パラメータ決定手段は、前記変換係数の個数と符号量との関係を用いて、所望の符号量に対応するゼロ以外の値を有する変換係数の個数を算出し、算出した変換係数の個数に基づいて符号化パラメータを決定する。好適には、前記中間データ生成手段は、入力データと予測データとが一致したことを示す一致情報、及び、入力データと予測データとの差分を示す予測誤差を前記中間データとして生成し、前記符号量評価手段は、前記中間データ生成手段により算出された予測誤差の分布情報を生成する。[プログラム]また、本発明にかかるプログラムは、符号化対象として入力された画像データに対して周波数変換を施して得られた各周波数における変換係数を、前記画像データを異なる表現形式で表現する中間データとして生成するステップと、生成された中間データを符号データに変換するステップと、生成された各周波数における変換係数のうちゼロ以外の値を有する変換係数の個数と符号量との関係に基づいて、前記符号化手段により生成される符号データの符号量を推定するステップと、符号量の評価結果に応じて、符号化パラメータを決定するステップと、決定された符号化パラメータに応じて、生成された中間データに対して非可逆なデータ処理を行うステップと、非可逆なデータ処理が施された中間データを符号データに変換するステップとをコンピュータに実行させる。本発明のデータ処理装置によれば、入力データの符号化効率を評価し、評価結果に応じたデータ処理を行うことができる。まず、本発明の理解を助けるために、その背景及び概略を説明する。符号化処理は、入力データを中間データに変換するソースコーダと、中間データを符号データに変換するエントロピーコーダとによって実現される。また、符号量とは、エントロピーコーダの出力データ量である。符号量を既定値以下に制限したい場合がある。しかしながら、可逆な符号化処理では、圧縮率に限界があるため、量子化処理などを用いた非可逆な符号化方式例えば、JPEGが用いられている。非可逆な符号化方式とは、入力データ又は中間データを非可逆に変更して、これらの情報量を減少させ、符号化効率を向上させるものである。しかしながら、このような非可逆処理例えば、量子化処理は、データの劣化例えば、画質の低下を伴う。したがって、データの劣化を最小限に抑えながら所望の圧縮率を実現するためには、量子化処理などの非可逆処理を行わない場合、又は、所定の非可逆処理を行った場合の符号量を評価して、必要十分な非可逆処理をさがす必要がある。例えば、カットアンドトライによって、実際の符号データのデータ量を評価しながら、量子化処理の程度を規定する量子化パラメータが決定されている。しかしながら、エントロピーコーダは、ビットバイビットの処理になるので、一般に処理負荷が重い。そのため、エントロピーコーダの処理前に符号量を推定することができれば、必要のないエントロピーコーダの処理を省くことで処理負荷を軽減することができる。ここで、エントロピーコーダは、純粋に統計量に基づいて設計されるため、エントロピーコーダに入力される中間データつまりソースコーダの出力について適切な統計量を知っていれば、最終的な符号量を推定することができる。そこで、本実施形態におけるデータ処理装置2は、ソースコーダにより生成された中間データに基づいて、符号量を評価し、評価結果に応じたデータ処理を行う。本例では、符号量の評価結果に応じた符号化処理を説明する。例えば、変換符号化方式の例として、JPEG方式について説明する。JPEG方式は、エントロピーコーダに2次元ハフマンHuffman符号化を採用している。2次元ハフマン符号化は、ゼロ係数ゼロの値を有するDCT係数をランレングス符号化し、非ゼロ係数ゼロ以外の値を有するDCT係数をハフマン符号化する働きがある。したがって、JPEG方式により生成される符号データの符号量は、非ゼロ係数の個数に依存することが予想される。図1Aは、非ゼロ係数の個数と符号量との関係を示すグラフである。図1Aに示されたグラフは、同一画像において量子化パラメータスケーリングファクタを変更した場合の実測値をプロットしたものである。図1Aに示すように、非ゼロ係数の個数とほぼ比例して符号量が変化することがわかる。そこで、変換符号化方式を用いる場合には、データ処理装置2は、変換係数中間データのうち、非ゼロ係数の個数の統計値全個数、出現確率などを算出し、算出された統計値に基づいて、符号量を評価する。なお、非ゼロ係数の個数をカウントするためには、中間データ列をメモリに格納することになるが、このような処理は、エントロピー符号化を最適化するために一般的に行われる処理なので、特別なオーバーヘッドにはならない。例えば、JPEG方式は、ハフマン符号を最適化するために、変換係数列をメモリに蓄積し、その統計量に基づいてハフマン符号を最適設計する。また、予測符号化方式についても同様に符号量を評価することができる。すなわち、予測符号化方式のうち、単純なランレングス符号化方式又はLZ符号化方式のようにランレングスを使う符号化方式などでは、ランがどれくらいとれないか、つまり予測がどのくらい外れるかが符号量に影響することが考えられる。例えば、複数の予測方法が設けられた符号化方式の場合、非ラン画素全ての予測が外れた画素の個数が符号量に影響することが考えられる。図1Bは、非ラン画素の出現頻度と符号量との関係を示すグラフである。図1Bに示されたグラフは、8種類の画像において量子化パラメータ解像度パラメータを変更した場合の実測値をプロットしたものである。図1Bに示すように、画像によって定量的な符号量の違い上下のずれはあるが、同一画像においては強い相関を示す。そこで、予測符号化方式を用いる場合には、データ処理装置2は、入力データと予測データとの一致情報から、予測外れの出現頻度を算出し、算出された予測外れの出現頻度に基づいて、符号量を評価する。なお、JPEG方式などの変換符号化方式では、変換係数の量子化処理非可逆処理を用いて符号量を制御するが、予測符号化方式では、例えば、予測時の許容誤差を大きくしたり、空間フィルタによって画素値を塗りつぶしたりすることで、量子化効果を得る。また、予測符号化方式におけるエントロピー符号化は、2つの単位で処理を行う。つまり、1非ラン画素の1画素単位処理、及び、2ラン画素のラン単位処理、の2つである。本例では、支配的である1だけを考慮して符号量を評価しているが、2を考慮するためにランの個数ラン長ではなくをも用いて符号量を評価してもよい。以下、変換符号化方式に本発明を適用した具体例を第1の実施形態で説明し、予測符号化方式に本発明を適用した具体例を第2の実施形態で説明する。[ハードウェア構成]まず、本実施形態におけるデータ処理装置2のハードウェア構成を説明する。図2は、本発明にかかるデータ処理方法が適応されるデータ処理装置2のハードウェア構成を、制御装置20を中心に例示する図である。図2に例示するように、データ処理装置2は、CPU202及びメモリ204などを含む制御装置20、通信装置22、HDDCD装置などの記録装置24、並びに、LCD表示装置あるいはCRT表示装置及びキーボードタッチパネルなどを含むユーザインターフェース装置UI装置26から構成される。データ処理装置2は、例えば、プリンタ装置10に設けられた処理装置であり、通信装置22又は記録装置24などを介して画像データを取得し、取得された画像データを符号化する。[符号化プログラム]図3は、制御装置20図2により実行され、本発明にかかるデータ処理方法を実現する符号化プログラム5の機能構成を例示する図である。図2に例示するように、符号化プログラム5は、周波数変換部500、量子化部510、符号量評価部520、量子化制御部530、変換係数バッファ540、及びハフマン符号化部550を有する。符号化プログラム5において、周波数変換部500は、入力された画像データ入力データに対して変換処理を施して、各周波数の係数変換係数を生成する。生成される変換係数は中間データの一例である。本例の周波数変換部500は、入力された画像データに対して離散コサイン変換DCTを施して、8×8のDCT係数を生成する。量子化部510は、周波数変換部500により生成された変換係数に対して量子化処理を施す。本例の量子化部510は、図4に例示する量子化テーブルを用いて、8×8のDCT係数を量子化する。より具体的には、量子化部510は、8×8のDCT係数の値を、量子化テーブル図4の対応する量子化係数で除算し、その商を量子化後のDCT係数とする。符号量評価部520は、周波数変換部500により生成された変換係数、又は、量子化部510により量子化された変換係数に基づいて、符号量を評価する。より具体的には、符号量評価部520は、変換係数のうち、ゼロ以外の値を有する変換係数非ゼロ係数の個数の統計値非ゼロ係数の全個数、出現確率などを算出し、算出された統計値に基づいて、符号量を推定する。本例の符号量評価部520は、生成されたDCT係数の中から、非ゼロ係数の個数をカウントし、図1Aに示したグラフの近似式を用いて、非ゼロ係数の個数に対応する符号量を算出する。また、本例の符号量評価部520は、図1Aに示したグラフの近似式を用いて、所望の符号量に対応する非ゼロ係数の個数を算出する。量子化制御部530は、符号量評価部520による符号量の評価結果に基づいて、量子化部510による量子化処理を制御する。本例の量子化制御部530は、符号量評価部520により推定された符号量が所望の符号量以下である場合には、変換係数をそのままハフマン符号化するよう変換係数バッファ540に指示し、推定された符号量が所望の符号量を超える場合には、量子化部510に対して変換係数を再量子化するよう指示する。本例の量子化制御部530は、所望の符号量に対応する非ゼロ係数の個数が符号量評価部520により算出されると、算出された非ゼロ係数の個数を実現する量子化パラメータを決定し、決定された量子化パラメータを量子化部510に設定する。より具体的には、本例の量子化制御部530は、所望の符号量に対応する非ゼロ係数の個数を実現するようなスケーリングファクタを算出する。変換係数バッファ540は、量子化部510から入力された変換係数DCT係数を保持し、量子化制御部530からの指示に応じて、保持されている変換係数をハフマン符号化部550に出力する。ハフマン符号化部550は、変換係数バッファ540から入力された変換係数DCT係数をハフマン符号で符号化する。図4は、量子化部510により用いられる量子化テーブルを例示する図である。図4に例示するように、8×8のブロックの位置によって量子化係数が異なる。すなわち、本図に例示されている量子化テーブルは、推奨量子化テーブルであり、高域に行くほど量子化を粗くするために、高域の量子化係数は、低域例えば、DC成分よりも大きな値を有する。本例の量子化部510は、図4に例示する量子化テーブルの各係数に対して、量子化制御部530により設定されたスケーリングファクタを乗じて、各DCT係数に適用すべき量子化係数を決定し、決定された各量子化係数で各DCT係数を除算する。図5Aは、種々のスケーリングファクタで量子化した場合の変換係数の分布を示し、図5Bは、種々の量子化係数に対応する量子化間隔を例示する図である。スケーリングファクタ図中のSFが大きくなるに従ってすなわち、量子化間隔が広がるに従って、量子化後の変換係数の分布は、ゼロ値の方向に移動していく。例えば、SF=1050と、SF=5050とを比較すると、量子化係数が5倍違うので、スケーリングファクタが1050である場合に0から2に存在した変換係数値は、スケーリングファクタが5050になると、0に量子化される。厳密には、量子化テーブルを整数化する必要があるので、誤差が含まれることがある。これは、図5Bに例示する量子化間隔を見れば明らかである。このように、符号量評価部520は、より低圧縮の量子化結果変換係数の分布に基づいて、より高圧縮の量子化で得られる変換係数の分布すなわち、非ゼロ係数の個数、又は、符号量を推定することができる。また、符号量評価部520は、基準となる量子化間隔本例では、スケーリングファクタを奇数倍した場合の符号量を評価することが望ましい。図5Bに例示するように、量子化係数が1動いても、切上げ又は切下げの閾値は、0.5しか動かないので、量子化係数が2倍になっても量子化後の値が1/2になるとは限らない。例えば、1.2の変換係数は、量子化係数が1でも2でも量子化すると1になる。換言すると、量子化係数1の場合に量子化区間1に含まれる各変換係数0.5~1.5は、量子化係数2で量子化されると、量子化区間0に含まれるのか、量子化区間1に含まれることになるのを推定することができない。したがって、符号量評価部520は、量子化係数を奇数倍した場合の符号量変換係数の分布、又は、非ゼロ係数の個数を推定することにより、より高い精度の推定を実現することができる。[全体動作]次に、データ処理装置2符号化プログラム5の全体動作を説明する。図6は、符号化プログラム5図3による符号化処理S10のフローチャートである。図6に示すように、ステップ100S100において、周波数変換部500図3は、外部から、画像データが入力されると、入力された画像データを8×8の画像ブロックに分割し、分割された各画像ブロックに対して離散コサイン変換を施して、8×8ブロックのDCT係数を生成し、生成されたDCT係数を量子化部510に出力する。ステップ105S105において、量子化部510は、量子化制御部530により設定されたスケーリングファクタSFに基づいて、量子化係数を算出し、算出された量子化係数を用いて、周波数変換部500から入力されたDCT係数を量子化し、量子化されたDCT係数を符号量評価部520及び変換係数バッファ540に出力する。なお、量子化制御部530は、入力された画像データに対する最初の量子化処理に対しては、最小のSFを初期値として設定する。ステップ110S110において、符号量評価部520は、量子化部510から入力されたDCT係数量子化後のヒストグラムを作成する。ステップ115S115において、符号量評価部520は、図1Aに示されたグラフの近似式を用いて、非ゼロ係数の個数に対応する符号量推定符号量を算出し、算出された符号量を量子化制御部530に出力する。ステップ120S120において、符号化プログラム5は、符号量評価部520により算出された符号量推定符号量が所望の符号量以下である場合に、S130の処理に移行し、算出された符号量が所望の符号量を超える場合に、S125の処理に移行する。ステップ125S125において、符号量評価部520は、図1Aに示されたグラフの近似式を用いて、所望の符号量に対応する非ゼロ係数の個数目標値を算出し、算出された非ゼロ係数の個数と、DCT係数のヒストグラムとを量子化制御部530に出力する。量子化制御部530は、符号量評価部520から入力された非ゼロ係数の個数目標値と、DCT係数のヒストグラムとに基づいて、適用すべきスケーリングファクタを決定し、決定されたスケーリングファクタを量子化部510に設定する。符号化プログラム5は、S105の処理に戻り、新たに設定されたスケーリングファクタを用いて、DCT係数の量子化を行い、量子化後のDCT係数に基づいて符号量の推定を行う。ステップ130S130において、量子化制御部530は、推定符号量が所望の符号量以下になると、変換係数バッファ540にDCT係数を出力するよう指示する。変換係数バッファ540は、量子化部510から入力されたDCT係数最新のDCT係数をハフマン符号化部550に出力する。ハフマン符号化部550は、変換係数バッファ540から入力されたDCT係数をハフマン符号で符号化し、外部に出力する。なお、本例では、所望の符号量に対応する非ゼロ係数の個数目標値を算出して、算出された非ゼロ係数の目標値に応じたスケーリングファクタを決定しているが、これに限定されるものではなく、例えば、符号化プログラム5は、推定された符号量が所望の符号量以下となるまで、既定の規則に従ってスケーリングファクタを大きくしていってもよい。以上説明したように、本実施形態におけるデータ処理装置2は、変換係数の分布に基づいて、符号量を評価することができる。これにより、ハフマン符号化処理を繰り返すことなく、所望の符号量制御が可能になる。[変形例1]以下、上記実施形態の変形例を説明する。上記実施形態では、スケーリングファクタを奇数倍でのみ変化させることにより、変換係数の分布を高精度に推定していたが、これに限定されるものではなく、例えば、スケーリングファクタを偶数倍又は実数倍した場合の変換係数の分布を推定してもよい。図7は、スケーリングファクタを偶数倍した場合の変換係数の分布を推定する方法を説明する図である。図7Aに示すように、スケーリングファクタを偶数倍又は実数倍した場合、新たなスケーリングファクタによる量子化区間の境界が元の量子化区間の境界と重ならないため、元の量子化区間に属する変換係数が、新たなスケーリングファクタによる量子化でいずれの量子化区間に組み込まれるか推定できない。そこで、本変形の符号量評価部520は、新たな量子化区間の境界と重なる元の量子化区間図7Bの量子化区間1が存在する場合には、この量子化区間に含まれる変換係数の個数を、図7Cに例示するように、新たな量子化区間に分配する。具体的には、符号量評価部520は、変換係数の頻度値を離散値でなく連続補間してから、新たな量子化区間の頻度値を算出する。なお、連続補間は、線形補間のほか、多次補間やスプライン補間などであってもよい。[変形例2]上記実施形態では、1つの量子化部510が設けられているが、変形例2では、図8に例示するように、2つの量子化部第1量子化部512及び第2量子化部514が設けられている。図8に例示する第1量子化部512は、既定のスケーリングファクタ比較的小さなSFによって量子化すなわち、よりゆるい量子化を行い、第2量子化部514は、所望の符号量を得られるようなスケーリングファクタによって量子化を行う。第2量子化部514による量子化は、第1量子化部512によりもきつい量子化非可逆性の大きな量子化となる。また、本変形例では、第1量子化部512により量子化された変換係数が、第2量子化部514によって重畳的に量子化される。このように、符号化プログラム52が第1量子化部512及び第2量子化部514を有することにより、1パスで符号量制御を行うことができる。なお、上記実施形態及び変形例では、スケーリングファクタによる量子化処理の調整だけを行っているが、量子化テーブルに非線形な変更を加えたい場合には、第1量子化部512は、量子化係数が全て1の量子化テーブルを用いて量子化を行ってもよい。この場合の量子化は、係数の整数化だけを行い、それ以上の量子化を行わないのと同値である。そして、第2量子化部514は、8×8ブロック内の位置毎に、量子化係数を設定する。これにより、任意の量子化係数に対して、非ゼロ係数の個数を見積もることが可能となる。なお、第1量子化部512の量子化係数を全て0.5にしてもよい。この場合、変換係数の分布が誤差なしに推定できる。また、量子化制御部530は、非ゼロ係数の個数が所望値に収まるように量子化テーブルを決定する場合に、既定の量子化テーブル群の中から、1つの量子化テーブルを選択してもよいし、量子化テーブルにかけるスケーリングファクタを微調整してもよい。また、量子化制御部530は、量子化の度合いに応じて、非線形に量子化テーブルを算出するようなアルゴリズムを備えていてもよい。例えば、量子化が激しくなると低域の誤差が知覚しやすくなるので、量子化制御部530は、全体の量子化係数が大きくなる場合に、高域の量子化係数をより大きくするようなアルゴリズムで量子化テーブルを生成することが好ましい。[変形例3]上記実施形態では、画像データを符号データに変換する形態を説明したが、これに限定されるものではなく、例えば、入力された符号データを再符号化してもよい。図9は、再符号化プログラム6の機能構成を例示する図である。なお、本図に示された各構成のうち、図8に示された構成と実質的に同一のものには同一の符号が付されている。図9に例示するように、再符号化プログラム6は、ハフマン復号化部600、符号量評価部520、量子化制御部530、変換係数バッファ540、量子化部514、及びハフマン符号化部550を有する。再符号化プログラム6において、ハフマン復号化部600は、入力された符号データを復号化して、変換係数を生成し、生成された変換係数を符号量評価部520及び変換係数バッファ540に出力する。符号量評価部520は、ハフマン復号化部600から入力された変換係数に基づいて、変換係数のヒストグラムを作成し、作成されたヒストグラムを量子化制御部530に出力する。量子化制御部530は、符号量評価部520により作成された変換係数のヒストグラムに基づいて、所望の符号量を達成する量子化係数を決定し、決定された量子化計数を量子化部514に設定する。量子化部514は、変換係数バッファ540から入力された変換係数を、量子化制御部530により設定された量子化係数を用いて量子化し、量子化された変換係数をハフマン符号化部550に出力する。ハフマン符号化部550は、量子化部514により量子化された変換係数をハフマン符号で符号化する。このように、本例の再符号化プログラム6は、再符号化処理において、中間データ本例では変換係数の統計情報に基づいて符号量制御を行うことができる。例えば、プリンタドライバなどで再符号化する場合に本変形例は好適である。[第2実施形態]次に、第2の実施形態を説明する。上記実施形態では、本発明を変換符号化方式に適用する形態を説明したが、本実施形態では、本発明を予測符号化方式に適用する形態を説明する。本実施形態では、被符号化シンボル中間データの統計を使うことでエントロピーコーダの試行をやめることができるが、ソースコーダにおける試行をやめるためには、所望符号量を得る量子化パラメータを推定する必要がある。そのためには、ソースコーダから出力される中間データ例えば、予測の的中数、予測誤差の個数を計数するだけでなく、その分布などから必要な量子化の強さを解析的に予測することが必要になる。予測符号化方式では、単純なランレングス符号化方式やLZ符号化方式のようにランレングスを使う符号化方式の場合、ランがどれくらいとれないか、つまり予測がどのくらい外れるかが符号量に影響する。ここで、予測が的中してランのとれる画素をラン画素、ランのとれない画素を非ラン画素と呼ぶことにする。図1Bに示すように、予測符号化方式による符号量は、非ラン画素の出現頻度に依存するが、その依存の程度は、量子化のかけ方によって異なる。本実施形態では、予測が外れて予測誤差が発生した場合でも、閾値以下の誤差であれば誤差0とみなす量子化を具体例として説明する。このタイプの量子化は、国際標準JPEG-LSなどでも採用されている。このような量子化では、閾値以下の予測誤差は全て0に量子化され、ラン画素になる。したがって、量子化前の予測誤差の分布がわかっていれば、ラン画素と非ラン画素の個数の変化が推定できることになる。なお、ここで推定可能なのは、非ラン画素の個数の推定であって、測定ではないことに注意する必要がある。つまり、ここでとっている統計は量子化のないときあるいは別の量子化が行われたときの分布に基づくものであって、実際の量子化が行われるときには量子化された画素値が出現するために、予測誤差の出現頻度分布もその影響を受ける。つまり、推定値は実測値に対してある程度の誤差を含む。以下、本実施形態をより具体的に説明する。図10は、第2の実施形態における符号化プログラム7の機能構成を例示する図である。図10に例示するように、符号化プログラム7は、予備予測部700、符号量評価部710、量子化制御部720、フィルタ処理部730、予測処理部740、及びエントロピー符号化部750を有する。符号化プログラム7において、予備予測部700は、予測処理部740により生成される中間データ本例では、予測が的中したことを示す情報、及び、予測が外れた場合に生成される予測誤差の少なくとも一部を生成する。本例の予備予測部700は、予測処理部740と同一の予測方法を用いて、予測が的中した予測方法を示す予測部ID及びその連続数、並びに、いずれの予測方法も外れた場合に生成される予測誤差を生成するが、これに限定されるものではなく、例えば、予測誤差のみを生成してもよい。符号量評価部710は、予備予測部700により生成された中間データに基づいて、符号量を評価する。本例の符号量評価部710は、生成された予測誤差の頻度分布ヒストグラムを作成し、作成された頻度分布に基づいて、符号量を推定する。量子化制御部720は、符号量評価部710による符号量の評価結果に基づいて、フィルタ処理部730による量子化処理を制御する。本例の量子化制御部720は、符号量評価部710により推定された符号量が所望の符号量以下である場合には、入力された画像データを量子化することなく符号化するようフィルタ処理部730に指示し、推定された符号量が所望の符号量を超える場合には、入力された画像データに対して量子化処理を施すようフィルタ処理部730に指示する。また、量子化制御部720は、符号量評価部710により作成されたヒストグラムに基づいて、所望の符号量を達成できる量子化パラメータを推定し、推定された量子化パラメータをフィルタ処理部730に設定する。フィルタ処理部730は、量子化制御部720により設定された量子化パラメータに応じて、予測処理部740による予測の的中率が向上するような量子化処理を画像データに施す。本例のフィルタ処理部730は、量子化制御部720により設定された量子化パラメータ許容誤差の範囲内で、入力された画像データを塗り潰すことにより、予測処理部740による予測の的中率を向上させる。予測処理部730は、既定の予測方法で、フィルタ処理部730から入力された画像データについて予測データを生成し、生成された予測データと、入力された画像データとを比較して、予測データと画像データとの一致情報中間データを生成する。本例の予測処理部730は、注目画素の近傍にある画素参照画素の画素値を予測値とし、予測値と注目画素値とが一致する場合には、一致した旨を示す情報予測部ID及びその連続数ランを出力し、予測値が注目画素値と一致しない場合に、予測値と注目画素値との差分を予測誤差として出力する。エントロピー符号化部750は、予測処理部730から入力される一致情報中間データをエントロピー符号化する。本例のエントロピー符号化部750は、予測処理部730から入力される予測部ID及びラン、並びに予測誤差をエントロピー符号化する。図11は、予備予測部700及び予測処理部740の構成をより詳細に説明する図である。なお、本例では、予備予測部700及び予測処理部740は、同じ構成を有するが、これに限定されるものではなく、例えば、予備予測部700にラン計数部748は不要である。以下、予測処理部740の構成として説明する。図11に示すように、予測処理部740は、予測部742、予測誤差算出部744、選択部746、及びラン計数部748を有する。予測部742は、図12Aに例示する既定の参照位置A~Dの画素値を、予測値として選択部746に対して出力する。予測誤差算出部744は、図12Aに示す参照位置Aの画素値と、注目画素Xの画素値との差分を予測誤差値として選択部746に対して出力する。選択部746は、予測部742から入力された予測値それぞれと、注目画素Xの画素値とを比較して、一致しているか否かを判定する。選択部746は、判定の結果、予測が的中した予測値参照位置があればその識別番号すなわち予測部IDを、いずれも的中しなかった場合は、予測誤差算出部744から入力された予測誤差値を、ラン計数部578及び図10のエントロピー符号化部750予備予測部700の場合には符号量評価部710に対して出力する。ラン計数部748は、識別番号予測部IDが入力された場合には、予測部IDに対応する内部カウンタを1だけ増やす。また、ラン計数部748は、予測誤差が入力された場合すなわち、全ての予測が外れた場合には、各予測部IDに対応する内部カウンタの値と参照位置IDとをランデータとしてエントロピー符号化750図10に対して出力する。図12は、予測処理部740及びエントロピー符号化部750による符号化処理を説明する図である。図12Aに例示するように、本例の予測符号化処理では、注目画素Xの画素値を符号化する場合に、他の画素本例では、参照位置A~Dの画素を参照して、注目画素Xの予測値を生成し、生成された予測値と注目画素Xの画素値との一致情報を符号化する。ここで、一致情報とは、予測値と真の値との一致度合いを示す情報であり、例えば、一致したか否か、差分が既定の範囲内であるか否か、又は、予測値と真の値との差分値すなわち、予測誤差値などである。本例の参照位置A~Dは、注目画素Xとの相対位置として設定されている。具体的には、参照位置Aは、注目画素Xの主走査方向上流に設定され、参照位置B~Dは、注目画素Xの上方副走査方向上流の主走査ライン上に設定されている。いずれかの参照位置から読み出された画素値予測値が注目画素Xの画素値と一致した場合すなわち、いずれかの参照位置で予測が的中した場合には、一致した参照位置を特定する情報以下、予測部IDが注目画素Xの被符号化シンボル中間データとして出力される。また、同一の参照位置から読み出される予測値が、複数の注目画素Xの画素値と連続して一致する場合には、この参照位置の予測部IDと、連続数ランとがこれらの注目画素Xの被符号化シンボルとして出力される。したがって、連続して一致する回数連続一致長が多いほど、符号化効率が高いことになる。本例の予測符号化方式では、予測部IDは、図12Bに例示するように、符号に対応付けられている。また、本例の予測符号化方式では、いずれの参照位置の画素値予測値も注目画素Xの画素値と一致しない場合には、参照位置Aの画素値と注目画素Xの画素値との差分予測誤差値が注目画素Xの被符号化シンボル中間データとして出力され、符号化される。これによって生成される符号データは、図12Cに例示するように、予測誤差を示す符号、予測値が的中した参照位置に対応する符号、及び、その連続数によって構成される。図13は、符号量評価部710により作成される予測誤差の累積頻度分布を例示する図である。図13に示すように、画像によって予測誤差の分布が大きく異なる。図1Bに例示したグラフ非ラン画素の出現頻度vs符号量と並べてみると、予測誤差が小さい値にまとまっている画像1は、同一の量子化パラメータ許容誤差における非ラン画素数と符号量の減少効果が高く、そうでない画像2は、その逆の結果を示している。本例の符号量評価部710及び量子化制御部720は、この原理に基づいて、所定の量子化を行った場合の符号量を評価する。図14は、フィルタ処理部730の構成をより詳細に説明する図である。図14に示すように、フィルタ処理部730は、予測部732、画素値変更処理部734、及び誤差分配処理部736を有する。予測部736は、図12Aに例示する複数の参照位置A~Dの画素値それぞれを注目画素Xの予測値として、画素値変更処理部734に対して出力する。なお、本例では、参照位置A~Dそれぞれの画素値を予測値としているが、これに限定されるものではなく、少なくとも1つの参照位置の画素値を予測値とすれば足りる。画素値変更処理部734は、注目画素Xの画素値と、予測部732から入力された予測値それぞれとを比較し、画素値と予測値との差分が符号化パラメータにより規定された許容誤差より小さい場合には、その予測値を後段予測処理部740に対して出力し、さらに、注目画素の画素値と予測値との差分以下、誤差値を誤差分配処理部736に対して出力する。なお、複数の予測値について差分が許容誤差の範囲内となった場合には、差分が最も小さい予測値が適用される。また、画素値変更処理部734は、画素値と予測値との差分が符号化パラメータ許容誤差より小さい場合には、徐々に許容誤差を小さくしていく。一方、画素値変更処理部736は、注目画素Xの画素値と予測値との差分がいずれも許容誤差以上である場合には、注目画素Xの画素値をそのまま後段予測処理部740に対して出力し、誤差分配処理部736に対して0を出力する。すなわち、フィルタ処理部730は、予測誤差が許容誤差以上である場合には、注目画素Xの画素値を変換せず、許容誤差以上の誤差値を誤差分配しない。換言すると、許容誤差符号化パラメータが大きいほど、入力画像の画素値が変更されて、後段の予測処理部740による予測の的中率が向上し、圧縮率が高くなる。誤差分配処理部736は、画素値変更処理部734から入力された誤差値に基づいて、誤差分配値を生成し、画像データに含まれる所定の画素の画素値にこれを加算する。誤差分配値は、例えば、重み行列を用いた誤差拡散法や平均誤差最小法に従って、誤差値に重み行列の値を掛け合わせて算出される。このように、フィルタ処理部730は、後段の予測処理部740による予測が的中しやすくなるように画像データに含まれる画素値を変換する。その際に、フィルタ処理部730は、画素値の変更により生じた真の画素値との差分を、周辺画素に分配して、画素値の変更を巨視的に目立たなくする。[全体動作]次に、第2の実施形態におけるデータ処理装置2符号化プログラム7の全体動作を説明する。図15は、符号化プログラム7図10による符号化処理S20のフローチャートである。図15に示すように、ステップ200S200において、予備予測部700図10は、外部から、画像データが入力されると、入力された画像データについて予測誤差注目画素Xの画素値と参照位置Aの画素値との差分値を算出し、算出された差分値予測誤差を符号量評価部710に出力する。ステップ205S205において、符号量評価部710は、予備予測部700から入力される予測誤差の出現頻度分布ヒストグラムを作成し、作成された出現頻度分布を量子化制御部720に出力する。ステップ210S210において、量子化制御部720は、図1Bに例示するグラフの近似式を用いて、所望の符号量に対応する非ラン画素数を算出する。ステップ215S215において、量子化制御部720は、符号量評価部710から入力された出現頻度分布に基づいて、算出された非ラン画素数を達成する許容誤差量子化パラメータを決定し、決定された量子化パラメータをフィルタ処理部730に出力する。ステップ220S220において、フィルタ処理部730は、量子化制御部720から入力された許容誤差量子化パラメータを用いて、入力された画像データに対してフィルタ処理を施し、フィルタ処理が施された画像データを予測処理部740に出力する。ステップ225S225において、予測処理部740は、フィルタ処理部730から入力された画像データに対して予測処理を行い、予測部ID及びそのラン、並びに、予測誤差を生成し、生成された予測部ID、ラン及び予測誤差を被符号化シンボルとしてエントロピー符号化部750に出力する。ステップ230S230において、エントロピー符号化部750は、予測処理部740から入力された被符号化シンボル予測部ID、ラン、及び予測誤差をハフマン符号などにより符号化する。以上説明したように、本実施形態におけるデータ処理装置2は、予測誤差の分布に基づいて、符号量を評価することができる。これにより、予測符号化方式においても、エントロピー符号化処理を繰り返すことなく、所望の符号量制御が可能になる。[変形例1]次に、第2の実施形態の変形例を説明する。図1Bの分布は、画像によってほとんど変わらない。したがって、予測誤差の分布と違って画像ごとの補正は重要ではないが、この補正を加えることによって制御精度を向上することができる。ここで補正すべきは、図1Bの各プロットの上下方向のずれである。これを補正するには、いずれかの点の符号量を知る必要がある。この符号量は実際にはどの点でもよいのだが、本変形例では量子化なしの場合の符号量を用いる形態を説明する。図16Aは、第1の変形例における符号化プログラム72の機能構成を例示し、図16Bは、実験結果を例示する図である。なお、本図に示された各構成のうち、図10に示された構成と実質的に同一のものには同一の符号が付されている。図16Aに例示するように、本変形例における符号化プログラム72は、予備符号化部760をさらに有する。予備符号化部760は、予備予測部700により生成された被符号化シンボル予測部ID、ラン及び予測誤差をエントロピー符号化する。本例の量子化制御部722は、予備符号化部760により生成された符号量量子化なしの場合の符号量に基づいて、図1Bに示すグラフの近似式を補正する。より具体的には、量子化制御部722は、図1Bに示すグラフが、予備符号化部760により生成された符号量量子化なしの符号量のプロットを通るようにy切片を調整する。図16Bに示すように、予備符号化による補正を行った場合と、予備符号化による補正を行わなかった場合とを比較すると、予備符号化による補正を行った場合の方が、画像間のy方向のずれを吸収できるため、より直線性が向上し、推定精度が向上する。なお、本図のグラフは、非ラン画素数と符号量の関係を、両軸ともlogをとって表現したものである。[変形例2]上記実施形態では、量子化なしの状態で予備予測部700が予測誤差を算出し、この予測誤差を用いて符号量の評価が行われているが、これに限定されるものではなく、例えば、量子化なしではまず実現できないような圧縮率例えば写真画像で圧縮率10以上を目標とする場合などであれば、適切な量子化を行った後の画像データについて予備予測部700に予測誤差を算出させ、この予測誤差により符号量を評価させてもよい。この場合には、予備予測前の量子化は、比較的緩やかであることが望ましい。[変形例3]第2の実施形態では、ソースコーダにおける試行をやめるために、所望符号量を得る量子化パラメータを予測誤差の出現頻度分布に基づいて推定している。しかしながら、本実施形態のフィルタ処理部730は、量子化誤差をフィードバックする量子化誤差拡散を伴う量子化を行っている。また、過度に同一画素値で塗りつぶすことを避けるために、量子化が連続して行われる場合には、その連続長に応じて閾値許容誤差を小さくしている。そのため、フィルタ処理部730による量子化は、非常に非線形な効果を有し、予測誤差の分布と許容誤差閾値とから高精度に非ラン画素数を推測することが困難である。図17Aは、フィルタ処理部730による非線形的な量子化が行われた場合の量子化パラメータ許容誤差と非ラン画素数との関係について示すグラフである。なお、本図は、横軸X軸に非ラン画素数、縦軸Y軸に相対誤差値をプロットしたものである。ここで、相対誤差値とは、特定の画像に対して、ある非ラン画素数に対応する予測誤差値絶対値を指す。もし許容誤差量子化パラメータが、単純に図13のX軸に対する閾値として働けば、同一量子化パラメータにおける相対誤差値は、画像によらず一定になるはずである。しかし図17Aではそうなっていない。つまり、同じ許容誤差量子化パラメータであっても、実質的な許容誤差のレベルが画像によって異なることになる。したがって、画像と量子化パラメータとが与えられても、許容誤差又は非ラン画素数を高精度に推定することができず、結果として符号量も推定できない。しかしながら、図17Aをよく見てみると、同一量子化パラメータのプロットは、それぞれ傾きが異なる直線に乗っているように見える。そこで、図17Aのプロットを増やし、XY軸を入れ替え、両対数グラフにプロットすると、図17Bに示すように、直線で、比較的よく近似できていることが分かる。このように、量子化パラメータが直線でほぼ近似できているということは、画像ではなく量子化パラメータだけに依存して、予測誤差値と非ラン画素との関係が決まるということである。換言すると、ある量子化パラメータによって得られる非ラン画素数は、画像によって異なるが、その非ラン画素数と相対誤差値との間には一定の関係がある。一方、図13で見たように、誤差値と非ラン画素数の累積値とは、統計的に求めることができるから、特定の画像と量子化パラメータとの組に対して、図13と図17Bとの交点を求めれば、それが求める非ラン画素数に対応する。そして、この非ラン画素数と図1Bのグラフとによって推定符号量が求められる。実際の処理では、図1B及び図17Bのデータあるいは近似式は、予め設計して用いられる。近似式は、直線近似を行ってもよいし、非線形近似を行ってもよい。すなわち、第3の変形例のおけるデータ処理装置2は、図13のグラフと許容誤差量子化パラメータとから直接非ラン画素数を求めるのではなく、同一の量子化パラメータに対する相対誤差値と非ラン画素数の関係の一定性画像非依存性を利用することで、符号量制御を行う。より具体的には、本変形例のデータ処理装置2は、図17Cに例示するように、予測誤差の累積出現頻度分布と、図17Bに示すグラフの近似式との交点を算出し、算出された交点のうち、所望の非ラン画素数nすなわち符号量に対応する量子化パメータpを補間により算出する。図18Aは、本変形例における符号化プログラム74の機能構成を例示し、図18Bは、近似式保持部770により保持される近似式を例示する図である。なお、本図に示された各構成のうち、図10に示された構成と実質的に同一のものには同一の符号が付されている。図18Aに例示するように、符号化プログラム74において、近似式保持部770は、図17Bに例示するグラフを近似する近似式を、対応する量子化パラメータ許容誤差に対応付けて記憶する。本例の近似式保持部770は、図18Bに例示するように、複数の量子化パラメータ許容誤差それぞれに対応付けて、複数の近似式を保持する。本変形例の量子化制御部724は、符号量評価部710により作成された予測誤差の累積出現頻度分布図13と、近似式保持部770に保持されている複数の近似式図17Bのグラフとの交点を算出し、算出された交点の値を用いて、補間により所望の非ラン画素数に対応する量子化パラメータ許容誤差を算出する。なお、量子化制御部724による補間は、量子化パラメータの刻みが小さければ線形補間を行ってもよいし、前後の量子化パラメータの交点を使った多次の補間を行ってもよい。図19は、本変形例における符号化処理S24のフローチャートである。なお、本図に示された各処理のうち、図15に示された処理と実質的に同一のものには同一の符号が付されている。図19に示すように、S200において、予備予測部700図18は、外部から、画像データが入力されると、入力された画像データについて予測誤差を算出し、算出された予測誤差を符号量評価部710に出力する。S205において、符号量評価部710は、予備予測部700から入力される予測誤差の累積出現頻度分布図13を作成し、作成された累積出現頻度分布を量子化制御部724に出力する。S210において、量子化制御部724図18は、図1Bに例示するグラフの近似式を用いて、所望の符号量に対応する非ラン画素数nを算出する。ステップ240S240において、量子化制御部724は、符号量評価部710から入力された累積出現頻度分布と、近似式保持部770に保持されている近似式との交点を算出する。ステップ245S245において、量子化制御部724は、算出された交点のうち、算出された非ラン画素数nと累積出現頻度分布との交点に近い2つの交点を選択する。ステップ250S250において、量子化制御部724は、選択された2つの交点による補間演算によって、非ラン画素数nに対応する量子化パラメータ許容誤差を算出し、算出された量子化パラメータをフィルタ処理部730に設定する。S220において、フィルタ処理部730は、量子化制御部724により設定された許容誤差量子化パラメータを用いて、入力された画像データに対してフィルタ処理を施し、フィルタ処理が施された画像データを予測処理部740に出力する。S225において、予測処理部740は、フィルタ処理部730から入力された画像データに対して予測処理を行い、予測部ID及びそのラン、並びに、予測誤差を生成し、生成された予測部ID、ラン及び予測誤差を被符号化シンボルとしてエントロピー符号化部750に出力する。S230において、エントロピー符号化部750は、予測処理部740から入力された被符号化シンボル予測部ID、ラン、及び予測誤差をハフマン符号などにより符号化する。このように、本変形例によれば、画像非依存な特徴量同士の関係を近似表現することにより、非線形的な量子化処理であっても高精度に制御することができる。なお、本変形例では、量子化パラメータを算出する形態を説明しているが、単純な符号量推定処理に本変形例の原理を利用することもできる。