JP2004326528A - Image processor and image processing method - Google Patents

Image processor and image processing method Download PDF

Info

Publication number
JP2004326528A
JP2004326528A JP2003121653A JP2003121653A JP2004326528A JP 2004326528 A JP2004326528 A JP 2004326528A JP 2003121653 A JP2003121653 A JP 2003121653A JP 2003121653 A JP2003121653 A JP 2003121653A JP 2004326528 A JP2004326528 A JP 2004326528A
Authority
JP
Japan
Prior art keywords
pattern
intermediate code
image processing
image data
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003121653A
Other languages
Japanese (ja)
Other versions
JP4257503B2 (en
Inventor
Hiroshi Okubo
宏 大久保
Hiroyuki Oyabu
裕之 大藪
Kenji Takeuchi
健二 竹内
Terutake Hayashi
輝威 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2003121653A priority Critical patent/JP4257503B2/en
Publication of JP2004326528A publication Critical patent/JP2004326528A/en
Application granted granted Critical
Publication of JP4257503B2 publication Critical patent/JP4257503B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an image processor for performing processing such as various logical arithmetic operations by setting an area where any pattern is not present between adjacent patterns in a tiling pattern function. <P>SOLUTION: When a tiling pattern function is used as intermediate code image data generated by an intermediate code generating part 11, not only the size of a pattern but also offset showing a distance between adjacent patterns are set. This offset is set so as to be larger than the size of the pattern so that an area where any pattern is not present can be set between the adjacent patterns. In this area, an irregular value, an already decided value, a preliminarily set value or a value to be decided in the point of time of plotting are set. Thus, an intermediate code image data developing part 13 can perform various processing such as ROP 3 arithmetic operations even in the area where any pattern is not present. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、入力される描画命令あるいは前記描画命令から生成された中間コード画像データに基づいてレンダリング処理を行いビットマップイメージを作成して印字装置等に出力を行う画像処理技術に関するものであり、特に、同じパターンを繰り返して描画するタイリングパターン機能を実現するための技術に関するものである。
【0002】
【従来の技術】
パーソナルコンピュータなどの上位処理装置から印字命令を受けた画像処理装置は、実際の印字情報である描画命令を受信して順に解釈し、ビットマップイメージを作成して出力する。この処理過程において、画像処理装置がページバッファを保持している場合には、解釈したビットマップイメージをそのままページバッファに書き込み(レンダリング処理)、ページ単位で出力する。また、ページバッファは多大な記憶容量を必要とするため、ページバッファではなく、1ページを複数に分割したバンド単位のバッファ(バンドバッファ)を保持している場合も多い。このような場合には、一度バンド単位の中間コード画像データに変換し、全ての描画命令の解釈および中間コード画像データの生成終了後、バンド単位で中間コード画像データを解釈し、ビットマップイメージをバンドバッファに書き込むレンダリング処理を行う。
【0003】
通常のレンダリング処理においては、それぞれの描画命令(あるいは描画命令から返還された中間コード画像データ)が持つ情報のみを参照して描画されるが、パターン描画やWindows(登録商標)のGDIがサポートするROP(Raster OPeration)3の描画では、パターンの情報を必要とする。ここで、パターンは描画命令とともに受け取った単一のパターンを使用する他、受け取ったパターンを繰り返して用いるタイリングパターン機能が提供されている。このタイリングパターン機能は、M×N画素のサイズのビットマップのパターンを繰り返し用いて仮想的に敷き詰める機能であり、この機能により、M×N画素の1つのパターン(=キーパターン)で広い領域にパターンを描画するものである。
【0004】
しかし、もともとパターン描画やROP3の描画はページを想定した描画であるため、中間コード画像データを使用してバンドバッファへ描画する場合においては、各バンドにおいてバンドバッファの原点とパターンとの位相を考慮する必要がある。バンドバッファの原点とパターンとの位相を考慮した一例として、特許文献1に記載されている方法がある。この特許文献1に記載されている方法は、オリジナルパターンビットマップをバンドバッファの原点まで後方伝搬させて基準パターンビットマップ(=キーパターン)を求め、基準パターンビットマップを基準にして指定された領域のパターンを決定するものである。
【0005】
しかし、この特許文献1に記載されている方法では、バンドバッファの原点を基準(=描画座標系)にしているため、キーパターンの左上の座標(=原点画素)とバンドバッファの原点が一致する場合を除き、キーパターンの原点座標は負になり、回路化を行なう場合に回路構成が複雑になるという欠点がある。
【0006】
それに対し、特許文献2に記載されている画像描画装置では、描画座標系をパターン座標系に変換してパターン座標系の座標で描画している。この方式によりキーパターンの座標は必ず非負の値となり、回路化が容易になる。
【0007】
上述のような従来のタイリングパターン機能は、基本的に上述のようにキーパターンを敷き詰める機能であるため、間隔を置いて描画し、隣り合うパターン間にキーパターンが存在しない領域を作ることができない。上述の2つの方法においても、隣り合うパターンは全て隙間なく敷き詰められることを前提としている。
【0008】
図10は、パターン間隔を指示可能な従来のタイリングパターン機能の一例の説明図である。例えばアドビ社のPostScript(登録商標)では、水平パターンセル間隔及び垂直パターンセル間隔を指定することができる。この場合、例えば図10(A)に示すキーパターンが与えられたとき、図10(B)に示すような水平パターンセル間隔及び垂直パターンセル間隔で指定された大きさのタイリング用パターンを生成し、このタイリング用パターンを敷き詰めるように描画している。このとき、キーパターンのサイズよりも大きな水平パターンセル間隔及び垂直パターンセル間隔が指定された場合には、透過するデータを追加してタイリング用パターンを生成し、上書き描画を行っている。
【0009】
しかし、このような従来のタイリングパターン機能では、隣接するキーパターン間については固定された透過の指示が行われるのみであり、例えば論理演算など、各種の処理を指示することができないという問題があった。
【0010】
【特許文献1】
特開平11−30979号公報
【特許文献2】
特開2002−32768号公報
【0011】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、タイリングパターン機能において、隣り合うパターン間にパターンが存在しない領域を設けることができ、種々の論理演算などの処理を可能とした画像処理装置を提供することを目的とするものである。
【0012】
【課題を解決するための手段】
本発明は、入力される描画命令あるいは描画命令から生成された中間コード画像データに基づいてレンダリング処理を行いビットマップイメージを作成する画像処理装置及び画像処理方法であって、同じパターンを繰り返して描画するタイリングパターン機能を有しており、描画命令によりパターンのサイズよりも大きな間隔でのタイリングパターン機能の使用を指示されたとき、隣り合うパターンの間にパターンが存在しない領域を設けるように描画することを特徴とするものである。このパターンが存在しない領域は、例えば演算が実行されるときには値を不定として演算を行ったり、指定された値として演算を行うことができる。これによって、従来は透過による上書きしかできなかったパターンの間の部分において、種々の描画処理を指定し、実行することが可能となる。
【0013】
なお、パターンの間隔は、主走査線方向と副走査線方向について独立に設定可能に構成することができる。また、描画手段の全部又は一部の機能は専用の回路で構成することができる。この場合、タイリングパターン機能で使用するパターンは、専用の回路内のレジスタに保持するように構成し、高速化を図ることができる。
【0014】
さらに、タイリングパターン機能により描画を行う際には、上述の特許文献2と同様に、画像記憶手段の原点をその領域の内部に含む基準位置パターンに対する位置情報を保持し、該位置情報に従って描画を行うように構成することができる。これによって、画像記憶手段における原点とパターンとの位相を正しく調整することが可能となる。例えばバンド単位でレンダリングする際にも、バンドに跨るパターンの位相を正確に合わせることができる。また、容易に回路化することが可能となる。
【0015】
【発明の実施の形態】
図1は、本発明の実施の一形態を示す機能ブロック図である。図中、1は上位処理装置、2は画像処理装置、3は印字装置、11は中間コード生成部、12は中間コードメモリ、13は中間コード画像データ展開部、14はバンドバッファ、15は出力制御部である。画像処理装置2は、本発明の画像処理装置あるいは本発明の画像処理方法を実現する装置の一例であり、この例では描画命令を受け取ってバンド毎の中間コード画像データを生成した後、バンド単位のビットマップイメージを作成し、出力する場合を示している。ここでは、描画命令は例えばパーソナルコンピュータなどの上位処理装置1から受け取り、作成したビットマップイメージを印字装置3に出力するものとして図示している。なお、上位処理装置1と画像処理装置2は、ケーブル接続されたり、あるいはLANなどのネットワークによって通信可能に接続されていてよい。また、画像処理装置2と印字装置3とは、配線などによって直結されている場合が多いが、これに限られるものではない。
【0016】
画像処理装置2は、中間コード生成部11、中間コードメモリ12、中間コード画像データ展開部13、バンドバッファ14、出力制御部15を含んで構成されている。中間コード生成部11は、上位処理装置1から送られてくる描画命令を受け取り、その描画命令を解釈してバンド単位の中間コード画像データを生成する。
【0017】
描画命令によりタイリングパターン機能が指示される場合、パターン及びそのパターンの大きさの情報とともに、パターンを配置する間隔を主走査方向及び副走査方向について独立に設定することができる。このような描画命令を受け取った中間コード生成部11では、パターンまたはパターンを示すポインタなどとともに、パターンの大きさや配置する間隔などを含む中間コード画像データを生成する。この中間コード画像データには、さらにオフセットの情報を含めておく。このオフセットは、バンドバッファ14に描画する際の当該バンドの描画領域の原点を含むような位置のパターンを基準位置パターンとし、その基準位置パターンの原点からの描画領域の原点の位置の情報を示すものである。詳細については後述する。
【0018】
中間コードメモリ12は、中間コード生成部11で生成した中間コード画像データを記憶する。また、例えば中間コード生成部11で上位処理装置1から受け取った描画命令を記憶するなど、中間コード生成部11における処理において利用することも可能である。
【0019】
中間コード画像データ展開部13は、本発明の描画手段の機能を含み、中間コードメモリ12からバンド単位に中間コード画像データを読み出してレンダリングし、ビットマップイメージを作成してバンドバッファ14に書き込む。このとき、中間コード画像データがタイリングパターン機能を指示するものである場合には、指定されたイメージを指定された間隔で繰り返し描画し、パターンを配置してゆく。指定された間隔がイメージの大きさより大きい場合には、隣接するパターン間に、パターンが存在しない隙間の領域が存在することになる。このパターンが存在しない領域については、例えば値を不定としておいたり、予め描画命令などで指示された値を書き込んだり、またはタイリングパターン機能の指示とともにパターンが存在しない領域の値を受け取り、これらの値とすることができる。
【0020】
さらに中間コード画像データ展開部13は、描画命令(中間コード画像データ)により論理演算(ROP)処理が指示された場合、指示されたROP処理を実行する。このとき、上述のようなタイリングパターン機能を利用したROP処理も可能である。上述のようにパターンが存在しない領域について値を設定することによって、様々なROP処理を行わせることが可能である。
【0021】
バンドバッファ14は本発明における画像記憶手段に対応するものであり、中間コード画像データ展開部13で展開したバンド単位のビットマップイメージを保持する。なお、バンドバッファ14は例えばカラーのビットマップイメージを記憶する際には、色成分毎に別々のプレーンとして記憶する面順次データとして記憶したり、あるいは画素毎にすべての色成分のデータを保持する点順次データとして記憶することができる。また、バンドバッファ14として、1バンド分の記憶領域を有するほか、複数バンド分の記憶領域を有し、中間コード画像データ展開部13によるビットマップイメージの書き込みと、出力制御部15による読み出しを並行して行えるように構成することもできる。ビットマップイメージとともに、対応する属性情報についても保持するように構成しても良い。
【0022】
出力制御部15は、バンドバッファ14に展開されたビットマップイメージを読み出し、印字装置3などに転送して画像を形成させる。
【0023】
図2は、本発明の実施の一形態における、より具体的な機能ブロック図である。図中、21は入力制御部、22は描画命令解釈部、23は中間コード画像データ生成部、31は中間コード画像データ解釈部、32は圧縮/伸長処理部、33は縮小/拡大処理部、34は色変換部、35は点面変換部、36は多値化変換部である。実線の矢印はデータの流れを示し、破線の矢印は制御の流れを示している。
【0024】
この例では、中間コード生成部11は、入力制御部21、描画命令解釈部22、中間コード画像データ生成部23を含んで構成されている。また中間コード画像データ展開部13は、中間コード画像データ解釈部31、圧縮/伸長処理部32、縮小/拡大処理部33、色変換部34、点面変換部35、多値化変換部36を含んで構成されている。
【0025】
入力制御部21は、上位処理装置1などから送られてくる描画命令を受信し、中間コードメモリ12に記憶させる。そして描画命令解釈部22を起動する。描画命令解釈部22は、中間コードメモリ12に記憶されている描画命令を順に読み出し、解釈する。そして、この描画命令の解釈処理によって得られた情報(属性情報、色情報、エッジ情報、イメージなど)を中間コード画像データ生成部23に引き渡す。中間コード画像データ生成部23は、上述の中間コード生成部11における中間コード画像データの生成に関する各種の機能を実行し、描画命令解釈部22から渡された情報から、バンド単位で中間コード画像データを生成し、中間コードメモリ12に格納する。
【0026】
図3は、従来の中間コード画像データの一例の説明図、図4は、本発明において用いる中間コード画像データの一例の説明図、図5は、同じく中間コード画像データ中の各種位置情報の説明図である。ここではタイリングパターン機能を利用する中間コード画像データについて示している。従来のタイリングパターン機能では、パターンを敷き詰めることしか想定していない。そのため、中間コード画像データとして保持する情報としては、図3に示すように、コマンドIDや敷き詰める元となるパターンと、そのパターンの幅及び高さ、パターンを拡大する際の拡大情報などとともに、位置情報として、パターンの原点画素のX、Y座標を保持する程度である。
【0027】
本発明では、図4に示すようにコマンドIDや敷き詰めるパターンの幅及び高さ、パターンを拡大する際の拡大情報とともに、位置情報として、X方向及びY方向のオフセット及びステップの情報を保持している。パターンの幅及び高さと、オフセット、ステップについては図5に示している。図5ではバンドバッファ14の描画領域全体にパターンを敷き詰めるものとして説明している。バンドバッファ14の描画領域の原点を含む位置に描画されるパターンをキーパターン(基準位置パターン)として、そのキーパターンを基準に示している。それぞれのオフセット及びステップは、
・オフセットX:キーパターンの原点座標Xからのバンドバッファ14の描画領域の原点までのx方向の距離
・オフセットY:キーパターンの原点座標Yからのバンドバッファ14の描画領域の原点までのy方向の距離
・ステップX:キーパターンの原点画素のX座標とx方向の次のパターンの原点画素のX座標との距離
・ステップY:キーパターンの原点画素のY座標とy方向の次のパターンの原点画素のY座標との距離
である。
【0028】
このステップXおよびステップYの情報として、パターン幅やパターン高さよりも大きい値を保持する場合、隣り合うパターン間にパターンが存在しない領域が生じることになる。本発明では、このようなパターンが存在しない領域をあえて設けることを可能とし、この領域に対してROP処理などの各種の処理が可能なように構成している。
【0029】
またオフセットXとオフセットYの情報として、上述のようにそれぞれキーパターンの原点とバンドバッファ14の描画領域の原点とのそれぞれの距離を設定することとした。これによって、特許文献2と同様にパターンをアクセスする際の座標を非負として中間コード画像データ展開部13の処理を軽減し、また専用の回路で構成した場合の座標変換処理を行う回路構成を簡易化することができる。
【0030】
図4に示した中間コード画像データの例では、繰り返して描画するパターンについては、中間コード画像データ中にはパターンへのポインタを保持するように構成している。これによって、パターンを別に保持することが可能となる。例えば中間コード画像データ解釈部31がアクセス可能なレジスタに保持することによって、高速なパターンへのアクセスを実現することができる。
【0031】
図6は、本発明において用いる中間コード画像データの別の例の説明図である。図6に示す例では、隣り合うパターンの間のパターンが存在しない領域に対して一律の値を指定できるように、制御情報と色指定の情報を格納可能に拡張したものである。制御情報は、隣り合うパターンの間のパターンが存在しない領域を無効とするか有効にするかを判別するための情報である。色指定は、制御情報の設定内容として、隣り合うパターンの間のパターンが存在しない領域を有効の場合に、隣り合うパターンの間のパターンが存在しない領域の色情報を指定するものである。例えば制御情報が、パターンが存在しない領域を有効としている場合、そのパターンが存在しない領域については色情報で指定された色によって塗りつぶされたビットマップイメージが得られることになる。このような中間コード画像データを用いることによって、タイリングパターン機能によりパターンを繰り返して描画する毎に、パターンが存在しない領域の有効/無効、及びパターンが存在しない領域を有効とした場合の色情報を設定することが可能となる。
【0032】
このほかにも、例えばパターンの反復回数などが指定可能であるなど、中間コード画像データとして様々な変形が可能である。
【0033】
図2に戻り、中間コード画像データ展開部13の中間コード画像データ解釈部31は、上述の中間コード画像データ展開部13の機能として説明した多くの機能を実行するものであり、中間コードメモリ12から中間コードを順に取り出して解釈し、バンド単位でバンドバッファ14に描画処理し、ビットマップイメージに展開する。このとき、図4に示したようなタイリングパターン機能を利用する中間コード画像データについては、描画領域の画素(X,Y)について、
X’=(X + オフセットX) % ステップX (式1−1)
Y’=(Y + オフセットY) % ステップY (式1−2)
を計算し、パターンの中から対応するパターン画素(X’,Y’)を決定する。そして、必要に応じて演算などを行った後、バンドバッファ14に描画する。なお、演算子‘%’は剰余を得るものである。
【0034】
ここで、得られたパターン画素の座標(X’,Y’)がそれぞれ、
パターン幅 ≦X’<ステップX (式2−1)
パターン高さ≦Y’<ステップY (式2−2)
の場合には、隣り合うパターンの間のパターンが存在しない領域を示している。この場合には、パターンの値を不定とし、バンドバッファ14への書き込みをキャンセルしたり、あるいは予め設定されている値を書き込むなど、種々の対応が可能である。また、中間コード画像データのデータ形式が図6に示すものである場合には、制御情報及び色情報に従って、隣り合うパターンの間のパターンが存在しない領域の値を決定すればよい。
【0035】
圧縮/伸長処理部32は、圧縮されたイメージや上述のようなパターンが圧縮されている場合、これを伸長する。縮小/拡大処理部33は、イメージや上述のようなパターンについて、中間コードメモリ12に格納されている中間コード画像データ中の拡大率に従って、イメージやパターンを縮小あるいは拡大処理する。色変換部34は、バンドバッファ14中のビットマップイメージに対して、それぞれの描画オブジェクトに応じた色空間変換処理や色補正処理などを行う。点面変換部35は、バンドバッファ14にビットマップイメージを記憶する際に、画素毎にすべての色成分のデータを保持する点順次データとして記憶しているとき、印字装置3が色成分毎に別々のプレーンとして記憶する面順次データを要求する場合には、点順次データから面順次データへ変換する。もちろん、面順次データとして記憶されているビットマップイメージを、点順次データへ変換する機能を有していても良い。多値化変換部36は、例えば2値のイメージやパターンを他の多値(カラー)イメージやパターンと同様に扱うために、2値を多値の最小値及び最大値に対応させ、2値のイメージやパターンを多値のイメージやパターンに変換する。
【0036】
なお、中間コード画像データ展開部13の全部又は一部の構成、あるいはさらにバンドバッファ14などは、専用の回路で構成することが可能である。これによって高速に処理を行うことが可能である。このとき、専用の回路内にタイリングパターン機能により繰り返して描画するパターンを保持するレジスタを設け、このレジスタにパターンを保持するように構成することができる。
【0037】
次に、本発明の実施の一形態における動作の一例について説明する。上述のようなパターンを用いてタイリングパターン機能により描画処理を行う中間コード画像データとしては、そのパターンを描画する場合の他、ROP3演算描画命令において利用する場合がある。図7は、ROP3演算の一例の説明図である。ROP3演算は、2つの描画データ(ブラシとソース)のビットマップイメージと下地データ(デスティネーション)のビットマップイメージの3つの入力に対して演算を施した結果をデスティネーションとして格納するものである。図7に示すように、ブラシのビットマップイメージの各ビット毎に、0あるいは1の値に従い、2種類のROP2演算(図中のROP2(1)とROP2(2))の切り替えを行う。ROP2はソースとデスティネーションとの間の論理演算を行うものであり、ROP3演算が指示されることによって2種類のROP2演算が決定される。通常、デスティネーションはバンドバッファ14に既に書き込まれているビットマップイメージであり、演算結果はデスティネーションとしてバンドバッファ14に書き戻される。このようなROP3演算において、ブラシのビットマップイメージを描画する際に、タイリングパターン機能が利用されている。
【0038】
図8は、ROP3演算を含む描画処理の実行シーケンスの具体例の説明図である。図中、Sはソース、Bはブラシ、Dはデスティネーションを示しており、デスティネーションについてはバンドバッファ14に保持されている画像を示している。
【0039】
図8に示す例では、まず▲1▼において、パターンを必要としない中間コード画像データ(描画用中間コード画像データ)を実行し、描画オブジェクトの描画処理を行っている。この描画用中間コード画像データによって、バンドバッファ14にビットマップイメージが描画される。
【0040】
続いて▲2▼において、タイリングパターン機能を用いたブラシとなるビットマップイメージを生成するための中間コード画像データが処理されるが、ここでは実際にバンドバッファ14に描画されることはなく、パターンや中間コード画像データ中のパターンに関する各値が保持される。また、図4にも示したように、タイリングパターン機能を使用する際のパターンは中間コード画像データからポインタにより参照されるように構成している。従って中間コード画像データを読み出しただけではパターン自体は中間コードメモリ12に保存されていることになる。例えば中間コード画像データ展開部13(中間コード画像データ解釈部31)を専用の回路で構成する場合には、パターンを伴う中間コード画像データを解釈した時点でパターンを専用の回路内のレジスタにDMAなどにより転送しておくと良い。これによって、以降の処理においてパターンに対してアクセスする場合には処理を高速化することができる。
【0041】
次の▲3▼において、ROP3演算描画命令を伴う中間コード画像データを実行する。このROP3演算描画命令を伴う中間コード画像データは、基本的には描画オブジェクトを描画するものであり、描画されるビットマップイメージがソースとなる。そして、▲2▼のパターン(及びタイリングパターン機能により繰り返されるパターン)をブラシとし、この時点までにバンドバッファ14に書き込まれているビットマップイメージをデスティネーションとして、指示されたROP3演算が実行される。
【0042】
このROP3演算は画素毎に実行されるが、ソースは▲3▼の中間コード画像データにより描画するビットマップイメージであるし、デスティネーションは既にバンドバッファ14に描画されているビットマップイメージであるからバンドバッファ14から読み出せばよい。ブラシとなるパターンは、広い領域に対してもレジスタに格納されている1つのパターンのみである。従って、描画対象の画素の座標(X,Y)から、上述の式(1−1)及び式(1−2)によりパターン中の座標(X’,Y’)を算出し、X’、Y’がパターン幅及びパターン高さ未満であれば、レジスタ内のパターンをアクセスして値を取得し、ブラシとする。そして、ソース、デスティネーションとともにROP3演算を行って、デスティネーションであるバンドバッファ14に書き込めばよい。
【0043】
パターン中の座標(X’,Y’)が式(2−1)、式(2−2)を満たす場合には、パターンが存在しない。この場合にはパターンの値を不定とし、エラーを通知するなり、指定された画素に対する演算およびバンドバッファへの書き込みをキャンセルすることにより対処することができる。あるいは、パターンの全てのビットの値を0または1に固定し、ROP3演算を実行するように構成することもできる。さらに、このようなROP3演算を指示する中間コード画像データよりも前に、このような隣接するパターンの間のパターンが存在しない領域での値を予め設定できるように構成しておき、ROP3演算時にはパターンが存在しない領域については予め設定されている値を用いて演算することもできる。中間コード画像データが図6に示すようなデータ形式である場合には、制御情報及び色情報に従ってパターンが存在しない領域の値を決定し、ROP3演算を行うことができる。このようにして、タイリングパターン機能を利用してパターンをブラシとしたROP3演算を行うことができる。
【0044】
次の▲4▼においては、▲1▼と同様、パターンを必要としない中間コード画像データ(描画用中間コード画像データ)を実行し、描画オブジェクトの描画処理を行っている。この描画用中間コード画像データによって、ROP3演算の演算結果のビットマップイメージ上に新たな描画オブジェクトが描画される。
【0045】
▲5▼においては、再びパターンを用いたROP3演算描画命令の中間コード画像データが実行される。▲3▼と同様に、この中間コード画像データにより描画されるビットマップイメージがソースとなる。そして、この時点までにバンドバッファ14に書き込まれているビットマップイメージがデスティネーションとなる。ブラシは、ここまでのステップで最後に設定されたパターン、すなわち▲2▼のパターン(及びタイリングパターン機能により繰り返されるパターン)がブラシとして使用される。これらのソース、ブラシ、デスティネーションによって、指示されたROP3演算が実行される。演算結果はバンドバッファ14に書き戻される。
【0046】
次の▲6▼及び▲7▼では、ROP3演算ではなく、パターンをタイリングパターン機能により描画する場合を示している。まず▲6▼において、新たにパターン生成用の中間コード画像データが実行されると、それまで保持されていたパターン情報は全て更新され、▲6▼のパターンがレジスタに転送されるとともに、パターンに関する各値が保持される。▲7▼のパターン描画用の中間コード画像データは、既に保存されているパターンを利用した描画を行う命令であり、クリップ用のイメージを描画するものである。従って、▲6▼のパターンが繰り返して描画されるとともに、▲7▼で描画される領域によってクリップされることになる。その結果がバンドバッファに書き込まれる。
【0047】
このようにして、タイリングパターン機能を利用し、パターンを繰り返して描画することができる。なお、▲8▼は通常の描画処理であり、中間コード画像データに従って描画オブジェクトの描画処理が行われる。
【0048】
図9は、描画結果の一例の説明図である。図9においては、ハッチングを異ならせて色の違いを示している。図9(A)に示すように大きな矩形が描画されているビットマップイメージをデスティネーションとし、図9(B)に示すような小さな矩形をパターンとしてROP3演算を行う。これによって、例えば図9(C)に示すような画像が得られる。図9(C)においてハッチングを変更しているように、大きな矩形及び小さな矩形ともROP3演算によって色が変更されている。従来では、パターンを用いたタイリングパターン機能では、パターンの存在しない部分では透過させた上書きしかできなかったが、本発明では上述のようにしてROP演算などを行うことができる。
【0049】
以上、本発明の実施の一形態について説明したが、本発明はこの実施の形態に限られるものではなく、種々の変形が可能である。例えば上述の説明ではパターンに対する拡大縮小については触れていないが、図4や図6に示した中間コード画像データの拡大情報としてX方向拡大率とY方向拡大率を設定することによって、パターンをX方向、Y方向に拡大あるいは縮小したパターンを用いてタイリングパターン機能により繰り返して描画を行うことができる。この場合には、パターン中の座標を算出する際に、式(1−1)、式(1−2)を用いる代わりに、
X’=((X+オフセットX)/X方向拡大率)%ステップX
Y’=((Y+オフセットY)/Y方向拡大率)%ステップY
なる式を用い、この式により求めた座標(X’,Y’)によりパターンをアクセスすればよい。
【0050】
また上述の説明では、バンド毎に中間コード画像データを生成してからレンダリング処理を行っているが、例えばページ単位にレンダリングしたり、中間コード画像データを生成せずに描画命令から直接、レンダリング処理を行うように構成しても良い。
【0051】
【発明の効果】
以上の説明から明らかなように、本発明によれば、タイリングパターン機能においてパターンを繰り返して描画する際に、隣り合うパターンの間にパターンが存在しない領域を設けることができ、その領域の値を所定値や予め設定しておいた値、あるいはその都度指定する値とすることができる。これによって、従来は透過による上書きしかできなかったパターンの間の部分において、種々の描画処理を指定し、実行することが可能となるという効果がある。
【0052】
また、描画領域の原点をその領域の内部に含むパターンに対する位置情報を持つことにより、パターンを繰り返して描画する際にパターンをアクセスする際の座標を非負の値とすることができるので、専用の回路で実現する場合でも回路構成を簡易化することができる。また、バンド単位でレンダリングする構成においては、それぞれのバンドに対してバンドバッファの原点とパターンとの位相を正しく調整することが可能となる。これによりバンドに跨るパターンの位相が保証された高品質の画像を形成することが可能になるという効果がある。
【図面の簡単な説明】
【図1】本発明の実施の一形態を示す機能ブロック図である。
【図2】本発明の実施の一形態における、より具体的な機能ブロック図である。
【図3】従来の中間コード画像データの一例の説明図である。
【図4】本発明において用いる中間コード画像データの一例の説明図である。
【図5】本発明において用いる中間コード画像データ中の各種位置情報の説明図である。
【図6】本発明において用いる中間コード画像データの別の例の説明図である。
【図7】ROP3演算の一例の説明図である。
【図8】ROP3演算を含む描画処理の実行シーケンスの具体例の説明図である。
【図9】描画結果の一例の説明図である。
【図10】パターン間隔を指示可能な従来のタイリングパターン機能の一例の説明図である。
【符号の説明】
1…上位処理装置、2…画像処理装置、3…印字装置、11…中間コード生成部、12…中間コードメモリ、13…中間コード画像データ展開部、14…バンドバッファ、15…出力制御部、21…入力制御部、22…描画命令解釈部、23…中間コード画像データ生成部、31…中間コード画像データ解釈部、32…圧縮/伸長処理部、33…縮小/拡大処理部、34…色変換部、35…点面変換部、36…多値化変換部。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image processing technique for performing a rendering process based on an input drawing command or intermediate code image data generated from the drawing command to create a bitmap image and outputting the bitmap image to a printing device or the like, In particular, the present invention relates to a technique for realizing a tiling pattern function of repeatedly drawing the same pattern.
[0002]
[Prior art]
An image processing apparatus that receives a print command from a higher-level processing device such as a personal computer receives and sequentially interprets a drawing command, which is actual print information, and creates and outputs a bitmap image. In this process, if the image processing device holds a page buffer, the interpreted bitmap image is written as is to the page buffer (rendering process) and output in page units. Further, since the page buffer requires a large storage capacity, it often holds not a page buffer but a buffer (band buffer) in units of bands obtained by dividing one page into a plurality. In such a case, the intermediate code image data is converted into band-based intermediate code image data once, all the rendering commands are interpreted, and the intermediate code image data is generated. Performs rendering processing to write to the band buffer.
[0003]
In the normal rendering process, rendering is performed by referring only to information included in each rendering command (or the intermediate code image data returned from the rendering command), but pattern rendering and Windows (registered trademark) GDI are supported. Drawing of ROP (Raster Operation) 3 requires pattern information. Here, a single pattern received together with the drawing command is used as the pattern, and a tiling pattern function for repeatedly using the received pattern is provided. This tiling pattern function is a function of virtually laying down by repeatedly using a bitmap pattern having a size of M × N pixels. With this function, one pattern (= key pattern) of M × N pixels has a large area. This is for drawing a pattern.
[0004]
However, since pattern drawing and ROP3 drawing are originally intended for pages, when drawing to a band buffer using intermediate code image data, the phase between the origin of the band buffer and the pattern is considered in each band. There is a need to. As an example in consideration of the phase between the origin of the band buffer and the pattern, there is a method described in Patent Document 1. In the method described in Patent Document 1, an original pattern bitmap is propagated backward to the origin of a band buffer to obtain a reference pattern bitmap (= key pattern), and an area designated based on the reference pattern bitmap is determined. Is determined.
[0005]
However, in the method described in Patent Document 1, since the origin of the band buffer is used as a reference (= drawing coordinate system), the upper left coordinate (= origin pixel) of the key pattern matches the origin of the band buffer. Except in the case, the origin coordinate of the key pattern becomes negative, and there is a disadvantage that the circuit configuration becomes complicated when circuitization is performed.
[0006]
On the other hand, in the image drawing apparatus described in Patent Literature 2, the drawing coordinate system is converted into the pattern coordinate system and drawing is performed using the coordinates of the pattern coordinate system. By this method, the coordinates of the key pattern always have a non-negative value, which facilitates circuit implementation.
[0007]
Since the conventional tiling pattern function as described above is basically a function of laying down key patterns as described above, it is possible to draw at intervals and create an area where no key pattern exists between adjacent patterns. Can not. Also in the above two methods, it is assumed that all adjacent patterns are laid without gaps.
[0008]
FIG. 10 is an explanatory diagram of an example of a conventional tiling pattern function capable of designating a pattern interval. For example, in Adobe PostScript (registered trademark), a horizontal pattern cell interval and a vertical pattern cell interval can be specified. In this case, for example, when the key pattern shown in FIG. 10A is given, a tiling pattern having a size designated by the horizontal pattern cell interval and the vertical pattern cell interval shown in FIG. 10B is generated. Then, the tiling pattern is drawn so as to be spread. At this time, when a horizontal pattern cell interval and a vertical pattern cell interval that are larger than the size of the key pattern are designated, transparent data is added to generate a tiling pattern, and overwriting is performed.
[0009]
However, in such a conventional tiling pattern function, only a fixed transmission instruction is performed between adjacent key patterns, and there is a problem that various processes such as a logical operation cannot be specified. there were.
[0010]
[Patent Document 1]
JP-A-11-30979
[Patent Document 2]
JP 2002-32768 A
[0011]
[Problems to be solved by the invention]
The present invention has been made in view of the above circumstances, and in the tiling pattern function, an area where no pattern exists between adjacent patterns can be provided, and image processing that enables processing such as various logical operations can be performed. It is intended to provide a device.
[0012]
[Means for Solving the Problems]
The present invention relates to an image processing apparatus and an image processing method for performing a rendering process based on an input drawing command or intermediate code image data generated from the drawing command to create a bitmap image, and repeatedly drawing the same pattern. When the drawing command instructs to use the tiling pattern function at intervals larger than the size of the pattern, an area where no pattern exists between adjacent patterns is provided. It is characterized by drawing. In an area where this pattern does not exist, for example, when the calculation is performed, the calculation can be performed with the value being undefined, or the calculation can be performed as a designated value. As a result, it is possible to designate and execute various drawing processes in a portion between patterns that could only be overwritten by transmission in the past.
[0013]
Note that the pattern interval can be configured to be independently settable in the main scanning line direction and the sub-scanning line direction. Further, all or a part of the function of the drawing means can be constituted by a dedicated circuit. In this case, the pattern used in the tiling pattern function is configured to be held in a register in a dedicated circuit, and the speed can be increased.
[0014]
Further, when performing drawing by the tiling pattern function, similarly to the above-mentioned Patent Document 2, the position information with respect to the reference position pattern including the origin of the image storage means inside the area is held, and the drawing is performed according to the position information. Can be configured. This makes it possible to correctly adjust the phase between the origin and the pattern in the image storage means. For example, even when rendering is performed in band units, it is possible to accurately match the phase of the pattern straddling the band. Further, it is possible to easily form a circuit.
[0015]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a functional block diagram showing an embodiment of the present invention. In the figure, 1 is an upper processing device, 2 is an image processing device, 3 is a printing device, 11 is an intermediate code generation unit, 12 is an intermediate code memory, 13 is an intermediate code image data development unit, 14 is a band buffer, and 15 is an output. It is a control unit. The image processing apparatus 2 is an example of an image processing apparatus of the present invention or an apparatus for realizing the image processing method of the present invention. In this example, after receiving a drawing instruction and generating intermediate code image data for each band, 2 is generated and output. Here, the drawing command is illustrated as receiving the drawing command from the host processor 1 such as a personal computer and outputting the created bitmap image to the printing device 3. Note that the upper processing device 1 and the image processing device 2 may be connected by a cable or communicably connected by a network such as a LAN. In many cases, the image processing device 2 and the printing device 3 are directly connected by a wire or the like, but the present invention is not limited to this.
[0016]
The image processing device 2 includes an intermediate code generation unit 11, an intermediate code memory 12, an intermediate code image data development unit 13, a band buffer 14, and an output control unit 15. The intermediate code generation unit 11 receives a drawing command sent from the host processor 1, interprets the drawing command, and generates band-based intermediate code image data.
[0017]
When the tiling pattern function is instructed by the drawing command, the intervals at which the patterns are arranged can be set independently in the main scanning direction and the sub-scanning direction, together with information on the pattern and the size of the pattern. The intermediate code generation unit 11 that has received such a drawing command generates intermediate code image data including the size of the pattern, the interval at which the pattern is arranged, and the like, together with the pattern or the pointer indicating the pattern. The intermediate code image data further includes offset information. This offset indicates, as a reference position pattern, a pattern at a position that includes the origin of the drawing area of the band when drawing in the band buffer 14, and indicates information on the position of the origin of the drawing area from the origin of the reference position pattern. Things. Details will be described later.
[0018]
The intermediate code memory 12 stores the intermediate code image data generated by the intermediate code generator 11. Further, for example, the intermediate code generation unit 11 can store the drawing command received from the higher-level processing device 1 and use it in the processing in the intermediate code generation unit 11.
[0019]
The intermediate code image data development unit 13 includes the function of the drawing unit of the present invention, reads out and renders the intermediate code image data in band units from the intermediate code memory 12, creates a bitmap image, and writes it to the band buffer. At this time, if the intermediate code image data indicates the tiling pattern function, the designated image is repeatedly drawn at designated intervals, and the pattern is arranged. If the specified interval is larger than the size of the image, there will be a gap area where no pattern exists between adjacent patterns. For an area where this pattern does not exist, for example, the value is undefined, a value specified in advance by a drawing command or the like is written, or a value of an area where no pattern exists is received together with the tiling pattern function instruction, and It can be a value.
[0020]
Further, when a logical operation (ROP) process is instructed by a rendering command (intermediate code image data), the intermediate code image data developing unit 13 executes the instructed ROP process. At this time, ROP processing using the tiling pattern function as described above is also possible. As described above, by setting a value for an area where no pattern exists, various ROP processes can be performed.
[0021]
The band buffer 14 corresponds to the image storage means in the present invention, and holds a bitmap image in band units developed by the intermediate code image data developing unit 13. When storing a color bitmap image, for example, the band buffer 14 stores the data as plane-sequential data stored as a separate plane for each color component, or holds data of all color components for each pixel. It can be stored as dot sequential data. The band buffer 14 has a storage area for one band and a storage area for a plurality of bands. The writing of the bitmap image by the intermediate code image data developing unit 13 and the reading by the output control unit 15 are performed in parallel. It can also be configured so that it can be performed. It may be configured to hold the corresponding attribute information together with the bitmap image.
[0022]
The output control unit 15 reads the bitmap image developed in the band buffer 14 and transfers it to the printing device 3 or the like to form an image.
[0023]
FIG. 2 is a more specific functional block diagram according to the embodiment of the present invention. In the figure, 21 is an input control unit, 22 is a rendering command interpretation unit, 23 is an intermediate code image data generation unit, 31 is an intermediate code image data interpretation unit, 32 is a compression / decompression processing unit, 33 is a reduction / enlargement processing unit, 34 is a color conversion unit, 35 is a point plane conversion unit, and 36 is a multi-value conversion unit. The solid arrows indicate the flow of data, and the dashed arrows indicate the flow of control.
[0024]
In this example, the intermediate code generation unit 11 is configured to include an input control unit 21, a rendering command interpretation unit 22, and an intermediate code image data generation unit 23. The intermediate code image data expanding unit 13 includes an intermediate code image data interpreting unit 31, a compression / expansion processing unit 32, a reduction / enlargement processing unit 33, a color conversion unit 34, a point plane conversion unit 35, and a multi-value conversion unit 36. It is comprised including.
[0025]
The input control unit 21 receives the drawing command sent from the host processor 1 or the like, and stores the drawing command in the intermediate code memory 12. Then, the rendering command interpreting unit 22 is started. The drawing command interpreter 22 sequentially reads and interprets the drawing commands stored in the intermediate code memory 12. Then, the information (attribute information, color information, edge information, image, etc.) obtained by the interpretation processing of the drawing command is transferred to the intermediate code image data generation unit 23. The intermediate code image data generation unit 23 executes various functions related to the generation of the intermediate code image data in the above-described intermediate code generation unit 11, and outputs the intermediate code image data in band units from the information passed from the rendering command interpretation unit 22. Is generated and stored in the intermediate code memory 12.
[0026]
3 is an explanatory diagram of an example of conventional intermediate code image data, FIG. 4 is an explanatory diagram of an example of intermediate code image data used in the present invention, and FIG. 5 is a description of various position information in the intermediate code image data. FIG. Here, the intermediate code image data using the tiling pattern function is shown. In the conventional tiling pattern function, it is assumed that only the pattern is spread. Therefore, as shown in FIG. 3, the information held as the intermediate code image data includes the command ID, the pattern to be spread, the width and height of the pattern, the enlargement information for enlarging the pattern, and the like. It is enough to hold the X and Y coordinates of the origin pixel of the pattern as information.
[0027]
In the present invention, as shown in FIG. 4, the offset and step information in the X and Y directions are stored as position information together with the command ID, the width and height of the pattern to be spread, and the enlarged information when the pattern is enlarged. I have. FIG. 5 shows the width, height, offset, and step of the pattern. FIG. 5 illustrates that the pattern is spread over the entire drawing area of the band buffer 14. A pattern drawn at a position including the origin of the drawing area of the band buffer 14 is shown as a key pattern (reference position pattern) with reference to the key pattern. Each offset and step is
Offset X: distance in the x direction from the origin coordinate X of the key pattern to the origin of the drawing area of the band buffer 14
Offset Y: distance in the y direction from the origin coordinate Y of the key pattern to the origin of the drawing area of the band buffer 14
Step X: distance between the X coordinate of the origin pixel of the key pattern and the X coordinate of the origin pixel of the next pattern in the x direction
Step Y: distance between Y coordinate of origin pixel of key pattern and Y coordinate of origin pixel of next pattern in y direction
It is.
[0028]
When a value larger than the pattern width or the pattern height is held as the information of the step X and the step Y, an area where no pattern exists exists between adjacent patterns. In the present invention, it is possible to intentionally provide an area where such a pattern does not exist, and to perform various processing such as ROP processing on this area.
[0029]
Further, as the information of the offset X and the offset Y, the respective distances between the origin of the key pattern and the origin of the drawing area of the band buffer 14 are set as described above. As a result, the process of the intermediate code image data developing unit 13 is reduced by setting the coordinates at the time of accessing the pattern to be non-negative as in Patent Literature 2, and the circuit configuration for performing the coordinate conversion process when a dedicated circuit is used is simplified. Can be
[0030]
In the example of the intermediate code image data shown in FIG. 4, for a pattern to be repeatedly drawn, a pointer to the pattern is held in the intermediate code image data. This makes it possible to hold the pattern separately. For example, by storing the data in a register accessible by the intermediate code image data interpretation unit 31, high-speed access to a pattern can be realized.
[0031]
FIG. 6 is an explanatory diagram of another example of the intermediate code image data used in the present invention. In the example shown in FIG. 6, control information and color designation information are expanded so as to be able to be stored so that a uniform value can be designated for an area where no pattern exists between adjacent patterns. The control information is information for determining whether to invalidate or validate an area where no pattern exists between adjacent patterns. The color specification is to specify color information of an area where no pattern exists between adjacent patterns when an area where no pattern exists between adjacent patterns is valid as the setting content of the control information. For example, if the control information indicates that a region where a pattern does not exist is valid, a bitmap image filled with the color specified by the color information is obtained for an area where the pattern does not exist. By using such intermediate code image data, every time a pattern is repeatedly drawn by the tiling pattern function, the validity / invalidity of the area where the pattern does not exist and the color information when the area where the pattern does not exist are validated Can be set.
[0032]
In addition, various modifications are possible as intermediate code image data, for example, the number of pattern repetitions can be specified.
[0033]
Returning to FIG. 2, the intermediate code image data interpretation unit 31 of the intermediate code image data expansion unit 13 executes many functions described as the functions of the above-described intermediate code image data expansion unit 13. , The intermediate codes are sequentially extracted and interpreted, rendered in the band buffer 14 in band units, and developed into bitmap images. At this time, for the intermediate code image data using the tiling pattern function as shown in FIG. 4, the pixels (X, Y) in the drawing area are
X ′ = (X + offset X)% Step X (Equation 1-1)
Y ′ = (Y + offset Y)% Step Y (Equation 1-2)
Is calculated, and the corresponding pattern pixel (X ′, Y ′) is determined from the pattern. Then, after performing calculations and the like as necessary, the image is drawn in the band buffer 14. Note that the operator '%' obtains a remainder.
[0034]
Here, the coordinates (X ′, Y ′) of the obtained pattern pixel are respectively
Pattern width ≦ X ′ <Step X (Equation 2-1)
Pattern height ≦ Y ′ <Step Y (Equation 2-2)
In the case of (1), it indicates an area where no pattern exists between adjacent patterns. In this case, various measures are possible, such as making the value of the pattern indefinite and canceling the writing to the band buffer 14, or writing a preset value. When the data format of the intermediate code image data is as shown in FIG. 6, the value of an area where no pattern exists between adjacent patterns may be determined according to the control information and the color information.
[0035]
The compression / decompression processing unit 32 decompresses a compressed image or a pattern as described above, if it has been compressed. The reduction / enlargement processing unit 33 reduces or enlarges the image or the pattern according to the enlargement ratio in the intermediate code image data stored in the intermediate code memory 12 with respect to the image or the pattern as described above. The color conversion unit 34 performs a color space conversion process, a color correction process, and the like on the bitmap image in the band buffer 14 according to each drawing object. When storing the bitmap image in the band buffer 14, the dot plane conversion unit 35 stores the data of all color components for each pixel as dot-sequential data. When requesting plane-sequential data to be stored as separate planes, conversion is performed from point-sequential data to plane-sequential data. Of course, it may have a function of converting a bitmap image stored as plane-sequential data into dot-sequential data. For example, in order to treat a binary image or pattern in the same manner as another multi-value (color) image or pattern, the multi-value conversion unit 36 associates the binary with the multi-value minimum and maximum values, and Is converted to a multi-valued image or pattern.
[0036]
The whole or a part of the structure of the intermediate code image data developing unit 13 or the band buffer 14 and the like can be constituted by a dedicated circuit. Thereby, processing can be performed at high speed. At this time, a register for holding a pattern to be repeatedly drawn by the tiling pattern function in a dedicated circuit may be provided, and the register may hold the pattern.
[0037]
Next, an example of an operation according to the embodiment of the present invention will be described. The intermediate code image data for performing the drawing process by the tiling pattern function using the pattern as described above may be used in the ROP3 calculation drawing command in addition to the case of drawing the pattern. FIG. 7 is an explanatory diagram of an example of the ROP3 operation. The ROP3 operation stores, as a destination, a result obtained by performing an operation on three inputs of a bitmap image of two drawing data (brush and source) and a bitmap image of background data (destination). As shown in FIG. 7, two types of ROP2 operations (ROP2 (1) and ROP2 (2) in the figure) are switched according to a value of 0 or 1 for each bit of the bitmap image of the brush. ROP2 performs a logical operation between the source and the destination, and when the ROP3 operation is specified, two types of ROP2 operations are determined. Normally, the destination is a bitmap image that has already been written to the band buffer 14, and the operation result is written back to the band buffer 14 as the destination. In such ROP3 calculation, a tiling pattern function is used when drawing a bitmap image of a brush.
[0038]
FIG. 8 is an explanatory diagram of a specific example of the execution sequence of the drawing process including the ROP3 operation. In the figure, S indicates a source, B indicates a brush, D indicates a destination, and the destination indicates an image held in the band buffer 14.
[0039]
In the example shown in FIG. 8, first, in (1), intermediate code image data that does not require a pattern (intermediate code image data for drawing) is executed to perform a drawing process of a drawing object. A bitmap image is drawn in the band buffer 14 by the drawing intermediate code image data.
[0040]
Subsequently, in (2), intermediate code image data for generating a bitmap image to be a brush using the tiling pattern function is processed. However, here, the intermediate code image data is not actually drawn in the band buffer 14, Each value related to the pattern or the pattern in the intermediate code image data is held. Further, as shown in FIG. 4, the pattern when the tiling pattern function is used is configured to be referred to by a pointer from the intermediate code image data. Therefore, the pattern itself is stored in the intermediate code memory 12 simply by reading the intermediate code image data. For example, when the intermediate code image data developing unit 13 (intermediate code image data interpreting unit 31) is configured by a dedicated circuit, the pattern is transferred to a register in the dedicated circuit when the intermediate code image data accompanied by the pattern is interpreted. It is good to transfer it by such as. This makes it possible to speed up the processing when accessing the pattern in the subsequent processing.
[0041]
In the following (3), the intermediate code image data accompanied by the ROP3 operation drawing command is executed. The intermediate code image data accompanying the ROP3 operation drawing command basically draws a drawing object, and the bitmap image to be drawn is a source. Then, the designated ROP3 operation is executed using the pattern (2) (and the pattern repeated by the tiling pattern function) as a brush and the bitmap image written in the band buffer 14 up to this point as a destination. You.
[0042]
Although this ROP3 operation is executed for each pixel, the source is a bitmap image drawn by the intermediate code image data of (3), and the destination is a bitmap image already drawn in the band buffer 14. What is necessary is just to read from the band buffer 14. The pattern serving as the brush is only one pattern stored in the register even for a wide area. Therefore, the coordinates (X ′, Y ′) in the pattern are calculated from the coordinates (X, Y) of the pixel to be drawn by the above-described equations (1-1) and (1-2), and X ′, Y If 'is less than the pattern width and pattern height, the pattern in the register is accessed to obtain a value, and the value is used as a brush. Then, the ROP3 operation may be performed together with the source and the destination, and the result may be written into the band buffer 14 as the destination.
[0043]
If the coordinates (X ′, Y ′) in the pattern satisfy Expressions (2-1) and (2-2), no pattern exists. In this case, the value of the pattern is undefined, an error is notified, or the operation can be dealt with by canceling the calculation for the designated pixel and the writing to the band buffer. Alternatively, the configuration may be such that the values of all the bits of the pattern are fixed to 0 or 1, and the ROP3 operation is executed. Further, before the intermediate code image data instructing such ROP3 operation, a value in an area where no pattern exists between such adjacent patterns is configured to be set in advance. For an area where no pattern exists, the calculation can be performed using a preset value. When the intermediate code image data has a data format as shown in FIG. 6, it is possible to determine the value of the area where no pattern exists according to the control information and the color information, and perform the ROP3 operation. In this way, the ROP3 calculation using the pattern as a brush can be performed using the tiling pattern function.
[0044]
In the following (4), similar to (1), the intermediate code image data (intermediate code image data for drawing) that does not require a pattern is executed to perform the drawing processing of the drawing object. With this drawing intermediate code image data, a new drawing object is drawn on the bitmap image of the calculation result of the ROP3 calculation.
[0045]
In (5), the intermediate code image data of the ROP3 operation drawing command using the pattern is executed again. As in (3), the source is a bitmap image drawn by the intermediate code image data. Then, the bitmap image written in the band buffer 14 up to this point is the destination. As the brush, the pattern set last in the steps so far, that is, the pattern (2) (and the pattern repeated by the tiling pattern function) is used as the brush. The designated ROP3 operation is executed by these source, brush, and destination. The calculation result is written back to the band buffer 14.
[0046]
The following (6) and (7) show the case where a pattern is drawn by the tiling pattern function instead of the ROP3 calculation. First, in (6), when the intermediate code image data for pattern generation is newly executed, all the pattern information held so far is updated, and the pattern of (6) is transferred to the register and Each value is retained. The intermediate code image data for pattern drawing of (7) is a command for performing drawing using the already stored pattern, and is for drawing a clip image. Therefore, the pattern (6) is repeatedly drawn, and is clipped by the area drawn in (7). The result is written to the band buffer.
[0047]
In this way, the pattern can be repeatedly drawn using the tiling pattern function. Note that {circle around (8)} is a normal drawing process in which a drawing object is drawn according to the intermediate code image data.
[0048]
FIG. 9 is an explanatory diagram of an example of a drawing result. In FIG. 9, the hatching is different to show the difference in color. The ROP3 operation is performed using a bitmap image in which a large rectangle is drawn as shown in FIG. 9A as a destination and a small rectangle as shown in FIG. 9B as a pattern. As a result, for example, an image as shown in FIG. 9C is obtained. As shown by the hatching in FIG. 9C, the color of both the large rectangle and the small rectangle is changed by the ROP3 calculation. Conventionally, in a tiling pattern function using a pattern, only a transparent overwrite can be performed in a portion where no pattern exists, but in the present invention, the ROP operation or the like can be performed as described above.
[0049]
As mentioned above, although one Embodiment of this invention was described, this invention is not limited to this Embodiment, A various deformation | transformation is possible. For example, although the above description does not refer to the enlargement / reduction of the pattern, the X-direction enlargement ratio and the Y-direction enlargement ratio are set as the enlargement information of the intermediate code image data shown in FIGS. Drawing can be repeatedly performed by a tiling pattern function using a pattern enlarged or reduced in the Y direction. In this case, when calculating the coordinates in the pattern, instead of using Expressions (1-1) and (1-2),
X ′ = ((X + offset X) / X direction magnification)% step X
Y ′ = ((Y + offset Y) / Y-direction magnification)% step Y
The pattern may be accessed using the following formula and the coordinates (X ′, Y ′) obtained by this formula.
[0050]
In the above description, rendering processing is performed after generating intermediate code image data for each band. However, for example, rendering is performed in units of pages, or rendering processing is performed directly from a drawing command without generating intermediate code image data. May be performed.
[0051]
【The invention's effect】
As is apparent from the above description, according to the present invention, when a pattern is repeatedly drawn in the tiling pattern function, an area where no pattern exists between adjacent patterns can be provided, and the value of the area can be set. May be a predetermined value, a preset value, or a value designated each time. As a result, there is an effect that various drawing processes can be designated and executed in a portion between patterns which could only be overwritten by transmission in the past.
[0052]
In addition, by having position information for a pattern that includes the origin of the drawing area inside the area, the coordinates when accessing the pattern when drawing the pattern repeatedly can be set to a non-negative value. The circuit configuration can be simplified even when it is realized by a circuit. Further, in a configuration in which rendering is performed in band units, it is possible to correctly adjust the phase between the origin of the band buffer and the pattern for each band. As a result, there is an effect that it is possible to form a high-quality image in which the phase of the pattern over the band is guaranteed.
[Brief description of the drawings]
FIG. 1 is a functional block diagram showing an embodiment of the present invention.
FIG. 2 is a more specific functional block diagram according to the embodiment of the present invention.
FIG. 3 is an explanatory diagram of an example of conventional intermediate code image data.
FIG. 4 is an explanatory diagram of an example of intermediate code image data used in the present invention.
FIG. 5 is an explanatory diagram of various position information in intermediate code image data used in the present invention.
FIG. 6 is an explanatory diagram of another example of intermediate code image data used in the present invention.
FIG. 7 is an explanatory diagram of an example of a ROP3 calculation.
FIG. 8 is an explanatory diagram of a specific example of an execution sequence of a drawing process including a ROP3 operation.
FIG. 9 is an explanatory diagram of an example of a drawing result.
FIG. 10 is an explanatory diagram of an example of a conventional tiling pattern function capable of designating a pattern interval.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... High-order processing apparatus, 2 ... Image processing apparatus, 3 ... Printing apparatus, 11 ... Intermediate code generation part, 12 ... Intermediate code memory, 13 ... Intermediate code image data development part, 14 ... Band buffer, 15 ... Output control part, 21: Input control unit, 22: Drawing command interpreting unit, 23: Intermediate code image data generating unit, 31: Intermediate code image data interpreting unit, 32: Compression / expansion processing unit, 33: Reduction / enlargement processing unit, 34: Color Conversion unit, 35: point plane conversion unit, 36: multi-value conversion unit.

Claims (12)

同じパターンを繰り返して描画するタイリングパターン機能を有する画像処理装置において、入力された描画命令あるいは前記描画命令から生成された中間コード画像データに基づいてレンダリング処理を行いビットマップイメージを作成する描画手段と、前記ビットマップイメージを保持する画像記憶手段を有し、前記描画手段は、前記描画命令により前記パターンのサイズよりも大きな間隔での前記タイリングパターン機能の使用を指示されたとき、隣り合う前記パターンの間に前記パターンが存在しない領域を設けるように描画することを特徴とする画像処理装置。In an image processing apparatus having a tiling pattern function for repeatedly drawing the same pattern, a drawing means for performing a rendering process based on an input drawing command or intermediate code image data generated from the drawing command to create a bitmap image And image storage means for holding the bitmap image, wherein the drawing means are adjacent to each other when instructed to use the tiling pattern function at intervals larger than the size of the pattern by the drawing command. An image processing apparatus that performs drawing so as to provide an area where the pattern does not exist between the patterns. 前記間隔は、主走査線方向と副走査線方向について独立に設定できることを特徴とする請求項1に記載の画像処理装置。2. The image processing apparatus according to claim 1, wherein the interval can be set independently in a main scanning line direction and a sub-scanning line direction. 前記描画手段は、前記タイリングパターン機能により描画を行う際に、前記画像記憶手段の原点をその領域の内部に含む基準位置パターンに対する位置情報を保持、該位置情報に従って描画を行うことを特徴とする請求項1または請求項2に記載の画像処理装置。The drawing means, when performing drawing by the tiling pattern function, holds position information for a reference position pattern including the origin of the image storage means inside the area, and performs drawing in accordance with the position information. The image processing apparatus according to claim 1, wherein the image processing apparatus performs the processing. 前記描画手段は、前記パターンを用いて演算を行う際に、隣り合うパターンの間に設けられたパターンが存在しない領域で演算が実行される場合には、前記パターンが存在しない領域での値を不定として演算を行うことを特徴とする請求項1ないし請求項3のいずれか1項に記載の画像処理装置。The drawing means, when performing an operation using the pattern, if the operation is performed in a region where a pattern provided between adjacent patterns does not exist, the value in the region where the pattern does not exist is calculated. 4. The image processing apparatus according to claim 1, wherein the calculation is performed indefinitely. 前記描画手段は、前記パターンを用いて演算を行う際に、隣り合うパターンの間に設けられたパターンが存在しない領域で演算が実行される場合には、前記パターンが存在しない領域での値を指定された一律の値として演算を行うことを特徴とする請求項1ないし請求項3のいずれか1項に記載の画像処理装置。The drawing means, when performing an operation using the pattern, if the operation is performed in a region where a pattern provided between adjacent patterns does not exist, the value in the region where the pattern does not exist is calculated. 4. The image processing apparatus according to claim 1, wherein the calculation is performed as a specified uniform value. 前記描画手段の全部または一部の機能は、専用の回路で構成されていることを特徴とする請求項1ないし請求項5のいずれか1項に記載の画像処理装置。The image processing apparatus according to claim 1, wherein all or a part of the function of the drawing unit is configured by a dedicated circuit. 前記描画手段は、前記パターンを用いて演算を行う際には、該パターンを前記専用の回路内のレジスタに保持することを特徴とする請求項6に記載の画像処理装置。7. The image processing apparatus according to claim 6, wherein, when performing the calculation using the pattern, the drawing unit holds the pattern in a register in the dedicated circuit. 入力される描画命令あるいは前記描画命令から生成された中間コード画像データに基づいてレンダリング処理を行いビットマップイメージを作成する画像処理方法であって、同じパターンを繰り返して描画するタイリングパターン機能を有し、前記描画命令により前記パターンのサイズよりも大きな間隔での前記タイリングパターン機能の使用を指示されたとき、隣り合う前記パターンの間に前記パターンが存在しない領域を設けるように描画することを特徴とする画像処理方法。An image processing method for performing a rendering process based on an input drawing command or intermediate code image data generated from the drawing command to create a bitmap image, having a tiling pattern function for repeatedly drawing the same pattern. When the drawing command instructs the use of the tiling pattern function at intervals larger than the size of the pattern, drawing is performed so as to provide an area where the pattern does not exist between adjacent patterns. Characteristic image processing method. 前記間隔は、主走査線方向と副走査線方向について独立に設定できることを特徴とする請求項8に記載の画像処理方法。The image processing method according to claim 8, wherein the interval can be set independently for the main scanning line direction and the sub-scanning line direction. 前記タイリングパターン機能により描画を行う際に、前記画像記憶手段の原点をその領域の内部に含む基準位置パターンに対する位置情報を保持し、該位置情報に従って描画を行うことを特徴とする請求項8または請求項9に記載の画像処理方法。9. When drawing by the tiling pattern function, position information for a reference position pattern including the origin of the image storage means inside the area is held, and drawing is performed according to the position information. Alternatively, the image processing method according to claim 9. 前記描画命令により前記パターンを用いて演算を行う指示を受けたとき、隣り合うパターンの間に設けられたパターンが存在しない領域で演算が実行される場合には、前記パターンが存在しない領域での値を不定として演算を行うことを特徴とする請求項8ないし請求項10のいずれか1項に記載の画像処理方法。When receiving an instruction to perform an operation using the pattern by the drawing command, if the operation is performed in a region where a pattern provided between adjacent patterns does not exist, the operation is performed in an area where the pattern does not exist. The image processing method according to any one of claims 8 to 10, wherein the calculation is performed with the value being undefined. 前記描画命令により前記パターンを用いて演算を行う指示を受けたとき、隣り合うパターンの間に設けられたパターンが存在しない領域で演算が実行される場合には、前記パターンが存在しない領域での値を指定された一律の値として演算を行うことを特徴とする請求項8ないし請求項10のいずれか1項に記載の画像処理方法。When receiving an instruction to perform an operation using the pattern by the drawing command, if the operation is performed in a region where a pattern provided between adjacent patterns does not exist, the operation is performed in an area where the pattern does not exist. The image processing method according to any one of claims 8 to 10, wherein the calculation is performed using a value as a specified uniform value.
JP2003121653A 2003-04-25 2003-04-25 Image processing apparatus and image processing method Expired - Fee Related JP4257503B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003121653A JP4257503B2 (en) 2003-04-25 2003-04-25 Image processing apparatus and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003121653A JP4257503B2 (en) 2003-04-25 2003-04-25 Image processing apparatus and image processing method

Publications (2)

Publication Number Publication Date
JP2004326528A true JP2004326528A (en) 2004-11-18
JP4257503B2 JP4257503B2 (en) 2009-04-22

Family

ID=33500147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003121653A Expired - Fee Related JP4257503B2 (en) 2003-04-25 2003-04-25 Image processing apparatus and image processing method

Country Status (1)

Country Link
JP (1) JP4257503B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483951A (en) * 2012-06-29 2017-12-15 佳能株式会社 Picture decoding apparatus, picture decoding method and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483951A (en) * 2012-06-29 2017-12-15 佳能株式会社 Picture decoding apparatus, picture decoding method and storage medium
CN107483951B (en) * 2012-06-29 2020-03-17 佳能株式会社 Image decoding device, image decoding method, and storage medium

Also Published As

Publication number Publication date
JP4257503B2 (en) 2009-04-22

Similar Documents

Publication Publication Date Title
US20090033986A1 (en) Rasterizing variable and non-variable data for printing
JP2008059590A (en) Techniques for image segment accumulation in document rendering
JP6385406B2 (en) Image processing apparatus, image processing method, and program
JP2817687B2 (en) Image forming device
JP2008090377A (en) Rasterizing device, program and method
JP3037854B2 (en) Character generation method and device
JP5079341B2 (en) Print data processing device
JP4257503B2 (en) Image processing apparatus and image processing method
JP2007122188A (en) Image forming device, image processing method and program
JP2001075759A (en) Information processor and its method
JP2011053263A (en) Image processing device, image processing method, image output system, program and recording medium
JP6492895B2 (en) Print data processing apparatus and program
JP6238589B2 (en) Image forming apparatus, image processing method, and program
JPH06139032A (en) Page description language processor
JP2004334533A (en) Image processing device and method
JPH10151815A (en) Printing-processing apparatus
JP3467753B2 (en) Image processing system, image processing method, and medium recording image processing module
JP4325339B2 (en) Printing system, host computer and printer driver
JP2009066926A (en) Image processing device and image forming system
JP2006272556A (en) Image processor and image processing program
JP2002024840A (en) Drawing processing device
JPH11224331A (en) Raster image generation device and raster image generation method
JPH1110961A (en) Print processor and printing method
JP2006031086A (en) Print processing method
JP2008018577A (en) Image forming apparatus, image forming method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080924

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090107

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090120

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120213

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130213

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130213

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140213

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees