(57)【要約】【課題】図形描画命令に従い、濃度に対応するビットマップ（ディザ）パターンにより指定描画範囲をタイル状に敷き詰める描画処理において、写真画像のように階調変化の緩やかな画像を対象にした図形描画命令の入力に対して、描画処理時間を低減し、高速処理を実現する。【解決手段】描画命令演算部３でBLT（濃度順の並びでディザの行単位のビット配置が同一かを示す濃度変換テーブル）を参照して隣接する描画指定範囲に用いるディザパターンの異同を判断し、同一パターンが適用できる描画範囲を連結させ、この指定に従い描画処理部６でページメモリ１０の指定範囲に対し予め用意したディザパターンにより一括書き込みを行う。描画に用いるディザとして、基本パターンをワード長だけ複数個連結させたパターンを用意することで処理をより高速化できる。【選択図】      図１
2004164549.tif 000002
【特許請求の範囲】
【請求項１】
画像データに基づく図形描画命令の入力手段と、ページメモリ上で任意に指定された範囲内を指定された濃度で塗りつぶす図形描画命令の入力に対し、指定された濃度に対応するビットマップパターンを取得・保持し、指定されたページメモリ上の座標位置に対応するビットマップパターンの保持座標位置を計算し、得られる座標位置に従ってページメモリ上の指定範囲内を指定濃度に対応するビットマップパターンによりタイル状に敷き詰めるように描画データを書き込む描画処理手段と、ページメモリに書き込まれた描画データを出力装置に渡す手段を有する画像処理装置であって、前記描画処理手段が、隣接する描画指定範囲に用いるビットマップパターンの異同を判断し、判断結果に従い同一ビットマップパターンが適用できる描画指定範囲を連結させてページメモリ上の描画範囲を指定し直すことにより、隣接する描画指定範囲に対する一括書き込みを行うことを特徴とする画像処理装置。
【請求項２】
請求項１に記載された画像処理装置において、前記一括書き込みに用いるための前記ビットマップパターンとして、ビットマップが行列状をなし、かつ濃度順の並びで一部の同一行を同一ビット配置としたパターンを用いるとともに、前記同一ビット配置のパターンを低濃度又は高濃度側で保有し、保有しない濃度側から該同一ビット配置のパターンを参照する変換テーブルを用いて、指定された濃度に対応するビットマップパターンを指定することを特徴とする画像処理装置。
【請求項３】
請求項２に記載された画像処理装置において、前記変換テーブルを予め用意しておくか、或いは装置の立ち上げ時に変換テーブルを作成・保持することが可能な変換テーブル作成手段を有することを特徴とする画像処理装置。
【請求項４】
請求項１乃至３のいずれかに記載された画像処理装置において、ワードの境界と一致する長さまで、濃度に対応する前記ビットマップパターンを繰り返して連ねたワード境界ビットマップパターンを作成する手段を有し、前記描画処理手段が、複数の図形に対する描画命令に従って同一ビットマップパターンの繰り返しによりページメモリ上を一括書き込みする際に、前記ワード境界ビットマップパターン作成手段により作成されたパターンを用いることを特徴とする画像処理装置。
【請求項５】
請求項４に記載された画像処理装置において、前記ビットマップパターンをビットマップが行列状をなすものとし、前記ワード境界ビットマップパターン作成手段により行毎に作成したワード境界ビットマップパターンを連続アドレスの記憶領域に格納することを特徴とする画像処理装置。
【請求項６】
請求項４又は５に記載された画像処理装置において、前記ワード境界ビットマップパターン作成手段により作成されたワード境界ビットマップパターンを濃度と行の組合せを単位としてキャッシュする手段を有することを特徴とする画像処理装置。
【請求項７】
請求項６に記載された画像処理装置において、キャッシュするワード境界ビットマップパターンに濃度値とビットマップパターンの行座標を属性情報として付加し、該属性情報を用いてワード境界ビットマップパターンの登録、破棄、検索の少なくとも一つを管理する機能を備えたキャッシュ管理手段を有することを特徴とする画像処理装置。
【請求項８】
請求項６又は７のいずれかに記載された画像処理装置において、前記キャッシュ管理手段が、キャッシュに必要な総メモリ量として予め指定された量をキャッシュが溢れた際に、キャッシュをクリアする操作を行うことを特徴とする画像処理装置。
【請求項９】
請求項１乃至８に記載された画像処理装置において、前記描画処理手段が、隣り合う複数の図形を描画する際に、ページメモリのアドレス順となる主走査方向のライン毎に描画を行うことを特徴とする画像処理装置。
【請求項１０】
請求項１乃至９に記載された画像処理装置において、前記図形描画命令による指定濃度が所定ビット数により表現された階調であり、前記指定濃度に対応するビットマップパターンが疑似階調を表現するディザパターンであることを特徴とする画像処理装置。
【請求項１１】
請求項１０に記載された画像処理装置において、描画対象となる図形の種類毎にディザパターンを用意し、前記図形描画命令に含まれる図形の種類に対応してディザパターンを切り替える手段を有することを特徴とする画像処理装置。
【請求項１２】
請求項１０又は１１に記載された画像処理装置において、前記図形描画命令による指定濃度がカラー描画に用いるCMYKの各色成分の色濃度であり、前記指定濃度に対応するビットマップパターンが疑似階調を表現するCMYKの各色成分に用いるディザパターンであることを特徴とする画像処理装置。
【請求項１３】
請求項１０乃至１２のいずれかに記載された画像処理装置において、閾値テーブルと、前記ディザパターンを閾値テーブルに基づいて作成する手段を有することを特徴とする画像処理装置。
【請求項１４】
請求項１３に記載された画像処理装置において、前記変換テーブルを作成する手段が、ディザパターン作成用の前記閾値テーブルに基づいて変換テーブルを作成することを特徴とする画像処理装置。
【請求項１５】
請求項４乃至１４に記載された画像処理装置において、隣り合う複数の図形に対する描画命令に含まれる指定濃度の異同を判断する手段を有し、前記描画処理手段が、同濃度と判断された図形に対しワード境界ビットマップパターンを用いて描画することを特徴とする画像処理装置。
【請求項１６】
請求項１５に記載された画像処理装置において、クリップ領域が指定された図形描画命令に対し、前記指定濃度の異同を判断する手段により同濃度と判断された図形の単位でクリップ領域であるか、否かを判定する手段を有し、前記描画処理手段が、該判定手段の判定結果に従いクリップ領域の描画を行うことを特徴とする画像処理装置。
【請求項１７】
ページメモリ上で任意に指定された範囲内を指定された濃度で塗りつぶす図形描画命令の入力に対し、指定された濃度に対応するビットマップパターンを取得・保持し、指定されたページメモリ上の座標位置に対応するビットマップパターンの保持座標位置を計算し、得られる座標位置に従ってページメモリ上の指定範囲内を指定濃度に対応するビットマップパターンによりタイル状に敷き詰めるように描画データを書き込む描画処理方法であって、隣接する描画指定範囲に用いるビットマップパターンの異同を判断し、判断結果に従い同一ビットマップパターンが適用できる描画指定範囲を連結させてページメモリ上の描画範囲を指定し直すことにより、隣接する描画指定範囲に対する一括書き込みを行うことを特徴とする描画処理方法。
【請求項１８】
請求項１７に記載された描画処理方法において、前記一括書き込みに用いるための前記ビットマップパターンをビットマップが行列状をなし、かつ濃度順の並びで同一行を同一ビット配置とする部分を持つパターンとするとともに、前記同一ビット配置のパターンを低濃度側で保持し、高濃度側から該パターンを保有する濃度を参照する変換テーブルを用いて、指定された濃度に対応するビットマップパターンを指定することを特徴とする描画処理方法。
【請求項１９】
請求項１７又は１８に記載された描画処理方法において、ワードの境界と一致する長さまで、濃度に対応する前記ビットマップパターンを繰り返して連ねたワード境界ビットマップパターンを作成する手順を備え、複数の図形に対する描画命令に従って同一ビットマップパターンの繰り返しにより、ページメモリ上の隣接する描画指定範囲に対する一括書き込みを実行する際に、前記ワード境界ビットマップパターン作成手順により作成されたパターンを用いることを特徴とする描画処理方法。
【請求項２０】
請求項１９に記載された描画処理方法において、前記ワード境界ビットマップパターン作成手順により作成されたワード境界ビットマップパターンを濃度値とビットマップパターンの行座標を属性情報として付加してキャッシュし、該属性情報を用いてワード境界ビットマップパターンの登録、破棄、検索の少なくとも一つのキャッシュ管理を行うことを特徴とする描画処理方法。
【請求項２１】
請求項１７乃至２０のいずれかに記載された描画処理方法において、隣り合う複数の図形を描画する際に、ページメモリのアドレス順となる主走査方向のライン毎に描画を行うことを特徴とする描画処理方法。
【請求項２２】
請求項１９乃至２１のいずれかに記載された描画処理方法において、隣り合う複数の図形に対する描画命令に含まれる指定濃度の異同を判断し、同濃度と判断された図形に対しワード境界ビットマップパターンを用いて一括書き込みを行うことを特徴とする描画処理方法。
【請求項２３】
請求項１７乃至２２のいずれかに記載された描画処理方法の各処理手順をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばPDL（ページ記述言語）等により記述された描画命令に従う描画データの生成及び生成した描画データを用いた画像出力を行うプリンタ等の画像処理装置及び画像処理方法に関し、特定すると、階調変化の緩やかな写真画像等の図形描画命令に対し高速処理を可能にする前記画像処理装置、画像処理方法及び該方法を実行するためのプログラムに関する。
【０００２】
【従来の技術】
画像情報をもとに印刷用紙等の媒体に画像出力を行うプリンタ等の画像出力装置においては、従来からPDLで記述された描画命令（プリンタシステムでは、通常ホストからプリンタに送信されてくる）に従って描画データを生成し、生成された描画データを用いて媒体への画像出力を行っている。PDL形式の描画命令を受け取る画像出力装置では、グレイスケール（階調性）を持つ画像情報に基づくグラフィック描画を行うことが可能で、図形描画命令で、図形の範囲、濃度及び該図形範囲を塗りつぶすことをそれぞれ指示することにより、媒体へ階調画像を描画出力することを可能にしている。
このようなグレイスケールを用いたグラフィック描画の従来例として、下記特許文献１、特許文献２を示すことができる。
【０００３】
【特許文献１】
特開平7-168681号公報
【特許文献２】
特開2001-13954号公報
【０００４】
特許文献１の特開平7-168681号公報「PDLデータ処理装置及びその制御方法、及びパターン展開装置」には、グレイスケールの描画に係わる実施例として、描画する際に用いるパターンA〜Dの描画例（特許文献１の図２９参照）が示されており、この例では、新規パターンが出現すると古いパターンのデータを削除し（delete）、新規パターンデータを登録（load）している。例えば、特許文献１では2個分の登録例を示しており（特許文献１の図３１参照）、パターンカウント3の部分ではパターンCを登録するためにパターンAが削除されている。このように、この方式では、2個分のパターンデータの登録でもそれほど支障が生じないような条件で描画を行うことを想定したものといえる。
また、特許文献２の特開2001-13954号公報「描画装置及び描画方法、記憶媒体」には、マスク発生器、バックグランド発生器、グレイ発生器の３つの画像発生器を設け、グレイ発生器はオブジェクトデータを元にグレイ画像を発生し、画像メモリ上の描画すべきアドレス（マスク発生器及びバックグランド発生器から発生されるデータにより定まる）のグレイ画像データを論理演算により、該当アドレスに書き込むという動作を行うものである。
しかしながら、写真画像のように階調変化が緩やかであり、隣接画素間で濃度が違い、即ち画素数分の階調変化が起きるような入力画像データを対象にして上記特許文献１を適用した場合、出力に用いるパターンデータの登録、削除が頻発し、処理速度の低下は避けられない。パターンレジスタが画素数分あれば理論的には処理速度の低下を避けることが可能であるが、現実的ではない。さらに、特許文献１に開示された実施例で示しているようなハードウェアによれば、レジスタを画素数分保有することは難しく、コスト面からも現実的ではない。また、上記特許文献２によれば、グレイ発生器へグレーデータのみを入力としているため、写真画像イメージのようにグレーデータがイメージの画素数分変化するようなデータの場合、ビットプロセッシングユニット（BPU）での演算回数が画素数分発生し、処理の高速化の妨げになる。
【０００５】
ところで、PDLによる図形描画命令による階調画像の描画出力を行う際に、画像出力装置では、指定されたページメモリ上の図形の描画範囲を指定された濃度により塗りつぶす、という描画命令に従う処理を行う。この処理を従来では、指定された描画範囲を単位として、指定された描画範囲毎に行っている。従って、階調変化の緩やかな写真画像を対象にした場合の描画範囲のように、隣接描画範囲（入力画像の画素）間毎に濃度変化が生じる（即ち濃度変化が画素数分生じる）場合には、小さい描画範囲で濃度が指定され、描画範囲毎に指定された濃度に対応したビットマップデータのページメモリへの書き込み処理が行われることになる。
このビットマップデータ書き込みは、普通、画素濃度に対応する所定のディザパターンにより描画範囲を塗りつぶす（タイル状に敷き詰める）という処理によるので、上述の写真画像のような対象を処理する場合には、ディザパターンを描画範囲に貼り込むためのビットシフト演算等を含む所定の描画処理手順が、小さい描画範囲に対して頻繁に繰り返されることになり、処理の高速化を困難にする。
【０００６】
【発明が解決しようとする課題】
このように、PDL図形描画命令によりページメモリ上に階調画像の描画データを展開する従来の処理方法は、いずれも写真画像のように階調変化の緩やかな画像を対象にした場合に高速処理の実現が困難な方法によっている。
本発明は、従来の描画処理における上述の問題点に鑑みてなされたもので、その目的（課題）は、指定されたページメモリ上の図形の描画範囲を指定された濃度に塗りつぶす、という図形描画命令に従い、濃度に対応するビットマップパターンにより指定描画範囲をタイル状に敷き詰める描画処理を行う画像処理装置（例えば、プリンタ等）、描画処理方法において、写真画像のように階調変化の緩やかな画像（即ち、隣接描画範囲間毎に濃度変化が生じる）を対象にした図形描画命令の入力に対して、描画処理時間を短縮し、高速処理を実現することにある。
【０００７】
【課題を解決するための手段】
請求項１の発明は、画像データに基づく図形描画命令の入力手段と、ページメモリ上で任意に指定された範囲内を指定された濃度で塗りつぶす図形描画命令の入力に対し、指定された濃度に対応するビットマップパターンを取得・保持し、指定されたページメモリ上の座標位置に対応するビットマップパターンの保持座標位置を計算し、得られる座標位置に従ってページメモリ上の指定範囲内を指定濃度に対応するビットマップパターンによりタイル状に敷き詰めるように描画データを書き込む描画処理手段と、ページメモリに書き込まれた描画データを出力装置に渡す手段を有する画像処理装置であって、前記描画処理手段が、隣接する描画指定範囲に用いるビットマップパターンの異同を判断し、判断結果に従い同一ビットマップパターンが適用できる描画指定範囲を連結させてページメモリ上の描画範囲を指定し直すことにより、隣接する描画指定範囲に対する一括書き込みを行うことを特徴とする画像処理装置である。
【０００８】
請求項２の発明は、請求項１に記載された画像処理装置において、前記一括書き込みに用いるための前記ビットマップパターンとして、ビットマップが行列状をなし、かつ濃度順の並びで一部の同一行を同一ビット配置としたパターンを用いるとともに、前記同一ビット配置のパターンを低濃度又は高濃度側で保有し、保有しない濃度側から該同一ビット配置のパターンを参照する変換テーブルを用いて、指定された濃度に対応するビットマップパターンを指定することを特徴とするものである。
【０００９】
請求項３の発明は、請求項２に記載された画像処理装置において、前記変換テーブルを予め用意しておくか、或いは装置の立ち上げ時に変換テーブルを作成・保持することが可能な変換テーブル作成手段を有することを特徴とするものである。
【００１０】
請求項４の発明は、請求項１乃至３のいずれかに記載された画像処理装置において、ワードの境界と一致する長さまで、濃度に対応する前記ビットマップパターンを繰り返して連ねたワード境界ビットマップパターンを作成する手段を有し、前記描画処理手段が、複数の図形に対する描画命令に従って同一ビットマップパターンの繰り返しによりページメモリ上を一括書き込みする際に、前記ワード境界ビットマップパターン作成手段により作成されたパターンを用いることを特徴とするものである。
【００１１】
請求項５の発明は、請求項４に記載された画像処理装置において、前記ビットマップパターンをビットマップが行列状をなすものとし、前記ワード境界ビットマップパターン作成手段により行毎に作成したワード境界ビットマップパターンを連続アドレスの記憶領域に格納することを特徴とするものである。
【００１２】
請求項６の発明は、請求項４又は５に記載された画像処理装置において、前記ワード境界ビットマップパターン作成手段により作成されたワード境界ビットマップパターンを濃度と行の組合せを単位としてキャッシュする手段を有することを特徴とするものである。
【００１３】
請求項７の発明は、請求項６に記載された画像処理装置において、キャッシュするワード境界ビットマップパターンに濃度値とビットマップパターンの行座標を属性情報として付加し、該属性情報を用いてワード境界ビットマップパターンの登録、破棄、検索の少なくとも一つを管理する機能を備えたキャッシュ管理手段を有することを特徴とするものである。
【００１４】
請求項８の発明は、請求項６又は７のいずれかに記載された画像処理装置において、前記キャッシュ管理手段が、キャッシュに必要な総メモリ量として予め指定された量をキャッシュが溢れた際に、キャッシュをクリアする操作を行うことを特徴とするものである。
【００１５】
請求項９の発明は、請求項１乃至８に記載された画像処理装置において、前記描画処理手段が、隣り合う複数の図形を描画する際に、ページメモリのアドレス順となる主走査方向のライン毎に描画を行うことを特徴とするである。
【００１６】
請求項１０の発明は、請求項１乃至９に記載された画像処理装置において、前記図形描画命令による指定濃度が所定ビット数により表現された階調であり、前記指定濃度に対応するビットマップパターンが疑似階調を表現するディザパターンであることを特徴とするである。
【００１７】
請求項１１の発明は、請求項１０に記載された画像処理装置において、描画対象となる図形の種類毎にディザパターンを用意し、前記図形描画命令に含まれる図形の種類に対応してディザパターンを切り替える手段を有することを特徴とするである。
【００１８】
請求項１２の発明は、請求項１０又は１１に記載された画像処理装置において、前記図形描画命令による指定濃度がカラー描画に用いるCMYKの各色成分の色濃度であり、前記指定濃度に対応するビットマップパターンが疑似階調を表現するCMYKの各色成分に用いるディザパターンであることを特徴とするである。
【００１９】
請求項１３の発明は、請求項１０乃至１２のいずれかに記載された画像処理装置において、閾値テーブルと、前記ディザパターンを閾値テーブルに基づいて作成する手段を有することを特徴とするものである。
請求項１４の発明は、請求項１３に記載された画像処理装置において、前記変換テーブルを作成する手段が、ディザパターン作成用の前記閾値テーブルに基づいて変換テーブルを作成することを特徴とするものである。
【００２０】
請求項１５の発明は、請求項４乃至１４に記載された画像処理装置において、隣り合う複数の図形に対する描画命令に含まれる指定濃度の異同を判断する手段を有し、前記描画処理手段が、同濃度と判断された図形に対しワード境界ビットマップパターンを用いて描画することを特徴とするものである。
【００２１】
請求項１６の発明は、請求項１５に記載された画像処理装置において、クリップ領域が指定された図形描画命令に対し、前記指定濃度の異同を判断する手段により同濃度と判断された図形の単位でクリップ領域であるか、否かを判定する手段を有し、前記描画処理手段が、該判定手段の判定結果に従いクリップ領域の描画を行うことを特徴とするものである。
【００２２】
請求項１７の発明は、ページメモリ上で任意に指定された範囲内を指定された濃度で塗りつぶす図形描画命令の入力に対し、指定された濃度に対応するビットマップパターンを取得・保持し、指定されたページメモリ上の座標位置に対応するビットマップパターンの保持座標位置を計算し、得られる座標位置に従ってページメモリ上の指定範囲内を指定濃度に対応するビットマップパターンによりタイル状に敷き詰めるように描画データを書き込む描画処理方法であって、隣接する描画指定範囲に用いるビットマップパターンの異同を判断し、判断結果に従い同一ビットマップパターンが適用できる描画指定範囲を連結させてページメモリ上の描画範囲を指定し直すことにより、隣接する描画指定範囲に対する一括書き込みを行うことを特徴とする描画処理方法である。
【００２３】
請求項１８の発明は、請求項１７に記載された描画処理方法において、前記一括書き込みに用いるための前記ビットマップパターンをビットマップが行列状をなし、かつ濃度順の並びで同一行を同一ビット配置とする部分を持つパターンとするとともに、前記同一ビット配置のパターンを低濃度側で保持し、高濃度側から該パターンを保有する濃度を参照する変換テーブルを用いて、指定された濃度に対応するビットマップパターンを指定することを特徴とする方法である。
【００２４】
請求項１９の発明は、請求項１７又は１８に記載された描画処理方法において、ワードの境界と一致する長さまで、濃度に対応する前記ビットマップパターンを繰り返して連ねたワード境界ビットマップパターンを作成する手順を備え、複数の図形に対する描画命令に従って同一ビットマップパターンの繰り返しにより、ページメモリ上の隣接する描画指定範囲に対する一括書き込みを実行する際に、前記ワード境界ビットマップパターン作成手順により作成されたパターンを用いることを特徴とする方法である。
【００２５】
請求項２０の発明は、請求項１９に記載された描画処理方法において、前記ワード境界ビットマップパターン作成手順により作成されたワード境界ビットマップパターンを濃度値とビットマップパターンの行座標を属性情報として付加してキャッシュし、該属性情報を用いてワード境界ビットマップパターンの登録、破棄、検索の少なくとも一つのキャッシュ管理を行うことを特徴とする方法である。
【００２６】
請求項２１の発明は、請求項１７乃至２０のいずれかに記載された描画処理方法において、隣り合う複数の図形を描画する際に、ページメモリのアドレス順となる主走査方向のライン毎に描画を行うことを特徴とする方法である。
【００２７】
請求項２２の発明は、請求項１９乃至２１のいずれかに記載された描画処理方法において、隣り合う複数の図形に対する描画命令に含まれる指定濃度の異同を判断し、同濃度と判断された図形に対しワード境界ビットマップパターンを用いて一括書き込みを行うことを特徴とする方法である。
【００２８】
請求項２３の発明は、請求項１７乃至２２のいずれかに記載された描画処理方法の各処理手順をコンピュータに実行させるためのプログラムである。
【００２９】
【発明の実施の形態】
本発明を添付する図面とともに示す以下の実施形態に基づき説明する。
以下の各実施形態には、ページメモリの指定範囲に指定濃度に対応するビットマップパターンをタイル状に敷き詰めるように書き込む描画処理において、処理の高速化を目的とする本発明の画像処理装置、描画処理方法に係わる実施形態を示す。ここでは、プリンタ等の画像出力装置を実施装置例として、その実施形態を示す。なお、実施装置として、プリンタにおけるような紙媒体への出力以外のディスプレイ等の媒体へ画像を出力する装置に実施してもよい。
また、この描画処理をプリンタシステムにおいて実施する場合、既存のレーザプリンタの一部に見られるようにプリンタ側の処理として行う場合には、例えばプリンタコントローラに、また、インクジェットプリンタの一部に見られるようにホストコンピュータ側の処理として行う場合には、プリンタドライバに、処理に必要な機能を搭載させることにより実施することができる。プリンタコントローラ或いはプリンタドライバで実施する場合には、これらを駆動するコンピュータ（CPU）に以下の実施形態に示す描画処理方法の各処理手順を実行させるためのプログラムを搭載することにより、必要な機能を実現することができる。
【００３０】
「実施形態１」
この実施形態は、描画処理の高速化を図るために、同一ビットマップパターンが適用可能な隣接する描画指定範囲に対して、描画範囲への書き込みを一括して行うことを可能にするもので、一括処理のために濃度変換テーブル(BLT ：Bitmap Line Table)を導入し、同一ビットマップパターンを繰り返して用いる際の処理の効率化を図る。
図１は、本実施形態の画像出力装置の概略構成を示す図であり、同図を参照して本実施形態を説明する。
図１に例示する画像出力装置は、描画データ出力装置１と印字装置１２よりなり、描画データ出力装置１内には、描画命令入力部２、描画命令演算部３、BLT検索部４、BLT作成部５、描画処理部６、ビットマップパターン検索部７、ページメモリ１０、CPU１１を有する。
図１に例示する画像出力装置の動作を描画処理の流れに沿って、その概略を以下に説明する。描画データ出力装置１に入力された画像データの図形描画命令を受け取る描画命令入力部２は、入力された命令から描画用データを解釈し、解釈の結果として得られる描画範囲と濃度値の組で表わされる描画図形を描画命令演算部３に渡す。
描画命令演算部３は、受け取った全描画図形に含まれる副走査方向Y座標範囲（なお、X-Y描画座標系の設定を、主走査方向がX座標、副走査方向がY座標となるようにする）を調べ、各Y座標に含まれる全図形をX座標で並べ替える。ここで、描画対象となるY座標と各図形（X座標で描画範囲を指示）の濃度値がBLT検索部４に入力される。BLT検索部４は、入力されたY座標内（主走査ライン上）で入力濃度値と同一のビットマップパターンを持つ濃度値を、予めBLT作成部５で作成されている濃度変換テーブル：BLT（後記で詳述)を用いて取得し、それを描画命令演算部３に戻す。描画命令演算部３では、BLT検索部４にて得られた濃度値と同一の隣り合う図形の全X座標範囲を計算し、結果を濃度値と共に描画命令描画部６に渡す。
描画命令描画部６では、受け取った濃度値をビットマップパターン検索部７に入力し、ビットマップパターンを取得し、そのビットマップパターンと、描画命令演算部３より濃度値と共に受け取ったX座標範囲と、そこに対応するページメモリ１０の内容を用いて、ページメモリ１０に対する演算をCPU１１により行い、その演算結果に従ってページメモリ１０を変更する。
ページメモリ１０への全ラインの書き込みが完了すると描画命令終了または出力装置への出力命令が出され、この命令により、ページメモリ１０の内容を印字装置１２に出力する。
なお、本実施形態では、ページメモリ生成までの演算処理にCPUを用いた例を示したが、プリンタ側のCPUを用いたソフトウェア処理ではなく、グラフィックアクセラレータ等の専用ASICに対し本発明を適用することにより、この処理を実施することが可能であり、この方式によって処理の高速化が図られる場合もある。
【００３１】
ここで、一括描画処理に用いる濃度変換テーブル(BLT ：Bitmap Line Table)について詳細に説明する。
先ず、 描画処理の対象となる入力図形（図形描画命令）を図２に示す例により説明すると、入力図形は画像イメージなどで一般的に使用される格子状に並んだ画素により画像を構成し、同図には、隣り合う各画素をSとして表している。ここでは、それぞれ濃度値の異なる3つの画素からなる描画図形とし、それぞれをS1，S2，S3とする。S1，S2，S3の図形座標PをそれぞれP1，P2，P3 とし、P1＝（5，5）−（9，9） を右上、左下対角とする矩形、同様に P2＝（10，5）−（14，9）、P3＝（15，5）−（19，9） とする。なお、図形が描画される座標上の任意の位置を（Px，Py）と表わす。
描画図形S1，S2，S3の濃度値LをそれぞれL1，L2，L3 とする。L1，L2，L3はいずれも中間濃度とする。濃度値Lは8bitで表現可能な0〜255の整数値とし、その整数値がそのまま濃度（明るさ）を示すとする。このような描画図形のデータ構成は一般的なグレイスケール画像イメージのデータ構成である。また、LをRGB値の組み合わせを示すインデックスとすれば、256色表現可能なカラー画像イメージのデータ構造とすることも可能である。
また、入力図形（図形描画命令）に指示された濃度値Lを描画する場合には濃度に対応するビットマップパターンを用いる。ビットマップパターンとしては既存のディザパターンを用いることができる。
図３は、本実施形態に用いるビットマップパターンを例示するものであり、図２の濃度L1，L2，L3 に対応するビットマップパターンB1，B2，B3と、濃度0％を示すB0（全ビットOFF）と濃度100％を示すB4（全ビットON）を示す。ビットマップの幅をBw、高さをBhと表わす。各濃度のBw、Bhは同一とし、ここではBw＝Bh＝3、つまり3×3のビットマップとする。また、ビットマップパターン座標上の任意の位置を（Bx，By）と表わす。
【００３２】
濃度変換テーブルBLTは、同一ビットマップパターンが適用可能な隣接描画範囲に対して、描画範囲への書き込みを一括して行う（同一パターンを繰り返し書き込む）ことを可能にするために用いるテーブルであり、このテーブルにより同一パターンを持つ濃度への参照を指示する。
図４は、図３のビットマップパターンB0〜B4を元に作成される濃度変換テーブルBLTである。以下にテーブルの作成手順を説明する。
一括書き込みは、主走査ライン方向（行方向）で同一パターンが繰り返し書き込まれることが条件となるので、各ビットマップパターンB0〜B4の同一行に注目することになる。つまり、図３の例では、ビットマップパターンB0〜B4のBy＝0 （1行目）〜By＝2（3行目）の各行毎にテーブルデータを作成する。  ビットマップパターンB0〜B4のBy＝0 （1行目）を対象行に作成手順を述べると、1行目の濃度の低いほう（B0）から高いほう（B4）へ隣り合うビットマップパターンを比較する。図４に示すテーブルでは、Baのb行目の値を BLT［a，b］ と表わしているので、1行目のBLT［0， 0］ には0を入れる（自分自身と同一）。B1の1行目はB0の1行目と同一（3ビットすべてOFF）なのでBLT［1， 0］にはB0を示す0を入れる。次にB2の1行目はB1の1行目と異なるので BLT［2， 0］ には自分自身を示す2を入れる。同様にB3はB2と同一なのでBLT［B3，0］ ＝ 2、B4はB3と異なるのでBLT［4， 0］ ＝4 となる。これを各行（ここでは3行目まで）繰り返すと、図４に示す濃度変換テーブルBLTとなる。
なお、上記した濃度変換テーブルBLTの作成手順では、濃度の低い側（B0）を高い側（B4）が参照するような形態でBLTを作成する実施例を示したが、逆に、高い側（B4）を濃度の低い側（B0）が参照するような形態で作成するようにしても良い。
【００３３】
このように、BLTは、B0〜B4のビットマップパターンを元に求めることができ、ビットマップパターンが変化しない限り不変で、静的な値であるので、ビットマップパターンと対で用意することも可能である。ビットマップパターンと対に用意する場合に、BLTを対にした形で常時保持することも可能であるが、必要なときにビットマップパターンを元に計算して求めることができるので、常時保持せずに、装置の立ち上げ時（システム起動時の初期化処理を行う時）に1度だけ計算して、システム終了まで使用することも可能である。このようにすると、常時保持しておくために必要になる不揮発性メモリの容量を節約でき、また、描画命令が発せられた度毎に計算するような場合よりも処理を高速化できる。
上記したBLTを用いる方式によると、各ビットマップパターンBのデータの持ち方（用意のし方）にも変更が生じる。従来では通常の方法として行われていた、濃度Lに対応する各ビットマップパターンBの全画素（図３に示す3×3のビットマップ）が得られるのであれば、濃度Lが頻繁に変化しても、任意の位置Pに対する描画が可能である。ここで提案したBLTは、あるビットマップパターンBのY座標Byに注目した場合、ビットマップパターンBの全数（図３でB0〜B4の5つ）より少ないパターンで描画可能であることを示している。例えば図４の2行目を見るとB1，B2，B3の2行目は同一なので、必要なBはB0，B1，B4の3つである。同様に1，3行目も必要なBは3つである。ただし、ビットマップパターンBのY座標Byが描画座標Pyより一意に決められることが前提となる。これは、ビットマップパターンをタイル状に敷き詰めるように描画するために、必要な条件である。
なお、一括描画処理の対象となる図形は、本実施形態に示すように矩形パターンにより表現されるビットマップパターンという一般的なパターンを採用するので、ユーザやアプリケーションが指定するアイコンやビットマップ等比較的単純なパターンを敷き詰める場合に有効である。
【００３４】
次に、BLTを用いた一括描画処理について、その処理フローの一例を示す図５を参照して詳細に説明する。図５に例示する処理フローは、図２の描画図形を描画する際に、図３、４にそれぞれ示したビットマップパターン及びBLTを用いて処理するためのフローである。
一本の主走査ライン（X軸）を処理単位として、順次ライン位置を変え（副走査軸：Y軸方向に）ながらライン毎に描画処理を繰り返すという方法により行うので、図５に示すように、先ず、図形が描画される範囲の座標位置Pyとその位置に描画するビットマップパターンを関係づける座標計算を行う（Step1）。これは、描画図形S1，S2，S3をページメモリに描画する際に、Y軸上の指定座標Py上の描画に使用するビットマップパターンBのY座標位置Byを求める計算である。
ここでは、ビットマップパターンはタイル状に敷き詰めるように描画するので、Byは以下の式により計算する。
By ＝ （Py ％ Bh） ＋ Byoffset
この式で、％演算は余り、Bhはビットマップパターンの高さを表わし、原点Byoffsetはページメモリの原点P＝（0，0） に対応するオフセットとなる。以下では、簡単のためByoffset＝0、つまりページメモリ原点に対応するBも（0，0） であり、ページメモリ原点からビットマップパターンがタイル状に敷き詰められる、という条件を置くことにする。
この計算式を、図２の例に適用すると、図形S1，S2，S3が描画範囲であるから、Py＝5、ビットマップパターンの高さ：Bh＝3なのでBy＝2（即ち、3行目）となる。以降のStepでの例では、副走査軸：Y軸方向に全図形座標PのPyの最小値5から最大値10までを順に処理していく。
【００３５】
次に、図形Sの主走査ラインの始点X座標PxをPsxとして保存し、図形Sの濃度Lに対応するBlのBLT値であるBLT［Bl，By］をBsとして保存する（Step2）。Psxは後記Step5での描画範囲の始点となり、Bsは Step3，4 で行われる同一BLT値を持つ図形Sを検索する際の比較対象値となる。Step2の処理を図２の例に適用すると、図形Sを図２の開始図形S1とすると、Py＝5上の開始X座標は Px ＝ 5 であるから、これを Psx  として保存し、S1の濃度L1に対応するBLT値は、B1の3行目、即ちBLT［1，2］＝0 であるから、 Bsに0を保存する。
この後、Step2で処理対象にした図形Sの終点のX座標PxをPexとして保存し、次の図形Sを対象とする処理に移行する（Step3）。Pexは後記Step5での描画範囲の終点となる。
次いで、新たな処理対象図形Sに対して、直前図形Sと隣接しており、かつ、図形SのBLT値が直前図形SのBLT値であるBsと同じか、否かを確かめる（Step4）。このチェック中の直前図形Sと隣接しているか、否かの判断は、直前図形の終点X座標：Pexの次の座標値“Pex＋1”が現処理対象図形Sの始点X座標と同じであるか、否かにより判断可能である。X座標が同一と判断され、さらに、BLT値が同じであれば（Step4-YES）、隣接図形に同じ行パターンを用いると判断できるので、これらの図形範囲を一括して描画することが可能となる。手順としては、Step4で隣接図形に同じ行パターンを用いると判断された場合に（Step4-YES）、さらに次の図形Sを対象としてStep3，4の処理を繰り返す。
このように、同じBLT値を持つ隣接図形Sを検索していることになるStep3，4の処理を図２の例に適用すると、まずS1，S2，S3はすべて隣接している。画像イメージのデータ列では通常隣り合う図形（画素）は隣接しているのが一般的である。また、それぞれのBLT値は、Py＝5のラインでは行パターンの3行目を用いるから、BLT［1，2］ ＝ BLT［2，2］ ＝ 0， BLT［3，2］ ＝ 3 となっているので、Step4での処理図形がS2の場合はStep3に戻り、S3の場合はStep5へ進むことになる。その場合のPexは、最後にStep3を行った図形S2の終点X座標なので、Pex ＝ 14 となる。また、Bs は最後にStep2を行った図形S1のBLT値なので、Bs は 0のままである。
【００３６】
次に、同じBLT値を持つ隣接図形Sを一括処理可能な手順を経て求めた、PsxからPexまでをBsのビットマップパターンで描画する（Step5）。即ち、PsxはStep2で保存されたBLT値をBsとして持つ初めの図形Sの始点X座標が、またPexは同じBLT値をBsとして持つStep3で保存された最後の図形Sの終点X座標が、それぞれ保存されている。この時点でBsで一括して塗るべきX座標範囲が確定したことになる。描画では、BsのByにあたるライン（図３の例では3ドット分の行データ）をPsxからPexまで繰り返して描画することになるが、その始点、終点であるPsx，Pexに対応するBsx，Bexを計算する必要がある。これは上記したStep1にて、Y座標方向に計算した方法を同様に用いることができ、下記の計算式による。
Bx ＝ （Px ％ Bw） ＋ Bxoffset
この式で、％演算は余り、Bwはビットマップパターンの幅を表わし、原点Bxoffsetはページメモリの原点P＝（0，0） に対応するオフセットとなる。
この計算式を、図２の例に適用すると、Py＝5ではS1，S2を同時に描画することになるのでPsx＝5， Pex＝14 である。Bw＝3、上記したStep1におけると同様に、簡単のため原点オフセットは0としBxoffset＝0、とすると、Bsx＝2， Bex＝2となる。この結果から、描画範囲のPsx，からPexまでのBxを （Px，Bx） で表わし列挙すると、
（5，2）， （6，0）， （7，1）， （8，2）， （9，0）， （10，1）， （11，2）， （12，0）， （13，1）， （14，2）
という組み合わせで3ドットずつの繰り返しで描画することになる。図３のパターンでは、Bs は図形S1のBLT値＝ 0 であり、B0の3行目は全て白ドットであるからBxにより並びに変化が生じないが、白・黒ドットの行パターンの場合には、Bxにより並びに変化が生じる。
【００３７】
一括描画可能な方法でPsxからPexまでをBsのビットマップパターンの描画処理の一つの単位を終了したところで、未処理の図形が無く、ライン全体の処理を終了したか、否かを確認する（Step6）。ここで、図形Sが最終図形を超えていない、即ち未処理の図形があれば（Step6-NO）、Step2に戻り、1ラインの全図形が処理されるまでStep2からStep6までの処理を繰り返す。超えていれば（Step6-YES）、Step7に進む。
1ラインの全図形の描画処理を確認した後、次のラインへの処理へ移行させるために、Pyを次のPyへ更新する（Step7）。例えば、図２の例では、Pyに1加えた値である Py＝6 に更新する。
次いで、副走査：Y軸方向に描画範囲全体の処理が終了したか、否かをStep7で更新したPy値によって確認する（Step8）。このチェックは、更新したPy値が全描画図形の最大Py値を超えるか、否かにより判断する。例えば、図２の例では、描画図形の最大Py値である10を超えていなければ（Step8-NO）、Step1に戻り、次のラインの描画処理を行い、最大Py値：10を超えていれば（Step8-YES）、全処理が完了しているので、この描画処理フローの終了とする。
なお、本実施形態では、ドット階調表現ビット数 1bit ／ 1dot で説明したが2bit， 4bit， 8bit でも同様である。
また、本実施形態では、ビットマップパターンをページメモリに敷き詰めて描画する際の原点座標を（Boffsetx，Boffsety）＝（0，0）としたが、任意の座標を指定し、そこを起点とすることも可能である。
【００３８】
「実施形態２」
この実施形態は、一括描画処理のために濃度変換テーブルBLTを導入し、同一ビットマップパターンを繰り返して用いる際の処理の効率化を図るという点で、上記実施形態１と同様であるが、書き込み時のパターンへのアクセス数を少なくしてさらに処理の効率化を図るものである。このために、本実施形態では、同一パターンをシフトしながら書き込む実施形態１の方法に代えて、ワード境界パターンを用いる。ワード境界パターンは、複数個の基本ビットマップパターンを連結したものを予め用意して一括描画処理に対応するもので、連結したパターンの長さをワード境界と一致する長さとすることにより、ワード境界でパターンが途切れることがないようにする。
図６は、本実施形態の画像出力装置の概略構成を示す図であり、同図を参照して本実施形態を説明する。
図６に例示する画像出力装置は、描画データ出力装置１と印字装置１２よりなり、描画データ出力装置１内には、描画命令入力部２、描画命令演算部３、BLT検索部４、BLT作成部５、ワード境界描画処理部６′、ビットマップパターン検索部７、ワード境界パターン変換部８、ページメモリ１０、CPU１１を有する。図６に例示する画像出力装置の動作を描画処理の流れに沿って、その概略を以下に説明する。描画データ出力装置１に入力された画像データの図形描画命令を受け取る描画命令入力部２は、入力された命令から描画用データを解釈し、解釈の結果として得られる描画範囲と濃度値の組で表わされる描画図形を描画命令演算部３に渡す。
描画命令演算部３は、受け取った全描画図形に含まれる副走査方向Y座標範囲を調べ、各Y座標に含まれる全図形をX座標で並べ替える。ここで、描画対象となるY座標と各図形（X座標で描画範囲を指示）の濃度値がBLT検索部４に入力される。BLT検索部４は、入力されたY座標内（主走査ライン上）で入力濃度値と同一のビットマップパターンを持つ濃度値を、予めBLT作成部５で作成されている濃度変換テーブルBLT（実施形態１、参照)を用いて取得し、それを描画命令演算部３に戻す。
描画命令演算部３では、BLT検索部４にて得られた濃度値と同一の隣り合う図形の全X座標範囲を計算し、結果を濃度値と共にワード境界描画処理部６′に渡す。
ワード境界描画処理部６′では、受け取った濃度値をワード境界パターン変換部８経由でビットマップパターン検索部７に入力し、そこから取得したビットマップパターンに基づいて濃度値に対応するワード境界ビットマップパターンを作成する処理をワード境界パターン変換部８に指示する。ワード境界描画処理部６′は、ワード境界パターン変換部８によって作成したワード境界ビットマップパターンと、描画命令演算部３より濃度値と共に受け取ったX座標範囲と、そこに対応するページメモリ１０の内容を用いて、ページメモリ１０に対する演算をCPU１１により行い、その演算結果に従ってページメモリ１０を変更する。
ページメモリ１０への全ラインの書き込みが完了すると描画命令終了または出力装置への出力命令が出され、この命令により、ページメモリ１０の内容を印字装置１２に出力する。
【００３９】
ここで、上記したワード境界パターン変換部８で行うワード境界パターンの変換（作成）処理について詳細に説明する。
図７は、基本ビットマップパターンとワード境界パターンの一例を示すものである。以下に、図７を参照して、ワード境界パターン変換部８で行うワード境界パターンの作成処理を説明する。
本実施形態でも、対象とする入力図形、濃度に対応するビットマップパターン（基本パターン）及び濃度変換テーブルBLTは、実施形態１と同様とする。即ち、入力図形を図２に示すものとし、基本ビットマップパターンは図３に示すパターンを、BLTは図４に示すテーブルを再度用いる。
また、本実施形態では、1ワードを32ドットとし、基本ビットマップパターンの幅Bwを3とし（図３参照）、この基本ビットマップパターンを繰り返し複数個配置し、ワード境界パターンとして作成する。ワード境界パターンは、ワード境界でパターンが途中で区切られないように配置する必要があり、そのためにはパターン幅とワード長（ドット数）の最小公倍数をとることになる。ここではBw＝3とワード長＝32の最小公倍数である96ドット、3ワードとなる。
この原則をビットマップパターンB3に対して適用した実際のパターンを図７に例示しており、1ワード目、2ワード目、3ワード目としてB3を繰り返すことにより、整数個の基本ビットマップパターンを配置することができる。例えば、B3の1行目(By=0)のパターンのワード境界パターンは、W0[0]、W1[0], W2[0] （なお、3ワードからなるワード境界パターンの各行パターンの表記をW(ワード数−1)[行数−1]で表わす）の繰り返しとなる。これと2，3行目を含めた W0[0〜2], W1[0〜2], W2[0〜2] の全9ワード、幅96ドット、高さ3ドットがパターンB3のワード境界パターンWB3として、連続したアドレスのメモリ領域に格納する。
【００４０】
このようにして作成されたワード境界パターンは、元のビットマップパターンの繰り返しのワード単位での最小単位でもある。つまり、このワード境界パターンをタイル状に敷き詰めて描画することと、元のビットマップパターン（図３）を敷き詰めて描画することは同じ結果となる。これは、上記実施形態１におけるように、元のビットマップパターンを繰り返し使用してページメモリに敷き詰める際に必要なシフト演算が、ワード境界パターンではワード単位でそのままページメモリとの演算に使えるので不要、或いは少なくすることができる。
また、上記したワード境界パターンを用いた描画処理の手順であるが、この処理のフローは、基本的に先に示した一括描画処理のフロー（図５）を適用することにより、実施形態１におけると同様に実施することが可能である。
ただし、図５に示した処理フローにおけるStep5、即ち、同じBLT値を持つ隣接図形Sを一括処理可能な手順を実行するために求めた、PsxからPexまでをBsのビットマップパターンで描画するステップにおいて、ページメモリに敷き詰めるために用いるビットマップパターンとして、基本パターンに代えてワード境界パターンを用いることになる。
従って、一括して塗るべきX座標範囲Psx，Pexに対応するビットマップパターンの座標Bsx，Bexを計算する際に、連続したアドレスのメモリ領域に格納したワード境界パターンワードを定義する座標上で座標を指示する演算となる。ワード境界パターンを用いる場合には、ワード単位（図７の例では、96ドット）で座標を指定することになるので、基本パターンの構成単位（図５の例では、3ドット）に比べてシフト演算が少なくてすみ、処理を簡略化することが可能になる。
なお、本実施形態では 32bit / 1ワードで説明したが1ワードが 16bit や 64bit でも同様に実施することが可能である。
【００４１】
「実施形態３」
この実施形態は、一括描画処理のために濃度変換テーブルBLTを導入し、同一ビットマップパターンをワード長で繰り返すワード境界パターンを用い処理の効率化を図る上記実施形態２の改良に係わるものである。改良点は、作成したワード境界パターンを格納するキャッシュメモリと、このキャッシュメモリに格納するワード境界パターンの管理手段を設けた点にある。上記実施形態２では、作成したワード境界パターンを再度用いることを考慮していなかったが、本実施形態では、キャッシュメモリで格納・管理し、その後の描画処理時に同一パターンの作成処理を省略し、そのパターンの描画処理への対応を迅速に行うことにより、処理の高速化を図るようにするものである。
図８は、本実施形態の画像出力装置の概略構成を示す図であり、同図を参照して本実施形態を説明する。
図８に例示する画像出力装置は、描画データ出力装置１と印字装置１２よりなり、描画データ出力装置１内には、描画命令入力部２、描画命令演算部３、BLT検索部４、BLT作成部５、ワード境界描画処理部６′、ビットマップパターン検索部７、ワード境界パターン変換部８、ワード境界パターン検索部１３、パターンキャッシュメモリ１４、ページメモリ１０、CPU１１を有する。
図８に例示する画像出力装置の動作を描画処理の流れに沿って、その概略を以下に説明する。描画データ出力装置１に入力された画像データの図形描画命令を受け取る描画命令入力部２は、入力された命令から描画用データを解釈し、解釈の結果として得られる描画範囲と濃度値の組で表わされる描画図形を描画命令演算部３に渡す。
描画命令演算部３は、受け取った全描画図形に含まれる副走査方向Y座標範囲を調べ、各Y座標に含まれる全図形をX座標で並べ替える。ここで、描画対象となるY座標と各図形（X座標で描画範囲を指示）の濃度値がBLT検索部４に入力される。BLT検索部４は、入力されたY座標内（主走査ライン上）で入力濃度値と同一のビットマップパターンを持つ濃度値を、予めBLT作成部５で作成されている濃度変換テーブルBLT（実施形態１、参照)を用いて取得し、それを描画命令演算部３に戻す。
描画命令演算部３では、BLT検索部４にて得られた濃度値と同一の隣り合う図形の全X座標範囲を計算し、結果を濃度値と共にワード境界描画処理部６′に渡す。
【００４２】
ワード境界描画処理部６′では、受け取った濃度値とBLTで取得したビットマップパターンBのY座標位置Byを検索キーとしてワード境界パターン検索部１３を用いて、この対象のワード境界パターンが既にパターンキャッシュメモリ１４に格納されているかどうかを検索する。
キャッシュされていれば、キャッシュメモリ１４からそのワード境界パターンをワード境界描画処理部６′に返す。キャッシュされていなければ、ワード境界描画処理部６′では、受け取った濃度値をワード境界パターン変換部８を介してビットマップパターン検索部７に入力し、そこから取得したビットマップパターンに基づいて濃度値に対応するワード境界ビットマップパターンを生成する処理をワード境界パターン変換部８に指示する。なお、ここで行うワード境界ビットマップパターンを生成する処理は、上記実施形態２に示したと同様の処理による。
ワード境界描画処理部６′は、キャッシュメモリ１４から取得するか、或いはワード境界パターン変換部８によって生成するかしたワード境界ビットマップパターンと、描画命令演算部３より濃度値と共に受け取ったX座標範囲と、そこに対応するページメモリ１０の内容を用いて、ページメモリ１０に対する演算をCPU１１により行い、その演算結果に従ってページメモリ１０を変更する。
ページメモリ１０への全ラインの書き込みが完了すると描画命令終了または出力装置への出力命令が出され、この命令により、ページメモリ１０の内容を印字装置１２に出力する。
【００４３】
ここで、上記したワード境界パターン検索部１３で行うパターンの検索及び管理に係わる処理について詳細に説明する。
ワード境界パターン検索部１３によるパターンの検索方法や登録方法、破棄方法等はキャッシュアルゴリズムにより異なる方法が採用できるが、本実施形態では、参照頻度を考慮しない単純なテーブルを用い、登録も単調増加のポインタ管理による方法を用いる。もちろん、他の高度なキャッシュアルゴリズムを用いることも可能である。
従って、本実施形態のキャッシュ方式は、図９の説明図に示すような検索テーブルとキャッシュメモリを要素として構成する。検索テーブルは、濃度LとビットマップパターンのY座標Byの組み合わせを検索キーとして、キャッシュメモリへのアドレスを値とする配列メモリで構成する。キャッシュメモリは、１つの連続したメモリであり、キャッシュ先頭アドレスa は予め指定されており、その大きさ（キャッシュ最後尾アドレスc とキャッシュ先頭アドレスaの差分）も予め指定されている。このようにアドレスによる間接参照によって管理することで、任意のワード境界パターンを登録することが可能となる。
検索時、Lと Byをキーとして検索が指示されると、検索テーブルを用いてキャッシュメモリへのアドレスを調べる。検索テーブルの大きさは、（L，By）の全パターン分でも、一部分でも構わない。全パターン分持つ場合、独立した検索テーブルではなく、BLTの１属性として保持するという方法を採ることも可能である。例えば、図４に例示したBLTでは、ビットマップパターンB（濃度Lに対応）の種類数5、Byの種類数3なので、15のアドレスを保持することになる。この場合、BLT値を調べると同時にキャッシュメモリへのアドレスがわかるので、検索の手間が省けることになる。とりうる種類数が多く、メモリ使用量の制約があれば、検索の手間が入るが一部分でも構わない。
【００４４】
検索の結果、検索テーブルのアドレス部に有効アドレスが存在すれば、既にキャッシュ内に存在することを示しているので、そのアドレスを直接、返り値として返す。アドレス部に無効アドレス（ゼロ等）があれば、未登録であることが分かるので、この場合には、ワード境界パターン変換部８を用いてパターンを作成し、結果をキャッシュメモリに登録する。
登録の処理は、検索テーブルの無効アドレスが入った部分にキャッシュ登録最後尾アドレスbを格納し、返り値として返す。その後、最後尾アドレスbを登録サイズ分増加させる。この登録の際に、キャッシュ登録最後尾アドレスbとキャッシュ最後尾アドレスcの差分と、これから登録されるサイズから、キャッシュが溢れるかどうかを調べ、溢れるようであれば、キャッシュのクリアを行う。本実施形態では、頻度情報なしの単調増加アドレスなので、キャッシュ溢れの際は登録内容すべてのクリアとする。その際は、検索テーブルのアドレス部をすべて無効アドレスに変更し、キャッシュ登録最後尾アドレスbにキャッシュ先頭アドレスaと同じ値を代入する。
このようにしパターンキャッシュメモリ１４に格納された中から取り出したワード境界パターンを用いて実施形態２と同様に、基本パターンを単位にシフトを行うことなくワード単位で書き込みを繰り返すことで描画が可能となる。
なお、本実施形態では、ワード境界パターン検索部１３の検索結果によりキャッシュされていないパターンについては、ワード境界パターン変換部８により濃度値に対応するワード境界ビットマップパターンを生成するようにしているが、全ての濃度に対応してワード境界ビットマップパターンをキャッシュするような仕組みを採用すれば、ワード境界パターン変換部８を省略する構成とすることも可能である。
【００４５】
「実施形態４」
ここには、濃度Lに対応するビットマップパターンと、一括描画処理のために本発明で導入した濃度変換テーブルBLTに係わる実施形態を示す。
本発明では、ページメモリ上の指定範囲を指定濃度で塗りつぶす図形描画命令の入力に対し、指定濃度に対応するビットマップパターンにより指定範囲をタイル状に敷き詰める描画処理を行う。その時に、上記各実施形態でも例示したように、ビットマップパターンとしてディザパターン（図３、参照）を用いる。ディザパターンとしては、各種のパターンがあるが、本実施形態では、ディザパターンの種類として、描画対象となる図形の種類（文字、グラフィック、イメージ等）毎に用意し、用意した複数種のディザパターンを描画命令に指示される図形の種類に応じて切り替えるようにする手段を有して、適切なパターンで対応する。なお、この切り替え手段は、既存の手段を適用することにより実施することが可能である。
ディザパターンは、ビットマップとして必要とする全てのパターンを保持するようにする方法で実施しても良いが、この方法によると大容量のメモリを必要とすることになる。そこで、メモリ容量を低減する方法として、予め用意するのはオーダテーブルとしての閾値テーブルとし、閾値テーブルを用いて、使用時に濃度値に対応するパターンを作成することにより実施する方法を採用する。閾値テーブルは、当然、ディザパターンの種類毎に異なるテーブル値を持つものである。
また、本発明における一括描画処理に利用する濃度変換テーブルBLTは、実施形態１にて詳述したように、ディザパターンに基づいて作成されるものであるが、このBLTをディザパターンが元にする閾値テーブルから直接求めることができるようにして、ディザパターン、BLTの双方の処理を可能にし、しかもBLTの場合、閾値テーブルから直接求めることによりディザパターンから求めるよりも簡略に行うことができるようにするものである。なお、このBLT作成処理は、上記各実施形態においては、BLT作成部５が受け持つ。
【００４６】
図１０は、閾値テーブルとディザパターンの具体例を示すもので、図１０の（A）は濃度値に0から4の5段階を有する場合に適用する閾値テーブルの例である。指定された濃度値L以上の画素がON、それ以外はOFFとなる。図１０（A）のテーブルを用いて、例えば濃度値L=3が指定された場合には、図１０（B）に示すディザパターンが作成される。例示した図１０（A）の閾値テーブルは図３のディザパターンの閾値を示すものであり、図１０（B）は図３のL3に相当するB3のビットマップパターンに他ならない。L＝0〜4を適用すると図３の全ディザパターンが作成可能であることは自明である。
次に、図１０（A）の閾値テーブルからBLTを作成する方法を説明する。閾値テーブルの任意の行Oyに着目し、最小濃度(L＝0)、最大濃度(L＝4)を含め、全列(0≦Ox≦2) の O[x，y] を低い値から高い値へソートする。同値は無視する。隣り合った値をLa，Lbとし、両端とする範囲内 [La，Lb] (Lb含まず)のBLT値を La （小さいほうの値） とする。例えば、1行目の値2，4，4、を0，4を含めてソート（同値は無視）すると0，2，4となるので、L＝0, 1のBLT値が0、L＝2，3 のBLT値が2、L＝4のBLT値が4となり、図４に示すBLTの1行目のテーブル値（0，0，2，2，4）となる。これを全行(1〜3行目）繰り返す。
また、ソートを用いず次の方法でも作成可能である。閾値テーブルの任意の行Oyに着目し、最小濃度(L＝0)から最大濃度(L＝4)まで濃度値Lを変化させ、ある濃度値Lに対して全列(0≦Ox≦2) の O[x，y] と比較する。また、BLT値登録用としてLminを用意する。Lminの初期値は最小濃度（L＝0）とする。Lと同値のO[x，y] が１つでもあればそのLをLminとし、同値があるなしに関係なくその時点のLminをそのLに対応するBLT値とする。例えば、図１０（A）の1行目をL＝0、Lmin＝0から開始すると、全列すべてLとは異なる値なのでBLT[0，0]にはそのままLminの値の0が入る。L＝1も同様にBLT[1，0]＝0となる。L＝2では同値がある(O[0，0])のでLmin＝2となり、BLT[2，0]＝2 となる。L＝3では同値がないのでLminの値の2が入る。L＝4では同値があるのでLmin＝4となり、BLT[4，0]＝4となる。
一意の閾値テーブルから一意のディザパターンが得られ、そのディザパターンから一意のBLTが得られる。図１０（A）から得られるディザパターンが図３であり、図３から図４のBLTが得られるのであれば、図１０（A）から上記２方法で計算されるBLTはどちらも図４と同一であることは自明である。
なお、本実施形態の上記説明では、濃度階調の少ない例を示したが、同様の方法により、指定される濃度として8ビットで表現される0〜255の階調に対応して実施することも可能である。また、指定される濃度が一般にカラー印刷に用いられるCMYK色用の色濃度である場合に、ビットマップパターンとして、疑似階調を表現するCMYKそれぞれのディザのパターンを適用し、本実施形態の上記説明に示したと同様の方法を用いることによりカラー印刷の描画処理へ実施することが可能である。
【００４７】
「実施形態５」
この実施形態では、描画処理の高速化を図るために、同一ビットマップパターンが適用可能な隣接する描画指定範囲に対して、描画範囲への書き込みを一括して行うことを可能にするさらに他の手順を用いる。ここでは、一括処理の条件として描画指定範囲の指定濃度が同一であるという条件にあれば、該当する範囲全体を一括して同一濃度で描画するという処理を優先して行うことにより、濃度変換テーブルBLT を導入した上記各実施形態を迂回して、さらに処理の効率化を図ることを可能にするものである。
本実施形態の処理の適用対象となる入力図形（図形描画命令）を図１１に示す例により説明する。図１１は、上記実施形態１で示した図２と同様の表現方法により、入力描画図形を示す。図１１のS1，S2の部分の濃度がL1であり同濃度の場合の描画処理である。上記実施形態１（図２、参照）では、画素毎の濃度に対するBの値と描画ｙ座標を元にBLT値（図４、参照）を求め、BLT値が同一であれば、一括して描画するという処理をしており、隣接図形で濃度L1，L2，L3が違う場合の一括処理を意図するものであったが、ここでは隣接図形の濃度が同じで、濃度自体が同じであれば、BLT値の同一を調べるまでもなく、含まれるｙ座標すべてにおいてBLT値は同じであることは自明であり、その場合に対応するものである。
従って、実行の手順としては、先ず濃度を比較し、同一であれば、BLT値のチェックをする以前の段階で、一括描画による処理を行うようにする。図１１のS1，S2の部分の濃度がL1であるから、S1，S2の部分を一括描画する。S1，S2の次の図形であるS3は、濃度L3で、異なる。この場合には、上記実施形態１のようにBLT値を求めて、一括描画できる範囲を決定する。S3部分の濃度L3とS1部分の濃度L1それぞれのBLT値を求め、同一であれば、S1，S2，S3の範囲でまとめて描画可能である。異なれば、S1，S2の部分をL1、S3の部分を濃度L3の各ビットマップで描画することになる。
このように初めに画素毎の濃度（色濃度）で同濃度かどうかを比較判定することで、BLT値の演算を省略することが可能となる。
また、指定濃度の同一チェックを行い、その結果による一括描画を優先させる上記処理において、クリップが設定された場合の描画処理に係わる実施形態を以下に説明する。
図１２は、任意図形のクリップ領域（ここでは、同図中Clipと示している網点掛けした三角形部分のみを描画対象とする）が指定された場合の図である。このようなクリップ領域が設定された場合、現在描画しようとしている場所がクリップ領域内なのか、領域外なのかを判定しながら描画する。例えば、y＝5において主走査（X軸）方向に描画する場合、クリップX範囲を [0, 17] とすると、S1画素はクリップ範囲内、S2画素はクリップ範囲内、S3画素は [15，17] までが範囲内で、 [18，19] は範囲外などのように画素毎に判定しながら描画処理を行う。このような方法によると、画素毎にクリップ範囲判定が必要となり、画素の多い画像イメージの場合などは判定処理の負担は無視できない。
この場合、図１１を用いて説明した処理の過程で、同一濃度であり同じビットマップパターンで一括描画処理が可能であると指定した範囲を単位としてクリップ範囲判定を行うことでクリップ範囲判定処理の負担を低減でき、処理時間を短縮化することが可能になる。
【００４８】
【発明の効果】
（１）  請求項１，２，１７，１８の発明に対応する効果
隣接する描画指定範囲に用いるビットマップパターンの異同を判断し（同一濃度を参照する濃度変換テーブルBLTを利用）、判断結果に従い同一ビットマップパターンが適用できる描画指定範囲を連結させてページメモリ上の描画範囲を指定し直すことにより、隣接する描画指定範囲に対する一括書き込みを行うようにしたので、描画処理を高速化することが可能になり、写真画像のように階調変化の緩やかな画像の処理に有効な手法を提供し得る。
（２）  請求項３の発明に対応する効果
指定濃度に対応するビットマップパターンが使用途中で変化することのない静的データであれば、濃度変換テーブルBLTもまた静的データであることから、BLTの作成をページ処理毎やジョブ処理毎に作成するのではなく、ビットマップパターンと共にデータをあらかじめ装置内に持つか、或いは装置起動時に一度だけBLTの作成を行うようにし、作成にかかる処理時間を省くことにより、高速化を可能にする。
【００４９】
（３）  請求項４，１９の発明に対応する効果
複数の図形に対する描画命令に従って同一ビットマップパターンの繰り返しによりページメモリ上を一括書き込みする際に、ビットマップパターン１つ１つに対しパターン幅をシフトしながら塗りつぶすのではなく、ワード境界パターンを用いてワード単位で単一ワードまたは複数ワードを繰り返し塗りつぶす方法をとることにより、シフト演算が不要であり、かつ、メモリアクセス数も減少するので、描画処理のさらなる高速化が可能になる。
（４）  請求項５の発明に対応する効果
ワード境界パターンを行（ライン）毎に連続したメモリ内に配置することで、次ラインへのアドレス移動がワード境界パターンのワード幅分を移動するように定数を加算するだけとなるで、描画処理のさらなる高速化が可能になる。
【００５０】
（５）  請求項６，７，２０の発明に対応する効果
一度作成したワード境界パターンはキャッシュされるので、同一パターンの再使用の際にはこの作成手順を省略可能となるので、描画処理の高速化を図ることが可能になる。しかも、濃度値とビットマップパターンの行座標を属性情報として付加し、該属性情報を用いてキャッシュ管理を行うことにより、任意の幅、高さのパターンをキャッシュへ登録することができ、画像データ内で使用される全種類の矩形パターンの塗りつぶし処理でキャッシュに登録されたデータを再使用することが可能となるので、さらに高速化が可能になる。
（６）  請求項８の発明に対応する効果
キャッシュに必要な総メモリ量をあらかじめ指定できることで、描画処理を行う画像処理装置のメモリ量に応じた調整をすることが可能となる。
（７）  請求項９，２１の発明に対応する効果
隣接する複数の図形を、個々に指定された濃度に対応するビットマップパターンで描画する際に、個々の図形単位で描画処理するのではなく、ページメモリの主走査（X座標）方向のライン単位で描画処理し、BLTを用いてそのラインに対応するビットマップパターンが同一である濃度値を使い、隣接する図形が同一濃度値であれば、一括描画処理を行うことで高速化が可能になる。特に、画像イメージなどに見られる、矩形の画素が隣接して隣り合う描画データに有効である。
【００５１】
（８）  請求項１０〜１２の発明に対応する効果
ディザパターンは1画素での階調表現能力の低い描画処理において、ドットの集合パターンを使うことで疑似階調を表現するために用いられ、通常、パターンは指定可能な濃度種類数（通常8ビットで表現可能な0〜255の256通り）分のビットマップであり、それをタイル状に敷き詰めることで描画される。このディザパターンが請求項１〜９の発明における指定濃度に対応するビットマップパターンに適用可能であり、適用することにより疑似階調処理において上記（１）〜（７）の効果を実現することが可能になる。また、この効果は、複数のディザパターンの描画を必要とする、描画対象図形の種類（文字、グラフィック、イメージ等）毎にディザパターンの切り替えをする描画処理或いはCMYKの各色成分のカラー描画処理に適用することによっても得られる。
（９）  請求項１３，１４の発明に対応する効果
ディザパターンをオーダテーブルとしての閾値テーブルに基づいて作成するようにしたので、ビットマップとして用意するよりメモリ容量が小さくてすむ。
また、BLTの作成にあたり、ディザパターンから作成するにはビットマップの比較が必要になるが、閾値テーブルから作成するときには濃度値の比較となるので、閾値テーブルを使用する場合のほうが、BLT作成時間を短縮することが可能になる。
【００５２】
（１０）  請求項１５，２２の発明に対応する効果
濃度値が同一であればBLT値も同一であるので、BLT値を参照する前に濃度値を比較し、濃度値が同一であればBLTを参照することなく、一括描画することが可能となるので、描画処理の高速化が図れる。
（１１）  請求項１６の発明に対応する効果
クリップ領域が設定されている場合、各画素単位でクリップ範囲判定を行うのではなく、濃度値とBLTを用いて同色と判定された単位でクリップ範囲判定を行うことで、判定処理の負担が軽減され、描画処理の高速化が可能になる。
（１２）  請求項２３の発明に対応する効果
請求項１７乃至２２に記載された描画処理方法の各処理ステップを実行するためのプログラムをコンピュータに搭載することにより、上記（１）、（３）、（５）、（７）、（１０）の効果を容易に具現化し、また、該効果を奏する画像処理装置を提供することが可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態１に係わる画像出力装置の概略構成を示す図である。
【図２】描画処理の対象となる入力図形S1，S2，S3（濃度L1，L2，L3）を示す説明図である。
【図３】濃度L0〜L4に対応するビットマップパターンB0〜B4の一例を示す。
【図４】ビットマップパターンB0〜B4（図４）を元に作成される濃度変換テーブルBLTである。
【図５】本発明の実施形態１に係わるBLTを用いた一括描画処理の処理フローを示す。
【図６】本発明の実施形態２に係わる画像出力装置の概略構成を示す図である。
【図７】本発明の実施形態２に係わるワード境界パターンWB3の一例を示す。
【図８】本発明の実施形態３に係わる画像出力装置の概略構成を示す図である。
【図９】本発明の実施形態３に係わるキャッシュ方式を説明する図である。
【図１０】本発明の実施形態４に係わる閾値（オーダ）テーブルとディザパターンの具体例を示す。
【図１１】本発明の実施形態５に係わる描画処理における入力図形S1，S2，S3（濃度L1，L3）を示す説明図である。
【図１２】図１１において、クリップが設定された場合の描画処理を説明する図である。
【符号の説明】
１…描画データ出力装置、            ２…描画命令入力部、
３…描画命令演算部、                ４…BLT検索部、
５…BLT作成部、                    ６…描画処理部、
６′…ワード境界描画処理部、        ７…ビットマップパターン検索部、
８…ワード境界パターン変換部、    １０…ページメモリ、
１１…CPU、                        １２…印字装置、
１３…ワード境界パターン検索部、    １４…パターンキャッシュメモリ。
【図１】
2004164549.tif 000003
【図２】
2004164549.tif 000004
【図３】
2004164549.tif 000005
【図４】
2004164549.tif 000006
【図５】
2004164549.tif 000007
【図６】
2004164549.tif 000008
【図７】
2004164549.tif 000009
【図８】
2004164549.tif 000010
【図９】
2004164549.tif 000011
【図１０】
2004164549.tif 000012
【図１１】
2004164549.tif 000013
【図１２】
2004164549.tif 000014