JPH10149148A - 画像処理装置 - Google Patents

画像処理装置

Info

Publication number
JPH10149148A
JPH10149148A JP8310952A JP31095296A JPH10149148A JP H10149148 A JPH10149148 A JP H10149148A JP 8310952 A JP8310952 A JP 8310952A JP 31095296 A JP31095296 A JP 31095296A JP H10149148 A JPH10149148 A JP H10149148A
Authority
JP
Japan
Prior art keywords
character
command
characters
overlapping
overlap
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP8310952A
Other languages
English (en)
Inventor
Yozo Kashima
洋三 鹿島
Naoyuki Iwabuchi
直行 岩渕
Masahiko Harada
政彦 原田
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 JP8310952A priority Critical patent/JPH10149148A/ja
Publication of JPH10149148A publication Critical patent/JPH10149148A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Controls And Circuits For Display Device (AREA)
  • Record Information Processing For Printing (AREA)
  • Document Processing Apparatus (AREA)

Abstract

(57)【要約】 【課題】 文字に重なりがあっても、文字を描画するた
めの手段を待機させることなく、描画の順序を保証す
る。 【解決手段】 文字の描画を指示する文字描画命令を所
定の文字数分だけ格納する命令バッファ201と、格納
された命令により描画される文字が重なるか否かを検出
する重なり命令検出部203と、重なると検出された場
合に、当該文字における非重複部分の描画を指示する重
複部分描画命令を生成する重複部分描画命令生成手段2
04と、同じく重なると検出された場合に、重複部分の
描画と描画の順序とを指示する重複部分描画命令を生成
する重複部分描画命令生成部205とを有し、これらの
各命令に基づいて文字を展開する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば、PDL
(ページ記述言語)によって記述されたコード画像デー
タを入力し、これを解釈してビットマップ形式の画像デ
ータに展開する画像処理装置において、文字等を形成す
るための手段を複数を同時に並列に動作させたとして
も、これら手段を待機させることなく、正しい順序で文
字を描画することが可能な画像処理装置に関する。
【0002】
【従来の技術】PDLで記述されたコード画像データを
用いると、写真などのイメージデータや、線図、表、文
字など(これらを総称して単にオブジェクトと呼ぶこと
にする)を混在した画像を、異なった機種の端末におい
て共通の出力装置で出力したり、同じ形式のデータを異
なる出力装置において出力することが可能となる。この
ため、PDLは、最近では画像出力を行なう場合に広く
用いられている。このようなコード画像データによって
示される画像をページプリンタによりプリントする場
合、周知のように、当該コード画像データの内容を解釈
して、プリンタで要求されるビットマップデータに展開
し、フレームバッファに一旦格納した後、当該プリンタ
の出力動作(主走査動作と副走査動作)に同期して供給
する必要がある。
【0003】ところで、ビットマップデータにしたがっ
て画像を形成するプリンタエンジンそのものは、近年、
非常に高速化されており、例えば、カラーページプリン
タでは毎分35〜40ページ程度で印刷可能なのものが登場
しつつある。しかし、現状では、このようなページプリ
ンタの印刷能力を十分に活かしているとはいえない。こ
の最も大きな原因は、PDLで記述されたコード画像デ
ータをビットマップデータに展開する処理速度が、プリ
ンタの出力動作に追従できないほど低速であるためであ
る。このようにビットマップデータに展開する処理速度
が低速である理由の1つとして、文字を展開する能力が
低いことが挙げられる。DTP(デスク・トップ・パブ
リッシング)の分野では、一般的に、文字についてベク
トルフォントデータ(アウトラインフォントとか、スケ
ーラブルフォントなどと呼ばれることもある)が使用さ
れる。これは、ベクトルフォントデータを用いると、任
意の大きさ(ポイント数)で、任意の解像度で文字を描
画することができるため、高画質が求められるDTPの
分野に最適であるためである。しかし、ベクトルフォン
トデータを、実際に使用する場合、所望のポイント数お
よび解像度で示されるビットマップデータに展開する必
要がある。かかる展開処理の負荷が大きいため、必然的
に文字を展開する能力が低くなるのである。
【0004】この問題を解決するための1つの策として
フォントキャッシュを用いることが考えられる。すなわ
ち、一度、ある文字についてビットマップデータに展開
した際、その展開結果たるビットマップデータを出力す
るとともに、キャッシュメモリにキャッシングし、次
に、同じ文字について出力要求が発生したならば、キャ
ッシングされたビットマップデータを用いるのである。
これにより、同じ文字について2度目以降の展開処理が
省略できるので、文字出力の高速化を図ることが可能で
ある。しかし、フォントキャッシュを用いる方法では、
キャッシュメモリの容量が大きいほどその効果が期待で
きるが、容量を確保するにはコストがかかるという欠点
がある。また、キャッシングされていなければ、その効
果が期待できないため、印刷開始直後では文字出力の低
速化傾向が容量の大小に拘わらず現われる、といった基
本的問題もある。
【0005】そこで、ビットマップデータに展開する展
開手段を複数設けることが考えられる。すなわち、これ
らが同時に並列して別個のオブジェクトについて展開処
理するように動作させて、全体として高速化させるので
ある。しかしながら、展開手段を複数設ける場合、文字
等のオブジェクトを描画する順序を考慮しなければなら
ない点に留意する必要がある。この点について図12を
参照して説明する。いま、同図(a)に示すように、正
しい描画の順序が「L」、「E」、「V」であり、これ
らの文字の1つ1つを異なる展開手段が並列に展開処理
する場合について考えてみる。文字の展開処理に要する
時間は、一般に文字の複雑に依存し、さらに、フォント
キャッシュを用いるのであれば、そこにヒットするか否
かによっても大きく相違する。このため、各展開手段が
各文字について展開を終了するタイミングも、各種条件
の相違により一様に定まらない。したがって、各展開手
段がそれぞれ「L」、「E」、「V」の1つの文字につ
いてその順序で展開処理を開始したとしても、展開が終
了したタイミングが「V」、「E」、「L」というよう
に、逆となってしまう場合も十分にあり得る。この場
合、同図(b)に示すように、得られる画像は、全く意
図しないものとなってしまう。
【0006】このような描画の順番を考慮する技術とし
ては、従来より例えば、特開平4−327966号公報
に記載のものがある。この技術について、図13を参照
して簡単に説明する。主処理部11は、描画を指示する
命令を受信すると、それが文字の描画を指示する文字発
生コマンドであるか否かを判別し、文字発生コマンドで
なければ、当該命令にしたがって線図などのオブジェク
トを形成し、アクセス権管理部21を介してフレームメ
モリ20に格納する。ここで、アクセス権管理部21
は、主処理部11からフレームメモリ20に線図などの
オブジェクトが格納されると、以降アクセス拒否設定を
行なって、フレームメモリ20のアクセスを禁止する。
また、主処理部11は、受信した描画を指示する命令が
文字発生コマンドであれば、当該命令をフォント制御部
14に供給する。フォント制御部14は、文字発生コマ
ンドを受け取ると、当該コマンドにしたがった文字のビ
ットマップデータをドット文字発生部16あるいはフォ
ントキャッシュメモリ17から得て、アクセス権管理部
21のアクセス拒否を解除して、フレームメモリ20に
格納する。これにより、文字と、それ以外の線図等と
が、フレームメモリ20に対し正確な順序で格納される
こととなる。また、上記公報には、ドット文字発生部1
6を複数用いて、文字の展開を並列して行なう技術も記
載されている。
【0007】
【発明が解決しようとする課題】しかしながら、上記公
報に記載の技術は、例えば、同一領域に線図、文字の順
序で描画を行なう場合、主処理部11は、線図の形成処
理を早く済ませたとしても、ドット文字発生部16が文
字のビットマップデータを得てフレームメモリ20に格
納して、アクセス拒否が加除されるまで、待機しなけれ
ばならないという欠点がある。それ故、主処理部11
は、待機中に他の処理を実行する構成となっているので
ある。また、上記公報において各ドット文字発生部が並
列して文字を展開する場合でも、フレームメモリ20へ
の転送する順番は一元的に管理されている。このため、
他のドット文字発生部の進捗によって、一のドット文字
発生部は待機しなければならないといった問題が発生す
る。すなわち、上記公報に記載の技術は、オブジェクト
に重なりがあったとしても、フレームメモリ20にオブ
ジェクトを格納する順序を保証することで、描画が正し
く行なわれるように企図するものであるため、必然的
に、展開処理が非効率となるという欠点があった。
【0008】本発明は、上述した事情に鑑みてなされた
ものであり、その目的とするところは、たとえ、オブジ
ェクト、特に文字の描画を行なう描画手段が複数あっ
て、これらが独立に描画を行なう構成であったとして
も、重なりがある文字について、各描画手段を待機させ
ることなく、その順序が保証された状態で描画すること
が可能な画像処理装置を提供することにある。
【0009】
【課題を解決するための手段】上述した課題を解決する
ために、本発明にあっては、文字の描画を指示する描画
命令を少なくとも2つ以上入力して、当該命令により描
画される文字が重なるか否かを検出する検出手段と、重
なると検出された場合に、当該文字にかかる描画命令か
ら、非重複部分の描画を指示する第1の命令を生成する
第1の命令生成手段と、重なると検出された場合に、当
該文字にかかる描画命令から、重複部分の描画と描画の
順序とを指示する第2の命令を生成する第2の命令生成
手段と、各命令に基づいて実際に描画を行なう描画手段
とを具備することを特徴としている。
【0010】(作用)本発明によれば、文字に重なりが
ある場合、当該文字にかかる描画命令は、非重複部分の
描画を指示する第1の命令と、重複部分の描画と描画の
順序とを指示する第2の命令とに再生成され、これらの
命令により描画が実際に行なわれる。したがって、たと
え描画手段が複数あり、これらが命令にしたがってそれ
ぞれ文字を独立に描画する構成であったとしても、重な
りがある文字について、各描画手段を待機させることな
く、その順序が保証された状態で描画することが可能と
なる。
【0011】
【発明の実施の形態】以下、本発明による実施の形態に
ついて図面を参照して説明する。
【0012】<1:実施形態の構成>図1は、本実施形
態にかかる画像処理装置の構成を示すブロック図であ
る。図において、CPU101は、バスBを介して各部
を制御するものである。ROM102は、ブートプログ
ラム103や、文書展開プログラム104、印字制御プ
ログラム105などを記憶するものである。ここで、ブ
ートプログラム103は、電源投入直後やリセット直後
などにおいて、装置全体の初期化を図るためのものであ
り、展開プログラム104は、PDLで記述されたコー
ド画像データをビットマップデータに展開処理するため
のためのものであり、また、印字制御プログラム105
は、印刷を行なう際にプリンタエンジン109の起動
や、展開したビットマップデータの供給を制御するため
のものである。
【0013】RAM106は、その一領域にフレームバ
ッファ107やワークメモリ108などが割り当てられ
る。前者のフレームバッファ107は、ビットマップデ
ータに展開された1ページ分の画像データをプリンタエ
ンジン109に供給する前に一時的に記憶するための領
域として用いられ、また、後者のワークメモリ108
は、展開処理の際におけるテンポラリ(一時作業)領域
や、文字の展開時にベクトルフォントデータ114(後
述)を一時記憶するための領域として用いられる。プリ
ンタエンジン109は、プリンタI/F(インターフェ
イス)110を介して供給されるビットマップデータに
したがって、用紙に画像を形成して出力するものであ
る。
【0014】一方、ホストW/S(ワーク・ステーショ
ン)111は、ホストI/F112を介してバスBに接
続され、文字を含む画像データを作成して、出力するも
のである。なお、本実施形態において、ホストW/S1
11によって作成される画像データは、PDLで記述さ
れたコード画像データである。また、ホストW/S11
1は、実際にはバスBに対してネットワークを介して接
続されているが、そのプロトコルはホストI/F112
によって処理されるため、CPU101がそのプロトコ
ルを意識する必要はない。このため、図においては、ネ
ットワークを省略し、ホストW/S111が、ホストI
/F112を介してバスBに接続されている形態とし
た。
【0015】ハードディスク113は、主に、ベクトル
フォントデータ114を字体別に記憶するものであり、
容量に余裕があるならば、文書データや、ビットマップ
のイメージデータなどを記憶することとしても良い。こ
こで、ベクトルフォントデータ114は、文字の輪郭を
ベクトルデータとして、ASCIIや、JIS第1水
準、JIS第2水準などに規定される文字コードに対応
して文字毎に記憶するものであり、明朝体やゴシック体
などの字体別に複数記憶される。
【0016】ラスタライザ115a〜115cは、文字
描画命令、後述の重複部分描画命令あるいは非重複部分
描画命令により、それぞれ文字に関する展開処理を行な
うものであり、ラスタライザ制御部116の制御によっ
て並列に動作するものである。ここで、文字描画命令
は、図3(a)に示すような形式を有しており、1つの
文字について、描画すべき文字の字体を示すフォントI
Dや、その文字のコードを示す文字コード、バウンディ
ングボックスの形状を定める変換行列、その文字につい
て描画すべき位置をバウンディングボックスにおける左
上端の座標で示した座標(X、Y)などから構成され
る。このうち、バウンディングボックスとは、図14に
示すように、文字の描画領域をいい、イタリック(斜字
体)となれば平行四辺形の形状となる。また、プロポー
ショナルフォントであれば、その幅は文字毎に異なる。
なお、文字描画命令には、特に図示はしないが文字の属
性情報、例えば、描画色を規定する色指定命令も含まれ
る。そして、これらのデータからなる文字描画命令が、
CPU101によって、所定の文字数分を単位として連
続して供給される。この際、文字描画命令の供給される
順序が、文字を描画すべき順序を示している。なお、所
定の文字数分が意味するところについては後述する。ま
た、ラスタライザ115a〜115cは、色指定命令を
受信した場合、当該命令で指定された色に関する情報を
共有メモリ119に記憶させる。
【0017】説明を再び図1に戻す。DMAC(ダイレ
クト・メモリ・アクセス・コントローラ)117は、ビ
ットマップデータがフレームバッファ107に1ページ
分格納されたならば、CPU101の指示により、当該
データを読み出してプリンタエンジン109に転送する
ものである。共有メモリ119は、ラスタライザ115
a〜115cによって共有され、使用されるメモリであ
り、CPU101からは参照できないようになってい
る。また、この共有メモリ119の一部がフォントキャ
ッシュ領域として割り当てられる。重なり処理部120
は、ラスタライズ115a〜115cに供給される文字
描画命令を前処理して、文字の重なりがある重複部分と
重なりがない非重複部分とに切り分けるとともに、当該
文字描画命令を必要に応じて分解、再生成するものであ
る。詳細については次に説明する。
【0018】<1−1:重なり処理部>重なり処理部1
20の詳細構成について、図2を参照して説明する。こ
の図において、命令バッファ201は、CPU101か
らの文字描画命令を受信するためのバッファであり、所
定の文字数分を単位として文字描画命令を受け付ける。
重なり命令検出部202は、命令バッファ201に格納
された文字描画命令を特定して、その命令で描画される
文字のバウンディングボックスに重なりが生じるか否か
を検出するとともに、重なるものについては、その文字
の組およびその重複範囲を出力する。命令フェッチ部2
03は、命令バッファ201から文字描画命令を1つず
つ取り出し、重なり命令検出部202による検出結果を
参照して、重ならない文字の文字描画命令をラスタライ
ザ制御部116に供給する一方、重なる文字の文字描画
命令を、重なり命令検出部202により検出された重複
範囲とともに、非重複部分描画命令生成部204および
重複部分描画命令生成部205にそれぞれ供給する。
【0019】非重複部分描画命令生成部204は、重複
範囲と、その重複範囲にかかる文字の文字描画命令であ
って命令フェッチ部203から供給された文字描画命令
とから非重複部分描画命令を生成して、ラスタライザ制
御部116に供給するものである。ここで、非重複部分
描画命令とは、バウンディングボックスが重なる文字の
うち、重なりが生じない領域のみの描画を指示する命令
であり、具体的には、図3(b)に示すような形式を有
し、非表示範囲指定302と非重複文字指定303とか
ら構成される。ここで、非表示範囲指定302とは、バ
ウンディングボックスの重複範囲を指定するものであ
り、その重複範囲は、2組の座標(X、Y)を結んだ直
線を対角線とする矩形領域である。また、非重複文字指
定303とは、バウンディングボックスが重なる文字を
指定するものであり、その文字の字体を示すフォントI
Dや、その文字のコードを示す文字コード、バウンディ
ングボックスの形状を示す変換行列、その文字を描画す
べき位置を、バウンディングボックスにおける左上端の
座標で示した(X、Y)などから構成される。このよう
な非重複部分描画命令により、バウンディングボックス
が重なる文字のうち、重なりが生じない領域のみの描画
に必要な情報が提供される。
【0020】一方、重複部分描画命令生成部205は、
重なり命令検出部202により検出された重複範囲と、
その重複範囲にかかる文字の文字描画命令であって命令
フェッチ部203から供給された文字描画命令とから重
複部分描画命令を生成して、ラスタライザ制御部116
に供給するものである。ここで、重複部分描画命令と
は、バウンディングボックスが重なる文字のうち、重な
りが生じる領域のみの描画を指示する命令であり、具体
的には、図3(c)に示すような形式を有し、表示範囲
指定304と重複文字指定305〜とから構成される。
ここで、表示範囲指定304とは、バウンディングボッ
クスの重複範囲を指定するものであり、その重複範囲
は、2組の座標(X、Y)を結んだ直線を対角線とする
矩形領域である。表示範囲指定304には、さらに、当
該重複範囲で重なる文字の個数も記される。また、重複
文字指定305〜とは、バウンディングボックスが重な
る文字を指定するものであり、当該重複範囲で重なる文
字の個数に応じて、かつ、描画すべき順序で設けられ
る。その内容は、非重複文字指定の内容と同様に、その
文字の字体を示すフォントIDや、その文字のコードを
示す文字コード、バウンディングボックスの形状を示す
変換行列、その文字を描画すべき位置を、バウンディン
グボックスにおける左上端の座標で示した(X、Y)な
どである。このような重複部分描画命令により、バウン
ディングボックスが重なる文字のうち、重なりが生じる
領域のみの描画に必要な情報が提供される。
【0021】こうした重複部分描画命令、非重複部分描
画命令あるいは文字描画命令のような文字描画に関する
命令を受信すると、ラスタライザ制御部116は、当該
命令をラスタライザ115a〜115cのいずれかに、
その処理状況に応じて適切に分配する。そして、文字描
画に関する命令を受け取ると、ラスタライザ115a〜
115cは、以下の処理を行なって、当該命令にしたが
ったビットマップデータをフレームバッファ107に格
納する。
【0022】すなわち、ラスタライザ115a〜115
cは、文字描画に関する命令を受信すると、第1に、当
該命令にかかる展開結果が、キャッシングされているか
否かを判断し、なければ、第2に、当該命令にかかる文
字のベクトルフォントデータを座標変換し、第3に、補
正処理を施し、第4に、当該ベクトルフォントデータを
文字の輪郭に展開するとともに、その展開結果を共有メ
モリ119に割り当てられたキャッシュ領域に転送して
格納させ、第5に、当該輪郭で囲まれた領域を、色指定
命令で指定された色に塗りつぶして、当該文字描画命令
にかかる文字のビットマップデータを生成し、第6に、
このビットマップデータを、フレームバッファ107
に、当該文字描画命令で指定される座標に対応する領域
に転送する。一方、ラスタライザ115a〜115c
は、文字描画に関する命令を受信した際に、当該命令に
かかる展開結果がキャッシングされていれば、当該展開
結果を読み出して用いる。こうして、フレームバッファ
107には、文字描画に関する命令にしたがって展開さ
れた文字のビットマップデータが格納されることとな
る。したがって、本実施形態におけるラスタライザ11
5a〜115cは、他のラスタライザの進捗を考慮する
ことはない。なお、転送する領域が指定されていれば、
ラスタライザ115a〜115cは、当該領域のみをフ
レームバッファ107に転送する。
【0023】<2:動作>次に、上述した実施形態にか
かる画像処理装置の動作について説明する。なお、PD
Lは、一般に、文字以外にも、線図や、イメージなども
取り扱うが、本実施形態では、文字の重なりを例として
説明するので、以下、説明の便宜上、PDLで記述され
たコード画像データは、文字のみから構成される文書を
示すものとする。
【0024】<2−1:CPUにおける動作>CPU1
01の動作を示すフローチャートを図4に示す。はじめ
に、この画像処理装置に電源が投入され、あるいはリセ
ットされると、CPU101は、ステップSa1におい
て、ROM102からブートプログラム103を読み出
し、当該プログラムを実行して初期化を行なう。この初
期化には、例えば、RAM106に対し、フレームバッ
ファ107やワークメモリ108の領域を割り当てる処
理などが該当する。次に、CPU101はステップSa
2において、ホストW/S111からのコード画像デー
タが受信されるまで待機する。コード画像データを受信
すると、CPU101はステップSa3において、当該
データをRAM106に割り当てた入力バッファ(図示
せず)に格納させる。そして、1つのジョブにかかるコ
ード画像データのすべてを格納すると、CPU101
は、以下の処理を実行する。なお、全体の処理を高速化
させるため、コード画像データを所定容量だけ入力した
時点で以下の処理を実行することとしても良い。
【0025】さて、1つのジョブにかかるコード画像デ
ータのすべてあるいは所定容量を格納すると、CPU1
01はステップSa4において、展開処理の対象を最初
の1ページ目に設定する。PDLで記述されるコード画
像データは、通常、1または複数ページの画像を示すも
のであるから、とりあえず、最初の1ページについて展
開処理を行なうように設定するのである。次に、CPU
101はステップSa5において、処理の対象に設定さ
れたページにかかる文字描画命令を描画する順序で出力
して、当該ページについて展開処理を行なうように指示
する。なお、詳細については後述する。
【0026】そして、CPU101はステップSa6に
おいて、処理の対象となっているページにかかるビット
マップデータがすべてフレームバッファ107に格納さ
れるまで、待機する。フレームバッファ107への格納
が完了すると、CPU101はステップSa7におい
て、プリンタエンジン109を起動させるとともに、D
MAC117に対し、フレームバッファ107に格納さ
れたビットマップデータをプリンタエンジン109に転
送するように指示する。これにより、処理の対象となっ
ているページの印刷が実際に行なわれることとなる。
【0027】次に、CPU101はステップSa8にお
いて、すべてのページについて展開処理を完了したか否
かを判断し、完了していなければ、処理手順をステップ
Sa9に移行させて、展開処理の対象を次のページに設
定した後、処理手順を再びステップSa5に戻す。以
降、処理手順がステップSa5〜Sa9を循環して、す
べてのページについて展開処理が完了することとなる。
一方、ステップSa8における判断において、すべての
ページについて処理が完了していれば、CPU101
は、処理手順を再びステップSa2に戻して、新たなジ
ョブにかかるコード画像データが受信されるまで待機
し、受信すればその都度、ステップSa3〜Sa9の処
理を実行して展開・印刷を実行するようになっている。
【0028】<2−2:重なり処理部における動作>C
PU101が上述したステップSa5において、設定さ
れたページにかかる文字描画命令を描画する順序で出力
すると、重なり処理部120は、図5に示す動作を実行
し、当該文字描画命令を前処理して、ラスタライザ制御
部116に出力する。
【0029】まず、ステップSb1において命令バッフ
ァ201は、当該ページにかかる文字描画命令を所定の
文字数分だけ格納する。ここで、所定の文字数分とは、
例えば、処理の対象となっているページにおけるすべて
の文字数分としても良いし、1〜数行分の文字数分とし
ても良いし、また、句読点「。」および「、」を検出し
て、そこに挟まれる文字数分としても良い。すなわち、
ここでいう所定の文字数分とは、ある文字について着目
した場合に、その文字が、その文字以降の文字について
どこまで重なりが発生するかを考慮して定められるべき
性質のものである。
【0030】次に、ステップSb2において命令フェッ
チ部203は、命令バッファ201に格納された文字描
画命令の個数を検出して、この数をnにセットした後、
ステップSb3において「1」をmにセットして、当該
nおよびmの値を重なり命令検出部202に通知する。
すると、重なり命令検出部202はステップSb4にお
いて、m番目の文字描画命令にかかるバウンディングボ
ックス(BB)を演算し、次に、ステップSb5におい
て、m番目以外の文字描画命令のうち、m番目の文字の
属性情報と異なるもの、例えば、m番目の文字とは異な
る色で描画を指示する命令にかかるウンディングボック
スを順次演算して求める。そして、重なり命令検出部2
02はステップSb6において、m番目の文字描画命令
にかかる文字のバウンディングボックスが、直前ステッ
プで求めたバウンディングボックスと重複するか否かを
判別して、その判別結果を命令フェッチ部203に通知
する。したがって、m番目の文字描画命令にかかる文字
と同色描画を指示する文字描画命令については、そのバ
ウンディングボックスがm番目の文字描画命令にかかる
文字のバウンディングボックスと実際に重複するもので
あっても、このステップSb6において重複するとは判
断されない。これは、同色文字が重なる場合、その描画
順序を保証する必要がないためである(図12(c)参
照)。なお、ここでは、文字の属性情報が異なる例とし
て、カラー印刷において見た目に与える影響が大きい色
属性、すなわち、描画する色を挙げたが、本発明におい
てはこれに限られない。この他に、文字の属性情報とし
ては、ハーフトーンパターン(シェードなど)や、色の
パターン、グラデーション、張り付けたイメージなどが
考えられる。ここで、色のパターンとしては、縦縞/横
縞や、特定の模様(キャラクターパターンなど)、小さ
い文字で大きな文字を構成する場合におけるその小さい
文字など、当該文字の構成要素を規定する情報が考えら
れる。すなわち、本願における文字の属性情報とは、文
字の重ね合わせの順序によって影響を受けるもののすべ
てをいう。
【0031】さて、重なり命令検出部202からの通知
により、重複しないと判別されれば、命令フェッチ部2
03はステップSa7において、m番目の文字描画命令
を命令バッファ201から取り出してラスタライザ制御
部116にそのまま出力する。一方、重複するならば、
重なり命令検出部202はステップSb8において、そ
の重複範囲と重なる文字にかかる文字描画命令とについ
ても命令フェッチ部203に通知する。すると、命令フ
ェッチ部203は、m番目の文字描画命令とともに、バ
ウンディングボックスが重複する文字描画命令を、命令
バッファ201から取り出し、これらの文字描画命令お
よびその重複範囲を、それぞれ非重複部分描画命令生成
部204および重複部分描画命令生成部205に供給す
る。
【0032】これらの命令を受け取ると、まず、ステッ
プSb9において、非重複部分描画命令生成部204は
非重複部分描画命令(図3(b)参照)を生成して、ラ
スタライザ制御部116に出力する。次に、ステップS
b10において、重複部分描画命令生成部205は、m
番目の文字以降の文字について重複部分描画命令を生成
して、ラスタライザ制御部116に出力する。ここで、
「m番目以降の文字について」としたのは、m番目の文
字とm番目以前の文字との重複部分については、そのm
番目以前の文字について処理した際にすでに生成されて
いるためであって、同じ処理を再び繰り返して速度の低
下を防ぐ意味からである。
【0033】こうして、文字描画命令、非重複部分描画
命令あるいは重複部分描画命令を受け取ると、ラスタラ
イザ制御部116は、ラスタライザ115a〜115c
のいずれかに、その処理状況に応じて適切に分配して、
当該命令にかかる文字描画を行なわせる。これにより、
当該命令にかかる文字がフレームバッファ107に描画
されることとなる。次に、ステップSb11においてm
とnとが等しいか否かを判別し、等しくなければ、ステ
ップSb12においてmの値を「1」だけインクリメン
トして、そのmの値を重なり命令検出部202に通知す
る。これにより重なり命令検出部202は、命令バッフ
ァ201に格納された次の文字にかかる文字描画命令に
ついて同様に重なり検出を行なうこととなる。一方、m
とnとが等しければ、ステップSb12において処理対
象のページにかかる文字描画命令がすべて前処理された
か否か判別され、されていなければ処理手順が再びステ
ップSb1に戻って、次の所定の文字数分の文字描画命
令について同様な処理が引き続き実行される。また、す
べての文字描画命令について前処理が完了したならば、
当該ページに関する展開処理は終了し、処理の対象が次
ページに移行した段階で(ステップSa9)、再度、重
なり検出が行なわれることとなる。
【0034】<3:具体的動作>以上のような動作を行
なう画像処理装置において、以下、文字描画命令の具体
的な例を取り上げて、本実施形態における描画動作につ
いて説明する。いま、命令バッファ201に格納される
文字描画命令が、図6(a)に示すようなものとし、所
定の文字数が「3」であるとする。ただし、これらの文
字描画命令で描画される文字色は互いに異なるものとす
る。詳細には、文字描画命令601〜603によって、
第1番目に、フォントが「ゴシック」であって文字コー
ドが「234C」である全角文字「L」を、左上端の座
標値が(X1、Y1)であってその変換行列がΦであるバ
ウンディングボックスにて描画し、第2番目に、フォン
トが「ゴシック」であって文字コードが「2345」で
ある全角文字「E」を、左上端の座標値が(X2、Y2
であって、その変換行列がΦであるバウンディングボッ
クスにて描画し、第3番目に、フォントが「ゴシック」
であって文字コードが「2356」である全角文字
「V」を、左上端の座標値が(X1、Y1)であって、そ
の変換行列がΦであるバウンディングボックスにて描画
するように指示されたとする。そして、これらの文字描
画命令601〜603で描画される各文字のバウンディ
ングボックスが、同図(b)に示される符号601B〜
603Bの位置関係にあるものとする。すなわち、図1
2(a)で示されるように、「L」、「E」、「V」と
いう順序で文字を描画しようとする場合である。
【0035】このような文字描画命令601〜603
が、CPU101によって順番に出力されると(ステッ
プSa5)、重なり処理部120においては、これらの
描画命令が命令バッファ201に格納される結果(ステ
ップSb1)、これらの描画命令の数を示す「3」がn
にセットされ(ステップSb2)、「1」がmにセット
されて(ステップSb3)、第1番目の処理対象が文字
描画命令601とされる。次に、文字描画命令601に
かかる文字のバウンディングボックス601Bが演算さ
れ(ステップSb4)、それ以外の文字描画命令60
2、603にかかる文字のバウンディングボックス60
2B、603Bが順次演算されて求められる(ステップ
Sb5)。ここで、バウンディングボックス601B
は、図6(b)に示すように、バウンディングボックス
602Bに対し、座標(a、b)〜座標(c、d)を結
んだ直線を対角線とする矩形領域において重複してい
る。したがって、文字描画命令601は、それと重複す
る文字描画命令602と、その重複範囲とともに、それ
ぞれ非重複部分命令生成部204と重複部分命令生成部
205に供給される(ステップSb8)。
【0036】このため、今回(m=1)、ステップSb
9にて生成される非重複部分命令は、図7(a)に示す
ようなものとなる。すなわち、文字描画命令601で描
画すべき領域のうち、座標(a、b)〜座標(c、d)
を結んだ直線を対角線とする矩形領域を除いて非表示
(非描画)としたものとなる。したがって、この非重複
部分命令により描画されるイメージは、同図(b)示す
ように、重複範囲を除いたものとなる。
【0037】一方、ステップSb10にて生成される重
複部分命令は、図8(a)に示すようなものとなる。す
なわち、文字描画命令601、602で描画すべき全領
域のうち、座標(a、b)〜座標(c、d)を結んだ直
線を対角線とする矩形領域のみを表示(描画)としたも
のであって、描画の順序を、重複文字指定801、80
2の順としたものである。したがって、この重複部分命
令により描画されるイメージは、同図(b)示すよう
に、重複範囲のみであって、描画の順序を「L」、
「E」としたものである。
【0038】次のステップSb11では、mはまだ
「1」であって、n(=3)ではないから、ステップS
b12においてmは「2」とされる。このため、次に文
字描画命令602にかかる文字のバウンディングボック
ス602Bが演算され(ステップSb4)、それ以外の
文字描画命令601、603にかかる文字のバウンディ
ングボックス601B、603Bが順次演算されて求め
られる(ステップSb5)。ここで、バウンディングボ
ックス602Bは、図6(b)に示すように、バウンデ
ィングボックス601Bとは座標(a、b)〜座標
(c、d)を結んだ直線を対角線とする矩形領域におい
て、および、バウンディングボックス603Bとは座標
(e、f)〜座標(g、h)を結んだ直線を対角線とす
る矩形領域において、それぞれ重複している。したがっ
て、文字描画命令602は、それと重複する文字描画命
令601、603と、その重複範囲とともに、それぞれ
非重複部分命令生成部204と重複部分命令生成部20
5に供給される(ステップSb8)。
【0039】このため、今回(m=2)、ステップSb
9にて生成される非重複部分命令は、図9(a)に示す
ようなものとなる。すなわち、文字描画命令602で描
画すべき領域のうち、座標(a、b)〜座標(c、d)
を結んだ直線を対角線とする矩形領域、および座標
(e、f)〜座標(g、h)を結んだ直線を対角線とす
る矩形領域を、それぞれ非表示としたものとなる。した
がって、この非重複部分命令により描画されるイメージ
は、同図(b)示すように、重複範囲を除いたものとな
る。
【0040】一方、ステップSb10にて生成される重
複部分命令は、図10(a)に示すようなものとなる。
すなわち、文字描画命令602、603で描画すべき全
領域のうち、座標(e、f)〜座標(g、h)を結んだ
直線を対角線とする矩形領域のみを表示としたものであ
って、描画の順序を、重複文字指定1001、1002
としたものである。ここで、文字描画命令601を考慮
していない理由は、当該命令601が2番目以降ではな
くて1番目であり、この文字との重複部分は、すでにm
=1でのステップSb10においてすでに求めているか
らである。したがって、この重複部分命令により描画さ
れるイメージは、同図(b)示すように、重複範囲のみ
であって、描画の順序を「E」、「V」としたものであ
る。
【0041】次のステップSb11では、mはまだ
「2」であって、n(=3)ではないから、ステップS
b12においてmは「3」とされる。このため、次に文
字描画命令603にかかる文字のバウンディングボック
ス603Bが演算され(ステップSb4)、それ以外の
文字描画命令601、602にかかる文字のバウンディ
ングボックス601B、602Bが順次演算されて求め
られる(ステップSb5)。ここで、バウンディングボ
ックス603Bは、図6(b)に示すように、バウンデ
ィングボックス602Bと座標(e、f)〜座標(g、
h)を結んだ直線を対角線とする矩形領域において重複
している。したがって、文字描画命令603は、それと
重複する文字描画命令602と、その重複範囲ととも
に、それぞれ非重複部分命令生成部204と重複部分命
令生成部205に供給される(ステップSb8)。
【0042】このため、今回(m=3)、ステップSb
9にて生成される非重複部分命令は、図11(a)に示
すようなものとなる。すなわち、文字描画命令603で
描画すべき領域のうち、座標(e、f)〜座標(g、
h)を結んだ直線を対角線とする矩形領域を非表示とし
たものとなる。したがって、この非重複部分命令により
描画されるイメージは、同図(b)示すように、重複範
囲を除いたものとなる。一方、今回(m=3)、ステッ
プSb10にて重複部分命令は生成されない。この理由
は、文字描画命令603が最終の3番目であり、これ以
降に文字描画命令が存在しないためである。そして、次
のステップSb11では、mが「3」であって、nに等
しいから、ステップSb13にて次の所定の文字数分の
文字描画命令が存在するか否かが判断され、以降同様な
処理が対象となっているページにかかるすべての文字描
画命令に対して行なわれる。
【0043】このように、文字描画命令601〜603
は、重なり処理部120の前処理によって、非重複部分
描画命令700、900、1100および重複部分描画
命令800、1000に再生成され、それぞれ、ラスタ
ライザ制御部116を介し、ラスタライザ115a〜1
15cのいずれかに供給される。ここで、ラスタライザ
115a〜115cが、再生成された各命令をどのよう
な順序で描画しても、得られる画像は、図12(a)に
示す正しい順序で描画されたものとなる。したがって、
本実施形態によれば、仮にラスタライザが複数あったと
しても、その動作を停止させることなく、正しい順序で
文字を描画することがができる。
【0044】なお、本実施形態において、重なりがある
文字については、非重複部分描画命令と重複部分描画命
令とに分けて描画を行なうので、その分、文字の展開処
理に時間がかかる、と考えるのは早計である。この理由
は、1回目の展開結果がキャッシングされると、2回目
の処理についてはフォントキャッシュにヒットして、再
度展開処理を行なう必要がないからである。したがっ
て、重なりがある文字の展開処理に要する時間は、重な
りのない文字の展開処理に要する時間と実質的に変わら
ない。同様に考えると、本実施形態においては、同じ文
字についてバウンディングボックスが何回も演算されて
求められるが(ステップSb4、Sb5)、1回目は演
算して、その結果をキャッシングし、2回目以降は、そ
のキャッシュ結果を利用すれば、再度演算して求める必
要はない。したがって、本実施形態において、重なる文
字がいかに多くても、その展開処理に要する時間は、重
なりのない場合と比べてほとんど変わらない。
【0045】また、重なる文字があるとしても、文字の
属性情報が同じであれば(実施形態では、それらの文字
が同色で描画されるものであれば)、それらの文字にか
かる文字描画命令は非重複部分描画命令と重複部分描画
命令とに再生成されないので、この点においても、処理
の高速化が図られている。なお、本実施形態において、
オブジェクトを文字のみとしたが、これに限られず、線
図などの展開についても含めて適用可能であるのはいう
までもない。
【0046】
【発明の効果】以上説明したように本発明によれば、た
とえ、命令にしたがって文字の描画を行なう描画手段が
複数あって、これらが独立に描画する構成であったとし
ても、重なりがある文字について、各描画手段を待機さ
せることなく、その順序が保証された状態で描画するこ
とが可能となる。
【図面の簡単な説明】
【図1】 本発明の実施形態にかかる画像処理装置の構
成を示すブロック図である。
【図2】 同実施形態における重なり処理部の構成を示
すブロック図である。
【図3】 (a)は文字描画命令の構成を示す図であ
り、(b)は非重複部分描画命令の構成を示す図であ
り、(c)は重複部分描画命令の構成を示す図である。
【図4】 同実施形態におけるCPUの動作を示すフロ
ーチャートである。
【図5】 同実施形態における重なり処理部の動作を示
すフローチャートである。
【図6】 (a)は同実施形態における具体的動作を説
明するための文字描画命令の構成を示す図であり、
(b)は(a)で示される命令で描画される文字のバウ
ンディングボックスの位置関係を示す図である。
【図7】 (a)は図6(a)で示される命令をm=1
で処理した際の非重複部分描画命令の構成を示す図であ
り、(b)は(a)で示される命令で描画される文字の
イメージを示す図である。
【図8】 (a)は図6(a)で示される命令をm=1
で処理した際の重複部分描画命令の構成を示す図であ
り、(b)は(a)で示される命令で描画される文字の
イメージを示す図である。
【図9】 (a)は図6(a)で示される命令をm=2
で処理した際の非重複部分描画命令の構成を示す図であ
り、(b)は(a)で示される命令で描画される文字の
イメージを示す図である。
【図10】 (a)は図6(a)で示される命令をm=
2で処理した際の重複部分描画命令の構成を示す図であ
り、(b)は(a)で示される命令で描画される文字の
イメージを示す図である。
【図11】 (a)は図6(a)で示される命令をm=
3で処理した際の非重複部分描画命令の構成を示す図で
あり、(b)は(a)で示される命令で描画される文字
のイメージを示す図である。
【図12】 (a)は正しい順序で描画したイメージを
示す図であり、(b)は誤った順序で描画したイメージ
を示す図であり、(c)は同色で描画したイメージを示
す図である。
【図13】 従来の画像処理装置の構成を示すブロック
図である。
【図14】 バウンディングボックスの概念を説明する
ための図である。
【符号の説明】
115a〜115c……ラスタライザ(描画手段)、 116……ラスタライザ制御部(描画制御手段)、 202……重なり命令検出部(検出手段)、 203……命令フェッチ部(転送手段)、 204……非重複部分命令生成手段(第1の命令生成手
段)、 205……重複部分命令生成手段(第2の命令生成手
段)
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G09G 5/22 670 G09G 5/36 520N 5/36 520 G06F 15/20 566K

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 文字の描画を指示する描画命令を少なく
    とも2つ以上入力して、当該命令により描画される文字
    が重なるか否かを検出する検出手段と、 重なると検出された場合に、当該文字にかかる描画命令
    から、非重複部分の描画を指示する第1の命令を生成す
    る第1の命令生成手段と、 重なると検出された場合に、当該文字にかかる描画命令
    から、重複部分の描画と描画の順序とを指示する第2の
    命令を生成する第2の命令生成手段と、 各命令に基づいて実際に描画を行なう描画手段とを具備
    することを特徴とする画像処理装置。
  2. 【請求項2】 前記描画手段は複数であり、 これら複数の描画手段のいずれかに、描画命令を1つず
    つ割り当てる描画制御手段を有することを特徴とする請
    求項1記載の画像処理装置。
  3. 【請求項3】 前記検出手段により重なりがないと検出
    された場合に、その文字にかかる描画命令を描画手段に
    直接転送する転送手段を備えることを特徴とする請求項
    1記載の画像処理装置。
  4. 【請求項4】 前記検出手段は、文字の属性情報が異な
    る描画命令に対してのみ前記検出を行なうことを特徴と
    する請求項1記載の画像処理装置。
JP8310952A 1996-11-21 1996-11-21 画像処理装置 Pending JPH10149148A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8310952A JPH10149148A (ja) 1996-11-21 1996-11-21 画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8310952A JPH10149148A (ja) 1996-11-21 1996-11-21 画像処理装置

Publications (1)

Publication Number Publication Date
JPH10149148A true JPH10149148A (ja) 1998-06-02

Family

ID=18011381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8310952A Pending JPH10149148A (ja) 1996-11-21 1996-11-21 画像処理装置

Country Status (1)

Country Link
JP (1) JPH10149148A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150130307A (ko) * 2013-03-14 2015-11-23 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 다수의 프리미티브들을 사용하는 그래픽 처리

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150130307A (ko) * 2013-03-14 2015-11-23 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 다수의 프리미티브들을 사용하는 그래픽 처리
JP2016517574A (ja) * 2013-03-14 2016-06-16 マイクロソフト テクノロジー ライセンシング,エルエルシー 複数のプリミティブを使用するグラフィック処理
US11069020B2 (en) 2013-03-14 2021-07-20 Microsoft Technology Licensing, Llc Graphics processing using multiple primitives

Similar Documents

Publication Publication Date Title
JPH04128970A (ja) 文書処理システム
JPH10149148A (ja) 画像処理装置
JPH07168681A (ja) Pdlデータ処理装置及びその制御方法、及びパターン展開装置
JP2771629B2 (ja) 文字処理装置
JP2710350B2 (ja) 画像処理装置および画像処理装置の画像処理方法
JPH086542A (ja) 文字フォント及び該文字フォントのパターン展開方法及び装置
JP3040624B2 (ja) パターン発生装置
JPH07104764B2 (ja) 統合文書印刷システム
JP2971547B2 (ja) 文書処理装置
JP2884862B2 (ja) データ処理装置
JP2711860B2 (ja) 出力制御方法およびその装置
JP2878715B2 (ja) 文書作成装置
JP2728916B2 (ja) 文字処理装置及び方法
JPH07114541A (ja) 文書作成装置と背景パターン作成方法
JP2814709B2 (ja) 描画データ作成装置
JPH01215557A (ja) 文書作成装置
JPH0493994A (ja) 文字処理装置
JPH06149224A (ja) 画像出力方法及び装置
JPH0916791A (ja) レイアウト編集・出力方法およびレイアウト編集・出力システム
JPH05191578A (ja) プリンタコントローラシステム
JPH0535879A (ja) ベクトル画像描画装置
JPH06110444A (ja) 文字処理装置および文字出力方法
JPH05112054A (ja) 画像処理装置
JPH03112668A (ja) 印刷装置
JPH1075352A (ja) 印刷制御方法及びその装置及び該装置を含む印刷システム