 |
|
 |
| |
 |
Character generating method and system |
| RE30679 |
Character generating method and system
|
|
| Patent Drawings: | |
| Inventor: |
Evans, et al. |
| Date Issued: |
July 14, 1981 |
| Application: |
06/048,477 |
| Filed: |
June 14, 1979 |
| Inventors: |
Caswell; Robert L. (Placentia, CA) Evans; Gregory W. (Mountain View, CA)
|
| Assignee: |
Rockwell International Corporation (El Segundo, CA) |
| Primary Examiner: |
Smith; Jerry |
| Assistant Examiner: |
|
| Attorney Or Agent: |
Gable; R. LewisSpeer; Richard A. |
| U.S. Class: |
345/468; 345/472; 396/551 |
| Field Of Search: |
364/523; 364/107; 340/720; 340/730; 340/731; 340/748; 354/7 |
| International Class: |
G09G 1/14 |
| U.S Patent Documents: |
3422419; 3430207; 3471848; 3480943; 3588872; 3594759; 3614767; 3629841; 3686662; 3742288; 3789200 |
| Foreign Patent Documents: |
|
| Other References: |
"The Seybold Report", vol. 1, No. 12, Feb. 14, 1972, pp. 12-1 to 12-7; and vol. 1, No. 13, Feb. 28, 1972, pp. 13-1 to 13-10.. "The Seaco 1600 Photo-Typesetting System", Pamphlet Published by Seaco Computer-Display Inc.. C. J. Evangelisti et al., "Graphic Device for Drawing Shapes", IBM Technical Disclosure Bulletin, vol. 13, No. 2, Jul. 1970, pp. 550-552.. |
|
| Abstract: |
A digital character generator method and system encode characters based on a normalized quad in accordance with coordinates of initial starting points of outlines of the character and variational parameters defining changes in those outlines such as slope and curvature. All characters of all formats are encoded for a maximum point size display. Vertical scaling factors permit character generation at any desired point size display. Horizontal scaling factors are employed both for transforming computations based on the encoded parameters for the normalized quad to a desired point size of display and also to adapt cyclic computations to the stroking density of a display CRT. .Iadd. |
| Claim: |
What is claimed is:
1. A character generator for generating characters encoded in accordance with a normalized quad of X Y coordinates wherein each successive X coordinate value corresponds to acomputation cycle, each character being encoded in a succession of data instructions related to outlines of the character segments and including a beginning line instruction identifying the initial Y coordinate of each of a related pair of outlines,outline change instructions specifying variously fixed and variable directions of outline, and termination of an outline pair, and an instruction designating the end of a character, each change instruction including an identification of the outline towhich it relates, and a number designating the computation cycles to a subsequent instruction,
means responsive to a beginning line instruction to identify an initial pair of outlines and to store in relation thereto their respective Y coordinates,
means responsive to a change instruction for a related outline, as identified and stored, for computing, in each successive computation cycle, a new Y coordinate value for each identified outline in accordance with its associated changeinstruction, said means maintaining a stored Y coordinate value for an outline for which there is no change instruction,
means for updating the Y coordinate values in said storing means in accordance with the computed new value thereof, as computed in each computation cycle, and
means responsive to the encoded computation cycle number of each successive change instruction to request and receive the next successive instruction for the character upon completion of the encoded number of computation cycles of a presentinstruction.
2. A character generator as recited in claim 1, wherein there is provided:
means for storing plural sets of instructions corresponding to plural sets of characters;
a buffer storage means for storing the successive instructions for each character of a selected set of characters to be generated; and
means for supplying the successive instructions for each character of a selected set thereof to said buffer storage means.
3. A character generator as recited in claim 1, wherein said means responsive to a beginning line instruction comprises a Y unit including a Y memory for storing the initial Y coordinates of an initial pair of outlines, said Y memory having anumber of storage positions corresponding to a maximum number of outlines in a given computation cycle and addressable in accordance with the identification .[.number.]. of each outline.
4. A character generator as recited in claim 3 wherein said Y unit further comprises a further memory having a plurality of incremental Y coordinate changes stored therein and addressable in accordance with a corresponding identification numberof an instruction encoded to specify a fixed increment of change of the Y coordinate for an identified outline, and
means operable in each computation cycle to add to the current Y coordinate from the Y memory and the increment of Y from the further memory to compute a new value of Y updated by the increment and means for storing the updated Y value in the Ymemory position for the outline, in each successive computation cycle until a further change instruction for the outline or an end of character instruction.
5. A character generator as recited in claim 3 wherein one of the change instructions includes a change slope instruction encoded in accordance with a designated slope and each slope being defined as a predetermined increment of Y in eachcomputation cycle, and wherein:
said Y unit further includes a Y increment memory having a plurality of storage positions addressable by an encoded slope designation and storing in the corresponding position the value of the Y increment, and said updating means includes:
means operable in each computation cycle for addressing the Y memory for the outline identified by a change slope instruction and for addressing the incremental Y memory in accordance with the slope designation to derive the corresponding Ycoordinate value and Y increment values, and
means for adding the derived Y coordinate and Y increment values to compute a new value of Y thereform, and
said updating means updates the Y memory with the thus computed new value of Y.
6. A character generator as recited in claim 5 wherein said computing means further comprises an M unit having an M memory addressable in accordance with the outline number of a change slope instruction to store in a corresponding memoryposition the slope designation of the instruction, said M memory supplying the slope designation for each outline to the Y increment memory of said Y unit.
7. A character generator as recited in claim 6, wherein a further outline change instruction comprises a change of curvature instruction for an identified outline and wherein each designated curvature corresponds to an increment of change inslope, defining a succession of slope values updated by the said increment, each said updated slope value being utilzed for a predetermined number S.sub.N of computation cycles to effect a corresponding number of updates of the Y coordinate to establisha desired radius of curvature of the resulting outline, and said computing means further comprises:
a K memory addressable in accordance with the identified outline of a change curvature instruction to store in the corresponding memory position the curvature designation of the instruction;
K decode logic means responsive to a curvature designation derived from the K memory for supplying the increment of slope corresponding to the designated curvature; and
a further memory having stored therein a plurality of values S.sub.N respectively corresponding to the number of computation cycles of Y updates for each of the updated values of slope for a given curvature designation and addressable inaccordance with the designated curvature of a change curvature instruction and each of the updated values of the slope, in succession, to supply the corresponding S.sub.N value as as output.
8. A character generator as recited in claim 7, wherein:
said computing means further includes an S unit for accumulating a count S as a function of the number of updates of the Y coordinate for each of the succession of slope values related to a given curvature,
said S unit including an S memory addressable in accordance with the outline identification to store in the corresponding memory position a current value S corresponding to the number of Y updates at a given slope,
said K decode logic means of said K unit furthermore provides an S increment .DELTA.S for a given curvature designation, and said S unit further includes
an adder for adding in each computation cycle, corresponding thereby to each Y update, the value .DELTA.S supplied by said K decode logic to the S value for the corresponding outline stored in said S memory, and
means for updating, in accordance with the summation output of said adder, the value of S stored in said S memory for the corresponding outline.
9. A character generator as recited in claim 8, wherein said S unit further comprises:
a comparator for comparing the updated S value from said S memory with the stored value S.sub.N of the predetermined number of Y updates from said memory of said K unit in accordance with a present slope value, to determine when the accumulated Svalue corresponds to said predetermined value S.sub.N of Y updates, and
means responsive to said comparator to continue the addition by said adder of an incremental S value .DELTA.S to the stored S value when the S value is less than said predetermined number S.sub.N and alternatively to supply a reset value S.sub.Oin lieu of the updated S value when the latter equals or exceeds a predetermined number of Y updates.
10. A character generator as recited in claim 9, wherein there is further provided decode logic responsive to the slope value and to the curvature designation for defining respectively corresponding reset values S.sub.O.
11. A character generator as recited in claim 9, wherein there is further provided means responsive to the output of said comparator when the incremented value of S equals or exceeds the predetermined number of Y updates thereby to enable updateof the slope designation in accordance with the increment of slope change supplied by said decode logic in response to the curvature designation.
12. A character generator as recited in claim 11 wherein said curvature designation identifies positive or negative curvatures and wherein the succession of slope values defined for a given curvature correspondingly are incremented ordecremented.
13. A character generator as recited in claim 12 wherein said Y unit further includes means for recognizing alternatively the incrementing or decrementing effect of incremental changes of slope to supply corresponding incrementing ordecrementing Y coordinate increments to said added for producing correspondingly incrementing or decrementing Y update changes whereby outlines of positive and negative curvatures are selectively defined.
14. A character generator as recited in claim 10, wherein said further memory of said K unit having stored therein the predetermined number of successive updates for a given curvature designation defines for unitary increments of the value S thebase radius of curvature and wherein different radii of curvature are derivable from the stored number of updates for a given radius of curvature by selectively or in combination incrementing the S count in accordance with non-unitary values andincrementing or decrementing the slope in accordance with non-unitary values, and wherein said decode logic receiving the output of said K memory correspondingly provides integer .DELTA.M.sub.I and fraction .DELTA.M.sub.F values of said slope incrementsand integer .DELTA.S.sub.I and fractional .DELTA.S.sub.F values of the S count update values.
15. A character generator as recited in claim 14, wherein there is further provided
a memory having stored therein fractional S values S.sub.F and an associated further added for adding each fractional S update value .DELTA.S.sub.F to the stored S.sub.F value, and means to update the S.sub.F memory by storing the updated valueS.sub.F +.DELTA.S.sub.F for outline in the S.sub.F memory, and
means for supplying said carry output to said adder for the S and .DELTA.S.sub.I update increments when the successive updates of the value S.sub.F, as defined by the output of the S.sub.F and .DELTA.S.sub.F adder, reaches unity.
16. A character generator as recited in claim 1, wherein said means responsive to the encoded computation cycle number comprises:
a counter set to the encoded number in response to each change instruction and
means responsive to completion of the computation for all outlines computed in a given cycle to decrement the counter by unity value, and
means responsive to a zero count of said counter for requesting a successive instruction for the character.
17. A character generator as recited in claim 1, wherein there is further provided a sequencing unit storing the outline .[.identification numbers.]. .Iadd.identifications .Iaddend.in a sequence corresponding to an ordered succession of Ycoordinate values of the thereby identified outlines.
18. A character generator as recited in claim 17, wherein there is further provided a control unit including a temporary memory and a temporary memory address counter and means responsive to the sequence of outline number designations stored insaid sequence unit for supplying updated Y coordinates of the outlines in each computation cycle to said temporary memory in an ordered sequence of coordinate values.
19. A character generator as recited in claim 18 for use with a display means having scanning means effecting a succession of horizontally displaced vertical strokes, each vertical stroke having a fixed ramp rate and said scanning means beingnormally blanked, and wherein the updated Y coordinate values of a given computation cycle are employed to control blanking and unblanking of a scanning beam in a corresponding stroke of the beam, further comprising
a vertical scaling unit for scaling the Y coordinate values of the normalized quad to the deflection of the beam in each stroke, and
a comparator for comparing the effective scaled coordinate position of the stroke relative to the Y coordinates of the normalized quad with the ordered succession of updated Y coordinate values of the said temporary memory to produce unblankingand blanking control outputs in alternate succession for each comparison of the vertically scaled unit output being equal to or greater than the stored and updated Y coordinate stored in the temporary memory, for each such stored Y coordinate value ofthe ordered succession thereof.
20. A character generator as recited in claim 19, further comprising
means for storing in association with the last Y coordinate value an identification of the absence of further coordinate values in said temporary memory, and means responsive to said stored identification upon said last coordinate value beingsupplied to said comparator to identify the conclusion of Y coordinate information and thereby terminate the current stroke.
21. A character generator as recited in claim 19, wherein there is further provided:
means for generating a clocking signal during each vertical stroke and related to the ramp rate of the stroke, and
said vertical scaling unit includes means for receiving a vertical scaling factor relating the size of a character to be displayed to a maximum point size corresponding to the encoding of the character in the normalized quad, and
a counter and means to increment the counter in response to each clock pulse during a stroke by an amount corresponding to the vertical scaling factor.
22. A character generator as recited in claim 19, wherein each vertical stroke of the display means is performed at a predetermined horizontal spacing in accordance with a desired stroke density, and there is further provided:
a horizontal scaling unit for receiving and storing a horizontal scale factor relating the computation cycles of the normalized quad for a maximum size character display to the desired size of the character to be displayed and to the strokedensity, and
means for decrementing said stored horizontal scale factor in accordance with completion of said computation cycle and producing an output upon the stored scale factor being decremented to a minimum value, and
means enabling a successive scanning stroke of the display means in response to said output for controlling the blanking and unblanking of the scanning means in accordance with the ordered sequence of Y coordinate values of the preceding,completed computation cycle.
23. A character generator as recited in claim 22, wherein said horizontal scaling unit comprises first and second storage means for storing .[.horizontal.]. .Iadd.integral .Iaddend.and fractional portions of the horizontal scale factor,respectively,
an adder for receiving the horizontal fractional scale factor in each computation cycle and adding that fraction to a fraction summation value,
a fraction summation register for storing said fraction summation value and supply thereof to said adder,
a counter for storing the horizontal scale factor supplied thereto by said first storage means, and
gating means for decrementing the integer count stored in said counter for each computation cycle and for incrementing the count thereof in response to a carry output from said adder when the addition of the fractional scale factor to thefraction summation of said register thereby is equal to or greater than unity.
24. A character generator as recited in claim 23, wherein said means responsive to the minimum output of said counter for thereby enabling the stroke effects loading of the horizontal scale factor into said counter for a successive operation.
25. A character generator as recited in claim 17, wherein said sequencing unit comprises
a first recirculating shift register having a number of storage positions corresponding to the maximum number of outlines capable of being processed,
a second recirculating shift register of a corresponding number of storage positions and recirculating in synchronism with said first shift register, and
gating means for inserting a flag bit in each stage of said second shift register for which a valid outline number is stored in the corresponding stage of the first shift register.
26. A character generator as recited in claim 25, wherein each of said shift registers includes parallel outputs and there is further provided decode logic responsive to the parallel outputs of said second shift register to identify inaccordance with the position of a flag bit therein the storage position of said first shift register having, at any given point in time, the outline number corresponding to the lowest ordered Y coordinate outline value, and
a data selector for reading out the stored outline identification numbers from said first shift register supplied at said parallel outputs thereof from the position identified by the decode logic, in succession for the plurlity of identificationnumbers stored therein, thereby to avoid delays in requiring complete recirculation of each shift register to obtain outputs of the stored identification numbers therefrom.
27. A character generator as recited in claim 25, wherein there is further provided first and second gating means respectively associated with said first and second shift registers,
means operable in response to each stored identification number for comparing the corresponding Y coordinate value with the Y coordinate value of a newly received beginning line instruction to determine whether the stored Y coordinate value isgreater than the encoded Y coordinate value of the instruction, and
said gating means responding to said comparison when the stored Y coordinate value exceeds the Y coordinate value of the instruction to interrupt the recirculation of the corresponding identification number in said first shift register and insertin advance thereof the identification number of the new outline encoded in the instruction.
28. A character generator as recited in claim 27, wherein said second gating means is operable in parallel with said first gating means to insert a further flag bit in the corresponding shift register position of said second shift register.
29. A character generator as recited in claim 25, wherein there is further provided gating means associated with said second shift register to control the recirculation of data therein, and there is further provided:
means responsive to an end of line pair instruction to store the outline identification number encoded therein for comparison with the stored identification numbers recirculating in said first shift register, and
said gating means for said first shift register responding to the comparison of a currently recirculating outline number and the stored outline number from the instruction to inhibit further recirculation of that outline number.
30. A character generator as recited in claim 23, wherein said gating means is connected to said first shift register to receive and recirculate the contents thereof from a stage displaced from the last stage in response to inhibitingrecirculation of a terminated outline number thereby to maintain the recirculating outline numbers in consecutive order position in the shift register.
31. A character generator as recited in claim 30, wherein said gating means for said second shift register is operated in parallel with said gating means for said first shift register to eliminate the corresponding flag bit and to recirculateremaining flag bits from a stage of the shift register displaced from the last stage thereby to maintain the flag bits in the corresponding positions of the second shift register for identifying valid outline numbers in the first shift register.
32. A method for automatically generating characters with respect to a normalized encoding quad of X-Y coordinates having predetermined Y coordinate values wherein for at least one parameter of directional variations of a line within the quad,there are selected a plurality of fixed values of the parameter variations, the fixed values respectively relating to Y coordinate increments to successive X coordinate positions and wherein a first and each successive X coordinate position defines acomputation cycle, each character capable of being generated being encoded in an instruction set in accordance with
storing the initial Y coordinates of the outlines of each pair of outlines of a character as an instruction identifying the beginning of the outline pair,
storing, in relation to each outline having a directional variation, the corresponding parameter value as a parameter change instruction,
determining the number of X coordinate positions from the first and each successive parameter change instruction to the respectively next successive instruction, and storing the determined number as a number of computation cycles in associatedwith the first of each two said successive instructions,
storing an end of character instruction, and
storing the termination of an outline pair intermediate the beginning and end of a character as an end of outline pair instruction, and the generating method comprising:
providing a set of instructions in accordance with the aforesaid encoding of a character to be generated, for each character available to be generated,
identifying a desired character to be generated and selecting, in succession, the instructions of the corresponding said set thereof for processing, in accordance with
responding to each begin outline pair instruction corresponding to outline pairs initiating with the first X coordinate position of the character to identify and store the Y coordinate and thereby establish a starting point for each such outlinerelative to the quad, and
in each successive computation cycle, computing the Y coordinate position of each outline in accordance with the stored value thereof and any encoded parameter change instructions for the outline and storing said computed Y coordinate values, and
storing the number of computation cycles from a first instruction encoded therewith and reducing that number by a predetermined amount upon completion of computations in each of successive computation cycles and, in response to said number beingreduced to a predetermined value, selecting the next successive instruction of said set for said character.
33. A method for automatically generating characters as recited in claim 32, further comprising:
computing a new Y coordinate value of each outline in accordance with the Y coordinate increment stored for the value of the parameter change instruction for that outline in each successive computation cycle in response to a parameter changeinstruction for that outline and, upon completion of a number of computation cycles corresponding to the stored, determined number of X coordinate positions from a given instruction, computing a Y coordinate value in accordance with the next successiveinstruction for the outline to which that next successive instruction relates, and
terminating computations of Y coordinate values in response to an end of outline pair instruction as to the outlines of the terminated pair and terminating all computations in response to an end of character instruction.
34. A method for automatically generating characters encoded in a normalized quad of predetermined X and Y coordinate values wherein successive X coordinates define successive computation cycles and wherein each outline is encoded in a beginoutline pair instruction for each outline thereof as to its initial Y coordinates, in a parameter change instruction as to at least a first parameter of directional variations comprising one of a plurality of fixed values of the first parameter, eachsaid fixed value defining a Y coordinate increment; an end of outline pair instruction for the outlines of a pair terminating intermediate the beginning and end of a character; each foregoing instruction furthermore being encoded with an outline numberidentifying the outline to which it relates; and an end of character instruction for terminating all outlines of the character; each instruction excepting the begin outline pair instruction and the end of character instruction furthermore being encodedwith the number of computation cycles corresponding to the number of X positions to the next encoded instruction for the character, comprising:
providing a set of instructions in accordance with the aforesaid encoding of a character to be generated for each character available to be generated,
identifying a desired character to be generated and selecting, in succession, the instructions of the corresponding said set thereof for processing, in accordance with,
in a first computation cycle, responding to each begin outline pair instruction corresponding to an outline pair initiating at an initial X coordinate position of the character to establish an initial Y coordinate value for each such outlinerelative to the quad,
in each successive computation cycle, generating the Y coordinate value of each outline in accordance with its Y coordinate value generated in the respectively next preceding computation cycle and any current instruction as to that outline, todefine the Y coordinate value for the corresponding X coordinate position in relation to the quad, including
for each outline having a parameter change instruction, computing a new y coordinate value in accordance with modifying the initial value by the amount of the increment identified by the parameter value encoded in the instruction, and
terminating the computation of Y coordinate values for each outline pair identified by an end of outline pair instruction, and
storing the number of computation cycles from a first instruction encoded therewith and reducing that number by a predetermined amount upon completion of generating the Y coordinate values of each outline in each of successive computation cyclesand, in response to said number being reduced to a predetermined value, selecting the next successive instruction of said set for said character,
terminating the computation of Y coordinate values for all outlines for a given character in response to an end of character instruction.
35. A method for automatically generating characters as recited in claim 34, further comprising:
responding to each begin outline pair instruction subsequent to an initial such instruction to identify initial Y coordinate values for the outlines of each such subsequent pair at an X coordinate position of the quad corresponding to the elapsednumber of computation cycles of preceding instructions, thereby to initiate the generation of new outlines of the character.
36. A method for automatically generating characters as recited in claim 35, wherein the characters further are encoded as to a second parameter having a plurality of fixed values each thereof defining a succession of incremental changes in thefirst parameter and wherein the change of the first parameter in accordance with the increment is a function of a predetermined number of changes in the Y coordinate in accordance with each successively changed value of the first parameter, comprising:
responding to each instruction of a change in the second parameter for a given outline, to compute the Y coordinate for the outline in each of successive computation cycles by
identifying the increment of change of the first parameter in accordance with the second parameter and computing the value of the first parameter therefrom,
identifying the incremental value of change of the Y coordinate in accordance with the computed first parameter value and computing a new Y coordinate value therefrom in each of successive computation cycles for the predetermined number ofchanged values of Y,
and continuing to compute new successive values of the first parameter upon completion of computations for the predetermined number of changed values of Y in accordance with said identified increment of change of the first parameter correspondingto the value of the second parameter and computing new changed values of Y in accordance with the new computed value of the first parameter for the predetermined number of changes in values of Y in successive computation cycles.
37. A method for automatically generating and displaying characters encoded in a normalized quad of predetermined X and Y coordinate values wherein successive X coordinates define successive computation cycles and wherein each outline is encodedin a begin outline pair instruction for each outline thereof as to its initial Y coordinates, in a parameter change instruction as to at least a first parameter of directional variations comprising one of a plurality of fixed values of the firstparameter, each said fixed value defining a Y coordinate increment; an end of outline pair instruction for the outlines of a pair .[.of.]. terminating intermediate the beginning and end of a character; each foregoing instruction furthermore beingencoded with in outline number identifying the outline to which it relates; and an end of character instruction for terminating all outlines of the character; each instruction excepting the begin outline pair instruction and the end of characterinstruction furthermore being encoded with a number of computation cycles corresponding to the number of X positions to the next encoded instruction for the character, comprising:
generating characters in accordance with:
providing a set of instructions in accordance with the aforesaid encoding of a character to be generated, for each character available to be generated,
identifying a desired character to be generated and selecting, in succession, the instructions of the corresponding said set thereof for processing, in accordance with,
in a first computation cycle, responding to each begin outline pair instruction corresponding to an outline pair initiating at an initial X coordinate position to establish initial Y coordinates for each such outline relative to the quad,
in each successive computation cycle, generating the Y coordinate value of each outline in accordance with its Y coordinate value generated in the respectively next preceding computation cycle and any current instruction as to that outline, todefine the Y coordinate value for the corresponding X coordinate position in relation to the quad, including
for each outline having a parameter change instruction, computing a new Y coordinate value in accordance with modifying the initial value by the amount of the increment identified by the parameter value encoded in the instruction, and
terminating the computation of Y coordinate values for each outline pair identified by an end of outline pair instruction, and
storing the number of computation cycles from a first instruction encoded therewith and reducing that number by a predetermined amount upon completion of computations in each successive computation cycles and, in response to said number beingreduced to a predetermined value, selecting the next successive instruction of said set for said character,
terminating the computation of Y coordinate values, for all outlines of a given character in response to an end of character instruction, and
displaying characters thus generated on a display means including means for effectively horizontally displaced vertical strokes on a display element in accordance with a desired stroking density and wherein the scanning means may be selectivelycontrolled to blank and unblank each stroke on the display element, in accordance with:
correlating the size of the display character in the X coordinate direction, in accordance with the effective displacement of successive X positions of the quad, to the stroke density of the display means to define a first component value of ahorizontal scaling factor thereby to control character size in the X coordinate direction .[.by control of stroke density on said display means, in the character generation operation.]. .Iadd.as the character is displayed upon the displaymeans.Iaddend., and
controlling the unblanking and blanking of the scanning beam during each stroke in accordance with the computed Y coordinate values for the cycle correlated with the stroke.
38. A method of characte generation and display as recited in claim 37 further comprising:
correlating the size of the characters to be displayed with respect to the maximum size in accordance with which the character is encoded to define a second component value of the horizontal scaling factor, and
defining a series of numbers of computation cycles in accordance with the horizontal scaling factor,
storing a first number of said series of numbers of computation cycles and reducing same by a predetermined amount for each successive computation cycle and producing an output when the said stored number is reduced to a predetermined valuethereby to select the computation cycle from which the Y coordinate information is obtained to control the scanning means in each stroke thereof, and
storing a successive number of said series thereof in response to said output and upon completion of a prior stroke, thereby to initiate a successive number of computation cycles for control of a subsequent, correlated stroke of said scanningmeans.
39. A method of character generation and display as recited in claim 38 wherein each stroke of the vertical scan in performed at a known, fixed ramp rate of displacement on the display element, and wherein the characters are encoded in thenormalized quad for a maximum size character display, further comprising:
correlating the size of the charactes to be displayed with respect to the maximum size in accordance with which the character is encoded and with respect to the ramp rate to define a vertical scaling factor, and
unblanking and blanking the scanning means during each stroke in accordance with the Y coordinate values of the outlines defined in the computation cycle corresponding to the stroke as those values are scaled by the vertical scaling factor.
40. A method of automatically generating characters with respect to a normalized encoding quad of X-Y coordinates having predetermined Y coordinate values wherein each character capable of being generated is encoded in accordance with
selecting and designating a plurality of slopes, each slope having a value defined as a corresponding, fixed increment of the Y coordinate for a unit change in the X coordinate,
selecting and designating a plurality of slopes, each slope having a value defined as a corresponding, fixed increment of the Y coordinate for a unit change in the X coordinate,
selecting and designating a plurality of curvatures, each curvature having a succession of incrementally changing values of slopes, with each incrementally changed slope having a related predetermined number of changes in Y in accordance with theY increment for a given slope value,
relating each of the characters to be encoded to the normalized quad, and, for each character,
defining and identifiying outlines of the character, wherein the outlines are related in pairs, each pair containing therebetween a solid continuous segment of the character,
storing in a corresonding beginning of line instruction the initial Y coordinate of each outline of the character,
storing, for each outline having a slope, the outline identification and the corresonding slope designation in a slope change instruction,
storing, for each outline having a curvature, the outline designation and the corresponding curvature designation in a change curvature instruction,
storing in at least each instruction subsequent to the beginning of line instruction and prior to the end of a character, the number of X coordinate positions to the next successive instruction for the character as a corresponding number ofcomputation cycles,
storing an end of character instruction, and
said method of character generation comprising:
providing at least one set of instructions, each such set defining a corresponding character to be generated,
identifying a desired character to be generated and selecting, in succession, the instructions of the corresponding said set thereof for processing in accordance with
responding to each begin outline pair instruction of said at least one set corresponding to an outline pair initiating with the first X coordinate position of the character to identify and store the initial Y coordinate and establish a startingpoint for that outline relative to the quad, and
in each successive computation cycle, determining the Y coordinate value of each outline for the corresponding X coordinate position of the quad in accordance with:
maintaining the initial Y coordinate value in the absence of a change instruction for the outline;
computing a new, changed Y coordinate value in response to a change instruction for the outline, and storing said new Y coordinate value, and
storing the number of computation cycles from a first instruction encoded therewith and reducing that number by a predetermined amount upon completion of computations in each of successive computation cycles and, in response to said number beingreduced to a predetermined value, selecting the next successive instruction of said set for said character.
41. A method for automatically generating characters as recited in claim 40, further comprising:
in response to a slope change instruction for an outline, computing a new Y coordinate value of that outline in accordance with the Y coordinate increment stored for the designated slope of the slope change instruction in each successivecomputation cycle, and
in response to an end of outline pair instruction, terminating computations of Y coordinate values for the outlines of the terminated pair, and
terminating all computations in response to an end of character instruction.
42. A method for automatically generating characters as recited in claim 41, further comprising:
in response to a curvature change instruction for an outline, determining the increment of change of slope for the encoded, designated curvature and computing a first slope value,
determining the said predetermined number of changes in Y, and the increment of change of Y for the computed first slope,
computing new values of Y in accordance with the determined Y increment in each computation cycle of said predetermined number, and
computing a successive slope value and determining the increment for computing new values of Y in successive computation cycles upon each completion of the corresonding predetermined number of such new valueof Y computations.
43. A system for automatically generating characters with respect to a normalized encoding quad of first and second coordinates wherein each character capable of being generated includes at least one outline and the character is encoded as tothat outline with respect to a normalized encoding quad to define values of the first coordinate with respect to successive values of the second coordinate and including a beginning of line instruction definining the initial first coordinate value foreach outline, a slope change instruction for each outline having a slope, a curvature change instruction for each outline having a curvature, each foregoing instruction identifying the outline to which it relates and designating the number of successivepositions of the second coordinate prior to the next successive instruction for the character, an end of outline instruction and an end of character instruction, comprising:
means defining a computation cycle with respect to each successive position of the second coordinate of the encoding quad,
means responsive to a begin outline instruction corresponding to an outline initiating at the first position of the second coordinate to identify the initial value of the first coordinate, thereby to establish a starting point for that outlinerelative to the quad, and
means operative in each successive computation cycle to determine the value of the second coordinate for each outline with respect to the corresponding position of the first coordinate of the quad, including means for maintaining the said initialvalue of the second coordinate system in the absence of a change instruction for the outline, and means for computing a new, changed value for the outline in response to a change instruction of the outline.
44. A system as recited in claim 43, wherein said outlines correspond as pairs of outlines defining therebetween a solid segment of the character to be generated, the begin outline instruction being encoded for both outlines of the pair toconstitute a begin outline pair instruction, and wherein
said means responsive to each begin outline pair instruction thereby identifies the initial value of the second coordinate as the starting point for the said pair of outlines relative to the quad.
45. A system for displaying characters wherein each character to be displayed is encoded in relation to a normalized encoding set of first and second coordinates and wherein a character is defined by at least .[.one outline.]. .Iadd.first andsecond outline segments .Iaddend.encoded .Iadd.respectively .Iaddend.in .[.a set.]. .Iadd.first and second sets .Iaddend.of .[.instructions defining, for a first value of the second coordinate, a value of the first coordinate corresponding to a point onthe outline and at least one value.]. .Iadd.manifestations, each set including a manifestation .Iaddend.indicative of the .Iadd.variable .Iaddend.extent relative to the second coordinate for which .[.the stored value of the first coordinate coorespondsto.]. .Iadd.its set of manifestations defines .Iaddend.points on .[.the.]. .Iadd.its .Iaddend.outline .Iadd.segment.Iaddend., comprising:
means for generating the character for display, including means for computing a first coordinate value corresponding to a point on the outline .Iadd.segment .Iaddend.for each successive second coordinate value in accordance with the encoded.Iadd.first .Iaddend.set of .[.instructions.]. .Iadd.manifestations .Iaddend.for the .[.character.]. outline .Iadd.segment.Iaddend..
.Iadd.means responsive to the manifestation of the first set for requesting and receiving the second set of manifestations. .Iaddend.
display means including a display element and means for scanning the display element in scan paths of a desired pattern controlled to encompass a .Iadd.selected .Iaddend.region of the display element on which the character is to be displayed, andmeans for controlling said scanning means between a display state for producing a display and a blanked state for producing no display,
said means for computing including means for correlating the second coordinate values and the computed first coordinate values of the outline .Iadd.segment .Iaddend.with the scan pattern and .Iadd.selected .Iaddend.region of display, and
said scanning control means controlling said scanning means to switch from one to the other of the display and blanked states when the scanning in each scan path crosses the correlated and computed coordinate values of the outline.Iadd.segment.Iaddend.. .[.46. A system for displaying characters wherein each character to be displayed is encoded in relation to a normalized encoding set of first and second coordinates and wherein a character is defined by at least one outlineencoded in a set of instructions defining for a first value of the second coordinate, a value of the first coordinate cooresponding to a point on the outline and at least one value indicative of the extent relative to the second coordinate for which thestored value of the first coordinate corresponds to points on the outline, comprising:
means for generating the character for display, including means for computing a first coordinate value corresponding to a point on the outline for each successive second coordinate value in accordance with the encoded set of instructions for thecharacter outline,
display means including a display element and means for scanning the display element in scan paths of a desired pattern controlled to encompass a region of the display element on which the character is to be displayed, and means for controllingsaid scanning means between a display state of producing a display and a blanking state for producing no display,
said means for computing including means for correlating the second coordinte values and the computed first coordinate values of the outline with the scan pattern and region of dislay, and
said scan controlling means controlling the scanning means in each scan path to switch from the current to the opposite one of dislay and blanked states at each intersection of the scan path and the computed outline,
except at tangential intersections thereof..]. 47. A character generator for generating characters encoded in accordance with a normalized quad of first and second coordinates wherein each successve value of the .[.first.]. .Iadd.second.Iaddend.coordinate corresponds to a computation cycle of the generator, each character being encoded in a set of data instructions related to outlines of the character segments and including a beginning line instruction identifying the intial value ofthe first coordinate of each of a related pair of outlines for a given second coordinate value, outline change instructions specifying, variously, fixed and variable directions of associated outlines and termination of an outline pair, and an instructiondesignating the end of a character, each change instruction including an identification of the outline to which it relates, and a number designating the computation cycles to a subsequent instruction, comprising:
means responsive to a beginning line instruction to identify an initial pair of outlines and to store in relation thereto their respective coordinate values of the said first coordinate,
means responsive to a change instruction for a related outline, as identified and stored, for computing, in each successive computation cycle, a new coordinate value of said first coordinate for each identified outline in accordance with itsassociated change instruction, and for maintaining a stored value of said first coordinate for an outline for which there is no change instruction,
means for updating the value of the first coordinate in said storing means in accordance with the computed new value thereof, as computed in each computation cycle, and
means responsive to the encoded computation cycle number of each successive change instruction to request and receive the next successive instruction for the character upon completion of the encoded number of computation cycles of a presentinstruction. .Iadd. 48. A character generator for generating characters encoded in accordance with a normalized quad of first and second coordinates, each character being encoded in a succession of sets of data, each related to an outline segment ofthe character and including a beginning line manifestation identifying the initial first coordinate of its outline, segment and outline change manifestations specifying directions of outline, each change manifestation including an identification of theoutline to which it relates, and an indication of the number of incremental lengths along the second coordinate to a subsequent set of data, said character generator comprising:
means responsive to a beginning line manifestation for storing the manifestation identifying the initial first coordinate,
means responsive to a change manifestation for a related outline segment, as identified and stored, for computing, in each of its successive computation cycles, a new first coordinate value for its outline in accordance with its associated changemanifestation, said means maintaining a stored first coordinate value for an outline segment for which there is no change manifestation,
means for updating the first coordinate values in accordance with the computed new value thereof, as computed in each computation cycle, and
means responsive to the indication of the number of incremental lengths of each successive change manifestation to request and receive the next successive set of data for the character upon completion of the encoded number of incremental lengthsof the present set of data. .Iaddend. .Iadd.
9. A character generator as recited in claim 48, wherein there is provided:
means for storing plural sets of data corresponding to plural sets of characters;
a buffer storage means for storing the successive sets of data for each character of a selected set of characters to be generated; and
means for supplying the successive sets of data for each character of a selected set thereof to said buffer storage means. .Iaddend. .Iadd. 50. A method for automatically generating and displaying characters encoded in a normalized quad ofpredetermined first and second coordinate values, wherein each outline segment of the character is encoded as to its initial first coordinate, and a parameter change manifestation as to at least a first parameter of directional variations comprising oneof a plurality of fixed values of the first parameter, each said fixed value defining a coordinate increment; each manifestation furthermore being encoded with an indication of the number of incremental lengths along the second coordinate to the nextencoded manifestation for the character, said method comprising the steps of:
generating characters in accordance with:
providing a set of manifestations in accordance with the aforesaid encoding of a character to be generated, for each character available to be generated,
identifying a desired character to be generated and selecting, in succession, the manifestations, of the corresponding said set thereof for processing, in accordance with,
defining and identifying outline segments of a selected character, wherein the outline segments are related in pairs,
in a first computation cycle, responding to the identification of each outline pair to initiate an initial second coordinate position to establish an initial first coordinate for each such outline segment,
in each successive computation cycle, generating the first coordinate value of each outline segment in accordance with its first coordinate value generated in the respectively next preceding computation cycle and any current manifestation as tothat outline segment, to define the first coordinate value for the corresponding second coordinate position, including for each outline segment having a parameter change manifestation, computing a new first coordinate value in accordance with modifyingthe initial value by the amount of the increment identified by the parameter value encoded in the manifestation, and
storing the indication of the number of incremental lengths and reducing the number by an amount upon completion of computations in each successive computation cycle, and in response to said number being reduced to a value, selecting the nextsuccessive set of manifestations for said character,
displaying characters thus generated on a display means including means for scanning horizontally displaced vertical strokes in accordance with a given stroking density and wherein the scanning means may be selectively controlled to blank andunblank each stroke on the display element, in accordance with:
coorelating the size of the display character in the second coordinate direction, in accordance with the effective displacement of successive second coordinate positions of the quad, to stroke density of the display means to define a firstcomponent value of a horizontal scaling factor thereby to control character size in the second coordinate direction for the display of the character upon the display means, and
controlling the unblanking and blanking of the scanning means during each stroke in accordance with the computed first coordinate values. .Iaddend. .Iadd. 51. A method for automatically generating characters as recited in claim 50, furthercomprising:
correlating the size of the display character in the Y coordinate direction, in accordance with a vertical scaling factor, by effectively multiplying the computed Y coordinate value for a corresponding Y coordinate position of the characteroutline by the vertical scaling factor, to thereby control character size in the Y coordinate direction as the character dislayed upon the display means. .Iaddend. .Iadd. 52. A system for displaying characters wherein each character to be displayedis encoded in relation to a normalized encoding set of first and second coordinates and wherein a character is defined by at least first and second outline segments, each outline segment encoded in a set of manifestations defining, for a first value ofthe second coordinate, a value of the first coordinate corresponding to its point on the outline segment and at least one value indicative of the extent relative to the second coordinate for which the set of manifestations defines values of the firstcoordinates corresponding to points on the character outline segment, comprising:
means for receiving a set of manifestations and for generating the character for display, including means for computing a first coordinate value corresponding to a point on the outline segment for each successive second coordinate value inaccordance with the encoded set of manifestations for the character outline segment,
display means including a display element and means for scanning the display element in scan paths of a desired pattern controlled to encompass a region of the display element on which the character is to be displayed, and means for controllingsaid scanning means between a display state for producing a display and blanked state for producing no display,
said means for computing including means for correlating the second coordinate values and the computed first coordinate values of the outline with the scan pattern and region of display,
said scanning control means controlling said scanning means to switch from one to the other of the display and blanked states when the scanning in each scan path crosses the correlated and computed first and second coordinate values of theoutline segment, and
means operative in relation to the scanning of said display means for transferring after the computing of the first coordinate values of the points on the first outline segment, the set of manifestations encoding the second outline segment tosaid means for computing to provide therefrom correlated and computed first and second coordinate values of the second outline segment to be displayed by said display means after the
display of the first outline segment. .Iaddend. .Iadd. 53. The system for displaying characters as claimed in claim 52, wherein said correlating means correlates the second coordinate values and the computed first coordinate values inaccordance with corresponding second and first scaling factors to define the size of the character displayed by said display means. .Iaddend..Iadd. 54. The system for displaying characters as claimed in claim 53, wherein said correlating meanscomprises first means for multiplying each of the computed first coordinate values corresponding to a series of points for each successive second coordinate on the character outline, by the first scaling factor to define the size of the character in thefirst coordinate direction as displayed by said display means. .Iaddend..Iadd. 55. The system for displaying characters as claimed in claim 53, wherein said scanning means scans the scan paths in a pattern whereby the scan paths are spaced from eachother along the second coordinate in accordance with a given density of said scan paths, and said correlating means comprises means for selecting the number of scan paths by which to display the points of the character outline segment in accordance withsaid given density and said first scaling factor. .Iaddend..Iadd. 56. The system for displaying characters as claimed in claim 52, wherein said transferring means is responsive to the number of computations by said computing means of the firstcoordinate value corresponding to each point on the outline segment to obtain an indication of the number of computations and for comparing said indication to said one value indicative of the relative extent of the character outline for providing a callto obtain the next set of manifestations, when said indication has a predetermined relationship to said one value. .Iaddend..Iadd. 57. The system for displaying characters as claimed in claim 52, wherein display means comprises a cathode ray tube(CRT) for deflecting an electron beam in a vertical, Y direction corresponding to the first coordinate and for successively spacing the position of the electron beam in a second horizontal direction corresponding to the second coordinate to provide aseries electron beam scan spaced from each other in accordance with a given scan line density. .Iaddend. .Iadd. 58. The character generator for generating characters as claimed in claim 57, wherein said scanning means includes means for deflectingthe electron beam of said CRT along the first coordinate; said scanning control means comprising means for receiving an indication of the computed first coordinate value corresponding to a point on the outline segment and means responsive to the amountof deflection of the electron beam along the first coordinate direction for providing an indication thereof; and means for comparing the computed value of the first coordinate and the indication of beam deflection to determine when the scanning in eachscan path crosses the correlated and computed first coordinate value of the outline segment to thereby cause said scanning means to switch from one to the other of the display and blank states. .Iaddend..Iadd. 59. A system for generating anddisplaying characters encoded in accordance with a normalized quad of first and second coordinates, and wherein a character is defined by at least one character outline segment encoded in a set of instructions defining for a first value of the secondcoordinate, a value of the first coordinate corresponding to its point on the outline segement, and at least one value indicative of the extent relative to the second coordinate for which the set of instructions defines values of the first coordinatescorresponding to points on the character outline segment, comprising:
means for displaying a character including means for scanning a pattern of strokes extending in the first direction and spaced from each other along the second coordinate in accordance with a given density, and scan control means for controllingsaid scanning means to selectively control the blanking and unblanking of each stroke of the pattern;
means for generating the character to be displayed by said display means, including means for computing first coordinate values corresponding to each point on the outline segment for each successive second coordinate value in accordance with theencoded set of instructions of the character outline segment;
said computing means including means for correlating the size of the display character in the second coordinate direction, in accordance with the effective displacement of second coordinate positions of the quad, to the given density of saiddisplaying means to define a first component value of a horizontal scaling factor to control character size in the second coordinate direction for the display of the character by said displaying means; and
said scan control means controlling said scanning means to switch from one to the other of display and blank states when the scanning of each stroke crosses the correlated computed first, coordinated values of the character
ouline segment. .Iaddend..Iadd. 60. The system for displaying characters as claimed in claim 59, wherein said correlating means correlates the computed first coordinate values in accordance with a vertical scaling factor to define the size ofthe character along the first coordinate direction as displayed by said display means. .Iaddend..Iadd. 61. The system for displaying characters as claimed in claim 59, wherein said correlating means comprises first means for multiplying each of thecomputed first coordinate values corresponding to a series of points for each successive second coordinates on the character outline segment, by the vertical scaling factor to define the size of the character in the first coordinate direction asdisplayed by said display means. .Iaddend..Iadd. 62. The system for displaying characters as claimed in claim 59, wherein said correlating means comprises means for selecting the number of strokes by which to display the points of the characteroutline segment in accordance with said given density and a horizontal scaling factor. .Iaddend..Iadd. 63. The system for displaying characters as claimed in claim 59, wherein there is further included means responsive to the number of computationseffected by said computing means of the first coordinate value corresponding to each point on the outline segment to obtain an indication of the number of computations, and for comparing said indication to said one value indicative of the relative extentof the character outline segment for providing a call to obtain the next set of instructions, when said indicator has a predetermined relationship to said one value. .Iaddend..Iadd. 64. The system for displaying characters as claimed in claim 59,wherein display means comprises a cathode ray tube (CRT) for deflecting an electron beam in a vertical, Y direction corresponding to the first coordinate direction and for successively spacing the position of the electron beam in a second horizontaldirection corresponding to the second coordinate direction to provide a series electron beam strokes spaced from each other in accordance with said given stroke density. .Iaddend..Iadd. 65. The character generator for generating characters as claimedin claim 64, wherein said scanning means includes means for deflecting the electron beam of said CRT along the first coordinate direction, said scanning control means comprising means for receiving an indication of the computed first coordinate valuecorresponding to a point on the outline segment and means responsive to the amount of deflection of the electron beam along the first coordinate direction for providing an indication thereof, and means for comparing the computed value of the firstcoordinate and the indication of beam deflection to determine when the scanning in each stroke crosses the correlated and computed first coordinate value of the outline segment to thereby cause said scanning means to switch from one to the other of thedisplay and blank states. .Iaddend. .Iadd. 66. A character generator for generating characters encoded in accordance with a normalized quad of first and second coordinates, each character being encoded in a succession of sets of manifestations, eachset related to an outline segment of the character and including a beginning line manifestation identifying the initial first coordinate of each outline and an outline change manifestation specifying the change of direction of the outline, said charactergenerator comprising:
means for receiving a set of manifestations and generating the character for display, including means for computing a first coordinate value corresponding to a point on the outline segment for each successive second coordinate value in accordancewith the outline change manifestation for its outline segment,
display means including a display element and means for scanning the display element in a series of scan paths spaced from each other along the second coordinate in accordance with a given density of said scan paths, and means for controllingsaid scanning means between a display state for producing a display and a blank state for producing no display, said scanning control means controlling said scanning means to switch from one to the other of the display and blank states when the scanningin each scan path crosses the correlated and computed first coordinate value of the outline segment, and
said computing means including means for correlating the first coordinate value of the outline segment with the scan pattern and region of display in accordance with at least one scaling factor indicative of character size in the secondcoordinate direction, said correlating means for selectively effecting the computation of the first coordinate value of a point on the outline segment in accordance with the one scaling factor and the change of direction manifestation. .Iaddend. .Iadd. 67. The character generator as claimed in claim 66, wherein said correlating means effects a selected number of computations according to the one scaling factor. .Iaddend..Iadd. 68. The character generator as claimed in claim 66, wherein saidcorrelating means effects the computation of the first coordinate value of a point on the outline segment in accordance with a second scaling factor indicative of character size in the first coordinate direction. .Iaddend. .Iadd. 69. The displaysystem as claimed in claim 45, wherein each set of manifestations includes a second manifestation indicative of a change of the first coordinate with respect to the second coordinate, and said generating means is responsive to the second manifestationfor computing a first coordinate value coresponding to a point on the outline segment for each successive second coordinate value. .Iaddend..Iadd. 70. The display system as claimed in claim 46, wherein the set of manifestations includes a secondmanifestation indicative of a change of the first coordinate with respect to the second coordinate, and said generating means is responsive to the second manifestation for computing a first coordinate value corresponding to a point on the outline segmentfor each successive second coordinate value. .Iaddend..Iadd. 71. The display system as claimed in claim 70, wherein said relating means relates the first coordinate value of the outline segment with the scan pattern and region of the display inaccordance with one scaling factor indicative of character size in the second coordinate direction, said relating means for selectively effecting the computation of the first coordinate value of the outline segment in accordance with the one scalingfactor and the second manifestation. .Iaddend..Iadd. 72. A character generator for generating characters from stored electrical signals coded in accordance with a master quad of first and second master coordinates, each character being encoded in asuccession of sets of manifestations defining the outline segments of a character, said character generator comprising:
display means including a display element and means for scanning said display element in a series of scan paths directed along a first display coordinate and spaced from each other along a second display coordinate in accordance with a givendensity of the scan paths, said display means capable of displaying a character in accordance with a selected one of a plurality of character sizes; and
means for receiving a set of manifestations and for performing computations of the values of the first master coordinates corresponding to respective points on the outline segment for successive ones of the second master coordinates of the masterquad, said computing means comprising means responsive to the selected one of the plurality of character sizes for determining the ratio of the number of the computations effected by said receiving and performing means to the number of scan pathseffected by said display means to generate the outline of the character in accordance with the selected one of the plurality of character sizes and the given density of the scan paths. .Iaddend..Iadd. 73. The character generator as claimed in claim72, wherein there is a scaling factor corresponding to the selected one of the plurality of the character sizes and said determining means is responsive to the scaling factor for determining said ratio. .Iaddend..Iadd. 74. The character generator asclaimed in claim 73, wherein the scaling factor represents a non-integral value of said ratio, and said determining means provides an approximation of the non-integral value by periodically using first and second whole numbers. .Iaddend..Iadd. 75. Thecharacter generator as claimed in claim 74, wherein said determining means determines the first and second numbers to be the nearest integral values to the non-integral value. .Iaddend. .Iadd. 76. A character generator for generating characters of asize selected in accordance with a scaling factor, each character generated from stored electrical signals encoded in accordance with a master quad of X and Y master coordinates, each character being encoded in a succession of sets of manifestations,defining the outline segments of a character, said character generator comprising:
a cathode ray tube including a display screen and means for scanning said display screen with an electron beam in a raster-like pattern comprised of a series of beam scans directed along the Y coordinate of said cathode ray tube and spaced fromeach other along the X coordinate of said cathode ray tube in accordance with a fixed density of the beam scans, said cathode ray tube capable of displaying a character in accordance with a scaling factor; and
means for receiving a set of the manifestations and for performing computations of the Y master coordinate corresponding to points on the outline for successive ones of the X master coordinates, said computing means comprising means for selectingthe ratio of the number of computations effected by said computing means to the number of beam scans of said cathode ray tube to define the dimension of the character displayed upon said cathode ray tube along its X coordinate in accordance with saidfixed density of beam scans and with said scaling factor. .Iaddend..Iadd. 77. The character generator as claimed in claim 76, wherein said computing means further comprises means for adjusting the computed value of the Y coordinate in accordance witha second scaling factor to determine the extent of scan of the beam along the Y coordinate of said cathode ray tube. .Iaddend. .Iadd. 78. The character generator as claimed in claim 77, wherein said scanning means includes means for deflecting itselectron beam along its Y coordinate and means for controlling said scanning means to switch between a display state for emitting the electron beam and a blanked state for inhibiting the emission of the electron beam, said computing means comprisingmeans for providing an indication of the degree of deflection of the electron beam along the Y coordinate and means for receiving and comparing the computed and adjusted value of the first coordinate and the degree of deflection indication fordetermining when each beam scan crosses the adjusted and computed Y coordinate value of the outline segment to thereby cause said scanning means to switch from one to the other of its display and blank states. .Iaddend..Iadd. 79. A character generatorfor generating characters from stored electrical signals encoded in accordance with a normalized quad of first and second coordinates, each character being encoded in a succession of sets of manifestations, defining the outline segments of a character,at least one including a beginning line manifestation identifying the initial first coordinate of each outline segment and an outline manifestation specifying the direction of its outline, said character generator comprising:
means for receiving a set of manifestations and for generating a character for display, including means for computing the first coordinate value cooresponding to a point on the outline segment for each successive second coordinate value inaccordance with the outline manifestation for its outline segment,
display means including a display element and means for scanning the display element in a series of scan paths spaced from each other along the second coordinate in accordance with a given density of said scan paths, and
means for controlling said scanning means between its display state for producing a display and its blank state for producing no display, said controlling means controlling said scanning means to switch from one to the other of its display andblank states when the scanning in each scan path crosses the computed first coordinate value of its outline segment. .Iaddend..Iadd. 80. A character generator for generating characters from stored electrical signals encoded in accordance with anormalized quad of first and second master coordinates, each character encoded in a succession of sets of manifestations, defining outline segments of a character, said generator comprising:
display means including a display element and means for scanning said display element in a series of scan paths directed along a first display coordinate and spaced from each other along a second display coordinate in accordance with a givendensity of said scan paths, said display means capable of displaying a character in accordance with a selected one of a plurality of scaling factors, at least one of said scaling factors representative of a non-integral value, and;
means for receiving a set of manifestations and for computing values of the first display coordinate corresponding to points on the outline segment of each scan path of said display means, said computing means comprising means for determining andusing a first number of and a second different number of the second master coordinates to generate corresponding first and second portions of an outline segment of the character in accordance with said given density of the scan paths and said onenon-integral scaling factor. .Iaddend..Iadd. 81. A character generator for generating characters from stored electrical signals encoded in accordance with a master quad of first and second master coordinates, each character being encoded in asuccession of sets of manifestations defining the outline segments of a character, said character generator comprising:
display means including a display element and means for scanning said display element in a series of scan paths directed along a first display coordinate and spaced from each other along a second display coordinate in accordance with a givendensity of said scan paths, said display means capable of displaying a character in accordance with a scaling factor indicative of the ratio of the second master coordinates to the second display coordinates, said ratio comprising an integral number anda fraction; and
means for receiving a set of manifestations and for computing values of the first display coordinate corresponding to points on the outline segment for each scan path of said display means, said computing means comprising first and second meansfor storing respectively the integral number and the fraction of said ratio, means for selecting a given number of the second master coordinate to be used to generate an outline segment in accordance with the integral number and said given density ofscan paths, and means for varying said number of the second master coordinates in
accordance with the fraction. .Iaddend. 82. A character generator for generating characters from stored electrical signals encoded in accordance with a master quad of first and second master coordinates, each character being encoded in asuccession of sets of manifestations defining the outline segments of a character, said character generator comprising:
display means including a display element and means for scanning said display element in a series of scan paths directed along a first display coordinate and spaced from each other along a second display coordinate in accordance with a givendensity of said scan paths; and
means for receiving a set of the manifestations and for computing values of the first display coordinate corresponding to points for each scan path on an outline segment, said receiving and computing means comprising means responsive to the setof manifestations for providing a manifestation indicative of the direction of the outline segment, and first coordinate computing means responsive to said direction manifestation for computing
values of the first display coordinates. .Iadd. 83. The character generator as claimed in claim 82, wherein said computing means comprises means for determining the values of the first and second display coordinate for an initial point on theoutline segment. .Iaddend..Iadd. 84. The character generator as claimed in claim 83, wherein said first coordinate computing means is responsive to the initial values of the first and second display coordinate and to the direction manifestation forcomputing the value of the first display coordinate of the next successive point on the outline segment. .Iaddend..Iadd. 85. The character generator as claimed in claim 83, wherein said direction manifestation comprises a tangent function of thecorresponding outline segment. .Iaddend..Iadd. 86. The character generator as claimed in claim 82, wherein at least one of said sets of manifestations includes a manifestation indicative of the variable extent relative to the second master coordinatefor which its set of manifestations define points on its outline segment, said receiving and computing means responsive to the manifestation of a first occurring set of manifestations for requesting and receiving a second, subsequent set ofmanifestations. .Iaddend..Iadd. 87. A character generator for generating characters from stored electrical signals coded in accordance with a master quad of first and second master coordinates, each character being encoded in a succession of first andsecond sets of manifestations, each of the first and second sets defining an outline segment of a character and including a manifestation indicative of the variable extent relative to the second master coordinate for which its set of manifestationsdefines points on its outline segment, said character generator comprising:
display means including a first display element and means for scanning said display element in a series of scan paths directed along a first display coordinate and spaced from each other along a second display coordinate in accordance with agiven density of said scan paths,
means for generating the character for display including means for computing a first master coordinate value corresponding to a point on the outline segment for regularly periodic ones of the second master coordinates in accordance with the firstset of manifestations, and
means responsive to the manifestations of the first set for requesting and receiving the second set of manifestations. .Iaddend. .Iadd. 88. The character generator as claimed in claim 87, wherein there is further included means for storingthe manifestation of the first set and for decrementing the manifestation of the first set upon the computation of the value of each first master coordinate and upon decrementing the manifestation to a predetermined value, for initiating said responsivemeans to request and receive the second set of manifestations. .Iaddend..Iadd. 89. A character generator for generating characters from stored electrical signals encoded in accordance with a master quad of first and second master coordinates, eachcharacter being encoded in a succession of sets of manifestations defining the outline segments of a character, said generator comprising:
display means including a display element and scanning means for scanning said display element in a series of scan paths directed along a first display coordinate and spaced from each other along a second display coordinate in accordance with agiven density of said scan paths, said display means capable of displaying a character in accordance with a selected one of a plurality of character sizes; and
means for receiving a set of manifestations and for performing computations of the values of the first master coordinates corresponding to points on the outline, each computation corresponding to successive ones of the second master coordinate ofthe master quad, said computing means comprising means for adjusting the computed values of the first master coordinates of the outline to provide adjusted values of the first display coordinates of the outline segment in accordance with the selectedcharacter size. .Iaddend. .Iadd. 90. The character generator as claimed in claim 89, wherein the character size corresponds with a scaling factor, said adjusting means adjusting the ratio of the number of computations effected by said receiving andperforming means to the number of beam scans effected by said display means, to define the dimension of the character displayed upon said display means along its second display coordinate in accordance with the given density of the scan paths and withthe scaling factor. .Iaddend..Iadd. 91. A character generator for generating characters from stored electrical signals in accordance with a normalized quad of first and second master coordinates, wherein regularly periodic ones of the second mastercoordinates define successive computation cycles, each character being encoded in a succession of sets of manifestations defining the outline segments of a character, said character generator comprising:
display means including a display element and means for scanning said display in a series of scan patterns spaced from each other along a second display coordinate;
means for performing a plurality of successive computation cycles, each computation cycle computing a value of the first master coordinate; and
means for selecting ones of the computed values of the first master coordinate to provide values of the first display coordinates corresponding to points on the outline segment for each of the second dislay coordinates. .Iaddend..Iadd. 92. Thecharacter generator as claimed in claim 91, wherein said performing means comprising means for computing a change of the value of the first master coordinate for the present computation cycle with respect to the next preceding computation cycle. .Iaddend. .Iadd. 93. The character generator as claimed in claim 92, wherein said performing means comprises means for accumulating the changes of the values of the first master coordinates in successive computation cycles. .Iaddend..Iadd. 94. Thecharacter generator as claimed in claim 93, wherein said performing means comprises means responsive to a set of manifestations for providing a manifestation indicative of the slope of the corresponding outline, and means responsive to the slopemanifestation for computing the change in value of the first master coordinate for the present computation cycle with respect to the next preceding cycle. .Iaddend..Iadd. 95. The character generator as claimed in claim 94, wherein said display meansscans said display element in scan paths spaced from each other in accordance with a given density of said scan paths. .Iaddend..Iadd. 96. The character generator as claimed in claim 95, wherein the spacing between the second master coordinates issubstantially equal, and said performing means computes in each computation cycle the change of the value of the first master coordinate for the present computation cycle with respect to the next preceding cycle, in accordance with the equal spacing. .Iaddend..Iadd. 97. The character generator as claimed in claim 95, wherein said display means comprises a cathode ray tube including a display screen, means for scanning said display screen with an electron beam in a raster-like pattern comprised of aseries of beam scans directed along said first display coordinate and spaced from each other along said second display coordinate in accordance with the equal spacing, and means for controlling said scanning means between a display state for producingthe electron beam and a blanked state for producing no electron beam; said computing means comprising means for providing an indication of the degree of deflection along the first display coordinate, and means for receiving and comparing the computedvalue of the first master coordinate and the degree of deflection modification for determining when each beam scan crosses the computed value of the first master coordinate value of the outline segment to thereby cause said cathode ray tube to switchfrom one to the other of its display and blank states. .Iaddend..Iadd. 98. The character generator as claimed in claim 91, wherein the character is defined by a plurality of outline segments, wherein for a given second master coordinate of the masterquad there is defined a corresponding plurality of points, each having a different first master coordinate, said performing means successively performing the calculation of the values of the first master coordinates for each of said plurality of outlinesin a first, single computation cycle and thereafter computing the values of the first coordinates for each of the plurality of outlines in a second, successive computation cycle. .Iaddend..Iadd. 99. The character generator as claimed in claim 98,wherein said display means comprises means for controlling said scanning means between a display state for producing a display and a blank state for producing no display, said controlling means responsive to the values of the first display coordinates tosuccessively control said scanning means to switch between a display state and a blank display in the course of a first scan pattern, while said performing means is calculating the values of the first display coordinates to be applied to said displaymeans during a second scan pattern. .Iaddend. .Iadd. 100. The character generator as claimed in claim 99, wherein there is included storage means coupled to said performing means for receiving and storing the values of the first master coordinatesfor a given computation cycle in the order they are to be used by said controlling means to control said scanning means between its display and blank states. .Iaddend. |
| Description: |
CROSS-REFERENCE TORELATED APPLICATIONS
This application is based upon original Pat. No. 4,029,947, issued June 14, 1977, upon application Ser. No. 359,591 filed May 11, 1973, and relates a co-pending application entitled "CHARACTER GENERATING METHOD AND SYSTEM"; Ser. No. 359,590,filed May 11, 1973 in the name of Robert L. Caswell. .Iaddend.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to character generating systems and, more particularly, to a digital such system having a minimum data storage requirement and wherein character display controls are derived by computations on a few stored parametersby which each character is encoded.
2. State of the Prior Art
Character generators have numerous applications, a common commerical one being phototypesetters. Early such devices were primarily optical and used masks formed in the character configurations. CRT displays were developed wherein the patternsmay be defined either optically or from digitally derived signals. As one example, a flying spot scanner is optically coupled to a matrix of character representations to derive the digital signals for the pattern in U.S. Pat. No. 3,324,346.
Other CRT systems have employed marks which are scanned for a similar purpose, as in U.S. Pat. Nos. 2,275,017 and 2,379,880.
One brute force method of character encoding is to identify each element or dot of a matrix of dots which correspond to the character segments when a character is superimposed on the matrix. A dot-type generating system is described in U.S. Pat. No. 3,165,145. A severe disadvantage of this approach is the excessively large amount of storage required for even moderate to poor quality reproduction.
Another form of coding developed in the prior art generally involves the breaking down of a character's area into narrow strips and quantizing and storing the starting coordinates and length of each strip. Such a technique is disclosed in U.S. Pat. No. 3,305,841. An improvement in that technique is set forth in U.S. Pat. No. 3,471,848 wherein an incremental form of encoding the terminal points of successive strips is employed. This generally serves to reduce the required memory for theencoded character data.
An alternate approach in the more recent prior art is set forth in U.S. Pat. No. 3,422,419 in which a set of characters is analyzed to define a plurality of patterns which are common to one or more characters and are of substantiallyrectangular configuration, comprising a plurality of line segments of controlled length. Each character is encoded as comprising a combination of selected one of these common patterns. Such a system, while reducing storage requirements, can pose greatrestrictions on the font styles and result in some distortion of the generated characters.
SUMMARY OF THE INVENTION
.[.In accordance with the present invention, all characters of all fonts to be stored in memory are encoded in relation to a normalized quad. The quad in general corresponds to the maximum point size character to be displayed..].
.[.Each character is analyzed in relation to the coordinates of the quad and specifically as to outline pairs which contain therebetween a segment of the character and thus define the boundaries of such a segment. Each character thus is definedby one or more of these outline pairs. The encoded information as to the parameters of each character includes the Y coordinates of the starting point or points of each such outline pair and the slope and curvature (variable directional parameters) ofeach such outline. In the quad, the X coordinate spacing, or bit positions, along the X coordinate are defined as unity value. Hence, all slopes are defined by incremental changes in the Y coordinate of the outline for successive X coordinatepositions. Curvatures are then encoded for certain predetermined radii of curvature which are matched to the character outlines. Each such curvature determines a succession of incrementally changing slopes. Moreover, the rate of incrementing of theslopes is varied. Hence, a given curvature defines a succession of incremental slope changes each of varying duration, and the slope increments in turn determine successions of incremental changes in the Y coordinate positions..].
.[.Generation of a character from this encoded and stored parameter information is performed in accordance with successive computation cycles corresponding to successive X coordinate positions. Sequencing through successive computation cycles isa time function dependent on the number of computations which must be performed which, in turn, depends upon the number of outlines to be processed..].
.[.Character display finally is performed as a function of blanking and unblanking a scanning beam as it is directed through successive horizontally displaced vertical strokes. Each outline pair causes the scanning beam to be unblanked andscanned through the vertical displacement of the outline pair. As before noted, horizontal scaling factors provide for correlating the stroking function at any desired stroke density with the computed Y coordinate transition values generated insuccessive computation cycles as a function both of stroke density and the required point size of the display..]..Iadd.
In accordance with the present invention, there is disclosed a character generator and a method for generating characters in accordance with encoded data capable of being stored in a memory and representative of points on at least one outline ofa character, the outline points being defined in terms of first and second coordinates. In particular, there is included date in the form of a set of instructions defining for each value of the second coordinate, a value of the first coordinatecorresponding to its point on the outline and at least one value indicative of the extent relative to the second coordinate for which the set of instruction defines points on its character outline. There is further included means for generating thecharacter and in particular for computing a first coordinate value corresponding to point on the outline for each successive coordinate value in accordance with the encoded set of instructions for the character outline. A display device illustrativelyin the form of a cathode ray tube, displays the character by forming a plurality of scan paths or strokes spaced from each other in accordance with a given scan density, and further including a device for controlling the scanning of the scan pathsbetween a display state producing a display and a blank state for producing no display. In particular, the scanning control device switches from one state to the other when the scan path in the first coordinate direction crosses the correlated andcomputed first coordinate values of the character outline.
In a further aspect of this invention, there is included a device for correlating the size of the normalized character as encoded by the first and second coordinates to the size as displayed by said display device, by a first (or vertical) and asecond (or horizontal) scaling factor. In particular, the first (or vertical scaling factor) is used to correlate the first coordinate value to determine when the scanning control device switches from one to the other of the display and blank states. The dimension of the displayed character in the second coordinate direction is determined by the scan line density and the second or horizontal scaling factor.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is an illustration on a greatly enlarged scale of a 72 point Serif display for unity horizontal and vertical scale factors (HSF=VSF=1) produced from encoded instructions in accordance with the invention.
FIG. 2 is an illustration of the Serif as in FIG. 1 on an even larger scale, generated from the same encoded instructions but displayed at 4 points with VSF=18 and HSF=25.774, the insert illustrating the actual display on the same scaleenlargement as in FIG. 1.
FIG. 3A illustrates a character generated by the instructions of the table of FIG. 3B, relative to a normalized quad, and FIG. 3C illustrates the outlines of the same character of FIG. 3A as numbered in the instructions of FIG. 3B.
FIG. 4 is a table of instructions illustrating their formats.
FIG. 5 is a simplified quad for illustrating character encoding.
FIG. 6 is a simplified plot of codable slopes.
FIG. 7 is a table of values for the slopes of FIG. 6.
FIG. 8 is a simplified quad having a simple character configuration thereon for explaining slope encoding.
FIG. 9 is a table of instructions for the character and quad of FIG. 8.
FIG. 10 is a table of computed Y coordinate values for successive X coordinate positions, computed for the instructions of FIG. 9.
FIG. 11 is a plot of the character generated from the encoded instructions of FIG. 9.
FIG. 12 is a block diagram of a ROM for storing values of incremental changes of the Y coordinate value for corresponding slope values.
FIG. 13A and 13B illustrate the bit pattern of the ROM of FIG. 12 to the bases 2 and 10, respectively; FIG. 13C is a truth table relating the representative slope values of FIG. 6 to binary values and the bit positions thereof utilized as theaddressing bits for the ROM of FIG. 12.
FIG. 14 is a simplified block diagram of a mechanization for the Y update function in slope computations.
FIG. 15 is a simplified plot of curvatures.
FIG. 16 is a table relating the curvatures of FIG. 15 to binary form and the corresponding radii.
FIG. 17 is a plot of succession of slopes approximating a circular curve of an arbitrary radius of curvature.
FIG. 18 is a comparison plot of a succession of slopes generated for equal X coordinate intervals and a curve to be approximated and encoded.
FIG. 19 is a simplified table, for a given curvature value k, of the corresponding stored succession of slope values M and respectively predetermined numbers S.sub.N of Y coordinate change computations to be made for each slope value, as utilizedfor closely approximating an arc of a circular curve.
FIG. 20 is a comparison plot of an outline generated in accordance with the curvature table of FIG. 19 and the arc to be approximated.
FIG. 21 is a table illustrating Y coordinate update values computed in accordance with the table of FIG. 19.
FIG. 22 is a comparison plot of outline produced from the values of the table of FIG. 21 and the arc approximated thereby.
FIG. 23 is a simplified design of a ROM utilized to implement the function of M updating in accordance with the table of FIG. 19.
FIG. 24 is a table of the bit pattern of the ROM of FIG. 23.
FIG. 25 is a table illustrating the generation of difference curvatures from a single ROM as in FIG.'s 23 and 24 programmed for a base radius of r.sub.c =32 for k=6.
FIG. 26 is a simplified block diagram of a mechanization for implementing the M update function in accordance with FIG.'s 19-25.
FIG. 27 is a basic block diagram of an actual embodiment of a character generator in accordance with the invention.
FIG. 27A is a logic flow diagram explaining the basic functions performed in the basic system block diagram of FIG. 27.
FIG. 28 is a detailed block diagram of the computation and storage unit of the block diagram of FIG. 27.
FIG. 29 is a detailed block diagram of the Y unit shown in FIG. 28.
FIG. 29A is a flow chart for the Y computation function of the Y unit of FIG. 29.
FIG. 29B is a plot illustrating curve generation in relation to incrementally updated values of M and Y.
FIG. 29C is a summary of the curve plot of FIG. 29B indicating the relationship of curvature polarity and slope increments and the relationship of slope polarity and Y coordinate increments.
FIG. 30 is a detailed block diagram of the M unit of FIG. 28.
FIG. 30A is a flow chart for the functions of the Y unit of FIG. 30.
FIG. 31 is a detailed block diagram of the K unit of FIG. 28.
FIG. 31A is a table of values for the K decode logic of FIG. 31.
FIG. 31B is a table of values stored in the S.sub.N PROM of FIG. 31.
FIG. 31C is a logic truth table for the MK decode logic block of FIG. 31.
FIG. 32 is a detailed block diagram of the S UNIT of FIG. 28.
FIG. 33 is a detailed block diagram of the Scaling, Stroking, and Video Control Unit of FIG. 29.
FIG. 34 is a detailed block diagram of the horizontal scaling unit of the Scaling, Stroking, and Video Control Unit of FIG. 33.
FIG. 35 is a detailed block diagram of the Central Processing Unit of FIG. 27.
FIG. 36 is a detailed block diagram of the Process State Unit of FIG. 35.
FIG. 37 is a flow chart illustrating the sequence of states of the system; and
FIG. 38 is a detailed block diagram of the Outline Sequence Unit of FIG. 35 .
DETAILED DESCRIPTION OF INVENTION
General Discussion
Each character capable of being displayed typically is one of a plurality of characters of a set, generally designated a font or font style. It will be appreciated that each such font style must be available for display at any of a wide range ofsizes. The typical terminology in typography relates character sizes to points as the basic typographic unit, one point being approximately 1/72 of an inch. Thus, a 9-point character is defined within a quad of 9.times.1/72 inch=1/8 inch. Correspondingly, a 72-point character has a quad of 1 inch.
In the present invention, each character is encoded for storage in accordance with a normalized quad common to all characters of all fonts. That quad arbitrarily is assigned a coordinate system of 1,024 coordinate or bit positions in the Xdirection and 1,024 coordinate or bit positions in the Y direction.
As detailed hereafter, the present invention requires a minimum of storage or memory for the encoded character data. Particularly, each character is encoded as to certain parameters related to the outlines of each portion of the character inrelation to the normalized quad. The outlines thus are related in pairs and in essence are the boundaries of the solid area, or segments, of each character. Whereas a normalized quad is postulated as the basis for encoding of characters, in fact, thesubject system is not inherently restricted to a predetermined quad configuration in the sense of the typically square quad of typography. Instead, the horizontal dimension or width of the quad effectively is variable in accordance with the width of acharacter.
The encoded and stored parameters for each character include the Y coordinates for the initial, or starting point, of each outline and slopes and curvatures of those outlines. In relation to the quad, each bit position in the X coordinate of thequad encompassing the character is considered as a unit spacing, and a computation is performed in relation to the stored parameters for each such successive X bit position of the quad encompassing the character, i.e., each computation cycle, to computethe Y coordinates at that bit position of each outline.
The display of each character is performed on a cathode ray tube (CRT) display screen of high resolution, both as to the quality of the luminescent screen and as to the control sensitivity of the scanning electron beam. As the scanning beam isdisplaced through a vertical stroke, the computed Y coordinates of the successive outlines of each pair cause the beam to be alternately unblanked and blanked, "filling-in" that vertical portion of the character segment between the outline pair. Thecharacter generator of the invention is adaptable to any desired scan density of the display CRT. For example, the display CRT may have a total display line width of 11 inches. A fixed increment of the successive displacement of vertical scans acrossthe preset maximum width, as well, is established and, as an example, may comprise 2.sup.14 positions, or bit positions, for a total of 16,384 bit positions, across the 11 inch width or, more precisely 1,488 bits per inch. Typically, the scan density orresolution is adjustable and may be selected at the maximum of 1/1488 inch or at 1/744 inch (i.e., one scan or stroke for each bit position or every other bit position). In high quality display CRT's of the type contemplated to be employed with thepresent character generator, the spot size of the scanning CRT beam is very precisely controlled. In the present example, a spot size of 0.0015 inches may be employed. With these specifications, overlap of strokes may be achieved with a scan density,i.e. stroke displacement, of 1/744 inch.
A significant point to appreciate is that in the present invention, the bit positions, or the divisions of the quad are independent of the scan raster, and thus as well is the encoding of the characters, although obviously the two must becorrelated to achieve the display function. Specifically, the characters are encoded for a maximum point size of display within the normalized quad. Horizontal and vertical scaling factors then are introduced for transforming the computed coordinatedata for control of the scanning CRT beam, in accordance with the desired point size of the display. Thus, a single set of encoded character data for any given font suffices for display of all characters of that font in any desired point size within thefull range of available point sizes.
A minicomputer recieves the input data designating the font style and size for the display, as well as the particular data to be displayed, and provides for positioning the scanning beam at the appropriate line and character spacing positionsdesired.
The number of displayed lines of characters displaced on the CRT also may be selected in view of the font size being displayed, under control of the computer.
In one application of the invention, the CRT display is used to expose a photoresponsive medium which then is incrementally advanced past the CRT display of each line of characters. The ability to display plural lines of characters beforeadvance of the photoresponsive image receiving medium to a position of receiving a subsequent plurality of displayed lines of characters permits higher speed operations. In this regard, it will be appreciated that the deflection of the scanning beamthrough successive, vertically displaced character display lines is a far more rapid and easily performed function that incrementally advancing the medium for each display line.
To summarize thus far, every character of each font is encoded in relation to a normalized quad and the data necessary to reconstruct a character includes initial coordinates of the character within the quad, i.e., the starting position of thecharacter outlines, and variational parameters such as direction and curvatures of lines and curves comprising the outline. Generation of a character outline proceeds concurrently with display of the character in accordance with computations performedin time sequence with the stroking intervals of the CRT display beam. As noted, however, there is not any necessary one-to-one correspondence between the computation intervals and the stroking intervals; furthermore, although the same number ofcomputations for defining the character outline are performed regardless of the point size of the character desired to be generated, the Y coordinates which are output for control of the unblanking of the scanning beam are generated in relation to thehorizontal scaling factor which relates the number of computation cycles to the desired point size and stroke density of the CRT beam.
Scaling: Computations and Actual Displays
As an example, in a system having a maximum 72-point size display, implying further that all characters are coded for that size, and assuming a normalized quad of 2.sup.10 bit positions (1,024 bit position), the scale factors are computed asfollows: ##EQU1## (It will be appreciated that fractional values may result from the above calculations. These may be expressed as binary number equivalents used and in fact are so developed for processing by the system).
The actual number of strokes per character is related to the computation cycles by the following expression: ##EQU2##
To aid in visualizing the foregoing, refer to FIG. 1 which illustrates the display of a 72-point Serif, on a greatly enlarged scale (refer to FIG. 3A), as produced by a scanning CRT having a stroke density of 1,024 strokes per inch. Note thatFIG. 1 for illustrative purposes assumes a stroke density of an equal number of strokes per inch as the number of bit positions in the normalized quad. Further, the illustration is for a maximum 72-point size character display, thus relating thecomputation of outlines on a one-to-one basis to the initial encoding of the character. From Equations (1) and (2) above, HSF=VSF=1. It also follows from Equation (3) that the number of strokes per character equals the number of computation cycles.
In FIG. 1, the initial coordinates are X=200 and Y=750 as to the lower outline, and X=200 Y=800 as to the upper outline. Given this initial information, the CRT beam may proceed immediately to scan the first line at the X=200 position with thebeam initially being blanked, then unblanked at Y=750 and then again blanked at Y=800. The vertical location of the beam during the stroke is determined by counting pulses of an 8 MHz clock which, by Equation (2) for a given ramp rate, thus identifiesthe actual physical position of the beam.
During a given stroke, the system computes the character outline positions for the succeeding stroke. Since HSF=1 in FIG. 1, a computation is performed for each successive horizontal bit position and a stroke, as well, is performed for each bitposition. As described in detal below, the encoding of the character as in FIG. 1 would identify the Serif as having no change in the upper and lower outlines, from computational cycle 200 at which it initiates through cycle 250. Thus, the identicalblanking and unblanking of the beam proceeds for the time duration of 50 computation cycles. At cycle 250, however, a change occurs in the lower outline, comprising a downward curvature continuing in more or less regular fashion through computationcycle 300. As suggested in FIG. 1, the curve is approximated by a succession of incremental steps and thus the Y coordinate for the lower outline decreases in successive steps for predetermined numbers of the computation cycles along the X axis. Forexample, a first change in the lower Y coordinate exists from computation cycle 256 through 260 (5 cycles), a further change is produced from cycle 261 through 264 (4 cycles) and so forth.
FIG. 2 now illustrates the more typical situation in which the stroke density does not correspond on a one-to-one basis with the bit positions of the normalized quad and, instead, a stroke density of 744 points per inch is illustrated. Inaddition, a 4-point Serif is illustrated which thus is 1/18th the size of the 72-point Serif of FIG. 1. From equation (2), VSF=18 as illustrated in FIG. 2. The Serif is shown in FIG. 2 to be of the same size as in FIG. 1, since it is encoded on thebasis of the normalized quad. However, whereas FIG. 1 illustrates the Serif at 62.5 times the actual display size of a 72-point character, for comparison, the display size of the 4-point Serif of FIG. 2 is suggested in the insert on FIG. 2. Anappreciation of the scaling difference also will be derived by comparison of the CRT spot of 0.0015 inches in diameter as illustrated in FIG. 1 and that same spot in FIG. 2 for the 4-point Serif.
The beam location during each vertical stroke is still identified by the 8 MHz clock but instead of each clock pulse being counted as 1 as in FIG. 1, each clock pulse now causes a count increase of 18 in the counter. The ramp rate of thescanning beam, therefore, can remain constant.
From equation (1), HSF=24.774 as also illustrated in FIG. 2. This implies that one vertical stroke is performed for each 24.744 computation cycles. To implement this, a whole number or integer number of computation cycles must be related to asingle stroke and thus special circuit is provided as hereinafter disclosed to vary the integer number of computation cycles for successive strokes whereby an average value of HSF=24.774 is achieved.
Referring again to the insert in FIG. 2, it now will be seen that five strokes numbered from 10 to 14 are performed by the CRT to display the Serif portion of the illustrated character. FIG. 2 also shows in dotted line format the traces of thespot, the dark or heavy lines in FIG. 2 illustrating the computation cycle at which the actual strokes are performed. It will, of course, be appreciated that the resolution of the character is substantially descreased, consistent nevertheless with ahigh, or graphic arts, quality of the displayed character in view of its much reduced size. It also will be appreciated that once a stroke begins, the system proceeds to compute the character outlines, and hence the blanking and unblanking positions ofthe scanning beam, for the next stroke, and that multiple computation cycles are required.
Encoding of Character Data
In this section, there is considered in more detail the basic techniques of character encoding. In FIG. 3A is shown in large block "J" with a related table in FIG. 3B comprising the instructions for generating that character. The same characteris shown in FIG. 3C to illustrate the outlines of the character. For correlation, FIG. 3A includes a bracketed region corresponding to the Serifs of FIGS. 1 and 2. The letter is seen to occupy 500 computational cycles with an initial X,Y coordinate of0,400. As seen in FIG. 3A, the character is to be completely filled in by the CRT strokes and thus outline pairs are identified in FIG. 3C bounding those filled-in regions. At the beginning of the character (X .quadrature.0), a first outline pair 1 and2 is defined and at cycle No. 200, a new pair 3 and 4 initiates. As shown in FIG. 3C, the angle .theta. which ranges between .+-.87.2.degree. is measured relative to the horizontal. The line defining the angle is the tangent to the curved boundary oroutline of the character, as discussed more fully hereafter.
Every character at its initial starting point necessarily includes at least one outline pair which for the illustrated letter "J" are the outlines lines 1 and 2 having a common initial Y coordinate 400. As knowledge of outline 1's slope is aprerequisite for the first computation cycle, the Begin Ouline Pair (BOLP) instruction must also indicate the need for this additional information. This is established in the last column of FIG. 3B as 0 "computation cycles to next instruction". At thestarting point, outline 1 has a vertically downward direction. This is coded as a change slope instruction CM of .theta.=-87.2.degree.; again, 0 computation cycle is encoded. Also, at the starting point, outline 1 is encoded to have a change ofcurvature instruction (CK) of the curvature value +1/200. The CK instruction also is encoded for 100 computation cycles to the next instruction. Stroking and computing now proceeds, for the appropriate horizontal scaling factor, to the computationcycle (c.c.) No. 100.
Next, a CM instruction to change slope and a CK instruction to change curvature as to outline 2 are presented, which then prevail for the succeeding 100 computation cycles. No change in instruction for outline 1 is encoded and therefore, bycomputations to be explained, each of outlines 1 and 2 is defined in the curvilinear configuration shown until computation cycle 200. At c.c. 200, the outline pair 3,4 initiates in accordance with the further BOLP instruction encoded as to therespective Y coordinate values 750 and 800. At c.c 250, there is a change curvature instruction CK for outline 3 encoded for curvature K=1/50, which continues for 50 computation cycles. Note that an initial portion of outlines 2 and 3 and the entirelyof outline 4 are horizontal and that no CM instruction is required to designate intial slopes for those outlines. Note also that no CM instruction is required prior to the CK instruction for outline 3, since no change in the tangent exists at the pointthe curve begins.
Note that outlines 2 and 3 cease to exist at cycle No. 300; this is established by the instruction End Outline Pair (EOLP). One hundred computation cycles are encoded in the EOLP instruction. As will be detailed, the outline pair which continueto define the remainder of the character now include the outlines 1 and 4. Hence, unblanking is continuous between outlines 1 and 4, outline 4 remaining a straight line and outline 1 continuing to follow the curvature of its earlier CK instruction.
At cycle No. 400, outline 1 is further defined by a special form of BOLP instruction, causing it to reinitialize at cycle No. 400 from a value of about Y=400 directly to the value Y=700. The special B | | | |