JP4344898B2 - 画像処理装置、画像処理方法、画像形成装置 - Google Patents
画像処理装置、画像処理方法、画像形成装置 Download PDFInfo
- Publication number
- JP4344898B2 JP4344898B2 JP28460599A JP28460599A JP4344898B2 JP 4344898 B2 JP4344898 B2 JP 4344898B2 JP 28460599 A JP28460599 A JP 28460599A JP 28460599 A JP28460599 A JP 28460599A JP 4344898 B2 JP4344898 B2 JP 4344898B2
- Authority
- JP
- Japan
- Prior art keywords
- code information
- character
- storage means
- shape data
- stored
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1822—Analysing the received data before processing
- G06K15/1823—Analysing the received data before processing for evaluating the resources needed, e.g. rasterizing time, ink, paper stock
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1827—Accessing generic data, e.g. fonts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1827—Accessing generic data, e.g. fonts
- G06K15/1828—Accessing generic data, e.g. fonts characterized by the kind of storage accessed
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Record Information Processing For Printing (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の属する技術分野】
本発明は、描画のためのコード情報、特に文字を描画するコード情報の制御及び管理を行う画像処理装置及び画像処理方法と、その画像処理装置及び画像処理方法を用いた画像形成装置に関するものである。
【0002】
【従来の技術】
図19は、一般的な画像形成装置の一例を示すブロック図である。図中、1は入力データ解釈部、2は文字データ処理部、3はグラフィックスデータ処理部、4はイメージデータ処理部、5は中間コード処理部、6はバンドバッファ、7は出力部である。図19に示した画像形成装置は、入力データとして例えばプリンタ記述言語などによって記述されたデータを受け取り、一旦、中間コードに変換してから描画処理を行い、画像を形成する装置の例を示している。
【0003】
入力データ解釈部1は、例えばプリンタ記述言語によって記述された入力データを解釈し、描画種別に応じて入力データを分類する。ここでは、入力データを“文字”、“グラフィックス”、“イメージ”の3つに分類する。分類された入力データは、それぞれの種別に応じて、文字データ処理部2,グラフィックスデータ処理部3,イメージデータ処理部4に渡される。
【0004】
文字データ処理部2は、入力データ解釈部1から渡される文字を描画する入力データを中間コードに変換し、中間コード処理部5に対して出力する。同様に、グラフィックスデータ処理部3は、入力データ解釈部1から渡される図形などを描画する入力データを中間コードに変換し、中間コード処理部5に対して出力する。また、イメージデータ処理部4は、描画するイメージデータを含む入力データを中間コードに変換し、中間コード処理部5に対して出力する。
【0005】
中間コード処理部5は、文字データ処理部2,グラフィックスデータ処理部3,イメージデータ処理部4から渡される中間コードを蓄積し、1ページ分の中間コードが蓄積された時点で、中間コードをデコードして描画処理を行い、画像をバンドバッファ6に格納する。
【0006】
出力部7は、バンドバッファ6に格納されている画像を取り出し、例えば記録紙などの被記録媒体上に画像を形成する。
【0007】
図20は、文字データ処理部及び中間コード処理部の一例を示すブロック図である。図中、11は文字データ管理部、12は文字データ生成処理部、13はフォントキャッシュバッファ、14は中間コード管理部、15は中間コードバッファである。図19の入力データ解釈部1で“文字”に分類された入力データ(以下、文字データと呼ぶ)は、文字データ管理部11に入力される。文字データは、例えば書体、サイズ、方向、文字コード、色、印字位置等の情報を含んで構成されている。
【0008】
文字データ管理部11は、文字データが入力されると、その文字の形状データや描画位置などの情報を含む中間コードへの変換を行う。このとき、文字データが示す文字の形状データをフォントキャッシュバッファ13から探し、存在しなければ文字データ生成処理部12に依頼して、文字の形状データを生成させる。文字データ管理部11は、フォントキャッシュバッファ13の管理も行い、文字データ生成処理部12で生成した文字の形状データは、フォントキャッシュバッファ13にも登録する。また、登録の際に、フォントキャッシュバッファ13に空き領域がない場合には、所定のアルゴリズムに従ってフォントキャッシュバッファ13に登録されている文字の形状データを削除し、空き領域を確保してから新たな文字の形状データを登録する。
【0009】
文字データ生成処理部12は、文字データ管理部11から渡される文字データを元に、文字の形状データを生成する。また、フォントキャッシュバッファ13は、文字データ生成処理部12で生成された文字の形状データを、再利用できるように貯えておく。このフォントキャッシュバッファ13に文字の形状データを格納しておくことによって、同じ文字については文字データ生成処理部12で文字の形状データを生成する必要がないため、高速に文字の形状データを得ることができる。
【0010】
中間コード管理部14は、文字データ管理部11や、他の処理部から受け取った中間コードを中間コードバッファ15へ格納する。また、中間コードバッファ15に格納された中間コードに従って描画処理を行い、描画した画像をバンドバッファ6に格納する。中間コードバッファ15は、それぞれの処理部で生成された中間コードを格納する。
【0011】
図21は、従来の文字データの処理手順の一例を示すフローチャートである。S101において、入力データが文字データか否かを入力データ解釈部1で判定し、文字データ以外の場合にはS107においてグラフィックスデータ処理部3やイメージデータ処理部4などにおいてそれぞれの入力データの種類に応じた処理を行う。
【0012】
入力データが文字データであれば、S102において、文字データ管理部11は文字データが示す文字の形状データがフォントキャッシュバッファ13に登録されているか否かを判定する。文字データが示す文字の形状データがフォントキャッシュバッファ13に登録されていれば、その登録されている形状データを読み出して用いることができるので、そのままS105に進む。文字データが示す文字の形状データがフォントキャッシュバッファ13に登録されていない場合には、S103において、文字データ生成処理部12で文字データが示す文字に対応する形状データを生成する。そしてS104において、S103で生成した文字の形状データをフォントキャッシュバッファ13に登録する。
【0013】
S105において、得られた文字の形状データに例えば描画位置などの情報を含めて中間コードを生成し、生成した中間コードを中間コード管理部14により中間コードバッファ15に書き込む。
【0014】
S106において、1ページ分の入力データを処理したか否かを判定し、ページの途中である場合にはS101に戻って次の入力データについての処理を繰り返し行う。1ページ分の入力データについて処理を終えると、文字データに対する処理を終える。そして中間コード管理部14が中間コードバッファ15に格納された中間コードを元に描画処理を行って、バンドバッファ6に画像を展開する。バンドバッファ6に展開された画像は、出力部7に送られ、画像が形成される。
【0015】
図22は、従来の文字データの処理手順の一例を実行した場合のフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。図21に示すような文字データに対する処理を行うと、各文字データに対応する中間コードは、それぞれが文字の形状データを保持することになる。そのため、図22に示すように、同じ文字を描画する文字データが複数回出現する場合には、その都度、その文字の形状データが中間コードバッファ15に転送され、書き込まれることになる。なお図22では、文字「あ」について、同じ文字「あ」の形状データが書き込まれている領域について矩形で示している。
【0016】
この方法では、文字の中間コードデータが一つずつ独立しており、他の文字中間コードとの関連がないため、例えばハードウェアで描画処理する場合には中間コードを順次転送するだけで描画処理を行うことができ、非常に簡単に描画制御を行うことができる。しかし、図22からも分かるように、中間コードバッファ15内には同じ文字の形状データが多数格納される可能性があるため、中間コードバッファを無駄に消費してしまうという問題がある。また、同じ文字を示す中間コードを生成して中間コードバッファ15に書き込む際に、形状データをその度に転送して書き込むため、中間コードを中間コードバッファ15に書き込むための時間がかかり、高速化を阻害していた。
【0017】
このような問題を解決するため、例えば特開平10−16319号公報に記載されている装置では、基本的には中間コードバッファ15に文字の形状データを転送しない方式が考えられている。図23は、従来の文字データの処理方法の別の例におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。この方式では、文字の形状データはフォントキャッシュバッファ13に配置し、中間コードバッファ15にはフォントキャッシュバッファ13内の文字の形状データを参照する情報を書き込むことによって、中間コードバッファ15が無駄に消費されるのを防止している。また、フォントキャッシュバッファ13内の文字の形状データには、中間コードから参照されている数(参照数)が付加されている。この参照数は、中間コードから参照されている限り、形状データをフォントキャッシュバッファ13から削除しないようにするためのものである。
【0018】
図24は、従来の文字データの処理方法の別の例においてフォントキャッシュバッファに空きがない場合におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。上述のように、このフォントキャッシュバッファ13内の形状データを参照する方式では、中間コードからの参照がなくならない限り、フォントキャッシュバッファ13内の文字の形状データは削除されない。そのため、文字数が多くなってくるとフォントキャッシュバッファ13に空きがなくなってしまう。さらに描画する文字が発生すると、フォントキャッシュバッファ13には登録できない。このような場合には、図24に示すように、登録できなかった文字の形状データを中間コードバッファ15に仮置きし、中間コードには仮置きした文字の形状データを参照する情報を付加しておく。これによって、フォントキャッシュバッファ13の溢れを回避している。
【0019】
図25は、従来の文字データの処理方法の別の例においてフォントキャッシュバッファに空きができた場合におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。上述の図24に示すように、フォントキャッシュバッファ13に空きがない場合には、中間コードバッファ15に文字の形状データを仮置きする。この状態において、例えば中間コードバッファ15内の中間コードに従って描画処理を行う等により、フォントキャッシュバッファ13には空きができる。例えば図24に示す例において、文字「あ」を描画する4つの中間コードが処理されて中間コードが削除されると、フォントキャッシュバッファ13に格納されている文字「あ」の形状データの参照数は0になる。このとき、中間コードバッファ15に仮置きされていた文字の形状データをフォントキャッシュバッファ13に移動させる。図25に示す例では、文字「い」の形状データをフォントキャッシュバッファ13の空いた領域に移動させた場合を示している。このとき、中間コードバッファ15に格納されている中間コードのうち、文字「い」の形状データを参照する情報を書き換える。
【0020】
このようにして、フォントキャッシュバッファ13に空きができ次第、中間コードバッファ15に仮置きしていた文字の形状データをフォントキャッシュバッファ13に移し替える。これによって、中間コードバッファ15の空き容量をなるべく多くするとともに、フォントキャッシュバッファ13に常に最新の文字の形状データを保持させることができる。
【0021】
しかし、文字の形状データを中間コードバッファ15からフォントキャッシュバッファ13に移し替えると、その形状データを参照していた中間コードの情報を書き換えなければならない。そのためには、移し替える文字の形状データを参照している中間コードを、中間コードバッファ15全体から探索する必要がある。そのため、文字の形状データを中間コードバッファ15からフォントキャッシュバッファ13に移し替えるための処理に時間がかかり、全体として文字の描画処理を高速に行うことができないという問題がある。
【0022】
また、上述の方式ではフォントキャッシュバッファ13に登録された文字の形状データは、その参照数が0になって領域が開放されない限り、その領域を占有する。そのため、例えば中間コードバッファ15に格納されている他の文字の形状データと入れ替えることでフォントキャッシュバッファ13を効率的に使用できる場合でも、そのようなことは行われていない。逆に、フォントキャッシュバッファ13から中間コードバッファ15へ文字の形状データを移し替えるには、上述のように中間コードバッファ15に格納されている中間コードをすべて検査し、移し替えた文字の形状データを参照している中間コードについてその参照の情報を書き換えなければならない。そのため、処理速度が遅くなるという問題があった。
【0023】
【発明が解決しようとする課題】
本発明は、上述した事情に鑑みてなされたもので、中間コードバッファなどのコード情報の格納領域を有効に活用できるとともに、高速に文字を描画するコード情報の処理を行うことができる画像処理装置及び画像処理方法と、そのような画像処理装置および画像処理方法を用いた画像形成装置を提供することを目的とするものである。
【0024】
【課題を解決するための手段】
第1の発明は、画像処理装置及び画像処理方法において、文字を示すコード情報が入力されたとき、そのコード情報が示す文字の形状データを参照するためのフォント格納手段内の形状データの参照情報をコード情報格納手段に格納し、またその文字の形状データを参照するコード情報を指し示す参照情報を、その文字の形状データに対応付けてフォント格納手段に格納し、文字の形状データをフォント格納手段に格納させる際に、フォント格納手段に空きがない場合、フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報をコード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けてコード情報格納手段に格納している形状データを参照するための参照情報を書き換え、コード情報格納手段にコード情報を格納可能な空き容量がなくなると、コード情報格納手段に格納されているコード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化し、または、コード情報格納手段に格納されているコード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報をコード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化し、描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とするものである。これによって、それぞれの文字を示すコード情報は文字の形状データとの間で相互に参照するデータ構造となる。そのため、例えば文字の形状データをコード情報格納手段からフォント格納手段へ、あるいはフォント格納手段からコード情報格納手段へ移し替えても、相互参照をたどることによって、移し替えた形状データを参照しているコード情報について参照情報を容易に変更することができる。そのため、文字の形状データのコード情報格納手段とフォント格納手段の間での移し替えを高速に行い、効率よくフォント格納手段を利用するとともに、全体の処理を高速化することができる。
【0025】
また第2の発明は、画像処理装置及び画像処理方法において、文字を示すコード情報が入力されたとき、そのコード情報が示す文字の形状データを参照するためのフォント格納手段内の形状データの参照情報をコード情報に対応付けてコード情報格納手段に格納し、またその文字の形状データを参照するコード情報を指し示す参照情報を、その文字の形状データに対応付けてフォント格納手段に格納する。これによって、文字の形状データとその文字の形状データを参照する中間コードとの間で相互参照が図られる。さらに、そのコード情報が示す文字と同じ文字を示す別のコード情報が既にコード情報格納手段に格納されているときは、その文字の形状データに対応付けてフォント格納手段に格納されている参照情報をもとに、先のコード情報に対応付けられている参照情報を後のコード情報を指し示す参照情報に変更するとともに、後のコード情報に対応付けて先のコード情報を指し示す参照情報を前記コード情報格納手段に格納する。これによって、文字の形状データを一端のノードとし、その文字の形状データを参照するコード情報を中間のノード及び他端のノードとする相互参照リストを構成することができる。例えば文字の形状データをコード情報格納手段からフォント格納手段へ、あるいはフォント格納手段からコード情報格納手段へ移し替えても、文字の形状データに対応付けて格納されている参照情報と、その形状データと相互参照されているコード情報の参照情報とを変更するのみでよい。そのため、文字の形状データのコード情報格納手段とフォント格納手段の間での移し替えを高速に行い、効率よくフォント格納手段を利用するとともに、全体の処理を高速化することができる。さらに、文字の形状データをフォント格納手段に格納させる際に、フォント格納手段に空きがない場合、フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報をコード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けてコード情報格納手段に格納している形状データを参照するための参照情報を書き換える。さらにまた、コード情報格納手段にコード情報を格納可能な空き容量がなくなると、コード情報格納手段に格納されている前記コード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正する。あるいは、コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報をコード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正し、描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とするものである。
【0027】
【発明の実施の形態】
図1は、本発明の画像処理装置の第1の実施の形態を示すブロック図である。図中の符号は図20と同様である。なお図1は、本発明の画像処理方法の第1の実施の形態を実現するための構成でもある。文字データ管理部11及び中間コード管理部14によって管理手段を構成している。また、中間コードバッファ15はコード情報格納手段を、フォントキャッシュバッファ13はフォント格納手段を、文字データ生成処理部12は文字データ生成手段をそれぞれ構成している。図1における文字データは、上述のように文字を描画する入力データであってもよいし、上述の中間コードに相当するデータであってもよい。また、図1における中間コードはコード情報に対応するものである。
【0028】
文字データ管理部11は、文字データが入力されると、文字データが示す文字の形状データをフォントキャッシュバッファ13から探す。存在すれば中間コードにフォントキャッシュバッファ13内の文字の形状データを指し示す参照情報を付加して中間コード管理部14に渡す。そして、中間コード管理部14から中間コードを指し示す参照情報を取得し、フォントキャッシュバッファ13内の対応する文字の形状データに、取得した参照情報を付加する。このようにしてフォントキャッシュバッファ13内の対応する文字の形状データには、その形状データを参照するすべての中間コードの参照情報が対応付けられる。
【0029】
文字データが示す文字の形状データがフォントキャッシュバッファ13内に存在しない場合には、後述するように中間コードバッファ15に待避した文字の形状データから探す。この場合も、中間コードバッファ15に待避している文字の形状データを指し示す参照情報を中間コードに付加して中間コード管理部14に渡す。そして、中間コード管理部14から中間コードを指し示す参照情報を取得し、中間コードバッファ14内の対応する文字の形状データに、取得した参照情報を付加する。このようにして中間コードバッファ14内の対応する文字の形状データについても、その形状データを参照するすべての中間コードの参照情報が対応付けられる。
【0030】
文字データが示す文字の形状データがフォントキャッシュバッファ13にも中間コードバッファ15にも存在しない場合には、文字データ生成処理部12に依頼して、文字の形状データを生成させる。生成した文字の形状データは、基本的にフォントキャッシュバッファ13に格納する。フォントキャッシュバッファ13に空き領域がなく、生成した文字の形状データが格納できない場合には、所定の手順により中間コードバッファ15に待避する文字の形状データを選択し、選択した文字の形状データを中間コードバッファ15に待避させる。待避した文字の形状データが、新たに生成したものである場合には、上述の中間コードバッファ15に文字の形状データが存在する場合と同様に処理を行う。中間コードバッファ15に待避させる文字の形状データは、フォントキャッシュバッファ13に格納されているときと同様に書体や文字コードなどの情報を持ったまま待避させることができる。また、フォントキャッシュバッファ13内に存在していた文字の形状データを中間コードバッファ15に待避する場合には、後述する文字の形状データの追い出し処理を行って空き領域を確保してから、新たに生成した文字の形状データをフォントキャッシュバッファ13に格納し、上述のフォントキャッシュバッファ13内に文字の形状データが存在する場合と同様に処理を行う。
【0031】
中間コード管理部14は、文字データ管理部11から渡される中間コードや他の処理部から渡される中間コードを中間コードバッファ15に格納する。文字データ管理部11から渡された中間コードを中間コードバッファ15に格納した場合には、その中間コードを指し示す参照情報を文字データ管理部11に返す。また、中間コードバッファ15に空き領域がなくなると、後述するフォールバック処理を行って中間コードバッファ15内に空き領域を生成する。中間コードバッファ15に格納された中間コードに従って文字の描画処理が行われた後は、その文字の形状データに付されていた中間コードへの参照情報を書き換える。あるいは、1ページや1バンドといった描画単位ごとに、文字の形状データに付されていた中間コードへの参照情報を初期化してもよい。このとき、文字データ管理部11と協働して初期化の処理を行ってもよい。
【0032】
図2は、本発明の画像処理装置の第1の実施の形態における動作の一例を示すフローチャートである。なお図2は、本発明の画像処理方法の第1の実施の形態も示している。文字データが文字データ管理部11に入力されると、S111において、文字データが示す文字の形状データをフォントキャッシュバッファ13から探す。見つかればS120に進み、中間コード管理部14を介して中間コードとともに、見つかった文字の形状データを参照するための参照情報を中間コードバッファ15へ書き込む。さらにS121において、中間コードバッファ15へ書き込んだ中間コードを参照するための参照情報を、見つかった文字の形状データに対応付けてフォントキャッシュバッファ13へ書き込む。
【0033】
入力された文字データが示す文字の形状データがフォントキャッシュバッファ13に存在しない場合には、S112において、その文字の形状データを中間コードバッファ15から探す。中間コードバッファ15に存在する文字の形状データにも、フォントキャッシュバッファ13に存在する場合と同様に文字コードや書体などの情報を付加しておくことにより、中間コードバッファ15内の文字の形状データも簡単に検索することが可能である。
【0034】
中間コードバッファ15に存在する場合には、S120に進み、中間コード管理部14を介して中間コードとともに、見つかった文字の形状データを参照するための参照情報を中間コードバッファ15へ書き込む。さらにS121において、中間コードバッファ15へ書き込んだ中間コードを参照するための参照情報を、見つかった文字の形状データに対応付けて中間コードバッファ15へ書き込む。
【0035】
入力された文字データが示す文字の形状データがフォントキャッシュバッファ13及び中間コードバッファ15に存在しない場合には、S113において、文字データが示す文字の形状データを文字データ生成処理部12で生成する。S114において、新たに生成した文字の形状データがフォントキャッシュバッファ13に登録可能か否かを調べる。フォントキャッシュバッファ13に空きがあり、新たに生成した文字の形状データが登録可能であれば、S119において、新たに生成した文字の形状データをフォントキャッシュバッファ13に登録する。そしてS120に進み、中間コード管理部14を介して中間コードとともに、フォントキャッシュバッファ13に登録した文字の形状データを参照するための参照情報を中間コードバッファ15へ書き込む。さらにS121において、中間コードバッファ15へ書き込んだ中間コードを参照するための参照情報を、フォントキャッシュバッファ13に登録した文字の形状データに対応付けてフォントキャッシュバッファ13へ書き込む。
【0036】
フォントキャッシュバッファ13に空きがなく、新たに生成した文字の形状データがフォントキャッシュバッファ13に登録できない場合には、S115〜S118において、フォントキャッシュバッファ13から中間コードバッファ15に文字の形状データを待避させる追い出し処理を行う。S115において、フォントキャッシュバッファ13に既に登録されている文字の形状データのうちから、所定の方式により中間コードバッファ15に待避する文字の形状データを選択する。
【0037】
S116において、S115で選択した文字の形状データを中間コードバッファ15に待避可能か否かを判定する。もし、中間コードバッファ15へ文字の形状データを待避させるだけの空き領域がなく、待避できない場合には、S117において、中間コードバッファ15に空き領域を生成するフォールバック処理を行う。このフォールバック処理については後述する。
【0038】
中間コードバッファ15に空きが存在する場合、あるいはS117におけるフォールバック処理で空き領域を確保した後、S118において、S115で選択した文字の形状データを中間コードバッファ15へ移し替える。このとき、フォントキャッシュバッファ13に格納されているときと同様に書体や文字コードなどの情報を持ったまま、文字の形状データを中間コードバッファ15に待避させる。これによって中間コードバッファ15内の文字の形状データの検索を容易に行うことができるようにする。そしてS114へ戻り、フォントキャッシュバッファ13の空き容量を確認する。空き容量がまだ不足している場合には、S115〜S118の処理を繰り返して行う。
【0039】
フォントキャッシュバッファ13に新たに生成した文字の形状データを登録可能な空き容量が確保できると、上述のようにS119で新たに生成した文字の形状データをフォントキャッシュバッファ13に登録する。そしてS120において、中間コード管理部14を介して中間コードとともに、フォントキャッシュバッファ13に新たに登録した文字の形状データを参照するための参照情報を中間コードバッファ15へ書き込む。さらにS121において、中間コードバッファ15へ書き込んだ中間コードを参照するための参照情報を、フォントキャッシュバッファ13に新たに登録した文字の形状データに対応付けてフォントキャッシュバッファ13へ書き込む。
【0040】
このようにして、入力された文字データに対する中間コードは、その文字データが示す文字の形状データと対応付けて中間コードバッファ15に格納される。なお、上述の追い出し処理において中間コードバッファ15に追い出す文字の形状データは、フォントキャッシュバッファ13に既に登録されている中から選択したが、新たに生成した文字の形状データを含めた中から選択するように構成してもよい。中間コードバッファ15に追い出す文字の形状データの選択方法は、従来より各種の手法が考案されており、任意の方法を用いることが可能である。また、上述のフローチャートでは示していないが、文字の形状データを中間コードバッファ15に格納するときだけでなく、中間コードバッファ15にデータを書き込む際に中間コードバッファ15に空きがない場合には、S117で行うフォールバック処理を実行して、中間コードバッファ15の空き容量を増加させる。
【0041】
図3は、本発明の画像処理装置及び画像処理方法の第1の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。図2のS120及びS121で説明したように、文字の形状データを参照するための参照情報を中間コードバッファに書き込むとともに、その形状データを参照する中間コードを参照するための参照情報を、その文字の形状データに対応付けて書き込む。例えば図3に示すように、中間コードバッファ15のアドレスaに格納された中間コードが文字「あ」を描画するコードであるとき、その中間コードには、フォントキャッシュバッファ13に登録されている文字「あ」の形状データが格納されているアドレスAが参照情報として書き込まれる。それとともに、文字「あ」の形状データには、この形状データを参照している中間コードの参照情報、例えばアドレスa、アドレスb、アドレスcが形状データに対応付けて書き込まれる。これによって、文字の形状データと中間コードは相互に参照できるようになる。
【0042】
例えば新たに文字「あ」を描画する文字データが入力されると、フォントキャッシュバッファ13内の文字「あ」の形状データを参照するためのアドレスAを、入録された文字データに対応する中間コードに付加して中間コードバッファ15に書き込む。それとともに、例えばその中間コードを書き込んだアドレスを参照情報として、フォントキャッシュバッファ13の文字「あ」の形状データに対応付けて追加して書き込めばよい。
【0043】
なお、例えば描画処理をバンドごとに行うことがある。このとき、文字の形状がバンドの境界にまたがる場合がある。図4は、文字の形状がバンド境界にまたがる場合に中間コードが保持するデータの一例の説明図である。文字の形状がバンド境界にまたがる場合には、バンドの境界で分割された文字形状の部分について、その先頭への参照情報とともに、そのバンドに含まれる部分の幅や高さといったサイズ情報を中間コードに保持させておけばよい。例えば図4に示した例では、アドレスaに格納された中間コードは、文字「あ」の先頭から高さH1だけの部分のみを描画することを示している。同様に、アドレスbに格納された中間コードは、文字「あ」のアドレスBの位置から高さH2だけの部分のみを描画することを示し、アドレスcに格納された中間コードは、文字「あ」のアドレスCの位置から高さH3だけの部分のみを描画することを示している。このようにすることによって、分割された文字の形状をそれぞれ保持する必要が無く、バンドをまたがる場合にも1つの文字の形状データを保持するのみでよい。そのため、記憶領域を節約することができる。
【0044】
また、図3に示した例では、クリップ処理を行った文字の形状データについては中間コードバッファ15に格納している。もちろん、クリップ処理を行った文字の形状データについてもフォントキャッシュバッファ13に格納するように構成してもよい。図5は、クリップ処理の一例の説明図である。クリップ処理とは、図形や文字について、与えられた領域内の部分についてのみ描画されるように処理することである。例えば図5(A)に示すような文字「あ」が与えられたとき、図5(B)に太線で囲んで示す領域でクリップする場合には、図5(C)に示すように描画することになる。もちろんクリップ処理は文字に限られるものではなく、グラフィック図形やイメージなどにおいても同様の処理が行われる。文字についてクリップ処理を行った場合には、図5(C)に示すようにクリップ処理の結果得られた形状データを、例えば図3に示す例では中間コードバッファ15に格納している。
【0045】
なお、主走査方向へのクリップを行う場合には、図4に示したように文字の形状データへの参照情報とともに幅や高さの情報を中間コードに保持させることによって、フォントキャッシュバッファ13内の文字の形状データを利用することが可能である。この場合、クリップされた文字の形状データを中間コードバッファ15に格納しなくて済むので、中間コードバッファ15のメモリ消費を低減することができる。
【0046】
新たな文字を描画する文字データが入力されると、フォントキャッシュバッファ13,中間コードバッファ15内の文字の形状データを探す。見つからなければ文字データ生成処理部12により新たに文字の形状データを生成して、フォントキャッシュバッファ13に登録するとともに、その文字データの中間コードとの間で相互に参照するためのデータをフォントキャッシュバッファ13及び中間コードバッファ15に書き込む。
【0047】
このようにして新たに文字の形状データが生成される度に、フォントキャッシュバッファ13に生成された文字の形状データが登録されてゆく。生成する文字の形状データが多い場合、登録してゆくうちにフォントキャッシュバッファ13に形状データを登録できる空きがなくなってしまう。このような場合には、フォントキャッシュバッファ13に登録されている文字の形状データ(あるいは新たに登録する文字の形状データも含めて)のうちから、所定の手法に従って選択した文字の形状データを中間コードバッファ15に待避する追い出し処理を行う。
【0048】
図6は、本発明の画像処理装置及び画像処理方法の第1の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。例えばフォントキャッシュバッファ13に空きがない状態で、文字「い」の形状データを新たに生成したとする。この場合、図2に示したフローチャートに従い、追い出し処理を行う。図6に示す例では、所定の方式によってフォントキャッシュバッファ13に既に登録されていた文字「あ」の形状データが選択され、この形状データを中間コードバッファ15に待避させた場合を示している。
【0049】
選択された文字「あ」の形状データは、中間コードバッファ15の空き容量を確認後、フォントキャッシュバッファ13から中間コードバッファ15に移し替えられる。このとき、移し替える文字の形状データは、フォントキャッシュバッファ13に格納されているときと同様に書体や文字コードなどの情報を持ったまま中間コードバッファ15に移し替えることができる。それとともに、文字「あ」の形状データに付加されている中間コードに対する参照情報をもとに、中間コードに付加されている文字「あ」の形状データを参照するための参照情報を書き換える。これによって、文字の形状データと中間コードとの間の相互参照の関係を維持する。また、このように相互に参照しているので、文字の形状データを中間コードバッファ15に移し替えたとき、中間コードに付加されている参照情報の書き換えは、文字の形状データに付加されている参照情報に基づいて行うことができる。そのため、中間コードバッファ15内の検索する必要がなく、高速に追い出し処理を行うことができる。
【0050】
このようにして文字「あ」の形状データをフォントキャッシュバッファ13から中間コードバッファ15に移し替えた後、フォントキャッシュバッファ13の空き容量をチェックし、登録可能であれば新たに生成した文字「い」の形状データをフォントキャッシュバッファ13に格納する。そして、文字「い」を描画する中間コードとの間で相互に参照する参照情報をそれぞれ書き込む。これによって図6に示すような状態となる。
【0051】
なお、中間コードバッファ15に追い出された文字の形状データは、例えば中間コードからの参照がなくなった時点で削除される。あるいは、中間コードバッファ15は例えば1ページ等の所定の単位で画像を描画するごとに更新されるので、その更新の際に削除される。
【0052】
また、中間コードバッファ15に追い出される形状データとして選択された文字の形状データに対して、中間コードからの参照がない場合には、中間コードバッファ15に転送せずに、フォントキャッシュバッファ13から削除してもよい。
【0053】
上述のような追い出し処理の過程において、中間コードバッファ15に空きがなく、フォントキャッシュバッファ13から追い出す文字の形状データを中間コードバッファ15に格納できない場合がある。また、文字にかかわらず、中間コードを中間コードバッファ15に登録してゆくうちに、中間コードバッファ15が満杯になってしまう場合がある。このような場合には、中間コードバッファ15に空き領域を生成するフォールバック処理を行う。
【0054】
図7は、フォールバック処理の第1の例の説明図である。図中の▲1▼〜▲4▼はそれぞれ描画するオブジェクトを示している。図7(A)には、描画の重なりを示している。すなわち、▲1▼及び▲2▼のオブジェクトを描画した上に、▲3▼のオブジェクトを▲1▼のオブジェクトに掛かるように描画し、さらにその後、▲4▼のオブジェクトを描画したことを示している。
【0055】
このようにオブジェクトを上書きしてゆくと、▲1▼〜▲3▼のオブジェクトに従って描画した図形は、▲4▼のオブジェクトを描画することで消えてしまう。そのため、描画結果としては図7(B)に示すように▲4▼のオブジェクトのみを描画した場合と等価になる。なお、ここでは描画したオブジェクトは透過しないものとしている。
【0056】
このように、後で描画するオブジェクトの描画領域に完全に含まれている先のオブジェクトは、描画しなくてもよいため削除することができる。このような性質を利用し、図7に示す▲1▼〜▲3▼のオブジェクトのような関係の中間コードを中間コードバッファ15から探索して削除することができる。これによって、中間コードバッファ15の空き容量を増加させることができる。
【0057】
図8は、フォールバック処理の第2の例の説明図である。この例では、中間コードバッファ15に格納された、フォールバック処理時点における中間コードの全部あるいは一部を元に、実際に描画処理を行ってしまう。そして描画処理を行った中間コードを中間コードバッファ15から削除する。このフォールバック処理によって生成される描画結果は、最終的な描画画像ではなく、あくまでも中間的な描画画像である。このような描画画像を例えばバンドバッファ6に格納しておく。図8に示す例では、さらに圧縮処理を施し、圧縮画像を形成し、例えばバンドバッファ6あるいは別に設けられている圧縮バンドバッファ等に格納しておくことができる。そして中間コードバッファ15には、描画画像あるいは圧縮画像を参照する参照情報を含む中間コードを格納する。このようなフォールバック処理によって、描画した中間コードを削除できるので、中間コードバッファ15の空き容量を大幅に増加させることができる。
【0058】
このようにして生成された中間的な描画画像あるいは圧縮画像は、以後、イメージデータとして取り扱い、この画像に対して後で登録される中間コードによって上書き描画を行ってゆく。最終的に例えば1ページ分のオブジェクトの描画が完了すれば、最初の中間コードから順に描画した場合とほぼ等価な画像が得られる。なお、非可逆の圧縮を施した場合には、多少の画質劣化が生じる。しかし、フォールバック処理は中間コードバッファ15に空きがなくなったときの例外的な処理であり、中間コードバッファ15の容量を増加させればフォールバック処理は減少させることが可能である。
【0059】
図9は、本発明の画像処理装置及び画像処理方法におけるフォールバック処理の一例を示すフローチャートである。この例では、図7に示すフォールバック処理の第1の例を実行し、まだ空きが不足する場合には図8に示すフォールバック処理の第2の例を実行する場合について示している。もちろん、いずれかを実行するように構成してもよい。なお、この図9に示す処理は、例えば図2のS117において行うことができる。
【0060】
S131において、まず図7に示したように、後のオブジェクトによって完全に重複して描画される先のオブジェクトに対応する中間コードを、中間コードバッファ15から削除する。この処理によって、ある程度、中間コードバッファ15に空き領域を確保することができる。
【0061】
S132において、S131で空き領域を確保することによって、中間コードバッファ15への書き込みが可能になったか否かを判定する。書き込みが可能であれば、フォールバック処理を終了する。
【0062】
まだ中間コードバッファ15への書き込みを行うことができない、即ち空き容量がまだ少ない場合には、図8に示した方法によって、フォールバック処理を行う。S133において、現時点における中間コードバッファ15の内容に従って描画処理を行い、中間的な描画画像を生成する。描画処理を行った中間コードは、中間コードバッファ15から削除してゆく。さらにここでは、S134において、描画画像を圧縮して、圧縮画像を生成する。なお、このS134における圧縮処理は行わなくてもよい。このようにして生成された描画画像あるいは圧縮画像を参照する参照情報を含む中間コードを中間コードバッファ15に格納する。このようにして、フォールバック処理を行うことができる。
【0063】
図10は、本発明の画像処理装置及び画像処理方法の第1の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。図10では、図3に示した状態において中間コードバッファ15に空きがなくなり、フォールバック処理を行った場合を示している。この例では、図10の中間コードバッファ15において上から破線で示した部分までの中間コードについて図8に示した方法によってフォールバック処理を行ったものとする。即ち、図10中の中間コードバッファ15の上から破線で示した部分までの中間コードに従って描画処理を行い、中間的な描画画像を生成する。そして描画画像を圧縮し、図10の下部に示す圧縮画像を得る。
【0064】
描画処理を行った中間コードについては削除する。このとき、文字を描画する中間コードについては、文字の形状データとの間で相互参照の関係がある。文字を描画する中間コードを削除する際には、削除する中間コードを参照している文字の形状データの参照情報を、図10に示すように無効な値に変更する。あるいは、その参照情報を削除してもよい。このようにして、削除する中間コードと文字の形状データとの間の参照関係を無効にする。
【0065】
このような描画処理を順次行い、中間コードを削除してゆくことによって、中間コードバッファ15には大きな空き領域が生成される。この空いた領域に、中間的な描画画像あるいはその描画画像を圧縮した圧縮画像を参照する参照情報を含む中間コードを格納する。このようにして、フォントキャッシュバッファ13及び中間コードバッファ15の内容は、図10に示すようになる。なお、中間コードバッファ15において破線から上の部分が、フォールバック処理によって空き領域となる。
【0066】
なお、通常の描画処理の際にも、上述のフォールバック処理と同様の処理を文字の形状データに付加されている参照情報について行うことができる。すなわち、文字の描画処理を行った中間コードについては、その中間コードを参照している文字の形状データの参照情報を無効な値に変更したり、あるいは、その参照情報を削除する。これによって、描画処理が終了した中間コードと文字の形状データとの間の参照関係を無効にしておく。あるいは、1ページや1バンドなどの所定の単位で描画処理を行った後、一括して文字の形状データに付加されている参照情報を更新するように処理を行ってもよい。
【0067】
以上、説明したように、本発明の第1の実施の形態では、文字の形状データと中間コードとの間に相互参照の関係を持たせておくことにより、各中間コードごとに文字の形状データを複写する場合に比べて中間コードの登録を高速に行うことができるとともに、中間コードバッファ15を有効に利用することができる。また、中間コードから文字の形状データを参照するのみの構成に比べて、例えば追い出し処理を行う場合にも中間コードバッファ15を探索する必要がなく、高速な追い出し処理を行うことができる。
【0068】
次に、本発明の画像処理装置及び画像処理方法の第2の実施の形態について説明する。構成及び動作は、上述の第1の実施の形態とほぼ同じであり、図1に示す構成及び図2に示す動作の一例を適用できる。この第2の実施の形態では、文字の形状データと、その文字の形状データを参照する中間コードとの間の参照関係を示すデータ構造が異なっている。
【0069】
図11は、本発明の画像処理装置及び画像処理方法の第2の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。この第2の実施の形態では、フォントキャッシュバッファ13に格納されている文字の形状データと、その文字の形状データを参照する中間コードバッファ15内の1ないし複数の中間コードとを、文字の形状データを一端とする相互参照リスト構造として相互に接続している。
【0070】
例えば図11に示すように、文字「あ」の形状データと、その文字「あ」の形状データを参照する3つの中間コードが存在するとき、文字「あ」の形状データには、中間コードの1つを参照する参照情報(図11に示す例ではアドレスa)を対応付けておく。また、アドレスaに格納されている中間コードには、文字「あ」の形状データを参照する参照情報(アドレスA)を対応付けておくとともに、他の中間コードの一つを参照する参照情報(アドレスb)を対応付けておく。さらにアドレスbに格納されている中間コードには、この中間コードを参照している中間コードを参照するための参照情報(アドレスa)と、さらに別の中間コードの一つを参照する参照情報(アドレスc)を対応付ける。アドレスcに格納されている中間コードも同様であり、アドレスcの中間コードを参照するための参照情報(アドレスb)と、他の中間コードの一つを参照する参照情報を対応付ける。このようにして、文字「あ」の形状データを一端とし、相互に参照情報を有する中間コードがリスト構造によって結合されたデータ構造によって構成されている。
【0071】
新たな中間コードが既存の文字を描画するものである場合には、その中間コードをリスト中に組み込めばよい。例えば図11に示す例においては、文字「あ」の形状データと、その形状データを参照するアドレスaに格納された中間コードとの間に、新たな中間コードを挿入することができる。このとき、アドレスaに格納された中間コードにおける文字の形状データを参照する参照情報を、新たな中間コードを参照する参照情報に変更する。また、文字「あ」の形状データの参照情報は、新たな中間コードを参照する参照情報に書き換える。さらに新たな中間コードには、文字「あ」の形状データを参照する参照情報と、アドレスaに格納された中間コードを参照する参照情報(アドレスa)を格納すればよい。もちろん、新たな中間コードを挿入する位置は、文字の形状データの直後である必要はなく、リストの最後尾など、任意の位置に挿入、接続することが可能である。
【0072】
なお、上述の第1の実施の形態と同様に、例えばバンドごとに描画処理を行う場合に対応して、バンド境界で文字の形状データが分割されるときには、例えば図4に示したように、分割される形状データの参照位置と幅や高さなどの情報を中間コードに付加しておくとよい。また、図11に示した例では、クリップ処理を行った文字の形状データについては中間コードバッファ15に格納している。もちろん、クリップ処理を行った文字の形状データについてもフォントキャッシュバッファ13に格納するように構成してもよいし、主走査方向へのクリップ時には。上述のバンド境界で分割される場合と同様に、クリップしない文字の形状データを参照するように処理を行ってもよい。
【0073】
図12は、本発明の画像処理装置及び画像処理方法の第2の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。図12では、図11における状態において、文字「あ」の形状データが追い出され、中間コードバッファ15に格納された状態を示している。
【0074】
この第2の実施の形態では、この追い出し処理を非常に簡単に行うことができる。即ち、図12に示すように文字「あ」の形状データを中間コードバッファ15に格納した後、その参照関係は文字「あ」の形状データを参照している中間コード(アドレスaに格納されている中間コード)の参照情報を変更するのみでよい。文字の形状データを中間コードバッファ15に格納する際には、フォントキャッシュバッファ13に格納されているときと同様に、書体や文字コードなどの情報を持ったまま格納すればよい。
【0075】
このように、追い出し処理を行った場合でも、参照情報の変更は1つの中間コードにおいて行うだけで済むので、従来のように中間コードバッファ15を探索したり、上述の第1の実施の形態のように複数の中間コードの参照情報を変更する場合に比べて、簡単に、しかも高速に処理することができる。
【0076】
図13は、本発明の画像処理装置及び画像処理方法の第2の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。図13では、図11における状態から、図13に示す破線より上に格納されている中間コードについて、図8で説明した方法によりフォールバック処理を行った例を示している。
【0077】
ここでは図11に示すアドレスaとアドレスbに格納されていた中間コードについては、描画処理を行って削除されている。この場合、削除される中間コードの前後の中間コードに対して、それぞれ対応付けられていた参照データを書き込むことで相互参照リスト構造を保持したまま、中間コードの削除を行うことができる。例えば図11に示すアドレスaに格納されている中間コードを削除する場合には、文字「あ」の形状データを参照する参照情報で、アドレスbに格納されている中間コードのアドレスaに格納されている中間コードを参照する参照情報を書き換える。また、アドレスbに格納されている中間コードを参照する参照情報を、文字「あ」の形状データの参照情報として書き込む。これによって、文字「あ」の形状データはアドレスbに格納されている中間コードを参照し、逆にアドレスbに格納されている中間コードは文字「あ」の形状データを参照することになる。同様にしてアドレスbに格納されている中間コードも削除されると、図13に示すように、文字「あ」の形状データとアドレスcに格納されている中間コードが相互に参照するようになる。
【0078】
このように、フォールバック処理によって中間コードが削除される場合の処理も、削除する中間コードが直接参照する中間コードまたは文字の形状データの参照情報を書き換えるだけであり、簡単な処理でデータ構造を保持したまま処理を行うことができる。
【0079】
なお、通常の描画処理の際にも、上述のフォールバック処理と同様の処理を文字の形状データに付加されている参照情報及び中間コードに付加されている参照情報について行うことができる。すなわち、文字の描画処理を行った中間コードについては、その中間コードに付加されている2つの参照情報によって参照している文字の形状データあるいは中間コードの参照情報をそれぞれ更新する。これによって、描画処理が終了した中間コードが相互参照リストからはずされて削除可能になる。あるいは、1ページや1バンドなどの所定の単位で描画処理を行った後、一括して文字の形状データ及び中間コードに付加されている参照情報を更新するように処理を行ってもよい。
【0080】
図14は、本発明の画像処理装置の第3の実施の形態を示すブロック図である。図中の符号は図20と同様である。なお図14は、本発明の画像処理方法の第3の実施の形態を実現するための構成でもある。この第3の例においても、文字データ管理部11及び中間コード管理部14によって管理手段を構成している。また、中間コードバッファ15はコード情報格納手段を、フォントキャッシュバッファ13はフォント格納手段を、文字データ生成処理部12は文字データ生成手段をそれぞれ構成している。図14における文字データは、上述のように文字を描画する入力データでもよいし、上述の中間コードに相当するデータでもよい。また、図14における中間コードはコード情報に対応するものである。
【0081】
この第3の実施の形態では、文字データ管理部11は、文字データが入力されると、文字データが示す文字の形状データを、まず中間コードバッファ15から探す。もし、文字データが示す文字の形状データが中間コードバッファ15に既に格納されている場合には、その文字の形状データを参照する参照情報を含む中間コードを中間コード管理部14に渡す。中間コードバッファ15に文字データが示す文字の形状データが格納されていない場合には、フォントキャッシュバッファ13を検索して文字の形状データを取得し、その文字の形状データを中間コードバッファ15に格納させるとともに、その文字の形状データを参照する参照情報を含む中間コードを中間コードバッファ15に格納させる。文字の形状データを中間コードバッファ15に格納させる際には、フォントキャッシュバッファ13に格納されているときと同様に、文字の形状データに書体や文字コードなどの情報を持たせたまま、中間コードバッファ15に格納させるとよい。これにより中間コードバッファ15内の文字の形状データを探す際に容易に行うことができるようになる。
【0082】
また、フォントキャッシュバッファ15に文字データが示す文字の形状データが格納されていない場合には、文字データ生成処理部12で新たに文字の形状データを生成し、フォントキャッシュバッファ15に格納するとともに、中間コードバッファ15に格納させ、中間コードバッファ15に格納した文字の形状データを参照する参照情報を含む中間コードを中間コードバッファ15に格納させる。文字の形状データ及び中間コードを中間コードバッファ15に格納する際には、中間コード管理部14を介して行うことができる。なお、文字データ管理部11はフォントキャッシュバッファ13の管理も行うが、管理手法は任意であり、周知の種々の手法を用いることができる。
【0083】
中間コード管理部14は、文字データ管理部11から渡される中間コードや他の処理部から渡される中間コードを中間コードバッファ15に格納する。また、文字データ管理部11から渡される文字の形状データについても中間コードバッファ15に格納する。中間コード管理部14は中間コードバッファ15を管理し、中間コードバッファ15に空き領域がなくなると、上述したようなフォールバック処理を行って中間コードバッファ15内に空き領域を生成する。例えば1ページ分などの単位で中間コードが中間コードバッファ15に格納されると、中間コードを参照して描画処理を行い、画像を出力する。
【0084】
なお、上述の説明では文字データ管理部11が中間コードバッファ15内に存在する文字の形状データを探索するものとして説明したが、これに限らない。例えば文字データ管理部11は文字の形状データを中間コード管理部14に渡し、中間コード管理部14において、渡された文字の形状データが中間コードバッファ15に格納されている場合には、既に格納されている文字の形状データを参照する参照情報を文字の形状情報に代えて中間コードバッファ15に格納するように構成してもよい。
【0085】
このように、この第3の実施の形態では、文字の形状データを中間コードバッファ15に配置するとともに、重複して中間コードバッファ15に格納せずに、各中間コードには文字の形状データを参照する参照情報を付加している。これによって、中間コードバッファ15の消費量を減少させ、有効に利用することができるようになる。
【0086】
図15は、本発明の画像処理装置の第3の実施の形態における動作の一例を示すフローチャートである。なお図15は、本発明の画像処理方法の第3の実施の形態も示している。文字データが文字データ管理部11に入力されると、S141において、文字データが示す文字の形状データを中間コードバッファ15から探す。このとき、文字の形状データに書体や文字コードなどの情報が付加されていれば、容易に探すことができる。見つかればS150に進み、中間コード管理部14を介して中間コードとともに、見つかった文字の形状データを参照するための参照情報を中間コードバッファ15へ書き込む。
【0087】
入力された文字データが示す文字の形状データが中間コードバッファ15に存在しない場合には、S142において、その文字の形状データをフォントキャッシュバッファ13から探す。フォントキャッシュバッファ13に存在する場合には、S147に進み、文字の形状データを中間コードバッファ15に格納するための処理を行う。
【0088】
入力された文字データが示す文字の形状データがフォントキャッシュバッファ13及び中間コードバッファ15に存在しない場合には、S143において、文字データが示す文字の形状データを文字データ生成処理部12で生成する。S144において、新たに生成した文字の形状データがフォントキャッシュバッファ13に登録可能か否かを調べる。フォントキャッシュバッファ13に空きがなく、新たに生成した文字の形状データがフォントキャッシュバッファ13に登録できない場合には、S145において、所定の手法によってフォントキャッシュバッファ13内の優先度の低い文字の形状データを選択して削除する追い出し処理を行う。そしてS144に戻って、フォントキャッシュバッファ13の空きの判定を行う。S145の追い出し処理を1ないし複数回繰り返すことによって、S143で新たに生成した文字の形状データを格納できるだけの空き領域を設ける。フォントキャッシュバッファ13に新たに生成した文字の形状データが登録可能な空きがあり、あるいは追い出しにより空きができると、S146において、新たに生成した文字の形状データをフォントキャッシュバッファ13に登録する。
【0089】
次に文字の形状データを中間コードバッファ15に格納するが、その前にS147において、文字の形状データを中間コードバッファ15に格納可能か否かを判定する。もし、中間コードバッファ15へ文字の形状データを格納するだけの空き領域がない場合には、S148において、中間コードバッファ15に空き領域を生成するフォールバック処理を行う。このフォールバック処理は、上述の第1の実施の形態における説明と同様である。
【0090】
中間コードバッファ15に空きが存在する場合、あるいはS148におけるフォールバック処理で空き領域を確保した後、S149において、フォントキャッシュバッファ13に格納されていた文字の形状データ、あるいは新たに生成した文字の形状データを、中間コードバッファ15へ格納する。文字の形状データを中間コードバッファ15へ格納する際には、フォントキャッシュバッファ13に格納されているときと同様に、書体や文字コードなどの情報も付加しておくとよい。そしてS150において、中間コードバッファ15に格納した文字の形状データを参照する参照情報を含む中間コードを、中間コードバッファ15に格納する。これによって、1つの文字データに対する処理を終了する。
【0091】
このようにして、入力された文字データが示す文字の形状データと、その文字の形状データを参照する参照情報を含む中間コードが中間コードバッファ15に格納される。このとき、同じ文字については中間コードバッファ15内に1つしか形状データが格納されず、その文字の形状データを用いる中間コードには、その文字の形状データを参照する参照情報が対応付けられる。そのため、従来のように中間コードバッファ15内に同じ文字の形状データが多数配置されるようなことはなく、中間コードバッファ15を効率よく利用することができる。
【0092】
なお、上述のフローチャートでは示していないが、文字の形状データを中間コードバッファ15に格納するときだけでなく、中間コードバッファ15にデータを書き込む際に中間コードバッファ15に空きがない場合についても、S148で行うフォールバック処理を実行して、中間コードバッファ15の空き容量を増加させる。
【0093】
図16は、本発明の画像処理装置及び画像処理方法の第3の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。上述のように、この第3の実施の形態では、文字の形状データをフォントキャッシュバッファ13とは別に中間コードバッファ15内に格納する。このとき中間コードバッファ15に格納する文字の形状データは、フォントキャッシュバッファ13に格納されているときと同様に、書体や文字コードなどの情報を持たせておく。そして、その文字の形状データを用いて描画を行う中間コードには、中間コードバッファ15内の文字の形状データを参照する参照情報が付加されている。これによって、図16に示すように、例えば文字「あ」を描画する中間コードには、中間コードバッファ15内の文字「あ」の形状データを参照する参照情報が付加され、各中間コードが文字の形状データの実体を持たずに、形状データを参照可能に構成している。
【0094】
このようなデータ構造を採用することによって、フォントキャッシュバッファ13と中間コードバッファ15の管理を独立させることができる。そのため、フォントキャッシュバッファ13の管理手法には影響せずに、中間コードバッファ15のデータ量の低減を図り、中間コードバッファ15の有効利用を図ることができる。
【0095】
なお、例えばバンドごとに描画処理を行う場合に対応して、バンド境界で文字の形状データが分割されるときには、例えば図4に示したように幅や高さなどの情報を中間コードに付加し、文字の形状データについて分割される位置を参照位置として保持させておくとよい。また、図16に示した例では、クリップ処理を行った文字の形状データについては中間コードにクリップ処理後の文字の形状データを付加している。もちろん、クリップ処理を行った文字の形状データについても、上述のように文字の形状データと中間コードとを別に中間コードバッファ15に格納し、中間コードに文字の形状データを参照する参照情報を付加するように構成してもよい。また、主走査方向へのクリップ時には。上述のバンド境界で分割される場合と同様に、クリップしない文字の形状データを参照するように処理を行ってもよい。
【0096】
図17は、本発明の画像処理装置及び画像処理方法の第3の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。上述のように、この第3の実施の形態ではフォントキャッシュバッファ13と中間コードバッファ15の管理を独立させることができる。そのため、フォントキャッシュバッファ13に空きがなくなり、追い出し処理を行う場合には、従来から行われている手法によって優先度の低い文字の形状データを削除してゆき、空いた領域に新たに生成した文字の形状データを登録すればよい。中間コードバッファ15については、追い出し処理においては何ら処理を施す必要はない。そのため、上述の2つの実施の形態に比べて追い出し処理を簡単にしかも高速に実行することができる。
【0097】
図18は、本発明の画像処理装置及び画像処理方法の第3の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。図18では、図16に示した状態において中間コードバッファ15に空きがなくなり、図18の中間コードバッファ15において上から破線で示した部分までの中間コードについて図8に示した方法によってフォールバック処理を行った例を示している。即ち、図18中の中間コードバッファ15の上から破線で示した部分までの中間コードに従って描画処理を行い、中間的な描画画像を生成する。そして描画画像を圧縮し、図18の下部に示す圧縮画像を得る。また、その描画画像あるいは圧縮画像を参照する参照情報を含む中間コードが中間コードバッファ15に格納される。
【0098】
このフォールバック処理において、描画処理を行った中間コードについては削除する。このとき、文字の形状データについてはフォールバック処理の対象領域に存在していても削除しない。そのため、描画処理を行わない領域に存在している中間コードが文字の形状データを参照していても、その参照関係は失われない。文字の形状データは、例えば1ページなどの単位で描画処理を行い、中間コードバッファ15をすべて解放する際に、文字の形状データの領域も解放されて利用できなくなる。
【0099】
以上、説明したように、本発明の第3の実施の形態では、文字の形状データを中間コードバッファ15に格納するとともに、中間コードには文字の形状データを参照するための参照情報を対応付けておく。これによって、各中間コードに文字の形状データを持たせる場合に比べて中間コード量が減少し、中間コードバッファ15を有効に利用することができる。
【0100】
上述した本発明の第1ないし第3の実施の形態は、例えば画像形成装置に適用することができる。図19に示したような画像形成装置に適用する場合には、文字データ処理部2及び中間コード処理部5として、本発明の画像処理装置を組み込み、あるいは本発明の画像処理方法を適用すればよい。これによって、中間コードを格納するメモリを有効に利用することができるとともに、文字を描画する入力データを高速に処理することができる。そのため、画像形成装置全体としての処理を高速化することが可能である。
【0101】
【発明の効果】
以上の説明から明らかなように、本発明によれば、文字の形状データをコード情報とは別に格納し、コード情報には文字の形状データを参照する参照情報を付加することによって、コード情報格納手段におけるデータ量を減少させ、コード情報格納手段を有効に利用することができる。また、文字の形状データとそれぞれのコード情報とを相互に参照可能なように、両者にそれぞれの参照情報を持たせることができる。これによって、例えば文字の形状データをフォント格納手段からコード情報格納手段に移し替える追い出し処理の場合や、コード情報格納手段の空き領域を増加させるフォールバック処理を行う場合でも、文字の形状データを参照しているコード情報の参照情報を簡単に、しかも高速に書き換えることができる。さらに、文字の形状データとその文字の形状データを参照するコード情報を相互参照リスト構造で構成することによって、例えば追い出し処理やフォールバック処理をさらに高速化することが可能である。本発明によれば、このような効果を奏するとともに、詳細に上述したように様々な効果を有している。
【図面の簡単な説明】
【図1】 本発明の画像処理装置の第1の実施の形態を示すブロック図である。
【図2】 本発明の画像処理装置の第1の実施の形態における動作の一例を示すフローチャートである。
【図3】 本発明の画像処理装置及び画像処理方法の第1の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図4】 文字の形状がバンド境界にまたがる場合に中間コードが保持するデータの一例の説明図である。
【図5】 クリップ処理の一例の説明図である。
【図6】 本発明の画像処理装置及び画像処理方法の第1の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図7】 フォールバック処理の第1の例の説明図である。
【図8】 フォールバック処理の第2の例の説明図である。
【図9】 本発明の画像処理装置及び画像処理方法におけるフォールバック処理の一例を示すフローチャートである。
【図10】 本発明の画像処理装置及び画像処理方法の第1の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図11】 本発明の画像処理装置及び画像処理方法の第2の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図12】 本発明の画像処理装置及び画像処理方法の第2の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図13】 本発明の画像処理装置及び画像処理方法の第2の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図14】 本発明の画像処理装置の第3の実施の形態を示すブロック図である。
【図15】 本発明の画像処理装置の第3の実施の形態における動作の一例を示すフローチャートである。
【図16】 本発明の画像処理装置及び画像処理方法の第3の実施の形態においてフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図17】 本発明の画像処理装置及び画像処理方法の第3の実施の形態において追い出し処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図18】 本発明の画像処理装置及び画像処理方法の第3の実施の形態においてフォールバック処理を行ったときのフォントキャッシュバッファに格納される文字の形状データと中間コードバッファに格納される中間コードとの関係の一例の説明図である。
【図19】 一般的な画像形成装置の一例を示すブロック図である。
【図20】 文字データ処理部及び中間コード処理部の一例を示すブロック図である。
【図21】 従来の文字データの処理手順の一例を示すフローチャートである。
【図22】 従来の文字データの処理手順の一例を実行した場合のフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。
【図23】 従来の文字データの処理方法の別の例におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。
【図24】 従来の文字データの処理方法の別の例においてフォントキャッシュバッファに空きがない場合におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。
【図25】 従来の文字データの処理方法の別の例においてフォントキャッシュバッファに空きができた場合におけるフォントキャッシュバッファ及び中間コードバッファ内の文字の形状データの配置状況の具体例の模式図である。
【符号の説明】
1…入力データ解釈部、2…文字データ処理部、3…グラフィックスデータ処理部、4…イメージデータ処理部、5…中間コード処理部、6…バンドバッファ、7…出力部、11…文字データ管理部、12…文字データ生成処理部、13…フォントキャッシュバッファ、14…中間コード管理部、15…中間コードバッファ。
Claims (16)
- 描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを生成する文字データ生成手段と、文字の形状データを格納するフォント格納手段と、新たな文字を示すコード情報に応じて前記文字データ生成手段により該新たな文字の形状データを生成して前記フォント格納手段に格納させるとともに前記コード情報を受け取って前記コード情報格納手段に格納させる管理手段を有し、該管理手段は、文字を示すコード情報については該文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、前記文字データ生成手段により生成した文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、前記コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化することを特徴とする画像処理装置。
- 前記管理手段は、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする請求項1に記載の画像処理装置。
- 描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを生成する文字データ生成手段と、文字の形状データを格納するフォント格納手段と、新たな文字を示すコード情報に応じて前記文字データ生成手段により該新たな文字の形状データを生成して前記フォント格納手段に格納させるとともに前記コード情報を受け取って前記コード情報格納手段に格納させる管理手段を有し、該管理手段は、文字を示すコード情報については該文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、前記文字データ生成手段により生成した文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする画像処理装置。
- 前記管理手段は、前記コード情報が文字を示すとともに該文字の形状のうち一部のみを描画する指定がなされているとき、描画する一部の形状データを前記コード情報格納手段に格納することを特徴とする請求項1ないし請求項3のいずれか1項に記載の画像処理装置。
- 描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを生成する文字データ生成手段と、文字の形状データを格納するフォント格納手段と、新たな文字を示すコード情報に応じて前記文字データ生成手段により該新たな文字の形状データを生成して前記フォント格納手段に格納させるとともに前記コード情報を受け取って前記コード情報格納手段に格納させる管理手段を有し、該管理手段は、前記コード情報格納手段に格納されている同じ文字を示すコード情報については、前記フォント格納手段に格納されている該文字の形状データを一端とする相互参照リストとして相互に接続し、前記文字データ生成手段により生成した文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、前記コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正することを特徴とする画像処理装置。
- 前記管理手段は、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする請求項5に記載の画像処理装置。
- 描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを生成する文字データ生成手段と、文字の形状データを格納するフォント格納手段と、新たな文字を示すコード情報に応じて前記文字データ生成手段により該新たな文字の形状データを生成して前記フォント格納手段に格納させるとともに前記コード情報を受け取って前記コード情報格納手段に格納させる管理手段を有し、該管理手段は、前記コード情報格納手段に格納されている同じ文字を示すコード情報については、前記フォント格納手段に格納されている該文字の形状データを一端とする相互参照リストとして相互に接続し、前記文字データ生成手段により生成した文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする画像処理装置。
- 前記管理手段は、前記コード情報が文字を示すとともに該文字の形状のうち一部のみを描画する指定がなされているとき、描画する一部の形状データを前記コード情報格納手段に格納することを特徴とする請求項5ないし請求項7のいずれか1項に記載の画像処理装置。
- 描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを格納するフォント格納手段を用いて前記コード情報の制御を行う画像処理方法において、文字を示すコード情報が入力されたとき、該コード情報が示す文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、前記コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化することを特徴とする画像処理方法。
- 描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを格納するフォント格納手段を用いて前記コード情報の制御を行う画像処理方法において、文字を示すコード情報が入力されたとき、該コード情報が示す文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報に対応する文字の形状データから該コード情報を指し示す参照情報を無効化し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする画像処理方法。
- 描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを格納するフォント格納手段を用いて前記コード情報の制御を行う画像処理方法において、文字を示すコード情報が入力されたとき、該コード情報が示す文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報に対応付けて前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、前記コード情報が示す文字と同じ文字を示す別のコード情報が既に前記コード情報格納手段に格納されているときは、該文字の形状データに対応付けて前記フォント格納手段に格納されている参照情報をもとに前記別のコード情報に対応付けられている参照情報を前記コード情報を指し示す参照情報に変更するとともに、前記コード情報に対応付けて前記別のコード情報を指し示す参照情報を前記コード情報格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報から後で描画するコード情報によって書き換えられてしまう前に描画するコード情報を削除し、前記コード情報格納手段の空き容量を増加させるとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正することを特徴とする画像処理方法。
- 描画のためのコード情報を格納するコード情報格納手段と、文字の形状データを格納するフォント格納手段を用いて前記コード情報の制御を行う画像処理方法において、文字を示すコード情報が入力されたとき、該コード情報が示す文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記コード情報に対応付けて前記コード情報格納手段に格納し、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、前記コード情報が示す文字と同じ文字を示す別のコード情報が既に前記コード情報格納手段に格納されているときは、該文字の形状データに対応付けて前記フォント格納手段に格納されている参照情報をもとに前記別のコード情報に対応付けられている参照情報を前記コード情報を指し示す参照情報に変更するとともに、前記コード情報に対応付けて前記別のコード情報を指し示す参照情報を前記コード情報格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照しているコード情報を指し示す参照情報を前記コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照しているコード情報に対応付けて前記コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記コード情報格納手段に前記コード情報を格納可能な空き容量がなくなると、前記コード情報格納手段に格納されている前記コード情報の一部または全部を用いて描画処理を行い、描画処理を行ったコード情報を前記コード情報格納手段から削除するとともに、削除されたコード情報が文字を示す場合には、該コード情報を相互参照リストから削除するとともに、他のコード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正し、前記描画処理で生成された描画データを指し示すコード情報を前記コード情報格納手段に格納することを特徴とする画像処理方法。
- 入力データに従って画像を形成する画像形成装置において、前記入力データを解釈して種別ごとに分離する入力データ解釈手段と、該入力データ解釈手段で分離された文字を描画する入力データを中間コード情報に変換する文字データ処理手段と、描画する文字の形状データを格納するフォント格納手段と、文字以外のオブジェクトを描画する入力データをそれぞれの種別に応じて中間コード情報に変換する1ないし複数のデータ処理手段と、前記中間コード情報を格納する中間コード情報格納手段と、前記文字データ処理手段及び1ないし複数の前記データ処理手段で変換された中間コードを前記中間コード情報格納手段に格納するとともに前記中間コード情報格納手段に格納されている前記中間コードに従って描画処理を行う中間コード処理手段と、該中間コード処理手段で描画された画像を被記録媒体上に形成する出力手段を有し、前記文字データ処理手段は、文字を示す中間コード情報を生成するとともに該文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記中間コード情報とともに前記中間コード処理手段に渡して前記中間コード情報格納手段に格納させ、また該文字の形状データを参照するコード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照している中間コード情報を指し示す参照情報を前記中間コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照している中間コード情報に対応付けて前記中間コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記中間コード情報格納手段に前記中間コード情報を格納可能な空き容量がなくなると、前記中間コード情報格納手段に格納されている前記中間コード情報から後で描画する中間コード情報によって書き換えられてしまう前に描画する中間コード情報を削除し、前記中間コード情報格納手段の空き容量を増加させるとともに、削除された中間コード情報が文字を示す場合には、該中間コード情報に対応する文字の形状データから該中間コード情報を指し示す参照情報を無効化することを特徴とする画像形成装置。
- 入力データに従って画像を形成する画像形成装置において、前記入力データを解釈して種別ごとに分離する入力データ解釈手段と、該入力データ解釈手段で分離された文字を描画する入力データを中間コード情報に変換する文字データ処理手段と、描画する文字の形状データを格納するフォント格納手段と、文字以外のオブジェクトを描画する入力データをそれぞれの種別に応じて中間コード情報に変換する1ないし複数のデータ処理手段と、前記中間コード情報を格納する中間コード情報格納手段と、前記文字データ処理手段及び1ないし複数の前記データ処理手段で変換された中間コードを前記中間コード情報格納手段に格納するとともに前記中間コード情報格納手段に格納されている前記中間コードに従って描画処理を行う中間コード処理手段と、該中間コード処理手段で描画された画像を被記録媒体上に形成する出力手段を有し、前記文字データ処理手段は、文字を示す中間コード情報を生成するとともに該文字の形状データを参照するための前記フォント格納手段内の前記形状データの参照情報を前記中間コード情報とともに前記中間コード処理手段に渡して前記中間コード情報格納手段に格納させ、また該文字の形状データを参照する中間コード情報を指し示す参照情報を該文字の形状データに対応付けて前記フォント格納手段に格納し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照している中間コード情報を指し示す参照情報を前記中間コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照している中間コード情報に対応付けて前記中間コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記中間コード情報格納手段に前記中間コード情報を格納可能な空き容量がなくなると、前記中間コード情報格納手段に格納されている前記中間コード情報の一部または全部を用いて描画処理を行い、描画処理を行った中間コード情報を前記中間コード情報格納手段から削除するとともに、削除された中間コード情報が文字を示す場合には、該中間コード情報に対応する文字の形状データから該中間コード情報を指し示す参照情報を無効化し、前記描画処理で生成された描画データを指し示す中間コード情報を前記中間コード情報格納手段に格納することを特徴とする画像形成装置。
- 入力データに従って画像を形成する画像形成装置において、前記入力データを解釈して種別ごとに分離する入力データ解釈手段と、該入力データ解釈手段で分離された文字を描画する入力データを中間コード情報に変換する文字データ処理手段と、描画する文字の形状データを格納するフォント格納手段と、文字以外のオブジェクトを描画する入力データをそれぞれの種別に応じて中間コード情報に変換する1ないし複数のデータ処理手段と、前記中間コード情報を格納する中間コード情報格納手段と、前記文字データ処理手段及び1ないし複数の前記データ処理手段で変換された中間コードを前記中間コード情報格納手段に格納するとともに前記中間コード情報格納手段に格納されている前記中間コードに従って描画処理を行う中間コード処理手段と、該中間コード処理手段で描画された画像を被記録媒体上に形成する出力手段を有し、前記文字データ処理手段は、前記中間コード情報格納手段に格納されている同じ文字を示す中間コード情報については前記フォント格納手段内の該文字の形状データを一端とする相互参照リストとして相互に接続し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照している中間コード情報を指し示す参照情報を前記中間コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照している中間コード情報に対応付けて前記中間コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記中間コード情報格納手段に前記中間コード情報を格納可能な空き容量がなくなると、前記中間コード情報格納手段に格納されている前記中間コード情報から後で描画する中間コード情報によって書き換えられてしまう前に描画する中間コード情報を削除し、前記中間コード情報格納手段の空き容量を増加させるとともに、削除された中間コード情報が文字を示す場合には、該中間コード情報を相互参照リストから削除するとともに、他の中間コード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正することを特徴とする画像形成装置。
- 入力データに従って画像を形成する画像形成装置において、前記入力データを解釈して種別ごとに分離する入力データ解釈手段と、該入力データ解釈手段で分離された文字を描画する入力データを中間コード情報に変換する文字データ処理手段と、描画する文字の形状データを格納するフォント格納手段と、文字以外のオブジェクトを描画する入力データをそれぞれの種別に応じて中間コード情報に変換する1ないし複数のデータ処理手段と、前記中間コード情報を格納する中間コード情報格納手段と、前記文字データ処理手段及び1ないし複数の前記データ処理手段で変換された中間コードを前記中間コード情報格納手段に格納するとともに前記中間コード情報格納手段に格納されている前記中間コードに従って描画処理を行う中間コード処理手段と、該中間コード処理手段で描画された画像を被記録媒体上に形成する出力手段を有し、前記文字データ処理手段は、前記中間コード情報格納手段に格納されている同じ文字を示す中間コード情報については前記フォント格納手段内の該文字の形状データを一端とする相互参照リストとして相互に接続し、文字の形状データを前記フォント格納手段に格納させる際に、前記フォント格納手段に空きがない場合、前記フォント格納手段に格納されていた文字の形状データ及び該形状データを参照している中間コード情報を指し示す参照情報を前記中間コード情報格納手段に転送するとともに、転送した該参照情報をもとに該形状データを参照している中間コード情報に対応付けて前記中間コード情報格納手段に格納している前記形状データを参照するための参照情報を書き換え、前記中間コード情報格納手段に前記中間コード情報を格納可能な空き容量がなくなると、前記中間コード情報格納手段に格納されている前記中間コード情報の一部または全部を用いて描画処理を行い、描画処理を行った中間コード情報を前記中間コード情報格納手段から削除するとともに、削除された中間コード情報が文字を示す場合には、該中間コード情報を相互参照リストから削除するとともに、他の中間コード情報及び文字の形状データにおける相互参照リストが保たれるように参照関係を修正し、前記描画処理で生成された描画データを指し示す中間コード情報を前記中間コード情報格納手段に格納することを特徴とする画像形成装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28460599A JP4344898B2 (ja) | 1999-10-05 | 1999-10-05 | 画像処理装置、画像処理方法、画像形成装置 |
US09/650,670 US6867872B1 (en) | 1999-10-05 | 2000-08-30 | Image processing apparatus, image processing method, and image forming apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28460599A JP4344898B2 (ja) | 1999-10-05 | 1999-10-05 | 画像処理装置、画像処理方法、画像形成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001105671A JP2001105671A (ja) | 2001-04-17 |
JP4344898B2 true JP4344898B2 (ja) | 2009-10-14 |
Family
ID=17680632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28460599A Expired - Fee Related JP4344898B2 (ja) | 1999-10-05 | 1999-10-05 | 画像処理装置、画像処理方法、画像形成装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6867872B1 (ja) |
JP (1) | JP4344898B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005031929A (ja) * | 2003-07-11 | 2005-02-03 | Hitachi Ltd | サーバに記憶領域を割り当てる管理サーバ、記憶装置システム、及びプログラム |
US8842127B1 (en) * | 2005-04-25 | 2014-09-23 | Apple Inc. | Text rendering with improved glyph cache management |
US7623130B1 (en) * | 2005-04-25 | 2009-11-24 | Apple Inc. | Text rendering with improved command stream operations |
US7965422B2 (en) * | 2006-04-28 | 2011-06-21 | Xerox Corporation | Super resolution encoded microprinting through postscript |
JP4449986B2 (ja) * | 2007-02-15 | 2010-04-14 | セイコーエプソン株式会社 | 文字描画装置、表示装置及び印刷装置 |
JP5297238B2 (ja) * | 2009-03-19 | 2013-09-25 | キヤノン株式会社 | 画像形成装置およびその制御方法、並びにプログラム |
JP2010250660A (ja) * | 2009-04-17 | 2010-11-04 | Brother Ind Ltd | ステータスを表示するためのプログラム |
JP5489886B2 (ja) | 2010-06-30 | 2014-05-14 | キヤノン株式会社 | 座標入力装置、該装置における受光装置、及びその製造方法 |
US9760964B2 (en) | 2013-04-11 | 2017-09-12 | Facebook, Inc. | Application-tailored object re-use and recycling |
US9207986B2 (en) | 2013-04-11 | 2015-12-08 | Facebook, Inc. | Identifying a next window of idle time to perform pre-generation tasks of content portions outside of the displayable region stored in a message queue |
US10126903B2 (en) * | 2013-04-15 | 2018-11-13 | Facebook, Inc. | Application-tailored object pre-inflation |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR950012083B1 (ko) * | 1991-09-03 | 1995-10-13 | 가부시끼가이샤 히다찌세이사꾸쇼 | 문자/도형 발생 장치 및 정보 처리장치 |
JPH06186951A (ja) | 1992-12-16 | 1994-07-08 | Fuji Xerox Co Ltd | 文字出力装置 |
JPH1016319A (ja) | 1996-06-28 | 1998-01-20 | Fuji Xerox Co Ltd | プリントデータ展開装置 |
JPH10181120A (ja) * | 1996-12-26 | 1998-07-07 | Canon Inc | 印刷装置及び文字画像処理方法 |
JPH10211741A (ja) | 1997-01-31 | 1998-08-11 | Fuji Xerox Co Ltd | プリンタ装置 |
-
1999
- 1999-10-05 JP JP28460599A patent/JP4344898B2/ja not_active Expired - Fee Related
-
2000
- 2000-08-30 US US09/650,670 patent/US6867872B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6867872B1 (en) | 2005-03-15 |
JP2001105671A (ja) | 2001-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4344898B2 (ja) | 画像処理装置、画像処理方法、画像形成装置 | |
US20060149916A1 (en) | Method and apparatus for block-oriented memory management provided in smart card controllers | |
JPH03197065A (ja) | ページ・プリンタ・メモリー割付け | |
JPH0345076A (ja) | 画像データの処理方式 | |
JP2610993B2 (ja) | 情報処理装置及び方法 | |
US6574001B2 (en) | Managing font data in a print job | |
JP2891322B2 (ja) | 円滑テキスト表示システム | |
JP3772407B2 (ja) | 画像処理装置 | |
JPH06289838A (ja) | フォントキャッシュ制御装置およびその適用方法 | |
JP3997808B2 (ja) | 描画処理装置および描画処理方法 | |
JP4022014B2 (ja) | イメージデータの管理方法 | |
JP2762856B2 (ja) | 図形パターン格納装置 | |
JP3927691B2 (ja) | 画像形成システム、情報処理装置、送信方法及び記録媒体 | |
JPH11129553A (ja) | メモリ管理方法及びそれを用いた印刷装置と印刷システム | |
JP4525880B2 (ja) | 画像処理装置 | |
JPH05261983A (ja) | 文字データ管理装置 | |
KR100283745B1 (ko) | 효과적인폰트캐쉬관리장치및방법 | |
JPH04194898A (ja) | 文字出力装置の文字データ管理方式 | |
JPH10211741A (ja) | プリンタ装置 | |
JP2001216110A (ja) | キャッシュ制御方法及びそれを用いた印刷制御装置及び文字処理装置及び方法 | |
JP2002007096A (ja) | キャッシュメモリ制御装置 | |
JPH0156411B2 (ja) | ||
JP2940270B2 (ja) | シリアルプリンタ | |
JP2001134475A (ja) | ファイルシステム | |
JPH1173516A (ja) | 画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20031211 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080806 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081001 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090520 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090617 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090630 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120724 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130724 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |