JPH08156346A - 出力装置及びその制御方法 - Google Patents

出力装置及びその制御方法

Info

Publication number
JPH08156346A
JPH08156346A JP6307568A JP30756894A JPH08156346A JP H08156346 A JPH08156346 A JP H08156346A JP 6307568 A JP6307568 A JP 6307568A JP 30756894 A JP30756894 A JP 30756894A JP H08156346 A JPH08156346 A JP H08156346A
Authority
JP
Japan
Prior art keywords
data
output
output device
graphic
logical operation
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.)
Withdrawn
Application number
JP6307568A
Other languages
English (en)
Inventor
Masakatsu Sakurai
正勝 桜井
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP6307568A priority Critical patent/JPH08156346A/ja
Publication of JPH08156346A publication Critical patent/JPH08156346A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【目的】 複数回論理演算を行なうと結果が異なってし
まう論理演算描画においても期待した図形が得られる出
力装置及びその制御方法を提供する。 【構成】 ホストコンピュータ2から印刷データを受信
し、その中に描画方法を指定するコマンドがあると、そ
の内容を描画方法記憶部8bに記憶する。そして、受信
した描画データに基づくパターンを生成する場合、指定
された描画方法が、複数回繰り返し処理すると不具合の
発生する論理演算である場合には、ワークメモリ部8e
に中間的なデータを生成し、そのデータに従ってパター
ンの展開を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は上位装置からの出力デー
タに基づく画像を出力する出力装置及びその制御方法に
関するものである。
【0002】
【従来の技術】従来から、印刷出力を行なう印刷装置で
は、図形出力はあらかじめビットマップ形式の出力用メ
モリを確保し、指定された図形をその出力用メモリにビ
ット演算による書き込みを行なうことで図形をビットマ
ップパターン化し、印刷機構を通して図形出力を行なっ
ている。また、中間調出力が可能な印刷装置において
は、出力用メモリをビットマップ形式ではなく、バイト
マップといったように出力の1画素に対して、複数ビッ
トを割り当てて同様の印刷処理を行なっている。
【0003】そして、出力メモリへのビット演算は論理
和(以後ORという)あるいは論理積(以後ANDとい
う)により行なうのが一般的であった。なぜならば、通
常の図形描画はすでに出力用メモリに書き込まれた図形
に対して、OR演算により重ね書きを行なうか、あるい
はAND演算により上書きを行なうことで期待した図形
描画がほぼ実現できたからである。
【0004】また、OR演算やAND演算は同じビット
位置に複数回論理演算を行なってもビット演算結果は1
回だけ行なった時と変わらないという利点があったた
め、指定された図形を順次ラスタデータ化(水平線デー
タ)し、上記の論理演算で出力用メモリへの書き込みの
際、書き込みが重複する部分についての考慮が不要であ
った。
【0005】
【発明が解決しようとしている課題】及び
【作用】しかしながら、従来例では、排他的論理和(以
後XORという)で図形を描画したい場合、従来の書き
込み部分の論理演算をXORに変更するだけでは問題が
ある。XOR演算は、1回目と2回目とで演算結果が異
なるため、図形をラスタデータ化しXOR演算による書
き込みを行なうと、ラスタの重複した部分の演算が期待
するものと変わってしまうからである。
【0006】
【課題を解決するための手段】本発明の目的は、上記技
術的課題を克服し、複数回論理演算を行なうと結果が異
なってしまう論理演算描画においても期待した図形が得
られる出力装置及びその制御方法を提供しようとするも
のである。
【0007】この課題を解決するため、例えば本発明の
出力装置は以下に示す構成を備える。すなわち、上位装
置からの図形描画データを受信し、当該図形描画データ
に対応する図形パターンを、指定された論理演算に従っ
て出力用メモリに描画展開し、出力する出力装置であっ
て、指定された論理演算の種類が所定の論理演算である
場合、受信した図形描画データに基づく中間データを所
定のバッファメモリに生成する中間データ生成手段と、
該中間データ生成手段で生成された中間データに基づい
て出力用メモリに、指定された論理演算に従って展開す
る展開手段とを備える。
【0008】また、本発明にかかる実施態様に従えば、
所定の論理演算は、排他的論理和演算である。
【0009】また、前記中間データ生成手段は、図形描
画データ中に含まれる各描画コマンドに基づくパターン
を前記バッファメモリに論理和展開することが望まし
い。この結果、速度的に何ら問題なく、所望とした論理
演算による図形パターンを出力することが可能になる。
【0010】また、前記中間データ生成手段は、図形描
画データ中に含まれる描画コマンドに基づいてパターン
を形成した場合における水平走査した場合のドットの開
始位置と終了位置を示すデータを生成し、前記展開手段
は、データに基づいて開始位置と終了位置の間を指定さ
れた論理演算に従って出力用メモリに描画するようにし
ても良い。これにより、処理速度は多少遅くなるかもし
れないが、メモリ全体の消費量を少なくすることが可能
になる。
【0011】また、この場合、中間データ生成手段は、
生成するドットの開始位置と終了位置を示すデータの個
数が所定以上になった場合、当該図形データを分割し、
それぞれの分割図形単位に中間データを生成することが
望ましい。これにより、極端に複雑な図形であっても、
正しく動作することになる。
【0012】また、前記中間データ生成手段は、図形描
画データ中に含まれる各描画コマンドに基づくパターン
を前記バッファメモリに論理和展開する第1の処理手段
と、図形描画データ中に含まれる描画コマンドに基づい
てパターンを形成した場合における水平走査した場合の
ドットの開始位置と終了位置を示すデータを生成する第
2の処理手段とを含み、前記展開手段は、受信した図形
描画データに基づいて、前記第1、第2の処理手段のい
ずれかを選択する選択手段と、選択された処理手段が第
1の処理手段である場合には、生成されたパターンを指
定された論理演算に従って前記出力用メモリに展開し、
第2の処理手段が選択された場合には、生成されたデー
タに基づいて、開始位置と終了位置の間を指定された論
理演算に従って出力用メモリに描画するようにしても良
い。
【0013】この結果、受信した図形描画データに従っ
て、適宜、処理を切り替えるので、メモリ消費の低減と
速度の向上の両方を兼ね備えることが可能になる。
【0014】また、ここで、選択手段は、図形描画デー
タで表わされるパターンサイズに基づいて前記第1、第
2の処理手段のいずれかを選択することが望ましい。こ
の結果、最適なメモリ消費量と処理速度で展開処理が完
了するので、全体としての処理を向上させることが可能
になる。
【0015】また、更に、図形描画データで表わされる
描画図形に基づいて、前記中間データ生成手段による中
間データを生成するか、直接、出力メモリにパターンを
描画するかを選択する手段を備えても良い。この結果、
直接、出力用メモリに展開しても良い図形の場合には、
1クッションの処理が不要になるので、処理速度を大幅
に向上させることが可能になる。
【0016】
【実施例】以下、添付図面に従って本発明にかかわる実
施例を詳細に説明する。
【0017】尚、本実施例では白黒2値で出力を行なう
ページプリンタ等印刷装置における図形描画処理に応用
した例について説明するが、これに限るわけではなく、
多値あるいはカラーの印刷装置、展開されたデータを表
示するCRTや液晶表示器等でも全く構わない。また、
以下に示す図形描画データは、その図形を構成する複数
の描画コマンドで構成され、図形描画データの初めと終
わりには、その旨の制御コマンドが設けられてるものと
する。
【0018】図1は、実施例における印刷装置のブロッ
ク構成図である。同図において、1は印刷装置本体であ
り、2は印刷データ源となる外部のホストコンピュータ
である。3は印刷装置本体1全体の制御を司るCPUで
ある。4はホストコンピュータ2より送られてくるデー
タを受信する入力インターフェースであり、5は後述す
る図7〜図13に示す各フローチャートのプログラム及
び本印刷装置全体を制御するプログラム等が格納されて
いるプログラムROMである。6は入力インターフェー
ス4に入力された文字コードに対応する文字パターンが
格納されたフォントROMである。7はパネル部であ
り、オペレータはこのパネル部から印刷装置の各種設定
を行なう。
【0019】8はRAMでありCPU3がプログラムを
実行する際にワークエリアや受信バッファ等として使用
する。また、このRAM8内には、ホストコンピュータ
2から指定された描画論理を記憶する指定描画論理記憶
部8aと、図形を一旦ワークメモリに蓄えてから出力メ
モリに論理描画するかあるいは直接出力メモリに論理描
画するかを記憶する描画方法記憶部8bと、後述する図
形を水平線形式のデータに変換する処理において現在処
理を行なっているy座標の範囲を最小y座標値と最大y
座標値で示すy座標範囲記憶部8cと、後述する水平線
合成処理において既に保持されている水平線情報を検索
するための検索ポインタ記憶部8dと、図形を後述する
ビットマップ形式あるいは水平線形式で保持する際にワ
ークメモリとして使用するワークメモリ部8eと、印刷
出力すべき図形パターンを格納するための出力メモリ8
hがある。
【0020】9は出力部で、出力メモリ8hに蓄えられ
たページデータの印刷を行なう。
【0021】図2は、従来方式での論理描画を行なった
際の期待通りの出力結果が得られない場合を示す例で、
左図が描画したい図形パターンである。図示には、連続
する折れ線に対し、図で示す太さの線分の線端を円で、
その端点間を矩形で形成して形成する。そして、XOR
論理で出力メモリに書き込もうとするものである。しか
し、線分端を円で、線分の中間部分を矩形でと順次描画
していくと、右図のように重なり合った部分が反転して
しまい、期待した印刷結果が得られない。
【0022】一方、図3および図4は本実施例を用いて
XOR論理による描画を行なうことにより、期待通りの
印刷結果が得られる例である。図3は、XORのような
1回目と2回目とで印刷結果が異なるような論理で描画
を行なう場合には、直接出力メモリに、指定された論理
演算で書き込まず、まず上図に示すビットマップ形式の
ワークメモリ(予めゼロクリアしておく)にOR論理で
図形をパターン化しておき、最後に図形全体を順次指定
された論理で出力メモリに書き込むことにより、右図に
示すような結果が得られるのを示している。
【0023】また図4も同様に、直接出力メモリに書き
込まず、まず上図に示す水平線形式のワークメモリに図
形を水平線で表現する形にしておき、最後に水平線デー
タを順次指定された論理で出力メモリに書き込むことに
より、右図に示すような結果が得られるのを示してい
る。
【0024】図4の動作をより詳しく説明する。
【0025】例えば、ホストコンピュータから指示され
た図形パターンを形成するための描画コマンド群を受信
した場合、その図形パターンの大きさ(例えば外接矩
形)をRAM8に確保する。そして、一本ずつ水平線に
走査していった場合の描画する図形の開始X座標と終了
X座標を図示の如くワークメモリに記憶する。また、一
本の水平線走査に複数の線分が存在する可能性もあるの
で、同一走査線上に他の水平線分が存在するときには、
図示の“ポインタ”に次のデータが存在するデータのア
ドレスを記憶する。尚、同一水平走査線上に他の水平線
分が存在しない場合には、ポインタにあり得ないデータ
例えば“0”を格納しておく。
【0026】以上のようにして図4の如く、ソースパタ
ーン(展開しようとするパターン)の水平線に分解した
ときの、各水平線の始点と終点、そして、ポインタで構
成されるデータに変換する。この後、実際に出力メモリ
に格納する場合には、各水平線文をホストコンピュータ
から指示された通りのXOR展開するることで、当初の
意図した図形パターンを出力メモリにXOR展開するこ
とが可能になる。
【0027】図5および図6は、本実施例における図形
データを一時保持するためのワークメモリの内部構造を
示す図であり、図5は、先に示した図3のように、ワー
クメモリにビットマップ形式のデータ保持に使用した時
のものである。図中、幅ドット数は、このワークメモリ
内に格納するビットマップパターンの幅のドット数を示
し、幅バイト数は幅ドット数をバイト数で表わしたも
の、高さドット数はビットパターンの高さ方向のドット
数であり、オフセットx値およびオフセットy値はこの
ビットマップパターンを出力メモリに転送する際の位置
関係を示す値を格納するためのものである。また、ビッ
トマップパターンは、図形をビットマップパターンに変
換して保持するための領域である。
【0028】図6は、ワークメモリを水平線形式のデー
タ保持に使用した時のものであり、図中最小y座標値お
よび最大y値はこれから描画使用とする図形の出力メモ
リ内における描画図形の座標範囲を示すものである。カ
レント最小y座標値およびカレント最大y座標値は、最
小y座標値から最大y座標値内のどの部分の図形データ
を水平線データとして保持使用としているかを示してお
り、このワークメモリの初期化時にはy座標範囲記憶部
8cと同じ値が設定される。
【0029】最大水平線格納数は、ワークメモリ内に水
平線データを最大いくつまで格納できるかを示し、カレ
ント水平線格納数は現在保持している水平線データ数を
示している。カレント最小y座標値の水平線情報へのポ
インタからカレント最大y座標値の水平線情報へのポイ
ンタまでは、前述したカレント最小y座標値からカレン
ト最大y座標値間の各y座標値にそれぞれ対応してお
り、対応したy座標値における水平線データは、このポ
インタが指す先に格納されている。また、そのy座標値
に図形データが存在しない場合には、NULLが入る。
水平線データはこれらのポインタの後に格納され水平線
情報が格納されているかを示す使用フラグ、開始x座標
値、終了y座標値、次の水平線へのポインタおよび前の
水平線へのポインタにより構成されている。この次の水
平線へのポインタおよび前の水平線へのポインタは、同
一y座標値上の複数の水平線データを格納する場合に、
開始x座標値の昇順に順次リンクするために使用する。
続く水平線データが無い場合にはNULLを設定する。
この水平線データがワークメモリの残りをすべて使用
し、格納可能な最大数が前述した最大水平線格納数に入
る。使用フラグは、このワークメモリを水平線形式に初
期化する際には、すべて未使用に設定され、水平線情報
が設定されるごとに使用中の設定になる。
【0030】以下、上記実施例を実現する処理手順を、
図7,図8,図9,図10,図11のフローチャートに
従って説明する。
【0031】まず、本装置に電源が供給されると、ステ
ップS1で印刷装置の初期設定をし、指定描画論理記憶
部8aをOR論理に設定し、出力メモリ8h内をクリア
し、次にステップS2で、入力インターフェース4から
受信データを受け取る。
【0032】ステップS3では、その受信データが描画
論理指定命令データであるか否かを判断し、受信データ
が描画論理指定命令データである場合には、ステップS
4でその命令で指示された描画論理を指定描画論理記憶
部8aに設定し、ステップS2に戻る。
【0033】一方、ステップS3の判断が“NO”の場
合には、ステップS5でその受信データが図形描画命令
データであるか否かを判断し受信データが図形描画命令
データで無い場合には、ステップS6で通常の印刷装置
としての処理を行ないステップS2に戻る。
【0034】つまり、文字印刷印字命令なら指定された
文字コードの文字をフォントROM6から検索し出力メ
モリ8hへの展開処理を行ない、また排紙命令なら出力
メモリ8hに展開された画像情報を出力部9を介して印
刷出力を行なう。
【0035】さて、ステップS5の判断が“YES”の
場合、すなわち、受信データが図形描画命令であると判
断した場合には、ステップS7に進み、その命令で指定
された図形を出力メモリ8fに直接書き込むか、あるい
はワークメモリ部8eへ一旦書き込んだ後出力メモリ8
fへ書き込むかを、図8のフローチャートに示す描画方
法判別処理ルーチンを呼び出し判断する。
【0036】描画方法半別処理ルーチンでは、まず、ス
テップS20で、指定描画論理記憶部8aから図形をど
の描画論理により出力メモリに書き込むかを取り出し、
ステップS21でその描画論理がOR論理かどうかを判
断する。もし、この判断で“YES”の場合、処理はス
テップS22に進んで、描画方法記憶部8bに出力メモ
リ部8fに描画するように値を設定し、呼び出されたル
ーチンに戻る。
【0037】また、ステップS21の判断が“NO”の
場合には、ステップS23で描画方法記憶部8bにワー
クメモリ部8eに描画するように値を設定し呼び出され
たルーチンに戻る。
【0038】尚、実施例では実施例のステップS21の
判断では、OR論理かどうかにより行なったが、OR論
理以外でも、例えばAND論理等複数回書き込んでも結
果が等しいような論理描画については、OR論理同様出
力メモリ部に描画するように判断処理を追加することも
できる。つまり、1つの図形を構成する描画コマンド群
をそのまま解釈して実行した場合に、結果が意図通りに
ならないかどうかを判断する。
【0039】さて、処理がステップS7の描画方法判別
処理ルーチンから戻ったら、ステップS8で描画方法記
憶部8bにより、図形を出力メモリ部に直接書き込むか
あるいはワークメモリ部に書き込んだ後、出力メモリ部
に書き込むかを判断し、この判断で出力メモリ部への書
き込みであれば、ステップS9で指定描画論理記憶部8
aに設定されている描画論理で出力メモリ部8fに図形
の書き込みを行ない、ステップS2に戻る。
【0040】また、もしステップS8の判断でワークメ
モリ部への書き込みであれば、ステップS10でワーク
メモリ部への書き込みをビットマップ形式で行なうか水
平線形式で行なうかを判断する。この判断は、まず描画
すべき図形の座標値の範囲により、この図形をビットマ
ップメモリに格納するためにどれくらいのメモリが必要
となるかを求め、ワークメモリ部8eに対して図5で示
すメモリの割り付けを行なった際のビットマップパター
ンの部分に、これから描画すべき図形全体が格納可能か
どうかにより行なう。この判断で、格納可能であればス
テップS11で図9のフローチャートに示すビットマッ
プ処理ルーチンを呼出し、格納できないと判断した場合
には、ステップS12で図10のフローチャートに示す
水平線処理ルーチンを呼び出す。尚、水平線処理の方
が、一般的に情報量は少なくて済むが、描画対象の図形
は非常に複雑な場合には多くなる。実施例では、これに
対処している。
【0041】以上のようにして、ステップS11あるい
はステップS12のルーチンから戻ったらステップS2
に戻る。
【0042】次に、ステップS11におけるビットマッ
プ処理ルーチンを図9を参照して説明する。
【0043】まずステップS30で、ワークメモリ部8
eを図5のビットマップ形式時のワークメモリで示す形
で初期化する。この初期化時には、ワークメモリに描画
する図形を格納する際のビットマップパターンの幅や高
さオフセット値などを設定する。ビットマップパターン
の高さや幅は、受信した図形パターンの描画データに含
まれる全データのX,Y座標の最大最小値を検出すれば
得られる。
【0044】次にステップS31で図形をOR論理でワ
ークメモリのビットマップパターン部へ書き込み、ステ
ップS32で図形描画が終了したかを判断し、終了して
いなければステップS31に戻る。図形描画が終了した
らステップS33でワークメモリ部8eに格納していた
オフセット値の情報を取り出し、ステップS34でワー
クメモリ部に格納したビットマップパターンを出力メモ
リ部8fのオフセット値を考慮した位置に指定描画論理
記憶部8aに記憶されている論理に基づきパターンの書
き込み処理を行ない、呼び出されたルーチンに戻る。
【0045】次に、ステップS12における水平線処理
ルーチンを図10のフローチャートに従って説明する。
【0046】まず、ステップS40で、描画すべき図形
のy座標値の範囲、つまり図形の最小最大y座標値の範
囲を求めy座標範囲記憶部8cに設定し、ステップS4
1でワークメモリ部8eを図6の水平線形式時のワーク
メモリで示す形で初期化する。この初期化時には、ワー
クメモリに水平線情報を格納するための処理に必要な情
報を設定する。次にステップS42で図形を水平線デー
タ化、つまりy座標値と開始終了のx座標値を求め、ス
テップS43で図11のフローチャートに示す水平線合
成処理ルーチンを呼び出す。
【0047】水平線合成処理ルーチンではまずステップ
S50で、合成したい水平線のy座標値がy座標範囲記
憶部8cに格納されている値の範囲内かどうかを判断
し、もし範囲外であればそのまま呼び出されたルーチン
に戻り、範囲内であればステップS51で、検索ポイン
タ記憶部8dを初期化する。この初期化は、合成したい
水平線のy座標値に相当する水平線情報へのポインタを
図6の水平線情報へのポインタの中から取り出すことに
より行なう。
【0048】次にステップS52で検索ポインタ記憶部
8dに格納されているポインタの値がNULLかどうか
を判断し、NULLでなければステップS53で、合成
したい開始終了のx座標値の範囲が検索ポインタの指す
水平線情報の開始終了のx座標値の範囲と重なるかを判
断する。もし、この判断で重ならない場合は、検索ポイ
ンタ記憶部8dのポインタに図6で示した次の水平線へ
のポインタを設定し、ステップS52に戻る。
【0049】一方、ステップS53の判断で重なる場合
には、ステップS5で合成したい水平線の開始x座標値
と検索ポインタの指す水平線の開始x座標値とで小さい
座標値の方を開始xとし、検索ポインタの指す水平線の
開始x座標値および合成したい水平線の開始x座標値を
更新し、次にステップS56で合成したい水平線の終了
x座標値と検索ポインタの指す水平線の終了x座標値と
で大きい座標値の方を終了xとし、検索ポインタの指す
水平線の終了x座標値および合成したい水平線の終了x
座標値を更新する。次にステップS57で、検索ポイン
タ記憶部8dのポインタに図6で示した次の水平線への
ポインタを設定することで更新し、ステップS58で検
索ポインタ記憶部8dに格納されているポインタの値が
NULLかどうかを判断し、NULLでなければステッ
プS59で、合成したい開始終了のx座標値の範囲が検
索ポインタの指す水平線情報の開始終了のx座標値の範
囲と重なるかを判断する。もし、この判断で重ならない
場合は、ステップS57に戻る。一方、ステップS59
の判断で重なる場合にはステップS60で、検索ポイン
タの指す水平線情報の中の前の水平線へのポインタを取
り出し、そのポインタの指す水平線情報を未使用状態に
し、カレント水平線格納数を1つ減らし、そのポインタ
の前後にリンクされた水平線情報同士をそれぞれリンク
することにより、そのポインタの指す水平線情報を解放
し、ステップS55に戻る。
【0050】一方、ステップS52の判断でポインタが
NULLであれば、注目している水平線に対する処理が
完了したことになるから、ステップS61で、水平線情
報の新規登録を行なう。この登録は、図6に示すワーク
メモリの中から水平線情報部で使用フラグが未使用にな
っているものを検索し、そこに開始終了のx座標値の設
定、使用フラグを使用中に設定し、そして水平線のリン
クの最後にこの新規水平線情報を次の水平線ポインタお
よび前の水平線ポインタを設定することでリンクする。
次にステップS62で、合成した水平線情報を開始x座
標値の昇順にリンクするように並び換えを行ない、呼び
出されたルーチンに戻る。
【0051】また、ステップS58の判断でポインタが
NULLであればステップS62に進む。
【0052】ステップS43の水平線合成処理ルーチン
から戻ったら、ステップS44で図形の水平線データ化
がすべて終了したかを判断し、もし終了していなければ
ステップS42に戻り、終了していればステップS45
で、ワークメモリ部8eに格納された全ての水平線デー
タを各y座標値ごとに順次取り出し、開始終了のx座標
値間を指定描画論理記憶部8a設定されている論理によ
り、出力メモリ部8fに書き込み、呼び出されたルーチ
ンに戻る。
【0053】以上説明したように本実施例によれば、複
数の描画コマンドで構成される図形を一単位とし、その
図形を指定された論理演算を行う場合にも、当初の意図
した通りの結果を得ることが可能になる。
【0054】<第2の実施例の説明>次に第2の実施例
として図形を直接出力メモリに書き込むか、一旦ワーク
メモリに格納してから指定された論理に基づき出力メモ
リに書き込むかの切り替えを描画図形により行なう場合
について述べる。尚、第2の実施例は上記実施例(第1
の実施例)とほとんど同じに構成されるため、処理の異
なる描画方法判別処理についてのみ動作を説明する。
【0055】図12に示す描画方法判別処理ルーチン2
は、本第2の実施例の印刷装置の前述した切り替えの判
別を行なう部分のフローチャートである。この処理は、
第1の実施例の図7のフローチャートのステップS7の
描画方法判別処理ルーチンに置き換わるものであり、こ
のフローチャートに従って、本第2の実施例の動作を説
明する。
【0056】描画方法判別処理ルーチン2ではまずステ
ップS70で、図形描画命令で指定された図形情報を取
り出し、ステップS71でその図形は折れ線描画である
かどうかを判断する。もし、この判断でノーの場合に
は、ステップS72で描画方法記憶部8bに出力メモリ
部8fに描画するように値を呼び出されたルーチンに戻
る。また、ステップS71の判断でイエスの場合は、ス
テップS73で描画方法記憶部8bにワークメモリ部8
eに描画するように値を設定し呼び出されたルーチンに
戻る。本第2の実施例のステップS71の判断では、折
れ線描画かどうかにより行なったが、折れ線描画以外で
も、図形書き込み処理の都合上、一図形描画処理におい
て重なり合う部分が発生しがちな図形描画図形処理につ
いては、折れ線描画同様ワークメモリ部に一旦蓄えてか
ら出力メモリに描画するように判断処理を追加すること
もできる。
【0057】<第3の実施例の説明>次に第3の実施例
として図形を水平線化し、一旦ワークメモリに格納して
から指定された論理に基づき出力メモリに書き込む際、
水平線を格納するワークメモリが一杯になってしまった
場合のエラー回避処理について述べる。尚、第3の実施
例は第1の実施例とほとんど同じに構成されるため、処
理の異なる水平線処理についてのみ動作を説明する。
【0058】図13に示す水平線処理ルーチン2は、本
第3の実施例の印刷装置の前述したワークメモリが一杯
になった場合のエラー回避処理を行なう部分のフローチ
ャートである。この処理は、第1の実施例の図7のフロ
ーチャートのステップS12の水平線処理ルーチンに置
き換わるものであり、このフローチャートに従って、本
実施例の動作を説明する。
【0059】水平線処理ルーチン2ではまずステップS
80で、描画すべき図形のy座標値の範囲、つまり図形
の最小最大y座標値の範囲を求めy座標範囲記憶部8c
に設定し、ステップS81でワークメモリ部8eを図6
の水平線形式時のワークメモリで示す形で初期化する。
この初期化時には、ワークメモリに水平線情報を格納す
るための処理に必要な情報を設定する。次にステップS
82で図形を水平線データ化、つまりy座標値と開始終
了のx座標値を求める。次にステップS83で、図6に
示すワークメモリのカレント水平線格納線が最大水平線
格納数より小さい、つまり水平線の格納が可能かどうか
を判断し、この判断でまだ格納可能であれば、ステップ
S84で水平線合成処理ルーチンを呼び出す。
【0060】ステップS84の水平線合成処理ルーチン
から戻ったら、ステップS85で図形の水平線データ化
が全て終了したかを判断し、もし終了していなければス
テップS82に戻り、終了していればステップS86
で、ワークメモリ部8eに格納された全ての水平線デー
タを各y座標ごとに順次取り出し、開始終了のx座標値
間を指定描画論理記憶部8aに設定されている論理によ
り、出力メモリ部8fに書き込む。次に、ステップS8
7で描画すべき図形が全てのy座標の範囲に渡って終了
したかを、図6のワークメモリの最大y座標値とカレン
ト最大y座標値との比較により行なう。つまり、両者の
値が等しければ終了とみなし、カレント最大y座標値が
小さければまだ終了していないものとする。この判断で
終了であると判断した場合には、呼び出されたルーチン
に戻り、終了でないと判断した場合にはステップS88
でy座標値の更新を行なう。つまり、y座標範囲記憶部
8cの最小y座標値を最大y座標値に1加えた値に設定
し、同じくy座標範囲記憶部8cの最大y座標値は図6
に示すワークメモリの最大y座標値を設定する。ステッ
プS88の処理が済んだらステップS81に戻る。
【0061】一方、ステップS83の判断でメモリが一
杯になった場合には、ステップS89でy座標範囲記憶
部8cの最大y座標値を小さくすることにより、y座標
範囲を縮小する。ここでの値の決め方は、例えば、最小
y座標値と最大y座標値の差の半分を最小y座標値に加
えた座標値を新たな最大y座標値とすることにより行な
う。ステップS89の処理が済んだらステップS81に
戻る。
【0062】尚、本発明は、複数の機器から構成される
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置にプログ
ラムを供給することによって達成される場合にも適用で
きる。
【0063】また、実施例が適応するプリンタは、その
種類を問わないが、高解像度、高速性が望まれる、ペー
ジプリンタの場合に、その威力を特に発揮する。
【0064】
【発明の効果】以上説明したように本発明によれば、描
画する論理あるいは図形により期待した結果が得られな
い場合には、一旦ワークメモリに図形データを保持し、
重なり合う部分は1つに合成しておき、この合成後に出
力用メモリに所望の論理で書き込みを行なうことによ
り、XOR演算描画のような複数回路論理演算を行なう
と結果が重なってしまう論理演算描画においても期待し
た図形が得られるようになる。
【0065】また、ワークメモリに一時的に保持する
際、メモリが一杯になったら、保持する図形データの範
囲を適宜縮小し、保持範囲を順次換えていくことで目的
が達成でいるので、少ないワークメモリ構成でも処理が
行なえる。
【0066】
【図面の簡単な説明】
【図1】本発明の実施例の印刷装置全体構成を示すブロ
ック図である。
【図2】従来方式による論理描画の結果を表す図であ
る。
【図3】本発明による論理描画の結果を表す図である。
【図4】本発明による論理描画の結果を表す図である。
【図5】本発明のワークメモリのデータ構造を表す図で
ある。
【図6】本発明のワークメモリのデータ構造を表す図で
ある。
【図7】本発明の実施例の制御手順を示すフローチャー
トである。
【図8】本発明の実施例の制御手順を示すフローチャー
トである。
【図9】本発明の実施例の制御手順を示すフローチャー
トである。
【図10】本発明の実施例の制御手順を示すフローチャ
ートである。
【図11】本発明の実施例の制御手順を示すフローチャ
ートである。
【図12】本発明の実施例の制御手順を示すフローチャ
ートである。
【図13】本発明の実施例の制御手順を示すフローチャ
ートである。
【符号の説明】
1 印刷装置 2 ホストコンピュータ 3 CPU 4 入力インターフェース 5 プログラムROM 6 フォントROM 7 パネル部 8 RAM 8a 指定描画論理記憶部 8b 描画方法記憶部 8c y座標範囲記憶部 8d 検索ポインタ記憶部 8e ワークメモリ部 8f 出力メモリ部 9 出力部

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】 上位装置からの図形描画データを受信
    し、当該図形描画データに対応する図形パターンを、指
    定された論理演算に従って出力用メモリに描画展開し、
    出力する出力装置であって、 指定された論理演算の種類が所定の論理演算である場
    合、受信した図形描画データに基づく中間データを所定
    のバッファメモリに生成する中間データ生成手段と、 該中間データ生成手段で生成された中間データに基づい
    て出力用メモリに、指定された論理演算に従って展開す
    る展開手段とを備えることを特徴とする出力装置。
  2. 【請求項2】 前記所定の論理演算は、排他的論理和演
    算であることを特徴とする請求項第1項に記載の出力装
    置。
  3. 【請求項3】 前記中間データ生成手段は、 図形描画データ中に含まれる各描画コマンドに基づくパ
    ターンを前記バッファメモリに論理和展開することを特
    徴とする請求項第1項に記載の出力装置。
  4. 【請求項4】 前記中間データ生成手段は、 図形描画データ中に含まれる描画コマンドに基づいてパ
    ターンを形成した場合における水平走査した場合のドッ
    トの開始位置と終了位置を示すデータを生成し、 前記展開手段は、データに基づいて開始位置と終了位置
    の間を指定された論理演算に従って出力用メモリに描画
    することを特徴とする請求項第1項に記載の出力装置。
  5. 【請求項5】 前記中間データ生成手段は、水平走査し
    た場合の位置の重なりを制御する合成手段を有すること
    を特徴とする請求項第4項に記載の出力装置。
  6. 【請求項6】 前記中間データ生成手段は、生成するド
    ットの開始位置と終了位置を示すデータの個数が所定以
    上になった場合、当該図形データを分割し、それぞれの
    分割図形単位に中間データを生成することを特徴とする
    請求項第4項に記載の出力装置。
  7. 【請求項7】 前記中間データ生成手段は、 図形描画データ中に含まれる各描画コマンドに基づくパ
    ターンを前記バッファメモリに論理和展開する第1の処
    理手段と、 図形描画データ中に含まれる描画コマンドに基づいてパ
    ターンを形成した場合における水平走査した場合のドッ
    トの開始位置と終了位置を示すデータを生成する第2の
    処理手段とを含み、 前記展開手段は、 受信した図形描画データに基づいて、前記第1、第2の
    処理手段のいずれかを選択する選択手段と、 選択された処理手段が第1の処理手段である場合には、
    生成されたパターンを指定された論理演算に従って前記
    出力用メモリに展開し、 第2の処理手段が選択された場合には、生成されたデー
    タに基づいて、開始位置と終了位置の間を指定された論
    理演算に従って出力用メモリに描画することを特徴とす
    る請求項第1項に記載の出力装置。
  8. 【請求項8】 前記第2の処理手段は、水平走査した場
    合の重なりを制御する合成手段を含むことを特徴とする
    請求項第7項に記載の出力装置。
  9. 【請求項9】 前記選択手段は、、図形描画データで表
    わされるパターンサイズに基づいて前記第1、第2の処
    理手段のいずれかを選択することを特徴とする請求項第
    7項に記載の出力装置。
  10. 【請求項10】 更に、図形描画データで表わされる描
    画図形に基づいて、前記中間データ生成手段による中間
    データを生成するか、直接、出力メモリにパターンを描
    画するかを選択する選択手段を備えることを特徴とする
    請求項第1項に記載の出力装置。
  11. 【請求項11】 更に、前記展開手段で展開された出力
    メモリの内容を出力する出力手段を備えることを特徴と
    する請求項第1項に記載の出力装置。
  12. 【請求項12】 前記出力手段は、表示器であることを
    特徴とする請求項第10項に記載の出力装置。
  13. 【請求項13】 前記出力手段は、プリンタであること
    を特徴とする請求項第10項に記載の出力装置。
  14. 【請求項14】 更に、図形描画データを供給する上位
    装置を有することを特徴とする請求項第1項に記載の出
    力装置。
  15. 【請求項15】 前記上位装置は、ホストコンピュータ
    であることを特徴とする請求項第1項に記載の出力装
    置。
  16. 【請求項16】 上位装置からの図形描画データを受信
    し、当該図形描画データに対応する図形パターンを、指
    定された論理演算に従って出力用メモリに描画展開し、
    出力する出力装置の制御方法であって、 指定された論理演算の種類が所定の論理演算である場
    合、受信した図形描画データに基づく中間データを所定
    のバッファメモリに生成する中間データ生成工程と、 該中間データ生成工程で生成された中間データに基づい
    て出力用メモリに、指定された論理演算に従って展開す
    る展開工程とを備えることを特徴とする出力装置の制御
    方法。
  17. 【請求項17】 前記所定の論理演算は、排他的論理和
    演算であることを特徴とする請求項第16項に記載の出
    力装置の制御方法。
  18. 【請求項18】 前記中間データ生成工程は、 図形描画データ中に含まれる各描画コマンドに基づくパ
    ターンを前記バッファメモリに論理和展開することを特
    徴とする請求項第16項に記載の出力装置の制御方法。
  19. 【請求項19】 前記中間データ生成工程は、 図形描画データ中に含まれる描画コマンドに基づいてパ
    ターンを形成した場合における水平走査した場合のドッ
    トの開始位置と終了位置を示すデータを生成し、 前記展開工程は、データに基づいて開始位置と終了位置
    の間を指定された論理演算に従って出力用メモリに描画
    することを特徴とする請求項第16項に記載の出力装置
    の制御方法。
  20. 【請求項20】 前記中間データ生成工程は、水平走査
    した場合の位置の重なりを制御する合成工程を有するこ
    とを特徴とする請求項第19項に記載の出力装置の制御
    方法。
  21. 【請求項21】 前記中間データ生成工程は、生成する
    ドットの開始位置と終了位置を示すデータの個数が所定
    以上になった場合、当該図形データを分割し、それぞれ
    の分割図形単位に中間データを生成することを特徴とす
    る請求項第19項に記載の出力装置の制御方法。
  22. 【請求項22】 前記中間データ生成工程は、 図形描画データ中に含まれる各描画コマンドに基づくパ
    ターンを前記バッファメモリに論理和展開する第1の処
    理工程と、 図形描画データ中に含まれる描画コマンドに基づいてパ
    ターンを形成した場合における水平走査した場合のドッ
    トの開始位置と終了位置を示すデータを生成する第2の
    処理工程とを含み、 前記展開工程は、 受信した図形描画データに基づいて、前記第1、第2の
    処理手段のいずれかを選択する選択工程と、 選択された工程が第1の処理工程である場合には、生成
    されたパターンを指定された論理演算に従って前記出力
    用メモリに展開し、 第2の処理工程が選択された場合には、生成されたデー
    タに基づいて、開始位置と終了位置の間を指定された論
    理演算に従って出力用メモリに描画することを特徴とす
    る請求項第16項に記載の出力装置の制御方法。
  23. 【請求項23】 前記第2の処理工程は、水平走査した
    場合の重なりを制御する合成手段を含むことを特徴とす
    る請求項第22項に記載の出力装置の制御方法。
  24. 【請求項24】 前記選択工程は、図形描画データで表
    わされるパターンサイズに基づいて前記第1、第2の処
    理工程のいずれかを選択することを特徴とする請求項第
    22項に記載の出力装置の制御方法。
  25. 【請求項25】 更に、図形描画データで表わされる描
    画図形に基づいて、前記中間データ生成故意定による中
    間データを生成するか、直接、出力メモリにパターンを
    描画するかを選択する工程を備えることを特徴とする請
    求項第16項に記載の出力装置の制御方法。
  26. 【請求項26】 更に、前記展開工程で展開された出力
    メモリの内容を出力する出力工程を備えることを特徴と
    する請求項第16項に記載の出力装置の制御方法。
  27. 【請求項27】 前記出力工程は、表示器に出力するこ
    とを特徴とする請求項第26項に記載の出力装置の制御
    方法。
  28. 【請求項28】 前記出力工程は、プリンタに出力する
    ことを特徴とする請求項第26項に記載の出力装置の制
    御方法。
  29. 【請求項29】 更に、図形描画データを供給する上位
    装置を有することを特徴とする請求項第16項に記載の
    出力装置の制御方法。
  30. 【請求項30】 前記上位装置は、ホストコンピュータ
    であることを特徴とする請求項第16項に記載の出力装
    置の制御方法。
JP6307568A 1994-12-12 1994-12-12 出力装置及びその制御方法 Withdrawn JPH08156346A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6307568A JPH08156346A (ja) 1994-12-12 1994-12-12 出力装置及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6307568A JPH08156346A (ja) 1994-12-12 1994-12-12 出力装置及びその制御方法

Publications (1)

Publication Number Publication Date
JPH08156346A true JPH08156346A (ja) 1996-06-18

Family

ID=17970649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6307568A Withdrawn JPH08156346A (ja) 1994-12-12 1994-12-12 出力装置及びその制御方法

Country Status (1)

Country Link
JP (1) JPH08156346A (ja)

Similar Documents

Publication Publication Date Title
JPH11298717A (ja) 印刷システム
JP2911470B2 (ja) 文字処理装置及び方法
JPH06328785A (ja) 文字生成方法及びその装置
JPH05342314A (ja) 画像処理装置
JPH08156346A (ja) 出力装置及びその制御方法
JPH06103456B2 (ja) ラスタ演算回路
JP2710350B2 (ja) 画像処理装置および画像処理装置の画像処理方法
JP2000066658A (ja) 画像処理装置および記録媒体
JP3391185B2 (ja) 描画処理装置
JP3155617B2 (ja) 文書処理方法及び装置
JP2711860B2 (ja) 出力制御方法およびその装置
JP2803746B2 (ja) 文字処理方法及びその装置
JP3089014B2 (ja) 出力制御方法及びその装置
JPH09277616A (ja) プリンタ及びその制御方法
JP2598125B2 (ja) 出力制御装置
JP2575267B2 (ja) 文字処理装置
JPH08186708A (ja) 画像拡大装置
JP2737845B2 (ja) 文字処理方法及び装置
JP3119360B2 (ja) 出力装置及び出力方法
JP2518831B2 (ja) 文書処理装置
JP2728916B2 (ja) 文字処理装置及び方法
JPH086542A (ja) 文字フォント及び該文字フォントのパターン展開方法及び装置
JPH0537701A (ja) 画像記録装置
JPS62242225A (ja) ハ−ドコピ−の制御装置
JPH0239361A (ja) 文書処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020305