(57)【特許請求の範囲】
【請求項１】
処理対象の画素の量子化前データを比較用閾値と比較することによって、前記量子化前データよりも階調レベル数が小さい量子化データを生成する量子化部と、
前記量子化部で生成された前記量子化データと前記量子化前データとに基づいて、前記量子化データと前記量子化前データの誤差データを算出する誤差算出部と、
前記誤差算出部により算出された誤差データを前記処理対象の画素と異なる画素ラインに含まれる未処理の画素に拡散する誤差として入力するための第１の誤差入力部と画素の配列に応じた入力加算値を定める入力加算テーブルの入力部とを有し、前記処理対象の画素の入力画像データの値に加算するための加算用データを生成する生成部と、
前記誤差算出部により算出された誤差データを、前記処理対象の画素と同じ画素ラインに含まれる未処理の画素に拡散する誤差として入力するための第２の誤差入力部を有し、前記生成部によって生成された前記加算用データと前記第２の誤差入力部に入力された誤差データとを前記処理対象の画素の入力画像データに加算して前記量子化前データとして前記量子化部に出力する処理を行う処理部と、
を備え、
誤差拡散処理を行う第１の画像処理モードとディザ処理を行う第２の画像処理モードの一方を実行することにより、前記処理対象の画素の入力画像データに対し記録媒体に画像を記録するための画像処理を行う画像処理装置であって、  
前記生成部は、
ｉ）前記第１の画像処理モードにおいて、前記第１の誤差入力部に入力された、第１画素の第１の色の量子化データを生成した際の誤差データを利用して、前記入力加算値を利用せずに、前記第１画素の前記第１の色に対応する入力画像データに続いて処理される第２画素の前記第１の色に対応する入力画像データに加算するための加算用データを生成し、
ｉｉ）前記第２の画像処理モードにおいて、前記第１の誤差入力部に入力された、第１画素の第１の色の量子化データを生成した際の誤差データを利用せずに、前記入力加算値を利用して、前記第１画素の前記第１の色に対応する入力画像データに続いて処理される前記第１画素の第２の色に対応する入力画像データに加算するための加算用データを生成することを特徴とする画像処理装置。
【請求項２】
前記第１の画像処理モードにおいて、
前記量子化部は、第１画素の第１の色に対応する量子化データを生成し、次いで前記第１画素に隣接する第２画素の前記第１の色に対応する量子化データを生成し、
前記処理部は、前記第２の誤差入力部に入力された、前記第１画素の前記第１の色の量子化データを生成した際の誤差データと、前記生成部によって生成された前記加算用データとを、前記第２画素の前記第１の色に対応する入力画像データに加算して得られた値を、前記量子化前データとして前記量子化部に出力し、
前記第２の画像処理モードにおいて、
前記量子化部は、第１画素の第１の色に対応する量子化データを生成し、次いで前記第１画素の前記第１の色とは異なる第２の色に対応する量子化データを生成し、
前記処理部は、前記第２の誤差入力部に入力された、前記第１画素の前記第１の色の量子化データを生成した際の誤差データと、前記生成部によって生成された前記加算用データとを、前記第１画素の前記第２の色に対応する入力画像データに加算して得られた値を、前記量子化前データとして前記量子化部に出力することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の画像処理モードにおいて、前記誤差算出部は、算出した誤差に所定の係数を乗算して得られた複数の値を前記第１の誤差入力部および前記第２の誤差入力部にそれぞれ出力し、
前記第２の画像処理モードにおいて、前記誤差算出部は、算出した誤差を０に設定した値を前記第１の誤差入力部に出力し、前記算出した誤差に所定の係数を乗算して得られた値を前記第２の誤差入力部に出力することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記第１の画像処理モードは画質優先モードであり、前記第２の画像処理モードは記録速度優先モードであることを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記生成部は、第１のアクセス速度と第１の容量を有する高速メモリと、前記第１のアクセス速度より遅い第２のアクセス速度と前記第１の容量より大きい第２の容量を有する大容量メモリと、をそれぞれ用い、前記高速メモリを、前記第１の画像処理モードの場合には３つの領域に、前記第２の画像処理モードの場合には２つの領域に、それぞれ分割し、前記領域の単位で前記大容量メモリとの間のアクセスを行わせることを特徴とする請求項１から４のいずれか１項に記載の画像処理装置。
【請求項６】
前記入力画像データは所定数の画素からなる入力ブロックごとに処理され、
前記量子化部は、前記入力ブロックのそれぞれについて、前記第１の画像処理モードの場合は色ごとに、前記第２の画像処理モードの場合は画素ごとに処理を行うことを特徴とする請求項１から５のいずれか１項に記載の画像処理装置。
【請求項７】
前記量子化部は、前記量子化前データに基づいて前記量子化前データよりも階調レベル数が小さい３値以上の前記量子化データを生成することを特徴とする請求項１から６のいずれか１項に記載の画像処理装置。
【請求項８】
前記量子化部が生成した前記量子化データに従って、記録媒体に色材を付与することにより記録を行う記録部を更に有することを特徴とする請求項１から７のいずれか１項に記載の画像処理装置。
【請求項９】
前記記録部はインクを吐出するインクジェット記録ヘッドを有することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記記録部は、電子写真方式によって記録媒体に記録を行うことを特徴とする請求項８に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関し、詳しくは、誤差拡散法とディザ法による量子化処理を共通の回路を用いて実行する技術に関するものである。
【背景技術】
【０００２】
多値で表される高階調の画像データは、量子化によってより低階調の画像データに変換され、これによって、インクジェット記録装置など記録装置における記録データが生成される。従来、この量子化において、ディザ法による処理（以下、ディザ処理）と誤差拡散法による処理（以下、誤差拡散処理）を共通の回路を用いて実行することが行われている（特許文献１）。これにより、ディザ法と誤差拡散法のそれぞれの利点を有効に活用した量子化を行うことが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−２３３１２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、ディザ法と誤差拡散法に共通する機能である、画像データが示す画素値を閾値と比較するためのコンパレータ回路、および閾値発生のための回路を共有するだけである。すなわち、コンパレータ回路および閾値発生回路以外はディザ処理および誤差拡散処理それぞれで個別の回路が用いられている。このため、特許文献１に記載の、共有のための構成では回路規模の低減を有効に行えないなどの問題がある。
【０００５】
本発明の目的は、ディザ処理および誤差拡散処理を共通の回路を用いて実行する構成において、回路規模の低減を有効に行うことを可能とする画像処理装置および画像処理方法を提供することである。
【課題を解決するための手段】
【０００６】
そのために本発明は、処理対象の画素の量子化前データを比較用閾値と比較することによって、前記量子化前データよりも階調レベル数が小さい量子化データを生成する量子化部と、前記量子化部で生成された前記量子化データと前記量子化前データとに基づいて、前記量子化データと前記量子化前データの誤差データを算出する誤差算出部と、前記誤差算出部により算出された誤差データを前記処理対象の画素と異なる画素ラインに含まれる未処理の画素に拡散する誤差として入力するための第１の誤差入力部と画素の配列に応じた入力加算値を定める入力加算テーブルの入力部とを有し、前記処理対象の画素の入力画像データの値に加算するための加算用データを生成する生成部と、前記誤差算出部により算出された誤差データを、前記処理対象の画素と同じ画素ラインに含まれる未処理の画素に拡散する誤差として入力するための第２の誤差入力部を有し、前記生成部によって生成された前記加算用データと前記第２の誤差入力部に入力された誤差データとを前記処理対象の画素の入力画像データに加算して前記量子化前データとして前記量子化部に出力する処理を行う処理部と、を備え、誤差拡散処理を行う第１の画像処理モードとディザ処理を行う第２の画像処理モードの一方を実行することにより、前記処理対象の画素の入力画像データに対し記録媒体に画像を記録するための画像処理を行う画像処理装置であって、前記生成部は、ｉ）前記第１の画像処理モードにおいて、前記第１の誤差入力部に入力された、第１画素の第１の色の量子化データを生成した際の誤差データを利用して、前記入力加算値を利用せずに、前記第１画素の前記第１の色に対応する入力画像データに続いて処理される第２画素の前記第１の色に対応する入力画像データに加算するための加算用データを生成し、ｉｉ）前記第２の画像処理モードにおいて、前記第１の誤差入力部に入力された、第１画素の第１の色の量子化データを生成した際の誤差データを利用せずに、前記入力加算値を利用して、前記第１画素の前記第１の色に対応する入力画像データに続いて処理される前記第１画素の第２の色に対応する入力画像データに加算するための加算用データを生成することを特徴とする。
【発明の効果】
【０００７】
以上の構成によれば、ディザ処理および誤差拡散処理を共通の回路を用いて実行する構成において、回路規模の低減を有効に行うことが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る記録装置における、主に、画像処理のための構成を示すブロック図である。
【図２】図１に示した量子化処理制御部の詳細な構成を示すブロック図である。
【図３】（ａ）〜（ｃ）は、図２に示した量子化処理制御部９０８における画像データの処理単位を説明する図である。
【図４】図２に示した誤差算出部の詳細な回路構成を示すブロック図である。
【図５】誤差拡散処理における誤差を拡散する画素位置を示す図である。
【図６】図２に示したデータバッファ部内の高速メモリの分割領域を示す図である。
【図７】（ａ）および（ｂ）は、データバッファ部１０４の詳細な回路構成を示すブロック図である。
【図８】本発明の第１実施形態に係る入力加算値テーブルを説明する図である。
【図９】第１実施形態に係る、２値データに量子化する場合の色間補正処理を説明する図である。
【図１０】本発明の第２実施形態に係る入力加算値テーブルを説明する図である。
【図１１】第２実施形態に係る、３値データに量子化する場合の色間補正処理を説明する図である。
【発明を実施するための形態】
【０００９】
以下、添付の図面を参照して本発明の実施形態を詳細に説明する。  
（第１実施形態）
図１は、本発明の一実施形態に係る記録装置における、主に、画像処理のための構成を示すブロック図であり、図に示す画像処理構成は、以下で説明される回路構成を除いて、記録装置におけるコンピュータにおいて実行される処理の機能として表されるものである。
【００１０】
本実施形態の記録装置は、図１に示すように、画像処理部９０１、データ受信部９０２、ヘッドデータ生成部９０３、記録ヘッド９０４を有した構成されている。データ受信部９０１は、コンピュータやカメラなどのホスト装置からの画像データを受信し、画素単位の画像データとして画像処理部９０１に送信する。
【００１１】
画像処理部９０１は、前段処理部９０５、後段処理部９０６、出力γ補正部９０７、量子化処理制御部９０８を有して構成されている。前段処理部９０５は、入力した８ビット、２５６階調の画像データについて、画素ごとに画像データが示す色の変換を行う。すなわち、ホスト装置において画像を再現するときの色域の色を、本実施形態の記録装置で画像を再現するときの色域の色に変換する色域変換（ガマットマッピング）を行う。後段処理部９０６は、色域変換された、同じく８ビット、２５６階調の入力画像データついて、画素ごとに、画像データが示す色を表すことができる、記録ヘッド９０４で吐出するインクの色の組み合わせに変換する。出力γ補正部９０７は、後段処理された画像データに対して、インク色ごとに記録ヘッドの特性に応じたγ補正をする。そして、量子化処理制御部９０８は、その詳細が図２以降で後述されるように、本実施形態の量子化回路の制御を行い、それぞれのインク色の、８ビットで、階調値が２５６階調の画像データを量子化して１ビットの２値データを出力する。本実施形態の量子化処理制御部９０８は、記録モードに応じて、量子化の態様を変更する。すなわち、量子化制御部９０８は、誤差拡散処理による量子化とディザ処理による量子化を共通の回路によって実施するが、記録モードに応じて、誤差拡散処理による量子化またはディザ処理による量子化を切替えて実行する。例えば、画質よりも記録速度を優先するモードでは、ディザ処理による量子化を行い、画質を優先するモードでは、誤差拡散処理による量子化を行うようにする。
【００１２】
ヘッドデータ生成部９０３は、量子化された２値の画像データから記録ヘッドを９０４の吐出を行うための記録データ（ヘッド駆動データ）を生成し、記録ヘッド９０４に転送する。
【００１３】
なお、以上の説明では、記録装置としてインクジェット記録装置を例にとって説明したが、本実施形態で説明した量子化処理を適用可能な記録装置は、この方式の記録装置に限定されるものではない。例えば、電子写真方式や熱転写方式等の記録装置にも適用できることが以下の説明からも明らかである。
【００１４】
図２は、図１に示した量子化処理制御部９０８の詳細な構成を示すブロック図である。本実施形態の量子化処理制御部は、入力加算処理部１０１、量子化処理部１０２、誤差算出部１０３、データバッファ部１０４、およびメモリ１０５を有して構成されており、これらの処理部の機能を回路構成として実現するものである。そして、本実施形態の量子化処理制御部は、誤差拡散処理による量子化とディザ処理による量子化を選択して実行する。
【００１５】
図３（ａ）〜（ｃ）は、図２に示した量子化処理制御部９０８における画像データの処理単位を説明する図である。量子化処理制御部９０８は、入力画像データに対して、これを所定数の画素からなる入力ブロックに分割して入力ブロックごとに処理を行う。図３（ａ）は、入力する画像データに対する入力ブロックの例を示しており、画像データの画像幅をｌ＋１、画像高さをｍ＋１である場合に、入力ブロックは幅方向のｎ＋１個の画素（００〜０ｎ）、（０ｎ＋１〜０２（ｎ＋１））、・・・によって構成されることを示している。画像データにおいて、入力ブロックの総ての画素について処理が終わると、幅方向に隣接する次の入力ブロックの処理を行う。そして、幅方向の１つの画素ラインについて処理を終了すると、その下の１つの画素ラインについて入力ブロックごとの処理が同様に行われる。
【００１６】
入力ブロックにおける画素ごとの処理は、誤差拡散処理の場合とディザ処理の場合とで異なる順序の処理を行う。
【００１７】
誤差拡散処理を実行する場合は、図３（ｂ）に示すように、入力ブロック内では色ごとに処理を行う。具体的には、入力ブロックにおける画素の処理順序は、色Ａの画像データについてある画素００に対する誤差拡散処理を行うと、同じ色Ａの隣接する画素０１の処理を行う。そして、色Ａについてブロック内の総ての画素００〜０ｎの誤差拡散処理が終わると、次の色Ｂについて、同じ画素位置の画素００〜０ｎについて同様に処理を行い、次の色Ｃについても同様に処理を行う。
【００１８】
ディザ処理を実行する場合は、図３（ｃ）に示すように、入力ブロックでは画素ごとに処理を行う。具体的には、画素００の色Ａの画素値に対するディザ処理を行った後に同じ画素００の色Ｂ、同じ画素００の色Ｃの処理を順次行う。そして、画素００について総ての色Ａ〜Ｃの処理が終わると、後に次の画素０１の誤差拡散処理を行う。
【００１９】
再び図２を参照すると、量子化処理制御部９０８における入力加算処理部１０１には、入力画素データとして８ビット、２５６階調の画素データが１画素１色単位で入力する。入力加算処理部１０１は、この入力画素データに対して、データバッファ部１０４に格納されている加算データ、および誤差算出部１０３で算出された誤差データのうち誤差データ１を加算する。これらデータが加算された後のデータは、量子化前データとして量子化処理部１０２に入力する。本実施形態の入力加算処理部１０１は、量子化前データの最大値および最小値を持っており、上述した加算後のデータが、量子化前データの最大値以上になる場合には最大値に、量子化前データの最小値以下になる場合には最小値にクリップする。データバッファ部１０４から入力する加算データは、その詳細が後述されるように、誤差拡散処理の場合とディザ処理の場合とで、異なる内容となる。
【００２０】
量子化処理部１０２は、入力加算処理部１０１から入力される量子化前データを量子化し、量子化データ、本実施形態では２値データとして出力する。量子化処理部１０２は、２値データを得るための１つの閾値データを持っており、この閾値を、誤差拡散処理を行う場合とディザ処理を行う場合とで共通に用いる。すなわち、誤差拡散処理による量子化で用いる閾値は本来１つであり、この共通の閾値を用いる。一方、ディザ処理による量子化を行うときは、後述される入力加算値テーブルがデータバッファ部１０４からの加算データに含まれる。これにより、この共通の閾値に入力加算値テーブルの値が画素ごとに加算され、所定サイズの、異なる閾値のパターン、つまりディザパターン（マトリクス）が構成される。
【００２１】
なお、本実施形態は２値の量子化データを得る例であるが、第２実施形態でも後述されるように、３値以上の量子化データを得る形態も可能であり、量子化処理部１０２は、この量子化レベル数に応じた数の閾値を持つことができる。そして、それぞれの閾値を、上述のように、誤差拡散処理およびディザ処理で用いることにより、量子化処理を行うことができる。また、量子化処理部１０２の量子化処理の他の形態として、量子化前データに対して量子化係数を乗算し、乗算後のデータをビットシフトすることで量子化処理を行うようにすることができる。その際、量子化処理部１０２には、量子化する量子化レベル数分の量子化係数が保持されており、量子化レベル数に応じた量子化係数が選択される。
【００２２】
誤差算出部１０３は、図４にてその詳細が後述される処理を行うことによって、誤差データ１（第１誤差データともいう）および誤差データ２（第２誤差データともいう）を生成する。誤差拡散処理の場合、誤差算出部１０３は、量子化データと量子化前データを比較することにより、量子化による誤差を算出する。詳しくは、誤差算出部１０３は、量子化レベル数（本実施形態では２値（レベル数２））と量子化データとに応じた量子化データ代表値を持っており、量子化前データから量子化データ代表値を減算することにより誤差を算出する。また、誤差算出部１０３は、以上のように減算して得られる誤差の、処理対象画素および過去に処理した画素の誤差、およびこれら誤差に基づいて誤差データ１および誤差データ２を生成するための係数を保持している。そして、誤差拡散処理の場合、図５に示すように、誤差データ１として、画像データにおいて処理対象画素と同じラインの画素に拡散する誤差を上記係数に応じて出力し、誤差データ２として、処理対象画素のラインの次のラインの画素に拡散する誤差を上記係数に応じて出力する。出力した誤差データ１および誤差データ２は、それぞれ入力加算処理部１０１、データバッファ部１０４に入力され、次のライン処理時まで保持される。
【００２３】
一方、ディザ処理の場合、係数Ｂのみが０でない値を有するように設定され、後述されるように、１画素前の画素の誤差×係数Ｂを含む誤差データ１が出力され、色間補正に用いられる。
【００２４】
図４は、誤差算出部１０３の詳細な回路構成を示すブロック図である。図４において、レジスタ１１０２には、図１にて上述したように記録モードに対応して設定される誤差拡散処理またはディザ処理に応じて係数Ａ〜Ｆの値が設定される。減算器１１０１は、入力する量子化データに応じた量子化データ代表値から量子化前データを減算し、その処理対象画素の誤差を算出する。すなわち、本実施形態のように２値データに量子化する場合、量子化データが「０」であるときは量子化データ代表値は「０」であり、量子化データが「１」であるときは量子化データ代表値は「２５５」となる。減算器１１０１で算出された誤差値は、乗算器１１０３で、係数Ａ〜Ｆを用いた計算に供され、最終的に、誤差データ１および誤差データ２が出力される。また、バッファ１１０４、１１０６、１１０８、１１１０は、それぞれ１つの画素の処理時間分を遅延させて出力するのである。
【００２５】
誤差拡散処理を実行する場合、係数Ａ−Ｆはそれぞれ処理対象画素で生じた誤差を他の画素に拡散する（振りまく）割合である。図５は、誤差を拡散する画素位置および拡散する係数を示す図である。図５に示すように、同じ画素ラインにおいて、処理対象画素の右側で隣接する画素には係数Ｂが示す割合で誤差を拡散し、さらにその誤差が拡散される画素に隣接する画素には係数Ａが示す割合で誤差を拡散する。また、処理対象画素が属するラインの１つ下のラインにおいて、処理対象画素の右下、下、左下の画素にはそれぞれ係数Ｃ、Ｄ、Ｅが示す割合で誤差を拡散し、さらに左下の画素に左側で隣接する画素には係数Ｆが示す割合で誤差を拡散する。
【００２６】
乗算器１１０３は、減算器１１０１で得られた誤差値に対して係数Ａ、Ｂをそれぞれ乗算した値Ａ´、Ｂ´を生成する。乗算値Ａ´は、バッファ１１０４を経て、加算器１１０５によって乗算値Ｂ´と加算される。その結果、誤差データ１として、処理対象画素の誤差値に対する係数Ｂの乗算値と、１つ前に処理した画素の誤差値に対する係数Ａの乗算値と、を加算した値が出力される。この誤差データ１は、上述したように入力加算処理部１０１で入力画像データに加算され、これにより、処理対象画素と同じ画素ラインの次の処理対象画素に誤差が拡散される。同様に、乗算器１１０３は、減算器１１０１で得られた誤差値に対して係数Ｃ、Ｄ、Ｅ、Ｆをそれぞれ乗算した値Ｃ´、Ｄ´、Ｅ´、Ｆ´を生成する。乗算値Ｃ´は、同じく１画素分のデータを順次格納するバッファ１１０６を経て、加算器１１０７によって乗算値Ｄ´と加算される。そして、これらの加算結果は、バッファ１１０８を経て、加算器１１０９によって乗算値Ｅ´と加算される。さらに、この加算結果は、バッファ１１１０を経て、加算器１１１１によって乗算値Ｆ´と加算される。その結果、誤差データ２として、処理対象画素の誤差値に対する係数Ｃの乗算値と、１つ前に処理した画素の誤差値に対する係数Ｄの乗算値と、２つ前に処理した画素の誤差値に対する係数Ｅの乗算値と、３つ前に処理した画素の誤差値に対する係数Ｆの乗算値と、を加算した値が出力される。この誤差データ２は、後述するように、データバッファ部１０４を経ることによって１ライン分の下の画素に拡散する誤差データとなる。
【００２７】
一方、ディザ処理を実行する場合、処理対象画素の誤差に対応した係数Ｂに、後述する色間補正のための補正量を算出する係数を設定する。これにより、誤差データ１を出力して色間補正のため隣接する処理対象画素（図３（ｃ）に示すように、ディザ処理の場合、他の色の画素）の値に加算することができる。なお、本実施形態では、色間補正量（色間補正データ）を算出するための係数Ｂとしては１を設定する。また、係数Ａは０に設定するが、誤差伝搬係数Ａに色間補正量を算出する係数を設定することによって２つ先の色データに色間補正を行うこともできる。また、色間補正処理を行わない場合のディザ処理では、係数Ａ、係数Ｂともに０を設定する。さらに、ディザ処理時には、後述されるように、誤差データ２は使用しないため、係数Ｃ〜Ｆには０を設定するが、この形態に代わって、係数Ｃ〜Ｆの値を任意の値に設定することもできる。
【００２８】
再び図２を参照すると、データバッファ部１０４は、誤差拡散処理とディザ処理とで、誤差データ２と入力加算値テーブルとを切替えて用いる。すなわち、データバッファ部１０４は、誤差拡散処理を実行する場合は、誤差算出部１０３から入力する誤差データ２を用いて加算データを出力し、ディザ処理を実行する場合は、入力加算値テーブルを用いて加算データを出力する。データバッファ部１０４は、この加算データの出力において、入力画像データの画素の位置を監視しており、メモリが保持しているデータの中で入力画像データの画素の位置に応じたデータを加算データとして入力加算処理部１０１に入力する。本実施形態のデータバッファ部１０４は、その内部に有している一時的なメモリと、データバッファ部１０４の外にあるメモリ１０５を用いてデータの保持を行う。データバッファ部１０４内のメモリは、図７にて後述される、容量は小さいが比較的アクセス速度が速い高速メモリであり、メモリ１０５は、容量は大きいがアクセス速度が比較的遅いメモリである。処理対象の画素の処理で必要な情報を高速メモリに持つことにより処理の高速化を図ることができる。データバッファ部１０４内の高速メモリは、処理に応じて複数の領域に分割して使用される。図６は、データバッファ部１０４内の高速メモリの分割領域を示す図である。図６に示されるように、誤差拡散処理の場合は３つの領域に分割され、ディザ処理の場合は２つの領域にそれぞれ分割されて用いられる。
【００２９】
図７（ａ）および（ｂ）は、データバッファ部１０４の詳細な回路構成を示すブロック図であり、それぞれ誤差拡散処理を実行する場合のデータフローとディザ処理を実行する場合のデータフローを示している。図７（ａ）および（ｂ）において、メモリ１００１は、上述したデータバッファ部内の高速メモリである。また、セレクタ１００２は、データバッファ部１０４からの出力である加算データとして、メモリ１００１に格納されているデータを出力するか、０値を出力するか、を選択する。
【００３０】
誤差拡散処理を実行する場合、図７（ａ）に示すように、誤差データ２は、処理対象の画素ごとにメモリ１００１に格納される。具体的には、誤差データ２は、図６に示す３つの領域のうち、処理対象の画素が属する処理中の入力ブロックで使用する領域（例えば、領域１）に格納される。この処理中の入力ブロックに関する誤差データ２の格納は、使用する領域のうち、データ出力後の領域（出力済みの領域）に対して行われる。この格納と同時に、メモリ１００１の、処理対象の画素が属する入力ブロックの前の入力ブロックで使用する領域（例えば、領域３）に格納されている誤差データ２、つまり、前の入力ブロックで生成された誤差データ２は、メモリ１０５に転送されるとともに、メモリ１０５から、メモリ１００１の、処理対象の画素が属する入力ブロックの次の入力ブロックで使用する領域（例えば、領域２）に、次の入力ブロックで使用する誤差データ２が転送される。すなわち、メモリ１０５は、ある入力ブロックの処理においてその前の入力ブロックで生成された誤差データ２を格納することにより、順次１ライン分の画素ごとの誤差データ２を蓄積する。そして、それぞれの入力ブロックについて、その処理タイミングの前の入力ブロックの処理でそれぞれの画素に対応した１ライン前の処理に係る誤差データ２を出力しその入力ブロックで使用する領域に格納する。
【００３１】
メモリ１０５とメモリ１００１と間の転送は、入力ブロック単位で行う。メモリ１００１からセレクタ１００２に対して、画素ごとに処理中の入力ブロックで使用する領域に格納されているデータが出力される。そして、次の入力ブロックの処理では、次の入力ブロックで使用する領域（例えば、領域２）は処理中の入力ブロックで使用する領域に、前の入力ブロックで使用する領域（例えば、領域３）は次の入力ブロックで使用する領域に、処理中の入力ブロックで使用する領域（例えば、領域１）は前の入力ブロックで使用する領域に、それぞれ変換される。なお、加算データとしてはメモリ１００１からセレクタに転送されたデータを出力するが、入力画像データがページの最初のラインの場合は、前ラインからの誤差データが無いためセレクタ１００２で０値を選択して出力する。
【００３２】
以上説明した量子化制御部９０８の構成によって、誤差データ１は、次の画素の処理時に入力加算処理部１０１に入力して入力画素データに加算される。誤差データ２は、データバッファ部１０４に格納され、次のライン処理時に入力加算処理部１０１に入力して入力画素データに加算される。これにより、例えば、図３（ａ）に示す画素１２に拡散によって加算される誤差は、誤差データ１としての、［画素１０の誤差］×係数Ａ＋［画素１１の誤差］×係数Ｂと、誤差データ２としての、［画素０１の誤差］×係数Ｃ＋［画素０２の誤差］×係数Ｄ＋［画素０３の誤差］×係数Ｅ＋［画素０４の誤差］×係数Ｆと、を加算したものとなる。なお、誤差拡散を行いたくない画素については対応する画素の係数に０を設定することにより誤差拡散を行わないことができる。また、入力ブロックにおけるそれぞれの色の処理の最終画素の処理時に誤差算出部１０３内に保持している誤差は、次の入力ブロックの最初の画素の処理時に使用するため保持しておく。ただし、ラインの最初の画素を処理する場合には誤差算出部１０３内に保持している誤差はリセットする。
【００３３】
図７（ｂ）を参照すると、ディザ処理を実行する場合、１ページ分の入力画像データを処理する前に、入力加算値テーブルをメモリ１０５内に書き込む。そして、入力画像データに対してディザ処理を実行するときには、入力加算値テーブルのうち、入力ブロックごとにその入力ブロックに対応した画素の入力加算値を、メモリ１０５からメモリ１００１に転送する。そして、処理に係る入力ブロックの処理対象画素に対応する入力加算値を、セレクタ１００２に加算データとして出力する。これにより、この加算データが、入力加算処理部１０１（図２）で入力画像データと加算されることにより、その加算結果と、量子化処理部１０２における１つの閾値（本実施形態では、「１２８」）と、の画素ごとの比較結果が、所定のディザパターンによってディザ処理されたものと同等のものとなる。
【００３４】
図８は、本発明の一実施形態に係る入力加算値テーブルを説明する図である。図８に示すように、入力加算値テーブルは、所定のサイズ（図に示す例は、図示および説明の簡略化のため４画素×４画素）の画素パターンに画素ごとの入力加算値を規定したものであり、このパターンに対応するサイズ（４画素×４画素）の入力画像に対して適用されるものである。入力加算値テーブルの画素ごとの値（入力加算値）は、量子化処理部１０２について設定されている１つの閾値（１２８）の値から、本実施形態のディザ処理で想定している所定のディザテーブル（ディザパターン）の閾値を、減算して得られる差分値である。これを、入力画素データに対して画素ごとにそれ応じた入力加算値を加算することにより、量子化処理部１０２で量子化する際の閾値を一定にしたまま上記所定のディザパターンに従って閾値を変動させるのと同じ効果を持たせることができる。図８に示す例では、２５６階調の入力画像データを、２値データに量子化する場合の例を示している。量子化処理部１０２について設定されている閾値は１２８であり、入力加算テーブルの値は、１２８から上記所定のディザパターンの閾値の値を減算することによって生成される。
【００３５】
本実施形態では、ディザ処理を実行するときは、誤差算出部１０３は、上述したように、量子化処理部１０２による、量子化前データと量子化データとの誤差から、色間補正のための補正量を生成し、誤差データ１として出力する。そして、誤差データ１は、入力加算処理部１０１で、入力画像データにおける次の色の画素値に加算される。なお、処理中の画素について色間補正を行う全ての色を処理が完了した場合、または色間補正を行わない色間の場合は誤差算出部１０３に保持されている誤差データはリセットされる。
【００３６】
図９は、本実施形態に係る、２値データに量子化する場合の色間補正処理を説明する図であり、Ａ、Ｂ、Ｃの３色の２５６階調の入力画像データに対して色間補正処理を行う例を示している。色間補正量は、上述したように、誤差算出部１０３で算出した誤差に対して色間補正係数Ｂを乗算して算出される。図９に示すように、量子化処理部１０２は、色Ａの、入力加算処理部１０１による、入力画像データの画素値と、その前の色の処理に係る誤差データ１と、入力加算値と、を加算した加算結果と、閾値（１２８）と比較する。そして、その誤差（２５５−加算結果）は、誤差データ１（色間補正量）として入力加算処理部１０１において同様に加算されて、色Ｂの加算結果となる。そして、この加算結果が、閾値（１２８）と比較されて、その誤差が色Ｃの誤差データ１（色間補正量）となる。図９に示す例は、色間補正係数Ｂを１とした例であり、色Ａ、色Ｂを量子化した際の誤差がそのまま色Ｂ、色Ｃの色間補正量となる。なお、この色間処理では、入力加算値テーブルの値は、誤差データ１に含まれて加算されることになる。このため、データバッファ部１０４は、２色目以降の処理時には加算データとしてセレクタ１００２で０値を選択する。
【００３７】
色間補正処理によって、ある色が記録された画素にその色とは異なる色を記録し難くするものであり、これにより、記録色材としてのインクの重なりを低減することができる。これにより、記録画像の粒状感を低減することができる。図９に示す例では、ある画素に色Ａが、閾値を超えていることにより記録されているが、色Ｂは色Ａが記録されたため記録され難くなる。そして、色Ｃは色Ｂが記録されていないため記録されやすくなる。ディザ処理の場合は、データバッファ部１０４内の高速メモリ１００１は、上述したように２つの領域に分割されダブルバッファとして使用される（図６）。例えば、領域１を処理中の入力ブロックで使用する領域、領域２を次の入力ブロックで使用する領域とする。これにより、データバッファ部１０４は処理位置に応じた入力加算値テーブルのデータを領域１から選択して出力することができる。また、データバッファ部１０４は、入力ブロックの処理中に次の入力ブロックで使用する入力加算値テーブルデータをメモリ１０５内の大容量メモリからデータバッファ部１０４内の高速メモリの領域２に書き込むことができる。そして、次の入力ブロック処理時には領域２を処理中の入力ブロックで使用する領域、領域１を次の入力ブロックで使用する領域とすることで効率的にメモリを使用することができる。
【００３８】
（第２実施形態）
本発明の第２の実施形態は、ディザ処理による量子化において、多値の画像データを３値以上の多値に量子化する形態に関するものである。図１０は、本発明の第２実施形態に係る入力加算値テーブルを説明する図であり、図１１は、第２実施形態に係る、３値データに量子化する場合の色間補正処理を説明する図である。
【００３９】
図１０に示すように、量子化処理部１０２において設定されている閾値は、３値データに量子化することに対応して、６４、１９２の２つである。そして、想定されるディザパターンとして、ディザ閾値テーブル１とディザ閾値テーブル２の２つが用意される。ここで、ディザ閾値テーブルの画素ごとの閾値の値は、ディザテーブル１の閾値の値に、上記２つの閾値６４と１９２の差である１２８を加算した値である。これにより、入力加算値テーブルを上記２つの閾値に対して共通のものとすることができる。このように設定された入力加算値テーブルの画素ごとの値（入力加算値）は、本実施形態のディザ処理で想定している、上記ディザテーブル１、２の閾値から、量子化処理部１０２について設定されている閾値（６４および１９２）の値をそれぞれ減算した値となる。
【００４０】
図１１に示すように、本実施形態に係る色間補正処理においても、量子化処理部１０２は、色Ａの、入力加算処理部１０１による、入力画像データの画素値と、その前の色の処理に係る誤差データ１と、入力加算値と、を加算した加算結果と、２つの閾値（６４、１９２）とそれぞれ比較する。そして、その誤差は、２つの閾値（６４、１９２）の差である１２８と、加算結果との差として計算される。この誤差は、誤差データ１（色間補正量）として入力加算処理部１０１において同様に加算されて、色Ｂの加算結果となる。そして、この加算結果が、同様に２つの閾値（６４、１９２）と比較されて、その誤差が色Ｃの誤差データ１（色間補正量）となる。
【００４１】
（他の実施形態）
上述した実施形態は、記録モードに応じて、誤差拡散処理とディザ処理とを切替えるものであるが、この形態に限られない。例えば、上述した実施形態で説明した量子化制御部を構成する回路を、プリンタなどの種々の記録装置に対して共通に用い、用いられる記録装置の使用に応じて、誤差拡散処理による量子化またはディザ処理による量子化を実行するように設定してもよい。
【００４２】
また、以上説明した量子化処理制御部は、記録装置においてその処理の実行がされるものとした。しかし、この形態に限られず、例えば、ホスト装置が、量子化処理制御部の回路構成を用いて上述した量子化処理を実行してもよい。そして、その処理をコンピュータに実行させるためのプログラムを格納した不揮発性の記憶媒体を用意して、それらをインストールすることによる実行も可能である。このように、量子化処理制御部の回路構成を用いて上述した量子化処理を実行する装置を、上述したプリンタなどの記録装置を含め、本明細書では画像処理装置という。
【００４３】
以上説明したように、本発明の実施形態によれば、誤差拡散処理による量子化とディザ処理による量子化を、これら処理に共通の機能以外の処理についても共通の回路で行うことができ、これにより、回路共通化による量子化処理部の回路規模の低減を有効に行うことが可能となる。
【符号の説明】
【００４４】
１０１    入力加算処理部
１０２    量子化処理部
１０３    誤差算出部
１０４    データバッファ部
１０５    メモリ
９０８    量子化処理制御部
【図１】
0006448345.tif 000002
【図２】
0006448345.tif 000003
【図３】
0006448345.tif 000004
【図４】
0006448345.tif 000005
【図５】
0006448345.tif 000006
【図６】
0006448345.tif 000007
【図７】
0006448345.tif 000008
【図８】
0006448345.tif 000009
【図９】
0006448345.tif 000010
【図１０】
0006448345.tif 000011
【図１１】
0006448345.tif 000012