U.S. patent number 3,893,100 [Application Number 05/427,023] was granted by the patent office on 1975-07-01 for variable size character generator with constant display density method.
This patent grant is currently assigned to Data Royal, Incorporated. Invention is credited to Charles W. Stein.
United States Patent |
3,893,100 |
Stein |
July 1, 1975 |
Variable size character generator with constant display density
method
Abstract
A method and apparatus for producing variable size alphanumeric,
punctuation and other symbol characters having a constant display
density. Each character is defined through a matrix by a
combination of size independent shapes. Only six such shapes are
employed to generate all of the characters. Variable sizing of the
characters is achieved by expanding the shapes in both the X and Y
directions. The display density is maintained within each shape at
a constant level that is independent of the degree of expansion of
the shape.
Inventors: |
Stein; Charles W. (Nashua,
NH) |
Assignee: |
Data Royal, Incorporated
(Nashua, NH)
|
Family
ID: |
23693166 |
Appl.
No.: |
05/427,023 |
Filed: |
December 20, 1973 |
Current U.S.
Class: |
345/472.3;
400/124.3; 178/30; 382/298 |
Current CPC
Class: |
G06K
15/10 (20130101); G09G 5/26 (20130101); G09F
9/30 (20130101); G06K 2215/0057 (20130101) |
Current International
Class: |
G09G
5/26 (20060101); G09F 9/30 (20060101); G06K
15/02 (20060101); G06K 15/10 (20060101); G09f
009/32 () |
Field of
Search: |
;340/324AD,336
;178/15,30,DIG.3 |
References Cited
[Referenced By]
U.S. Patent Documents
Primary Examiner: Curtis; Marshall M.
Attorney, Agent or Firm: Birch; Richard J.
Claims
What I claim and desire to secure by Letters Patent of the United
States is:
1. A method for producing variable size, matrix defined and point
displayed characters comprising the steps of:
1. defining each character through a matrix having a predetermined
number of components, said components each having one of a
predetermined number of size independent, component shapes with
each component being an element of the matrix;
2. generating a plurality of binary display signals corresponding
to said component shapes and the desired component size to be
displayed with one binary state representing a display condition
and the other binary state representing a no-display conditon;
and,
3. applying said display signals to a point display with the
display density of the points remaining the same regardless of the
size of said character.
2. A method for producing variable size matrix printed characters
comprising the steps of:
1. defining each character through a matrix having a predetermined
number of components, said components each having one of a
predetermined number of size independent, component shapes with
each component being an element of the matrix;
2. generating a plurality of binary printing signals corresponding
to said component shapes and the desired component size to be
printed with one binary state representing a print condition and
the other binary state representing a no-print condition;
3.
3. converting said plurality of binary printing signals into a
signal format that is compatible with the printing line format of a
matrix printer; and,
4. applying said converted printing signals to a matrix printer
with the matrix printing density of the printing points remaining
the same
regardless of the size of said character. 3. The method of claim 1
wherein each character is defined through a 5 .times. 7 matrix
having thirty five components.
4. The method of claim 1 further comprising the steps of buffering
said converted printing signals before they are applied to said
matrix printer.
5. The method of claim 1 wherein said predetermined number of size
independent component shapes is six.
6. The method of claim 5 wherein said component shapes are: (1) an
empty area; (2) a filled in square; (3) a filled in triangle at
0.degree.; (4) a filled in triangle at 90.degree.; (5) a filled in
triangle at 180.degree.; and, (6) a filled in triangle at
270.degree..
7. A method for producing variable size matrix printed characters
comprising the steps of:
1. defining each character through a matrix having a predetermined
number of components, said components each having one of six, size
independent, component shapes with each component being an element
of the matrix;
2. assigning a numerical component shape code to each one of said
six component shapes;
3. coding each component of the matrix on a row-by-row basis with
the particular numerical component shape code which represents the
component shape for a specific character for each such component
whereby each character is described by a plurality of numbers each
representing one row of the component shape codes for the
character, said plurality of numbers defining a unique descriptor
for the character;
4. storing each one of the character descriptors;
5. generating a plurality of binary printing signals corresponding
to said component shapes and the desired component size to be
printed with one binary state representing a "print" condition and
the other binary state a "no-print" condition;
6. converting said plurality of binary printing signals into a
signal format that is compatible with the printing line format of a
matrix printer; and,
7. applying said converted printing signals to a matrix printer
with the matrix printing density of the printing points remaining
the same regardless of the size of said character.
8. The method of claim 7 wherein each character is defined through
a 5 .times. 7 matrix having thirty five components.
9. The method of claim 8 wherein each character descriptor is
formed from seven words.
10. The method of claim 7 wherein said numerical components shape
codes each consist of three bits representing one of six numbers in
the series 0-7.
11. The method of claim 10 wherein each character descriptor is
formed from seven fifteen bit numbers.
12. The method of claim 7 wherein said component shapes are: (1) an
empty area; (2) a filled in square; (3) a filled in triangle at
0.degree.; (4) a filled in triangle at 90.degree.; (5) a filled in
triangle at 180.degree.; and, (6) a filled in triangle at
270.degree..
13. The method of claim 7 further comprising the step of buffering
said converted printing signals before they are applied to said
matrix printer.
14. A variable size character generator for a point display
comprising:
1. means for producing signals representative of a matrix of a
predetermined number of image components which define each
character, said image components each having one of a predetermined
number of size independent, component shapes with each component
being an element of the matrix;
2. means responsive to said matrix representative signals and to a
signal representative of the desired image size for generating
signals representing an array of points to be displayed within each
image component of the matrix by a point display with the display
density of said points remaining the same regardless of the size of
each character; and,
3. signal generating means for producing a plurality of binary
display signals for the point display corresponding to said series
of points to be displayed with one binary state representing a
display condition and the other binary state representing a
no-display condition.
15. The generation of claim 14 further characterized by a point
display means responsive to said binary display signals.
16. A variable size character generator for a matrix printer
comprising:
1. means for storing a character descriptor for each character,
which represents a matrix definition of the character in which each
matrix component has one of six, size independent, component
shapes, said descriptor comprising a plurality of numerical
character component shape codes which represent the component
shapes of a specific character for each component of the matrix,
said numerical component shape codes being arranged on a matrix
row-by-row basis to form a plurality of numbers which in turn
represent the component shape codes on a row-by-row basis for the
character;
2. size input signal responsive means coupled to said descriptor
storage means for converting the size of each component shape
defined by a descriptor into a series of points to be printed
within each matrix component by a matrix printer with the matrix
printing density of said printing points remaining the same
regardless of the size of said character;
3. signal generating means coupled to said size input signal
responsive means for generating a plurality of binary printing
signals corresponding to said series of points to be printed with
one binary state representing a print condition and the other
binary state a no-print condition; and,
4. means for converting the plurality of binary printing signals to
a signal format that is compatible with the printing line format of
the matrix printer.
17. The character generator of claim 16 wherein said character
descriptor represents a 5 .times. 7 matrix definition of each
character.
18. The character generator of claim 16 wherein said component
shapes are: (1) an empty area; (2) a filled in square; (3) a filled
in triangle at 0.degree.; (4) a filled in triangle at 90.degree.;
(5) a filled in triangle at 180.degree.; and, (6) a filled in
triangle at 270.degree..
19. The character generator of claim 16 wherein said numerical
character shape codes each consist of three bits representing one
of six numbers in the series 0-7.
20. The character generator of claim 19 wherein said character
descriptor represents a 5 .times. 7 matrix definition of each
character and wherein said numerical character shape codes are
arranged on a matrix row-by-row basis to form seven fifteen bit
numbers.
21. The character generator of claim 16 further comprising means
for buffering said converted printing signals before said signals
are applied to the matrix printer.
22. The character generator of claim 16 further comprising signal
input means for addressing said character descriptor storage means
in response to an input signal representing a character having a
descriptor that is stored in said storage means.
23. The character generator of claim 22 wherein said character
descriptor storage means comprises a read-only memory.
24. A variable size character generator for a matrix printer
comprising:
1. means for producing signals representative of a matrix of a
predetermined number of image components which define each
character, said image components each having one of a predetermined
number of size independent, component shapes with each component
being an element of the matrix;
2. means responsive to said matrix representative signals and to a
signal representative of the desired image size for generating
signals representing an array of points to be printed within each
image component of the matrix by a matrix printer with the matrix
printing density of said points, remaining the same regardless of
the size of each character;
3. signal generating means for producing a plurality of binary
printing signals for the matrix printer corresponding to said
series of points to be printed with one binary state representing a
print condition and the other binary state representing a no-print
condition; and,
4. signal format conversion means for converting said plurality of
binary printing signals into a signal format that is compatible
with the printing line format of the matrix printer.
Description
BACKGROUND OF THE INVENTION
The present invention relates to character generators in general
and more particularly, to a point display system for displaying
variable size characters which have a constant point display
density.
The art of generating alphanumeric and other types of characters is
relatively well developed. At the present time CRT-matrix format
character generators are used in a variety of applications.
Representative examples of such generators are shown in the
following U.S. Pat. Nos. 3,305,841 issued Feb. 21, 1967 to Mr.
Schwartz for PATTERN GENERATOR; U.S. Pat. No. 3,426,344 issued Feb.
4, 1969 to R. J. Clark for CHARACTER GENERATOR FOR SIMULTANEOUS
DISPLAY OF SEPARATE CHARACTER PATTERNS ON A PLURALITY OF DISPLAY
DEVICES; U.S. Pat. No. 3,588,872 issued June 28, 1971 to E. R. Kolb
for POINT SIZE, COMPUTATION AND EXPOSURE CONTROL DEVICE FOR A
CHARACTER DISPLAY APPARATUS; U.S. Pat. No. 3,609,743 issued Sept.
28, 1971 to Mr. Lasoff for DISPLAY UNIT; U.S. Pat. No. 3,623,069
issued Nov. 23, 1971 to A. E. Malden for MULTIPLEX CHARACTER
GENERATOR; and, U.S. Pat. No. 3,668,687 issued June 6, 1972 to D.
B. Hale for RASTER SCAN SYMBOL GENERATOR. Impact or non-impact
matrix printers are currently employed to generate different types
of characters in hard copy. Representative matrix printer type
character generators are shown in U.S. Pat. Nos. 3,444,319 issued
May 13, 1969 to M. Artzt et. al. for CHARACTER GENERATOR and
3,638,216 issued Jan. 25, 1972 to A. E. Brewster for CHARACTER
GENERATION SYSTEM.
Although the currently available matrix point displays and printers
do offer some degree of flexibility in terms of character formation
and character fonts, they do not provide for variations in
character size on a line-to-line basis. In a number of printing
applications it would be desirable to be able to print documents
with characters of different sizes from line-to-line and/or from
document-to-document. One example of such a printing application is
the ubiquitous shipping label in which the product code or product
description may be one size, the addressee another size, and the
"Ship-To" address yet another size. Since variable size characters
are potentially useful in any document which requires textual
emphasis, a matrix printing system which selectively produces
variations in character size would have a wide range of
applications.
It is accordingly, a general object of the present invention to
provide a variable character size point display system.
It is a specific object of the invention to provide a variable
character size matrix printing system.
It is another specific object of the invention to provide a
variable size character generator which can be interfaced to a
conventional impact or non-impact matrix printer.
It is still another object of the invention to provide a constant
matrix printing density for each character regardless of the size
of the character.
It is a further object of the invention to provide a variable size
character generator in which each character is defined by a
combination of size independent shapes.
It is a feature of the invention that only six such size
independent shapes are required to generate all of the
characters.
It is still another feature of the invention that the six component
shapes are binary coded so that any character in a 5 .times. 7
format can be defined by only seven words per character.
It is a further feature of the invention that the binary coding
scheme for the size independent component shapes permits the use of
a relatively low capacity memory and I/O buffer.
BRIEF SUMMARY OF THE INVENTION
In a preferred embodiment of the invention a standard matrix
printer, either impact or non-impact, is used to produce variable
size characters. The size of the characters is controlled by
varying the number of points printed for each of thirty five
components in a 5 .times. 7 matrix. Other matrix configurations are
possible within the coding scheme of the invention. The scheme uses
six different, size independent component shapes for each
component.
Characters are defined through the 5 .times. 7 matrix in which each
point may have one of the following six possible configurations:
(1) empty; (2) a square in which the point is entirely filled; (3)
half the point space is filled in by a triangle at 0.degree.; (4)
half the point space is filled in by a triangle at 90.degree.; (5)
half the point space is filled in by a triangle at 180.degree.;
and, (6) half the point space is filled in by a triangle at
270.degree.. Each one of the six configurations is assigned its own
unique binary code. Given a 5 .times. 7 matrix configuration, a
row-by-row code can be developed for each character in seven
fifteen bit numbers where each number defines one of the seven rows
of points.
The resulting seven fifteen bit numbers provide a size independent
descriptor for each character. The size of the total character is
varied by varying the size of each component shape, i.e., triangle
or square, in both the X and Y directions. Since the output device
of the preferred embodiment is a matrix printer, size expansion of
the six component shapes is achieved by converting the desired size
of each component shape to a series of points to be printed by the
matrix printer. Thus, if a "size 3" square is desired, the square
component is converted to a square of points having three points on
each side. Similarly, a "size 4" triangle is formed by four points
on each side of the triangle. Other degrees of expansion can be
obtained by increasing the number of matrix printing points in each
dimension of the six component shapes.
A character generator produces a seven bit output to drive the
matrix printer. If the character size is larger than the seven
vertical point printing line of a standard matrix printer, several
passes of the printer will be required to define the character.
However, since the spacing between each printing point of the
printer remains constant, the matrix printing density of the
character also remains constant even though the size of the
characters may be changed from line-to-line and/or from
document-to-document.
Having briefly summarized my invention, the objects and features of
the invention can best be understood from the following detailed
description of a preferred embodiment thereof, selected for
purposes of illustration and shown in the accompanying drawings, in
which:
FIG. 1 is a tabular diagram illustrating the six size independent
component shapes which are used to define the characters;
FIG. 2A is a diagram of a 5 .times. 7 matrix showing the formation
of the character "9" using the six component shapes illustrated in
FIG. 1;
FIG. 2B is a tabular diagram showing a seven, fifteen bit number
description for the character 9 using the binary component shape
codes listed in FIG. 1;
FIGS. 3A and 3B depict the formation of the triangle and square
component shapes at sizes 3 and 4 respectively;
FIG. 4 illustrates the formation of the character 9 of FIG. 2A at
size 3 by means of three printing line passes of the matrix
printer;
FIG. 5 is a tabular diagram depicting in binary form the first pass
printing signal input to the matrix printer for the character 9 at
size 3; and,
FIG. 6 is a functional block diagram of the variable size character
printing system.
Turning now to the drawings, the method of the present invention is
illustrated in FIGS. 1 through 5 and the apparatus for performing
the method thereof is depicted in functional block diagram form in
FIG. 6. The generation of variable size characters is achieved in
the present invention by defining each character through a matrix
having a predetermined number of components with each of the
components having one of a predetermined number of size independent
component shapes.
In the preferred embodiment six, size independent component shapes,
shown in tabular form in FIG. 1 and identified generally by the
reference numeral 10, are employed to form a character, such as,
the character "nine" shown in FIG. 2A and indicated generally by
the reference numeral 12. The six, sizes independent component
shapes 10a through 10f comprise, respectively, an open square or
space within which nothing is printed, a filled in square in which
the entire area is printed, a printed triangle at 0.degree., a
printed triangle at 90.degree., a printed triangle at 180.degree.
and a printed triangle at 270.degree..
The six component shapes 10a through 10f are used to define the
character nine shown in FIG. 2A through an N .times. M matrix 14.
For purposes of illustration the matrix is shown as a conventional
5 .times. 7 matrix. However, it should be understood that other
matrix configurations can be employed in accordance with the
invention to generate variable size characters having a different
aspect ratio.
Given the illustrative 5 .times. 7 matrix shown in FIG. 2A, it will
be appreciated that the matrix defines thirty five individual
points 16 which are arranged in five vertical columns and seven
horizontal rows. Each matrix point has a specific component shape.
For example, the point identified by Row 1, Column 1 in FIG. 2A has
a component shape 10d, i.e., a triangle at 90.degree. while the
point identified by Row 1, Column 5 has a component shape 10c,
i.e., a triangle at 0.degree..
Each one of the six component shapes 10a through 10f is assigned a
three bit binary code as shown in FIG. 1. By coding each of the
individual points 16 within matrix 14, a row-by-row code can be
developed for each character 12 using seven fifteen bit numbers 18
where each number 18 defines one of the seven rows of points. FIG.
2B illustrates the coding arrangement for the character nine shown
in FIG. 2A. The resulting seven fifteen bit numbers provide a size
independent descriptor 20 for each character 12. It will be
appreciated that this coding scheme permits the use of the same
amount of data to describe each character regardless of the size of
the character thereby substantially reducing the data storage
requirements.
The size of the total character 12 is varied in the present
invention by varying the size of each component shape 10a through
10f in both the X and Y directions. Since the output device if the
preferred embodiment is a matrix printer, size expansion of the six
component shapes is achieved by converting the desired size of each
component shape to a series of points to be printed by the matrix
printer. However, the same technique is applicable to the
generalized form of the invention in which the component shapes are
converted to a series of inside display points having one of two
display states. In the first state, the display condition is
"visible" while in the second state the display condition is
"invisible". Therefore, the term "point display" as used herein
means a device which creates a visual image by means of a plurality
of discrete points having two display states.
Referring now to FIGS. 3A, 3B and 4, FIG. 3A illustrates a size 3
expanded square corresponding to the matrix point 16 shown in FIG.
2A. In accordance with the expansion algorithm, the size 3 square
is converted to a square of points 22 having three points on each
side. Thus, in the size 3 configuration, each matrix point 16 is
defined by a square of nine matrix printing points having three
points on each side. Similarly, a size 4 square or triangle is
formed by four points 22 on each side of the triangle as
illustrated in FIG. 3B. Although only size 3 and size 4 levels of
expansion have been shown in the drawings, it should be understood
that other degrees of expansion can be obtained by increasing the
number of matrix printing points in each dimension of the six
component shapes 10a through 10f.
One of the features and advantages of the present invention is that
the visual display or printing point density is constant regardless
of the size of each character. It should be seen from an inspection
of FIGS. 3A and 3B that the spacing between and among the points 22
is the same at size 3 and at size 4. This arrangement significantly
improves the visual appearance of the resulting visual display or
hard copy print of the characters.
The full expansion of the entire FIG. 2A character nine at size 3
is depicted in FIG. 4. For purposes of clarity, the formation of
the nine point, 3 .times. 3 array which represents a matrix point
16 is depicted only in the area defined by Row 1, Column 1 of FIG.
4. Looking specifically at the Row 1, Column 1 area, the visual
display or printing points 22 are illustrated as a filled-in circle
22a or an empty circle 22b to depict, respectively, a point which
is printed and a point which is not printed. The so-called
"no-print" points 22b have been omitted from the remainder of FIG.
4 again only for purposes of clarity.
It can be seen from a comparison of FIG. 2A with FIG. 4 that each
one of the individual component shapes 10a through 10f has been
expanded to a size 3 by defining the component shape in terms of
nine printing points 22 arranged in a 3 .times. 3 square. Each
component shape is visually presented by means of points 22a and/or
no-points 22b. The visual presentation of the individual component
shape points 22 can be implemented physically in a variety of ways.
As previously mentioned, in the preferred embodiment these points
are printed or not printed by a conventional impact or non-impact
matrix printer. However, it should be appreciated that the
invention is equally suitable for any other type of visual point
display, such as for example, lighted scoreboards, stock quotation
displays and cathode ray tubes.
Although the particular scanning format may vary depending upon the
type of visual point display selected for display of the expanded
character shown in FIG. 4, the method of the present invention can
best be understood from again considering an illustrative example.
For instance, assume that the visual display of the enlarged
character shown in FIG. 4 will be performed by a matrix printer
having a print head which includes seven print wires arranged
vertically and mounted on a horizontally movable carriage. The
print wires are selectively pulsed in the conventional manner as
the carriage sweeps horizontally across the print line. Looking at
FIG. 4, it can be seen that the printing of the enlarged character
nine can be accomplished by such a matrix printer in three
horizontal passes of the printer. Each pass is identified in FIG. 4
by an appropriate label "Print Line No. 1", "Print Line No. 2" and
"Print Line No. 3".
It will be appreciated by those skilled in the art that other
printing or display formats can be used to reproduce the enlarged
character shown in FIG. 4. For example, if the printer printed only
a single line instead of seven lines on each horizontal pass,
twenty one passes of the printer would be required to generate the
character nine and conversely, if the printer printed twenty one
lines on a single pass, only one pass of the printer across the
page would be required to produce the enlarged character nine.
The series of points 22 (representing in the generalized form a
visual display point 22a and no-display point 22b or in the
specific embodiment a print point 22a and a no-print point 22b) is
converted into a corresponding plurality of binary point display or
printing signals shown in tabular form in FIG. 5. The binary
printing signals indicated generally by the reference numeral 24 in
FIG. 5 have been arranged in the corresponding Row and Column
configuration for a display or printing means having seven
vertically arranged display or printing points per scan or printing
line. The binary printing signals 24 are employed preferably after
buffering, to actuate a conventional matrix printer as will be
described in greater detail below.
Referring now to FIG. 6, there is shown in functional block diagram
form the variable character size matrix printing system of the
preferred embodiment of the present invention. The major functional
components shown in FIG. 6 are as follows: an EIA standard RS-232
serial interface 26, a random acess memory (RAM) 28, a read only
memory (ROM) 30, a central processing unit (CPU) 32, a printer
interface 34 and a conventional impact or non-impact matrix printer
36. The ROM 30 has an expansion logic section 38, an interface
control logic section 40, a matrix printer control logic section 42
and a character symbol table section 44. The RAM has two input data
buffers 46 and 48 and two output data buffers 50 and 52.
The operation of the variable character size printing system shown
in FIG. 6 can best be understood by examining the sequential
operations of the system. The input date in ASC-II code is inputted
to the serial interface 26 and converted to sixteen bit parallel
form. The parallel form data is then stored in the proper input
data buffer. Assuming that both input data buffers 46 and 48 are
empty, the sixteen bit parallel form date is stored in the first
input data buffer 46. When input buffer 46 is full, storage of the
date commences in the second input data buffer 48 and processing of
the data in the first input data buffer is initiated.
The data in input data buffer 46 is processed to produce the
expanded characters in the following sequence. First, each
character is used to index the proper character symbol table in the
character symbol tables 44. The symbol tables 44 contain for each
character the component shapes 10 which define the particular
character. In the preferred embodiment, six size independent
component shapes 10a through 10f are used to define each character.
As discussed above, these component shapes are three bit binary
coded and stored for each character in the form of a seven word
descriptor 20. Each component shape 10a through 10f, is expanded in
accordance with the size specified in the input data. The resulting
binary point display signals are truncated for the proper scan of
the matrix printer 36 and then stored in the first output data
buffer 50 for that scan.
The preceding process is repeated for each character stored in the
input data buffer 46. When the entire input data buffer 6 has been
processed, a scan is printed on the matrix printer 36. The input
data buffer 46 is processed and the resulting data printed as many
times as necessary (N times for character size N) to generate the
desired number of scans for the matrix printer 36. It should be
noted that this processing occurs in parallel with the printing of
the previous scan.
When the processing of the input data buffer 46 has been completed
(although the printing of the data may not necessarily be
completed) and the second input data buffer 48 is full, the input
data again commences to be stored in the first input data buffer 46
and the data in the second input data buffer 48 is processed in the
same manner as described above in connection with the data in the
first input data buffer 46.
Having described in detail a preferred embodiment of my invention,
it will be appreciated that the invention in its generalized form
as well as in its specific embodiment offers significant advantages
over existing character generators. The use of size independent
component shapes to define each character greatly reduces the
memory requirements for the system because the same amount of data
can be used to define each component shape regardless of its size.
In the preferred six component shape character definitions only
three bits are employed to code each component shape, eg. numbers
0-5 with two extra numbers available, eg. 6-7. With this coding
scheme, a seven word descriptor can be formed for each character in
a 5 .times. 7 matrix system.
The basic concepts of my invention are described in Disclosure
Document No. 015404 filed Dec. 12, 1972 in the United States Patent
Office.
It will be apparent to those skilled in the art from the preceding
detailed description of my invention that numerous modifications
can be made therein without departing from the scope of the
invention as defined in the following claims.
* * * * *