WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Typesetter character generating apparatus    
United States Patent4199815   
Link to this pagehttp://www.wikipatents.com/4199815.html
Inventor(s)Kyte; Derek J. (Amerscham, GB2); Hansen; Walter I. (Cold Spring Harbor, NY); Craig; Roderick I. (Cheltenham, GB2)
AbstractA font storage system for use in a typesetter having an electronically controlled character imaging device. The storage system, which preferably includes a floppy disk, has digital information stored thereon defining each character to be typeset by at least two outlines on a normalized X-Y grid. The digital information defining each character includes (1) digital numbers defining the X and Y coordinates of the initial start points of the outline and (2) digital numbers defining a plurality of straight line vectors extending successively along the character outlines. Each vector has a first digital number representing the X coordinate distance and a second digital number representing the Y coordinate distance from one end of the vector to the other.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4199815
Typesetter character generating apparatus - US Patent 4199815 Drawing
Typesetter character generating apparatus
Inventor     Kyte; Derek J. (Amerscham, GB2); Hansen; Walter I. (Cold Spring Harbor, NY); Craig; Roderick I. (Cheltenham, GB2)
Owner/Assignee     Electra Corporation (Toledo, OH)
Patent assignment
All assignments
Publication Date     April 22, 1980
Application Number     05/905,451
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     May 12, 1978
US Classification     345/469 345/469.1 345/551 382/305 396/551
Int'l Classification     G06F 003/14 B41B 019/00
Examiner     Ruggiero; Joseph F.
Assistant Examiner    
Attorney/Law Firm     Rosenblatt; Joel I.
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/523 364/514 364/515 364/518 364/200 MS File 364/900 MS File 340/728 340/732 340/736 340/739 340/741 340/740 340/747 340/748 340/749 340/750 340/799 340/803 340/804 358/260 358/261 358/262 358/263 354/7
Patent Tags     typesetter character generating
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
3305841



[0 after 0 votes]
3471848



[0 after 0 votes]
4029947
Evans
345/472
Jun,1977

[0 after 0 votes]
3946365
Bantner
345/14
Mar,1976

[0 after 0 votes]
3735389
Tarczy-Hornoch
345/16
May,1973

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A typesetter for the automatic generation of characters comprising a character imaging system for writing graphics quality characters of any design on a print medium; a font storage system having digital data stored thereon defining each character to be imaged; and an electronic computation and control system, connecting said font storage system with said character imaging system, for controlling said character imaging system in accordance with said digital data;

said character imaging system including a flying spot scanning device for writing characters by means of a plurality of parallel scanning strokes;

said font storage system including a storage medium on which are recorded said digital data having:

(a) digital numbers defining the first and second coordinates of the start points of at least two outlines of a character that is superimposed on a normalized encoding set of first and second coordinates; and

(b) digital numbers defining a plurality of straight line vectors extending successively along the character outlines from said start points, each vector having a first digital number representing the first coordinate distance and a second digital number representing the second coordinate distance from one end of the vector to the other; and

said computation and control system including:

(a) means for randomly accessing said stored digital data and supplying said digital data in sequence; and

(b) means, adapted to receive said digital data in sequence, for converting said digital data into character intercept values for each stroke of said scanning device.

2. The typesetter recited in claim 1, wherein said flying spot scanning device is a CRT.

3. The typesetter recited in claim 1, wherein said print medium is a photosensitive sheet.

4. The typesetter recited in claim 1, wherein said means for randomly accessing said stored digital data include a digital computer and random access memory connected to said storage system,

whereby said digital data is transferred into said random access memory from said font storage system and transferred out to said converting means under control of said computer.

5. The typesetter recited in claim 1, wherein said computation and control system further includes input means for supplying operating instructions including the identity and the point size of characters to be imaged, and

wherein the identity of the characters to be imaged is supplied to said accessing means for selecting the appropriate stored digital data, and wherein said point size is supplied to said converting means for computation of said character intercept values.

6. The typesetter recited in claim 5, wherein one of said first and second coordinates is parallel to said scanning strokes, wherein said intercept values are the values of said one coordinate at the points of intersection with said vectors at each successive value of the other coordinate, and wherein the intercept values are computed for successive values of said other coordinate by adding the slope of each vector associated with said intercept value to be computed to the respective intercept value corresponding to the immediately preceding value of said other coordinate.

7. The typesetter recited in claim 1, wherein said character imaging system has a fixed output resolution, and wherein said converting means include means, responsive to said point size, for adjusting the number of scan lines required to define a character, thereby to scale the character in one coordinate direction.

8. The typesetter recited in claim 1, wherein said converting means include means for interpolating said character intercept values for imaging the characters with a finer resolution than the resolution of said normalized encoding set of first and second coordinates.

9. The typesetter recited in claim 1, wherein said converting means include means for averaging said character intercept values for imaging characters with a coarser resolution than the resolution of said normalized encoding set of first and second coordinates.

10. The typesetter recited in claim 1, wherein said digital data further includes at least one digital number defining whether a character is to be kerned, and wherein said converting means are responsive to said at least one number to compute intercept values for kerned characters in kerned positions.

11. The typesetter recited in claim 1, wherein said storage medium is a floppy disk and said font storage system further includes a floppy disk reader for selectively reading said digital data from said floppy disk.

12. The typesetter recited in claim 1, wherein each of said first and second digital numbers have a prescribed upper limit.

13. The typesetter recited in claim 12, wherein the distance between successive ones of said first and second coordinates are equal, and wherein said first and second digital numbers have the same upper limit.

14. The typesetter recited in claim 12, wherein said prescribed upper limit for each of said first and second digital numbers is chosen to minimize the total quantity of data defining a font of characters for a given resolution.

15. The typesetter recited in claim 12, wherein said first and second digital numbers are each 4-bit binary numbers,

whereby each vector is defined by one data byte.

16. The typesetter recited in claim 12, wherein said first and second digital numbers are each 8-bit binary numbers,

whereby each vector is defined by one data word.

17. The typesetter recited in claim 1, wherein at least one of said start points is represented as a digital number defining the horizontal distance from the left side of the coordinate set to the start point and another digital number defining the vertical distance from the character base line to the start point.

18. The typesetter recited in claim 1, wherein at least one of said start points is represented as a digital number defining the vertical distance from the upper edge of the nominal extended em square to the start point, and another digital number defining the horizontal distance from the character left side bearing to the start point.

19. The typesetter recited in claim 1, wherein at least some of said characters are further represented by a digital number defining a control code specifying one end of the character.

20. The typesetter recited in claim 1, wherein at least some of said characters are further represented by a digital number defining a control code specifying one of at least the following control functions:

(1) start two new outlines of the character; and

(2) end two outlines of the character.

21. The typesetter recited in claim 1, wherein at least some of said characters are further represented by a digital number defining a control code which modifies a stored vector by specifying the addition of a prescribed value to one of said first and second digital numbers without the addition to the other of said first and second digital numbers.

22. The typesetter recited in claim 1, wherein at least some of said characters are further represented by a digital number defining a control code specifying that the beginning of a vector is displaced from the end of the previous vector along one of said first and second coordinates by a given value.

23. The typesetter recited in claim 1, wherein at least some of said characters are further represented by a digital number defining a control code which specifies that at least one subsequent vector occurs in a different quadrant.

24. The typesetter recited in claim 1, wherein said digital numbers are set forth in a prescribed order such that, by their order, said digital numbers are associated with their respective outlines.

25. The typesetter recited in claim 24, wherein said digital numbers defining the first and second coordinates of a start point precedes said digital numbers defining the vector extending from that start point.

26. The typesetter defined in claim 24, wherein said digital numbers defining said first and second coordinates of said start points are arranged in the order of low to high values of said first and second coordinates.

27. The typesetter recited in claim 24, wherein the digital numbers defining said plurality of vectors are arranged in the order of increase of one of said first and second coordinates of the start of each vector.

28. The typesetter recited in claim 24, wherein the digital numbers defining said plurality of vectors are arranged such that the vectors of an entire string are successively defined before defining the vectors of another string.

29. The typesetter recited in claim 1, wherein said storage medium is a hard-sectored floppy disk; and wherein a font index specifying the initial track and sector address of one or more fonts is recorded on a specified track and sector thereof.

30. The typesetter recited in claim 29, wherein the data defining at least one font of characters are arranged in a connected string with a chain address at the end of each sector defining the address of the next following track and sector in which the font data continues.
 Description Submit all comments and votes
 


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