画像処理装置及び画像処理方法
【課題】図形の輪郭からエッジデータを生成するレンダリング処理に係るデータ処理を、入力された図形に応じて処理手順(アルゴリズム)を適切に切り替えて行えるようにする。
【解決手段】入力された図形(オブジェクト)を図形種別判定処理により単純図形系と複雑図形系とに分類し、単純図形系についてはタイル処理によるエッジ検出処理を行い、複雑図形系についてはスキャンラインによるエッジ検出処理を行うように、図形の分類に応じて処理手順を適切に切り替えて、レンダリング処理に係るエッジ情報を生成できるようにする。
【解決手段】入力された図形(オブジェクト)を図形種別判定処理により単純図形系と複雑図形系とに分類し、単純図形系についてはタイル処理によるエッジ検出処理を行い、複雑図形系についてはスキャンラインによるエッジ検出処理を行うように、図形の分類に応じて処理手順を適切に切り替えて、レンダリング処理に係るエッジ情報を生成できるようにする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理方法に関し、特にレンダリング処理等に適用可能なエッジ情報生成に係る画像処理技術に関する。
【背景技術】
【0002】
従来から図形を描画するために図形が持つ座標情報等から図形の輪郭情報(エッジ情報とも呼ぶ)を抽出し、該輪郭情報に基づいて画像を形成するレンダリング手法は一般に広く利用されている(例えば、特許文献1、特許文献2、特許文献3、特許文献4)。また、輪郭情報は直線で表現されるが該直線を表現するための手法としてDDA(Digital Differential Analyzer)アルゴリズムが知られている(非特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平04−170686号公報
【特許文献2】特開平08−72317号公報
【特許文献3】特開2005−267290号公報
【特許文献4】特開2007−122188号公報
【非特許文献】
【0004】
【非特許文献1】David Rogers, "Procedural Elements for Computer Graphics", McGraw-Hill Education
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、レンダリング処理において常に高速に描画処理が実行できることは重要な要件であるが、実際にレンダリング処理に要する時間は、図形の種類や数に依存して変化するためこれを実現することは容易ではない。従来のレンダリング処理では図形の種類によらずデータ処理を行うための手続き(アルゴリズム)は固定されており、レンダリング処理の高速化という観点では不十分な構造であった。
本発明は、このような事情に鑑みてなされたものであり、入力された図形に応じてアルゴリズムを適切に切り替え、レンダリング処理に係るデータ処理を行えるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本発明の画像処理装置は、レンダリング処理を行う画像処理装置であって、オブジェクトの情報を入力する入力手段と、前記入力手段より入力されたオブジェクトの情報に基づいて、前記オブジェクトの図形種を分類する分類手段と、前記分類手段により分類された図形種に応じて処理手順を切り替え、前記レンダリング処理に係るエッジ情報を生成する処理手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、入力されたオブジェクトの情報に基づいて処理手順を切り替えることで、オブジェクトに応じた適切な処理手順で処理を行ってエッジ情報を生成することができる。これにより、オブジェクトに応じた適切な処理手順でレンダリング処理に係るデータ処理を実行することができ、レンダリング処理の高速化を実現することができる。
【図面の簡単な説明】
【0008】
【図1】レンダリング処理の一例を示すフローチャートである。
【図2】スキャンラインによるエッジ情報抽出処理を説明するための図である。
【図3】エッジ情報抽出処理の詳細を示すフローチャートである。
【図4】プリントジョブにおけるデータ処理時間の変化の一例を示す図である。
【図5】本発明の一実施形態に係る画像処理装置の構成例を示す図である。
【図6】本実施形態に係る画像処理装置の動作例を示すフローチャートである。
【図7】第1の実施例におけるタイルベースのエッジ検出処理を説明するための図である。
【図8】第1の実施例におけるエッジ情報抽出処理を示すフローチャートである。
【図9】第1の実施例におけるエッジ情報を格納したデータ構造体を示す図である。
【図10】第2の実施例における図形種識別情報を説明するための図である。
【図11】第2の実施例におけるエッジ情報抽出処理の流れを示す図である。
【図12】第2の実施例における図形(ID−2系)の例を示す図である。
【図13】第2の実施例におけるエッジ情報抽出処理の一例を示すフローチャートである。
【図14】第2の実施例における図形(ID−3系)の例を示す図である。
【図15】第2の実施例におけるエッジ情報抽出処理の一例を示すフローチャートである。
【図16】第2の実施例を適用した場合の処理時間の一例を示す図である。
【図17】各アルゴリズムでのエッジ情報抽出処理の速度特性を示す図である。
【図18】第3の実施例における特性データベースに格納するデータ例を示す図である。
【図19】プリントシステムの構成例を示す図である。
【図20】第3の実施例における図形種解析等の処理を説明するための図である。
【図21】第3の実施例における区間幅拡張を説明するための図である。
【図22】第3の実施例における図形種解析等の処理の一例を示すフローチャートである。
【図23】第3の実施例における区間幅内にあるオブジェクトを説明する図である。
【図24】第3の実施例におけるエッジ情報抽出処理の流れを示す図である。
【図25】本実施形態における画像処理装置を実現可能なコンピュータ機能を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態を図面に基づいて説明する。
まず、レンダリング処理について説明する。
図1は、レンダリング処理の一例を示すフローチャートであり、図形入力からエッジ情報を抽出する様子を示している。図示のようにレンダリング処理を行うレンダリング処理部(レンダラー)に入力される図形の種類は多様に存在している。図1に示す処理では、入力された図形の座標情報等からエッジ検出処理によりエッジ(輪郭)を検出して、図形を構成する線情報(エッジ情報)を生成する。例えば、図2は三角形の図形からエッジを抽出する様子を示しており、三角形に対してスキャンライン(水平線)が交差している状態であって、矢印で示すように2つのエッジが検出されている例を示している。この処理の概要を簡単に述べると、まず、入力された図形データをY方向にソートして、次にソートされた図形データに順次アクセスしX座標のデータ列を集める。このときに、X座標値の小さいものから大きいものへ昇順にデータがアクセスできるようにデータの参照テーブル等を作成する。画像を形成するための処理では、X方向スキャンを水平方向へ走らせ、これを縦方向(Y方向)へと繰り返すことで該図形のエッジ情報を抽出していく。
【0010】
図3は、入力された図形の座標情報等からエッジ情報を抽出する処理の詳細を説明したフローチャートである。処理を開始すると、レンダリング処理部は、まず、ステップS11にて、入力されたデータをY方向にソートしデータを格納して、次にステップS12にて、スキャンラインのY方向へのループ処理を開始する。ステップS13にて、レンダリング処理部は、現在のスキャンラインにかかる図形データを拾い出し、かつ、スキャンライン上に存在するエッジ情報(カレントのエッジデータリスト)を更新する必要があるかないかを判断する。判断の結果、更新の必要がなければステップS17へ進み、更新の必要があればステップS14へ進む。ステップS14にて、レンダリング処理部は、カレントのエッジデータリストに対するエッジの追加又は削除の判断を行う。新たに図形の輪郭にスキャンラインがかかった場合等、エッジを追加する場合には、レンダリング処理部は、ステップS15にて追加すべきデータをX方向へ昇順となるように追加する。ここで追加されたデータはノードと呼ばれ、それぞれがリスト上に連結される。一方、図形の輪郭からスキャンラインが外れた場合にはステップS16に進み、レンダリング処理部は、エッジデータリストから該当するエッジデータを適宜、削除する。
【0011】
ステップS17より、レンダリング処理部は、現在のスキャンラインにおけるX方向のエッジ情報を抽出するためのループ処理を行う。ステップS18にて、レンダリング処理部は、エッジデータリスト上の各ノードに順次アクセスしていく。エッジの情報はカレント(Y値)のスキャンラインにおけるデータ値(DA値)を線分の傾き等の情報から更新するよう構成されており、該データの更新処理はステップS19にて実行される。続いて、レンダリング処理部は、ステップS20にて、X方向のループ処理のためのカウンタ減算処理を行い、ステップS21にてX方向ループ処理の終了の有無を判定する。判定の結果、X方向ループ処理を終了しない場合にはステップS17へ戻り、X方向ループ処理を終了する場合にはステップS22へ進む。そして、レンダリング処理部は、ステップS22にてY方向ループ処理の終了の有無を判定し、終了しない場合にはステップS12へ戻り、終了する場合には処理を終了する。
【0012】
このようにステップS17からステップS21まではX方向のループ処理であり、またステップS12からステップS22まではY方向のループ処理であり、これら二重のループ処理によって平面上の図形の輪郭情報(エッジ情報)を抽出する。
【0013】
図4は、前述したレンダリング処理を含むプリントジョブにおけるデータ処理時間の変化の一例を示したグラフである。図4において、縦軸は処理時間(ミリ秒)を示しており、横軸はプリントジョブのページを示している。図4に示す例では、1ページ目は処理を完了するために約400ミリ秒かかっており、2ページ目は約550ミリ秒の時間を消費する。図4において、三角点で変化している線グラフはジョブに含まれる単純図形の数(相対値)を示しており、丸点で変化している線グラフは、単純図形以外(便宜上、ここでは複雑図形と呼ぶことにする)の数(相対値)を示している。複数ページにわたるプリントジョブを分析すると、矩形や三角など単純な図形が含まれている場合と、それ以外の複雑な図形(多角形等)が含まれている場合とでデータ処理の時間に違いがあることが図4から読み取れる。
【0014】
ここで、一般的にプリントジョブには単純図形がより多く含まれる傾向があるので、プリント処理の平均時間を向上させるためには、単純図形を如何に効率良く高速に処理できるかということが重要である。しかし、前述したレンダリング処理では図1に示したように図形の種類によらずデータ処理を行うための処理手順(アルゴリズム)は固定されている。そこで、本実施形態では、入力された図形(入力オブジェクト)の種類に応じてデータの処理手順(アルゴリズム)を切り替えて、レンダリング処理に係るエッジ情報生成処理を行う。
【0015】
図5は、本発明の一実施形態に係る画像処理装置の構成例を示すブロック図である。本実施形態に係る画像処理装置は、図形データを処理するレンダリング処理を行う画像処理装置であって、入力部11、分類部12、及びエッジ抽出処理部13を有し、入力オブジェクトの座標情報等に基づいて図形の輪郭情報であるエッジ情報を生成する。入力部11より入力された図形(入力オブジェクト)は、分類部12での図形種別判定処理により例えば単純図形(第1の図形種)又は複雑図形(第2の図形種)に分類される。エッジ抽出処理部13は、エッジ検出処理部14及びエッジ情報生成部15を有し、分類部12で分類した結果に応じてエッジトレースアルゴリズムを切り替えてエッジ検出を行いエッジ情報を生成する。例えば、エッジ検出処理部14は、単純図形(第1の図形種)と分類されたオブジェクトについてはタイル処理による(タイルベースの)エッジ検出処理を行い、複雑図形(第2の図形種)については前述したスキャンラインによるエッジ検出処理を行う。エッジ情報生成部15は、エッジ検出処理部14での処理結果に基づいてエッジ情報を生成する。
【0016】
図6は、本実施形態に係る画像処理装置の動作例を示すフローチャートであり、図形入力からエッジ情報を抽出する様子を示している。まず、分類部12は、図形種別判定処理を行い、入力部11より入力された図形(入力オブジェクト)を単純図形(第1の図形種)と、それ以外の複雑図形(第2の図形種)とに切り分ける(p11)。そして、エッジ抽出処理部13のエッジ検出処理部14は、複雑図形に対しては前述したスキャンラインによるエッジ検出処理を行い(p12)、単純図形に対してはタイル処理によるエッジ検出処理を行う(p13)。これらのエッジ検出処理の処理結果に基づいて、エッジ抽出処理部13のエッジ情報生成部15は、入力オブジェクトに係るエッジ情報を生成する。
【0017】
このように本実施形態に係る画像処理装置では、入力された図形(オブジェクト)に応じて処理手順を切り替えてエッジ検出を行い、その処理結果に基づいてエッジ情報を生成する。これにより、入力された図形に応じた適切な処理手順でレンダリング処理に係るデータ処理を行うことができ、レンダリング処理の高速化を図ることができる。
【0018】
以下、本実施形態におけるタイル処理によるエッジ検出処理について説明する。なお、以下の説明では、各タイルは16×16のピクセル(画素)で構成されているものとする。
【0019】
(第1の実施例)
以下、タイル処理によるエッジ検出処理の第1の実施例について説明する。
図7は、第1の実施例におけるタイル処理によるエッジ検出処理の概要を説明するための図である。図7に示すような点ABCを頂点とする三角形を考えると、該三角形の外郭の領域は図示した縦のタイル(図中左端の1から10までの番号が振られているタイル)の範囲に含まれる。三角形の辺の数は3つであるので、エッジ抽出処理部13は、各辺毎にエッジ情報を抽出する処理を行う。図7に示した例では、点Aから点Bまでの辺ABに対しては、2つの点A及び点Bがそれぞれ含まれるタイルを除いた11個のタイルにおいて、エッジ情報の抽出がそれぞれ行われる。該11個のタイルでは、各矩形領域(タイル)において点Aと点Bとを結ぶ直線(辺AB)の一つだけがかかっている状態である。つまり、タイルを構成する矩形の4つの辺のいずれかが、点Aと点Bとを結ぶ直線と交差している。このとき、タイルと、点A及び点Bを結ぶ直線との交点は2点となる。第1の実施例では、エッジ抽出処理部13は、この2点(2つの交点)の座標データに基づいてエッジ情報(エッジデータ)を生成する。なお、図7中の三角形を構成するその他の二辺、つまり、点Aと点Cとを結ぶ辺AC及び点Bと点Cとを結ぶ辺BCのそれぞれについてもエッジ抽出処理を行うが、その手順は辺ABに対する処理と同様である。また、頂点の位置や辺の角度によっては、2つの辺(例えば、辺ABと辺AC)が同一タイルにかかる場合もあり得るが、その場合でも各辺におけるエッジ抽出処理はそれぞれ別に進められ適宜マージされる。
【0020】
図8は、第1の実施例におけるエッジ情報抽出処理の一例を示すフローチャートである。処理を開始すると、エッジ抽出処理部13は、まずステップS71にて、図形(オブジェクト)の数だけループ処理を行うよう設定する。なお、本実施例で対象とする図形は、図形を構成する辺の数が3又は4である図形(すなわち、三角形又は四角形)のみであり、分類部12での処理により他の図形とは切り分けがなされているものとする。ステップS72にて、エッジ抽出処理部13は、エッジ抽出処理を行うある1つのオブジェクトのパス数(辺数3又は4)だけループ処理を行うように設定する。ステップS73にて、エッジ抽出処理部13は、レンダリング空間における対象のパス(辺)におけるタイル(対象のパスがかかるタイル)の数を計算により求め、そのタイルの数だけループ処理を行うよう設定する。ステップS74にて、エッジ抽出処理部13は、対象のパスとタイルを構成する辺とが交差する2点のデータの組み合わせからデータベースを検索して一意にデータを入手することで、レンダリング空間の各タイルにおけるエッジ情報(エッジデータ)を取得する。なお、このデータベースについては後述する。ステップS75にて、エッジ抽出処理部13は、ステップS74において取得したエッジ情報をタイル上のデータとして登録(セット)する。ステップS74及びステップS75の処理を対象のパス(辺)におけるタイルの数だけ繰り返す。そして、ステップS76、及びステップS77により必要な回数分のループ処理を行うことで、エッジ抽出処理部13は、該当するすべての図形(オブジェクト)のエッジ情報を抽出する。
【0021】
以上、説明したように図8に示したフローチャートに沿って処理を行うと、図形毎に独立して(外接矩形のユニットで)タイルデータが生成されていく。タイルデータが生成されるタイル群は、相当数が生成されると適時マージ(合成)される。タイルデータが生成されたタイルをマージする際には、ページをバンド(例えば1バンド=160ラインの固定幅)の単位で区切る。そして、ページ上部のバンドからページ下部へむけて、処理が必要なバンド(この時点でタイルが存在するバンドのみが処理の対象)を選択しながら順次処理を進める。合成処理を開始した時点で生成されているタイルを対象に、各バンドにかかるタイルを適宜、選択しながら合成処理を行う。最終的には1ページ分のすべてのオブジェクトが処理され、不図示のスプーラー(一時保存領域)へ全タイルデータがストアされる。該ストアされた1ページ分のタイルデータには、図形の輪郭情報(エッジ情報)や描画色等が記録されており、これら情報を適時参照しながらビデオフレーム等へ描画処理(ピクセル出力)を行うよう構成されている。該描画処理は不図示のピクセル展開処理部で実行される。
【0022】
図9は、図8に示したステップS74において参照するデータベースを説明するための図である。前述したように本実施例において、タイルは16×16ピクセルを前提としており、16×16ピクセルのタイルを考えると、この矩形を横切る直線のパターンは有限であって、そのパターンは矩形の辺と直線との交点の組み合わせパターンですべて表現できる。例えば、矩形を横切る直線の例の一つとしてタイル矩形の左上側に斜め45度で小さく横切る直線を考える(該直線は図示のように3つのピクセルで表現される)。図9(A)は、この様子を表しており、タイルの左上側のみを図示している。タイルを横切る辺は、図9(A)において左下の点から右上に向けて貫通している状態とも言える。この例の場合には、左下の交点の座標は(3,1)、右上の交点の座標は(1,3)となっている。
【0023】
このとき、タイルの内部のエッジは、スキャンライン(水平方向)の単位で考えると、3つのエッジ(境界)が存在していることになる。これをタイル内部データの表現として、タイル最左上の点を基準点とするオフセット値で表すこととする。図9(A)に示す例では、右側に記載されている「+2」という値がオフセット値を示している。次のスキャンラインにおけるエッジデータは、前のスキャンラインでのエッジデータ(ここでは+2の位置)に対する相対的な値(相対オフセット値)として示す。図上、左側にエッジが存在する場合にはマイナスの値をとり、右側にエッジが存在する場合にはプラスの値をとるように定義する。図9(A)に示した例では、それぞれ左側にエッジが存在しているので「−1」、「−1」というデータ列になる。
【0024】
タイルを横切る直線のパターンは有限であり、縦16×横16ピクセルのタイルの場合、交差する直線とタイルを構成する矩形の辺との交点の組み合わせ(2交点の場合の数)は、2944(=16×(16+15+15)×4)通りの組み合わせが存在する。本実施例ではエッジ情報を保持するデータベースは、図9(B)に示すように構成される。図9(B)に示すエントリーテーブルは、16×16ピクセルのタイルにおいて、タイルに交差する直線とタイルを構成する矩形の辺との交点の組み合わせに対応し、2994個のエントリを持っている。該エントリーテーブルから先には、それぞれの場合に応じたエッジ情報を格納した配列テーブルがあり、該エントリーテーブルを経由してエッジ情報を得ることができるようになっている。該エッジ情報は図9(A)で述べたオフセット値を集めたデータ列で表現されている。
【0025】
以上説明したように、第1の実施例では、図形を構成する辺数が3又は4である単純図形である場合には、タイル処理によるエッジ検出処理を行う。具体的には、エッジ抽出処理部13は、入力された図形を構成する辺をタイル上の座標におき、次にタイルを構成する矩形辺と交差する点を求める。そして、求めた交差する点の座標データの組み合わせに基づいて、該当するエッジ情報を格納したデータベースから検索して取得することでエッジ情報を生成する。これにより、エッジ情報を生成する際の演算量を効率良く抑制することができるようになり、処理速度を効果的に向上させることができる。
【0026】
(第2の実施例)
次に、第2の実施例について説明する。
前述した第1の実施例では、分類部12での図形種別判定処理により入力された図形(入力オブジェクト)が、何であるかを検査し、その結果、図形が三角形又は四角形である場合にタイル処理によるエッジ抽出処理を行っていた。第2の実施例では、図形オブジェクトの個々に対して図形の種類を表す「図形種識別情報」を付加するようにして、星型等、その他の図形(但し、直線で構成される図形)に対してもタイル処理によるエッジ抽出処理を行えるようにする。さらには、図形の特性(例えば対称性等の特性)を利用することで処理の高速化を図れるものについては個別に処理手続き(アルゴリズム)を用意し、それぞれの図形に応じた最善の処理手順によってエッジ情報の生成を行う。
【0027】
図10に示すように図形等を扱うアプリケーションソフトウェアでは、プルダウンメニュー等からドキュメントに挿入する図形種(図形の種類、例えば三角形、四角形、台形、平行四辺形等)を選択できるようになっている。アプリケーション側から各図形に対して図形の種類を表す「図形種識別情報」を割り当てられるよう構成することで、印刷プリントジョブの中にある図形のデータそれぞれに対して該図形種識別情報を付加する。図10に示す例では、図形種識別情報として、三角形にID−1が割り当てられ、同様に、星型にID−2、回転された十字型の多角形にID−3がそれぞれ割り当てられている。
【0028】
図11は、第2の実施例におけるエッジ情報抽出処理の流れを示す図である。まず、エッジ抽出処理部13は、オブジェクト(図形)が入力されると不図示のカウンタにより入力されたオブジェクト(図形)の総数Nを積算する。そして、エッジ抽出処理部13は、オブジェクト(図形)が入力されると逐次、又は1ページ内(又は所定の処理単位内)の図形すべての入力が完了した時点で、積算された総数Nと予め設定された閾値T1を比較する(p1111)。比較の結果、オブジェクト総数Nが閾値T1より大きい場合(N>T1)には、エッジ抽出処理部13は、前述のスキャンラインによるエッジ検出処理(図2参照)を行い、エッジ情報を生成する。
【0029】
一方、オブジェクト総数Nが閾値T1以下である場合(N≦T1)には、エッジ抽出処理部13は、各オブジェクト(図形)に付加されている図形種識別情報に応じて処理手法を切り替えてタイル処理によるエッジ検出処理を行い、エッジ情報を生成する。例えば、図形種識別情報がID−1である場合には、エッジ抽出処理部13は、三角形に対する処理を行い、第1の実施例のような処理手順でエッジ情報抽出処理を行う。また、例えば図形種識別情報としてID−2が付与されている図形の場合(本実施例中の例では星型の場合等)には、エッジ抽出処理部13は、三角形の場合とは別の処理手順でエッジ情報抽出処理を行う。図形種識別情報としてID−2が付与されている図形に対する処理手続き(アルゴリズム)は、水平軸又は垂直軸に関して対称性を有する図形に適しているものであり、その処理の詳細は後述する。また、例えば図形種識別情報としてID−3が付与されている図形の場合(回転や変形が施されている多角形等)には、エッジ抽出処理部13は、三角形(ID−1系)や対称性を持つ図形(ID−2系)の場合とは異なる処理手順でエッジ情報抽出処理を行う。図形種識別情報としてID−3が付与されている図形に対する処理手続き(アルゴリズム)の詳細は後述する。
【0030】
以下、第2の実施例での、図形種識別情報としてID−2が付与されている図形に係るエッジ情報抽出処理について説明する。
図12は、図形種識別情報としてID−2が付与されている図形の一例を示しており、ここでは星型を一例として示している。星型の図形は、縦の中心軸に対して左右の形(輪郭)が線対称となっている。このように図形が線対称であり、かつ、対称軸が水平又は垂直である場合には、まず対称軸で分割した一方の側の輪郭に対してのみエッジ情報抽出処理を行う。そして対称軸に関して他方の側の輪郭に対しては、一方の側に対するエッジ情報抽出処理で得られたエッジデータを反転することで残りのエッジデータを生成することができる。この処理を効率的に実行するためにはレンダリング処理で用いるタイルの境界線と図形の対称軸とを一致させておく必要がある。本来、描画するオブジェクトはレンダリングする座標位置が指定されており、またレンダリング座標とタイルの位置関係は独立に決められているため、図形の対称軸とタイルの境界は一般的に一致しない。これを一致させるため、本実施例では一時的に図形の座標位置を相対座標空間上に移しエッジ情報抽出処理を実行した後にオリジナルの座標に再度移動させるよう構成している。
【0031】
図13は、第2の実施例における図形種識別情報としてID−2が付与されている図形に係るエッジ情報抽出処理の一例を示すフローチャートである。
エッジ抽出処理部13は、ステップS130にて入力された図形の座標データを、ステップS131にて相対座標空間での座標データに変換する。相対座標空間は、前述したように、対象とする図形の中心軸(星型の場合は図12において矢印で指す中央のライン)とタイルの境界線とが合致するように構成した座標空間である。例えば、図形の中心軸と外郭線とが交差する点(星型であれば例えば図中の最上にある頂点)を、タイルを構成する矩形の4つの頂点の内のいずれか一つ(図中のタイル境界を示す縦線と横線がクロスする十字の中心)に合致させるようにした座標空間である。次に、エッジ抽出処理部13は、ステップS132にて、対象とする図形を取り囲む矩形領域を生成し、ステップS133にて、該矩形領域が包含されるように該矩形領域を含む領域に対してタイルを配置する。対象とする図形を構成する辺(セグメントと呼ぶ)のうち、中心軸で分割した一方の側のセグメントに対してエッジ検出の処理を行うので、エッジ抽出処理部13は、ステップS134にて対象の辺の数をカウントする(セグメントの総数を数えてセットする)。エッジ抽出処理部13は、ステップS135にてループ処理を開始して、ステップS136にて対象の辺に関するエッジ情報を抽出する。ステップS134において設定した対象の辺の数だけ、このループ処理を行うことにより、エッジ抽出処理部13は、順次対象の辺に関するエッジ情報を抽出する。なお、ステップS136の処理では、第1の実施例における処理と同様にして、各辺がタイル境界を横切る交点の情報からエッジ情報を生成する。前述した一連のループ処理後は、中心軸で分割した図形の一方の側のセグメントについてエッジ情報の抽出が完了している状態である。エッジ抽出処理部13は、ステップS137にて、一方の側のエッジ情報に基づいて中心軸に対して他方の側のエッジ情報を生成した後、ステップS138にて、対象とする図形のエッジ情報を絶対座標系(もとの座標位置)に戻し処理を完了する。
【0032】
以下、第2の実施例での、図形種識別情報としてID−3が付与されている図形に係るエッジ情報抽出処理について説明する。
図14は、図形種識別情報としてID−3が付与されている図形の一例を示しており、ここでは回転された星型を一例として示している。星型の図形は、対称性を持つ図形であるが、図14に示すように回転された場合には対称軸も回転するため、図形の対称軸とタイル境界に係る縦又は横のラインとは一致しなくなる。このため、前述した図形種識別情報としてID−2が付与されている図形に対する処理のように、対称軸について一方の側のエッジデータを反転して他方の側のエッジデータを生成するという処理は実行できない。よって、図形種識別情報としてID−3が付与されている図形である場合には、エッジ抽出処理部13は、図形を構成する輪郭(エッジ)すべてのエッジ情報の生成を順次行う。具体的には、図形のエッジを抽出するために図形の座標位置を相対座標空間上へマッピングしてエッジ情報抽出処理を実行した後にオリジナルの座標に再度移動させる。相対座標空間上へのマッピングでは、対象とする図形(本例では回転した星型)を取り囲み、かつ相対座標空間における水平軸に平行な辺及び垂直軸に平行な辺からなる外接矩形を作成する。そして、該外接矩形の左上の頂点を、タイルを構成する矩形の4つの頂点の内のいずれか一つ(タイル境界を示す縦線と横線がクロスする十字の中心)に合致させる。
【0033】
図15は、第2の実施例における図形種識別情報としてID−3が付与されている図形に係るエッジ情報抽出処理の一例を示すフローチャートである。
エッジ抽出処理部13は、ステップS140にて入力された図形の座標データを、ステップS141にて相対座標空間での座標データに変換する。相対座標空間は、タイルで構成されており、前述したように図形に外接する相対座標空間の水平軸に平行な辺及び垂直軸に平行な辺を持つ矩形における左上の頂点を、タイル境界を示す縦線と横線がクロスするいずれかの点に合致させるようにした座標空間である。次に、エッジ抽出処理部13は、ステップS142にて、対象とする図形を取り囲む矩形領域を生成し、ステップS143にて、該矩形領域が包含されるように該矩形領域を含む領域に対してタイルを配置する。続いて、エッジ抽出処理部13は、ステップS144にて、対象とする図形を構成する辺(セグメントと呼ぶ)の数をカウントする(セグメントの総数を数えてセットする)。エッジ抽出処理部13は、ステップS145にてループ処理を開始して、ステップS146にて対象の辺に関するエッジ情報を抽出する。このループ処理を行うことにより、エッジ抽出処理部13は、順次対象の辺に関するエッジ情報を抽出する。ステップS145において設定した対象の辺の数だけ、このループ処理を行うことにより、エッジ抽出処理部13は、順次対象の辺に関するエッジ情報を抽出する。なお、ステップS146の処理では、第1の実施例における処理と同様にして、各辺がタイル境界を横切る交点の情報からエッジ情報を生成する。最後に、エッジ抽出処理部13は、ステップS137にて、対象とする図形のエッジ情報を絶対座標系(もとの座標位置)に戻し処理を完了する。
【0034】
図16は、第2の実施例を適用した場合のプリントジョブにおける各ページの処理時間の分布の一例を示したグラフである。図16において、横軸はジョブページ(1から16ページまで)を示しており、縦軸はそれぞれのページにおける処理時間(ミリ秒)を示している。図中、各折線データが、エッジ処理時間の変化を示している。実線はスキャンラインによるエッジ検出処理のみで処理を実行した場合の処理時間を示しており、ジョブ全体を通しての平均処理速度は170ミリ秒である。一方、点線は入力された図形のうち三角形に対してのみタイル処理によるエッジ検出処理を行い、その他についてはスキャンラインによるエッジ検出処理を実施した場合の処理時間を示している。図中に示される点線より明らかなように、2ページ、4ページ、8ページ、12ページの処理で高速化が実現されており、またジョブ全体を通しての平均処理速度は165ミリ秒である。さらに、破線は入力された図形のうち三角形(ID−1系の図形)や星型等(ID−2系の対称図形)に対してタイル処理によるエッジ検出処理を行い、その他についてはスキャンラインによるエッジ検出処理を実施した場合の処理時間を示している。図中に示される破線より明らかなように、8ページ、12ページ、13ページ、16ページの処理でさらなる高速化が実現されており、またジョブ全体を通しての平均処理速度は160ミリ秒である。
【0035】
以上説明したように、第2の実施例では、ジョブに含まれる多種多様な図形に対して、それぞれ最適な処理手法を用意し、図形に応じて適切に切り替えて各処理を実行することにより全体のスループットを向上させることができる。
【0036】
(第3の実施例)
前述したように、第1の実施例や第2の実施例のような処理を適用することで、エッジ情報生成処理に関する処理の高速化を実現することができる。いずれの場合にも処理の高速化の手段としてタイル処理によるエッジ検出処理を用いているが、これらの結果は、前述した例のようにオブジェクトの数が少ないという条件下で得られると考えられる。逆に、オブジェクトの数が極めて多い場合には、スキャンラインによるエッジ検出処理に比べてタイル処理によるエッジ検出処理の方が遅くなる場合があると考えられる。また、プリントジョブを生成する際に、アプリケーションソフト側が、各オブジェクトに対する図形種判定のための図形種識別情報の付与に対応できないケースも生じ得る。
【0037】
そこで、第3の実施例では、オブジェクトの数に応じて変化する各アルゴリズムにおける速度(処理時間)の変化特性を、特性情報等を記録する特性データベース(特性DB)へ記録しておく。例えば、各アルゴリズム(スキャンライン系とタイルベース系)における速度の変化特性(例えば処理速度が逆転するオブェクト数の情報等)を特性DBへ記録しておく。そして、該特性DBに記録されている情報に基づいて処理の切り替えを行うようにする。また、アプリケーションソフト側が図形種識別情報を付加しない場合でも、プリンタドライバ側で図形データを解析して適宜図形種識別情報を付加できるようにする。
【0038】
図17は、各アルゴリズムでのエッジ情報抽出処理の速度特性を示したグラフであり、横軸がオブジェクト数を示しており、縦軸が処理時間を示している。スキャンライン系処理及びタイルベース系処理のいずれの場合にもオブジェクトの数が増えると、それに伴って処理時間が増加するという傾向がある。図17において、(a)はスキャンライン系処理での特性を示しており、(b)はタイルベース系処理(前述した第1の実施例におけるエッジ検出処理)の特性を示している。また、(c)はスキャンライン系処理とタイルベース系処理との両方を使ったハイブリッド系の処理での特性を示している。以下、図17に示す各グラフ特性の違いについて詳細に述べる。
【0039】
図17(a)に示されるように、スキャンライン系処理では、領域A(オブジェクト数が少ない領域)では処理速度が遅い。しかし、オブジェクト数が増えてくると領域B(オブジェクト数が多い領域)では、オブジェクト数の増加に対する処理速度の低下が抑制される特性がある。これは、一つのスキャンライン上に多くの図形がかかってくるようなケースでは、ループ処理の効率が向上すること等が影響していると考えられる。一方で、図17(b)に示されるように、タイルベース系処理では、領域A(オブジェクト数が少ない領域)では処理速度が速いが、オブジェクト数が増えてくると領域B(オブジェクト数が多い領域)では、処理速度の低下が顕著となってくる。これはタイルベース系処理では、各オブジェクトに対して独立に処理を行っているため、図形の数に比例して処理ステップ数が増加すること等が影響していると考えられる。
【0040】
以上述べたように、スキャンライン系処理とタイルベース系処理とはそれぞれの領域において、逆の特性を有している。スキャンライン系処理及びタイルベース系処理の特性を調べて処理速度が逆転するオブジェクト数を取得し、そのオブジェクト数で処理を切り替えるようにすることで、互いの長所を引き出すことができる。図17(c)は、領域Aではタイルベース系処理で処理を行い、領域Bではスキャンライン系処理で処理を行うように、分岐点(処理速度が逆転するオブジェクト数)にて処理を切り替える場合の特性を示したものである。
【0041】
なお、オブジェクト数に応じた処理速度(処理時間)の変化特性は、各処理手順(アルゴリズム)に依存しているために各処理手順毎に特性を把握しなくてはならない。第2の実施例でいえば、図形種識別情報としてID−2が付与されている図形と、ID−3が付与されている図形との特性は、個々に違う特性を持っており、特にスキャンライン系のエッジ検出処理と速度が逆転するポイント(分岐点)は個々異なっている。
【0042】
また、図形の大きさ等も処理時間の特性に影響を与える。第1の実施例では、図8の説明で述べたように図形毎にタイルデータが順に生成されていき、タイルデータが生成されるタイル群は、相当数が生成されると適時マージ(合成)されるよう構成されている。これらを処理する際にはページを固定の区間幅(バンド幅:例えば1バンド=160ライン)の処理単位で区切って処理を進めている。第1の実施例における前提としては、多くの図形が固定の区間幅(例えば160ライン)の中に収まることを前提としていたが、指定される図形のサイズには制限がなく平均サイズが予め設定した区間幅を超えることも考えられる。図形のサイズが大きくなると特にスキャンラインによるエッジ検出処理特性に影響が出てくる。これはエッジ検出処理の特性(分岐点の変化)に影響を与える大きな要因の一つとなる。このことから本発明のより好適な実施態様としては図形サイズの違いも考慮した構成とすることが望ましい。第3の実施例では、2つの区間幅(160ライン、320ライン)を用意して、図形の平均サイズに応じて区間幅を適宜切り替えるようにする。
【0043】
したがって、第3の実施例においてエッジ情報抽出処理における特性は、図18に示すように、アルゴリズムの種類(本実施例では3種類)、及び図形の大きさ(本実施例では2種類)のそれぞれを掛け合わせた組み合わせ(合計6種類)の特性を測定する。そして、測定により得られた該特性に係る関連情報を特性DBに格納しておき、格納されている情報に基づいて処理の切り替えを行う。図18は、第3の実施例で用いる特性DBに格納される特性データ(6種類)を説明するための図である。
【0044】
図19は、プリンタドライバを含めたプリントシステムの構成例を示すブロック図である。図19においては、要素的特徴のみを示している。第3の実施例の説明における冒頭で述べたように、本例ではアプリケーションソフト側が図形種識別情報を付加しない場合でも、図形種に応じた処理の切り替えに対応できるようにプリンタドライバ側にて図形種解析処理を実行可能としている。図形の簡単なものは座標点の構成、位置関係からある程度の分類が可能である。なお、図形種解析処理を行うことにより処理時間は若干増加すると考えられるが、プリンタドライバは高速なホストPC側で行われるためプリントシステム全体のスループットを考慮するとメリットは存在する。
【0045】
各処理手順(アルゴリズム)における速度の変化特性に係る情報が格納される特性DB194は、プリンタドライバ191のモジュール内に存在している。アプリケーションから印刷が開始されると、プリンタドライバ191は、図形データ生成部192の出力情報を基にプリントジョブの生成を開始する。同時に、図形種解析部193は、各オブジェクトの図形種の解析処理を開始するとともに、該解析処理と平行して特性DB194にアクセスして各オブジェクト(図形)に対し図形種識別情報を付加していく。ここで図形種識別情報としてID−1が付与された図形は、第1の実施例で説明したようなタイルベースのエッジ情報抽出処理が割り当てられることとなる。また、図形種識別情報としてID−2が付与された図形は、第2の実施例で説明した図13に示したような処理手順でのタイルベースのエッジ情報抽出処理が割り当てられることとなる。さらに、図形種識別情報としてID−3が付与された図形は、第2の実施例で説明した図15に示したような処理手順でのタイルベースのエッジ情報抽出処理が割り当てられることとなる。
【0046】
前述したID−1、ID−2、ID−3の図形種識別情報は、PDL(ページ記述言語)データ内の(各オブジェクト毎に割り当てられている)拡張情報領域を適宜拡張して格納される。なお、PDLデータ内のオブジェクトに対してはデフォルトでは拡張情報は存在していない状態であり、該拡張情報がない図形等に関してはスキャンラインによるエッジ情報抽出処理が実行されることとなる。
【0047】
以上のように、プリンタドライバ191からは適宜図形種識別情報が付加されたPDLデータが生成され、該PDLデータはプリントスプーラー等の機能部195を経由してプリンタ装置196に転送される。プリンタ装置196では、PDL解析部197がデータの解析処理を行い、PDLデータ中、図形等のオブジェクトに対しては画像形成処理が起動されて、その処理において図形のエッジ情報が生成される。このとき、PDL解析部197及び機能部198は、各オブジェクトに対して拡張情報の有無を確認する。その結果、拡張情報が存在する場合は、その中に格納されている図形種識別情報(ID−1,ID−2,ID−3のいずれかであるか)を読み取り、読み取った図形種識別情報に基づいて、実行すべきエッジ抽出処理の選択を行う。そして、選択されたエッジ抽出処理に応じてエッジ抽出処理部199により処理が実行される。プリンタ装置196のコントローラは抽出されたエッジ情報に基づきイメージを生成し、プリンタ装置196のプリントエンジンは、生成されたイメージに基づき用紙にプリントを行う。
【0048】
以下、図20〜図24を参照して、第3の実施例における各図形に関するその他の処理について説明する。
図20は、第3の実施例における図形種解析等の処理を説明するための図である。図20に示すように、プリンタドライバ内ではGDI(グラフィックスインターフェース)からの描画命令に基づいてPDLの生成が行われる。その過程で図形種解析処理が行われて、図形に係る統計情報が取得される。この統計情報は、区間(ページ上の各バンド)毎に集計され、各区間における図形種別の個数及びその平均サイズ等が含まれる。ページにおける描画区間の幅は、図21に示すようにデフォルトでは160ラインとしているが、大きな図形が特定バンドに多く存在し該図形サイズの平均サイズが160ライン分よりも大きくなる場合には区間幅を拡張するよう構成されている。第3の実施例では、区間幅を拡張した場合のサイズを320ラインとしている。また、図形種毎に平均サイズを測定するため、各区間幅に関する情報は図形種毎に独立して管理する。図20に示した例で説明すると、あるジョブを解析した時の統計情報として、ID−1系のオブジェクト数が5200個、ID−2系のオブジェクト数が3200個、ID−3系のオブジェクト数が2100個、その他が6200個という情報が取得されたとする。区間幅を各ID毎にみると、ID−2とID−3において一部区間拡張がされている。例えば、ID−2系に係る統計情報において、ある区間(バンド)において1300個のオブジェクトが存在し、かつ、該オブジェクト(図形)の平均サイズが242であると、該区間については区間拡張を行い、区間幅は320ラインとされる。特性DBに対するID−2系の特性(分岐点の情報=特性DBでは閾値Tx)の問い合わせのために平均サイズの情報も利用する。図20に示した例での特性DBでは、ID−2系の特性において区間幅320ラインの場合の閾値は2400と記録されている。したがって、該区間幅320ラインに分布しているID−2系の図形についてエッジ情報抽出処理を行う場合には、第2の実施例で説明したようなタイルベースのエッジ情報抽出処理を実行すべきことが判明する。
【0049】
図22は、第3の実施例における図形種解析等の処理の一例を示すフローチャートである。ステップS221は、図形種の解析処理のエントリであり、このステップS221では、初期化処理等が行われる。ステップS222にて、オブジェクトリストが生成され、PDLの情報を受けてグラフィックスにおけるパス情報、座標値、又はテキストコード等、各オブジェクトデータの蓄積が行われる。ステップS223にて、処理単位(処理ページ)におけるオブジェクト数Nの積算(総数のカウント)が行われる。ステップS224にて、オブジェクト数Nと閾値Sとが比較される。比較の結果、オブジェクト数Nが閾値Sより多ければステップS231へ分岐し、スキャンラインによるエッジ抽出処理を実行した後に呼び出し側モジュールへ復帰する。一方、オブジェクト数Nが閾値S以下であればステップS225へ分岐し、ステップS225にて、詳細調査の処理が開始される。ステップS226にて、各区間の検査が行われる。ステップS227では該当する区間(つまり、問題がありそうな区間=オブジェクトが沢山存在する区間(バンド)等を意味する)において存在する図形のそれぞれにおいて平均のオブジェクトサイズを計算する。個々のオブジェクトサイズの例としては外接矩形の長辺の長さ等である。また、ある区間における平均オブジェクトサイズとは、図形のオブジェクトサイズの平均値である。次に、ステップS228にて、各バンドに対して該区域内に存在する図形オブジェクトの平均サイズが算出される。該区域内に存在する図形オブジェクトの算出方法に関しては図23を用いて後述する。ステップS229にて、算出された平均オブジェクトサイズと閾値Txが比較され、平均オブジェクトサイズが閾値Txより大きい場合にはステップS230へ分岐し、該当部分の区間幅を拡張する。ここで、閾値Txは、例えば特性DBより取得される。一方、ステップS229での比較の結果、平均オブジェクトのサイズが閾値Tx以下の場合には、区間幅の拡張は行わずに呼び出し側モジュールへ復帰する。
【0050】
図23は、区間幅が拡張された場合の様子を説明するための図である。図中、区間11は現検査対象区間となっている区間である。区間11は、図にあるように上ラインと下ラインに挟まれた区間であって、その幅は初期値として160ラインで定義されていている。この例では、この区間に関係している図形のサイズの平均を計算した結果、平均サイズが幅160ラインを超えることが判明したため、区間11の幅を拡張して320ラインとしている。このとき、区間12は区間11によってオーバーライドされる。この結果、該ページにおける区間の定義は、区間1、2、…10、11、13となる。なお、図中、検査の対象となるオブジェクトは、区間11内に存在する図形、及び区間11における下ラインにかかっている図形である。区間11における上ラインに掛かっている図形は検査の対象外としている。この定義(ルール)に従って、ページ上の各区間における平均オブジェクトサイズを一意に算出する。
【0051】
図24は、第3の実施例におけるエッジ情報抽出処理の流れを示す図である。まず、エッジ抽出処理部13は、オブジェクト(図形)が入力されると不図示のカウンタにより1ページ内のオブジェクト(図形)の総数Nをカウントする。そして、エッジ抽出処理部13は、カウントされた総数Nと予め設定された閾値T1とを比較する。その結果、ページ内に存在するオブジェクト数Nが閾値T1より多いと判断した場合には、エッジ抽出処理部13は、エッジ情報生成処理として、スキャンラインによるエッジ検出処理(図2参照)を行い、エッジ情報を生成する。
【0052】
一方、ページ内に存在するオブジェクト数Nが閾値T1以下であると判断した場合には、エッジ抽出処理部13は、各オブジェクト(図形)に付加されている図形種識別情報に基づいて処理手法を切り替えてエッジ検出処理を行い、エッジ情報を生成する。第3の実施例では、図形種識別情報は拡張情報として各オブジェクト毎に設定されている。エッジ抽出処理部13は、各オブジェクトに対して拡張情報の有無を検査し、拡張情報が無い場合はデフォルトの処理(スキャンラインによるエッジ検出処理)を行い、エッジ情報を生成する。一方、拡張情報が存在する場合には、エッジ抽出処理部13は、記録されている図形種識別情報を参照して処理手法を切り替える。例えば、図形種識別情報がID−1である場合には、エッジ抽出処理部13は、三角形に対する処理を行い、第1の実施例のような処理手順でエッジ情報抽出処理を行う。また、例えば図形種識別情報としてID−2が付与されている図形(水平又は垂直方向に対称性がある図形)の場合には、エッジ抽出処理部13は、第2の実施例で説明したID−2系の処理手順でエッジ情報抽出処理を行う。また、例えば図形種識別情報としてID−3が付与されている図形(回転や変形が施されている多角形等)の場合には、エッジ抽出処理部13は、第2の実施例で説明したID−3系の処理手順でエッジ情報抽出処理を行う。なお、拡張情報が存在してもオブジェクト数が特性DBの閾値Txより多い場合には、デフォルトの処理(スキャンラインによるエッジ検出処理)を行い、エッジ情報を生成する。
【0053】
(その他の実施例)
第3の実施例では、特性DBをプリンタドライバ側に設けるようにしているが、プリンタ装置側に設けるようにしても良い。また、予め測定したデータをスタティックに持つだけに限らず、プリンタ装置側の実行処理時間を適宜測定し、特性DBに格納するデータを更新するようにしても良い。
さらにはプリンタ装置側とドライバ装置側で同じ特性DB(同期した特性DB)を持つように相互に通信し、ステータスの確認やデータの転送を行うように構成しても良い。本実施例によれば図形種の違いを判定するために用いる図形種識別情報を定義しているが、アプリケーション側で該情報を付与しても良いし、プリンタドライバ側で該情報を付与しても良い。図形種識別情報の種類と対応するエッジ抽出処理の手続きの整合性をとるために、アプリケーション、プリンタドライバ、及びプリンタ装置の間で、予め定められた通信プロトコルによって適宜情報の伝達(又は通信等)を行うよう構成しても良い。
前述の各構成において、プリントジョブ生成の際にプリンタ毎に適したID情報を付加し、プリンタ機種が変更になった場合でも、適切なID情報に切り替えられるように、付加するID情報とプリンタ機種の対応を内部で管理する機構を持つようにしても良い。
【0054】
(本発明の他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【0055】
例えば、本実施形態に示した画像処理装置は、図25に示すようなコンピュータ機能700を有し、そのCPU701により本実施形態での動作が実施される。
コンピュータ機能700は、図25に示すように、CPU701と、ROM702と、RAM703とを備える。また、操作部(CONS)709のコントローラ(CONSC)705と、CRTやLCD等の表示部としてのディスプレイ(DISP)710のディスプレイコントローラ(DISPC)706とを備える。さらに、ハードディスク(HD)711、及びフレキシブルディスク等の記憶デバイス(STD)712のコントローラ(DCONT)707と、ネットワークインタフェースカード(NIC)708とを備える。それら機能部701、702、703、705、706、707、708は、システムバス704を介して互いに通信可能に接続された構成としている。
CPU701は、ROM702又はHD711に記憶されたソフトウェア、又はSTD712より供給されるソフトウェアを実行することで、システムバス704に接続された各構成部を総括的に制御する。すなわち、CPU701は、前述したような動作を行うための処理プログラムを、ROM702、HD711、又はSTD712から読み出して実行することで、本実施形態での動作を実現するための制御を行う。RAM703は、CPU701の主メモリ又はワークエリア等として機能する。
CONSC705は、CONS709からの指示入力を制御する。DISPC706は、DISP710の表示を制御する。DCONT707は、ブートプログラム、種々のアプリケーション、ユーザファイル、ネットワーク管理プログラム、及び本実施形態における前記処理プログラム等を記憶するHD711及びSTD712とのアクセスを制御する。NIC708はネットワーク713上の他の装置と双方向にデータをやりとりする。
【0056】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】
【0057】
本発明はプリンタ装置、又はディスプレイ等の表示装置、画像出力デバイスなどに利用することができる。
【符号の説明】
【0058】
11…入力部、12…分類部、13…エッジ抽出処理部、14…エッジ検出処理部、15…エッジ情報生成部
【技術分野】
【0001】
本発明は、画像処理装置及び画像処理方法に関し、特にレンダリング処理等に適用可能なエッジ情報生成に係る画像処理技術に関する。
【背景技術】
【0002】
従来から図形を描画するために図形が持つ座標情報等から図形の輪郭情報(エッジ情報とも呼ぶ)を抽出し、該輪郭情報に基づいて画像を形成するレンダリング手法は一般に広く利用されている(例えば、特許文献1、特許文献2、特許文献3、特許文献4)。また、輪郭情報は直線で表現されるが該直線を表現するための手法としてDDA(Digital Differential Analyzer)アルゴリズムが知られている(非特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平04−170686号公報
【特許文献2】特開平08−72317号公報
【特許文献3】特開2005−267290号公報
【特許文献4】特開2007−122188号公報
【非特許文献】
【0004】
【非特許文献1】David Rogers, "Procedural Elements for Computer Graphics", McGraw-Hill Education
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、レンダリング処理において常に高速に描画処理が実行できることは重要な要件であるが、実際にレンダリング処理に要する時間は、図形の種類や数に依存して変化するためこれを実現することは容易ではない。従来のレンダリング処理では図形の種類によらずデータ処理を行うための手続き(アルゴリズム)は固定されており、レンダリング処理の高速化という観点では不十分な構造であった。
本発明は、このような事情に鑑みてなされたものであり、入力された図形に応じてアルゴリズムを適切に切り替え、レンダリング処理に係るデータ処理を行えるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本発明の画像処理装置は、レンダリング処理を行う画像処理装置であって、オブジェクトの情報を入力する入力手段と、前記入力手段より入力されたオブジェクトの情報に基づいて、前記オブジェクトの図形種を分類する分類手段と、前記分類手段により分類された図形種に応じて処理手順を切り替え、前記レンダリング処理に係るエッジ情報を生成する処理手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、入力されたオブジェクトの情報に基づいて処理手順を切り替えることで、オブジェクトに応じた適切な処理手順で処理を行ってエッジ情報を生成することができる。これにより、オブジェクトに応じた適切な処理手順でレンダリング処理に係るデータ処理を実行することができ、レンダリング処理の高速化を実現することができる。
【図面の簡単な説明】
【0008】
【図1】レンダリング処理の一例を示すフローチャートである。
【図2】スキャンラインによるエッジ情報抽出処理を説明するための図である。
【図3】エッジ情報抽出処理の詳細を示すフローチャートである。
【図4】プリントジョブにおけるデータ処理時間の変化の一例を示す図である。
【図5】本発明の一実施形態に係る画像処理装置の構成例を示す図である。
【図6】本実施形態に係る画像処理装置の動作例を示すフローチャートである。
【図7】第1の実施例におけるタイルベースのエッジ検出処理を説明するための図である。
【図8】第1の実施例におけるエッジ情報抽出処理を示すフローチャートである。
【図9】第1の実施例におけるエッジ情報を格納したデータ構造体を示す図である。
【図10】第2の実施例における図形種識別情報を説明するための図である。
【図11】第2の実施例におけるエッジ情報抽出処理の流れを示す図である。
【図12】第2の実施例における図形(ID−2系)の例を示す図である。
【図13】第2の実施例におけるエッジ情報抽出処理の一例を示すフローチャートである。
【図14】第2の実施例における図形(ID−3系)の例を示す図である。
【図15】第2の実施例におけるエッジ情報抽出処理の一例を示すフローチャートである。
【図16】第2の実施例を適用した場合の処理時間の一例を示す図である。
【図17】各アルゴリズムでのエッジ情報抽出処理の速度特性を示す図である。
【図18】第3の実施例における特性データベースに格納するデータ例を示す図である。
【図19】プリントシステムの構成例を示す図である。
【図20】第3の実施例における図形種解析等の処理を説明するための図である。
【図21】第3の実施例における区間幅拡張を説明するための図である。
【図22】第3の実施例における図形種解析等の処理の一例を示すフローチャートである。
【図23】第3の実施例における区間幅内にあるオブジェクトを説明する図である。
【図24】第3の実施例におけるエッジ情報抽出処理の流れを示す図である。
【図25】本実施形態における画像処理装置を実現可能なコンピュータ機能を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態を図面に基づいて説明する。
まず、レンダリング処理について説明する。
図1は、レンダリング処理の一例を示すフローチャートであり、図形入力からエッジ情報を抽出する様子を示している。図示のようにレンダリング処理を行うレンダリング処理部(レンダラー)に入力される図形の種類は多様に存在している。図1に示す処理では、入力された図形の座標情報等からエッジ検出処理によりエッジ(輪郭)を検出して、図形を構成する線情報(エッジ情報)を生成する。例えば、図2は三角形の図形からエッジを抽出する様子を示しており、三角形に対してスキャンライン(水平線)が交差している状態であって、矢印で示すように2つのエッジが検出されている例を示している。この処理の概要を簡単に述べると、まず、入力された図形データをY方向にソートして、次にソートされた図形データに順次アクセスしX座標のデータ列を集める。このときに、X座標値の小さいものから大きいものへ昇順にデータがアクセスできるようにデータの参照テーブル等を作成する。画像を形成するための処理では、X方向スキャンを水平方向へ走らせ、これを縦方向(Y方向)へと繰り返すことで該図形のエッジ情報を抽出していく。
【0010】
図3は、入力された図形の座標情報等からエッジ情報を抽出する処理の詳細を説明したフローチャートである。処理を開始すると、レンダリング処理部は、まず、ステップS11にて、入力されたデータをY方向にソートしデータを格納して、次にステップS12にて、スキャンラインのY方向へのループ処理を開始する。ステップS13にて、レンダリング処理部は、現在のスキャンラインにかかる図形データを拾い出し、かつ、スキャンライン上に存在するエッジ情報(カレントのエッジデータリスト)を更新する必要があるかないかを判断する。判断の結果、更新の必要がなければステップS17へ進み、更新の必要があればステップS14へ進む。ステップS14にて、レンダリング処理部は、カレントのエッジデータリストに対するエッジの追加又は削除の判断を行う。新たに図形の輪郭にスキャンラインがかかった場合等、エッジを追加する場合には、レンダリング処理部は、ステップS15にて追加すべきデータをX方向へ昇順となるように追加する。ここで追加されたデータはノードと呼ばれ、それぞれがリスト上に連結される。一方、図形の輪郭からスキャンラインが外れた場合にはステップS16に進み、レンダリング処理部は、エッジデータリストから該当するエッジデータを適宜、削除する。
【0011】
ステップS17より、レンダリング処理部は、現在のスキャンラインにおけるX方向のエッジ情報を抽出するためのループ処理を行う。ステップS18にて、レンダリング処理部は、エッジデータリスト上の各ノードに順次アクセスしていく。エッジの情報はカレント(Y値)のスキャンラインにおけるデータ値(DA値)を線分の傾き等の情報から更新するよう構成されており、該データの更新処理はステップS19にて実行される。続いて、レンダリング処理部は、ステップS20にて、X方向のループ処理のためのカウンタ減算処理を行い、ステップS21にてX方向ループ処理の終了の有無を判定する。判定の結果、X方向ループ処理を終了しない場合にはステップS17へ戻り、X方向ループ処理を終了する場合にはステップS22へ進む。そして、レンダリング処理部は、ステップS22にてY方向ループ処理の終了の有無を判定し、終了しない場合にはステップS12へ戻り、終了する場合には処理を終了する。
【0012】
このようにステップS17からステップS21まではX方向のループ処理であり、またステップS12からステップS22まではY方向のループ処理であり、これら二重のループ処理によって平面上の図形の輪郭情報(エッジ情報)を抽出する。
【0013】
図4は、前述したレンダリング処理を含むプリントジョブにおけるデータ処理時間の変化の一例を示したグラフである。図4において、縦軸は処理時間(ミリ秒)を示しており、横軸はプリントジョブのページを示している。図4に示す例では、1ページ目は処理を完了するために約400ミリ秒かかっており、2ページ目は約550ミリ秒の時間を消費する。図4において、三角点で変化している線グラフはジョブに含まれる単純図形の数(相対値)を示しており、丸点で変化している線グラフは、単純図形以外(便宜上、ここでは複雑図形と呼ぶことにする)の数(相対値)を示している。複数ページにわたるプリントジョブを分析すると、矩形や三角など単純な図形が含まれている場合と、それ以外の複雑な図形(多角形等)が含まれている場合とでデータ処理の時間に違いがあることが図4から読み取れる。
【0014】
ここで、一般的にプリントジョブには単純図形がより多く含まれる傾向があるので、プリント処理の平均時間を向上させるためには、単純図形を如何に効率良く高速に処理できるかということが重要である。しかし、前述したレンダリング処理では図1に示したように図形の種類によらずデータ処理を行うための処理手順(アルゴリズム)は固定されている。そこで、本実施形態では、入力された図形(入力オブジェクト)の種類に応じてデータの処理手順(アルゴリズム)を切り替えて、レンダリング処理に係るエッジ情報生成処理を行う。
【0015】
図5は、本発明の一実施形態に係る画像処理装置の構成例を示すブロック図である。本実施形態に係る画像処理装置は、図形データを処理するレンダリング処理を行う画像処理装置であって、入力部11、分類部12、及びエッジ抽出処理部13を有し、入力オブジェクトの座標情報等に基づいて図形の輪郭情報であるエッジ情報を生成する。入力部11より入力された図形(入力オブジェクト)は、分類部12での図形種別判定処理により例えば単純図形(第1の図形種)又は複雑図形(第2の図形種)に分類される。エッジ抽出処理部13は、エッジ検出処理部14及びエッジ情報生成部15を有し、分類部12で分類した結果に応じてエッジトレースアルゴリズムを切り替えてエッジ検出を行いエッジ情報を生成する。例えば、エッジ検出処理部14は、単純図形(第1の図形種)と分類されたオブジェクトについてはタイル処理による(タイルベースの)エッジ検出処理を行い、複雑図形(第2の図形種)については前述したスキャンラインによるエッジ検出処理を行う。エッジ情報生成部15は、エッジ検出処理部14での処理結果に基づいてエッジ情報を生成する。
【0016】
図6は、本実施形態に係る画像処理装置の動作例を示すフローチャートであり、図形入力からエッジ情報を抽出する様子を示している。まず、分類部12は、図形種別判定処理を行い、入力部11より入力された図形(入力オブジェクト)を単純図形(第1の図形種)と、それ以外の複雑図形(第2の図形種)とに切り分ける(p11)。そして、エッジ抽出処理部13のエッジ検出処理部14は、複雑図形に対しては前述したスキャンラインによるエッジ検出処理を行い(p12)、単純図形に対してはタイル処理によるエッジ検出処理を行う(p13)。これらのエッジ検出処理の処理結果に基づいて、エッジ抽出処理部13のエッジ情報生成部15は、入力オブジェクトに係るエッジ情報を生成する。
【0017】
このように本実施形態に係る画像処理装置では、入力された図形(オブジェクト)に応じて処理手順を切り替えてエッジ検出を行い、その処理結果に基づいてエッジ情報を生成する。これにより、入力された図形に応じた適切な処理手順でレンダリング処理に係るデータ処理を行うことができ、レンダリング処理の高速化を図ることができる。
【0018】
以下、本実施形態におけるタイル処理によるエッジ検出処理について説明する。なお、以下の説明では、各タイルは16×16のピクセル(画素)で構成されているものとする。
【0019】
(第1の実施例)
以下、タイル処理によるエッジ検出処理の第1の実施例について説明する。
図7は、第1の実施例におけるタイル処理によるエッジ検出処理の概要を説明するための図である。図7に示すような点ABCを頂点とする三角形を考えると、該三角形の外郭の領域は図示した縦のタイル(図中左端の1から10までの番号が振られているタイル)の範囲に含まれる。三角形の辺の数は3つであるので、エッジ抽出処理部13は、各辺毎にエッジ情報を抽出する処理を行う。図7に示した例では、点Aから点Bまでの辺ABに対しては、2つの点A及び点Bがそれぞれ含まれるタイルを除いた11個のタイルにおいて、エッジ情報の抽出がそれぞれ行われる。該11個のタイルでは、各矩形領域(タイル)において点Aと点Bとを結ぶ直線(辺AB)の一つだけがかかっている状態である。つまり、タイルを構成する矩形の4つの辺のいずれかが、点Aと点Bとを結ぶ直線と交差している。このとき、タイルと、点A及び点Bを結ぶ直線との交点は2点となる。第1の実施例では、エッジ抽出処理部13は、この2点(2つの交点)の座標データに基づいてエッジ情報(エッジデータ)を生成する。なお、図7中の三角形を構成するその他の二辺、つまり、点Aと点Cとを結ぶ辺AC及び点Bと点Cとを結ぶ辺BCのそれぞれについてもエッジ抽出処理を行うが、その手順は辺ABに対する処理と同様である。また、頂点の位置や辺の角度によっては、2つの辺(例えば、辺ABと辺AC)が同一タイルにかかる場合もあり得るが、その場合でも各辺におけるエッジ抽出処理はそれぞれ別に進められ適宜マージされる。
【0020】
図8は、第1の実施例におけるエッジ情報抽出処理の一例を示すフローチャートである。処理を開始すると、エッジ抽出処理部13は、まずステップS71にて、図形(オブジェクト)の数だけループ処理を行うよう設定する。なお、本実施例で対象とする図形は、図形を構成する辺の数が3又は4である図形(すなわち、三角形又は四角形)のみであり、分類部12での処理により他の図形とは切り分けがなされているものとする。ステップS72にて、エッジ抽出処理部13は、エッジ抽出処理を行うある1つのオブジェクトのパス数(辺数3又は4)だけループ処理を行うように設定する。ステップS73にて、エッジ抽出処理部13は、レンダリング空間における対象のパス(辺)におけるタイル(対象のパスがかかるタイル)の数を計算により求め、そのタイルの数だけループ処理を行うよう設定する。ステップS74にて、エッジ抽出処理部13は、対象のパスとタイルを構成する辺とが交差する2点のデータの組み合わせからデータベースを検索して一意にデータを入手することで、レンダリング空間の各タイルにおけるエッジ情報(エッジデータ)を取得する。なお、このデータベースについては後述する。ステップS75にて、エッジ抽出処理部13は、ステップS74において取得したエッジ情報をタイル上のデータとして登録(セット)する。ステップS74及びステップS75の処理を対象のパス(辺)におけるタイルの数だけ繰り返す。そして、ステップS76、及びステップS77により必要な回数分のループ処理を行うことで、エッジ抽出処理部13は、該当するすべての図形(オブジェクト)のエッジ情報を抽出する。
【0021】
以上、説明したように図8に示したフローチャートに沿って処理を行うと、図形毎に独立して(外接矩形のユニットで)タイルデータが生成されていく。タイルデータが生成されるタイル群は、相当数が生成されると適時マージ(合成)される。タイルデータが生成されたタイルをマージする際には、ページをバンド(例えば1バンド=160ラインの固定幅)の単位で区切る。そして、ページ上部のバンドからページ下部へむけて、処理が必要なバンド(この時点でタイルが存在するバンドのみが処理の対象)を選択しながら順次処理を進める。合成処理を開始した時点で生成されているタイルを対象に、各バンドにかかるタイルを適宜、選択しながら合成処理を行う。最終的には1ページ分のすべてのオブジェクトが処理され、不図示のスプーラー(一時保存領域)へ全タイルデータがストアされる。該ストアされた1ページ分のタイルデータには、図形の輪郭情報(エッジ情報)や描画色等が記録されており、これら情報を適時参照しながらビデオフレーム等へ描画処理(ピクセル出力)を行うよう構成されている。該描画処理は不図示のピクセル展開処理部で実行される。
【0022】
図9は、図8に示したステップS74において参照するデータベースを説明するための図である。前述したように本実施例において、タイルは16×16ピクセルを前提としており、16×16ピクセルのタイルを考えると、この矩形を横切る直線のパターンは有限であって、そのパターンは矩形の辺と直線との交点の組み合わせパターンですべて表現できる。例えば、矩形を横切る直線の例の一つとしてタイル矩形の左上側に斜め45度で小さく横切る直線を考える(該直線は図示のように3つのピクセルで表現される)。図9(A)は、この様子を表しており、タイルの左上側のみを図示している。タイルを横切る辺は、図9(A)において左下の点から右上に向けて貫通している状態とも言える。この例の場合には、左下の交点の座標は(3,1)、右上の交点の座標は(1,3)となっている。
【0023】
このとき、タイルの内部のエッジは、スキャンライン(水平方向)の単位で考えると、3つのエッジ(境界)が存在していることになる。これをタイル内部データの表現として、タイル最左上の点を基準点とするオフセット値で表すこととする。図9(A)に示す例では、右側に記載されている「+2」という値がオフセット値を示している。次のスキャンラインにおけるエッジデータは、前のスキャンラインでのエッジデータ(ここでは+2の位置)に対する相対的な値(相対オフセット値)として示す。図上、左側にエッジが存在する場合にはマイナスの値をとり、右側にエッジが存在する場合にはプラスの値をとるように定義する。図9(A)に示した例では、それぞれ左側にエッジが存在しているので「−1」、「−1」というデータ列になる。
【0024】
タイルを横切る直線のパターンは有限であり、縦16×横16ピクセルのタイルの場合、交差する直線とタイルを構成する矩形の辺との交点の組み合わせ(2交点の場合の数)は、2944(=16×(16+15+15)×4)通りの組み合わせが存在する。本実施例ではエッジ情報を保持するデータベースは、図9(B)に示すように構成される。図9(B)に示すエントリーテーブルは、16×16ピクセルのタイルにおいて、タイルに交差する直線とタイルを構成する矩形の辺との交点の組み合わせに対応し、2994個のエントリを持っている。該エントリーテーブルから先には、それぞれの場合に応じたエッジ情報を格納した配列テーブルがあり、該エントリーテーブルを経由してエッジ情報を得ることができるようになっている。該エッジ情報は図9(A)で述べたオフセット値を集めたデータ列で表現されている。
【0025】
以上説明したように、第1の実施例では、図形を構成する辺数が3又は4である単純図形である場合には、タイル処理によるエッジ検出処理を行う。具体的には、エッジ抽出処理部13は、入力された図形を構成する辺をタイル上の座標におき、次にタイルを構成する矩形辺と交差する点を求める。そして、求めた交差する点の座標データの組み合わせに基づいて、該当するエッジ情報を格納したデータベースから検索して取得することでエッジ情報を生成する。これにより、エッジ情報を生成する際の演算量を効率良く抑制することができるようになり、処理速度を効果的に向上させることができる。
【0026】
(第2の実施例)
次に、第2の実施例について説明する。
前述した第1の実施例では、分類部12での図形種別判定処理により入力された図形(入力オブジェクト)が、何であるかを検査し、その結果、図形が三角形又は四角形である場合にタイル処理によるエッジ抽出処理を行っていた。第2の実施例では、図形オブジェクトの個々に対して図形の種類を表す「図形種識別情報」を付加するようにして、星型等、その他の図形(但し、直線で構成される図形)に対してもタイル処理によるエッジ抽出処理を行えるようにする。さらには、図形の特性(例えば対称性等の特性)を利用することで処理の高速化を図れるものについては個別に処理手続き(アルゴリズム)を用意し、それぞれの図形に応じた最善の処理手順によってエッジ情報の生成を行う。
【0027】
図10に示すように図形等を扱うアプリケーションソフトウェアでは、プルダウンメニュー等からドキュメントに挿入する図形種(図形の種類、例えば三角形、四角形、台形、平行四辺形等)を選択できるようになっている。アプリケーション側から各図形に対して図形の種類を表す「図形種識別情報」を割り当てられるよう構成することで、印刷プリントジョブの中にある図形のデータそれぞれに対して該図形種識別情報を付加する。図10に示す例では、図形種識別情報として、三角形にID−1が割り当てられ、同様に、星型にID−2、回転された十字型の多角形にID−3がそれぞれ割り当てられている。
【0028】
図11は、第2の実施例におけるエッジ情報抽出処理の流れを示す図である。まず、エッジ抽出処理部13は、オブジェクト(図形)が入力されると不図示のカウンタにより入力されたオブジェクト(図形)の総数Nを積算する。そして、エッジ抽出処理部13は、オブジェクト(図形)が入力されると逐次、又は1ページ内(又は所定の処理単位内)の図形すべての入力が完了した時点で、積算された総数Nと予め設定された閾値T1を比較する(p1111)。比較の結果、オブジェクト総数Nが閾値T1より大きい場合(N>T1)には、エッジ抽出処理部13は、前述のスキャンラインによるエッジ検出処理(図2参照)を行い、エッジ情報を生成する。
【0029】
一方、オブジェクト総数Nが閾値T1以下である場合(N≦T1)には、エッジ抽出処理部13は、各オブジェクト(図形)に付加されている図形種識別情報に応じて処理手法を切り替えてタイル処理によるエッジ検出処理を行い、エッジ情報を生成する。例えば、図形種識別情報がID−1である場合には、エッジ抽出処理部13は、三角形に対する処理を行い、第1の実施例のような処理手順でエッジ情報抽出処理を行う。また、例えば図形種識別情報としてID−2が付与されている図形の場合(本実施例中の例では星型の場合等)には、エッジ抽出処理部13は、三角形の場合とは別の処理手順でエッジ情報抽出処理を行う。図形種識別情報としてID−2が付与されている図形に対する処理手続き(アルゴリズム)は、水平軸又は垂直軸に関して対称性を有する図形に適しているものであり、その処理の詳細は後述する。また、例えば図形種識別情報としてID−3が付与されている図形の場合(回転や変形が施されている多角形等)には、エッジ抽出処理部13は、三角形(ID−1系)や対称性を持つ図形(ID−2系)の場合とは異なる処理手順でエッジ情報抽出処理を行う。図形種識別情報としてID−3が付与されている図形に対する処理手続き(アルゴリズム)の詳細は後述する。
【0030】
以下、第2の実施例での、図形種識別情報としてID−2が付与されている図形に係るエッジ情報抽出処理について説明する。
図12は、図形種識別情報としてID−2が付与されている図形の一例を示しており、ここでは星型を一例として示している。星型の図形は、縦の中心軸に対して左右の形(輪郭)が線対称となっている。このように図形が線対称であり、かつ、対称軸が水平又は垂直である場合には、まず対称軸で分割した一方の側の輪郭に対してのみエッジ情報抽出処理を行う。そして対称軸に関して他方の側の輪郭に対しては、一方の側に対するエッジ情報抽出処理で得られたエッジデータを反転することで残りのエッジデータを生成することができる。この処理を効率的に実行するためにはレンダリング処理で用いるタイルの境界線と図形の対称軸とを一致させておく必要がある。本来、描画するオブジェクトはレンダリングする座標位置が指定されており、またレンダリング座標とタイルの位置関係は独立に決められているため、図形の対称軸とタイルの境界は一般的に一致しない。これを一致させるため、本実施例では一時的に図形の座標位置を相対座標空間上に移しエッジ情報抽出処理を実行した後にオリジナルの座標に再度移動させるよう構成している。
【0031】
図13は、第2の実施例における図形種識別情報としてID−2が付与されている図形に係るエッジ情報抽出処理の一例を示すフローチャートである。
エッジ抽出処理部13は、ステップS130にて入力された図形の座標データを、ステップS131にて相対座標空間での座標データに変換する。相対座標空間は、前述したように、対象とする図形の中心軸(星型の場合は図12において矢印で指す中央のライン)とタイルの境界線とが合致するように構成した座標空間である。例えば、図形の中心軸と外郭線とが交差する点(星型であれば例えば図中の最上にある頂点)を、タイルを構成する矩形の4つの頂点の内のいずれか一つ(図中のタイル境界を示す縦線と横線がクロスする十字の中心)に合致させるようにした座標空間である。次に、エッジ抽出処理部13は、ステップS132にて、対象とする図形を取り囲む矩形領域を生成し、ステップS133にて、該矩形領域が包含されるように該矩形領域を含む領域に対してタイルを配置する。対象とする図形を構成する辺(セグメントと呼ぶ)のうち、中心軸で分割した一方の側のセグメントに対してエッジ検出の処理を行うので、エッジ抽出処理部13は、ステップS134にて対象の辺の数をカウントする(セグメントの総数を数えてセットする)。エッジ抽出処理部13は、ステップS135にてループ処理を開始して、ステップS136にて対象の辺に関するエッジ情報を抽出する。ステップS134において設定した対象の辺の数だけ、このループ処理を行うことにより、エッジ抽出処理部13は、順次対象の辺に関するエッジ情報を抽出する。なお、ステップS136の処理では、第1の実施例における処理と同様にして、各辺がタイル境界を横切る交点の情報からエッジ情報を生成する。前述した一連のループ処理後は、中心軸で分割した図形の一方の側のセグメントについてエッジ情報の抽出が完了している状態である。エッジ抽出処理部13は、ステップS137にて、一方の側のエッジ情報に基づいて中心軸に対して他方の側のエッジ情報を生成した後、ステップS138にて、対象とする図形のエッジ情報を絶対座標系(もとの座標位置)に戻し処理を完了する。
【0032】
以下、第2の実施例での、図形種識別情報としてID−3が付与されている図形に係るエッジ情報抽出処理について説明する。
図14は、図形種識別情報としてID−3が付与されている図形の一例を示しており、ここでは回転された星型を一例として示している。星型の図形は、対称性を持つ図形であるが、図14に示すように回転された場合には対称軸も回転するため、図形の対称軸とタイル境界に係る縦又は横のラインとは一致しなくなる。このため、前述した図形種識別情報としてID−2が付与されている図形に対する処理のように、対称軸について一方の側のエッジデータを反転して他方の側のエッジデータを生成するという処理は実行できない。よって、図形種識別情報としてID−3が付与されている図形である場合には、エッジ抽出処理部13は、図形を構成する輪郭(エッジ)すべてのエッジ情報の生成を順次行う。具体的には、図形のエッジを抽出するために図形の座標位置を相対座標空間上へマッピングしてエッジ情報抽出処理を実行した後にオリジナルの座標に再度移動させる。相対座標空間上へのマッピングでは、対象とする図形(本例では回転した星型)を取り囲み、かつ相対座標空間における水平軸に平行な辺及び垂直軸に平行な辺からなる外接矩形を作成する。そして、該外接矩形の左上の頂点を、タイルを構成する矩形の4つの頂点の内のいずれか一つ(タイル境界を示す縦線と横線がクロスする十字の中心)に合致させる。
【0033】
図15は、第2の実施例における図形種識別情報としてID−3が付与されている図形に係るエッジ情報抽出処理の一例を示すフローチャートである。
エッジ抽出処理部13は、ステップS140にて入力された図形の座標データを、ステップS141にて相対座標空間での座標データに変換する。相対座標空間は、タイルで構成されており、前述したように図形に外接する相対座標空間の水平軸に平行な辺及び垂直軸に平行な辺を持つ矩形における左上の頂点を、タイル境界を示す縦線と横線がクロスするいずれかの点に合致させるようにした座標空間である。次に、エッジ抽出処理部13は、ステップS142にて、対象とする図形を取り囲む矩形領域を生成し、ステップS143にて、該矩形領域が包含されるように該矩形領域を含む領域に対してタイルを配置する。続いて、エッジ抽出処理部13は、ステップS144にて、対象とする図形を構成する辺(セグメントと呼ぶ)の数をカウントする(セグメントの総数を数えてセットする)。エッジ抽出処理部13は、ステップS145にてループ処理を開始して、ステップS146にて対象の辺に関するエッジ情報を抽出する。このループ処理を行うことにより、エッジ抽出処理部13は、順次対象の辺に関するエッジ情報を抽出する。ステップS145において設定した対象の辺の数だけ、このループ処理を行うことにより、エッジ抽出処理部13は、順次対象の辺に関するエッジ情報を抽出する。なお、ステップS146の処理では、第1の実施例における処理と同様にして、各辺がタイル境界を横切る交点の情報からエッジ情報を生成する。最後に、エッジ抽出処理部13は、ステップS137にて、対象とする図形のエッジ情報を絶対座標系(もとの座標位置)に戻し処理を完了する。
【0034】
図16は、第2の実施例を適用した場合のプリントジョブにおける各ページの処理時間の分布の一例を示したグラフである。図16において、横軸はジョブページ(1から16ページまで)を示しており、縦軸はそれぞれのページにおける処理時間(ミリ秒)を示している。図中、各折線データが、エッジ処理時間の変化を示している。実線はスキャンラインによるエッジ検出処理のみで処理を実行した場合の処理時間を示しており、ジョブ全体を通しての平均処理速度は170ミリ秒である。一方、点線は入力された図形のうち三角形に対してのみタイル処理によるエッジ検出処理を行い、その他についてはスキャンラインによるエッジ検出処理を実施した場合の処理時間を示している。図中に示される点線より明らかなように、2ページ、4ページ、8ページ、12ページの処理で高速化が実現されており、またジョブ全体を通しての平均処理速度は165ミリ秒である。さらに、破線は入力された図形のうち三角形(ID−1系の図形)や星型等(ID−2系の対称図形)に対してタイル処理によるエッジ検出処理を行い、その他についてはスキャンラインによるエッジ検出処理を実施した場合の処理時間を示している。図中に示される破線より明らかなように、8ページ、12ページ、13ページ、16ページの処理でさらなる高速化が実現されており、またジョブ全体を通しての平均処理速度は160ミリ秒である。
【0035】
以上説明したように、第2の実施例では、ジョブに含まれる多種多様な図形に対して、それぞれ最適な処理手法を用意し、図形に応じて適切に切り替えて各処理を実行することにより全体のスループットを向上させることができる。
【0036】
(第3の実施例)
前述したように、第1の実施例や第2の実施例のような処理を適用することで、エッジ情報生成処理に関する処理の高速化を実現することができる。いずれの場合にも処理の高速化の手段としてタイル処理によるエッジ検出処理を用いているが、これらの結果は、前述した例のようにオブジェクトの数が少ないという条件下で得られると考えられる。逆に、オブジェクトの数が極めて多い場合には、スキャンラインによるエッジ検出処理に比べてタイル処理によるエッジ検出処理の方が遅くなる場合があると考えられる。また、プリントジョブを生成する際に、アプリケーションソフト側が、各オブジェクトに対する図形種判定のための図形種識別情報の付与に対応できないケースも生じ得る。
【0037】
そこで、第3の実施例では、オブジェクトの数に応じて変化する各アルゴリズムにおける速度(処理時間)の変化特性を、特性情報等を記録する特性データベース(特性DB)へ記録しておく。例えば、各アルゴリズム(スキャンライン系とタイルベース系)における速度の変化特性(例えば処理速度が逆転するオブェクト数の情報等)を特性DBへ記録しておく。そして、該特性DBに記録されている情報に基づいて処理の切り替えを行うようにする。また、アプリケーションソフト側が図形種識別情報を付加しない場合でも、プリンタドライバ側で図形データを解析して適宜図形種識別情報を付加できるようにする。
【0038】
図17は、各アルゴリズムでのエッジ情報抽出処理の速度特性を示したグラフであり、横軸がオブジェクト数を示しており、縦軸が処理時間を示している。スキャンライン系処理及びタイルベース系処理のいずれの場合にもオブジェクトの数が増えると、それに伴って処理時間が増加するという傾向がある。図17において、(a)はスキャンライン系処理での特性を示しており、(b)はタイルベース系処理(前述した第1の実施例におけるエッジ検出処理)の特性を示している。また、(c)はスキャンライン系処理とタイルベース系処理との両方を使ったハイブリッド系の処理での特性を示している。以下、図17に示す各グラフ特性の違いについて詳細に述べる。
【0039】
図17(a)に示されるように、スキャンライン系処理では、領域A(オブジェクト数が少ない領域)では処理速度が遅い。しかし、オブジェクト数が増えてくると領域B(オブジェクト数が多い領域)では、オブジェクト数の増加に対する処理速度の低下が抑制される特性がある。これは、一つのスキャンライン上に多くの図形がかかってくるようなケースでは、ループ処理の効率が向上すること等が影響していると考えられる。一方で、図17(b)に示されるように、タイルベース系処理では、領域A(オブジェクト数が少ない領域)では処理速度が速いが、オブジェクト数が増えてくると領域B(オブジェクト数が多い領域)では、処理速度の低下が顕著となってくる。これはタイルベース系処理では、各オブジェクトに対して独立に処理を行っているため、図形の数に比例して処理ステップ数が増加すること等が影響していると考えられる。
【0040】
以上述べたように、スキャンライン系処理とタイルベース系処理とはそれぞれの領域において、逆の特性を有している。スキャンライン系処理及びタイルベース系処理の特性を調べて処理速度が逆転するオブジェクト数を取得し、そのオブジェクト数で処理を切り替えるようにすることで、互いの長所を引き出すことができる。図17(c)は、領域Aではタイルベース系処理で処理を行い、領域Bではスキャンライン系処理で処理を行うように、分岐点(処理速度が逆転するオブジェクト数)にて処理を切り替える場合の特性を示したものである。
【0041】
なお、オブジェクト数に応じた処理速度(処理時間)の変化特性は、各処理手順(アルゴリズム)に依存しているために各処理手順毎に特性を把握しなくてはならない。第2の実施例でいえば、図形種識別情報としてID−2が付与されている図形と、ID−3が付与されている図形との特性は、個々に違う特性を持っており、特にスキャンライン系のエッジ検出処理と速度が逆転するポイント(分岐点)は個々異なっている。
【0042】
また、図形の大きさ等も処理時間の特性に影響を与える。第1の実施例では、図8の説明で述べたように図形毎にタイルデータが順に生成されていき、タイルデータが生成されるタイル群は、相当数が生成されると適時マージ(合成)されるよう構成されている。これらを処理する際にはページを固定の区間幅(バンド幅:例えば1バンド=160ライン)の処理単位で区切って処理を進めている。第1の実施例における前提としては、多くの図形が固定の区間幅(例えば160ライン)の中に収まることを前提としていたが、指定される図形のサイズには制限がなく平均サイズが予め設定した区間幅を超えることも考えられる。図形のサイズが大きくなると特にスキャンラインによるエッジ検出処理特性に影響が出てくる。これはエッジ検出処理の特性(分岐点の変化)に影響を与える大きな要因の一つとなる。このことから本発明のより好適な実施態様としては図形サイズの違いも考慮した構成とすることが望ましい。第3の実施例では、2つの区間幅(160ライン、320ライン)を用意して、図形の平均サイズに応じて区間幅を適宜切り替えるようにする。
【0043】
したがって、第3の実施例においてエッジ情報抽出処理における特性は、図18に示すように、アルゴリズムの種類(本実施例では3種類)、及び図形の大きさ(本実施例では2種類)のそれぞれを掛け合わせた組み合わせ(合計6種類)の特性を測定する。そして、測定により得られた該特性に係る関連情報を特性DBに格納しておき、格納されている情報に基づいて処理の切り替えを行う。図18は、第3の実施例で用いる特性DBに格納される特性データ(6種類)を説明するための図である。
【0044】
図19は、プリンタドライバを含めたプリントシステムの構成例を示すブロック図である。図19においては、要素的特徴のみを示している。第3の実施例の説明における冒頭で述べたように、本例ではアプリケーションソフト側が図形種識別情報を付加しない場合でも、図形種に応じた処理の切り替えに対応できるようにプリンタドライバ側にて図形種解析処理を実行可能としている。図形の簡単なものは座標点の構成、位置関係からある程度の分類が可能である。なお、図形種解析処理を行うことにより処理時間は若干増加すると考えられるが、プリンタドライバは高速なホストPC側で行われるためプリントシステム全体のスループットを考慮するとメリットは存在する。
【0045】
各処理手順(アルゴリズム)における速度の変化特性に係る情報が格納される特性DB194は、プリンタドライバ191のモジュール内に存在している。アプリケーションから印刷が開始されると、プリンタドライバ191は、図形データ生成部192の出力情報を基にプリントジョブの生成を開始する。同時に、図形種解析部193は、各オブジェクトの図形種の解析処理を開始するとともに、該解析処理と平行して特性DB194にアクセスして各オブジェクト(図形)に対し図形種識別情報を付加していく。ここで図形種識別情報としてID−1が付与された図形は、第1の実施例で説明したようなタイルベースのエッジ情報抽出処理が割り当てられることとなる。また、図形種識別情報としてID−2が付与された図形は、第2の実施例で説明した図13に示したような処理手順でのタイルベースのエッジ情報抽出処理が割り当てられることとなる。さらに、図形種識別情報としてID−3が付与された図形は、第2の実施例で説明した図15に示したような処理手順でのタイルベースのエッジ情報抽出処理が割り当てられることとなる。
【0046】
前述したID−1、ID−2、ID−3の図形種識別情報は、PDL(ページ記述言語)データ内の(各オブジェクト毎に割り当てられている)拡張情報領域を適宜拡張して格納される。なお、PDLデータ内のオブジェクトに対してはデフォルトでは拡張情報は存在していない状態であり、該拡張情報がない図形等に関してはスキャンラインによるエッジ情報抽出処理が実行されることとなる。
【0047】
以上のように、プリンタドライバ191からは適宜図形種識別情報が付加されたPDLデータが生成され、該PDLデータはプリントスプーラー等の機能部195を経由してプリンタ装置196に転送される。プリンタ装置196では、PDL解析部197がデータの解析処理を行い、PDLデータ中、図形等のオブジェクトに対しては画像形成処理が起動されて、その処理において図形のエッジ情報が生成される。このとき、PDL解析部197及び機能部198は、各オブジェクトに対して拡張情報の有無を確認する。その結果、拡張情報が存在する場合は、その中に格納されている図形種識別情報(ID−1,ID−2,ID−3のいずれかであるか)を読み取り、読み取った図形種識別情報に基づいて、実行すべきエッジ抽出処理の選択を行う。そして、選択されたエッジ抽出処理に応じてエッジ抽出処理部199により処理が実行される。プリンタ装置196のコントローラは抽出されたエッジ情報に基づきイメージを生成し、プリンタ装置196のプリントエンジンは、生成されたイメージに基づき用紙にプリントを行う。
【0048】
以下、図20〜図24を参照して、第3の実施例における各図形に関するその他の処理について説明する。
図20は、第3の実施例における図形種解析等の処理を説明するための図である。図20に示すように、プリンタドライバ内ではGDI(グラフィックスインターフェース)からの描画命令に基づいてPDLの生成が行われる。その過程で図形種解析処理が行われて、図形に係る統計情報が取得される。この統計情報は、区間(ページ上の各バンド)毎に集計され、各区間における図形種別の個数及びその平均サイズ等が含まれる。ページにおける描画区間の幅は、図21に示すようにデフォルトでは160ラインとしているが、大きな図形が特定バンドに多く存在し該図形サイズの平均サイズが160ライン分よりも大きくなる場合には区間幅を拡張するよう構成されている。第3の実施例では、区間幅を拡張した場合のサイズを320ラインとしている。また、図形種毎に平均サイズを測定するため、各区間幅に関する情報は図形種毎に独立して管理する。図20に示した例で説明すると、あるジョブを解析した時の統計情報として、ID−1系のオブジェクト数が5200個、ID−2系のオブジェクト数が3200個、ID−3系のオブジェクト数が2100個、その他が6200個という情報が取得されたとする。区間幅を各ID毎にみると、ID−2とID−3において一部区間拡張がされている。例えば、ID−2系に係る統計情報において、ある区間(バンド)において1300個のオブジェクトが存在し、かつ、該オブジェクト(図形)の平均サイズが242であると、該区間については区間拡張を行い、区間幅は320ラインとされる。特性DBに対するID−2系の特性(分岐点の情報=特性DBでは閾値Tx)の問い合わせのために平均サイズの情報も利用する。図20に示した例での特性DBでは、ID−2系の特性において区間幅320ラインの場合の閾値は2400と記録されている。したがって、該区間幅320ラインに分布しているID−2系の図形についてエッジ情報抽出処理を行う場合には、第2の実施例で説明したようなタイルベースのエッジ情報抽出処理を実行すべきことが判明する。
【0049】
図22は、第3の実施例における図形種解析等の処理の一例を示すフローチャートである。ステップS221は、図形種の解析処理のエントリであり、このステップS221では、初期化処理等が行われる。ステップS222にて、オブジェクトリストが生成され、PDLの情報を受けてグラフィックスにおけるパス情報、座標値、又はテキストコード等、各オブジェクトデータの蓄積が行われる。ステップS223にて、処理単位(処理ページ)におけるオブジェクト数Nの積算(総数のカウント)が行われる。ステップS224にて、オブジェクト数Nと閾値Sとが比較される。比較の結果、オブジェクト数Nが閾値Sより多ければステップS231へ分岐し、スキャンラインによるエッジ抽出処理を実行した後に呼び出し側モジュールへ復帰する。一方、オブジェクト数Nが閾値S以下であればステップS225へ分岐し、ステップS225にて、詳細調査の処理が開始される。ステップS226にて、各区間の検査が行われる。ステップS227では該当する区間(つまり、問題がありそうな区間=オブジェクトが沢山存在する区間(バンド)等を意味する)において存在する図形のそれぞれにおいて平均のオブジェクトサイズを計算する。個々のオブジェクトサイズの例としては外接矩形の長辺の長さ等である。また、ある区間における平均オブジェクトサイズとは、図形のオブジェクトサイズの平均値である。次に、ステップS228にて、各バンドに対して該区域内に存在する図形オブジェクトの平均サイズが算出される。該区域内に存在する図形オブジェクトの算出方法に関しては図23を用いて後述する。ステップS229にて、算出された平均オブジェクトサイズと閾値Txが比較され、平均オブジェクトサイズが閾値Txより大きい場合にはステップS230へ分岐し、該当部分の区間幅を拡張する。ここで、閾値Txは、例えば特性DBより取得される。一方、ステップS229での比較の結果、平均オブジェクトのサイズが閾値Tx以下の場合には、区間幅の拡張は行わずに呼び出し側モジュールへ復帰する。
【0050】
図23は、区間幅が拡張された場合の様子を説明するための図である。図中、区間11は現検査対象区間となっている区間である。区間11は、図にあるように上ラインと下ラインに挟まれた区間であって、その幅は初期値として160ラインで定義されていている。この例では、この区間に関係している図形のサイズの平均を計算した結果、平均サイズが幅160ラインを超えることが判明したため、区間11の幅を拡張して320ラインとしている。このとき、区間12は区間11によってオーバーライドされる。この結果、該ページにおける区間の定義は、区間1、2、…10、11、13となる。なお、図中、検査の対象となるオブジェクトは、区間11内に存在する図形、及び区間11における下ラインにかかっている図形である。区間11における上ラインに掛かっている図形は検査の対象外としている。この定義(ルール)に従って、ページ上の各区間における平均オブジェクトサイズを一意に算出する。
【0051】
図24は、第3の実施例におけるエッジ情報抽出処理の流れを示す図である。まず、エッジ抽出処理部13は、オブジェクト(図形)が入力されると不図示のカウンタにより1ページ内のオブジェクト(図形)の総数Nをカウントする。そして、エッジ抽出処理部13は、カウントされた総数Nと予め設定された閾値T1とを比較する。その結果、ページ内に存在するオブジェクト数Nが閾値T1より多いと判断した場合には、エッジ抽出処理部13は、エッジ情報生成処理として、スキャンラインによるエッジ検出処理(図2参照)を行い、エッジ情報を生成する。
【0052】
一方、ページ内に存在するオブジェクト数Nが閾値T1以下であると判断した場合には、エッジ抽出処理部13は、各オブジェクト(図形)に付加されている図形種識別情報に基づいて処理手法を切り替えてエッジ検出処理を行い、エッジ情報を生成する。第3の実施例では、図形種識別情報は拡張情報として各オブジェクト毎に設定されている。エッジ抽出処理部13は、各オブジェクトに対して拡張情報の有無を検査し、拡張情報が無い場合はデフォルトの処理(スキャンラインによるエッジ検出処理)を行い、エッジ情報を生成する。一方、拡張情報が存在する場合には、エッジ抽出処理部13は、記録されている図形種識別情報を参照して処理手法を切り替える。例えば、図形種識別情報がID−1である場合には、エッジ抽出処理部13は、三角形に対する処理を行い、第1の実施例のような処理手順でエッジ情報抽出処理を行う。また、例えば図形種識別情報としてID−2が付与されている図形(水平又は垂直方向に対称性がある図形)の場合には、エッジ抽出処理部13は、第2の実施例で説明したID−2系の処理手順でエッジ情報抽出処理を行う。また、例えば図形種識別情報としてID−3が付与されている図形(回転や変形が施されている多角形等)の場合には、エッジ抽出処理部13は、第2の実施例で説明したID−3系の処理手順でエッジ情報抽出処理を行う。なお、拡張情報が存在してもオブジェクト数が特性DBの閾値Txより多い場合には、デフォルトの処理(スキャンラインによるエッジ検出処理)を行い、エッジ情報を生成する。
【0053】
(その他の実施例)
第3の実施例では、特性DBをプリンタドライバ側に設けるようにしているが、プリンタ装置側に設けるようにしても良い。また、予め測定したデータをスタティックに持つだけに限らず、プリンタ装置側の実行処理時間を適宜測定し、特性DBに格納するデータを更新するようにしても良い。
さらにはプリンタ装置側とドライバ装置側で同じ特性DB(同期した特性DB)を持つように相互に通信し、ステータスの確認やデータの転送を行うように構成しても良い。本実施例によれば図形種の違いを判定するために用いる図形種識別情報を定義しているが、アプリケーション側で該情報を付与しても良いし、プリンタドライバ側で該情報を付与しても良い。図形種識別情報の種類と対応するエッジ抽出処理の手続きの整合性をとるために、アプリケーション、プリンタドライバ、及びプリンタ装置の間で、予め定められた通信プロトコルによって適宜情報の伝達(又は通信等)を行うよう構成しても良い。
前述の各構成において、プリントジョブ生成の際にプリンタ毎に適したID情報を付加し、プリンタ機種が変更になった場合でも、適切なID情報に切り替えられるように、付加するID情報とプリンタ機種の対応を内部で管理する機構を持つようにしても良い。
【0054】
(本発明の他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【0055】
例えば、本実施形態に示した画像処理装置は、図25に示すようなコンピュータ機能700を有し、そのCPU701により本実施形態での動作が実施される。
コンピュータ機能700は、図25に示すように、CPU701と、ROM702と、RAM703とを備える。また、操作部(CONS)709のコントローラ(CONSC)705と、CRTやLCD等の表示部としてのディスプレイ(DISP)710のディスプレイコントローラ(DISPC)706とを備える。さらに、ハードディスク(HD)711、及びフレキシブルディスク等の記憶デバイス(STD)712のコントローラ(DCONT)707と、ネットワークインタフェースカード(NIC)708とを備える。それら機能部701、702、703、705、706、707、708は、システムバス704を介して互いに通信可能に接続された構成としている。
CPU701は、ROM702又はHD711に記憶されたソフトウェア、又はSTD712より供給されるソフトウェアを実行することで、システムバス704に接続された各構成部を総括的に制御する。すなわち、CPU701は、前述したような動作を行うための処理プログラムを、ROM702、HD711、又はSTD712から読み出して実行することで、本実施形態での動作を実現するための制御を行う。RAM703は、CPU701の主メモリ又はワークエリア等として機能する。
CONSC705は、CONS709からの指示入力を制御する。DISPC706は、DISP710の表示を制御する。DCONT707は、ブートプログラム、種々のアプリケーション、ユーザファイル、ネットワーク管理プログラム、及び本実施形態における前記処理プログラム等を記憶するHD711及びSTD712とのアクセスを制御する。NIC708はネットワーク713上の他の装置と双方向にデータをやりとりする。
【0056】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【産業上の利用可能性】
【0057】
本発明はプリンタ装置、又はディスプレイ等の表示装置、画像出力デバイスなどに利用することができる。
【符号の説明】
【0058】
11…入力部、12…分類部、13…エッジ抽出処理部、14…エッジ検出処理部、15…エッジ情報生成部
【特許請求の範囲】
【請求項1】
レンダリング処理を行う画像処理装置であって、
オブジェクトの情報を入力する入力手段と、
前記入力手段より入力されたオブジェクトの情報に基づいて、前記オブジェクトの図形種を分類する分類手段と、
前記分類手段により分類された図形種に応じて処理手順を切り替え、前記レンダリング処理に係るエッジ情報を生成する処理手段とを有することを特徴とする画像処理装置。
【請求項2】
前記処理手段は、前記分類手段により分類された図形種に応じた処理手順でエッジ検出を行うエッジ検出処理手段と、
前記エッジ検出処理手段での処理結果に基づいて、前記エッジ情報を生成するエッジ情報生成手段とを有することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記分類手段は、入力されるオブジェクトの情報に基づいて、前記オブジェクトの図形種を第1の図形種又は第2の図形種に分類し、
前記処理手段は、前記第1の図形種に分類されたオブジェクトについてはタイル処理によるエッジ検出を行って前記エッジ情報を生成し、前記第2の図形種に分類されたオブジェクトについてはスキャンラインによるエッジ検出を行って前記エッジ情報を生成することを特徴とする請求項1又は2記載の画像処理装置。
【請求項4】
前記タイル処理によるエッジ検出では、レンダリング空間におけるタイルの位置を特定し、特定されたそれぞれのタイルにて前記オブジェクトの辺との交点を算出し、算出された交点の情報に基づき前記エッジ情報を、予め計算しておいたデータベースから検索してエッジ情報を生成することを特徴とする請求項3記載の画像処理装置。
【請求項5】
前記分類手段は、入力されるオブジェクトの情報に基づいて、前記オブジェクトの辺の数が3又は4である場合には、当該オブジェクトを第1の図形種に分類することを特徴とする請求項3又は4記載の画像処理装置。
【請求項6】
前記分類手段は、入力されるオブジェクトの情報に基づいて、前記オブジェクトが対称図形である場合には、当該オブジェクトを第1の図形種に分類することを特徴とする請求項3〜5の何れか1項に記載の画像処理装置。
【請求項7】
前記処理手段は、処理単位内の前記オブジェクトの数が予め定めた閾値より多い場合には、前記分類手段により分類された図形種にかかわらず、スキャンラインによるエッジ検出を行って前記エッジ情報を生成することを特徴とする請求項1〜6の何れか1項に記載の画像処理装置。
【請求項8】
請求項1〜7の何れか1項に記載の画像処理装置を有し、
プリントジョブを生成する際に、前記オブジェクトの図形種に関する情報を付加することを特徴とするプリントシステム。
【請求項9】
レンダリング処理を行う画像処理方法であって、
オブジェクトの情報を入力する入力工程と、
前記入力工程にて入力されたオブジェクトの情報に基づいて、前記オブジェクトの図形種を分類する分類工程と、
前記分類工程にて分類された図形種に応じて処理手順を切り替え、前記レンダリング処理に係るエッジ情報を生成する処理工程とを有することを特徴とする画像処理方法。
【請求項10】
レンダリング処理に係る画像処理をコンピュータに実行させるためのプログラムであって、
オブジェクトの情報を入力する入力ステップと、
前記入力ステップにて入力されたオブジェクトの情報に基づいて、前記オブジェクトの図形種を分類する分類ステップと、
前記分類ステップにて分類された図形種に応じて処理手順を切り替え、前記レンダリング処理に係るエッジ情報を生成する処理ステップとをコンピュータに実行させるためのプログラム。
【請求項1】
レンダリング処理を行う画像処理装置であって、
オブジェクトの情報を入力する入力手段と、
前記入力手段より入力されたオブジェクトの情報に基づいて、前記オブジェクトの図形種を分類する分類手段と、
前記分類手段により分類された図形種に応じて処理手順を切り替え、前記レンダリング処理に係るエッジ情報を生成する処理手段とを有することを特徴とする画像処理装置。
【請求項2】
前記処理手段は、前記分類手段により分類された図形種に応じた処理手順でエッジ検出を行うエッジ検出処理手段と、
前記エッジ検出処理手段での処理結果に基づいて、前記エッジ情報を生成するエッジ情報生成手段とを有することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記分類手段は、入力されるオブジェクトの情報に基づいて、前記オブジェクトの図形種を第1の図形種又は第2の図形種に分類し、
前記処理手段は、前記第1の図形種に分類されたオブジェクトについてはタイル処理によるエッジ検出を行って前記エッジ情報を生成し、前記第2の図形種に分類されたオブジェクトについてはスキャンラインによるエッジ検出を行って前記エッジ情報を生成することを特徴とする請求項1又は2記載の画像処理装置。
【請求項4】
前記タイル処理によるエッジ検出では、レンダリング空間におけるタイルの位置を特定し、特定されたそれぞれのタイルにて前記オブジェクトの辺との交点を算出し、算出された交点の情報に基づき前記エッジ情報を、予め計算しておいたデータベースから検索してエッジ情報を生成することを特徴とする請求項3記載の画像処理装置。
【請求項5】
前記分類手段は、入力されるオブジェクトの情報に基づいて、前記オブジェクトの辺の数が3又は4である場合には、当該オブジェクトを第1の図形種に分類することを特徴とする請求項3又は4記載の画像処理装置。
【請求項6】
前記分類手段は、入力されるオブジェクトの情報に基づいて、前記オブジェクトが対称図形である場合には、当該オブジェクトを第1の図形種に分類することを特徴とする請求項3〜5の何れか1項に記載の画像処理装置。
【請求項7】
前記処理手段は、処理単位内の前記オブジェクトの数が予め定めた閾値より多い場合には、前記分類手段により分類された図形種にかかわらず、スキャンラインによるエッジ検出を行って前記エッジ情報を生成することを特徴とする請求項1〜6の何れか1項に記載の画像処理装置。
【請求項8】
請求項1〜7の何れか1項に記載の画像処理装置を有し、
プリントジョブを生成する際に、前記オブジェクトの図形種に関する情報を付加することを特徴とするプリントシステム。
【請求項9】
レンダリング処理を行う画像処理方法であって、
オブジェクトの情報を入力する入力工程と、
前記入力工程にて入力されたオブジェクトの情報に基づいて、前記オブジェクトの図形種を分類する分類工程と、
前記分類工程にて分類された図形種に応じて処理手順を切り替え、前記レンダリング処理に係るエッジ情報を生成する処理工程とを有することを特徴とする画像処理方法。
【請求項10】
レンダリング処理に係る画像処理をコンピュータに実行させるためのプログラムであって、
オブジェクトの情報を入力する入力ステップと、
前記入力ステップにて入力されたオブジェクトの情報に基づいて、前記オブジェクトの図形種を分類する分類ステップと、
前記分類ステップにて分類された図形種に応じて処理手順を切り替え、前記レンダリング処理に係るエッジ情報を生成する処理ステップとをコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2011−34139(P2011−34139A)
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願番号】特願2009−176928(P2009−176928)
【出願日】平成21年7月29日(2009.7.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願日】平成21年7月29日(2009.7.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]