(57)【特許請求の範囲】
【請求項１】
アプリケーションからパターン描画指示を受けて描画処理を行う画像処理装置において、
前記パターン描画指示にかかるデバイス依存データの前記アプリケーションに応じた拡大率を判別する拡大率判別手段と、
前記拡大率判別手段によって判別された拡大率に応じて前記デバイス依存データを変倍し、描画オブジェクト用パターンデータを生成するパターンデータ生成手段と
を備えていることを特徴とする画像処理装置。
【請求項２】
前記拡大率判別手段は、前記デバイス依存データを走査してデータの繰り返し単位に基づき前記拡大率を判別する
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記拡大率判別手段は、前記アプリケーションと関連付けられている拡張子に応じて前記拡大率を判別する
ことを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記拡大率判別手段は、前記アプリケーションと関連付けられている拡張子に応じて予め登録された拡大率を参照することで前記拡大率を判別する
ことを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記アプリケーションが作成した文書サイズと印刷サイズとが異なる場合に前記デバイス依存データの拡大縮小を行うか否かを示すフラグ、および印刷方向に対する用紙方向に応じて前記デバイス依存データの回転を行うか否かを示すフラグが記述されたデータ群を備えており、
前記パターンデータ生成手段は、前記データ群のフラグに基づいて前記描画オブジェクト用パターンデータを生成を行う
ことを特徴とする請求項１記載の画像処理装置。
【請求項６】
アプリケーションからパターン描画指示を受けて描画処理を行う画像処理方法において、
前記パターン描画指示にかかるデバイス依存データの前記アプリケーションに応じた拡大率を判別する工程と、
判別した前記拡大率に応じて前記デバイス依存データを変倍し、描画オブジェクト用パターンデータを生成する工程と
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、繰り返しパターン等のデバイス依存データの解像度と印刷解像度とに基づきデバイス依存データを変倍してディスプレイ上の見た目と合った印刷を行う画像処理装置および画像処理方法に関する。
【０００２】
【従来の技術】
Windows 等のオペレーティングシステム上で起動する図形処理ソフトウェアにおいて、図形の塗りつぶしにパターンと呼ばれる繰り返し描画単位によって模様形式を選択する機能がある。このパターンの一形式としてドットで構成されたビットマップ形式のデータを使用することができる。
【０００３】
このビットマップ形式のデータは、グラフィックスディスプレイ上で表示するために生成されたものであるため、比較的低解像度である。したがって、プリンタ装置のように高解像度を要求する出力装置において、このようなビットマップのパターンデータによる塗りつぶし描画を行う場合、従来は、このグラフィックスディスプレイ用に用意された低解像度のビットマップデータをそのままプリンタ装置の描画用フレームバッファ等に貼り付けている。
【０００４】
【発明が解決しようとする課題】
しかしながら、このように低解像度のビットマップデータをそのままプリンタ装置の描画用フレームバッファ等へ貼り付けて出力処理を行うと、プリンタ装置の解像度が高解像度であればある程、グラフィックスディスプレイ上に表示されるパターンと比較して縮小されて見えてしまうという問題が生じる。
【０００５】
簡単な例として、グラフィックスディスプレイの解像度に対してプリンタ装置の解像度が２倍である場合を説明する。図１５は従来例を説明する模式図である。すなわち、パターンデータがもともと１００ｄｐｉを仮定して作成されており、プリンタ装置が２００ｄｐｉである場合、同じ６ｄｏｔ×６ｄｏｔで構成されたパターンデータをそのまま貼り付けると、２００：１００の比率でプリンタ装置で印刷された結果は縮小されて見える。つまり、画面上で使用したパターンデータを使用してそのままプリンタ装置で印刷すると、全てのパターンの模様が面積で１／４に縮小された状態で見えてしまう。
【０００６】
また、アプリケーションが描画色として多階調のデータを使用して文書を作成する一方、プリンタ装置側は２値の階調表現能力しかない場合、例えば、ハーフトーンスクリーンを用いた面積階調法によって中間調を表現する方式のプリンタ装置では、ハーフトーンスクリーン自身もある解像度の繰り返し単位のデータで表現されるため、パターンデータによる塗りつぶしにハーフトーンスクリーンを重ね合わせると、両方の解像度が近いとモアレなどの干渉が発生してしまう。
【０００７】
【課題を解決するための手段】
本発明はこのような課題を解決するために成された画像処理装置である。すなわち、本発明の画像処理装置は、ページ内に複数存在するオブジェクトの種類を判別するオブジェクト判別手段と、オブジェクト判別手段で判別されたオブジェクトの種類がデバイス依存データであった場合、そのデバイス依存データの解像度を検出する解像度検出手段と、解像度検出手段で検出した解像度と印刷解像度とに基づきデバイス依存データを変倍して描画処理を施す描画処理手段とを備えている。
【０００８】
このような本発明では、デバイス依存データの解像度と印刷解像度とが異なる場合でも、描画処理手段でデバイス依存データを変倍していることから、デバイス依存データによるディスプレイ上の見た目と印刷とを同等にすることができるようになる。
【０００９】
また、本発明は、入力画像データから所定の解像度を有するスクリーンを用いて面積階調法により中間調画像を形成する画像処理装置において、入力画像データのページ内に複数存在するオブジェクトのうちデバイス依存データの解像度を検出する解像度検出手段と、解像度検出手段で検出した解像度とスクリーンの解像度とに基づいて形成する画像にモアレが発生するか否かを判別するモアレ判別手段と、モアレ判別手段でモアレが発生すると判別された場合、スクリーンの解像度またはデバイス依存データの解像度を変更して描画処理を施す描画処理手段とを備えているものでもある。
【００１０】
このような本発明では、デバイス依存データの解像度と中間調画像を形成する際のスクリーンの解像度とに基づき、形成する画像にモアレが発生する否かをモアレ判別手段で判別しており、モアレが発生すると判別された場合には描画処理手段によってスクリーンの解像度またはデバイス依存データの解像度を変更しているため、これらの解像度に基づくモアレの発生を抑制できるようになる。
【００１１】
また、本発明は、アプリケーションからパターン描画指示を受けて描画処理を行う画像処理装置において、パターン描画指示にかかるデバイス依存データのアプリケーションに応じた拡大率を判別する拡大率判別手段と、拡大率判別手段によって得た拡大率に応じてデバイス依存データから描画オブジェクト用パターンデータを生成するパターンデータ生成手段とを備えているものでもある。
【００１２】
このような本発明では、アプリケーションによってデバイス依存データの拡大を行っている場合に拡大率判別手段がその拡大率を判別し、この判別した拡大率に応じてデバイス依存データから描画オブジェクト用パターンを生成するため、アプリケーションでデバイス依存データの拡大を行っていても、その拡大率を考慮して印刷できるようになり、見た目と印刷とを同等にすることができるようになる。
【００１３】
【発明の実施の形態】
以下、本発明の画像処理装置における実施の形態を図に基づいて説明する。先ず、第１実施形態の説明を行う。一般に、印刷処理システムは、図１に示すように、ホスト装置側とプリンタ装置側とに大別され、ホスト装置側においてはアプリケーション（ソフトウェア）１１、描画ライブラリ１２、プリンタドライバ１３を備え、プリンタ装置側においてはデコンポーザ（ソフトウェア）２１、印刷装置２２を備えている。
【００１４】
アプリケーション１１は、ユーザからの指示に従って、インタラクティブに印刷用の文書を作成する部分であり、このときアプリケーション１１は、描画ライブラリ１２が提供する各種描画関数群を呼ぶことによって描画を実現する。描画ライブラリ１２は、一般にWindows などのホスト装置上のオペレーティングシステムが提供するもので、描画用のドライバとして、グラフィックスディスプレイやプリンタ装置などの各種の出力等のデバイスを選択できる。
【００１５】
このうち、プリンタ装置に対して出力するための装置依存処理部分がプリンタドライバ１３である。プリンタドライバ１３は、描画ライブラリ１２からの描画指示をプリンタの制御言語であるＰＤＬ（ページ記述言語）コマンドに変換する。したがって、アプリケーション１１から描画ライブラリ１２が呼び出されると、プリンタ装置に対して出力指示を出し、ＰＤＬに変換されてからプリンタ装置へ送られることになる。
【００１６】
プリンタ装置のデコンポーザ２１は、ネットワークを介して送られてきたＰＤＬコマンドを解釈して描画処理を実行し、出力用のバッファイメージを生成し、印刷装置２２によってこのイメージを実際に印刷する。
【００１７】
次に、このような印刷処理システムにおいて、パターンデータの描画がどのように行われるかを従来例と比較して説明する。図２は従来の描画手順を説明する模式図である。すなわち、従来のパターンデータの描画は、先ず、アプリケーション１１で作成されたパターンデータを、描画ライブラリ１２およびプリンタドライバ１３からネットワークを介してプリンタ装置へ送り、（１）デコンポーザ２１のパターン管理装置２１ａに登録し、（２）次にそのパターンデータを指定して、（３）図形の描画を実施するという動作によって行われる。ここで、パターンデータをプリンタに登録するのは、一度登録しておくことで、次にいくつかそのパターンを用いた図形描画に対して共通に使用できるからである。
【００１８】
このような従来の描画に対して、第１実施形態では、印刷結果が縮小して見えないように、プリンタ装置内部にパターンデータの拡大処理を行う機能を設けている。つまり、パターンデータをグラフィックスディスプレイの解像度からプリンタ装置の印刷解像度に相当するよう拡大処理を施す。
【００１９】
ここで、拡大処理を施した場合の品質について説明する。図３は拡大率による画像の歪みを説明する図である。すなわち、図３（ａ）に示すように、パターンデータの解像度とプリンタ装置の解像度との比が整数倍（この例では２倍）のときは、拡大時の品質劣化は生じない。しかし、図３（ｂ）に示すように、パターンデータの解像度とプリンタ装置の解像度との比が整数倍にならないとき、例えば１．５倍となるような場合、パターンデータはビットマップデータであるため拡大時に歪みが生じてしまう。
【００２０】
自然画像を表すビットマップデータの場合には、ドットの並びにランダム性があることから、この歪みは見た目で気にならないが、パターンデータは線等で構成される繰り返し模様が多いため、この歪みによってパターン同士の境目がうまく合わないなどの品質上の問題となる。
【００２１】
そこで、第１実施形態では、拡大率を整数倍に丸めることによって、拡大処理時の歪みを回避するようにしている。一般に、ディスプレイの解像度は７２ｄｐｉ〜１００ｄｐｉ程度であり、一方プリンタ装置の解像度は６００ｄｐｉ以上が普通となっている。このことから、拡大率を整数倍に丸めたとしても、見た目では十分な品質を得ることができる。
【００２２】
上記説明では、ディスプレイの解像度がある値に固定されているとして拡大率を設定する例を示したが、実際には、ディスプレイには色々な種類が存在し、かつ、その解像度もデバイスごとに異なっている。
【００２３】
そこで、第１実施形態では、先ず、ホスト装置のディスプレイの解像度、つまり、パターンデータがビットマップで生成された場合のパターンの解像度をプリンタ装置に送信するようにする。なお、ホスト装置上で生成されるパターンデータの解像度が固定であり、その値をプリンタ装置が起動時に初期値として保持している場合には、上記解像度の送信を行う必要はない。
【００２４】
図４は、第１実施形態を説明する構成図である。すなわち、ディスプレイドライバ１４は、ホスト装置のディスプレイ１５における解像度情報を検出してプリンタドライバ１３のパターン情報記憶部１３ａに送り、ＰＤＬコマンド生成装置１３ｂからプリンタ装置側へ解像度情報を送信する。描画の手順としては、（１）パターンデータの解像度指定、（２）パターンデータの指定、（３）指定したパターンデータを描画色として指定、（４）図形描画からなる。
【００２５】
プリンタ装置側は、プリンタドライバ１３からＰＤＬコマンドとして送られるパターンデータの解像度情報を受信すると、この解像度情報をデコンポーザ２１のパターン管理装置２１ａ内にあるパターン解像度記憶部２０１ａに記憶し、それをプリンタ装置の印刷解像度と比較し、プリンタ装置の解像度に相当するために必要な比率を計算して保持する。この時、比率が整数倍とならない場合には、整数倍に丸める処理を行う。
【００２６】
次に、塗りつぶしのためのパターンデータがプリンタドライバ１３からプリンタ装置側へ送られてくると、プリンタ装置のデコンポーザ２１は、ＰＤＬコマンドに基づきオブジェクトがパターンデータ等のデバイス依存データから成ることを判別する。デバイス依存データであることを判別した場合には、プリンタ装置内部において、既に保持されている比率に従ってパターン拡大処理部２０１ｂでパターンデータを拡大し、描画処理装置２１ｂで描画用のパターンデータを生成する。
【００２７】
これにより、ディスプレイ１５の解像度が固定になっていない場合でも、その解像度に対応してプリンタ装置の印刷解像度に相当する比率を計算し、整数倍にしてパターンデータの拡大処理を行うことが可能となる。
【００２８】
なお、第１実施形態では、比率を保持する手段（パターン解像度記憶部２０１ａ）とパターンデータの拡大手段（パターン拡大処理部２０１ｂ）とをプリンタ装置上に実装している例を説明したが、これはホスト装置とプリンタ装置間のトラヒックを考えた場合、拡大してからパターンデータを送信するのは不利になると考えられるためである。ただし、ほとんどパターンデータを送信することがない場合や、トラヒックを無視できる高速な通信手段でホスト装置とプリンタ装置とが接続されている場合には、これらの手段をすべてホスト装置上に実装しておいてもよい。
【００２９】
次に、第２実施形態の説明を行う。一般に、プリンタ装置における印刷機構は、フルカラー（白黒の場合はグレイ）で階調表現能力を持っている場合と、フルカラーでの階調表現能力を持たず、例えば、２値の階調表現能力しか持たない場合など、限られた表現能力した持たない場合の２つに大きく分類される。
【００３０】
２値の階調表現能力しか持たないプリンタ装置の場合、ハーフトーンスクリーンを用いた面積階調法によって中間調表現を行うものがある。ハーフトーン処理を実施する場合、面積階調によって濃度を表現するため、プリンタ装置の印刷解像度に対し、実際に表現できる解像度は落ちる。
【００３１】
このようにハーフトーンによる疑似階調描画を行った場合の実質的な解像度は、ハーフトーンスクリーンの細かさによって決定され、この細かさをスクリーン線数と呼ぶ。したがって、ハーフトーンを用いて中間調を表現した場合、スクリーン線数の細かさを基本とした繰り返しデータによって塗り潰しなどの色付けが行われる。つまり、ある色を表現するハーフトーンのデータは、上記第１実施形態と同様にパターンとして捕らえることができる。すなわち、線数によって繰り返し単位が定義されているパターンデータとして考えられる。
【００３２】
このようなハーフトーンスクリーンを使用したシステムにおいて、上記説明した第１実施形態のようなパターンデータによる塗りつぶし描画、つまりハーフトーンスクリーンとパターンデータとの重ね合わせによる描画を実施した場合、パターンデータとスクリーン線数とによる干渉、すなわち「モアレ」を発生することがある。
【００３３】
ハーフトーンスクリーンに関するモアレは、参考文献「ポストスクリプトスクリーニング」（ＭＤＮ発行、インプレス発売）にあるように、規則性のある２つの描画図形の周期が類似している場合に発生する模様のことで、その周波数は、線数Ａ−線数Ｂによって表される。例えば、パターンデータが解像度２００ｄｐｉの斜線模様で、このパターンデータの描画色をハーフトーン処理する際のスクリーンの間隔、線数がこれに近い１９０線／ｉｎｃｈでは、モアレの周波数は１０線／ｉｎｃｈとなり、周期は１／１０ｉｎｃｈとなるので２．５４ｍｍとなる。つまり、２．５４ｍｍを繰り返し単位とする干渉縞が発生する。ここで、この２．５４ｍｍの周期の干渉縞が視覚的に目立つかどうかによって、モアレと呼ばれる状態かどうか判断できる。
【００３４】
実際には、パターンの線模様には、縦、横、斜めなどの角度が付けられ、さらに、ハーフトーンスクリーン側も色成分ごとに角度が付けられて定義されている場合が多いので、その場合にはこれらの要素をすべて含めたモアレ周波数の計算を実施する。
【００３５】
以上は、パターンデータとハーフトーンスクリーンとの干渉によるモアレ発生のメカニズムとモアレ周期の計算方法の一例であるが、第２実施形態では、上記説明した第１実施形態の構成に加え、このモアレ発生予測を適用し、モアレが発生しないよう回避する機能を備えている点に特徴がある。
【００３６】
パターンデータの解像度は、上記第１実施形態で説明したようにプリンタドライバ等のクライアント側から指定された解像度であるが、ハーフトーンスクリーンの線数との間での干渉によるモアレが発生するかどうかは、このパターンデータの解像度によるものではなく、パターンの模様を構成している線の間隔による解像度で考えた方がより精度の高いモアレ発生の判定を行うことができる。
【００３７】
これは、パターンデータとハーフトーンスクリーンとの干渉は、両者の繰り返し単位の周波数の差によって生じるものと考えられることに基づいている。このパターンの模様における線間隔の解像度のことをパターン模様の線数と呼ぶことにする。
【００３８】
図５の左側の例では、３００ｄｐｉの解像度のパターンデータにおいて、パターン６ｄｏｔ中に線が２本表現されていることから、線数としては１／３となって１００線／ｉｎｃｈ相当となると考えることができる。図５の右側の例では、パターン６ｄｏｔ中に線が３本表現されていることから、線数としては１／２となって１５０線／ｉｎｃｈ相当となると考えることができる。このパターンデータの実際の解像度から、パターン模様の線数への変換倍率のことを、パターン模様の線数変換倍率と呼ぶことにする。
【００３９】
さらに、上記第１実施形態で説明したように、解像度比に合わせたパターンデータの拡大処理を実施するため、入力されたパターンデータの解像度が３００ｄｐｉ、印刷機構の解像度が６００ｄｐｉの場合、パターンデータを描画時に２倍に拡大処理することが行われる。この結果、拡大後のパターンデータの解像度は見かけ上、この拡大倍率２倍の逆数である１／２倍に相当すると考えられる。
【００４０】
以上のことより、第２実施形態においては、パターン模様の線数およびパターンデータの拡大率の逆数を掛け合わせた結果が印刷出力画像に見られるパターンの模様の線数と考えられる。このようにして求められた最終結果をパターンの見かけの線数と呼ぶ。
【００４１】
したがって、図５の例でのパターンデータの見かけの線数は、左側の例では１００×１／２＝５０線／ｉｎｃｈ、右側の例では１５０×１／２＝７５線／ｉｎｃｈと計算される。ここまで計算した最終結果と、ハーフトーンスクリーンの線数とを比較する。さらに、ここでの比較は、求めたパターンデータの見かけの線数とハーフトーンスクリーンの線数との差を単純に求めるのではなく、いずれか線数の大きい方を小さい方で割って剰余を求め、この剰余によって判断する。
【００４２】
剰余を使用するのは、干渉は両者の周波数が近い場合に発生することは前述の通りであるが、両者の周波数が極端に離れていても、その高調波成分によって干渉を起こすことも考えられるからである。
【００４３】
したがって、ハーフトーンスクリーンの線数が例えば１１０線／ｉｎｃｈで、パターンの見かけの線数が５０線／ｉｎｃｈである場合、その剰余は１０線／ｉｎｃｈ、同様にパターンの見かけの線数が７５線／ｉｎｃｈである場合、その剰余は３５線／ｉｎｃｈとなる。
【００４４】
仮に、線数の差が１０線／ｉｎｃｈより大きければ干渉によるモアレが目立たないと判断される場合、図５左側の例であるパターンの見かけの線数が５０線／ｉｎｃｈの場合にはモアレあり、右側の例であうパターンの見かけの線数が７５線／ｉｎｃｈの場合にはモアレなしと判断される。つまり、パターンの見かけの線数とハーフトーンスクリーンの線数の剰余からモアレが発生するかどうかを判別する。
【００４５】
ただし、ここでの剰余は、数学の剰余とは少々異なる。例えば、ハーフトーンスクリーンの線数が１９５線／ｉｎｃｈでパターンの見かけの線数が１００線／ｉｎｃｈであった場合、数学的には商が１で剰余が９５である。しかし、実際には両者の線数の差は５でしかないため、この５という数値で評価すべきである。これは、剰余にマイナスを認め、絶対値で評価することで解決できる。例えば、次のように計算をすればよい。
（１）大きい線数（例では１９５）を小さい線数（例では１００）で割って商と剰余を求める。例では、商が１、剰余が９５である。
（２）もし、剰余が小さい線数の１／２よりも大きな場合には、大きい線数−（小さい線数×（商＋１））＝−５で、マイナスの剰余を求め、その絶対値をとって５という数値を求め、この数値でモアレが発生するかどうかを評価する。
【００４６】
ここでは、パターンの見かけの線数をパターンデータから求めることができる場合について説明したが、パターンデータからその見かけの線数を求めることが困難な模様の場合、もしくは処理速度の問題から、単純にパターンデータの解像度とスクリーン線数との比較結果からある程度モアレの発生を予測することもできる。
【００４７】
次に、このようなアルゴリズムを用いてモアレのあり、なしを判断した上で、それを回避する例について説明する。
【００４８】
図６は、第２実施形態を説明する構成図である。なお、ここでは、図６に示す構成がプリンタ装置側に設けられているものとして説明する。すなわち、このプリンタ装置においては、ハーフトーンスクリーンＨＳを複数持っており、切り替えて使用する機能を備えている。これは、描画対象である図形データやイメージデータなどの種別によって最適なハーフトーンスクリーンＨＳを選択するためにも使用されるが、モアレを防ぐために切り替えて使用するという用途に用いることもできる。
【００４９】
このハーフトーンスクリーンＨＳの切り替えは、ハーフトーン管理部２３によって管理され、現在このプリンタ装置が持っている切り替え可能なハーフトーンスクリーンＨＳの種類についての情報を提供し、パターン拡大処理部２０１ｂから切り替えの指示があった場合にハーフトーンスクリーンＨＳの切り替え処理を実施する。
【００５０】
また、パターン拡大処理部２０１ｂは、第１実施形態と同様、パターン解像度記憶部２０１ａから与えられたパターンデータの解像度情報とプリンタ装置の印刷機構の解像度情報とを比較して整数倍に丸めた上で拡大処理を実施している。これに加え、ハーフトーン処理を実施するプリンタ装置において、ハーフトーン管理部２３から与えられる現在設定のハーフトーンスクリーンＨＳの線数情報とパターンデータの見かけの線数情報とを比較してモアレが発生するかどうかを判断し、モアレ発生ありと判断した場合、ハーフトーンのスクリーン線数が変更可能な印刷機構の場合はそのスクリーン線数を変更するか、もしくはパターンデータの拡大率を変更することによってモアレなしの状態となるようにする。
【００５１】
第１実施形態と同様にパターンデータの拡大率を変更する場合、画面上と印刷結果との見た目、つまりパターンの模様の縮尺が若干異なってくるが、モアレが発生することに比べれば見た目の違和感は少ないものとなる。
【００５２】
実際には、パターン拡大処理部２０１ｂに図７に示すような管理テーブルを設ける。すなわち、管理テーブルは、パターンデータ解像度、パターン模様の線数変換倍率、パターンデータの印刷拡大率、パターンデータの見かけの線数、スクリーン線数（複数）によって構成される。
【００５３】
例えば、図５に示す例の場合、パターンデータの解像度は３００ｄｐｉ、パターンデータの印刷拡大率は印刷装置が６００ｄｐｉの場合には２倍となる。また、パターン模様の線数倍率は、図５の左側の例の場合は１／３倍で、右側の例の場合は１／２倍となる。以上のデータから最終的なパターンの見かけの線数は以下のように計算によって求められる。
【００５４】
パターンの見かけの線数＝パターンデータ解像度×パターン模様の線数変換倍率×１／パターンの印刷拡大率
【００５５】
すなわち、図５の左側の例では、３００×（１／３）×（１／２）で５０線、図５の右側の例では、３００×（１／２）×（１／２）で７５線となる。このようなパターンの見かけの線数に対して、複数のスクリーン線数の各々でモアレが発生するか否かを図７に示すような管理テーブルとして持っている。
【００５６】
以上は、すべて計算に基づいて管理テーブルを作成した上で、実際の動作の際にこの管理テーブルを参照することによってモアレの有無を判断しているが、モアレが発生するかどうかは人間の見た目によって評価される場合が多く、パターンの模様の種類によってモアレの発生度合いが異なる場合もあり、どのような場合にモアレが発生するか、計算で求めることが難しい場合もある。
【００５７】
このような場合には、図８に示すように、予めＩＤ番号が付されたパターンデータの種別毎に複数の管理テーブルを用意しておき、実際の印刷結果によって評価したモアレの管理テーブルを使用することで、より精度の高い判断を行うことができるようになる。つまり、複数の管理テーブルを用いれば、パターンの種別毎にモアレの発生の有無を細かく判断することが可能となる。
【００５８】
次に、第３実施形態を説明する。第３実施形態では、ホスト装置で起動するアプリケーションの内部でパターンデータの解像度変換を行っている場合の対応について説明する。すなわち、上記説明したように、ホスト装置、もしくはプリンタ装置においてパターンデータの拡大を行うようにした場合、アプリケーションで行われる解像度変換（拡大）と相まって過大に拡大してしまう結果を招く。
【００５９】
そこで、本実施形態では、アプリケーション側で拡大処理を実施しているかどうかを判別する判別手段を設け、アプリケーションが実施している拡大率を勘案した上で必要な拡大率を決定するようにしている。
【００６０】
具体的には、アプリケーションで指定されるパターンデータをスキャンし、ビットデータの０もしくは１の並びを計数して、それぞれのデータが最低何回繰り返されているかを求める。例えば、図９に示すようなパターンデータがアプリケーションで指定された場合、このデータは００００１１００００１１のように並んでいることが分かる。
【００６１】
これを左から順にスキャンした場合、０が４回、１が２回、０が４回、１が２回の順に繰り返されている。この中で最低の繰り返し単位を探すと２回となる。ここから、このパターンデータは２倍されたものであると判別する。なお、０が４回連続するのは、拡大前のデータにおいて、元々０が２回連続していたため、それを２倍することで４回連続しているものと推定できる。
【００６２】
つまり、すべてのデータをスキャンし、連続しているデータの最低回数を求めることで、アプリケーションでのパターンデータの倍率が分かることになる。そして、ホスト装置において、ディスプレイの解像度が９６ｄｐｉ、プリンタ装置の印刷解像度が６００ｄｐｉであった場合、６００÷９６÷２を整数値に丸めた３が最終的に必要なパターンデータの拡大率ということになる。
【００６３】
ここで、プリンタドライバ側にこの判定手段および修正機構を設けるのであれば、パターンデータの解像度指定のコマンドを送信する際に、アプリケーション側での倍率が２倍であればパターンデータの解像度を３倍にして指定すればよい。
【００６４】
一方、プリンタ装置側にこの判別手段を設ける場合、パターンデータの解像度とプリンタ装置の印刷解像度との比率を求める際、求めた比率をこの値（３）で割ればよい。したがって、プリンタドライバ側、プリンタ装置側のいずれであってもこの判別手段を設けることが可能である。
【００６５】
なお、アプリケーションから出力されるパターンデータが、例えば”００００００００”のようなパターンであった場合、”０”というパターンを８倍しているのか、”００”というパターンを４倍しているのかの判別ができない。
【００６６】
そこで、パターンについての特性から倍率を想定することも考えられる。パターンの特性には以下のようなものが挙げられる。
１…アプリケーション毎のパターンの拡大率は一定である（少なくとも、同じプリンタに対しては）。
２…最小の画素の繰り返しよりはパターンの拡大率の方が小さい。すなわち、”００１１”というパターンがあった場合、最小の画素の繰り返しが２であることから、パターンの拡大率は２倍より小さい。
３…パターンは横方向だけではなく縦方向についても拡大される可能性がある。例えば、
０１
１０
というパターンを２倍に拡大すると、
００１１００１１
００１１００１１
１１００１１００
１１００１１００
のようになる。
【００６７】
これらの特性より、次の方法でより確実なパターンの拡大率判定を行うこともできる。
１…アプリケーション毎にパターンの拡大率を登録し、ここで登録された値をパターンの拡大率とする。
２…パターン処理毎に最小繰り返し単位を判定し、パターン拡大率候補とする。
３…アプリケーションが判別できる場合は、そのアプリケーションに対応して登録されているパターン拡大率と比較し、登録値以下の場合、新しいパターン拡大率とする。
４…アプリケーションが判別できない場合は、予め設定されている不明アプリケーションのパターン拡大率とする。なお、不明アプリケーションのパターン拡大率はジョブ毎にクリアされる。
５…メジャーなアプリケーションでは、予め分かっているパターン拡大率を登録しておく。
【００６８】
図１０は、パターンの拡大処理装置を説明する構成図である。すなわち、このパターンの拡大処理装置では、アプリケーション１１より指定されたパターンデータから、パターンの繰り返し周期を判定し、適切なパターン拡大率を決定する構成をプリンタドライバ１３内で実現している。
【００６９】
アプリケーション１１は、プリンタドライバ１３に対して印刷指示を行う。印刷指示は次の２つから構成される。
１…ページの表示内容を構成する描画指示
２…アプリケーション情報を含む非描画指示
【００７０】
また、描画指示は、説明の便宜上、次の２種類に分けるものとする。
１…パターン登録以外の描画指示
２…パターン登録指示
【００７１】
アプリケーション１１から出力された印刷指示は印刷指示種判定部１３１に送られ、印刷指示の種別に応じて処理が切り替えられる。すなわち、パターン登録以外の描画指示の場合には、そのままプリンタ２０へ送られる。また、非描画指示はアプリケーション種判定部１３２に送られ、パターン登録指示は繰り返し周期判定部１３３に送られる。
【００７２】
アプリケーション種判定部１３２は、判定したアプリケーション種別をアプリケーション別パターン周波数記録部１３４に送る。一方、繰り返し周期判定部１３３では、判定した繰り返し周期をアプリケーション別周波数記録部１３４に送る。また、登録されたパターンデータはパターン拡大部２０１ｂに送られる。
【００７３】
アプリケーション別パターン周波数記録部１３４は、判定されたアプリケーション種別に応じてパターンの倍率をパターン拡大処理部２０１ｂに送る。パターン拡大処理部２０１ｂは、パターンの倍率に従ってパターンデータを拡大し、パターンデータのプリンタ登録としてプリンタに送付する。
【００７４】
ここで、アプリケーション種判定部１３２での処理、繰り返し周期判定部１３３での処理、およびパターン拡大処理部２０１ｂでの処理を順に説明する。図１１はアプリケーション種判定部での処理フローチャートである。
【００７５】
先ず、ステップＳ１０１では、印刷対象となるデータのドキュメント名が取得可能か否かを判断する。ここでドキュメント名が取得できない場合にはステップＳ１０６へ進み、不明アプリケーションとする。一方、ドキュメント名が取得可能である場合はステップＳ１０２へ進み、そのドキュメント名の取得を行う。
【００７６】
次いで、ステップＳ１０３では、取得したドキュメント名に付されている拡張子を取り出す。そして、ステップＳ１０４において、取り出した拡張子がアプリケーションに関連付けられているか否かを判断する。関連付けられている場合には、ステップＳ１０５へ進み、その関連付けられているアプリケーション名を取得する。
【００７７】
一方、拡張子がアプリケーションに関連付けられていない場合はステップＳ１０６へ進み、不明アプリケーションとする。このような処理によって、アプリケーション種判定部は、アプリケーション名を取得できるようになる。
【００７８】
次に、図１２のフローチャートに沿って繰り返し周期判定部での処理を説明する。先ず、ステップＳ２０１では、拡大率Ｋの初期値を無効値とし、ステップＳ２０２において、パターンデータの最左点の色（データ）を画素値Ａの初期値とする。また、ステップＳ２０３では、繰り返し数Ｎの初期値を１にする。
【００７９】
次いで、ステップＳ２０４では、パターンデータのＸ方向に次の点があるか否かを判断し、ある場合にはステップＳ２０５で次の点の色（データ）がＡと同じか否かを判断する。ここで同じである場合はステップＳ２０６へ進み、繰り返し数Ｎに１を加えてステップＳ２０４へ戻る。
【００８０】
ステップＳ２０５で次に点の色（データ）がＡと同じでない場合はステップＳ２０７へ進み、Ｋが有効値か否かを判断する。最初にステップＳ２０７へ進む場合は、ステップＳ２０１でＫが無効値に初期化されていることからステップＳ２０８へ進み、Ｎの値をＫに代入する。そして、Ｋが１でない場合にはステップＳ２０４へ戻り、Ｋが１である場合にはステップＳ２１４へ進んでＫ＝１をパターンの拡大率とする。
【００８１】
ステップＳ２０４へ戻った場合には、ステップＳ２０５〜Ｓ２０６においてＸ方向に沿って次の繰り返し数Ｎを計数する。次いで、ステップＳ２０７へ進むと、Ｋは有効値となっていることからステップＳ２０９へ進み、ＫとＮとの最大公約数をＫの値とする。そして、Ｋが１でない場合にはステップＳ２０４へ戻り、Ｋが１である場合にはステップＳ２１４へ進んでＫ＝１をパターンの拡大率とする。
【００８２】
Ｘ方向に次の点が無くなった場合にはステップＳ２１１へ進み、次の行があるか否かを判断する。次の行がある場合には、次の行についてもステップＳ２０２〜Ｓ２０９を繰り返し、Ｋの値を求める。また、Ｘ方向（横方向）について全て処理が終了したら、ステップＳ２１３においてスキャン方向を入れ換え、Ｙ方向（縦方向）について先と同じ処理を繰り返す。これによって、パターンデータの拡大率Ｋを求めることができる。
【００８３】
求められた拡大率Ｋは、図１０に示すアプリケーション別パターン周波数記録部１３４に送られ、アプリケーション種判定部１３２で判定されたアプリケーションと対応して記録されることになる。
【００８４】
次に、図１３のフローチャートに沿ってパターン拡大処理部での処理を説明する。先ず、ステップＳ３０１では、パターンの倍率をＫとする。このＫとは、先に説明した繰り返し周期判定部での処理（図１２参照）で得られた拡大率Ｋに相当するものである。
【００８５】
次いで、ステップＳ３０２では、画面とプリンタとの解像度比をＳとして計算する。次に、ステップＳ３０３では、Ｓ／Ｋを整数化した値をＭとして計算する。すなわち、このＭは、アプリケーションでのパターンデータの拡大を考慮して、画面上でのパターンデータの表示と、プリンタでのパターンデータの印刷との見た目を同等にするため、アプリケーションから出力されたパターンデータの倍率を示す値となる。
【００８６】
そして、ステップＳ３０４において、登録パターンの縦横をＭ回繰り返してプリンタ登録用パターンとする。つまり、登録パターンを縦横にＭ倍してプリンタ登録用パターンを生成する。これにより、プリンタでパターンデータを出力する場合には、このプリンタ登録用パターンを用いることで、画面上の見た目とほぼ等しい印刷出力を得ることができるようになる。
【００８７】
以上説明した各処理によって、アプリケーションに対応した適切なパターン拡大率を決定し、プリンタに拡大したパターンデータを登録することが可能となる。
【００８８】
なお、プリンタ装置は一度販売されてユーザの手に渡ってしまうと、後の仕様変更は難しい。変更が後から可能なのはプリンタドライバで、これは後からユーザに配布することは比較的容易である。
【００８９】
ここで問題となるのが、ホスト装置とプリンタ装置との双方で上記説明した判別手段を備えていると、正確な拡大率を求めることができない。そこで、図１４に示すように、パターンデータやダウンロードフォントデータ等の解像度数値、プリンタ側での解像度変換を実施するか否か、プリンタ装置側で用紙が足りないなどの理由で用紙が縦置きから横置きに変わるなどの用紙回転が行われた場合に、パターンデータやダウンロードフォントデータもプリンタ装置側で回転するか否か、用紙の拡大、縮小に従ってパターンデータやダウンロードフォントを拡縮するか否かなどについての設定フラグをプリンタ装置上に設け、これをプリンタ制御コマンドによって予め設定しておく。
【００９０】
これにより、機能の選択を行って、ホスト装置とプリンタ装置との双方で判別手段を備えている場合の機能の切り分けを行うことが可能となる。また、プリンタ装置に何らかの問題があった場合、もしくは後からより良い処理方法が考えられた場合、プリンタドライバのみを新しくすることができ、機能の修正等を容易に行うことができるようになる。
【００９１】
なお、上記説明した実施形態では、パターンデータを例としたが、本発明はこれに限定されず、出力を行うデバイス（ディスプレイ、プリンタ、ファクシミリ等）の解像度に依存するデータであればパターンデータ以外であっても適用可能である。
【００９２】
【発明の効果】
以上説明したように、本発明の画像処理装置によれば次のような効果がある。すなわち、グラフィックスディスプレイ上で生成したパターンデータをプリンタ装置で印刷しても、見た目（いわゆる、WYSIWYG ）を損なうことなく処理することが可能となる。また、この際、パターンデータの拡大によって生じる歪みを抑制できるようになる。さらに、ハーフトーンスクリーンにより階調変換を行うプリンタ装置においても、パターンデータとハーフトーンスクリーンデータとの干渉を考慮してモアレの発生を防止することが可能となる。
【図面の簡単な説明】
【図１】  一般的な印刷処理システムを説明する模式図である。
【図２】  従来の描画手順を説明する模式図である。
【図３】  拡大率による画像の歪みを説明する図である。
【図４】  第１実施形態を説明する構成図である。
【図５】  パターンの線数と見かけ線数とを説明する図である。
【図６】  第２実施形態を説明する構成図である。
【図７】  管理テーブルを説明する図である。
【図８】  複数の管理テーブルを説明する図である。
【図９】  パターンデータの拡大率の判別を説明する図である。
【図１０】  パターンの拡大処理装置を説明する構成図である。
【図１１】  アプリケーション種判定部での処理を説明するフローチャートである。
【図１２】  繰り返し周期判定部での処理を説明するフローチャートである。
【図１３】  パターン拡大処理部での処理を説明するフローチャートである。
【図１４】  設定フラグの例を示す図である。
【図１５】  従来例を説明する図である。
【符号の説明】
１１…アプリケーション、１２…描画ライブラリ、１３…プリンタドライバ、１４…ディスプレイドライバ、１５…ディスプレイ、２１…デコンポーザ、２２…印刷装置
【図１】
0003726527.tif 000002
【図２】
0003726527.tif 000003
【図３】
0003726527.tif 000004
【図４】
0003726527.tif 000005
【図５】
0003726527.tif 000006
【図６】
0003726527.tif 000007
【図７】
0003726527.tif 000008
【図８】
0003726527.tif 000009
【図９】
0003726527.tif 000010
【図１０】
0003726527.tif 000011
【図１１】
0003726527.tif 000012
【図１２】
0003726527.tif 000013
【図１３】
0003726527.tif 000014
【図１４】
0003726527.tif 000015
【図１５】
0003726527.tif 000016