JP3473287B2 - フォント管理装置 - Google Patents

フォント管理装置

Info

Publication number
JP3473287B2
JP3473287B2 JP22454596A JP22454596A JP3473287B2 JP 3473287 B2 JP3473287 B2 JP 3473287B2 JP 22454596 A JP22454596 A JP 22454596A JP 22454596 A JP22454596 A JP 22454596A JP 3473287 B2 JP3473287 B2 JP 3473287B2
Authority
JP
Japan
Prior art keywords
font
fonts
area
management device
storage means
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP22454596A
Other languages
English (en)
Other versions
JPH1049132A (ja
Inventor
素史 堀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP22454596A priority Critical patent/JP3473287B2/ja
Publication of JPH1049132A publication Critical patent/JPH1049132A/ja
Application granted granted Critical
Publication of JP3473287B2 publication Critical patent/JP3473287B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Controls And Circuits For Display Device (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Record Information Processing For Printing (AREA)
  • Document Processing Apparatus (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ページ記述言語
(以下、PDLという。)によって記述されたPDLデ
ータを入力として画像出力を行うPDL処理出力装置に
おいて、フォントの記憶処理を管理するフォント管理装
置に関する。
【0002】
【従来の技術】PDLは、画像出力装置の解像度、カラ
ーの表現能力、処理方式等等と言った仕様に依存しない
形式で、複雑な図形の描画や任意の大きさの文字出力等
の定義が行える言語であり、非常に抽象度の高い表現能
力を持っている。特に、文字出力処理に関しては、PD
Lを用いて文書画像のデータを記述することによって、
任意の大きさの文字が出力できるだけでなく、描画する
文字のフォント(書体とも呼ぶ)の種類においても幅広
い選択ができるようになっている。このように、PDL
では、複数のフォントを選択できることによって一般の
印刷物のように見出しと本文、和文と英文等にフォント
を使い分けることが可能となり、文書の表現能力がそれ
以前と比較して格段に進歩した。なお、これらPDLの
例としては、Xerox社のInterpress(登
録商標)、Adobe社のPostScript(登録
商標)等が知られている。
【0003】このようなPDLデータに対しての従来の
処理出力装置及び処理の流れを図8及び図9を参照して
説明する。PDL処理出力装置1に入力された全てのP
DLデータは、入力解析部2で読み取られ(手順1)、
構築、描画、パラメータ設定、印刷指示といったPDL
データの属性にしたがって処理される(手順2)。すな
わち、入力されたPDLデータが描画用図形の構築に関
するものである場合には、図形管理部3が当該PDLデ
ータに従って図形バッファ4に描画用の図形データを構
築する(手順3)。また、入力されたPDLデータが描
画コマンドである場合には、パラメータテーブル6に設
定されているパラメータにしたがって、描画処理部5が
図形バッファ4に構築された描画用図形データを読み出
し、プリンタやCRTディスプレイ等から成る出力装置
7の表現能力に適したラスター展開を行ってフレームバ
ッファ8に書き込む(手順4)。
【0004】また、入力されたPDLデータがパラメー
タ設定コマンドである場合には(手順5)、まず、パラ
メータ管理部9がそのパラメータがフォント指定のもの
であるかどうかを判断し(手順6)、フォント指定に関
連するものでない場合は、パラメータテーブル6に登録
してそれぞれ必要な処理を行う(手順7)。一方、フォ
ント指定のものである場合は、パラメータ管理部9が、
パラメータをパラメータテーブル6に登録した後(手順
8)、主記憶装置上のフォント格納領域であるVM領域
10にそのフォントがすでに展開されているかどうかを
検索する(手順9)。この結果、既に展開されている場
合には、そのフォントを描画処理部5に現在使用中のフ
ォントとして扱わせる一方、未だ展開されていないフォ
ントの場合には、図外の外部記憶装置等に格納されてい
るフォントを読み込んでVM領域10上に展開して、現
在使用中のフォントとして扱わせる(手順11)。
【0005】また、入力されたPDLデータが印刷出力
コマンドである場合には、描画コマンドによって既にフ
レームバッファ8に描画されている内容を、印刷処理部
11が出力装置7に同期して読み出し印字操作を行わせ
る(手順12)。なお、フレームバッファ8はバンド形
式のバッファでも原理は同じである。そして、入力され
た全てのPDLデータが上記のように処理されたところ
で、一連の処理を終了する(手順13)。
【0006】更に、このようなPDLデータに対する従
来の処理の内のフォントの選択処理について詳しく説明
するが、説明を分かり易くするために、PDLの一例と
してAdobe社のPostScript(登録商標)
及びその処理系を登載したプリンタを例にとって説明す
る。なお、PostScript(登録商標)の言語仕
様については、Adobe社の”PostScript
ReferenceManual Second E
dition”において詳しく説明されている。
【0007】PostScript(登録商標)の言語
仕様では、フォントはVMと呼ばれる主記憶装置のある
領域に対して展開される。なお、このVMと呼ばれてい
る領域の他には、印刷処理を行う際の印刷装置用バッフ
ァや内部処理のためのWork領域が必要なため、VM
は主記憶装置内においてPDLの言語処理に使用される
領域とも表現でき、つまり、VMはPDLデータを解析
処理する際にその内部状態を保持するための領域として
使用されている。ここで、VMはLocalVMとGl
obalVMの2種類に分かれており、両者の違いはL
ocalVMにはsave/restoreという記憶
状態の世代管理機構が提供されていることである。すな
わち、saveコマンドを発行した段階以降にVMに行
われた変更を、restoreコマンドによって無効に
し、saveした段階まで状態を復帰することができる
ことである。PostScript(登録商標)におい
ては、この機構を多用しており、例えば、1ページの処
理ごとに状態を復帰させてpage毎に独立をはかるた
めの手段として用いている。
【0008】ところで、フォントはfindfontコ
マンド等によってVM上に展開されることによって使用
可能(参照可能)なフォントとして設定される。この展
開処理に際して、現在のVMのモードによってLoca
lVM上に展開されるかGlobalVM上に展開され
るかが決定される。そして、LocalVMに展開され
た場合には、既に一度saveされた状態であれば、r
estoreコマンドによってそのフォントが展開され
た状態が取り消され、元の状態に戻すことができる。
【0009】ここで、一般的に、フォントのVM上への
展開処理にはかなりの時間がかかる。英語のように1フ
ォント辺り数十文字から多くても百文字程度のものであ
れば、例えば1ページごとにVMがrestoreされ
てフォントを展開する前の状態に戻された後、再び当該
フォントが選択された時には新規にフォントを展開する
ような方式であっても、その処理時間は無視できる程度
である。しかしながら、日本語のように文字数が1フォ
ントに付き数千文字になると、展開処理の時間は大きな
オーバヘッドとなる。また、それだけの大容量のフォン
トを展開するにはVMも大量に消費することとなる。
【0010】このような不具合について更に詳しく説明
するとともに、従来において考えられていたな解決方法
を説明する。例えば、PostScript(登録商
標)の通常のフォントフォーマットはType1と呼ば
れているものであるが、このフォーマットに限らず、図
10に示すように、全てのフォントはPDLデータの言
語プログラムの形式で記述されている。主記憶装置12
内のVM領域10上に展開されていない状態では、フォ
ントを記述しているプログラムはそのままPDL処理出
力装置1が有するfile system上のROMや
Disk等の外部記憶装置13に格納されており、描画
処理においてフォントを参照する等の必要に応じて、当
該プログラムを実行することによってフォントがVM領
域10上に展開される。
【0011】ここで、PostScriptにおけるV
M領域上への展開処理は、図11に示すように、キーと
それに対応するデータ内容の組みを辞書と呼ばれるオブ
ジェクトとし、これらオブジェクトを複数格納した形式
のオブジェクトとして行われる。つまり、あるフォント
が選択された場合、そのフォントがVM領域上にすでに
展開されている時には、その該当する辞書オブジェクト
が参照されるが、未だVM領域上に展開されていない時
には、外部記憶装置からその辞書を作成するためのプロ
グラムファイルが検索されて実行され、辞書が作成され
る。このようにPostScriptのフォントはプロ
グラム形式で記述されている情報を辞書オブジェクトの
形式でVM領域上に展開するため、展開処理に時間およ
びVM資源を多量に消費することとなる。特に、Typ
e1と呼ばれる形式は全ての情報についてVM上に展開
するフォーマットであるので、これが顕著である。
【0012】このような不具合を解決するためには、辞
書の基本部分のみをVM上に置いた状態とし、一番デー
タ容量の大きいアウトラインデータ定義部分は別の外部
領域(DISKやROM上)に格納してた状態で使用
し、プログラムにはその領域へのアクセスメソッドおよ
びポインタのみを置くという方法が考えられる。この解
決方法によれば、高価な半導体メモリによって提供され
ているVMについて、必要とされる容量を抑えることが
でき、また、最もサイズの大きいアウトラインデータ本
体はVM上には展開しないので、トータルでの展開時間
も削減することができる。
【0013】このようにアウトラインデータ定義部分は
外部領域に格納してた状態で使用する、すなわち、所謂
ROM化するのが効果的な方法と考えられる。このRO
M化方式において一番理想的な方法は、コンピュータの
オペレーティングシステムに用いられているような仮想
記憶装置における記憶領域スワップの方式を用いて、P
DL処理出力装置の立ち上げ時に使用可能なすべての保
有フォントをVM上に展開した状態で、そのVMをスワ
ップ領域として扱い、そのままROM化する方式、つま
りVMのSnapShotを作成してそのままROMに
焼き、なおかつ、その状態でメモリ管理システムで認識
する方式である。この方式は、VMをそのままROMに
焼くのでRAMのVMは一切消費しないので、一番効率
がよい方法と考えられる。ただし、VMのSnapSh
otをROMに焼くためには、PDL処理出力装置のメ
モリ管理とオペレーティングシステムのメモリ管理を一
元化する必要があり、そのため、固有のオペレーティン
グシステムに依存し、PDL処理出力装置のVM管理機
構そのものを変更する必要がある。
【0014】このような事情から、ROM化方式を容易
に実現するためには、フォントデータの枠組みとしては
既存のフォーマットを利用して互換性を保ち、その一部
をROM化してVMの消費量を減らし、なおかつ、RO
M化した部分はVM上に展開はしないので展開速度を早
くするという方式が有利と考えられる。このような観点
から考案された独自方式の一例として、富士ゼロックス
社発行の「富士ゼロックステクニカルリポートNo.8
1993」の「フルカラープリントサービス技術」の
項にある方式について説明する。
【0015】図12に示すように、この方式は次の2つ
を柱にしており、その一つはType85という外部記
憶装置に対応するフォントフォーマット、もう一つは遅
延評価方式である。PostScript(登録商標)
は、英語用のものをベースに日本語対応を果たしたPD
Lであり、そのため、1つのフォント辞書は通常256
文字以内で表現される。したがって、漢字のように数千
文字が必要なフォントにおいては、フォントを複合形式
によって管理している。すなわち、複数のフォントを階
層的に配置し、最終的には256文字以下にすることに
よって管理している。この複合形式によるフォントの管
理において、階層の上位に位置する、つまりマッピング
を行うためのフォントを”Composite Fon
t”と呼び、Type0という形式番号が与えられてい
る。つまり、1つの書体に対しては1つのType0フ
ォントが対応するため、既存の英語のフォント管理方式
と共存できる。このような管理においては、フォントの
実体はそのType0フォントから階層的にマッピング
された複数のフォント”Descender Fon
t”によって構成され、最終的にはType1などの実
体を持つフォント”Base Font”へ辿ることに
より行われる。
【0016】ここで、この方式における特徴は、この”
Base Font”として富士ゼロックス社が独自に
定義したType85というフォントを用いていること
である。このフォントはPostScriptの辞書と
して必要なエントリーは持っているが、フォントのアウ
トラインデータ自体は外部記憶装置上におくことによっ
て、新規のフォントが選択された時のローディング速度
とVMの消費を抑えている。さらに、遅延評価方式をフ
ォント管理に対して適用しており、findfontコ
マンドを実行した時には仮のオブジェクト(疑似フォン
ト)を作成して登録し、実際にscalefontなど
によってある特定の大きさの実際の処理対象となるフォ
ントが必要になったときに、初めて実際にフォントの実
体の展開/作成を行う。この遅延評価方式では、必要と
なるまではフォントの実体部分は展開されないので、仮
に初期化時に多くのフォントをあらかじめ展開して備え
るような場合においても負荷が集中することがないので
負荷分散にもなる。
【0017】しかしながら、この方式ではフォントの実
際の展開を先延ばしにすることはできるが、多数の日本
語フォントなどが選択されて文字出力が行われた場合に
は、主記憶装置の消費量は際限なく大きくなってしま
う。したがって、この方式では、英語のみ対応している
ものに対して、日本語対応とするためには主記憶装置に
多くのメモリ容量を必要としてしまう。
【0018】また、特開平7−64971号公報には、
日本語のような文字数の多いフォントについて、フォン
トをグループ分けして外部記憶装置等に格納しておき、
文字描画を行う際に該当するフォントが主記憶装置にす
でに展開されているかどうかを検索し、未展開の場合に
は外部記憶装置から展開するシステムが開示されてい
る。このシステムによれば、システム立上げ時には全て
のフォントを展開する必要がないので、展開時間の速さ
と主記憶装置の容量の低減をはかることができるとして
いる。
【0019】しかしながら、このシステムでは、文字を
描画する段階になって初めてあるグループのフォント展
開を新規に開始するため、既存のPDL、特にPost
Scriptのような書体の選択および文字出力方式に
は適用できないものであった。すなわち、PDL処理に
おいては図3に示すようなテーブル(FontDire
ctry)を用いてフォントを管理しているが、fin
dfontコマンドで指定された名前のフォントを使用
可能なオブジェクトとして作成すると同時に、当該名前
はFontDirectoryに登録される。つまり、
書体が選択された段階で、フォントオブジェクトはFo
ntDirectoryに登録されていないといけな
い。これに対して、特開平7−64971号公報に記載
されたシステムでは、単純に主記憶装置上に展開するフ
ォントをグループ化された小さい単位で行うとしている
だけであるので、このようにFontDirector
yなどの管理テーブルから間接参照された場合に参照さ
れたフォントが主記憶装置には展開されていない事態が
発生してしまう。また、このシステムでは、単に文字コ
ードから逆引きでフォントを選択するので、複数の書体
には対応しておらず、PostScriptのような高
機能のPDL処理出力装置には適用できないものであっ
た。
【0020】
【発明が解決しようとする課題】上述のように、従来に
おいては、PDL処理出力装置において、日本語のよう
に書体数が多いフォントの扱いについては主記憶装置の
容量を増やすなどして対応するしかなかった。したがっ
て、従来にあっては、日本語のように多数のフォントの
展開処理を高速に行うことができず、また、主記憶装置
におけるフォントに使用される容量がかなり大きなもの
となってしまうとともに、メモリ管理が極めて複雑化し
てしまうという問題があった。本発明は上記従来に事情
に鑑みなされたもので、限られた主記憶装置の容量で日
本語等の多くのフォントを扱うことが可能なフォント管
理装置を提供することを目的とする。
【0021】
【課題を解決するための手段】上記目的を達成するた
め、本発明では、PDLにより記述されたPDLデータ
に基づいて参照される複数の文字画像のフォントを管理
するフォント管理装置において、複数のフォントを保持
するROM等の補助記憶手段と、描画処理に用いるフォ
ントを保持するVM領域等の主記憶手段と、を備え、展
開受付手段がフォントを展開する指示を受け取ると、主
記憶管理手段が展開を指示されたフォントを展開するこ
とによって主記憶手段に保持されるフォントの総量が所
定の容量を超えるか否かを検出する。そして、主記憶管
理手段によってフォントの総量が前記容量を超えること
が検出された場合には、排除手段が主記憶手段に保持さ
れているフォントの中で参照頻度が最も低いフォントか
ら排除して領域を確保し、この領域確保後に、展開手段
が展開指示のあったフォントを参照可能な形式として補
助記憶手段から主記憶手段に展開する。
【0022】また、本発明に係るフォント管理装置で
は、各フォントは文字画像の情報を管理する実体フォン
ト部分と、PDLデータと実体フォント部との関連付け
を管理する識別フォント部分とを有しており、参照受付
手段が既に主記憶手段に保持されたフォントに対しての
参照指示を受け付けると、主記憶管理手段が参照指示の
あった実体フォント部分を展開することによって主記憶
手段に保持されるフォントの総量が所定の容量を超える
か否かを検出する。そして、主記憶管理手段によってフ
ォントの総量が前記容量を超えることが検出された場合
には、排除手段が主記憶手段に保持されている実体フォ
ント部分の中で参照頻度が最も低い実体フォント部分か
ら排除して領域を確保し、この領域確保後に、参照展開
手段が参照指示のあった実体フォント部分を参照可能な
形式として補助記憶手段から主記憶手段に展開する。
【0023】より具体的には、本発明に係るフォント管
理装置では、入力されたPDLデータを解析してフォン
ト処理に関する命令を抽出する。そして、抽出したフォ
ントに関する命令の内のフォントを主記憶装置上に展開
する必要のあるものについて、外部記憶装置から読み出
して展開する。この展開を行う際に、該当するフォント
の使用頻度をカウントし、主記憶装置の容量の制限にし
たがって使用頻度の低いフォントについてはその主記憶
装置上の領域を解放して再利用可能とする。また、この
再利用可能な状態においても識別フォント部分は主記憶
装置上に存在させて、間接参照が行えるようにしてい
る。
【0024】
【発明の実施の形態】本発明の一実施形態に係るフォン
ト管理装置を、図面を参照して説明する。なお、図8〜
図12に示した従来例も必要に応じて適宜参照する。図
1には、本実施形態に係るフォント管理装置を示してあ
り、このフォント管理装置は図8に示したPDL処理出
力装置1におけるパラメータ管理部9内のフォント管理
部20として構成されている。フォント管理部20に
は、PDLデータのパラメータ設定関連コマンドにより
フォントを展開する指示を受け取る受付手段21と、展
開を指示されたフォントを主記憶装置のVM領域10に
展開することによってVM領域10に保持されるフォン
トの総量が所定の容量を超えるか否かを検出する主記憶
管理手段22と、フォントの総量が当該容量を超えるこ
とが検出された場合にVM領域10に保持されているフ
ォントの中で参照頻度が最も低いフォントを順次排除す
る排除手段23と、排除によって展開領域が確保された
VM領域10に展開指示のあったフォントを参照可能な
形式として外部記憶装置13から展開する展開手段24
と、を備えている。
【0025】ここで、後述するように、本実施形態にお
けるフォントは文字画像の情報を管理する実体フォント
部分と、PDLデータと前記実体フォント部との関連付
けを管理する識別フォント部分とを有しており、排除手
段23による排除処理は既にVM領域10に保持されて
いる実体フォント部分のデータ領域を指示に基づいて展
開する他の実体フォント部分で上書きすることにより行
われる。このような処理を実行するために、フォント管
理部20には、展開手段24が実体フォント部を展開す
る際に、指示された実体フォント部分のエントリを排除
する実体フォント部分の対応するエントリに対して反映
させる制御を行う展開制御手段25が、備えられてい
る。
【0026】次に、本実施形態のフォント管理部20に
よって行われる処理を図2を参照して説明する。なお、
本実施形態におけるPDLデータの処理は、図9に示し
た従来例に対してパラメータ設定関連コマンドについて
の処理部分の一部(手順14〜手順16)が異なるだけ
であるので、他の処理部分(手順1〜手順10及び手順
12、手順13)についての説明は重複を避けるために
割愛する。本実施形態においても、フォントがVM領域
10に展開されていない場合は、外部記憶装置13から
フォントを生成するPDLデータ(プログラム形式)を
読み込み、それを実行することによってVM領域10上
に展開処理を行ってフォントオブジェクトを生成する。
ここで、VM領域10内に新規に展開のための領域を確
保すると、従来の問題点として説明したように、フォン
ト数が増えるに比例してVM領域10を際限なく消費し
てしまう。
【0027】このため、まず、主記憶管理手段22が、
現在VM領域10内において使用されているフォントの
中で、一番使用頻度の低いものを探し(手順14)、そ
のフォントが確保していた領域を排除手段23が解放す
る(手順15)。この使用頻度については、1文字出力
処理を行うごとに、主記憶管理手段22が該当フォント
の使用頻度情報を更新して、その頻度情報に従って判定
する。そして、VM領域10内に展開可能な領域を確保
した後、該当する新規フォントを展開手段24が外部記
憶装置13から読み出してVM領域10に展開する。
【0028】ここで、上記の処理を単純に行っただけで
は、PostScriptの処理系においては問題が発
生する。すなわち、図3に示すように、PostScr
iptでは、VM上に展開されているフォントはフォン
トディレクトリー”FontDirectry”という
称せられる管理テーブルによって管理されており、ユー
ザはそれを参照することができる。このため、単にVM
からフォントを解放してしまうと、この管理テーブルと
の対応がとれなくなる。なお、管理テーブルに対してV
Mの現在の内容をそのまま反映させると、この管理テー
ブルには使用頻度の高いフォントのみ登録されているこ
とになる。これはPostScirptの言語仕様上一
般には許されないものである。PostScirptの
言語仕様上は一度VMに展開されたフォントは、そのV
M領域がrestoreなどの明示的なコマンドで前の
状態に戻るなどしなければ、そのまま保持されつづれな
ければならないからである。
【0029】したがって、本実施形態の基本的な処理で
は、あるフォントが解放された際には、”FontDi
rectory”に登録されているエントリーはそのま
まにして、データ部分(つまり、フォント辞書そのも
の)はダミーのものを残すことにしている。そして、”
FontDirectory”を通して実際にアクセス
された際には、再びその辞書を新規にVM領域に展開し
て、対応するダミーと換えるようにしている。但し、こ
のような処理だけでは、”FontDirector
y”の管理に負荷をかけることとなって処理速度の低下
を招く可能性がある。そこで、本実施形態では、このよ
うなフォントの頻度による管理を複合形式のフォントの
うちの”Base Font”のみについて限定して実
施するようにしている。
【0030】複合形式のフォントは先にも説明したよう
に、PostScriptで漢字を扱うために主に用い
られているものであり、図3に示すように、フォント名
に対応した一番上位のフォントを”Root Fon
t”、この”Root Font”から派生する下位の
フォントを”Descender Font”と呼び、
この”Descender Font”の内の最下位の
フォントで実際にフォントデータを持っているフォント
を特に”Base Font”と呼ぶ。基本的な漢字フ
ォントは、1つの”Root Font”と数十の”B
ase Font”から成っているが、複雑なコード体
系のフォントであると、中間段に”Descender
Composite Font”が幾つか入ることも
ある。なお、”Base Font”はいわゆる漢字の
区単位に分かれており、その数は1フォントに付き数十
から百個程である。
【0031】本実施形態では、”Base Font”
のみをVM領域からの解放の対象とし、さらに、次の処
理を組み合せることによって問題を回避している。すな
わち、”Base Font”のみを単に解放の対象と
すると、その上位の”Descender Font”
は自分の下位の”Base Font”が解放されてい
ることを認識して内容を随時更新しなければならず、ま
た、解放された”Base Font”のために”Fo
ntDirectory”も更新されなければならない
という問題を回避している。
【0032】本実施形態では、findfontコマン
ドによって漢字フォントが呼び出されると、通常は”R
oot Font”および”Base Font”の全
てのフォントが呼び出されるが、従来例にある遅延評価
の手法を導入し、最初にfindfontされた段階で
は疑似フォントのみを生成し、実際に文字描画時に指定
された文字が格納されている”Base Font”の
みを逐次VM領域に展開するものである。つまり、使用
した区だけVM領域に展開するようにしており、このた
め、あまり使用されない第二水準のようなフォントはほ
とんどVM領域に展開されないこととなってVM領域の
使用量が減少する。さらに、本実施形態では、これにV
M領域の解放の仕組みと、解放と新規生成の繰り返しに
よる主記憶装置の領域の断片化を防ぐ仕組みとを採用し
ている。
【0033】まず、領域の解放と間接参照について説明
する。本実施形態では、日本語フォントは図4に示すよ
うな階層で管理される。最上位の”Root Comp
osite Font”は、そのフォントが管理してい
る次の階層の”Descender Font”を”F
DepVector”というエントリー名の辞書の配列
で管理している。”Root Composite F
ont”の”FontType”エントリーは0であ
り、”FMapType”エントリーは次の階層のフォ
ントの内のどのフォントを選択するかのアルゴリズムを
決定する。例えば、”FMapType”エントリーが
2の場合は、showコマンドの対象となる文字列の最
初の1Byteの数値を”FDepVector”エン
トリーに示された配列のインデックスとして用いて、次
の階層の辞書を特定する。
【0034】ここで、本来は、この次の階層に”Bas
e Font”がくるわけであるが、本実施形態では独
自のフォントフォーマットのフォント”Descend
erComposite Font”をもう一段はさん
でいる。なお、このフォントのFontTypeは、疑
似フォントを示す88としてある。また、この”Des
cender Composite Font”は、
(1)”Base Font”の取得のための手続き、
(2)既に”Base Font”が取得されている場
合はその辞書へのポインタ、を有しているフォントであ
る。
【0035】まず、最初にある日本語書体が選択された
時には、このType88のフォント”Descend
er Composite Font”までは、VM領
域上に新規に展開される。この結果、選択された書体は
フォント管理テーブル”FontDirectory”
に登録され、間接参照されることが可能となる。このよ
うにType88フォントが展開された段階で書体選択
処理は終了するが、このType88フォントが指し示
す実際の”Base Font”まではVM領域上に作
成されない。したがって、ほとんどVM領域の消費がな
い状態でフォントの展開処理が実現される。
【0036】次いで、文字を描画するためにマッピング
アルゴリズムにしたがって”Base Font”を実
際に探す状態が生ずると、Type88フォントが選択
された段階で初めて必要となる”Base Font”
のみを、Type88フォントに登録されている上記
(1)の手続きを実行することによって作成し、或い
は、上記(2)のポインタで選択し、その”Base
Font”内で実際に文字描画処理を行う。なお、こ
の”Base Font”は、本実施形態では”Fon
tType”を87とするが、Type1をベースにし
たROM対応の独自フォーマットである。また、ROM
に対応しているためにVM領域に実際のフォントデータ
は展開されず、この点からもVM領域の消費量を減らす
ことができる。
【0037】このように、最初にある日本語フォントが
選択された段階ではFontType88の”Comp
osite Font”までしか生成されないので、V
M領域の消費量が抑えられるとともに展開速度も迅速に
行われ、実際に文字描画をする段階になって初めて必要
な”Base Font”のみをVM領域に展開する。
ここで、上記のような展開処理を単純に行うだけでは、
数多くの文字が描画されると次第にVM領域の消費量が
増えて行くこととなる。このような事態を回避するため
に、本実施形態では図5に示すような頻度管理を行って
いる。
【0038】すなわち、予め設定してあるVM領域の消
費量の上限値となった場合で、且つ、新たにType8
7の”Base Font”を作成する場合には、VM
領域に展開されている各フォントの使用頻度を管理して
いる頻度管理テーブルを参照して、Type87の”B
ase Font”の使用頻度情報から使用頻度の低い
ものを選択する。そして、その”Base Font”
を指している上位のType88のフォントを調べ、そ
のフォントに登録されているBase Fontポイン
タをクリアし、その”Base Font”が展開され
ているVM領域内の領域を再利用するために初期化す
る。このような処理によって、1つのフォントを生成す
るために1つのフォントを解放してVM領域の消費量を
抑えることができる。なお、先のType88フォント
のは”Base Font”が未展開の状態に戻る。
【0039】更に、本実施形態では、フォントが使用し
ている主記憶装置のVM領域の排除/展開に際して、領
域を単に解放してから再確保するのではなく、図6に示
すように、書き換え処理によって再利用する方式を用い
ている。すなわち、VM領域に展開されている前の”D
escender Composite Font”を
排除して、この領域に次の”Descender Co
mposite Font”を展開するために、前の”
Descender Composite Font”
の”Base Font Pointer”をNULL
として、次の”Descender Composit
e Font”の”Base FontPointe
r”を該当する”Base Font”に設定する。
【0040】ここで、単に”Base Font”を展
開する領域を解放して再度確保していたのでは、VM領
域が虫食い状態のように使用領域と解放領域が入り乱れ
た断片化状態が発生してしまう。VM領域のリアルタイ
ムなガベージコレクションを持ったシステムであればこ
のような問題は回避することができるが、迅速な処理を
実現するためにはリアルタイムなガベージコレクション
を実現することは困難である。本実施形態の書き換え処
理は、このようなVM領域の断片化を防ぐために行われ
る。
【0041】すなわち、図7に示すように、”Base
Font”は解放せずに、フォント辞書の中身を新規
の内容で書き換える処理を行う。この処理を実現するた
めに、全ての”Base Font”のエントリー構成
を統一化しており、再利用は対応するエントリーを書き
換えることにより行う。すなわち、図7(1)に示すよ
うに各”Base Font”間で共通するエントリー
の値は書き換えず、図7(2)に示すように各”Bas
e Font”間で異なるエントリーの値は上書きす
る。なお、エントリー構成の統一化を実現するために、
図7(3)に示すように各”Base Font”間で
異なる値となるエントリーの数が不定のものについて
は、最大数のエントリーを持った形式で全ての”Bas
e Font”を構成してある。
【0042】つまり、書換えに対応するために、書き換
え専用の辞書をあらかじめFont用のVM領域の制限
値に従って適当な数用意しておき、確保はここから行う
ようにする。日本語フォントの”Base Font”
のすべてに対応できるようにするためには、不定長のデ
ータが格納される可能性があるような場合は、その最大
値で書き換え用のフォント辞書を生成しておく。辞書の
ようにエントリーとデータの組みで表現されるようなも
のの場合は、エントリーについてもすべてのフォントで
使用されるものをあらかじめ登録する。
【0043】このような処理を行うことにより、常にフ
ォントに使用されるVM領域の容量を制限することが可
能となり、また、再利用することによる主記憶装置の領
域の断片化も発生しない。さらに、この処理による速度
的なオーバヘッドも少なく、特に、最初にある日本語フ
ォントが選択された時の展開速度は、”Base Fo
nt”を生成しないために迅速である。
【0044】
【発明の効果】以上説明したように、本発明によれば、
日本語フォントのように多種類のフォントについての展
開処理を高速に実行することができ、また、主記憶装置
内のフォントに使用される領域の容量を一定量以下に抑
えることが可能となり、メモリ管理が容易になる。
【図面の簡単な説明】
【図1】 本発明に係るPDL処理出力装置の要部の構
成を示す図である。
【図2】 本発明に係るPDL処理出力装置の処理手順
を示すフローチャートである。
【図3】 Font Directoryを説明する概
念図である。
【図4】 本発明に係る漢字フォントの階層構造を示す
図である。
【図5】 本発明に係る頻度管理を説明する概念図であ
る。
【図6】 再利用処理における上位フォントの変化を示
す図である。
【図7】 本発明に係るフォントの再利用処理を説明す
る図である。
【図8】 従来例に係るPDL処理出力装置の構成を示
す図である。
【図9】 従来例に係るPDL処理出力装置の処理手順
を示すフローチャートである。
【図10】 フォント辞書の展開を説明する概念図であ
る。
【図11】 フォント辞書の一例を示す構成図である。
【図12】 従来のフォント展開処理を説明する概念図
である。
【符号の説明】
9・・・パラメータ管理部、 10・・・VM領域(主
記憶手段)、13・・・外部記憶手段、 20・・・フ
ォント管理部、21・・・受付手段、 22・・・主記
憶管理手段、 23・・・排除手段、24・・・展開手
段、 25・・・展開制御手段、
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI G06F 12/02 520 G06F 12/02 520A 17/21 562 17/21 562P (58)調査した分野(Int.Cl.7,DB名) G09G 5/00 - 5/42 G06F 3/12 G06F 3/14 G06F 17/21 B41J 2/485

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 PDLにより記述されたPDLデータに
    基づいて参照される複数の文字画像のフォントを管理す
    るフォント管理装置において、 各フォントは文字画像の情報を管理する実体フォント部
    分と、PDLデータと前記実体フォント部分との関連付
    けを管理する識別フォント部分とを有しており、 複数のフォントを保持する補助記憶手段と、 描画処理に用いるフォントを保持する主記憶手段と、 フォントを登録する指示を受け付ける登録受付手段と、 登録受付手段が登録指示を受け付けたことに基づいて、
    フォントの識別フォント部分のみを補助記憶手段から主
    記憶手段に展開する登録展開手段と、を備えたことを特
    徴とするフォント管理装置。
  2. 【請求項2】 請求項1に記載したフォント管理装置に
    おいて、 さらに、既に主記憶手段に保持されたフォントが管理し
    ている文字画像情報に対しての参照指示を受け付ける参
    照受付手段と、 参照受付手段が参照指示を受け付けたことに基づいて、
    参照指示のあった文字画像情報を管理する実体フォント
    部分を展開することによって主記憶手段に保持されるフ
    ォントの総量が所定の容量を超えるか否かを検出する主
    記憶管理手段と、 主記憶管理手段によってフォントの総量が前記容量を超
    えることが検出されたことに基づいて、主記憶手段に保
    持されている実体フォント部分の中で参照頻度が最も低
    い実体フォント部分から排除して領域を確保する排除手
    段と、 排除手段による領域確保の後に、参照指示のあった実体
    フォント部分を参照可能な形式として補助記憶手段から
    主記憶手段の前記確保した領域に展開する参照展開手段
    と、を備えたことを特徴とするフォント管理装置。
  3. 【請求項3】 請求項2に記載したフォント管理装置に
    おいて、 各フォントの実体フォント部分の大きさを統一したこと
    を特徴とするフォント管理装置。
  4. 【請求項4】 PDLにより記述されたPDLデータに
    基づいて参照される複 数の文字画像のフォントを管理す
    るフォント管理装置において、 各フォントは文字画像の情報を管理する実体フォント部
    分と、PDLデータと前記実体フォント部分との関連付
    けを管理する識別フォント部分とを有しており、 複数のフォントを保持する補助記憶手段と、 描画処理に用いるフォントを保持する主記憶手段と、 既に主記憶手段に保持されたフォントが管理している文
    字画像情報に対しての参照指示を受け付ける参照受付手
    段と、 参照受付手段が参照指示を受け付けたことに基づいて、
    参照指示のあった文字画像情報を管理する実体フォント
    部分を展開することによって主記憶手段に保持されるフ
    ォントの総量が所定の容量を超えるか否かを検出する主
    記憶管理手段と、 主記憶管理手段によってフォントの総量が前記容量を超
    えることが検出されたことに基づいて、主記憶手段に保
    持されている実体フォント部分の中で参照頻度が最も低
    い実体フォント部分から排除して領域を確保する排除手
    段と、 排除手段による領域確保の後に、参照指示のあった実体
    フォント部分を参照可能な形式として補助記憶手段から
    主記憶手段の前記確保した領域に展開する参照展開手段
    と、を備え、 さらに、各フォントの実体フォント部分の大きさを統一
    したことを特徴とするフォント管理装置。
  5. 【請求項5】 請求項3又は請求項4に記載したフォン
    ト管理装置において、 さらに、各フォントの実体フォント部分のエントリの構
    成を統一しており、 前記排除手段による排除処理は既に主記憶手段に保持さ
    れている実体フォント部分のデータ領域を上書きするこ
    とにより行い、 参照展開手段が実体フォント部分を展開する際に、参照
    指示された実体フォント部分のエントリを排除する実体
    フォント部分の対応するエントリに対して反映させる制
    御を行う展開制御手段を、備えたことを特徴とするフォ
    ント管理装置。
JP22454596A 1996-08-07 1996-08-07 フォント管理装置 Expired - Fee Related JP3473287B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22454596A JP3473287B2 (ja) 1996-08-07 1996-08-07 フォント管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22454596A JP3473287B2 (ja) 1996-08-07 1996-08-07 フォント管理装置

Publications (2)

Publication Number Publication Date
JPH1049132A JPH1049132A (ja) 1998-02-20
JP3473287B2 true JP3473287B2 (ja) 2003-12-02

Family

ID=16815482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22454596A Expired - Fee Related JP3473287B2 (ja) 1996-08-07 1996-08-07 フォント管理装置

Country Status (1)

Country Link
JP (1) JP3473287B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060048060A (ko) * 2004-05-28 2006-05-18 톰슨 라이센싱 텍스트 압축을 사용한 사용자 인터페이스

Also Published As

Publication number Publication date
JPH1049132A (ja) 1998-02-20

Similar Documents

Publication Publication Date Title
US5422992A (en) Method and system to handle state variables in a document processing language
US6687016B2 (en) Method of utilizing variable data fields with a page description language
US6111654A (en) Method and apparatus for replacing or modifying a postscript built-in font in a printer
US6662270B1 (en) System and method for caching of reusable objects
US20040197124A1 (en) Idiom recognizing document splitter
US5325484A (en) Method and system to handle inclusion of external files into a document processing language
JP3672608B2 (ja) フォント・データの圧縮・伸長装置
US7155476B2 (en) Print system, printing method, and storage medium
US20030046314A1 (en) Text processing device, text processing method and program therefor
US5732197A (en) Printing control apparatus
JP3962649B2 (ja) フォントダウンロード装置および方法
JP3473287B2 (ja) フォント管理装置
JP3618828B2 (ja) 情報処理装置及び情報処理方法
JP3406706B2 (ja) 状態変数管理方法
JP2595978B2 (ja) フォント管理装置
EP0506101A1 (en) Character resource management system
US20060044588A1 (en) Image forming apparatus and printing system
JP3406705B2 (ja) 辞書操作方法
EP0874305B1 (en) Integrated display list and building tool for multiple personalities
JP2006347064A (ja) ページ描画装置
JPH06289838A (ja) フォントキャッシュ制御装置およびその適用方法
JPH11227269A (ja) 印刷制御装置および印刷制御装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JPH09166974A (ja) 文書処理装置及びキャッシュ機能方法
JP2002120418A (ja) プリンタ装置及び該プリンタ装置を備えた画像処理装置
JP2003303063A (ja) 出力制御装置および出力制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees