(57)【特許請求の範囲】
【請求項１】
入力画像データに変倍処理を施して出力する画像処理装置において、
変倍処理の変倍率に応じて、変倍処理後の注目画素の位置と元画像の近傍画素との距離を示す位相情報を決定する決定手段と、
前記決定手段において決定された位相情報と、前記変倍率に応じて連続的に変化する位相情報制御パラメータとに応じて、フィルタ処理における複数のフィルタ係数を予め演算して記憶しておく記憶手段と、
前記記憶手段によって記憶された複数のフィルタ係数に基づき、入力画像データをフィルタ処理するフィルタ処理手段とを有し、
前記位相情報に基づき、前記注目画素の元画像での位置と畳み込み演算に用いられる元画像の画素位置との距離を求め、該距離は前記位相情報制御パラメータで割ることによって変更され、該変更された距離を用いた補間法により、前記記憶手段によって記憶されるフィルタ係数は算出されることを特徴とする画像処理装置。
【請求項２】
前記記憶手段は、主走査、副走査独立にフィルタ係数を記憶しておき、
前記フィルタ処理手段は、主走査方向のフィルタ係数に基づき、主走査方向の畳み込み演算を行い、副走査方向のフィルタ係数に基づき、前記畳み込み演算の結果に対して副走査方向の畳み込み演算を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記記憶手段は、主走査、副走査独立にフィルタ係数を記憶しておき、
前記フィルタ処理手段は、副走査方向のフィルタ係数に基づき、副走査方向の畳み込み演算を行い、主走査方向のフィルタ係数に基づき、前記畳み込み演算の結果に対して主走査方向の畳み込み演算を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記主走査方向の畳み込み演算、前記副走査方向の畳み込み演算に用いられる元画像の画素位置と変倍後の注目画素の元画像における位置との距離を元画像の画素位置及び位相情報に基づき、主走査方向に投影した距離（dx）及び副走査方向に投影した距離（dy）としてそれぞれＮ個、Ｍ個ずつ各距離を求め、前記フィルタ処理の周波数特性を制御するためのフィルタ係数を主走査、副走査それぞれ１つずつ決定し（LCx、LCy）、
dx/LCxをパラメータとする双３次補間法により主走査方向のフィルタ係数Ｎ個とdy/LCyをパラメータとする双３次補間法により副走査方向のフィルタ係数Ｍ個とを算出し、
前記Ｎ個分の係数とＭ個分の係数とを位相分解数の組分予め演算し、記憶しておくことを特徴とする請求項２又は請求項３に記載の画像処理装置。
【請求項５】
前記主走査及び副走査方向のフィルタ係数は共に８個であることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記位相分解数の組は３２以下であることを特徴とする請求項４に記載の画像処理装置。
【請求項７】
入力画像データに変倍処理を施して出力する画像処理装置の処理方法であって、
変倍処理の変倍率に応じて、変倍処理後の注目画素の位置と元画像の近傍画素との距離を示す位相情報を決定する決定工程と、
前記決定工程において決定された位相情報と、前記変倍率に応じて連続的に変化する位相情報制御パラメータとに応じて、フィルタ処理における複数のフィルタ係数を予め演算して記憶手段に記憶しておく記憶工程と、
前記記憶工程において記憶された複数のフィルタ係数に基づき、入力画像データをフィルタ処理するフィルタ処理工程とを有し、
前記位相情報に基づき、前記注目画素の元画像での位置と畳み込み演算に用いられる元画像の画素位置との距離を求め、該距離は前記位相情報制御パラメータで割ることによって変更され、該変更された距離を用いた補間法により、前記記憶工程において記憶されるフィルタ係数は算出されることを特徴とする画像処理装置の処理方法。
【請求項８】
前記記憶工程は、主走査、副走査独立にフィルタ係数を記憶しておき、
前記フィルタ処理工程は、主走査方向のフィルタ係数に基づき、主走査方向の畳み込み演算を行い、副走査方向のフィルタ係数に基づき、前記畳み込み演算の結果に対して副走査方向の畳み込み演算を行うことを特徴とする請求項７に記載の画像処理装置の処理方法。
【請求項９】
前記記憶工程は、主走査、副走査独立にフィルタ係数を記憶しておき、
前記フィルタ処理工程は、副走査方向のフィルタ係数に基づき、副走査方向の畳み込み演算を行い、主走査方向のフィルタ係数に基づき、前記畳み込み演算の結果に対して主走査方向の畳み込み演算を行うことを特徴とする請求項７に記載の画像処理装置の処理方法。
【請求項１０】
コンピュータに、請求項７乃至請求項９の何れか１項に記載の画像処理装置の処理方法を実行させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力画像データに変倍処理を施して出力する画像処理装置及びその処理方法に関する。
【０００２】
【従来技術】
近年、画像を変倍する変倍処理として、変倍後の注目画素に最も近い元の画像データの画素を選択する「ニアレストネイバー法」が知られている。
【０００３】
また、「双３次補間法」などの処理も良く用いられている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述の「ニアレストネイバー法」は最近傍の画素データを使用するだけであるため、モアレの発生や拡大する際に画素が荒く見えるなど画像の劣化がひどいという問題がある。
【０００５】
一方、「双３次補間法」は、「ニアレストネイバー法」に比べて画質は良いが、解像度を保つために縮小変倍時に周期性のある原稿、例えば印刷物原稿を読み取って画像処理する際に、モアレ縞が発生し、画質が劣化してしまうという問題がある。
【０００６】
また、「双３次補間法」では、変倍後の各画素毎の位置に応じて、フィルタの係数を変更する必要があり、補間処理に時間を要したり、ハード化が困難であるという問題もある。
【０００７】
本発明は、上記課題を解決するためになされたもので、より低周波数の領域まで帯域制限され、変倍時のモアレ縞発生による画質劣化を防いだ変倍処理を施すことことを目的とする。更に、フィルタ処理における複数のフィルタ係数を予め演算して記憶しておくことで、少ない演算量で変倍処理を行うことを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明は、入力画像データに変倍処理を施して出力する画像処理装置において、変倍処理の変倍率に応じて、変倍処理後の注目画素の位置と元画像の近傍画素との距離を示す位相情報を決定する決定手段と、前記決定手段において決定された位相情報と、前記変倍率に応じて連続的に変化する位相情報制御パラメータとに応じて、フィルタ処理における複数のフィルタ係数を予め演算して記憶しておく記憶手段と、前記記憶手段によって記憶された複数のフィルタ係数に基づき、入力画像データをフィルタ処理するフィルタ処理手段とを有し、前記位相情報に基づき、前記注目画素の元画像での位置と畳み込み演算に用いられる元画像の画素位置との距離を求め、該距離は前記位相情報制御パラメータで割ることによって変更され、該変更された距離を用いた補間法により、前記記憶手段によって記憶されるフィルタ係数は算出されることを特徴とする。
【０００９】
また、上記目的を達成するために、本発明は、入力画像データに変倍処理を施して出力する画像処理装置の処理方法であって、変倍処理の変倍率に応じて、変倍処理後の注目画素の位置と元画像の近傍画素との距離を示す位相情報を決定する決定工程と、前記決定工程において決定された位相情報と、前記変倍率に応じて連続的に変化する位相情報制御パラメータとに応じて、フィルタ処理における複数のフィルタ係数を予め演算して記憶手段に記憶しておく記憶工程と、前記記憶工程において記憶された複数のフィルタ係数に基づき、入力画像データをフィルタ処理するフィルタ処理工程とを有し、前記位相情報に基づき、前記注目画素の元画像での位置と畳み込み演算に用いられる元画像の画素位置との距離を求め、該距離は前記位相情報制御パラメータで割ることによって変更され、該変更された距離を用いた補間法により、前記記憶工程において記憶されるフィルタ係数は算出されることを特徴とする。
【００１０】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【００１１】
［画像制御装置（Image Controller Unit）］
図１は、本実施形態における画像制御装置の構成を示すブロック図である。図示するように、本画像制御装置１００は画像入力デバイスの一例であるスキャナ２００や画像出力デバイスの一例であるプリンタ３００と接続する一方、ＬＡＮ７００や公衆回線（ＷＡＮ）８００と接続することで、画像情報やデバイス情報の入出力を行うためのコントローラである。
【００１２】
画像制御装置１００において、１０１はＣＰＵであり、後述するＲＯＭに格納されているプログラムに従ってシステム全体を制御する。１０２はＲＡＭであり、ＣＰＵ１０１が処理を実行時に使用するシステムワークメモリや画像データを一時記憶するための画像メモリが定義されているメモリである。１０３はＲＯＭであり、システムのブートプログラムや各種処理プログラム或いは制御データが格納されている。１０４はハードディスクドライブ（ＨＤＤ）であり、システムソフトウェア、画像データを格納する。１０６は操作部Ｉ／Ｆであり、１６０に示す操作部とのインターフェースとして機能すると共に操作部１６０に表示する画像データを操作部１６０に対して出力する。また、操作部１６０から使用者が入力した情報をＣＰＵ１０１に伝える役割をする。１１０はネットワークＩ／Ｆであり、ネットワーク（ＬＡＮ）７００に接続し、情報の入出力を行う。１２０はモデム（Modem）であり、公衆回線（ＷＡＮ）８００に接続し、情報の入出力を行う。以上のデバイスが１０７のシステムバス上に配置される。
【００１３】
１０５は画像バス（Image Bus）Ｉ／Ｆであり、上述のシステムバス１０７と画像データを高速で転送する１０８に示す画像バスを接続し、データ構造を変換するバスブリッジである。画像バス１０８は、ＰＣＩバスなどの高速バスで構成される。そして、画像バス１０８上には以下のデバイスが配置される。
【００１４】
１５０はラスターイメージプロセッサ（ＲＩＰ）であり、不図示のパーソナルコンピュータ（パソコン）等から送られてくるページ記述言語（ＰＤＬ）コードをビットマップイメージに展開する。６００はデバイスＩ／Ｆであり、画像入出力装置であるスキャナ２００やプリンタ３００と画像制御装置１００を接続し、画像データの同期系／非同期系の変換を行う。４００はスキャナ画像処理部であり、入力画像データに対して、補正、加工、編集を行う。５００はプリンタ画像処理部であり、プリント出力画像データに対して、文字のエッジを滑らかにするためのスムージング処理等を行う。１３０は画像変倍処理部であり、本実施形態の特徴的な処理モジュールであり、詳しい処理内容については後述する。１４０は画像圧縮部であり、多値画像データに対してＪＰＥＧの圧縮伸張処理を行い、２値画像画像データに対してはＪＢＩＧ、ＭＭＲ、ＭＨの圧縮伸張処理を行う。
【００１５】
また、上述のＨＤＤ１０４には、ネットワーク（ＬＡＮ）７００に接続されているノードに関する画像出力速度、設置位置などを示す情報がアドレス毎に保存されているものとする。
【００１６】
［画像入力装置（スキャナ）］
図２は、本実施形態における画像入力装置を示す外観斜視図である。図示するように、画像入力装置としてのスキャナ２００は、原稿となる紙上の画像を照明し、不図示のＣＣＤラインセンサーを走査することで、ラスターイメージデータとしての電気信号に変換する。ここで、原稿用紙を原稿フィーダ２０１のトレイ２０２にセットし、使用者が操作部１６０から読み取り起動を指示することにより画像制御装置１００のＣＰＵ１０１がデバイスＩ／Ｆ６００を介してスキャナ２００に起動指示を与え、スキャナ２００のフィーダ２０１が原稿用紙を１枚ずつフィードし、原稿画像の読み取り動作を行う。
【００１７】
［画像出力装置（プリンタ）］
図３は、本実施形態における画像出力装置を示す外観斜視図である。図示するように、画像出力装置としてのプリンタ３００は、ラスターイメージデータを用紙上の画像に変換する部分であり、その方式には感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。また、プリント動作の起動は、画像制御装置１００のＣＰＵ１０１がデバイスＩ／Ｆ６００を介して指示することにより開始される。プリンタ３００には、異なる用紙サイズ又は異なる用紙向きを選択できるように複数の給紙段が備えられ、それぞれ対応した用紙カセット３０１、３０２、３０３、３０４がある。また、排紙トレイ３０５は印字し終わった用紙を受けるものである。
【００１８】
［スキャナ画像処理部］
図４は、図１に示すスキャナ画像処理部４００の構成を示す図である。同図において、４０１は画像バスＩ／Ｆコントローラであり、画像バス１０８と接続し、画像バス１０８へのアクセスシーケンスを制御する機能と、スキャナ画像処理部４００内の各デバイスの制御及びタイミングを発生させる。４０２はフィルタ処理部であり、空間フィルタによってコンボリューション演算を行う。４０３は編集部であり、例えば入力画像データからマーカーペンで囲まれた閉領域を認識し、その閉領域内の画像データに対して影つけ、網掛け、ネガポジ反転等の画像加工処理を行う。４０５はテーブルであり、読み取った輝度データである画像データを濃度データに変換するためのテーブルである。４０６は２値化部であり、多値のグレースケール画像データを、例えば誤差拡散処理やスクリーン処理によって２値化する。
【００１９】
尚、本実施形態では、２値画像、多値画像にかかわらず画像処理を施すことが可能で、２値画像にしたいときのみ、２値化部４０６で２値化処理を行う。多値画像データを扱う場合は、２値化部４０６は何も処理を施さず、多値画像データを出力することになる。特に、本実施形態の特徴である、画像変倍部１３０は、２値画像、多値画像どちらでも画質劣化の少ない変倍処理が可能である。スキャナ処理部から入力される多値画像データを２値画像データで扱う場合に必要となる２値化部４０６を本実施形態では記述するが、本発明が２値、多値にかかわらず有効であることは言うまでもない。
【００２０】
上述の画像データに対する処理が施された画像データは、再び画像バスＩ／Ｆコントローラ４０１を介して画像バス１０８上に転送される。
【００２１】
［プリンタ画像処理部］
図５は、図１に示すプリンタ画像処理部５００の構成を示す図である。同図において、５０１は画像バスＩ／Ｆコントローラであり、画像バス１０８と接続し、画像バス１０８へのアクセスシーケンスを制御する機能と、プリンタ画像処理部５００内の各デバイスの制御及びタイミングを発生させる。５０３はスムージング処理部であり、画像データのジャギー（斜め線等の白黒境界部に現れる画像のがさつき）を滑らかにする処理を行う。
【００２２】
［画像変倍処理部］
図６は、図１に示す画像変倍処理部１３０の処理を説明するための簡単なブロック図である。同図において、６０１は画像入力部、６０２は画像変倍部、６０３はＣＰＵ、１１０４は画像記憶部、６０５は画像出力部である。それぞれ図１に記載されたブロックから、処理をわかりやすく説明するために抜き出して接続関係を表したものである。尚、画像入力部６０１には、送り先のデバイスとしてスキャナ２００からデバイスＩ／Ｆ６００経由で画像データが入力されても良いし、ＬＡＮ７００やＷＡＮ８００経由でネットワークＩ／Ｆ１１０やモデム１２０から画像データが入力されても良いし、ＨＤＤ１０４やＲＡＭ１０２などの記憶デバイスに記憶された画像データが入力されても良い。
【００２３】
また、図６に示す画像変倍部６０２は図１に示した画像変倍処理部１３０に相当ものである。ＣＰＵ６０３はＣＰＵ１０１に相当し、画像記憶部６０４はＨＤＤ１０４やＲＡＭ１０２などの画像を記憶するデバイスに相当し、画像変倍部６０２から読み書き可能であればどれでもよい。画像出力部６０５は画像記憶部６０４からの出力を表しており、プリントするのであれば、プリント画像処理部５００に、また画像データを別の記憶デバイスに記憶するのであれば、ＨＤＤ１０４やＲＡＭ１０２などの記憶デバイスに、或いはＦＡＸ送信やネットワーク経由などにより画像データを転送するのであれば、モデム１２０やネットワークＩ／Ｆ１１０にそれぞれ送出する。
【００２４】
図６に示す構成において、画像入力部６０１から画像データが、ＣＰＵ６０３から変倍率が画像変倍部６０２にそれぞれ入力される。尚、画像変倍部６０２は、変倍率とローパスフィルタの特性をそれぞれ独立に制御可能な変倍処理手段である。また、変倍率に応じて、求められるローパスフィルタの特性は変化する。一般に変倍率が小さくなると、より低い周波数での帯域制限が求められる。即ち、画像変倍部６０２はＣＰＵ６０３からの変倍率に応じたフィルタ係数を用いて変倍を行い、画像データとして画像を画像記憶部６０４に出力する。
【００２５】
図７は、図６に示す画像変倍部６０２の詳細な構成を示すブロック図である。同図において、７０１は変倍率入力部であり、ＣＰＵ６０３からの変倍率を入力する。７０２はアドレス演算処理部であり、変倍率入力部７０１からの変倍率と後述する位相情報変更処理部からの初期位相パラメータを受け取り、出力画像の画素位置を１画素毎に移動させてアドレス演算を行う。具体的には、出力画像上の注目画素が元画像上のどの画素位置に相当するかを変倍率から演算し、元画像上の近傍の画素から１画素以内のずれ分を位相情報として算出し、その位相情報を後述する係数設定処理部に出力し、元画像の画素位置情報に基づき画像記憶部６０４から元画像のＮ×Ｍ画素のデータを後述するＮ×１フィルタ処理部に読み出す。尚、画像記憶部６０４には、処理すべき元画像が予め記憶されているものとする。
【００２６】
７０３は位相情報変更処理部であり、変倍率入力部７０１からの変倍率に応じて位相情報制御パラメータを後述する係数設定処理部に出力すると共にその変倍率に応じて初期位相パラメータをアドレス演算処理部７０２に出力する。７０４は係数設定処理部であり、位相情報変更処理部７０３からの位相情報制御パラメータを用いて位相の分割数分のＮ×１個のフィルタ係数と、１×Ｍ個のフィルタ係数とをそれぞれ変倍処理が始まる前に演算し、後述するＮ×１フィルタ処理部、１×Ｍフィルタ処理部の係数レジスタにそれぞれ全ての位相のフィルタ係数を記憶させる。
【００２７】
７０５はＮ×１フィルタ処理部であり、係数設定処理部７０４から受け取ったフィルタ係数を内部の係数レジスタに記憶し、変倍処理中は、画像記憶部６０４から受け取った画像データに対して係数レジスタのフィルタ係数を用いてＮｘ１の畳み込み演算を行う。７０６は１×Ｍフィルタ処理部であり、係数設定処理部７０４から受け取ったフィルタ係数を内部の係数レジスタに記憶し、変倍処理中はＮ×１フィルタ処理部７０５で正規化された中間データに対して係数レジスタのフィルタ係数を用いて１×Ｍの畳み込み演算を行う。
【００２８】
尚、Ｎ×１フィルタ処理部７０５、１×Ｍフィルタ処理部７０６は、それぞれ、主走査方向のＮ×１画素の１次元フィルタ処理部、副走査方向の１×Ｍ画素の１次元フィルタ処理部である。ここで、Ｎ×１フィルタ処理部７０５は、図７に示すように、１×Ｍで用いるためのＭ個の中間データを出力するために、Ｎ×１画素の畳み込み演算処理部をＭ個持つように構成されている。Ｍ個のＮｘ１畳み込み演算処理部に入力されるのは、注目画素位置近傍の主走査Ｎ画素、副走査Ｍラインの元画像データである。一般に、変倍処理後の注目画素が大体中心にくるように構成される。１×Ｍフィルタ処理部７０６は、１×Ｍ画素の畳み込み演算処理部を１個持つように構成され、上述のＭ個の中間データを畳み込み演算し、注目画素の出力データとして出力する。
【００２９】
図７に示す構成において、Ｎ×１フィルタ処理部７０５は、アドレス演算処理部７０２からの画素位置情報に基づき、処理される元画像のＮ×Ｍ画素のデータを画像記憶部６０４から受け取り、主走査方向Ｎ画素×１ラインを１単位としてＭラインそれぞれについて、各フィルタ係数に基づき畳み込み演算を行う。尚、Ｎ×１フィルタ処理部７０５は、Ｍ個の正規化された出力がなされるように構成されていれば、図７に示すようにＮ×１の畳み込み演算処理部がＭ個並列に配置され、それぞれ０ラインからＭ−１ラインまでのＮ×１画素分の元画像データを供給するように構成されていても良いし、図７に示す構成とは異なるが、Ｎ×１の畳み込み演算処理部は１つで、Ｍライン分のＮ×１データが順番に処理され、Ｍ個の出力がなされるように構成されていても良い。また、Ｎ×１個のフィルタ係数のセットは、各ラインで同じものが用いられる。
【００３０】
次に、１×Ｍフィルタ処理部７０６は、Ｎ×１フィルタ処理部７０５から出力されたＭ個の演算結果と、副走査方向に演算されたフィルタ係数を係数設定処理部７０４から受け取り、畳み込み演算を行い、画像出力部６０５に多値出力する。
【００３１】
尚、本実施形態では、まずＮ×１フィルタ処理部７０５で主走査方向の画素を処理し、その後、Ｍ×１フィルタ処理部７０６で副走査方向の画素を処理しているが、主走査方向と副走査方向の順番を逆にすることも可能である。その場合、１×ＭフィルタがＮ個の出力を行い、Ｎ×１が該Ｎ個の出力から１つの変倍後の画像データを出力すれば良い。
【００３２】
また、本実施形態では、フィルタのサイズを８×８として説明をすすめるが、サイズは主走査、副走査で違っていても良いし、サイズも「８」に限るものではなく任意に設定することが可能である。
【００３３】
次に、変倍処理部６０２による縮小変倍処理について、より詳細に説明する。ここでは、位相情報制御パラメータによる高画質な変倍処理が可能であることを説明し、フィルタ係数の求め方が複雑であることから、リアルタイムにこの処理を行うためのシステム構成と、具体的にどのように実現するかを続けて説明していく。
【００３４】
まず、高画質な変倍処理が可能であることを説明するが、ここでは説明を簡単にするために、位相情報制御パラメータ、初期位相パラメータ、変倍率などが、主走査、副走査共に同じであると仮定して説明するが、主、副別のパラメータを用いて動作させるように構成することも容易に拡張可能であることは、言うまでもない。
【００３５】
以下では、変倍率入力部７０１から入力される変倍率は、主、副共に５０％とする。また、位相情報変更処理部７０３は変倍率に応じて、例えば次式のように位相情報制御パラメータＬＣ（ローパス係数）を算出するものとする。
【００３６】
ＬＣ＝１．５＋（１００／ＲＰＸ（ＲＰＹ）−１）×０．５
ここで、ＲＰＸ（ＲＰＹ）は、主走査（副走査）方向の変倍率である。変倍率は主、副共に５０％なので、今回はＬＣ＝２となる。
【００３７】
ＬＣ（ローパス係数）は、ローパスフィルタの周波数特性を制御するために、係数設定処理部７０４に出力されて用いられる。本実施形態では、ＬＣは上式に基づき変倍率に応じて変更されるが、この限りではないことは言うまでもない。変倍率に応じてＬＣを変更する際に、切り替わりが画像に影響しない程度に連続的に変化させるように設定すれば良い。ＬＣをどのように用いるかについては、後述する。
【００３８】
また、位相情報変更処理部７０３は変倍率に応じて初期位相パラメータを算出する。例えば、整数分の１の変倍率の場合は、初期位相パラメータＩＸ（ＩＹ）を０．５とし、それ以外はゼロであるといったルールを本実施形態では用いる。このルールについては更に後述する。
【００３９】
本実施形態では、変倍率が１／２＝５０％であるので、初期位相パラメータはＩＸ＝ＩＹ＝０．５と設定される。また、１／３＝約３３％、１／４＝２５％の変倍率時も同様に設定される。
【００４０】
また、拡大変倍時に整数倍となる場合、例えば２００％、３００％などの場合には、初期位相パラメータは次式によって設定される。
【００４１】
ＩＸ（ＩＹ）＝１００／ＲＰＸ（ＲＰＹ）／２
具体的には、２００％の場合には、ＩＸ（ＩＹ）＝０．２５、３００％の場合には、ＩＸ（ＩＹ）＝約０．１６７である。
【００４２】
このように設定された初期位相パラメータＩＸ、ＩＹは、アドレス演算処理部７０２に出力されて用いられる。
【００４３】
ここで、アドレス演算処理部７０２は、変倍率ＲＰＸ（ＲＰＹ）＝５０、初期位相パラメータＩＸ（ＩＹ）＝０．５を受け取り、次のように動作する。例えば、注目画素が主走査Ｘ＝５０画素目、副走査Ｙ＝１０画素目の場合、注目画素が元画像のどの座標に位置しているかは、次式のように演算できる。
【００４４】
0003950647.tif 000002
尚、初期位相パラメータは上述したようにアドレス演算時に足し込まれるように用いられる。
【００４５】
ここで、Ｘｏ，Ｙｏの小数部ＰＩＸ＝０．５  ＰＩＹ＝０．５（本実施形態では、ＸｏとＹｏの小数部が同じ値になるように構成されているため、１つのパラメータで説明を続ける。）を初期位相パラメータとして係数設定処理部７０４に出力し、Ｘｏ，Ｙｏの整数部ＯＸ＝１００，ＯＹ＝２０を元画像の画素位置情報としてＮ×１フィルタ処理部７０５に出力する。現在の注目画素での処理が全て終わると、注目画素を１画素移動して、更に処理を続ける。
【００４６】
変倍率ＲＰＸ（ＲＰＹ）が５０の場合、常に５０／１００＝０．５で割ることになるため、常に小数部ＰＩＸは、初期位相ＩＸのまま変わらない。例えば、Ｘ＝５１、Ｙ＝１０とＸだけ１画素更新した場合、Ｘｏ＝１０２．５（副走査方向に更新した場合も同じ話が成り立つので省略する。）となり、やはり、ＰＩＸ＝０．５である。Ｘが１画素ずつ増えていっても常にＸｏが２ずつ増えてＰＩＸ＝０．５で変わらないことになる。
【００４７】
しかし、これは例外である。一般に、注目画素を１画素移動させる毎にＰＩＸ（ＰＩＹ）の値は変化し、ＰＩＸ（ＰＩＹ）の変化により補間演算で用いられるフィルタ係数の値も１画素毎に変化することになる。例えば、変倍率ＲＰが８０であったとすると、上述したように、初期位相パラメータを０として、
0003950647.tif 000003
Ｘ（又はＹ）が更新されると、ＰＩＸ（ＰＩＹ）の値も更新される。
【００４８】
ここでは、ＲＰＸ＝ＲＰＹ＝５０として説明を続ける。
【００４９】
本実施形態では、次の処理は主走査方向に１画素移動して、Ｘ＝５１画素目、Ｙ＝１０画素目となる。複写機の原稿台の大きさと読取解像度、変倍率により、主走査、副走査の最大画素値は変化するが、ここでは主走査方向の最大画素値が５０００画素とすると、本処理が主走査方向に０画素目から開始され、４９９９画素目まで達すると、その次の処理は副走査方向に１画素進むことになる。上述の例では、Ｘ＝４９９９画素目、Ｙ＝１０画素目まで処理が進むと、次の処理はＸ＝０画素目、Ｙ＝１１画素目と副走査方向に注目画素位置が進められるように構成され、副走査方向の最大値に達するまで処理が継続されることになる。
【００５０】
次に、係数設定処理部７０４は、位相情報変更処理部７０３から位相情報制御パラメータＬＣを、アドレス演算処理部７０２から位相情報ＰＩＸを受け取り、以下のように動作する。
【００５１】
図８は、注目画素と注目画素近傍の元画像上の画素を表した図である。図中、Ｘ（バツ）マークが注目画素で、○（マル）マークが元画像上の画素をそれぞれ示している。尚、本実施形態では、８×８個のフィルタを用いているため、注目画素近傍の元画像上の画素を８×８個だけ用いることになる。また、注目画素Ｘ（バツ）は、常に注目画素近傍の元画像上の画素の３≦ｉ＜４、３≦ｊ＜４内にくるように設定される。また、アドレス演算処理部７０２から出力される元画像の位置情報ＯＸ，ＯＹはｉ＝３、ｊ＝３の位置となるように設定される。
【００５２】
ここで、注目画素近傍の元画像上の画素と注目画素との距離を主走査、副走査独立に求める。図９に示すように、主走査方向に投影して、主走査方向の距離に着目する。ＡＸｉ（ｉは０から７の整数）をｉ番目の画素と注目画素との距離とすると、以下のようになる。
【００５３】
ＡＸ0＝３＋ＰＩＸ
ＡＸ1＝２＋ＰＩＸ
ＡＸ2＝１＋ＰＩＸ
ＡＸ3＝ＰＩＸ
ＡＸ4＝１−ＰＩＸ
ＡＸ5＝２−ＰＩＸ
ＡＸ6＝３−ＰＩＸ
ＡＸ7＝４−ＰＩＸ
尚、１画素間の距離は１として計算を行っており、０≦ＰＩＸ（ＰＩＹ）＜１とする。副走査方向にも同様に求められ、ＡＹ0〜ＡＹ7を算出する。
【００５４】
また、ＡＸ0〜ＡＸ7、ＡＹ0〜ＡＹ7の距離情報と位相情報制御パラメータＬＣから、主、副独立に主走査ｉ番目の係数Ｃi、副走査ｊ番目の係数Ｃjを求め、主走査ｉ番目、副走査ｊ番目の係数Ｃij＝Ｃi＊Ｃjとして演算することになるが、本実施形態の効果を説明するために双３次補間法を先に説明する。
【００５５】
ここで、フィルタの係数を求めるための演算式として双３次補間法（bi-cubic法）としてよく知られているｓｉｎｃ関数の３次多項式近似式を用いる。但し、フィルタの係数を求めるための一例であり、これに限るものではない。
【００５６】
双３次補間法は、係数Ｃ、注目画素からの距離をｄとすると、以下の式により表される。
【００５７】
0003950647.tif 000004
図１０は、双３次補間法の係数Ｃと距離ｄとの関係を示す図である。図１０に示す例では、本実施形態の距離情報ＡＸｉ又はＡＹｊがどのように配置されるかを△で示しており、ｉ（又はｊ）は△についている数字に対応し、０から７までの値を示している。距離ｄは、図９に示すＸを原点とし、原点を中心に１目盛りが１の距離となるように描かれており、距離であるために原点よりも左にあっても正の値をとる。具体的には、△３の位置は原点からＰＩの位置にあり、ＡＸ3（ＡＹ3）＝ＰＩとなる。また、△間の距離は１である。よって、ＡＸ0は△０の位置にあり、ＡＸ0＝３＋ＰＩである。図１０に描かれた曲線は距離ｄに応じた係数Ｃの値を示しており、ｉが２から５の場合、それぞれ係数が割り当てられ、０，１，６，７の場合、係数は０となる。即ち、双３次補間法では、常に４×４画素のフィルタが用いられている。
【００５８】
図１１は、ｓｉｎｃ関数の周波数特性を示す図である。双３次補間法で用いられる多項式近似式は、ｓｉｎｃ関数の近似であるため、図１１に示す周波数特性とは多少異なるが、説明の簡略化のため、図１１に示すものと同等であるとして説明する。ｓｉｎｃ関数は、図１１からもわかる通り、帯域制限フィルタである。制限される帯域は、元画像の周波数の±１／２（ナイキスト周波数）を越える周波数帯である。一般にナイキスト周波数を超える周波数帯をもつ画像は、解像できず、モアレの発生等により画質が劣化する。
【００５９】
例えば、元画像が６００ｄｐｉであるとすると、３００ｄｐｉを越える周波数成分を０とすることになる。縮小変倍時に、そのままこの演算式を用いた場合、元画像の周波数帯域を全て保存することになる。縮小変倍時に、元画像の周波数帯域を残すと、元画像に周期性のある画像が含まれている場合、モアレが発生し、画質劣化の原因となる。例えば、５０％縮小変倍を行った場合、２００ｄｐｉのスクリーン画像又は２００線の網点を用いた印刷物が元画像に含まれていると、みかけの周波数が４００ｄｐｉであるような振る舞いをする。そのため、解像限界の３００ｄｐｉを越えてしまい、モアレ縞による画質劣化が起こる。
【００６０】
そこで、本実施形態では、変倍率に応じて位相情報変更を行うことで、上述のモアレ縞による画質劣化を防ぐものである。
【００６１】
以下、変倍率に応じて位相情報を変更する本実施形態の処理を説明する。本来、距離ｄは注目画素からの距離であるので、ｄXi＝AXi（dYj＝AYj）となるが、位相制御パラメータＬＣを用いて次のように変更する。
【００６２】
ｄXi＝AXi／LC（dYj＝AYj／LC）
ＬＣは、変倍率に応じて変更される。例えば、上述したように、ＬＣ＝１００／ＲＰ（変倍率）とすると、ＬＣ＝２となる。
【００６３】
ＬＣ＝１の時、
ｄ＝AX0＝3.5  Ｃi＝0
ｄ＝AX1＝2.5  Ｃi＝0
ｄ＝AX2＝1.5  Ｃi＝-0.125
ｄ＝AX3＝0.5  Ｃi＝0.625
ｄ＝AX4＝0.5  Ｃi＝0.625
ｄ＝AX5＝1.5  Ｃi＝-0.125
ｄ＝AX6＝2.5  Ｃi＝0
ｄ＝AX7＝3.5  Ｃi＝0
ＬＣ＝２の時は、
ｄ＝AX0＝3.5/2＝1.75  Ｃi＝-0.047
ｄ＝AX1＝2.5/2＝1.25  Ｃi＝-0.141
ｄ＝AX2＝1.5/2＝0.75  Ｃi＝0.297
ｄ＝AX3＝0.5/2＝0.25  Ｃi＝0.891
ｄ＝AX4＝0.5/2＝0.25  Ｃi＝0.891
ｄ＝AX5＝1.5/2＝0.75  Ｃi＝0.297
ｄ＝AX6＝2.5/2＝1.25  Ｃi＝-0.141
ｄ＝AX7＝3.5/2＝1.75  Ｃi＝-0.047
となる。尚、説明の簡略化のため、係数の小数点は第４位で四捨五入している。ここで重要なことは、ＬＣ＝１の場合、ｉが２から５までの真ん中の４つの係数しか用いていない（図１０参照）が、ＬＣ＝２の場合、ｉが０から７まで全てに係数が割り当てられ、より低周波数の領域まで帯域制限されることである。
【００６４】
図１２は、ＬＣ＝２の場合の係数Ｃと距離ｄとの関係を示す図である。また、図１３はＬＣ＝２の場合のフィルタの周波数特性を模式的に示す図である。尚、実際の周波数特性としては、フィルタがｓｉｎｃ関数そのものではなく近似であること、有限個で打ち切られていることのために、このようにきれいな矩形とはならないが、意図する周波数特性という意味では近い特性となっている。図１３からもわかるように、ナイキスト周波数の半分の帯域まで制限することになり、上述したようなモアレ縞の発生による画質劣化を低減することが可能となる。
【００６５】
また、副走査方向も上述した主走査方向と同様にしてＣjを求め、結果として係数ＣijがＣi＊Ｃjとして演算される。
【００６６】
ここで、複写機などでリアルタイムにこれらの演算を行うためには、距離ｄから係数Ｃを演算するいくつかの浮動小数点演算を行う必要があるが、ゲート数も増えてしまい好ましくない。
【００６７】
そこで、本実施形態では、上述したような変倍処理をより簡単な演算、ハード構成、より小さい規模で実現している。即ち、係数は、位相情報制御パラメータと位相が決められた時点で決定できる。そのため、変倍率が指定され、位相情報制御パラメータを決めた時点で、取りうる位相値の全ての係数をＣＰＵなどの汎用の演算処理手段により予め演算し、各位相に対応する係数レジスタに設定しておき、画像データが処理部に入力され始めたら、注目画素の位相情報に対応した係数を選択して設定し、畳み込み演算が行われるように構成することで、係数決定の複雑な演算をリアルタイムで行うような動作を回避し、リアルタイム演算を容易に実現するものである。
【００６８】
係数を予め設定しておくためのレジスタの総数は、位相の個数×畳み込みする画素数分必要である。総数がハード化するに際して現実的な個数に収まるようにすることが必要である。畳み込みする画素数は８×８ならば、主、副共に８個、Ｎ×Ｍならば、主がＮ個、副がＭ個となる。位相の個数は、即ち、１画素当たりの分割数である。この分割数が少ないと、同じ位相になる範囲が広くなり、変倍処理の画質が劣化する。また多すぎると、レジスタの総数が増えてよりコストがかかる。
【００６９】
本実施形態では、上述のような点に鑑みて、１画素３２分割することで、画質とコストのバランスのとれた構成にしている。８×８で、３２分割であるので、主、副共に８×３２＝２５６個のレジスタを予め用意しておく。変倍率が設定されると、ＬＣの値を決定し、０から３１まで１／３２画素ずつずらした３２個の位相の８×１又は１×８の係数を変倍処理で画像が処理され始める前に演算して設定しておくことになる。
【００７０】
次に、位相情報制御パラメータＬＣが１．９９で、位相の分割数が３２の場合について説明する。尚、ＬＣの値は説明をし易いように値を選んでいるが、この限りではない。
【００７１】
以上、位相が０．５画素だった場合を説明したが、０．５画素＝１６／３２となり、位相が１６の場合と等価である。これを０から３１まで繰り返し、即ち、１／３２画素ずつ位相をずらしながら、それぞれの画素（ライン）と変倍後の注目画素位置である画素３からのずれ分である位相値との距離をＬＣで割ったものを（１）式の距離として、（１）式に基づき係数を求め、総和が１になるように正規化した後、１０２４倍して整数化したものが図１４に示す図である。
【００７２】
図１４において、縦の軸は位相０から３１を示しており、その時の係数を横に示している。位相０の時は、０画素目から７画素目まで、図１４に示す位相０の欄を参照し、以下の係数になることがわかる。
【００７３】
-63  -3  320  515  320  -3  -63  0
また、１番右の列は０画素目から７画素目までの係数の総和を示している。
【００７４】
図１４に示すように、例えば位相が５の場合の左から０番目とした時の１番目の係数は、−３６である。これは、まず変倍後の注目画素位置、３から５／３２画素右の位置から１番目の画素との距離を図１５に示すように求める。
【００７５】
ここで、２画素＋５／３２画素＝６９／３２画素である。これを位相情報制御パラメータであるＬＣ＝１．９９を用いて（１）式に用いる距離は、６９／３２／１．９９＝約１．０８４となる。（１）式で、距離ｄが１以上２未満なので、２番目の関係式を用いて、係数Ｃ＝約−０．０７０３を得る。この演算を１番目以外、つまり、０番目から７番目までの係数において繰り返し、総和が１となるように正規化した後、１０２４倍すると−３６が得られる。
【００７６】
ここで、畳み込み演算時に、畳み込みの係数の総和で割ることで、畳み込みに用いる元画像の画素値が全て同じ輝度（又は濃度）レベルであった時に同じ輝度レベルが出力されるのを保証しておく必要がある。ハード規模を考えると任意の整数で割り算するよりもビットシフトによる割り算で２のべき乗で割り算するのが好ましい。本実施形態では、２の１０乗、１０２４で正規化している。しかし、上述の演算では、整数化の際に生じる量子化誤差が発生し、１番右の列の総和をみると、１０２４とならないものがある。そこで、総和が１０２４にならない位相の係数については、以下のような操作を行う。
【００７７】
即ち、位相が０〜１５までは、０番目から７番目までの係数のうち、３番目の係数で総和が１０２４になるように調整する。１０２４から総和を引いたものを３番目に足し込む。位相が１７から３１の場合は、３番目よりも４番目のほうに近い位相であるので、４番目で同様の動作を行う。位相が１６の場合、ちょうど中心になるので、１０２４から総和を引いたものを２で割った値を３番目、４番目に足し込む。また、位相が１６の場合は、３番目と４番目、２番目と５番目といったように同じ係数が２つずつ対であるため、１０２４から総和を引いたものは常に偶数となり、上述した調整をすることで総和を１０２４に調整することが可能である。
【００７８】
これは、調整を行っていない図１４と調整を行った結果である図１６とを比較することで確認できる。即ち、図１４で位相１６の場合、総和が１０２２となり、１０２４に２だけ足りない。そこで、３番目、４番目に２／２＝１ずつ足しこむことで、量子化誤差を補正している。また、位相が１６の場合、０と７、１と６、２と５、３と４が全て同じ距離となるため、常に同じ係数が算出されており、誤差がでる場合は常に偶数となる。Ｎ×１フィルタであれば、位相０から１５はＮ／２番目の係数で調整し、位相１７から３１はＮ／２＋１番目の係数で調整し、位相１６はＮ／２及びＮ／２＋１で調整することになる。１×Ｍフィルタでも同様である。この操作を施した係数を示したのが図１６である。
【００７９】
図１６において、３番目、４番目の画素の係数で太文字で表したものが、調整対象画素である。
【００８０】
以上説明した実施形態では、画像変倍部６０２をハードにより構成した場合を説明したが、ソフトウェアにより処理することも可能である。
【００８１】
図１７は、本実施形態における画像変倍部の処理手順を示すフローチャートである。まず、ＣＰＵにより位相情報制御パラメータＬＣを画像に変倍処理を施す前に決定し（ステップＳ１０１）、そのＬＣに基づき図１６に示すように全ての位相における各画素(ライン)毎のフィルタ係数を変倍処理する前に予め演算し、Ｎ×１フィルタ処理モジュール、１×Ｍフィルタ処理モジュールがリアルタイムにアクセス可能なテーブルに予め記憶しておく（ステップＳ１０２）。その後、変倍処理中は変倍処理後の注目画素毎に出力される位相情報に応じて、フィルタ係数を変更しながらＮ×１フィルタ処理モジュールがＮ×１畳み込み演算を行い（ステップＳ１０３）、Ｎ×１畳み込み演算結果を正規化（ステップＳ１０４）後、Ｍライン分の中間データを出力し、１×Ｍフィルタ処理モジュールが、中間データを受け取り、設定されたフィルタ係数により１×Ｍ畳み込み演算を行い（ステップＳ１０５）、１×Ｍ畳み込み演算結果を正規化（ステップＳ１０６）後、変倍後の画像データとして出力する。
【００８２】
このように構成することで、変倍処理中は、係数を求めるための複雑な演算を要さないために、リアルタイム化の容易な構成で、かつ高画質な変倍処理が実現できる。
【００８３】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００８４】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されることは言うまでもない。
【００８５】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８６】
プログラムコードを供給するための記憶媒体としては、例えばフロッピーディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００８７】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８８】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８９】
【発明の効果】
以上説明したように、本発明によれば、より低周波数の領域まで帯域制限され、変倍時のモアレ縞発生による画質劣化を防いだ変倍処理を施すことが可能となり、フィルタ処理における複数のフィルタ係数を予め演算して記憶しておくことで、少ない演算量で変倍処理を行うことができる。
【図面の簡単な説明】
【図１】本実施形態における画像制御装置の構成を示すブロック図である。
【図２】本実施形態における画像入力装置を示す外観斜視図である。
【図３】本実施形態における画像出力装置を示す外観斜視図である。
【図４】図１に示すスキャナ画像処理部４００の構成を示す図である。
【図５】図１に示すプリンタ画像処理部５００の構成を示す図である。
【図６】図１に示す２値画像変倍処理部１３０の処理を説明するための簡単なブロック図である。
【図７】図６に示す画像変倍部６０２の詳細な構成を示すブロック図である。
【図８】注目画素と注目画素近傍の元画像上の画素を表した図である。
【図９】主走査方向の距離を求める処理を説明するための図である。
【図１０】双３次補間法の係数Ｃと距離ｄとの関係を示す図である。
【図１１】ｓｉｎｃ関数の周波数特性を示す図である。
【図１２】ＬＣ＝２の場合の係数Ｃと距離ｄとの関係を示す図である。
【図１３】ＬＣ＝２の場合のフィルタの周波数特性を模式的に示す図である。
【図１４】総和の調整を行っていない場合の位相に対する係数を示す図である。
【図１５】変倍後の注目画素位置３から５／３２画素右の位置から１番目の画素との距離を求める処理を説明するための図である。
【図１６】総和の調整を行った場合の位相に対する係数を示す図である。
【図１７】本実施形態における画像変倍部の処理手順を示すフローチャートである。
【図１】
0003950647.tif 000005
【図２】
0003950647.tif 000006
【図３】
0003950647.tif 000007
【図４】
0003950647.tif 000008
【図５】
0003950647.tif 000009
【図６】
0003950647.tif 000010
【図７】
0003950647.tif 000011
【図８】
0003950647.tif 000012
【図９】
0003950647.tif 000013
【図１０】
0003950647.tif 000014
【図１１】
0003950647.tif 000015
【図１２】
0003950647.tif 000016
【図１３】
0003950647.tif 000017
【図１４】
0003950647.tif 000018
【図１５】
0003950647.tif 000019
【図１６】
0003950647.tif 000020
【図１７】
0003950647.tif 000021