(57)【要約】【課題】  これから処理されるオブジェクトに対して結合処理を行えば効果的にオブジェクトの数が削減できると予測できる場合に、オブジェクトを結合するための処理を、これから処理されるオブジェクトに対して行う。【解決手段】  結合のための処理をオブジェクトに対して行うモードと行わないモードを切り替えることで、結合によるオブジェクトの削減効果が低いと予測されるような場合でも効率的にＤＬを生成する。【選択図】  図６
2016038801.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトのそれぞれを順次、取得する取得手段と、
前記取得手段で取得されたオブジェクトに対して、別のオブジェクトとの結合のための処理を行う結合手段と、
前記複数のオブジェクトのうちの前記取得手段で取得された一部のオブジェクトに対して所定の判定処理を行った結果に基づいて、
前記結合のための処理を、前記一部のオブジェクトよりも後に前記取得手段で取得されたオブジェクトに対して行う第１のモードと、
前記結合のための処理を、前記一部のオブジェクトよりも後に前記取得手段で取得されたオブジェクトに対して省略する第２のモードとの間でモードを切り替える切り替え手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記一部のオブジェクトは、前記第１のモードにおいて前記取得手段で取得されたオブジェクトであって、
前記所定の判定処理は、前記一部のオブジェクトに対して前記結合処理を行った結果、前記結合処理の前後におけるオブジェクトの数の比率が閾値以上であるかを判定する処理を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記一部のオブジェクトは、前記第２のモードにおいて前記取得手段で取得されたオブジェクトであって、
前記所定の判定処理は、前記一部のオブジェクトに所定のオブジェクトが含まれるか否かを判定する処理を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記所定のオブジェクトとは、ＲＯＰ３指定のオブジェクトであることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記所定のオブジェクトとは、それぞれが単色フィルを持つ複数のオブジェクトであって、それぞれの単色フィルで示される色の種類の合計が閾値以内であることを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記一部のオブジェクトは、前記第２のモードにおいて前記取得手段で連続して取得されたオブジェクトであって、
前記所定の判定処理は、前記一部のオブジェクトの数が所定数を超えるか否かを判定する処理を含む請求項１、または、３乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記結合のための処理には、前記取得手段で取得されるオブジェクトを、別のオブジェクトと結合する処理が含まれることを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記結合のための処理には、前記取得手段で取得されるオブジェクトを、別のオブジェクトと結合するためにスプールする処理が含まれることを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
前記結合のための処理には、前記取得手段で取得されるオブジェクトを、別のオブジェクトと結合すべきか否かを判定する処理が含まれることを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
前記切り替え手段によって切り換えられるモードに基づいて、前記結合のための処理が行われた前記取得手段で取得されたオブジェクト、または、前記結合のための処理が行われなかった前記取得手段で取得されたオブジェクトから、ディスプレイリストを生成する生成手段をさらに有する請求項１乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
オブジェクトを順次、取得する取得工程と、
前記取得手段で取得されるオブジェクトに対して、別のオブジェクトとの結合のための処理を行う結合工程と、
前記取得手段で取得されるオブジェクトの一部のオブジェクトに対して所定の判定処理を行った結果に基づいて、
前記結合のための処理を、前記一部よりも後に前記取得手段で取得されるオブジェクトに対して行う第１のモードと、
前記結合のための処理を、前記一部よりも後に前記取得手段で取得されるオブジェクトに対して省略する第２のモードとの間でモードを切り替える切り替え工程と、
を有することを特徴とする画像処理方法。
【請求項１２】
請求項１乃至１０の何れか１項に記載の各手段として、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画オブジェクトの結合処理を行うための画像処理装置、画像処理方法、プログラムに関する。
【背景技術】
【０００２】
印刷データに含まれる連続する複数のオブジェクトのそれぞれを順次、取得し、それら複数のオブジェクトをより少数のオブジェクトに結合し、結合された少数のオブジェクトそれぞれに対して後続の処理を行う技術が特許文献１に開示される。例えば後続の処理として、オブジェクト毎のディスプレイリスト（ＤＬ）を生成する処理がある。複数のオブジェクトそれぞれのＤＬを生成するよりも、結合されたより少数のオブジェクトそれぞれのＤＬを生成する方が、ＤＬの生成処理に係る処理コストは低減する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−８７２６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１によれば、各オブジェクトに対して、オブジェクトを結合するための処理（例えば、オブジェクトの結合可否を判定する処理や、結合処理そのもの）が行われる。しかし、連続する多数のオブジェクトの傾向によっては、結合するための処理を行ったとしても、オブジェクトの数が効果的に削減されないことがある。
【０００５】
例えば、１つ目のオブジェクト自体が結合可能なオブジェクトであると判定され、２つ目のオブジェクトは１つ目のオブジェクトと結合されると判定され、３つ目のオブジェクトは１つ目および２つ目のオブジェクトとは結合されないと判定される場合がある。この場合、結合が行われた後のオブジェクトは、１つ目のオブジェクトと２つ目のオブジェクトとが結合されたオブジェクト、および、結合されなかった３つ目のオブジェクトの２つのオブジェクトである。
【０００６】
確かにオブジェクトは、３つから２つへと結合されており、後続の処理がＤＬ生成処理であったならば、ＤＬ生成の処理コストは低減する。しかし、３つのオブジェクトを結合するために行われた処理（上述の結合可否の判定処理、結合処理）にも当然処理コストがかかっている。したがって、結合するために行われた処理にかかった分の処理コストが、低減した分の生成処理の処理コストを上回ると、描画オブジェクトからＤＬを生成する全体の処理コストは上昇する。言い換えれば、オブジェクトを結合するための処理のオーバーヘッドが大きすぎる場合に全体の処理効率が低下する。
【課題を解決するための手段】
【０００７】
上記例のような、３つのオブジェクトを順次取得する前に、それら３つのオブジェクトに対して結合するための処理を行うと得かそうでないかを、事前予測してその予測を活用することができれば効果的である。そこで、これからの未来に処理されるオブジェクトに対して結合処理を行えば効果的にオブジェクトの数が削減できると予測できる場合に、オブジェクトを結合するための処理を、未来に処理されるオブジェクトに対して行うことを考える。この予測は、現在または過去に順次取得して処理されたオブジェクトのうちの一部を分析することで可能であることを本発明者は発見した。
【０００８】
本発明の画像処理装置は、複数のオブジェクトのそれぞれを順次、取得する取得手段と、前記取得手段で取得されたオブジェクトに対して、別のオブジェクトとの結合のための処理を行う結合手段と、前記複数のオブジェクトのうちの前記取得手段で取得された一部のオブジェクトに対して所定の判定処理を行った結果に基づいて、前記結合のための処理を、前記一部のオブジェクトよりも後に前記取得手段で取得されたオブジェクトに対して行う第１のモードと、前記結合のための処理を、前記一部のオブジェクトよりも後に前記取得手段で取得されたオブジェクトに対して省略する第２のモードとの間でモードを切り替える切り替え手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、結合によるオブジェクトの削減効果が低いと予測されるような場合でも効率的にＤＬを生成することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例における印刷装置のハードウェア構成の一例を示す図である。
【図２】実施例における印刷装置のソフトウェアモジュール構成の一例を示す図である。
【図３】実施例におけるＤＬ生成部のサブモジュールの一例を示す図である。
【図４】実施例におけるオブジェクトの構成の一例を示す図である。
【図５】実施例における印刷方法の一例を示すフローチャート図である。
【図６】実施例におけるＤＬ生成処理の一例を示すフローチャート図である。
【図７】実施例におけるオブジェクト傾向判定処理の一例を示すフローチャート図である。
【図８】実施例における受信したオブジェクトと結合結果の一例を示す図である。
【図９】実施例における結合モード判定の構成の一例を示すフローチャート図である。
【図１０】実施例におけるＤＬ化処理の構成の一例を示すフローチャート図である。
【図１１】実施例におけるＤＬの構成の一例を示す図である。
【図１２】実施例における受信したオブジェクトの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本実施例の印刷装置について図面を用いて説明する。なお本実施例の印刷装置は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）であっても、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）であっても良い。また、本実施例の印刷装置の印刷エンジン（単にエンジン）は、電子写真方式であっても、インクジェット方式であっても、あるいは、その他の方式であっても良い。
【００１２】
＜ハードウェア構成＞
図１は、本実施例の印刷装置１００のハードウェア構成の一例を示すブロック図である。
【００１３】
ＣＰＵ１０１は、印刷装置１００のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。後述する印刷装置１００のソフトウェア２００はこのＣＰＵ１０１上で動作する。ＲＡＭ１０２は、ＣＰＵ１０１がアクセスできるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。ＲＡＭ１０２は後述する印刷装置１００のソフトウェア２００の動作に必要なメモリの確保先として利用される。ＲＯＭ１０３は、印刷装置１００のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）である。後述する印刷装置１００のソフトウェア２００のプログラムは、ＲＯＭ１０３に格納されており、ＣＰＵ１０１に読み込まれることで実行される。ネットワークＩＦ１０４は、ＬＡＮ（ＬｏｃａｌＡｒｅａＮｅｔｗｏｒｋ）等のネットワークを介して外部装置（ＰＣや他の印刷装置等）と接続し、主に印刷データの受信を行うためのインタフェースである。印刷データとは、ページ記述言語（ＰＤＬ：Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述されたオブジェクトの描画コマンドを含むＰＤＬデータ（単にＰＤＬとも呼ぶ）である。エンジン１０５は、ＣＰＵ１０１によって解釈されたＰＤＬに基づいて、画像を印刷用紙に印刷する印刷エンジンである。尚、本実施例ではネットワークを介して外部装置からＰＤＬを受信する例について説明するが、外部装置からの受信ではなく、ＰＤＬがＲＡＭ１０２に保存されている場合においても、ＲＡＭ１０２からＰＤＬを読み出す事で、同様に画像を印刷できる。
【００１４】
＜ソフトウェア構成＞
図２は、本発明の本実施例に係る印刷装置１００のソフトウェア構成の一例を示す図である。
【００１５】
印刷装置１００のソフトウェア２００は、４つのソフトウェアモジュールで構成され、これらは全てＣＰＵ１０１がＲＯＭ１０３に格納されているプログラムを実行することで実現される。
【００１６】
ＰＤＬ受信部２０１は、ネットワークＩＦ１０４を介してＰＤＬを受信する為のモジュールである。受信されたＰＤＬは、ＲＡＭ１０２に格納される。
【００１７】
ＰＤＬ解釈部２０２は、格納されたＰＤＬに含まれる描画コマンドを読み出して解釈する為のモジュールである。この描画コマンドに従い、ＰＤＬ解釈部２０２は、オブジェクトの情報（属性情報、パス形状情報、オペランド情報、オペレータ情報）を決定し、オブジェクトを生成する。オブジェクトの情報について次に説明する。
【００１８】
図４は、ＰＤＬ解釈部２０２によって生成されるオブジェクトが有する情報４０１〜４０４を説明する図である。
【００１９】
属性情報４０１は、オブジェクトが持つ属性を示す情報である。この情報は、属性によって画像処理の内容を切り替える際に用いられる。属性の種類には、例えばグラフィック属性、イメージ属性、ライン属性、文字属性などがある。
【００２０】
パス形状情報４０２は、オブジェクトの描画範囲を示す情報や、オブジェクトの外形を点列で表現したパス点列情報等、オブジェクトの描画位置や形状に関する情報である。例えばオブジェクトの描画範囲を示す情報には、描画範囲が矩形で表現できる場合、矩形の左上および右下の座標が含まれる。パス点列情報には、各パス点の座標が含まれる。
【００２１】
オペランド情報４０３は、オブジェクトのオペランド種別（単色フィル、イメージフィル等）、色空間（ＲＧＢ、Ｇｒａｙ等）等、描画に関する情報である。なお単色フィルとは、「白」などの単色の塗り指定のことであり、イメージフィルとは、例えばビットマップ画像などのイメージの塗り指定のことである。
【００２２】
オペレータ情報４０４は、オブジェクトの重なり順に関連する情報である。例えば、オペレータ情報には、オブジェクトに指定されるＲＯＰ（ＲａｓｔｅｒＯｐｅｒａｔｉｏｎ）の種別を示す情報が含まれている。ＲＯＰには、公知のＲＯＰ２、ＲＯＰ３などがある。
【００２３】
以上がオブジェクトに含まれる情報である。
【００２４】
ＤＬ生成部２０３は、ＰＤＬ解釈部２０２で生成されたオブジェクトに基づいて、中間データであるディスプレイリスト（ＤＬ：Ｄｉｐｌａｙ  Ｌｉｓｔ）を生成する為のモジュールである。尚、ＤＬ生成部２０３のサブモジュールについては、図３を用いて後述する。
【００２５】
ＲＩＰ処理部２０４は、ＤＬ生成部２０３で生成されたＤＬに基づいて、ページのレンダリングを行う為のモジュールである。ＤＬに基づいてページのレンダリングを行うとは、そのＤＬで表現されているページのビットマップ画像を生成することである。
【００２６】
＜ＤＬ生成部のサブモジュール＞
図３は、本発明の本実施例に係るＤＬ生成部２０３を構成するサブモジュールのソフトウェア構成の一例を示す図である。
【００２７】
管理部３００は、結合モードや結合判定結果に応じて処理を制御する為のサブモジュールである。
【００２８】
オブジェクト傾向判定部３０１は、（１）処理中の現在のオブジェクトの情報、および、（２）処理中の現在のオブジェクトの情報とそれまでに処理されたオブジェクトの情報との関係性に基づいて、結合モードを切り替えるかを判定する為のサブモジュールである。結合モードについては後述する。
【００２９】
ＰＤＬには、ＰＤＬの先頭から末尾まで各描画コマンドが連続して含まれる。連続する各描画コマンドから生成される各オブジェクトも連続する。一般的に、順序が連続するオブジェクトどうしは類似するという傾向がある。例えば、結合効果（後述）の高いオブジェクトの後は、同じく結合効果の高いオブジェクトが連続する。また例えば、結合効果の低いオブジェクトの後は、同じく結合効果の低いオブジェクトが連続する。
【００３０】
ここでいう結合効果とは、例えばＭ個のオブジェクトに対してオブジェクト結合部３０３による結合処理が行われた結果Ｎ個のオブジェクトが得られた場合の、比率Ｍ／Ｎのことである。結合効果の高いオブジェクトとは、このオブジェクトを含むＭ個のオブジェクトに対して結合処理を行った場合にＭ／Ｎが大きいオブジェクトである。逆に、結合効果の低いオブジェクトとは、このオブジェクトを含むＭ個のオブジェクトに対して結合処理を行った場合にＭ／Ｎがそれほど大きくないオブジェクトである。
【００３１】
結合効果の高いオブジェクト傾向から結合効果の低いオブジェクト傾向への変化、あるいは、その逆の変化は、処理中の現在のオブジェクトの情報やそれまでに処理したオブジェクトの結合結果から、検出することができる。
【００３２】
オブジェクトスプール部３０２は、処理中のオブジェクトをスプールする為のサブモジュールである。スプールされたオブジェクトはＲＡＭ１０２に格納される。
【００３３】
オブジェクト結合部３０３は、オブジェクトスプール部３０２によってスプールされたオブジェクトを結合する為のサブモジュールである。オブジェクトの結合の詳細については後述する。
【００３４】
結合モード判定部３０４は、オブジェクト結合部３０３によって結合されたオブジェクトの結合効果に基づいて、結合モードを切り替えるかを判定する為のサブモジュールである。
【００３５】
ＤＬ変換部３０５は、オブジェクトをＤＬに変換する為のサブモジュールである。なおこのオブジェクトからＤＬへの変換のことを、ＤＬの生成とも呼ぶ。
【００３６】
上記した結合モードは、結合推進モードと結合停止モードとを有する。
【００３７】
結合推進モード中は、処理中の現在のオブジェクトに対して、処理中のオブジェクトの情報とスプール済のオブジェクトの情報とに基づいて、処理中のオブジェクトをスプール済みのオブジェクトと結合すべきか否かを判定する処理（図６のＳ６０４）が行われる。そしてその判定に基づいて、処理中のオブジェクトをスプールする処理か、スプール済みのオブジェクトを結合する処理が行われる。すなわち、結合推進モードとは、結合の判定処理を処理中のオブジェクトに対して行い、その判定結果に従ってスプール処理あるいは結合処理を行う第１のモードである。
【００３８】
一方、結合停止モード中は、処理中の現在のオブジェクトをスプール済みのオブジェクトと結合すべきか否かを判定する処理（図６のＳ６０４）がスキップされる。そのためこの判定処理にかかる処理コストを削減できる。また、処理中の現在のオブジェクトのスプール処理（図６のＳ６０６）、あるいは、スプール済みのオブジェクトに対する結合処理（図６のＳ６０７）もスキップされ、処理中の現在のオブジェクトをＤＬに変換する処理（図６のＳ６０９）が行われる。すなわち、無駄なスプール処理および結合処理にかかる処理コストを削減しつつ、ＤＬを生成することが可能となる。すなわち、結合停止モードとは、結合推進モードで行う判定処理、スプール処理、結合処理を省略する第２のモードである。
【００３９】
これら結合モードの切り替えは、結合前後のオブジェクトの状態や、それまでスキップの対象となったオブジェクトの情報に基づいて行われる。モードの切り替えの詳細については、図６を用いて後述する。
【００４０】
＜印刷処理＞
図５は本実施例における印刷装置１００が行う印刷処理のフローチャートである。図５に示す処理は、ＲＯＭ１０３に記憶されたプログラムをＣＰＵ１０１が実行することによって実現される。
【００４１】
ステップＳ５０１において、ＰＤＬ受信部２０１は、ネットワークＩＦ１０４を介してＰＤＬを受信する。
【００４２】
ステップＳ５０２において、ステップＳ５０１で受信したＰＤＬに含まれる全ての描画コマンドの読み出しが終了するまで、ＰＤＬに含まれる描画コマンドを先頭から順に１つずつ読み出す。このステップＳ５０２における描画コマンドを１つずつ読み出す処理は、オブジェクトを順次、取得する処理に相当する。読みだされた１つの描画コマンドに対して、以下のステップＳ５０３とステップＳ５０４が繰り返される。
【００４３】
ステップＳ５０３において、ＰＤＬ解釈部２０２は、ステップＳ５０２で読みだされた１つの描画コマンドを解釈し、オブジェクトを生成する。
【００４４】
ステップＳ５０４において、ＤＬ生成部２０３は、ステップＳ５０３で生成されたオブジェクトからＤＬを生成する。このフローの詳細については、図６を用いて後述する。
【００４５】
ステップＳ５０５において、ＲＩＰ処理部２０４は、ステップＳ５０４で生成されたＤＬに基づいて、各ページのレンダリングを行う。レンダリングによって得られた各ページのビットマップ画像はエンジン１０５に送られ、紙に印刷される。
【００４６】
＜ＤＬ生成部の処理＞
図６は本実施例におけるステップＳ５０４で行われるＤＬ生成部２０３の処理の詳細を示すフローチャート図である。このフローでは、（１）オブジェクトをスプールするか、（２）スプール済のオブジェクトを結合した後ＤＬ化するか、（３）スプールや結合をせずそのままＤＬ化するか、を、（１）結合モードおよび（２）処理中のオブジェクトに応じて切り替える。本実施例での結合モードの初期状態は結合推進モードとするが、結合停止モードから始めても良い。
【００４７】
ステップＳ６０１において、管理部３００は、現在の結合モードが結合推進モードであるかを判定する。現在の結合モードが結合推進モードであると判定された場合は、ステップＳ６０４へ移行し、処理中の現在のオブジェクトに対する結合判定が行われる。そうでない場合は現在の結合モードが結合停止モードであるとみなして、ステップＳ６０２へ移行し、処理中の現在のオブジェクトおよび後続するオブジェクトが、ステップＳ６０４の結合判定が行われるべきオブジェクトであるのかが判定される。
【００４８】
ステップＳ６０２において、オブジェクト傾向判定部５０２は、処理中の現在のオブジェクトの情報とそれまでに処理されたオブジェクトの情報とから、オブジェクト傾向を判定する。すなわちこの処理は、Ｓ５０２の処理によって読みだされるべき複数の描画コマンドのうちの既に読みだされた描画コマンドに相当する一部のオブジェクトに対して、オブジェクト傾向の判定処理が行われることに相当する。オブジェクト傾向の判定は、後続するオブジェクトが結合に適する可能性が高い（結合効果が高い）のかどうかを知るために行われる。言い換えればここでの処理は、現在および過去に処理されたオブジェクトの情報に基づいて、未来に処理されるオブジェクトに対する結合モードを決定あるいは仮決定する。
【００４９】
なお、この判定処理は結合停止モード中に行われる。その理由は、結合停止モードから抜け出すタイミングを見つけるためである。このタイミングは、本実施例においては、現在のオブジェクトやそれまでに処理されたオブジェクトの情報から、以降のオブジェクトに対して結合するための処理（ステップＳ６０４〜Ｓ６０８）を行った方が効率的だとみなされるタイミングに相当する。この判定処理については、図７を用いて後述する。
【００５０】
ステップＳ６０３において、管理部３００は、現在の結合モードに応じて処理を切り替える。現在の結合モードが結合推進モードである場合は、ステップＳ６０４へ、結合停止モードである場合は、ステップＳ６１０へ移行する。このように、結合モードが結合停止モードである場合には以降のステップＳ６０４〜Ｓ６０８がスキップされるため、各判定やスプールにかかる処理コストを削減することができる。
【００５１】
ステップＳ６０４において、オブジェクト結合部３０３は、処理中の現在のオブジェクトが、スプール済の別のオブジェクトと結合すべきオブジェクトであるか判定する。判定条件の一例は、現在のオブジェクトの描画位置が、スプール済みの別オブジェクトの描画位置と閾値以上離れているか否かである。この条件例においては、描画位置どうしが閾値以上離れている場合に、現在のオブジェクトとスプール済みの別オブジェクトとを結合すべきでないと判定される。そうでない場合に、現在のオブジェクトとスプール済みの別オブジェクトとを結合すべきであると判定される。なお現在のオブジェクトの描画位置とは、現在のオブジェクトを囲む矩形（バウンディングボックス）の左上頂点の座標である。スプール済みの別オブジェクトの描画位置とは、スプール済みの全別オブジェクトを囲む矩形（バウンディングボックス）の左上頂点の座標である。
【００５２】
なお上記の判定条件は一例であって、他の判定条件であっても良い。例えば、現在のオブジェクトとスプール済みの別オブジェクトとを囲む矩形（バウンディングボックス）内に対する、現在のオブジェクトとスプール済みの別オブジェクトの占有面積が閾値未満であるかを判定条件としても良い。閾値未満であれば結合すべきでないと判定され、そうでなければ結合すべきであると判定される。
【００５３】
なお、スプール済みのオブジェクトがない場合、処理中の現在のオブジェクトは後続するオブジェクトと結合可能であるかもしれないので、結合すべきであると判定される。
【００５４】
ステップＳ６０５において、管理部３００は、ステップＳ６０４の判定の結果に応じて処理を切り替える。処理中の現在のオブジェクトが、スプール済みの別のオブジェクトと結合すべきオブジェクトであると判定された場合は、ステップＳ６０６へ移行する。そうではなく、処理中の現在のオブジェクトが、スプール済みの別オブジェクトと結合すべきでないオブジェクトであると判定された場合はステップＳ６０７へ移行する。
【００５５】
ステップＳ６０６において、オブジェクトスプール部３０２は、処理中の現在のオブジェクトをスプールする。尚、ここでは説明のためスプールとしているが、このステップでオブジェクト結合部３０３が処理中の現在のオブジェクトとスプール済のオブジェクトを予め結合しても良い。
【００５６】
ステップＳ６０７において、オブジェクト結合部３０３は、スプール済みの１つ以上のオブジェクトを入力とする。そしてオブジェクト結合部３０３は、それら入力された１つ以上のオブジェクトに対して結合処理を行い、１つ以上の結合されたオブジェクトを出力する。そしてオブジェクト結合部３０３は、結合処理が行われたスプール済みのオブジェクトを削除する。なお、スプール済みのオブジェクトが１つだけである場合に、オブジェクト結合部３０３は、結合処理において何も行わずに、入力されたオブジェクトをそのまま出力する。
【００５７】
オブジェクトの結合処理の方法として、本実施例ではマルチパス結合と呼ばれる方法を説明する。マルチパス結合は、異なる複数の属性を持つ複数のオブジェクトを、その異なる属性の属性ごとに分けてオブジェクトを結合する。例えばイメージ属性を持つオブジェクトとグラフィック属性を持つオブジェクトとを含む複数のオブジェクトに対してマルチパス結合処理を行うと、結合結果として、イメージ属性を持つ１つのオブジェクトとグラフィック属性を持つ１つのオブジェクトとが出力される。
【００５８】
マルチパス結合では、オブジェクト同士の属性やオペランド種別や色空間が異なると、それらオブジェクトどうしを結合することができない。そのためオブジェクト結合部３０３は、処理中の現在のオブジェクトおよびスプール済みのオブジェクトの属性の情報およびオペランド情報に含まれるオペランド種別や色空間の情報をチェックして、結合処理を行う。
【００５９】
入力された複数のオブジェクトのマルチパス結合の例を、図８（ａ）、（ｂ）を用いて説明する。図８（ａ）、（ｂ）のそれぞれは、３つの矩形のオブジェクトをマルチパス結合する異なる２つのケースである。スプール済みのオブジェクト８０１〜８０６は表１の通りであり、処理中の現在のオブジェクトは、スプール済みのオブジェクトとは結合すべきであると判定されなかったものとする。
【００６０】
図８（ａ）には、オブジェクト８０１、８０２、８０３が図示される。オブジェクト８０１および８０２はそれぞれ、上書きで描画される、グラフィック属性を持つ白色の単色フィルの矩形オブジェクトである。オブジェクト８０３は、上書き（ＲＯＰ２：ＣＯＰＹＰＥＮ）で描画されるイメージ属性を持つイメージフィルの矩形オブジェクトである。
【００６１】
図８（ｂ）には、オブジェクト８０４、８０５、８０６が図示される。オブジェクト８０４、８０５、８０６はそれぞれ、上書き（ＲＯＰ２：ＣＯＰＹＰＥＮ）で描画される、グラフィック属性を持つ白色の単色フィルの矩形オブジェクトである。
【００６２】
【表１】
2016038801.tif 000003
【００６３】
このようなオブジェクトに対してマルチパス結合を行った結果が図８（ａ）、（ｂ）および表２に示される。
【００６４】
図８（ａ）は、オブジェクト８０１〜８０３に対してマルチパス結合を行った結果、オブジェクト８１０、８３０が出力されることを示している。
【００６５】
オブジェクト８１０は、表２に示されるように、属性情報がグラフィックであり、パス形状情報がパス８１１であり、オペランド情報がＲＧＢ色空間の白色の単色フィル８１２であり、オペレータ情報がＲＯＰ２のＣＯＰＹＰＥＮ（上書き）である。すなわち、オブジェクト８１０は、上書きによって描画される、内部が白色で塗られたパス８１１に相当するグラフィック属性のオブジェクトである。
【００６６】
オブジェクト８２０は、表２に示されるように、属性情報がイメージであり、パス形状情報がパス８２１であり、オペランド情報がＲＧＢ色空間のイメージ８２２であり、オペレータ情報がＲＯＰ２のＣＯＰＹＰＥＮである。すなわち、オブジェクト８２０は、上書きによって描画される、パス８２１の形状でクリッピングされたイメージ８２２に相当するイメージ属性を持つオブジェクトである。
【００６７】
一方、図８（ｂ）は、オブジェクト８０４〜８０６に対してマルチパス結合を行った結果、オブジェクト８４０が出力されることを示している。
【００６８】
オブジェクト８４０は、表２に示されるように、属性情報がグラフィックであり、パス形状情報がパス８４１であり、オペランド情報がＲＧＢ色空間の白色の単色フィル８４２であり、オペレータ情報がＲＯＰ２のＣＯＰＹＰＥＮである。すなわち、オブジェクト８４０は、上書きによって描画される、内部が白色で塗られたパス８４１に相当するグラフィック属性のオブジェクトである。
【００６９】
【表２】
2016038801.tif 000004
【００７０】
以上から理解されるように、オブジェクト８０１および８０２は、１つのオブジェクトに結合され、オブジェクト８０３は他のオブジェクトとは結合されない。その結果、結合前と結合後のオブジェクト数の比は、３：２となっている。一方で、オブジェクト８０４〜８０６は、１つのオブジェクトに結合される。この結果、結合前と結合後のオブジェクト数の比は、３：１となっている。つまり、オブジェクト８０１〜８０３に対してマルチパス結合を行うより、オブジェクト８０４〜８０６に対してマルチパス結合を行った方が、結合効果は高いと言える。そして、このような結合効果の高いオブジェクト群に対してマルチパス結合を行うことが、後述するＤＬを生成する際の処理コストの低下につながる。
【００７１】
ステップＳ６０８において、結合モード判定部３０４は、ステップＳ６０７で結合したオブジェクトを解析し、結合モードを切り替えるかを判定し、結合モードを決定あるいは仮決定する。すなわちこの処理は、Ｓ５０２の処理によって読みだされるべき複数の描画コマンドのうちの既に読みだされた描画コマンドに対応する一部のオブジェクトに対して、結合モードの判定処理が行われることに相当する。言い換えれば、現在および過去に処理されたオブジェクトの情報に基づいて、未来に処理されるオブジェクトに対する結合モードを決定する。この判定処理について、図９を用いて後述する。
【００７２】
ステップＳ６０９において、ＤＬ変換部３０５は、オブジェクトをＤＬに変換する。ステップＳ６０３からの分岐から直接このステップＳ６０９に飛んできた場合は、オブジェクトは１つだけであるので、ＤＬ変換部３０５は、この１つのオブジェクトをＤＬに変換する。一方、ステップＳ６０４〜Ｓ６０８を通ってこのステップＳ６０９に辿りついた場合は、ＤＬ変換部３０５は、Ｓ６０８によって結合された後のオブジェクトをＤＬに変換し、且つ、処理中の現在のオブジェクトをＳ６０６と同様にスプールする。なお、処理中の現在のオブジェクトがＰＤＬに含まれる末尾の描画コマンドから生成されたものであれば、それまでにスプールされているオブジェクトをＤＬに変換する。
【００７３】
このＤＬへの変換処理について、図１０、１１を用いて後述する。
【００７４】
＜オブジェクト傾向の判定処理＞
図７（ａ）を用いて、ステップＳ６０２の判定処理について説明する。この判定処理は、処理中の現在のオブジェクトおよび後続のオブジェクトの傾向が、「結合効果の低いオブジェクトが連続するという傾向」から「結合効果の高いオブジェクトが連続するという傾向」に変化するかを判定する。概念的には、現在あるいは過去のオブジェクトの傾向から、未来のオブジェクトの傾向を予測する処理である。このような傾向の変化を判定するのは、後続のオブジェクトを結合推進モードで処理するためである。傾向が変化すると判定された場合に、結合モードを結合停止モードから結合推進モードに切り替える。このように結合モードを切り替えることで、結合効果の高いオブジェクトの結合をスキップしてしまうことを抑制する。
【００７５】
なお、ステップＳ６０２の本判定処理と、ステップＳ６０４の判定処理とを分割し、その間にステップＳ６０３の分岐処理を加えることで、ステップＳ６０２の判定結果に応じて効率的にステップＳ６０４の判定処理をスキップすることが可能となる。本実施例では、ステップＳ６０２の判定処理の処理コストが、ステップＳ６０４の判定処理の処理コストよりも小さいように構成するのが好ましい。例えば、ステップＳ６０２の判定処理では、処理中の現在のオブジェクトおよび直近の過去２つ分のオブジェクトの情報だけを用いられ、ステップＳ６０４の判定処理では、Ｓ６０６でスプールされている全てのオブジェクトの情報を用いるように構成する。あるいは、ステップＳ６０２の判定処理の処理ステップ数がステップＳ６０４の判定処理の処理ステップ数よりも小さくなるように構成する。そのようにすれば、各オブジェクトに対して常にステップＳ６０４の処理を行う場合よりも、各オブジェクトに対して常にステップＳ６０２の処理を行う場合の方が、処理コストが小さくなる。
【００７６】
以下のステップＳ７０１およびＳ７０２（Ｓ７０５）で、オブジェクト傾向判定部３０１は、処理中の現在のオブジェクトが、結合モードを結合停止モードから結合推進モードへ切り換えるトリガーとなる特定（所定）のオブジェクトであるかを判定している。
【００７７】
ステップＳ７０１において、オブジェクト傾向判定部３０１は、処理中の現在のオブジェクトのオペレータ情報のＲＯＰ情報にＲＯＰ３に指定されているかを判別する。オペレータ情報のＲＯＰ情報にＲＯＰ３が指定されているオブジェクトのことを、ＲＯＰ３指定のオブジェクトと呼ぶ。ＲＯＰ３指定のオブジェクトが入力される場合に、後続して入力されるオブジェクトもＲＯＰ３指定のオブジェクトである可能性が高いという事実を、本発明者は発見した。また、それら連続して入力されるＲＯＰ３指定のオブジェクトに対してオブジェクト結合部３０３によって結合処理を行うと、結合効果が非常に高いことが多いという事実にも、本発明者は気づいた。例えば、イメージのクリッピングに相当するＲＯＰ３（例えば０ｘＣＡ）が指定されているオブジェクトの後には、同じＲＯＰ３（例えば０ｘＣＡ）が指定されているオブジェクトが続く傾向がある。そしてこのオブジェクトがクリッピング対象としているイメージは同一である可能性が高い。このような一連のオブジェクトに結合処理が行われると、１つのイメージに１つのクリッピングマスクが設定された１つのオブジェクトに結合され、結合効果は高いものとなる。
【００７８】
そこでＲＯＰ情報にＲＯＰ３が指定されている場合は、ステップＳ７０６へ、ＲＯＰ３以外のＲＯＰが指定されている場合は、ステップＳ７０２へ移行する。
【００７９】
ステップＳ７０２において、オブジェクト傾向判定部３０１は、処理中の現在のオブジェクトが結合好適オブジェクトかを判定する。結合好適オブジェクトとは、処理中の現在のオブジェクトを直前に処理された別のオブジェクトと仮に結合したならば、高い結合効果を期待できるオブジェクトを指す。処理中の現在のオブジェクトが結合好適オブジェクトであるための条件の例として以下が挙げられる。
【００８０】
条件（１）：処理中の現在のオブジェクトのオペランド種別が単色フィルであり、その単色フィルの色とそれまでに連続して処理されたオブジェクトの単色フィルの色とを合わせた色数が色数閾値以内であること。詳細には後述のオブジェクトカウントがカウント閾値を超えるまでの間に連続して処理されたオブジェクトの単色フィルの色の種類の合計が色数閾値以内となることである。本実施例では色数閾値は「１」に設定されている。色数閾値が「１」に設定されていれば、処理中のオブジェクトの単色フィルの色が、直前に処理されたオブジェクトの単色フィルの色と同じである場合に処理中のオブジェクトが結合好適オブジェクトであると判定される。色数閾値は「１」以外であっても良い。
【００８１】
条件（２）：処理中の現在のオブジェクトおよび直前に処理されたオブジェクトのオペランド種別がともにイメージフィルであり、処理中の現在のオブジェクトの属性と直前に処理されたオブジェクトの属性とが同一であること。例えば、破線（ライン属性）を示すイメージフィルのオブジェクトが連続する場合などがこの条件を満たす。
【００８２】
条件（３）：処理中の現在のオブジェクトの属性と直前に処理されたオブジェクトの属性とが同一であり、処理中の現在のオブジェクトの属性の描画位置と直前に処理されたオブジェクトの描画位置とが所定距離以内にある（高密集している）こと。
【００８３】
結合好適オブジェクトであるか否かの判定は例えば次のように行われる。オブジェクト傾向判定部３０１は、それまでに処理したオブジェクトの属性情報、オペランド種別、オブジェクトの描画位置を記憶しておき、それらの履歴に基づいて処理中の現在のオブジェクトが結合好適オブジェクトとなる条件（１）〜（３）を満たすか否かを判定する。この条件を満たす場合に処理中の現在のオブジェクトは結合好適オブジェクトであると判定される。結合好適オブジェクトであると判定された場合は、ステップＳ７０４へ移行し、結合好適オブジェクトであると判定されなかった場合は、ステップＳ７０３へ移行する。
【００８４】
ステップＳ７０３において、オブジェクト傾向判定部５０２は、オブジェクトカウントを０にする。オブジェクトカウントとは、結合好適オブジェクトをいくつ連続で処理しているか、を示している。その後、オブジェクト傾向判定処理を終了する。
【００８５】
ステップＳ７０４において、オブジェクト傾向判定部５０２は、オブジェクトカウントを１つ加算する。
【００８６】
ステップＳ７０５において、オブジェクト傾向判定部５０２は、オブジェクトカウントとカウント閾値を比較する。カウント閾値とは、結合好適オブジェクトの連続性を表す閾値である。つまり、オブジェクトカウントがカウント閾値を超える場合は、処理中の現在のオブジェクト以降も結合好適オブジェクトが連続する、とみなせる。このような場合は、後続するオブジェクトは結合効果が高いはずなので、処理はＳ７０６に移行する。そうでない場合は、オブジェクト傾向判定処理を終了する。
【００８７】
ステップＳ７０６において、オブジェクト傾向判定部５０２は、現在の結合モードを結合推進モードへ移行する。その後、オブジェクト傾向判定処理を終了する。又、オブジェクトカウントを０に初期化する。
【００８８】
以上がオブジェクト傾向の判定処理である。
【００８９】
＜オブジェクト結合後の結合モードの判定＞
図９を用いて、ステップＳ６０８の判定処理について説明する。
【００９０】
この判定処理では、ステップＳ６０７の結合処理の結合効果に基づいて、結合モードの切り替えを判定する。
【００９１】
ステップＳ９０１において、結合モード判定部３０４は、ステップＳ６０７の結合処理の対象となった入力オブジェクト数（スプールされていたオブジェクト数）と、出力オブジェクト数（結合後のオブジェクト数）を取得する。そして結合モード判定部３０４は、入力オブジェクト数／出力オブジェクト数で比率を計算する。この計算された比率が結合効果を示す。例えば、図８（ａ）、（ｂ）を用いて説明した例の場合、図８（ａ）では、計算される比率は「１．５」であり、図８（ｂ）では、計算される比率は「３」である。
【００９２】
ステップＳ９０２において、結合モード判定部３０４は、ステップＳ９０１で算出した比率が削減閾値を超えている場合は、結合処理による出力オブジェクト数の削減効果が高い（結合効果が高い）と判定し、ステップＳ９０３に移行する。そうでない場合は、ステップＳ９０４へ移行する。
【００９３】
ステップＳ９０３において、結合モード判定部３０４は、結合モードを結合推進モードのままで維持する。
【００９４】
ステップＳ９０４において、結合モード判定部３０４は、結合モードを結合停止モードに切り替える。
【００９５】
例えば、削減閾値に「２」が設定されている場合、結合処理によってオブジェクト数を半減させる事ができない場合は結合効果が低いとみなされるということである。図８（ａ）を用いて説明した例の場合、イメージ結合では、結合推進モードが継続されるが、マルチパス結合では、結合モードが結合停止モードへ切り替わる。
【００９６】
以上の判定は、次の期待に基づいている。
【００９７】
（１）処理中の現在のオブジェクトまで連続するオブジェクトに対する結合処理の結合効果が高いということは、すなわち、後続するオブジェクトも結合効果が高い。
【００９８】
（２）処理中の現在のオブジェクトまで連続するオブジェクトに対する結合処理の結合効果が低いということは、すなわち、後続するオブジェクトも結合効果が低い。
【００９９】
なぜなら連続するオブジェクトの傾向は、類似するからである。
【０１００】
以上が、ステップＳ６０８の判定処理である。
【０１０１】
＜オブジェクトのＤＬ＞
図１０、１１を用いて、ステップＳ６０９の変換処理について説明する。
【０１０２】
まずステップＳ６０９の変換によって生成されるＤＬの構造について、図１１で説明する。
【０１０３】
図１１（ａ）は、図８（ａ）に示されるオブジェクト８１０、８２０から生成されるＤＬを例示したものである。このＤＬには、エッジＥ１１、Ｅ１２、Ｅ２１、Ｅ２２が含まれる。エッジＥ１１およびＥ１２は、レベルＬ１へのリンクを有し、このレベルＬ１は、フィルＦ１へのリンクを有する。エッジＥ２１、Ｅ２２は、レベルＬ２へのリンクを有し、このレベルＬ２は、フィルＦ２へのリンクを有する。
【０１０４】
各エッジは、対応するオブジェクトの形状を表す情報である。各エッジは、対応するオブジェクトのパス形状情報から生成される。例えばオブジェクト８１０では、パス８１１の形状を示す左端のエッジおよび右端のエッジをそれぞれエッジＥ１１およびＥ１２として生成する。エッジＥ１１およびＥ１２のそれぞれは、エッジの開始点の座標（ｘ１１、ｙ１）および（ｘ１２、ｙ１）を有する。またエッジＥ２１およびＥ２２のそれぞれは、エッジの開始点の座標（ｘ２１、ｙ２）および（ｘ２２、ｙ２）を有する。
【０１０５】
各エッジから参照されるレベルは、対応するオブジェクトの重なり順序を表す情報である。各レベルは、対応するオブジェクトの生成順に基づいて割り当てられる。例えばオブジェクト８１０、８２０は、結合処理によって同時期に生成されたため、レベルＬ１、Ｌ２には、同じレベルの順位が割り当てられる。レベルの順位は、小さいほど重なり順序でより下層であることを示す。
【０１０６】
各レベルから参照されるフィルは、対応するオブジェクトの塗りを表す情報である。各フィルは、対応するオブジェクトのオペランド情報から生成される。例えばオブジェクト８１０では、オペランド情報に白色の単色フィル８１２が含まれるので、レベルＬ１から参照されるフィルＦ１は、白色の単色フィルを示す情報となる。
【０１０７】
以上がオブジェクトから生成されるＤＬに含まれるエッジ、レベル、フィルの説明である。
【０１０８】
図１１（ｂ）は、オブジェクト８１０から生成されるＤＬ１１０１に含まれるエッジのリスト構造、および、そのＤＬ１１０１に、オブジェクト８２０から生成されるＤＬを追加（マージ）した後のＤＬ１１０２に含まれるエッジのリスト構造を例示する。
【０１０９】
ＤＬに含まれるエッジのリスト構造は、エッジが開始する座標に基づいて生成される。リスト構造は、Ｙ座標が等しい同一スキャンライン上において開始されるエッジのＸ座標の昇順にソートされている。ＤＬ１１０１では、エッジＥ１１およびＥ１２が含まれるので、Ｙ＝ｙ１のスキャンライン上で、エッジＥ１１がＸ＝ｘ１１の座標から開始され、次にエッジＥ１２がＸ＝ｘ１２の座標から開始されることを示すリスト構造が生成される。エッジＥ１１からＥ１２へはリンクでつながっている。
【０１１０】
ＤＬ１１０１に、オブジェクト８２０から生成されるＤＬをマージする場合、ＤＬ１１０１に保持されるスキャンラインのうちどのスキャンラインの後に、オブジェクト８２０から生成されるＤＬをマージするかが判定される。例えば、スキャンラインのＹ座標を比較することで判定される。スキャンラインＹ＝ｙ２はスキャンラインＹ＝ｙ１よりもＹ座標が大きいので、スキャンラインＹ＝ｙ１からリンクされるスキャンラインＹ＝ｙ２がＤＬ１１０１内に追加される。そしてエッジＥ２１およびＥ２２が、追加されたスキャンスキャンラインＹ＝ｙ２に、エッジＥ２１、Ｅ２２の順にリンクされるように追加される。その結果、ＤＬ１１０２が生成される。
【０１１１】
図１０を用いて、ステップＳ６０９の変換処理を説明する。ここでは、ＤＬ変換部３０５が、オブジェクトの情報からエッジ、レベル、フィルを生成し、それらを既にあるＤＬにマージする。
【０１１２】
ステップＳ１００１において、ＤＬ変換部３０５は、オブジェクトのオペランド情報からフィルを生成する。
【０１１３】
ステップＳ１００２において、ＤＬ変換部３０５は、オブジェクトの生成順からレベルを生成し、ステップＳ１００１で生成されたフィルへのリンクを生成されたレベルに含める。
【０１１４】
ステップＳ１００３において、ＤＬ変換部３０５は、オブジェクトのパス形状情報からエッジを生成し、ステップＳ１００２で生成されたレベルへのリンクを生成されたエッジに含める。
【０１１５】
ステップＳ１００４において、ＤＬ変換部３０５は、ステップＳ１００３で生成したエッジをＤＬへマージする。
【０１１６】
以上が本実施例のＤＬの生成処理である。
【０１１７】
以上、本実施例によれば、結合停止モードと結合推進モードとを適宜切り換えることによって、Ｓ６０４の結合判定処理にかかる処理コストを効果的に削減できる。また、Ｓ６０６のスプール処理やＳ６０７の結合処理にかかる処理コストを効果的に削減できる。
【０１１８】
（変形例１）
上記実施例では、結合停止モードから結合推進モードへの切り替わりの判定条件として、ステップＳ７０１（ＲＯＰ情報にＲＯＰ３が指定されていること）を挙げたが、これだけに限定されない。例えば、結合停止モード中に、ＲＯＰ情報にＲＯＰ２：ＸＯＲが指定されているオブジェクト（ＲＯＰ２：ＸＯＲ指定のオブジェクト）が処理される場合、オブジェクト傾向判定部３０１は、結合モードを結合推進モードに切り替えても良い。なぜなら、後続のオブジェクトがＲＯＰ２：ＡＮＤ指定のオブジェクトであって、さらにその後続のオブジェクトがＲＯＰ２：ＸＯＲ指定のオブジェクトである場合には、結合効果の高い結合処理を行えるからである。具体的には、処理中の現在のオブジェクトと後続の２つのオブジェクトとを、ＲＯＰ情報にＲＯＰ２：ＣＯＰＹＰＥＮが指定される１つのオブジェクトへ結合することができる。なお、結合モード判定部３０４は、この後続のオブジェクトのＲＯＰ情報をチェックして、ＲＯＰ情報にＲＯＰ２：ＡＮＤが指定されていなかった場合は、結合モードを再び結合停止モードに切り替えても良い。
【０１１９】
（変形例２）
上記実施例では、結合停止モードから結合推進モードへの切り替わりの条件として、ステップＳ７０１およびＳ７０５を挙げたが、これだけに限定されない。例えば、結合停止モードにおいて連続して処理されたオブジェクトの数が一定数を超えた場合、結合モードが結合推進モードへ移行しても良い。このフローを図７（ｂ）に示す。図７（ｂ）のフローは図７（ａ）と同じく、ＣＰＵ１０１がＲＯＭ１０３に記憶されたプログラムを実行することで実現され、変形例２においては図７（ａ）の処理フローに変えて実行される。
【０１２０】
図７（ｂ）は、図７（ａ）のフローに次の処理を加えたことが特徴となっており、その他の処理は図７（ａ）のものと同様である。
【０１２１】
（１）結合停止モードにおいて連続して処理されたオブジェクトの数（通過カウント）をカウントする処理（ステップＳ７０８およびＳ７０９）
（２）通過カウントが所定数（通過閾値）を超えたかを判定する処理（ステップＳ７０７）
ステップＳ７０７において、オブジェクト傾向判定部３０１は、通過カウントと通過閾値とを比較する。通過カウントが通過閾値以下であれば、ステップＳ７０１へ、そうでなければ、ステップＳ７０６へ移行する。通過カウントが通過閾値を超える場合というのは、ＲＯＰ３指定のオブジェクトでも結合好適オブジェクトでもないオブジェクトを、通過閾値数分、連続して処理した場合である。尚、初期状態では、通過カウントは０とする。
【０１２２】
ステップＳ７０８において、オブジェクト傾向判定部３０１は、通過カウントをインクリメントする。すなわち、オブジェクト傾向判定部３０１は、ＲＯＰ３指定のオブジェクトでも結合好適オブジェクトでもないオブジェクトを連続して処理した回数をカウントする。
【０１２３】
ステップＳ７０９において、オブジェクト傾向判定部３０１は、通過カウントを０に初期化する。
【０１２４】
以上の処理によって、例えば、通過閾値を１００に設定した場合、ＲＯＰ３指定のオブジェクトや結合好適オブジェクトが連続しなくても、１００個のオブジェクトを処理した後、結合モードが結合停止モードから結合推進モードへ遷移する。すなわち、結合停止モードは、少なくとも一定数のオブジェクトを処理した後には確実に解除され、結合モードは結合推進モードに切り替わる。
【０１２５】
この変形例２は、ステップＳ７０１およびＳ７０２で判定されるような特定のオブジェクトではないものの、結合効果が高いかもしれないオブジェクトを多く含むＰＤＬを処理する際に非常に有効である。
【０１２６】
また、図７（ｂ）に示されるフローチャートから、ステップＳ７０１〜Ｓ７０５を省略した図７（ｃ）に示されるフローチャートが図７（ｂ）の代わりに実行されても良い。この図７（ｃ）のフローによっても、少なくとも一定数のオブジェクトが結合停止モードにおいて連続して処理された場合に、結合停止モードは解除される。
【０１２７】
これまでに実施例、変形例１、２で説明したように、オブジェクトの情報や連続するオブジェクトの情報どうしの関係性に基づいて結合モードを切り替えることで、結合効果の低いオブジェクトどうし結合を抑制することができる。
【０１２８】
例えば、図１２の上段に図示されるように、連続するオブジェクト間でオペランド情報が異なる場合がある。このようなオブジェクト１２０１〜１２０９に対して結合処理を行うと、５つのオブジェクト１２１０〜１２５０に結合される。すなわち、入力オブジェクト数９に対して、出力オブジェクト数５であるので、結合効果を示す比率は「１．８」である。これは削減閾値「２」よりも小さく、結合効果が低いことを示している。
【０１２９】
このようなオブジェクト１２０１〜１２０９に対しては、ステップＳ６０４の判定処理、Ｓ６０６のスプール処理、Ｓ６０７の結合処理にかける処理コストが無駄になる。
【０１３０】
以上説明した実施例、変形例１、２では、このようなオブジェクト１２０１〜１２０９に対するこれら処理コストを効果的に削減できる。
【０１３１】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2016038801.tif 000005
【図２】
2016038801.tif 000006
【図３】
2016038801.tif 000007
【図４】
2016038801.tif 000008
【図５】
2016038801.tif 000009
【図６】
2016038801.tif 000010
【図７】
2016038801.tif 000011
【図８】
2016038801.tif 000012
【図９】
2016038801.tif 000013
【図１０】
2016038801.tif 000014
【図１１】
2016038801.tif 000015
【図１２】
2016038801.tif 000016