JP3336800B2 - 画像処理装置 - Google Patents

画像処理装置

Info

Publication number
JP3336800B2
JP3336800B2 JP4093595A JP4093595A JP3336800B2 JP 3336800 B2 JP3336800 B2 JP 3336800B2 JP 4093595 A JP4093595 A JP 4093595A JP 4093595 A JP4093595 A JP 4093595A JP 3336800 B2 JP3336800 B2 JP 3336800B2
Authority
JP
Japan
Prior art keywords
command
small area
pdl
path
command data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP4093595A
Other languages
English (en)
Other versions
JPH08230249A (ja
Inventor
健次 堤
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
Fujifilm Business Innovation Corp
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, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP4093595A priority Critical patent/JP3336800B2/ja
Publication of JPH08230249A publication Critical patent/JPH08230249A/ja
Application granted granted Critical
Publication of JP3336800B2 publication Critical patent/JP3336800B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Dot-Matrix Printers And Others (AREA)
  • Record Information Processing For Printing (AREA)
  • Processing Or Creating Images (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ページ記述言語をサポ
ートする画像処理装置に関するものである。
【0002】
【従来の技術】コンピュータに接続された記録装置等の
ための画像処理装置において、ページ記述言語(以下、
「PDL」という。)をサポートするものが、従来より
知られている。図32は、ページ記述言語をサポートす
る画像処理装置の第1の従来例を示すブロック図であ
る。図中、21はホストコンピュータ、22はPDLイ
ンタプリタ、23はコマンドバッファ、24は1ページ
分の画像メモリ、25はプリンタエンジン、26はイン
タフェースである。このプリンタエンジン25は、レー
ザプリンタなどにおけるように、1ページ分の画像メモ
リから画像データの供給を受ける必要があるタイプのも
のである。
【0003】ホストコンピュータ21は、PDLコマン
ドデータを出力する。PDLインタプリタ22は、イン
タフェース26を介して、PDLコマンドデータを取り
込み、コマンドバッファ23に記憶した上で、1ページ
分のPDLコマンドデータに基づいて画像データを1ペ
ージ分の画像メモリ24上に展開する。PDLインタプ
リタ22は、この展開を終了すると、終了をプリンタエ
ンジン25に知らせ、プリンタエンジン25は、1ペー
ジ分の画像メモリ26に記憶された画像データを読み出
して1ページ分の印字を行なう。プリンタエンジン25
は、印字終了後、この終了をPDLインタプリタ22に
知らせ、PDLインタプリタ22は、次のページのPD
Lコマンドデータに対し、再び同様の処理をする。
【0004】図33は、ページ記述言語をサポートする
画像処理装置の第2の従来例を示すブロック図である。
この第2の従来例は、例えば、特開平5−31974号
公報等により知られている。図中、図32と同様な部分
には同じ符号を用い説明を省略する。27は小領域バッ
ファ、28は圧縮器、29は画像圧縮メモリ、30は復
号器、31,32は信号線である。この従来例において
は、1ページ分の画像領域が複数の小領域である、領域
0ないし領域7に分割されている。小領域バッファ27
は、1つの小領域の画像データの容量に相当する容量の
バッファである。
【0005】PDLインタプリタ22は、領域0から順
に各小領域ごとに、ページ記述言語で記載されたコマン
ドデータ(以下、「PDLコマンドデータ」という。)
の1ページ分に基づいて、当該小領域内の画像データの
みを小領域バッファ27上に展開する。
【0006】圧縮器28は、PDLインタプリタ22の
指示を信号線31を介して受け、小領域バッファ27に
記憶された当該小領域内の画像データを圧縮符号化によ
り圧縮画像データに変換し、順次1ページ分の画像圧縮
メモリ29に記憶させる。圧縮器28は、1小領域分の
画像データの圧縮符号化を終了すると、信号線31を介
しPDLインタプリタ22に終了を知らせる。そうする
と、PDLインタプリタ22および圧縮器28は、次の
小領域内の画像データに対し、再び、PDLコマンドデ
ータの1ページ分に基づいて同様の処理をし、最後の領
域7までこの処理を繰り返す。
【0007】このようにして、1ページ分の画像データ
の展開とその圧縮符号化とを終了すると、信号線32を
介して復号器30を起動する。復号器30は、画像圧縮
メモリ29に記憶された圧縮符号化データを読み出して
復号し、プリンタエンジン25に出力する。このように
して、プリンタエンジン25は1ページ分の印字を行な
う。復号器30は、復号終了後、終了を知らせる信号を
信号線32を介してPDLインタプリタ22に出力す
る。
【0008】図34は、ページ記述言語をサポートする
画像処理装置の第3の従来例を示すブロック図である。
この第3の従来例も、例えば、特開平5−31974号
公報等により知られている。図中、図34と同様の部分
には同じ符号を用い説明を省略する。27aは第1の小
領域バッファ、27bは第2の小領域バッファ、33は
マルチプレクサ、34はセレクタ、35,36は信号線
である。この第3の従来例は、図33に示されるブロッ
ク図において、小領域バッファ27として、同容量の第
1および第2の小領域バッファ27a,27bを使用し
た場合の例であり、そのために、マルチプレクサ33と
セレクタ34を追加したものである。したがって、全体
的な動作については、上述した図33に示されるブロッ
ク図と同様であり、相違する部分について動作を説明す
る。
【0009】マルチプレクサ33は、PDLインタプリ
タ22の指示を信号線35を介して受け、PDLインタ
プリタ22の出力を第1の小領域バッファ27aか第2
の小領域バッファ27bのいずれかに交互に接続し、P
DLインタプリタ22の出力をいずれかに書き込ませ
る。セレクタ34は、信号線36を介してPDLインタ
プリタ22の指示を受け、第1の小領域バッファ27a
の書き込み期間中は、第2の小領域バッファ27bを読
み出して圧縮器28に出力し、第2の小領域バッファ2
7bの書き込み期間中は、第1の小領域バッファ27a
を読み出して圧縮器28に出力する。小領域バッファ2
7として2つの第1および第2の小領域バッファ27
a,27b使用するから、PDLインタプリタ22によ
る書き込み動作と圧縮器28による読み出し動作とを同
時に実行することができ、処理時間が短縮される。
【0010】1ページ単位で画像データ展開することを
前提としたPDLは、第1の従来例のように1ページ分
の画像メモリから画像データの供給を受ける必要がある
タイプのプリンタエンジンに適している。
【0011】しかし、シリアルプリンタのプリンタエン
ジンのように1ページ分の画像データの連続供給を必要
としないもののための画像処理装置においては、1ペー
ジ分の画像メモリを備えていない場合が多い。また、そ
のようなプリンタのために1ページ分の画像メモリを備
えることはコストアップにつながる。そのため、1ペー
ジ単位で画像データ展開することを前提としたPDLを
サポートするには、PDLコマンドデータをそのまま画
像展開することができず、何らかの処理が必要となる。
【0012】また、1ページ分の画像メモリを有する画
像処理装置においても、画像処理過程において、第2,
第3の従来例の小領域バッファ24等のように、1ペー
ジの画像データ分の容量を持たない画像メモリにPDL
コマンドデータを画像展開する必要がある場合には、何
らかの処理が必要となる。
【0013】第2,第3の従来例においては、画像デー
タの1ページ分に満たない容量の画像メモリである小領
域バッファ24等にPDLコマンドデータを画像展開す
るに際し、PDLインタプリタ22は、領域0から順に
各小領域ごとに、1ページ分のPDLコマンドデータに
基づいて、当該小領域内の画像データのみを小領域バッ
ファ24上に展開し、その後、次の小領域内の画像デー
タに対し、再び同様の画像処理をしていた。したがっ
て、ある1つの小領域の画像データを小領域バッファ2
4等の上に画像展開する際には、他の小領域にのみ画像
データ展開されるようなコマンドデータも含めて、1ペ
ージ分全体のPDLコマンドデータを読み出して、この
1つの小領域に画像データ展開されるコマンドデータか
否かを判定しなければならないから、その分、画像展開
時間が長くなり、画像の送出速度を大きくすることがで
きない。さらに、1ページ分全てのPDLコマンドデー
タの処理を小領域の数だけ繰り返し行なうものであるか
ら、小領域の数が多くなるほど、1ページ全体を処理す
る時間が長くなるという問題もあった。
【0014】
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、PDLコマンドデータに応
じて、分割された画像領域である小領域ごとに画像展開
する際の画像展開時間を短縮することができ、画像の送
出速度を大きくすることができる画像処理装置を提供す
ることを目的とするものである。
【0015】
【課題を解決するための手段】本願の発明は、請求項1
に記載の発明においては、ページ記述言語で記載された
コマンドデータに応じて画像データを出力する画像処理
装置において、前記コマンドデータを入力し該コマンド
データを分割された画像領域である小領域に割り当てる
分割手段と、該分割手段のコマンドデータ出力を記憶す
る記憶手段と、該記憶手段から読み出されたコマンドデ
ータに応じて前記小領域ごとに当該小領域の範囲を画像
データに展開し画像データを出力するインタプリタを有
し、前記分割手段は、入力されたコマンドデータに応じ
た画像データがどの小領域に展開されるものであるかを
検出し、各小領域に少なくとも一部の画像データが展開
されるコマンドデータを該コマンドデータが展開される
各小領域に割り当てるものであることを特徴とするもの
である。
【0016】請求項2に記載された発明においては、ペ
ージ記述言語で記載されたコマンドデータに応じて画像
データを出力する画像処理装置において、前記コマンド
データを入力し該コマンドデータについて分割された画
像領域である小領域ごとのコマンドデータに分割する分
割手段と、該分割手段から出力されるコマンドデータを
各小領域毎に割り当てられた領域に追加して記憶する記
憶手段と、該記憶手段から読み出された各小領域毎のコ
マンドデータを画像データに展開するインタプリタを有
し、前記分割手段は、入力されたコマンドデータに応じ
た画像データがどの小領域に展開されるものであるかを
検出し、各小領域に少なくとも一部の画像データが展開
されるコマンドデータから各小領域の範囲内で画像展開
されるコマンドデータを作成し、作成されたコマンドデ
ータを各小領域に割り当てることを特徴とするものであ
る。
【0017】
【0018】
【作用】請求項1に記載の発明によれば、コマンドデー
タを入力し、そのコマンドデータを分割された画像領域
である小領域に割り当てる分割手段と、この分割手段の
コマンドデータ出力を記憶する記憶手段と、この記憶手
段から読み出されたコマンドデータに応じて小領域ごと
に当該小領域の範囲を画像データに展開し、画像データ
を出力するインタプリタを有し、分割手段は、入力され
たコマンドデータに応じた画像データがどの小領域に展
開されるものであるかを検出し、各小領域に少なくとも
一部の画像データが展開されるコマンドデータを、その
コマンドデータが展開される各小領域に割り当てるもの
であるから、インタプリタが1つの小領域の画像データ
を展開する際に、他の小領域にのみ画像データ展開され
るようなコマンドデータを読み出しこの1つの小領域に
画像データ展開されるコマンドデータか否かを判定する
必要がないので、1つの小領域の画像展開時間を短くす
ることができ、画像の送出速度を大きくすることができ
る。また、例えば、展開された画像を保持するためのバ
ッファが小さいプリンタ等にも適用することができる。
さらに、小領域ごとのコマンドデータを得るための処理
が簡単になる。
【0019】請求項2に記載の発明によれば、コマンド
データを入力し、そのコマンドデータについて分割され
た画像領域である小領域ごとのコマンドデータに分割す
る分割手段と、この分割手段から出力されるコマンドデ
ータを各小領域毎に割り当てられた領域に追加して記憶
する記憶手段と、この記憶手段から読み出された各小領
域毎のコマンドデータを画像データに展開するインタプ
リタを有し、分割手段は、入力されたコマンドデータに
応じた画像データがどの小領域に展開されるものである
かを検出し、各小領域に少なくとも一部の画像データが
展開されるコマンドデータから各小領域の範囲内でのみ
画像展開されるコマンドデータを作成し、作成されたコ
マンドデータを各小領域ごとのコマンドデータとするも
のであるから、インタプリタが1つの小領域の画像デー
タを展開する際に、他の小領域にのみ画像データ展開さ
れるようなコマンドデータを読み出しこの1つの小領域
に画像データ展開されるコマンドデータか否かを判定す
る必要がないので、1つの小領域の画像展開時間を短く
することができ、画像の送出速度を大きくすることがで
きる。また、例えば、展開された画像を保持するための
バッファが小さいプリンタ等にも適用することができ
る。さらに、小領域ごとのコマンドデータを画像データ
に展開する際の処理が簡単になる。
【0020】
【0021】
【実施例】図1は、本発明の一実施例のブロック図であ
る。1はホストコンピュータ、2はPDL分割部、3は
コマンドバッファ、4はPDLメモリ、5はPDLイン
タプリタ、6a,6bは小領域バッファ、7はセレク
タ、8はプリンタエンジンである。
【0022】PDLコマンドデータは、ホストコンピュ
ータ1からPDL分割部2に転送される。PDL分割部
2は、PDLコマンドデータをコマンドバッファ3に一
時記憶させる。1ページ分の画像領域は複数の小領域に
分割されている。PDL分割部2は、コマンドバッファ
3に一時記憶されたPDLコマンドデータを入力し一部
のコマンドデータについては、小領域ごとのPDLコマ
ンドデータに分割し、PDLメモリ4に記憶させる。こ
の作業をPDLコマンドデータ中に印刷開始コマンドが
送られてくるまで繰り返す。
【0023】小領域ごとのPDLコマンドデータとして
は、図7,8等を用いて後述する本発明の一実施例の第
1の具体例においては、入力されたPDLコマンドデー
タに応じた画像データがどの小領域に展開されるもので
あるかを検出し、各小領域に少なくとも一部の画像デー
タが展開されるPDLコマンドデータをそのままの形で
各小領域ごとのPDLコマンドデータとする。その際、
あるPDLコマンドが複数の小領域上に画像展開される
場合には、この複数の小領域に同じPDLコマンドデー
タがそのままの形で割り当てられることになる。
【0024】また、図13,14等を用いて後述する本
発明の一実施例の第2の具体例においては、入力された
PDLコマンドデータに応じた画像データがどの小領域
に展開されるものであるかを検出し、各小領域に少なく
とも一部の画像データが展開されるPDLコマンドデー
タから各小領域の範囲内でのみ画像展開されるPDLコ
マンドデータを作成し、作成されたPDLコマンドデー
タを各小領域ごとのPDLコマンドデータとする。その
際、もとのPDLコマンドデータが複数の小領域上に画
像展開されるものである場合には、この複数の小領域の
それぞれに対し、各小領域の範囲内でのみ画像展開され
るPDLコマンドデータが作成される。
【0025】PDL分割部2においては、全てのPDL
コマンドを小領域ごとのPDLコマンドデータに分割す
るのではなく、PDLコマンドの内容によっては、入力
したPDLコマンドデータをそのまま出力する。複数の
小領域にまたがって画像展開されるようなPDLコマン
ドデータについては、小領域ごとのPDLコマンドデー
タに分割する。しかし、一つの小領域にしか画像展開さ
れないPDLコマンドデータや、各小領域に共通のPD
Lコマンドデータなど、その他のPDLコマンドデータ
については、そのまま出力する。このような機能を、P
DL分割部2の機能に含めたが、実際に装置を構成する
際には、必ずしもPDL分割部2のブロック部に含める
必要はなく、他のブロックを経由して、PDLメモリ4
に書き込んでもよい。なお、複数の小領域にまたがって
画像展開されるようなPDLコマンドデータ全てを、必
ずしも小領域ごとのPDLコマンドデータに分割する必
要はない。
【0026】上述したいずれの具体例においても、入力
されたPDLコマンドデータに応じた画像データがどの
小領域に展開されるものであるかを検出する際、2つの
手法をとることができる。第1の手法は、1ページ分の
最初のPDLコマンドデータから順に、PDLコマンド
データの一つを先に特定し、この特定されたPDLコマ
ンドデータに応じた画像データの少なくとも一部が各小
領域上に展開されるか否かを判定し、以後、次のPDL
コマンドデータについて同様の判定をするというもので
ある。第2の手法は、最初の領域から順に、小領域の一
つを先に特定し、この特定された小領域上に1ページ分
のPDLコマンドデータに応じた画像データの少なくと
も一部が展開されるか否かを判定し、以後、次の小領域
について同様の判定をするというものである。
【0027】第1の手法によれば、同じ1ページ分のP
DLコマンドデータの処理を小領域の数だけ繰り返し行
なうものではないから、小領域の数が多くなっても、1
ページ全体の処理時間がさほど長くならない。後述する
第1,第2の具体例においては、第1の手法を用いてい
る。
【0028】PDLメモリ4における記憶形態は任意で
あるが、例えば、画像展開される小領域ごとに区分して
PDLコマンドデータを記憶させる。
【0029】PDLコマンドデータの中に印刷開始命令
があると、PDLインタプリタ5が起動し、PDLメモ
リ4に記憶されたPDLコマンドデータがPDLインタ
プリタ5に渡される。
【0030】PDLインタプリタ5は、PDLコマンド
データを小領域バッファ6aまたは6bのいずれかに交
互に展開して小領域ごとの画像データに展開する。
【0031】各小領域ごとのPDLコマンドデータが、
各小領域に少なくとも一部の画像データが展開されるP
DLコマンドデータのそのままの形である場合、PDL
インタプリタ5は、画像データを展開しようとしている
当該小領域の範囲のみを小領域バッファ6a,6bに展
開する。しかし、当該小領域の範囲外の部分の画像デー
タの作成は、これを行なわないか、行なったとしても小
領域バッファ6a,6bへの書き込みを行なわない。
【0032】また、各小領域ごとのPDLコマンドデー
タが、各小領域に少なくとも一部の画像データが展開さ
れるPDLコマンドデータを各小領域の範囲内でのみ画
像展開されるPDLコマンドデータを作成したものであ
る場合、小領域ごとのPDLコマンドデータは、あらか
じめ小領域の範囲内でのみ画像展開されるようになって
いるから、PDLインタプリタ5は、各小領域ごとのP
DLコマンドデータをそのまま画像データに展開すれば
よい。
【0033】小領域バッファ6aまたは6bのいずれか
への画像データの書き込みが終了する度に、PDLイン
タプリタ5は、プリンタエンジン8に対しプリント要求
を行なう。セレクタ7は、第1の小領域バッファ6aが
書き込み期間中のときは、第2の小領域バッファ6bを
読み出し、第2の小領域バッファ6bが書き込み期間中
のときは、第1の小領域バッファ6aを読み出してプリ
ンタエンジン8に出力する。
【0034】すなわち、画像データの新たな書き込みが
終了した方の小領域バッファは、セレクタ7により選択
され読み出され、読み出された1小領域分の画像データ
は、プリンタエンジン8に転送される。PDLインタプ
リタ5は、プリント実行中も読み出されていない方の小
領域バッファに対し、画像データを書き込むことがき
る。PDLインタプリタ5は、全小領域のプリントが終
了するまでこのような動作を繰り返す。
【0035】なお、図34に示される第2の従来例のブ
ロック図においては、小領域バッファ27a,27bが
マルチプレクサ33により切り換えられていた。しか
し、上述した実施例では、PDLインタプリタ5がマル
チプレクサの機能も含むように構成しているので、マル
チプレクサ33に相当するブロックを明示していない。
また、ブロック間で制御信号をやりとりするための信号
線の図示は省略されている。
【0036】小領域バッファは、6a,6bの2つとし
たが、個数は任意である。小領域バッファの個数を3以
上とし、書き込みを行なう小領域バッファを順次切り換
え、書き込みの終了した小領域バッファを順次選択して
読み出すようにしてもよい。逆に、プリンタエンジン8
が、小領域バッファの書き込み中に小領域バッファを読
み出せなくてもよいタイプのもの、例えば、シリアルプ
リンタ用のものであれば、小領域バッファを1つにし、
マルチプレクサの機能およびセレクタ7を除いてもよ
い。
【0037】なお、1つの小領域の画像データが必要と
するメモリ容量と、1つの小領域バッファのメモリ容量
とは、必ずしも一致させる必要はない。例えば、小領域
バッファのメモリ容量を2倍にし、2つの小領域分の画
像データをまとめて1つの小領域バッファに書き込むよ
うにしてもよい。また、採用するプリンタエンジン8が
1ページ分の画像メモリから画像データの供給を受ける
必要のあるタイプの場合には、セレクタの後段にこの1
ページ分の画像メモリを設ける代わりに、PDLインタ
プリタ5の出力に直接1ページ分の画像メモリを設け、
マルチプレクサの機能、および、小領域バッファ6a,
6b,セレクタ7をなくしてもよい。
【0038】図2は、本発明の一実施例におけるハード
ウエア構成を説明する説明図である。図1に示した各ブ
ロックは、このハードウエア構成により実現される。図
1の機能的ブロックと直接的に対応する部分には同じ符
号を用い説明を省略する。10は内部バス、11はCP
U、12はROM、13はRAM、14はディスクコン
トローラ、15はディスク装置、16はホストインタフ
ェース、17はバッファである。図中、破線で囲む部分
は、図1におけるPDL分割部2からセレクタ7までの
ブロックに対応する。内部バス10上には、CPU1
1、ROM12、RAM13、ディスクコントローラ1
4、バッファ17、小領域バッファ6a,6bが接続さ
れる。そして、ディスクコントローラ14にはハードデ
ィスク15が接続され、バッファ17にはホストインタ
フェース16が接続され、小領域バッファ6a,6bに
はセレクタ7が接続される。
【0039】ホストインタフェース16は、ホストコン
ピュータ1との間でデータを通信するための装置で、一
般的には、例えば、イーサネットコントローラなどのネ
ットワークインタフェースや、RS232Cコントロー
ラ等のシリアルインタフェースやGPIB等のパラレル
インタフェースが用いられる。バッファ17は、ホスト
コンピュータ1からホストインタフェース16を介して
送られるPDLコマンドデータを一時記憶するものであ
る。ホストインタフェース16は、このバッファ17が
一杯になると、ホストコンピュータ1に対しPDLコマ
ンドデータの伝送を一時停止するように要求する。
【0040】なお、このバッファ17の代わりにディス
ク装置15を用い、ホストコンピュータから伝送されて
くるPDLコマンドデータが、全てディスク装置15に
一時記憶されるようにしてもよい。その際、ホストイン
タフェース16から、直接に内部バス10、ディスクコ
ントローラ14を経由して一時記憶されてもよいし、バ
ッファ17を介してもよい。図1に示されるコマンドバ
ッファ3は、バッファ17およびまたはディスク装置1
5により実現される。
【0041】CPU11は、ROM12に記憶されたプ
ログラムにより、図1に示されるPDL分割部2の処理
を実行する。図1に示されるPDLメモリ3の機能はR
AM13により実現されるが、ディスク装置15により
実現されてもよいし、両者により実現されてもよい。C
PU11は、また、ROM12に記憶されたプログラム
により、図1に示されるPDLインタプリタ5の処理も
実行する。
【0042】図3から図6までを用いてホストコンピュ
ータ1から送られるPDLコマンドデータの一例を説明
する。図3は、画像領域の座標系の一例の説明図であ
る。この一例において、画像領域は、左上の角を座標の
原点とする。以後の記載では、位置の上下関係を説明す
るとき、この画像領域上でみた上下位置に基づいて説明
する。したがって、副走査方向のY座標値が大きくなる
方を下位置としている。小領域の境界線の左横に示した
数字は、各境界の上と下に位置する画素のY座標値であ
る。主走査方向にも複数の縦線を記載しているが、これ
は、単に座標位置を分かりやすくするための線である。
この縦線の上に示した数字は、縦線の右に位置する最初
の画素のX座標値である。
【0043】この例では、1ページの画像領域は、主走
査方向であるX軸方向に6145画素、副走査方向であ
るY軸方向に8192画素からなる。いわゆる400d
piの画素密度においては、A3サイズは、X軸方向に
4752画素、Y軸方向に6720画素の画像サイズと
なり、A4サイズは、X軸方向に3360画素、Y軸方
向に4752画素の画像サイズとなる。Y軸方向を10
24画素ごとの8つの小領域に分割すると、1つの小領
域は、6144×1024画素からなる。したがって、
A3サイズは、領域0から領域6までの小領域からな
り、A4サイズは、領域0から領域4までの小領域から
なる。領域を特定する番号を、以後、小領域ポインタと
いう。
【0044】なお、一例として、小領域バッファ6a,
6bは、それぞれ、この6144×1024画素からな
る小領域の各画素のデータを記憶し、1画素は、例え
ば、カラー画像の場合、一例としてRGB各8ビットか
らなる。
【0045】図4,図5は、PDLコマンドデータの一
例を示す説明図である。この一例では、ページ記述言語
として、Post Script(登録商標)を採用し
ている。図4,図5における一連のPDLコマンドデー
タは、1ページ分の画像を出力するコマンドデータであ
り、ホストコンピュータ1から伝送され、コマンドバッ
ファ3に書き込まれるものである。
【0046】図6は、図4,図5のPDLコマンドデー
タの実行結果を説明する説明図である。図中、Aは赤の
第1の矩形、Bは緑の第2の矩形、Cは青の菱形、Dは
黄の三角形であり、赤の第1の矩形Aは、一部を青の菱
形Cにより上書きされ、緑の第2の矩形Bは、一部を黄
の三角形Dで上書きされている。括弧で囲まれた2つの
数字は、(0,0)がA3サイズの用紙の原点のXY座
標値を、その他が各図形A〜Dの頂点の一部のXY座標
値をPDLコマンドが使用する座標系で表わす。
【0047】図6も適宜参照しながら、図4,図5に示
されるPDLコマンドデータの一例を説明する。図4の
211〜234は、定義に関するPDLコマンドが記載
されている。211において、「pel」を400÷7
2と定義する。212〜219において、矩形のパスを
定義する。213における「newpath」コマンド
によりパスがクリアされる。214において、「mov
eto」コマンドにより初期位置(0,0)が設定され
る。なお、(0,0)の最初の0はX座標が0であるこ
と、次の0はY座標が0であることを示す。以下、位置
のX座標,Y座標を同様に表記する。215において、
初期位置(0,0)から「lineto」コマンドによ
り位置(0,1)への第1番目のパスが設定される。2
16において、位置(0,1)から「lineto」コ
マンドにより位置(1,1)への第2番目のパスが設定
される。217において、位置(1,1)から「lin
eto」コマンドにより位置(1,0)への第3番目の
パスが設定される。218において、位置(1,0)か
ら「closepath」コマンドにより初期位置
(0,0)への第4番目のパスが設定される。
【0048】220〜226において、三角形のパスを
定義する。221における「newpath」コマンド
によりパスがクリアされる。222において、「mov
eto」コマンドにより初期位置(0,0)が設定され
る。223において、初期位置(0,0)から「lin
eto」コマンドにより位置(2,0)への第1番目の
パスが設定される。224において、位置(2,0)か
ら「lineto」コマンドにより位置(1,2)への
第2番目のパスが設定される。224において、位置
(1,2)から「closepath」コマンドにより
初期位置(0,0)への第3番目のパスが設定される。
【0049】227〜234において、菱形のパスを定
義する。228における「newpath」コマンドに
よりパスがクリアされる。229において、「move
to」コマンドにより初期位置(0,0)が設定され
る。230において、初期位置(0,0)から「lin
eto」コマンドにより位置(3,−2)への第1番目
のパスが設定される。231において、位置(3,−
2)から「lineto」コマンドにより位置(6,
0)への第2番目のパスが設定される。232におい
て、位置(6,0)から「lineto」コマンドによ
り位置(3,2)への第3番目のパスが設定される。2
33において、位置(3,2)から「closepat
h」コマンドにより初期位置(0,0)への第4番目の
パスが設定される。
【0050】図5の235において、「scale」コ
マンドにより、先に図4の211で定義された「pe
l」を用いて、スケーリングを行なう。X座標の1単位
をpelの値に、Y座標の1単位をpelの値にスケー
リングする。このスケーリングにより、CRT画面上の
解像度75dpiの座標系をプリンタエンジン用の40
0dpiの座標系に変換する。236において、「gs
ave」コマンドにより現在の内部状態をセーブする。
【0051】237において、「translate」
コマンドにより、初期位置を(512,832)に設定
し、238において、「scale」コマンドにより、
X座標の1単位を768に、Y座標の1単位を2048
にスケーリングする。239において、「squar
e」により、描画図形として矩形が設定される。これ
は、先に定義されているから、図4の212〜219に
おいてなされた矩形の定義におけるパスを237におけ
る初期位置と、238におけるスケーリングにしたがっ
て変換すると、実際に描画されるべき矩形のパスが設定
される。
【0052】すなわち、図6における第1の矩形Aに示
されるように、初期位置(512,832)から位置
(512,1600)まで第1のパスが設定され、位置
(512,1600)から位置(2560,1600)
まで第2のパスが設定され、位置(2560,160
0)から位置(2560,832)まで第3のパスが設
定され、位置(2560,832)から初期位置(51
2,832)まで第4のパスが設定される。
【0053】240において、「setrgbcolo
r」コマンドにより、描画図形をペイントする色を赤に
設定する。このコマンドの「100」の各数字は、それ
ぞれ赤の成分,緑の成分,青の成分を指示し、240に
おいては、赤を指示している。241において、「fi
ll」コマンドにより、240において設定された色
「赤」で図6における第1の矩形Aの内部が塗りつぶさ
れる。
【0054】242において、「grestore」コ
マンドにより、236においてセーブされた内部状態が
復元される。243において、「translate」
コマンドにより、初期位置を(1024,3136)に
設定し、244において、「scale」コマンドによ
り、X座標の1単位を2048に、Y座標の1単位を2
048にスケーリングする。245において、「squ
are」により、描画図形として矩形が設定される。こ
れは、先に定義してあるから、図4の212〜219に
おいてなされた矩形の定義におけるパスを243におけ
る初期位置と、244におけるスケーリングにしたがっ
て変換すると、実際に描画されるべき矩形のパスが設定
される。
【0055】すなわち、図6における第2の矩形Bに示
されるように、初期位置(1024,3136)から位
置(1024,5184)まで第1のパスが設定され、
位置(1024,5184)から位置(3072,51
84)まで第2のパスが設定され、位置(3072,5
184)から位置(3072,3136)まで第3のパ
スが設定され、位置(3072,3136)から初期位
置(1024,3136)まで第4のパスが設定され
る。246において、「setrgbcolor」コマ
ンドにより、描画図形をペイントする色を緑に設定す
る。247において、「fill」コマンドにより、2
46において設定された色「緑」で図6における第2の
矩形B内が塗りつぶされる。
【0056】248において、「initgraphi
cs」コマンドにより、内部状態を初期化する。249
において、「scale」コマンドにより、図4の21
1で定義された「pel」を用いて、再度スケーリング
を行なう。250において、「gsave」コマンドに
よりPDL分割部2の現在の内部状態をセーブする。
【0057】251において、「translate」
コマンドにより、初期位置を(1024,1088)に
設定し、252において、「scale」コマンドによ
り、X座標の単位1を512に、Y座標の単位1を51
2にスケーリングする。253において、「diamo
nd」により、描画図形として菱形が設定される。これ
は、先に定義してあるから、図4の227〜234にお
いてなされた菱形の定義におけるパスを251における
初期位置と、252におけるスケーリングにしたがって
変換すると、実際に描画されるべき菱形のパスが設定さ
れる。
【0058】すなわち、図6における菱形Cに示される
ように、初期位置(1024,1088)から位置(2
560,64)まで第1のパスが設定され、位置(25
60,64)から位置(4096,1088)まで第2
のパスが設定され、位置(4096,1088)から位
置(2560,2122)まで第3のパスが設定され、
位置(2560,2112)から初期位置(1024,
1088)まで第4のパスが設定される。
【0059】254において、「setrgbcolo
r」コマンドにより、描画図形をペイントする色を青に
設定する。255において、「fill」コマンドによ
り、254において設定された色「青」で図6における
菱形Cの内部が塗りつぶされる。青の菱形Cは、赤の第
1の矩形Aに上書きされる。
【0060】256において、「grestore」コ
マンドにより、250においてセーブされた内部状態が
復元される。257において、「translate」
コマンドにより、初期位置を(2048,4160)に
設定し、258において、「scale」コマンドによ
り、X座標の単位1を1024に、Y座標の単位1を1
024にスケーリングする。259において、「tri
angle」により、描画図形として三角形が設定され
る。これは、先に定義してあるから、図4の220〜2
26においてなされた三角形の定義におけるパスを25
7における初期位置と、258におけるスケーリングに
したがって変換すると、実際に描画されるべき三角形の
パスが設定される。
【0061】すなわち、図6における三角形Dに示され
るように、初期位置(2048,4160)から位置
(4096,4160)まで第1のパスが設定され、位
置(4096,4160)から位置(3072,620
8)まで第2のパスが設定され、位置(3072,62
08)から初期位置(2048,4160)までクロー
ズパスが設定される。
【0062】260において、「setrgbcolo
r」コマンドにより、描画図形をペイントする色を黄に
設定する。261において、「fill」コマンドによ
り、260において設定された色「黄」で図6における
三角形Dの内部を塗りつぶす。黄の三角形Dは、緑の第
2の矩形Bに上書きされる。
【0063】本発明の第1の具体例を説明する。この具
体例は、入力されたコマンドデータに応じた画像データ
がどの小領域に展開されるものであるかを検出し、各小
領域に少なくとも一部の画像データが展開されるPDL
コマンドデータをそのままの形で各小領域ごとのPDL
コマンドデータとするものである。
【0064】図7,図8は、本発明の第1の具体例の動
作の一例の概要を示すフローチャートである。図7,図
8に示されるフローに沿って、本発明の第1の具体例の
動作の概要を説明する。S41〜S50の処理は、PD
L分割部2により実行される。S41において、内部状
態がリセットされる。S42において、PDLメモリ4
がリセットされる。S43において、コマンドバッファ
3からPDLコマンドデータが1つずつ読み出される。
【0065】S44において、PDLコマンドデータの
内容が印字であればS45に処理が進み、プリント実行
であれば図8のS51に処理が進み、コマンドがなけれ
ば処理を終了する。なお、S44においては、分岐先と
して、印字の場合とプリント実行の場合、および終了の
場合しか図示していない。しかし、PDLコマンドデー
タには他に種々のものがあり、これらは、例えばPDL
コマンドデータをPDL分割部2のスタックメモリに記
憶させておいたり、PDL分割部2の内部状態を変化さ
せたりして、S43に処理が戻る。
【0066】S45において、PDL分割部2の内部状
態や、スタックメモリに記憶されたPDLコマンドデー
タなどに基づいて、描画すべき画像のパスの上位置,下
位置のY座標値がそれぞれ上位置,下位置レジスタにセ
ットされる。例えば、「fill」コマンドの前にあっ
て、先にコマンドバッファ3から読み出されてPDL分
割部2のスタックメモリに記憶されたPDLコマンドデ
ータから描画すべき画像のパスの計算が行なわれ、図3
に示された画像領域上において、描画すべき画像のパス
の最上点である上位置のY座標値、最下点である下位置
のY座標値が計算されて、それぞれ上位置,下位置レジ
スタにセットされる。
【0067】S46において、初期値が設定される。小
領域を指し示す小領域ポインタiの初期値および、当該
小領域の上位置のY座標値jの初期値は0である。当該
小領域の下位置のY座標値kの初期値は、小領域の幅か
ら1を引いた値であり、図3に示された画像領域の例で
は、小領域の幅が1024であるから、下位置のY座標
値kの初期値は1023となる。
【0068】S47において、下位置のY座標値がj以
上でありかつ上位置のY座標値がk以下であるか否かが
判定され、下位置のY座標値がj以上でありかつ上位置
のY座標値がk以下であればS48に処理が進み、そう
でなければ、S49に処理が進む。描画すべき画像のパ
スの下位置が当該小領域の上位置jより上(Y座標値が
小さい)であるか、または、描画すべき画像のパスの上
位置が当該小領域の下位置kより下(Y座標値が大き
い)であれば、このような画像は当該領域に描画されな
いものであるから、S48をスキップさせる。
【0069】したがって、入力されたPDLコマンドデ
ータに応じた画像データが当該小領域に展開されるもの
であるかを検出し、当該小領域に少なくとも一部の画像
データが展開されるPDLコマンドデータである場合に
のみS48に処理が進む。
【0070】S48において、その内容が印字であるP
DLコマンドデータおよびこれに関連するPDLコマン
ドデータ、例えば、「fill」コマンドの前にあっ
て、先にコマンドバッファ3から読み出されPDL分割
部2のスタックメモリに記憶されたPDLコマンドデー
タが、PDLメモリ4上において小領域ポインタiに対
して割り当てられた領域に追加して書き込まれる。例え
ば、PDLメモリ4には、後述する図9,図10に示さ
れるように、小領域の区切りをコメント行の形で書き込
み、PDLコマンドデータは、小領域ポインタiに対応
するコメント行の後に割り当てられ、ここに順次追加し
て書き込まれるようにすることができる。この場合、後
述するPDLインタプリタ5は、このコメント行を判定
して小領域ごとのPDLコマンドデータを理解すること
もできる。
【0071】なお、PDLメモリ4には、小領域ごとの
PDLコマンドデータがそのまま書き込まれるようにし
たが、中間コードのような形に一旦変更して書き込むこ
とも可能である。本明細書では、中間コードのような形
式で書き込まれたものも、PDLコマンドという。
【0072】S49において、当該小領域の次の小領域
について同様の処理をするため、小領域ポインタiは1
を加えられて更新され、同時に、当該小領域の上位置の
Y座標値j,当該小領域の下位置のY座標値kも、それ
ぞれ小領域の幅を加えられて更新される。
【0073】S50において、更新された小領域ポイン
タiの値が、分割した小領域数より1つ小さい値を超え
たか否かが判定され、超えればS43に処理が戻り、超
えなければS47に処理が戻る。例えば用紙がA3サイ
ズの場合に、図3に示されるように分割した小領域数は
0から6までの7個であるから、更新されたiの値が6
以下のときは、S47に処理が戻り、次の小領域につい
て同様の処理が行なわれる。このようにして、同じ印字
コマンドに対し、全小領域について同様の処理が終了す
ると、更新されたiの値が7となり、S42に処理が戻
り次のPDLコマンドが読み出される。
【0074】図8のS51に処理が進むのは、S44に
おいて、PDLコマンドの内容が印刷実行の場合であっ
た。このとき、PDLメモリ4には、分割作業後のPD
Lコマンドデータが記憶されている。図8に示されるS
51〜S59の処理は、PDLインタプリタ5により実
行される。
【0075】S51において、初期値が設定される。上
述した図7のS46と同様に、小領域ポインタiの初期
値および、当該小領域の上位置のY座標値jの初期値は
0であり、当該小領域の下位置のY座標値kの初期値は
小領域の幅から1を引いた値である。mは、小領域バッ
ファ6a,6bの一方への書き込みまたは読み出しを指
示するフラグであり、例えば、m=0のとき小領域バッ
ファ6aを指示し、m=1のとき小領域バッファ6bを
指示する。mの初期値は0とする。
【0076】S52において、PDLメモリ4から小領
域ごとのPDLコマンドデータが一つずつ読み出され
る。この小領域ごとのPDLコマンドデータの内容が印
字である場合、S53に処理が進む。なお、S52にお
いては、小領域ごとのPDLコマンドデータの内容が印
字でない場合の処理は、図示していない。この場合は、
例えば、小領域ごとのPDLコマンドデータをPDLイ
ンタプリタ5のスタックメモリに記憶させるなどして、
PDLインタプリタ5の内部状態を変化させ、S52に
処理が戻る。
【0077】S53において、この時点のPDLインタ
プリタ5の内部状態、例えば、PDLインタプリタ5の
スタックメモリに記憶された小領域ごとのPDLコマン
ドデータに基づいて、当該小領域の画像データが小領域
バッファm上に展開される。PDLインタプリタ5のス
タックメモリには、例えば、「fill」コマンドの前
にあって、先にPDLメモリ4から読み出されて記憶さ
れたコマンドデータが記憶されている。
【0078】なお、小領域バッファmにおいては、あら
かじめ、以前書き込まれた画像データがクリアされてい
る。当該小領域は、小領域ポインタiで指示され、当該
小領域の上位置のY座標値はjであり、当該小領域の下
位置のY座標値はkである。すなわち、jからkの部分
を小領域バッファm上に画像データ展開する。
【0079】このPDLコマンドデータが画像展開され
るとき、描画すべき画像のパスが当該小領域の範囲を超
えることがあり得る。しかし、当該小領域の範囲内の画
像データのみが展開されるようにする。当該小領域の範
囲外の部分の画像データの作成は、これを行なわない
か、行なったとしても小領域バッファ6a,6bへの展
開を行なわない。また、当該小領域には、複数の印字コ
マンドが存在する場合もあるが、後に位置する印字コマ
ンドに基づく画像データが、先に展開された画像データ
の上に上書きされる。
【0080】S54において、当該小領域におけるPD
Lコマンドデータの展開が終了したか否かを判定し、終
了していない場合には、S52に処理を戻し、次のPD
Lコマンドデータを読み出し、同様の処理が行なわれ
る。終了した場合には、S55に処理が進む。展開が終
了したか否かは、例えば、小領域ごとのPDLコマンド
データが、後述する図9,図10に示されるような、小
領域ごとにコメント行が挿入されたものである場合に
は、次の小領域のコメント行および最後の印刷実行コマ
ンドの検出により知ることができる。
【0081】S55において、小領域バッファ6aまた
は6b中、mの値により指定されたものに書き込まれた
画像データをプリントする要求をプリンタエンジン8に
発行する。
【0082】S56において、当該小領域の次の小領域
について同様の処理を行なうため、小領域ポインタiは
1を加えられて更新され、同時に、当該小領域の上位置
のY座標値j,当該小領域の下位置のY座標値kも、そ
れぞれ小領域の幅を加えられて更新される。また、次に
書き込むべき小領域バッファ6a,6bを切り換えるた
め、mの値も更新される。mの値の更新方法としては、
例えば、「m XOR1」の演算を行ない、演算結果を
mに記憶させることによりmの値を0と1との間で交互
に切り換えることができる。
【0083】S57において、更新された小領域ポイン
タiの値が、分割した小領域数より1つ小さい値を超え
たか否かが判定され、超えればS43に処理が戻り、超
えなければS58に処理が進む。
【0084】S58において、小領域バッファ6aまた
は6b中、S55においてmの値により指定されたもの
のプリントが終了したか否かを判定し、終了した場合に
はS52に処理が戻り、終了しない場合にはS59に処
理が進む。S59において、プリント終了を待ち、終了
時にS52に処理が戻る。プリントの終了はプリンタエ
ンジン8から伝えられる。
【0085】図9,図10は、本発明の第1の具体例に
おける小領域ごとのPDLコマンドデータの一例を示す
説明図である。図11,図12は、本発明の第1の具体
例における画像データ展開を説明する説明図である。
【0086】まず、図7のS48において追加される小
領域ごとのPDLコマンドデータを図9,図10を用
い、図4,図5も適宜参照しながら説明する。この一例
では、小領域ごとのPDLコマンドデータは、図4,図
9,図10の3部分からなるが、図面の都合上分けたに
すぎず、一体としてPDLメモリ4に書き込まれるもの
である。なお、図4の211〜234の定義に関するP
DLコマンドデータはそのまま小領域ごとのPDLコマ
ンドデータとしているので、図4のPDLコマンドデー
タについては、改めて図示しなかった。
【0087】図4の211〜234に相当する定義に関
するPDLコマンドデータ、および、図9の271にお
ける「scale」コマンド、272における「gsa
ve」コマンド、図10の339における「showp
age」コマンドは、小領域ごとに区分して記載されて
いない。図5の248,249における「initgr
aphics」コマンド,「scale」コマンドは、
この具体例では不要であるので無視されている。その他
のPDLコマンドは、図9,図10に示される273等
のコメント行の後に小領域ごとに区分され、小領域ごと
のPDLコマンドデータとなる。なお、PDLコマンド
データは、必ずしもコメント行で区分される必要はな
い。座標はページ記述言語における座標系で記載されて
いる。
【0088】図4の211から図5までの236のコマ
ンドデータは、小領域ごとのPDLコマンドデータにお
いては、小領域ごとの区分の前である、図9の272ま
でに書き込まれる。
【0089】図5の237〜241の赤の第1の矩形A
に関するPDLコマンドデータは、領域5にのみ画像展
開されるものであることがPDL分割部2において検出
され、図5の237〜241のPDLコマンドデータ
は、図10の319における領域5のコメント行の後に
追加され321〜325となる。なお、図10の320
における「grestore」コマンドも書き込まれて
いる。
【0090】図5の242〜247の緑の第2の矩形B
に関するPDLコマンドデータは、領域1,2,3に少
なくとも一部の画像データが展開されるPDLコマンド
データであることがPDL分割部2において検出され
る。まず、図5の242〜247のPDLコマンドデー
タは、図9の279における領域1のコメント行の後に
追加され280〜285となる。次に、図9の292に
おける領域2のコメント行の後に追加され293〜29
8となる。そして、図10の305における領域3のコ
メント行の後に追加され306〜311となる。
【0091】図5の250〜255の青の菱形Cに関す
るPDLコマンドデータは、領域4,5,6に少なくと
も一部の画像データが展開されるPDLコマンドデータ
であることがPDL分割部2において検出される。ま
ず、図5の250〜255のPDLコマンドデータは、
図9の312における領域4のコメント行の後に追加さ
れ313〜318となる。次に、図10の319におけ
る領域5のコメント行の後に追加され326〜331と
なる。そして、図10の332における領域6のコメン
ト行の後に追加され333〜338となる。
【0092】図5の256〜261の黄の三角形Dに関
するPDLコマンドデータは、領域0,1,2に少なく
とも一部の画像データが展開されるPDLコマンドデー
タであることがPDL分割部2において検出される。ま
ず、図5の256〜261のPDLコマンドデータは、
図9の273における領域0のコメント行の後に追加さ
れ274〜278となる。なお、図5の256における
「grestore」コマンドは、最初の小領域である
領域0においては不要であるので除かれている。次に、
図9の279における領域1のコメント行の後に追加さ
れ286〜291となる。そして、図9の292におけ
る小領域2のコメント行の後に追加され299〜304
となる。
【0093】最後に、図5の262における「show
page」コマンドは、小領域ごとのPDLコマンドデ
ータにおいては、小領域ごとの区分の後の図10の33
9に書き込まれる。
【0094】図11,図12を用い、図9,図10も適
宜参照しながら、図8のS53において小領域ごとのP
DLコマンドデータが小領域ごとの画像データに展開さ
れる様子を説明する。
【0095】領域0においては、PDLインタプリタ5
により、図4の211,220〜226におけるPDL
コマンドデータおよび、図9の271,272,273
〜278におけるPDLコマンドデータ、図10の33
9におけるPDLコマンドデータに基づいて、画像デー
タが展開される。黄の三角形Dが領域0に展開される
が、この領域0の範囲内の画像データのみが小領域バッ
ファに書き込まれるようにする。
【0096】領域1においては、PDLインタプリタ5
により、図4の211,212〜219、220〜22
6におけるPDLコマンドデータおよび、図9の27
1,272,279〜291におけるPDLコマンドデ
ータ、図10の339におけるPDLコマンドデータに
基づいて、画像データが展開される。緑の第2の矩形B
が展開された後に黄の三角形Dが上書きされて展開され
るが、この領域1の範囲内の画像データのみが書き込ま
れるようにする。
【0097】領域2においては、PDLインタプリタ5
により、図4の211,212〜219,220〜22
6におけるPDLコマンドデータおよび、図9の27
1,272,292〜304におけるPDLコマンドデ
ータ、図10の339におけるPDLコマンドデータに
基づいて、画像データが展開される。緑の第2の矩形B
が展開された後に黄の三角形Dが上書きされて展開され
るが、この領域2の範囲内の画像データのみが書き込ま
れるようにする。
【0098】同様にして、領域3において緑の第2の矩
形Bが展開され、領域4において青の菱形Cが展開さ
れ、領域5において赤の第1の矩形Aの後に青の菱形C
が上書きされて展開され、領域6において青の菱形Cが
展開され、いずれの領域においても、領域の範囲内の画
像データのみが書き込まれるようにする。
【0099】以上のようにして、本発明の第1の具体例
においては、PDL分割部2が、入力されたPDLコマ
ンドデータに応じた画像データがどの小領域に展開され
るものであるかを検出し、各小領域に少なくとも一部の
画像データが展開されるPDLコマンドデータを各小領
域ごとのPDLコマンドデータとし、これをPDLメモ
リ4に記憶する。PDLインタプリタ5は、これを読み
出して前記小領域ごとの画像データに展開して出力す
る。
【0100】本発明の第2の具体例を説明する。この具
体例は、入力されたPDLコマンドデータに応じた画像
データがどの小領域に展開されるものであるかを検出
し、各小領域に少なくとも一部の画像データが展開され
るPDLコマンドデータから各小領域の範囲内でのみ画
像展開されるPDLコマンドデータを作成し、作成され
たPDLコマンドデータを各小領域ごとのPDLコマン
ドデータとするものである。
【0101】図13,図14は、本発明の第2の具体例
の動作の概要を示すフローチャートである。図13,図
14は、全体的には第1の具体例の動作を示す図7,図
8と同様である。したがって、図7、図8と同様なステ
ップについては、同じ符号を用い説明を省略する。相違
するステップは、S61〜S64である。S41からS
50までの処理は、PDL分割部2により実行され、図
14のS62からS59までの処理は、PDLインタプ
リタ5により実行される。
【0102】図13のS61においては、その内容が印
字であるPDLコマンドデータおよびこれに関連するP
DLコマンドデータ、例えば、印字コマンド「fil
l」の前にあって、先にコマンドバッファ3から読み出
されPDL分割部2のスタックメモリに記憶されたPD
Lコマンドデータから、当該小領域の範囲内でのみ画像
展開されるPDLコマンドデータが作成される。
【0103】そして、PDLメモリ4上において小領域
ポインタiに対して割り当てられた領域に追加して書き
込まれる。例えば、PDLメモリ4には、後述する図2
4から図26に示されるように、小領域の区切りをコメ
ント行の形で書き込み、PDLコマンドデータは、小領
域ポインタiに対応するコメント行の後ろの行に割り当
てられ、ここに順次追加して書き込まれるようにするこ
とができる。この場合、後述するPDLインタプリタ5
は、このコメント行を判定して小領域ごとのPDLコマ
ンドデータを理解することもできる。
【0104】なお、本発明の第2の具体例においても、
PDLメモリには、小領域ごとのPDLコマンドデータ
がそのまま書き込まれるようにしたが、中間コードのよ
うな形に一旦変更して書き込むことも可能である。本明
細書では、中間コードのような形式で書き込まれたもの
も、PDLコマンドという。S61における処理の詳細
は、図15〜図23を用いて後述する。
【0105】図13のS61において、既に小領域ごと
のPDLコマンドデータが、各小領域の範囲内でのみ画
像展開されるようになっている。したがって、図14の
S63において、PDLインタプリタ5がPDLコマン
ドデータを当該小領域ごとに画像データに展開する際、
展開された画像データがこの当該小領域の範囲内になる
ように処理する必要がないから、当該小領域の上位置の
Y座標値および当該小領域の下位置のY座標値kの値を
必要としない。その結果、S62においてこれらj,k
の初期値を設定する必要がなく、S64においてこれら
j,kの値を更新する必要がない。
【0106】しかし、S62,S63,S64を第1の
具体例と同じステップにしても動作する。このようにす
ることにより、PDL分割部2においては、例えば描画
図形ごとに、小領域ごとのPDLコマンドデータとし
て、第1の具体例のものまたは第2の具体例のもののい
ずれかを任意に採用することができる。すなわち、分割
作業後のPDLコマンドデータの形式を第1の具体例に
よるもの、第2の具体例によるもの、のいずれにするこ
ともできる。
【0107】図15は、図13のS61における処理の
詳細を示すフローチャートである。このフローチャート
は、j,kの範囲に入るPDLコマンドデータを作成す
る動作を説明するものである。S71において、PDL
コマンドデータの印字要求が文字印字か図形印字である
かを判定する。文字印字要求である場合にはS72に処
理が進み、図形印字である場合にはS73に処理が進
む。S72において、文字印字のための計算が行なわ
れ、PDLコマンドデータが作成されてこれがPDLメ
モリ4に書き込まれ、処理が終了する。S72における
処理の詳細は、図22,図23等を用いて後述する。
【0108】S73において、初期設定がされる。xU
は、x3 を退避させるための変数である。このx3
は、パスの設定処理を行なうS78において、展開され
る画像のパスが当該小領域の上位置(当該小領域内でY
座標値が最も小さい値jをとる位置)のラインを通過す
る地点のX座標値である。xL は、同じくx4 を退避さ
せるための変数である。このx4 は、展開される画像の
パスが当該小領域の下位置(当該小領域内でY座標値が
最も大きい値kをとる位置)のラインを通過する地点の
X座標値である。xU ,xL にはNullが入力され
る。また、(xi ,yi )には、展開される画像のパス
の始端を表わすが入力される。
【0109】S74において、yi がj以上k以下であ
るか否かが判定される。j以上k以下である場合にはS
75に処理が進み、j以上k以下でない場合にはS76
に処理が進む。図7のステップS46において説明した
ように、jは当該小領域の上位置のY座標値であり、k
は当該小領域の下位置のY座標値である。展開される画
像のパスの始端のY座標値yi がこの範囲内に入ってい
る場合は、この始端が当該小領域内に存在することを意
味する。したがって、S75に処理が進み、この始端の
XY座標値(xi ,yi )を当該小領域における画像の
パスの初期位置のXY座標値とする。なお、展開される
画像のパスの始端のY座標値yi がこの範囲内に入って
いない場合は、初期位置は未定義状態とし、後に行なわ
れるS78におけるパスの設定動作の中で初期位置が設
定されることとなる。
【0110】S76において、PDL分割部2の例えば
スタックメモリに書き込まれたPDLコマンドを1つず
つ読み出し、S77においてこのPDLコマンドの種類
を判定する。PDLコマンドが「lineto」等の印
字パスの設定コマンドである場合はS78に処理を進
め、「transfer」等の座標変換コマンドである
場合はS79に処理を進め、その他のPDLコマンド、
例えば、色設定コマンド「setcolor」等である
場合にはS80に処理を進める。また、「fill」等
の図形印字コマンドである場合はS81に処理を進め
る。
【0111】S78においては、印字パスの設定コマン
ドに基づいて印字パスの計算が行なわれる。S79にお
いては、座標変換コマンドに基づいて内部的な座標系の
変換が行なわれるが、この座標変換コマンドのPDLメ
モリ4への出力は行なわれない。S80においては、P
DLコマンドがそのまま実行されるようにこのPDLコ
マンドがPDLメモリ4に設定される。S78〜S80
では、処理がS79に戻り、次のPDLコマンドが読み
出されるようにされる。S81においては、図形印字コ
マンドが実行されるようにこのPDLコマンドがPDL
メモリ4に設定されて処理が終了する。
【0112】図16は、図15のS78における処理の
詳細を示すフローチャートである。S91においては、
印字パスの設定コマンドに基づいて印字パスの計算が行
なわれ、このパスの各部の位置が計算される。パスの上
位値の座標値は(x1 ,y1)に入力され、パスの下位
置は(x2 ,y2 )に入力される。パスの方向はdに入
力される。
【0113】ここで、パスの上位値とは、図3に示され
た画像領域上において、1本のパスの最上点が上位置で
あり、最下点が下位置である。また、パスの方向dと
は、1本のパスの始端が上位置でその終端が下位置であ
るか、逆に、1本のパスの始端が下位置でその終端が上
位置であるかを示すフラグである。すなわち、前者の場
合は、パスの方向が上から下であり、後者の場合は、パ
スの方向が下から上である。
【0114】なお、パスが、円弧、楕円弧等のように、
1本のパスの上位置,下位置と、1本のパスの始端、終
端とが必ずしも対応しない場合がある。すなわち、1本
のパスの始端と終端の中間に上位置および下位置の少な
くとも一方が存在する場合がある。このような場合に対
処するため、このようなパスは、あらかじめ、上位置ま
たは下位置においてパスを分解し、分解されたパスにつ
いてパスの設定処理を行なえばよい。
【0115】S92において、パスの上位値のY座標値
1 ,パスの下位値のY座標値y2,当該小領域の上位
置のY座標値j,当該小領域の下位置のY座標値kの相
互の上下関係を判定することにより、印字パスの設定コ
マンドに基づいて計算された描画すべき画像のパスの位
置と当該小領域の範囲との位置関係を判定する。そし
て、この位置関係に応じ、それぞれ異なるパスの計算処
理をさせることにより、コマンドバッファ3に書き込ま
れたPDLコマンドが各小領域の範囲内のみにおいて画
像データに展開されるようなPDLコマンドに変換され
て小領域ごとに分割されたPDLコマンドデータが作成
される。
【0116】(y1 <j)AND(y2 <j)か、また
は、(y1 >k)AND(y2 >k)であった場合、パ
スは、当該小領域の範囲外にある。したがって、このパ
スは当該小領域の範囲外においてパスの先端が移動する
だけで、当該小領域の範囲内への印字は全く行なわれ
ず、結局、このパスは無視され、処理が終了する。
【0117】なお、図13のS47において、このよう
なパスについては、S61すなわちこの図16の処理が
されないように分岐するから、このようなパスは検出さ
れない。したがって、図13のS45〜S47の処理
は、省略することも可能である。
【0118】(y1 <j)AND(y2 ≧j)AND
(y2 <k)であった場合、パスは、当該小領域の上位
置(Y座標値j)のラインのみをまたぐ。S93に処理
が進み、パスの計算1が行なわれて処理が終了する。
【0119】(y1 ≧j)AND(y2 ≦k)であった
場合、パスは、当該小領域の上位置(Y座標値j)のラ
イン、当該小領域の下位置(Y座標値k)のラインの両
方をまたがず、当該小領域の範囲内にある。この場合
は、S94に処理が進みパスの計算2が行なわれて処理
が終了する。
【0120】(y1 ≧j)AND(y1 ≦k)AND
(y2 >k)であった場合、パスは、当該小領域の下位
置(Y座標値k)のラインのみをまたぐ。この場合は、
S95に処理が進み、パスの計算3が行なわれて処理が
終了する。
【0121】(y1 <j)AND(y2 >k)であった
場合、パスは、当該小領域の上位置(Y座標値j)のラ
イン、当該小領域の下位置(Y座標値k)のラインの両
方をまたぐ。この場合は、S96に処理が進みパスの計
算4が行なわれて処理が終了する。
【0122】図17は、図16のS93における処理の
詳細を示すフローチャートである。パスは、当該小領域
の上位置(Y座標値j)のラインのみをまたぐが、この
場合、3つのケースがある。第1のケースは、初めて上
位置のラインをまたぐ場合、第2のケースは、上位置側
から入ってきたパスが、再び上位置側に戻る場合、第3
のケースは、逆に上位置側に出ていたパスが再び戻って
来る場合である。
【0123】第1のケースでは、パスが上位置(Y座標
値j)のラインをまたいだ地点を記憶しておき、小領域
の範囲内のパスを設定する。このとき、まだ初期位置が
設定されていないときには、パスが上位置(Y座標値
j)のラインをまたいだ地点を初期位置として設定す
る。第2のケースでは、小領域範囲内のパスを設定した
後、記憶しておいた、パスが以前に通過した地点までの
パスを作成し、設定を行なう。このとき、パスが以前に
通過した地点が初期位置であるなら「closepat
h」設定を行なう。第3のケースでは、パスが以前に通
過した地点から、今回のまたいだ地点までのパスを作成
し、そのパスの設定を行なった後に、小領域範囲内のパ
スの設定を行なう。
【0124】S101において、パスが当該小領域の上
位置(Y座標値j)のラインを通過する地点のX座標値
がx3 に入力され記憶される。S102において、当該
小領域において初期位置が設定済みか否かが判定され
る。設定済みであった場合には、S104に処理が進
み、設定済みでなかった場合には、S103において、
パスが当該小領域の上位置(Y座標値j)のラインを通
過する地点(x3 ,j)を初期位置として設定し、処理
がS104に進む。
【0125】S104において、xU がNullか否か
が判定される。Nullであった場合にはS105に処
理が進み、Nullでなかった場合にはS106に処理
が進む。xU は、パスが当該小領域の上位置(Y座標値
j)のラインを通過する地点のX座標値x3 を退避させ
るための変数でもある。最初は図15のS73において
Nullが入力され、S105に処理が進むが、後述す
るS109において、この時点のx3 を退避させ、第
2,第3のケースの場合に、再度パスが当該小領域の上
位置(Y座標値j)のラインを通過するときに備える。
そして、再度パスが通過するとき、S106に処理が進
む。なお、再度のパスが通過後、後述するS115にお
いて、xU にNullが入力されるから、3度目以降の
通過に対して、S104は、1回目,2回目の場合と同
様の判定をすることになる。
【0126】S105に処理が進むのは、パスが初めて
上位置のラインをまたぐ第1のケースである。S105
において、パスの方向dが上から下か否かが判定され
る。上から下であった場合にはS107に、下から上で
あった場合にはS108に処理が進む。S107におい
て、(x3 ,j)から(x2 ,y2 )へのパスの設定が
行なわれ、このパスに対応するPDLコマンドが作成さ
れる。S108においても同様に、(x2 ,y2 )から
(x3 ,j)へのパスの設定が行なわれ、このパスに対
応するPDLコマンドが作成される。S107,S10
8のいずれも処理を終了するとS109に処理が進み、
U にx3 が入力されx3 の値が退避され、処理が終了
する。
【0127】S106において、パスの方向dが上から
下か否かが判定される。上から下であった場合にはS1
10に、下から上であった場合にはS111に処理が進
む。
【0128】S111に処理が進むのは、上位置側から
入ってきたパスが再び上位置側に戻る第2のケースであ
る。S111において、(x2 ,y2 )から(x3 ,j
)へのパスの設定が行なわれる。このパスは、当該小
領域の範囲内のパスそのものである。次に、S112に
おいて、(xU ,j)が初期位置であるか否かが判定さ
れる。初期位置であった場合にはS113に処理が進
み、初期位置でなかった場合にはS114に処理が進
む。
【0129】S113においては、「closepat
h」の設定が行なわれ、このPDLコマンドが作成され
る。S114においては、(x3 ,j)から(xU
j)へのパスの設定が行なわれ、このパスに対応するP
DLコマンドが作成される。いずれのパスも、パスが上
位置側から入ったときのライン通過地点から今回ライン
をまたぐ地点までのものである。(xU ,j)が初期位
置であれば、この初期位置に向けて「closepat
h」コマンドでパスをつなぎ、(xU ,j)が初期位置
でなければ、このパスに対応するPDLコマンドでパス
をつなぐ。S113,S114のいずれもS115に処
理が進み、S115において、xU にNullが入力さ
れ、次回にパスが当該小領域の上位置(Y座標値j)の
ラインを通過する場合は、第1のケースとして扱われる
ようにして、処理が終了する。
【0130】S110に処理が進むのは、上位置側に出
ていたパスが再び戻って来る第3のケースである。S1
10において、(xU ,j)から(x3 ,j)へのパス
の設定が行なわれ、このパスに対応するPDLコマンド
が作成される。このパスは、パスが上位置側に出たとき
のライン通過地点から今回ラインをまたぐ地点までをつ
なぐパスである。次にS116において、(x3 ,j)
から(x2 ,y2 )へのパスの設定が行なわれ、このパ
スに対応するPDLコマンドが作成される。このパス
は、当該小領域の範囲内のパスそのものである。次に、
S115において、xU にNullが入力され処理が終
了する。
【0131】図18は、図16のS94における処理の
詳細を示すフローチャートである。パスは、当該小領域
の範囲内にあり、この範囲の中だけで閉じている。この
場合は単に元のPDLコマンドが作成される。S121
において、パスの方向dが上から下か否かが判定され
る。上から下であった場合にはS122に、下から上で
あった場合にはS123に処理が進む。S122におい
て、(x1 ,y1 )から(x2 ,y2 )へのパスの設定
が行なわれ、このパスに対応するPDLコマンドが作成
され処理が終了する。S123においても同様に、(x
2 ,y2 )から(x1 ,y1 )へのパスの設定が行なわ
れ、このパスに対応するPDLコマンドが作成され処理
が終了する。
【0132】図19は、図16のS95における処理の
詳細を示すフローチャートである。パスは、当該小領域
の下位置(Y座標値k)のラインのみをまたぐが、この
場合も、パスの計算1の場合と同様に、3つのケースが
ある。第1のケースは、初めて下位置のラインをまたぐ
場合、第2のケースは、下位置側から入ってきたパス
が、再び下位置側に戻る場合、第3のケースは、逆に下
位置側に出ていたパスが再び戻って来る場合である。
【0133】第1のケースでは、パスが下位置(Y座標
値k)のラインをまたいだ地点を記憶しておき、小領域
の範囲内のパスを設定する。このとき、まだ初期位置が
設定されていないときには、パスが下位置(Y座標値
k)のラインをまたいだ地点を初期位置として設定す
る。第2のケースでは、小領域範囲内のパスを設定した
後、記憶しておいた、パスが以前に通過した地点までの
パスを作成し、設定を行なう。このとき、パスが以前に
通過した地点が初期位置であるなら「closepat
h」設定を行なう。第3のケースでは、パスが以前に通
過した地点から、今回のまたいだ地点までのパスを作成
し、そのパスの設定を行なった後に、小領域範囲内のパ
スの設定を行なう。
【0134】S131において、パスが当該小領域の下
位置(Y座標値k)のラインを通過する地点のX座標値
がx4 に入力され記憶される。S132において、当該
小領域において初期位置が設定済みか否かが判定され
る。設定済みであった場合には、S134に処理が進
み、設定済みでなかった場合には、S133において、
パスが当該小領域の下位置(Y座標値k)のラインを通
過する地点(x4 ,k)を初期位置として設定し、処理
がS134に進む。
【0135】S134において、xL がNullか否か
が判定される。Nullであった場合にはS135に処
理が進み、Nullでなかった場合にはS136に処理
が進む。xL は、パスが当該小領域の下位置(Y座標値
k)のラインを通過する地点のX座標値x4 を退避させ
るための変数でもある。最初は図15のS73において
Nullが入力され、S135に処理が進むが、後述す
るS139において、この時点のx4 を退避させ、第
2,第3のケースの場合に、再度パスが当該小領域の下
位置(Y座標値k)のラインを通過するときに備える。
そして、再度パスが通過するとき、S136に処理が進
む。なお、再度のパスが通過後、後述するS143にお
いて、xL にNullが入力されるから、3度目以降の
通過に対しては、S134は、1回目,2回目の場合と
同様の判定をすることになる。
【0136】S135に処理が進むのは、パスが初めて
下位置のラインをまたぐ第1のケースである。S135
において、パスの方向dが上から下か否かが判定され
る。上から下であった場合にはS137に、下から上で
あった場合にはS138に処理が進む。S137におい
て、(x1 ,y1 )から(x4 ,k)へのパスの設定が
行なわれ、このパスに対応するPDLコマンドが作成さ
れる。S138においても同様に、(x4 ,k)から
(x1 ,y1 )へのパスの設定が行なわれ、このパスに
対応するPDLコマンドが作成される。S137,S1
38のいずれも処理を終了するとS139に処理が進
み、xL にx4 が入力されx4 の値が退避され、処理が
終了する。
【0137】S136において、パスの方向dが上から
下か否かが判定される。上から下であった場合にはS1
40に、下から上であった場合にはS141に処理が進
む。
【0138】S140に処理が進むのは、下位置側から
入ってきたパスが再び下位置側に戻る第2のケースであ
る。S140において、(x1 ,y1 )から(x4
k)へのパスの設定が行なわれる。このパスは、当該小
領域の範囲内のパスそのものである。次に、S144に
おいて、(xL ,k)が初期位置であるか否かが判定さ
れる。初期位置であった場合にはS145に処理が進
み、初期位置でなかった場合にはS146に処理が進
む。
【0139】S145においては、「closepat
h」の設定が行なわれ、このPDLコマンドが作成され
る。S146においては、(x4 ,k)から(xL
k)へのパスの設定が行なわれ、このパスに対応するP
DLコマンドが作成される。いずれのパスも、パスが下
位置側から入ったときのライン通過地点から今回ライン
をまたぐ地点までのものである。(xL ,k)が初期位
置であれば、この初期位置に向けて「closepat
h」コマンドでパスをつなぎ、(xL ,k)が初期位置
でなければ、このパスに対応するPDLコマンドでパス
をつなぐ。S145,S146のいずれもS143に処
理が進み、S143において、xL にNullが入力さ
れ、次回にパスが当該小領域の下位置(Y座標値k)の
ラインを通過する場合は、第1のケースとして扱われる
ようにして、処理が終了する。
【0140】S141に処理が進むのは、下位置側に出
ていたパスが再び戻って来る第3のケースである。S1
41において、(xL ,k)から(x4 ,k)へのパス
の設定が行なわれ、このパスに対応するPDLコマンド
が作成される。このパスは、パスが下位置側に出たとき
のライン通過地点から今回ラインをまたぐ地点までをつ
なぐパスである。次にS142において、(x4 ,k)
から(x1 ,y1 )へのパスの設定が行なわれ、このパ
スに対応するPDLコマンドが作成される。このパス
は、当該小領域の範囲内のパスそのものである。次に、
S143において、xL にNullが入力され、処理が
終了する。
【0141】図20,図21は、図16のS96におけ
る処理の詳細を示すフローチャートである。パスは、当
該小領域の上位置(Y座標値j)のライン、当該小領域
の下位置(Y座標値k)のラインの両方をまたぐ。この
場合は、パスが当該小領域の上位置(Y座標値j)のラ
インをまたぐパスの計算1の動作と、パスが当該小領域
の下位置(Y座標値k)のラインをまたぐパスの計算3
の動作とを組み合わせたものとなる。すなわち、それぞ
れのラインをまたぐ地点を計算して、それをパスとす
る。
【0142】パスが上から下であり、初期位置がまだ設
定されていなければ、パスが上位置(Y座標値j)のラ
インをまたいだ地点を初期位置とする。また、前にパス
が上位置(Y座標値j)のラインをまたいだのであれ
ば、その地点から本パスが上位置(Y座標値j)のライ
ンをまたぐ地点までのパスを本パスの前に加える。ま
た、前にパスが下位置(Y座標値k)のラインをまたい
だのであれば、本パスが下位置(Y座標値k)のライン
をまたぐ地点から前にパスが下位置(Y座標値k)のラ
インをまたいだ地点までのパスを本パスの後に加える。
パスが下から上にいく場合も同様に、パスの計算を行な
う。
【0143】この場合、6つのケースがある。第1のケ
ースは、パスが初めて上位置と下位置のラインをこの順
でまたぐ場合、第2のケースは、上位置側に出ていたパ
スが再び戻って来て上位置のラインと下位置のラインを
この順でまたぐ場合、第3のケースは、下位置から入っ
てきたパスが上位置側に出て行き、再び戻って来て上位
置のラインと下位置のラインとをこの順にまたぐ場合、
第4のケースは、パスが初めて下位置と上位置のライン
をこの順でまたぐ場合、第5のケースは、下位置側に出
ていたパスが再び戻って来て下位置のラインと上位置の
ラインをこの順でまたぐ場合、第6のケースは、上位置
から入ってきたパスが下位置側に出て行き、再び戻って
来て下位置のラインと上位置のラインとをこの順にまた
ぐ場合である。
【0144】S151において、パスが当該小領域の上
位置(Y座標値j)のラインを通過する地点のX座標値
がx3 に入力され、パスが当該小領域の下位置(Y座標
値k)のラインを通過する地点のX座標値がx4 に入力
され記憶される。S152において、パスの方向dが上
から下か否かが判定される。上から下であった場合には
S153に、下から上であった場合には図21のS17
3に処理が進む。
【0145】S153に処理が進むのは、第1〜第3の
ケースである。S153において、当該小領域において
初期位置が設定済みか否かが判定される。設定済みであ
った場合には、S155に処理が進み、設定済みでなか
った場合には、S154において、パスが当該小領域の
上位置(Y座標値j)のラインを通過する地点(x3
j)を初期位置として設定し、処理がS155に進む。
【0146】S155において、xU がNullか否か
が判定される。Nullであった場合にはS156に処
理が進み、Nullでなかった場合にはS157に処理
が進む。xU には、最初、図15のS73においてNu
llが入力され、S156に処理が進むが、後述するS
160において、この時点のx3 を退避させ、第2,第
3のケースの場合に、再度パスが当該小領域の上位置
(Y座標値j)のラインを通過するときに備えるもので
ある。そして、再度パスが通過するとき、S157に処
理が進む。なお、再度のパスが通過後、後述するS15
9において、xUにNullが入力されるから、3度目
以降の通過に対しては、S155は、1回目,2回目の
場合と同様の判定をすることになる。
【0147】S156に処理が進むのは、第1のケース
である。S156において、(x3,j)から(x4
k)へのパスの設定が行なわれ、このパスに対応するP
DLコマンドが作成され、S160において、xU にx
3 が入力されx3 の値が退避され、S161に処理が進
む。
【0148】S157に処理が進むのは、第2、第3の
ケースである。S157において、(xU ,j)から
(x3 ,j)へのパスの設定が行なわれ、このパスに対
応するPDLコマンドが作成される。このパスは、パス
が上位置側に出たときのライン通過地点から今回ライン
をまたぐ地点までをつなぐパスである。次にS158に
おいて、(x3 ,j)から(x4 ,k)へのパスの設定
が行なわれ、このパスに対応するPDLコマンドが作成
される。このパスは、当該小領域の範囲内のパスそのも
のである。以上の2つのパスの設定が行なわれる。次
に、S159において、xU にNullが入力され、次
回にパスが当該小領域の上位置(Y座標値j)のライン
を通過する場合は、第4のケースとして扱われるように
して、S161に処理が進む。
【0149】S161において、xL がNullか否か
が判定される。Nullであった場合にはS162に処
理が進み、Nullでなかった場合にはS163に処理
が進む。xL には、最初、図15のS73においてNu
llが入力され、S162に処理が進む。
【0150】S162に処理が進むのは、第1,第2の
ケースである。S162において、この時点のx4 を退
避させる。
【0151】S163に処理が進むのは、第3のケース
である。S163においては、(xL ,k)が初期位置
であるか否かが判定される。初期位置であった場合には
S164に処理が進み、初期位置でなかった場合にはS
166に処理が進む。S164においては、「clos
epath」の設定が行なわれ、このPDLコマンドが
作成される。S166においては、(x4 ,k)から
(xL ,k)へのパスの設定が行なわれ、このパスに対
応するPDLコマンドが作成される。いずれのパスも、
パスが下位置側から入ったときのライン通過地点から今
回ラインをまたぐ地点までのものである。(xL ,k)
が初期位置であれば、この初期位置に向けて「clos
epath」コマンドでパスをつなぎ、(xL ,j)が
初期位置でなければ、このパスに対応するPDLコマン
ドでパスをつなぐ。
【0152】S164,S166の終了後は、いずれも
S165に処理が進み、S165において、xL にNu
llが入力され、次回にパスが当該小領域の下位置(Y
座標値k)のラインをまたぐ場合は、第4のケースとし
て扱われるようにして、処理が終了する。
【0153】S173に処理が進むのは、第4〜第6の
ケースである。S173において、当該小領域において
初期位置が設定済みか否かが判定される。設定済みであ
った場合には、S175に処理が進み、設定済みでなか
った場合には、S174において、パスが当該小領域の
下位置(Y座標値k)のラインを通過する地点(x4
k)を初期位置として設定し、処理がS175に進む。
【0154】S175において、xL がNullか否か
が判定される。Nullであった場合にはS176に処
理が進み、Nullでなかった場合にはS177に処理
が進む。xL には、最初、図15のS73においてNu
llが入力され、S176に処理が進むが、後述するS
180において、この時点のx4 をxL に退避させ、第
5,第6のケースの場合に、再度パスが当該小領域の下
位置(Y座標値k)のラインを通過するときに備えるも
のである。そして、再度パスが通過するとき、S177
に処理が進む。なお、再度のパスが通過後、後述するS
179において、xL にNullが入力されるから、3
度目以降の通過に対しては、S175は、1回目,2回
目の場合と同様の判定をすることになる。
【0155】S176に処理が進むのは、第4のケース
である。S176において、(x4,k)から(x3
j)へのパスの設定が行なわれ、このパスに対応するP
DLコマンドが作成され、S180において、xL にx
4 が入力されx4 の値が退避され、S181に処理が進
む。
【0156】S177に処理が進むのは、第5,第6の
ケースである。S177において、(xL ,k)から
(x4 ,k)へのパスの設定が行なわれ、このパスに対
応するPDLコマンドが作成される。このパスは、パス
が下位置側に出たときのライン通過地点から今回ライン
をまたぐ地点までをつなぐパスである。次にS178に
おいて、(x4 ,k)から(x3 ,j)へのパスの設定
が行なわれ、このパスに対応するPDLコマンドが作成
される。このパスは、当該小領域の範囲内のパスそのも
のである。以上の2つのパスの設定が行なわれる。次
に、S179において、xL にNullが入力され、次
回にパスが当該小領域の下位置(Y座標値k)のライン
を通過する場合は、第4のケースとして扱われるように
して、S181に処理が進む。
【0157】S181において、xU がNullか否か
が判定される。Nullであった場合にはS182に処
理が進み、Nullでなかった場合にはS183に処理
が進む。xU には、最初、図15のS73においてNu
llが入力され、S182に処理が進む。
【0158】S182に処理が進むのは、第4,第5の
ケースである。S182において、この時点のx3 を退
避させる。
【0159】S183に処理が進むのは、第6のケース
である。S183においては、(xU ,j)が初期位置
であるか否かが判定される。初期位置であった場合には
S184に処理が進み、初期位置でなかった場合にはS
186に処理が進む。S184においては、「clos
epath」の設定が行なわれ、このPDLコマンドが
作成される。S186においては、(x3 ,j)から
(xU ,j)へのパスの設定が行なわれ、このパスに対
応するPDLコマンドが作成される。いずれのパスも、
パスが下位置側に出たときのライン通過地点から今回ラ
インをまたぐ地点までのものである。(xU ,j)が初
期位置であれば、この初期位置に向けて「closep
ath」コマンドでパスをつなぎ、(xU ,j)が初期
位置でなければ、このパスに対応するPDLコマンドで
パスをつなぐ。
【0160】S184,S186の終了後は、いずれも
S185に処理が進み、S185において、xU にNu
llが入力され、次回にパスが当該小領域の下位置(Y
座標値k)のラインをまたぐ場合は、第1のケースとし
て扱われるようにして、処理が終了する。
【0161】図22,図23は、図15のS72におけ
る処理の詳細を示すフローチャートである。このフロー
チャートは、印字要求が文字であった場合のPDLコマ
ンドデータの作成を行なうものである。
【0162】S190において、初期設定がされる。c
urrent行には1が入力され、第1行目から始めら
れる。PutStart,PutCompleteには
FALSEが入力される。また、当該小領域の範囲でク
リップするようにクリップパスの設定が行われる。S1
91において、PDL分割部2の例えばスタックメモリ
に書き込まれたPDLコマンドを1つずつ読み出し、S
192においてこのPDLコマンドの種類を判定する。
【0163】PDLコマンドが「moveto」など初
期位置の設定命令であった場合、このコマンドを無視
し、S191に処理が戻る。初期位置は、後で文字の印
字コマンド作成時に設定される。PDLコマンドが「s
how」など文字印字コマンドであった場合、S193
に処理が進み、印字する文字の設定を行ない、設定終了
時点で終了する。PDLコマンドがその他のコマンド、
例えば、色設定命令「setcolor」などであった
場合、S194に処理が進み、S194においては、P
DLコマンドがそのまま実行されるようにこのPDLコ
マンドがPDLメモリ4に設定される。
【0164】S193において、(x1 ,y1 )に現在
行の上位置(Y座標値が小さい側の位置)の座標値を入
力し、(x2 ,y2 )に現在行の下位置(Y座標値が大
きい側の位置)の座標値を入力する。S195におい
て、まず、現在行の下位置のY座標値y2 が当該小領域
の上位置(Y座標値j)より上側にあるか否かを判定す
る。上側にあった場合はS196に処理を進め、Put
CompleteにTURUEを入力し、図23のS1
97に処理が進む。下側にあった場合は、この行の処理
は飛ばされ、直接S197に処理が進む。
【0165】S197において、現在行の上位置のY座
標値y1 が当該小領域の下位置(Y座標値k)より上側
にあるか否かを判定する。上側にあった場合はS198
に処理が進み、下側にあった場合は、まだ印字を行なう
必要がないからS202に処理が進む。
【0166】S198において、PutStartがF
ALSEか否かが判定され、FALSEであった場合に
は、初期位置がまだ設定されていないから、S199に
処理が進み、FALSEでなかった場合には、S200
に処理が進む。S199において、(x1 ,y1 )を初
期位置と設定し、PutStartにTRUEを入力
し、S200に処理が進む。
【0167】S200において、PutComplet
eがFALSEか否かが判定される。FALSEであっ
た場合は、S201に処理が進み、FALSEでなかっ
た場合は、S202に処理が進む。S201に処理が進
むのは、現在行の領域が当該小領域の一部にでもかかる
場合であり、現在行の印字が行なわれるようにする。S
201において、現在行の印字を設定し、対応するPD
Lコマンドが作成され、S202に処理が進む。
【0168】S202において、curerent行は
1を加えられ、現在行が更新される。S203におい
て、文字印字コマンドの処理が終了したか否かが判定さ
れ、終了した場合は、S204に処理が進み、終了しな
い場合には、S193に処理が戻り、次の行について処
理がなされる。このようにして、当該小領域の範囲にお
いて、全ての行に対して同様の処理が繰り返される。最
後にS204において、文字印字コマンドが設定されP
DLメモリ4に書き込まれる。このとき、初期位置設定
コマンド等も同時に設定される。
【0169】図24,図25,図26は、本発明の第2
の具体例における小領域ごとのPDLコマンドデータの
一例を示す説明図である。また、図27,図28は、本
発明の第2の具体例における画像データ展開を説明する
説明図である。
【0170】まず、図13のS61において作成される
小領域ごとのPDLコマンドデータを、図4,図5を適
宜参照しながら図24,図25,図26を用いて説明す
る。この一例では、小領域ごとのPDLコマンドデータ
は、図4,図24,図25,図26の4部分からなる
が、単に図面の都合上分けたにすぎず、一体としてPD
Lメモリ4に書き込まれるものである。なお、図4の2
11〜234の定義に関するPDLコマンドデータは、
そのまま小領域ごとのPDLコマンドデータとしている
ので、図4のPDLコマンドデータについては、改めて
図示しなかった。
【0171】第1の具体例における小領域ごとのPDL
コマンドデータと同様に、小領域ごとに区分して記載さ
れていないPDLコマンドデータがある。図5の24
8,249における「initgraphics」コマ
ンド,「scale」コマンドは、この具体例では不要
であるので無視されている。その他のPDLコマンド
は、図9,図10に示される273等のコメント行の後
ろに小領域ごとに区分され、小領域ごとのPDLコマン
ドデータとなる。なお、PDLコマンドデータは、必ず
しもコメント行で区分される必要はない。座標はページ
記述言語における座標系で記載されている。
【0172】図4の211から図5の236までのコマ
ンドデータは、小領域ごとのPDLコマンドデータにお
いては、小領域ごとの区分の前である、図24の342
までに記載される。しかし、第2の具体例においては、
図4に示される212〜234における定義コマンドを
用いて、図5の235〜262におけるPDLコマンド
データから、新たにPDLコマンドが作成され、これが
小領域ごとのPDLコマンドデータとされるから、図4
に示される212〜234中の使用済みの定義コマンド
は必ずしもPDLメモリ4に書き込む必要がない。
【0173】図5の237〜241の赤の第1の矩形A
に関するPDLコマンドデータは、領域5にのみ画像展
開されるものであることがPDL分割部2において検出
される。237における「translate」コマン
ド、238における「scale」コマンドにより、P
DL分割部2の内部状態が変化する。239における
「square」は、先に定義されているから、図4の
212〜219においてなされた矩形の定義におけるパ
スを237における初期位置設定と、238におけるス
ケーリングにしたがって変換すると、実際に描画される
べき赤の第1の矩形Aのパスが設定される。
【0174】この赤の第1の矩形Aは領域5の範囲内に
のみ存在するから、この実際に描画されるべき赤の第1
の矩形Aのパスのそれぞれに対応するPDLコマンドデ
ータが作成され、図26の408における領域5のコメ
ント行の後に書き込まれ410〜415となる。なお、
「grestore」コマンドも書き込まれて409と
なる。図5の240における「setrgbcolo
r」コマンド,241における「fill」コマンドも
書き込まれて416,417となる。
【0175】図5の242〜247の緑の第2の矩形B
に関するPDLコマンドデータは、領域1,2,3に画
像展開されるものであることがPDL分割部2において
検出される。243における「translate」コ
マンド、244における「scale」コマンドによ
り、PDL分割部2の内部状態が変化する。239にお
ける「square」は、先に定義されているから、図
4の212〜219においてなされた矩形の定義におけ
るパスを243における初期位置設定と、244におけ
るスケーリングにしたがって変換すると、実際に描画さ
れるべき緑の第2の矩形Bのパスが設定される。
【0176】第1のパスは初期位置(1024,313
6)から位置(1024,5184)まで、第2のパス
は位置(1024,5184)から位置(3072,5
184)まで、第3のパスは位置(3072,518
4)から位置(3072,3136)まで、第4のパス
は位置(3072,3136)から初期位置(102
4,3136)までである。
【0177】まず、領域1において作成されるPDLコ
マンドデータについて説明する。第1のパスは、領域1
の下位置を下から上にまたぐものであり、またぐ地点
は、位置(1024,4673)であるから、初期位置
を(1024,4673)とするための「movet
o」コマンドと、位置(1024,5184)までの
「lineto」コマンドが作成され、図24の351
における領域1のコメント行の後に書き込まれて35
4,355となる。第2のパスは、領域1の範囲内のも
のであるから、「lineto」コマンドが作成され、
図24の355の次に書き込まれて356となる。第3
のパスは、領域1の下位置を上から下にまたぐものであ
る。またぐ地点は、位置(3072,4673)である
から、この位置までの「lineto」コマンドが作成
されるとともに、この位置から初期位置までの「clo
sepath」コマンドが作成され、図24の356の
後に書き込まれて357,358となる。第4のパス
は、領域1の範囲外であるためPDLコマンドは作成さ
れない。なお、図5の242における「grestor
e」コマンド,図4の213における「newpat
h」コマンドも書き込まれて352,353となる。図
5の246における「setrgbcolor」コマン
ド,247における「fill」コマンドも書き込まれ
て359,360となる。
【0178】領域2おいて作成されるPDLコマンドデ
ータについて説明する。第1のパスは、領域2の下位置
を下から上にまたぎ、かつ上位置も下から上にまたぐも
のである。下位置をまたぐ地点は、位置(1024,3
649)であり、上位置をまたぐ地点は、位置(102
4,4672)であるから、初期位置を(1024,3
649)とするための「moveto」コマンドと、位
置(1024,4672)までの「lineto」コマ
ンドが作成され、図25の370における領域2のコメ
ント行の後に書き込まれて373,374となる。第2
のパスは、領域2の範囲外のものであるから、PDLコ
マンドは作成されない。第3のパスは、領域2の上位置
を上から下にまたぎ、下位置も上から下にまたぐもので
ある。上位置をまたぐ地点は、位置(3072,467
2)であり、下位置をまたぐ地点は、位置(3072,
3649)であるから、位置(3072,4672)ま
での「lineto」コマンドと、位置(3072,3
649)までの「lineto」コマンドと、初期位置
までの「closepath」コマンドが作成され、図
25の374の後に書き込まれて375,376,37
7となる。第4のパスは、領域2の範囲外のものである
からPDLコマンドは作成されない。なお、領域1の場
合と同様に、「grestore」コマンド,「new
path」コマンド,「setrgbcolor」コマ
ンド,「fill」コマンドも書き込まれて371,3
72,378,379となる。
【0179】領域3において作成されるPDLコマンド
データについて説明する。第1のパスは、その始端が領
域3の範囲内の位置(1024,3136)にあるもの
であり、かつ、領域3の上位置を下から上にまたぐもの
である。またぐ地点は、位置(1024,3648)で
ある。したがって、初期位置を(1024,3136)
とする「moveto」コマンドが作成されるととも
に、(1024,3648)までの「lineto」コ
マンドが作成され、図25の389における領域3のコ
メント行の後に書き込まれて392,393となる。第
2のパスは、領域3の範囲外のものであり、PDLコマ
ンドは作成されない。第3のパスは、領域3の上位置を
上から下にまたぐものである。またぐ地点は、位置(3
072,3648)であるから、この位置までの「li
neto」コマンドが作成されるとともに、位置(30
72,3136)までの「lineto」コマンドが作
成され、図25の393の後に書き込まれて394,3
95となる。第4のパスは、領域3の範囲内のものであ
り、初期位置までの「closepath」コマンドが
作成され、図25の395の後に書き込まれて396と
なる。なお、領域1の場合と同様に、「grestor
e」コマンド,「newpath」コマンド,「set
rgbcolor」コマンド,「fill」コマンドも
書き込まれて390,391,397,398となる。
【0180】図5の250から255までの青の菱形C
に関するPDLコマンドデータは、領域4,5,6に画
像展開されるものであることがPDL分割部2において
検出される。251における「translate」コ
マンド、252における「scale」コマンドによ
り、PDL分割部2の内部状態が変化する。253にお
ける「diamond」コマンドは、先に定義されてい
るコマンドであるから、図4の227〜234において
なされた菱形の定義におけるパスを251における初期
位置設定と、252におけるスケーリングにしたがって
変換すると、実際に描画されるべき青の菱形Cのパスが
設定される。
【0181】第1のパスは初期位置(1024,108
8)から位置(2560,64)まで、第2のパスは位
置(2560,64)から位置(4096,1088)
まで、第3のパスは位置(4096,1088)から位
置(2560,2112)まで、第4のパスは位置(2
560,2112)から初期位置(1024,108
8)までである。
【0182】まず、領域4において作成されるPDLコ
マンドデータについて説明する。第1,第2のパスは、
領域4の範囲外のものであるから、PDLコマンドデー
タを作成しない。第3のパスは、領域4の下位置を下か
ら上にまたぐものであり、またぐ地点は、位置(332
7,1601)であるから、初期位置を(3327,1
601)とするための「moveto」コマンドと、位
置(2560,2112)までの「lineto」コマ
ンドが作成され、図25の399における領域4のコメ
ント行の後に書き込まれて402,403となる。第4
のパスは、領域1の下位置を上から下にまたぐ。またぐ
地点は、位置(1793,1601)であるから、この
位置までの「lineto」コマンドが作成されるとと
もに、この位置から初期位置までの「closepat
h」コマンドが作成され、図25の403の次に書き込
まれて404,405となる。他の図形の場合と同様
に、「grestore」コマンド,「newpat
h」コマンド,「setrgbcolor」コマンド,
「fill」コマンドも書き込まれて400,401,
406,407となる。
【0183】領域5おいて作成されるPDLコマンドデ
ータについて説明する。第1のパスは、その始端が領域
5の範囲内の位置(1024,1088)にあるもので
あり、かつ、領域5の下位置を上から下にまたぐもので
ある。下位置をまたぐ地点は、位置(1791,57
7)である。したがって、初期位置を(1024,10
88)とするための「moveto」コマンドと、位置
(1791,577)までの「lineto」コマンド
が作成され、図26の408における領域5のコメント
行の後に書き込まれて420,421となる。第2のパ
スは、領域5の下位置を下から上にまたぐものである。
またぐ地点は、位置(3329,577)であるから、
この位置までの「lineto」コマンドが作成される
とともに、(4096,1088)までの「linet
o」コマンドが作成され、図26の421の次に書き込
まれて、422,423となる。第3のパスは、領域5
の上位置を下から上にまたぐものである。またぐ地点
は、位置(3328,1600)であるから、この位置
までの「lineto」コマンドが作成され、図26の
423の次に書き込まれて、424となる。第4のパス
は、領域5の上位置を上から下にまたぐものである。ま
たぐ地点は、位置(1792,1600)であるから、
この位置までの「lineto」コマンドが作成される
とともに、初期位置までの「closepath」コマ
ンドが作成され、図26の424の次の425,426
に書き込まれる。なお、他の図形の場合と同様に、「g
restore」コマンド,「newpath」コマン
ド,「setrgbcolor」コマンド,「fil
l」コマンドも書き込まれて、418,419,42
7,428となる。
【0184】領域6において作成されるPDLコマンド
データについて説明する。第1のパスは、領域5の上位
置を上から下にまたぐものである。またぐ地点は、位置
(1792,576)である。したがって、初期位置を
(1792,576)とする「moveto」コマンド
が作成されるとともに、(2560,64)までの「l
ineto」コマンドが作成され、図25の429にお
ける領域6のコメント行の後に書き込まれて432,4
33となる。第2のパスは、領域6の上位置を下から上
にまたぐものである。またぐ地点は、位置(3328,
576)であるから、この位置までの「lineto」
コマンドが作成されるとともに、初期位置までの「cl
osepath」コマンドが作成され、図26の434
の次に書き込まれ、435となる。他の図形の場合と同
様に、「grestore」コマンド、「newpat
h」コマンド,「setrgbcolor」コマンド,
「fill」コマンドも書き込まれて、430,43
1,436,437となる。
【0185】図5の256〜261の黄の三角形Dに関
するPDLコマンドデータは、領域0,1,2に画像展
開されるものであることがPDL分割部2において検出
される。257における「translate」コマン
ド、258における「scale」コマンドにより、P
DL分割部2の内部状態が変化する。259における
「triangle」コマンドは、先に定義されている
コマンドであるから、図4の220〜226においてな
された三角形の定義におけるパスを257における初期
位置設定と、258におけるスケーリングにしたがって
変換すると、実際に描画されるべき黄の三角形Dのパス
が設定される。
【0186】第1のパスは初期位置(2048,416
0)から位置(4096,4160)まで、第2のパス
は位置(4096,4160)から位置(3072,6
208)まで、第3のパスは位置(3072,620
8)から初期位置(2048,4160)までのクロー
ズパスである。
【0187】まず、領域0において作成されるPDLコ
マンドデータについて説明する。第1のパスは、領域0
の範囲外であるから、PDLコマンドの作成は行なわな
い。第2のパスは、領域0の下位置を下から上にまたぐ
ものであり、またぐ地点は、位置(3327,569
7)であるから、初期位置を(3327,5697)と
するための「moveto」コマンドと、位置(307
2,6208)までの「lineto」コマンドが作成
され、図24の343における領域0のコメント行の後
に書き込まれて345,346となる。第3のパスは、
領域0の下位置を上から下にまたぐものである。またぐ
地点は、位置(2817,5697)であるから、この
位置までの「lineto」コマンドが作成されるとと
もに、この位置から初期位置までの「closepat
h」コマンドが作成され、図24の346の後に書き込
まれて347,348となる。なお、他の図形の場合と
同様に、「newpath」コマンド,「setrgb
color」コマンド,「fill」コマンドも書き込
まれて、344,349,350となる。「grest
ore」コマンドは、最初の小領域である領域0の最初
の図形においては、不要であるから、書き込まれない。
【0188】領域1おいて作成されるPDLコマンドデ
ータについて説明する。第1のパスは、領域1の範囲外
であるから、PDLコマンドは、作成されない。第2の
パスは、領域1の下位置を下から上にまたぎ、かつ上位
置も下から上にまたぐものである。下位置をまたぐ地点
は、位置(3839,4673)であり、上位置をまた
ぐ地点は、位置(3328,5696)であるから、初
期位置を(3839,4673)とするための「mov
eto」コマンドと、位置(3328,5696)まで
の「lineto」コマンドが作成され、図24の35
1における領域1のコメント行の後に書き込まれて36
3,364となる。第3のパスは、領域1の上位置を上
から下にまたぎ、下位置も上から下にまたぐものであ
る。上位置をまたぐ地点は、位置(2816,569
6)であり、下位置をまたぐ地点は、位置(2305,
4673)であるから、位置(2816,5696)ま
での「lineto」コマンドと、位置(2305,4
673)までの「lineto」コマンドと、初期位置
までの「closepath」コマンドが作成され、図
24の364の後に書き込まれて365,366,36
7となる。なお、「grestore」コマンド,「n
ewpath」コマンド,「setrgbcolor」
コマンド,「fill」コマンドも書き込まれて36
1,362,368,369となる。
【0189】領域2において作成されるPDLコマンド
データについて説明する。第1のパスは、領域2の範囲
内ものであるから、その始端の位置(2048,416
0)を初期位置とするための「moveto」コマンド
と、位置(4096,4160)までの「linet
o」コマンドが作成され、図25の370における領域
2のコメント行の後に書き込まれて382,383とな
る。第2のパスは、領域2の上位置を下から上にまたぐ
ものである。またぐ地点は、位置(3840,467
2)であるから、この位置までの「lineto」コマ
ンドが作成され、図25の383の次に書き込まれて3
84となる。第3のパスは、領域2の上位置を上から下
にまたぐものであり、またぐ地点は、位置(2304,
4672)であり、この位置までの「lineto」コ
マンドが作成されるとともに、初期位置までの「clo
sepath」コマンドが作成され、図25の384の
次に書き込まれて385,386となる。なお、他の図
形の場合と同様に、「grestore」コマンド,
「newpath」コマンド,「setrgbcolo
r」コマンド,「fill」コマンドも書き込まれて3
80,381,387,388となる。
【0190】最後に図5の262における「showp
age」コマンドは、小領域ごとのPDLコマンドデー
タにおいては、小領域ごとの区分の後の図10の339
に書き込まれる。
【0191】なお、第2の具体例においては、小領域の
上位置または下位置の境界に新たにパスが設定され、こ
れに応じたPDLコマンドが作成された。このPDLコ
マンドは、例えば、領域1の黄の三角形Dについて例示
すると、図24の365における「lineto」コマ
ンド、および、367における「closepath」
コマンドである。これらは、領域1の369における
「fill」コマンドが、閉ループ内を「setrgb
color」コマンドで設定された色でペイントする図
形印字コマンドであるためである。当該小領域の上位置
または下位置の境界に新たにパスを設定する必要がない
ような他の種類の印字命令の場合、例えば、線図形を描
画するようなコマンドの場合には、例えば、代わりに
「moveto」コマンドを作成すればよい。
【0192】図27,図28を用い、図4,図24,図
25,図26も適宜参照しながら、図14のS63にお
いて小領域ごとのPDLコマンドデータが小領域ごとの
画像データに展開される様子を説明する。
【0193】領域0においては、PDLインタプリタ5
により、図4の211〜234におけるPDLコマンド
データおよび、図24の341,342,343〜35
0におけるPDLコマンドデータ、図26の438にお
けるPDLコマンドデータに基づいて、画像データが展
開され、黄の三角形Dが領域0に展開される。
【0194】領域1においては、PDLインタプリタ5
により、図4の211〜234におけるPDLコマンド
データおよび、図24の341,342,351〜36
9におけるPDLコマンドデータ、図26の438にお
けるPDLコマンドデータに基づいて、画像データが展
開され、緑の第2の矩形Bが展開された後に黄の三角形
Dが上書きされて展開される。
【0195】領域2においては、PDLインタプリタ5
により、図4の211〜234におけるPDLコマンド
データおよび、図24の341,342,図25の37
0〜388におけるPDLコマンドデータ、図26の4
38におけるPDLコマンドデータに基づいて、画像デ
ータが展開され、緑の第2の矩形Bが展開された後に黄
の三角形Dが上書きされて展開される。
【0196】同様にして、領域3において緑の第2の矩
形Bが展開され、領域4において青の菱形Cが展開さ
れ、領域5において赤の第1の矩形Aの後に青の菱形C
が上書きされて展開され、領域6において青の菱形Cが
展開される。
【0197】図29は、本発明の第2の具体例において
文字が小領域の境界線上に位置する場合を説明する説明
図である。「かきくけこ」および「たちつてと」のよう
に、文字が小領域の境界線上に位置する場合には、クリ
ッピングにより、小領域の範囲内に収まるようにPDL
コマンドデータを変更する。ただし、このようなやり方
は、本来、第1の具体例に属する方法である。しかし、
文字印字について、他の図形印字と同様に、本来の第2
の具体例に属する方法をとるには、分割される文字を完
全に各小領域にきちんと収めるようにすればよい。しか
し、そのためには、PDLメモリ4には、各小領域ごと
にビットマップに変換して記憶しておくしかなく、一般
的にはデータ量が増えてしまう。そのため、PDLメモ
リの容量に余裕がある場合には、本来の第2の具体例に
属する方法を採用してもよい。
【0198】図30は、本発明の第2の具体例において
文字が小領域の境界線上に印字される場合を示す説明図
である。各小領域において、PDLコマンドデータに応
じた画像データである文字のフォントの少なくとも一部
が各小領域にある場合に、各小領域ごとのPDLコマン
ドデータとする。したがって、「かきくけこ」の文字に
関するPDLコマンドデータは、領域1および領域2の
PDLコマンドとしてPDLメモリ4に記憶しておき、
「たちつてと」の文字に関するPDLコマンドデータ
は、領域2および領域3のPDLコマンドとしてPDL
メモリ4に記憶しておく。そして、それぞれの小領域で
文字画像がクリップされるように、クリップパスの設定
をしておく。
【0199】図31は、本発明の第2の具体例において
文字の画像データ展開を説明する説明図である。「かき
くけこ」および「たちつてと」のように、文字が小領域
の境界線上に位置するものは、各小領域において画像デ
ータ展開する際に、各小領域の範囲を超える部分をクリ
ップする。
【0200】以上のように、本発明の第2の具体例にお
いては、PDL分割部2が入力されたPDLコマンドデ
ータに応じた画像データがどの小領域に展開されるもの
であるかを検出し、各小領域に少なくとも一部の画像デ
ータが展開されるPDLコマンドデータから各小領域の
範囲内でのみ画像展開されるPDLコマンドデータを作
成し、PDLメモリ4に記憶する。PDLインタプリタ
5は、これを読み出して前記小領域ごとの画像データに
展開して出力する。
【0201】上述した説明において、小領域とは、画像
領域をY軸方向に等間隔に分割したものであった。しか
し、分割の方法は、必ずしもこのようにする必要はな
く、例えば、画像領域をX軸方向に分割してもよいし、
Y軸及びX軸方向ともに分割して、マトリクス状に小領
域を形成してもよい。また、各小領域の大きさを異なら
せてもよい。
【0202】
【発明の効果】以上の説明から明らかなように、本発明
によれば、小領域ごとに画像データに展開する際に、画
像展開時間を短くすることができ、画像の送出速度を大
きくすることができるという効果がある。また、1ペー
ジ分の画像メモリを用いなくてもPDLコマンドデータ
の画像データ展開を行なうことができる。
【図面の簡単な説明】
【図1】 本発明の一実施例のブロック図である。
【図2】 本発明の一実施例のハードウエア構成を説明
する説明図である。
【図3】 画像領域の座標系の一例の説明図である。
【図4】 PDLコマンドデータの一例を示す説明図の
第1部分である。
【図5】 PDLコマンドデータの一例を示す説明図の
第2部分である。
【図6】 図4,図5のPDLコマンドデータの実行結
果を説明する説明図である。
【図7】 本発明の第1の具体例の動作の概要を示すフ
ローチャートの第1部分である。
【図8】 本発明の第1の具体例の動作の概要を示すフ
ローチャートの第2部分である。
【図9】 本発明の第1の具体例における小領域ごとの
PDLコマンドデータの一例を示す説明図の第1部分で
ある。
【図10】本発明の第1の具体例における小領域ごとの
PDLコマンドデータの一例を示す説明図の第2部分で
ある。
【図11】 本発明の第1の具体例における画像データ
展開を説明する説明図の第1部分である。
【図12】 本発明の第1の具体例における画像データ
展開を説明する説明図の第2部分である。
【図13】 本発明の第2の具体例の動作の概要を示す
フローチャートの第1部分である。
【図14】 本発明の第2の具体例の動作の概要を示す
フローチャートの第2部分である。
【図15】 図13のS61における処理の詳細を示す
フローチャートである。
【図16】 図15のS78における処理の詳細を示す
フローチャートである。
【図17】 図16のS93における処理の詳細を示す
フローチャートである。
【図18】 図16のS94における処理の詳細を示す
フローチャートである。
【図19】 図16のS95における処理の詳細を示す
フローチャートである。
【図20】 図16のS96における処理の詳細を示す
フローチャートの第1部分である。
【図21】 図16のS96における処理の詳細を示す
フローチャートの第2部分である。
【図22】 図15のS72における処理の詳細を示す
フローチャートの第1部分である。
【図23】 図15のS72における処理の詳細を示す
フローチャートの第2部分である。
【図24】 本発明の第2の具体例における小領域ごと
のPDLコマンドデータの一例を示す説明図の第1部分
である。
【図25】 本発明の第2の具体例における小領域ごと
のPDLコマンドデータの一例を示す説明図の第2部分
である。
【図26】 本発明の第2の具体例における小領域ごと
のPDLコマンドデータの一例を示す説明図の第3部分
である。
【図27】 本発明の第2の具体例における画像データ
展開を説明する説明図の第1部分である。
【図28】 本発明の第2の具体例における画像データ
展開を説明する説明図の第2部分である。
【図29】 本発明の第2の具体例において文字が小領
域の境界線上に位置する場合を説明する説明図である。
【図30】 本発明の第2の具体例において文字が小領
域の境界線上に印字される場合を示す説明図である。
【図31】 本発明の第2の具体例において文字の画像
データ展開を説明する説明図である。
【図32】 ページ記述言語をサポートする画像処理装
置の第1の従来例を示すブロック図である。
【図33】 ページ記述言語をサポートする画像処理装
置の第2の従来例を示すブロック図である
【図34】 ページ記述言語をサポートする画像処理装
置の第3の従来例を示すブロック図である
【符号の説明】
1…ホストコンピュータ、2…PDL分割部、3…コマ
ンドバッファ、4…PDLメモリ、5…PDLインタプ
リタ、6a,6b…小領域バッファ、7…セレクタ、8
…プリンタエンジン、10…内部バス、11…CPU、
12…ROM、13…RAM、14…ディスクコントロ
ーラ、15…ディスク装置、16…ホストインタフェー
ス、17…バッファ。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 ページ記述言語で記載されたコマンドデ
    ータに応じて画像データを出力する画像処理装置におい
    て、前記コマンドデータを入力し該コマンドデータを分
    割された画像領域である小領域に割り当てる分割手段
    と、該分割手段のコマンドデータ出力を記憶する記憶手
    段と、該記憶手段から読み出されたコマンドデータに応
    じて前記小領域ごとに当該小領域の範囲を画像データに
    展開し画像データを出力するインタプリタを有し、前記
    分割手段は、入力されたコマンドデータに応じた画像デ
    ータがどの小領域に展開されるものであるかを検出し、
    各小領域に少なくとも一部の画像データが展開されるコ
    マンドデータを該コマンドデータが展開される各小領域
    に割り当てるものであることを特徴とする画像処理装
    置。
  2. 【請求項2】 ページ記述言語で記載されたコマンドデ
    ータに応じて画像データを出力する画像処理装置におい
    て、前記コマンドデータを入力し該コマンドデータにつ
    いて分割された画像領域である小領域ごとのコマンドデ
    ータに分割する分割手段と、該分割手段から出力される
    コマンドデータを各小領域毎に割り当てられた領域に追
    加して記憶する記憶手段と、該記憶手段から読み出され
    た各小領域毎のコマンドデータを画像データに展開する
    インタプリタを有し、前記分割手段は、入力されたコマ
    ンドデータに応じた画像データがどの小領域に展開され
    るものであるかを検出し、各小領域に少なくとも一部の
    画像データが展開されるコマンドデータから各小領域の
    範囲内で画像展開されるコマンドデータを作成し、作成
    されたコマンドデータを各小領域に割り当てることを特
    徴とする画像処理装置。
JP4093595A 1995-02-28 1995-02-28 画像処理装置 Expired - Fee Related JP3336800B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4093595A JP3336800B2 (ja) 1995-02-28 1995-02-28 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4093595A JP3336800B2 (ja) 1995-02-28 1995-02-28 画像処理装置

Publications (2)

Publication Number Publication Date
JPH08230249A JPH08230249A (ja) 1996-09-10
JP3336800B2 true JP3336800B2 (ja) 2002-10-21

Family

ID=12594368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4093595A Expired - Fee Related JP3336800B2 (ja) 1995-02-28 1995-02-28 画像処理装置

Country Status (1)

Country Link
JP (1) JP3336800B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3575382B2 (ja) 1999-04-08 2004-10-13 セイコーエプソン株式会社 印刷コマンドの生成および送信を行う印刷制御方法、印刷制御装置、そのためのプログラムを記録した記録媒体
JP4730201B2 (ja) * 2006-05-22 2011-07-20 富士ゼロックス株式会社 プリント制御装置と印刷システムおよび印刷制御方法とプログラム
JP2008018577A (ja) * 2006-07-11 2008-01-31 Canon Inc 画像形成装置、画像形成方法及びプログラム
JP2010211559A (ja) * 2009-03-11 2010-09-24 Seiko Epson Corp 画像処理装置、画像処理方法および画像処理のためのコンピュータープログラム
JP2010211558A (ja) * 2009-03-11 2010-09-24 Seiko Epson Corp 画像処理装置、画像処理方法および画像処理のためのコンピュータープログラム

Also Published As

Publication number Publication date
JPH08230249A (ja) 1996-09-10

Similar Documents

Publication Publication Date Title
US20010043354A1 (en) Image processing apparatus
JP3336800B2 (ja) 画像処理装置
JPH09185721A (ja) 画像形成装置
JPS6216436B2 (ja)
JPH06168334A (ja) 描画装置
JPH05342314A (ja) 画像処理装置
JP6904717B2 (ja) 画像処理装置、その制御方法、およびプログラム
KR20010104212A (ko) 래스터 오브젝트를 생성하기 위한 방법, 시스템, 정보저장 매체, 및 컴퓨터 판독가능 매체
JP3871011B2 (ja) 情報処理装置および情報処理方法
JP3211417B2 (ja) ページ記述言語処理装置
JP6821924B2 (ja) 画像処理装置、画像処理方法
JP2000013601A (ja) 印刷情報処理装置、中間データ生成装置および方法
JP3450961B2 (ja) 印刷装置及びその制御方法
JP3496384B2 (ja) 画像出力装置
JP2854344B2 (ja) ミクストモード文書の表示方法
JP3089906B2 (ja) 描画装置
JP3155617B2 (ja) 文書処理方法及び装置
JP2937508B2 (ja) ビットマップ展開方式
JP3864520B2 (ja) 印刷処理装置及び印刷処理方法
JP4259328B2 (ja) 画像処理装置、プリンタ、及び格納データの読み出し方法
JP2000255116A (ja) 印刷処理装置および印刷処理方法
JP2002287926A (ja) プリンタドライバにおけるページ制御方法
JP4764730B2 (ja) 画像形成装置及び画像形成方法
JP3651214B2 (ja) 印刷処理装置及び印刷処理方法
JPH0492987A (ja) 画像形成装置

Legal Events

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

Free format text: PAYMENT UNTIL: 20070809

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080809

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090809

Year of fee payment: 7

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

Year of fee payment: 8

Free format text: PAYMENT UNTIL: 20100809

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

Free format text: PAYMENT UNTIL: 20110809

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees