上記従来技術では、中間コード画像データをオブジェクト毎に生成しているが、近年、描画処理に関する描画処理命令毎に中間コード画像データを生成する記述が普及している。描画処理命令には、所定の描画領域を上書きする上書き命令、対象となる描画領域をクリップするクリップ命令、所定の描画領域について論理演算を実行するための論理演算命令等がある。このような描画処理命令毎に中間コード画像データを生成した場合には、中間コード画像データは、オブジェクトを形成するための部品としての描画領域と描画処理命令を含むデータとなる。このように、中間コード画像データに描画処理命令としてクリップ命令や論理演算命令が含まれる場合に、上記従来技術を適用させて、中間コード画像データ毎に輪郭データを生成して、下層側の中間コード画像データからこの輪郭データ領域を削除するようにして中間コード画像データを再生成し、再生成された中間コード画像データに基づいて描画処理を行うと、複数の中間コード画像データ各々に示される描画領域によって1つのオブジェクトを生成する場合であっても、描画領域毎に生成された輪郭データに基づいて再生成された中間コード画像データに応じた描画処理が行われるため、得られる出力画像は、一般的な描画処理によって得られる出力画像とは異なるという問題がある。
具体的には、図12(B)に示すように、オブジェクトの描画順に遡って中間コード画像データを再生成し、中間コード画像データの再生成時には、最上層側のオブジェクトに応じた描画領域の中間コード画像データから順に下層側に描画されるオブジェクトに応じた描画領域に向かって、各中間コード画像データから、輪郭データを保持するための輪郭データ保持領域に格納されている輪郭データの輪郭領域を除去することによって、中間コード画像データを再生成する。
中間コード画像データにクリップ命令が含まれている場合には、例えば、図12(B)に示すように、クリップ開始命令及びクリップするクリップ領域を表す描画領域を含む中間コード画像データ54B、クリップされる描画領域と該描画領域の一部を下層側の描画領域(オブジェクトに対応する描画領域)に上書きする上書命令を含む中間コード画像データ54C、及びクリップ終了を表すクリップ終了命令を含む中間コード画像データ54Dが生成される。
このような中間コード画像データについて、上記従来技術を適用させると、中間コード画像データの生成順に遡って各オブジェクトの中間コード画像データから、輪郭データを保持するための輪郭データ保持領域に格納されている輪郭データの輪郭領域を除去することによって、中間コード画像データを再生成する。なお、一般的に、クリップ命令を含む中間コード画像データは、クリップ元となる描画領域を含む中間コード画像データやオブジェクトに対応する描画領域を含む中間コード画像データとは異なる領域に格納される。このため、クリップ命令を含む中間コード画像データを再生成するときには、輪郭データを削除せずに別領域に格納されている中間コード画像データをそのまま再生成された中間コード画像データとして扱う。
輪郭データ保持領域に格納される輪郭データは、各中間コード画像データの再生成処理が行われる度に更新され、輪郭データ保持領域には、図12(C)に示すように、再生成される前の中間コード画像データ(以下、元中間コード画像データという)各々に基づいて、下層側に描画される描画領域をマスクする上層側の描画領域の少なくとも輪郭を示す輪郭データが生成されて格納され、中間コード画像データの再生成処理が行われる度に、元中間コード画像データの描画領域の輪郭データを、前回生成した輪郭データに含めた輪郭データが生成されて輪郭データ保持領域に格納される。
このように、各中間コード画像データの描画領域に応じた輪郭データを生成して生成した輪郭データを前回生成した輪郭データに含め、この輪郭データ領域を上層側に描画されるオブジェクトの描画領域から除去すると、実際に積層されるオブジェクトではなくクリップ対象となるクリップ元としての描画領域の輪郭データ領域を上層側に描画されるオブジェクトの描画領域から除去することとなる。このため、再生成された中間コード画像データに基づいて、所定の描画順序に従って描画領域を描画すると、再生成前の中間コード画像データから一般的な描画処理によって得られる出力画像54Eとは異なる出力画像50Fが得られる、という問題があった。
また、中間コード画像データに論理演算命令が含まれている場合についても、上記従来技術を適用させて、描画処理命令(論理演算命令)毎に生成された中間コード画像データを再生成すると、複数の中間コード画像データ各々に示される描画領域の論理演算によって1つのオブジェクトを生成する場合であっても、描画領域毎に生成された輪郭データに基づいて再生成された中間コード画像データに応じた描画処理が行われるため、得られる出力画像は、一般的な描画処理によって得られる出力画像とは異なるという問題がある。
具体的には、図13(B)に示すように、オブジェクトの描画順に遡って中間コード画像データを再生成し、中間コード画像データの再生成時には、最上層側のオブジェクトに応じた描画領域の中間コード画像データから順に下層側に描画されるオブジェクトに応じた描画領域に向かって、各中間コード画像データから、輪郭データを保持するための輪郭データ保持領域に格納されている輪郭データの輪郭領域を除去することによって、中間コード画像データを再生成する。
中間コード画像データに論理演算命令が含まれている場合には、例えば、図13(B)に示すように、中間コード画像データとしては、オブジェクトに対応する描画領域と描画処理として上書き命令を含む中間コード画像データ60A、一連の論理演算によって1つのオブジェクトを生成するための複数の中間コード画像データ60B、60C、及び60Dが生成されている。例えば、中間コード画像データ60Bは、描画領域62Bと論理演算(XOR)を含み、中間コード画像データ60Cは、描画領域62Cと論理演算(AND)を含み、中間コード画像データ60Dは、描画領域62Dと論理演算(XOR)を含んでいる。
このような論理演算命令を含む中間コード画像データについて、上記従来技術を適用させると、中間コード画像データの生成順に遡って各オブジェクトの中間コード画像データから、輪郭データを保持するための輪郭データ保持領域に格納されている輪郭データの輪郭領域を除去することによって、中間コード画像データを再生成する。
輪郭データ保持領域に格納される輪郭データは、各中間コード画像データの再生成処理が行われる度に更新され、輪郭データ保持領域には、図13(C)に示すように、再生成される前の中間コード画像データ(以下、元中間コード画像データという)各々に基づいて、下層側に描画される描画領域をマスクする上層側の描画領域の少なくとも輪郭を示す輪郭データが生成されて格納され、中間コード画像データの再生成処理が行われる度に、描画順に遡って次の再生成処理対象となる中間コード画像データの描画領域の輪郭データを、前回生成した輪郭データに含めた輪郭データが生成されて輪郭データ保持領域に格納される。
このように、各中間コード画像データの描画領域に応じた輪郭データを生成して生成した輪郭データを前回生成した輪郭データに含め、この輪郭データ領域を上層側に描画される描画領域から除去すると、実際に積層されるオブジェクトではなく、一連の論理演算によって1つのオブジェクトを生成するための複数の中間コード画像データ60B、60C、及び60D各々の描画領域について輪郭データを生成して、上層側の描画領域の輪郭データに含めた輪郭データ領域を仮想側の描画領域から除去することとなる。このため、再生成された中間コード画像データに基づいて、所定の描画順序に従って描画領域を描画すると、再生成前の中間コード画像データから一般的な描画処理によって得られる出力画像60Eとは異なる出力画像60Fが得られる、という問題があった。
本発明は、上記問題点を解消するためになされたものであり、中間コード画像データが描画処理命令毎に生成され、且つ中間コード画像データに論理演算命令またはクリップ命令が含まれる場合であっても、ページ記述データによって示されるオブジェクトに応じた画像を形成するための中間コード画像データを生成することができるとともに、中間コード画像データのデータ量を削減することが可能な画像処理装置を提供することを目的とする。
請求項1の画像処理装置は、所定の描画順序に従って層状に描画される複数のオブジェクトの各々を表すと共に各オブジェクトを描画するときの描画処理を表す描画処理命令を含むページ記述データを、描画処理命令毎に前記オブジェクトの描画順序に従って順次解釈し、描画処理命令とオブジェクトを表す描画領域またはオブジェクトを生成するための描画領域とを含む中間コード画像データに変換する変換する変換手段と、前記変換手段によって変換された中間コード画像データを描画処理命令毎に記憶する記憶手段と、前記中間コード画像データを前記中間コード画像データの生成順序を遡って前記記憶手段から順次読み取る読取手段と、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別を判別する判別手段と、前記判別手段による判別結果に基づいて、該描画領域の輪郭を表す輪郭データの輪郭データ領域を、前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成する輪郭データ生成手段と、前記読取手段によって読み取られた中間コード画像データを、該中間コード画像データの描画領域から前記輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた中間コード画像データとして再生成する中間コード画像データ再生成手段と、を備え、前記判別手段が、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が他の中間コード画像データの描画領域内の一部領域を抽出することを表すクリップ命令であると判別したときに、該中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データを前記生成順序に遡って検索することにより該クリップ命令が有効なクリップ有効区間を特定する特定手段を含み、前記輪郭データ生成手段が、前記判別手段によって前記読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別が前記クリップ命令であると判別されたときに、前記特定手段によって特定されたクリップ有効区間内の複数の中間コード画像データから、該クリップ命令に応じて抽出した領域の輪郭を表す輪郭データ領域を前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成し、前記中間コード画像データ再生成手段が、前記判別手段によって前記読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別が前記クリップ命令であると判別されたときに、前記特定手段によって特定されたクリップ有効区間内の複数の中間コード画像データから、該クリップ命令に応じて抽出した領域から前記輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた領域を描画領域とする中間コード画像データを再生成するものである。
請求項1に記載の画像処理装置の変換手段は、所定の描画順序に従って層状に描画される複数のオブジェクトの各々を表すと共に各オブジェクトを描画するときの描画処理を表す描画処理命令を含むページ記述データを、描画処理命令毎にオブジェクトの描画順序に従って順次解釈し、描画処理命令とオブジェクトを表す描画領域、または描画処理命令とオブジェクトを生成するための描画領域とを含む中間コード画像データに変換する。中間コード画像データに、描画処理命令とオブジェクトを表す描画領域が含まれる場合には、この中間コード画像データは描画されるオブジェクトに対応しているが、中間コード画像データに描画処理命令とオブジェクトを生成するための描画領域が含まれる場合には、この中間コード画像データは、複数の中間コード画像データに基づいて1つのオブジェクトを生成するためのデータである。なお、中間コード画像データとしては、エッジリストやディスプレイリスト等を適用することができる。
変換手段によって変換された中間コード画像データは、描画処理命令毎に記憶手段に記憶される。読取手段は、変換手段による中間コード画像データの生成順序に遡って中間コード画像データを記憶手段から順次読み取る。中間コード画像データは、変換手段によって、オブジェクトの描画順序に応じた描画処理命令順に生成されるので、読取手段によって、オブジェクトの描画順序に遡った描画処理命令順に読み取られる。
判別手段によって、読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別が判別されると、輪郭データ生成手段は、判別手段の判別結果に基づいて、読取手段により読み取られた中間コード画像データの描画領域の輪郭を表す輪郭データの輪郭データ領域を、前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成する。すなわち、判別手段による判別結果に基づいて、描画領域の上層側に描画される描画領域の輪郭を表す前回生成された輪郭データの輪郭データ領域に、読取手段によって読み取った描画領域の輪郭を表す輪郭データの輪郭データを加えるか否かを判別する。
中間コード画像データ再生成手段は、読取手段によって読み取られた中間コード画像データを、該中間コード画像データの描画領域から輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた中間コード画像データとして再生成する。
このように、描画処理命令毎に生成された中間コード画像データを中間コード画像データの生成順に遡って順次読取り、各中間コード画像データの描画処理命令の種類に基づいて、中間コード画像データの描画領域の輪郭を表す輪郭データを、該描画領域に応じたオブジェクトの上層側に描画されるオブジェクトに応じた描画領域の輪郭を表す前回生成された輪郭データに含めるか否かを判別して判別結果に基づいて輪郭データを生成すると共に、読取手段によって読み取った中間コード画像データを、この中間コード画像データの描画領域から前回輪郭データ生成手段によって生成された輪郭データの輪郭領域を除いた中間コード画像データとなるように再生成する。
このため、再生成された中間コード画像データのデータ量を、再生成前の中間コード画像データのデータ量より少なくすることができ、記憶手段に記憶される中間コード画像データのデータ量を削減することができる。
また、中間コード画像データの描画処理情報の種類に基づいて、中間コード画像データの描画領域の輪郭を表す輪郭データを、前回生成された輪郭データに含めるか否かを判別するので、複数の中間コード画像データによって1つのオブジェクトを生成するように、中間コード画像データに描画処理命令とオブジェクトを生成するための描画領域が含まれる場合に、各中間コード画像データから輪郭データが生成されることを抑制することができ、ページ記述データに応じて所定の描画順序に従って層状に複数のオブジェクトを描画したときに得られる画像と同一の画像が得られるような中間コード画像データを再生成することができる。
また、請求項1の画像処理装置は、前記判別手段は、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が他の中間コード画像データの描画領域内の一部領域を抽出することを表すクリップ命令であると判別したときに、該中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データを前記生成順序に遡って検索することにより該クリップ命令が有効なクリップ有効区間を特定する特定手段を含み、
前記輪郭データ生成手段は、前記判別手段によって前記読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別が前記クリップ命令であると判別されたときに、前記特定手段によって特定されたクリップ有効区間内の複数の中間コード画像データから、該クリップ命令に応じて抽出した領域の輪郭を表す輪郭データ領域を前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成し、
前記中間コード画像データ再生成手段は、前記判別手段によって前記読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別が前記クリップ命令であると判別されたときに、前記特定手段によって特定されたクリップ有効区間内の複数の中間コード画像データから、該クリップ命令に応じて抽出した領域から前記輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた領域を描画領域とする中間コード画像データを再生成する。
請求項1に記載の画像処理装置は、判別手段が、読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が他の中間コード画像データの描画領域内の一部領域を抽出することを表すクリップ命令であると判別したときに、この中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データを、変換手段による中間コード画像データの生成順序に遡って検索することにより、このクリップ命令が有効なクリップ有効区間を特定する特定手段を含んでいる。輪郭データ生成手段が、判別手段によって読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別がクリップ命令であると判別されたときに、特定手段によって特定されたクリップ有効区間内の複数の中間コード画像データから、このクリップ命令に応じて抽出した領域の輪郭を表す輪郭データ領域を前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成する。すなわち、輪郭データ生成手段は、特定手段によって特定されたクリップ有効区間内の複数の中間コード画像データ各々について輪郭データを生成するのではなく、特定手段によって特定されたクリップ有効区間内の複数の中間コード画像データから1つの輪郭データを生成する。このとき生成する輪郭データは、クリップ命令に応じて抽出した領域の輪郭を表す輪郭データ領域を前回生成した輪郭データの輪郭データ領域に含めた輪郭データである。このため、輪郭データ生成手段は、判別手段によって、読取手段によって読み取られた中間コード画像データの描画処理命令の種別がクリップ命令であるときには、このクリップ命令を含む中間コード画像データと、この中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データと、から1つの輪郭データを生成するので、1つのオブジェクトに対応する複数の中間コード画像データから、このオブジェクトの輪郭を表す1つの輪郭データの輪郭データ領域を前回生成された輪郭データの輪郭データ領域に含めた輪郭データを生成することができる。
中間コード画像データ再生成手段は、判別手段によって読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別がクリップ命令であると判別されたときに、特定手段によって特定されたクリップ有効区間内の複数の中間コード画像データから、このクリップ命令に応じて抽出した領域から輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた領域を描画領域とする中間コード画像データを再生成する。
このように、描画処理命令の種別がクリップ命令であるときには、中間コード画像データ毎に輪郭データを生成するのではなく、このクリップ命令を含む中間コード画像データと同一のオブジェクトを生成するためのクリップ有効区間内の複数の中間コード画像データから、生成するオブジェクトの輪郭を表す1つの輪郭データの輪郭データ領域を前回生成された輪郭データの輪郭データ領域に含めた輪郭データを生成すると共に、このクリップ有効区間内の複数の中間コード画像データから、クリップ命令に応じて抽出した領域、すなわちオブジェクトを表す描画領域から前回生成された輪郭データの輪郭データを除いた領域を描画領域とする中間コード画像データを再生成することができる。
従って、再生成された中間コード画像データのデータ量を、再生成前の中間コード画像データのデータ量より少なくすることができ、記憶手段に記憶される中間コード画像データのデータ量を削減することができると共に、ページ記述データに応じて所定の描画順序に従って層状に複数のオブジェクトを描画したときに得られる画像と同一の画像が得られるような中間コード画像データを再生成することができる。
請求項2に記載の画像処理装置は、請求項1に記載の画像処理装置において、前記輪郭データ生成手段は、前記輪郭データを生成した後に、描画処理命令の種別が前記クリップ命令の中間コード画像データを、前記記憶手段から削除する削除手段を含むようにすれば、さらに記憶手段の記憶容量を増加させることができる。
請求項3に記載の画像処理装置は、所定の描画順序に従って層状に描画される複数のオブジェクトの各々を表すと共に各オブジェクトを描画するときの描画処理を表す描画処理命令を含むページ記述データを、描画処理命令毎に前記オブジェクトの描画順序に従って順次解釈し、描画処理命令とオブジェクトを表す描画領域またはオブジェクトを生成するための描画領域とを含む中間コード画像データに変換する変換する変換手段と、前記変換手段によって変換された中間コード画像データを描画処理命令毎に記憶する記憶手段と、前記中間コード画像データを前記中間コード画像データの生成順序を遡って前記記憶手段から順次読み取る読取手段と、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別を判別する判別手段と、前記判別手段による判別結果に基づいて、該描画領域の輪郭を表す輪郭データの輪郭データ領域を、前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成する輪郭データ生成手段と、前記読取手段によって読み取られた中間コード画像データを、該中間コード画像データの描画領域から前記輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた中間コード画像データとして再生成する中間コード画像データ再生成手段と、を備え、前記判別手段が、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が論理演算命令であると判別したときに、該中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データを前記生成順序に遡って検索することにより該論理演算命令が有効な論理演算区間を特定する特定手段と、前記特定手段によって特定された論理演算区間内の複数の中間コード画像データの内の論理演算命令としてクリップ情報を有する中間コード画像データを判定する判定手段と、を含み、前記輪郭データ生成手段が、前記判別手段によって前記読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別が前記論理演算命令であると判別されたときに、前記判定手段によって判定された中間コード画像データの描画領域の輪郭を表す輪郭データ領域を前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成し、前記中間コード画像データ再生成手段が、前記判別手段によって前記読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別が前記論理演算命令であると判別されたときに、前記判定手段によって判定された中間コード画像データを、該中間コード画像データの描画領域から前記輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた中間コード画像データとして再生成し、前記判定手段によって判定された中間コード画像データ以外の前記特定手段によって特定された中間コード画像データを再生成後の中間コード画像データとすることができる。
請求項3に記載の画像処理装置は、判別手段が、読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が論理演算命令であると判別したときに、この中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データを、中間コード画像データの生成順序に遡って検索することによりこの論理演算命令が有効な論理演算区間を特定する特定手段を含むことができる。また、判別手段は、特定手段によって特定された論理演算区間内の複数の中間コード画像データの内の論理演算命令としてクリップ情報を有する中間コード画像データを判定する判定手段を含むことができる。
輪郭データ生成手段は、判別手段によって読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別が論理演算命令であると判別されたときに、判定手段によって判定された、特定手段によって特定された論理演算区間内の複数の中間コード画像データの内の論理演算命令としてクリップ情報を有する中間コード画像データの描画領域の輪郭を表す輪郭データ領域を前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成する。
また、中間コード画像データ再生成手段は、判別手段によって読取手段により読み取られた中間コード画像データに含まれる描画処理命令の種別が論理演算命令であると判別されたときに、判定手段によって判定された中間コード画像データを、この中間コード画像データの描画領域から輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた中間コード画像データとして再生成する。また、中間コード画像データ再生成手段は、判定手段によって判定された中間コード画像データ以外の特定手段によって特定された中間コード画像データを、特別な処理を行うことなく再生成後の中間コード画像データとする。
このように、描画処理命令の種別が論理演算命令であるときには、中間コード画像データ毎に輪郭データを生成するのではなく、この論理演算命令を含む中間コード画像データと同一のオブジェクトを生成するための論理演算区間内の複数の中間コード画像データから、生成するオブジェクトの輪郭を表す1つの輪郭データの輪郭データ領域を前回生成された輪郭データの輪郭データ領域に含めた輪郭データを生成する。
従って、再生成された中間コード画像データのデータ量を、再生成前の中間コード画像データのデータ量より少なくすることができ、記憶手段に記憶される中間コード画像データのデータ量を削減することができると共に、ページ記述データに応じて所定の描画順序に従って層状に複数のオブジェクトを描画したときに得られる画像と同一の画像が得られるような中間コード画像データを再生成することができる。
請求項4に記載の画像処理装置は、所定の描画順序に従って層状に描画される複数のオブジェクトの各々を表すと共に各オブジェクトを描画するときの描画処理を表す描画処理命令を含むページ記述データを、描画処理命令毎に前記オブジェクトの描画順序に従って順次解釈し、描画処理命令とオブジェクトを表す描画領域またはオブジェクトを生成するための描画領域とを含む中間コード画像データに変換する変換する変換手段と、前記変換手段によって変換された中間コード画像データを描画処理命令毎に記憶する記憶手段と、前記中間コード画像データを前記中間コード画像データの生成順序を遡って前記記憶手段から順次読み取る読取手段と、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別を判別する判別手段と、前記判別手段による判別結果に基づいて、該描画領域の輪郭を表す輪郭データの輪郭データ領域を、前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成する輪郭データ生成手段と、前記読取手段によって読み取られた中間コード画像データを、該中間コード画像データの描画領域から前記輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた中間コード画像データとして再生成する中間コード画像データ再生成手段と、前記判別手段による判別結果に基づいて、中間コード画像データの再生成を省略するように、前記中間コード画像データ再生成手段を制御する再生成省略制御手段と、を備えることができる。
請求項5に記載の画像処理装置は、所定の描画順序に従って層状に描画される複数のオブジェクトの各々を表すと共に各オブジェクトを描画するときの描画処理を表す描画処理命令を含むページ記述データを、描画処理命令毎に前記オブジェクトの描画順序に従って順次解釈し、描画処理命令とオブジェクトを表す描画領域またはオブジェクトを生成するための描画領域とを含む中間コード画像データに変換する変換する変換手段と、前記変換手段によって変換された中間コード画像データを描画処理命令毎に記憶する記憶手段と、前記中間コード画像データを前記中間コード画像データの生成順序を遡って前記記憶手段から順次読み取る読取手段と、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別を判別する判別手段と、前記判別手段による判別結果に基づいて、該描画領域の輪郭を表す輪郭データの輪郭データ領域を、前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成する輪郭データ生成手段と、前記読取手段によって読み取られた中間コード画像データを、該中間コード画像データの描画領域から前記輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた中間コード画像データとして再生成する中間コード画像データ再生成手段と、を備え、前記判別手段が、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が他の中間コード画像データの描画領域内の一部領域を抽出することを表すクリップ命令であると判別したときに、該中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データを前記生成順序に遡って検索することにより、該クリップ命令が有効なクリップ有効区間を特定する特定手段を含み、前記特定手段によって特定されたクリップ有効区間内の中間コード画像データについて、中間コード画像データの再生成を省略するように、前記中間コード画像データ再生成手段を制御する再生成省略制御手段を備えるものである。
請求項6に記載の画像処理装置は、請求項4に記載の画像処理装置において、前記判別手段が、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が他の中間コード画像データの描画領域内の一部領域を抽出することを表すクリップ命令であると判別したときに、該中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データを前記生成順序に遡って検索することにより、該クリップ命令が有効なクリップ有効区間を特定する特定手段を含み、前記再生成省略制御手段が、前記特定手段によって特定されたクリップ有効区間内の中間コード画像データについて、中間コード画像データの再生成を省略するように、前記中間コード画像データ再生成手段を制御するものである。
このように、判別手段によって、読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が、他の中間コード画像データの描画領域内の一部領域を抽出することを表すクリップ命令であると判別されたときに、特定手段は、この中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データを、中間コード画像データの生成順序に遡って、このクリップ命令が有効なクリップ有効区間を特定する。再生成省略手段は、特定手段によって特定されたクリップ有効区間内の中間コード画像データについて、中間コード画像データの再生成を省略するように、中間コード画像データ再生成手段を制御する。
このように、判別手段によって、読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が、他の中間コード画像データの描画領域内の一部領域を抽出することを表すクリップ命令であると判別されたときに、特定手段によって特定されたクリップ有効区間内の中間コード画像データの再生成を省略、すなわち行わないように、中間コード画像データ再生成手段を制御することができる。
このため、論理演算有効区間に対する中間コード画像データ再生成処理の効率化を図るとともに、中間コード画像データ再生成処理による負荷を軽減することができる。
請求項7に記載の画像処理装置は、所定の描画順序に従って層状に描画される複数のオブジェクトの各々を表すと共に各オブジェクトを描画するときの描画処理を表す描画処理命令を含むページ記述データを、描画処理命令毎に前記オブジェクトの描画順序に従って順次解釈し、描画処理命令とオブジェクトを表す描画領域またはオブジェクトを生成するための描画領域とを含む中間コード画像データに変換する変換する変換手段と、前記変換手段によって変換された中間コード画像データを描画処理命令毎に記憶する記憶手段と、前記中間コード画像データを前記中間コード画像データの生成順序を遡って前記記憶手段から順次読み取る読取手段と、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別を判別する判別手段と、前記判別手段による判別結果に基づいて、該描画領域の輪郭を表す輪郭データの輪郭データ領域を、前回生成した輪郭データの輪郭データ領域に含めた輪郭データを生成する輪郭データ生成手段と、前記読取手段によって読み取られた中間コード画像データを、該中間コード画像データの描画領域から前記輪郭データ生成手段によって前回生成された輪郭データの輪郭データ領域を除いた中間コード画像データとして再生成する中間コード画像データ再生成手段と、を備え、前記判別手段が、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が論理演算命令であると判別したときに、該中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データを前記生成順序に遡って検索することにより該論理演算命令が有効な論理演算有効区間を特定する特定手段を含み、前記特定手段によって特定された論理演算有効区間内の中間コード画像データについて、中間コード画像データの再生成を省略するように、前記中間コード画像データ再生成手段を制御する再生成省略制御手段を備えるものである。
請求項8に記載の画像処理装置は、請求項4に記載の画像処理装置において、前記判別手段が、前記読取手段によって読み取られた中間コード画像データに含まれる描画処理命令の種別が論理演算命令であると判別したときに、該中間コード画像データと同一のオブジェクトを生成するための描画領域を含む中間コード画像データを前記生成順序に遡って検索することにより該論理演算命令が有効な論理演算有効区間を特定する特定手段を含み、前記再生成省略制御手段が、前記特定手段によって特定された論理演算有効区間内の中間コード画像データについて、中間コード画像データの再生成を省略するように、前記中間コード画像データ再生成手段を制御することができる。
このため、クリップ有効区間に対する中間コード画像データ再生成処理の効率化を図るとともに、中間コード画像データ再生成処理による負荷を軽減することができる。
以上説明したように、本発明の画像処理装置によれば、描画処理命令毎に生成された中間コード画像データを中間コード画像データの生成順に遡って順次読取り、各中間コード画像データの描画処理命令の種類に基づいて、中間コード画像データの描画領域の輪郭を表す輪郭データを、該描画領域に応じたオブジェクトの上層側に描画されるオブジェクトに応じた描画領域の輪郭を表す前回生成された輪郭データに含めるか否かを判別して判別結果に基づいて輪郭データを生成すると共に、読取手段によって読み取った中間コード画像データを、この中間コード画像データの描画領域から前回輪郭データ生成手段によって生成された輪郭データの輪郭領域を除いた中間コード画像データとなるように再生成するので、再生成された中間コード画像データのデータ量を、再生成前の中間コード画像データのデータ量より少なくすることができ、記憶手段に記憶される中間コード画像データのデータ量を削減することができると共に、中間コード画像データからラスタデータを生成する時間が大幅に短縮されると共に、中間コード画像データの描画処理情報の種類に基づいて、中間コード画像データの描画領域の輪郭を表す輪郭データを、前回生成された輪郭データに含めるか否かを判別するので、複数の中間コード画像データによって1つのオブジェクトを生成するように中間コード画像データに描画処理命令とオブジェクトを生成するための描画領域が含まれる場合に、各中間コード画像データから輪郭データが生成されることを抑制することができ、ページ記述データに応じて所定の描画順序に従って層状に複数のオブジェクトを描画したときに得られる画像と同一の画像が得られるような中間コード画像データを再生成することができる。
以下、図面を参照して本発明の実施の形態について詳細に説明する。
図1に示すように、画像処理装置10には、画像処理装置10とデータやコマンドを授受可能に接続された外部処理装置40からページ記述言語で記述されたページ記述データを受信する入力制御部12と、入力制御部12で受信したページ記述データに含まれる描画に関する処理命令を表す描画処理命令としての印字コマンド(以下、描画処理命令とする)毎に解釈する印字コマンド解釈部14、各種データを記憶するためのメモリ16、及び印字コマンド解釈部14で解釈された描画処理命令毎に、描画すべきオブジェクトまたはオブジェクトを形成するための基本要素毎の座標情報及び色情報などのデータ列(以下、エッジリストという)に展開すると共にこのエッジリストと描画処理命令を含む中間コード画像データを描画処理命令毎に生成する中間コード画像データ生成部18を含んで構成されている。なお、エッジリストによって表される領域を描画領域として説明する。メモリ16は、入力制御部12によって受信したページ記述データを記憶すると共に、記憶したこのページ記述データを印字コマンド解釈部14によって描画処理命令毎に解釈するとともに中間コード画像データ生成部18によって生成された中間コード画像データを描画処理命令毎に記憶する。
ページ記述データは、複数のオブジェクトを層状に描画するときの描画順(すなわち下層側に描画されるオブジェクトから上層側に描画されるオブジェクトに向かって)に描画処理命令等の各種情報が記述されており、中間コード画像データ生成部は、ページ記述データが印字コマンド解釈部14によって描画処理命令毎に順次解釈された後に、中間コード画像データ生成部18によって生成されて描画処理命令毎にメモリ16へ記憶される。
メモリ16は、再生成された中間コード画像データを格納するための描画メモリ16A、中間コード画像データの内のクリップ命令を含む中間コード画像データを格納するためのクリップバッファ16B、及び後述する輪郭データを保持するための輪郭データ保持領域16Cを含んで構成されている。
中間コード画像データは、図2(A)に示すように、ページ記述言語データに含まれる描画処理命令を順に解釈することによって描画処理命令毎に生成される。図2(A)に示す例では、描画処理命令として、描画命令、クリップ開始命令、描画命令、描画命令、クリップ終了命令、及び描画命令の順に各命令に対応する中間コード画像データが生成されている。
また、他の形態として、中間コード画像データは、描画処理命令として、論理演算命令を含んで構成される。具体的には、例えば、図8に示すように、描画処理命令として、上書き、論理演算命令、論理演算命令としてのクリップ情報、論理演算命令、上書きの順に各命令に対応する中間コード画像データが生成されている。
各中間コード画像データは、図2(B)に示すようにヘッダー情報とエッジリストを含んで構成されている。ヘッダー情報は、描画処理命令の種類と、描画するときの方式、すなわち書き込み方式を示す情報と、を含んで構成されている。本実施の形態では、描画処理命令の種類には、クリップ開始命令、描画命令、及びクリップ終了命令がある。また、本実施の形態では、書き込み方式の種類には、下層側のオブジェクトの上層に描画領域を描画する上書き命令、及び論理演算命令があるものとして説明する。論理演算命令の一例には、AND及びXORがある。なお、ANDはクリップを表すクリップ情報として機能する。
クリップとは、他の中間コード画像データ内の描画領域から、指定された領域をクリップすることによって1つのオブジェクトを形成する処理であり、クリップ開始命令は、このクリップ処理を行うためのクリップ処理開始を示し、クリップ終了命令は、このクリップ処理を行うためのクリップ終了位置を示している。
なお、クリップ開始命令またはクリップ終了命令を含む中間コード画像データは、クリップ開始命令またはクリップ終了命令を含まない中間コード画像データとはメモリ16上の異なる領域(クリップバッファ16B)に格納される。
なお、本実施の形態では、クリップ開始命令を含む中間コード画像データから、この中間コード画像データが生成された後に生成され、このクリップ開始命令に対応するクリップ終了命令を含む中間コード画像データまでの区間を、クリップ有効区間として説明する。
このクリップ有効区間内の、描画処理命令を含む中間コード画像データのエッジリストによって示される描画領域は、クリップ開始命令を含む中間コード画像データに含まれる描画領域によってクリップされる対象となる領域である。
具体的には、図9(A)に示すように、例えば、ページ記述言語データから中間コード画像データ生成部18によって、描画処理命令毎に順次ページ記述言語データが解釈されて、描画処理命令毎に順次中間コード画像データ54A、中間コード画像データ54B、中間コード画像データ54C、及び中間コード画像データ54Dが作成される。中間コード画像データ54Aは、オブジェクトに対応する描画領域56Aと描画処理命令として「上書き」を含んで構成されている。中間コード画像データ54Bは、描画処理命令としてクリップ開始命令を含むとともに、クリップする領域を表す描画領域56Bを含んで構成されている。中間コード画像データ54Cは、描画処理命令として上書きを含むとともに、描画領域56Bによってクリップされる描画領域56Cを含んで構成されている。中間コード画像データ54Dは、描画処理命令としてクリップ終了命令を含んで構成されている。この中間コード画像データ54B、中間コード画像データ54C、及び中間コード画像データ54Dを、クリップ有効区間内の中間コード画像データと称する。
従来の一般的な描画処理では、中間コード画像データの描画領域56Aに、中間コード画像データ54Bの描画領域56Bによって、中間コード画像データ54Cの描画領域56Cをクリップした結果を上書きすることによって、出力画像54Eが得られる。
なお、中間コード画像データに描画処理命令として論理演算命令が含まれ場合には、例えば、中間コード画像データ生成部18によって、図10(A)に示すように、描画処理命令毎に順次中間コード画像データ60A、中間コード画像データ60B、中間コード画像データ60C、及び中間コード画像データ60Dが生成される。中間コード画像データ60Aは、オブジェクトに対応する描画領域62Aと描画処理命令として「上書き」を含んで構成されている。中間コード画像データ60Bは、描画処理命令として論理演算「XOR」を含むとともに、クリップされる領域を表す描画領域62Bを含んで構成されている。中間コード画像データ60Cは、描画処理命令としてクリップ情報「AND」を含むとともに、描画領域62Bまたは後述する描画領域62Dの何れかからクリップする領域を表す描画領域62Cを含んで構成されている。中間コード画像データ60Dは、描画処理命令として論理演算命令「XOR」を含んで構成されている。
なお、本実施の形態では、1つのオブジェクトを生成するための論理演算命令を含む一連の中間コード画像データの全てを含む区間を、論理演算シーケンスとして説明する(図8も参照)。図10(A)の例では、論理演算命令を含む中間コード画像データであって、1つのオブジェクトを生成するための中間コード画像データ60B、中間コード画像データ60C、及び中間コード画像データ60Dが、1つの論理演算シーケンスに含まれる一連の中間コード画像データである。
従来の一般的な描画処理では、ビットマップ描画領域データを生成するときに、中間コード画像データ60Aの描画領域62Aに、論理演算シーケンス内の中間コード画像データ各々の論理演算及び描画領域に基づいて生成されるオブジェクト(描画領域)を上書きすることによって、出力画像60Eが得られている。
しかし、従来の一般的な描画処理では、中間コード画像データを記憶するためのメモリ容量が問題となる場合があり、従来技術で説明したように中間コード画像データから輪郭データ領域を除くことにより中間コード画像データを再生成して記憶する方法では、中間コード画像データに論理演算命令またはクリップ命令が含まれる場合に、一般的な描画処理によって得られる出力画像とは異なる出力画像が得られるような中間コード画像データが再生成されてしまう。
本発明では、中間コード画像データ再生成部20は、中間コード画像データ生成部18で描画処理命令毎に作成されてメモリ16に格納された中間コード画像データ各々を、中間コード画像データの生成順に遡って読み出し、メモリ16に格納されている中間コード画像データのデータ量が少なくなるように再生成する。
詳細は後述するが、具体的には、メモリ16に格納されている中間コード画像データの内の、中間コード画像データ生成部18によって最後に生成された中間コード画像データを読み出し、読み出した中間コード画像データから、輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域を除去することによって、中間コード画像データを再生成する。
なお、中間コード画像データにクリップ終了命令が含まれる場合には、クリップ開始命令を含む中間コード画像データを検索してクリップ有効区間を特定し、クリップ有効区間内のクリップ命令を含まない中間コード画像データの描画領域を、クリップ開始命令を含む中間コード画像データに含まれる描画領域によってクリップした結果を中間コード画像データとして再生成する(図9(B)参照)。
また、一般的に、クリップ開始命令またはクリップ終了命令を含む中間コード画像データは、中間コード画像データ生成部18によって、クリップ開始命令またはクリップ終了命令を含まない中間コード画像データとは異なる領域に格納される。このため、クリップ命令を含む中間コード画像データを再生成するときには、輪郭データを削除せずに別領域に格納されている中間コード画像データをそのまま再生成された中間コード画像データとして扱う(図9(B)参照)。
なお、中間コード画像データに、論理演算命令が含まれる場合には、論理演算命令による論理演算シーケンス内の論理演算命令としてクリップ(AND)を含む中間コード画像データについては、この中間コード画像データの描画領域から輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域を除いた領域を描画領域とするように、中間コード画像データを再生成する。論理演算シーケンス内の論理演算命令としてクリップ以外の論理演算(XOR)を含む中間コード画像データについては、元中間コード画像データをそのまま再生成された中間コード画像データとして扱う(図9(B)参照)。
輪郭データ保持領域16Cに格納される輪郭データは、中間コード画像データ再生成部20によって、各中間コード画像データの再生成処理が行われる度に、中間コード画像データの生成順に遡って前回再生成処理した中間コード画像データの再生成処理前の中間コード画像データ(以下、元中間コード画像データという)の描画領域の輪郭データを、前回生成した輪郭データに含めた輪郭データを生成するか否かの判断が行われ、判断結果に基づいて輪郭データ保持領域に格納されている輪郭データが更新される。
具体的には、前回再生成処理した中間コード画像データの再生成処理前の中間コード画像データが、描画処理命令としてクリップ開始命令またはクリップを表す論理演算命令を含む中間コード画像データであるときには、このクリップ開始命令またはクリップを表す論理演算命令によってクリップすることによって得られる描画領域の輪郭を表す輪郭データを、輪郭データ保持領域16Cに格納されている輪郭データに含めるように輪郭データを生成する。一方、前回再生成処理した中間コード画像データの再生成処理前の中間コード画像データが、描画処理命令としてクリップ開始命令またはクリップ命令を表す論理演算命令を含む中間コード画像データではないときには、輪郭データ保持領域16Cに格納されている輪郭データを更新せずに、次の中間コード画像データの再生成処理を実行する。
なお、輪郭データ保持領域16Cに格納される輪郭データは、層状に描画される一連の描画領域に対応する中間コード画像データの再生成処理が実行された後に、クリアされるものとする。また中間コード画像データ再生成部20で再生成された中間コード画像データは、メモリ16内の図示を省略した再生成された中間コード画像データを格納するための領域に格納され、再生成処理及び輪郭データ生成処理が実行された後に、再生成前の元の中間コード画像データはメモリ16から削除される。
このように、本発明では、中間コード画像データ再生成部20では、描画処理命令毎に生成されてメモリ16に格納された中間コード画像データを、生成された順に遡って順次解釈し、各中間コード画像データに含まれる描画処理命令を判別し、判別結果に基づいて、輪郭データの生成及び中間コード画像データの再生成を実行する(詳細後述)。このため、再生成された中間コード画像データに基づいて描画処理を行ったときに得られる出力画像を、一般的な描画処理によって得られる出力画像と同一となるようにすることができると共に、輪郭データを除いた描画領域を含む中間コード画像データをメモリ16に格納することができるので、中間コード画像データのデータ量を抑制することができる。
中間コード画像データ解釈部22は、メモリ16に格納されている、中間コード画像データ再生成部20で再生成された中間コード画像データを解釈し、バンド毎にビットマップ描画領域データに展開してバンドバッファ26へ出力する。圧縮/伸長処理部24は、メモリ16の空き容量が所定量以下となると、メモリ16に格納されている再生成された中間コード画像データについて圧縮処理を行った後に再度メモリ16に格納すると共に、中間コード画像データ解釈部22によって各中間コード画像データが解釈されるときに、圧縮されている再生成された中間コード画像データを伸長した後に、中間コード画像データ解釈部22による解釈処理に同期させてビットマップ描画領域データをバンドバッファ26へ出力する。
バンドバッファ26では、中間コード画像データ解釈部22及び圧縮/伸長処理部24から入力されたビットマップ描画領域データを格納すると共に、格納したビットマップ描画領域データを出力制御部28へ転送する。出力制御部28は、バンドバッファ26から入力されたビットマップ描画領域を、ビデオデータとして印字装置42へ出力する。
次に、画像処理装置10で実行される中間コード画像データ再度生成処理について説明する。
図3に示すように、ステップ100では、輪郭データ保持領域16Cをクリアする。
次に、メモリ16に格納されている描画処理命令毎に生成された中間コード画像データ各々を生成された順とは逆に読み出し、読み出した各中間コード画像データを解釈するステップ102からステップ110の処理を実行する。本実施の形態では、ステップ104からステップ108の処理を、生成された順に遡って読み出された中間コード画像データ毎に実行する。
ステップ104では、読み出した中間コード画像データに含まれるヘッダー情報の描画処理命令の種類が描画命令であり、且つヘッダー情報の書き込み方式を示す情報が上書きであるか否かを判別し、肯定されると、ステップ106へ進み、読み取った中間コード画像データを再生成する中間コード再生成処理を実行する(詳細後述)。
次のステップ108では、上記ステップ106による再生成処理前の中間コード画像データの描画領域の輪郭データを、上層側に描画される描画領域の輪郭データに含めた輪郭データを生成する輪郭データ生成処理(詳細後述)を実行する。
次のステップ110では、中間コード画像データの生成順に遡って順次全ての中間コード画像データについて上記ステップ104からステップ108の処理が実行された場合には、メモリ16内の再生成前の中間コード画像データ(以下、元中間コード画像データという)を削除した後に、本ルーチンを終了し、上記ステップ104からステップ108の処理が未実行の中間コード画像データがメモリ16内に格納されている場合には、上記ステップ102へ戻る。
一方、上記ステップ104で否定されると、ステップ112へ進み、中間コード画像データに含まれるヘッダー情報の描画命令の種類が、クリップ終了命令であるか否かを判別し、肯定されると、図4に示すステップ114へ進む。
例えば、上記ステップ112で肯定されることによって、図9(B)に示す中間コード画像データ54Dが検索される。
ステップ114からステップ118では、上記ステップ104で否定され且つ上記ステップ112で肯定されたことから、処理対象の中間コード画像データの描画命令の種類はクリップ終了命令であるので、ステップ116において、このクリップ終了命令に対応するクリップ開始命令を含む中間コード画像データを検索するクリップ開始命令検索ループが実行される。このクリック開始命令検索ループでは、ステップ116において、中間コード画像データに含まれる描画処理命令がクリップ開始命令であるか否かを、クリップ終了命令を含む中間コード画像データから中間コード画像データの生成順に遡って順次メモリ16内に格納されている中間コード画像データを検索し、肯定されるまでクリップ開始命令検索ループを繰り返す。
上記ステップ116で肯定されることによって、例えば、図9(B)に示す中間コード画像データ56Bが検索される。
ステップ116で肯定され、このクリップ終了命令に対応するクリップ開始命令を含む中間コード画像データが検索されると、ステップ120へ進み、メモリ16内のクリップバッファ16Bをクリアする。
次のステップ122では、クリップバッファ16Bに、上記ステップ116で検索したクリップ開始命令を含む中間コード画像データに含まれる、クリップ領域を表す描画領域(図9(B)の描画領域56B参照)をクリップ領域として設定する。
次のステップ124では、クリップ終了命令を含む中間コード画像データから、このクリップ終了命令に対応するクリップ開始命令を含む中間コード画像データまでの間に含まれる中間コード画像データを、クリップ有効区間として設定する。
例えば、図9(B)の中間コード画像データ54D、中間コード画像データ54C、及び中間コード画像データ54Bがクリップ有効区間として設定される。
次に、ステップ126からステップ128の処理において、上記ステップ124でクリップ有効区間として設定した中間コード画像データ各々を、中間コード画像データの生成順に遡って順次読み出し、ステップ106において中間コード画像データの再生成処理(詳細後述)を行った後に、ステップ108において輪郭データ生成処理(詳細後述)を行う、クリップ有効区間ループが実行される。
上記ステップ106及びステップ108の処理が、上記ステップ124で設定したクリップ有効期間内の全ての中間コード画像データ各々について実行されると、上記ステップ110へ戻る。
なお、クリップ有効区間に対する中間コード画像データ再生成処理は負荷が重いため、中間コード画像データ解釈部22を、ソフトウェアとしてではなくハードウェアとして構成した場合には、クリップ有効区間の中間コード画像データに対しては、中間コード画像データの再生成処理を省略(以下、スキップという)することが可能である。
このような場合には、上記ステップ104で否定されると、ステップ112へ進み、中間コード画像データに含まれるヘッダー情報の描画命令の種類が、クリップ終了命令であるか否かを判別し、肯定されると、図14に示すステップ113へ進む。
例えば、上記ステップ112で肯定されることによって、図9(B)に示す中間コード画像データ54Dが検索される。
図14に示すように、ステップ113では、クリップ有効区間の中間コード画像データに対して、中間コード画像データの再生成処理を行うかどうかを判定するためのカウンタの初期化を行う。
次のステップ114からステップ118では、上記ステップ104で否定され且つ上記ステップ112で肯定されたことから、処理対象の中間コード画像データの描画命令の種類はクリップ終了命令であるため、ステップ116において、上記ステップ112で判別したクリップ終了命令に対応するクリップ開始命令を含む中間コード画像データを、メモリ16内に格納されている中間コード画像データから、順次中間コード画像データの生成順に遡って検索するクリップ開始命令検索ループが実行される。
このクリップ開始命令検索ループでは、まずステップ116において、中間コード画像データに含まれる描画処理命令がクリップ開始命令であるか否かを判別する。
上記ステップ116で否定された場合には、検索した中間コード画像データは描画命令あるいはクリップ命令(終了)である。検索した中間コード画像データが描画命令の場合には、ステップ117に進み、検索した中間コード画像データの描画命令に応じた描画面積を、上記ステップ113で初期化したカウンタに加算した後に、ステップ116へ戻り、ステップ116において、肯定されるまでクリック開始命令検索ループを繰り返す。
一方、上記ステップ116で肯定され、クリップ終了命令に対応するクリップ開始命令を含む中間コード画像データが検索されると、ステップ119へ進む。
上記ステップ116で肯定されることによって、例えば、図9(B)に示す中間コード画像データ56Bが検索され、カウンタにはクリップ有効区間の描画命令の総描画面積の値が設定された状態となる。
次のステップ119では、カウンタの値が予め定められた閾値より大きいか否かを判断する。なお、閾値は、中間コード画像データ再生成部20におけるクリップ有効区間に対する再生成処理時間と中間コード画像データ解釈部22におけるクリップ有効区間に対する解釈処理時間の関係から、画像処理装置10毎に予め求められる値であるが、このような閾値を設けずに、クリップ有効区間に対しては無条件に中間コード画像データの再生成処理をスキップするようにしてもよい。
ステップ119で否定されると、上記ステップ120(図4参照)へ進み、肯定され、カウンタの値が閾値より大きい場合には、ステップ121へ進み、クリップ有効区間の中間コード画像データの再生成処理は行わず、クリップ有効区間の中間コード画像データを全て指定された領域にコピーする。
次のステップ123では、輪郭データ保持領域16Cをクリアした後に、上記ステップ110へ戻る。
一方、上記ステップ112で否定され、中間コード画像データに含まれるヘッダー情報の描画命令の種類が描画命令で且つ書き込み方式が論理演算命令である場合には、図5に示すステップ130へ進む。
例えば、上記ステップ112で否定されることによって、図10(B)に示す中間コード画像データ60Dが検索される。
ステップ130からステップ134では、上記ステップ104で否定され且つ上記ステップ112で否定されたことから、処理対象の中間コード画像データには、描画処理命令として論理演算命令が含まれるので、ステップ132において、この論理演算命令を含む論理演算シーケンスの先頭の中間コード画像データを判別することによって、論理演算シーケンスの先頭の中間コード画像データを検索する、論理演算シーケンス検索ループが実行される。この論理演算シーケンス検索ループでは、ステップ132において、上記検索した中間コード画像データ(図10(B)では中間コード画像データ60D)から中間コード画像データの生成順に遡って中間コード画像データを検索し、中間コード画像データの描画処理命令として論理演算命令を含まない中間コード画像データの次に生成され且つ論理演算命令を含む中間コード画像データが検索されるまで論理演算シーケンス検索ループを繰り返す。
上記ステップ132で肯定されることによって、例えば、図10(B)に示す中間コード画像データ60Bが検索される。
ステップ132で肯定され、論理演算シーケンスの先頭に相当する中間コード画像データが検索されると、ステップ136へ進み、上記ステップ130からステップ134の論理演算シーケンス検索ループにより検索された論理演算シーケンス区間を設定する。
ステップ136の処理によって、具体的には、図10の中間コード画像データ60D、中間コード画像データ60C、及び中間コード画像データ60Bが、論理演算シーケンス区間に相当する中間コード画像データとして設定される。
次に、ステップ138からステップ140の処理において、上記ステップ136で論理演算シーケンス区間として設定した中間コード画像データ各々を、中間コード画像データの生成順に遡って順次読み出し、ステップ106において中間コード画像データの再生成処理(詳細後述)を行った後に、ステップ108において輪郭データ生成処理(詳細後述)を行う、論理演算シーケンス区間ループが実行される。
上記ステップ106及びステップ108の処理が、上記ステップ136で設定した論理演算シーケンス区間内の全ての中間コード画像データ各々について実行されると、上記ステップ110へ戻る。
なお、論理演算シーケンス区間に対する中間コード画像データ再生成処理は負荷が重いため、もし中間コード画像データ解釈部22が、ソフトウェアではなくハードウェアにより構成されている場合には、論理演算シーケンス区間の中間コード画像データに対しては、中間コード画像データの再生成処理をスキップするということも可能である。
この場合には、上記ステップ104(図3参照)で否定されてステップ112へ進み、さらに上記ステップ112で否定されて、中間コード画像データに含まれるヘッダー情報の描画命令の種類が描画命令で且つ書き込み方式が論理演算命令である場合には、図15に示すステップ129へ進むようにすればよい。
例えば、上記ステップ112で否定されることによって、図10(B)に示す中間コード画像データ60Dが検索される。
図15に示すように、ステップ129では、論理演算シーケンス区間の中間コード画像データに対して、中間コード画像データの再生成処理を行うかどうかを判定するためのカウンタの初期化を行う。
次のステップ130からステップ134では、上記ステップ104(図3参照)で否定され且つ上記ステップ112(図3参照)で否定されたことから、処理対象の中間コード画像データには、描画処理命令として論理演算命令が含まれるので、この論理演算命令を含む論理演算シーケンスの先頭に位置する中間コード画像データを判別(検索)することによって、論理演算シーケンスの先頭の中間コード画像データを検索する、論理演算シーケンス検索ループが実行される。
この論理演算シーケンス検索ループでは、ステップ132において、上記ステップ112において検索した中間コード画像データ(図10(B)では中間コード画像データ60D)から中間コード画像データの生成順に遡ってメモリ16内の中間コード画像データを検索し、中間コード画像データの描画処理命令として論理演算命令を含まない中間コード画像データの次(すなわち、後)に生成され且つ論理演算命令を含む中間コード画像データが検索されるまで論理演算シーケンス検索ループを繰り返し、この論理演算シーケンスが繰り返される度に、ステップ131において、上記ステップ129で初期化したカウンタに上記ステップ132で検索した中間コード画像データの描画面積を加算する。
上記ステップ132で肯定されることによって、例えば、図10(B)に示す中間コード画像データ60Bが検索される。
ステップ132で肯定され、論理演算シーケンスの先頭に相当する中間コード画像データが検索されると、ステップ135へ進み、カウンタの値が閾値より大きいか否かを判別し、否定され、カウンタの値が閾値より小さい場合には、図5のステップ136からステップ140と同様な処理を行う。
一方、上記ステップ135で肯定され、カウンタの値が閾値より大きい場合には、ステップ137へ進み、論理演算シーケンス区間の中間コード画像データの再生成処理を行わず、論理演算シーケンス区間の中間コード画像データ全てを、中間コード画像データの生成順にメモリ16の予め指定された領域にコピーする。
次のステップ139では、輪郭データ保持領域16Cをクリアした後に、上記ステップ110へ戻る。
ここで、上記閾値は、中間コード画像データ再生成部20におけるクリップ有効区間に対する再生成処理時間と中間コード画像データ解釈部22におけるクリップ有効区間に対する解釈処理時間の関係から画像処理装置10毎に求まる値であるが、閾値を設けずに論理演算シーケンス区間に対しては無条件に中間コード画像データの再生成処理をスキップしても良い。
次に、上記ステップ106において実行される中間コード画像データ再生成処理について説明する。
ステップ200は、処理対象の中間コード画像データが上記ステップ124で設定されたクリップ有効区間内の中間コード画像データであるか否かを判別し、肯定されると、ステップ214へ進む。
上記ステップ200で肯定される中間コード画像データとは、具体的には、図9(B)に示す中間コード画像データ54D、中間コード画像データ54C、及び中間コード画像データ54Bである。
次のステップ214では、処理対象の中間コード画像データに含まれる描画処理命令が、クリップ命令であるか否かを判別し、肯定されると、本ルーチンを終了し、否定されると、ステップ216へ進む。
ステップ214で肯定される中間コード画像データは、具体的には、図9(B)に示す中間コード画像データ54D及び中間コード画像データ54Bである。
ステップ214で否定される中間コード画像データは、具体的には、図9(B)に示す中間コード画像データ54Cである。
ステップ216では、上記ステップ122で設定したクリップ領域で、この中間コード画像データの描画領域をクリップすると共に、クリップした描画領域からメモリ16の輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域を除く。
ステップ216の処理によって、図9(B)に示すように、中間コード画像データ54Cの描画領域56Cが、中間コード画像データ54Bの描画領域56Bによってクリップされた結果から、メモリ16の輪郭データ保持領域16Cに格納されている輪郭データ(この場合は何も保持されていない)の輪郭データ領域が除かれて、描画領域59Cが生成される。
次のステップ206では、上記ステップ216の処理によって残った描画領域を描画領域とするように中間コード画像データを再生成する。
具体的には、例えば、図9(B)に示すように、上記ステップ216の処理によって残った描画領域59Cを含む中間コード画像データ57Cとなるように、中間コード画像データ56Cを再生成する。
次のステップ208では、上記ステップ206によって再生成された中間コード画像データを、メモリ16内の再生成された中間コード画像データを格納するあらかじめ定められた特定の領域に格納した後に、本ルーチンを終了する。
このように、クリップ有効区間内の中間コード画像データの内、描画処理情報としてクリップ命令を含む中間コード画像データについては中間コード画像データが再生成されず、クリップ命令を含まない中間コード画像データについては、輪郭データ保持領域16Cに格納されている輪郭データとクリップバッファ16Bに格納されているクリップ領域で描画領域を除いた領域を新たな描画領域とする中間コード画像データが生成される。
一方、上記ステップ202で否定されて、処理対象の中間コード画像データが上記ステップ124で設定されたクリップ有効区間内の中間コード画像データではない場合には、ステップ202へ進み、処理対象の中間コード画像データが上記ステップ136で設定された論理演算シーケンス区間内の中間コード画像データか否かを判別する。
ステップ202で肯定される中間コード画像データとは、具体的には、例えば、図10(B)に示す中間コード画像データ60D、中間コード画像データ60C、中間コード画像データ60Bの何れかである場合である。
ステップ202で肯定されると、ステップ210へ進み、処理対象の中間コード画像データに含まれる描画処理命令がクリップ情報であるか否かを判別し、否定されるとステップ212へ進む。
ステップ210で否定される場合とは、処理対象の中間コード画像データの描画処理命令が論理演算命令であり、且つクリップ命令「AND」ではない、すなわち論理演算命令として「XOR」を含む中間コード画像データを処理対象とした場合である。すなわち、例えば、処理対象の中間コード画像データが図10(B)に示す中間コード画像データ60Dまたは中間コード画像データ60Bの何れかである場合である。
ステップ212では、中間コード画像データを再生成することなく、そのまま再生成された中間コード画像データを、メモリ16内の再生成された中間コード画像データを格納するあらかじめ定められた特定の領域に格納した後に、本ルーチンを終了する。
すなわち、描画処理命令として論理演算命令を含み、且つ論理演算命令として「XOR」を含む中間コード画像データは、再生成されることなくそのまま再生成された中間コード画像データを格納するメモリ16内の特定領域に格納される。
一方、上記ステップ202で否定されたとき、及び上記ステップ210で否定されたときには、ステップ204へ進む。
上記ステップ202で否定されたときとは、処理対象の中間コード画像データが、上記ステップ124で設定されたクリップ有効区間外の中間コード画像データであり、且つ上記ステップ136で設定された論理演算シーケンス外の中間コード画像データである場合である。上記ステップ200及びステップ202において否定される場合の中間コード画像データとは、具体的には、図9(B)に示す中間コード画像データ54A、及び図10(B)に示す中間コード画像データ60Aであって、描画処理命令として論理演算命令やクリップ命令を含まず且つクリップ有効区間及び論理演算シーケンス区間外の中間コード画像データである。
また、上記ステップ210で肯定されたときとは、処理対象の中間コード画像データが、上記ステップ136で設定された論理演算シーケンス内で、且つ描画処理情報として論理演算命令「AND」を含む中間コード画像データである場合である。
ステップ204では、輪郭データ保持領域16Cに格納されている輪郭データで、処理対象となる中間コード画像データに含まれる描画領域をクリップする。
すなわち、輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域を、処理対象となる中間コード画像データの描画領域から除く。
具体的には、図9(B)に示すように、中間コード画像データ54Aの描画領域56Aから、メモリ16の輪郭データ保持領域16Cに格納されている輪郭データ57Cの輪郭データ領域58Cが除かれて、描画領域59Aが残る。また、図10(B)に示すように、中間コード画像データ60Aの描画領域62Aから、メモリ16の輪郭データ保持領域16Cに格納されている輪郭データ61Cの輪郭データ領域64Cが除かれて、描画領域67Aが残る。同様に、中間コード画像データ60Cの描画領域62Cから、輪郭データ保持領域16Cに格納されている輪郭データ61Cの輪郭データ領域(この場合は何も格納されていない)が除かれて、描画領域67Cが残る。
次のステップ206では、上記ステップ216の処理によって残った描画領域を描画領域とする中間コード画像データを再生成する。
具体的には、例えば、図9(B)に示すように、上記ステップ204の処理によって残った描画領域59Aを含む中間コード画像データ57Aとなるように、中間コード画像データ56Aを再生成する。同様に、図10(B)に示すように、上記ステップ204の処理によって残った描画領域67Aを含む中間コード画像データ66Aとなりように、中間コード画像データ60Aを再生成する。また、同様に、上記ステップ204の処理によって残った描画領域67Cを含む中間コード画像データ66Cとなるように、中間コード画像データ60Cを再生成する。
次のステップ208では、上記ステップ206によって再生成された中間コード画像データを、メモリ16内の再生成された中間コード画像データを格納するあらかじめ定められた特定の領域に格納した後に、本ルーチンを終了する。
このように、クリップ有効区間外で且つ論理演算シーケンス外の中間コード画像データ、及び論理演算シーケンス内で描画処理命令としてクリップ情報を表す論理演算命令「AND」を含む中間コード画像データについては、輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域で描画領域を除いた領域を新たな描画領域とする中間コード画像データが生成される。
次に、上記ステップ108で実行される輪郭データ生成処理について説明する。
図7に示すように、ステップ300では、処理対象の中間コード画像データが、上記ステップ124で設定されたクリップ有効区間内の中間コード画像データであるか否かを判別する。
ステップ300で肯定され、処理対象の中間コード画像データがクリップ有効区間内の中間コード画像エータである場合には、この処理対象の中間コード画像データの描画処理命令がクリップ命令(クリップ開始命令またはクリップ終了命令)であるか否かを判別し、否定されると、本ルーチンを終了し、肯定されるとステップ312へ進む。
ステップ310の判断は、中間コード画像データのヘッダー情報に示される命令の種類がクリップ命令であるか否かを判別することによって判断可能である。
ステップ312では、クリップバッファ16Bに格納されている上記ステップ122で設定されたクリップ領域で、処理対象の中間コード画像データの描画領域をクリップすることによって得られた領域を、輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域に追加した後に本ルーチンを終了する。
ステップ310及びステップ312の処理によって、具体的には、図9(C)に示すように、上記ステップ100の処理によって初期状態では輪郭データ保持領域16Cには、なにも格納されていない状態にあるが(輪郭データ57D参照)、ステップ312の処理によって、クリップ有効区間内のクリップ命令を含まない中間コード画像データ54Cについては、この中間コード画像データ54Cの描画領域56Cを、上記ステップ122で設定されたクリップ領域(中間コード画像データ54Bの描画領域56B)によってクリップした領域を表す輪郭データ領域58Cの輪郭データ57Cが、輪郭データ保持領域16Cに格納される。
なお、ステップ310の処理によって、クリップ開始命令を含む中間コード画像データ54B及びクリップ終了命令を含む中間コード画像データ54Dからは何も輪郭データが生成されない。
上記ステップ300で否定されると、ステップ302へ進み、処理対象の中間コード画像データが、上記ステップ136で設定された論理演算シーケンス内の中間コード画像データであるか否かを判別し、肯定されて、処理対象の中間コード画像データが論理演算シーケンス内の中間コード画像データである場合には、ステップ306へ進み、処理対象の中間コード画像データの描画処理命令がクリップ情報であるか否かを判別する。ステップ306の判断は、処理対象の中間コード画像データの描画処理命令が、論理演算命令「AND」であるか否かを判別することによって可能である。
ステップ306で否定され、論理演算命令が「XOR」である場合には、輪郭データを生成せずに本ルーチンを終了し、論理演算命令が「AND」である場合には、ステップ308へ進み、輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域に、処理対象の中間コード画像データのクリップ領域としての描画領域の輪郭を表す輪郭データ領域を追加した後に本ルーチンを終了する。
ステップ306及びステップ308の処理によって、具体的には、図10(C)に示すように、上記ステップ100の処理によって、初期状態では輪郭データ保持領域16Cには、なにも格納されていない状態となるが(輪郭データ61D参照)、ステップ308の処理によって、論理演算シーケンス区間内のクリップ情報「AND」を含まない、「XOR」を含む中間コード画像データ60D及び中間コード画像データ60Bについては、各描画領域62B及び描画領域62Dの輪郭データ領域を、輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域に含めず、論理演算シーケンス区間内のクリップ情報「AND」を含む中間コード画像データ60Cについては、描画領域62Cの輪郭を表す輪郭データ領域を輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域に追加する。
一方、上記ステップ302で否定され、処理対象となる中間コード画像データが上記ステップ124で設定されたクリップ有効区間外及び上記ステップ136で設定された論理演算シーケンス区間外である場合には、ステップ304へ進む。
ステップ304では、メモリ16の輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域に、処理対象の中間コード画像データの描画領域の輪郭を表す輪郭データ領域を輪郭データ保持領域16Cに格納されている輪郭データの輪郭データ領域に追加した後に、本ルーチンを終了する。
ステップ304の処理によって、具体的には、図9(C)に示すように、論理演算シーケンス区間外及びクリップ有効区間外の中間コード画像データ54Aについては、描画領域56Aの輪郭データ領域を、輪郭データ保持領域16Cに格納されている輪郭データ57Cの輪郭データ領域58Cに追加した輪郭データ領域58Aの輪郭データ57Aが、輪郭データ保持領域16Cに格納される。同様に、図10(C)に示すように、論理演算シーケンス区間外及びクリップ有効区間外の中間コード画像データ60Aについては、描画領域62Aの輪郭データ領域を、輪郭データ保持領域16Cに格納されている輪郭データ61Cの輪郭データ領域64Cに追加した輪郭データ領域64Aの輪郭データ61Aが、輪郭データ保持領域16Cに格納される。
以上説明したように、本発明の画像形成装置によれば、中間コード画像データを、中間コード画像データの生成順に遡って順次解釈し、中間コード画像データの描画処理命令を判別し、描画処理命令に論理演算命令やクリップ命令が含まれる場合には、命令の内容に基づいて輪郭データを既に生成されて保持されている輪郭データに追加するか否かを判別して判別結果に基づいて輪郭データを生成すると共に、命令の内容に基づいて、中間コード画像データを再生成する。
詳細には、中間コード画像データの描画処理命令に基づいて、輪郭データの生成処理及び中間コード画像データの再度生成処理を行う。処理対象の中間コード画像データがクリップ有効区間内の中間コード画像データであり且つクリップ命令を含むときには、中間コード画像データの再生成処理を行なわず、また輪郭データの生成を行わない。
処理対象の中間コード画像データがクリップ有効区間内の中間コード画像データであり且つクリップ命令を含まないときには、中間コード画像データの描画領域から設定されたクリップ領域及び輪郭データ保持領域16Cに格納されている輪郭データ領域を除いた領域を描画領域するように中間コード画像データを再生成する。また、元中間コード画像データの描画領域を、クリップ領域(同一クリップ有効区間内の他の中間コード画像データによって表されるクリップ領域)でクリップした領域を、輪郭データ保持領域16Cに格納されている輪郭データに追加することにより輪郭データを生成する。
また、処理対象の中間コード画像データが論理演算シーケンス区間内の中間コード画像データであり且つクリップ情報「AND」を論理演算命令として含むときには、中間コード画像データの描画領域から輪郭データ保持領域16Cに格納されている輪郭データ領域を除いた領域を描画領域とするように、中間コード画像データを再生成する。
また、元中間コード画像データの描画領域を輪郭データ保持領域16Cに格納されている輪郭データ領域に加えた輪郭データとなるように輪郭データを生成する。さらに、処理対象の中間コード画像データが論理演算シーケンス区間内の中間コード画像データであり且つクリップ情報「XOR」を論理演算命令として含むときには、元中間コード画像データをそのまま再生成された中間コード画像データとしてメモリ16の再生成された中間コード画像データを保持するための領域に格納し、輪郭データの生成は行わない。
従って、中間コード画像データに、クリップ命令や論理演算命令が含まれる場合であっても、描画対象となる領域に応じた輪郭データを生成することができるとともに、描画対象となる描画領域の輪郭に応じた描画領域を含む中間コード画像データから、上層に描画される描画領域を除いた領域を描画領域とするように、中間コード画像データを再生成するので、中間コード画像データのデータ量を削減することができる。
また、一般的な描画処理によって得られる出力画像と同一の出力画像が得られるように、中間コード画像データを再生成することができる。
すなわち、従来の一般的な描画処理(図9(A)、または図10(A)参照)において、ビットマップ描画領域データを生成するときに、中間コード画像データの描画領域に、論理演算シーケンス内の中間コード画像データ各々の論理演算及び描画領域に基づいて生成される描画領域を上書きすることによって得られる出力画像(例えば出力画像54E及び出力画像60E)と、同一の出力画像が得られるように、且つ中間コード画像データによるメモリ16容量の減少を防ぐことができるように、描画処理命令の内容に基づいて、中間コード画像データを再生成する。再生成処理は、中間コード画像データの描画処理命令の内容に基づいて、この中間コード画像データの描画領域から、描画処理命令の内容に基づいて生成されて輪郭データ保持領域16Cに保持されている輪郭データの輪郭データ領域を除いた描画領域を含む中間コード画像データとなるように、中間コード画像データを再生成する。このようにして再生成された中間コード画像データは、描画処理する対象となる描画領域から、各描画領域の上層側に描画される描画領域による輪郭データ領域を除いた領域を描画領域として含む中間コード画像データであるため、再生成された中間コード画像データに基づいて生成したビットマップ描画領域データに応じた出力画像(図9の出力画像59E及び図10の出力画像66E)は、同一の中間コード画像データから一般的な描画処理によって得られた出力画像(図9の出力画像54E及び図10の出力画像60E)と同一となる。
さらに、メモリ16内に保持する中間コード画像データの内、描画領域として重なる領域を除いた領域のみを含むように中間コード画像データを再生成することができるので、ビットマップ描画領域データの生成を高速に行うことができる。