(57)【要約】【課題】  高精度に領域分割処理を行い、画質を向上させることができる画像処理装置および該画像処理装置を備える画像形成装置、ならびに画像処理方法、画像処理プログラムおよびコンピュータ読み取り可能な記録媒体を提供する。【解決手段】  入力された画像データに対して、クラスタリング部１１が再帰的クラス分け処理によってレベルごとに画像データのクラス情報、および、オブジェクト情報を生成する。そして、ランレングス算出部１２が、クラス情報およびオブジェクト情報それぞれについて、水平方向に同一情報を有する画素が連続するランレングスを算出する。圧縮アーティファクツ除去処理手段５ｂは、自らが属するランのクラスランレングスがゼロの画素、すなわちクラス情報が変化する箇所の画素の数を計数し、計数値によって平滑化フィルタを選択する。【選択図】      図２
2005057496.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素からなる画像を示す画像データが入力され、入力された画像データに基づいて画像を構成する各画素が、文字領域、背景領域およびその他領域のいずれの領域に属するかを判定し、画像データの領域分割を行う領域分割部と、符号化された画像データを復号したときに生じるノイズを除去するノイズ除去処理手段とを備える画像処理装置において、
前記領域分割部は、画像データから算出した第１の特徴量に基づいて領域分割を行い、
前記ノイズ除去処理手段は、前記第１の特徴量から算出した第２の特徴量に基づいて複数の平滑化フィルタから１つの平滑化フィルタを選択し、選択した平滑化フィルタを用いて平滑化処理を施すことを特徴とする画像処理装置。
【請求項２】
複数の画素からなる画像を示す画像データが入力され、入力された画像データに基づいて画像を構成する各画素が、文字領域、背景領域およびその他領域のいずれの領域に属するかを判定し、画像データの領域分割を行う領域分割部と、符号化された画像データを復号したときに生じるノイズを除去するノイズ除去処理手段とを備える画像処理装置において、
前記領域分割部は、
注目画素とその周辺画素とからなる画素ブロックの特徴量を各画素の画素値を用いて求め、求めた特徴量に基づく閾値を生成し、生成された閾値と各画素の画素値とを比較して注目画素を２つの画素集合にクラス分けし、前記クラス分けによって分類された画素集合に対して、前記閾値とは異なる閾値でさらにクラス分けを行うことで複数段階のクラス分けを行い、段階ごとのクラス分けの結果を示すクラス情報を生成するクラス情報生成手段と、
クラス情報生成手段が生成した複数の閾値に基づいて、注目画素が背景領域に属するか否かを判断し、その判断結果を示すオブジェクト情報を生成するオブジェクト情報生成手段と、
同じクラス情報を有し、所定の方向に互いに隣接する画素からなるクラスランの画素数であるクラスランレングスと、同じオブジェクト情報を有し、所定の方向に互いに隣接する画素からなるオブジェクトランの画素数であるオブジェクトランレングスとを前記段階ごとに算出するランレングス算出手段と、
前記クラスランレングスに基づいて、クラスランに含まれる画素が文字領域に属するか否かを前記段階ごとに推定する文字領域推定手段と、
オブジェクト情報に基づいて画素が背景領域に属するか否かを判定するとともに、前記オブジェクトランに含まれる画素のうち、前記文字領域推定手段によって文字領域に属すると推定された画素の前記段階ごとの割合に基づいて、オブジェクトランに含まれる画素が文字領域およびその他領域のいずれに属するかを判定する領域判定手段とを備え、
前記ノイズ除去処理手段は、前記領域判定手段によってその他領域に属すると判定された画素を注目画素とし、周辺画素が属するランのクラスランレングスに基づいて、複数の平滑化フィルタから１つの平滑化フィルタを選択し、選択した平滑化フィルタを用いて注目画素に平滑化処理を施すことを特徴とする画像処理装置。
【請求項３】
前記ノイズ除去処理手段は、クラスランレングスに基づいて、注目画素がエッジ部、エッジ周辺部または平坦部のいずれに属するかを判定する属性判定を行い、
エッジ部に属する場合は、平滑化処理を施さず、
エッジ周辺部に属する場合は、リンギングノイズを除去するための平滑化フィルタを選択し、
平坦部に属する場合は、ブロックノイズを除去するための平滑化フィルタを選択することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記ノイズ除去処理手段は、前記段階ごとに属性判定を行い、段階ごとに得られた判定結果の組み合わせに基づいて最終的な属性判定を行うことを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記ノイズ除去処理手段は、最終的な属性判定を行うときに、エッジ部、複数のエッジ周辺部または複数の平坦部のいずれに属するかを判定することを特徴とする請求項４記載の画像処理装置。
【請求項６】
請求項１〜５のいずれかに記載の画像処理装置と、
画像処理装置によって処理された画像データを出力する画像出力装置とを備えることを特徴とする画像形成装置。
【請求項７】
複数の画素からなる画像を示す画像データが入力され、入力された画像データに基づいて画像を構成する各画素が、文字領域、背景領域およびその他領域のいずれの領域に属するかを判定し、画像データの領域分割を行う領域分割工程と、符号化された画像データを復号したときに生じるノイズを処理するノイズ除去処理工程とを備える画像処理方法において、
前記領域分割工程は、
注目画素とその周辺画素とからなる画素ブロックの特徴量を各画素の画素値を用いて求め、求めた特徴量に基づく閾値を生成し、生成された閾値と画素値とを比較して注目画素を２つの画素集合にクラス分けし、前記クラス分けによって分類された画素集合に対して、前記閾値とは異なる閾値でさらにクラス分けを行うことで複数段階のクラス分けを行い、段階ごとのクラス分けの結果を示すクラス情報を生成するクラス情報生成工程と、
クラス情報生成工程で生成した複数の閾値に基づいて、注目画素が背景領域に属するか否かを判断し、その判断結果を示すオブジェクト情報を生成するオブジェクト情報生成工程と、
同じクラス情報を有し、所定の方向に互いに隣接する画素からなるクラスランの画素数であるクラスランレングスと、同じオブジェクト情報を有し、所定の方向に互いに隣接する画素からなるオブジェクトランの画素数であるオブジェクトランレングスとを前記段階ごとに算出するランレングス算出工程と、
前記クラスランレングスに基づいて、クラスランに含まれる画素が文字領域に属するか否かを前記段階ごとに推定する文字領域推定工程と、
オブジェクト情報に基づいて画素が背景領域に属するか否かを判定するとともに、前記オブジェクトランに含まれる画素のうち、前記文字領域推定工程によって文字領域に属すると推定された画素の前記段階ごとの割合に基づいて、オブジェクトランに含まれる画素が文字領域およびその他領域のいずれに属するかを判定する領域判定工程とを有し、
前記ノイズ除去処理工程では、前記領域判定工程でその他領域に属すると判定された画素を注目画素とし、周辺画素が属するランのクラスランレングスに基づいて、複数の平滑化フィルタから１つの平滑化フィルタを選択し、選択した平滑化フィルタを用いて注目画素に平滑化処理を施すことを特徴とする画像処理方法。
【請求項８】
請求項７記載の画像処理方法をコンピュータに実行させるための画像処理プログラム。
【請求項９】
請求項７記載の画像処理方法をコンピュータに実行させるための画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえばデジタルテレビ放送から入力された映像について、背景・文字・写真が混在した多階調画像の画質向上を実現する画像処理方法、画像処理装置、画像形成装置、およびプログラム、記録媒体に関する。
【背景技術】
【０００２】
チューナーを介して受信したデジタルテレビ放送信号を復号して得られた多値入力画像（静止画）データには、文字・写真・背景領域が混在しており、それぞれの領域において固有の画質劣化を伴う。文字領域では、文字にじみ、文字欠けが発生し、写真領域ではＪＰＥＧ（Joint Photographic Experts Group）、ＭＰＥＧ（Moving Picture Experts 
Group）圧縮によるリンギングノイズ、ブロックノイズなどの圧縮アーティファクツが発生する。リンギングノイズは、エッジの周辺に、いわゆるゴーストのように発生するノイズである。ブロックノイズは、圧縮処理を行う単位ブロックであるＤＣＴ（Discrete 
Cosine Transform）ブロックの境界に発生するノイズである。また、背景領域には少なからずノイズが見られ、そのまま拡大してプリンタ出力した際には画質劣化が非常に目立つ。
【０００３】
このような画質劣化を防止するために、従来から圧縮アーティファクツ除去処理方法が開発されており、たとえば特許文献１記載のループフィルタリング方法などがある。この技術は、ブロックノイズおよびリンギングノイズを減少するための画像処理方法である。まず、画像を構成する各画素に対して、所定の一次元傾斜度演算子を用いて演算した結果値と設定された臨界値とを比較して２進エッジマップ情報を生成し、設定されたサイズのフィルターウインドー内に属する２進エッジマップ情報がエッジ情報を含んでいるかどうかを判断する。エッジ情報を含んでいないと判断されると、フィルターウインドー内の画素値に対して、設定された第１加重値を用いてフィルタリングし新たな画素値を生成する。エッジ情報を含んでいると判断されると、フィルターウインドーの中心に位置した画素がエッジ情報であるかどうかを判断する。エッジ情報である場合には、フィルタリングせず、エッジ情報でない場合には、フィルターウインドー内の画素値に対して、設定された第２加重値を用いてフィルタリングし、新たな画素値を生成する。
【０００４】
【特許文献１】特許公報第２９２６６３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特に、文字放送などで送信される画像は、フォントジェネレータで生成された文字領域、圧縮された写真領域および背景領域が混在しており、画像データ全体について圧縮アーティファクツ処理を行うと、文字領域ではエッジ部分がぼけて再現性が低下してしまう。したがって、入力画像データの背景領域、文字領域、写真領域を検出して分割し、それぞれの領域に適した処理を行うことが望ましい。特許文献１記載のループフィルタリング方法では、フィルターウインドー内にエッジ情報を含んでいるかどうかに基づいてフィルタリングを行っているため、圧縮アーティファクツが発生しない文字領域などに対してもフィルタリングを行ってしまう問題がある。
【０００６】
また、フィルターウインドー内にエッジ情報を含んでいるかどうかの判断は、フィルタリングの加重値を決定するためにのみ用いられている。したがって、写真領域に圧縮アーティファクツ除去処理を行うための領域分割処理と、圧縮アーティファクツ除去処理とが独立した処理となっている。
【０００７】
本発明の目的は、高精度に領域分割処理を行い、画質を向上させることができる画像処理装置および該画像処理装置を備える画像形成装置、ならびに画像処理方法、画像処理プログラムおよびコンピュータ読み取り可能な記録媒体を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、複数の画素からなる画像を示す画像データが入力され、入力された画像データに基づいて画像を構成する各画素が、文字領域、背景領域およびその他領域のいずれの領域に属するかを判定し、画像データの領域分割を行う領域分割部と、符号化された画像データを復号したときに生じるノイズを除去するノイズ除去処理手段とを備える画像処理装置において、
前記領域分割部は、画像データから算出した第１の特徴量に基づいて領域分割を行い、
前記ノイズ除去処理手段は、前記第１の特徴量から算出した第２の特徴量に基づいて複数の平滑化フィルタから１つの平滑化フィルタを選択し、選択した平滑化フィルタを用いて平滑化処理を施すことを特徴とする画像処理装置である。
【０００９】
本発明に従えば、領域分割部は、複数の画素からなる画像を示す画像データに基づいて、画像を構成する各画素が、文字領域、背景領域およびその他領域のいずれの領域に属するかを判定し、画像データの領域分割を行う。ノイズ除去処理手段は、符号化された画像データを復号したときに生じるノイズを除去する。
【００１０】
ノイズ除去処理手段は、領域分割部が領域分割を行う際に算出した第１の特徴量から第２の特徴量を算出する。算出した第２の特徴量に基づいて複数の平滑化フィルタから１つの平滑化フィルタを選択し、選択した平滑化フィルタを用いて平滑化処理を施す。
【００１１】
このように、領域分割処理のために算出した特徴量をノイズ除去処理に用いているので、従来のように領域分割処理とノイズ除去処理とを独立に行う場合に比べて、計算量を削減することができる。
【００１２】
また本発明は、複数の画素からなる画像を示す画像データが入力され、入力された画像データに基づいて画像を構成する各画素が、文字領域、背景領域およびその他領域のいずれの領域に属するかを判定し、画像データの領域分割を行う領域分割部と、符号化された画像データを復号したときに生じるノイズを除去するノイズ除去処理手段とを備える画像処理装置において、
前記領域分割部は、
注目画素とその周辺画素とからなる画素ブロックの特徴量を各画素の画素値を用いて求め、求めた特徴量に基づく閾値を生成し、生成された閾値と各画素の画素値とを比較して注目画素を２つの画素集合にクラス分けし、前記クラス分けによって分類された画素集合に対して、前記閾値とは異なる閾値でさらにクラス分けを行うことで複数段階のクラス分けを行い、段階ごとのクラス分けの結果を示すクラス情報を生成するクラス情報生成手段と、
クラス情報生成手段が生成した複数の閾値に基づいて、注目画素が背景領域に属するか否かを判断し、その判断結果を示すオブジェクト情報を生成するオブジェクト情報生成手段と、
同じクラス情報を有し、所定の方向に互いに隣接する画素からなるクラスランの画素数であるクラスランレングスと、同じオブジェクト情報を有し、所定の方向に互いに隣接する画素からなるオブジェクトランの画素数であるオブジェクトランレングスとを前記段階ごとに算出するランレングス算出手段と、
前記クラスランレングスに基づいて、クラスランに含まれる画素が文字領域に属するか否かを前記段階ごとに推定する文字領域推定手段と、
オブジェクト情報に基づいて画素が背景領域に属するか否かを判定するとともに、前記オブジェクトランに含まれる画素のうち、前記文字領域推定手段によって文字領域に属すると推定された画素の前記段階ごとの割合に基づいて、オブジェクトランに含まれる画素が文字領域およびその他領域のいずれに属するかを判定する領域判定手段とを備え、
前記ノイズ除去処理手段は、前記領域判定手段によってその他領域に属すると判定された画素を注目画素とし、周辺画素が属するランのクラスランレングスに基づいて、複数の平滑化フィルタから１つの平滑化フィルタを選択し、選択した平滑化フィルタを用いて注目画素に平滑化処理を施すことを特徴とする画像処理装置である。
【００１３】
本発明に従えば、領域分割部は、複数の画素からなる画像を示す画像データに基づいて、画像を構成する各画素が、文字領域、背景領域およびその他領域のいずれの領域に属するかを判定し、画像データの領域分割を行う。
【００１４】
領域分割部は、上記のような構成となっており、まずクラス情報生成手段が、注目画素とその周辺画素とからなる画素ブロックの特徴量を各画素の画素値を用いて求め、求めた特徴量に基づく閾値を生成し、生成された閾値と各画素の画素値とを比較して注目画素のクラス分けを行う。このクラス分けによって各画素は、２つの画素集合に分類され、分類された画素集合の各画素に対して前記閾値とは異なる閾値でさらにクラス分けを行う。この処理を繰り返すことで、複数段階のクラス分けを行う。複数段階のクラス分けの結果は、クラス情報として生成される。クラス情報とは、上記のようにクラス分けによって、分類された際に各画素がいずれのクラス、すなわち明度値などの画素値が閾値以上のクラスまたは閾値未満のクラスに属するかを示す情報である。
【００１５】
たとえば、第１の段階では、１回目のクラス分けによって、２つのクラスに分類され、第２の段階では、これら２つのクラスの画素がさらにクラス分けされて４つのクラスに分類される。したがって、第１の段階のクラス情報は、各画素が２つのクラスのいずれに属するか示し、第２の段階のクラス情報は、各画素が４つのクラスのいずれに属するかを示す。
【００１６】
オブジェクト情報生成手段では、クラス情報生成手段が生成した複数の閾値に基づいて、注目画素が背景領域に属するか否かを判断し、その判断結果を示すオブジェクト情報を生成する。
【００１７】
このようにして、クラス情報およびオブジェクト情報が生成されると、ランレングス算出手段は、クラスランレングスとオブジェクトランレングスとを前記段階ごとに算出する。クラスランレングスは、同じクラス情報を有し、所定の方向に互いに隣接する画素からなるクラスランの画素数であり、オブジェクトランレングスは、同じオブジェクト情報を有し、所定の方向に互いに隣接する画素からなるオブジェクトランの画素数である。つまり、クラスランレングスは、クラス分けによって同じクラスに分類された画素が連続して並んだ場合の画素数を示し、オブジェクトランレングスは、背景領域に属する画素が連続して並んだ場合、もしくは背景画素には属しない画素（文字領域またはその他領域に属する画素）が連続して並んだ場合の画素数を示している。
【００１８】
次に、ランレングス算出手段によって算出されたクラスランレングスに基づいて、クラスランに含まれる画素が文字領域に属するか否かを前記段階ごとに判断するのであるが、クラスランレングスのみで画素が文字領域に属するか否かを判定すると、判定精度が低いものとなってしまう場合がある。したがって、最終的な判定は、後述の領域判定手段によって行い、文字領域推定手段では、クラスランレングスに基づいて、文字領域に属する可能性が高い画素を段階ごとに推定する。
【００１９】
以上のようにして得られた各手段の動作結果に基づいて、領域判定手段が画素の属する領域を判定する。
【００２０】
まず、オブジェクト情報生成手段によって生成されたオブジェクト情報に基づいて、画素が背景領域に属するか否かを判定する。背景領域に属さないと判定された画素については、次のようにして文字領域に属するか、その他領域に属するかを判定する。
【００２１】
背景領域に属しない画素を含むオブジェクトランについて、このオブジェクトランに含まれる画素のうち、文字領域推定手段によって文字領域に属すると推定された画素の割合を前記段階ごとに算出する。文字領域では、１つのオブジェクトランの中に、同じ段階で文字領域と推定された画素が含まれる割合が多いことから、文字領域に属すると推定された画素の段階ごとの割合に基づいて、オブジェクトランが文字領域に属する画素からなるオブジェクトランであるか否かを判断する。文字領域に属する画素からなるオブジェクトランであれば、そのオブジェクトランに含まれる画素を文字領域に含まれる画素として判定する。文字領域に属する画素からなるオブジェクトランでなければ、そのオブジェクトランに含まれる画素をその他領域に含まれる画素として判定する。
【００２２】
ノイズ除去処理手段は、領域判定手段によってその他領域に属すると判定された画素を注目画素とし、注目画素を中心として周辺画素とからなる画素ブロックを設定する。この画素ブロックの大きさは、たとえば７×７画素である。
【００２３】
画素ブロック内の画素で、自らが属するランのクラスランレングスがゼロの画素、すなわちクラス情報が変化する箇所の画素の数を計数し、計数値によって平滑化フィルタを選択する。平滑化フィルタの例としては、フィルタの範囲内の画素値を平均して、この平均値を新たに注目画素の画素値とする平均化フィルタなどがある。
【００２４】
注目画素とその周辺画素とからなる画素ブロックの特徴量に基づく閾値を用いて注目画素のクラス分けを行っているので、固定閾値を用いてクラス分けを行う場合に比べ、周辺画素の影響を反映させたクラス情報およびオブジェクト情報を生成することができる。オブジェクト情報の判定は、オブジェクト情報に基づいて精度よく行われる。文字領域の判定は、クラス情報およびオブジェクト情報を用いて、クラスランレングスに基づく推定と、オブジェクトランに含まれる推定画素数の割合とから判定しているので、精度よく文字領域に属する画素を判定できる。
【００２５】
このように、各領域の判定精度が高いので、画像データの領域分割精度を向上させることができ、高精度で分離されたその他領域にのみノイズ除去処理を行うので、誤って文字領域を平滑化することなどがなく、画質の向上を実現することができる。
【００２６】
また、領域分割処理のために算出したクラスランレングスをノイズ除去処理に用いているので、従来のように領域分割処理とノイズ除去処理とを独立に行う場合に比べて、計算量を削減することができる。
【００２７】
また本発明は、前記ノイズ除去処理手段は、クラスランレングスに基づいて、注目画素がエッジ部、エッジ周辺部または平坦部のいずれに属するかを判定する属性判定を行い、
エッジ部に属する場合は、平滑化処理を施さず、
エッジ周辺部に属する場合は、リンギングノイズを除去するための平滑化フィルタを選択し、
平坦部に属する場合は、ブロックノイズを除去するための平滑化フィルタを選択することを特徴とする。
【００２８】
本発明に従えば、ノイズ除去処理手段は、クラスランレングスに基づいて、注目画素がエッジ部、エッジ周辺部または平坦部のいずれに属するかを判定する属性判定を行う。
【００２９】
リンギングノイズは、エッジ部に沿ってエッジ周辺部に発生する。また、ブロックノイズは、画像を圧縮する際の処理単位ブロックの境界に発生し、平坦部で最も視認されやすい。したがって、注目画素が、エッジ周辺部に属する場合は、リンギングノイズを除去するための平滑化フィルタを選択して平滑化し、平坦部に属する場合は、ブロックノイズを除去するための平滑化フィルタを選択して平滑化する。エッジ部に属する画素を平滑化するとエッジがぼけて画質が低下するため、平滑化処理は施さない。
【００３０】
これにより、その他領域の画素に対して適切な平滑化を施し、ノイズを除去して画質の向上を実現することができる。
【００３１】
また本発明は、前記ノイズ除去処理手段は、前記段階ごとに属性判定を行い、段階ごとに得られた判定結果の組み合わせに基づいて最終的な属性判定を行うことを特徴とする。
【００３２】
本発明に従えば、ノイズ除去処理手段は、段階ごとに属性判定を行い、段階ごとに得られた判定結果の組み合わせに基づいて最終的な属性判定を行う。
【００３３】
同じ注目画素に対して複数の段階で判定を行い、複数の判定結果から最終的な判定を行うことで判定精度が向上する。
【００３４】
これにより、誤った平滑化処理を施すことが無く、より適切なノイズ除去処理を行い、さらなる画質の向上を実現することができる。
【００３５】
また本発明は、前記ノイズ除去処理手段は、最終的な属性判定を行うときに、エッジ部、複数のエッジ周辺部または複数の平坦部のいずれに属するかを判定することを特徴とする。
【００３６】
本発明に従えば、ノイズ除去処理手段は、最終的な属性判定を行うときに、エッジ部、複数のエッジ周辺部または複数の平坦部のいずれに属するかを判定する。
【００３７】
リンギングノイズのノイズ強度は、近傍にあるエッジのエッジ強度に依存する。したがって、最終的な判定結果として、エッジ周辺部を、近傍にあるエッジの強度が弱い場合と、近傍にあるエッジの強度が強い場合の複数とし、それぞれに応じた平滑化フィルタを選択する。
【００３８】
また、平坦部には、エッジを全く含まない場合と、弱いエッジを含む場合とがある。したがって、最終的な判定結果として、平坦部を、エッジを全く含まない場合と、弱いエッジを含む場合の複数とし、それぞれに応じた平滑化フィルタを選択する。
【００３９】
これにより、最適な平滑化フィルタを選択してより適切なノイズ除去処理を行い、さらなる画質の向上を実現することができる。
【００４０】
また本発明は、上記の画像処理装置と、
画像処理装置によって処理された画像データを出力する画像出力装置とを備えることを特徴とする画像形成装置である。
【００４１】
本発明に従えば、上記の画像処理装置によって処理された画像データを、画像出力装置から出力する。
【００４２】
これにより、画像データが高精度で領域分割され、その他領域に適切なノイズ除去処理が施された画像データを出力することができるので、高画質な静止画像を形成することができる。
【００４３】
また本発明は、複数の画素からなる画像を示す画像データが入力され、入力された画像データに基づいて画像を構成する各画素が、文字領域、背景領域およびその他領域のいずれの領域に属するかを判定し、画像データの領域分割を行う領域分割工程と、符号化された画像データを復号したときに生じるノイズを処理するノイズ除去処理工程とを備える画像処理方法において、
前記領域分割工程は、
注目画素とその周辺画素とからなる画素ブロックの特徴量を各画素の画素値を用いて求め、求めた特徴量に基づく閾値を生成し、生成された閾値と画素値とを比較して注目画素を２つの画素集合にクラス分けし、前記クラス分けによって分類された画素集合に対して、前記閾値とは異なる閾値でさらにクラス分けを行うことで複数段階のクラス分けを行い、段階ごとのクラス分けの結果を示すクラス情報を生成するクラス情報生成工程と、
クラス情報生成工程で生成した複数の閾値に基づいて、注目画素が背景領域に属するか否かを判断し、その判断結果を示すオブジェクト情報を生成するオブジェクト情報生成工程と、
同じクラス情報を有し、所定の方向に互いに隣接する画素からなるクラスランの画素数であるクラスランレングスと、同じオブジェクト情報を有し、所定の方向に互いに隣接する画素からなるオブジェクトランの画素数であるオブジェクトランレングスとを前記段階ごとに算出するランレングス算出工程と、
前記クラスランレングスに基づいて、クラスランに含まれる画素が文字領域に属するか否かを前記段階ごとに推定する文字領域推定工程と、
オブジェクト情報に基づいて画素が背景領域に属するか否かを判定するとともに、前記オブジェクトランに含まれる画素のうち、前記文字領域推定工程によって文字領域に属すると推定された画素の前記段階ごとの割合に基づいて、オブジェクトランに含まれる画素が文字領域およびその他領域のいずれに属するかを判定する領域判定工程とを有し、
前記ノイズ除去処理工程では、前記領域判定工程でその他領域に属すると判定された画素を注目画素とし、周辺画素が属するランのクラスランレングスに基づいて、複数の平滑化フィルタから１つの平滑化フィルタを選択し、選択した平滑化フィルタを用いて注目画素に平滑化処理を施すことを特徴とする画像処理方法である。
【００４４】
本発明に従えば、領域分割工程では、複数の画素からなる画像を示す画像データに基づいて、画像を構成する各画素が、文字領域、背景領域およびその他領域のいずれの領域に属するかを判定し、画像データの領域分割を行う。
【００４５】
領域分割工程は、上記のような複数の工程からなり、まずクラス情報生成工程で注目画素とその周辺画素とからなる画素ブロックの特徴量を各画素の画素値を用いて求め、求めた特徴量に基づく閾値を生成し、生成された閾値と各画素の画素値とを比較して注目画素のクラス分けを行う。このクラス分けによって各画素は、２つの画素集合に分類され、分類された画素集合の各画素に対して前記閾値とは異なる閾値でさらにクラス分けを行う。この処理を繰り返すことで、複数段階のクラス分けを行う。複数段階のクラス分けの結果は、クラス情報として生成される。
【００４６】
たとえば、第１の段階では、１回目のクラス分けによって、２つのクラスに分類され、第２の段階では、これら２つのクラスの画素がさらにクラス分けされて４つのクラスに分類される。したがって、第１の段階のクラス情報は、各画素が２つのクラスのいずれに属するか示し、第２の段階のクラス情報は、各画素が４つのクラスのいずれに属するかを示す。
【００４７】
オブジェクト情報生成工程では、クラス情報生成工程で生成した複数の閾値に基づいて、注目画素が背景領域に属するか否かを判断し、その判断結果を示すオブジェクト情報を生成する。
【００４８】
このようにして、クラス情報およびオブジェクト情報が生成されると、ランレングス算出工程で、クラスランレングスとオブジェクトランレングスとを前記段階ごとに算出する。
【００４９】
次に、ランレングス算出工程で算出されたクラスランレングスに基づいて、クラスランに含まれる画素が文字領域に属するか否かを前記段階ごとに判断するのであるが、クラスランレングスのみで画素が文字領域に属するか否かを判定すると、判定精度が低いものとなってしまう場合がある。したがって、最終的な判定は、後述の領域判定工程によって行い、文字領域推定工程では、クラスランレングスに基づいて、文字領域に属する可能性が高い画素を段階ごとに推定する。
【００５０】
以上のようにして得られた各手段の動作結果に基づいて、領域判定工程で画素の属する領域を判定する。
【００５１】
まず、オブジェクト情報生成工程で生成されたオブジェクト情報に基づいて、画素が背景領域に属するか否かを判定する。背景領域に属さないと判定された画素については、次のようにして文字領域に属するか、その他領域に属するかを判定する。
【００５２】
背景領域に属しない画素を含むオブジェクトランについて、このオブジェクトランに含まれる画素のうち、文字領域推定工程で文字領域に属すると推定された画素の割合を前記段階ごとに算出する。文字領域では、１つのオブジェクトランの中に、同じ段階で文字領域と推定された画素が含まれる割合が多いことから、文字領域に属すると推定された画素の段階ごとの割合に基づいて、オブジェクトランが文字領域に属する画素からなるオブジェクトランであるか否かを判断する。文字領域に属する画素からなるオブジェクトランであれば、そのオブジェクトランに含まれる画素を文字領域に含まれる画素として判定する。文字領域に属する画素からなるオブジェクトランでなければ、そのオブジェクトランに含まれる画素をその他領域に含まれる画素として判定する。
【００５３】
ノイズ除去処理工程では、領域判定工程でその他領域に属すると判定された画素を注目画素とし、注目画素を中心として周辺画素とからなる画素ブロックを設定する。この画素ブロックの大きさは、たとえば７×７画素である。
【００５４】
画素ブロック内の画素が属するランのクラスランレングスがゼロの画素、すなわちクラス情報が変化する箇所の画素数を計数し、計数値に応じて平滑化フィルタを選択する。平滑化フィルタの例としては、フィルタの範囲内の画素値を平均して、この平均値を新たに注目画素の画素値とする平均化フィルタなどがある。
【００５５】
以上のように、注目画素とその周辺画素とからなる画素ブロックの特徴量に基づく閾値を用いて注目画素のクラス分けを行っているので、固定閾値を用いてクラス分けを行う場合に比べ、周辺画素の影響を反映させたクラス情報およびオブジェクト情報を生成することができる。オブジェクト情報の判定は、オブジェクト情報に基づいて精度よく行われる。文字領域の判定は、クラス情報およびオブジェクト情報を用いて、クラスランレングスに基づく推定と、オブジェクトランに含まれる推定画素数の割合とから判定しているので、精度よく文字領域に属する画素を判定できる。
【００５６】
また、各領域の判定精度が高いので、画像データの領域分割精度を向上させることができ、高精度で分離されたその他領域にのみノイズ除去処理を行うので、誤って文字領域を平滑化することなどがなく、画質の向上を実現することができる。
【００５７】
また、領域分割処理のために算出したクラスランレングスをノイズ除去処理に用いているので、従来のように領域分割処理とノイズ除去処理とを独立に行う場合に比べて、計算量を削減することができる。
【００５８】
また本発明は、上記の画像処理方法をコンピュータに実行させるための画像処理プログラムである。
【００５９】
本発明に従えば、上記の画像処理方法をコンピュータに実行させるための画像処理プログラムとして提供することができる。
【００６０】
また本発明は、上記の画像処理方法をコンピュータに実行させるための画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００６１】
本発明に従えば、上記の画像処理方法をコンピュータに実行させるための画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体として提供することができる。
【発明の効果】
【００６２】
本発明によれば、領域分割処理のために算出した特徴量をノイズ除去処理に用いているので、従来のように領域分割処理とノイズ除去処理とを独立に行う場合に比べて、計算量を削減することができる。
【００６３】
また本発明によれば、注目画素とその周辺画素とからなる画素ブロックの特徴量に基づく閾値を用いて注目画素のクラス分けを行っているので、固定閾値を用いてクラス分けを行う場合に比べ、周辺画素の影響を反映させたクラス情報およびオブジェクト情報を生成することができる。オブジェクト情報の判定は、オブジェクト情報に基づいて精度よく行われる。文字領域の判定は、クラス情報およびオブジェクト情報を用いて、クラスランレングスに基づく推定と、オブジェクトランに含まれる推定画素数の割合とから判定しているので、精度よく文字領域に属する画素を判定できる。
【００６４】
このように、各領域の判定精度が高いので、画像データの領域分割精度を向上させることができ、高精度で分離されたその他領域にのみノイズ除去処理を行うので、誤って文字領域を平滑化することなどがなく、画質の向上を実現することができる。
【００６５】
また、領域分割処理のために算出したクラスランレングスをノイズ除去処理に用いているので、従来のように領域分割処理とノイズ除去処理とを独立に行う場合に比べて、計算量を削減することができる。
【００６６】
また本発明によれば、その他領域の画素に対して適切な平滑化を施し、ノイズを除去して画質の向上を実現することができる。
【００６７】
また本発明によれば、誤った平滑化処理を施すことが無く、より適切なノイズ除去処理を行い、さらなる画質の向上を実現することができる。
【００６８】
また本発明によれば、最適な平滑化フィルタを選択してより適切なノイズ除去処理を行い、さらなる画質の向上を実現することができる。
【００６９】
また本発明によれば、画像データが高精度で領域分割され、その他領域に適切なノイズ除去処理が施された画像データを出力することができるので、高画質な静止画像を形成することができる。
【００７０】
また本発明によれば、上記の画像処理方法をコンピュータに実行させるための画像処理プログラムおよびこの画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体として提供することができる。
【発明を実施するための最良の形態】
【００７１】
図１は、本発明の実施の一形態である画像形成装置１の構成を示すブロック図である。画像形成装置１は、画像処理装置２と画像出力装置であるプリンタ９とからなり、画像処理装置２は、入力部３、領域分割部４、補正部５、解像度変換部６、色補正部７およびハーフトーン部８からなる。
【００７２】
本実施形態における画像形成装置１は、デジタルテレビ放送などで送信される画像データを印刷して出力するデジタルプリンタとして説明する。印刷して出力するためには、まず有線ケーブルまたは放送用無線アンテナなどを介して送られてきたデジタルテレビ放送信号を、チューナなどの入力部３によって、入力多値画像データ（以下では単に画像データと呼ぶ。）に変換する。画像データは、格子状に配列された複数の画素からなり、各画素は明度値や色度などの画素値を有している。
【００７３】
次に、領域分割部４により、画像データの各画素が文字領域、背景領域、写真領域のいずれの領域に属するかを判定し、画像データを文字領域、背景領域、その他の領域である写真領域に分割した後、補正部５によりそれぞれの領域に適した補正処理を行う。
【００７４】
補正部５は、文字にじみ補正処理手段５ａ、圧縮アーティファクツ除去処理手段５ｂ、ノイズ除去処理手段５ｃからなり、文字領域であると判定された領域については、文字にじみ補正処理手段５ａが文字にじみおよび文字欠けを補正する処理を行い、写真領域には、圧縮アーティファクツ除去処理手段５ｂがフィルタ処理によって圧縮アーティファクツを除去する処理を行い、また、背景領域には、ノイズ除去処理手段５ｃが雑音成分を除去するような処理を行う。圧縮アーティファクツ除去処理手段５ｂによるフィルタ処理の詳細については、後述する。
【００７５】
補正されて画質改善された画像データは、解像度変換部６によって、プリンタ９の解像度に合わせて解像度変換処理される。色補正部７が、解像度変換処理された画像データの色空間をデバイス色空間に変換した後、最後にハーフトーン部８が中間調処理を行い、プリンタ９に出力する。プリンタ９は、たとえば、電子写真方式やインクジェット方式を用いて画像処理装置２から出力された画像データを紙などの記録媒体に印刷する。
【００７６】
なお、以上の処理は不図示のＣＰＵ（Central Processing Unit）により制御される。画像処理装置２とプリンタ３とは、接続ケーブルによって直接接続されていてもよいし、ＬＡＮ（Local Area Network）などのネットワークを介して接続されていても良い。このとき、画像処理装置２はパーソナルコンピュータ（ＰＣ）などであり、プリンタ３はファクシミリ装置やコピー装置または複写機能およびファックス機能を備える複合機などでもよい。
【００７７】
図２は、領域分割部４の構成を示すブロック図である。領域分割部４は、色変換部１０、クラスタリング部１１、ランレングス算出部１２、文字領域推定部１３および領域判定部１４からなる。
【００７８】
領域分割部４では、写真領域、背景領域、文字領域が混在する画像データに対して、色変換部１０が所定の色空間に変換した後、クラスタリング部１１が再帰的クラス分け処理によって画像データのクラス情報、および、オブジェクト情報を生成する。そして、ランレングス算出部１２が、クラス情報およびオブジェクト情報それぞれについて、水平方向に同一情報を有する画素が連続するランレングスを算出する。
【００７９】
次に、文字領域推定部１３は、クラス情報のランレングスに基づいて文字領域に属する画素を推定する。そして、領域判定部１４は、オブジェクト情報のランが連続する各オブジェクト領域において、文字領域に属すると推定された画素の含有率に基づいて、オブジェクト領域が文字領域、背景領域、写真領域のどの領域に属するかを判定する。
【００８０】
なお、本実施形態では、領域判定の判定結果のみならず、ランレングス算出部１２で算出されたクラス情報のランレングスが圧縮アーティファクツ除去処理手段５ｂに出力され、圧縮アーティファクツ除去処理手段５ｂでは、これらを用いてフィルタ処理を行う。
【００８１】
以下では、各部位の動作について詳細に説明する。まず色変換部１０において、入力された画像データがＲＧＢ色空間画像であれば、（Ｒ＋Ｇ＋Ｂ）/３を算出して、１つのデータに統一できるよう変換する。
【００８２】
また、他の色変換方法として、入力されたＲＧＢ色空間画像を均等色空間であるＬ＊ａ＊ｂ＊カラースペースCIE 1976（ＣＩＥ：Commission Internationale de l'Eclairage：国際照明委員会。Ｌ＊：明度、ａ＊，ｂ＊：色度）色空間に変換し、そのＬ＊信号を用いる。図３は、入力画像（図３（ａ））と、色空間変換によって生成したＬ＊信号からなる画像（図３（ｂ））の例を示す図である。
【００８３】
クラスタリング部１１は、画像データに対して再帰的クラス分け処理を行い、クラス情報およびオブジェクト情報を生成するクラス情報生成手段およびオブジェクト情報生成手段である。クラス情報とは、再帰的クラス分け処理によって、分類された際に各画素がいずれのクラス、すなわち明度値などの画素値が閾値以上のクラスまたは閾値未満のクラスに属するかを示す情報である。オブジェクト情報とは、各画素が背景領域に属するか、文字領域および写真領域である非背景領域（オブジェクト領域）に属するかを示す情報である。
【００８４】
再帰的クラス分け処理は、注目画素を含む画素ブロックの特徴量を基に閾値を算出し、算出した閾値を用いて注目画素をクラス分けする処理である。まず、画素ブロックとしては、中心となる注目画素とその周辺画素となる８画素を含む３×３画素の画素ブロックを用いる。
【００８５】
図４は、３×３画素の画素ブロックを示す図である。注目画素Ｃ１の座標を(x，y)とすると、周辺画素Ｐ１〜Ｐ８の座標は、それぞれＰ１(x-1，y-1)，Ｐ２(x，y-1)，Ｐ３(x+1，y-1)，Ｐ４(x-1，y)，Ｐ５(x+1，y)，Ｐ６(x-1，y+1)，Ｐ７(x，y+1)，Ｐ８(x+1，y+1)となる。特徴量としては、近傍平均値、近傍エッジ量および近傍閾値を用いる。近傍平均値Ａｖｇは、図４に示したウインドウ内の９画素の画素値の平均として求める。また、エッジ量については図５に示すようなprewittオペレータ（プリヴィットフィルター）を用いる。３×３画素の画素値を抽出し、画素値にマトリクス係数を畳み込むことで、エッジ量を算出する。図５（ａ）が垂直方向用オペレータ、図５（ｂ）が水平方向用オペレータである。それぞれのオペレータを用いることで、垂直方向エッジedge_v量（x, y）および水平方向エッジ量edge_h（x, y）を算出することができる。
【００８６】
そして、上記で求めた近傍平均値Ａｖｇ、垂直方向エッジ量edge_v、水平方向エッジ量edge_h、および近傍閾値（すでにクラス分けされた周辺画素の閾値）を用いて動的に注目画素の閾値を決定する。領域分離の精度を高めるために、画像のエッジ部では、クラスを変化させるように、主に近傍平均値を閾値として用い、画像の平坦部では、クラスを変化させないように、主に近傍閾値を用いてクラス分けする。
【００８７】
そこで、閾値を、エッジ量を重み係数として用いた線形補間により算出する。以下に一般的な線形補間式を示す。
Ｙ＝（１−ａ）×Ｘ１＋ａ×Ｘ２                                    （１）
ただし、ａの範囲は０≦ａ≦１である。
【００８８】
（１）式において、重み係数ａをエッジ量、Ｘ１を近傍閾値、Ｘ２を近傍平均値として閾値Ｙを算出することにより、エッジ部では主に近傍平均値をクラス分けの閾値として用い、平坦部では、主に近傍閾値を閾値として用いることができる。
そこで、以下の算出式を用いてエッジ量Edgeを算出する。
【００８９】
【数１】
2005057496.tif 000003
【００９０】
（１）式を用いて線形補間により閾値を算出するためには、重み係数であるエッジ量の範囲が、０≦Edge≦１である必要があるが、（２）式で算出されるエッジ量Edgeは、０≦Edge≦１の範囲とはならない。したがって、エッジ量Edgeに対して最大値Ｗを設け、最大値で除算することで０≦Edge/Ｗ≦１の範囲とすることができる。
【００９１】
エッジ量Edgeの最大値Ｗは、以下の（３）式により設定する。
Edge=Edge>W ? W:Edge                                              （３）
（３）式は、Edgeとして、条件を満たすときには前者を、条件を満たさない場合には後者の値を用いることを意味する。つまり、エッジ量EdgeがＷより大きい時はEdge＝Ｗとし、Ｗ以下の時は、Edgeをそのまま用いる。
【００９２】
本実施形態における再帰的クラス分け処理は、注目画素とその周辺画素とからなる３×３画素の画素ブロックにおいて、エッジ量、近傍平均値および近傍閾値などの特徴量を求め、求めた特徴量に基づく閾値を生成して注目画素のクラス分けを行う。さらに、クラス分けによって分類された各クラスの画素に対して、異なる閾値でさらにクラス分けを行うことで複数段階（レベル）のクラス分けを行う。また、本実施形態では再帰レベルを３とし、段階的に、強いエッジ部分をクラスの境界として分割するレベル１、比較的強いエッジ部分をクラスの境界として分割するレベル２、および、弱いエッジ部分をクラスの境界として分割するレベル３の３つのレベルで分割することとなる。強いエッジ部分とは、エッジを挟んだ両側の画素間の画素値の差が大きい部分であり、弱いエッジ部分とは、エッジを挟んだ両側の画素間の画素値の差が小さい部分である。
【００９３】
したがって、複数レベルの再帰的クラス分け処理を実現するためにエッジ量の下限値を設ける。
【００９４】
下限値をＷの関数ＬＯＷＥＲ＿ＶＡＬ（Ｗ）とすると、下限値は以下の（４）式により算出される。
Edge=Edge<LOWER_VAL(W) ? 0:Edge                                  （４）
このとき、エッジ量EdgeがＬＯＷＥＲ＿ＶＡＬ（Ｗ）より小さい時はEdge＝０とし、ＬＯＷＥＲ＿ＶＡＬ（Ｗ）以上の時は、Edgeをそのまま用いる。
【００９５】
関数ＬＯＷＥＲ＿ＶＡＬ（Ｗ）は、たとえば以下のようなＷの関数とする。
LOWER_VAL(W)=32×W/128                                           （５）
【００９６】
（２）〜（４）式により算出したエッジ量Edge、近傍平均値Ａｖｇ、および、近傍閾値th(x-1，y)，th(x，y-1)を（１）式に代入することにより、注目画素における閾値th(x,y)を算出することができる。ここで、座標(x-1，y)は周辺画素のうち注目画素Ｃ１の左隣の画素Ｐ４の座標を示し、座標(x，y-1)は周辺画素のうち上の画素Ｐ２の座標を示している。したがって、th(x-1，y)は注目画素の左隣の画素Ｐ４をクラス分けしたときの閾値を示し、th(x，y-1)は注目画素の上の画素Ｐ２をクラス分けしたときの閾値を示す。
【００９７】
【数２】
2005057496.tif 000004
【００９８】
（７）式は四捨五入を表す。閾値th(x,y)は整数であることから、ＴＨ/Ｗに０．５を加えることにより、四捨五入を実現することができる。しかしながら、整数演算において、除算を行った後に０．５を加える場合、処理量が増加するため、除算における分母を２で割った値を分子に加えた後、分母で割ることにより四捨五入を実現するのが一般的である。
【００９９】
実際にクラス分け処理を行う手順としては、画像データの各画素を行方向（主走査方向）に処理を繰り返して走査する。１ラインの処理が終われば列方向（副走査方向）に処理の対象ラインを移動し、再度主走査方向にクラス分け処理を行う。
【０１００】
前述のように閾値th(x，y)を算出するためには、近傍閾値th(x-1，y)，th(x，y-1)が必要であるが、最初のラインをクラス分け処理する場合、注目画素の上の画素が存在しないので、近傍閾値th(x，y-1)を用いることができない。また、ラインを左から右へ順次クラス分け処理を行うときに、最初の注目画素、すなわち左端の画素には左隣の画素が存在しないため、近傍閾値th(x-1，y)を用いることができない。したがって、予め初期閾値を設定し、近傍画素が存在しない場合には、設定した初期閾値を近傍閾値th(x，y-1)および近傍閾値th(x-1，y)として閾値th(x，y)を算出する。
【０１０１】
以下では、画素値、たとえば明度値の範囲を０（黒）〜２５５（白）として、初期閾値を１２８とする。なお、他の初期閾値としては、たとえば画像データ全体の平均画素値などを用いてもよい。
【０１０２】
また、閾値th(x，y)を算出するために、近傍閾値th(x-1，y)，th(x，y-1)を用いることから、ラインを主走査方向に走査するときに、常に左から右へクラス分け処理を行うと、閾値th(x，y)は、注目画素の左隣の画素の近傍閾値th(x-1，y)の影響を受けることになり、適切なクラス分け処理が行われない場合がある。したがって、所定のライン毎に、ラインの左から右への処理と、右から左への処理とを入れ換えてクラス分け処理を行う。ラインの右から左へクラス分け処理を行う場合は、（６）式に代入する近傍閾値を、近傍閾値th(x-1，y)から近傍閾値th(x+1，y)に変更すればよい。これにより、閾値th(x，y)は、上の画素、および左右の画素を平均的に考慮した閾値として算出することができる。
【０１０３】
さらに、クラスタリング部１１へ入力される画像データとして、明度値など１つの画素値のみでなく、他に色差などを入力し、エッジ量算出に、色差のエッジ量を付加することにより、色差も考慮したクラス分け処理を行うことができる。
【０１０４】
また、画像データ全体のダイナミックレンジ（画素値の最大値と最小値との差）を算出し、以下の式によりＬＯＷＥＲ＿ＶＡＬ（Ｗ）を算出することにより、より画像に適応したクラス分け処理を行うことができ、その結果、処理精度を向上することが可能となる。
【０１０５】
【数３】
2005057496.tif 000005
Ｄはダイナミックレンジを表す。
【０１０６】
これは、画像におけるエッジ量がダイナミックレンジと大きく関係しており、ダイナミックレンジが狭い（Ｄが小さい）画像はエッジが検出されにくく、エッジ量算出時における下限値をダイナミックレンジに合わせて変更することにより、エッジが検出されにくい画像に対応するためである。
【０１０７】
本実施形態で行われる画像処理は、ラスタ処理であるため、注目画素とエッジ部との位置関係によって同じ平坦部の画素であっても閾値が異なる。たとえば、注目画素の下にエッジ部がある場合は平坦部が連続しており、前述の（６）,（７）式に示すように、注目画素の左隣および上の周辺画素、すなわち同じ平坦部の近傍閾値を用いて閾値を算出するのに対し、注目画素の上にエッジ部がある場合は注目画素の上の周辺画素がエッジ画素であるため、エッジ画素および平坦部の画素の近傍閾値を用いて閾値を算出することになる。したがって、同じ平坦部の画素であってもエッジ部との位置関係によって閾値が異なることとなる。図６（ａ）に図３に示した画像データの各画素における（６）,（７）式で求めた閾値の分布を示す。背景部分および下部の写真内の陸地や海の部分などの平坦部で閾値の変化が生じていることが分かる。
【０１０８】
そこで、注目画素とエッジ部との位置関係によって、クラス分け処理の閾値の算出方法を変える。まず、注目画素をラインの左から右へ１画素ごとにクラス分け処理を行う場合について説明する。
【０１０９】
図７（ａ）に示すように、周辺画素のうち注目画素の上の画素のみがエッジ画素であり、注目画素の左右にはエッジ画素が存在しない場合には、注目画素の左の画素がクラス分けを行ったときの閾値th(x-1，y)をそのまま注目画素の閾値th(x，y)とする。図７（ｂ）に示すように、周辺画素のうち注目画素の上にはエッジ画素が存在せず、注目画素の左右の画素がエッジ画素である場合には、注目画素の上の画素がクラス分けを行ったときの閾値th(x，y-1)をそのまま注目画素の閾値th(x，y)とする。
【０１１０】
図７（ｃ）に示すように、周辺画素にエッジ画素が存在しない場合には、注目画素の左の画素がクラス分け処理を行ったときの閾値、あるいは、上の画素がクラス分け処理を行ったときの閾値のうち、予め設定されている初期閾値に近いほうの閾値を注目画素の閾値とする。図７（ｄ）に示すように、上記以外の場合には、（６）式を用いて注目画素の閾値を算出する。
【０１１１】
次に、注目画素をラインの右から左へ１画素ごとにクラス分け処理を行う場合について説明する。図８（ａ）に示すように、周辺画素のうち注目画素の上の画素のみがエッジ画素であり、注目画素の左右にはエッジ画素が存在しない場合には、注目画素の右の画素にクラス分け処理を行ったときの閾値th(x+1，y)をそのまま注目画素の閾値th(x，y)とする。図８（ｂ）に示すように、周辺画素のうち注目画素の上にはエッジ画素が存在せず、注目画素の左右の画素がエッジ画素である場合には、注目画素の上の画素がクラス分け処理を行ったときの閾値th(x，y-1)をそのまま注目画素の閾値th(x，y)とする。
【０１１２】
図８（ｃ）に示すように周辺画素にエッジ画素が存在しない場合には、注目画素の右の画素がクラス分け処理を行ったときの閾値、あるいは、上の画素がクラス分け処理を行ったときの閾値のうち、予め設定されている初期閾値に近いほうの閾値を注目画素の閾値とする。図８（ｄ）に示すように、上記以外の場合には、（６）式を用いて注目画素の閾値を算出する。
【０１１３】
このようにして閾値を決定した場合の閾値の分布を図６（ｂ）に示す。図から平坦部における不自然な閾値の変化を生じていないことが分かる。これにより平坦部の閾値を一定に保つことができ、さらに、後述するオブジェクト情報の作成を行うことができる。
【０１１４】
再帰的クラス分け処理は、上記のように画素ごとに閾値を決定してクラス分け処理が繰り返されることにより実行される。具体的には以下のように実現する。
本実施形態では、３レベル階層まで、再帰的クラス分け処理を繰り返す。
【０１１５】
まず、レベル１におけるクラス分け処理では、エッジ量上限値（＝重み係数の和）Ｗ１を１２８とし、前述のようにして決定した閾値に基づいて、各画素を明度値が０または２５５の２つのクラスに分類する。画素の明度値が閾値より大きいときは、その画素の明度値を２５５とし、閾値より小さいときは、明度値を０とする。このようにして得られた各画素の明度値をレベル１のクラス情報として画素ごとに記憶し、レベル１における分類結果とする。
【０１１６】
レベル２では、レベル１において明度値が０のクラスに分類された各画素および２５５のクラスに分類された各画素について、さらにクラス分け処理を行う。エッジ量上限値をＷ２＝Ｗ１／２（＝６４）と設定することで、レベル１より細かなエッジを検出してクラスの変化を起こしやすくする。また、このとき、エッジ量下限値ＬＯＷＥＲ＿ＶＡＬ（Ｗ２）は、（５）式にＷ＝６４を代入して１６とする。
【０１１７】
レベル２のクラス分け処理では、レベル１において０のクラスに分類された各画素の明度値を０と８５の２つのクラスに分類し、レベル１において２５５のクラスに分類された各画素の明度値を１７０と２５５の２つのクラスに分類する。このようにして得られた各画素の明度値をレベル２のクラス情報として記憶し、レベル２における分類結果とする。
【０１１８】
最後に、レベル３では、レベル２において明度値が０，８５，１７０，２５５のクラスに分類された各画素について、さらにクラス分け処理を行う。エッジ量上限値Ｗ３をＷ３＝Ｗ２／２（＝３２）と設定することで、より細かなエッジを検出してクラスの変化を起こしやすくする。また、このとき、エッジ量下限値ＬＯＷＥＲ＿ＶＡＬ（Ｗ３）は、（５）式にＷ３＝３２を代入して８とする。
【０１１９】
レベル３のクラス分け処理では、レベル２において明度値が０のクラスに分類された各画素の明度値を０と２８の２つのクラスに分類し、８５のクラスに分類された各画素の明度値を５６と８５の２つのクラスに分類し、１７０のクラスに分類された各画素の明度値を１７０と１９６の２つのクラスに分類し、２５５のクラスに分類された各画素の明度値を２２６と２５５の２つのクラスに分類する。このようにして得られた各画素の明度値をレベル３のクラス情報として記憶し、レベル３における分類結果とする。
【０１２０】
図９は、再帰的クラス分け処理を３レベルまで行ったときの画素の分類を模式的に表したツリー構造を示す図である。ここで、０，２８，５６，…２５５はそれぞれクラスの明度値であり、クラスを識別するためのクラス情報である。また、このツリー構造は、クラス情報により、レベル３のクラス情報から容易にレベル１、レベル２におけるクラス情報を求めることができる。たとえば、レベル３では１９６のクラスに属する画素は、レベル２では１７０のクラスに属し、レベル１では２５５に属することがわかる。したがって、各画素については、レベル３におけるクラス情報のみを記憶しておけばよい。
【０１２１】
ただし、必ずしもクラス情報には明度値を用いる必要はなく、レベル３におけるクラス情報からレベル１，２におけるクラス情報がわかれば良い。たとえば、レベル３のクラスにおいて、前述のクラス０をクラス１，クラス２８をクラス２，クラス５６をクラス３，…，クラス２５５をクラス８などとしてもよい。
【０１２２】
さらにクラスタリング部１１は、再帰的クラス分け処理を行う際に決定した画素ごとの閾値に基づいてオブジェクト情報を作成する。オブジェクト情報は画素ごとに決定され、画素が背景領域に属するか、背景以外のオブジェクト（写真、文字など）領域に属するかを示す。たとえば、画素が背景領域に属する場合は、オブジェクト情報を１とし、オブジェクト領域に属する場合は、オブジェクト情報を０として記憶する。
【０１２３】
画素が背景領域に属するかどうかは、レベルごとに決定され、クラス分けに用いた閾値が初期閾値であって、これが継続されている間の画素は背景領域に属すると判断する。図７および図８に示した条件で閾値を決定した場合、初期閾値が継続されるのは、平坦部が連続しているからである。また、背景領域以外の領域は何らかのオブジェクトが存在すると考えられるため、背景領域以外はオブジェクト領域であると判断する。
【０１２４】
したがって、画素ごとに行われる再帰的クラス分け処理において、閾値として用いる近傍閾値が、背景画素の閾値であれば、注目画素は背景領域に属し、非背景画素の閾値であれば、注目画素は背景領域に属するとする。
【０１２５】
また、閾値が式（６）を用いて算出された場合には、注目画素は非背景領域に属するとする。これは、注目画素の閾値が新たに算出されるということは、何らかのオブジェクトが存在すると考えられるためである。
【０１２６】
以上のように、再帰的クラス分け処理によってクラスタリング部１１は、各画素のクラス情報とオブジェクト情報とを作成する。
【０１２７】
図１０は、各画素のクラス情報の分布を示す図である。本実施形態では、クラス情報として明度値を用いており、この明度値を階調値として用いることで、各画素が有するクラス情報を画像として可視化することができる。図１０（ａ）は、レベル１のクラス情報の分布を示し、図１０（ｂ）は、レベル２のクラス情報の分布を示し、図１０（ｃ）は、レベル３のクラス情報の分布を示している。レベル１から３にかけてクラスが詳細に分類される様子が分かる。
【０１２８】
図１１は、各画素のオブジェクト情報の分布を示す図である。図では、背景領域に属する画素の明度値を２５５（白の領域）とし、オブジェクト領域に属する画素の明度値を１２８（グレーの領域）としてオブジェクト情報の分布を示している。
【０１２９】
次に、ランレングス算出手段であるランレングス算出部１２においてクラスタリング部１１で作成したクラス情報およびオブジェクト情報の主走査方向のランレングスを算出する。ランレングスはレベルごと、本実施形態ではレベル３までのランレングスを算出する。
【０１３０】
図１２は、ランレングス算出処理の手順の一例を示す図である。ここでは、１ラインの画素数を１６画素として処理を行うこととする。ランレングス算出処理は、２つの処理からなる。各画素には１つの変数（カウント）が与えられ、このカウントを所定の条件で変化させることによりランレングスを算出する。まず第１の処理は、各画素のクラス情報（図１２（ａ）参照）に基づいて、ラインの左から右方向に同一クラスの画素が連続する限り、画素のカウントを増加させてランレングスを算出する処理であり、第２の処理は、ラインの右から左方向について、右隣りの画素のカウントが注目画素におけるカウントより１大きい場合、右隣りの画素におけるカウントを注目画素のカウントに置き換えることにより、各画素に自らが属するランのランレングスを与える処理である。なお、２つの処理に分割することで、複雑なループ処理を避けることが可能となり、ＳＩＭＤプロセッサ（同種複数処理型演算装置）によってマルチパス処理で行うことができる。
【０１３１】
まず、図１２（ｂ）を参照して、第１の処理について説明する。第１の処理では、図１２（ａ）に示した各画素のクラス情報に基づいて、左隣りの画素のクラス情報が注目画素のクラス情報と同じ場合、左隣りの画素のカウントに１を加えたカウントを注目画素のカウントとする。図１２（ｂ）のレベル１では、まず左端の画素を注目画素とすると、注目画素のレベル１クラス情報は０であり、左隣りの画素が存在しないので、カウント０を出力バッファに書き込み、注目画素を次の右隣の画素に移動する。
【０１３２】
次の注目画素（左から２番目の画素）のレベル１クラス情報も０であるから、左隣の画素のカウントに１を加え、カウント１を出力バッファに書き込む。次の注目画素（左から３番目の画素）のレベル１クラス情報は２５５であり、左隣の画素とは異なるクラスに属するので、カウントを０に戻し、出力バッファにカウント０を書き込む。同様にして左隣の画素のクラス情報と注目画素のクラス情報とを比較しながら１ライン分の画素についてカウントを決定する。カウントが０の画素が現れるまでのカウントがその画素が属するランのランレングスを示す。
【０１３３】
なお、図１２（ａ）に示すクラス情報は、レベル３クラス情報であるため、レベル１のランレングスを算出するためには、レベル３クラス情報からレベル１クラス情報を求める必要がある。たとえば、左から６番目の画素の記憶されているクラス情報は、レベル３クラス情報の１７０であるが、図９に示したツリー構造から、レベル２クラス情報は、１７０であり、レベル１クラス情報は２５５であることがわかる。
【０１３４】
次に、各画素のレベル２クラス情報を求め、レベル１と同様にして、ランレングスを算出する。レベル３クラス情報からレベル２クラス情報を求める方法について説明する。レベル３クラス情報をin、レベル２クラス情報をoutとすると、以下の式により容易に実現できる。
【０１３５】
（１）out = in < 56 ? 0 : out;
（２）out = in < 170 ? 85 : out;
（３）out = in < 226 ? 170 : out;
（４）out = 255;
【０１３６】
（１）レベル３クラス情報を５６と比較し、５６未満ならばレベル２クラス情報を「０」とする。
【０１３７】
（２）レベル３クラス情報が５６以上で１７０未満ならば、レベル２クラス情報を「８５」とする。
【０１３８】
（３）レベル３クラス情報が１７０以上で２２６未満ならば、レベル２クラス情報を「１７０」とする。
【０１３９】
（４）レベル３クラス情報が２２６以上ならば、レベル２クラス情報を「２５５」とする。
【０１４０】
レベル２においては、レベル２より上位であるレベル１におけるクラスの変化を無視してランレングスを算出するために、左隣の画素のクラス情報と注目画素のクラス情報との差の絶対値が２５５となるときには、クラスの変化が無いものとみなし、カウントを０に戻さず、カウントアップを継続する。つまり、レベル１で既にクラスの変化点、すなわちランの境界であると判定された箇所をレベル２以降では検知しないようにする。図１２（ｂ）にレベル２のランレングス算出結果を示す。
【０１４１】
レベル３については、記憶されているそのままのクラス情報を用いてランレングスを算出することができる。ただし、レベル２と同様に、レベル３より上位であるレベル１およびレベル２におけるクラスの変化を無視してランレングスを算出するために、左隣の画素のクラス情報と注目画素のクラス情報との差の絶対値が２８を超えるときには、クラスの変化が無いものとみなし、カウントアップを継続する。以上のような第１の処理により、レベル１〜３までのランレングスを算出することができる。
【０１４２】
第２の処理について説明する。第２の処理では、第１の処理で求めた各画素のカウント（図１２（ｂ））に対して、注目画素のカウントとその右隣り画素のカウントとを比較し、右隣の画素のカウントが注目画素のカウントより１だけ大きければ、注目画素のカウントを右隣りの画素のカウントで置き換える。ランの右端にある画素のカウントはランレングスと等しいので、同じランに属する画素のカウントをランの右端にある画素のカウントで置き換えることによって、各画素が、自らが属するランのランレングスを情報として有することとなる。レベル１の場合を例として以下に説明する（図１２（ｃ）参照）。
【０１４３】
・右端の画素のカウントが「１」であり、右隣の画素が存在しないので、カウントは「１」のまま変えない。
【０１４４】
・次（右から２番目）の画素のカウントが「０」であり、右隣の画素のカウントが１だけ大きいので、カウントを「１」に置き換える。
【０１４５】
・右から３番目の画素のカウントは「３」であり、右隣の画素のカウントが２大きいので、カウントは「３」のまま変えない。
【０１４６】
・右から４番目の画素のカウントは「２」であり、右隣の画素のカウントが１だけ大きいので、カウントを「３」に置き換える。
【０１４７】
・右から５番目の画素のカウントは「１」であり、右隣の画素のカウントが１だけ大きいので、カウントを「３」に置き換える。
【０１４８】
以下同様にこの処理を繰り返す。なお、注目画素のカウントとその右隣りの画素のカウントとの比較は、第１の処理で求めたカウント（図１２（ｂ））に基づいて行い、置き換えるカウントは第２の処理後のカウントを用いる。これは、連続してカウントされたときのカウントの最大値（ランの右端のカウント）がランレングスに相当するため、連続してカウントされた画素のカウントを最大値で置き換えることに相当する。
【０１４９】
以上の第１および第２の処理と同様の処理を行えば、オブジェクト情報のランレングスを算出することができる。第１の処理では、左隣の画素と同じオブジェクト情報であれば、左隣りの画素のカウントに１を加えたカウントを注目画素のカウントとする。第２の処理では、第１の処理結果に基づいて、カウントの置き換えを行う。
【０１５０】
また、ＳＩＭＤプロセッサのような複数のデータパスを１つのプログラムカウンタで扱うプロセッサでは、１ラインのクラス情報を複数のデータパス、たとえば図１３（ａ）に示すように、データパスＡおよびデータパスＢに分割し、第１の処理では各データパスを同時に処理することができる。
【０１５１】
各データパス内で個別にランレングスを算出し（図１３（ｂ）参照）、データパス間を連結する（図１３（ｃ）参照）。データパスＡとデータパスＢとの連結部において、隣接する画素のクラス情報が同じであれば、データパスＡの右端の画素のカウントを、データパスＢの左端の画素以外でカウントが０の画素が現れるまで加算する（図１３（ｃ）参照）。また、連結部でクラス情報が異なる場合には、そのまま連結する。データパスの連結後は、前述と同様に第２の処理を行い、各画素に自らが属するランのランレングスを与える（図１３（ｄ）参照）。以上の処理により、容易にＳＩＭＤプロセッサにおいて処理を行うことができる。
【０１５２】
次に、文字領域推定手段である文字領域推定部１３において、クラス情報のランレングスに基づいて、文字領域に属する画素を推定する。文字は、一般的に煩雑度が高いと考えられるため、クラス情報のランレングスが文字推定閾値SIZEOFTEXT以下であれば文字領域に属する画素であると推定することができる。
【０１５３】
しかしながら、ランレングス算出部１２で算出したランレングスは、主走査方向のランレングスであるから、閾値SIZEOFTEXTに基づいて文字領域の推定を行うと、画像の横方向の煩雑度にのみ依存した判定となり、精度が十分ではない。
【０１５４】
そこで、周辺画素において、注目画素と同一のクラスに属し、かつ、文字領域ではないと推定されている画素が存在する場合、その注目画素は、クラス情報のランレングスが所定の閾値SIZEOFTEXT以下であっても文字領域であると推定しない。この条件を付加して判定することにより、文字領域推定精度を向上することができる。
【０１５５】
さらに、ラインの左から処理を行う場合と右から処理を行う場合とを考慮し、２方向から推定処理を行う。まず、左から右方向に処理を行う場合、クラス情報のランレングスが所定の閾値SIZEOFTEXT以下であっても、図１４に示す処理対象の周辺画素が以下の条件を満たす場合、文字領域であると推定しない。
【０１５６】
・左隣の画素が注目画素と同一のクラスに属し、かつ、文字領域として推定されていない
・上の画素が注目画素と同一のクラスに属し、かつ、文字領域として推定されていない
・左斜め上の画素が注目画素と同一のクラスに属し、かつ、文字領域として推定されていない
・右斜め上の画素が注目画素と同一のクラスに属し、かつ、文字領域として推定されていない
また、ラインの右から左方向に処理を行う場合、既に左から右方向の処理で文字領域と推定されていても、以下の条件を満たす場合、文字領域であると推定しない。
【０１５７】
・右隣の画素が注目画素と同一のクラスに属し、かつ、文字領域として推定されていない
【０１５８】
以上の２方向の処理（（１）ラインの左から右方向の処理、（２）ラインの右から左方向処理）により、クラス情報のランレングスに基づいて文字領域を精度良く推定することができる。以上の文字領域推定処理を各レベルで行う。
【０１５９】
図１５は、各レベルにおける文字推定領域を示す図である。図１５（ａ）は、レベル１における文字推定領域、図１５（ｂ）は、レベル２における文字推定領域、図１５（ｃ）は、レベル３における文字推定領域をそれぞれ示している。図では、文字領域に属すると推定された画素の明度値を２５５、それ以外の画素の明度値を０としている。
【０１６０】
領域判定部１４は、オブジェクト情報のランレングスおよび文字領域推定結果に基づいて、各画素の属する領域を判定する領域判定手段である。オブジェクト情報のランを単位窓（ある単位をまとめて１つのものとして見なす）とし、文字領域推定部１３の推定結果からレベル毎に文字領域と推定された画素の含有率に基づいて、領域判定を行う。
【０１６１】
まず、単位窓内におけるレベル１の文字推定領域の画素数、レベル２の文字推定領域の画素数、レベル３の文字推定領域の画素数をカウントする。図１６は、領域判定の対象となる単位窓の一例を示す図である。この例では、単位窓であるオブジェクト情報のランレングスを８とし（ランレングス算出処理が０からカウントを始めるため、図では「８」ではなく「７」と表記している。）、文字領域に属すると推定される画素を「＊」、文字領域ではないと推定された画素を「−」で表している。
【０１６２】
まず、単位窓内におけるレベル毎の文字領域推定画素をカウントする。図１６では、レベル１における文字領域推定画素数が４、レベル２における文字領域推定画素数が３、レベル３における文字領域推定画素が０である。
【０１６３】
そして、これらの文字領域推定画素数から背景・文字・写真領域を判定する。文字領域は、連続するオブジェクト領域が１つのレベルの文字領域推定画素で構成されていることが多く、たとえば、以下に示す条件では文字領域である可能性が高い。
【０１６４】
【表１】
2005057496.tif 000006
【０１６５】
逆に、写真領域は、連続するオブジェクト領域が複数のレベルの文字領域推定画素で構成されていることが多い。たとえば、以下に示す条件では写真領域である可能性が高い。
【０１６６】
【表２】
2005057496.tif 000007
【０１６７】
実際に判定するには、予めオブジェクト情報のランレングス、レベル１の文字領域推定画素数、レベル２の文字領域推定画素数およびレベル３の文字領域推定画素数と、領域判定結果とを関連付けるＬＵＴ（Look Up Table）を記憶しておき、文字領域推定画素数に基づいてＬＵＴを参照することにより、オブジェクト領域が文字領域と写真領域のいずれであるかを判定する。このＬＵＴの作成には、たとえば、ニューラルネットワークを用いた学習方法などが挙げられる。
【０１６８】
なお、背景領域は、オブジェクト情報を作成した際、オブジェクト領域が存在しない領域を背景領域と判定する。また、オブジェクト領域であったとしてもオブジェクト情報のランレングスがある程度大きく、各レベルにおける文字領域推定画素数が少ない場合には、背景領域として判定してもよい。
【０１６９】
図１７は、領域判定結果を示す図である。ただし、文字領域に属する画素の明度値を０（黒の領域）、背景領域に属する画素の明度値を２５５（白の領域）、写真領域に属する画素の明度値を１２８（グレーの領域）としている。
【０１７０】
さらに、領域分割結果に基づいて、文字領域に判定された画素から詳細に文字を検知する。なお、文字検知を行う際には、図１８の領域分割部４のブロック図に示すように、領域判定部１４の後段に文字検知部１５が設けられる。文字検知部１５以外の部位については、図２で説明した部位と同じであるので説明は省略する。なお、文字検知部１５は必ずしも領域分割部４に備える必要はない。
【０１７１】
文字検知部１５は、領域判定部１４において文字領域であると判定された画素について、文字領域推定結果を用いてさらに詳細に文字を検知する。文字推定領域において、連続する文字推定領域の最初の画素の属するクラスが文字クラスであるのが一般的であることから、最初の画素が属するクラスを検知し、文字領域であると判定された領域内において、検知したクラスと同一のクラスに属する画素が文字領域に属すると判定することにより、文字の判定精度をさらに向上させることができる。
【０１７２】
図１９は、文字検知部１５が文字の検知を行った場合の領域判定結果を示す図である。各領域を示す明度値は、図１７に示した判定結果と同じである。図からわかるように図１７に示した判定結果に比べて、精度良く文字領域が分割されているのがわかる。
【０１７３】
圧縮アーティファクツ除去処理について説明する。圧縮アーティファクツ除去処理手段５ｂは、領域判定部１４において写真領域であると判定された画素に対して圧縮アーティファクツ除去処理を行う。一般的に、リンギングノイズは、写真領域内のエッジ部に沿ってエッジ周辺部に発生する。また、ブロックノイズは写真領域内の平坦部に発生する。そこで、ランレングス算出部１２で算出されたクラス情報に基づいて、写真領域に属する画素が、さらにエッジ周辺部、平坦部およびエッジ部のいずれに属する画素であるかを判断し、エッジ周辺部の場合はリンギングノイズ除去処理を行い、平坦部の場合はブロックノイズ除去処理を行う。それ以外の場合は、エッジ部であるとし、エッジをぼけさせないためにリンギングノイズ除去処理およびブロックノイズ除去処理といった平滑化処理は施さない。
【０１７４】
リンギングノイズ除去処理およびブロックノイズ除去処理は、各画素に対して平滑化フィルタを適用するフィルタ処理である。リンギングノイズ除去処理では、たとえば図２０（ａ）に示すような平滑化フィルタＦ１を適用し、ブロックノイズ除去処理では、図２０（ｂ）に示すような平滑化フィルタＦ２を適用する。
【０１７５】
リンギングノイズは、水平方向のエッジや垂直方向のエッジ周辺より、むしろ斜め方向のエッジ周辺に発生することが多い。したがって、リンギングノイズ除去処理では、図２０（ａ）の平滑化フィルタフィルタＦ１のように、斜め方向に隣接する画素の画素値と注目画素の画素値との平均値を注目画素の新たな画素値とすることで、斜め方向の周波数成分を減衰させるような周波数応答を持つフィルタを適用する。一方、ブロックノイズは、平坦部におけるＤＣＴブロックの境界に発生する。したがって、ブロックノイズ除去処理では、図２０（ｂ）の平滑化フィルタＦ２のように、水平方向、垂直方向および斜め方向に隣接する画素の画素値と注目画素の画素値との平均値を注目画素の新たな画素値とすることで、各方向の周波数成分を減衰させるような周波数応答を持つフィルタを適用する。
【０１７６】
図２１は、圧縮アーティファクツ除去処理を示すフローチャートである。まず、ステップａ１では、写真領域に属する画素に対して、ランレングス算出部１２によって算出されたクラス情報を用いて、各画素がエッジ部、エッジ周辺部または平坦部のいずれに属するかを示す属性を判定する。次にステップａ２では、ステップａ１の判定結果がエッジ部であるかどうかを判断する。エッジ部であれば、いずれのフィルタ処理も行わずに圧縮アーティファクツ除去処理を終了する。エッジ部でなければ、ステップａ３に進み、エッジ周辺部であるかどうかを判断する。
【０１７７】
エッジ周辺部であれば、ステップａ４に進み、前述の平滑化フィルタＦ１を用いてリンギングノイズ除去処理を行い、圧縮アーティファクツ除去処理を終了する。エッジ周辺部でなければ、すなわち平坦部であれば、ステップａ５に進み、前述の平滑化フィルタＦ２を用いてブロックノイズ除去処理を行い、圧縮アーティファクツ除去処理を終了する。なお、本フローチャートは、１つの画素に対する処理を示しているので、写真領域に属する画素が複数の場合は、全ての画素に対して圧縮アーティファクツ除去処理を行う。
【０１７８】
ステップａ１における属性判定処理について詳細に説明する。属性判定処理は、所定の画素ブロック内のランレングスを示すカウントがゼロの画素数、すなわち、画素ブロック内のクラス変化箇所の数（以下では、「クラス変化数」と呼ぶ。）を計数し、この計数値に基づいて行われる。本実施形態では、注目画素を中心とする７×７の画素ブロックを対象とする。ＤＣＴブロックの基底サイズが８×８であること、および注目画素を中心とするためにブロックの一辺を奇数とすることなどから、７×７の画素ブロックとしている。
【０１７９】
図２２は、クラス変化数を計数する手順を示す図である。まず、注目画素Ｃを中心とする７×７の画素ブロックＢをＸ１〜Ｘ７までの７列に分割し、列ごとに列に含まれるクラス変化数を計数する。Ｘ１の列からＸ７の列までのクラス変化数を計数し、順にＺ１，Ｚ２，Ｚ３，Ｚ４，Ｚ５，Ｚ６，Ｚ７として図示しない記憶部の所定の記憶領域に記憶する。次に、Ｚ１〜Ｚ７の合計値Ｓｕｍ（Ｃ）を算出し、注目画素Ｃを含む画素ブロックＢのクラス変化数とする。このような計数処理を写真領域に属する全ての画素について行う。
【０１８０】
同じ領域に属する画素は、図１７に示したように集中して配置されており、写真領域に属する画素もグレー領域で示されるように配置されている。したがって、写真領域に属する画素が水平方向に連続する場合、計数処理は以下のように簡略化することができる。
【０１８１】
図２３は、簡略化したクラス変化数を計数する手順を示す図である。注目画素Ｎを連続する画素のうちの左端の画素とすると、まず、図２２に示した手順で注目画素Ｎについての計数処理を行う。次に、注目画素を右隣の画素に移動する。この注目画素を注目画素Ｃ＋１とし、注目画素Ｃ＋１を含む７×７の画素ブロックＢ＋１のクラス変化数Ｓｕｍ（Ｃ＋１）を計数する。ここで、画素ブロックを７列に分解すると、Ｘ２〜Ｘ８の７列となる。Ｘ２〜Ｘ７までの列についてはすでに計数が終了し記憶されているので算出する必要がない。したがって、画素ブロックＢ＋１のクラス変化数は、Ｓｕｍ（Ｃ）から列Ｘ１のクラス変化数を除き、列Ｘ８のクラス変化数を加えればよい。具体的には、画素ブロックＢにおいて、Ｓｕｍ（Ｃ）−Ｚ１を算出した後、Ｚ２をＺ１に書換え、Ｚ３をＺ２に書換え、Ｚ４をＺ３に書換え、Ｚ５をＺ４に書換え、Ｚ６をＺ５に書換え、Ｚ７をＺ６に書換える。列Ｘ８のクラス変化数をＺ７として計数した後、Ｓｕｍ（Ｃ＋１）としてＺ１〜Ｚ７の合計値を算出する。
【０１８２】
このように、写真領域に属する画素が隣接する場合は、画素ブロックのクラス変化数を算出した後、１列分のクラス変化数を引いて、１列分のクラス変化数を加えるだけでよい。
【０１８３】
図２４は、簡略化した計数処理を示すフローチャートである。予め列ごとのクラス変化数を計数しておき、ステップｂ１で、Ｚ１＋Ｚ２＋Ｚ３＋Ｚ４＋Ｚ５＋Ｚ６を算出して画素ブロックのクラス変化数Ｓｕｍとする。ステップｂ２ではＺ７を計数する。ステップｂ３ではステップｂ１で算出したクラス変化数ＳｕｍにＺ７を加え、新たに画素ブロックのクラス変化数Ｓｕｍとして記憶部に記憶し、属性判定に用いる。ステップｂ４では、クラス変化数ＳｕｍからＺ１を引いて新たに画素ブロックのクラス変化数Ｓｕｍとする。また、Ｚ２をＺ１に書換え、Ｚ３をＺ２に書換え、Ｚ４をＺ３に書換え、Ｚ５をＺ４に書換え、Ｚ６をＺ５に書換え、Ｚ７をＺ６に書換える。ステップｂ５では、連続する写真領域に属する画素について計数が終了したか否かを判断する。終了していれば計数処理を終了し、終了していなければ注目画素を隣接画素に移動してステップｂ２に戻る。
【０１８４】
なお、計数処理の簡略化は、写真領域に属する画素が必ずしも隣接している必要はなく、たとえば次に計数処理すべき注目画素が、２画素離れていた場合は、すでに算出した画素ブロックのクラス変化数から２列分のクラス変化数を引いて、２列分のクラス変化数を加えればよい。
【０１８５】
上記のようにランレングス算出部１２が算出したクラス情報に基づいてクラス変化数を計数した場合、水平方向のクラス変化は抽出することができるが、垂直方向におけるクラス変化を抽出することはできない。そこで、計数処理ではランレングスを示すカウントがゼロの画素数を計数するだけでなく、垂直方向のクラス変化箇所の数も計数する。垂直方向におけるクラス変化は、垂直方向に隣接する画素間のクラス情報の差分値と閾値とを比較し、差分値が閾値以上で有ればクラス変化箇所であるとする。なお、閾値はレベルに応じて異なる。これは、ランレングス算出部１２の算出処理の説明で述べたように、レベル２ではレベル１においてすでに検知されたクラス変化箇所を検知しないように、レベル３ではレベル１およびレベル２においてすでに検知されたクラス変化箇所を検知しないようにするためである。したがって、レベル１では、閾値を１２８とし、垂直方向に隣接する画素のクラス情報の差分値の絶対値が１２８以上であれば、クラス変化箇所であるとし、そうでなければクラスは変化していないものとする。レベル２では、閾値を１２８および３２とし、垂直方向に隣接する画素のクラス情報の差分値の絶対値が１２８より小さく、かつ、３２以上であれば、クラス変化箇所であるとし、そうでなければクラスは変化しないものとする。レベル３については、閾値を３２および１６とし、垂直方向に隣接する画素のクラス情報の差分値の絶対値が３２より小さく、かつ、１６以上であれば、クラス変化箇所であるとし、そうでなければクラスは変化しないものとする。このようにして７×７の画素ブロックの列ごとにクラス変化箇所を計数し、７列分の合計値を算出する。
【０１８６】
以上のように、７×７の画素ブロック内のクラス変化数を水平方向および垂直方向でそれぞれ計数し、これらの総和を算出する。
【０１８７】
さらに、図２５に示すような注目画素を中心とする３×３の画素ブロックに対して、上記と同様の手順で水平方向および垂直方向のクラス変化数を計数し、これらの総和を算出する。
【０１８８】
そして、７×７の画素ブロックにおけるクラス変化数、および３×３の画素ブロックにおけるクラス変化数の関係に基づいて、写真領域に属する画素がエッジ部、エッジ周辺部、平坦部のいずれに属するかを判定する。
【０１８９】
図２６は、属性判定処理を示すフローチャートである。まず、ステップｃ１では上述の手順で注目画素を中心とする７×７の画素ブロックにおけるクラス変化数の総和Ｓｕｍ１を算出する。ステップｃ２では上述の手順で３×３の画素ブロックにおけるクラス変化数の総和Ｓｕｍ２を算出する。
【０１９０】
ステップｃ３では、総和Ｓｕｍ１，Ｓｕｍ２と閾値ＴＨ１を比較し、総和Ｓｕｍ１が閾値ＴＨ１より小さく、かつ総和Ｓｕｍ２が閾値ＴＨ１より小さいか否かを判断する。総和Ｓｕｍ１，Ｓｕｍ２がいずれも閾値ＴＨ１より小さい場合は、ステップｃ７に進み、注目画素は平坦部に属すると判定する。平坦部にはエッジがほとんど含まれていないため、画素ブロックに含まれるクラス変化数は小さいからである。
【０１９１】
総和Ｓｕｍ１，Ｓｕｍ２のいずれかが閾値ＴＨ１以上であれば、ステップｃ４に進む。ステップｃ４では、Ｓｕｍ１−Ｓｕｍ２の値が閾値ＴＨ２より大きく、かつＳｕｍ２が閾値ＴＨ３より小さいか否かを判断する。Ｓｕｍ１−Ｓｕｍ２の値が閾値ＴＨ２より大きく、かつＳｕｍ２が閾値ＴＨ３より小さければ、ステップｃ６に進み、注目画素はエッジ周辺部に属すると判断する。Ｓｕｍ１−Ｓｕｍ２の値が閾値ＴＨ２以下、またはＳｕｍ２が閾値ＴＨ３以上であれば、ステップｃ５に進み、注目画素はエッジ部に属すると判断する。３×３の画素ブロックのクラス変化数が少なく、７×７の画素ブロックのクラス変化数が大きい場合、３×３の画素ブロック内は平坦部であり、３×３の画素ブロックを除く７×７の画素ブロック内はエッジ部である。したがって、注目画素はエッジ周辺部に属すると判定する。また、それ以外の場合は、注目画素はエッジ部に属すると判定する。
【０１９２】
以上の判定処理は、全てのレベル（本実施形態ではレベル１〜３）において実施され、レベルごとの判定結果が得られる。各レベルにおける判定結果に基づいて、最終的な属性判定を行い、圧縮アーティファクツ除去のための処理を決定する。この最終属性判定は、ＬＵＴ（Look Up Table）を用いて行う。
【０１９３】
図２７は、最終属性判定用のＬＵＴの一例である。レベル１〜３の判定結果が得られると、それらの組み合わせに対応する判定結果を最終属性判定の判定結果とする。
【０１９４】
前述のようにレベル１では強いエッジ強度（周辺画素との濃度差が大きいエッジ）を持つクラスを抽出し、レベル２ではレベル１よりも弱いエッジ強度を持つクラスを抽出し、レベル３ではさらに微弱なエッジ強度を持つクラスを抽出するように構成されている。したがって、ＬＵＴに示される最終の判定結果では、レベル２およびレベル３に比べてレベル１における判定結果を優先する。たとえば、図２７のＬＵＴにおいて、レベル２、レベル３の判定結果が平坦部であっても、レベル１の判定結果がエッジ部であれば、最終判定結果はエッジ部となる。
【０１９５】
また、レベル１の判定結果が平坦部、あるいは、エッジ周辺部であった場合は、レベル３に比べてレベル２における判定結果を優先する。たとえば、レベル１およびレベル３の判定結果がともに平坦部であっても、レベル２の判定結果がエッジ部であれば、最終判定結果はエッジ部となる。
【０１９６】
このように多段階のエッジ強度を用いて属性判定を行うことにより、属性判定精度を高め、弱いエッジ部を誤って平滑化するような再現性の低下を防止することができる。
【０１９７】
最終の属性判定結果にしたがって、エッジ周辺部に属すると判定された画素にはリンギングノイズ除去処理が適用され、平坦部に属すると判定された画素にはブロックノイズ除去処理が適用され、エッジ部に属すると判定された画素にはエッジを保存するために処理を行わない。
【０１９８】
なお、レベル１およびレベル２の判定結果が平坦部であり、レベル３の判定結果がエッジ周辺部と判定された画素には、周辺に強いエッジが存在しないためリンギングノイズが発生しているとは考えにくく、逆に、ブロックノイズが発生している可能性の方が高いと考えられる。そこで、ブロックノイズ除去処理を行うよう平坦部であると判定する。
【０１９９】
さらに、リンギングノイズの強度はその近傍のエッジ強度に依存することから、エッジ強度に応じてリンギングノイズ除去処理を変更するように構成すれば、適切に平滑化処理を行うことができるため、さらに圧縮アーティファクツ除去処理の精度を向上することができる。また、平坦部にも、弱いエッジ部を含む平坦部と全くエッジ部を含まない平坦部とが存在する。したがって、平坦部に属すると判定された画素に対して、エッジ強度に応じたブロックノイズ除去処理を変更することにより、適切に平滑化処理を行うことができるため、さらに圧縮アーティファクツ除去処理の精度を向上することができる。
【０２００】
たとえば、図２８に示したＬＵＴのように、最終判定結果として平坦部を平坦部１および平坦部２に細分化し、エッジ周辺部をエッジ周辺部および弱エッジ周辺部に細分化して、平滑化処理に用いるフィルタを変更する。
【０２０１】
エッジ周辺部に属する画素には図２９（ａ）に示す平滑化フィルタＦ３を適用し、また、弱エッジ周辺部に属する画素には、図２９（ｂ）に示す平滑化フィルタＦ４を適用する。さらに、弱いエッジ部を含む平坦部（平坦部１）に属する画素には図２９（ｂ）に示す平滑化フィルタＦ４を適用し、全くエッジ部を含まない平坦部（平坦部２）に属する画素には図２０（ｂ）に示す平滑化フィルタＦ２を適用する。
【０２０２】
なお、レベル１の判定結果が平坦部で、レベル２の判定結果がエッジ周辺部である場合は、最終判定結果は、弱エッジ周辺部となる。また、レベル１およびレベル２の判定結果が平坦部であり、レベル３の判定結果がエッジ部である場合は、最終判定結果は弱いエッジ部を含む平坦部１となり、レベル３の判定結果も平坦部である場合は、全くエッジ部を含まない平坦部２となる。
【０２０３】
このように、複数段階の判定結果を用いることで、最終判定結果を細分化し、より精度良く圧縮アーティファクツ除去処理を行うことができる。
【０２０４】
図３０は、本実施形態の画像処理を示すフローチャートである。まず、ステップＳ１では、色変換部１０によって、入力された画像データの色空間を変換し、明度値など領域判定に用いる画素値を求める。ステップＳ２では、クラスタリング部１１によって、再帰的クラス分け処理を行い、クラス情報およびオブジェクト情報を生成する。ステップＳ３では、ランレングス算出部１２が作成されたクラス情報およびオブジェクト情報の主走査方向ランレングスを算出する。
【０２０５】
ステップＳ４では、文字領域推定部１３が、クラス情報のランレングスと閾値SIZEOFTEXTとを比較する。閾値より小さいランレングスを有するランに属する画素を文字領域に属する画素と推定する。ステップＳ５では、領域判定部１４が、オブジェクト情報が連続する領域内の画素のうち文字領域と推定された画素の画素数に基づいて、オブジェクト領域の画素を文字領域か写真領域に判定する。
【０２０６】
ステップＳ６では、圧縮アーティファクツ除去処理手段５ｂが、写真領域に属すると判定された画素に対して、クラス情報のランレングスを用いてエッジ部、エッジ周辺部および平坦部のいずれに属するかをさらに判定し、判定結果に基づいたフィルタ処理を行う。
【０２０７】
以上のように、本実施形態では、周辺画素の影響を考慮して注目画素ごとに閾値を決定する再帰的クラス分け処理によって、画像データを複数のクラスに分類し、この結果に基づいて領域判定を行う。したがって、固定閾値を用いてクラス分け処理を行う場合などと比べて領域分離精度を向上させることができる。
【０２０８】
また、高精度で分離された写真領域にのみ圧縮アーティファクツ除去処理を行うので、誤って文字領域を平滑化することがなく、画質の向上を実現することができる。
【０２０９】
また、領域分割処理のために算出したクラス情報のランレングスを圧縮アーティファクツ除去処理に用いているので、従来のように領域分割処理と圧縮アーティファクツ除去処理とを独立に行う場合に比べて、計算量を削減することができる。
【０２１０】
また、本発明の実施の他の形態は、コンピュータを画像処理装置２として機能させるための画像処理プログラム、および画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体である。これによって、画像処理プログラムおよび画像処理プログラムを記録した記録媒体を持ち運び自在に提供することができる。
【０２１１】
記録媒体は、プリンタやコンピュータシステム（コンピュータシステムに適用する場合はアプリケーション・ソフトとして用いることができる）に備えられるプログラム読み取り装置により読み取られることで、画像処理プログラムが実行される。
【０２１２】
コンピュータシステムの入力手段としては、フラットベッドスキャナ・フィルムスキャナ・デジタルカメラなどを用いてもよい。コンピュータシステムは、これらの入力手段と、所定のプログラムがロードされることにより画像処理などを実行するコンピュータと、コンピュータの処理結果を表示するＣＲＴ（Cathode Ray Tube）ディスプレイ・液晶ディスプレイなどの画像表示装置と、コンピュータの処理結果を紙などに出力するプリンタより構成される。さらには、ネットワークを介してサーバーなどに接続するための通信手段としてのモデムなどが備えられる。
【０２１３】
なお、記録媒体としては、プログラム読み取り装置によって読み取られるものには限らず、マイクロコンピュータのメモリ、たとえばＲＯＭであっても良い。記録されているプログラムはマイクロプロセッサがアクセスして実行しても良いし、あるいは、記録媒体から読み出したプログラムを、マイクロコンピュータのプログラム記憶エリアにダウンロードし、そのプログラムを実行してもよい。このダウンロード機能は予めマイクロコンピュータが備えているものとする。
【０２１４】
記録媒体の具体的な例としては、磁気テープやカセットテープなどのテープ系、フレキシブルディスクやハードディスクなどの磁気ディスクやＣＤ−ＲＯＭ（Compact Disc-
Read Only Memory）／ＭＯ（Magneto Optical）ディスク／ＭＤ（Mini Disc）／ＤＶＤ（
Digital Versatile Disc）などの光ディスクのディスク系、ＩＣ（Integrated Circuit）カード（メモリカードを含む）／光カードなどのカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（Electrically 
Erasable Programmable Read Only Memory）、フラッシュＲＯＭなどの半導体メモリを含めた固定的にプログラムを担持する媒体である。
【０２１５】
また、本実施形態においては、コンピュータはインターネットを含む通信ネットワークに接続可能なシステム構成とし、通信ネットワークを介して画像処理プログラムをダウンロードしても良い。なお、このように通信ネットワークからプログラムをダウンロードする場合には、そのダウンロード機能は予めコンピュータに備えておくか、あるいは別な記録媒体からインストールされるものであっても良い。また、ダウンロード用のプログラムはユーザーインターフェースを介して実行されるものであっても良いし、決められたＵＲＬ（Uniform Resource Locater）から定期的にプログラムをダウンロードするようなものであっても良い。
【図面の簡単な説明】
【０２１６】
【図１】本発明の実施の一形態である画像形成装置１の構成を示すブロック図である。
【図２】領域分割部４の構成を示すブロック図である。
【図３】入力画像（図３（ａ））と、色空間変換によって生成したＬ＊信号からなる画像（図３（ｂ））の例を示す図である。
【図４】３×３画素の画素ブロックを示す図である。
【図５】Prewittオペレータ（プリヴィットフィルター）の一例を示す図である。
【図６】各画素における閾値の分布を示す図である。
【図７】注目画素と周辺のエッジ画素との位置関係による閾値の決定方法を説明する図である。
【図８】注目画素と周辺のエッジ画素との位置関係による閾値の決定方法を説明する図である。
【図９】再帰的クラス分け処理を３レベルまで行ったときの画素の分類を模式的に表したツリー構造を示す図である。
【図１０】各画素のクラス情報の分布を示す図である。
【図１１】各画素のオブジェクト情報の分布を示す図である。
【図１２】ランレングス算出処理の手順の一例を示す図である。
【図１３】ＳＩＭＤプロセッサを用いたランレングス算出処理の手順の一例を示す図である。
【図１４】文字領域推定部１３が行う文字領域推定処理を説明する図である。
【図１５】各レベルにおける文字推定領域を示す図である。
【図１６】領域判定の対象となる単位窓の一例を示す図である。
【図１７】領域判定結果を示す図である。
【図１８】領域分割部４の他の構成を示すブロック図である。
【図１９】文字検知部１５が文字の検知を行った場合の領域判定結果を示す図である。
【図２０】平滑化フィルタの一例を示す図である。
【０２１７】
【図２１】圧縮アーティファクツ除去処理を示すフローチャートである。
【図２２】クラス変化数を計数する手順を示す図である。
【図２３】簡略化したクラス変化数を計数する手順を示す図である。
【図２４】簡略化した計数処理を示すフローチャートである。
【図２５】７×７画素の画素ブロックを示す図である。
【図２６】属性判定処理を示すフローチャートである。
【図２７】最終属性判定用のＬＵＴの一例である。
【図２８】最終属性判定用のＬＵＴの一例である。
【図２９】平滑化フィルタの一例を示す図である。
【図３０】本実施形態の画像処理を示すフローチャートである。
【符号の説明】
【０２１８】
１  画像形成装置
２  画像処理装置
３  入力部
４  領域分割部
５  補正部
６  解像度変換部
７  色変換部
８  ハーフトーン部
９  プリンタ
１０  色変換部
１１  クラスタリング部
１２  ランレングス算出部
１３  文字領域推定部
１４  領域判定部
【図１】
2005057496.tif 000008
【図２】
2005057496.tif 000009
【図４】
2005057496.tif 000010
【図５】
2005057496.tif 000011
【図７】
2005057496.tif 000012
【図８】
2005057496.tif 000013
【図９】
2005057496.tif 000014
【図１２】
2005057496.tif 000015
【図１３】
2005057496.tif 000016
【図１４】
2005057496.tif 000017
【図１６】
2005057496.tif 000018
【図１８】
2005057496.tif 000019
【図２０】
2005057496.tif 000020
【図２１】
2005057496.tif 000021
【図２２】
2005057496.tif 000022
【図２３】
2005057496.tif 000023
【図２４】
2005057496.tif 000024
【図２５】
2005057496.tif 000025
【図２６】
2005057496.tif 000026
【図２７】
2005057496.tif 000027
【図２８】
2005057496.tif 000028
【図２９】
2005057496.tif 000029
【図３０】
2005057496.tif 000030
【図３】
2005057496.tif 000031
【図６】
2005057496.tif 000032
【図１０】
2005057496.tif 000033
【図１１】
2005057496.tif 000034
【図１５】
2005057496.tif 000035
【図１７】
2005057496.tif 000036
【図１９】
2005057496.tif 000037