(57)【要約】【課題】フォント輪郭上の隣り合う座標の差分値に対して統計をとり、統計型の圧縮法を用いて符号化する際、隣り合う座標間を接続する線の種類が直線のものについて、それ以外のものとの差分値の出現頻度分布が類似するように差分値を変換処理した後、再符号化を行うことで圧縮効率を高めるアウトラインフォント圧縮／復号方法を提供する。【解決手段】読み取った座標データから隣接する座標値の差分を計算する座標差分値計算部１７と、座標差分値の統計をとり座標差分値出現頻度分布データを取得する座標差分値統計取得部１８と、前記出現頻度分布データを基に差分値変換閾値を計算し保持する差分値変換閾値計算部１９と、直線の両端として隣接している座標の差分値について座標差分変換を行う座標差分値変換部２０と、座標差分値変換が行われた直線及びそれ以外の座標差分値に対して前記出現頻度分布データを再計算する座標差分値出現頻度再計算部２１を備える。【選択図】図１
2007248788.tif 000002
【特許請求の範囲】
【請求項１】
文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、
隣り合う座標同士を接続する線の種類が直線である場合、座標値の差分がある値Ａ以上のものについては（Ａ−１）を差し引いた値を座標の差分値とし、またある値Ａを越えないものについては差分値の符号の前に差分値０を表す符号を付加することを特徴とするアウトラインフォント圧縮方法。
【請求項２】
前記請求項１記載のアウトラインフォント圧縮方法で圧縮されたデータから圧縮前の座標値を得るアウトラインフォント復号方法であって、
線の種類が直線でない場合は、一つ前の座標値に復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が０でない場合は、一つ前の座標値に、復号された座標の差分値を（Ａ−１）の差し引かれる前の値に変換したものを加え、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が０であった場合は、次に格納されている座標の差分値を復号し、その値に一つ前の座標値を加え、輪郭を形成する座標値とする、
ことを特徴とするアウトラインフォント復号方法。
【請求項３】
文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、
隣り合う座標同士を接続する線の種類が直線である場合、座標値の差分がある値Ａを越えるものについては値Ａを差し引いた値を座標の差分値とし、その符号の前に差分値０を表す符号を付加することを特徴とするアウトラインフォント圧縮方法。
【請求項４】
前記請求項３記載のアウトラインフォント圧縮方法で圧縮されたデータから圧縮前の座標値を得るアウトラインフォント復号方法であって、
線の種類が直線でない場合は、一つ前の座標値に復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が０でない場合は、一つ前の座標値に、復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が０であった場合は、次に格納されている座標の差分値を復号してＡの差し引かれる前の値に変換した値に、一つ前の座標値を加え、輪郭を形成する座標値とする、
ことを特徴とするアウトラインフォント復号方法。
【請求項５】
文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するとともに、前記圧縮したアウトラインフォントデータから圧縮前の座標値を得るアウトラインフォント圧縮／復号方法であって、
隣り合う座標同士を接続する線の種類が直線である場合の第１の符号テーブルと、直線以外である場合の第２の符号テーブルを作成し、これら符号テーブルをフォントデータに保持し、
線の種類が直線であった場合は、一つ前の座標値に前記第１の符号テーブルを用いて復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線でない場合は、一つ前の座標値に前記第２の符号テーブルを用いて復号された座標の差分値を加えたものを、輪郭を形成する座標値とする、
ことを特徴とするアウトラインフォント圧縮／復号方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ＬＣＤ(Liquid Crystal Display）などの表示デバイスを持つ機器において文字表示を行う際、アウトラインフォントを用いることで１つのデータから品質の高い文字を自由なサイズで表示できる。
【０００２】
アウトラインフォントは輪郭線の計算や輪郭線内部の塗りつぶし計算が必要なことから従来計算処理能力の高いコンピュータでの使用が主であったが、近年携帯電話のような組み込み型機器においても処理能力の向上によりアウトラインフォントが使用されるようになってきた。
【０００３】
しかし組み込み型機器に搭載されるメモリの容量は小さいことが多く、少ないメモリ内にできるだけ多くの機能を実装するため、格納するデータのサイズは小さくすることが要求されている。
【０００４】
本発明は、線の種類によって線の両端の座標値を差分で表した場合の値に出現頻度の差が現れることを利用して統計型の圧縮法による圧縮率を向上させ、従来のアウトラインフォントデータのサイズを低減することを目指すものである。
【０００５】
組み込み型機器が搭載する表示デバイスでは、必要とされる文字サイズに上限があることに配慮し、本発明は従来のアウトラインフォントデータのサイズを低減することを目指すものである。
【背景技術】
【０００６】
統計型の圧縮方法を用いてアウトラインフォントのデータのサイズを小さくする第１の従来技術として、特開平5-94526号公報（特許文献１）には、前制御点からの座標値の相対値をハフマン方式などで圧縮することを前提にさらなる圧縮効率の向上のために曲線部分の制御点を予測して予測点との相対値で圧縮するフォントデータ圧縮方法が記載されている。
【０００７】
同じく統計型の圧縮方法を用いてアウトラインフォントのデータのサイズを小さくする第２の従来技術として、特開平5-143048号公報（特許文献２）には、データのオフセット除去、データのＸ進数化、および座標データの直線法、誤差修正法による予測、などの処理を行ってアウトラインフォントのデータのサイズを小さくしてメモリ容量を減少させるフォントデータ圧縮方法が記載されている。
【０００８】
図１６は、上記従来技術に係るフォントデータ圧縮／復元システムの概略構成を示す図である。すなわち、図１６（ａ）は圧縮時のシステム構成を示す図であり、図１６（ｂ）は復元時のシステム構成を示す図である。図１６（ａ）において従来のフォントデータ圧縮システムは、アウトラインフォントデータを格納するアウトラインデータファイル１１１と、アウトラインデータファイル１１１からアウトラインフォントデータを読み取るアウトラインデータ読み取り部１１２と、読み取った線種データからその線種を判定する線種判定部１１３と、判定した線種の統計を取得する線種データ統計取得部１１４と、線種出現頻度分布データを基に線種符号化を行う線種符号化部１１５と、符号化された線種を出力する符号化線種出力部１１６と、読み取った座標データを基にその線種の座標予測を行う座標予測部１１７と、予測値との誤差を読み取った座標データを基に計算する誤差計算部１１８と、計算した誤差で補正した座標値の符号化を行う座標値符号化部１１９と、符号化した座標値を出力する符号化座標値出力部１２０と、それぞれ出力された符号化線種および符号化座標値を格納する圧縮アウトラインフォントデータファイル１２１を備えて構成される。
【０００９】
図１６（ｂ）において従来のフォントデータ復元システムは、上述のフォントデータ圧縮システムにより圧縮した圧縮フォントデータを格納する圧縮アウトラインフォントデータファイル１３１と、圧縮アウトラインフォントデータを読み取る圧縮アウトラインデータ読み取り部１３２と、読み取った圧縮アウトラインデータを線種データ及び座標データを復号するデータ復号部１３３と、復号した線種データからその線種を判定する線種判定部１３４と、復号した座標データを用いて座標予測を行う座標予測部１３５と、予測値との誤差を補正して座標値を出力する誤差補正部１３６とで構成される。判定され出力された線種および誤差補正され出力された座標値は描画部１４０にそれぞれ入力される。描画部１４０は入力されたデータを基に描画を行う。
【特許文献１】特開平５−９４５２６号公報
【特許文献２】特開平５−１４３０４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記のような座標点の予測を行う従来技術に係るフォントデータ圧縮／復元システムでは、圧縮時に次に表れる点の予測に線と線の間の角度を計算する処理や、その角度を使って座標を求める処理を行うなどの処理が必要であるとともに、リアルタイム性を求められる描画時にもこれらの処理を行う必要があり、携帯電話のような機器では速度的に非効率であるという課題があった。
【００１１】
また、座標点の予測は特許文献２に書かれているような直線同士が大体同じ角度で交わり、その距離は大体同じである場合以外は予測による圧縮の効果が得られないばかりか逆に圧縮率が悪くなるという課題があった。
【００１２】
上記のような問題を解決するために本発明は、予測の処理は行わず、フォント輪郭上の隣り合う座標の差分値に対して統計を取って座標差分値出現頻度分布データを求め、該分布データを基に差分値変換閾値を求めて保持し、差分値変換閾値を用いて線の種類が直線のものについてそれ以外のものとの差分値の出現頻度分布が類似するように差分値を変換処理した後に座標差分値を統計型の圧縮法を用いて符号化して圧縮効率を高めるアウトラインフォント圧縮／復号方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために本発明は、文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、隣り合う座標同士を接続する線の種類が直線である場合、座標値の差分がある値Ａ以上のものについては（Ａ−１）を差し引いた値を座標の差分値とし、またある値Ａを越えないものについては差分値の符号の前に差分値０を表す符号を付加することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、フォント輪郭上の隣り合う座標の差分値に対して統計をとり、統計型の圧縮法を用いて符号化する際に、隣り合う座標間を接続する線の種類が直線のものについて、それ以外のものとの差分値の出現頻度分布が類似するように差分値を変換処理した後、再度符号化を行うことで圧縮効率を高めることができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【実施例】
【００１６】
一般的にアウトラインフォントのデータは、データの性質などを記述したヘッダ部分と各文字の輪郭を記述する部分から構成される。図３は、一般的なアウトラインフォントのデータ記述方法を示す図である。本実施例では図３に示すように「木」という文字の輪郭を記述するデータとして座標値（Ｘ座標、Ｙ座標で示される）と各座標を結ぶ線の種類（直線、ベジェ曲線等）を、閉曲線のある１点から時計回りに輪郭描画順に並べて記述されたものを使用する。なお、閉曲線のある１点から反時計回りに輪郭描画順に並べて記述されたものを使用しても良い。また、本実施例では元のアウトラインデータが256×256ピクセルのサイズでデザインされているものを使用するものとする。
【００１７】
［実施の形態１］
図１は、本発明の第１の実施形態に係るアウトラインフォント圧縮システムの概略構成を示すブロック図である。図１において本発明の第１の実施形態に係るアウトラインフォント圧縮システムは、アウトラインフォントデータを格納するアウトラインデータファイル１１と、アウトラインフォントデータから線種データおよび座標データを読み取るアウトラインデータ読み取り部１２と、読み取った線種データから線種を判定する線種判定部１３と、線種データについて統計をとり、線種出現頻度分布データを取得する線種データ統計取得部１４と、線種出現頻度分布データを基に線種符号化を行う線種符号化部１５と、符号化した線種を出力する符号化線種出力部１６と、読み取った座標データから隣接する座標値の差分を計算する座標差分値計算部１７と、座標差分値の統計をとり座標差分値出現頻度分布データを取得する座標差分値統計取得部１８と、（第１の）座標差分値出現頻度分布データを基に差分値変換閾値(直線の両端として隣接している座標の差分値について差分値の絶対値の頻度を見て最も出現頻度の高い値)を計算し保持する差分値変換閾値計算部１９と、直線の両端として隣接している座標の差分値について差分値変換閾値計算部１９に保持された差分値変換閾値を基に座標差分変換を行う座標差分値変換部２０と、座標差分値変換が行われた直線及びそれ以外の座標差分値に対して座標差分値出現頻度分布データを再計算する座標差分値出現頻度再計算部２１と、（第２の）座標差分値出現頻度分布データを基に座標差分値を符号化する座標差分値符号化部２２と、符号化した座標差分値を出力する符号化座標差分値出力部２３と、それぞれ出力された符号化線種および符号化座標差分値を格納する圧縮アウトラインフォントデータファイル２４を備えて構成される。
【００１８】
図２は、本発明の第１の実施形態に係る直線と曲線に関する差分値の出現頻度分布の例（ゴシック系のフォント）を示す図である。図２を図１に示した構成に基づいて説明すると、座標差分値統計取得部１８において書体がゴシック系のフォントに係る統計をとると、曲線を構成する座標の差分値出現頻度分布(Ａ)と直線の両端座標の差分値出現頻度分布(Ｂ)を得ることができる。直線の両端座標の差分値出現頻度分布(Ｂ)は、絶対値の小さい所は差分値の出現頻度が低いが絶対値の大きい所まで差分値の出現頻度が広く分布している特性を示すことに鑑み、本発明の第１の実施形態では、差分値変換閾値計算部１９が差分値変換閾値(これをＡとする)を差分値の出現頻度がピークとなる値として計算により求める。座標差分値変換部２０は、この差分値変換閾値(Ａ)に対してすべての直線の両端となる座標の差分値について座標値の差分が閾値Ａ以上のものについては（Ａ−１）を差し引いた値を座標の差分値とし、値Ａを越えないものについては差分値の符号の前に差分値０を表す符号を付加するという変換を行う。このような変換を行った後で、座標差分値出現頻度再計算部２１は直線の両端座標の差分値出現頻度分布を再計算することで差分値出現頻度分布(Ｂ’)を得る。座標差分値符号化部２２は、曲線を構成する座標の差分値出現頻度分布(Ａ)と直線の両端座標の差分値出現頻度分布(Ｂ’)から合計した差分値出現頻度分布(Ｃ)を基に座標差分値符号化を行う。その結果、本発明の第１の実施形態は、差分値０をフラグとして付加することで増えるデータ量よりも、差分値の出現頻度の偏りが大きくなることで向上する圧縮効果のほうが大きく、圧縮後の最終的なデータサイズを減らすことができる。
【００１９】
図４Ａ〜図４Ｄは、本発明の第１の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。本発明においては、直線以外の線にはベジェ曲線や円弧などがあるが、これらをまとめて「曲線」と表現する。
【００２０】
図４Ａ〜図４Ｄのフローチャートの説明に移るまえに、本発明の第１の実施形態に係るアウトラインフォント圧縮システムの動作を概略的に説明する。まず、アウトラインフォントデータファイルに格納されているすべての文字の輪郭線データから輪郭線の線種とその線の座標値を読み出し、隣接する座標の差分値を計算する。直線の両端として隣接している座標の差分値だけについて、差分値の絶対値の出現頻度を見て、最も出現頻度の高い値を閾値Ａとして記憶する。さらにすべての直線の両端となる座標の差分値について、座標値の差分が閾値Ａ以上のものについては（Ａ−１）を差し引いた値を座標の差分値とし、値Ａを越えないものについては差分値の符号の前に差分値０を表す符号を付加するという変換を行う。この変換を行った後、すべての差分値の出現頻度を参照して統計型の符号化を行う。また、線種についても出現頻度を算出し、統計型の符号化を行う。統計型の符号化を行ったデータは圧縮アウトラインフォントファイルに格納する。圧縮後のアウトラインフォントデータは、元のアウトラインフォントデータの線種・座標データを符号化されたデータに置き換えたものになる。
【００２１】
ここから図４Ａ〜図４Ｄのフローチャートの説明に移る。まず図４Ａにおいて、
S1  アウトラインデータから１文字分の線種と座標のデータを取得
S2  輪郭線の描画開始座標(X, Y)を取得
S3  取得した座標値を開始点(x1, y1)とする
S4  アウトラインデータから線の種類を取得
S5  取得した線で輪郭線が閉じられる場合はS16へ、そうでなければS6へ
S6  線の種類が直線であればS7へ、そうでなければS11へ
S7  直線の終了座標(X, Y)を読み出す
S8  S7で読み出した座標値を終了点(x2, y2)とする。
【００２２】
S9  差分値の計算Δx = x2 -x1、Δy = y2-y1を行う
S10  ΔxとΔyを直線に関する出現頻度表に登録する。そしてS15へ
S11  曲線の描画に必要な座標値やパラメータを取得
S12  曲線の終了座標(X, Y)を取得
S13  曲線に関する差分値の算出を行う
S14  差分値を曲線に関する出現頻度表に登録する。
【００２３】
S15  線の終了座標を(x1, y1)としてS4へ
S16  文字にまだ輪郭線データがある場合はS2へ、そうでなければS17へ。
ここから図４Ｂに移って、
S17  すべての文字について処理を終えた場合はS18へ、そうでなければS1へ
S18  直線に関する出現頻度表において、最も出現頻度の高い差分値の絶対値をＡとする
S19  X＝１とする。
【００２４】
S20  XがＡより小さい場合S21へ、そうでなければS22へ
S21  直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値０の出現数に加算し、S24へ
S22  直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値(X-A+1)の出現数に加算する
S23  Xを１増加させる。
【００２５】
S24  Xが256であればS25へ、そうでなければS20へ
S25  X＝−１とする。
S26  Xの絶対値がＡより小さい場合S27へ、そうでなければS28へ
S27  直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値０の出現数に加算し、S30へ
S28  直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値(X+A-1)の出現数に加算する
S29  Xを１減少させる。
【００２６】
S30  Xが−256であればS31へ、そうでなければS26へ。
ここから図４Ｃに移って、
S31  曲線に関する出現頻度表から統計型圧縮の符号化を行う
S32  圧縮データとして復号用のテーブルなどを含むヘッダ部分を出力
S33  圧縮データに値Ａを出力
S34  アウトラインデータから１文字分の線種と座標のデータを取得
S35  輪郭線の描画開始座標(X, Y)を取得
S36  輪郭線の描画開始座標(X, Y)を圧縮データに出力
S37  取得した座標値を開始点(x1, y1)とする
S38  アウトラインデータから線の種類を取得
S39  取得した線で輪郭線が閉じられる場合はS59へ、そうでなければS40へ
S40  線の種類が直線であればS41へ、そうでなければS53へ
S41  直線の終了座標(X, Y)を読み出す
S42  S41で読み出した座標値を終了点(x2, y2)とする。
【００２７】
S43  差分値の計算Δx = x2 -x1、Δy = y2-y1を行う
ここから図４Ｄに移って、
S44  線の種類に対応した符号を圧縮データに出力
S45  Δxが値Ａより小さい場合S46へ、そうでなければS48へ
S46  0に対応する符号を圧縮データに出力
S47  Δxに対応する符号を圧縮データに出力しS49へ
S48  Δxから値(A-1)を差し引いた値に対応する符号を圧縮データに出力する
S49  Δyが値Ａより小さい場合S50へ、そうでなければS52へ
S50  0に対応する符号を圧縮データに出力
S51  Δyに対応する符号を圧縮データに出力しS58へ
S52  Δyから値(A-1)を差し引いた値に対応する符号を圧縮データに出力しS58へ
図４Ｃに戻って、
S53  曲線の描画に必要な座標値やパラメータを取得
S54  曲線の終了座標(X, Y)を取得
S55  曲線に関する差分値の算出を行う
図４Ｄに再び移って、
S56  線の種類に対応した符号を圧縮データに出力
S57  曲線に関する差分値に対応した符号を圧縮データに出力
S58  線の終了座標を(x1, y1)としてS38へ
S59  文字にまだ輪郭線データがある場合はS35へ、そうでなければS60へ
S60  すべての文字について処理を終えた場合は終了、そうでなければS34へ。
【００２８】
図５は、本発明の第１の実施形態に係るアウトラインフォント復元システムの概略構成を示すブロック図である。図５において本発明の第１の実施形態に係るアウトラインフォント復元システムは、上述の圧縮システムにより圧縮されたフォントデータ（座標差分値圧縮データ、線種圧縮データ、符号テーブルが含まれる）を格納する圧縮アウトラインフォントデータファイル３１と、圧縮アウトラインデータファイル３１から圧縮アウトラインフォントデータを読み取る圧縮アウトラインデータ読み取り部３２と、圧縮アウトラインデータファイル３１から差分値変換閾値を読み取り保持する差分値変換閾値読み取り部３３と、読み取った圧縮アウトラインデータから線種データを復号する線種データ復号部３４と、読み取った圧縮アウトラインデータから座標差分値データを復号する座標差分値データ復号部３５と、線種データから線種を判定する線種判定部３６と、座標差分値データにおいて直線の両端として隣接している座標の差分値について差分値変換閾値読み取り部３３で保持された差分値変換閾値を基に座標差分値変換を行う座標差分値変換部３７と、直線の両端以外の差分値データおよび変換された直線の両端に係る座標差分値データを基に座標値を計算し座標値を出力する座標値計算部３８とで構成される。判定され出力された線種および出力された座標値を描画部４０へ入力する。描画部４０は入力されたデータを基に描画を行う。
【００２９】
図６Ａおよび図６Ｂは、本発明の第１の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。まず図６Ａにおいて、
S71  圧縮データから復号用のテーブルなどを含むヘッダ部分を取得
S72  圧縮データから値Ａを取得
S73  圧縮データから指定された文字１文字分の線種と座標のデータを取得
S74  輪郭線の描画開始座標(X, Y)を取得
S75  取得した座標値を開始点(x1, y1)とする
S76  圧縮データから符号化された線の種類を取得
S77  取得した線で輪郭線が閉じられる場合はS100へ、そうでなければS78へ
S78  線の種類が直線であればS79へ、そうでなければS97へ
S79  圧縮データから１つの符号化された値x’を取得
S80  S79で取得した値x’を復号し、Δxとする。
【００３０】
S81  Δxが０の場合S82へ、そうでなければS85へ
S82  圧縮データから１つの符号化された値x’を取得
S83  S82で取得した値x’を復号し、Δxとする。
【００３１】
S84  直線の終了座標のX座標値x2はx1＋Δxとなる。S88へ
S85  Δxが正の値であればS86へ、そうでなければS87へ
S86  直線の終了座標のX座標値x2はx1＋Δx + (A-1)となる。S88へ
S87  直線の終了座標のX座標値x2はx1＋Δx - (A-1)となる。S88へ
ここから図６Ｂに移って、
S88  圧縮データから１つの符号化された値y’を取得
S89  S88で取得した値y’を復号し、Δyとする。
【００３２】
S90  Δyが０の場合S91へ、そうでなければS94へ
S91  圧縮データから１つの符号化された値y’を取得
S92  S91で取得した値y’を復号し、Δyとする。
【００３３】
S93  直線の終了座標のY座標値y2はy1＋Δyとなる。S99へ
S94  Δyが正の値であればS95へ、そうでなければS96へ
S95  直線の終了座標のY座標値y2はy1＋Δy + (A-1)となる。S99へ
S96  直線の終了座標のY座標値y2はy1＋Δy - (A-1)となる。S99へ
図６Ａに戻って、
S97  圧縮データから符号化された座標値・パラメータを取得
S98  S97で符号化された座標値・パラメータを復号する
図６Ｂに再び移って、
S99  線の終了座標を(x1, y1)としてS76へ
S100  文字にまだ輪郭線データがある場合はS74へ、そうでなければ終了。
【００３４】
［実施の形態２］
図７は、本発明の第２の実施形態に係るアウトラインフォント圧縮システムの概略構成を示すブロック図である。図７において本発明の第２の実施形態に係るアウトラインフォント圧縮システムは、アウトラインフォントデータを格納するアウトラインデータファイル５１と、アウトラインフォントデータから線種データおよび座標データを読み取るアウトラインデータ読み取り部５２と、読み取った線種データから線種を判定する線種判定部５３と、線種データについて統計をとり線種出現頻度分布データを取得する線種データ統計取得部５４と、線種出現頻度分布データを基に線種符号化を行う線種符号化部５５と、符号化した線種を出力する符号化線種出力部５６と、読み取った座標データから隣接する座標値の差分を計算する座標差分値計算部５７と、座標差分値の統計をとり座標差分値出現頻度分布データを取得する座標差分値統計取得部５８と、（第１の）座標差分値出現頻度分布データから差分値変換閾値を算出するために座標差分値を符号化する閾値算出用座標差分値符号化部５９と、符号化された座標差分値から差分値変換閾値を計算し保持する差分値変換閾値計算部６０と、直線の両端として隣接している座標の差分値について差分値変換閾値計算部６０に保持された差分値変換閾値を基に座標差分変換を行う座標差分値変換部６１と、座標差分値変換が行われた直線及びそれ以外の座標差分値に対して座標差分値出現頻度分布データを再計算する座標差分値出現頻度再計算部６２と、（第２の）座標差分値出現頻度分布データを基に座標差分値を符号化する座標差分値符号化部６３と、符号化した座標差分値を出力する符号化座標差分値出力部６４と、それぞれ出力された符号化線種および符号化座標差分値を格納する圧縮アウトラインフォントデータファイル６５を備えて構成される。
【００３５】
図８は、本発明の第２の実施形態に係る直線と曲線に関する差分値の出現頻度分布の例（毛筆系のフォント）を示す図である。図８を図７に示した構成に基づいて説明すると、座標差分値統計取得部５８において書体が毛筆系のフォントに係る統計をとると、曲線を構成する座標の差分値出現頻度分布(Ａ)と直線の両端座標の差分値出現頻度分布(Ｂ)を得ることができる。直線の両端座標の差分値出現頻度分布(Ｂ)は、絶対値の大きい所は差分値の出現頻度が低く、絶対値の小さい所でも差分値の出現頻度が高い特性を示すことに鑑み、本発明の第２の実施形態では、閾値算出用座標差分値符号化部５９は、上記差分値の頻度分布から、統計型の符号化を行いそれぞれの差分値に対応する符号を得る。そして、差分値変換閾値計算部６０がある値Ａより絶対値が大きい差分値ＸからＡを差し引いた値に対応する符号の符号長と差分値０の符号長を足し合わせた符号長がＸに対応する符号の符号長より小さくなるような値を計算して差分値変換閾値(Ａ)として決定し保持する。座標差分値変換部６２は、この差分値変換閾値(Ａ)に対してすべての直線の両端となる座標の差分値について座標値の差分が閾値Ａ以上のものについては値Ａを差し引いた値を座標の差分値とし、その符号の前に差分値０を表す符号を付加するという変換を行う。このような変換を行った後で、座標差分値出現頻度再計算部６２は直線の両端座標の差分値出現頻度分布を再計算することで差分値出現頻度分布(Ｂ’)を得る。座標差分値符号化部６３は、曲線を構成する座標の差分値出現頻度分布(Ａ)と直線の両端座標の差分値出現頻度分布(Ｂ’)から合計した差分値出現頻度分布(Ｃ)を基に座標差分値符号化を行う。その結果、本発明の第２の実施形態は、差分値０をフラグとして付加することで増えるデータ量よりも、差分値の出現頻度の偏りが大きくなることで向上する圧縮効果のほうが大きく、圧縮後の最終的なデータサイズを減らすことができる。
【００３６】
図９Ａ〜図９Ｅは、本発明の第２の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。本発明においては、直線以外の線にはベジェ曲線や円弧などがあるが、これらをまとめて「曲線」と表現する。
【００３７】
図９Ａ〜図９Ｅのフローチャートの説明に移るまえに、本発明の第２の実施形態に係るアウトラインフォント圧縮システムの動作を概略的に説明する。まず、アウトラインフォントデータファイルに格納されているすべての文字の輪郭線データから輪郭線の線種とその線の座標値を読み出し、隣接する座標の差分値を計算する。上記差分値の頻度分布から、統計型の符号化を行いそれぞれの差分値に対応する符号を得る。そして、ある値Ａより絶対値が大きい差分値ＸからＡを差し引いた値に対応する符号の符号長と差分値０の符号長を足し合わせた符号長がＸに対応する符号の符号長より小さくなるような値を計算して差分値変換閾値(Ａ)として決定し保持する。この差分値変換閾値(Ａ)に対してすべての直線の両端となる座標の差分値について座標値の差分が閾値Ａ以上のものについては値Ａを差し引いた値を座標の差分値とし、その符号の前に差分値０を表す符号を付加するという変換を行う。この変換を行った後、すべての差分値の出現頻度を参照して統計型の符号化を行う。また、線種についても出現頻度を算出し、統計型の符号化を行う。統計型の符号化を行ったデータは圧縮アウトラインフォントファイルに格納する。圧縮後のアウトラインフォントデータは、元のアウトラインフォントデータの線種・座標データを符号化されたデータに置き換えたものになる。
【００３８】
ここから図９Ａ〜図９Ｅのフローチャートの説明に移る。まず図９Ａにおいて、
S101  アウトラインデータから１文字分の線種と座標のデータを取得
S102  輪郭線の描画開始座標(X, Y)を取得
S103  取得した座標値を開始点(x1, y1)とする
S104  アウトラインデータから線の種類を取得
S105  取得した線で輪郭線が閉じられる場合はS116へ、そうでなければS106へ
S106  線の種類が直線であればS107へ、そうでなければS111へ
S107  直線の終了座標(X, Y)を読み出す
S108  S107で読み出した座標値を終了点(x2, y2)とする。
【００３９】
S109  差分値の計算Δx = x2 -x1、Δy = y2-y1を行う
S110  ΔxとΔyを直線に関する出現頻度表に登録する。そしてS115へ
S111  曲線の描画に必要な座標値やパラメータを取得
S112  曲線の終了座標(X, Y)を読み出す
S113  曲線に関する差分値の算出を行う
S114  差分値を曲線に関する出現頻度表に登録する。
【００４０】
S115  線の終了座標を(x1, y1)としてS104へ
S116  文字にまだ輪郭線データがある場合はS102へ、そうでなければS117へ
ここから図９Ｂに移って、
S117  すべての文字について処理を終えた場合はS118へ、そうでなければS101へ
S118  直線曲線両方の出現頻度を合わせた出現頻度から統計型圧縮を用いて符号化する
S119  Ａ＝１とする。
【００４１】
S120  Ｍ＝１とする
S121  Ｘの値をＡ＋Ｍの値にする
S122  差分値（Ｘ−Ａ）に対応する符号の符号長と差分値０に対応する符号の符号長を足し合わせた符号長が差分値Ｘに対応する符号長より小さければS123へ。そうでなければS127へ。
【００４２】
S123  Ｘの値を−Ａ−Ｍの値にする
S124  差分値（Ｘ＋Ａ）に対応する符号の符号長と差分値０に対応する符号の符号長を足し合わせた符号長が差分値Ｘに対応する符号長より小さければS125へ。そうでなければS127へ。
【００４３】
S125  Ｍの値を１増加させる
S126  Ａの値とＭの値の合計が256であればS129へ。そうでなければS121へ
S127  Ａの値を１増加させる
S128  Ａの値が256であればS129へ、そうでなければS120へ。
【００４４】
S129  Ｘの値を１とする
ここから図９Ｃに移って、
S130  XがＡより小さい場合S131へ、そうでなければS132へ
S131  直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値Xの出現数に加算し、S134へ
S132  直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値０の出現数に加算する
S133  直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値(X-A)の出現数に加算する
S134  Xを１増加させる。
【００４５】
S135  Xが256であればS136へ、そうでなければS130へ
S136  X＝−１とする。
S137  Xの絶対値がＡより小さい場合S138へ、そうでなければS139へ
S138  直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値Xの出現数に加算し、S141へ
S139  直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値0の出現数に加算する
S140  直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値(X+A)の出現数に加算する
S141  Xを１減少させる。
【００４６】
S142  Xが−256であればS143へ、そうでなければS137へ
S143  曲線に関する出現頻度表から統計型圧縮の符号化を行う
S144  圧縮データとして復号用のテーブルなどを含むヘッダ部分を出力
ここから図９Ｄに移って、
S145  圧縮データに値Ａを出力
S146  アウトラインデータから１文字分の線種と座標のデータを取得
S147  輪郭線の描画開始座標(X, Y)を取得
S148  輪郭線の描画開始座標(X, Y)を圧縮データに出力
S149  取得した座標値を開始点(x1, y1)とする
S150  アウトラインデータから線の種類を取得
S151  取得した線で輪郭線が閉じられる場合はS171へ、そうでなければS152へ
S152  線の種類が直線であればS153へ、そうでなければS165へ
S153  直線の終了座標(X, Y)を読み出す
S154  S153で取得した座標値を終了点(x2, y2)とする。
【００４７】
S155  差分値の計算Δx = x2 -x1、Δy = y2-y1を行う
S156  線の種類に対応した符号を圧縮データに出力
S157  Δxが値Ａより小さい場合S158へ、そうでなければS159へ
ここから図９Ｅに移って、
S158  Δxに対応する符号を圧縮データに出力しS161へ
S159  0に対応する符号を圧縮データに出力
S160  Δxから値Aを差し引いた値に対応する符号を圧縮データに出力する
S161  Δyが値Ａより小さい場合S162へ、そうでなければS163へ
S162  Δyに対応する符号を圧縮データに出力しS170へ
S163  0に対応する符号を圧縮データに出力
S164  Δyから値Aを差し引いた値に対応する符号を圧縮データに出力しS170へ
図９Ｄに戻って、
S165  曲線の描画に必要な座標値やパラメータを取得
S166  曲線の終了座標(X, Y)を取得
S167  曲線に関する差分値の算出を行う
S168  線の種類に対応した符号を圧縮データに出力
S169  曲線に関する差分値に対応した符号を圧縮データに出力
図９Ｅに再び移って、
S170  線の終了座標を(x1, y1)としてS150へ
S171  文字にまだ輪郭線データがある場合はS147へ、そうでなければS172へ
S172  すべての文字について処理を終えた場合は終了、そうでなければS146へ。
【００４８】
図１０は、本発明の第２の実施形態に係るアウトラインフォント復元システムの概略構成を示すブロック図である。図１０において本発明の第２の実施形態に係るアウトラインフォント復元システムは、上述の圧縮システムにより圧縮されたフォントデータ（座標差分値圧縮データ、線種圧縮データ、符号テーブルが含まれる）を格納する圧縮アウトラインフォントデータファイル７１と、圧縮アウトラインデータファイル７１から圧縮アウトラインフォントデータを読み取る圧縮アウトラインデータ読み取り部７２と、圧縮アウトラインデータファイル７１から差分値変換閾値を読み取り保持する差分値変換閾値読み取り部７３と、読み取った圧縮アウトラインデータから線種データを復号する線種データ復号部７４と、読み取った圧縮アウトラインデータから座標差分値データを復号する座標差分値データ復号部７５と、線種データから線種を判定する線種判定部７６と、座標差分値データにおいて直線の両端として隣接している座標の差分値について差分値変換閾値読み取り部７３で保持された差分値変換閾値を基に座標差分値変換を行う座標差分値変換部７７と、直線の両端以外の差分値データおよび変換された直線の両端に係る座標差分値データを基に座標値を計算し座標値を出力する座標値計算部７８とで構成される。判定され出力された線種および出力された座標値を描画部８０へ入力する。描画部８０は入力されたデータに基づいて描画を行う。
【００４９】
図１１Ａおよび図１１Ｂは、本発明の第２の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。まず図１１Ａにおいて、
S181  圧縮データから復号用のテーブルなどを含むヘッダ部分を取得
S182  圧縮データから値Ａを取得
S183  圧縮データから指定された文字１文字分の線種と座標のデータを取得
S184  輪郭線の描画開始座標(X, Y)を取得
S185  取得した座標値を開始点(x1, y1)とする
S186  圧縮データから符号化された線の種類を取得
S187  取得した線で輪郭線が閉じられる場合はS210へ、そうでなければS188へ
S188  線の種類が直線であればS189へ、そうでなければS207へ
S189  圧縮データから１つの符号化された値x’を取得
S190  S189で取得した値x’を復号し、Δxとする。
【００５０】
S191  Δxが０の場合S192へ、そうでなければS193へ
ここから図１１Ｂに移って、
S192  直線の終了座標のX座標値x2はx1＋Δxとなる。S198へ
図１１Ａに戻って、
S193  圧縮データから１つの符号化された値x’を取得
S194  S193で取得した値x’を復号し、Δxとする。
【００５１】
図１１Ｂに再び移って、
S195  Δxが正の値であればS196へ、そうでなければS197へ
S196  直線の終了座標のX座標値x2はx1＋Δx + Aとなる。S198へ
S197  直線の終了座標のX座標値x2はx1＋Δx - Aとなる。S198へ
S198  圧縮データから１つの符号化された値y’を取得
S199  S198で取得した値y’を復号し、Δyとする。
【００５２】
S200  Δyが０の場合S201へ、そうでなければS202へ
S201  直線の終了座標のY座標値y2はy1＋Δyとなる。そしてS209へ
S202  圧縮データから１つの符号化された値y’を取得
S203  S202で取得した値y’を復号し、Δyとする。
【００５３】
S204  Δyが正の値であればS205へ、そうでなければS206へ
S205  直線の終了座標のY座標値y2はy1＋Δy + Aとなる。S209へ
S206  直線の終了座標のY座標値y2はy1＋Δy - Aとなる。S209へ
図１１Ａに戻って、
S207  圧縮データから符号化された座標値・パラメータを取得
S208  S207で符号化された座標値・パラメータを復号する
図１１Ｂに再び移って、
S209  線の終了座標を(x1, y1)としてS186へ
S210  文字にまだ輪郭線データがある場合はS184へ、そうでなければ終了。
【００５４】
［実施の形態３］
図１２は、本発明の第３の実施形態に係るアウトラインフォント圧縮システムの概略構成を示すブロック図である。図１２において本発明の第３の実施形態に係るアウトラインフォント圧縮システムは、アウトラインフォントデータを格納するアウトラインデータファイル８１と、アウトラインフォントデータから線種データおよび座標データを読み取るアウトラインデータ読み取り部８２と、読み取った線種データから線種を判定する線種判定部８３と、線種データについて統計をとり線種出現頻度分布データを取得する線種データ統計取得部８４と、線種出現頻度分布データを基に線種符号化を行う線種符号化部８５と、符号化した線種を出力する符号化線種出力部８６と、読み取った座標データから隣接する座標値の差分を計算する座標差分値計算部８７と、座標差分値の統計をとり座標差分値出現頻度分布データを取得する座標差分値統計取得部８８と、直線の両端として隣接している座標の差分値について第１の座標差分値出現頻度分布データを取得し、直線の両端以外(すなわち曲線)で隣接している座標の差分値について第２の座標差分値出現頻度分布データを取得し、これらの座標差分値出現頻度分布データを基に座標差分値を符号化して符号テーブルT1及び符号テーブルT2を作成する座標差分値符号化部８９と、符号化した座標差分値を出力する符号化座標差分値出力部９０、それぞれ出力された符号化線種および符号化座標差分値を格納する圧縮アウトラインフォントデータファイル９１を備えて構成される。
【００５５】
図１３Ａ〜図１３Ｃは、本発明の第３の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。本発明においては、直線以外の線にはベジェ曲線や円弧などがあるが、これらをまとめて「曲線」と表現する。
【００５６】
図１３Ａ〜図１３Ｃのフローチャートの説明に移るまえに、本発明の第３の実施形態に係るアウトラインフォント圧縮システムの動作を概略的に説明する。まず、アウトラインフォントデータファイルに格納されているすべての文字の輪郭線データから輪郭線の線種とその線の座標値を読み出し、隣接する座標の差分値を計算する。すべての直線の両端となる座標の差分値について、出現頻度を参照して統計型の符号化を行い、符号テーブルT1を作成する。さらに上記で参照されなかった曲線に関する座標の差分値について、出現頻度を参照して統計型の符号化を行い、符号テーブルT2を作成する。また、線種についても出現頻度を算出し、統計型の符号化を行う。統計型の符号化を行ったデータは圧縮アウトラインフォントファイルに格納する。圧縮後のアウトラインフォントデータは、元のアウトラインフォントデータの線種・座標データを符号化されたデータに置き換えたものになる。本発明の第３の実施形態は、上記第１及び第２の実施形態のように差分値の変換処理を行うことでも、接続する線種が直線であるものと直線で無いものの、隣り合う座標の差分値の出現頻度分布を類似させることができず圧縮効率が上がらないような書体の場合には変換処理を行わずにそのまま２つの符号テーブルを保持する。この場合、２つの符号テーブルを持つことで符号テーブルサイズは増加するが、２つ符号テーブルを持つことによって向上する圧縮効果のほうが大きく、圧縮後の最終的なデータサイズを減らすことができる。
【００５７】
ここから図１３Ａ〜図１３Ｃのフローチャートの説明に移る。まず図１３Ａにおいて、
S211  アウトラインデータから１文字分の線種と座標のデータを取得
S212  輪郭線の描画開始座標(X, Y)を取得
S213  取得した座標値を開始点(x1, y1)とする
S214  アウトラインデータから線の種類を取得
S215  取得した線で輪郭線が閉じられる場合はS226へ、そうでなければS216へ
S216  線の種類が直線であればS217へ、そうでなければS221へ
S217  直線の終了座標(X, Y)を取得
S218  S217で取得した座標値を終了点(x2, y2)とする。
【００５８】
S219  差分値の計算Δx = x2 -x1、Δy = y2-y1を行う
S220  ΔxとΔyを直線に関する出現頻度表に登録する。S225へ
S221  曲線の描画に必要な座標値やパラメータを取得
S222  曲線の終了座標(X, Y)を取得
S223  曲線に関する差分値の算出を行う
S224  差分値を曲線に関する出現頻度表に登録する。
【００５９】
S225  線の終了座標を(x1, y1)としてS214へ
ここから図１３Ｂに移って、
S226  文字にまだ輪郭線データがある場合はS212へ、そうでなければS227へ
S227  すべての文字について処理を終えた場合はS228へ、そうでなければS211へ
S228  直線に関する出現頻度表から統計型圧縮を用いて符号化し、符号テーブルT1を作成する。
【００６０】
S229  曲線に関する出現頻度表から統計型圧縮を用いて符号化し、符号テーブルT2を作成する。
S230  圧縮データとして復号用のテーブルT1・T2などを含むヘッダ部分を出力
S231  アウトラインデータから１文字分の線種と座標のデータを取得
S232  輪郭線の描画開始座標(X, Y)を取得
S233  輪郭線の描画開始座標(X, Y)を圧縮データに出力
S234  取得した座標値を開始点(x1, y1)とする
S235  アウトラインデータから線の種類を取得
S236  取得した線で輪郭線が閉じられる場合はS250へ、そうでなければS237へ
ここから図１３Ｃに移って、
S237  線の種類が直線であればS238へ、そうでなければS244へ
S238  直線の終了座標(X, Y)を取得
S239  S238で取得した座標値を終了点(x2, y2)とする。
【００６１】
S240  差分値の計算Δx = x2 -x1、Δy = y2-y1を行う
S241  線の種類に対応した符号を圧縮データに出力
S242  Δxに対応する符号を符号テーブルT1から取得し、圧縮データに出力
S243  Δyに対応する符号を符号テーブルT1から取得し、圧縮データに出力。S249へ
S244  曲線の描画に必要な座標値やパラメータを取得
S245  曲線の終了座標(X, Y)を取得
S246  曲線に関する差分値の算出を行う
S247  線の種類に対応した符号を圧縮データに出力
S248  曲線に関する差分値に対応した符号を符号テーブルT2から取得し、圧縮データに出力
S249  線の終了座標を(x1, y1)としてS235へ
S250  文字にまだ輪郭線データがある場合はS232へ、そうでなければS251へ
S251  すべての文字について処理を終えた場合は終了、そうでなければS231へ。
【００６２】
図１４は、本発明の第３の実施形態に係るアウトラインフォント復元システムの概略構成を示すブロック図である。図１４において本発明の第３の実施形態に係るアウトラインフォント復元システムは、上述の圧縮システムにより圧縮されたフォントデータ（座標差分値圧縮データ、線種圧縮データ、符号テーブルT1・T2が含まれる）を格納する圧縮アウトラインフォントデータファイル１０１と、圧縮アウトラインデータファイル１０１から圧縮アウトラインフォントデータを読み取る圧縮アウトラインデータ読み取り部１０２と、読み取った圧縮アウトラインデータから線種データを復号する線種データ復号部１０３と、復号した線種データから線種を判定する線種判定部１０４と、読み取った圧縮アウトラインデータから直線に関する座標差分値についてデータ復号を行う直線の座標差分値データ復号部１０５と、読み取った圧縮アウトラインデータから曲線に関する座標差分値についてデータ復号を行う曲線の座標差分値データ復号部１０６と、復号した直線に関する座標差分値データ及び曲線に関する座標差分値データを基に座標値を計算し座標値を出力する座標値計算部１０７とで構成される。判定され出力された線種および出力された座標値を描画部１１０へ入力する。描画部１１０は入力されたデータに基づいて描画を行う。
【００６３】
図１５Ａおよび図１５Ｂは、本発明の第３の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。まず図１５Ａにおいて、
S261  圧縮データから復号用のテーブルT1・T2などを含むヘッダ部分を取得
S262  圧縮データから指定された文字１文字分の線種と座標のデータを取得
S263  輪郭線の描画開始座標(X, Y)を取得
S264  取得した座標値を開始点(x1, y1)とする
S265  圧縮データから符号化された線の種類を取得
S266  取得した線で輪郭線が閉じられる場合はS277へ、そうでなければS267へ
S267  線の種類が直線であればS268へ、そうでなければS274へ
S268  圧縮データから１つの符号化された値x’を取得
S269  S268で取得した値x’を符号テーブルT1を参照して復号し、Δxとする。
【００６４】
S270  直線の終了座標のX座標値x2はx1＋Δxとなる。
S271  圧縮データから１つの符号化された値y’を取得
ここから図１５Ｂに移って、
S272  S271で取得した値y’を符号テーブルT1を参照して復号し、Δyとする。
【００６５】
S273  直線の終了座標のY座標値y2はy1＋Δyとなる。
図１５Ａに戻って、
S274  圧縮データから符号化された座標値・パラメータを取得
S275  S274で符号化された座標値・パラメータを符号テーブルT2を参照して復号する
図１５Ｂに再び移って、
S276  線の終了座標を(x1, y1)としてS265へ
S277  文字にまだ輪郭線データがある場合はS263へ、そうでなければ終了。
【００６６】
以上説明したことを概観すれば本発明は以下のような構成を備えるものである。
（付記１）
文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、
隣り合う座標同士を接続する線の種類が直線である場合、座標値の差分がある値Ａ以上のものについては（Ａ−１）を差し引いた値を座標の差分値とし、またある値Ａを越えないものについては差分値の符号の前に差分値０を表す符号を付加することを特徴とするアウトラインフォント圧縮方法。
【００６７】
（付記２）
前記ある値Ａは、座標同士を接続する線の種類が直線であるものの座標の差分値に関して最も出現頻度の高い差分値とし、その値を格納するアウトラインフォントデータのどこかに記述しておくことを特徴とする付記１記載のアウトラインフォント圧縮方法。
【００６８】
（付記３）
前記付記１記載のアウトラインフォント圧縮方法で圧縮されたデータから圧縮前の座標値を得るアウトラインフォント復号方法であって、
線の種類が直線でない場合は、一つ前の座標値に復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が０でない場合は、一つ前の座標値に、復号された座標の差分値を（Ａ−１）の差し引かれる前の値に変換したものを加え、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が０であった場合は、次に格納されている座標の差分値を復号し、その値に一つ前の座標値を加え、輪郭を形成する座標値とする、
ことを特徴とするアウトラインフォント復号方法。
【００６９】
（付記４）
文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、
隣り合う座標同士を接続する線の種類が直線である場合、座標値の差分がある値Ａを越えるものについては値Ａを差し引いた値を座標の差分値とし、その符号の前に差分値０を表す符号を付加することを特徴とするアウトラインフォント圧縮方法。
【００７０】
（付記５）
前記ある値Ａは、０の符号長と値Ａを超える値Ｘから値Ａを差引いた後の値に対応する符号長を加算した符号長が、値Ａを差引く前の値Ｘに対応する符号長より小さくなることを条件に決定され、その値Ａをアウトラインフォントデータのどこかに記述しておくことを特徴とする付記４記載のアウトラインフォント圧縮方法。
【００７１】
（付記６）
前記付記４記載のアウトラインフォント圧縮方法で圧縮されたデータから圧縮前の座標値を得るアウトラインフォント復号方法であって、
線の種類が直線でない場合は、一つ前の座標値に復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が０でない場合は、一つ前の座標値に、復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が０であった場合は、次に格納されている座標の差分値を復号してＡの差し引かれる前の値に変換した値に、一つ前の座標値を加え、輪郭を形成する座標値とする、
ことを特徴とするアウトラインフォント復号方法。
【００７２】
（付記７）
文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、
隣り合う座標同士を接続する線の種類が直線である場合の第１の符号テーブルと、直線以外である場合の第２の符号テーブルを作成し、これら符号テーブルをフォントデータに保持することを特徴とするアウトラインフォント圧縮方法。
【００７３】
（付記８）
前記付記７記載のアウトラインフォント圧縮方法で圧縮されたデータから圧縮前の座標値を得るアウトラインフォント復号方法であって、
線の種類が直線であった場合は、一つ前の座標値に前記第１の符号テーブルを用いて復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線でない場合は、一つ前の座標値に前記第２の符号テーブルを用いて復号された座標の差分値を加えたものを、輪郭を形成する座標値とする、
ことを特徴とするアウトラインフォント復号方法。
【産業上の利用可能性】
【００７４】
本発明のアウトラインフォント圧縮方法を用いて生成されたアウトラインフォントデータは、文字表示を行うさまざまな機器に搭載可能で利用範囲が広い。そして従来、組み込み型機器に搭載されたメモリの容量が不足し、格納することができなかったような、データサイズの大きいアウトラインフォントを格納することが可能となり、すでに１書体のフォントを格納している機器においても、同じ容量で２書体以上のフォントを格納できる。
【図面の簡単な説明】
【００７５】
【図１】本発明の第１の実施形態に係るアウトラインフォント圧縮システム構成図である。
【図２】本発明の第１の実施形態に係る直線と曲線に関する差分値の出現頻度分布の例（ゴシック系のフォント）を示す図である。
【図３】一般的なアウトラインフォントのデータ記述方法を示す図である。
【図４Ａ】本発明の第１の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図４Ｂ】本発明の第１の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図４Ｃ】本発明の第１の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図４Ｄ】本発明の第１の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図５】本発明の第１の実施形態に係るアウトラインフォント復元システム構成図である。
【図６Ａ】本発明の第１の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。
【図６Ｂ】本発明の第１の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。
【図７】本発明の第２の実施形態に係るアウトラインフォント圧縮システム構成図である。
【図８】本発明の第２の実施形態に係る直線と曲線に関する差分値の出現頻度分布の例（毛筆系のフォント）を示す図である。
【図９Ａ】本発明の第２の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図９Ｂ】本発明の第２の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図９Ｃ】本発明の第２の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図９Ｄ】本発明の第２の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図９Ｅ】本発明の第２の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図１０】本発明の第２の実施形態に係るアウトラインフォント復元システム構成図である。
【図１１Ａ】本発明の第２の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。
【図１１Ｂ】本発明の第２の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。
【図１２】本発明の第３の実施形態に係るアウトラインフォント圧縮システム構成図である。
【図１３Ａ】本発明の第３の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図１３Ｂ】本発明の第３の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図１３Ｃ】本発明の第３の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。
【図１４】本発明の第３の実施形態に係るアウトラインフォント復元システム構成図である。
【図１５Ａ】本発明の第３の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。
【図１５Ｂ】本発明の第３の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。
【図１６】従来のアウトラインフォント圧縮・復元システムの構成を示す図である。
【符号の説明】
【００７６】
１１、５１、８１  アウトラインデータファイル
１２、５２、８２  アウトラインデータ読み取り部
１３、５３、８３  線種判定部
１４、５４、８４  線種データ統計取得部
１５、５５、８５  線種符号化部
１６、５６、８６  符号化線種出力部
１７、５７、８７  座標差分値計算部
１８、５８、８８  座標差分値統計取得部
１９、６０  差分値変換閾値計算部
２０、６１  座標差分値変換部
２１、６２  座標差分値出現頻度再計算部
２２、６３、８９  座標差分値符号化部
２３、６４、９０  符号化座標差分値出力部
２４、６５、９１  圧縮アウトラインフォントデータファイル
３１、７１、１０１  圧縮アウトラインフォントデータファイル
３２、７２、１０２  圧縮アウトラインフォントデータ読み取り部
３３、７３  差分値変換閾値読み取り部
３４、７４、１０３  線種データ復号部
３５、７５  座標差分値データ復号部
３６、７６、１０４  線種判定部
３７、７７  座標差分値変換部
３８、７８、１０７  座標値計算部
４０、８０、１１０  描画部
５９  閾値算出用座標差分値符号化部
１０５  直線に関する座標差分値データ復号部
１０６  曲線に関する座標差分値データ復号部
【図１】
2007248788.tif 000003
【図３】
2007248788.tif 000004
【図４Ａ】
2007248788.tif 000005
【図４Ｂ】
2007248788.tif 000006
【図４Ｃ】
2007248788.tif 000007
【図４Ｄ】
2007248788.tif 000008
【図５】
2007248788.tif 000009
【図６Ａ】
2007248788.tif 000010
【図６Ｂ】
2007248788.tif 000011
【図７】
2007248788.tif 000012
【図９Ａ】
2007248788.tif 000013
【図９Ｂ】
2007248788.tif 000014
【図９Ｃ】
2007248788.tif 000015
【図９Ｄ】
2007248788.tif 000016
【図９Ｅ】
2007248788.tif 000017
【図１０】
2007248788.tif 000018
【図１１Ａ】
2007248788.tif 000019
【図１１Ｂ】
2007248788.tif 000020
【図１２】
2007248788.tif 000021
【図１３Ａ】
2007248788.tif 000022
【図１３Ｂ】
2007248788.tif 000023
【図１３Ｃ】
2007248788.tif 000024
【図１４】
2007248788.tif 000025
【図１５Ａ】
2007248788.tif 000026
【図１５Ｂ】
2007248788.tif 000027
【図１６】
2007248788.tif 000028
【図２】
2007248788.tif 000029
【図８】
2007248788.tif 000030