JPH11227301A - 印刷装置のデータ処理方式 - Google Patents

印刷装置のデータ処理方式

Info

Publication number
JPH11227301A
JPH11227301A JP10037517A JP3751798A JPH11227301A JP H11227301 A JPH11227301 A JP H11227301A JP 10037517 A JP10037517 A JP 10037517A JP 3751798 A JP3751798 A JP 3751798A JP H11227301 A JPH11227301 A JP H11227301A
Authority
JP
Japan
Prior art keywords
band
data
drawn
command
print data
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.)
Pending
Application number
JP10037517A
Other languages
English (en)
Inventor
Hajime Kikuta
元 菊田
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.)
Koki Holdings Co Ltd
Original Assignee
Hitachi Koki 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 Hitachi Koki Co Ltd filed Critical Hitachi Koki Co Ltd
Priority to JP10037517A priority Critical patent/JPH11227301A/ja
Publication of JPH11227301A publication Critical patent/JPH11227301A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Record Information Processing For Printing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

(57)【要約】 【課題】 コードデータから1ページ分のドットデータ
を作成し印刷を行う印刷装置において、大容量のビット
マップメモリにランダムにアクセスする印刷データの描
画を、高速なCPUとキャッシュメモリを有効に利用
し、描画の性能を向上させる。 【解決手段】 ビットマップメモリの一部をキャッシュ
メモリのサイズに合わせて切り出し、キャッシュメモリ
上にマッピングすることで、ビットマップメモリへのア
クセスを減らし、データ編集部で印刷データを一旦中間
データ形式に変換し、制御情報を付加する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】上位装置から送られたコード
化された印刷データをビットマップデータに変換して印
刷するプリンタに係り、特に任意の座標に定義されたデ
ータに対し、高速のCPUとキャッシュメモリを使用し
て描画を行う印刷装置に関する。
【0002】
【従来の技術】従来、図形データなどのように、データ
内に座標指定データがありビットマップデータに変換し
た結果がビットマップメモリ上の任意の位置に書き込ま
れるデータを、描画するときは、1ページ分のビットマ
ップメモリを用意して、データ順にビットマップメモリ
へ描画する方法、1ページの1部分のみのビットマップ
メモリを用意し、1ページ分の印刷データを1ページの
1部分のみのビットマップメモリに格納できるように描
画座標順に編集して描画する方法があった。
【0003】
【発明が解決しようとする課題】バンドに区切らずに1
ページ分のビットマップメモリに直接描画を行う場合、
メモリのアドレスにアクセスがランダムに発生しアドレ
スが局所化されないため、キャッシュメモリからビット
マップメモリへのデータ転送が頻発し、CPUの性能を
上げてもメモリアクセスが描画性能のボトルネックにな
り性能が向上しないという問題があった。
【0004】また、1面分のビットマップメモリを持た
ず、バンドに区切って描画する方法では、バンドの個数
分データをくり返し処理しなければならず、ドット位置
を1ドットずつ求めて描画するかどうかを判定していた
ため編集処理に時間がかかるという問題があった。さら
に、1ページ分の描画データを印刷装置内に編集した形
式で一度に格納する必要があるため1ページに使える印
刷データ量に制限が生ずるという問題があった。
【0005】
【課題を解決するための手段】上記目的を達成するため
に、本発明では、1面分のビットマップメモリを用意し
その一部を高速のキャッシュメモリ上にマッピングする
事により、ビットマップメモリのアクセス頻度を減らし
描画を高速に実行でる。また、1ページ分の印刷データ
を、データ内に同一バンド内に描画するデータのリンク
情報を持つ中間データに変換することにより、ビットマ
ップメモリをくり返してアクセスする事による処理性能
の低下を最小限に押さえることができる。
【0006】さらに、中間データとして描画用の属性情
報と描画データを描画コマンド毎にまとめて格納するこ
とにより各バンドに並列に描画することが出来複雑なデ
ータでも高速に描画処理を行うことができる。
【0007】さらに、1ページの印刷データを分割し
て、分割した印刷データに対し中間データの作成と描画
を実行することができるので、1ページに描画するデー
タ量を制限する必要がない。
【0008】また、バンドにまたがるデータをバンド毎
に描画するとき、実際に1ドットずつドットデータを位
置を求めることなしにバンドに分割しない場合と同じ結
果にやるようにバンド内のみの描画パラメータを作成し
て描画処理を行うことにより、高速に描画処理を行うこ
とができる。
【0009】
【発明の実施の形態】以下本発明の実施例について説明
する。図1は本発明の構成を示したものである。上位装
置10から受信したコマンド列からなる描画データは、
データ編集部20により中間データ31と制御データ3
2とに変換される。制御データは中間データをバンド単
位に描画するために使用するデータである。1ページ分
のデータが変換されると、描画部40が中間データと制
御データを参照してキャッシュメモリ上でバンド単位に
ビットマップデータに変換し、そのデータをビットマッ
プメモリへ格納する。図1では、データ編集部と描画部
は別になっているが一つの機構で交互に実行するように
しても良い。
【0010】バンド幅は高速にアクセス可能なキャッシ
ュメモリの高速性が有効に機能するサイズに設定する。
たとえば、バンドがキャッシュメモリに全て格納できる
ように設定するときの例では、ラスタ方向のドットサイ
ズが2000ドットで、キャッシュメモリサイズが32
000バイトの時、32000×8÷2000=128
となり、128ラスタ分がキャッシュメモリに格納可能
である。各バンド幅を128ラスタを越えない値に設定
すればよい。バンド幅に128ラスタを選んだ場合、1
ページのラスタ数が1200ラスタなら1ページは10
個のバンドに分割され、最後のバンドのみ48ラスタと
すればよい。
【0011】(1)中間データの形式 図形データは、データ内に記述された座標である論理座
標を印刷するページ内の位置である物理座標変換するた
めの座標変換用のパラメータと、描画するデータを修飾
する線種、線幅、色等の属性情報、描画するデータを示
し、指定されたコマンド内でのみ有効なパラメータから
構成される。
【0012】中間データはコマンド毎に独立して描画可
能なようにコマンドで必要な属性情報をコマンド毎に設
定する。バンドにまたがったデータの描画処理で座標変
換の処理をくり返さないため、座標データは物理座標に
変換して設定する。
【0013】中間データ内のコマンドは、描画処理の単
位として適当なデータのまとまりであり、必ずしも上位
装置から受け取ったデータ内のコマンドと一致する必要
はない。また、複数のデータ形式に対し共通の中間デー
タの形式を作り、以降の処理を共通化する事もできる。
【0014】本発明では中間データの形式として、コマ
ンドに加え中間データの描画サイズと描画範囲内のバン
ド毎に次の中間データの位置情報を持つ位置情報付き中
間データと、コマンドのみ中間データの2種類の形式を
用意する。
【0015】最初に述べた、位置情報付き中間データ
は、中間データを使った描画の時バンド内にないデータ
に対して描画位置をチェックする必要がないため処理が
高速化できるという利点がある。また、コマンドのみの
中間データの場合には、中間データのサイズが小さく、
中間データの作成処理が単純化できるという利点があ
る。以下それぞれの場合について具体的に説明する。
【0016】(1−1)位置情報付き中間データの場合 図3は、位置情報付き中間データ31aの形式を示す。
データはコマンド毎に、線分、テキストなどデータの種
類を表すコマンド識別子とコマンドのデータサイズ、そ
のコマンドで使用する属性情報、コマンドの描画パラメ
ータ、からなる描画データ。それに続くそのコマンドを
描画するバンド番号の最小値と最大値で示す描画バンド
範囲と、描画バンド範囲に対応し、それぞれのバンド内
で次に描画するコマンドの格納位置を示す情報からな
る。
【0017】属性情報と描画パラメータは描画処理で使
いやすい形式に変換し格納する。特に座標データはビッ
トマップメモリ内の座標である物理座標に変換して格納
する。これにより、データのビットマップメモリでの描
画範囲が決定できる。
【0018】バンド内に描画する中間データを検索する
ために、中間データとは別に制御データとして、図5に
示すバンド毎にそのバンドに描画される最初のコマンド
の格納位置を示す開始位置と最後のコマンドの格納位置
を示す終了位置からなるバンド管理テーブル32aを設
定する。
【0019】(1−2)コマンドのみの中間データの場
合 図4は、コマンドのみの中間データ31bの形式を示
す。データはコマンド毎にデータの種類を示す識別子と
コマンドのデータサイズ、そのコマンドで使用する属性
情報、コマンドの描画パラメータからなる。それぞれの
内容はバンド毎に次の中間データの位置情報を持つ場合
と同じである。
【0020】中間データには、描画するバンド範囲を示
す情報は存在しない。そのかわり制御データとして、図
6に示すようにコマンド毎にそのデータの格納位置と描
画するバンド番号の最大値と最小値からなる、中間デー
タ管理テーブル32bを設定する。中間データ管理テー
ブルは一つのエントリが固定サイズであり直接中間デー
タを検索するより高速に検索ができる。
【0021】(2)中間データの作成処理 (2−1)位置情報付き中間データの場合 図10に処理フローを示す。ステップ301でバンド管
理テーブル32aを全てのバンドに対しそれぞれのバン
ド内に描画するコマンドがない状態に初期化する。たと
えば、バンド管理テーブルの開始位置と終了位置に中間
データ格納エリアの範囲外を示す値を設定すればよい。
【0022】次に、ステップ302で印刷データを順に
読み込み、印刷データのコマンドの種類を識別し、中間
データを作成する描画コマンドか、中間データを作成せ
ず属性情報を設定する制御コマンドかを判定する。それ
が制御コマンドならステップ306に進み属性情報を設
定する。描画コマンドの時にはステップ303に進み、
中間データ格納エリアにその描画コマンドに必要な属性
情報と描画パラメータを設定する。
【0023】次に、ステップ304に進んで、コマンド
の描画範囲を中間データの描画範囲の最大、最小のバン
ド番号で求め、その範囲のバンド管理テーブルと、中間
データのバンド毎の中間データの格納位置を書き換え
る。バンド管理テーブルの書き換えは内容は、バンドに
中間データが未登録のときには、開始位置と終了位置に
中間データの格納位置を書き込む。すでに中間データが
登録済みときには、終了位置の中間データの対応する中
間データの格納位置エリアに現在処理中の中間データの
格納位置を書き込み、終了位置にも同じデータを書き込
む。中間データの格納位置情報とバンド管理テーブルの
関連は、図6に示す様になっている。
【0024】一つのコマンドの処理を終了した後、ステ
ップ307で中間データの作成処理を終了するかを判定
する。終了する条件は、1ページ分の印刷データを中間
データに変換し終えたときと、中間データを格納するエ
リアが満杯になったときである。
【0025】1ページ分の印刷データの途中で中間デー
タ格納エリアが満杯になったときは、一旦そこまでの中
間データをビットマップメモリに格納し、中間データ格
納エリアのアドレスとバンド管理テーブルを初期化す
る。属性情報は以前の状態を引き継ぎ、ビットマップメ
モリに書き込んだ次の印刷データから中間データ作成処
理を行う。
【0026】このようにすれば、1ページ分のデータが
中間データ格納のエリアに格納しきれないときでも全て
のデータを描画する。
【0027】(2−2)コマンドのみの中間データの場
合 処理フローは、位置情報付き中間データの場合と同様で
あるが、ステップ304のところで、バンド毎に次のコ
マンドの位置情報を作成しない。代わりに、コマンドが
ページ内のどのバンド内に描画されるかを示すため、コ
マンド毎に中間データ管理テーブル32bを作る。
【0028】中間データ格納エリアが満杯になったと
き、又は、中間データ管理テーブルが満杯になったとき
は、そこまで作成した中間データをビットマップメモリ
に描画し、中間データ格納エリアのアドレスと中間デー
タ管理テーブルを初期化する。属性情報はそのままの状
態を引き継ぎ、次の印刷データから中間データ作成処理
を行う。
【0029】これに加えて、描画処理での中間データの
検索を高速化するため、バンド管理テーブル32aを作
成しても良い。このとき、バンド管理テーブルには、中
間データの位置情報の代わりに中間データ管理テーブル
のエントリ番号を設定する。こうすれば、バンド単位で
描画するとき、中間データ管理テーブル全部を検索する
代わりにバンド管理テーブルの開始エントリ番号から終
了エントリ番号までの中間データ管理テーブルを検索す
ればよい。
【0030】(3)中間データを使用した描画処理 (3−1)位置情報付き中間データの場合 図9に処理フローを示す。ステップ101で描画するバ
ンド番号を先頭のバンドを示す番号にする。ステップ1
02でバンド番号に対応するバンド管理テーブルを調
べ、そのバンド内に描画するコマンドがあるかを調べ
る。コマンドがないときには、ステップ107に進む。
コマンドがあるときは開始ポインタをコマンド格納位置
とする。ステップ103で次に描画するコマンドの格納
位置を設定し、ステップ104でバンド内にコマンドを
描画する。描画終了後、ステップ106で、現在描画中
のバンド用のポインタのバンドに印刷する最後のコマン
ドかをチェックし、最後の時は、ステップ107に進
む。次のデータがあるときにはコマンドの後ろにある現
在描画中のバンド番号用コマンド格納位置を求め、ステ
ップ103に戻る。ステップ107でバンド番号を一つ
更新する。そして、ステップ108で、そのバンド番号
が1ページの描画範囲内かを判定し、描画範囲内の時に
はステップ102に進み、描画範囲外であれば処理を終
了する。
【0031】ここで、現在描画中のコマンド格納位置を
求める方法を説明する。図5を使用して、バンド番号1
に中間データ1、K、Lがこの順番で描画される場合に
ついて説明する。このとき、まずバンド管理テーブル3
2aのバンド番号1用のエントリの開始ポインタは、中
間データ1のコマンドの格納位置を示している。中間デ
ータ1を描画後、図3に示すようにコマンドの後ろにあ
る中間データ1の描画バンド範囲を参照する。中間デー
タ1の描画バンド範囲がバンド番号1からバンド番号3
のとき、描画バンド範囲には1と3の数字が格納されて
いる。現在描画中のバンド番号1は、中間データ1の描
画範囲の先頭である。このとき、描画バンド範囲に続い
て格納されているコマンド格納位置の先頭のエントリが
バンド番号1用コマンド格納位置となる。これが、次に
描画する中間データKのコマンド格納位置を示してい
る。
【0032】同様にして、中間データKのバンド番号1
用コマンド格納位置から、次の中間データLの格納位置
を求める。中間データLはバンド番号1に描画する最後
のデータなのでバンド番号1用エントリの終了ポインタ
と格納位置が一致するのでこれでバンド番号1への描画
処理が終了することがわかる。
【0033】このようにすれば、バンド毎に中間データ
を検索するとき、バンド内に描画するコマンドのみを選
ぶことができ、不用なデータを検索することがないの
で、バンド毎の中間データ検索時間を短くすることがで
きる。
【0034】(3−2)コマンドのみの中間データの場
合 図11に処理フローを示す。ステップ401で描画する
バンド番号を先頭のバンドを示す番号にする。ステップ
402でバンド毎に中間データ管理テーブルの先頭にポ
インタを設定する。ステップ403で、そのコマンドの
描画範囲と現在のバンドを比較して、現在のバンドが描
画範囲内かを調べる。描画範囲内のときはステップ40
4に進み、バンド内にコマンドを描画し、ステップ40
5に進む。ステップ405でステップ406でその中間
データ管理テーブルが有効な範囲を越えたかを判定し越
えていないときには、ステップ403に進む。越えたと
きは、そのバンドの描画が終了したので、ステップ40
7でバンド番号を更新し、ステップ408で1ページ分
の処理が終了したかを判定する。終了していないとき
は、ステップ402に進み次のバンドに対する描画を開
始し、終了したときは、処理を終了する。
【0035】さらに、バンド管理テーブルを使用すれ
ば、中間データ管理テーブルをバンドの数だけくり返し
検索する必要がない。バンド管理テーブルにそのバンド
の中間データ管理テーブルの先頭と終了位置を設定して
その間だけ検索するようにできるので、中間データ管理
テーブルの検索回数を減らすことが出来る。
【0036】(4)コマンド単位のバンド内への描画処
理 中間データから描画中のバンド内の描画データを抽出し
て描画する。データが1つのバンド内に収まる場合は、
そのまま描画すれば良い。以下、データがバンドをまた
がる場合についての処理を中心に説明する。
【0037】図9にバンドにまたがる中間データからバ
ンド内に描画するデータのみを抽出するクリッピング処
理のフローを示す。ステップ201でクリッピング用の
描画パラメータとしてデータの描画範囲と描画数を中間
データから作成する。ステップ202でデータの描画範
囲と、バンド領域の位置関係を比較する。ステップ20
3でその結果を評価し描画範囲が全てバンドの範囲外の
時には、描画を行わず処理を終了する。描画範囲がバン
ド内にかかる時はステップ204に進み、バンド外には
み出す部分があるかをチェックする。はみ出す部分がな
く全てバンド内に入るときは、ステップ205に進みバ
ンド内にデータを描画する。はみ出す部分があるとき
は、ステップ205に進んで描画パラメータを書き換
え、バンド内のみに入る描画パラメータに変換し、ステ
ップ205でバンド内に描画する。
【0038】(5)描画データのクリッピング処理 中間データからバンド内に描画するデータのみを抽出す
る処理は、各描画コマンドの種類に合わせて行う必要が
ある。ここでは、線図形として線分、円弧、その他の図
形としてパターンデータ、テキスト、閉領域の塗りつぶ
しについてそれぞれ例を上げて説明する。
【0039】(5−1)線分データ 始点と終点との座標を指定してそのあいだを描画する場
合について説明する。
【0040】(5−1−1)描画アルゴリズム 図12に、始点(0、0)終点(6、4)としたときの
線分描画の例を示す。X座標の差分をΔX、Y座標の差
分をΔYとする。このとき、ΔX=6、ΔY=4であ
り、ΔY<ΔXなので、Xは1ずつ変化させ、YはX座
標を定めたとき描画する線分にもっとも近い整数値を選
ぶ。これをΔXの値である6回くり返すと、始点と終点
との間にドット化された線分が描画される。
【0041】次にY座標の求め方を具体的に説明する。
Y座標を求めるための描画方向判定情報としてXを1変
化させたときのYの変化量の和を使用する。Xを1変化
させたときのYの変化量はΔY/ΔX=4/6である。
この値をX座標を1更新する毎に加えて行きその値を1
/2と比較し1/2を越えたときY座標を1変化させ、
その後3/2を越えたときさらに1変化させる。これを
描画ドット数分くり返すことにより、X座標に対するY
座標の値が順次求めることができる。
【0042】実際には、描画方向判定情報が整数で処理
できるように、各式の両辺に2×ΔXを乗じる。また、
Y座標が1更新されたときには描画方向判定情報から2
×ΔXを減算し、初期値を−ΔXとする事で、描画方向
判定情報の正負を判定して座標を求める事ができる。
【0043】例では、ΔX>ΔYでΔX>0、ΔY>0
の場合を説明したが、ΔX<ΔY、ΔX<0、ΔY<0
のときでもΔX>ΔYでΔX>0、ΔY>0で考え、ビ
ットマップメモリ上の進行方向を変えることにより、同
じアルゴリズムで座標を求めることができる。ビットマ
ップメモリ上の進行方向は、3つの値の組の大小により
合計8通りを考えればよい。また、前記各不等式で等号
の場合は正負どちらの方法で描画しても差し支えない。
【0044】(5−1−2)描画パラメータ 線分描画用の描画パラメータは、前記の描画開始ドット
座標、ΔX、ΔY、線分の進行方向を示す情報、描画方
向判定情報、描画ドット数である。
【0045】(5−1−3)クリッピング処理 これまで説明した描画パラメータを必要に応じて書き換
えることでバンド毎の描画パラメータを設定する。始点
座標が範囲外の時と終点座標が範囲外の時には書き換え
る描画パラメータが異なる。
【0046】始点座標が範囲外の時には、描画開始ドッ
ト座標と描画方向判定情報と描画ドット数を書き換え
る。描画開始ドット座標は、描画を抑止するドット数分
更新した値に変え、描画ドット数は描画を抑止するドッ
ト数分減じる。描画方向判定情報は元の線分を描画した
ときに新たに描画開始ドット座標になった点での描画方
向判定情報を設定する。
【0047】終点座標が範囲外の時には、描画ドット数
を描画を抑止するドット数分減じればよい。
【0048】描画を抑止するドット数の求め方について
説明する。図17に示すように、線分の描画パラメータ
がΔY>ΔXの時は、線分の始点又は、終点の座標とバ
ンドの境界の座標の差分がそのまま描画を抑止するドッ
ト数になる。ΔY<ΔXの時は、Y座標の差分Lから演
算によってドット数を求める必要がある。このときは
式、(ΔY+2×L×ΔX)/(2×ΔY)で求められ
る。
【0049】バンド毎の描画開始ドット座標の求め方に
ついて説明する。図18に示すように、Y座標の差分
は、始点座標とバンド境界の差に等しい。また、X座標
の差分は式(ΔY+2×L×ΔX)/(2×ΔY)で求
められる。
【0050】バンド毎の描画方向判定情報の設定方法と
その必要性について説明する。描画方向判定情報をバン
ド内の線分用に書き換えずに使用したときの様子を図1
6に示す。図16では、バンド毎に描画方向判定情報を
バンド内の線分用にしてドットを発生させたときバンド
番号Nの上から2ドット目がバンドにまたがって描画し
た時とずれている。
【0051】これを解決するため、描画方向判定情報を
元の線分を描画したときの、バンド内の始点座標での値
に設定して線分の描画を行う。具体的には、描画方向判
定情報の初期値は、描画しないドット数をLとしたと
き、(ΔY+2×L×ΔX)/(2×ΔY)のあまりで
ある。
【0052】(5−2)円弧データ 始点と終点の角度と、半径と、中心座標とを指定し円弧
を描画する場合について説明する。
【0053】(5−2−1)描画アルゴリズム 円を0度〜45度、45度〜90度、と360度まで4
5度単位に8分割する。すると、そのひとつひとつは、
進行方向が特定でき線分と同様に扱うことができる。た
とえば、0度〜45度の場合、Y方向の変化量がX方向
の変化量より大きい。そこで、Y座標を1ずつ加算し、
それに対応するX座標を求めて行けば円周上の点が連続
的に求められる。このとき、X座標を求めるための描画
方向判定情報が線分と異なるだけである。
【0054】0度〜45度の場合についてX座標の求め
方を説明する。原点中心とした半径R(整数)の円で考
える。円の中心をX方向に1/2ドットずらした円の外
側で正、内側で負となるX、Yの関数 F1(X,Y)=(X−
1/2)(X−1/2)+Y×Y−R×Rを考える。これを描画方向判
定情報として使用する。
【0055】0度の点を始点としてXを1増加させたと
きの F1(X,Y) を求める。値が負の間は、その座標を取
り値が正になったときはYを1減じた値の座標を取る。
この処理をYが45度の値になるまでくり返して、0度
〜45度の円弧を描画する。図13に0度〜45度の円
弧描画のドットを描画した例を示す。
【0056】45度〜90度の時は、45度の座標を始
点として、今度はY方向に−1/2ドットずらした円の
外側で負、内側で正となるX、Yの関数 F2(X,Y)=R
×R−(Y+1/2)(Y+1/2)−X×X を考え、これを描画方向
判定情報として使用する。
【0057】始点からX座標を1減じた時の値を計算
し、その値が負の時はその値の座標を選択し、正の時は
Yを1加えた値の座標を選択する。これをX座標が0に
なるまでくり返して45度〜90度の円弧を描画する。
【0058】途中から、及び途中まで描画するときは始
点の座標をその点の座標にし、終点の座標までのドット
数分の点を発生させればよい。
【0059】XとYを入れ替えれば、式F1(X,Y)は90
度から45度へ向かう円弧の描画に使用でき、式F2(X,
Y)は、45度から0度に向かう円弧の描画に使用でき
る。円の対称性を利用して、90度以降をも同じアルゴ
リズムで原点を中心とした円周上の座標を求めることが
できる。このようにして任意の始点と終点の角度に対し
その間の円弧を求められる。
【0060】このアルゴリズムで求めた座標は中心座標
からの差分を与えるので、ビットマップメモリ上の座標
は、1/8円弧が中心座標からどの方向にあるかによっ
て求めることができる。
【0061】(5−2−2)描画パラメータ 円を8分割した円弧用の描画パラメータは、描画開始の
部分、描画終了の部分、中間の部分用それぞれについて
作成する。作成する描画パラメータは円の中心を原点に
したときのX座標、Y座標、描画ドット数である。この
処理は中間データの作成処理で行なっても良い。
【0062】描画パラメータは、1/8円弧毎に、その
部分が円周上をたどる方法が、前記したどちらの場合に
当たるかによって、使用する判別式と開始座標、描画ド
ット数を変更する。また、描画開始と描画終了の部分は
1/8円弧の一部分の描画なので開始座標や描画ドット
数が異なる。
【0063】(5−2−3)クリッピング処理 このとき線分と同じように8分割した円弧の始点と終点
座標をバンドの境界と比較し、どちらかがバンドの外に
出た場合は開始座標と描画ドット数の補正を行いバンド
内に収まるようにする。描画開始座標における描画方向
判定情報は、その座標のX、Yの値を前記関数に代入し
計算することで求められる。
【0064】破線や点線で円弧を描画するときは線パタ
ーンの補正を線分の時と同じように、実際にはバンド外
で描画しないドットの分も含めて行う。
【0065】(5−3)パターンデータのクリッピング ドットパターンの格納位置とその縦横のサイズ、パター
ンの描画座標を指定して描画する場合について説明す
る。
【0066】ドットパターンが定義された矩形エリアを
描画する最大と最小の座標をバンドの境界と比較する。
最小値がバンドの外の時には、ドットパターンを読み出
す位置をはみ出したラスタ数分ずらし。読み出すデータ
量をはみ出したドットパターンの量に合わせて減らす。
最大値がバンドの外の時には、読み出すデータ量をはみ
出したドットパターンの量に合わせて減らす。こうすれ
ばバンド内のみにパターンデータが描画される。
【0067】(5−4)閉領域の塗りつぶしのクリッピ
ング 線データにより閉領域を定義し、その内部を指定された
パターンデータのくり返しで埋める場合について説明す
る。
【0068】領域を定義する線データの位置チェック
は、円弧や線分と同様に行えばよい。ただし、途中でバ
ンドからはみ出た場合はそこで処理を中断すると線が連
続せず閉図形とならない。このときには、バンド内から
外へ出たときのバンドとの交点を覚えておき、次にバン
ドの外から中へ入るときの交点をバンドの境界に沿って
結ぶことによって、新しい境界線を定義する事でバンド
内だけの閉領域を定義できる。この領域内にパターンを
埋めればよい。
【0069】塗りつぶしパターンをバンドごとに基準点
を変えて描画すると、バンドの境界でパターンが不連続
となる。これは、パターンを描画するときの基準の座標
を各バンドで同じにすることにより防止することができ
る。
【0070】(5−5)テキストデータのクリッピング フォントデータがドットパターンの場合とアウトライン
フォントの場合について説明する。ドットパターンで定
義された文字は、パターンデータと同様に処理すること
ができる。また、文字の輪郭を線図形で定義するアウト
ライン形式のデータで定義された文字は領域の塗りつぶ
しと同様に処理できる。
【0071】同一の描画部で処理する時には、アウトラ
イン形式のデータで定義された文字の場合複数のバンド
にまたがったとき、文字全体をドットパターンに変換し
た後でクリッピング処理をして描画する。そして、ドッ
トパターンを保持しておき残りの部分が属するバンドを
描画するときにドットパターンに変換済みのデータを使
用して処理することもできる。
【0072】(5−6)バンド単位の描画データを作成
する時の問題点とその対策 クリッピング処理でバンド単位の描画データを作成する
ときの問題とその対策について説明する。
【0073】バンドの外のデータが広がりを持つ場合バ
ンド内の描画結果に影響を与える事がある。そのとき
は、クリッピングのとき、実際のバンドより必要な分大
きなエリアに対して範囲チェックをする必要がある。以
下、例を上げて説明する。
【0074】図7に、線幅3ドットの線分を線の両側に
1ドットずつドットを太らせて描画するときの例を示
す。図のように、バンド外であるが、太らせたドットが
バンド内に入るドットがある。この場合、バンド毎の描
画データを作成して描画するときバンド内の線分のみを
使用して描画すると、バンドの境界で線幅が細くなって
しまう。この対策として、バンド毎の描画データを作成
するときに1ドット余計に描画範囲に含め、ドットを描
画するときに範囲チェックを行ってバンド外のドット描
画を抑止する。こうすれば、バンドの境界でも同じ線幅
の描画結果が得られる。
【0075】また、線図形を実線以外の線パターンを使
用して描画するとき、バンド毎に線パターンを初期化し
て使うと、バンドの境界でパターンがうまくつながらな
い。図15にその例を示す。図15では、黒ドットと白
ドットとを4ドットずつ交互に描画するパターンでバン
ド番号N−1とバンド番号Nにまたがって描画する場合
である。バンド番号Nの処理で線パターンをリセットす
るとバンド番号N−1とのバンドの境界でパターンが正
しくつながらない。
【0076】この対策として、描画パラメータとして線
パターン内のどの場所から使用するかの情報を持ち、ク
リッピング処理で始点座標を変更するときは、描画を抑
止するドット数分の線パターンを更新した開始位置を設
定する様にする。これにより、バンドに分割しないとき
と同じ結果が得られる。
【0077】(6)複数の描画部を使用した描画処理 これまで説明してきたように、制御データと中間データ
を使用した描画処理は、バンド毎に独立であり別のバン
ドの処理に影響を受けないので、同じ中間データを複数
の描画部に送り、描画するバンドを指定することにより
同一のページを並列に描画することができる。
【0078】図2はそのときの構成の一例である。デー
タ編集部20は描画データから中間データ31と制御デ
ータ32を作成する。必要な分の中間データを作成した
後、第1描画部41、第2描画部42にそれぞれ別のバ
ンドを指定して起動をかける。このとき各描画部はバン
ド情報のみを受け取り共通の中間データを直接参照して
描画しても良いし、編集部で中間データを第1描画部4
1、第2描画部42に送って描画を行っても良い。
【0079】中間データの形式は、バンド毎に必要な部
分だけを取り出せるようになっているので、第1描画部
41、第2描画部42へ送る中間データは、描画するバ
ンドで必要となる部分だけを取り出して送り、転送デー
タ量を減らすこともできる。また、一つの描画部で多く
のバンドに対して描画するときは中間データ全体を送っ
てしまってもよい。
【0080】描画終了後バンドのデータはビットマップ
メモリに書き込まれる。そして第1描画部41、第2描
画部42からデータ編集部へ描画が終了した旨報告す
る。これで一つのバンド内のビットマップデータが作成
される。
【0081】これを1ページに定義したバンド全てがビ
ットマップメモリに書き込まれるまで実行する。こうす
れば、1ページのビットマップデータがビットマップメ
モリ上に完成する。
【0082】以上実施例では、図形データのみについて
説明したが、テキストデータや画像データに対しても、
図形データ内のテキストやパターンと同様に行えばバン
ドを使用した描画が容易に実現できる。
【0083】
【発明の効果】以上説明したように本発明によれば、1
ページを複数のバンドに分割し高速なキャッシュメモリ
内で描画処理を行うようにしたから、描画を高速に行う
ことが出来る。
【0084】バンド毎に使用するデータを検索するため
の情報を付加し、データを描画処理で使いやす形式に変
換することにより、データ検索にかかるオーバヘッドを
減らし高速にバンド毎の描画を実行することが出来る。
【0085】さらに、複数のバンドにまたがった描画デ
ータから必要な描画領域内のデータのみを抽出するとき
ドットを描画せずに、演算のみで求める用にしたので、
描画におけるバンド外のデータ処理にかかるオーバヘッ
ドを減らすことが出来る。
【0086】また、各バンド毎に中間データは独立して
描画可能な形式になっているので複数の描画部を使用し
て1つのページを同時に描画することができる。
【図面の簡単な説明】
【図1】 本発明の構成図である。
【図2】 描画部が複数ある場合の構成図である。
【図3】 位置情報付き中間データ形式である。
【図4】 コマンドのみの中間データ形式である。
【図5】 バンド管理テーブルの構成と機能の説明図で
ある。
【図6】 中間データ管理テーブルの構成と機能の説明
図である。
【図7】 太線描画でのバンド境界チェックの調整例で
ある。
【図8】 位置情報付き中間データを使用した描画処理
フローである。
【図9】 クリッピング処理フローである。
【図10】 中間データ作成処理フローである。
【図11】 コマンドのみの中間データを使用した描画
処理フローである。
【図12】 線分描画アルゴリズムの説明図である。
【図13】 円弧描画アルゴリズムの説明図である。
【図14】 描画データとバンドの位置関係の例であ
る。
【図15】 線パターンのバンド間の継続性の説明図で
ある。
【図16】 線分描画結果のバンド間の連続性の説明図
である。
【図17】 描画抑止ドット数の求め方の説明図であ
る。
【図18】 描画開始ドット座標の求め方の説明図であ
る。
【符号の説明】
10:上位装置、20:データ編集部、31:中間デー
タ格納エリア、31a,31b:中間データ形式、3
2:制御データ格納エリア、32a:バンド管理テーブ
ル、32b:中間データ管理テーブル、40,41,4
2:描画部、50:ビットマップメモリ。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 上位装置からコード化された印刷データ
    を受け取り、1ページ分のビットマップデータに変換し
    て印刷する印刷装置で、1ページを複数に区切ったバン
    ドに分割し、バンド毎に描画を行う印刷データの処理方
    式において、印刷データをいくつかの描画処理単位であ
    るコマンドに分割し、それぞれのコマンド毎に独立にビ
    ットマップに変換可能な中間データ形式に変換し、その
    コマンド毎にどのバンドに描画されるかの描画エリア情
    報を付加し、付加した描画エリア情報をもとに、コマン
    ドから各バンドに入る部分だけを抽出してビットマップ
    データに変換することを特徴とする印刷データの処理方
    式。
  2. 【請求項2】 前記描画エリア情報が、コマンド毎に存
    在する現在描画中のバンドにおいて次に描画すべきコマ
    ンドの格納位置情報と、バンド毎に存在するそのバンド
    内に最初に描画するコマンドの格納位置情報からなるこ
    とを特徴とする請求項1の印刷データの処理方式。
  3. 【請求項3】 前記描画エリア情報が、コマンド毎の描
    画に使用するバンドの範囲情報と、中間データの格納位
    置からなることを特徴とする請求項1の印刷データの処
    理方式。
  4. 【請求項4】 前記中間データに変換する処理で、中間
    データの格納エリアが満杯になったとき、変換が終了し
    た部分のみをビットマップデータに変換し、格納エリア
    が空くのを待って次のデータの変換を行うことを特徴と
    する請求項1の印刷データの処理方式。
  5. 【請求項5】 印刷データをバンド毎に独立して描画処
    理可能な中間データ形式に変換するデータ編集部と指定
    された描画エリア内に中間データ形式のデータを描画す
    る描画部を複数持ち、複数の描画部が同時に描画処理を
    行う事を特徴とする印刷装置。
  6. 【請求項6】 上位装置からコード化された印刷データ
    を受け取り、1ページ分のビットマップデータに変換し
    て印刷する印刷装置で、1ページを複数に区切ったバン
    ドに分割し、バンド毎に描画を行う印刷データの処理方
    式において、複数のバンドにまたがる印刷データを分割
    して現在描画処理中のバンド内のみに描画する場合に、
    分割前の描画パラメータを求め、分割前の描画範囲とバ
    ンドの位置関係から描画パラメータを分割しないときと
    同じ印刷結果になるように書き換える手段を持ち、書き
    換えた描画パラメータを使用して描画処理を行うことを
    特徴とする印刷データの処理方式。
  7. 【請求項7】 線分、円弧等の線図形に対し、前記描画
    パラメータは、描画開始ドット位置と描画方向判定情報
    と描画ドット数とを有し、前記変更手段は、分割前のコ
    マンドの描画範囲と描画するバンドの位置関係を比較し
    て、描画開始ドット位置、描画方向判定情報、描画ドッ
    ト数を変更する手段を有する請求項6の印刷データの処
    理方式。
  8. 【請求項8】 前記線図形を点線や破線等実線以外の線
    パターンを使用して描画するとき、前記変更手段は、描
    画抑止ドット数により線パターンの描画結果をバンドに
    分割しないときと同じにする手段を有する請求項7の印
    刷データの処理方式。
  9. 【請求項9】 前記線図形を線幅を指定して描画すると
    き、バンド内の線図形の描画範囲を線幅に合わせて変更
    する手段を有する請求項7の印刷データの処理方式。
JP10037517A 1998-02-19 1998-02-19 印刷装置のデータ処理方式 Pending JPH11227301A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10037517A JPH11227301A (ja) 1998-02-19 1998-02-19 印刷装置のデータ処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10037517A JPH11227301A (ja) 1998-02-19 1998-02-19 印刷装置のデータ処理方式

Publications (1)

Publication Number Publication Date
JPH11227301A true JPH11227301A (ja) 1999-08-24

Family

ID=12499742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10037517A Pending JPH11227301A (ja) 1998-02-19 1998-02-19 印刷装置のデータ処理方式

Country Status (1)

Country Link
JP (1) JPH11227301A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007181944A (ja) * 2006-01-05 2007-07-19 Ricoh Co Ltd 画像処理装置
JP2009147596A (ja) * 2007-12-13 2009-07-02 Seiko Epson Corp 印刷装置、画像データ作成方法および印刷方法
US8502830B2 (en) 2008-04-28 2013-08-06 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007181944A (ja) * 2006-01-05 2007-07-19 Ricoh Co Ltd 画像処理装置
JP2009147596A (ja) * 2007-12-13 2009-07-02 Seiko Epson Corp 印刷装置、画像データ作成方法および印刷方法
US8502830B2 (en) 2008-04-28 2013-08-06 Canon Kabushiki Kaisha Image processing apparatus, image processing method, and storage medium

Similar Documents

Publication Publication Date Title
US5602976A (en) Method and apparatus for saving printer memory
JP3919754B2 (ja) 画素順次描画システムにおいて実行される合成演算回数の削減法
US5001653A (en) Merging plotter graphics within a text environment on a page printer
JPH0244482A (ja) ラスタ化方法
JP2009071626A (ja) 画像処理装置、画像処理方法、画像処理プログラム、並びに、記録媒体
JP3576611B2 (ja) 文字発生装置ならびに方法
JPH11227301A (ja) 印刷装置のデータ処理方式
JPH06162210A (ja) 画像処理装置
JP3085175B2 (ja) 描画装置
JPH02270019A (ja) 高品質文字パターン発生方式
EP0105340A1 (en) Page printing system
JP3450961B2 (ja) 印刷装置及びその制御方法
JP4022014B2 (ja) イメージデータの管理方法
JP3072702B2 (ja) アウトラインフォントデータのデータ構造及びアウトラインフォントデータのデータ記憶方法
JP3692639B2 (ja) 描画処理装置
JP3054157B2 (ja) 文字処理装置および文字処理方法
JP4380947B2 (ja) 画像出力装置
JP2001273508A (ja) 画像処理装置
JPH10222146A (ja) 文字表示装置と表示方法及びフォント情報
JP3089906B2 (ja) 描画装置
JP2003248834A (ja) 画像出力装置
JP2000280544A (ja) アウトラインフォントデータ処理方法
JPS593693A (ja) プリンタにおける図形描画制御方式
JP2835056B2 (ja) 高品質文字パターン発生方式
AU2004216608B2 (en) Method for generating a display list

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20040806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040809