(57)【特許請求の範囲】
【請求項１】
誤差拡散法による量子化処理により、複数の画素で構成されるラスターを複数有する画像データから記録データをラスター毎に生成する画像処理手段と、
前記画像処理手段が量子化処理した画素が属するラスターから拡散される誤差データを第１記憶部に書き込む又は前記画像処理手段が量子化処理した画素が属するラスターから拡散される誤差データを第２記憶部に書き込む制御をする第１制御手段と、
前記画像処理手段が量子化処理を行う画素が属するラスターに拡散する誤差データを前記第１記憶部から読み出す又は前記画像処理手段が量子化処理を行う画素が属するラスターに拡散する誤差データを前記第２記憶部から読み出す制御をする第２制御手段と、
を備え、
前記画像処理手段がラスターを所定数配列して構成される所定のバンド分の量子化処理を終了する場合、前記第１制御手段は次のバンドに属するラスターに拡散する誤差データを前記第２記憶部に誤差データを書き込む制御をし、前記画像処理手段が次のバンド分の量子化処理をする場合、前記第２制御手段は次のバンドに属するラスターに拡散する前記第２記憶部から誤差データを読み出す制御をすることを特徴とする画像処理装置。
【請求項２】
量子化処理を行う画素が属するラスターが各バンドの最終ラスターであるかを判定する第１判定手段をさらに備え、
前記第１判定手段により量子化処理を行う画素が属するラスターが最終ラスターであると判定された場合、前記第１制御手段は前記第２記憶部に誤差データを書き込む制御をし、
前記第１判定手段により量子化処理を行う画素が属するラスターが最終ラスターではないと判定された場合、前記第１制御手段は前記１記憶部に誤差データを書き込む制御をすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
量子化処理を行う画素が属するラスターが各バンドの先頭ラスターであるかを判定する第２判定手段をさらに備え、
前記第２判定手段により量子化処理を行う画素が属するラスターが先頭ラスターであると判定された場合、前記第２制御手段は前記第２記憶部から誤差データを読み出す制御をし、
前記第２判定手段により量子化処理を行う画素が属するラスターが先頭ラスターではないと判定された場合、前記第２制御手段は前記１記憶部から誤差データを読み出す制御をすることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記画像処理手段は、Ｎ色分の画像データの量子化処理が可能であり、
前記Ｎ色よりも多い色の画像データの画像処理を行う場合、前記画像処理手段に複数回に分割した量子化処理を実行させる第３制御手段をさらに備え、
前記Ｎ色よりも多い色の画像データの画像処理を行う場合、前記画像処理手段は、第１の色群の画像データから記録データを生成する第１生成処理と、第２の色群の画像データから記録データを生成する第２生成処理とをバンド毎に交互に行うことを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記Ｎ色よりも多い色の画像データの画像処理を行う場合、前記画像処理手段が前記所定のバンド分の量子化処理を終了する場合、前記第１制御手段は次のバンドに属するラスターに拡散する誤差データを前記第２記憶部に誤差データを書き込む制御をし、前記画像処理手段が次のバンド分の量子化処理をする場合、前記第２制御手段は次のバンドに属するラスターに拡散する前記第２記憶部から誤差データを読み出す制御をすることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記画像処理手段がＮ色以下の画像データの画像処理を行う場合、前記画像処理手段が前記所定のバンド分の量子化処理を終了する場合、前記第１制御手段は次のバンドに属するラスターに拡散する誤差データを前記第１記憶部に誤差データを書き込む制御をし、前記画像処理手段が次のバンド分の量子化処理をする場合、前記第２制御手段は次のバンドに属するラスターに拡散する前記第１記憶部から誤差データを読み出す制御をすることを特徴とする請求項４又は５に記載の画像処理装置。
【請求項７】
前記第２記憶部への誤差データの書き込み又は前記第２記憶部への読み出しを無効に設定する設定手段をさらに備えることを特徴とする請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記第２記憶部は、前記第１記憶部よりもアクセス速度が遅いことを特徴とする請求項１〜７のいずれか１項に記載の画像処理装置。
【請求項９】
量子化処理を行う画像が属するラスターの処理方向を判定する第３判定手段をさらに備え、
前記画像処理手段は、前記第３判定手段により判定された処理方向に応じて、各ラスターの量子化処理を行うことを特徴とする請求項１〜８のいずれか１項に記載の画像処理装置。
【請求項１０】
誤差拡散法による量子化処理により、複数の画素で構成されるラスターを複数有する画像データから記録データをラスター毎に生成する画像処理工程と、
前記画像処理工程において量子化処理した画素が属するラスターから拡散される誤差データを第１記憶部に書き込む又は前記画像処理工程において量子化処理した画素が属するラスターから拡散される誤差データを第２記憶部に書き込む制御をする第１制御工程と、
前記画像処理工程において量子化処理を行う画素が属するラスターに拡散する誤差データを前記第１記憶部から読み出す又は前記画像処理工程において量子化処理を行う画素が属するラスターに拡散する誤差データを前記第２記憶部から読み出す制御をする第２制御工程と、
を備え、
前記画像処理工程でラスターを所定数配列して構成される所定のバンド分の量子化処理を終了する場合、前記第１制御工程では次のバンドに属するラスターに拡散する誤差データを前記第２記憶部に誤差データを書き込む制御をし、前記画像処理手段が次のバンド分の量子化処理をする場合、前記第２制御工程では次のバンドに属するラスターに拡散する前記第２記憶部から誤差データを読み出す制御をすることを特徴とする画像処理方法。
【請求項１１】
請求項１〜１０のいずれか１項に記載の各手段をコンピュータにより実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関し、詳しくは、誤差拡散法によって画像データの量子化を行う際の、回路規模の削減およびデータアクセスの高速化の技術に関するものである。
【背景技術】
【０００２】
記録装置で用いる記録データを得るための、多値の画像データをより階調数の少ないデータに変換する量子化処理として誤差拡散法による処理が知られている。誤差拡散法では、所定方向に配列する１ライン分の画素に対して、そのラインの一方の端の画素から順に他方の端の画素まで量子化処理を行う。この際、各画素において量子化によって発生する誤差は、量子化の対象である注目画素と同一ライン上の画素、およびそのラインと、上記所定方向と直交する方向において隣接するラインの画素に拡散される。１ライン分の画素の量子化が終了すると、隣接する次の１ライン分の画素に対して同様に量子化を行う。このようにして、画像データを構成する総てのラインに対して順次量子化を行う。
【０００３】
この量子化では、同じラインの画素に対して拡散する誤差データは、それらの画素の量子化が行われるまで、例えば、誤差拡散を実行する回路内のバッファに保存される。また、隣接ラインの画素に拡散する誤差データは、１ライン分がまとめて回路外のメモリに格納され、その隣接ラインの量子化の際にその隣接ラインの画素の処理に合わせてメモリから読み出される。
【０００４】
ところで、近年の記録装置では、色再現性を向上させるためにより多くの種類もしくは色のインクが使用されるようになって来ている。また、記録する画像の高精細化や記録用紙が大サイズ化することによって記録装置が扱う画像データの量が従来に比べて増す傾向にもある。このため、大容量の画像データをより高速に処理することが求められており、特に、誤差拡散法による量子化処理の高速化が求められている。そして、この処理の高速化を、回路規模が増すことなく、従って、コストが増すことなく実現できることが望ましい。
【０００５】
特許文献１には、誤差拡散処理のための回路におけるラインメモリについて１ライン分の画素数より少ない画素数のラインメモリを用いて誤差拡散処理を実行するための構成が記載されている。この構成によって、誤差拡散処理回路のＡＳＩＣ化を容易にして誤差拡散処理の高速化を図っている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−１６４３６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示されるような従来の誤差拡散処理の構成では、他のラインの画素に拡散するための１ライン分の誤差データを誤差拡散回路外のメモリにおいて書き込みまた読み出すため、このメモリアクセスに比較的時間を要することになる。特に、この誤差拡散回路外のメモリがＤＲＡＭなどの比較的動作速度が遅いメモリの場合はさらに誤差データの書き込みや読み出しの時間が長くなる。さらに、インクなど記録材の種類ないし色が増した場合にはそれに応じて誤差拡散処理すべきデータが増すことから、書き込みまたは読み出す誤差データの量も多くなり、さらに誤差拡散処理の高速化が阻害されることになる。また、記録材の種類ないし色が増すことに応じて誤差拡散処理すべきデータが増すと、それに応じて誤差拡散処理回路の規模も増大するという問題も生じる。
【０００８】
本発明は、上記従来の問題を解決するためになされたものであり、誤差拡散処理回路の規模を増すことなく、誤差拡散処理を高速に行うことを可能とする画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
そのために本発明は、画像処理装置において、誤差拡散法による量子化処理により、複数の画素で構成されるラスターを複数有する画像データから記録データをラスター毎に生成する画像処理手段と、前記画像処理手段が量子化処理した画素が属するラスターから拡散される誤差データを第１記憶部に書き込む又は前記画像処理手段が量子化処理した画素が属するラスターから拡散される誤差データを第２記憶部に書き込む制御をする第１制御手段と、前記画像処理手段が量子化処理を行う画素が属するラスターに拡散する誤差データを前記第１記憶部から読み出す又は前記画像処理手段が量子化処理を行う画素が属するラスターに拡散する誤差データを前記第２記憶部から読み出す制御をする第２制御手段と、を備え、前記画像処理手段がラスターを所定数配列して構成される所定のバンド分の量子化処理を終了する場合、前記第１制御手段は次のバンドに属するラスターに拡散する誤差データを前記第２記憶部に誤差データを書き込む制御をし、前記画像処理手段が次のバンド分の量子化処理をする場合、前記第２制御手段は次のバンドに属するラスターに拡散する前記第２記憶部から誤差データを読み出す制御をすることを特徴とする。
【発明の効果】
【００１０】
以上の構成によれば、生成する記録データが１２色分など多量になる場合でも、誤差拡散処理回路の規模を増すことなく、誤差拡散処理を高速に行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るインクジェット記録装置の概略構成を示す斜視図である。
【図２】図１に示した本実施形態に係る記録装置の制御およびデータ処理の構成を示すブロック図である。
【図３】（ａ）〜（ｃ）は、図２に示す画像処理部で処理する画像データの画素を説明する図である。
【図４】（ａ）および（ｂ）は、図２に示す画像処理部で処理する画像データのバンドモードを説明する図である。
【図５】図２に示す画像処理部の機能ブロックの構成および処理される画像データの形式を説明する図である。
【図６】（ａ）および（ｂ）は、図５に示す画像処理部における各信号を説明する図である。
【図７】（ａ）は、図５に示す各ＤＭＡＣのアクセス先を説明する図であり、（ｂ）は、図５に示す各レジスタ部を説明する図である。
【図８】（ａ）および（ｂ）は、図７（ｂ）に示すレジスタ部においてバンドモードレジスタのフィールド、および処理モードレジスタのフィールドを説明する図である。
【図９】本発明の実施形態における、しきい値との比較によって発生する量子化誤差の拡散を説明する図である。
【図１０】（ａ）、（ｂ）および（ｃ）は、上記量子化誤差の隣接ラスターへの拡散を説明する図である。
【図１１】画像データを最終的に二値化して出力する、図５に示した制御回路部５０５の処理を説明するフローチャートである。
【図１２】図５に示す誤差データリードＤＭＡＣの動作を説明するフローチャートである。
【図１３】図５に示す誤差データライトＤＭＡＣの動作を説明するフローチャートである。
【図１４】本発明の実施形態に係る記録装置における、１２色のインク色の記録データを生成するための処理を、特に誤差拡散による量子化を説明するフローチャートである。
【図１５】（ａ）および（ｂ）は、図５に示す画像処理回路において１２色の画像データを量子化処理する場合のレジスタ設定例を説明する図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００１３】
図１は、本発明の一実施形態に係るインクジェット記録装置の概略構成を示す斜視図である。図１において、記録装置１００は、キャリッジ５３を備える。キャリッジ５３は、ガイドレール５１および５２によって案内され、図中の矢印Ｘで示される走査方向（主走査方向）に移動できるよう設けられている。そして、キャリッジ５３は、記録ヘッド５４を着脱自在に搭載するとともに、キャリッジモータ（不図示）の駆動力が無端ベルト等の駆動力伝達機構（不図示）によって伝達されることにより上記移動を行う。これにより、記録ヘッドの記録媒体に対する走査が可能となる。キャリッジ５３に搭載された記録ヘッド５４に対して、各色のインクを収納したインクタンク（不図示）からチューブを介してインクが供給される。
【００１４】
本実施形態の記録ヘッド５４は、インクを吐出可能なノズルを上記走査方向と交差する方向に配列したノズル列を、以下に示す１２色のインクについて備えたものである。すなわち、記録ヘッド５４は、シアン（Ｃ）、フォトシアン（淡シアン；ＬＣ）、マゼンタ（Ｍ）、フォトマゼンタ（淡マゼンタ；ＬＭ）、イエロー（Ｙ）、レッド（Ｒｅｄ）、グリーン（Ｇｒ）、ブルー（Ｂｌ）、ブラック（Ｋ）、マットブラック（ＭＫ）、グレー（Ｇｒｙ）、およびフォトグレー（淡グレー； ＬＧｒｙ）のインクを吐出するためのノズル列を備えている。各ノズルからインクを吐出させるための機構として、電気熱変換体（ヒータ）や圧電効果を利用したピエゾ素子などを用いることができる。電気熱変換体を用いた場合には、電気熱変換体の発熱によってインクを発泡させ、発泡の際に生じる発泡エネルギーを利用して吐出口からインクを吐出させる。
【００１５】
記録媒体としての用紙は、ロール状に巻回されたロール紙５５を記録装置１００に装着し、ロール紙５５から引き出されたシート端が挿入口から挿入される。シートは送りローラ５６によって走査方向と直交する図中矢印Ｙで示される搬送方向（副走査方向）に搬送される。記録ヘッド５４の走査の間に各ノズルから記録データに応じてインクを吐出する記録動作と、記録ヘッド５４の走査による記録幅に対応する距離だけ記録媒体を搬送方向に搬送する搬送動作とを繰り返すことにより、記録媒体上に順次画像を記録する。本実施形態では、記録ヘッドの走査によって最大６０インチ幅の記録を行うことができる。
【００１６】
図２は、図１に示した本実施形態に係る記録装置の制御およびデータ処理の構成を示すブロック図である。図２に示すように、本実施形態の記録装置は、制御およびデータ処理を実行する画像形成コントロール部１０１、図１に主に示した記録機構であるプリンタエンジン１２８、および図示しない電源回路部等を有して構成される。
【００１７】
画像形成コントロール部１０１は、パーソナルコンピュータ等のホスト装置から記録指示や記録用の画像データを受信し、受信した画像データをプリンタエンジン１２２で用いる２値の記録データに変換して出力する。図２に示すように、画像形成コントロール部１０１は、ＣＰＵ１０２、通信インターフェース部１０３、操作部制御回路部１０４、表示部制御回路部１０５、ＲＡＭコントローラ１０６、ＲＯＭコントローラ１０７、および拡張バス回路部１０８を有している。また、画像形成コントロール部１０１は、画像処理部１０９およびプリンタエンジンインターフェース部１１０を備える。上述したこれらの各ブロックはそれぞれバスライン１１２ａ〜１１２ｉを介してシステムバスブリッジ１１１に接続されている。本実施形態では、これらの各部は、システムＬＳＩとして１つのパッケージに封止された画像形成コントロール部ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１１３として実現されるものである。さらに、画像形成コントロール部１０１は、操作部１１４、表示部１１５、ＲＡＭ部１１６、ＲＯＭ部１１８、および機能拡張ユニットを装着する拡張スロット１２０を備える。
【００１８】
ＣＰＵ１０２は、画像形成コントロール部１０１全体の制御を司るものである。ＣＰＵ１０２は、ＲＯＭ部１１８またはＲＡＭ部１１６に格納された制御手順を順次読み出し実行することによって、通信インターフェース部１０３の制御、操作部１１４および表示部１１５の制御を行う。また、ＣＰＵ１０２は、受信した画像データを画像形成データに変換するための画像処理部１０９の制御や、生成された画像形成データをプリンタエンジン１２２へ転送するためのプリンタエンジンインターフェース部１１０の制御等を行う。
【００１９】
通信インターフェース部１０３は、パーソナルコンピュータやワークステーション等のホスト装置との間でデータの送受信を行い、ホスト装置から受信した画像データをＲＡＭコントローラ１０６を介してＲＡＭ部１１６に格納する。通信インターフェース部１０３の通信方式としては、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）など公知の方式を用いることができる。操作部制御回路部１０４は、操作部１１４を構成するスイッチから出力される電気信号の状態をＣＰＵ１０２からのリード命令に対してレジスタ情報として通知する。表示部制御回路部１０５は、表示部１１５を構成する液晶表示装置およびＬＥＤランプに電気信号を出力する。
【００２０】
ＲＡＭコントローラ１０６は、ＲＡＭバス１１７を介して画像形成コントロール部のＡＳＩＣ１１３に接続されたＲＡＭ部１１６の制御を行う。すなわち、ＲＡＭコントローラ１０６は、ＣＰＵ１０２および各部からの読み出し要求や書き込み要求に応じて必要な制御信号を生成してＲＡＭ部１１６への書き込みやＲＡＭ部１１６からの読み出しを実現する。ＲＯＭコントローラ１０７は、ＲＯＭバス１１９を介して画像形成コントロール部のＡＳＩＣ１１３に接続されたＲＯＭ部１１８の制御を行う。すなわち、ＲＯＭコントローラ１０７は、ＣＰＵ１０２からの読み出し要求に応じて必要な制御信号を生成して、予めＲＯＭ部１１８に格納された制御手順やデータを読み出し、システムバスブリッジ１１１を介してＣＰＵ１０２に読み出した内容を送り返す。また、ＲＯＭ部１１８がフラッシュメモリ等の電気的に書き換え可能なデバイスで構成される場合、ＲＯＭコントローラ１０７は必要な制御信号を発生してＲＯＭ部１１８の内容を書き換える。
【００２１】
拡張バス回路部１０８は、拡張スロット１２０に装着した機能拡張ユニットを制御し、拡張バス１２１を介して機能拡張ユニットにデータを送信する制御および機能拡張ユニットが出力するデータを受信する制御を行う。拡張スロット１２０には、大容量記憶機能を提供するハードディスクドライブユニット、あるいはＵＳＢやＩＥＥＥ１３９４のほか、ＩＥＥＥ１２８４などに準拠した通信機能によりホスト装置と通信を行う通信ユニットなどを装着することができる。
【００２２】
画像処理部１０９は、ホスト装置から受信した画像データをプリンタエンジン１２２で記録可能な２値の記録データに変換する処理を行う。なお、画像処理部１０９の詳細な構成については図５にて後述する。
【００２３】
プリンタエンジンインターフェース部１１０は、画像形成コントロール部１０１とプリンタエンジン１２２との間でデータの送受信を行う。プリンタエンジンインターフェース部１１０は、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ；ダイレクトメモリアクセスコントローラ）を有している。これにより、プリンタエンジンインターフェース部１１０は、画像処理部１０９で生成されＲＡＭ部１１６に格納されている２値記録データを、ＲＡＭコントローラ１０６を介して順次読み出してプリンタエンジン１２２に転送することができる。なお、画像処理部１０９、通信インターフェース部１０３、および拡張バス回路部１０８は、プリンタエンジンインターフェース部１１０と同様にＤＭＡＣ機能を有し、メモリアクセス要求を発行することができる。
【００２４】
システムバスブリッジ１１１は、画像形成コントロール部のＡＳＩＣ１１３を構成する各部の間を接続する機能を備えるほか、複数のブロックから同時にアクセス要求が発行された場合に、バス権を調停する機能を備えている。ＣＰＵ１０２およびＤＭＡＣを有する各ブロックがＲＡＭコントローラ１０６を介してＲＡＭ部１１６へのアクセス要求をほぼ同時に発行する場合があり、システムバスブリッジ１１１は予め指定されたプライオリティーにしたがって適切に調停を行うことができる。
【００２５】
操作部１１４は、記録装置１００の動作を設定するボタンに連動するスイッチで構成され、これらスイッチの状態を電気信号として出力する。操作部１１４は、記録装置１００の電源のオンおよびオフを指示する電源ボタンを備える。また、操作部１１４には、動作モードを切り替えるオンラインボタンやメニュー画面の表示を指示するメニューボタン、メニュー画面から項目を選択するための上下左右方向の十字ボタン、および選択項目を確定するＯＫボタンを備えている。このほか操作部１１４は、記録の停止を指示するストップボタンおよび記録用紙の給紙方法を選択する給紙選択ボタンを備える。表示部１１５は、液晶表示装置およびＬＥＤランプ等から構成される。液晶表示装置は、記録装置１００の動作状態を表示するほか、操作部１１４のメニューボタンなどの操作によりメニュー画面の表示を行うことができる。ＬＥＤランプは記録装置１００の動作状態の表示や警告表示を行うものである。
【００２６】
ＲＡＭ部１１６は、同期ＤＲＡＭ等で構成され、ＣＰＵ１０２が実行する制御手順の格納、画像処理部１０９において生成された画像データの一時的な記憶、およびＣＰＵ１０２のワークメモリなどの機能を提供するメモリである。ＲＯＭ部１１８は、フラッシュメモリ等で構成され、ＣＰＵ１０２が実行する制御手順およびプリンタ制御に必要なパラメータを格納する。
【００２７】
プリンタエンジン１２２は、画像形成コントロール部１０１から送出される２値記録データに基づいて記録媒体に画像を記録するための記録機構である。本実施形態では、プリンタエンジン１２２は、図１にて上述したように、インクジェット方式の記録ヘッドにより記録媒体に画像を形成するものであり、１２色のインクによって、主走査方向に２４００ｄｐｉの解像度で最大６０インチ幅の画像を記録することができる。
【００２８】
図３（ａ）〜（ｃ）は、画像処理部１０９で処理する画像データの画素を説明する図である。図３（ａ）において、小さな四角形のそれぞれは１つの画素を表しており、画像処理部１０９で処理する、各色の画像データは、主走査方向および副走査方向にそれぞれ配列された画素のそれぞれに濃度値が対応付けられたものである。主走査方向に並ぶ一連の画素によって構成される行をラスターと呼び、同じ画素数のラスターを所定数配列した矩形状の画素群をバンドと呼ぶ。なお、バンドを構成するラスター数やラスターを構成する画素数は、１でも複数でもどちらでもよい。
【００２９】
画像処理部１０９は、バンドにおける副走査方向における先頭のラスターから順に、ラスターごとに画像処理を行っていく。また、１つのラスターについては、左端側から右端側へ、または右端側から左端側へ、１画素ずつ順番に処理を行う。図３（ｂ）および図３（ｃ）は、１つのラスターに対する処理方向を示す図であり、図中の数字は画素ごとの処理順序をあらわしている。順方向処理の場合は図３（ａ）のように左端側から右端側へ順に処理を行い、逆方向処理の場合は図３（ｂ）のように右端側から左端側へ順に処理を行う。
【００３０】
本実施形態の画像処理部は、バンドの処理に関して双方向処理と片方向処理を選択して実行することができる。双方向処理では、図４（ａ）に示すように、１ラスターごとに順方向処理と逆方向処理を切り替えながら画像処理を実行する。また、片方向処理では図４（ｂ）に示すように、バンドを構成する全ラスターについて同じ方向に処理を行う。なお、双方向処理および片方向処理のいずれの場合も、逆方向処理から画像処理を開始することもできる。
【００３１】
本実施形態では、上述のように画像データを構成する画素の座標が、記録媒体における記録領域に対応させて特定される。本実施形態の記録装置では、上述のように主走査方向の最大の記録領域幅は６０インチである。この最大幅の記録領域の場合、記録画素は２４００ｄｐｉの解像度であるから画素数は１４４０００となる。一方、画像処理部１０９で処理する画像データの解像度は、後述のインデックスデータに応じて二値化処理回路で得られるドット配置パターンの２画素×２画素との関係から、１２００ｄｐｉである。従って、画像データの１ラスターの画素数は、上記幅の記録領域に対応して最大７２０００になり、画素座標は、図３（ａ）左側の画素から順に０〜７１９９９となる。バンドの左端画素および右端画素それぞれの画素座標を指定することにより、処理されるバンドの記録媒体における記録位置を指定することができる。例えば、処理するバンドの左端画素座標を１８０００、右端画素座標を３５９９９にそれぞれ設定すると、このバンドは記録用紙上の左端側４分の１から用紙中央の範囲に画像が記録される。
【００３２】
画像処理部１０９が扱う画像データや誤差拡散処理における誤差データは、後述されるように、第１記憶メモリとしてのＲＡＭ部１１６や画像処理部１０９内の第２記憶メモリとしての誤差バッファ部が用意され、これらのメモリに格納される。画像データおよび誤差データが格納されるこれらメモリ上の位置は、画素座標０に対応するデータが格納されるべきメモリアドレス、左端画素アドレスおよび右端画素アドレスから算出することができる。この画素座標０に対応するデータが格納されるべきメモリアドレスを原点対応アドレスと呼ぶ。
【００３３】
図５は、画像処理部１０９の機能ブロックの構成および処理される画像データの形式を説明する図である。
【００３４】
画像処理部１０９は、図５に示すように、色変換処理回路部５０１、量子化処理回路部５０２、二値化処理回路部５０３、レジスタ部５０４、制御回路部５０５、および誤差バッファ部５１０を有している。本実施形態では、誤差バッファ部５１０は、ＳＲＡＭによって構成する。さらに、画像処理部１０９は、画像データおよび誤差データを読み出す画像データリードＤＭＡＣ５０６および誤差データリードＤＭＡＣ５０８、それぞれのデータを書き込む画像データライトＤＭＡＣ５０７および誤差データライトＤＭＡＣ５０９を有している。以上の構成を有する本実施形態の画像処理部１０９は、上述したようにＡＳＩＣ１１３の一部を構成する回路として実現されるものである。そして、画像処理部１０９は、プリンタエンジン１２２で用いるインクの色に関して最大６色分の画像データの処理を行う回路である。すなわち、同じ画素（処理対象である注目画素）に対して、以下で説明する色変換処理回路部５０１、量子化処理回路部５０２、および二値化処理回路部５０３の処理をそれぞれ２回実行する。これにより、画像処理部１０９の回路、ひいてはこの処理部を含むＡＳＩＣ１１３の回路の規模を小さくすることができる。
【００３５】
具体的には、色変換処理回路部５０１は、ホスト装置からの、レッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）それぞれ８ビットで表される色信号（０〜２５５のいずれかの値）からなる画像データに対して、色補正処理および色空間変換処理を行う。色補正処理では、色信号Ｒ、Ｇ、Ｂに対して、それぞれの色信号に対応する一次元のルックアップテーブルに補間演算を併用してガンマ補正処理を行う。次に、色空間変換処理で、１回目の処理として、色信号Ｒ、Ｇ、Ｂを、これらの組によって三次元のルックアップテーブルを参照し、この参照結果に補間処理を併用することにより、６色分のインク色信号Ｃ、ＬＣ、Ｍ、ＬＭ、Ｙ、Ｒｅｄに変換する。これらのインク色信号はそれぞれ８ビットで表され、０〜２５５のいずれかの値を持つものである。
【００３６】
そして、量子化処理回路部５０２は、これらの６色の色信号それぞれについて、その詳細が後述される誤差拡散法による量子化処理を行い、０〜４のいずれかの階調レベルを示す、３ビット５値のインデックスデータを出力する。そして、二値化処理回路部５０３は、インデックスデータに対応したドット配置パターンを適用して、１ビット２値の記録データ（画像データ）を出力する。
【００３７】
注目画素の画像データに対する２回目の処理では、先ず、注目画素の同じ画像データである色信号Ｒ、Ｇ、Ｂに対して、（色変換処理回路部５０１の）色補正処理を行う。この処理の結果は１回目と同じであり、色変換処理回路部５０１の色空間変換処理では、この同じ結果としての色信号Ｒ、Ｇ、Ｂに基づいて変換を行う。すなわち、同じ色補正結果としての色信号Ｒ、Ｇ、Ｂを、これらの色信号の組によって、三次元ルックアップテーブルを参照し、また、これに補間演算を併用して、２回目の処理に係るインク色信号Ｇｒ、Ｂｌ、Ｋ、ＭＫ、Ｇｒｙ、およびＬＧｒｙに変換する。次に、量子化処理回路部５０２では、上記インク色信号Ｇｒ、Ｂｌ、Ｋ、ＭＫ、ＧｒｙおよびＬＧｒｙそれぞれに対して、その詳細が後述される誤差拡散処理によって量子化を行い、それぞれのインク色の５値のインデックスデータを出力する。そして、二値化処理回路部５０３によってインデックスデータに対応したドット配置パターンが用いられて２値の記録データが出力される。
【００３８】
このように、本実施形態では、１２色のインク色信号からなる記録データを生成するのに同じ画像処理を２回繰り返す構成とする。これにより、画像処理のための回路の規模を小さくすることが可能となる。
【００３９】
なお、本実施形態では、画像処理における画像データを、ＲＧＢの３色の色信号からなるものとしたが、この形態に限られないことはもちろんである。例えば、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）の４色の色信号からなるものであってもよい。また、インク色信号を最大１２色とし、これに応じて画像処理回路の規模を最大６色分の処理を実行できるものとしたが、この形態に限られないことももちろんである。用いる最大の数のインク色信号に合せて、それを二またそれ以上に分割した数の処理を行う画像処理回路とすればよい。
【００４０】
図５において、レジスタ部５０４は、画像処理の開始を指示する画像処理起動レジスタや実行する画像処理の内容およびパラメータを指定するコマンド・パラメータレジスタ等を備えたレジスタ群から構成される。また、レジスタ部５０４はバンドの先頭ラスターおよび最終ラスターを処理する際の誤差データアクセスに関するパラメータを設定するレジスタを有している。制御回路部５０５は、画像処理部１０９全体の制御を行う。例えば、制御回路部５０５は、ＣＰＵ１０２からの起動指示によって動作し、レジスタ部に設定されたパラメータにしたがって画像処理部１０９内の各機能ブロックやＤＭＡＣ部に必要な制御信号を出力する。
【００４１】
また、制御回路部５０５は、図６（ａ）に示す各制御信号および図示しない制御信号を出力する。図６（ａ）において、「現在ラスター処理方向信号」は、処理対象となるラスターの処理方向が順方向か逆方向かを示す信号であり、順方向の場合に「１」、逆方向の場合に「０」を出力する。「先頭ラスター現示信号」は、処理対象となるラスターがバンドの先頭ラスターであるか否かを示す信号であり、先頭ラスターの場合に「１」を出力する。「最終ラスター現示信号」は、処理対象となるラスターがバンドの最終ラスターであるか否かを示す信号であり、最終ラスターの場合に「１」を出力する。「データ転送開始指示信号」は、画像データおよび誤差データのリード（読み出し）またはライト（書き込み）を行う各ＤＭＡＣ（５０６〜５０９）にデータ転送の開始を指示する信号であり、「１」を出力することによって転送の開始を指示する。最後に、「ラスター処理完了応答信号」は、各ＤＭＡＣから出力されるラスター処理の完了通知に対して返す応答信号であり、「１」を出力して通知に対する応答を返す。
【００４２】
画像データリードＤＭＡＣ５０６は、ＲＡＭ部１１６に格納された入力画像データを読み出すためのＤＭＡＣである。また、画像データライトＤＭＡＣ５０７は、生成された２値画像データ（記録データ）をＲＡＭ部１１６に格納するためのＤＭＡＣである。
【００４３】
誤差データリードＤＭＡＣ５０８は、隣接ラインから拡散される誤差データを読み出すためのＤＭＡＣである。詳細には、誤差データリードＤＭＡＣ５０８は、制御回路部５０５からの信号に応じて、ＲＡＭ部１１６または誤差バッファ部５１０のいずれかを選択しそこに記憶される１ライン分の誤差データの中から処理に係る画素に対応する誤差データを読み出す。一方、誤差データライトＤＭＡＣ５０９は、隣接ラインに拡散するための、誤差データを書き込むためのＤＭＡＣである。すなわち、誤差データライトＤＭＡＣ５０９は、制御回路部５０５からの信号に応じて、ＲＡＭ部１１６または誤差バッファ部５１０のいずれかを選択し、そこに１ライン分の誤差データを書き込む（格納する）ことができる。
【００４４】
より詳細には、誤差データリードＤＭＡＣ５０８および誤差データライトＤＭＡＣ５０９は、図７（ａ）に示すように、アクセスするメモリのアドレスが０ｘ００００００００〜０ｘ０３ＦＦＦＦＦＦの範囲にある場合はＲＡＭ部１１６へアクセスするよう制御する。また、アクセスするメモリのアドレスが０ｘＡ０００００００〜０ｘＡ００９ＦＦＦＦの範囲にある場合は誤差バッファ部５１０へアクセスするよう制御する。また、各ＤＭＡＣ（５０６〜５０９）は、１ラスター分のデータの転送が終了すると、図６（ｂ）に示す「ラスター処理完了通知信号」を制御回路部５０５に出力する。
【００４５】
レジスタ部５０４は、図７（ｂ）に示すように、画像処理の開始を指示する画像処理起動レジスタ８０１、および量子化処理回路部５０２の動作モードを規定するパラメータを設定するための各レジスタを有して構成される。また、レジスタ部５０４は、色変換処理や二値化処理の動作モードを設定する図示しないレジスタ群を備える。量子化処理回路部５０２の動作モードに関連するパラメータは、バンドモードレジスタ８０２、処理モードレジスタ８０３、およびラスター数レジスタ８０４の各レジスタに設定する。さらに、レジスタ部５０４は、左端画素アドレスレジスタ８０５、右端画素アドレスレジスタ８０６、共通原点対応アドレスレジスタ８０７、先頭ラスター原点対応アドレスレジスタ８０８、および最終ラスター原点対応アドレスレジスタ８０９を備えている。
【００４６】
バンドモードレジスタ８０２は、図８（ａ）に示すように、バンド処理モードを指定するフィールドおよび先頭ラスターの処理方向を指定するフィールドを備えている。また、アクセス設定を行うための処理モードレジスタ８０３は、図８（ｂ）に示すように、先頭ラスターに拡散する誤差データを読み出すアドレスを指定するフィールドおよび最終ラスターから拡散される誤差データを格納するアドレスを指定するフィールドを備えている。また、処理モードレジスタ８０３はその他の動作モードを設定するフィールドを有する。これら各レジスタに設定された内容は、レジスタ設定値信号として画像処理部１０９内の各部に供給され、各部が参照可能に構成されている。
【００４７】
以上の構成を有する画像処理部１０９による、主に誤差拡散法を用いた量子化処理について以下に説明する。先ず、画像処理部１０９の量子化処理回路部５０２は、注目画素を含むラスターの前のラスター（以下、「前ラスター」ともいう）から拡散される誤差データを読み出す。そして、読み出した誤差データを色変換処理回路部５０１から出力された注目画素の画像データに加算する。つまり、注目画素の画像データの階調値に、誤差データによって表現される誤差値を加算する。前ラスターからの拡散される誤差データは、このデータを記憶可能な誤差バッファ部５１０またはＲＡＭ部１１６に格納されている。そして、後述されるように、アクセス制御を行う誤差データリードＤＭＡＣ５０８の制御に基づき、注目画素が属するラスターがどのラスターかに応じて、誤差バッファ部５１０またはＲＡＭ部１１６から誤差データを読み出す。また、量子化処理回路部５０２は、注目画素の画像データに対して、その画素が含まれる同一のラスター（以下、「同一ラスター」ともいう）の量子化処理が済んだ画素から拡散される誤差データも加算する。同一ラスターの画素から拡散すべき誤差データは、量子化処理回路部５０２内の図示しないバッファに一時的に格納される。
【００４８】
量子化処理回路部５０２は、以上のようにして同一ラスターおよび前ラスターの画素からの誤差データが加算された注目画素の画像データを、その色信号ごとにしきい値と比較して量子化を行い、インデックスデータを得る。このインデックスデータは、二値化処理回路部５０３に送られて２値の記録データに変換され、画像データライトＤＭＡＣ５０７によってＲＡＭ部１１６に格納される。また、量子化の際に発生する誤差は、同一ラスターおよび隣接ラスターの所定の画素に拡散される。
【００４９】
図９は、上述のしきい値との比較によって発生する量子化誤差の拡散を説明する図である。図９において、注目画素「Ｐ」の量子化処理によって発生する誤差は、同図に示す拡散係数に従って未処理の周辺画素に拡散される。具体的には、注目画素Ｐと同一ラスターＬ１の画素ＡおよびＢに拡散される誤差データは、量子化処理回路部５０２内の図示しないバッファに保存する。また、隣接ラスターＬ２の画素Ｃ、ＤおよびＥに拡散される誤差データは、量子化処理回路部５０２内のバッファに一旦記憶されてから、同一画素に対して拡散される誤差データが全て足し合わされる。合算された誤差データは、誤差データライトＤＭＡＣ５０９を介して、その詳細は後述されるように、注目画素が属するラスターがどのラスターかに応じて、誤差バッファ部５１０またはＲＡＭ部１１６に格納される。
【００５０】
詳しくは、図１０（ａ）に示すように、注目画素Ｐから隣接ラスターＬ２の画素Ｘに拡散される誤差データは、以下の第１、第２、および第３の３つの誤差データを合算したものとなる。第１の誤差データは、図１０（ａ）に示す注目画素「Ｐ」から、図９に示される画素Ｅの拡散係数（１／１６）に従って拡散される誤差データである。第２の誤差データは、図１０（ｂ）の注目画素「Ｑ」から、図９に示される画素Ｄの拡散係数（１／４）に従って拡散される誤差データである。第３の誤差データは、図１０（ｃ）の注目画素「Ｒ」から、図９に示される画素Ｃの拡散係数（１／８）に従って拡散される誤差データである。
【００５１】
画像処理部１０９は、ＣＰＵ１０２がレジスタ部５０１へ制御パラメータの書き込むことによって画像処理の開始が指示されると、ＲＡＭ部１１６に格納された入力画像データをラスターの一方端の画素から他方の端の画素まで順次読み出して、色変換処理、量子化処理および二値化処理を行う。画像処理部１０９は、これら一連の処理（「ラスター処理」ともいう）を繰り返し、設定されたラスター数の処理が終了すると、ＣＰＵ１０２に対して割り込みを発行してバンド処理の完了を通知する。ＣＰＵ１０２からの指示により、副走査方向に存在する未処理のバンドについても同様の処理を行うことにより、画像データ全体の二値化処理が行われる。二値化された画像データ（記録データ）は、順次ＲＡＭ部１１６に格納され、プリンタエンジンインターフェース部１１０によってプリンタエンジン１２２へ送出されることにより、その記録データに基づいて記録媒体に画像が記録される。
【００５２】
図１１は、入力した画像データを最終的に二値化して出力する、上述した画像処理を行う際の制御回路部５０５の処理を説明するフローチャートである。ＣＰＵ１０２がレジスタ部５０４の画像処理起動レジスタ８０１に「１」を書き込んで画像処理の開始を指示すると、レジスタ部５０４は、画像処理部１０９の各部に画像処理起動信号を出力する。制御回路部５０５は、レジスタ部５０４からの画像処理起動信号を受信すると、図１１のフローチャートに従って画像処理動作を実行して二値化処理を行う。
【００５３】
先ず、ステップＳ１２０１で、画像処理の開始に先立ち必要な初期化処理等を行う。初期化処理では、処理したラスター数を計数するための内部カウンタ（不図示）のクリア、画像処理部１０９内の各部への画像処理開始信号の出力等を行う。次に、ステップＳ１２０２で、ラスターごとの画像処理パラメータの更新を行う。詳しくは、処理ラスターを計数するカウンタの値およびレジスタ部に設定されたバンドモードレジスタ８０２の値に応じて、図６（ａ）に示す、「現在ラスター処理方向信号」、「先頭ラスター現示信号」、および「最終ラスター現示信号」を更新して出力する。これらの各信号は画像処理部１０９内の各部に供給される。
【００５４】
次に、ステップＳ１２０３で、画像データリードＤＭＡＣ５０６、画像データライトＤＭＡＣ５０７、誤差データリードＤＭＡＣ５０８、および誤差データライトＤＭＡＣ５０９にラスター処理に関するデータ転送の開始を指示する。すなわち、制御回路部５０５は、図６（ａ）に示す「データ転送開始指示信号」として「１」を出力して各ＤＭＡＣ（５０６〜５０９）のデータ転送開始を指示する。
【００５５】
次に、ステップＳ１２０４で、各ＤＭＡＣ（５０６〜５０９）からのラスター処理終了通知を受信したか否かを判断し、全ＤＭＡＣからのラスター処理終了通知を受信したと判断したときは、ステップＳ１２０５へ進み、また、ラスター処理終了通知を受信していないＤＭＡＣが存在すると判断したときは、再びステップＳ１２０４に戻る。各ＤＭＡＣ（５０６〜５０９）のラスター処理終了通知を受信しているか否かは、各ＤＭＡＣが出力するラスター処理完了通知信号が「１」であるか否かによって判断する。
【００５６】
ステップＳ１２０５では、各ＤＭＡＣ（５０６〜５０９）に対してラスター処理完了通知に対する応答を返し、ステップＳ１２０６へ進む。すなわち、制御回路部５０５は、ラスター処理完了応答信号として「１」を出力して、ラスター処理完了通知に応答する。
【００５７】
次に、ステップＳ１２０６で、処理ラスター数を計数する内部カウンタの内容を１漸進して、ステップＳ１２０７へ進む。ステップＳ１２０７では、ラスター数計数を行う内部カウンタで計数している処理ラスター数と、レジスタ部５０４におけるラスター数指定のためのラスター数レジスタ８０４に設定されたラスター数とを比較する（第１判断）。計数したラスター数が設定ラスター数に一致しているときは、バンド処理の終了と判断してステップＳ１２０８へ進み、計数ラスター数が設定ラスター数に到達していない場合はステップＳ１２０２に戻って再びラスター処理を繰り返す。総てのラスター処理が終了すると、ステップＳ１２０８で、バンド処理の終了処理を行い、本処理動作を終了する。本ステップでは、ＣＰＵ１０２への割り込み信号の活性化等を行う。
【００５８】
本実施形態では、図１１のフローチャートに従った処理をハードウエア記述言語（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ；ＨＤＬ）によって記述し、これに基づき論理合成を行うことにより、本画像処理動作の実行が可能な論理回路を生成する。そして、この論理合成によって生成された論理回路が制御回路部を構成することになる。
【００５９】
次に、図１２および図１３を参照して、誤差データリードＤＭＡＣ５０８および誤差データライトＤＭＡＣ５０９の処理手順について説明する。これらの処理は、図１１のステップＳ１２０３の処理によって起動される処理である。
【００６０】
先ず、誤差データリードＤＭＡＣ５０８は、図１２のステップＳ１３０１で、制御回路部５０５からデータ転送の開始を指示されているか否かを判断し、データ転送の開始を指示されている場合はステップＳ１３０２へ進む。一方、データ転送の開始を指示されていない場合は再びステップＳ１３０１へ戻る。制御回路部５０５からのデータ転送の開始が指示されているか否かは、データ転送開始指示信号が「１」であるか否かによって判断する。
【００６１】
次に、誤差データリードＤＭＡＣ５０８はステップＳ１３０２で、処理ラスターが先頭ラスターであり、かつ先頭ラスター用のアドレスを使用するかどうかを判断し（第２判断）、条件に該当する場合はステップＳ１３０３へ進み、該当しない場合はステップＳ１３０４へ進む。制御回路部５０５が出力する先頭ラスター現時信号が「１」であり、レジスタ部５０４が出力する先頭ラスター使用アドレス信号が「１」の場合に、条件に該当すると判断する。すなわち、先頭ラスター使用アドレス信号が「１」の場合とは、図８（ｂ）に示す「先頭ラスター原点対応アドレスを使用」が「１」であり、「共通原点対応アドレスを使用」が「０」の場合である。これは、誤差データの読みだしをＲＡＭ１１６において行うことを有効にする設定である。これに対し、上記条件に該当しない場合として、先頭ラスター現時信号が「１」で、先頭ラスター使用アドレス信号が「０」の場合がある。この場合は、上記「先頭ラスター原点対応アドレスを使用」が「０」であり、「共通原点対応アドレスを使用」が「１」の場合である。これは、以下で説明する上記の条件に該当する場合の処理とは異なり、先頭ラスターの処理であるにもかかわらず、誤差データの読みだしをＲＡＭ１１６において行うことを無効にする設定である。例えば、４色のインクを用いて記録を行うモードの場合は、本実施形態の最大６色分の処理が可能な回路では、１回の処理で一連の画像処理を行い２値の記録データを得ることができる。従って、先頭ラスターや先頭ラスターの１ライン分の誤差データは４色分として、回路内の誤差バッファ５１０に格納することができる。このため、先頭ラスターの処理であるにもかかわらず、誤差データの読み出しをＲＡＭ１１６において行うことなく、誤差バッファ５１０で行うようにする。これは、図１３にて後述する、最終ラスターの処理における誤差データの書き込みの場合も同様である。
【００６２】
図１２を再び参照すると、次に、ステップＳ１３０３では、誤差データリードＤＭＡＣ５０８は、先頭ラスター原点対応アドレスを使用して読み出し元アドレスを算出し、ステップＳ１３０５へ進む。このとき、処理方向が順方向の場合はレジスタ部５０４に設定された左端画素アドレスからメモリアドレスを算出し、処理方向が逆方向の場合はレジスタ部５０４に設定された右端画素アドレスからメモリアドレスを算出する。また、制御回路部５０５が出力する現在ラスター処理方向信号によって、処理ラスターの処理方向を取得する。
【００６３】
一方、ステップＳ１３０４では、誤差データリードＤＭＡＣ５０８は、共通原点対応アドレスを使用して読み出し元アドレスを算出し、ステップＳ１３０５へ進む。このときもステップＳ１３０３と同様に、処理方向に応じて左端画素アドレスまたは右端画素アドレスを使用してメモリアドレスを算出する。
【００６４】
次に、誤差データリードＤＭＡＣ５０８は、ステップＳ１３０５で、ラスター処理に関する他の初期化処理を行い、読み出し元メモリアドレス以外のパラメータを特定する。また、誤差データリードＤＭＡＣ５０８は、処理画素数を計数する誤差データリードＤＭＡＣ５０８内のカウンタ（不図示）をクリアする。
【００６５】
次に、誤差データリードＤＭＡＣ５０８はステップＳ１３０６で、読み出しメモリアドレスから誤差データを読み出し、誤差データリードＤＭＡＣ５０８内のバッファ（不図示）に格納するとともに、読み出しメモリアドレスを更新する。ここで、処理ラスターが順方向の場合は増加方向に、処理ラスターが逆方向の場合は減少方向にアドレスが更新される。
【００６６】
誤差データリードＤＭＡＣ５０８はステップＳ１３０７で、ステップＳ１３０６の処理でバッファに格納した誤差データを１画素ごとに量子化処理回路部５０２に出力する。また、処理画素数を計数する内部カウンタの内容を１漸進してステップＳ１３０８へ進む。
【００６７】
ステップＳ１３０８では、内部カウンタで計数している処理画素数が１ラスターの画素数に到達しているか否かを判断し、到達している場合はステップＳ１３０９へ進み、到達していない場合はステップＳ１３０６へ戻って誤差データの読み出しを継続する。なお、１ラスターの画素数は、右端画素アドレスと左端画素アドレスの差に１加算した値として算出する。
【００６８】
１ラスター分の画素数分の誤差データを読み出すと、誤差データリードＤＭＡＣ５０８はステップＳ１３０９で、制御回路部５０５に対してラスター処理の完了を通知して、ステップＳ１３１０へ進む。すなわち、誤差データリードＤＭＡＣ５０８は、ラスター処理完了通知信号として「１」を出力してラスター処理の完了を通知する。
【００６９】
次に、誤差データリードＤＭＡＣ５０８はステップＳ１３１０で、制御回路部５０５からラスター処理の完了通知に対する応答が返されているか否かを判断し、応答がある場合はステップＳ１３１１へ進み、応答がない場合はステップＳ１３１０へ戻る。制御回路部５０５からの応答が返されているか否かは、ラスター処理完了応答信号が「１」であるか否かによって判断する。
【００７０】
ステップＳ１３１１で、誤差データリードＤＭＡＣ５０８は、処理したラスターがバンドの最終ラスターか否かを判断し、最終ラスターの場合は本処理動作を終了し、最終ラスターでない場合はステップＳ１３０１へ戻って後続ラスターの処理を継続する。
【００７１】
一方、誤差データライトＤＭＡＣ５０９は、図１３のステップＳ１４０１で、制御回路部５０５からデータ転送の開始を指示されているか否かを判断し、データ転送の開始を指示されている場合はステップＳ１４０２へ進み、データ転送の開始を指示されていない場合はステップＳ１４０１へ戻る。制御回路部５０５からのデータ転送の開始が指示されているか否かは、データ転送開始指示信号が「１」であるか否かによって判断する。次に、誤差データライトＤＭＡＣ５０９はステップＳ１４０２で、処理ラスターが最終ラスターであり、かつ最終ラスター用のアドレスを使用するかどうかを判断し、条件に該当する場合はステップＳ１４０３へ進み、該当しない場合はステップＳ１４０４へ進む。制御回路部５０５が出力する最終ラスター現時信号が「１」であり、レジスタ部５０４が出力する最終ラスター使用アドレス信号が「１」の場合に、条件に該当すると判断する。
【００７２】
ステップＳ１４０３で、誤差データライトＤＭＡＣ５０９は、最終ラスター原点対応アドレスを使用して書き込み先アドレスを算出し、ステップＳ１４０５へ進む。このとき、処理方向が順方向の場合はレジスタ部５０４に設定された左端画素アドレスからメモリアドレスを算出し、処理方向が逆方向の場合はレジスタ部５０４に設定された右端画素アドレスからメモリアドレスを算出する。また、制御回路部５０５が出力する現在ラスター処理方向信号によって、処理ラスターの処理方向を取得する。
【００７３】
一方、ステップＳ１４０４では、誤差データライトＤＭＡＣ５０９は、共通原点対応アドレスを使用して書き込み左記アドレスを算出し、ステップＳ１４０５へ進む。このときもステップＳ１４０３と同様に、処理方向に応じて左端画素アドレスまたは右端画素アドレスを使用してメモリアドレスを算出する。
【００７４】
次に、誤差データライトＤＭＡＣ５０９はステップＳ１４０５で、ラスター処理に関する他の初期化処理を行い、書き込み先メモリアドレス以外のパラメータを特定する。また、誤差データライトＤＭＡＣ５０９は、処理画素数を計数する誤差データライトＤＭＡＣ５０９内のカウンタ（不図示）をクリアする。次に、誤差データライトＤＭＡＣ５０９はステップＳ１４０６で、量子化処理回路部から出力される１画素分の誤差データを、誤差データライトＤＭＡＣ５０９内のバッファ（不図示）に書き込む（格納）する。また、処理画素数を計数する図示しない内部カウンタを１漸進してステップＳ１４０７へ進む。
【００７５】
次に、誤差データライトＤＭＡＣ５０９はステップＳ１４０７で、ステップＳ１４０６の処理でバッファに格納した誤差データを書き込みメモリアドレスへ書き込むとともに、書き込みメモリアドレスを更新する。処理ラスターが順方向の場合は増加方向に、処理ラスターが逆方向の場合は減少方向にアドレスが更新される。
【００７６】
ステップＳ１４０８では、内部カウンタで計数している処理画素数が１ラスターの画素数に到達しているか否かを判断し、到達している場合はステップＳ１４０９へ進み、到達していない場合はステップＳ１４０６へ戻って誤差データの書き込みを継続する。なお、１ラスターの画素数は、右端画素アドレスと左端画素アドレスの差に１加算した値として算出する。
【００７７】
１ラスターの画素数分の誤差データを書き込むと、誤差データライトＤＭＡＣ５０９はステップＳ１４０９で、制御回路部５０５に対してラスター処理の完了を通知して、ステップＳ１４１０へ進む。すなわち、誤差データライトＤＭＡＣ５０９は、ラスター処理完了通知信号に「１」を出力してラスター処理の完了を通知する。
【００７８】
次に、誤差データライトＤＭＡＣ５０９はステップＳ１４１０で、制御回路部５０５からラスター処理の完了通知に対する応答が返されているか否かを判断し、応答がある場合はステップＳ１４１１へ進み、応答がない場合はステップＳ１４１０へ戻る。制御回路部５０５からの応答が返されているか否かは、ラスター処理完了応答信号が「１」であるか否かによって判断する。ステップＳ１４１１で、誤差データライトＤＭＡＣ５０９は、処理したラスターがバンドの最終ラスターかどうかを判断し、最終ラスターの場合は本処理動作を終了し、最終ラスターでない場合はステップＳ１４０１へ戻って後続のラスター処理を継続する。
【００７９】
本実施形態では、図１２および図１３に示したフローチャートに従う処理をハードウエア記述言語によってそれぞれ記述し、論理合成を行うことにより、それぞれの画像処理動作の実行が可能な誤差データリードＤＭＡＣおよび誤差データライトＤＭＡＣを生成する。すなわち、この論理合成によって生成された論理回路がそれぞれ誤差データリードＤＭＡＣ部および誤差データライトＤＭＡＣ部を構成する。
【００８０】
図１４は、以上説明した本実施形態に係る記録装置における、１２色のインク色の記録データを生成するための処理を、特に誤差拡散による量子化を説明するフローチャートである。本処理は、上述したように、同一の入力画像データに対して画像処理を二度行い１２色分の記録データを得るものである。
【００８１】
図１４において、最初に、ステップＳ１５０１で、ＣＰＵ１０２は、前半で処理する６色分の画像処理に対応するレジスタを設定する。すなわち、図１５（ａ）に示す各設定値を画像処理部１０９のレジスタ部５０４に設定する。
【００８２】
次に、ＣＰＵ１０２はステップＳ１５０２で、レジスタ部５０４の画像処理起動レジスタ８０１に値「１」をライトして、画像処理を起動する。本ステップの処理によって画像処理部１０９は、図５およびそれ以降の図を参照して上述したようにして、前半６色分の１バンドの画像処理を実行し、２値の記録データを生成する。
【００８３】
ステップＳ１５０３では、前半で処理する６色分の画像処理が終了するのを待機する。この画像処理の終了は、画像処理部１０９が、図１１のステップＳ１２０８の処理で発行する割り込み通知により判断することができる。
【００８４】
前半６色分の画像処理が終了して割り込み通知を受信すると、ステップＳ１５０４でＣＰＵ１０２は、後半で処理する６色分の画像処理に対応するレジスタを設定する。すなわち、図１５（ｂ）に示す各設定値を画像処理部１０９のレジスタ部５０４に設定する。
【００８５】
次に、ステップＳ１５０５では、上述のステップＳ１５０２の処理と同様にレジスタ部５０４の画像処理起動レジスタ８０１に値「１」を書き込んで画像処理を起動する。本ステップの処理により画像処理部は後半６色分の１バンド分の画像処理を実行して２値の記録データを生成する。そして、ステップＳ１５０６でＣＰＵ１０２は、後半で処理する６色分の画像処理が終了するのを待機する。画像処理の終了は、画像処理部１０９が、ステップＳ１２０８の処理において発行する割り込み通知により判断する。
【００８６】
後半６色分の処理が終了すると、ステップＳ１５０７でＣＰＵ１０２は、全画像データの処理が完了したか否かを判断する。未処理の画像データが残っている場合は、ステップＳ１５０１に戻って処理を継続し、全画像データの処理が完了している場合は、本処理を終了する。
【００８７】
以上の記録データ生成において、図１５（ａ）に示す各設定値をレジスタ部５０４に設定することにより、先頭ラスターの処理では、先頭ラスター原点対応アドレス８０８に設定されたアドレス０ｘ０１２０００００で示されるＲＡＭ部１１６から誤差データの読み込みを行う。ここには、先行処理したバンドの最終ラスターから拡散される誤差データのうち前半６色分の誤差データが格納されている。また、６４番目のラスターが最終ラスターとなり、このラスターでは、最終ラスター原点対応アドレスレジスタ８０９に設定されたアドレス０ｘ１２００００００で示されるＲＡＭ部１１６への誤差データ書き込みを行う。この誤差データは、後続するバンドの前半６色を処理する際に、その後続バンドの先頭ラスターに拡散される誤差データとして使用される。一方、２番目のラスターから６３番目のラスターまでの中間ラスターでは、共通原点対応アドレスレジスタ８０７に設定されたアドレス０ｘＡ０００００００で示される誤差バッファ部５１０に対して、誤差データのリードおよびライトが行われる。
【００８８】
また、図１５（ｂ）の各設定値をレジスタ部５０４に設定する後半の６色の画像処理では、同様に先頭ラスターの誤差データ読み込みおよび最終ラスターの誤差データ書き込みはＲＡＭ部１１６に対して実行される。また、上記先頭および最終ラスター以外の中間のラスターでは、前半６色の場合と同様、画像処理部の誤差バッファ部５１０が誤差データの格納領域として使用される。
【００８９】
以上説明したように、本実施形態に係る誤差拡散による量子化では、６色分の量子化処理を実行する画像処理回路を二度動作させることにより１２色分の二値化画像データを得る。この際、先頭ラスターに拡散する誤差データおよび最終ラスターから拡散される誤差データについては、動作速度が比較的遅いＤＲＡＭ等で構成されるＲＡＭ部１１６にアクセスする。一方、それ以外の誤差データについては、画像処理回路内の動作速度の速い、すなわちアクセスの時間が短いＳＲＡＭで構成される誤差バッファ部５１０にアクセスする。
【００９０】
これにより、各ラスターの１ライン分の誤差データを読み出し、また、書き込む場合に、比較的動作速度が遅いＲＡＭ部１１６にアクセスするラスターを先頭および最終ラスターのみとすることができる。その結果、誤差データの読み出し、書き込みのためのメモリアクセス速度を全体として向上させることができる。すなわち、同じ画像処理を複数実行するようにして、その処理回路の規模を小さくした場合、誤差バッファ部のような回路内のメモリも、上例の６色分のように、複数回に分割して処理されるデータ量に見合った容量となる。このため、例えば、前半６色分から後半６色分に処理が移るときに、その前後の計１２色分の誤差データを誤差バッファ部に同時に格納できず、ＲＡＭ部１１６のような処理回路外の他のメモリを利用する。この際、本実施形態では、この他のメモリへのアクセスを先頭および最終ラスターのみとすることにより、このメモリにアクセスすることによる速度の低下をできるだけ抑制することができる。
【００９１】
この結果、生成する記録データが１２色分など多量になる場合でも、誤差拡散処理回路の規模を増すことなく、誤差拡散処理を高速に行うことが可能となる。
【００９２】
（他の実施形態）
上述の実施形態では、画像データを多値誤差拡散方式による量子化とドット配置パターンとを組み合わせることによって二値の記録データを生成する場合について説明した。しかし、本発明はこれに限定されるものではなく、量子化処理によって直接二値化する二値誤差拡散方式を採用した記録装置においても本発明を構成できることはもちろんである。
【００９３】
また、上述の実施形態では、ＣＰＵおよび各回路ブロックが一つのパッケージに封止されたシステムＬＳＩとして構成される場合について説明した。しかし、本発明はこれに限定されるものではなく、一部の回路ブロックまたは全部の回路ブロックをそれぞれ個別のＩＣ等によって構成することもできる。
【００９４】
また、上述の実施形態では、ハードウエア記述言語により記述した内容を論理合成して論理回路を生成し、その論理回路によって量子化処理を行う場合について説明したが、本発明はこれに限定されるものではない。上述した実施形態の機能を実現するソフトウエアのプログラムを記憶した記憶媒体を装置に供給し、その装置やコンピュータのＣＰＵが記憶媒体に格納されたプログラムを読み出して実行することによって、量子化処理を行う場合も本発明に含まれる。この場合には、記憶媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、そのプログラムを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムのプログラムコードの指示に基づき、コンピュータ上にて稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も本発明に含まれる。
【００９５】
（さらに他の実施形態）
本発明は、各画素の階調を表現する画像データを量子化処理するための方式として、注目画素の誤差データをその注目画素の周辺の周辺画素に分散させる誤差拡散方式を用いる画像処理装置、および画像処理方法としても適用可能である。その画像処理装置は、前述した実施形態のように記録装置１００に一体的に組み込まれる他、ホスト装置において構成することができる。
【００９６】
また、本発明は、量子化処理した画像データに基づいて画像を記録するための記録方式について、限定するものではない。したがって、その記録方式は、前述したインクジェット記録方式以外の記録方式であってもよく、また、その記録方式を実現する記録装置の構成も限定されない。
【符号の説明】
【００９７】
１００    記録装置
１０２    ＣＰＵ
１０９    画像処理部
１１３    画像形成コントロール部ＡＳＩＣ
１１６    ＲＡＭ部
１１８    ＲＯＭ部
５０１    色変換処理回路部
５０２    量子化処理回路部
５０３    二値化処理回路部
５０４    レジスタ部
５０５    制御回路部
５０８    誤差データリードＤＭＡＣ
５０９    誤差データライトＤＭＡＣ
５１０    誤差バッファ部
【図１】
0005528209.tif 000002
【図２】
0005528209.tif 000003
【図３】
0005528209.tif 000004
【図４】
0005528209.tif 000005
【図５】
0005528209.tif 000006
【図６】
0005528209.tif 000007
【図７】
0005528209.tif 000008
【図８】
0005528209.tif 000009
【図９】
0005528209.tif 000010
【図１０】
0005528209.tif 000011
【図１１】
0005528209.tif 000012
【図１２】
0005528209.tif 000013
【図１３】
0005528209.tif 000014
【図１４】
0005528209.tif 000015
【図１５】
0005528209.tif 000016