(57)【特許請求の範囲】
【請求項１】
入力されるＭ値（Ｍ≧２、Ｍは自然数）の画像データを入力画像と異なる解像度を有するＮ値（Ｎ≧２、Ｎは自然数）の出力画像に変換出力する画像処理方法であって、
変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値と、該変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値を加算した演算結果を所定のしきい値に対してＮ値化し、Ｎ値化信号と上記演算結果との差分値を当該画素における差分信号として生成し、未変換の周辺画素における変換時に用いることとし、
変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値の算出時に参照する周辺画素範囲及び距離に対する重み付けを、所定のフィルタリング処理により入力画像の局所領域の特徴量を検出し、検出された画像の特徴量に応じて、適応的に変化させる
ことを特徴とする画像処理方法。
【請求項２】
入力される処理前のＭ値（Ｍ≧２、Ｍは自然数）の画像データを入力するための入力インターフェースと、
上記入力画像を当該入力画像と異なる解像度を有するＮ値（Ｎ≧２、Ｎは自然数）の出力画像に変換する制御手段と、
上記制御手段により変換された出力画像を出力するための出力インターフェースと、
上記制御手段からアクセス可能なメモリと
を備え、
上記制御手段は、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値と、該変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値を加算した結果を所定のしきい値に対してＮ値化し、Ｎ値化信号とＤ２との差分値を当該画素における差分信号として上記メモリの誤差バッファ領域に記憶させて、未変換の周辺画素における変換時に用いることとし、変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値の算出時に参照する周辺画素範囲及び距離に対する重み付けを、所定のフィルタリング処理により入力画像の局所領域の特徴量を検出し、検出された画像の特徴量に応じて、適応的に変化させることを特徴とする画像処理装置。
【請求項３】
上記制御手段は、一方の走査方向に対しては、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値を多値データとして演算して求め上記メモリのテンポラリバッファ領域に記憶させると共に、他方の走査方向に対しては、上記メモリのテンポラリバッファ領域に記憶された多値データを変換後の画素位置における変換前の各隣接画素値として参照することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
上記メモリは、変換後の画素位置と変換前の隣接画素位置の相対画素位置を第一のインデックスとすると共に、入力画像の各Ｍ値に対するＭの２乗個の値を第二のインデックスとして、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値を出力値とする補間信号テーブルを記憶してなる補間信号バッファ領域を有し、上記制御手段は、上記第一のインデックス及び第二のインデックスを指定して変換前の隣接画素における画素値の距離に対する重み付け加算結果を参照することを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
上記制御手段は、入力参照画素間に存在する複数の走査方向に対する変換処理を１画像走査内で同時に行うことを特徴とする請求項２ないし４のいずれかに記載の画像処理装置。
【請求項６】
上記制御手段は、変換時の参照画素数として２画素以上を参照することを特徴とする請求項２ないし５のいずれかに記載の画像処理装置。
【請求項７】
上記制御手段は、変換後の画素及び変換前の参照画素の各々の重心間の距離に対する重み付け加算を行うことで新規画素を生成することを特徴とする請求項２ないし６のいずれかに記載の画像処理装置。
【請求項８】
上記制御手段は、変換前の画素を変換後の各画素に投影した際の影響を及ぼす面積を元にして演算を行うことで新規画素を生成することを特徴とする請求項２ないし６のいずれかに記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、入力画像に対して異なる解像度の出力画像を得る画像処理方法及びそれを用いた画像処理装置に関するものである。
【０００２】
【従来の技術】
従来、画像入出力機器においては機器固有の入力あるいは出力解像度を有しており、各機器がＬＡＮや公衆回線を用いてネットワーク化されて使用される場合に入力された画像を出力形式に変換するあるいは出力用画像を別の出力機器用形式に変換する際、オリジナルの多階調画像に対して対象の出力解像度に合わせて解像度変換して出力していた。例えば、ある２値出力が可能なプリンタで出力した画像データを出力解像度の異なる別の２値出力が可能なプリンタで出力する場合、プリンタのホストとなる計算機上でオリジナルの多階調画像に対して解像度変換を実施した後、再度２値化処理を行うことで同じサイズの出力物を得ていた。
【０００３】
これに対し、一旦形成された２値画像に対して解像度変換を直接行い別の解像度の画像データを生成する方法が特開平８−７０９２号公報に示されている。
特開平８−７０９２号公報に示される解像度変換方法について図面を参照しながら説明する。
図２１は、例えば上述した解像度変換方法を用いた解像度変換装置を示す機能ブロック図である。
図２１において、１１５はパラレル−シリアル変換回路やカウンタ等で構成されたデータ個数Ｍ倍ブロック（シリアル出力タイミングを縮めたり伸ばしたりすることでデータ個数をＭ倍する。）、１１６は加算器やカウンタ等で構成されデータの端よりＮ個ずつ区切って１（黒画素に該当する）をカウントするカウントブロック、１１７は乗算ブロック、１１８は副走査方向の変換に関連する重み係数Ｗ１を設定するＷ１レジスタブロック、１１９は副走査方向の変換に関連する重み係数Ｗ２を設定するＷ２レジスタブロック、１２０は副走査方向の変換に関連する重み係数Ｗ３を設定するＷ３レジスタブロック、１２１は加算ブロック、１２２は誤差拡散処理特有の模様を目立たなくするために、ランダムなわずかな値を設定する３ドット×３ドット付加パタンレジスタブロック、１２３は多値データをスレッショルド値Ｔと比較して黒か白かを決定する２値化ブロック、１２４は減算ブロック、１２５は誤差拡散の拡散係数を決定する拡散係数ブロック、１２６は２値化後の誤差を記憶しておく誤差メモリブロックを示している。
【０００４】
次に、２００ｄｐｉ（ｄｐｉ：Dot Per Inch）の画像データを３００ｄｐｉに変換する場合を例にとって動作を説明する。
始めに、入力された画像データを主走査方向に対して３／２倍に増加させる。即ち、主走査方向に原データの個数を３倍にする。例えば、入力画素数が２００個の場合これにより６００個に増加する。次に、増加させたデータを端から順に２個ずつに区切って、その中の黒の数をカウントする。２個ずつに区切ったので、カウント結果は０，１，２のいずれかの多値データになる。こうして先ほどの６００個のデータは３００個の多値データになる。
【０００５】
副走査方向も同様の考え方であるが、主走査方向の計算と同時に副走査方向の計算を行う。これに際し、重み係数Ｗ１、Ｗ２、Ｗ３及びＩＮＤＥＸを使用する。ＩＮＤＥＸはＷ１の係数をかけるラインが原ラインの何番目に該当するかを表し、Ｗ２の係数をかけるラインはＩＮＤＥＸ＋１となり、Ｗ３に対してはＩＮＤＥＸ＋２となる。
【０００６】
上記のように主走査方向の計算と同時に副走査方向の計算も行い、求められた変換後の多値データを再度黒か白かの２値データに再度誤差拡散法を用いて変換する。誤差拡散法とは、この倍率の場合、０，１，２の多値データのうちスレッショルドを１とし、１以上ならば黒とすると、多値データが１の時に真の黒２と同じ判定になるので、判定誤差は１−２＝−１となる。この誤差を周辺ドットに拡散するのである。この場合は、実際よりも黒く判定したので周辺を白くする方向にずらすことで全体のバランスをとろうというものである。実際は、前ラインと１ドット前の誤差データをメモリ等に保存しておき、左斜め上、真上、右斜め上、左横の誤差データにそれぞれ拡散係数（この係数は合計して１となるように選択している）をかけて、変換後の多値データに加算する。そして、再２値化し、判定誤差をメモリに保存する。
【０００７】
【発明が解決しようとする課題】
上述したような従来の解像度変換を伴う画像処理方法においては、例えば解像度変換前の２画素が共に黒画素である場合、高解像度化後に生成されるこの２画素間の複数画素は全て黒画素（多値レベルで２）に判定され、再生後の画像に黒画素領域が連続して発生し画質が劣化するという課題があった。また、この対策を含めて３ドット×３ドット付加パタンレジスタブロック１２２を用いてランダムにわずかな値を加算しているが、これにより付加されるランダムノイズによって所領域の解像性が劣化するほか、画像全体がノイジーになり階調性も損なわれるという問題があった。
【０００８】
この発明は、前述した問題点を解決するためになされたもので、解像性及び階調性に優れた２値画像ひいては多値画像の解像度変換を行うことができる画像処理方法及び画像処理装置を実現することを目的とする。
【０００９】
【課題を解決するための手段】
この発明に係る画像処理方法は、入力されるＭ値（Ｍ≧２、Ｍは自然数）の画像データを入力画像と異なる解像度を有するＮ値（Ｎ≧２、Ｎは自然数）の出力画像に変換出力する画像処理方法であって、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値と、該変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値を加算した演算結果を所定のしきい値に対してＮ値化し、Ｎ値化信号と上記演算結果との差分値を当該画素における差分信号として生成し、未変換の周辺画素における変換時に用いることを特徴とするものである。
【００１０】
また、この発明に係る画像処理装置は、入力される処理前のＭ値（Ｍ≧２、Ｍは自然数）の画像データを入力するための入力インターフェースと、上記入力画像を当該入力画像と異なる解像度を有するＮ値（Ｎ≧２、Ｎは自然数）の出力画像に変換する制御手段と、上記制御手段により変換された出力画像を出力するための出力インターフェースと、上記制御手段からアクセス可能なメモリとを備え、上記制御手段は、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値と、該変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値を加算した結果を所定のしきい値に対してＮ値化し、Ｎ値化信号とＤ２との差分値を当該画素における差分信号として上記メモリの誤差バッファ領域に記憶させて、未変換の周辺画素における変換時に用いることを特徴とするものである。
【００１１】
また、上記制御手段は、一方の走査方向に対しては、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値を多値データとして演算して求め上記メモリのテンポラリバッファ領域に記憶させると共に、他方の走査方向に対しては、上記メモリのテンポラリバッファ領域に記憶された多値データを変換後の画素位置における変換前の各隣接画素値として参照することを特徴とするものである。
【００１２】
また、上記メモリは、変換後の画素位置と変換前の隣接画素位置の相対画素位置を第一のインデックスとすると共に、入力画像の各Ｍ値に対するＭの２乗個の値を第二のインデックスとして、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値を出力値とする補間信号テーブルを記憶してなる補間信号バッファ領域を有し、上記制御手段は、上記第一のインデックス及び第二のインデックスを指定して変換前の隣接画素における画素値の距離に対する重み付け加算結果を参照することを特徴とするものである。
【００１３】
また、上記制御手段は、所定のフィルタリング処理により入力画像の局所領域の特徴量を検出し、検出された画像の特徴量に応じて、変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値の算出時に参照する周辺画素範囲及び距離に対する重み付け係数を適応的に変化させることを特徴とするものである。
【００１４】
また、上記制御手段は、入力参照画素間に存在する複数の走査方向に対する変換処理を１画像走査内で同時に行うことを特徴とするものである。
【００１５】
また、上記制御手段は、変換時の参照画素数として２画素以上を参照することを特徴とするものである。
【００１６】
また、上記制御手段は、変換後の画素及び変換前の参照画素の各々の重心間の距離に対する重み付け加算を行うことで新規画素を生成することを特徴とするものである。
【００１７】
さらに、上記制御手段は、変換前の画素を変換後の各画素に投影した際の影響を及ぼす面積を元にして演算を行うことで新規画素を生成することを特徴とするものである。
【００１８】
【発明の実施の形態】
実施の形態１．
以下、この発明の実施の形態１を図について説明する。
実施の形態１では、解像度変換前の画像がモノクロ２値データであり、例えば４００ｄｐｉの記録解像度を持つ印字装置を用いて所定サイズで印字するために形成されており、これを３６０ｄｐｉの記録解像度を有するモノクロ２値記録可能なプリンタで同じ寸法の印字物として得る場合について説明する。すなわち、入力されるＭ値（Ｍ≧２、Ｍは自然数）の画像データを入力画像と異なる解像度を有するＮ値（Ｎ≧２、Ｎは自然数）の出力画像に変換出力する場合の説明であり、この実施の形態１では（Ｍ，Ｎ）＝（２，２）の場合について説明する。
また、画像の解像度変換方法に関しては、始めに主走査方向の解像度変換を実施した後、副走査方向の解像度変換を行う場合について説明する。
【００１９】
図１はこの発明の実施の形態１に係る画像処理装置の全体構成を示すブロック図である。
図１において、１は装置全体の動作を制御するとともに画像処理ソフトウェアを実行するＣＰＵ（中央演算装置）、２は画像処理装置に対して入力される処理前の画像データの受信制御を行うための例えばＳＣＳＩ（Small Computer System Interface）やＬＡＮ（Local Area Network）等の入力インタフェース、３は画像処理後の画像データを送信するためのプリンタ等の機器と直接あるいはＬＡＮ等を介して間接的に接続される出力インタフェース、４は入出力画像用ラインバッファとしての入力画像バッファと出力画像バッファ、誤差用ラインバッファとしての誤差バッファ、画像処理用テンポラリバッファ及び制御領域を含むＣＰＵからアクセス可能なメモリである。
【００２０】
次に、この実施の形態１の動作について説明する。
画像の解像度変換を行うために画像データは入力インタフェース２を介して入力される。入力された画像データはメモリ４における入力画像用バッファ領域に順次蓄積される。
【００２１】
図２はＣＰＵ１上で動作する本実施の形態１の特徴である画像の解像度変換方法を示すフローチャートであり、そのうち主走査方向に対する解像度変換方法を示している。以下、図２に従って処理手順を説明する。
【００２２】
また、図３は変換処理の制御変数として用いる変換前後の画像における主／副走査画素数を示した図である。画像データが入力されると、主走査方向１ライン毎に主走査方向の解像度変換を開始する。この時、４００ｄｐｉの画像を３６０ｄｐｉに変換する場合の変換後に形成される画素と変換前の画素における位置関係を図４に示す。４００ｄｐｉの画像データを、出力サイズを変更せずに３６０ｄｐｉに変換することは主走査方向及び副走査方向の画素数を９／１０に減少させることである。
【００２３】
本実施の形態１では、図４に示す新規生成画素は形成画素位置に隣接する変換前の２画素から、重心距離の比に応じて線形に濃度を補間する線形補間法の概念を使用する。従って、新規生成画素値は左右の隣接画素値に対して距離の関数として表現され、この内分比のセットは１０画素毎の繰り返しになる。本実施の形態１では、演算の簡略化のため、これら１０組の内分比のセットを予めメモリ４における制御領域に格納しておく。
【００２４】
解像度変換を開始すると、図２のステップＳＴ１でライン制御変数（図３の（ｙ、ｊ））の初期化を行い、出力画素制御変数（図３の（ｘ、ｉ））及び内分比読出しポインタの初期化を行う（ステップＳＴ２）。
【００２５】
次に、画素値参照のために変換前における左右の画素値をメモリ４における入力画像バッファから順次読み出す（ステップＳＴ３、ステップＳＴ４）。ある参照画素セットを用いて複数の画素を生成する場合、最初の画素生成時は参照画素値の読出しを行うが２画素目以降の生成時は新たな読み出しは行わない。
【００２６】
次に、内分比セットのうち該当する１つを読み出す（ステップＳＴ５）。例えば１画素目の処理の場合は前記内分比の１０セットのうちの最初のセット（０．０，１．０）を読み出す。次に、以前の画素における解像度変換処理時に発生しメモリ４の誤差バッファに格納されている量子化誤差に距離に対して重み付け加算した値を算出する（ステップＳＴ６）。ここで、誤差を参照する範囲と重み付け係数の組合せの例を図５に示す。具体的には、図における各参照画素位置で発生した誤差を該当する係数をかけて加算する。
【００２７】
続いて、これらの近傍画素で発生した誤差を考慮して新規画素値を式（１）に従って線形補間法により演算する（ステップＳＴ７）。尚、新規画素値をｏ＿ｔｍｐ、参照する左右の画素値をｉ＿ｐｅｌ[ｎ]及びｉ＿ｐｅｌ[ｎ＋１]（ｉ＿ｐｅｌ[ｎ]＝｛０，１｝、０≦ｎ＜ｉ）、ステップＳＴ６で求めた累積誤差値をｅｒｒとする。また、内分比のセットは一方の値をＫ［ｍ］（０≦ｍ＜１０）とし、その場合、他方は１．０−Ｋ［ｍ］で求まる。
0003974271.tif 000002
【００２８】
すなわち、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値（Ｋ［ｍ］×ｉ＿ｐｅｌ[ｎ]＋（１−Ｋ［ｍ］）×ｉ＿ｐｅｌ[ｎ＋１]）と、該変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値ｅｒｒを加算した結果ｏ＿ｔｍｐを演算する。
【００２９】
次に、演算結果ｏ＿ｔｍｐが所定のしきい値ｔｈに比べて大きい場合、生成される出力画素値は１（黒）とし、しきい値ｔｈ以下の場合は０（白）とする（ステップＳＴ８〜ＳＴ１０）。この出力画素値は、主走査方向の変換処理後に行う副走査方向の変換処理のために、メモリ４におけるテンポラリバッファに保存される（ステップＳＴ１１）。
【００３０】
次に、生成画素値ｏ＿ｔｍｐと出力画素値の差分を、当該画素の量子化により発生した誤差としてメモリ４における誤差バッファに格納する（ステップＳＴ１２〜ＳＴ１３）。
すなわち、演算結果ｏ＿ｔｍｐを所定のしきい値に対してＮ値化し、Ｎ値化信号とｏ＿ｔｍｐとの差分値を当該画素における差分信号として生成し、未変換の周辺画素における変換時に用いる。
【００３１】
以上で１画素の生成過程が終了するが、１ライン分の全ての画素生成が終了したか否かを判定し（ステップＳＴ１４）、終了していなければ出力画素制御変数を１つインクリメント、即ち主走査方向に１画素分だけ生成対象画素位置をずらしてステップＳＴ３〜ステップＳＴ１３の処理を繰り返し行う。
【００３２】
また、ステップＳＴ１４の判定で１ライン分の生成が終了したと判断した場合は、全ラインの全画素の生成が終了したか否かを判定し（ステップＳＴ１６）、全ラインの処理が終了していない場合はライン制御変数を１だけインクリメントし（ステップＳＴ１７）、ステップＳＴ２以降の手順で副走査方向の次ラインの処理を継続して実施する。
【００３３】
また、全ラインの全画素に関して主走査方向の解像度変換を終了した場合、メモリ４のテンポラリバッファには主走査方向のみ解像度変換が行われた２値画像データが保存されている。引き続き実施する副走査方向の解像度変換を考えた場合、図２におけるループ制御変数である画素制御変数及びライン制御変数を主走査方向に対する解像度変換時と入れ替えて同様の処理を行えばよい。即ち、図３において変換前及び変換後の画像を９０度回転したものを入力画像として図２の処理を行うことと等価である。
【００３４】
このようにして得られた主走査方向／副走査方向とも解像度変換が施された出力画像データはメモリ４の出力画像バッファのデータ領域に一時記憶され、所定のタイミングで出力インタフェース３を介して出力される。
以上の方法を用いることで、２値画像データを高解像度かつ階調性を損なうことなく解像度変換することが可能である。
【００３５】
上述した実施の形態１では、２値画像データを解像度の異なる２値画像データに変換する例について説明したがこの限りでない。即ち、図２のステップＳＴ８〜ＳＴ１０の量子化数は２である場合を説明したが、複数のしきい値を持たせ出力値を複数にすることで多値出力が可能である。例えば、３値出力を想定した場合、画像データ出力値として、１（黒）、０（白）のほかに０．５（グレイ）を設定し、式（１）の演算結果ｏ＿ｔｍｐを２つのしきい値ｔｈ[１]＝０．３３、ｔｈ[２]＝０．６６と比較することで容易に構成できる。このようにして、出力値をＮ値にする場合、ｏ＿ｔｍｐに対するしきい値を（Ｎ−１）個持たせればよい。
【００３６】
また、入力画像データが多値の場合に関しても式（１）がそのまま適用可能であるため、同様に実現可能である。すなわち、入力画像値が３値の場合、ｉ＿ｐｅｌ[ｎ]＝｛０，０．５，１｝のごとく入力画像が３つの要素を持つことになり、式（１）の演算において、新規画像は２値の場合と同様に参照画像との距離及び画素値の関数になる。このようにして、入力値がＭ値である場合、ｉ＿ｐｅｌ[ｎ]＝｛０，１／（Ｍ−１），２／（Ｍ−１），・・・，（Ｍ−２）／（Ｍ−１），１｝が入力されることで一般化が可能である。
【００３７】
また、実施の形態１では、４００ｄｐｉの入力画像を３６０ｄｐｉに変換する場合について記述したが、この限りでなく、任意の入出力解像度の組合せが可能である。例えば、４００ｄｐｉの入力画像を７２０ｄｐｉに解像度変換する場合の繰り返し周期を図６に示す。図６から出力画素９画素毎の繰り返し周期であることが見て取れる。即ち、入出力解像度を最大公約数で割った値に図４の内分比セットの繰り返し周期が含まれる（本実施の形態１では１０：９で繰り返し周期は出力画素１０画素毎）ため、メモリ４の制御領域には常に１周期分の内分比を保持しておけばよい。また、入出力解像度が公約数を持たない場合については内分比を逐次演算により求めるようにしてもよい。さらに、演算速度をさほど求めずに逆にメモリ使用量に制約がある場合は、内分比セットをメモリ４に持たずに常時演算により算出する方法をとってもよい。
【００３８】
また、実施の形態１では、処理対象画素近傍における量子化誤差演算範囲と重み係数を図５のように定めたがこの限りでない。殊に各重み係数の分子及び分母を２のべき乗で表現することにより、図２におけるステップＳＴ６の誤差演算に含まれる乗除算をビットシフト演算で置きかえることができる。一般的にＣＰＵの演算性能は乗除算の負荷が他の演算に比較して非常に大きいため、これにより処理全体の高速化を図ることができる。
【００３９】
また、実施の形態１では、式（１）を含めた演算をすべて小数で行っているがこの限りでなく、例えば入出力値の取りうるダイナミックレンジ０．０〜１．０を整数値０〜２５５までに割り当てて整数演算で行うようにしてもよい。前述の説明と同様一般的にＣＰＵは浮動小数点演算を行う際演算精度を確保するために整数演算に比べてビット長を長く取るため、演算器周辺の入出力を含めて時間がかかる傾向にある。これに対して演算を整数化することにより、視覚的にはほとんど差異を感じない程度の画質劣化を伴うものの、短時間に処理が可能という利益を得ることができる。
【００４０】
また、実施の形態１では、画像処理装置としてＣＰＵ１上で動作するソフトウェアとしての実現形態を示したが、各処理ブロックを電子回路化して実現することも可能であるのはいうまでもない。
【００４１】
実施の形態２．
次に、この発明の実施の形態２を図について説明する。
実施の形態２では、実施の形態１と同様、解像度変換前の画像がモノクロ２値データであり、例えば４００ｄｐｉの記録解像度を持つ印字装置を用いて所定サイズで印字するために形成されており、これを３６０ｄｐｉの記録解像度で同サイズの印字物として得る場合について説明する。また、画像の解像度変換方法に関しては、主走査方向の解像度変換を実施した後、副走査方向の解像度変換を行う場合について説明する。この実施の形態２における画像処理装置としては、図１に示す実施の形態１に係る画像処理装置と同様である。
また、図７は実施の形態２の動作において特徴的である主走査方向の解像度変換方法を示したフローチャートである。
【００４２】
次に、動作について説明する。
主走査方向の解像度変換にあたり、ステップＳＴ１〜ＳＴ５までの演算に伴う準備動作は実施の形態１と同様である。ステップＳＴ１８において、式（２）に従って解像度変換を実行する。
0003974271.tif 000003
【００４３】
すなわち、実施の形態２における主走査方向の解像度変換方法は隣接画素を用いた線形補間法にほかならず、演算結果ｏ＿ｔｍｐは多値データとして左右画素値の距離に応じた重み付き加算結果として求められる。ｏ＿ｔｍｐはしきい値と比較されることなく、順次メモリ４におけるテンポラリバッファ内に記憶される（ステップＳＴ１９）。この時、メモリ４におけるテンポラリバッファにおける１画素分のデータ領域は多値データ用に多ビットで確保する必要がある。このようにしてステップＳＴ２０〜ＳＴ２３に到る画素単位及び行単位の繰り返し演算を行い主走査方向の解像度変換を完了する。
【００４４】
次に、副走査方向の解像度変換を行う。副走査方向の解像度変換時は、図２に示すフローチャートと同等の処理手順を用いることにより、量子化誤差を考慮した解像度変換及び２値化処理を行う。ここで、主走査方向の解像度変換時にメモリ４内のテンポラリバッファに記憶される主走査方向解像度変換結果データは量子化されない多値データであるため、副走査方向の解像度変換に使用する参照画素は多値データとなる点が実施の形態１とは異なっている。
【００４５】
以上の方法を用いることにより、解像度変換前の原画像により忠実な階調再現性を備え、解像性及び階調性に優れた解像度変換を行う画像処理方法及び画像処理装置を構成することができる。
【００４６】
実施の形態３．
次に、この発明の実施の形態３を図について説明する。
図８は実施の形態３の構成例を示すブロック図である。
図８において、５は内部メモリである。図１との相違は、メモリ５内に補間信号バッファを備えている点である。
【００４７】
以下に、動作について説明する。
実施の形態３における動作は、主走査方向における解像度変換方法については図２または図７のフローチャートと同様である。また、副走査方向の解像度変換方法については図２のフローチャートと同様である。実施の形態３においては、図２におけるステップＳＴ７の誤差を考慮した線形補間演算の手法が異なる。以下、ステップＳＴ７の詳細な演算方法について説明する。
【００４８】
前述の通り、解像度変換時の変換前の画素と変換後に生成される画素位置に関しては、変換前の解像度と変換後の解像度間の最大公約数で求められる周期性がある（図４及び図６）。また、入力される画像データがＭ値であることから、式（１）及び式（２）における第１項及び第２項における距離係数Ｋ［ｍ］及び入力画素値ｉ＿ｐｅｌ[ｎ]、ｉ＿ｐｅｌ[ｎ＋１]の組合せは高々有限であることがわかる。これらの演算を処理実行時に逐次実行する場合処理負荷が多大になることを回避するために、変換前及び変換後の解像度毎に演算結果テーブルを作成し、メモリ５内の補間信号バッファに格納しておく。
【００４９】
図９は例えば４００ｄｐｉの２値画像を３６０ｄｐｉに解像度変換する場合の上記演算結果テーブルとしての補間信号テーブルを示している。各値は説明の都合上小数点第３位において四捨五入した結果を表示している。図９において、列（横方向）は２つの入力参照画素値の組合わせを表す第一のインデックス値（例えば入力Ｍ値がＭ＝２である場合、表に示す２２＝４通り）を示す。また、行（縦方向）は２つの入力参照画素位置と出力画素位置の内分比であり、１処理ライン内で繰り返しループする相対画素位置ｐを表す第二のインデックス値（本実施の形態の例では０≦ｐ≦８）を示す。ここでは、処理のループ制御変数である処理対象画素の座標から得られるｐ値及び入力参照画素値ｉ＿ｐｅｌ[ｎ]及びｉ＿ｐｅｌ[ｎ＋１]をそれぞれインデックス値としてメモリ５内の補間信号バッファを参照することによりて式（１）あるいは式（２）の第１項及び第２項が出力値として得られる。
【００５０】
以上のような方法を用いることにより、テーブルを用いることで演算を省くことができ、解像性及び階調性に優れた解像度変換を高速に実行可能な画像処理装置を構成することが可能となる。
【００５１】
実施の形態３においては、説明の便宜上、相対画素位置ｐにおける入力（ｉ＿ｐｅｌ[ｎ]、ｉ＿ｐｅｌ[ｎ＋１]）に対する第１項及び第２項の組合せの値を参照可能なテーブルを示しているが、この限りでない。即ち、式（１）及び式（２）では参照した２つの値を最終的に加算するため、予めこれらの加算結果をテーブル化してもよい。この場合、テーブルメモリに使用する記憶領域を低減できるほか、式（１）あるいは式（２）で画素毎に実行される加算回数を減らすことでさらに高速化される効果がある。
【００５２】
また、実施の形態３においては、入出力値となる２値を０または１に想定し、テーブルを構成する各出力値を小数点を用いた数値で表現しているが、この限りでなく、例えば入出力値を８ビット化し（０または２５５）、式（１）または式（２）の演算を整数化することで図８のテーブルにおける各値を整数化することができる。これにより、式（１）または式（２）における演算を高速化するとともに、テーブルに使用するメモリ容量を抑制することが可能である。
【００５３】
実施の形態４．
次に、この発明の実施の形態４を図について説明する。
図１０は本実施の形態４を実現する画像処理装置を示したブロック図である。図１０において、６は内部メモリであり、図１との差異はメモリ内ブロックに誤差配列バッファを有している点である。また、本実施の形態４におけるフローチャートの一例を図１１に示す。
【００５４】
次に動作について説明する。
図１１におけるステップＳＴ１〜ＳＴ５までの初期化及び各種設定手順については実施の形態１と同様である。本実施の形態４では、メモリ６内の画像入力バッファにおける数ライン分の画像データを参照して処理対象画素周辺における画像特徴量抽出処理を所定のフィルタリング処理によって行い、処理対象画素が線分上にあるか否かを判定する（ステップＳＴ２４）。線分検出手段の一例を図１２に示す。
【００５５】
図１２は、注目画素を中心とした線分抽出用フィルタを３×３画素で構成した例である。ここで、注目画素とは変換後の処理対象画素に近接する２画素のいずれか一方を指す。主走査方向の解像度変換時は図１２（ａ）に示す各フィルタ係数を用いて入力画像に対する畳み込み演算を行い、特徴量として評価値ＥＶを算出する。具体的には、式（３）のようになる。
【００５６】
【数１】
0003974271.tif 000004
【００５７】
ここで、Ｄｉｊ（１≦ｉ，ｊ≦３）は注目画素Ｄ２２を中心とした８近傍の各入力画素値を示す。入力画像が２値である場合、式（３）により注目画素を通る水平線分が存在する（ベタ黒領域を含む）、即ちＤ２１、Ｄ２２、Ｄ２３のみが１である場合ＥＶ＝３となる（ステップＳＴ２５）。
【００５８】
この場合、変換後に生成される画素についても線分中に含まれる領域であるため、例えば図１３上に示す参照範囲に対して図１３下に示す重み係数を用いて周辺画素における誤差演算を行う（ステップＳＴ２６）。
【００５９】
続いて、式（１）による解像度変換演算を行い（ステップＳＴ７）、以下実施の形態１と同様の手続きで主走査方向の解像度変換を完了する。
【００６０】
また、副走査方向の解像度変換方法については画像の縦横の制御変数を入れ替えて同様の手順で処理を実行する。この場合、ステップＳＴ２４の画像特徴量検出時は図１２（ｂ）のフィルタ係数を用い、式（３）を使用した垂直方向線分検出を行う。
【００６１】
以上のように、所定のフィルタリング処理により入力画像の局所領域の特徴量を検出し、検出された画像の特徴量に応じて、変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値の算出時に参照する周辺画素範囲及び距離に対する重み付け係数を適応的に変化させるようにして解像度変換を行うことにより、解像性及び階調性に優れたものとなり、なおかつ画像中に含まれる線分上に量子化誤差伝播に伴うジッタを生じることなく先鋭な線分の再現が可能な画像処理装置を構成することができる。
【００６２】
実施の形態４においては、画像特徴量検出として水平及び垂直方向の線分を検出する例を示したがこの限りでなく、図１２のフィルタ係数配列を対角方向にのみ１を並べることにより斜め方向線分検出が可能である。また、フィルタ係数配列として３×３画素マトリクスからなるものを用いたが、これ以外のサイズのフィルタ係数配列を使用しても同様の効果が得られるのは言うまでもない。
【００６３】
また実施の形態４においては、走査方向の線分検出手段としてマトリクス状のフィルタリングを行う例を示したがこの限りでなく、走査方向の線分検出に限る場合、変換前の入力画素１画素毎に黒画素が連続する場合その連続数ＲをカウントしＲ≧ｔｈ２（ｔｈ２：所定のしきい値）である場合に注目画素は線分上にあると判定することにより同様の効果が得られる。この場合、線分検出は走査方向に限られるがフィルタリングをする場合に比べて入力画像バッファに蓄積する入力画像のライン数を減少させることができる。
【００６４】
実施の形態５．
以下、この発明の実施の形態５を図について説明する。
図１４は実施の形態５における画像処理装置の全体構成を示すブロック図である。図１４において、７は内部メモリであり図１におけるメモリ４の構成と異なる点は、テンポラリバッファ領域がないことである。
【００６５】
また、図１５は実施の形態５における変換後の生成画素と変換前の参照画素位置を示す模式図である。また、図１６は図１５における画素位置関係に関して、特定の画素生成処理時における詳細な位置関係を示した図である。さらに、図１７は実施の形態５における処理手続きを示したフローチャートである。
【００６６】
以下、図１７のフローチャートに基づいて動作について説明する。
ステップＳＴ１〜ＳＴ３における初期化処理は実施の形態１と同等であるが、本実施の形態５においては主走査方向及び副走査方向の解像度変換処理を同時に実行するため、ループ制御変数が制御する処理画素及び処理ラインは、主走査方向及び副走査方向の双方を兼ねている。図１５より、解像度変換後の出力解像度が主走査方向および副走査方向共に同一である場合、ある処理対象画素に関する主走査方向及び副走査方向の参照画素番号及び参照画素からの内分比は同一の値をとることがわかる。
【００６７】
続いて、処理対象画素に対する参照画素の読み込みを行う（ステップＳＴ２７）。参照画素は図１６に示すように変換後に生成される画素を囲む４画素ｄ（ｘ、ｙ）、ｄ（ｘ＋１、ｙ）、ｄ（ｘ、ｙ＋１）、ｄ（ｘ＋１、ｙ＋１）である。
【００６８】
次に、内分比読出しポインタをインクリメントし内分比（ｔ、１−ｔ）をロードし初期設定を完了し（ステップＳＴ５）、変換後の対象画素における周辺画素の生成時に生じた量子化誤差を算出する（ステップＳＴ６）。
【００６９】
続いて誤差を考慮した線形補間演算を式（４）に基づいて行う（ステップＳＴ２８）。
0003974271.tif 000005
式（４）で得られるｏ＿ｔｍｐは、ｄ（ｘ、ｙ）及びｄ（ｘ＋１、ｙ）に対して主走査方向変換を実施し画素値Ｄａを求め、ｄ（ｘ、ｙ＋１）及びｄ（ｘ＋１、ｙ＋１）に対して変換画素値Ｄｂを求めた後、Ｄａ及びＤｂに対して副走査方向の解像度変換を実施した結果と同等である。
【００７０】
算出したｏ＿ｔｍｐは、実施の形態１と同等の量子化及び量子化誤差算出手続きを経て（ステップＳＴ８からＳＴ１３）、１画素分の主走査及び副走査方向の解像度変換を終了する。
【００７１】
以後、主走査方向に処理対象画素を移動して２ライン分の変換前画素を用い同様の処理を行い、１ライン分の主走査および副走査方向の解像度変換結果を得ると共に、参照ラインを１ラインずつずらして同様の処理を行うことにより、１画面分の解像度変換処理を完了する。
【００７２】
以上のような解像度変換方法を用いることにより、解像性及び階調性に優れて、なおかつ演算用のバッファメモリを最低限の使用に抑制できる画像処理装置及び画像処理方法を構成することが可能である。
【００７３】
実施の形態５においては、式（４）における解像度変換時に参照する画素セットとして同一主走査ライン上の２画素として説明したがこの限りでなく、同一副走査上の２画素を用いることでも式（４）と同じ式が導出される。
【００７４】
実施の形態６．
次に、この発明の実施の形態６を図について説明する。実施の形態６における画像処理装置のブロック構成図は図１と同等である。また、処理手続きを示すフローチャートについては図２と同等の流れを汲む。本実施の形態６において実施の形態１と異なる点は、変換後画素の生成時に使用する変換前画素配列及びそれに伴う線形補間演算方法である。
【００７５】
以下に、動作について説明する。
図２のステップＳＴ１〜ＳＴ３までの初期化処理は実施の形態１と同様である。ステップＳＴ４において本実施の形態６では例えば図１８に示す範囲の参照画素をロードする。実施の形態１では、変換により生成される画素位置Ｄ（ｘ，ｙ）に対してｄ（ｘ、ｙ）及びｄ（ｘ＋１、ｙ）の２画素を用いていたが、本実施の形態６においてはさらに１画素分離れたｄ（ｘ−１、ｙ）及びｄ（ｘ＋２、ｙ）も併せて使用する。
【００７６】
従って、ステップＳＴ７における誤差を考慮した線形補間演算は式（５）のように構成される。
0003974271.tif 000006
式（５）は、参照画素に対して距離に比例する重み付けを行っている。
【００７７】
このようにして得られるｏ＿ｔｍｐ値を所定のしきい値で量子化し（ステップＳＴ８から１１）、当該画素における量子化誤差を算出し（ステップＳＴ１２からＳＴ１３）１画素分の主走査方向の解像度変換が完了する。
【００７８】
これらの処理を、主走査方向の残りのライン及び副走査方向の全ラインに適用することにより、１画面分の解像度変換処理が終了する。
【００７９】
以上のような解像度変換方法を用いることにより、解像性及び階調性に優れた画像処理装置を構成することが可能になる。とりわけ入力画像がフルカラーでないＭ値疑似中間調化された画像である場合、面積階調によりある画素の特徴が複数画素に分散されているため、複数画素を参照する本実施の形態６に示した方法は有効である。
【００８０】
実施の形態６では、参照画素を４画素にする例を示したがこの限りでなく、要求される線形変換精度に応じて他の画素数を選択してもよく、さらにこれらの組合せにより変換精度を可変とした構成にしてもよい。
【００８１】
実施の形態７．
次に、この発明の実施の形態７を図について説明する。
実施の形態７における画像処理装置を示すブロック構成図は図１と同様である。また、処理手続きを示すフローチャートを図１９に示す。実施の形態７における実施の形態１との処理フローの差異は、図１９におけるステップＳＴ２９の誤差を考慮した投影法補間にある。
【００８２】
以下に、動作について説明する。
処理の一連の初期化手続き（ステップＳＴ１〜ＳＴ５）の後、周辺画素生成時に発生した量子化誤差値を演算する（ステップＳＴ６）。続いて誤差を考慮した投影法による解像度変換を実施する（ステップＳＴ２９）。
【００８３】
投影法の原理について、図を用いて説明する。図２０は投影法の原理を示す概念図である。線形補間法は、変換後の画素及び変換前の参照画素の各々の重心間の距離に対する重み付け加算を行うことで新規画素を生成していた。即ち、参照画素間の内分比から生成画素値を算出していたため、生成画素値の濃度分布は必ず参照画素の濃度分布値を結んだ直線上に存在していた。そのため、演算は簡易であるがなだらかな濃度変化をする領域の再現性において若干段階的な濃度変化にならざるを得ない。
【００８４】
これに対して投影法は、図２０に示すように変換前の参照画素を変換後の各画素に投影した際の影響を及ぼす面積を元に演算を行うため、なだらかな濃度変化により忠実に追従できるという特性をもっている。
【００８５】
このように変換された画素値に対して量子化（ステップＳＴ８〜ＳＴ１１）及び量子化誤差の算出（ステップＳＴ１２〜ＳＴ１３）を行うことにより、対象１画素の生成が完了する。
【００８６】
さらに、これらの処理を残りのライン数分及び副走査方向の全ライン分行うことにより、１画面分の解像度変換が終了する。
【００８７】
以上のように解像度変換を行うことにより、解像性及び階調性に優れた画像処理装置を構成することが可能になる。
【００８８】
また、以上の実施の形態に示した画像処理方法及び画像処理装置は、目的に応じて各手段を組合せ使用可能なものであり、多様な目的に適した画像処理方法及びそれを用いた画像処理装置を提供することが可能である。
【００８９】
【発明の効果】
以上のように、この発明に係る画像処理方法及び画像処理装置によれば、入力されるＭ値（Ｍ≧２、Ｍは自然数）の画像データを入力画像と異なる解像度を有するＮ値（Ｎ≧２、Ｎは自然数）の出力画像に変換出力する画像処理方法であって、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値と、該変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値を加算した演算結果を所定のしきい値に対してＮ値化し、Ｎ値化信号と上記演算結果との差分値を当該画素における差分信号として生成し、未変換の周辺画素における変換時に用いるようにしたので、階調性及び解像性に優れた高画質の解像度変換が行える効果がある。
【００９０】
また、上記制御手段は、一方の走査方向に対しては、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値を多値データとして演算して求め上記メモリのテンポラリバッファ領域に記憶させると共に、他方の走査方向に対しては、上記メモリのテンポラリバッファ領域に記憶された多値データを変換後の画素位置における変換前の各隣接画素値として参照するようにしたので、高画質の解像度変換を高速に実行できるという効果がある。
【００９１】
また、上記メモリは、変換後の画素位置と変換前の隣接画素位置の相対画素位置を第一のインデックスとすると共に、入力画像の各Ｍ値に対するＭの２乗個の値を第二のインデックスとして、変換後の画素位置における変換前の各隣接画素値を距離に対して重み付け加算した値を出力値とする補間信号テーブルを記憶してなる補間信号バッファ領域を有し、上記制御手段は、上記第一のインデックス及び第二のインデックスを指定して変換前の隣接画素における画素値の距離に対する重み付け加算結果を参照するようにしたので、高画質の解像度変換を高速に実行できると共に高画質の解像度変換を最小限のメモリ使用量で実現できるという効果がある。
【００９２】
また、上記制御手段は、所定のフィルタリング処理により入力画像の局所領域の特徴量を検出し、検出された画像の特徴量に応じて、変換後の画素の周辺画素において発生しているＮ値化に伴う差分信号を距離に対して重み付け加算した値の算出時に参照する周辺画素範囲及び距離に対する重み付け係数を適応的に変化させるようにしたので、使用目的に応じて処理速度、使用メモリ及び解像度変換精度を設定可能であるという効果がある。
【００９３】
また、上記制御手段は、入力参照画素間に存在する複数の走査方向に対する変換処理を１画像走査内で同時に行うようにしたので、高画質の解像度変換を高速に実行できると共に高画質の解像度変換を最小限のメモリ使用量で実現できるという効果がある。
【００９４】
また、上記制御手段は、変換時の参照画素数として２画素以上を参照するようにしたので、高画質の解像度変換を高速に実行できると共に高画質の解像度変換を最小限のメモリ使用量で実現できるという効果がある。
【００９５】
また、上記制御手段は、変換後の画素及び変換前の参照画素の各々の重心間の距離に対する重み付け加算を行うことで新規画素を生成するようにしたので、入力のＭ値化された疑似中間調画像の階調分布特性を良好に反映した階調再現性を有するという効果がある。
【００９６】
さらに、上記制御手段は、変換前の画素を変換後の各画素に投影した際の影響を及ぼす面積を元にして演算を行うことで新規画素を生成するようにしたので、高画質の解像度変換を高速に実行できるという効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１に係る画像処理装置の構成を示すブロック図である。
【図２】  実施の形態１に係る画像処理手順を示すフローチャートである。
【図３】  実施の形態１に係る処理前後の画像サイズの相関を示す説明図である。
【図４】  実施の形態１に係る処理前後の画素位置の関係を示す説明図である。
【図５】  実施の形態１に係る量子化誤差参照範囲と重み付け係数を示す説明図である。
【図６】  実施の形態１に係る処理前後の画素位置の関係を示す説明図である。
【図７】  実施の形態２に係る主走査方向に対する処理手順を示すフローチャートである。
【図８】  実施の形態３に係る画像処理装置の構成を示すブロック図である。
【図９】  実施の形態３に係る補間信号テーブルを示す説明図である。
【図１０】  実施の形態４に係る画像処理装置の構成を示すブロック図である。
【図１１】  実施の形態４に係る処理手順を示すフローチャートである。
【図１２】  実施の形態４に係る線分検出用フィルタ係数配列を示す説明図である。
【図１３】  実施の形態４に係る対象画素が線分の場合の量子化誤差参照範囲と重み付け係数を示す説明図である。
【図１４】  実施の形態５に係る画像処理装置の構成を示すブロック図である。
【図１５】  実施の形態５に係る変換前後の画素位置の関係を示す説明図である。
【図１６】  実施の形態５に係る変換前後の画素位置を示す詳細な図である。
【図１７】  実施の形態５に係る処理手順を示すフローチャートである。
【図１８】  実施の形態６に係る参照画素範囲を示す説明図である。
【図１９】  実施の形態７に係る処理手順を示すフローチャートである。
【図２０】  実施の形態７に係る投影法の原理を示す説明図である。
【図２１】  従来の画像処理装置の全体構成を示すブロック図である。
【符号の説明】
１  ＣＰＵ、２  入力インタフェース、３  出力インタフェース、４  メモリ、５  メモリ、６  メモリ、７  メモリ。
【図１】
0003974271.tif 000007
【図２】
0003974271.tif 000008
【図３】
0003974271.tif 000009
【図４】
0003974271.tif 000010
【図５】
0003974271.tif 000011
【図６】
0003974271.tif 000012
【図７】
0003974271.tif 000013
【図８】
0003974271.tif 000014
【図９】
0003974271.tif 000015
【図１０】
0003974271.tif 000016
【図１１】
0003974271.tif 000017
【図１２】
0003974271.tif 000018
【図１３】
0003974271.tif 000019
【図１４】
0003974271.tif 000020
【図１５】
0003974271.tif 000021
【図１６】
0003974271.tif 000022
【図１７】
0003974271.tif 000023
【図１８】
0003974271.tif 000024
【図１９】
0003974271.tif 000025
【図２０】
0003974271.tif 000026
【図２１】
0003974271.tif 000027