JPH0812543B2 - Character charactor compression method - Google Patents

Character charactor compression method

Info

Publication number
JPH0812543B2
JPH0812543B2 JP61093906A JP9390686A JPH0812543B2 JP H0812543 B2 JPH0812543 B2 JP H0812543B2 JP 61093906 A JP61093906 A JP 61093906A JP 9390686 A JP9390686 A JP 9390686A JP H0812543 B2 JPH0812543 B2 JP H0812543B2
Authority
JP
Japan
Prior art keywords
character
common
ram
flag
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP61093906A
Other languages
Japanese (ja)
Other versions
JPS62250487A (en
Inventor
榮一 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP61093906A priority Critical patent/JPH0812543B2/en
Publication of JPS62250487A publication Critical patent/JPS62250487A/en
Publication of JPH0812543B2 publication Critical patent/JPH0812543B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 [発明の技術分野] 本発明は、日本語ワードプロセッサあるいは日本語処
理機能を備えた電子計算機等の情報処理装置に用いられ
るキャラクタ発生器における文字キャラクタの圧縮方式
に関する。
Description: TECHNICAL FIELD OF THE INVENTION The present invention relates to a compression method of character characters in a character generator used in an information processing apparatus such as a Japanese word processor or an electronic computer having a Japanese processing function.

[従来技術とその問題点] 日本語ワードプロセッサあるいは日本語処理機能を備
えた電子計算機等の情報処理装置においては、表示用文
字あるいは印字用文字の文字パターンを発生させるため
にキャラクタ発生器を備えている。このキャラクタ発生
器は、一般にROMにより構成されているが、従来ではJIS
に定められた各文字に対応する文字パターンを記憶する
ようにしているので、ROMの容量が非常に大きくなる。
例えば1文字を「32×32ドット」と構成とした場合、1
文字で「32×32=1024ビット」、約1Mビット必要とし、
3000字を記憶するには 32×32×3000≒3Mビット 必要とする。上記のように従来のキャラクタ発生方法で
は、キャラクタ発生器のROM容量が非常に大きくなり、
小型化する場合に問題となると共にコストも非常に高く
なる。
[Prior art and its problems] An information processing device such as a Japanese word processor or an electronic computer having a Japanese processing function is provided with a character generator for generating a character pattern of display characters or print characters. I have. This character generator is generally composed of ROM, but in the past it was JIS
Since the character pattern corresponding to each character defined in the above is stored, the capacity of the ROM becomes very large.
For example, if one character is composed of “32 × 32 dots”, 1
"32 x 32 = 1024 bits" in characters, about 1 Mbit required,
Storing 3000 characters requires 32 × 32 × 3000 ≒ 3M bits. As described above, in the conventional character generation method, the ROM capacity of the character generator becomes very large,
This becomes a problem when miniaturization is performed, and the cost becomes very high.

[発明の目的] 本発明は上記の点に鑑みてなされたもので、キャラク
タ発生器のメモリ(ROM)容量を非常に少なくでき、情
報処理機器の小型化に有利であると共にコストの低下を
図り得る文字キャラクタの圧縮方式を提供することを目
的とする。
[Object of the Invention] The present invention has been made in view of the above points, and can significantly reduce the memory (ROM) capacity of a character generator, which is advantageous for downsizing of an information processing device and reduces cost. It is an object of the present invention to provide a compression method of a character character to be obtained.

[発明の要点] 本発明は、漢字等の字体を部首別に分離すると共に上
記部首を含む字体を共通部に分離してなる共通キャラク
タをキャラクタメモリに記憶し、複数の共通キャラクタ
の組合わせで字体キャラクタを構成するキャラクタ発生
器において、共通キャラクタをキャラクタメモリに記憶
する際、規則的に形成されている線を圧縮すると共に、
その圧縮処理に応じて共通キャラクタの大きさを可変設
定し、その大きさを示すフラグを各共通キャラクタに対
応させてキャラクタメモリに記憶するようにしたもので
ある。
SUMMARY OF THE INVENTION The present invention stores a common character in a character memory in which character forms such as Chinese characters are separated according to radicals, and character forms including the radicals are separated into common parts, and a combination of a plurality of common characters is stored. In a character generator that constitutes a font character, when storing a common character in a character memory, while compressing lines that are regularly formed,
The size of the common character is variably set according to the compression processing, and a flag indicating the size is stored in the character memory in association with each common character.

また、本発明は、上記共通キャラクタを圧縮する際、
共通キャラクタの大きさを縦あるいは横の一方向のみ規
定して他方を可変設定し、圧縮後、大きさの規定された
方向が一定方向に揃うように共通キャラクタを回転させ
ることを特徴とするとしている。
Further, the present invention, when compressing the common character,
It is said that the size of the common character is defined only in one direction, vertical or horizontal, and the other is variably set, and after compression, the common character is rotated so that the direction in which the size is defined is aligned in a certain direction. There is.

[発明の実施例] 以下、図面を参照して本発明の一実施例を説明する。
まず、第1図により全体の回路構成について説明する。
第1図において、11は基準タイミング信号を発生する発
振回路である。また、12はプログラムカウンタで、ROM
アドレススタックレジスタ13の記憶アドレス及び回路の
動作条件等を参照してプログラムROM14のアドレスを指
定する。このプログラムROM14は、各種制御命令を記憶
しており、プログラムカウンタ12からのアドレス指定に
従って動作し、制御命令をバスラインBL1を介してイン
ストラクションデコーダ15に出力すると共に、第1RAM16
に対するアドレスをバスラインBL2を介してアドレスカ
ウンタ17に出力する。また、プログラムROM14は、バス
ラインBL3を介して自己アドレスをプログラムカウンタ1
2に出力すると共に、第2RAM18に対するアドレスをアド
レスカウンタ19に出力し、更にその他のデータをバスラ
インBL3を介してアンド回路21、比較回路22、演算回路2
3、デコーダ24に出力する。上記第1RAM16及び第2RAM18
は、例えば40×40ビットの容量を有し、第2図(a)、
(b)に示すように構成されている。すなわち、第1RAM
16は、第2図(a)に示すように38×38ビットがキャラ
クタエリア16aで、その上側の2×40ビット及び左側の
2×40ビットがフラグエリア16bとなっている。また、
第2RAM18は、32×32ビットが再生エリア18a、その他の
エリアが記憶エリア18bとなっている。そして、上記第1
RAM16及び第2RAM18から読出されるデータがそれぞれア
ンド回路25、26を介してバスラインBL4に出力されると
共に、アンド回路21の出力がバスラインBL4に出力され
る。このバスラインBL4に出力されたデータは、上記第1
RAM16、第2RAM18、比較回路22、演算回路23に入力され
ると共に、アドレスカウンタ27、レジスタ28、8ビット
構成のスタックレジスタ29a〜29dに入力される。上記ア
ドレスカウンタ27は、そのカウント値によってキャラク
タメモリ、すなわちキャラクタROM31のアドレスを指定
する。このキャラクタROM31は、第3図に示すように共
通キャラクタ部31a及び共通キャラクタ指示メモリ部31b
からなり、詳細を後述するように各キャラクタに対する
共通部分を分離し、補正、圧縮、等の処理を行なったキ
ャラクタデータを記憶するようになっている。そして、
上記キャラクタROM31から読出されるキャラクタデータ
は、アンド回路32を介してバスラインBL4に出力され、
レジスタ28の保持データはアンド回路33を介してバスラ
インBL4に出力される。また、比較回路22の比較出力は
アンド回路34を介してプログラムカウンタ12へ送られ
る。しかして、上記インストラクションデコーダ15は、
プログラムROM14からの制御命令をデコードしてアドレ
スカウンタ17、19、27にそれぞれセット信号Set及び
「+1」信号、第1RAM16及び第2RAM18に書込み信号W、
レジスタ28に書込み信号W及び読出し信号Rを与える。
また、インストラクションデコーダ15は、演算回路23に
演算指令、デコーダ24にクロックパルス、アンド回路2
1、25、26、32、33、34にゲート制御信号を与える。上
記デコーダ24は、プログラムROM14からのデータをデコ
ードしてスタックレジスタ29a〜29dの何れかを選択し、
インストラクションデコーダ15からのクロックパルスを
与える。スタックレジスタ29a〜29dは、バスラインBL4
を介して送られてくるデータをデコーダ24からのクロッ
クパルスに同期して読込み、32ビットの文字データとし
て表示部(図示せず)へ出力する。
[Embodiment of the Invention] An embodiment of the present invention will be described below with reference to the drawings.
First, the overall circuit configuration will be described with reference to FIG.
In FIG. 1, reference numeral 11 is an oscillator circuit for generating a reference timing signal. 12 is a program counter, ROM
The address of the program ROM 14 is specified by referring to the storage address of the address stack register 13 and the operating conditions of the circuit. The program ROM 14 stores various control instructions, operates in accordance with the address designation from the program counter 12, outputs the control instructions to the instruction decoder 15 via the bus line BL1, and outputs the first RAM 16
Is output to the address counter 17 via the bus line BL2. The program ROM 14 stores its own address via the bus line BL3 in the program counter 1
2 and simultaneously outputs the address for the second RAM 18 to the address counter 19 and further outputs other data via the bus line BL3, the AND circuit 21, the comparison circuit 22, and the arithmetic circuit 2.
3, output to the decoder 24. The first RAM 16 and the second RAM 18
Has a capacity of, for example, 40 × 40 bits, and FIG.
It is configured as shown in (b). That is, the first RAM
In FIG. 16, as shown in FIG. 2A, 38 × 38 bits are a character area 16a, and the upper 2 × 40 bits and the left 2 × 40 bits are a flag area 16b. Also,
In the second RAM 18, 32 × 32 bits are a reproduction area 18a and other areas are storage areas 18b. And the above first
The data read from the RAM 16 and the second RAM 18 are output to the bus line BL4 via the AND circuits 25 and 26, respectively, and the output of the AND circuit 21 is output to the bus line BL4. The data output to the bus line BL4 is
The data is input to the RAM 16, the second RAM 18, the comparison circuit 22, and the arithmetic circuit 23, and is also input to an address counter 27, a register 28, and stack registers 29a to 29d having an 8-bit configuration. The address counter 27 specifies the address of the character memory, that is, the character ROM 31, by the count value. The character ROM 31 includes a common character portion 31a and a common character instruction memory portion 31b as shown in FIG.
As will be described in detail later, character data that has been subjected to processing such as separation, correction, compression, and the like for each character is stored. And
The character data read from the character ROM 31 is output to the bus line BL4 via the AND circuit 32,
The data held in the register 28 is output to the bus line BL4 via the AND circuit 33. Further, the comparison output of the comparison circuit 22 is sent to the program counter 12 via the AND circuit 34. Thus, the instruction decoder 15
The control command from the program ROM 14 is decoded to set signals Set and “+1” signals to the address counters 17, 19 and 27 respectively, and write signals W to the first RAM 16 and the second RAM 18,
A write signal W and a read signal R are applied to the register 28.
In addition, the instruction decoder 15 outputs an operation command to the operation circuit 23, a clock pulse to the decoder 24, and an AND circuit 2
1, 25, 26, 32, 33 and 34 are given gate control signals. The decoder 24 decodes the data from the program ROM 14 to select one of the stack registers 29a to 29d,
A clock pulse from the instruction decoder 15 is given. Stack registers 29a to 29d are connected to bus line BL4.
The data sent via the decoder 24 is read in synchronization with the clock pulse from the decoder 24 and is output to the display unit (not shown) as 32-bit character data.

本発明は、漢字等の字体を部首に分離すると共に、字
体(部首を含む)を共通部に分離し、この分離した部首
及び共通部のキャラクタを分離した状態でキャラクタRO
M31に記憶するもので、以下、キャラクタROM31にキャラ
クタデータを記憶する際のキャラクタ共通部分の分離、
補正、圧縮、等の処理について説明する。第4図は、
「木」「禾」「本」という部首を共通部に分離した場合
の例について示したものである。第4図(a)では32×
32ビットの「木」という文字を上下に二分して、C1、C2
の共通キャラクタとしている。第4図(b)では「禾」
という文字を上下に二分して、上側のキャラクタをC3と
しているが、下側のキャラクタは上記「木」の文字にお
けるキャラクタC2が共通に使用される。第4図(c)で
は、「本」という文字を上下に二分して下側のキャラク
タをC4としているが、上側のキャラクタは上記「木」の
文字におけるC1キャラクタが共通に使用される。上記の
ようにして各文字は、共通部が分離される。
The present invention separates a character such as a kanji into radicals, separates a character (including radicals) into a common part, and separates the character of the separated radical and the common part into characters RO.
What is stored in M31.Hereafter, separation of the character common part when storing character data in the character ROM31,
Processing such as correction and compression will be described. Figure 4 shows
This is an example of the case where the radicals “tree”, “blunt”, and “book” are separated into a common part. In FIG. 4 (a), 32 ×
The 32-bit "tree" character is divided into two parts, C1 and C2.
Is a common character. In Fig. 4 (b), "He"
Is divided into upper and lower parts, and the upper character is C3, but the lower character is commonly used as the character C2 in the above-mentioned "tree" character. In FIG. 4 (c), the character "book" is divided into upper and lower parts and the lower character is C4, but the upper character is commonly used as the C1 character in the above "tree" character. As described above, the common part of each character is separated.

上記のようにして各文字の共通部を分離して共通キャ
ラクタを作成した後、第5図に示すようにキャラクタの
補正及び圧縮処理を行なう。字体には、線の初め及び終
りの部分に、あるルールに従った形がある。本発明で
は、このルールに従った形については共通キャラクタの
記憶部に記憶させず、キャラクタ発生時に補正を行なっ
ている。そして、字体キャラクタの縦列及び横列に同じ
状態のキャラクタが続く場合に、同じキャラクタを省略
して圧縮する。第5図(a)は、共通キャラクタC1につ
いて縦線及び横線の補正を行なって補正キャラクタC21
とし、更に16×16ビットに縦横圧縮して圧縮キャラクタ
C31としている。この場合、圧縮キャラクタC31は、14×
14ビットをキャラクタエリア41とし、上側の2ビットを
縦フラグエリアVF、左側の2ビットを横フラグエリアHF
とし、圧縮部分に対応させて省略数フラグを立て、圧縮
した位置及び数を示す。そして、キャラクタ発生時にフ
ラグ数によって正しい形を再現する。第5図(b)は共
通エリアC2を補正して補正キャラクタC22とし、その
後、キャラクタビット及びビット間隔を2段階で圧縮し
て圧縮キャラクタC32、C42としている。第5図(c)は
共通キャラクタC3の補正、圧縮例を示したもので、第5
図(b)と同様の補正、圧縮を行なっている。第5図
(d)は共通キャラクタC4を補正して補正キャラクタC2
4とした後、圧縮時に時計方向に90゜回転し、16×20ビ
ットの圧縮キャラクタC34としている。字体分離後の共
通キャラクタの形状は、色々な形状になるが、この共通
キャラクタの大きさを規定すると共通キャラクタの基本
サイズが大きくなるので、共通キャラクタの大きさを縦
及び横の両方向を可変設定できるようにし、その大きさ
を示すフラグをキャラクタ内に持たせることにより、メ
モリの使用効率を上げることができる。また、共通キャ
ラクタの一方向(縦あるいは横)のみ規定し、他方のキ
ャラクタ長を可変設定できるようにしても、メモリの使
用効率を上げることができる。但し、このように共通キ
ャラクタの大きさを縦あるいは横の一方向を規定した場
合、その圧縮の状態に応じて縦方向あるいは横方向に長
いキャラクタが有り、全体(全共通キャラクタ)を記憶
する場合にメモリ空間の使用効率が悪くなる。この場
合、規定した方向が一定方向に揃うように、他方向に長
い共通キャラクタを90゜回転(縦、横交換)させること
により、メモリ空間の使用効率を上げることができる。
このとき回転したキャラクタの判別は、共通キャラクタ
内に持つ方法と、共通キャラクタの組合わせにより字体
を形成する文字の構成メモリに持つ方法がある。本実施
例では、回転キャラクタの判別を構成メモリに持つ場合
について示してある。
After the common part of each character is separated to create a common character as described above, the character is corrected and compressed as shown in FIG. Fonts have shapes at the beginning and end of the line according to certain rules. According to the present invention, the form according to this rule is not stored in the storage section of the common character, but is corrected when the character occurs. Then, when a character in the same state continues in the vertical and horizontal rows of the font character, the same character is omitted and compressed. FIG. 5 (a) shows a corrected character C21 obtained by correcting vertical and horizontal lines for the common character C1.
And then compress it vertically and horizontally to 16 × 16 bits and compress it.
C31. In this case, the compressed character C31 is 14 ×
The 14 bits are the character area 41, the upper 2 bits are the vertical flag area VF, and the left 2 bits are the horizontal flag area HF.
The abbreviation number flag is set in correspondence with the compressed portion, and the position and number of compression are indicated. Then, when a character is generated, a correct shape is reproduced according to the number of flags. In FIG. 5B, the common area C2 is corrected into a corrected character C22, and thereafter, the character bits and the bit intervals are compressed in two stages to obtain compressed characters C32 and C42. FIG. 5C shows an example of correction and compression of the common character C3.
The same correction and compression as in FIG. FIG. 5D shows a corrected character C2 obtained by correcting the common character C4.
After setting it to 4, it rotates 90 ° clockwise during compression to form a 16 × 20-bit compressed character C34. The shape of the common character after the font separation becomes various shapes, but if the size of the common character is defined, the basic size of the common character becomes large, so the size of the common character is variably set in both the vertical and horizontal directions. By providing a flag indicating the size of the character in the character, the efficiency of memory use can be improved. Further, even if only one direction (vertical or horizontal) of the common character is defined and the length of the other character can be variably set, the memory use efficiency can be improved. However, when the size of the common character is defined in one of the vertical and horizontal directions, there are characters that are long in the vertical or horizontal direction depending on the compression state, and the entire character (all common characters) is stored. In addition, the use efficiency of the memory space is deteriorated. In this case, the common space long in the other direction is rotated by 90 ° (vertical / horizontal exchange) so that the specified direction is aligned with the fixed direction, so that the memory space use efficiency can be increased.
At this time, the rotated character can be discriminated by a method in the common character or a method in the character configuration memory for forming a character by combining the common characters. In this embodiment, a case is shown in which the configuration memory has the determination of the rotating character.

第6図は補正キャラクタ例を示したもので、縦線、横
線、コーナーにおいて補正が行なわれる。縦線補正は、
頭部及び終部において行なわれ、黒丸印で示すように頭
部では側方に突出た1ビットが省略され、終部では左右
のビットが対称となるように1ビット付加される。横線
は、「とめ」の部分が省略されるもので、「とめ」の部
分の横線が5ビット以上では3補正、横線が4ビットの
場合あるいは間隔が2ビットでは2補正、横線が3ビッ
トでは1補正が行なわれる。コーナーでは、頭部におい
て突出ている1ビット分が省略され、終部では1ビット
不足部分が追加される。
FIG. 6 shows an example of a correction character, in which correction is performed on a vertical line, a horizontal line, and a corner. Vertical line correction
It is performed at the head and the end. One bit protruding laterally is omitted at the head as shown by a black circle, and one bit is added so that the left and right bits are symmetrical at the end. In the horizontal line, the "stop" portion is omitted, and when the horizontal line of the "stop" portion is 5 bits or more, 3 corrections are performed. When the horizontal line is 4 bits or the interval is 2 bits, 2 corrections are performed. One correction is performed. At the corner, one bit projecting at the head is omitted, and at the end, a one-bit lacking part is added.

第7図は、縦、横圧縮例を示したもので、斜線部分が
圧縮部分である。第8図は、左斜め、右斜めの斜め圧縮
(縦斜めのみ)の例を示したもので、矢印方向が圧縮方
向を示している。第9図は、二重圧縮の例で「亜」とい
う部首について示したものである。「亜」という文字を
再現する場合は、縦及び横の再現を行ない、「悪」とい
う文字を再現する場合は、横のみ再現し、他の共通キャ
ラクタ「心」と組合わせて「悪」の文字を形成する。字
体分離の中には、同じキャラクタの縦、横の大きさのみ
が異なるものが多くあり、これらをそれぞれの共通キャ
ラクタで持たず、二重圧縮により効率を上げることがで
きる。
FIG. 7 shows an example of vertical and horizontal compression, in which the hatched portion is the compressed portion. FIG. 8 shows an example of diagonal left and right diagonal compression (only vertical diagonal), and the direction of the arrow indicates the compression direction. FIG. 9 shows the radical "A" in the double compression example. When reproducing the character "A", vertical and horizontal reproduction is performed. When reproducing the character "evil", only the horizontal is reproduced. Form letters. In many font separations, only the vertical and horizontal sizes of the same character are different, and these are not possessed by each common character, and the efficiency can be improved by double compression.

第10図は、センタリング圧縮の例を示したものであ
る。文字の大きさは、同じ枠(32×32ドット)を設定し
ても第10図に示すように文字によって異なり、枠内にス
ペースができる字体もある。これらの字体の共通キャラ
クタは、一辺によせて共通キャラクタを圧縮し(ドット
のない列行を省略)、再生時に自動センタリングする。
FIG. 10 shows an example of centering compression. Even if the same frame (32 x 32 dots) is set, the size of the character differs depending on the character as shown in Fig. 10, and there are some fonts in which there is a space in the frame. The common characters in these fonts are compressed on one side (column rows without dots are omitted) and are automatically centered during reproduction.

次に上記共通キャラクタの圧縮処理の詳細について説
明する。圧縮キャラクタには、第11図に示すようにキャ
ラクタエリア41に上側に2ビットの縦フラグエリアVF、
左側に2ビットの横フラグエリアHFが設けられる。そし
て、上記縦フラグエリアVFには、第1列目にV11,V12,…
V1n,…ビット、第2列目にV21,V22,…V2n,…ビットが立
てられ、横フラグエリアHFには、第1列目にH11,H12,…
H1n,…ビット、第2列目にH21,H22,…H2n,…ビットが立
てられる。また、縦フラグエリアVFと横フラグエリアHF
との共通エリアには、F1、F2、F3、F4の4ビットのフラ
グが設けられる。F4フラグは、第12図(a)に示すよう
に縦フラグと横フラグとの組合わせによりビット省略数
(r)を示し、F3フラグは、同図(b)に示すように
「0」が縦、横の圧縮、「1」が斜め圧縮を示してい
る。また、F1、F2フラグは、第12図(c)に示すように
その組合わせにより、縦長ビットの数を示している。
Next, the details of the common character compression processing will be described. As shown in FIG. 11, the compressed character includes a 2-bit vertical flag area VF above the character area 41, as shown in FIG.
A 2-bit horizontal flag area HF is provided on the left side. Then, in the vertical flag area VF, V11, V12, ...
V1n,... Bits and V21, V22,... V2n,... Bits are set in the second column, and H11, H12,.
H1n, ... Bits, and H21, H22, ... H2n, ... Bits are set in the second column. Also, vertical flag area VF and horizontal flag area HF
Are provided with 4-bit flags of F1, F2, F3, and F4. The F4 flag indicates the number of omitted bits (r) by the combination of the vertical flag and the horizontal flag as shown in FIG. 12 (a), and the F3 flag indicates “0” as shown in FIG. 12 (b). Vertical and horizontal compression, "1" indicates diagonal compression. Also, the F1 and F2 flags indicate the number of vertically long bits by the combination as shown in FIG. 12 (c).

しかして、上記キャラクタROM31の共通キャラクタ指
示メモリ部31bには、第13図に示すようにB0〜B15の16ビ
ットの共通キャラクタ指示データが記憶される。この指
示データは、B0〜B10ビットに共通キャラクタ部31aのア
ドレス(共通キャラクタの種類が2000の場合)、B11ビ
ットに回転フラグ、B12ビットに二重フラグ、B13〜B15
ビットに共通キャラクタ数/位置フラグが書込まれる。
このB13〜B15ビットと共通キャラクタ数との関係(共通
キャラクタ指示メモリ部31bの1番目)を第14図に、B13
〜B15ビットに対する位置フラグの内容(共通キャラク
タ指示メモリ部31bの2番目以降)を第15図に示す。ま
た、B11ビット及びフラグF1、F2とそれに対応する型と
の関係を第16図(a)、(b)に示す。更にB11ビット
及びF1、F2フラグと圧縮キャラクタのx,yビット数との
関係を第17図に示す。
Thus, the 16-bit common character designation data B0 to B15 is stored in the common character designation memory 31b of the character ROM 31 as shown in FIG. The instruction data includes the address of the common character part 31a in the B0 to B10 bits (when the type of the common character is 2000), the rotation flag in the B11 bit, the double flag in the B12 bit, and the B13 to B15
The common character number / position flag is written in the bit.
The relationship between the B13 to B15 bits and the number of common characters (first in the common character instruction memory unit 31b) is shown in FIG.
FIG. 15 shows the contents of the position flag for bits B1 to B15 (from the second character onward in the common character instruction memory unit 31b). The relationship between the B11 bit and the flags F1 and F2 and the corresponding types is shown in FIGS. 16 (a) and 16 (b). Further, FIG. 17 shows the relationship between the B11 bit and the F1 and F2 flags and the numbers of x and y bits of the compressed character.

次に上記実施例の動作をフローチャートを参照して説
明する。まず、文字を再生する場合の全体の概略動作を
第18図により説明する。文字を再生する場合、プログラ
ムROM14は、最初にステップS1に示すように第2RAM18を
クリアする。次いでステップS2においてキャラクタROM3
1から共通キャラクタ指示メモリ部31bの内容を第2RAM18
に読出す。今例えば「禾」という文字を再生するものと
すれば、そのアドレスデータをアドレスカウンタ27にセ
ットして共通キャラクタ指示メモリ部31bから第19図に
示すように「禾」に対するデータを第2RAM18に読出す。
次いでステップS3において第1RAM16をクリアした後ステ
ップS4に進み、第2RAM18に読出した共通キャラクタ指示
データに応じて共通キャラクタ部31aにおける「禾」に
関する共通キャラクタを第19図(b)に示すように第1R
AM16に読出す。そして、ステップS5に示すように縦フラ
グエリアVF及び横フラグエリアHFのフラグデータから共
通キャラクタの大きさを調べる。次いでステップS6にお
いてF3フラグを比較回路22に読出して“0"か否かを判断
し、“0"であればステップS7に進んで第19図(c)に示
すように第1RAM16に記憶している共通キャラクタに対
し、横フラグに応じて横圧縮再生処理を実行する。ま
た、F3フラグが“0"でない場合は、ステップS8に進んで
縦フラグ及び横フラグに応じて斜め圧縮再生処理を実行
する。上記ステップS7あるいはステップS8の処理を終了
するとステップS9に進んで第2RAM18に記憶している共通
キャラクタ指示データのB12ビット(二重フラグ)を比
較回路22に読出して“1"であるか否かを判断し、“1"で
あればステップS10に進んで第19図(d)に示すように
縦フラグに応じて縦圧縮再生処理を実行する。このステ
ップS10の処理を終了した場合、あるいは上記ステップS
9でB12ビットが“1"でないと判断された場合は、ステッ
プS11に示す補正キャラクタの再生処理を実行する。そ
の後、ステップS12に進み、第19図(e)に示すように
第1RAM16の共通キャラクタから縦フラグ及び横フラグを
除去する。次いでステップS13aに進み、共通キャラクタ
指示データのB13〜B15ビット(共通キャラクタ数/位置
フラグ)により第1RAM16の共通キャラクタを第19図
(f)に示すように第2RAM18に書込む。そして、ステッ
プS14において第2RAM18内の共通キャラクタを第19図
(g)に示すようにセンタリング処理し、その後、ステ
ップS15に進んでその共通キャラクタをスタックレジス
タ29a〜29dに読出し、このスタックレジスタ29a〜29dか
ら32ビットのキャラクタデータとして順次表示部へ出力
する。
Next, the operation of the above embodiment will be described with reference to a flowchart. First, the overall schematic operation of reproducing characters will be described with reference to FIG. When reproducing characters, the program ROM 14 first clears the second RAM 18 as shown in step S1. Next, in step S2, the character ROM3
The contents of the common character instruction memory unit 31b from 1 to the second RAM 18
Read to. Assuming that, for example, the character "He" is to be reproduced, the address data is set in the address counter 27, and the data for "He" is read from the common character instruction memory unit 31b into the second RAM 18 as shown in FIG. put out.
Next, in step S3, after the first RAM 16 is cleared, the process proceeds to step S4, where the common character relating to “H” in the common character portion 31a is read out according to the common character instruction data read into the second RAM 18 as shown in FIG. 19 (b). 1R
Read to AM16. Then, as shown in step S5, the size of the common character is checked from the flag data in the vertical flag area VF and the horizontal flag area HF. Next, in step S6, the F3 flag is read out to the comparison circuit 22 to determine whether or not it is "0". If "0", the process proceeds to step S7, where it is stored in the first RAM 16 as shown in FIG. 19 (c). The horizontal compression / reproduction processing is executed for the existing common character according to the horizontal flag. If the F3 flag is not "0", the process proceeds to step S8 to execute the oblique compression reproduction process according to the vertical flag and the horizontal flag. When the processing of the above step S7 or step S8 is completed, the process proceeds to step S9, where the B12 bit (double flag) of the common character instruction data stored in the second RAM 18 is read to the comparison circuit 22 and whether or not it is "1". If it is "1", the process proceeds to step S10 to execute the vertical compression reproduction process according to the vertical flag as shown in FIG. 19 (d). When the processing in step S10 is completed, or when step S10
If it is determined in step 9 that the B12 bit is not “1”, the process of reproducing the corrected character shown in step S11 is performed. Thereafter, the process proceeds to step S12, and the vertical flag and the horizontal flag are removed from the common character of the first RAM 16 as shown in FIG. 19 (e). Next, in step S13a, the common character in the first RAM 16 is written into the second RAM 18 as shown in FIG. 19 (f) by using bits B13 to B15 (common character number / position flag) of the common character instruction data. Then, in step S14, the common character in the second RAM 18 is subjected to centering processing as shown in FIG. 19 (g), after which, in step S15, the common character is read into the stack registers 29a to 29d, and the stack register 29a to 29d. The data is sequentially output from the 29d as 32-bit character data to the display unit.

次に上記第18図のフローチャートにおける主要ステッ
プの詳細を説明する。第20図は、ステップS4の詳細につ
いて示したものである。まず、ステップS41において第2
RAM18に記憶している共通キャラクタアドレス(B0〜B1
0)で指定される共通キャラクタ部31aの内容(指定アド
レスの1行目)をチェックする。そして、ステップS42
に示すようにその上位2ビット(F1、F2)とB11ビット
の回転フラグを見て共通キャラクタの型を決める。例え
ば共通キャラクタ指示データが「0110010001 110100」
の場合、B0〜B10ビットの共通キャラクタアドレス「011
0010001」により共通キャラクタ部31aがアドレス指定さ
れ、その1行目のデータが例えば「10011000」であった
とすれば、その上位2ビット(F1、F2)とB11の回転フ
ラグから「B11、F1、F2=110」となる。B11、F1、F2が
「110」の場合、第16図(a)の関係から共通キャラク
タの型は、D型であると判断される。そして、第20図の
ステップS43に示すように第1RAM16に対し、左上から下
へという順番で型(この例ではD型)に従い、指定され
た共通キャラクタ部31aの内容を8行ずつ書込む。
Next, details of main steps in the flowchart of FIG. 18 will be described. FIG. 20 shows details of step S4. First, in step S41, the second
Common character address (B0 to B1) stored in RAM18
Check the contents of the common character portion 31a specified in (0) (the first line of the specified address). Then, step S42
As shown in (1), the type of the common character is determined by checking the upper two bits (F1, F2) and the rotation flag of the B11 bit. For example, the common character instruction data is "0110010001 110100"
, The common character address of bits B0 to B10 is "011
If the common character part 31a is addressed by "0010001" and the data in the first line is, for example, "10011000", the upper two bits (F1, F2) and the rotation flag of B11 indicate "B11, F1, F2". = 110 ". When B11, F1 and F2 are “110”, the type of the common character is determined to be D type from the relationship of FIG. 16 (a). Then, as shown in step S43 of FIG. 20, the contents of the designated common character portion 31a are written into the first RAM 16 in order from the upper left to the lower in accordance with the type (D type in this example) by 8 lines.

その後、第21図に詳細を示すステップS5の処理を実行
する。まず、ステップS51において上記縦長可変フラグF
1、F2と回転フラグB11により、第17図の関係から共通キ
ャラクタの大きさ(x、y)を判断する。例えばB11=
0、F1=1、F2=0の場合、共通キャラクタの大きさ
は、(x,y)=(16,20)となる。次いでステップS52に
進み、第1RAM16に記憶している共通キャラクタの縦フラ
グエリアVFと倍長フラグF4とにより、第12図(a)に示
す関係からその省略ビット数を加算して再生後の横幅の
増大量Δxを求める。その後、ステップS53において、
「x+Δx−2」の演算を演算回路23により行なって再
生後の新たなxを求める。例えば、横幅の増大量Δxが
12ビットであるとすれば、新たなxは「x=16+12−2
=26」となる。続いてステップS54において横フラグエ
リアHFと倍長フラグF4により、第12図(a)に示す関係
からその省略ビット数を加算して再生後の横幅の増大量
Δyを求める。その後、ステップS55において、「y+
Δy−2」の演算を演算回路23により行なって再生後の
新たなyを求める。例えば、縦幅の増大量Δyが4ビッ
トであるとすれば、新たなyは「y=20+4−2=22」
となる。その後、上記した判断ステップS6を経て横圧縮
再生ステップS7に進む。
After that, the process of step S5 shown in FIG. 21 is executed. First, in step S51, the vertically variable flag F is set.
The size (x, y) of the common character is determined from the relationship shown in FIG. 17 based on 1, F2 and the rotation flag B11. For example, B11 =
When 0, F1 = 1, and F2 = 0, the size of the common character is (x, y) = (16, 20). Next, in step S52, the vertical flag area VF of the common character and the double length flag F4 stored in the first RAM 16 are added to the omitted bit number from the relationship shown in FIG. The increase amount Δx of Then, in step S53,
The calculation circuit 23 performs the calculation of "x + Δx-2" to obtain a new x after reproduction. For example, if the width increase Δx is
If it is 12 bits, the new x is "x = 16 + 12-2
= 26 ". Subsequently, in step S54, by using the horizontal flag area HF and the double-length flag F4, the number of omitted bits is added from the relationship shown in FIG. Then, in step S55, “y +
.DELTA.y-2 "is calculated by the arithmetic circuit 23 to obtain a new y after reproduction. For example, if the increase amount .DELTA.y of the vertical width is 4 bits, the new y is "y = 20 + 4-2 = 22".
Becomes Thereafter, the process proceeds to the horizontal compression reproduction step S7 via the above-described determination step S6.

上記ステップS7は、第22図に詳細を示すようにステッ
プS71〜S79からなり、ステップS71〜75で横圧縮再生の
行なわれる列を捜すと共に処理の終了を判断し、ステッ
プS76〜S79で横圧縮再生を行なっている。しかして、先
ずステップS71において共通キャラクタの列位置を示す
値lとして「3」をセットする。次いでステップS72に
進み、第1RAM16のl列目にある縦フラグV1 l−2、V2 l
−2、この場合にはV11、V21を読出す。そして、ステッ
プS73に示すように「V1 l−2,V2 l−2=0,0」か否かを
判断し、「0,0」であればステップS74に進んでlの値を
「+1」する。その後、ステップS75においてlの値が
「35」に達したか否か、つまり、キャラクタエリア41の
最後の列を過ぎたか否かを判断し、lが「35」に達して
いなければステップS72に戻る。以下、同様の処理を繰
返し、第23図(a)に示すようにlの値が「6」の時に
縦フラグV24の“1"が検出されると、ステップS73の判断
結果がNOとなり、ステップS76に進んで倍長フラグF4と
l列目の縦フラグにより第12図(a)の関係から再生量
rを求める。例えば第23図(a)に示すようにl=6に
おいて、V1n=0、V2n=1、F4=0、の場合には、r=
2となる。そして、ステップS77において、まず、第1RA
M16の33列目のデータを34列目に書き、以下m列目のデ
ータをm+1列目に書き、l列目をl+1列目に書いて
終わる。次いでステップS78においてlの値を「+
1」、再生量rを「−1」した後、ステップS79に進ん
で再生量rが「0」か否か判断し、「0」でなければス
テップS77に戻る。例えば第23図(a)の6列目のD部
を再生する場合には、上記のステップS77の処理により
第23図(b)に示すようにF部が9列目、E部が8列
目、D部が7列目に書かれる。この場合、縦フラグも一
緒に書かれる。そして、ステップS78の処理により、
「l=7、r=1」となる。「r=1」の場合には、ス
テップB79を経てステップS77に戻り、上記と同様の処理
が行なわれ、その結果、共通キャラクタ、第23図(b)
の状態から同図(c)に示すように再生され、「l=
8、r=0」となる。再生量rが「0」になると、上記
D部の再生処理が終了し、ステップS79からステップS72
に戻って次に横圧縮再生を行なう列をl列目、この場合
には8列目からサーチする。そして、上記の動作の繰返
しにより、縦フラグの立っている列に対する全ての横圧
縮再生を終了し、lの値が「35」に達すると次のステッ
プS8に進んで斜め圧縮再生処理を行なう。
The above step S7 is composed of steps S71 to S79 as shown in detail in FIG. 22, and in steps S71 to S75, a row in which horizontal compression reproduction is performed is searched, and the end of the process is determined.In steps S76 to S79, horizontal compression is performed. Playing. Then, first, in step S71, "3" is set as the value 1 indicating the column position of the common character. Next, the process proceeds to step S72, in which the vertical flags V1 1-2, V2 l in the first column of the first RAM 16 are set.
-2. In this case, V11 and V21 are read. Then, as shown in step S73, it is determined whether or not “V1 l−2, V2 l−2 = 0,0”. If “0,0”, the process proceeds to step S74 and the value of l is “+1”. To do. Thereafter, it is determined whether or not the value of l has reached "35" in step S75, that is, whether or not the last row of the character area 41 has been passed. If l has not reached "35", the process proceeds to step S72. Return. Hereinafter, the same processing is repeated, and when the value of 1 is “6” and “1” of the vertical flag V24 is detected as shown in FIG. 23 (a), the determination result of step S73 is NO, and Proceeding to S76, the reproduction amount r is obtained from the relationship shown in FIG. 12A using the double-length flag F4 and the vertical flag in the first column. For example, as shown in FIG. 23 (a), when 1 = 6, V1n = 0, V2n = 1, and F4 = 0, r =
It becomes 2. Then, in step S77, first, the first RA
The data in the 33rd column of M16 is written in the 34th column, the data in the mth column is written in the m + 1th column, and the 1st column is written in the l + 1th column. Next, in step S78, the value of l is set to “+”.
After "1" and the reproduction amount r is "-1", the process proceeds to step S79 to determine whether the reproduction amount r is "0". If it is not "0", the process returns to step S77. For example, when reproducing the D portion in the sixth column of FIG. 23 (a), the F portion is in the ninth column and the E portion is in the eighth column as shown in FIG. The eye and the D part are written in the seventh column. In this case, the vertical flag is also written. Then, by the process of step S78,
"L = 7, r = 1". If "r = 1", the process returns to step S77 via step B79 and the same processing as described above is performed. As a result, the common character, FIG. 23 (b).
Is reproduced from the state shown in FIG.
8, r = 0 ”. When the reproduction amount r becomes “0”, the reproduction processing of the D section is completed, and the process from step S79 to step S72 is completed.
And the next column to be subjected to horizontal compression reproduction is searched from the first column, in this case, the eighth column. Then, by repeating the above operation, all the horizontal compression reproduction for the column in which the vertical flag is set is completed, and when the value of l reaches "35", the process proceeds to the next step S8 to perform the diagonal compression reproduction processing.

この斜め圧縮再生の処理は、詳細を第24図(a)に示
すようにステップS81〜S85により再生を行なう列をサー
チし、ステップS86以降において再生を行なう部分をサ
ーチする。まず、ステップS81においてlの値を「3」
にセットした後、ステップS82において第1RAM16のl列
目にある縦フラグV1 l−2、V2 l−2、この場合にはV1
1、V21を読出す。そして、ステップS83に示すように「V
1 l−2,V2 l−2=0,0」か否かを判断し、「0,0」であ
ればステップS84に進んでlの値を「+1」する。その
後、ステップS85においてlの値が「35」に達したか否
か、つまり、キャラクタエリア41の最後の列を過ぎたか
否かを判断し、lが「35」に達していなければステップ
S82に戻る。以下、同様の処理を繰返し、例えば第25図
に示すようにlの値が「6」の時に縦フラグV14の“1"
が検出されると、ステップS83の判断結果がNOとなり、
ステップS86に進んで「i=1、m(1)=3」にセッ
トする。次にステップS87において第1RAM16のl列m
(i)行目の値(Z)を読出し、ステップS88において
「Z=0」か否かを判断する。「Z=0」であれば、ス
テップS89に進んでm(i)の値を「+」し、その後、
ステップS89において「m(i)=35」になったか否か
を判断し、「m(i)=35」に達していなければステッ
プS87に戻る。そして、このステップS87において第1RAM
16のl列m(i)行目の値(Z)を読出してチェック
し、「Z=0」でなければステップS811へ進んでm
(i)の値を「+1」した後n(i)に入力する。その
後、ステップS812に進んで第1RAM16のl列n(i)行目
の値(Z)を読出し、ステップS813において「Z=0」
か否かを判断する。「Z=0」でなければステップS814
に進んでn(i)の値を「+1」し、ステップS812に戻
る。そして、上記ステップS813において「Z=0」であ
ると判断されると、ステップS815に進んでn(i)の値
を「−1」し、次いでステップS816においてiの値を
「+1」する。更にステップS817においてn(i−1)
の値を「+1」した後、ステップS87に戻る。今、第25
図に示すように6列目(l=6)に注目しているとする
と、m(i),n(i)は「1」の始まる行(斜め圧縮再
生の開始行)及び「1」の終わる行(斜め圧縮再生の終
了行)を表わしている。以下、同様の処理を繰返し、ス
テップS810において「m(i)=35」になったと判断さ
れると、第24図(b)に示すステップS818以下の処理を
実行する。
In the processing of the oblique compression reproduction, as shown in detail in FIG. 24 (a), a column to be reproduced is searched in steps S81 to S85, and a portion to be reproduced is searched in step S86 and subsequent steps. First, in step S81, the value of l is set to “3”.
After that, in step S82, the vertical flags V1 1-2, V2 1-2 in the first column of the first RAM 16, in this case V1
1. Read V21. Then, as shown in step S83, "V
It is determined whether or not 1 1−2, V2 1−2 = 0,0 ”. If“ 0,0 ”, the process proceeds to step S84 and the value of 1 is incremented by“ +1 ”. Thereafter, in step S85, it is determined whether or not the value of l has reached "35", that is, whether or not the last line of the character area 41 has been passed, and if l has not reached "35", the process proceeds to step S85.
Return to S82. Hereinafter, the same processing is repeated, for example, when the value of l is “6” as shown in FIG.
Is detected, the determination result of step S83 becomes NO,
Proceeding to step S86, "i = 1, m (1) = 3" is set. Next, in step S87, the 1st row m of the first RAM 16
(I) The value (Z) in the row is read, and it is determined in step S88 whether or not “Z = 0”. If “Z = 0”, the process proceeds to step S89, where the value of m (i) is “+”.
In step S89, it is determined whether or not “m (i) = 35” is reached. If “m (i) = 35” is not reached, the process returns to step S87. Then, in this step S87, the first RAM
The value (Z) in the 16th l column, m (i) row is read and checked, and if not “Z = 0”, the flow advances to step S811 to m
After "+1" is added to the value of (i), it is input to n (i). Then, the process proceeds to step S812, where the value (Z) of the l-th column, n (i) -th row of the first RAM 16 is read out, and “Z = 0” in step S813.
It is determined whether or not. If not “Z = 0”, step S814
Then, the value of n (i) is incremented by "+1" and the process returns to step S812. If it is determined in step S813 that "Z = 0", the flow advances to step S815 to set the value of n (i) to "-1", and then to step S816 to set the value of i to "+1". Further, in step S817, n (i-1)
After the value of is incremented by "+1", the process returns to step S87. Now the 25th
As shown in the figure, if attention is paid to the 6th column (l = 6), m (i) and n (i) are the lines starting with "1" (starting line for oblique compression reproduction) and "1". This shows the end line (end line of diagonal compression reproduction). Thereafter, the same processing is repeated, and when it is determined in step S810 that "m (i) = 35", the processing in step S818 and subsequent steps shown in FIG. 24 (b) is executed.

まず、ステップS818において「j」の値を「1」に設
定した後、ステップS819に進んで第25図(b)に示すよ
うに第1RAM16のm(j),n(j)行目の点の回りの点、
すなわち〜の点を調べる。但し、上記の点がフラグ
エリアVF、HFにある場合は「0」とする。そして、ステ
ップS820において再生の方向α(j)を判断し、次いで
ステップS821で「j」の値を「+1」する。その後、ス
テップS822に進み、「i」が「j」に等しくなったか否
かを判断し、等しくなければステップS819に戻る。以
下、「i=j」になるまで同様の動作を繰返し、再生の
方向α(j)を順次判断する。この再生の方向α(j)
の判断は、第26図(a)〜(d)に示すようにして判断
する。すなわち、第26図(a)に示すように〜でA,
B,C、第26図(b)に示すように〜でD,E,Fを決め、
更に第26図(c)に示すようにA,B,CとD,E,Fの組合わせ
でα(j)を判断する。この場合、α(j)の値「0,1,
2」とその方向との関係は、第26図(d)に示すように
設定されている。
First, after setting the value of “j” to “1” in step S818, the process proceeds to step S819, and the point on the m (j), n (j) th line of the first RAM 16 as shown in FIG. A point around
That is, check the points. However, when the above point is in the flag areas VF and HF, it is set to “0”. Then, in step S820, the reproduction direction α (j) is determined, and then, in step S821, the value of “j” is incremented by “+1”. Thereafter, the process proceeds to step S822, where it is determined whether “i” has become equal to “j”. If not, the process returns to step S819. Hereinafter, the same operation is repeated until “i = j”, and the reproduction direction α (j) is sequentially determined. Direction of this playback α (j)
Is determined as shown in FIGS. 26 (a) to (d). That is, as shown in FIG.
B, C, as shown in FIG. 26 (b), decide D, E, F with
Further, as shown in FIG. 26 (c), α (j) is judged by the combination of A, B, C and D, E, F. In this case, the value of α (j) is “0,1,
The relationship between “2” and the direction is set as shown in FIG. 26 (d).

しかして、上記ステップS822で「i=j」になったと
判断されるとステップS823に進み、l列目の横圧縮再生
を行なう。この横圧縮再生は、第27図(a)に示すよう
に前記したステップS7と同様にして行なわれる。なお、
上記第27図(a)において、Aエリアは再生により生じ
た範囲であり、Bエリアは再生に伴い移動する範囲であ
る。次いでステップS824に進んで「j」の値を「1」に
設定した後、ステップS825において「α(j)=0」か
否かを判断する。「α(j)=0」でなければステップ
S826に進み、斜めへの再生に伴い位置の変わる範囲、す
なわち、繋がっている範囲を、Aエリア、Bエリアに分
けて確認する。以下、第24図(c)のステップS827以降
の処理を実行する。また、上記ステップS825において
「α(j)=0」であると判断された場合は、第24図
(c)のステップS839に進む。
If it is determined in step S822 that "i = j", the flow advances to step S823 to perform horizontal compression reproduction of the first column. This lateral compression reproduction is performed in the same manner as in step S7 described above, as shown in FIG. In addition,
In FIG. 27 (a), the area A is a range generated by the reproduction, and the area B is a range moved by the reproduction. Next, the process proceeds to step S824 to set the value of “j” to “1”, and then determines in step S825 whether “α (j) = 0”. If “α (j) = 0” is not satisfied, step
Proceeding to S826, the range in which the position changes due to the oblique reproduction, that is, the connected range is divided into the A area and the B area for confirmation. Hereinafter, the processing after step S827 in FIG. 24 (c) is executed. If it is determined in step S825 that "α (j) = 0", the process proceeds to step S839 in FIG. 24 (c).

しかして、第24図(c)のステップS827においては、
例えば第27図(b)に示すようにAエリアをl1〜l2列目
(l1<l2)、Bエリアを、もしあればl3〜l4列目(l3<
l4)とする。次いでステップS828において「α(j)=
1」であるか否かを判断し、「α(j)=1」でなけれ
ばステップS829に進んで「α(j)=2」の場合の再生
を行なう。「α(j)=1」の場合は、ステップS828か
らステップS830に進んで「e」の値を「1」とし、その
後、ステップS831において第27図(c)に示すようにA
エリアのl1列目を「e」だけ落とす。そして、ステップ
S832に示すように「l1」の値を「+1」した後、ステッ
プS833において「l1>l2」か否かを判断する。「l1>l
2」でないと判断された場合は、ステップS834で「e」
の値を「+1」した後ステップS831に戻り、Aエリアの
次の列を「e」だけ、この場合には「2」つ落とす。そ
して、ステップS833において「l1>l2」になったと判断
されると、ステップS835に進んでBエリアが有るか否か
を判断し、Bエリアが有る場合はステップS836に示すよ
うにBエリアのl1列目を「e」だけ落とす。次いでステ
ップS837おいてl1の値を「+1」した後、ステップS838
に進んで「l1>l4」か否かを判断し、「l1>l4」でなけ
ればステップS836に戻ってBエリアの次の列を「e」だ
け落とす。すなわち、第27図(c)に示すようにAエリ
アでは列が進む毎に落ち方が大きくなるが、Bエリアで
は各列とも落ち方が一定となる。そして、ステップS838
において「l1>l4」になったと判断されると、ステップ
S839に進んで「j」の値を「+1」する。このステップ
S839は、上記ステップS825あるいはステップS829の処理
を終了した場合も実行される。次いでステップS840にお
いて「j=i」になったか否か判断され、「j=i」で
なければ第24図(b)のステップS825に戻る。また、ス
テップS840において「j=i」になったと判断された場
合は、ステップS841においてl1の値が「+1」され、そ
の後、第24図(a)のステップS82に戻る。上記のよう
にして第1RAM16内のキャラクタデータが34列(l=34)
まで斜め圧縮の再生処理が行なわれ、ステップS85にお
いて「l=35」になったと判断されると、ステップS8の
処理を終了して次のステップS9に進む。
Thus, in step S827 of FIG. 24 (c),
For example, as shown in FIG. 27 (b), the A area is in the l1 to l2 columns (l1 <l2), and the B area is in the l3 to l4 columns (l3 <l2), if any.
l4). Next, in step S828, “α (j) =
It is determined whether or not “1”, and if “α (j) = 1” is not satisfied, the flow advances to step S829 to perform reproduction in the case of “α (j) = 2”. If “α (j) = 1”, the process proceeds from step S828 to step S830 to set the value of “e” to “1”, and then at step S831, as shown in FIG.
Drop only the "e" in the 1st row of the area. And step
After the value of “l1” is incremented by “+1” as shown in S832, it is determined in step S833 whether “l1> l2”. "L1> l
If it is determined not to be “2”, “e” is determined in step S834.
After the value of is incremented by "+1", the process returns to step S831 and the next column in the area A is dropped by "e", in this case "2". If it is determined in step S833 that "l1>l2", the process proceeds to step S835 to determine whether there is a B area. If there is a B area, as shown in step S836, the l1 of the B area is determined. The column is dropped by "e". Next, in step S837, the value of l1 is incremented by "+1", and then step S838.
Then, it is judged whether "l1>l4" or not, and if "l1>l4" is not satisfied, the process returns to step S836 and the next row in the B area is dropped by "e". That is, as shown in FIG. 27 (c), in the area A, the drop size increases as the column advances, but in the area B, the drop pattern becomes constant for each column. Then, in step S838
When it is determined that "l1>l4" in step 1,
In step S839, the value of "j" is incremented by "+1". This step
S839 is also executed when the process of step S825 or step S829 is finished. Next, in step S840, it is determined whether or not "j = i" has been reached, and if "j = i" has not been reached, the process returns to step S825 in FIG. 24 (b). If it is determined in step S840 that "j = i", then the value of l1 is incremented by "+1" in step S841 and then the process returns to step S82 in FIG. 24 (a). As described above, the character data in the first RAM 16 has 34 columns (l = 34)
The diagonal compression reproduction process is performed up to, and when it is determined in step S85 that "l = 35" is reached, the process of step S8 is terminated and the process proceeds to the next step S9.

次にステップS11の補正キャラクタの再生処理につい
て第28図のフローチャートに従って説明する。この補正
キャラクタの再生処理では、ステップS111〜S115の処理
により補正を受け得る列を捜しており、ステップS116以
降の処理により補正を受け得る場所を捜している。ま
ず、ステップS111において「l」の値を「3」に設定し
た後、ステップS112に進んで第1RAM16のl列目にある縦
フラグ(V1 l−2、V2 l−2)を見る。そして、ステッ
プS113において「V1 l−2,V2 l−2=0,0」か否かを判
断し、その判断結果がYESであればステップS114に進ん
で「l」の値を「+1」する。その後、ステップS115に
おいて「l=35」か否かを判断し、その判断結果がYES
であれば次のステップS12に進むが、NOであればステッ
プS112に戻る。そして、上記ステップS111〜S115の処理
により補正を受け得る列が見つかると、つまり、ステッ
プS113の判断結果がNOとなると、ステップS116に進んで
倍長フラグと縦フラグにより再生量(r)を決定する。
次いでステップS117において「s」に「0」、「m」に
「3」を書込んだ後、ステップS118に進んで第1RAM16の
l列m行目の点の値(v)を見る。そして、ステップS1
19において「v=s」か否かを判断し、「v=s」であ
ればステップS1110に進んで「m」の値を「+1」す
る。そして、ステップS36において「m=36」か否かを
判断し、「m」が「36」に達していなければステップS1
18に戻る。そして、上記ステップS119において「v=
s」であると判断されると第29図に詳細を示すサブルー
チンSUB11の処理を実行する。このサブルーチンSUB11
は、補正するか否か、補正するとしたらその型を判断し
て補正する。そして、このサブルーチンSUB11の処理を
終了すると、ステップS1112で「v」の値を「s」にセ
ットした後、ステップS1110に戻る。以下、同様の動作
を繰返して行なうが、ステップS1111において「m=3
6」になったと判断されると、ステップS1111からステッ
プS1113に進んで「l←l+r+1」の加算処理を行な
った後、ステップS115に進む。そして、このステップS1
15において「l=35」であると判断されると、ステップ
S11の処理を終了してステップS12に進む。
Next, the process of reproducing the corrected character in step S11 will be described with reference to the flowchart in FIG. In this correction character reproduction processing, a column that can be corrected by the processing of steps S111 to S115 is searched for, and a position that can be corrected by the processing of step S116 and thereafter is searched. First, after setting the value of "l" to "3" in step S111, the process proceeds to step S112, and the vertical flag (V1l-2, V2l-2) in the lth column of the first RAM 16 is viewed. Then, in step S113, it is determined whether or not “V1 l−2, V2 l−2 = 0,0”, and if the determination result is YES, the process proceeds to step S114 and the value of “l” is incremented by “+1”. . Then, in step S115, it is determined whether or not “l = 35”, and the determination result is YES.
If so, the process proceeds to the next step S12, but if NO, the process returns to step S112. Then, when a row that can be corrected is found by the processing of steps S111 to S115, that is, when the determination result of step S113 is NO, the process proceeds to step S116, and the reproduction amount (r) is determined by the double length flag and the vertical flag. To do.
Next, in step S117, "0" is written in "s" and "3" is written in "m", and then the process proceeds to step S118, and the value (v) of the point at the 1st column and the mth row of the first RAM 16 is checked. Then, step S1
In 19, it is determined whether or not "v = s". If "v = s", the process advances to step S1110 to increment the value of "m" by "+1". Then, in step S36, it is determined whether or not “m = 36”. If “m” has not reached “36”, step S1 is executed.
Return to 18. Then, in step S119, “v =
s ", the subroutine SUB11 shown in FIG. 29 is executed. This subroutine SUB11
Determines whether or not to correct, and if so, determines the type and corrects. When the processing of this subroutine SUB11 is completed, the value of "v" is set to "s" in step S1112, and the process returns to step S1110. Hereinafter, the same operation is repeated, but “m = 3” in step S1111.
When it is determined that “6” has been reached, the process advances from step S1111 to step S1113 to perform an addition process of “l ← l + r + 1”, and then advances to step S115. And this step S1
If it is determined in step 15 that “l = 35”, the step
The process of S11 is ended and the process proceeds to step S12.

しかして、第29図に詳細を示すサブルーチンSUB11で
は、まず、ステップA1において、第30図に示すように第
1RAM16のl列m行目を点A、(l+r)列m行目を点B
とする。第30図は、「l=5、m=4、(r=1)」と
した時の点A、点Bの位置を示したものである。次いで
ステップA2に進んでA、Bの回りを5点づつ見る。第30
図の例では、−0、−0、−0、−0、…とな
る。この場合フラグエリアVF、HF内は、全て「0」とす
る。そして、再生量rと調べた10点により第31図(a)
に示す関係から補正型(t)を見る。そして、ステップ
A4おいて補正型(t)が「1,2,3,5,」、「0」、「4」
の何れであるかを判断し、「1,2,3,5,」の場合にはステ
ップA5に進んで第31図(b)に示すようにして補正す
る。但し、四角で囲まれた点はA、Bにあたる。その
後、ステップS11のメインルーチンにリターンする。ま
た、ステップA4において補正型(t)が「0」であると
判断された場合は、そのままメインルーチンにリターン
し、「t=4」であると判断された場合は、「B」から
同じ行を右へ調べ最後に「1」なる点を「C」とする。
そして、ステップA7において「B」と「C」が何点離れ
ているかをチェックし、ステップA8において4点以上離
れていると判断された場合は、そのままメインルーチン
にリターンする。しかし、ステップA8において、「B」
と「C」が4点以上離れていないと判断された場合は、
ステップA9に進んで「C」の周りの点を調べる。すなわ
ち、ステップA10〜A13により「C」の周りが(i)、
(ii)、(iii)、(iv)の何れの条件であるかを調べ
る。上記(i)、(ii)、(iii)、(iv)は、「C」
を中心に第32図(a)に示す条件を備えたものであるこ
とを意味している。この第32図(a)において、斜線部
は既に決まっているエリアであるので考慮はしない。ま
た、この場合もフラグエリアは全て「0」とみなす。そ
して、「C」を中心として第32図(b)に示すようにし
て補正が行なわれる。しかして、上記ステップA10にお
いて(i)の条件を満たしていないと判断された場合は
そのままメインルーチンに戻る。そして、(i)の条件
は満たすが(ii)の条件を満たしていない場合は、ステ
ップA11からステップA14に進んで第32図(b)における
「I」の補正を行ない、その後、メインルーチンに戻
る。また、(i)、(ii)の条件は満たすが(iii)の
条件を満たしていない場合は、あるいは(i)、(i
i)、(iii)の条件は満たすが(iv)の条件を満たして
いない場合は、ステップA12またはステップA13からステ
ップA15に進んで「B」と「C」が3点離れているか否
かを判断し、3点離れていない場合はステップA16に進
んで第32図(b)における「II」の補正を行ない、その
後、メインルーチンにリターンする。上記ステップA15
において「B」と「C」が3点離れていると判断された
場合は、今見ている補正フラグ(縦フラグ)の位置と補
正「II」の位置が一致しない場合であるので、そのまま
メインルーチンにリターンする。更に上記(i)〜(i
v)の条件を全て満たす場合は、ステップA17に進んで第
32図(b)における「III」の補正を行ない、その後、
メインルーチンにリターンする。
Thus, in the subroutine SUB11 shown in detail in FIG. 29, first in step A1, as shown in FIG.
Point A at the l-th column and m-th row of 1RAM16 and point B at the (l + r) -th column and m-th row
And FIG. 30 shows the positions of points A and B when “l = 5, m = 4, (r = 1)”. Next, the process proceeds to step A2, where the points around A and B are viewed by five points. 30th
In the example of the figure, they are -0, -0, -0, -0, .... In this case, the flag areas VF and HF are all set to "0". Then, based on the reproduction amount r and the ten points examined, FIG.
The correction type (t) is viewed from the relationship shown in. And step
In A4, the correction type (t) is "1,2,3,5,", "0", "4"
It is determined which of the two is "1", and in the case of "1, 2, 3, 5,", the process proceeds to step A5 and is corrected as shown in FIG. 31 (b). However, the points surrounded by the squares correspond to A and B. After that, the process returns to the main routine of step S11. If it is determined in step A4 that the correction type (t) is “0”, the process directly returns to the main routine. If it is determined that “t = 4”, the same line is started from “B”. Is checked to the right, and the point at which "1" is finally set is "C".
Then, it is checked in step A7 how many points "B" and "C" are apart, and if it is determined in step A8 that they are four or more points apart, the process returns to the main routine. However, in step A8, "B"
If it is determined that “C” and “C” are not more than 4 points apart,
Proceeding to step A9, a point around "C" is examined. That is, in steps A10 to A13, the area around "C" is (i),
It is checked which of (ii), (iii) and (iv) the condition is. The above (i), (ii), (iii) and (iv) are “C”
Means that the condition shown in FIG. 32 (a) is provided. In FIG. 32 (a), the shaded area is an area which has already been determined and is not considered. Also in this case, the flag areas are all regarded as "0". Then, the correction is performed centering on "C" as shown in FIG. 32 (b). If it is determined in step A10 that the condition (i) is not satisfied, the process returns to the main routine. If the condition of (i) is satisfied but the condition of (ii) is not satisfied, the process proceeds from step A11 to step A14 to correct "I" in FIG. 32 (b), and then to the main routine. Return. Further, when the conditions (i) and (ii) are satisfied but the condition (iii) is not satisfied, or (i) or (i)
If the conditions of i) and (iii) are satisfied but the condition of (iv) is not satisfied, the process proceeds from step A12 or step A13 to step A15 to determine whether "B" and "C" are three points apart. If it is determined that the points are not three points apart, the process proceeds to step A16 to correct "II" in FIG. 32 (b), and then returns to the main routine. Step A15 above
If it is determined that “B” and “C” are separated by 3 points in step 3, it means that the position of the correction flag (vertical flag) currently being viewed does not match the position of the correction “II”. Return to. Further, the above (i) to (i)
If all the conditions of v) are satisfied, go to step A17 and
32 Correction of “III” in FIG.
Return to the main routine.

次に上記ステップS13の詳細について第33図に従って
説明する。まず、第33図(a)のステップS131において
「K=0」か否かを判断する。最初は「K=0」であ
り、ステップS132に進んで「a」(列情報)及び「b」
(行情報)の値を「1」にセットする。次いでステップ
S133において「h」にB13、B14、B15で表わされる数
(共通キャラクタ数−1)を入れる。上記B13、B14、B1
5は、1つ目の共通キャラクタを見ている場合(K=
0)、共通キャラクタ数を表わしている。その後、ステ
ップS134において、第34図に示すように第1RAM16の1〜
x列目、1〜y列目を第2RAM18の「a〜a+x列目」、
「b〜b+y列目」にオアをとりながら書く。この場
合、第34図に示すように第1RAM16で再生された(k+
1)番目の共通キャラクタを第2RAM18に書く際、P点の
情報をa、bで与え(P点はa列、b行目にある)、再
生された共通キャラクタの大きさをx,yで与える。そし
て、ステップS135において「b+y+1」の値を「b」
としてセットすると共に、「K+1」の値を「K」とし
てセットし、次の「a」「b」を決める準備をする。そ
の後、ステップS136において「a+x+1>c」か否か
を判断し、その判断結果がYESの場合はステップS137に
進んで「a+x+1」を「c」としてセットする。この
ステップS137の処理が終了、あるいはステップS136の判
断結果がNOの場合はステップS138に進んで「h−K=−
1」か否かを判断する。このステップS138において、そ
の判断結果がNOの場合はステップS3に戻り、YESの場合
は次のステップS14に進んでセンタリング処理を行な
う。
Next, details of step S13 will be described with reference to FIG. First, in step S131 of FIG. 33 (a), it is determined whether or not “K = 0”. Initially, "K = 0", and the process proceeds to step S132, where "a" (column information) and "b"
The value of (row information) is set to "1". Then step
In S133, the number represented by B13, B14, and B15 (the number of common characters-1) is entered in "h". B13, B14, B1 above
5 is when looking at the first common character (K =
0), indicating the number of common characters. Thereafter, in step S134, as shown in FIG.
The x-th column and the first to y-th columns are "a to a + x-th columns" of the second RAM 18,
Write in the "b-b + yth column" while taking OR. In this case, (k +) reproduced in the first RAM 16 as shown in FIG.
1) When writing the second common character in the second RAM 18, the information of the P point is given by a and b (the P point is in the a column and the b line), and the size of the reproduced common character is x and y. give. Then, in step S135, the value of "b + y + 1" is changed to "b".
And set the value of “K + 1” as “K” and prepare to determine the next “a” and “b”. Then, in step S136, it is determined whether or not “a + x + 1> c”. If the determination result is YES, the process proceeds to step S137 to set “a + x + 1” as “c”. When the process of step S137 is completed or the result of the determination in step S136 is NO, the process proceeds to step S138 and "h-K =-"
It is determined whether it is "1". In step S138, if the determination result is NO, the process returns to step S3, and if YES, the process proceeds to the next step S14 to perform the centering process.

しかして、上記ステップS131において、「K=0」で
はないと判断された場合は、第33図(b)のステップS1
39に進んで共通キャラクタの位置関係を表わすB13、B1
4、B15をチェックする。この場合、上記B13、B14、B15
は、他の共通キャラクタとの位置関係を表わす位置フラ
グであり、「K+1」番目の共通キャラクタ指示メモリ
部31bに記憶されているデータを見ている。そして、ス
テップS1310において、「B13=1」、または「B14,B15
=0,0」か否かを判断し、その判断結果がYESの場合は、
ステップS1311に進んで「b+y>32」か否かを判断す
る。このステップS1311の判断結果がYESの場合は、ステ
ップS1312において「b」の値を「0」、「a」の値を
「c」とした後ステップS1313に進む。また、上記ステ
ップS1310及びS1311でNOと判断された場合もステップS1
313に進む。上記ステップS1310〜S1312では、第34図
(b)に示すように第2RAM18の再生エリア18a(32列×3
2行)に収まるか否かを見ており、共通キャラクタが再
生エリア18aの下からはみ出したら右上へ位置を移す処
理を行なっている。そして、上記ステップS1313では、
「B14,B15=0,0」か否の判断を行ない、YESの場合はス
テップS134へ戻り、NOの場合はステップS1314に進んで
「B13=0」か否かを判断する。このステップS1314の判
断結果がNOの場合は、ステップS1315において左側との
位置関係を考えて「a」「b」を決め、その後、ステッ
プS134に戻る。また、ステップS1314において「B13=
0」であると判断された場合は、ステップS1316に進ん
で「m0」の値を「b−1」、「m1」の値を「0」にセッ
トした後ステップS1317に進み、第2RAM18のm0行目が
「a〜32」列目まで「0」か否かを見る。上記ステップ
S1316、S1317では、共通キャラクタを付けるときのこと
を考えており、第2RAM18の何行目まで実際に共通キャラ
クタが存在するかを見ている。第34図(c)に示すよう
に共通キャラクタが余白を持っている場合、その余白の
幅をm1として「b」を決める際に考慮する。そして、上
記ステップS1318において、第2RAM18のm0行目が「a〜3
2」列目まで全て「0」であると判断された場合は、ス
テップS1319に進み、「m0」の値を「−1」、「m1」の
値を「+1」した後、ステップS1317に戻る。以下、同
様の処理を繰返し、ステップS1318の判断結果がNOにな
ると、第33図(c)のステップS1320に進み、「m0」の
値を「1」、「m2」の値を「0」にセットする。そし
て、ステップS1321において第1RAM16の第1行目が全て
「0」か否かをチェックし、ステップS1322において全
て「0」か否か判断する。全て「0」であると判断され
た場合は、ステップS1323に進んで「m0」の値及び「m
2」の値を「+1」した後、ステップS1321に戻る。上記
ステップS1321〜S1323では、共通キャラクタを付ける時
のことを考え、第34図(d)に示すように第1RAM16が上
部に何行の余白(m2)を持っているか見ている。そし
て、上記ステップS1322において第1RAM16のm0行目が全
て「0」でないと判断された場合は、ステップS1324に
進んで「b−m1−m2」を「b」としてセットする。そし
て、ステップS1325において、「B14,B15」が「1,0」、
「0,1」、「1,1」の何れであるかを判断し、「1,0」で
あればステップS134へ戻る。また、ステップS1325にお
いて、「B14,B15」が「0,1」であると判断された場合は
ステップS1326において「b」の値を「−1」した後ス
テップS134へ戻り、「B14,B15」が「1,1」であると判断
された場合はステップS1327において「b」の値を「−
2」した後ステップS134へ戻る。上記ステップS1325〜S
1327では、共通キャラクタを更に重ねることを考慮して
いる。例えば「B14,B15=1,0」の場合、第35図(a)に
示す第2RAM18の共通キャラクタに対し、同図(b)に示
す第1RAM16の共通キャラクタを重ねると、同図(c)に
示すようになる。本来、「b」は前の共通キャラクタの
最終行の次の行を指しているが、m1、m2(B14、B15も含
む)を考慮し、「b」を変え、位置を決めている。
If it is determined in step S131 that "K = 0" is not satisfied, step S1 in FIG. 33 (b) is performed.
Proceed to 39, B13, B1 indicating the positional relationship of the common character
4. Check B15. In this case, the above B13, B14, B15
Is a position flag indicating a positional relationship with another common character, and is looking at the data stored in the "K + 1" th common character instruction memory unit 31b. Then, in step S1310, “B13 = 1” or “B14, B15
= 0,0 "and if the result is YES,
The process advances to step S1311 to determine whether or not “b + y> 32”. If the decision result in the step S1311 is YES, in a step S1312, the value of “b” is set to “0” and the value of the “a” is set to “c”, and then the process proceeds to a step S1313. Also, if NO is determined in steps S1310 and S1311, step S1
Continue to 313. In the above steps S1310 to S1312, as shown in FIG. 34B, the reproduction area 18a (32 columns × 3
(2 lines), and if the common character protrudes from under the reproduction area 18a, the position is moved to the upper right. Then, in step S1313 described above,
It is determined whether or not "B14, B15 = 0, 0". If YES, the process returns to step S134, and if NO, the process proceeds to step S1314 to determine whether or not "B13 = 0". If the decision result in the step S1314 is NO, in a step S1315, "a" and "b" are determined in consideration of the positional relationship with the left side, and thereafter, the process returns to the step S134. In step S1314, “B13 =
If it is determined that the value is "0", the flow advances to step S1316 to set the value of "m0" to "b-1" and the value of "m1" to "0", and then to step S1317, where m0 in the second RAM 18 is set. It is checked whether the row is “0” up to the “a-32” column. Above steps
In S1316 and S1317, the case of attaching a common character is considered, and the line up to which the second character of the second RAM 18 actually exists is examined. When the common character has a margin as shown in FIG. 34 (c), the width of the margin is set to m1 and considered when determining "b". Then, in the above step S1318, the m0-th row of the second RAM 18 has “a to 3”.
When it is determined that all the data up to the 2nd column is “0”, the process proceeds to step S1319, the value of “m0” is set to “−1”, the value of “m1” is set to “+1”, and then the process returns to step S1317. . Hereinafter, the same processing is repeated, and if the decision result in the step S1318 is NO, the process proceeds to a step S1320 in FIG. 33 (c) to set the value of “m0” to “1” and the value of “m2” to “0”. set. Then, it is checked in step S1321 whether all the first rows of the first RAM 16 are "0", and it is determined in step S1322 whether all are "0". If it is determined that they are all “0”, the process proceeds to step S1323, and the value of “m0” and “m
After the value of “2” is incremented by “+1”, the process returns to step S1321. In the above steps S1321 to S1323, considering how to attach a common character, it is checked how many lines of blank (m2) the first RAM 16 has at the top as shown in FIG. 34 (d). If it is determined in step S1322 that all the m0th rows of the first RAM 16 are not "0", the flow advances to step S1324 to set "b-m1-m2" as "b". Then, in step S1325, “B14, B15” is “1,0”,
It is determined which of “0,1” and “1,1”, and if “1,0”, the process returns to step S134. If it is determined in step S1325 that "B14, B15" is "0,1", the value of "b" is incremented by "-1" in step S1326, and then the process returns to step S134 to return to "B14, B15". Is determined to be "1,1", the value of "b" is changed to "-" in step S1327.
After "2", the flow returns to step S134. Above steps S1325 ~ S
In 1327, it is considered that the common character is further overlapped. For example, in the case of "B14, B15 = 1,0", if the common character of the first RAM16 shown in FIG. 35B is overlaid on the common character of the second RAM18 shown in FIG. As shown in. Originally, “b” indicates the line next to the last line of the previous common character, but the position is determined by changing “b” in consideration of m1 and m2 (including B14 and B15).

次にステップS14の詳細について第36図のフローチャ
ートに従って説明する。まず、ステップS141において
「l」の値を「32」、「a」の値を「0」にセットす
る。次いでステップS142に進み、第1RAM16のl列目が1
〜32行目まで全て「0」かどうかチェックし、ステップ
S143において全て「0」と判断された場合はステップS1
44に進み、「l」の値を「−1」し、「a」の値を「+
1」し、その後、ステップS142に戻る。すなわち、上記
ステップS141〜S144の処理により、何列文字をずらせば
文字が中央にくるかを見ている。そして、上記ステップ
S142〜S144の処理を繰返し実行し、その後、ステップS1
43の判断結果がNOとなった場合はステップS145に進み、
「a」に「a/2」より小さくない最小の整数を入れる。
次いでステップS146において第37図に示すように文字全
体をa列右へ移す。このとき移してくる列データがない
列は、「0」を右に移す。以上でステップS14のセンタ
リング処理を終了し、次のステップS15に進む。このス
テップS15では、上記のようにして第2RAM18に再生した
キャラクタデータをスタックレジスタ29a〜29dに書込
み、このスタックレジスタ29a〜29dより32ビットのキャ
ラクタデータとして表示部へ順次出力する。
Next, details of step S14 will be described with reference to the flowchart in FIG. First, in step S141, the value of “l” is set to “32” and the value of “a” is set to “0”. Next, the process proceeds to step S142, where the first column of the first RAM 16 is 1
Check to see if all "0" up to line 32
If all are determined to be “0” in S143, step S1
Proceeding to 44, the value of “l” is set to “−1” and the value of “a” is set to “+”
1 ", and then return to step S142. That is, in the processes of steps S141 to S144, it is checked how many columns of characters are shifted so that the characters are in the center. And the above steps
The processing of S142 to S144 is repeatedly executed, and thereafter, step S1
If the determination result in 43 is NO, the process proceeds to step S145,
"A" is the smallest integer not less than "a / 2".
Next, in step S146, as shown in FIG. 37, the entire character is shifted to the right in column a. At this time, for a column having no column data to be transferred, “0” is shifted to the right. With the above, the centering process of step S14 is completed, and the process proceeds to the next step S15. In step S15, the character data reproduced in the second RAM 18 as described above is written into the stack registers 29a to 29d, and sequentially output to the display unit as 32-bit character data from the stack registers 29a to 29d.

[発明の効果] 以上詳記したように本発明によれば、漢字等の字体を
部首別に分離すると共に上記部首を含む字体を共通部に
分離してなる共通キャラクタをキャラクタメモリに記憶
し、複数の共通キャラクタの組合わせで字体共通キャラ
クタを構成するキャラクタ発生器において、共通キャラ
クタをキャラクタメモリに記憶する際、規則的に形成さ
れている線を圧縮すると共に、その圧縮処理に応じて共
通キャラクタの大きさを可変設定し、その大きさを示す
フラグを各共通キャラクタに対応させてキャラクタメモ
リに記憶するようにしたので、キャラクタ発生器のメモ
リ容量を著しく減少し得るものである。
[Effects of the Invention] As described in detail above, according to the present invention, a common character formed by separating fonts such as Chinese characters by radicals and separating the fonts including the radicals into a common portion is stored in a character memory. , In a character generator that forms a font common character by combining a plurality of common characters, when a common character is stored in a character memory, a line that is regularly formed is compressed, and a common character is generated according to the compression process. Since the size of the character is variably set and the flag indicating the size is stored in the character memory in association with each common character, the memory capacity of the character generator can be significantly reduced.

また、本発明は、共通キャラクタを圧縮する際、共通
キャラクタの大きさを縦あるいは横の一方向のみ規定し
て他方を可変設定し、圧縮後、大きさの規定された方向
が一定方向に揃うように共通キャラクタを回転するよう
にしたので、メモリ空間を効率良く使用することがで
き、更に小容量のキャラクタメモリでその目的を達成で
き、情報処理機器の小型化に有利であると共にコストの
低下を図り得るものである。
Further, according to the present invention, when compressing a common character, the size of the common character is defined only in one direction in the vertical or horizontal direction and the other is variably set, and after compression, the direction in which the size is defined is aligned in a fixed direction. Since the common character is rotated like this, the memory space can be used efficiently, and the object can be achieved with a small capacity character memory, which is advantageous for downsizing of information processing equipment and cost reduction. Can be achieved.

【図面の簡単な説明】[Brief description of drawings]

図面は本発明の一実施例を示すもので、第1図は全体の
回路構成を示すブロック図、第2図は第1図における第
1RAM及び第2RAMの記憶構成を示す図、第3図は第1図に
おけるキャラクタROMの記憶構成を示す図、第4図は文
字を分離して共通キャラクタを構成する場合の概略を示
す図、第5図は共通キャラクタを補正して圧縮する場合
の概略動作を示す図、第6図は共通キャラクタを補正し
て構成した補正キャラクタ例を示す図、第7図は縦横圧
縮例を示す図、第8図は斜め圧縮方法を示す図、第9図
は二重圧縮例を示す図、第10図はセンタリング圧縮例を
示す図、第11図はキャラクタROMの共通キャラクタ部に
おけるキャラクタエリアとフラグエリアとの関係を示す
図、第12図(a)〜(c)は各種フラグとその機能との
関係を示す図、第13図はキャラクタROMにおける共通キ
ャラクタ指示データのビット構成を示す図、第14図は上
記共通キャラクタ指示データ(B13,B14,B15)と共通キ
ャラクタ数との関係を示す図、第15図は上記共通キャラ
クタ指示データ(B13,B14,B15)と位置フラグ内容との
関係を示す図、第16図は共通キャラクタの型の判断動作
を示す図、第17図は縦長可変フラグ及び回転フラグと共
通キャラクタの大きさ(x,y)との関係を示す図、第18
図は文字キャラクタ再生時の全体の処理動作を示すフロ
ーチャート、第19図は第18図の主要ステップに対する文
字再生の状態を示す図、第20図は第18図におけるステッ
プS4の詳細を示すフローチャート、第21図は第18図にお
けるステップS5の詳細を示すフローチャート、第22図は
第18図におけるステップS7の詳細を示すフローチャー
ト、第23図は第22図における横圧縮再生の例を示す図、
第24図(a)〜(c)は第18図におけるステップS8の詳
細を示すフローチャート、第25図(a)(b)はステッ
プS8の動作を説明するための第1RAM及び第2RAMのデータ
記憶状態例を示す図、第26図はステップS8におけるα
(j)の判断基準及びその判断結果に基づく方向を示す
図、第27図(a)〜(c)はステップS8中の横圧縮再生
動作を示す図、第28図はステップS11の詳細を示すフロ
ーチャート、第29図におけるサブルーチンSUB11の詳細
を示すフローチャート、第30図は上記ステップS11の動
作を説明するための第1RAMに対するデータチェック状態
を示す図、第31図(a)はチェック点及び再生量と補正
型との関係を示す図、第31図(b)は上記補正型の詳細
を示す図、第32図は補正の方法を示す図、第33図(a)
〜(c)は第18図におけるステップS13の詳細を示すフ
ローチャート、第34図(a)〜(d)及び第35(a)〜
(c)は第1RAM及び第2RAMにおける文字キャラクタ再生
状態を示す図、第36図は第18図におけるステップS14の
詳細を示すフローチャート、第37図は第1RAMにおける文
字キャラクタのセンタリング動作を示す図である。 11……発振回路、12……プログラムカウンタ、13……RO
Mアドレススタックレジスタ、14……プログラムROM、15
……インストラクションデコーダ、16……第1RAM、17、
27……アドレスカウンタ、18……第2RAM、22……比較回
路、23……演算回路、24……デコーダ、29a〜29d……ス
タックレジスタ、31……キャラクタROM。
1 shows an embodiment of the present invention. FIG. 1 is a block diagram showing the overall circuit configuration, and FIG.
FIG. 3 is a diagram showing a storage configuration of 1 RAM and 2 RAM, FIG. 3 is a diagram showing a storage configuration of a character ROM in FIG. 1, and FIG. 4 is a diagram showing an outline of a case where characters are separated to form a common character. FIG. 5 is a diagram showing a schematic operation when correcting and compressing a common character, FIG. 6 is a diagram showing an example of a corrected character formed by correcting a common character, and FIG. 7 is a diagram showing an example of vertical and horizontal compression. 8 is a diagram showing a diagonal compression method, FIG. 9 is a diagram showing an example of double compression, FIG. 10 is a diagram showing an example of centering compression, and FIG. 11 is a character area and a flag area in the common character portion of the character ROM. , FIG. 12 (a) to FIG. 12 (c) show the relationship between various flags and their functions, FIG. 13 shows the bit structure of the common character instruction data in the character ROM, and FIG. Is the common character instruction data (B 13, B14, B15) and the number of common characters, FIG. 15 shows the relationship between the above-mentioned common character instruction data (B13, B14, B15) and the contents of the position flag, and FIG. FIG. 17 is a diagram showing the relationship between the vertical variable flag and the rotation flag and the size (x, y) of the common character, and FIG.
FIG. 19 is a flowchart showing the entire processing operation at the time of character character reproduction, FIG. 19 is a diagram showing the state of character reproduction for the main steps in FIG. 18, FIG. 20 is a flowchart showing details of step S4 in FIG. FIG. 21 is a flowchart showing details of step S5 in FIG. 18, FIG. 22 is a flowchart showing details of step S7 in FIG. 18, FIG. 23 is a diagram showing an example of horizontal compression reproduction in FIG. 22,
24 (a) to 24 (c) are flowcharts showing details of step S8 in FIG. 18, and FIGS. 25 (a) and 25 (b) are data storage of the first RAM and the second RAM for explaining the operation of step S8. FIG. 26 shows a state example, and α in step S8
FIG. 27 (a) to FIG. 27 (c) show the lateral compression reproduction operation in step S8, and FIG. 28 shows the details of step S11. A flow chart, a flow chart showing the details of the subroutine SUB11 in FIG. 29, FIG. 30 is a view showing a data check state for the first RAM for explaining the operation of step S11, and FIG. 31 (a) is a check point and a reproduction amount. FIG. 31 (b) shows the details of the correction type, FIG. 32 shows the correction method, FIG. 33 (a).
~ (C) is a flowchart showing the details of step S13 in Fig. 18, Fig. 34 (a) to (d) and 35 (a) to.
(C) is a diagram showing a character character reproduction state in the first RAM and the second RAM, FIG. 36 is a flowchart showing details of step S14 in FIG. 18, and FIG. 37 is a diagram showing a centering operation of the character characters in the first RAM. is there. 11 Oscillator circuit, 12 Program counter, 13 RO
M address stack register, 14 ... Program ROM, 15
…… Instruction decoder, 16 …… First RAM, 17,
27 ... Address counter, 18 ... Second RAM, 22 ... Comparison circuit, 23 ... Operation circuit, 24 ... Decoder, 29a-29d ... Stack register, 31 ... Character ROM.

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】漢字等の字体を部首別に分離すると共に上
記部首を含む字体を共通部に分離してなる共通キャラク
タをキャラクタメモリに記憶し、複数の共通キャラクタ
の組合わせで字体キャラクタを構成するキャラクタ発生
器において、上記共通キャラクタをキャラクタメモリに
記憶する際、規則的に形成されている線を圧縮する手段
と、この手段による圧縮処理に応じて共通キャラクタの
大きさを可変設定すると共に、その大きさを示すフラグ
を各共通キャラクタに対応させて上記キャラクタメモリ
に記憶する手段とを具備したことを特徴とする文字キャ
ラクタの圧縮方式。
1. A common character, which is formed by separating fonts such as Chinese characters according to radicals and separating the fonts including the radicals into a common portion, is stored in a character memory, and the font characters are combined by combining a plurality of common characters. In the constituent character generator, when storing the common character in the character memory, means for compressing regularly formed lines, and variably setting the size of the common character according to the compression processing by this means, And a means for storing a flag indicating its size in the character memory in association with each common character.
【請求項2】上記共通キャラクタの圧縮後、大きさの規
定された方向が一定方向に揃うように共通キャラクタを
回転する手段を更に具備したことを特徴とする特許請求
の範囲第1項記載の文字キャラクタの圧縮方式。
2. The method according to claim 1, further comprising means for rotating the common character so that the direction of which the size is regulated is aligned in a fixed direction after the common character is compressed. Character character compression method.
JP61093906A 1986-04-23 1986-04-23 Character charactor compression method Expired - Lifetime JPH0812543B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61093906A JPH0812543B2 (en) 1986-04-23 1986-04-23 Character charactor compression method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61093906A JPH0812543B2 (en) 1986-04-23 1986-04-23 Character charactor compression method

Publications (2)

Publication Number Publication Date
JPS62250487A JPS62250487A (en) 1987-10-31
JPH0812543B2 true JPH0812543B2 (en) 1996-02-07

Family

ID=14095522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61093906A Expired - Lifetime JPH0812543B2 (en) 1986-04-23 1986-04-23 Character charactor compression method

Country Status (1)

Country Link
JP (1) JPH0812543B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2697328B2 (en) * 1991-03-07 1998-01-14 ブラザー工業株式会社 Contour data processing device

Also Published As

Publication number Publication date
JPS62250487A (en) 1987-10-31

Similar Documents

Publication Publication Date Title
JP2739945B2 (en) Voice recognition method
US20050281464A1 (en) Particular image area partitioning apparatus and method, and program for causing computer to perform particular image area partitioning processing
JP2655401B2 (en) Character character generator
JPH0812543B2 (en) Character charactor compression method
JPH083707B2 (en) Character charactor playback method
JPH083708B2 (en) Character charactor compression method
JPH083706B2 (en) Character charactor compression method
US7688988B2 (en) Particular image area partitioning apparatus and method, and program for causing computer to perform particular image area partitioning processing
US5809170A (en) Method for automatically recognizing line symmetry of a figure
CN113326844A (en) Video subtitle adding method and device, computing equipment and computer storage medium
JPS62250485A (en) Character compression system
JPS6219970A (en) Mask processing system
JP2703559B2 (en) Character recognition support device
JPS62250483A (en) Character compression system
JPS62250490A (en) Character reproduction system
JPS6373300A (en) Voice recognition equipment
JPH117493A (en) Character recognition processor
JP2625682B2 (en) Voice section start detection device
JPH0291785A (en) Character recognizing device
JP2918380B2 (en) Post-processing method of character recognition result
JP2687902B2 (en) Document image recognition device
JPH07120253B2 (en) Text input device by voice
JPH06266889A (en) Character recognizing device
JPH0250783A (en) Method for modifying recognition result in character recognizing device
JPH06250687A (en) Voice recognition device for unspecified speaker