(57)【要約】【課題】  複数の処理ユニットによって所定の画像処理を分散処理する場合に、各処理ユニットが必要とする記憶容量を削減して処理を高速化する。【解決手段】  処理部103は、高速アクセスが可能な記憶部204を有する複数の処理ユニット202を有し、所定の画像処理を分散処理する。処理ユニット202Nは、他の処理ユニット202に分散処理を割り当てる管理部として機能する。管理部は、所定の画像処理の実行に必要な情報を、分散処理を割り当てた処理ユニット202の数に応じて分割し、情報の分割に合わせて、画像処理すべき画像データを分割する。【選択図】  図2
2014219883.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが高速アクセスが可能な記憶手段を有する複数の処理手段を有し、画像処理を分散処理する画像処理装置であって、
前記複数の処理手段の一つであり、他の処理手段に分散処理を割り当てる管理手段を有し、
前記管理手段は、所定の画像処理の実行に必要な情報を、前記分散処理を割り当てた処理手段の数に応じて分割し、前記情報の分割に合わせて、前記所定の画像処理を施すべき画像データを分割する画像処理装置。
【請求項２】
前記分散処理が割り当てられた各処理手段は、前記分割された情報を前記記憶手段に格納し、前記分割された情報に対応する前記分割された画像データに、前記記憶手段に格納した情報に基づく前記所定の画像処理を施す請求項1に記載された画像処理装置。
【請求項３】
さらに、前記複数の処理手段に共有される共有メモリを有し、
前記各処理手段は、前記共有メモリから前記画像データを読み込み、前記所定の画像処理を施した画像データを前記共有メモリに書き込む請求項2に記載された画像処理装置。
【請求項４】
前記管理手段は、前記分散処理を割り当てた複数の処理手段から処理終了が通知されると、前記共有メモリに書き込まれた画像データを結合して、前記所定の画像処理の後の画像データとする請求項3に記載された画像処理装置。
【請求項５】
さらに、前記複数の処理手段と前記共有メモリの間のデータ転送に用いられる内部バスを有する請求項3または請求項4に記載された画像処理装置。
【請求項６】
前記所定の画像処理はハーフトーニング処理であり、前記所定の画像処理の実行に必要な情報は閾値マスクである請求項1から請求項5の何れか一項に記載された画像処理装置。
【請求項７】
前記管理手段は、画像データの画素位置に応じて前記分割を行う請求項6に記載された画像処理装置。
【請求項８】
さらに、前記ハーフトーニング処理の前に、前記画像処理すべき画像データをマルチパス記録の各走査に対応する走査データに変換する変換手段を有し、
前記管理手段は前記走査データを前記分割し、前記閾値マスクに格納される閾値の最大値は前記画像処理すべき画像データの最大値よりも小さい請求項6または請求項7に記載された画像処理装置。
【請求項９】
前記画像処理はハーフトーニング処理であり、前記画像処理の実行に必要な情報は前記ハーフトーニング処理の、入力値に対する出力値を示すドットパターンの集合である請求項1から請求項5の何れか一項に記載された画像処理装置。
【請求項１０】
前記管理手段は、画像データの値に応じて前記分割を行う請求項9に記載された画像処理装置。
【請求項１１】
さらに、前記ハーフトーニング処理の前に、前記画像処理すべき画像データをマルチパス記録の各走査に対応する走査データに変換する変換手段を有し、
前記管理手段は前記走査データを前記分割し、前記ドットパターンの数は前記画像処理すべき画像データの階調数よりも小さい請求項9または請求項10に記載された画像処理装置。
【請求項１２】
前記記憶手段は、前記処理手段のキャッシュメモリである請求項1から請求項11の何れか一項に記載された画像処理装置。
【請求項１３】
高速アクセスが可能な記憶手段を有する複数の処理手段を有し、所定の画像処理を分散処理する画像処理方法であって、
前記複数の処理手段の一つを、他の処理手段に分散処理を割り当てる管理手段とし、
前記管理手段は、前記所定の画像処理の実行に必要な情報を、前記分散処理を割り当てた処理手段の数に応じて分割し、前記情報の分割に合わせて、画像処理すべき画像データを分割する画像処理方法。
【請求項１４】
マルチプロセッサを請求項1から請求項12の何れか一項に記載された画像処理装置の各手段として機能させるためのプログラム。
【請求項１５】
請求項14に記載されたプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理の分散処理に関する。
【背景技術】
【０００２】
コンピュータで作成した画像や、ディジタルカメラで撮影した画像などの出力装置として、記録媒体上にドットを形成して画像を印刷する印刷装置がよく使われる。このような印刷装置は一般に出力可能な階調数が少ない。そのため、印刷装置においては、記録媒体上のドットの形成状態を制御して疑似的に階調を表現するハーフトーニング処理が実行される。
【０００３】
ディジタル画像処理におけるハーフトーニング処理、つまりオンドット（例えば黒ドット）とオフドット（例えば白ドット）の組み合わせによって画像の濃淡を表現する方法の一つとして「ディザ法」が知られている。ディザ法は、所定の規則に従い予め閾値を格納したアレイ（「閾値マスク」「ディザマトリクス」、あるいは単に「マスク」などと呼ばれる）を用意する。そして、多値の入力画像データと閾値マスクの閾値を、画素ごとに比較して、出力画像におけるドットのオンオフを決定することで、入力画像の階調に相当する疑似階調を有する出力画像を得る。
【０００４】
ドットのオンオフの決定は、例えば「入力画像データの画素値が、閾値マスクの対応するセルの閾値以下ならばドットをオンにする」ような約束に基づき行われる。
【０００５】
また、特許文献1に開示されるようなドットのオンオフの決定方法もある。特許文献1の方法は、予め全階調分のドットのオンオフのパターン（以下、ドットパターン）を記憶しておく。そして、入力画像データの入力値をキーに、対応する階調値のドットパターンの対応する画素のドットのオンオフを当該画素の出力にする。この方法は、文献により「ビットマスクアレイ」「ディザビットマップ」などと呼ばれたり、あるいは「マスク」の一種と見做されたりする場合もある。
【０００６】
上記の技術は何れも、閾値マスクまたはドットパターンといった、処理に必要な情報が予め格納されたアレイを基に、画素ごとにハーフトーニング処理を行う方法である。これらの方法は、画素独立に出力を定めることができ、処理の並列化が容易であり、処理の高速化を期待することができる特徴を有する。
【０００７】
しかし、より高速かつ、より多くの階調をハーフトーニング処理によって表現し、より高画質な画像を印刷可能にする要求に応える場合、上記の技術においては、アレイが必要とする記憶容量が大きくなる問題がある。例えば、より多くの階調を表現するには、ディザ法では一画素当りの記憶容量が増加し、特許文献1の方法では記憶するドットパターンの数が増加する。
【０００８】
また、ディザ法、特許文献1の方法とも、アレイサイズを大きくすれば、ドット配置の自由度が増し、同じドットパターンの繰り返しを抑制して、高画質化に寄与する。しかし、アレイサイズが大きくなれば、当然、アレイの記憶容量が大きくなる。
【０００９】
アレイの記憶容量が大きくなると、並列化が容易である上記の技術においても、情報の転送や読み込みが頻繁に発生し、これがネックになり、処理の高速化が妨げられる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開2004-350289号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、複数の処理ユニットによって所定の画像処理を分散処理する場合に、各処理ユニットが必要とする記憶容量を削減して処理を高速化することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１３】
本発明にかかる画像処理は、高速アクセスが可能な記憶手段を有する複数の処理手段を有し、所定の画像処理を分散処理する際に、前記複数の処理手段の一つを、他の処理手段に分散処理を割り当てる管理手段とし、前記管理手段は、前記所定の画像処理の実行に必要な情報を、前記分散処理を割り当てた処理手段の数に応じて分割し、前記情報の分割に合わせて、画像処理すべき画像データを分割する。
【発明の効果】
【００１４】
本発明によれば、複数の処理ユニットによって所定の画像処理を分散処理する場合、各処理ユニットが必要とする記憶容量を削減して処理を高速化することができる。
【図面の簡単な説明】
【００１５】
【図１】実施例の画像処理装置の構成例を説明するブロック図。
【図２】処理部の構成例を説明するブロック図。
【図３】実施例の処理構成例を説明するブロック図。
【図４】ハーフトーニング部の基本的な構成例を示すブロック図。
【図５】アレイに記憶されるディザ法の閾値マスクを説明する図。
【図６】アレイにドットパターンを格納する例を説明する図。
【図７】処理ユニットに割り当てる領域の一例を示す図。
【図８】実施例のハーフトーニング部の構成例を説明するブロック図。
【図９】実施例の分散型のハーフトーニング処理を説明するフローチャート。
【図１０】実施例2の処理構成例を説明するブロック図。
【図１１】走査データ処理部の基本的な構成例を示すブロック図。
【図１２】走査データの設定方法を説明する図。
【図１３】16ノズル、2パス記録の場合の走査データ設定テーブルを説明する図。
【図１４】走査データの決定を説明する図。
【図１５】実施例2のアレイに記憶されるディザ法の閾値マスクを説明する図。
【図１６】実施例2のアレイにドットパターンを格納する例を説明する図。
【発明を実施するための形態】
【００１６】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１７】
［装置の構成］
図1のブロック図により実施例の画像処理装置の構成例を説明する。
【００１８】
画像処理装置101において、処理部103は、複数の処理ユニット、RAMなどの主記憶、ROMなどの不揮発性メモリを有するマルチプロセッサシステムまたはマルチコアプロセッサである。データ保存部105は、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などの書き換え可能な不揮発性メモリである。インタフェイス部106は、外部のデバイスに接続するためのUSBやIEEE1394などのシリアルバス、ネットワーク110に接続するためのネットワークインタフェイスカード(NIC)などを有する。
【００１９】
メインバス102は、上記の構成を相互に接続する。また、インタフェイス部106を介して画像処理装置101に接続されるデバイスには、マウスやキーボードなどの入力デバイス107、モニタ108、プリンタ109などがある。
【００２０】
●処理部
図2のブロック図により処理部103の構成例を説明する。
【００２１】
処理部103は、主記憶201、複数の処理ユニット202、主記憶201と複数の処理ユニット202を接続するシステムバス（または内部バス）205を有する。主記憶201は、複数の処理ユニット202に共有される共有メモリである。システムバス（または内部バス）205のデータ転送はメインバス102よりも高速である。各処理ユニット202は、マイクロプロセッサ(CPU)などのプロセッサ203と、プロセッサ203に属す記憶部204を有する。
【００２２】
記憶部204は、便宜上、プロセッサ203から独立しているように記載するが、多くの場合、比較的小容量のメモリながら、主記憶201よりも高速アクセスが可能な、プロセッサ203に独占的または優先的に割り当てられるメモリである。記憶部204は、プロセッサ203からのアクセス速度や通信速度を考慮して、実施形態によりプロセッサ203の内部のレジスタやキャッシュメモリ（一次キャッシュ、二次キャッシュ、…）またはプライベートメモリやローカルメモリなどとして実現される。
【００２３】
実施例の画像処理は、画像処理装置101上で稼働するオペレーティングシステム(OS)の上で動作するプリンタドライバとして実現される。つまり、OSの指示により、データ保存部105からプリンタドライバのプログラムコードが主記憶201にロードされ、プロセッサ203の少なくとも一つがプリンタドライバのプログラムコードを実行することで、実施例の処理構成と画像処理が実現される。
【００２４】
図3のブロック図により実施例の処理構成例を説明する。
【００２５】
プリンタドライバ301は、画像処理装置101においてプリンタドライバのプログラムコードが実行されることで実現され、プリンタ109の動作を制御する。アプリケーション302は、画像処理装置101または外部のコンピュータ装置においてアプリケーションプログラムが実行されることで実現される。アプリケーション302は、画像データを生成、閲覧または加工する機能、並びに、当該画像データが表す画像の印刷をプリンタ109に指示する機能を有する。
【００２６】
プリンタドライバ301において、カラーマッチング処理部303は、アプリケーション302から入力される画像データをプリンタ109の色域にマッピングする。色分解処理部304は、マッピング後の画像データを色分解して、画像データが表す色を再現する色材の組み合わせに対応した色分解データを生成する。色分解データは、例えば各色8ビットの多値データであり、記録媒体上で再現すべき濃度値を示す。
【００２７】
ガンマ補正処理部305は、色分解データを、実際に使用する色材量を示す例えば8ビットの色材量データに変換する。ハーフトーニング部306は、色材量データを各色二値のデータに変換する。印刷データ生成部307は、ハーフトーニング処理された色材量データを所定フォーマットの印刷データにしてプリンタ109に出力する。
【００２８】
プリンタ109において、マルチパス変換処理部310は、プリンタドライバ301から入力される印刷データに所定の規則を適用して、プリンタ109の画像記録走査における各走査のドット記録パターンを決定する。なお、以下では、プリンタ109の画像記録走査を「マルチパス記録」と呼ぶ。マルチパス記録は、インクジェット記録方式において、複数回の走査（パス）により画像を記録する方法であり、記録素子に特有のばらつきや記録媒体の搬送精度のばらつきなどの影響を低減する効果を有する。
【００２９】
ヘッド駆動回路311は、マルチパス変換処理部310によって生成された各走査のドット記録パターンに基づき、複数の記録素子を備える記録ヘッド312を制御する駆動信号を生成する。記録ヘッド312は、駆動信号に基づき、記録媒体上を複数回走査して各色材のドットを記録する。
【００３０】
上記では、ハーフトーニング部306と印刷データ生成部307がプリンタドライバ301に含まれる例を説明したが、ハーフトーニング部306以降の構成はプリンタ109内に存在してもよい。
【００３１】
●ハーフトーニング部
図4のブロック図によりハーフトーニング部306の基本的な構成例を示す。
【００３２】
ハーフトーニング部306は、多値の画像データ402を入力し、二値の画像データ403を出力する。ハーフトーニング部306は、この階調変換のために必要な情報を格納するアレイ404と階調変換器405を有する。アレイ404は閾値マスクを格納し、階調変換器405は閾値マスクの閾値と画像データ402の画素値を比較して画像データ403の画素値を決定する。
【００３３】
図5によりアレイ404に記憶されるディザ法の閾値マスクを説明する。図5は典型的な形態の閾値マスク501を示す。閾値マスク501は、4×4の各セルに閾値0〜15の何れか一つが格納された17階調の閾値マスクである。より一般には、閾値マスクは階調値に関連する閾値を格納する二次元アレイであり、格納する閾値はハーフトーンによってm階調を表現する場合、0〜m-2の値である。
【００３４】
階調変換器405には「入力画像データの画素値が閾値マスク501の対応するセルに格納された閾値より大きい場合は当該画素をオンドットにする」が定義されている。例えば、閾値マスク501と同じ大きさの、単一の値「3」をもつ画像502が入力された場合、上記の定義に従い、三画素がオンドットの画像503が出力される。なお、黒べたの画素はオンドットを表す。一方、入力画像502よりもやや暗い、単一の値「4」をもつ画像504が入力された場合、上記の定義に従い、四画素がオンドットの画像505が出力される。閾値マスク501のセル(i, j)と画素位置(x, y)の対応関係は下式によって示される。
i = x % W；
j = y % H；                …(1)
ここで、%は剰余演算子。
【００３５】
なお、上式は、閾値マスク501よりも大きい画像の場合、閾値マスク501を反復してタイルのように利用することを意味する。また、上記と異なる定義「入力画像データの画素値が閾値マスクの対応するセルに格納された閾値以上ならば当該画素をオンドットにする」も可能であり、その場合、閾値マスク501に格納される閾値の範囲は1〜m-1になる。さらに、閾値マスクは正方形に限らず、他の形状の閾値マスクも存在する。
【００３６】
図6によりアレイ404に上述したドットパターンを格納する例を説明する。つまり、アレイ404は、閾値マスクに代えて、ドットのオンオフを示すドットパターンを階調数分、記憶する。言い替えれば、アレイ404は、入力値に対応するドットパターンの集合を格納する。そして、階調変換器405は、入力画像データ402の画素値gに対して、第g階調を表すドットパターンの、式(1)で決まるセル(i, j)の値を出力値とする。なお、W、Hはドットパターンの幅と高さである。
【００３７】
●高画質化と処理の高速化
上記の何れの方法も、ハーフトーニング処理の出力は、各画素独立に決定することが可能であり、処理の並列化が容易であり、高速なハーフトーニング処理の実現が期待される。上記の方法で、より多階調を表現可能な高画質なハーフトーニング処理を行う場合、閾値マスクまたはドットパターンを記憶するアレイ404の記憶容量を大きくする必要がある。しかし、アレイ404の記憶容量の増大は、期待されるような処理の高速化を妨げる場合がある。
【００３８】
閾値マスクが格納する閾値は、ハーフトーン画像が表現可能な階調数に関連し、m階調を表現可能な閾値マスクの閾値は0〜m-2の値である。つまり、より多階調を表現するために階調数mを増加すると、閾値マスクに格納する閾値の数（セル数）が増加するとともに、より大きな閾値を格納するためにセルのビット長も増加して、アレイ404に必要な記憶容量が増大する。一方、ドットパターンの場合、階調数mが増加してもドットパターン当りの記憶容量は変わらないが、階調数mの増加分、ドットパターンの数が増加して、アレイ404に必要な記憶容量が増加する。
【００３９】
また、閾値マスクにせよドットパターンにせよ、アレイサイズを大きくすれば、ドットのオンとオフの配置により高い自由度を与えることができ、視覚的により好ましいドットパターンを生成することができる。とくに、ドット配置を高分散化するFMディザにおいて顕著である。
【００４０】
また、閾値マスクまたはドットパターンは反復してタイルのように利用されるが、アレイサイズが小さいと、閾値マスクまたはドットパターンの繰り返しが視認され、視覚的に好ましい画像にならない問題がある。反復利用に起因する問題は、アレイサイズが大きいほど低減されるため、繰り返しを目立たなくするためにもアレイサイズは大きい方が好ましい。しかし、アレイサイズが大きくなれば、当然、記憶容量も増大する。
【００４１】
図2に示す処理ユニット202においてハーフトーニング処理を高速に実行するには、アレイ404を記憶部204に割り当て、データ保存部105から主記憶201に閾値マスクまたはドットパターンをロードする。そして、主記憶201にロードした閾値マスクまたはドットパターンの少なくとも一部を記憶部204のアレイ404にキャッシュする。これにより、ハーフトーニング処理を実行して階調変換器405として機能するプロセッサ203は、アレイ404に高速アクセスして、高速処理が実現される。
【００４２】
しかし、アレイ404の記憶容量が大きくなると、記憶部204へのアレイ404の割り当てが困難になる。その対処として、閾値マスクまたはドットパターンを分割するなどしてアレイ404の記憶容量を低減することが考えられる。しかし、その場合、主記憶201から記憶部204に向かう、閾値マスクまたはドットパターンの分割部分の転送や読み込みが頻繁になり、この転送時間や読込時間の増加により、期待される高速処理の達成が難しくなる。
【００４３】
本実施例においては、複数の処理ユニット202がそれぞれ、画像のある領域のみを処理するようにして、当該領域の処理に必要な情報のみを処理ユニット202に渡すように構成する。これにより、各処理ユニット202のプロセッサ203が必要とするアレイ404の記憶容量を抑制し、記憶部204へのアレイ404の割り当てを容易にし、処理に必要な情報の転送時間や読込時間を低減する。そして、処理部103全体として、大きな記憶容量のアレイ404を実現し、より高画質のハーフトーニング処理を高速に実行する。
【００４４】
［マルチプロセッサによるハーフトーニング処理］
図7により処理ユニット202に割り当てる領域の一例を示す。図7は閾値マスクの一例を示し、閾値マスクを縦横に四分割した左上、右上、左下、右下の各領域を領域a、b、c、dと呼ぶことにする。
【００４５】
図8のブロック図により実施例のハーフトーニング部306の構成例を説明する。図8において、処理ユニット202Nは、ハーフトーニング処理の全体を制御する。処理ユニット2021から2024が四分割した領域それぞれのハーフトーニング処理を行う。勿論、図7、8に示す構成は一例であり、ハーフトーニング処理に利用可能な処理ユニット202の数に応じて領域の分割やハーフトーニング処理の割り当てが変化した分散処理が実行される。つまり、処理ユニット202Nは、分散処理を管理する管理部として機能する。
【００４６】
本実施例においては、複数の処理ユニット202がそれぞれ、画像のある領域のみを処理する。例えば、処理ユニット2021は、図7に示す領域aを処理する。同様に、処理ユニット2022は領域bを、処理ユニット2023は領域cを、処理ユニット2024は領域dを処理する。
【００４７】
そして、ハーフトーニング処理の実行時、処理ユニット2021の記憶部204は、領域aに対応する閾値マスクの閾値を保持する。同様に、処理ユニット2022の記憶部204は領域bに対応する閾値を、処理ユニット2023の記憶部204は領域cに対応する閾値を、処理ユニット2024の記憶部204は領域dに対応する閾値を保持する。
【００４８】
図9のフローチャートにより実施例の分散型のハーフトーニング処理を説明する。
【００４９】
処理ユニット202Nは、処理領域の割り当て（分散）を行う(S801)。図8に示す例では、処理ユニット2021に領域aの処理が、処理ユニット2022に領域bの処理が、処理ユニット2023に領域cの処理が、処理ユニット2024に領域dの処理が割り当てられる。
【００５０】
処理領域が割り当てられた各処理ユニットのプロセッサ203は、担当領域の処理に必要な情報（閾値マスクの領域a、b、cまたはdに含まれる閾値、または、ドットパターンの一部）を記憶部204に格納する(S811)。これにより、ハーフトーニング処理が可能な状態になる。以下では、分割された閾値マスクを「部分閾値マスク」と呼ぶ。部分閾値マスクは、領域a、b、cまたはdに含まれる閾値を有する。
【００５１】
次に、処理ユニット202Nのプロセッサ203は、主記憶201に記憶された、ハーフトーニング処理より前の処理が施され画像データ（またはその処理対象領域）を閾値マスクの分割に合わせて分割する(S802)。そして、分割画像データ211の処理開始を各処理ユニットに通知する(S803)。
【００５２】
各処理ユニット202のプロセッサ203はそれぞれ、処理開始の通知を受信すると(S812)、主記憶201から担当領域の画像データを読み込む(S813)。そして、記憶部204の部分閾値マスク（またはドットパターンの一部）を用いて、入力した画像データにハーフトーニング処理を施す(S814)。入力した画像の処理が終了すると、処理後の画像データを主記憶201の所定領域に書き込み(S815)、処理終了を処理ユニット202Nに通知する(S816)。
【００５３】
次に、各処理ユニット202のプロセッサ203はそれぞれ、処理ユニット202Nから次の分割画像データ211の処理の指示を受信したか、画像データ全体の処理終了（分散処理の終了）を示す通知を受信したか否かを判定する(S817)。次の分割画像データ211の処理の指示を受信した場合は、処理をステップS813に戻して、次の分割画像データ211の処理を実行する。また、画像データ全体の処理終了を示す通知を受信した場合は処理を終了する。
【００５４】
図8に示すように、処理ユニット2021のプロセッサ203は、分割画像データ211から領域aに対応する画像データAを読み出し、ハーフトーニング処理した画像データA'を主記憶201に書き込む。同様に、処理ユニット2022のプロセッサ203は、分割画像データ211から領域bに対応する画像データBを読み出し、ハーフトーニング処理した画像データB'を主記憶201に書き込む。処理ユニット2023のプロセッサ203は、分割画像データ211から領域cに対応する画像データCを読み出し、ハーフトーニング処理した画像データC'を主記憶201に書き込む。処理ユニット2024のプロセッサ203は、分割画像データ211から領域dに対応する画像データDを読み出し、ハーフトーニング処理した画像データD'を主記憶201に書き込む。以上の処理は、複数の処理ユニット202による並列処理として実行される。
【００５５】
処理ユニット202Nのプロセッサ203は、処理を割り当てた処理ユニット202すべてから処理終了の通知を受信するのを待つ(S804)。処理を割り当てた処理ユニット202すべてから処理終了の通知を受信すると、画像データ全体のハーフトーニング処理が終了したか否かを判定する(S805)。画像データ全体のハーフトーニング処理が未了の場合は、次の分割画像データ211の処理を各処理ユニットに指示し(S806)、処理をステップS804に戻す。
【００５６】
また、画像データ全体のハーフトーニング処理が終了すると、処理ユニット202Nのプロセッサ203は、画像データ全体の処理終了（分散処理の終了）を各処理ユニットに通知する(S807)。そして、主記憶201の所定領域に書き込まれた画像データA'、B'、C'、D'を結合してハーフトーニング処理の出力画像データ212とし(S808)、処理を終了する。
【００５７】
従来、閾値マスクなどのハーフトーニング処理に必要な情報（以下、ハーフトーニング情報）は、すべて主記憶に一体に保持され、複数のプロセッサから共通にアクセスされていた。つまり、各プロセッサは、処理中、必要に応じて、入力画像データとともにハーフトーニング情報を主記憶から読み込んで、ハーフトーニング情報を利用していた。しかし、ハーフトーニング情報のデータサイズが大きくなると、プロセッサ側では、ハーフトーニング情報の記憶領域を確保することが難しくなり、ハーフトーニング情報を分割して読み込む等の処置が必要になる。しかし、ハーフトーニング情報を分割して読み込む等を行えば、読込回数、転送回数が増加し、処理に時間がかかる要因となる。
【００５８】
特許文献1の技術においても、各ドットパターンを選択的に読み込めるようにして読込回数を低減し、ドットパターンを圧縮することで転送負荷を低減する工夫が図られている。しかし、すべてのドットパターンは一体として存在し、複数のプロセッサから共通にアクセスされる。
【００５９】
一方、本実施例においては、画像領域を分割し、各処理ユニット202に処理する画像領域を割り当て、ハーフトーニング処理に必要な情報も画像領域の分割に合わせて分割し、各処理ユニットは担当領域のハーフトーニング処理に必要な情報のみを保持する。言い替えれば、少なくてもハーフトーニング処理を行う段階で、単体で閾値マスクの全体を表す情報は存在せず、部分閾値マスクがプロセッサ203の記憶部204に保持され、当該部分閾値マスクは他のプロセッサからのアクセスを前提としない。
【００６０】
このような構成により、アレイ404が全体として大きな記憶容量を必要とする場合も、各プロセッサ203が必要とする記憶容量は、部分閾値マスクの保持に必要な記憶容量で済む。その結果、プロセッサ203は記憶部204にアレイ404の記憶領域を確保することが可能になり、閾値マスクの転送や読み込みを頻繁に行う時間的なコストを削減することができる。
【００６１】
さらに、記憶容量が比較的小さいが高速アクセスが可能な記憶部204にアレイ404が割当可能になることで、プロセッサ203による部分閾値マスクのアクセスが高速化され、処理の高速化を図ることができる。
【００６２】
従来、プロセッサがアクセスするターゲットが閾値マスク全体であり、必要に応じて、閾値マスク全体または一部を読み込む必要があったが、本実施例においてプロセッサ203がアクセスするターゲットは記憶部204に保持可能な部分閾値マスクである。勿論、このような構成によれば、各プロセッサ203は担当領域以外の処理は不可能になる。その反面、プロセッサ203の処理が担当領域に特化され、全体としては大きな記憶容量を必要とするアレイ404から分割した小さな記憶容量の部分閾値マスクを使用して、高画質を達成しつつ、処理を高速化することができる。
【００６３】
また、各プロセッサ203の担当領域を画像の領域によって定めれば、各プロセッサ203に割り当てる処理はほぼ同量になり、処理量の偏りを防ぐことができる。ただし、本実施例の要点は、各プロセッサ203の担当領域に対応してハーフトーニング情報が各プロセッサ203に分散保持されることであり、分散保持が可能であれば、担当領域は画像の位置以外によって定めることができる。
【００６４】
例えば、階調を分割した担当階調を各プロセッサ203に割り当ててもよい。例えば、階調0〜4は処理ユニット2021のプロセッサ203に割り当てる。階調5〜8は処理ユニット2022のプロセッサ203に、階調9〜12は処理ユニット2023のプロセッサ203に、階調13〜16は処理ユニット2024のプロセッサ4に割り当てる。
【００６５】
担当階調を定める場合、入力画像データによっては、各プロセッサ203に割り当てる処理量に偏りが発生する可能性がある。各プロセッサ203は、ある階調範囲に対応するアレイを保持すればよく、ハイライト域やシャドウ域では白と黒の比率にかなりの偏りがある。そこで、ハイライト域では比率が小さい黒ドットの情報のみを保持し、シャドウ域では比率が小さい白ドットの情報のみを保持するようなドットパターンの記憶方法を採用することで、保持する情報量を低減することが可能である。一般に、情報に偏りがある圧縮は効果的であるから、担当階調を定める場合、ランレングス圧縮や、その他の圧縮技術を利用して必要な記憶容量を低減してもよい。
【００６６】
従来、ハーフトーンング情報は一体に保持され、全プロセッサが共用するため、全階調のハーフトーン情報を同一形式で記録する必要があった。しかし、本実施例によれば、各プロセッサ203は担当階調のハーフトーニング情報さえあればよく、全階調のハーフトーニング情報が同一形式である必要はない。従って、階調の範囲ごとに適した圧縮方法を適用するなど、アレイの構成を、担当階調ごとに、より適した形式に変更することが可能である。
【実施例２】
【００６７】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００６８】
実施例1では、ハーフトーニング部306において例えば8ビットの色材量データが各色二値のデータに変換された後、マルチパス変換処理部310においてマルチパス記録における各走査のドット記録パターンが決定される。この方法によれば、プリンタドライバ301において各走査のドット記録パターンを決定する必要がなく、プリンタドライバ301には各走査のドット記録パターンを決定するための情報が不要である。
【００６９】
一方、マルチパス変換処理部310は、ハーフトーニング部306によって生成され、印刷データ生成部307から受信した二値データに所定の規則を適用して、各走査のドット記録パターンを決定する。その結果、各走査のドット記録パターンを決定するまでの処理が多段階になり、各走査のドット記録パターンの制御が複雑になる。しかし、マルチパス記録においては、各走査のドット記録パターンの配置が粒状性などの画質に影響を与えるため、各走査のドット記録パターンの制御が容易であることが望ましい。
【００７０】
実施例2では、複数回の走査（パス）に対応するデータをプリンタドライバ301からプリンタ109に転送することで、各走査のドット記録パターンの制御を容易にする。本手法を単純に適用すると、プリンタドライバ301を実現する処理部103は、さらに、各走査のドット記録パターンを決定するための情報を記憶する記憶容量、および、各走査のドット記録パターンを記憶するための記憶容量を必要とする。実施例2では、これら記憶容量を極力低減する方法を説明する。
【００７１】
具体的には、多値の走査ごとの色材量データ（以下、走査データ）を算出し、走査ごとにドット記録パターンを決定する構成において、ハーフトーニング処理に使用する閾値マスクやドット記録パターンを記憶するための記憶容量を低減する。
【００７２】
図10のブロック図により実施例2の処理構成例を説明する。図3の処理構成と異なるのは、走査データ処理部313が追加されている点である。
【００７３】
走査データ処理部313は、ガンマ補正処理部305が出力する色材量データを各走査の色材量データ（走査データ）に変換する。ハーフトーニング部306は、走査データを各色二値のデータに変換する。実施例2においては、この時点で、マルチパス記録における各走査のドットの記録パターンが決定される。印刷データ生成部307は、ハーフトーニング処理された走査データを所定フォーマットの印刷データにしてプリンタ109に出力する。
【００７４】
ヘッド駆動回路311は、プリンタドライバ301から入力される各走査のドット記録パターンに基づき、複数の記録素子を備えた記録ヘッド312を制御するための駆動信号を生成する。記録ヘッド312は、駆動信号に基づき、記録媒体上で複数回走査して各色材のドットを記録する。
【００７５】
●走査データ処理部
図11のブロック図により走査データ処理部313の基本的な構成例を示す。
【００７６】
走査データ処理部313の走査データ算出部1005は、ガンマ補正処理部305から色材量データ1002を入力し、走査データ設定テーブル1004を参照して、走査ごとの色材量データ（以下、走査データ）1003を出力する。なお、走査データ設定テーブル1004は、各走査のドット記録パターンを決定するための情報である。
【００７７】
図12により走査データ1003の設定方法を説明する。図12は、記録ヘッド312のノズル列が16ノズルであり、同一の走査領域に対して二回の走査により画像を形成する2パス記録の例を示す。
【００７８】
一般に、2パス記録の場合、一回目の走査（走査1）において、ノズル列の下側の半数のノズルを使用して画像記録を行う。続く二回目の走査（走査2）において、ノズル列の長さの半分に相当する紙送りを行った後、ノズル列の上側の半数のノズルにより画像記録を行う。このような走査および紙送りを繰り返して、最終的に出力画像が形成される。
【００７９】
図13により16ノズル、2パス記録の場合の走査データ設定テーブル1004を説明する。図13(a)において、縦軸はノズル位置、横軸はデータ分割率を示す。図13(a)によれば、すべてのノズルにデータ分割率が0.5が設定されている。なお、走査データ設定テーブル10004に保持されるデータ分割率は上記に限らず、ノズル列の上端下端でデータ分割率が小さくなる設定でもよい。
【００８０】
走査データ算出部1005は、走査データ設定テーブル1004と色材量データ1002の積を算出する。つまり、図13(b)に示すように、色材量データ1002に対して、ノズルごとに設定されたデータ分割率を乗じ、ノズルごとの走査データ1003が設定される。走査時、各ノズルは走査データ1003分に相当する色材を吐出する。この例では、データ分割率が0.5であるから、走査データ1003は色材量データ1002の半分の値に設定される。
【００８１】
図14により走査データ1003の決定を説明する。図14は、各走査におけるノズル位置に対する走査データ1003を示し、走査1、2、3において走査データが異なる。各走査の走査データ1003は、色材量データ1002とデータ分割率の積であり、領域1において、走査1の走査データ1003と紙送り後の走査2の走査データ1003を合計すると、色材量データ1002相当の値が得られる。
【００８２】
●ハーフトーニング部
ハーフトーニング部314の基本的な構成は実施例1の図4と同じである。
【００８３】
図15により実施例2のアレイ404に記憶されるディザ法の閾値マスクを説明する。図15に示す閾値マスク1601aは、4×4のセルに閾値0〜7が格納された九階調の閾値マスクである。実施例2において、閾値マスク1601aには4×4の16セルがあるが、そのうち閾値が格納されるセルは半分の八つである。このように閾値マスク1601aに格納する閾値の数が低減される理由は、走査データ処理部313の処理において色材量データ1002にデータ分割率が乗算されて、例えば、走査データ1003の値の範囲が半分になるためである。
【００８４】
閾値マスク1601bは、閾値マスク1601aの閾値の配置を変更した閾値マスクである。閾値マスク1601aが走査1用の閾値マスクとすると、閾値マスク1601bが走査2用の閾値マスクである。つまり、走査2に対応するハーフトーニング処理において、閾値マスク1601aの最下段と三段目の閾値を右にシフトし、二段目と四段目の閾値を左にシフトした閾値マスク1601bを使用するが、閾値の数は変わらない。
【００８５】
階調変換器405には「入力画像データの画素値が閾値マスク1601a（または1601b）の対応するセルに格納された閾値より大きい場合は当該画素をオンドットにする」が定義されている。例えば、閾値マスク1601aと同じ大きさの、単一の値「3」をもつ画像1602が入力された場合、上記の定義に従い、三画素がオンドットの画像1603が出力される。なお、黒べたの画素はオンドットを表す。一方、入力画像1602よりもやや暗い、単一の値「4」をもつ画像1604が入力された場合、上記の定義に従い、四画素がオンドットの画像1605が出力される。閾値マスク1601のセル(i, j)と画素位置(x, y)の対応関係は式(1)によって示される。
【００８６】
上記は、2パス記録により、色材量データ1002に対して、走査データ1003の値の範囲が半分になる例を示した。つまり、色材量データ1002に対して走査データ1003のビット長の低減が可能になる。また、閾値マスク1601に格納する閾値の数も低減（例えば、実施例1が16個に対して実施例2は八個）され、閾値マスク1601に必要な記憶容量を低減することができる。
【００８７】
言い替えれば、分散処理の管理部である処理ユニット202Nは、画像データの画素位置に応じて走査データ1003を分割する。閾値マスク1601に格納される閾値の最大値は、走査データ1003の最大値に対応し、色材量データ1002の最大値よりも小さい。さらに、4パス記録、8パス記録、16パス記録とパス数が増加すれば、走査データ1003の値の範囲が減り、さらに走査データ1003のビット長および閾値マスクの記憶容量の低減が可能である。
【００８８】
図16により実施例2のアレイ404に上述したドットパターンを格納する例を説明する。つまり、アレイ404は、閾値マスクに代えて、ドットのオンオフを示すドットパターンを階調数分、記憶する。そして、階調変換器405は、走査データ1003の画素値gに対して、第g階調を表すドットパターンの、式(1)で決まるセル(i, j)の値を出力値とする。なお、W、Hはドットパターンの幅と高さである。この場合も、走査データ1003の値の範囲は、2パス記録の場合は半分になる。つまり、アレイ404は、実施例1においては第0階調から第m階調の全階調分のドットパターンを格納するが、実施例2においては第0階調から第m/2階調のドットパターンを格納する。
【００８９】
ただし、図16に示すドットパターンは例えば走査1用である。走査2に対応するハーフトーニング処理においては、各ドットパターンの最下段と三段目のオンドットを右にシフトし、二段目と四段目のオンドットを左にシフトしたドットパターンを使用する。その場合も、ドットパターンの数は変わらず、実施例1の半分以下にすることができる。
【００９０】
言い替えれば、分散処理の管理部である処理ユニット202Nは、走査データ1003を画像データの値に応じて分割する。ドットパターンの数は、色材量データ1002の階調数よりも小さい。
【００９１】
［変形例］
実施例1、2では、二値のハーフトーニング処理を説明したが、ハーフトーニング処理の出力は二値に限らず、二値を超える多値でもよい。
【００９２】
また、実施例1、2では、シリアルタイプのインクジェット記録装置に関するマルチパス記録を説明した。しかし、記録媒体を所定位置にセットし、記録媒体を搬送しながら記録動作を行う、所謂フルラインタイプのインクジェット記録装置に本発明を適用可能である。
【００９３】
フルラインタイプのインクジェット記録装置において、同一色一列の記録素子列を用いて画像記録を行うと、記録素子ごとの色材の吐出量、吐出方向のばらつきにより、画像上に条（バンディング）が発生することがある。そこで、フルラインタイプの記録ヘッドとして、同一色多列の記録素子列を用いた画像記録装置が提案されている。この同一色多列の記録素子列は「多列ヘッド」と呼ばれ、同色の色材を吐出する記録素子列を複数配列した記録ヘッドである。多列ヘッドを用いる場合、各列による印刷を各パスと考えれば、マルチパス効果を得ることができる。従って、実施例1、2において各パスに振り分けた処理を各列に適用すれば、マルチパス記録と同様の効果を得ることができる。
【００９４】
また、フルラインタイプの多列ヘッドとして、所謂つなぎ多列ヘッドにも本発明を適用可能である。つなぎ多列ヘッドは、短い長さの多列ヘッド（短尺多列ヘッド）における記録素子列同士が一部オーバラップするように、短尺多列ヘッドを複数個連結した記録ヘッドである。つまり、短尺多列ヘッドを吐出口の配列方向に複数つなぎ合わせるように、記録ヘッドを配列して記録領域の全幅に跨る多列ヘッドを実現する。このつなぎ多列ヘッドにおいても、実施例1、2において各パスに振り分けた処理を各列に適用すれば、マルチパス記録と同様の効果を得ることができる。
【００９５】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ（又はCPUやMPU等）がプログラムを読み出して実行する処理である。
【図１】
2014219883.tif 000003
【図２】
2014219883.tif 000004
【図３】
2014219883.tif 000005
【図４】
2014219883.tif 000006
【図５】
2014219883.tif 000007
【図６】
2014219883.tif 000008
【図７】
2014219883.tif 000009
【図８】
2014219883.tif 000010
【図９】
2014219883.tif 000011
【図１０】
2014219883.tif 000012
【図１１】
2014219883.tif 000013
【図１２】
2014219883.tif 000014
【図１３】
2014219883.tif 000015
【図１４】
2014219883.tif 000016
【図１５】
2014219883.tif 000017
【図１６】
2014219883.tif 000018