(57)【特許請求の範囲】
【請求項１】
注目画素の階調値に応じて閾値を決定し、前記注目画素の階調値に他の画素に生じた拡散誤差を加算した加算値が前記閾値よりも大きい場合には、ドットを形成すると決定し、前記加算値が前記閾値よりも小さい場合には、ドットを形成しないと決定する比較部と、
前記比較部が前記注目画素について前記閾値と前記ドットの形成を決定する期間において、前記注目画素の前記加算値と最大階調値との差に応じた拡散誤差であるオン誤差と、前記注目画素の前記加算値と最小階調値との差に応じた拡散誤差であるオフ誤差のそれぞれについて計算を実行する誤差計算部と、
前記比較部がドットを形成すると決定した場合に前記オン誤差を前記注目画素に生じた前記拡散誤差として選択し、前記比較部がドットを形成しないと決定した場合に前記オフ誤差を前記注目画素に生じた前記拡散誤差として選択する選択部と、
を備える画像処理装置。
【請求項２】
前記比較部は、前記注目画素の階調値に対するディザ処理の結果と前記注目画素の階調値とに応じて前記閾値を変化させることで、ドットの形成のされやすさを制御する、
請求項１に記載の画像処理装置。
【請求項３】
前記比較部は、前記ディザ処理の結果がドットを形成する値である場合には、前記比較部により前記ドットを形成する決定がなされやすいように前記閾値を変化させ、前記ディザ処理の結果がドットを形成しない値である場合には、前記ドットを形成しない決定がなされやすいように前記閾値を変化させる、
請求項２に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置に関し、特にハーフトーニングに関する。
【背景技術】
【０００２】
従来、階調値をプリンターのインクドットの吐出（オン）と非吐出（オフ）を示す値に変換するハーフトーン処理の方法として、ディザ法、誤差拡散法など、様々な方法が知られている。一般に、ハーフトーン処理を高速化するためには、ハーフトーン処理のためのパイプラインプロセッサが採用される。
【０００３】
特許文献１には、ディザ法と誤差拡散法を組み合わせてハーフトーン処理の画質性能を向上させる技術が開示されている。特許文献１に記載された、ディザ処理の結果を用いた誤差拡散処理においては、先行して誤差拡散処理が施された他の画素について生じた拡散誤差を注目画素の階調値に加算し、他の画素の拡散誤差が加算された階調値と、最大階調値又は最小階調値との差に応じた拡散誤差が導出される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−７８９８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載されているように、先行して誤差拡散処理が施された他の画素について生じた拡散誤差を注目画素の階調値に加算する場合、先行して誤差拡散処理が施された画素について生じる拡散誤差が確定するまで注目画素の誤差拡散処理を開始することができない。したがって、特許文献１に記載されたディザ法と誤差拡散法を組み合わせたハーフトーン処理を実行するパイプラインプロセッサには、先行して誤差拡散処理が施された画素について生じる拡散誤差が確定するまで注目画素の誤差拡散処理を遅延させるパイプラインバッファが必要になり、ハーフトーン処理に必要なクロック数が増加するという問題がある。
本発明は、高画質が得られるハーフトーン処理を高速化することを目的の１つとする。
【課題を解決するための手段】
【０００６】
上記目的を達成するための画像処理装置は、注目画素の階調値に応じて閾値を決定し、前記注目画素の階調値に他の画素に生じた拡散誤差を加算した加算値が前記閾値よりも大きい場合には、ドットを形成すると決定し、前記加算値が前記閾値よりも小さい場合には、ドットを形成しないと決定する比較部と、前記比較部が前記注目画素について前記閾値と前記ドットの形成を決定する期間において、前記注目画素の前記加算値と最大階調値との差に応じたオン誤差と、前記注目画素の前記加算値と最小階調値との差に応じたオフ誤差のそれぞれについて計算を実行する誤差計算部と、前記比較部がドットを形成すると決定した場合に前記オン誤差を前記注目画素に生じた前記拡散誤差として選択し、前記比較部がドットを形成しないと決定した場合に前記オフ誤差を前記注目画素に生じた前記拡散誤差として選択する選択部と、を備える。
【０００７】
本発明によると、注目画素のドットオン（ドットを形成する）またはドットオフ（ドットを形成しない）を決定するための処理を実行している期間中に、他の画素（後続画素）に対する誤差拡散処理における初期の処理ステップで必要になる注目画素の拡散誤差をドットオンの場合とドットオフの両方の場合について予め導出しておき、注目画素についてドットオンまたはドットオフが決定されたときに、あらかじめ導出した拡散誤差のいずれかを選択する。これにより、他の画素（後続画素）に対する誤差拡散処理の開始を早めることができるため、ハーフトーン処理を高速化することができる。
【０００８】
なお請求項に記載された各手段の機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら各手段の機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態にかかるブロック図。
【図２】本発明の実施形態にかかるブロック図。
【図３】本発明の実施形態にかかるフローチャート。
【図４】本発明の実施形態にかかるフローチャート。
【図５】本発明の実施形態にかかるデータテーブルを示すグラフ。
【図６】本発明の実施形態にかかる回路図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態を添付図面を参照しながら説明する。尚、各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
１．装置構成
図１に示す本発明の実施例としてのプリンター１は、双方向印刷を行うシリアルインクジェットプリンターである。プリンター１は、送紙モーター３２によって印刷媒体Ｐを搬送する機構と、キャリッジモーター３１によってキャリッジ４０をプラテンの長手方向に往復動させる機構と、キャリッジ４０に搭載された印刷ヘッド９０を駆動してインクドットの吐出を行う機構と、制御ユニット１０とを備えている。
【００１１】
キャリッジ４０をプラテンの長手方向に往復動させる機構は、プラテンの軸と平行に架設されてキャリッジ４０を摺動可能に保持するガイドと、無端ベルトが掛け渡されてキャリッジモーター３１によって駆動されるプーリー等から構成されている。
【００１２】
キャリッジ４０には、カラーインクとして、シアンインクＣ、マゼンタインクＭ、イエロインクＹ、ブラックインクＫ、ライトシアンインクＬｃ、ライトマゼンタインクＬｍをそれぞれ収容したインクカートリッジ４１〜４６が搭載される。以下、Ｃ、Ｍ、Ｙ、Ｋ、Ｌｃ、Ｌｍの階調で表すデータ形式をＣＭＹ形式という。キャリッジ４０の下部の印刷ヘッド４７には、上述の各色のカラーインクに対応するノズル列が形成されている。キャリッジ４０にこれらのインクが充填されたインクカートリッジ４１〜４６を上方から装着すると、各カートリッジから印刷ヘッド４７へのインクの供給が可能となる。
【００１３】
各カラーインクは、面積階調によりフルカラーを表現するための色成分を構成する。すなわち、Ｃ、Ｍ、Ｙ、Ｋ、Ｌｃ、Ｌｍのインクドットが占める面積の割合を異ならせることによりＣ、Ｍ、Ｙ、Ｋ、Ｌｃ、Ｌｍの６つの色成分でフルカラーが表現される。印刷ヘッド４７は、インクドットを吐出する（オン）か、インクドットを吐出しない（オフ）かを格子点毎に制御できるにすぎないため、後述するハーフトーン処理部１６において、ＣＭＹ形式の階調値はインクドットのオンとオフを示すハーフトーンデータに変換され、印刷ヘッド４７はハーフトーンデータに基づいて駆動される。
【００１４】
制御ユニット１０は、ＣＰＵ１３、フラッシュメモリ・ＥＥＰＲＯＭなどの不揮発性記憶媒体からなる外部記憶１２、揮発性記憶媒体からなる主記憶５２、入出力部１１、画像処理ＩＣ（Integrated Circuit）１９を備え、これらがバスで相互に接続されている。制御ユニット１０は、外部記憶１２に記憶されたプログラムを主記憶１４にロードし、ＣＰＵ１３で実行することにより、入力された画像データに対する画像処理を実行してハーフトーンデータを生成し、プリンター１の動作全般を制御する。
【００１５】
入出力部１１は、ＵＳＢ、イーサネット（登録商標）、ＩｒＤＡ、ブルートゥース等の規格に準拠したデータ入力インターフェースを備え、リムーバブルメモリや外部機器から画像データを入力することができる。本実施例においては、入出力部１１から入力される画像データは、レッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の３色の色成分の階調値を画素毎に持つ。
【００１６】
外部記憶１２には、ＯＳ、印刷制御プログラム等の各種のプログラムのほか、色変換テーブル１２０、ディザマスク１２１、誤差拡散閾値テーブル１２２等の各種のデータテーブルが記憶されている。色変換テーブル１２０には、ＲＧＢの階調値とＣＭＹＫＬｃＬｍの階調値とが予め対応付けて記憶されている。ディザマスク１２１は、組織的ディザ法によるハーフトーン処理に用いるものであり、複数のディザ閾値により構成される。ディザマスク１２１は、本実施例では、いわゆるブルーノイズ特性を備えている。誤差拡散閾値テーブル１２２は、誤差拡散処理におけるドットのオンとオフの決定に用いる拡散閾値が記憶されたテーブルであり、その詳細は後述する。
【００１７】
画像処理ＩＣ１９は、以下で説明する色変換部１５、ハーフトーン処理部１６、ドット処理部１７、吐出制御部１８の機能を実現するためのプログラムが所定のハードウェア記述言語によって記述されることで設計された集積回路である。
【００１８】
色変換部１５は、色変換テーブル１２０を参照することでＲＧＢからＣＭＹＫＬｃＬｍへの色変換を行う。色変換後の画像データは、ＣＭＹ形式の各色成分について２５６段階（０〜２５５）の階調値Ｄｎを有する。
【００１９】
ハーフトーン処理部１６は、色変換部１５からＣＭＹ形式の画像データを入力し、画素単位にインクドットのオンとオフを示す二値のハーフトーンデータに変換する。ハーフトーン処理部１６の詳細については後に説明する。
ドット処理部１７は、二値のハーフトーンデータを入力し、印刷媒体上に形成されるドットの配置を示すドット配置データに変換し、ドット配置データをドットの吐出順に並び替えたドット吐出データを出力する。
吐出制御部１８は、ドット吐出データを入力し、ドット配置データに応じたドットが印刷媒体上に形成されるように、ドット吐出データに基づいて印刷ヘッド４７、キャリッジモーター３１、送紙モーター３２を駆動するための制御信号を出力する。
【００２０】
ここで図２を参照しながらハーフトーン処理部１６の構成について詳細に説明する。
第一処理部、第二処理部および第三処理部として機能するディザユニット６１は、ディザマスク１２１を参照しながらディザ閾値と注目画素の階調値Ｄｎとの大小を色成分毎に比較し、比較結果を出力する。比較結果を示すディザユニット６１の出力信号は、ディザ閾値以上（ドットオン）またはディザ閾値未満（ドットオフ）を示す二値であり、以後、ディザ比較値という。ディザユニット６１は、各色成分についてこのディザ処理を並列に実行する。全ての色成分のディザ比較値は、第一セレクタ６２および第二セレクタ６７に入力される。また後述する誤差拡散ユニット６４、６５、６６で用いるため、ディザユニット６１に入力される全ての色成分の階調値も第一セレクタ６２に入力される。
【００２１】
合成部として機能する第一セレクタ６２は、注目画素の全ての色成分についてディザ比較値と階調値を取得し、各色成分についてこれらの出力先を選択する。すなわち第一セレクタ６２は、注目画素の誤差拡散処理の対象ではない第一色成分については、遅延バッファ６３にディザ比較値を入力し、注目画素の誤差拡散処理の対象である第二色成分については、誤差拡散ユニット６４、６５、６６にディザ比較値と階調値を入力する。
【００２２】
合成部として機能する遅延バッファ６３は、誤差拡散ユニット６４、６５、６６において注目画素について処理が完了するのに必要なクロック数だけ注目画素の他の色成分についてディザ比較値を保持する遅延回路（パイプラインレジスタ）である。なお、全ての色成分について誤差拡散処理を行わない場合には、遅延バッファ６３でディザ比較値を保持する必要が無く、１つの色成分についてのみ誤差拡散処理を行う場合には、５つの色成分についてディザ比較値を遅延バッファ６３で保持する必要がある。したがって第一セレクタ６２と遅延バッファ６３とを接続する信号線の数は、最大でも、プリンター１が対応可能な色成分の数である６よりも１小さい５つの色成分についてディザ比較値を伝送できる数だけ用意すればよい。本実施例では、３つの色成分について二値のディザ比較値を伝送する３本の信号線で第一セレクタ６２と遅延バッファ６３とが接続される。
【００２３】
第二処理部として機能する第一誤差拡散ユニット６４、第二誤差拡散ユニット６５、第三誤差拡散ユニット６６は、構成が共通であって、それぞれ注目画素の１つの色成分について、ディザ比較値と注目画素の階調値とを第一セレクタ６２から取得し、注目画素のディザ比較値と階調値に基づいて、誤差拡散法におけるドットのオン／オフの決定に用いる閾値である誤差拡散閾値を変化させることで、誤差拡散法によるドットの形成のされやすさを制御するパイプラインプロセッサである。各誤差拡散ユニットには、誤差加算部６６１、閾値比較部６６２、オン誤差計算部６６３、オン誤差記憶部６６４、拡散範囲係数テーブル６６５、オフ誤差計算部６６６、オフ誤差記憶部６６７、選択部としての第三セレクタ６６８、拡散誤差記憶部６６９が備わっている。誤差加算部６６１、閾値比較部６６２、オン誤差計算部６６３、オン誤差記憶部６６４、拡散範囲係数テーブル６６５、オフ誤差計算部６６６、オフ誤差記憶部６６７、第三セレクタ６６８、拡散誤差記憶部６６９の機能については後に詳しく説明する。
【００２４】
以上のようなハードウェア構成を有するプリンター１は、キャリッジモーター３１を駆動することによって、印刷ヘッド４７を印刷媒体Ｐに対して主走査方向に往復動させ、また、送紙モーター３２を駆動することによって、印刷媒体Ｐを副走査方向に移動させる。制御ユニット１０は、キャリッジ４０が往復動する動き（主走査）や、印刷媒体の紙送りの動き（副走査）に合わせて、ドット吐出データに基づくタイミングでノズルを駆動することにより、印刷媒体Ｐに各色のインクドットを吐出する。こうすることによって、プリンター１は、印刷媒体Ｐ上にカラー画像を印刷することが可能となっている。
【００２５】
２．印刷処理
次に図３を参照しながらプリンター１における印刷処理について説明する。ここでの印刷処理は、ユーザーが操作パネル２０等を用いて、所望の画像データについて印刷指示操作を行うことで開始される。印刷処理を開始すると、ＣＰＵ１３は、まず、入出力部１１を介して印刷対象であるＲＧＢ形式の画像データを主記憶１４に読み込む（ステップＳ１）。
【００２６】
画像データを入力すると、ＣＰＵ１３は、色変換部１５に色変換を実行させる（ステップＳ２）。色変換部１５は、外部記憶１２に記憶された色変換テーブル１２０を参照して、画像データについて、ＲＧＢ形式の画像データをＣＭＹ形式に変換する。なお、ＣＰＵ１３は、ＲＧＢ形式またはＣＭＹ形式の画像データについて、解像度変換処理やスムージング処理などの画像処理を施してから色変換部１５に色変換を実行させてもよいし、色変換後に解像度変換処理やスムージング処理などの画像処理を施しても良い。
【００２７】
色変換処理を行うと、ＣＰＵ１３は、ハーフトーン処理部４２にハーフトーン処理を実行させる（Ｓ３）。
【００２８】
ハーフトーン処理を行うと、ＣＰＵ１３は、ドット処理部４３にドット処理を実行させる（ステップＳ４）。ドット処理部４３は、プリンター１のノズル配置や紙送り量などに合わせて１回の主走査単位でドット配置データをドット吐出データに並び替える。
【００２９】
ドット処理を行うと、ＣＰＵ１３は、吐出制御部１８に印刷を実行させる（ステップＳ５）。吐出制御部１８は、ドット吐出データに基づく制御信号を印刷ヘッド４７、キャリッジモーター３１、送紙モーター３２等に出力して印刷を実行する。
【００３０】
３．ハーフトーン処理の詳細
ここでハーフトーン処理（ステップＳ３）について、図２、図４を参照しながら詳細に説明する。図４に示すように、ハーフトーン処理を開始するとき、ＣＰＵ１３は、まず、ハーフトーン処理の対象の画像データについて、誤差拡散処理の対象となる色成分を設定する（Ｓ３１）。具体的には、第一セレクタ６２がディザ比較値と階調値とを出力する先を各色成分についてＣＰＵ１３が設定する。すなわちＣＰＵ１３は、誤差拡散処理の対象となる色成分のディザ比較値と階調値とが誤差拡散ユニット６４、６５、６６に出力され、誤差拡散処理の対象とならない色成分のディザ比較値が遅延バッファ６３に出力されるように第一セレクタ６２を設定する。
【００３１】
誤差拡散処理の対象となる色成分には、ディザ処理と誤差拡散処理とを組み合わせたハーフトーン処理が施されることになる。また誤差拡散処理の対象とならない色成分には、ディザ処理だけがハーフトーン処理として施されることになる。また、ディザユニット６１の出力は、第一セレクタ６２だけでなく、最終的なハーフトーン処理結果を出力するための第二セレクタ６７にも入力される。したがって、誤差拡散ユニット６４、６５、６６も遅延バッファ６３も使わずに、全ての色成分に対してディザ処理のみを高速なハーフトーン処理として施すことも可能である。全ての色成分に対してディザ処理のみをハーフトーン処理として施す場合、ＣＰＵ１３は第一セレクタ６２から出力されたディザ比較値が選択して出力されるように第二セレクタ６７を設定すればよい。
【００３２】
いずれの色成分を誤差拡散処理の対象とするかについては、本発明において任意の設計事項である。例えば、印刷品質よりも印刷速度を重視する場合には、全ての色成分についてディザ処理だけをハーフトーン処理として施しても良い。またモノトーン画像のように画像データの大部分の色が特定の色域に集中しているような場合には、色が集中している色域に近い色成分について誤差拡散処理の対象として、印刷品質を高めてもよい。
【００３３】
なお、誤差拡散処理の対象となる色成分をどのような単位で設定するかについては、例えば、画像データ毎に誤差拡散処理の対象となる色成分を設定しても良いし、ページ毎に設定しても良いし、ファイル毎に設定しても良いし、バンド毎に設定しても良いし、起動毎に設定しても良いし、出荷後のセットアップ時に一度だけユーザーが設定するようにしてもよいし、工場組立時に一度だけ設定するようにしても良い。すなわち、ステップＳ３１の処理は、図３に示す印刷処理の実行前に実行されても良い。工場組立時に一度だけ設定する場合であっても、第一セレクタ６２を備えることにより、誤差拡散ユニットを設ける数を設計仕様に応じて容易に変更することもできるため、設計コストを低減できる。
【００３４】
誤差拡散処理の対象となる色成分を設定した後、ＣＰＵ１３が、色変換部１５から出力されるＣＭＹ形式の画像データに対してハーフトーン処理部１６にハーフトーン処理の実行を指示すると、ディザユニット６１は、ＣＭＹ形式の画像データについて、注目画素の位置を示す座標ｎ（ｘ、ｙ）と、注目画素の階調値Ｄｎとを取得する（ステップＳ３１）。
【００３５】
注目画素の座標ｎ（ｘ、ｙ）と階調値Ｄｎとを取得すると、ディザユニット６１は、ディザ処理を行う（ステップＳ３３）。ここでのディザ処理は、外部記憶１２に記憶されたディザマスク１２１を構成する複数の閾値のうちの、注目画素の座標ｎ（ｘ、ｙ）に対応する閾値ＴＨｎ＿ｄの値と、階調値Ｄｎとの大小関係を比較する処理である。この処理は、通常行われるディザ法によるドットのオン／オフ判断の処理と同一の処理である。ただし、本実施例のディザ処理は、後述する誤差拡散法によってドットのオン／オフが最終的に決定される可能性があるという点では、仮のディザ処理であり、また、誤差拡散法の閾値（誤差拡散閾値）を決定するための処理でもある。
【００３６】
ディザユニット６１からディザ比較値としてのオンまたはオフが画素毎、色成分毎に出力されると、第一セレクタ６２は、ステップＳ３１の設定に基づいて、色成分毎に出力先を選択してディザ比較値と階調値を出力する（ステップＳ３４）。すなわち、第一セレクタ６２は、色成分毎に異なるハーフトーン処理をする場合において、誤差拡散処理の対象である第二色成分については、ディザ比較値と階調値Ｄｎの出力先を誤差拡散ユニット６４、６５、６６のいずれかとし、誤差拡散処理の対象外である第一色成分については、ディザ比較値の出力先を遅延バッファ６３とする。
【００３７】
遅延バッファ６３は、誤差拡散処理の対象外の色成分のディザ比較値を取得すると、以下に述べる誤差拡散処理に必要なパイプラインステップ数に対応するクロック数だけディザ比較値を保持する（ステップＳ３５）。
【００３８】
誤差拡散ユニット６４、６５、６６は、誤差拡散処理の対象色成分のディザ比較値と階調値Ｄｎを取得すると、パイプライン処理により誤差拡散処理を実行する。パイプライン処理により複数の処理が同時に実行されるため、実際には図４に記載された順序で実行されるわけではないが、１つの注目画素に施す誤差拡散処理の手順を理解しやすくするために、図４に記載された流れに沿って誤差拡散処理を説明した後に、実際の処理順序を図６を参照して説明する。
【００３９】
まず閾値比較部６６２は、ステップＳ３３のディザ処理によって定まったディザ比較値がドットオンであるかドットオフであるかを判定し（ステップＳ３６）、ドットオンであれば、誤差拡散処理に用いる閾値ＴＨｅを、階調値Ｄｎに対応する低位閾値ＴＨｅ＿Ｌに設定する（ステップＳ３７）。一方、ディザ比較値がドットオフであれば、誤差拡散処理に用いる閾値ＴＨｅを、階調値Ｄｎに対応する高位閾値ＴＨｅ＿Ｈに設定する（ステップＳ３８）。このように、本実施例においては、誤差拡散法に用いる閾値ＴＨｅをディザ処理の結果と階調値Ｄｎに応じて変化させる構成としている。かかる閾値ＴＨｅの設定は、外部記憶１２に記憶された誤差拡散閾値テーブル１２２を参照して行われる。
【００４０】
誤差拡散閾値テーブル１２２の具体例を概念的に図５に示す。図示するように、誤差拡散閾値テーブル１２２では、階調値Ｄｎ（ここでは０〜２５５）と、低位閾値ＴＨｅ＿Ｌ及び高位閾値ＴＨｅ＿Ｈとが、それぞれ対応付けられている。図中に示す閾値ＴＨｅ＿Ｎは、通常の誤差拡散法で用いられる閾値の例を参考として表示するものであり、この例では、閾値ＴＨｅ＿Ｎは、階調値Ｄｎによらず一定値１２７．５となっている。
【００４１】
図５に示す例では、高位閾値ＴＨｅ＿Ｈは、階調値Ｄｎが０の場合に値１２７．５をとり、階調値Ｄｎが０から大きくなるに従って大きくなり、最終的には、階調値Ｄｎが２５５の場合に値２０７．５となる。低位閾値ＴＨｅ＿Ｌは、階調値Ｄｎが０の場合には、高位閾値ＴＨｅ＿Ｈと同じ値１２７．５をとり、階調値Ｄｎが０から大きくなるに従って小さくなり、階調値Ｄｎが２５５の場合に値４７．５となる。
【００４２】
換言すれば、高位閾値ＴＨｅ＿Ｈと低位閾値ＴＨｅ＿Ｌとの差分（以下、閾値差分ΔＴＨｅともいう）は、階調値Ｄｎが０の場合に値０であり、階調値Ｄｎが大きくなるに従って大きくなり、階調値Ｄｎが２５５の場合に値８０となる。つまり、図５の例では、誤差拡散閾値テーブル１２２は、注目画素の階調値Ｄｎの全範囲に亘って、階調値が大きいほど閾値差分ΔＴＨｅが大きくなるように（ここでは正比例の関係に）設定されている。このように、高位閾値ＴＨｅ＿Ｈと低位閾値ＴＨｅ＿Ｌとの大小関係は、互いの値が等しいか、高位閾値ＴＨｅ＿Ｈが低位閾値ＴＨｅ＿Ｌよりも相対的に大きくなるように設定される。ただし、高位閾値ＴＨｅ＿Ｈと低位閾値ＴＨｅ＿Ｌとが全ての階調値において等しい場合は除かれる。なお、階調値ごとの高位閾値ＴＨｅ＿Ｈ及び低位閾値ＴＨｅ＿Ｌの値は、かかる大小関係が保持されていれば、いかようにも設定することが可能である。なお、本実施例では、テーブルを参照することにより、階調値Ｄｎに応じた高位閾値ＴＨｅ＿Ｈ及び低位閾値ＴＨｅ＿Ｌを求める構成としたが、関数によりこれらを求めてもよい。
【００４３】
次に誤差加算部６６１は、階調値Ｄｎに、拡散誤差記憶部６６９に記憶されている他の画素の拡散誤差Ｅｄｎを加算し、階調値Ｄｎ＋を出力する（ステップＳ３９）。ここで、拡散誤差Ｅｄｎについては、注目画素の近傍にある先行画素について後述するステップＳ４４において決定されるものであり、その内容は後述する。階調値Ｄｎ＋は、先行画素に生じた拡散誤差Ｅｄｎを注目画素の階調値Ｄｎに加算した結果としての階調値である。
【００４４】
一方、オン誤差計算部６６３とオフ誤差計算部６６６は、それぞれ、注目画素に生ずる二値化誤差と拡散誤差を見積もる（ステップＳ４０）。二値化誤差Ｅｎは、先行画素に生じた拡散誤差Ｅｄｎを加算した階調値Ｄｎ＋とドットのオン／オフ結果（ここでは階調値２５５または０）との差分である。拡散誤差Ｅｄｎとは、上記ステップＳ３６において他の画素（後続画素）の階調値Ｄｎに加算する誤差である。本実施例では、二値化誤差Ｅｎを、ドットのオン／オフを閾値比較部６６２で未決定の周辺画素である、注目画素の右隣の画素に対して７／１６、左下の画素に対して３／１６、下の画素に対して５／１６、右下の画素に対して１／１６の割合で、拡散誤差Ｅｄｎとして配分する。これらの係数は拡散範囲係数テーブル６６５に記憶されている。すなわち、オン誤差計算部６６３およびオフ誤差計算部６６６は、階調値Ｄｎ＋と階調値２５５または０との差分である二値化誤差Ｅｎに、次式（１）〜（４）のように、拡散範囲係数テーブル６６５に記憶された係数を掛け合わせて、注目画素の各近傍画素について拡散誤差Ｅｄｎを導出する。なお、拡散範囲係数テーブル６６５はこれに限られるものではなく、異なる数字を用いてもよいし、拡散する範囲を広げたり、狭めたりしてもよい。
Ｅ１ｎ＝Ｅｎ×７／１６…（１）
Ｅ２ｎ＝Ｅｎ×３／１６…（２）
Ｅ３ｎ＝Ｅｎ×５／１６…（３）
Ｅ４ｎ＝Ｅｎ×１／１６…（４）
【００４５】
誤差拡散閾値を設定した閾値比較部６６２は、先行画素に生じた拡散誤差Ｅｄｎが加算された階調値Ｄｎ＋と、ステップＳ３８またはステップＳ３９で設定した閾値ＴＨｅとを比較する（ステップＳ４１）。その結果、階調値Ｄｎ＋が閾値ＴＨｅ以上であれば、注目画素のドットをオンに決定し（ステップＳ４２）、階調値Ｄｎ＋が閾値ＴＨｅ未満であれば、注目画素のドットをオフに決定する（ステップＳ４３）。
【００４６】
閾値比較部６６２は、注目画素についてドットオンまたはドットオフを決定すると、第三セレクタ６６８をその決定に応じて設定し、決定に応じた拡散誤差Ｅｄｎを第三セレクタ６６８から出力させる（ステップＳ４４）。すなわち、閾値比較部６６２がドットオンを決定した場合には、オン誤差記憶部６６４が保持している拡散誤差Ｅｄｎが第三セレクタ６６８から出力される。また閾値比較部６６２がドットオフを決定した場合には、オフ誤差記憶部６６６が保持している拡散誤差Ｅｄｎが第三セレクタ６６８から出力される。こうして決定された拡散誤差Ｅｄｎは、拡散誤差記憶部６６９に格納される。
【００４７】
以上述べたステップＳ３６〜Ｓ４４の処理は、誤差拡散法によるハーフトーン処理であり、色成分毎に誤差拡散ユニット６４、６５、６６がパイプライン処理により実行する。誤差拡散法については、周知の技術であるため、詳細な説明は省略するが、上述したとおり、注目画素の階調値の量子化誤差を周囲の画素に所定の配分比率で加算しながら、注目画素の階調値と所定の閾値とを比較して階調値を量子化する手法である。
【００４８】
注目画素について誤差拡散ユニット６４、６５、６６による誤差拡散処理が終了すると、第二セレクタ６７は、ステップＳ３５で遅延バッファ６３に格納されたドットオンまたはドットオフと、ステップＳ４４で第三セレクタ６６８から出力されるドットオンまたはドットオフとを、１つの注目画素のハーフトーン処理の結果として出力する（Ｓ４５）。すなわち、第二セレクタ６７は、誤差拡散処理の対象になった色成分のハーフトーン処理の結果と、誤差拡散処理の対象外の色成分のハーフトーン処理の結果とを画素毎に合成して出力する。ここで、既に述べたとおり、誤差拡散ユニット６４、６５、６６のクロック数（パイプラインステップ数）に応じたクロック数だけ遅延バッファ６３はドットオンまたはドットオフを保持するように構成されているため、第二セレクタ６７には１つの注目画素の各色成分のドットのオン又はオフが同時に入力され、第二セレクタ６７は、１つの注目画素の各色成分のドットのオン又はオフを同時に出力する。その結果、画素毎にドットのオン又はオフを示すハーフトーンデータがハーフトーン処理部１６から出力される。
【００４９】
ここでハーフトーン処理部１６は、第二セレクタ６７から出力される各色成分のドットのオン又はオフを示す信号をパラレル出力しても良いし、画素毎にまとめてシリアル出力しても良い。パラレル配線の場合には、全色成分のドットのオン又はオフが並列に画素毎に同時に出力される。シリアル配線の場合には、全色成分のドットのオン又はオフが直列にまとまって画素毎に出力される。
【００５０】
そしてハーフトーン処理部１６は、全ての画素を順次注目画素として上記ステップＳ３２〜Ｓ４５の処理を繰り返す（ステップＳ４６）。全ての画素について上記ステップＳ３２〜Ｓ４４の処理が終了すると、ステップＳ３のハーフトーン処理は終了する。
【００５１】
なお、第二セレクタ６７には、ディザユニット６１の出力も直接入力されるため、全ての色成分に対して誤差拡散処理を施さない場合には、上述したステップＳ３４〜ステップＳ４４の処理は実行されず、ディザユニット６１の出力がそのままハーフトーン処理の結果として第二セレクタ６７から出力される。このため、全ての色成分に対して誤差拡散処理を施さない場合には、高速なハーフトーン処理が可能になる。
【００５２】
次に上述したディザ法と誤差拡散法とを組み合わせたハーフトーン処理の原理について、以下に説明する。上述したように、ステップＳ３７〜Ｓ３９の処理においては、注目画素の階調値Ｄｎがディザ処理の閾値ＴＨｎ＿ｄの値以上であれば、誤差拡散法に用いる閾値ＴＨｅは、低位閾値ＴＨｅ＿Ｌに設定され、階調値Ｄｎがディザ処理の閾値ＴＨｎ＿ｄの値未満であれば、閾値ＴＨｅは、高位閾値ＴＨｅ＿Ｈに設定される。閾値差分ΔＴＨｅ（＝ＴＨｅ＿Ｈ−ＴＨｅ＿Ｌ）は０以上の値である。
【００５３】
ここで、閾値差分ΔＴＨｅが値０である場合（ＴＨｅ＿Ｈ＝ＴＨｅ＿Ｌ）を考える。この場合（本実施例では階調値Ｄｎ＝０の場合）、ディザ処理の結果は、閾値ＴＨｅに影響を与えないのであるから、ステップＳ３３の処理は、誤差拡散法（ステップＳ３６〜Ｓ４４）による最終的なドットのオン又はオフの決定に対して意味を持たないことになる。このことは、ステップＳ３のハーフトーン処理において、最終的なドットのオン又はオフが、誤差拡散法のみによって決定されていることを意味する。
【００５４】
次に、閾値差分ΔＴＨｅが値０より大きい場合（ＴＨｅ＿Ｈ＞ＴＨｅ＿Ｌ）を考える。この場合（本実施例では階調値Ｄｎ≠０の場合）、ＣＰＵ１３は、ディザ処理によりドットオンと判断すると（階調値Ｄｎが閾値ＴＨｎ＿ｄの値以上である場合）、閾値ＴＨｅを相対的に小さい低位閾値ＴＨｅ＿Ｌに設定する。一方、ディザ処理によりドットオフと判断すると（階調値Ｄｎの階調値が閾値ＴＨｎ＿ｄの値未満である場合）、閾値ＴＨｅを相対的に大きい高位閾値ＴＨｅ＿Ｈに設定する。つまり、ＣＰＵ１３は、ディザ処理によりドットオンと判断すると、誤差拡散法によりドットがオンになりやすいように制御し、ディザ処理によりドットオフと判断すると、誤差拡散法によりドットがオフになりやすいように制御する。このことは、閾値差分ΔＴＨｅが値０である場合と比べて、階調値Ｄｎが大きいほど誤差拡散法による最終的なドットのオン／オフの判断結果がディザ処理によるドットのオン／オフの判断結果に近づくことを意味している。つまり、最終的なドットのオン／オフを、誤差拡散法の要素とディザ法の要素とを組み合わせて判断していることになる。
【００５５】
そして、この閾値差分ΔＴＨｅが大きくなるほど、ディザ法が支配的になっていき、閾値差分ΔＴＨｅが無限大になれば、完全にディザ法のみでドットのオン／オフのみを判断していることとなる。閾値差分ΔＴＨｅが無限大の場合、ディザ処理によりドットがオンと判断されれば、その後の誤差拡散法により必ずドットオンと判断され、ディザ処理によりドットをオフと判断されれば、その後の誤差拡散法により必ずドットオフと判断されるからである。
【００５６】
要するに、ディザ処理の結果に応じて誤差拡散処理の閾値ＴＨｅを変化させることにより、具体的には、閾値差分ΔＴＨｅの大きさを変化させることにより、ハーフトーン処理におけるディザ法の要素と誤差拡散法の要素とのそれぞれの寄与度を制御することができるのである。本実施例においては、こうした原理を利用して、階調値Ｄｎの階調値に応じて、ハーフトーン処理におけるディザ法の要素と誤差拡散法の要素とを動的に制御している。
【００５７】
そして、誤差拡散法においては閾値ＴＨｅが大きいほどドットがオフになりやすいため、ディザ処理の結果に応じて閾値ＴＨｅを変化させることにより、誤差拡散法によるドットの形成のされやすさの制御の程度を制御していると捉えることもできる。
【００５８】
ここで、誤差拡散ユニット６４、６５、６６における誤差拡散処理の順序について図６を参照しながら詳細に説明する。注目画素に生ずる拡散誤差は、閾値比較部６６２において、先行画素に生じた拡散誤差Ｅｄｎが加算された注目画素の階調値Ｄｎ＋と閾値ＴＨｅとが比較された結果として最終的にドットオンまたはドットオフが決定されなければ本来算定することができない。すなわち、先行画素に生じた拡散誤差Ｅｄｎが定まるまでは、注目画素に生ずる拡散誤差を算定することができない。
【００５９】
注目画素に生ずる拡散誤差は、誤差加算部６６１において後続画素の階調値に加算されるところ、注目画素についてドットのオン／オフが決定されて注目画素に生ずる拡散誤差が算定されていなければ、後続画素の処理が滞ることになる。すなわち、閾値比較部６６２がドットのオン／オフを決定するまで待ってから注目画素に生ずる拡散誤差を導出するとすれば、ドットのオン／オフの決定を待つためのパイプラインバッファのクロック数が増加することで、誤差拡散処理の全体に必要なクロック数が増加する。そして誤差拡散処理の必要クロック数が増加すれば、誤差拡散処理の対象外の色成分について遅延バッファ６３がディザ比較値を保持するクロック数も増加させなければならず、ハーフトーン処理の全体として必要なクロック数が増加する。したがって、注目画素に生ずる拡散誤差を早い段階で算定しておくことにより、後続画素に対する誤差拡散処理を早く進行させることができる。
【００６０】
そこで、オン誤差計算部６６３は、閾値比較部６６２が注目画素のドットオンまたはドットオフを決定する前に、閾値比較部６６２がドットオンを決定した場合に注目画素に生ずる拡散誤差を予め導出し、オン誤差記憶部６６４に記憶させておく。またオフ誤差計算部６６６は、閾値比較部６６２が注目画素のドットオンまたはドットオフを決定する前に、閾値比較部６６２がドットオフを決定した場合に注目画素に生ずる拡散誤差を予め導出しておき、オフ誤差記憶部６６７に記憶させておく。このように閾値比較部６６２が注目画素のドットオンまたはドットオフを決定するための処理を実行している期間中に、拡散誤差を予め２通り見積もってそれぞれ保持しておくことで、後続画素に対する誤差拡散処理の開始を早めることができる。すなわち、誤差拡散ユニット６４、６５、６６のパイプラインステップ数を少なくすることができる。
【００６１】
このようにプリンター１は、注目画素のドットオンまたはドットオフを決定するための処理を実行している期間中に、閾値比較部６６２がドットオンを決定した場合に注目画素に生ずる拡散誤差と、閾値比較部６６２がドットオフを決定した場合に注目画素に生ずる拡散誤差とを導出しておくことにより、誤差拡散処理のパイプラインステップ数を少なくする。その結果、誤差拡散処理を施さない色成分についてディザ処理の結果を保持するパイプラインバッファのクロック数も減らすことができる。その結果、色成分毎にディザ処理のみまたはディザ処理と誤差拡散処理を組み合わせて行うハーフトーン処理に必要なパイプラインステップ数が少なくなり、ハーフトーン処理を高速化することができる。
【００６２】
そしてプリンター１は、インクの色数分だけの誤差拡散ユニットを備える代わりに、誤差拡散ユニットで処理できない色成分数の色成分のディザ比較値を保持できる遅延バッファを備えているため、ハーフトーン処理のための回路規模を抑制することができる。またプリンター１は、第一セレクタ６２の出力先を色成分毎に選択できるため、ディザ処理のみのハーフトーン処理を行うか、ディザ処理と誤差拡散処理を組み合わせたハーフトーン処理を行うかを、要求される印刷性能や仕様に応じて、色成分毎に選択することができる。さらに、誤差拡散ユニット６４、６５、６６により誤差拡散処理を行うために必要なクロック数だけディザ処理の結果であるディザ比較値を遅延バッファ６３で保持することができるため、１つの画素のハーフトーン処理結果を同時に第二セレクタ６７に入力して画素毎にハーフトーン処理結果を合成して出力することができる。
【００６３】
また、プリンター１は、ハーフトーン処理において閾値差分ΔＴＨｅを適宜設定することで、ハーフトーン処理におけるディザ法と誤差拡散法との寄与度を、所望の程度に設定することができる。また、仮ディザ処理の結果に基づいて閾値ＴＨｅを変化させることで、誤差拡散法によるドットの形成のされやすさを制御するので、構成が簡単であり、処理の高速化に資する。
【００６４】
また、プリンター１は、階調値Ｄｎの階調値の大きさに基づいて、閾値ＴＨｅの大きさを変化させて、具体的には、閾値差分ΔＴＨｅを変化させて、誤差拡散法によるドットの形成のされやすさを制御するので、画像データの階調値に応じて、ディザ法的要素と誤差拡散法的要素との寄与度を変化させることができる。しかも、かかる寄与度は、画像データの任意の領域ごとに変化させることができる。その結果、画像データや印刷装置の特性に応じた良好な寄与度のドットデータを生成することができ、印刷画質を向上させることができる。
【００６５】
本実施例においては、誤差拡散処理によるドットのオン／オフの決定は閾値差分ΔＴＨｅの大きさによって制御されるところ、高階調側ほど閾値差分ΔＴＨｅが大きくなるように設定されている。そして誤差拡散処理では、ディザ処理によりドットオンと判断すると、階調値Ｄｎが大きいほど誤差拡散処理によりドットがオンになりやすくなる低位閾値ΔＴＨｅ＿Ｌが設定され、ディザ処理によりドットオフと判断すると、階調値Ｄｎが大きいほど、誤差拡散法によりドットがオフになりやすい高位閾値ΔＴＨｅ＿Ｈが設定される。つまり、プリンター１は、高階調の画像データに対しては、低階調の画像データに対してよりも、誤差拡散処理の結果がディザ処理の結果に近づく誤差拡散閾値ＴＨｅを定めるため、低階調側では、誤差拡散法的要素によるメリットを得つつ、高階調側では、ディザ法的要素のメリットを得ることができる。
【００６６】
低階調側での誤差拡散法のメリットとしては、例えば、印刷画質の良好な粒状性が得られる点が挙げられる。誤差拡散法として、拡散範囲切替誤差拡散法などを用いれば、さらに、画質の向上が期待できる。拡散範囲切替誤差拡散法は、公知の技術であるため、詳しい説明は省略するが、入力階調値と二値化結果の組み合わせに応じて誤差拡散範囲を切り替える手法であり、低階調値でドットオンになった時のみ広い範囲に誤差拡散することで、低階調領域の粒状性を改善し、ドットの非所望な連続、いわゆるワームの発生を抑制することができる。
【００６７】
高階調側でのディザ法のメリットとしては、例えば、ドット着弾位置のずれによる画質劣化を抑制できる点が挙げられる。このメリットは、ディザマスク１２１の上述した所定のドット形成特性に起因するものである。なお、高階調領域では、ディザ法によってドットデータを生成しても、インクのにじみによって印刷画質の粒状性が目立ちにくく、大きな問題とはならない。
【００６８】
しかも、誤差拡散閾値テーブル１２２は、階調値Ｄｎの大きさに基づいて、閾値差分ΔＴＨｅが段階的に変化するように設定されている。つまり、プリンター１は、階調値の大きさに基づいて、誤差拡散法によるドットの形成のされやすさの制御の程度を段階的に変化させている。したがって、ディザ法的要素と誤差拡散法的要素との寄与度をデータ階調値に応じて滑らかに変化させることができる。その結果、印刷結果において、ディザ法的要素と誤差拡散法的要素との寄与度の変化が視認されにくいので、同一の印刷画像におけるディザ法的要素と誤差拡散法的要素の寄与度の変化に伴う印刷画質の低下を抑制することができる。
【００６９】
特に、本実施例では、ディザマスク１２１に、印刷画質の粒状性に優れたブルーノイズ特性を有するものを採用していることから、同じく印刷画質の粒状性に優れた誤差拡散法的要素との寄与度の変化をよりスムーズに見せることができる。なお、ディザマスク１２１がブルーノイズ特性を有していない場合であっても、階調値の大きさに基づいて、誤差拡散法によるドットの形成のされやすさの制御の程度を段階的に変化させれば、ディザ法的要素と誤差拡散法的要素との寄与度をデータ階調値に応じて滑らかに変化させることは可能である。
【００７０】
４．他の実施形態
尚、本発明の技術的範囲は、上述した実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、閾値比較部６６２に階調値Ｄｎ＋が入力されてから閾値比較部６６２がドットのオン／オフを決定するまでの期間中に、閾値比較部６６２がドットオンを決定した場合に注目画素に生ずる拡散誤差と、閾値比較部６６２がドットオフを決定した場合に注目画素に生ずる拡散誤差とを導出できればよいため、オン誤差記憶部６６４、オフ誤差記憶部６６７は必ずしも必要ではないし、オン誤差記憶部６６４、オフ誤差記憶部６６７に代えて、若しくはオン誤差記憶部６６４、オフ誤差記憶部６６７に加えて、階調値Ｄｎまたは誤差加算部６６１から出力される階調値Ｄｎ＋を保持するバッファ（パイプラインレジスタ）を設けても良い。
【００７１】
また、上述の実施例では、ドットのオンまたはオフのみを決定するハーフトーン処理について説明したが、サイズが異なる複数種類のドットのそれぞれについてドットのオンまたはオフを決定する多値化処理をディザユニット６１、誤差拡散ユニット６４、６５、６６で行ってもよい。
【００７２】
また上述の実施例では、画素毎に１つのドットのオンまたはオフを決定するハーフトーン処理について説明したが、画素毎に複数のドットのオン又はオフを決定してもよい。すなわち、画像データの１つの画素がプリンターの複数のドットに対応する構成にも、本発明を適用可能である。
【００７３】
また上述の実施例では、第一処理部に適用するハーフトーン処理方法としてディザ法を例示したが、ディザ法でも誤差拡散法でもない別のハーフトーン処理方法を第一処理部に適用しても良い。また、上述の実施例では、第一処理部と第二処理部がディザユニット６１を共有する例について説明したが、ディザユニット６１を第一処理部とし、誤差拡散ユニット６４、６５、６６を第二処理部として、色成分毎にディザ法または誤差拡散法を択一的に適用する構成としても良い。
【符号の説明】
【００７４】
１…プリンター、１０…制御ユニット、１１…入出力部、１２…外部記憶、１４…主記憶、１５…色変換部、１６…ハーフトーン処理部、１７…ドット処理部、１８…吐出制御部、２０…操作パネル、３１…キャリッジモーター、３２…送紙モーター、４０…キャリッジ、４１−４６…インクカートリッジ、４２…ハーフトーン処理部、４３…ドット処理部、４７…印刷ヘッド、５２…主記憶、６１…ディザユニット、６２…第一セレクタ、６３…遅延バッファ、６４、６５、６６…誤差拡散ユニット、６４…誤差拡散ユニット、６４…第一誤差拡散ユニット、６４、６５…誤差拡散ユニット、６４、６５、６６…誤差拡散ユニット、６５…第二誤差拡散ユニット、６６…第三誤差拡散ユニット、６７…第二セレクタ、９０…印刷ヘッド、１２０…色変換テーブル、１２１…ディザマスク、１２２…誤差拡散閾値テーブル、６６１…誤差加算部、６６２…閾値比較部、６６３…オン誤差計算部、６６４…オン誤差記憶部、６６５…拡散範囲係数テーブル、６６５…拡散範囲係数テーブル、６６６…オフ誤差計算部、６６７…オフ誤差記憶部、６６８…第三セレクタ、６６９…拡散誤差記憶部、１９…画像処理ＩＣ、Ｐ…印刷媒体
【図１】
0006464826.tif 000002
【図２】
0006464826.tif 000003
【図３】
0006464826.tif 000004
【図４】
0006464826.tif 000005
【図５】
0006464826.tif 000006
【図６】
0006464826.tif 000007