(57)【特許請求の範囲】
【請求項１】
画像データを分割して得られる複数のバンド領域であって、各バンド領域が該バンド領域に隣接するバンド領域と重複する部分を有する複数のバンド領域のそれぞれに対して画像処理を行うことによって、前記画像データに対して前記画像処理を行う画像処理装置であって、
前記画像データを構成する複数プレーンのそれぞれについて、該プレーンから、前記複数のバンド領域の何れかにそれぞれが含まれる複数の処理範囲の画像データを取得する取得手段と、
前記複数プレーンのそれぞれについて、前記取得手段が取得した該プレーンの前記複数の処理範囲の画像データに対して、前記画像処理を行う画像処理手段とを有し、
前記複数のバンド領域における前記複数の処理範囲の画像データの端の位置は、前記複数プレーンのうち少なくとも２つのプレーン間で互いに異なることを特徴とする画像処理装置。
【請求項２】
前記取得手段は、前記画像処理における主走査方向および副走査方向の少なくとも一方の方向において各プレーンの処理範囲の画像データに含まれる画素数が等しくなるように前記複数の処理範囲の画像データを取得することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記取得手段は、各プレーンにおいて、互いに隣接する処理範囲の画像データが互いに隣接するバンド領域に含まれるように、前記複数の処理範囲の画像データを取得することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記画像処理における注目画素に対する演算結果を保持する保持手段をさらに有し、
前記保持手段は、少なくとも前記バンド領域の短辺方向の画素数分の演算結果を保持可能であることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記画像処理は、前記注目画素に対する誤差拡散処理であり、
前記画像処理手段は、前記注目画素に対する量子化誤差を前記保持手段に保持することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記複数プレーンのそれぞれに対応した複数のセンサによって原稿を読み取ることによって前記画像データを得る読み取り手段をさらに有し、
前記取得手段は、前記複数プレーン間の前記端の位置の差分が前記複数のセンサの読み取り位置の差分と等しくなるように、前記複数の処理範囲の画像データを取得することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記画像処理手段は、前記複数の処理範囲の画像データに対する前記画像処理を並列に行うことを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記取得手段がアクセス可能であり、前記複数のバンド領域の画像データを保存する保持手段とを有し、
前記取得手段は、処理対象のプレーンについて、前記処理範囲を定義する開始高さおよび終了高さを示す読出し情報に基づいて、前記保持手段に保持されたバンド領域の画像データから、前記処理範囲の画像データを取得することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記保持手段は、前記画像データの主走査方向に読みだして前記バンド領域の画像データを保持し、
前記画像処理手段は、前記主走査方向と垂直な方向に走査して注目画素を決定し、該注目画素に対して順に画像処理することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
隣接するバンド領域において、各プレーンの処理範囲が連続するように、前記処理範囲が設定されていることを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記画像処理手段は、前記処理範囲の画像データにおける注目画素について、予め定められた近傍領域内で既に処理済みの画素における処理結果を参照して画像処理を行うことを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
画像データを分割して得られる複数のバンド領域であって、各バンド領域が該バンド領域に隣接するバンド領域と重複する部分を有する複数のバンド領域のそれぞれに対して画像処理を行うことによって、前記画像データに対して前記画像処理を行う画像処理方法であって、
取得手段が、前記画像データを構成する複数プレーンのそれぞれについて、該プレーンから、前記複数のバンド領域の何れかにそれぞれが含まれる複数の処理範囲の画像データを取得する取得ステップと、
画像処理手段が、前記複数プレーンのそれぞれについて、前記取得ステップで取得した該プレーンの前記複数の処理範囲の画像データに対して、前記画像処理を行う画像処理ステップとを有し、
前記複数のバンド領域における前記複数の処理範囲の画像データの端の位置は、前記複数プレーンのうち少なくとも２つのプレーン間で互いに異なることを特徴とする画像処理方法。
【請求項１３】
コンピュータを請求項１乃至１１のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを複数のバンド領域に分割して該バンド領域毎に局所画像処理を行う画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
デジタル画像データに基づく画像形成を行う際には、該画像データに対し、空間フィルタ処理などの局所（近傍）画像処理が施されることが一般的である。この局所画像処理とは、処理対象となる画素（以下、注目画素と称する）を含む空間フィルタ領域に含まれる全ての画素を用いて、何らかの演算を行なう画像処理である。
【０００３】
局所画像処理は、例えば図３に示すようなバンド単位の逐次処理として行われる。
【０００４】
ここで、画像データに対してエッジ強調処理やぼかし処理等の空間フィルタ処理を施す例を示す。例えば図３に示すように、デジタル画像データ３００に対して空間フィルタ処理を施す際に、デジタル画像データを領域ごとに分割し、別々の領域ごとに局所画像処理を行う技術が知られている（例えば、特許文献１参照）。かかる技術では、図３(a)〜(d)の３０１〜３０４に示すように、１枚のデジタル画像データ全体がその読み取り時（または出力時）の副走査方向で帯状（短冊状）に分割され、該分割された領域ごとに逐次、各種画像処理が行なわれる。以下、この分割された帯状の領域をバンド領域と呼び、バンド領域が展開される記憶領域をバンドメモリ、画像を分割する行為をバンド分割、またバンド領域に対する画像処理をバンド処理、と呼ぶ。バンドメモリはシステム上のどの記憶領域に確保されても良いが、ここでは説明を簡単にするために、バンドメモリがメインメモリ内に確保されるとして、以下説明する。
【０００５】
以下、一般的なバンド処理についてさらに説明する。まず、図３(a)に示す第１のバンド領域３０１を、メインメモリ上のバンドメモリに展開して画像処理を行なう。次に、図３(b)に示す第２のバンド領域３０２を第１のバンド領域３０１が展開されたバンドメモリに上書き展開して画像処理を行なう。さらに、図３(c)に示す第３のバンド領域３０３を第２のバンド領域３０２が展開されたバンドメモリに上書き展開して画像処理を行なう。最後に、図３(d)に示す第４のバンド領域３０４を第３のバンド領域３０３が展開されたバンドメモリに上書き展開して画像処理を行なう。図３(a)〜(d)から分かるように、バンド領域３０１〜３０４はその長辺方向のサイズ（長さ）は主走査方向幅であるため同じであるが、短辺方向のサイズ（高さ）については必ずしも同じとはならない。図３に示す例では、第１〜第３のバンド領域３０１〜３０３は同じ高さであるが、第４のバンド領域３０４はデジタル画像データ全体のうち第１〜第３のバンド領域に割り当てられなかった部分であるため、他のバンド領域と同じ高さとはならない。したがって、メインメモリ上にバンドメモリとして確保される記憶領域のサイズは、高さ方向のサイズが最も大きいバンド領域（図３の場合、第１〜第３のバンド領域３０１〜３０３）に応じて決定される。
【０００６】
上記従来の局所画像処理においては、注目画素に対してその近傍画素を参照した処理を行う。したがって、各バンド領域間で隙間なく確実に画像処理を行うために、各バンド領域が、夫々隣接するバンド領域との境界においてその一部が互いに重なり合う（オーバラップする）ように工夫されている。
【０００７】
また、各バンド領域を図３(e)に示すように、その長辺方向を長さ方向、短辺方向を高さ方向として、長さ方向×高さ方向のサイズで表現するとする。この場合、図３(a)〜(d)に示すバンド領域の長さは、デジタル画像データの主走査方向の幅となり、バンド高さは任意の値となる。
【０００８】
また、各バンド領域における画素の走査を、該バンド領域の長さ方向でなく、高さ方向に行うように制御することも可能である。このような高さ方向での走査を行うことによって、局所画像処理に必要となる処理済み画素を保持する遅延メモリの容量を、各バンド領域の長さよりも小さい高さのサイズで規定することができ、省メモリ化が実現される（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第6587158号明細書
【特許文献２】特開2006-139606号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記従来の空間フィルタ処理等の局所画像処理とバンド処理とを併用する場合、バンド領域をオーバラップさせるだけでは対応できない局所画像処理も多く存在し、その一例として誤差拡散処理が挙げられる。誤差拡散処理とは、多階調デジタル画像データを例えば２値等のより少ない階調のデジタル画像データに変換するための処理であり、擬似中間色再現技術の一種である。具体的には、注目画素を閾値に基づいて量子化代表値に量子化し、その際に発生した注目画素と量子化代表値との差である量子化誤差を、注目画素の近傍画素の階調値に拡散し、これら近傍画素の各階調値を逐次的に擬似中間調データに変換していく。
【００１１】
このように、誤差拡散処理の特徴は量子化誤差を近傍画素に伝搬することであるが、上述したバンド処理と誤差拡散処理とを併用すると、バンド境界にて量子化誤差が正しく伝搬されず、誤差拡散処理後の擬似中間調データに不連続な画質劣化が発生してしまう。また誤差拡散処理では、量子化誤差が十分に蓄積されるまでドットが形成されない「掃き寄せ」と呼ばれる現象が発生するが、バンド境界でこの「掃き寄せ」が起きやすく、ドットが形成されない隙間が不連続な線のように視認されるという問題も発生する。
【００１２】
ここで図１０を用いて、誤差拡散処理とバンド処理とを併用した際に発生する不具合例を説明する。図１０(a)に示すバンド領域１０００に誤差拡散処理を施した後に、図１０(b)に示すバンド領域１０１０に誤差拡散処理を施す場合について考える。その結果、バンド領域１０００とバンド領域１０１０との境界に上記掃き寄せが発生し、図１０(c)に一点鎖線で示すように、水平方向に連続してドットが生成されない隙間が生じてしまう。
【００１３】
また近年では、画像処理装置における高画質化を実現するために、処理対象データの多色化や高解像化が進んでおり、それに応じて画像処理におけるデータ処理量も増大している。この増大したデータ処理量を、できるだけ低コストにて処理することが望ましいのはもちろんであり、例えば使用メモリの容量を抑制することが要求される。
【００１４】
本発明は上述した問題を解決するためになされたものであり、以下の機能を有する画像処理装置および画像処理方法を提供することを目的とする。すなわち、画像データを分割したバンド領域毎に局所画像処理を行う際に、回路構成の小規模化を実現しつつ、バンド境界における画質劣化を抑制する。
【課題を解決するための手段】
【００１５】
上記目的を達成するための一手段として、本発明の画像処理装置は以下の構成を備える。
【００１６】
すなわち、画像データを分割して得られる複数のバンド領域であって、各バンド領域が該バンド領域に隣接するバンド領域と重複する部分を有する複数のバンド領域のそれぞれに対して画像処理を行うことによって、前記画像データに対して前記画像処理を行う画像処理装置であって、前記画像データを構成する複数プレーンのそれぞれについて、該プレーンから、前記複数のバンド領域の何れかにそれぞれが含まれる複数の処理範囲の画像データを取得する取得手段と、前記複数プレーンのそれぞれについて、前記取得手段が取得した該プレーンの前記複数の処理範囲の画像データに対して、前記画像処理を行う画像処理手段とを有し、前記複数のバンド領域における前記複数の処理範囲の画像データの端の位置は、前記複数プレーンのうち少なくとも２つのプレーン間で互いに異なることを特徴とする。
【発明の効果】
【００１７】
上記構成からなる本発明によれば、画像データを分割したバンド領域毎に局所画像処理を行う際に、回路構成の小規模化を実現しつつ、バンド境界における画質劣化を抑制することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】第１実施形態における画像処理装置の全体構成を示すブロック図、
【図２】第１実施形態における画像処理部の構成例を示すブロック図、
【図３】一般的なバンド処理例を示す図、
【図４】第１実施形態における画像データ構造およびその格納例を示す図、
【図５】第１実施形態におけるバンド高さの設定例を示す図、
【図６】第１実施形態における画像データの読み込み動作例を示す図、
【図７】第１実施形態における誤差拡散処理時の遅延メモリの使用例を示す図、
【図８】第２実施形態における読み取りセンサ構成とバンド領域との関係を示す図、
【図９】第３実施形態における画像データ構造を示す図、
【図１０】誤差拡散処理とバンド処理とを併用した際の不具合例を示す図、
【図１１】画像データの主走査方向でバンド領域を分割した例を示す図、
【図１２】第１実施形態における誤差拡散処理の係数および回路構成を示す図、である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００２０】
＜第１実施形態＞
●装置構成
図１は、本実施形態における画像処理装置の全体構成の一例を示すブロック図である。図１において、１００はＣＰＵ回路部であり、演算制御用のＣＰＵ１０２、固定データやプログラムを格納するＲＯＭ１０４、データの一時保存やプログラムのロードに使用されるＲＡＭ１０６、及び外部記憶装置１０８等を備える。ＣＰＵ回路部１００は、画像入力部１３０、画像処理部１５０、及び画像出力部１６０等を制御し、本実施形態の画像処理装置のシーケンスを統括的に制御する。なお、外部記憶装置１０８は、本実施形態の画像処理装置が使用するパラメータやプログラムや補正データを記憶するディスク等の記憶媒体であり、ＲＡＭ１０６のデータやプログラム等は、外部記憶装置１０８からロードされる構成としても良い。
【００２１】
画像入力部１３０としては、画像データを入力可能な構成であれば適用可能であり、例えばケーブルを介して撮像画像を入力する構成や、インターネット等を介して画像データをダウンロードする構成等が考えられる。以下では画像入力部１３０として、原稿１１０を読み取ってその画像データを生成する画像読み取り部１２０を例として説明する。画像読み取り部１２０は、レンズ１２４、ＣＣＤセンサ１２６、及びアナログ信号処理部１２７等を有する。画像読み取り部１２０において、原稿１１０の画像情報がレンズ１２４を介しＣＣＤセンサ１２６に結像され、Ｒ(Red)，Ｇ(Green)，Ｂ(Blue)のアナログ電気信号に変換される。アナログ電気信号に変換された画像情報は、アナログ信号処理部１２７に入力され、Ｒ，Ｇ，Ｂの各色毎に補正等が施された後に、アナログ／デジタル変換（Ａ／Ｄ変換）される。これにより、デジタル化されたフルカラー信号（デジタル画像信号という）が生成される。
【００２２】
画像読み取り部１２０で生成されたデジタル画像信号は、予め動作が設定されているＤＭＡＣ(Direct Memory Access Controller)１９２により、共有バス１９０を介してＣＰＵ回路部１００のＲＡＭ１０６に格納される。なお、ＤＭＡＣ１９２はＣＰＵ１０２によって制御される。
【００２３】
次にＣＰＵ１０２はＤＭＡＣ１９４を制御することにより、ＲＡＭ１０６に格納されたデジタル画像信号を読み出して画像処理部１５０に入力する。画像処理部１５０は、入力されたデジタル画像信号に対し、例えばスキャナなどのセンサ・デバイスの読み取り素子の個体差の補正や入力ガンマ補正などの色補正を行い、読み取り画像を正規化して一定水準のデジタル画像信号を作成する。そして該処理後のデジタル画像信号を、予め書き込み動作の設定がなされたＤＭＡＣ１９６により、ＲＡＭ１０６に再度、格納させる。
【００２４】
画像処理部１５０はまた、入力されたデジタル画像信号に対し、入力色補正処理、空間フィルタ処理、色空間変換、濃度補正処理、及び中間調処理などの印刷のための各種画像処理を施して、印刷可能なデジタル画像信号を作成する。作成された印刷可能なデジタル画像信号は、やはりＤＭＡＣ１９６によってＲＡＭ１０６に格納される。するとＣＰＵ１０２はＤＭＡＣ１９８を制御して、ＲＡＭ１０６に格納された画像処理済みのデジタル画像信号を読み出して画像印刷部１７０へ出力する。この画像印刷部１７０としては、例えばインクジェットヘッドやサーマルヘッド等を使用したラスタプロッタ等の印刷出力部（図示せず）を備えたプリンタとしてて構成され、入力されたデジタル画像信号に基づく画像を記録用紙上に形成する。
【００２５】
●画像データ構造
図１の画像読み取り部１２０により読み取られた画像は、上述したように一時的にＲＡＭ１０６に格納されている。一般に、ＲＡＭ１０６は安価なＤＲＡＭで構成されることが多く、上述したようにＤＭＡＣを介してデータの読み書きを行うためには、ＤＲＡＭが性能を落とさずに読み書きできるような単位で、データへのアクセスを行うことが望ましい。ここで図４を用いて、ＲＡＭ１０６におけるデジタル画像信号のデータ構造およびその格納方法について説明する。
【００２６】
図４において、４００はＲＡＭ１０６に格納されるデジタル画像信号のデータ構造を示し、図中のIMG_AREA_STR_ADDRからIMG_AREA_END_ADDRまでが、画像処理における１処理単位としてのデータを格納する領域である。図４に示す例では、この処理単位内の領域に、S0_IMGからS3_IMGまでの４色分のデータが格納されている。この４色のデータは、画像読み取り部１２０で読み取られた画像に対して色空間変換や濃度補正処理を施すことによって、第１色Ｋ(Black)、第２色Ｍ(Magenta)、第３色Ｃ(Cyan)、第４色Ｙ(Yellow)用に変換されたものである。ＲＡＭ１０６には、これら第１色〜第４色のデータが面順次で格納されている。ＤＲＡＭの性能を落とさずにデータへのアクセスができるように、色ごとに格納されるデータの容量の最小単位（アクセス単位）は、図中４０８に示すように３２ビット×８ワードの３２バイトとなっている。したがって、S0_IMGからS3_IMGまでのデータの格納容量は３２バイトの整数倍となる。
【００２７】
次に、各色のデータ構造について詳しく説明する。４５０は、S0_IMG４２０の領域に格納された第１色Ｋ(Black)の画像データ（以下、Ｋデータ）を示している。４６０は、Ｋデータ４５０内における上記３２バイトのアクセス単位データであり、この例ではＫデータ４５０内に該アクセス単位データ４６０がＭ×Ｎ個存在している。アクセス単位データ４６０内には４７０に示すように８個のデータがパッキングされており、その１データには、４８０に示すように８ビットのＫ(Black)のデータが４つ（４画素）パッキングされている。したがって、図中太枠で示すＫデータ４５０は、８×４×Ｍ×Ｎ画素分のサイズとなる。
【００２８】
ＣＰＵ１０２がＤＭＡＣ１９４を起動することで、ＲＡＭ１０６から上述したデータ構造を持つデジタル画像信号が読み出され、画像処理部１５０に入力される。
【００２９】
ここで図２に、本実施形態の画像処理部１５０が有する主要な回路構成の一例である、画像処理回路部２００の構成を示す。まず処理画像入力回路２２０は、バス２０５を介して各種データを受け取るが、図４に示したパッキング済みのデジタル画像信号を受け取った場合、これを画素単位のデジタル画像信号にアンパックする。そして、該アンパック後のデジタル画像信号は、後段の画像処理回路(1)２３０〜画像処理回路(P)２８０に送られ、各種補正処理もしくは画像処理が施される。そして処理画像出力回路２９０にて、図４に示す３２バイト単位のデータに再度パッキングしたデジタル画像信号を作成し、ＤＭＡＣ１９６を介してＲＡＭ１０６に補正処理（画像処理）済みのデジタル画像信号として書き戻す。２３０〜２８０の画像処理回路(1)〜(P)では、そのいずれかにおいて入力色補正処理、空間フィルタ処理、色空間変換、濃度補正処理、及び中間調処理、等の画像処理をそれぞれ行っている。これら２３０〜２８０の各画像処理回路(1)〜(P)では、例えば１色（１プレーン）に対する処理を行うとしても良いし、ＲＧＢやＣＭＹＫのように数色をセットとした処理を行うとしても良い。
【００３０】
●バンド高さ設定処理
本実施形態では、画像データを一定方向に分割して得られた複数のバンド領域に対し、該バンド領域毎に逐次的に画像処理を行う。このとき、バンド処理に特化した画像処理を、デジタル画像データの座標系（主走査方向×副走査方向）とは異なる、バンド領域座標系によって行うことを特徴とする。バンド領域座標系とは、上記図３(e)に示したような、バンド領域の長辺方向×短辺方向に相当する、長さ方向×高さ方向によって表さる。上述したように、バンド領域の長さ方向は画像データの主走査方向または副走査方向のサイズに相当するが、その高さ方向については分割サイズに応じて任意に設定可能である。なお詳細は後述するが、本実施形態におけるバンド領域の高さ方向のサイズは、長さ方向のサイズよりも小さいことが望ましい。
【００３１】
以下、本実施形態のバンド領域座標系におけるバンド高さの設定処理について、図５を用いて説明する。本実施形態では、上述したような誤差拡散処理とバンド処理との併用による画質劣化を低減するために、誤差拡散処理を施すバンド領域内の処理領域を色毎（プレーン毎）に変更して、バンド毎の処理境界を色毎に異ならせることを特徴とする。
【００３２】
図５においては、画像データの副走査方向でバンド領域を分割し、図５(a)に示すバンド領域５００を処理した後、図５(b)に示すバンド領域５１０、次に図５(c)に示すバンド領域５２０、と一連のバンド処理を行う例を示している。図５(d)に、この一連のバンド処理における、図５(b)に示すバンド領域５１０に対するバンド高さの設定例を示す。図５(d)において、第１色データ５１２はＫのプレーンであり、同様に第２色データ５１４はＭ、第３色データ５１６はＣ、第４色データはＹ、の各色のプレーンを示す。図５(d)によれば、バンド領域５１０内の第１色データ５１２から第４色データ５１８において、「開始高さ」から「終了高さ」によって示される誤差拡散処理の処理範囲が、それぞれ異なるように設定されていることが分かる。
【００３３】
図５(d)に示すようにバンド領域５１０においては、隣接するバンド領域と重複する重複領域（以下、オーバラップ領域）が、第１色データ５１２から第４色データ５１８の全適用範囲（図中斜線で囲まれた範囲）の境界を含むように、その高さが設定される。以下、バンド領域の上端および下端それぞれのオーバラップ領域における画素数を、上端オーバラップ画素数および下端オーバラップ画素数と称する。
【００３４】
ここで図５(e)に、一連の複数バンド処理における、各バンド領域とその各色に対する処理範囲および処理境界の関係を示す。同図によれば、それぞれのバンド領域はその前後のバンド領域とオーバラップし、そのオーバラップ領域は、当該バンド内の各色の処理範囲に応じて定まることが分かる。すなわち、バンド領域内の上端部および下端部のそれぞれにおいて、全ての色のバンド境界を含む領域が、上端オーバラップ画素数および下端オーバラップ画素数で示されるオーバラップ領域として設定される。
【００３５】
これらオーバラップ領域のデータは、図５(a)〜(c)からも明らかなようにＲＡＭ１０６から重複して取得され、画像処理回路部２００に入力される。
【００３６】
なお本実施形態で設定されるバンド領域間のオーバラップ領域（オーバラップ画素数）は、連続する上下のバンド領域間において各色の処理範囲が連続するように補完できれば、どのような大きさであっても構わない。
【００３７】
本実施形態では、以上のように各バンド領域間でオーバラップ領域を設けることにより、各バンド内の注目画素に対して近傍画素を参照した局所的な画像処理（誤差拡散処理）を、各バンド領域間で隙間なく確実に行う。このとき、各バンド内における色毎の処理範囲を異ならせる、すなわち実際に処理対象となるバンド高さを色毎に異ならせることを特徴とする。これにより、バンド境界において発生しがちな、誤差伝播の不連続性や掃き寄せ等による画質劣化が色ごとに異なる位置で発生するため、画像全体としてこれら画質劣化が視認されにくくなる。
【００３８】
なお、画像データを構成する複数色（複数プレーン）のうちの少なくとも２色間（２プレーン間）について、バンド領域内での処理範囲が異なるように設定すれば、バンド境界で視認される画質劣化を低減することができる。
【００３９】
●画像データの読み込み処理
以下、上述した形態からなる本実施形態のデジタル画像データを、ＲＡＭ１０６から処理画像入力回路２２０に読み込む処理について、図６を用いて説明する。図６(a)において、点線６０５で囲まれた部分が、ＲＡＭ１０６に格納されているデジタル画像データを模式的に示している。点線６０５内において、６００はデジタル画像データの全体を示しており、該全体データ６００から、上記図５で説明したように設定されたバンド高さからなるバンド領域６１０を抜き出して、画像処理を施すとする。画像処理対象となるバンド領域６１０は、その右側に６２０〜６４０で示すような構成からなる。すなわち、バンド領域６２０（６１０）は、バンド領域座標系で高さＢdhが１６ライン（１６画素）であり、長さＢdlが６３０〜６４０に示すように８×４×Ｍ画素である。なお、バンド領域６２０において、６３０〜６４０が後述するアクセス単位データ(1)〜(M)を示し、それぞれのサイズは１６ライン×（８×４）画素である。
【００４０】
このバンド領域６１０をＲＡＭ１０６から読み出す際には、まず、点線６０５の下部に示すＣＰＵ６８０が、ＤＭＡＣ６９０に対して共有バス６８５を介して、ＲＡＭ１０６からのバンド領域６１０の読み出し情報を設定する。なお、ＣＰＵ６８０は図１に示すＣＰＵ１０２に対応し、ＤＭＡＣ６９０は同じくＤＭＡＣ１９４に対応する。ここでＤＭＡＣ６９０に設定される読み出し情報としては、ＲＡＭ１０６内におけるバンド領域６１０の先頭アドレスと、３２バイト単位のデータを連続何回読み出すかを示す連続読み出し量、およびインクリメント・アドレスと繰り返し回数、の各情報がある。図６(a)に示す例では、連続読み出し量は１回（３２バイト）であり、インクリメント・アドレスは１ラインのデータ量である３２バイト×Ｍ、繰り返し数は１６回、である。
【００４１】
また、図６(a)に示すようにＤＭＡＣ６９０と処理画像入力回路６７０（図２に示す処理画像入力回路２２０に対応）の間には、両モジュールからデータ・アクセス可能な共有バッファ６６０が存在する。そこでＣＰＵ６８０は共有バス６８５を介してＤＭＡＣ６９０に対し、取得データの書き込み先である共有バッファ６６０の書き込み先頭アドレスも指示する。図６(a)に示す例では、共有バッファ６６０内の領域６６２に読み込みデータを一時保存するため、共有バッファ６６０に対する書き込み先頭アドレスは、領域６６２の先頭アドレスS0_BUF_STR_ADDRとなる。
【００４２】
ＤＭＡＣ６９０はＣＰＵ６８０からの指示を受けて、ＲＡＭ１０６に保存された画像データのうちの１色について、バンド領域６２０内の６３０〜６４０に示すアクセス単位データ(1)〜(M)のいずれかを読み出す。ここで読み出されたアクセス単位データを６５０に示す。ＤＭＡＣ６９０はその後、取得したデータ６５０を、共有バス６９４を介して共有バッファ６６０の領域６６２に格納した後、ＣＰＵ６８０へ割り込み信号６９２によって転送終了を通知する。
【００４３】
次にＣＰＵ６８０は、共有バス６８８を介して処理画像入力回路６７０に対し、共有バッファ６６０の読み出し情報を設定して起動する。ここで設定される読み出し情報としては、後述するバンド領域の高さ、該バンド領域における処理色の開始高さおよび終了高さ、画像データ・フォーマット、共有バッファの読み出し先頭アドレスS0_BUF_STR_ADDR、などの各情報である。
【００４４】
処理画像入力回路６７０は、共有バッファ６６０に対して、チップセレクト信号、アドレス信号などの制御信号６７２を介してリード・アクセスすることで、リード・データ６７４を取得する。そして得られたリード・データ６７４から１画素単位の１色の画素データ（画素値）を選び出し、画像処理回路部２００の内部バス６７６（図２に示す内部バス２２５に対応）に画素データを出力する。
【００４５】
以上のように本実施形態では、バンド領域の長さ方向に対して垂直に画素が走査されていくことで、注目画素が逐次決定される。一般に、バンド領域の長さ方向は、画像データの読み取り時（または出力時）の主走査方向に一致する。したがって、本実施形態におけるバンド内走査方向は、読み取り時の主走査方向（バンド領域の長辺方向）に対して垂直な、読み取り時の副走査方向（バンド領域の短辺方向。以下、高さ方向）である。このように、バンド領域の読み取り時の主走査方向に対して垂直な方向でバンド内走査を行うことを、以下、クロスバンド処理と称する。
【００４６】
なお、共有バッファ６６０は、図６(b)の６６５に示すように、２つ以上のバッファ６６６と６６７で構成しても良い。図６(a)に示す例では、ＤＭＡＣ６９０と処理画像入力回路６７０で１つのバッファを共有しているため、時分割で動作を行う必要があるが、図６(b)に示すような複数バッファ構成にすることで、処理の高速化が望める。すなわち、処理画像入力回路６７０が共有バッファ６６７から画素データを取得をしている間に、ＤＭＡＣ６９０は共有バッファ６６６にＲＡＭ１０６からのデータを転送できるため、ＤＭＡＣ６９０と処理画像入力回路６７０の処理を並列化することができる。
【００４７】
デジタル画像データのバンド領域６２０（６１０）に対する画像処理を行う際には、バンド領域６２０内の６３０〜６４０に示すアクセス単位データ(1)〜(M)のそれぞれについて、図６(a)の下部に示したＤＭＡＣ６９０による処理を繰り返せば良い。さらに、第１色から第４色まで、同様の処理を繰り返せば良い。
【００４８】
●誤差拡散処理
以下、本実施形態における誤差拡散処理について詳細に説明する。
【００４９】
図１２(a)に、本実施形態の誤差拡散処理に用いる誤差拡散係数の一例を示す。すなわち図１２(a)は、＊で示す注目画素が近傍領域内の画素に拡散する誤差分布を示す。また図１２(b)に、上記図１２(a)に示す誤差拡散係数を用いて誤差拡散処理を行った場合に、注目画素＊に対して近傍画素から拡散される誤差を算出する際に用いられるフィルタを示す。図１２(b)に示すフィルタは、図１２(a)に示す誤差拡散係数に対して点対称の形状となる。図１２(c)は、注目画素をｅとした場合に、該注目画素ｅに対して誤差拡散処理を実行する際に参照される画素の位置関係をａ〜ｄの記号で示したものであり、すなわち、注目画素ｅの処理時にａ〜ｄ位置の画素の誤差を参照する必要がある旨が示されている。
【００５０】
図１２(d)に、本実施形態における誤差拡散回路の構成例を示す。なお、この誤差拡散処理回路は上述したように、画像処理回路部２００内における２３０〜２８０の画像処理回路(1)〜(P)のいずれかである。
【００５１】
図１２(d)は、注目画素ｅが入力された状態を示しており、この注目画素ｅを処理するためには、上述したａ〜ｄの画素位置を処理した際の演算結果として得られる量子化誤差ｅa〜ｅdが必要である。ここで、ａ，ｂ，ｃの画素位置の量子化誤差ｅa，ｅb，ｅcについては、遅延メモリ７４０に既に記憶されている。また、注目画素ｅの直前に処理された画素位置ｄの量子化誤差ｅdは、遅延レジスタ７４６に既に記憶されている。量子化誤差ｅa，ｅb，ｅcは遅延メモリ７４０から遅延回路７４４を介して取り出されて、積和演算器７５５に入力される。加えて、量子化誤差ｅdも遅延レジスタ７４６から積和演算器７５５に入力される。また、誤差拡散係数レジスタ７５０に記憶されている、図１２(b)に示した４種類の誤差拡散係数も積和演算器７５５に入力される。
【００５２】
積和演算器７５５では、量子化誤差ｅa〜ｅdのそれぞれに対して、対応する誤差拡散係数による重み付けを行い、該重み付け後の値と注目画素値ｅとの和を、積和演算結果７５８として出力する。量子化器７６０は、積和演算器７５５からの積和演算結果７５８を、所定の閾値に基づいて所定の量子化代表値に量子化して、量子化結果７６２を出力する。逆量子化器７７０は、量子化器７６０からの量子化結果７６２を逆量子化して量子化代表値に戻し、これを逆量子化結果７７２として出力する。減算器７８０では、積和演算器７５５から出力された積和演算結果７５８と、逆量子化器７７０から出力された逆量子化結果７７２との差を算出し、量子化誤差ｅeとして出力する。
【００５３】
減算器７８０から出力された量子化誤差ｅeは、遅延レジスタ７４６に記憶され、次の画素を処理する際に用いられる。また、注目画素ｅを処理するために用いられた量子化誤差ｅdは、遅延回路７４４を介して遅延メモリ７４０に記憶され、バンド領域の長さ方向の次ラインの画素を処理する際に用いられる。
【００５４】
図７は、図１２(d)に示す誤差拡散回路によって誤差拡散処理が行われる際に、遅延メモリ７４０に量子化誤差が格納される様子を示す図である。本実施形態においてはクロスバンド処理を行うため、バンド領域５１０を処理する際の画素の走査方向は、図７に矢印７１０で示すように、バンド領域の長さ方向に対して垂直方向（高さ方向）である。バンド領域５１０において、まず左上の画素を注目画素ｅとして走査を開始し、高さ方向に１画素列分の走査を行って注目画素ｅを決定していく。そして、該画素列における下端の画素の処理が終了すると、注目画素ｅをバンド領域の長さ方向に１画素遷移し、バンド領域５１０における新たな画素列の上端の画素から下端の画素へ高さ方向の走査を行っていく。このような高さ方向への走査を、バンド領域の全ての画素に対して処理が終了するまで繰り返す。
【００５５】
図７は、図５(d)に示す第１色データ５１２に対する誤差拡散処理において、その走査時における注目画素ｅと、該注目画素ｅの処理時に遅延メモリ７４０に保持されている画素位置との関係を示している。上述したように本実施形態ではクロスバンド処理を行うため、図７において注目画素ｅはバンド領域の左上から高さ方向に順次遷移し、注目画素ｅがバンド領域の上端に位置する場合、中央に位置する場合、下端に位置する場合のそれぞれの例を示している。図７によれば、遅延メモリ７４０には図中斜線部で示されるように、注目画素ｅに対する走査の一つ前の走査によって得られた量子化誤差と、当該走査中に得られた量子化誤差とが保持されている。なお遅延メモリ７４０において、一つ前の走査によって得られた量子化誤差は、現在の走査によって選られた量子化誤差によって順次置き換えられる。
【００５６】
図７によれば、遅延メモリ７４０が量子化誤差を保持すべき画素数が、バンド高さに依存することが分かる。言い換えれば遅延メモリ７４０は少なくとも、バンド高さに相当する画素数分の演算結果を保持可能であれば良い。バンド領域の短辺方向に相当するバンド高さは、長辺方向、すなわち一般に画像全体が形成される記録用紙の幅に相当するバンド長さよりも小さいため、遅延メモリ７４０が保持すべき画素数を削減することができる。したがって、バンド高さ方向での走査を行う本実施形態の誤差拡散処理においては、バンド長さ方向での走査を行う場合と比べて、誤差拡散回路における遅延メモリ７４０の容量を削減でき、省メモリ化が実現される。
【００５７】
なお、遅延メモリ７４０の容量は、誤差拡散処理に用いられるフィルタ形状によって変動する。すなわち遅延メモリ７４０としては、フィルタにおける注目画素の走査ラインよりも前に走査される走査ライン数と、バンド高さ相当の画素数とを乗じた画素数分の演算結果を保持可能な容量が必要である。
【００５８】
なお、実際に誤差拡散処理を施す範囲としては、第１色データ５１２における適用領域の開始高さから終了高さまでで良いが、図７ではバンド領域全体に対して誤差拡散処理を施す例を示している。ただしこの場合、誤差拡散処理結果をＲＡＭ１０６に書き出す際には、図７に示す第１色データ５１２の開始高さから終了高さまでの範囲の結果を書き出す。
【００５９】
以上説明したように本実施形態によれば、誤差拡散処理とバンド処理とを併用した場合に生じる画質劣化を、色（プレーン）毎に処理境界を異ならせることによって低減することができる。また、誤差拡散処理時のバンド内走査をバンド長さ方向ではなくバンド高さ方向において行うことによって、保持すべき量子化誤差数（画素数）を低減し、遅延メモリの低容量化による回路規模の削減が達成できる。
【００６０】
なお、本実施形態では誤差拡散処理とバンド処理とを併用する例について説明したが、空間フィルタ処理等の局所（近傍）画像処理とバンド処理とを併用する場合であれば、本発明は適用可能である。
【００６１】
＜第２実施形態＞
以下、本発明に係る第２実施形態について説明する。なお、第２実施形態における画像処理装置の構成は上述した第１実施形態と同様であるため、説明を省略する。
【００６２】
上述した第１実施形態においては、誤差拡散処理とバンド処理とを併用する際に、バンド領域内で色（プレーン）毎の処理範囲を異ならせることで、該併用による画質劣化を低減する例を示した。しかしながら、上記誤差拡散処理に限らず、スキャナなどのセンサ・デバイスで読み取った画像に対する補正処理をバンド処理と併用する場合にも、やはり画質劣化が発生する。これは、一般にセンサ・デバイスにおいては、各色（Ｒ，Ｇ，Ｂ）に対応するセンサの位置関係が決まっているため、各色に対応して読み取ったデジタル画像データにずれが生じてしまうことに起因する。第２実施形態においては、センサ・デバイスで読み取った色毎の画像データに対してＭＴＦ補正等の画像処理を施す際にも、やはりバンド領域内で色（プレーン）毎の処理範囲を異ならせることによって、好適な画像処理結果を得る例を示す。
【００６３】
図８(a)は、紙面８００に対して、スキャナ８１０が読み取り動作を行っている状態を示している。ここでスキャナ８１０は、紙面８００の主走査方向幅（紙幅）よりも長いライン形状を有し、一度に１ラインの画像データを読み取ることが可能である。したがって、紙面８００の副走査方向にスキャナ８１０が走査する、もしくは紙面８００が紙送りされることで、紙面８００全体の画像を読み取ることができる。
【００６４】
スキャナ８１０の構成をさらに説明するために、図８(b)に、図８(a)における断面８０５の拡大図を示す。図８(b)によれば、スキャナ８１０は３本のライン形状のセンサ８１２、８１４、８１６で構成されており、各々のセンサはそれぞれ、第１色、第２色、第３色に対応する特定波長の感度を有し、それぞれが各色（プレーン）の画像データを読み取る。スキャナ８１０を構成する各センサ８１２、８１４、８１６は物理的に同じ位置に配置することはできないため、ある時刻における各センサ（色毎）の読み取り位置には、図中に読み取り位置ズレ８２０として示されるように、常に数画素程度のズレがある。したがって、ある時刻からある時刻までのバンド領域の読み取り画像データについて補正処理を行う場合、このズレ量を考慮する必要がある。
【００６５】
そこで第２実施形態においては色毎の読み取り位置ズレ８２０の影響を払拭すべく、バンド領域の高さを設定する。図８(c)に、第２実施形態におけるバンド領域と処理領域の関係を示す。同図によれば、各バンド領域における色毎の処理範囲が、読み取り位置ズレ８２０と同量だけズレるように設定されていることが分かる。なお、各バンド領域は、上述した第１実施形態と同様にオーバラップ領域を有し、図５(e)を用いて説明したようにオーバラップ領域は、当該バンド内の各色の処理範囲に応じて定まる。すなわち第２実施形態によれば、上端オーバラップ画素数および下端オーバラップ画素数、各色（プレーン）毎の処理範囲が、上述したスキャナ８１０における色毎の読み取り位置ズレ８２０に応じて決定される。
【００６６】
以上のように読み取り画像データにおけるバンド領域の高さが設定されると、以降は上述した第１実施形態と同様に、該読み取り画像データに対してＭＴＦ補正等の画像補正処理をバンド処理によって行うことができる。このとき、スキャナ８１０における各色の読み取り位置ズレ８２０は、バンド領域のオーバラップにより吸収されるため、適切な処理結果が得られる。
【００６７】
以上説明したように第２実施形態によれば、色（プレーン）毎に、センサ・デバイスの読み取り位置にズレがある場合に、該位置ズレ量に応じてバンド領域の高さを設定する。これにより、上述した第１実施形態と同様にバンド処理による遅延メモリの省メモリ化を実現しつつ、適切な補正処理をバンド処理によって実現することができる。
【００６８】
＜変形例＞
上述した第１実施形態においては、ＲＡＭ１０６に格納されるデジタル画像信号が、図４に示すような面順次のデータ構造からなる例を示したが、これが点順次のデータ構造であっても、本発明は適用可能である。ここで図９に、処理対象となる点順次のデータ構造例を示し、４５０が全画像データである。４６０は図４と同様に、３２バイトのアクセス単位データであり、アクセス単位データ４６０内には４７０に示すように８画素分のデータがパッキングされている。そして、４７０における１画素分のデータには、４８０に示すように各１０ビットのＲ（レッド），Ｇ（グリーン），Ｂ（ブルー）のデータがパッキングされている。なお、ＤＲＡＭによる３２バイト単位でのデータアクセスを可能とするために、１画素分のデータ４８０としては、Ｒ，Ｇ，Ｂデータの全３０ビットに対し２ビットの無効データを追加し、全３２ビットとする。したがって、図中太枠で示す全画像データ４５０は、８Ｍ×Ｎ画素分のサイズとなる。このように、図９に示すような点順次構成の画像データに対しても、３２バイト単位でのアクセスが可能であるから、上述した第１および第２実施形態におけるバンド処理が実行可能である。
【００６９】
また、バンド領域の長さ方向を、画像データの副走査方向に合わせて設定することも可能である。例えば図１１(a)〜(c)に示すように、画像データの主走査方向でバンド領域を分割した場合、各バンド領域の長さ方向は、図１１(d)に示すように画像データの副走査方向となる。この場合、図９に示す画像データ構造における３２バイトのアクセス単位データ４６０に含まれる画素の領域を、主走査方向に１画素、副走査方向に８画素と設定することで、上記第１および第２実施形態におけるバンド処理が実行可能である。
【００７０】
また、上述した第１および第２実施形態においては、色毎のバンド高さ、すなわち色毎の処理領域の大きさを変更することができるため、色毎に最適な画像処理を施すことができる。
【００７１】
また、上記第１および第２実施形態における画像処理は、バンド領域間での依存関係がなく、バンド領域毎に独立して実行することができる。したがって、予め複数のバンド領域分についてバンド高さを確定した場合には、画像処理をバンド領域毎に逐次的に行う必要はなく、バンド領域毎に分散並列処理を行うことによって、画像処理を高速化できる。さらに、バンド高さが確定された複数のバンド領域を、複数のプロセッサと該プロセッサが所有するメモリに展開することで、各プロセッサにて誤差拡散処理やセンサ・デバイス補正、トラッピング処理等の画像処理を実行できることは言うまでもない。
【００７２】
＜他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005584490.tif 000002
【図２】
0005584490.tif 000003
【図３】
0005584490.tif 000004
【図４】
0005584490.tif 000005
【図５】
0005584490.tif 000006
【図６】
0005584490.tif 000007
【図７】
0005584490.tif 000008
【図８】
0005584490.tif 000009
【図９】
0005584490.tif 000010
【図１０】
0005584490.tif 000011
【図１１】
0005584490.tif 000012
【図１２】
0005584490.tif 000013