(57)【特許請求の範囲】
【請求項１】
第１格納部から読み出した複数のインデックスが配列されるＬ（Ｌ≧２）行のテーブルのうちＭ（１≦Ｍ＜Ｌ）行のインデックスを第２格納部に転送する転送手段と、
画像データの各画素に対し、前記第２格納部に格納されるＭ行の複数のインデックスをそれぞれ対応させることにより、前記画像データの変換処理をする変換手段と、
前記第２格納部に転送すべきＭ行のインデックスの前記テーブルの読み出しアドレスを指定するための指定手段と、
を備え、
前記指定手段は、前記テーブルに前記第２格納部に格納されるＭ行のインデックスに連続するＭ行のインデックスが存在する場合は、該連続するＭ行のインデックスの先頭のアドレスを前記読み出しアドレスとして指定し、前記テーブルに前記第２格納部に格納されるＭ行のインデックスに連続するＭ行のインデックスが存在しない場合は、前記テーブルの先頭のアドレスを前記読み出しアドレスとして指定することを特徴とするデータ処理装置。
【請求項２】
前記転送手段は、前記指定手段により指定されたアドレスに基づいて、前記変換手段によりＭ行のインデックスに対応する変換処理が終了した後に、前記テーブルに前記第２格納部に格納されるＭ行のインデックスに連続するＭ行のインデックスが存在する場合は、該連続するＭ行のインデックスにより前記第２格納部の内容を更新し、前記テーブルに第２格納部に格納されるＭ行のインデックスに連続するＭ行のインデックスが存在しない場合は、前記テーブルの先頭に戻って連続するＭ行のインデックスにより前記第２格納部の内容を更新することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記テーブルの読み出しラインを管理するテーブル用ラインカウンタをさらに備え、
前記テーブル用ラインカウンタの値に基づいて、読み出しラインが前記テーブルのＬ行に対応すると判定された場合、前記指定手段は前記テーブルの先頭のアドレスを前記読み出しアドレスとして指定し、前記テーブル用ラインカウンタの値を初期値に戻すことを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
前記テーブル用ラインカウンタの値に基づいて、読み出しラインが前記テーブルのＬ行に対応しないと判定された場合、前記指定手段は前読み出しアドレスを前記テーブルのライン間のアドレスオフセット分進め、前記テーブル用ラインカウンタの値をインクリメントすることを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
前記画像データは、Ｂ行ずつ（Ｂ≠Ｍ）の複数のバンドから構成されるものであり、前記変換手段による変換処理は、前記バンド単位で実行し、
前記バンド内のラインを管理するバンド用ラインカウンタをさらに備え、
前記バンド用ラインカウンタの値がＢと判定された場合、前記バンド用ラインカウンタの値を初期値に戻すことを特徴とする請求項３又は４に記載のデータ処理装置。
【請求項６】
前記画像データは、多値データであり、
前記インデックスは、多値データをドットパターンに変換するための変換パターンを特定する情報であることを特徴とする請求項１ないし５のいずれか１項に記載のデータ処理装置。
【請求項７】
前記テーブルは、前記多値データの各階調レベルに共通して使用されるものであることを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
前記変換手段は、前記画像データの各画素の位置に応じて、前記第２格納部に格納されるＭ行の複数のインデックスを用いることにより、複数のパターンの中から１つのパターンを選択して、前記画像データの変換を行うことを特徴とする請求項１ないし７のいずれか１項に記載のデータ処理装置。
【請求項９】
前記第２格納部、前記転送手段及び前記変換手段は同一の処理部に備えられ、
前記第１格納部は、前記処理部の外部メモリであることを特徴とする請求項１ないし８のいずれか１項に記載のデータ処理装置。
【請求項１０】
前記画像データは、階調値と画素の位置を示すアドレス値を含むことを特徴とする請求項１ないし９のいずれか１項に記載のデータ処理装置。
【請求項１１】
前記転送手段は、前記Ｍ行のインデックスを前記第２格納部にＤＭＡ転送することを特徴とする請求項１ないし１０のいずれか１項に記載のデータ処理装置。
【請求項１２】
第１格納部から読み出した複数のインデックスが配列されるＬ（Ｌ≧２）行のテーブルのうちＭ（１≦Ｍ＜Ｌ）行のインデックスを第２格納部に転送する転送工程と、
画像データの各画素に対し、前記第２格納部に格納されるＭ行の複数のインデックスをそれぞれ対応させることにより、前記画像データの変換処理をする変換工程と、
前記第２格納部に転送すべきＭ行のインデックスの前記テーブルの読み出しアドレスを指定するための指定工程と、
を備え、
前記指定工程では、前記テーブルに前記第２格納部に格納されるＭ行のインデックスに連続するＭ行のインデックスが存在する場合は、該連続するＭ行のインデックスの先頭のアドレスを前記読み出しアドレスとして指定し、前記テーブルに前記第２格納部に格納されるＭ行のインデックスに連続するＭ行のインデックスが存在しない場合は、前記テーブルの先頭のアドレスを前記読み出しアドレスとして指定することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元に配列されたパラメータ情報を、その配列規則を損なうことなく、画像データの個々の画素位置に対応させて処理を行うデータ処理に関する。特に、画像データ内の画像処理単位（バンド）に含まれるライン数と、上記２次元パラメータ情報のライン数とが調和しない場合であっても、２次元パラメータの配列規則を損なわずに、画像データ内の領域全ての画素に対して処理を行う方法に関する。
【背景技術】
【０００２】
互いの位置関係が定められた複数のデータの夫々に対し、やはり互いの位置関係が定められたパラメータの夫々を対応させるような処理は、様々な場面で用いられる。例えば、記録装置で画像を記録するためのデータを生成する画像処理において、個々の画素が有する多値データのそれぞれに対し２値のドットパターンを対応させる処理がこれに相当する。また、このように生成した個々の画素のドットパターンに、ドット記録の許容あるいは非許容を予め定めたマスクパターンを対応させることによって、各走査で実際に記録を行うドットを決定するマルチパス記録のための処理もこれに該当する。
【０００３】
このようなドットパターンやマスクパターンを、画像領域に対しなるべく非周期に定めようとする場合、画像領域のそれぞれの画素位置に対応する多数のパラメータを、互いの位置関係を固定した状態ですなわち２次元に格納するメモリが要される。但し、上記画像処理を行うＣＰＵがこのような多数のパラメータが格納されたメモリに順次アクセスしながら処理を行うと、処理のための時間が多く要され、記録装置であれば記録速度を低下させてしまう。
【０００４】
このような処理速度の低下を改善するため、処理を実行する回路の内部に高速メモリ（キャッシュメモリ）を設け、上記大容量のメモリ（低速メモリ）に記憶されているデータを高速メモリに記憶したのち、処理を実行する方法が知られている。このようにすれば、低速メモリに対するアクセス回数を抑えることが出来るので、画像処理に関わる時間を記録速度に影響を与えない程度まで短縮することが出来る。しかし、上記非周期のために用意する２次元テーブルが余り大きいと、回路内部に用意するキャッシュメモリすなわち回路規模も大きくなり、コストを増大させてしまう。
【０００５】
このように、従来では非周期に配列するパラメータの夫々を、個々のデータに対応付けて処理する状況において、回路規模と高速処理とを両立させることは困難な状況であった。
【０００６】
これに対し例えば特許文献１には、低速メモリに格納されたパラメータの一部を、キャッシュメモリに読み出し、格納されたパラメータに対応する領域を単位として、順番に処理を行っていく構成が開示されている。特許文献１の方法を採用すれば、キャッシュメモリ自体に一度に大容量の情報を記憶できなくても、例えば１ライン分のパラメータを格納できるだけの少ないメモリ容量があれば、従来よりも高速なアクセスおよび処理を行うことが出来る。但しこの場合、確かにキャッシュメモリの容量を抑えることは出来るが、処理の単位ごとにＣＰＵの設定が必要な回路では、１ラインごとにＣＰＵによる設定や画像データへのアクセスが必要となり、このことがオーバーヘッドを招致する場合もある。このような状況の下、画像データを複数ラインごとに分割して複数のバンドを生成し、ＣＰＵによるメモリへのアクセスやパラメータの設定などを、バンドごとに実行すれば、上記問題を解決することが期待できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００２−２６９５７７号公報
【特許文献２】特開２００４−０１５２１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１のように、バンドごとに画像処理を行う構成の場合、予めメモリに格納されている２次元データの領域（数）が、必ずしもバンドの大きさに調和するとは限らない。
【０００９】
図１１は、外部メモリに２次元に格納されているパラメータの配列状態と、これらパラメータを用いて処理されるべき画像データとの対応関係を説明するための模式図である。ここでは簡単のため、画像データ３０１は、ｙ方向に１８画素（１８ライン）、ｘ方向には１０画素以上の領域を有するものとする。そして、画像データ３０１は、６ラインずつ３つのバンドに分割され、１バンドずつＣＰＵから呼び出されて処理が施される構成とする。一方、外部メモリに格納された２次元パラメータ３０２は、ｘ方向に９画素分、ｙ方向に９画素（ライン）の８１個のデータで構成されているものとする。
【００１０】
この場合、まず１バンド目の画像を処理するため、ＣＰＵは外部メモリにアクセスし、読み込み開始アドレスとして、２次元パラメータ３０２のアドレス３０４１を指定する。そして、この最上位ラインについては、先頭の３０４１からｘ方向に９つ進んだアドレス３０４９までの領域に格納されている、グレーで示した領域３０３に含まれる９つのデータ群をキャッシュメモリに格納する。画像データ３０１の１バンド目１ライン目に配列する個々の画素データは、この９つのデータのそれぞれによって処理される。
【００１１】
１バンド目の２ライン目については、読み込み開始アドレスを、アドレス３０４１からｙ方向に１ライン分シフトしたアドレス３０５０に指定する。そして、先頭の３０５０からｘ方向に９つ進んだアドレス３０５８までの領域に格納されている９つのデータ群を、キャッシュメモリに格納する。画像データ３０１の１バンド目２ライン目に配列する個々の画素データは、この９つのデータのそれぞれによって処理される。以上のような動作を繰り返し、１バンド目に相当する６ライン目までのデータ読み込みおよび処理が完了する。このように、１バンド目については、２次元パラメータ３０２の配列関係を崩すことなく、画像データ３０１の個々の画素に対応させて処理を行うことが出来る。
【００１２】
２バンド目の画像を処理する際、ＣＰＵは２次元パラメータ３０２の読み込み開始アドレスとして、既に読み込んだ６ライン目に続く７ライン目の先頭アドレス３０９５を指定する。そして、１バンド目と同様にして、順次ラインの読み取りおよび処理を進めていく。しかし、２バンド目については、最初の３ライン目まで処理したところで２次元パラメータ３０２の全データの読み取りが終ってしまう。すなわち、同じバンド内において、単純に先頭アドレスの位置をｙ方向に１つずつシフトさせていく構成では、４ライン目のために先頭アドレスを指定することが出来なくなってしまう。
【００１３】
このような状況を回避するため、処理の単位となるバンドに含まれるライン数を、２次元パラメータのライン数に合わせて適宜設定する方法も考えられる。本例の場合は、２バンド目のライン数を３ラインにすれば、２バンド目の処理は順調に完結し、３バンド目の処理もスムーズに先頭から開始することが出来る。しかしながら、バンドごとにライン数を設定するという新たなジョブが追加されると、ライン数の管理も複雑になり、ＣＰＵに更なる負荷をかけ、オーバーヘッドを効果的に回避することが難しくなる。
【００１４】
本発明は、上記問題点を解決するためになされたものである。よって、その目的とするところは、複数データの夫々に対し、２次元パラメータの夫々を配列規則を損なうことなく対応させながら、大掛かりなキャッシュメモリを用いることなく、高速処理することが可能なデータ処理方法を提供することである。
【課題を解決するための手段】
【００１５】
そのために本発明は、第１格納部から読み出した複数のインデックスが配列されるＬ（Ｌ≧２）行のテーブルのうちＭ（１≦Ｍ＜Ｌ）行のインデックスを第２格納部に転送する転送手段と、画像データの各画素に対し、前記第２格納部に格納されるＭ行の複数のインデックスをそれぞれ対応させることにより、前記画像データの変換処理をする変換手段と、前記第２格納部に転送すべきＭ行のインデックスの前記テーブルの読み出しアドレスを指定するための指定手段と、を備え、前記指定手段は、前記テーブルに前記第２格納部に格納されるＭ行のインデックスに連続するＭ行のインデックスが存在する場合は、該連続するＭ行のインデックスの先頭のアドレスを前記読み出しアドレスとして指定し、前記テーブルに前記第２格納部に格納されるＭ行のインデックスに連続するＭ行のインデックスが存在しない場合は、前記テーブルの先頭のアドレスを前記読み出しアドレスとして指定することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、２次元に配列する複数データの夫々に対し、２次元パラメータの夫々を配列規則を損なうことなく対応させながら、大掛かりなキャッシュメモリを用いることなく、高速処理することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明に使用可能なインクジェット記録装置の外観斜視図である。
【図２】記録装置の記録部の構成を説明するための斜視図である。
【図３】記録装置における制御の構成を説明するためのブロック図である。
【図４】画像処理の工程を説明するためのブロック図である。
【図５】ＩＮＤＥＸ処理部における具体的な処理を実行する回路構成図である。
【図６】複数のドットパターンを、各レベルについて示した図である。
【図７】複数のドットパターンの格納状態を説明するための模式図である。
【図８】２次元テーブルの一例を示す図である。
【図９】２次元テーブルと画像データとの対応関係を説明するための模式図である。
【図１０】ＩＮＤＥＸ処理の工程を説明するためのフローチャートである。
【図１１】２次元パラメータと画像データとの対応関係を説明する図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施例を詳細に説明する。以下に説明する実施例は、特許文献２に開示されている画像処理において、ＩＮＤＥＸ処理部が実行する処理を対象としたものである。但し、本発明は、このような画像処理に限定されるものではない。本発明は、互いの位置関係が定められた複数のデータの夫々に対し、外部メモリに格納された２次元テーブルの個々のパラメータ値を、その配列規則を損なうことなしに１対１で対応させながら処理を行う構成であれば、その効果を発揮することができる。
【実施例１】
【００１９】
図１は、本発明に適用可能なインクジェット記録装置（以下、記録装置）２の外観斜視図である。本実施例の記録装置２は、外部に接続されたホスト装置から受信した画像データを、Ａ０サイズやＢ０サイズのような比較的大判の記録媒体に記録することが可能なインクジェット記録装置である。２個の脚部９３に支持された装置本体９４の前面には、手差し挿入口８８およびロール紙カセット８９が備えられている。記録時には、手差し挿入口８８あるいはロール紙カセット８９から供給された記録媒体に対し、本体内部に備えられた記録ヘッドが、画像データに従ってインクを吐出する。記録後の記録媒体はスタッカ９０に排出される。
【００２０】
記録ヘッドは、シアン、マゼンタ、イエローおよびブラックの４色のインクを用いて画像を記録し、これら４色のインクはインク供給ユニット８から供給される。アッパーカバー９１は透明で開閉可能なカバーである。アッパーカバー９１を閉じた状態では、記録動作中の記録ヘッドや記録媒体を観察することができる。一方、アッパーカバー９１を開放した状態では、記録ヘッドの交換や記録装置２のメンテナンス等を行うことが出来る。操作パネル１２は、記録方法や記録媒体などの設定を行うための入力キーや装置の情報を表示する画面が配備されている。
【００２１】
図２は、記録装置２の記録部の構成を説明するための斜視図である。記録ヘッド１０６は主走査方向（ｘ方向）に一定の速度で移動するキャリッジ９０６に搭載され、上記一定の速度に対応した周波数でインクを滴として吐出する。このような１回の記録主走査が終了するごとに、記録媒体Ｐは、給紙ローラ９０４および補助ローラ９０５のローラ対、搬送ローラ９０２および補助ローラ９０３ローラ対に挟持されながら副走査方向（ｙ方向）に所定の量だけ搬送される。上記記録主走査と搬送動作とを交互に繰り返すことにより、記録媒体Ｐに段階的に画像が記録される。
【００２２】
記録ヘッド１０５は、ブラック（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）およびイエロー（Ｙ）の記録ヘッドが、図のようにｘ方向に並列配置されて構成されている。各色の記録ヘッドには、複数の記録素子がｙ方向に１２００ｄｐｉ（ｄｏｔ／ｉｎｃｈ）の密度で配備されており、インク供給ユニット８から供給されたインクを画像データに従って吐出する。なお、一般に、シリアル型のインクジェット記録装置の場合、１回の記録主走査で記録を行うことが出来る画像の単位を「バンド」と称することがあるが、本明細書における「バンド」はこのような定義ではない。本明細書においては、ＣＰＵが画像処理を一まとめに行うデータの単位を示す。本明細書におけるバンドの詳細は後述する。
【００２３】
図３は、インクジェット記録装置２における制御の構成を説明するためのブロック図である。入力インタフェイス６２１は、記録装置の外部に接続されたホスト装置や、操作パネル１２からの入力情報を受信する。コントローラ６２２は、ＣＰＵのほか、本発明の特徴的な回路などによって構成されており、ＲＯＭ６２４に格納された各種プログラムに従って、記録装置全体の制御を行う。例えば、コントローラ６２２は、入力インタフェイス６２１を介してホスト装置から受信した画像データを、ＲＯＭ６２４に記憶されているプログラムに従って、記録ヘッド１０６が記録可能な記録データを生成する。生成した記録データは出力インタフェイス６２３を介して記録ヘッド１０６に出力される。ＲＯＭ６２４には、上記プログラムのほか、画像処理で使用する色分解テーブルや、本発明の特徴的な２次元テーブル等の各種パラメータも記憶されている。ＲＡＭ６２０は、上述した画像処理のほかコントローラ６２２が各種処理を実行する際にワークエリアとして利用される。
【００２４】
図４は、コントローラ６２２が実行する画像処理の工程を説明するためのブロック図である。外部に接続されたホスト装置などから記録すべき画像データが受信されると、当該画像データは装置内のメモリバッファ１０１に格納される。このときの画像データは６００ｄｐｉの解像度を有し、１画素につき８ｂｉｔ２５６階調で表現される多値の画像データ（Ｒ，Ｇ，Ｂ）とする。メモリバッファ１０１に格納された多値の画像データは、その後１画素ずつＣＭＹＫ色変換部１０２に転送され、記録装置が使用するインク色ＣＭＹＫに対応した多値の画像データ（６００ｄｐｉ、８ｂｉｔ）に変換される。ＣＭＹＫ色変換部１０２で変換された各色の画像データは、誤差拡散処理部１０３によってそれぞれ低階調化処理が施され、５階調にまで量子化される。
【００２５】
誤差拡散処理部１０３で量子化された各色の５階調の階調データは、更にＩＮＤＥＸ処理部１０４で２値化される。そして、記録ヘッド１０６の記録解像度１２００ｄｐｉに対応した個々の画素に対し、ドットを記録する（１）あるいは記録しない（０）を示す２値データに変換される。このような２値の記録データ（１２００ｄｐｉ、１ｂｉｔ）は、インク色ごとにプリントバッファ１０５に格納される。プリントバッファ１０５に、１回分の記録走査が行えるだけの２値データが蓄積されると、記録ヘッド１０６はプリントバッファ１０５に格納された２値データに従って、１回分の記録走査を行う。
【００２６】
図５は、ＩＮＤＥＸ処理部１０４における具体的な処理を実行する回路構成図である。このＩＮＤＥＸ処理部１０４はＣＰＵにより制御される。誤差拡散処理部１０３から出力されるデータは、５階調のレベル値（階調値）４０１と画素の位置を示すアドレス値４０２を有している。レベル値４０１は、６００ｄｐｉの各画素に対応する５階調の階調データであり、０〜４の値をとり得る。ＩＮＤＥＸパターン選択部４０７では、このようなレベル値４０１と画素アドレス値４０２とから、１２００ｄｐｉの２画素×２画素の各画素におけるドットの記録（０）或いは非記録（０）を定めた２値データ４０３を出力する。
【００２７】
図６は、２画素×２画素のうち、どの画素を記録画素としどの画素を非記録画素とするかを定める複数のパターン（複数の２値データ）を、各レベルについて示した図である。図において、黒で示したエリアがドットを記録する記録画素（１）、白で示したエリアが非記録画素（０）である。一般に、入力データのレベルが０のとき、２画素×２画素の全ての画素が非記録画素（０）となり、記録画素（１）は存在しない。よって、レベル０では２画素×２画素の全ての画素が非記録画素となる１つのパターンが用意されるのみである。入力データのレベルが１のとき、２画素×２画素のうち３つの画素が非記録画素（０）となり、１つの画素が記録画素（１）となる。よって、レベル１では図に示すような４通りのパターンが用意される。入力データのレベルが２のとき、２画素×２画素のうち２つの画素が非記録画素（０）となり、２つの画素が記録画素（１）となる。よって、レベル２では図のような６通りのパターンが用意される。また、入力データのレベルが３のとき、２画素×２画素のうち１つの画素が非記録画素（０）となり、３つの画素が記録画素（１）となる。よって、レベル３では図のような４通りのパターンが用意される。更に、入力データのレベルが４のとき、２画素×２画素のうち全ての画素が記録画素（１）となる。よって、レベル４では図のような１通りのパターンが用意される。
【００２８】
本実施形態では、このような個々のレベルに対応する複数のドットパターンがＩＮＤＥＸパターン格納部４０８に格納されており、ＩＮＤＥＸパターン選択部４０７は、このような複数のパターンの中から、注目画素の位置に応じたパターンを１つ選択する。
【００２９】
図７は、ＩＮＤＥＸパターン格納部４０８における、複数のドットパターン（２値データ）の格納状態を説明するための模式図である。ここでは、レベル１〜レベル４のそれぞれについて、＃０〜＃５の６通りずつのパターンが用意されている。個々のパターン６０１は、図６で示した２画素×２画素に対応する４ビットデータに相当する。図６で示したように、レベル２以外のレベルでは、６通りのパターンを有さないが、本実施例では、各レベルの＃０〜＃５の全てに図６で示したパターンのいずれかが格納されている。例えば、レベル４では、＃０〜＃５の全てに、２画素×２画素の全ての画素が記録画素（１）となるパターンが記憶されており、レベル３では、＃０〜＃５の全てに、図６で示した４通りのパターンのうちのいずれか一つが格納されている。レベル２については、図６で示した６通りのパターンの１つずつが、＃０〜＃５のそれぞれに対応して格納されている。
【００３０】
ＩＮＤＥＸパターン選択部４０７では、このような複数のパターンの中から、１つのパターンが注目画素の位置に応じて１つ選択される。このために本実施例では、テーブル選択部４０５が、画素アドレス値４０２に応じてＩＮＤＥＸパターン格納部に格納された＃０〜＃５のいずれかのテーブルを指定する構成になっている。そして、画像中の画素の位置においてこれら複数のパターンが代わる代わる選択されるようにすることにより、入力データ（階調値）が同じ値を持つ場合であっても同じパターンが主走査方向や副走査方向に連続しないようにしている。本発明者らの検討によれば、このような複数のパターンは主走査方向および副走査方向に非周期且つ満遍なく使用されることが好ましい。そのため、本実施例では画素位置に対応するテーブルの番号（＃０〜＃５）を予め定めた２次元テーブルを第１の格納部である外部メモリ４０６に格納している。なお、この２次元テーブルは、階調値に共通して使用される。
【００３１】
なお、以上では、６００ｄｐｉの５値データを１２００ｄｐｉの２値データに変換する構成を例としているため、ＩＮＤＥＸパターンは２画素×２画素の４ビットとなり、レベル２に対応する６種類が最高のパターン数となった。しかし、無論本発明はこのような構成に限定されるものではない。２値化を行うためにＮ画素×Ｍ画素（Ｎ，Ｍ＞２）のＩＮＤＥＸパターンを利用する場合は、１つのレベルについて更に多くのパターン（例えばＬ種類のパターン）を用意することが出来る。この場合、図７に示したＩＮＤＥＸパターンを管理するためのテーブルも更に多くの種類（＃０〜＃Ｌ−１）だけ用意すれば良い。また、ＩＮＤＥＸパターンが１通りしか用意されないレベル０やレベル４については、特にテーブル番号からＩＮＤＥＸパターンを指定することなく、２値データ（０はるいは１）をそのまま出力するようにしてもよい。
【００３２】
図８は、画素位置に応じてＩＮＤＥＸパターンを定めるための、２次元テーブルの一例を示す図である。ｘ方向がキャリッジの進行方向すなわち主走査方向に対応し、ｙ方向が記録媒体の搬送方向すなわち副走査方向に対応している。このようなテーブル番号の配置が画像データの個々の画素に対応するテーブル番号の配置となるように、個々のテーブル番号が非周期且つ満遍なく配置されている。
【００３３】
本実施例ではこのように９ライン分の２次元テーブルが用意され、これら９ラインのうちの１ラインがパラメータ転送部４１１によって呼び出され、第２の格納部である書き換え可能なテーブル保持格納部４０４に一時的に格納される。そして、テーブル選択部４０５は、画素アドレス値４０２に従って、テーブル保持格納部４０４に格納された１ライン分のテーブル番号から１つを選択し、このテーブル番号をＩＮＤＥＸパターン選択部４０７に指示する。ＩＮＤＥＸパターン選択部４０７は、再度図７を参照するに、入力したレベル値４０１に対応する複数のパターン中から、指示されたテーブル番号に相当するＩＮＤＥＸパターンを選択し、２値データ４０３としてこれを出力する。なお、２次元テーブルは、１行あたり９画素分のテーブル番号しか備えていないため、画像データの１行あたりの画素数が１０画素以上であれば、この１行分（９画素分）のテーブルを繰り返し使用する。
【００３４】
再度図５を参照する。更新制御部４１２は、１ライン分のＩＮＤＥＸ処理が完了するたびにテーブル保持格納部４０４内のテーブル番号を更新するように、タイミング信号４１３０をパラメータ転送部４１１に発信する。また、読み出しアドレス生成制御部４１０は、情報保持部４０９に記憶されている様々な情報に基づいて、次の更新の際に２次元テーブルのどのアドレスから転送を開始するかを示す情報（読み出しアドレス信号４１３２）を、パラメータ転送部に指示する。情報保持部４０９には、２次元テーブルの１ライン目の先頭アドレス（Ｔ）や、２次元テーブルのライン間のアドレスオフセット値（Ａｏ）などが保持されている。パラメータ転送部４１１は、これら更新制御部４１２から指示されるタイミング信号４１３０と、読み出しアドレス生成制御部４１０から指示される読み出しアドレス信号４１３２に従って、テーブル保持格納部４０４へのテーブル番号の更新を行う。
【００３５】
図９は、本実施例における２次元テーブルと、当該テーブルに記憶されている個々のテーブル番号に従って処理されるべき画像データとの対応関係を、図１１と比較しながら説明するための模式図である。ここでは、２次元テーブルは９ライン、画像データは６ラインずつの３つのバンドによって構成されている例を示している。また、図１０は、このような画像データに対するＩＮＤＥＸ処理の工程を説明するためのフローチャートである。以下、図９を参照しながら図１０のフローチャートの各工程を説明する。
【００３６】
本処理が開始されると、まずステップＳ１において、ＣＰＵが情報保持部４０９に対し、２次元テーブルの先頭アドレスＴ、２次元テーブルにおけるライン間のアドレスオフセットＡｏ、１つのバンドに含まれるライン数Ｂなどを設定する。続くステップＳ２およびＳ３では、処理に使用する変数の初期設定を行う。具体的には、ステップＳ２において、読み出しアドレスＡＤを２次元テーブルの先頭アドレスに設定（ＡＤ＝Ｔ）する。また、ステップＳ３では、バンド内のラインを１つずつ管理するためのカウンタＸ（１≦Ｘ≦６）、２次元テーブル３０２内の読み出しラインを１つずつ管理するためのカウンタＹ（１≦Ｙ≦９）を、それぞれ１に設定する。また、画像内の３つのバンドを管理するためのカウンタＢａｎｄ（１≦Ｂａｎｄ≦３）も１に設定する。
【００３７】
ステップＳ４において、ＣＰＵは、注目するバンドのバンド処理を開始するための各種設定を行う。バンド処理が開始されると、更新制御部４１２は、読み出しアドレス生成制御部４１０とパラメータ転送部４１１へ更新指示を通知する。これに伴いパラメータ転送部４１１は、アドレス生成制御部４１０から得た読み出しアドレスＡＤに従って、２次元テーブル４０６から１ライン分の新たなパラメータ（テーブル番号）を読み出し、テーブル保持格納部４０４の内容を更新する（ステップＳ５）。
【００３８】
その後、ステップＳ６にて、バンド内の注目する１ラインに含まれる画素のそれぞれに、テーブル保持格納部に格納された１ライン分のパラメータを対応させながら、画像処理を行う。具体的には、テーブル選択部４０５が、注目する画素の画素アドレス値４０２に基づいて、テーブル保持格納部４０４に配列するテーブル番号の１つを選択する。そして、ＩＮＤＥＸパターン選択部４０７が選択されたテーブル番号に対応するＩＮＤＥＸパターンをＩＮＤＥＸパターン格納部４０８から読み出して、２値データ４０３として出力する。このような変換処理を画像データの１ライン分について行う。
【００３９】
ステップＳ７では、２次元テーブル用のラインカウンタＹの値が、２次元テーブルのライン数Ｌ（＝９）と同値であるか否かを判断する。同値である（Ｙ＝Ｌ）と判断した場合は、ステップＳ８へ進み、読み出しアドレスＡＤを２次元テーブルの先頭アドレスＴに戻し（ＡＤ＝Ｔ）、ラインカウンタＹを１に戻す。一方、ステップＳ７で、同値でない（Ｙ＜Ｔ）と判断した場合は、２次元テーブルの中に前回読み出したデータに連続する読み出すべきデータがまだ存在することになる。よって、ステップＳ９へ進み、読み出しアドレスＡＤをアドレスオフセットＡｏ分だけ進める（ＡＤ＝ＡＤ＋Ａｏ）。また、ラインカウンタＹを１ライン分インクリメントする。
【００４０】
ステップＳ１０では、バンド用のラインカウンタＸの値が、バンドのライン数Ｂ（＝６）と同値であるか否かを判断する。同値ではない（Ｘ＜Ｂ）場合、処理中のバンドにはまだ処理すべきラインが存在するので、ステップＳ１１でバンド用のラインカウンタＸをインクリメントした後、次のラインの処理を行うためにステップＳ５に戻る。  一方、ステップＳ１０でバンド用のラインカウンタＸがバンドのライン数Ｂ（＝６）と同値である場合は、処理中の対象となっているバンドの全ラインに対する処理が終了したと判断し、ステップＳ１２に進む。ステップＳ１２では、ＣＰＵに対し、注目するバンドの処理が完了したことを通知する。
【００４１】
ステップＳ１３では、バンド用のカウンタＢａｎｄが、画像内のバンド数３と同値であるか否かを判断する。Ｂａｎｄ＜３の場合、処理すべきバンドがまだ残っているので、ステップＳ１４でバンド用のカウンタＢａｎｄをインクリメントし、更にバンド内のラインカウンタＸを１に戻した後、次のバンドの処理を行うためにステップＳ４に戻る。一方、ステップＳ１３で、Ｂａｎｄ＝３である場合、全バンドに対する処理が完了したと判断し、本処理を終了する。なお、上述のフローにおける判断は、ＣＰＵもしくはＩＮＤＥＸ処理部１０４に設けた判定部が行う。
【００４２】
以上説明したフローチャートでは、バンド内のラインを管理するためのカウンタＸと、２次元テーブル内のラインを管理するためのカウンタＹとを、それぞれ独立に管理し初期化（Ｘ＝１或いはＹ＝１）している。より詳しくは、バンド内のライン数（Ｂ＝６）と２次元テーブルのライン数（Ｌ＝９）の値およびカウンタＸ、Ｙを情報保持部４０９で管理し、各カウンタをこれら値と対比しながら適切なタイミングで初期値に戻している。そして、常に、次の読み出しアドレスＡＤが、カウンタ値Ｙに対応付けて把握されている。以上のような構成により、バンド内のラインと２次元テーブルのラインを、互いの配列を崩すことなく、１ラインずつ順番に対応付けることが出来る。
【００４３】
例えば図９の２バンド目を参照するに、２バンド目の処理開始持、バンド用のカウンタＸ＝１であるが、２次元テーブル用のカウンタＹはステップＳ６０９によってＹ＝７に設定されている。よって、２バンド目の１ライン目の画像データには、２次元テーブルの７ライン目（読み出しアドレスＡＤ＝Ｔ＋６Ａｏ）のパラメータ（テーブル番号）が対応付けられる。また、２バンド目の４ライン目の処理のとき、バンド用のカウンタＸ＝４であるが、２次元テーブル用のカウンタＹは、ステップＳ６０８によって１に戻される。よって、２バンド目の４ライン目の画像データには、２次元テーブルの１ライン目（読み出しアドレスＡＤ＝Ｔ）のパラメータが対応付けられる。
【００４４】
このように、本実施例によれば、ＣＰＵによる再設定を行わなくても、テーブル保持格納部の内容を２次元テーブルの１ライン目に戻すことが可能となる。すなわち、バンドごとにライン数を設定しなくても、２次元テーブルの配列規則を崩さずに画像データに対応させることが出来るので、オーバーヘッドの懸念も回避される。つまり、本実施例によれば、２次元テーブルの配列規則を画像データの配列に対して崩すことなくタイル状に対応させながら、高速な画像処理を行うことが可能となる。
【００４５】
なお、以上説明した実施例では、２次元テーブルは９ライン、画像データは６ラインずつの３つのバンドによって構成されている例について説明したが、無論本発明はこのような構成に限定されるものではない。本発明は、Ｂ行ずつのラインを有する複数のバンドで構成される画像データに対し、Ｌ行（ライン）の２次元テーブルを用いて処理する場合の全てに対応することが出来る。２次元テーブルについては、ライン数（行数）その領域が大きいほど画像データ内での周期性を少なくし、周期性に伴うモアレなどを回避することが出来る。２次元テーブル内のライン数が大きくなったとしても、回路内部のテーブル保持格納部４０４のメモリ容量を大きくする必要はないので、本発明をより効果的に利用することが出来る。また、画像データが大きいほどバンド内のライン数やバンド数は大きくなる傾向があるが、処理する対象が大きいほど、わずかなメモリで高速処理を実現する本発明の効果も大きくなる。
【００４６】
また、上記実施例では、テーブル保持格納部の容量を２次元テーブルの１ライン分として説明したが、本発明はこれに限定されるものではない。テーブル保持格納部には２次元テーブルの２ライン以上（Ｍ行）が格納される構成であっても良い。但し、少ないメモリで高速な処理を行うという本発明の効果を発揮するためには、Ｍは１≦Ｍ＜Ｌ／２（Ｌは２次元パラメータの行数）を満足する値であることが要される。何ライン分用意するにせよ、テーブル保持格納部が外部に設けられた２次元テーブルよりも少ない容量であれば、外部メモリのパラメータを部分的に読み出して高速に処理するという効果を発揮することはできる。但し、回路規模を抑えるという意味では、上記実施例のように、画像処理の１つの単位である１ライン分のメモリとするのが効果的である。あるいは、テーブル更新を画像処理中に並行して行える構成の場合は、画像処理の単位の２倍のメモリ（２ライン分のメモリ）を用意しておくのが、高速化の上では好ましい。
【００４７】
上記実施例では、画像処理の単位を１ラインずつ行う構成で説明したが、本発明はこのような構成に限定されるものでもない。テーブル保持格納部のメモリ容量が画像処理の単位あるいはそれ以上用意されていれば、本発明の効果を発揮することは出来る。例えば、画像処理の単位が２ラインの場合、テーブル保持格納部は２次元テーブルの２ライン以上の容量を有していれば良く、アドレスオフセットＡｏは２ライン分のオフセット量とすればよい。また、画像処理の単位が複数ラインの場合、２次元テーブルのライン数によっては、２次元テーブルの最後の複数ライン分を読み取っている最中に、２次元テーブルの読み出しアドレスを１ライン目に戻す必要が生じる場合がある。このような場合には、読み出しアドレスＡｄを、最初のラインを読み取るためと、１ライン目に戻すためとの２回に分けて設定し、読み出しを行えばよい。また、上記実施例では、この２次元テーブルは、階調値に共通して使用する形態であるが、例えば、階調値の一部のために、同じサイズのテーブル４０６やテーブル保持格納部４０４等を別に備える形態にしても構わない。
【００４８】
以上では、一例としてＩＮＤＥＸ処理を説明したが、本発明は２次元に配列されたパラメータを、その配列規則を損なうことなく、画像データの個々の画素位置に１対１で対応させながら行なうデータ処理であれば、どのような目的の処理にも対応可能である。例えば、予め用意されたディザパターンを用いて、多値の画像データを２値化するディザ処理を行う際も、上記実施例の構成を応用することが出来る。また、ドット記録の許容あるいは非許容を予め定めたマスクパターンを２次元テーブルに格納し、各走査で実際に記録を行うドットを決定するマルチパス記録のための処理にも上記実施例の構成を応用することが出来る。
【符号の説明】
【００４９】
４０１    レベル値
４０２    画素アドレス値
４０３    ２値データ
４０４    テーブル保持格納部
４０５    テーブル選択部
４０６    ２次元テーブル格納部
４０７    ＩＮＤＥＸパターン選択部
４０８    ＩＮＤＥＸパターン格納部
４０９    情報保持部
４１０    読み出しアドレス生成制御部
４１１    パラメータ転送部
４１２    更新制御部
【図１】
0005610897.tif 000002
【図２】
0005610897.tif 000003
【図３】
0005610897.tif 000004
【図４】
0005610897.tif 000005
【図５】
0005610897.tif 000006
【図６】
0005610897.tif 000007
【図７】
0005610897.tif 000008
【図８】
0005610897.tif 000009
【図９】
0005610897.tif 000010
【図１０】
0005610897.tif 000011
【図１１】
0005610897.tif 000012