Back to EveryPatent.com
United States Patent |
5,150,431
|
Yoshida
,   et al.
|
September 22, 1992
|
Device for converting normal outline data into compressed outline data,
or vice versa
Abstract
A data compressing device for preparing compressed outline data from normal
outline data representative of an outline of a character which consists of
a plurality of segments connected end to end so as to form a closed loop.
The normal outline data includes coordinate data representative of X and Y
coordinate of segment specifying points which determine positions of the
segments, and segment type data indicative of a type of each segments. The
device is adapted to determine whether or not all of a plurality of
successive points of the segment specifying points which successive points
are successively located along the closed loop have a same X or Y
coordinate, and omits the X or Y coordinate for at least one of those
successive points, to thereby prepare the compressed outline data, if all
of the successive points have the same X or Y coordinate which is equal to
the X or Y coordinate to be omitted. Also disclosed is a device adapted to
convert the compressed outline data into the normal outline data, by
restoring the X and Y coordinates omitted in the compressed outline data.
Inventors:
|
Yoshida; Hitoshi (Kohnan, JP);
Kawamoto; Naoyuki (Tajimi, JP);
Kanegae; Takahiro (Nagoya, JP);
Aoki; Kazuma (Kasugai, JP)
|
Assignee:
|
Brother Kogyo Kabushiki Kaisha (Nagoya, JP)
|
Appl. No.:
|
644607 |
Filed:
|
January 23, 1991 |
Foreign Application Priority Data
Current U.S. Class: |
382/242 |
Intern'l Class: |
G06K 009/36 |
Field of Search: |
340/731,735
382/22,23,24,25,56
395/110,128,150
|
References Cited
U.S. Patent Documents
4189711 | Feb., 1980 | Frank | 382/56.
|
4542412 | Sep., 1985 | Fuse et al. | 382/56.
|
4550438 | Oct., 1985 | Convis et al. | 382/56.
|
4771474 | Sep., 1988 | Takashima et al. | 382/24.
|
Primary Examiner: Couso; Jose
Attorney, Agent or Firm: Oliff & Berridge
Claims
What is claimed is:
1. A data compressing device for preparing compressed outline data from
normal outline data, comprising:
determining means for processing said normal outline data, said normal
outline data representing an outline of a character or other visible
representation, said outline consisting of a plurality of segments
connected end to end to each other so as to form a closed loop, said
normal outline data including coordinate data representative of X and Y
coordinate values of a plurality of segment specifying points which
determine positions of said segments, and segment type data indicative of
a type of each of said segments, said determining means determining
whether or not all of a plurality of successive points of said plurality
of segment specifying points which successive points are successively
located along said closed loop have a same X coordinate value or a same Y
coordinate value; and
data compressing means, responsive to said determining means, for omitting
said X or Y coordinate value for at least one of said plurality of
successive points, to thereby prepare said compressed outline data, if
said all of the successive points have said same X or Y coordinate value
which is equal to said X or Y coordinate value to be omitted.
2. A data compressing device according to claim 1, wherein said at least
one of said successive points whose X or Y coordinate value is omitted
consists of all but one of said plurality of successive points.
3. A data compressing device according to claim 2, wherein said one of said
plurality of successive points is a first one of said plurality of
successive points as viewed in a direction corresponding to an order in
which sets of said normal outline data for said plurality of segments are
sequentially processed to prepare said compressed outline data.
4. A data compressing device according to claim 1, wherein said plurality
of segments consist of at least one straight line and at least one Bezier
curve.
5. A data compressing device according to claim 4, wherein said segment
specifying points consists of start and end points of each of said at
least one straight line, start and end points of each of said at least one
Bezier curve, and two control points which determine a curvature of each
said Bezier curve.
6. A data restoring device for converting compressed outline data into
normal outline data which represents an outline of a character or other
visible representation, said outline consisting of a plurality of segments
connected end to end to each other so as to form a closed loop, said data
restoring device comprising:
determining means for processing said compressed outline data, said
compressed outline data including coordinate data representative of X and
Y coordinate values of a plurality of segment specifying points which
determine positions of said segments, and segment type data indicative of
a type of each of said segments, the X or Y coordinate value being omitted
for at least one of a plurality of successive points of said plurality of
segment specifying points which successive points are successively located
along said closed loop, if all of said plurality of successive points have
a same X or Y coordinate value which is equal to said X or Y coordinate
value to be omitted;
said determining means determining whether or not any one of the X and Y
coordinate values of said segment specifying points is absent in said
compressed outline data; and
data restoring means, responsive to said determining means, for restoring
each of said any one of the X and Y coordinate values of said segment
specifying points which is absent in said compressed outline data, to
thereby prepare said normal outline data, if said determining means
determines that said any one of the X and Y coordinate values is absent in
said compressed outline data.
7. A data restoring device according to claim 6, wherein said plurality of
segments consist of at least one straight line and at least one Bezier
curve.
8. A data restoring device according to claim 7, wherein said segment
specifying points consists of start and end points of each of said at
least one straight line, start and end points of each of said at least one
Bezier curve, and two control points which determine a curvature of each
said Bezier curve.
9. A data restoring device according to claim 6, wherein said at least one
of said successive points whose X or Y coordinate value is omitted
consists of all but one of said plurality of successive points.
10. A data restoring device according to claim 9, wherein said one of said
plurality of successive points is a first one of said plurality of
successive points as viewed in a direction corresponding to an order in
which sets of said compressed outline data for said plurality of segments
are sequentially processed to prepare said normal outline data.
11. A data compressing device for preparing compressed outline data from
normal outline data which represents an outline of a character or other
visible representation, said outline consisting of a plurality of segments
connected end to end to each other so as to form a closed loop, said
normal outline data including coordinate data representative of X and Y
coordinate values of a plurality of segment specifying points which
determine positions of said segments, and segment type data indicative of
a type of each of said segments, said data compressing device comprising:
determining means for determining whether or not all of a plurality of
successive points of said plurality of segment specifying points which
successive points are successively located along said closed loop have a
same X coordinate value or a same Y coordinate value; and
data compressing means, responsive to said determining means, for omitting
said X or Y coordinate value for at least one of said plurality of
successive points, to thereby prepare said compressed outline data, if
said all of the successive points have said same X or Y coordinate value
which is equal to said X or Y coordinate value to be omitted,
said coordinate data consisting of data representative of X and Y
coordinate values of a start point of said closed loop of said outline,
and X and Y coordinate values of said plurality of segments specifying
points which determine the positions of said plurality of segments
connected end to end to each other to form said closed loop,
said segment type data consisting of a flag indicative of said start point
of said closed loop, flags indicative of said plurality of segments,
respectively, and a flag indicative of an end of said closed loop.
12. A data restoring device for converting compressed outline data into
normal outline data which represents an outline of a character or other
visible representation, said outline consisting of a plurality of segments
connected end to end to each other so as to form a closed loop, said
compressed outline data including coordinate data representative of X and
Y coordinate values of a plurality of segment specifying points which
determine positions of said segments, and segment type data indicative of
a type of each of said segments, the X or Y coordinate value being omitted
for all but a first one of a plurality of successive points of said
plurality of segment specifying points which successive points are
successively located along said closed loop, if all of said plurality of
successive points have a same X or Y coordinate value which is equal to
said X or Y coordinate value to be omitted, said first one being a first
point as viewed in a direction corresponding to an order in which sets of
said compressed outline data for said plurality of segments are
sequentially processed to prepare said normal outline data, said data
restoring device comprising:
determining means for determining whether or not any one of the X or Y
coordinate values of said segment specifying points is absent in said
compressed outline data; and
data restoring means, responsive to said determining means, for restoring
each of said any one of the X and Y coordinate values of said segment
specifying points which is absent in said compressed outline data, to
thereby prepare said normal outline data, if said determining means
determines that said any one of the X and Y coordinate values is absent in
said compressed outline data,
said data restoring means preparing said normal outline data, by adding to
said compressed outline data the X or Y coordinate value of each of said
all but said first one of said plurality of successive points.
13. A data restoring device for converting compressed outline data into
normal outline data which represents an outline of a character or other
visible representation, said outline consisting of a plurality of segments
connected end to end to each other so as to form a closed loop, said
compressed outline data including coordinate data representative of X and
Y coordinate values of a plurality of segment specifying points which
determine positions of said segments, and segment type data indicative of
a type of each of said segments, the X or Y coordinate value being omitted
for all but a first one of a plurality of successive points of said
plurality of segment specifying points which successive points are
successively located along said closed loop, if all of said plurality of
successive points have a same X or Y coordinate value which is equal to
said X or Y coordinate value to be omitted, said data restoring device
comprising:
determining means for determining whether or not any one of the X or Y
coordinate values of said segment specifying points is absent in said
compressed outline data; and
data restoring means, responsive to said determining means, for restoring
each of said any one of the X and Y coordinate values of said segment
specifying points which is absent in said compressed outline data, to
thereby prepare said normal outline data, if said determining means
determines that said any one of the X and Y coordinate values is absent in
said compressed outline data,
said normal outline data including said segment type data, and coordinate
data consisting of data representative of X and Y coordinate values of a
start point of said closed loop of said outline, and X and Y coordinate
values of said plurality of segment specifying points which determine the
positions of said plurality of segments connected end to end to each other
to form said closed loop,
said segment type data consisting of a flag indicative of said start point
of said closed loop, flags indicative of said plurality of segments,
respectively, and a flag indicative of an end of said closed loop.
Description
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a device for converting normal outline
data representative of an image outline consisting of a plurality of
mutually connected segments, into compressed outline data whose volume is
smaller than that of said normal outline data. The invention relates also
to a device for converting the compressed outline data into the normal
outline data.
2. Discussion of the Prior Art
In the field of printing, displaying or otherwise reproducing characters
such as letters and symbols and other visible representations in a matrix
of dots, there is known an output device which operates according to
outline data representative of outlines of the characters and other
visible images (hereinafter simply referred to as "characters"). When code
signals are received by the output device, corresponding sets of outline
data are read out from a memory, and are converted into respective sets of
dot data which indicate the presence or absence of image dots at the
appropriate picture elements of the dot matrix to form the respective
characters. The presence and absence of the image dots are indicated by
the dot data bits corresponding to the picture elements, which bits are
either "1" or "0". The dot data are prepared according to size data
indicative of the size of the characters, as well as the outline data. The
use of the outline data eliminates a memory device having a relatively
large data storage capacity for storing a large volume of the dot data for
all the characters of different sizes available for reproduction, and
permits the reproduction of the characters in many different sizes and
type styles, with a high degree of image resolving power.
The outline data indicated above usually consists of coordinate data
representative of X and Y coordinate values of segment specifying points
which determines the positions of straight lines, curves or other segments
of the outlines of the characters, and segment type data indicative of the
kinds of the outline segments. The segment specifying points for a
straight line consist of the start and end points of the straight line,
and the segment specifying points for a Bezier curve consist of the start
and end points of the curve and two control points which determine a
curvature of the curve.
Generally, the outline data is stored in a read-only memory (ROM) or other
memory device provided in the relevant output device. In response to an
input code signal representative of a given character such as a letter,
the corresponding outline data set is retrieved from the memory device, to
prepare the corresponding set of dot data. In this arrangement, however,
the required data storage capacity of the memory device increases with an
increase in the number of the characters which are available for
reproduction. For instance, a printer or display capable of printing or
displaying the characters according to Level 1 and Level 2 of the Japanese
Industrial Standard (JIS) requires a memory device having a larger
capacity for storing the outline data, than a printer or display which is
capable of printing or displaying only the JIS Level 1 characters.
SUMMARY OF THE INVENTION
It is therefore an object of the present invention to provide a data
compressing device for compressing the conventionally prepared normal
outline data into compressed outline data whose volume is smaller than
that of the normal outline data.
A second object of the invention is to provide a data restoring device
suitable for converting such compressed outline data back into the normal
outline data.
The first object may be achieved according to one aspect of the present
invention, which provides a data compressing device for preparing
compressed outline data from normal outline data which represents an
outline of a character or other visible representation, the outline
consisting of a plurality of segments connected end to end to each other
so as to form a closed loop, the normal outline data including coordinate
data representative of X and Y coordinate values of a plurality of segment
specifying points which determine positions of the segments, and segment
type data indicative of a type of each of the segments, the data
compressing device comprising: (a) determining means for determining
whether or not all of a plurality of successive points of the plurality of
segment specifying points which successive points are successively located
along the closed loop have a same X coordinate value or a same Y
coordinate value; and (b) data compressing means, responsive to the
determining means, for omitting the X or Y coordinate value for at least
one of the plurality of successive points, to thereby prepare the
compressed outline data, if all of the successive points have the same X
or Y coordinate value which is equal to the X or Y coordinate value to be
omitted.
In the data compressing device of the present invention constructed as
described above, the X or Y coordinate value for at least one of the
successive segment specifying points is omitted in the compressed outline
data, if all of the successive segment specifying points have the same X
or Y coordinate value which is equal to the value to be omitted. For
instance, the X or Y coordinate values for all but one of the successive
points are omitted in the compressed outline data prepared from the normal
outline data. Accordingly, the required data storage capacity of the
memory device for storing the compressed outline data is considerably
smaller than that of the memory device for storing the normal outline
data, for a given number of characters to be reproduced.
The above-indicated second object may be achieved according to another
aspect of this invention, which provides a data restoring device for
converting compressed outline data into normal outline data which
represents an outline of a character or other visible representation, the
outline consisting of a plurality of segments connected end to end to each
other so as to form a closed loop, the compressed outline data including
coordinate data representative of X and Y coordinate values of a plurality
of segment specifying points which determine positions of the segments,
and segment type data indicative of a type of each of the segments, the X
or Y coordinate value being omitted for at least one of a plurality of
successive points of the plurality of segment specifying points which
successive points are successively located along the closed loop, if all
of the plurality of successive points have a same X or Y coordinate value
which is equal to the X or Y coordinate value to be omitted, the data
restoring device comprising: (a) determining means for determining whether
or not any one of the X and Y coordinate values of the segment specifying
points is absent in the compressed outline data; and (b) data restoring
means, responsive to the determining means, for restoring each of the any
one of the X and Y coordinate values of the segment specifying points
which is absent in the compressed outline data, to thereby prepare the
normal outline data, if the determining means determines that any one of
the X and Y coordinate values is absent in the compressed outline data.
In the data restoring device of the present invention constructed as
described above, the compressed outline data which lacks the X or Y
coordinate value for at least one of the successive segment specifying
points having the same X or Y coordinate value can be converted into the
normal outline data, by adding to the compressed outline data all of the X
and Y coordinate values which are absent in the compressed outline data.
The thus obtained normal outline data is converted by suitable converting
means into corresponding dot data representative of the image dots to form
the relevant character of a selected size to be printed, displayed or
otherwise reproduced. Thus, the present arrangement requires a memory
device having a relatively small capacity for storing the compressed
outline data for all the characters available to be reproduced.
Accordingly, the cost of the memory device can be lowered, or the memory
device having the same capacity can store the outline data for a larger
number of characters to be reproduced.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and other objects, features and advantages of the present
invention will be better understood by reading the following detailed
description of presently preferred embodiments of the invention, when
considered in connection with the accompanying drawings, in which:
FIG. 1 is a schematic block diagram showing an outline data preparing
apparatus incorporating a data processing device which includes a data
compressing device constructed according to one embodiment of this
invention;
FIG. 2 is a flow chart illustrating an operation of the data processing
device of FIG. 1;
FIG. 3 is an illustration showing an outline of character "D" consisting of
a plurality of segments in the form of straight lines and Bezier curves;
FIG. 4 is a view indicating normal outline data representative of the
character outline, which is processed into compressed outline data or
prepared by processing the compressed outline data;
FIGS. 5A-5C are a flow chart illustrating a data compressing routine
executed in step S4 of the flow chart of FIG. 2;
FIG. 6 is a view indicating the compressed outline data obtained by
execution of the routine of FIG. 5;
FIG. 7 is a schematic block diagram showing a data restoring device
constructed according to another embodiment of the present invention, for
converting the compressed data into the normal outline data; and
FIGS. 8A and 8B are a flow chart illustrating a data restoring routine
executed by the data restoring device of FIG. 7.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring first to FIG. 1, there is shown an outline data preparing
apparatus 10 for preparing normal outline data representative of
characters or other visible representations to be reproduced, and
converting the normal outline data into compressed outline data whose
volume is smaller than that of the normal outline data. The apparatus 10
includes an image scanner or image reader 11 which optically reads the
original characters. More specifically, image signals generated by the
image reader 11, which are indicative of the original characters, are
applied to a data processing device 12 of the apparatus 10.
The data processing device 12 is a computer adapted to process the received
image signals, according to a stored control program, for preparing the
normal outline data based on the image signals. The data processing device
12 is further adapted to process the normal outline data to prepare the
compressed outline data, which is stored in an outline data memory 13 of
the apparatus 10. The data processing device 12 has three functionally
different portions, namely, an image signal converting portion 14 for
converting the image signals from the image reader 11 into the normal
outline data, a data processing control portion 16 connected to the image
signal converting portion 14 and the memory 13, and an outline data
compressing portion 18 which is controlled by the data processing control
portion 16, for compressing the normal outline data in the manner
described below in greater detail.
The normal outline data prepared by the image signal converting portion 14
represents an outline of each character which consists of a plurality of
segments that are connected end to end to each other so as to form a
closed loop, as indicated in FIG. 3 which shows an outer loop of the
outline of letter "D", by way of example. The normal outline data includes
coordinate data representative of X and Y coordinate values of a plurality
of segment specifying points (X1, Y1) through (Xn, Yn) which determine the
positions of the individual segments. Functionally, the data processing
control portion 16 serves as determining means for determining whether or
not all of a plurality of successive points of the segment specifying
points which are successively located along the closed loop of the outline
of the character have a same X or Y coordinate value, while the outline
data compressing portion 18 serves as data compressing means for omitting
the X or Y coordinate value for at least one of the above-indicated
successive points, to thereby prepare the compressed outline data, when
all of the successive points have the same X or Y coordinate value which
is equal to the value to be omitted.
Referring to the flow chart of FIG. 2, there is illustrated an operation of
the data processing device 12 for preparing the compressed outline data.
More specifically, step S1 is initially executed to read the image signals
supplied from the image reader 11. Step S1 is followed by step S2 in which
the outline of the character being read by the image reader 11 is
determined according to a suitable control program, based on the received
image signals. Since this control program is well known in the art and is
not essential to the understanding of the principle of the present
invention, no description of this program is deemed necessary.
As indicated in FIG. 3, by way of example, the outline consists of at least
one closed loop which consists of at least one straight line and at least
one Bezier curve. Step S2 is followed by step S3 to prepare the coordinate
data representative of the X and Y coordinate values of the segment
specifying points determining the positions of the straight lines and
Bezier curves. In the example of FIG. 3, the outline of letter "D"
consists of: a first straight line having a start point (X1, Y1) and an
end point (X2, Y2); a first Bezier curve which has a start point (X2, Y2)
and an end point (X5, Y5) and whose curvature is determined by a first and
a second control point (X3, Y3), (X4, Y4); a second straight line having a
start point (X5, Y5) and an end point (X6, Y6); a second Bezier curve
which has a start point (X6, Y6) and an end point (X9, Y9) and whose
curvature is determined by a first and a second control point (X7, Y7),
(X8, Y8); a third straight line having a start point (X9, Y9) and an end
point (X10, Y10); and a fourth straight line having a start point (X10,
Y10) and an end point (X1, Y1). The above-indicated points (X1, Y1)
through (X10, Y10) serve as the segment specifying points.
The normal outline data for letter "D" of FIG. 3 produced by the image
signal converting portion 14 is indicated in FIG. 4. The normal outline
data include segment type data in the form of flags indicative of the
types of the segments of the outline, as well as the coordinate data for
the segment specifying points. In the example of FIG. 4, the start point
(X1, Y1) of the closed loop is indicated by a flag "S", and the end point
of each straight line is indicated by a flag "L". Further, a flag "B"
indicates the two control points and the end point of each Bezier curve.
The normal outline data also includes a flag "*" indicative of the end of
the closed loop, and a flag "!" indicative of the end of the outline data
of the relevant character. In the present embodiment, each of the X and Y
coordinate values of the segment specifying points is represented by two
bytes, while each flag is represented by one byte. Each bezier curve is
defined by the following equations (1) and (2):
Px(t)=(1-t).sup.3 P1x+3(1-t).sup.2 P2x+3(1-t)t.sup.2 P3x+t.sup.3 P4x (1)
Py(t)=(1-t).sup.3 P1y+3(1-t).sup.2 P2y+3(1-t)t.sup.2 P3y+t.sup.3 P4y (2)
where, (P1x, P1y) represents the X and Y coordinate values of the start
point P1, while (P4x, P4y) represents the X and Y coordinate values of the
end point P4, and (P2x, P2y) and (P3x, P3y) represent the X and Y
coordinate values of the first and second control points P2 and P3,
respectively. The first control point P2 lies on a straight line which is
tangent to the Bezier curve and which passes the start point Pl of the
curve, while the second control point P3 lies on a straight line which is
tangent to the curve and which passes the end point P4.
The control flow then goes to step S4 in which a data compressing routine
of FIGS. 5A-5C is executed by the data processing control portion 16 and
the outline data compressing portion 18, for compressing the normal
outline data prepared by the image signal converting portion 14, that is,
for preparing the compressed outline data based on the normal outline
data. In the data compressing routine of FIG. 5, step SS1 is initially
implemented to read the current flag of the normal outline data prepared
in step S3. Then, the control flow goes to step SS2 to determine whether
the current flag is "S" or not. If an affirmative decision (YES) is
obtained in step SS2, the control flow goes to step SS3 to store as part
of the compressed outline data the flag "S", and the X and Y coordinate
data for the start point (X1, Y1) of the closed loop or outline. Thus, the
normal outline data for the start point (X1, Y1) is not compressed, and
the compressed data for the start point (X1, Y1) is the same as the normal
outline data, as indicated in the uppermost rows in FIGS. 4 and 6, which
indicate the sets of normal and compressed outline data for the start
point (X1, Y1). if a negative decision (NO) is obtained in step SS2, step
SS4 is implemented to determine whether the current flag of the normal
outline data is "L" or not.
If an affirmative decision (YES) is obtained in step SS4, the control flow
goes to step SS5 to determine whether the Y coordinate value of the end
point of the relevant straight line indicated by the flag "L" is the same
as the Y coordinate value of the start point of the relevant straight
line. If an affirmative decision (YES) is obtained in step SS5, step SS6
is implemented to omit the Y coordinate value of the end point of the
relevant straight line and change the flag from "L" to "L1", in preparing
the set of compressed outline data for this straight line. If a negative
decision (NO) is obtained in step SS5, the control flow goes to step SS7
to determine whether the X coordinate value of the end point of the
relevant straight line is the same as the X coordinate value of the start
point of the same straight line. If an affirmative decision (YES) is
obtained in step SS7, step SS8 is implemented to omit the X coordinate
value of the end point of the relevant straight line and change the flag
"L" to "L2" , in preparing the set of compressed outline data for this
straight line. If a negative decision (NO) is obtained in step SS7, the
control flow goes back to step SS1, and the above-indicated steps are
repeated. For preparing the set of compressed outline data from the set of
normal outline data for the end point (X2, Y2) of the first straight line
(start point of the first Bezier curve) indicated in the second row of
FIG. 4, the flag "L" is changed to "L1", and the Y coordinate value Y2 is
omitted in the compressed outline data. Namely, only the flag "L1" and the
X coordinate data X2 is stored in the memory 13 for the end point (X2,
Y2).
If a negative decision (NO) is obtained in step SS4, the control flow goes
to step SS9 to determine whether the current flag of the normal outline
data is "B" or not. If an affirmative decision (YES) is obtained in step
SS9, step SS10 is implemented to determine whether the Y coordinate value
of the first control point of the relevant Bezier curve indicated by the
flag "B" is the same as the Y coordinate value of the start point of the
relevant Bezier curve, while at the same time the X coordinate value of
the second control point of the relevant Bezier curve is the same as the X
coordinate value of the end point of the relevant curve. If an affirmative
decision (YES) is obtained in step SS10, namely, if the above-indicated
two conditions are satisfied, the control flow goes to step SS11 to omit
the Y coordinate value of the first control point of the relevant Bezier
curve and the X coordinate value of the end point of the same curve, and
change the flag "B" to "B1", in preparing the set of compressed outline
data for the relevant Bezier curve. If a negative decision (NO) is
obtained in step SS10, step SS12 is executed to determine whether the X
coordinate value of the first control point of the relevant Bezier curve
is the same as the X coordinate value of the start point of that curve,
while at the same time the Y coordinate value of the second control point
of the curve is the same as the Y coordinate value of the end point of the
curve. If an affirmative decision (YES) is obtained in step SS12, step
SS13 is implemented to omit the X coordinate value of the first control
point and the Y coordinate value of the end point of the relevant curve,
and change the flag "B" to "B2", in preparing the set of compressed
outline data for the relevant Bezier curve. If a negative decision (NO) is
obtained in step SS12, the control flow returns to step SS1. In preparing
the set of compressed outline data from the set of normal outline data
(indicated in the third row in FIG. 4) for the first and second control
points (X3, Y3), (X4, y4) and the end (X5, Y5) of the first Bezier curve,
the flag "B" is changed to "B1" and only the coordinate data X3, X4, Y4
and Y5 are stored in the memory 13, with the coordinate data Y3 and X5
being omitted in the compressed outline data, as indicated in the third
row in FIG. 6.
With the above-indicated steps being repeatedly executed, the batch of
compressed outline data as indicated in FIG. 6 is prepared from the normal
outline data as indicated in FIG. 4. Namely, a negative decision (NO)
obtained in step SS9 causes the control flow to go to step SS14 to
determine whether the current flag of the normal outline data is "*" or
not. If an affirmative decision (YES) is obtained in step SS14, step SS15
is implemented to store the flag "*" in the memory 13. Then, step SS16 is
implemented to determine whether the current flag of the normal outline
data is "!" or not. If an affirmative decision (YES) is obtained in step
SS16, step SS17 is executed to store the flag "!" in the memory 13. Thus,
the compressed outline data as indicated in FIG. 6 is prepared and stored
in the outline data memory 13.
The compressed outline data prepared by the data processing control portion
16 and outline data compressing portion 18 is smaller in volume than the
normal outline data prepared by the image signal converting portion 14.
Accordingly, the compressed outline data can be stored in a relatively
inexpensive, relatively small-capacity memory device such as a read-only
memory (ROM) provided in a printer or a display device. If the storage
capacity of the memory device is constant, the number of the characters
that can be stored in the memory device can be considerably increased,
according to the present arrangement. An experiment conducted by the
applicants indicated about 20% reduction of the required memory capacity
of a memory device for storing the compressed outline data prepared
according to the present invention, as compared with the required memory
capacity for storing the corresponding normal outline data conventionally
prepared for 70000 characters including letters according to the JIS LEVEL
1 and LEVEL 2, and symbols, which characters are available on a certain
printer.
Referring to FIG. 7, there is shown a printer indicated generally at 19,
which has an outline data memory 20 in the form of a read-only memory
(ROM) of a floppy disk which stores a batch of compressed outline data (as
indicated in FIG. 6 by way of example) prepared as described above. The
printer 19 further has a data processing device 22 for converting the
compressed outline data stored in the memory 20 into a corresponding batch
of normal outline data (as indicated in FIG. 4 by way of example). The
compressed outline data represent all characters available for
reproduction on the printer 19. The data processing device 22 includes a
data processing control portion 24 connected to the outline data memory 20
and a random-access memory (RAM) 28, and a data restoring portion 26
connected to the data processing control portion 24. As the data
processing control portion 24 receives code signals indicative of
characters to be printed, the control portion 24 reads corresponding sets
of the compressed outline data from the outline data memory 20, that is,
flags indicative of the characters and the X and Y coordinate data
corresponding to the flags. The data processing control portion 24
functions as means for determining whether or not any one of the X and Y
coordinate values of the segment specifying points of the outline of each
character is absent in the compressed outline data. If any X or Y
coordinate value is found omitted in the compressed outline data, the data
restoring portion 26 operates as data restoring means for restoring each
of the omitted X and Y coordinate values which are omitted in the
compressed outline data, to thereby prepare the corresponding normal
outline data usable for reproduction of the relevant character. The thus
prepared normal outline data is stored in the RAM 28. Thus, the data
processing device 22 incorporates a data restoring device for converting
the compressed outline data into the corresponding normal outline data.
The normal outline data is converted by the data processing device 22 into
corresponding dot data indicative of the presence and absence of image
dots which form the relevant character. In the present printer 19, the
character is printed and displayed according to the dot data.
Referring to the flow chart of FIGS. 8A and 8B, there will be described an
outline data restoring routine executed by the data processing portion 22
to convert the compressed outline data into the corresponding normal
outline data. In the outline data restoring routine, step SF1 is initially
implemented to read the current flag of the compressed outline data stored
in the memory 20. Then, the control flow goes to step SF2 to determine
whether the current flag is "S" or not. If an affirmative decision (YES)
is obtained in step SF2, step SF2' is implemented to store in the RAM 28
the flag "S" and the X and Y coordinate data (X1, Y1) of the start point
of the outline of the relevant character, as indicated in the uppermost
row of FIG. 6. If a negative decision (NO) is obtained in step SF2, the
control flow goes to step SF3 to determine whether the current flag is "L"
or not.
If an affirmative decision (YES) is obtained in step SF3, step SF3' is
executed to store in the RAM 28 the flag "L" and the X and Y coordinate
values of the end point of the relevant straight line indicated by the
flag "L". If a negative decision (NO) is obtained in step SF3, the control
flow goes to step SF4 to determine whether the current flag of the
compressed outline data is "B" or not. If an affirmative decision (YES) is
obtained in step SF4, step SF4' to store in the RAM 28 the flag "B"and the
X and Y coordinate values of the first and second control points and end
point of the Bezier curve indicated by the flag "B". In the compressed
outline data indicated in FIG. 6, there exist no flags "L" and "B", and a
negative decision (NO) is obtained in steps SF3 and SF4, whereby the
control flow goes to step SF5 to determine whether the current flag is
"L1" or not.
If an affirmative decision (YES) is obtained in step SF5, step SF5' is
implemented to restore the Y coordinate value of the end point of the
straight line indicated by the flag "L1", and change the flag "L1" to "L",
in preparing the set of normal outline data for the relevant straight
line. The restored Y coordinate value is the same as the Y coordinate
value of the start point of the relevant straight line. If a negative
decision (NO) is obtained in step SF5, step SF6 is implemented to
determine whether the current flag is "L2" or not. If an affirmative
decision (YES) is obtained in step SF6, step SF6' is executed to restore
the X coordinate value of the end point of the relevant straight line
indicated by the flag "L2", and change the flag "L2" to "L", in preparing
the set of normal outline data for the relevant straight line. The
restored X coordinate value is the same as the X coordinate value of the
start point of the relevant straight line. With steps SF5' and SF6'
executed as described above, the sets of compressed outline data indicated
in the second, fourth and sixth rows in FIG. 6 are converted into sets of
normal outline data indicated in the corresponding rows in FIG. 4.
Then, the control flow goes to step SF7 to determine whether the current
flag of the compressed outline data is "B1" or not. If an affirmative
decision (YES) is obtained in step SF7, step SF7' is implemented to
restore the Y coordinate value of the first control point of the Bezier
curve indicated by the flag "B1", and the X coordinate value of the end
point of the same Bezier curve, and change the flag "B1" to "B", whereby
the set of normal outline data for the relevant Bezier curve is prepared.
The restored Y coordinate value is the same as the Y coordinate value of
the start point of the relevant Bezier curve, while the restored X
coordinate value is the same as the X coordinate value of the second
control point of the curve. If a negative decision (NO) is obtained in
step SF7, the control flow goes to step SF8 to determine whether the
current flag is "B2" or not. If an affirmative decision (YES) is obtained
in step SF8, step SF8' is implemented to restore the X coordinate value of
the first control point of the Bezier curve indicated by the flag "B2",
and the Y coordinate value of the end point of the relevant Bezier curve,
and change the flag "B2" to "B", whereby the set of normal outline data
for the relevant Bezier curve is prepared. The restored X coordinate value
is the same as the X coordinate value of the start point of the relevant
curve, while the restored Y coordinate value is the same as the Y
coordinate value of the second control point of the curve.
With the above-indicated steps being repeatedly executed, the sets of
normal outline data indicated in the first through sixth rows of FIG. 6
are prepared from the corresponding sets of the compressed outline data.
Then, step SF9 is executed to determine whether the current flag is "*" or
not. If an affirmative decision (YES) is obtained in step SF9, step SF9'
is executed to store the flag "*" in the RAM 28. Then, step SF10 is
executed to determine whether the current flag is "!" or not. When an
affirmative decision (YES) is obtained in step SF10, step SF10' is
executed to store the flag "!" in the RAM 28. Thus, the compressed outline
data of FIG. 6 is converted into the normal outline data of FIG. 4, which
is stored in the RAM 28.
While the present invention has been described in its presently preferred
forms, it is to be understood that the invention is not limited to the
details of the illustrated embodiments, but may be otherwise embodied.
For instance, the outline data may represent an outline which consists of
at least one straight line, and at least one circular arc rather than at
least one Bezier curve used in the illustrated embodiments. Further, the
Bezier curves used in the illustrated embodiments may be replaced by
third-order spline curves. The principle of the present invention is also
applicable to outline data which represents an outline consisting of a
relatively large number of short straight lines which are connected end to
end so as to form a closed loop.
In the illustrated embodiments, the same X or Y coordinate value of a
plurality of successive segment specifying points is omitted for all but
one of these successive segment specifying points which follows the first
one of the successive segment specifying points as viewed in the direction
in which the successive points are processed. However, the same X or Y
coordinate may be omitted for at least one of the successive segment
specifying points, e.g., the first one or first and second ones of the
successive segment specifying points.
It is to be understood that the present invention may be embodied with
various other changes, modifications and improvements, which may occur to
those skilled in the art, without departing from the spirit and scope of
the present invention defined in the following claims.
Top