JPH0327094A - フオント情報の圧縮方法 - Google Patents
フオント情報の圧縮方法Info
- Publication number
- JPH0327094A JPH0327094A JP1160819A JP16081989A JPH0327094A JP H0327094 A JPH0327094 A JP H0327094A JP 1160819 A JP1160819 A JP 1160819A JP 16081989 A JP16081989 A JP 16081989A JP H0327094 A JPH0327094 A JP H0327094A
- Authority
- JP
- Japan
- Prior art keywords
- information
- font
- data
- dot
- address
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 239000011159 matrix material Substances 0.000 claims abstract description 8
- 230000015654 memory Effects 0.000 abstract description 27
- 230000006835 compression Effects 0.000 description 20
- 238000007906 compression Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 18
- 230000000694 effects Effects 0.000 description 3
- 238000013144 data compression Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の詳細な説明]
本発明は文字や記号などのパターン情報を圧縮するフォ
ント情報の圧縮方法に関するものである。
ント情報の圧縮方法に関するものである。
[従来の技術】
従来、文字や記号などをパターン情報で記憶するフォン
トメモリやキャラクタジエネレー夕などが知られており
、これらメモリでは、文字や記号などのボディーフェー
スを含めたパターン情報のそのまま全てを記憶していた
。
トメモリやキャラクタジエネレー夕などが知られており
、これらメモリでは、文字や記号などのボディーフェー
スを含めたパターン情報のそのまま全てを記憶していた
。
[発明が解決しようとする課題]
例えば、1文字(記号)が、40ドット×36ドットの
ドットパターンで表わされているとすると、1文字分の
フォントデータだけで、40X36=1,440ビット
必要となる。さらに、文字数が多くなってくると、これ
ら文字をパターンの総ビット容量は非常に大きなものに
なる。例えば、1書体が180文字からなるフォントデ
ータを格納する場合、1文字が40X36ドットで表わ
されていると、フォントデータの総ビット容量は、40
X36X180=259,200ビット=32,400
バイト必要となる.これは、256キロビットのマスク
ROMを用いた場合、2チツブ分のメモリ容量に相当し
ている.従って、同じ文字数からなる別の種類の書体を
いくつか格納したい時、lメガビットのマスクROMを
用いた場合でも3書体しか格納できないことになる。
ドットパターンで表わされているとすると、1文字分の
フォントデータだけで、40X36=1,440ビット
必要となる。さらに、文字数が多くなってくると、これ
ら文字をパターンの総ビット容量は非常に大きなものに
なる。例えば、1書体が180文字からなるフォントデ
ータを格納する場合、1文字が40X36ドットで表わ
されていると、フォントデータの総ビット容量は、40
X36X180=259,200ビット=32,400
バイト必要となる.これは、256キロビットのマスク
ROMを用いた場合、2チツブ分のメモリ容量に相当し
ている.従って、同じ文字数からなる別の種類の書体を
いくつか格納したい時、lメガビットのマスクROMを
用いた場合でも3書体しか格納できないことになる。
本発明は上記従来例に鑑みてなされたもので、文字や記
号などのフォント情報の同一パターン部分に注目して、
フォント情報を効率よく圧縮できるフォント情報の圧縮
方法を提供することを目的とする。
号などのフォント情報の同一パターン部分に注目して、
フォント情報を効率よく圧縮できるフォント情報の圧縮
方法を提供することを目的とする。
[課題を解決するための手段]
上記目的を達成するために本発明のフォント情報の圧縮
方法は以下の様な構成からなる。即ち、ドットマトリク
ス形式で表現されたパターン情報のうち、前記パターン
情報の端部よりの行方向及び列方向の空白部分を除去す
る工程と、前記空白部分が除去されたドットマトリクス
情報において、行あるいは列方向に連続して繰返し出現
するドット情報を検出する工程と、連続して繰返し出現
しているドット情報を、連続して繰返し出現しているこ
とを示す情報と、1列分あるいはl行分のドット情報と
により表現して前記パターン情報を圧縮する工程とを備
える。
方法は以下の様な構成からなる。即ち、ドットマトリク
ス形式で表現されたパターン情報のうち、前記パターン
情報の端部よりの行方向及び列方向の空白部分を除去す
る工程と、前記空白部分が除去されたドットマトリクス
情報において、行あるいは列方向に連続して繰返し出現
するドット情報を検出する工程と、連続して繰返し出現
しているドット情報を、連続して繰返し出現しているこ
とを示す情報と、1列分あるいはl行分のドット情報と
により表現して前記パターン情報を圧縮する工程とを備
える。
[作用]
以上の構成において、ドットマトリクス形式で表現され
たパターン情報のうち、前記パターン情報の端部よりの
行方向及び列方向の空白部分を除去し、これら空白部分
が除去されたドットマトリクス情報において、行あるい
は列方向に連続して繰返し出現するドット情報を検出す
る。そして、連続して繰返し出現しているドット情報を
、連続して繰返し出現していることを示す情報と、1列
分あるいは1行分のドット情報とにより表現して、パタ
ーン情報を圧縮するように動作している。
たパターン情報のうち、前記パターン情報の端部よりの
行方向及び列方向の空白部分を除去し、これら空白部分
が除去されたドットマトリクス情報において、行あるい
は列方向に連続して繰返し出現するドット情報を検出す
る。そして、連続して繰返し出現しているドット情報を
、連続して繰返し出現していることを示す情報と、1列
分あるいは1行分のドット情報とにより表現して、パタ
ーン情報を圧縮するように動作している。
[実施例]
以下、添付図面を参照して本発明の好適な実施例を詳細
に説明する。
に説明する。
第1図は本発明の一実施例の流れの概略を示すブロック
図である。
図である。
図中、工0は圧縮する前のフォントデータを記憶してい
るフォントメモリ、11はフォントメモリ10とは別に
、各文字(記号)ごとの横方向のドット数の情報が入っ
ているフォントメモリである。12は本実施例の圧縮プ
ログラムや各種データを記憶しているプログラムメモリ
である。13はCPUで、プログラムメモリl2に記憶
されている制御プログラムに従って、後述する各種処理
を実行する。l4はレジスタ群で、カウンタやアドレス
ポインタなどを含み、CP013による処理中に各種デ
ータを一時的に保存するのに使用される。l6はプログ
ラムによって圧縮されたフォントメモリ10のフォント
データを一時的に保存しておくメモリである。l7はメ
モリ16に作成された、圧縮されたフォント情報を記憶
するためのファイルである。
るフォントメモリ、11はフォントメモリ10とは別に
、各文字(記号)ごとの横方向のドット数の情報が入っ
ているフォントメモリである。12は本実施例の圧縮プ
ログラムや各種データを記憶しているプログラムメモリ
である。13はCPUで、プログラムメモリl2に記憶
されている制御プログラムに従って、後述する各種処理
を実行する。l4はレジスタ群で、カウンタやアドレス
ポインタなどを含み、CP013による処理中に各種デ
ータを一時的に保存するのに使用される。l6はプログ
ラムによって圧縮されたフォントメモリ10のフォント
データを一時的に保存しておくメモリである。l7はメ
モリ16に作成された、圧縮されたフォント情報を記憶
するためのファイルである。
次に、代表的なフォントデータを用いて、本実施例によ
るフォント圧縮方法の具体例を説明する。
るフォント圧縮方法の具体例を説明する。
第2図は、文字フォントの一例を示す図で、ここでは縦
40ドット、横36ドットの40X36ドットで構成さ
れている。このフォントデータは、第3図(B)に示す
ように第1図のフォントメモリ10にに格納されている
。第3図(A)は第2図に示す40X36ドットパター
ンを、各データバイトに分割して示した図で、第3図(
B)はこれら分割されたデータ(バイトデータ)がメモ
リに格納される状態を示している。ここでは、例えばデ
ータの先頭番地がoooo.だとするとOOOOH番地
には、第3図(A)の1で示された1バイトデータ、0
000 1.には2で示されたlバイトデータ・・・と
いうように順次格納されている。
40ドット、横36ドットの40X36ドットで構成さ
れている。このフォントデータは、第3図(B)に示す
ように第1図のフォントメモリ10にに格納されている
。第3図(A)は第2図に示す40X36ドットパター
ンを、各データバイトに分割して示した図で、第3図(
B)はこれら分割されたデータ(バイトデータ)がメモ
リに格納される状態を示している。ここでは、例えばデ
ータの先頭番地がoooo.だとするとOOOOH番地
には、第3図(A)の1で示された1バイトデータ、0
000 1.には2で示されたlバイトデータ・・・と
いうように順次格納されている。
第4図は文字パターンにおけるレターフェースとボディ
ーフェースを説明するための図で、フォントデータが縦
yバイト、横Xドットで構成されているとする(この大
きさをボディーフェースと称する。)。そして、文字“
L”のフォントデータのまわりの空白部分(斜線部分)
を特定するために、第4図のようにxi,x2,x3.
yl.y2, y3を定める。xi,x3は圧縮で取り
除ける横方向のドット数、yl,y3は圧縮で取り除け
る縦方向のバイト数である。x2は文字“L”パターン
の実データ部分の横方向ドット数、y2は実データ部分
の縦方向のバイト数を示し、y2Xx2の大きさをレタ
ーフェースと称する。
ーフェースを説明するための図で、フォントデータが縦
yバイト、横Xドットで構成されているとする(この大
きさをボディーフェースと称する。)。そして、文字“
L”のフォントデータのまわりの空白部分(斜線部分)
を特定するために、第4図のようにxi,x2,x3.
yl.y2, y3を定める。xi,x3は圧縮で取り
除ける横方向のドット数、yl,y3は圧縮で取り除け
る縦方向のバイト数である。x2は文字“L”パターン
の実データ部分の横方向ドット数、y2は実データ部分
の縦方向のバイト数を示し、y2Xx2の大きさをレタ
ーフェースと称する。
C空白部分の求め方の説明(第5図〜第10図)コ第5
図から第8図のフローチャートと第9図のフォントデー
タを用い、第9図におけるxi.x2、X3、y1、y
2、y3の求め方について説明する。
図から第8図のフローチャートと第9図のフォントデー
タを用い、第9図におけるxi.x2、X3、y1、y
2、y3の求め方について説明する。
第5図は、文字パターンの左よりX方向のスペース部分
の長さX1を求めるためのフローチャートである。ステ
ップS1でデータの先頭アドレスを00008とし、そ
の値をADRSにセットする。ステップS2でX1のド
ット数を数えるカウンタCNTを“O゜゛にリセットす
る。ステップS3で横方向ドット数“36”をレジスタ
HDOTにセットし、ステップS4で縦方向のバイト数
゜゜5゜゛をレジスタVBYTにセットする。次にステ
ップS5に進み、ADRSに格納された番地の内容をフ
ォントメモリ10より読出す。
の長さX1を求めるためのフローチャートである。ステ
ップS1でデータの先頭アドレスを00008とし、そ
の値をADRSにセットする。ステップS2でX1のド
ット数を数えるカウンタCNTを“O゜゛にリセットす
る。ステップS3で横方向ドット数“36”をレジスタ
HDOTにセットし、ステップS4で縦方向のバイト数
゜゜5゜゛をレジスタVBYTにセットする。次にステ
ップS5に進み、ADRSに格納された番地の内容をフ
ォントメモリ10より読出す。
第10図は第9図に示されたフォントデータがフォント
メモリ10に記憶されている状態を示す?である.OO
OO■番地のデータは00.(空白)であるから、ステ
ップS6よりステップs7に進み、縦のバイト数VBY
Tが−1される。この結果、5−1=4≠0だからステ
ップs8よりステップS9に進み、ADRSを+1して
ステップS5に戻る。第10図より、アドレスOoo■
から00048までのデータ(縦方向の1列分の全バイ
ト)が00.であるから、ステップSIOでカウントC
NTを+1し、ステップSllで横方向のドット数HD
OTを−1する。
メモリ10に記憶されている状態を示す?である.OO
OO■番地のデータは00.(空白)であるから、ステ
ップS6よりステップs7に進み、縦のバイト数VBY
Tが−1される。この結果、5−1=4≠0だからステ
ップs8よりステップS9に進み、ADRSを+1して
ステップS5に戻る。第10図より、アドレスOoo■
から00048までのデータ(縦方向の1列分の全バイ
ト)が00.であるから、ステップSIOでカウントC
NTを+1し、ステップSllで横方向のドット数HD
OTを−1する。
ステップS12で横方向のドット数HDOTが゜“0′
゛でなければステップSl3に進み、アドレスADRS
を1つ増やしてステップs4に戻る。
゛でなければステップSl3に進み、アドレスADRS
を1つ増やしてステップs4に戻る。
そして、ステップS4で縦のバイト数VBYTを最初の
“5”にセットして、以降同様の処理を続ける。なお、
この場合、第10図より明らがなように、アドレスOO
OB.でデータが“O゜′でなくなるため、HDOTが
3ドット目で空白部分がなくなることになる。従って、
X1の値は“2”となり、最終的には第5図のステップ
S14で、CNTの値が第1図のレジスタ詳14のレジ
スタ■に保存される。
“5”にセットして、以降同様の処理を続ける。なお、
この場合、第10図より明らがなように、アドレスOO
OB.でデータが“O゜′でなくなるため、HDOTが
3ドット目で空白部分がなくなることになる。従って、
X1の値は“2”となり、最終的には第5図のステップ
S14で、CNTの値が第1図のレジスタ詳14のレジ
スタ■に保存される。
第6図はx3のドット数を求めるためのフローチャート
である。
である。
第6図のステップSl5で、ADRSにデータの最終ア
ドレスOOB3N (第10図参照)をセットし、ス
テップS16でx3を数えるカウンタCNTを゜゜0”
にリセットする。ステップS17で横ドット数HDOT
に“36”をセットし、ステップS18で縦のバイト数
VBYTに゜゜5″をセットする。次にステップS19
でADRSで指示されたアドレス(OOB3.番地)の
値を読込み、その値が空白データかどうかをみる。ここ
では゜゜O゛であるからステップS20よりステップS
21に進み、縦のバイト数VBYTを−1する。ここで
は、5−1=4≠OだからステップS22よりステップ
S23に進み、アドレスADRSを1減らす。
ドレスOOB3N (第10図参照)をセットし、ス
テップS16でx3を数えるカウンタCNTを゜゜0”
にリセットする。ステップS17で横ドット数HDOT
に“36”をセットし、ステップS18で縦のバイト数
VBYTに゜゜5″をセットする。次にステップS19
でADRSで指示されたアドレス(OOB3.番地)の
値を読込み、その値が空白データかどうかをみる。ここ
では゜゜O゛であるからステップS20よりステップS
21に進み、縦のバイト数VBYTを−1する。ここで
は、5−1=4≠OだからステップS22よりステップ
S23に進み、アドレスADRSを1減らす。
以降ステップS22で縦のバイト数VBYTが“O”に
なるまで同様の処理を続け、“O゜゛になったらステッ
プS24でX3を計数するカウンタCNTを+1し、ス
テップS25で横方向のドット数HDOTを1減らす。
なるまで同様の処理を続け、“O゜゛になったらステッ
プS24でX3を計数するカウンタCNTを+1し、ス
テップS25で横方向のドット数HDOTを1減らす。
ステップS26でHDOTが“O”でなければステップ
S27に進み、アドレスADRSを−1してステップS
18に戻る。ステップS20でデータが゜゛O゜′でな
くなるまで同様の処理を続けると、x3の値は第9図を
見てもわかるように“2”となり、最終的には第6図の
ステップ328で、この値(CNTの値)が第1図のレ
ジスタ群14内にあるレジスタ■に保存される。
S27に進み、アドレスADRSを−1してステップS
18に戻る。ステップS20でデータが゜゛O゜′でな
くなるまで同様の処理を続けると、x3の値は第9図を
見てもわかるように“2”となり、最終的には第6図の
ステップ328で、この値(CNTの値)が第1図のレ
ジスタ群14内にあるレジスタ■に保存される。
第7図は縦方向の上部の空白部分ylのバイト数を求め
るフローチャトである。
るフローチャトである。
まずステップS29でフォントデータの先頭アドレスo
ooo.をADRSにセットし、ステップS30でアド
レスセットに使用するアドレスカウンタAを゛゜O”に
リセットする。ステップS31でy1のバイト数を数え
る為のカウンタCNTを”0”にリセットし、ステップ
S32で縦のバイト数VBYTを“5”に、ステップS
33で横のドット数HDOTを“36”にセットする。
ooo.をADRSにセットし、ステップS30でアド
レスセットに使用するアドレスカウンタAを゛゜O”に
リセットする。ステップS31でy1のバイト数を数え
る為のカウンタCNTを”0”にリセットし、ステップ
S32で縦のバイト数VBYTを“5”に、ステップS
33で横のドット数HDOTを“36”にセットする。
次にステップS34でADRSで示される0000.番
地のデータ00.を読出し、ステップS35でそれぞれ
が“0゜゜かどうか比較する。この場合は゛O゛゜であ
るから空白と判断されてステップS36に進み、HDO
Tをl減らして゜゛35“゜にする。この結果、HDO
Tは゛O”ではないからステップS37よりステップS
38に進む。ステップS38でアドレスADRSに縦方
向のバイト数“5”を加えた後、ステップS34に戻っ
て次のアドレスで示されるデータをセットする。
地のデータ00.を読出し、ステップS35でそれぞれ
が“0゜゜かどうか比較する。この場合は゛O゛゜であ
るから空白と判断されてステップS36に進み、HDO
Tをl減らして゜゛35“゜にする。この結果、HDO
Tは゛O”ではないからステップS37よりステップS
38に進む。ステップS38でアドレスADRSに縦方
向のバイト数“5”を加えた後、ステップS34に戻っ
て次のアドレスで示されるデータをセットする。
ステップS37で横方向のドット数が“O゛゜になるま
で前述した処理を行い、横方向のドット数HDOTが“
O”になるとステップS39に進みカウンタCNTを1
する。次に、ステップS40で縦のバイト数を1減らし
て“4゛゜にする。この結果、縦のバイト数はまだOで
はないからステップS41よりステップS42に進み、
2列目の先頭アドレスをADRSにセットする為に。ア
ドレスカウンタAを1増やして、ステップS43で(先
頭アドレス“oooo.゜゜+A)で次行の先頭アドレ
スをADRSにセットする。
で前述した処理を行い、横方向のドット数HDOTが“
O”になるとステップS39に進みカウンタCNTを1
する。次に、ステップS40で縦のバイト数を1減らし
て“4゛゜にする。この結果、縦のバイト数はまだOで
はないからステップS41よりステップS42に進み、
2列目の先頭アドレスをADRSにセットする為に。ア
ドレスカウンタAを1増やして、ステップS43で(先
頭アドレス“oooo.゜゜+A)で次行の先頭アドレ
スをADRSにセットする。
上記の処理を“0”でないデータがあらわれるまで続け
る。この場合、第10図から分る様にアドレスO O
O B.でデータが“O” (空白)でなくなるため、
第9図より明らかな如く縦バイト数が゛工″にセットさ
れる。従って、y1の値は゜”1゛゜となり、最終的に
は第7図のステップS44で、第1図のレジスタ群14
内のレジスタ■にy=1の値が保存される。
る。この場合、第10図から分る様にアドレスO O
O B.でデータが“O” (空白)でなくなるため、
第9図より明らかな如く縦バイト数が゛工″にセットさ
れる。従って、y1の値は゜”1゛゜となり、最終的に
は第7図のステップS44で、第1図のレジスタ群14
内のレジスタ■にy=1の値が保存される。
第8図はy3のバイト数を求めるフローチャートである
が、第9図のフォントデータの場合、y3の値は゛゜O
゜゛となる。フローチャートの説明はデータのアドレス
セットの部分が多少異なる以外は第7図と同様であるた
め、その説明を省略する。
が、第9図のフォントデータの場合、y3の値は゛゜O
゜゛となる。フローチャートの説明はデータのアドレス
セットの部分が多少異なる以外は第7図と同様であるた
め、その説明を省略する。
以上説明したようにして、x1とX3が求められたので
、横ドット数からこれを引けばX2が求められる。即ち
x2=36− (2+2)=32となり、X2は、32
ドットである。同様にy2=5− (1+O)=4より
、y2は4バイトとなる。
、横ドット数からこれを引けばX2が求められる。即ち
x2=36− (2+2)=32となり、X2は、32
ドットである。同様にy2=5− (1+O)=4より
、y2は4バイトとなる。
以上の説明がボディーフェース部から空白データ部を除
外してレターフェース部だけを残す手順を示している。
外してレターフェース部だけを残す手順を示している。
次に、残ったレターフェース部からさらに繰り返しパタ
ーンデータを探し、重複するデータ部分を除外する手順
について説明する。
ーンデータを探し、重複するデータ部分を除外する手順
について説明する。
第13図は第9図のフォントデータの空白データを除い
たレターフェース部を示す図である。
たレターフェース部を示す図である。
図中、8で示されるビット情報を繰り返し情報と呼び、
各ビットの゜゛1” ゜゛0゜゛は次の様にして決定
される。即ち、隣合うy方向のドット列のビット情報を
比較し、それが同じであれば゛゜O“゜異なっていれば
゜゛1゜゜と決め、これをX方向に順に比較した結果が
示されている。なお、一番最初のビット80は、比較す
るものがないので無条件に゛1゜゛とする。以降、繰り
返し情報を決定する方法を第14図のフローチャートを
参照して説明する。
各ビットの゜゛1” ゜゛0゜゛は次の様にして決定
される。即ち、隣合うy方向のドット列のビット情報を
比較し、それが同じであれば゛゜O“゜異なっていれば
゜゛1゜゜と決め、これをX方向に順に比較した結果が
示されている。なお、一番最初のビット80は、比較す
るものがないので無条件に゛1゜゛とする。以降、繰り
返し情報を決定する方法を第14図のフローチャートを
参照して説明する。
第10図でデータの第9図のフォントデータの先頭アド
レスを0000,4番地と仮定したので、第13図のデ
ータ部の先頭データ8lのアドレスはOOOB.番地と
なる。第15図はレターフェース部だけを格納した時の
アドレスとデータを示す図で、以下説明にはこの図を参
照する。
レスを0000,4番地と仮定したので、第13図のデ
ータ部の先頭データ8lのアドレスはOOOB.番地と
なる。第15図はレターフェース部だけを格納した時の
アドレスとデータを示す図で、以下説明にはこの図を参
照する。
まずステップSIOiでADRSに先頭アドレスOOO
B.をセットし、ステップ3102でHDOTに、第9
図のX2である32ドットをセットする。ステップS1
03でVBYTにデータ部の縦バイト数(y2)“4”
をセットする。次にステップS104で、次列のデータ
の先頭アドレス(0010.)をBにセットする。ステ
ップS105では、ステップS104のアドレスを次に
使うためにCに保存しておく。ステップSl06ではA
DRSでアドレスされたフォントメモリ10の番地の内
容(ADRS)と、Bに記憶された番地が指すフォント
メモリ10の内容(B)とを比較し、一致するかどうか
をみる。
B.をセットし、ステップ3102でHDOTに、第9
図のX2である32ドットをセットする。ステップS1
03でVBYTにデータ部の縦バイト数(y2)“4”
をセットする。次にステップS104で、次列のデータ
の先頭アドレス(0010.)をBにセットする。ステ
ップS105では、ステップS104のアドレスを次に
使うためにCに保存しておく。ステップSl06ではA
DRSでアドレスされたフォントメモリ10の番地の内
容(ADRS)と、Bに記憶された番地が指すフォント
メモリ10の内容(B)とを比較し、一致するかどうか
をみる。
第15図を見てわかるように(ADRS)=60H、(
B)=6o. で等しいからステップs107に進み、
縦バイト数VBYTを−1する。この結果は≠0である
からステップ3108よりステップS109に進んでA
DRSが+1され、ス?ップSl 10でBが+1され
てステップSIO7に戻る。これにより、ADRSはo
ooc■、Bは0011.となる。
B)=6o. で等しいからステップs107に進み、
縦バイト数VBYTを−1する。この結果は≠0である
からステップ3108よりステップS109に進んでA
DRSが+1され、ス?ップSl 10でBが+1され
てステップSIO7に戻る。これにより、ADRSはo
ooc■、Bは0011.となる。
ステップS108で縦方向のバイト数が“O′゛になっ
て、その列のデータが全て、隣接する次のデータ列と一
致しているときはステップS113に進み、その繰り返
し情報に“O”をセットする。次にステップS114に
進み、Cに保存していたアドレスをADRSにセットし
、ステップS115で横方向のドット数を−1する。ス
テップS116で横方向のドット数HDOTが゛゜O゛
でなければステップS103に戻るが、“O”になると
処理を終了する。
て、その列のデータが全て、隣接する次のデータ列と一
致しているときはステップS113に進み、その繰り返
し情報に“O”をセットする。次にステップS114に
進み、Cに保存していたアドレスをADRSにセットし
、ステップS115で横方向のドット数を−1する。ス
テップS116で横方向のドット数HDOTが゛゜O゛
でなければステップS103に戻るが、“O”になると
処理を終了する。
ステップS106で(ADRS)と(B)とが一致しな
いときはステップS117に進み、繰り返し情報に゜゜
1゛゜をセッ卜する。ステップSll8で縦1列分(4
バイト)のデータをすべてデータ部に保存する。ここで
繰り返し情報の最初のビット80は、最初は前にデータ
が何もないので必ず“1 ”をセットする。
いときはステップS117に進み、繰り返し情報に゜゜
1゛゜をセッ卜する。ステップSll8で縦1列分(4
バイト)のデータをすべてデータ部に保存する。ここで
繰り返し情報の最初のビット80は、最初は前にデータ
が何もないので必ず“1 ”をセットする。
上記の処理を横ドット数HDOTが゛O゜゜になるまで
続けて、繰り返し情報の32ビットすべてをセットする
。繰り返し情報の全てがセットされた結果が第12図で
、これは、第13図の8で示されたものと同じである。
続けて、繰り返し情報の32ビットすべてをセットする
。繰り返し情報の全てがセットされた結果が第12図で
、これは、第13図の8で示されたものと同じである。
前述説明にて得られた繰り返し情報に基づき圧縮したフ
ォント情報を第l図のファイル17に記憶させるように
する。圧縮データとして記憶されるフォーマットを第1
1図に示す。
ォント情報を第l図のファイル17に記憶させるように
する。圧縮データとして記憶されるフォーマットを第1
1図に示す。
実際に、圧縮したデータとして必要なものは、第11図
に示す8種類のデータである。
に示す8種類のデータである。
この中で、繰り返し情報8とフォントデータのバイト数
はフォントデータの構成によって異なるが、その他はす
べて1バイトで表わされる。先頭から3バイトは、前述
した(xi,x2,yl,y2)が記憶される。また、
82は繰り返し情報のバイト数を示し、次に続く繰り返
し情報が何バイトで構成されるかを示す。前述した実施
例の場合では、繰り返し情報は第12図に示される様に
32ビットで構成されているため、゛゜4゜゛がセット
される。また、フォントデータ83には、繰り返し情報
が゛1”となっている部分の1列分のフォント情報が記
憶される。従って、前述の第l3図のパターンデータの
場合では、繰り返し情報が” 1 ”の部分は7つ存在
しているため、フォントデータ83は7X4=28 (
バイト)で構成されることになる。
はフォントデータの構成によって異なるが、その他はす
べて1バイトで表わされる。先頭から3バイトは、前述
した(xi,x2,yl,y2)が記憶される。また、
82は繰り返し情報のバイト数を示し、次に続く繰り返
し情報が何バイトで構成されるかを示す。前述した実施
例の場合では、繰り返し情報は第12図に示される様に
32ビットで構成されているため、゛゜4゜゛がセット
される。また、フォントデータ83には、繰り返し情報
が゛1”となっている部分の1列分のフォント情報が記
憶される。従って、前述の第l3図のパターンデータの
場合では、繰り返し情報が” 1 ”の部分は7つ存在
しているため、フォントデータ83は7X4=28 (
バイト)で構成されることになる。
以上説明したようにして、第2図で示される文字゛H
”のフォントデータを圧縮した結果を第16図(A)に
示し、第11図と共通する部分は同一記号で示している
。ここでは、圧縮されたデータは全部で37バイトとな
る。
”のフォントデータを圧縮した結果を第16図(A)に
示し、第11図と共通する部分は同一記号で示している
。ここでは、圧縮されたデータは全部で37バイトとな
る。
第2図のデータを圧縮なしでそのまま使用した場合は1
80バイト、空白部分を取り除いただけの圧縮データ、
即ちレターフェース部だけを記憶すると128バイトと
なる。これに対し本実施例の圧縮方法を利用した場合は
37バイトとなる。
80バイト、空白部分を取り除いただけの圧縮データ、
即ちレターフェース部だけを記憶すると128バイトと
なる。これに対し本実施例の圧縮方法を利用した場合は
37バイトとなる。
これらを比較した結果が、第16図(B)に示されてい
る。これによれば、圧縮なしの場合に比べて約20%に
圧縮されたことになる。空白部分を取り除いた圧縮と比
較しても、約30%に圧縮されることになる。
る。これによれば、圧縮なしの場合に比べて約20%に
圧縮されたことになる。空白部分を取り除いた圧縮と比
較しても、約30%に圧縮されることになる。
もちろん、この圧縮方法はフォントの内容によりその圧
縮率が変動することになり、圧縮効率が最悪の場合はレ
ターフェース部の比較する全てのデータが異なっていた
場合であり、この時には、レターフェース部だけを記憶
した場合より9バイト余分の情報を記憶しなければなら
なくなる。しかしながら、フォントの内容はドットマト
リクスの行もしくは列方向に同じデータが繰り返す場合
が圧倒的に多いため、全体的に見た場合には優位性が発
揮できるものである。
縮率が変動することになり、圧縮効率が最悪の場合はレ
ターフェース部の比較する全てのデータが異なっていた
場合であり、この時には、レターフェース部だけを記憶
した場合より9バイト余分の情報を記憶しなければなら
なくなる。しかしながら、フォントの内容はドットマト
リクスの行もしくは列方向に同じデータが繰り返す場合
が圧倒的に多いため、全体的に見た場合には優位性が発
揮できるものである。
なお、本実施例では、フォントデータを縦1列ごとに比
較して繰り返し情報を求めるようにしたが、これに限定
されるものでなく、データを横方向に1列ごとに比較し
て繰り返し情報を求めることもできる。また、さらに文
字ごとに、縦■列で比較するか、横l列で比較するか、
どちらか圧縮率の高い方を用いることも可能である。
較して繰り返し情報を求めるようにしたが、これに限定
されるものでなく、データを横方向に1列ごとに比較し
て繰り返し情報を求めることもできる。また、さらに文
字ごとに、縦■列で比較するか、横l列で比較するか、
どちらか圧縮率の高い方を用いることも可能である。
また本発明はその要旨を変換することなく、フオントデ
ータ以外のイメージデータなどにも利用できる。
ータ以外のイメージデータなどにも利用できる。
以上説明したように本実施例によれば、フォントデータ
の空白部分を取り除き、フォント情報の繰り返し部分を
圧縮することにより、フォントを記憶するために要する
ビット数を大幅に減少できる。これにより、フォント情
報を記憶するメモリ容量を減らすことができ、文書処理
装置や表示装置等のコストダウンが可能になる。また、
使用するメモリの数を増やすことなく、今まで以上のフ
ォントデータを記憶できる効果がある。
の空白部分を取り除き、フォント情報の繰り返し部分を
圧縮することにより、フォントを記憶するために要する
ビット数を大幅に減少できる。これにより、フォント情
報を記憶するメモリ容量を減らすことができ、文書処理
装置や表示装置等のコストダウンが可能になる。また、
使用するメモリの数を増やすことなく、今まで以上のフ
ォントデータを記憶できる効果がある。
[発明の効果]
以上説明したように本発明によれば、文字や記号などの
フォント情報の同一パターン部分に注目して、フォント
情報を効率よく圧縮できる効果がある。
フォント情報の同一パターン部分に注目して、フォント
情報を効率よく圧縮できる効果がある。
第1図は本実施例のおけるデータ圧縮処理を行う装置の
概略を示すブロック図、 第2図は文字“H ”のフォント構成を示す図、第3図
(’A)はフォントデータの並び方を示す図、第3図(
B)はメモリにおけるフォントデータの配置を示す図、 第4図はレターフェース部とボディーフェース部を説明
するための図、 第5図から第8図は本実施例の中の空白部分を求める処
理を示すフローチャート、 第9図は文字゛H”のフォントデータをもとに本実施例
中で使用する名称を表わした図、第10図は第9図のフ
ォントデータがメモリに格納されている状態を示した図
、 第11図は本実施例における圧縮データの構成を示す図
、 第12図は本実施例の繰り返し情報のデータ構成を表わ
した図、 第13図は第9図のフォントデータがら空白部分を取り
除いた図、 第14図は本実施例の繰り返し情報を求める処理を示す
フローチャート、 第IS図は第13図に示すフォントデータをメモリに記
憶した状態を示す図、そして 第16図(A)は第2図のフォント情報を本実施例によ
って圧縮した圧縮データを示す図、第16図(B)は本
実施例の圧縮方法による圧縮効率を比較して示す図であ
る。 図中、8・・・繰り返し情報、10.11・・・フォン
トメモリ、12・・・プログラムメモリ、13・・・C
PU.14・・・レジスタ群、16・・・メモリ、17
・・・フアイル、 82・・・繰り返し情報のパイ l・数、 8 3 ・・・ フォントデータ、 84・・・フォントデータのパイ ト 数である。 特 許 出 願 人 キヤノン株式会社 ト一一一一一一一一一 ? ■円 第4 図 [− 第7図 第10 図 X方向 第13 図 第15図
概略を示すブロック図、 第2図は文字“H ”のフォント構成を示す図、第3図
(’A)はフォントデータの並び方を示す図、第3図(
B)はメモリにおけるフォントデータの配置を示す図、 第4図はレターフェース部とボディーフェース部を説明
するための図、 第5図から第8図は本実施例の中の空白部分を求める処
理を示すフローチャート、 第9図は文字゛H”のフォントデータをもとに本実施例
中で使用する名称を表わした図、第10図は第9図のフ
ォントデータがメモリに格納されている状態を示した図
、 第11図は本実施例における圧縮データの構成を示す図
、 第12図は本実施例の繰り返し情報のデータ構成を表わ
した図、 第13図は第9図のフォントデータがら空白部分を取り
除いた図、 第14図は本実施例の繰り返し情報を求める処理を示す
フローチャート、 第IS図は第13図に示すフォントデータをメモリに記
憶した状態を示す図、そして 第16図(A)は第2図のフォント情報を本実施例によ
って圧縮した圧縮データを示す図、第16図(B)は本
実施例の圧縮方法による圧縮効率を比較して示す図であ
る。 図中、8・・・繰り返し情報、10.11・・・フォン
トメモリ、12・・・プログラムメモリ、13・・・C
PU.14・・・レジスタ群、16・・・メモリ、17
・・・フアイル、 82・・・繰り返し情報のパイ l・数、 8 3 ・・・ フォントデータ、 84・・・フォントデータのパイ ト 数である。 特 許 出 願 人 キヤノン株式会社 ト一一一一一一一一一 ? ■円 第4 図 [− 第7図 第10 図 X方向 第13 図 第15図
Claims (1)
- 【特許請求の範囲】 ドットマトリクス形式で表現されたパターン情報のうち
、前記パターン情報の端部よりの行方向及び列方向の空
白部分を除去する工程と、 前記空白部分が除去されたドットマトリクス情報におい
て、行あるいは列方向に連続して繰返し出現するドット
情報を検出する工程と、 連続して繰返し出現しているドット情報を、連続して繰
返し出現していることを示す情報と、1列分あるいは1
行分のドット情報とにより表現して前記パターン情報を
圧縮する工程と を備えることを特徴とするフォント情報の圧縮方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1160819A JPH0327094A (ja) | 1989-06-26 | 1989-06-26 | フオント情報の圧縮方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1160819A JPH0327094A (ja) | 1989-06-26 | 1989-06-26 | フオント情報の圧縮方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0327094A true JPH0327094A (ja) | 1991-02-05 |
Family
ID=15723105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1160819A Pending JPH0327094A (ja) | 1989-06-26 | 1989-06-26 | フオント情報の圧縮方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0327094A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009265209A (ja) * | 2008-04-23 | 2009-11-12 | Mk Seiko Co Ltd | 電光表示システム |
-
1989
- 1989-06-26 JP JP1160819A patent/JPH0327094A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009265209A (ja) * | 2008-04-23 | 2009-11-12 | Mk Seiko Co Ltd | 電光表示システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4881069A (en) | Font compression method and apparatus | |
JPS6370381A (ja) | イメ−ジ・デ−タの回転方法 | |
CA1103373A (en) | Parallel decoding system and method for converting binary data to video form | |
JPH0327094A (ja) | フオント情報の圧縮方法 | |
EP0100872A2 (en) | Apparatus for and method of enlarging character pattern | |
EP0114305A2 (en) | Normalisation of printed character representations | |
US5471676A (en) | Character data compressing method and character modifying method | |
JPS5855973A (ja) | 漢字デ−タの圧縮法 | |
JPS6394716A (ja) | 不揮発性メモリの書き込み方式 | |
JPH0449119B2 (ja) | ||
JPS63233465A (ja) | 数式記号の入力表示方式 | |
JPS5816186B2 (ja) | 文字パタ−ン発生器 | |
KR930000179B1 (ko) | 도트매트릭스 프린터에서 문자의 원윤곽 인자처리 방법 | |
JPS6317493A (ja) | 文字フオントデ−タの処理方法 | |
JPS6352179A (ja) | デイスプレイ用ramの配置方法 | |
JPH06152981A (ja) | 印字装置の画像データ格納方法 | |
JP2881924B2 (ja) | データ記憶装置 | |
JP2846165B2 (ja) | 文字学習装置 | |
KR940007347B1 (ko) | 프린팅 외곽선 추출방법 | |
JPS58116581A (ja) | 表示装置 | |
JPH0948160A (ja) | 文字記憶装置 | |
JPS6227789A (ja) | キヤラクタジエネレ−タのデ−タ圧縮方式 | |
JPH02184896A (ja) | 塗りつぶし回路 | |
JPH08263643A (ja) | 解像度変換方法 | |
JPH0341496A (ja) | 階調を有するフォント発生装置 |