(57)【要約】【課題】タイリングパターン機能において、隣り合うパターン間にパターンが存在しない領域を設けることができ、種々の論理演算などの処理を可能とした画像処理装置を提供する。【解決手段】中間コード生成部１１が生成する中間コード画像データとして、タイリングパターン機能を用いる場合には、パターンのサイズとともに、隣接するパターンとの距離を示すオフセットを設定する。このオフセットがパターンのサイズより大きくすることによって、隣接するパターンの間にはパターンが存在しない領域を設けることができる。この領域には、不定としたり、あるいは既定値の他、予め設定しておいた値や、描画時点で値を決めることができる。これによって、中間コード画像データ展開部１３では、パターンの存在しない領域においてもＲＯＰ３演算など種々の処理を施すことが可能となる。【選択図】  図１
2004326528.tif 000002
【特許請求の範囲】
【請求項１】
同じパターンを繰り返して描画するタイリングパターン機能を有する画像処理装置において、入力された描画命令あるいは前記描画命令から生成された中間コード画像データに基づいてレンダリング処理を行いビットマップイメージを作成する描画手段と、前記ビットマップイメージを保持する画像記憶手段を有し、前記描画手段は、前記描画命令により前記パターンのサイズよりも大きな間隔での前記タイリングパターン機能の使用を指示されたとき、隣り合う前記パターンの間に前記パターンが存在しない領域を設けるように描画することを特徴とする画像処理装置。
【請求項２】
前記間隔は、主走査線方向と副走査線方向について独立に設定できることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記描画手段は、前記タイリングパターン機能により描画を行う際に、前記画像記憶手段の原点をその領域の内部に含む基準位置パターンに対する位置情報を保持、該位置情報に従って描画を行うことを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記描画手段は、前記パターンを用いて演算を行う際に、隣り合うパターンの間に設けられたパターンが存在しない領域で演算が実行される場合には、前記パターンが存在しない領域での値を不定として演算を行うことを特徴とする請求項１ないし請求項３のいずれか１項に記載の画像処理装置。
【請求項５】
前記描画手段は、前記パターンを用いて演算を行う際に、隣り合うパターンの間に設けられたパターンが存在しない領域で演算が実行される場合には、前記パターンが存在しない領域での値を指定された一律の値として演算を行うことを特徴とする請求項１ないし請求項３のいずれか１項に記載の画像処理装置。
【請求項６】
前記描画手段の全部または一部の機能は、専用の回路で構成されていることを特徴とする請求項１ないし請求項５のいずれか１項に記載の画像処理装置。
【請求項７】
前記描画手段は、前記パターンを用いて演算を行う際には、該パターンを前記専用の回路内のレジスタに保持することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
入力される描画命令あるいは前記描画命令から生成された中間コード画像データに基づいてレンダリング処理を行いビットマップイメージを作成する画像処理方法であって、同じパターンを繰り返して描画するタイリングパターン機能を有し、前記描画命令により前記パターンのサイズよりも大きな間隔での前記タイリングパターン機能の使用を指示されたとき、隣り合う前記パターンの間に前記パターンが存在しない領域を設けるように描画することを特徴とする画像処理方法。
【請求項９】
前記間隔は、主走査線方向と副走査線方向について独立に設定できることを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記タイリングパターン機能により描画を行う際に、前記画像記憶手段の原点をその領域の内部に含む基準位置パターンに対する位置情報を保持し、該位置情報に従って描画を行うことを特徴とする請求項８または請求項９に記載の画像処理方法。
【請求項１１】
前記描画命令により前記パターンを用いて演算を行う指示を受けたとき、隣り合うパターンの間に設けられたパターンが存在しない領域で演算が実行される場合には、前記パターンが存在しない領域での値を不定として演算を行うことを特徴とする請求項８ないし請求項１０のいずれか１項に記載の画像処理方法。
【請求項１２】
前記描画命令により前記パターンを用いて演算を行う指示を受けたとき、隣り合うパターンの間に設けられたパターンが存在しない領域で演算が実行される場合には、前記パターンが存在しない領域での値を指定された一律の値として演算を行うことを特徴とする請求項８ないし請求項１０のいずれか１項に記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力される描画命令あるいは前記描画命令から生成された中間コード画像データに基づいてレンダリング処理を行いビットマップイメージを作成して印字装置等に出力を行う画像処理技術に関するものであり、特に、同じパターンを繰り返して描画するタイリングパターン機能を実現するための技術に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータなどの上位処理装置から印字命令を受けた画像処理装置は、実際の印字情報である描画命令を受信して順に解釈し、ビットマップイメージを作成して出力する。この処理過程において、画像処理装置がページバッファを保持している場合には、解釈したビットマップイメージをそのままページバッファに書き込み（レンダリング処理）、ページ単位で出力する。また、ページバッファは多大な記憶容量を必要とするため、ページバッファではなく、１ページを複数に分割したバンド単位のバッファ（バンドバッファ）を保持している場合も多い。このような場合には、一度バンド単位の中間コード画像データに変換し、全ての描画命令の解釈および中間コード画像データの生成終了後、バンド単位で中間コード画像データを解釈し、ビットマップイメージをバンドバッファに書き込むレンダリング処理を行う。
【０００３】
通常のレンダリング処理においては、それぞれの描画命令（あるいは描画命令から返還された中間コード画像データ）が持つ情報のみを参照して描画されるが、パターン描画やＷｉｎｄｏｗｓ（登録商標）のＧＤＩがサポートするＲＯＰ（Ｒａｓｔｅｒ  ＯＰｅｒａｔｉｏｎ）３の描画では、パターンの情報を必要とする。ここで、パターンは描画命令とともに受け取った単一のパターンを使用する他、受け取ったパターンを繰り返して用いるタイリングパターン機能が提供されている。このタイリングパターン機能は、Ｍ×Ｎ画素のサイズのビットマップのパターンを繰り返し用いて仮想的に敷き詰める機能であり、この機能により、Ｍ×Ｎ画素の１つのパターン（＝キーパターン）で広い領域にパターンを描画するものである。
【０００４】
しかし、もともとパターン描画やＲＯＰ３の描画はページを想定した描画であるため、中間コード画像データを使用してバンドバッファへ描画する場合においては、各バンドにおいてバンドバッファの原点とパターンとの位相を考慮する必要がある。バンドバッファの原点とパターンとの位相を考慮した一例として、特許文献１に記載されている方法がある。この特許文献１に記載されている方法は、オリジナルパターンビットマップをバンドバッファの原点まで後方伝搬させて基準パターンビットマップ（＝キーパターン）を求め、基準パターンビットマップを基準にして指定された領域のパターンを決定するものである。
【０００５】
しかし、この特許文献１に記載されている方法では、バンドバッファの原点を基準（＝描画座標系）にしているため、キーパターンの左上の座標（＝原点画素）とバンドバッファの原点が一致する場合を除き、キーパターンの原点座標は負になり、回路化を行なう場合に回路構成が複雑になるという欠点がある。
【０００６】
それに対し、特許文献２に記載されている画像描画装置では、描画座標系をパターン座標系に変換してパターン座標系の座標で描画している。この方式によりキーパターンの座標は必ず非負の値となり、回路化が容易になる。
【０００７】
上述のような従来のタイリングパターン機能は、基本的に上述のようにキーパターンを敷き詰める機能であるため、間隔を置いて描画し、隣り合うパターン間にキーパターンが存在しない領域を作ることができない。上述の２つの方法においても、隣り合うパターンは全て隙間なく敷き詰められることを前提としている。
【０００８】
図１０は、パターン間隔を指示可能な従来のタイリングパターン機能の一例の説明図である。例えばアドビ社のＰｏｓｔＳｃｒｉｐｔ（登録商標）では、水平パターンセル間隔及び垂直パターンセル間隔を指定することができる。この場合、例えば図１０（Ａ）に示すキーパターンが与えられたとき、図１０（Ｂ）に示すような水平パターンセル間隔及び垂直パターンセル間隔で指定された大きさのタイリング用パターンを生成し、このタイリング用パターンを敷き詰めるように描画している。このとき、キーパターンのサイズよりも大きな水平パターンセル間隔及び垂直パターンセル間隔が指定された場合には、透過するデータを追加してタイリング用パターンを生成し、上書き描画を行っている。
【０００９】
しかし、このような従来のタイリングパターン機能では、隣接するキーパターン間については固定された透過の指示が行われるのみであり、例えば論理演算など、各種の処理を指示することができないという問題があった。
【００１０】
【特許文献１】
特開平１１−３０９７９号公報
【特許文献２】
特開２００２−３２７６８号公報
【００１１】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、タイリングパターン機能において、隣り合うパターン間にパターンが存在しない領域を設けることができ、種々の論理演算などの処理を可能とした画像処理装置を提供することを目的とするものである。
【００１２】
【課題を解決するための手段】
本発明は、入力される描画命令あるいは描画命令から生成された中間コード画像データに基づいてレンダリング処理を行いビットマップイメージを作成する画像処理装置及び画像処理方法であって、同じパターンを繰り返して描画するタイリングパターン機能を有しており、描画命令によりパターンのサイズよりも大きな間隔でのタイリングパターン機能の使用を指示されたとき、隣り合うパターンの間にパターンが存在しない領域を設けるように描画することを特徴とするものである。このパターンが存在しない領域は、例えば演算が実行されるときには値を不定として演算を行ったり、指定された値として演算を行うことができる。これによって、従来は透過による上書きしかできなかったパターンの間の部分において、種々の描画処理を指定し、実行することが可能となる。
【００１３】
なお、パターンの間隔は、主走査線方向と副走査線方向について独立に設定可能に構成することができる。また、描画手段の全部又は一部の機能は専用の回路で構成することができる。この場合、タイリングパターン機能で使用するパターンは、専用の回路内のレジスタに保持するように構成し、高速化を図ることができる。
【００１４】
さらに、タイリングパターン機能により描画を行う際には、上述の特許文献２と同様に、画像記憶手段の原点をその領域の内部に含む基準位置パターンに対する位置情報を保持し、該位置情報に従って描画を行うように構成することができる。これによって、画像記憶手段における原点とパターンとの位相を正しく調整することが可能となる。例えばバンド単位でレンダリングする際にも、バンドに跨るパターンの位相を正確に合わせることができる。また、容易に回路化することが可能となる。
【００１５】
【発明の実施の形態】
図１は、本発明の実施の一形態を示す機能ブロック図である。図中、１は上位処理装置、２は画像処理装置、３は印字装置、１１は中間コード生成部、１２は中間コードメモリ、１３は中間コード画像データ展開部、１４はバンドバッファ、１５は出力制御部である。画像処理装置２は、本発明の画像処理装置あるいは本発明の画像処理方法を実現する装置の一例であり、この例では描画命令を受け取ってバンド毎の中間コード画像データを生成した後、バンド単位のビットマップイメージを作成し、出力する場合を示している。ここでは、描画命令は例えばパーソナルコンピュータなどの上位処理装置１から受け取り、作成したビットマップイメージを印字装置３に出力するものとして図示している。なお、上位処理装置１と画像処理装置２は、ケーブル接続されたり、あるいはＬＡＮなどのネットワークによって通信可能に接続されていてよい。また、画像処理装置２と印字装置３とは、配線などによって直結されている場合が多いが、これに限られるものではない。
【００１６】
画像処理装置２は、中間コード生成部１１、中間コードメモリ１２、中間コード画像データ展開部１３、バンドバッファ１４、出力制御部１５を含んで構成されている。中間コード生成部１１は、上位処理装置１から送られてくる描画命令を受け取り、その描画命令を解釈してバンド単位の中間コード画像データを生成する。
【００１７】
描画命令によりタイリングパターン機能が指示される場合、パターン及びそのパターンの大きさの情報とともに、パターンを配置する間隔を主走査方向及び副走査方向について独立に設定することができる。このような描画命令を受け取った中間コード生成部１１では、パターンまたはパターンを示すポインタなどとともに、パターンの大きさや配置する間隔などを含む中間コード画像データを生成する。この中間コード画像データには、さらにオフセットの情報を含めておく。このオフセットは、バンドバッファ１４に描画する際の当該バンドの描画領域の原点を含むような位置のパターンを基準位置パターンとし、その基準位置パターンの原点からの描画領域の原点の位置の情報を示すものである。詳細については後述する。
【００１８】
中間コードメモリ１２は、中間コード生成部１１で生成した中間コード画像データを記憶する。また、例えば中間コード生成部１１で上位処理装置１から受け取った描画命令を記憶するなど、中間コード生成部１１における処理において利用することも可能である。
【００１９】
中間コード画像データ展開部１３は、本発明の描画手段の機能を含み、中間コードメモリ１２からバンド単位に中間コード画像データを読み出してレンダリングし、ビットマップイメージを作成してバンドバッファ１４に書き込む。このとき、中間コード画像データがタイリングパターン機能を指示するものである場合には、指定されたイメージを指定された間隔で繰り返し描画し、パターンを配置してゆく。指定された間隔がイメージの大きさより大きい場合には、隣接するパターン間に、パターンが存在しない隙間の領域が存在することになる。このパターンが存在しない領域については、例えば値を不定としておいたり、予め描画命令などで指示された値を書き込んだり、またはタイリングパターン機能の指示とともにパターンが存在しない領域の値を受け取り、これらの値とすることができる。
【００２０】
さらに中間コード画像データ展開部１３は、描画命令（中間コード画像データ）により論理演算（ＲＯＰ）処理が指示された場合、指示されたＲＯＰ処理を実行する。このとき、上述のようなタイリングパターン機能を利用したＲＯＰ処理も可能である。上述のようにパターンが存在しない領域について値を設定することによって、様々なＲＯＰ処理を行わせることが可能である。
【００２１】
バンドバッファ１４は本発明における画像記憶手段に対応するものであり、中間コード画像データ展開部１３で展開したバンド単位のビットマップイメージを保持する。なお、バンドバッファ１４は例えばカラーのビットマップイメージを記憶する際には、色成分毎に別々のプレーンとして記憶する面順次データとして記憶したり、あるいは画素毎にすべての色成分のデータを保持する点順次データとして記憶することができる。また、バンドバッファ１４として、１バンド分の記憶領域を有するほか、複数バンド分の記憶領域を有し、中間コード画像データ展開部１３によるビットマップイメージの書き込みと、出力制御部１５による読み出しを並行して行えるように構成することもできる。ビットマップイメージとともに、対応する属性情報についても保持するように構成しても良い。
【００２２】
出力制御部１５は、バンドバッファ１４に展開されたビットマップイメージを読み出し、印字装置３などに転送して画像を形成させる。
【００２３】
図２は、本発明の実施の一形態における、より具体的な機能ブロック図である。図中、２１は入力制御部、２２は描画命令解釈部、２３は中間コード画像データ生成部、３１は中間コード画像データ解釈部、３２は圧縮／伸長処理部、３３は縮小／拡大処理部、３４は色変換部、３５は点面変換部、３６は多値化変換部である。実線の矢印はデータの流れを示し、破線の矢印は制御の流れを示している。
【００２４】
この例では、中間コード生成部１１は、入力制御部２１、描画命令解釈部２２、中間コード画像データ生成部２３を含んで構成されている。また中間コード画像データ展開部１３は、中間コード画像データ解釈部３１、圧縮／伸長処理部３２、縮小／拡大処理部３３、色変換部３４、点面変換部３５、多値化変換部３６を含んで構成されている。
【００２５】
入力制御部２１は、上位処理装置１などから送られてくる描画命令を受信し、中間コードメモリ１２に記憶させる。そして描画命令解釈部２２を起動する。描画命令解釈部２２は、中間コードメモリ１２に記憶されている描画命令を順に読み出し、解釈する。そして、この描画命令の解釈処理によって得られた情報（属性情報、色情報、エッジ情報、イメージなど）を中間コード画像データ生成部２３に引き渡す。中間コード画像データ生成部２３は、上述の中間コード生成部１１における中間コード画像データの生成に関する各種の機能を実行し、描画命令解釈部２２から渡された情報から、バンド単位で中間コード画像データを生成し、中間コードメモリ１２に格納する。
【００２６】
図３は、従来の中間コード画像データの一例の説明図、図４は、本発明において用いる中間コード画像データの一例の説明図、図５は、同じく中間コード画像データ中の各種位置情報の説明図である。ここではタイリングパターン機能を利用する中間コード画像データについて示している。従来のタイリングパターン機能では、パターンを敷き詰めることしか想定していない。そのため、中間コード画像データとして保持する情報としては、図３に示すように、コマンドＩＤや敷き詰める元となるパターンと、そのパターンの幅及び高さ、パターンを拡大する際の拡大情報などとともに、位置情報として、パターンの原点画素のＸ、Ｙ座標を保持する程度である。
【００２７】
本発明では、図４に示すようにコマンドＩＤや敷き詰めるパターンの幅及び高さ、パターンを拡大する際の拡大情報とともに、位置情報として、Ｘ方向及びＹ方向のオフセット及びステップの情報を保持している。パターンの幅及び高さと、オフセット、ステップについては図５に示している。図５ではバンドバッファ１４の描画領域全体にパターンを敷き詰めるものとして説明している。バンドバッファ１４の描画領域の原点を含む位置に描画されるパターンをキーパターン（基準位置パターン）として、そのキーパターンを基準に示している。それぞれのオフセット及びステップは、
・オフセットＸ：キーパターンの原点座標Ｘからのバンドバッファ１４の描画領域の原点までのｘ方向の距離
・オフセットＹ：キーパターンの原点座標Ｙからのバンドバッファ１４の描画領域の原点までのｙ方向の距離
・ステップＸ：キーパターンの原点画素のＸ座標とｘ方向の次のパターンの原点画素のＸ座標との距離
・ステップＹ：キーパターンの原点画素のＹ座標とｙ方向の次のパターンの原点画素のＹ座標との距離
である。
【００２８】
このステップＸおよびステップＹの情報として、パターン幅やパターン高さよりも大きい値を保持する場合、隣り合うパターン間にパターンが存在しない領域が生じることになる。本発明では、このようなパターンが存在しない領域をあえて設けることを可能とし、この領域に対してＲＯＰ処理などの各種の処理が可能なように構成している。
【００２９】
またオフセットＸとオフセットＹの情報として、上述のようにそれぞれキーパターンの原点とバンドバッファ１４の描画領域の原点とのそれぞれの距離を設定することとした。これによって、特許文献２と同様にパターンをアクセスする際の座標を非負として中間コード画像データ展開部１３の処理を軽減し、また専用の回路で構成した場合の座標変換処理を行う回路構成を簡易化することができる。
【００３０】
図４に示した中間コード画像データの例では、繰り返して描画するパターンについては、中間コード画像データ中にはパターンへのポインタを保持するように構成している。これによって、パターンを別に保持することが可能となる。例えば中間コード画像データ解釈部３１がアクセス可能なレジスタに保持することによって、高速なパターンへのアクセスを実現することができる。
【００３１】
図６は、本発明において用いる中間コード画像データの別の例の説明図である。図６に示す例では、隣り合うパターンの間のパターンが存在しない領域に対して一律の値を指定できるように、制御情報と色指定の情報を格納可能に拡張したものである。制御情報は、隣り合うパターンの間のパターンが存在しない領域を無効とするか有効にするかを判別するための情報である。色指定は、制御情報の設定内容として、隣り合うパターンの間のパターンが存在しない領域を有効の場合に、隣り合うパターンの間のパターンが存在しない領域の色情報を指定するものである。例えば制御情報が、パターンが存在しない領域を有効としている場合、そのパターンが存在しない領域については色情報で指定された色によって塗りつぶされたビットマップイメージが得られることになる。このような中間コード画像データを用いることによって、タイリングパターン機能によりパターンを繰り返して描画する毎に、パターンが存在しない領域の有効／無効、及びパターンが存在しない領域を有効とした場合の色情報を設定することが可能となる。
【００３２】
このほかにも、例えばパターンの反復回数などが指定可能であるなど、中間コード画像データとして様々な変形が可能である。
【００３３】
図２に戻り、中間コード画像データ展開部１３の中間コード画像データ解釈部３１は、上述の中間コード画像データ展開部１３の機能として説明した多くの機能を実行するものであり、中間コードメモリ１２から中間コードを順に取り出して解釈し、バンド単位でバンドバッファ１４に描画処理し、ビットマップイメージに展開する。このとき、図４に示したようなタイリングパターン機能を利用する中間コード画像データについては、描画領域の画素（Ｘ，Ｙ）について、
Ｘ’＝（Ｘ  ＋  オフセットＸ）  ％  ステップＸ  （式１−１）
Ｙ’＝（Ｙ  ＋  オフセットＹ）  ％  ステップＹ  （式１−２）
を計算し、パターンの中から対応するパターン画素（Ｘ’，Ｙ’）を決定する。そして、必要に応じて演算などを行った後、バンドバッファ１４に描画する。なお、演算子‘％’は剰余を得るものである。
【００３４】
ここで、得られたパターン画素の座標（Ｘ’，Ｙ’）がそれぞれ、
パターン幅  ≦Ｘ’＜ステップＸ    （式２−１）
パターン高さ≦Ｙ’＜ステップＹ    （式２−２）
の場合には、隣り合うパターンの間のパターンが存在しない領域を示している。この場合には、パターンの値を不定とし、バンドバッファ１４への書き込みをキャンセルしたり、あるいは予め設定されている値を書き込むなど、種々の対応が可能である。また、中間コード画像データのデータ形式が図６に示すものである場合には、制御情報及び色情報に従って、隣り合うパターンの間のパターンが存在しない領域の値を決定すればよい。
【００３５】
圧縮／伸長処理部３２は、圧縮されたイメージや上述のようなパターンが圧縮されている場合、これを伸長する。縮小／拡大処理部３３は、イメージや上述のようなパターンについて、中間コードメモリ１２に格納されている中間コード画像データ中の拡大率に従って、イメージやパターンを縮小あるいは拡大処理する。色変換部３４は、バンドバッファ１４中のビットマップイメージに対して、それぞれの描画オブジェクトに応じた色空間変換処理や色補正処理などを行う。点面変換部３５は、バンドバッファ１４にビットマップイメージを記憶する際に、画素毎にすべての色成分のデータを保持する点順次データとして記憶しているとき、印字装置３が色成分毎に別々のプレーンとして記憶する面順次データを要求する場合には、点順次データから面順次データへ変換する。もちろん、面順次データとして記憶されているビットマップイメージを、点順次データへ変換する機能を有していても良い。多値化変換部３６は、例えば２値のイメージやパターンを他の多値（カラー）イメージやパターンと同様に扱うために、２値を多値の最小値及び最大値に対応させ、２値のイメージやパターンを多値のイメージやパターンに変換する。
【００３６】
なお、中間コード画像データ展開部１３の全部又は一部の構成、あるいはさらにバンドバッファ１４などは、専用の回路で構成することが可能である。これによって高速に処理を行うことが可能である。このとき、専用の回路内にタイリングパターン機能により繰り返して描画するパターンを保持するレジスタを設け、このレジスタにパターンを保持するように構成することができる。
【００３７】
次に、本発明の実施の一形態における動作の一例について説明する。上述のようなパターンを用いてタイリングパターン機能により描画処理を行う中間コード画像データとしては、そのパターンを描画する場合の他、ＲＯＰ３演算描画命令において利用する場合がある。図７は、ＲＯＰ３演算の一例の説明図である。ＲＯＰ３演算は、２つの描画データ（ブラシとソース）のビットマップイメージと下地データ（デスティネーション）のビットマップイメージの３つの入力に対して演算を施した結果をデスティネーションとして格納するものである。図７に示すように、ブラシのビットマップイメージの各ビット毎に、０あるいは１の値に従い、２種類のＲＯＰ２演算（図中のＲＯＰ２（１）とＲＯＰ２（２））の切り替えを行う。ＲＯＰ２はソースとデスティネーションとの間の論理演算を行うものであり、ＲＯＰ３演算が指示されることによって２種類のＲＯＰ２演算が決定される。通常、デスティネーションはバンドバッファ１４に既に書き込まれているビットマップイメージであり、演算結果はデスティネーションとしてバンドバッファ１４に書き戻される。このようなＲＯＰ３演算において、ブラシのビットマップイメージを描画する際に、タイリングパターン機能が利用されている。
【００３８】
図８は、ＲＯＰ３演算を含む描画処理の実行シーケンスの具体例の説明図である。図中、Ｓはソース、Ｂはブラシ、Ｄはデスティネーションを示しており、デスティネーションについてはバンドバッファ１４に保持されている画像を示している。
【００３９】
図８に示す例では、まず▲１▼において、パターンを必要としない中間コード画像データ（描画用中間コード画像データ）を実行し、描画オブジェクトの描画処理を行っている。この描画用中間コード画像データによって、バンドバッファ１４にビットマップイメージが描画される。
【００４０】
続いて▲２▼において、タイリングパターン機能を用いたブラシとなるビットマップイメージを生成するための中間コード画像データが処理されるが、ここでは実際にバンドバッファ１４に描画されることはなく、パターンや中間コード画像データ中のパターンに関する各値が保持される。また、図４にも示したように、タイリングパターン機能を使用する際のパターンは中間コード画像データからポインタにより参照されるように構成している。従って中間コード画像データを読み出しただけではパターン自体は中間コードメモリ１２に保存されていることになる。例えば中間コード画像データ展開部１３（中間コード画像データ解釈部３１）を専用の回路で構成する場合には、パターンを伴う中間コード画像データを解釈した時点でパターンを専用の回路内のレジスタにＤＭＡなどにより転送しておくと良い。これによって、以降の処理においてパターンに対してアクセスする場合には処理を高速化することができる。
【００４１】
次の▲３▼において、ＲＯＰ３演算描画命令を伴う中間コード画像データを実行する。このＲＯＰ３演算描画命令を伴う中間コード画像データは、基本的には描画オブジェクトを描画するものであり、描画されるビットマップイメージがソースとなる。そして、▲２▼のパターン（及びタイリングパターン機能により繰り返されるパターン）をブラシとし、この時点までにバンドバッファ１４に書き込まれているビットマップイメージをデスティネーションとして、指示されたＲＯＰ３演算が実行される。
【００４２】
このＲＯＰ３演算は画素毎に実行されるが、ソースは▲３▼の中間コード画像データにより描画するビットマップイメージであるし、デスティネーションは既にバンドバッファ１４に描画されているビットマップイメージであるからバンドバッファ１４から読み出せばよい。ブラシとなるパターンは、広い領域に対してもレジスタに格納されている１つのパターンのみである。従って、描画対象の画素の座標（Ｘ，Ｙ）から、上述の式（１−１）及び式（１−２）によりパターン中の座標（Ｘ’，Ｙ’）を算出し、Ｘ’、Ｙ’がパターン幅及びパターン高さ未満であれば、レジスタ内のパターンをアクセスして値を取得し、ブラシとする。そして、ソース、デスティネーションとともにＲＯＰ３演算を行って、デスティネーションであるバンドバッファ１４に書き込めばよい。
【００４３】
パターン中の座標（Ｘ’，Ｙ’）が式（２−１）、式（２−２）を満たす場合には、パターンが存在しない。この場合にはパターンの値を不定とし、エラーを通知するなり、指定された画素に対する演算およびバンドバッファへの書き込みをキャンセルすることにより対処することができる。あるいは、パターンの全てのビットの値を０または１に固定し、ＲＯＰ３演算を実行するように構成することもできる。さらに、このようなＲＯＰ３演算を指示する中間コード画像データよりも前に、このような隣接するパターンの間のパターンが存在しない領域での値を予め設定できるように構成しておき、ＲＯＰ３演算時にはパターンが存在しない領域については予め設定されている値を用いて演算することもできる。中間コード画像データが図６に示すようなデータ形式である場合には、制御情報及び色情報に従ってパターンが存在しない領域の値を決定し、ＲＯＰ３演算を行うことができる。このようにして、タイリングパターン機能を利用してパターンをブラシとしたＲＯＰ３演算を行うことができる。
【００４４】
次の▲４▼においては、▲１▼と同様、パターンを必要としない中間コード画像データ（描画用中間コード画像データ）を実行し、描画オブジェクトの描画処理を行っている。この描画用中間コード画像データによって、ＲＯＰ３演算の演算結果のビットマップイメージ上に新たな描画オブジェクトが描画される。
【００４５】
▲５▼においては、再びパターンを用いたＲＯＰ３演算描画命令の中間コード画像データが実行される。▲３▼と同様に、この中間コード画像データにより描画されるビットマップイメージがソースとなる。そして、この時点までにバンドバッファ１４に書き込まれているビットマップイメージがデスティネーションとなる。ブラシは、ここまでのステップで最後に設定されたパターン、すなわち▲２▼のパターン（及びタイリングパターン機能により繰り返されるパターン）がブラシとして使用される。これらのソース、ブラシ、デスティネーションによって、指示されたＲＯＰ３演算が実行される。演算結果はバンドバッファ１４に書き戻される。
【００４６】
次の▲６▼及び▲７▼では、ＲＯＰ３演算ではなく、パターンをタイリングパターン機能により描画する場合を示している。まず▲６▼において、新たにパターン生成用の中間コード画像データが実行されると、それまで保持されていたパターン情報は全て更新され、▲６▼のパターンがレジスタに転送されるとともに、パターンに関する各値が保持される。▲７▼のパターン描画用の中間コード画像データは、既に保存されているパターンを利用した描画を行う命令であり、クリップ用のイメージを描画するものである。従って、▲６▼のパターンが繰り返して描画されるとともに、▲７▼で描画される領域によってクリップされることになる。その結果がバンドバッファに書き込まれる。
【００４７】
このようにして、タイリングパターン機能を利用し、パターンを繰り返して描画することができる。なお、▲８▼は通常の描画処理であり、中間コード画像データに従って描画オブジェクトの描画処理が行われる。
【００４８】
図９は、描画結果の一例の説明図である。図９においては、ハッチングを異ならせて色の違いを示している。図９（Ａ）に示すように大きな矩形が描画されているビットマップイメージをデスティネーションとし、図９（Ｂ）に示すような小さな矩形をパターンとしてＲＯＰ３演算を行う。これによって、例えば図９（Ｃ）に示すような画像が得られる。図９（Ｃ）においてハッチングを変更しているように、大きな矩形及び小さな矩形ともＲＯＰ３演算によって色が変更されている。従来では、パターンを用いたタイリングパターン機能では、パターンの存在しない部分では透過させた上書きしかできなかったが、本発明では上述のようにしてＲＯＰ演算などを行うことができる。
【００４９】
以上、本発明の実施の一形態について説明したが、本発明はこの実施の形態に限られるものではなく、種々の変形が可能である。例えば上述の説明ではパターンに対する拡大縮小については触れていないが、図４や図６に示した中間コード画像データの拡大情報としてＸ方向拡大率とＹ方向拡大率を設定することによって、パターンをＸ方向、Ｙ方向に拡大あるいは縮小したパターンを用いてタイリングパターン機能により繰り返して描画を行うことができる。この場合には、パターン中の座標を算出する際に、式（１−１）、式（１−２）を用いる代わりに、
Ｘ’＝（（Ｘ＋オフセットＸ）／Ｘ方向拡大率）％ステップＸ
Ｙ’＝（（Ｙ＋オフセットＹ）／Ｙ方向拡大率）％ステップＹ
なる式を用い、この式により求めた座標（Ｘ’，Ｙ’）によりパターンをアクセスすればよい。
【００５０】
また上述の説明では、バンド毎に中間コード画像データを生成してからレンダリング処理を行っているが、例えばページ単位にレンダリングしたり、中間コード画像データを生成せずに描画命令から直接、レンダリング処理を行うように構成しても良い。
【００５１】
【発明の効果】
以上の説明から明らかなように、本発明によれば、タイリングパターン機能においてパターンを繰り返して描画する際に、隣り合うパターンの間にパターンが存在しない領域を設けることができ、その領域の値を所定値や予め設定しておいた値、あるいはその都度指定する値とすることができる。これによって、従来は透過による上書きしかできなかったパターンの間の部分において、種々の描画処理を指定し、実行することが可能となるという効果がある。
【００５２】
また、描画領域の原点をその領域の内部に含むパターンに対する位置情報を持つことにより、パターンを繰り返して描画する際にパターンをアクセスする際の座標を非負の値とすることができるので、専用の回路で実現する場合でも回路構成を簡易化することができる。また、バンド単位でレンダリングする構成においては、それぞれのバンドに対してバンドバッファの原点とパターンとの位相を正しく調整することが可能となる。これによりバンドに跨るパターンの位相が保証された高品質の画像を形成することが可能になるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施の一形態を示す機能ブロック図である。
【図２】本発明の実施の一形態における、より具体的な機能ブロック図である。
【図３】従来の中間コード画像データの一例の説明図である。
【図４】本発明において用いる中間コード画像データの一例の説明図である。
【図５】本発明において用いる中間コード画像データ中の各種位置情報の説明図である。
【図６】本発明において用いる中間コード画像データの別の例の説明図である。
【図７】ＲＯＰ３演算の一例の説明図である。
【図８】ＲＯＰ３演算を含む描画処理の実行シーケンスの具体例の説明図である。
【図９】描画結果の一例の説明図である。
【図１０】パターン間隔を指示可能な従来のタイリングパターン機能の一例の説明図である。
【符号の説明】
１…上位処理装置、２…画像処理装置、３…印字装置、１１…中間コード生成部、１２…中間コードメモリ、１３…中間コード画像データ展開部、１４…バンドバッファ、１５…出力制御部、２１…入力制御部、２２…描画命令解釈部、２３…中間コード画像データ生成部、３１…中間コード画像データ解釈部、３２…圧縮／伸長処理部、３３…縮小／拡大処理部、３４…色変換部、３５…点面変換部、３６…多値化変換部。
【図１】
2004326528.tif 000003
【図２】
2004326528.tif 000004
【図３】
2004326528.tif 000005
【図４】
2004326528.tif 000006
【図５】
2004326528.tif 000007
【図６】
2004326528.tif 000008
【図７】
2004326528.tif 000009
【図８】
2004326528.tif 000010
【図９】
2004326528.tif 000011
【図１０】
2004326528.tif 000012