Claims
- 1. System for generating data representative of an image having an object within a background field, said object being characterized by a first detectable characteristic and said background being characterized by a second detectable characteristic, comprising:
- A. scanning means for scanning said object and background field in a predetermined direction along a plurality of substantially parallel lines of scan, each of said lines of scan being displaced from the previous lines of scan in the direction perpendicular to the direction of scan,
- B. detection means for generating and storing contour point data representative of elemental regions along said scan lines characterized by a transition between said first and second detectable characteristic, said contour point data for each of said transition regions having a first (X) value representative of the position of that region as measured from the first line of scan in the direction perpendicular to the direction of scan, and a second (Y) value representative of the position of that region as measured from the start of a line of scan in the direction of scan,
- C. contour, defining means for identifying each contour point value pair (X, Y) with a contour element of the contour of said object, each of said contour elements being monotonically increasing in the direction of perpendicular to said direction of scan,
- D. vector means for generating and storing a succession of vector data pairs for each of said contour elements, said vector data pairs having a first (.DELTA.X) value and a second (.DELTA.Y) value, said .DELTA.Y and X values being representative of the distance in said scan direction and perpendicular to said scan direction, respectively, between selected vector start and end points on an associated contour element, said vector start and end points being selected from said contour point data so that the distance between any point on the straight line segment connecting said start and end points and the closest point on said associated contour element between said vector start and end points is less than a predetermined value,
- E. encoder means for encoding said vector data pairs to form an ordered sequence of code words representative of said object, said encoder means including:
- i. vector modification means including:
- a. means for identifying the X value at which a new contour element starts along one of said scan lines, and
- b. breakpoint means for modifying the vector data pair .DELTA.X, .DELTA.Y including said scan line for a previously identified contour element, said previously identified contour element being adjacent to said new contour element on the same scan line and preceding said new contour element when the new contour element is the last contour element identified in said same scan line, and
- following said new contour element otherwise, said breakpoint means being inoperative if the vector end point of the vector data pair of said previously identified contour element is in the same scan line,
- said breakpoint means including means for generating and storing a first modified vector data pair .DELTA.X, .DELTA.Y for said previously identified contour element, said first modified vector data pair having a vector end point representative of the X and Y values for said previously identified contour element in the new start scan line and the previously determined vector start point, and including means for generating and storing a second modified vector data pair .DELTA.X, .DELTA.Y for said previously identified contour element, said second modified vector data pair having a vector start point representative of the X and Y values for that new start scan line and the previously determined vector end point, said breakpoint means being inoperative if the vector end point of said previously identified contour element is in said new start scan line, and
- c. means for replacing in said vector storage means said vector data pair for said previously identified contour element with said first and second modified vector data pairs,
- ii. storage means for storing a contour element value CE representative of the number of identified contour elements,
- iii. storage means for storing, in association with each contour element, data representative of the initial X and Y values for that contour element detected during the scan of said object,
- iv. means for generating and storing a sequence of code words, including sequentially operative:
- a. means for generating and storing the first (bearing) code word in said sequence, said first code word being representative of the X value of the scan line in which the first contour element was detected during said scan,
- b. means for identifying said scan line in which said first contour element was detected as the current scan line,
- c. means for generating and storing a subsequence of code words for said current scan line including means for performing the steps of:
- 1. generating and storing an SV word representative of the Y value of a first new start (NS) portion detected in said current scan line, said first NS portion being part of the first contour element detected for the first time along said current scan line, said means for performing said SV generating and storing step being inoperative for a current scan line having no new start portions,
- 2. generating and storing an NS word and NS value, said NS word and NS value being representative of the number of NS portions of contour elements detected for the first time along the current scan line, said means for performing said NS word and value generating and storing step being inoperative for a current scan line having no new start portions,
- 3. successively processing NS portions and continuing (C) portions of contour elements detected in the current scan line, said NS portions being parts of contour elements detected for the first time along the current scan line, and said C portions being extensions of contour elements detected in the next previous scan line, wherein said NS and C portion processing is performed in the order of detection of the respective portions along the current scan line, each processing of an NS portion for a current scan line including the sub-steps of:
- generating and storing an LC/LR word representative of a predetermined number of most significant bits (LR) of the .DELTA.X value associated with the first vector data pair for the NS portion, and representative of the number of vector data pairs (LC) for which that .DELTA.X value has those most significant bits for the corresponding contour element,
- generating and storing a DC/DR word representative of a predetermined number of most significant bits (DR) of the .DELTA.Y value associated with the first vector data pair for said NS portion, and representative of the number of vector data pairs (DC) for which that .DELTA.Y value has those most significant bits for the corresponding contour element,
- generating and storing a D/L word representative of a predetermined number of least significant bits (L) of the .DELTA.X value associated with said first vector data pair, and representative of a predetermined number of least significant bits (D) of the .DELTA.Y value associated with said first vector data pair, whereby LR and L completely specify said .DELTA.X value and DR and D completely specify said .DELTA.Y value,
- generating and storing a first expiration value X.sub.exp representative of the number of scan lines between said current scan line and the scan line including the vector end point of the vector pair including said NS portion,
- generating and storing a second expiration value M.sub.exp representative of the number of vector data pairs for said contour element remaining before the LR portion of the LC/LR word for said NS portion changes from one vector data pair to another,
- generating and storing a third expiration value N.sub.exp representative of the number of vector data pairs from the data pair including said NS portion to the data pair in which the DR portion of the DC/DR word for said contour element including said NS portion changes from one vector data pair to another,
- generating and storing a fourth expiration value Z.sub.exp representative of the number of vector data pairs from the data pair including said NS portion to the data pair including the end of the contour element including said NS portion,
- decrementing said stored NS value,
- comparing said NS value with zero and
- when said NS value exceeds zero, completing said processing for said NS portion by generating and storing an SV word representative of the Y value of the next unprocessed NS portion detected along said current scan line, or
- when said NS value equals zero, completing said processing for said NS portion by generating an NL word, said NL word being representative of the number of scan lines between said current scan line and the next scan line including an NS portion, said NL word being representative of a reference (R) word when there are no other scan lines including an NS portion,
- wherein each processing of a C portion for a current scan line includes the substeps of:
- updating X.sub.exp to equal zero when said .DELTA.X value for the vector data pairs associated with the contour element including said C portion changes from one vector data pair to another in said current scan line, or otherwise to be representative of the number of the scan lines following said current scan line before said .DELTA.X value for the vector data pairs associated with the contour element including said C portion changes from one vector data pair to another,
- comparing said updated X.sub.exp with zero, and,
- when X.sub.exp exceeds zero, terminating said processing of said C portion for said current scan line, and
- when X.sub.exp equals zero, updating Z.sub.exp to be representative of the number of vector data pairs following the data pair including said C portion to the data pair including the end of the contour element including said C portion, comparing said updated Z.sub.exp with zero, and
- when said updated Z.sub.exp equals zero, completing said processing of said C portion by generating and storing a termination (T) word for said contour element and decrementing said CE value,
- when said Z.sub.exp exceeds zero, continuing by updating M.sub.exp to be representative of the number of vector data pairs remaining before the LR portion of the LC/LR word for the vector data pairs associated with the contour element including C portion changes from one vector data pair to another, and comparing said updated M.sub.exp with zero, and
- when M.sub.exp equals zero, generating an LC/LR word representative of a predetermined number of most significant bits (LR) of the .DELTA.X value associated with the next vector data pair for the C portion, and representative of the number of vector data pairs (LC) and which the .DELTA.X value has those most significant bits, and updating M.sub.exp to equal said LC value,
- updating N.sub.exp to be representative of the number of vector data pairs remaining before the DR portion of the DC/DR word for the vector data pairs associated with the contour element including said C portion changes from one vector data pair to another, and comparing said updated N.sub.exp with zero, and
- when N.sub.exp equals zero, generating a DC/DR word representative of a predetermined number of most significant bits (DR) of the .DELTA.Y value associated with the next vector data pair for the C portion, and representative of the number of vector data pairs (DC) for which that .DELTA.Y value has those most significant bits, and updating N.sub.exp to equal said DC value,
- terminating said processing of said C portion for said current scan line, by
- generating a D/L word representative of a predetermined number of least significant bits (L and D) of the associated .DELTA.X and .DELTA.Y values, respectively, associated with the next vector data for the C portion, and updating X.sub.exp to be representative of the number of scan lines following said current scan line before said .DELTA.X value for the vector data pairs associated with the contour element including said C portion change from one vector data pair to another,
- 4. comparing said CE value with zero,
- when said CE value exceeds zero, updating said scan line identifying means so that said current scan line is the next closest scan line following said previous current scan line, said next closest scan line being selected from the set of scan lines including:
- the scan lines identical to or following said previous current scan line and defined by the X.sub.exp values for processed NS and C portions, and
- returning to step 1 for said new current scan line, and
- when said CE value equals zero, terminating said generation and storage of said sub-sequence of code words.
- 2. The system according to claim 1 wherein said vector means is adapted to select said vector start and end points so that the number of points on said contour element between said vector start and end points that are greater than a predetermined distance from the straight line segment connecting said vector start and end points is less than a value that is functionally dependent on the .DELTA.X value for said vector start and end points.
- 3. The system according to claim 1 wherein said object is an alphanumeric character and said scan direction is top-to-bottom with respect to said character.
- 4. The system according to claim 1 wherein said object is an alphanumeric character and said scan direction is left-to-right with respect to said character.
- 5. The system according to claim 1 wherein said object is an alphanumeric character and said scan direction is bottom-to-top with respect to said character.
- 6. The system according to claim 1 wherein said object is an alphanumeric character and said scan direction is right-to-left with respect to said character.
- 7. The system according to claim 1 wherein said scanning means is adapted to scan said object in alternate directions along alternate lines of scan, and wherein said detection means includes data buffer means to transform said contour point data so that said X value is measured from a single edge of the array of scan lines.
- 8. System for generating phototypesetting control signals for a cathode ray tube (CRT) having a constant stroke rate raster pattern, comprising:
- means for scanning selected images and generating character data representative thereof,
- means for encoding said character data in accordance with a first predetermined sequence of steps to generate an ordered succession of encoded untagged character data words,
- means for decoding said encoded untagged character data words in accordance with a second predetermined sequence of steps,
- means for transforming said decoded character data to said control signals, said control signal being adapted to reproduce said selected images on said CRT,
- wherein said first and second predetermined sequence of steps are related so that the ordering of said ordered succession of data words provides data word type and contour segment identification required by said second sequence of steps to generate stroke signals for said output CRT,
- wherein said first predetermined steps are adapted so that said second predetermined steps may be selectively modified to provide selective scaling of reproduction of said selected images on said CRT.
- 9. System according to claim 8 wherein said selective scaling is independent in two orthogonal directions.
- 10. System for generating data representative of the contour of an object against a background comprising:
- A. means for scanning said object and background along a plurality of substantially parallel scan lines and for identifying contour points on said object along said scan lines,
- B. means for grouping selected ones of said identified contour points so that the contour points of each group are representative of a contour element of said object, said contour element extending monotonically in the direction perpendicular to said scan lines,
- C. means for generating and storing vector data for each group representative of a piecewise linear representation of the associated contour element, each straight line portion of said piecewise linear representation being representative of the change (.DELTA.Y) in said portion in the direction of said scan lines and number of scan lines (.DELTA.X) for which said portion extends,
- D. means for encoding and storing said vector data for each group in a succession of data words, said succession including words representative of the starting position for said group, the common range of .DELTA.X values for two or more of said straight line portions and the number of said straight line portions for which that common .DELTA.X range is valid, the common range of .DELTA.Y values for two or more of said straight line portions and the number of said straight line portions for which that common .DELTA.Y range is valid, and the incremental variances of the .DELTA.X and .DELTA.Y values for each of said straight line portions within said common ranges.
- 11. System according to claim 10 further comprising means for compiling and storing said encoded vector data words in a predetermined order related to said .DELTA.X and .DELTA.Y values.
- 12. System for generating a succession of stroke signals from an ordered sequence of code word, said succession of stroke signals being representative of detectable characteristics of a corresponding succession of substantially parallel elongated strips of an image including an object against a background, said code words being representative of line segments connecting contour points along associated contour elements of said object, said contour elements being single valued in the direction perpendicular to said strips, and said code words including data representative of the start points of said segments, the ranges of positional changes between the start and end points of said segments, incremental variances of the positional changes beyond said ranges for said segments, and the member of successive segments associated with the same contour element having corresponding positional changes in the same range, comprising:
- A. means for successively identifying each strip of said image as a current strip,
- B. vector generating means operative for each current strip to generate and store vector data from said code words for each of said line segments overlapping said current strip, said vector data for each of said line segments being representative of:
- the ratio .DELTA.Y/.DELTA.X, said ratio corresponding to the change in position of said line segment in the direction of said strip from said current strip to the next strip,
- the starting point (SV) of said line segment in said current strip, and
- the number of subsequent strips (.DELTA.X) for which said change in position for each strip is unchanged,
- C. vector-to-stroke conversion means operative for each current strip to convert said stored vector data to one of said stroke signals.
- 13. A system according to claim 12
- wherein said conversion means includes means responsive to said vector data to identify the location of each line segment in said current strip and to generate said stroke signal in binary form, said stroke signal being a time function and having binary level transitions at points in time corresponding to said locations.
- 14. A system according to claim 12 wherein said vector generating means includes:
- means operative for said current strip for generating segment data words from said code words for each of said line segments overlapping said current strip, said segment data words for each of said segments being representative of:
- the end point for said line segment in accordance with said associated code words,
- a scaled length of said line segment, said scaled length corresponding to the length of said line segment from said current strip in the direction perpendicular to said current strip and scaled by a first scale factor, and corresponding to an integer and a fractional value (k),
- the range of the positional change in the direction perpendicular to said current strip between said start and end points of said segment, and the number of subsequent successive segments of said associated contour element having corresponding positional changes in the same range,
- the range of the positional change in the direction of said current strip between said start and end points of said segment, and the number of subsequent successive segments of said associated contour element having corresponding positional changes in the same range,
- means for identifying segment data words having no subsequent strips for which said change in position is unchanged,
- means for ordering said identified segment data words in order of increasing scaled length, and for ordering said identified segment data words having the same scaled length in order of increasing position along said current strip,
- means for generating and updating said vector data in the order of said identified segment data words whereby said vector data for each of said words is representative of:
- modified .DELTA.Y/.DELTA.X, said .DELTA.Y value being modified to equal the product of .DELTA.Y and said second scale factor, and said .DELTA.X value being modified to equal the product of .DELTA.X and said first scale factor,
- modified starting point, said modified starting point being equal to the product of SV and a second scale factor plus the product of (1-k) and said modified .DELTA.Y/.DELTA.X factor,
- the modified number of subsequent strips for which the change in position for each strip is unchanged, said modified number being equal to k plus the product of .DELTA.X and said first scale factor,
- storage means for storing said vector data in said order of said identified segment data words.
- 15. A system according to claim 14
- wherein said conversion means includes means responsive to said vector data to identify the location of each line segment in said current strip and to generate said stroke signal in binary form, said stroke signal being a time function and having binary level transitions at points in time corresponding to said locations.
- 16. Method for generating data representative of an image having an object within a background field, said object being characterized by a first detectable characteristic and said background being characterized by a second detectable characteristic, comprising the steps of:
- A. scanning said object and background field in a predetermined direction along a plurality of substantially parallel lines of scan, each of said lines of scan being displaced from the previous lines of scan in the direction perpendicular to the direction of scan,
- B. generating and storing contour point data representative of elemental regions along said scan lines characterized by a transition between said first and second detectable characteristic, said contour point data for each of said transition regions having a first (X) value representative of the position of that region as measured from the first line of scan in the direction perpendicular to the direction of scan, and a second (Y) value representative of the position of that region as measured from the start of a line of scan in the direction of scan,
- C. identifying each contour point value pair (X, Y) with a contour element of the contour of said object, each of said contour elements being monotonically increasing in the direction of perpendicular to said direction of scan,
- D. generating and storing a succession of vector data pairs for each of said contour elements, said vector data pairs having a first (.DELTA.X) value and a second (.DELTA.Y) value, said .DELTA.Y and .DELTA.X values being representative of the distance in said scan direction and perpendicular to said scan direction, respectively, between selected vector start and end points on an associated contour element, said vector start and end points being selected from said contour point data so that the distance between any point on the straight line segment connecting said start and end points and the closest point on said associated contour element between said vector start and end points is less than a predetermined value,
- E. encoding said vector data pairs to form an ordered sequence of code words representative of said object, said encoding step including:
- i. modifying said vector data pairs by:
- a. identifying the X value at which a new contour element starts along one of said scan lines, and
- b. modifying the vector data pair .DELTA.X, .DELTA.Y including said scan line for a previously identified contour element, said previously identified contour element being adjacent to said new contour element on the same scan line and preceding said new contour element when the new contour element is the last contour element identified in said same scan line, and
- following said new contour element otherwise, said vector data pair modifying step being omitted if the vector end point of the vector data pair of said previously identified contour element is in the same scan line,
- said vector data pair modifying step including the sub-steps of generating and storing a first modified vector data pair .DELTA.X, .DELTA.Y for said previously identified contour element, said first modified vector data pair having a vector end point representative of the X and Y values for said previously identified contour element in the new start scan line and the previously determined vector start point, and including generating and storing a second modified vector data pair .DELTA.X, .DELTA.Y for said previously identified contour element, said second modified vector data pair having a vector start point representative of the X and Y values for that new start scan line and the previously determined vector end point, said vector data pair modifying step being omitted if the vector end point of said previsously identified contour element is in said new start scan line, and
- c. replacing in said vector storage means said vector data pair for said previously identified contour element with said first and second modified vector data pairs,
- ii. generating and storing a contour element value CE representative of the number of identified contour elements,
- iii. storing, in association with each contour element, data representative of the initial X and Y values for that contour element detected during the scan of said object,
- iv. generating and storing a sequence of code words, including the sequential sub-steps of:
- a. generating and storing the first (bearing) code word in said sequence, said first code word being representative of the X value of the scan line in which the first contour element was detected during said scan,
- b. identifying said scan line in which said first contour element was detected as the current scan line,
- c. generating and storing a subsequence of code words for said current scan line including the sub-steps of:
- 1. generating and storing an SV word representative of the Y value of a first new start (NS) portion detected in said current scan line, said first NS portion being part of the first contour element detected for the first time along said current scan line, said SV generating and storing sub-step being deleted for a current scan line having no new start portions,
- 2. generating and storing an NS word and NS value, said NS word and NS value being representative of the number of NS portions of contour elements detected for the first time along the current scan line, said NS word and value generating and storing sub-step being deleted for a current scan line having no new start portions
- 3. successively processing NS portions and continuing (C) portions of contour elements detected in the current scan line, said NS portions being parts of contour elements detected for the first time along the current scan line, and said C portions being extensions of contour elements detected in the next previous scan line, wherein said NS and C portion processing is performed in the order of detection of the respective portions along the current scan line, each processing of an NS portion for a current scan line including the sub-steps of:
- generating and storing an LC/LR word representative of a predetermined number of most significant bits (LR) of the .DELTA.X value associted with the first vector data pair for the NS portion, and representative of the number of vector data pairs (LC) for which that .DELTA.X value has those most significant bits for the corresponding contour element,
- generating and storing a DC/DR word representative of a predetermined number of most significant bits (DR) of the .DELTA.Y value associated with the first vector data pair for said NS portion, and representative of the number of vector data pairs (DC) for which that .DELTA.Y value has those most significant bits for the corresponding contour element,
- generating and storing a D/L word representative of a predetermined number of least significant bits (L) of the .DELTA.X value associated with said first vector data pair, and representative of a predetermined number of least significant bits (D) of the .DELTA.Y value associated with said first vector data pair, whereby LR and L
- completely specify said .DELTA.X value and DR and D completely specify said .DELTA.Y value,
- generating and storing a first expiration value X.sub.exp representative of the number of scan lines between said current scan line and the scan line including the vector end point of the vector pair including said NS portion,
- generating and storing a second expiration value M.sub.exp representative of the number of vector data pairs for said contour element remaining before the LR portion of the LC/LR word for said NS portion changes from one vector data pair to another,
- generating and storing a third expiration value N.sub.exp representative of the number of vector data pairs from the data pair including said NS portion to the data pair in which the DR portion of the DC/DR word for said contour element including said NS portion changes from one vector data pair to another,
- generating and storing a fourth expiration value Z.sub.exp representative of the number of vector data pairs from the data pair including said NS portion to the data pair including the end of the contour element including said NS portion,
- decrementing said stored NS value,
- comparing said NS value with zero and
- when said NS value exceeds zero, completing said processing for said NS portion by generating and storing an SV word representative of the Y value of the next unprocessed NS portion detected along said current scan line, or
- when said NS value equals zero, completing said processing for said NS portion by generating an NL word, said NL word being representative of the number of scan lines between said current scan line and the next scan line including an NS portion, said NL word being representative of a reference (R) word when there are no other scan lines including an NS portion,
- wherein each processing of a C portion for a current scan line includes the substeps of:
- updating X.sub.exp to equal zero when said .DELTA.X value for the vector data pairs associated with the contour element including said C portion changes from one vector data pair to another in said current scan line, or otherwise to be representative of the number of the scan lines following said current scan line before said .DELTA.X value for the vector data pairs associated with the contour element including said C portion changes from one vector data pair to another,
- comparing said updated X.sub.exp with zero, and,
- when X.sub.exp exceeds zero, terminating said processing of said C portion for said current scan line, and
- when X.sub.exp equals zero, updating Z.sub.exp to be representative of the number of vector data pairs following the data pair including said C portion to the data pair including the end of the contour element including said C portion,
- comparing said updated Z.sub.exp with zero, and
- when said updated Z.sub.exp equals zero, completing said processing of said C portion by generating and storing a termination (T) word for said contour element and decrementing said CE value,
- when said Z.sub.exp exceeds zero, continuing by updating M.sub.exp to be representative of the number of vector data pairs remaining before the LR portion of the LC/LR word for the vector data pairs associated with the contour element includng C portion changes from one vector data pair to another, and comparing said updated M.sub.exp with zero, and
- when M.sub.exp equals zero, generating an LC/LR word representative of a predetermined number of most significant bits (LR) of the .DELTA.X value associated with the next vector data pair for the C portion, and representative of the number of vector data pairs (LC) and which that .DELTA.X value has those most significant bits, and updating M.sub.exp to equal said LC value, updating N.sub.exp to be representative of the number of vector data pairs remaining before the DR portion of the DC/DR word for the vector data pairs associated with the contour element including said C portion changes from one vector data pair to another, and comparing said updated N.sub.exp with zero, and
- when N.sub.exp equals zero, generating a DC/DR word representative of a predetermined number of most significant bits (DR) of the .DELTA.Y value associated with the next vector data pair for the C portion, and representative of the number of vector data pairs (DC) for which that .DELTA.Y value has those most significant bits, and updating N.sub.exp to equal said DC value,
- terminating said processing of said C portion for said current scan line, by
- generating a D/L word representative of a predetermined number of least significant bits (L and D) of the associated .DELTA.X and .DELTA.Y values, respectively, associated with the next vector data pair for the C portion, and updating X hd exp to be representative of the number of scan lines following said current scan line before said .DELTA.X value for the vector data pairs associated with the contour element including said C portion change from one vector data pair to another,
- 4. comparing said CE value with zero, and
- when said CE value exceeds zero, updating said scan line identifying means so that said current scan line is the next closest scan line following said previous current scan line, said next closest scan line being selected from the set of scan lines including:
- the scan lines identical to or following said previous current scan line and defined by the X.sub.exp values for processed NS and C portions, and returning to step 1 for said new current scan line, and
- when said CE value equals zero, terminating said generation and storage of said subsequence of code words.
- 17. The method according to claim 16 wherein said step of generating said succession of vector data pairs includes the step of selecting said vector start and end points so that the number of points on said contour element between said vector start and end points that are greater than a predetermined distance from the straight line segment connecting said vector start and end points is less than a value that is functionally dependent on the .DELTA.X value for said vector start and end points.
- 18. The method according to claim 16 wherein said object is an alphanumeric character and said scanning step includes scanning from top-to-bottom with respect to said character.
- 19. The method according to claim 16 wherein said object is an alphanumeric character and said scanning step includes scanning from left-to-right with respect to said character.
- 20. The method according to claim 16 wherein said object is an alphanumeric character and said scannig step includes scanning from bottom-to-top with respect to said character.
- 21. The method according to claim 16 wherein said object is an alphanumeric character and said scanning step includes scanning from right-to-left with respect to said character.
- 22. The method according to claim 16 wherein said scanning step includes scanning of said object in alternate directions along alternate lines of scan, and wherein said detecting step includes transforming said contour point data so that said X value is measured from a single edge of the array of scan lines.
- 23. Method for generating phototypesetting control signals for a cathode ray tube (CRT) having a constant stroke rate raster pattern, comprising the steps of:
- scanning selected images and generating character data representative thereof,
- encoding said character data in accordance with a first predetermined sequence of steps to generate an ordered succession of encoded untagged character data words,
- decoding said encoded untagged character data words in accordance with a second predetermined sequence of steps,
- transforming said decoded character data to said control signals, said control signal being adapted to reproduce said selected images on said CRT,
- wherein said first and second predetermined sequence of steps are related so that the ordering of said ordered succession of data words provides data word type and contour segment identification required by second sequence of steps to generate stroke signals for said output CRT,
- including the further step of selectively modifying said first predetermined steps so that said second predetermined steps provide selective scaling of reproduction of said selected images on said CRT.
- 24. Method according to claim 23 wherein said selective scaling is independent in two orthogonal directions.
- 25. Method for generating data representative of the contour of an object against a background comprising the steps of:
- A. scanning said object and background along a plurality of substantially parallel scan lines and for identifying contour points on said object along said scan lines,
- B. grouping selected ones of said identified contour points so that the contour points of each group are representative of a contour element of said object, said contour element extending monotonically in the direction perpendicular to said scan lines,
- C. generating and storing vector data for each group representative of a piecewise linear representation of the associated contour element, each straight line portion of said piecewise linear representation being representative of the change (.DELTA.Y) in said portion in the direction of said scan lines and number of scan lines (.DELTA.X) for which said portion extends,
- D. encoding and storing said vector data for each group in a succession of data words, said succession including words representative of the starting position for said group, the common range of .DELTA.X values for two or more of said straight line portions and the number of said straight line portions for which that common .DELTA.X range is valid, the common range of .DELTA.Y values for two or more of said straight line portions and the number of said straight line portions for which that common .DELTA.Y range is valid, and the incremental variances of the .DELTA.X and .DELTA.Y values for each said straight line portions within said common ranges.
- 26. Method according to claim 25 comprising the further step of compiling and storing said encoded vector data words in a predetermined order related to said .DELTA.X and .DELTA.Y values.
- 27. Method for generating a succession of stroke signals from an ordered sequence of code words, said succession of stroke signals being representative of detectable characteristics of a corresponding succession of substantially parallel elongated strips of an image including an object against a background, said code words being representative of line segments connecting contour points along associated contour elements of said object, said contour elements being single valued in the direction perpendicular to said strips, and said code words including data representative of the start points of said segments, the ranges of positional changes between the start and end points of said segments, incremental variances of the positional changes beyond said ranges for said segments, and the number of successive segments associated with the same contour element having corresponding positional changes in the same range, comprising the steps of:
- A. successively identifying each strip of said image as a current strip,
- B. for each current strip, generating and storing vector data from said code words for each of said line segments overlapping said current strip, said vector data for each of said line segments being representative of:
- the ratio .DELTA.Y/.DELTA.X, said ratio corresponding to the change in position of said line segment in the direction of said strip from said current strip to the next strip,
- the starting point (SV) of said line segment in said current strip, and
- the number of subsequent strips (.DELTA.X) for which said change in position for each strip is unchanged,
- C. for each current strip, converting said stored vector data to one of said stroke signals.
- 28. The method according to claim 27
- wherein said converting step includes identifying the location of each line segment in said current strip from said vector data and generating said stroke signal in binary form, said stroke signal being a time function and having binary level transitions at points in time corresponding to said locations.
- 29. The method according to claim 27 wherein said vector data generating step includes the sub-steps of:
- generating segment data words for said current strip from said code words for each of said line segments overlapping said current strip, said segment data words for each of said segments being representative of:
- the end point for said line segment in accordance with said associated code words,
- a scaled length of said line segment, said scaled length corresponding to the length of said line segment from said current strip in the direction perpendicular to said current strip and scaled by a first scale factor, and corresponding to an integer and a fractional value (k),
- the range of the positional change in the direction perpendicular to said current strip between said start and end points of said segment, and the number of subsequent successive segments of said associated contour element having corresponding positional changes in the same range,
- the range of the positional change in the direction of said current strip between said start and end points of said segment, and the number of subsequent successive segments of said associated contour element having corresponding positional changes in the same range,
- identifying segment data words having no subsequent strips for which said change in position is unchanged,
- ordering said identified segment data words in order of increasing scaled length, and ordering said identified segment data words having the same scales length in order of increasing position along said current strip,
- generating and updating said vector data in the order of said identified segment data words whereby said vector data for each of said words is representative of:
- modified .DELTA.Y/.DELTA.X, said .DELTA.Y value being modified to equal the product of .DELTA.Y and said second scale factor, and said .DELTA.X value being modified to equal the product of .DELTA.X and said first scale factor,
- modified starting point, said modified starting point being equal to the product of SV and a second scale factor plus the product of (1-k) and said modified .DELTA.Y/.DELTA.X factor,
- the modified number of subsequent strips for which the change in position for each strip is unchanged, said modified number being equal to k plus the product of .DELTA.X and said first scale factor,
- storing said vector data in said order of said identified segment data words.
- 30. The method according to claim 29
- wherein said converting step includes identifying the location of each line segment in said current strip from said vector data and generating said stroke signal in binary form, said stroke signal being a time function and having binary level transitions at points in time corresponding to said locations.
Parent Case Info
This is a continuation, of application Ser No. 977,638, filed Dec. 5, 1978 and now abandoned.
US Referenced Citations (12)
Continuations (1)
|
Number |
Date |
Country |
Parent |
966638 |
Dec 1978 |
|