図1は、本発明の実施の一形態を含むシステムの一例を示すブロック図である。図中、1は画像入力部、2はメモリ部、3は画像出力部、4は制御部、5は画質改善処理部、51は初期拡大処理部、52は前処理部、53はドメインブロック抽出部、54はドメインブロック分類部、55はレンジブロック抽出部、56は縮小レンジブロック作成部、57は類似度判定部、58は改良ドメインブロック作成部、59はエッジ強調処理部、60は平均値演算部、61は反復処理部である。なお、図1に示した画質改善処理部5の各ブロックや制御部4などはコンピュータ上の処理プログラムモジュールとして存在してもよいし、一部または全部が専用のハードウエアで構成されていてもよい。
画像入力部1は、図1に示したシステムの外部からデジタル化された2値画像データを入力し、メモリ部2に転送する。メモリ部2は、前記画像入力部1から入力された画像データや、画質改善後の画像データ、さらに画質改善処理に用いられる各種の途中の演算結果や処理パラメータなどを保持する。画質改善処理部5は、前記メモリ部2に保持された処理対象の画像に対して画質改善処理を施す。画像出力部3は、画質改善処理部5により画質が改善された画像データなどを、図1に示したシステムの外部に出力する。制御部4は、各部の処理を制御する。
画質改善処理部5は、初期拡大処理部51、前処理部52、ドメインブロック抽出部53、ドメインブロック分類部54、レンジブロック抽出部55、縮小レンジブロック作成部56、類似度判定部57、改良ドメインブロック作成部58、エッジ強調処理部59、平均値演算部60、反復処理部61などを含んで構成されている。画質改善処理部5から出力される改良ドメインブロック画像はメモリ部2に書き込まれるが、このとき、同じ画素について先に書き込まれている値に対して新たな改良ドメインブロック画像の画素値を加算して値を更新してゆく。以下、各部の概要を説明する。なお、詳細については後述する。
初期拡大処理部51は、入力される2値の原画像を例えば最近傍法でn倍に拡大し、さらにここでは単純多値化して多値のn倍原画像を得る。なお、拡大方法は任意であり、最近傍法に限られるものではない。また、以下の説明では簡単のため2倍に拡大するものとし、n倍原画像は2倍原画像として説明するが、n倍において同様である。さらに、多値化の方法も任意であるが、ここでは上述のように2値の0,1を多値の最小値、最大値に対応づける単純多値化の方法を採用したものとして説明する。なお、多値の最小値、最大値としては、以下の説明で必要であれば0,255として説明するが、これに限られるものではない。
前処理部52は、初期拡大処理部51で得た2倍原画像の所定部位に対してドット補正を行う。具体的には、原画像の2×2市松パターンに対応する2倍原画像の市松部分に小ドットを置くことにより、線の接続方向を補正する。更に、後段の反復処理部61で画質が充分改善されるまで処理を反復することを行うが、その反復収束の速度を速めるために、原画像のエッジ部分に対応する2倍原画像のエッジ部分の画素値を補正する効果を持たせることもできる。
ドメインブロック抽出部53は、2倍原画像から第1のブロック単位D1の大きさでドメインブロック画像を抽出する。なお、ブロック単位とは、ブロックサイズによって定められる任意のブロック全体の総称を意味する。抽出するドメインブロック画像は、それぞれのドメインブロック画像が重ならないように原画像を分割するほか、原画像上で共通部分を有するようにドメインブロック画像を抽出することもできる。また、原画像がカラー画像である場合には、原画像の各色成分について、相対的に同一の位置からレンジブロック画像を抽出する。
ドメインブロック分類部54は、必要に応じてドメインブロック抽出部53で抽出したドメインブロック画像の種類を分類する。分類は、例えばドメインブロック画像の標準偏差および凹凸度などに基づいて行うことができる。分類する種類としては、例えば平坦部、ステップエッジ部、細線部、テクスチュア部などに分類することができる。更に分類した結果に応じて、細線部の場合には、第1のブロック単位D1以下の第3のブロック単位D2、テクスチュア部であれば第3のブロック単位D2以下の第5のブロック単位D3で、それぞれドメインブロック画像から複数の分割ドメインブロック画像を得る。以後の処理では、この分割ドメインブロック画像をドメインブロック画像として扱う。
なお、ジャギーなどの画質劣化は主にステップエッジ部、細線部、テクスチュア部に発生している。従って、これらに対して画質改善のための処理を行えば全体として画質の向上を図ることが可能である。そのため、例えば平坦部などでは、以下の処理を行わずに2倍原画像のドメインブロック画像をそのまま改良ドメインブロック画像として出力するように制御し、処理時間を短縮することが可能である。また、第3のブロック単位D2と第5のブロック単位D3は第1のブロック単位D1と同じ大きさにすることもでき、その場合には、効果としてはブロックを分類するだけで、分割ドメインブロックの作成を行わないようにすることもできる。
なお、上述のような分類は一例であり、さらに細分してもよいし、処理対象を絞るのであればもっと少なく分類してもよい。また、このようなドメインブロック画像の分類による処理の制御自体を行わなければ、このドメインブロック分類部54を設けずに構成することも可能である。
レンジブロック抽出部55は、ドメインブロック分類部54で抽出したドメインブロック画像について、第1のブロック単位D1よりも大きな第2のブロック単位R1で2倍原画像からレンジブロック画像を抽出する。また、ドメインブロック分類部54で第3のブロック単位D2または第5のブロック単位D3でドメインブロック画像(分割ドメインブロック画像)を抽出した場合には、それぞれ第3のブロック単位D2よりも大きな第4のブロック単位R2、第5のブロック単位D3よりも大きな第6のブロック単位R3で、それぞれ2倍原画像からレンジブロック画像を抽出する。ここで、抽出するレンジブロック画像は、ドメインブロック画像に対してはドメインブロック画像を含むように抽出し、分割ドメインブロックに対しては分割ドメインブロック画像を含むように抽出する。このとき、1つのドメインブロック画像または分割ドメインブロック画像に対して複数のレンジブロック画像を抽出してもよい。
縮小レンジブロック作成部56は、レンジブロック抽出部55で抽出した第2のブロック単位R1、第4のブロック単位R2、第6のブロック単位R3のレンジブロック画像を、それぞれ第1のブロック単位D1、第3のブロック単位D2、第5のブロック単位D3の大きさに縮小し、縮小レンジブロック画像を作成する。縮小方法は任意である。なお、レンジブロック抽出部55で複数のレンジブロック画像を抽出している場合には、それぞれのレンジブロック画像について縮小を行う。
類似度判定部57は、縮小レンジブロック作成部56により縮小した縮小レンジブロック画像と、ドメインブロック抽出部53で抽出したドメインブロック画像(ドメインブロック分類部54で抽出した分割ドメインブロック画像を含む)との類似度を判定し、類似度に関する情報を改良ドメインブロック作成部58に渡す。類似度の判定は任意であるが、例えば、縮小レンジブロック画像の画素値zを一次式az+bによりドメインブロック画像の画素値に最小二乗近似した際の最小二乗誤差を用いることができる。この時の最小二乗係数a,bを改良ドメインブロック作成部58に渡すように構成することができる。なお、レンジブロック画像が複数抽出されている場合、ドメインブロック画像と最も類似度が高い縮小レンジブロック画像を選択する。上述のような最小二乗誤差を用いる場合、その最小二乗誤差が最小の縮小レンジブロック画像を最類似縮小レンジブロック画像として選択すればよい。また、レンジブロック画像が一つだけ抽出されている場合、類似度の判定を行わず、最小2乗係数a,bを改良ドメインブロック作成部58に直接渡すように構成することもできる。
改良ドメインブロック作成部58は、縮小レンジブロック作成部56で作成された縮小レンジブロック画像に対して、類似度判定部57で得られた類似度に関する情報を元に画素値の変換を行い、画素値変換の結果を改良ドメインブロック画像として出力する。例えば類似度判定部57で最小二乗誤差を計算している場合、そのとき得られた最小二乗係数a、bを用いて縮小レンジブロック画像(最類似縮小レンジブロック画像)の画素値を一次式az+bで変換することにより改良ドメインブロック画像を作成する。なお、類似度の判定が行われていない場合には、直接、縮小レンジブロック画像の画素値zを一次式az+bによりドメインブロック画像の画素値に最小二乗近似しても良いし、最小レンジブロック画像そのものを改良ドメインブロック画像としても良い。
エッジ強調処理部59は、ドメインブロック分類部52において平坦部以外に分類されたドメインブロック画像に対応する改良ドメインブロック画像に対して、改良ドメインブロック画像内の画素値の最大値と最小値の関係からエッジ強調処理を行う。具体的には、改良ドメインブロック画像内の最大画素値と最小画素値の平均値を取り、エッジ強調の強度に従い、平均値よりも大きい画素値を平均値との距離に応じてより大きく変換し、平均値よりも小さい画素値を平均値との距離に応じてより小さく変換することができる。このときのエッジ強調の強度は、ドメインブロック画像の画素値の標準偏差値が小さい場合には強く、標準偏差値が大きい場合には弱くなるように設定することもできる。なお、ドメインブロック分類部54を設けない構成の場合には、ドメインブロック画像の画素値の標準偏差値が所定値以上のときだけエッジ強調処理を行うようにすれば良い。
平均値演算部60は、ドメインブロック抽出部53でドメインブロック画像を抽出し、ドメインブロック分類部54で分割ドメインブロック画像を抽出した際に、処理後の改良ドメインブロック画像が重複する画素について平均値を演算する。この演算は、改良ドメインブロック画像の作成の際に、改良ドメインブロック画像の各画素値をメモリに加算すると同時に、メモリ2に別に用意した画素値の重複量記憶用メモリに、1回の重複につき1を加算してゆき、全てのドメインブロックについて処理が終わった後に、この重複量記憶メモリの値を参照して、加算された画素値を除算するようにして行うことができる。あるいは、原画像における位置からあらかじめ重複量がわかる場合には、改良ドメインブロック画像の画素値を重複量で除算した後にメモリ2中の画素値と加算して書き戻すように構成してもよい。
反復処理部61は、平均値演算部60が終了して得られた画質改善画像を2倍原画像として、再び前処理部52またはドメインブロック抽出部53以降の処理を反復させる。なお、反復は所定回数だけ行ったり、得られた画質改善画像から特徴量を抽出して自動的に終了判定を行ってもよい。
なお、本発明の画質改善処理部5は、2値文字線画画像を対象としている。そのため、処理に入る前に、入力された画像が2値文字線画画像であるか否かを判定する処理部を設けても良いし、入力された画像が2値文字線画画像でない場合には処理を終了するようにしても良い。
以下、本発明の主要部である画質改善処理部5について、図を参照しながらいくつかの例について詳細に説明してゆく。なお、各例において、入力される原画像は2値文字線画画像であるとする。
まず第1の例について説明する。この第1の例では、第1のブロック単位D1、第3のブロック単位D2、第5のブロック単位D3を等しいものとし、また1つのドメインブロック画像に対して複数のレンジブロック画像を抽出して最適な縮小レンジブロック画像を選択する例を示している。
図2は、本発明の実施の一形態における画質改善処理部5の動作の一例を示すフローチャート、図3は、同じく前処理部52の処理終了までの原画像および2倍原画像の具体例の説明図、図4は、同じくドメインブロック抽出部53以降の処理の一例を説明するための模式図である。動作を開始する前の準備として、画質改善処理の対象となる原画像の縦横それぞれ2倍のサイズで8ビット値の画像を記憶するためのメモリ領域をメモリ部2中に確保し、0で初期化しておく。これは、画質改善処理部5から出力される改良ドメインブロック画像(エッジ強調処理を行ったものを含む)を加算して書き込んでゆくために行うものである。
S101において、初期拡大処理部51により原画像を2倍サイズの画像に例えば最近傍法などによって拡大し、さらに単純多値化して2倍原画像を得る。つまり、原画像を最近傍法によって2倍に拡大した後に、0は0に、1は255に変換して2倍原画像を得る。この初期拡大処理部51の処理によって、例えば図3(A)に示した原画像は、図3(B)に示すようになる。なお、図3(B)においては図3(A)と同様に黒画素と白画素とで示しているが、画素値としては多値化しているため0,255に変換されている。
S102においては、前処理部52によって2倍原画像を修正する。図5は、前処理部の動作の一例を示すフローチャート、図6は、前処理部によって修正されるパターン具体例の説明図である。ここでは原画像の2×2市松パターンに対して修正を行う例を示している。S121において原画像から2×2画素ブロックを抽出し、その2×2画素ブロックが市松パターであるか否かをS122で判定する。市松パターンでなければ当該2×2画素パターンに対応する2倍原画像については修正を行わない。例えば図6(A)の中央の2×2画素パターンのように市松パターンであった場合には、S123において、2×2画素パターンを含む4×4画素パターンのうちの白画素数および黒画素数をカウントする。
そしてS124において、カウントした白画素数および黒画素数を判定し、少ない方の色の画素がつながるように、2倍原画像の対応部分に小ドットを1ないし複数配置する。この例では、4×4(=16)画素のうち黒画素が6画素以下か、あるいは白画素が6画素以下か、それ以外かによって場合分けを行っている。黒画素が6画素以下の場合には黒線が存在しているものと判定し、S125において、2倍原画像の黒の段差部に黒ドットを配置する。図6に示した例がこの場合に当たり、図6(A)に示した原画像を2倍に拡大した2倍原画像は図6(B)に示すようになる。図6(A)の場合には、黒画素数が6画素、白画素数が10画素となるので、黒画素が6画素以下の条件を満たし、図6(C)に示すように段差部に2つの黒ドットを配置している。これによって、黒線が斜めにつながった画像に修正することができる。
同様に白画素が6画素以下の場合には白線が存在しているものと判断し、S126において、2倍原画像の白の段差部に2つの白ドットを配置する。これ以外の場合には誤判定の可能性があるため、ここでは修正の処理を行っていない。なお、判断条件はこの例に限られるものではなく、画素数を調整するほか、黒画素や白画素の配置についても考慮するように構成することができる。また、配置するドットの数や位置についても、適宜決めておけばよい。
S127においてすべての2×2画素ブロックについて処理を行ったか否かを判断し、未処理の2×2画素ブロックが残っている場合にはS121へ戻り、次の2×2画素ブロックの処理を行う。すべての2×2画素ブロックについて処理を終えたら、前処理部52における2×2市松パターンに対する修正処理を終了する。なお、上述のような市松パターンのほかにも、あらかじめ修正を施した方が良好な結果を得られる種々のパターンについて、同様の修正処理を施すことができる。
上述のような前処理部52の処理によって、図3(B)に示した2倍原画像は図3(C)に示したように補正される。斜めの黒線が連続するとともに、黒線の間の白線部分も斜めに抜けている。このような補正の処理は、後続の画質改善処理における不具合の発生を防ぐために行われるものである。後続の画質改善処理では、局所領域の性質をその局所領域の近傍でも有しているという局所自己相似性を利用した局所コラージュ処理を行っているが、上述の市松パターンは、局所自己相似性が崩れる部分であり、この部分を補正しておくことによって、良好な局所コラージュ処理を行うことが可能となる。
図2に戻り、S103においては、ドメインブロック抽出部53により原画像の中からドメインブロック画像を抽出する。図7は、ドメインブロック抽出部53で抽出されるドメインブロック画像の一例の説明図である。ここでは第1のブロック単位D1の大きさを3×3画素とし、3×3画素の大きさのドメインブロック画像を抽出している。なお、図4(A)においても、3×3画素のドメインブロック画像を太線で示している。ここでは、原画像の端から1画素ずつシフトさせた3×3画素の大きさのドメインブロック画像を順次抽出してゆく。そして、抽出したドメインブロック画像を処理対象とし、以下の処理によって画質を改善し、作成される改良ドメインブロック画像をメモリ部2内のドメインブロック画像に対応する位置に加算して書き込んでゆく。以下の説明では、1つのドメインブロック画像についての処理を説明してゆく。
S104では、ドメインブロック分類部54により、S103で抽出したドメインブロック画像の種類を分類する。図8は、ドメインブロック分類部54におけるドメインブロック画像の分類処理の一例を示すフローチャートである。まずS131において、ドメインブロック画像内の画素値{dij|i,j=1,2,3}について、画素平均値Dv=Σdij/9並びに画素標準偏差VDv=Σ(dij−Dv)2 を求める。S132において、S131で得られた画素値標準偏差VDvが、予め定めたエッジ部判定用閾値Sv1に対して、Sv1<VDvを満たしているか否かを判定し、満たしていた場合にはS133でドメインブロック画像をエッジ部に分類する。満たしていない場合には、S134においてドメインブロック画像を平坦部に分類する。なお、この例ではドメインブロック画像の種類をエッジ部と平坦部にしか分類していないが、後述の例のようにさらに多くの種類に分類してもよい。また、判定用閾値Sv1は任意であり、固定値でも、可変値でもよい。なお、ここでの標準偏差VDxの値は、正確には変動と呼ばれる値であり、真の標準偏差値から定数項と平方根を除いたものを使用している。
S104においてドメインブロック画像の分類結果を判定し、分類結果がエッジ部であったドメインブロック画像については、以下の画質改善処理を行う。また、分類結果がエッジ部以外、すなわちこの例では平坦部であると判定されたドメインブロック画像については、画質改善処理を行わずにS111に進み、ドメインブロック画像をそのまま改良ドメインブロック画像として、メモリ部2の画質改善後の画像を記憶するためのメモリ領域へ加算書き込みを行う。
S105では、S104で分類された結果に応じてドメインブロック画像を更に小さなブロックに分割し、分割ドメインブロック画像を抽出する。ただし、この動作例では、この時点でドメインブロック画像はエッジ部のみに分類されており、ここでは分割ドメインブロックの抽出を行わない。あるいは、ドメインブロック画像と同じ大きさの分割ドメインブロック画像を抽出すると考えてもよい。
S106では、レンジブロック抽出部55により原画像からドメインブロック画像を含むレンジブロック画像を抽出する。ここでは一例として、第1のブロック単位D1よりも大きい第2のブロック単位R1として4×4画素とする。図9は、レンジブロック抽出部53で抽出するレンジブロック画像の一例の説明図である。レンジブロック画像の大きさを4×4画素とし、5×5画素の範囲をレンジブロック画像の抽出範囲とした場合、3×3画素の大きさのドメインブロック画像を含むレンジブロック画像としては、図9(A)〜(D)に示すような4つのレンジブロック画像の抽出が可能である。なお、図4(A)では図9(B)に示した例を記載している。
S107では、S106で抽出したすべてのレンジブロック画像を、縮小レンジブロック作成部56によりドメインブロック画像と同じ大きさにそれぞれ縮小して縮小レンジブロック画像を得る。上述のように、ここではドメインブロック画像のサイズを3×3画素としているので、4×4画素のレンジブロック画像を3×3画素の縮小レンジブロック画像に縮小することになる。縮小方法としては任意であるが、ここでは一例として投影法を用いることとする。なお、特に投影法(線形縮小)を用いた場合には、隣り合う画素値を面積比に応じて加重加算して縮小するため、本発明におけるアンチエイリアス処理(ジャギーの補正)を特に効果的に行うことができる。
図10は、縮小レンジブロック作成部56における投影法による縮小処理の一例の説明図である。ここでの投影法による縮小処理は、例えば図10(A)に一部示すように、4×4画素の画像を3×3画素の画像に投影した際の領域比率に基づいて、画素値を加重加算することによって行う。図10(B)に示す4×4サイズの画素値を{Pij|i,j=1,2,3,4}、図10(C)に示す縮小後の3×3サイズの画素値を{Qij|i,j=1,2,3}とした場合に、各Qijは、
Q11=(9×P11+3×P21+3×P12+1×P22)/16
Q21=(6×P21+6×P31+2×P22+2×P32)/16
Q31=(3×P31+3×P42+9×P41+1×P32)/16
Q12=(6×P12+6×P13+2×P22+2×P23)/16
Q22=(4×P22+4×P32+4×P23+4×P33)/16
Q32=(6×P42+6×P43+2×P32+2×P33)/16
Q13=(9×P14+3×P13+3×P24+1×P23)/16
Q23≡(2×P23+2×P33+6×P24+6×P34)/16
Q33=(3×P43+3×P34+9×P44+1×P33)/16
で与えられる。
一般にドメインブロック画像と、そのドメインブロック画像を含むレンジブロック画像とは類似していることが予想される(局所自己相似性)。このような仮定が成り立つ場合には、エッジ部に現出するジャギーは加重加算によってある程度軽減される。しかし、これはドメインブロック画像とレンジブロック画像とが類似していることが前提である。そのため、次のステップでドメインブロック画像に類似しているレンジブロック画像を選択する。
図2に戻り、S108では、類似度判定部57において、S107でそれぞれのレンジブロック画像から作成した縮小レンジブロック画像とドメインブロック画像との類似度を判断する。ここでは、縮小レンジブロック画像に対して画素値変換を行うことにより、ドメインブロック画像と最も類似した画素値及びパターンを持つ縮小レンジブロック画像の選出と、そのとき得られる類似度に関する情報の取得を行う。まず、全ての縮小レンジブロック画像の画素値{rijk |i,j=1,2,3,k=1,…,4}について、それぞれ画素平均値Rvk =Σrijk /9、並びに、画素標準偏差VRvk =Σ(rijk −Rvk )2 を求める。次に、縮小レンジブロック画像の画素値zをそれぞれ一次変換az+bで対応するドメインブロック画像の画素値に最小二乗近似した際の変換係数ak とbk 、並びに変換誤差Ek =Σ(dij−ak ×rijk −bk )2 を求める。最小二乗法において、ak 、bk 、Ek は以下の計算式で直接求めることができる。なお、Dv、VDvは、ドメインブロック分類部54で計算したものを使うことができる。
ak =(Σ(rijk −Rvk )×(dij−Dv))/VRvk
bk =Dv−ak ×Rvk
Ek =VDv−ak ×ak ×VRvk
ここで、E=min{Ek |k∈G}とおき、E=Ek なるkに対して、a=ak 、b=bk とおく。このkが指し示す縮小レンジブロック画像が最もドメインブロック画像と類似したものとなる。なお、実際にはbk はEk の決定に必要ないので、Ek が最小となるkが求まり、最終的にak が決まった後にbk を計算すれば良い。
S109では、改良ドメインブロック作成部58により、類似度判定部57において選択された3×3サイズの縮小レンジブロック画像の全画素zに対して、類似度判定部57において求められた変換係数a、bによって画素値変換az+bを施す。この結果を図4(D)に示すように3×3画素のドメインブロック画像の改良ドメインブロック画像とする。
このような処理において、得られた改良ドメインブロック画像はレンジブロック画像から作成されたものである。しかし、上述のようにドメインブロック画像とレンジブロック画像が類似していれば、縮小レンジブロック画像は縮小によってドメインブロック画像のジャギーがある程度軽減された画像である。さらに、改良ドメインブロック作成部58で作成した改良ドメインブロック画像では、画素値変換によってドメインブロック画像に類似させた(最小二乗近似させた)画像となっている。従って、改良ドメインブロック画像は、ドメインブロック画像について画質を改良した画像であると言うことができる。
さらにエッジ部の画質を向上させるため、エッジ強調処理部59によるエッジ強調処理を施すことができる。S110において、エッジ強調処理部59により改良ドメインブロック画像に対してエッジ強調処理を行う。ここでは、改良ドメインブロック画像内の画素値の中間値avに対して、avよりも大きな画素値はより大きく、avよりも小さい画素値はより小さくすることによってエッジ強調処理を行う。
図11は、エッジ強調処理部59におけるエッジ強調処理の一例の説明図である。図11(A)に示す3×3画素の改良ドメインブロック画像pij(i,j=1,2,3)に対して、画素最小値minp及び画素最大値maxpを
minp=min{pij}
maxp=max{pij}
とおき、更に
av=(maxp+minp)/2
l=(maxp−minp)/2
とおく。
このとき、以下の演算によって図11(C)に示すエッジ強調画素値qij(i,j=1,2,3)が得られる。
qij=av+f((pij−av)/l)・l
ここで、エッジ強調関数fとしては、図11(B)に示したように原点(0,0)を中心にS字型をした関数を用いる。例えば、
f(x)=x(1−x2 )・α+x (α=0.0〜1.0)
などの関数を使用することができる。変数αはエッジ強調の強度を規定するパラメータであり、この場合は0.0〜1.0の値を取ることができる。なお、α>0.5の場合には、関数が単調増加でなくなるため、オーバーシュート/アンダーシュートが発生しやすくなるという欠点があるものの、エッジ強調の効果を大きくすることができる。α=0.0とした場合には、実質上エッジ強調がなされず、α値が大きいほど強いエッジ強調効果が与えられる。α値は固定にしておいても良いし、エッジ部の強度に対応する画素値標準偏差VDv値の逆数に比例するように可変にしても良い。このようにすると、ボケた部分(すなわち標準偏差が小さい部分)には強めのエッジ強調が掛かり、もともとシャープな部分(すなわち標準偏差が大きい部分)には弱めにエッジ強調が掛かるように調整することができる。もちろん、f(x)として、この他の関数を使用することもでき、エッジ強調のパラメータは各関数固有に定めることができる。例えばエッジ強調を行うか否かを切り替えるような構成も可能である。
S111では、以上のようにしてエッジ強調処理を施した改良ドメインブロック画像を、メモリ部2中の画質改善画像用領域に対して加算書き込みを行う(図4(F))。エッジ強調処理を行わない場合には、改良ドメインブロック作成部58で作成された改良ドメインブロック画像自体を、また分類された種別が平坦部であった場合にはドメインブロック抽出部53で抽出したドメインブロック画像自体を、メモリ部2中の画質改善用領域に加算書き込みを行う。加算書き込みは、書き込む領域の画素値をメモリ部2から読み出し、読み出した画素値と得られた改良ドメインブロック画像等の画素値とを加算し、改めて同じ位置に書き込むことによって行われる。
S112において、ドメインブロック抽出部53で抽出すべき全てのドメインブロック画像について処理を行ったか否かを判定し、未処理のドメインブロック画像が存在する場合にはS103へ戻り、処理を繰り返す。
すべてのドメインブロック画像について処理を終えたら、S113で平均値演算部60においてメモリ部2中の画質改善用領域に書き込まれた画像について平均値を算出する処理を行う。図12は、平均値演算部60における平均値演算処理の一例の説明図である。上述のようなドメインブロック画像に対する処理を行うと、原画像におけるドメインブロック画像の重複量(加算回数)は図12に示すような値となる。従って、平均値演算部60では、メモリ部2の画質改善画像用領域に格納されている値を、この重複量の値で除算した結果得られる画像を、画質改善画像メモリに再度書き込み、画素値を更新する。この際に、画素値が0以下になっている場合には、その画素値を0に置き換え、最大値(例えば255)を越える場合には、最大値(例えば255)に置き換える。
上述のような処理を行うことによってアンチエイリアスされた2倍拡大画像が出力されるが、このような処理を複数回繰り返すことによって、よりアンチエイリアスの効果を高めることができる。S114において、反復処理部61は上述のような工程を所定回数反復したか否かを判断する。所定回数反復していない場合には、S115において、出力された2倍拡大画像を2倍原画像に置き換えてS103へ戻り、処理を繰り返す。所定回数反復した場合には、画像を画像出力部3へ出力し、画質改善処理を終了する。ここでは一例として反復回数として5回を指定し、5回反復したら終了とする。
なお、平均値演算部60による平均化処理は、重複計算が全て終了した画素に対しては順次行って出力しても良く、そのようにすることで省メモリ化できる。また、2値画像の場合、平坦部(真白または真黒)が多く、ドメインブロック分類部54で平坦部に分類され、画質改善処理を施さずにドメインブロック抽出部53で抽出したドメインブロック画像をそのまま改良ドメインブロック画像とする場合が多く発生する。このような変更のないドメインブロック画像をS111でメモリ2中の値に加算せず、平坦部は全く処理を行わずに、代わりにエッジ部をS111でメモリ2の値と加算する際に、メモリ2中に予め用意した重複量記憶領域に重複量を1つずつ追加してゆくこともできる。この場合、S113で平均値計算を行う際に、この重複量記憶領域を参照して重複量で除算すれば平均値計算を行うことができる。つまり、実際に画質改善処理を行った新しい画素のみをメモリ2中の値と加算すると同時に、その各画素の重複処理量も加算し、最後に各画素をその重複量で除算する。また重複量記憶領域中の重複量が0の部分は前処理済みの2倍原画像の値をそのまま出力すれば良い。このように部分的に加算を行う方法の場合、すべての画素について加算を行う上述の例の結果とは若干画素値が変わる部分が生じるが、拡大画質に大きな差は現れず、平坦部が多いほど高速化の効果を得ることができる。
また、上述の画質改善処理は、エッジ部に対して局所コラージュ処理を行って画質を改善している。つまり、3×3画素のドメインブロック画像を含む4×4画素のレンジブロック画像を選択し、その4×4画素を3×3画素に縮小して輝度合わせを行い、エッジ強調後にドメインブロック画像に置き換えている。4×4画素を3×3画素に縮小すると、上述のようにジャギーの目立つエッジ部は平均化されて多少のボケが加わってアンチエイリアスされ、更にエッジ強調処理によって、シャープ化される。また、2値画像の場合、1回の処理でジャギーが取れきれない部分がある。そのため、上述のように反復処理部61により反復処理を行って2倍画像の画質を徐々に改善している。もちろん、1回の処理のみで終了してもよい。
さらに、ドメインブロック画像、レンジブロック画像の形状は共に正方形としたが、もちろんどちらか片方、あるいは両方を長方形にしても良い。例えば、ドメインブロック画像のサイズを2×3画素とし、これに対してレンジブロック画像のサイズを3×4画素としても良いし、ドメインブロック画像のサイズを2×3画素とし、これに対するレンジブロック画像のサイズを4×4画素としても良い。以下にレンジブロック画像のサイズを変更した例として、第2の例を示す。
第2の例について説明する。上述の第1の例では、レンジブロック画像のサイズを4×4画素としたが、この第2の例では5×5画素とした例について説明してゆく。ドメインブロック画像のサイズは第1の例と同じく3×3画素とする。さらに、この第2の例では、レンジブロック画像の探索処理に従って類似度判定処理を行わず、ドメインブロック画像に対して常に同じ位置からレンジブロック画像を1つ選択するものとして説明する。
この第2の例において、上述の第1の例と異なるのは、レンジブロック抽出部55、縮小レンジブロック作成部56、類似度判定部57の処理、すなわち図2に示した処理のうちのS106〜S108の処理である。以下、その部分について具体的に説明する。
ドメインブロック分類部54によってドメインブロック画像を分類した結果、ドメインブロック画像がエッジ部に分類された場合、レンジブロック抽出部55により原画像からレンジブロック画像を抽出する。図13は、レンジブロック抽出部55におけるレンジブロック画像抽出処理の別の例の説明図である。この第2の例では、図13に示すようにドメインブロック画像を中央位置に含むように5×5ブロックを選択する。この場合、レンジブロック画像は1つのみが抽出される。もちろん、レンジブロック画像の抽出範囲を広げれば複数のレンジブロック画像を検索することができるが、上述のようにこの例では図13に示すように1つのレンジブロック画像を固定的に抽出する。レンジブロック画像の抽出に際して、画像の緑の部分では、3×3画素のドメインブロック画像を中央に含むように5×5画素のレンジブロック画像を取れない。このような場合には、例えば1画素分シフトした位置からレンジブロック画像を選択すれば良い。
なお、ドメインブロック画像が平坦部に分類された場合はレンジブロック画像の抽出を行わず、ドメインブロック画像自身を改良ドメインブロック画像として選択し、例えば図2におけるS111へ移行し、メモリ部2への加算書き込みを行う。
次に、抽出した5×5画素サイズのレンジブロック画像を、縮小レンジブロック作成部56により3×3サイズの縮小レンジブロックに縮小する。ここでの縮小方法も投影法を用いる。図14は、縮小レンジブロック作成部56における投影法による縮小処理の別の例の説明図である。投影法による縮小処理は、例えば図14(A)に一部示したように、5×5画素サイズの画像を3×3画素サイズの画像に投影した際の領域比率に基づいて画素値を加重加算して行う。図14(B)に示すように5×5画素サイズのレンジブロック画像の画素値が{Pij|i,j=1,2,3,4,5}、図14(C)に示すように縮小後の3×3画素サイズの縮小レンジブロック画像の画素値を{Qij|i,j=1,2,3}とした場合に、各Qijは、
Q11=(9×P11+6×P21+6×P12+4×P22)/25
Q21=(3×P21+3×P41+2×P22+2×P42+6×P32+9×P31)/25
Q31=(6×P31+6×P42+9×P41+4×P32)/25
Q12=(3×P12+3×P14+2×P22+2×P23+6×P23+9×P13)/25
Q22=(1×P22+1×P42+1×P24+1×P44+3×P32+3×P23+3×P43+3×P44+9×P33)/25
Q32=(3×P52+3×P54+2×P42+2×P44+6×P43+9×P53)/25
Q13=(9×P15+6×P14+6×P25+4×P24)/25
Q23=(3×P25+3×P45+2×P24+2×P44+6×P34+9×P35)/25
Q33=(6×P54+6×P45+9×P55+4×P44)/25
で与えられる。
次に類似度判定部57で類似度の判定処理を行うが、この第2の例ではレンジブロック画像を一つだけしか選択していないため、最類似縮小レンジブロック画像を選択するという処理は、実用上は必要ない。つまり、縮小レンジブロック作成部56で作成した縮小レンジブロック画像自身を最類似縮小レンジブロック画像として選択すれば良い。まず、全ての縮小レンジブロック画像の画素値{rij|i,j=1,2,3}について、それぞれ画素平均値Rv=Σrij/9及び画素標準偏差VRv=Σ(rij−Rv)2 を求める。次に、縮小レンジブロック画素値をそれぞれ一次変換az+bで対応するドメインブロック画像画素値に最小二乗近似した際の変換係数a、bを以下の式から求める。
a=(Σ(rij−Rv)×(dij−Dv))/VRv
b=Dv−a×Rv
この第2の例では、最類似縮小レンジブロック画像を選択する処理が必要ないので、上述の第1の例で行っている最小二乗誤差の計算は不要である。
以降の改良ドメインブロック作成部58、エッジ強調処理部59、平均値演算部60、反復処理部61の処理については上述の第1の例と同様であるので、ここでは説明を省略する。なお、この第2の例においても、平均値計算部60の除算量はメモリ2を使用して記憶しておいても良い。つまり、ドメインブロック画像がエッジ部と分類されて処理されたときに限って新しい画素値を加算すると同時に、予め用意した重複量記憶領域に1を加算しておき、最後の平均値計算部60での除算の際にこの重複領域奥領域を参照して除算しても良い。このようにすることで、平坦部に関してS111で行うメモリ2への加算書き込みを省略して高速化することができる。
この第2の例では、上述の第1の例で4×4画素としていたレンジブロック画像のサイズを5×5画素に変更した例を示した。5×5画素から3×3画素に縮小した場合、4×4から3×3に縮小するよりもアンチエイリアス効果が高い。従って、この第2の例では第1の例に比べて、エッジ部の改善効果が高く、良好な処理画像を得ることができる。加えて、レンジブロック画像を探索せずに、常に3×3ブロックを中央位置に含む5×5ブロックを最類似縮小レンジブロック画像として選択しているため、4箇所の4×4ブロックのうちの1つを選択する場合に比べて、画像全体に渡って均一なコラージュ処理が施され、画質が安定する。特に2値画像の場合には、このことが画質に与える効果が大きく、探索を行わずに5×5ブロックを縮小する方が高画質な場合がある。もちろん探索処理を行わない分だけ高速化することもできる。
ここで、上述の第1の例と第2の例で述べた本発明の効果をまとめる。本発明のようにドメインブロック画像を含むレンジブロック画像を抽出し、縮小して改良ドメインブロック画像として書き込むという局所コラージュ処理の部分は、画像の局所自己相似性の仮定を前提としている。しかし、この局所コラージュ処理は自然画において良好な画質改善が得られるが、2値画像の場合、必ずしも適切な効果が出ない場合がある。この理由としては、2値画像の場合、ジャギーが強く細線が多いために、局所自己相似性をより強く適切に追求する必要があり、通常の局所コラージュ処理では、局所自己相似性の追求が足りていないからであると考えられる。そのため本発明では、この点に関して大きな改善を図っている。
本発明では、原画像に対してあらかじめ初期拡大処理部51による拡大処理を行っている。この初期拡大処理部51による拡大処理を行わず、原画像に対して整数サイズのブロックを使用して局所コラージュ処理を行った場合、上述のように2値画像においては局所自己相似性が不足する部分が生じる。そのため本発明においては初期拡大処理部51による拡大処理を行うことによって、原画像に対してより小さな小数サイズのブロックを使用した局所コラージュ処理を行い、より適切に局所自己相似性を追求することができている。
図15は、第1および第2の例における原画像および2倍画像中のドメインブロック画像およびレンジブロック画像の関係の説明図である。図中、黒画素をハッチングによって示している。上述の具体例では、初期拡大処理部51により原画像を最近傍法で2倍に拡大し、図15(B)に示す2倍原画像から3×3ブロックサイズのドメインブロック画像と4×4または5×5ブロックサイズのレンジブロック画像を抽出した。2倍原画像ではこれらのブロックサイズは整数サイズであるが、対応する原画像(図15(A))においては1.5×1.5ブロックサイズのドメインブロック画像と、2×2または2.5×2.5ブロックサイズのレンジブロック画像となる。
このように原画像上で整数ブロックサイズよりも小さな小数ブロックサイズで処理を行うことによって、特に細線など、大きなブロックでは局所自己相似性が崩れてしまう部分に対しても、小さなブロックを使用することにより局所自己相似性を保って処理を行うことができ、画質を大きく向上させることができる。
なお、原画像に対して小数サイズブロックを適用する代わりに、上述のように初期拡大処理部51により拡大処理を行っているため、アンチエイリアス効果を得ると同時に2倍に拡大された画像を得ることができる。このことは、単にアンチエイリアスと2倍拡大が同時にできるというだけではなく、2値画像にアンチエイリアスを施した際の情報喪失を、画像を拡大することによって抑える効果も併せ持っており、相乗効果によって画質改善の効果が高められている。もちろん、原画像と同じサイズの画像を得たい場合には、処理後に縮小処理を行えばよい。
上述のように、第1,第2の例では、原画像に対して小数サイズブロックで局所コラージュ処理を行ったのと同様の効果があり、細部の情報を忠実に保ったまま拡大することができる。その反面で、小さなブロックを使用しているため1回の処理で得られるアンチエイリアスの効果が減るという欠点がある。そのため、上述の第1,第2の例では、反復処理部61によって局所コラージュ処理を複数回反復する処理を行ってアンチエイリアスの効果を徐々に高めている。このように反復を行うことは画質の点から好ましいが、処理速度が遅くなるという点からは、できるだけ反復を少なくすることが好ましい。そこで、以下の第3,第4の例では、この反復の回数を減らすための方法を詳しく述べてゆく。
第3の例について説明する。以上述べてきた第1、第2の例ではブロックサイズを全て固定して処理を行った。この第3の例では、画像の各部位に応じてブロックサイズを変更して、それぞれ少ない回数の反復で各部に適切にアンチエイリアス効果が得られる処理方法について説明する。なお、この第3の例でも第2の例と同じく、レンジブロック画像の探索処理を行わず、ドメインブロック画像に対して常に同じ位置からレンジブロック画像を1つ選択するものとして説明する。
この第3の例において、上述の第2の例と本質的に異なるのは、ドメインブロック分類部54、レンジブロック抽出部55、縮小レンジブロック作成部56の処理である。すなわち、図2に示した処理のうちのS104〜S106の処理である。以下、その部分について具体的に説明する。
まず、第1のブロック単位D1の大きさを4×4画素とし、ドメインブロック抽出部53で2倍原画像からドメインブロック画像を抽出する。
この第3の例においては上述の第1,第2の例とは異なり、ドメインブロック分類部54において、ドメインブロック画像を平坦部、ステップエッジ部、細線部、孤立点部、先端部、テクスチュア部に分類する。つまり、第1,第2の例ではエッジ部として共通に扱っていた部分を細分し、それぞれ別の部分として分類する。
図16は、ドメインブロック分類部54におけるドメインブロック画像の分類処理の別の例を示すフローチャートである。ここで、S141〜S144におけるエッジ部と平坦部の分類までは、第1,第2の例における図8に示したフローチャートと同じである。S143でエッジ部と分類された場合には、次のS145において、ドメインブロック画像の凹凸量と白画素数、黒画素数を計算する。図17は、凹凸量の計算処理の一例の説明図である。凹凸量の計算としては、例えば図17に示すように、先に抽出した4×4ドメインブロック画像(図17(A)中の太枠線)を、図17(B)に示す原画像上に逆射影する。2倍原画像上における4×4ドメインブロック画像に対応する原画像上の画像は、2×2ブロックサイズの画像である。なお、逆射影した際の位置が小数単位である場合には、小数を切り捨てた位置のブロックを使用すれば良い。
この原画像上の2×2ブロックの周囲の画素、例えば4×4ブロック画像を使用して凹凸量を計算することができる。この4×4ブロック画像のうち、中央の2×2以外の画素(p1 〜p12、p13=p1 、各pi は0か1の値)に対して、
凹凸量=Σi=1 12 |pi −pi+1 |
で凹凸量を計算することができる。
また、原画像上の4×4ブロック画像内の白画素数と黒画素数をそれぞれカウントする。このようにして2倍原画像におけるドメインブロック画像に対応する原画像の画素およびその周囲の画素から、原画像における凹凸量、黒画素数、白画素数を得ることができる。図17に示した例では、凹凸量=4、黒画素数=5、白画素数=9となる。
図16に戻り、S146において、S145で算出した凹凸量の値に応じて処理を分岐する。まず、凹凸量=0の場合には、S150において孤立点に分類する。次に、凹凸量=4の場合には、S151において細線部に分類する。次に、凹凸量>4の場合には、S152においてテクスチュア部に分類する。最後に、凹凸量=2の場合には、S147において黒画素数と白画素数の差に応じて更に分類する。すなわち、黒画素数と白画素数の差が所定以下の場合、S148においてステップエッジ部に分類し、所定以上の場合、S149において先端部に分類する。例えば所定数を4とし、
|黒画素数−白画素数|≦4
のときステップエッジ部と分類することができる。
図18は、ドメインブロック分類部54におけるドメインブロック画像の分類処理の別の例による分類結果の具体例の説明図である。上述の図16で示したフローチャートにより分類した結果をまとめて図18に図示している。なお、図18においては、原画像上での画像を示している。まず図18(A)の例では、中央の2×2ブロックの周囲には黒画素が存在しない。従って凹凸量は0となり、孤立点として分類される。図18(B)の例では、中央の2×2ブロックの周囲の画素から凹凸量を算出すると、4となる。従って、この場合は細線に分類される。図18(C)に示す例では、中央の2×2ブロックの周囲の画素から凹凸量が6と算出される。従ってこの場合はテクスチュア部に分類される。図18(D)および(E)に示す例では、中央の2×2ブロックの周囲の画素から凹凸量はいずれも2と算出されるので、さらに白画素数と黒画素数の差を算出する。図18(D)に示す例では白画素数および黒画素数とも8であるので、差は0となり、差が所定以下と判断されてステップエッジ部に分類される。また図18(E)に示す例では白画素数は13、黒画素数は3であるので、差は10となり、所定以上と判断されて先端部に分類される。図18に示したこれらの例においては、それぞれの分類結果は妥当なものと考えられるであろう。
ドメインブロック画像を分類したら、図2のS104で平坦部か否かを判断し、平坦部以外の場合にはS105へ進む。上述のS105の説明では、分類結果に応じてドメインブロック画像をさらに小さなブロックに分割するとのみ述べ、第1の例ではエッジ部のみに分類されているため実際には分割を行わなかった。この第3の例では、この時点でステップエッジ部、細線部、孤立点部、先端部、テクスチュア部に分類されている。これらの分類に応じて、必要ならさらに小さなブロックへの分割を行う。
図19は、分類結果に従ったドメインブロック画像の分割処理およびレンジブロック画像の抽出の一例の説明図である。ドメインブロック分類部54による分類結果がステップエッジ部であった場合には、図19(A)に示すように、ドメインブロック画像のブロック単位は第1のブロック単位D1(=4)のままとしている。この場合、ドメインブロック画像の分割は行わない。
また、細線部に分類されたドメインブロック画像については、図19(B)に示すように、ブロック単位として第1のブロック単位D1以下の第3のブロック単位D2とする。ここでは第3のブロック単位D2=3としている。この場合、元の4×4ブロックサイズのドメインブロック画像から3×3ブロックサイズの分割ドメインブロック画像を取得する方法は4通り存在する。すなわち図19(B)に示すように左上に寄せた位置のほか、左下、右上、右下にそれぞれ寄せた位置の3×3サイズのブロックを分割ドメインブロック画像として取得することができる。
さらに、先端部、孤立点部、テクスチュア部に分類されたドメインブロック画像については、図19(C)に示すように、ブロック単位として第2のブロック単位D3以下の第5のブロック単位D3とする。ここでは第5のブロック単位D3=2としている。この場合、元の4×4ブロックサイズのドメインブロック画像から2×2ブロックサイズの分割ドメインブロック画像を取得する方法は9通り存在し、それぞれ、分割ドメインブロック画像として取得する。
なお、細線部に分類されたドメインブロック画像から得られた4つの分割ドメインブロック画像、および、先端部、孤立点部、テクスチュア部に分類されたドメインブロック画像から得られた9つの分割ドメインブロック画像は、以降の処理ではドメインブロック抽出部53で抽出した元のドメインブロック画像に代えて新たなドメインブロック画像として扱い、処理を進める。
次に、図2のS106においてレンジブロック抽出部55でレンジブロック画像の抽出処理が行われる。ドメインブロック分類部54で分類された結果、ステップエッジ部の場合には第1のブロック単位D1のドメインブロック画像が1個、細線部は第3のブロック単位D2の分割ドメインブロックが4個、先端部、孤立点部、テクスチュア部は第5のブロック単位D3の分割ドメインブロックが9個、それぞれ抽出されている。そこで、第1のブロック単位D1、第3のブロック単位D2、第5のブロック単位D3に対してそれぞれ第2のブロック単位R1、第4のブロック単位R2、第6のブロック単位R3(R1>D1、R2>D2、R3>D3)のレンジブロック画像を抽出する。
つまり、ステップエッジ部の場合には、第2のブロック単位R1でドメインブロック画像を含むようにレンジブロック画像を抽出する。また、細線部の場合には、4個の分割ドメインブロック画像に対して、第4のブロック単位R2でそれぞれの分割ドメインブロック画像を含むようにレンジブロック画像を抽出し、4個のレンジブロック画像を得る。さらに、先端部、孤立点部、テクスチュア部の場合には、9個の分割ドメインブロック画像に対して、第6のブロック単位R3でそれぞれの分割ドメインブロック画像を含むようにレンジブロック画像を抽出し、9個のレンジブロック画像を得る。第2のブロック単位R1、第4のブロック単位R2、第6のブロック単位R3としては、例えば、
ステップエッジ部:第2のブロック単位R1=6
細線部:第4のブロック単位R2=5
先端部、孤立点部、テクスチュア部:第6のブロック単位R3=4
とすることができる。このようにレンジブロック画像のブロック単位を定めた場合には、上述の第2の例と同様、レンジブロック画像の探索を行わずに、ドメインブロックまたは分割ドメインブロック画像を中央に含むようにレンジブロック画像をそれぞれ1つだけ抽出することができる。そのため、レンジブロック画像の探索は行わない。
それぞれの分類に応じて抽出されるレンジブロック画像の一例を図19に示している。図19(A)はステップエッジ部の場合であり、4×4サイズのドメインブロック画像を含む6×6サイズのレンジブロック画像を抽出する。また、図19(B)は細線部の場合であって、分割ドメインブロック画像としてドメインブロック画像の左上の3×3ブロックについてレンジブロック画像を抽出した例を示している。それぞれの分割ドメインブロック画像について、同様にレンジブロック画像が抽出される。図19(C)は先端部、孤立点部、テクスチュア部の場合であり、分割ドメインブロック画像としてドメインブロック画像の左上の2×2ブロックについてレンジブロック画像を抽出した例を示している。9個のそれぞれの分割ドメインブロック画像について、同様にレンジブロック画像が抽出される。
この第3の例における残りの処理は、本質的には第2の例と同様である。つまり、ドメインブロック抽出部53で抽出されたドメインブロック画像がステップエッジ部に分類された場合には第2のブロック単位R1のレンジブロック画像を第1のブロック単位D1に縮小し、最小二乗近似して改良ドメインブロック画像として採用する。また、細線部に分類された場合には、第3のブロック単位D2の4個の分割ドメインブロックに対して、それぞれ第4のブロック単位R2の4個のレンジブロック画像を第3のブロック単位D2に縮小し、最小二乗近似して、4個の改良ドメインブロック画像として採用する。さらに、先端部、孤立点部、テクスチュア部に分類された場合には、第5のブロック単位D3の9個の分割ドメインブロック画像に対して、それぞれ第6のブロック単位R3の9個のレンジブロック画像を第5のブロック単位D3に縮小し、最小二乗近似して、9個の改良ドメインブロック画像として採用する。これらの結果は、ブロック単位にかかわらず、全てメモリ2中の2倍原画像更新用記憶領域の対応する位置に加算される。なお、各レンジブロック画像の縮小の際には、それぞれブロックサイズに応じて図9や図13に示したのと同様の投影法を使用すると良い。
なお、この第3の例における平均値演算部60は、異なるブロックサイズで改良ドメインブロック画像を重複させて加算しているため、第1,第2の例で行ったように固定的に除算処理を行うことができない、そこで、平均値演算部60での除算処理のために、第1,第2の例の最後の部分で述べたように、除算値を記憶するための記憶領域(重複量記憶領域)を用意し、改良ドメインブロック画像の画素値を加算する際に、重複量記憶領域の同じ位置に1を加算してゆき、処理が終わった後に、この重複量記憶領域の値で画素値を除算するように構成すればよい。
この第3の例の場合、原画像を利用してドメインブロックを分類しているが、2倍原画像から分類することも可能である。但し、反復処理部61によって反復される毎に2倍原画像が更新されるため、反復の度に分類結果が変わる可能性がある。更に反復につれて、2倍原画像の画素値は0〜255の値を取るため、分類方法がより複雑になる場合もある。こうした場合には、例えば、2倍原画像の分類の際にブロックを1/2サイズに縮小し、更に単純2値化(127以下を0、128以上を1)して上述のような分類方法を使用することもできる。
第3の例では、ステップエッジ部には大きいブロックサイズ、細線にはやや小さ目のブロックサイズ、先端部、孤立点部、テクスチュア部には小さいブロックサイズをそれぞれ使用することにより、各部に局所コラージュ処理を適用する際に、より適切な効果を得ることができる。大きなブロックを固定で使用した場合、ステップエッジ部の画質の向上量が大きいものの、細線部、テクスチュア部などではつぶれなどの問題が生じる。一方、小さなブロックサイズを固定して使用した場合、全ての部分に画質向上を行え、かつ、つぶれなどの問題も少ないが、全体に画質向上量が小さくなる。そのため、特にステップエッジ部などの部分で効果が小さくなり、充分な画質向上を得るには多くの反復が必要となる。第3の例ではこれらの点を考慮し、各部分でそれぞれ適切なブロックサイズを選択している。言い換えれば、各部分で画像の局所自己相似性を適切に高めるようにしている。
第3の例では、このような点から第1,第2の例に比べても、同じ反復回数(例えば5回)を使用したときに、より高画質な画像を得る場合が多い。その反面、ドメインブロック画像を分類する処理が複雑となったり、分類がうまく行かずに誤ったブロックサイズが選択されたり、ブロックサイズが切り替わる境界部分で画質が変化するなどの問題も併せ持っている。また、反復回数を同じにした場合に、処理時間も第1,第2の例に比べて増大する傾向がある。そこで、次の第4の例では、第1,第2の例のようにブロックサイズを固定とし、なおかつ第3の例のように、各部に適切な局所コラージュ処理を施すことができる一例を説明する。
第4の例について説明する。第4の例では、第1,第2の例と同様にブロックサイズを固定として処理するが、ドメインブロック画像のサイズを2×2とし、レンジブロックサイズを4×4として処理する。この第4の例では、第2の例と同様にレンジブロック画像の探索処理を行わず、ドメインブロック画像を中心に含む位置から常にレンジブロック画像を1つ選択する。この第4の例が第2の例と本質的に異なるのは、前処理部52、つまり図2に示した処理のうちS102の処理のみである。従って、以下に前処理部52の説明を行う。
これまでの第1ないし第3の例における前処理部52の目的は、後段の局所コラージュ処理の際に、問題が発生する部分を修正することのみであった。つまり、局所自己相似性の崩れやすい市松部分を適切な方向に接続するという処理のみであった。この第4の例では、前処理部52の目的として、これに加えて、後段の局所コラージュ処理の収束を速めるという別の目的を加える。以下に、第4の例の前処理部52の処理方法について具体的に説明する。
図20は、前処理部52の動作の別の例を示すフローチャート、図21は、第4の例において前処理部52の処理対象とするパターンの一例の説明図である。この第4の例の前処理部52では、2×2画素単位で走査してゆき、2×2ドットが市松、L字、逆L字の場合について前処理補正を行う。ここで、市松、L字、逆L字は図21(A)〜(C)に示したような形態であり、更に白黒逆転したものもそれぞれ市松、L字、逆L字とする。なお、以降の処理は白黒逆転したものについても全く同様であるため、その説明は省略する。
S161において、2倍原画像から2×2画素のブロック画像を抽出し、S162において、パターンが図21に示す市松、L字、逆L字のいずれかに該当するか否かを判定する。図22は、前処理部52における市松、L字、逆L字の判定方法の一例の説明図である。図21に示す3つのパターンとも、2×2の上側の2つの画素の値は異なっている。従って、市松、L字、逆L字の判定の際には、2×2の上側の2つの画素の値が異なるか否かを先に調べておき、その後にいずれのパターンであるかを判定しても良い。例えば図22(A)に示したように2つの画素とも黒画素の場合や、図22(C)に示したように2つの画素とも白画素の場合には、市松、L字、逆L字のいずれのパターンにも該当しないと判断できる。また、図22(B)に示したように、2つの画素の値が異なる場合には、図22(D)〜(F)に示した市松、L字、逆L字のいずれかのパターンである可能性がある。従って、図22(B)に示すように2つの画素の値が異なる場合に、市松、L字、逆L字のパターンを検出するように構成すればよい。図22(A)や(C)、および図22(B)の場合であっても市松、L字、逆L字のいずれのパターンでもない場合には、S161へ戻って、次の2×2画素のブロック画像の抽出を行う。
2×2画素のブロック画像が市松だった場合には、第1の例における図5のフローチャートで説明したのと同様に、S163において、2×2を含む4×4ブロックの白画素数と黒画素数を計数し、S164で所定値との比較を行う。例えば所定値を6とし、黒画素数≦6ならばS165においてL字であると分類し、また白画素数≦6ならばS166において逆L字であると分類して処理を進める。それ以外ならば、処理を終了する。
S162でL字、逆L字に分類された場合、および、S165でL字,S166で逆L字に分類された場合には、S167でそれぞれL字または逆L字用の方法を用いて、原画像でのドットの接続方向(水平or垂直)及び接続長を抽出する。更にS168において、S167の抽出結果に基づいて、2倍原画像の相当位置に画素を補間する。すべての2×2画素のブロック画像について処理を終えたか否かをS169で判定し、未処理の2×2画素のブロック画像が残っている場合には、当該未処理のブロック画像について処理を行うべく、S161へ戻る。すべての2×2画素のブロック画像について処理を終えたら、前処理部52における処理を終了する。
図23は、前処理部52におけるL字に分類されたブロック画像の接続方向および接続長の抽出処理の一例を示すフローチャート、図24は、同じく接続方向および接続長の抽出と画素補間処理の具体例の説明図である。例えば図22のS162およびS164で2×2画素のブロック画像がL字であると判定された場合には、図24(A)においてハッチングを施して示した2×2画素のブロック画像の更に外側の画素値を参照する。そして、まずS171およびS180において、ドットの接続方向(水平or垂直)を判定する。図24に示すように、2×2画素の左上にあるドット(図22(B)ではr1で示したドット)が白であれば水平方向であるとし、S171からS172へ進む。また、2×2画素の右下にあるドット(図22(C)ではq2で示したドット)が白であれば垂直方向であると判定してS180からS181へ進む。両方とも満たさない場合には、当該2×2画素のブロック画像について処理を終了する。
例えばドットの接続方向が水平方向であった場合には、左右それぞれについて、ドットの接続長を算出する。それには、S172でi=2として、S173でpi-1 =白、pi =黒であるか否かを判定し、条件に合致していればS174でiに2を加算してS173へ戻り、左側に隣接する2画素の判定を繰り返す。このようにして、2×2画素のブロック画像の左上側に水平方向に連続するpi-1 =白、pi =黒のペアをiにより計数してゆき、S175でiを1/2にして左接続長とする。
さらに、S176でi=2として、S177でqi-1 =白、qi =黒であるか否かを判定し、条件に合致していればS178でiに2を加算してS177へ戻り、右側に隣接する2画素の判定を繰り返す。このようにして、2×2画素のブロック画像の右側に水平方向に連続するqi-1 =白、qi =黒のペアをiにより計数してゆき、S179でiを1/2にして左接続長とする。
これによって、左右それぞれの方向の接続長が求められる。なお、pi 、qi の位置関係を図24(B)に示している。
同様に、ドットの接続方向が垂直方向であった場合には、上下それぞれについて、ドットの接続長を算出する。そのために、S181でi=2として、S182でri-1 =白、ri =黒であるか否かを判定し、条件に合致していればS183でiに2を加算してS182へ戻り、上側に隣接する2画素の判定を繰り返す。このようにして、2×2画素のブロック画像の左上側に垂直方向に連続するri-1 =白、ri =黒のペアをiにより計数してゆき、S184でiを1/2にして上接続長とする。
さらに、S185でi=2として、S186でsi-1 =白、si =黒であるか否かを判定し、条件に合致していればS187でiに2を加算してS186へ戻り、右下側に隣接する2画素の判定を繰り返す。このようにして、2×2画素のブロック画像の右下側に垂直方向に連続するsi-1 =白、si =黒のペアをiにより計数してゆき、S188でiを1/2にして下接続長とする。
これによって、上下それぞれの方向の接続長が求められる。なお、ri 、si の位置関係を図24(C)に示している。
左右方向または上下方向の接続長をそれぞれ抽出したら、図20のS168における画素補間処理を行う。接続方向が水平方向の場合には、例えば図24(D)〜(G)に示すように、接続方向である水平方向に対して、2倍原画像中に、接続長に応じた画素値を配分する。例えば、接続方向が水平方向で左方向の接続長がkであった場合には、新たにk個の画素を対応位置に配置する。配分する画素の画素値N1 、…、Nk は、
N1 =(0×k+255×1)/(k+1)
N2 =(0×(k−1)+255×2)/(k+1)
:
Nk-1 =(0×2+255×(k−1))/(k+1)
Nk =(0×1+255×k)/(k+1)
を計算すればよい。つまり、L字部分に255までの濃度をk+1個分に均等配分して配置すればよい。右方向についても同様に画素の配置を行えばよい。
図24(D)〜(G)には、左右の接続長が同じであった場合のドット配置の例を図示している。左右の接続長が異なる場合、例えば左方向が2で右方向が4の場合には、左方向には図24(E)の左側に配置した2ドット(濃度85、170)、右方向には図24(G)の右側に配置した4個のドット(濃度51、102、153、204)、計6個のドットを対応位置に配置すればよい。
また、接続方向が縦方向であった場合についても、水平方向の場合と全く同様にしてドットの配置を行うことができる。その場合の画素の一例を図24(H)〜(K)に示している。以上によって、L字の場合の配置処理は終了する。
図25は、前処理部52における逆L字に分類されたブロック画像の接続方向および接続長の抽出と画素補間処理の具体例の説明図である。接続方向が逆L字であった場合も上述のL字の場合と同様であり、2×2画素の上の2画素のうちの右側の画素と、左側の2画素のうちの上側の画素により接続方向が左右方向か上下方向かを判別する。そしてし、左右方向であれば図25(B)に荒いハッチングを施して示した2画素ずつについて連続性を判断し、上下方向であれば図25(C)に荒いハッチングを施して示した2画素ずつについて連続性を判断して、それぞれの接続長を求める。そして、それぞれの接続長に応じて、水平方向であれば図25(D)〜(G)に示すように、また垂直方向であれば図25(H)〜(K)に示すように、画素を補間すればよい。以上によって、逆L字の場合の配置処理も終了する。以上により、この第4の例における前処理部52の処理が終了し、2倍原画像のエッジ部が修正される。
なお、2値画像では、本来はなだらかな曲線であるべきエッジが表現できずに、L字、逆L字部分の接続長が微妙にずれて表現される場合がある。このような部分に前処理部52でドットを配置する際には、接続長を少しだけ増加させてエッジをぼけさせると良い。具体的には、L字または逆L字として分類された部分に対して、左右または上下の接続長が1しか違わない場合に、それぞれ接続長を1ずつ増加させて処理すると良い。
図26は、前処理部52において接続長を増加させて補間処理を行う場合の具体例の説明図である。例えば、図26(A)において太線で囲んだ2×2画素のブロック画像はL字と判定されるが、このL字部分での左接続長は1、右接続長は2となる。この場合、通常に前処理部52で補間処理を行うと、図26(B)に示したように、左側に1ドット、右側に2ドットが配置される。これに対して、この接続長を左右に1ずつ増加させ、図26(C)に示したように左側に2ドット、右側に3ドットの配置を行うことで補助するドットを増加させることができる。
あるいは、配置するドットの数は変えずに、濃度だけ(接続長を1段階増加させたときのものに)変えても良い。なおこの際に、図26(C)に示しているように、周囲の画素とのつながりを考慮し、2ドット側のドットを配置する際には、3ドット側に1ドット分だけ位置をシフトする。この1ドット分の開始位置のシフトは、この例に限らず、常に接続長が短い側に関して行うようにするとよい。
以上の処理は、市松からL字、逆L字に分類されてきたブロックに対しても同じように行う。このような処理を加えるとぼけが加わるため、前処理部52の終了時点での画質は、変更を行わないときと比べて必ずしも良いわけではない。しかし、この多少のぼけによってエッジ部の角度の方向性が全体的に平均化されるため、後段で局所コラージュ処理を行うと、角度は均一のままでぼけのみが修正され、最終的な画質を向上することができる。
なお、同様の要領で、L字または逆L字として分類された部分に対して、左右または上下の接続長が2だけ違う場合に、長い方の接続長を1つ減らし、短い方の接続長を1つ増加させ、ドットを配置する際には、開始位置を接続長の長かった側に1ドット分シフトするようにしても良い。
また、上述の前処理部52による処理はL字および逆L字に関するものであったが、市松部分について特別に処理を行ってもよい。図23に示したL字の処理に関して、例えば接続方向が水平方向であると判定する際に、図24(B)のr1が白であるという条件によって行っている。この場合、図24(B)のr2については判断していないので、r2が黒画素であり、1ドット分上側の2×2画素のブロック画像では市松パターンとなっていることが考えられる。このような場合、その上側のブロック画像ではL字/逆L字/それ以外の、3つのうちどれかに分類されて処理されることになる。つまり、r2が黒であることを許容すると、市松の周囲で異なる処理が施される場合が発生し、画質劣化が生じる場合がある。このような不具合を避けるために、r2の画素値が白であることを条件として付加するとよい。この場合には、市松として処理したブロック画像に対しては、ブロックを1ドット分所定方向にシフトした位置にある2×2ブロック画像をL字、または逆L字として更に処理すればよい。同様に垂直方向の判定の際にも、q2に加えてq1が黒であることを条件としても良く、また逆L字の場合にも同様である。
図27は、実際にL字の場合と市松をL字と判定した場合の差異の説明図である。上述のように市松パターンの場合でもL字または逆L字として処理されることがあるが、実際にL字のパターンの場合と比較してその差異を説明する。図27(A)は真にL字の場合を示しており、太線で囲んだ2カ所の2×2画素のブロック画像においてL字と判定される。なお、左下側のブロック画像は、白黒反転されたL字である。この2箇所のブロック画像に対してL字用の処理が行われることで、結果的に左右方向に延在する黒線の上下部分に画素が補間され、補正される。
一方、図27(B)に示すような市松の部分でも、太線で囲んだ2カ所の2×2画素のブロック画像において、上側のブロック画像は市松パターンが検出され、下側のブロック画像は白黒反転したL字パターンが検出される。従って、これらのブロック画像に対して補間処理を行うことになる。
このとき下側のブロック画像(L字)の方は、図24(の白黒反転)において、r2に相当する位置に白ドットがあるため、上記のr2の条件を付加した場合、この下側のブロック画像に対してはL字の場合の処理が行われないことになる。そこで、市松部分を処理した際には、更にブロックを1ドット分所定方向にシフトした位置にある2×2画素のブロック画像をL字、または逆L字として更に処理する。この場合には下側のブロック画像を処理対象として画素の補間処理を行う。このような部分的な改変によって、市松部分の画質をより高めることが可能である。
図28は、45度方向のエッジ判定の一例の説明図、図29は、45度方向のエッジに対する補間処理の一例の説明図である。前処理部52は、さらに45度方向に対しても補間処理を行うように構成することができる。図28(A)に示した例は白黒反転したL字パターンの場合を示している。この場合、2×2画素のブロック画像の右側の2画素が黒画素の場合、45度のエッジが存在する可能性がある。このような場合に、ブロック画像の右下に斜めに2画素ずつ、左側の画素が白で右側の画素が黒である対を探索する。この探索は上述の水平、垂直方向の場合と同様である。これによって斜め方向の接続長が得られる。この接続長により、例えば接続長が0であれば図28(B)に示すエッジが、1であれば図28(C)に示すエッジが、2であれば図28(D)に示すエッジが、3であれば図28(E)に示すエッジが、それぞれ存在すると考えられる。いずれの場合も垂直方向の画素数をnとすれば水平方向の画素数がn+1の傾きを持ったエッジと考えることができる。このような考えに基づき、斜め方向の画素の補間を行う。
ここでは補間する画素の値(濃度値)は、エッジによって分割される面積比に応じて決定する。エッジの傾きは上述のように水平方向n+1、垂直方向nであるので、図29においてA0部分の画素全体に対する面積比は、
画素全体:A0=(n+1)2 :(n・(n+1)/2)
である。従って、濃度値P(A0)は、濃度値幅を0〜255としたとき、
P(A0)=(n・(n+1)/2)/((n+1)2 )
=(n/2(n+1))×255
である。同様に、図29においてA1部分の画素全体に対する面積比は、
画素全体:A1=(n+1)2 :((n−1)2 ・(n+1)/2n)
である。従って、濃度値P(A1)は、濃度値幅を0〜255としたとき、
P(A1)=((n−1)2 ・(n+1)/2n)/((n+1)2 )
=((n−1)2 /2n(n+1))×255
である。一般化すると、Ak部分の画素全体に対する面積比は、
画素全体:Ak=(n+1)2 :((n−k)2 ・(n+1)/2n)
である。従って、濃度値P(Ak)は、濃度値幅を0〜255としたとき、
P(Ak)=((n−k)2 ・(n+1)/2n)/((n+1)2 )
=((n−k)2 /2n(n+1))×255
で求めることができる。
また、図29においてB0部分の画素全体に対する面積比は、
画素全体:B0=(n+1)2 :((n+1)2 −(n+1)/2n)
である。従って、濃度値P(B0)は、濃度値幅を0〜255としたとき、
P(B0)=((n+1)2 −(n+1)/2n)/((n+1)2 )
=(1−1/2n(n+1))×255
である。同様に、図29においてB1部分の画素全体に対する面積比は、
画素全体:B1=(n+1)2 :((n+1)2 −2(n+1)/n)
である。従って、濃度値P(B1)は、濃度値幅を0〜255としたとき、
P(B1)=((n+1)2 −2(n+1)/n)/((n+1)2 )
=(1−2/n(n+1))×255
である。一般化すると、Bk部分の画素全体に対する面積比は、
画素全体:Bk=(n+1)2 :((n+1)2 −(k+1)2 (n+1)/2n)
である。従って、濃度値P(Bk)は、濃度値幅を0〜255としたとき、
P(Bk)=((n+1)2 −(k+1)2 (n+1)/2n)/((n+1)2 )
=(1−(k+1)2 /2n(n+1))×255
で求めることができる。
このような補間処理によって、斜め45度方向のエッジに対しても補正を行うことができる。なお、図示した右下方向に限らず、左上方向、逆L字の場合には右上方向、左下方向についても同様の補間処理を行うことができる。前処理部52では、このほかにも、必要な各種の補正(補間)処理を適宜行うことができる。
なお、この第4の例における残りの処理は、2×2ブロック単位のドメインブロック画像、4×4ブロック単位のレンジブロック画像を用いて、第2の例と全く同様に行うことができる。その際、縮小レンジブロック画像を4×4から2×2に縮小するための処理は、図10や図14と同様に作成することができる。なお、この第4の例では、反復処理部61の反復回数は、例えば5回程度に設定するとよい。もちろん、反復回数は任意に設定可能である。
このように、この第4の例によれば、局所コラージュ処理を行う前に、前処理部52で市松部分を補正すると同時に、局所コラージュ処理で収束の遅い低角度の線を中心に、仮の補正(アンチエイリアス)を行うことによって、後の局所コラージュ処理の収束を速めることができる。この第4の例では、局所コラージュで使用するブロックは2×2と小さいため、細部の情報を忠実に保ち、かつ前処理と局所コラージュ処理によってジャギーが適切に補正された画像を得ることができる。本発明の処理は、彫刻に例えるならば、前処理部が「ノミ」、局所コラージュ処理が「やすり」のような関係になっている。前処理で大まかな形態を整え、局所コラージュ本処理で細かな修正を行っている。なお速度に関しては、前処理に若干の負担が増えるものの、局所コラージュ処理自体は小さいブロックサイズを用いる上に、傾向として反復の回数が少なくても充分な画質に収束するため、全体での速度は第1ないし第3の例に比べて速くなる。
また、この第4の例の前処理部52では、上下左右とも6画素を参照して行っているため、接続長は最大で4となっているが、もちろん更に同様の手順でより広範囲の画素を参照するようにしても良い。そのようにすることで、より低角度の線を拾うことができ、その接続長分だけジャギーを前処理により補正することができ、確実に高画質化することができる。画素値を新たに配置する際には、濃度値幅(例えば0〜255)を接続長kに対してk+1等分してk個配置しているが、配置する画素の個数や画素値はこの限りではない。例えば、配置するドットの総数を減らし、全て黒ドットか白ドットを配置するようにしても良い。また、この第4の例では、接続方向の決定の際に、初めに水平方向か否かを判断し、次に垂直方向か否かを判断しているが、これはその逆でも良い。なお、これらの周辺の画素を参照する際には、画像の上下左右端などでは走査域が外にはみ出ないように、これらの走査量を適宜減らすとよい。
第5の例について説明する。この第5の例では、本発明を簡易に構成する場合について説明する。図30は、画質改善処理部5の簡易な構成例を示すブロック図である。図中の符号は図1と同様であり、重複する説明を省略する。図30には、図1に示した画質改善処理部5の構成のうち、簡易に構成する場合に最低限必要となる構成について示している。
まず、1回のみの処理で済ます場合には、反復処理部61を設けずに構成することができる。また、各部の説明でも述べたように、改良ドメインブロック画像が重複する画素について予め除算してメモリ2中の画素値と加算し、書き戻す構成であれば、平均値演算部60を設けずに構成することができる。
また、ある程度の画質で十分な場合には、エッジ強調処理部59によるエッジ強調処理や、前処理部52によって予め市松パターンなどに修正を加えておく必要はない。従って、エッジ強調処理部59や前処理部52についても、設けずに構成することができる。
さらに、上述の各部の説明でも述べているように、ドメインブロック画像の分類による処理の制御を行わなければ、ドメインブロック分類部54を設けずに構成することができる。同様に、上述の第2の例でも述べているように、レンジブロック抽出部55でレンジブロック画像を固定的に1つのみ抽出するような場合には、それぞれのレンジブロック画像とドメインブロック画像との類似度の判定は不要である。従って、類似度判定部57を設けずに構成することができる。この場合、上述の説明では唯一のレンジブロック画像とドメインブロック画像とから最小2乗係数を算出しているが、同様の処理を改良ドメインブロック作成部58で行うか、あるいは最小2乗係数を用いずに改良ドメインブロック画像を作成すれば、類似度判定部37を設けなくてもよい。
さらにまた、改良ドメインブロック作成部58において、ドメインブロック画像に従ってレンジブロック画像から改良ドメインブロック画像を生成する処理は、上述の例に限られるものではなく、そのほかの各種の処理により生成することができる。例えば、ドメインブロック画像とレンジブロック画像を参照して、変換式などに従って直接、ドメインブロック画像と同じサイズの階調ドメインブロック画像を生成することができる。この場合、縮小レンジブロック作成部56についても設けずに構成することができる。
図31は、画質改善処理部5を簡易な構成とした場合の動作の一例を示すフローチャートである。なお、各ステップの符号は、図2に示した処理と対応するステップの符号を付して重複する説明を省略する。まず、図2でも説明したように、メモリ部2中に領域を確保し、0で初期化しておく。
S101において、初期拡大処理部51により原画像をn倍サイズの画像に拡大し、n倍原画像を得る。上述の各例と同様にn=2として2倍に拡大した画像を得ることとする。S103において、ドメインブロック抽出部53によりn倍(2倍)原画像の中からドメインブロック画像を抽出する。さらにS106において、レンジブロック抽出部55により原画像からドメインブロック画像を含む1つのレンジブロック画像を抽出する。
S109において、改良ドメインブロック作成部58は、S103で抽出したドメインブロック画像に従ってS106で抽出したレンジブロック画像からドメインブロック画像と同じ大きさの改良ドメインブロック画像を作成する。例えばドメインブロック画像とレンジブロック画像とを用いた演算などによって改良ドメインブロック画像の各画素値を求めることができる。
S111では、S108で作成した改良ドメインブロック画像の各画素値を加算回数で除算して、メモリ部2中の画質改善画像用領域に対して加算書き込みを行う。
S112において、ドメインブロック抽出部53で抽出すべき全てのドメインブロック画像について処理を行ったか否かを判定し、未処理のドメインブロック画像が存在する場合にはS103へ戻り、処理を繰り返す。
すべてのドメインブロック画像について処理を終えれば、アンチエイリアス処理されたn倍(2倍)拡大画像を得ることができる。もちろん、上述の第1〜第4の例で示した処理の方が画質がよいが、この第5の例では処理の構成を大幅に簡略化することができ、また、処理速度を向上させることができる。
なお、この第5の例と上述の第1〜第4の例との中間の構成も可能であり、第5の例において設けなかった各部について適宜設けて構成することができる。
上述のいずれの例においても、例えば本発明によるアンチエイリアス処理とともに2倍の拡大を行った後に、例えば特願2002−079388号の方法などで任意倍に拡大し、最後に単純2値化することができる。なお、第4の例として示した方法の場合には、より適切なアンチエイリアス画像が得られるので、後段の拡大倍率が2倍以下であれば、線形補間法などのより簡易な方法を使っても、最後に2値化された際にジャギーが現れにくい。また、第4の例の方法で拡大してから単純2値化した画像を、更に第4の例の方法で拡大する、という処理を繰り返しても良い。このようにすることで、ボケをまったく発生させずに任意の倍率に変換することができる。このような組み合わせを使用することによって、任意の2値画像を任意の倍率で高画質に解像度変換することができる。
上述のような本発明の画像処理装置および画像処理方法は、「理想的な画像においては、注目ブロック(ドメインブロック)画像と類似のレンジブロック画像が、そのごく近辺に同じ向きに存在する。また、その類似度(最小二乗法での変換パラメータa)は、スケールに依存しない。」という、画像の局所自己相似性の仮定に基づいている。この局所自己相似性の仮定は、エッジ部が視覚的に良好な場合に満たされており、逆に言えば局所自己相似性を満たすように画像を修正すれば、視覚的に良好になるということができる。上述の局所コラージュの手法は、注目ブロックよりも大きなサイズのブロックを最小二乗法で輝度を合わせながら(必要に応じてエッジ強調を行いながら)、注目ブロックの上に張り込んでゆき、ブロックの重複部分は最後に平均を取る処理を行う。この処理(特に縮小処理)によって、ジャギーがアンチエイリアスさる。
デジタル画像は、視覚的に良好なエッジ部分において局所自己相似性の仮定が良く成り立っており、逆にいえば、エッジ部は局所自己相似性を高める処理によって高画質化することができる。一方で細線などでは局所自己相似性が崩れやすい傾向があるため、局所自己相似性を高める処理を行っても高画質化されるとは限らない。特に2値画像の細線などではこの問題が顕著である。しかしながら、細線も充分に拡大すれば本来はステップエッジを伴った太線とみなすことができる。つまり、細線も見るスケールをより小さくすれば局所自己相似性が成り立つということであり、より小さな領域で局所自己相似性を有していれば良いことになる。本発明はこの視点に立ってなされたものであり、原画像を局所コラージュする際に、従来の整数サイズブロックではなく、より細かい小数サイズブロックを使用して、より正確に局所自己相似性を追求している。また、2値画像は局所自己相似性が極端に低い画像であるため、この局所コラージュ処理を反復することによって、より理想的な画像に近づけているのである。
このとき、小数画素サイズを扱うことは、処理を複雑とし、処理速度を低下させる要因となる。ここで、原画像に対して局所コラージュ処理を行う際に小数ブロックを使用するというのは、最近傍法で拡大した原画像に、整数サイズブロックで局所コラージュ処理を行うのとほぼ同じことである。実際の演算は小数ブロックで行う場合よりも、拡大して整数サイズで処理を行った方が簡易である。また、拡大を行うことによって、拡大画像にアンチエイリアスが掛かった状態の画像が得られ、単に2倍拡大とアンチエイリアスを同時に行うというだけではなく、アンチエイリアスを掛けた際の情報喪失を2倍拡大によって抑えることができる。つまり、画像の情報が適切に保たれ、かつ高画質化されているので、この後段で更に拡縮する際にも、より好都合である。特に、もともとの目的が2値画像の拡大であるならば、原画像を拡大して整数サイズで局所コラージュ処理を行った方が有利である。もちろん、アンチエイリアスのみが必要な場合や、メモリの制約がある場合、小数サイズで処理を行う方法を用いることもできる。その場合には、数ラインごとに2倍拡大メモリを保持し、その内部で得られた画素値を平均化してアンチエイリアス画像を出力すればよい。
図32は、原画像および原画像を単純に最近傍法で4倍に拡大した一例の説明図、図33は、第4の例による2倍拡大とアンチエイリアス処理を2回繰り返して4倍に拡大した画像の一例の説明図である。図32(B)に示した画像からわかるように、図32(A)に示す原画像を最近傍法によって4倍に拡大した画像ではエッジ部にジャギーが発生している。
同じ原画像に対して上述のような本発明の処理を施すことによって、アンチエイリアス処理が施された、高画質の画像を得ることができ、更に拡大処理を行うことによって、図33に示すように高画質な拡大画像を得ることができる。
図34は、本発明の画像処理装置の機能または画像処理方法をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体の一例の説明図である。図中、71はプログラム、72はコンピュータ、81は光磁気ディスク、82は光ディスク、83は磁気ディスク、84はメモリ、91は光磁気ディスク装置、92は光ディスク装置、93は磁気ディスク装置である。
上述の本発明の実施の一形態の説明及び第1乃至第4の例として示した画質改善処理部5の機能は、コンピュータにより実行可能なプログラム71によっても実現することが可能である。その場合、そのプログラム71およびそのプログラムが用いるデータなどは、コンピュータが読み取り可能な記憶媒体に記憶することも可能である。記憶媒体とは、コンピュータのハードウェア資源に備えられている読取装置に対して、プログラムの記述内容に応じて、磁気、光、電気等のエネルギーの変化状態を引き起こして、それに対応する信号の形式で、読取装置にプログラムの記述内容を伝達できるものである。例えば、光磁気ディスク81,光ディスク82、磁気ディスク83,メモリ84(ICカード、メモリカードなどを含む)等である。もちろんこれらの記憶媒体は、可搬型に限られるものではない。
これらの記憶媒体にプログラム71を格納しておき、例えばコンピュータ72の光磁気ディスク装置91,光ディスク装置92,磁気ディスク装置93,あるいは図示しないメモリスロットにこれらの記憶媒体を装着することによって、コンピュータからプログラム71を読み出し、本発明の画像処理装置の機能または画像処理方法を実行することができる。あるいは、予め記憶媒体をコンピュータ72に装着しておき、例えばネットワークなどを介してプログラム71をコンピュータ72に転送し、記憶媒体にプログラム71を格納して実行させてもよい。あるいは、他のコンピュータにおいて記憶媒体に格納されたプログラムを読み出し、コンピュータ72に転送して実行してもよい。
なお、コンピュータ72は、図1に示すメモリ部2,制御部4と一体となっていてよいし、さらに、画像入力部1や画像出力部3などと一体となっていてもよい。もちろん、本発明の一部の機能についてハードウェアによって構成することもできるし、あるいは、すべてをハードウェアで構成してもよい。
1…画像入力部、2…メモリ部、3…画像出力部、4…制御部、5…画質改善処理部、51…初期拡大処理部、52…前処理部、53…ドメインブロック抽出部、54…ドメインブロック分類部、55…レンジブロック抽出部、56…縮小レンジブロック作成部、57…類似度判定部、58…改良ドメインブロック作成部、59…エッジ強調処理部、60…平均値演算部、61…反復処理部、71…プログラム、72…コンピュータ、81…光磁気ディスク、82…光ディスク、83…磁気ディスク、84…メモリ、91…光磁気ディスク装置、92…光ディスク装置、93…磁気ディスク装置。