JPH09171564A - Plotting device - Google Patents

Plotting device

Info

Publication number
JPH09171564A
JPH09171564A JP7331632A JP33163295A JPH09171564A JP H09171564 A JPH09171564 A JP H09171564A JP 7331632 A JP7331632 A JP 7331632A JP 33163295 A JP33163295 A JP 33163295A JP H09171564 A JPH09171564 A JP H09171564A
Authority
JP
Japan
Prior art keywords
intermediate data
data
band
run
halftone
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
JP7331632A
Other languages
Japanese (ja)
Other versions
JP3085175B2 (en
Inventor
Yuji Onozawa
雄二 小野澤
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 JP07331632A priority Critical patent/JP3085175B2/en
Publication of JPH09171564A publication Critical patent/JPH09171564A/en
Application granted granted Critical
Publication of JP3085175B2 publication Critical patent/JP3085175B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a plotting device whereby the volume of intermediate data is drastically reduced. SOLUTION: A plotting command received by an input control part 1 is transmitted one of a raster plotting part 2, a vector plotting part 3 and a character plotting 4 and an edge list is generated. An intermediate data generating part 5 receives the edge list, generates intermediate data which is divided at every band width and executes storage in an intermediate data buffer 6. Intermediate data adds chrominance information and plural intermediate data cells. The intermediate data cells add difference between two run positions and run- length. The plural kinds of data length of the intermediate data cells exist and a format having data width required for indicating position difference is selectively used. An extension output control part 7 takes-out intermediate data at every band from the intermediate data buffer 6 so as to extend it in bit map data, writes it in band buffers 8 and 9 and outputs it from an output device 10.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、ページ記述言語
(以下PDLと略す)などのコード情報である描画コマ
ンドを受け取り、文字やグラフィックス、画像をラスタ
スキャン出力する描画装置に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a drawing device for receiving a drawing command, which is code information such as a page description language (hereinafter abbreviated as PDL), and outputting characters, graphics, and images in a raster scan.

【0002】[0002]

【従来の技術】近年、文字/グラフィックス/画像を同
時に編集して、プリンタから出力する装置が普及してき
ている。この場合、プリンタに送られる情報は、PDL
などのコード情報でありプリンタで解釈してビットマッ
プ画像を作成し、ラスタスキャン出力している。
2. Description of the Related Art In recent years, devices for simultaneously editing characters / graphics / images and outputting them from printers have become widespread. In this case, the information sent to the printer is PDL.
It is code information such as and is interpreted by a printer to create a bitmap image, which is output as a raster scan.

【0003】しかし、このような分野に用いられるプリ
ンタはカラー化、高解像度化が進み、1ページ分の描画
プリミティブを一度にビットマップに展開してしまうと
膨大なデータ量になってしまう。そのため、例えば、特
開平6−119131号公報に記載されているように、
1ページを複数の走査線を単位とするバンドに区切り、
バンドごとにビットマップに展開して出力することが考
えられている。しかしこの方法を単純に適用すると、す
べての描画コマンドを各バンドごとに毎回読み出して解
釈し、当該バンドに含まれる部分の有無を判断し、当該
バンド部分のビットマップへの展開を行なうことにな
り、処理時間がかかるという問題がある。
However, the printers used in such fields are becoming more colorized and higher in resolution, and if one page of drawing primitives is expanded into a bitmap at one time, a huge amount of data will result. Therefore, for example, as described in JP-A-6-119131,
Divide one page into bands with multiple scan lines as a unit,
It is considered that each band is expanded into a bitmap and then output. However, if this method is simply applied, all drawing commands are read and interpreted for each band, the presence / absence of a part included in the band is determined, and the band part is expanded into a bitmap. However, there is a problem that it takes a long processing time.

【0004】また、例えば、特開平5−246077号
公報に記載されている印刷装置では、グラフィックスデ
ータはデータ量のそれほど多くない低解像度のビットマ
ップデータに展開しておき、例えばバンドごとに拡大し
て出力している。これにより、少なくともグラフィック
スデータについては、各バンドごとに描画コマンドを読
み出して解釈する必要が無く、多少高速化できるととも
に、データ量を削減することができる。しかし、高解像
度の印刷装置でありながら、高解像度のグラフィックス
データの印刷ができない、あるいはこのような利点を活
用できないという問題がある。
Further, for example, in the printing apparatus disclosed in Japanese Patent Laid-Open No. 5-246077, graphics data is expanded into low resolution bitmap data which does not have a large data amount and is expanded for each band, for example. And then output. As a result, at least for graphics data, it is not necessary to read and interpret the drawing command for each band, which can speed up somewhat and reduce the amount of data. However, even though it is a high-resolution printing device, there is a problem that high-resolution graphics data cannot be printed or such advantages cannot be utilized.

【0005】さらに、例えば、特開平5−250109
号公報に記載されているように、バンドごとにADCT
などの方法により符号化して蓄積し、出力時に復号化し
て出力することも考えられている。この方法では、蓄積
された1ページ分の画像のデータ量はビットマップに比
べてはるかに少なく、メモリ量を削減できるとともに、
出力時にはバンドごとに復号化して出力すればよく、出
力時のメモリ量の削減とともにほぼ低速の出力が可能で
ある。しかし、符号化する際にはやはりバンドごとのビ
ットマップを一旦作成しなければならず、また、符号化
および復号化に時間がかかるため、リアルタイムで出力
するような場合には不向きである。
Further, for example, Japanese Patent Laid-Open No. 5-250109.
As described in Japanese Patent Publication, ADCT for each band
It is also considered that the data is encoded and stored by a method such as the above, and is decoded and output at the time of output. With this method, the data amount of the image for one page accumulated is much smaller than that of the bitmap, and the memory amount can be reduced, and
At the time of output, it is only necessary to decode and output for each band, and it is possible to reduce the memory amount at the time of output and output at a low speed. However, when encoding, it is necessary to once create a bitmap for each band, and since encoding and decoding take time, it is not suitable for real-time output.

【0006】このようなメモリ量の削減と、処理時間の
短縮を図ったものとして、例えば、特開平5−2246
37号公報などに記載されているような、エッジリスト
を用いるものがある。この技術では、描画コマンドを受
け取り、描画部分の先頭の座標と長さを示すラン、ある
いは、描画部分の先頭と終端の座標のリストであるエッ
ジリストを、各スキャンラインごとに作成する。1ペー
ジ分のすべての描画コマンドについてリストを作成した
後、スキャンラインについてソートしておく。そして、
各バンドごとに、そのバンドに含まれるスキャンライン
についてのリストを取り出してビットマップ展開し、出
力する。この方法では、描画コマンドの解釈はエッジリ
ストの作成時だけであり、また、ビットマップ展開時に
もエッジリストに従って展開するだけであるので、処理
時間は大幅に短縮できる。また、エッジリストのデータ
量は、1ページ分のビットマップに比べ、非常に少量で
ある。
As an attempt to reduce the memory amount and the processing time as described above, for example, Japanese Patent Laid-Open No. 5-2246
There is a method using an edge list as described in Japanese Patent No. 37. In this technique, a drawing command is received, and a run indicating the coordinates and length of the beginning of the drawing portion or an edge list that is a list of coordinates of the beginning and end of the drawing portion is created for each scan line. After creating a list for all drawing commands for one page, sort for scan lines. And
For each band, a list of scan lines included in that band is extracted, bit-mapped, and output. According to this method, the drawing command is interpreted only when the edge list is created, and when the bitmap is expanded, only the expansion is performed according to the edge list, so that the processing time can be greatly reduced. Also, the data amount of the edge list is extremely small compared to the bitmap for one page.

【0007】しかし、この方法でも、エッジリストを構
成するリスト構造におけるポインタ部のメモリ量が大き
くなること、基本的に主走査方向の情報だけの圧縮であ
ること、ランの大きさによらず一定の大きさのデータで
ランを表現することなどから、十分なデータ量の削減が
達成されていなかった。
However, even in this method, the memory amount of the pointer portion in the list structure forming the edge list becomes large, basically only the information in the main scanning direction is compressed, and it is constant regardless of the size of the run. Since the run is represented by data of size, sufficient reduction of the amount of data has not been achieved.

【0008】一方、上述のようなプリンタの中には、1
ドット単位で階調を表現できるものもあるが、周りの複
数ビットで階調を表現しなくてはならないプリンタもあ
る。この場合、プリンタに送られるPDLなどのコード
情報では、階調は連続的な表現で行なわれている。これ
を印字する場合は、プリンタ側で描画処理の最終段階で
ハーフトーン処理を行ないながら、直接ページ全体の2
値のビットマップデータを作成することが行なわれてい
る。例えば、特開平5−138947号公報に記載され
た画像形成装置のように、描画データを作成するごとに
パターン発生手段で発生するパターンデータを用いてハ
ーフトーン処理を施し、フレームメモリ中のデータと合
成することによって、各色ごとに2値のビットマップデ
ータを得ている。この構成では、各色ごとに例えば1ペ
ージ分のフレームメモリを必要とする。プリンタの高解
像度化が進み、この構成のように1ページ分の画像をビ
ットマップに展開してしまうと、2値であっても膨大な
データ量になってしまうという問題がある。例えば、特
開平6−62229号公報に記載されているように、中
間調領域を検出してその領域のみ、ディザ処理を施すこ
とも考えられているが、処理時間の短縮は望めるもの
の、対象がスキャナ画像であるため1ページ分の2値化
画像を保持することに変わりはない。
On the other hand, among the printers described above, 1
Although some gradations can be expressed in dots, some printers require gradations to be expressed in multiple surrounding bits. In this case, in the code information such as PDL sent to the printer, the gradation is expressed by a continuous expression. If you want to print this, perform halftone processing at the final stage of drawing processing on the printer side and directly
Bitmap data of values is being created. For example, as in the image forming apparatus described in Japanese Patent Application Laid-Open No. 5-138947, halftone processing is performed using pattern data generated by the pattern generating unit every time drawing data is created, and data in the frame memory is stored. Binary bitmap data is obtained for each color by combining. In this configuration, for example, one page of frame memory is required for each color. If the resolution of the printer is increased and the image for one page is developed into a bitmap as in this configuration, there is a problem that a huge amount of data will be generated even if it is binary. For example, as described in Japanese Patent Laid-Open No. 6-62229, it has been considered to detect a halftone area and apply dither processing only to that area, but it is possible to reduce the processing time, but the target is Since it is a scanner image, it retains one page of binarized image.

【0009】特開平6−70145号公報に記載されて
いる装置では、行ごとに2値化のための閾値データを読
み出してメモリに記憶しておき、ラスタデータと閾値デ
ータを読み出して比較し、2値のビットマップデータを
得るものである。この構成は順次処理であるので、例え
ば、バンドごとの処理にも適用可能である。また、閾値
データがROMなどにあらかじめ保持されているため、
高速なハーフトーン処理が可能である。しかし、この技
術は、ビットマップデータに展開された画像に対してハ
ーフトーン処理を行なうものであるため、多値のビット
マップデータを一旦作成しなければならず、装置全体の
処理速度は低下してしまう。
In the device disclosed in Japanese Patent Laid-Open No. 6-70145, the threshold data for binarization is read out row by row and stored in a memory, and the raster data and the threshold data are read out and compared. The binary bit map data is obtained. Since this configuration is sequential processing, it can be applied to, for example, processing for each band. Also, since the threshold data is stored in advance in the ROM,
High-speed halftone processing is possible. However, with this technique, halftone processing is performed on an image expanded into bitmap data, so multivalued bitmap data must be created once, and the processing speed of the entire device decreases. Will end up.

【0010】上述のように、描画処理ではランレングス
表現のような中間データを作成し、プリンタ印字時にラ
ンレングス表現から、バンド単位の2値のビットマップ
データを作成する描画装置がある。このような装置にお
いて、ビットマップに対するハーフトーン処理を適用す
る場合、まず中間データから多値のビットマップを作成
し、その後ハーフトーン処理によって2値のビットマッ
プを作成することになり、中間データの展開処理に時間
がかかってしまうことになる。そのため、プリント速度
が一定のプリンタでは、プリンタの印字速度に展開速度
が間に合わず、画像が抜けてしまうことが発生してい
た。そのため、より高速なハーフトーン処理が要求され
ている。
As described above, there is a drawing apparatus that creates intermediate data such as run length expression in the drawing process and creates binary bit map data in band units from the run length expression at the time of printer printing. When applying halftone processing to a bitmap in such a device, first, a multi-valued bitmap is created from intermediate data, and then a binary bitmap is created by halftone processing. The expansion process will take time. Therefore, in a printer with a constant print speed, the development speed does not meet the print speed of the printer and the image may be missing. Therefore, faster halftone processing is required.

【0011】[0011]

【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、第1の目的は、中間データ
の容量を大幅に削減した描画装置を提供するものであ
る。また、第2の目的は、高速なハーフトーン処理を行
なう描画装置を提供するものである。
SUMMARY OF THE INVENTION The present invention has been made in view of the above circumstances, and a first object of the present invention is to provide a drawing device in which the capacity of intermediate data is greatly reduced. A second object is to provide a drawing device that performs high speed halftone processing.

【0012】[0012]

【課題を解決するための手段】請求項1に記載の発明
は、描画プリミティブを表わす描画コマンドを受け取
り、該描画コマンドに従ったビットマップデータを生成
して出力する描画装置において、前記描画コマンドの色
情報と該描画コマンドに対応する描画プリミティブの存
在する走査線ごとのランおよびその端部座標を抽出する
描画処理手段と、中間データを記憶する中間データ記憶
手段と、前記描画処理手段により抽出された連続する2
つのランの端部座標の差分を計算し計算結果に基づいて
データ長の異なる複数種類の中間データフォーマットの
1つを選択し選択した中間データフォーマットと前記端
部座標の差分と前記描画処理手段で抽出された前記ラン
に基づいて中間データセルを生成し前記描画コマンドご
とに生成した複数の中間データセルを前記描画処理手段
で抽出した前記色情報とともに中間データとして前記中
間データ記憶手段に記憶させる中間データ生成手段と、
前記中間データ記憶手段に記憶されている前記中間デー
タをもとに前記ビットマップデータに展開する展開手段
を有することを特徴とするものである。
According to a first aspect of the present invention, there is provided a drawing apparatus which receives a drawing command representing a drawing primitive, generates bitmap data according to the drawing command, and outputs the bitmap data. Drawing processing means for extracting a run for each scanning line in which a drawing primitive corresponding to the drawing information and the drawing command exists and its end coordinates, an intermediate data storage means for storing intermediate data, and the drawing processing means. Two consecutive
The difference between the end coordinates of one run is calculated, one of a plurality of types of intermediate data formats with different data lengths is selected based on the calculation result, and the difference between the selected intermediate data format and the end coordinates and the drawing processing means are used. An intermediate data cell is generated based on the extracted run, and a plurality of intermediate data cells generated for each of the drawing commands are stored in the intermediate data storage means as intermediate data together with the color information extracted by the drawing processing means. Data generating means,
It is characterized in that it has a developing means for developing the bitmap data based on the intermediate data stored in the intermediate data storage means.

【0013】請求項2に記載の発明は、請求項1に記載
の描画装置において、前記中間データ生成手段は、選択
したフォーマットのデータ長に基づいて前記中間データ
記憶手段に対して中間データセルを書き込むアドレスを
決定し、前記展開手段は、中間データセルのフォーマッ
トのデータ長に基づいて前記中間データ記憶手段からの
中間データセルの読み出し開始のアドレスおよび読み出
し範囲を決定することを特徴とするものである。
According to a second aspect of the present invention, in the drawing apparatus according to the first aspect, the intermediate data generating means stores an intermediate data cell in the intermediate data storage means based on the data length of the selected format. The write address is determined, and the expanding means determines the read start address and the read range of the intermediate data cell from the intermediate data storage means based on the data length of the format of the intermediate data cell. is there.

【0014】請求項3に記載の発明は、描画プリミティ
ブを表わす描画コマンドを受け取り、該描画コマンドに
従ったビットマップデータを生成して出力する描画装置
において、前記描画コマンドの色情報と該描画コマンド
に対応する描画プリミティブの存在する走査線ごとのラ
ンおよびその端部座標を抽出する描画処理手段と、中間
データを記憶する中間データ記憶手段と、複数の走査線
を単位とするバンドごとに前記ビットマップデータの領
域を管理し前記描画処理手段により抽出された連続する
2つのランの端部座標の差分を計算し計算結果に基づい
てデータ長の異なる複数種類の中間データフォーマット
の1つを選択し選択した中間データフォーマットと前記
端部座標の差分と前記描画処理手段で抽出された前記ラ
ンに基づいて中間データセルを生成し連続する2つのラ
ンの存在する前記バンドが異なるごとに前記描画処理手
段で抽出した前記色情報とともに生成した複数の中間デ
ータセルを中間データとして前記中間データ記憶手段に
記憶させる中間データ生成手段と、前記中間データ記憶
手段に記憶されている前記中間データをもとに前記バン
ドごとに前記ビットマップデータに展開する展開手段を
有することを特徴とするものである。
According to a third aspect of the present invention, in a drawing device which receives a drawing command representing a drawing primitive, generates bitmap data in accordance with the drawing command, and outputs the bitmap data, the color information of the drawing command and the drawing command. The drawing processing means for extracting the run and the coordinates of the end of each scanning line in which the drawing primitive corresponding to is present, the intermediate data storage means for storing the intermediate data, and the bit for each band in units of a plurality of scanning lines. The area of the map data is managed, the difference between the end coordinates of two consecutive runs extracted by the drawing processing means is calculated, and one of a plurality of intermediate data formats having different data lengths is selected based on the calculation result. Intermediate based on the selected intermediate data format and the difference between the end coordinates and the run extracted by the drawing processing means Intermediate data for generating data cells and storing a plurality of intermediate data cells generated together with the color information extracted by the drawing processing means as intermediate data in the intermediate data storage means each time the bands in which two consecutive runs exist are different It is characterized in that it has a generation means and a decompression means for decompressing to the bitmap data for each band based on the intermediate data stored in the intermediate data storage means.

【0015】請求項4に記載の発明は、描画プリミティ
ブを表わす描画コマンドを受け取り、該描画コマンドに
従ったビットマップデータを生成して出力する描画装置
において、前記描画コマンドの色情報と該描画コマンド
に対応する描画プリミティブの存在する走査線ごとのラ
ンの長さおよびその端部座標に基づき中間データを生成
する中間データ生成手段と、該中間データ生成手段によ
り生成された中間データを記憶する中間データ記憶手段
と、前記色情報の値に対応づけられた中間調を表わす所
定の大きさの2値データのマトリクスである中間調マト
リクスを記憶する中間調マトリクス記憶手段と、前記中
間データ記憶手段に記憶される中間データをビットマッ
プデータに展開する際に該中間データに含まれる色情報
の値に基づいて前記中間調マトリクス記憶手段に記憶さ
れている中間調マトリクスの中の1つを選択し該中間デ
ータに含まれる前記ランの長さおよび端部座標に基づい
て選択された中間調マトリクスの一部の2値データでビ
ットマップデータへの展開を行なう展開手段を有するこ
とを特徴とするものである。
According to a fourth aspect of the present invention, in a drawing device which receives a drawing command representing a drawing primitive, generates bitmap data in accordance with the drawing command, and outputs the bitmap data, the color information of the drawing command and the drawing command. Intermediate data generating means for generating intermediate data based on the length of run for each scanning line in which the drawing primitive corresponding to and the end coordinates thereof, and intermediate data for storing the intermediate data generated by the intermediate data generating means A storage unit, a halftone matrix storage unit that stores a halftone matrix that is a matrix of binary data of a predetermined size that represents a halftone associated with the value of the color information, and the intermediate data storage unit. When expanding the intermediate data to be converted into bitmap data, the One of the halftone matrices stored in the halftone matrix storage means is selected, and 2 of a part of the halftone matrix selected based on the length and end coordinates of the run included in the halftone data. It is characterized in that it has a expanding means for expanding the value data into bitmap data.

【0016】請求項5に記載の発明は、請求項4に記載
の描画装置において、前記中間調マトリクス記憶手段に
記憶された中間調マトリクスは、画像の走査線方向にC
PUのワード長の長さを持つことを特徴とするものであ
る。
According to a fifth aspect of the present invention, in the drawing apparatus according to the fourth aspect, the halftone matrix stored in the halftone matrix storage means is C in the scanning line direction of the image.
It is characterized by having a word length of PU.

【0017】請求項6に記載の発明は、描画プリミティ
ブを表わす描画コマンドを受け取り、該描画コマンドに
従ったビットマップデータを生成して出力する描画装置
において、前記描画コマンドの色情報と該描画コマンド
に対応する描画プリミティブの存在する走査線ごとのラ
ンおよびその端部座標を抽出する描画処理手段と、中間
データを記憶する中間データ記憶手段と、前記描画処理
手段により抽出された連続する2つのランの端部座標の
差分を計算し計算結果に基づいてデータ長の異なる複数
種類の中間データフォーマットの1つを選択し選択した
中間データフォーマットと前記端部座標の差分と前記描
画処理手段で抽出された前記ランおよび前記色情報に基
づいて中間データを生成して前記中間データ記憶手段に
記憶させる中間データ生成手段と、前記色情報の値に対
応づけられた中間調を表わす所定の大きさの2値データ
のマトリクスである中間調マトリクスを記憶する中間調
マトリクス記憶手段と、前記中間データ記憶手段に記憶
される中間データをビットマップデータに展開する際に
該中間データに含まれる色情報の値に基づいて前記中間
調マトリクス記憶手段に記憶されている中間調マトリク
スの中の1つを選択し該中間データに含まれる前記ラン
の長さおよび端部座標に基づいて選択された中間調マト
リクスの一部の2値データでビットマップデータへの展
開を行なう展開手段を有することを特徴とするものであ
る。
According to a sixth aspect of the present invention, in a drawing device that receives a drawing command representing a drawing primitive, generates bitmap data in accordance with the drawing command, and outputs the bitmap data, the color information of the drawing command and the drawing command. The drawing processing means for extracting the run for each scanning line in which the drawing primitive corresponding to is present and its end coordinates, the intermediate data storage means for storing the intermediate data, and the two consecutive runs extracted by the drawing processing means. The difference between the end coordinates is calculated, and one of a plurality of types of intermediate data formats having different data lengths is selected based on the calculation result, and the difference between the selected intermediate data format, the end coordinates, and the drawing processing means are extracted. Intermediate data is generated based on the run and the color information and stored in the intermediate data storage means. And a halftone matrix storage means for storing a halftone matrix which is a matrix of binary data of a predetermined size and which represents a halftone associated with the value of the color information, and the intermediate data storage means. When developing the stored intermediate data into bitmap data, one of the halftone matrices stored in the halftone matrix storage means is selected based on the value of the color information included in the intermediate data. It is characterized in that it has an expanding means for expanding binary data of a part of the halftone matrix selected based on the run length and the end coordinates included in the intermediate data into bitmap data. is there.

【0018】[0018]

【発明の実施の形態】図1は、本発明の描画装置の第1
の実施の形態を示すブロック図である。図中、1は入力
制御部、2はラスタ描画部、3はベクタ描画部、4は文
字描画部、5は中間データ生成部、6は中間データバッ
ファ、7は展開出力制御部、8,9はバンドバッファ、
10は出力装置である。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 1 shows a first drawing apparatus according to the present invention.
It is a block diagram showing an embodiment. In the figure, 1 is an input control unit, 2 is a raster drawing unit, 3 is a vector drawing unit, 4 is a character drawing unit, 5 is an intermediate data generation unit, 6 is an intermediate data buffer, 7 is an expansion output control unit, and 8 and 9. Is the band buffer,
Reference numeral 10 is an output device.

【0019】入力制御部1は、PDLで記述された描画
コマンドを受け取り、解釈を行なう。この描画コマンド
には、実際に描画を行なわせるコマンドのほか、環境設
定や制御用のコマンドなども含まれている。解釈の結果
は、描画コマンドによって描画される描画プリミティブ
に従って、ラスタ描画の場合はラスタデータと変換行列
がラスタ描画部2に、ベクタ描画の場合はベクタデー
タ、変換行列および色/線幅等の描画属性がベクタ描画
部3に、文字描画の場合は文字コード、変換行列、色/
フォント種等の描画属性が文字描画4に送られる。
The input control unit 1 receives a drawing command described in PDL and interprets it. The drawing commands include commands for actual drawing as well as commands for environment setting and control. The result of the interpretation is that, according to the drawing primitive drawn by the drawing command, the raster data and the conversion matrix are drawn in the raster drawing unit 2 in the case of raster drawing, and the vector data, the conversion matrix and the color / line width are drawn in the case of vector drawing. If the attribute is vector drawing unit 3, in the case of character drawing, character code, conversion matrix, color /
Drawing attributes such as font type are sent to the character drawing 4.

【0020】ラスタ描画部2は、入力されたラスタデー
タを出力装置10の色に合わせる処理と、変換行列で変
換したラスタデータを作成する処理を行なう。また、そ
の他の画像処理を行なう場合もある。さらに、各スキャ
ンライン上のラスタの存在する位置およびランレングス
を計算してエッジリストを作成し、ラスタデータへのポ
インタとともに中間データ生成部5へ渡す。
The raster drawing section 2 performs a process of matching the input raster data with the color of the output device 10 and a process of creating the raster data converted by the conversion matrix. In addition, other image processing may be performed. Further, the position where the raster exists on each scan line and the run length are calculated to create an edge list, and the edge list is passed to the intermediate data generation unit 5 together with the pointer to the raster data.

【0021】ベクタ描画部3では、塗りつぶし描画処理
とストローク描画処理が行なわれる。塗りつぶし描画処
理では、各スキャンライン毎に行列変換後のベクタが交
わる交点を抽出して、塗りつぶされるべき位置および長
さを示すエッジリストと、塗りつぶす出力装置10の色
を中間データ生成部5へ渡す。ストローク描画処理の場
合には、線幅/終端形状/接続形状からアウトラインベ
クタを生成してから、塗りつぶし描画処理を行なう。
The vector drawing section 3 performs a fill drawing process and a stroke drawing process. In the filling drawing processing, intersection points where vectors after matrix conversion intersect each other for each scan line are extracted, and an edge list indicating a position and a length to be filled and a color of the output device 10 to be filled are passed to the intermediate data generation unit 5. . In the case of stroke drawing processing, an outline vector is generated from the line width / terminal shape / connection shape and then the filled drawing processing is performed.

【0022】文字描画部4は、入力された文字コードか
ら対応するベクトルフォントを取り出し、ベクタ描画部
3の塗りつぶし描画処理と同様の処理を行なう。
The character drawing unit 4 extracts the corresponding vector font from the input character code and performs the same processing as the filled drawing processing of the vector drawing unit 3.

【0023】中間データ生成部5は、ラスタ描画部2、
ベクタ描画部3、文字描画部4からエッジリストを受け
取り、バンドバッファのバンド幅毎に分けた中間データ
を生成する。中間データは、色情報と複数の中間データ
セルを含む。中間データセルは、エッジリストから得ら
れる位置情報をもとに、2つのランの位置の差分を計算
して得られた位置の差分と、ランレングスを含む。中間
データセルのデータ長は複数存在し、計算された位置の
差分を示すために必要なデータ長の中間データフォーマ
ットが選択される。また、ランレングスも考慮して中間
データフォーマットを選択するように構成することもで
きる。中間データセルには選択された中間データフォー
マットを識別するための情報も含んでいる。1つの描画
プリミティブを描画する際には1色のみが用いられるこ
とが多いため、色の情報は描画プリミティブごとに1回
だけ付加するように構成することができる。また、連続
するランが異なるバンドバッファに含まれるときには、
そこで中間データを分ける。その場合にも色情報を付加
するように構成することができる。
The intermediate data generation unit 5 includes a raster drawing unit 2,
The edge list is received from the vector drawing unit 3 and the character drawing unit 4, and the intermediate data divided for each band width of the band buffer is generated. The intermediate data includes color information and a plurality of intermediate data cells. The intermediate data cell includes a run length and a position difference obtained by calculating a position difference between two runs based on the position information obtained from the edge list. There are a plurality of data lengths of the intermediate data cells, and the intermediate data format of the data length required to show the calculated difference in position is selected. Further, the intermediate data format may be selected in consideration of the run length. The intermediate data cell also contains information for identifying the selected intermediate data format. Since only one color is often used when drawing one drawing primitive, the color information can be configured to be added only once for each drawing primitive. Also, when consecutive runs are included in different band buffers,
Therefore, the intermediate data is divided. Even in that case, the color information can be added.

【0024】中間データバッファ6は、中間データ生成
部5で生成された中間データを保持する。
The intermediate data buffer 6 holds the intermediate data generated by the intermediate data generator 5.

【0025】展開出力制御部7は、バンドごとに中間デ
ータバッファ6から中間データを取り出してビットマッ
プデータに展開し、バンドバッファ8または9に書き込
む。また、出力装置10の起動制御なども行なう。
The expansion output control unit 7 extracts the intermediate data from the intermediate data buffer 6 for each band, expands it into bit map data, and writes it into the band buffer 8 or 9. Further, it also controls activation of the output device 10.

【0026】バンドバッファ8,9は、展開出力制御部
7で展開されたビットマップデータを記憶する。このバ
ンドバッファ8,9は交代バッファとして用いられ、一
方に展開出力制御部7が書き込みを行なっているとき
に、他方は出力装置10による読み出しが可能である。
これにより展開出力制御部7によるビットマップデータ
への展開処理と出力装置10による出力処理を並行して
行なうことができる。もちろん、バンドバッファを1つ
にしたり、あるいは用いない構成としてもよい。また、
3以上のバンドバッファを備えた構成としてもよい。
The band buffers 8 and 9 store the bitmap data expanded by the expansion output control unit 7. The band buffers 8 and 9 are used as alternation buffers, and one of them can be read by the output device 10 while the expansion output control unit 7 is writing.
As a result, the expansion processing to the bitmap data by the expansion output control unit 7 and the output processing by the output device 10 can be performed in parallel. Of course, the number of band buffers may be one or may not be used. Also,
A configuration including three or more band buffers may be used.

【0027】出力装置10は、展開出力制御部7によっ
て起動され、バンドバッファ8または9からバンドごと
のビットマップデータを読み出して出力する。この出力
装置10としては、一旦起動されると一定速度で1ペー
ジ分の出力を行なうタイプの装置を用いることができ
る。そのため、各バンドのビットマップデータは所定時
間内にバンドバッファ8または9に書き込まれている必
要がある。展開出力制御部7は、この所定時間内に中間
データからビットマップデータへの展開を行なう。
The output device 10 is activated by the expansion output control unit 7 and reads out bitmap data for each band from the band buffer 8 or 9 and outputs it. As the output device 10, it is possible to use a device of a type that once activated, outputs one page at a constant speed. Therefore, the bitmap data of each band needs to be written in the band buffer 8 or 9 within a predetermined time. The expansion output control unit 7 expands the intermediate data into bitmap data within this predetermined time.

【0028】以下、各部についてさらに説明する。図2
は、ラスタ描画部において生成されるエッジリストの一
例の説明図である。ラスタ描画部2には、入力制御部1
からラスタデータと変換行列が渡される。ラスタデータ
には、ラスタ画像とともに、ヘッダとしてラスタ画像の
横のバイト数、縦のスキャンライン数、色を示す1ドッ
ト当たりのビット数が与えられている。ラスタ描画部2
は、各ドットの色を表わす値を、出力装置10の色に合
うように変換する。また、変換行列を用いて回転や拡大
縮小などの変換処理を行なう。図2において左側に示し
たラスタ画像は、このような変換処理の後のものであ
る。
Each section will be further described below. FIG.
FIG. 7 is an explanatory diagram of an example of an edge list generated by a raster drawing unit. The raster drawing unit 2 includes an input control unit 1
Passes the raster data and the transformation matrix. Along with the raster image, the raster data is provided with the number of horizontal bytes of the raster image, the number of vertical scan lines, and the number of bits per dot indicating color as a header. Raster drawing unit 2
Converts the value representing the color of each dot to match the color of the output device 10. In addition, conversion processing such as rotation and scaling is performed using the conversion matrix. The raster image shown on the left side in FIG. 2 is one after such conversion processing.

【0029】さらにラスタ描画部2は、図2の右に示す
ようなエッジリストを作成する。エッジリストには、ラ
スタ画像へのポインタと、各スキャンラインにおけるそ
のスキャンラインのアドレス、ラスタ画像のスタート位
置、ランレングスのリストが含まれる。例えば、スキャ
ンラインY0では、ラスタ画像は位置SX0からスター
トし、長さRL0だけ存在する。そのため、Y0,SX
0,RL0を組にしてリストに登録する。各スキャンラ
インにおいてこのようなラスタ画像のスタート位置とラ
ンレングスを抽出することによって、図2右に示すよう
なエッジリストが得られる。このエッジリストは中間デ
ータ生成部5に渡される。
Further, the raster drawing section 2 creates an edge list as shown on the right side of FIG. The edge list includes a pointer to the raster image, the address of the scan line in each scan line, the start position of the raster image, and the run length list. For example, on scan line Y0, the raster image starts at position SX0 and exists for length RL0. Therefore, Y0, SX
0 and RL0 are paired and registered in the list. By extracting the start position and run length of such a raster image in each scan line, an edge list as shown on the right side of FIG. 2 is obtained. This edge list is passed to the intermediate data generator 5.

【0030】図3は、ベクタ描画部において生成される
エッジリストの一例の説明図である。ベクタ描画部3で
は、塗りつぶし描画処理とストローク描画処理が行なわ
れるが、どちらの場合もアウトラインとなるベクタをも
とに塗りつぶし描画処理を行なう。塗りつぶし描画処理
では、各スキャンライン毎に行列変換後のベクタが交わ
る交点を抽出して、塗りつぶされるべきスタート位置
と、長さを示すランレングスを抽出する。
FIG. 3 is an explanatory diagram of an example of the edge list generated by the vector drawing unit. The vector drawing unit 3 performs a fill drawing process and a stroke drawing process. In either case, the fill drawing process is performed based on the outline vector. In the filled drawing processing, the intersection point where the vectors after the matrix conversion intersect is extracted for each scan line, and the start position to be filled and the run length indicating the length are extracted.

【0031】いま、図3(A)に示すように、円と三角
形が描画される場合を考える。スキャンラインを破線で
示している。スキャンラインY0においては、円の頂部
を描画することになるので、そのスタート位置である位
置SX0と、塗りつぶす長さであるランレングスRL0
を抽出する。そして、位置SX0とランレングスRL0
をスキャンラインのアドレスY0と関連付けておく。ま
た、スキャンラインY1では、三角形の頂部と円の中程
を塗りつぶすので、三角形の頂部を塗りつぶすためのス
タート位置SX1と塗りつぶすランレングスRL1、お
よび、円を塗りつぶすためのスタート位置SX2と塗り
つぶすランレングスRL2を抽出する。そして、スキャ
ンラインのアドレスY1に、スタート位置SX1とラン
レングスRL1、スタート位置SX2とランレングスR
L2を対応づけておく。このようにして各スキャンライ
ンについて、スタート位置とランレングスを抽出し、各
スキャンラインのアドレスに関連付ける。さらに、これ
らの図形を塗りつぶす色の情報を付加し、図3(B)に
示すようなエッジリストを得る。このラスタ描画処理の
場合には、塗りつぶす色は1色に指定されているので、
エッジリスト全体で1つの色情報を有する。このように
して得られたエッジリストが中間データ生成部5に渡さ
れる。
Now, consider the case where a circle and a triangle are drawn as shown in FIG. Scan lines are indicated by broken lines. Since the top of the circle is drawn on the scan line Y0, the start position SX0 and the run length RL0 that is the fill length are drawn.
Is extracted. And position SX0 and run length RL0
Is associated with the scan line address Y0. In the scan line Y1, since the top of the triangle and the middle of the circle are filled, the start position SX1 and the run length RL1 for filling the top of the triangle, and the start position SX2 and the run length RL2 for filling the circle are filled. To extract. Then, at the address Y1 of the scan line, the start position SX1 and run length RL1, and the start position SX2 and run length R
L2 is associated. In this way, for each scan line, the start position and run length are extracted and associated with the address of each scan line. Further, color information for filling these figures is added to obtain an edge list as shown in FIG. In the case of this raster drawing process, the color to be filled is specified as one color, so
The entire edge list has one color information. The edge list thus obtained is passed to the intermediate data generation unit 5.

【0032】なお、文字描画部4における処理も、アウ
トラインフォントをもとに塗りつぶし処理を行なうの
で、ベクタ描画部3と同様のエッジリストを生成し、中
間データ生成部5に渡す。
Since the character drawing unit 4 also performs the filling process based on the outline font, an edge list similar to that of the vector drawing unit 3 is generated and passed to the intermediate data generating unit 5.

【0033】上述のラスタ描画部2、ベクタ描画部3、
文字病が部4で生成するエッジリストは、スタート位置
とランレングスを格納する代わりに、スタート位置とエ
ンド位置を格納しておき、中間データを作成する際にラ
ンレングスに変換してもよい。
The above raster drawing unit 2, vector drawing unit 3,
The edge list generated by the character disease in the section 4 may store the start position and the end position instead of storing the start position and the run length, and may be converted into the run length when the intermediate data is created.

【0034】図4は、中間データ生成部において中間デ
ータセルを生成する際に用いられる中間データフォーマ
ットの一例の説明図、図5は、中間データ生成部におけ
る中間データセルの生成の一例の説明図である。中間デ
ータ生成部5は、ラスタ描画部2、ベクタ描画部3、文
字描画部4から、例えば、図2や図3に示すようなエッ
ジリストを受け取り、中間データセルを生成する。
FIG. 4 is an explanatory diagram of an example of the intermediate data format used when the intermediate data generating unit generates the intermediate data cells, and FIG. 5 is an explanatory diagram of an example of the intermediate data cell generation in the intermediate data generating unit. Is. The intermediate data generation unit 5 receives an edge list as shown in FIGS. 2 and 3 from the raster drawing unit 2, the vector drawing unit 3, and the character drawing unit 4, and generates an intermediate data cell.

【0035】中間データ生成部5は、同じ色、または同
じラスターデータごとに、中間データを作成する。例え
ば、ある1色についての中間データを作成する場合、そ
の色のランを1つずつ取り出して処理を行なって行く。
図5において、(B)を現在注目しているランとし、
(A)を前回注目したランとする。ここでは、前回注目
したラン(A)の後端と、現在注目しているラン(B)
の先端との位置の差分を計算する。計算されたスキャン
ライン方向の差分をDX、スキャンラインと直交する方
向の差分をDYとする。
The intermediate data generator 5 creates intermediate data for each same color or the same raster data. For example, when creating intermediate data for a certain color, the runs of that color are taken out one by one and processed.
In FIG. 5, (B) is a run that is currently focused on,
Let (A) be the run that attracted attention last time. Here, the trailing edge of the last run (A) and the current run (B)
Calculate the difference in position from the tip of. The calculated difference in the scan line direction is DX, and the difference in the direction orthogonal to the scan line is DY.

【0036】このとき、ラン(A)とラン(B)は、ス
キャンラインごとにエッジリストを生成している場合、
同じスキャンラインか、次のスキャンラインである可能
性が高い。すなわち、差分DYは0または1である可能
性が高い。しかも、スキャンライン方向の差分DXも、
小さい値である可能性が高い。このような性質を利用し
て、データ量を削減することが可能である。
At this time, if the run (A) and the run (B) generate an edge list for each scan line,
Most likely the same scan line or the next scan line. That is, the difference DY is highly likely to be 0 or 1. Moreover, the difference DX in the scan line direction is also
It is likely to be a small value. It is possible to reduce the amount of data by using such a property.

【0037】ここではラン(A)の後端とラン(B)の
先端との位置の差分を計算したが、逆にラン(A)の先
端とラン(B)の後端との位置の差分を計算したり、両
者の先端の位置の差分や、両者の後端の位置の差分を計
算することもでき、種々の点を基準に差分を取ることが
可能である。
Here, the difference in position between the trailing end of the run (A) and the leading end of the run (B) was calculated, but conversely, the difference in position between the leading end of the run (A) and the trailing end of the run (B) was calculated. Can be calculated, or the difference between the positions of the front ends of the two and the difference between the positions of the rear ends of the two can be calculated, and the difference can be obtained with reference to various points.

【0038】図4に示すように、差分DX,DYを表わ
すのに必要なビット数を変えた、いくつかの中間データ
セルのためのフォーマットを用意しておく。そして、差
分DX,DYの値、さらにはランレングスの値に応じ
て、これらのフォーマットの中から選択して用いる。こ
こでは、4つのフォーマットをあらかじめ用意してい
る。これらのフォーマットからもわかるように、差分D
Yを表わす領域を小さく取り、差分DXおよびランレン
グスRLのデータ長を変えている。また、どのフォーマ
ットのデータであるかを示すため、先頭にタイプを表わ
すデータを付加している。このタイプを表わすデータ
は、ここでは4つのフォーマットを識別できればよいの
で、2bitあればよい。もちろんフォーマット数が増
加する場合にはそれに応じたデータ長が必要である。
As shown in FIG. 4, formats for some intermediate data cells are prepared in which the number of bits required to represent the differences DX and DY is changed. Then, according to the values of the differences DX and DY, and further, the value of the run length, one of these formats is selected and used. Here, four formats are prepared in advance. As you can see from these formats, the difference D
The area representing Y is made small and the data lengths of the difference DX and the run length RL are changed. Further, in order to indicate which format the data is, data indicating the type is added to the beginning. Here, the data representing this type need only be 2 bits, as long as the four formats can be identified here. Of course, when the number of formats increases, a data length corresponding to that is required.

【0039】図4(A)に示したフォーマットは、数ド
ット程度の描画しない部分を挟んで描画したり、あるい
は細い縦線や斜め線、文字などを描画する際に適したフ
ォーマットである。具体的にはランレングスデータ3b
it、差分DY1ビット、差分DX2bitと、タイプ
2bitの8bit(=1Byte)で構成されてい
る。
The format shown in FIG. 4A is a format suitable for drawing with a portion of several dots which is not drawn sandwiched therebetween, or for drawing thin vertical lines, diagonal lines, characters and the like. Specifically, run length data 3b
It, the difference DY 1 bit, the difference DX 2 bit, and the type 2 bit 8 bit (= 1 byte).

【0040】図4(B)に示したフォーマットは、もう
少し大きな図形を描画する際に用いられるフォーマット
である。このフォーマットは2Byteで構成されてお
り、具体的には、例えばランレングス6bit、差分D
Y1bit、差分DX7bitと、タイプ2bitによ
り構成することができる。
The format shown in FIG. 4B is a format used when drawing a slightly larger figure. This format is composed of 2 bytes, and specifically, for example, run length 6 bits, difference D
It can be configured by Y1 bit, difference DX7 bit, and type 2 bit.

【0041】図4(C)に示したフォーマットは、さら
に大きな図形あるいは離れた部分を描画する際に用いら
れるフォーマットである。このフォーマットは、4By
teで構成されている。具体的には、例えばランレング
ス14bit、差分DY2bit、差分DX14bit
と、タイプ2bitで構成することができる。
The format shown in FIG. 4C is a format used when drawing a larger figure or a distant portion. This format is 4By
te. Specifically, for example, run length 14 bits, difference DY2 bit, difference DX14 bit
, And can be configured with a type 2 bit.

【0042】図4(D)に示したフォーマットは、特に
描画の開始時に用いられ、スキャンライン方向の絶対座
標Xとスキャンラインの座標Yによって、絶対位置を明
示する場合に用いられる。このフォーマットは6Byt
eで構成されている。具体的には、タイプの2bitと
ランレングス14bit、それに絶対座標X,Yに16
bitずつを割り当てることができる。
The format shown in FIG. 4D is used especially at the start of drawing, and is used when the absolute position is clearly indicated by the absolute coordinate X in the scan line direction and the coordinate Y of the scan line. This format is 6 Byte
e. Specifically, the type is 2 bits, the run length is 14 bits, and the absolute coordinates X and Y are 16 bits.
Each bit can be assigned.

【0043】このようなフォーマットを用いて中間デー
タセルを生成する場合、図4(D)に示すフォーマット
は、各描画プリミティブの最初で用いるほかはあまり用
いられず、多くの場合は図4(A)あるいは図4(B)
に示すフォーマットが用いられる。そのため、中間デー
タ全体のデータ量は非常に少なくなる。
When an intermediate data cell is generated using such a format, the format shown in FIG. 4D is rarely used except at the beginning of each drawing primitive, and in many cases, the format shown in FIG. ) Or FIG. 4 (B)
The format shown in is used. Therefore, the data amount of the whole intermediate data becomes very small.

【0044】図6は、中間データの形式の一例の説明図
である。1つの描画プリミティブを描画するためには、
上述のような中間データセルが通常は複数生成されるこ
とになる。中間データ生成部5は、これらの複数の中間
データセルと色の情報をまとめ、中間データを生成す
る。1つの描画プリミティブから生成される中間データ
は、例えば、図6に示すように、中間データセルの個数
と、色の情報と、中間データセルの列により構成され
る。中間データセルの個数の情報には、ベクタデータや
文字データなどのようにベクタデータ内を1色で塗りつ
ぶす場合と、ラスタデータのようにそのままの配色で出
力する場合を区別するための識別子も含んでいる。ま
た、色の情報は、ベクタデータや文字データを描画した
際には、描画に用いるある1色を示す情報が格納され
る。また、ラスタデータを描画する際には、ラスタデー
タへのポインタが格納される。具体的なフォーマットと
しては、中間データセルの個数を示す情報が4Byt
e、色の情報が4Byte、そしてそれに続いて図4に
示した4つの中間データセルが中間データセルの個数だ
け並ぶことになる。
FIG. 6 is an explanatory diagram of an example of the format of the intermediate data. To draw one drawing primitive,
Normally, a plurality of intermediate data cells as described above will be generated. The intermediate data generation unit 5 collects the plurality of intermediate data cells and the color information to generate intermediate data. The intermediate data generated from one drawing primitive includes, for example, as shown in FIG. 6, the number of intermediate data cells, color information, and a column of intermediate data cells. The information on the number of intermediate data cells also includes an identifier for distinguishing between the case where the vector data is filled with one color such as vector data and character data and the case where the color data is output as it is like raster data. I'm out. Further, as the color information, when vector data or character data is drawn, information indicating a certain color used for drawing is stored. When drawing raster data, a pointer to the raster data is stored. As a specific format, information indicating the number of intermediate data cells is 4 Byte.
e, 4 bytes of color information, and then four intermediate data cells shown in FIG. 4 are arranged by the number of intermediate data cells.

【0045】1つの描画プリミティブが複数のバンドに
跨る場合、同じ色によって描画される中間データセルが
並ぶ場合であっても、バンドごとに中間データセルの個
数および色の情報が挿入され、別の中間データとして生
成される。このようにしておくことによって、バンドご
とのビットマップデータへの展開を容易に行なうことが
できる。
When one drawing primitive extends over a plurality of bands, even if the intermediate data cells drawn in the same color are lined up, the number of intermediate data cells and the color information are inserted for each band, and It is generated as intermediate data. By doing so, it is possible to easily develop each band into bitmap data.

【0046】このような中間データが中間データバッフ
ァ6に記憶される。中間データ生成部5では、受け取っ
たエッジリストからあるバンドに含まれるスキャンライ
ン数を特定できるので、その数を中間データセルの個数
とし、色の情報としてラスタデータの場合にはイメージ
へのポインタを、また、その他の場合には描画色を出力
する。その後、スタートアドレスとランレングスのデー
タからアドレスの差分とランレングスから図3に示すフ
ォーマットのいずれかを選択し、中間データセルを順次
生成して中間データバッファ6に書き出す。このとき、
中間データセルの長さは複数種類存在するが、直前に書
き出した中間データセルのタイプによって中間データバ
ッファ6のアドレスを更新しながら書き出せばよい。
Such intermediate data is stored in the intermediate data buffer 6. Since the intermediate data generation unit 5 can specify the number of scan lines included in a band from the received edge list, the number is used as the number of intermediate data cells, and in the case of raster data as color information, a pointer to an image is used. In other cases, the drawing color is output. After that, one of the formats shown in FIG. 3 is selected from the address difference and the run length from the start address and the run length data, and intermediate data cells are sequentially generated and written to the intermediate data buffer 6. At this time,
There are a plurality of types of lengths of the intermediate data cells, but the length may be written while updating the address of the intermediate data buffer 6 according to the type of the intermediate data cell written immediately before.

【0047】図7は、中間データの具体例の説明図であ
る。いま、図7(A)に示すように、バンド0とバンド
1にかけて円を、バンド1に三角形を、バンド2とバン
ド3にかけて45゜回転させたラスタ画像を、それぞれ
描画する場合を考える。図6において、図示の都合上、
各スキャンラインの描画を行なう部分を棒線で示し、各
図形の色をハッチングを変えて示している。このとき中
間データバッファ6に出力される中間データを図7
(B)に示している。
FIG. 7 is an explanatory diagram of a specific example of the intermediate data. Now, as shown in FIG. 7A, consider a case where a circle is drawn between band 0 and band 1, a triangle is drawn in band 1, and a raster image rotated by 45 degrees is drawn between band 2 and band 3, respectively. In FIG. 6, for convenience of illustration,
The portion where each scan line is drawn is shown by a bar line, and the color of each figure is shown with different hatching. At this time, the intermediate data output to the intermediate data buffer 6 is shown in FIG.
This is shown in FIG.

【0048】バンド0については、2本のスキャンライ
ンについて円を描画する部分が存在する。各スキャンラ
インに1カ所ずつの描画部分が存在するため、中間デー
タセルが2個生成される。また、この描画がベクタデー
タによるものであることを示す識別子も付加される。そ
して、この円を塗りつぶす色(ここでは右下がりのハッ
チングで示す)が格納され、その後に2つの中間データ
セルが出力される。最初の中間データセルは、描画の開
始であるため、絶対座標を示す必要がある。そのため、
図4(D)に示すフォーマットが選択され、描画するラ
ンレングスと、絶対座標によって中間データセルが生成
される。また、それに隣接する円の描画部分は、先の描
画部分の終端とこれから描画する部分の先端との差分を
計算し、その差分を表わすのに必要なフォーマットが選
択される。この場合のスキャンライン方向の差分DYは
1である。ここでは、図4(B)に示すフォーマットが
選択されたものとしている。
For band 0, there is a portion for drawing a circle for two scan lines. Since each scan line has one drawing portion, two intermediate data cells are generated. An identifier indicating that this drawing is based on vector data is also added. Then, the color for filling the circle (shown by hatching in the lower right direction) is stored, and then two intermediate data cells are output. Since the first intermediate data cell is the start of drawing, it is necessary to indicate absolute coordinates. for that reason,
The format shown in FIG. 4 (D) is selected, and the intermediate data cell is generated by the run length to be drawn and the absolute coordinates. Further, for the drawing portion of the circle adjacent to it, the difference between the end of the previous drawing portion and the tip of the portion to be drawn is calculated, and the format required to express the difference is selected. In this case, the difference DY in the scan line direction is 1. Here, it is assumed that the format shown in FIG. 4B has been selected.

【0049】バンド1では、まず円の残りの部分を描画
するための中間データが生成される。この部分は2本の
スキャンラインに1カ所ずつの描画部分として存在す
る。中間データセルの個数を2とし、色の情報を出力す
る。そして、2つの中間データセルを出力する。最初の
中間データセルは、このバンドでの円の描画の開始点で
あるので、絶対座標で開始位置を指示するため、図4
(D)のフォーマットが用いられる。次のスキャンライ
ンでは、この例では図4(A)のフォーマットが用いら
れている。
In band 1, first, intermediate data for drawing the remaining portion of the circle is generated. This portion exists as a drawing portion for each of the two scan lines. The number of intermediate data cells is set to 2, and color information is output. Then, two intermediate data cells are output. Since the first intermediate data cell is the start point of drawing a circle in this band, the start position is indicated by absolute coordinates.
The format (D) is used. In the next scan line, the format of FIG. 4A is used in this example.

【0050】さらに、バンド1では三角形が描画され
る。そのための中間データとして、中間データセルの個
数3、色の情報(ここでは右上がりのハッチングとして
示す)、それに3つの中間データセルが続く。この場合
も、最初の中間データセルでは描画のはじめであるので
絶対座標により開始位置を示すため、図4(D)に示す
フォーマットを用い、その後は座標の差分に従ってフォ
ーマットが選択される。ここでは、図4(B),(A)
のフォーマットが選択され、中間データセルが生成され
ている。
Further, in band 1, a triangle is drawn. As the intermediate data therefor, the number of intermediate data cells is 3, color information (shown here as upward-sloping hatching), and three intermediate data cells follow. In this case as well, since the drawing is started at the first intermediate data cell, the start position is indicated by absolute coordinates. Therefore, the format shown in FIG. 4D is used, and thereafter the format is selected according to the difference in coordinates. Here, FIG. 4 (B), (A)
Format has been selected and intermediate data cells have been generated.

【0051】バンド2では、ラスタ画像の一部が描画さ
れる。このバンド内での中間データセルの個数は3であ
り、ラスタデータであることを示す識別子が付加され
る。また、色の情報として、ラスタ画像を示すイメージ
データへのポインタが出力される。図7では、ポインタ
を‘*’で示している。さらに、3つの中間データセル
が続いている。最初の中間データセルが絶対座標で描画
の開始点を示すために図4(D)のフォーマットを用
い、次が図4(B)、最後が図4(C)のフォーマット
を用いている。バンド3についてもバンド2と同様であ
る。
In band 2, a part of the raster image is drawn. The number of intermediate data cells in this band is 3, and an identifier indicating that it is raster data is added. Further, as color information, a pointer to image data indicating a raster image is output. In FIG. 7, the pointer is indicated by “*”. Furthermore, three intermediate data cells follow. The first intermediate data cell uses the format of FIG. 4D to indicate the drawing start point in absolute coordinates, the second uses the format of FIG. 4B, and the last uses the format of FIG. 4C. The band 3 is similar to the band 2.

【0052】このようにして、バンド単位にわけられ、
ページ全体の中間データが中間データバッファ6に書き
込まれると、展開出力制御部7がこれを取り出し、バン
ドごとにビットマップデータに展開し、バンドバッファ
8または9に書き込む。例えば、展開出力制御部7が最
初のバンドに対する中間データをビットマップ展開して
バンドバッファ8に書き込み、出力装置10を起動す
る。起動された出力装置10は、バンドバッファ8から
ビットマップデータを読み込み、印刷プロセスを行な
う。展開出力制御部7は、バンドバッファ8にビットマ
ップデータを書き込み、出力装置10を起動後は、出力
装置10の印刷中に2つめのバンドに対する中間データ
をビットマップ展開してバンドバッファ9に書き込む。
出力装置10は、バンドバッファ8内のビットマップデ
ータを印刷後は、バンドバッファ9内のビットマップデ
ータを読み込み、印刷プロセスを行なう。展開出力制御
部7は、出力装置10がバンドバッファ8内のビットマ
ップデータについて、印刷プロセス完了後に、3番目の
バンドに対する中間データをビットマップに展開し、バ
ンドバッファ8へ書き込む。以下、展開出力制御部7
は、バンドバッファ8または9内のビットマップデータ
が出力装置10で処理されるごとに、交互にバンドごと
のビットマップデータを書き込む。また、出力装置10
は、交互にバンドバッファ8または9からビットマップ
データを読み出し、印刷プロセスを行なう。この動作を
最終バンドになるまで繰り返し、1ページの印刷を行な
う。
In this way, it is divided into band units,
When the intermediate data of the entire page is written in the intermediate data buffer 6, the expansion output control unit 7 extracts this, expands it into bitmap data for each band, and writes it in the band buffer 8 or 9. For example, the expansion output control unit 7 expands the intermediate data for the first band into a bitmap, writes it in the band buffer 8, and activates the output device 10. The activated output device 10 reads the bitmap data from the band buffer 8 and performs a printing process. The expansion output control unit 7 writes the bitmap data in the band buffer 8, and after starting the output device 10, expands the intermediate data for the second band into a bitmap and writes it in the band buffer 9 while the output device 10 is printing. .
After printing the bitmap data in the band buffer 8, the output device 10 reads the bitmap data in the band buffer 9 and performs a printing process. The expansion output control unit 7 expands the intermediate data for the third band into a bitmap after the printing process is completed for the bitmap data in the band buffer 8 by the output device 10, and writes it in the band buffer 8. Hereinafter, the expansion output control unit 7
Writes the bitmap data for each band alternately every time the bitmap data in the band buffer 8 or 9 is processed by the output device 10. Also, the output device 10
Alternately reads the bit map data from the band buffer 8 or 9 and performs the printing process. This operation is repeated until the final band is reached, and one page is printed.

【0053】上述のような構成において、通常解像度を
600spi程度としたとき、中間データバッファ6に
記憶される中間データは、ビットマップデータの50分
の1程度となった。バンド幅を16分の1程度にする
と、2つのバンドバッファ8、9にフレームバッファの
8分の1程度のメモリが必要であるので、全体としてフ
レームバッファの15%程度のメモリ容量で出力が可能
になった。また、中間データのデータ量を管理すること
で、間引き操作などで画質を犠牲にして制限された少な
いメモリから出力することにも簡単に対応できる。
In the above structure, when the normal resolution is set to about 600 spi, the intermediate data stored in the intermediate data buffer 6 is about 1/50 of the bitmap data. When the bandwidth is reduced to about 1/16, the two band buffers 8 and 9 require about 1/8 of the memory of the frame buffer, so that the output is possible with the memory capacity of about 15% of the frame buffer as a whole. Became. Further, by managing the data amount of the intermediate data, it is possible to easily cope with output from a limited small memory at the sacrifice of image quality due to a thinning operation or the like.

【0054】なお、上述の中間データのように、ベクタ
データや文字データでは多数の中間データセルに対して
1つの色情報のみを保持させているのは、描画プリミテ
ィブに対して複数色の指定が可能でも、指定される色は
1色であることが多いためである。1つの描画プリミテ
ィブについて多数の色を用いる場合には、色毎に中間デ
ータも分ける必要がある。また、ある描画プリミティブ
に他の描画プリミティブが上書きされる場合、重なった
部分はどちらかの描画プリミティブの色にするか、ある
いは混合色にする場合がほとんどである。どちらかの色
にする場合には、重なり部分について、どちらかの描画
プリミティブの中間データセルのランレングスを補正す
ればよい。また、混合色にする場合には、別の色の中間
データとして、重なり部の中間データを作成することに
なる。しかし、このような上書きもほとんどされないの
が現状である。そのため、データ量が増加することもほ
とんどの場合にはない。
Like the above-mentioned intermediate data, in the vector data and the character data, only one color information is held for many intermediate data cells. This is because the designated color is often one even if possible. When a large number of colors are used for one drawing primitive, it is necessary to separate the intermediate data for each color. In addition, when another drawing primitive is overwritten on a certain drawing primitive, the overlapping portion is almost always the color of one of the drawing primitives or a mixed color. In the case of using either color, the run length of the intermediate data cell of either drawing primitive may be corrected for the overlapping portion. Further, when the mixed color is used, the intermediate data of the overlapping portion is created as the intermediate data of another color. However, at present, such overwriting is rarely performed. Therefore, the amount of data does not increase in most cases.

【0055】上述の例では、描画プリミティブごとに中
間データを生成したが、これに限らず、例えば、複数の
描画プリミティブのエッジリストをスキャンラインでソ
ートし、描画プリミティブに関係なく同じ色で描画する
部分を抽出して中間データを生成するように構成しても
よい。また、上述の例では、エッジリストを一旦生成
し、そのエッジリストをもとに中間データを生成した
が、各描画部において直接中間データを生成するように
構成してもよい。
In the above example, the intermediate data is generated for each drawing primitive, but not limited to this, for example, the edge list of a plurality of drawing primitives is sorted by the scan line, and the same color is drawn regardless of the drawing primitives. It may be configured to extract the portion and generate the intermediate data. Further, in the above example, the edge list is generated once and the intermediate data is generated based on the edge list, but the intermediate data may be directly generated in each drawing unit.

【0056】以下、具体例を用いて描画コマンドを受け
取ってから中間データを生成するまでの処理について詳
細に説明する。図8は、描画する図形の具体例の説明
図、図9は、図8に示す図形を描画するための描画コマ
ンドの一例の説明図である。ここでは、図8に示す図形
を描画する場合の処理について具体的に説明する。
The process from receiving the drawing command to generating the intermediate data will be described in detail below using a specific example. FIG. 8 is an explanatory diagram of a specific example of a graphic to be drawn, and FIG. 9 is an explanatory diagram of an example of a drawing command for drawing the graphic shown in FIG. Here, the processing for drawing the figure shown in FIG. 8 will be specifically described.

【0057】図8に示す図形を描画するため、図9に示
すようなアウトラインを作成する描画コマンドが入力制
御部1へ送られてきたものとする。図9に示す描画コマ
ンドにおいて、「(1.1,3.9)moveto」は
現在位置の移動コマンドであり、直線1の始点を(1.
1,3,9)とする命令である。次の「(1.1,1.
1)lineto」は、現在位置から指定された位置ま
での直線を描画するコマンドである。ここでは(1.
1,3.9)から(1.1,1.1)までの直線が描画
される。また、ここで指定された点が新たな現在位置と
なり、次の直線2の始点となる。同様に、「(7.9,
1.1)lineto」は、現在位置である(1.1,
1.1)から(7.9,1.1)までの直線を描画する
命令であり、この(7.9,1.1)が直線2の終点で
あって直線3の始点となる。以下同様にして、「(1.
9,3.9)lineto」により直線11までが描画
される。さらに、「close」によって、直線12の
始点である(1.9,3.9)から、直線1の始点であ
る(1.1,3.9)までの直線が描画され、閉じた図
形となる。ここで、「50fill」によって、この閉
じた図形が色50によって塗りつぶされる。このように
して、図8に示す図形が描画される。図8では、太線に
よって図9に示した描画コマンドによって描かれる直線
を示し、脇に直線の番号を付記している。
In order to draw the figure shown in FIG. 8, it is assumed that a drawing command for creating an outline as shown in FIG. 9 has been sent to the input control unit 1. In the drawing command shown in FIG. 9, “(1.1,3.9) moveto” is a movement command for the current position, and the start point of the straight line 1 is (1.
1, 3, 9). Next, “(1.1, 1.
1) "lineto" is a command for drawing a straight line from the current position to the specified position. Here, (1.
A straight line from (1,3.9) to (1.1,1.1) is drawn. In addition, the point specified here becomes the new current position and becomes the start point of the next straight line 2. Similarly, "(7.9,
1.1) lineeto "is the current position (1.1,
This is an instruction to draw a straight line from 1.1) to (7.9, 1.1), and this (7.9, 1.1) is the end point of the straight line 2 and the start point of the straight line 3. Similarly, "(1.
A straight line 11 is drawn by "9,3.9) lineto". Further, by "close", a straight line from the starting point of the straight line 12 (1.9, 3.9) to the starting point of the straight line 1 (1.1, 3.9) is drawn, and a closed figure is obtained. Become. Here, by "50 fill", the closed figure is filled with the color 50. In this way, the figure shown in FIG. 8 is drawn. In FIG. 8, a bold line indicates a straight line drawn by the drawing command shown in FIG. 9, and a straight line number is added to the side.

【0058】入力制御部1では、図9に示すような描画
コマンドを解釈して、ベクタ描画部3に対してベクタ作
成コマンドを直線1から直線12まで発行する。すなわ
ち図8における太線に相当するベクタを作成してベクタ
描画部3に渡す。ベクタ描画部3では、ベクタ作成コマ
ンドを受けて内部にベクタデータとして保持する。
The input control unit 1 interprets the drawing command as shown in FIG. 9 and issues a vector creation command from the straight line 1 to the straight line 12 to the vector drawing unit 3. That is, a vector corresponding to the thick line in FIG. 8 is created and passed to the vector drawing unit 3. The vector drawing unit 3 receives the vector creation command and holds it internally as vector data.

【0059】次に入力制御部1は、色50で塗りつぶす
コマンドをベクタ描画部2−3に対して発行する。ベク
タ描画部3では、まず中間データ生成部5へ色50で初
期化するコマンドを送る。これを受け取った中間データ
生成部5は、各バンドに対する図6に示すような中間デ
ータの中間データセルの個数のフィールドを0にし、続
く中間データセルの部分を無効にし、色の値50を保持
する。
Next, the input control unit 1 issues a command to fill with the color 50 to the vector drawing unit 2-3. The vector drawing unit 3 first sends a command for initializing with the color 50 to the intermediate data generating unit 5. Upon receiving this, the intermediate data generation unit 5 sets the field of the number of intermediate data cells of the intermediate data as shown in FIG. 6 for each band to 0, invalidates the portion of the following intermediate data cells, and holds the color value 50. To do.

【0060】まずベクタ描画部3は、ディスプレイリス
トを作成する。図10は、ディスプレイリストの一例の
説明図である。ディスプレイリストは、各スキャンライ
ンと交わるベクタデータのリストである。水平線(始
点、終点のy座標が同じ)は、ディスプレイリストに追
加されない。また複数のスキャンラインと交わるベクタ
は、ベクタデータの始点、終点のうちy座標の小さい方
に対応するスキャンラインのディスプレイリストに追加
される。この場合対応するスキャンラインの番号は整数
値なので、ベクタデータのy座標の小さい方に0.5を
足して整数部分を取った値にしている。
First, the vector drawing section 3 creates a display list. FIG. 10 is an explanatory diagram of an example of the display list. The display list is a list of vector data that intersects each scan line. Horizontal lines (starting point and ending point have the same y coordinate) are not added to the display list. A vector intersecting with a plurality of scan lines is added to the display list of scan lines corresponding to the smaller y coordinate of the start point and end point of the vector data. In this case, since the number of the corresponding scan line is an integer value, 0.5 is added to the smaller y coordinate of the vector data to obtain a value obtained by taking the integer part.

【0061】 scan=int(min(y)+0.5)) 図8では破線でスキャンラインを示している。図8に示
した例の場合は、スキャンライン1において、直線1と
直線3が交わる。そのため、スキャンライン1に直線1
と直線3がつなげられる。また、スキャンライン2では
直線1,3,5,7,9,11が交わる。このうち直線
1,3はスキャンライン1のディスプレイリストにつな
げられているので、スキャンライン2には直線5,7,
9,11がつなげられる。このようにして、図10に示
すようなディスプレイリストが作成される。
Scan = int (min (y) +0.5)) In FIG. 8, the scan line is indicated by a broken line. In the case of the example shown in FIG. 8, the straight line 1 and the straight line 3 intersect in the scan line 1. Therefore, scan line 1 has a straight line 1
And the straight line 3 are connected. Further, in the scan line 2, straight lines 1, 3, 5, 7, 9, 11 intersect. Of these, the straight lines 1 and 3 are connected to the display list of the scan line 1, so the straight lines 5, 7 and
9 and 11 can be connected. In this way, the display list as shown in FIG. 10 is created.

【0062】ディスプレイリスト中の各ラインのセルに
含まれる情報は、そのセルのつながれている最初のスキ
ャンライン(座標値は、0.5のオフセットで考える。
例えば、スキャンライン0のy座標は0.5、スキャン
ライン1のy座標は1.5とする。)とその直線が交わ
るx座標(SX)、1スキャンライン上がるときのx座
標の移動量(DX)、この直線が何本のスキャンライン
と交わるか(DY)の情報が格納されている。例えば、
ライン1のセルには、SX=1.1、DX=0.0、D
Y=3が格納されている。また、ライン3のセルには、
SX=7.9、DX=0.0、DY=4が格納されてい
る。
The information contained in the cell of each line in the display list is considered at the first scan line (coordinate value is an offset of 0.5) connected to the cell.
For example, the y coordinate of scan line 0 is 0.5 and the y coordinate of scan line 1 is 1.5. ) And its straight line intersect, the x-coordinate (SX), the amount of movement of the x-coordinate when one scan line goes up (DX), and how many scan lines this straight line intersects (DY) are stored. For example,
In the cell of line 1, SX = 1.1, DX = 0.0, D
Y = 3 is stored. Also, in the cell of line 3,
SX = 7.9, DX = 0.0, and DY = 4 are stored.

【0063】次に、ベクタ描画部3では、図10に示し
たようなディスプレイリストをスキャン走査することに
よって、各スキャンラインにおける描画オブジェクトに
対応するエッジリストを順番に作成してゆく。この手順
は、各スキャンラインごとにアクティブリスト→塗り潰
しリスト→エッジリストの順に変換を行なう。以下、こ
の手順にそって説明する。
Next, the vector drawing unit 3 scans the display list as shown in FIG. 10 to sequentially create the edge list corresponding to the drawing object in each scan line. In this procedure, each scan line is converted in the order of active list → fill list → edge list. The procedure will be described below.

【0064】スキャンライン0は、対応するディスプレ
イリストがなく、アクティブリストも作成されないの
で、何もしない。図11は、スキャンライン1処理時の
アクティブリストの一例の説明図である。スキャンライ
ン1では、ディスプレイリストにライン1とライン3が
ある。これをアクティブリストに追加する。この状態を
図11に示している。アクティブリストは、現在のスキ
ャンラインで有効なラインのセルのリストでありデータ
構造はディスプレイリストのラインのセルと同じであ
る。ただし、セル内のデータは、スキャンラインを処理
する度に更新されて行く。
Scanline 0 does not do anything because it has no corresponding display list and no active list is created. FIG. 11 is an explanatory diagram of an example of the active list when the scan line 1 is processed. For scan line 1, there are line 1 and line 3 in the display list. Add it to the active list. This state is shown in FIG. The active list is a list of cells of the line that is valid in the current scan line and has the same data structure as the cells of the lines of the display list. However, the data in the cell is updated every time the scan line is processed.

【0065】次に塗り潰しリストを作成する。図12
は、スキャンライン1処理時の塗り潰しリストの一例の
説明図である。塗り潰しリストは、アクティブリストか
らスキャンラインに交わるx座標値を取り出して、x座
標値でソートするものである。例えば、スキャンライン
1では図11に示すアクティブリストを参照し、スキャ
ンライン1が直線1と交わる点のx座標1.1と、直線
3と交わる点のx座標7.9が取り出され、図12に示
すような塗り潰しリストが作成される。
Next, a filled list is created. FIG.
FIG. 7 is an explanatory diagram of an example of a filling list when processing scan line 1. The filled list is for extracting x-coordinate values intersecting the scan line from the active list and sorting by the x-coordinate values. For example, referring to the active list shown in FIG. 11 for the scan line 1, the x-coordinate 1.1 of the point where the scan line 1 intersects the straight line 1 and the x-coordinate 7.9 of the point where the scan line 1 intersects the straight line 3 are extracted, and FIG. A filled list as shown in is created.

【0066】ベクタ描画部3では、塗り潰しリストに基
づいてエッジリストを作成する。図13は、スキャンラ
イン1のエッジリストの一例の説明図である。描画され
る領域は、例えば昇順に並べ替えられた塗り潰しリスト
のX座標の小さい方から大きい方へ順に見てゆくとき、
奇数番目と偶数番目の間が描画される領域である。ここ
では、X座標の整数部分を使用する。図12に示す塗り
潰しリストから、1番目のセルの座標「1」から、2番
目のセルの座標「7」までが塗りつぶされる領域である
ので、図13に示すように、スタート座標が1、エンド
座標が7のエッジリストが生成される。このとき、ラン
レングスのデータを作成し、スタート座標とランレング
スによりエッジリストを構成してもよい。この図12に
示すようなエッジリストとスキャンライン番号を、中間
データ生成部5へ渡す。
The vector drawing section 3 creates an edge list based on the filled list. FIG. 13 is an explanatory diagram of an example of the edge list of the scan line 1. For example, when the regions to be drawn are viewed in ascending order of the X-coordinates of the filled list sorted in ascending order,
The area between the odd number and the even number is the area to be drawn. Here, the integer part of the X coordinate is used. From the fill list shown in FIG. 12, the area from the coordinate “1” of the first cell to the coordinate “7” of the second cell is the area to be filled, so as shown in FIG. An edge list with coordinates 7 is generated. At this time, run length data may be created, and the edge list may be configured by the start coordinates and run length. The edge list and scan line number as shown in FIG. 12 are passed to the intermediate data generation unit 5.

【0067】中間データ生成部5では、スキャンライン
番号を見てどのバンドに含まれるかを判断する。そし
て、このバンドの中間データの中間データセルの個数を
示す変数NUMの値を参照するが、もしこの変数NUM
が0であれば、中間データバッファ6の対応するバンド
のカレントポイントの位置に個数データを書き込むため
に必要な領域分確保し、カレントポイントをインクリメ
ントする。また、中間データセルの個数をカウントする
ため、インクリメントする前のカレントポイントを別に
記憶しておく。そして、保持しておいた色の値50をカ
レントポイントに書き込み、カレントポイントを次に進
める。
The intermediate data generating section 5 determines which band is included by looking at the scan line number. Then, the value of the variable NUM indicating the number of intermediate data cells of the intermediate data of this band is referred to.
Is 0, the area necessary for writing the number data is secured at the current point position of the corresponding band of the intermediate data buffer 6, and the current point is incremented. Further, in order to count the number of intermediate data cells, the current point before the increment is separately stored. Then, the stored color value 50 is written in the current point and the current point is advanced.

【0068】次に、与えられたエッジリストをもとに、
中間データセルを書き込んで行く。最初に、中間データ
セルの個数を示す変数NUMが0の場合には、直ちに絶
対座標のフォーマット(図4(D)に示すフォーマッ
ト)が選択される。そしてこのフォーマットに従って中
間データセルを生成し、カレントポイントにその中間デ
ータセルを書き込む。さらに、カレントポイントを次の
中間データセルの書き込み位置に更新し、中間データセ
ルの個数を示す変数NUMの値をインクリメントする。
Next, based on the given edge list,
Write the intermediate data cell. First, when the variable NUM indicating the number of intermediate data cells is 0, the absolute coordinate format (the format shown in FIG. 4D) is immediately selected. Then, an intermediate data cell is generated according to this format, and the intermediate data cell is written at the current point. Further, the current point is updated to the write position of the next intermediate data cell, and the value of the variable NUM indicating the number of intermediate data cells is incremented.

【0069】中間データセルの生成時に用いるY方向の
絶対座標は、各バンドのオフセットを用いることとし、
(スキャンライン番号%バンド幅)を使用することがで
きる。そして、このバンドの座標値アドレス、すなわち
図5で説明したラン(A)の終端座標(BX,BY)と
して、BX=ex,BY=(スキャンライン番号%バン
ド幅)を登録する。
The absolute coordinates in the Y direction used when the intermediate data cell is generated use the offset of each band,
(Scanline number% bandwidth) can be used. Then, BX = ex, BY = (scan line number% band width) is registered as the coordinate value address of this band, that is, the end coordinate (BX, BY) of the run (A) described in FIG.

【0070】バンドの中間データセルの個数を示す変数
NUMが0でなければ、エッジリストに対する中間デー
タセルの座標値として、DX=sx−BX,DY=(ス
キャンライン番号%バンド幅)−BYが計算され、図4
に示した(A)〜(D)のうち、最も小さく表わせるフ
ォーマットが選択され、選択されたフォーマットに従っ
て中間データセルに変換されて書き込まれる。もちろ
ん、対応するデータ長の分だけ、カレントポイントが更
新される。また、変数NUMもインクリメントされる。
If the variable NUM indicating the number of intermediate data cells of the band is not 0, the coordinate values of the intermediate data cells with respect to the edge list are DX = sx-BX, DY = (scan line number% band width) -BY. Figure 4 calculated
The format that can be expressed smallest is selected from among (A) to (D) shown in (1) to (3) and converted into an intermediate data cell according to the selected format and written. Of course, the current point is updated by the corresponding data length. The variable NUM is also incremented.

【0071】図14は、スキャンライン1処理時の中間
データバッファの一例を示す説明図である。図13に示
したようなスキャンライン1のエッジリストを受け取る
と、これがバンドの最初のエッジリストであれば、中間
データセルの個数の領域を確保し、色の値50を書き込
む。そして、図4(D)に示す絶対座標のフォーマット
を用いて、始点sx=1と、スキャンライン番号1と、
始点から終点までのランレングス7とにより中間データ
セルを作成する。図14では、このフォーマットのフォ
ーマット番号Tを3としている。作成された中間データ
セルを中間データバッファ6に書き込む。この状態を図
14に示している。
FIG. 14 is an explanatory diagram showing an example of the intermediate data buffer at the time of processing the scan line 1. When the edge list of scan line 1 as shown in FIG. 13 is received, if this is the first edge list of the band, an area for the number of intermediate data cells is secured and the color value 50 is written. Then, using the absolute coordinate format shown in FIG. 4D, the starting point sx = 1, the scan line number 1,
An intermediate data cell is created by the run length 7 from the start point to the end point. In FIG. 14, the format number T of this format is 3. The created intermediate data cell is written in the intermediate data buffer 6. This state is shown in FIG.

【0072】次に、スキャンライン2の処理に入る。ま
ずアクティブリストを更新する。図15は、スキャンラ
イン2処理時のアクティブリストの一例の説明図であ
る。最初に、スキャンライン1の処理時にアクティブリ
ストにつながっている各ラインのセル内のデータの更新
が行なわれる。すなわち、ライン1、ライン3につい
て、SX=SX+DX,DY=DY−1が計算される。
このとき、DYが0となったセルがあれば、アクティブ
リストからはずされる。さらに、ディスプレイリストの
スキャンライン2に対応するデータをアクティブリスト
に追加する。この例では、図10に示したディスプレイ
リストから、ライン5、ライン7、ライン9、ライン1
1のセルがアクティブリストに追加される。これによ
り、アクティブリストは図15に示すようになる。
Next, the process for scan line 2 is started. First, update the active list. FIG. 15 is an explanatory diagram of an example of the active list at the time of processing the scan line 2. First, when the scan line 1 is processed, the data in the cells of each line connected to the active list is updated. That is, SX = SX + DX and DY = DY-1 are calculated for line 1 and line 3.
At this time, if there is a cell in which DY is 0, it is removed from the active list. Further, the data corresponding to the scan line 2 of the display list is added to the active list. In this example, line 5, line 7, line 9, line 1 from the display list shown in FIG.
One cell is added to the active list. As a result, the active list becomes as shown in FIG.

【0073】図16は、スキャンライン2のエッジリス
トの一例の説明図である。図15に示したアクティブリ
ストをもとに、スキャンライン1と同じように塗り潰し
リストを作成してソートし、エッジリストを作成する。
ライン1からSX=1.1、ライン11からSX=1.
9が取り出されて最初の塗り潰しリストsx=1,ex
=1が作成される。また、ライン9からSX=5.1,
ライン7からSX=5.9が取り出されて塗り潰しリス
トsx=5,ex=5が、ライン5からSX=7.1,
ライン3からSX=7.9が取り出されて塗り潰しリス
トsx=7,ex=7がそれぞれ作成され、図16に示
すようなエッジリストとなる。
FIG. 16 is an explanatory diagram of an example of the edge list of the scan line 2. Based on the active list shown in FIG. 15, a filled list is created and sorted in the same manner as the scan line 1, and an edge list is created.
Lines 1 to SX = 1.1, lines 11 to SX = 1.
9 is taken out and the first filled list sx = 1, ex
= 1 is created. Also, from line 9 SX = 5.1,
SX = 5.9 is taken out from the line 7 and the filled list sx = 5, ex = 5, and SX = 7.1 from the line 5
SX = 7.9 is taken out from the line 3 to create the filled lists sx = 7 and ex = 7, respectively, and the edge list as shown in FIG. 16 is obtained.

【0074】図17は、スキャンライン2処理時の中間
データバッファの一例を示す説明図である。上述のよう
にして作成された図16に示すようなエッジリストが、
スキャンライン番号2とともに中間データ生成部5に渡
される。今回はバンド0の中間データセルの個数を示す
変数NUMの値が1になっているので、直ちに中間デー
タセルの処理に入る。
FIG. 17 is an explanatory diagram showing an example of the intermediate data buffer during the scan line 2 processing. The edge list as shown in FIG. 16 created as described above is
It is passed to the intermediate data generation unit 5 together with the scan line number 2. Since the value of the variable NUM indicating the number of intermediate data cells in band 0 is 1 this time, the processing of intermediate data cells is immediately started.

【0075】まず、DX=sx−BX,DY=(スキャ
ンライン番号%バンド幅)−BY,RL=ex−sx+
1という計算で各値を求める。スキャンライン2の処理
開始時には、BX=7,BY=1が保持されている。図
16に示す1つめのエッジリストに従い、DX=1−7
=−5,DY=2−1=1,RL=1と計算される。こ
の計算結果から、図4(B)に示すフォーマットが選択
され、中間データセルが作成されて、カレントポイント
の位置に書き込まれる。カレントポインタは2バイト分
だけ更新される。また、変数NUMがインクリメントさ
れて2となり、また、BX=1,BY=2に変更され
る。
First, DX = sx-BX, DY = (scan line number% band width) -BY, RL = ex-sx +
Each value is calculated by the calculation of 1. At the start of processing of scan line 2, BX = 7 and BY = 1 are held. According to the first edge list shown in FIG. 16, DX = 1-7
= -5, DY = 2-1 = 1, RL = 1. From the calculation result, the format shown in FIG. 4B is selected, an intermediate data cell is created, and the intermediate data cell is written at the position of the current point. The current pointer is updated by 2 bytes. Further, the variable NUM is incremented to 2 and is changed to BX = 1 and BY = 2.

【0076】2つめのエッジリストでは、DX=3,D
Y=0,RL=1になり、図4(A)に示すフォーマッ
トが選択され、中間データセルが生成されてカレントポ
イントの位置に書き込まれる。カレントポインタは1バ
イト分だけ更新される。また、変数NUM=3,BX=
4,BY=2に変更される。同様に、3つめのエッジリ
ストでは、DX=3,DY=0,RL=1になり、図4
(A)に示すフォーマットが選択され、中間データセル
が生成されてカレントポイントの位置に書き込まれる。
カレントポインタは1バイト分だけ更新される。また、
変数NUM=3,BX=7,BY=2に変更される。
In the second edge list, DX = 3, D
Y = 0, RL = 1, the format shown in FIG. 4A is selected, an intermediate data cell is generated, and the intermediate data cell is written at the position of the current point. The current pointer is updated by 1 byte. Also, variables NUM = 3, BX =
4, changed to BY = 2. Similarly, in the third edge list, DX = 3, DY = 0, RL = 1.
The format shown in (A) is selected, an intermediate data cell is generated and written at the position of the current point.
The current pointer is updated by 1 byte. Also,
The variables are changed to NUM = 3, BX = 7, and BY = 2.

【0077】このようにしてスキャンライン2において
3つの中間データセルが中間データバッファに書き込ま
れ、スキャンライン2の処理が終了する。このときの中
間データバッファ6のバンド0の内容は、図17に示す
ようになる。
In this way, the three intermediate data cells in the scan line 2 are written in the intermediate data buffer, and the processing of the scan line 2 is completed. The contents of band 0 of the intermediate data buffer 6 at this time are as shown in FIG.

【0078】図18は、全スキャンライン処理終了後の
中間データバッファの一例を示す説明図である。同様に
してスキャンライン3,4,5と処理してゆく。スキャ
ンライン3においても、スキャンライン2と同様に3つ
の中間データセルが中間データバッファに書き込まれ
る。スキャンライン4では、アクティブリストからライ
ン1およびライン11が削除され、ライン3,5,7,
9について、塗り潰しリスト、エッジリストが作成され
て、2つの中間データセルが生成される。さらに、スキ
ャンライン5では、アクティブリストからライン3,5
が削除され、ライン7,9についての塗り潰しリスト、
エッジリストが作成され、1つの中間データセルが生成
される。これらの生成された中間データセルが中間デー
タバッファに書き込まれる。図18では、各中間データ
セルには、使用したフォーマットに従い、図4(A)〜
(D)に対応づけて、T:0〜3で示している。
FIG. 18 is an explanatory diagram showing an example of the intermediate data buffer after the completion of all scan line processing. Similarly, the scan lines 3, 4, and 5 are processed. Also in the scan line 3, as in the scan line 2, three intermediate data cells are written in the intermediate data buffer. In scan line 4, line 1 and line 11 are deleted from the active list, and lines 3, 5, 7,
For 9, the filled list and the edge list are created, and two intermediate data cells are generated. Further, in scan line 5, lines 3 and 5 from the active list are displayed.
Is deleted, and the filled list for lines 7 and 9,
An edge list is created and one intermediate data cell is created. These generated intermediate data cells are written to the intermediate data buffer. In FIG. 18, each intermediate data cell has a format according to the format used in FIG.
Corresponding to (D), T: 0 to 3 are shown.

【0079】また、スキャンライン5を処理を終えスキ
ャンライン6の処理に入ると、アクティブリストは空に
なり、追加するディスプレイリストがなくなる。このと
き、ベクタ描画部3は中間データ生成部5に対して終了
コマンドを送る。すると中間データ生成部5は変数NU
Mが0でないバンドに対して、中間データ中に確保して
いた中間データセルの個数の領域に変数NUMの値と、
一定色のイメージかラスタイメージかを示すフラグを書
き込む。図18では、中間データセルの個数として10
を格納し、フラグとして「Graphic」を格納して
いる。これで1つの描画オブジェクトに対する処理が終
了する。最終状態の中間データバッファ6のバンド0を
図18に示す。
When the scan line 5 is processed and the scan line 6 is processed, the active list becomes empty and there is no additional display list. At this time, the vector drawing unit 3 sends an end command to the intermediate data generating unit 5. Then, the intermediate data generation unit 5 causes the variable NU
For the band in which M is not 0, the value of the variable NUM is set in the area of the number of intermediate data cells secured in the intermediate data,
Write a flag that indicates whether it is a constant color image or a raster image. In FIG. 18, the number of intermediate data cells is 10
Is stored, and “Graphic” is stored as a flag. This completes the process for one drawing object. Band 0 of the intermediate data buffer 6 in the final state is shown in FIG.

【0080】このようにこの具体例では、描画処理はス
キャンライン単位に処理されるため、前に処理されたデ
ータとの相対距離は自然と小さい値で表わせる確率が高
くなる。その特徴を生かし、中間データセルのフォーマ
ットは、図4に示すように8,16,32,48ビット
の可変長のフォーマットにしている。これによって、描
画処理時に作成される中間データは、自然と小さいデー
タ長で表わされることになる。
As described above, in this specific example, since the drawing process is performed in units of scan lines, the probability that the relative distance to the previously processed data can be naturally represented by a small value is high. Taking advantage of that feature, the format of the intermediate data cell is a variable length format of 8, 16, 32, and 48 bits as shown in FIG. As a result, the intermediate data created during the drawing process is naturally represented by a small data length.

【0081】また、ベクタデータでは同じ色で塗りつぶ
されることが多いという特徴があるため、色データも描
画オブジェクトごとに1つ挿入するだけで済むため、こ
の点でもデータの削減が行なわれる。このような中間デ
ータのフォーマットにするだけで、この具体例の場合で
も図18に示すように27バイトで済む。従来のエッジ
リストをそのまま保持する場合では、16バイト(エッ
ジリストセル)×10=160バイト、もしビットマッ
プであれば最も小さいバウンディングボックスだけ持っ
ているとしても5(タテ)×7(ヨコ)×4(色)=1
40バイトも必要となる。また、このフォーマットは、
簡単なビット演算と足し算でランレングスが再現できる
ため、計算にかかる時間は少なく、データ量を削減した
分だけメモリアクセス時間が削減できる。CPUの演算
時間はメモリのアクセス時間よりもはるかに高速にでき
るので、このメモリアクセス時間の削減によって、通
常、エッジリストのようなデータからランレングスを再
現するよりも高速にランレングスを再現することができ
る。
Since vector data is often filled with the same color, it is only necessary to insert one color data for each drawing object, and this also reduces the data. Only by using such an intermediate data format, 27 bytes are sufficient as shown in FIG. 18 even in this specific example. When the conventional edge list is held as it is, 16 bytes (edge list cell) x 10 = 160 bytes, and if the bitmap has only the smallest bounding box, 5 (vertical) x 7 (horizontal) x 4 (color) = 1
40 bytes are also required. Also, this format is
Since the run length can be reproduced by simple bit operation and addition, the calculation time is short and the memory access time can be reduced by the amount of data reduction. Since the CPU operation time can be much faster than the memory access time, this reduction in memory access time usually enables the run length to be reproduced faster than reproducing the run length from data such as an edge list. You can

【0082】図19は、本発明の描画装置の第2の実施
の形態を示すブロック図である。図中、図1と同様の部
分には同じ符号を付して説明を省略する。11は2値化
メモリである。この第2の実施の形態では、ハーフトー
ン処理を行なう例を示している。展開出力制御部7で
は、中間データバッファ6に格納されている中間データ
を読み出し、ビットマップデータに展開してバンドバッ
ファ8または9に書き込む。このとき、ベクタデータや
文字データのように単色で塗りつぶしを行なうような描
画プリミティブの場合には、2値化メモリ11を利用し
ながらハーフトーン処理を施したビットマップデータを
生成する。2値化メモリ11には、色の値に応じたハー
フトーンマトリックスから生成される2値データが格納
されている。
FIG. 19 is a block diagram showing a second embodiment of the drawing apparatus of the present invention. In the figure, the same parts as those in FIG. Reference numeral 11 is a binary memory. In the second embodiment, an example of performing halftone processing is shown. The expansion output control unit 7 reads the intermediate data stored in the intermediate data buffer 6, expands it into bitmap data, and writes it into the band buffer 8 or 9. At this time, in the case of a drawing primitive such as vector data or character data that is filled with a single color, half-tone processed bitmap data is generated while using the binarization memory 11. The binary memory 11 stores binary data generated from a halftone matrix corresponding to a color value.

【0083】図20は、ハーフトーンマトリックスの一
例の説明図、図21は、2値化メモリに格納される2値
データの説明図である。ハーフトーンマトリックスは、
それぞれのドットについて色の値の閾値を格納したもの
である。例えば、図20に示した4×4のハーフトーン
マトリックスにおいて左上のドットでは、色の値が72
以上であればドットを形成し、それ以下であればドット
を形成しないことを示している。なお、図20では、色
の値は0〜255の値を取るものとしている。このよう
な閾値によって2値化を行ない、ドットを形成する場合
を1、ドットを形成しない場合を0とする。ハーフトー
ンマトリックスの各ドットにおける閾値を異ならせるこ
とによって、色の値に応じてドットの多少を異ならせる
ことができ、これによってハーフトーンを表現すること
ができる。例えば、色の値が50であれば、50以下の
閾値を有する中心部の3ドットのみが形成されることに
なる。すなわち、図21(A)に示すような2値パター
ンとなる。同様に、色の値が150、200、250の
場合の2値パターンは、それぞれ図21(B),
(C),(D)に示すようになる。
FIG. 20 is an explanatory diagram of an example of the halftone matrix, and FIG. 21 is an explanatory diagram of binary data stored in the binarizing memory. The halftone matrix is
The threshold value of the color value is stored for each dot. For example, in the upper left dot in the 4 × 4 halftone matrix shown in FIG. 20, the color value is 72.
If it is above, dots are formed, and if it is below, dots are not formed. In addition, in FIG. 20, the color value is assumed to be a value of 0 to 255. Binarization is performed with such a threshold value, and 1 is set when dots are formed, and 0 is set when dots are not formed. By making the threshold value of each dot of the halftone matrix different, it is possible to make the dots slightly different depending on the color value, and thereby, the halftone can be expressed. For example, if the color value is 50, only the central 3 dots having a threshold value of 50 or less will be formed. That is, the binary pattern as shown in FIG. Similarly, the binary patterns for color values of 150, 200, and 250 are as shown in FIG.
As shown in (C) and (D).

【0084】図21では、4×4のパターンを2つ連続
させて示している。これにより、横方向のドット数を8
としている。各ドットを1bitで示せば、横方向の8
ドットを1Byteで表現できることになり、例えば、
図21に示した各2値パターンはそれぞれ4Byteで
表現できる。このようにバイト長やCPUのワード長に
合わせて2値データを作成しておくことにより、ハーフ
トーン処理を高速化することが可能である。
In FIG. 21, two 4 × 4 patterns are shown in succession. As a result, the number of dots in the horizontal direction is 8
And If each dot is represented by 1 bit, 8 dots in the horizontal direction
Dots can be expressed in 1 Byte, for example,
Each binary pattern shown in FIG. 21 can be represented by 4 bytes. By thus creating the binary data according to the byte length or the word length of the CPU, the halftone processing can be speeded up.

【0085】なお、図21には代表例として4つの色の
値について2値データを示したが、実際には、このよう
な2値パターンのデータを、色の値0,1,2,・・
・,255までに対応づけて2値化メモリ11に記憶さ
せておくことができる。
Although binary data for four color values is shown in FIG. 21 as a typical example, data of such a binary pattern is actually used for color values 0, 1, 2 ,.・
.., 255 can be stored in the binarized memory 11 in association with each other.

【0086】図22は、本発明の描画装置の第2の実施
の形態におけるハーフトーン処理の一例を示すフローチ
ャートである。ここで、x,yは描画開始点の絶対座
標、runはランレングス、colorは色、sw,s
bは描画開始点のワード位置とワード内のビット位置、
ew,ebは描画終了点のワード位置とワード内のビッ
ト位置、CWは1ワード内のビット数を示す。また、b
bはバンドバッファであり、位置(i,j)のドット位
置をbb[i][j]で示す。bpは2値メモリ11中
の2値データの1行分(1Byte分)を保持する変数
である。msk[s][e]は、1ワード内のs番目の
ビットからe番目のビットまでのデータを取り出し、他
のビットをマスクするためのデータである。なお、1ワ
ードが8bitの場合、0≦s≦e≦7である。例え
ば、msk[2][6]は「00111110」という
データである。
FIG. 22 is a flow chart showing an example of halftone processing in the second embodiment of the drawing apparatus of the invention. Here, x and y are the absolute coordinates of the drawing start point, run is the run length, color is the color, sw and s
b is the word position of the drawing start point and the bit position within the word,
ew and eb represent the word position at the drawing end point and the bit position within the word, and CW represents the number of bits within one word. Also, b
Reference numeral b is a band buffer, and the dot position at the position (i, j) is indicated by bb [i] [j]. bp is a variable that holds one row (one byte) of binary data in the binary memory 11. msk [s] [e] is data for extracting data from the sth bit to the eth bit in one word and masking other bits. When one word has 8 bits, 0 ≦ s ≦ e ≦ 7. For example, msk [2] [6] is data “00111110”.

【0087】まずS21において、ビットマップデータ
に展開すべき中間データが終了したか否かを判定する。
中間データが終了している場合は、処理中のバンドの2
値化処理を終了し、最初のバンドの場合には出力装置1
0を起動し、次のバンドの処理に移る。
First, in S21, it is determined whether or not the intermediate data to be expanded into the bitmap data has ended.
If the intermediate data has ended, 2 of the band being processed
When the digitization process is completed and the band is the first band, the output device 1
0 is started and the process for the next band is started.

【0088】S22において、中間データを読み出し、
そのうちの中間データセルを1つ取り出す。そして、中
間データセルが図4(D)のフォーマットであればその
まま絶対座標x,yを取り出し、他のフォーマットであ
れば相対座標DX,DYから絶対座標x,yを計算す
る。また、中間データに格納されている色の情報をco
lorとして取り出す。
At S22, the intermediate data is read out,
One of the intermediate data cells is taken out. If the intermediate data cell has the format shown in FIG. 4D, the absolute coordinates x and y are taken out as they are, and if the intermediate data cell has another format, the absolute coordinates x and y are calculated from the relative coordinates DX and DY. In addition, the color information stored in the intermediate data
Take out as lor.

【0089】S23において、2値メモリ11から2値
データを取り出す。このとき、まずcolorの値によ
って図21に示すような2値パターンのいずれを用いる
かを決定し、さらに絶対座標yの値によって、決定した
2値パターンの何行目を用いるかを決定する。例えば、
図21に示すように4行で1組の2値パターンでは、絶
対座標yの4の剰余を取ることによって、2値パターン
のどの行を用いるかを決定できる。用いる2値パターン
のうちの1行分のデータは変数bpに格納される。
At S23, the binary data is retrieved from the binary memory 11. At this time, first, which of the binary patterns shown in FIG. 21 is used is determined by the value of color, and which line of the determined binary pattern is used is determined by the value of the absolute coordinate y. For example,
As shown in FIG. 21, in a set of binary patterns with four rows, it is possible to determine which row of the binary pattern is used by taking the remainder of 4 of the absolute coordinate y. The data for one row of the binary pattern used is stored in the variable bp.

【0090】S24において、描画開始点のワード位置
swとワード内のビット位置sb、および、描画終了点
のワード位置ewとワード内のビット位置ebを求め
る。すなわち、“%”を除算の剰余をとる演算子とすれ
ば、 sb=x%CW eb=(run+x)%CW sw=x/CW ew=(run+x)/CW によって計算できる。
In S24, the word position sw at the drawing start point and the bit position sb in the word, and the word position ew at the drawing end point and the bit position eb in the word are obtained. That is, if "%" is an operator that takes the remainder of division, it can be calculated by sb = x% CW eb = (run + x)% CW sw = x / CW ew = (run + x) / CW.

【0091】S25において、描画開始点のワード位置
swと描画終了点のワード位置ewを比較する。sw=
ewの場合には、同じワード内に描画開始点と終了点が
存在するので、S26において、変数bpに格納されて
いる1Byteの2値パターンのうち、描画開始点のビ
ット位置sbから描画終了点のビット位置ebまでのビ
ットパターンを取り出し、そのビットパターンをそのま
まバンドバッファに書き込む。バンドバッファへの書き
込みは、それまでにバンドバッファに書き込まれている
データとの論理和を取ることによって行なわれる。書き
込むバンドバッファの位置は、絶対座標yと描画開始点
のワード位置swによって特定される。
In S25, the word position sw at the drawing start point is compared with the word position ew at the drawing end point. sw =
In the case of ew, since the drawing start point and the end point exist in the same word, in S26, the drawing end point from the bit position sb of the drawing start point in the binary pattern of 1 Byte stored in the variable bp. The bit pattern up to the bit position eb of is extracted, and the bit pattern is written as it is in the band buffer. Writing to the band buffer is performed by taking the logical sum of the data written to the band buffer up to that point. The position of the band buffer to be written is specified by the absolute coordinate y and the word position sw of the drawing start point.

【0092】描画開始点のワード位置swが描画終了点
のワード位置ewより小さい、すなわち描画開始点と描
画終了点が別のワードに属している場合には、S27へ
進む。S27では、まず描画開始点のビット位置sbか
らそのワードの終わりまでに、2値パターンを書き込
む。また、S29において、描画終了点を含むワードの
最初から描画終了点のビット位置ebまでに2値パター
ンを書き込む。S28では、描画開始点を含むワードと
描画終了点を含むワードの間に存在するワードに、2値
パターンを書き込む。2値パターンbpのバンドバッフ
ァbbへの書き込みはS26とほぼ同様である。S27
では2値パターンbpのうち、ビット位置sbからワー
ドの終わりであるCW−1までをマスクして、バンドバ
ッファbb[y][sw]との論理和を計算する。また
S28では、2値パターンbpとバンドバッファbb
[y][sw+i]との論理和を計算する。ここでi=
sw+1〜ew−1である。さらにS29では、2値パ
ターンbpのうち、ワードのはじめからビット位置eb
までをマスクし、バンドバッファbb[y][ew]と
の論理和を計算する。そして、S21へ戻って次の中間
データセルについての処理を行なう。
If the word position sw at the drawing start point is smaller than the word position ew at the drawing end point, that is, if the drawing start point and the drawing end point belong to different words, the process proceeds to S27. In S27, first, a binary pattern is written from the bit position sb at the drawing start point to the end of the word. In S29, a binary pattern is written from the beginning of the word including the drawing end point to the bit position eb of the drawing end point. In S28, the binary pattern is written in a word existing between the word including the drawing start point and the word including the drawing end point. Writing the binary pattern bp to the band buffer bb is almost the same as in S26. S27
Then, in the binary pattern bp, the bit position sb to the word end CW-1 is masked, and the logical sum with the band buffer bb [y] [sw] is calculated. Further, in S28, the binary pattern bp and the band buffer bb
The logical sum of [y] and [sw + i] is calculated. Where i =
sw + 1 to ew-1. Further, in S29, in the binary pattern bp, from the beginning of the word to the bit position eb
Are masked, and the logical sum with the band buffers bb [y] [ew] is calculated. Then, the process returns to S21 and the process for the next intermediate data cell is performed.

【0093】このように、本発明のハーフトーン処理で
は、2値メモリ11に格納されている2値データのうち
の必要な部分をそのままバンドバッファに書き込むこと
によって行なわれる。そのため、ビットマップデータへ
の展開とハーフトーン処理を同時に行なうことができ、
非常に高速な展開およびハーフトーン処理が可能であ
る。また、2値データのデータ長をCPUの取り扱いや
すい単位とすることによって、処理速度をさらに向上さ
せることができる。
As described above, the halftone processing of the present invention is performed by directly writing the necessary portion of the binary data stored in the binary memory 11 to the band buffer. Therefore, it is possible to perform the development to bitmap data and halftone processing at the same time,
Very fast development and halftone processing is possible. Further, the processing speed can be further improved by setting the data length of the binary data to a unit that can be easily handled by the CPU.

【0094】なお、2値データを書き込むバンドバッフ
ァは、バンドバッファ8とバンドバッファ9を交互に用
いる。そして、一方のバンドバッファに書き込み後、他
方のバンドバッファについて出力装置10による読み出
しが終了すると、その他方のバンドバッファへの書き込
みを開始する。また、出力装置10は、展開出力部9か
ら起動されると、一方のバンドバッファから読み出しを
開始し、他方のバンドバッファと交互に切り替えなが
ら、ビットマップデータを読み込み、印刷プロセスを行
なう。
As the band buffer for writing the binary data, the band buffer 8 and the band buffer 9 are alternately used. Then, after writing to one of the band buffers, when reading of the other band buffer by the output device 10 is completed, writing to the other band buffer is started. When the output device 10 is activated from the expansion output unit 9, the output device 10 starts reading from one band buffer, reads the bitmap data while switching to the other band buffer alternately, and performs a printing process.

【0095】図23は、ハーフトーン処理の一例を説明
するための具体的な描画画像の一例の説明図である。図
23に示した画像を描画する場合を例に、上述の動作の
一例を説明する。図23には、色の値が50で描かれた
矩形と、色の値が150で描かれた三角形と、色の値が
250で描かれた線分(細い矩形)が存在する。中間デ
ータバッファ6には、これらの図形を描画するための中
間データが格納されている。この中間データをもとに、
ハーフトーン処理を行ないながらビットマップ展開を行
なう過程を、スキャンライン550(絶対座標y=55
0)に注目して説明する。なお、2値化メモリ11に
は、少なくとも上述の図21に示した2値化データが格
納されているものとする。この場合の2値化データの行
数は4である。また、1ワードは8bitとし、色の値
は0〜255までをとるものとする。さらに、バンドバ
ッファには、既に処理されたスキャンライン549まで
のデータが記憶され、これから処理が行なわれるスキャ
ンライン550以降は0でクリアされた状態になってい
るものとする。
FIG. 23 is an explanatory diagram of an example of a specific drawn image for explaining an example of the halftone process. An example of the above-described operation will be described by taking the case of drawing the image shown in FIG. 23 as an example. In FIG. 23, there are a rectangle drawn with a color value of 50, a triangle drawn with a color value of 150, and a line segment (thin rectangle) drawn with a color value of 250. The intermediate data buffer 6 stores intermediate data for drawing these figures. Based on this intermediate data
The process of expanding the bitmap while performing the halftone process is performed by the scan line 550 (absolute coordinate y = 55).
0) will be described. It is assumed that at least the binarized data shown in FIG. 21 is stored in the binarized memory 11. The number of rows of binarized data in this case is four. In addition, one word has 8 bits, and the color value ranges from 0 to 255. Further, it is assumed that the band buffer stores the data up to the scan line 549 that has already been processed and that the scan line 550 and the subsequent lines to be processed are cleared by 0.

【0096】まず、S22において中間データを読み出
し、そのうちの中間データセルを1つ取り出す。この例
では、中間データには色の値として50が格納されてい
る。また、中間データセルは多数並んでいるが、その中
からスキャンライン550に対応するものが取り出され
るものとする。この中間データセルから、ランレングス
243と、相対座標DY=1、DX=−242が取り出
される。これらの値から、絶対座標x=10、y=55
0が計算される。
First, in S22, the intermediate data is read and one of the intermediate data cells is taken out. In this example, 50 is stored as the color value in the intermediate data. In addition, although a large number of intermediate data cells are arranged side by side, the one corresponding to the scan line 550 is taken out from among them. From this intermediate data cell, the run length 243 and the relative coordinates DY = 1 and DX = -242 are extracted. From these values, absolute coordinates x = 10, y = 55
0 is calculated.

【0097】次に、S23において、2値化データを取
り出す。このスキャンライン550のハーフトーンマト
リクスに対する高さ方向(y座標)のオフセットは、 yoffset=(スキャンライン)Mod(ハーフト
ーンマトリクスの高さ)=550%4=2 として求められる。また、色の値は50であるので、図
21(A)に示す2値かデータのうちの3行目のパター
ン「01100110」が変数bpに取り出される。
Next, in S23, the binarized data is extracted. The offset of the scan line 550 in the height direction (y coordinate) with respect to the halftone matrix is obtained by yoffset = (scan line) Mod (halftone matrix height) = 550% 4 = 2. Further, since the color value is 50, the pattern “01100110” on the third row of the binary data or the data shown in FIG. 21A is extracted as the variable bp.

【0098】S24において、描画開始点、終了点のワ
ード座標sw,ew、ビット座標sb,ebを計算す
る。描画開始点のx座標(スタート座標)は10、ラン
レングスは243であるから、 sw=スタート座標/ワード長(bpの幅)=10/8
=1 sb=スタート座標%ワード長(bpの幅)=10%8
=2 ew=(スタート座標+ランレングス−1)/ワード長
(bpの幅)=252/8=31 eb=(スタート座標+ランレングス−1)%ワード長
(bpの幅)=252%8=4 と計算される。
In S24, the word coordinates sw and ew and the bit coordinates sb and eb at the drawing start point and the end point are calculated. Since the x coordinate (start coordinate) of the drawing start point is 10 and the run length is 243, sw = start coordinate / word length (width of bp) = 10/8
= 1 sb = start coordinate% word length (bp width) = 10% 8
= 2 ew = (start coordinate + run length-1) / word length (width of bp) = 252/8 = 31 eb = (start coordinate + run length-1)% word length (width of bp) = 252% 8 = 4 is calculated.

【0099】S25においてswとewを比較すると、
ew>swであるので、この場合はS27〜S29で2
値かデータの書き込み処理を行なう。書き込み処理にあ
たっては、以前に書き込み処理がなされた部分を消去し
ないように、新たな2値化データとの論理和によって書
き込みを行なう。例えば、ワード1においては、例え
ば、この処理の前にsx=1、ex=9のような領域に
描画を行なっている場合に0〜1bitに2値化データ
が書き込まれている可能性がある。この状態でワード1
に書き込みを行なうとき、先に書き込まれている2値化
データを消去しないように、論理和を取ってから書き戻
す。なお、この具体例では、同じワードに重複して書き
込むことはない。
Comparing sw and ew in S25,
Since ew> sw, 2 in S27 to S29 in this case.
Write value or data. In the writing process, writing is performed by a logical sum with new binarized data so as not to erase the part that has been previously written. For example, in word 1, binary data may be written to 0 to 1 bit when drawing is performed in an area such as sx = 1 and ex = 9 before this processing. . Word 1 in this state
When writing to, the logical sum is written before writing back so that the previously written binary data is not erased. In this specific example, the same word is never written in duplicate.

【0100】S27では、ワードsw(=1)に対する
書き込み処理を行なう。まず2値化データbpとmsk
[2][7](=00111111)の論理積を取る。
これにより、2値化データbpのうち、2〜7bitが
有効となる。この場合には、「00100110」が得
られる。このデータとbb[550][1]のデータと
の論理和を取って、bb[550][1]に書き込む。
In S27, the writing process for the word sw (= 1) is performed. First, the binarized data bp and msk
The logical product of [2] and [7] (= 00111111) is calculated.
As a result, 2 to 7 bits of the binarized data bp are valid. In this case, "00100110" is obtained. The logical sum of this data and the data of bb [550] [1] is taken and written to bb [550] [1].

【0101】次にS28において、ワード2からワード
30まで(bb[550][2]〜bb[550][3
0])は、単純にbpとの論理和をとって書き戻す。
Next, in S28, from word 2 to word 30 (bb [550] [2] to bb [550] [3
0]) is simply ORed with bp and written back.

【0102】S29において、最後のワード31は、2
値化データbpとmsk[0][4](=111110
00)との論理積を計算し、「01100000」を得
る。このデータと、bb[550][31]のデータと
の論理和を計算して、bb[550][31]に書き戻
す。このようにして、色の値が50の矩形のスキャンラ
イン550における処理が終了する。その後、次の中間
データセルについての処理が行なわれる。
In S29, the last word 31 is 2
Quantized data bp and msk [0] [4] (= 111110
00) is calculated and "01100000" is obtained. The logical sum of this data and the data of bb [550] [31] is calculated and written back to bb [550] [31]. In this way, the processing on the rectangular scan line 550 with the color value of 50 is completed. Then, the process for the next intermediate data cell is performed.

【0103】次に、色の値が150の三角形におけるス
キャンライン550についての処理を説明する。この場
合、S22において中間データより色の値150を得
る。また、中間データセルから相対座標とランレングス
を得る。相対座標から得られる絶対座標は、この場合に
はy=550、x=323であるものとする。また、ラ
ンレングスrunは13である。
Next, the processing for the scan line 550 in the triangle whose color value is 150 will be described. In this case, the color value 150 is obtained from the intermediate data in S22. Also, the relative coordinates and run length are obtained from the intermediate data cell. In this case, the absolute coordinates obtained from the relative coordinates are y = 550 and x = 323. The run length run is 13.

【0104】S23において、図21(B)に示す色の
値が150の時の2値化データから、3行目のパターン
「01100110」を取り出して、変数bpに格納す
る。また、S24における描画開始点、終了点のワード
位置、ビット位置は、sw=40、sb=3,ew=4
1、eb=7となる。ここで、ew>swであるので、
この場合はワード40が最初の処理、ワード41が最後
の処理になり、中間の処理はなくなる。従ってS27に
おいて、bpとmsk[3][7](=0001111
1)との論理積を取り、「00000110」を得て、
これとbb[550][40]との論理和を取った後、
書き戻す。S28では何もせず、S29において、bp
とmsk[0][7](=11111111)との論理
積を取り、これとbb[550][41]との論理和を
取って書き戻す。
In S23, the pattern "01100110" on the third line is extracted from the binarized data when the color value shown in FIG. 21B is 150 and stored in the variable bp. The word position and bit position at the drawing start point and end point in S24 are sw = 40, sb = 3, ew = 4.
1 and eb = 7. Here, since ew> sw,
In this case, the word 40 is the first process, the word 41 is the last process, and the intermediate process is eliminated. Therefore, in S27, bp and msk [3] [7] (= 0001111
1) and the logical product and get "00000110",
After taking the logical sum of this and bb [550] [40],
Write back. In S28, nothing is done, and in S29, bp
And msk [0] [7] (= 11111111) are ANDed, and the logical product of this and bb [550] [41] is taken and written back.

【0105】次に、色の値が250の縦線(細い矩形)
におけるスキャンライン550についての処理を説明す
る。この場合、S22において中間データより色の値2
50を得る。また、中間データセルから得られた相対座
標から、絶対座標y=550、x=509を得る。ま
た、ランレングスrunは2である。この場合に2値化
メモリ11から取り出される2値化データは、図21
(D)に示すパターンの3行目のデータ「111111
10」である。また、描画開始点、終了点のワード位
置、ビット位置は、sw=63,sb=5,ew=6
3,eb=6になる。ここで、swとewが等しいので
1ワードに最初と最後が含まれる。この場合、S26に
おいて、bpとmsk[5][6](=0000011
0)の論理積を計算して「00000110」を得て、
それとbb[550][63]との論理和を計算して、
bb[550][63]に書き込む。
Next, a vertical line (thin rectangle) having a color value of 250
The process for the scan line 550 in FIG. In this case, in S22, the color value 2 is calculated from the intermediate data.
Get 50. Also, absolute coordinates y = 550 and x = 509 are obtained from the relative coordinates obtained from the intermediate data cell. The run length run is 2. The binarized data retrieved from the binarized memory 11 in this case is as shown in FIG.
Data “111111” on the third line of the pattern shown in (D)
10 ". The word position and bit position at the drawing start point and the end point are sw = 63, sb = 5, ew = 6.
3, eb = 6. Here, since sw and ew are equal, one word includes the beginning and the end. In this case, in S26, bp and msk [5] [6] (= 0000011)
0) is ANDed to obtain "00000110",
Calculate the logical sum of it and bb [550] [63],
Write to bb [550] [63].

【0106】なお、書き込みの行なわれていないワード
には、初期設定において0が書き込まれているので、改
めて書き込みを行なう必要はない。
Since 0 is written in the word which has not been written in the initial setting, it is not necessary to write it again.

【0107】この第2の実施の形態のように2値化メモ
リ11を用いる構成では、当然、2値化メモリの分だけ
余計にメモリ量を必要とする。しかし、2値化メモリ1
1のメモリ量は、8×8のハーフトーンマトリックス
で、CPUのワード長が32bitであり、4色の異な
るマトリックスとしても32x8x256x4bit/
8bit=32KByteで済む。このメモリ量はフレ
ームバッファの容量からすれば1000分の1程度であ
るので、メモリ容量の増大が問題になることはない。む
しろ、ハーフトーン処理および展開処理の高速化を、少
しのメモリ量の増加だけで実現でき、装置全体としての
効果は大きい。
In the structure using the binarization memory 11 as in the second embodiment, of course, an extra memory amount is required for the binarization memory. However, binary memory 1
The memory size of 1 is an 8 × 8 halftone matrix, the word length of the CPU is 32 bits, and 32 × 8 × 256 × 4 bits / in a matrix of four colors.
8bit = 32KByte is enough. Since the amount of this memory is about 1/1000 in view of the capacity of the frame buffer, the increase in memory capacity does not pose a problem. On the contrary, the halftone processing and the expansion processing can be speeded up by only slightly increasing the memory amount, and the effect of the entire apparatus is great.

【0108】この第2の実施の形態において、上述の説
明では、中間データバッファには一例として第1の実施
の形態で説明した中間データが格納されるものとした。
このような構成によれば、中間データのデータ量を大幅
に削減できるので、2値化メモリで多少のメモリ量を消
費したとしてもそれを上回るメモリ量の削減を行なうこ
とができ、しかも高速なハーフトーン処理を実現するこ
とができる。
In the second embodiment, in the above description, the intermediate data buffer is assumed to store the intermediate data described in the first embodiment as an example.
With such a configuration, the data amount of the intermediate data can be significantly reduced, so that even if the binarized memory consumes a certain amount of memory, it is possible to reduce the memory amount more than that, and at a high speed. Halftone processing can be realized.

【0109】しかしこの第2の実施の形態におけるハー
フトーン処理および展開処理は、このような中間データ
に限らず適用することができ、例えば、上述した特開平
5−224637号公報に記載されているようなエッジ
リストを中間データとして用いる場合においても、同様
の効果を得ることができる。例えば、エッジリストでは
スキャンラインごとにそのエッジの座標が渡されるの
で、図23に示した例ではスキャンライン550におい
て3つの図形の当該ラインの描画開始点および終了点の
座標が得られる。これらを順次処理することによって、
2値化データを用いたハーフトーン処理および展開処理
が実現できる。
However, the halftone processing and the expansion processing in the second embodiment can be applied not only to such intermediate data, but are described in, for example, the above-mentioned Japanese Patent Laid-Open No. 5-224637. Even when such an edge list is used as intermediate data, the same effect can be obtained. For example, since the coordinates of the edge are passed for each scan line in the edge list, in the example shown in FIG. 23, the coordinates of the drawing start point and the end point of the line of the three figures are obtained in the scan line 550. By processing these sequentially,
It is possible to realize halftone processing and development processing using binarized data.

【0110】[0110]

【発明の効果】以上の説明から明らかなように、本発明
によれば、2つのランの座標の差分を用いて中間データ
を作成しているので、中間データのデータ量を削減する
ことができ、中間データを格納するために要するメモリ
量を減らすことができる。特にPDLのようにフォント
やグラフィック描画が中心の画像に対しては、解像度が
高くなればなるほど大幅にメモリ容量を削減できる。ま
た、メモリアクセス時間が少なくなるため、従来に比べ
て高速にビットマット化を行なうことが可能となり、高
速な描画処理を実現することができる。
As is apparent from the above description, according to the present invention, since the intermediate data is created by using the difference between the coordinates of two runs, the data amount of the intermediate data can be reduced. , It is possible to reduce the amount of memory required to store the intermediate data. In particular, for an image in which fonts and graphic drawings are mainly drawn such as PDL, the memory capacity can be significantly reduced as the resolution becomes higher. Further, since the memory access time is shortened, bit matting can be performed at a higher speed than in the past, and high-speed drawing processing can be realized.

【0111】また、各色の値ごとに展開した2値化デー
タを予め用意しておき、中間データからこの2値化デー
タを特定してそのままビットマップデータとして用いる
ことにより、2値のデバイスに出力するためのハーフト
ーン処理を高速に行なうことができる。
Further, binarized data expanded for each color value is prepared in advance, and the binarized data is specified from the intermediate data and used as it is as bitmap data to output it to a binary device. It is possible to perform the halftone processing for high speed at high speed.

【0112】さらに、このような中間データの採用と、
2値化データを用いたハーフトーン処理の採用によっ
て、大幅にメモリ容量を削減し、しかも抜けのない画像
の出力を可能とし、高速な描画処理を行なうことができ
るという効果がある。
Further, the adoption of such intermediate data,
By adopting the halftone processing using the binarized data, there is an effect that the memory capacity can be greatly reduced, an image without omission can be output, and high-speed drawing processing can be performed.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本発明の描画装置の第1の実施の形態を示す
ブロック図である。
FIG. 1 is a block diagram showing a first embodiment of a drawing apparatus of the present invention.

【図2】 ラスタ描画部において生成されるエッジリス
トの一例の説明図である。
FIG. 2 is an explanatory diagram of an example of an edge list generated by a raster rendering unit.

【図3】 ベクタ描画部において生成されるエッジリス
トの一例の説明図である。
FIG. 3 is an explanatory diagram of an example of an edge list generated by a vector drawing unit.

【図4】 中間データ生成部において中間データセルを
生成する際に用いられる中間データフォーマットの一例
の説明図、図5は、中間データ生成部における中間デー
タセルの生成の一例の説明図である。
FIG. 4 is an explanatory diagram of an example of an intermediate data format used when generating an intermediate data cell in the intermediate data generation unit, and FIG. 5 is an explanatory diagram of an example of generation of an intermediate data cell in the intermediate data generation unit.

【図5】 中間データ生成部における中間データセルの
生成の一例の説明図である。
FIG. 5 is an explanatory diagram of an example of generation of intermediate data cells in the intermediate data generation unit.

【図6】 中間データの形式の一例の説明図である。FIG. 6 is an explanatory diagram of an example of a format of intermediate data.

【図7】 中間データの具体例の説明図である。FIG. 7 is an explanatory diagram of a specific example of intermediate data.

【図8】 描画する図形の具体例の説明図である。FIG. 8 is an explanatory diagram of a specific example of a graphic to be drawn.

【図9】 図8に示す図形を描画するための描画コマン
ドの一例の説明図である。
9 is an explanatory diagram of an example of a drawing command for drawing the figure shown in FIG.

【図10】 ディスプレイリストの一例の説明図であ
る。
FIG. 10 is an explanatory diagram of an example of a display list.

【図11】 スキャンライン1処理時のアクティブリス
トの一例の説明図である。
FIG. 11 is an explanatory diagram of an example of an active list at the time of processing scan line 1.

【図12】 スキャンライン1処理時の塗り潰しリスト
の一例の説明図である。
FIG. 12 is an explanatory diagram of an example of a filling list during scan line 1 processing.

【図13】 スキャンライン1のエッジリストの一例の
説明図である。
FIG. 13 is an explanatory diagram of an example of an edge list of scan line 1.

【図14】 スキャンライン1処理時の中間データバッ
ファの一例を示す説明図である。
FIG. 14 is an explanatory diagram showing an example of an intermediate data buffer during scan line 1 processing.

【図15】 スキャンライン2処理時のアクティブリス
トの一例の説明図である。
FIG. 15 is an explanatory diagram of an example of an active list during scan line 2 processing.

【図16】 スキャンライン2のエッジリストの一例の
説明図である。
16 is an explanatory diagram of an example of an edge list of scan line 2. FIG.

【図17】 スキャンライン2処理時の中間データバッ
ファの一例を示す説明図である。
FIG. 17 is an explanatory diagram showing an example of an intermediate data buffer during scan line 2 processing.

【図18】 全スキャンライン処理終了後の中間データ
バッファの一例を示す説明図である。
FIG. 18 is an explanatory diagram showing an example of an intermediate data buffer after completion of all scan line processing.

【図19】 本発明の描画装置の第2の実施の形態を示
すブロック図である。
FIG. 19 is a block diagram showing a second embodiment of the drawing apparatus of the invention.

【図20】 ハーフトーンマトリックスの一例の説明図
である。
FIG. 20 is an explanatory diagram of an example of a halftone matrix.

【図21】 2値化メモリに格納される2値データの説
明図である。
FIG. 21 is an explanatory diagram of binary data stored in the binary memory.

【図22】 本発明の描画装置の第2の実施の形態にお
けるハーフトーン処理の一例を示すフローチャートであ
る。
FIG. 22 is a flowchart showing an example of halftone processing in the second embodiment of the drawing apparatus of the invention.

【図23】 ハーフトーン処理の一例を説明するための
具体的な描画画像の一例の説明図である。
FIG. 23 is an explanatory diagram of an example of a specific drawn image for explaining an example of halftone processing.

【符号の説明】[Explanation of symbols]

1…入力制御部、2…ラスタ描画部、3…ベクタ描画
部、4…文字描画部、5…中間データ生成部、6…中間
データバッファ、7…展開出力制御部、8,9…バンド
バッファ、10…出力装置、11…2値化メモリ。
DESCRIPTION OF SYMBOLS 1 ... Input control part, 2 ... Raster drawing part, 3 ... Vector drawing part, 4 ... Character drawing part, 5 ... Intermediate data generation part, 6 ... Intermediate data buffer, 7 ... Expansion output control part, 8, 9 ... Band buffer 10 ... Output device, 11 ... Binary memory.

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 描画プリミティブを表わす描画コマンド
を受け取り、該描画コマンドに従ったビットマップデー
タを生成して出力する描画装置において、前記描画コマ
ンドの色情報と該描画コマンドに対応する描画プリミテ
ィブの存在する走査線ごとのランおよびその端部座標を
抽出する描画処理手段と、中間データを記憶する中間デ
ータ記憶手段と、前記描画処理手段により抽出された連
続する2つのランの端部座標の差分を計算し計算結果に
基づいてデータ長の異なる複数種類の中間データフォー
マットの1つを選択し選択した中間データフォーマット
と前記端部座標の差分と前記描画処理手段で抽出された
前記ランに基づいて中間データセルを生成し前記描画コ
マンドごとに生成した複数の中間データセルを前記描画
処理手段で抽出した前記色情報とともに中間データとし
て前記中間データ記憶手段に記憶させる中間データ生成
手段と、前記中間データ記憶手段に記憶されている前記
中間データをもとに前記ビットマップデータに展開する
展開手段を有することを特徴とする描画装置。
1. A drawing apparatus that receives a drawing command representing a drawing primitive, generates bitmap data according to the drawing command, and outputs the bitmap data, and the existence of the drawing primitive corresponding to the color information of the drawing command. Drawing processing means for extracting the run and its end coordinates for each scanning line, intermediate data storage means for storing intermediate data, and difference between the end coordinates of two consecutive runs extracted by the drawing processing means. One of a plurality of types of intermediate data formats having different data lengths is calculated based on the calculation result, and the intermediate is selected based on the selected intermediate data format, the difference between the end coordinates, and the run extracted by the drawing processing means. A plurality of intermediate data cells generated for each of the drawing commands are extracted by the drawing processing means. Intermediate data generation means for storing the intermediate data together with the color information as intermediate data in the intermediate data storage means; and expansion means for expanding the intermediate data stored in the intermediate data storage means into the bitmap data based on the intermediate data. A drawing device.
【請求項2】 前記中間データ生成手段は、選択したフ
ォーマットのデータ長に基づいて前記中間データ記憶手
段に対して中間データセルを書き込むアドレスを決定
し、前記展開手段は、中間データセルのフォーマットの
データ長に基づいて前記中間データ記憶手段からの中間
データセルの読み出し開始のアドレスおよび読み出し範
囲を決定することを特徴とする請求項1に記載の描画装
置。
2. The intermediate data generating means determines an address to write the intermediate data cell into the intermediate data storage means based on the data length of the selected format, and the expanding means determines the format of the intermediate data cell. 2. The drawing apparatus according to claim 1, wherein the read start address and the read range of the intermediate data cell from the intermediate data storage unit are determined based on the data length.
【請求項3】 描画プリミティブを表わす描画コマンド
を受け取り、該描画コマンドに従ったビットマップデー
タを生成して出力する描画装置において、前記描画コマ
ンドの色情報と該描画コマンドに対応する描画プリミテ
ィブの存在する走査線ごとのランおよびその端部座標を
抽出する描画処理手段と、中間データを記憶する中間デ
ータ記憶手段と、複数の走査線を単位とするバンドごと
に前記ビットマップデータの領域を管理し前記描画処理
手段により抽出された連続する2つのランの端部座標の
差分を計算し計算結果に基づいてデータ長の異なる複数
種類の中間データフォーマットの1つを選択し選択した
中間データフォーマットと前記端部座標の差分と前記描
画処理手段で抽出された前記ランに基づいて中間データ
セルを生成し連続する2つのランの存在する前記バンド
が異なるごとに前記描画処理手段で抽出した前記色情報
とともに生成した複数の中間データセルを中間データと
して前記中間データ記憶手段に記憶させる中間データ生
成手段と、前記中間データ記憶手段に記憶されている前
記中間データをもとに前記バンドごとに前記ビットマッ
プデータに展開する展開手段を有することを特徴とする
描画装置。
3. A drawing device that receives a drawing command representing a drawing primitive, generates bitmap data according to the drawing command, and outputs the bitmap data, and the existence of the drawing primitive corresponding to the color information of the drawing command. Drawing processing means for extracting the run and its end coordinates for each scanning line, intermediate data storage means for storing intermediate data, and managing the area of the bitmap data for each band in units of a plurality of scanning lines. The difference between the end coordinates of two consecutive runs extracted by the drawing processing means is calculated, one of a plurality of types of intermediate data formats having different data lengths is selected based on the calculation result, and the selected intermediate data format and the intermediate data format are selected. An intermediate data cell is generated and continuous based on the difference between the end coordinates and the run extracted by the drawing processing means. Intermediate data generating means for storing a plurality of intermediate data cells generated together with the color information extracted by the drawing processing means as intermediate data in the intermediate data storing means each time the bands in which two runs exist are different, A drawing device having a developing means for expanding the bitmap data for each band based on the intermediate data stored in the intermediate data storage means.
【請求項4】 描画プリミティブを表わす描画コマンド
を受け取り、該描画コマンドに従ったビットマップデー
タを生成して出力する描画装置において、前記描画コマ
ンドの色情報と該描画コマンドに対応する描画プリミテ
ィブの存在する走査線ごとのランの長さおよびその端部
座標に基づき中間データを生成する中間データ生成手段
と、該中間データ生成手段により生成された中間データ
を記憶する中間データ記憶手段と、前記色情報の値に対
応づけられた中間調を表わす所定の大きさの2値データ
のマトリクスである中間調マトリクスを記憶する中間調
マトリクス記憶手段と、前記中間データ記憶手段に記憶
される中間データをビットマップデータに展開する際に
該中間データに含まれる色情報の値に基づいて前記中間
調マトリクス記憶手段に記憶されている中間調マトリク
スの中の1つを選択し該中間データに含まれる前記ラン
の長さおよび端部座標に基づいて選択された中間調マト
リクスの一部の2値データでビットマップデータへの展
開を行なう展開手段を有することを特徴とする描画装
置。
4. A drawing device that receives a drawing command representing a drawing primitive, generates bitmap data according to the drawing command, and outputs the bitmap data, and the existence of the drawing primitive corresponding to the color information of the drawing command. Intermediate data generating means for generating intermediate data on the basis of the run length for each scanning line and its end coordinates, intermediate data storing means for storing the intermediate data generated by the intermediate data generating means, and the color information. Halftone matrix storage means for storing a halftone matrix, which is a matrix of binary data of a predetermined size, which represents a halftone associated with the value of, and a bit map of the intermediate data stored in the intermediate data storage means. The halftone matrix storage unit based on the value of the color information included in the intermediate data when the data is expanded. Select one of the halftone matrices stored in the columns and select a bit in the binary data of a part of the halftone matrix selected based on the length and end coordinates of the run included in the halftone data. A drawing device having a developing means for expanding to map data.
【請求項5】 前記中間調マトリクス記憶手段に記憶さ
れた中間調マトリクスは、画像の走査線方向にCPUの
ワード長の長さを持つことを特徴とする請求項4に記載
の描画装置。
5. The drawing apparatus according to claim 4, wherein the halftone matrix stored in the halftone matrix storage means has a length of a word length of the CPU in a scanning line direction of an image.
【請求項6】 描画プリミティブを表わす描画コマンド
を受け取り、該描画コマンドに従ったビットマップデー
タを生成して出力する描画装置において、前記描画コマ
ンドの色情報と該描画コマンドに対応する描画プリミテ
ィブの存在する走査線ごとのランおよびその端部座標を
抽出する描画処理手段と、中間データを記憶する中間デ
ータ記憶手段と、前記描画処理手段により抽出された連
続する2つのランの端部座標の差分を計算し計算結果に
基づいてデータ長の異なる複数種類の中間データフォー
マットの1つを選択し選択した中間データフォーマット
と前記端部座標の差分と前記描画処理手段で抽出された
前記ランおよび前記色情報に基づいて中間データを生成
して前記中間データ記憶手段に記憶させる中間データ生
成手段と、前記色情報の値に対応づけられた中間調を表
わす所定の大きさの2値データのマトリクスである中間
調マトリクスを記憶する中間調マトリクス記憶手段と、
前記中間データ記憶手段に記憶される中間データをビッ
トマップデータに展開する際に該中間データに含まれる
色情報の値に基づいて前記中間調マトリクス記憶手段に
記憶されている中間調マトリクスの中の1つを選択し該
中間データに含まれる前記ランの長さおよび端部座標に
基づいて選択された中間調マトリクスの一部の2値デー
タでビットマップデータへの展開を行なう展開手段を有
することを特徴とする描画装置。
6. A drawing device that receives a drawing command representing a drawing primitive, generates bitmap data according to the drawing command, and outputs the bitmap data, and the existence of the drawing primitive corresponding to the color information of the drawing command. Drawing processing means for extracting the run and its end coordinates for each scanning line, intermediate data storage means for storing intermediate data, and difference between the end coordinates of two consecutive runs extracted by the drawing processing means. One of a plurality of types of intermediate data formats having different data lengths is calculated based on the calculation result, the selected intermediate data format, the difference between the end coordinates, the run and the color information extracted by the drawing processing means. Intermediate data generating means for generating intermediate data on the basis of the color information, and storing the intermediate data in the intermediate data storage means; Halftone matrix storage means for storing a halftone matrix, which is a matrix of binary data of a predetermined size, which represents a halftone associated with the report value,
Of the halftone matrix stored in the halftone matrix storage means based on the value of the color information included in the intermediate data when the intermediate data stored in the intermediate data storage means is expanded into bitmap data. And a rasterizing means for rasterizing the binary data of a part of the halftone matrix selected based on the length and the end coordinates of the run included in the intermediate data. A drawing device.
JP07331632A 1995-12-20 1995-12-20 Drawing equipment Expired - Fee Related JP3085175B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP07331632A JP3085175B2 (en) 1995-12-20 1995-12-20 Drawing equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07331632A JP3085175B2 (en) 1995-12-20 1995-12-20 Drawing equipment

Publications (2)

Publication Number Publication Date
JPH09171564A true JPH09171564A (en) 1997-06-30
JP3085175B2 JP3085175B2 (en) 2000-09-04

Family

ID=18245834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07331632A Expired - Fee Related JP3085175B2 (en) 1995-12-20 1995-12-20 Drawing equipment

Country Status (1)

Country Link
JP (1) JP3085175B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001128015A (en) * 1999-10-26 2001-05-11 Fuji Xerox Co Ltd Picture processor
US6539108B1 (en) 1998-08-26 2003-03-25 Fuji Xerox Co., Ltd. Image processing device and method of the same
US7701594B2 (en) 2003-09-18 2010-04-20 Ricoh Company, Ltd. Image forming apparatus, image forming method, and computer product
KR101029479B1 (en) * 2003-09-05 2011-04-18 가부시키가이샤 오크세이사쿠쇼 Vector-graphic data processing method and drawing apparatus
JP2011194859A (en) * 2010-03-24 2011-10-06 Kyocera Mita Corp Image output device and image output program
JP2014127007A (en) * 2012-12-26 2014-07-07 Mitsubishi Electric Corp Graphic drawing device and graphic drawing program

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07276054A (en) * 1994-03-31 1995-10-24 Press Kogyo Kk Controller for welding torch cleaner

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539108B1 (en) 1998-08-26 2003-03-25 Fuji Xerox Co., Ltd. Image processing device and method of the same
JP2001128015A (en) * 1999-10-26 2001-05-11 Fuji Xerox Co Ltd Picture processor
KR101029479B1 (en) * 2003-09-05 2011-04-18 가부시키가이샤 오크세이사쿠쇼 Vector-graphic data processing method and drawing apparatus
US7701594B2 (en) 2003-09-18 2010-04-20 Ricoh Company, Ltd. Image forming apparatus, image forming method, and computer product
JP2011194859A (en) * 2010-03-24 2011-10-06 Kyocera Mita Corp Image output device and image output program
JP2014127007A (en) * 2012-12-26 2014-07-07 Mitsubishi Electric Corp Graphic drawing device and graphic drawing program

Also Published As

Publication number Publication date
JP3085175B2 (en) 2000-09-04

Similar Documents

Publication Publication Date Title
US5500928A (en) Digital printing system and process using adaptive compression
JP2790285B2 (en) Full page graphics image display data compression method and apparatus
CA2221752C (en) Method and apparatus for reducing storage requirements for display data
US7119807B2 (en) Image processing apparatus and image processing method
US20060001681A1 (en) Method of rendering graphic objects
US20070109322A1 (en) Print control program product
JP2008117379A (en) System, method and computer program for encoded raster document generation
KR100317549B1 (en) How to Convert Bitmap Characters Using Chained Codes for Character Fill Processing
JPS6233948B2 (en)
JP3085175B2 (en) Drawing equipment
US7139099B2 (en) Image processing device and image processing method
US6238105B1 (en) Processor/memory non-intensive rendering for page printers
JP4646436B2 (en) Digital image processing device
KR100477777B1 (en) Method, system, program, and data structure for generating raster objects
US6539108B1 (en) Image processing device and method of the same
JP3085036B2 (en) Image output device
JPH05120441A (en) Vector picture plotting device
JP2000238338A (en) Image processing device
JP2004334533A (en) Image processing device and method
JP2854344B2 (en) How to display mixed mode documents
JP3375069B2 (en) Drawing processing device
JPH06175639A (en) Method and device for character generation
JP3089906B2 (en) Drawing equipment
JP3294249B2 (en) Image processing device
JPH09277616A (en) Printer and control method therefor

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080707

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090707

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100707

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130707

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees