Grayscale character generator and method
First Claim
1. A method of generating grayscale characters from bi-level master characters, the steps of the method comprising:
- providing a multiplicity of high resolution bi-level master characters, each said bi-level master character comprising a high resolution grid of bi-level pixel values;
said providing step providing a set of rectangles representing the rectangular decomposition of each said bi-level master character;
providing at least one filter array for converting said high resolution master characters into lower resolution grayscale characters, each filter array having a designated center and an array of elements with a resolution corresponding to the resolution of said master characters, the values of said filter elements representing the contributions of corresponding bi-level master pixel values to a grayscale pixel located at the center of said filter array;
specifying a sampling grid of grayscale pixels having a lower resolution than the resolution of said selected bi-level master character; and
generating each grayscale character by performing, for at least a multiplicity of said rectangles in said set of rectangles representing the decomposition of a corresponding one of said master characters, the steps of;
specifying the location of said rectangle with respect to said sampling grid of grayscale pixles;
specifying a filter array to be used;
determining the grayscale pixels in said sampling grid affected by said rectangle by determining the sampling grid pixels for which at least one nonzero element of said specified filter array will overlap said reactangle when said specified filter array is centered on said pixels;
for each said sampling grid grayscale pixel affected by said rectangle, performing the steps of;
assigning said grayscale pixel a predefined value corresponding to a black pixel if the nonzero elements of said specified filter array are all inside said rectangle when said filter array is centered at said grayscale pixel; and
otherwisedetermining the intersection of said specified filter array, centered at said grayscale pixel, and said rectangle, and adding to the value of said grayscale pixel a value equal to the sum of said specified filter array'"'"'s elements in said intersection.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and system for efficiently generating grayscale character fonts from bi-level master character fonts decomposed into rectangles. For each filter array to be used for converting master character fonts into grayscale characters there is generated at least one summed area filter array. Each element in each summed area filter array represents the sum of the filter array elements in a corresponding subarray of the filter array. A grayscale character is generated by performing, for each rectangle in the corresponding decomposed master character, the steps of:
specifying a filter array, and its corresponding summed area filter arrays;
determining the pixels in the grayscale character affected by the rectangle and a set of corresponding sampling points located inside and near the rectangle;
for each grayscale character pixel affected by the rectangle, performing the steps of:
assigning the pixel a predefined value corresponding to a black pixel if the corresponding sampling point is located inside the rectangle, and is offset from the perimeter of the rectangle by at least one half of the extent of the filter'"'"'s support; and otherwise
adding to the value of the grayscale pixel a value from the summed area filter array corresponding to the intersection of the selected filter array, centered at the sampling point corresponding to the grayscale pixel, and the rectangle.
97 Citations
14 Claims
-
1. A method of generating grayscale characters from bi-level master characters, the steps of the method comprising:
-
providing a multiplicity of high resolution bi-level master characters, each said bi-level master character comprising a high resolution grid of bi-level pixel values;
said providing step providing a set of rectangles representing the rectangular decomposition of each said bi-level master character;providing at least one filter array for converting said high resolution master characters into lower resolution grayscale characters, each filter array having a designated center and an array of elements with a resolution corresponding to the resolution of said master characters, the values of said filter elements representing the contributions of corresponding bi-level master pixel values to a grayscale pixel located at the center of said filter array; specifying a sampling grid of grayscale pixels having a lower resolution than the resolution of said selected bi-level master character; and generating each grayscale character by performing, for at least a multiplicity of said rectangles in said set of rectangles representing the decomposition of a corresponding one of said master characters, the steps of; specifying the location of said rectangle with respect to said sampling grid of grayscale pixles; specifying a filter array to be used; determining the grayscale pixels in said sampling grid affected by said rectangle by determining the sampling grid pixels for which at least one nonzero element of said specified filter array will overlap said reactangle when said specified filter array is centered on said pixels; for each said sampling grid grayscale pixel affected by said rectangle, performing the steps of; assigning said grayscale pixel a predefined value corresponding to a black pixel if the nonzero elements of said specified filter array are all inside said rectangle when said filter array is centered at said grayscale pixel; and
otherwisedetermining the intersection of said specified filter array, centered at said grayscale pixel, and said rectangle, and adding to the value of said grayscale pixel a value equal to the sum of said specified filter array'"'"'s elements in said intersection. - View Dependent Claims (2, 3, 4)
-
-
5. A method of generating grayscale characters from bi-level master characters, the steps of the method comprising:
-
providing a multiplicity of high resolution bi-level master characters, each said bi-level master character comprising a high resolution grid of bi-level pixel values;
said providing step providing a set of rectangles representing the rectangular decomposition of each said bi-level master character;providing at least one filter array for converting said high resolution master characters into lower resolution grayscale characters, each filter having a designated center and an array of elements with a resolution corresponding to the resolution of said master characters, the values of said filter elements representing the contributions of corresponding bi-level master pixel values to a grayscale lixel located at the center of said filter array;
each said filter array having a filter support corresponding to the extent of said filter array'"'"'s nonzero elements; andproviding, for each filter array, at least one summed area filter array, wherein each element in said summed area filter array represents the sum of the filter array elements in a corresponding rectangular subarray of said filter array; specifying a sampling grid of grayscale pixels having a lower resolution than the resolution of said selected bi-level master character; and generating each grayscale character by performing, for each said rectangle in said set of rectangles representing the decomposition of a corresponding one of said master characters, the steps of; specifying the location of said rectangle with respect to said sampling grid of grayscale pixels; specifying a filter array to be used; determining the grayscale pixels in said sampling grid affected by said rectangle by determining the sampling grid pixels for which at least one non-zero element of said specified filter array will overlap said rectangle when said specified filter array is centered on said pixels; for each said grayscale pixel in said sampling grid affected by said rectangle, performing the steps of; aasigning said grayscale pixel a predetermined value corresponding to a black pixel if the filter support for said specified filter array is totally inside said rectangle when said filter array is centered at said grayscale pixel; and
otherwisedetermining te intersection of a selected filter array, centered at said grayscale pixel, and said rectangle, and adding to the value of said grayscale pixel a value from an element of the summed area filter array corresponding to said specified filter, said element corresponding to the subset of said filter array in said determined intersection. - View Dependent Claims (6)
-
-
7. A method of generating grayscale characters from bi-level master characters, the steps of the method comprising:
-
providing a multiplicity of high resolution bi-level master characters, each said bi-level master character comprising a high resolution grid of bi-level pixel values;
said providing step providing a set of rectangles representing the rectangular decomposition of each said bi-level master character;providing at least one filter array for converting said high resolution master characters into lower resolution grayscale characters, each filter array having a designated center and an array of elements with a resolution corresponding to the resolution of said master characters, the values of said filter elements representing the contributions of corresponding bi-level master pixel values to a grayscale pixel located at the center of said filter array;
each said filter array having a filter support corresponding to the extent of said filter array'"'"'s nonzero elements;providing, for each filter array, a summed area filter array, wherein each element in said summed area filter array represents the sum of the filter array elements in a corresponding subarray of said filter array; specifying a sampling grid of grayscale pixels having a lower resolution than the resolution of said selected bi-level master characters; and generating a grayscale character by performing, for at least a multiplicity of said rectangles in said set of rectangles representing the decomposition of a corresponding one of said master characters, the steps of; specifying the location of said rectangle with respect to said sampling grid of grayscale pixels; specifying a filter array to be used with said rectangle; determining the grayscale pixels in said sampling grid affected by said rectangle by determining the sampling grid pixels for which said filter support of said specified filter array overlaps said rectangle when said specified filter array is centered on said pixels; for each said grayscale pixel in said sampling grid affected by said rectangle, determining the intersection of said rectangle and said specified filter array, centered at the grayscale pixel corresponding to said grayscale pixel, and said rectangle, and then adding to the value of said grayscale pixel the value of an element in said summed area filter array corresponding to said specified filter array, said element corresponding to the subset of said filter array in said determined intersection. - View Dependent Claims (8, 9, 10)
-
-
11. Apparatus for generating grayscale characters from bi-level master characters, comprising:
-
first storage means for storing master font data representing a multiplicity of high resolution bi-level master characters, each said bi-level master character comprising a high resolution grid of bi-level pixel values;
said master font data including a set of rectangles representing the rectangular decomposition of each bi-level master character to be used;second storage means for storing filter data, including at least one filter array for converting master characters into grayscale characters, each filter array having a designated center and an array of elements with a resolution corresponding to the resolution of said master characters, the values of said filter elements representing the contributions of corresponding bi-level master pixel values to a grayscale pixel located at the center of said filter;
each said filter array having a filter support corresponding to the extent of said filter array'"'"'s nonzero elements;
said filter array being stored in the form of a summed area filter array, wherein each element in said summed area filter array represents the sum of the filter array elements in a corresponding rectangular subarray of said filter array; anddata processing means for generating a specified grayscale character, including software means for processing at least a multiplicity of said rectangles in said set of rectangles representing the decomposition of a corresponding one of said master characters, said software means including; means for specifying a filter array to be used with said rectangle; means for specifying a sampling grid of grayscale pixels having a lower resolution than the resolution of said selected bi-level master character; means for specifying the location of said rectangle with respect to said sampling grid of grayscale pixels; means for determining the grayscale pixels in said sampling grid affected by said rectangle by determining the grayscale pixels for which said filter support of said specified filter array overlaps said rectangle when said specified filter array is centered on said grayscale pixels; and grayscale value assigning means for assigning values to each said grayscale pixel affected by said rectangle, including; intersection determining means for determining the intersection of said rectangle and said specified filter array, centered at said grayscale pixel; and adding means for adding to the value of said grayscale pixel the value of an element in said summed area filter array corresponding to said specified filter array, said element corresponding to the subset of said filter array in said determined intersection. - View Dependent Claims (12, 13, 14)
-
Specification