JPH08194458A - Character processing device - Google Patents
Character processing deviceInfo
- Publication number
- JPH08194458A JPH08194458A JP7005249A JP524995A JPH08194458A JP H08194458 A JPH08194458 A JP H08194458A JP 7005249 A JP7005249 A JP 7005249A JP 524995 A JP524995 A JP 524995A JP H08194458 A JPH08194458 A JP H08194458A
- Authority
- JP
- Japan
- Prior art keywords
- data
- compression
- character
- processing
- compressed
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 238
- 238000007906 compression Methods 0.000 claims abstract description 217
- 230000006835 compression Effects 0.000 claims abstract description 164
- 238000000034 method Methods 0.000 claims abstract description 138
- 230000008569 process Effects 0.000 claims abstract description 103
- 230000008859 change Effects 0.000 claims abstract description 22
- 238000005429 filling process Methods 0.000 claims description 24
- 230000009467 reduction Effects 0.000 claims description 9
- 230000000694 effects Effects 0.000 abstract description 27
- 238000013500 data storage Methods 0.000 description 27
- 238000007726 management method Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 18
- 230000008901 benefit Effects 0.000 description 5
- 230000006837 decompression Effects 0.000 description 5
- 238000013523 data management Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010422 painting Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Dot-Matrix Printers And Others (AREA)
- Image Processing (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、文字等の図形の輪郭を
示すベクトル形式データ(以下、「ベクトルフォント」
という。)をドット形式データに展開処理し、該展開処
理されたドット形式データを出力装置に出力する文字処
理装置に関し、特にフォントキャッシュメモリ等の一時
記憶手段に、展開処理されたドット形式データを一時記
憶し、その後の展開処理時に一度展開処理されたドット
形式データを再利用して効率的に展開処理を行うことが
できる文字処理装置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to vector format data (hereinafter referred to as "vector font") indicating the outline of a figure such as a character.
Say. ) Is expanded into dot format data, and the expanded dot format data is output to an output device. In particular, the expanded dot format data is temporarily stored in a temporary storage means such as a font cache memory. However, the present invention relates to a character processing device that can efficiently perform expansion processing by reusing dot format data that has been expanded once in the subsequent expansion processing.
【0002】[0002]
【従来の技術】従来、入力された描画コマンドを解釈
し、この解釈結果に基づいて、文字等の図形の輪郭を示
すベクトルフォントを用いてドット形式で表されるドッ
ト形式データに展開処理し、この展開処理されたドット
形式データをプリンタ等の出力装置に出力する文字処理
装置がある。2. Description of the Related Art Conventionally, an input drawing command is interpreted, and based on the interpretation result, a dot format data represented by a dot format is developed using a vector font indicating the outline of a figure such as a character, There is a character processing device that outputs the expanded dot format data to an output device such as a printer.
【0003】この文字処理装置では、ベクトルフォント
が用いられることから、文字サイズに関係なく、高品質
な文字出力が可能となるという利点を有する一方、ドッ
トフォントと異なり、各文字サイズ毎に展開処理を行う
必要があることから、ドット形式データへの展開処理時
間がかかるという問題点を有している。Since this character processing device uses a vector font, it has the advantage that high-quality character output can be performed regardless of the character size. On the other hand, unlike the dot font, expansion processing is performed for each character size. Therefore, there is a problem that it takes a long time to develop the dot format data.
【0004】この問題点を解決するため、一度、ベクト
ルフォントを用いて展開処理されたドット形式データを
フォントキャッシュメモリに一時記憶しておき、同一の
文字を描画する命令が入力された場合に、この文字の展
開処理を行わずに、フォントキャッシュメモリに格納さ
れた同一の文字のドット形式データを再利用し、これに
より、描画コマンドに対応する文書データの展開処理を
高速に行うことができるようにした文字処理装置が考え
られた。In order to solve this problem, once the dot format data expanded using the vector font is temporarily stored in the font cache memory and the command for drawing the same character is input, Without performing this character expansion processing, the dot format data of the same character stored in the font cache memory can be reused, so that the expansion processing of the document data corresponding to the drawing command can be performed at high speed. A character processing device based on the above was conceived.
【0005】しかし、一度展開処理された文字のドット
形式データ全てを一時記憶することは、フォントキャッ
シュメモリのメモリ容量が有限であり、しかもコストも
かかるため、制限せざるを得ないのが実情である。However, in order to temporarily store all the dot format data of a character that has been expanded once, the memory capacity of the font cache memory is finite and the cost is high. is there.
【0006】このため、一時記憶すべき文字のドット形
式データを圧縮した圧縮データとしてフォントキャッシ
ュメモリに記憶する文字処理装置が考えられた。Therefore, a character processing device has been considered in which the dot format data of a character to be temporarily stored is compressed and stored in the font cache memory as compressed data.
【0007】例えば、特開平4−133091号公報に
は、フォントキャッシュメモリに展開処理されたドット
形式データを一時記憶する前に、一度圧縮処理を行い、
この圧縮処理による圧縮データのデータ量が、圧縮処理
前のドット形式データのデータ量より小さいならば、圧
縮処理後の圧縮データをフォントキャッシュメモリに一
時記憶し、小さくないならば、圧縮処理前のドット形式
データをフォントキャッシュメモリに一時記憶し、これ
により、フォントキャッシュメモリのメモリ効率を向上
することができる文字処理装置が記載されている。For example, in Japanese Patent Laid-Open No. 4-133091, compression processing is performed once before temporarily storing the expanded dot format data in the font cache memory.
If the data amount of the compressed data by this compression process is smaller than the data amount of the dot format data before the compression process, the compressed data after the compression process is temporarily stored in the font cache memory. There is described a character processing device that can temporarily store dot format data in a font cache memory and thereby improve the memory efficiency of the font cache memory.
【0008】また、特開平4−133091号公報に
は、ある基準サイズ以上の文字のドット形式データは、
圧縮処理するとデータ量が減少するという仮定のもと
に、予め文字の基準サイズを設定しておき、展開処理さ
れる文字のサイズが基準サイズ以上の場合に、展開処理
されたドット形式データを圧縮処理し、この圧縮処理さ
れた圧縮データをフォントキャッシュメモリに一時記憶
し、基準サイズ以上でない場合に、展開処理されたドッ
ト形式データをそのままフォントキャッシュメモリに一
時記憶する文字処理装置が記載されている。Further, in Japanese Laid-Open Patent Publication No. 4-133091, the dot format data of a character having a certain reference size or more is
Based on the assumption that the amount of data will decrease when compressed, the standard size of characters is set in advance, and when the size of the characters to be expanded is equal to or larger than the reference size, the expanded dot format data is compressed. Described is a character processing device that processes and temporarily stores the compressed data that has been compressed in the font cache memory, and temporarily stores the expanded dot format data as it is in the font cache memory when the size is not larger than the reference size. .
【0009】[0009]
【発明が解決しようとする課題】しかしながら、特開平
4−133091号公報に記載された文字処理装置で
は、圧縮処理により圧縮の効果、すなわち圧縮処理によ
りデータ量が減少したか否かを判定するために一度圧縮
処理を行っているので、常に圧縮処理を行わなければな
らない。従って、圧縮の効果がない場合においても、一
度圧縮処理を行う必要があるため、この圧縮処理によ
り、最終的な文字処理の出力が遅延するという問題点が
あった。However, in the character processing device described in Japanese Unexamined Patent Publication No. 4-133091, it is necessary to determine the effect of compression by the compression process, that is, whether or not the data amount is reduced by the compression process. Since the compression process is performed once every second, the compression process must always be performed. Therefore, even if there is no compression effect, it is necessary to perform compression processing once, and this compression processing has a problem that the final output of character processing is delayed.
【0010】また、特開平4−293093号公報に記
載された文字処理装置では、ある基準サイズ以上の文字
のドット形式データに対しては圧縮の効果があるという
仮定のもとに圧縮処理を行っているが、この仮定は、ア
ルファベットや記号等の比較的単純な形状の文字につい
ては成り立つが、漢字等における複雑な文字に対しては
成り立たない場合もある。この仮定が成り立たない文字
に対して圧縮処理を施すと、圧縮処理後のデータ量が圧
縮処理前のデータ量に比べて増加してしまい、フォント
キャッシュメモリのメモリ効率の低下をもたらすという
問題点が生じ、圧縮処理によるメモリ効率の向上という
本来の目的を達成できない場合が生じるという問題点が
あった。Further, in the character processing device disclosed in Japanese Patent Laid-Open No. 4-293093, compression processing is performed on the assumption that the dot format data of a character having a certain reference size or more has a compression effect. However, this assumption holds for relatively simple characters such as alphabets and symbols, but may not hold for complicated characters such as Chinese characters. If compression processing is applied to characters for which this assumption does not hold, the amount of data after compression processing will increase compared to the amount of data before compression processing, resulting in a decrease in memory efficiency of the font cache memory. However, there is a problem in that the original purpose of improving the memory efficiency by the compression process may not be achieved.
【0011】そこで、本発明は、かかる問題点を除去
し、圧縮処理の効果を判定するためにかかる時間を削減
するとともに、圧縮処理の効果があるドット形式データ
のみを圧縮処理してフォントキャッシュメモリのメモリ
効率の向上を真に達成することができる文字処理装置を
提供することを目的とする。Therefore, the present invention eliminates such problems and reduces the time required for determining the effect of the compression process, and compresses only the dot format data which has the effect of the compression process to perform the font cache memory. It is an object of the present invention to provide a character processing device that can truly improve the memory efficiency of the above.
【0012】[0012]
【課題を解決するための手段】第1の発明は、文字等の
図形を示すベクトル形式データをドット形式データに展
開処理し、該展開処理されたドット形式データを出力装
置に出力する際、一時記憶手段に展開処理されたドット
形式データを一時記憶して該ドット形式データの再利用
を行う文字処理装置において、前記展開処理の過程で順
次獲得される展開情報に基づいて、該展開処理されたド
ット形式データを圧縮すべきか否かを判定する判定手段
と、前記ドット形式データを圧縮する圧縮手段と、前記
判定手段が圧縮すべきと判定した場合、この判定された
ドット形式データの圧縮処理を前記圧縮手段に行わせて
該圧縮処理されたデータを前記一時記憶手段に記憶さ
せ、前記判定手段が圧縮すべきでないと判定した場合、
この判定されたドット形式データを前記一時記憶手段に
記憶させる制御を行う制御手段とを具備したことを特徴
とする。According to a first aspect of the present invention, when vector format data indicating a figure such as a character is expanded into dot format data and the expanded dot format data is output to an output device, In a character processing device that temporarily stores the expanded dot format data in a storage unit and reuses the dot format data, the expansion processing is performed based on the expansion information sequentially acquired in the process of the expansion processing. If the determination means determines whether or not the dot format data should be compressed, the compression means for compressing the dot format data, and the determination means determines that the dot format data should be compressed, the compression processing of the determined dot format data is performed. If the compression means is caused to store the compressed data in the temporary storage means, and the determination means determines that compression should not be performed,
And a control means for controlling the temporary storage means to store the determined dot format data.
【0013】第2の発明は、前記展開情報を、塗り潰し
処理の過程で順次獲得される展開情報とすることを特徴
とする。A second aspect of the invention is characterized in that the expansion information is expansion information that is sequentially acquired in the process of filling processing.
【0014】第3の発明は、前記展開情報を、輪郭描画
処理の過程で順次獲得される展開情報とすることを特徴
とする。A third aspect of the invention is characterized in that the expansion information is expansion information sequentially acquired in the course of the contour drawing process.
【0015】第4の発明は、前記展開情報が、前記展開
処理の過程におけるドット形式のデータの変化点数及び
該ドット形式のデータのデータ量であることを特徴とす
る。A fourth aspect of the invention is characterized in that the expansion information is the number of change points of the dot format data and the data amount of the dot format data in the course of the expansion processing.
【0016】第5の発明は、第4の発明において、前記
ドット形式のデータのデータ量が、ドット形式のデータ
のライン数と1ライン当たりのドット数であることを特
徴とする。In a fifth aspect based on the fourth aspect, the data amount of the dot format data is the number of lines of the dot format data and the number of dots per line.
【0017】第6の発明は、前記判定手段が、前記展開
情報に基づいて、前記圧縮手段により圧縮した場合の予
測データ量を算出し、前記予測データ量が、前記展開処
理後のドット形式データのデータ量に対する所定の減少
量を示す基準値以上の場合に、前記圧縮手段により圧縮
すべきと判定することを特徴とする。In a sixth aspect of the present invention, the determining means calculates a predicted data amount when the compression means compresses the compressed data based on the expansion information, and the predicted data amount is the dot format data after the expansion processing. When it is equal to or larger than a reference value indicating a predetermined reduction amount with respect to the data amount, the compression means determines that the data should be compressed.
【0018】第7の発明は、前記判定手段が、前記展開
情報に基づいて、前記圧縮手段により圧縮した場合の予
測データ量を算出し、前記予測データ量が、所定のデー
タ量を示す基準値以下の場合に、前記圧縮手段により圧
縮すべきと判定することを特徴とする。In a seventh aspect of the invention, the determining means calculates a predicted data amount when the compression means compresses the compressed data based on the expansion information, and the predicted data amount is a reference value indicating a predetermined data amount. In the following cases, the compression means determines that compression should be performed.
【0019】第8の発明は、前記判定手段が、前記展開
情報に基づいて、前記圧縮手段により圧縮した場合の予
測データ量を算出し、前記予測データ量が、前記展開処
理後のドット形式データのデータ量に対する所定の減少
割合を示す基準値以上の場合に前記圧縮手段により圧縮
すべきと判定することを特徴とする。According to an eighth aspect of the invention, the judgment means calculates a predicted data amount when the compression means compresses the compressed data based on the expansion information, and the predicted data amount is the dot format data after the expansion processing. It is characterized in that the compression means decides that the data should be compressed when it is equal to or larger than a reference value indicating a predetermined reduction rate with respect to the data amount.
【0020】第9の発明は、第6の発明から第8の発明
において、前記判定手段が、前記一時記憶手段の空き記
憶領域状態に基づいて前記基準値を変更することを特徴
とする。A ninth invention is characterized in that, in the sixth invention to the eighth invention, the judging means changes the reference value based on a free storage area state of the temporary storage means.
【0021】第10の発明は、前記圧縮手段が、前記ド
ット形式データをランレングス符号化して圧縮すること
を特徴とする。A tenth aspect of the invention is characterized in that the compression means compresses the dot format data by performing run length coding.
【0022】[0022]
【作用】第1の発明では、まず判定手段が、展開処理の
過程で順次獲得される展開情報に基づいて、この展開処
理されたドット形式データを圧縮すべきか否かを判定す
る。そして、制御手段は、判定手段が圧縮すべきと判定
した場合、圧縮手段に対し、判定手段により判定された
ドット形式データの圧縮処理を行わせ、この圧縮処理さ
れたデータを一時記憶手段に記憶させる。一方、判定手
段が圧縮すべきでないと判定した場合、制御手段は、判
定手段により判定されたドット形式データをそのまま一
時記憶手段に記憶させる。In the first aspect of the present invention, the determination means first determines whether or not the expanded dot format data should be compressed, based on the expansion information sequentially acquired during the expansion processing. When the determination means determines that the compression should be performed, the control means causes the compression means to perform the compression processing of the dot format data determined by the determination means, and stores the compressed data in the temporary storage means. Let On the other hand, when the determination means determines that the compression should not be performed, the control means stores the dot format data determined by the determination means in the temporary storage means as it is.
【0023】第2の発明では、第1の発明における展開
情報を、展開処理における塗り潰し処理の過程、すなわ
ち塗り潰し処理を行っている間に順次獲得するようにし
ている。In the second invention, the expansion information in the first invention is sequentially acquired during the filling process in the expansion process, that is, during the filling process.
【0024】第3の発明では、第1の発明における展開
情報を、展開処理における輪郭描画処理の過程、すなわ
ち輪郭描画処理を行っている間に順次獲得するようにし
ている。In the third invention, the expansion information in the first invention is sequentially acquired during the contour drawing process in the expanding process, that is, during the contour drawing process.
【0025】第4の発明では、前記展開情報を、前記展
開処理の過程におけるドット形式のデータの変化点数及
び該ドット形式のデータのデータ量としている。In the fourth invention, the expansion information is the number of change points of the dot format data and the data amount of the dot format data in the process of the expansion processing.
【0026】第5の発明では、第4の発明でのドット形
式のデータのデータ量を、ドット形式のデータのライン
数と1ライン当たりのドット数としている。In the fifth invention, the data amount of the dot format data in the fourth invention is the number of lines of the dot format data and the number of dots per line.
【0027】第6の発明では、前記判定手段が、前記展
開情報に基づいて、前記圧縮手段により圧縮した場合の
予測データ量を算出し、前記予測データ量が、前記展開
処理後のドット形式データのデータ量に対する所定の減
少量を示す基準値以上の場合に、前記圧縮手段により圧
縮すべきと判定し、制御手段は、判定手段が圧縮すべき
と判定した場合、ドット形式データを圧縮手段に圧縮処
理させ、この圧縮処理されたデータを一時記憶手段に記
憶させる。また、判定手段が圧縮すべきでないと判定し
た場合、制御手段は、ドット形式データをそのまま一時
記憶手段に記憶させる制御を行う。In the sixth invention, the judging means calculates a predicted data amount when compressed by the compressing means based on the expansion information, and the predicted data amount is the dot format data after the expansion processing. When it is equal to or larger than a reference value indicating a predetermined reduction amount with respect to the data amount of, the compression unit determines that compression is to be performed, and when the determination unit determines that compression is to be performed, the control unit applies the dot format data to the compression unit. A compression process is performed, and the compressed data is stored in the temporary storage means. When the determination means determines that the compression should not be performed, the control means controls the dot format data to be stored in the temporary storage means as it is.
【0028】第7の発明では、前記判定手段が、前記展
開情報に基づいて、前記圧縮手段により圧縮した場合の
予測データ量を算出し、前記予測データ量が、所定のデ
ータ量を示す基準値以下の場合に、前記圧縮手段により
圧縮すべきと判定し、制御手段は、判定手段が圧縮すべ
きと判定した場合は、ドット形式データを圧縮手段に圧
縮処理させ、この圧縮処理されたデータを一時記憶手段
に記憶させる。また、判定手段が圧縮すべきでないと判
定した場合、制御手段は、ドット形式データをそのまま
一時記憶手段に記憶させる制御を行う。In the seventh invention, the judging means calculates a predicted data amount when compressed by the compressing means based on the expansion information, and the predicted data amount is a reference value indicating a predetermined data amount. In the following cases, the compression means determines that the compression means should be compressed, and when the determination means determines that the compression means should be compressed, the dot format data is compressed by the compression means, and the compressed data is processed. It is stored in the temporary storage means. When the determination means determines that the compression should not be performed, the control means controls the dot format data to be stored in the temporary storage means as it is.
【0029】第8の発明では、前記判定手段が、前記展
開情報に基づいて、前記圧縮手段により圧縮した場合の
予測データ量を算出し、前記予測データ量が、前記展開
処理後のドット形式データのデータ量に対する所定の減
少割合を示す基準値以上の場合に前記圧縮手段により圧
縮すべきと判定し、制御手段は、判定手段が圧縮すべき
と判定した場合、ドット形式データを圧縮手段に圧縮処
理させ、この圧縮処理されたデータを一時記憶手段に記
憶させる。また、判定手段が圧縮すべきでないと判定し
た場合、制御手段は、ドット形式データをそのまま一時
記憶手段に記憶させる制御を行う。In the eighth invention, the judging means calculates a predicted data amount when compressed by the compressing means based on the expansion information, and the predicted data amount is the dot format data after the expansion processing. If the determination means determines that the compression is to be performed, and the determination means determines that the compression is to be performed, the dot format data is compressed by the compression means. The compressed data is processed and stored in the temporary storage means. When the determination means determines that the compression should not be performed, the control means controls the dot format data to be stored in the temporary storage means as it is.
【0030】第9の発明では、第6の発明から第8の発
明における基準値が、前記一時記憶手段の空き記憶領域
状態に基づいて変更される。この基準値の柔軟な変更に
より、一時記憶手段を最大限に活用でき、特に、初期状
態において一時記憶手段の記憶領域はほとんど空き領域
となっていることから有効である。In the ninth invention, the reference value in the sixth invention to the eighth invention is changed based on the empty storage area state of the temporary storage means. This flexible change of the reference value allows the temporary storage means to be utilized to the maximum extent, and is particularly effective because the storage area of the temporary storage means is almost empty in the initial state.
【0031】第10の発明では、前記圧縮手段が、前記
ドット形式データをランレングス符号化して圧縮するよ
うにしている。In the tenth aspect of the invention, the compression means compresses the dot format data by performing run length coding.
【0032】[0032]
【実施例】以下、図面を参照して本発明の実施例につい
て説明する。Embodiments of the present invention will be described below with reference to the drawings.
【0033】まず、図1は、本発明の第1の実施例であ
る文字処理装置の構成を示す機能ブロック図である。First, FIG. 1 is a functional block diagram showing the configuration of a character processing apparatus according to the first embodiment of the present invention.
【0034】図1において、本文字処理装置は、大きく
全体制御部10、出力制御部11、及び記憶部12から
構成され、全体制御部10は、受付部1、展開処理部
2、圧縮/伸長部3、及び判定部4を有し、記憶部12
は、フォント格納部5、フォントキャッシュメモリ部
6、及びページメモリ部7を有している。In FIG. 1, the character processing device is roughly composed of an overall control unit 10, an output control unit 11, and a storage unit 12. The overall control unit 10 includes a reception unit 1, an expansion processing unit 2, and a compression / expansion unit. The storage unit 12 includes the unit 3 and the determination unit 4.
Has a font storage unit 5, a font cache memory unit 6, and a page memory unit 7.
【0035】受付部1は、入力された描画コマンドCを
受け付け、順次展開処理部2に出力する。The acceptance unit 1 accepts the input drawing command C and sequentially outputs it to the expansion processing unit 2.
【0036】展開処理部2は、受付部1から入力された
描画コマンドCに対応して、文字等の展開処理を実行
し、ページ単位に最終的なドット形式のデータ(ビット
マップデータ)を生成し、ページ単位のビットマップデ
ータは、ページメモリ部7に記憶される。ここで、輪郭
描画部2aは、展開処理の1過程である輪郭描画処理を
行い、塗り潰し部2bは、展開処理の1過程である塗り
潰し処理を行う。一般に、文字等の展開処理は、フォン
ト格納部5に格納されているベクトルフォントデータを
もとに、拡大/縮小あるいは変形等の座標変換処理を行
い、この座標変換処理が施されたデータをもとに、最終
的なビットマップデータの輪郭を描く輪郭描画処理を行
い、最後にこの輪郭を塗りつぶす塗り潰し処理が行われ
る。The expansion processing unit 2 executes expansion processing of characters and the like in response to the drawing command C input from the reception unit 1 to generate final dot format data (bitmap data) page by page. However, the page-by-page bitmap data is stored in the page memory unit 7. Here, the contour drawing unit 2a performs a contour drawing process which is one step of the expansion process, and the filling unit 2b performs a filling process which is one step of the expansion process. Generally, in the process of expanding characters and the like, coordinate conversion processing such as enlargement / reduction or transformation is performed based on the vector font data stored in the font storage unit 5, and the data subjected to the coordinate conversion processing is also processed. Then, a contour drawing process for drawing the final outline of the bitmap data is performed, and finally, a filling process for filling the outline is performed.
【0037】圧縮/伸長部3は、圧縮する必要のあるビ
ットマップデータの圧縮処理を行って、この圧縮された
圧縮データをフォントキャッシュメモリ部6に一時記憶
する。また、フォントキャッシュメモリ部6に一時記憶
された圧縮データを圧縮処理前のビットマップデータに
伸長する処理を行う。なお、圧縮処理は、ランレングス
符号化により圧縮処理される。The compression / expansion unit 3 performs a compression process on the bitmap data that needs to be compressed, and temporarily stores the compressed compressed data in the font cache memory unit 6. Also, the compressed data temporarily stored in the font cache memory unit 6 is expanded to the bitmap data before the compression processing. The compression process is performed by run length coding.
【0038】判定部4は、塗り潰し部2bの塗り潰し処
理の過程で順次獲得されるドット形式のデータの変化点
数、及びこのドット形式のデータのライン数と1ライン
当たりのドット数から、圧縮処理後のデータ量を予測
し、この予測したデータ量(予測データ量)と生成され
たビットマップデータのデータ量とを比較し、予測デー
タ量の方がビットマップデータのデータ量よりも少ない
場合に、圧縮すべきと判定する。この圧縮すべきとの判
定結果である場合に、判定されたビットマップデータは
圧縮/伸長部3によりランレングス符号化されて圧縮さ
れ、この圧縮データはその後の再利用のために、フォン
トキャッシュメモリ部6に一時記憶される。The determination unit 4 determines, after the compression processing, from the number of change points of the dot format data sequentially acquired in the process of the filling processing of the filling section 2b, the number of lines of this dot format data and the number of dots per line. The data amount of is predicted, the predicted data amount (predicted data amount) is compared with the generated bitmap data amount, and when the predicted data amount is smaller than the bitmap data amount, Determine that it should be compressed. If the result of this determination is that the data should be compressed, the determined bitmap data is run-length encoded by the compression / decompression unit 3 and compressed, and this compressed data is reused for subsequent reuse in the font cache memory. It is temporarily stored in the unit 6.
【0039】フォント格納部5は、ASCII(アスキ
ー)、JIS第1水準、JIS第2水準等の文字セット
に規定されている文字コードに対応する文字のベクトル
フォントデータが格納されている。The font storage unit 5 stores vector font data of characters corresponding to character codes defined in character sets such as ASCII, JIS first level, and JIS second level.
【0040】フォントキャッシュメモリ部6は、展開処
理部2により展開処理されたビットマップデータあるい
は圧縮/伸長部3で圧縮された圧縮データが一時記憶さ
れる。このビットマップデータあるいは圧縮データがフ
ォントキャッシュメモリ部6に一時記憶されることによ
り、展開処理部2は、一時記憶されたビットマップデー
タあるいは圧縮データに対応する文字と同一の文字に対
しては展開処理を行う必要がない。そして、ビットマッ
プデータそのものが一時記憶されている場合には、フォ
ントキャッシュメモリ部6から該当するビットマップデ
ータをそのまま取り出すのみでよく、圧縮データが一時
記憶されている場合には、フォントキャッシュメモリ部
6から該当する圧縮データを取り出し、該圧縮データを
圧縮/伸長部3により伸長処理するのみで、展開処理し
たビットマップデータと同一のビットマップデータを得
ることができる。一般に、展開処理は時間がかかるた
め、全体の文書処理を高速に行うことができる。なお、
圧縮/伸長処理は、展開処理に比して時間がかからな
い。The font cache memory unit 6 temporarily stores the bitmap data expanded by the expansion processing unit 2 or the compressed data compressed by the compression / expansion unit 3. By temporarily storing this bitmap data or compressed data in the font cache memory unit 6, the expansion processing unit 2 expands the same character as the character corresponding to the temporarily stored bitmap data or compressed data. No processing needed. If the bitmap data itself is temporarily stored, the corresponding bitmap data need only be retrieved from the font cache memory unit 6 as it is. If the compressed data is temporarily stored, the font cache memory unit 6 The same bitmap data as the expanded bitmap data can be obtained by only extracting the corresponding compressed data from 6, and expanding the compressed data by the compression / expansion unit 3. Generally, since the expansion process takes time, the entire document process can be performed at high speed. In addition,
The compression / decompression process takes less time than the decompression process.
【0041】ページメモリ部7は、展開処理部で展開処
理されたページ単位のピットマップデータが格納され
る。The page memory unit 7 stores the pit map data for each page which is expanded by the expansion processing unit.
【0042】出力制御部11は、展開処理部2からの展
開処理終了通知を受けて、ページ単位のビットマップデ
ータを図示しない出力装置に転送出力する制御を行う。The output control unit 11 receives the expansion processing end notification from the expansion processing unit 2 and controls the transfer of the bitmap data in page units to an output device (not shown).
【0043】ここで、図2は、図1に示す文字処理装置
を含む文書処理システムのハードウェア構成を示す図で
あり、CPU21、ROM22、RAM23、ホストイ
ンターフェース26、ハードディスク装置28、及びプ
リンタインターフェース30がバスBに接続されてい
る。そして、ホストインターフェース26には、ホスト
ワークステーション27が接続され、プリンタインター
フェース30には、プリンタエンジン31が接続されて
いる。FIG. 2 is a diagram showing a hardware configuration of a document processing system including the character processing device shown in FIG. 1. The CPU 21, the ROM 22, the RAM 23, the host interface 26, the hard disk device 28, and the printer interface 30. Are connected to the bus B. A host workstation 27 is connected to the host interface 26, and a printer engine 31 is connected to the printer interface 30.
【0044】CPU21は、ホストワークステーション
27から入力された文書に関する描画コマンドをホスト
インターフェース26及びバスBを介して受け取り、描
画コマンドが示すページ単位のビットマップデータを生
成し、この生成したビットマップデータをRAM23内
のページメモリ25に格納する。そして、CPU21
は、ページメモリ25に格納されたページ単位のビット
マップデータをプリンタインターフェース30を介して
出力装置であるプリンタエンジン31に出力する。The CPU 21 receives a drawing command relating to a document input from the host workstation 27 via the host interface 26 and the bus B, generates bit map data in page units indicated by the drawing command, and the generated bit map data. Are stored in the page memory 25 in the RAM 23. And the CPU 21
Outputs the bitmap data in page units stored in the page memory 25 via the printer interface 30 to the printer engine 31, which is an output device.
【0045】プリンタエンジン31は、入力されたペー
ジ単位のビットマップデータを印刷出力する。The printer engine 31 prints out the input bitmap data in page units.
【0046】ROM22は、CPU21が実行する各種
制御プログラムやビットマップデータに展開するための
展開処理プログラム等が格納されている。The ROM 22 stores various control programs executed by the CPU 21, a development processing program for developing the bitmap data, and the like.
【0047】RAM23は、フォントキャッシュメモリ
24及びページメモリ25を有するとともに、CPU2
1の作業領域が確保される。The RAM 23 has a font cache memory 24 and a page memory 25, and the CPU 2
One work area is secured.
【0048】ハードディスク装置28には、ベクトルフ
ォントデータ29が格納されている。Vector font data 29 is stored in the hard disk device 28.
【0049】ここで、図1の文字処理装置と図2の文書
処理システムとの対応について説明すると、図1の全体
制御部10は、図2のCPU21及びROM22に、図
1の出力制御部11は、図2のCPU21及びROM2
2に、図1のフォント格納部5は、図2のハードディス
ク装置28に、図1のフォントキャッシュメモリ部6及
びページメモリ部7は、それぞれ図2のフォントキャッ
シュメモリ24及びページメモリ25に、それぞれ相当
する。なお、図1の文字処理装置は、図2の文書処理シ
ステムの立ち上がり後の状態を機能的に示している。The correspondence between the character processing device of FIG. 1 and the document processing system of FIG. 2 will be described. The overall control unit 10 of FIG. 1 includes the CPU 21 and the ROM 22 of FIG. 2 and the output control unit 11 of FIG. Is the CPU 21 and the ROM 2 of FIG.
2, the font storage unit 5 in FIG. 1 is in the hard disk device 28 in FIG. 2, and the font cache memory unit 6 and page memory unit 7 in FIG. 1 are in the font cache memory 24 and page memory 25 in FIG. 2, respectively. Equivalent to. The character processing device of FIG. 1 functionally shows the state of the document processing system of FIG. 2 after startup.
【0050】次に、フォントキャッシュメモリ部6の管
理について説明する。Next, the management of the font cache memory unit 6 will be described.
【0051】図3は、フォントキャッシュメモリ部6の
構成及びキャッシュデータの管理方式を説明する図であ
る。図3において、フォントキャッシュメモリ部6は、
文字検索テーブルTA、文字管理テーブルTB、及びビ
ットマップデータ記憶領域40を有している。なお、フ
ォントキャッシュメモリ部6のキャッシュデータ管理方
式は、FIFO(First In First Out)方式を採用して
いる。FIG. 3 is a diagram for explaining the configuration of the font cache memory unit 6 and the cache data management system. In FIG. 3, the font cache memory unit 6 is
It has a character search table TA, a character management table TB, and a bitmap data storage area 40. The font cache memory unit 6 uses a FIFO (First In First Out) method as a cache data management method.
【0052】文字検索テーブルTAは、描画コマンドに
より指示された文字がフォントキャッシュメモリ部6内
に登録されているか否かを知るときに用いられる。文字
検索テーブルTAには、文字のコードとこの文字のリン
ク先を指定するポインタとが格納されている。登録され
ている文字がASCII(アスキー)コードで表されて
いる場合、アスキーコードそのものが文字検索テーブル
TAの検索文字コードとして格納され、JIS第1水準
やJIS第2水準の文字の場合は、これらの文字コード
の下位バイトが文字検索テーブルTAの検索文字コード
として格納される。従って、文字検索テーブルTAに対
して、ある文字に対応する検索文字コードでインデック
スすると、この文字に対応するポインタが得られ、この
ポインタの値により、文字管理テーブルTB内における
検索文字の格納アドレスが得られる。なお、ある検索文
字コードに対応する文字が登録されていない場合、ポイ
ンタの値は「null(無)」に設定されており、この
ポインタの値により、対応する文字がフォントキャッシ
ュメモリ部6に登録されていないことを確認することが
できる。The character search table TA is used to know whether or not the character designated by the drawing command is registered in the font cache memory unit 6. The character search table TA stores a character code and a pointer that specifies the link destination of this character. When the registered character is represented by ASCII code, the ASCII code itself is stored as the search character code of the character search table TA, and in the case of the character of JIS 1st level or JIS 2nd level, these characters are stored. The lower byte of the character code is stored as the search character code in the character search table TA. Therefore, when the character search table TA is indexed by the search character code corresponding to a certain character, the pointer corresponding to this character is obtained, and the storage address of the search character in the character management table TB is obtained by the value of this pointer. can get. When the character corresponding to a certain search character code is not registered, the value of the pointer is set to "null (none)", and the corresponding character is registered in the font cache memory unit 6 by the value of this pointer. You can confirm that it has not been done.
【0053】文字管理テーブルTBは、フォントキャッ
シュメモリに登録されている文字の属性を保持するテー
ブルであり、異なる文字毎の複数のテーブル群で構成さ
れる。ここで、異なる文字とは、異なる文字コードのみ
ならず、文字コードが同じであっても異なる書体、サイ
ズ等である場合も含まれ、異なるテーブルとして文字の
属性が保持される。そして、これらのテーブル毎に対応
する文字のビットマップデータがビットマップ記憶領域
40に各別に記憶される。すなわち、文字管理テーブル
TBは、ビットマップデータ記憶領域40に記憶される
文字毎に管理するテーブルである。The character management table TB is a table for holding the attributes of characters registered in the font cache memory, and is composed of a plurality of table groups for different characters. Here, the different characters include not only different character codes but also different typefaces, sizes, etc. even if the character codes are the same, and the character attributes are held as different tables. Then, the bitmap data of the character corresponding to each of these tables is individually stored in the bitmap storage area 40. That is, the character management table TB is a table for managing each character stored in the bitmap data storage area 40.
【0054】図3においては、文字管理テーブルTBの
一例として3つのテーブルTB1〜TB3を示してい
る。テーブルTB1及びTB2は、文字検索テーブルT
Aのコード「40」に対応するテーブルであり、テーブ
ルTB3は、文字検索テーブルTAのコード「48」に
対応するテーブルである。ここで、テーブルTB1,T
B2は、それぞれ「10ポイント」、「12ポイント」
とする文字のサイズが異なる文字に対応するものであ
る。In FIG. 3, three tables TB1 to TB3 are shown as an example of the character management table TB. The tables TB1 and TB2 are the character search table T
The table TB3 is a table corresponding to the code "40" of A, and the table TB3 is a table corresponding to the code "48" of the character search table TA. Here, tables TB1 and T
B2 is "10 points" and "12 points" respectively
Corresponds to characters of different sizes.
【0055】文字管理テーブルTBを構成する各テーブ
ルは、それぞれ8つのエントリを有している。この8つ
のエントリとは、「次文字コードポインタ(Code Next
CharPtr)」、「前文字コードポインタ(Code Prev Cha
r Ptr)」、「フォント(Font)」、「コード(Cod
e)」、「文字サイズ(Char Size)」、「圧縮フラグ
(Compress Flag)」、「ビットマップポインタ(Bitma
p Ptr)」、「ビットマップサイズ(Bitmap Size)」で
ある。「次文字コードポインタ」及び「前文字コードポ
インタ」は、1バイトコード文字の場合は、同一のコー
ドを持つ文字を、2バイトコードの文字の場合は、下位
1バイトが同一の文字を有するテーブル間を双方向にリ
ンクするためのポインタである。「フォント」のエント
リには、ゴシック体、明朝体等の文字の書体が格納され
ている。「文字サイズ」のエントリには、ポイント数で
示される文字のサイズが格納されている。「コード」の
エントリには、文字コードが格納されている。「圧縮フ
ラグ」のエントリには、ビットマップデータ記憶領域4
0に記憶されているビットマップデータが圧縮されたデ
ータか否かを示すフラグが格納され、フラグの値が「真
(TRUE)」の場合には、記憶されているビットマップデ
ータが圧縮されたものであることを示し、「偽(FALS
E)」の場合には、記憶されているビットマップデータ
が圧縮されていないものであることを示している。「ビ
ットマップポインタ」は、ビットマップデータが記憶さ
れているビットマップデータ記憶領域40の領域のアド
レスを示す。「ビットマップサイズ」のエントリは、ビ
ットマップデータ記憶領域40におけるビットマップデ
ータが占有するメモリ上のバイト数を示している。この
「ビットマップサイズ」は、実際のバイト数を示すもの
であり、「圧縮フラグ」が「真」の場合には、圧縮され
たビットマップデータの値を示すことになる。Each table forming the character management table TB has eight entries. These eight entries are the "Next character code pointer (Code Next
CharPtr) ”,“ Previous character code pointer (Code Prev Cha
r Ptr), “Font”, “Code (Cod
e) ”,“ Char Size ”,“ Compress Flag ”,“ Bitmap pointer (Bitma
p Ptr) ”and“ Bitmap Size ”. "Next character code pointer" and "previous character code pointer" are tables that have the same code in the case of 1-byte code character and the same lower 1 byte in the case of 2-byte code character. It is a pointer for bidirectionally linking between. In the “font” entry, fonts of characters such as Gothic font and Mincho font are stored. The "character size" entry stores the size of the character indicated by the number of points. The character code is stored in the “code” entry. The “compression flag” entry includes the bitmap data storage area 4
A flag indicating whether or not the bitmap data stored in 0 is compressed data is stored. If the value of the flag is “TRUE”, the stored bitmap data is compressed. It indicates that the
"E)" indicates that the stored bitmap data is not compressed. The “bitmap pointer” indicates the address of the area of the bitmap data storage area 40 in which the bitmap data is stored. The “bitmap size” entry indicates the number of bytes on the memory occupied by the bitmap data in the bitmap data storage area 40. This "bitmap size" indicates the actual number of bytes, and when the "compression flag" is "true", it indicates the value of the compressed bitmap data.
【0056】ここで、文字管理テーブルTBを構成する
各テーブルのうちの文字コードが同じ(下位1バイト)
文字のテーブル群は、上述した「次文字コードポイン
タ」及び「前文字コードポインタ」によりリンクされ、
LRU(Latest Recently Used)方式で管理される。す
なわち、文字コードが同じ文字のテーブル群のうち、参
照された時刻が最新の文字のテーブルがリンクの先頭
(文字検索テーブルTAに直接リンクされる)となり、
参照された時刻が最古の文字のテーブルがリンクの最後
尾となるように管理される。従って、「次文字コードポ
インタ」は、この「次文字コードポインタ」の文字が参
照された時刻より、次に古い時刻に参照された「次文字
コードポインタ」の文字のアドレスを示し、「前文字コ
ードポインタ」は、この「前文字コードポインタ」の文
字が参照された時刻より、1つ前の時刻に参照された
「前文字コードポインタ」の文字のアドレスを示してい
る。そして、リンクの先頭にあるテーブル自体のアドレ
スは、文字検索テーブルTAの対応する文字のコードの
ポインタと同一となる。また、リンクの先頭にあるテー
ブルの「前文字コードポインタ」及びリンクの最後尾に
あるテーブルの「次文字コードポインタ」の値は、対応
するテーブルが存在しないため、「NULL」となって
いる。なお、テーブルTB3のように同じの文字コード
を他に有しないテーブルの場合には、「次文字コードポ
インタ」及び「前文字コードポインタ」の双方とも、対
応するテーブルが存在しないため、その値は「NUL
L」になっている。Here, the character codes of the tables forming the character management table TB are the same (lower 1 byte).
The character table group is linked by the "next character code pointer" and the "previous character code pointer",
It is managed by the LRU (Latest Recently Used) method. That is, the table of the character whose reference time is the latest in the table group of the same character code is the head of the link (directly linked to the character search table TA),
The table of the character with the oldest reference time is managed as the end of the link. Therefore, the "next character code pointer" indicates the address of the character of the "next character code pointer" referenced at the next oldest time from the time when the character of the "next character code pointer" is referenced, and The "code pointer" indicates the address of the character of the "previous character code pointer" that was referenced one time before the time when the character of the "previous character code pointer" was referenced. Then, the address of the table itself at the head of the link becomes the same as the pointer of the code of the corresponding character in the character search table TA. The values of the "previous character code pointer" of the table at the beginning of the link and the "next character code pointer" of the table at the end of the link are "NULL" because there is no corresponding table. In the case of a table that does not have the same character code like the table TB3, there is no corresponding table for both the "next character code pointer" and the "previous character code pointer", so that the value is "NUL
It is "L".
【0057】ビットマップデータ記憶領域40は、文字
管理テーブルTBを構成する各テーブルに対応するビッ
トマップデータが格納される。そして、各文字毎のビッ
トマップデータ領域には、文字管理テーブルTB内の対
応するテーブルを指し示すテーブルポインタP1〜P3
を有している。このテーブルポインタにより、文字管理
テーブルTB内の対応するテーブルの参照が可能とな
り、ビットマップデータの削除が行われたときに、この
テーブルポインタを用いて対応するテーブルを削除する
ようにしている。なお、各文字のビットマップデータが
格納される領域のアドレスは、文字管理テーブルTB内
の「ビットマップポインタ」により示される。また、ビ
ットマップデータ記憶領域40には、先頭アドレスを示
す「トップポインタ(Top Ptr)」、最後尾のバイトの
アドレスを示す「ボトムポインタ(Bottom Ptr)」、ビ
ットマップデータの未使用領域のアドレスを示す「フリ
ーポインタ(Free Ptr)」を有し、記録領域の管理が行
われる。The bit map data storage area 40 stores bit map data corresponding to each table constituting the character management table TB. Then, in the bitmap data area for each character, table pointers P1 to P3 that point to the corresponding tables in the character management table TB.
have. The table pointer makes it possible to refer to the corresponding table in the character management table TB, and when the bitmap data is deleted, the corresponding table is used to delete the corresponding table. The address of the area in which the bitmap data of each character is stored is indicated by the "bitmap pointer" in the character management table TB. Further, in the bitmap data storage area 40, a "top pointer (Top Ptr)" indicating the start address, a "bottom pointer (Bottom Ptr)" indicating the address of the last byte, and an address of an unused area of the bitmap data Has a "Free Ptr" indicating that the recording area is managed.
【0058】次に、文書の描画を指示する描画コマンド
の一例について説明する。Next, an example of a drawing command for instructing the drawing of a document will be described.
【0059】図4は、描画コマンドの一例を示す図であ
り、図4の描画コマンドでは、文書の描画指示をページ
記述言語で記述している。このページ記述言語には、位
置指定命令、フォント指定命令、文字列描画命令、ペー
ジ印刷命令等を有して構成される。位置指定命令は、文
字列の描画を始める位置を指定する命令であり、フォン
ト指令命令は、文字列描画命令で描画される文字の書体
とサイズを設定するための命令である。文字列描画命令
は、処理された時刻が最新のフォント指令命令で設定さ
れたフォント(カレントフォント)を用いて、文字列を
描画する命令である。文字列は、一連の文字コードの列
であり、文字コードは、1バイトあるいは2バイトのコ
ードである。なお、図4における文字列描画命令「文字
列描画(3F26 3648)」は、16進で表現され
た2つの2バイトコード(3F26),(3648)の
文字の描画を指示している。ページ印刷命令は、1ペー
ジ分のイメージデータを出力データDとしてプリンタ等
の出力装置に出力させる命令である。なお、ページ記述
言語には、その他種々の命令を有するがこれらの説明に
ついては割愛する。FIG. 4 is a diagram showing an example of the drawing command. In the drawing command of FIG. 4, the drawing instruction of the document is described in the page description language. The page description language includes a position designation command, a font designation command, a character string drawing command, a page printing command, and the like. The position designation command is a command for designating the position where the drawing of the character string is started, and the font command command is a command for setting the font and size of the character drawn by the character string drawing command. The character string drawing command is a command for drawing a character string using the font (current font) set by the font command command with the latest processed time. The character string is a series of character codes, and the character code is a 1-byte or 2-byte code. The character string drawing command “character string drawing (3F26 3648)” in FIG. 4 instructs drawing of the two 2-byte codes (3F26) and (3648) expressed in hexadecimal. The page print command is a command to output image data for one page as output data D to an output device such as a printer. The page description language has various other commands, but the description thereof will be omitted.
【0060】次に、本文字処理装置の文字処理手順につ
いて説明する。Next, a character processing procedure of the character processing apparatus will be described.
【0061】図5は、図2に示す文書処理システムの全
体処理手順を示す全体フローチャートである。図5にお
いて、CPU21は、システムの立ち上げ時に所定の初
期化を行って(ステップ101)、ホストワークステー
ション27からのプリント要求が入力されるまで、アイ
ドル状態を維持する(ステップ102)。ステップ10
2で、プリント要求が入力されると、CPU21は、ホ
ストワークステーション27から描画コマンドを受信し
(ステップ103)、この描画コマンドをRAM23に
一時格納する。そして、CPU21は、ROM22に格
納されている展開処理プログラムを起動し、一時格納さ
れている描画コマンドに基づく展開処理を行って、1ペ
ージ分のイメージデータ(ビットマップデータ)を生成
し(ステップ104)、この1ページ分のビットマップ
データをページメモリ25に格納する。そして、ページ
メモリ25に格納されているイメージデータとしてのビ
ットマップデータをページ単位でプリンタインターフェ
ース30を介してプリンタエンジン31に転送出力し、
プリンタエンジン31は、転送されたビットマップデー
タの印刷出力を行う(ステップ105)。その後、描画
コマンドが示す全てのビットマップデータの出力が終了
したか否かを判断し(ステップ106)、全ての出力が
終了した場合には、ステップ104に移行し、引き続き
展開処理から上述した処理を繰り返す。一方、ステップ
106で、全ての出力が終了した場合には、ステップ1
02に移行し、次のプリント要求がホストワークステー
ション27から入力されるまでアイドル状態となる。FIG. 5 is an overall flowchart showing the overall processing procedure of the document processing system shown in FIG. In FIG. 5, the CPU 21 performs predetermined initialization at system startup (step 101) and maintains an idle state until a print request is input from the host workstation 27 (step 102). Step 10
When a print request is input in 2, the CPU 21 receives a drawing command from the host workstation 27 (step 103), and temporarily stores this drawing command in the RAM 23. Then, the CPU 21 activates the expansion processing program stored in the ROM 22 and performs expansion processing based on the temporarily stored drawing command to generate image data (bitmap data) for one page (step 104). ), The bitmap data for one page is stored in the page memory 25. Then, the bitmap data as the image data stored in the page memory 25 is transferred to the printer engine 31 via the printer interface 30 in page units, and is output.
The printer engine 31 prints out the transferred bitmap data (step 105). After that, it is determined whether or not the output of all the bitmap data indicated by the drawing command has been completed (step 106). When all the output has been completed, the process proceeds to step 104, and the process from the expansion process to the process described above is continued. repeat. On the other hand, if all the outputs are completed in step 106, step 1
The process shifts to 02, and the printer enters the idle state until the next print request is input from the host workstation 27.
【0062】ここで、ステップ104における展開処理
を図6のフローチャート及び図1を参照して説明する。Now, the expansion processing in step 104 will be described with reference to the flowchart of FIG. 6 and FIG.
【0063】図6は、図5のステップ104における展
開処理手順を示すフローチャートである。図6におい
て、まず展開処理部2は、受付部1から1描画命令を読
み込む(ステップ201)。そして、読み込まれた描画
命令がページ印刷命令か否かを判断し(ステップ20
2)、ページ印刷命令である場合は、図5のステップ1
04にリターンする。FIG. 6 is a flowchart showing the expansion processing procedure in step 104 of FIG. In FIG. 6, the expansion processing unit 2 first reads one drawing command from the reception unit 1 (step 201). Then, it is determined whether the read drawing command is a page print command (step 20).
2) If the command is a page print command, step 1 in FIG.
Return to 04.
【0064】一方、ステップ202でページ印刷命令で
ないと判断された場合は、さらに読み込まれた描画命令
がフォント指定命令か否かを判断し(ステップ20
3)、フォント指定命令である場合は、カレントフォン
トを更新する処理を行って(ステップ204)、ステッ
プ201に移行する。On the other hand, if it is determined in step 202 that it is not a page print command, it is further determined whether the read drawing command is a font designating command (step 20).
3) If the command is a font designation command, a process for updating the current font is performed (step 204) and the process proceeds to step 201.
【0065】ステップ203でフォント指定命令でない
と判断された場合は、さらに読み込まれた描画命令が位
置設定命令か否かを判断し(ステップ205)、位置設
定命令である場合は、文字列を描画する位置(カレント
ポイント)を更新する処理を行って(ステップ20
6)、ステップ201に移行する。If it is determined in step 203 that it is not a font designation command, it is further determined whether the read drawing command is a position setting command (step 205). If it is a position setting command, a character string is drawn. Perform the processing to update the position (current point) (step 20
6) and then to step 201.
【0066】ステップ205で位置設定命令でないと判
断された場合は、さらに読み込まれた描画命令が文字列
描画命令か否かを判断し(ステップ207)、文字列描
画命令である場合は、この文字列を描画する処理を行っ
て(ステップ208)、ステップ201に移行し、文字
列描画命令でない場合は、そのままステップ201に移
行する。If it is determined in step 205 that it is not a position setting command, it is further determined whether the read drawing command is a character string drawing command (step 207). If it is a character string drawing command, this character is drawn. A process of drawing a column is performed (step 208), and the process proceeds to step 201. If the command is not a character string drawing command, the process directly proceeds to step 201.
【0067】次に、ステップ208の文字列描画命令の
処理を図7に示すフローチャートを参照して説明する。Next, the processing of the character string drawing command in step 208 will be described with reference to the flowchart shown in FIG.
【0068】図7において、まず文字列描画命令が示す
文字コードを取り出す(ステップ301)。ここで、カ
レントフォントが2バイトコード体系の場合は2バイト
を、1バイトコード体系の場合は1バイトをそれぞれ取
り出す。次に、ステップ301における文字コードの取
り出しが成功したか否かを判断し(ステップ302)、
成功した場合は、カレントポイントの位置に文字のビッ
トマップを生成する処理を行った(ステップ303)
後、カレントポイントを文字列幅分移動する処理を行っ
て(ステップ304)、ステップ301に移行する。一
方、ステップ302で文字コードの取り出しに成功しな
かった場合は、ステップ208にリターンする。なお、
ステップ303の文字出力処理については後述する。In FIG. 7, first, the character code indicated by the character string drawing command is extracted (step 301). Here, if the current font has a 2-byte code system, 2 bytes are extracted, and if the current font is a 1-byte code system, 1 byte is extracted. Next, it is judged whether or not the extraction of the character code in step 301 has succeeded (step 302),
If it succeeds, a process of generating a bitmap of the character at the position of the current point is performed (step 303)
After that, a process of moving the current point by the width of the character string is performed (step 304), and the process proceeds to step 301. On the other hand, if the extraction of the character code is not successful in step 302, the process returns to step 208. In addition,
The character output process of step 303 will be described later.
【0069】このようにして、描画コマンドを構成する
各描画命令の1描画命令毎に処理を行うことを繰り返
し、所望の文字列が出力される。In this way, the processing is repeated for each drawing command of the drawing commands constituting the drawing command, and the desired character string is output.
【0070】例えば、図4に示す描画コマンドの場合に
は、最初の描画命令である「位置指定(100,60
0)」が読み込まれ、ステップ205で位置設定命令で
あると判断され、ステップ206で、カレントポイント
を座標(100,600)に設定する処理を行う。次の
フォント指定命令である「フォント指定(12ポ,ゴシ
ック)が読み込まれると、ステップ203でフォント指
定命令であると判断されて、ステップ204でカレント
フォントを12ポイントのゴシックに設定する処理を行
う。次の文字列描画命令である「文字列描画(3F26
3648)」は、ステップ207で文字列描画命令で
あると判断され、ステップ208で文字列描画命令処理
を行う。すなわち、図7に示す手順に従って、文字列描
画命令内の最初の文字コード(3F26)が取り出され
(ステップ301)、文字コードの取り出しに成功した
(ステップ302)ため、この文字コードの文字のビッ
トマップを出力する処理がなされ(ステップ303)、
カレントポイントが文字幅分移動される(ステップ30
4)。この処理の後、さらに、次の文字コード(364
8)がステップ301で取り出され、同様にして、文字
出力処理がなされ、カレントポイントが文字幅分移動さ
れる。そして、次の文字コードの取り出しには失敗する
(ステップ302)ため、ステップ208にリターン
し、ステップ201に移行することになる。以下、位置
指定命令である「位置指定(200,600)」、フォ
ント指定命令である「フォント指定(12ポ,明
朝)」、文字列描画命令である「文字列描画(4750
4D25)」等は、順次ページ記述言語の記述順序に
従って、1命令づつ読み出され、処理が実行される。For example, in the case of the drawing command shown in FIG. 4, the first drawing command "position designation (100, 60
0) "is read, it is determined in step 205 that it is a position setting command, and in step 206, the process of setting the current point to the coordinate (100, 600) is performed. When the next font designation command "font designation (12 po, Gothic) is read, it is determined in step 203 that it is a font designation command, and in step 204 the process for setting the current font to 12-point Gothic is performed. The next character string drawing command "character string drawing (3F26
3648) ”is determined to be a character string drawing command in step 207, and character string drawing command processing is performed in step 208. That is, according to the procedure shown in FIG. 7, the first character code (3F26) in the character string drawing command is extracted (step 301), and the character code is successfully extracted (step 302). A process for outputting a map is performed (step 303),
The current point is moved by the character width (step 30)
4). After this process, the next character code (364
8) is taken out in step 301, character output processing is performed in the same manner, and the current point is moved by the character width. Then, since the extraction of the next character code fails (step 302), the process returns to step 208 and proceeds to step 201. Hereinafter, the position designation command “position designation (200, 600)”, the font designation command “font designation (12, Mincho)”, and the character string rendering command “character string rendering (4750)
4D25) ”and the like are read one by one according to the description order of the page description language, and the processing is executed.
【0071】次に、ステップ303の文字出力処理手順
を図8から図10のフローチャートを参照し、図4に示
す文字列描画命令である「文字列描画(3F26 36
48)」の文字コード”3F26”に対する文字出力処
理を文字出力処理の一例として説明する。Next, referring to the flowcharts of FIGS. 8 to 10 for the character output processing procedure of step 303, the character string drawing command “character string drawing (3F26 36
The character output process for the character code "3F26" of "48)" will be described as an example of the character output process.
【0072】図8は、ステップ303の文字出力処理手
順を示すフローチャートであり、まず、カレントフォン
トのサイズとフォント名とを獲得する(ステップ40
1)。ここで、図4に示す「文字列描画(3F26 3
648)」の文字列描画命令を実行する際、フォント指
定命令である「フォント指定(12ポ,ゴシック)」の
実行により、カレントフォントのサイズは「12ポイン
ト」で、カレントフォントのフォント名は「ゴシック」
である。次に、フォント名、サイズ、文字コードをキー
にして、フォントキャッシュメモリ部6の文字検索テー
ブルTA、さらには文字管理テーブルTBを検索する
(ステップ402)。ここで、フォントキャッシュメモ
リ部6には、現時点で文字は全く登録されていないの
で、文字コード”3F26”の検索は失敗する。そし
て、ステップ403で、ステップ402による検索が成
功したか否かを判断し、検索に成功した場合は、ステッ
プ408に移行し、検索に失敗した場合は、ステップ4
04に移行する。FIG. 8 is a flow chart showing the character output processing procedure of step 303. First, the size and font name of the current font are acquired (step 40).
1). Here, as shown in FIG. 4, "character string drawing (3F26 3
648) ”, the current font size is“ 12 points ”and the font name of the current font is“ 12 points ”by executing the font designation command“ font designation (12, Gothic) ”. Gothic "
Is. Next, the character search table TA of the font cache memory unit 6 and the character management table TB are searched using the font name, size and character code as keys (step 402). Here, since no character is currently registered in the font cache memory unit 6, the search for the character code "3F26" fails. Then, in step 403, it is determined whether or not the search in step 402 is successful. If the search is successful, the process proceeds to step 408. If the search is unsuccessful, step 4 is performed.
Move to 04.
【0073】ステップ403でフォントキャッシュメモ
リ部6に対する検索に成功した場合は、文字管理テーブ
ルTBの「圧縮フラグ」を参照して、検索されたビット
マップデータがランレングス圧縮されたものか否かの情
報を獲得し(ステップ408)、この獲得された情報を
もとに、ランレングス圧縮されたものか否かを判断し
(ステップ409)、ランレングス圧縮されている場合
は、ビットマップデータ記憶領域40から対応するビッ
トマップデータを取り出し、カレントポイントで示され
るページメモリ部7内のページメモリ上の位置に、圧縮
/伸長部3により伸長しながら、この伸長されたビット
マップデータを転送する(ステップ410)。そして、
ステップ303にリターンする。一方、ステップ409
でランレングス圧縮されていないと判断された場合は、
ビットマップデータ記憶領域40から対応するビットマ
ップデータを取り出し、この取り出したビットマップデ
ータを、カレントポイントで示されるページメモリ部7
内のページメモリ上の位置に転送する(ステップ41
1)。そして、ステップ303にリターンする。If the font cache memory unit 6 is successfully searched in step 403, it is determined whether the searched bitmap data is run-length compressed by referring to the "compression flag" in the character management table TB. Information is acquired (step 408), it is judged based on the acquired information whether or not it is run-length compressed (step 409), and if it is run-length compressed, it is a bitmap data storage area. The corresponding bit map data is taken out from 40, and the decompressed bit map data is transferred to the position on the page memory in the page memory unit 7 indicated by the current point, while being expanded by the compression / expansion unit 3 (step 410). And
The process returns to step 303. On the other hand, step 409
If it is determined that the file is not run length compressed,
The corresponding bitmap data is extracted from the bitmap data storage area 40, and the extracted bitmap data is stored in the page memory unit 7 indicated by the current point.
Transfer to a location on the page memory within (step 41
1). Then, the process returns to step 303.
【0074】一方、ステップ403でフォントキャッシ
ュメモリ部6に対する検索に失敗した場合は、この文字
のビットマップデータの生成処理を行う(ステップ40
4)。このビットマップデータ生成処理の詳細処理手順
を図9のフローチャートを参照して説明する。On the other hand, if the search in the font cache memory unit 6 fails in step 403, the bit map data of this character is generated (step 40).
4). The detailed processing procedure of this bitmap data generation processing will be described with reference to the flowchart of FIG.
【0075】図9において、まず展開処理部2は、フォ
ント名と文字コードをキーにして、フォント格納部5か
らアウトラインデータを読み込む(ステップ501)。
ここで、文字コード”3F26”の文字列描画の場合、
フォント名「ゴシック」で文字コードが”3F26”に
対応するアウトラインデータが獲得される。次に、この
獲得されたアウトラインデータを指定されたサイズに変
換する処理を行う(ステップ502)。ここで、文字コ
ード”3F26”の場合、獲得されたアウトラインデー
タは、12ポイントのサイズに座標変換される。さら
に、展開処理後のビットマップデータのサイズを計算す
る(ステップ503)。このサイズの計算は、獲得され
たアウトラインデータに含まれる文字の付加情報によっ
て計算することができる。ここで、文字コード”3F2
6”の場合、展開処理後のビットマップデータは、縦6
4ドット、横64ドットで、512バイトのサイズとな
る。この後、展開処理部2は、ステップ503で算出さ
れたビットマップデータのサイズをもとに、フォントキ
ャッシュメモリ部6のビットマップデータ記憶領域40
における領域を確保する(ステップ504)。そして、
この確保された領域に、ステップ502で座標変換され
たアウトラインデータをもとに、輪郭描画部2aが文字
のエッジを描画する処理を行う(ステップ505)。こ
こで、文字コード”3F26”の場合における、ステッ
プ505によるエッジ描画処理の結果を図11に示す。
図11には、文字コード”3F26”の文字「職」のエ
ッジが描画されている。In FIG. 9, the expansion processing section 2 first reads the outline data from the font storage section 5 using the font name and character code as keys (step 501).
Here, in the case of character string drawing of the character code "3F26",
Outline data corresponding to the font name "Gothic" and the character code "3F26" is acquired. Next, processing for converting the acquired outline data into a designated size is performed (step 502). Here, in the case of the character code “3F26”, the coordinates of the acquired outline data are converted into a size of 12 points. Further, the size of the bitmap data after the expansion processing is calculated (step 503). The size can be calculated by the additional information of characters included in the acquired outline data. Here, the character code "3F2
In the case of 6 ", the bitmap data after the expansion processing is vertically 6
The size is 512 bytes with 4 dots and 64 dots horizontally. Thereafter, the expansion processing unit 2 determines the bitmap data storage area 40 of the font cache memory unit 6 based on the size of the bitmap data calculated in step 503.
Area is secured (step 504). And
In the secured area, the contour drawing section 2a draws the edge of the character based on the outline data coordinate-converted in step 502 (step 505). Here, FIG. 11 shows the result of the edge drawing processing in step 505 in the case of the character code “3F26”.
In FIG. 11, the edge of the character “work” with the character code “3F26” is drawn.
【0076】次に、このステップ505によるエッジ描
画処理が終了すると、塗り潰し部2bは、この描画され
たエッジに基づいた塗り潰し処理を行う(ステップ50
6)。この塗り潰し処理の詳細手順については、図10
のフローチャートに基づいて説明する。Next, when the edge drawing processing in step 505 is completed, the painting section 2b carries out the painting processing based on the drawn edges (step 50).
6). For the detailed procedure of this filling processing, see FIG.
A description will be given based on the flowchart.
【0077】まず、塗り潰し処理手順の説明を前に、図
15と図16とを参照して、フォントキャッシュメモリ
部6のビットマップデータ記憶領域40でのデータとこ
のデータから描かれるビットマップイメージとの関係に
ついて説明する。First, referring to FIG. 15 and FIG. 16 before explaining the filling processing procedure, the data in the bitmap data storage area 40 of the font cache memory unit 6 and the bitmap image drawn from this data will be described. The relationship will be described.
【0078】図15は、ビットマップデータ記憶領域4
0でのデータ格納状態を示す図であり、図16は、図1
5のデータにより描かれるビットマップイメージを示す
図である。図15は、実際のデータ格納状態を示したも
のであり、簡単な一例として、16×16ドットの文字
「H」のエッジ描画処理がなされた後のビットマップデ
ータを示している。このビットマップデータは、ワード
アドレス”E0000000”からワードアドレス”E
000001C”までの領域に格納されている。一方、
図16は、16×16ドットの文字「H」のエッジ描画
処理がなされた後のビットマップデータのイメージを2
次元配列として示したものである。図16におけるドッ
トの配列は、ラインインデックス(Line Index)とドッ
トインデックス(Dot Index)との2次元配列、Dot
[M,N]として表すことができ、これにより、ドット
配列を、N番目のラインのM番目のドットとして示すこ
とができる。例えば、Dot[14,15]は、15ラ
イン目の14ドット目のドットを示す。図15に示すビ
ットマップデータは、図16に示す文字「H」のエッジ
描画処理後のビットマップイメージにおける、文字
「H」の下部から上部へという順序で、順次格納されて
いる。例えば、図16におけるビットマップイメージの
最も下のラインのドットデータ(Dot[0,0]〜D
ot[15,0])は、図15に示すビットマップデー
タのワードアドレス”E0000000”の領域の前半
部分に、16進表示で”42”(01000010のド
ットデータを示す)、”42”(01000010のド
ットデータを示す)として格納される。FIG. 15 shows the bitmap data storage area 4
FIG. 16 is a diagram showing a data storage state at 0, and FIG.
It is a figure which shows the bitmap image drawn by the data of No. 5. FIG. 15 shows an actual data storage state, and shows, as a simple example, bitmap data after the edge drawing process of the character “H” of 16 × 16 dots is performed. This bit map data is converted from word address "E0000000" to word address "E
It is stored in the area up to 000001C ".
FIG. 16 shows an image of the bitmap data after the edge drawing process of the character “H” of 16 × 16 dots is performed.
It is shown as a dimensional array. The dot array in FIG. 16 is a two-dimensional array of a line index (Line Index) and a dot index (Dot Index).
It can be represented as [M, N], which allows the dot array to be represented as the Mth dot in the Nth line. For example, Dot [14,15] indicates the 14th dot of the 15th line. The bitmap data shown in FIG. 15 is sequentially stored in the order from the bottom to the top of the character “H” in the bitmap image after the edge drawing processing of the character “H” shown in FIG. 16. For example, the dot data (Dot [0,0] -D) of the bottom line of the bitmap image in FIG.
ot [15,0]) is "42" (indicating dot data of 01000010) and "42" (01000010) in hexadecimal notation in the first half of the area of the word address "E0000000" of the bitmap data shown in FIG. (Indicates the dot data of).
【0079】さて、図10は、ステップ506の塗り潰
し処理手順を示す詳細フローチャートであり、この塗り
潰し処理は、エッジフラグアルゴリズムを用いており、
エッジ描画処理されたビットマップイメージの文字の下
部から上部へと1ライン毎に、そして各ラインの処理で
は文字の左から右の方向に塗り潰しの処理が行われる。
ここで、上述したフォント名が「ゴシック」で文字コー
ドが”3F26”で示される文字「職」を例にとって塗
り潰し処理を説明する。Now, FIG. 10 is a detailed flow chart showing the procedure of the filling process of step 506. This filling process uses the edge flag algorithm,
Filling processing is performed line by line from the lower part to the upper part of the character of the edge-mapped bitmap image, and from the left to the right of the character in the processing of each line.
Here, the filling process will be described by taking the above-mentioned character “job” whose font name is “Gothic” and whose character code is “3F26” as an example.
【0080】まず、塗り潰し処理を行うために必要な変
数の初期化を行う(ステップ601)。すなわち、ビッ
トマップデータのライン数LineNum、1ライン当たりの
ドット数DotPerLine、ステップ504で領域確保された
領域の先頭アドレスDot、ビットマップのバイト数RawBy
teがそれぞれ初期化される。文字コード”3F26”の
例では、LineNum=64,DotPerLine=64,Dot=例えばE000000
0,RawByte=514として設定される。さらに、所定のカウ
ンタ変数が初期化される(ステップ602,603)。
ここで、カウンタ変数としては、塗り潰し処理を行った
ライン数をカウントする変数i、ビットマップの変化点
をカウントする変数ChangeNum、塗り潰し処理を行った
ドット数をカウントする変数jである。なお、変数iは、
1ラインの塗り潰し処理を行う度にインクリメントさ
れ、変数jは、1ライン毎に"0"に初期化されて、1ドッ
ト処理する毎にインクリメントされる。また、変化点と
は、隣合うドットの値が異なる点のことをいう。First, the variables necessary for performing the filling process are initialized (step 601). That is, the number of lines in the bitmap data LineNum, the number of dots per line DotPerLine, the start address Dot of the area secured in step 504, the number of bytes in the bitmap RawBy
te is initialized respectively. In the example of the character code “3F26”, LineNum = 64, DotPerLine = 64, Dot = For example, E000000
It is set as 0, RawByte = 514. Further, a predetermined counter variable is initialized (steps 602 and 603).
Here, as the counter variables, there are a variable i for counting the number of lines subjected to the filling processing, a variable ChangeNum for counting the change points of the bitmap, and a variable j for counting the number of dots subjected to the filling processing. The variable i is
The variable j is incremented every time the filling process for one line is performed, the variable j is initialized to "0" for each line, and incremented each time one dot is processed. The change point means a point where the values of adjacent dots are different.
【0081】次に、隣合うドットの排他的論理和、すな
わち、 Dot[j+1,i]=xor(Dot[j,i],Dot[j+1,i]) をとり(ステップ604)、この結果、隣合うドットの
値が異なる値をもつか否かを次式をもとに判断する(ス
テップ605)。すなわち、 Dot[j,i]=Dot[j+1,i]? をもとに判断する。そして、ステップ605により隣合
うドットが同じ値をもつ(等しい)場合には、変数Chan
geNumの値をインクリメントして(ステップ606)、
ステップ607に移行し、隣合うドットが異なる値(等
しくない)である場合には、そのままステップ507に
移行する。Next, the exclusive OR of adjacent dots, that is, Dot [j + 1, i] = xor (Dot [j, i], Dot [j + 1, i]) is taken (step 604). As a result, it is determined based on the following equation whether or not the values of adjacent dots have different values (step 605). That is, the judgment is made based on Dot [j, i] = Dot [j + 1, i] ?. If the adjacent dots have the same value (equal to each other) in step 605, the variable Chan
Increment the value of geNum (step 606),
If the adjacent dots have different values (not equal to each other), the process proceeds to step 507 as it is.
【0082】そして、ステップ607では、変数jの値
が1ライン当たりのドット数から2を減じた(DotPerLin
e-2)の値以下であるか否かを判断する。ここで、変数j
が(DotPerLine-2)の値以下であるとは、塗り潰し処理す
べきドットがまだ残っていることを意味する。従って、
ステップ607で変数jが(DotPerLine-2)の値以下であ
ると判断された場合は、変数jの値をインクリメントし
(ステップ608)、ステップ604に移行する。Then, in step 607, the value of the variable j is reduced by 2 from the number of dots per line (DotPerLin
Determine whether it is less than or equal to the value of e-2). Where the variable j
Is less than or equal to the value of (DotPerLine-2) means that there are still dots to be filled. Therefore,
When it is determined in step 607 that the variable j is less than or equal to the value of (DotPerLine-2), the value of the variable j is incremented (step 608) and the process proceeds to step 604.
【0083】一方、ステップ607で変数jが(DotPerLi
ne-2)の値以下でないと判断された場合は、さらに変数i
がライン数LineNum以下であるか否かを判断する(ステ
ップ609)。ここで、変数iがライン数LineNum以下で
あるとは、塗り潰し処理すべきライン数がまだ残ってい
ることを意味する。従って、ステップ609で変数iが
ライン数LineNum以下であると判断された場合は、変数i
の値をインクリメントし(ステップ610)、ステップ
603に移行する。On the other hand, in step 607, the variable j is (DotPerLi
If it is judged that it is not less than the value of (ne-2), further variable i
Is less than or equal to the number of lines LineNum (step 609). Here, the fact that the variable i is equal to or less than the number of lines LineNum means that the number of lines to be filled still remains. Therefore, if it is determined in step 609 that the variable i is less than or equal to the number of lines LineNum, the variable i
Is incremented (step 610) and the process proceeds to step 603.
【0084】一方、ステップ609で変数iがライン数L
ineNum以下でないと判断された場合は、全てのラインに
対する塗り潰し処理が完了したことを意味する。ここ
で、図12は、図11に示すエッジ描画処理を行ったビ
ットマップイメージに対して塗り潰し処理を行った結果
のビットマップイメージを示している。On the other hand, in step 609, the variable i is the number of lines L
If it is determined that it is not less than or equal to ineNum, it means that the filling process for all the lines is completed. Here, FIG. 12 shows a bitmap image obtained as a result of performing the filling processing on the bitmap image subjected to the edge drawing processing shown in FIG. 11.
【0085】そこで、ステップ609で変数iがライン
数LinNum以下でないと判断された場合は、ビットマップ
の変化点数であるChangeNumの値とライン数LineNumの値
とをもとに、ランレングス符号化による圧縮処理を行っ
た場合のビットマップデータを記憶するのに必要な総バ
イト数RleByteの値を次式により算出する(ステップ6
11)。すなわち、 RleByte=ChangeNum+LineNum を算出する。Therefore, if it is determined in step 609 that the variable i is not equal to or less than the number of lines LinNum, run length encoding is performed based on the value of ChangeNum, which is the number of change points in the bitmap, and the value of LineNum, LineNum. The value of the total number of bytes RleByte required to store the bitmap data when the compression processing is performed is calculated by the following formula (step 6).
11). That is, RleByte = ChangeNum + LineNum is calculated.
【0086】ここで、ランレングス符号化による圧縮処
理について説明する。Here, the compression processing by the run length coding will be described.
【0087】図13は、ランレングス符号化による圧縮
処理を行った場合における1ラインのデータ構成の一例
を示したものである。図13においては、ランレングス
符号化による圧縮処理は、各ライン毎に行われるものと
し、圧縮処理されたデータ構成は、最初、すなわち1バ
イト目に最初に表れるドットパターンの種類(黒ドット
であるならば「1」、白ドットであるならば「0」)を
フラグとして用い、このフラグに続く残りのバイトに
は、同一種類の連続するドット数が順次データとして構
成される。例えば、図13に示すランレングス圧縮デー
タの一例は、図12に示すビットマップイメージの62
ライン目(文字「職」の下部方向から)のデータ構成を
示しており、この場合、1ラインの圧縮データは4バイ
ト構成となる。すなわち、最初の1バイトは、最初のド
ットが白ドットであるため、「0」を示す1バイトデー
タとなり、次の1バイトは、白ドット「0」が45ビッ
ト連続するため、「45」の値を示す1バイトデータが
格納される。これにより、最初の45ビットは白ドット
であることが示される。さらに、次の1バイトには、白
ドットから黒ドットに変化した黒ドット「1」が「4」
ビット連続していることを示し、次の1バイトには、黒
ドットから白ドットに変化した白ドット「0」が「1
6」ビット連続していることが示される。FIG. 13 shows an example of the data structure of one line when the compression processing by the run length coding is performed. In FIG. 13, it is assumed that the compression process by the run length encoding is performed for each line, and the data structure subjected to the compression process is the type of the dot pattern that appears first, that is, the first byte (black dot). If so, "1" is used as a flag, and if it is a white dot, "0") is used as a flag, and the number of consecutive dots of the same type is sequentially configured as data in the remaining bytes following this flag. For example, an example of the run-length compressed data shown in FIG. 13 is 62 of the bitmap image shown in FIG.
The data structure of the line (from the lower side of the character "Job") is shown. In this case, the compressed data of one line has a 4-byte structure. That is, since the first dot is a white dot, the first 1 byte is 1-byte data indicating "0", and the next 1 byte is 45 "dots" of white dots "0" in succession. 1-byte data indicating a value is stored. This indicates that the first 45 bits are white dots. Furthermore, in the next 1 byte, the black dot "1" changed from the white dot to the black dot is "4".
Indicates that the bits are continuous, and in the next 1 byte, a white dot "0" that has changed from a black dot to a white dot is "1".
It is shown to be 6 "consecutive.
【0088】従って、ステップ611で算出した総バイ
ト数RleByteの値は、全てのラインにおける変化点数を
記憶するためのバイト数ChangeNumと各ラインのフラグ
を記憶するためのバイト数LineNumとの和を示してお
り、この総バイト数RleByteの値が、ビットマップデー
タを記憶する際に必要なバイト数を示していることにな
る。Therefore, the value of the total number of bytes RleByte calculated in step 611 indicates the sum of the number of bytes ChangeNum for storing the number of change points in all lines and the number of bytes LineNum for storing the flags of each line. Therefore, the value of the total number of bytes RleByte indicates the number of bytes required to store the bitmap data.
【0089】さて、図10に戻り、ステップ612で、
判定部4は、圧縮しない場合のビットマップデータの総
バイト数RawByteの値が圧縮した場合のビットマップデ
ータの総バイト数RleByteの値より小さい値か否かを判
断する。この結果、総バイト数RawByteの値が総バイト
数RleByteの値より小さい値である場合は、文字管理テ
ーブルTB内の圧縮フラグの値を「真」に設定し(ステ
ップ613)、総バイト数RawByteの値が総バイト数Rle
Byteの値より小さくない値である場合は、文字管理テー
ブルTB内の圧縮フラグの値を「偽」に設定して(ステ
ップ614)、いずれもステップ506にリターンす
る。ここで、文字コード”3F26”の場合、圧縮しな
い場合の総バイト数RawByteの値は512であり、圧縮
した場合の総バイト数RleByteの値は733であること
から、ランレングス符号化による圧縮の効果はないと判
定され、文字管理テーブルTB内の圧縮フラグは「偽」
に設定される。Now, returning to FIG. 10, in step 612,
The determination unit 4 determines whether the value of the total byte count RawByte of the bitmap data when not compressed is smaller than the value of the total byte count RleByte of the bitmap data when compressed. As a result, when the value of the total number of bytes RawByte is smaller than the value of the total number of bytes RleByte, the value of the compression flag in the character management table TB is set to "true" (step 613), and the total number of bytes RawByte is set. Is the total number of bytes Rle
If the value is not smaller than the value of Byte, the value of the compression flag in the character management table TB is set to "false" (step 614), and the process returns to step 506. Here, in the case of the character code “3F26”, the value of the total number of bytes RawByte without compression is 512, and the value of the total number of bytes RleByte with compression is 733. It is determined that there is no effect, and the compression flag in the character management table TB is "false".
Is set to
【0090】さらに、ステップ506にリターンした後
は、そのまま図8のステップ404にリターンする。そ
して、ステップ405において、フォントキャッシュメ
モリ部6内のビットマップデータ記憶領域40内から生
成されたビットマップデータを、カレントポイントが示
すページメモリ部7におけるページメモリ上の位置に転
送する。その後、圧縮フラグが「真」か否かを判断し
(ステップ406)、圧縮フラグが「真」である場合
は、ビットマップデータ記憶領域40内に生成されたビ
ットマップデータをランレングス符号化により圧縮処理
を行って(ステップ407)、ステップ303にリター
ンする。一方、ステップ406において、圧縮フラグが
「真」でない、すなわち「偽」である場合は、ランレン
グス符号化により圧縮処理を行わずに、そのままステッ
プ303にリターンする。Further, after returning to step 506, the process directly returns to step 404 in FIG. Then, in step 405, the bitmap data generated from the bitmap data storage area 40 in the font cache memory unit 6 is transferred to the position on the page memory in the page memory unit 7 indicated by the current point. Then, it is judged whether or not the compression flag is "true" (step 406). If the compression flag is "true", the bitmap data generated in the bitmap data storage area 40 is subjected to run length encoding. The compression process is performed (step 407) and the process returns to step 303. On the other hand, when the compression flag is not “true”, that is, “false” in step 406, the compression process is not performed by the run-length encoding, and the process directly returns to step 303.
【0091】ここで、文字コード”3F26”の場合
は、圧縮フラグが「偽」であるため、ランレングス符号
化による圧縮処理は行われずに、展開処理されたそのま
まのビットマップデータがビットマップデータ記憶領域
40に保持される。In the case of the character code "3F26", since the compression flag is "false", the compression processing by the run length encoding is not performed, and the uncompressed bitmap data is the bitmap data. It is held in the storage area 40.
【0092】なお、フォントキャッシュメモリ部6にお
いて、展開処理部2が生成したビットマップデータある
いは圧縮/伸長部3によりさらにランレングス符号化に
よる圧縮処理がなされたビットマップデータは、いずれ
にしてもビットマップデータ記憶領域40に保持され
る。但し、上述したようにフォントキャッシュメモリ部
6における管理方式は、FIFO方式を採用しているた
め、記憶すべき記憶領域がなくなるような場合に、古い
ビットマップデータは自動的にビットマップデータ記憶
領域40から削除され、この削除されたビットマップデ
ータに対応する文字管理テーブルTB内のテーブルが削
除される。In the font cache memory unit 6, the bit map data generated by the expansion processing unit 2 or the bit map data further compressed by the run length coding by the compression / decompression unit 3 may be bit data in any case. It is held in the map data storage area 40. However, as described above, since the management method in the font cache memory unit 6 adopts the FIFO method, when there is no storage area to be stored, old bitmap data is automatically stored in the bitmap data storage area. The table in the character management table TB corresponding to the deleted bitmap data is deleted.
【0093】このようにして、例えば文字コード”3F
26”の文字が出力処理されるとともに、フォントキャ
ッシュメモリ部6内に生成されたビットマップデータが
そのまま保持され、その後再利用の対象となる。なお、
文字コード”3F26”は、ランレングス符号化による
圧縮処理を行っても、データ量が圧縮しない場合に比較
して小さくならないため、圧縮処理が行われずにそのま
ま展開処理されたビットマップデータがビットマップデ
ータ記憶領域40に保持されたが、文字列描画命令であ
る「文字列描画(3F26 3648)」における文字
コード”3648”に対しても、同様にしてステップ3
03により文字出力処理が行われる。In this way, for example, the character code "3F"
The 26 "character is output, and the bitmap data generated in the font cache memory unit 6 is retained as it is, and is then reused.
The character code "3F26" does not become smaller than the case where the data amount is not compressed even if the compression process by the run length encoding is performed, and therefore the bitmap data that is directly expanded without the compression process is the bitmap data. Although the data is held in the data storage area 40, step 3 is similarly performed for the character code “3648” in the character string drawing command “character string drawing (3F26 3648)”.
A character output process is performed by 03.
【0094】すなわち、文字コード”3648”が示す
文字「業」の文字出力処理の概要は、まずステップ30
3で図8に示す処理に移行し、ステップ401,402
の処理は、文字コード”3F26”と同様に検索し、そ
の内容は同一である。そして、ステップ403における
検索処理も、まだ同一文字が登録されていないことか
ら、検索に失敗し、ステップ404に移行し、図9に示
すビットマップデータ生成処理に移行する。このビット
マップデータ生成処理のステップ506の塗り潰し処理
におけるステップ612の判断において、圧縮処理した
場合の総バイト数RleByteの値は390となり、圧縮処
理をしない場合の総バイト数RawByteの値512より小
さくなることから、ランレングス符号化による圧縮処理
の効果があると判断され、ステップ613で圧縮フラグ
が「真」に設定される。その後、図9、図8にリターン
し、図8のステップ407で、圧縮フラグが「真」に設
定されていることから、圧縮/伸長部3がランレングス
符号化による圧縮処理を行い、この圧縮処理の結果が結
果的に、フォントキャッシュメモリ部6内のビットマッ
プデータ記憶領域40内に記憶保持されることになる。That is, the outline of the character output process of the character "work" indicated by the character code "3648" is as follows.
In step 3, the process proceeds to the process shown in FIG.
In the processing of, the character code "3F26" is searched for, and the contents are the same. Also in the search process in step 403, the same character is not registered yet, so the search fails, and the process proceeds to step 404, and the process proceeds to the bitmap data generation process shown in FIG. In the judgment of step 612 in the filling processing of step 506 of this bitmap data generation processing, the value of the total byte number RleByte when the compression processing is performed is 390, which is smaller than the value 512 of the total byte number RawByte when the compression processing is not performed. Therefore, it is determined that the compression processing by the run length encoding has an effect, and the compression flag is set to “true” in step 613. After that, returning to FIG. 9 and FIG. 8, since the compression flag is set to “true” in step 407 of FIG. 8, the compression / expansion unit 3 performs the compression processing by the run length encoding, and this compression As a result, the processing result is stored and held in the bitmap data storage area 40 in the font cache memory unit 6.
【0095】ここで、図14は、上述した文字列描画命
令「文字列描画(3F26 3648)」の処理が終了
した時点におけるフォントキャッシュメモリ部6内の管
理状態を示している。Here, FIG. 14 shows the management state in the font cache memory unit 6 at the time when the processing of the character string drawing command "character string drawing (3F26 3648)" is completed.
【0096】図14において、文字検索テーブルTA2
には、文字列描画命令「文字列描画(3F26 364
8)」が指示する文字コード”3F26”及び”364
8”のそれぞれ下位1バイトである”26”及び”4
8”が登録され、これらの文字コードにそれぞれ対応す
る文字管理テーブルTB2内のテーブルTB21及びT
B22が生成されている。テーブルTB21及びTB2
2は、それぞれ同じ文字コードに関するビットマップデ
ータは、ビットマップデータ記憶領域41に格納されて
いないため、互いにリンクされることはない。テーブル
TB21は、文字コード”3F26”に対応するもの
で、上述したように圧縮フラグが「偽」に設定されてお
り、ビットマップサイズは、圧縮処理しない場合のバイ
ト数「512」が設定され、この512バイトのビット
マップデータがビットマップデータ記憶領域41に一時
格納されている。一方、テーブルTB22は、文字コー
ド”3648”に対応するもので、上述したように圧縮
フラグが「真」に設定されており、ビットマップサイズ
は、ランレングス符号化による圧縮処理されたビットマ
ップデータがビットマップデータ記憶領域41に一時格
納されている。In FIG. 14, the character search table TA2
The character string drawing command “character string drawing (3F26 364
8) ”indicates the character codes“ 3F26 ”and“ 364
"26" and "4", which are the lower 1 bytes of 8 ", respectively
8 "is registered, and tables TB21 and T in the character management table TB2 corresponding to these character codes, respectively.
B22 has been generated. Tables TB21 and TB2
No. 2 is not linked to each other because the bitmap data relating to the same character code is not stored in the bitmap data storage area 41. The table TB21 corresponds to the character code “3F26”, the compression flag is set to “false” as described above, and the bitmap size is set to the number of bytes “512” when compression processing is not performed. This 512-byte bitmap data is temporarily stored in the bitmap data storage area 41. On the other hand, the table TB22 corresponds to the character code “3648”, the compression flag is set to “true” as described above, and the bitmap size is the bitmap data compressed by the run length encoding. Are temporarily stored in the bitmap data storage area 41.
【0097】このようにして上述した第1の実施例にお
いては、ランレングス符号化による圧縮処理の効果があ
るか否かを図10に示す塗り潰し処理中において順次求
められる情報をもとに、ランレングス符号化により圧縮
処理した場合のデータ量を予測し、この予測値に基づい
て圧縮処理の効果、すなわちデータ量が減少しないと判
断された場合には、展開処理後のビットマップデータの
圧縮処理を行わず、圧縮処理の効果があると判断された
場合には、展開処理後のビットマップデータの圧縮処理
を行うようにし、この結果、フォントキャッシュメモリ
部6内のビットマップ記憶領域40の記憶効率を高める
ことができる。As described above, in the first embodiment described above, whether or not the effect of the compression processing by the run length coding is effective is determined based on the information sequentially obtained during the filling processing shown in FIG. The amount of data when compressed by length coding is predicted, and based on this predicted value, the effect of compression processing, that is, when it is determined that the amount of data does not decrease, compression processing of bitmap data after expansion processing If it is determined that the compression processing is effective without performing the compression, the compression processing of the bitmap data after the expansion processing is performed, and as a result, the storage of the bitmap storage area 40 in the font cache memory unit 6 is performed. The efficiency can be increased.
【0098】次に、第2の実施例について説明する。第
1の実施例では、ランレングス符号化による圧縮処理を
行うべきか否かの予測判断基準とする情報の獲得を展開
処理における塗り潰し処理中に獲得するものであった
が、第2の実施例では、この情報の獲得を展開処理にお
けるエッジ描画処理(輪郭描画処理)中に獲得しようと
するものである。Next, the second embodiment will be described. In the first embodiment, the acquisition of information as a criterion for predicting whether or not to perform compression processing by run-length coding is acquired during the filling processing in the expansion processing, but in the second embodiment. Then, the acquisition of this information is to be acquired during the edge drawing processing (contour drawing processing) in the expansion processing.
【0099】第2の実施例における構成は、第1の実施
例の構成と同様なものであるが、第1の実施例における
展開処理部2の動作処理が異なる。すなわち、図9のフ
ローチャートに示すビットマップデータ生成処理及び図
10のフローチャートに示す塗り潰し処理が異なる。特
に、図9のステップ505におけるエッジ描画処理及び
ステップ506における塗り潰し処理が異なる。The configuration of the second embodiment is similar to that of the first embodiment, but the operation processing of the expansion processing section 2 in the first embodiment is different. That is, the bitmap data generation process shown in the flowchart of FIG. 9 and the filling process shown in the flowchart of FIG. 10 are different. In particular, the edge drawing process in step 505 and the filling process in step 506 of FIG. 9 are different.
【0100】第1の実施例では、ステップ505におい
ては、単にエッジ描画処理を行うのみであったが、第2
の実施例では、このエッジ描画処理とともに、ランレン
グス符号化による圧縮処理の効果があるか否かを判断す
るための情報(ビットマップの変化点)を獲得する処理
を並列的に行う。また、第1の実施例では、ステップ5
06において、塗り潰し処理とともに、ランレングス符
号化により圧縮処理の効果があるか否かを判断するため
の情報を獲得するようにしていたが、第2の実施例で
は、既にエッジ描画処理時に、圧縮処理の効果があるか
否かを判断するための情報は獲得されているので、塗り
潰し処理のみを行うようにしている。なお、第1の実施
例及び第2の実施例とも、判定部4に供給される圧縮処
理の効果を判定するための結果情報は同一の結果情報と
なる。In the first embodiment, in step 505, only the edge drawing processing is performed, but in the second embodiment
In the embodiment of the present invention, along with this edge drawing process, a process of acquiring information (bitmap change point) for determining whether or not there is an effect of the compression process by the run length coding is performed in parallel. In addition, in the first embodiment, step 5
In 06, along with the filling process, the information for determining whether or not the compression process is effective is obtained by the run-length coding. However, in the second embodiment, the compression is already performed during the edge drawing process. Since the information for determining whether or not the processing is effective is acquired, only the filling processing is performed. In both the first embodiment and the second embodiment, the result information for determining the effect of the compression processing supplied to the determination unit 4 is the same result information.
【0101】従って、第2の実施例においては、図8に
示す文字出力処理までは第1の実施例と同様な処理を行
う。そこで、図8におけるステップ404のビットマッ
プデータ生成処理から説明する。Therefore, in the second embodiment, the same processing as in the first embodiment is performed until the character output processing shown in FIG. Therefore, the bitmap data generation process of step 404 in FIG. 8 will be described.
【0102】図17は、図9のフローチャートに対応す
る第2の実施例におけるビットマップデータ生成処理手
順を示すフローチャートである。図17において、ステ
ップ701〜704では、図9に示すステップ501〜
504と同様な処理を行う。FIG. 17 is a flow chart showing a bitmap data generation processing procedure in the second embodiment corresponding to the flow chart of FIG. 17, steps 701 to 704 include steps 501 to 701 shown in FIG.
The same processing as 504 is performed.
【0103】ステップ705では、フォントキャッシュ
メモリ部6のビットマップデータ記憶領域40内の領域
確保された領域に、文字のエッジを描画したビットマッ
プデータを記憶する。このエッジ描画処理の結果による
ビットマップイメージの例は図11に示したとおりであ
る。この際、エッジの描画処理とともにビットマップの
変化点の計測を行う。このステップ705の処理は、後
に詳述する。In step 705, the bitmap data in which the edge of the character is drawn is stored in the reserved area in the bitmap data storage area 40 of the font cache memory unit 6. An example of the bitmap image resulting from the edge drawing process is as shown in FIG. At this time, the change point of the bitmap is measured together with the edge drawing process. The process of step 705 will be described in detail later.
【0104】さらに、ステップ706で、エッジ描画さ
れたビットマップの塗り潰し処理を行う。この塗り潰し
処理は、第1の実施例と同様にエッジフラグアルゴリズ
ムを用いて行われる。但し、上述したように塗り潰し処
理のみであり、ステップ506、すなわち図10に示す
ビットマップの変化点の計測を行って、ランレングス符
号化による圧縮処理が行われた時の予測データ量を算出
する処理は行わない。Further, in step 706, the edge-drawn bitmap is filled. This filling processing is performed using the edge flag algorithm as in the first embodiment. However, as described above, only the filling process is performed. In step 506, that is, the change point of the bitmap shown in FIG. 10 is measured to calculate the predicted data amount when the compression process by the run length coding is performed. No processing is done.
【0105】次に、ステップ705におけるエッジ描画
処理手順について図18のフローチャートを参照して説
明する。Next, the edge drawing processing procedure in step 705 will be described with reference to the flowchart in FIG.
【0106】まず、図10のステップ601,602と
同様に、エッジ描画処理に必要な変数の初期化を行う
(ステップ801,802)。すなわち、ビットマップ
データのライン数LineNum、1ライン当たりのドット数D
otPerLine、ステップ504で領域確保された領域の先
頭アドレスDot、ビットマップのバイト数RawByteがそれ
ぞれステップ801で初期化され、ステップ802で、
ビットマップの変化点をカウントする変数ChangeNumが
「0」に初期化される。First, similarly to steps 601, 602 in FIG. 10, variables required for edge drawing processing are initialized (steps 801, 802). That is, the number of lines in the bitmap data LineNum, the number of dots per line D
otPerLine, the start address Dot of the area secured in step 504, and the byte count RawByte of the bitmap are initialized in step 801, respectively, and in step 802,
A variable ChangeNum that counts the change points of the bitmap is initialized to "0".
【0107】その後、描画命令を取り出し(ステップ8
03)、この描画命令が終了命令か否かを判断し(ステ
ップ804)、終了命令でない場合はさらにこの描画命
令が曲線描画命令であるか否かを判断する(ステップ8
05)。ステップ804で、描画命令が終了命令である
場合は、ステップ812に移行する。このステップ81
2に移行する場合は、1つの文字のエッジ描画が終了し
た場合である。なお、ここでいう描画命令とは、アウト
ラインデータを構成するセグメントが示す直線あるいは
曲線を描画する命令をいう。Thereafter, the drawing command is fetched (step 8
03), it is determined whether or not this drawing command is an end command (step 804), and if it is not the end command, it is further determined whether or not this drawing command is a curve drawing command (step 8).
05). If the drawing command is the end command in step 804, the process proceeds to step 812. This step 81
The case of shifting to 2 is the case where the edge drawing of one character is completed. The drawing command referred to here is a command for drawing a straight line or a curve indicated by a segment forming the outline data.
【0108】ステップ805で曲線描画命令でないと判
断された場合は、1つの直線を描画すればよいため、直
線の数を示す変数Counterの値を「1」に設定し(ステップ
807)、ステップ809に移行する。一方、ステップ
805で曲線描画命令であると判断された場合は、対応
する曲線を所定の処理によって複数の曲線に分割する処
理を行い(ステップ806)、この分割された複数の直
線の数の値を変数Counterの値に設定した(ステップ8
08)後、ステップ809に移行する。そして、ステッ
プ809で直線描画処理を行う。この直線描画処理につ
いては後に詳述するが、この処理時にビットマップの変
化点をカウントする変数ChangeNumの値が計測される。If it is determined in step 805 that it is not a curve drawing command, one straight line may be drawn, so the value of the variable Counter indicating the number of straight lines is set to "1" (step 807), and step 809 Move to. On the other hand, if it is determined in step 805 that the command is a curve drawing command, the corresponding curve is divided into a plurality of curves by a predetermined process (step 806), and the value of the number of the plurality of divided straight lines is calculated. Was set to the value of the variable Counter (step 8
After 08), the process proceeds to step 809. Then, in step 809, straight line drawing processing is performed. This straight line drawing process will be described in detail later, but at the time of this process, the value of the variable ChangeNum that counts the change points of the bitmap is measured.
【0109】ステップ809で1つの直線の直線描画処
理が終了すると、直線の数を示す変数Counterの値を「1」
減じる処理(Counter=Counter-1)を行う(ステップ81
0)。その後、変数Counterの値が「0」より大きいか否
か、すなわち直線が残っているか否かを判断し(ステッ
プ811)、直線が残っている場合は、ステップ809
に移行して直線描画処理を繰り返し、直線が残っていな
い場合は、ステップ803に移行して次のエッジ描画の
ための描画命令を取り出して上述した処理を繰り返す。When the straight line drawing process for one straight line is completed in step 809, the value of the variable Counter indicating the number of straight lines is set to "1".
Reduction processing (Counter = Counter-1) is performed (step 81).
0). Thereafter, it is determined whether or not the value of the variable Counter is larger than “0”, that is, whether or not a straight line remains (step 811). If a straight line remains, step 809
And the straight line drawing process is repeated. If no straight line remains, the process moves to step 803 and the drawing command for the next edge drawing is taken out and the above-described process is repeated.
【0110】一方、ステップ804で描画命令が終了命
令である場合は、ステップ809で獲得された変数Chan
geNumの値とライン数LineNumの値とを加算した値を、ラ
ンレングス符号化による圧縮処理が行われた時に予想さ
れるビットマップイメージの総バイト数RleByteの値と
して設定する(ステップ812)。そして、判定部4
は、この圧縮された時の総バイト数RleByteの値が圧縮
しない時の総バイト数RawByteの値より小さいか否かを
判断し(ステップ813)、圧縮された時の総バイト数
RleByteの値が圧縮しない時の総バイト数RawByteの値よ
りも小さいと判断された場合は、文字管理テーブルTB
内の対応する圧縮フラグを「真」に設定し(ステップ8
14)、圧縮された時の総バイト数RleByteの値が圧縮
しない時の総バイト数RawByteの値よりも小さくないと
判断された場合は、文字管理テーブルTB内の対応する
圧縮フラグを「偽」に設定し(ステップ815)、ステ
ップ705にリターンする。この結果、その後の塗り潰
し処理が終了して最終的なビットマップイメージに対応
するビットマップデータが生成されると、ステップ81
4あるいはステップ815で設定された圧縮フラグに基
づいてランレングス符号化により圧縮処理が行われ、あ
るいは圧縮処理が行われずにそのままビットマップデー
タ記憶領域40に保持される。On the other hand, if the drawing command is the end command in step 804, the variable Chan acquired in step 809
The value obtained by adding the value of geNum and the value of the number of lines LineNum is set as the value of the total number of bytes RleByte of the bitmap image expected when the compression processing by the run length encoding is performed (step 812). Then, the determination unit 4
Determines whether the value of the total number of bytes RleByte when compressed is smaller than the value of the total number of bytes RawByte when not compressed (step 813), and the total number of bytes when compressed
When it is determined that the value of RleByte is less than the total number of bytes of RawByte when not compressed, the character management table TB
Set the corresponding compression flag in each to "true" (step 8
14) If it is determined that the value of the total number of bytes RleByte when compressed is not smaller than the value of the total number of bytes RawByte when not compressed, set the corresponding compression flag in the character management table TB to “false”. (Step 815) and returns to step 705. As a result, when the subsequent filling process ends and the bitmap data corresponding to the final bitmap image is generated, step 81
4 or the compression flag is set by the run length encoding based on the compression flag set in step 815, or the compression process is not performed and the data is held in the bitmap data storage area 40 as it is.
【0111】次に、ステップ809における直線描画処
理手順を図19に示すフローチャート及び図20に示す
エッジ描画方法を説明する図を参照して説明する。Next, the straight line drawing processing procedure in step 809 will be described with reference to the flowchart shown in FIG. 19 and the diagram for explaining the edge drawing method shown in FIG.
【0112】まず図20において、一般的なエッジ描画
方法について説明する。通常、アウトラインフォントの
ようなベクトルフォントでは、文字の輪郭を定義する複
数の直線及び複数の曲線等(複数のセグメント)から構
成される。直線のセグメントである場合は、セグメント
が直線であることを示すフラグ、始点座標、及び終点座
標を有している。また、曲線のセグメントの場合も、曲
線の種類を示すフラグ、始点座標、及び終点座標を有し
ている。この曲線の場合は、描かれる曲線を複数の直線
に分割する(ステップ808)ことにより、全ての直線
あるいは曲線のセグメントを直線として表すことができ
る。なお、円等も曲線に含まれ、これらも複数の直線に
分割することにより、全ての曲線を直線として表すこと
ができる。従って、文字のエッジ描画は全て直線描画処
理を行うことにより行うことができる。First, referring to FIG. 20, a general edge drawing method will be described. Usually, a vector font such as an outline font is composed of a plurality of straight lines and a plurality of curves (a plurality of segments) that define the outline of a character. If it is a straight line segment, it has a flag indicating that the segment is a straight line, a start point coordinate, and an end point coordinate. Also, a curve segment also has a flag indicating the type of curve, start point coordinates, and end point coordinates. In the case of this curve, by dividing the drawn curve into a plurality of straight lines (step 808), all straight lines or segments of the curved line can be expressed as straight lines. It should be noted that circles and the like are also included in the curves, and by dividing these into a plurality of straight lines, all the curves can be expressed as straight lines. Therefore, the edge drawing of the character can be performed by performing the straight line drawing process.
【0113】図20は、この直線描画処理を説明するた
めの図であり、直線描画アルゴリズムとして、水平方向
のスキャンによる方法(水平スキャン方式)を用いてい
る。この水平スキャン方式では、図20に示すプクセル
座標系で、描画すべき直線LとY方向のハーフスキャン
ラインHY1〜HY3との交点CH1〜CH3を求め、
この交点CH1〜CH3がこの交点が含まれるピクセル
のX方向のハーフスキャンラインより右側(X方向)に
ある場合は、このピクセルと右側に隣合うピクセル、例
えばP1をエッジを構成するピクセルとして選択し、交
点が、この交点が含まれるピクセルのX方向のハーフス
キャンラインより右側でない(ピクセルの中心あるいは
−X方向にある)場合は、このピクセルを、例えばピク
セルP2,P3をエッジを構成するピクセルとして選択
し、結果的にピクセルP1〜P3による直線による文字
のエッジが描画される。FIG. 20 is a diagram for explaining this straight line drawing processing. As a straight line drawing algorithm, a horizontal scanning method (horizontal scanning method) is used. In the horizontal scan method, intersections CH1 to CH3 of the straight line L to be drawn and the half scan lines HY1 to HY3 in the Y direction are obtained in the puxel coordinate system shown in FIG.
When the intersections CH1 to CH3 are on the right side (X direction) of the half scan line in the X direction of the pixel including the intersection, a pixel adjacent to this pixel on the right side, for example, P1 is selected as a pixel forming an edge. , If the intersection is not on the right side of the half-scan line in the X direction of the pixel including this intersection (in the center of the pixel or in the −X direction), this pixel is set as, for example, pixels P2 and P3 that form an edge. As a result, the edge of the character is drawn as a straight line by the pixels P1 to P3.
【0114】次に、この直線描画アルゴリズムに基づく
処理と、同時に行われる変化点の変数ChangeNumの値の
計測処理とを図19のフローチャートを参照して詳細に
説明する。まず、対象となる直線の始点のX座標,Y座
標、及び終点のX座標,Y座標のそれぞれに対して、
0.5を加算した値に対する整数化を行い、この整数化
した値をそれぞれStartX,StartY,EndX,EndYとして求め
る(ステップ901)。すなわち、 StartX=Integer(始点のX座標+0.5) StartY=Integer(始点のY座標+0.5) EndX=Integer(終点のX座標+0.5) EndY=Integer(終点のY座標+0.5) とする。さらに、EndYとStartYとの差の絶対値を距離Le
ngthとして定義し、EndXとStartXとの差を距離Lengthで
除算した値をXの差分DXとして定義し、EndYとStartY
との差が正なら「1」、0なら「0」、負なら「-1」とするYの
差分DYを求める。すなわち、 Length=Abs(EndY-StartY) DX=(EndY-StartY)/Length DY=Sign(EndY-StartY) を求める。なお、Sign(X)とは、Xが正なら「1」、Xが0な
ら「0」、Xが負なら「-1」を返す関数である。Next, the process based on this straight line drawing algorithm and the process of measuring the value of the variable ChangeNum of the change point which is performed at the same time will be described in detail with reference to the flowchart of FIG. First, for each of the X coordinate and Y coordinate of the starting point and the X coordinate and Y coordinate of the ending point of the target straight line,
The value obtained by adding 0.5 is converted into an integer, and the integerized values are obtained as StartX, StartY, EndX, and EndY, respectively (step 901). That is, StartX = Integer (start point X coordinate + 0.5) StartY = Integer (start point Y coordinate + 0.5) EndX = Integer (end point X coordinate + 0.5) EndY = Integer (end point Y coordinate + 0.5) In addition, the absolute value of the difference between EndY and StartY is the distance Le
It is defined as ngth, and the value obtained by dividing the difference between EndX and StartX by the distance Length is defined as the difference DX of X, EndY and StartY
The difference DY of Y is "1" if the difference is positive, "0" if 0, and "-1" if negative. That is, Length = Abs (EndY-StartY) DX = (EndY-StartY) / Length DY = Sign (EndY-StartY) is obtained. Note that Sign (X) is a function that returns "1" if X is positive, "0" if X is 0, and "-1" if X is negative.
【0115】次に、ステップ902で求めたYの差分D
Xが0か否かを判断する(ステップ903)。そして、
Yの差分DYが0である場合は、そのままステップ80
9にリターンする。これは、本直線描画アルゴリズム
が、水平スキャン方式を用いているため、直線のY成分
の距離がない場合は、処理する必要がないからである。
一方、Yの差分DYが0でない場合は、さらにXの差分
DXに0.5を乗算した値に値StartXを加算した値Xを
求め、Sign(DY)に0.5を乗算した値に値StartYを加算
した値Yを求める(ステップ904)。そして、繰り返
し処理に必要な変数iを「0」に初期化設定し(ステップ9
05)、変数iが距離Lengthの値以下であるか否かを判
断する(ステップ906)。この結果、変数iが距離Len
gth以下である場合は、そのままステップ809にリタ
ーンする。一方、変数iが距離Length以下でない場合
は、値Xの小数点を切り上げた値IX、値Yの小数点を切り
下げた値IYを求め、Dot[X,Y]を「1」に設定し、変化点の
数をカウントする変数ChangeNumの値をインクリメント
する(ステップ907)。すなわち、 IX=Ceil(X) IY=Floor(Y) Dot[X,Y]=1 ChangeNum=ChangeNum+1 とする。なお、Ceil(X)は、Xの小数点を切り上げる関数
であり、Floor(X)は、Xの小数点を切り下げる関数であ
る。Next, the difference D of Y obtained in step 902
It is determined whether X is 0 (step 903). And
If the difference DY of Y is 0, step 80 is left as it is.
Return to 9. This is because the straight line drawing algorithm uses the horizontal scanning method, and therefore, if the distance of the Y component of the straight line is not present, it is not necessary to process.
On the other hand, when the difference DY of Y is not 0, the value X obtained by further adding the value StartX to the value obtained by multiplying the difference DX of X by 0.5 is obtained, and the value obtained by multiplying Sign (DY) by 0.5 is obtained. A value Y obtained by adding StartY is obtained (step 904). Then, the variable i required for the iterative process is initialized and set to "0" (step 9).
05), it is determined whether or not the variable i is less than or equal to the value of the distance Length (step 906). As a result, the variable i is the distance Len
If it is less than or equal to gth, the process directly returns to step 809. On the other hand, if the variable i is not equal to or less than the distance Length, the value IX obtained by rounding up the decimal point of the value X and the value IY obtained by rounding down the decimal point of the value Y are obtained, and Dot [X, Y] is set to "1", and the change point The value of the variable ChangeNum that counts the number of is incremented (step 907). That is, IX = Ceil (X) IY = Floor (Y) Dot [X, Y] = 1 ChangeNum = ChangeNum + 1. Ceil (X) is a function that rounds up the decimal point of X, and Floor (X) is a function that rounds down the decimal point of X.
【0116】その後、値XをXの差分DXを加算した値
に更新し、値YをYの差分DYを加算した値に更新する
処理を行い(ステップ908)、変数iをインクリメン
トして(ステップ909)、ステップ906に移行し、
エッジ描画に伴う変化点の数の計測を行う。After that, the value X is updated to the value obtained by adding the difference DX of X, and the value Y is updated to the value obtained by adding the difference DY of Y (step 908), and the variable i is incremented (step 908). 909), and moves to step 906,
The number of change points associated with edge drawing is measured.
【0117】そして、変化点の数ChangeNumの値の計測
が終了すると、ステップ809にリターンし、最終的に
ステップ812〜815による圧縮効果があるか否かの
判定とこれにより、圧縮フラグの設定が行われ、圧縮効
果があるもののみが圧縮処理されることになる。When the measurement of the value of the number of change points, ChangeNum, is completed, the process returns to step 809, and it is finally determined in steps 812 to 815 whether or not there is a compression effect, and the compression flag is set accordingly. Then, only those having a compression effect will be compressed.
【0118】このようにして、第2の実施例において
は、第1の実施例と異なり、輪郭描画部2aによるエッ
ジ描画処理と同時に、変化点の数を計測し、この変化点
の数の計測結果をもとに、塗り潰し処理後ビットマップ
データに比べて圧縮効果があるか否かを判断するように
しており、第1の実施例と同様な効果を得ることができ
る。As described above, in the second embodiment, unlike the first embodiment, the number of change points is measured at the same time as the edge drawing processing by the contour drawing section 2a, and the number of change points is measured. Based on the result, it is determined whether or not there is a compression effect as compared with the bitmap data after the filling process, and the same effect as the first embodiment can be obtained.
【0119】なお、第2の実施例においては、最終的な
ビットマップイメージを生成する塗り潰し処理を行う前
に、圧縮処理の効果があるか否かを判定することができ
るため、塗り潰し処理と同時に圧縮処理が可能となるた
め、第1の実施例に比べて、さらに全体的な文字処理効
率が向上する。In the second embodiment, it is possible to determine whether or not the compression process is effective before performing the filling process for generating the final bitmap image. Since the compression processing is possible, the overall character processing efficiency is further improved as compared with the first embodiment.
【0120】次に、第1の実施例及び第2の実施例に共
通する応用例について説明する。この応用例とは、上述
した第1の実施例におけるステップ612及び第2の実
施例におけるステップ813の判断基準を変化させたも
のである。Next, application examples common to the first and second embodiments will be described. In this application example, the judgment criteria of step 612 in the first embodiment and step 813 in the second embodiment are changed.
【0121】すなわち、判定部4によるステップ612
あるいはステップ813における判断は、単に圧縮処理
した場合の予測ビットマップデータの総バイト数RleByt
eと圧縮処理しない場合のビットマップデータの総バイ
ト数RawByteとを比較判断し、この判断結果をもとに、
総バイト数RleByteの方が総バイト数RawByte数より小さ
い場合のみ圧縮処理を行うべく、圧縮フラグを設定する
ようにしていた。That is, step 612 by the judgment unit 4
Alternatively, the determination in step 813 is performed by simply calculating the total number of bytes of predictive bitmap data RleByt
e is compared with the total number of bytes of bitmap data, RawByte, when compression processing is not performed, and based on this judgment result,
The compression flag is set so that the compression process is performed only when the total number of bytes RleByte is smaller than the total number of bytes RawByte.
【0122】そこで、第1の応用例では、ステップ61
2あるいはステップ813における判断基準を次式によ
り行うようにする。すなわち、 RleByte+E1<RawByte を判断基準として判定部4が判断する。ここで、E1は、
正の整数であり、圧縮により減少するバイト数の閾値を
示している。例えば、圧縮処理を行った場合の総バイト
数が「390」で、圧縮処理を行わない場合の総バイト数が
「514」である場合で、閾値E1の値が「100」の場合は、「390
+100<512」となり、条件を満足するので、圧縮処理が行
われることになる。しかし、閾値E1の値を「200」とした
場合は、「390+200<512」となり、条件を満足しないので
圧縮処理は行われないことになる。Therefore, in the first application example, step 61
2 or the criterion in step 813 is determined by the following equation. That is, the determination unit 4 makes a determination based on RleByte + E1 <RawByte. Where E1 is
It is a positive integer and indicates the threshold value of the number of bytes that is reduced by compression. For example, if the total number of bytes when compression processing is performed is "390" and the total number of bytes when compression processing is not performed is "514", and the value of the threshold E1 is "100", 390
Since +100 <512 ”is satisfied and the condition is satisfied, compression processing will be performed. However, when the value of the threshold value E1 is “200”, “390 + 200 <512” is satisfied, and the condition is not satisfied, so that the compression process is not performed.
【0123】すなわち、第1の応用例では、閾値E1を設
け、これにより圧縮処理による減少バイト数が所定バイ
ト数以上のときのみに圧縮処理を行うようにしている。That is, in the first application example, the threshold value E1 is provided so that the compression process is performed only when the number of bytes reduced by the compression process is equal to or larger than the predetermined number of bytes.
【0124】この場合は、フォントキャッシュメモリの
メモリ容量に余裕があるときに、特に有効である。This case is especially effective when the font cache memory has a sufficient memory capacity.
【0125】次に、第2の応用例について説明する。第
2の応用例では、圧縮処理された場合の総バイト数RleB
yteが所定の絶対的な閾値E2以下になるように判断基準
を設定するものである。この場合、圧縮処理された場合
の総バイト数RleByteの値は、必ず圧縮処理されない場
合の総バイト数RawByteより少ないことを前提とするよ
うにしている。従って、次に示す論理式を満足するよう
な判断基準を設定する。すなわち、 RleByte<RawByte and RleByte<E2 に設定する。Next, the second application example will be described. In the second application example, the total number of bytes RleB when compressed
The judgment criterion is set so that yte is equal to or less than a predetermined absolute threshold value E2. In this case, it is assumed that the value of the total number of bytes RleByte when compressed is less than the total number of bytes RawByte when not necessarily compressed. Therefore, a criterion is set so as to satisfy the following logical expression. That is, set RleByte <RawByte and RleByte <E2.
【0126】この第2の応用例によれば、圧縮処理によ
り、圧縮処理しない場合のデータ量に比べてデータ量が
減少し、かつ圧縮処理後のデータ量(総バイト数)が閾
値E2より少ない場合に、圧縮処理の効果があったものと
判断することができる。According to the second application example, the compression process reduces the data amount as compared with the data amount when the compression process is not performed, and the data amount after compression processing (total number of bytes) is smaller than the threshold value E2. In this case, it can be determined that the compression processing was effective.
【0127】次に、第3の応用例について説明する。第
1の応用例あるいは第2の応用例における閾値E1,E2
は、それぞれバイト数を示すものであったが、第3の応
用例では、割合の数としたディメンジョンのない閾値E3
を判断基準の値として設定する。すなわち、圧縮処理さ
れない場合の総バイト数RawByteの値に対する圧縮処理
された場合の総バイト数RleByteの値の比が閾値E3より
小さいときに圧縮処理の効果があったものと判断するよ
うにしている。すなわち、 RleByte/RawByte<E3 を満足する場合に、圧縮処理の効果があったものと判断
される。この場合、閾値E3の値は1以下の実数に設定さ
れ、例えば、閾値E3を「0.5」に設定すれば、圧縮処理に
よりデータ量が半分より少なくなった場合に圧縮処理が
行われることになる。Next, a third application example will be described. Thresholds E1 and E2 in the first application example or the second application example
Respectively indicate the number of bytes, but in the third application example, the threshold value E3 with no dimension, which is a ratio number, is used.
Is set as the criterion value. That is, when the ratio of the value of the total number of bytes RleByte when the compression process is performed to the value of the total number of bytes RawByte when the compression process is not performed is smaller than the threshold value E3, it is determined that the compression process is effective. . That is, when RleByte / RawByte <E3 is satisfied, it is determined that the compression processing has been effective. In this case, the value of the threshold value E3 is set to a real number less than or equal to 1. For example, if the threshold value E3 is set to "0.5", the compression process is performed when the data amount becomes less than half by the compression process. .
【0128】このように第3の応用例によれば、圧縮処
理されない場合に対する圧縮処理された場合のデータ量
の減少割合を示す閾値E3が用いられ、圧縮処理されない
場合のデータ量に対する圧縮処理された場合の相対圧縮
効果を判断基準とすることができる。As described above, according to the third application example, the threshold value E3 indicating the reduction rate of the data amount when the compression process is performed with respect to the case where the compression process is not performed is used, and the compression process is performed with respect to the data amount when the compression process is not performed. In this case, the relative compression effect can be used as a criterion.
【0129】次に、第4の応用例について説明する。第
1〜第3の応用例により設定された閾値E1〜E3の値は、
文字処理装置に予め設定された固定の閾値とするもので
あったが、第4の応用例では、これらの閾値E1〜E3の値
を文書処理時に可変とすることができるようにしてい
る。Next, a fourth application example will be described. The values of the threshold values E1 to E3 set by the first to third application examples are
Although the fixed threshold value is set in advance in the character processing device, in the fourth application example, the values of these threshold values E1 to E3 can be made variable at the time of document processing.
【0130】例えば、文字処理装置の立ち上げ時におい
て、フォントキャッシュメモリに文字の登録は全くなさ
れていないため、メモリ領域は空きの状態となってい
る。従って、文字処理装置の立ち上げ直後においては、
多くの文字をフォントキャッシュメモリに登録できる状
態にある。そこで、文字処理装置の立ち上げ時には、例
えば閾値E1の値を大きめに設定しておき、文字処理装置
の立ち上げ後の時間の経過、すなわちフォントキャッシ
ュメモリへの登録状態が密になるに従って、閾値E1の値
を小さくするように設定できるように、最終的に安定状
態となる時の閾値E1をその後の固定的な閾値として設定
するようにしてもよい。すなわち、フォントキャッシュ
メモリの登録状態が文字処理装置の立ち上げ時からの時
間の経過とともに大幅に変化する過渡状態であるという
特性を最大限に利用してフォントキャッシュメモリのメ
モリ効率を向上しようとするものである。For example, when the character processing device is started up, since no characters are registered in the font cache memory, the memory area is empty. Therefore, immediately after starting up the character processing device,
Many characters can be registered in the font cache memory. Therefore, when the character processing device is started up, for example, the value of the threshold value E1 is set to a large value, and the threshold value is set as the time elapsed after the character processing device starts up, that is, the registration state in the font cache memory becomes dense. The threshold value E1 at which the stable state is finally reached may be set as a fixed threshold value thereafter, so that the value of E1 can be set to be small. That is, an attempt is made to improve the memory efficiency of the font cache memory by making the maximum use of the characteristic that the registered state of the font cache memory is a transitional state that changes significantly with the passage of time from the startup of the character processing device. It is a thing.
【0131】また、時間の経過とは関係なく、フォント
キャッシュメモリの文字登録状態に応じて、上述した閾
値E1〜E3を可変とすることにより、有限なメモリ容量を
最大限に利用すべく最適な文字登録を行えるようにして
もよい。すなわち、メモリの空き容量が少ない場合に
は、少しでも圧縮効果のある場合は圧縮処理が行えるよ
うな閾値に可変設定し、メモリの空き容量が大きい場合
には、大きな圧縮効果があるもののみを圧縮処理できる
閾値に可変設定するようにする。これにより、比較的メ
モリに空き領域ある場合には、圧縮処理が行われないた
め、圧縮処理を行う時間が軽減され、文書処理全体の処
理速度が向上する。また、メモリの空き領域が少ない場
合には、圧縮処理が比較的多く行われるので、フォント
キャッシュメモリに登録される文字の数が多くなること
から、フォントキャッシュメモリに登録された文字のヒ
ット率が向上し、これによっても文書処理全体の処理速
度が向上することになる。もちろん、時間の経過に関係
なく、閾値を可変設定できるようにするためには、フォ
ントキャッシュメモリの文字登録状態を検出する手段が
必要となる。この検出処理は、展開処理部2あるいは全
体処理部10が行うようにすればよい。Further, regardless of the passage of time, the above thresholds E1 to E3 are made variable according to the character registration state of the font cache memory, so that the finite memory capacity is optimally utilized to the maximum. Character registration may be possible. In other words, if the memory has a small amount of free space, the threshold is variably set so that the compression process can be performed if there is even a small amount of compression effect. The threshold value that enables compression processing is variably set. As a result, when there is a relatively large free area in the memory, the compression processing is not performed, so the time for performing the compression processing is reduced and the processing speed of the entire document processing is improved. In addition, when the free space in the memory is small, the compression process is relatively large, so the number of characters registered in the font cache memory increases, so the hit ratio of the characters registered in the font cache memory increases. This also improves the processing speed of the entire document processing. Of course, a means for detecting the character registration state of the font cache memory is required in order to be able to variably set the threshold value regardless of the passage of time. This detection processing may be performed by the expansion processing unit 2 or the overall processing unit 10.
【0132】なお、第4の応用例においては、時間の経
過とともに、あるいはフォントキャッシュメモリの文字
の登録状態により、閾値の値を設定するようにするもの
であったが、第1〜第3の応用例における閾値E1〜E3の
値を任意に設定できる設定手段を設けるようにしてもよ
いし、閾値E1〜E3の値のうちいずれか1つの閾値を選択
する選択手段を設けるようにしてもよい。さらには、第
4の応用例により可変設定の変更する変更手段を設ける
ようにしてもよい。また、第1の応用例から第4の応用
例の適宜な組合せを指示できる指示手段を設けてもよ
い。例えば、文字処理装置の立ち上げ後、所定の時間は
第4の応用例による可変設定した閾値を指示し、その
後、第1の応用例による固定の閾値E1あるいは第3の応
用例による固定の閾値E3を指示するようにすることがで
きる。In the fourth application example, the threshold value is set with the passage of time or the registered state of characters in the font cache memory. A setting unit that can arbitrarily set the values of the threshold values E1 to E3 in the application example may be provided, or a selection unit that selects any one of the threshold values E1 to E3 may be provided. . Furthermore, a changing means for changing the variable setting may be provided according to the fourth application example. Further, an instruction means for instructing an appropriate combination of the first application example to the fourth application example may be provided. For example, after the character processing device is started up, a predetermined time indicates a variably set threshold value according to the fourth application example, and then, a fixed threshold value E1 according to the first application example or a fixed threshold value according to the third application example. E3 can be directed.
【0133】また、上述した第1の応用例から第4の応
用例における閾値の値は、文字のヒット率及び圧縮処理
にかかる時間、あるいはフォントキャッシュメモリの記
憶容量、さらには文書の種類によって最適な閾値が変化
するものであり、この閾値は、経験あるいはシミュレー
ションによって得ることができる。The threshold values in the first to fourth application examples described above are optimal depending on the character hit ratio and the time required for compression processing, the storage capacity of the font cache memory, and the type of document. The threshold varies, and this threshold can be obtained by experience or simulation.
【0134】なお、上述した第1及び第2の実施例にお
けるエッジ描画処理は横方向(X方向)のエッジ描画を
行い、このエッジ描画の結果をもとに、塗り潰し処理も
横方向の塗り潰し処理を行うようにしているが、これに
限定することなく、エッジ描画処理を縦方向(Y方向)
に行い、塗り潰し処理も縦方向に行うようなベクトルフ
ォント展開方式を採用してもよい。The edge drawing processing in the above-mentioned first and second embodiments performs edge drawing in the horizontal direction (X direction), and based on the result of this edge drawing, the filling processing is also performed in the horizontal direction. However, the edge drawing process is performed in the vertical direction (Y direction) without being limited to this.
Alternatively, a vector font expansion method in which the filling process is performed in the vertical direction may be adopted.
【0135】特に、第1及び第2の実施例においては、
文字の横方向(X方向)におけるランレングス符号化に
よる圧縮処理の効果を判定するものであったが、第1及
び第2の実施例において、縦方向(Y方向)のベクトル
フォント展開方式を採用する場合には、文字の縦方向に
おけるランレングス符号化により圧縮処理の効果を判定
することができる。In particular, in the first and second embodiments,
Although the effect of the compression processing by the run length encoding in the horizontal direction (X direction) of the character is determined, in the first and second embodiments, the vector font expansion method in the vertical direction (Y direction) is adopted. In that case, the effect of the compression process can be determined by run length encoding in the vertical direction of the character.
【0136】さらに、第1及び第2の実施例において
は、ライン毎のランレングス符号化による圧縮処理を行
った場合の総バイト数を求め、圧縮処理の効果を判定
し、圧縮処理を行うようにしているが、ライン毎でな
く、各ラインを連続データとみなしてランレングス符号
化した場合の圧縮処理後の総バイト数を求め、この総バ
イト数をもとに圧縮処理の効果を判定し、圧縮処理する
場合は、各ラインを連続データをみなしたランレングス
符号化による圧縮処理を行うようにしてもよい。この場
合、1ライン毎に必要な最初のバイトすなわち、最初の
ドットが「1」か「0」かを示すフラグは全体として1つのみ
でよく、ランレングス符号化による圧縮処理後のデータ
量がさらに減少するという効果を有する。Further, in the first and second embodiments, the total number of bytes when the compression processing by the run length coding for each line is performed, the effect of the compression processing is determined, and the compression processing is performed. However, the total number of bytes after compression processing when each line is regarded as continuous data instead of each line and run length encoding is performed, and the effect of compression processing is judged based on this total number of bytes. When performing compression processing, each line may be subjected to run-length coding compression that considers continuous data. In this case, the number of the first byte required for each line, that is, the flag indicating whether the first dot is "1" or "0" is only one as a whole, and the data amount after the compression processing by the run length encoding is It has the effect of further reducing.
【0137】[0137]
【発明の効果】以上詳細に説明したように、第1の発明
では、判定手段が、展開処理の過程で順次獲得される展
開情報に基づいて、この展開処理されたドット形式デー
タを圧縮すべきか否かを判定する。そして、制御手段
は、判定手段が圧縮すべきと判定した場合、圧縮手段に
対し、判定手段により判定されたドット形式データの圧
縮処理を行わせ、この圧縮処理されたデータを一時記憶
手段に記憶させる。一方、判定手段が圧縮すべきでない
と判定した場合、制御手段は、判定手段により判定され
たドット形式データをそのまま一時記憶手段に記憶させ
るようにしている。As described above in detail, in the first aspect, whether the determination means should compress the expanded dot format data based on the expansion information sequentially acquired in the expansion processing. Determine whether or not. When the determination means determines that the compression should be performed, the control means causes the compression means to perform the compression processing of the dot format data determined by the determination means, and stores the compressed data in the temporary storage means. Let On the other hand, when the determination means determines that the compression should not be performed, the control means stores the dot format data determined by the determination means in the temporary storage means as it is.
【0138】従って、圧縮処理の判定に必要な情報は、
展開処理と同時に獲得され、圧縮処理の効果があるか否
かを判定するために実際に圧縮処理を行う必要がないこ
とから、圧縮処理の判定にかかる時間が削減され、全体
的な文書処理が高速化するとともに、圧縮処理の効果を
必ず有する文字のみを圧縮処理するようにしているの
で、フォントキャッシュメモリである一時記憶手段のメ
モリ効率が向上し、文字のヒット率も向上することか
ら、全体的な文書処理の高速化が図れるという利点を有
する。Therefore, the information necessary for determining the compression processing is
It is acquired at the same time as the decompression process, and since it is not necessary to actually perform the compression process to determine whether or not the compression process is effective, the time required for the compression process determination is reduced and the overall document processing is improved. In addition to speeding up, only the characters that have the effect of compression processing are compressed, so the memory efficiency of the temporary storage means, which is the font cache memory, is improved and the character hit rate is also improved. This has the advantage of speeding up the general document processing.
【0139】第2の発明では、第1の発明における展開
情報を、展開処理における塗り潰し処理の過程、すなわ
ち塗り潰し処理を行っている間に順次獲得するようにし
ている。In the second invention, the expansion information in the first invention is sequentially acquired during the filling process in the expansion process, that is, during the filling process.
【0140】従って、圧縮処理の効果があるか否かの判
定を行うために、実際に圧縮処理を行う必要がなく、圧
縮処理の判定のためにかかる時間が削減されるという利
点を有する。Therefore, there is an advantage that it is not necessary to actually perform the compression process to determine whether or not the compression process is effective, and the time required for the determination of the compression process is reduced.
【0141】第3の発明では、第1の発明における展開
情報を、展開処理における輪郭描画処理の過程、すなわ
ち輪郭描画処理を行っている間に順次獲得するようにし
ている。In the third invention, the expansion information in the first invention is sequentially acquired during the contour drawing process in the expanding process, that is, during the contour drawing process.
【0142】従って、第2の発明と同様に、圧縮処理の
判定のためにかかる時間が削減されるという利点を有す
る。Therefore, similarly to the second invention, there is an advantage that the time required for determining the compression processing is reduced.
【0143】特に第3の発明における輪郭描画処理は、
最終的なドット形式データへの展開処理である塗り潰し
処理以前に行う処理であり、輪郭描画処理が終了した時
点で圧縮処理の効果があるか否かを判断することができ
るため、塗り潰し処理時に圧縮処理の効果のある文字の
圧縮処理を同時に行うことができ、圧縮処理にかかる時
間も軽減されるという利点を有する。Particularly, the contour drawing process in the third invention is
This is a process performed before the filling process, which is the final expansion process to dot format data, and it is possible to determine whether or not the compression process is effective when the contour drawing process is completed. There is an advantage that the compression processing of the characters having the effect of the processing can be performed at the same time and the time required for the compression processing can be reduced.
【0144】第4の発明では、前記展開情報を、前記展
開処理の過程におけるドット形式のデータの変化点数及
び該ドット形式のデータのデータ量としており、この具
体的なデータ量に基づいて圧縮処理の効果を判定するこ
とができる。In the fourth invention, the expansion information is the number of change points of the dot format data and the data amount of the dot format data in the process of the expansion processing, and the compression processing is performed based on this specific data amount. The effect of can be determined.
【0145】第5の発明では、第4の発明でのドット形
式のデータのデータ量を、ドット形式のデータのライン
数と1ライン当たりのドット数としており、このさらに
具体的なデータ量に基づいて圧縮処理の効果を判定する
ことができる。In the fifth invention, the data amount of the dot format data in the fourth invention is the number of lines of the dot format data and the number of dots per line, and based on this more specific data amount It is possible to determine the effect of the compression process.
【0146】第6の発明では、前記判定手段が、前記展
開情報に基づいて、前記圧縮手段により圧縮した場合の
予測データ量を算出し、前記予測データ量が、前記展開
処理後のドット形式データのデータ量に対する所定の減
少量を示す基準値以上の場合に、前記圧縮手段により圧
縮すべきと判定し、制御手段は、判定手段が圧縮すべき
と判定した場合、ドット形式データを圧縮手段に圧縮処
理させ、この圧縮処理されたデータを一時記憶手段に記
憶させる。また、判定手段が圧縮すべきでないと判定し
た場合、制御手段は、ドット形式データをそのまま一時
記憶手段に記憶させる制御を行うようにしており、これ
により、圧縮処理すべき対象の判断を柔軟に行うことが
できる。In the sixth invention, the judging means calculates a predicted data amount when compressed by the compressing means based on the expansion information, and the predicted data amount is the dot format data after the expansion processing. When it is equal to or larger than a reference value indicating a predetermined reduction amount with respect to the data amount of, the compression unit determines that compression is to be performed, and when the determination unit determines that compression is to be performed, the control unit applies the dot format data to the compression unit. A compression process is performed, and the compressed data is stored in the temporary storage means. Further, when the determination means determines that the compression should not be performed, the control means performs control to store the dot format data as it is in the temporary storage means, thereby flexibly determining the target to be compressed. It can be carried out.
【0147】第7の発明では、前記判定手段が、前記展
開情報に基づいて、前記圧縮手段により圧縮した場合の
予測データ量を算出し、前記予測データ量が、所定のデ
ータ量を示す基準値以下の場合に、前記圧縮手段により
圧縮すべきと判定し、制御手段は、判定手段が圧縮すべ
きと判定した場合は、ドット形式データを圧縮手段に圧
縮処理させ、この圧縮処理されたデータを一時記憶手段
に記憶させる。また、判定手段が圧縮すべきでないと判
定した場合、制御手段は、ドット形式データをそのまま
一時記憶手段に記憶させる制御を行うようにしており、
これにより、圧縮処理すべき対象の判断を柔軟に行うこ
とができる。In the seventh invention, the judging means calculates a predicted data amount when compressed by the compressing means based on the expansion information, and the predicted data amount is a reference value indicating a predetermined data amount. In the following cases, the compression means determines that the compression means should be compressed, and when the determination means determines that the compression means should be compressed, the dot format data is compressed by the compression means, and the compressed data is processed. It is stored in the temporary storage means. Further, when the determination means determines that the compression should not be performed, the control means performs control to store the dot format data as it is in the temporary storage means,
As a result, it is possible to flexibly determine the target to be compressed.
【0148】第8の発明では、前記判定手段が、前記展
開情報に基づいて、前記圧縮手段により圧縮した場合の
予測データ量を算出し、前記予測データ量が、前記展開
処理後のドット形式データのデータ量に対する所定の減
少割合を示す基準値以上の場合に前記圧縮手段により圧
縮すべきと判定し、制御手段は、判定手段が圧縮すべき
と判定した場合、ドット形式データを圧縮手段に圧縮処
理させ、この圧縮処理されたデータを一時記憶手段に記
憶させる。また、判定手段が圧縮すべきでないと判定し
た場合、制御手段は、ドット形式データをそのまま一時
記憶手段に記憶させる制御を行うようにしており、これ
により、圧縮処理すべき判断を柔軟に行うことができ
る。In the eighth invention, the judging means calculates a predicted data amount when compressed by the compressing means based on the expansion information, and the predicted data amount is the dot format data after the expansion processing. If the determination means determines that the compression is to be performed, and the determination means determines that the compression is to be performed, the dot format data is compressed by the compression means. The compressed data is processed and stored in the temporary storage means. Further, when the determination means determines that the compression should not be performed, the control means performs control to store the dot format data as it is in the temporary storage means, thereby making it possible to flexibly determine the compression processing. You can
【0149】第9の発明では、第6の発明から第8の発
明における基準値が、前記一時記憶手段の空き記憶領域
状態に基づいて変更されるようにしている。従って、こ
の基準値の柔軟な変更により、一時記憶手段を最大限に
活用でき、特に、初期状態において一時記憶手段の記憶
領域は空き領域となっているので有効である。In the ninth invention, the reference value in the sixth invention to the eighth invention is changed based on the free storage area state of the temporary storage means. Therefore, by flexibly changing the reference value, the temporary storage means can be utilized to the maximum, and in particular, the storage area of the temporary storage means is an empty area in the initial state, which is effective.
【0150】第10の発明では、前記圧縮手段が、前記
ドット形式データをランレングス符号化して圧縮するよ
うにしており、これにより具体的な圧縮処理を行うこと
ができる。In the tenth aspect of the invention, the compression means compresses the dot format data by performing run-length encoding, and by doing so, a specific compression process can be performed.
【図1】本発明の第1の実施例である文字処理装置の構
成を示す機能ブロック図。FIG. 1 is a functional block diagram showing the configuration of a character processing device that is a first embodiment of the present invention.
【図2】図1に示す文字処理装置を含む文書処理システ
ムのハードウェア構成を示す図。FIG. 2 is a diagram showing a hardware configuration of a document processing system including the character processing device shown in FIG.
【図3】フォントキャッシュメモリ部6の構成及びキャ
ッシュデータの管理方式を説明する図。FIG. 3 is a diagram illustrating a configuration of a font cache memory unit 6 and a cache data management system.
【図4】描画コマンドの一例を示す図。FIG. 4 is a diagram showing an example of a drawing command.
【図5】図2に示す文書処理システムの全体処理手順を
示す全体フローチャート。5 is an overall flowchart showing an overall processing procedure of the document processing system shown in FIG.
【図6】ステップ104における展開処理手順を示すフ
ローチャート。FIG. 6 is a flowchart showing the expansion processing procedure in step 104.
【図7】ステップ208の文字列描画命令の処理手順を
示すフローチャート。FIG. 7 is a flowchart showing a processing procedure of a character string drawing command in step 208.
【図8】ステップ303の文字出力処理手順を示すフロ
ーチャート。FIG. 8 is a flowchart showing a character output processing procedure of step 303.
【図9】ビットマップデータ生成処理の詳細処理手順を
示すフローチャート。FIG. 9 is a flowchart showing a detailed processing procedure of bitmap data generation processing.
【図10】塗り潰し処理の詳細手順を示すフローチャー
ト。FIG. 10 is a flowchart showing a detailed procedure of a filling process.
【図11】ステップ505によるエッジ描画処理の結果
の一例を示す図。FIG. 11 is a diagram showing an example of a result of edge drawing processing in step 505.
【図12】図11に示すエッジ描画処理を行ったビット
マップイメージに対して塗り潰し処理を行った結果のビ
ットマップイメージを示す図。12 is a diagram showing a bitmap image obtained as a result of performing a filling process on the bitmap image subjected to the edge drawing process shown in FIG.
【図13】ランレングス符号化による圧縮処理を行った
場合における1ラインのデータ構成の一例を示す図。FIG. 13 is a diagram showing an example of a data configuration of one line when a compression process by run-length coding is performed.
【図14】文字列描画命令「文字列描画(3F26 3
648)」の処理が終了した時点におけるフォントキャ
ッシュメモリ部6内の管理状態を示す図。FIG. 14 is a character string drawing command “character string drawing (3F263
648) ”is finished, the diagram shows the management state in the font cache memory unit 6.
【図15】ビットマップデータ記憶領域40でのデータ
格納状態を示す図。FIG. 15 is a diagram showing a data storage state in the bitmap data storage area 40.
【図16】図15に示すビットマップデータにより描か
れるビットマップイメージを示す図。16 is a diagram showing a bitmap image drawn by the bitmap data shown in FIG.
【図17】第2の実施例におけるビットマップデータ生
成処理手順を示すフローチャート。FIG. 17 is a flowchart showing the procedure of bitmap data generation processing in the second embodiment.
【図18】ステップ705におけるエッジ描画処理手順
を示すフローチャート。FIG. 18 is a flowchart showing an edge drawing processing procedure in step 705.
【図19】ステップ809における直線描画処理手順を
示すフローチャート。FIG. 19 is a flowchart showing a straight line drawing processing procedure in step 809.
【図20】エッジ描画方法を説明する図。FIG. 20 is a diagram illustrating an edge drawing method.
1…受付部 2…展開処理部 2a…輪郭描画部 2b
…塗り潰し部 3…圧縮/伸長部 4…判定部 5…フォント格納部 6…フォントキャッシュメモリ部 7…ページメモリ部
10…全体制御部 11…出力制御部 12…記憶部 C…描画コマンド
D…出力データ1 ... Reception unit 2 ... Expansion processing unit 2a ... Contour drawing unit 2b
... Filling section 3 ... Compression / expansion section 4 ... Judgment section 5 ... Font storage section 6 ... Font cache memory section 7 ... Page memory section 10 ... Overall control section 11 ... Output control section 12 ... Storage section C ... Drawing command
D ... Output data
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G06T 9/00 G09G 5/26 R 9377−5H ─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 6 Identification code Internal reference number FI Technical display location G06T 9/00 G09G 5/26 R 9377-5H
Claims (10)
をドット形式データに展開処理し、該展開処理されたド
ット形式データを出力装置に出力する際、一時記憶手段
に展開処理されたドット形式データを一時記憶して該ド
ット形式データの再利用を行う文字処理装置において、 前記展開処理の過程で順次獲得される展開情報に基づい
て、該展開処理されたドット形式データを圧縮すべきか
否かを判定する判定手段と、 前記ドット形式データを圧縮する圧縮手段と、 前記判定手段が圧縮すべきと判定した場合、この判定さ
れたドット形式データの圧縮処理を前記圧縮手段に行わ
せて該圧縮処理されたデータを前記一時記憶手段に記憶
させ、前記判定手段が圧縮すべきでないと判定した場
合、この判定されたドット形式データを前記一時記憶手
段に記憶させる制御を行う制御手段とを具備したことを
特徴とする文字処理装置。1. When the vector format data indicating a figure such as a character is expanded into dot format data and the expanded dot format data is output to an output device, the dot format data expanded into a temporary storage means. In the character processing device for temporarily storing the dot format data and reusing the dot format data, it is determined whether the expanded dot format data should be compressed based on the expansion information sequentially acquired in the expansion process. Judgment means for judging, compression means for compressing the dot format data, and when the judgment means judges that the data should be compressed, the compression means is caused to perform compression processing of the judged dot format data and the compression processing When the determination means determines that the compressed data should not be compressed, the determined dot format data is stored in the temporary storage means. A character processing device, comprising: a control unit that performs control for storing the data in a column.
順次獲得されることを特徴とする前記請求項1記載の文
字処理装置。2. The character processing apparatus according to claim 1, wherein the expansion information is sequentially acquired during a filling process.
順次獲得されることを特徴とする前記請求項1記載の文
字処理装置。3. The character processing apparatus according to claim 1, wherein the expansion information is sequentially acquired during the contour drawing process.
おけるドット形式のデータの変化点数及び該ドット形式
のデータのデータ量であることを特徴とする前記請求項
1乃至前記請求項3記載の文字処理装置。4. The expansion information is the number of change points of dot format data and the data amount of the dot format data in the process of the expansion processing. Character processing unit.
ドット形式のデータのライン数と1ライン当たりのドッ
ト数であることを特徴とする前記請求項4記載の文字処
理装置。5. The data amount of the dot format data is
The character processing device according to claim 4, wherein the number of lines of dot format data and the number of dots per line are included.
て、前記圧縮手段により圧縮した場合の予測データ量を
算出し、 前記予測データ量が、前記展開処理後のドット形式デー
タのデータ量に対する所定の減少量を示す基準値以上の
場合に、前記圧縮手段により圧縮すべきと判定すること
を特徴とする前記請求項1記載の文字処理装置。6. The determination means calculates a predicted data amount when compressed by the compression means based on the expansion information, and the predicted data amount corresponds to the data amount of the dot format data after the expansion processing. 2. The character processing device according to claim 1, wherein when it is equal to or larger than a reference value indicating a predetermined reduction amount, it is determined that the compression means should compress.
て、前記圧縮手段により圧縮した場合の予測データ量を
算出し、 前記予測データ量が、所定のデータ量を示す基準値以下
の場合に、前記圧縮手段により圧縮すべきと判定するこ
とを特徴とする前記請求項1記載の文字処理装置。7. The determination means calculates a predicted data amount when compressed by the compression means based on the expansion information, and when the predicted data amount is equal to or less than a reference value indicating a predetermined data amount. The character processing device according to claim 1, wherein the compression unit determines that the character should be compressed.
て、前記圧縮手段により圧縮した場合の予測データ量を
算出し、 前記予測データ量が、前記展開処理後のドット形式デー
タのデータ量に対する所定の減少割合を示す基準値以上
の場合に前記圧縮手段により圧縮すべきと判定すること
を特徴とする前記請求項1記載の文字処理装置。8. The determination unit calculates a predicted data amount when compressed by the compression unit based on the expansion information, and the predicted data amount corresponds to the data amount of the dot format data after the expansion processing. The character processing device according to claim 1, wherein the compression unit determines that the compression should be performed when the value is equal to or larger than a reference value indicating a predetermined reduction rate.
き記憶領域状態に基づいて前記基準値を変更することを
特徴とする前記請求項7乃至前記請求項9記載の文字処
理装置。9. The character processing device according to claim 7, wherein the determination unit changes the reference value based on a free storage area state of the temporary storage unit.
タをランレングス符号化して圧縮することを特徴とする
前記請求項1記載の文字処理装置。10. The character processing device according to claim 1, wherein the compression means compresses the dot format data by performing run length encoding.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7005249A JPH08194458A (en) | 1995-01-17 | 1995-01-17 | Character processing device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7005249A JPH08194458A (en) | 1995-01-17 | 1995-01-17 | Character processing device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08194458A true JPH08194458A (en) | 1996-07-30 |
Family
ID=11605944
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7005249A Pending JPH08194458A (en) | 1995-01-17 | 1995-01-17 | Character processing device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH08194458A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7643691B2 (en) | 2004-10-26 | 2010-01-05 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
| JP2010009191A (en) * | 2008-06-25 | 2010-01-14 | Oki Data Corp | Image processor |
-
1995
- 1995-01-17 JP JP7005249A patent/JPH08194458A/en active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7643691B2 (en) | 2004-10-26 | 2010-01-05 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
| JP2010009191A (en) * | 2008-06-25 | 2010-01-14 | Oki Data Corp | Image processor |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100252444B1 (en) | Information processing apparatus | |
| US5367620A (en) | Character output device | |
| JP2001203897A (en) | Pattern-matching encoding device and its method | |
| JPH08289107A (en) | Apparatus and method for storing image data in memory | |
| JPH06328785A (en) | Method and apparatus for forming character | |
| JP3327650B2 (en) | Recording device | |
| JPH0916149A (en) | Character processing device, character processing method, and memory | |
| JPH06106810A (en) | Image forming method and apparatus | |
| JPH08194458A (en) | Character processing device | |
| JPH09171564A (en) | Plotting device | |
| JP2000165634A (en) | Apparatus and method for storing image data in memory | |
| JPH08305335A (en) | Character processor | |
| JP2819961B2 (en) | Printing control device | |
| JP3061562B2 (en) | Printing system, information processing device, information processing method, printing device, and printing method | |
| JPH07306669A (en) | Character output device | |
| JPH11198465A (en) | Character output device | |
| JPH07239942A (en) | Pattern generating apparatus and method | |
| JP2972466B2 (en) | Dot pattern compression method and apparatus and output method and apparatus | |
| JPH10198333A (en) | Outline character drawing device | |
| JP2003248834A (en) | Image output device | |
| JPH08254973A (en) | Character output device and method thereof | |
| JP2005165160A (en) | Method of generating scalable font and method of displaying scalable font | |
| JP3210448B2 (en) | Character processing method and apparatus | |
| JP2001109454A (en) | Character processing device | |
| JPH0546148A (en) | Image output device |