|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present invention relates to the art of generating alphanumeric
characters or other symbols for reproduction by a cathode ray tube (CRT),
a laser beam scanner or other flying spot character imaging device which
is capable of being electronically controlled. More particularly, the
present invention concerns a font storage system for use in a character
generator whereby a font of characters or other symbols are stored in a
digital code.
The field of automated typesetting has experienced ever-accelerating
advances since Ottmar Mergenthaler developed the Linotype.RTM. machine for
semi-automatically producing lines of type. The Linotype machine and its
progeny of "hot metal" typesetters have been called the first generation
of automatic typesetters. These typesetters were refined over the years
and are still in use in some locations.
The second generation of typesetters, which were pioneered by Rene Higonnet
and Louis Moyroud, among others, are called photo-mechanical typesetters,
or simply phototypesetters. In these machines, one or more fonts of
characters are arranged on a photographic negative. Selected characters
are automatically projected through an optical system and positioned in a
line on photographic film. Not only are these phototypesetters now less
expensive than their first generation parents, but refinements in the
machines led to faster speed, better quality and greater typographic
flexibility. Phototypesetters are currently enjoying a period of maximum
use in the graphic arts industry, but are being improved upon by third
generation machines: the so-called CRT (and laser) typesetters.
In CRT typesetters characters are electronically generated and written onto
photographic film, thus eliminating most of the mechanical movements
characteristic of second generation phototypesetters. This change from
mechanics to electronics is resulting in still faster speed and greater
typographic flexibility, as well as less frequent adjustments and fewer
changes in "font dressings" or stored fonts which are necessary on all
second generation typesetters. The CRT typesetters are, as a rule, more
expensive than their second generation counterparts so that, while they
have become the dominant machines in the newspaper market, they are only
just beginning to gain significance in non-newspaper applications. It is
expected, however, that the price of CRT typesetters will come down as
volume increases and new machines are developed to take advantage of
advances in electronic circuit technology.
There are generally two methods by which character fonts are stored in
third generation typesetters. The so-called "analog" machines store the
character masters on photographic film grids. These masters are scanned
with a flying spot scanner at the same time that the character is imaged
in the appropriate size on the output CRT. A second class of machines, the
so-called "digital" machines, rely on character masters which have been
coded in digital form and stored on some kind of digital storage medium in
the machine. With such digital machines the ability to store a large font
library within the typesetter is limited only by the cost of providing a
storage medium of suitable size so that it is not normally necessary for
the user to repeatedly "dress" the machine by inserting new fonts. In
addition, the digital machines are at least twice as fast as the fastest
analog (photographic store) machines and are capable of imaging cleaner,
more uniform characters than the analog machines.
Originally, when digital CRT typesetters were first introduced, the
principal concern in preparing digital font masters was simply data
reduction. In order to reproduce characters which were indistinguishable
from characters imaged from photographic masters or printed by cast type
faces, it is necessary to encode each character with a relatively fine
grid; i.e., a "matrix" with a high resolution or density of raster
elements. At a minimum, and for small characters, the grid may comprise 70
columns and 100 rows or 7,000 raster elements. If the presence or absence
of a portion of a character in each raster element is represented by one
bit, 7,000 bits of information are required to represent all elements of
the grid. The U.S. Pat. No. 3,305,841 to Schwartz discloses a CRT
typesetter in which the number of bits required to represent a character
is compressed at least by a factor of 3 in every case, and by a factor of
5 or more in an average case. This data reduction is accomplished by
identifying with a digital code the starting and ending points of the line
segments (dark portions) of a character in each row or column of the grid.
Thus, in a grid comprising 7,000 raster elements, the data required to
define a character was reduced from 7,000 bits to approximately 1,500.
The U.S. Pat. No. 3,471,848 to Manber discloses an improvement on the
above-noted system which permits an additional reduction in data. With
this system, the starting and ending points of a line segment within a row
or column of the grid are encoded as an incremental increase or decrease
from the starting and ending points, respectively, on a line segment in
the previous row or column. Data compression is achieved because the
numbers required to define the incremental addresses of a line segment are
smaller than the numbers required to define the absolute addresses.
The Pat. Nos. 3,305,841 and 3,471,848 also disclose a number of other
techniques of data compression with digitally encoded characters:
(1) The provision of a code which indicates the number of blank rows or
columns on one side or the other (or both sides) of the character.
(2) The provision of a "line repeat" code which indicates that the line
segment or segments in a row or column are at the same position(s) as the
segment(s) of the previous row or column.
(3) The provision of a code indicating that a selected start or end of a
line segment address is to be repeated a prescribed number of times.
Notwithstanding the various techniques of data reduction, digital font
masters produced in accordance with the teaching of the U.S. Pat. Nos.
3,305,841 and 3,471,848 are appreciably more expensive than the
photographic masters used in the analog CRT typesetters. There are two
fundamental reasons for this:
(1) The digital machines size type by varying the spacing of strokes on the
output tube. There are practical limits as to how far up and down an image
can be sized in this fashion. Therefore, these machines have required
several different master fonts in order to cover a complete range of
output sizes.
(2) Digitizing type fonts is a tedious, time consuming process. Character
masters are first prepared on a standard grid and then scanned
automatically to determine which raster points on the grid fall within the
character. The resulting dot matrix is then "digitized" in accordance with
a particular code and stored in a machine readable form.
The U.S. Pat. No. 4,029,947 to Evans et al. discloses a character encoding
and decoding scheme for a CRT typesetter which makes it possible to
eliminate the first disadvantage noted above. This is accomplished by
encoding the normalized character outline (as distinguished from
size-related character row or column line segments) with a series of
successive slopes and curvatures from an initial starting point or points
for the character. For this purpose, a large number of slopes and
curvatures are available for selection by the encoder, with each of such
slopes and curvatures being identified by its individual binary code
number.
Another character representation scheme which treats characters in terms of
normalized character outlines was used by the Model 1601 CRT typesetter
manufactured by SEACO Computer Display in Garland, Tex. This machine,
which is disclosed in the Seybold Report, Vol. 1, Nos. 12 and 13 (Feb. 14
and 28, 1972), stored the absolute coordinates of a number of points on
the character outline. Data reduction was achieved because intermediate
points on the outline between stored points were considered to follow
straight lines between the stored points.
The SEACO 1601 CRT typesetter, as well as the typesetter disclosed in the
U.S. Pat. No. 4,029,947, determine the data required for imaging the
character over a range of point sizes from a single set of encoded
character outline data by means of a calculation procedure, carried out
either by software or hardware. In contrast, the CRT typesetters disclosed
in the U.S. Pat. Nos. 3,305,841 and 3,471,848 perform a minimum of
calculation because the information required to "stroke" successive line
segments (i.e., the start and end addresses of each line segment) are
present in the data.
Thus, while various digital character encoding schemes have been defined in
the art for CRT typesetters, no scheme has been devised which optimally
meets all the various requirements. These are:
(1) The encoding scheme should be conservative of space in digital memory.
(2) A single set of data defining a character should be usable to generate
character images in all point sizes.
(3) The encoded data should be capable of being converted into the form
required to control the CRT by a relatively simple and easy-to-automate
computation procedure.
(4) The character encoding scheme should be defined by rules which are
easily automated, so that the coded data may be generated from
photomasters, raw dot matrices or from some other code by a digital
computer.
SUMMARY OF THE INVENTION
The present invention provides a digital encoding scheme for characters or
symbols, and an associated font storage system, which meets all of the
above-noted requirements.
According to the invention, characters are defined by encoding their
outlines on a normalized grid of first and second coordinates, as follows:
(1) A starting point on a character outline is chosen and the first and
second coordinates of this point are stored.
(2) One or more straight line vectors which extend successively along the
character outline from the start point, and closely approximate the
outline, are chosen. Each vector is then represented by a first digital
number defining the first coordinate distance, and a second digital number
defining the second coordinate distance from one end of the vector to the
other.
The vector outline encoding scheme according to the present invention meets
the four requirements set forth above. This encoding scheme is, above all,
conservative of space and memory. According to a preferred feature of the
invention, the first and second digital numbers defining each vector are
limited in size. For example, with a moderately high resolution such as
432 units to the "em" square, they may be 4-bit numbers so that a vector
is represented by one byte (eight bits) of data. An analysis has shown
that by far the majority of vectors required to define a character are
within 15 units in the first and second coordinate directions on the grid.
The vector encoding scheme also inherently provides incremental distances
in both the first and second coordinate directions from the tip of the
previous vector. These incremental distances can be defined with less
information than the absolute coordinates of a vector tip. In addition,
the start point and vector data are presented in a prescribed sequence
which, by itself, associates the data with specific character outlines. As
a result of these three factors, the present encoding scheme compares
favorably with all the prior schems of digitizing characters in the amount
of data required to define a character, and in the complexity and speed of
the hardware required to process this data.
Furthermore, a single set of character encoding data according to the
invention is usable to generate character images in all point sizes. It is
necessary only to compute the intersections between each horizontal or
vertical stroke and the character outlines to determine when the CRT or
laser beam should be turned on or off. The straight line vectors defined
by the encoded data make it possible to carry out this computation with a
minimum of hardware (or software) and at high speed.
Finally, the character encoding data according to the invention may be
derived automatically from raw dot matrix information or from some other
digitized code in a relatively straight-forward way using a programmed
digital computer. In particular, in accordance with a preferred method of
encoding, the straight line vectors are chosen by first determining
successive coordinate points on each outline for which the outline
deviates less than a prescribed distance from a straight line drawn
between these points. Once the outline points are determined, the first
and second coordinate values of each successive point are subtracted from
the first and second coordinate values of the previous point to determine
the coordinate increments from point to point. These increments are then
stored as the 4-bit first and second digital numbers defining each vector.
In summary, the font storage system according to the present invention
exhibits a combination of features which makes it uniquely suited for
defining fonts of characters in digital form. Further features and
advantages of this system will become apparent from the following detailed
description, taken in conjunction with the various figures.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a normalized X,Y grid with the outline of an upper case "Q"
superimposed thereon. The closest coordinate intersection points to the
outline are also indicated.
FIG. 2 is a normalized X,Y grid similar to FIG. 1 in which certain
intersection points representing the character outline have been deleted.
FIG. 3 is a normalized X,Y grid similar to FIGS. 1 and 2 in which
additional intersection points have been deleted and straight line vectors
between remaining points have been inserted in accordance with the present
invention.
FIG. 4 is a trial matrix used in the automatic selection of vectors, in
accordance with the present invention, to represent a character outline.
FIG. 5 is a flow chart indicating the steps which are taken in the
automatic selection of vectors to represent a character outline.
FIGS. 6A-6E illustrate one preferred format of digital data for the
character encoding scheme according to the present invention.
FIG. 7 is a normalized X,Y grid with the outlines of a representative
"character" defined by start points and vectors following the arrangement
shown in the left-hand side of FIG. 3.
FIG. 8 shows the actual coding for the character represented in FIG. 7
using the data format illustrated in FIG. 6.
FIGS. 9A-9D illustrate another preferred format of digital data for the
character encoding scheme according to the present invention.
FIG. 10 illustrates a representative character superimposed on a normalized
X-Y grid with the character outlines defined by start points and vectors
following the arrangement shown in the right-hand side of FIG. 3.
FIG. 11 shows the actual coding for the character represented in FIG. 10
using the data format illustrated in FIG. 9.
FIG. 12 is a plan view of a hard-sectored floppy disk with sectors and
tracks indicated.
FIG. 13 is a chart illustrating how the font and character data are
arranged (recorded) on a floppy disk.
FIG. 14 is a chart detailing the character look-up and width file shown in
FIG. 13.
FIG. 15 shows an upper case "Q" as generated by vertical "strokes" on the
face of a CRT.
FIG. 16A shows a typical character having its outline bounded by straight
line vectors which intercept vertical scan lines.
FIG. 16B illustrates how the character of FIG. 16A is imaged in a
particular character width by the vertical scan lines.
FIG. 17A shows a typical character having its outline bounded by straight
line vectors which intercept vertical scan lines.
FIG. 17B illustrates how the character of FIG. 17A is imaged in a
particular character width by the vertical scan lines.
FIG. 18 illustrates how stroke end points (interrupt values) are determined
by interpolation from encoded character data.
FIG. 19 illustrates how stroke end points (intercept values) are determined
by averaging from encoded character data.
FIG. 20 is a perspective view of a CRT typesetter with various elements
shown in phantom.
FIG. 21 is a block diagram of the elements of the typesetter shown in FIG.
20.
FIGS. 22A and 22B are block and signal diagrams, respectively, showing the
structure and operation of the character generator element of FIG. 21.
FIG. 23 shows the code converter element of FIG. 21 with its various inputs
and outputs.
FIG. 24 is a block diagram of the elements of the code converter shown in
FIGS. 21 and 23.
FIG. 25 is a block diagram of the master controller element of the code
converter shown in FIG. 24.
FIG. 26 is a geometric diagram illustrating the vector computation process
carried out by the code converter.
FIG. 27 is a flow chart illustrating the operation of the scaler element of
the code converter.
FIG. 28 is a geometric diagram illustrating the interpolation process
carried out by the code converter.
FIG. 29 is a block diagram of the RAM addressing portion of the code
converter.
FIG. 30 is a block diagram of the scaler element of the code converter.
FIG. 31 is another flow chart illustrating the operation of the scaler
element of the code converter.
FIG. 32 is a geometric diagram illustrating the averaging process carried
out by the code converter.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The preferred embodiments of the present invention will now be described in
detail. The first portion of this section is directed to the font storage
system, with its novel and advantageous scheme for digitally encoding
characters or symbols. The second portion concerns apparatus which is
capable of imaging characters defined by the font storage system.
FIG. 1 shows, by way of example, a greatly enlarged version of an upper
case "Q" superimposed on a grid or matrix of horizontal and vertical
lines. Each character or symbol that is recorded is located on such a
grid. Horizontal and vertical resolution are indicated to be the same in
FIG. 1, but this is not necessary. The characters may be of any width, and
are situated on a "base line". Each character or symbol is also considered
to include a "white space" about the character, and is fitted within
character width edges called the left and right side bearings (LSB and
RSB).
The lines in the grid shown in FIG. 1 may be represented (numbered) by the
X and Y coordinates of a Cartesian coordinate set. Any point within the
grid may be designated by the coordinates (X, Y) of the nearest
intersection of a horizontal and vertical line. The left-most vertical
edge of the character zone is designated X=0 and the horizontal base line
is designated Y=0.
When a character, such as the upper case Q shown in FIG. 1, is to be
digitally encoded it must first be plotted onto the grid in such a way
that all values of X and Y are represented as integers. By eliminating
fractional values of the coordinates, the numbers representing X and Y may
be kept small. As shown in FIG. 1, the outlines of the character "Q" are
plotted by choosing the closest intersection points on the grid. Each of
these points may thus be represented by its X,Y coordinates, where X and Y
are integers. It is therefore possible to completely define--i.e.,
digitally encode--the character by listing all of these coordinates,
preferably in some ordered sequence. However, since the grid or matrix
must have a sufficient line density to eliminate a jagged appearance of
the character, even when the character is imaged in the largest point
size, a definition of the character in this manner would require an
excessive amount of storage space. For example, for the upper case "Q"
shown in FIG. 1 there are 267 outline coordinate points defined within a
60.times.80 matrix. If the matrix density is increased by a factor of 10
in each orthogonal direction (a more practical matrix for quality
typesetters) the character "Q" would have about 2,500 coordinate points.
Since each coordinate in a 600.times.800 matrix requires 20 bits of data
to define (10 bits each for X and Y) one would require about 50K bits to
represent the upper case "Q". Since a typical font has more than 100
characters, a typesetter would have to have a high-speed memory with a
capacity of about 60 million bits to store a single font in this type of
code.
FIG. 2 illustrates how the number of X, Y coordinate points defining a
character may be reduced by designating only the first and last points in
a vertical or horizontal line (coordinate). The character "Q" has been
divided in half in the figure. On the left side are the terminal outline
points of the vertical lines; and on the right side are the terminal
outline points of the horizontal lines. By comparing FIGS. 1 and 2, it may
be seen that the total number of coordinate points is substantially
reduced. Wherever a vertical line of points appears in the character, as
is the case along the left-hand side of the character, all the points
intermediate the two end points are deleted with the vertical outline
code. Similarly, wherever a horizontal line of points appears in the
character, as is the case at the top of the character, the intermediate
points are deleted with the horizontal outline code. Particularly if
coordinate points are represented by relative distances from previous
coordinate points, rather than by absolute coordinates, there is a
considerable reduction in the amount of data required to define the
character. Such a representation would be substantially the same as the
character encoding scheme disclosed in the aforementioned U.S. Pat. No.
3,305,841 to Schwartz and the U.S. Pat. No. 3,471,848 to Manber.
The present invention provides an encoding scheme which is even more
conservative of storage space than the character representation shown in
FIG. 2, and which may be utilized in a typesetter, with a minimum of
computational hardware, to image characters at high speed. Furthermore,
this character encoding scheme may be automated in a straight-forward way
using a programmed digital computer.
FIG. 3 illustrates the encoding scheme according to the present invention.
According to this scheme, the number of coordinate points along the
character outlines is reduced still further, and it is assumed that these
points are interconnected by straight lines. Rather than specifying the
absolute coordinates of these selected points around the character
outline, the straight lines are represented as "vectors" by the number of
coordinate units from one end of the vector to the other. The vectors are
arranged in sequence, from head to tail, so that a new vector begins where
a previous vector ends. A series or string of such vectors, which form an
outline of the character, emanate from an initial "start point" which is
given in absolute coordinates.
For instance, as is shown in the left-half of FIG. 3, vectors proceed from
left to right, with the convention that if two vectors commence from the
same X coordinate, the lower-most vector is listed first. Similarly, when
a pair of pairs of start points are given, the lower pair and the lower
start point are listed first.
Thus, in FIG. 3 the start points X.sub.1, Y.sub.1 and X.sub.2, Y.sub.2 are
first given in that order. Thereafter, the vectors emanating from these
start points are listed in the order: 1, 2, 3, 4. The numbers defining
these vectors are set forth in Table I:
TABLE I
______________________________________
Vector Number
X Distance Y Distance
______________________________________
1 2 -7
2 2 6
3 4 -6
4 4 7
______________________________________
When the vectors 3 and 4 have run out, it is necessary to define two new
start points X.sub.3, Y.sub.3 and X.sub.4, Y.sub.4 before proceeding with
new vectors. Otherwise, because the character data proceeds from left to
right, one would assume that there were no vectors or start points having
X coordinate values in the X coordinate range of the next two vectors.
After giving the start points X.sub.3, Y.sub.3 and X.sub.4, Y.sub.4 the
vectors are listed in the order 5, 6, 7, 8 using the convention
bottom-to-top. Further vectors are then listed in the order left-to-right,
bottom-to-top; i.e., in the order in which they "run out" as one proceeds
to the right along the X axis.
Normally, start points occur in pairs; however, it is possible for two
vectors to emanate from the same start point as illustrated by the vectors
9 and 10. In this case, it is convenient if the same start point be
considered a "pair" of start points with identical values so that the
vector 9 proceeds from the coordinate point X.sub.5, Y.sub.5 and the
vector 10 proceeds from the point X.sub.6, Y.sub.6.
The right-hand side of FIG. 3 illustrates the same encoding scheme with a
different convention. In this case, the vectors of a character are listed
from top to bottom in an entire string following initial absolute
coordinates of the upper-most point of a vector string. In the case of two
start points having the same Y coordinate value, either point may be
listed first.
With the outline shown in the right-hand side of FIG. 3, the order of data
is as follows: The start point X.sub.7, X.sub.7 and its vectors 11, 12, 13
and so on to the end of the string; the start point X.sub.8, Y.sub.8 and
so on to the end of the string; the start point X.sub.9, Y.sub.9 ; the
vectors 17 and 18; the start point X.sub.10, Y.sub.10 ; the vector 19 and
so on.
Finally, as in the case of the start point X.sub.5, Y.sub.5 and X.sub.6,
Y.sub.6, a single point is defined as a "pair" of start points X.sub.11,
Y.sub.11 and X.sub.12, Y.sub.12. First the point X.sub.11, Y.sub.11 is
listed with its vector 20; then the start point X.sub.12, Y.sub.12, is
listed followed by the vector 21 and the other vectors of the string. The
vector 20 terminates at the end point 22. The vector string starting with
the vector 21 terminates at the end point 23. And the vector string
starting with the vector 11 terminates at the end point 24.
There are two reasons why the start point and vector encoding scheme
according to the present invention is more conservative of space in memory
than the encoding scheme illustrated in FIG. 2 and disclosed in the
aforementioned U.S. Pat. Nos. 3,305,841 and 3,471,848:
(1) Most characters, unlike the "Q" which was chosen for illustration,
include a number of straight lines in their outlines.
(2) Even curved surfaces can be represented with adequate accuracy by a
succession of straight line vectors of sufficient length that considerable
data reduction is possible.
Experience has shown that the amount of data required to define a font of
characters with the encoding scheme according to the present invention is
reduced, over the scheme disclosed in the Patents Nos. 3,305,841 and
3,471,848, by about a factor of 10.
A further advantage of the encoding scheme according to the present
invention is that it lends itself to computer automation. That is, once
the digital data defining a character has been reduced to the format shown
in FIG. 2, with either vertical or horizontal outlines, it may be
converted into start point and vector data using a simple,
straight-forward algorithm. FIG. 4 illustrates a typical calculation, and
FIG. 5 such an algorithm which may be used to determine the length of a
vector.
FIG. 4 shows a 15.times.15 trial matrix arranged in the upper right
quadrant from a point (0,0) which may be an initial start point or the tip
of a previous vector. The quadrant of the trial matrix assumes that a
left-right vector is to be defined which extends upwardly (positive values
of Y). Clearly, the trial matrix may also be positioned in one of the
other quadrants depending upon the direction in which the vector extends.
Also, the size of the trial matrix corresponds to the maximum permissible
length of a vector (in this case 15 units each in the X and Y directions,
respectively). If the vectors are chosen to have a greater or lesser
maximum length, the size of the matrix is adjusted accordingly.
In this example, the points 30 represent the actual digitized outline of
the character in the format shown in FIG. 2. The line 32 is a proposed
vector which must be tested to determine whether it comes sufficiently
close to the most distant outline point to represent the outline. The
coordinates X, Y define the current trial point for the tip of the vector
32. The coordinates of all of the outline points 30 are designated
x.sub.0, y.sub.0 ; x.sub.1, y.sub.1 ; . . . x.sub.15, y.sub.15, in
accordance with their sequence along the X axis of the matrix.
As is shown in FIG. 5, the first outline point to be tested is the point on
the matrix with the largest forward (in this case X) component from the
point (0,0). In FIG. 4, the first trial point X.sub.T, Y.sub.T is (15,9).
The fourth trial point, where X.sub.T, Y.sub.T are coordinates (12,9) as
shown in FIG. 4, is tested after fit failure on the three prior trial
points: (15,9), (14,9), and (13,9). The purpose of the algorithm is to
find the longest vector that passes the fit test. The algorithm tests each
lower valued outline point 30 (with coordinates x, y) to determine whether
a perpendicular distance .delta. from that point to the vector drawn from
the initial point (0,0) to X.sub.T, Y.sub.T exceeds a preset fit constant
K. Initially, the coordinates x, y of the point 30 just prior to the trial
point X.sub.T, Y.sub.T are chosen and the test is performed. If the
distance .delta. is less than the constant K (the test is passed) the
outline point 30 with the next lowest value of X is chosen and the test is
repeated. If the distance .delta. exceeds the constant K (the test failed)
the test point X.sub.T, Y.sub.T is abandoned and the lowest value of
X.sub.T is chosen.
When a trial point is found for which all the outline points 30 with lower
X coordinates pass the test, or when the X coordinate X.sub.T of the trial
point has been reduced to one, the coordinates X.sub.T, Y.sub.T are used
in defining the vector. The vector is then represented by the difference
between the coordinates of the last previous vector tip (coordinate (0,0)
in the trial matrix) and the coordinates of the chosen trial point
X.sub.T, Y.sub.T. That is, dx, dy is set equal to X.sub.T, Y.sub.T.
The perpendicular test distance .delta. is determined for each point by
simple geometry. Using similar triangles, we have:
##EQU1##
.DELTA.y=y.sub.6 -x.sub.6 (Y.sub.T /X.sub.T).
Solving for .delta.:
##EQU2##
.delta.=[TABLE I value @X.sub.T, Y.sub.T ].multidot.[y.sub.6 -x.sub.6
(TABLE II value @X.sub.T Y.sub.T)]
The values of
##EQU3##
and Y.sub.T /X.sub.T may, of course, be calculated each time by a
computer. However, since there are a limited number of X.sub.T, Y.sub.T
points in a 15.times.15 matrix, it is more convenient if all the possible
solutions for these expressions be entered in a TABLE I and a TABLE II,
respectively, so that they may be quickly looked up and retrieved from
storage.
In addition, it should be noted that the preset fit constant may be chosen
arbitrarily small so that the vectors come as close as desired to the
actual character outline. In a preferred embodiment the constant K is made
dependent upon the slope of the | | |