JPH1173516A - 画像処理装置 - Google Patents

画像処理装置

Info

Publication number
JPH1173516A
JPH1173516A JP23154197A JP23154197A JPH1173516A JP H1173516 A JPH1173516 A JP H1173516A JP 23154197 A JP23154197 A JP 23154197A JP 23154197 A JP23154197 A JP 23154197A JP H1173516 A JPH1173516 A JP H1173516A
Authority
JP
Japan
Prior art keywords
image data
intermediate code
code image
edge list
processing
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
JP23154197A
Other languages
English (en)
Other versions
JP3362641B2 (ja
Inventor
Hiroshi Okubo
宏 大久保
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 JP23154197A priority Critical patent/JP3362641B2/ja
Publication of JPH1173516A publication Critical patent/JPH1173516A/ja
Application granted granted Critical
Publication of JP3362641B2 publication Critical patent/JP3362641B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【課題】 中間コード画像データのメモリ使用量を削減
し且つ出力時におけるラスタデータへの展開処理速度を
向上させる。 【解決手段】 プリント出力時には、中間コード画像デ
ータから重なりが無くなるように生成され記憶されたエ
ッジリストを、所定の走査方向に沿って走査することで
中間コード画像データを再作成する。このとき、中間コ
ード画像データのオブジェクトの種類が、例えばカラー
グラフィックスであれば、他のオブジェクトとの重なり
を除去しても矩形になる確率が高いので、図16(C)
に示すように走査方向を副走査線方向としてエッジリス
トを走査すれば、例えば矩形のディスプレイリスト等の
データ量が少ない中間コード画像データを再作成でき
る。このようにオブジェクトの種類に応じた適切な走査
方向に切り替えることで、再作成される中間コード画像
データのデータ量を少なくすることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画像処理装置に係
り、より詳しくは、所定の描画順序に従って層状に描画
される複数のオブジェクトの各々を表した中間コード画
像データからエッジリストを生成する機能、及び該エッ
ジリストから中間コード画像データを再生成する機能を
有する画像処理装置に関する。
【0002】なお、上記のオブジェクトとは図形(グラ
フィックス)、文字(フォント)、イメージ等の描画対
象を意味し、ページ記述データとはページ記述言語で表
された各オブジェクトに関する画像データを意味する。
【0003】
【従来の技術】従来より、描画されるオブジェクトを表
したページ記述データに基づいてラスタデータを生成す
る画像処理において、オブジェクトのページ記述データ
を一旦中間コード画像データに変換した後、該中間コー
ド画像データに基づいてラスタデータを生成する方法が
提案されている。中間コード画像データは、オブジェク
トを少ないデータ量で表現できるという利点を有してお
り、上記の方法により画像処理で使用するメモリを節約
することができる。
【0004】このような中間コード画像データを用いた
例として、特開平6−284297号公報には、各オブ
ジェクト(テキスト、グラフィックス、イメージ)の中
間コード画像データ(この特許の場合には、ディスプレ
イリスト)生成時に既にディスプレイリスト化された他
のオブジェクトとオーバーラップするかどうかのチェッ
クを必ず行い、異なる種類のオブジェクトとオーバーラ
ップする場合には、オーバーラップしないように再度そ
れぞれのオブジェクトのディスプレイリストの作成を行
う技術が開示されている(ただし、オブジェクトを中間
コード画像データではなく圧縮の形態で持つことを前提
としている)。この技術によれば、オブジェクト毎に異
なる圧縮が可能になり、またディスプレイリストの重な
りがなくなるためにラスタデータのメモリ書き込み時間
が短縮する。
【0005】ところが、上記技術では、1ページ当たり
のオブジェクトがかなり多数である場合には、各オブジ
ェクトの中間コード画像データ作成時において、オーバ
ーラップのチェックおよびディスプレイリストの再作成
を行っていると膨大な時間を費やす、という難点があ
る。
【0006】また、特開平7−170411号公報に
は、画像データをラスタイメージに展開して出力する画
像処理装置において、連続性のある画像データに対し連
続性を表すファンクションを用いて符号化する技術が開
示されている。
【0007】この技術は、オブジェクト間の重なりを無
くすよう中間コード画像データを加工する処理(以下、
重畳図形処理と称する)の実行後に処理対象のオブジェ
クトを再度中間コード画像データに戻すために、副走査
線方向にエッジリストのスキャンを行う場合に、副走査
線方向に等間隔でかつラン長が同一のエッジリストに対
して適用することにより、中間コード画像データのメモ
リ使用量の削減および中間コード画像データの作成処理
時間の短縮が可能となる。ところが、副走査線方向に等
間隔でかつラン長が同一のエッジリスト以外に対して
は、メモリ使用量の削減や中間コード画像データの作成
処理時間の短縮の効果は無く、副走査線方向に等間隔で
かつラン長が同一か否かの判定処理を実行するため、む
しろ処理時間が長くなる。
【0008】さらに、本願出願人は、特願平8−276
652号にて、ページ記述データから変換された各オブ
ジェクト毎の中間コード画像データを記憶し、下層側に
描画されるオブジェクトをマスクする上層側のオブジェ
クトの輪郭を表す輪郭データを各オブジェクト毎に最上
層から遡って作成し、マスクされずに残った部分から中
間コード画像データを再生成することにより、オブジェ
クト毎の重なりを無くす画像処理方法に関する発明を出
願している。
【0009】この技術により、前記特開平6−2842
97の方式である中間コード画像データの作成時毎に重
畳図形処理を起動する必要はなくなり、中間コード画像
データの保持領域が不足した場合及びラスタデータのメ
モリ書き込みが間に合わない場合にのみ起動し、一括処
理或いは所定の一部分に対する処理を行うことにより、
処理速度が向上する。
【0010】ところが、特願平8−276652号にて
提案した技術では、オブジェクトの内容を認識して重畳
図形処理を行っていないので、重畳図形処理を終えたオ
ブジェクトの各エッジリストから再度中間コード画像デ
ータを生成した場合、生成された中間コード画像データ
のサイズが、オブジェクトの種類によってまちまちとな
る。また、一つのオブジェクトに多数のオブジェクトが
重なっている場合には、下層側のオブジェクトが細分化
され、生成される中間コード画像データのデータ量が増
加し、メモリ使用量の増加やラスタデータへの展開処理
速度の低下といった不都合が発生するおそれがある。
【0011】
【発明が解決しようとする課題】本発明は、上記問題点
を解消するために成されたものであり、中間コード画像
データのメモリ使用量を削減し且つ出力時におけるラス
タデータへの展開処理速度を向上させることができる画
像処理装置を提供することを第1の目的とし、重畳図形
処理によるオブジェクトの細分化による中間コード画像
データのメモリ使用量の増加および展開処理速度の低下
を防止することができる画像処理装置を提供することを
第2の目的とする。
【0012】
【課題を解決するための手段】上記第1の目的を達成す
るために、請求項1記載の画像処理装置は、所定の描画
領域に所定の描画順序に従って層状に描画される複数の
オブジェクトの各々を表したページ記述データを中間コ
ード画像データに変換する変換手段と、変換された各オ
ブジェクト毎の中間コード画像データをメモリに記憶す
る記憶手段と、前記各オブジェクト毎の中間コード画像
データにより表される画像領域の重なりが無くなるよう
に、中間コード画像データに対応した所定の走査ライン
毎のエッジリストを、オブジェクトの描画順序を遡って
各オブジェクト毎に作成し、作成された各オブジェクト
毎のエッジリストによって前記記憶された各オブジェク
ト毎の中間コード画像データを更新する更新手段と、所
定の条件に応じて走査方向を切り替えて、前記更新手段
により更新された各オブジェクト毎のエッジリストを走
査することにより、該エッジリストから中間コード画像
データを各オブジェクト毎に再作成する再作成手段と、
を有することを特徴とする。
【0013】また、請求項2記載の画像処理装置では、
請求項1記載の画像処理装置において、前記所定の条件
は、オブジェクトの種類であることを特徴とする。
【0014】また、請求項3記載の画像処理装置では、
請求項1又は請求項2に記載の画像処理装置において、
前記再作成手段は、前記所定の条件に応じて、走査方向
を主走査線方向とするモード、走査方向を副走査線方向
とするモード、走査方向を所定の切替条件に応じてエッ
ジリスト毎に主走査線方向又は副走査線方向に切り替え
るモードの何れか1つのモードに切り替えることを特徴
とする。
【0015】また、請求項4記載の画像処理装置では、
請求項3記載の画像処理装置において、前記所定の切替
条件は、走査対象のエッジリストと次の走査対象となり
うるエッジリストとの距離であることを特徴とする。
【0016】また、上記第2の目的を達成するために、
請求項5記載の画像処理装置は、所定の描画領域に所定
の描画順序に従って層状に描画される複数のオブジェク
トの各々を表したページ記述データを中間コード画像デ
ータに変換する変換手段と、変換された各オブジェクト
毎の中間コード画像データをメモリに記憶する記憶手段
と、前記各オブジェクト毎の中間コード画像データによ
り表される画像領域の重なりが無くなるように、中間コ
ード画像データに対応した所定の走査ライン毎のエッジ
リストを、オブジェクトの描画順序を遡って各オブジェ
クト毎に作成し、作成された各オブジェクト毎のエッジ
リストによって前記記憶された各オブジェクト毎の中間
コード画像データを更新する重畳図形処理を実行する図
形処理手段と、オブジェクトの種類が特定の種類である
場合に、該オブジェクトに対する重畳図形処理を禁止す
るよう制御する制御手段と、を有することを特徴とす
る。
【0017】また、上記第2の目的を達成するために、
請求項6記載の画像処理装置は、所定の描画領域に所定
の描画順序に従って層状に描画される複数のオブジェク
トの各々を表したページ記述データを中間コード画像デ
ータに変換する変換手段と、変換された各オブジェクト
毎の中間コード画像データをメモリに記憶する記憶手段
と、前記各オブジェクト毎の中間コード画像データによ
り表される画像領域の重なりが無くなるように、中間コ
ード画像データに対応した所定の走査ライン毎のエッジ
リストを、オブジェクトの描画順序を遡って各オブジェ
クト毎に作成し、作成された各オブジェクト毎のエッジ
リストによって前記記憶された各オブジェクト毎の中間
コード画像データを更新する重畳図形処理を実行する図
形処理手段と、複数のオブジェクト間の重なり具合が所
定レベル以上である場合に、前記複数のオブジェクトに
対する重畳図形処理を禁止するよう制御する制御手段
と、を有することを特徴とする。
【0018】また、請求項7記載の画像処理装置では、
請求項5又は請求項6に記載の画像処理装置において、
前記制御手段は、重畳図形処理が禁止されるオブジェク
トが複数存在する場合、該重畳図形処理が禁止されるオ
ブジェクト間でのみ、前記図形処理手段により重畳図形
処理を実行するよう制御することを特徴とする。
【0019】上記請求項1記載の画像処理装置では、変
換手段によって、所定の描画領域に所定の描画順序に従
って層状に描画される複数のオブジェクトの各々を表し
たページ記述データを中間コード画像データに変換し、
記憶手段によって前記変換された各オブジェクト毎の中
間コード画像データをメモリに記憶する。なお、中間コ
ード画像データとしては、後述するエッジリスト、ディ
スプレイリスト、ランレングスリスト等を適用すること
ができる。
【0020】そして、更新手段は、各オブジェクト毎の
中間コード画像データにより表される画像領域の重なり
が無くなるように、中間コード画像データに対応した所
定の走査ライン毎のエッジリストを、オブジェクトの描
画順序を遡って各オブジェクト毎に作成し、作成された
各オブジェクト毎のエッジリストによって前記記憶され
た各オブジェクト毎の中間コード画像データを更新す
る。
【0021】ここでは、例えば、更新手段は、下層側に
描画されるオブジェクトをマスクする上層側のオブジェ
クトの少なくとも輪郭を表す輪郭データを、オブジェク
トの描画順序を遡って作成し、作成された輪郭データ領
域を各オブジェクト毎の中間コード画像データから除く
ことにより、上記画像領域の重なりが無くなるようなエ
ッジリストを、オブジェクトの描画順序を遡って各オブ
ジェクト毎に作成することができる。そして、この各オ
ブジェクト毎のエッジリストによって、記憶された各オ
ブジェクト毎の中間コード画像データを更新すれば良
い。
【0022】この例では、更新後の中間コード画像デー
タ、即ち各オブジェクト毎の中間コード画像データから
各オブジェクトよりも上層側のオブジェクトの輪郭デー
タ領域を除いた中間コード画像データは、多くの場合更
新前の中間コード画像データよりもデータ量が削減され
ているので、上記画像処理方法によりメモリに記憶され
る中間コード画像データのデータ量が削減される。
【0023】さらに、本発明では、再作成手段によっ
て、所定の条件に応じて走査方向を切り替えて、更新さ
れた各オブジェクト毎のエッジリストを走査することに
より、該エッジリストから中間コード画像データを各オ
ブジェクト毎に再作成する。
【0024】より具体的には、請求項2、3に記載した
ように、再作成手段によって、オブジェクトの種類に応
じて、走査方向を主走査線方向とするモード、走査方向
を副走査線方向とするモード、走査方向を所定の切替条
件に応じてエッジリスト毎に主走査線方向又は副走査線
方向に切り替えるモードの何れか1つのモードに切り替
えて、更新された各オブジェクト毎のエッジリストを走
査することにより、該エッジリストから中間コード画像
データを各オブジェクト毎に再作成する。
【0025】例えば、オブジェクトの種類がフォントや
白黒のグラフィックスである場合、重なりを除去した後
の形状がかなり複雑な形状になる可能性があるので、走
査方向を所定の切替条件(例えば、請求項4に記載した
走査対象のエッジリストと次の走査対象となりうるエッ
ジリストとの距離)に応じてエッジリスト毎に主走査線
方向又は副走査線方向に切り替えるモードに切り替えて
エッジリストを走査することが望ましい。一例として、
走査対象のエッジリストからみて、主走査線方向に沿っ
て次の走査対象となりうるエッジリストまでの距離より
も副走査線方向に沿って次の走査対象となりうるエッジ
リストまでの距離の方が短い場合には、走査方向を副走
査線方向に切り替えて走査した方が、エッジリストにお
ける隣接するエッジリストまでの距離情報のデータ量を
少なくすることができるので、記憶するためのメモリサ
イズを小さくしメモリを節約することができる。
【0026】また、オブジェクトの種類がカラーグラフ
ィックスである場合は、白黒のグラフィックスの場合と
異なり、他のオブジェクトとの重なりを除去しても矩形
になる確率が高いので、走査方向を副走査線方向とする
モードに切り替えてエッジリストを走査すれば、該エッ
ジリストを例えば矩形のディスプレイリストや連続性を
表すファンクションを用いた符号等の、データ量が少な
い中間コード画像データとして再作成することができ、
記憶するためのメモリサイズを小さくしメモリを節約す
ることができる。
【0027】なお、オブジェクトの種類がイメージ又は
パターンイメージ(=複数のイメージが所定規則でパタ
ーン化されて構成されたもの、以下、イメージ又はパタ
ーンイメージをイメージと総称する)である場合は、そ
の中間コード画像データは、単にクリップ情報を持つの
みで、イメージの実体は別のメモリ領域にそのままの状
態あるいは圧縮された状態で保持されており、そのため
展開処理においてイメージの実体が保持されている領域
からアドレス順に読み出し、主走査線方向および副走査
線方向にソーティングされた中間コード画像データ(=
エッジリストの集合体)でクリップを行いメモリに書き
込む必要があるため、走査方向を主走査線方向とするモ
ードに切り替えてエッジリストを走査することが望まし
い。
【0028】以上のように、オブジェクトの種類に応じ
て、走査方向を主走査線方向とするモード、走査方向を
副走査線方向とするモード、走査方向を所定の切替条件
に応じてエッジリスト毎に主走査線方向又は副走査線方
向に切り替えるモードの何れか1つのモードに切り替え
て、更新された各オブジェクト毎のエッジリストを走査
して、該エッジリストから中間コード画像データを各オ
ブジェクト毎に再作成することにより、中間コード画像
データのデータ量を削減できるので、メモリ使用量を削
減し且つ出力時におけるラスタデータへの展開処理速度
を向上させることができる。
【0029】次に、請求項5記載の画像処理装置では、
変換手段によって、所定の描画領域に所定の描画順序に
従って層状に描画される複数のオブジェクトの各々を表
したページ記述データを中間コード画像データに変換
し、記憶手段によって前記変換された各オブジェクト毎
の中間コード画像データをメモリに記憶する。
【0030】そして、図形処理手段は、各オブジェクト
毎の中間コード画像データにより表される画像領域の重
なりが無くなるように、中間コード画像データに対応す
る所定の走査ライン毎のエッジリストを、オブジェクト
の描画順序を遡って各オブジェクト毎に作成し、作成さ
れた各オブジェクト毎のエッジリストによって、記憶さ
れた各オブジェクト毎の中間コード画像データを更新す
る重畳図形処理を実行する。即ち、重畳図形処理は、画
像領域の重なりが無くなるような各オブジェクト毎のエ
ッジリストの作成及び作成されたエッジリストによる中
間コード画像データの更新の2つの処理から成る。
【0031】ところが、一のオブジェクトに対して重畳
図形処理を実行しようとする場合、該一のオブジェクト
(即ち、下地になるオブジェクト)の種類が特定の種類
である場合には、制御手段によって、該オブジェクトに
対する重畳図形処理を禁止するよう制御する。
【0032】例えば、オブジェクトの種類がイメージで
ある場合は、その中間コード画像データは、前述したよ
うに、単にクリップ情報を持つのみで、イメージの実体
は別のメモリ領域にそのままの状態あるいは圧縮された
状態で保持されている。そのため展開処理においては、
イメージの実体が保持されている領域からアドレス順に
読み出し、主走査線方向および副走査線方向にソーティ
ングされた中間コード画像データ(=エッジリストの集
合体)でクリップを行いメモリに書き込む必要がある。
【0033】そこで、オブジェクトの種類がイメージで
ある場合は、制御手段により図形処理手段による重畳図
形処理を禁止することが望ましい。
【0034】このように重畳図形処理を実行することが
適切でないオブジェクトについては、重畳図形処理を禁
止することにより、オブジェクトの細分化による中間コ
ード画像データのメモリ使用量の増加および展開処理速
度の低下を防止することができる。
【0035】また、請求項6記載の画像処理装置では、
上記請求項5記載の画像処理装置と同様に、図形処理手
段によって、各オブジェクト毎の中間コード画像データ
により表される画像領域の重なりが無くなるように、中
間コード画像データに対応する所定の走査ライン毎のエ
ッジリストを、オブジェクトの描画順序を遡って各オブ
ジェクト毎に作成し、作成された各オブジェクト毎のエ
ッジリストによって、記憶された各オブジェクト毎の中
間コード画像データを更新する重畳図形処理を実行す
る。
【0036】ところが、制御手段によって、複数のオブ
ジェクト間の重なり具合が所定レベル以上である場合
に、当該複数のオブジェクトについては重畳図形処理を
禁止するよう制御する。例えば、一のオブジェクトを表
したエッジリストが他のオブジェクトにより切断される
回数が所定値以上の場合は細分化が発生しているとみな
し、重畳図形処理を禁止することが望ましい。
【0037】このように他のオブジェクトとの重なり具
合が所定レベル以上のオブジェクトについては、重畳図
形処理を禁止することにより、オブジェクトの細分化に
よる中間コード画像データのメモリ使用量の増加および
展開処理速度の低下を未然に防止することができる。
【0038】但し、重畳図形処理においては、オブジェ
クトの描画順序を遡って画像領域の重なりが無くなるよ
うなエッジリストを作成し該エッジリストにより中間コ
ード画像データを更新するので、重畳図形処理が禁止さ
れるオブジェクトが複数存在する場合は、後から処理さ
れるオブジェクトを先に描画する必要がある。このた
め、各オブジェクトを表す中間コード画像データを一時
的に作業用メモリに記憶し、その後、描画順を入れ替え
て、一時記憶した中間コード画像データを正規のメモリ
に記憶し直す必要が生ずる場合がある。
【0039】そこで、請求項7に記載したように、重畳
図形処理が禁止されるオブジェクトが複数存在する場合
には、制御手段によって、重畳図形処理が禁止されるオ
ブジェクト間でのみ、重畳図形処理を実行するよう制御
することが望ましい。これにより、上記のように中間コ
ード画像データを一時的に作業用メモリに記憶した後、
描画順を入れ替えて、一時記憶した中間コード画像デー
タを正規のメモリに記憶し直す必要が無くなり、処理効
率を向上させることができる。
【0040】
【発明の実施の形態】以下、図面を参照して本発明に係
る各種の実施形態を詳細に説明する。
【0041】[第1実施形態]最初に、特許請求の範囲
に記載した請求項1〜4の発明に対応する第1実施形態
を説明する。
【0042】(画像処理装置の構成)以下では、まず本
実施形態における画像処理装置の構成を説明する。図1
に示すように、画像処理装置10には、内蔵したデコン
ポーザによりページ記述言語で記述されたコード画像デ
ータを解釈し、コード画像データがグラフィックス、フ
ォント、イメージなどの描画されるオブジェクト(以
下、オブジェクトと称する)の場合、バンド単位に分割
された中間コード画像データを作成する上位処理部12
と、バンド単位に各オブジェクト間の重なりを無くす重
畳図形処理を行う重畳図形処理部14と、重畳図形処理
で生成されたエッジリストを記憶するためのメモリとし
てのリスト記憶部11と、各バンドの中間コード画像デ
ータをラスタデータに展開する展開部16と、各バンド
の中間コード画像データに関する情報(メモリ領域内の
中間コード画像データ保持領域のアドレスなど)に基づ
いて該中間コード画像データをリアルタイムに展開処理
可能か否かを判定するスケジュール管理部18と、各バ
ンドの中間コード画像データの展開に要する時間を計測
又は予測する計測部20と、展開部16による展開処理
で生成された各バンド毎のラスタデータを記憶するバン
ドバッファ26と、ラスタデータをプリント出力するプ
リンタエンジン30と、バンドバッファ26に記憶され
たラスタデータをプリンタエンジン30へ転送する転送
部28と、バンドバッファ26の使用状況を管理するバ
ンドバッファ管理部22と、ラスタデータの展開処理等
でのエラー発生時にエラー処理を行うエラー処理部24
とが、設けられている。
【0043】このような画像処理装置10は、コード画
像データが外部の画像処理装置からネットワーク経由で
あるいはスプールディスクから入力された場合に起動さ
れ、入力されたコード画像データが上位処理部12内の
デコンポーザにより順次解釈される。前述したように、
コード画像データがオブジェクトの場合には、バンド単
位に分割された中間コード画像データが上位処理部12
により作成され、作成されたバンド単位の中間コード画
像データは、上位処理部12が内蔵するメモリ領域内の
中間コード画像データ保持領域にバンド別に保持され
る。なお、ここでの中間コード画像データの例として
は、ディスプレイリスト、ランレングスリストなどが挙
げられる。
【0044】上記の処理中において中間コード画像デー
タ保持領域のメモリ不足が発生した場合、上位処理部1
2により重畳図形処理部14が起動され、バンド単位に
中間コード画像データで表される画像領域間の重なりを
無くす重畳図形処理(詳細は後述する)が起動される。
この重畳図形処理は、中間コード画像データ保持領域の
メモリ不足が解消されるまで実行される。
【0045】上位処理部12は、1ページ分のページ記
述言語の処理を完了した後、各バンドの中間コード画像
データに関する情報(メモリ領域内の中間コード画像デ
ータ保持領域のアドレスなど)を展開部16に通知し、
展開部16は各バンドの中間コード画像データをラスタ
データにリアルタイムに展開処理可能か否かをスケジュ
ール管理部18に判定させる。
【0046】このスケジュール管理部18は、計測部2
0による中間コード画像データの展開時間の計測結果又
は予測結果に基づいて、各バンド毎の中間コード画像デ
ータがリアルタイムに展開可能か否かを判定する。ここ
で、リアルタイムに展開可能でない中間コード画像デー
タが存在する場合、スケジュール管理部18は、重畳図
形処理部14を起動し、リアルタイムに展開可能でない
中間コード画像データを含むバンドに対して重畳図形処
理を実行させる。これにより、中間コード画像データで
表される画像領域間の重なりを無くし、展開処理時にお
ける無駄なバンドバッファ26への中間コード画像デー
タの書き込みを防ぐことにより、リアルタイムな展開処
理を可能とする。
【0047】(重畳図形処理の概要)次に、図2を用い
て、本実施形態の重畳図形処理部14により実行される
重畳図形処理の内容を説明する。なお、以下では重なり
合った複数のオブジェクトが図3に示す4つの図形A、
B、C、Dである場合の重畳図形処理を説明する。その
ため、「図形」をオブジェクトと同義で用いる。
【0048】本実施形態における重畳図形処理は、特願
平8−276652号にて提案した重畳図形処理と同様
であり、描画順序と逆順に各オブジェクトに対して実行
される。例えば、図2では描画順序と逆順に図形D、
C、B、Aの順に処理される。
【0049】また、重畳図形処理は、一のオブジェクト
と該オブジェクトよりも後に描画される全てのオブジェ
クトを併合した領域との重なり領域を抽出する抽出処
理、抽出された重なり領域を該一のオブジェクトから除
いた領域のエッジリストをリスト記憶部11の作業用メ
モリに生成する生成処理、及び生成されたエッジリスト
によって、リスト記憶部11の保存用メモリに記憶され
た該オブジェクトのエッジリストを更新する更新処理に
よって構成されている。
【0050】具体的には、図2において図形Cと図形C
よりも後に描画される図形Dの輪郭(MASK(D) )との重
なり領域を抽出し、該重なり領域を図形Cから除いた領
域(Cand〜MASK(D) )のエッジリストを生成し、生成さ
れた領域(Cand〜MASK(D) )のエッジリストによって図
形Cのエッジリストを更新する。
【0051】上記の領域(Cand〜MASK(D) )は、後に重
畳図形処理が行われる図形B、Aにより上書きされない
ので、この時点で図形Cのエッジリストが確定し、確定
した図形Cのエッジリストにより図形Cのエッジリスト
が更新される。これにより、作業用メモリに生成された
エッジリストは更新処理の完了後は不要となるので、該
エッジリストが記憶された作業用メモリを解放し他の処
理で再使用することが可能になる。
【0052】以下同様に、図形Bと図形Bよりも後に描
画される図形D、Cの輪郭(MASK(DorC))との重なり領
域を抽出し、該重なり領域を図形Bから除いた領域(Ba
nd〜MASK(DorC))のエッジリストを生成し、生成された
領域(Band〜MASK(DorC))のエッジリストによって図形
Bのエッジリストを更新する。
【0053】更に、図形Aと図形Aよりも後に描画され
る図形D、C、Bの輪郭(MASK(DorCorB) )との重なり
領域を抽出し、該重なり領域を図形Aから除いた領域
(Aand〜MASK(DorCorB) )のエッジリストを生成し、生
成された領域(Aand〜MASK(DorCorB) )のエッジリスト
によって図形Aのエッジリストを更新する。
【0054】なお、上記の重畳図形処理における抽出処
理では、対象の図形よりも後に描画される全ての図形を
併合した領域を表すデータとして、輪郭データ、例え
ば、図形Dの輪郭データ(MASK(D) )や図形D、Cの輪
郭データ(MASK(DorC))等を用いることを特徴とする。
この輪郭データは、領域の輪郭に関する情報のみを含ん
でおり、エッジリストのように線種、色値等の描画に関
するさまざまな情報を含まないので、データ量が非常に
少ない。このように抽出処理において、データ量の少な
い輪郭データを用いることにより、抽出処理における作
業用メモリの使用量を少なく抑えることができる。
【0055】(重畳図形処理の詳細な説明)次に、重畳
図形処理を図6のフローチャートに沿って詳細に説明す
る。
【0056】なお、各図形の更新前のエッジリストを構
成する個々のデータブロックを元図形エッジと称し、各
図形の更新後のエッジリストを構成する個々のデータブ
ロックを新規図形エッジと称する。また、処理対象の図
形よりも後に描画される全図形を併合した領域の輪郭を
マスクと称する。このマスクについても図形と同様にエ
ッジリストで表現し、マスクのエッジリストを構成する
個々のデータブロックをマスクエッジと称する。なお、
図2では図形Dの輪郭(マスク)をMASK(D) と表し、図
形D、Cの輪郭(マスク)をMASK(DorC)と表している。
これらエッジリスト及びマスクは、例えば、図4に示す
ように、属性、始点位置、終点位置、ランレングス、次
のマスクあるいはエッジリストへのポインタの5種類の
データの記憶領域により構成することができる。このう
ち属性データが「0」であればエッジリスト、「1」で
あればマスクであると識別することができる。
【0057】図6のステップ101において処理範囲と
して、1ページを副走査方向に沿って複数に分割したバ
ンドを設定し、次のステップ102で対象オブジェクト
のエッジリストを読み出し該図形のY座標の範囲(YS
〜YE )を検知する。そして、次のステップ103で
は、設定したバンド内に対象オブジェクトが存在するか
否かを判定する。
【0058】ここで、バンド内に対象オブジェクトが存
在する場合、ステップ104へ進み、処理対象とするス
キャンラインのY座標としてYS をセットする。以下、
処理対象とするスキャンラインをラインYと称する。次
のステップ106ではラインYにおける最初の元図形エ
ッジの(開始点のX座標,終了点のX座標)を(SX,
EX)に、ラインYにおける最初のマスクエッジの(開
始点のX座標,終了点のX座標)を(MSX,MEX)
に、それぞれセットする。なお、ここでは元図形エッジ
及びマスクエッジはラインYにおいて主走査方向に順に
処理対象としていく。
【0059】なお、以下では、(SX,EX)はライン
Yにおける元図形エッジの(開始点のX座標,終了点の
X座標)を、(MSX,MEX)はラインYにおけるマ
スクエッジの(開始点のX座標,終了点のX座標)を、
(NSX,NEX)はラインYにおける次の元図形エッ
ジの(開始点のX座標,終了点のX座標)を、(NMS
X,NMEX)はラインYにおける次のマスクエッジの
(開始点のX座標,終了点のX座標)を、それぞれ示
す。
【0060】また、以下のステップでは上記の各種X座
標値同士を比較する処理が含まれるが、このような処理
を説明するために図5(A)〜(F)を用いる。これら
図5(A)〜(F)の各々では、左から右への方向が主
走査方向に相当し、下向き矢印の上側に比較処理前のマ
スクエッジ(MSX〜MEX)及び比較処理前の元図形
エッジ(SX〜EX)を示している。また、下向き矢印
の下側に比較処理後のマスクエッジ(MSX〜MEX)
及び比較処理後の元図形エッジ(SX〜EX)を示して
いる。
【0061】図6において次のステップ108では、M
SXがEXよりも大きいか否かを判定する。図5(A)
に示すようにMSXがEXよりも大きい場合はステップ
110へ進み、図7のサブルーチンAを実行する。サブ
ルーチンAでは(SX,EX)を新規図形エッジとして
追加し(ステップ202)、(MSX−1)がEXに等
しい場合は元図形エッジとマスクエッジとを1つのマス
クエッジにまとめることができるので(MSX,ME
X)に(SX,MEX)をセットし(ステップ20
8)、(MSX−1)がEXに等しくない場合はマスク
エッジに(SX,EX)を追加する(ステップ20
6)。そして、(NSX,NEX)に次の元図形エッジ
をセットして(ステップ210)、図6のメインルーチ
ンへリターンし後述するステップ120へ進む。
【0062】上記ステップ108でMSXがEXより大
きくない場合はステップ112へ進み(MSX≧SX)
且つ(MEX>EX)且つ(MSX≦EX)であるか否
かを判定する。図5(B)に示すように(MSX≧S
X)且つ(MEX>EX)且つ(MSX≦EX)である
場合はステップ114へ進み、図8のサブルーチンBを
実行する。サブルーチンBでは(SX,MSX−1)を
新規図形エッジとして追加し(ステップ222)、(M
SX,MEX)に(SX,MEX)をセットし(ステッ
プ224)、そして(NSX,NEX)に次の元図形エ
ッジをセットして図6のメインルーチンへリターンし後
述するステップ120へ進む。
【0063】上記ステップ112で否定判定された場合
はステップ116へ進み(MSX≦SX)且つ(MEX
≧EX)であるか否かを判定する。図5(C)に示すよ
うに(MSX≦SX)且つ(MEX≧EX)である場合
はステップ118へ進み、(NSX,NEX)に次の元
図形エッジをセットしてステップ120へ進む。ステッ
プ120では(SX,EX)に(NSX,NEX)をセ
ットし、後述するステップ136へ進む。
【0064】上記ステップ116で否定判定された場合
はステップ122へ進み(MSX≧SX)且つ(MEX
≦EX)であるか否かを判定する。図5(D)に示すよ
うに(MSX≧SX)且つ(MEX≦EX)である場合
はステップ124へ進み、図9のサブルーチンDを実行
する。サブルーチンDでは(SX,MSX−1)を新規
図形エッジとして追加し(ステップ242)、(MS
X,MEX)に(SX,EX)をセットする(ステップ
244)。さらに(NSX,NEX)に(MEX+1,
EX)をセットし(ステップ246)、(NMSX,N
MEX)に次のマスクエッジをセットして(ステップ2
48)、図6のメインルーチンへリターンし後述するス
テップ134へ進む。
【0065】上記ステップ122で否定判定された場合
はステップ126へ進み(MSX≦SX)且つ(MEX
<EX)且つ(MEX≧SX)であるか否かを判定す
る。図5(E)に示すように(MSX≦SX)且つ(M
EX<EX)且つ(MEX≧SX)である場合はステッ
プ128へ進み、図10のサブルーチンEを実行する。
サブルーチンEでは(SX,EX)に(MEX+1,E
X)をセットし(ステップ262)、(MSX,ME
X)に(MSX,EX)をセットし(ステップ26
4)、そして(NMSX,NMEX)に次のマスクエッ
ジをセットして(ステップ266)、図6のメインルー
チンへリターンし後述するステップ134へ進む。
【0066】上記ステップ126で否定判定された場合
はステップ130へ進み、MEXがSXより小さいか否
かを判定する。図5(F)に示すようにMEXがSXよ
り小さい場合はステップ132へ進み、図11のサブル
ーチンFを実行する。サブルーチンFでは(SX,E
X)を新規図形エッジとして追加し(ステップ28
2)、ここで(MEX+1)がSXに等しい場合は元図
形エッジとマスクエッジとを1つのマスクエッジとして
まとめることができるので(MSX,MEX)に(MS
X,EX)をセットし(ステップ288)、(MEX+
1)がSXに等しくない場合はマスクエッジに(SX,
EX)を追加する(ステップ286)。そして、(NM
SX,NMEX)に次のマスクエッジをセットして(ス
テップ290)、図6のメインルーチンへリターンしス
テップ134へ進む。ステップ134では(MSX,M
EX)をマスクエッジとして登録した後に、(MSX,
MEX)に(NMSX,NMEX)をセットして次のス
テップ136へ進む。
【0067】ステップ136では(SX,EX)が空デ
ータである(ラインYにおいて次の元図形エッジが無
い)か否かを、次のステップ140では(MSX,ME
X)が空データである(ラインYにおいて次のマスクエ
ッジが無い)か否かを、それぞれ判定する。ここで、
(SX,EX)と(MSX,MEX)が共に空データで
ない場合は、未だ比較すべきデータが残っているので、
ステップ108へ戻る。
【0068】ステップ136で(SX,EX)が空デー
タである場合は、ラインYにおいて次の元図形エッジが
無いので、ステップ138へ進み、当該時点のマスクの
エッジリストをリスト記憶部11に記憶する。但し、マ
スクのエッジリストは輪郭に関するデータのみであり、
データ量が非常に少ないので、使用されるリスト記憶部
11の領域は少なくて済む。一方、ステップ140で
(MSX,MEX)が空データである場合は、ラインY
において次のマスクエッジが無いので、ステップ142
へ進み、残りの元図形エッジをマスクエッジとして追加
した上で、当該時点のマスクのエッジリストをリスト記
憶部11に記憶する。上記と同様に、マスクのエッジリ
ストは輪郭に関するデータのみであり、データ量が非常
に少ないので、使用されるリスト記憶部11の領域は少
なくて済む。
【0069】上記のステップ138、142の処理を実
行後はステップ144でラインYのY座標がYE に等し
いか否かを判定する。処理対象の1つの図形に対して処
理が完了していないときはラインYのY座標がYE より
も小さいので、ステップ144で否定判定され、ステッ
プ146でラインYのY座標を1つインクリメントす
る。その後、ステップ106へ戻り、新たなラインYを
対象としてステップ106〜142の処理を実行する。
【0070】このようにして処理対象の1つの図形がス
キャンライン毎に処理され、元図形エッジのエッジリス
トが新規図形エッジのエッジリストによって更新され
る。Y座標がYE に等しいラインYを対象とした処理が
完了し1つの図形に対する処理が完了すると、ステップ
144で肯定判定されステップ147へ進み、新規図形
エッジのエッジリストによって、リスト記憶部11に記
憶された元図形のエッジリストを更新する。そして、ス
テップ148で、全ての図形に対して処理が完了したか
否かを判定する。
【0071】処理を行っていない図形が残っている場合
はステップ102へ戻り、新たな図形を対象としてステ
ップ102〜147の処理を実行する。そして、全ての
図形に対して処理が完了した時点で重畳図形処理を終了
する。
【0072】(第1実施形態の作用)次に、第1実施形
態の作用として、上記重畳図形処理により生成されたエ
ッジリストを所定の方向に沿って走査することにより、
該エッジリストから中間コード画像データを各オブジェ
クト毎に再作成する中間コード画像データ再作成処理を
説明する。この中間コード画像データ再作成処理は、プ
リント出力時に上位処理部12により実行される。
【0073】図12のステップ302では、リスト記憶
部11に記憶されたエッジリストを読み出し、そのうち
1つのエッジリストを処理対象のエッジリストとする。
次のステップ304、306では、対象のエッジリスト
で表されるオブジェクトがイメージであるか否か、カラ
ーグラフィックスであるか否かを、それぞれ判定し、対
象のオブジェクトがイメージであればステップ308
へ、対象のオブジェクトがカラーグラフィックスであれ
ばステップ312へ、対象のオブジェクトがそれ以外
(例えばフォントや白黒のグラフィックス)であればス
テップ310へ、それぞれ進む。
【0074】このうちステップ308では、図13に示
す中間コード画像データ再生成処理1のサブルーチンが
実行される。この中間コード画像データ再生成処理1
は、エッジリストを主走査線方向(2次元座標系におけ
るX軸方向)に沿って走査することにより、該エッジリ
ストから中間コード画像データを再作成するものであ
る。
【0075】具体的には、図13のステップ332では
対象のスキャンライン(最初は先頭のスキャンライン)
に未処理のエッジリストが存在するか否かを判定し、未
処理のエッジリストが存在すれば、当該スキャンライン
上のエッジリストに対して主走査方向に沿った順番で、
エッジリストのスキャン(ステップ334)及びスキャ
ンで得られた情報に基づく中間コード画像データの再生
成(ステップ336)を実行していく。
【0076】そして、当該スキャンライン上の全エッジ
リストに対して上記処理が終了すると、ステップ340
で対象のスキャンラインとして次のスキャンラインをセ
ットし、該セットした対象のスキャンラインに対してス
テップ332〜336の処理を実行する。
【0077】このようにして各スキャンラインに対して
ステップ332〜336の処理を実行することにより、
例えば図16(A)に示す、、・・・の順番で、
エッジリストが主走査方向に沿って走査され中間コード
画像データが再生成される。
【0078】このようにオブジェクトの種類がイメージ
である場合は、その中間コード画像データは、単にクリ
ップ情報を持つのみで、イメージの実体は別のメモリ領
域にそのままの状態あるいは圧縮された状態で保持され
ており、そのため展開処理においてイメージの実体が保
持されている領域からアドレス順に読み出し、主走査線
方向および副走査線方向にソーティングされた中間コー
ド画像データ(=エッジリストの集合体)でクリップを
行いメモリに書き込む必要があるため、上記のように主
走査線方向を走査方向としてエッジリストを走査するこ
とが望ましい。
【0079】一方、オブジェクトがフォントや白黒のグ
ラフィックスの場合に進むステップ310では、図14
に示す中間コード画像データ再生成処理2のサブルーチ
ンが実行される。この中間コード画像データ再生成処理
2は、走査対象のエッジリストと次の走査対象となりう
るエッジリストとの距離に応じて、走査方向を主走査線
方向又は副走査線方向(2次元座標系におけるY軸方
向)に切り替えてエッジリストを走査することにより、
該エッジリストから中間コード画像データを再作成する
ものである。
【0080】具体的には、図14のステップ352、3
54で最初のエッジリストに対するスキャンとスキャン
で得られた情報に基づく中間コード画像データの再生成
とを実行し、次のステップ356で未処理のエッジリス
トが2つ以上存在するか否かを判定する。
【0081】ここで、未処理のエッジリストが2つ以上
存在しておれば、ステップ358へ進み、主走査方向に
みて次の走査対象となりうるエッジリストとの距離と、
副走査方向にみて次の走査対象となりうるエッジリスト
との距離とを比較し、次のステップ360では比較結果
により距離の短い方のエッジリストへ向かう方向を走査
方向として設定する。そして、次のステップ362では
上記設定した走査方向にみて次の未処理のエッジリスト
を対象のエッジリストとする。さらに、次のステップ3
64、366では対象のエッジリストに対するスキャン
とスキャンで得られた情報に基づく中間コード画像デー
タの再生成とを実行する。
【0082】このようにして走査対象のエッジリストと
次の走査対象となりうるエッジリストとの距離に応じ
て、走査方向を主走査線方向又は副走査線方向に切り替
えてエッジリストを走査し中間コード画像データを再生
成していく。
【0083】これにより、例えば図16(B)に示す
、、・・・の順番で、エッジリストが走査され中
間コード画像データが再生成される。
【0084】ところで、上記ステップ358〜362で
は、以下のように処理しても良い。例えば、エッジリス
トを表現する中間コード画像データフォーマットの一つ
を、図17(B)に示すように、2桁のデータタイプ、
3桁のランレングス、1桁のY方向の差分、2桁のX方
向の差分により定義する。
【0085】ここで、図17(A)において、現在のス
キャン対象のエッジリストをとすると、次のスキャン
対象としてとの2つのエッジリストが存在する。こ
こで、エッジリストとエッジリストのX方向の差分
DX’が3以下(=差分DX’が2桁以内)の場合に
は、次のスキャン対象はエッジリストとする。一方、
エッジリストのX方向の差分DX’が3より大きく
(=差分DX’が3桁以上)、エッジリストのX方向
の差分DX”が3以下(=差分DX”が2桁以内)かつ
Y方向の差分DY’が1以下(=差分DY’が1桁以
内)の場合には、次のスキャン対象をエッジリストと
する。これにより、中間コード画像データを記憶するた
めのメモリ使用量を削減することができる。
【0086】上記ステップ358〜366の処理は未処
理のエッジリストが1つになるまで継続され、未処理の
エッジリストが1つになると、ステップ368、370
でその最後のエッジリストに対するスキャンとスキャン
で得られた情報に基づく中間コード画像データの再生成
とを実行して、処理を終了する。
【0087】このようにオブジェクトの種類がフォント
や白黒のグラフィックスである場合は、重なりを除去し
た後の形状がかなり複雑な形状になる可能性があるの
で、次の走査対象となりうるエッジリストとの距離に応
じて走査方向をエッジリスト毎に主走査線方向又は副走
査線方向に切り替えてエッジリストを走査することが望
ましい。より距離が短いエッジリストへ向かう方向を、
走査方向として走査することにより、エッジリストにお
ける隣接するエッジリストまでの距離情報のデータ量を
少なくすることができるので、記憶するためのメモリサ
イズを小さくしメモリを節約することができる。
【0088】さらに、オブジェクトがカラーグラフィッ
クスの場合に進むステップ312では、図15に示す中
間コード画像データ再生成処理3のサブルーチンが実行
される。この中間コード画像データ再生成処理3は、エ
ッジリストを副走査方向に沿って走査することにより、
該エッジリストから中間コード画像データを再作成する
ものである。
【0089】具体的には、図15のステップ382では
対象のスキャンライン(最初は先頭のスキャンライン)
に未処理のエッジリストが存在するか否かを判定し、未
処理のエッジリストが存在すれば、主走査方向にみて当
該スキャンライン上の最初のエッジリストに対して、エ
ッジリストのスキャン(ステップ384)及びスキャン
で得られた情報に基づく中間コード画像データの再生成
(ステップ386)を実行する。
【0090】そして、次のステップ388で対象のスキ
ャンラインが最後のスキャンラインであるか否かを判定
し、最後のスキャンラインでない場合はステップ390
で対象のスキャンラインとして次のスキャンラインをセ
ットした後、ステップ382へ戻り、ステップ382〜
386の処理を実行する。但し、対象のスキャンライン
に未処理のエッジリストが存在しない場合は、ステップ
394で全スキャンラインに対し処理済でないことを確
認した後、ステップ396で対象のスキャンラインとし
て次のスキャンラインをセットし、ステップ382へ戻
る。
【0091】このようにして全スキャンラインにおいて
最初の未処理のエッジリストに対してのみ、エッジリス
トのスキャン(ステップ384)及びスキャンで得られ
た情報に基づく中間コード画像データの再生成(ステッ
プ386)を実行していく。これにより、エッジリスト
を副走査方向に沿って走査することになる。
【0092】さらに、各スキャンラインにおいて最初の
未処理のエッジリストに対する処理を完了した後は、ス
テップ392で対象のスキャンラインとして最初のスキ
ャンラインをセットしてステップ382へ戻り、各スキ
ャンラインにおいて2番目の未処理のエッジリストに対
する処理を実行していく。
【0093】このようにして、例えば図16(C)に示
す、、・・・の順番で、エッジリストが副走査方
向に沿って走査され中間コード画像データが再生成され
る。
【0094】このようにオブジェクトの種類がカラーグ
ラフィックスである場合は、白黒のグラフィックスの場
合と異なり、他のオブジェクトとの重なりを除去しても
矩形になる確率が高いので、副走査線方向を走査方向と
してエッジリストを走査すれば、該エッジリストを例え
ば矩形のディスプレイリストや連続性を表すファンクシ
ョンを用いた符号等の、データ量が少ない中間コード画
像データとして再作成することができ、記憶するための
メモリサイズを小さくしメモリを節約することができ
る。
【0095】図12の主ルーチンでは、各オブジェクト
の種類に応じて、以上説明した中間コード画像データ再
生成処理1〜3の何れか1つの処理が各オブジェクト毎
に実行されていく。そして、全オブジェクトに対し中間
コード画像データ再生成処理が完了し、他に重畳図形処
理が必要なバンドが無い場合(図12のステップ315
で否定判定された場合)には、ステップ316へ進み、
ステップ308、310、312で再生成された中間コ
ード画像データをラスタデータへ変換し、次のステップ
318でラスタデータをプリント出力する。なお、ステ
ップ315で他に重畳図形処理が必要なバンドが有る場
合は、ステップ302へ戻り、当該バンドに対してステ
ップ302以降の処理を実行する。
【0096】以上のような第1実施形態によれば、オブ
ジェクトの種類に応じて、走査方向を主走査線方向とす
るモード、走査方向を副走査線方向とするモード、走査
方向を所定の切替条件に応じてエッジリスト毎に主走査
線方向又は副走査線方向に切り替えるモードの何れか1
つのモードに切り替えて、更新された各オブジェクト毎
のエッジリストを走査して、該エッジリストから中間コ
ード画像データを各オブジェクト毎に再作成することに
より、中間コード画像データのデータ量を削減できるの
で、メモリ使用量を削減し且つ出力時におけるラスタデ
ータへの展開処理速度を向上させることができる。
【0097】ところで、前述した中間コード画像データ
再生成処理3では、処理の高速化を図るため、図18
(A)、(B)に示す各スキャンライン毎のエッジリス
トの数を保持するバンド幅のカウントテーブル70と、
各スキャンラインの先頭のエッジリストへのポインタを
保持するバンド幅のポインタテーブル80とを採用して
も良い。
【0098】図18(A)には1回分の副走査線方向の
スキャンを行う前のカウントテーブル70、ポインタテ
ーブル80の内容を、図18(B)には1回分の副走査
線方向のスキャンを行った後のカウントテーブル70、
ポインタテーブル80の内容を、それぞれ示している。
【0099】まず、カウントテーブル70を参照して0
でないスキャンラインを求め、カウントテーブル70の
内容が0でない場合には、そのスキャンラインのポイン
タテーブル80を参照し、先頭のエッジリストへのポイ
ンタを得る。
【0100】なお、図18(A)のライン2においてポ
インタテーブル80のアドレスはマスクへのポインタと
なっているが、これはポインタテーブル80が指し示す
マスクとマスクが指し示すエッジリストとが隣接してい
るためであり、各エッジリストのスキャン後において不
要になったエッジリストは次のオブジェクトに対しマス
クに変換するが、前後のマスクと隣接する場合において
は一つのマスクにまとめるためによる。
【0101】スキャンを終えたエッジリストはマスクに
変換され、カウントテーブル70の値を1つ減算し、減
算した結果が0でない場合には、同一スキャンライン上
の次のエッジリストへのポインタを求め、このポインタ
値によってポインタテーブル80の値を更新する(ただ
し、エッジリストの一つ前のマスクとエッジリストとが
隣接する場合には、該一つ前のマスクへのポインタをポ
インタテーブル80に設定する)。
【0102】同様に、次のスキャンラインに対し処理を
行い、最後のスキャンラインまで処理を繰り返すことに
より、1回分の副走査線方向のスキャン処理が完了す
る。
【0103】なお、重畳図形処理の対象オブジェクトを
構成するエッジリストが存在するスキャンラインの最小
値と最大値(図18(A)、(B)に示す有効スキャン
ライン幅)を保持することにより、その範囲のスキャン
ラインのカウントテーブル70にのみアクセスを行えば
良いので、さらに高速なスキャン処理が可能となる。
【0104】また、上記実施形態では、重畳図形処理と
して、特願平8−276652号にて提案した重畳図形
処理を採用した例を示したが、これに限定されるもので
はなく、その他の重畳図形処理を採用しても良い。
【0105】[第2実施形態]次に、特許請求の範囲に
記載した請求項4〜7の発明に対応する第2実施形態を
説明する。なお、第2実施形態における画像処理装置の
構成は、第1実施形態と同様であるので、説明を省略す
る。
【0106】(オブジェクトの細分化についての説明)
図19には、一つのオブジェクト50に複数のオブジェ
クト60が上書きされた場合を示すが、ここで、上層の
オブジェクト60と下層のオブジェクト50がともに矩
形のグラフィックスの場合に(ただし、色が異なる)、
矩形の中間コード画像データフォーマットで表現した場
合(高さと幅がともに上記矩形の中間コード画像データ
フォーマットの範囲内とする)、下層のグラフィックス
は1個の矩形の中間コード画像データ、上層のグラフィ
ックスは23個の矩形の中間コード画像データで表現さ
れる(合計24個)。
【0107】次に、上記のグラフィックスが存在するバ
ンドに対し、第1実施形態で説明した重畳図形処理が実
行された場合を考える。
【0108】図20には下層のオブジェクト50に対し
て、前述した重畳図形処理が実行された直後の状態を示
す。この図20より明らかなように、重畳図形処理の対
象である下層のオブジェクトより上層のオブジェクトは
マスク62となり、オブジェクトにおけるマスク62と
重ならない部分が重なり除去後の下層のオブジェクト5
2となる。これにより、上層の23個のオブジェクトと
下層の24個のオブジェクトとで合計47個の矩形の中
間コード画像データとなり、重畳図形処理により中間コ
ード画像データのメモリ使用量が約2倍に増加すること
になる。
【0109】但し、展開処理での重なり部分の無駄なメ
モリへの書き込みが減少するので、処理時間が長くなる
ことはないが、中間コード画像データのメモリ使用量が
増加するという問題は残る。
【0110】しかし、もし下層のオブジェクトがイメー
ジの場合には、上層のオブジェクトにより細分化された
部分を矩形の中間コード画像データで表現することがで
きないので(クリップ情報である中間コード画像データ
が主走査線方向および副走査線方向にソーティングされ
ていないため、イメージをアドレス順に高速に呼び出す
ことができず、飛び飛びのアドレスで読み出すか、アド
レス順に矩形の中間コード画像データ分読み出す必要が
ある)、エッジリストの集合体の中間コード画像データ
となる。
【0111】ここで、エッジリストの個数は、主走査線
方向に24個、副走査線方向にはそのオブジェクトの高
さに等しいスキャンライン数分となる。例えば、高さを
40スキャンライン分とすると、エッジリストの総数は
960個(=24×40)となり、重畳図形処理前は1
個の矩形の中間コード画像データで表現されていたもの
が、重畳図形処理後においては960個のエッジリスト
を持つ中間コード画像テータとなり、これにより急激に
メモリ使用量が増大する。また、イメージをアドレス順
に高速に呼び出すことは可能であるが、最終的には一つ
一つのエッジリストでクリップされたイメージをメモリ
に書き込むことになるので展開処理時間が遅くなる。
【0112】そこで、本第2実施形態では、オブジェク
トの種類が重畳図形処理に適さない種類(具体的にはイ
メージ)である場合には、該オブジェクトに対する重な
り処理を行わないよう制御する。以下の作用にて、その
ような制御処理を説明する。
【0113】(第2実施形態の作用)以下、オブジェク
トの種類がイメージである場合のみ、該オブジェクトに
対する重なり処理を行わないよう制御する処理を図23
のフローチャートに沿って説明する。
【0114】図23のステップ402において処理範囲
として、1ページを副走査方向に沿って複数に分割した
バンドを設定し、次のステップ404で対象オブジェク
トのエッジリストを読み出し該オブジェクトのY座標の
範囲(YS 〜YE )を検知する。そして、次のステップ
406では、設定したバンド内に対象オブジェクトが存
在するか否かを判定する。
【0115】ここで、バンド内に対象オブジェクトが存
在する場合、ステップ408へ進み、対象オブジェクト
がイメージであるか否かを判定する。ここで、対象オブ
ジェクトがイメージ以外である場合は、ステップ410
へ進み、前述した重畳図形処理を実行する。一方、対象
オブジェクトがイメージ以外である場合は、ステップ4
12へ進み、前述した重畳図形処理と同様の要領でマス
クエッジリストを作成しリスト記憶部11に保存する。
即ち、図21に示すマスク64に対応するマスクエッジ
リストを生成し保存する。
【0116】そして、次のステップ414でリスト記憶
部11内の作業用の保持ブロックに中間コード画像デー
タ(重なりを除去していない中間コード画像データ)を
一時的に保持する。
【0117】なお、イメージについてはもとの中間コー
ド画像データの形態を保持しているので、その中間コー
ド画像データをバンドに対応した中間コード画像データ
保持ブロックの先頭に保持することにより、イメージが
イメージ以外のオブジェクトよりも先に描画されるの
で、プリント出力される画像におけるオブジェクトの上
下関係は保証される。換言すれば、イメージをイメージ
以外のオブジェクトよりも後に描画して、イメージより
も上層にあるべきオブジェクトがイメージにより上書き
されてしまうことを未然に防ぐことができる。
【0118】以後、バンド内に存在する各対象オブジェ
クトに対して、ステップ404〜414の処理を実行し
ていく。そして、バンド内に存在する全対象オブジェク
トに対して処理が完了すると、ステップ418へ進み、
オブジェクトがイメージの場合(即ち、重畳図形処理を
行いたくないオブジェクトの場合)のみ、図22に示す
ように描画順を入れ替えて且つ図24(B)に示すよう
にイメージ以外の中間コード画像データ98よりも先
に、作業用の保持ブロックに保持されたイメージの中間
コード画像データ96をリスト記憶部11内の正規の保
持ブロックに保持する(なお、イメージの中間コード画
像データに対し重畳図形処理を行った場合、図24
(A)に示すようにイメージ以外の中間コード画像デー
タ98の方が、重畳図形処理済のイメージの中間コード
画像データ96よりも先に保持されることがあった)。
【0119】以後、ステップ402〜418の処理を全
てのバンドのオブジェクトに対して処理が完了した時点
で、図23の処理を終了する。
【0120】このように、重畳図形処理を実行すること
が適切でないオブジェクト(イメージ)については重畳
図形処理を行わないよう制御するので、オブジェクトの
細分化による中間コード画像データのメモリ使用量の増
加および展開処理速度の低下を防止することができる。
【0121】また、重なりを除去していないイメージの
中間コード画像データについては、作業用の保持ブロッ
クに一時的に保持し、バンド内に存在する全対象オブジ
ェクトに対して処理が完了した後、図22に示すよう
に、描画順を入れ替えて、該作業用の保持ブロックに保
持された中間コード画像データを正規の保持ブロックに
保持するので、仮にイメージが1つのバンド内に複数存
在する場合でも、下層側のイメージによって上層側のイ
メージが上書きされてしまうことはなく、描画順を正常
に保つことができる。
【0122】なお、重なり処理を行わないオブジェクト
(例えば、上記ではイメージ)が複数存在する場合に
は、それらのオブジェクト間でのみ重畳図形処理を行う
ようにしても良い。このように重なり処理を行わなかっ
たオブジェクト間での重畳図形処理が正常に終了した場
合には、図22に示すような描画順を入れ替えた上での
中間コード画像データの再書き込み処理は不要になり、
処理効率を向上させることができる。
【0123】また、重畳図形処理を行わない条件として
は、オブジェクトの種類以外にも、対象オブジェクトと
他のオブジェクトとの重なり具合を挙げることができ
る。例えば、重なり具合が図19のような場合には、各
エッジリストがマスクにより切断される回数をカウント
し、そのカウント値がある値以上の場合には細分化が発
生していると見なし、そのオブジェクトの重なり処理は
行わないように制御することが望ましい。
【0124】このように他のオブジェクトとの重なり具
合が所定レベル以上のオブジェクトについて重畳図形処
理を禁止することにより、オブジェクトの細分化による
中間コード画像データのメモリ使用量の増加および展開
処理速度の低下を未然に防止することができる。
【0125】
【発明の効果】以上説明したように、請求項1〜4記載
の発明によれば、更新されたエッジリストを適切な走査
方向に沿って走査することで中間コード画像データを再
作成するので、中間コード画像データのデータ量を削減
でき、メモリ使用量を削減し且つ出力時におけるラスタ
データへの展開処理速度を向上させることができる。
【0126】また、請求項5記載の発明によれば、重畳
図形処理を実行することが適切でないオブジェクトにつ
いては重畳図形処理を禁止するので、オブジェクトの細
分化による中間コード画像データのメモリ使用量の増加
および展開処理速度の低下を防止することができる。
【0127】また、請求項6記載の発明によれば、他の
オブジェクトとの重なり具合が所定レベル以上のオブジ
ェクトについては重畳図形処理を禁止するので、オブジ
ェクトの細分化による中間コード画像データのメモリ使
用量の増加および展開処理速度の低下を未然に防止する
ことができる。
【0128】また、請求項7記載の発明によれば、重畳
図形処理が禁止されるオブジェクトが複数存在する場合
には、重畳図形処理が禁止されるオブジェクト間での
み、重畳図形処理を実行するよう制御するので、中間コ
ード画像データを一時的に作業用メモリに記憶した後、
描画順を入れ替えて中間コード画像データを正規のメモ
リに記憶し直す必要が無くなり、処理効率を向上させる
ことができる。また、特にオブジェクトがイメージの場
合には、クリップ情報を保持する中間コード画像データ
の削減のみならず、ソースデータの削減も可能となる。
【図面の簡単な説明】
【図1】第1、第2実施形態における画像処理装置の機
能ブロック図である。
【図2】重畳図形処理の概要を示す図である。
【図3】複数の図形(オブジェクト)が重ね書きされた
描画領域を示す図である。
【図4】エッジリスト及びマスクの構造を示す図であ
る。
【図5】マスクエッジと元図形エッジとで座標を比較す
る処理を説明するための図であり、(A)は(MSX>
EX)である場合の処理を、(B)は(MSX≧SX)
且つ(MEX>EX)且つ(MSX≦EX)である場合
の処理を、(C)は(MSX≦SX)且つ(MEX≧E
X)である場合の処理を、(D)は(MSX≧SX)且
つ(MEX≦EX)である場合の処理を、(E)は(M
SX≦SX)且つ(MEX<EX)且つ(MEX≧S
X)である場合の処理を、(F)は(MEX<SX)で
ある場合の処理を、それぞれ説明するための図である。
【図6】重畳図形処理のメインルーチンを示す流れ図で
ある。
【図7】サブルーチンAを示す流れ図である。
【図8】サブルーチンBを示す流れ図である。
【図9】サブルーチンDを示す流れ図である。
【図10】サブルーチンEを示す流れ図である。
【図11】サブルーチンFを示す流れ図である。
【図12】第1実施形態におけるメインルーチンを示す
流れ図である。
【図13】中間コード画像データ再生成処理1のサブル
ーチンを示す流れ図である。
【図14】中間コード画像データ再生成処理2のサブル
ーチンを示す流れ図である。
【図15】中間コード画像データ再生成処理3のサブル
ーチンを示す流れ図である。
【図16】(A)は中間コード画像データ再生成処理1
におけるエッジリストの走査順序を示す図であり、
(B)は中間コード画像データ再生成処理2におけるエ
ッジリストの走査順序を示す図であり、(C)は中間コ
ード画像データ再生成処理3におけるエッジリストの走
査順序を示す図である。
【図17】(A)は中間コード画像データ再生成処理2
においてエッジリスト間の距離に基づいてエッジリスト
の走査方向を決める処理を説明するための図であり、
(B)はエッジリストを表現する中間コード画像データ
フォーマットの一例を示す図である。
【図18】中間コード画像データ再生成処理3における
エッジリストのスキャンを高速に行うために使用するカ
ウントテーブル及びポインタテーブルを示す図であり、
(A)はスキャンする前のカウントテーブル及びポイン
タテーブルを示す図であり、(B)は1回スキャンした
後のカウントテーブル及びポインタテーブルを示す図で
ある。
【図19】一つのオブジェクト上に多数のオブジェクト
が上書きされた状態を示す図である。
【図20】重畳図形処理により下層のオブジェクトが細
分化された状態を示す図である。
【図21】重畳図形処理を行いたくないオブジェクト
(イメージ)がマスク化された状態を示す図である。
【図22】重畳図形処理を行いたくないオブジェクト
(イメージ)の中間コード画像データが複数存在する場
合に、該複数の中間コード画像データを保持する方法を
示す図である。
【図23】第2実施形態におけるメインルーチンを示す
流れ図である。
【図24】(A)は従来の中間コード画像データの保持
方法を示す図であり、(B)は第2実施形態における重
畳図形処理を行いたくないオブジェクト(イメージ)の
中間コード画像データの保持方法を示す図である。
【符号の説明】
10 画像処理装置 11 リスト記憶部 12 上位処理部 14 重畳図形処理部 16 展開部 26 バンドバッファ 30 プリンタエンジン

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 所定の描画領域に所定の描画順序に従っ
    て層状に描画される複数のオブジェクトの各々を表した
    ページ記述データを中間コード画像データに変換する変
    換手段と、 変換された各オブジェクト毎の中間コード画像データを
    メモリに記憶する記憶手段と、 前記各オブジェクト毎の中間コード画像データにより表
    される画像領域の重なりが無くなるように、中間コード
    画像データに対応した所定の走査ライン毎のエッジリス
    トを、オブジェクトの描画順序を遡って各オブジェクト
    毎に作成し、作成された各オブジェクト毎のエッジリス
    トによって前記記憶された各オブジェクト毎の中間コー
    ド画像データを更新する更新手段と、 所定の条件に応じて走査方向を切り替えて、前記更新手
    段により更新された各オブジェクト毎のエッジリストを
    走査することにより、該エッジリストから中間コード画
    像データを各オブジェクト毎に再作成する再作成手段
    と、 を有する画像処理装置。
  2. 【請求項2】 前記所定の条件は、オブジェクトの種類
    であることを特徴とする請求項1記載の画像処理装置。
  3. 【請求項3】 前記再作成手段は、前記所定の条件に応
    じて、走査方向を主走査線方向とするモード、走査方向
    を副走査線方向とするモード、走査方向を所定の切替条
    件に応じてエッジリスト毎に主走査線方向又は副走査線
    方向に切り替えるモードの何れか1つのモードに切り替
    えることを特徴とする請求項1又は請求項2に記載の画
    像処理装置。
  4. 【請求項4】 前記所定の切替条件は、走査対象のエッ
    ジリストと次の走査対象となりうるエッジリストとの距
    離であることを特徴とする請求項3記載の画像処理装
    置。
  5. 【請求項5】 所定の描画領域に所定の描画順序に従っ
    て層状に描画される複数のオブジェクトの各々を表した
    ページ記述データを中間コード画像データに変換する変
    換手段と、 変換された各オブジェクト毎の中間コード画像データを
    メモリに記憶する記憶手段と、 前記各オブジェクト毎の中間コード画像データにより表
    される画像領域の重なりが無くなるように、中間コード
    画像データに対応した所定の走査ライン毎のエッジリス
    トを、オブジェクトの描画順序を遡って各オブジェクト
    毎に作成し、作成された各オブジェクト毎のエッジリス
    トによって前記記憶された各オブジェクト毎の中間コー
    ド画像データを更新する重畳図形処理を実行する図形処
    理手段と、 オブジェクトの種類が特定の種類である場合に、該オブ
    ジェクトに対する重畳図形処理を禁止するよう制御する
    制御手段と、 を有する画像処理装置。
  6. 【請求項6】 所定の描画領域に所定の描画順序に従っ
    て層状に描画される複数のオブジェクトの各々を表した
    ページ記述データを中間コード画像データに変換する変
    換手段と、 変換された各オブジェクト毎の中間コード画像データを
    メモリに記憶する記憶手段と、 前記各オブジェクト毎の中間コード画像データにより表
    される画像領域の重なりが無くなるように、中間コード
    画像データに対応した所定の走査ライン毎のエッジリス
    トを、オブジェクトの描画順序を遡って各オブジェクト
    毎に作成し、作成された各オブジェクト毎のエッジリス
    トによって前記記憶された各オブジェクト毎の中間コー
    ド画像データを更新する重畳図形処理を実行する図形処
    理手段と、 複数のオブジェクト間の重なり具合が所定レベル以上で
    ある場合に、前記複数のオブジェクトに対する重畳図形
    処理を禁止するよう制御する制御手段と、 を有する画像処理装置。
  7. 【請求項7】 前記制御手段は、重畳図形処理が禁止さ
    れるオブジェクトが複数存在する場合、該重畳図形処理
    が禁止されるオブジェクト間でのみ、前記図形処理手段
    により重畳図形処理を実行するよう制御することを特徴
    とする請求項5又は請求項6に記載の画像処理装置。
JP23154197A 1997-08-27 1997-08-27 画像処理装置 Expired - Fee Related JP3362641B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23154197A JP3362641B2 (ja) 1997-08-27 1997-08-27 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23154197A JP3362641B2 (ja) 1997-08-27 1997-08-27 画像処理装置

Publications (2)

Publication Number Publication Date
JPH1173516A true JPH1173516A (ja) 1999-03-16
JP3362641B2 JP3362641B2 (ja) 2003-01-07

Family

ID=16925123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23154197A Expired - Fee Related JP3362641B2 (ja) 1997-08-27 1997-08-27 画像処理装置

Country Status (1)

Country Link
JP (1) JP3362641B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009897A (ja) * 2006-06-30 2008-01-17 Mitsubishi Electric Corp ベクトル図形描画装置及びそのプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009897A (ja) * 2006-06-30 2008-01-17 Mitsubishi Electric Corp ベクトル図形描画装置及びそのプログラム

Also Published As

Publication number Publication date
JP3362641B2 (ja) 2003-01-07

Similar Documents

Publication Publication Date Title
EP1612737B1 (en) Method of rendering graphic objects
US8723884B2 (en) Scan converting a set of vector edges to a set of pixel aligned edges
JPH0345076A (ja) 画像データの処理方式
JP2610993B2 (ja) 情報処理装置及び方法
JPH09185721A (ja) 画像形成装置
US5537131A (en) Character generating method and apparatus
JP4022710B2 (ja) 描画処理装置
JP3362641B2 (ja) 画像処理装置
JP3391228B2 (ja) 画像処理方法及び画像処理装置
JPH10337932A (ja) 印刷処理装置
JP2002334341A (ja) 画像処理装置
JPH0729021A (ja) 画像出力装置
JPH09171564A (ja) 描画装置
JP3450961B2 (ja) 印刷装置及びその制御方法
JP3266905B2 (ja) 図形処理装置
JP4125245B2 (ja) 文書表示方法および文書表示装置
JP3843794B2 (ja) 図形処理装置
JP2002024840A (ja) 描画処理装置
JPH10151815A (ja) 印刷処理装置
JP2000066658A (ja) 画像処理装置および記録媒体
JPH08254973A (ja) 文字出力装置およびその方法
JPH09300769A (ja) 印刷装置及びデータ登録方法及び制御プログラムを記憶した記憶媒体
JP3618834B2 (ja) 情報処理装置及びメモリ制御方法
JP3591096B2 (ja) ページプリンタの制御方法
JPH08241308A (ja) 画像処理方法及びその装置

Legal Events

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

Free format text: PAYMENT UNTIL: 20071025

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20081025

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091025

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101025

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111025

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees