JP4939824B2 - アウトラインフォント圧縮方法及び復号方法 - Google Patents

アウトラインフォント圧縮方法及び復号方法 Download PDF

Info

Publication number
JP4939824B2
JP4939824B2 JP2006071799A JP2006071799A JP4939824B2 JP 4939824 B2 JP4939824 B2 JP 4939824B2 JP 2006071799 A JP2006071799 A JP 2006071799A JP 2006071799 A JP2006071799 A JP 2006071799A JP 4939824 B2 JP4939824 B2 JP 4939824B2
Authority
JP
Japan
Prior art keywords
value
coordinate
data
difference value
outline
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006071799A
Other languages
English (en)
Other versions
JP2007248788A (ja
Inventor
浩平 寺薗
佳之 岡田
正司 武市
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MORISAWA INC.
Fujitsu Ltd
Original Assignee
MORISAWA INC.
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MORISAWA INC., Fujitsu Ltd filed Critical MORISAWA INC.
Priority to JP2006071799A priority Critical patent/JP4939824B2/ja
Priority to US11/680,314 priority patent/US8866820B2/en
Publication of JP2007248788A publication Critical patent/JP2007248788A/ja
Application granted granted Critical
Publication of JP4939824B2 publication Critical patent/JP4939824B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns

Description

LCD(Liquid Crystal Display)などの表示デバイスを持つ機器において文字表示を行う際、アウトラインフォントを用いることで1つのデータから品質の高い文字を自由なサイズで表示できる。
アウトラインフォントは輪郭線の計算や輪郭線内部の塗りつぶし計算が必要なことから従来計算処理能力の高いコンピュータでの使用が主であったが、近年携帯電話のような組み込み型機器においても処理能力の向上によりアウトラインフォントが使用されるようになってきた。
しかし組み込み型機器に搭載されるメモリの容量は小さいことが多く、少ないメモリ内にできるだけ多くの機能を実装するため、格納するデータのサイズは小さくすることが要求されている。
本発明は、線の種類によって線の両端の座標値を差分で表した場合の値に出現頻度の差が現れることを利用して統計型の圧縮法による圧縮率を向上させ、従来のアウトラインフォントデータのサイズを低減することを目指すものである。
組み込み型機器が搭載する表示デバイスでは、必要とされる文字サイズに上限があることに配慮し、本発明は従来のアウトラインフォントデータのサイズを低減することを目指すものである。
統計型の圧縮方法を用いてアウトラインフォントのデータのサイズを小さくする第1の従来技術として、特開平5-94526号公報(特許文献1)には、前制御点からの座標値の相対値をハフマン方式などで圧縮することを前提にさらなる圧縮効率の向上のために曲線部分の制御点を予測して予測点との相対値で圧縮するフォントデータ圧縮方法が記載されている。
同じく統計型の圧縮方法を用いてアウトラインフォントのデータのサイズを小さくする第2の従来技術として、特開平5-143048号公報(特許文献2)には、データのオフセット除去、データのX進数化、および座標データの直線法、誤差修正法による予測、などの処理を行ってアウトラインフォントのデータのサイズを小さくしてメモリ容量を減少させるフォントデータ圧縮方法が記載されている。
図16は、上記従来技術に係るフォントデータ圧縮/復元システムの概略構成を示す図である。すなわち、図16(a)は圧縮時のシステム構成を示す図であり、図16(b)は復元時のシステム構成を示す図である。図16(a)において従来のフォントデータ圧縮システムは、アウトラインフォントデータを格納するアウトラインデータファイル111と、アウトラインデータファイル111からアウトラインフォントデータを読み取るアウトラインデータ読み取り部112と、読み取った線種データからその線種を判定する線種判定部113と、判定した線種の統計を取得する線種データ統計取得部114と、線種出現頻度分布データを基に線種符号化を行う線種符号化部115と、符号化された線種を出力する符号化線種出力部116と、読み取った座標データを基にその線種の座標予測を行う座標予測部117と、予測値との誤差を読み取った座標データを基に計算する誤差計算部118と、計算した誤差で補正した座標値の符号化を行う座標値符号化部119と、符号化した座標値を出力する符号化座標値出力部120と、それぞれ出力された符号化線種および符号化座標値を格納する圧縮アウトラインフォントデータファイル121を備えて構成される。
図16(b)において従来のフォントデータ復元システムは、上述のフォントデータ圧縮システムにより圧縮した圧縮フォントデータを格納する圧縮アウトラインフォントデータファイル131と、圧縮アウトラインフォントデータを読み取る圧縮アウトラインデータ読み取り部132と、読み取った圧縮アウトラインデータを線種データ及び座標データを復号するデータ復号部133と、復号した線種データからその線種を判定する線種判定部134と、復号した座標データを用いて座標予測を行う座標予測部135と、予測値との誤差を補正して座標値を出力する誤差補正部136とで構成される。判定され出力された線種および誤差補正され出力された座標値は描画部140にそれぞれ入力される。描画部140は入力されたデータを基に描画を行う。
特開平5−94526号公報 特開平5−143048号公報
上記のような座標点の予測を行う従来技術に係るフォントデータ圧縮/復元システムでは、圧縮時に次に表れる点の予測に線と線の間の角度を計算する処理や、その角度を使って座標を求める処理を行うなどの処理が必要であるとともに、リアルタイム性を求められる描画時にもこれらの処理を行う必要があり、携帯電話のような機器では速度的に非効率であるという課題があった。
また、座標点の予測は特許文献2に書かれているような直線同士が大体同じ角度で交わり、その距離は大体同じである場合以外は予測による圧縮の効果が得られないばかりか逆に圧縮率が悪くなるという課題があった。
上記のような問題を解決するために本発明は、予測の処理は行わず、フォント輪郭上の隣り合う座標の差分値に対して統計を取って座標差分値出現頻度分布データを求め、該分布データを基に差分値変換閾値を求めて保持し、差分値変換閾値を用いて線の種類が直線のものについてそれ以外のものとの差分値の出現頻度分布が類似するように差分値を変換処理した後に座標差分値を統計型の圧縮法を用いて符号化して圧縮効率を高めるアウトラインフォント圧縮/復号方法を提供することを目的とする。
上記課題を解決するために本発明は、文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、上記読み出したアウトラインフォントデータを用いて上記線のそれぞれの両端の座標値の差分を算出し、上記算出した差分値のうち、出現頻度の最も高い差分値の絶対値を閾値Aとして算出し、隣り合う座標同士を接続する線の種類が直線である場合、座標値の差分が上記閾値A以上のものについては(上記閾値A−1)を差し引いた値を座標の差分値とし、また上記閾値Aを越えないものについては差分値の符号の前に差分値0を表す符号を付加することを特徴とする。
本発明によれば、フォント輪郭上の隣り合う座標の差分値に対して統計をとり、統計型の圧縮法を用いて符号化する際に、隣り合う座標間を接続する線の種類が直線のものについて、それ以外のものとの差分値の出現頻度分布が類似するように差分値を変換処理した後、再度符号化を行うことで圧縮効率を高めることができる。
以下、本発明の実施の形態を、図面を参照しながら説明する。
一般的にアウトラインフォントのデータは、データの性質などを記述したヘッダ部分と各文字の輪郭を記述する部分から構成される。図3は、一般的なアウトラインフォントのデータ記述方法を示す図である。本実施例では図3に示すように「木」という文字の輪郭を記述するデータとして座標値(X座標、Y座標で示される)と各座標を結ぶ線の種類(直線、ベジェ曲線等)を、閉曲線のある1点から時計回りに輪郭描画順に並べて記述されたものを使用する。なお、閉曲線のある1点から反時計回りに輪郭描画順に並べて記述されたものを使用しても良い。また、本実施例では元のアウトラインデータが256×256ピクセルのサイズでデザインされているものを使用するものとする。
[実施の形態1]
図1は、本発明の第1の実施形態に係るアウトラインフォント圧縮システムの概略構成を示すブロック図である。図1において本発明の第1の実施形態に係るアウトラインフォント圧縮システムは、アウトラインフォントデータを格納するアウトラインデータファイル11と、アウトラインフォントデータから線種データおよび座標データを読み取るアウトラインデータ読み取り部12と、読み取った線種データから線種を判定する線種判定部13と、線種データについて統計をとり、線種出現頻度分布データを取得する線種データ統計取得部14と、線種出現頻度分布データを基に線種符号化を行う線種符号化部15と、符号化した線種を出力する符号化線種出力部16と、読み取った座標データから隣接する座標値の差分を計算する座標差分値計算部17と、座標差分値の統計をとり座標差分値出現頻度分布データを取得する座標差分値統計取得部18と、(第1の)座標差分値出現頻度分布データを基に差分値変換閾値(直線の両端として隣接している座標の差分値について差分値の絶対値の頻度を見て最も出現頻度の高い値)を計算し保持する差分値変換閾値計算部19と、直線の両端として隣接している座標の差分値について差分値変換閾値計算部19に保持された差分値変換閾値を基に座標差分変換を行う座標差分値変換部20と、座標差分値変換が行われた直線及びそれ以外の座標差分値に対して座標差分値出現頻度分布データを再計算する座標差分値出現頻度再計算部21と、(第2の)座標差分値出現頻度分布データを基に座標差分値を符号化する座標差分値符号化部22と、符号化した座標差分値を出力する符号化座標差分値出力部23と、それぞれ出力された符号化線種および符号化座標差分値を格納する圧縮アウトラインフォントデータファイル24を備えて構成される。
図2は、本発明の第1の実施形態に係る直線と曲線に関する差分値の出現頻度分布の例(ゴシック系のフォント)を示す図である。図2を図1に示した構成に基づいて説明すると、座標差分値統計取得部18において書体がゴシック系のフォントに係る統計をとると、曲線を構成する座標の差分値出現頻度分布(A)と直線の両端座標の差分値出現頻度分布(B)を得ることができる。直線の両端座標の差分値出現頻度分布(B)は、絶対値の小さい所は差分値の出現頻度が低いが絶対値の大きい所まで差分値の出現頻度が広く分布している特性を示すことに鑑み、本発明の第1の実施形態では、差分値変換閾値計算部19が差分値変換閾値(これをAとする)を差分値の出現頻度がピークとなる値として計算により求める。座標差分値変換部20は、この差分値変換閾値(A)に対してすべての直線の両端となる座標の差分値について座標値の差分が閾値A以上のものについては(A−1)を差し引いた値を座標の差分値とし、値Aを越えないものについては差分値の符号の前に差分値0を表す符号を付加するという変換を行う。このような変換を行った後で、座標差分値出現頻度再計算部21は直線の両端座標の差分値出現頻度分布を再計算することで差分値出現頻度分布(B’)を得る。座標差分値符号化部22は、曲線を構成する座標の差分値出現頻度分布(A)と直線の両端座標の差分値出現頻度分布(B’)から合計した差分値出現頻度分布(C)を基に座標差分値符号化を行う。その結果、本発明の第1の実施形態は、差分値0をフラグとして付加することで増えるデータ量よりも、差分値の出現頻度の偏りが大きくなることで向上する圧縮効果のほうが大きく、圧縮後の最終的なデータサイズを減らすことができる。
図4A〜図4Dは、本発明の第1の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。本発明においては、直線以外の線にはベジェ曲線や円弧などがあるが、これらをまとめて「曲線」と表現する。
図4A〜図4Dのフローチャートの説明に移るまえに、本発明の第1の実施形態に係るアウトラインフォント圧縮システムの動作を概略的に説明する。まず、アウトラインフォントデータファイルに格納されているすべての文字の輪郭線データから輪郭線の線種とその線の座標値を読み出し、隣接する座標の差分値を計算する。直線の両端として隣接している座標の差分値だけについて、差分値の絶対値の出現頻度を見て、最も出現頻度の高い値を閾値Aとして記憶する。さらにすべての直線の両端となる座標の差分値について、座標値の差分が閾値A以上のものについては(A−1)を差し引いた値を座標の差分値とし、値Aを越えないものについては差分値の符号の前に差分値0を表す符号を付加するという変換を行う。この変換を行った後、すべての差分値の出現頻度を参照して統計型の符号化を行う。また、線種についても出現頻度を算出し、統計型の符号化を行う。統計型の符号化を行ったデータは圧縮アウトラインフォントファイルに格納する。圧縮後のアウトラインフォントデータは、元のアウトラインフォントデータの線種・座標データを符号化されたデータに置き換えたものになる。
ここから図4A〜図4Dのフローチャートの説明に移る。まず図4Aにおいて、
S1 アウトラインデータから1文字分の線種と座標のデータを取得
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へ。
ここから図4Bに移って、
S17 すべての文字について処理を終えた場合はS18へ、そうでなければS1へ
S18 直線に関する出現頻度表において、最も出現頻度の高い差分値の絶対値をAとする
S19 X=1とする。
S20 XがAより小さい場合S21へ、そうでなければS22へ
S21 直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値0の出現数に加算し、S24へ
S22 直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値(X-A+1)の出現数に加算する
S23 Xを1増加させる。
S24 Xが256であればS25へ、そうでなければS20へ
S25 X=−1とする。
S26 Xの絶対値がAより小さい場合S27へ、そうでなければS28へ
S27 直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値0の出現数に加算し、S30へ
S28 直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値(X+A-1)の出現数に加算する
S29 Xを1減少させる。
S30 Xが−256であればS31へ、そうでなければS26へ。
ここから図4Cに移って、
S31 曲線に関する出現頻度表から統計型圧縮の符号化を行う
S32 圧縮データとして復号用のテーブルなどを含むヘッダ部分を出力
S33 圧縮データに値Aを出力
S34 アウトラインデータから1文字分の線種と座標のデータを取得
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を行う
ここから図4Dに移って、
S44 線の種類に対応した符号を圧縮データに出力
S45 Δxが値Aより小さい場合S46へ、そうでなければS48へ
S46 0に対応する符号を圧縮データに出力
S47 Δxに対応する符号を圧縮データに出力しS49へ
S48 Δxから値(A-1)を差し引いた値に対応する符号を圧縮データに出力する
S49 Δyが値Aより小さい場合S50へ、そうでなければS52へ
S50 0に対応する符号を圧縮データに出力
S51 Δyに対応する符号を圧縮データに出力しS58へ
S52 Δyから値(A-1)を差し引いた値に対応する符号を圧縮データに出力しS58へ
図4Cに戻って、
S53 曲線の描画に必要な座標値やパラメータを取得
S54 曲線の終了座標(X, Y)を取得
S55 曲線に関する差分値の算出を行う
図4Dに再び移って、
S56 線の種類に対応した符号を圧縮データに出力
S57 曲線に関する差分値に対応した符号を圧縮データに出力
S58 線の終了座標を(x1, y1)としてS38へ
S59 文字にまだ輪郭線データがある場合はS35へ、そうでなければS60へ
S60 すべての文字について処理を終えた場合は終了、そうでなければS34へ。
図5は、本発明の第1の実施形態に係るアウトラインフォント復元システムの概略構成を示すブロック図である。図5において本発明の第1の実施形態に係るアウトラインフォント復元システムは、上述の圧縮システムにより圧縮されたフォントデータ(座標差分値圧縮データ、線種圧縮データ、符号テーブルが含まれる)を格納する圧縮アウトラインフォントデータファイル31と、圧縮アウトラインデータファイル31から圧縮アウトラインフォントデータを読み取る圧縮アウトラインデータ読み取り部32と、圧縮アウトラインデータファイル31から差分値変換閾値を読み取り保持する差分値変換閾値読み取り部33と、読み取った圧縮アウトラインデータから線種データを復号する線種データ復号部34と、読み取った圧縮アウトラインデータから座標差分値データを復号する座標差分値データ復号部35と、線種データから線種を判定する線種判定部36と、座標差分値データにおいて直線の両端として隣接している座標の差分値について差分値変換閾値読み取り部33で保持された差分値変換閾値を基に座標差分値変換を行う座標差分値変換部37と、直線の両端以外の差分値データおよび変換された直線の両端に係る座標差分値データを基に座標値を計算し座標値を出力する座標値計算部38とで構成される。判定され出力された線種および出力された座標値を描画部40へ入力する。描画部40は入力されたデータを基に描画を行う。
図6Aおよび図6Bは、本発明の第1の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。まず図6Aにおいて、
S71 圧縮データから復号用のテーブルなどを含むヘッダ部分を取得
S72 圧縮データから値Aを取得
S73 圧縮データから指定された文字1文字分の線種と座標のデータを取得
S74 輪郭線の描画開始座標(X, Y)を取得
S75 取得した座標値を開始点(x1, y1)とする
S76 圧縮データから符号化された線の種類を取得
S77 取得した線で輪郭線が閉じられる場合はS100へ、そうでなければS78へ
S78 線の種類が直線であればS79へ、そうでなければS97へ
S79 圧縮データから1つの符号化された値x’を取得
S80 S79で取得した値x’を復号し、Δxとする。
S81 Δxが0の場合S82へ、そうでなければS85へ
S82 圧縮データから1つの符号化された値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へ
ここから図6Bに移って、
S88 圧縮データから1つの符号化された値y’を取得
S89 S88で取得した値y’を復号し、Δyとする。
S90 Δyが0の場合S91へ、そうでなければS94へ
S91 圧縮データから1つの符号化された値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へ
図6Aに戻って、
S97 圧縮データから符号化された座標値・パラメータを取得
S98 S97で符号化された座標値・パラメータを復号する
図6Bに再び移って、
S99 線の終了座標を(x1, y1)としてS76へ
S100 文字にまだ輪郭線データがある場合はS74へ、そうでなければ終了。
[実施の形態2]
図7は、本発明の第2の実施形態に係るアウトラインフォント圧縮システムの概略構成を示すブロック図である。図7において本発明の第2の実施形態に係るアウトラインフォント圧縮システムは、アウトラインフォントデータを格納するアウトラインデータファイル51と、アウトラインフォントデータから線種データおよび座標データを読み取るアウトラインデータ読み取り部52と、読み取った線種データから線種を判定する線種判定部53と、線種データについて統計をとり線種出現頻度分布データを取得する線種データ統計取得部54と、線種出現頻度分布データを基に線種符号化を行う線種符号化部55と、符号化した線種を出力する符号化線種出力部56と、読み取った座標データから隣接する座標値の差分を計算する座標差分値計算部57と、座標差分値の統計をとり座標差分値出現頻度分布データを取得する座標差分値統計取得部58と、(第1の)座標差分値出現頻度分布データから差分値変換閾値を算出するために座標差分値を符号化する閾値算出用座標差分値符号化部59と、符号化された座標差分値から差分値変換閾値を計算し保持する差分値変換閾値計算部60と、直線の両端として隣接している座標の差分値について差分値変換閾値計算部60に保持された差分値変換閾値を基に座標差分変換を行う座標差分値変換部61と、座標差分値変換が行われた直線及びそれ以外の座標差分値に対して座標差分値出現頻度分布データを再計算する座標差分値出現頻度再計算部62と、(第2の)座標差分値出現頻度分布データを基に座標差分値を符号化する座標差分値符号化部63と、符号化した座標差分値を出力する符号化座標差分値出力部64と、それぞれ出力された符号化線種および符号化座標差分値を格納する圧縮アウトラインフォントデータファイル65を備えて構成される。
図8は、本発明の第2の実施形態に係る直線と曲線に関する差分値の出現頻度分布の例(毛筆系のフォント)を示す図である。図8を図7に示した構成に基づいて説明すると、座標差分値統計取得部58において書体が毛筆系のフォントに係る統計をとると、曲線を構成する座標の差分値出現頻度分布(A)と直線の両端座標の差分値出現頻度分布(B)を得ることができる。直線の両端座標の差分値出現頻度分布(B)は、絶対値の大きい所は差分値の出現頻度が低く、絶対値の小さい所でも差分値の出現頻度が高い特性を示すことに鑑み、本発明の第2の実施形態では、閾値算出用座標差分値符号化部59は、上記差分値の頻度分布から、統計型の符号化を行いそれぞれの差分値に対応する符号を得る。そして、差分値変換閾値計算部60がある値Aより絶対値が大きい差分値XからAを差し引いた値に対応する符号の符号長と差分値0の符号長を足し合わせた符号長がXに対応する符号の符号長より小さくなるような値を計算して差分値変換閾値(A)として決定し保持する。座標差分値変換部62は、この差分値変換閾値(A)に対してすべての直線の両端となる座標の差分値について座標値の差分が閾値A以上のものについては値Aを差し引いた値を座標の差分値とし、その符号の前に差分値0を表す符号を付加するという変換を行う。このような変換を行った後で、座標差分値出現頻度再計算部62は直線の両端座標の差分値出現頻度分布を再計算することで差分値出現頻度分布(B’)を得る。座標差分値符号化部63は、曲線を構成する座標の差分値出現頻度分布(A)と直線の両端座標の差分値出現頻度分布(B’)から合計した差分値出現頻度分布(C)を基に座標差分値符号化を行う。その結果、本発明の第2の実施形態は、差分値0をフラグとして付加することで増えるデータ量よりも、差分値の出現頻度の偏りが大きくなることで向上する圧縮効果のほうが大きく、圧縮後の最終的なデータサイズを減らすことができる。
図9A〜図9Eは、本発明の第2の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。本発明においては、直線以外の線にはベジェ曲線や円弧などがあるが、これらをまとめて「曲線」と表現する。
図9A〜図9Eのフローチャートの説明に移るまえに、本発明の第2の実施形態に係るアウトラインフォント圧縮システムの動作を概略的に説明する。まず、アウトラインフォントデータファイルに格納されているすべての文字の輪郭線データから輪郭線の線種とその線の座標値を読み出し、隣接する座標の差分値を計算する。上記差分値の頻度分布から、統計型の符号化を行いそれぞれの差分値に対応する符号を得る。そして、ある値Aより絶対値が大きい差分値XからAを差し引いた値に対応する符号の符号長と差分値0の符号長を足し合わせた符号長がXに対応する符号の符号長より小さくなるような値を計算して差分値変換閾値(A)として決定し保持する。この差分値変換閾値(A)に対してすべての直線の両端となる座標の差分値について座標値の差分が閾値A以上のものについては値Aを差し引いた値を座標の差分値とし、その符号の前に差分値0を表す符号を付加するという変換を行う。この変換を行った後、すべての差分値の出現頻度を参照して統計型の符号化を行う。また、線種についても出現頻度を算出し、統計型の符号化を行う。統計型の符号化を行ったデータは圧縮アウトラインフォントファイルに格納する。圧縮後のアウトラインフォントデータは、元のアウトラインフォントデータの線種・座標データを符号化されたデータに置き換えたものになる。
ここから図9A〜図9Eのフローチャートの説明に移る。まず図9Aにおいて、
S101 アウトラインデータから1文字分の線種と座標のデータを取得
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へ
ここから図9Bに移って、
S117 すべての文字について処理を終えた場合はS118へ、そうでなければS101へ
S118 直線曲線両方の出現頻度を合わせた出現頻度から統計型圧縮を用いて符号化する
S119 A=1とする。
S120 M=1とする
S121 Xの値をA+Mの値にする
S122 差分値(X−A)に対応する符号の符号長と差分値0に対応する符号の符号長を足し合わせた符号長が差分値Xに対応する符号長より小さければS123へ。そうでなければS127へ。
S123 Xの値を−A−Mの値にする
S124 差分値(X+A)に対応する符号の符号長と差分値0に対応する符号の符号長を足し合わせた符号長が差分値Xに対応する符号長より小さければS125へ。そうでなければS127へ。
S125 Mの値を1増加させる
S126 Aの値とMの値の合計が256であればS129へ。そうでなければS121へ
S127 Aの値を1増加させる
S128 Aの値が256であればS129へ、そうでなければS120へ。
S129 Xの値を1とする
ここから図9Cに移って、
S130 XがAより小さい場合S131へ、そうでなければS132へ
S131 直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値Xの出現数に加算し、S134へ
S132 直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値0の出現数に加算する
S133 直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値(X-A)の出現数に加算する
S134 Xを1増加させる。
S135 Xが256であればS136へ、そうでなければS130へ
S136 X=−1とする。
S137 Xの絶対値がAより小さい場合S138へ、そうでなければS139へ
S138 直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値Xの出現数に加算し、S141へ
S139 直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値0の出現数に加算する
S140 直線に関する出現頻度表において、Xの出現数を曲線に関する出現頻度表の差分値(X+A)の出現数に加算する
S141 Xを1減少させる。
S142 Xが−256であればS143へ、そうでなければS137へ
S143 曲線に関する出現頻度表から統計型圧縮の符号化を行う
S144 圧縮データとして復号用のテーブルなどを含むヘッダ部分を出力
ここから図9Dに移って、
S145 圧縮データに値Aを出力
S146 アウトラインデータから1文字分の線種と座標のデータを取得
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が値Aより小さい場合S158へ、そうでなければS159へ
ここから図9Eに移って、
S158 Δxに対応する符号を圧縮データに出力しS161へ
S159 0に対応する符号を圧縮データに出力
S160 Δxから値Aを差し引いた値に対応する符号を圧縮データに出力する
S161 Δyが値Aより小さい場合S162へ、そうでなければS163へ
S162 Δyに対応する符号を圧縮データに出力しS170へ
S163 0に対応する符号を圧縮データに出力
S164 Δyから値Aを差し引いた値に対応する符号を圧縮データに出力しS170へ
図9Dに戻って、
S165 曲線の描画に必要な座標値やパラメータを取得
S166 曲線の終了座標(X, Y)を取得
S167 曲線に関する差分値の算出を行う
S168 線の種類に対応した符号を圧縮データに出力
S169 曲線に関する差分値に対応した符号を圧縮データに出力
図9Eに再び移って、
S170 線の終了座標を(x1, y1)としてS150へ
S171 文字にまだ輪郭線データがある場合はS147へ、そうでなければS172へ
S172 すべての文字について処理を終えた場合は終了、そうでなければS146へ。
図10は、本発明の第2の実施形態に係るアウトラインフォント復元システムの概略構成を示すブロック図である。図10において本発明の第2の実施形態に係るアウトラインフォント復元システムは、上述の圧縮システムにより圧縮されたフォントデータ(座標差分値圧縮データ、線種圧縮データ、符号テーブルが含まれる)を格納する圧縮アウトラインフォントデータファイル71と、圧縮アウトラインデータファイル71から圧縮アウトラインフォントデータを読み取る圧縮アウトラインデータ読み取り部72と、圧縮アウトラインデータファイル71から差分値変換閾値を読み取り保持する差分値変換閾値読み取り部73と、読み取った圧縮アウトラインデータから線種データを復号する線種データ復号部74と、読み取った圧縮アウトラインデータから座標差分値データを復号する座標差分値データ復号部75と、線種データから線種を判定する線種判定部76と、座標差分値データにおいて直線の両端として隣接している座標の差分値について差分値変換閾値読み取り部73で保持された差分値変換閾値を基に座標差分値変換を行う座標差分値変換部77と、直線の両端以外の差分値データおよび変換された直線の両端に係る座標差分値データを基に座標値を計算し座標値を出力する座標値計算部78とで構成される。判定され出力された線種および出力された座標値を描画部80へ入力する。描画部80は入力されたデータに基づいて描画を行う。
図11Aおよび図11Bは、本発明の第2の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。まず図11Aにおいて、
S181 圧縮データから復号用のテーブルなどを含むヘッダ部分を取得
S182 圧縮データから値Aを取得
S183 圧縮データから指定された文字1文字分の線種と座標のデータを取得
S184 輪郭線の描画開始座標(X, Y)を取得
S185 取得した座標値を開始点(x1, y1)とする
S186 圧縮データから符号化された線の種類を取得
S187 取得した線で輪郭線が閉じられる場合はS210へ、そうでなければS188へ
S188 線の種類が直線であればS189へ、そうでなければS207へ
S189 圧縮データから1つの符号化された値x’を取得
S190 S189で取得した値x’を復号し、Δxとする。
S191 Δxが0の場合S192へ、そうでなければS193へ
ここから図11Bに移って、
S192 直線の終了座標のX座標値x2はx1+Δxとなる。S198へ
図11Aに戻って、
S193 圧縮データから1つの符号化された値x’を取得
S194 S193で取得した値x’を復号し、Δxとする。
図11Bに再び移って、
S195 Δxが正の値であればS196へ、そうでなければS197へ
S196 直線の終了座標のX座標値x2はx1+Δx + Aとなる。S198へ
S197 直線の終了座標のX座標値x2はx1+Δx - Aとなる。S198へ
S198 圧縮データから1つの符号化された値y’を取得
S199 S198で取得した値y’を復号し、Δyとする。
S200 Δyが0の場合S201へ、そうでなければS202へ
S201 直線の終了座標のY座標値y2はy1+Δyとなる。そしてS209へ
S202 圧縮データから1つの符号化された値y’を取得
S203 S202で取得した値y’を復号し、Δyとする。
S204 Δyが正の値であればS205へ、そうでなければS206へ
S205 直線の終了座標のY座標値y2はy1+Δy + Aとなる。S209へ
S206 直線の終了座標のY座標値y2はy1+Δy - Aとなる。S209へ
図11Aに戻って、
S207 圧縮データから符号化された座標値・パラメータを取得
S208 S207で符号化された座標値・パラメータを復号する
図11Bに再び移って、
S209 線の終了座標を(x1, y1)としてS186へ
S210 文字にまだ輪郭線データがある場合はS184へ、そうでなければ終了。
[実施の形態3]
図12は、本発明の第3の実施形態に係るアウトラインフォント圧縮システムの概略構成を示すブロック図である。図12において本発明の第3の実施形態に係るアウトラインフォント圧縮システムは、アウトラインフォントデータを格納するアウトラインデータファイル81と、アウトラインフォントデータから線種データおよび座標データを読み取るアウトラインデータ読み取り部82と、読み取った線種データから線種を判定する線種判定部83と、線種データについて統計をとり線種出現頻度分布データを取得する線種データ統計取得部84と、線種出現頻度分布データを基に線種符号化を行う線種符号化部85と、符号化した線種を出力する符号化線種出力部86と、読み取った座標データから隣接する座標値の差分を計算する座標差分値計算部87と、座標差分値の統計をとり座標差分値出現頻度分布データを取得する座標差分値統計取得部88と、直線の両端として隣接している座標の差分値について第1の座標差分値出現頻度分布データを取得し、直線の両端以外(すなわち曲線)で隣接している座標の差分値について第2の座標差分値出現頻度分布データを取得し、これらの座標差分値出現頻度分布データを基に座標差分値を符号化して符号テーブルT1及び符号テーブルT2を作成する座標差分値符号化部89と、符号化した座標差分値を出力する符号化座標差分値出力部90、それぞれ出力された符号化線種および符号化座標差分値を格納する圧縮アウトラインフォントデータファイル91を備えて構成される。
図13A〜図13Cは、本発明の第3の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。本発明においては、直線以外の線にはベジェ曲線や円弧などがあるが、これらをまとめて「曲線」と表現する。
図13A〜図13Cのフローチャートの説明に移るまえに、本発明の第3の実施形態に係るアウトラインフォント圧縮システムの動作を概略的に説明する。まず、アウトラインフォントデータファイルに格納されているすべての文字の輪郭線データから輪郭線の線種とその線の座標値を読み出し、隣接する座標の差分値を計算する。すべての直線の両端となる座標の差分値について、出現頻度を参照して統計型の符号化を行い、符号テーブルT1を作成する。さらに上記で参照されなかった曲線に関する座標の差分値について、出現頻度を参照して統計型の符号化を行い、符号テーブルT2を作成する。また、線種についても出現頻度を算出し、統計型の符号化を行う。統計型の符号化を行ったデータは圧縮アウトラインフォントファイルに格納する。圧縮後のアウトラインフォントデータは、元のアウトラインフォントデータの線種・座標データを符号化されたデータに置き換えたものになる。本発明の第3の実施形態は、上記第1及び第2の実施形態のように差分値の変換処理を行うことでも、接続する線種が直線であるものと直線で無いものの、隣り合う座標の差分値の出現頻度分布を類似させることができず圧縮効率が上がらないような書体の場合には変換処理を行わずにそのまま2つの符号テーブルを保持する。この場合、2つの符号テーブルを持つことで符号テーブルサイズは増加するが、2つ符号テーブルを持つことによって向上する圧縮効果のほうが大きく、圧縮後の最終的なデータサイズを減らすことができる。
ここから図13A〜図13Cのフローチャートの説明に移る。まず図13Aにおいて、
S211 アウトラインデータから1文字分の線種と座標のデータを取得
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へ
ここから図13Bに移って、
S226 文字にまだ輪郭線データがある場合はS212へ、そうでなければS227へ
S227 すべての文字について処理を終えた場合はS228へ、そうでなければS211へ
S228 直線に関する出現頻度表から統計型圧縮を用いて符号化し、符号テーブルT1を作成する。
S229 曲線に関する出現頻度表から統計型圧縮を用いて符号化し、符号テーブルT2を作成する。
S230 圧縮データとして復号用のテーブルT1・T2などを含むヘッダ部分を出力
S231 アウトラインデータから1文字分の線種と座標のデータを取得
S232 輪郭線の描画開始座標(X, Y)を取得
S233 輪郭線の描画開始座標(X, Y)を圧縮データに出力
S234 取得した座標値を開始点(x1, y1)とする
S235 アウトラインデータから線の種類を取得
S236 取得した線で輪郭線が閉じられる場合はS250へ、そうでなければS237へ
ここから図13Cに移って、
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へ。
図14は、本発明の第3の実施形態に係るアウトラインフォント復元システムの概略構成を示すブロック図である。図14において本発明の第3の実施形態に係るアウトラインフォント復元システムは、上述の圧縮システムにより圧縮されたフォントデータ(座標差分値圧縮データ、線種圧縮データ、符号テーブルT1・T2が含まれる)を格納する圧縮アウトラインフォントデータファイル101と、圧縮アウトラインデータファイル101から圧縮アウトラインフォントデータを読み取る圧縮アウトラインデータ読み取り部102と、読み取った圧縮アウトラインデータから線種データを復号する線種データ復号部103と、復号した線種データから線種を判定する線種判定部104と、読み取った圧縮アウトラインデータから直線に関する座標差分値についてデータ復号を行う直線の座標差分値データ復号部105と、読み取った圧縮アウトラインデータから曲線に関する座標差分値についてデータ復号を行う曲線の座標差分値データ復号部106と、復号した直線に関する座標差分値データ及び曲線に関する座標差分値データを基に座標値を計算し座標値を出力する座標値計算部107とで構成される。判定され出力された線種および出力された座標値を描画部110へ入力する。描画部110は入力されたデータに基づいて描画を行う。
図15Aおよび図15Bは、本発明の第3の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。まず図15Aにおいて、
S261 圧縮データから復号用のテーブルT1・T2などを含むヘッダ部分を取得
S262 圧縮データから指定された文字1文字分の線種と座標のデータを取得
S263 輪郭線の描画開始座標(X, Y)を取得
S264 取得した座標値を開始点(x1, y1)とする
S265 圧縮データから符号化された線の種類を取得
S266 取得した線で輪郭線が閉じられる場合はS277へ、そうでなければS267へ
S267 線の種類が直線であればS268へ、そうでなければS274へ
S268 圧縮データから1つの符号化された値x’を取得
S269 S268で取得した値x’を符号テーブルT1を参照して復号し、Δxとする。
S270 直線の終了座標のX座標値x2はx1+Δxとなる。
S271 圧縮データから1つの符号化された値y’を取得
ここから図15Bに移って、
S272 S271で取得した値y’を符号テーブルT1を参照して復号し、Δyとする。
S273 直線の終了座標のY座標値y2はy1+Δyとなる。
図15Aに戻って、
S274 圧縮データから符号化された座標値・パラメータを取得
S275 S274で符号化された座標値・パラメータを符号テーブルT2を参照して復号する
図15Bに再び移って、
S276 線の終了座標を(x1, y1)としてS265へ
S277 文字にまだ輪郭線データがある場合はS263へ、そうでなければ終了。
以上説明したことを概観すれば本発明は以下のような構成を備えるものである。
(付記1)
文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、
隣り合う座標同士を接続する線の種類が直線である場合、座標値の差分がある値A以上のものについては(A−1)を差し引いた値を座標の差分値とし、またある値Aを越えないものについては差分値の符号の前に差分値0を表す符号を付加することを特徴とするアウトラインフォント圧縮方法。
(付記2)
前記ある値Aは、座標同士を接続する線の種類が直線であるものの座標の差分値に関して最も出現頻度の高い差分値とし、その値を格納するアウトラインフォントデータのどこかに記述しておくことを特徴とする付記1記載のアウトラインフォント圧縮方法。
(付記3)
前記付記1記載のアウトラインフォント圧縮方法で圧縮されたデータから圧縮前の座標値を得るアウトラインフォント復号方法であって、
線の種類が直線でない場合は、一つ前の座標値に復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が0でない場合は、一つ前の座標値に、復号された座標の差分値を(A−1)の差し引かれる前の値に変換したものを加え、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が0であった場合は、次に格納されている座標の差分値を復号し、その値に一つ前の座標値を加え、輪郭を形成する座標値とする、
ことを特徴とするアウトラインフォント復号方法。
(付記4)
文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、
隣り合う座標同士を接続する線の種類が直線である場合、座標値の差分がある値Aを越えるものについては値Aを差し引いた値を座標の差分値とし、その符号の前に差分値0を表す符号を付加することを特徴とするアウトラインフォント圧縮方法。
(付記5)
前記ある値Aは、0の符号長と値Aを超える値Xから値Aを差引いた後の値に対応する符号長を加算した符号長が、値Aを差引く前の値Xに対応する符号長より小さくなることを条件に決定され、その値Aをアウトラインフォントデータのどこかに記述しておくことを特徴とする付記4記載のアウトラインフォント圧縮方法。
(付記6)
前記付記4記載のアウトラインフォント圧縮方法で圧縮されたデータから圧縮前の座標値を得るアウトラインフォント復号方法であって、
線の種類が直線でない場合は、一つ前の座標値に復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が0でない場合は、一つ前の座標値に、復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線であった場合で、かつ復号された座標の差分値が0であった場合は、次に格納されている座標の差分値を復号してAの差し引かれる前の値に変換した値に、一つ前の座標値を加え、輪郭を形成する座標値とする、
ことを特徴とするアウトラインフォント復号方法。
(付記7)
文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、
隣り合う座標同士を接続する線の種類が直線である場合の第1の符号テーブルと、直線以外である場合の第2の符号テーブルを作成し、これら符号テーブルをフォントデータに保持することを特徴とするアウトラインフォント圧縮方法。
(付記8)
前記付記7記載のアウトラインフォント圧縮方法で圧縮されたデータから圧縮前の座標値を得るアウトラインフォント復号方法であって、
線の種類が直線であった場合は、一つ前の座標値に前記第1の符号テーブルを用いて復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
線の種類が直線でない場合は、一つ前の座標値に前記第2の符号テーブルを用いて復号された座標の差分値を加えたものを、輪郭を形成する座標値とする、
ことを特徴とするアウトラインフォント復号方法。
本発明のアウトラインフォント圧縮方法を用いて生成されたアウトラインフォントデータは、文字表示を行うさまざまな機器に搭載可能で利用範囲が広い。そして従来、組み込み型機器に搭載されたメモリの容量が不足し、格納することができなかったような、データサイズの大きいアウトラインフォントを格納することが可能となり、すでに1書体のフォントを格納している機器においても、同じ容量で2書体以上のフォントを格納できる。
本発明の第1の実施形態に係るアウトラインフォント圧縮システム構成図である。 本発明の第1の実施形態に係る直線と曲線に関する差分値の出現頻度分布の例(ゴシック系のフォント)を示す図である。 一般的なアウトラインフォントのデータ記述方法を示す図である。 本発明の第1の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第1の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第1の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第1の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第1の実施形態に係るアウトラインフォント復元システム構成図である。 本発明の第1の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。 本発明の第1の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るアウトラインフォント圧縮システム構成図である。 本発明の第2の実施形態に係る直線と曲線に関する差分値の出現頻度分布の例(毛筆系のフォント)を示す図である。 本発明の第2の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るアウトラインフォント復元システム構成図である。 本発明の第2の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。 本発明の第3の実施形態に係るアウトラインフォント圧縮システム構成図である。 本発明の第3の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第3の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第3の実施形態に係るアウトラインフォント圧縮システムの動作を説明するためのフローチャートである。 本発明の第3の実施形態に係るアウトラインフォント復元システム構成図である。 本発明の第3の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。 本発明の第3の実施形態に係るアウトラインフォント復元システムの動作を説明するためのフローチャートである。 従来のアウトラインフォント圧縮・復元システムの構成を示す図である。
符号の説明
11、51、81 アウトラインデータファイル
12、52、82 アウトラインデータ読み取り部
13、53、83 線種判定部
14、54、84 線種データ統計取得部
15、55、85 線種符号化部
16、56、86 符号化線種出力部
17、57、87 座標差分値計算部
18、58、88 座標差分値統計取得部
19、60 差分値変換閾値計算部
20、61 座標差分値変換部
21、62 座標差分値出現頻度再計算部
22、63、89 座標差分値符号化部
23、64、90 符号化座標差分値出力部
24、65、91 圧縮アウトラインフォントデータファイル
31、71、101 圧縮アウトラインフォントデータファイル
32、72、102 圧縮アウトラインフォントデータ読み取り部
33、73 差分値変換閾値読み取り部
34、74、103 線種データ復号部
35、75 座標差分値データ復号部
36、76、104 線種判定部
37、77 座標差分値変換部
38、78、107 座標値計算部
40、80、110 描画部
59 閾値算出用座標差分値符号化部
105 直線に関する座標差分値データ復号部
106 曲線に関する座標差分値データ復号部

Claims (2)

  1. 文字の輪郭描画に必要な座標値が時計回りまたは反時計回りに輪郭描画順に格納され、且つ座標同士を接続する線の種類も同時に格納されているアウトラインフォントデータを読み出してアウトラインフォントデータの座標値を圧縮する際に隣り合って格納されている座標値の差分を統計型の符号化方式で圧縮するアウトラインフォント圧縮方法であって、
    前記読み出したアウトラインフォントデータを用いて前記線のそれぞれの両端の座標値の差分を算出し、
    前記算出した差分値のうち、出現頻度の最も高い差分値の絶対値を閾値Aとして算出し、
    隣り合う座標同士を接続する線の種類が直線である場合、座標値の差分が前記閾値A以上のものについては(前記閾値A−1)を差し引いた値を座標の差分値とし、また前記閾値Aを越えないものについては差分値の符号の前に差分値0を表す符号を付加することを特徴とするアウトラインフォント圧縮方法。
  2. 前記請求項1記載のアウトラインフォント圧縮方法で圧縮されたデータから圧縮前の座標値を得るアウトラインフォント復号方法であって、
    線の種類が直線でない場合は、一つ前の座標値に復号された座標の差分値を加えたものを、輪郭を形成する座標値とし、
    線の種類が直線であった場合で、かつ復号された座標の差分値が0でない場合は、一つ前の座標値に、復号された座標の差分値を前記閾値A−1)が差し引かれる前の値に変換したものを加え、輪郭を形成する座標値とし、
    線の種類が直線であった場合で、かつ復号された座標の差分値が0であった場合は、次に格納されている座標の差分値を復号し、その値に一つ前の座標値を加え、輪郭を形成する座標値とする、
    ことを特徴とするアウトラインフォント復号方法。
JP2006071799A 2006-03-15 2006-03-15 アウトラインフォント圧縮方法及び復号方法 Expired - Fee Related JP4939824B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006071799A JP4939824B2 (ja) 2006-03-15 2006-03-15 アウトラインフォント圧縮方法及び復号方法
US11/680,314 US8866820B2 (en) 2006-03-15 2007-02-28 Outline font compression method and outline font decompression method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006071799A JP4939824B2 (ja) 2006-03-15 2006-03-15 アウトラインフォント圧縮方法及び復号方法

Publications (2)

Publication Number Publication Date
JP2007248788A JP2007248788A (ja) 2007-09-27
JP4939824B2 true JP4939824B2 (ja) 2012-05-30

Family

ID=38517298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006071799A Expired - Fee Related JP4939824B2 (ja) 2006-03-15 2006-03-15 アウトラインフォント圧縮方法及び復号方法

Country Status (2)

Country Link
US (1) US8866820B2 (ja)
JP (1) JP4939824B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8587609B1 (en) * 2008-08-01 2013-11-19 Marvell International Ltd. Accuracy-adaptive and scalable vector graphics rendering
WO2015141260A1 (ja) * 2014-03-17 2015-09-24 株式会社河合楽器製作所 手書き音楽記号認識装置およびプログラム
KR101890831B1 (ko) * 2017-01-11 2018-09-28 주식회사 펍플 전자책 서비스 제공방법 및 그를 위한 컴퓨터 프로그램

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3305841A (en) * 1963-09-30 1967-02-21 Alphanumeric Inc Pattern generator
US3636329A (en) * 1970-04-28 1972-01-18 Us Navy Five-bit binary to decimal translator
US3707680A (en) * 1970-05-20 1972-12-26 Communications Satellite Corp Digital differential pulse code modulation system
US4029947A (en) * 1973-05-11 1977-06-14 Rockwell International Corporation Character generating method and system
US4331955A (en) * 1980-08-07 1982-05-25 Eltra Corporation Method and apparatus for smoothing outlines
JPS594382A (ja) * 1982-06-30 1984-01-11 Nippon Telegr & Teleph Corp <Ntt> 描画像の符号化方式
JPH0594526A (ja) * 1991-09-30 1993-04-16 Ricoh Co Ltd フオント圧縮処理装置
JPH05143048A (ja) 1991-11-19 1993-06-11 Ricoh Co Ltd アウトラインフオントのデータ圧縮方法及び文字生成方法
DE69332283D1 (de) * 1992-06-11 2002-10-17 Canon Kk Verfahren und Einrichtung zur Bildverarbeitung
JPH06149215A (ja) * 1992-11-12 1994-05-27 Fuji Xerox Co Ltd アウトラインフォントデータ格納方法およびアウトラインフォント描画装置
JP3181809B2 (ja) * 1995-05-31 2001-07-03 シャープ株式会社 データ圧縮のための圧縮コードの復元回路
JPH09134157A (ja) * 1995-11-09 1997-05-20 Fujitsu Ltd ヒント付け方法及びフォントファイル構成方法
US6992671B1 (en) * 1999-12-09 2006-01-31 Monotype Imaging, Inc. Method and apparatus for compressing Bezier descriptions of letterforms in outline fonts using vector quantization techniques
US7302106B2 (en) * 2003-05-19 2007-11-27 Microsoft Corp. System and method for ink or handwriting compression
JP5106768B2 (ja) * 2005-09-29 2012-12-26 富士通株式会社 アウトラインフォント圧縮方法

Also Published As

Publication number Publication date
US8866820B2 (en) 2014-10-21
JP2007248788A (ja) 2007-09-27
US20070216690A1 (en) 2007-09-20

Similar Documents

Publication Publication Date Title
JP6826368B2 (ja) 符号化装置及びその制御方法
CN101925925B (zh) 基于预测的图像处理
US20180165836A1 (en) Triangle mesh compression
JP4939824B2 (ja) アウトラインフォント圧縮方法及び復号方法
CN109379598B (zh) 一种基于fpga实现的图像无损压缩方法
US20100027903A1 (en) Image signal encoding method and decoding method, information source encoding method and decoding method, apparatuses therefor, programs therefor, and storage media which store the programs
CN114915788B (zh) 一种用于档案的图像压缩方法、系统及介质
CN113284248A (zh) 一种点云有损压缩的编解码方法、装置和系统
US6795070B1 (en) Method for compressing and encoding three-dimensional meshed network
CN115525951A (zh) 建筑物轮廓优化及特征边重构的规则化方法及装置
CN110276811B (zh) 图像转换方法、装置、电子设备及可读存储介质
CN116671109A (zh) 一种点云属性编解码方法和装置
KR19980085643A (ko) 주위 화소값의 적응 임계치를 이용한 이진 영상 보간 방법
TWI639336B (zh) 紋理磚壓縮及解壓縮方法以及使用該方法的裝置
CN111726639B (zh) 纹理砖压缩及解压缩方法以及使用该方法的装置
JP2912736B2 (ja) 符号化および復号化方法
US4703516A (en) Character image data compression system
CN109685875B (zh) 一种gpu线光栅化边界计算优化方法
US20230154053A1 (en) System and method for scene graph lossless compression by context-based graph convolution
JP4328363B2 (ja) 画像圧縮装置、画像圧縮プログラムおよび画像伸張装置
CN111182173B (zh) 一种图像传输处理方法和系统
JP2513654B2 (ja) 画像符号化装置
Nguyen et al. Lossless compression of topology of 3D triangulated irregular networks
CN113315524A (zh) 一种基于深度学习的界标数据压缩传输方法及装置
JPH05219394A (ja) 2値画像符号化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120106

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: 20120221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120227

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees