(57)【要約】  【課題】  所望の圧縮率でデータを高速に符号化する符号化装置を提供する。  【解決手段】  画像処理装置２（符号化装置）は、１ライン毎に符号量を監視して、符号量が基準符号量を超える場合には、参照位置を追加して、注目ラインの符号化処理をやり直す。このように、画像処理装置２は、１ライン毎に符号量を監視しながら、デフォルトの予測符号化処理では圧縮しにくいラインに対しては、参照位置（予測手法）を追加して所望の圧縮率を実現し、圧縮しやすい部分データに対しては、デフォルトの予測手法のみを用いて、より少ない処理負荷で高速に符号化することができる。【選択図】図４
2006340134.tif 000002
【特許請求の範囲】
【請求項１】
複数の予測手法を有し、少なくとも１つの予測手法を用いて、符号化対象となる注目データの予測データを生成する予測手段と、
前記予測手段により生成された予測データと、前記注目データとを比較して、前記注目データの符号データを生成する符号生成手段と、
前記予測手段により適用される予測手法の数を変化させる予測制御手段と
を有する符号化装置。
【請求項２】
前記予測手段は、注目データに対して既定の位置にある参照データを参照して、予測データを生成し、
前記予測制御手段は、参照すべき参照データの数を変化させる
請求項１に記載の符号化装置。
【請求項３】
前記予測制御手段は、前記符号生成手段により生成される符号量に応じて、注目データから離れた位置にある参照データの数を変化させるよう指示し、
前記予測手段は、前記予測制御手段の指示に応じて、注目データから離れた位置にある参照データと、注目データと隣接する位置にある参照データとを用いて、それぞれ予測データを生成する
請求項２に記載の符号化装置。
【請求項４】
符号化対象は、画像データに含まれる注目画素の画素値であり、
前記予測制御手段は、注目画素から離れた位置にある参照画素の数を変化させるよう指示し、
前記予測手段は、注目画素から離れた位置にある参照画素の画素値と、注目画素に隣接する位置にある参照画素の画素値とを用いて、注目画素の予測画素値をそれぞれ生成する
請求項３に記載の符号化装置。
【請求項５】
前記予測手段は、前記予測制御手段により指定された数の予測手法を用いて、指定された数の予測データを生成し、
前記符号生成手段は、注目データが前記予測手段により生成されたいずれかの予測データと一致する場合に、予測データが注目データと一致していることを示す一致情報を符号化し、注目データが前記予測手段により生成されたいずれの予測データとも一致しない場合に、注目データ、又は、注目データと既定の予測データとの差分を符号化する
請求項１〜４のいずれかに記載の符号化装置。
【請求項６】
既定サイズの部分データの符号量が、既定の基準符号量を超えているか否かを判定する符号量判定手段
をさらに有し、
前記予測制御手段は、前記符号量判定手段により部分データの符号量が基準符号量を超えていると判定された場合に、適用すべき予測手法を追加させる
請求項１に記載の符号化装置。
【請求項７】
前記予測手段は、前記符号量判定手段により部分データの符号量が基準符号量を超えていると判定された場合に、予測手法を追加して、この部分データに含まれる注目データの予測データを再度生成し、
前記符号生成手段は、前記予測手段により再度生成された予測データを用いて、この部分データに含まれる注目データの符号を再度生成する
請求項６に記載の符号化装置。
【請求項８】
少なくとも１つの予測手法を用いて、符号化対象となる注目データの予測データを生成する予測手段と、
前記予測手段により生成された予測データと、前記注目データとを比較して、前記注目データの符号データを生成する符号生成手段と、
既定サイズの部分データの符号量が既定の基準符号量を超えているか否かを判定する符号量判定手段と、
前記符号量判定手段により部分データの符号量が基準符号量を超えていると判定された場合に、この部分データにおいて最適な予測手法を選択し、選択された予測手法を用いてこの部分データの符号データを再度生成させる予測制御手段と
を有する符号化装置。
【請求項９】
複数の予測手法のうち、少なくとも１つの予測手法を用いて、符号化対象となる注目データの予測データを生成し、
生成された予測データと、前記注目データとを比較して、前記注目データの符号データを生成し、
生成された符号データに応じて、適用される予測手法の数を変化させる
符号化方法。
【請求項１０】
複数の予測手法のうち、少なくとも１つの予測手法を用いて、符号化対象となる注目データの予測データを生成するステップと、
生成された前記予測データと、前記注目データとを比較して、前記注目データの符号データを生成するステップと、
適用される前記予測手法の数を変化させるステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予測符号化方式を用いた符号化装置に関する。
【背景技術】
【０００２】
データの自己相関関係に着目して符号化する方法としては、例えば、ランレングス符号化、ＪＰＥＧ−ＬＳ及びＬＺ符号化（Ziv-Lempel符号化）などがある。特に、画像データの場合には、近傍の画素同士が高い相関関係を有するので、この点に着目して画像データを高い圧縮率で符号化することができる。
また、特許文献１は、入力した画像データが多値の画像データの場合、符号化しようとする画素の周辺画素を使って予測し、入力した画像データが２値の画像データの場合、ハーフトーニング処理の閾値の周期に合わせた位置になる画素を使って予測する画像符号化装置を開示する。
【特許文献１】特開２００２−３４４７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、所望の圧縮率でデータを高速に符号化する符号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［符号化装置］
上記目的を達成するために、本発明にかかる符号化装置は、複数の予測手法を有し、少なくとも１つの予測手法を用いて、符号化対象となる注目データの予測データを生成する予測手段と、前記予測手段により生成された予測データと、前記注目データとを比較して、前記注目データの符号データを生成する符号生成手段と、前記予測手段により適用される予測手法の数を変化させる予測制御手段とを有する。
【０００５】
好適には、前記予測手段は、注目データに対して既定の位置にある参照データを参照して、予測データを生成し、前記予測制御手段は、参照すべき参照データの数を変化させる。
【０００６】
好適には、前記予測制御手段は、前記符号生成手段により生成される符号量に応じて、注目データから離れた位置にある参照データの数を変化させるよう指示し、前記予測手段は、前記予測制御手段の指示に応じて、注目データから離れた位置にある参照データと、注目データと隣接する位置にある参照データとを用いて、それぞれ予測データを生成する。
【０００７】
好適には、符号化対象は、画像データに含まれる注目画素の画素値であり、前記予測制御手段は、注目画素から離れた位置にある参照画素の数を変化させるよう指示し、前記予測手段は、注目画素から離れた位置にある参照画素の画素値と、注目画素に隣接する位置にある参照画素の画素値とを用いて、注目画素の予測画素値をそれぞれ生成する。
【０００８】
好適には、前記予測手段は、前記予測制御手段により指定された数の予測手法を用いて、指定された数の予測データを生成し、前記符号生成手段は、注目データが前記予測手段により生成されたいずれかの予測データと一致する場合に、予測データが注目データと一致していることを示す一致情報を符号化し、注目データが前記予測手段により生成されたいずれの予測データとも一致しない場合に、注目データ、又は、注目データと既定の予測データとの差分を符号化する。
【０００９】
好適には、既定サイズの部分データの符号量が、既定の基準符号量を超えているか否かを判定する符号量判定手段をさらに有し、前記予測制御手段は、前記符号量判定手段により部分データの符号量が基準符号量を超えていると判定された場合に、適用すべき予測手法を追加させる。
【００１０】
好適には、前記予測手段は、前記符号量判定手段により部分データの符号量が基準符号量を超えていると判定された場合に、予測手法を追加して、この部分データに含まれる注目データの予測データを再度生成し、前記符号生成手段は、前記予測手段により再度生成された予測データを用いて、この部分データに含まれる注目データの符号を再度生成する。
【００１１】
また、本発明にかかる符号化装置は、少なくとも１つの予測手法を用いて、符号化対象となる注目データの予測データを生成する予測手段と、前記予測手段により生成された予測データと、前記注目データとを比較して、前記注目データの符号データを生成する符号生成手段と、既定サイズの部分データの符号量が既定の基準符号量を超えているか否かを判定する符号量判定手段と、前記符号量判定手段により部分データの符号量が基準符号量を超えていると判定された場合に、この部分データにおいて最適な予測手法を選択し、選択された予測手法を用いてこの部分データの符号データを再度生成させる予測制御手段とを有する。
【００１２】
［符号化方法］
また、本発明にかかる符号化方法は、複数の予測手法のうち、少なくとも１つの予測手法を用いて、符号化対象となる注目データの予測データを生成し、生成された予測データと、前記注目データとを比較して、前記注目データの符号データを生成し、生成された符号データに応じて、適用される予測手法の数を変化させる。
【００１３】
［プログラム］
また、本発明にかかるプログラムは、複数の予測手法のうち、少なくとも１つの予測手法を用いて、符号化対象となる注目データの予測データを生成するステップと、生成された前記予測データと、前記注目データとを比較して、前記注目データの符号データを生成するステップと、適用される前記予測手法の数を変化させるステップとをコンピュータに実行させる。
【発明の効果】
【００１４】
本発明の符号化装置によれば、所望の圧縮率でデータを高速に符号化することができる。
【発明を実施するための最良の形態】
【００１５】
［第１実施形態］
以下に、本発明の第１の実施形態を説明する。本実施形態では、画像処理装置２が画像データを符号化する場合を具体例として説明するが、これに限定されるものではなく、本発明にかかる符号化装置は、音声ファイル又は動画ファイルなど種々のデータファイルを符号化できる。
【００１６】
［ハードウェア構成］
まず、本実施形態における画像処理装置２（符号化装置）のハードウェア構成を説明する。
図１は、本発明にかかる符号化方法が適応される画像処理装置２のハードウェア構成を、制御装置２１を中心に例示する図である。
図１に例示するように、画像処理装置２は、ＣＰＵ２１２及びメモリ２１４などを含む制御装置２１、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置及びキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２５から構成される。
画像処理装置２は、例えば、本発明にかかる符号化プログラム５（後述）がプリンタドライバの一部としてインストールされた汎用コンピュータであり、通信装置２２又は記録装置２４などを介して画像データを取得し、取得された画像データを符号化してプリンタ装置３に送信する。
【００１７】
［符号化プログラム］
図２は、制御装置２１（図１）により実行され、本発明にかかる符号化方法を実現する符号化プログラム５の機能構成を例示する図である。
図２に例示するように、符号化プログラム５は、予測制御部５００、予測部５１０、予測誤差算出部５２０、ラン計数部５３０、選択部５４０、符号生成部５５０、及び符号量監視部５６０を有する。
【００１８】
符号化プログラム５において、予測制御部５００は、入力された画像データを所望の圧縮率で符号化するように、符号化プログラム５に含まれる他の構成を制御する。
より具体的には、予測制御部５００は、符号量監視部５６０から入力される部分データの符号量に応じて、予測部５１０により適用される予測手法を増減させる。ここで、部分データとは、符号化対象となるデータファイルの一部であり、例えば、画像データに含まれる既定サイズの画像ブロックなどである。
本例の予測制御部５００は、画像データに含まれる１ラインの符号量が基準符号量を超える場合に、予測部５１０により適用される予測手法を追加して、この１ラインの符号化処理をやり直させる。このように、予測制御部５００は、符号量が基準符号量を超える場合には、予測部５１０により適用される予測手法を追加することにより、予測部５１０による予測処理の的中率が向上し、この１ラインの符号量の減少が期待される。
【００１９】
また、予測制御部５００は、予測手法を追加する場合に、予め符号が割り当てられた複数の予測手法の中から、追加すべき最適な予測手法を選択する。
例えば、予測制御部５００は、１ライン毎に、各予測手法の的中数（すなわち、予測値と、実際の画素値との一致数）をカウントして、符号化対象となるラインの的中数に応じて、予測手法（的中率の高い予測手法）を選択し、選択された予測手法を予測部５１０に追加する。
【００２０】
予測部５１０は、予測制御部５００からの制御に応じて、既定の予測手法を用いて、符号化対象である注目データの予測データを生成し、生成された予測データと、注目データとを比較して、比較結果（予測結果）をラン計数部５３０に出力する。
より具体的には、予測部５１０は、予測制御部５００から指示された少なくとも１つの予測手法を用いて、それぞれの注目データについて少なくとも１つの予測データを生成し、生成されたそれぞれの予測データと、注目データとを比較し、それぞれの予測データが注目データと一致したか否かをラン計数部５３０に出力する。
本例の予測部５１０は、予測制御部５００から指示された少なくとも１つの参照位置の画素値を予測画素値として読み出し、読み出されたそれぞれの予測画素値と、注目画素値（注目データ）とを比較し、注目画素値と一致した参照位置の識別情報（以下、参照位置ＩＤ）をラン計数部５３０に出力する。
すなわち、本例の予測部５１０は、画像ブロック（本例では、１ライン）の符号量に応じて、参照位置の数を増減させる。１つの注目画素に対応する参照位置の数が増加すると、この注目画素に対する予測データの数も増加するため、予測的中率が向上し、参照位置の数が減少すると、予測データの数も減少し、予測データと注目データとの比較回数が減少するため、符号化処理の処理負荷が減少する。
【００２１】
予測誤差算出部５２０は、予め定められた予測方法で、注目データの予測データを生成し、生成された予測データ値と、この注目部分の部分データ値との差分を算出し、算出された差分を予測誤差として選択部５４０に出力する。
より具体的には、予測誤差算出部５２０は、既定の参照位置（注目画素の直前の画素位置）の画素値に基づいて、注目画素の画素値を予測し、その予測値を注目画素の実際の画素値から減算し、予測誤差値として選択部５４０に対して出力する。なお、予測誤差算出部５２０の予測方法は、符号データの復号化処理における予測方法と対応していればよい。
【００２２】
ラン計数部５３０は、予測部５１０から入力される比較結果に基づいて、的中した予測データの連続数をカウントする。
より具体的には、ラン計数部５３０は、予測部５００から入力される参照位置ＩＤに基づいて、同一の参照位置ＩＤが連続する数をカウントし、参照位置ＩＤ及びその連続数を選択部５４０に対して出力する。すなわち、ラン計数部５３０は、同一の予測手法が連続して的中する数を算出する。
本例のラン計数部５３０は、予測部５１０により生成された予測データがいずれも注目画素の画素値と一致しなかった場合（すなわち、いずれの参照位置ＩＤも出力されなかった場合）に、内部カウンタでカウントされている参照位置ＩＤ及びその連続数を選択部５４０に出力する。
【００２３】
選択部５４０は、ラン計数部５３０から入力された参照位置ＩＤ及び連続数、並びに、予測誤差算出部５２０から入力された予測誤差値に基づいて、最も長く連続した参照位置ＩＤを選択し、この参照位置ＩＤ及びその連続数を一致情報として符号生成部５５０に出力し、その後に、入力された予測誤差値を符号生成部５５０に対して出力する。
【００２４】
符号生成部５５０は、選択部５４０から入力された参照位置ＩＤ、連続数及び予測誤差値に対して符号を割り当て、割り当てられた符号を、符号量監視部５６０及び通信装置２２（図１）又は記録装置２４（図１）などに出力する。
【００２５】
符号量監視部５６０は、符号生成部５５０から入力された符号に基づいて、既定サイズの部分データの符号量を算出し、算出された部分データの符号量が基準符号量を超えるか否かを判定し、この判定結果を予測制御部５００に出力する。
例えば、符号量監視部５６０は、既定サイズの画像ブロック（本例では１ライン）毎に、符号量を算出し、算出された各画像ブロックの符号量が基準符号量を超えるか否かを判定する。この場合の基準符号量は、例えば、画像ブロック（ライン）に対して設定された符号量の上限であり、画像形成処理におけるライン走査速度などに基づいて設定される。
【００２６】
なお、本例の符号化プログラム５は、１ライン毎に符号量を監視して、予測手法を追加しているが、バンド単位又は画像バッファ単位で符号量を監視してもよい。また、本例の符号化プログラム５は、画像ブロック（１ライン）の符号量が基準符号量を超える場合に、予測手法を追加しているが、いずれかの予測手法の的中数が基準値を超える場合に、予測手段を追加するようにしてもよいし、目標符号量（又は目標圧縮率）に応じて、適用すべき予測手法を設定してもよい。また、本例の符号化プログラム５は、画像ブロックの符号量が基準符号量を超える場合に、予測手法を追加しているが、画像ブロックの符号量が既定の閾値よりも小さい場合に、予測部５１０に適用されている予測手法のうち、的中数の少ない予測手法を無効化してもよい。
【００２７】
図３は、符号化プログラム５（図２）による予測処理及び符号化処理を説明する図であり、図３（Ａ）は、予測部５１０の参照位置を例示し、図３（Ｂ）は、それぞれの参照位置（予測手法）に割り当てられた符号を例示し、図３（Ｃ）は、符号化プログラム５により生成される符号データを例示する。
図３（Ａ）に例示するように、本例の予測部５１０は、注目画素Ｘについて、複数の参照位置Ａ〜Ｚを参照して、これらの参照位置Ａ〜Ｚの画素値を予測画素値とする。本例の参照位置Ａ〜Ｚは、注目画素Ｘに対する相対位置で規定されており、例えば、参照位置Ａは、注目画素Ｘの主走査方向（すなわち、ライン方向）上流に設定され、参照位置Ｂ〜Ｄは、注目画素Ｘの上方（副走査方向上流）の主走査ライン上に設定されている。
予測部５１０により参照される参照位置は、これらの参照位置Ａ〜Ｚの中から、予測制御部５００（図２）により指定される。
【００２８】
図３（Ｂ）に例示するように、本例の各参照位置には、それぞれ符号が割り当てられている。そして、予測制御部５００は、予め符号が割り当てられた複数の参照位置Ａ〜Ｚの中から、予測部５１０が参照すべき参照位置を選択する。本例の予測制御部５００は、それぞれのラインについて、複数の参照位置Ａ〜Ｚそれぞれの的中数をカウントし、的中数の大きな参照位置から順に選択する。
本例の予測部５１０は、予測制御部５００により選択された参照位置（参照位置Ａ〜Ｚの少なくとも１つ）の画素値を予測画素値として読み出し、読み出された予測画素値と、注目画素の画素値とを比較する。
【００２９】
図３（Ｃ）に例示するように、ラン計数部５３０により算出された予測データの連続一致数、連続一致した参照位置の参照位置ＩＤ、及び、予測誤差算出部５２０により算出された予測誤差値は、符号生成部５５０により、対応する符号に置換される。予測誤差値及び連続一致数（ラン数）は、例えば、その数値に対応するエントロピー符号に置換され、参照位置ＩＤは、図３（Ｂ）に例示する符号（符号Ａ〜Ｚ）に置換される。
なお、本例の予測誤差算出部５２０は、予測部５１０と同じ参照位置（参照位置Ａ）の画素値を予測値とし、この予測値と実際の画素値（注目画素Ｘの画素値）との差分を予測誤差値として算出する。また、注目画素Ｘが最左端である場合のように、参照位置Ａが画像中に実在しない場合に、予測誤差算出部５２０は、デフォルトの値（復号化プログラムと同一の既定値）を予測値として、予測誤差を算出する。
【００３０】
図４は、符号化プログラム５（図２）による符号化処理（Ｓ１０）のフローチャートである。なお、本例では、図３に例示した参照位置Ａがデフォルトの参照位置として設定されている場合を具体例として説明する。
図４に示すように、ステップ１００（Ｓ１００）において、符号化プログラム５（図２）は、入力された画像データの中から、副走査の順に、注目ラインを設定し、設定された注目ラインの主走査方向最上流（左端）の画素を注目画素Ｘに設定する。
すなわち、注目画素Ｘは、入力画像の左上端の画素から順に主走査方向に選択されていき、主走査ラインの右端まで選択されると、次に、副走査方向下方の主走査ラインに移行し、この主走査ラインの左端から順に選択される。
【００３１】
ステップ１０５（Ｓ１０５）において、予測部５１０（図２）は、予測制御部５００により指定された参照位置の画素値を、注目画素Ｘの予測画素値として読み出し、読み出された予測画素値それぞれと、注目画素Ｘの画素値とを比較して、これらの画素値が一致している場合には、参照位置に対応する参照位置ＩＤをラン計数部５３０に出力し、いずれの予測画素値も注目画素Ｘの画素値と一致しなかった場合に、一致しなかった旨をラン計数部５３０に出力する。
すなわち、予測部５１０は、注目ラインの符号化処理が１回目である場合には、デフォルトの参照位置Ａの画素値を予測画素値として読み出し、読み出された予測画素値と注目画素Ｘの画素値とを比較し、一致している場合には、参照位置Ａの参照位置ＩＤをラン計数部５３０に出力し、一致しない場合には、その旨をラン計数部５３０に出力する。
また、予測部５１０は、注目ラインの符号化処理が１回目でない場合には、デフォルトの参照位置Ａの画素値と、予測制御部５００から追加するよう指示された参照位置の画素値とをそれぞれ予測画素値として読み出し、読み出された複数の予測画素値それぞれと注目画素Ｘの画素値とを比較し、いずれかの予測画素値が一致している場合には、一致した参照位置の参照位置ＩＤをラン計数部５３０に出力し、いずれの予測画素値も一致しない場合には、その旨をラン計数部５３０に出力する。
また、予測制御部５００は、参照位置Ａ〜Ｚそれぞれの画素値と、注目画素Ｘの画素値とが一致するか否かを判定し、それぞれの参照位置Ａ〜Ｚについて一致数（的中数）をカウントアップしていく。
【００３２】
ステップ１１０（Ｓ１１０）において、符号化プログラム５は、予測部５１０からいずれかの予測部ＩＤが出力された場合（すなわち、いずれかの予測手法で予測が的中した場合）に、Ｓ１１５の処理に移行し、予測部５１０から一致しなかった旨が出力された場合（すなわち、いずれの予測手法でも予測が的中しなかった場合）に、Ｓ１２０の処理に移行する。
【００３３】
ステップ１１５（Ｓ１１５）において、ラン計数部５３０（図２）は、予測部５１０から入力された参照位置ＩＤに基づいて、この参照位置ＩＤに対応するカウント値を１つ増加させて、Ｓ１３０の処理に移行する。
すなわち、本例の符号化プログラム５は、いずれの予測画素値も注目画素Ｘの画素値と一致しなくなるまで、連続一致数のカウントアップを継続する。
【００３４】
ステップ１２０（Ｓ１２０）において、ラン計数部５３０は、予測部５１０の比較結果（予測結果）に基づいて、予測部５１０により読み出された予測画素値がいずれも注目画素Ｘの画素値と一致しなかった旨を検知すると、各参照位置ＩＤに対応するカウント値を選択部５４０に出力する。
選択部５４０は、ラン計数部５３０から各参照位置ＩＤのカウント値が入力されると、入力されたカウント値に基づいて、参照位置ＩＤの最長連続数を算出し、算出された最長連続数（ラン数）及び参照位置ＩＤを符号生成部５５０に出力する。
その後に、選択部５４０は、予測誤差算出部５２０から入力された最新の予測誤差（すなわち、いずれの予測画素値も的中しなかった注目画素Ｘに関する予測誤差）を符号生成部５５０に出力する。
【００３５】
ステップ１２５（Ｓ１２５）において、符号生成部５５０（図２）は、選択部５４０から順に入力される参照位置ＩＤ、最長連続数（ラン数）、及び予測誤差を符号化し、符号データを符号量監視部５６０と、通信装置２２（図１）又は記録装置２４（図１）とに出力する。
【００３６】
ステップ１３０（Ｓ１３０）において、予測制御部５００は、注目ラインの符号化処理が終了したか否かを判断し、１ラインの符号化処理が終了した場合（すなわち、注目画素Ｘが注目ラインの右端にある場合）に、Ｓ１４０の処理に移行し、１ラインの符号化処理が終了していない場合に、Ｓ１３５の処理に移行する。
【００３７】
ステップ１３５（Ｓ１３５）において、符号化プログラム５は、注目画素Ｘの位置を主走査方向に１つ移動させて、Ｓ１０５の処理に戻る。
【００３８】
ステップ１４０（Ｓ１４０）において、符号量監視部５６０は、符号生成部５５０から入力される符号データに基づいて、注目ラインの符号量を算出し、算出された注目ラインの符号量と、主走査ラインに対して設定された基準符号量とを比較して、注目ラインの符号量が基準符号量を超えるか否かを判定し、この判定結果を予測制御部５００に出力する。
予測制御部５００は、符号量監視部５６０により注目ラインの符号量が基準符号量以下であると判定された場合に、予測部５１０により参照される参照位置をデフォルト状態（参照位置Ａのみ）に戻して、Ｓ１５５の処理に移行し、符号量監視部５６０により注目ラインの符号量が基準符号量を超えると判定された場合に、Ｓ１４５の処理に移行する。
なお、本例の予測制御部５００は、予測部５１０により参照される参照位置（すなわち、予測部５１０により適用される予測手法）を、１ライン毎に初期状態に戻しているが、複数のライン毎に初期化するようにしてもよい。
【００３９】
ステップ１４５（Ｓ１４５）において、予測制御部５００は、複数の参照位置Ａ〜Ｚの中から、注目ラインについてカウントした各参照位置の一致数（的中数）に基づいて、追加すべき参照位置を選択し、選択された参照位置を予測部５１０に通知する。
本例の予測制御部５００は、既に予測部５１０により適用されている参照位置以外の参照位置の中から、一致数が基準値以上である参照位置を選択する。
なお、選択可能な参照位置が存在しない場合には、例えば、予測制御部５００は、ＵＩ装置２５（図１）にエラーを表示させて注目ラインの符号化処理を終了して、次のラインの符号化処理（すなわち、Ｓ１００の処理）に強制的に移行する。
【００４０】
ステップ１５０（Ｓ１５０）において、予測制御部５００は、注目画素Ｘの位置を注目ラインの先頭に戻して、注目ラインを再度符号化するよう他の構成に指示し、Ｓ１０５の処理に戻す。この場合、予測部５１０は、Ｓ１０５において、予測制御部５００から通知された参照位置を追加して、予測画素値を読み出す。
すなわち、本例の符号化プログラム５は、注目ラインの符号量が基準符号量以下となるまで、参照位置を追加しながら注目ラインの符号化処理を繰り返す。
【００４１】
ステップ１５５（Ｓ１５５）において、符号化プログラム５は、入力された画像データの全てのラインについて符号化処理が終了したか否かを判定し、未処理のラインが存在する場合に、Ｓ１００の処理に戻って、次のラインに対する処理を行い、これ以外の場合に、符号化処理（Ｓ１０）を終了する。
【００４２】
以上説明したように、本実施形態における画像処理装置２（符号化プログラム５）は、１ライン毎に符号量を監視して、符号量が基準符号量を超える場合には、参照位置（すなわち、予測手法）を追加して、注目ラインの符号化処理をやり直す。
このように、本画像処理装置２は、一定の部分データ（本例では１ライン）毎に、符号量の監視及び符号化処理のやり直しを実施することにより、符号化処理を最初からやり直すことなく、目標となる全体符号量（又は圧縮率）を実現できる。
また、本画像処理装置２は、一定の部分データ（１ライン）の符号量が基準符号量を超える場合にのみ、予測手法（本例では参照位置）の追加、及び、符号化処理のやり直しを実施することにより、効率よく目標となる符号量（又は圧縮率）を実現できる。
換言すると、本画像処理装置２は、部分データ毎に符号量を監視しながら、デフォルトの予測符号化処理では圧縮しにくい部分データに対しては、予測手法を追加して所望の圧縮率を実現し、圧縮しやすい部分データに対しては、デフォルトの予測手法のみを用いて、より少ない処理負荷で高速に符号化することができる。
【００４３】
図５は、符号化プログラム５による符号化処理の効果を説明する図であり、図５（Ａ）は、入力画像の一部を例示し、図５（Ｂ）は、参照位置Ｂ〜Ｄが追加された場合の符号を例示し、図５（Ｃ）は、デフォルトの参照位置Ａのみが適用される場合の符号を例示する。
本実施形態における符号化プログラム５（図２）は、図５（Ａ）に例示する注目ラインを符号化する場合に、図５（Ｃ）に例示するように、デフォルトの参照位置Ａのみを適用して符号化してもよいし、図５（Ｂ）に例示するように、デフォルトの参照位置Ａに、参照位置Ｂ〜Ｄを追加して符号化してもよい。
図５（Ｂ）に例示するように、符号化プログラム５は、参照位置Ａ〜Ｄを適用して、図５（Ａ）に例示する注目ラインを符号化すると、参照位置Ｂで予測が連続して的中するため、参照位置Ｂの識別情報及び連続一致数８を符号化する（すなわち、符号Ｂと数値８の符号とが生成される）。
このように、符号化プログラム５は、参照位置Ｂを追加することにより、高い圧縮率を実現することができる。
【００４４】
一方、図５（Ｃ）に例示するように、符号化プログラム５は、参照位置Ａのみを適用して、図５（Ａ）に例示する注目ラインを符号化すると、最初の２画素については、予測が的中しないため予測誤差を符号化することになり、次の２画素については、参照位置Ａで予測が的中するため、参照位置Ａの識別情報及び連続数２を符号化する（すなわり、符号Ａと数値２の符号とが生成される）。
このように、符号化プログラム５は、参照位置Ｂを追加しない場合であっても、一定の圧縮効果を得ることができ、符号量が必要条件を満たす場合には、参照位置Ｂを追加しないことにより、図５（Ｂ）に例示する場合よりも軽い処理負荷で注目ラインを符号化することができる。
【００４５】
また、図５（Ｂ）に例示するように参照位置Ａ〜Ｄを適用して符号化された符号データも、図５（Ｃ）に例示するように参照位置Ａのみを適用して符号化された符号データも、同一の復号化処理で復号化できる。
このように、本画像処理装置２（符号化プログラム５）は、目標となる圧縮率（又は符号量）及びそれぞれの部分データの圧縮特性（圧縮のしやすさ）に応じて、適用すべき予測手法の数を増減させることにより、より高速に所望の圧縮率でデータを符号化することができる。
【００４６】
［第２実施形態］
次に、本発明の第２の実施形態を説明する。
以下の説明では、第１の実施形態と第２の実施形態との相違点を中心に説明する。
【００４７】
図６は、周期性を含む入力画像を例示する図である。
符号化対象となる入力画像には、図６（Ａ）に例示するように、周期的に略同一の画素値が現れる場合がある。例えば、スクリーン処理が施された２値画像では、略同一の画素値がスクリーンの周期で出現することが多い。また、作成者がテキスチャパターンを挿入して入力画像を作成する場合などには、テキスチャの周期で同一の画素値が出現する。
このような周期性を有する入力画像を符号化する場合には、画素値の周期性に対応できる予測手法を導入することにより、より高い圧縮率が実現できる。
【００４８】
しかしながら、スクリーン処理が画像処理装置２の外部でなされる場合もあるため、スクリーンの周期に適合した予測手法を予め用意しておくのは得策ではない。
また、作成者は任意にテキスチャパターンを挿入して入力画像を作成するため、テキスチャパターンの周期に適合した予測手法を予め用意することはできない。
【００４９】
さらに、１つの入力画像に対して、複数のスクリーン処理がなされる場合もある。この場合には、図６（Ｂ）に例示するように、１つの入力画像に、周期が異なる複数のディザパターン（ディザパターンＡ及びディザパターンＢ）が含まれることになる。このように、画像領域によって画像の周期性が異なる場合もある。
【００５０】
そこで、第２の実施形態における画像処理装置２は、データの周期性に適合した周期予測器を増減させることにより、周期性を有する入力画像を効率的に符号化する。
より具体的には、本実施形態の画像処理装置２は、近傍予測器をデフォルトの予測手法として適用し、必要に応じて、周期予測器を追加する。
ここで、周期予測器とは、注目データから離れた位置の参照データに基づいて予測データを生成する予測手法であり、データの周期性に適合した予測データの生成を期待されている。また、近傍予測器とは、注目データに隣接する位置の参照データに基づいて予測データを生成する予測手法である。画像データなどにおいて、互いに近接するデータ間に高い相関性が存在するため、近傍予測器は、近接データ間の相関性に基づく予測データを生成する。
【００５１】
図７は、第２の符号化プログラム５２の機能構成を例示する図である。なお、本図に示された各構成のうち、図２に示された構成と実質的に同一のものには同一の符号が付されている。
図７に例示するように、第２の符号化プログラム５２は、第１の符号化プログラム５の予測制御部５００を、第２の予測制御部５０２に置換した構成をとる。
また、第２の予測制御部５０２は、周期抽出部５７０を含む。
【００５２】
第２の予測制御部５０２は、周期予測器の増減を予測部５１０に指示する。
より具体的には、予測制御部５０２は、符号量監視部５６０により部分データの符号量が基準符号量を超えていると判定された場合に、周期抽出部５７０によりこの部分データから抽出されたデータの周期性に基づいて、周期予測器を追加する。
本例の予測制御部５０２は、１ラインの符号量が基準符号量を超えている場合に、予測部５１０に対して、近傍予測器に加えて、このラインの周期性に合致した周期予測器を適用するよう指示する。この場合に、予測部５１０は、予測制御部５０２からの指示に応じて、このラインの周期性（周期抽出部５７０により抽出された周期性）に合致した周期予測器を追加して、このラインの予測処理を再度実施する。
【００５３】
周期抽出部５７０は、符号化対象となる注目データと、この注目データから離れた他のデータ（参照データ）とを比較して、データに含まれる周期性を抽出する。
例えば、周期抽出部５７０は、既定サイズの部分データの中で、注目データと、この注目データに対して既定の相対位置にある参照データとを比較して、これらの一致数（又は一致率）を算出し、算出された一致数（又は一致率）が閾値以上である相対位置を周期性として抽出する。
本例の周期抽出部５７０は、注目画素Ｘの画素値と、この注目画素Ｘから離れた複数の参照位置の画素値とを比較して、１ラインにおける画素値の一致数を参照位置毎に算出し、算出された一致数が既定の閾値以上である参照位置を周期性として抽出する。この場合、予測制御部５０２は、周期抽出部５７０により抽出された参照位置を、周期予測器の参照位置として決定する。
【００５４】
図８は、近傍予測器及び周期予測器を説明する図であり、図８（Ａ）は、近傍予測器及び周期予測器の参照位置を例示し、図８（Ｂ）は、近傍予測器の参照位置それぞれに割り当てられた符号を例示し、図８（Ｃ）は、周期予測器の参照位置それぞれに割り当てられた符号を例示する。
図８（Ａ）に例示するように、近傍予測器の参照位置は、注目画素Ｘに隣接する参照位置Ａ〜Ｄであり、周期予測器の参照位置は、注目画素Ｘに隣接する参照位置以外の参照位置Ｚである。すなわち、周期予測器の参照位置Ｚは、近傍予測器の参照位置Ａ〜Ｄと比較すると、入力画像において注目画素Ｘから遠い。
なお、本図に例示された周期予測器の参照位置Ｚは、注目画素Ｘから主走査方向に離れた位置にあるが、これに限定されるものではなく、注目画素Ｘから副走査方向に離れた位置にあってもよいし、注目画素Ｘから主走査方向及び副走査方向に変位した位置にあってもよい。
本例の予測部５１０は、近傍予測器として、参照位置Ａ〜Ｄの画素値を予測画素値として読み出し、周期予測器として、参照位置Ｚの画素値を予測画素値として読み出す。
【００５５】
図８（Ｂ）に例示するように、近傍予測器の参照位置Ａ〜Ｄそれぞれには、予め符号が割り当てられている。同様に、図８（Ｃ）に例示するように、周期予測器の参照位置Ｚそれぞれにも、予め符号が割り当てられている。
【００５６】
図９は、第２の符号化プログラム５２（図７）による符号化処理（Ｓ２０）のフローチャートである。なお、本例では、図８に例示した近傍予測器の参照位置Ａ〜Ｄがデフォルトの参照位置として設定されている場合を具体例として説明する。
図９に示すように、ステップ２００（Ｓ２００）において、符号化プログラム５２（図７）は、入力された画像データの中から、副走査の順に、注目ラインを設定し、設定された注目ラインの主走査方向最上流（左端）の画素を注目画素Ｘに設定する。
【００５７】
ステップ２１０（Ｓ２１０）において、予測部５１０、予測誤差算出部５２０、ラン計数部５３０、選択部５４０及び符号生成部５５０は、協働して注目ラインを符号化する。
具体的には、予測部５１０（図７）は、近傍予測器の参照位置Ａ〜Ｄそれぞれの画素値と、注目画素Ｘの画素値とを比較して、いずれかの参照位置Ａ〜Ｄの画素値が注目画素Ｘの画素値と一致している場合には、一致した参照位置に対応する参照位置ＩＤをラン計数部５３０に出力し、いずれの参照位置の画素値も注目画素Ｘの画素値と一致しなかった場合に、一致しなかった旨をラン計数部５３０に出力する。ラン計数部５３０（図７）は、予測部５１０から一致しなかった旨が入力されるまで、入力される参照位置ＩＤをカウントしていき、一致しなかった旨が入力されると、各参照位置ＩＤに対応するカウント値を選択部５４０に出力する。選択部５４０は、ラン計数部５３０から各参照位置ＩＤのカウント値が入力されると、入力されたカウント値に基づいて、参照位置ＩＤの最長連続数を算出し、算出された最長連続数（ラン数）及び参照位置ＩＤを符号生成部５５０に出力し、その後に、予測誤差算出部５２０から入力された最新の予測誤差値を符号生成部５５０に出力する。符号生成部５５０（図７）は、選択部５４０から順に入力される参照位置ＩＤ、最長連続数（ラン数）、及び予測誤差を符号化し、符号データを符号量監視部５６０と、通信装置２２（図１）又は記録装置２４（図１）とに出力する。
予測部５１０、予測誤差算出部５２０、ラン計数部５３０、選択部５４０及び符号生成部５５０は、以上の処理を注目ラインの各画素について行い、注目ラインに含まれる全画素値を符号化すると、Ｓ２２０の処理に移行する。
【００５８】
また、周期抽出部５７０（図７）は、各注目画素Ｘの画素値と、周期予測器の参照位置Ｚの画素値とを比較して、それぞれの参照位置Ｚについて、この比較結果（一致したか否か）を蓄積する。
【００５９】
ステップ２２０（Ｓ２２０）において、符号量監視部５６０（図７）は、符号生成部５５０から入力される符号データに基づいて、注目ラインの符号量を算出し、算出された注目ラインの符号量と、主走査ラインに対して設定された基準符号量とを比較して、注目ラインの符号量が基準符号量を超えるか否かを判定し、この判定結果を予測制御部５０２に出力する。
予測制御部５０２（図７）は、符号量監視部５６０により注目ラインの符号量が基準符号量以下であると判定された場合に、Ｓ２６０の処理に移行し、符号量監視部５６０により注目ラインの符号量が基準符号量を超えると判定された場合に、Ｓ２３０の処理に移行する。
【００６０】
ステップ２３０（Ｓ２３０）において、周期抽出部５７０は、注目ラインにおける各注目画素Ｘと参照位置Ｚとの比較結果に基づいて、注目ラインにおける各参照位置Ｚの一致数を算出し、算出された一致数が既定の閾値以上となる参照位置Ｚを、周期性の高い参照位置として抽出する。
【００６１】
ステップ２４０（Ｓ２４０）において、予測制御部５０２は、周期抽出部５７０により抽出された参照位置Ｚを、追加すべき参照位置として予測部５１０に通知する。
なお、選択可能な参照位置が存在しない場合（すなわち、一致数が既定の閾値以上となる参照位置Ｚが存在しない場合）には、例えば、予測制御部５０２は、ＵＩ装置２５（図１）にエラーを表示させて注目ラインの符号化処理を終了して、次のラインの符号化処理（すなわち、Ｓ２００の処理）に強制的に移行する。
【００６２】
ステップ２５０（Ｓ２５０）において、予測部５１０、予測誤差算出部５２０、ラン計数部５３０、選択部５４０及び符号生成部５５０は、予測制御部５０２から通知された参照位置Ｚを追加して、注目ラインを再度符号化する。
具体的には、予測部５１０（図７）は、参照位置Ａ〜Ｄ及び予測制御部５０２から通知された参照位置Ｚの画素値それぞれと、注目画素Ｘの画素値とを比較し、いずれかの参照位置の画素値が注目画素Ｘの画素値と一致している場合には、一致した参照位置に対応する参照位置ＩＤをラン計数部５３０に出力し、いずれの参照位置の画素値も注目画素Ｘの画素値と一致しなかった場合に、一致しなかった旨をラン計数部５３０に出力する。ラン計数部５３０（図７）は、予測部５１０から一致しなかった旨が入力されるまで、入力される参照位置ＩＤをカウントしていき、一致しなかった旨が入力されると、各参照位置ＩＤに対応するカウント値を選択部５４０に出力する。選択部５４０は、ラン計数部５３０から各参照位置ＩＤのカウント値が入力されると、入力されたカウント値に基づいて、参照位置ＩＤの最長連続数を算出し、算出された最長連続数（ラン数）及び参照位置ＩＤを符号生成部５５０に出力し、その後に、予測誤差算出部５２０から入力された最新の予測誤差値を符号生成部５５０に出力する。符号生成部５５０（図７）は、選択部５４０から順に入力される参照位置ＩＤ、最長連続数（ラン数）、及び予測誤差を符号化し、符号データを符号量監視部５６０と、通信装置２２（図１）又は記録装置２４（図１）とに出力する。
予測部５１０、予測誤差算出部５２０、ラン計数部５３０、選択部５４０及び符号生成部５５０は、以上の処理を注目ラインの各画素について行い、注目ラインに含まれる全画素値を再度符号化すると、Ｓ２６０の処理に移行する。
【００６３】
ステップ２６０（Ｓ２６０）において、符号化プログラム５２は、入力された画像データの全てのラインについて符号化処理が終了したか否かを判定し、未処理のラインが存在する場合に、Ｓ２００の処理に戻って、次のラインに対する処理を行い、これ以外の場合に、符号化処理（Ｓ２０）を終了する。
【００６４】
以上説明したように、本実施形態における画像処理装置２（符号化プログラム５２）は、近傍予測器を適用して注目ラインを符号化しても、その符号量が基準符号量を超える場合には、周期予測器を追加して注目ラインを再度符号化する。
このように、本画像処理装置２は、必要なときにのみ（すなわち、部分データの符号量が基準符号量を超える場合にのみ）、この部分データにおける周期性に応じた周期予測器を追加することにより、部分データ毎の周期性に適応した予測符号化処理を実現することができる。すなわち、本例の画像処理装置２は、作成者が任意にテキスチャパターンを挿入した場合でも、挿入されたテキスチャパターンの周期に適応した予測符号化処理を実施でき、図６（Ｂ）に例示したように、画像領域毎に画素値の周期性が異なる場合でも、画像領域それぞれの周期性に適応した予測符号化処理を実施できる。
また、本画像処理装置２は、部分データの符号量が基準符号量以下である場合には、周期予測器を適用せずに符号化処理を行うため、固定的に周期予測器を適用する形態よりも軽い処理負荷で符号化処理を行うことができる。
【００６５】
［第１の変形例］
次に、上記実施形態の変形例を説明する。
上記第１及び第２の実施形態では、可逆な符号化処理を具体例として説明したが、第１の変形例では、非可逆な符号化処理を説明する。
具体的には、第１の変形例の画像処理装置２は、上記実施形態で説明した第１の符号化処理（Ｓ１０）又は第２の符号化処理（Ｓ２０）の前段で、非可逆な画像処理を行って、より高い圧縮率を実現する。
【００６６】
図１０は、非可逆な画像処理を行う画像処理プログラム７の構成を説明する図である。
図１０に例示するように、画像処理プログラム７は、予測値提供部７１０、誤差判定部７２０及び画素値変更処理部７３０を有する。
この画像処理プログラム７は、図２に示された符号化プログラム５（又は、図７に示された符号化プログラム５２）の前段に設けられ、入力された画像データに対して非可逆な画像処理を施し、非可逆画像処理が施された画像データを符号化プログラム５（又は符号化プログラム５２）に出力する。
【００６７】
画像処理プログラム７において、予測値提供部７１０は、予測部５１０と同一の予測手法を用いて、注目データの予測データを生成し、生成された予測データを誤差判定部７２０に提供する。すなわち、予測値提供部７１０は、図２に示された予測制御部５００（又は、図７に示された予測制御部５０２）により適用するよう指定された予測手法を用いて、注目データの予測データを生成する。
本例の予測値提供部７１０は、デフォルトの参照位置の画素値と、予測制御部５００（又は予測制御部５０２）により追加された参照位置の画素値とを、注目画素Ｘの予測画素値として読み出す。
このように、本画像処理プログラム７は、後段の符号化プログラム５によりなされる予測符号化処理に対応し、この符号化プログラム５と協働して符号量を低減させる。
【００６８】
誤差判定部７２０は、入力された画像データの注目画素Ｘの画素値と、予測値提供部７１０により生成されたこの注目画素Ｘの予測画素値（すなわち、参照位置の画素値）とを比較して、この注目画素Ｘの画素値を変更するか否かを判定する。
本例の誤差判定部７２０は、注目画素Ｘの画素値と、この注目画素Ｘに対応する参照位置の画素値との差分値を算出し、算出された差分値が既定の許容範囲内であるか否かを判定し、いずれかの差分値が許容範囲内である場合に、注目画素Ｘの画素値を変更できると判定し、いずれの差分値も許容範囲を超える場合に、注目画素Ｘの画素値の変更を禁止する。
【００６９】
画素値変更処理部７３０は、誤差判定部７２０による判定結果に応じて、注目画素Ｘの画素値を、参照位置の画素値で置換する。
より具体的には、画素値変更処理部７３０は、誤差判定部７２０により画素値の変更が許可された場合に、符号化プログラム５（又は符号化プログラム５２）による予測の的中率が向上するように注目画素Ｘの画素値を参照位置の画素値で置換し、誤差判定部７２０により画素値の変更が禁止された場合に、入力された注目画素Ｘの画素値をそのまま符号化プログラム５（又は符号化プログラム５２）に出力する。
本例の画素値変更処理部７３０は、誤差判定部７２０により画素値の変更が許可された場合に、注目画素Ｘの画素値を、差分値の最も小さい予測データで置換する。
【００７０】
このように、本変形例の画像処理装置２は、画像処理プログラム７（図１０）における非可逆処理（画素値の置換）により、符号化プログラム５（又は符号化プログラム５２）による予測の的中率を向上させて、より高い圧縮率を実現可能にする。
【００７１】
［その他の変形例］
上記第２の実施形態では、１ラインの符号量が基準符号量を超えるか否かに基づいて、周期予測器を追加するか否かを決定しているが、これに限定されるものではなく、既定サイズの部分データにおいて、周期性（例えば、参照位置Ｚの一致率）が既定の閾値以上となる場合に、周期予測器を追加するようにしてもよい。
また、本発明は、ＬＺ符号化方式などの他の予測符号化方式にも適用可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明にかかる符号化方法が適応される画像処理装置２のハードウェア構成を、制御装置２１を中心に例示する図である。
【図２】制御装置２１（図１）により実行され、本発明にかかる符号化方法を実現する符号化プログラム５の機能構成を例示する図である。
【図３】符号化プログラム５（図２）による予測処理及び符号化処理を説明する図である。
【図４】符号化プログラム５（図２）による符号化処理（Ｓ１０）のフローチャートである。
【図５】符号化プログラム５による符号化処理の効果を説明する図である。
【図６】周期性を含む入力画像を例示する図である。
【図７】第２の符号化プログラム５２の機能構成を例示する図である。
【図８】近傍予測器及び周期予測器を説明する図である。
【図９】第２の符号化プログラム５２（図７）による符号化処理（Ｓ２０）のフローチャートである。
【図１０】非可逆な画像処理を行う画像処理プログラム７の構成を説明する図である。
【符号の説明】
【００７３】
２・・・画像処理装置
５、５２・・・符号化プログラム
５００、５０２・・・予測制御部
５１０・・・予測部
５２０・・・予測誤差算出部
５３０・・・ラン計数部
５４０・・・選択部
５５０・・・符号生成部
５６０・・・符号量監視部
５７０・・・周期抽出部
７・・・画像処理プログラム
７１０・・・予測値提供部
７２０・・・誤差判定部
７３０・・・画素値変更処理部
【図１】
2006340134.tif 000003
【図２】
2006340134.tif 000004
【図３】
2006340134.tif 000005
【図４】
2006340134.tif 000006
【図５】
2006340134.tif 000007
【図６】
2006340134.tif 000008
【図７】
2006340134.tif 000009
【図８】
2006340134.tif 000010
【図９】
2006340134.tif 000011
【図１０】
2006340134.tif 000012