(57)【要約】【課題】  階調画像と文字／線画とが混在した画像をブロック単位に符号する場合に、文字／線画の画素が存在した画素を置き換える置換値を、周波数変換後の直流成分の発生をほぼゼロする値にするブロック歪を最小化することができる。また、隣接するブロックの階調画像の性質がほぼ等しい限りにおいては、隣接するブロックの直流成分が同じなる確率を高めることで、高い圧縮率を得る。【解決手段】  直前のサブブロックの直交変換の直流成分値から導き出される置換候補値が、注目サブブロックの階調属性を持つ画素群の値の範囲内にある場合、置換値生成部１０５は、注目サブブロックの直流成分値が、直前のサブブロックの直交変換の直流成分値と近似させる値を置換値として決定する。そして、注目サブブロック内の文字線画として判定された画素データを、置換値で置換し、出力する。【選択図】  図１
2008104121.tif 000002
【特許請求の範囲】
【請求項１】
文字／線画画像データと階調画像データが混在した画像データを符号化する画像符号化装置であって、
画像データを複数の画素で構成されるブロックを単位に入力する入力手段と、
入力したブロックの画像データから、文字／線画の画素データと、文字線画の画素データか階調属性の画素データかを識別するための識別情報を抽出する抽出手段と、
該抽出手段で抽出した前記文字／線画画素データを符号化する第１の符号化手段と、
前記抽出手段で抽出した前記識別情報を符号化する第２の符号化手段と、
前記入力手段で入力したブロックに含まれる、直交変換を行なう単位であるサブブロックの各々に対し、当該サブブロック中の文字／線画として抽出した画素データを、階調属性を持つ画素データに基づいて決定される置換値で置換する置換手段と、
該置換手段で置換された後の各サブブロックの画像データを直交変換し、符号化する第３の符号化手段と、
前記第１乃至第３の符号化手段で生成された符号化データを合成し、ブロック単位の符号化データを生成する符号列生成手段とを備え、
前記置換手段は、
注目サブブロックが階調属性を持つ画素のみで構成されると仮定した場合の直流成分を算出する直流成分算出手段と、
直前のサブブロックの直流成分値に基づいて決定される置換候補値が、注目サブブロック内の階調属性を持つ画素群の値の範囲内にあるか否かを判断する判断手段と、
該判断手段で、前記置換候補値が前記範囲内にあると判断した場合、注目サブブロックの直流成分値が前記直前のサブブロックの直流成分値と近似する値を前記置換値として決定し、
前記判断手段で、前記置換候補値が前記範囲外にあると判断した場合、注目サブブロックが階調属性の画素のみを持つと仮定した場合の前記注目サブブロックの直流成分値に近似させる値を、前記置換値とする決定手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
第１、第２の符号化手段は可逆符号化手段であり、前記第３の符号化手段は非可逆のＪＰＥＧ符号化手段であって、
１サブブロック内の文字線画の属性を持つ画素の個数をＮ、階調属性を持つ画素データの総和、及び、その平均値をＤ，Ｄａｖｅとしたとき、
前記直流成分算出手段は、ＤＣＴ変換時に算出される直流成分ＤＣを、次式によって求め、
ＤＣ＝（Ｄ＋Ｄａｖｅ×Ｎ−１２８×６４）／８
前記決定手段は、直前のサブブロックの直流成分をＤＣ-1、注目サブブロックの直流成分をＤＣ0としたとき、注目サブブロックにおける前記置換値Ｚを次式のいずれかに従って決定する
Ｚ＝（８×Ｄｐ-1−Ｄ＋１２８×６４）／Ｎ
又は、
Ｚ＝（８×Ｄｐ0−Ｄ＋１２８×６４）／Ｎ
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
更に、前記置換手段は、前記置換値Ｚを求める際に発生した剰余値Ｒを次式に従って求め、
Ｒ＝（８×Ｄｐ-1−Ｄ＋１２８×６４）  ％  Ｎ
又は、
Ｒ＝（８×Ｄｐ0−Ｄ＋１２８×６４）  ％  Ｎ
（Ａ％Ｂは整数Ａを整数Ｂで除算した際の余りを返す関数）
前記文字線画として判定された「Ｎ−Ｒ」個の画素のデータを置換値Ｚで置換し、
前記文字線画として判定されたＲ個の画素のデータを「Ｚ＋１」で置換する
ことを特徴とする請求項２に記載の画像符号化装置。
【請求項４】
注目サブブロックが１ブロックの先頭のサブブロックである場合、前記決定手段は、注目サブブロックが階調属性の画素のみを持つと仮定した場合の直流成分値に近似する値を前記置換値とすることを特徴とする請求項１に記載の画像符号化装置。
【請求項５】
文字／線画画像データと階調画像データが混在した画像データを符号化する画像符号化装置の制御方法であって、
画像データを複数の画素で構成されるブロックを単位に入力する入力工程と、
入力したブロックの画像データから、文字／線画の画素データと、文字線画の画素データか階調属性の画素データかを識別するための識別情報を抽出する抽出工程と、
該抽出工程で抽出した前記文字／線画画素データを符号化する第１の符号化工程と、
前記抽出工程で抽出した前記識別情報を符号化する第２の符号化工程と、
前記入力工程で入力したブロックに含まれる、直交変換を行なう単位であるサブブロックの各々に対し、当該サブブロック中の文字／線画として抽出した画素データを、階調属性を持つ画素データに基づいて決定される置換値で置換する置換工程と、
該置換工程で置換された後の各サブブロックの画像データを直交変換し、符号化する第３の符号化工程と、
前記第１乃至第３の符号化工程で生成された符号化データを合成し、ブロック単位の符号化データを生成する符号列生成工程とを備え、
前記置換工程は、
注目サブブロックが階調属性を持つ画素のみで構成されると仮定した場合の直流成分を算出する直流成分算出工程と、
直前のサブブロックの直流成分値に基づいて決定される置換候補値が、注目サブブロック内の階調属性を持つ画素群の値の範囲内にあるか否かを判断する判断工程と、
該判断工程で、前記置換候補値が前記範囲内にあると判断した場合、注目サブブロックの直流成分値が前記直前のサブブロックの直流成分値と近似する値を前記置換値として決定し、
前記判断工程で、前記置換候補値が前記範囲外にあると判断した場合、注目サブブロックが階調属性の画素のみを持つと仮定した場合の前記注目サブブロックの直流成分値に近似させる値を、前記置換値とする決定工程と
を備えることを特徴とする画像符号化装置の制御方法。
【請求項６】
コンピュータが読込み実行することで、コンピュータに請求項１乃至４のいずれか１項に記載の画像処理装置として機能させることを特徴とするコンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを圧縮符号化する技術に関するものである。
【背景技術】
【０００２】
従来、画像を符号化する方法として知られているものとしてＪＰＥＧが挙げられる。このＪＰＥＧ符号化は、画像データ中の８×８画素のブロックを単位に符号化するものである。以下に説明する処理は全てこのブロックを単位として実行するものである。
【０００３】
先ず、入力したブロックに対し、直交変換（ＤＣＴ；Discrete Cosine Transform）を行い、８×８個の直交変換係数を得る。次に、この直交変換係数に対して、量子化テーブルを用いて量子化を行う。ここで、量子化テーブルの要素の値を量子化ステップ幅と呼ぶ。量子化ステップ幅は、高周波成分の直交変換係数ほど大きい。量子化は、各直交変換係数をそれぞれに対応する量子化ステップ幅で除算し、小数点以下を四捨五入して丸めを行うものである。それ故、量子化後の値は高周波成分ほど小さな値になり、０の発生頻度が高くなる。次に、量子化後の値に対してＤＣ成分（１つ）とＡＣ成分（６３個）で別々の符号化を行う。
【０００４】
ＤＣ成分に関しては、ブロック間の相関が強いため差分予測符号化を行った後、ハフマン符号化される。差分予測符号化は直前の値との差を符号化する方式である。ハフマン符号化は、発生頻度の高い値には短い符号を、発生頻度の低い値には長い符号を与えることで結果的に全体の符号長を短くする符号化方法である。
【０００５】
ＡＣ成分に対しては、ランレングス符号化を行った後、ハフマン符号化を行う。ランレングス符号化は、同一の値が長く続くほど符号化率が向上する符号化方法である。量子化後の値に対してジグザグスキャンを行うことにより、高周波成分の０の値を連続させることで符号化効率を向上させている。
【０００６】
ＪＰＥＧ符号化は、デジタルカメラ等のデバイスに搭載されていることもからもわかるように、自然画像に対しては良好な圧縮方法である。他方、文字や線画などの含まれる画像に対しては、画像の高周波成分が失われることを原因とするモスキートノイズや、直流成分の量子化誤差や高周波成分が失われることを原因とするブロック歪が起こりやすいという問題がある。そのため文字や線画などの解像度が保持したまま圧縮する方法として、画像を直交変換の単位となるブロックに分割する。そして、ブロック単位で予め指定された色若しくは濃度値の文字や線画などの解像情報を抽出し、その抽出した領域に対して適当な値で置換処理を行った階調情報を直交変換等で符号化する。一方、ブロック単位の色情報に対しては予測符号化等で符号化するといった方法が提案されている。
【０００７】
これは、画像を高周波成分の比較的少ない自然画像と、局所的に同一の濃度値を有する２値的な情報である文字や線画を合成したものとして仮定するものである。そして、その画像に対して直交変換符号化を用いて圧縮・伸長する際に発生する信号歪から文字や線画の情報を保護するために、文字・線画の２値情報を予め抽出しておき、２値情報に対しては劣化の生じない可逆符号化を行う。
【０００８】
例えば特許文献１においては、抽出領域への置換処理にて、ブロック内の抽出領域以外の領域を参照して置換処理を行う。具体的には、平均値演算部において抽出領域以外の領域の平均値を算出し、得られた平均値で抽出領域に対して置換処理を行う。あるいは、入力された画素を１サイクル遅延させ、抽出領域の画素に対して、その遅延させた画素で置換を行うという方法が示されている。このような方法で直交変換後のスペクトルを低周波領域に集中させ、圧縮・伸張後の画質劣化を抑える効果を得られる。
【特許文献１】特開平４−３２６６６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記従来の画像処理方法では、直交変換後の量子化の際に用いる量子化ステップ幅が粗いと、量子化誤差が発生する可能性が高く、その量子化誤差が画像のブロック歪を引き起こす原因の一つになっているという問題が残る。
【００１０】
また、直交変換後の係数のうち直流成分値を符号化する場合、注目ブロックの直流成分と、前のブロックの直流成分値との差分を符号化することが行われる。文字線画を含まない階調画像中の２つのブロックの直流成分はほぼ同じ値となるので、その差分は小さなものとなり、符号化効率は高いと言える。
【００１１】
しかしながら、階調画像上に文字線画が含まれる領域内の２つ隣接ブロックに着目する。このようなケースの場合、それぞれのブロックに含まれる文字線画の画素数が同じとなることはむしろ希であり、必然、２つのブロックの直流成分の差はゼロになる可能性は低い。つまり、直流成分の符号化データ長は最小とはならず、まだまだ改善の余地が残る。
【００１２】
本発明はかかる問題点に鑑みなされたものであり、ブロック歪みの発生を抑制し、階調画像と文字／線画とが混在した画像を効率良く符号化する技術を提供しようとするものである。
【課題を解決するための手段】
【００１３】
かかる課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
文字／線画画像データと階調画像データが混在した画像データを符号化する画像符号化装置であって、
画像データを複数の画素で構成されるブロックを単位に入力する入力手段と、
入力したブロックの画像データから、文字／線画の画素データと、文字線画の画素データか階調属性の画素データかを識別するための識別情報を抽出する抽出手段と、
該抽出手段で抽出した前記文字／線画画素データを符号化する第１の符号化手段と、
前記抽出手段で抽出した前記識別情報を符号化する第２の符号化手段と、
前記入力手段で入力したブロックに含まれる、直交変換を行なう単位であるサブブロックの各々に対し、当該サブブロック中の文字／線画として抽出した画素データを、階調属性を持つ画素データに基づいて決定される置換値で置換する置換手段と、
該置換手段で置換された後の各サブブロックの画像データを直交変換し、符号化する第３の符号化手段と、
前記第１乃至第３の符号化手段で生成された符号化データを合成し、ブロック単位の符号化データを生成する符号列生成手段とを備え、
前記置換手段は、
注目サブブロックが階調属性を持つ画素のみで構成されると仮定した場合の直流成分を算出する直流成分算出手段と、
直前のサブブロックの直流成分値に基づいて決定される置換候補値が、注目サブブロック内の階調属性を持つ画素群の値の範囲内にあるか否かを判断する判断手段と、
該判断手段で、前記置換候補値が前記範囲内にあると判断した場合、注目サブブロックの直流成分値が前記直前のサブブロックの直流成分値と近似する値を前記置換値として決定し、
前記判断手段で、前記置換候補値が前記範囲外にあると判断した場合、注目サブブロックが階調属性の画素のみを持つと仮定した場合の前記注目サブブロックの直流成分値に近似させる値を、前記置換値とする決定手段とを備える。
【発明の効果】
【００１４】
本発明によれば、階調画像と文字／線画とが混在した画像をブロック単位に符号する場合に、文字／線画の画素が存在した画素を置き換える置換値を、周波数変換後の直流成分の発生をほぼゼロする値にするブロック歪を最小化することができる。また、隣接するブロックの階調画像の性質がほぼ等しい限りにおいては、隣接するブロックの直流成分が同じなる確率を高めることで、高い圧縮率を得ることが可能になる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１６】
図５は実施形態における画像圧縮装置のブロック構成図である。
【００１７】
ブロック化部５０１は、符号化対象の画像データからｎ×ｍ画素で構成されるブロックを単位に入力し、それを８×８画素のサブブロック単位に分割し、そのサブブロックの画像データを出力する。ここで、ｎ、ｍは８の整数倍である。説明を簡単なものとするため、ここでは、ｎ＝ｍ＝１６として説明する。すなわち、ブロック化部５０１は、図６に示すように、１６×１６画素のブロックを入力し、４つの８×８画素のサブブロックの画像データを出力する。出力順は、図６に示すようにサブブロック０、１、２、３の順であるとする。
【００１８】
抽出部５０１は、ブロックの画像（４つのサブブロックの画像）から、予め定められた方法により抽出色を決定し、出力する。また、抽出部５０１はブロック内に存在する抽出色の位置を示した情報を、位置情報として出力する。この位置情報は、ブロック内の各画素が、抽出色領域内の画素であるか、非抽出色領域内の画素であるかを示す識別情報とも言える。それ故、この位置情報は１６×１６個の２値データ、すなわち、１６×１６ビットのデータである。
【００１９】
置換部５０３は、入力された位置情報より、サブブロック単位に抽出色領域の画素に対して置換処理を行い、階調情報として出力する。
【００２０】
第１の符号化部５０４は、入力されたブロックの抽出色情報を可逆圧縮して出力する。第２の符号化部５０５は、入力されたブロックの位置情報を可逆圧縮して出力する。第３の符号化部５０６は、入力されたブロックに含まれる４つのサブブロックの階調情報を非可逆圧縮（実施形態ではＪＰＥＧ符号化）して出力する。そして、符号列生成部５０７は、各符号化部で生成された符号化データを結合し、ブロック単位の符号化データ列を生成し、出力する。
【００２１】
説明を簡単なものとするため、本実施形態での符号化対象の画像データは１画素１成分であり、１画素が８ビット（２５６階調）の画像（グレースケール画像）とする。また、値２５５は黒、値０は白として説明する。つまり、画素値は濃度を示すとして説明する。ただし、これは一例であって、これに限るものではない。
【００２２】
実施形態における抽出部５０２について先ず、説明する。
【００２３】
自然画もしくはＣＧグラデーション画像中に、黒もしくは黒に近い文字線画が存在するとき、そのブロックの濃度のヒストグラムは図７（ａ）、（ｂ）のようになる。図７（ａ）は文字線画の濃度が、背景（自然画、ＣＧグラデーション画像）の濃度に対して、十分に異なる値を持っている場合を示している。この状況はちょうど、文字線画が背景画像とはっきりと区別して視認できる状況である。同図（ｂ）は、同図（ａ）ほどではないが、文字線画と背景とは一応区別できる状況を示している。いずれの場合でも、頻度のピークは２つ現れるので、２つのピーク間の極小値の位置（図１０（ａ）の場合には、２つのピーク間の無頻度の位置でも良い）を閾値として決定する。
【００２４】
抽出部５０２は、上記のようにして閾値を決定し、閾値を越える値を持つ画素を抽出色を持つ画素として決定する。そして、抽出色を持つ画素位置を特定するため、入力したブロックの１６×１６画素を、決定した閾値で２値化し、これを位置情報として符号化部５０５、置換部５０３に出力する。なお、２値化は、閾値を越える画素値は“１”、閾値以下の画素値は“０”とする。図８（ａ）は、この位置情報を示している。また、置換部５０３は、８×８画素のサブブロック単位に置換処理を行なう。従って、抽出部５０２は、抽出した１６×１６ビットの位置情報のうち、置換部５０３の置換処理で利用されるサブブロックに相当する位置の８×８ビットの位置情報を置換部５０３に供給する。なお、置換部５０３内に、１ブロック分の位置情報を記憶保持するバッファを備える場合には、この限りではない。
【００２５】
抽出部５０２は、１ブロック分の１６×１６をラスタースキャンし、位置情報が“１”である入力画素値を順番に抽出して、図８（ｂ）のように一次元に並べ、その画素値を抽出色情報として符号化部５０４に出力する。
【００２６】
符号化対象の画像データは、イメージスキャナ等で光学的に読取った画像データである場合、読取り精度等に起因して、文字線画の各画素は単一色となるとは限らない。従って、図８（ｂ）に示すように、ある程度ばらついた値となるが、その分散は小さい。従って、本実施形態における符号化部５０４は、例えば予測符号化を利用した可逆符号化を採用する。
【００２７】
なお、イメージスキャナを介在せず、コンピュータからダイレクトに出力された画像データ、或いは、コンピュータからの印刷データに従ってレンダリングした画像を符号化する場合、誤差は発生しないので、文字線画は単一の色（濃度）となる。従って、このような場合には、閾値を越える画素は全て同じ値を持つので、抽出色情報は１個のデータとなる。この場合、符号化部５０４はその１個のデータを符号化すればよい。
【００２８】
また、位置情報は、図８（ａ）に示すように１６×１６個の２値データであるので、符号化部５０５は、２値データに特化した可逆符号化（予測符号化、ランレングス符号化等）を行なえばよい。
【００２９】
また、抽出部５０２は、ブロック内の濃度に対する頻度のピークが１つしか存在しなかった場合、言い替えれば、ブロック内に抽出色の領域が存在しない場合、位置情報の全ビットを“０”として出力する。このとき、抽出部５０２は、注目ブロック内に抽出色情報無しを示す信号を符号列生成部５０７に出力する。また、ブロック内に抽出色領域が存在する場合には、抽出色情報有りを示す信号を符号列生成部５０７に出力する。
【００３０】
一方、実施形態における符号化部５０６は、ＪＰＥＧ（非可逆）符号化を行なう。ＪＰＥＧ符号化は、デジタルカメラ等に搭載された符号化技術であり、自然画に対して高い圧縮率を有することで知られている。このＪＰＥＧは、人間の視覚が高周波成分に対して鈍感であることを利用し、その高周波成分をある程度除去して情報量を少なくしてから、符号化するものである。しかしながら、文字線画等は、そのエッジが鮮明であることが望ましい。言い方を変えれば、文字線画は高周波成分が維持されることが望ましいと言える。
【００３１】
かかる点、本実施形態では、文字線画部分は、符号化部５０５、５０４にて可逆符号化されることになり、理論上、完全に元の値に復元できる。
【００３２】
ＪＰＥＧ符号化は、８×８画素のサブブロックのＤＣＴ変換（直交変換）、量子化、エントロピー符号化の処理を経て、符号化データを生成する。文字線画を含むサブブロックをＤＣＴ変換すると、その文字線画の存在によって得られる変換係数に影響が現れる。また、量子化処理では、高周波成分の変換係数ほど大きな量子化ステップで量子化するが、それでも完全に高周波成分をカットするわけにはいかない。もし、高周波成分を完全にカットするほど大きな量子化ステップを用いてしまうと、自然画と言えども画質が劣化したものとなってしまうからである。
【００３３】
そこで、本実施形態では、文字線画が存在するサブブロックをＪＰＥＧ符号化する際、そのサブブロックには文字線画が存在していないのと等価のブロックを生成し、符号化部５０６でＪＰＥＧ符号化を行なうようにする。これを実現するのが、図５の置換部５０３である。
【００３４】
以下、実施形態における置換部５０３について説明する。
【００３５】
図１は、実施形態における置換部５０３の詳細ブロック図である。置換部５０３は、目標値算出部１０１、係数値算出部１０２、代表値生成部１０３、２つの置換候補値算出部１０４及び１０７、置換値生成部１０５、代表値選択部１０６、及び、候補値選択部１０８で構成される。以下、実施形態における置換部５０３を構成する各構成要素について説明する。
【００３６】
目標値算出部１０１は、１サブブロック分の８×８画素データと、該当するサブブロックの８×８ビットの位置情報をもとに、抽出色を持つ画素を除く画素の値の合計値Ｄ、抽出色を持つ画素を除く画素（非抽出色領域の画素）の値の平均値Ｄave、及び、抽出色として判定された画素の個数Ｎを算出する。また、目標値算出部１０１は、非抽出色領域内の画素値の最大値Ｍａｘ、最小値Ｍｉｎを求める。
【００３７】
ここで予め説明しておくが、抽出色と判定された画素の個数Ｎが０の場合、以下に説明する処理は行なわず、置換生成部１０５は、入力した画素値をそのまま符号化部９０６に出力するものである。以下では、Ｎが０以外である場合の説明である点に注意されたい。また、抽出色と判定された画素数ではなく、非抽出色と判定された画素数でも構わない。「抽出色と判定された画素数＝６４−非抽出色と判定された画素数」の関係を有し、一方を算出することは、他方を算出することと等価であるからである。
【００３８】
サブブロックの８×８画素内の座標（ｉ，ｊ）の画素の値をＸi,jと表わし、８×８個の位置情報をＴi,jとする。ここで、Ｔi,jは、“０”、“１”のいずれかの値である。Ｔi,j＝１の場合、画素Ｘi,jは抽出色を持つ画素、すなわち、文字線画として判定された画素を意味する。Ｔi,j＝０の場合、画素Ｘi,jは非抽出色を持つ画素、すなわち、自然画（or背景画像）として判定された画素を意味する（図８（ａ）参照）。従って、合計値Ｄ、平均値Ｄave、個数Ｎは次のように算出される。また、ｉ，ｊは０以上７以下の整数である。
Ｎ＝ΣΣＴi,j
Ｄ＝ΣΣＸi,j×（１−Ｔi,j）
Ｄave＝Ｄ／（６４−Ｎ）
ここでΣΣはi,j=0,1,2,…7の合算を示す。
【００３９】
図２は、目標値算出部１０１の具体的な処理手順を示すフローチャートである。以下、同図にしたがってその処理手順を説明する。
【００４０】
先ず、ステップＳ２０１では、合計値を求める変数Ｄと個数を求める変数Ｎをそれぞれ０に初期化する。また、最小値ＭＩＮに初期値として“２５５”、最大値ＭＡＸに初期値として“０”を代入する。
【００４１】
次いで、ステップＳ２０２において、注目画素が抽出色領域内の画素か否か、すなわち、注目画素が抽出色を持つ画素であるか否かを、位置情報に基づき判定する。注目画素が非抽出色領域の画素であると判定した場合、処理はステップＳ２０３に進み、変数Ｄに注目画素データの値を加算する。そして、ステップＳ２０９に処理を進める。
【００４２】
一方、注目画素が抽出色領域内の画素であると判定した場合、処理はステップＳ２０４にすすみ、変数Ｎを“１”だけ増加する。
【００４３】
この後、処理はステップＳ２０５に進み、注目画素の値が変数ＭＩＮの値より小さいか否かを判断する。注目画素値が変数ＭＩＮの値より小さいと判断した場合、ステップＳ２０６にて、変数ＭＩＮに注目画素の値を代入することで、変数ＭＩＮを更新する。
【００４４】
また、ステップＳ２０７では、注目画素の値が変数ＭＡＸの値より大きいか否かを判断する。注目画素値が変数ＭＡＸの値より大きいと判断した場合、ステップＳ２０８にて、変数ＭＡＸに注目画素の値を代入することで、変数ＭＡＸを更新する。
【００４５】
ステップＳ２０９では、サブブロック内の全画素（６４画素）分の処理を行なったか否かを判断する。否の場合には、次の画素の処理を行なうため、ステップＳ２０２以降の処理を繰り返す。
【００４６】
また、ステップＳ２０９にて、サブブロック内の全画素分の処理が行なったと判断した場合、処理はステップＳ２１０に進み、上記のようにして求めたＤ、Ｎに基づき、非抽出色領域内の画素の平均値Ｄａｖｅを求める。
【００４７】
以上の結果、目標値算出部１０１は、サブブロック単位に、非抽出色領域の画素値の合計値Ｄ及びその平均値Ｄａｖｅ、抽出色領域内の画素数Ｎ、及び、非抽出領域内の最大値ＭＡＸ及び最小値ＭＩＮを得ることができる。
【００４８】
次に、係数値算出部１０２について説明する。この係数値算出部１０２は、目標値算出部１０１より出力された合計値Ｄ、平均値Ｄave、個数Ｎに基づき、ＤＣＴ変換で得られる直流成分であるＤＣ係数を算出する。
【００４９】
一般に、ＤＣＴ変換は、画素値をＸi,j、変換して得られる係数をＹu,vとするとき、次の演算を行なう。
Ｙu,v＝(1/4)α(u)α(v)ΣΣ(Xi,j-128)cos((2i+1)uπ/16)cos((2j+1)vπ/16)
【００５０】
ここで、直流成分ＤＣを求める場合に限ると、ｕ、ｖは共に“０”となり、α（０）は１／√２である。従って、ＤＣＴ変換後の直流成分ＤＣは次式（１）となる。
ＤＣ＝Ｙ0,0＝（１／８）ΣΣ（ｘi,j-128）  …（１）
【００５１】
本実施形態の置換部９０３は、基本的には、サブブロック内の抽出色を持つと判定された画素の値を、非抽出色と判定された画素の平均値Ｄaveを持つように置換する。このため、係数値算出部１０２は、上記式（１）を、目標値算出部１０１で算出されたＤ、Ｄａｖｅ、Ｎを用いて次式（２）のように変形し、仮のＤＣ成分を算出し、代表値生成部１０３に出力する。
ＤＣ＝｛非抽出色領域の画素の合計値＋（非抽出色領域の画素の平均値＊抽出色領域内の画素数）−１２８×６４｝／８
＝（Ｄ＋Ｄave×Ｎ−１２８×６４）／８    …（２）
【００５２】
次に、実施形態における代表値生成部１０３について説明する。
【００５３】
ＪＰＥＧでは、先に説明したように、ＤＣＴ変換して得られた各係数を量子化する。ここで、実施形態における符号化部５０６で行なうＤＣ成分の量子化ステップ値は「１６」であるとして説明する。通常、量子化した際、小数点以下の値が発生するので、小数点以下を四捨五入することが行われる。
【００５４】
そこで、本実施形態の代表値生成部１０３は、係数値算出部１０２で算出されたＤＣ成分値に「８」（量子化ステップの半分の値）を加算した後、下位４ビットを０にする。この結果、係数値算出部１０２で算出されたＤＣ成分値を、量子化ステップの整数倍にでき、符号化部５０６で行われる量子化処理で発生する誤差を実質的に０にする。つまり、代表値生成部１０３は、係数算出部１０２で算出されたＤＣ成分値を、量子化ステップの整数倍で、そのＤＣ成分値に近似する値に変換し、その結果を量子化代表値Ｄｐとして代表値選択部１０６に出力する。
【００５５】
次に、一方の置換候補値算出部１０４について説明する。
【００５６】
ここで、注目サブブロックの量子化代表値を仮にＤｐと表わす。抽出色領域内の画素の値Ｚをすると、ＤｐとＺは、式（２）を参照すると、次式（３）を満たす必要がある。
Ｄｐ＝（Ｄ＋Ｚ×Ｎ−１２８×６４）／８    …（３）
【００５７】
ここで、注目サブブロックの直前のサブブロックの量子化代表値Ｄｐ-1と表わす。注目サブブロックの量子化代表値Ｄｐが直前のサブブロックの量子化代表値Ｄｐと等しくするためには、式（３）は次式（３’）のようになる。
Ｄｐ-1＝（Ｄ＋Ｚ×Ｎ−１２８×６４）／８    …（３’）
置換候補値算出部１０４は、目標値算出部１０１からの注目サブブロックの抽出色領域内の画素数Ｎ、非抽出色領域の画素の合計値Ｄと、後述する代表値選択部１０６によって選択した直前のサブブロックの代表値Ｄｐ-1を入力し、候補値Ｚと剰余値Ｒを生成する。
Ｚ＝（８×Ｄｐ-1−Ｄ＋１２８×６４）／Ｎ      …（４）
＝（８×（直前のサブブロックの量子化代表値）−（非抽出色領域の画素の合計値）−１２８×６４｝／（抽出色領域と判定された画素数）
Ｒ＝（８×Ｄｐ-1−Ｄ＋１２８×６４）％Ｎ      …（５）
ここで、「Ａ  ％  Ｂ」は整数Ａを整数Ｂで除算した際の余りを返す関数である。
【００５８】
つまり、抽出色を持つと判定された各画素の値を、式（４）で求めた値にすれば、後段の符号化部５０６で量子化した際のＤＣ成分に誤差は発生しないことになる。ただし、画素値は整数でなければならない。つまり、このままでは、式（４）による剰余値（余り）が無視されてしまう。それ故、置換候補値算出部１０４は、式（５）で剰余値Ｒを算出する。詳細は後述するが、この剰余値Ｒは抽出色領域の画素群に分配されるものである。
【００５９】
置換候補値算出部１０４は、上記のようにして算出した候補値Ｚを量子化代表値として代表値選択部１０６に出力すると共に、剰余値Ｒを候補値選択部１０８に出力する。
【００６０】
なお、実施形態では、１つのブロックには、４つのサブブロックが存在するものとして説明している。従って、最初のサブブロック０を注目サブブロックとしたとき、その直前のサブブロックは存在しない。つまり、注目サブブロックが最初のサブブロック０であるとき、置換候補値算出部１０４は意味のない処理を行なうことになる。しかし、以下に説明する代表値選択部１０６は、最初のサブブロック０に対する代表値を選択するときには、代表値生成部１０３からの代表値Ｄｐを選択するので、問題は発生しない。
【００６１】
以下、この代表値選択部１０６について説明する。代表値選択部１０６は、代表値生成部１０３、置換候補値算出部１０４から出力される量子化代表値のいずれか一方を選択し、出力する。その選択の条件は次の通りである。
ｉ）サブブロック０用の量子化代表値を選択するとき
代表値選択部１０６は、代表値生成部１０３で生成した量子化代表値Ｄｐを選択し、置換候補値算出部１０７、及び、置換候補値１０４に出力する。このとき、選択した量子化代表値を内部のメモリ（不図示）に保存し、代表値生成部１０３からの量子化代表値を選択した旨の制御信号を候補値選択部１０８に通知する。
【００６２】
なお、代表値選択部１０６から置換候補値算出部１０４に出力される量子化代表値Ｄｐは、置換候補値算出部１０４が次のサブブロックの処理を行なう際の、直前のサブブロックの量子化代表値となる。
ｉｉ）サブブロック０以外のサブブロック１、２、３の量子化代表値を選択するとき
代表値選択部１０６は、置換候補値算出部１０４から出力された候補値Ｚと、目標値算出部１０１で算出されたＭＩＮ、ＭＡＸとの関係が次の条件を満たすか否かを判定する。
【００６３】
ＭＩＮ≦Ｚ＜ＭＡＸ          …（６）
上記の不等式（６）を満たさないのは、注目サブブロック内に含まれる非抽出色領域内の各画素の色が、直前のサブブロックのそれとは異なっていることを意味する。従って、注目サブブロックの量子化代表値として、置換候補値算出部１０４で算出された候補値を選択してしまうと、置換後のサブブロック内の階調値の取り得るレンジが大きくなる。この結果、符号化部５０６内でのＤＣＴ変換後の高周波成分ＡＣには、０以外の値が多く含まれる可能性高くなり、符号化効率が悪くなる。それ故、代表値選択部１０６は、不等式（６）を満たさないと判定した場合には、代表値生成部１０３で生成した量子化代表値Ｄｐを選択し、置換候補値算出部１０７、及び、置換候補値１０４に出力する。
【００６４】
一方、不等式（６）を満たすと判定した場合には、代表値選択部１０６は置換候補値算出部１０４からの候補値を量子化代表値Ｄｐとして選択し、置換候補値算出部１０７、及び、置換候補値１０４に出力する。この結果、注目サブブロックの量子化代表値と直前のサブブロックの量子化代表値が同じ値となるので、差分ＤＣ成分を符号化した際の符号長は最小とすることもできる。
【００６５】
なお、いずれを選択、出力した場合であっても、代表値選択部１０６は選択した量子化代表値を内部のメモリに格納し、いずれを選択したのかを示す制御信号を候補値選択部１０８に通知する。
【００６６】
もう一つの置換候補値算出部１０７は、置換候補値算出部１０４の処理と実質的に同じである。ただし、置換候補値算出部１０７が、参照するのは代表値選択部１０６から出力された量子化代表値である。
【００６７】
次に、候補値選択部１０８について説明する。この候補値選択部１０８は、代表値選択部１０６からの制御信号に従い、置換値候補算出部１０４で算出された候補値及び剰余値の組と、置換値候補算出部１０７で算出された候補値及び剰余値の組のいずれか一方を選択し、置換値生成部１０５に出力する。
【００６８】
具体的には、代表値選択部１０６からの制御信号が、代表値生成部１０３からの量子化代表値を選択したことを示す場合、注目サブブロックのＤＣ成分を量子化代表値生成部１０３の量子化代表値に一致させることを意味する。従って、この場合、代表値選択部１０６は、置換候補値算出部１０７の候補値と置換値を選択し、出力する。一方、代表値選択部１０６からの制御信号が直前サブブロックの量子化代表値を選択したことを示している場合、注目サブブロックのＤＣ成分を直前サブブロックの量子化代表値に一致させる。このため、代表値選択部１０６は、置換候補値算出部１０４からの候補値と置換値を選択し、出力する。
【００６９】
次に、置換値生成部１０５について説明する。この置換値生成部１０５は、先に説明したように、注目サブブロックにおける位置情報が全て“０”、すなわち、注目サブブロック内に抽出色領域が存在しない場合には、入力したサブブロックの画素値をそのまま符号化部５０６に出力する。
【００７０】
ここでは、注目サブブロック内に抽出色領域が存在するものとして説明する。この場合の置換値生成部１０５の処理を図３のフローチャートに従って説明する。この処理は、注目サブブロック内の抽出色領域内の画素値を、候補値選択部１０８より出力された候補値Ｚで置換すると共に、置換対象となったＲ個の画素に「１」を更に加算することで、剰余値Ｒを分配するものである。
【００７１】
図３のフローチャートにおいて、注目画素の位置の更新方向は、ラスタースキャン方向として説明する。
【００７２】
先ず、ステップＳ３０１に、カウンタＣに初期値として剰余値Ｒをセットする。
【００７３】
次いで、ステップＳ３０２において、注目画素は抽出色領域内にあるか否かを判断する。注目画素が非抽出領域内にあると判定した場合には、ステップＳ３０６に進み、入力した画素データをそのまま出力する。
【００７４】
また、ステップＳ３０２にて、注目画素は抽出色領域内にあると判断した場合、処理はステップＳ３０３に進み、カウンタＣが“０”となったか否かを判断する。否の場合には、ステップＳ３０４に進む。このステップＳ３０５では、入力した注目画素値の代わりに、「Ｚ＋１」を出力する。そして、カウンタＣを“１”だけ減じる。
【００７５】
ステップＳ３０７では、６４個の画素データの出力を終えたか否かを判断する。否の場合には、ステップＳ３０２に戻る。
【００７６】
上記の処理の結果、抽出色領域内にあると判断し、尚且つ、カウンタＣが“０”以外である場合には、ステップＳ３０４の処理が行われるが、カウンタＣが“０”となった場合、処理はステップＳ３０５に進む。このステップＳ３０５では、入力した注目画素値の代わりに、候補値Ｚを出力する。
【００７７】
置換値生成部１０５による処理内容を、図４（ａ）乃至（ｄ）を参照して説明する。
【００７８】
同図（ａ）乃至（ｄ）は１ブロックに含まれる４つのサブブロックの置換処理後の階調画像データを示している。図中、斜線で示される領域が各サブブロックの抽出色領域を示している。図示の場合、各々のサブブロックのＤＣ成分は全て「−８００」となる。この結果、符号化部５０６における先頭のサブブロック０に後続するサブブロック１、２、３の量子化後のＤＣ成分の差分値は０が連続する。また、量子化ステップ幅を１６とすると、量子化の際に量子化誤差も発生していない。
【００７９】
符号列生成部５０７は、抽出部５０２から、抽出色情報有りを示す信号を受信した場合、抽出色領域有りを示す識別ビット（例えば“１”）を有するヘッダを生成する。そして符号列生成部５０７は、そのヘッダと、符号化部５０４乃至５０６から出力された抽出色情報符号化データ、位置情報符号化データ、及び、４つのサブブロックの階調符号化データとを結合し、出力する。図９（ａ）はこの場合の１つのブロックの符号化データの構造を示している。
【００８０】
また、符号列生成部５０７は、抽出部９０２から、抽出色情報無しを示す信号を受信した場合、抽出色領域無しを示す識別ビット（例えば“０”）を有するヘッダを生成する。そして符号列生成部５０７は、そのヘッダと、符号化部５０６から出力された４つのサブブロックの階調符号化データとを結合し、出力する。つまり、位置情報、抽出色情報の符号化データは無視する。図９（ｂ）はこの場合の１つのブロックの符号化データの構造を示している。
【００８１】
なお、上記の符号化データを復号する装置のブロック構成図を図１０に示し、その復号処理の流れを一応説明する。図示に示すように、装置は、符号化用データバッファ６０１、解析・分離部６０２、抽出色情報復号部６０３、位置情報復号部６０４、階調画像復号部６０５、及び、画像ブロック生成部６０６で構成される。
【００８２】
１ブロック分の符号化データが符号化データバッファ６０１に格納されると、解析・分離部６０２は、その符号化データのヘッダを解析し、その中の識別ビットを判定する。識別ビットが“１”である場合、符号化データは図９（ａ）の構造であることを意味するので、解析・分離部６０２は、符号化データ用バッファ６０１に格納された各符号化データを復号部６０４乃至６０６それぞれに分配する。また、このとき、解析・分離部６０２は識別ビットの情報を画像ブロック生成部６０６に出力する。階調画像復号部６０５は入力した４つのサブブロックの符号化データを復号し、１ブロック分、すなわち、１６×１６画素の画像データを生成し、画像ブロック生成部６０７に出力する。
【００８３】
また、識別ビット“０”である場合、ブロックの符号化データは図９（ｂ）の構造であることを意味する。従って、解析・分離部６０２は、符号化データ用バッファ６０１に格納された符号化データを階調画像復号部６０６のみに分配する。また、このとき、解析・分離部６０２は識別ビットの情報を画像ブロック生成部６０６に出力することも行なう。階調画像復号部６０６は、４つのサブブロックの符号化データを復号し、１ブロック分、すなわち、１６×１６画素の画像データを生成し、画像ブロック生成部６０７に出力する。
【００８４】
画像ブロック生成部６０７は、解析・分離部６０２からの識別ビットが“０”である場合、階調画像復号部６０５から出力された１６×１６画素のブロックの画像データを、そのまま出力する。
【００８５】
また、画像ブロック生成部６０７は、解析・分離部６０２からの識別ビットが“１”である場合、位置情報が“０”となっている画素については、階調画像復号部６０５から出力された画素データを出力する。また、位置情報が“１”である画素については、抽出色情報生成部６０３で復号された画素データを順番に出力する。
【００８６】
以上説明したように本実施形態によれば、ブロック中に含まれる各サブブロック内に抽出色領域が含まれ、且つ、着目サブブロック内の非抽出色領域の最大値と最小値との間に、直前のサブブロックのＤＣ成分があったとする。この場合、本実施形態によれば、注目サブブロックの量子化代表値をその直前の量子化代表値と一致させるように、注目サブブロック内の抽出色領域内の画素値の置換値を決定する。この結果、各サブブロック内の階調画素値には高周波成分が少なくなり、尚且つ、注目サブブロックと直前のサブブロックの直流成分の差をゼロにすることが可能になる。すなわち、サブブロックの歪みの発生を抑制し、生成される符号量も少なくできる。
【００８７】
一方、着目サブブロック内の非抽出色領域の最大値と最小値との間に、直前のサブブロックのＤＣ成分がない場合には、注目サブブロック自身の量子化代表値と一致するように、注目サブブロック内の抽出色領域内の画素値の置換値を決定する。この結果、サブブロック間の直流成分の差はゼロにはならないものの、注目サブブロック内の階調画素値には高周波成分が少なくなり、サブブロック歪みの発生が抑制され、尚且つ、生成される符号量も少なくできる。
【００８８】
なお、上記実施形態では連続するサブ・ブロックのＤＣ成分の量子化後の値を可能な限り一致させると説明したが、これに限らず、連続するサブ・ブロックのＤＣ成分の量子化後の差分値を可能な限り小さくさせる構成でも良い。この場合、置換候補値算出部１０４は、直前サブ・ブロックの量子化代表値と量子化代表値生成部１０３にて生成される量子化代表値の間に位置する量子化代表値から複数の候補値と剰余値のセットを生成する。そして、不等式（６）を満足する候補値の中で、最も直前サブ・ブロックの量子化代表値に近くなる値を選択する。この構成により、ＡＣ成分の符号量を抑えつつ、ＤＣ成分の符号量を最小化することが可能となる。
【００８９】
以上、本発明に係る実施形態を説明したが、ＣＰＵやＭＰＵ等のプロセッサがコンピュータプログラムを実行することで、図５に係る構成の機能を実現しても構わない。すなわち、本発明は、コンピュータプログラムをもその範疇とする。また、通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されている。そして、そのコンピュータ可読記憶媒体を、読取り装置（ＣＤ−ＲＯＭドライブ）にセットし、システムにコピーもしくはインストールすることで実行可能となる。従って、このようなコンピュータ可読記憶媒体も本発明の範疇にあることも明らかである。
【図面の簡単な説明】
【００９０】
【図１】実施形態の置換部のブロック構成図である。
【図２】実施形態の目標値算出部の処理内容を説明するためのフローチャートである。
【図３】実施形態の置換値生成部の処理内容を説明するためのフローチャートである。
【図４】置換値生成部の処理結果の一例を示す図である。
【図５】実施形態の画像符号化装置のブロック構成図である。
【図６】符号化単位のブロックとサブブロックとの対応関係を示す図である。
【図７】抽出部の処理内容を説明するための図である。
【図８】抽出部が生成する位置情報、及び、抽出色情報の一例を示す図である。
【図９】符号列生成部が生成する１ブロック分の符号化データの構造を示す図である。
【図１０】実施形態における画像復号装置のブロック構成図である。
【図１】
2008104121.tif 000003
【図２】
2008104121.tif 000004
【図３】
2008104121.tif 000005
【図４】
2008104121.tif 000006
【図５】
2008104121.tif 000007
【図６】
2008104121.tif 000008
【図７】
2008104121.tif 000009
【図８】
2008104121.tif 000010
【図９】
2008104121.tif 000011
【図１０】
2008104121.tif 000012