JPH09134157A - ヒント付け方法及びフォントファイル構成方法 - Google Patents

ヒント付け方法及びフォントファイル構成方法

Info

Publication number
JPH09134157A
JPH09134157A JP7290702A JP29070295A JPH09134157A JP H09134157 A JPH09134157 A JP H09134157A JP 7290702 A JP7290702 A JP 7290702A JP 29070295 A JP29070295 A JP 29070295A JP H09134157 A JPH09134157 A JP H09134157A
Authority
JP
Japan
Prior art keywords
hint
outline
stroke
vector
master
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.)
Withdrawn
Application number
JP7290702A
Other languages
English (en)
Inventor
Heruman Antoniosu
ヘルマン アントニオス
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.)
Fujitsu Ltd
Original Assignee
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP7290702A priority Critical patent/JPH09134157A/ja
Priority to US08/688,847 priority patent/US5982387A/en
Publication of JPH09134157A publication Critical patent/JPH09134157A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • 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
    • G09G5/28Generation of individual character patterns for enhancement of character form, e.g. smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K2215/00Arrangements for producing a permanent visual presentation of the output data
    • G06K2215/0002Handling the output data
    • G06K2215/002Generic data access
    • G06K2215/0028Generic data access characterised by the format per se
    • G06K2215/0034Outline coding
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S345/00Computer graphics processing and selective visual display systems
    • Y10S345/947Font character edge processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S345/00Computer graphics processing and selective visual display systems
    • Y10S345/948Alteration of stored fonts to maintain feature consistency throughout scaled font

Abstract

(57)【要約】 【課題】 ストロークあるいはパーツなどの文字構成要
素に効率良くヒント付けする。 【解決手段】 ストローククラス分け部1は類似するア
ウトラインを有するストロークをクラス分けし、ヒント
付け学習部4は各クラスのマスターストロークのアウト
ラインの所定位置にオペレータ操作でヒント付けし、該
ヒント情報を記憶部5に記憶することによりヒント付け
の学習を行い、自動ヒント付け部6は学習したマスター
ストロークのヒント情報を用いて該マスターストローク
が属するクラスの構成要素に自動的にヒント情報を付加
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はヒント付け方法及び
フォントファイル構成方法に係わり、特に、文字のアウ
トラインをストロークあるいはパーツにカットし、各ス
トロークあるいはパーツ(文字構成要素)のアウトライ
ンを定義すると共に文字を構成要素の集まりで表現し、
文字の出力に際して該文字構成要素のアウトラインをビ
ットマップイメージに展開して出力するアウトラインフ
ォント技術におけるヒント付け方法及びフォントファイ
ル構成方法に関する。
【0002】
【従来の技術】漢字・ひらがな・カタカナという三つの
異なる文字を持つ日本語は、アルファベットのみの欧米
語とは大きく異なる言語である。一般にひらがなやカタ
カナは漢字に比べてやや小さくデザインされているし、
別々にデザインされた漢字とかなを組み合わせることも
可能である。文字はボディと呼ばれるデザイン枠の内側
に作られ、アルファベットのように文字ごとに幅が異な
ることはない。また、例えば、“P”の縦線は垂直にデ
ザインされるが、「門」の2本の縦線は活字書体ではわ
ずかにハの字に広がっている。これは頭の部分が重たく
不安定に感じるという目の錯覚を補正するためである
が、この種の錯視補正は漢字特有のものである。さら
に、漢字は縦線や横線が多いからそれらのバランスは重
要である。線と線の間の余白をホワイトスペースと呼ぶ
が、このホワイトスペースを元のデザインと同じバラン
スに再現することは、高品質な文字の条件の一つであ
る。
【0003】これらの特徴を持つ漢字を微小な点(ドッ
ト)の集まりで表現する場合、単位ドット以下の微妙な
表現は困難である。ドット数が少ないときには、元のデ
ザインの細部を表現することができないばかりか、すべ
ての横線や縦線を間隔をあけて配置することができず
に、黒くつぶれてしまう場合がある。文字のデザインを
表現できないような少ないドット数では、単に情報を伝
達・記録するための機能しか残らないので、デザインよ
りもつぶれを防止して可読性を向上させることに主眼が
置かれる。もはやどの書体が使用されているかというデ
ザイン性は重要でないのである。
【0004】人の手で最適な文字パターンが作られるビ
ットマップフォントでは、可読性を維持しながらつぶれ
を防止するために、文字全体のバランスを変えたり縦線
や横線の一部を間引きするような手法を採っている。パ
ソコンやワープロの画面表示に使用される16ドットの
文字では、通常このような処理が行われており、間引き
される線が注意深く選択されているため、一目見ただけ
ではそれとは気付かない場合もある。しかし、ビットマ
ップ法では各種サイズに応じた文字パターンを用意しな
ければならず大容量のメモリを必要とする。そこで、少
ないデータ量で各種の大きさの文字を、字母のデザイン
を損なわないで再現するために、ビットマップフォント
からアウトラインフォントへと技術が変遷してきてい
る。アウトラインフォントは、図34に示すように文字
のアウトラインを例えば縦横1000×1000のXY座標系に
おける座標で表現したものであり、文字生成プログラム
によりアウトラインデータをビットマップに変換して出
力する。かかる、アウトラインフォントは当然マルチポ
イント指定(サイズの異なる印刷指定)が可能であり、
どんなに大きい文字でも、字母のデザインを損ねること
無く品質を維持できる。
【0005】ところが残念なことに、現在のアウトライ
ンフォント技術では文字のポイントサイズが小さくなる
程、文字の品質が損なわれ、素人目にも見苦しい字体に
なってしまう欠点がある。これは、1000×1000のXY座
標系で表現された文字のアウトラインをm×mドット
(例えば16×16ドット)の物理座標系で表現する際に起
きる丸め誤差によるものである。図35は従来のアウト
ラインフォントとビットマップフォントを用いて出力し
た文字のサンプル例である。(a)は従来のアウトライン
フォントによるサンプル、(b)はビットマップによるサ
ンプルで、それぞれ上段は24×24ドット、下段左は18×
18ドット、下段右は14×14ドットにおけるサンプル例で
ある。ドット数が多い場合には、アウトラインフォント
とビットマップフォントの品質の差は明確でないが、文
字サイズが小さくなると品質の差が明確になる。すなわ
ち、18×18ドットのアウトラインフォントでは各文字サ
イズが統一されておらず(「視」が他より大きめになって
いる)、又、14×14ドットのアウトラインフォントでは
文字部分につぶれが発生している。ビットマップフォン
トの場合は、ドット数が少なくなると、可読性を維持し
ながらつぶれを防止するように、しかも、全体のバラン
スを変えたり、縦線や横線の一部を間引きしてフォント
を構成しているため、つぶれや、サイズのバラツキがな
い。尚、(c)に後述する本発明のパーツ構成フォントに
よる文字サンプルを示しておく。
【0006】以上のように従来のアウトラインフォント
技術では、ビットマップフォントのようなきめ細かな処
理ができず、文字サイズが小さくなると、サイズのバラ
ツキやつぶれが生じる。これは、前述のように丸め誤差
が発生し、しかも、視覚特性を利用した一種の「ごまか
し」を施せないためである。又、従来のアウトラインフ
ォントを用いた演算処理では、可読性を向上させるため
に文字のどの部分が重要か分からないため、人間には不
要と感じられる細部が強調されて再現されることもあ
る。
【0007】以上要約すれば、人の手で作られたビット
マップフォントは高品質であるが、大容量のメモリを必
要としてDTP(Disk Top Publishing)などの時代の要
求にはこたえられない。一方、従来のアウトラインフォ
ントはDTPなどに適しているが演算処理によって文字
イメージを生成しているため、とくに小さな文字サイズ
で品質が劣る。従って、アウトラインフォントでビット
マップフォント並の高品質な文字イメージを生成するこ
とが要望されている。
【0008】漢字はもともと複数の縦線や横線の集まり
である。ところが従来のアウトラインフォント技術では
それらすべてをひとまとめにしてアウトラインを表現し
ているために前述の問題が生じる。そこで、図36に示
すようにアウトラインを縦線、横線、傾斜線、右払い、
左払いなど一筆単位(ストロークSTi(i=1,2,・・・)と
いう)に分割し、各ストロークSTi毎にそのアウトラ
インを表現し、文字をこれらストロークの集まりとして
捕らえ、文字生成プログラムにより各アウトラインデー
タをビットマップに変換して出力するようにする。この
ようにすれば、縦線や横線等の関係が明確になり、しか
も、可読性を向上させるために文字のどの部分が重要
か、あるいは、不要かなどが判明して様々なコントロー
ルが可能になる。又、かかる考えをさらに進めて、小さ
な文字サイズでは書体の違いよりも字体の認識が重要で
あるから、字体を表す情報(骨格情報)と書体を表す情
報(輪郭情報)を分離することができれば、可読性が重
要視される小さな文字サイズから、書体の持ち味の再現
が重要な大きな文字サイズまで高品質に生成することが
可能となる。ここで言う骨格情報とは、文字の肉付けの
中心線のことではなく文字の基本構造情報のことであ
る。
【0009】以上の点に鑑み、各文字を骨格情報を用
いてストロークに分割し、ストロークを更にパーツに
分割し、各パーツのアウトラインを定義すると共に文
字をパーツの集まりで表現し、文字の出力に際して該
文字を構成するパーツのアウトラインをビットマップイ
メージに展開して出力するアウトラインフォント技術が
開発、提案されてきている。図37は文字、ストロー
ク、パーツの説明図であり、漢字「舞」をストロークに
分割し(文字・ストロークカット)、更に、ストローク
をパーツに分割(ストローク・パーツカット)した場合
を示しており、パーツの集合は輪郭情報となる。図中、
エレメントは説明の都合上示しているが実際の処理に際
しては使用しない単位である。漢字「舞」は多数のスト
ロークに分割され、各ストロークは更に適宜パーツ(ス
タートパーツ、ミドルパーツ、エンドパーツ)にカット
されて、輪郭情報を構成する。
【0010】図38は骨格情報説明図であり、文字毎に
その書き順に従って各ストロークにストローク番号が付
され、ストローク番号順に該ストロークの配置データ
(始点位置、終点位置)と、ストロークのタイプを示す
ストロークコードが付されて構成されている。図では漢
字「仁」の骨格情報が示されている。各パーツの輪郭形
状は図39に示すようにパーツアウトラインの各曲点P
1〜P6、Q1〜Q4のパーツ座標系における座標値を反時
計方向に配列して表現される。図39(a)は漢字「一」の
スタートパーツのパーツ形状、図39(b)は漢字「一」の
エンドパーツのパーツ形状をそれぞれ示している。
【0011】図40は文字をパーツの集まりで表現した
フォントファイルの構造説明図である。1aはヘッダ部
で、フォン名や作成日付などのフォントに関する各種情
報を格納する部分、1bはキャラクタポインタ部であ
り、文字コードに応じたパーツポインタ列を差すための
キャラクタポインタを格納するものである。2aはパー
ツポインタ部であり、文字を構成する全パーツの配置デ
ータとパーツアウトラインデータへのポインタを格納す
るものである。3aはアウトラインデータ部であり、全
パーツのパーツアウトラインデータを格納するものであ
る。パーツポインタ部2aにおけるパーツ配置データ
は、アウトラインフォント座標系(1000×1000ドットの
座標系)のどこにパーツを配置するかを示すデータであ
り、パーツ原点(図39参照)の文字座標系における位
置座標を示している。図40における配置データは、図
41に示すように漢字「三」の一番下の水平ストローク
(横線)のスタートパーツのパーツ原点位置を(56,49
3)、ミドルパーツのパーツ原点位置を(111,493)、エン
ドパーツのパーツ原点位置を(953,493)とした場合であ
る。
【0012】ところで、論理座標系で表現したアウトラ
インフォントを目的の大きさに縮小すると、必ず少数部
分が発生する。しかし、印刷や画面表示はドット単位で
しか出力が行えないため、少数部分を四捨五入などの方
法で整数化しなければならない。この整数化操作では必
ずまるめ誤差が発生し、文字品質が劣化する。そこで、
文字品質の劣化を防止するためにパーツの輪郭形状デー
タにヒント情報を付加する。ヒント情報とは、文字品質
を決定する上で重要な輪郭形状部分に付加する制御情報
である。ヒントには線幅制御を行うヒント(ステムヒン
ト)、活字書体用にデザインされた文字の「張り」部分
を制御する張りヒント、丸ゴシック体の丸みをきれいに
出す丸ゴシックヒントなどがある。
【0013】図42はステムヒントの説明図である。10
00×1000ドットの論理座標系で表現したアウトラインフ
ォントを例えば16×16ドットの物理座標系にサイズ変換
すべく、縮小したとき、(a)に示すようにポイントA,
BのY座標値がそれぞれ6.5及び5.3になったとする。か
かる場合、各Y座標値を四捨五入(グリッド補正)して
整数化することにより物理座標系に変換する。このた
め、(b)に示すようにA点のY座標値は7、B点のY座
標値は5になり、線幅が2になる。しかし、実際の線幅
は1.2(=6.5-5.3)であるから、四捨五入すると1であ
る。このように何らのヒント制御をしないと線幅は2に
なり太めに出力され、デザインされた文字からかけ離れ
た文字が出力される。すなわち、文字品質が劣化する。
【0014】そこで、アウトラインフォントのA点にア
ブソリュートステムヒント情報asを付加し、B点にレ
ラティブヒント情報rsを付加する。このようにヒント
情報を付加すると、アブソリュートステムヒント情報a
sが付加されたA点のY座標値を四捨五入して5にした
とき、捨てた分0.3(=5.3-5.0)をレラティブヒント情報
rsが付加されたB点のY座標値6.5から差引き、その
結果6.2(=6.5-0.3)を四捨五入する。これにより、B点
のY座標値は6になり、(c)に示すように線幅を1にで
き文字品質の劣化を防止できる。
【0015】図43、図44はウロコヒントの説明図で
ある。アウトラインフォントデータを論理座標系で縮小
拡大した場合、各曲点の座標として図43(a)に示すよ
うな結果が得られる。かかる場合、従来は図43(b)に
示すように論理座標系の各点の座標値を四捨五入(グリ
ッド補正)することにより整数化して物理座標系に変換
し、該物理座標系データに基づいて図43(c)に示すよ
うにビットマップを得ている。しかし、かかる従来方式
では、グリッド補正の時点でウロコのドット表現が大き
くなって、ストロークのステム幅Dよりもウロコの方が
大きくなりバランスが悪くなる。そこで、図44(a)に
示すように、ウロコ点aにおけるグリッド補正の際、ス
テムヒントを持つ点eのY座標値をグリッド補正した際
に生じる増減値dyをウロコヒントの点aのY座標値に
加算する。これにより、ミドルパーツPMのステムヒン
ト点eとエンドパーツPEのウロコヒント点a間の論理
座標系における距離を保存する。かかる状態で、図44
(b)に示すようにウロコヒント点eのY座標値をグリッ
ド補正する。しかる後、グリッド補正した物理座標系デ
ータに基づいて図44(c)に示すようにビットマップを
発生する。このようにすれば、ウロコのドット表現が小
さくなり、文字品質の劣化を防止できる。
【0016】
【発明が解決しようとする課題】以上のように文字のア
ウトラインをパーツにカットし、各パーツのアウトライ
ンを定義すると共に文字をパーツの集まりで表現し、文
字の出力に際して該文字を構成するパーツのアウトライ
ンをビットマップイメージに展開して出力するアウトラ
インフォント技術においては、ストロークあるいはパー
ツに効率良くヒント付けをする必要がある。しかし、従
来はオペレータが1ストロークあるいは1パーツ毎に手
作業でヒント付けを行うものであり、多大な労力を必要
とするものであった。又、上記アウトラインフォント技
術により製作されるフォントファイルは、共用化できる
データであってもパーツ毎にそれらデータを持たせるた
め、フォントファイルが大きくなり、大量のメモリを必
要とする問題があった。
【0017】以上から、本発明の目的は、ストロークあ
るいはパーツなどの文字構成要素に効率良くヒント付け
することができるヒント付け方法を提供することであ
る。本発明の他の目的は、形状が類似しており、同一の
ヒント情報が付加される文字構成要素を自動的にクラス
分けし、各クラスのマスター要素のみオペレータ操作で
ヒント付けしてシステムにヒント付けの学習をさせれ
ば、以後は、システムが自動的に他の構成要素のヒント
付けを行うことができる半自動のヒント付け方法を提供
することである。本発明の別の目的は、パーツをグルー
プ化し、グループ内のパーツで共用できるデータはグル
ープに1つだけ準備することによりフォントファイルの
サイズを小さくでき、従って使用メモリ量を減小するこ
とができるフォントファイル構成方法を提供することで
ある。本発明の更に別の目的は、パーツのアウトライン
を圧縮して記述し、しかも、この圧縮記述に使用する制
御データをパーツグループ毎に共用化することによりフ
ォントファイルのサイズをますます小さくできるフォン
トファイル構成方法を提供することである。
【0018】
【課題を解決するための手段】
(a) 第1の解決手段 図1は本発明の第1の解決手段の説明図であり、文字の
アウトラインをその構成要素(例えばストローク)ST
i(i=1,2・・・)毎にカットし、ストロークSTi
にその形状を制御するヒントデータを付加し、該ストロ
ークの集まりで文字を表現するアウトラインフォント作
成装置の構成を示している。1はストロークSTiを記
憶するストローク記憶部、2は類似するアウトラインを
有するストロークSTiをクラスCiにクラス分けする
ストローククラス分け部、3はクラス分けされたストロ
ークをクラス毎に記憶するクラス分けストローク記憶
部、4は各クラスCiの代表構成要素(マスターストロ
ーク)のアウトラインの所定位置にオペレータ操作でヒ
ント付けするヒント付け学習部、5はオペレータ操作で
ヒント付けした時のヒント情報を記憶するマスタースト
ロークヒント情報記憶部、6は学習したマスターストロ
ークのヒント情報を用いてマスター要素が属するクラス
の構成要素に自動的にヒント情報を付加する自動ヒント
付け部である。
【0019】ストローククラス分け部1は類似するアウ
トラインを有するストロークをクラス分けし、ヒント付
け学習部4は各クラスの代表構成要素(マスターストロ
ーク)のアウトラインの所定位置にオペレータ操作でヒ
ント付けし、該ヒント情報を記憶部5に記憶することに
よりヒント付けの学習を行い、自動ヒント付け部6は学
習したマスターストロークのヒント情報を用いて該マス
ターストロークが属するクラスの構成要素に自動的にヒ
ント情報を付加する。以上のように、形状が類似してお
り、同一のヒント情報が付加される文字構成要素を自動
的にクラス分けし、各クラスのマスター要素のみオペレ
ータ操作でヒント付けしてシステムにヒント付けの学習
をさせ、以後は、システムが自動的に他の構成要素のヒ
ント付けを行うため、ストロークあるいはパーツなどの
文字構成要素に半自動的に効率良くヒント付けすること
ができる。
【0020】(b) 第2の解決手段 図2は本発明の第2の解決手段の説明図であり、文字の
アウトラインを1筆単位であるストロークにカットし、
ストロークをパーツにカットし、文字をパーツの集まり
で表現したフォントファイルの構成法を示している。図
中、50は文字コード、64はキャラクタヘッダ部であ
り、文字を構成する各パーツ(第1パーツ〜第nパー
ツ)のアウトラインデータ位置を示すものであり、パー
ツ毎にパーツ位置オフセット(PPO)64a、形
状が類似するパーツをグループ化し、それぞれのパーツ
のアウトライン情報をグループ毎に記憶する場合、パー
ツが属するグループ位置(パーツグループオフセットP
GO)64bと、グループ内におけるパーツのアウト
ラインデータ位置(パーツアウトラインインデックスP
OI)64Cが記述されている。65a,65b,・・
・はそれぞれパーツグループであり、グループに属す
る各パーツに共通なデータを記録するヘッダ部GHD
と、グループに属する各パーツのアウトラインデータ
を記述するパーツアウトラインブロックPOBi(i=1,2,
・・・)を備えている。62aはヒントテーブル部であり、
パーツのアウトラインに付されるヒントの種別(マーク
ヒント、ウロコヒント、カーブヒント等)を順に配列し
たヒントタイプリストをグループ毎に備えている。
【0021】形状が類似するパーツをグループ化し、パ
ーツグループ65a,65b,・・・を、グループに
属する各パーツに共通なデータを記録するヘッダ部GH
Dと、グループに属する各パーツのアウトラインを記
述するパーツアウトラインブロックPOBiとで構成す
る。又、文字コード50が示す文字を構成するパーツが
属するグループの位置PGOと、グループ内におけるパ
ーツのアウトラインブロック位置POIを特定できるよ
うにフォントファイルを構成する。このようにパーツを
グループ化し、グループ内のパーツで共用できるデータ
はグループに1つだけ準備するだけでよいため、フォン
トファイルのサイズを小さくでき、使用メモリ量を減小
することができる。
【0022】又、パーツのアウトラインを特定する輪郭
ポイントのうち隣接するポイント間を接続するベクトル
のタイプを、該ベクトルが水平方向であるか、垂直方向
であるか、傾斜方向であるか、並びにベクトルの長さを
考慮して分類すると共に、それぞれのタイプのベクトル
を表現するに必要なデータ長を定める。そして、ヘッダ
部GHDの共通データ部に、パーツのアウトラインを構
成する各ベクトルのタイプを記述する。このようにすれ
ば、ベクトルの方向及びベクトル長に応じた適正のデー
タ長でベクトルを表現してフォントファイルのサイズを
小さくでき(アウトラインデータの圧縮)、しかも、ア
ウトラインデータ読み取り時に共通データ部に記述され
ているタイプより各ベクトルのデータ長を認識でき、正
しくアウトライン情報を読み出すことができる。
【0023】更に、ヒントテーブル部62aに、パーツ
のアウトラインに付されるヒントの種別を順に配列した
ヒントタイプリストをグループ毎に記述し、ヘッダ部G
HDの共通データ部にヒントテーブル内のヒントタイプ
リストの位置を示すヒントオフセットHOFを記述す
る。このようにすれば、ヒントオフセットHOFに基づ
いてヒントタイプリストを読み出し、パーツのアウトラ
インにヒント情報を付加できる。又、ヒントテーブルを
グループにつき1つ設けるだけで良いためフォントファ
イルのサイズを小さくできる。
【0024】
【発明の実施の形態】
(A)本発明の全体の構成 (a)構成 図3はフォント製作ツールの構成図である。フォント製
作ツールは既存のフォントをストロークに分割すると共
にストロークをパーツに分割し、パーツのアウトライン
形状にヒント付けし、各文字をパーツの集合で表現した
フォント(パーツ構成フォント)に変換するものであ
る。21はフォント製作ツールであり、既存のフォント
22をストロークに分割すると共にストロークをパーツ
に分割する自動セパレーション部21a、同一形状のパ
ーツを共通化してパーツ数を削減する自動パーツシェア
部21b、各パーツにヒント情報を付加する自動ヒント
部21c、各文字をパーツの集合で表現したフォントフ
ァイル23を作成するフォントファイル作成部21d、
文字データベース21eを有している。文字データベー
ス21eには、読み込んだ既存フォント、各文字の
骨格情報、ストローク化処理、パーツ化処理により得
られたストローク情報、パーツ情報、作成したフォン
トファイル等を記憶するようになっている。
【0025】(b)処理の概略 フォント製作ツール21は、既存フォント22のフォー
マット変換→自動セパレーション処理→自動ヒント付け
処理→フォントファイル作成処理を介して既存フォント
をパーツ構成フォントに変換して出力するようになって
いる。まず、ユーザが保有する既存のアウトラインフォ
ント22をフォント製作ツールのフォーマットに変換す
る。変換されたすべての文字情報は、文字データベース
21eに格納される。
【0026】ついで、入力された文字をストロークに、
ストロークをパーツにセパレーションする。自動セパレ
ーションでは、まず学習モードを起動し、ユーザが代表
的な文字について操作画面上でストローク化、パーツ化
し、システムにストローク化、パーツ化のルールを学習
させる。その後、バッチ処理を起動するとシステムが学
習ルールに従って残りの数千文字を自動的にストローク
化、パーツ化する。たとえ学習結果を応用できない特殊
な形状があっても、学習情報の追加と自動セパレーショ
ンを繰り返すことで対応が可能であり、残った文字やス
トロークをすべて手作業でセパレーションする必要はな
い。
【0027】しかる後、パーツの共通化処理(自動パー
ツシェア)を行う。複雑な形状の漢字も、ストロークそ
してパーツへとセパレーションすることで単純な図形に
なる。しかし、7000個の文字をストローク化すると91,0
00個のストロークになり、全ストロークをパーツ化する
と210,000パーツになり、大容量のメモリを必要とす
る。そこで、形状が「ほとんど同じ」と見なされるパー
ツの共有化を図る。自動パーツシェアの処理が終了すれ
ば、ヒント付けを行う。ヒント付け処理は、自動セパレ
ーション処理と同様に学習モードでユーザがヒントを付
加してお手本を示すと、そのルールを応用して自動的に
ヒント情報を付加する。
【0028】(c) フォント製作ツールのハードウェア構
成図 図4はフォント製作ツールのハードウェア構成図であ
り、31はプロセッサ(CPU)、32はプログラムメ
モリであり、自動セパレーションプログラム32a、自
動パーツシェアプログラム32b、自動ヒントプログラ
ム32c、フォント作成プログラム32d等を記憶する
もの、33はRAM、34はハードディスク等で構成さ
れた文字データベース部(図3の21eに対応)、35
はフロッピーディスクドライブで、既存ファイル22を
読み込んだり、製作したフォントファイル23を出力す
るもの、36はマウス、37はマウスインタフェース
部、38はキーボード、39はキーボードインタフェー
ス部、40はディスプレイ装置である。
【0029】文字インタフェース部24には以下の情報
が格納されるようになっている。すなわち、 各文字の骨格情報(BSF:Basic Stroke File)、 読み込んだ既存フォントファイル、 ストロークの自動カット処理により得られたストロー
ク情報、 パーツの自動カット処理で得られたパーツ情報、 ヒント付けに際して生成した各種情報(クラス分けス
トローク、マスターストロークのヒント情報、各ストロ
ークのヒント情報等)、 製作したフォントファイル 等が記憶される。
【0030】(B)ヒント付け処理 (a)全体の処理フロー 図5はヒント付けの全体の処理フローである。以下では
ストロークにヒント付けを行う場合について説明する
が、パートにヒント付けする場合にも当然適用できるも
のである。すでに、自動セパレーション処理により、各
文字は図6(a)に示すようにストロークSTi(i=1,2,・・
・)にカットされて文字データベース34に格納されてい
る。かかる状態で、類似するアウトラインを有するスト
ロークを図6(b)に示すようにクラスCi(i=1,2,・・・)毎
にクラス分けする(ステップ100)。ここで類似する
アウトラインとは形状が同一であるものをいい、サイズ
が同じである必要はない。例えば、クラスC2の形状は
4隅が全て直角の横線クラス(水平ストローク)であ
り、長さに関係なく分類される。これは形状が類似する
ストロークの同一輪郭点(ヒントポジション)には同一
ヒントが付加されるからである。
【0031】ついで、各クラスCiにおけるマスタース
トロークのアウトライン所定位置にオペレータ操作でヒ
ント付けし、該ヒント情報を文字データベース34に格
納する(ヒント付けの学習、ステップ200)。ヒント
付けの学習はディスプレイ画面にマスターストロークの
アウトラインを表示し、ヒント付けしたい輪郭ポイント
をマウスカーソルで選択し、ヒントタイプ(アブソリュ
ートヒント、レラティブヒント、カーブヒント、マーク
ヒント、ウロコヒント等)と、該ヒントタイプにより輪
郭制御を行う方向を入力することにより行う。輪郭制御
方向がX方向のヒントをXヒント、Y方向のヒントをY
ヒントという。
【0032】以上の学習により、図7に示すようにマス
ターストロークの輪郭ポイントP1〜Pnに対応させてヒ
ント情報が作成されてデータベース34に格納される。
ただし、図中、asはアブソリュートステムヒント、r
sはレラティブステムヒント、cはカーブヒント、mは
マークヒントである。マークヒントとはダミーのヒント
である。アウトラインの極値点(座標値が減小方向から
増大方向に、あるいは増大方向から減小方向に変化する
点)にはヒントを付けることを規定されているが、該極
値点でヒント制御をしない場合にはこのマークヒントを
付ける。
【0033】ヒント付けの学習が終了すれば、学習した
マスターストロークのヒント情報を用いて該マスタース
トロークが属するクラスのストロークに自動的にヒント
情報を付加する(自動ヒンティング、ステップ30
0)。以上のように、形状が類似しており、同一のヒン
トポジションに同一のヒントタイプ情報が付加されるス
トロークを自動的にクラス分けし、各クラスのマスター
ストロークのみオペレータ操作でヒント付けしてシステ
ムにヒント付けの学習をさせ、以後は、システムが自動
的に他の構成要素のヒント付けを行うため、ストローク
に半自動的に効率良くヒント付けすることができる。
【0034】(b)ストローククラス分け処理 (b-1)全体の処理 図8はストローククラス分けの処理フローである。文字
データベース34より対象ストロークのアウトラインデ
ータを読み出す(ステップ101)。ついで、このアウ
トライン情報よりストローク・アトリビュート・リスト
(パターン情報)を作成する(ステップ102)。スト
ローク・アトリビュート・リストの作成は後述するが概
略以下の手順で作成する。すなわち、0〜3600
複数の方向範囲に分け、ストロークアウトラインを特
定する輪郭ポイントのうち隣接するポイント間を接続す
るベクトルの長さが設定長以上で、かつ、直前のベクト
ルと異なる方向か調べ、ベクトルの長さが設定長以上
で、かつ、直前のベクトルと異なる方向の場合には、ア
トリビュート数をカウントアップすると共に、該ベクト
ルをアトリビュートセグメントとしてその方向及び始
点、終点を記憶し、ベクトルの長さが設定長以下の場
合は該ベクトルは無視し、ベクトルの長さが設定値以
上で、直前のベクトルと同一方向の場合には直前のアト
リビュートセグメントの終点を現ベクトルの終点で更新
する処理を全ベクトルについて行ってストローク・アト
リビュート・リストを作成する。
【0035】しかる後、ストローク・アトリビュート・
リストを参照して対象ストロークがそれまでのクラスに
属さない新パターンであるかチェックする(ステップ1
03)。このチェック法についても後述するが概略以下
のようにして新パターンであるか否かを判定する。2つ
のストロークのアトリビュート数が同一で、かつ、アト
リビュートセグメントの方向データの配列が同一の時、
これら2つのストロークは類似している。従って、既に
生成されているクラスにおける基本ストロークのストロ
ーク・アトリビュート・リストを参照し、対象ストロー
クとアトリビュート数が同一で、かつ、方向データの配
列が同一の基本ストロークが存在するか調べる。存在し
なければ対象ストロークは新パターンであり、存在すれ
ば対象ストロークは該基本ストロークと類似しており、
新パターンではない。
【0036】新パターンであれば、新ストローククラス
を生成し(ステップ104)、かつ、対象ストロークを
該新クラスの基本ストロークとして登録する(ステップ
105)。ついで、あるいは、ステップ103において
対象ストロークが新パターンでない場合には、対象スト
ロークを該ストロークが属するクラスに分類する(ステ
ップ106)。以上により、対象ストロークのクラス分
けが完了する。しかる後、全ストロークに対して上記ク
ラス分け処理をしたか判断し(ステップ107)、全ス
トロークのクラス分けが済んでなければ次の対象ストロ
ークについてステップ101以降の処理を繰り返す。
【0037】(b-2)ストローク・アトリビュート・リス
トの作成処理 図9はストローク・アトリビュート・リストの作成処理
フロー、図10はストロークアウトライン説明図、図1
1はベクトルの方向説明図、 図12はストローク・ア
トリビュート・リスト例である。対象ストロークのアウ
トラインデータより、反時計回りに進んで隣接する2点
を結ぶショートベクトルを生成し(ステップ102
a)、該ショートベクトルの長さを求め、設定長以上か
チェックする(ステップ102b)。設定長以下の場合
には該ショートベクトルは無視する(ステップ102
c)。一方、設定長以上の場合には、該ショートベクト
ルの方向を求める(ステップ102d)。図11に示す
ように、0〜3600を8方向に分け、いずれの方向に
属するか求める。尚、方向は-100〜100(水平正方向)、1
00〜800(右上がり方向)、800〜1000(垂直正方向)、1000
〜1700(左上がり方向)、1700〜1900(水平負方向)、1900
〜2600(左下がり方向)、2600〜2800(垂直負方向)、2800
〜3500(右下がり方向)の8方向に分けられている。
【0038】ついで、直前のショートベクトル(アトリ
ビュートセグメント)と同一方向かチェックする(ステ
ップ102e)。尚、アトリビュートセグメントとはア
トリビュートリストに登録したセグメントを意味する
(図12参照)。直前のアトリビュートセグメントと同
一方向でなければ、アトリビュート数(初期値は0)
をカウントアップし、方向をアトリビュート方向とし
て記憶し、ショートベクトルの始点、終点ををアトリ
ビュートセグメントの始点、終点として記憶する(ステ
ップ102f)。しかし、直前のアトリビュートセグメ
ントと同一方向の場合には、直前のアトリビュートセグ
メントの終点をショートベクトルの終点で更新する(ス
テップ102g)。
【0039】ステップ102c,102f,102gの
処理後、ストロークのアウトラインを構成する全ショー
トベクトルについて上記処理をしたかチェックし(ステ
ップ102h)、処理が済んでなければ次の隣接2点を
結ぶショートベクトルを生成し(ステップ102i)、
以後、ステップ102b以降の処理を繰り返す。以上に
より、図12に示すストローク・アトリビュート・リス
トが生成され、その方向データの配列は図13に示すよ
うに7→6→7→0→1→2→3となる。
【0040】(b-3) パターン同一判定処理 図14はパターン同一判定処理のフローである。まず、
既に生成されているクラスにおける基本ストロークのス
トローク・アトリビュート・リストを参照し、対象スト
ロークとアトリビュート数が同一のものが存在するかチ
ェックする(ステップ103a)。存在しなければ、対
象ストロークは新パターンである(ステップ103
h)。しかし、アトリビュート数が同一の基本パターン
が存在すれば、該基本パターンのストローク・アトリビ
ュート・リストを読み取り(ステップ103b)、アト
リビュートタイプが対象ストロークのそれと同一である
か、換言すれば、方向データの配列が同一であるかチェ
ックする(ステップ103c)。
【0041】方向データ配列が同じであれば、対象スト
ロークは基本ストロークと類似しており、新パターンで
ないと判定する(ステップ103d)。しかし、方向デ
ータの配列が異なれば、対象ストロークの方向データ配
列開始点を1つシフトする(ステップ103e)。図1
5はパターン同一判定の説明図であり、方向データ配列
の開始点をシフトした場合を示している。最初方向デー
タ配列は「0246」であるが、開始点を順次シフトす
ると「2460」→「4602」→「6024」→「0
246」となる。
【0042】シフトした方向データ配列の開始点が最初
の方向データ配列の開始点と一致するか判断し(ステッ
プ103f)、一致しなければ、ステップ103c以降
の処理を行う。すなわち、シフト後の方向データ配列が
基本ストロークの方向データ配列と一致するものがある
かチェックする。方向データ配列の開始点をシフトした
とき、対象ストロークと基本ストロークの方向データ配
列が一致すれば、対象ストロークは新パターンでないと
判定する。図15の場合、(2)に示す方向データ配列パ
ターンが基本ストロークの方向データ配列パターンと一
致するから、対象ストロークは新パターンでないと判定
する。
【0043】しかし、開始点をシフトしても方向データ
配列が一致しなければ、対象ストロークと基本ストロー
クは類似していないと判断し、他に、アトリビュート数
が同一の基本ストロークが存在するかチェックする(ス
テップ103g)。存在しなければ、対象ストロークは
新パターンであると判定する(ステップ103h)。し
かし、他にアトリビュート数が同一の基本パターンが存
在すれば、ステップ103bに戻り上記処理を繰り返
す。
【0044】(c)ヒント付けの学習処理 (c-1)全体の処理 図16は各クラスのマスターストロークにヒント付けし
て学習する場合の処理フローである。文字データベース
34より対象ストローククラスにおけるマスターストロ
ーク(対象マスターストローク)のアウトラインデータ
を読み出す(ステップ201)。ついで、既にヒント付
けしてあるマスターストローク(最初はヒント付けした
マスターストロークはない)のサイズを対象マスタース
トロークのサイズに等化させる(ステップ202)。
【0045】等化処理はアウトライン上の極値点(extr
emal point)を用いて行うもので、詳細は後述するが、
概略は以下の手順でサイズの等化を行う。すなわち、 ヒント付けしてある全マスターストローク及び対象マ
スターストロークについて、X軸方向及びY軸方向の極
値点を求める。極値点とは、ある軸の座標値が減小から
増大に、あるいは増大から減小に変化する点である。 ついで、ヒント付けしてあるマスターストロークのう
ち、対象マスターストロークのX軸方向及びY軸方向の
極値点数と同一で、かつ、極値点の配列が同一であるも
の求める。 求めたヒント付けしてあるマスターストロークあるい
は対象マスターストロークの一方のX,Y軸方向のサイ
ズを他方のX軸方向及びY軸方向のサイズに一致するよ
うにスケーリングする。
【0046】以上により、等化処理が完了すれば、等化
したマスターストロークの中から対象マスターストロー
クと最も類似するベストマッチングマスターストローク
を求める(ステップ203)。ベストマッチングマスタ
ーストローク発見処理について、後述するが、概略は以
下の通りである。すなわち、等化したマスターストロー
クと対象ストロークの重なり面積に基づいて両マスター
ストロークの類似度を求め、類似度が最大のヒント付け
してあるマスターストロークをベストマッチングマスタ
ーストロークとする。ついで、ベストマッチングマスタ
ーストロークが求まったかチェックする(ステップ20
4)。対象マスターストロークのX軸方向及びY軸方向
の極値点数と同一で、かつ、最大、最小極値点の配列が
同一のヒント付けしてあるマスターストロークが存在し
ない場合には、ベストマッチングマスターストロークは
存在しない。
【0047】ベストマッチングマスターストロークが求
まれば、該ベストマッチングマスターストロークに付与
したヒント情報(ヒントタイプ、ヒント位置)を対象マ
スターストロークに適用する(ステップ205)。しか
る後、あるいは、ステップ204においてベストマッチ
ングマスターストロークが求まらなかった場合には、操
作画面上でヒント編集(生成、修正、削除)を行って対
象マスターストロークにヒント付けを行う(ステップ2
06)。以上により、対象マスターストロークに対する
ヒント付けが終了すれば、ヒント情報を対象マスタース
トロークあるいはストローククラスに対応させて文字デ
ータベース34に格納する(ステップ207)。つい
で、全クラスのスターストロークのヒント付け処理が終
了したかチェックし、終了してなければ、次のマスター
ストロークについてステップ201以降の処理を繰り返
す。
【0048】図17は学習処理の説明図であり、3つの
マスターストロークMST1,MST2,MST3を示
している。最初、第1のマスターストロークMST1に
操作画面上でヒント付けを行う。ついで、第2のマスタ
ーストロークMST2をヒント付けする際、第1のマス
ターストロークMST1がベストマッチングマスタース
トロークになるから、該第1のマスターストロークMS
T1のヒント情報を第2のマスターストロークMST2
に適用し、修正すべきヒント情報があれば操作画面上で
修正する。しかる後、第3のマスターストロークMST
3をヒント付けする際、ベストマッチングマスタースト
ロークを求める。この場合、第1のマスターストローク
MST1がベストマッチングマスターストロークになる
から、該第1のマスターストロークMST1のヒント情
報を第3のマスターストロークMST3に適用し、修正
すべきスヒント情報があれば操作画面上で修正する。以
上のように、ヒント付けの学習に際して、既にヒント付
けしてあるベストマッチングマスターストロークのヒン
ト付け情報を利用できるため、学習処理を効率良く行う
ことができる。
【0049】(c-2) 等化処理 図18は等化処理のフロー、図19、図20は等化処理
の説明図である。まず、ヒント付けしてあるマスタース
トロークMSTa(図19(a)参照)及び対象マスター
ストロークMSTbについてそれぞれ、X軸方向の極値
点を求める(ステップ202a)。ついで、マスタース
トロークMSTa及び対象マスターストロークMSTb
についてそれぞれ、Y軸方向の極値点を求める(ステッ
プ202b)。この場合、図19(b)に示すように、直
前の極値点からの座標変化量が小さい極値点EPは無意
味な極値点であり、無視する。すなわち、有意義な極値
点(significant extremal point)のみ求める。
【0050】ついで、マスターストロークMSTa,M
STbのX軸方向及びY軸方向の極値点数が同一であ
り、かつ、極値点の配列が同一であるかチェックする
(ステップ202c)。極値点の配列とは、X軸方向の
極値点のうち座標値が増大から減小に変化する極値点を
Xmax、座標値が減小から増大に変化する極値点をXmin
と表現し、又、Y軸方向の極値点のうち座標値が増大か
ら減小に変化する極値点をYmax、座標値が減小から増
大に変化する極値点をYminと表現した時、ストローク
のアウトラインに沿って出現するXmax,Xmin、Yma
x,Yminの配列を言う。X軸方向及びY軸方向の極値点
数が同一でなく、あるいは、極値点の配列が同一でない
場合には、マスターストロークMSTaはベストマッチ
ングマスターストロークの候補から外れるのでサイズの
スケーリング演算を適用せず処理を終了する。
【0051】一方、X軸方向及びY軸方向の極値点数が
同一であり、しかも、極値点の配列が同一の場合には、
サイズのスケーリング演算処理を施し、両ストロークの
各軸方向のサイズを一致させる(ステップ202)。ス
ケーリング演算は対応する極値点間毎に行う。例えば、
図19(b)に示すように、マスターストロークMSTa
のX軸方向の極値点A,Bの座標値をEX12,EX11
マスターストロークMSTbのX軸方向の対応する極値
点A′,B′の座標値をEX22,EX21とすれば、マス
ターストロークMSTbのA′B′間の各輪郭ポイント
(x′,y′)のX座標値を次式 x=EX11+(x′-EX21)・(EX12-EX11)/(EX22-EX21) (1) によりスケーリングする。同様に、例えば、図19(b)
に示すように、マスターストロークMSTaのY軸方向
の極値点C,Dの座標値をEY12,EY11、マスタース
トロークMSTbのY軸方向の対応する極値点C′,
D′の座標値をEY 22,EY21とすれば、マスタースト
ロークMSTbのA′C′間の各輪郭ポイント(x′,
y′)のY座標値を次式 y=EY11+(y′-EY21)・(EY12-EY11)/(EY22-EY21) (2) によりスケーリングする。
【0052】図20は四角形のマスターストロークMS
Taのサイズに円形の対象マスターストロークMSTb
のサイズを等化する場合の説明図である。円形の対象マ
スターストロークMSTbのX,Y軸方向のサイズはそ
れぞれ(1),(2)式によりスケーリングされてマスタース
トロークMSTaのX,Y軸サイズと同一になってい
る。
【0053】(c-3)ベストマッチングマスターストロー
ク発見処理 図21はベストマッチングマスターストローク発見処理
のフロー、図22はベストマッチングマスターストロー
ク発見処理の説明図、図23は各マスターストロークの
面積、重なり面積説明図である。ベストマッチングマス
ターストロークの発見に際して、まず、対象マスタース
トロークと候補マスターストロークの類似度を計算する
(ステップ203a)。類似度は以下の手順で演算す
る。
【0054】まず、サイズの等化処理を施されたヒン
ト付けしてあるマスターストロークMSTa(図22参
照)及び対象マスターストロークMSTbの1つの対応
点Ps,Ps′及び該対応点を端点とする1つのセグメン
トSs,Ss′を重ね合わせ、各ストローク内部を所定間
隔(図12ではY軸方向の間隔が1.0になっている)
の走査線SL1,SL2,SL3・・・でスキャンする。
ストロークの重ね合わせは実際には、同一座標系に対応
点、対応セグメントが重なるように配置することにより
行う。ついで、各マスターストロークMSTa,MS
Tb内の各走査線SL1,SL2,SL3・・・の長さを
加算して各要素の面積とし、又重なっている部分の各走
査線の長さを加算して重なり面積とする。しかる後、
重なり面積を両マスター要素の面積の和で除算した正規
化面積を類似度とする。
【0055】図23の図表は、各マスターストローク
MSTa,MSTbと各走査線SL 1,SL2,SL3
SL4,・・・との交差始点、交差終点、重なり部分
の始点、終点、各マスターストロークMSTa,MS
Tb内の走査線の長さの総和、重なり部分内の走査線
の長さの総和、類似度(正規化面積)を示している。
図24はスキャンライン間隔を荒くしてスキャンライン
数を少なくした時の類似度の説明図である。マスタース
トロークMSTa,MSTbの重なり部分における3本
の走査線SL1,SL2,SL3の長さ(太黒線の長さ)
はそれぞれ50,100,50であり、各マスタースト
ロークMSTa,MSTb内の走査線の合計はそれぞれ
200、273である。従って、類似度は200/(200+27
3)/2=0.85となる。走査線を増やしてより正確な類似度
を計算すると0.64になるが、スキャンライン間隔を荒く
してスキャンライン数を少なくすることで類似度計算時
間を短縮することができる。
【0056】(d)自動ヒント処理 (d-1) 全体の処理 図25は自動ヒント処理の全体の処理フローである。学
習が終了すれば、各クラスのマスターストロークに付与
したヒント情報を用いて全ストロークに自動的にヒント
付けを行う。まず、対象ストローククラスのマスタース
トロークのアウトラインデータと該マスターストローク
のヒントデータを読み取る(ステップ301)。つい
で、対象マスタークラスに属する所定のストローク(対
象ストローク)のアウトラインデータを読み取り、該対
象ストロークのサイズをマスターストロークのサイズに
等化する(ステップ302)。
【0057】しかる後、対象ストロークとマスタースト
ロークの対応する2点を重ね合わせ、マスターストロー
クの所定のヒントポジションから最も近い対象ストロー
クのアウトライン輪郭点を求める(ステップ303)。
最近接の輪郭点が求まれば、該輪郭点にマスターストロ
ークの前記ヒントポジションに付けたヒントタイプを付
ける(ステップ304)。ついで、マスターストローク
の全ヒント情報を対象ストロークに付与したか判断し
(ステップ305)、付与してなければ次のヒント情報
についてステップ303以降の処理を繰り返す。対象ス
トロークの自動ヒント付けが終了すれば、対象ストロー
ククラスの全ストロークについてヒント付け処理が終了
したかチェックし(ステップ306)、終了してなけれ
ば、次のストロークについてステップ302以降の処理
を繰り返す。対象ストローククラスについて上記処理が
終了すれば、全ストローククラスについてヒント付けの
処理が終了したかチェックし(ステップ307)、終了
してなければ次のストローククラスについてステップ3
01以降の処理を繰り返す。
【0058】(d-2) 等化処理 図26はステップ302における等化処理のフロー、図
27、図28は等化処理説明図である。等化処理に際し
て、まず、マスターストロークと対象ストロークのスト
ローク・アトリビュート・リストを参照して、両ストロ
ークのアトリビュートセグメントの始点、終点を対応付
ける(ステップ302a)。図27は対象ストローク(S
troke 2)とマスターストローク(stroke 1)とのアトリビ
ュートセグメントの始点、終点の対応付けを示してい
る。
【0059】ついで、対象ストロークの所定アトリビュ
ートセグメントの始点、終点がマスターストロークの対
応するアトリビュートセグメントの始点、終点と重なる
ように(1),(2)式と同様のスケーリング演算式を求め、
この演算式により対象ストロークのアトリビュートセグ
メントの始点、終点をスケーリングする(ステップ30
2b)。又、アトリビュートセグメントの始点、終点の
中間に存在する対象ストロークのアウトライン輪郭点を
上記演算式でスケーリングして、内挿する(ステップ3
02c)。しかる後、全対応するアトリビュートセグメ
ントについて処理したかチェックし(ステップ302
d)、処理が終了してなければ次のアトリビュートセグ
メントについてステップ302b以降の処理を繰り返
す。
【0060】図28はスケーリング説明図であり、点線
はストロークのアウトラインを示している。対象ストロ
ーク(stroke 2)のアトリビュートセグメントA′B′が
マスターストローク(stroke 1)の対応セグメントAB
に重なるように、スケーリング演算式を求める。この演
算式は(1),(2)式と同様な形になる。ついで、求めた演
算式により対象ストロークStroke 2の始点A、終点B及
びこれらの中間に存在する輪郭点E′をスケーリングす
る。同様に他のアトリビュートセグメントについてスケ
ーリングすると対象ストロークのアウトラインは(b)
の右側に示す形状になる。(b)の左側はマスタースト
ロークのアウトラインである。
【0061】以上のようにサイズの等化が完了すれば、
対象ストロークとマスターストロークの対応する2点
A,A′及びC,C′を重ね合わせ、マスターストロー
クの所定のヒントポジションB,Dからそれぞれ最も近
い対象ストロークのアウトライン輪郭点を求めると、輪
郭点B′、D′が得られる。従って、対象ストロークの
輪郭点B′にマスターストロークのB点に付与したヒン
トを付与し、同様に対象ストロークの輪郭点D′にマス
ターストロークのD点に付与したヒントを付与する。以
上のように、形状が類似しており、同一のヒント情報が
付加される文字構成要素(ストロークあるいはパーツ)を
自動的にクラス分けし、各クラスのマスター要素のみオ
ペレータ操作でヒント付けしてシステムにヒント付けの
学習をさせれば、以後は、システムが自動的に他の構成
要素(ストローク、パーツ)のヒント付けを行うため文字
構成要素に半自動的に効率良くヒント付けすることがで
きる。
【0062】(C)フォントファイル構成法 (a) フォントファイルの構成 図29はフォント作成プログラムにより作成したフォン
トファイルの構成図である。尚、各文字のフォントは、
文字のアウトラインをストロークにカットし、ストロー
クをパーツにカットし、これらパーツの集まりで表現さ
れる。図29において、51はフォントファイルであ
り、フォントヘッダ部61、フォントテーブル部6
2、文字コード化用ディレクトリ部63、キャラク
タヘッダ部64、パーツグループ部65を備えてい
る。
【0063】(b) フォントヘッダ フォントヘッダ61部は、著作権表示、フォントサイ
ズ、アウトライン・データの解像度、使用可能文字数、
各種フォントテーブルへのオフセット値など全般的な情
報が記述される部分である。このフォントヘッダ部のサ
イズはフォントファイルの他の部分と比べ非常に小さ
い。
【0064】(c) フォントテーブル フォントテーブル部62は全文字に共通な部分であり、
全体制御テーブル、文字コード化テーブル、ステム幅テ
ーブル、文字マップテーブル、ヒントテーブルなどが記
述される。本発明と関係するテーブルはヒントテーブル
のみである。ヒントテーブル62aには図30に示すよ
うに後述するパーツグループ1〜nに対応してヒントタ
イプリストHTL1〜HTLnが記述されている。ヒン
トタイプリストHTLiは、パーツのアウトラインに付
されるヒントの種別(カーブヒント、マークヒント、ウ
ロコヒント等)を反時計方向にアウトラインに沿って順
に配列したものである。図30には、アウトラインに反
時計方向に沿ってマークヒント、マークヒント、
カーブヒント、カーブヒントを順に配列した場合のヒ
ントタイプリストが示されている。
【0065】(d) 文字コード化用ディレクトリ 文字コード化用ディレクトリ部63は、指定されたコー
ド化方法のもとで個々の文字コードに対するオフセット
値を記憶するものである。すなわち、文字コード化用デ
ィレクトリ部63は、各文字コードに応じたキャラクタ
ヘッダが記憶されている位置を示すオフセット値を記憶
する部分である。
【0066】(e) キャラクタヘッダ キャラクタヘッダ部64は、文字毎に該文字を構成する
各パーツ(第1パーツ〜第nパーツ)のアウトラインデ
ータ位置を示すキャラクタヘッダを記憶する部分であ
る。各文字のキャラクタヘッダはパーツ毎に、パーツ
位置オフセットPPO、パーツが属するパーツグルー
プ位置(パーツグループオフセットPGO)と、パー
ツグループ内におけるパーツのアウトラインデータ位置
(パーツアウトラインインデックスPOI)を有してい
る。パーツ位置オフセットPPOとは、パーツの原点の
配置位置をオフセットするものである。標準的なパーツ
位置はBSFファイル(骨格情報ファイル)より求まる
が、書体に応じてパーツ原点をオフセットした方が文字
品質を高めることができる。そこで、このパーツ位置オ
フセットPPOによりパーツ原点位置のオフセット量を
指定する。
【0067】パーツグループオフセットPGOはパーツ
が属するパーツグループの位置を指示するものである。
本発明のフォントファイルでは、形状が類似するパーツ
をグループ化し、それぞれのパーツのアウトライン情報
をグループ毎に一括して記憶するようになっている。そ
こで、このパーツグループオフセットPGOにより、パ
ーツグループの位置を指示し、次のパーツアウトライン
インデックスPOIによりグループ内におけるパーツの
アウトラインデータ位置を指示するようになっている。
【0068】(f) パーツグループ (f-1) 構成 パーツグループ部65は、形状が類似するパーツをグル
ープ化した場合の各パーツグループ65a,65b,6
5c,・・・により構成されている。各パーツグループ
は、グループに属する各パーツに共通なデータを記録
するヘッダ部GHDと、アウトラインデータの圧縮情
報及びパーツのヒント位置情報等のコントロールデータ
部CDT、各パーツの圧縮アウトラインデータを記憶
するアウトラインデータ部OLNを備えている。アウト
ラインデータ部OLNは、グループに属する各パーツの
圧縮アウトラインデータを記述するパーツアウトライン
ブロックPOBi(i=1,2,・・・)を備えている。各パーツア
ウトラインブロックPOBiは出現率の高い順に配列し
ている。これにより高速のアクセスが可能になる。
【0069】(f-2) グループヘッダ グループヘッダGHDには、パーツグループのヒント
タイプリストHTLiまでのヒントテーブル内のオフセ
ット値HOF(図30参照)、コントロールデータ部
のブロック長、パーツアウトラインブロックのブロッ
ク長BLが記述される。ヒントタイプリストHTLiは
パーツグループの各パーツに共通に使用されるものであ
る。このため、ヒント情報が異なるパーツは同じパーツ
グループに分類しない。又、パーツアウトラインブロッ
クのブロック長BLも各パーツに共通であり、各パーツ
の後述する圧縮アウトラインデータ長が異なるパーツは
同じパーツグループに分類しない。パーツグループオフ
セットPGOによりパーツグループ位置を指示し、パー
ツアウトラインインデックスPOIによりグループ内に
おけるブロック番号bを指示することにより、高速に所
望パーツのアウトラインデータを読み出すことができ
る。
【0070】(f-3) コントロールデータ コントロールデータ部CDTには、アウトラインデー
タの圧縮情報、パーツのヒント位置情報が記述され
る。 ・アウトラインデータの圧縮 パーツアウトラインは、輪郭ポイント何個かで書くこと
ができる。アウトラインの書き方は、二次、三次のスプ
ライン曲線やペジェ曲線を発生する方法、隣接2点間を
順次接続する方法などがある。簡潔なアウトライン書式
にするため、ここでは輪郭ポイントの位置をX,Y整数
座標系で定義し、隣接するコントロール・ポイントの位
置はコントロールポイント間のショートベクトルで表現
する。
【0071】ショートベクトルは各軸方向の増分(d
x,dy)で特定できるが、最大長のベクトルを表現す
るために、dx,dyそれぞれに16ビット、合計4バ
イトが必要になる。全てのベクトルを4バイトで表現す
るとなると使用メモリ量が非常に大きくなる。ところ
で、短いベクトルはdx,dyそれぞれに4ビット、合
計1バイトあれば足りる。このため、アウトラインのベ
クトルのタイプが分かれば、短いベクトルは1バイトで
表現し、中位の長さのベクトルは2バイトで表現し、長
いベクトルは4バイトで表現することができ、アウトラ
インデータを圧縮することができる。
【0072】図31は、隣接する輪郭ポイント間を接続
するベクトルのタイプ説明図である。タイプには0〜5
があり、ベクトルが水平方向であるか、垂直方向であ
るか、傾斜方向であるかの方向と、ベクトルの長さを
考慮して定められている。 (1) タイプ0は隣接2点が重なる場合であり殆どありえ
ないベクトルである。 (2) タイプ1は、dx,dyそれぞれ4ビットで表現で
きる長さのベクトルである。 (3) タイプ2は、dx=0の垂直方向のベクトルで、d
yを8ビットで表現できる長さのベクトルである。 (4) タイプ3は、dy=0の水平方向のベクトルで、d
xを8ビットで表現できる長さのベクトルである。 (5) タイプ4は、傾斜しており、dx,dyそれぞれ8
ビットで表現できる長さのベクトルである。 (6) タイプ5は、dx,dyそれぞれ16ビットで表現
できる長さのベクトルである。
【0073】以上より、コントロールデータ部CDTに
おける圧縮情報により、パーツのアウトラインを構成す
る各ベクトルのdx-/dy-タイプを表現する。このように
すれば、ベクトルの方向及びベクトル長に応じた適正の
データ長でベクトルを表現できるため、フォントファイ
ルのサイズを小さくでき(アウトラインデータの圧
縮)、しかも、アウトラインデータ読み取り時に各セグ
メントのタイプを考慮してそのデータ長を認識でき、正
しくアウトライン情報を読み出すことができる。尚、圧
縮情報はパーツグループの各パーツに共通なデータであ
り、ベクトルタイプ配列が同一のパーツでパーツグルー
プが構成される。
【0074】図32はコントロールデータ構造説明図、
図33はパーツ(漢字の「しずく」部分)のアウトライ
ン説明図である。コントロールデータはアウトラインの
輪郭ポイントに対応して1つ設けられ、全部で輪郭ポイ
ント数だけ用意されている。コントロールデータは8ビ
ットで表現されており、第0〜2ビットはdx-/dy-タ
イプを示し、第3ビットはdyの符号を示し、第4
ビットはdxの符号を示し、第5ビットはYヒントの
有無を示し、第6ビットはXヒントの有無を示し、
第7ビットはベジェ曲線の端点であるか否かを示す。
【0075】図33に示すようにパーツのアウトライン
が輪郭点0〜9により構成されている場合、ポイント
0,1間をショートベクトルで接続し、ポイント1、
ポイント4間を第1のベジェ曲線で接続し、ポイント
4,7間を第2のベジェ曲線で接続し、ポイント7,
0間を第3のベジェ曲線で接続するものとすると、各コ
ントロールデータの第7ビットは図32の下段に示す値
になる。”1”が連続するポイント間はショートベクト
ルとなり、”1”と”1”のポイント間に”0”のポイ
ントが存在する場合は該”1”のポイントをそれぞれ始
点、終点としてベジェ曲線を生成して接続する。
【0076】・ヒント情報 図33の輪郭ポイント0にyマークヒント、ポイント1
にxマークヒント、ポイント4にyカーブヒント、ポイ
ント7にxカーブヒントを付加するものとすると、コン
トロールデータのポイント0,4の第3ビットにそれぞ
れyヒント有りを示す”1”が記入され、ポイント1,
7の第4ビットにそれぞれxヒント有りを示す”1”が
記入される。各xヒント、yヒントのタイプは、ヒント
タイプリストに記述されている。従って、ヒントオフセ
ットHOFが示すヒントタイプリスト(図30参照)を
読み取れば、該ヒントタイプリストに基づいてポイント
0にyマークヒントが、ポイント1にxマークヒント
が、ポイント4にyカーブヒントが、ポイント7にxカ
ーブヒントをそれぞれ付与する必要があることを認識で
きる。
【0077】(g) パーツグループを構成するパーツ条件 以上より、フォントファイルにおけるパーツグループを
構成するパーツには以下の条件、(1) パーツアウトライ
ンの輪郭点数が同一であること、(2) ショートベクトル
の圧縮タイプが同一であること、(3) ヒントタイプが同
一であること、が必要である。すなわち、パーツはこれ
らの条件を満たすパーツグループに分類されてパーツグ
ループを構成する。
【0078】(h) 文字コードよりパーツのアウトライン
発生制御 以上のようにフォントファイルを構成すれば、文字コー
ドが与えられると、文字コード化用ディレクトリ部63
より、該文字コードに応じたキャラクタヘッダ位置が認
識し、該キャラクタヘッダを読み出す。キャラクタヘッ
ダ64は文字を構成する各パーツが属するグループの位
置を示すパーツグループオフセットPGOと、グループ
内におけるパーツのアウトラインブロック位置を示すパ
ーツアウトラインインデックスPOIを有している。従
って、これらデータPGO,POIに基づいてパーツの
アウトライン情報の格納位置が判明し、該位置よりアウ
トライン情報を読み出す。この場合、コントロールデー
タを参照して正しくアウトライン情報を読み取ることが
でき、しかも、コントロールデータに含まれるヒント情
報に基づいてヒントを輪郭ポイントに付加することがで
きる。そして、読み出したアウトラインデータ及びコン
トロールデータの第7ビット(ショートベクトルとベジ
ェ曲線の別)を参照してショートベクトル、ベジェ曲線
を発生すると共に、ヒント制御して該パーツに応じたア
ウトラインを発生する。以上では本発明を漢字のヒント
付け、フォントファイルの構成法に適用した場合につい
て説明したが、ハングル文字等他の文字におけるヒント
付けフォントファイルの構成に適用することができる。
以上、本発明を実施例により説明したが、本発明は請求
の範囲に記載した本発明の主旨に従い種々の変形が可能
であり、本発明はこれらを排除するものではない。
【0079】
【発明の効果】
(a)ヒント付けの効果 以上本発明によれば、形状が類似しており、同一のヒン
ト情報が付加される文字構成要素を自動的にクラス分け
し、各クラスのマスター要素のみオペレータ操作でヒン
ト付けしてシステムにヒント付けの学習をさせ、以後
は、システムが自動的に他の構成要素のヒント付けを行
うようにしたから、ストロークあるいはパーツなどの文
字構成要素に半自動的に効率良くヒント付けすることが
できる。
【0080】又、本発明によれば、0〜3600を複数
の方向範囲に分け、構成要素のアウトラインを特定する
輪郭ポイントのうち隣接するポイント間を接続するベク
トルの長さが設定長以上で、かつ、直前のベクトルと異
なる方向の場合には、アトリビュート数をカウントアッ
プすると共に、該ベクトルをアトリビュートセグメント
としてその方向及び始点、終点を記憶し、ベクトルの長
さが設定長以下の場合は該ベクトルは無視し、ベクトル
の長さが設定値以上で、直前のベクトルと同一方向の場
合には直前のアトリビュートセグメントの終点を現ベク
トルの終点で更新する処理を全ベクトルについて行って
アトリビュートリストを作成し、2つの構成要素のアト
リビュート数が同一で、かつ、アトリビュートセグメン
トの方向データの配列が同一の時、これら2つの構成要
素を同一のクラスに分類するようにしたから、自動的に
効率良くクラス分けができる。
【0081】更に本発明によれば、学習ステップにおい
て各クラスのマスター要素にヒント付けする際、既にヒ
ント付けしてあるマスター要素のうち対象マスター要素
と最も類似するベストマッチングマスター要素を求め、
該ベストマッチングマスター要素のヒント情報を用いて
対象マスター要素にヒント付けし、しかる後、ディスプ
レイ画面上でヒント編集を行って対象マスター要素にヒ
ント付けを行うようにしたから、効率良くヒント付けの
学習を行うことができる。
【0082】又、本発明によれば、ヒント付けしてある
マスター要素及び対象マスター要素のアウトラインのX
軸方向及びY軸方向における座標値が減小から増大に、
あるいは増大から減小に変化する点である極値点を求め
ると共に、X軸方向の極値点のうち座標値が増大から減
小に変化する極値点をXmax、座標値が減小から増大に
変化する極値点をXminと表現し、又、Y軸方向の極値
点のうち座標値が増大から減小に変化する極値点をYma
x、座標値が減小から増大に変化する極値点をYminと表
現した時、ストロークのアウトラインに沿って出現する
Xmax,Xmin、Ymax,Yminの配列を求め、対象マスタ
ー要素と各軸方向の極値点数が同じで、かつ、極値点の
配列が同一の既にヒント付けしてあるマスター要素を求
め、求めたヒント付けしてあるマスター要素あるいは対
象マスター要素の一方のX,Y軸方向のサイズを他方の
X軸方向及びY軸方向のサイズに一致するようにスケー
リングし、スケーリング後、両マスター要素の重なり面
積に基づいて両マスター要素の類似度を求め、類似度が
最大のヒント付けしてあるマスター要素をベストマッチ
ングマスター要素としたから、自動的にベストマッチン
グマスターストロークを求めることができ、ヒント付け
の学習を効率よく行うことができる。
【0083】更に、本発明によれば、ヒント付けしてあ
るマスター要素及び対象マスター要素の1つの対応点及
び該対応点を端点とする1つのセグメントを重ね合わ
せ、所定間隔の走査線でスキャンしたとき、各要素内の
各走査線の長さを加算して各要素の面積とし、又重なっ
ている部分の各走査線の長さを加算して重なり面積と
し、重なり面積を両マスター要素の面積の和で除算した
値を類似度としたから、比較的簡単に、しかも、精度良
く類似度を求めることができる。又、自動ヒント付けス
テップにおいて、対象構成要素及びマスター要素の各ア
トリビュートセグメント始点、終点が重なるように、一
方の要素の個々のアトリビュートセグメントをスケーリ
ングすると共に、該アトリビュートセグメントの始点、
終点間に存在する一方の要素の輪郭点を同様にスケーリ
ングし、マスター要素のヒントポジションから最も近い
対象構成要素上の輪郭点を求め、該輪郭点に前記ヒント
ポジションにおけるヒント情報を付加するようにしたか
ら、学習後は自動的に各文字構成要素にヒント付けする
ことができる。
【0084】(b)フォントファイル構成法の効果 本発明によれば、形状が類似するパーツをグループ化
し、グループ内のパーツで共用できるデータはグループ
に1つだけ準備するだけでよいようにフォントファイル
を構成したから、フォントファイルのサイズを小さくで
き、使用メモリ量を減小することができる。
【0085】又、本発明によれば、パーツのアウトライ
ンを特定する輪郭ポイントのうち隣接するポイント間を
接続するベクトルのタイプを、該ベクトルの方向と長さ
に基づいて分類すると共に、それぞれのタイプのベクト
ルを表現するに必要なデータ長を定め、グループヘッダ
部の共通データ部に、パーツのアウトラインを構成する
各ベクトルのタイプを記述するようにしたから、各ベク
トルをその方向及びベクトル長に応じた適正のデータ長
で表現でき、これによりフォントファイルのサイズを小
さくできる(アウトラインデータの圧縮)。しかも、ア
ウトラインデータ読み取り時に共通データ部に記述され
ているタイプより各ベクトルのデータ長を認識でき、正
しくアウトライン情報を読み出すことができる。
【0086】更に、本発明によれば、ヒントタイプリス
トをグループ毎に記述したヒントテーブルを設け、グル
ープヘッダの共通データ部にヒントテーブル内のヒント
タイプリストの位置を示すヒントオフセットを記述する
よにしたから、ヒントオフセットに基づいてヒントタイ
プリストを読み出し、パーツのアウトラインにヒント情
報を付加でき、しかも、ヒントテーブルをグループにつ
き1つ設けるだけで良いためフォントファイルのサイズ
を小さくできる。
【0087】又、本発明によれば、ヒントタイプ情報が
付加されるアウトラインの輪郭点位置を特定するヒント
位置データを、パーツグループの共通ヘッダ部に記述し
たから、該ヒント位置データが示す輪郭点にヒントタイ
プリストが特定するヒントタイプを付加して自動的にヒ
ント付けすることができる。更に、本発明によれば、グ
ループヘッダの共通データ部にパーツアウトラインデー
タのブロック長を記述するようにしたから、対象とする
パーツのパーツグループ内におけるアウトラインブロッ
ク番号を特定するパーツアウトラインインデックスとブ
ロック長より、高速に所望パーツのアウトラインデータ
を読み出すことができる。
【図面の簡単な説明】
【図1】本発明の第1の原理説明図である。
【図2】本発明の第2の原理説明図である。
【図3】フォント制作ツールの構成図である。
【図4】フォント制作ツールのハードウエア構成図であ
る。
【図5】ヒント付け処理の全体の処理フローである。
【図6】ストローク、ストローククラス説明図である。
【図7】ヒント情報説明図である。
【図8】ストロークのクラス分け処理フローである。
【図9】ストローク・アトリビュート・リストの作成処
理フローである。
【図10】ストロークアウトライン説明図である。
【図11】方向説明図である。
【図12】ストローク・アトリビュート・リストの説明
図である。
【図13】方向データの配列説明図である。
【図14】パターン同一判定処理フローである。
【図15】パターン同一判定説明図である。
【図16】学習モードの処理フローである。
【図17】学習処理の説明図である。
【図18】等化処理フロー(ストロークアウトライン等
化アルゴリズム)である。
【図19】等化処理の説明図である。
【図20】等化処理の別の説明図である。
【図21】ベストマッチングマスタストローク発見処理
フローである。
【図22】ベストマッチングマスタストローク発見処理
の説明図である。
【図23】各マスタストロークの面積、重なり面積説明
図である。
【図24】ベストマッチングマスタストロークの発見処
理の別の説明図である。
【図25】自動ヒンティング処理である。
【図26】ストロークアウトライン等化アルゴリズムで
ある。
【図27】アトリビュートセグメントの対応付け説明図
である。
【図28】スケーリング説明図である。
【図29】フォントファイル構成説明図である。
【図30】ヒントテーブルの説明図である。
【図31】ベクトルのタイプ説明図である。
【図32】コントロールデータ構造である。
【図33】パーツのアウトライン説明図である。
【図34】アウトラインフォント説明図である。
【図35】出力された文字のサンプルである。
【図36】本発明を適用するアウトラインフォントの説
明図である。
【図37】文字、ストローク、パーツ説明図である。
【図38】骨格情報説明図である。
【図39】パーツ座標説明図である。
【図40】フォントファイルの構造説明図である。
【図41】パーツ原点説明図である。
【図42】ステムヒント説明図である。
【図43】ウロコヒント説明図(その1)である。
【図44】ウロコヒント説明図(その2)である。
【符号の説明】
1・・ストローク記憶部 2・・ストローククラス分け部 3・・クラス分けストローク記憶部 4・・ヒント付け学習部 5・・マスターストロークヒント情報記憶部 6・・自動ヒント付け部

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 文字のアウトラインをその構成要素毎に
    カットし、構成要素にその形状を制御するヒントデータ
    を付加し、該構成要素の集まりで文字を表現するアウト
    ラインフォント作成装置におけるヒント付け方法におい
    て、 類似する外形を有する構成要素をクラス分けし、 各クラスの代表構成要素(マスター要素)のアウトライ
    ンの所定位置にオペレータ操作でヒント付けした時のヒ
    ント情報を記憶することによりヒント付けの学習を行
    い、 学習したマスター要素のヒント情報を用いて該マスター
    要素が属するクラスの構成要素に自動的にヒント情報を
    付加することを特徴とヒント付け方法。
  2. 【請求項2】 0〜3600を複数の方向範囲に分け、 構成要素のアウトラインを特定する輪郭ポイントのうち
    隣接するポイント間を接続するベクトルの長さが設定長
    以上で、かつ、直前のベクトルと異なる方向の場合に
    は、アトリビュート数をカウントアップすると共に、該
    ベクトルをアトリビュートセグメントとしてその方向及
    び始点、終点を記憶し、ベクトルの長さが設定長以下の
    場合は該ベクトルは無視し、ベクトルの長さが設定値以
    上で、直前のベクトルと同一方向の場合には直前のアト
    リビュートセグメントの終点を現ベクトルの終点で更新
    する処理を全ベクトルについて行ってアトリビュートリ
    ストを作成し、 2つの構成要素のアトリビュート数が同一で、かつ、ア
    トリビュートセグメントの方向データの配列が同一の
    時、これら2つの構成要素を同一のクラスに分類するこ
    とを特徴とする請求項1記載のヒント付け方法。
  3. 【請求項3】 前記学習ステップにおいて、各クラスの
    マスター要素にヒント付けする際、既にヒント付けして
    あるマスター要素のうち対象マスター要素と最も類似す
    るベストマッチングマスター要素を求め、 該ベストマッチングマスター要素のヒント情報を用いて
    対象マスター要素にヒント付けし、 しかる後、ディスプレイ画面上でヒント編集を行って対
    象マスター要素にヒント付けを行うことを特徴とする請
    求項1記載のヒント付け方法。
  4. 【請求項4】 ヒント付けしてあるマスター要素及び対
    象マスター要素のアウトラインのそれぞれについてX軸
    方向及びY軸方向のうち一方向における座標値が減小か
    ら増大に、あるいは増大から減小に変化する点である極
    値点を求めると共に、X軸方向の極値点のうち座標値が
    増大から減小に変化する極値点をXmax、座標値が減小
    から増大に変化する極値点をXminと表現し、又、Y軸
    方向の極値点のうち座標値が増大から減小に変化する極
    値点をYmax、座標値が減小から増大に変化する極値点
    をYminと表現した時、アウトラインに沿って出現する
    Xmax,Xmin、Ymax,Yminの配列を求め、 対象マスター要素の各軸方向の極値点数が同じで、か
    つ、極値点の配列が同一の既にヒント付けしてあるマス
    ター要素を求め、 求めたヒント付けしてあるマスター要素あるいは対象マ
    スター要素の一方のX,Y軸方向のサイズを他方のX軸
    方向及びY軸方向のサイズに一致するようにスケーリン
    グし、 スケーリング後、両マスター要素の重なり面積に基づい
    て両マスター要素の類似度を求め、 類似度が最大のヒント付けしてあるマスター要素をベス
    トマッチングマスター要素とすることを特徴とする請求
    項3記載のヒント付け方法。
  5. 【請求項5】 ヒント付けしてあるマスター要素及び対
    象マスター要素の1つの対応点及び該対応点を端点とす
    る1つのセグメントを重ね合わせ、 所定間隔の走査線でスキャンしたとき、各要素内の各走
    査線の長さを加算して各要素の面積とし、又重なってい
    る部分の各走査線の長さを加算して重なり面積とし、 重なり面積を両マスター要素の面積の和で除算した値を
    類似度とすることを特徴とする請求項4記載のヒント付
    け方法。
  6. 【請求項6】 自動ヒント付けステップにおいて、 対象構成要素及びマスター要素の各アトリビュートセグ
    メント始点、終点が重なるように、一方の要素の個々の
    アトリビュートセグメントをスケーリングすると共に、
    該アトリビュートセグメントの始点、終点間に存在する
    一方の要素の輪郭点を同様にスケーリングし、 マスター要素のヒントポジションから最も近い対象構成
    要素上の輪郭点を求め、該輪郭点に前記ヒントポジショ
    ンにおけるヒント情報を付加することを特徴とする請求
    項2記載のヒント付け方法。
  7. 【請求項7】 文字のアウトラインを1筆単位であるス
    トロークにカットし、ストロークをパーツにカットし、
    文字をパーツの集まりで表現するアウトラインフォント
    作成装置におけるフォントファイル構成方法において、 形状が類似するパーツをグループ化し、 グループの各パーツに共通なデータを記録するヘッダ部
    とグループに属するパーツのアウトラインを記述するパ
    ーツアウトラインブロックとでパーツグループデータ部
    を構成し、 文字コードより、該文字コードが示す文字を構成するパ
    ーツが属するグループの位置と、グループ内におけるパ
    ーツのアウトラインブロック位置を特定するようにフォ
    ントファイルを構成したことを特徴とするフォントファ
    イル構成方法。
  8. 【請求項8】 グループ内のパーツアウトラインブロッ
    クを出現率の高い順に配列したことを特徴とする請求項
    7記載のフォントファイル構成方法。
  9. 【請求項9】 前記共通なデータはパーツアウトライン
    データのブロック長を備え、前記アウトラインブロック
    位置データはパーツグループにおける先頭からのブロッ
    ク番号であり、ブロック長とブロック番号よりパーツの
    アウトラインブロック位置が得られるようにしたことを
    特徴とする請求項7記載のフォントファイル構成方法。
  10. 【請求項10】 パーツのアウトラインを特定する輪郭
    ポイントのうち隣接するポイント間を接続するベクトル
    のタイプを、該ベクトルが水平方向であるか、垂直方向
    であるか、傾斜方向であるか、並びにベクトルの長さを
    考慮して分類すると共に、それぞれのタイプのベクトル
    の各軸成分を表現するに必要なデータ長を定め、 前記共通データは、パーツのアウトラインを構成する各
    ベクトルのタイプを記述した制御データを備えることを
    特徴とする請求項7記載のフォントファイル作成方法。
  11. 【請求項11】 前記制御データより得られる各ベクト
    ルのタイプに基づいて、アウトラインを構成する各ベク
    トルのベクトルデータの区切りを識別してアウトライン
    情報を読み出すことを特徴とする請求項10記載のフォ
    ントファイル構成方法。
  12. 【請求項12】 グループ内の各パーツのアウトライン
    に共通に付されるヒントの種別を順に配列したヒントタ
    イプリストを記述したヒントテーブル部をグループ毎に
    フォントファイルに設け、 前記共通データは、ヒントテーブル内のヒントタイプリ
    スト位置を示すヒントオフセットデータを備えることを
    特徴とする請求項7記載のフォントファイル構成方法。
  13. 【請求項13】 前記共通データは、ヒントタイプ情報
    が付加されるアウトラインの輪郭点位置を特定するヒン
    ト位置制御データを備えることを特徴とする請求項12
    記載のフォントファイル構成方法。
  14. 【請求項14】前記ヒントオフセットデータに基づいて
    ヒントタイプリストを読み出し、前記ヒント位置を制御
    データが示すパーツのアウトライン輪郭点にヒントタイ
    プリストより求まるヒント情報を付加する請求項13記
    載のフォントファイル構成方法。
JP7290702A 1995-11-09 1995-11-09 ヒント付け方法及びフォントファイル構成方法 Withdrawn JPH09134157A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7290702A JPH09134157A (ja) 1995-11-09 1995-11-09 ヒント付け方法及びフォントファイル構成方法
US08/688,847 US5982387A (en) 1995-11-09 1996-07-25 Hint assignment method and font file construction method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7290702A JPH09134157A (ja) 1995-11-09 1995-11-09 ヒント付け方法及びフォントファイル構成方法

Publications (1)

Publication Number Publication Date
JPH09134157A true JPH09134157A (ja) 1997-05-20

Family

ID=17759413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7290702A Withdrawn JPH09134157A (ja) 1995-11-09 1995-11-09 ヒント付け方法及びフォントファイル構成方法

Country Status (2)

Country Link
US (1) US5982387A (ja)
JP (1) JPH09134157A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006106729A (ja) * 2004-09-30 2006-04-20 Microsoft Corp 可読性を損なわない複雑文字の簡略化
KR100691501B1 (ko) * 2005-07-21 2007-03-09 (주)정글시스템 스냅 힌팅과 스템 힌팅을 사용한 외곽선 폰트의 비트맵이미지 변환 방법 및 그 방법이 구현된 소프트웨어를저장한 컴퓨터가 읽을 수 있는 기록매체

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0172581B1 (ko) * 1996-04-02 1999-03-30 이진기 단계적 표현 가능형 폰트 그 변환 방법 및 렌더링 방법
US6288726B1 (en) * 1997-06-27 2001-09-11 Microsoft Corporation Method for rendering glyphs using a layout services library
JP3525997B2 (ja) * 1997-12-01 2004-05-10 富士通株式会社 文字認識方法
US6597360B1 (en) * 1998-10-07 2003-07-22 Microsoft Corporation Automatic optimization of the position of stems of text characters
US6498608B1 (en) * 1998-12-15 2002-12-24 Microsoft Corporation Method and apparatus for variable weight outline emboldening of scalable outline fonts
US6715127B1 (en) * 1998-12-18 2004-03-30 Xerox Corporation System and method for providing editing controls based on features of a raster image
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
US6760028B1 (en) * 2000-07-21 2004-07-06 Microsoft Corporation Methods and systems for hinting fonts
EP1282106A1 (en) * 2001-08-01 2003-02-05 Agere Systems System, method and computer program product for displaying and/or compressing digital data
US20030142113A1 (en) * 2002-01-30 2003-07-31 Xerox Corporation Hint data editor and method of editing hint data
JP4137527B2 (ja) * 2002-06-06 2008-08-20 富士通株式会社 線分編集支援装置及び方法
US7251365B2 (en) * 2002-07-03 2007-07-31 Vadim Fux Scalable stroke font system and method
CN100595751C (zh) 2002-07-03 2010-03-24 2012244安大略公司 可缩放笔划字体的系统和方法
US7006108B2 (en) * 2003-03-25 2006-02-28 Mitsubishi Electric Research Laboratories, Inc. Method for generating a composite glyph and rendering a region of the composite glyph in image-order
US6933952B2 (en) * 2003-03-25 2005-08-23 Mitsubishi Electric Research Labs, Inc. Method for antialiasing a set of objects represented as a set of two-dimensional distance fields in object-order
US7034845B2 (en) * 2003-03-25 2006-04-25 Mitsubishi Electric Research Laboratories, Inc. Method for antialiasing an object represented as a two-dimensional distance field in image-order
US7123271B2 (en) * 2003-03-25 2006-10-17 Mitsubishi Electric Research Labs, Inc. Method and apparatus for antialiasing a set of objects represented as a set of two-dimensional distance fields in image-order
US6917369B2 (en) * 2003-03-25 2005-07-12 Mitsubishi Electric Research Labs, Inc. Method and apparatus for rendering cell-based distance fields using texture mapping
US7006095B2 (en) * 2003-03-25 2006-02-28 Mitsubishi Electric Research Laboratories, Inc. Method for typesetting a set glyphs represented as a set of two dimensional distance fields
US6982724B2 (en) * 2003-03-25 2006-01-03 Mitsubishi Electric Research Labs, Inc. Method for antialiasing an object represented as a two-dimensional distance field in object-order
US7643687B2 (en) * 2005-03-18 2010-01-05 Microsoft Corporation Analysis hints
JP4939824B2 (ja) * 2006-03-15 2012-05-30 富士通株式会社 アウトラインフォント圧縮方法及び復号方法
US8102397B2 (en) * 2009-01-26 2012-01-24 Mitsubishi Electric Research Laboratories Inc. Method for improving uniform width character strokes using multiple alignment zones
US9235452B2 (en) * 2010-02-05 2016-01-12 Microsoft Technology Licensing, Llc Graphics remoting using augmentation data
US8947438B2 (en) 2011-08-01 2015-02-03 Microsoft Corporation Reducing font instructions
KR101898202B1 (ko) * 2012-02-09 2018-09-12 삼성전자주식회사 필기 인식을 위한 필기 입력 가이드 장치 및 방법
US9323726B1 (en) * 2012-06-27 2016-04-26 Amazon Technologies, Inc. Optimizing a glyph-based file
JP5831411B2 (ja) * 2012-09-14 2015-12-09 カシオ計算機株式会社 漢字書き順学習装置及び漢字書き順学習プログラム
US9715484B1 (en) 2013-03-04 2017-07-25 Amazon Technologies, Inc. Providing different font hints based on device, text and font context
CN104281601B (zh) * 2013-07-05 2018-09-25 北大方正集团有限公司 构建超大字库的方法及装置、字符显示方法及装置
US10725650B2 (en) * 2014-03-17 2020-07-28 Kabushiki Kaisha Kawai Gakki Seisakusho Handwritten music sign recognition device and program
US11301674B2 (en) * 2020-01-16 2022-04-12 Microsoft Technology Licensing, Llc Stroke attribute matrices

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3572783D1 (en) * 1984-02-21 1989-10-12 Hell Rudolf Dr Ing Gmbh Method and device for recording characters
US5280577A (en) * 1988-01-19 1994-01-18 E. I. Du Pont De Nemours & Co., Inc. Character generation using graphical primitives
JP2909273B2 (ja) * 1991-06-10 1999-06-23 淑郎 大塚 アウトライン・フォントの線幅調整方法および装置
KR960015761B1 (en) * 1992-01-27 1996-11-21 Fujitsu Ltd Charaster gerenating method and apparatus
US5598520A (en) * 1994-09-26 1997-01-28 Microsoft Corporation Methods and apparatus for hinting a font for controlling stem width as font size and resolution of output device vary

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006106729A (ja) * 2004-09-30 2006-04-20 Microsoft Corp 可読性を損なわない複雑文字の簡略化
KR100691501B1 (ko) * 2005-07-21 2007-03-09 (주)정글시스템 스냅 힌팅과 스템 힌팅을 사용한 외곽선 폰트의 비트맵이미지 변환 방법 및 그 방법이 구현된 소프트웨어를저장한 컴퓨터가 읽을 수 있는 기록매체

Also Published As

Publication number Publication date
US5982387A (en) 1999-11-09

Similar Documents

Publication Publication Date Title
JPH09134157A (ja) ヒント付け方法及びフォントファイル構成方法
US6466694B2 (en) Document image processing device and method thereof
JP3021547B2 (ja) 文字パターン発生方法
JP3425408B2 (ja) 文書読取装置
US6501475B1 (en) Glyph-based outline font generation independent of resolution
US5295238A (en) System, method, and font for printing cursive character strings
US6661417B1 (en) System and method for converting an outline font into a glyph-based font
JPH04500130A (ja) アウトライン文字をビットマップ文字に変換するための方法及び装置
JPH05233630A (ja) 日本語又は中国語を記載する方法
JPS6165290A (ja) ベクトル文字フオントの作成装置
KR0129505B1 (ko) 문자 데이터, 로고·삽화 데이터 입력출력장치와 입력출력방법
US6151032A (en) Stroke-based glyph-outline font generation in low/high resolution space
JPH05151254A (ja) 文書処理方法およびシステム
US5917501A (en) Method of cutting outline fonts into strokes and parts
JP3083314B2 (ja) 文書処理方法及び装置
JP2646475B2 (ja) 文字デ−タ入力出力装置と入力出力方法
JPH01262149A (ja) ドツト文字フオント生成機能をもつ文書出力装置
JP2844446B2 (ja) 文字情報格納方法、および筆順表示方法、並びに筆順表示装置
TWI664604B (zh) 電腦手寫中文字集創建及應用系統
JP3444726B2 (ja) 文字処理装置
JP3032417B2 (ja) 文字発生装置
JP3283762B2 (ja) 文字パターン生成装置
JPH0229853A (ja) 文書処理装置
JP2965429B2 (ja) 文字出力装置
JP2000242260A (ja) フォントの形成方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20030204