(57)【要約】  【課題】  データ変換を伴う符号化処理においてデータの劣化を抑制する符号化装置を提供する。  【解決手段】  符号化装置２は、先行する画素を基準として、この基準画素の画素値とその後続画素の画素値との差分が許容範囲内である場合には、これらの基準画素の画素値及びその後続画素（少なくとも１つ）の画素値を同一の値に変換して符号化する。その際に、符号化装置２は、基準画素及びその後続画素からなる画素群の平均画素値を算出し、算出された平均画素値で、この基準画素及びその後続画素の画素値を置換することにより、画像濃度のずれやノイズの影響を緩和する。【選択図】図３
2005167552.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象として入力される入力データ列において、データの値を変換すべき部分データ列を選択する選択手段と、
前記選択手段により選択された部分データ列に含まれる複数のデータ値に基づいて、変換用のデータ値を決定する変換値決定手段と、
前記選択手段により選択された部分データ列の値を、前記変換値決定手段により決定されたデータ値に変換するデータ変換手段と、
前記データ変換手段により部分データ列の値が変換された入力データ列を符号化する符号化手段と
を有する符号化装置。
【請求項２】
前記変換値決定手段は、部分データ列に含まれる複数のデータ値に基づいて決定される平均値、中央値又は最頻値を、前記変換用のデータ値とし、
前記データ変換手段は、この部分データ列に含まれる各データの値を、前記変換値決定手段により決定された平均値、中央値又は最頻値に変換する
請求項１に記載の符号化装置。
【請求項３】
前記選択手段は、互いに連続するデータ列のうち、データの値が既定の範囲内におさまるデータ列を、前記部分データ列として選択する
請求項１又は２に記載の符号化装置。
【請求項４】
符号化対象として入力される入力データ列において互いに連続するデータ列の中から、データの値を変換すべき部分データ列を選択する選択手段と、
前記選択手段により選択された部分データ列に含まれるデータであってこの部分データ列の両端以外のデータの値を用いて、変換用のデータ値を決定する変換値決定手段と、
前記選択手段により選択された部分データ列の値を、前記変換値決定手段により決定されたデータ値に変換するデータ変換手段と、
前記データ変換手段により部分データ列の値が変換された入力データ列を符号化する符号化手段と
を有する符号化装置。
【請求項５】
前記選択手段は、入力データ列に含まれるいずれかのデータと、このデータの後続データ列であり、かつ、このデータの値を基準として既定の範囲内の値をとるデータ列とを、前記部分データ列として選択する
請求項３又は４に記載の符号化装置。
【請求項６】
符号化対象として入力される画像データにおいて、画素値を変換すべき近接画素群を選択する選択手段と、
前記選択手段により選択された近接画素群に含まれる複数の画素の画素値に基づいて、変換用の画素値を決定する変換値決定手段と、
前記選択手段により選択された近接画素群の画素値を、前記変換値決定手段により決定された変換用の画素値に変換するデータ変換手段と、
前記データ変換手段により近接画素群の画素値が変換された画像データを符号化する符号化手段と
を有する符号化装置。
【請求項７】
前記変換値決定手段は、画像領域に応じて、変換用の画素値を決定する方法を切り替える
請求項６に記載の符号化装置。
【請求項８】
前記変換値決定手段は、それぞれの画像領域の明度に応じて、変換用の画素値を決定する方法を切り替える
請求項７に記載の符号化装置。
【請求項９】
符号化対象として入力される入力データ列において、データの値を変換すべき部分データ列を選択し、
選択された部分データ列に含まれる複数のデータ値に基づいて、変換用のデータ値を決定し、
選択された部分データ列の値を、決定されたデータ値に変換し、
部分データ列の値が変換された入力データ列を符号化する
符号化方法。
【請求項１０】
コンピュータを含む符号化装置において、
符号化対象として入力される入力データ列において、データの値を変換すべき部分データ列を選択するステップと、
選択された部分データ列に含まれる複数のデータ値に基づいて、変換用のデータ値を決定するステップと、
選択された部分データ列の値を、決定されたデータ値に変換するステップと、
部分データ列の値が変換された入力データ列を符号化するステップと
を前記符号化装置のコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化対象となる入力データ列の値を変化させて符号化する符号化装置に関する。
【背景技術】
【０００２】
データの自己相関関係に着目して符号化する方法としては、例えば、ランレングス符号化、ＪＰＥＧ−ＬＳ及びＬＺ符号化（Ziv-Lempel符号化）などがある。特に、画像データの場合には、近傍の画素同士が高い相関関係を有するので、この点に着目して画像データを高い圧縮率で符号化することができる。
このような符号化方法において、データの値を変更することにより自己相関性を高めて高圧縮率を実現することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、データ変換を伴う符号化処理においてデータの劣化を抑制する符号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［符号化装置］
上記目的を達成するために、本発明にかかる符号化装置は、符号化対象として入力される入力データ列において、データの値を変換すべき部分データ列を選択する選択手段と、前記選択手段により選択された部分データ列に含まれる複数のデータ値に基づいて、変換用のデータ値を決定する変換値決定手段と、前記選択手段により選択された部分データ列の値を、前記変換値決定手段により決定されたデータ値に変換するデータ変換手段と、前記データ変換手段により部分データ列の値が変換された入力データ列を符号化する符号化手段とを有する。
【０００５】
好適には、前記変換値決定手段は、部分データ列に含まれる複数のデータ値に基づいて決定される平均値、中央値又は最頻値を、前記変換用のデータ値とし、前記データ変換手段は、この部分データ列に含まれる各データの値を、前記変換値決定手段により決定された平均値、中央値又は最頻値に変換する。
【０００６】
好適には、前記選択手段は、互いに連続するデータ列のうち、データの値が既定の範囲内におさまるデータ列を、前記部分データ列として選択する。
【０００７】
また、本発明にかかる符号化装置は、符号化対象として入力される入力データ列において互いに連続するデータ列の中から、データの値を変換すべき部分データ列を選択する選択手段と、前記選択手段により選択された部分データ列に含まれるデータであってこの部分データ列の両端以外のデータの値を用いて、変換用のデータ値を決定する変換値決定手段と、前記選択手段により選択された部分データ列の値を、前記変換値決定手段により決定されたデータ値に変換するデータ変換手段と、前記データ変換手段により部分データ列の値が変換された入力データ列を符号化する符号化手段とを有する。
【０００８】
好適には、前記選択手段は、入力データ列に含まれるいずれかのデータと、このデータの後続データ列であり、かつ、このデータの値を基準として既定の範囲内の値をとるデータ列とを、前記部分データ列として選択する。
【０００９】
また、本発明にかかる符号化装置は、符号化対象として入力される画像データにおいて、画素値を変換すべき近接画素群を選択する選択手段と、前記選択手段により選択された近接画素群に含まれる複数の画素の画素値に基づいて、変換用の画素値を決定する変換値決定手段と、前記選択手段により選択された近接画素群の画素値を、前記変換値決定手段により決定された変換用の画素値に変換するデータ変換手段と、前記データ変換手段により近接画素群の画素値が変換された画像データを符号化する符号化手段とを有する。
【００１０】
好適には、前記変換値決定手段は、画像領域に応じて、変換用の画素値を決定する方法を切り替える。
【００１１】
好適には、前記変換値決定手段は、それぞれの画像領域の明度に応じて、変換用の画素値を決定する方法を切り替える。
【００１２】
［符号化方法］
また、本発明にかかる符号化方法は、符号化対象として入力される入力データ列において、データの値を変換すべき部分データ列を選択し、選択された部分データ列に含まれる複数のデータ値に基づいて、変換用のデータ値を決定し、選択された部分データ列の値を、決定されたデータ値に変換し、部分データ列の値が変換された入力データ列を符号化する。
【００１３】
［プログラム］
また、本発明にかかるプログラムは、コンピュータを含む符号化装置において、符号化対象として入力される入力データ列において、データの値を変換すべき部分データ列を選択するステップと、選択された部分データ列に含まれる複数のデータ値に基づいて、変換用のデータ値を決定するステップと、選択された部分データ列の値を、決定されたデータ値に変換するステップと、部分データ列の値が変換された入力データ列を符号化するステップとを前記符号化装置のコンピュータに実行させる。
【発明の効果】
【００１４】
本発明の符号化装置によれば、データ変換を伴う符号化処理においてデータの劣化を抑制することができる。
【発明を実施するための最良の形態】
【００１５】
［背景と概略］
まず、本発明の理解を助けるために、その背景及び概略を説明する。
例えば、ランレングス符号化、ＪＰＥＧ−ＬＳ及びＬＺ符号化などを適用して入力データを符号化する場合に、入力データにおいて同一の値をとるデータ列の連続長が長いほど圧縮率が高くなる。そこで、符号化処理の前段において、同一の値をとるデータ列の連続長を長くするために、入力データ列に含まれるデータ値を変更する場合がある。
例えば、ＪＰＥＧ−ＬＳ（非可逆モード）では、先行する画素で決定された画素値を用いて後続の画素の画素値を置換することにより、圧縮率を高めている。なお、以下の説明において、連続する複数の画素の画素値を同一の画素値に置換することを、量子化と呼ぶ。また、以下の説明において、画像データを符号化対象の具体例として説明するが、これに限定されるものではなく、非可逆性が許容される一般的なデータ列（音声データなど）を符号化対象としてもよい。
【００１６】
図１は、量子化された場合の画像データ（量子化画像）を例示する図であり、図１（Ａ）は、先行する画素の画素値を用いて理想的な入力画像を量子化した場合を例示し、図１（Ｂ）は、先行する画素の画素値を用いて、ノイズを含む入力画像を量子化した場合を例示し、図１（Ｃ）は、画素群の平均画素値を用いて、ノイズを含む入力画像を量子化した場合を例示する。なお、図１において、破線は、入力画像の画素値を示し、一点鎖線は、量子化が許容される画素値の範囲を示し、実線は、量子化後の画素値を示す。
【００１７】
図１（Ａ）に例示するように、画像データの量子化は、先行する画素を基準画素として、この基準画素の画素値から既定の範囲内（一点鎖線）の画素値を有する後続画素群を量子化区間とし、この量子化区間に含まれる画素群を基準画素の画素値に置換することにより行われる。そして、後続画素の画素値が、上記範囲外となった場合に、この画素を次の基準画素として次の量子化区間が決定される。
本例の入力画像（破線）は、主走査方向に連続的に画素値が増加する画像であるため、量子化画像（実線）は、主走査方向に階段状に画素値が増加する画像となる。この量子化画像は、先行する画素の画素値を用いて量子化されているため、入力画像と比較して全体的に濃度が薄くなる（すなわち、画素値が小さくなる）。同様の理由により、画素値が主走査方向に単調減少する入力画像の場合には、量子化画像は、入力画像よりも全体的に濃度が濃くなる（すなわち、画素値が大きくなる）。
【００１８】
図１（Ｂ）に例示するように、画像データにノイズが含まれている場合には、このノイズの位置で量子化区間が区切られる可能性がある。このような場合に、先行する画素の画素値を用いて量子化すると、ノイズ位置を基準とした量子化区間の画素群は、ノイズの値で置換されるため、このノイズが量子化区間に拡散されることになる。
【００１９】
そこで、本実施形態における符号化装置２は、少なくとも量子化区間の両端以外の画素値を用いて、量子化に用いる画素値を決定し、決定された画素値で量子化区間の画素値を置換する。また、符号化装置２は、量子化区間に含まれる複数の画素値を用いて、量子化に用いる画素値を決定してもよい。より好ましくは、符号化装置２は、量子化区間に含まれる複数の画素値を用いて平均値、中央値又は最頻値などの統計値を算出し、この統計値で量子化区間の画素値を置換する。
例えば、量子化区間の平均画素値を量子化した場合には、図１（Ｃ）に例示するように、量子化画像の画素値は、全体的に、入力画像の画素値を同じ濃度となる。また、平均画素値を用いて量子化することにより、ノイズの影響が緩和される。
【００２０】
［ハードウェア構成］
次に、符号化装置２のハードウェア構成を説明する。
図２は、本発明にかかる符号化方法が適応される符号化装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
図２に例示するように、符号化装置２は、ＣＰＵ２１２及びメモリ２１４などを含む制御装置２１、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置およびキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２５から構成される。
符号化装置２は、例えば、本発明にかかる符号化プログラム５（後述）がプリンタドライバの一部としてインストールされた汎用コンピュータであり、通信装置２２又は記録装置２４などを介して画像データを取得し、取得された画像データを符号化してプリンタ装置３に送信する。
【００２１】
［符号化プログラム］
図３は、制御装置２１（図２）により実行され、本発明にかかる符号化方法を実現する符号化プログラム５の機能構成を例示する図である。
図３に例示するように、符号化プログラム５は、画像データ取得部５００、量子化部５１０、部分データ選択部５２０（選択手段）、代表値決定部５３０（変換値決定手段）、データ置換部５４０（データ変換手段）及び符号化部５５０を有する。
符号化プログラム５において、画像データ取得部５００は、通信装置２２又は記録装置２４などを介して、ラスタライズされた画像データを取得し、量子化部５１０及び代表値決定部５３０に対して出力する。
【００２２】
量子化部５１０は、画像データ取得部５００から入力された画像データに基づいて、量子化画像（図１）を生成し、生成された量子化画像をデータ置換部５４０に対して出力する。具体的には、量子化部５１０は、先行する画素（例えば、直左画素又は直上画素など）の画素値と、後続の画素の画素値とを比較して、その差分が既定の範囲内である場合に、この後続の画素の画素値を先行する画素の画素値で置換し、その差分が既定の範囲外である場合に、この後続の画素をそのまま出力する。すなわち、量子化部５１０は、基準となる先行画素の画素値で、画素値が近似する後続画素を塗潰す。なお、図１に例示した量子化は、主走査方向について塗潰しを行うものであったが、これに限定されるものではなく、副走査方向又は斜め方向に塗潰しを行うものであってもよい。
また、量子化部５１０は、同一の画素値で置換された部分（量子化区間）を特定するための部分特定情報（例えば、量子化画像そのもの、又は、量子化区間の区切れ目の位置情報など）を部分データ選択部５２０に対して出力する。
【００２３】
部分データ選択部５２０は、量子化部５１０から入力された部分特定情報に基づいて、量子化区間（同一の画素値で置換された部分）を特定し、特定された量子化区間の位置情報を代表値決定部５３０及びデータ置換部５４０に対して出力する。例えば、部分データ選択部５２０は、量子化部５１０から入力された量子化画像の中から、連続して同一の画素値を有する画素群を選択し、選択された画素群の座標を出力する。
【００２４】
代表値決定部５３０は、部分データ選択部５２０から入力された量子化区間の位置情報に基づいて、それぞれの量子化区間に対応する入力画像の画素群を特定し、特定された画素群の画素値に基づいて平均画素値を算出する。代表値決定部５３０は、算出された平均画素値を量子化区間の位置情報に対応付けてデータ置換部５４０に対して出力する。
【００２５】
データ置換部５４０は、量子化部５１０から入力された量子化画像のうち、部分データ選択部５２０から入力された量子化区間の位置情報に対応する位置の画素値（量子化後の画素値）を、代表値決定部５３０から入力された平均画素値で置換し、符号化部５５０に対して出力する。
【００２６】
符号化部５５０は、データ置換部５４０から入力される画像データを、データの自己相関性に基づいて符号化し、通信装置２２（図２）又は記録装置２４（図２）などを介して外部に出力する。例えば、符号化部５５０は、ランレングス符号化、ＬＺ符号化又はＪＰＥＧ−ＬＳ（可逆モード）などを適用して、データ置換部５４０から入力された画像データを符号化する。
【００２７】
［全体動作］
次に、符号化装置２による符号化処理の全体動作を説明する。
図４は、符号化プログラム５の動作（Ｓ１０）を示すフローチャートである。
図４に示すように、ステップ１００（Ｓ１００）において、画像データ取得部５００は、画像データを取得すると、取得された画像データを入力画像データとして量子化部５００及び代表置決定部５３０に対して出力する。なお、画像データ取得部５００は、取得された画像データがラスタデータでない場合には、取得された画像データをラスタデータに変換した後で、量子化部５１０及び代表置決定部５３０に対して出力する。
量子化部５１０は、画像データ取得部５００から入力された画像データを量子化し、慮鹿画像として部分データ選択部５２０及びデータ置換部５４０に対して出力する。
【００２８】
ステップ１１０（Ｓ１１０）において、部分データ選択部５２０は、量子化部５１０から入力された量子化画像の中から、連続して同一の画素値を有する画素群の範囲を判定し、同一の画素値を有する画素群の座標を代表値決定部５３０及びデータ置換部５４０に対して出力する。
【００２９】
ステップ１２０（Ｓ１２０）において、代表値決定部５３０は、画像データ取得部５００から入力された入力画像データのうち、部分データ選択部５２０から入力された座標の画素値（すなわち、量子化画像において同一の画素値を有する画素群に対応する入力画像の画素群）を選択し、選択された画素群の画素値に基づいて平均画素値を算出し、算出された平均画素値をデータ置換部５４０に対して出力する。
【００３０】
ステップ１３０（Ｓ１３０）において、データ置換部５４０は、量子化部５１０から入力された量子化画像のうち、部分データ選択部５２０から入力された座標の画素群を特定し、特定された画素群の画素値を、代表値決定部５３０から入力された平均画素値で置換する。
【００３１】
ステップ１４０（Ｓ１４０）において、符号化プログラム５は、次の量子化区間があるか否かを判断し、次の量子化区間がある場合には、Ｓ１１０の処理に戻り、これ以外の場合に、Ｓ１５０の処理に移行する。
【００３２】
ステップ１５０（Ｓ１５０）において、データ置換部５４０は、量子化区間の画素値を平均画素値で置換された量子化画像を符号化部５５０に対して出力する。
符号化部５５０は、データ置換部５４０から入力された量子化画像を符号化し、通信装置２２又は記録装置２４に対して出力する。
【００３３】
図５は、符号化部５５０によりなされる符号化処理を説明する図であり、図５（Ａ）は、符号化処理において参照する画素の位置を例示し、図５（Ｂ）は、それぞれの参照画素の画素値が注目画素Ｘと一致する場合に生成される符号を例示し、図５（Ｃ）は、符号化部５５０により出力される符号データを例示する図である。
図５（Ａ）に例示するように、符号化部５５０の参照位置は、注目画素Ｘとの相対位置として設定されている。具体的には、符号化部５５０は、注目画素Ｘの主走査方向上流の参照画素Ａ、注目画素Ｘの上方（副走査方向上流）の主走査ライン上に設定されている。本例の符号化部５５０は、注目画素Ｘの画素値と、この注目画素Ｘの近傍にある参照画素Ａ〜Ｄの画素値とを比較して、いずれかの参照画素で画素値が一致する場合に、その一致情報を符号化する。
【００３４】
具体的には、符号化部５５０は、図５（Ｂ）に例示するように、予測部（参照位置）と符号とを互いに対応付けておき、注目画素Ｘと画素値が一致した参照位置に対応する符号を出力する。また、複数の参照位置で画素値が一致した場合に、符号化部５５０は、優先順位に従って符号を出力する。なお、この優先順位は、予測値の的中率（参照画素の画素値と注目画素Ｘの画素値とが一致する確率）に応じて設定されており、ＭＲＵ（Most Recently Used）アルゴリズムにより動的に更新されてもよい。
また、それぞれの参照位置と対応付けられている符号は、例えば、各参照位置の的中率に応じて設定されたエントロピー符号であり、優先順位に対応する符号長となる。
【００３５】
また、符号化部５５０は、同一の参照位置で連続して画素値が一致する場合には、その連続数を符号化することにより、符号量を低減させる。このように、符号化部５５０は、図５（Ｃ）に例示するように、いずれかの参照位置で画素値が一致した場合には、その参照位置に対応する符号と、この参照位置で画素値が一致する連続数とを符号化し、いずれの参照位置でも画素値が一致しなかった場合には、既定の参照位置の画素値と注目画素Ｘの画素値との差分（予測誤差値）を符号化する。
【００３６】
図６は、図５を参照して説明した符号化処理に適合する量子化部５１０の機能構成を例示する図である。
図６に例示するように、量子化部５１０は、複数の予測部５１２（第１予測部５１２ａ〜第４予測部５１２ｄ）と、画素値変更処理部５１４とを含む。
第１予測部５１２ａ〜第４予測部５１２ｄは、図５に例示した符号化部５５０により参照される参照位置の画素値を読み出し、画素値変更処理部５１４に対して出力する。
画素値変更処理部５１４は、それぞれの予測部５１２（第１予測部５１２ａ〜第４予測部５１２ｄ）から入力された画素値と、注目画素Ｘの画素値とを比較して、その差分が許容範囲内である場合に、その予測部５１２から入力された画素値を注目画素Ｘの画素値として部分データ選択部５２０及びデータ置換部５４０に対して出力する。
これにより、量子化部５１０は、既出画素である参照位置Ａ〜Ｄ（図５）の画素の画素値で注目画素Ｘを塗潰す。
【００３７】
図７は、符号化部５５０の機能構成を例示する図である。
図７に例示するように、符号化部５５０は、複数の予測部５５２（第１予測部５５２ａ〜第４予測部５５２ｄ）、予測誤差算出部５５４、ラン計数部５５６及び符号生成部５５９を含む。
予測部５５２は、互いに異なる参照位置の画素値を参照して、この画素値を予測値とし、この予測値と注目画素の画素値との比較結果をラン計数部５１６に対して出力する。本例の第１予測部５５２ａ〜第４予測部５５２ｄは、それぞれ参照位置Ａ〜Ｄ（図５）の画素値と、注目画素Ｘの画素値とを比較して、画素値が一致した場合（すなわち、予測が的中した場合）に、自己を識別する予測部ＩＤをラン計数部５５６に対して出力し、これ以外の場合に、一致しなかった旨をラン計数部５５６に対して出力する。なお、予測部５５２は、１種類以上であればよく、例えば、参照位置Ａを参照する第１予測部５５２ａのみを設けてもよい。
【００３８】
予測誤差算出部５５４は、予め定められた予測方法で注目画素の画素値を予測し、その予測値を注目画素の実際の画素値から減算し、予測誤差値としてラン計数部５５６及び選択部５５８に対して出力する。予測誤差算出部５５４の予測方法は、符号データを復号化する復号化装置の予測方法と対応していればよい。本例では、予測誤差算出部５５４は、第１予測部５５２ａと同じ参照位置の画素値を予測値とし、予測値と実際の画素値との差分を算出する。
ラン計数部５５６は、同一の予測部ＩＤが連続する数をカウントし、予測部ＩＤ及びその連続数を選択部５５８に対して出力する。例えば、ラン計数部５５６は、予測誤差値が入力され場合に、内部カウンタでカウントされている予測部ＩＤ及びその連続数を出力し、その後に、入力された予測誤差値をそのまま選択部５５８に対して出力する。
【００３９】
選択部５５８は、ラン計数部５５６から入力された予測部ＩＤ、連続数及び予測誤差値に基づいて、最も長く連続した予測部ＩＤを選択し、この予測部ＩＤ及びその連続数並びに予測誤差値を予測データとして符号生成部５５９に対して出力する。
符号生成部５５９は、選択部５５８から入力された予測部ＩＤ、連続数及び予測誤差値を符号化し、通信装置２２又は記録装置２４などに出力する。
【００４０】
以上説明したように、本実施形態における符号化装置２は、画素値が既定の範囲（画素値の変更が許容される範囲）内にある連続画素群を同一の画素値で変換する場合に、これらの連続画素群の平均値、中央値又は最頻値に変換することにより、画素値変換に伴う画像劣化を緩和する。
【００４１】
［第１変形例］
次に、上記実施形態の第１の変形例を説明する。
第１の変形例における符号化装置２は、量子化区間を同一の画素値で置換する場合に、その量子化区間の画像属性に応じた方法で置換用の画素値を決定し、決定された置換用の画素値で量子化区間の画素値を置換する。例えば、文字画像の領域では、最小画素値及び最大画素値で構成される場合が多い。このような領域において、ノイズなどが含まれる画素群の画素値に基づいて平均画素値が算出されると、中間的な画素値（すなわち、最大画素値及び最小画素値以外の画素値）となり、この平均画素値で文字画像領域の画素値を置換することは好ましくない。
そこで、第１の変形例における符号化装置２は、文字画像などの階調数が少ない画像と、自然画などの階調数が多い画像とで、異なる方法で量子化区間の置換用画素値を決定する。
【００４２】
図８は、第１の変形例における符号化装置２の全体動作（Ｓ２０）を説明するフローチャートである。なお、本図における各処理のうち、図４に示された処理と実質的に同一のものには同一の符号が付されている。
Ｓ１１０において、部分データ選択部５２０は、連続して同一の画素値を有する画素群の範囲（量子化区間）を判定し、量子化区間の座標を代表値決定部５３０及びデータ置換部５４０に対して出力する。
【００４３】
ステップ２１５（Ｓ２１５）において、部分データ選択部５２０は、判定された量子化区間の画像属性（文字画像、写真画像など）を、タグデータ又は画素値のヒストグラム等に基づいて判定し、判定された画像属性を代表値決定部５３０に対して出力する。符号化プログラム５は、量子化区間が文字画像等のように基準階調数よりも低階調の画像領域である場合に、Ｓ２３５の処理に移行し、量子化区間が写真画像等のように基準階調数よりも高階調の画像領域である場合に、Ｓ１２０の処理に移行する。
【００４４】
ステップ２３５（Ｓ２３５）において、代表値決定部５３０は、量子化区間に対応する入力画像データの画素値の中から、最大画素値又は最小画素値を選択して、選択された最大画素値又は最小画素値を代表値としてデータ置換部５４０に対して出力する。すなわち、代表値決定部５３０は、量子化区間に対応する入力画像データにおいて、最大画素値（例えば２５５）に近い画素値が多く含まれる場合には、最大画素値を代表値とし、最小画素値（例えば０）に近い画素値が多く含まれる場合には、最小画素値を代表値とする。
一方、Ｓ１２０では、代表値決定部５３０は、量子化区間に対応する入力画像データの平均画素値を代表値としてデータ置換部５４０に対して出力する。
【００４５】
Ｓ１３０において、データ置換部５４０は、量子化部５１０から入力された量子化画像のうち、部分データ選択部５２０から入力された座標の画素群を特定し、特定された画素群の画素値を、代表値決定部５３０から入力された最大画素値、最小画素値又は平均画素値で置換する。
【００４６】
これにより、符号化装置２は、画像領域の画像属性に適合した画素値で量子化を行うことができる。
【００４７】
［第２変形例］
次に、第２の変形例を説明する。
画像データの量子化による画質劣化は、ハイライト領域で目立ちやすいが、シャドー領域では目立ちにくい。
そこで、第２の変形例における符号化装置２は、部分画像がハイライト領域であるかシャドー領域であるかを判定し、部分画像がハイライト領域であると判定された場合に、上記実施形態と同様に平均画素値を算出して、この平均画素値で置換された量子化画像を符号化し、部分画像がシャドー領域であると判定された場合に、この部分画像に対応する量子化画像をそのまま符号化する。
【００４８】
図９は、第２の変形例における符号化装置２の全体動作（Ｓ３０）を説明するフローチャートである。なお、本図における各処理のうち、図４に示された処理と実質的に同一のものには同一の符号が付されている。
Ｓ１１０において、部分データ選択部５２０は、連続して同一の画素値を有する画素群の範囲（量子化区間）を判定し、量子化区間の座標を代表値決定部５３０及びデータ置換部５４０に対して出力する。
【００４９】
ステップ２１５（Ｓ２１５）において、部分データ選択部５２０は、判定された量子化区間の画素値に基づいて、この画像領域の明度（又は輝度）を判定する。符号化プログラム５は、この画像領域の明度（又は輝度）が基準値よりも高い場合に、Ｓ１２０の処理に移行し、この画像領域の明度（又は輝度）が基準値よりも低い場合に、Ｓ１２０及びＳ１３０の処理をスキップして、Ｓ１４０の処理に移行する。すなわち、本変形例における符号化プログラム５は、画像領域の明度（又は輝度）が基準値よりも高い場合にのみ、平均画素値の算出処理及び平均画素値による置換処理を行い、画像領域の明度（又は輝度）が基準値よりも低い場合に、量子化画像をそのまま符号化処理の対象とする。
【００５０】
このように、本変形例における符号化装置２は、画像領域の明度（又は輝度）が基準値よりも高い場合にのみ、平均画素値の算出処理及び平均画素値による置換処理を行い、画像領域の明度（又は輝度）が基準値よりも低い場合に、量子化画像をそのまま符号化する。これにより、シャドー部での処理を簡略化して、処理負荷の低減及び符号化処理の高速化を図ることができる。
【００５１】
また、符号化装置２は、各画素の色に応じて、平均画素値の算出処理及び平均画素値による置換処理を行うか否かを切り替えてもよい。例えば、符号化装置２は、画像の主題を表現する色（肌色又は空色など）について、平均画素値の算出処理及び平均画素値により置換処理を行い、これら以外の色について、平均画素値の算出処理及び平均画素値により置換処理を省略する。
【図面の簡単な説明】
【００５２】
【図１】量子化された場合の画像データ（量子化画像）を例示する図であり、（Ａ）は、先行する画素の画素値を用いて理想的な入力画像を量子化した場合を例示し、（Ｂ）は、先行する画素の画素値を用いて、ノイズを含む入力画像を量子化した場合を例示し、（Ｃ）は、画素群の平均画素値を用いて、ノイズを含む入力画像を量子化した場合を例示する。
【図２】本発明にかかる符号化方法が適応される符号化装置２のハードウェア構成を、制御装置２０を中心に例示する図である。
【図３】制御装置２１（図２）により実行され、本発明にかかる符号化方法を実現する符号化プログラム５の機能構成を例示する図である。
【図４】符号化プログラム５の動作（Ｓ１０）を示すフローチャートである。
【図５】符号化部５５０によりなされる符号化処理を説明する図であり、（Ａ）は、符号化処理において参照する画素の位置を例示し、（Ｂ）は、それぞれの参照画素の画素値が注目画素Ｘと一致する場合に生成される符号を例示し、（Ｃ）は、符号化部５５０により出力される符号データを例示する。
【図６】図５を参照して説明した符号化処理に適合する量子化部５１０の機能構成を例示する図である。
【図７】符号化部５５０の機能構成を例示する図である。
【図８】第１の変形例における符号化装置２の動作（Ｓ２０）を説明するフローチャートである。
【図９】第２の変形例における符号化装置２の全体動作（Ｓ３０）を説明するフローチャートである。
【符号の説明】
【００５３】
２・・・符号化装置
５・・・符号化プログラム
５００・・・画像データ取得部
５１０・・・量子化部
５２０・・・部分データ選択部
５３０・・・代表値決定部
５４０・・・データ置換部
５５０・・・符号化部
【図１】
2005167552.tif 000003
【図２】
2005167552.tif 000004
【図３】
2005167552.tif 000005
【図４】
2005167552.tif 000006
【図５】
2005167552.tif 000007
【図６】
2005167552.tif 000008
【図７】
2005167552.tif 000009
【図８】
2005167552.tif 000010
【図９】
2005167552.tif 000011