JP2005260424A - 画像処理を並列処理で実行する際の負荷の割り付け - Google Patents
画像処理を並列処理で実行する際の負荷の割り付け Download PDFInfo
- Publication number
- JP2005260424A JP2005260424A JP2004066983A JP2004066983A JP2005260424A JP 2005260424 A JP2005260424 A JP 2005260424A JP 2004066983 A JP2004066983 A JP 2004066983A JP 2004066983 A JP2004066983 A JP 2004066983A JP 2005260424 A JP2005260424 A JP 2005260424A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- processing
- processes
- assigned
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
【課題】 画像処理を並列処理で実行する際に各処理部間の負荷のばらつきを少なくして、効率的に処理を実行する技術を提供する。
【解決手段】 N種類(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行する画像処理において、各処理集合の実行に先立って、単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部にN種類の単位処理を割り当てる。まず、直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各種類の単位処理の見積もり負荷を見積もる。そして、見積もり負荷に基づいてN種類の単位処理を処理部に割り当てる。その際、まだ処理部に割り当てられていない単位処理のうちの一つである選択単位処理を、処理部の一つに割り当てる。
【選択図】 図8
Description
この発明は、画像処理を並列処理で実行する技術に関する。
従来より、各画素が有する各インク色の階調値で表された画像データを、各画素におけるインク色のドットの有無で表された画像データに変換する際に、並列処理を行う技術が開発されてきた。たとえば、特許文献1には、処理内容に応じてラスタライズ(並べ替え)処理と、ハーフトーン処理とを別のスレッドで実行する技術が開示されている。
しかし、上記の技術においては、各スレッド、すなわち処理部の間の負荷のばらつきについては考慮されていなかった。
本発明はかかる点に鑑みてなされたもので、画像処理を並列処理で実行する際に各処理部間の負荷のばらつきを少なくして、効率的に処理を実行する技術を提供することを主たる目的とする。
上記目的を達成するために、本発明は、N種類(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行する画像処理において、以下の処理を行う。この画像処理は、たとえば、単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部を有し、処理集合を実行して画像処理を行う画像処理部と、各処理集合の実行に先立って、処理部にN種類の単位処理を割り当てる割り付け部と、を有する画像処理装置において実行可能である。
画像処理の際には、まず、直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各種類の単位処理の見積もり負荷を見積もる。そして、見積もり負荷に基づいてN種類の単位処理を処理部に割り当てる。その際、まだ処理部に割り当てられていない単位処理のうちの一つである選択単位処理を、処理部の一つに割り当てる。
このような態様においては、前回の処理結果に基づいて各単位処理の負荷を決定するため、実際の負荷とのずれが小さい正確な負荷の見積もりが可能である。そして、このような態様においては、それまでに各処理部に割り付けられた負荷を考慮して、順に単位処理を割り付けることができる。
なお、選択単位処理は、まだ処理部に割り当てられていない単位処理のうちで、見積もり負荷が最も小さい単位処理以外の単位処理から選択された単位処理とすることが好ましい。
このような態様とすれば、見積もり負荷が最も小さい単位処理を最後に処理部に割り付けることができる。このため、最後の単位処理の処理部への割り付けによって、処理部間の負荷のばらつきを大きくしてしまう可能性が小さい。
また、選択単位処理は、まだ処理部に割り当てられていない単位処理のうちで、見積もり負荷が最も大きい単位処理とすることが好ましい。
このような態様においては、後になるほど負荷の小さい単位処理を処理部に割りあてることができる。このため、後になるほど、各処理部の負荷を細かく調整しながら単位処理を割り当てることができる。よって、処理部間の負荷のばらつきを少なくして、効率的に画像処理を実行することができる。
なお、一つの処理集合に含まれるすべての単位処理が完了した後に、その一つの処理集合に含まれる単位処理を各処理部において実行することが好ましい。このような態様においては、各単位処理の処理部への割り当ては実行前にあらかじめ定められている。よって、各処理集合を迅速に実行することができる。
なお、単位処理は、画像中の所定の大きさの領域の所定の色の濃淡が画素の階調値で表される第1の部分画像データを、所定の領域の所定の色の濃淡が画素における所定の色のドットの形成の有無で表される第2の部分画像データに変換する処理とすることができる。言い換えれば、単位処理は、画像中の所定の大きさの領域に関する所定の色についてのハーフトーン処理とすることができる。そして、処理集合は、画像中の同一の領域を対象とする互いに異なる色の単位処理の集合であって、画像中の互いに隣接する領域について並びの順に実行される処理とすることができる。
一つの画像内においては、隣接する領域同士は、各色の存在割合が近似していることが多い。このため、上記のような態様とすれば、各色の存在割合が近似している隣接領域の処理集合の実行結果に基づいて、次に行う処理の負荷を正確に見積もることができる。
なお、M個の処理部は、互いに異なる基礎順位を有する態様とすることができる。そして、N種類の単位処理を処理部に割り当てる際には、選択単位処理の割り当てに先立って、基礎順位の高い処理部から低い処理部へ向かう順番と、基礎順位の低い処理部から高い処理部へ向かう順番と、を交互に繰り返す割り付け順序にしたがって、選択単位処理を割り当てられる一つの処理部を選択する態様とすることができる。
負荷の大きい単位処理から順に処理部に割り当てる場合、固定された順序に従って繰り返し処理部に単位処理を割り当てたのでは、以下のような問題が生じる。すなわち、順序の早い処理部の負荷が順序の遅い処理部の負荷よりも大きくなる可能性がある。しかし、上記のような態様においては、基礎順位の昇順と降順を交互に繰り返して、単位処理を割り当てる処理部を選択する。このため、処理部間において負荷のばらつきが生じにくい。
また、選択単位処理を割り当てられる一つの処理部は、すでに割り当てられた単位処理の見積もり負荷の合計が最も少ない処理部とすることもできる。このような態様とすれば、負荷のばらつきを打ち消すように各単位処理を割り当てることができる。
なお、本発明は、以下のような画像処理装置で実現することもできる。すなわち、単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部を有し、処理集合を実行して画像処理を行う画像処理部と、処理集合の一部の単位処理が実行されている間に、処理集合の他の一部の単位処理を処理部に割り当てる割り付け部と、を有する画像処理部である。
そのような画像処理装置において、まず、直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各種類の単位処理の見積もり負荷を見積もる。そして、すでに割り当てられた単位処理の実行を完了した処理部に、まだ処理部に割り当てられていない単位処理のうちの一つである選択単位処理を割り当てる。
このような態様においては、実際の処理の結果に基づいて、負荷のばらつきを打ち消すように各単位処理を割り当てることができる。このため、処理部間の負荷のばらつきを少なくして、効率的に画像処理を実行することができる。
なお、選択単位処理の割り当てを完了した後で、次の単位処理の割り当て以前に、その選択単位処理であった単位処理の実行を処理部において開始することが好ましい。このような態様においては、各処理部において単位処理を実行しつつ、各処理部に単位処理を割り当てることができる。
なお、画像処理部は、ハイパースレッディングにより処理集合を実行する態様とすることができる。そのような態様においては、処理部は、スレッドである。
なお、本発明は、種々の形態で実現することが可能である。例えば、処理の割り当て方法、処理割り当て装置、画像処理方法、画像処理装置、印刷制御方法、印刷制御装置、印刷方法、印刷装置、そして、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体等の形態で実現することができる。
以下では、発明の実施の形態を次の順序で説明する。
A.第1の実施形態.
A1.装置の全体構成.
A2.CPUの内部構成.
A3.色変換処理とハーフトーン処理.
B.第2の実施形態.
C.変形例.
A.第1の実施形態.
A1.装置の全体構成.
A2.CPUの内部構成.
A3.色変換処理とハーフトーン処理.
B.第2の実施形態.
C.変形例.
A.第1の実施形態.
A1.装置の全体構成.
図1は、第1の実施形態の印刷システムのソフトウェアの構成を示すブロック図である。コンピュータ90では、所定のオペレーティングシステムの下で、アプリケーションプログラム95が動作している。また、オペレーティングシステムには、ビデオドライバ91やプリンタドライバ96が組み込まれている。
A1.装置の全体構成.
図1は、第1の実施形態の印刷システムのソフトウェアの構成を示すブロック図である。コンピュータ90では、所定のオペレーティングシステムの下で、アプリケーションプログラム95が動作している。また、オペレーティングシステムには、ビデオドライバ91やプリンタドライバ96が組み込まれている。
アプリケーションプログラム95は、マウス130やキーボード120から入力されるユーザの指示に応じて、レッド(R),グリーン(G),ブルー(B)の3色の色成分からなる原画像データORGをCD−R140から読み込む。そして、ユーザの指示に応じて、原画像データORGに画像のレタッチなどの処理を行う。アプリケーションプログラム95は、処理を行った画像を、ビデオドライバ91を介してCRTディスプレイ21に画像を表示する。また、アプリケーションプログラム95は、ユーザからの印刷指示を受け取ると、プリンタドライバ96に印刷指示を出し、処理を行った画像を初期画像データPIDとしてプリンタドライバ96に出力する。
プリンタドライバ96は、初期画像データPIDをアプリケーションプログラム95から受け取り、これをプリンタ22が処理可能な印刷画像データFNL(ここではシアン、マゼンダ、イエロー、ブラック、ライトシアン、ライトマゼンタ、ダークイエローの7色についての多値化された信号)に変換する。
図1に示した例では、プリンタドライバ96の内部には、解像度変換モジュール97と、色変換モジュール98と、色変換テーブル104と、ハーフトーンモジュール99と、負荷記憶部105と、並べ替えモジュール100とが備えられている。
解像度変換モジュール97は、初期画像データPIDの解像度をプリンタ22で印刷を行う際の解像度に変換する。色変換モジュール98は、カラー画像の印刷においては、3次元ルックアップテーブルである色変換テーブル104を参照しつつ、RGBの階調値で各画素の色が現されている画像データMID1を、プリンタ22が使用するシアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K)、ライトシアン(LC)、ライトマゼンタ(LM)、ダークイエロー(DY)の階調値で各画素の色が表された画像データMID2に変換する。
なお、ライトシアンは、シアンと色相が同じでシアンよりも明るい色のインクである。ライトマゼンタは、マゼンタと色相が同じでマゼンタよりも明るい色のインクである。ダークイエローは、イエローと色相が同じでイエローよりも暗い色のインクである。
ハーフトーンモジュール99は、各画素の各色の濃度が各色の階調値で表された画像データMID2にハーフトーン処理を行うことによって、各色の濃度が各画素におけるドットの有無で表される画像データMID3(「印刷データ」または「ドットデータ」とも呼ぶ)に変換する。ハーフトーン処理は、「2値化処理」とも呼ばれる。このハーフトーン処理は、ライトシアン(LC)、ライトマゼンダ(LM)、シアン(C)については、誤差拡散法で行われ、マゼンダ(M)、イエロー(Y)、ブラック(K)、ダークイエロー(DY)については、ディザ法で行われる。
「ディザ法」は、画素に対応する要素内にそれぞれしきい値を有しているn×mのディザマトリクス(n、mは正の整数)と、n×mの画素からなる部分画像領域とを比較し、部分画像領域の各画素が有する階調値がしきい値よりも高いか否かでドットの形成の有無を決定する方式である。「誤差拡散法」は、一つの対象画素へのドットの形成の有無をしきい値との比較に基づいて決定し、ドットの形成の有無による2段階の濃度表現と、多階調の階調値で指定された濃度と、のずれ(誤差)を、まだ対象画素となっていない他の画素に振り分けて、それらの画素の階調値に上乗せしてゆく方法である。
一般に、同じデータをハーフトーン処理する場合は、ディザ法で行った方が、誤差拡散法で行った場合よりも、処理の負荷が小さくなる。ただし、誤差拡散法でハーフトーン処理を行った方が、一般に画像の印刷結果が高品質となる。ここでは、印刷結果の品質の良悪が目につきやすいライトシアン、ライトマゼンタについては、誤差拡散法でハーフトーン処理を行うことし、印刷結果の品質の良悪が目につきにくいイエローについては、ディザ法でハーフトーン処理を行うこととする。他のインク色については、ハーフトーン処理全体がシステムに与える負荷を考慮して、いずれの方法を採用するかが決定される。
ハーフトーンモジュール99で生成された画像データMID3は、並べ替えモジュール100によりプリンタ22に転送すべきデータ順に並べ替えられて、最終的な印刷画像データFNLとして出力される。
プリンタ22は、紙送りモータによって用紙Pを搬送する機構と、キャリッジモータによってキャリッジ31を用紙Pの搬送方向SSと垂直な方向MSに往復動させる機構と、キャリッジ31に搭載されインクの吐出およびドット形成を行う印刷ヘッド28と、各種の設定データを格納しているP−ROM42と、これらの紙送りモータ,キャリッジモータ,印刷ヘッド28、P−ROM42および操作パネル32を制御するCPU41とから構成されている。プリンタ22は、印刷画像データFNLを受け取って、印刷画像データFNLに応じてシアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K)、ライトシアン(LC)、ライトマゼンタ(LM)、ダークイエロー(DY)で印刷媒体上にドットを形成し、印刷を実行する。
なお、本明細書においては、「印刷装置」とは、狭義にはプリンタ22のみをさすが、広義にはコンピュータ90とプリンタ22とを含む印刷システム全体を表す。
A2.CPUの内部構成および動作.
コンピュータ90のCPU90aは、ハイパースレッディング・テクノロジに対応したCPUである。このCPU90aは、二つのスレッドを並列に処理することが可能である。これら二つのスレッドを、図1において、第1のスレッド99c、第2のスレッド99dとして示す。以下では、ハイパースレッディング・テクノロジに対応したCPU90aの構成および動作について説明する。
コンピュータ90のCPU90aは、ハイパースレッディング・テクノロジに対応したCPUである。このCPU90aは、二つのスレッドを並列に処理することが可能である。これら二つのスレッドを、図1において、第1のスレッド99c、第2のスレッド99dとして示す。以下では、ハイパースレッディング・テクノロジに対応したCPU90aの構成および動作について説明する。
図2は、コンピュータ90のCPU90a内における処理を示すブロック図である。CPU90aは、内部に命令フェッチユニット220、命令デコーダ230、演算ユニット240、命令キャッシュ210、データキャッシュ250を有している。そして、命令フェッチユニット220、命令デコーダ230、演算ユニット240は、それぞれ処理した命令およびデータを一時的に保管するためのバッファ222,232,242を有している。バッファ222,232,242は、それぞれ第1のスレッド用と第2のスレッド用に分割されている。
命令キャッシュ210には、すでに一度使用された命令、およびそれに引き続いて使用されると予想される命令が格納されている。命令フェッチユニット220は、命令キャッシュ210のアドレスを指定して、命令を取り出す(フェッチする)。その際、第1のスレッド用の命令は第1のスレッド用のバッファに格納される。そして、第2のスレッド用の命令は第2のスレッド用のバッファに格納される。なお、命令キャッシュ210内に必要とする命令がない場合には、CPU90aは、メインメモリ(図示せず)にアクセスして、命令を取り出す。
その後、命令フェッチユニット220は、命令デコーダ230に取り出した命令を渡す。その際、奇数クロックのタイミングで第1のスレッドの一つの命令を命令デコーダ230に投入し、偶数クロックのタイミングで第2のスレッドの一つの命令を命令デコーダ230に投入する。すなわち、第1のスレッドの命令と第2のスレッドの命令は、交互に命令デコーダ230に投入される。図2では、第2のスレッド用の命令にハッチをつけて示す。
命令デコーダ230は、投入された命令をマイクロコードに変換(デコード)し、バッファ232に格納する。その際、デコードされた命令が第1のスレッド用の命令である場合は、第1のスレッド用のバッファに格納される。そして、デコードされた命令が第2のスレッド用の命令である場合は、第2のスレッド用のバッファに格納される。
その後、命令デコーダ230は、デコードした命令を演算ユニット240に投入する。その際、奇数クロックのタイミングで第1のスレッドの一つの命令を演算ユニット240に投入し、偶数クロックのタイミングで第2のスレッドの一つの命令を演算ユニット240に投入する。演算ユニット240は、指定された演算処理を行い、演算結果を、やはりスレッドごと分けてバッファに格納する。
従来のCPUでは、命令フェッチユニット220、命令デコーダ230、演算ユニット240内の各バッファは、全体として一つのスレッドのために用いられた。そのような態様においては、マルチスレッドにおいて処理するスレッドを切り替える際には、命令デコーダ230と演算ユニット240は、それまでバッファに格納していた前のスレッドの命令を廃棄して、あらためて次のスレッドの命令を命令フェッチユニット220から順に受け取る必要がある。よって、命令デコーダ230と演算ユニット240は、命令フェッチユニット220が取り出す命令が新たに投入されるまでは、あそんでしまうことになる。
しかし、上記のような構成においては、二つのスレッドは、命令の単位で交互に処理されている。また、命令フェッチユニット220、命令デコーダ230、演算ユニット240の各バッファ222,232,242内には、二つのスレッドの命令が同時に格納されている。このため、命令フェッチユニット220、命令デコーダ230、演算ユニット240は、一方のスレッドの一つの命令の処理を終えると、すぐにバッファ内の他方のスレッドの命令を使用して、次の処理に着手することができる。言い換えれば、パイプラインを有効に活用することができる。また、一方のスレッドでエラーや待ちが生じた場合にも、他方のスレッドでは処理を進めることができる。
A3.色変換処理とハーフトーン処理.
図3は、色変換処理とハーフトーン処理の具体的な処理の流れを示すフローチャートである。図4は、色変換処理とハーフトーン処理を行うラスタラインLLs(i)を示す説明図である。図1に示した色変換モジュール98による色変換処理とハーフトーンモジュール99によるハーフトーン処理とは、具体的には、画像データMID1中のラスタライン2行分ずつ行われる。すなわち、画像データMID2は、ラスタライン2行分ずつの部分画像として、色変換モジュール98とハーフトーンモジュール99の間で受け渡される。なお、「ラスタライン」とは、主走査方向に並ぶ画素の列である。
図3は、色変換処理とハーフトーン処理の具体的な処理の流れを示すフローチャートである。図4は、色変換処理とハーフトーン処理を行うラスタラインLLs(i)を示す説明図である。図1に示した色変換モジュール98による色変換処理とハーフトーンモジュール99によるハーフトーン処理とは、具体的には、画像データMID1中のラスタライン2行分ずつ行われる。すなわち、画像データMID2は、ラスタライン2行分ずつの部分画像として、色変換モジュール98とハーフトーンモジュール99の間で受け渡される。なお、「ラスタライン」とは、主走査方向に並ぶ画素の列である。
図4では、色変換処理とハーフトーン処理を行う2本のラスタラインを対象ラスタラインLLs(i)として示す。この対象ラスタラインLLs(i)についての全インク色C、M、Y、K、LC、LM、DYのハーフトーン処理を、以下では「処理集合」とも呼ぶ。
また、図4においては、直前に色変換処理とハーフトーン処理が行われた2本のラスタラインを参照ラスタラインLLs(i−1)として示す。対象ラスタラインLLs(i)よりも上の領域Adは、すでに色変換処理とハーフトーン処理とが行われた領域である。対象ラスタラインLLs(i)およびそれよりも下の領域Ayは、まだ色変換処理とハーフトーン処理が行われていない領域である。LLs(i+1)で示す2本のラスタラインが、対象ラスタラインLLs(i)の次に色変換処理とハーフトーン処理とが行われる領域である。
色変換処理とハーフトーン処理とを行う際には、まず、図3のステップS110で、色変換を行う。具体的には、色変換テーブル104(図1参照)を参照して、レッド(R)、グリーン(G)、ブルー(B)の階調値で表されている対象ラスタラインLLs(i)のデータを、シアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K)、ライトシアン(LC)、ライトマゼンタ(LM)、ダークイエロー(DY)の階調値で表されたデータに変換する。そして、ステップS120では、C、M、Y、K、LC、LM、DYの階調値で表された対象ラスタラインLLs(i)の各データを、バッファへ格納する。
色変換処理を行うステップS300(図3において破線で示す)では、二つのスレッドにおいて、インク色単位でハーフトーン処理を分担させてC、M、Y、K、LC、LM、DYのハーフトーン処理を行う。なお、ステップS300に先だって、二つのスレッドはあらかじめ作成され、待機状態とされている。当然のことながら、色変換処理を行うステップの実行のたびにスレッドを作成してもよい。ただし、あらかじめスレッドを作成しておけば、短時間で処理を開始することができ、効果的である。
ステップS130では、各インク色についてのハーフトーン処理(以下、個々のインク色についてのハーフトーン処理を「単位HT処理」という)を、二つのスレッドに割り付ける。詳しい処理の内容については後述する。ここでは、ステップS130における割り付けの結果、たとえば、シアンと、ブラックと、マゼンタの単位HT処理が第1のスレッドに割り付けられ、ライトシアンと、ライトマゼンタと、イエローと、ダークイエローの単位HT処理が、第2のスレッドに割り付けられたものとする。
ステップS140では、待機状態にある第1のスレッドを実行状態とする。そして、ステップS150では、第1のスレッドにおいて、たとえばシアンと、ブラックと、マゼンタについてハーフトーン処理を行う。そして、それらのインク色についてのハーフトーン処理を終えると、ステップS160で、第1のスレッドを再び待機状態とする。なお、ステップS180においては、シアンと、ブラックと、マゼンタの各ハーフトーン処理に要した時間がカウントされ、コンピュータ90のメモリ内の負荷記憶部105(図1参照)に格納される。
一方、ステップS170では、待機状態にある第2のスレッドを実行状態とする。そして、ステップS180では、第2のスレッドにおいて、たとえばライトシアンと、ライトマゼンタと、イエローと、ダークイエローについてハーフトーン処理を行う。そして、それらのインク色についてのハーフトーン処理を終えると、ステップS190で、第2のスレッドを再び待機状態とする。なお、ステップS150においては、ライトシアンと、ライトマゼンタと、イエローと、ダークイエローの各ハーフトーン処理に要した時間がカウントされ、コンピュータ90のメモリ内の負荷記憶部105に格納される。
ステップS200では、画像データMID1に含まれるすべてのラスタラインについて、色変換処理およびハーフトーン処理を終えたか否かを判定する。まだ、すべてのラスタラインについて色変換処理およびハーフトーン処理を終えていない場合は、ここまでで処理したラスタラインLLs(i)の下側に隣接する2本のラスタラインLLs(i+1)を新たに対象ラスタラインとして(図4参照)、ステップS110からの処理を繰り返す。画像データMID1のすべてのラスタラインについて色変換処理およびハーフトーン処理を終えた場合は、処理を終了する。なお、ステップS130の処理は、ハーフトーン処理部99の機能部である割り付け部99aが実行し、ステップS140〜S160およびステップS170〜S190の処理は、ハーフトーン処理部99の機能部である2値化部99bが実行する。これらの機能部を図1に示す。
図5は、図3のステップS130における各色の単位HT処理のスレッドへの割り付けの手順を示すフローチャートである。ステップS10では、まず、各色についての各単位HT処理の負荷を見積もる。ここでは、負荷記憶部105に格納されている前回のハーフトーン処理時の処理時間を取り出して、それを各単位HT処理の負荷Lc、Lm、Ly、Lk、Llc、Llm、Ldyとする。これらは、参照ラスタラインLLs(i−1)をハーフトーン処理した際の、各単位HT処理の処理時間である。なお、Lの添え字c、m、y、k、lc、lm、dyが、シアン、マゼンダ、イエロー、ブラック、ライトシアン、ライトマゼンタ、ダークイエローの各インク色を表す。
画像においては、隣り合う領域同士は、各色成分の存在割合が互いに近似していることが多い。すなわち、隣り合う領域同士においては、同じ色同士のハーフトーン処理の負荷が近似する可能性が高い。このため、上記のように、直前にハーフトーン処理が行われた参照ラスタラインLLs(i−1)の処理結果に基づいて、各単位HT処理の負荷を決定することとすれば、正確に負荷を見積もることができる。
図6は、第1と第2のスレッドに対して単位HT処理を割り付ける順序を示す説明図である。図5のステップS20では、第1と第2のスレッドの割り付け順序を決定する。各単位HT処理を処理部に割り付ける際には、ステップS20で決定した割り付け順序に従って、第1と第2のスレッドに単位HT処理が割り付けられる。具体的には、第1と第2のスレッドの割り付け順序においては、図6に示すように、第1のスレッドから第2のスレッドへの順番と、第2のスレッドから第1のスレッドへの順番とが繰り返される。その結果、第1位に第1のスレッドが割り付けられた後は、第1と第2のスレッドがそれぞれ2個ずつ割り付け順序に沿って並ぶことになる。ステップS20では、割り付け順序は、第1番から第7番まで決定される。これは、単位HT処理の種類の数N(=7)、すなわち、インク色の数N(=7)に等しい。
図7は、負荷の大きさに基づいて順位付けされた単位HT処理を示す説明図である。ステップS30では、ハーフトーンモジュール99の割り付け部99aは、単位HT処理を、ステップS10で決定した各単位HT処理の負荷が大きい順に順位付けする。図7では、一つ一つの四角が単位HT処理を表し、四角の左右方向の長さが負荷の大きさを示す。図7においては、負荷が大きいほど左に示されている。各単位HT処理を表す四角の上に示されている番号が、単位HT処理の順位である。また、図7においては、ディザ法でハーフトーン処理が実行される、ブラック、マゼンタ、イエロー、ダークイエローの単位HT処理は、ハッチをつけて示している。
図8は、第1と第2のスレッドに割り付けられた単位HT処理を示す説明図である。図5のステップS40では、ハーフトーンモジュール99の割り付け部99aは、ステップS30で決定したスレッドの割り付け順位、およびステップS40で決定した単位HT処理の順位に沿って、単位HT処理を第1のスレッドと第2のスレッドに割り付ける。具体的には、優先順位i番目(iは1からNまでの整数)の単位HT処理を、割り付け順序i番目のスレッドに割り付ける。
結果として、最初に第1のスレッドに順位第1位のシアンの単位HT処理が割り付けられた後は、第2のスレッドと第1のスレッドとに、交互に二つずつ、優先順位(図7参照)に従って単位HT処理が割り付けられることになる。その結果、第1のスレッドには、シアンと、ブラックと、マゼンタの単位HT処理が割り付けられる。そして、第2のスレッドには、ライトシアンと、ライトマゼンタと、イエローと、ダークイエローの単位HT処理が割り付けられる。なお、図8において、各単位HT処理を表す四角の上に示されている番号が、ステップS30で決定された各単位HT処理の順位である。
以上のようにして、図3のステップS130における色変換処理の割り付けが実行される。なお、図3のステップS150、S180においては、スレッドに割り付けられた各単位HT処理は、各スレッドにおいて、図8の並びの順に沿って左から順に実行される。すなわち、スレッドへの割り付けにおいて先に割り付けられた単位HT処理ほど、実際の色変換処理においても先に実行される。なお、図3のステップS150、S180における各単位HT処理の実行に先立って、所定のルールに沿って、各単位HT処理の実行順序を決定し、ステップS150、S180においてその順で単位HT処理を実行してもよい。
第1の実施形態では、単位HT処理を、負荷の大きい単位HT処理から順にスレッドに割り付ける(図7参照)。このため、スレッド間の負荷の差LDF(図8参照)を小さくすることができる。
単位HT処理を第1および第2のスレッドに割り付ける際、第1のスレッドから第2のスレッドへという順序で繰り返し単位HT処理を割り付けると、以下のような問題が生じる。すなわち、常に第2のスレッドよりも先に単位HT処理が割り付けられる第1のスレッドには、第1のスレッドの後で単位HT処理が割り付けられる第2のスレッドよりも、大きな単位HT処理が割り付けられることになる。その結果、最終的に、第1のスレッドの負荷が第2のスレッドよりも大きくなってしまう。
しかし、第1の実施形態においては、第1のスレッドを1番、第2のスレッドを2番とする順位を基礎順位とすると、以下のような手法で割り付けが行われる。すなわち、基礎順位の高い処理部から低い処理部へ向かう順番と、基礎順位の低い処理部から高い処理部へ向かう順番と、を交互に繰り返す割り付け順序にしたがって、単位HT処理がスレッドに割り付けられる。このため、第1のスレッドの負荷が第2のスレッドの負荷よりも大きくなる可能性と、第2のスレッドの負荷が第1のスレッドの負荷よりも大きくなる可能性と、を均等に近いものにすることができる。なお、この基礎順位の昇順と降順を繰り返す順番に沿った処理部(スレッド)への単位処理の割り付け手法は、処理部(スレッド)が3以上ある場合も同様に適用することができる。そして、適用の結果、同様の効果を発生させる。
B.第2の実施形態.
第2の実施形態では、実際にあるインク色についての単位HT処理を実行しつつ、次に実行する単位HT処理を決定する。具体的には、すでに割り付けられた単位HTを先に完了したスレッドに、新たに一つの単位HT処理を割り付ける。他の点は、第1の実施形態と同じである。以下では、各色の単位HT処理の負荷は、第1実施形態と同じであるものとして説明する。
第2の実施形態では、実際にあるインク色についての単位HT処理を実行しつつ、次に実行する単位HT処理を決定する。具体的には、すでに割り付けられた単位HTを先に完了したスレッドに、新たに一つの単位HT処理を割り付ける。他の点は、第1の実施形態と同じである。以下では、各色の単位HT処理の負荷は、第1実施形態と同じであるものとして説明する。
図9は、第2の実施形態における色変換処理とハーフトーン処理の具体的な処理の流れを示すフローチャートである。このフローチャートは、破線で囲ったステップS305以外の手続きは、第1の実施形態の図3の手続きと同じである。
ステップS125では、各インク色の単位HT処理の負荷を決定し、各単位HT処理の負荷が大きい順に順位付けを行う。負荷の決定方法は、第1の実施形態における図5のステップS10の手続きと同じである。順位付けの方法は、第1の実施形態における図5のステップS20の手続きと同じである(図7参照)。
ステップS127では、現在、実行中の単位HT処理を有していないスレッドに、まだスレッドに割り付けられていない単位HT処理の中から単位HT処理を選択して割り付ける。その際、第1の実施形態と同様、優先順位(図7参照)の高い順に割り付ける。
図10は、ステップS127において各スレッドに単位HT処理が割り付けられた状態を示す説明図である。図10では、一つ一つの四角が単位HT処理を表し、四角の左右方向の長さが負荷の大きさを示す。また、現在時刻をPtで示す。以下の図において同じである。最初にステップS127の処理を行う際には、まだ、第1および第2のスレッドに単位HT処理が割り付けられていない。このため、ステップS127では、全単位HT処理の中から優先順位(図7参照)の1番であるシアンの単位HT処理を第1のスレッドに割り付ける。そして、優先順位の2番であるライトシアンの単位HT処理を第2のスレッドに割り付ける。なお、図10において、各単位HT処理を表す四角の上に示されている番号が、各単位HT処理の順位である。
以下では、第1のスレッドに関する処理について説明する。図9のステップS140では、第1のスレッドを実行状態とする。ステップS140における処理は、第1の実施形態の図3のフローチャートのステップS140と同じである。ステップS145では、第1のスレッドに割り付けられたシアンの単位HT処理を実行する。そして、単位HT処理を完了すると、ステップS160において、第1のスレッドは待機状態となる。ステップS160における処理は、第1の実施形態と同じである。
ステップS195では、まだスレッドに割り付けられていない単位HT処理が存在するか否かを判定する。まだ割り付けられていない単位HT処理が存在する場合には、ステップS127に戻る。すべての単位HT処理が第1または第2のスレッドに割り付けられている場合には、ステップS200に進む。ステップS200では、画像データMID1に含まれるすべてのラスタラインについて、色変換処理およびハーフトーン処理を終えたか否かを判定する。以降の処理は第1の実施形態と同じである。
第2のスレッドに関するステップS170〜S197における手続きは、それぞれ第1のスレッドに関するステップS140〜S195の手続きと同じである。ステップS197においては、まだスレッドに割り付けられていない単位HT処理が存在する場合には、手続きはステップS127に戻る。すべての単位HT処理が第1または第2のスレッドに割り付けられている場合には、ステップS200に進む。なお、ここでは、見積もられた負荷の大小関係のとおり(図10参照)、スレッド1がシアンの単位HT処理を完了するよりも先に、スレッド2がライトシアンの単位HT処理を完了するものとする。
図11は、割り付けられた単位HT処理を最も早く完了した第2のスレッドに新たにライトマゼンタの単位HT処理が割り付けられた状態を示す説明図である。図9のステップS195またはS197からステップS127に戻ると、ステップS127において、現在、実行中の単位HT処理を有していないスレッドに、まだスレッドに割り付けられていない単位HT処理が割り付けられる。ここでは、まだ割り付けられていない単位HT処理の中で最も優先順位の高いライトマゼンタの単位HT処理が、先に単位HT処理を完了した第2のスレッドに割り付けられる。なお、図においてPtで示す現在時刻において、第1のスレッドはまだシアンの単位HT処理を実行している。
なお、図11において、すでに完了した単位HT処理を二重線で描かれた四角で示し、新たに割り付けられた単位HT処理を、一点鎖線で描かれた四角で示す。また、完了した単位HT処理の実際の処理時間(負荷)は、多くの場合、あらかじめ見積もられた負荷とは異なる。それら実際の負荷を「’」をつけて示す。以下の図において同じである。
また、図11においては、ライトシアンの単位HT処理に関して、見積もられた負荷を破線で示す。そして、見積もられた負荷と実際の処理時間の差をdlcで示す。文字dに付された添え字lcがインク色を示す。ライトシアンの単位HT処理には、見積もられた負荷よりも短い時間で完了したため、dlcは負である。
その後、スレッドに割り付けられた単位HT処理は、ステップS140〜S195、またはステップS170〜S197において処理される。以下、同様に手続きが行われる。
図12は、すべての単位HT処理を完了した状態を示す説明図である。図12においては、図7および図8と同様、ディザ法でハーフトーン処理が実行される、ブラック、マゼンタ、イエロー、ダークイエローの単位HT処理は、ハッチをつけて示している。図12に示されているように、イエローの単位HT処理は、見積もり負荷Lyに対してdyだけ多くの時間を要して完了している。また、ダークイエローの単位HT処理は、見積もり負荷Ldyに対してddyだけ多くの時間を要して完了している。第2の実施形態においては、第1のスレッドと第2のスレッドの完了時刻の差は、Tfdfである。
第1の実施形態の図8と比べれば分かるように、第1の実施形態の割り付けでは、マゼンタの単位HT処理は、第1のスレッドに割り付けられていたのに対して(図8のLm参照)、第2の実施形態では、第2のスレッドに割り付けられている(図12のLm’参照)。また、第1の実施形態の割り付けでは、イエローの単位HT処理は、第2のスレッドに割り付けられていたのに対して(図8のLy参照)、第2の実施形態では、第1のスレッドに割り付けられている(図12のLy’参照)。
第2の実施形態においては、実際に先に処理が完了したスレッドに新たに単位HT処理を割り付けている。このため、それまでに割り付けた単位HT処理の実際の負荷が少ないことが判明したスレッドに、新たに次の単位HT処理を割り付けることができる。よって、スレッド間の負荷のばらつきを小さくするように単位HT処理を処理部に割り付ける際、負荷の見積もりと実際の処理時間とのずれに影響されにくい。
C.変形例.
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
C1.変形例1:
第1の実施形態では、ハーフトーン処理の割り付けの際には、図5のステップS20で決定した割り付け順序(図6参照)にしたがって、単位HT処理を割り付ける処理部を決定していた。しかし、単位HT処理を事前に割りあてる際には、たとえば、複数のスレッドのうちすでに割り当てられた単位処理の負荷の合計が最も少ないスレッドに、まだスレッドに割り当てられていない単位処理のうちの一つを割り当てることができる。
第1の実施形態では、ハーフトーン処理の割り付けの際には、図5のステップS20で決定した割り付け順序(図6参照)にしたがって、単位HT処理を割り付ける処理部を決定していた。しかし、単位HT処理を事前に割りあてる際には、たとえば、複数のスレッドのうちすでに割り当てられた単位処理の負荷の合計が最も少ないスレッドに、まだスレッドに割り当てられていない単位処理のうちの一つを割り当てることができる。
図13は、それまでに割り当てられた単位処理の負荷の合計が最も少ない第2のスレッドに、ライトマゼンタの単位HT処理を割り当てた状態を示す説明図である。新たに割り付けられたライトマゼンタの単位HT処理は、一点鎖線で描かれた四角で示されている。図13の例では、最初に第1と第2のスレッドにそれぞれシアンとライトシアンの単位HT処理が割り付けられている。そして、次に、それまでに割り付けられた負荷が少ない第2のスレッドに、優先順位第3位のライトマゼンタの単位HT処理が割り付けられている。このような態様としても、スレッド(処理部)間の負荷のばらつきが少なくなるように、単位処理を処理部に割り当てることができる。
また、上記実施形態では、処理部に単位HT処理を割り付ける際には、まだ処理部に割り当てられていない単位処理のうちで、見積もり負荷に基づいて決定された優先順位が最も高い単位HT処理が、所定の処理部に割り付けられていた。しかし、処理部に割り付けられる単位HT処理は、他の基準で選択することもできる。すなわち、処理部に割り付けられる単位処理は、何らかの基準で選択された一つの単位処理とすることができる。
なお、処理部に割り付けられる単位処理は、まだ処理部に割り当てられていない単位処理のうちで、見積もり負荷が最も小さい単位処理以外の単位処理から選択された単位処理であることが好ましい。たとえば、単位処理に付する優先順位を、見積もり負荷の大きい順に決定する。そして、まだ処理部に割り当てられていない単位処理全体のうちで、その優先順位が半分よりも上である単位処理から、何らかの基準で選択した単位処理を、処理部に割り付けられる単位処理とすることもできる。また、その優先順位が上から1/3以内である単位処理から何らかの基準で選択した単位処理を、処理部に割り付けられる単位処理とすることもできる。
C2.変形例2:
上記実施形態では、スレッドは二つであった。しかし、スレッドは3以上設けるものとしてもよい。ただし、本発明の上記各態様は、単位処理を実行するためのスレッドの数が単位処理の数よりも少ない場合に適用すると、特に効果的である。そして、たとえば、ハーフトーン処理を実行しつつ単位HT処理を割りあてる多様においては、3以上あるスレッドのうちすでに割り当てられた単位処理の実行を最も早く完了したスレッドに、単位処理を処理部に割り当てることが好ましい。
上記実施形態では、スレッドは二つであった。しかし、スレッドは3以上設けるものとしてもよい。ただし、本発明の上記各態様は、単位処理を実行するためのスレッドの数が単位処理の数よりも少ない場合に適用すると、特に効果的である。そして、たとえば、ハーフトーン処理を実行しつつ単位HT処理を割りあてる多様においては、3以上あるスレッドのうちすでに割り当てられた単位処理の実行を最も早く完了したスレッドに、単位処理を処理部に割り当てることが好ましい。
上記各実施形態では、コンピュータの一つのCPUが、ハイパースレッディングによって複数のスレッドで単位HT処理を実行していた。しかし、各単位HT処理は、複数のCPUで分担して実行することもできる。そのような態様においても、上記各実施形態と同様の手順で、各CPU間に割り当てる単位処理の負荷のばらつきが小さくなるように、各CPUに各単位処理を割り付けることができる。
また、上記各実施形態では、スレッドは2個に固定されていた。しかし、ハイパースレッディングにおいて生成するスレッドの数や、マルチCPUのコンピュータにおいて使用するCPUの数を、状況に応じて変えることができる態様とすることもできる。たとえば、本発明の実施態様の一つである画像処理装置は、スレッドの数を1とする動作モードと、スレッドの数を2とする動作モード、スレッドの数を3とする動作モードなど、複数の動作モードを有する態様とすることができる。スレッドやCPUなどの処理部が2以上ある場合は、上記各実施形態と同様の手順で負荷の割り付けを行うことができる。処理部が一つである場合は、あらかじめ定められた順序に沿って、その処理部上で各単位処理を実行する態様とすることができる。
C3.変形例3:
上記各実施形態においては、各単位HT処理の負荷の見積もりの際には、直前にハーフトーン処理を行った領域LLs(i−1)についての各単位HT処理の処理時間を、対応するインク色の単位HT処理の負荷とした。しかし、単位HT処理の負荷の見積もりは他の値に基づいて行うこともできる。たとえば、直前にハーフトーン処理を行った領域LLs(i−1)内における各インク色のドットの発生量または発生確率を、次にハーフトーン処理を行う領域LLs(i)についての各単位HT処理の負荷とすることができる。
上記各実施形態においては、各単位HT処理の負荷の見積もりの際には、直前にハーフトーン処理を行った領域LLs(i−1)についての各単位HT処理の処理時間を、対応するインク色の単位HT処理の負荷とした。しかし、単位HT処理の負荷の見積もりは他の値に基づいて行うこともできる。たとえば、直前にハーフトーン処理を行った領域LLs(i−1)内における各インク色のドットの発生量または発生確率を、次にハーフトーン処理を行う領域LLs(i)についての各単位HT処理の負荷とすることができる。
このような態様においては、単位HT処理は、直前の領域LLs(i−1)におけるドットの発生量または発生確率が高いものから、スレッドに割り付けられる(図7、図8および図12参照)。
また、ハーフトーン処理の方法が同じ単位HT処理については、負荷を一律に定めてもよい。たとえば、ディザ法によるハーフトーン処理を行う単位HT処理の負荷を1とし、誤差拡散法によるハーフトーン処理を行う単位HT処理の負荷を3としてもよい。さらに、ハーフトーン処理の方法と、上述した処理時間やドットの発生量または発生確率を組み合わせて、負荷を定めてもよい。たとえば、ディザ法によるハーフトーン処理を行う単位HT処理の負荷を1×[ドット発生確率]とし、誤差拡散法によるハーフトーン処理を行う単位HT処理の負荷を3×[ドット発生確率]としてもよい。すなわち、ドットの発生量または発生確率に重みWをかけたものを負荷とすることもできる。単位処理の負荷の見積もりは、直前に実行された処理集合に含まれる各単位処理の実行結果を考慮して定めるものとすればよい。
C4.変形例4:
上記第1の実施形態では、各単位HT処理は、スレッドへの割り付けにおいて割り付けられた順に実行されていた。しかし、各スレッドへの単位HT処理の割り付けとは別に、割り付けられた単位HT処理の実行順序を決定するスケジューリングを行ってもよい。そして、単位HT処理の実行順序を決定する際には、たとえば、ディザ法による単位HT処理と誤差拡散法による単位HT処理とが、できるだけ異なる処理部で並行して行われるように、実行順序を決定することが好ましい。
上記第1の実施形態では、各単位HT処理は、スレッドへの割り付けにおいて割り付けられた順に実行されていた。しかし、各スレッドへの単位HT処理の割り付けとは別に、割り付けられた単位HT処理の実行順序を決定するスケジューリングを行ってもよい。そして、単位HT処理の実行順序を決定する際には、たとえば、ディザ法による単位HT処理と誤差拡散法による単位HT処理とが、できるだけ異なる処理部で並行して行われるように、実行順序を決定することが好ましい。
C5.変形例5:
印刷画像データFNLを受け取るプリンタ22が、同じインク色について大中小などの複数種類の大きさのドットを形成することができる場合には、ハーフトーン処理は、各インク色の各ドットの種類の単位で行われる。上記各実施形態では、単位HT処理は各インク色ごとのハーフトーン処理であった。しかし、ハーフトーン処理が各インク色の各ドットの種類の単位で行われる態様においては、単位HT処理は、各インク色の各ドットの種類の単位のハーフトーン処理とすることができる。
印刷画像データFNLを受け取るプリンタ22が、同じインク色について大中小などの複数種類の大きさのドットを形成することができる場合には、ハーフトーン処理は、各インク色の各ドットの種類の単位で行われる。上記各実施形態では、単位HT処理は各インク色ごとのハーフトーン処理であった。しかし、ハーフトーン処理が各インク色の各ドットの種類の単位で行われる態様においては、単位HT処理は、各インク色の各ドットの種類の単位のハーフトーン処理とすることができる。
C6.変形例6:
上述した各実施形態では、有彩色インクとしてシアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K)、ライトシアン(LC)、ライトマゼンタ(LM)、ダークイエロー(DY)の7種類のインクを用いていた。しかし、レッド(R)、バイオレット(V)などこれら以外の有彩色インクや同色系の濃淡有彩色インクを用いることも可能である。さらに、無彩色で互いに濃度が異なるブラック(K1)、淡ブラック(K2)、淡淡ブラック(K3)を用いることも可能である。さらに、クリアインクを使用することも可能である。すなわち、インクとしては、様々な色のインクを使用することができ、処理集合は様々なインク色についての単位HT処理を含むことができる。
上述した各実施形態では、有彩色インクとしてシアン(C)、マゼンダ(M)、イエロー(Y)、ブラック(K)、ライトシアン(LC)、ライトマゼンタ(LM)、ダークイエロー(DY)の7種類のインクを用いていた。しかし、レッド(R)、バイオレット(V)などこれら以外の有彩色インクや同色系の濃淡有彩色インクを用いることも可能である。さらに、無彩色で互いに濃度が異なるブラック(K1)、淡ブラック(K2)、淡淡ブラック(K3)を用いることも可能である。さらに、クリアインクを使用することも可能である。すなわち、インクとしては、様々な色のインクを使用することができ、処理集合は様々なインク色についての単位HT処理を含むことができる。
C7.変形例7:
上記実施形態において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、プリンタドライバ96(図1参照)の機能の一部をプリンタのCPU41が実行するようにすることもできる。
上記実施形態において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、プリンタドライバ96(図1参照)の機能の一部をプリンタのCPU41が実行するようにすることもできる。
このような機能を実現するコンピュータプログラムは、フロッピディスクやCD−ROM等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。ホストコンピュータは、その記録媒体からコンピュータプログラムを読み取って内部記憶装置または外部記憶装置に転送する。あるいは、通信経路を介してプログラム供給装置からホストコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがホストコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをホストコンピュータが直接実行するようにしてもよい。
この明細書において、コンピュータとは、ハードウェア装置とオペレーションシステムとを含む概念であり、オペレーションシステムの制御の下で動作するハードウェア装置を意味している。コンピュータプログラムは、このようなコンピュータに、上述の各部の機能を実現させる。なお、上述の機能の一部は、ドライバやアプリケーションプログラムでなく、オペレーションシステムによって実現されていても良い。
なお、この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
21…CRTディスプレイ
22…プリンタ
28…印刷ヘッド
31…キャリッジ
32…操作パネル
41…CPU
42…P−ROM
90…コンピュータ
91…ビデオドライバ
95…アプリケーションプログラム
96…プリンタドライバ
97…解像度変換モジュール
98…色変換モジュール
99…ハーフトーンモジュール
100…並べ替えモジュール
104…色変換テーブル
105…負荷記憶部
120…キーボード
130…マウス
Ad…色変換処理およびハーフトーン処理がすでに行われた領域
Ay…色変換処理およびハーフトーン処理が行われていない領域
FNL…印刷画像データ
LDF…スレッド間の負荷の差
LLs(i−1)…参照ラスタライン
LLs(i)…対象ラスタライン
LLs(i+1)…対象ラスタラインの下隣の2本のラスタライン
Lc…シアンの単位HT処理の負荷
Ldy…の単位HT処理の負荷
Llc…の単位HT処理の負荷
Llm…の単位HT処理の負荷
Lm…の単位HT処理の負荷
Ly…の単位HT処理の負荷
MID1…解像度変換後の画像データ
MID2…色変換後の画像データ
MID3…ハーフトーン処理後の画像データ
MS…キャリッジの移動方向(主走査方向)
ORG…原画像データ
P…印刷用紙
PID…初期画像データ
SS…印刷用紙の搬送方向(副走査方向)
Tfdf…第1のスレッドと第2のスレッドの処理の終了時刻の差。
ddy…ダークイエローの単位HT処理について見積もられた負荷と実際の処理時間の差
dy…イエローの単位HT処理について見積もられた負荷と実際の処理時間の差
22…プリンタ
28…印刷ヘッド
31…キャリッジ
32…操作パネル
41…CPU
42…P−ROM
90…コンピュータ
91…ビデオドライバ
95…アプリケーションプログラム
96…プリンタドライバ
97…解像度変換モジュール
98…色変換モジュール
99…ハーフトーンモジュール
100…並べ替えモジュール
104…色変換テーブル
105…負荷記憶部
120…キーボード
130…マウス
Ad…色変換処理およびハーフトーン処理がすでに行われた領域
Ay…色変換処理およびハーフトーン処理が行われていない領域
FNL…印刷画像データ
LDF…スレッド間の負荷の差
LLs(i−1)…参照ラスタライン
LLs(i)…対象ラスタライン
LLs(i+1)…対象ラスタラインの下隣の2本のラスタライン
Lc…シアンの単位HT処理の負荷
Ldy…の単位HT処理の負荷
Llc…の単位HT処理の負荷
Llm…の単位HT処理の負荷
Lm…の単位HT処理の負荷
Ly…の単位HT処理の負荷
MID1…解像度変換後の画像データ
MID2…色変換後の画像データ
MID3…ハーフトーン処理後の画像データ
MS…キャリッジの移動方向(主走査方向)
ORG…原画像データ
P…印刷用紙
PID…初期画像データ
SS…印刷用紙の搬送方向(副走査方向)
Tfdf…第1のスレッドと第2のスレッドの処理の終了時刻の差。
ddy…ダークイエローの単位HT処理について見積もられた負荷と実際の処理時間の差
dy…イエローの単位HT処理について見積もられた負荷と実際の処理時間の差
Claims (16)
- N種類(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行する画像処理において、前記各処理集合の実行に先立って、前記単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部に前記N種類の単位処理を割り当てる方法であって、
(a)直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各種類の単位処理の見積もり負荷を見積もる工程と、
(b)前記見積もり負荷に基づいて前記N種類の単位処理を前記処理部に割り当てる工程と、を有し、
前記工程(b)は、
(b1)まだ前記処理部に割り当てられていない単位処理のうちの一つである選択単位処理を、前記処理部の一つに割り当てる工程を含む、方法。 - 請求項1記載の方法であって、
前記選択単位処理は、まだ前記処理部に割り当てられていない前記単位処理のうちで、前記見積もり負荷が最も小さい単位処理以外の単位処理から選択された単位処理である、方法。 - 請求項1記載の方法であって、
前記選択単位処理は、まだ前記処理部に割り当てられていない前記単位処理のうちで、前記見積もり負荷が最も大きい単位処理である、方法。 - 請求項1ないし3のいずれかに記載の方法であって、
前記単位処理は、
画像中の所定の大きさの領域に関する所定の色についてのハーフトーン処理であり、
前記処理集合は、
前記画像中の同一の領域を対象とする互いに異なる色の前記単位処理の集合であり、
前記画像中の互いに隣接する領域について並びの順に実行される、方法。 - 請求項1ないし4のいずれかに記載の方法であって、
前記M個の処理部は、互いに異なる基礎順位を有しており、
前記工程(b)は、さらに、
(b2)前記選択単位処理の割り当てに先立って、前記基礎順位の高い処理部から低い処理部へ向かう順番と、前記基礎順位の低い処理部から高い処理部へ向かう順番と、を交互に繰り返す割り付け順序にしたがって、前記選択単位処理を割り当てられる一つの処理部を選択する工程を含む、方法。 - 請求項1ないし4のいずれかに記載の方法であって、
前記選択単位処理を割り当てられる一つの処理部は、すでに割り当てられた単位処理の前記見積もり負荷の合計が最も少ない処理部である、方法。 - N種類(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行する画像処理において、前記単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部で前記処理集合の一部の単位処理を実行しつつ、前記処理集合の他の一部の前記単位処理を前記処理部に割り当てる方法であって、
(a)直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各種類の単位処理の見積もり負荷を見積もる工程と、
(b)すでに割り当てられた単位処理の実行を完了した処理部に、まだ前記処理部に割り当てられていない単位処理のうちの一つである選択単位処理を割り当てる工程と、を有する、方法。 - 請求項7記載の方法であって、
前記選択単位処理は、まだ前記処理部に割り当てられていない前記単位処理のうちで、前記見積もり負荷が最も小さい単位処理以外の単位処理から選択された単位処理である、方法。 - 請求項7記載の方法であって、
前記選択単位処理は、まだ前記処理部に割り当てられていない前記単位処理のうちで、前記見積もり負荷が最も大きい単位処理である、方法。 - 請求項7ないし9のいずれかに記載の方法であって、
前記単位処理は、
画像中の所定の大きさの領域に関する所定の色についてのハーフトーン処理であり、
前記処理集合は、
前記画像中の同一の領域を対象とする互いに異なる色の前記単位処理の集合であり、
前記画像中の互いに隣接する領域について並びの順に実行される、方法。 - N種類(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行する画像処理において、前記各処理集合の実行に先立って、前記単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部に前記N種類の単位処理を割り当てるためのコンピュータプログラムであって、
直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各種類の単位処理の見積もり負荷を見積もる機能と、
前記見積もり負荷に基づいて前記N種類の単位処理を前記処理部に割り当てる機能と、をコンピュータに実現させ、
前記N種類の単位処理を前記処理部に割り当てる機能は、
まだ前記処理部に割り当てられていない単位処理のうちの一つである選択単位処理を、前記処理部の一つに割り当てる機能を含む、コンピュータプログラム。 - N種類(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行する画像処理において、前記単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部で前記処理集合の一部の単位処理を実行しつつ、前記処理集合の他の一部の前記単位処理を前記処理部に割り当てるためのコンピュータプログラムであって、
直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各種類の単位処理の見積もり負荷を見積もる機能と、
すでに割り当てられた単位処理の実行を完了した処理部に、まだ前記処理部に割り当てられていない単位処理のうちの一つである選択単位処理を割り当てる機能と、をコンピュータに実現させるコンピュータプログラム。 - N種類(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行して画像処理を行う画像処理装置であって、
前記単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部を有し、前記処理集合を実行して画像処理を行う画像処理部と、
前記各処理集合の実行に先立って、前記処理部に前記N種類の単位処理を割り当てる割り付け部と、
を有し、
前記割り付け部は、
直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各種類の単位処理の見積もり負荷を見積もり、
前記見積もり負荷に基づいて前記N種類の単位処理を前記処理部に割り当て、
前記N種類の単位処理を前記処理部に割り当てる際には、
まだ前記処理部に割り当てられていない単位処理のうちの一つである選択単位処理を、前記処理部の一つに割り当てる機能を含む、画像処理装置。 - 請求項13記載の画像処理装置であって、
前記画像処理部は、ハイパースレッディングにより前記処理集合を実行し、
前記処理部は、スレッドである、画像処理装置。 - N種類(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行して画像処理を行う画像処理装置であって、
前記単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部を有し、前記処理集合を実行して画像処理を行う画像処理部と、
前記処理集合の一部の単位処理が実行されている間に、前記処理集合の他の一部の前記単位処理を前記処理部に割り当てる割り付け部と、を有し、
前記割り付け部は、
直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各種類の単位処理の見積もり負荷を見積もり、
すでに割り当てられた単位処理の実行を完了した処理部に、まだ前記処理部に割り当てられていない単位処理のうちの一つである選択単位処理を割り当てる、画像処理装置。 - 請求項15記載の画像処理装置であって、
前記画像処理部は、ハイパースレッディングにより前記処理集合を実行し、
前記処理部は、スレッドである、画像処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004066983A JP2005260424A (ja) | 2004-03-10 | 2004-03-10 | 画像処理を並列処理で実行する際の負荷の割り付け |
US11/069,855 US7436559B2 (en) | 2004-03-01 | 2005-02-28 | Load assignment in image processing by parallel processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004066983A JP2005260424A (ja) | 2004-03-10 | 2004-03-10 | 画像処理を並列処理で実行する際の負荷の割り付け |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005260424A true JP2005260424A (ja) | 2005-09-22 |
Family
ID=35085751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004066983A Pending JP2005260424A (ja) | 2004-03-01 | 2004-03-10 | 画像処理を並列処理で実行する際の負荷の割り付け |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005260424A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007287072A (ja) * | 2006-04-20 | 2007-11-01 | Seiko Epson Corp | 画像処理装置、印刷装置および画像処理方法 |
-
2004
- 2004-03-10 JP JP2004066983A patent/JP2005260424A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007287072A (ja) * | 2006-04-20 | 2007-11-01 | Seiko Epson Corp | 画像処理装置、印刷装置および画像処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5885422B2 (ja) | 画像処理装置および画像処理方法 | |
US7466465B2 (en) | Load allocation when executing image processing using parallel processing | |
US7436559B2 (en) | Load assignment in image processing by parallel processing | |
US7460285B2 (en) | Load allocation when executing image processing using parallel processing | |
JP2011069864A (ja) | 画像処理装置、画像形成装置および画像処理プログラム | |
JP2004309662A (ja) | 画像処理装置及び印刷装置 | |
JP4564986B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム | |
JP5899863B2 (ja) | 印刷装置および印刷装置の印刷方法 | |
JP2005250565A (ja) | 画像処理を並列処理で実行する際の負荷の割り付け | |
JP2005260424A (ja) | 画像処理を並列処理で実行する際の負荷の割り付け | |
JP2007050708A (ja) | 画像処理装置及び印刷装置 | |
JP2006174398A (ja) | ハーフトーン処理で利用されるパターンマトリクスの生成 | |
JP3268712B2 (ja) | 画像形成方法とその装置 | |
JPH10191090A (ja) | 色変換テーブルの製造装置及び製造方法並びに記録媒体 | |
US9883078B2 (en) | Systems and methods for efficient halftone where different dithering matrices are combined | |
JP4085265B2 (ja) | 印刷制御装置および印刷制御方法 | |
JP2007129695A (ja) | 印刷装置、印刷プログラム、印刷方法、および画像処理装置、画像処理プログラム、画像処理方法、並びに前記プログラムを記録した記録媒体、表示装置 | |
JP2005295131A (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
JP6772717B2 (ja) | 画像処理装置、および、コンピュータプログラム | |
JP2005259042A (ja) | 画像処理方法および画像処理プログラム | |
JP2004112313A (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
JP2004276266A (ja) | 色空間対応関係修正装置、色空間対応関係修正方法および色空間対応関係修正プログラム | |
JP2008205611A (ja) | 画像処理回路およびそれを搭載したプリンタコントローラ | |
JP2006025220A (ja) | 画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体 | |
JP2008283566A (ja) | 画像処理装置、画像処理方法および画像処理プログラム |