(57)【特許請求の範囲】
【請求項１】
プロセッサにより画像処理を行なう画像処理方法であって、
ハーフトニングの処理を含む画像処理を負担可能なプロセッサの数を問い合わせ、
前記処理しようとしている画像について、該画像の解像度を含む画像の性質を判別し、
該判別した画像の性質と前記問い合わせたプロセッサの数とに基づいて、前記複数のプロセッサに分担する各処理を決定する際、前記解像度が高くなるに従って、前記ハーフトニングに割り当てるプロセッサの割合が高くなるよう決定する
画像処理方法。
【請求項２】
請求項１記載の画像処理方法であって、
前記画像の性質の一つは、ページ単位に区切られた画像のページ数であり、
前記複数のプロセッサに、異なるページの画像の処理を分担させる
画像処理方法。
【請求項３】
請求項１記載の画像処理方法であって、
前記判別される画像の性質の一つは、前記ハーフトニングを独立に実施可能な範囲を示すものであり、
前記独立してハーフトニングの処理を実施可能な範囲が存在する場合に、該範囲毎に前記各プロセッサに前記ハーフトニングの処理を分担させる
画像処理方法。
【請求項４】
請求項１記載の画像処理方法であって、
前記各プロセッサは、ネットワークを介して相互にデータを遣り取り可能に結合されており、
前記プロセッサに分担する処理の決定は、前記画像の性質とプロセッサの数と共に、前記ネットワークを介したデータの遣り取りのオーバーヘッドも考慮して行なう
画像処理方法。
【請求項５】
原画像を処理した結果に基づいて、印刷媒体上にドットを形成し、画像を再現する印刷装置であって、
ハーフトニングの処理を含む画像処理を負担可能なプロセッサの数を判別するプロセッサ数判別手段と、
前記処理しようとしている画像について、該画像の解像度を含む画像の性質を判別する画像性質判別手段と、
該判別した画像の性質と前記判別したプロセッサの数とに基づいて、前記複数のプロセッサに分担する各処理を決定する際、前記解像度が高くなるに従って、前記ハーフトニングに割り当てるプロセッサの割合が高くなるよう決定する分担決定手段と、
分担が決定された各プロセッサに画像処理のためのデータを受け渡すデータ受渡手段と、
該受け渡されたデータに基づいて各プロセッサに分担された処理を実行させ、ハーフトニングの処理を含む処理を済ませたデータを受け取って画像を形成する画像形成手段と
を備えた印刷装置。
【請求項６】
請求項５記載の印刷装置であって、
プロセッサ数判別手段は、所定の問い合わせ処理を実行することにより、利用可能なプロセッサ数を取得するプロセッサ数取得手段を備えた印刷装置。
【請求項７】
ネットワークにより結合されたコンピュータの少なくとも一つが受け取った画像を処理する画像処理システムであって、
前記ネットワーク上で、ハーフトニングの処理を含む画像処理を負担可能なプロセッサの数を判別するプロセッサ数判別手段と、
前記処理しようとしている画像について、該画像の解像度を含む画像の性質を判別する画像性質判別手段と、
該判別した画像の性質と前記判別したプロセッサの数とに基づいて、前記複数のプロセッサに分担する各処理を決定する際、前記解像度が高くなるに従って、前記ハーフトニングに割り当てるプロセッサの割合が高くなるよう決定する分担決定手段と、
分担が決定されたプロセッサがネットワークを介して接続されたプロセッサである場合には、画像処理のためのデータを該ネットワークを介して受け渡すデータ受渡手段と、
該受け渡されたデータに基づいて各プロセッサに分担された処理を実行させる画像処理実行手段と
を備えた画像処理システム。
【請求項８】
請求項７記載の画像処理システムであって、
前記画像処理手段により処理済の画像に基づいて、印刷媒体上にドットを形成し、画像を印刷する印刷手段を備えた画像処理システム。
【請求項９】
請求項７記載の画像処理システムであって、
前記ネットワークの特性を判別するネットワーク特性判別手段を備え、
前記分担決定手段は、前記画像の性質とプロセッサの数に加えて、前記判別したネットワークの特性を考慮して、前記複数のプロセッサに分担する各処理を決定する
画像処理システム。
【請求項１０】
プロセッサにより画像処理を行なうプログラムまたはその等価物を記録した記録媒体であって、
ハーフトニングの処理を含む画像処理を負担可能なプロセッサの数を問い合わせる機能と、
前記処理しようとしている画像について、該画像の解像度を含む画像の性質を判別する機能と、
該判別した画像の性質と前記問い合わせたプロセッサの数とに基づいて、前記複数のプロセッサに分担する各処理を決定する際、前記解像度が高くなるに従って、前記ハーフトニングに割り当てるプロセッサの割合が高くなるよう決定する機能と
をコンピュータにより読み取り可能に記録した記録媒体。
【請求項１１】
請求項１０記載の記録媒体であって、
前記プロセッサがネットワークを介して結合されている場合に、該ネットワークの特性を判別する機能と、
前記プロセッサの割り当てを決定する際には、前記画像の性質とプロセッサの数に加えて、前記判別したネットワークの特性を考慮して、前記複数のプロセッサに分担する各処理を決定する機能と
をコンピュータにより読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理方法、印刷装置および画像処理システムに関し、詳しくは画像データに対してプロセッサにより種々の処理を行なう画像処理技術に関する。
【０００２】
【従来の技術】
近年、画像処理を行なう様々な技術が提案されており、特にプリンタの分野では、階調数の少ないドットを用いて多階調の画像を表現する技術の提案が多岐に亘って行なわれている。こうした画像処理としては、色補正、ハーフトニング、ラスタライザなどが知られている。最近では、コンピュータの性能が上昇し、種々のフィルタリングの処理なども小型のパーソナルコンピュータで行なわれるようになってきた。
【０００３】
また、ネットワーク環境の急速な普及に伴い、たとえば画像をプリンタに出力する場合、画像を処理しているコンピュータと、印刷を行なうコンピュータが異なるということも少なくない。こうした場合、画像処理を主として行ない、印刷命令を発効した側のコンピュータは、一旦データを印刷用のコンピュータに移してしまえば、特に実行すべき処理はなく、次の画像の取り込みなどを行なうことができるが、２台以上のコンピュータを利用しながら、画像処理速度の改善に、２台のコンピュータを積極的に用いるということはなかった。
【０００４】
【発明が解決しようとする課題】
しかしながら、処理すべき画像の大きさが大きくなり、あるいは画像の解像度が高くなってくると、画像処理およびこの画像処理を伴う印刷に長大な時間がかかるという問題があった。画像処理に要する時間は、近年インクドットの種類を増やし、画像処理の結果生成されるドットの種類を増やす傾向にあることから、漸次増加している。かかる問題は、特に実行される画像処理が誤差拡散などのハーフトニングの場合には、看過することができない。
【０００５】
本発明の装置は、こうした問題を解決し、複数のプロセッサが利用可能な環境で、画像処理を短時間に完了することを目的とする。
【０００６】
【課題を解決するための手段およびその作用・効果】
上記課題の少なくとも一部を解決する本発明の画像処理方法は、
プロセッサにより画像処理を行なう画像処理方法であって、
ハーフトニングの処理を含む画像処理を負担可能なプロセッサの数を問い合わせ、
前記処理しようとしている画像について、該画像の解像度を含む画像の性質を判別し、
該判別した画像の性質と前記問い合わせたプロセッサの数とに基づいて、前記複数のプロセッサに分担する各処理を決定する際、前記解像度が高くなるに従って、前記ハーフトニングに割り当てるプロセッサの割合が高くなるよう決定する
ことを要旨としている。
【０００７】
かかる画像処理方法によれば、単に複数のプロセッサに画像処理を分担されるだけでなく、処理しようとしている画像の性質に応じて、複数のプロセッサに分担する各処理を決定している。したがって、処理対象である画像の性質に即して処理をプロセッサ毎に分担することができ、画像処理を適正に行なうことができる。
【０００８】
こうした画像処理のうち、各プロセッサに分担される処理の少なくとも一つをハーフトニングの処理としており、判別される画像の性質には、画像の解像度が含まれており、解像度が高くなるに従って、ハーフトニングに割り当てるプロセッサの割合を高くしている。ハーフトニングの処理は一般に印刷のための画像処理の中では時間のかかる処理なので、この処理を複数のプロセッサで分担させることは有効である。また、その際、解像度が高くなるに従って、ハーフトニングに要する時間は長くなるので、割り当てるプロセッサの割合を高くすることも有効である。
【０００９】
このほか、ページ単位に区切られた画像において、異なるページの画像の処理を、複数のプロセッサに分担させることも可能である。ページにまたがる画像がなければ、独立に画像処理が可能だからである。
【００１０】
もとより、ハーフトニングを独立に実施可能な範囲を判別可能な構成とすれば、独立してハーフトニングの処理を実施可能な範囲が存在する場合に、該範囲毎に各プロセッサに前記ハーフトニングの処理を分担させるものとしてもよい。一つのページに複数の画像が独立に存在する場合などには、個々の領域毎にハーフトニングを行なうことができるから、これを複数のプロセッサで分担させ、全体として短期間に画像処理を完了することができる。
【００１１】
こうしたプロセッサは、一つの筐体に収納されている必要はなく、たとえば各プロセッサが、ネットワークを介して相互にデータを遣り取り可能に結合されているものとして良い。この場合、各プロセッサに分担する処理の決定は、画像の性質とプロセッサの数と共に、ネットワークを介したデータの遣り取りのオーバーヘッドも考慮して行なうことが望ましい。ネットワークを介したプロセッサの結合は、システムバスなどを直接結合する密結合と比べて、分担処理のオーバーヘッドが大きいからである。
【００１２】
また、上記の画像方法に対応した装置の発明は、
原画像を処理した結果に基づいて、印刷媒体上にドットを形成し、画像を再現する印刷装置であって、
ハーフトニングの処理を含む画像処理を負担可能なプロセッサの数を判別するプロセッサ数判別手段と、
前記処理しようとしている画像について、該画像の解像度を含む画像の性質を判別する画像性質判別手段と、
該判別した画像の性質と前記判別したプロセッサの数とに基づいて、前記複数のプロセッサに分担する各処理を決定する際、前記解像度が高くなるに従って、前記ハーフトニングに割り当てるプロセッサの割合が高くなるよう決定する分担決定手段と、
分担が決定された各プロセッサに画像処理のためのデータを受け渡すデータ受渡手段と、
該受け渡されたデータに基づいて各プロセッサに分担された処理を実行させ、ハーフトニングの処理を含む処理を済ませたデータを受け取って画像を形成する画像形成手段と
を備えことを要旨としている。
【００１３】
かかる構成によれば、高速に印刷を行なうことができる。このとき、プロセッサ数判別手段は、所定の問い合わせ処理を実行することにより、利用かなうプロセッサ数を取得するプロセッサ数取得手段を備えるものとすることができる。こうしたプロセッサ数取得手段は、オペレーティングシステムによってはシステムコールの形態で用意しているものがあり、プロセッサ数を容易に取得することができる。プロセッサ数は、たとえばネットワークを介して結合されたプロセッサでは、常に同じになるものではなく、変動することが考えられる。こうした場合には、プロセッサ数を問い合わせ、その時々に応じてプロセッサに処理を分担させればよい。
【００１４】
こうした印刷装置において、画像形成手段として、インク滴を吐出する印刷ヘッドを備え、この印刷ヘッドを駆動してドットを形成する手段を採用することができる。もとより、ドットは、レーザープリンタで用いられている潜像形成方式や熱転写方式といった構成により形成しても差し支えない。
【００１５】
本発明の画像処理システムは、
ネットワークにより結合されたコンピュータの少なくとも一つが受け取った画像を処理する画像処理システムであって、
前記ネットワーク上で、ハーフトニングの処理を含む画像処理を負担可能なプロセッサの数を判別するプロセッサ数判別手段と、
前記処理しようとしている画像について、該画像の解像度を含む画像の性質を判別する画像性質判別手段と、
該判別した画像の性質と前記問い合わせたプロセッサの数とに基づいて、前記複数のプロセッサに分担する各処理を決定する際、前記解像度が高くなるに従って、前記ハーフトニングに割り当てるプロセッサの割合が高くなるよう決定する分担決定手段と、
分担が決定されたプロセッサがネットワークを介して接続されたプロセッサである場合には、画像処理のためのデータを該ネットワークを介して受け渡すデータ受渡手段と、
該受け渡されたデータに基づいて各プロセッサに分担された処理を実行させる画像処理実行手段と
を備えたことを要旨としている。
【００１６】
この画像処理システムは、ネットワークを介して接続されたプロセッサを用いて画像処理を単に分担するだけでなく、処理しようとする画像の性質を判別して処理を分担させることができる。したがって、ネットワークを介して接続された複数のプロセッサ全体として、効率の良い画像処理を実現することができる。
【００１７】
かかる画像処理システムにおいて、画像処理手段により処理済の画像に基づいて、印刷媒体上にドットを形成し、画像を印刷する印刷手段を設けることもできる。かかる印刷手段を設ければ、システム全体としては、印刷装置として機能することになる。
【００１８】
こうした印刷手段としては、インク滴を吐出する印刷ヘッドを備え、該印刷ヘッドを駆動して前記ドットを形成する構成を考えることができる。もとより、印刷手段は、レーザープリンタで用いられている潜像形成方式や熱転写方式といった構成によりドットを形成するものでも差し支えない。
【００１９】
また、この画像処理システムにおいて、
前記ネットワークの特性を判別するネットワーク特性判別手段を備え、
前記分担決定手段は、前記画像の性質とプロセッサの数に加えて、前記判別したネットワークの特性を考慮して、前記複数のプロセッサに分担する各処理を決定するものとすることができる。
【００２０】
この画像処理システムは、ネットワークを介して接続されたプロセッサを用いて画像処理を単に分担するだけでなく、接続されたネットワークの特性を判別して処理を分担させることができる。したがって、ネットワークを介して接続された複数のプロセッサ全体として、効率の良い画像処理を実現することができる。
【００２１】
本発明は、媒体としても実現可能である。即ち、本発明の記録媒体は、
プロセッサにより画像処理を行なうプログラムまたはその等価物を記録した記録媒体であって、
ハーフトニングの処理を含む画像処理を負担可能なプロセッサの数を問い合わせる機能と、
前記処理しようとしている画像について、該画像の解像度を含む画像の性質を判別する機能と、
該判別した画像の性質と前記問い合わせたプロセッサの数とに基づいて、前記複数のプロセッサに分担する各処理を決定する際、前記解像度が高くなるに従って、前記ハーフトニングに割り当てるプロセッサの割合が高くなるよう決定する機能と
をコンピュータにより読み取り可能に記録したことを要旨としている。
【００２２】
また、この記録媒体において、
前記プロセッサがネットワークを介して結合されている場合に、該ネットワークの特性を判別する機能と、
前記プロセッサの割り当てを決定する際には、前記画像の性質とプロセッサの数に加えて、前記判別したネットワークの特性を考慮して、前記複数のプロセッサに分担する各処理を決定する機能とを
コンピュータにより読み取り可能に記録するものとしても良い。かかる記録媒体は、コンピュータにより読みとられて実行可能となるが、単一のコンピュータが読みとって、複数のプロセッサ用のプログラムに展開しても良いし、各プロセッサ毎に記録媒体を用意しても良い。
【００２３】
【発明の他の態様】
本発明の他の形態としては、複数のプロセッサが広域的にネットワークを介して結合されているものや、電話回線を介して結合されているもの、あるいは逆にシステムバスを共有しているものなどを考えることができる。また、記録媒体は、ＣＤ−ＲＯＭやフレキシブルディスクなどの有体物自体に限定されるものではなく、たとえばコンピュータネットワーク上のサーバに、上記の記録媒体に記録されているプログラムやデータと同等のものをおき、要求に応じて、これをコンピュータに転送する構成としても実現可能である。
【００２４】
【発明の実施の形態】
以下、本発明の実施の形態を実施例に基づいて説明する。
（１）実施例の構成：
図１は、本発明の一実施例である印刷装置の概略構成を示す説明図である。この実施例の印刷装置は、コンピュータ１０とこれに接続されたプリンタ１４から構成されるが、コンピュータ１０には、以下に説明する種々の周辺機器が接続されている。また、コンピュータ１０には、他のコンピュータ１００などや、実質的にコンピュータ機能を有するプリンタ１１０，１２０などや、共有データベースを備えたサーバ１３０などが、コンピュータネットワーク１５０を介して接続されている。なお、ネットワーク１５０としては、インターネットや、イントラネットや、ローカルエリアネットワーク（ＬＡＮ）や、ワイドエリアネットワーク（ＷＡＮ）など、各種ネットワークを適用することができる。
【００２５】
コンピュータ１０は、コンピュータ本体１６に、入力用デバイスとしてのキーボード１８とマウス２０を備えた構成を有し、更に、周辺機器として、プリンタ１４の他、ＣＲＴディスプレイ１２，フロッピィディスクドライブ２４，ハードディスク４１も接続されている。フロッピィディスクドライブ２４は、フロッピィディスク２２の内容を読み取る装置である。本実施例のプリンタ１４は、複数色のインクを収納したインクカートリッジを備え、このインクカートリッジのインクをインク滴の形態でヘッドから印刷用紙に吐出し、インク滴によるインクドットの集合により画像を形成するタイプのプリンタである。もとより、感光ドラムにレーザ光を当てて潜像を作り、トナーで現像して用紙に転写する所謂レーザプリンタであっても差し支えない。ネットワーク１５０に直接接続されたプリンタ１１０，１２０は、ネットワークに直接接続可能な機能を有する他は、プリンタ１４と同一の機能を有するものでも良いし、異なる機種でも差し支えない。なお、プリンタ１４としては、この他、熱転写プリンタなど、各種プリンタを適用することができる。
【００２６】
コンピュータ本体１６は、中央演算処理装置としてのマルチプロセッサボード３０を中心にバスにより相互に接続されたＲＯＭ３１、ＲＡＭ３２、表示画像メモリ３３、マウスインタフェース３４、キーボードインタフェース３５、ＦＤＣ３６、ＨＤＣ３７、ＣＲＴＣ３８、プリンタインタフェース３９およびネットワーク制御回路（ＬＡＮＣ）４０を備える。
【００２７】
マルチプロセッサボード３０には、上記の二つのＣＰＵ５１，５２に加えて、ＣＰＵのローカルバスにより共有されたデュアルポートタイプのレベル２キャッシュメモリ５４やその他のバス調停回路５５が設けられている。この二つのＣＰＵ５１，５２は、同時にキャッシュメモリ５４をアクセスすることが可能であり、実行しようとするプログラムの一部または全部をキャッシュメモリ５４上におくことにより、ＲＯＭ３１，ＲＡＭ３２などへのアクセスを必要としない高速なマルチプロセッシングを可能としている。マルチプロセッシングの詳細については、後述する。
【００２８】
ＲＯＭ３１は、内蔵されている各種プログラム等を記憶する読み出し専用のメモリである。ＲＡＭ３２は、各種データ等を記憶する読み出し・書込み可能なメモリである。表示画像メモリ３３はＣＲＴディスプレイ１２に表示する画像の画像データを記憶するメモリである。マウスインタフェース３４は、マウス２０とのデータ等のやり取りを司るインタフェースである。キーボードインタフェース３５は、キーボード１８からのキー入力を司るインタフェースである。ＦＤＣ３６は、フロッピィディスクドライブ（ＦＤＤ）２４を制御するフロッピィディスクコントローラである。ＨＤＣ３７は、ハードディスクドライブ（ＨＤＤ）４１を制御するハードディスクコントローラである。ＣＲＴＣ３８は、表示画像メモリ３３に記憶される表示画像データに基づいてＣＲＴディスプレイ１２における画像の表示を制御するＣＲＴコントローラである。プリンタインタフェース３９は、プリンタ１４へのデータの出力を制御するインタフェースである。ＬＡＮＣ４０は、ネットワーク１５０との間でデータをやりとりするプロトコル等を制御する回路である。
【００２９】
このコンピュータシステムでは、オペレーティングシステムはＨＤＤ４１に記憶されており、コンピュータ本体１６に電源を投入すると、ＨＤＤ４１のブートブロックに書き込まれたローダに従ってＲＡＭ３２の所定の領域にロードされる。また、プリンタ１４の機種毎に用意されるプリンタドライバは、フロッピィディスク２２に予め格納されており、所定のインストールプログラムを起動することで、フロッピィディスクドライブ２４からコンピュータ本体１６にインストールされる。このインストールされたプリンタドライバは、ＨＤＤ４１に記憶されており、コンピュータ本体１６に電源を投入したときに、オペレーティングシステムに組み込まれ、ＲＡＭ３２の所定の領域にロードされる。
【００３０】
以上説明したハードウェア構成を有するコンピュータシステムによる各種の処理の様子について次に説明する。図２は、コンピュータ本体１６が扱う画像情報から印刷が行なわれるまでの処理を示すフローチャートである。この処理は、コンピュータ本体１６が実行するプリンタドライバの処理として実現されている。
【００３１】
図２に湿した画像処理ルーチンが起動されると、まずこのコンピュータ本体１６に内蔵されたプロセッサであるＣＰＵの数を確定する処理を行なう（ステップＳ２００）。この処理は、オペレーティングシステム（以下、単にＯＳと略す）に用意されたシステムコールを利用して、ＣＰＵの数を問い合わせることにより実現しても良いし、予めＣＰＵの数が決まっている場合には、その数を用いてＣＰＵの数としても良い。この実施例では、標準のＷｉｎｄｏｗｓ／ＮＴワークステーションの使用を前提としているので、ＣＰＵの最大個数は２個である。
【００３２】
次に、ＣＰＵの数が１か否かの判断を行なう（ステップＳ２１０）。ＣＰＵが１個であると判断された場合には、画像を処理する全処理を一つのスレッドに割り当て、１スレッド処理として実行する（ステップＳ２２０）。この場合には、印刷しようとする画像を受け取り、これをラスタライズし、色補正を行ない、プリンタの階調に併せたハーフトニング（Ｈ／Ｔ）の処理を、順次行なうことになる。
【００３３】
他方、マルチプロセッサボード３０上に、２個のＣＰＵが搭載されていると判断された場合には（ステップＳ２１０）、次に処理しようとしている画像の解像度が高解像度か否かの判断を行なう（ステップＳ２３０）。解像度が、たとえば３６０ｄｐｉ程度であれば、高解像度ではないと判断し、次に処理しようとしている画像の印刷条件として、カラー印刷が指定されているか否かの判断を行なう（ステップＳ２４０）。ＣＲＴ１２上ではカラーで表示されていても、印刷はモノクロで行なうよう指定されている場合もあるので、印刷条件を判定するのである。
【００３４】
カラーが指定されていなければ、結局処理しようとしている画像は、低解像度でかつものモノクロ画像と判断できるので、この場合には、二つのＣＰＵ５１，５２が実行するスレッドを次のように設定する。
（１）ラスタライズ処理用のスレッド
（２）色補正およびハーフトニング処理用のスレッド
その上で、両ＣＰＵ５１，５２において各スレッドの処理を起動する（ステップＳ２５０）。一方、処理しようとしている画像が高解像度の画像か、あるいは低解像度であってもカラー画像である場合には、二つのＣＰＵ５１，５２が実行するスレッドを、次のように設定する。
（１）ラスタライズおよび色補正処理のスレッド
（２）ハーフトニング処理用のスレッド
その上で、両ＣＰＵ５１，５２において各スレッドの処理を起動する（ステップＳ２６０）。
【００３５】
以上の処理の後、「ＮＥＸＴ」に抜けて本ルーチンを終了する。ＣＰＵ５１，５２は、その後、設定されたスレッドを、それぞれ実行する。もとより、ラスタライズの処理が終了したものを色補正し、色補正したものをハーフトニングするため、実際の処理は、ラスタライズの処理において画像を所定幅のバンドとして切り出し、以後、このバンドを単位として、各スレッドが順次実行されることになる。
【００３６】
以上説明した本実施例によれば、図３における表１に示すように、画像の性質である印字解像度および印字色と、マルチプロセッサボード３０に搭載されているＣＰＵの数とにより、スレッドに設定する画像処理の内容を異ならせている。これは、実際の画像処理においてＣＰＵの占有率を測定したところ、図４に示すように、解像度が３６０ｄｐｉでは、ラスタライズとハーフトニングがおよそ半々であり、解像度が７２０ｄｐｉでは、ハーフトニングが８０［％］程度のＣＰＵ占有率となったことから、設定したものである。高解像度の画像の場合には、ハーフトニングの処理を単独のスレッドに割り当てており（ステップＳ２６０）、結果的に、ハーフトニングに割り当てられたプロセッサの割合が高くなっていることになる。この結果、本実施例によれば、解像度に応じて適正な割合で二つのスレッドに画像処理を設定することができ、全体として効率よく、画像処理を実行することができる。この結果、ハーフトニングまでの全画像処理を高速に完了することができる。
【００３７】
本実施例では、各スレッド間のデータのやりとりは、デュアルポートのキャッシュメモリ５４を活用して高速に行なわれる。したがって、この実施例では、一連の画像処理をマルチスレッド化し、二つのＣＰＵに分担させることによるオーバーヘッドはほとんど生じず、全体として画像処理を短時間に完了することができる。
【００３８】
次に、本発明の第２の実施例について説明する。第２実施例では、図１に示したシステム全体の構成は同様であるが、画像処理は、コンピュータ１０のみならず、このコンピュータ１０にネットワークを介して接続されたもう人のコンピュータ１００でも実行されるコンピュータ１００は、コンピュータ１０同様、マルチプロセッサボード上に２つのＣＰＵを備え、ＯＳの管理下で、マルチスレッドで処理を実行可能である。即ち、コンピュータ１０とコンピュータ１００とは、ネットワーク１５０を介して接続された状態で一つの画像処理処理システムを構成している。この画像処理システムでは、コンピュータ１００に接続されたスキャナ１６０から画像を取り込み、取り込んだ画像に対して、コンピュータ１０で実行されるアプリケーションプログラムを用いて種々の処理を行ない、処理結果を反映した画像を、プリンタ１４により印字する。なお、アプリケーションプログラムがマルチスレッド対応のプログラムであれば、画像に対するフィルタリングなどもコンピュータ１０とコンピュータ１００とにより、分散処理しても差し支えない。
【００３９】
この実施例において実行される画像処理ルーチンを図５に示す。この画像処理ルーチンは、コンピュータ１０上で実行されていたアプリケーションプログラムが画像の印刷を行なおうとして、プリンタドライバに画像のデータを渡したときに起動される。この処理が起動されると、第１実施例と同様、まず使用可能なＣＰＵ数を確定する処理を行なう（ステップＳ３００）。システムコールを用いた問い合わせ等により、使用可能なＣＰＵの数を確定した後、ＣＰＵが１個か否かの判断を行ない（ステップＳ３１０）、一つであれば、画像処理のすべてを１スレッドとして順次実行するものとする（ステップＳ３２０）。
【００４０】
他方、使用可能なＣＰＵの数が２以上であれば、次にこれら２以上のＣＰＵがネットワークを介して結合されているか否かの判断を行ない（ステップＳ３３０）、ネットワーク１５０を介して結合されている場合には、更にネットワーク１５０の速度が高速か否かの判断を行なう（ステップＳ３４０）。ネットワーク１５０が、数百メガビット／秒程度の高速なものであれば、ネットワーク１５０を介していない場合と同様に、ステップＳ３５０の処理を実行し、ネットワーク１５０が低速の場合には、ステップＳ３６０の処理を実行する。
【００４１】
ステップＳ３５０の処理は、図６表２に示す設定で各スレッドの内容を複数のＣＰＵに割り当ててこれを実行する処理であり、ステップＳ３６０の処理は、図６表３に示す設定で各スレッドの内容を複数のＣＰＵに割り当ててこれを実行する処理である。図６表２は、複数のプロセッサ（ＣＰＵ）がネットワークを介さずに結合されているかあるいはネットワークが高速の場合の各スレッドの割り当てを示している。この場合には、ＣＰＵが２つまでの場合は、第１実施例と同じであり、ＣＰＵが３つになると、ハーフトニング（Ｈ／Ｔ）の処理を３番目のＣＰＵを割り当てる。３番目のＣＰＵがネットワークを介して結合されている場合でもこの割り当ては変わらない。ＣＰＵが４つの場合には、スレッド１とスレッド２とを、現在のページについてのラスタライズと色補正およびハーフトニングとに割り当て、スレッド３とスレッド４とを、次のページについてのラスタライズと色補正およびハーフトニングとに割り当てる。
【００４２】
他方、３番目のＣＰＵが、低速のネットワーク１５０を介して結合されている場合には、表３に示したように、ＣＰＵが３つの場合には、ネットワークを介して結合された３番目のＣＰＵがラスタライズを行ない、コンピュータ１０内のＣＰＵ５１が色補正を、ＣＰＵ５２がハーフトニングの処理を、それぞれ実行するよう各スレッドが割り当てられる。これらの処理の内、ラスタライズの処理が一番軽い処理なので、低速のネットワークを介して結合されたＣＰＵにより実行するものとしておけば、ネットワークの速度がボトルネックとなって全体のパフォーマンスをさほど低下するということがないからである。
【００４３】
４番目のＣＰＵも低速のネットワークを介して結合されている場合には、表３に示すように、高速のネットワークを介して４つのＣＰＵが結合されている場合（表２、最下欄）と比べて、次ページのラスタライズの処理がスレッド２に加えられ、スレッド３には次ページの色補正の処理が割り当てられ、スレッド４には、次ページのハーフトニングの処理が割り当てられる。この結果、コンピュータ１００内のプロセッサは、コンピュータ１０内のＣＰＵ５２によりラスタライズを済ませたデータを受け取り、ハーフトニングまでを行なうことになり、システム全体として高速な動作が可能となる。
【００４４】
以上説明した第２実施例によれば、マルチスレッド、マルチプロセッサにより最大４個のプロセッサが使用可能なハードウェア構成において、ＣＰＵを結合するネットワークの特性を応じて、具体的にはネットワークの転送速度の高低に応じて、割り当ての処理を異ならせており、例え転送速度の低いネットワークが用いられていても、システム全体としてのパフォーマンスを高水準に維持することができる。
【００４５】
なお、ネットワークを介して結合されたＣＰＵが存在する場合でも、更に、画像の性質を考慮して、各スレッドに割り当ての処理の内容を決定することができる。たとえば、図７は、ネットワークが高速である場合の画像の解像度と各スレッドの内容とを示す説明図である。図示するように、解像度または印刷する色がカラーかモノクロかにより、各ＣＰＵに割り当てのスレッドの内容を異ならせることができ、システム全体として、高速な画像処理を実現している。図示は省略したが、ネットワークが低速の場合の割り当て表を同様に予め用意し、ネットワークの速度を判別して切り替えるようにすることもできる。この場合には、画像の性質とネットワークの特性の双方を考慮して、システム全体として最も効率の良い割り当てを実現することができる。
【００４６】
以上、本発明の実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、更に種々なる形態で実施し得ることは勿論である。例えば、ネットワーク１５０がインターネットのような広域的なネットワークであり、各コンピュータがモデムを介して一般回線または専用回線で結合されていても差し支えない。また、無線ＬＡＮなどにも適用可能である。更に、ＣＰＵが５個以上の場合にも適用可能である。実行すべき画像処理としては、解像度変換などの処理が含まれていてもよい。
【図面の簡単な説明】
【図１】本発明の実施例のハードウェア構成を示す概略構成図である。
【図２】本発明の第１実施例における画像処理の概要を示すフローチャートである。
【図３】第１実施例おけるＣＰＵの数とスレッドの内容との関係を示す説明図である。
【図４】各画像処理とＣＰＵの占有率との関係を例示する説明図である。
【図５】本発明の第２実施例における画像処理の概要を示すフローチャートである。
【図６】第２実施例におけるＣＰＵの数とスレッドの内容を、ネットワークの速度毎に示す説明図である。
【図７】ＣＰＵが最大４個までの場合における各スレッドの処理の内容を例示する説明図である。
【符号の説明】
１０…コンピュータ
１２…ＣＲＴディスプレイ
１４…プリンタ
１６…コンピュータ本体
１８…キーボード
２０…マウス
２２…フロッピィディスク
２４…フロッピィディスクドライブ
３０…マルチプロセッサボード
３１…ＲＯＭ
３２…ＲＡＭ
３３…表示画像メモリ
３４…マウスインタフェース
３５…キーボードインタフェース
３６…ＦＤＣ
３７…ＨＤＣ
３８…ＣＲＴＣ
３９…プリンタインタフェース
４０…ＬＡＮＣ
４１…ハードディスク
５１，５２…ＣＰＵ
５４…キャッシュメモリ
５５…バス調停回路
１００…コンピュータ
１１０，１２０…プリンタ
１３０…サーバ
１５０…ネットワーク
１６０…スキャナ
【図１】
0003797013.tif 000002
【図２】
0003797013.tif 000003
【図３】
0003797013.tif 000004
【図４】
0003797013.tif 000005
【図５】
0003797013.tif 000006
【図６】
0003797013.tif 000007
【図７】
0003797013.tif 000008