JP3672608B2 - フォント・データの圧縮・伸長装置 - Google Patents
フォント・データの圧縮・伸長装置 Download PDFInfo
- Publication number
- JP3672608B2 JP3672608B2 JP08325495A JP8325495A JP3672608B2 JP 3672608 B2 JP3672608 B2 JP 3672608B2 JP 08325495 A JP08325495 A JP 08325495A JP 8325495 A JP8325495 A JP 8325495A JP 3672608 B2 JP3672608 B2 JP 3672608B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- glyph
- glyphs
- font
- pixel data
- 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
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/143—Glyph-codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1297—Printer code translation, conversion, emulation, compression; Configuration of printer parameters
-
- 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
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/002—Generic data access
- G06K2215/0028—Generic data access characterised by the format per se
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Toxicology (AREA)
- Electromagnetism (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
- Document Processing Apparatus (AREA)
- Record Information Processing For Printing (AREA)
Description
【0001】
【産業上の利用分野】
本発明は、アウトライン・フォント表現を使用するデータ処理システムに関し、詳細には、圧縮済みフォントを含むプリンタ・システムと、フォント記憶容量要求を低減する圧縮済みフォントの伸長の手順とに関する。
【0002】
【従来の技術】
多数のフォントは、アウトライン形で記憶され、プリンタによってアクセスされると、フォント文字の完全なストローク表現を示すように「充填つぶされる」。TrueTypeは、ある種のコンピュータ・アウトライン・フォント・データの表現を定義する業界規格である。TrueTypeフォーマットを使用して大きなフォント(たとえば、漢字)を表すとき、メモリ要件は2メガバイトないし5メガバイトを超えることがある。そのようなフォントは読取り専用メモリ(ROM)に記憶されることが多いので、大規模で拡張可能なROMが必要とされる。フォントは、ディスク・ドライブ上(たとえば、コンピュータ・オペレーティング・システム中)に記憶することも、あるいはランダム・アクセス・メモリ(RAM)(たとえば、コンピュータのメイン・メモリに維持されるフォント)に記憶することもできる。
【0003】
フォント記憶メモリ容量の低減は常に課題とされているが、これと並行して、以前に定義された業界フォント規格(たとえば、TrueType)との互換性を維持する必要もある。図1に、TrueTypeアウトライン・フォント・データを使用するようになされたデータ処理システム(たとえば、レーザ・プリンタ)が示されている。システム10は、バス・システム14を介してレーザ・プリント・エンジン16に接続されたマイクロプロセッサ12を含む。バス・システム14は、TrueTypeフォント・テーブル19(以下で図2に関して説明する)を含むROM18にも接続されている。ランダム・アクセス・メモリ(RAM)20も、プリント・バッファ22と同様に、バス・システム14に接続されている。プリント・バッファ22はRAM20の一部であってもよい。
【0004】
入出力文字24は、文字コードを含むホスト・コンピュータからのメッセージ・ストリームを受け取るようになされている。各文字コードは、文字または文字の一部を表し、ピクセル・データ形で構成されたときにプリント・バッファ22に記憶できる、データであるグリフ(glyph: 装飾記号)を指定する。文字が複数のグリフから成る場合、1つのグリフは、完全な文字を作成するための追加グリフを指定する。そのようなピクセル・データがプリント・エンジン16に提供されると、グリフを複製する媒体シート上へのインク付着が可能になる。
【0005】
システム10が、文字コードとプリント・コマンドを共に含むメッセージ・ストリームをホスト・コンピュータから受け取ると、文字コードが、自動的に記憶され、次いでフォント・テーブル19を参照することによってグリフ・データに変換される。グリフ・データは、ピクセル形でプリント・バッファ22に記憶され、次いでプリント・エンジン16に提供される。
【0006】
図2は、図1中のROM18に記憶された状態のTrueTypeフォント・テーブル19を示す。TrueTypeフォント・テーブル19は、文献「TrueType Font Files Version 1.00」(マイクロソフト社(Microsoft Corporation)、ワシントン州レッドモンド)で定義されている。TrueTypeフォント・テーブル19は、ヘッダ30と、ディレクトリ部分34中の項目を形成するタグ行32で始まる。タグ行32は、テーブルを識別するタグ(すなわち、「名前」)と、エラー訂正のためのチェックサムと、テーブルの長さを定義する長さフィールドと、ディレクトリ部分34の後でテーブルが始まる点を示すオフセット値とを含む。
【0007】
各TrueTypeフォント・テーブル19は、多数のテーブルを含む。そのうちの3つのサブテーブルは、CMAPテーブル36、LOCAテーブル38、およびGLYPHテーブル40である。CMAPテーブル36は、受け取られた文字コードに従ってアドレスされ、関連するグリフ・インデックス値を返す。各グリフ・インデックス値は、LOCAテーブル38へのアドレスとして働き、オフセット値と関連付けられる。LOCAテーブル38は、受け取られたグリフ・インデックス値に応答して、受け取られた文字コードによって識別されるグリフのピクセル・データ形があるグリフ・テーブル40内のアドレス・オフセットを識別するオフセット値を返す。グリフ・テーブル40は、標準TrueTypeフォント・テーブルでは、ROM18の約90%を占有し、上記のように、2メガバイトないし5メガバイト程度になることもある。
【0008】
グリフは、グリフ・テーブル40からアクセスされた後、図1中のRAM20に記憶されている「充填」手順42を使用して処理される。充填手順42によって、プリント・バッファ22中のピクセル・データが、完全に充填された文字を表すように、アウトライン・グリフ・データを完全に「充填する」ことができる。この段階で、プリント・バッファ22中のグリフは、プリント・エンジン16による印刷の準備ができている。グリフ・テーブル40から得たグリフ・データに文字の一部しか含まれていない場合、次の手順を使用して、完全な文字に達するようにグリフどうしを関連付ける。
【0009】
【発明が解決しようとする課題】
したがって、本発明の一目的は、フォント・データを圧縮形で記憶することによってフォント記憶容量を最小限に抑えるデータ処理システムを提供することである。
【0010】
本発明の他の目的は、既存のフォント規格と互換性のある圧縮形フォント記憶域を含むデータ処理システムを提供することである。
【0011】
本発明の他の目的は、圧縮フォント記憶域を含むデータ処理システムを提供し、さらに、記憶されている個別のグリフに対して最も効率のよい伸長動作を実行できるようにする伸長手順を提供することである。
【0012】
【課題を解決するための手段】
データ処理システムは、フォント・グリフのピクセル・データ表現を提供し、フォント・データを複数の項目群として記録するメモリを含む。第1の項目群は、それぞれ、データ圧縮形の複数のグリフを含む、一連のデータ・ブロックから成る。データ・ブロック中の複数のグリフは、それらが一緒に伸長されることを示す共通属性を示す。プロセッサは、文字コードを含む信号ストリームに応答して、受け取られた文字コードに対応するグリフを含むデータ・ブロックにメモリからアクセスする。プロセッサは、データ・ブロックから得たデータ圧縮形のグリフをすべて、複数の伸長手順のうちの1つに従わせる。このように、データ・ブロック中の伸長済みピクセル・データ表現のグリフはすべて、伸長動作の結果として、プロセッサによって使用することができる。ある種の状況では、伸長済みグリフ・フォント・データが、伸長後、続いて使用できるようにキャッシュに記憶される。
【0013】
【実施例】
本発明の詳細を説明する前に、図1に示したシステムが、以下で説明する予定の必要な変更をおこなったフォント・テーブルおよび圧縮済みグリフ・ブロックをメモリに記憶する限り、本発明を実行できることを理解されたい。システム10はプリンタとして示されているが、当業者には、本発明が、ホスト・プロセッサ、マイクロプロセッサを含むプリンタ、またはそれら2つの組合せによって使用できるように構成できることが理解されよう。いずれの場合も、図3および図4に示したデータ構造を、そのようなデータ構造を使用できるようにする手順と組み合わせて含めることによって、フォント・メモリを大幅に節約することができる。
【0014】
図3に移ると、フォント・テーブル50は、図2に示した従来技術のTrueTypeフォント・テーブル19に類似しているが、圧縮済みグリフ・データを含められるように改訂されている。ヘッダ部分30およびディレクトリ34(タグ行32を含む)は、図2に示したものと実質的に同じである。タグ行32中の長さ値およびオフセット値は、縮小フォント・テーブルに従って修正される。CMAPテーブル36も、図2に示したものと実質的に同じであり、受け取られた文字コードをグリフ・インデックス値に変換する。CMAPテーブル36からアクセスされる各グリフ・インデックス値によって、LOCAテーブル52中の関連するオフセット値をアドレスすることができる。しかし、この場合、LOCAテーブル52によって返されるオフセット値は、グリフ・テーブル54に記憶されている圧縮済みグリフ・ブロックのオフセット・リスト部分の最初のアドレスを指す。図3に示した空テーブルおよびサブテーブルが必ずしも隣接して記憶されるわけではないことを理解されたい。これらのテーブルは、ディレクトリ34から得たオフセット・データを使用してアクセスされる。
【0015】
引き続き、さらにフォント・テーブル50を説明する前に、典型的な圧縮済みグリフ・ブロック60を図4に関して説明しておく。各圧縮済みグリフ・ブロックは、複数の圧縮済みグリフ・データ・セグメントを含む部分62を含む。圧縮済みグリフ・ブロック60の部分62には1つの圧縮済みグリフ・データ・セグメントが含まれているが、一般には、複数の圧縮済みグリフ・データ・セグメントが部分62に含められうる。単一の伸長手順を使用して、データを伸長してもとのピクセル・アウトライン・データ状態に戻せるように、部分62に含められるすべてのグリフは同じ圧縮手順を使用して圧縮される。部分62内に含められるすべてのグリフは、どれか1つのグリフが要求されたときに部分62中のすべてのグリフを伸長することが論理的であるようにする共用属性によって特徴付けられる。たとえば、部分62中の圧縮済みグリフ・データは、完全な英数字を形成するために組み合わせなければならない複数のグリフで構成することができる。さらに、部分62中の圧縮済みグリフ・データは、使用頻度に基づいてグループ分けすることもできる。したがって、第1の圧縮済みグリフ・ブロック60は最も頻繁に使用されるグリフを含み、第2の圧縮済みグリフ・ブロック60はそれほど頻繁に使用されないグリフを含み、以下、同様である。
【0016】
圧縮済みグリフ・ブロック60は、複数のオフセット値66、68、70などを記憶する次の部分64を含む。値66は、伸長されてメモリに置かれた後、部分62に圧縮形で含まれる第1のグリフ中のピクセルの最初のオフセット・アドレスを示す(第1の伸長済みグリフは常に0オフセットである)。したがって、72で示したように、第1の伸長済みグリフはアドレス0ないし110を占有し、第2の伸長済みグリフはアドレス111ないし250を占有し、第3の伸長済みグリフはアドレス251ないし370を占有し、以下、同様である。したがって、部分64に含められるオフセット値によって、マイクロプロセッサ12は、各グリフ・ピクセル表現が伸長されてメモリに置かれた後、そのグリフ・ピクセル表現を識別して見つけることができる。
【0017】
圧縮済みグリフ・ブロック60(図4)は、「Hidx」バイト(ここで、Hidxは「Huffインデックス」の頭字語である)と呼ばれる次のセクション74を含む。Hidxバイト74の2ビットは、ブロック60から得た伸長済みグリフ・ピクセル・データの「キャッシング」状況を識別するために使用され、4ビットは、圧縮済みグリフ・ブロック60中の圧縮済みグリフ・データ・セグメントの伸長時に使用すべき伸長手順を識別するために使用される。ある種の状況では、グリフ・データ・セグメントが圧縮状態ではなく、このことは、すべてゼロ状態を示す前述の4ビットによって示される。
【0018】
上記で示したように、圧縮済みグリフ・ブロック60の部分62中の圧縮済みグリフ・データ・セグメントはすべて、同じ伸長手順を使用して伸長される。したがって、部分62に含められるグリフは、共通の圧縮手順を使用して前記グリフを圧縮できるようにする類似の特性を示すように選択されることが好ましい。これによって、部分62に含められる圧縮済みグリフ・データ・セグメントを、特殊な調整を施された伸長手順によって効率的に伸長することができる。
【0019】
調整された伸長手順を実行するように伸長ルーチンを導くデータは、フォント・テーブル50中の伸長テーブル部分76(図3参照)に記憶される。Hidxバイト74の4ビットは、圧縮済みグリフ・ブロック60の部分62中の圧縮済みグリフ・データ・セグメントを伸長するために伸長手順によってどのデータを使用すべきかを識別する。たとえば、部分76中の各伸長手順は、Lempel−Ziv辞書(一般に使用されている圧縮/伸長手順)のサブセットを含むことができ、部分62に含まれる特定のグリフに特定的に関連する辞書項目しか含まない。また、部分76には、他の位置に記憶されたLempel−Zivデータにアクセスできるようにするオフセット・データおよび長さデータしか含められない。
【0020】
上記で示したように、Hidxバイト74は、部分62から伸長されるグリフに関するキャッシュ状況を識別する追加2ビットを含む。3つのキャッシング状況が好ましいが、当業者には他のものも明らかになろう。第1に、伸長済みグリフ・データを使用直後に廃棄することができる(すなわち、キャッシングなし)。第2に、伸長済みグリフ・データがある短い間隔内に使用されず、かつそのデータを廃棄するのが最もよいことが分かっているとき、このデータをその間隔中だけ記憶することができる。第3に、伸長済みグリフ・データが半永久的に記憶されるほど(あるいは、システムが、パワー・ダウンされ、あるいはその他の方法でそのデータを廃棄するよう命令されるまで)頻繁に、このデータを使用することができる。
【0021】
部分62内に含められる圧縮済みグリフ・データの量と、そのようなデータにアクセスしてそれを伸長するために必要とされる伸長時間の間にトレードオフがある。部分62中に含められる圧縮済みグリフ・データの量が多ければ多いほど、圧縮が効率的になり、メモリの節約が大きくなる。しかし、部分62に含められる圧縮済みグリフ・データが多ければ多いほど、そのデータに必要とされる時間が長くなる。さらに、以前にキャッシュされた圧縮済みグリフ・データによって、ある種の矛盾が相殺される。それにもかかわらず、当業者には、処理時間の節約とメモリに関して按配すべきであることが認識されよう。この按配は、ユーザまたはシステム設計者によって決定される。
【0022】
圧縮済みグリフ・ブロック60の各部分62は同じ長さである必要はない。たとえば、より高速の伸長および再取出しができるように、最も一般的に使用されるグリフをより小さな部分62に含めることができる。それほど頻繁に使用されないグリフは、それほど頻繁に呼び出されず、追加処理時間もそれほど長くないので、より大きな部分62に含めることができる。
【0023】
図3のフォント・テーブル50に戻ると、このテーブルの最後の部分は「CTTFテーブル」と呼ばれ、フォント・テーブル50中にこれが存在することは、グリフ・テーブル54に圧縮済みグリフ・ブロック60が含まれることを使用側システムに示す。CTTFテーブル78はさらに、圧縮済みグリフ・ブロック60の部分62から得た最大の伸長済みグリフ・データに必要とされるメモリの量を示す値を含む。これによって、システムは、圧縮済みグリフ・ブロック60中の圧縮済みグリフ・データ部分62から得た伸長済みグリフをすべて収容するのに十分なメモリを伸長の前に割り振っておくことができる。CTTFテーブル78は、各圧縮済みグリフ・ブロック60ごとに個別の値を含む。この値は、各ブロックの伸長済みグリフ・データ部分62ごとに割り振るべきメモリの量を示す。
【0024】
次に、図3および図4に示したフォント・テーブルをROM18が含むときの図1のデータ処理システムの動作を説明する。最初、システム10は、複数の文字コードを含むデータ・ストリームをホスト・プロセッサから受け取る。受け取られた文字コードは、CMAPテーブル36中のグリフ・インデックス値にアクセスするためにマイクロプロセッサ12によって使用される。当業者には、ディレクトリ34が、CMAPテーブル36(およびその他のテーブル)にアクセスできるように前記テーブルの最初のアドレスを判定するためにマイクロプロセッサ12によって使用されることが認識されよう。
【0025】
次いで、CMAPテーブル36から返されるグリフ・インデックスを使用して、圧縮済みグリフ・ブロック中のオフセット・リスト内を指す、LOCAテーブル52に含まれるオフセット値がアクセスされる。返されるオフセット値は、受け取られた文字コードに対応するグリフを含む圧縮済みグリフ・ブロック60の最初のビット位置を示すグリフ・テーブル54内のアドレスを提供する。
【0026】
しかし、システムは、グリフ・テーブル54から得た圧縮済みグリフ・ブロック60にアクセスする前に、所望のグリフがすでに伸長され、すでにRAM20中のキャッシュ領域44にキャッシュされているかどうかを調べるための検査を行う。そうでない場合、圧縮済みグリフ・ブロックがアクセスされ、RAM20に記憶される。
【0027】
システムは、Hidxバイト値およびCTTFテーブルを読み取って、伸長済みグリフ・ピクセル・データに割り振るべきメモリのサイズと、部分76からアクセスすべき特定の伸長手順を判定する。伸長手順がアクセスされた後、圧縮済みグリフ・データ・セグメントの部分62が伸長手順に従い、伸長済みグリフがRAM20に記憶される。
【0028】
圧縮済みグリフ・ブロック60の部分64が、伸長後、圧縮済みグリフ・ブロック中の各グリフごとのオフセット値のリストを含むことが想起されよう。システムは、オフセット値を使用して、所望の1つの伸長済みグリフにアクセスできるようにする。選択された伸長済みグリフがアドレスされて使用された後、システムは、Hidxバイトから得たキャッシュ状況ビットを検査して、伸長済みグリフを廃棄し、あるいはキャッシュ領域44に一時的または半永久的にキャッシュする。
【0029】
前記説明は本発明を例示したものに過ぎないことを理解されたい。当業者によって、本発明から逸脱せずに、様々な修正を構想することができる。以下に、実施態様のいくつかをしめす。
【0030】
(実施態様1)
フォントに含まれるグリフを表すピクセル・データを提供するための装置において、第1の項目群(54)が一連のデータ・ブロック(60)から成り、該データ・ブロック(60)がデータ圧縮形の複数のグリフを含み、該データ・ブロック(60)から得た複数のグリフが一括伸長されることを示す共通属性を有する、複数の前記項目群を含むフォント・データを記憶するためのメモリ手段(18)と、
文字コードを含む信号ストリームに応答して、前記文字コードに対応する前記データ圧縮形のグリフを前記メモリ手段(18)から取り出し、前記データ圧縮形のグリフを一括伸長手順に従わせるためのプロセッサ手段(12)とを備えることを特徴とする装置。
【0031】
(実施態様2)
各前記データ・ブロック(60)が、前記データ圧縮形のグリフの伸長後のピクセル・データが前記メモリ手段(18)で占める位置を識別する複数のアドレス値(66、68、70)を含むことを特徴とする実施態様1に記載の装置。
(実施態様3)
前記共通属性が、前記データ・ブロック(60)中の前記データ圧縮形のグリフのそれぞれが共通の伸長手順を使用して伸長されるようなものである実施態様1に記載の装置。
(実施態様4)
前記メモリ手段(18)が、調整された伸長手順を実施するために複数の伸長データ(76)を記憶し、各前記データ・ブロック(60)がその中の前記データ圧縮形のグリフと共に使用すべき1つの前記伸長データを示す識別子を含むことを特徴とする実施態様3に記載の装置。
【0032】
(実施態様5)
前記共通属性が、少なくとも前記データ・ブロック(60)中の前記データ圧縮形のグリフを英数字を形成するために組み合わすことを含むものであることを特徴とする実施態様1に記載の装置。
(実施態様6)
前記メモリ手段が、前記フォント・データが圧縮形であることを示す項目(78)を含むことを特徴とする実施態様1に記載の装置。
【0033】
(実施態様7)
前記項目(78)が、前記データ・ブロック(60)から得たすべての伸長済みグリフの最大ピクセル・データ・サイズを収容するのに必要とされる最大メモリ量を示すパラメータ値であることを特徴とする実施態様6に記載の装置。
(実施態様8)
前記メモリ手段中における前記パラメータ値の存在が、前記記憶されているフォント・データが伸長形であることを示す前記項目(78)であることを特徴とする実施態様7に記載の装置。
(実施態様9)
前記メモリ手段(18)と前記プロセッサ手段(12)がプリンタ(10)の一部を構成することを特徴とする実施態様1に記載の装置。
【0034】
(実施態様10)
さらに、前記データ・ブロック(60)から得た伸長済みピクセル・データを記憶するためのキャッシュ手段(44)を備え、前記メモリ手段(18)中の各前記データ・ブロック(60)が、前記伸長済みピクセル・データを前記キャッシュ手段(44)に記憶すべきかどうかに関するインディケータ(74)を含むことを特徴とする実施態様1に記載の装置。
(実施態様11)
前記インディケータ(74)がさらに、前記伸長済みピクセル・データをいつ前記キャッシュ手段(44)から削除すべきかを制御する前記伸長済みピクセル・データ用のパラメータを含む実施態様10に記載の装置。
【0035】
【発明の効果】
以上詳述種したように、データ圧縮形のグリフが伸長手順によって区別されてデータ・ブロックを構成し、それらが一括伸長できるようにされているから、フォント・メモリの容量を少なくできる。また、伸長後のピクセル・パターンをキャッシュに格納することもできるので、低価格で高速な装置を提供できる。
【図面の簡単な説明】
【図1】アウトライン・フォント・データを記憶するためのメモリを含む従来技術のデータ処理システムのブロック図である。
【図2】従来技術の業界規格で指定されたTrueTypeフォント・テーブル・データ構造の概略表現図である。
【図3】本発明の動作で使用されるROMフォント・テーブルの概略図である。
【図4】本発明で使用される圧縮済みグリフ・ブロック・データ構造の概略表現図である。
【符号の説明】
10 システム
30 ヘッダ部分
34 ディレクトリ
36 CMAPテーブル
50 フォント・テーブル
52 LOCAテーブル
54 グリフ・テーブル
60 グリフ・ブロック
62 部分
66 オフセット値
74 Hidxバイト
76 伸長テーブル部分
【産業上の利用分野】
本発明は、アウトライン・フォント表現を使用するデータ処理システムに関し、詳細には、圧縮済みフォントを含むプリンタ・システムと、フォント記憶容量要求を低減する圧縮済みフォントの伸長の手順とに関する。
【0002】
【従来の技術】
多数のフォントは、アウトライン形で記憶され、プリンタによってアクセスされると、フォント文字の完全なストローク表現を示すように「充填つぶされる」。TrueTypeは、ある種のコンピュータ・アウトライン・フォント・データの表現を定義する業界規格である。TrueTypeフォーマットを使用して大きなフォント(たとえば、漢字)を表すとき、メモリ要件は2メガバイトないし5メガバイトを超えることがある。そのようなフォントは読取り専用メモリ(ROM)に記憶されることが多いので、大規模で拡張可能なROMが必要とされる。フォントは、ディスク・ドライブ上(たとえば、コンピュータ・オペレーティング・システム中)に記憶することも、あるいはランダム・アクセス・メモリ(RAM)(たとえば、コンピュータのメイン・メモリに維持されるフォント)に記憶することもできる。
【0003】
フォント記憶メモリ容量の低減は常に課題とされているが、これと並行して、以前に定義された業界フォント規格(たとえば、TrueType)との互換性を維持する必要もある。図1に、TrueTypeアウトライン・フォント・データを使用するようになされたデータ処理システム(たとえば、レーザ・プリンタ)が示されている。システム10は、バス・システム14を介してレーザ・プリント・エンジン16に接続されたマイクロプロセッサ12を含む。バス・システム14は、TrueTypeフォント・テーブル19(以下で図2に関して説明する)を含むROM18にも接続されている。ランダム・アクセス・メモリ(RAM)20も、プリント・バッファ22と同様に、バス・システム14に接続されている。プリント・バッファ22はRAM20の一部であってもよい。
【0004】
入出力文字24は、文字コードを含むホスト・コンピュータからのメッセージ・ストリームを受け取るようになされている。各文字コードは、文字または文字の一部を表し、ピクセル・データ形で構成されたときにプリント・バッファ22に記憶できる、データであるグリフ(glyph: 装飾記号)を指定する。文字が複数のグリフから成る場合、1つのグリフは、完全な文字を作成するための追加グリフを指定する。そのようなピクセル・データがプリント・エンジン16に提供されると、グリフを複製する媒体シート上へのインク付着が可能になる。
【0005】
システム10が、文字コードとプリント・コマンドを共に含むメッセージ・ストリームをホスト・コンピュータから受け取ると、文字コードが、自動的に記憶され、次いでフォント・テーブル19を参照することによってグリフ・データに変換される。グリフ・データは、ピクセル形でプリント・バッファ22に記憶され、次いでプリント・エンジン16に提供される。
【0006】
図2は、図1中のROM18に記憶された状態のTrueTypeフォント・テーブル19を示す。TrueTypeフォント・テーブル19は、文献「TrueType Font Files Version 1.00」(マイクロソフト社(Microsoft Corporation)、ワシントン州レッドモンド)で定義されている。TrueTypeフォント・テーブル19は、ヘッダ30と、ディレクトリ部分34中の項目を形成するタグ行32で始まる。タグ行32は、テーブルを識別するタグ(すなわち、「名前」)と、エラー訂正のためのチェックサムと、テーブルの長さを定義する長さフィールドと、ディレクトリ部分34の後でテーブルが始まる点を示すオフセット値とを含む。
【0007】
各TrueTypeフォント・テーブル19は、多数のテーブルを含む。そのうちの3つのサブテーブルは、CMAPテーブル36、LOCAテーブル38、およびGLYPHテーブル40である。CMAPテーブル36は、受け取られた文字コードに従ってアドレスされ、関連するグリフ・インデックス値を返す。各グリフ・インデックス値は、LOCAテーブル38へのアドレスとして働き、オフセット値と関連付けられる。LOCAテーブル38は、受け取られたグリフ・インデックス値に応答して、受け取られた文字コードによって識別されるグリフのピクセル・データ形があるグリフ・テーブル40内のアドレス・オフセットを識別するオフセット値を返す。グリフ・テーブル40は、標準TrueTypeフォント・テーブルでは、ROM18の約90%を占有し、上記のように、2メガバイトないし5メガバイト程度になることもある。
【0008】
グリフは、グリフ・テーブル40からアクセスされた後、図1中のRAM20に記憶されている「充填」手順42を使用して処理される。充填手順42によって、プリント・バッファ22中のピクセル・データが、完全に充填された文字を表すように、アウトライン・グリフ・データを完全に「充填する」ことができる。この段階で、プリント・バッファ22中のグリフは、プリント・エンジン16による印刷の準備ができている。グリフ・テーブル40から得たグリフ・データに文字の一部しか含まれていない場合、次の手順を使用して、完全な文字に達するようにグリフどうしを関連付ける。
【0009】
【発明が解決しようとする課題】
したがって、本発明の一目的は、フォント・データを圧縮形で記憶することによってフォント記憶容量を最小限に抑えるデータ処理システムを提供することである。
【0010】
本発明の他の目的は、既存のフォント規格と互換性のある圧縮形フォント記憶域を含むデータ処理システムを提供することである。
【0011】
本発明の他の目的は、圧縮フォント記憶域を含むデータ処理システムを提供し、さらに、記憶されている個別のグリフに対して最も効率のよい伸長動作を実行できるようにする伸長手順を提供することである。
【0012】
【課題を解決するための手段】
データ処理システムは、フォント・グリフのピクセル・データ表現を提供し、フォント・データを複数の項目群として記録するメモリを含む。第1の項目群は、それぞれ、データ圧縮形の複数のグリフを含む、一連のデータ・ブロックから成る。データ・ブロック中の複数のグリフは、それらが一緒に伸長されることを示す共通属性を示す。プロセッサは、文字コードを含む信号ストリームに応答して、受け取られた文字コードに対応するグリフを含むデータ・ブロックにメモリからアクセスする。プロセッサは、データ・ブロックから得たデータ圧縮形のグリフをすべて、複数の伸長手順のうちの1つに従わせる。このように、データ・ブロック中の伸長済みピクセル・データ表現のグリフはすべて、伸長動作の結果として、プロセッサによって使用することができる。ある種の状況では、伸長済みグリフ・フォント・データが、伸長後、続いて使用できるようにキャッシュに記憶される。
【0013】
【実施例】
本発明の詳細を説明する前に、図1に示したシステムが、以下で説明する予定の必要な変更をおこなったフォント・テーブルおよび圧縮済みグリフ・ブロックをメモリに記憶する限り、本発明を実行できることを理解されたい。システム10はプリンタとして示されているが、当業者には、本発明が、ホスト・プロセッサ、マイクロプロセッサを含むプリンタ、またはそれら2つの組合せによって使用できるように構成できることが理解されよう。いずれの場合も、図3および図4に示したデータ構造を、そのようなデータ構造を使用できるようにする手順と組み合わせて含めることによって、フォント・メモリを大幅に節約することができる。
【0014】
図3に移ると、フォント・テーブル50は、図2に示した従来技術のTrueTypeフォント・テーブル19に類似しているが、圧縮済みグリフ・データを含められるように改訂されている。ヘッダ部分30およびディレクトリ34(タグ行32を含む)は、図2に示したものと実質的に同じである。タグ行32中の長さ値およびオフセット値は、縮小フォント・テーブルに従って修正される。CMAPテーブル36も、図2に示したものと実質的に同じであり、受け取られた文字コードをグリフ・インデックス値に変換する。CMAPテーブル36からアクセスされる各グリフ・インデックス値によって、LOCAテーブル52中の関連するオフセット値をアドレスすることができる。しかし、この場合、LOCAテーブル52によって返されるオフセット値は、グリフ・テーブル54に記憶されている圧縮済みグリフ・ブロックのオフセット・リスト部分の最初のアドレスを指す。図3に示した空テーブルおよびサブテーブルが必ずしも隣接して記憶されるわけではないことを理解されたい。これらのテーブルは、ディレクトリ34から得たオフセット・データを使用してアクセスされる。
【0015】
引き続き、さらにフォント・テーブル50を説明する前に、典型的な圧縮済みグリフ・ブロック60を図4に関して説明しておく。各圧縮済みグリフ・ブロックは、複数の圧縮済みグリフ・データ・セグメントを含む部分62を含む。圧縮済みグリフ・ブロック60の部分62には1つの圧縮済みグリフ・データ・セグメントが含まれているが、一般には、複数の圧縮済みグリフ・データ・セグメントが部分62に含められうる。単一の伸長手順を使用して、データを伸長してもとのピクセル・アウトライン・データ状態に戻せるように、部分62に含められるすべてのグリフは同じ圧縮手順を使用して圧縮される。部分62内に含められるすべてのグリフは、どれか1つのグリフが要求されたときに部分62中のすべてのグリフを伸長することが論理的であるようにする共用属性によって特徴付けられる。たとえば、部分62中の圧縮済みグリフ・データは、完全な英数字を形成するために組み合わせなければならない複数のグリフで構成することができる。さらに、部分62中の圧縮済みグリフ・データは、使用頻度に基づいてグループ分けすることもできる。したがって、第1の圧縮済みグリフ・ブロック60は最も頻繁に使用されるグリフを含み、第2の圧縮済みグリフ・ブロック60はそれほど頻繁に使用されないグリフを含み、以下、同様である。
【0016】
圧縮済みグリフ・ブロック60は、複数のオフセット値66、68、70などを記憶する次の部分64を含む。値66は、伸長されてメモリに置かれた後、部分62に圧縮形で含まれる第1のグリフ中のピクセルの最初のオフセット・アドレスを示す(第1の伸長済みグリフは常に0オフセットである)。したがって、72で示したように、第1の伸長済みグリフはアドレス0ないし110を占有し、第2の伸長済みグリフはアドレス111ないし250を占有し、第3の伸長済みグリフはアドレス251ないし370を占有し、以下、同様である。したがって、部分64に含められるオフセット値によって、マイクロプロセッサ12は、各グリフ・ピクセル表現が伸長されてメモリに置かれた後、そのグリフ・ピクセル表現を識別して見つけることができる。
【0017】
圧縮済みグリフ・ブロック60(図4)は、「Hidx」バイト(ここで、Hidxは「Huffインデックス」の頭字語である)と呼ばれる次のセクション74を含む。Hidxバイト74の2ビットは、ブロック60から得た伸長済みグリフ・ピクセル・データの「キャッシング」状況を識別するために使用され、4ビットは、圧縮済みグリフ・ブロック60中の圧縮済みグリフ・データ・セグメントの伸長時に使用すべき伸長手順を識別するために使用される。ある種の状況では、グリフ・データ・セグメントが圧縮状態ではなく、このことは、すべてゼロ状態を示す前述の4ビットによって示される。
【0018】
上記で示したように、圧縮済みグリフ・ブロック60の部分62中の圧縮済みグリフ・データ・セグメントはすべて、同じ伸長手順を使用して伸長される。したがって、部分62に含められるグリフは、共通の圧縮手順を使用して前記グリフを圧縮できるようにする類似の特性を示すように選択されることが好ましい。これによって、部分62に含められる圧縮済みグリフ・データ・セグメントを、特殊な調整を施された伸長手順によって効率的に伸長することができる。
【0019】
調整された伸長手順を実行するように伸長ルーチンを導くデータは、フォント・テーブル50中の伸長テーブル部分76(図3参照)に記憶される。Hidxバイト74の4ビットは、圧縮済みグリフ・ブロック60の部分62中の圧縮済みグリフ・データ・セグメントを伸長するために伸長手順によってどのデータを使用すべきかを識別する。たとえば、部分76中の各伸長手順は、Lempel−Ziv辞書(一般に使用されている圧縮/伸長手順)のサブセットを含むことができ、部分62に含まれる特定のグリフに特定的に関連する辞書項目しか含まない。また、部分76には、他の位置に記憶されたLempel−Zivデータにアクセスできるようにするオフセット・データおよび長さデータしか含められない。
【0020】
上記で示したように、Hidxバイト74は、部分62から伸長されるグリフに関するキャッシュ状況を識別する追加2ビットを含む。3つのキャッシング状況が好ましいが、当業者には他のものも明らかになろう。第1に、伸長済みグリフ・データを使用直後に廃棄することができる(すなわち、キャッシングなし)。第2に、伸長済みグリフ・データがある短い間隔内に使用されず、かつそのデータを廃棄するのが最もよいことが分かっているとき、このデータをその間隔中だけ記憶することができる。第3に、伸長済みグリフ・データが半永久的に記憶されるほど(あるいは、システムが、パワー・ダウンされ、あるいはその他の方法でそのデータを廃棄するよう命令されるまで)頻繁に、このデータを使用することができる。
【0021】
部分62内に含められる圧縮済みグリフ・データの量と、そのようなデータにアクセスしてそれを伸長するために必要とされる伸長時間の間にトレードオフがある。部分62中に含められる圧縮済みグリフ・データの量が多ければ多いほど、圧縮が効率的になり、メモリの節約が大きくなる。しかし、部分62に含められる圧縮済みグリフ・データが多ければ多いほど、そのデータに必要とされる時間が長くなる。さらに、以前にキャッシュされた圧縮済みグリフ・データによって、ある種の矛盾が相殺される。それにもかかわらず、当業者には、処理時間の節約とメモリに関して按配すべきであることが認識されよう。この按配は、ユーザまたはシステム設計者によって決定される。
【0022】
圧縮済みグリフ・ブロック60の各部分62は同じ長さである必要はない。たとえば、より高速の伸長および再取出しができるように、最も一般的に使用されるグリフをより小さな部分62に含めることができる。それほど頻繁に使用されないグリフは、それほど頻繁に呼び出されず、追加処理時間もそれほど長くないので、より大きな部分62に含めることができる。
【0023】
図3のフォント・テーブル50に戻ると、このテーブルの最後の部分は「CTTFテーブル」と呼ばれ、フォント・テーブル50中にこれが存在することは、グリフ・テーブル54に圧縮済みグリフ・ブロック60が含まれることを使用側システムに示す。CTTFテーブル78はさらに、圧縮済みグリフ・ブロック60の部分62から得た最大の伸長済みグリフ・データに必要とされるメモリの量を示す値を含む。これによって、システムは、圧縮済みグリフ・ブロック60中の圧縮済みグリフ・データ部分62から得た伸長済みグリフをすべて収容するのに十分なメモリを伸長の前に割り振っておくことができる。CTTFテーブル78は、各圧縮済みグリフ・ブロック60ごとに個別の値を含む。この値は、各ブロックの伸長済みグリフ・データ部分62ごとに割り振るべきメモリの量を示す。
【0024】
次に、図3および図4に示したフォント・テーブルをROM18が含むときの図1のデータ処理システムの動作を説明する。最初、システム10は、複数の文字コードを含むデータ・ストリームをホスト・プロセッサから受け取る。受け取られた文字コードは、CMAPテーブル36中のグリフ・インデックス値にアクセスするためにマイクロプロセッサ12によって使用される。当業者には、ディレクトリ34が、CMAPテーブル36(およびその他のテーブル)にアクセスできるように前記テーブルの最初のアドレスを判定するためにマイクロプロセッサ12によって使用されることが認識されよう。
【0025】
次いで、CMAPテーブル36から返されるグリフ・インデックスを使用して、圧縮済みグリフ・ブロック中のオフセット・リスト内を指す、LOCAテーブル52に含まれるオフセット値がアクセスされる。返されるオフセット値は、受け取られた文字コードに対応するグリフを含む圧縮済みグリフ・ブロック60の最初のビット位置を示すグリフ・テーブル54内のアドレスを提供する。
【0026】
しかし、システムは、グリフ・テーブル54から得た圧縮済みグリフ・ブロック60にアクセスする前に、所望のグリフがすでに伸長され、すでにRAM20中のキャッシュ領域44にキャッシュされているかどうかを調べるための検査を行う。そうでない場合、圧縮済みグリフ・ブロックがアクセスされ、RAM20に記憶される。
【0027】
システムは、Hidxバイト値およびCTTFテーブルを読み取って、伸長済みグリフ・ピクセル・データに割り振るべきメモリのサイズと、部分76からアクセスすべき特定の伸長手順を判定する。伸長手順がアクセスされた後、圧縮済みグリフ・データ・セグメントの部分62が伸長手順に従い、伸長済みグリフがRAM20に記憶される。
【0028】
圧縮済みグリフ・ブロック60の部分64が、伸長後、圧縮済みグリフ・ブロック中の各グリフごとのオフセット値のリストを含むことが想起されよう。システムは、オフセット値を使用して、所望の1つの伸長済みグリフにアクセスできるようにする。選択された伸長済みグリフがアドレスされて使用された後、システムは、Hidxバイトから得たキャッシュ状況ビットを検査して、伸長済みグリフを廃棄し、あるいはキャッシュ領域44に一時的または半永久的にキャッシュする。
【0029】
前記説明は本発明を例示したものに過ぎないことを理解されたい。当業者によって、本発明から逸脱せずに、様々な修正を構想することができる。以下に、実施態様のいくつかをしめす。
【0030】
(実施態様1)
フォントに含まれるグリフを表すピクセル・データを提供するための装置において、第1の項目群(54)が一連のデータ・ブロック(60)から成り、該データ・ブロック(60)がデータ圧縮形の複数のグリフを含み、該データ・ブロック(60)から得た複数のグリフが一括伸長されることを示す共通属性を有する、複数の前記項目群を含むフォント・データを記憶するためのメモリ手段(18)と、
文字コードを含む信号ストリームに応答して、前記文字コードに対応する前記データ圧縮形のグリフを前記メモリ手段(18)から取り出し、前記データ圧縮形のグリフを一括伸長手順に従わせるためのプロセッサ手段(12)とを備えることを特徴とする装置。
【0031】
(実施態様2)
各前記データ・ブロック(60)が、前記データ圧縮形のグリフの伸長後のピクセル・データが前記メモリ手段(18)で占める位置を識別する複数のアドレス値(66、68、70)を含むことを特徴とする実施態様1に記載の装置。
(実施態様3)
前記共通属性が、前記データ・ブロック(60)中の前記データ圧縮形のグリフのそれぞれが共通の伸長手順を使用して伸長されるようなものである実施態様1に記載の装置。
(実施態様4)
前記メモリ手段(18)が、調整された伸長手順を実施するために複数の伸長データ(76)を記憶し、各前記データ・ブロック(60)がその中の前記データ圧縮形のグリフと共に使用すべき1つの前記伸長データを示す識別子を含むことを特徴とする実施態様3に記載の装置。
【0032】
(実施態様5)
前記共通属性が、少なくとも前記データ・ブロック(60)中の前記データ圧縮形のグリフを英数字を形成するために組み合わすことを含むものであることを特徴とする実施態様1に記載の装置。
(実施態様6)
前記メモリ手段が、前記フォント・データが圧縮形であることを示す項目(78)を含むことを特徴とする実施態様1に記載の装置。
【0033】
(実施態様7)
前記項目(78)が、前記データ・ブロック(60)から得たすべての伸長済みグリフの最大ピクセル・データ・サイズを収容するのに必要とされる最大メモリ量を示すパラメータ値であることを特徴とする実施態様6に記載の装置。
(実施態様8)
前記メモリ手段中における前記パラメータ値の存在が、前記記憶されているフォント・データが伸長形であることを示す前記項目(78)であることを特徴とする実施態様7に記載の装置。
(実施態様9)
前記メモリ手段(18)と前記プロセッサ手段(12)がプリンタ(10)の一部を構成することを特徴とする実施態様1に記載の装置。
【0034】
(実施態様10)
さらに、前記データ・ブロック(60)から得た伸長済みピクセル・データを記憶するためのキャッシュ手段(44)を備え、前記メモリ手段(18)中の各前記データ・ブロック(60)が、前記伸長済みピクセル・データを前記キャッシュ手段(44)に記憶すべきかどうかに関するインディケータ(74)を含むことを特徴とする実施態様1に記載の装置。
(実施態様11)
前記インディケータ(74)がさらに、前記伸長済みピクセル・データをいつ前記キャッシュ手段(44)から削除すべきかを制御する前記伸長済みピクセル・データ用のパラメータを含む実施態様10に記載の装置。
【0035】
【発明の効果】
以上詳述種したように、データ圧縮形のグリフが伸長手順によって区別されてデータ・ブロックを構成し、それらが一括伸長できるようにされているから、フォント・メモリの容量を少なくできる。また、伸長後のピクセル・パターンをキャッシュに格納することもできるので、低価格で高速な装置を提供できる。
【図面の簡単な説明】
【図1】アウトライン・フォント・データを記憶するためのメモリを含む従来技術のデータ処理システムのブロック図である。
【図2】従来技術の業界規格で指定されたTrueTypeフォント・テーブル・データ構造の概略表現図である。
【図3】本発明の動作で使用されるROMフォント・テーブルの概略図である。
【図4】本発明で使用される圧縮済みグリフ・ブロック・データ構造の概略表現図である。
【符号の説明】
10 システム
30 ヘッダ部分
34 ディレクトリ
36 CMAPテーブル
50 フォント・テーブル
52 LOCAテーブル
54 グリフ・テーブル
60 グリフ・ブロック
62 部分
66 オフセット値
74 Hidxバイト
76 伸長テーブル部分
Claims (9)
- フォントに含まれるグリフを表すピクセル・データを提供する装置であって、
該装置は、フォント・データを記憶し、複数の項目群を有するメモリ手段、およびプロセッサ手段を備え、
前記メモリ手段は、
一連のデータ・ブロックを有する第1の項目群と、
データ圧縮形のグリフを含むデータ・ブロックを文字コードが識別することを可能にする第2の項目群と、
前記データ・ブロックのデータ伸長形のグリフのアドレスが識別されることを可能にする第3の項目群とを有しており、
前記データ・ブロックのそれぞれは、データ圧縮形の複数のグリフを含み、該複数のグリフは、それぞれのデータ圧縮形のグリフが同じ伸長手順を用いて伸長されるように共通属性を呈しており、異なるデータ・ブロックは異なる共通属性を呈し、
前記プロセッサ手段は、文字コードを含む信号ストリームに応答して、前記第2の項目群を使用して、該文字コードに対応するグリフを含むデータ・ブロックを前記メモリ手段からアクセスし、該グリフのすべての伸長済みピクセル・データ表現が該プロセッサ手段に利用可能となるように、該文字コードに対応しないグリフも含めて、該データ・ブロックのデータ圧縮形のすべてのグリフに前記同じ伸長手順を受けさせ、前記第3の項目群を使用して、前記文字コードに対応するデータ伸長形のグリフを識別する、
フォントに含まれるグリフを表すピクセル・データを提供する装置。 - 前記メモリ手段は複数の伸長手順を記憶し、それぞれのデータ・ブロックは、該データ・ブロックのデータ圧縮形のグリフに用いられる、該伸長手順のうちの1つを示す識別子を有する、請求項1に記載のフォントに含まれるグリフを表すピクセル・データを提供する装置。
- 前記共通属性は、データ・ブロック内の少なくともいくつかのグリフが、英数字を作成するために組み合わせられることを示す、請求項1に記載のフォントに含まれるグリフを表すピクセル・データを提供する装置。
- 前記メモリ手段は、前記記憶されたフォント・データが圧縮形であることを示す項目を有する、請求項1に記載のフォントに含まれるグリフを表すピクセル・データを提供する装置。
- 前記項目は、データ・ブロックのすべての伸長済みグリフの最大ピクセル・データ・サイズを収容するのに必要な最大メモリ量を示すパラメータ値である、請求項4に記載のフォントに含まれるグリフを表すピクセル・データを提供する装置。
- 前記メモリ手段における前記パラメータ値の存在が、前記記憶されたフォント・データが伸長形であることを示す前記項目である、請求項5に記載のフォントに含まれるグリフを表すピクセル・データを提供する装置。
- 前記メモリ手段および前記プロセッサ手段は、プリンタの一部である、請求項1に記載のフォントに含まれるグリフを表すピクセル・データを提供する装置。
- データ・ブロックの伸長済みピクセル・データを記憶するキャッシュ手段をさらに備え、
前記メモリ手段のそれぞれのデータ・ブロックは、該データ・ブロックの伸長済みピクセル・データを該キャッシュ手段に記憶すべきかどうかに関するインジケータを含む、請求項1に記載のフォントに含まれるグリフを表すピクセル・データを提供する装置。 - 前記インジケータは、さらに、前記伸長済みピクセル・データがいつ前記キャッシュ手段から取り除かれるべきかを制御する、前記伸長済みピクセル・データのためのパラメータを示す、請求項8に記載のフォントに含まれるグリフを表すピクセル・データを提供する装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21021094A | 1994-03-18 | 1994-03-18 | |
US210,210 | 1994-03-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07306670A JPH07306670A (ja) | 1995-11-21 |
JP3672608B2 true JP3672608B2 (ja) | 2005-07-20 |
Family
ID=22782015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08325495A Expired - Fee Related JP3672608B2 (ja) | 1994-03-18 | 1995-03-15 | フォント・データの圧縮・伸長装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5577183A (ja) |
EP (1) | EP0672982B1 (ja) |
JP (1) | JP3672608B2 (ja) |
DE (1) | DE69431101T2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08212023A (ja) * | 1994-12-02 | 1996-08-20 | Canon Inc | 印刷制御装置及び方法 |
US5926189A (en) * | 1996-03-29 | 1999-07-20 | Apple Computer, Inc. | Method and apparatus for typographic glyph construction including a glyph server |
KR0172581B1 (ko) | 1996-04-02 | 1999-03-30 | 이진기 | 단계적 표현 가능형 폰트 그 변환 방법 및 렌더링 방법 |
US6031622A (en) * | 1996-05-16 | 2000-02-29 | Agfa Corporation | Method and apparatus for font compression and decompression |
US7999950B1 (en) | 1998-11-12 | 2011-08-16 | International Business Machines Corporation | Method and apparatus for providing backup font support for missing device glyphs |
US6760028B1 (en) * | 2000-07-21 | 2004-07-06 | Microsoft Corporation | Methods and systems for hinting fonts |
US20020118885A1 (en) * | 2001-02-27 | 2002-08-29 | Bernard Smeets | Font compression and retrieval |
US7262869B2 (en) * | 2003-03-10 | 2007-08-28 | Hewlett-Packard Development Company, L.P. | Controlling font usage based on printer identification information |
US7937658B1 (en) * | 2006-04-21 | 2011-05-03 | Adobe Systems Incorporated | Methods and apparatus for retrieving font data |
US7719537B2 (en) * | 2006-08-22 | 2010-05-18 | Monotype Imaging Inc. | Method for reducing size and increasing speed for font generation of instructions |
JP2009282815A (ja) * | 2008-05-23 | 2009-12-03 | Catalyst Mobile Kk | テキスト合成処理システム及びそれを備える可搬型通信端末 |
US9286643B2 (en) | 2011-03-01 | 2016-03-15 | Applaud, Llc | Personalized memory compilation for members of a group and collaborative method to build a memory compilation |
US9245361B2 (en) * | 2011-09-01 | 2016-01-26 | Microsoft Technology Licensing, Llc | Consolidating glyphs of a font |
US9317489B2 (en) | 2013-06-27 | 2016-04-19 | Adobe Systems Incorporated | Vector graphic conversion into fonts |
GB2526598B (en) * | 2014-05-29 | 2018-11-28 | Imagination Tech Ltd | Allocation of primitives to primitive blocks |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4481602A (en) * | 1981-04-06 | 1984-11-06 | International Business Machines Corporation | Font compression and decompression for character generation |
US4942390A (en) * | 1987-04-01 | 1990-07-17 | International Business Machines Corporation | Method and apparatus for generating a character image |
US5272768A (en) * | 1989-02-21 | 1993-12-21 | Hewlett-Packard Company | Blank strip font compression method and device, and resulting stored, decompressible font |
US5025396A (en) * | 1989-03-21 | 1991-06-18 | International Business Machines Corporation | Method and apparatus for merging a digitized image with an alphanumeric character string |
US5065447A (en) * | 1989-07-05 | 1991-11-12 | Iterated Systems, Inc. | Method and apparatus for processing digital data |
JPH04220764A (ja) * | 1990-03-13 | 1992-08-11 | Hewlett Packard Co <Hp> | 文字フォント圧縮方法および装置 |
JP3083344B2 (ja) * | 1990-05-25 | 2000-09-04 | ヒューレット・パッカード・カンパニー | データの圧縮及び圧縮解除方法 |
US5020121A (en) * | 1990-08-16 | 1991-05-28 | Hewlett-Packard Company | Neighborhood block prediction bit compression |
US5367620A (en) * | 1990-09-25 | 1994-11-22 | Brother Kogyo Kabushiki Kaisha | Character output device |
US5151949A (en) * | 1990-10-10 | 1992-09-29 | Fuji Xerox Co., Ltd. | System and method employing multiple predictor sets to compress image data having different portions |
US5303313A (en) * | 1991-12-16 | 1994-04-12 | Cartesian Products, Inc. | Method and apparatus for compression of images |
US5416898A (en) * | 1992-05-12 | 1995-05-16 | Apple Computer, Inc. | Apparatus and method for generating textual lines layouts |
US5479587A (en) * | 1992-09-03 | 1995-12-26 | Hewlett-Packard Company | Page printer having adaptive data compression for memory minimization |
US5483622A (en) * | 1992-09-03 | 1996-01-09 | Hewlett-Packard Company | Page printer having automatic font compression |
-
1994
- 1994-11-24 EP EP94118523A patent/EP0672982B1/en not_active Expired - Lifetime
- 1994-11-24 DE DE69431101T patent/DE69431101T2/de not_active Expired - Fee Related
-
1995
- 1995-03-15 JP JP08325495A patent/JP3672608B2/ja not_active Expired - Fee Related
- 1995-12-01 US US08/565,934 patent/US5577183A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0672982B1 (en) | 2002-07-31 |
DE69431101D1 (de) | 2002-09-05 |
DE69431101T2 (de) | 2002-11-28 |
US5577183A (en) | 1996-11-19 |
EP0672982A1 (en) | 1995-09-20 |
JPH07306670A (ja) | 1995-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3672608B2 (ja) | フォント・データの圧縮・伸長装置 | |
US5940581A (en) | Dynamic font management for large character sets | |
KR100337216B1 (ko) | 압축형 메인 메모리를 위한 가상 비압축 캐쉬 | |
JP2006114012A (ja) | 電子文書への最適アクセス | |
WO2006063057A2 (en) | Applying multiple compression algorithms in a database system | |
US5815096A (en) | Method for compressing sequential data into compression symbols using double-indirect indexing into a dictionary data structure | |
JP2978519B2 (ja) | 文書データ表示方法およびシステム | |
US6574001B2 (en) | Managing font data in a print job | |
JP4451908B2 (ja) | ユニコード・コンバータ | |
US8463759B2 (en) | Method and system for compressing data | |
JPH08164641A (ja) | キャッシュ・メモリ付きプリンタおよびその管理方法 | |
US5880688A (en) | Arithmetic coding context model that adapts to the amount of data | |
US20170060934A1 (en) | Modifying a compressed block of data | |
JPS58195279A (ja) | 文字出力装置 | |
JP2923002B2 (ja) | フォントフリーなラスタイメージ処理システム | |
US6373409B1 (en) | Method and computer program product for implementing text conversion table compression | |
JP3473287B2 (ja) | フォント管理装置 | |
JP3927691B2 (ja) | 画像形成システム、情報処理装置、送信方法及び記録媒体 | |
JP3166222B2 (ja) | 文字データ発生装置及びその方法 | |
JPH0916355A (ja) | 情報処理装置及びフォントダウンロード管理プログラムを記憶する記憶媒体 | |
JP3423113B2 (ja) | キャッシュ制御装置及び文字出力装置 | |
JP2000211198A (ja) | イメ―ジデ―タの管理方法 | |
JPS63182155A (ja) | フオントパタ−ン描画装置 | |
JP2002007096A (ja) | キャッシュメモリ制御装置 | |
JPH05281948A (ja) | フォントパターン圧縮記憶方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050208 |
|
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: 20050419 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050420 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |