JP2010111088A - 画像形成装置 - Google Patents
画像形成装置 Download PDFInfo
- Publication number
- JP2010111088A JP2010111088A JP2008287693A JP2008287693A JP2010111088A JP 2010111088 A JP2010111088 A JP 2010111088A JP 2008287693 A JP2008287693 A JP 2008287693A JP 2008287693 A JP2008287693 A JP 2008287693A JP 2010111088 A JP2010111088 A JP 2010111088A
- Authority
- JP
- Japan
- Prior art keywords
- specifying data
- outline
- priority
- outline specifying
- character
- 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
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/1827—Accessing generic data, e.g. fonts
- G06K15/1831—Accessing generic data, e.g. fonts characterized by the format of the data
- G06K15/1834—Outline coded data
-
- 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/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/186—Generation of the printable image characterized by its workflow taking account of feedback from an output condition, e.g. available inks, time constraints
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Record Information Processing For Printing (AREA)
Abstract
【課題】画像形成装置において、効果的にフォントのキャッシュを制御する。
【解決手段】印刷対象の文字と前記印刷対象の文字のフォントファミリーとの入力を受け付ける描画制御部161と、入力された文字及びフォントファミリーの組み合わせに対応したパスハンドルを生成すること、及び、生成されたパスハンドルに基づいて、入力された文字及びフォントファミリーの組み合わせに対応したラスタデータを生成するグラフィックライブラリ164と、パスハンドルを一時的に記憶するRAM13と、パスハンドルに含まれる曲線命令の数に基づいて、パスハンドルに関するパスハンドル優先度を計算すること、及び、計算されたパスハンドル優先度に基づいて、生成されたパスハンドルをキャッシュするか否かを判定し、判定結果が肯定的である場合、生成されたパスハンドルをRAM13に記憶させるキャッシュ制御部162と、を備える。
【選択図】図2
【解決手段】印刷対象の文字と前記印刷対象の文字のフォントファミリーとの入力を受け付ける描画制御部161と、入力された文字及びフォントファミリーの組み合わせに対応したパスハンドルを生成すること、及び、生成されたパスハンドルに基づいて、入力された文字及びフォントファミリーの組み合わせに対応したラスタデータを生成するグラフィックライブラリ164と、パスハンドルを一時的に記憶するRAM13と、パスハンドルに含まれる曲線命令の数に基づいて、パスハンドルに関するパスハンドル優先度を計算すること、及び、計算されたパスハンドル優先度に基づいて、生成されたパスハンドルをキャッシュするか否かを判定し、判定結果が肯定的である場合、生成されたパスハンドルをRAM13に記憶させるキャッシュ制御部162と、を備える。
【選択図】図2
Description
本発明は、画像形成装置に関し、特に、文字画像を印刷する場合におけるフォントのキャッシュに関する。
例えば、特許文献1には、表示装置や印字装置等の出力装置において、所定数以下の文字のそれぞれについてそのラスタデータをキャッシュしておき、キャッシュ済みの文字については、再度ラスタデータの生成を行わずに出力する技術が開示されている。特許文献1では、キャッシュ優先度としてコスト情報を利用することで、キャッシュヒット率を向上させて出力処理の高速化を図っている。コスト情報としては、文字の出現頻度等が採用される。
一般に、プリンタ等の画像形成装置においては、印刷のための文字のフォントとしてアウトラインフォントが採用される。アウトラインフォントが採用される場合、文字の印刷時には、例えば、その文字のアウトラインを特定するためのデータ(以下、「アウトライン特定データ」)が生成され、生成されたアウトライン特定データからラスタデータが生成される。そして、生成されたラスタデータに基づいて文字の印刷が行われる。
プリンタ等の画像形成装置にも上述した技術を適用することができ、アウトライン特定データ或いはラスタデータのキャッシュの制御を、コスト情報に基づいて行うことができる。
しかしながら、画像形成装置が行うグラフィック画像の印刷においては、印刷対象の画像に文字が含まれることがそれ程多くはないため、文字の出現頻度に基づいて、キャッシュするか否かを決定することは効果的でない。
そこで、本発明の目的は、画像形成装置において、効果的にフォントのキャッシュを制御することである。
本発明に従う画像形成装置は、印刷対象の文字と前記印刷対象の文字のフォントファミリーとの入力を受け付ける入力受付手段と、前記入力された文字及びフォントファミリーの組み合わせに対応した第一のアウトライン特定データを生成する第一のアウトライン特定データ生成手段と、前記生成された第一のアウトライン特定データに基づいて、前記入力された文字及びフォントファミリーの組み合わせに対応した画像形成用データを生成する画像形成用データ生成手段と、前記第一のアウトライン特定データを一時的に記憶するキャッシュ手段と、前記第一のアウトライン特定データに含まれる曲線命令の数に基づいて、前記第一のアウトライン特定データに関する優先度を計算する優先度計算手段と、前記計算された優先度に基づいて、前記生成された第一のアウトライン特定データをキャッシュするか否かを判定し、前記判定結果が肯定的である場合、前記生成された第一のアウトライン特定データを前記キャッシュ手段に記憶させるキャッシュ制御手段と、を備える。
本発明に係る好適な実施形態では、前記入力された文字及びフォントファミリーの組み合わせに対応した第二のアウトライン特定データを生成する第二のアウトライン特定データ生成手段、を更に備え、前記第一のアウトライン特定データ生成手段は、前記生成された第二のアウトライン特定データに基づいて、前記入力された文字及びフォントファミリーの組み合わせに対応した第一のアウトライン特定データを生成し、前記優先度計算手段は、前記第一のアウトライン特定データに含まれる曲線命令の数に基づいて、又は、前記第一のアウトライン特定データの代わりに前記第二のアウトライン特定データに含まれる曲線命令の数に基づいて優先度を計算し、前記第一のアウトライン特定データ生成手段及び前記画像形成用データ生成手段は、OpenVGの仕様に準拠した入出力インタフェースを有し、前記第一のアウトライン特定データは、OpenVGの仕様に準拠したデータ形式であってもよい。
本発明に係る好適な実施形態では、前記優先度計算手段は、前記曲線命令の数に加えて直線命令の数に基づいて優先度を計算してもよい。
本発明に係る好適な実施形態では、前記優先度計算手段は、前記曲線命令が二種類以上存在する場合、前記曲線命令が示す曲線の複雑度に応じた重み付けをして優先度を計算してもよい。
本発明に係る好適な実施形態では、前記優先度計算手段は、前記曲線命令を、当該曲線命令が示す曲線を表現する複数の直線のそれぞれを示す直線命令に置き換えた後、前記曲線命令の代わりに前記直線命令の数に基づいて優先度を計算してもよい。
本発明に係る好適な実施形態では、キャッシュ可能な前記第一のアウトライン特定データの上限数が予め定められており、前記キャッシュ手段には、第一のアウトライン特定データと当該第一のアウトライン特定データに関する優先度とが対応付けて記憶され、前記キャッシュ制御手段は、キャッシュ済みの第一のアウトライン特定データの数がキャッシュ上限数に到達している場合、前記優先度計算手段によって計算された優先度が、キャッシュ済みの第一のアウトライン特定データのそれぞれに関する優先度のうち最も値の小さいもの以上であった場合、前記生成された第一のアウトライン特定データをキャッシュするものと判定してもよい。
本発明に係る好適な実施形態では、前記キャッシュ制御手段は、キャッシュするか否かの判定基準として用いられる前記優先度の閾値を保持し、前記優先度計算手段によって計算された優先度が前記閾値以上であった場合、前記生成された第一のアウトライン特定データをキャッシュするものと判定してもよい。
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
図1は、本発明の一実施形態に係るプリンタ1の構成例を示す図である。
プリンタ1は、例えば、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、ユーザI/F(インタフェース)部14と、画像形成部15とを備える。CPU11、ROM12、RAM13、ユーザI/F部14及び画像形成部15は、バス17を介して接続される。
ROM12は、例えば、ブートプログラム、画像形成部15を制御するための画像形成制御プログラム、文字描画処理部16の機能を実現するための文字描画処理プログラム等の各種のプログラムを記憶する。RAM13は、プログラムやデータを記憶する領域として、或いは、CPU11による処理に使用しているデータを格納する作業領域として利用される。ユーザI/F部14は、ユーザの操作を受け付けるとともにユーザに提示すべき各種画面を表示する装置である。ユーザI/F部14としては、例えば、タッチパネル等が採用される。画像形成部15は、例えば、紙、OHPシート、厚紙、封筒等の画像形成媒体に画像を形成する装置である。画像形成部15は、例えば、文字描画処理部16から入力されたラスタデータに基づいて、その入力されたラスタデータが表す文字(或いは文字列)の画像を、画像形成媒体に形成する。
CPU11は、ROM12に格納されているプログラムをRAM13に読み出して実行することにより、各部12〜15の動作を制御する。例えば、CPU11は、画像形成制御プログラムを実行することにより、画像形成部15の動作を制御する。また、CPU11は、文字描画処理プログラムを実行することにより、文字描画処理部16の機能を実現する。文字描画処理部16は、入力された文字(或いは文字列)の描画を行って、その文字(或いは文字列)に対応するラスタデータを生成する処理(以下、「文字描画処理」)を行う処理部である。文字描画処理の詳細については、後述する。
図2は、文字描画処理部16の機能構成の一例を示す図である。
文字描画処理部16は、例えば、描画制御部161と、キャッシュ制御部162と、フォント処理部163と、グラフィックライブラリ164とを備える。
描画制御部161は、文字描画処理部16の全体を制御して文字描画処理を実行する。フォント処理部163は、対象とする文字(例えば、平仮名、片仮名、英数字、記号、漢字等)のフォントに関する情報を管理する。また、フォント処理部163は、入力された文字及びフォントの名称(フォントファミリー)の組み合わせに対応した、文字のアウトラインを特定するためのデータ(アウトライン特定データ)を生成する。本実施形態では、フォント処理部163が生成する、アウトライン特定データを「アウトラインデータ」と呼ぶ。尚、文字のアウトラインは、一以上の線分(直線又は曲線)が組み合わされることにより形成される。本実施形態では、文字のアウトラインを形成する個々の線分のことを「パス」と呼ぶ。
以下、図3(図3A,3B)を参照して、アウトライン特定データについて説明する。ここでは、アウトライン特定データが、SVG(Scalable Vector Graphics)と呼ばれる、ベクター画像の記述言語で定義された場合を例に採って説明する。
図3Aは、アウトライン特定データを説明するためのXML(Extensible Markup Language)文書30の例である。
図3AのXML文書30中には、“S”、“V”及び“G”の各文字について、SVGによってフォントが定義されている。符号31は、文字“S”に関するフォントを定義している箇所である。符号32は、文字“V”に関するフォントを定義している箇所である。符号33は、文字“G”に関するフォントを定義している箇所である。
それぞれのフォントの定義箇所31,32,33には、アウトライン特定データ34,35,36が含まれている。符号34は、文字“S”に関するアウトライン特定データである。符号35は、文字“V”に関するアウトライン特定データである。符号36は、文字“G”に関するアウトライン特定データである。図3Aに示されるように、アウトライン特定データ34,35,36は、パスを描画することの命令(英字で示されたものであり、以下、「パス命令」という)と、その命令が適用される座標位置(数字で示されたもの)との組み合わせを、一以上含んだデータとなっている。例えば、文字“V”に関するアウトライン特定データ35には、四つのパス命令“L”と、二つのパス命令“H”とが含まれている。後述するが、パス命令“L”は直線を描画することの命令を、パス命令“H”は水平線を描画することの命令をそれぞれ示している。従って、文字“V”のアウトライン特定データ35は、四つの直線と二つの水平線とをそれぞれ描画することにより、文字“V”の描画が行われることを示している(言い換えると、文字“V”のアウトラインが、四つの直線と二つの水平線とから形成されることを示している)。図3Aに示したようにフォントが定義された場合、文字列“SVG”は、例えば、図3Bに示したように描画される。
尚、フォント処理部163が生成するアウトライン特定データ(アウトラインデータ)は、SVGで定義されたアウトライン特定データとはデータ形式が異なるが、基本的には、SVGで定義されたアウトライン特定データと同様の情報を含んでいる。即ち、フォント処理部163が生成するアウトライン特定データ(アウトラインデータ)も、パス命令と、そのパス命令が適用される座標位置との組み合わせを一以上含んだデータとなっている。
以上が、アウトライン特定データの説明である。以下、図2に戻って、文字描画処理部16の説明を続ける。
グラフィックライブラリ164は、文字や図形等の描画のための汎用的なAPI(Application Programming Interface)(以下、「描画用API」)を提供する。描画用APIとしては、例えば、OpenVGやGDI+等が採用される。描画用APIには、例えば、パスハンドルを生成するためのAPI(以下、「パスハンドル生成API」)や、パスハンドルに対応した文字の描画を行うためのAPI(以下、「文字描画API」)等が含まれる。ここで、パスハンドルとは、グラフィックライブラリ164において定義されたデータ構造を持つアウトライン特定データである。パスハンドルは、文字及びフォントファミリーの組み合わせごとに生成される。尚、上述したアウトラインデータもパスハンドルも、アウトライン特定データ(即ち、文字のアウトライン(文字のアウトラインを形成する個々のパス)を特定するためのデータ)であるが、両者は、データ構造が異なっている。文字描画処理部16は、汎用的なAPIである描画用APIを利用して文字の描画を行うため、アウトラインデータをパスハンドルへ変換する。パスハンドルには、アウトラインデータと同様に、複数のパス命令が含まれている。
以下に、文字描画処理部16によって行われる文字描画処理の概要を説明する。
まず、描画制御部161は、印刷対象の文字を示す情報(例えば、文字コード)と、印刷対象の文字のフォントファミリーとの入力を受け付ける。以下、描画制御部161が入力を受け付けた文字を「入力文字」と呼び、描画制御部161が入力を受け付けたフォントファミリーを「入力フォントファミリー」と呼ぶ。
次に、描画制御部161は、入力文字及び入力フォントファミリーの組み合わせに対応したアウトラインデータの生成を、フォント処理部163に要求する。この際、描画制御部161は、入力文字を示す情報(文字コード)と、入力フォントファミリーとを、フォント処理部163に通知する。アウトラインデータの生成要求を受けたフォント処理部163は、通知された文字及びフォントファミリーの組み合わせに対応したアウトラインデータを生成し、生成したアウトラインデータを描画制御部161に渡す。
アウトラインデータを受け取った描画制御部161は、グラフィックライブラリ164が提供するパスハンドルAPIを呼び出して、入力文字及び入力フォントファミリーの組み合わせに対応したパスハンドルを、グラフィックライブラリ164に生成させる。具体的には、描画制御部164は、入力文字及び入力フォントファミリーの組み合わせに対応したアウトラインデータを指定して、パスハンドルAPIを呼び出す。パスハンドルAPIが呼び出されると、グラフィックライブラリ164は、指定されたアウトラインデータに基づいて、入力文字及び入力フォントファミリーの組み合わせに対応したパスハンドルを生成する。そして、グラフィックライブラリ164は、生成したパスハンドルを描画制御部161へ渡す。
パスハンドルを受け取った描画制御部161は、グラフィックライブラリ164が提供する文字描画APIを呼び出して、入力文字を入力フォントファミリーが示すフォントで描画して、入力文字及び入力フォントファミリーの組み合わせに対応したラスタデータを、グラフィックライブラリ164に生成させる。具体的には、描画制御部161は、入力文字及び入力フォントファミリーの組み合わせに対応したパスハンドルを指定して、文字描画APIを呼び出す。文字描画APIが呼び出されると、グラフィックライブラリ164は、指定されたパスハンドルに基づいて、入力文字を入力フォントファミリーが示すフォントで描画して、入力文字及び入力フォントファミリーの組み合わせに対応したラスタデータを生成する。そして、グラフィックライブラリ164は、生成したラスタデータを描画制御部161へ渡す。
その後、描画制御部161は、グラフィックライブラリ164から受け取ったラスタデータを画像形成部15に入力する。ラスタデータの入力を受け付けた画像形成部15は、入力されたラスタデータが表す文字の画像を、画像形成媒体に形成する。
以上が、文字描画処理の概要である。本実施形態において、文字描画処理部16は、グラフィックライブラリ164によって生成されたパスハンドルをキャッシュしておく(即ち、RAM13に記憶しておく)。これにより、キャッシュ済みのパスハンドルに対応した文字及びフォントファミリーの組み合わせについては、再度、フォント処理部163にアウトラインデータの生成を行わせることなく、且つ、グラフィックライブラリ164にパスハンドルの生成を行わせることなく、対応した文字を描画することが可能となる。尚、キャッシュ可能なパスハンドルの上限数(以下、「キャッシュ上限数」)は、RAM13の容量等を考慮して、予め定められる。そのため、キャッシュ済みのパスハンドルの数がキャッシュ上限数に到達している場合は、新たに生成されたパスハンドルのキャッシュは、キャッシュ済みのパスハンドルのいずれかを削除した上で行うことになる(即ち、キャッシュ済みのパスハンドルのいずれかと入れ替えて新たに生成されたパスハンドルをキャッシュすることになる)。
キャッシュ制御部162は、グラフィックライブラリ164によって生成されたパスハンドルのキャッシュを制御する。具体的には、キャッシュ制御部162は、キャッシュ済みのパスハンドルの数がキャッシュ上限数に到達している場合、パスハンドルが新たに生成されるごとに、その生成されたパスハンドルをキャッシュするか否かを判定する。この判定は、例えば、パスハンドルごと(即ち、文字及びフォントファミリーの組み合わせごと)に計算された優先度に基づいて行われる。以下、このパスハンドルごと(文字及びフォントファミリーの組み合わせごと)に計算される優先度を「パスハンドル優先度」と呼ぶ。
パスハンドル優先度は、例えば、その優先度を持つ文字及びフォントファミリーの組み合わせに対応したアウトラインデータに基づいて、或いはその優先度を持つパスハンドル自身に基づいて計算される。具体的には、パスハンドル優先度は、アウトラインデータ或いはパスハンドルに含まれるパス命令の種類(種類ごとに予め定められたポイント値)及びそのパス命令の数に基づいて、以下の数式により計算される。尚、N(Nは自然数)は、アウトラインデータ或いはパスハンドルに含まれるパス命令の総数である。ポイント値の詳細については、後述する。以下では、パスハンドル優先度が、アウトラインデータに基づいて計算されるものとして説明する。
パスハンドル優先度 = (第一のパス命令の数)×(第一のパス命令のポイント値)
+(第二のパス命令の数)×(第二のパス命令のポイント値)
+(第三のパス命令の数)×(第三のパス命令のポイント値)
:
+(第Nのパス命令の数)×(第Nのパス命令のポイント値)
キャッシュ制御部162は、キャッシュ済みのパスハンドルの数がキャッシュ上限数に到達している場合において、パスハンドルが新たに生成されたとき、新たに生成されたパスハンドルのパスハンドル優先度を、上記の数式に従って計算する。そして、キャッシュ制御部162は、新たに生成されたパスハンドルのパスハンドル優先度と、キャッシュ済みのパスハンドルのそれぞれのパスハンドル優先度のうち最も値の小さいもの(以下、「最下位優先度」)とを比較する。尚、RAM13には、キャッシュ済みのパスハンドルのそれぞれのパスハンドル優先度が、その優先度を持つパスハンドルと対応付けて記憶されている。従って、キャッシュ制御部は、RAM13に記憶されている複数のパスハンドル優先度の中から最下位優先度を選択することができる。新たに生成されたパスハンドルのパスハンドル優先度が最下位優先度以上であった場合、キャッシュ制御部162は、最下位優先度を持つパスハンドルをRAM13から削除して、新たに生成されたパスハンドルをキャッシュする。この際、キャッシュ制御部162は、新たに生成されたパスハンドルのパスハンドル優先度を、新たに生成されたパスハンドルに対応付けてRAM13に記憶する。キャッシュ制御部132は、その後にキャッシュするか否かの判定を行う際に、このRAM13に記憶されたパスハンドル優先度を参照する。
+(第二のパス命令の数)×(第二のパス命令のポイント値)
+(第三のパス命令の数)×(第三のパス命令のポイント値)
:
+(第Nのパス命令の数)×(第Nのパス命令のポイント値)
キャッシュ制御部162は、キャッシュ済みのパスハンドルの数がキャッシュ上限数に到達している場合において、パスハンドルが新たに生成されたとき、新たに生成されたパスハンドルのパスハンドル優先度を、上記の数式に従って計算する。そして、キャッシュ制御部162は、新たに生成されたパスハンドルのパスハンドル優先度と、キャッシュ済みのパスハンドルのそれぞれのパスハンドル優先度のうち最も値の小さいもの(以下、「最下位優先度」)とを比較する。尚、RAM13には、キャッシュ済みのパスハンドルのそれぞれのパスハンドル優先度が、その優先度を持つパスハンドルと対応付けて記憶されている。従って、キャッシュ制御部は、RAM13に記憶されている複数のパスハンドル優先度の中から最下位優先度を選択することができる。新たに生成されたパスハンドルのパスハンドル優先度が最下位優先度以上であった場合、キャッシュ制御部162は、最下位優先度を持つパスハンドルをRAM13から削除して、新たに生成されたパスハンドルをキャッシュする。この際、キャッシュ制御部162は、新たに生成されたパスハンドルのパスハンドル優先度を、新たに生成されたパスハンドルに対応付けてRAM13に記憶する。キャッシュ制御部132は、その後にキャッシュするか否かの判定を行う際に、このRAM13に記憶されたパスハンドル優先度を参照する。
図4は、パス命令の種類ごとに定められるポイント値の一例を示す図である。
図4には、幾つかのパス命令の例と、そのポイント値の例とが記されている。尚、図4では、アウトラインデータに含まれるパス命令41は、SVGで定義された場合におけるアウトラインデータのパス命令を示している。また、パスハンドルに含まれるパス命令42は、描画用APIとしてOpenVGが採用された場合におけるパスハンドルのパス命令を示している。
例えば、アウトラインデータに含まれるパス命令“L”は、パスハンドルに含まれるパス命令“MOVE_TO”と同種であり、直線を描画することのパス命令(以下、「直線命令」)である。また、アウトラインデータに含まれるパス命令“Q”は、パスハンドルに含まれるパス命令“QUAD_TO”と同種であり、二次ベジェ曲線を描画することのパス命令(以下、「二次ベジェ命令」)である。同様に、アウトラインデータに含まれるパス命令“C”は、パスハンドルに含まれるパス命令“CUBIC_TO”と同種であり、三次ベジェ曲線を描画することの命令(以下、「三次ベジェ命令」)である。二次ベジェ命令及び三次ベジェ命令は、曲線を描画することの命令(以下、「曲線命令」)に属する。その他様々なパス命令が存在する。
通常、アウトラインデータの生成に要する処理量は、アウトラインを形成するパスが曲線である場合の方が、直線である場合よりも大きい。即ち、アウトラインを形成するパスが曲線である場合の方が、直線である場合よりも、アウトラインデータの生成により多くの時間を要する。例えば、アウトラインがX個の曲線で形成される文字は、アウトラインがX個の直線で形成される文字に比較して、アウトラインデータの生成により多くの時間を要する。従って、例えば、曲線命令のポイント値は、直線命令のポイント値よりも大きく設定される。
また、アウトラインを形成するパスがより複雑な曲線であるほど、アウトラインデータの生成に要する処理量は大きく、アウトラインデータの生成により多くの時間を要する。例えば、三次ベジェ曲線は、二次ベジェ曲線よりも制御点の数が多く、二次ベジェ曲線よりも複雑な曲線である。そのため、例えば、アウトラインがX個の三次ベジェ曲線で形成される文字は、アウトラインがX個の二次ベジェ曲線で形成される文字に比較して、アウトラインデータの生成により多くの時間を要する。従って、例えば、曲線が複雑なものほど、その曲線を描画することのパス命令のポイント値は、大きく設定される。
更に、アウトラインデータの生成に要する処理量のうち直線部分に関する処理量(直線命令を示すデータを生成する処理量)が、曲線部分に関する処理量(曲線命令を示すデータを生成する処理量)に比較して極めて小さい場合は、直線部分に関する処理量を無視することもできる。この場合は、例えば、直線命令のポイント値を、“0”とすることができる。
図4の例では、直線命令のポイント値は、“0”に(即ち、直線を考慮しないように)設定されている。また、三次次ベジェ命令のポイント値は、二次ベジェ命令のポイント値(“3”)よりも大きい値(“5”)に設定されている。
このように、曲線命令のポイント値を直線命令のポイント値よりも大きく設定し、また、より複雑な曲線に関する曲線命令のポイント値をより大きく設定した場合、アウトラインデータの生成に要する処理量がより大きな文字及びフォントファミリーの組み合わせほど、それに対応したパスハンドル優先度は大きくなる。従って、キャッシュ制御部162は、アウトラインデータの生成に要する処理量がより大きな文字及びフォントファミリーの組み合わせほど、それに対応したパスハンドルを優先してキャッシュすることができる。つまり、アウトラインデータの生成に多くの処理時間を要する文字及びフォントファミリーの組み合わせについては、パスハンドルを優先してキャッシュしておき、再度、アウトラインデータ及びパスハンドルの生成を行うことなく、対応した文字を描画することが可能となる。
尚、パス命令の種類を考慮せずに、パス命令の数が多いものほど、アウトラインデータの生成に要する処理量が大きいものとして、パスハンドル優先度が大きくなるようにしてもよい。この場合は、例えば、全てのパス命令のポイント値を、“1”とすることができる。また、直線命令を無視した上で、パス命令の種類を考慮しないようにしてもよい。この場合は、例えば、直線命令のポイント値を“0”とし、曲線命令のポイント値を“1”することができる。
また、曲線は、複数の直線で近似して表現することもできる。従って、アウトラインデータに含まれる全ての曲線命令の各々を、複数の直線命令(即ち、曲線命令が示す曲線を表現する複数の直線のそれぞれを描画することの命令)に置き換えた上で、直線命令のみに基づいて、パスハンドル優先度を計算することもできる。この場合は、直線命令のポイント値は、“0”以外の値とされる。
図5は、本実施形態に係る文字描画処理のフローチャートである。
描画制御部161が、印刷対象の文字を示す情報(例えば、文字コード)と、印刷対象の文字のフォントファミリーとの入力を受け付けると、文字描画処理が開始される。
まず、描画制御部161は、入力を受け付けた文字(入力文字)及び入力を受け付けたフォントファミリー(入力フォントファミリー)の組み合わせに対応したパスハンドルが、キャッシュ済みか否かを判定する(S101)。
入力文字及び入力フォントファミリーの組み合わせに対応したパスハンドルがキャッシュ済みの場合は(S101:YES)、描画制御部161は、そのキャッシュ済みのパスハンドルを取得する(RAM13から読み出す)(S111)。その後、描画制御部161は、S109の処理を行う。
一方、入力文字及び入力フォントファミリーの組み合わせに対応するパスハンドルがキャッシュされていない場合は(S101:NO)、描画制御部161は、入力文字及び入力フォントファミリーの組み合わせに対応するアウトラインデータの生成を、フォント処理部163に要求する(S102)。要求を受けたフォント処理部163は、入力文字及び入力フォントファミリーの組み合わせに対応するアウトラインデータを生成し、生成したアウトラインデータを描画制御部161に渡す。
その後、描画制御部161は、S102で生成されたアウトラインデータを指定してパスハンドル生成APIを呼び出し、入力文字及び入力フォントファミリーの組み合わせに対応したパスハンドルをグラフィックライブラリ164に生成させる(S103)。
その後、キャッシュ制御部162は、S102で生成されたアウトラインデータに基づいて、S103で生成されたパスハンドルのパスハンドル優先度(入力文字及び入力フォントファミリーの組み合わせに関するパスハンドル優先度)を計算する(S104)。
その後、キャッシュ制御部162は、キャッシュ済みのパスハンドルの数が、キャッシュ可能なパスハンドルの上限数(キャッシュ上限数)に到達しているか否かを判定する(S105)。
キャッシュ済みのパスハンドルの数がキャッシュ上限数に到達していない場合は(S105:NO)、S108の処理が行われる。
一方、キャッシュ済みのパスハンドルの数がキャッシュ上限数に到達している場合は(S105:YES)、キャッシュ制御部162は、S104で計算されたパスハンドル優先度と、キャッシュ済みのパスハンドルのそれぞれのパスハンドル優先度のうち最も値の小さいもの(最下位優先度)とを比較する。そして、キャッシュ制御部162は、S104で計算されたパスハンドル優先度が、最下位優先度以上か否かを判定する(S106)。
S104で計算されたパスハンドル優先度が最下位優先度より小さい場合は(S106:NO)、S109の処理が行われる。
一方、S104で計算されたパスハンドル優先度が最下位優先度以上の場合は(S106:YES)、キャッシュ制御部162は、最下位優先度を持つパスハンドルをキャッシュから削除する(S107)。
S108では、キャッシュ制御部162は、S103で生成されたパスハンドルをキャッシュする。
S109では、描画制御部161は、S103で生成されたパスハンドルを指定して文字描画APIを呼び出し、入力文字及び入力フォントファミリーの組み合わせに対応したラスタデータをグラフィックライブラリ164に生成させる。
その後、描画制御部161は、S109で生成されたラスタデータを画像形成部15に入力して、入力したラスタデータが表す文字の画像の形成を、画像形成部15に行わせる(S110)。
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
本実施形態では、キャッシュ上限数が予め定められ、そのキャッシュ上限数の範囲内で、パスハンドル優先度のより大きいパスハンドルがキャッシュされたが、必ずしもこのようなやり方に限定されない。例えば、キャッシュするか否かの判定基準となるパスハンドル優先度の閾値を予め設定しておき、生成されたパスハンドルのパスハンドル優先度が閾値以上であれば、その生成されたパスハンドルをキャッシュするようにしてもよい。
1…プリンタ、11…CPU、12…ROM、13…RAM、14…ユーザI/F部、15…画像形成部、16…文字描画処理部、17…バス
Claims (9)
- 印刷対象の文字と前記印刷対象の文字のフォントファミリーとの入力を受け付ける入力受付手段と、
前記入力された文字及びフォントファミリーの組み合わせに対応した第一のアウトライン特定データを生成する第一のアウトライン特定データ生成手段と、
前記生成された第一のアウトライン特定データに基づいて、前記入力された文字及びフォントファミリーの組み合わせに対応した画像形成用データを生成する画像形成用データ生成手段と、
前記第一のアウトライン特定データを一時的に記憶するキャッシュ手段と、
前記第一のアウトライン特定データに含まれる曲線命令の数に基づいて、前記第一のアウトライン特定データに関する優先度を計算する優先度計算手段と、
前記計算された優先度に基づいて、前記生成された第一のアウトライン特定データをキャッシュするか否かを判定し、前記判定結果が肯定的である場合、前記生成された第一のアウトライン特定データを前記キャッシュ手段に記憶させるキャッシュ制御手段と、
を備える画像形成装置。 - 前記入力された文字及びフォントファミリーの組み合わせに対応した第二のアウトライン特定データを生成する第二のアウトライン特定データ生成手段、を更に備え、
前記第一のアウトライン特定データ生成手段は、前記生成された第二のアウトライン特定データに基づいて、前記入力された文字及びフォントファミリーの組み合わせに対応した第一のアウトライン特定データを生成し、
前記優先度計算手段は、前記第一のアウトライン特定データに含まれる曲線命令の数に基づいて、又は、前記第一のアウトライン特定データの代わりに前記第二のアウトライン特定データに含まれる曲線命令の数に基づいて優先度を計算し、
前記第一のアウトライン特定データ生成手段及び前記画像形成用データ生成手段は、OpenVGの仕様に準拠した入出力インタフェースを有し、
前記第一のアウトライン特定データは、OpenVGの仕様に準拠したデータ形式である、
請求項1記載の画像形成装置。 - 前記優先度計算手段は、前記曲線命令の数に加えて直線命令の数に基づいて優先度を計算する、
請求項1又は2記載の画像形成装置。 - 前記優先度計算手段は、前記曲線命令が二種類以上存在する場合、前記曲線命令が示す曲線の複雑度に応じた重み付けをして優先度を計算する、
請求項3記載の画像形成装置。 - 前記優先度計算手段は、前記曲線命令を、当該曲線命令が示す曲線を表現する複数の直線のそれぞれを示す直線命令に置き換えた後、前記曲線命令の代わりに前記直線命令の数に基づいて優先度を計算する、
請求項3又は4記載の画像形成装置。 - キャッシュ可能な前記第一のアウトライン特定データの上限数が予め定められており、
前記キャッシュ手段には、第一のアウトライン特定データと当該第一のアウトライン特定データに関する優先度とが対応付けて記憶され、
前記キャッシュ制御手段は、キャッシュ済みの第一のアウトライン特定データの数がキャッシュ上限数に到達している場合、前記優先度計算手段によって計算された優先度が、キャッシュ済みの第一のアウトライン特定データのそれぞれに関する優先度のうち最も値の小さいもの以上であった場合、前記生成された第一のアウトライン特定データをキャッシュするものと判定する、
請求項1〜5のうちのいずれかに記載の画像形成装置。 - 前記キャッシュ制御手段は、
キャッシュするか否かの判定基準として用いられる前記優先度の閾値を保持し、
前記優先度計算手段によって計算された優先度が前記閾値以上であった場合、前記生成された第一のアウトライン特定データをキャッシュするものと判定する、
請求項1〜5のうちのいずれかに記載の画像形成装置。 - 印刷対象の文字と前記印刷対象の文字のフォントファミリーとの入力を受け付け、
前記入力された文字及びフォントファミリーの組み合わせに対応した第一のアウトライン特定データを生成し、
前記生成された第一のアウトライン特定データに基づいて、前記入力された文字及びフォントファミリーの組み合わせに対応した画像形成用データを生成し、
前記第一のアウトライン特定データに含まれる曲線命令の数に基づいて、前記第一のアウトライン特定データに関する優先度を計算し、
前記計算された優先度に基づいて、前記生成された第一のアウトライン特定データをキャッシュするか否かを判定し、前記判定結果が肯定的である場合、前記生成された第一のアウトライン特定データをキャッシュする、
画像形成方法。 - 印刷対象の文字と前記印刷対象の文字のフォントファミリーとの入力を受け付け、
前記入力された文字及びフォントファミリーの組み合わせに対応した第一のアウトライン特定データを生成し、
前記生成された第一のアウトライン特定データに基づいて、前記入力された文字及びフォントファミリーの組み合わせに対応した画像形成用データを生成し、
前記第一のアウトライン特定データに含まれる曲線命令の数に基づいて、前記第一のアウトライン特定データに関する優先度を計算し、
前記計算された優先度に基づいて、前記生成された第一のアウトライン特定データをキャッシュするか否かを判定し、前記判定結果が肯定的である場合、前記生成された第一のアウトライン特定データをキャッシュする、
画像形成方法を実現するコンピュータプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008287693A JP2010111088A (ja) | 2008-11-10 | 2008-11-10 | 画像形成装置 |
US12/614,849 US20100118323A1 (en) | 2008-11-10 | 2009-11-09 | Image forming apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008287693A JP2010111088A (ja) | 2008-11-10 | 2008-11-10 | 画像形成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010111088A true JP2010111088A (ja) | 2010-05-20 |
Family
ID=42164925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008287693A Pending JP2010111088A (ja) | 2008-11-10 | 2008-11-10 | 画像形成装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100118323A1 (ja) |
JP (1) | JP2010111088A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8099555B2 (en) * | 2009-01-23 | 2012-01-17 | Konica Minolta Laboratory U.S.A., Inc. | Systems and methods for memory management on print devices |
JP5476103B2 (ja) * | 2009-11-27 | 2014-04-23 | 富士フイルム株式会社 | ページ記述データ処理装置、方法及びプログラム |
KR101905300B1 (ko) * | 2017-01-26 | 2018-10-05 | 숭실대학교산학협력단 | 외곽선 폰트를 이용하여 metafont에 의한 폰트를 생성하는 장치 및 방법 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734748A (en) * | 1993-12-30 | 1998-03-31 | Canon Kabushiki Kaisha | Character pattern generation apparatus and method |
US5583978A (en) * | 1994-05-27 | 1996-12-10 | Bitstream Inc. | Apparatuses and methods for creating and using portable fonted texts with embedded automatically-created font descriptions |
US8203564B2 (en) * | 2007-02-16 | 2012-06-19 | Qualcomm Incorporated | Efficient 2-D and 3-D graphics processing |
US20090237406A1 (en) * | 2008-03-21 | 2009-09-24 | Chun-Chia Chen | Character rendering system |
-
2008
- 2008-11-10 JP JP2008287693A patent/JP2010111088A/ja active Pending
-
2009
- 2009-11-09 US US12/614,849 patent/US20100118323A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20100118323A1 (en) | 2010-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150325022A1 (en) | Technique for processing a character string for graphical representation on a man/machine interface | |
JPH0540463A (ja) | 多階調文字発生装置 | |
JP2010111088A (ja) | 画像形成装置 | |
US20130057554A1 (en) | Consolidating glyphs of a font | |
JP4753105B2 (ja) | 描画処理装置、画像出力装置、プログラム | |
JP2019029020A (ja) | プロセッサの複数のコアを効率的に使用してフォント処理を実行するデータ処理方法、データ処理装置及びプログラム | |
JP5142597B2 (ja) | 記号表示装置、プリンタ、記号表示方法、プログラム、記憶媒体 | |
JP5079341B2 (ja) | 印刷データ処理装置 | |
JP4140363B2 (ja) | 画像処理装置および画像処理方法 | |
JP4049136B2 (ja) | 画像処理装置及びプログラム | |
JP5097694B2 (ja) | 画像形成装置 | |
JP3548807B2 (ja) | イメージ図形変換方法 | |
JP2910921B2 (ja) | 印刷制御装置 | |
JP2006284980A (ja) | 文字画像形成装置、文字画像形成方法及び文字画像形成方法をコンピュータに実行させるためのプログラム | |
JP2790186B2 (ja) | 文字出力方法及びその装置 | |
JPH0333896A (ja) | フォント描画装置 | |
JPH06236173A (ja) | 文字処理装置 | |
JP4844364B2 (ja) | 画像処理装置及びプログラム | |
JP3210448B2 (ja) | 文字処理方法及び装置 | |
JP2000322586A (ja) | 輪郭情報生成装置、輪郭情報展開装置、輪郭情報生成プログラム記憶媒体、輪郭情報展開プログラム記憶媒体、輪郭情報生成方法及び輪郭情報展開方法 | |
JP2006350909A (ja) | 文書生成装置及び、ファイル最適化方法 | |
JPH0397062A (ja) | 文書処理装置 | |
JPH08297482A (ja) | 文字処理装置および方法 | |
JP2001307115A (ja) | 画像処理装置および画像処理方法 | |
JPH04218094A (ja) | アウトラインフォント処理装置 |