JP2006065459A - 画像処理を並列処理で実行する際の負荷の割り付け - Google Patents

画像処理を並列処理で実行する際の負荷の割り付け Download PDF

Info

Publication number
JP2006065459A
JP2006065459A JP2004245078A JP2004245078A JP2006065459A JP 2006065459 A JP2006065459 A JP 2006065459A JP 2004245078 A JP2004245078 A JP 2004245078A JP 2004245078 A JP2004245078 A JP 2004245078A JP 2006065459 A JP2006065459 A JP 2006065459A
Authority
JP
Japan
Prior art keywords
unit
processing
type
processes
load
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.)
Granted
Application number
JP2004245078A
Other languages
English (en)
Other versions
JP4556554B2 (ja
Inventor
Satoshi Yamazaki
郷志 山▲崎▼
Shigeaki Sumiya
繁明 角谷
Teruyuki Takada
照幸 高田
Kohei Utsunomiya
光平 宇都宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004245078A priority Critical patent/JP4556554B2/ja
Priority to US11/212,431 priority patent/US7466465B2/en
Publication of JP2006065459A publication Critical patent/JP2006065459A/ja
Application granted granted Critical
Publication of JP4556554B2 publication Critical patent/JP4556554B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

【課題】 画像処理を並列処理で実行する際に、処理を効率的に実行する技術を提供する。
【解決手段】 N個(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行する画像処理において、単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部で単位処理を実行させる。単位処理は、第1の処理方法を用いて処理を行う第1種の単位処理と、第1の処理方法とは異なる第2の処理方法を用いて処理を行う第2種の単位処理と、を含む。そして、処理集合を実行する際には、第1種と第2種の単位処理を少なくとも一つずつ含むM個の単位処理を、M個の処理部に最初に実行させる。
【選択図】 図6

Description

この発明は、画像処理を並列処理で実行する技術に関する。
従来より、各画素が有する各インク色の階調値で表された画像データを、各画素におけるインク色のドットの有無で表された画像データに変換する際に、並列処理を行う技術が開発されてきた。たとえば、特許文献1には、処理内容に応じてラスタライズ(並べ替え)処理と、ハーフトーン処理とを別のスレッドで実行する技術が開示されている。
特開2000−293674号公報
しかし、上記の技術においては、各スレッド、すなわち処理部に割り付けられた各色のハーフトーン処理を効率的に実行する点については考慮されていなかった。
本発明はかかる点に鑑みてなされたもので、画像処理を並列処理で実行する際に、効率的に処理を実行する技術を提供することを主たる目的とする。
上記目的を達成するために、本発明は、N個(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行する画像処理において、以下で示す所定の処理を行う。この画像処理を行う際には、単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部で単位処理を実行させる。処理集合は、第1の処理方法を用いて処理を行う第1種の単位処理と、第1の処理方法とは異なる第2の処理方法を用いて処理を行う第2種の単位処理と、を含む。そのような画像処理において、第1種と第2種の単位処理を少なくとも一つずつ含むM個の単位処理を、M個の処理部に最初に実行させる。
このような態様とすれば、少なくとも処理集合の処理を開始する時において、第1種と第2種の単位処理を混在させて、L個の処理部で並列に処理することができる。その結果、処理を実行する装置内の特定の要素に負荷が集中し、その要素の処理能力がボトルネックとなって、処理効率が低下する可能性を低減することができる。すなわち、画像処理を並列処理で実行する際に、効率的に処理を実行することができる。
なお、単位処理は、画像中の所定の大きさの領域に関する所定の色についてのハーフトーン処理とすることができる。また、処理集合は、画像中の同一の領域を対象とするN個のハーフトーン処理の集合とすることができ、画像中の互いに隣接する領域について並びの順に実行されるものとすることができる。
第1の処理方法は誤差拡散法とすることができ、第2の処理方法はディザ法とすることができる。
なお、処理集合を処理する際には、以下のようにすることが好ましい。すなわち、まず、直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各単位処理の見積もり負荷を見積もる。そして、見積もり負荷に基づいて、M個の処理部にN個の単位処理を割り当てる。その後、M個の処理部に、N個の単位処理を、割り当てられた順に実行させる。
そして、処理部に単位処理を割り当てる際には、以下のような処理を行うことが好ましい。すなわち、(i)第1種の単位処理と第2種の単位処理とが交互に並び、かつ、第1種の単位処理同士および第2種の単位処理同士については、見積もり負荷の大きい順に並ぶ優先順位に従って、複数の単位処理の中から一つの単位処理を選択する。(ii)M個の処理部の中で、割り当て済みで未完了の単位処理の見積もり負荷の合計が最も少ない処理部に、選択した単位処理を割り当てる。そして、上記の(i)および(ii)を繰り返し実行する。
このような態様とすれば、直前の実行結果に基づいて、正確に見積もられた負荷を使用して、各処理部間の負荷の均等化を図ることができる。そして、同時に、第1種と第2種の単位処理が並列処理されやすくなるように、単位処理を各処理部に割り当てることができる。
また、処理部に単位処理を割り当てる際には、以下のような処理を行うこともできる。すなわち、(i)見積もり負荷の大きい順である優先順位に従って、複数の単位処理の中から一つの単位処理を選択する。(ii)M個の処理部の中で、割り当て済みの単位処理の見積もり負荷の合計が最も少ない処理部に、選択した単位処理を割り当てる。そして、これらの(i)および(ii)を繰り返し実行する。また、単位処理を実行する際には、以下のようにすることが好ましい。すなわち、M個の処理部のうち少なくとも一つの処理部に、第1種の単位処理よりも先に、複数の第2種の単位処理を連続して実行させる。また、M個の処理部のうち少なくとも他の一つの処理部に、第2種の単位処理よりも先に、複数の第1種の単位処理を連続して実行させる。
このような態様としても、正確に見積もられた負荷に基づいて、各処理部間の負荷の均等化を図ることができ、同時に、第1種と第2種の単位処理が並列処理されやすくなるように、単位処理を各処理部に割り当てることができる。
なお、N個の単位処理を、上記の優先順位に従った単位処理の割り当ての対象とする単位処理と、上記の優先順位に従った単位処理の割り当ての対象としない単位処理であって、対象とする単位処理よりも見積もり負荷が小さい調整用単位処理と、に分けて、以下のような処理を行うことも好ましい。すなわち、上記の優先順位に従った単位処理の割り当ての後に、上記の優先順位に従った単位処理の割り当ての対象としない調整用単位処理を、それまでに割り当てられている処理の見積もり負荷の合計が最も少ない処理部に割り当てる。このような態様とすれば、見積もり負荷が小さい単位処理を使用して、処理部間の負荷のばらつきをより細かく平準化することができる。
なお、各処理部に単位処理を実行させつつ、次に処理すべき単位処理を各処理部に割り当てることもできる。そのような態様においても、まず、直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各単位処理の見積もり負荷を見積もることが好ましい。そして、その後、見積もり負荷に基づいて、処理部に単位処理を割り当てて実行させる。
処理部に単位処理を割り当てて実行させる際には、第1種の単位処理と第2種の単位処理とが先頭から交互に並び、かつ、第1種の単位処理同士および第2種の単位処理同士については、見積もり負荷の大きい順に並ぶ優先順位に従って、まだ処理部に割り当てられていない単位処理の中から一つの単位処理を選択し、処理すべき単位処理が最初になくなる処理部に割り当てて実行させる。そして、そのような処理を繰り返し実行する。このような態様においては、実際の処理結果に基づいて、各単位処理を各処理部に割り当てることができる。
なお、処理部に単位処理を割り当てて実行させる際には、見積もり負荷の大きい順である優先順位に従って、まだ処理部に割り当てられていない単位処理の中から、一つの単位処理を選択し、処理すべき単位処理が最初になくなる処理部に実行させる態様とすることもできる。このような態様においては、各処理部の負荷の平準化を図ることができる。その結果、処理集合を短時間で処理することができる。
また、N個の単位処理を、上記の優先順位に従った単位処理の割り当ての対象とする単位処理と、上記の優先順位に従った単位処理の割り当ての対象としない単位処理であって、対象とする単位処理よりも見積もり負荷が小さい調整用単位処理と、に分けて、以下のような処理を行うことも好ましい。すなわち、処理部に単位処理を割り当てて実行させる際には、上記の優先順位に従った単位処理の割り当ての後に、上記の優先順位に従った単位処理の割り当ての対象としない調整用単位処理を選択し、処理すべき単位処理が最初になくなる処理部に割り当てて実行させる。このような態様においては、各処理部の負荷の平準化をより細かく行うことができる。
なお、画像処理装置は、ハイパースレッディングにより処理集合を実行する態様とすることができる。そのような態様においては、処理部は、スレッドを処理するスレッド処理部である。
本発明は、種々の形態で実現することが可能である。例えば、処理の割り当て方法、処理割り当て装置、画像処理方法、画像処理装置、印刷制御方法、印刷制御装置、印刷方法、印刷装置、そして、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の形態で実現することができる。
以下では、発明の実施の形態を次の順序で説明する。
A.実施形態の概要:
B.第1の実施形態.
B1.装置の全体構成.
B2.CPUの内部構成.
B3.色変換処理とハーフトーン処理.
C.第2の実施形態.
D.第3の実施形態.
E.変形例.
A.実施形態の概要:
プリンタドライバ96において、二つのスレッド99c、99dを使用して、ハーフトーン処理を行う(図6(c)参照)。各インク色のハーフトーン処理には、ディザ法を使用するものと、誤差拡散法を使用するものがある。ハーフトーン処理を実行する際には、各スレッドの先頭には、ディザ法を使用するものと、誤差拡散法を使用するものとを配する。このようにすることで、少なくとも各スレッドの先頭の処理においては、誤差拡散法が並行処理されることによるメモリアクセス待ちが生じにくくなる。
その後、順に、それまでに割り当てられた処理の見積もり負荷の合計が少ないスレッドに、優先順位に従って各色のハーフトーン処理を割り当てる。この優先順位は、ディザ法を使用するものと、誤差拡散法を使用するものが交互に並ぶように、かつ、ディザ法を使用するもの同士、誤差拡散法を使用するもの同士は、見積もり負荷の大きい順に並ぶように、決定される(図6(c)の2−1〜2−4参照)。そして、それらとは別に、最後に、最も見積もり負荷の小さい処理を割り当てる(図6(c)の3−1参照)。このようにすることで、誤差拡散法を使用するハーフトーン処理が、各スレッドで同時に実行されにくくなり、さらに、各スレッドの負荷の均等化も図ることができる。
B.第1の実施の形態.
B1.装置の全体構成.
図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とを含む印刷システム全体を表す。
B2.CPUの内部構成および動作.
コンピュータ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は、一方のスレッドの一つの命令の処理を終えると、すぐにバッファ内の他方のスレッドの命令を使用して、次の処理に着手することができる。言い換えれば、パイプラインを有効に活用することができる。また、一方のスレッドでエラーや待ちが生じた場合にも、他方のスレッドでは処理を進めることができる。
なお、バッファ222,232,242の第1のスレッドの命令をそれぞれ格納する部分と、それら第1のスレッドの命令を処理する命令フェッチユニット220、命令デコーダ230、演算ユニット240の機能部を、第1のスレッドの「スレッド処理部」と呼ぶことがある。同様に、バッファ222,232,242の第2のスレッドの命令をそれぞれ格納する部分と、それら第2のスレッドの命令を処理する命令フェッチユニット220、命令デコーダ230、演算ユニット240の機能部を、第2のスレッドの「スレッド処理部」と呼ぶことがある。
B3.色変換処理とハーフトーン処理.
図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における割り付けの結果、たとえば、シアンと、イエローと、ブラックと、ダークイエローのハーフトーン処理が第1のスレッドに割り付けられ、マゼンタと、ライトシアンと、ライトマゼンタのハーフトーン処理が、第2のスレッドに割り付けられたものとする。
ステップS140では、待機状態にある第1のスレッドを実行状態とする。そして、ステップS150では、第1のスレッドにおいて、たとえばシアンと、イエローと、ブラックと、ダークイエローについてハーフトーン処理を行う。そして、それらのインク色についてのハーフトーン処理を終えると、ステップS160で、第1のスレッドを再び待機状態とする。なお、ステップS150においては、シアンと、イエローと、ブラックと、ダークイエローの各ハーフトーン処理に要した時間がカウントされ、コンピュータ90のメモリ内の負荷記憶部105(図1参照)に格納される。
一方、ステップS170では、待機状態にある第2のスレッドを実行状態とする。そして、ステップS180では、第2のスレッドにおいて、たとえばマゼンタと、ライトシアンと、ライトマゼンタについてハーフトーン処理を行う。そして、それらのインク色についてのハーフトーン処理を終えると、ステップS190で、第2のスレッドを再び待機状態とする。なお、ステップS180においては、マゼンタと、ライトシアンと、ライトマゼンタの各ハーフトーン処理に要した時間がカウントされ、コンピュータ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処理の負荷とする。
図6は、単位HT処理の割り付けの手順を示す説明図である。図6(a)は、各単位HT処理の見積もり負荷を表す図である。図6においては、一つ一つの四角が単位HT処理の負荷を表す。四角の左右方向の長さが負荷の大きさを表している。四角中のLc、Lm、Ly、Lk、Llc、Llm、Ldyは、それぞれシアン、マゼンダ、イエロー、ブラック、ライトシアン、ライトマゼンタ、ダークイエローの見積もり負荷であることを意味する。また、第2種の単位HT処理は、ハッチをつけて示している。
画像においては、隣り合う領域同士は、各色成分の存在割合が互いに近似していることが多い。すなわち、隣り合う領域同士においては、同じ色同士のハーフトーン処理の負荷が近似する可能性が高い。このため、上記のように、直前にハーフトーン処理が行われた参照ラスタラインLLs(i−1)の処理結果に基づいて、各単位HT処理の負荷を決定することとすれば、正確に負荷を見積もることができる。
なお、画像によっては、対象ラスタラインLLs(i)と参照ラスタラインLLs(i−1)とで、各色成分の存在割合が大きく変化し、その結果、各色の単位HT処理の負荷が大きく変化する場合もある。たとえば、地平線が描かれている場合などである。しかし、画像中の多くの部分では、隣り合う領域同士は、各色成分の存在割合が互いに近似している。このため、一部において負荷の見積もりが実際の負荷からずれていても、全体としては、大多数の部分についての正確な負荷の見積もりに基づいて、効率的に画像処理を行うことができる。
図5のステップS20では、各色の単位HT処理を、先頭グループG1、中間グループG2と、末尾グループG3と、に分類する。先頭グループG1は、各スレッドにおいて最初に処理すべき単位HT処理である。先頭グループG1には、誤差拡散法による単位HT処理と、ディザ法による単位HT処理と、のそれぞれについて最も負荷の大きい単位HT処理が割り当てられる(図6(a)参照)。なお、第1の実施形態にいては、先頭グループG1の単位HT処理の数はスレッドの数に等しい。
また、各色の単位HT処理のうち最も負荷の小さい一つの単位HT処理を末尾グループG3とされる(図6(a)参照)。なお、第1の実施形態にいては、末尾グループG3は、一つの単位HT処理であるが、2以上の単位HT処理を末尾グループG3としてもよい。そして、そのほかの単位HT処理を中間グループG2とする。
図6(a)に示すように、ここでは、シアンとマゼンタの単位HT処理が先頭グループG1とされ、ダークイエローの単位HT処理が末尾グループG3とされる。そして、そのほかのライトシアン、ライトマゼンタ、イエロー、ブラックの単位HT処理が、中間グループG2とされる。
前述のように、ハーフトーンモジュール99は、ライトシアン(LC)、ライトマゼンダ(LM)、シアン(C)、ブラック(K)については、誤差拡散法でハーフトーン処理を行い、マゼンダ(M)、イエロー(Y)、ダークイエロー(DY)については、ディザ法でハーフトーン処理を行う。誤差拡散法でハーフトーン処理が行われる単位HT処理を「第1種の単位HT処理」と呼び、ディザ法でハーフトーン処理が行われる単位HT処理を「第2種の単位HT処理」と呼ぶ。
図5のステップS30では、ハーフトーンモジュール99は、先頭グループG1に分類された単位HT処理を、ステップS10で決定した各単位HT処理の負荷が大きい順に順位付けする。ここでは、図6(b)に示すように、誤差拡散法を使用するシアンの単位HT処理が第1位であり、ディザ法を使用するイエローの単位HT処理が第2位である。なお、図6(b)において、各単位HT処理を表す四角の上には、各単位HT処理の属するグループと、グループ内の順位が示されている。たとえば、マゼンタの単位HT処理Lmの上の「1−2」は、先頭グループG1に属し、グループ内で順位が2位であることを意味する。
ステップS40では、ハーフトーンモジュール99は、中間グループG2に分類された単位HT処理を、ステップS10で決定した各単位HT処理の負荷に基づいて順位付けする。その際、誤差拡散法でハーフトーン処理が行われる第1種の単位HT処理から始めて、第1種と第2種の単位HT処理を負荷の大きい順に交互に順位付けする。これは、たとえば、第1種と第2種の単位HT処理を、それぞれ負荷の大きい順に仮に順位付けし、第1種と第2種の単位HT処理を交互に、仮の順位の高いものから選択して順位付けすることで、実現できる。
なお、第1の実施形態では、中間グループG2中、第2種の単位HT処理はイエロー1個であるのに対して、第1種の単位HT処理は、ライトシアン、ライトマゼンタ、ブラックの3個ある。このため、図6(b)に示すように、中間グループG2中の第1位〜第3位までは、第1種と第2種の単位HT処理が交互に順位付けされるが、第3位と第4位については、同じ第1種の単位HT処理が並ぶこととなる。
ステップS50では、ハーフトーンモジュール99は、末尾グループG3に分類された単位HT処理を、ステップS10で決定した各単位HT処理の負荷が大きい順に順位付けする。第1の実施形態では、末尾グループG3に分類された単位HT処理はダークイエローの単位HT処理だけである。このため、ダークイエローの単位HT処理に、末尾グループG3内で1位の順位が設定される。
図5のステップS60では、各単位HT処理を統一して順位付けする。その際、先頭グループG1の単位HT処理を、他のグループG2,G3よりも高い順位とする。そして、中間グループG2の単位HT処理を、末尾グループG3よりも高い順位とする。各グループ内の単位HT処理の順位は、ステップS30〜S50で設定された順位である。図6(b)の例では、左上から右下に向かう順であり、「1−1,1−2,2−1、2−2,2−3,2−4,3−1」の順である。
図6(c)は、第1と第2のスレッドに割り付けられた単位HT処理を示す説明図である。図5のステップS70では、ハーフトーンモジュール99は、ステップS60で決定した順位に沿って、各単位HT処理を第1のスレッドと第2のスレッドに割り付ける。具体的には、最初に先頭グループG1の単位HT処理を両スレッドに割り付けた後は、すでに割り当てられた単位HT処理の負荷の合計が最も少ないスレッドに、優先順位に従って単位HT処理を割り付ける。その結果、第1の第2のスレッドには、図6(c)に示すように、単位HT処理が割り付けられる。なお、図6(c)において、各単位HT処理を表す四角の上に示されている符号は、図6(b)に示した符号と同じである。すなわち、各単位HT処理の属するグループと、グループ内の順位を示すものである。
ステップS40では、中間グループG2の単位HT処理について、第1種と第2種の単位HT処理を負荷の大きい順に交互に順位付けしている。このため、上述のように単位HT処理を第1のスレッドと第2のスレッドに割り付けることで、以下のような割り付けが実行される。すなわち、中間グループG2については、すでに割り当てられた単位HT処理の負荷の合計が最も少ないスレッドに、まだスレッドに割り当てられておらず、かつ、直前にスレッドに割り当てた単位HT処理とはハーフトーン処理の方法が異なる単位HT処理のうちで、負荷が最も大きい単位処理が割り当てられる。
第1の実施形態では、先頭グループG1の選択の際には、第1種と第2種の単位HT処理の中から見積もり負荷の大きいものから単位HT処理を選択している。このため、以降の中間グループG2、末尾グループG3の単位HT処理のスレッドへの割り付けにおいては、それらよりも見積もり負荷が小さい単位HT処理が割り付けられることになる。よって、以降の中間グループG2、末尾グループG3の単位HT処理のスレッドへの割り付けに際して、スレッド間の負荷の平準化が容易となる。
また、第1の実施形態では、負荷が小さい末尾グループG3の単位HT処理を、負荷が大きい中間グループG2の後でスレッドに割り付ける。このため、単位HT処理の各スレッドへの割り付けの最終段階において、単位処理のグループ中で最も見積もり負荷の小さい末尾グループG3の単位HT処理を使用して、スレッド間の負荷の差を小さくすることができる。なお、第1の実施形態では、末尾グループG3の単位HT処理は1個であったため実施されないが、末尾グループG3の単位HT処理が複数ある場合には、末尾グループG3のうち負荷の大きい単位HT処理から順に、それまでに割り付けられた単位HT処理の負荷の合計の少ないスレッドに割り付けられることになる。そのような態様においては、スレッド間の負荷の平準化がより高度に達成される。
以上のようにして、図3のステップS130における色変換処理の割り付けが実行される。なお、図3のステップS150、S180においては、スレッドに割り付けられた各単位HT処理は、各スレッドにおいて、すなわち図6(c)の並びの順に沿って左から順に実行される。すなわち、スレッドへの割り付けにおいて先に割り付けられた単位HT処理ほど、実際の色変換処理においても先に実行される。
第1種の単位HT処理において実行される誤差拡散法によるハーフトーン処理は、ディザ法によるハーフトーン処理に比べて条件分岐が多い。このため、誤差拡散法によるハーフトーン処理においては、CPUは、あらかじめ先読みされてキャッシュメモリ内に格納されている命令やデータをそのまま使用することができない。そして、CPUは、頻繁にメインメモリに命令やデータを読み込みに行く。その結果、処理の実行中にメインメモリからのデータの転送を待つ必要があり、キャッシュメモリ内にあらかじめ格納されている命令やデータを使用できる場合に比べてCPUの処理効率が低下する。そして、ハイパースレッディング・テクノロジによる並列処理において、二つのスレッドがいずれも誤差拡散法によるハーフトーン処理を実行する場合には、いずれのスレッドもメインメモリからのデータの転送を待つことが多くなり、処理が停滞することとなる。
一方、第2種の単位HT処理において実行されるディザ法によるハーフトーン処理は、誤差拡散法によるハーフトーン処理に比べて条件分岐が少ない。このため、ディザ法によるハーフトーン処理においては、CPUは、キャッシュメモリ内にあらかじめ先読みされて格納されている命令やデータを使用することができる。よって、ハイパースレッディング・テクノロジによる並列処理において、一方のスレッドが誤差拡散法によるハーフトーン処理を実行している場合に、他方のスレッドでディザ法を実行することとすれば、誤差拡散法によるハーフトーン処理がメインメモリからのデータの転送を待っている間、他方の処理はキャッシュメモリ内の命令やデータを使用して処理を進めることができる。その結果、処理効率が向上し、短時間で全色のハーフトーン処理を完了することができる。
第1の実施形態では、先頭グループG1として、誤差拡散法による第1種の単位HT処理とディザ法による第2種の単位HT処理とを一つずつ選択している。そして、それらを各スレッドにおいて最初に実行させている(図6(c)参照)。このため、少なくともある画像領域(図4の対象ラスタラインLLs(i)参照)のハーフトーン処理の開始時において、誤差拡散法が両スレッドで並行処理されることがない。このため、少なくとも各画像領域のハーフトーン処理の開始時においては、両スレッドの処理がともにメインメモリから送られてくるデータを待って、停滞してしまうということがない。その結果、コンピュータの資源が有効に活用され、結果として処理の効率が高くなる。
さらに、第1の実施形態においては、ステップS40において、第1種の単位HT処理から始めて、第1種と第2種の単位HT処理を負荷の大きい順に交互に、中間グループG2の単位HT処理に順位付けする。そして、ステップS70において、すでに割り当てられた単位HT処理の負荷の合計が最も少ないスレッドに、ステップS40の順位に沿って中間グループG2の単位HT処理を割り付ける。このような態様とすることで、誤差拡散法による第1種の単位HT処理とディザ法による第2種の単位HT処理が、二つのスレッドで並行して処理されやすくなる。その結果、コンピュータの資源が有効に活用され、結果として処理の効率が高くなる。
なお、処理の切り替えの際のオーバーヘッドを無視すると、図6(c)は、ガントチャートとして把握することができる。第1種の単位HT処理と第2種の単位HT処理は、図6(c)にPp11、Pp12、Pp13で示す時間区間だけ、並行して処理されることとなる。第1の実施形態においては、第2種の単位HT処理は、すべて第1種の単位HT処理と並行して実行されている。
なお、第1の実施形態では、先頭グループG1と中間グループG2とを分類して処理した。しかし、第1の実施形態のように、第1種と第2種の単位HT処理が交互に並ぶように中間グループG2内の順位付けを行う場合は、先頭グループG1と中間グループG2とを分類せず、まとめて中間グループG2として処理しても、同様の結果が得られる。すなわち、第1種と第2種の単位HT処理とが、各スレッドにおいて最初に実行されることになる。よって、先頭グループG1と中間グループG2とを分類しない態様としても同様の効果が得られる。
C.第2の実施形態.
第2の実施形態は、図5における中間グループG2の順位付けの仕方が第1の実施形態とは異なる。また、図3のステップS150、S180においては、図5のステップS70で各スレッドに割り付けた順番とは異なる順番で、各単位HT処理が実行される。他の点は、第1の実施形態と同じである。
図7は、第2の実施形態における、単位HT処理の割り付けの手順を示す説明図である。図7(a)は、各単位HT処理の見積もり負荷を表す図である。図中の各表記は、図6と同じである。第2の実施形態においては、図5のステップS40における中間グループG2内の順位付けは、各単位HT処理が第1種の単位HT処理であると第2種の単位HT処理であるとを問わず、見積もり負荷の大きい順に行われる。その結果、各単位HT処理の優先順位は、図7(b)に示すようになる。
図7(c)は、第2の実施形態において、第1と第2のスレッドに割り付けられた単位HT処理を示す説明図である。図5のステップS70では、第1の実施形態と同様に、ハーフトーンモジュール99が、ステップS60で決定した順位に沿って、各単位HT処理を第1のスレッドと第2のスレッドに割り付ける。その結果、第1のスレッドには、シアン、ライトマゼンタ、ダークイエローの単位HT処理が割り当てられ、第2のスレッドには、マゼンタ、ライトシアン、ブラック、イエローの単位HT処理が割り当てられる。
図8は、第2の実施形態の各スレッドにおける単位HT処理の実行順序を示す図である。各単位HT処理は、左から右に向かう順に実行される。第2の実施形態では、図3のステップS150において、第1のスレッドで、先頭グループG1のシアンの単位HT処理が最初に実行される。次に、図8に示すように、残りの第1種の単位HT処理であるライトマゼンタの単位HT処理が実行される。その後、第2種の単位HT処理であるダークイエローの単位HT処理が実行される。
一方、図3のステップS180においては、第2のスレッドで、先頭グループG1のマゼンタの単位HT処理が最初に実行される。次に、図8に示すように、残りの第2種の単位HT処理であるイエローの単位HT処理が実行される。その後、第1種の単位HT処理であるライトシアン、ブラックの単位HT処理を実行する。第1のスレッドでは、第1種の単位HT処理を先に実行し、第2のスレッドでは、第2種の単位HT処理を先に実行することで、以下のような効果が得られる。すなわち、第1種と第2種の単位HT処理がより並列処理されやすくなる。その結果、処理効率が向上し、短時間で全色のハーフトーン処理を完了することができる。
たとえば、図7(c)の割り付けの順番で各スレッドにおいて単位HT処理を実行した場合には、ライトシアンとブラックの第1種の単位HT処理は、同じく第1種の単位HT処であるシアンとライトマゼンタの単位HT処理を並列処理されることとなる。すなわち、時間区間T21の間、誤差拡散法による第1種の単位HT処理が並列処理される。しかし、図8のような順番で単位HT処理を実行することで、ブラックの第1種の単位HT処理は、一部において、第2種の単位HT処理であるダークイエローの単位HT処理と並列処理されることとなる。また、シアンの第1種の単位HT処理は、マゼンタに加えて、イエローの第2種の単位HT処理と並列処理されることとなる。すなわち、誤差拡散法による第1種の単位HT処理が並列処理されるのは、時間区間T22の間である。図7(c)と図8から分かるように、T22は、T21よりも短い。なお、誤差拡散法による第1種の単位HT処理と、ディザ法による第2種の単位HT処理が並列処理される時間を、図7(c)においてPp21,Pp22で示し、図8においてPp31,Pp32で示す。
D.第3の実施形態.
図9は、第3の実施形態において、第1〜第3のスレッドに割り付けられた単位HT処理を示す説明図である。第3の実施形態においては、スレッドは3個ある。他の点は、第1の実施形態と同じである。
図5のステップS60において、図6(b)のように各単位HT処理に順位付けがされたとする。なお、第3の実施形態では、先頭グループG1の単位HT処理の数は、スレッドの数よりも少ない。その後、図5のステップS70で、各単位HT処理が割り付けられる。その際の方法は、第1の実施形態と同じである。すなわち、最初に先頭グループG1の単位HT処理を各スレッドに割り付け、その後、中間グループおよび末尾グループの単位HT処理を、優先順位に従って、割り付けられた単位HT処理の合計負荷がもっとも少ないスレッドに割り付ける。
このような態様としても、誤差拡散法による第1種の単位HT処理と、ディザ法による第2種の単位HT処理とが並列処理されやすいように、単位HT処理をスレッドに割り付けることができる。たとえば、図9に示されるように、第3の実施形態においても、第2種の単位HT処理は、すべて、第1種の単位HT処理と並列処理されている。すなわち、第1種と第2種の単位HT処理の並列処理は、最大限、実現されている。また、第3の実施形態においても、第1および第2の実施形態と同様、各スレッド間の負荷の均等化も図ることができる。
E.変形例.
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
E1.変形例1:
上記各実施形態では、各スレッドに対象ラスタラインLLs(i)のすべての単位HT処理を割り当てた後、各スレッドで割り当てられた単位HT処理を実行していた(図3および図5参照)。しかし、各スレッド単位HT処理を実行しつつ、次に処理すべき単位HT処理を各スレッドに割り当てる、いわゆるリアルタイムスケジューリングを行うこともできる。そのような場合には、処理すべき単位HT処理が最初になくなるスレッド対して、各実施形態と同様の優先順位に従って選択した単位HT処理を一つ割り当てて、それを実行させるようにすることができる。このような態様とすれば、それまでに割り付けた単位HT処理の実際の負荷が少ないことが判明したスレッドに、新たに次の単位HT処理を割り付けることができる。このため、スレッド間の負荷のばらつきを小さくするように単位HT処理を処理部に割り付ける際、負荷の見積もりと実際の処理時間とのずれに影響されにくい。
E2.変形例2:
上記実施形態では、スレッドは2個または3個であった。しかし、スレッドは4以上設けるものとしてもよい。ただし、本発明の上記各態様は、単位処理を実行するためのスレッドの数が単位処理の数よりも少ない場合に適用すると、特に効果的である。スレッドが3以上ある態様においては、単位HT処理を事前に割りあてる際には、3以上あるスレッドのうちすでに割り当てられた単位処理の負荷の合計が最も少ないスレッドに、まだスレッドに割り当てられていない単位処理のうちの一つを割り当てることが好ましい。そして、ハーフトーン処理を実行しつつ単位HT処理を割りあてる際には、3以上あるスレッドのうちすでに割り当てられた単位処理の実行を最も早く完了したスレッドに、単位処理を処理部に割り当てることが好ましい。
上記各実施形態では、コンピュータの一つのCPUが、ハイパースレッディングによって複数のスレッドで単位HT処理を実行していた。しかし、各単位HT処理は、複数のCPUで分担して実行することもできる。そのような態様においても、上記各実施形態と同様の手順で、各CPU間の負荷のばらつきが小さくなるように各CPUに各単位HT処理を割り付けることができる。
また、上記各実施形態では、スレッドは2個または3個に固定されていた。しかし、ハイパースレッディングにおいて生成するスレッドの数や、マルチCPUのコンピュータにおいて使用するCPUの数を、状況に応じて変えることができる態様とすることもできる。たとえば、本発明の実施態様の一つである画像処理装置は、スレッドの数を1とする動作モードと、スレッドの数を2とする動作モード、スレッドの数を3とする動作モードなど、複数の動作モードを有する態様とすることができる。スレッドやCPUなどの処理部が2以上の場合は、上記各実施形態と同様の手順で負荷の割り付け、および実行順序の決定を行うことができる。処理部が一つである場合は、あらかじめ定められた順序に沿って、その処理部上で各単位処理を実行する態様とすることができる。
E3.変形例3:
上記実施形態においては、最初に処理すべき単位HT処理の数は、2個であった。しかし、最初に処理すべき単位HT処理の数は、3個以上であってもよい。ただし、その数は、スレッド(処理部)の数以下である。そして、最初に処理すべき単位HT処理の集合は、互いに異なる複数種類の単位処理を含むことが好ましい。さらに、単位処理が2種類であって、最初に処理すべき単位HT処理の数が処理部の数と等しい場合には、以下のようにすることが好ましい。すなわち、最初に処理すべき単位HT処理の集合(先頭グループG1)内において、一方の種類の単位処理の数が、他方の種類の単位処理の数の30〜70%であることが好ましく、40〜60%であることがより好ましい。そして、一方の種類の単位処理の数が、他方の種類の単位処理の数の45〜55%であることがさらに好ましく、他方の種類の単位処理の数と同数プラスマイナス1であることがさらに好ましい。
E4.変形例4:
上記各実施形態においては、各単位HT処理の負荷の見積もりの際には、直前にハーフトーン処理を行った領域LLs(i−1)についての各単位HT処理の処理時間を、対応するインク色の単位HT処理の負荷とした。しかし、単位HT処理の負荷の見積もりは他の値に基づいて行うこともできる。たとえば、直前にハーフトーン処理を行った領域LLs(i−1)内における各インク色のドットの発生量または発生確率を、次にハーフトーン処理を行う領域LLs(i)についての各単位HT処理の負荷とすることができる。
また、ハーフトーン処理の方法が同じ単位HT処理については、負荷を一律に定めてもよい。たとえば、ディザ法によるハーフトーン処理を行う単位HT処理の負荷を1とし、誤差拡散法によるハーフトーン処理を行う単位HT処理の負荷を3としてもよい。さらに、ハーフトーン処理の方法と、上述した処理時間やドットの発生量または発生確率を組み合わせて、負荷を定めてもよい。たとえば、ディザ法によるハーフトーン処理を行う単位HT処理の負荷を1×[ドット発生確率]とし、誤差拡散法によるハーフトーン処理を行う単位HT処理の負荷を3×[ドット発生確率]としてもよい。すなわち、単位処理の負荷の見積もりは、直前に実行された処理集合に含まれる各単位処理の実行結果を考慮して定めるものとすればよい。
E5.変形例5:
上述した各実施形態では、最後にスレッドに割り付けられる末尾グループG3は、1個の単位HT処理を含んでいた。しかし、末尾グループG3が含む単位HT処理の数は2個であってもよいし、3個以上であってもよい。すなわち、先頭および中間グループの後でスレッドに割り付けられる末尾グループは、1以上の単位処理を含むものとすることができる。そして、先頭および中間グループの単位HT処理に比べて、見積もり負荷が小さい単位HT処理であることが好ましい。
E6.変形例6:
第2の実施形態では、第1のスレッドにおいて、最初に実行されるべき先頭グループG1のシアンの単位HT処理を含めて、第1種の単位HT処理が、第2種の単位HT処理に先立って実行されていた(図8参照)。そして、第2のスレッドにおいては、最初に実行されるべき先頭グループG1のマゼンタの単位HT処理を含めて、第2種の単位HT処理が、第1種の単位HT処理に先立って実行されていた。しかし、最初に実行されるべき先頭グループG1の単位HT処理の種類と、その後に、優先的に処理される単位HT処理の種類は異なっていてもよい。
たとえば、最初に実行されるべき先頭グループG1の単位HT処理が第1種の単位処理であるとき、その第1種の単位HT処理の後は、第2種の単位処理を優先的にまとめて実行し、その後に、再び第1種の単位処理を実行してもよい。すなわち、単位処理の実行に際して、少なくとも一つの処理部に、少なくとも一つの第1種の単位処理よりも先に、複数の第2種の単位処理を連続して実行させ、少なくとも他の一つの処理部に、少なくとも一つの第2種の単位処理よりも先に、複数の第1種の単位処理を連続して実行させるような態様とすることができる。なお、少なくとも一つの処理部に、割り当てられたすべての第1種の単位処理を、割り当てられたすべての第2種の単位処理の前に実行させ、他の一つの処理部に、割り当てられたすべての第2種の単位処理を、割り当てられたすべての第1種の単位処理の前に実行させる態様とすることは、より好ましい。
E7.変形例7:
印刷画像データFNLを受け取るプリンタ22が、同じインク色について大中小などの複数種類の大きさのドットを形成することができる場合には、ハーフトーン処理は、各インク色の各ドットの種類の単位で行われる。上記各実施形態では、単位HT処理は各インク色ごとのハーフトーン処理であったが、このような態様においては、単位HT処理は、各インク色の各ドットの種類の単位のハーフトーン処理とすることができる。
E8.変形例8:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、プリンタドライバ96(図1参照)の機能の一部をプリンタのCPU41が実行するようにすることもできる。
このような機能を実現するコンピュータプログラムは、フロッピディスクやCD−ROM等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。ホストコンピュータは、その記録媒体からコンピュータプログラムを読み取って内部記憶装置または外部記憶装置に転送する。あるいは、通信経路を介してプログラム供給装置からホストコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがホストコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをホストコンピュータが直接実行するようにしてもよい。
この明細書において、コンピュータとは、ハードウェア装置とオペレーションシステムとを含む概念であり、オペレーションシステムの制御の下で動作するハードウェア装置を意味している。コンピュータプログラムは、このようなコンピュータに、上述の各部の機能を実現させる。なお、上述の機能の一部は、ドライバやアプリケーションプログラムでなく、オペレーションシステムによって実現されていても良い。
なお、この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
第1の実施形態の印刷システムのソフトウェアの構成を示すブロック図。 コンピュータ90のCPU90a内における処理を示すブロック図。 色変換処理とハーフトーン処理の具体的な処理の流れを示すフローチャート。 色変換処理とハーフトーン処理を行うラスタラインLLs(i)を示す説明図。 図3のステップS130における各色の単位HT処理のスレッドへの割り付けの手順を示すフローチャート。 単位HT処理の割り付けの手順を示す説明図。 第2の実施形態における、単位HT処理の割り付けの手順を示す説明図。 第2の実施形態の各スレッドにおける単位HT処理の実行順序を示す図。 第3の実施形態において、第1〜第3のスレッドに割り付けられた単位HT処理を示す説明図。
符号の説明
21...CRTディスプレイ
22...プリンタ
28...印刷ヘッド
31...キャリッジ
32...操作パネル
41...CPU
42...ROM
90...コンピュータ
90a...CPU
91...ビデオドライバ
95...アプリケーションプログラム
96...プリンタドライバ
97...解像度変換モジュール
98...色変換モジュール
99...ハーフトーンモジュール
99a...割り付け部
99b...2値化部
99c...第1のスレッド
99d...第2のスレッド
100...並べ替えモジュール
104...色変換テーブル
105...負荷記憶部
120...キーボード
130...マウス
210...命令キャッシュ
220...命令フェッチユニット
222,232,242...バッファ
230...命令デコーダ
232...バッファ
240...演算ユニット
250...データキャッシュ
Ad...色変換処理およびハーフトーン処理がすでに行われた領域
Ay...色変換処理およびハーフトーン処理が行われていない領域
FNL...印刷画像データ
G1...先頭グループ
G2...中間グループ
G3...末尾グループ
LLs(i−1)...参照ラスタライン
LLs(i)...対象ラスタライン
Lc...シアンの単位HT処理の負荷
Ldy...の単位HT処理の負荷
Llc...の単位HT処理の負荷
Llm...の単位HT処理の負荷
Lm...の単位HT処理の負荷
Ly...の単位HT処理の負荷
MID1...解像度変換後の画像データ
MID2...色変換後の画像データ
MID3...ハーフトーン処理後の画像データ
MS...キャリッジの移動方向(主走査方向)
ORG...原画像データ
P...用紙
PID...初期画像データ
SS...印刷用紙の搬送方向(副走査方向)
T21...時間区間
T31...時間区間

Claims (12)

  1. N個(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行する画像処理において、前記単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部で前記単位処理を実行させる方法であって、
    前記処理集合は、
    第1の処理方法を用いて処理を行う第1種の単位処理と、
    前記第1の処理方法とは異なる第2の処理方法を用いて前記処理を行う第2種の単位処理と、を含み、
    前記方法は、
    前記第1種と第2種の単位処理を少なくとも一つずつ含むM個の単位処理を、M個の前記処理部に最初に実行させる方法。
  2. 請求項1記載の方法であって、
    前記単位処理は、画像のハーフトーン処理であり、
    前記処理集合は、
    前記画像中の同一の領域を対象とするN個の前記ハーフトーン処理の集合である、方法。
  3. 請求項2記載の方法であって、
    前記第1の処理方法は誤差拡散法であり、
    前記第2の処理方法はディザ法である、方法。
  4. 請求項1ないし3のいずれかに記載の方法であって、
    (a)直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各単位処理の見積もり負荷を見積もる工程と、
    (b)前記見積もり負荷に基づいて、前記M個の処理部に前記N個の単位処理を割り当てる工程と、
    (c)前記M個の処理部に、前記N個の単位処理を、割り当てられた順に実行させる工程と、を有し、
    前記工程(b)は、
    (b1)前記第1種の単位処理と前記第2種の単位処理とが交互に並び、かつ、前記第1種の単位処理同士および前記第2種の単位処理同士については、前記見積もり負荷の大きい順に並ぶ優先順位に従って、複数の前記単位処理の中から一つの単位処理を選択する工程と、
    (b2)前記M個の処理部の中で、割り当て済みの単位処理の見積もり負荷の合計が最も少ない処理部に、前記選択した単位処理を割り当てる工程と、
    (b3)前記工程(b1)および(b2)を繰り返し実行する工程と、を含む方法。
  5. 請求項1ないし3のいずれかに記載の方法であって、
    (a)直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各単位処理の見積もり負荷を見積もる工程と、
    (b)前記見積もり負荷に基づいて、前記M個の処理部に前記N個の単位処理を割り当てる工程と、
    (c)前記M個の処理部に、前記N個の単位処理を実行させる工程と、を有し、
    前記工程(b)は、
    (b1)前記見積もり負荷の大きい順である優先順位に従って、複数の前記単位処理の中から一つの単位処理を選択する工程と、
    (b2)前記M個の処理部の中で、割り当て済みの単位処理の見積もり負荷の合計が最も少ない処理部に、前記選択した単位処理を割り当てる工程と、
    (b3)前記工程(b1)および(b2)を繰り返し実行する工程と、を含み、
    前記工程(c)は、
    前記M個の処理部のうち少なくとも一つの処理部に、前記第1種の単位処理よりも先に、複数の前記第2種の単位処理を連続して実行させ、
    前記M個の処理部のうち少なくとも他の一つの処理部に、前記第2種の単位処理よりも先に、複数の前記第1種の単位処理を連続して実行させる工程を含む、方法。
  6. 請求項4または5記載の方法であって、さらに、
    前記N個の単位処理を、前記工程(b1)の対象とする単位処理と、前記工程(b1)の対象としない単位処理であって前記工程(b1)の対象とする単位処理よりも前記見積もり負荷が小さい単位処理と、に分ける工程を備え、
    前記工程(b)は、さらに、
    (b4)前記工程(b3)の後に、前記工程(b1)の対象としない単位処理を、それまでに割り当てられている処理の見積もり負荷の合計が最も少ない処理部に割り当てる工程を含む、方法。
  7. 請求項1ないし3のいずれかに記載の方法であって、
    (a)直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各単位処理の見積もり負荷を見積もる工程と、
    (b)前記見積もり負荷に基づいて前記処理部に前記単位処理を割り当てて、実行させる工程と、を有し、
    前記工程(b)は、
    (b1)前記第1種の単位処理と前記第2種の単位処理とが交互に並び、かつ、前記第1種の単位処理同士および前記第2種の単位処理同士については、前記見積もり負荷の大きい順に並ぶ優先順位に従って、まだ前記処理部に割り当てられていない前記単位処理の中から一つの単位処理を選択する工程と、
    (b2)前記M個の処理部の中で、処理すべき単位処理が最初になくなる処理部に、前記選択した単位処理を割り当てて実行させる工程と、
    (b3)前記工程(b1)および(b2)を繰り返し実行する工程と、を含む方法。
  8. 請求項1ないし3のいずれかに記載の方法であって、
    (a)直前に実行された処理集合に含まれる各単位処理の実行結果に基づいて、次の処理集合における各単位処理の見積もり負荷を見積もる工程と、
    (b)前記見積もり負荷に基づいて前記処理部に前記単位処理を割り当てて、実行させる工程と、を有し、
    前記工程(b)は、
    (b1)前記見積もり負荷の大きい順である優先順位に従って、まだ前記処理部に割り当てられていない前記単位処理の中から、一つの単位処理を選択する工程と、
    (b2)前記M個の処理部の中で、処理すべき単位処理が最初になくなる処理部に、前記選択した単位処理を割り当てて実行させる工程と、
    (b3)前記工程(b1)および(b2)を繰り返し実行する工程と、を含む方法。
  9. 請求項7または8記載の方法であって、
    前記N個の単位処理を、前記工程(b1)の対象とする単位処理と、前記工程(b1)の対象としない単位処理であって前記工程(b1)の対象とする単位処理よりも前記見積もり負荷が小さい単位処理と、に分ける工程を備え、
    前記工程(b)は、さらに、
    (b4)前記工程(b3)の後に、前記工程(b1)の対象としない単位処理を選択し、処理すべき単位処理が最初になくなる処理部に割り当てて実行させる工程を含む方法。
  10. N個(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行して画像処理を行う画像処理装置であって、
    前記単位処理は、
    第1の処理方法を用いて処理を行う第1種の単位処理と、
    前記第1の処理方法とは異なる第2の処理方法を用いて前記処理を行う第2種の単位処理と、を含み、
    前記画像処理装置は、
    前記単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部を含み、
    前記第1種と第2種の単位処理を少なくとも一つずつ含むM個の単位処理を、M個の前記処理部に最初に実行させる、画像処理装置。
  11. 請求項10記載の画像処理装置であって、
    ハイパースレッディングにより前記処理集合を実行し、
    前記処理部は、スレッドを処理するスレッド処理部である、画像処理装置。
  12. N個(Nは3以上の整数)の単位処理を含む処理集合を繰り返し実行する画像処理において、前記単位処理を実行するためのM個(Mは2以上でN未満の整数)の処理部で前記単位処理を実行させるためのコンピュータプログラムであって、
    前記単位処理は、
    第1の処理方法を用いて処理を行う第1種の単位処理と、
    前記第1の処理方法とは異なる第2の処理方法を用いて前記処理を行う第2種の単位処理と、を含み、
    前記コンピュータプログラムは、
    前記第1種と第2種の単位処理を少なくとも一つずつ含むM個の単位処理を、M個の前記処理部に最初に実行させる機能を含む、コンピュータプログラム。
JP2004245078A 2004-08-25 2004-08-25 画像処理を並列処理で実行する際の負荷の割り付け Expired - Fee Related JP4556554B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004245078A JP4556554B2 (ja) 2004-08-25 2004-08-25 画像処理を並列処理で実行する際の負荷の割り付け
US11/212,431 US7466465B2 (en) 2004-08-25 2005-08-24 Load allocation when executing image processing using parallel processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004245078A JP4556554B2 (ja) 2004-08-25 2004-08-25 画像処理を並列処理で実行する際の負荷の割り付け

Publications (2)

Publication Number Publication Date
JP2006065459A true JP2006065459A (ja) 2006-03-09
JP4556554B2 JP4556554B2 (ja) 2010-10-06

Family

ID=36033997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004245078A Expired - Fee Related JP4556554B2 (ja) 2004-08-25 2004-08-25 画像処理を並列処理で実行する際の負荷の割り付け

Country Status (2)

Country Link
US (1) US7466465B2 (ja)
JP (1) JP4556554B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015138520A (ja) * 2014-01-24 2015-07-30 株式会社東芝 クラウド制御システム、及びクラウド制御システムの制御プログラムのスケジューリング方法
JP2016157339A (ja) * 2015-02-25 2016-09-01 富士通株式会社 コンパイラプログラム、コンピュータプログラム及びコンパイラ装置
JP2016197827A (ja) * 2015-04-06 2016-11-24 セイコーエプソン株式会社 画像処理装置、印刷装置、画像処理方法および印刷方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4519082B2 (ja) * 2006-02-15 2010-08-04 株式会社ソニー・コンピュータエンタテインメント 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置
JP5173578B2 (ja) * 2008-05-15 2013-04-03 キヤノン株式会社 画像処理方法及び印刷装置とその制御方法
WO2011072259A1 (en) * 2009-12-10 2011-06-16 Indiana University Research & Technology Corporation System and method for segmentation of three dimensional image data
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
JP6370202B2 (ja) * 2014-11-18 2018-08-08 キヤノン株式会社 画像処理装置及び画像処理方法
JP2017030149A (ja) * 2015-07-28 2017-02-09 セイコーエプソン株式会社 印刷制御装置および印刷制御方法
US10338857B2 (en) * 2016-11-24 2019-07-02 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02122365A (ja) * 1988-10-31 1990-05-10 Hitachi Ltd プロセッサ割当て方式
JPH0486920A (ja) * 1990-07-31 1992-03-19 Matsushita Electric Ind Co Ltd 情報処理装置およびその方法
JPH06274608A (ja) * 1993-03-23 1994-09-30 Seiko Epson Corp マルチプロセッサ画像処理装置
JPH0844678A (ja) * 1994-07-29 1996-02-16 Canon Inc 画像処理装置及びシステム
JPH08265590A (ja) * 1995-02-03 1996-10-11 Eastman Kodak Co ハーフトーンカラー画像処理方法
JPH08286958A (ja) * 1995-04-13 1996-11-01 Hitachi Ltd ジョブスケジューリング解析方法
JPH08307720A (ja) * 1995-05-12 1996-11-22 Seiko Epson Corp カラー画像の階調数変換方式及び方法
JP2000293674A (ja) * 1999-04-12 2000-10-20 Seiko Epson Corp 画像処理方法、印刷装置、画像処理システムおよび記録媒体
JP2001075934A (ja) * 1999-09-07 2001-03-23 Nec Eng Ltd 負荷分散処理システム及び方法
JP2002049603A (ja) * 2000-08-03 2002-02-15 Toshiba Corp 動的負荷分散方法及び動的負荷分散装置
JP2002244499A (ja) * 2001-02-13 2002-08-30 Sharp Corp 画像形成装置
WO2004036354A2 (en) * 2002-10-15 2004-04-29 Sandbridge Technologies, Inc. Method and apparatus for high speed cross-thread interrupts in a multithreaded processor
JP2004135317A (ja) * 2002-09-18 2004-04-30 Fuji Xerox Co Ltd カラー画像処理装置およびカラー画像処理方法
JP2005151286A (ja) * 2003-11-18 2005-06-09 Ricoh Co Ltd カラー画像処理装置、および方法
JP2005250565A (ja) * 2004-03-01 2005-09-15 Seiko Epson Corp 画像処理を並列処理で実行する際の負荷の割り付け
JP2005252558A (ja) * 2004-03-03 2005-09-15 Seiko Epson Corp 画像処理方法の選択
JP2005259042A (ja) * 2004-03-15 2005-09-22 Seiko Epson Corp 画像処理方法および画像処理プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765146A (en) * 1993-11-04 1998-06-09 International Business Machines Corporation Method of performing a parallel relational database query in a multiprocessor environment
US5930010A (en) * 1996-01-31 1999-07-27 Lexmark International, Inc. Method and apparatus for color halftoning using different halftoning techniques for halftoning different dot planes
US6532016B1 (en) * 1997-10-23 2003-03-11 Texas Instruments Incorporated Method of processing print data using parallel raster image processing
US7355747B2 (en) * 2002-01-18 2008-04-08 Hewlett-Packard Development Company, L.P. System for improving the speed of data processing
EP1479039A1 (en) * 2002-02-26 2004-11-24 Eisei Matsumura Printer controller
GB2387817A (en) * 2002-04-27 2003-10-29 Hewlett Packard Co Page wide array inkjet printer having halftone controller and multiple printheads, each printing different image strips.
US20040008382A1 (en) * 2002-07-09 2004-01-15 Barbalet Thomas Samuel System and method for error diffusion screening with parallel processing
US7551323B2 (en) * 2003-04-16 2009-06-23 Lexmark International, Inc. Systems and methods for error diffusion

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02122365A (ja) * 1988-10-31 1990-05-10 Hitachi Ltd プロセッサ割当て方式
JPH0486920A (ja) * 1990-07-31 1992-03-19 Matsushita Electric Ind Co Ltd 情報処理装置およびその方法
JPH06274608A (ja) * 1993-03-23 1994-09-30 Seiko Epson Corp マルチプロセッサ画像処理装置
JPH0844678A (ja) * 1994-07-29 1996-02-16 Canon Inc 画像処理装置及びシステム
JPH08265590A (ja) * 1995-02-03 1996-10-11 Eastman Kodak Co ハーフトーンカラー画像処理方法
JPH08286958A (ja) * 1995-04-13 1996-11-01 Hitachi Ltd ジョブスケジューリング解析方法
JPH08307720A (ja) * 1995-05-12 1996-11-22 Seiko Epson Corp カラー画像の階調数変換方式及び方法
JP2000293674A (ja) * 1999-04-12 2000-10-20 Seiko Epson Corp 画像処理方法、印刷装置、画像処理システムおよび記録媒体
JP2001075934A (ja) * 1999-09-07 2001-03-23 Nec Eng Ltd 負荷分散処理システム及び方法
JP2002049603A (ja) * 2000-08-03 2002-02-15 Toshiba Corp 動的負荷分散方法及び動的負荷分散装置
JP2002244499A (ja) * 2001-02-13 2002-08-30 Sharp Corp 画像形成装置
JP2004135317A (ja) * 2002-09-18 2004-04-30 Fuji Xerox Co Ltd カラー画像処理装置およびカラー画像処理方法
WO2004036354A2 (en) * 2002-10-15 2004-04-29 Sandbridge Technologies, Inc. Method and apparatus for high speed cross-thread interrupts in a multithreaded processor
JP2006503385A (ja) * 2002-10-15 2006-01-26 サンドブリッジ テクノロジーズ インコーポレーテッド マルチスレッド・プロセッサの高速スレッド間割込みのための方法および装置
JP2005151286A (ja) * 2003-11-18 2005-06-09 Ricoh Co Ltd カラー画像処理装置、および方法
JP2005250565A (ja) * 2004-03-01 2005-09-15 Seiko Epson Corp 画像処理を並列処理で実行する際の負荷の割り付け
JP2005252558A (ja) * 2004-03-03 2005-09-15 Seiko Epson Corp 画像処理方法の選択
JP2005259042A (ja) * 2004-03-15 2005-09-22 Seiko Epson Corp 画像処理方法および画像処理プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015138520A (ja) * 2014-01-24 2015-07-30 株式会社東芝 クラウド制御システム、及びクラウド制御システムの制御プログラムのスケジューリング方法
JP2016157339A (ja) * 2015-02-25 2016-09-01 富士通株式会社 コンパイラプログラム、コンピュータプログラム及びコンパイラ装置
JP2016197827A (ja) * 2015-04-06 2016-11-24 セイコーエプソン株式会社 画像処理装置、印刷装置、画像処理方法および印刷方法

Also Published As

Publication number Publication date
US7466465B2 (en) 2008-12-16
US20060056693A1 (en) 2006-03-16
JP4556554B2 (ja) 2010-10-06

Similar Documents

Publication Publication Date Title
US7466465B2 (en) Load allocation when executing image processing using parallel processing
US5627659A (en) Image processing system capable of selecting from among a plurality of error diffusion matrices
US7460285B2 (en) Load allocation when executing image processing using parallel processing
US7436559B2 (en) Load assignment in image processing by parallel processing
US7268919B2 (en) Image data processing apparatus, method, and program that diffuses gradiation error for each pixel in target block
US20120050815A1 (en) Image processing apparatus and image processing method
JP5899863B2 (ja) 印刷装置および印刷装置の印刷方法
JP2005250565A (ja) 画像処理を並列処理で実行する際の負荷の割り付け
JP4442899B2 (ja) 画像処理装置及び画像処理方法
JP2005260424A (ja) 画像処理を並列処理で実行する際の負荷の割り付け
JP2007050708A (ja) 画像処理装置及び印刷装置
JP2006133839A (ja) 画像処理装置、印刷装置および画像処理方法
JPH0738767A (ja) 画像2値化処理装置
JP3268712B2 (ja) 画像形成方法とその装置
JP2007129695A (ja) 印刷装置、印刷プログラム、印刷方法、および画像処理装置、画像処理プログラム、画像処理方法、並びに前記プログラムを記録した記録媒体、表示装置
JP2008092397A (ja) 画像処理装置、画像処理方法および印刷装置
JP2005295131A (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2005259042A (ja) 画像処理方法および画像処理プログラム
JP6809158B2 (ja) 画像処理装置及びプログラム
JP2006163672A (ja) 画像処理装置、印刷装置および画像処理方法
JP2006166190A (ja) 画像処理装置、印刷装置および画像処理方法
JP2006163673A (ja) 画像処理装置、印刷装置および負荷分散方法
JP2006163674A (ja) 画像処理装置、印刷装置および負荷分散方法
JP3452202B2 (ja) 画像処理方法
JP5899860B2 (ja) 印刷装置および印刷装置の印刷方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100629

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100712

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees