コンピュータによるドットマトリクスフォントデータの圧縮及び解凍のための方法及びシステム
【課題】ドットマトリクスフォントデータの圧縮及び解凍のための方法及びシステムを提供する。
【解決手段】以下の(a)〜(e)の圧縮化のステップをコンピュータによって実行する。(a)ドットマトリクスフォント文字を、横型イメージ、縦型イメージ及び残余イメージに分割する。(b)セット中の横型イメージパターンに対してハフマン符号化を適用して横型イメージパターンに対する圧縮横型符号を生成する。(c)セット中の縦型イメージパターンに対してハフマン符号化を適用して縦型イメージパターンに対する圧縮縦型符号を生成する。(d)セット中の残余イメージパターンに対してハフマン符号化を適用して残余イメージパターンに対する圧縮残余符号を生成する。(e)各文字について、圧縮横型符号、圧縮縦型符号、圧縮残余符号を選択的に結合し、ドットマトリクスフォント文字の圧縮された形を表すビット列を生成する。
【解決手段】以下の(a)〜(e)の圧縮化のステップをコンピュータによって実行する。(a)ドットマトリクスフォント文字を、横型イメージ、縦型イメージ及び残余イメージに分割する。(b)セット中の横型イメージパターンに対してハフマン符号化を適用して横型イメージパターンに対する圧縮横型符号を生成する。(c)セット中の縦型イメージパターンに対してハフマン符号化を適用して縦型イメージパターンに対する圧縮縦型符号を生成する。(d)セット中の残余イメージパターンに対してハフマン符号化を適用して残余イメージパターンに対する圧縮残余符号を生成する。(e)各文字について、圧縮横型符号、圧縮縦型符号、圧縮残余符号を選択的に結合し、ドットマトリクスフォント文字の圧縮された形を表すビット列を生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ圧縮及び解凍に関するものであり、特に、ドットマトリクスフォントデータの圧縮及び解凍のための方法及びシステムに関する。
【背景技術】
【0002】
ドットマトリクスフォントデータを圧縮する方法は、損失(劣化)がないようにすべきである。すなわち、圧縮されたものは、それが解凍される際に、元のオリジナルのドットマトリクスフォントイメージに戻らなければならないということである。いくつかの無損失なフォントデータ圧縮技術は、エントロピー符号化法(entropy coding)を採用している。エントロピー符号化の理論によれば、n個のイメージパターン(1〜n)の組において、比較的頻繁に出現するイメージパターンには短いビット長の符号が割り当てられ、一方、頻度が少なく出現するイメージパターンには長いビット長の符号が割り当てられる。このように、1組の中の複数のイメージパターンに割り当てられる符号のビット長の平均は、次の式1で与えられる。
【数1】
ここに、l(子文字のエル)は符号のビット長、Pは組の中におけるイメージパターンの出現確率であるが、liはi番目のイメージパターンの符号ビット長を意味し、Piはi番目のイメージパターンの出現確率を意味する。なお、Piは以下の式2を満足する。
【数2】
ドットマトリクスフォントデータにおいて、各文字はマトリクスの中の(黒く塗られた)ドットの集合体として定義される。たとえば、漢字は図1(A)に示すように、16×16のマトリクス中のドットの集合体として定義される。図1(A)は、16×16のマトリクス中にある、上側の直線部20aと下側の二股に分かれた部分20bを含む一つの文字20を示している。
【0003】
普通、アジアフォントは多くの文字から成る。たとえば、明朝体のフォントは13,108個の文字を含んでいる。エントロピー符号化法をドットマトリクスアジアフォントデータの圧縮に適用する目的のために、アジア文字をイメージパターンとして扱うことは、各セット内の文字数が膨大なため、実行不可能である。従って、各ドットマトリクス文字をマトリクスの複数の行(又は列)に分割し、各行(又は列)を一つのイメージパターンとして扱うことで可能となる。例えば、図1(A)において、16×16のマトリクスは、16個の行(1〜16)に分割可能であり、各行は16個のピクセルを含んでいる。図示した例では、第1行は7番目と8番目のピクセルが黒く塗られており、「0000001100000000」で表されるイメージパターンを構成する。ここで、「1」はアクティブ化された(黒く塗られた)ピクセルを表し、「0」は非アクティブ(白いままの)ピクセルを表している。2番目から16番目までの行についても、同様の方法で表すことができ、各文字は16個のイメージパターンの集合体として表すことができる。番号が異なる二つのイメージパターン及び/又はアクティブ化ピクセル(ドット)の分布が異なる二つのイメージパターンは、二つの異なるイメージパターンを構成する。従って、16×16のマトリクスの例では、各文字は1〜16のイメージパターンから成る。例えば、図1(A)の文字20の上部の直線部20aのように、一つの文字が、複数の行にわたって繰り返し現れる一つのイメージパターンによって構成されていてもよい。以下、「イメージパターン」というときは、特に同じイメージパターンが複数回繰り返されるものとして特徴付けられる場合を除き、異なる複数のイメージパターンを含むものを意味するものとする。
【0004】
m個の16×16ドットマトリクス文字を含む1組の文字セットを考えると、その組にはn個のイメージパターンが含まれている。各文字における16個のイメージパターンが互いにすべて異なっていると仮定すると、n=m×16となる。このような極端な場合は、その組における各イメージパターンが出現する確率は、各イメージパターンに対しては等しい。すなわち、その組におけるすべてのドットマトリクス文字はランダムに生成されると考えられる。もちろん、このような極端な場合では、圧縮された文字の組は、オリジナルのドットマトリクスフォントデータのビットスペース、すなわち、16×16×mの量と同じだけのビットスペースを必要とするので、圧縮しないこと(非圧縮)も可能である。
しかしながら、このような極端な場合は現実には起こらない。ドットマトリクスフォントデータはランダムには生成されないからである。むしろ、ドットマトリクスフォントデータは、例えば、アジア文字の基本的な部首(辺や旁)を構成するイメージパターンは、他のイメージパターンよりも頻繁に出現するというような規則に従って生成される。
従って、普通、一組の文字セット中におけるドットマトリクスフォントイメージパターンの出現頻度は、正規分布(又はガウス分布)として表される。
【0005】
理論的には、2k×2k(kは正の整数)のマトリクスのサイズを持つドットマトリクスフォント文字のセットは、その組の中の複数のイメージパターンに割り当てられた符号の平均ビット長が2kよりも短く(すなわち、2k×g;0<g<1)なるように圧縮することが可能である。圧縮比は1:gとして定義される。すなわち、オリジナルのまま格納するのに必要な1バイトに対して、圧縮後に必要とするのはgバイトということである。
通常は、エントロピー符号化は、この技術分野でよく知られたハフマン符号化法で実行される。ハフマン符号化法は以下の(1)〜(5)のステップを含む。すなわち、
(1)一組の中の各イメージパターンの出現確率を計算するステップ;
(2)出現確率の高い方から順に、イメージパターンの順序を並べ変えるステップ;
(3)出現確率が最低のものと、その次に低いものを合体させて新たなノードとし、そのノードに両者の出現確率の和を割り当て、(2)のステップを繰り返して、ハフマンツリーを構築するステップ;
(4)ハフマンツリーを根から葉の方へ辿り、出現確率の高いイメージパターンには短いビット長の符号を割り当て、出現確率の低いイメージパターンには長いビット長の符号を割り当てるステップ;
(5)圧縮された符号(短いビット長又は長いビット長を持つ符号)と、その符号と対応するイメージパターンとを記録したハフマンテーブルを生成するステップ:
ハフマン符号化法によって得られた符号の平均ビット長は、エントロピー符号化法の平均ビット長に近いものになる。
【0006】
しかしながら、ハフマン符号化法を用いた無劣化フォントデータ圧縮の有効性は、ツリーの大きさにかなり依存する。すなわち、ツリーのサイズが大きくなるほど、その性能は悪くなる。換言すれば、ハフマンツリーのサイズはかなり小さく保たれなければならないということである。図1(B)を見ると、曲線21は理想的な分布関数の曲線を表しており、横軸は異なるイメージパターンを示しており、縦軸は、その組における各イメージパターン出現数すなわち、各イメージパターンの出現確率を表している。曲線21は、出現頻度が高いイメージパターンが中央の縦軸の上あるいはその付近にプロットされ、一方、出現頻度が低いイメージパターンは、曲線の両側に向かってプロットされ、一般的な釣鐘状の曲線に沿って分布する理想的な形状をなす。
【0007】
図1(B)によると、三角形22が示されているが、曲線21の頂点21aと、曲線21と横軸との交点である21b及び21cとを結んでいる。三角形22は、正規分布の形状を記述するために使用される。一般には、鋭角三角形は良い圧縮結果を示している。なぜならば、出現確率の高いイメージパターンが三角形22の中心線(すなわち、正規分布の中央値)上又はその周りに集中しており、ハフマンツリーを構成するイメージパターンの全体数(種類)が少ないからである。
一方、図1(B)中の平たい三角形24によって表される平たい曲線23は、良い圧縮結果をもたらさない。上述の、一組の中のすべてのイメージパターンの出現確率が等しいような極端な場合では、三角形24は水平線になってしまう(三角形がつぶれてしまう。)。
この場合、フォントデータを圧縮しても何も意味がないし、ハフマン符号化は全く効果がない。
【0008】
一つの実験結果によると、ハフマン符号化を16×16のドットマトリクスの明朝体のセット(13,108個)に直接適用した場合、図1(B)の三角形24のような平たい三角形になることが分かった。これは、一組(セット)の中に膨大な数のイメージパターンが存在していることを意味しており、ドットマトリクス中の各行(又は列)は一つのイメージパターンを構成すると考えられ、これらのイメージパターンの大部分は、ほぼ同じ出現確率を有する。イメージパターンの数が多くなれば当然にハフマンツリーも大きくなり、従って、圧縮結果も非常に悪くなる。この実験結果は、フォント市場、特にアジアフォント市場において、現在、ドットマトリクスフォントデータの圧縮/解凍のための製品がなぜ提供されないのか、その理由を説明している。従って、ドットマトリクスフォントデータ、特に、多くの文字を含むアジアンドットマトリクスフォントデータの実用的な圧縮/解凍のための方法及びシステムが求められている。
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明は、上述のような事情に鑑み為されたものであり、ドットマトリクスフォントデータの圧縮及び解凍のための方法及びシステムを提供することを目的とするものである。
【課題を解決するための手段】
【0010】
ここでは、本発明の様々な態様(aspect)を述べているが、[特許請求の範囲]の範囲を限定することを意図したものではない。
本発明の一つの態様によれば、ドットマトリクスフォント文字(ドットマトリクスで表現された文字)のセットを含むドットマトリクスフォントデータを圧縮するためのコンピュータによって実行される方法が提供される。この方法によれば、各ドットマトリクスフォント文字は横型イメージパターンを含む横型イメージ、縦型イメージパターンを含む縦型イメージ、及び残余イメージパターンを含む残余イメージに分割される。次に、ハフマン符号化がそれぞれ、横型イメージパターン、縦型イメージパターン及び残余イメージパターンに対して適用される。特に、ハフマン符号化は、セット中の横型イメージパターンに対する圧縮符号を生成するために横型イメージパターンに対して適用される。通常は、生成された(横型イメージパターンの)圧縮符号と、その符号が表す対応する横型イメージパターンは、横型用のハフマンテーブルに格納される。同様に、生成された(縦型イメージパターンの)圧縮符号と、その符号が表す対応する縦型イメージパターンは、縦型用のハフマンテーブルに格納される。さらに、生成された(残余イメージパターンの)圧縮符号と、その符号が表す対応する残余イメージパターンは、残余ハフマンテーブルに格納される。その後、圧縮された横型符号、圧縮された縦型符号、圧縮された残余符号は、選択的に結合されて、ドットマトリクスフォント文字の圧縮された形を表すビット列が生成される。
【0011】
本発明の他の態様によれば、特に、そのセット中に大量の残余イメージパターンが存在しているときは、その残余イメージパターンは複数のグループに区分けされるが、一つのドットマトリクスフォント文字に属する残余イメージパターンは確実に同じグループに入るように保持される。一般には、結果として形成された複数のグループは、同じ又は似たような数の残余イメージパターンを含んでいる。次に、ハフマン符号化が残余イメージパターンの各グループに対して適用され、そのグループに対する圧縮された残余符号が生成され、複数のグループについて圧縮された残余符号を定義する複数の残余ハフマンテーブルがそれぞれ生成される。
【0012】
本発明の一つの態様によれば、ドットマトリクスフォント文字の圧縮された形を表すビット列は、一般的には、3つの構成要素を含む。第1の要素は文字の横型イメージパターンに対するものであり、ドットマトリクスにおける横型イメージパターンの縦方向の位置を特定する縦位置符号と、文字の横型イメージパターンに対する圧縮された横型符号とを含むものである。第2の要素は、文字の縦型イメージパターンに対するものであり、ドットマトリクスにおける縦型イメージパターンの水平方向の位置を特定する横位置符号と、文字の縦型イメージパターンに対する圧縮された縦型符号とを含むものである。第3の要素は、文字の残余イメージパターンに対するものであり、複数の残余ハフマンテーブルのうちのどれが文字中の残余イメージパターンに対する圧縮残余符号を定義するのかを特定するテーブルIDコードと、残余イメージパターンに対する圧縮された残余符号とを含むものである。
【0013】
本発明のさらに別の態様によると、一組の圧縮ドットマトリクスフォント文字を含むドットマトリクスフォントデータを解凍するためのシステムが提供される。このシステムは、解凍されるべき一組の圧縮されたドットマトリクスフォント文字を受け入れるように構成された記憶装置と、記憶装置に接続され、受け入れた圧縮ドットマトリクスフォント文字を解凍するように構成されたプロセッサとを備えている。
特に、このシステムは、以下の(a)〜(d)を行うように構成されている。
(a)横型イメージパターンの所定の縦位置と横型のハフマンテーブルに基づいて、文字の横型イメージパターンを復元すること;
(b)縦型イメージパターンの所定の水平位置と縦型のハフマンテーブルに基づいて、文字の縦型イメージパターンを復元すること;
(c)残余イメージパターンを定義する残余ハフマンテーブルのIDコードを決定し、決定された残余ハフマンテーブルに基づいて残余イメージパターンを復元すること;
(d)復元された横型、縦型及び残余のイメージパターンを結合すること:
【0014】
本発明のまたさらに別の態様によれば、一組の非圧縮ドットマトリクスフォント文字を圧縮するためのシステムが提供される。このシステムは、圧縮されるべき一組の非圧縮ドットマトリクスフォント文字を受け入れるように構成された記憶装置と、記憶装置に接続され、受け入れた非圧縮ドットマトリクスフォント文字を圧縮するように構成されたプロセッサとを備えている。
【0015】
本発明の他の態様によれば、コンピュータに読み込まれたときに、一組の圧縮されたドットマトリクスフォント文字を含む圧縮ドットマトリクスフォントデータを解凍する以下の(a)〜(d)のステップをコンピュータに実行させるコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体が提供される。すなわち、そのステップとは以下の通りである。
(a)一組の圧縮されたドットマトリクスフォント文字を受け入れるステップ;
(b)横型ハフマンテーブル、縦型ハフマンテーブル及び1又はそれ以上の残余ハフマンテーブルを検索するステップ;
(c)検索される横型、縦型及び残余ハフマンテーブルをサーチして、各文字の横型イメージパターン、縦型イメージパターン及び残余イメージパターンを取得するステップ;
(d)得られた各文字の横型イメージパターン、縦型イメージパターン及び残余イメージパターンを結合して、元のオリジナルのドットマトリクスフォント文字を復元するステップ:
【0016】
本発明の他の態様によれば、コンピュータに読み込まれたときに、圧縮ドットマトリクスフォントデータの解凍をコンピュータに実行させるコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体が提供される。コンピュータ実行可能な命令は、それぞれビット列の形をした、一組の圧縮ドットマトリクスフォント文字を含んでいる。
ビット列は、以下の(1)〜(6)の符号(コード)を含んでいる。
(1)一つの文字に含まれる横型イメージパターンの縦位置を特定する縦位置符号;
(2)その文字の横型イメージパターンに対する圧縮された横型符号;
(3)一つの文字に含まれる縦型イメージパターンの水平位置を特定する横位置符号;
(4)その文字の縦型イメージパターンに対する圧縮された縦型符号;
(5)文字に含まれる残余イメージパターンに対する圧縮残余符号を定義する残余ハフマンテーブルを特定するテーブルIDコード;
(6)文字の残余イメージパターンに対する圧縮残余符号:
【図面の簡単な説明】
【0017】
【図1】(A)は16×16のドットマトリクスで表した漢字のドットマトリクスフォント文字を示す図である。(B)はドットマトリクスイメージパターンの理想的な、及び非理想的な正規分布曲線を表すものである。(C)は本発明の様々な方法やシステムを実行するのに適したコンピュータシステムを示す図である。
【図2】(A)はドットマトリクスフォント文字を示しており、それは、横型イメージパターン(B)、縦型イメージパターン(C)及び残余イメージパターン(D)を含む3つの部分に分割される。
【図3】本発明の一つの実施態様によるドットマトリクスフォントデータを圧縮する方法を示すフローチャートである。
【図4】(A)〜(C)は正規分布の形を意味する3つの三角形を表している。各三角形は、それぞれ、本発明の一つの実施例による、一組のドットマトリクスフォント文字中の横型イメージパターン、縦型イメージパターン及び残余イメージパターンにハフマン符号化法を適用した結果得られたものである。
【図5】本発明の一つの実施例による、一組のドットマトリクスフォント文字中の残余イメージパターンを分類して複数のグループに分ける方法を表すフローチャートである。
【図6】ドットマトリクスフォント文字の各残余イメージのドット位置のビットシーケンスを形成するために、ドットマトリクス中のドット位置の数字を選択する方法を表したものである。
【図7】残余イメージパターンを分類して複数のグループにするために、ドット位置のビットシーケンスを用いてドットマトリクスフォント文字の各残余イメージに対するコード語を生成する方法を示すものである。
【図8】ヒストグラムを用いて、残余イメージパターンを分類して複数のグループに分ける方法を示すものである。
【図9】圧縮されたドットマトリクスフォント文字のサンプルデータフォーマットを表したものである。
【図10】図9のデータフォーマットに従った、図2(A)のドットマトリクスフォント文字の圧縮データを表すサンプルビット列を示すものである。
【図11】横型ハフマンテーブル、縦型ハフマンテーブル及び残余ハフマンテーブルからの読み出しデータの例であり、これは、それぞれ図2(B)〜(D)の横型イメージ、縦型イメージ及び残余イメージに対応している。
【図12】本発明の実施例による、圧縮ドットマトリクスフォントデータを解凍して元のドットマトリクスフォントデータに戻す方法を表すフローチャートである。
【図13】本発明の方法及びシステムの様々な態様を実行するのに適したコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0018】
図1(C)は、本発明の様々な圧縮/解凍の方法及びシステムが実行可能な、一般的なコンピュータシステムを示している。出力機器2a(たとえばディスプレイ)、入力機器2b(たとえばキーボード、マウス)及び適当なドライブ機構2c(たとえば、DVD/CD−ROMドライブ、USBフラッシュメモリドライブ等)を含む汎用コンピュータ1aは、本発明の様々な方法を完全に実行するか、若しくは様々なシステムを協働させることができる。ネットワークやメインフレームベースのシステムのような他のタイプのコンピュータシステムも使用可能であることは、当業者に自明である。一般に、コンピュータ1aは、例えばドライブ機構2cを介して非圧縮のドットマトリクスフォントデータを受け取り、本発明の圧縮方法を、受け取ったデータに適用し、圧縮されたドットマトリクスフォントデータを生成する。コンピュータ1aは、たとえば、コンピュータ読み取り可能な記録媒体に格納された圧縮されたドットマトリクスフォントデータを出力する。また、コンピュータ1aは圧縮されたドットマトリクスフォントデータを受け取り、受け取ったデータに本発明に係る解凍方法を適用して、解凍された(オリジナルの)ドットマトリクスフォントデータを生成する。次に、コンピュータ1aは、例えば出力機器2aに表示するために、解凍されたドットマトリクスフォントデータを出力する。
【0019】
図3は、本発明の一実施形態による、ドットマトリクスフォントデータの圧縮方法のフローチャートを示したものである。ステップS41では、一組のドットマトリクスフォント文字を含むドットマトリクスフォントデータが(コンピュータに)受け入れられる。以下の説明において、13,108個の明朝体の16×16のドットマトリクス漢字フォント文字が、本発明の様々な実施例として使用される。しかしながら、本発明がアジアドットマトリクスフォント文字及び非アジアドットマトリクスフォント文字の両方を含む他のタイプのドットマトリクスフォント文字にも同様に適用可能であることはいうまでもない。
ステップS42において、図2(A)に示す文字28のようなドットマトリクスフォント文字は3つの要素に分割される。すなわち、一又はそれ以上の横型イメージパターン(又は横型ストローク)25を含む図2(B)の横型ストロークイメージ、一又はそれ以上の縦型イメージパターン(又は縦型ストローク)26を含む図2(C)の縦型ストロークイメージ、及び、たとえばドットマトリクスの複数の行にわたって形成される一又はそれ以上の残余イメージパターン27a〜27iを含む図2(D)の残余イメージである。図2(D)の残余イメージは、図2(A)のオリジナルのドットマトリクスフォント文字イメージから、図2(B)及び(C)の横型及び縦型のストロークイメージを除くことによって得られる。
【0020】
特に、例えば図2(B)は6個の横型ストロークを示しているが、これには4種類の横型イメージパターンが含まれている。なぜなら、3個の横型ストローク25は同じ横型イメージパターンであるからである。横型ストロークは1行の中の4以上の連続した(黒く塗られた)ドットとして認識されるが、「ストローク」として認識されるドット数の閾値は「4」に限られるものではなく、「3」でも「5以上」でも構わない。
図2(C)は3個の縦型ストロークを示しているが、これには2種類の縦型イメージパターンが含まれている。なぜなら、2個の縦型ストローク26は同じ縦型イメージパターンであるからである。縦型ストロークは1列の中の4以上の連続した(黒く塗られた)ドットとして認識されるが、「縦型ストローク」として認識されるドット数の閾値は「4」に限られるものではない。実験結果によれば、横型ストローク又は縦型ストロークとして認識するための連続した(黒く塗られた)ドット数の最小値が長くなればなるほど、認識される横型又は縦型イメージパターンの数は少なくなり、それに応じて残余イメージパターンの数が増える。圧縮効率を上げるためには、ハフマンツリーに含まれるイメージパターンの合計数は少なく保たれるべきであるので、横型又は縦型ストロークとして認識されるドット数の閾値をユーザーが選択的(又は実験的)に設定することにより、生成される横型/縦型イメージパターン及び/又は残余イメージパターンの数が多くなり過ぎないようにするための、図1(C)のコンピュータ1a上で使用されるユーザーインタフェースソフトウェアツールが提供される。
【0021】
本発明の一つの態様(aspect)によれば、ハフマンツリーが100個以下のイメージパターンしか含んでいなければ、データの効果的な圧縮を達成するには十分であるといえる。
図2(D)は、16×16のドットマトリクスの各行を構成する9種類の残余イメージパターン27a〜27iを表している。9個の残余イメージパターン27a〜27iはそれぞれ互いに異なっているが、最初の残余イメージパターン27a(1行がすべて空白の16個のドットで構成されている。)は8つの異なった行において繰り返し現れる。
図2(B)〜(D)のイメージを結合あるいは重ね合わせることによって、図2(A)の元のドットマトリクスフォント文字ができる。ステップS42は一組の中の各ドットマトリクスフォント文字に対して実行され、全体として3つのイメージパターンの組ができる。すなわち、横型イメージパターンの組、縦型イメージパターンの組及び残余イメージパターンの組である。上述の例では、2k×2kのマトリクス中の各行を構成するように残余イメージパターンが取られる。あるいは、2k×2kのマトリクス中の各列を構成するように残余イメージパターンが取られる。またさらに、残余パターンは同じサイズのk×kのマトリクス(全部で4個の残余イメージパターン)が構成されるようにしてもよいし、k/2×k/2のマトリクス(全部で16個の残余イメージパターン)でもよい。
【0022】
ステップS43において、ハフマン符号化は横型イメージパターンに対して適用され、横型イメージパターンに対する圧縮された横型符号が生成される。特に、ハフマン符号化が横型イメージパターンに適用されるときは、まず初めに一組の中の各横型イメージパターンの出現確率が計算される。次に、横型イメージパターンは出現確率が高い順から順に並べ替えられる。次に、出現確率の低い方から高い方に向かって、二つの隣接する横型イメージパターンが合体されて新たなノードになり、出現確率に従って並べ替えるステップが、すべての横型イメージパターンが合体されて単一のノードになるまで繰り返される。その結果、横型ハフマンツリーができる。次に、ツリーの経路(パス)がルート(根)からリーフ(葉)の方向にトレースされ、高い出現確率を有する横型イメージパターンには短いビット長の符号が割り当てられ、低い出現確率を有する横型イメージパターンには長いビット長の符号が割り当てられる。生成された圧縮横型符号と、その符号が表す対応する横型イメージパターンは、横型ハフマンテーブルに記録される(図11参照)。
【0023】
図4(A)は、一組の中の横型イメージパターンの正規分布曲線の形を表す三角形48を示している。示された例では、その組には全部で295個の横型イメージパターンが含まれており、その出現確率は、鋭角三角形48で表されるようなほぼ理想的な正規分布曲線に従って分布している。図3に戻ると、ステップS44では、ハフマン符号化法は縦型イメージパターンにも適用され、縦型イメージパターンに対する圧縮された縦型符号が生成される。特に、ハフマン符号化が縦型イメージパターンに適用されるときは、まず初めに一組の中の各縦型イメージパターンの出現確率が計算される。次に、縦型イメージパターンは出現確率が高い順から順に並べ替えられる。次に、出現確率の低い方から高い方に向かって、二つの隣接する縦型イメージパターンが合体されて新たなノードになり、出現確率に従って並べ替えるステップが、すべての縦型イメージパターンが合体されて単一のノードになるまで繰り返される。その結果、縦型ハフマンツリーができる。次に、ツリーの経路(パス)がルート(根)からリーフ(葉)の方向にトレースされ、高い出現確率を有する縦型イメージパターンには短いビット長の符号が割り当てられ、低い出現確率を有する縦型イメージパターンには長いビット長の符号が割り当てられる。生成された圧縮縦型符号と、その符号が表す対応する縦型イメージパターンは、縦型ハフマンテーブルに記録される。
【0024】
図4(B)は、一組の中の縦型イメージパターンの正規分布曲線の形を表す三角形49を示している。示された例では、その組には全部で277個の縦型イメージパターンが含まれており、その出現確率は、鋭角三角形49で表されるようなほぼ理想的な正規分布曲線に従って分布している。図3に戻って、ステップS45では、ハフマン符号化法は残余イメージパターンにも適用され、残余イメージパターンに対する圧縮された残余符号が生成される。
【0025】
図4(C)は、一組の中の残余イメージパターンの正規分布曲線の形を表す三角形50を表している。図示した例では、トータルで5718個の残余イメージパターンが含まれており、その出現確率の分布は図4(A)及び図4(B)の三角形48及び49と比較すると、かなりフラットである。このフラットな形状は、ほとんどの残余イメージパターンが似たような出現確率を有しており、従って、圧縮結果もかなり劣ることを意味している。好ましくは、ハフマンツリーに含まれている残余イメージパターンのトータル数は、その正規分布が鋭角三角形になるように、すなわち、その出現確率が、中心軸の周りに集中している高確率のイメージパターンと、分布曲線の両端に向かって現れる低確率のイメージパターンとの間で著しく異なるようなやり方で減らすべきである。
【0026】
従って、本発明の一つの態様(aspect)によれば、図3のステップS45aにおいて、残余イメージパターンは複数のグループに区分けされ、ステップS45bでは、ハフマン符号化法が残余イメージパターンの各グループに対して個々に適用され、複数のグループに対してそれぞれ残余ハフマンテーブルが生成される。このように、複数の残余ハフマンツリーのそれぞれに組み込まれる残余イメージパターンの数は論理的に少なくなり、それゆえ、複数の残余ハフマンツリーのそれぞれに対する正規分布形状は理想的な釣鐘状になる。本発明の様々な実施形態によれば、残余イメージパターンは区分けされて多くのグループに分けられ、一つの文字を形成する残余イメージパターンが確実に同じグループになるようにして、その結果、同じ文字を形成するすべての残余イメージパターンに対する圧縮残余符号が単一の残余ハフマンツリーに含まれるようになる。
【0027】
本発明の別の実施形態によれば、各グループのサイズ、すなわち、各グループに分類された残余イメージパターンの数は、全く同数か実質的に同数であり、その結果、複数の残余ハフマンツリーは実質的に同じ性能を有する。
【0028】
図5は、本発明の一つの実施形態による、一組の中の残余イメージパターンを分類して複数のグループに分ける方法のフローチャートを表したものである。ステップS51では、2k×2kのドットマトリクスの中のドット位置(dot locations)の数sを選択する。たとえば、16×16のドットマトリクスにおいて、s=20とする。図6(A)及び図6(B)を参照すると、一例として、16×16のドットマトリクス中に20個のドット位置58(図では“×”で表示されている。)が選択される。図6(A)の例では、ドットマトリクス56がまず5つのエリア(1)〜(5)に分割される。次に、図6(B)に示すように、5つの各エリアの中に4個のドット位置を選択する(合計20個のドット位置ができる。)。
図6(C)及び図6(D)は、16×16のドットマトリクス56の中に20個のドット位置58を選択する他の例を示したものである。この例では、ドットマトリクス56がまず4つのエリア(1)〜(4)に分割される。次に、図6(D)に示すように、4つの各エリアの中に5個のドット位置を選択する(合計20個のドット位置ができる。)。選択されたドット位置は順序付けられて(in a sequence)配列される。
【0029】
次に、図2(D)に示すように、一つの文字全体の各残余イメージについて、一連の選択されたドット位置のどれが残余イメージによって占有されているかを表すドット位置ビットシーケンスが形成される。すなわち、残余イメージが順序付けられた20個のドット位置を占有しているか、あるいは一致しているかを判定する。つまり、残余イメージがドット位置を占有していれば、そのビットを“1”とし、占有していなければ、そのビットを“0”とする。図7は、ドットマトリクス56から選択された20のドット位置の占有/非占有状態を示すドット位置ビットシーケンスの例を示したものである。このドット位置ビットシーケンスの例は「11000101111100000011」であるが、これはドットマトリクスから選択された20のドット位置のうちの10のドット位置が残余イメージによって占有されていることを意味している。すなわち、ビット列のうちの1番目、2番目、6番目、8番目〜12番目、19番目及び20番目のドット位置が占有されているということである。さらに図7を参照すると、ドット位置ビットシーケンスは、16進法によるコード語として表現できることが分かる。すなわち、この例では「C9F03」となる。特に、ドット位置ビットシーケンスの20のビットは、4個ずつのビットからなる5つのグループに分けられ、二進法の4ビットは16進数(0〜F)に変換され、それらが合わせられて5つの記号から成るコード語が形成される。16進表記のコード語を使用することは単なる表現上の目的であり、ドット位置ビットシーケンスがコード語として使用され、あるいは、ドット位置ビットシーケンスがコード語生成のために他の表記/形式に変換され得ることは、当業者にとって自明のことである。いずれにしても、コード語は、1又はそれ以上の残余イメージパターンから成る一つの残余イメージを表示するために、ドット位置ビットシーケンスに基づいて生成される。
【0030】
各残余イメージ全体について一つのコード語が生成されるので、ドットマトリクスフォント文字の一つの残余イメージを形成するすべての残余イメージパターンには同じコード語が割り当てられる。従って、ステップS53における実施例では、同じドットマトリクスフォント文字に属する残余イメージパターンは、同じコード語に基づいて、同じグループになるように維持される。また、類似のコード語を持つ残余イメージどうしは、類似したトポグラフィーを共有しているものと思われ、従って、その中に含まれる類似の残余イメージパターンも共有していると思われる。
【0031】
ステップS55では、図8(A)を参照すると、横軸が残余イメージパターンのコード語を表し、縦軸が、複数のコード語のそれぞれに対して同じコード語を持つ残余イメージパターンの数を表すヒストグラムが形成されている。
ステップS57では、ヒストグラム上で、残余イメージパターンを2n個(nは自然数)のグループに一様に分類するための最高の量子化が実行される。再び図8(A)及び(B)を参照すると、図8(A)のヒストグラムは、まず、直線(1)に沿って二つのグループに分割され、次に、二つのグループのそれぞれが直線(2)に沿って分割され、合計4つのグループになる。そして、4つのグループのそれぞれが直線(3)に沿ってさらに分割され、合計8つのグループに分けられる。すなわち、図8(B)のバイナリツリーのトップからボトムまでの順序に従って、ヒストグラムのエリアは二つの等しいサブエリアに分割される。
【0032】
ステップS59において、同じサブエリアに分類される残余イメージパターンは一つのグループにまとめられる。従って、ドットマトリクスフォント文字セット中の残余イメージパターンは、多くの(2n個の)グループに分類され、各グループは同一、若しくは実質的に同一な数(かなり少ない)の残余イメージパターンを含んでいる。
【0033】
図3に戻ると、ステップS45bでは、ハフマン符号化は多くの残余イメージパターンのグループごとに適用され、それぞれのグループに対して残余ハフマンテーブルが得られる。特に、ハフマン符号化の残余イメージパターンへの適用は、一つのグループ内の各残余イメージパターンの出現確率をまず求めることから始められる。次に、残余イメージパターンは出現確率の高い方から低い方へ順に並べ替えられる。その後、低い方から高い方へ、二つの隣り合う残余イメージパターンが合体されて新たなノードとなり、出現確率に従って並べ替えるステップが、すべての残余イメージパターンが合体されて単一のルート(根)になるまで繰り返され、残余ハフマンツリーが生成される。そして、高い出現確率を持つ残余イメージパターンに対しては短いビット長の符号が割り当てられ、低い出現確率を持つ残余イメージパターンに対しては長いビット長の符号が割り当てられながら、ツリーのパス(経路)が根(ルート)から葉(リーフ)へとトレースされる。
生成された圧縮残余符号と、その符号が表す(対応する)残余イメージパターンが、そのグループに対する残余ハフマンテーブルの中に格納される(図11参照)。同じプロセスが残余イメージパターンの複数の(2n個の)グループのそれぞれに対して繰り返され、グループ中の対応する残余イメージパターンに対する圧縮残余符号をそれぞれ定義する複数の(2n個の)残余ハフマンテーブルが得られる。2n個の残余ハフマンテーブルが生成されるとき、各残余ハフマンテーブルは1から2nまでの値の範囲のテーブルIDコードによって識別されることに注意されたい。
【0034】
図3を参照すると、最後にステップS46において、生成された様々なハフマンテーブル(横型ハフマンテーブル、縦型ハフマンテーブル、1又はそれ以上(2n)の残余ハフマンテーブルを含む。)は、圧縮されたドットマトリクスフォント文字を定義するのに使用される。
横型、縦型及び残余のハフマンテーブルを生成する、図3のステップS43、44及び45を実行する順序は、上述の例には限定されず、他の順序でもよいし、また、同時でもよいことは当業者に自明なことである。
【0035】
また、上述の実施例では一つの横型ハフマンテーブルと、一つの縦型ハフマンテーブルが生成されているが、本発明はこれに限られたものではなく、例えば、一つの文字セット中の横型及び/又は縦型イメージパターンの数があまりに多くなるときは、2又はそれ以上の横型及び/又は縦型のハフマンテーブルを生成しても構わない。
【0036】
本発明の様々な実施形態によれば、ドットマトリクスフォント文字の圧縮された形式は図9のようなデータフォーマットを有している。すなわち、図10に示すようなビット列で表される。示した例では、図10のビット列は、図2(A)のドットマトリクスフォント文字28の圧縮された形である。
【0037】
図9は本発明の様々な実施形態による圧縮されたドットマトリクスフォント文字のデータフォーマットを示している。参照符号71は圧縮された横型イメージを指しており、ドットマトリクスフォント文字中の横型イメージパターンの縦方向の位置を特定する縦位置符号71aと、それに続いて、その文字に含まれる横型イメージパターンを表す1又はそれ以上の圧縮された横型符号71−1,・・・,71−xを含んでいる。さらに、図10を参照すると、それは図2(A)の文字28に対する圧縮されたビット列のサンプルを示したものであるが、圧縮された横型イメージ71は縦位置符号71a(0100101010100100)を含んでいる。ここに、ビット“1”は、その縦位置に横型イメージパターンが存在していることを示し、ビット“0”は、その縦位置に横型イメージパターンが存在しないことを示している。従って、この特別の縦位置符号71aは、その文字が、図2(B)に示すように、ドットマトリクスの上から第2、5、7、9、11及び14行目に横型イメージパターン(横型ストローク)を含んでいることを示している。すなわち、この文字を構成する横型イメージパターンは6個あるということである。6個の圧縮横型符号71−1〜71−6はそれぞれ、これら6個の横型イメージパターンを表している。特に、図11を参照すると、図示された例では、第1の圧縮横型符号71−1は「001010」、第2の圧縮横型符号71−2は「110100」、第3から第5までの圧縮横型符号71−3〜71−5は、すべて同じ「11010110」(図2(B)に3度現れる同じ横型ストローク25に対応)であり、第6の圧縮横型符号71−6は「000010」である。ハフマン符号化法においては、どの圧縮符号も他の圧縮符号の接頭語(符号の最初の部分)になることはないため、これらの6個の圧縮横型符号は出現した順に、すなわち、図10に示すように、ドットマトリクスの第2行から第14行まで連続して配列しても問題がない。次に、解凍するときは、まず横型イメージパターンの縦位置が縦位置符号71aによって特定される。
【0038】
次に、横型ハフマンテーブル(図11参照)が参照されて6つの圧縮横型符号71−1〜71−6が読み出され、読み出された横型圧縮符号71−1〜71−6にそれぞれ対応する6つの横型イメージパターンが復元されて、指定された6つの縦位置に配置される。
本発明に係る解凍方法を、図12を参照しつつ以下に詳細に説明する。
【0039】
さらに図9を参照すると、参照符号73は圧縮された縦型イメージを指しており、ドットマトリクスフォント文字中の縦型イメージパターンの水平方向の位置を特定する横位置符号73aと、それに続いて、その文字に含まれる縦型イメージパターンを表す1又はそれ以上の圧縮された縦型符号73−1,・・・,73−yを含んでいる。さらに、図10を参照すると、圧縮された縦型イメージ73は横位置符号73a(0100000010000100)を含んでいるが、これはこの文字が図2(C)に示すように、ドットマトリクスの左から第2、9及び14列目に縦型イメージパターン(縦型ストローク)を含んでいることを示している。すなわち、この文字を構成する縦型イメージパターンは3個あるということである。3個の圧縮縦型符号73−1〜73−3はそれぞれ、これら3個の縦型イメージパターンを表している。特に、図11を参照すると、図示された例では、第1の圧縮縦型符号73−1は「0101」、第2の圧縮縦型符号73−2は「1011011」、第3の圧縮縦型符号73−3は、「0101」であり、第1の圧縮縦型符号73−1と同じである(図2(C)において同じ縦型ストローク26が2回出現していることに対応している。)。これらの3個の圧縮縦型符号は出現した順に、すなわち、図10に示すように、ドットマトリクスの第2列から第14列まで連続して配列してもよい。次に、解凍するときは、まず縦型イメージパターンの横位置が横位置符号73aによって特定される。
【0040】
次に、縦型ハフマンテーブル(図11参照)が参照されて3つの圧縮縦型符号73−1〜73−3が読み出され、読み出された縦型圧縮符号73−1〜73−3にそれぞれ対応する3つの縦型イメージパターンが復元されて、指定された3つの横位置に配置される。
上述の図示した例では、縦位置符号71aと横位置符号73aの長さは、16×16ドットマトリクスのサイズに応じて2バイト(16ビット)である。もちろん、縦位置符号71aと横位置符号73aの長さはこれに限定されるものではなく、各アプリケーションにおいて使用されるドットマトリクスのサイズに合わせて変更してもよい。
さらに、図9を参照すると、参照符号75は圧縮された残余イメージを指しており、ドットマトリクスフォント文字中の残余イメージパターンを定義する残余ハフマンテーブルを指定する残余ハフマンテーブルIDコード75aと、それに続いて、その文字に含まれる残余イメージパターンを表す1又はそれ以上の圧縮された残余符号75−1,・・・,75−zを含んでいる。さらに、図10を参照すると、圧縮された残余イメージ75は、nビットの残余ハフマンテーブルIDコード75a「001010100111」を含んでいる。上述の通り、本発明の様々な実施形態によれば、残余イメージパターンは2n個のグループに分類される。従って、残余ハフマンテーブルIDコード75aは、2n個の残余ハフマンテーブルのそれぞれを識別するためにnビットで構成されている。
【0041】
さらに、図11を参照すると、圧縮された残余イメージ75は、残余ハフマンテーブルIDコード75aに加えて、16個の圧縮残余符号75−1〜75−16を含んでいる。
すなわち、これらは、(1)00, (2)00, (3)10101, (4)111100, (5)00, (6)00, (7)11111, (8)010010, (9)10110, (10)110001, (11)110011, (12)011011, (13)00, (14)00, (15)00, (16)00である。これらの圧縮残余符号は、それぞれ対応する残余イメージパターンを表している。圧縮残余符号“00”が、図2(D)の残余イメージの中の8つの空白の行(例:27a)に対応して、8回出現していることに注意されたい。
これらの16個の圧縮残余符号75−1〜75−16は、残余ハフマンテーブルIDコード75aによって特定される残余ハフマンテーブルの中に含まれる。これは一つの文字に属する残余イメージパターンは同じグループに分類され、そのグループに対して一つの残余ハフマンテーブルが作られるからである。圧縮横型符号や縦型符号と同様に、これらの16個の圧縮残余符号は、図10に示すように、出現した順に、すなわち、例えば図2(D)の16×16のドットマトリクスの第1行から16行までのように、連続して配列してもよい。換言すれば、これらの16個の圧縮残余符号は、図2(D)に示すように、ドットマトリクスの一番上の行から一番下までの行に現れる16個の残余イメージパターンに対応するものである。
【0042】
次に、解凍するときは、まず、参照されるべき残余ハフマンテーブルが、残余ハフマンテーブルIDコード75aによって特定される。次に、特定された残余ハフマンテーブル(図11参照)が参照されて圧縮残余符号(たとえば、16×16のドットマトリクスの場合における16個の圧縮残余符号)が順番に読み出され、読み出された圧縮残余符号にそれぞれ対応する残余イメージパターンが復元されて、ドットマトリクスの中に順に配置される。
図2(A)のドットマトリクスフォント文字28の圧縮形である図10の圧縮ビット列に含まれるトータルのビット数は、20.25バイトである。オリジナルのドットマトリクスフォント文字28に必要とされるビット数は、16×16で32バイト(256ビット)となるので、この例における圧縮比は、1:0.6328となる。
【0043】
図12は、本発明の一つの実施形態に係る、圧縮されたドットマトリクスフォントデータを解凍してオリジナルのドットマトリクスフォントデータに戻す方法を表したフローチャートである。一般に、解凍のプロセス(手順)は、圧縮のプロセスの逆になる。ステップS81において、圧縮されたドットマトリクスフォント文字は、例えば、図10に示すようなビット列の形で(システムに)受け入れられる。ステップS82において、その文字に含まれるすべての横型イメージパターンの縦位置が、縦位置符号71aに基づいて決定される。ステップS83において、圧縮横型符号71−1〜71−xに対応する横型イメージパターンが横型ハフマンテーブルを参照して復元され、所定の縦位置に配置される(図2(B)参照)。同様に、ステップS84において、その文字に含まれるすべての縦型イメージパターンの水平位置が、横位置符号73aに基づいて決定される。ステップS85において、圧縮縦型符号73−1〜73−yに対応する縦型イメージパターンが、縦型ハフマンテーブルを参照して復元され、指定された横位置に配置される(図2(C)参照)。ステップS86では、参照されるべき残余ハフマンテーブルが残余ハフマンテーブルIDコード75aに基づいて特定される。ステップS87において、圧縮された残余符号75−1〜75−zに対応する残余イメージパターンが、特定された残余ハフマンテーブルを参照して復元され、順にドットマトリクス中に配置される(図2(D)参照)。最後に、ステップS88において、復元された横型イメージパターン、縦型イメージパターン及び残余イメージパターンが組み合わされてオリジナルのドットマトリクスフォント文字になる(図2(A)参照)。
【0044】
図13は、本発明に係るドットマトリクスフォントの圧縮及び/又は解凍のための様々な方法の実行又はそのためのシステムを実現するのに適したシステムのブロック図である。システム1aは、図1(C)に示すような汎用コンピュータであって、プロセッサ3a、I/Oインタフェース4a、出力機器2a(例えば、ディスプレイ)、入力機器2b(例えば、キーボード、マウス等)、I/Oインタフェース4aと通信する他の機器2d、及び記憶装置90を含み、それらはすべてバスラインを介して互いに接続されている。
入力/出力(I/O)インタフェース4aは、無線又は有線でネットワーク上にある他の機器2dと通信を行うために使用され、オリジナルの(非圧縮の)又は圧縮されたドットマトリクスフォントデータを他の機器から受信したり、又は、圧縮若しくは解凍したドットマトリクスフォントデータを他の機器に転送/伝送を行ったりするものである。
I/Oインタフェース4aは、コネクタ等の回路素子を含み、必要なプロトコルを用いて使用するように構成されている。I/Oインタフェース4aはさらに、プロセッサ3aを入力機器2bと出力機器2aとに接続している。
【0045】
記憶装置90は、一般には、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)及び不揮発性の大容量記憶デバイスを含んでいる。図示した実施例では、記憶装置90は、オペレーティングシステム(OS)91、圧縮モジュール93、ハフマンテーブル95及び解凍モジュール97を具備している。これらの各要素は、特定の機能を実行するためのハードウェア及びソフトウェアの集合/組み合わせから成り立っている。特に、圧縮モジュール93は、プロセッサ3aと協働して、上述の本発明の様々な実施形態に従ってドットマトリクスフォント文字を圧縮するように作られている。同様に、解凍モジュール97は、プロセッサ3aと協働して、上述の本発明の様々な実施形態に従って圧縮ドットマトリクスフォント文字を解凍するように作られている。圧縮モジュール93によって生成されたハフマンテーブル95は、解凍モジュール97による使用のために記憶装置90に格納されているか、又は、本発明に従って圧縮されたドットマトリクスフォントデータを解凍するのに使用するために他の機器に伝送/転送してもよい。特に、圧縮モジュール93は、ドットマトリクスデータの圧縮後、圧縮されたドットマトリクスフォントデータを、生成したハフマンテーブル95及び圧縮されたドットマトリクスフォントデータを解凍するためのコンピュータ実行可能命令とをパッケージにしてコンピュータ読み取り可能なファイルにする。このパッケージファイルは、次に、I/Oインタフェース4aを介して他の機器に伝送/転送される。
【0046】
本発明のシステムの構成は図13に示したものには限られず、他の異なる構成でも実施可能であることは当業者に自明であろう。例えば、システム1aの様々な要素(又はコンポーネント)によって実行される機能のいくつかは、単一の要素によって実行できるように組み合わせてもよいし、単一の要素によって実行される機能またはルーチンを、複数の要素によって実行できるように分割してもよい。
【0047】
上述の通り、圧縮モジュール93によって生成された一組の圧縮ドットマトリクスフォント文字はコンピュータ読み取り可能なファイルとして保存されるが、それはコンピュータ読み取り可能な有形の媒体に格納してもよいし、コンピュータ読み取り可能な無形の媒体を介して伝送してもよい。もし、ファイルの受け手が、圧縮されたドットマトリクスフォント文字を解凍するために必要なハフマンテーブルを持っているか、それを使用することができるならば、そのファイルの中に様々なハフマンテーブルを含んでいる必要はない。
一方、もし、受け手が必要なハフマンテーブルを使用できない場合は、そのファイルはこれらのハフマンテーブルを含んでいるべきである。同様に、もしファイルの受け手が解凍のために必要なコンピュータプログラムを使用することができなければ、そのファイルは、解凍のためのコンピュータ実行可能な命令を含むコンピュータプログラムをさらに含んでいなければならない。
【0048】
一組のドットマトリクスフォント文字を圧縮する方法は、上述のように、全自動で行われるが、その一方で、アプリケーションによってはいくらかの人手の介在があっても構わない。例えば、前述の通り、横型又は縦型のストロークであると認識するための連続したアクティブ(黒く塗られた)ドットの数の閾値を調整するには、人手によることが望ましいことがある。特に、横型/縦型イメージパターン及び/又は残余イメージパターンの数が多くなりすぎないように、コンピュータ1aの入力機器2b及び出力機器2aを用いて、ユーザーが横型又は縦型のストロークであると認識するための連続したアクティブドットの数の閾値の設定を実験的に確かめるということがある。この目的のためのユーザーインタフェースソフトウェアツールは、記憶装置90の中にある圧縮モジュール93の中に含めるようにしてもよい。
【0049】
上述の様々な実施形態はさらに別の実施形態を提供するために組み合わせることが可能である。上述の詳細な説明に照らせば、実施形態に対してこれらの変更を加えることは可能である。一般に、請求項において用いられている用語は、権利範囲を明細書の詳細な説明に開示された特定の実施例に限定するものに解釈されるべきではなく、請求項の権利範囲に含まれるすべての均等物をも含むように解釈されるべきである。従って、請求項の内容は開示された実施例には限定されない。
【技術分野】
【0001】
本発明は、データ圧縮及び解凍に関するものであり、特に、ドットマトリクスフォントデータの圧縮及び解凍のための方法及びシステムに関する。
【背景技術】
【0002】
ドットマトリクスフォントデータを圧縮する方法は、損失(劣化)がないようにすべきである。すなわち、圧縮されたものは、それが解凍される際に、元のオリジナルのドットマトリクスフォントイメージに戻らなければならないということである。いくつかの無損失なフォントデータ圧縮技術は、エントロピー符号化法(entropy coding)を採用している。エントロピー符号化の理論によれば、n個のイメージパターン(1〜n)の組において、比較的頻繁に出現するイメージパターンには短いビット長の符号が割り当てられ、一方、頻度が少なく出現するイメージパターンには長いビット長の符号が割り当てられる。このように、1組の中の複数のイメージパターンに割り当てられる符号のビット長の平均は、次の式1で与えられる。
【数1】
ここに、l(子文字のエル)は符号のビット長、Pは組の中におけるイメージパターンの出現確率であるが、liはi番目のイメージパターンの符号ビット長を意味し、Piはi番目のイメージパターンの出現確率を意味する。なお、Piは以下の式2を満足する。
【数2】
ドットマトリクスフォントデータにおいて、各文字はマトリクスの中の(黒く塗られた)ドットの集合体として定義される。たとえば、漢字は図1(A)に示すように、16×16のマトリクス中のドットの集合体として定義される。図1(A)は、16×16のマトリクス中にある、上側の直線部20aと下側の二股に分かれた部分20bを含む一つの文字20を示している。
【0003】
普通、アジアフォントは多くの文字から成る。たとえば、明朝体のフォントは13,108個の文字を含んでいる。エントロピー符号化法をドットマトリクスアジアフォントデータの圧縮に適用する目的のために、アジア文字をイメージパターンとして扱うことは、各セット内の文字数が膨大なため、実行不可能である。従って、各ドットマトリクス文字をマトリクスの複数の行(又は列)に分割し、各行(又は列)を一つのイメージパターンとして扱うことで可能となる。例えば、図1(A)において、16×16のマトリクスは、16個の行(1〜16)に分割可能であり、各行は16個のピクセルを含んでいる。図示した例では、第1行は7番目と8番目のピクセルが黒く塗られており、「0000001100000000」で表されるイメージパターンを構成する。ここで、「1」はアクティブ化された(黒く塗られた)ピクセルを表し、「0」は非アクティブ(白いままの)ピクセルを表している。2番目から16番目までの行についても、同様の方法で表すことができ、各文字は16個のイメージパターンの集合体として表すことができる。番号が異なる二つのイメージパターン及び/又はアクティブ化ピクセル(ドット)の分布が異なる二つのイメージパターンは、二つの異なるイメージパターンを構成する。従って、16×16のマトリクスの例では、各文字は1〜16のイメージパターンから成る。例えば、図1(A)の文字20の上部の直線部20aのように、一つの文字が、複数の行にわたって繰り返し現れる一つのイメージパターンによって構成されていてもよい。以下、「イメージパターン」というときは、特に同じイメージパターンが複数回繰り返されるものとして特徴付けられる場合を除き、異なる複数のイメージパターンを含むものを意味するものとする。
【0004】
m個の16×16ドットマトリクス文字を含む1組の文字セットを考えると、その組にはn個のイメージパターンが含まれている。各文字における16個のイメージパターンが互いにすべて異なっていると仮定すると、n=m×16となる。このような極端な場合は、その組における各イメージパターンが出現する確率は、各イメージパターンに対しては等しい。すなわち、その組におけるすべてのドットマトリクス文字はランダムに生成されると考えられる。もちろん、このような極端な場合では、圧縮された文字の組は、オリジナルのドットマトリクスフォントデータのビットスペース、すなわち、16×16×mの量と同じだけのビットスペースを必要とするので、圧縮しないこと(非圧縮)も可能である。
しかしながら、このような極端な場合は現実には起こらない。ドットマトリクスフォントデータはランダムには生成されないからである。むしろ、ドットマトリクスフォントデータは、例えば、アジア文字の基本的な部首(辺や旁)を構成するイメージパターンは、他のイメージパターンよりも頻繁に出現するというような規則に従って生成される。
従って、普通、一組の文字セット中におけるドットマトリクスフォントイメージパターンの出現頻度は、正規分布(又はガウス分布)として表される。
【0005】
理論的には、2k×2k(kは正の整数)のマトリクスのサイズを持つドットマトリクスフォント文字のセットは、その組の中の複数のイメージパターンに割り当てられた符号の平均ビット長が2kよりも短く(すなわち、2k×g;0<g<1)なるように圧縮することが可能である。圧縮比は1:gとして定義される。すなわち、オリジナルのまま格納するのに必要な1バイトに対して、圧縮後に必要とするのはgバイトということである。
通常は、エントロピー符号化は、この技術分野でよく知られたハフマン符号化法で実行される。ハフマン符号化法は以下の(1)〜(5)のステップを含む。すなわち、
(1)一組の中の各イメージパターンの出現確率を計算するステップ;
(2)出現確率の高い方から順に、イメージパターンの順序を並べ変えるステップ;
(3)出現確率が最低のものと、その次に低いものを合体させて新たなノードとし、そのノードに両者の出現確率の和を割り当て、(2)のステップを繰り返して、ハフマンツリーを構築するステップ;
(4)ハフマンツリーを根から葉の方へ辿り、出現確率の高いイメージパターンには短いビット長の符号を割り当て、出現確率の低いイメージパターンには長いビット長の符号を割り当てるステップ;
(5)圧縮された符号(短いビット長又は長いビット長を持つ符号)と、その符号と対応するイメージパターンとを記録したハフマンテーブルを生成するステップ:
ハフマン符号化法によって得られた符号の平均ビット長は、エントロピー符号化法の平均ビット長に近いものになる。
【0006】
しかしながら、ハフマン符号化法を用いた無劣化フォントデータ圧縮の有効性は、ツリーの大きさにかなり依存する。すなわち、ツリーのサイズが大きくなるほど、その性能は悪くなる。換言すれば、ハフマンツリーのサイズはかなり小さく保たれなければならないということである。図1(B)を見ると、曲線21は理想的な分布関数の曲線を表しており、横軸は異なるイメージパターンを示しており、縦軸は、その組における各イメージパターン出現数すなわち、各イメージパターンの出現確率を表している。曲線21は、出現頻度が高いイメージパターンが中央の縦軸の上あるいはその付近にプロットされ、一方、出現頻度が低いイメージパターンは、曲線の両側に向かってプロットされ、一般的な釣鐘状の曲線に沿って分布する理想的な形状をなす。
【0007】
図1(B)によると、三角形22が示されているが、曲線21の頂点21aと、曲線21と横軸との交点である21b及び21cとを結んでいる。三角形22は、正規分布の形状を記述するために使用される。一般には、鋭角三角形は良い圧縮結果を示している。なぜならば、出現確率の高いイメージパターンが三角形22の中心線(すなわち、正規分布の中央値)上又はその周りに集中しており、ハフマンツリーを構成するイメージパターンの全体数(種類)が少ないからである。
一方、図1(B)中の平たい三角形24によって表される平たい曲線23は、良い圧縮結果をもたらさない。上述の、一組の中のすべてのイメージパターンの出現確率が等しいような極端な場合では、三角形24は水平線になってしまう(三角形がつぶれてしまう。)。
この場合、フォントデータを圧縮しても何も意味がないし、ハフマン符号化は全く効果がない。
【0008】
一つの実験結果によると、ハフマン符号化を16×16のドットマトリクスの明朝体のセット(13,108個)に直接適用した場合、図1(B)の三角形24のような平たい三角形になることが分かった。これは、一組(セット)の中に膨大な数のイメージパターンが存在していることを意味しており、ドットマトリクス中の各行(又は列)は一つのイメージパターンを構成すると考えられ、これらのイメージパターンの大部分は、ほぼ同じ出現確率を有する。イメージパターンの数が多くなれば当然にハフマンツリーも大きくなり、従って、圧縮結果も非常に悪くなる。この実験結果は、フォント市場、特にアジアフォント市場において、現在、ドットマトリクスフォントデータの圧縮/解凍のための製品がなぜ提供されないのか、その理由を説明している。従って、ドットマトリクスフォントデータ、特に、多くの文字を含むアジアンドットマトリクスフォントデータの実用的な圧縮/解凍のための方法及びシステムが求められている。
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明は、上述のような事情に鑑み為されたものであり、ドットマトリクスフォントデータの圧縮及び解凍のための方法及びシステムを提供することを目的とするものである。
【課題を解決するための手段】
【0010】
ここでは、本発明の様々な態様(aspect)を述べているが、[特許請求の範囲]の範囲を限定することを意図したものではない。
本発明の一つの態様によれば、ドットマトリクスフォント文字(ドットマトリクスで表現された文字)のセットを含むドットマトリクスフォントデータを圧縮するためのコンピュータによって実行される方法が提供される。この方法によれば、各ドットマトリクスフォント文字は横型イメージパターンを含む横型イメージ、縦型イメージパターンを含む縦型イメージ、及び残余イメージパターンを含む残余イメージに分割される。次に、ハフマン符号化がそれぞれ、横型イメージパターン、縦型イメージパターン及び残余イメージパターンに対して適用される。特に、ハフマン符号化は、セット中の横型イメージパターンに対する圧縮符号を生成するために横型イメージパターンに対して適用される。通常は、生成された(横型イメージパターンの)圧縮符号と、その符号が表す対応する横型イメージパターンは、横型用のハフマンテーブルに格納される。同様に、生成された(縦型イメージパターンの)圧縮符号と、その符号が表す対応する縦型イメージパターンは、縦型用のハフマンテーブルに格納される。さらに、生成された(残余イメージパターンの)圧縮符号と、その符号が表す対応する残余イメージパターンは、残余ハフマンテーブルに格納される。その後、圧縮された横型符号、圧縮された縦型符号、圧縮された残余符号は、選択的に結合されて、ドットマトリクスフォント文字の圧縮された形を表すビット列が生成される。
【0011】
本発明の他の態様によれば、特に、そのセット中に大量の残余イメージパターンが存在しているときは、その残余イメージパターンは複数のグループに区分けされるが、一つのドットマトリクスフォント文字に属する残余イメージパターンは確実に同じグループに入るように保持される。一般には、結果として形成された複数のグループは、同じ又は似たような数の残余イメージパターンを含んでいる。次に、ハフマン符号化が残余イメージパターンの各グループに対して適用され、そのグループに対する圧縮された残余符号が生成され、複数のグループについて圧縮された残余符号を定義する複数の残余ハフマンテーブルがそれぞれ生成される。
【0012】
本発明の一つの態様によれば、ドットマトリクスフォント文字の圧縮された形を表すビット列は、一般的には、3つの構成要素を含む。第1の要素は文字の横型イメージパターンに対するものであり、ドットマトリクスにおける横型イメージパターンの縦方向の位置を特定する縦位置符号と、文字の横型イメージパターンに対する圧縮された横型符号とを含むものである。第2の要素は、文字の縦型イメージパターンに対するものであり、ドットマトリクスにおける縦型イメージパターンの水平方向の位置を特定する横位置符号と、文字の縦型イメージパターンに対する圧縮された縦型符号とを含むものである。第3の要素は、文字の残余イメージパターンに対するものであり、複数の残余ハフマンテーブルのうちのどれが文字中の残余イメージパターンに対する圧縮残余符号を定義するのかを特定するテーブルIDコードと、残余イメージパターンに対する圧縮された残余符号とを含むものである。
【0013】
本発明のさらに別の態様によると、一組の圧縮ドットマトリクスフォント文字を含むドットマトリクスフォントデータを解凍するためのシステムが提供される。このシステムは、解凍されるべき一組の圧縮されたドットマトリクスフォント文字を受け入れるように構成された記憶装置と、記憶装置に接続され、受け入れた圧縮ドットマトリクスフォント文字を解凍するように構成されたプロセッサとを備えている。
特に、このシステムは、以下の(a)〜(d)を行うように構成されている。
(a)横型イメージパターンの所定の縦位置と横型のハフマンテーブルに基づいて、文字の横型イメージパターンを復元すること;
(b)縦型イメージパターンの所定の水平位置と縦型のハフマンテーブルに基づいて、文字の縦型イメージパターンを復元すること;
(c)残余イメージパターンを定義する残余ハフマンテーブルのIDコードを決定し、決定された残余ハフマンテーブルに基づいて残余イメージパターンを復元すること;
(d)復元された横型、縦型及び残余のイメージパターンを結合すること:
【0014】
本発明のまたさらに別の態様によれば、一組の非圧縮ドットマトリクスフォント文字を圧縮するためのシステムが提供される。このシステムは、圧縮されるべき一組の非圧縮ドットマトリクスフォント文字を受け入れるように構成された記憶装置と、記憶装置に接続され、受け入れた非圧縮ドットマトリクスフォント文字を圧縮するように構成されたプロセッサとを備えている。
【0015】
本発明の他の態様によれば、コンピュータに読み込まれたときに、一組の圧縮されたドットマトリクスフォント文字を含む圧縮ドットマトリクスフォントデータを解凍する以下の(a)〜(d)のステップをコンピュータに実行させるコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体が提供される。すなわち、そのステップとは以下の通りである。
(a)一組の圧縮されたドットマトリクスフォント文字を受け入れるステップ;
(b)横型ハフマンテーブル、縦型ハフマンテーブル及び1又はそれ以上の残余ハフマンテーブルを検索するステップ;
(c)検索される横型、縦型及び残余ハフマンテーブルをサーチして、各文字の横型イメージパターン、縦型イメージパターン及び残余イメージパターンを取得するステップ;
(d)得られた各文字の横型イメージパターン、縦型イメージパターン及び残余イメージパターンを結合して、元のオリジナルのドットマトリクスフォント文字を復元するステップ:
【0016】
本発明の他の態様によれば、コンピュータに読み込まれたときに、圧縮ドットマトリクスフォントデータの解凍をコンピュータに実行させるコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体が提供される。コンピュータ実行可能な命令は、それぞれビット列の形をした、一組の圧縮ドットマトリクスフォント文字を含んでいる。
ビット列は、以下の(1)〜(6)の符号(コード)を含んでいる。
(1)一つの文字に含まれる横型イメージパターンの縦位置を特定する縦位置符号;
(2)その文字の横型イメージパターンに対する圧縮された横型符号;
(3)一つの文字に含まれる縦型イメージパターンの水平位置を特定する横位置符号;
(4)その文字の縦型イメージパターンに対する圧縮された縦型符号;
(5)文字に含まれる残余イメージパターンに対する圧縮残余符号を定義する残余ハフマンテーブルを特定するテーブルIDコード;
(6)文字の残余イメージパターンに対する圧縮残余符号:
【図面の簡単な説明】
【0017】
【図1】(A)は16×16のドットマトリクスで表した漢字のドットマトリクスフォント文字を示す図である。(B)はドットマトリクスイメージパターンの理想的な、及び非理想的な正規分布曲線を表すものである。(C)は本発明の様々な方法やシステムを実行するのに適したコンピュータシステムを示す図である。
【図2】(A)はドットマトリクスフォント文字を示しており、それは、横型イメージパターン(B)、縦型イメージパターン(C)及び残余イメージパターン(D)を含む3つの部分に分割される。
【図3】本発明の一つの実施態様によるドットマトリクスフォントデータを圧縮する方法を示すフローチャートである。
【図4】(A)〜(C)は正規分布の形を意味する3つの三角形を表している。各三角形は、それぞれ、本発明の一つの実施例による、一組のドットマトリクスフォント文字中の横型イメージパターン、縦型イメージパターン及び残余イメージパターンにハフマン符号化法を適用した結果得られたものである。
【図5】本発明の一つの実施例による、一組のドットマトリクスフォント文字中の残余イメージパターンを分類して複数のグループに分ける方法を表すフローチャートである。
【図6】ドットマトリクスフォント文字の各残余イメージのドット位置のビットシーケンスを形成するために、ドットマトリクス中のドット位置の数字を選択する方法を表したものである。
【図7】残余イメージパターンを分類して複数のグループにするために、ドット位置のビットシーケンスを用いてドットマトリクスフォント文字の各残余イメージに対するコード語を生成する方法を示すものである。
【図8】ヒストグラムを用いて、残余イメージパターンを分類して複数のグループに分ける方法を示すものである。
【図9】圧縮されたドットマトリクスフォント文字のサンプルデータフォーマットを表したものである。
【図10】図9のデータフォーマットに従った、図2(A)のドットマトリクスフォント文字の圧縮データを表すサンプルビット列を示すものである。
【図11】横型ハフマンテーブル、縦型ハフマンテーブル及び残余ハフマンテーブルからの読み出しデータの例であり、これは、それぞれ図2(B)〜(D)の横型イメージ、縦型イメージ及び残余イメージに対応している。
【図12】本発明の実施例による、圧縮ドットマトリクスフォントデータを解凍して元のドットマトリクスフォントデータに戻す方法を表すフローチャートである。
【図13】本発明の方法及びシステムの様々な態様を実行するのに適したコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0018】
図1(C)は、本発明の様々な圧縮/解凍の方法及びシステムが実行可能な、一般的なコンピュータシステムを示している。出力機器2a(たとえばディスプレイ)、入力機器2b(たとえばキーボード、マウス)及び適当なドライブ機構2c(たとえば、DVD/CD−ROMドライブ、USBフラッシュメモリドライブ等)を含む汎用コンピュータ1aは、本発明の様々な方法を完全に実行するか、若しくは様々なシステムを協働させることができる。ネットワークやメインフレームベースのシステムのような他のタイプのコンピュータシステムも使用可能であることは、当業者に自明である。一般に、コンピュータ1aは、例えばドライブ機構2cを介して非圧縮のドットマトリクスフォントデータを受け取り、本発明の圧縮方法を、受け取ったデータに適用し、圧縮されたドットマトリクスフォントデータを生成する。コンピュータ1aは、たとえば、コンピュータ読み取り可能な記録媒体に格納された圧縮されたドットマトリクスフォントデータを出力する。また、コンピュータ1aは圧縮されたドットマトリクスフォントデータを受け取り、受け取ったデータに本発明に係る解凍方法を適用して、解凍された(オリジナルの)ドットマトリクスフォントデータを生成する。次に、コンピュータ1aは、例えば出力機器2aに表示するために、解凍されたドットマトリクスフォントデータを出力する。
【0019】
図3は、本発明の一実施形態による、ドットマトリクスフォントデータの圧縮方法のフローチャートを示したものである。ステップS41では、一組のドットマトリクスフォント文字を含むドットマトリクスフォントデータが(コンピュータに)受け入れられる。以下の説明において、13,108個の明朝体の16×16のドットマトリクス漢字フォント文字が、本発明の様々な実施例として使用される。しかしながら、本発明がアジアドットマトリクスフォント文字及び非アジアドットマトリクスフォント文字の両方を含む他のタイプのドットマトリクスフォント文字にも同様に適用可能であることはいうまでもない。
ステップS42において、図2(A)に示す文字28のようなドットマトリクスフォント文字は3つの要素に分割される。すなわち、一又はそれ以上の横型イメージパターン(又は横型ストローク)25を含む図2(B)の横型ストロークイメージ、一又はそれ以上の縦型イメージパターン(又は縦型ストローク)26を含む図2(C)の縦型ストロークイメージ、及び、たとえばドットマトリクスの複数の行にわたって形成される一又はそれ以上の残余イメージパターン27a〜27iを含む図2(D)の残余イメージである。図2(D)の残余イメージは、図2(A)のオリジナルのドットマトリクスフォント文字イメージから、図2(B)及び(C)の横型及び縦型のストロークイメージを除くことによって得られる。
【0020】
特に、例えば図2(B)は6個の横型ストロークを示しているが、これには4種類の横型イメージパターンが含まれている。なぜなら、3個の横型ストローク25は同じ横型イメージパターンであるからである。横型ストロークは1行の中の4以上の連続した(黒く塗られた)ドットとして認識されるが、「ストローク」として認識されるドット数の閾値は「4」に限られるものではなく、「3」でも「5以上」でも構わない。
図2(C)は3個の縦型ストロークを示しているが、これには2種類の縦型イメージパターンが含まれている。なぜなら、2個の縦型ストローク26は同じ縦型イメージパターンであるからである。縦型ストロークは1列の中の4以上の連続した(黒く塗られた)ドットとして認識されるが、「縦型ストローク」として認識されるドット数の閾値は「4」に限られるものではない。実験結果によれば、横型ストローク又は縦型ストロークとして認識するための連続した(黒く塗られた)ドット数の最小値が長くなればなるほど、認識される横型又は縦型イメージパターンの数は少なくなり、それに応じて残余イメージパターンの数が増える。圧縮効率を上げるためには、ハフマンツリーに含まれるイメージパターンの合計数は少なく保たれるべきであるので、横型又は縦型ストロークとして認識されるドット数の閾値をユーザーが選択的(又は実験的)に設定することにより、生成される横型/縦型イメージパターン及び/又は残余イメージパターンの数が多くなり過ぎないようにするための、図1(C)のコンピュータ1a上で使用されるユーザーインタフェースソフトウェアツールが提供される。
【0021】
本発明の一つの態様(aspect)によれば、ハフマンツリーが100個以下のイメージパターンしか含んでいなければ、データの効果的な圧縮を達成するには十分であるといえる。
図2(D)は、16×16のドットマトリクスの各行を構成する9種類の残余イメージパターン27a〜27iを表している。9個の残余イメージパターン27a〜27iはそれぞれ互いに異なっているが、最初の残余イメージパターン27a(1行がすべて空白の16個のドットで構成されている。)は8つの異なった行において繰り返し現れる。
図2(B)〜(D)のイメージを結合あるいは重ね合わせることによって、図2(A)の元のドットマトリクスフォント文字ができる。ステップS42は一組の中の各ドットマトリクスフォント文字に対して実行され、全体として3つのイメージパターンの組ができる。すなわち、横型イメージパターンの組、縦型イメージパターンの組及び残余イメージパターンの組である。上述の例では、2k×2kのマトリクス中の各行を構成するように残余イメージパターンが取られる。あるいは、2k×2kのマトリクス中の各列を構成するように残余イメージパターンが取られる。またさらに、残余パターンは同じサイズのk×kのマトリクス(全部で4個の残余イメージパターン)が構成されるようにしてもよいし、k/2×k/2のマトリクス(全部で16個の残余イメージパターン)でもよい。
【0022】
ステップS43において、ハフマン符号化は横型イメージパターンに対して適用され、横型イメージパターンに対する圧縮された横型符号が生成される。特に、ハフマン符号化が横型イメージパターンに適用されるときは、まず初めに一組の中の各横型イメージパターンの出現確率が計算される。次に、横型イメージパターンは出現確率が高い順から順に並べ替えられる。次に、出現確率の低い方から高い方に向かって、二つの隣接する横型イメージパターンが合体されて新たなノードになり、出現確率に従って並べ替えるステップが、すべての横型イメージパターンが合体されて単一のノードになるまで繰り返される。その結果、横型ハフマンツリーができる。次に、ツリーの経路(パス)がルート(根)からリーフ(葉)の方向にトレースされ、高い出現確率を有する横型イメージパターンには短いビット長の符号が割り当てられ、低い出現確率を有する横型イメージパターンには長いビット長の符号が割り当てられる。生成された圧縮横型符号と、その符号が表す対応する横型イメージパターンは、横型ハフマンテーブルに記録される(図11参照)。
【0023】
図4(A)は、一組の中の横型イメージパターンの正規分布曲線の形を表す三角形48を示している。示された例では、その組には全部で295個の横型イメージパターンが含まれており、その出現確率は、鋭角三角形48で表されるようなほぼ理想的な正規分布曲線に従って分布している。図3に戻ると、ステップS44では、ハフマン符号化法は縦型イメージパターンにも適用され、縦型イメージパターンに対する圧縮された縦型符号が生成される。特に、ハフマン符号化が縦型イメージパターンに適用されるときは、まず初めに一組の中の各縦型イメージパターンの出現確率が計算される。次に、縦型イメージパターンは出現確率が高い順から順に並べ替えられる。次に、出現確率の低い方から高い方に向かって、二つの隣接する縦型イメージパターンが合体されて新たなノードになり、出現確率に従って並べ替えるステップが、すべての縦型イメージパターンが合体されて単一のノードになるまで繰り返される。その結果、縦型ハフマンツリーができる。次に、ツリーの経路(パス)がルート(根)からリーフ(葉)の方向にトレースされ、高い出現確率を有する縦型イメージパターンには短いビット長の符号が割り当てられ、低い出現確率を有する縦型イメージパターンには長いビット長の符号が割り当てられる。生成された圧縮縦型符号と、その符号が表す対応する縦型イメージパターンは、縦型ハフマンテーブルに記録される。
【0024】
図4(B)は、一組の中の縦型イメージパターンの正規分布曲線の形を表す三角形49を示している。示された例では、その組には全部で277個の縦型イメージパターンが含まれており、その出現確率は、鋭角三角形49で表されるようなほぼ理想的な正規分布曲線に従って分布している。図3に戻って、ステップS45では、ハフマン符号化法は残余イメージパターンにも適用され、残余イメージパターンに対する圧縮された残余符号が生成される。
【0025】
図4(C)は、一組の中の残余イメージパターンの正規分布曲線の形を表す三角形50を表している。図示した例では、トータルで5718個の残余イメージパターンが含まれており、その出現確率の分布は図4(A)及び図4(B)の三角形48及び49と比較すると、かなりフラットである。このフラットな形状は、ほとんどの残余イメージパターンが似たような出現確率を有しており、従って、圧縮結果もかなり劣ることを意味している。好ましくは、ハフマンツリーに含まれている残余イメージパターンのトータル数は、その正規分布が鋭角三角形になるように、すなわち、その出現確率が、中心軸の周りに集中している高確率のイメージパターンと、分布曲線の両端に向かって現れる低確率のイメージパターンとの間で著しく異なるようなやり方で減らすべきである。
【0026】
従って、本発明の一つの態様(aspect)によれば、図3のステップS45aにおいて、残余イメージパターンは複数のグループに区分けされ、ステップS45bでは、ハフマン符号化法が残余イメージパターンの各グループに対して個々に適用され、複数のグループに対してそれぞれ残余ハフマンテーブルが生成される。このように、複数の残余ハフマンツリーのそれぞれに組み込まれる残余イメージパターンの数は論理的に少なくなり、それゆえ、複数の残余ハフマンツリーのそれぞれに対する正規分布形状は理想的な釣鐘状になる。本発明の様々な実施形態によれば、残余イメージパターンは区分けされて多くのグループに分けられ、一つの文字を形成する残余イメージパターンが確実に同じグループになるようにして、その結果、同じ文字を形成するすべての残余イメージパターンに対する圧縮残余符号が単一の残余ハフマンツリーに含まれるようになる。
【0027】
本発明の別の実施形態によれば、各グループのサイズ、すなわち、各グループに分類された残余イメージパターンの数は、全く同数か実質的に同数であり、その結果、複数の残余ハフマンツリーは実質的に同じ性能を有する。
【0028】
図5は、本発明の一つの実施形態による、一組の中の残余イメージパターンを分類して複数のグループに分ける方法のフローチャートを表したものである。ステップS51では、2k×2kのドットマトリクスの中のドット位置(dot locations)の数sを選択する。たとえば、16×16のドットマトリクスにおいて、s=20とする。図6(A)及び図6(B)を参照すると、一例として、16×16のドットマトリクス中に20個のドット位置58(図では“×”で表示されている。)が選択される。図6(A)の例では、ドットマトリクス56がまず5つのエリア(1)〜(5)に分割される。次に、図6(B)に示すように、5つの各エリアの中に4個のドット位置を選択する(合計20個のドット位置ができる。)。
図6(C)及び図6(D)は、16×16のドットマトリクス56の中に20個のドット位置58を選択する他の例を示したものである。この例では、ドットマトリクス56がまず4つのエリア(1)〜(4)に分割される。次に、図6(D)に示すように、4つの各エリアの中に5個のドット位置を選択する(合計20個のドット位置ができる。)。選択されたドット位置は順序付けられて(in a sequence)配列される。
【0029】
次に、図2(D)に示すように、一つの文字全体の各残余イメージについて、一連の選択されたドット位置のどれが残余イメージによって占有されているかを表すドット位置ビットシーケンスが形成される。すなわち、残余イメージが順序付けられた20個のドット位置を占有しているか、あるいは一致しているかを判定する。つまり、残余イメージがドット位置を占有していれば、そのビットを“1”とし、占有していなければ、そのビットを“0”とする。図7は、ドットマトリクス56から選択された20のドット位置の占有/非占有状態を示すドット位置ビットシーケンスの例を示したものである。このドット位置ビットシーケンスの例は「11000101111100000011」であるが、これはドットマトリクスから選択された20のドット位置のうちの10のドット位置が残余イメージによって占有されていることを意味している。すなわち、ビット列のうちの1番目、2番目、6番目、8番目〜12番目、19番目及び20番目のドット位置が占有されているということである。さらに図7を参照すると、ドット位置ビットシーケンスは、16進法によるコード語として表現できることが分かる。すなわち、この例では「C9F03」となる。特に、ドット位置ビットシーケンスの20のビットは、4個ずつのビットからなる5つのグループに分けられ、二進法の4ビットは16進数(0〜F)に変換され、それらが合わせられて5つの記号から成るコード語が形成される。16進表記のコード語を使用することは単なる表現上の目的であり、ドット位置ビットシーケンスがコード語として使用され、あるいは、ドット位置ビットシーケンスがコード語生成のために他の表記/形式に変換され得ることは、当業者にとって自明のことである。いずれにしても、コード語は、1又はそれ以上の残余イメージパターンから成る一つの残余イメージを表示するために、ドット位置ビットシーケンスに基づいて生成される。
【0030】
各残余イメージ全体について一つのコード語が生成されるので、ドットマトリクスフォント文字の一つの残余イメージを形成するすべての残余イメージパターンには同じコード語が割り当てられる。従って、ステップS53における実施例では、同じドットマトリクスフォント文字に属する残余イメージパターンは、同じコード語に基づいて、同じグループになるように維持される。また、類似のコード語を持つ残余イメージどうしは、類似したトポグラフィーを共有しているものと思われ、従って、その中に含まれる類似の残余イメージパターンも共有していると思われる。
【0031】
ステップS55では、図8(A)を参照すると、横軸が残余イメージパターンのコード語を表し、縦軸が、複数のコード語のそれぞれに対して同じコード語を持つ残余イメージパターンの数を表すヒストグラムが形成されている。
ステップS57では、ヒストグラム上で、残余イメージパターンを2n個(nは自然数)のグループに一様に分類するための最高の量子化が実行される。再び図8(A)及び(B)を参照すると、図8(A)のヒストグラムは、まず、直線(1)に沿って二つのグループに分割され、次に、二つのグループのそれぞれが直線(2)に沿って分割され、合計4つのグループになる。そして、4つのグループのそれぞれが直線(3)に沿ってさらに分割され、合計8つのグループに分けられる。すなわち、図8(B)のバイナリツリーのトップからボトムまでの順序に従って、ヒストグラムのエリアは二つの等しいサブエリアに分割される。
【0032】
ステップS59において、同じサブエリアに分類される残余イメージパターンは一つのグループにまとめられる。従って、ドットマトリクスフォント文字セット中の残余イメージパターンは、多くの(2n個の)グループに分類され、各グループは同一、若しくは実質的に同一な数(かなり少ない)の残余イメージパターンを含んでいる。
【0033】
図3に戻ると、ステップS45bでは、ハフマン符号化は多くの残余イメージパターンのグループごとに適用され、それぞれのグループに対して残余ハフマンテーブルが得られる。特に、ハフマン符号化の残余イメージパターンへの適用は、一つのグループ内の各残余イメージパターンの出現確率をまず求めることから始められる。次に、残余イメージパターンは出現確率の高い方から低い方へ順に並べ替えられる。その後、低い方から高い方へ、二つの隣り合う残余イメージパターンが合体されて新たなノードとなり、出現確率に従って並べ替えるステップが、すべての残余イメージパターンが合体されて単一のルート(根)になるまで繰り返され、残余ハフマンツリーが生成される。そして、高い出現確率を持つ残余イメージパターンに対しては短いビット長の符号が割り当てられ、低い出現確率を持つ残余イメージパターンに対しては長いビット長の符号が割り当てられながら、ツリーのパス(経路)が根(ルート)から葉(リーフ)へとトレースされる。
生成された圧縮残余符号と、その符号が表す(対応する)残余イメージパターンが、そのグループに対する残余ハフマンテーブルの中に格納される(図11参照)。同じプロセスが残余イメージパターンの複数の(2n個の)グループのそれぞれに対して繰り返され、グループ中の対応する残余イメージパターンに対する圧縮残余符号をそれぞれ定義する複数の(2n個の)残余ハフマンテーブルが得られる。2n個の残余ハフマンテーブルが生成されるとき、各残余ハフマンテーブルは1から2nまでの値の範囲のテーブルIDコードによって識別されることに注意されたい。
【0034】
図3を参照すると、最後にステップS46において、生成された様々なハフマンテーブル(横型ハフマンテーブル、縦型ハフマンテーブル、1又はそれ以上(2n)の残余ハフマンテーブルを含む。)は、圧縮されたドットマトリクスフォント文字を定義するのに使用される。
横型、縦型及び残余のハフマンテーブルを生成する、図3のステップS43、44及び45を実行する順序は、上述の例には限定されず、他の順序でもよいし、また、同時でもよいことは当業者に自明なことである。
【0035】
また、上述の実施例では一つの横型ハフマンテーブルと、一つの縦型ハフマンテーブルが生成されているが、本発明はこれに限られたものではなく、例えば、一つの文字セット中の横型及び/又は縦型イメージパターンの数があまりに多くなるときは、2又はそれ以上の横型及び/又は縦型のハフマンテーブルを生成しても構わない。
【0036】
本発明の様々な実施形態によれば、ドットマトリクスフォント文字の圧縮された形式は図9のようなデータフォーマットを有している。すなわち、図10に示すようなビット列で表される。示した例では、図10のビット列は、図2(A)のドットマトリクスフォント文字28の圧縮された形である。
【0037】
図9は本発明の様々な実施形態による圧縮されたドットマトリクスフォント文字のデータフォーマットを示している。参照符号71は圧縮された横型イメージを指しており、ドットマトリクスフォント文字中の横型イメージパターンの縦方向の位置を特定する縦位置符号71aと、それに続いて、その文字に含まれる横型イメージパターンを表す1又はそれ以上の圧縮された横型符号71−1,・・・,71−xを含んでいる。さらに、図10を参照すると、それは図2(A)の文字28に対する圧縮されたビット列のサンプルを示したものであるが、圧縮された横型イメージ71は縦位置符号71a(0100101010100100)を含んでいる。ここに、ビット“1”は、その縦位置に横型イメージパターンが存在していることを示し、ビット“0”は、その縦位置に横型イメージパターンが存在しないことを示している。従って、この特別の縦位置符号71aは、その文字が、図2(B)に示すように、ドットマトリクスの上から第2、5、7、9、11及び14行目に横型イメージパターン(横型ストローク)を含んでいることを示している。すなわち、この文字を構成する横型イメージパターンは6個あるということである。6個の圧縮横型符号71−1〜71−6はそれぞれ、これら6個の横型イメージパターンを表している。特に、図11を参照すると、図示された例では、第1の圧縮横型符号71−1は「001010」、第2の圧縮横型符号71−2は「110100」、第3から第5までの圧縮横型符号71−3〜71−5は、すべて同じ「11010110」(図2(B)に3度現れる同じ横型ストローク25に対応)であり、第6の圧縮横型符号71−6は「000010」である。ハフマン符号化法においては、どの圧縮符号も他の圧縮符号の接頭語(符号の最初の部分)になることはないため、これらの6個の圧縮横型符号は出現した順に、すなわち、図10に示すように、ドットマトリクスの第2行から第14行まで連続して配列しても問題がない。次に、解凍するときは、まず横型イメージパターンの縦位置が縦位置符号71aによって特定される。
【0038】
次に、横型ハフマンテーブル(図11参照)が参照されて6つの圧縮横型符号71−1〜71−6が読み出され、読み出された横型圧縮符号71−1〜71−6にそれぞれ対応する6つの横型イメージパターンが復元されて、指定された6つの縦位置に配置される。
本発明に係る解凍方法を、図12を参照しつつ以下に詳細に説明する。
【0039】
さらに図9を参照すると、参照符号73は圧縮された縦型イメージを指しており、ドットマトリクスフォント文字中の縦型イメージパターンの水平方向の位置を特定する横位置符号73aと、それに続いて、その文字に含まれる縦型イメージパターンを表す1又はそれ以上の圧縮された縦型符号73−1,・・・,73−yを含んでいる。さらに、図10を参照すると、圧縮された縦型イメージ73は横位置符号73a(0100000010000100)を含んでいるが、これはこの文字が図2(C)に示すように、ドットマトリクスの左から第2、9及び14列目に縦型イメージパターン(縦型ストローク)を含んでいることを示している。すなわち、この文字を構成する縦型イメージパターンは3個あるということである。3個の圧縮縦型符号73−1〜73−3はそれぞれ、これら3個の縦型イメージパターンを表している。特に、図11を参照すると、図示された例では、第1の圧縮縦型符号73−1は「0101」、第2の圧縮縦型符号73−2は「1011011」、第3の圧縮縦型符号73−3は、「0101」であり、第1の圧縮縦型符号73−1と同じである(図2(C)において同じ縦型ストローク26が2回出現していることに対応している。)。これらの3個の圧縮縦型符号は出現した順に、すなわち、図10に示すように、ドットマトリクスの第2列から第14列まで連続して配列してもよい。次に、解凍するときは、まず縦型イメージパターンの横位置が横位置符号73aによって特定される。
【0040】
次に、縦型ハフマンテーブル(図11参照)が参照されて3つの圧縮縦型符号73−1〜73−3が読み出され、読み出された縦型圧縮符号73−1〜73−3にそれぞれ対応する3つの縦型イメージパターンが復元されて、指定された3つの横位置に配置される。
上述の図示した例では、縦位置符号71aと横位置符号73aの長さは、16×16ドットマトリクスのサイズに応じて2バイト(16ビット)である。もちろん、縦位置符号71aと横位置符号73aの長さはこれに限定されるものではなく、各アプリケーションにおいて使用されるドットマトリクスのサイズに合わせて変更してもよい。
さらに、図9を参照すると、参照符号75は圧縮された残余イメージを指しており、ドットマトリクスフォント文字中の残余イメージパターンを定義する残余ハフマンテーブルを指定する残余ハフマンテーブルIDコード75aと、それに続いて、その文字に含まれる残余イメージパターンを表す1又はそれ以上の圧縮された残余符号75−1,・・・,75−zを含んでいる。さらに、図10を参照すると、圧縮された残余イメージ75は、nビットの残余ハフマンテーブルIDコード75a「001010100111」を含んでいる。上述の通り、本発明の様々な実施形態によれば、残余イメージパターンは2n個のグループに分類される。従って、残余ハフマンテーブルIDコード75aは、2n個の残余ハフマンテーブルのそれぞれを識別するためにnビットで構成されている。
【0041】
さらに、図11を参照すると、圧縮された残余イメージ75は、残余ハフマンテーブルIDコード75aに加えて、16個の圧縮残余符号75−1〜75−16を含んでいる。
すなわち、これらは、(1)00, (2)00, (3)10101, (4)111100, (5)00, (6)00, (7)11111, (8)010010, (9)10110, (10)110001, (11)110011, (12)011011, (13)00, (14)00, (15)00, (16)00である。これらの圧縮残余符号は、それぞれ対応する残余イメージパターンを表している。圧縮残余符号“00”が、図2(D)の残余イメージの中の8つの空白の行(例:27a)に対応して、8回出現していることに注意されたい。
これらの16個の圧縮残余符号75−1〜75−16は、残余ハフマンテーブルIDコード75aによって特定される残余ハフマンテーブルの中に含まれる。これは一つの文字に属する残余イメージパターンは同じグループに分類され、そのグループに対して一つの残余ハフマンテーブルが作られるからである。圧縮横型符号や縦型符号と同様に、これらの16個の圧縮残余符号は、図10に示すように、出現した順に、すなわち、例えば図2(D)の16×16のドットマトリクスの第1行から16行までのように、連続して配列してもよい。換言すれば、これらの16個の圧縮残余符号は、図2(D)に示すように、ドットマトリクスの一番上の行から一番下までの行に現れる16個の残余イメージパターンに対応するものである。
【0042】
次に、解凍するときは、まず、参照されるべき残余ハフマンテーブルが、残余ハフマンテーブルIDコード75aによって特定される。次に、特定された残余ハフマンテーブル(図11参照)が参照されて圧縮残余符号(たとえば、16×16のドットマトリクスの場合における16個の圧縮残余符号)が順番に読み出され、読み出された圧縮残余符号にそれぞれ対応する残余イメージパターンが復元されて、ドットマトリクスの中に順に配置される。
図2(A)のドットマトリクスフォント文字28の圧縮形である図10の圧縮ビット列に含まれるトータルのビット数は、20.25バイトである。オリジナルのドットマトリクスフォント文字28に必要とされるビット数は、16×16で32バイト(256ビット)となるので、この例における圧縮比は、1:0.6328となる。
【0043】
図12は、本発明の一つの実施形態に係る、圧縮されたドットマトリクスフォントデータを解凍してオリジナルのドットマトリクスフォントデータに戻す方法を表したフローチャートである。一般に、解凍のプロセス(手順)は、圧縮のプロセスの逆になる。ステップS81において、圧縮されたドットマトリクスフォント文字は、例えば、図10に示すようなビット列の形で(システムに)受け入れられる。ステップS82において、その文字に含まれるすべての横型イメージパターンの縦位置が、縦位置符号71aに基づいて決定される。ステップS83において、圧縮横型符号71−1〜71−xに対応する横型イメージパターンが横型ハフマンテーブルを参照して復元され、所定の縦位置に配置される(図2(B)参照)。同様に、ステップS84において、その文字に含まれるすべての縦型イメージパターンの水平位置が、横位置符号73aに基づいて決定される。ステップS85において、圧縮縦型符号73−1〜73−yに対応する縦型イメージパターンが、縦型ハフマンテーブルを参照して復元され、指定された横位置に配置される(図2(C)参照)。ステップS86では、参照されるべき残余ハフマンテーブルが残余ハフマンテーブルIDコード75aに基づいて特定される。ステップS87において、圧縮された残余符号75−1〜75−zに対応する残余イメージパターンが、特定された残余ハフマンテーブルを参照して復元され、順にドットマトリクス中に配置される(図2(D)参照)。最後に、ステップS88において、復元された横型イメージパターン、縦型イメージパターン及び残余イメージパターンが組み合わされてオリジナルのドットマトリクスフォント文字になる(図2(A)参照)。
【0044】
図13は、本発明に係るドットマトリクスフォントの圧縮及び/又は解凍のための様々な方法の実行又はそのためのシステムを実現するのに適したシステムのブロック図である。システム1aは、図1(C)に示すような汎用コンピュータであって、プロセッサ3a、I/Oインタフェース4a、出力機器2a(例えば、ディスプレイ)、入力機器2b(例えば、キーボード、マウス等)、I/Oインタフェース4aと通信する他の機器2d、及び記憶装置90を含み、それらはすべてバスラインを介して互いに接続されている。
入力/出力(I/O)インタフェース4aは、無線又は有線でネットワーク上にある他の機器2dと通信を行うために使用され、オリジナルの(非圧縮の)又は圧縮されたドットマトリクスフォントデータを他の機器から受信したり、又は、圧縮若しくは解凍したドットマトリクスフォントデータを他の機器に転送/伝送を行ったりするものである。
I/Oインタフェース4aは、コネクタ等の回路素子を含み、必要なプロトコルを用いて使用するように構成されている。I/Oインタフェース4aはさらに、プロセッサ3aを入力機器2bと出力機器2aとに接続している。
【0045】
記憶装置90は、一般には、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)及び不揮発性の大容量記憶デバイスを含んでいる。図示した実施例では、記憶装置90は、オペレーティングシステム(OS)91、圧縮モジュール93、ハフマンテーブル95及び解凍モジュール97を具備している。これらの各要素は、特定の機能を実行するためのハードウェア及びソフトウェアの集合/組み合わせから成り立っている。特に、圧縮モジュール93は、プロセッサ3aと協働して、上述の本発明の様々な実施形態に従ってドットマトリクスフォント文字を圧縮するように作られている。同様に、解凍モジュール97は、プロセッサ3aと協働して、上述の本発明の様々な実施形態に従って圧縮ドットマトリクスフォント文字を解凍するように作られている。圧縮モジュール93によって生成されたハフマンテーブル95は、解凍モジュール97による使用のために記憶装置90に格納されているか、又は、本発明に従って圧縮されたドットマトリクスフォントデータを解凍するのに使用するために他の機器に伝送/転送してもよい。特に、圧縮モジュール93は、ドットマトリクスデータの圧縮後、圧縮されたドットマトリクスフォントデータを、生成したハフマンテーブル95及び圧縮されたドットマトリクスフォントデータを解凍するためのコンピュータ実行可能命令とをパッケージにしてコンピュータ読み取り可能なファイルにする。このパッケージファイルは、次に、I/Oインタフェース4aを介して他の機器に伝送/転送される。
【0046】
本発明のシステムの構成は図13に示したものには限られず、他の異なる構成でも実施可能であることは当業者に自明であろう。例えば、システム1aの様々な要素(又はコンポーネント)によって実行される機能のいくつかは、単一の要素によって実行できるように組み合わせてもよいし、単一の要素によって実行される機能またはルーチンを、複数の要素によって実行できるように分割してもよい。
【0047】
上述の通り、圧縮モジュール93によって生成された一組の圧縮ドットマトリクスフォント文字はコンピュータ読み取り可能なファイルとして保存されるが、それはコンピュータ読み取り可能な有形の媒体に格納してもよいし、コンピュータ読み取り可能な無形の媒体を介して伝送してもよい。もし、ファイルの受け手が、圧縮されたドットマトリクスフォント文字を解凍するために必要なハフマンテーブルを持っているか、それを使用することができるならば、そのファイルの中に様々なハフマンテーブルを含んでいる必要はない。
一方、もし、受け手が必要なハフマンテーブルを使用できない場合は、そのファイルはこれらのハフマンテーブルを含んでいるべきである。同様に、もしファイルの受け手が解凍のために必要なコンピュータプログラムを使用することができなければ、そのファイルは、解凍のためのコンピュータ実行可能な命令を含むコンピュータプログラムをさらに含んでいなければならない。
【0048】
一組のドットマトリクスフォント文字を圧縮する方法は、上述のように、全自動で行われるが、その一方で、アプリケーションによってはいくらかの人手の介在があっても構わない。例えば、前述の通り、横型又は縦型のストロークであると認識するための連続したアクティブ(黒く塗られた)ドットの数の閾値を調整するには、人手によることが望ましいことがある。特に、横型/縦型イメージパターン及び/又は残余イメージパターンの数が多くなりすぎないように、コンピュータ1aの入力機器2b及び出力機器2aを用いて、ユーザーが横型又は縦型のストロークであると認識するための連続したアクティブドットの数の閾値の設定を実験的に確かめるということがある。この目的のためのユーザーインタフェースソフトウェアツールは、記憶装置90の中にある圧縮モジュール93の中に含めるようにしてもよい。
【0049】
上述の様々な実施形態はさらに別の実施形態を提供するために組み合わせることが可能である。上述の詳細な説明に照らせば、実施形態に対してこれらの変更を加えることは可能である。一般に、請求項において用いられている用語は、権利範囲を明細書の詳細な説明に開示された特定の実施例に限定するものに解釈されるべきではなく、請求項の権利範囲に含まれるすべての均等物をも含むように解釈されるべきである。従って、請求項の内容は開示された実施例には限定されない。
【特許請求の範囲】
【請求項1】
ドットマトリクスで表現されるドットマトリクスフォント文字のセットを含むドットマトリクスフォントデータを圧縮するための、コンピュータによって実行される方法であって、以下の(a)〜(e)のステップを含むことを特徴とするコンピュータによるドットマトリクスフォントデータの圧縮方法。
(a)前記各ドットマトリクスフォント文字を、横型イメージパターンを含む横型イメージ、縦型イメージパターンを含む縦型イメージ及び残余イメージパターンを含む残余イメージに分割するステップ;
(b)前記セット中の前記横型イメージパターンに対してハフマン符号化を適用して前記横型イメージパターンに対する圧縮横型符号を生成するステップ;
(c)前記セット中の前記縦型イメージパターンに対してハフマン符号化を適用して前記縦型イメージパターンに対する圧縮縦型符号を生成するステップ;
(d)前記セット中の前記残余イメージパターンに対してハフマン符号化を適用して前記残余イメージパターンに対する圧縮残余符号を生成するステップ;
(e)各文字について、前記圧縮横型符号、前記圧縮縦型符号、前記圧縮残余符号を選択的に結合し、前記ドットマトリクスフォント文字の圧縮された形を表すビット列を生成するステップ:
【請求項2】
前記ビット列を生成する前記ステップ(e)が、さらに、
一つの前記ドットマトリクスフォント文字中の前記横型イメージパターンに対して、ドットマトリクス中の前記横型イメージパターンの縦位置を特定する縦位置符号を生成し、該縦位置符号と前記文字中の横型イメージパターンに対する前記圧縮横型符号とを結合するステップと、
一つの前記ドットマトリクスフォント文字中の前記縦型イメージパターンに対して、ドットマトリクス中の前記縦型イメージパターンの水平位置を特定する横位置符号を生成し、該横位置符号と前記文字中の縦型イメージパターンに対する前記圧縮縦型符号とを結合するステップと、
一つの前記ドットマトリクスフォント文字中の前記残余イメージパターンに対して、前記ドットマトリクスフォント文字中の前記残余イメージパターンに対する圧縮残余符号を定義する残余ハフマンテーブルを特定するテーブルIDコードを生成し、前記テーブルIDコードと前記残余イメージパターンに対する前記圧縮残余符号とを結合するステップと、
を含むことを特徴とする請求項1に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項3】
前記セット中の前記残余イメージパターンに対して前記ハフマン符号化を適用する前記ステップ(d)が、さらに以下の(d1)及び(d2)のステップを含むことを特徴とする請求項1に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
(d1)一つのドットマトリクスフォント文字の残余イメージを構成する残余イメージパターンが確実に同じグループに入るように維持しつつ、該グループの各々が同様の数の残余イメージパターンを含むように前記セット中の前記残余イメージパターンを複数のグループに分類するステップ;
(d2)前記残余イメージパターンの各グループに対して前記ハフマン符号化法を適用して前記グループに対する前記圧縮残余符号を生成し、前記複数のグループに対する前記圧縮残余符号を定義する複数の残余ハフマンテーブルをそれぞれ生成するステップ:
【請求項4】
前記セット中の前記残余イメージパターンを複数のグループに分類するステップ(d1)が、以下の(d11)及び(d12)のステップを含むことを特徴とする請求項3に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
(d11)一つのドットマトリクスフォント文字の一つの残余イメージを構成する前記残余イメージパターンをコード語によって表し、複数の残余イメージを表す複数のコード語をそれぞれ生成するステップ;
(d12)前記コード語に基づいて、前記セット中の前記残余イメージパターンを複数のグループに分類するステップ:
【請求項5】
一つのドットマトリクスフォント文字の一つの残余イメージを構成する前記残余イメージパターンをコード語によって表す前記ステップ(d11)が、
前記ドットマトリクス中のドット位置の番号を選択するステップと、
ドットマトリクスフォント文字の一つの残余イメージを構成する前記残余イメージパターンに対して、前記ドットマトリクスの選択されたドット位置のどれが前記残余イメージによって占有されているかを表すドット位置ビットシーケンスを生成するステップと、
前記ドット位置ビットシーケンスに基づいてコード語を生成するステップと、
を含むことを特徴とする請求項4に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項6】
前記コード語に基づいて、前記セット中の前記残余イメージパターンを複数のグループに分類する前記ステップ(d12)が、
前記コード語を表す第1の軸と、前記コード語ごとの残余イメージパターンの個数を表す第2の軸によってヒストグラムを形成するステップと、
前記ヒストグラムの量子化を行い、前記残余イメージパターンを複数の同じサイズのグループに分類するステップと、
を含むことを特徴とする請求項4に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項7】
前記複数のグループの各々に含まれている前記残余イメージパターンの個数が同じである請求項3に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項8】
前記複数のグループの各々に含まれている前記残余イメージパターンの個数が100個より少ないことを特徴とする請求項3に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項9】
前記残余イメージパターンが分類されたグループの数が2n(nは正の整数)である請求項3に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項10】
前記圧縮横型符号、前記圧縮縦型符号、前記圧縮残余符号を選択的に結合し、前記ドットマトリクスフォント文字の圧縮された形を表すビット列を生成する前記ステップ(e)が、
一つの前記ドットマトリクスフォント文字中の前記横型イメージパターンに対して、ドットマトリクス中の前記横型イメージパターンの縦位置を特定する縦位置符号を生成し、該縦位置符号と前記文字中の横型イメージパターンに対する前記圧縮横型符号とを結合するステップと、
一つの前記ドットマトリクスフォント文字中の前記縦型イメージパターンに対して、ドットマトリクス中の前記縦型イメージパターンの水平位置を特定する横位置符号を生成し、該横位置符号と前記文字中の縦型イメージパターンに対する前記圧縮縦型符号とを結合するステップと、
一つの前記ドットマトリクスフォント文字中の前記残余イメージパターンに対して、前記ドットマトリクスフォント文字中の前記残余イメージパターンに対する圧縮残余符号を定義する残余ハフマンテーブルを特定するテーブルIDコードを生成し、前記テーブルIDコードと前記残余イメージパターンに対する前記圧縮残余符号とを結合するステップと、
を含むことを特徴とする請求項3に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項11】
一組のドットマトリクスフォント文字を含むドットマトリクスフォントデータの圧縮/解凍システムであって、該システムは、
解凍されるべき一組の圧縮ドットマトリクスフォント文字を受け入れるための記憶装置と、
前記記憶装置に接続されたプロセッサとを備えるとともに、
前記プロセッサは、前記圧縮されたドットマトリクスフォント文字の各々について、以下の(a)〜(d)を実行する手段を備えていることを特徴とするドットマトリクスフォントデータの圧縮/解凍システム。
(a)横型イメージパターンの所定の縦位置と横型のハフマンテーブルに基づいて、前記横型イメージパターンを復元する手段;
(b)縦型イメージパターンの所定の水平位置と縦型のハフマンテーブルに基づいて、前記縦型イメージパターンを復元する手段;
(c)残余イメージパターンを定義する残余ハフマンテーブルのIDコードを決定し、決定された前記残余ハフマンテーブルに基づいて前記残余イメージパターンを復元する手段;
(d)前記復元された横型イメージパターン、縦型イメージパターン及び残余イメージパターンを結合する手段:
【請求項12】
前記記憶装置が圧縮される一組の非圧縮ドットマトリクスフォント文字を受け入れ、
前記プロセッサが前記非圧縮ドットマトリクスフォント文字の各々に対して、以下の(e)〜(i)を実行する手段をさらに備えていることを特徴とする請求項11に記載のドットマトリクスフォントデータの圧縮/解凍システム。
(e)前記の各非圧縮ドットマトリクスフォント文字を横型イメージパターンを含む横型イメージ、縦型イメージパターンを含む縦型イメージ及び残余イメージパターンを含む残余イメージに分割する手段;
(f)前記横型イメージパターンに対する圧縮横型符号を生成するために前記横型イメージパターンに対してハフマン符号化を適用する手段;
(g)前記縦型イメージパターンに対する圧縮縦型符号を生成するために前記縦型イメージパターンに対してハフマン符号化を適用する手段;
(h)前記残余イメージパターンに対する圧縮残余符号を生成するために前記残余イメージパターンに対してハフマン符号化を適用する手段;
(i)前記各ドットマトリクスフォント文字について、前記圧縮横型符号、前記圧縮縦型符号及び前記圧縮残余符号を選択的に結合し、前記ドットマトリクスフォント文字の圧縮された形を表すビット列を生成する手段:
【請求項13】
コンピュータに読み込まれたときに、一組の圧縮されたドットマトリクスフォント文字を含む圧縮ドットマトリクスフォントデータを解凍する以下の(a)〜(d)のステップを前記コンピュータに実行させるコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
(a)前記一組の圧縮されたドットマトリクスフォント文字を受け入れるステップ;
(b)横型ハフマンテーブル、縦型ハフマンテーブル及び1又はそれ以上の残余ハフマンテーブルを検索するステップ;
(c)検索されるべき前記横型ハフマンテーブル、前記縦型ハフマンテーブル及び前記残余ハフマンテーブルをサーチして、前記各文字の横型イメージパターン、縦型イメージパターン及び残余イメージパターンをそれぞれ取得するステップ;
(d)得られた各文字の前記横型イメージパターン、前記縦型イメージパターン及び前記残余イメージパターンを結合して、元のオリジナルの前記ドットマトリクスフォント文字を復元するステップ:
【請求項14】
前記横型ハフマンテーブル、前記縦型ハフマンテーブル及び1又はそれ以上の前記残余ハフマンテーブルを検索する前記ステップ(b)が、前記コンピュータの外部にある他の機器から前記横型ハフマンテーブル、前記縦型ハフマンテーブル及び1又はそれ以上の前記残余ハフマンテーブルを受信するものである、請求項13に記載のコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項15】
前記横型ハフマンテーブル、前記縦型ハフマンテーブル及び1又はそれ以上の前記残余ハフマンテーブルを検索する前記ステップ(b)が、前記コンピュータの内部にある記憶装置に格納されている前記横型ハフマンテーブル、前記縦型ハフマンテーブル及び1又はそれ以上の前記残余ハフマンテーブルを検索するものである、請求項13に記載のコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項16】
前記一組の圧縮されたドットマトリクスフォント文字を受け入れる前記ステップ(a)が、前記圧縮ドットマトリクスフォント文字をビット列の形で受け入れるものであり、該ビット列が、
前記ドットマトリクスフォント文字における前記横型イメージパターンの縦方向の位置を特定する縦位置符号と、
前記ドットマトリクスフォント文字の中の前記横型イメージパターンに対する圧縮横型符号と、
前記ドットマトリクスフォント文字における前記縦型イメージパターンの水平方向の位置を特定する横位置符号と、
前記ドットマトリクスフォント文字の中の前記縦型イメージパターンに対する圧縮縦型符号と、
前記ドットマトリクスフォント文字における前記残余イメージパターンに対する圧縮残余符号を定義する前記残余ハフマンテーブルを特定するテーブルIDコードと、
前記ドットマトリクスフォント文字の中の前記残余イメージパターンに対する前記圧縮残余符号とを含むとともに、
前記ステップ(b)が、前記テーブルIDコードによって特定される前記残余ハフマンテーブルを検索するものであり、
前記ステップ(d)が、前記縦位置符号によって特定される縦位置における前記得られた横型イメージパターン、前記横位置符号によって特定される横位置における前記得られた縦型イメージパターン及び前記テーブルIDコード特定される前記残余ハフマンテーブルに含まれる前記得られた残余イメージパターンを結合し、各文字に対して元のオリジナルのドットマトリクスフォント文字を復元することを特徴とする請求項13に記載のコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項17】
コンピュータに読み込まれたときに、圧縮ドットマトリクスフォントデータを解凍する処理を前記コンピュータに実行させるコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体であって、
前記命令は、ビット列によって表された一組の圧縮ドットマトリクスフォント文字を含み、
前記ビット列は、
ドットマトリクスフォント文字における横型イメージパターンの縦方向の位置を特定する縦位置符号と、
前記ドットマトリクスフォント文字の中の前記横型イメージパターンに対する圧縮横型符号と、
前記ドットマトリクスフォント文字における縦型イメージパターンの水平方向の位置を特定する横位置符号と、
前記ドットマトリクスフォント文字の中の前記縦型イメージパターンに対する圧縮縦型符号と、
前記ドットマトリクスフォント文字における残余イメージパターンに対する圧縮残余符号を定義する残余ハフマンテーブルを特定するテーブルIDコードと、
前記ドットマトリクスフォント文字の中の前記残余イメージパターンに対する前記圧縮残余符号と、を含むことを特徴とするコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項18】
前記命令が、さらに、
前記横型イメージパターンに対する前記圧縮横型符号を定義する横型ハフマンテーブルと、
前記縦型イメージパターンに対する前記圧縮縦型符号を定義する縦型ハフマンテーブルと、
前記残余イメージパターンに対する前記圧縮残余符号を定義する前記残余ハフマンテーブルと、を含むことを特徴とする請求項17に記載のコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項19】
前記命令が、さらに、
複数のグループに分類された前記残余イメージパターンに対する前記圧縮残余符号をそれぞれ定義する複数の前記残余ハフマンテーブルを含むことを特徴とする請求項18に記載のコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項1】
ドットマトリクスで表現されるドットマトリクスフォント文字のセットを含むドットマトリクスフォントデータを圧縮するための、コンピュータによって実行される方法であって、以下の(a)〜(e)のステップを含むことを特徴とするコンピュータによるドットマトリクスフォントデータの圧縮方法。
(a)前記各ドットマトリクスフォント文字を、横型イメージパターンを含む横型イメージ、縦型イメージパターンを含む縦型イメージ及び残余イメージパターンを含む残余イメージに分割するステップ;
(b)前記セット中の前記横型イメージパターンに対してハフマン符号化を適用して前記横型イメージパターンに対する圧縮横型符号を生成するステップ;
(c)前記セット中の前記縦型イメージパターンに対してハフマン符号化を適用して前記縦型イメージパターンに対する圧縮縦型符号を生成するステップ;
(d)前記セット中の前記残余イメージパターンに対してハフマン符号化を適用して前記残余イメージパターンに対する圧縮残余符号を生成するステップ;
(e)各文字について、前記圧縮横型符号、前記圧縮縦型符号、前記圧縮残余符号を選択的に結合し、前記ドットマトリクスフォント文字の圧縮された形を表すビット列を生成するステップ:
【請求項2】
前記ビット列を生成する前記ステップ(e)が、さらに、
一つの前記ドットマトリクスフォント文字中の前記横型イメージパターンに対して、ドットマトリクス中の前記横型イメージパターンの縦位置を特定する縦位置符号を生成し、該縦位置符号と前記文字中の横型イメージパターンに対する前記圧縮横型符号とを結合するステップと、
一つの前記ドットマトリクスフォント文字中の前記縦型イメージパターンに対して、ドットマトリクス中の前記縦型イメージパターンの水平位置を特定する横位置符号を生成し、該横位置符号と前記文字中の縦型イメージパターンに対する前記圧縮縦型符号とを結合するステップと、
一つの前記ドットマトリクスフォント文字中の前記残余イメージパターンに対して、前記ドットマトリクスフォント文字中の前記残余イメージパターンに対する圧縮残余符号を定義する残余ハフマンテーブルを特定するテーブルIDコードを生成し、前記テーブルIDコードと前記残余イメージパターンに対する前記圧縮残余符号とを結合するステップと、
を含むことを特徴とする請求項1に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項3】
前記セット中の前記残余イメージパターンに対して前記ハフマン符号化を適用する前記ステップ(d)が、さらに以下の(d1)及び(d2)のステップを含むことを特徴とする請求項1に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
(d1)一つのドットマトリクスフォント文字の残余イメージを構成する残余イメージパターンが確実に同じグループに入るように維持しつつ、該グループの各々が同様の数の残余イメージパターンを含むように前記セット中の前記残余イメージパターンを複数のグループに分類するステップ;
(d2)前記残余イメージパターンの各グループに対して前記ハフマン符号化法を適用して前記グループに対する前記圧縮残余符号を生成し、前記複数のグループに対する前記圧縮残余符号を定義する複数の残余ハフマンテーブルをそれぞれ生成するステップ:
【請求項4】
前記セット中の前記残余イメージパターンを複数のグループに分類するステップ(d1)が、以下の(d11)及び(d12)のステップを含むことを特徴とする請求項3に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
(d11)一つのドットマトリクスフォント文字の一つの残余イメージを構成する前記残余イメージパターンをコード語によって表し、複数の残余イメージを表す複数のコード語をそれぞれ生成するステップ;
(d12)前記コード語に基づいて、前記セット中の前記残余イメージパターンを複数のグループに分類するステップ:
【請求項5】
一つのドットマトリクスフォント文字の一つの残余イメージを構成する前記残余イメージパターンをコード語によって表す前記ステップ(d11)が、
前記ドットマトリクス中のドット位置の番号を選択するステップと、
ドットマトリクスフォント文字の一つの残余イメージを構成する前記残余イメージパターンに対して、前記ドットマトリクスの選択されたドット位置のどれが前記残余イメージによって占有されているかを表すドット位置ビットシーケンスを生成するステップと、
前記ドット位置ビットシーケンスに基づいてコード語を生成するステップと、
を含むことを特徴とする請求項4に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項6】
前記コード語に基づいて、前記セット中の前記残余イメージパターンを複数のグループに分類する前記ステップ(d12)が、
前記コード語を表す第1の軸と、前記コード語ごとの残余イメージパターンの個数を表す第2の軸によってヒストグラムを形成するステップと、
前記ヒストグラムの量子化を行い、前記残余イメージパターンを複数の同じサイズのグループに分類するステップと、
を含むことを特徴とする請求項4に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項7】
前記複数のグループの各々に含まれている前記残余イメージパターンの個数が同じである請求項3に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項8】
前記複数のグループの各々に含まれている前記残余イメージパターンの個数が100個より少ないことを特徴とする請求項3に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項9】
前記残余イメージパターンが分類されたグループの数が2n(nは正の整数)である請求項3に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項10】
前記圧縮横型符号、前記圧縮縦型符号、前記圧縮残余符号を選択的に結合し、前記ドットマトリクスフォント文字の圧縮された形を表すビット列を生成する前記ステップ(e)が、
一つの前記ドットマトリクスフォント文字中の前記横型イメージパターンに対して、ドットマトリクス中の前記横型イメージパターンの縦位置を特定する縦位置符号を生成し、該縦位置符号と前記文字中の横型イメージパターンに対する前記圧縮横型符号とを結合するステップと、
一つの前記ドットマトリクスフォント文字中の前記縦型イメージパターンに対して、ドットマトリクス中の前記縦型イメージパターンの水平位置を特定する横位置符号を生成し、該横位置符号と前記文字中の縦型イメージパターンに対する前記圧縮縦型符号とを結合するステップと、
一つの前記ドットマトリクスフォント文字中の前記残余イメージパターンに対して、前記ドットマトリクスフォント文字中の前記残余イメージパターンに対する圧縮残余符号を定義する残余ハフマンテーブルを特定するテーブルIDコードを生成し、前記テーブルIDコードと前記残余イメージパターンに対する前記圧縮残余符号とを結合するステップと、
を含むことを特徴とする請求項3に記載のコンピュータによるドットマトリクスフォントデータの圧縮方法。
【請求項11】
一組のドットマトリクスフォント文字を含むドットマトリクスフォントデータの圧縮/解凍システムであって、該システムは、
解凍されるべき一組の圧縮ドットマトリクスフォント文字を受け入れるための記憶装置と、
前記記憶装置に接続されたプロセッサとを備えるとともに、
前記プロセッサは、前記圧縮されたドットマトリクスフォント文字の各々について、以下の(a)〜(d)を実行する手段を備えていることを特徴とするドットマトリクスフォントデータの圧縮/解凍システム。
(a)横型イメージパターンの所定の縦位置と横型のハフマンテーブルに基づいて、前記横型イメージパターンを復元する手段;
(b)縦型イメージパターンの所定の水平位置と縦型のハフマンテーブルに基づいて、前記縦型イメージパターンを復元する手段;
(c)残余イメージパターンを定義する残余ハフマンテーブルのIDコードを決定し、決定された前記残余ハフマンテーブルに基づいて前記残余イメージパターンを復元する手段;
(d)前記復元された横型イメージパターン、縦型イメージパターン及び残余イメージパターンを結合する手段:
【請求項12】
前記記憶装置が圧縮される一組の非圧縮ドットマトリクスフォント文字を受け入れ、
前記プロセッサが前記非圧縮ドットマトリクスフォント文字の各々に対して、以下の(e)〜(i)を実行する手段をさらに備えていることを特徴とする請求項11に記載のドットマトリクスフォントデータの圧縮/解凍システム。
(e)前記の各非圧縮ドットマトリクスフォント文字を横型イメージパターンを含む横型イメージ、縦型イメージパターンを含む縦型イメージ及び残余イメージパターンを含む残余イメージに分割する手段;
(f)前記横型イメージパターンに対する圧縮横型符号を生成するために前記横型イメージパターンに対してハフマン符号化を適用する手段;
(g)前記縦型イメージパターンに対する圧縮縦型符号を生成するために前記縦型イメージパターンに対してハフマン符号化を適用する手段;
(h)前記残余イメージパターンに対する圧縮残余符号を生成するために前記残余イメージパターンに対してハフマン符号化を適用する手段;
(i)前記各ドットマトリクスフォント文字について、前記圧縮横型符号、前記圧縮縦型符号及び前記圧縮残余符号を選択的に結合し、前記ドットマトリクスフォント文字の圧縮された形を表すビット列を生成する手段:
【請求項13】
コンピュータに読み込まれたときに、一組の圧縮されたドットマトリクスフォント文字を含む圧縮ドットマトリクスフォントデータを解凍する以下の(a)〜(d)のステップを前記コンピュータに実行させるコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
(a)前記一組の圧縮されたドットマトリクスフォント文字を受け入れるステップ;
(b)横型ハフマンテーブル、縦型ハフマンテーブル及び1又はそれ以上の残余ハフマンテーブルを検索するステップ;
(c)検索されるべき前記横型ハフマンテーブル、前記縦型ハフマンテーブル及び前記残余ハフマンテーブルをサーチして、前記各文字の横型イメージパターン、縦型イメージパターン及び残余イメージパターンをそれぞれ取得するステップ;
(d)得られた各文字の前記横型イメージパターン、前記縦型イメージパターン及び前記残余イメージパターンを結合して、元のオリジナルの前記ドットマトリクスフォント文字を復元するステップ:
【請求項14】
前記横型ハフマンテーブル、前記縦型ハフマンテーブル及び1又はそれ以上の前記残余ハフマンテーブルを検索する前記ステップ(b)が、前記コンピュータの外部にある他の機器から前記横型ハフマンテーブル、前記縦型ハフマンテーブル及び1又はそれ以上の前記残余ハフマンテーブルを受信するものである、請求項13に記載のコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項15】
前記横型ハフマンテーブル、前記縦型ハフマンテーブル及び1又はそれ以上の前記残余ハフマンテーブルを検索する前記ステップ(b)が、前記コンピュータの内部にある記憶装置に格納されている前記横型ハフマンテーブル、前記縦型ハフマンテーブル及び1又はそれ以上の前記残余ハフマンテーブルを検索するものである、請求項13に記載のコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項16】
前記一組の圧縮されたドットマトリクスフォント文字を受け入れる前記ステップ(a)が、前記圧縮ドットマトリクスフォント文字をビット列の形で受け入れるものであり、該ビット列が、
前記ドットマトリクスフォント文字における前記横型イメージパターンの縦方向の位置を特定する縦位置符号と、
前記ドットマトリクスフォント文字の中の前記横型イメージパターンに対する圧縮横型符号と、
前記ドットマトリクスフォント文字における前記縦型イメージパターンの水平方向の位置を特定する横位置符号と、
前記ドットマトリクスフォント文字の中の前記縦型イメージパターンに対する圧縮縦型符号と、
前記ドットマトリクスフォント文字における前記残余イメージパターンに対する圧縮残余符号を定義する前記残余ハフマンテーブルを特定するテーブルIDコードと、
前記ドットマトリクスフォント文字の中の前記残余イメージパターンに対する前記圧縮残余符号とを含むとともに、
前記ステップ(b)が、前記テーブルIDコードによって特定される前記残余ハフマンテーブルを検索するものであり、
前記ステップ(d)が、前記縦位置符号によって特定される縦位置における前記得られた横型イメージパターン、前記横位置符号によって特定される横位置における前記得られた縦型イメージパターン及び前記テーブルIDコード特定される前記残余ハフマンテーブルに含まれる前記得られた残余イメージパターンを結合し、各文字に対して元のオリジナルのドットマトリクスフォント文字を復元することを特徴とする請求項13に記載のコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項17】
コンピュータに読み込まれたときに、圧縮ドットマトリクスフォントデータを解凍する処理を前記コンピュータに実行させるコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体であって、
前記命令は、ビット列によって表された一組の圧縮ドットマトリクスフォント文字を含み、
前記ビット列は、
ドットマトリクスフォント文字における横型イメージパターンの縦方向の位置を特定する縦位置符号と、
前記ドットマトリクスフォント文字の中の前記横型イメージパターンに対する圧縮横型符号と、
前記ドットマトリクスフォント文字における縦型イメージパターンの水平方向の位置を特定する横位置符号と、
前記ドットマトリクスフォント文字の中の前記縦型イメージパターンに対する圧縮縦型符号と、
前記ドットマトリクスフォント文字における残余イメージパターンに対する圧縮残余符号を定義する残余ハフマンテーブルを特定するテーブルIDコードと、
前記ドットマトリクスフォント文字の中の前記残余イメージパターンに対する前記圧縮残余符号と、を含むことを特徴とするコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項18】
前記命令が、さらに、
前記横型イメージパターンに対する前記圧縮横型符号を定義する横型ハフマンテーブルと、
前記縦型イメージパターンに対する前記圧縮縦型符号を定義する縦型ハフマンテーブルと、
前記残余イメージパターンに対する前記圧縮残余符号を定義する前記残余ハフマンテーブルと、を含むことを特徴とする請求項17に記載のコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【請求項19】
前記命令が、さらに、
複数のグループに分類された前記残余イメージパターンに対する前記圧縮残余符号をそれぞれ定義する複数の前記残余ハフマンテーブルを含むことを特徴とする請求項18に記載のコンピュータ実行可能な命令を格納したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−213088(P2012−213088A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2011−78289(P2011−78289)
【出願日】平成23年3月31日(2011.3.31)
【出願人】(503186320)威鋒數位開發股▲ふん▼有限公司 (9)
【Fターム(参考)】
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願日】平成23年3月31日(2011.3.31)
【出願人】(503186320)威鋒數位開發股▲ふん▼有限公司 (9)
【Fターム(参考)】
[ Back to top ]