(57)【特許請求の範囲】
【請求項１】
画像データの描画命令を入力する描画命令入力手段と、入力した描画命令を描画属性命令の指定に従って演算して描画しメモリに書き込む演算手段と、メモリに書き込んだ描画を出力する画像処理装置であって、
描画命令は図形の範囲を指定する命令と、幅と高さを有する矩形パターンをパラメータにより一意に指定する命令と、指定された図形の範囲内を、指定された矩形パターンをタイル状に敷き詰めるように描画する命令からなり、
演算手段は、前記パラメータにより指定された矩形パターンの幅と１ワードのビット数との最小公倍数に基づいて大きさを決定したワード境界パターンを作成し、指定される矩形パターンを、決定したワード境界パターン分が埋まるまでワード単位での繰り返しとなるようにパターンデータに変換し、変換したパターンデータをキャッシュメモリに登録し、登録したパターンデータに基づいて指定された描画範囲内を描画することを特徴とする画像処理装置。
【請求項２】
上記矩形パターンの高さ方向のパターンすべてにワード単位での繰り返しとなるようにパターンデータの変換を行い、変換した結果を１つの連続したメモリ領域上に配置する請求項１記載の画像処理装置。
【請求項３】
上記演算手段は、任意のパラメータに対応した矩形パターンがキャッシュメモリ内に存在するかを検索し、該当する矩形パターンが既に存在することが判明したら、それを再利用する請求項１又は２記載の画像処理装置。
【請求項４】
上記指定されるパラメータが色濃度であり、矩形パターンが疑似階調を表現するディザのパターンである請求項１乃至３のいずれかに記載の画像処理装置。
【請求項５】
上記指定されるパラメータがＣＭＹＫ色用の色濃度であり、矩形パターンが疑似階調を表現するＣＭＹＫそれぞれのディザのパターンである請求項１乃至３のいずれかに記載の画像処理装置。
【請求項６】
上記指定されるパラメータがビットマップであり、矩形パターンがアイコン等の模様を有するビットマップパターンである請求項１乃至３のいずれかに記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、任意のパターンを描画して出力する画像処理装置、特に、描画処理の高速度化に関するものである。
【０００２】
【従来の技術】
任意のパターンを印刷して出力するときの描画処理の負担を軽減し、印刷処理速度の高速化を図るために、例えば特開平８−５２９０５号公報に示された印刷装置は、ハーフトーンパターンの基本パターンをビットシフトすることによりハーフトーンパターンを作成してキャッシュメモリに格納し、作成したハーフトーンをリピート機能を用いて描画するようにしている。また、特開平１０−３１７３５号公報に示された画像処理装置は、マスクパターンと背景パターンとグレー・スケールの３つをキーとしてキャッシングし、マスクパターンと背景パターンとグレー・スケールのデータがキャッシングした内容と同じ場合にはキャッシングしたデータを使用して描画論理演算を行うようにしている。
【０００３】
【発明が解決しようとする課題】
特開平８−５２９０５号公報に示された処理方法は、キャッシュ可能な最小単位が1ドット／１ビット単位となっているため、キャッシュの検索と初期化に時間がかかってしまう。また、特開平１０−３１７３５号公報に示された処理方法は単純なページであればキャッシュ効率がある場合があるが、背景パターンが存在するような場合はキャッシュ効率があるとは限らない。
【０００４】
この発明は係る短所を改善し、矩形パターンを塗りつぶす際にワード単位で高速にメモリにアクセス可能とすることにより、メモリへの描画命令を高速化することができる画像処理装置を提供することを目的とするものである。
【０００５】
【課題を解決するための手段】
この発明に係る画像処理装置は、画像データの描画命令を入力する描画命令入力手段と、入力した描画命令を描画属性命令の指定に従って演算して描画しメモリに書き込む演算手段と、メモリに書き込んだ描画を出力する画像処理装置であって、描画命令は図形の範囲を指定する命令と、幅と高さを有する矩形パターンをパラメータにより一意に指定する命令と、指定された図形の範囲内を、指定された矩形パターンをタイル状に敷き詰めるように描画する命令からなり、演算手段は、前記パラメータにより指定された矩形パターンの幅と１ワードのビット数との最小公倍数に基づいて大きさを決定したワード境界パターンを作成し、指定される矩形パターンを、決定したワード境界パターン分が埋まるまでワード単位での繰り返しとなるようにパターンデータに変換し、変換したパターンデータをキャッシュメモリに登録し、登録したパターンデータに基づいて指定された描画範囲内を描画することを特徴とする。
【０００７】
また、矩形パターンの高さ方向のパターンすべてにワード単位での繰り返しとなるようにパターンデータの変換を行い、変換した結果を１つの連続したメモリ上に配置して、次ラインへのアドレス移動を、ワード境界パターンのワード幅分を移動するように定数を加算するだけにする。
【０００８】
さらに、演算手段は、任意のパラメータに対応した矩形パターンがキャッシュ内に存在するかを検索し、該当する矩形パターンが既に存在することが判明したら、それを再利用して、同一パターンの再使用の際の作成手順を省略する。
【００１０】
また、指定されるパラメータが色濃度であり、矩形パターンが疑似階調を表現するディザのパターンで有ったり、指定されるパラメータがＣＭＹＫ色用の色濃度であり、矩形パターンが疑似階調を表現するＣＭＹＫそれぞれのディザのパターンで有ったり、あるいは指定されるパラメータがビットマップであり、矩形パターンがアイコン等の模様を有するビットマップパターンであることにより、各種のデータに適用できる。
【００１１】
【発明の実施の形態】
図１はこの発明の構成を示すブロック図である。図に示すように画像出力装置は、画像処理装置１と出力装置１０とを有する。画像処理装置１は、描画命令入力部２と描画命令演算部３と画像メモリ４とＣＰＵ５とパターン検索部６とパターン変換部７とパターンキャッシュメモリ８及びパターン取得部９を有する。描画命令入力部２は入力された画像データを描画用データに解釈し、入力された描画範囲と塗りつぶす矩形パターンを指定するパラメータを描画命令演算部３に送る。描画命令演算部３は送られた矩形パターンを指定するパラメータをパターン検索部６に送る。パターン検索部６は指定されたパラメータによりワード単位の描画に適したワード境界パターンが既にパターンキャッシュメモリ８に有るかどうかを検索する。この検索の結果、パターンキャッシュメモリ８にワード単位の描画に適したワード境界パターンがあれば、該当するワード境界パターンをパターンキャッシュメモリ８から描画命令演算部３に出力し、該当するワード境界パターンがなければワード境界パターンの参照元となる矩形パターンをパターン取得部９を介して取得し、それをパターン変換部７でワード境界パターンに変換し、パターンキャッシュメモリ８に登録し、それを描画命令演算部３に出力する。描画命令演算部３はパターン検索部６から得られたワード境界パターンと描画命令入力部２から得られた描画範囲と画像メモリ４を用いて、画像メモリ４に対する演算をＣＰＵ５を用いて行い、結果を画像メモリ４に出力する。描画命令終了又は出力装置１０への出力命令により、画像メモリ４に記憶した描画範囲が出力装置１０に出力される。
【００１２】
例えば図２に示すように、描画範囲Ａとして（Ｘ，Ｙ）＝（２，２）から（Ｘ，Ｙ）＝（６，４）を左上右下とする矩形範囲を、その範囲内を塗りつぶすパターンとして、パターンの幅をＷ、高さをＨとして、（Ｗ，Ｈ）＝２×２の市松模様の矩形パターンＢで塗りつぶす場合、矩形パターンＢを示すパラメータＬを５０、ＣＰＵ５のワード長を３２ビット、１ビット／１画素、矩形パターンＢで塗りつぶす際の起点座標を（Ｘ，Ｙ）＝（０，０）とする。このときの処理を図３のフローチャートを参照して説明する。
【００１３】
まず、描画命令である描画範囲Ａとして（Ｘ，Ｙ）＝（２，２）と（Ｘ，Ｙ）＝（６，４）及びＬ＝５０が入力される（ステップＳ１）。このＬ＝５０に相当するパターンが既にキャッシュメモリ８に登録されているかどうかをパターン検索部６で調べる（ステップＳ２）。このパターン検索部６における検索方法や登録方法及び破棄方法等はキャッシュアルゴリズムにより異なるが、例えば頻度を考慮しない単純な検索テーブルを用い、登録も単調増加のポインタ管理を用いる。もちろん他の高度なキャッシュアルゴリズムを用いることも可能である。
【００１４】
この検索テーブルを用いたキャッシュ方式を図４に示す。キャッシュに用いる全体のメモリアドレスがパターンキャッシュメモリ８の先頭アドレスａとしてあらかじめ指定されており、その大きさ、すなわちパターンキャッシュメモリ８の最後尾アドレスｃとキャッシュ先頭アドレスａの差分もあらかじめ指定されているとする。初めに検索テーブル１１を用いて、検索時に指定されるＬをキーとしてパターンキャッシュメモリ８へのアドレスを調べる。この検索テーブル１１は可変長でも固定長でも構わない。Ｌの範囲が例えば［０−９９］であれば１００エントリの固定長とし、Ｌの値をアドレス配列へのインデックスとすることでアドレスＡ［Ｌ］が参照可能となる。検索テーブル１１の大きさはアドレス格納用３２ビット（＝４バイト）×１００となる。アドレス部に有効アドレスが存在すれば、既にパターンキャッシュメモリ８内に存在することを示しているので、そのアドレスを直接返り値として返す。無効アドレス（ゼロ等）があれば未登録であることを示し登録を行う。登録は検索テーブル８の無効アドレスが入った部分にキャッシュ登録最後尾アドレスbを格納し返り値として返す。その後、アドレスbを登録サイズ分増加させる。登録前にキャッシュ登録最後尾アドレスbとキャッシュ最後尾アドレスcの差分と、これから登録されるサイズから、キャッシュが溢れるかどうかを調べ、溢れるようであればキャッシュのクリアを行う。この実施例では頻度情報なしの単調増加アドレスなので、キャッシュ溢れの際は登録内容すべてのクリアとする。その際は検索テーブル１１のアドレス部をすべて無効アドレスに変更し、キャッシュ登録最後尾アドレスbにキャッシュ先頭アドレスaと同じ値を代入する。
【００１５】
このパターン検索部６の結果、Ｌ＝５０に相当するパターンが既にパターンキャッシュメモリ８に登録されている場合は、ステップＳ６へ進む。Ｌ＝５０に相当するパターンがパターンキャッシュメモリ８に登録されていない場合は、Ｌ＝５０に相当するパターンからワード境界パターンを作成するための準備として、ワード境界パターンがパターンキャッシュメモリ８に登録可能かどうかを調べる。この調べる際にその大きさを計算する。パターンの幅をＷ、高さをＨとすると、
Ｈ×（Ｗと３２の最小公倍数）×（４バイト／３２ビット）
となる（単位バイト＝８ビット）。図２ではＷ＝２なので３２との最小公倍数は３２となり、ワード境界パターンの大きさは、２×３２×４／３２＝８バイトとなる。このようにパターンの幅Ｗと３２の最小公倍数をとることにより、３２ビット境界で繰り返し可能となるメモリ量が最小となり、キャッシュメモリ量を少なく抑えることができる。この計算されたサイズがパターンキャッシュメモリ８の残量、すなわち、図４に示すキャッシュ最後尾アドレスｃとキャッシュ登録最後尾アドレスｂの差分より小さければ登録することができる。このようにパターンキャッシュメモリ８に登録可能であればステップＳ５へ進む。
【００１６】
パターンキャッシュメモリ８に登録できない場合は、計算された必要なメモリ量をパターンキャッシュメモリ８内に確保するために、キャッシュ内の任意のデータを必要メモリ量が確保できるまでクリアする（ステップＳ４）。例えば全削除の方式を用いた場合には、キャッシュ内を全削除後、要求された必要メモリ量をキャッシュ先頭アドレスaに割り当てる。その後、パターンキャッシュメモリ８内の新たに割り当てられたアドレスにワード境界パターンを作成する（ステップＳ５）。
【００１７】
このワード境界パターンを作成するときの処理を図５を参照して説明する。まず、Ｌ＝５０に相当するパターンをパターン取得部９から得る。得られた矩形パターンＢは図５（ａ）の２×２計４画素の市松模様とする。パターンＢの幅方向のラインパターンＷ＝２ドット分をワード境界パターン用メモリに順に埋めていき、先に計算されたワード境界の画素数（Ｗと３２の最小公倍数)＝３２ドット分が埋まるまで繰り返す。これをライン数分（Ｈ＝２）繰り返す。この結果、１ワード２ライン分のワード境界パターン１２がパターンキャッシュメモリ８内の連続したメモリに作成される。また、幅Ｗによってはワード境界画素数が２ワード以上必要となる。例えば図５（ｂ）に示すように、２４×２４の矩形パターンＢであれば、３ワード＝９６ドット分を埋める必要がある。この場合、初めの1ワード（３２ドット）を埋めるのに不足している8ドット(aの部分)を矩形パターンＢの１ドット目から８ドット目の8ドットで埋め、次のワードの１６ドット(bの部分)を矩形パターンＢの９ドット目から２４ドット目の16ドットで埋める。残りのドットや残りのワード部分も同様に矩形パターンＢで埋める。これをライン数分（Ｈ＝２４）繰り返す。この結果、３ワード２４ライン分、計７２ワード分のワード境界パターン１２がパターンキャッシュメモリ８内の連続したメモリに配置される。次のキャッシュへの登録アドレスは今回配置されたメモリのキャッシュ登録最後尾アドレスbからとなる。
【００１８】
このパターンキャッシュメモリ８に作成されたり検索されたＬ＝５０のワード境界パターン１２と指定された描画範囲及び描画対象となる画像メモリ４を用いて論理和や論理積や排他的論理和や上書き等の画像演算を行う（ステップＳ６）。画像演算上書きの場合の例を図６に示す。画像演算の場合、メモリアクセスが頻繁に行われる。このときの処理速度を考えると、これらの演算はメモリアクセスのオーバヘッドが最小であるワード単位で行う。上書きの演算は描画対象画像メモリ１４の対象領域すなわち描画範囲１３（Ｘ＝［２，５］）をＬ＝５０のワード境界パターン１２で置き換え、対象領域外は変更しないという演算を行い、Ｙ＝２の上書き演算結果１５を得る。すなわちＸ＝［２，５］にあたる部分１６をワード境界パターン１２で置き換える。
【００１９】
描画領域１３がワードの境界を越えるような範囲の場合、例えばＸ＝［３０，３４］等の場合、Ｌ＝５０のワード境界パターン１２の次のワード分のパターンを用意するが、例えば図５（ａ）に示すように２×２の矩形パターンＢの場合、ワード境界パターン１２は1ワード分しかない。すなわち、同じＹ座標内であれば任意のＸ範囲でワード境界パターン１２が共通に使用可能である。また、図５（ｂ）に示すように、２４×２４の矩形パターンＢのようにワード境界パターン１２が３ワードある場合はＸ＝０を起点に循環する。この場合、Ｘ＝［０，３１］は1ワード目、Ｘ＝［３２，６３］は２ワード目、Ｘ＝［６４，９５］は3ワード目だが、Ｘ＝［９６，１２７］は1ワード目に戻る。このように１ワード目から３ワード目のパターンは連続したメモリ領域に作成し配置されている。描画領域１３が次のＹ座標に移動する場合、ワード境界パターン１２も次のラインへ移動する。ワード境界パターン１２は、先頭ラインから順に連続したメモリ領域内に作成して配置されているので、次のラインの移動はワード境界パターン１２のワード幅分移動すれば良い。すなわち２×２の矩形パターンＢでは1ワード移動し、２４×２４の矩形パターンＢでは３ワード移動することになる。また、最終ラインであれば先頭ラインに移動する。
【００２０】
このようにワード境界パターン１２をＸＹ方向の配列状のメモリに連続して作成することにより、Ｘ方向の移動やＹ方向の移動によるアドレス計算が簡素化されて高速に処理することができる。
【００２１】
上記では１ビット／１ドットの場合について説明したが、２ビット，４ビット，８ビットでも同様である。また、３２ビット／１ワードで説明したが１６ビットや６４ビットでも同様に適用することができる。さらに、矩形パターンＢで塗りつぶす際の起点座標を（Ｘ，Ｙ）＝（０，０）で説明したが、任意の座標を指定して起点とすることも可能である。
【００２２】
【発明の効果】
この発明は以上説明したように、任意の範囲内を一定の矩形パターンで塗りつぶす際に、矩形パターン１つ１つをシフトしながら塗りつぶすのではなく、ワード単位で単一ワード又は複数ワードを繰り返し塗りつぶすので、シフト演算が不要であり、かつ、メモリアクセス数も減少して描画処理の高速化を図ることができる。
【００２３】
また、ワード境界パターンをライン毎に連続したメモリ内に配置することにより、次ラインへのアドレス移動がワード境界パターンのワード幅分を移動するように定数を加算するだけですみ、描画処理を高速で行うことができる。
【００２４】
さらに、１度作成したワード境界パターンはキャッシュされるので、同一パターンの再使用の際には作成手順を省略することができ、描画処理を単純化することができる。
【００２５】
また、キャッシュに必要な総メモリ量をあらかじめ指定できることにより、描画処理に使用するメモリ量に応じて調整することができる。また、キャッシュ検索の最小単位を１矩形パターンとすることにより、キャッシュ検索やキャッシュクリアで扱うデータ量を少なくすることができ、処理の高速化を図ることができる。
【００２６】
また、ディザパターンは一般的に色濃度別の矩形パターンの繰り返しであるので、この発明の処理をディザパターンの画像処理に適用することにより、画像処理を高速化することができる。また、写真画のような微小領域が異なるパターンで描画される集合であるイメージデータの場合にも適用でき、処理の高速化を図ることができる。
【００２７】
また、ディザパターンはＣＭＹＫを色材とする印刷装置にも使用されるので、この発明の処理をカラー用のディザパターンの画像処理に適用すること２より、画像処理を高速化することができる。また、写真画のような微小領域が異なるパターンで描画される集合であるカラーイメージデータの場合にも適用することができる。
【００２８】
さらに、ユーザやアプリケーションが指定するアイコンやビットマップ等比較的単純なビットマップパターンを敷き詰める場合、一般的にビットマップパターンは矩形パターンであるので、この発明の描画処理を適用して高速化を図ることができる。
【００２９】
また、インクジェットプリンタのようにページメモリをコンピュータ側で行う場合、各描画オブジェクトからページメモリを生成するコンピュータ側の処理を高速にすることができる。
【００３０】
さらに、レーザプリンタのようにページメモリをプリンタ側で行う場合、各描画オブジェクトからページメモリを生成するプリンタ側の処理も高速に行うことができる。
【図面の簡単な説明】
【図１】この発明の画像処理装置の構成を示すブロック図である。
【図２】描画範囲と矩形パターンを示す模式図である。
【図３】描画処理を示すフローチャートである。
【図４】検索テーブルを用いたキャッシュ方式を示す説明図である。
【図５】ワード境界パターンを作成するときの処理を示す説明図である。
【図６】画像演算上書き処理を示す説明図である。
【符号の説明】
１；画像処理装置、２；描画命令入力部、３；描画命令演算部、
４；画像メモリ、５；ＣＰＵ、６；パターン検索部、７；パターン変換部、
８；パターンキャッシュメモリ、９；パターン取得部、１０；出力装置。
【図１】
0004159756.tif 000002
【図２】
0004159756.tif 000003
【図３】
0004159756.tif 000004
【図４】
0004159756.tif 000005
【図５】
0004159756.tif 000006
【図６】
0004159756.tif 000007