PRE-SUBPIXEL RENDERED IMAGE PROCESSING IN DISPLAY SYSTEMS
Display systems and image processing methods process pre-subpixel rendered images embedded in input color image data. The display systems include a pre-subpixel rendered (P-SPR) image detector that detects locations of a marking code that marks the portion of the input data that has been pre-subpixel rendered and which is ready for direct display. Several display system embodiments comprise first and second image data paths; the input data that requires sub-pixel rendering proceeds along the first path while the P-SPR image data proceeds along the second path. Another display system embodiment processes the combined input and P-SPR data along a single data path. Techniques for marking and detecting P-SPR image data using two distinct marking codes are presented in the context of the sub-pixel layout of the display. Techniques for using P-SPR data to display high-quality graphical symbols (e.g., font glyphs) are suitable for small, low-cost devices.
Latest Samsung Electronics Patents:
- Multi-device integration with hearable for managing hearing disorders
- Display device
- Electronic device for performing conditional handover and method of operating the same
- Display device and method of manufacturing display device
- Device and method for supporting federated network slicing amongst PLMN operators in wireless communication system
This application is a divisional application of U.S. patent application Ser. No. 11/910,649 filed on Oct. 4, 2007, which claims the benefit to U.S. Provisional Application 60/668,578 entitled IMPROVED METHODS AND SYSTEMS FOR BY-PASSING SUBPIXEL RENDERING IN DISPLAY SYSTEMS, filed on Apr. 4, 2005, and U.S. Provisional Application 60/743,940 entitled PRE-SUBPIXEL RENDERED IMAGE PROCESSING IN DISPLAY SYSTEMS, filed on Mar. 29, 2006 are hereby incorporated by reference herein in its entirety.
The following co-owned applications are related to the present application and are hereby incorporated by reference herein: (1) U.S. Patent Application Ser. No. 60/668,510 entitled “EFFICIENT MEMORY STRUCTURE FOR DISPLAY SYSTEM WITH NOVEL SUBPIXEL STRUCTURES”; (2) U.S. Patent Application Ser. No. 60/668,511 entitled “SYSTEMS AND METHODS FOR IMPLEMENTING LOW-COST GAMUT MAPPING ALGORITHMS”; and (3) U.S. Patent Application Ser. No. 60/668,512 entitled “SYSTEMS AND METHODS FOR IMPLEMENTING IMPROVED GAMUT MAPPING ALGORITHMS.”
TECHNICAL FIELDThe present application relates to various embodiments of display systems and methods for processing images having embedded pre-subpixel rendered images therein.
BACKGROUNDIn commonly owned United States patents and patent applications including: (1) U.S. Pat. No. 6,903,754 (“the '754 patent”) entitled “ARRANGEMENT OF COLOR PIXELS FOR FULL COLOR IMAGING DEVICES WITH SIMPLIFIED ADDRESSING;” (2) United States Patent Publication No. 2003/0128225 (“the '225 application”) having application Ser. No. 10/278,353 and entitled “IMPROVEMENTS TO COLOR FLAT PANEL DISPLAY SUB-PIXEL ARRANGEMENTS AND LAYOUTS FOR SUB-PIXEL RENDERING WITH INCREASED MODULATION TRANSFER FUNCTION RESPONSE,” filed Oct. 22, 2002; (3) United States Patent Publication No. 2003/0128179 (“the '179 application”) having application Ser. No. 10/278,352 and entitled “IMPROVEMENTS TO COLOR FLAT PANEL DISPLAY SUB-PIXEL ARRANGEMENTS AND LAYOUTS FOR SUB-PIXEL RENDERING WITH SPLIT BLUE SUB-PIXELS,” filed Oct. 22, 2002; (4) United States Patent Publication No. 2004/0051724 (“the '724 application”) having application Ser. No. 10/243,094 and entitled “IMPROVED FOUR COLOR ARRANGEMENTS AND EMITTERS FOR SUB-PIXEL RENDERING,” filed Sep. 13, 2002; (5) United States Patent Publication No. 2003/0117423 (“the '423 application”) having application Ser. No. 10/278,328 and entitled “IMPROVEMENTS TO COLOR FLAT PANEL DISPLAY SUB-PIXEL ARRANGEMENTS AND LAYOUTS WITH REDUCED BLUE LUMINANCE WELL VISIBILITY,” filed Oct. 22, 2002; (6) United States Patent Publication No. 2003/0090581 (“the '581 application”) having application Ser. No. 10/278,393 and entitled “COLOR DISPLAY HAVING HORIZONTAL SUB-PIXEL ARRANGEMENTS AND LAYOUTS,” filed Oct. 22, 2002; and (7) United States Patent Publication No. 2004/0080479 (“the '479 application”) having application Ser. No. 10/347,001 and entitled “IMPROVED SUB-PIXEL ARRANGEMENTS FOR STRIPED DISPLAYS AND METHODS AND SYSTEMS FOR SUB-PIXEL RENDERING SAME,” filed Jan. 16, 2003, novel sub-pixel arrangements are disclosed for improving the cost/performance curves for image display devices. Each of the aforementioned '225, '179, '724, '423, '581, and '479 published applications and U.S. Pat. No. 6,903,754 are hereby incorporated by reference herein in its entirety.
For certain sub-pixel repeating groups having an even number of sub-pixels in a horizontal direction, systems and techniques to affect improvements, e.g. proper dot inversion schemes and other improvements, are disclosed in the following commonly owned United States patent documents: (1) United States Patent Publication No. 2004/0246280 (“the '280 application”) having application Ser. No. 10/456,839 and entitled “IMAGE DEGRADATION CORRECTION IN NOVEL LIQUID CRYSTAL DISPLAYS”; (2) United States Patent Publication No. 2004/0246213 (“the '213 application”) (U.S. patent application Ser. No. 10/455,925) entitled “DISPLAY PANEL HAVING CROSSOVER CONNECTIONS EFFECTING DOT INVERSION”; (3) United States Patent Publication No. 2004/0246381 (“the '381 application”) having application Ser. No. 10/455,931 and entitled “SYSTEM AND METHOD OF PERFORMING DOT INVERSION WITH STANDARD DRIVERS AND BACKPLANE ON NOVEL DISPLAY PANEL LAYOUTS”; (4) United States Patent Publication No. 2004/0246278 (“the '278 application”) having application Ser. No. 10/455,927 and entitled “SYSTEM AND METHOD FOR COMPENSATING FOR VISUAL EFFECTS UPON PANELS HAVING FIXED PATTERN NOISE WITH REDUCED QUANTIZATION ERROR”; (5) United States Patent Publication No. 2004/0246279 (“the '279 application”) having application Ser. No. 10/456,806 entitled “DOT INVERSION ON NOVEL DISPLAY PANEL LAYOUTS WITH EXTRA DRIVERS”; (6) United States Patent Publication No. 2004/0246404 (“the '404 application”) having application Ser. No. 10/456,838 and entitled “LIQUID CRYSTAL DISPLAY BACKPLANE LAYOUTS AND ADDRESSING FOR NON-STANDARD SUBPIXEL ARRANGEMENTS”; (7) United States Patent Publication No. 2005/0083277 (“the '277 application”) having application Ser. No. 10/696,236 entitled “IMAGE DEGRADATION CORRECTION IN NOVEL LIQUID CRYSTAL DISPLAYS WITH SPLIT BLUE SUBPIXELS”, filed Oct. 28, 2003; and (8) United States Patent Publication No. 2005/0212741 (“the '741 application”) having application Ser. No. 10/807,604 and entitled “IMPROVED TRANSISTOR BACKPLANES FOR LIQUID CRYSTAL DISPLAYS COMPRISING DIFFERENT SIZED SUBPIXELS”, filed Mar. 23, 2004. Each of the aforementioned '280, '213, '381, '278, '404, '277 and '741 published applications are hereby incorporated by reference herein in its entirety.
These improvements are particularly pronounced when coupled with sub-pixel rendering (SPR) systems and methods further disclosed in the above-referenced U.S. Patent documents and in commonly owned United States patents and patent applications: (1) United States Patent Publication No. 2003/0034992 (“the '992 application”) having application Ser. No. 10/051,612 and entitled “CONVERSION OF A SUB-PIXEL FORMAT DATA TO ANOTHER SUB-PIXEL DATA FORMAT,” filed Jan. 16, 2002; (2) United States Patent Publication No. 2003/0103058 (“the '058 application”) having application Ser. No. 10/150,355 entitled “METHODS AND SYSTEMS FOR SUB-PIXEL RENDERING WITH GAMMA ADJUSTMENT,” filed May 17, 2002; (3) United States Patent Publication No. 2003/0085906 (“the '906 application”) having application Ser. No. 10/215,843 and entitled “METHODS AND SYSTEMS FOR SUB-PIXEL RENDERING WITH ADAPTIVE FILTERING.” filed Aug. 8, 2002; (4) United States Publication No. 2004/0196302 (“the '302 application”) having application Ser. No. 10/379,767 and entitled “SYSTEMS AND METHODS FOR TEMPORAL SUB-PIXEL RENDERING OF IMAGE DATA” filed Mar. 4, 2003; (5) United States Patent Publication No. 2004/0174380 (“the '380 application”) having application Ser. No. 10/379,765 and entitled “SYSTEMS AND METHODS FOR MOTION ADAPTIVE FILTERING,” filed Mar. 4, 2003; (6) U.S. Pat. No. 6,917,368 (“the '368 patent”) entitled “SUB-PIXEL RENDERING SYSTEM AND METHOD FOR IMPROVED DISPLAY VIEWING ANGLES”; and (7) United States Patent Publication No. 2004/0196297 (“the '297 application”) having application Ser. No. 10/409,413 and entitled “IMAGE DATA SET WITH EMBEDDED PRE-SUBPIXEL RENDERED IMAGE” filed Apr. 7, 2003. Each of the aforementioned '992, '058, '906, '302, 380 and '297 applications and the '368 patent are hereby incorporated by reference herein in its entirety.
Improvements in gamut conversion and mapping are disclosed in commonly owned United States patents and co-pending United States patent applications: (1) U.S. Pat. No. 6,980,219 (“the '219 patent”) entitled “HUE ANGLE CALCULATION SYSTEM AND METHODS”; (2) United States Patent Publication No. 2005/0083341 (“the '341 application”) having application Ser. No. 10/691,377 and entitled “METHOD AND APPARATUS FOR CONVERTING FROM SOURCE COLOR SPACE TO RGBW TARGET COLOR SPACE”, filed Oct. 21, 2003; (3) United States Patent Publication No. 2005/0083352 (“the '352 application”) having application Ser. No. 10/691,396 and entitled “METHOD AND APPARATUS FOR CONVERTING FROM A SOURCE COLOR SPACE TO A TARGET COLOR SPACE”, filed Oct. 21, 2003; and (4) United States Patent Publication No. 2005/0083344 (“the '344 application”) having application Ser. No. 10/690,716 and entitled “GAMUT CONVERSION SYSTEM AND METHODS” filed Oct. 21, 2003. Each of the aforementioned '341, '352 and '344 applications and the '219 patent is hereby incorporated by reference herein in its entirety.
Additional advantages have been described in (1) United States Patent Publication No. 2005/0099540 (“the '540 application”) having application Ser. No. 10/696,235 and entitled “DISPLAY SYSTEM HAVING IMPROVED MULTIPLE MODES FOR DISPLAYING IMAGE DATA FROM MULTIPLE INPUT SOURCE FORMATS”, filed Oct. 28, 2003; and in (2) United States Patent Publication No. 2005/0088385 (“the '385 application”) having application Ser. No. 10/696,026 and entitled “SYSTEM AND METHOD FOR PERFORMING IMAGE RECONSTRUCTION AND SUBPIXEL RENDERING TO EFFECT SCALING FOR MULTI-MODE DISPLAY” filed Oct. 28, 2003, each of which is hereby incorporated herein by reference in its entirety.
Additionally, each of these co-owned and co-pending applications is herein incorporated by reference in its entirety: (1) United States Patent Publication No. 2005/0225548 (“the '548 application”) having application Ser. No. 10/821,387 and entitled “SYSTEM AND METHOD FOR IMPROVING SUB-PIXEL RENDERING OF IMAGE DATA IN NON-STRIPED DISPLAY SYSTEMS”; (2) United States Patent Publication No. 2005/0225561 (“the '561 application”) having application Ser. No. 10/821,386 and entitled “SYSTEMS AND METHODS FOR SELECTING A WHITE POINT FOR IMAGE DISPLAYS”; (3) United States Patent Publication No. 2005/0225574 (“the '574 application”) and United States Patent Publication No. 2005/0225575 (“the '575 application”) having application Ser. Nos. 10/821,353 and 10/961,506 respectively, and both entitled “NOVEL SUBPIXEL LAYOUTS AND ARRANGEMENTS FOR HIGH BRIGHTNESS DISPLAYS”; (4) United States Patent Publication No. 2005/0225562 (“the '562 application”) having application Ser. No. 10/821,306 and entitled “SYSTEMS AND METHODS FOR IMPROVED GAMUT MAPPING FROM ONE IMAGE DATA SET TO ANOTHER”; (5) United States Patent Publication No. 2005/0225563 (“the '563 application”) having application Ser. No. 10/821,388 and entitled “IMPROVED SUBPIXEL RENDERING FILTERS FOR HIGH BRIGHTNESS SUBPIXEL LAYOUTS”; and (6) United States Patent Publication No. 2005/0276502 (“the '502 application”) having application Ser. No. 10/866,447 and entitled “INCREASING GAMMA ACCURACY IN QUANTIZED DISPLAY SYSTEMS.”
DISCLOSURE OF THE INVENTION Technical EffectThe various embodiments of the display systems illustrated and described below have the technical effect of distinguishing pre-subpixel rendered image data from image data that should be sub-pixel rendered prior to display when both kinds of image data are present in the same input image data stream. The various embodiments of the image processing methods for processing pre-subpixel rendered image data illustrated and described below have the technical effect of displaying a high quality pre-subpixel rendered image of a graphical symbol in a foreground color over a background color.
A display device having a display panel configured with a sub-pixel layout comprises input circuitry for receiving input image data including an image data subset indicating a plurality of pre-subpixel rendered image data values in conformance with, and ready for display on, the sub-pixel layout of the display panel. The display device further comprises a pre-subpixel rendering detection component for detecting an input image location of each of the plurality of pre-sub pixel rendered image data values, and a sub-pixel rendering component for performing a sub-pixel rendering operation on the input image data to produce sub-pixel rendered image data values in conformance with, and ready for display on, the sub-pixel layout of the display panel. The display device further comprises an output data selection component for selecting an output color data value for each output location on the display panel. The output data selection component selects one of the sub-pixel rendered image data value and the pre-subpixel rendered image data value according to the input image locations detected by the pre-subpixel rendering detection component.
An image processing method is disclosed for rendering characters in a font onto a display device having a sub-pixel layout and capable of detecting pre-subpixel rendered image data. The method comprises performing a sub-pixel rendering operation on image data values representing each character in the font to produce pre-subpixel rendered glyph image data indicating a glyph ready for display on the display device, and marking the pre-subpixel rendered glyph image data with a marking code to produce marked pre-subpixel rendered glyph image data. The marking code distinguishes the pre-subpixel rendered glyph image data from image data that has not been sub-pixel rendered. The method further comprises storing the marked pre-subpixel rendered graphical symbol image data in a memory device, and, in response to a signal requesting display of a character in the font, outputting the marked pre-subpixel rendered glyph image data indicating the character to the display device.
An image processing method for displaying a pre-subpixel rendered glyph stored in a memory device as a density map of pixels each indicating density values specifying a mixing percentage of each of a foreground color and a background color; the method comprising: receiving an input signal to display the pre-subpixel rendered glyph; retrieving the pre-subpixel rendered glyph from the memory device; for each pixel of the pre-subpixel rendered glyph, combining the mixing percentages of an input foreground color value and an input background color value according to the density values stored in the density map to produce color image data values indicating a blended color glyph; correcting the color image data values indicating the blended color glyph for output gamma; and outputting the gamma-corrected blended color glyph directly to a display device without further sub-pixel rendering
The organization and methods of operation of the image processing systems and techniques are best understood from the following description of several illustrated embodiments when read in connection with the accompanying drawings wherein the same reference numbers are used throughout the drawings to refer to the same or like parts.
With continued reference to
The result of the sub-pixel rendering operation performed by SPR unit 70 is image data set 72 which is delivered by data path 85 to electronic display 10 for producing the resulting image thereon. For display system 150 where SPR unit 70 is included with electronic display 10, data path 85 is included in the electronics in display 10. Other implementations of display system 150 may provide for other configurations of data path 85. For example, data path 85 may include a digital video interface (DVI) transmitter/receiver pair between a computer and a flat panel display monitor, and would also include electronic circuitry in the flat panel display. Still other configurations of data path 85 include an analog transmitter/receiver pair between a computer and a flat panel display monitor, which would also include electronics in the flat panel display. Analog systems are commonly used to drive analog Cathode Ray Tube (CRT) monitors. Recently, Liquid Crystal Display monitors have used analog-to-digital (D/A) converters to allow it to receive and display analog signals.
With continued reference to
United States Patent Application Publication. 2004/0196297 A1, entitled “IMAGE DATA SET WITH EMBEDDED PRE-SUBPIXEL RENDERED IMAGE (hereafter the '297 application) and published on Oct. 7, 2004, discloses various image processing techniques for producing and displaying a pre-subpixel rendered image. The pre-subpixel rendered image can be transmitted directly to a display, such as display 10 of
The '297 application further discloses various techniques for embedding the pre-subpixel rendered image into, and for extracting the pre-subpixel rendered image from, an image data set. So, for example, in the block diagram of
A second data set included in pre-subpixel rendered image 1320 comprises data values “65,” “27” and “207” that collectively represent a color key used for marking the extent of the R, G and B data values to identify which data values in image data set 1300 are part of a pre-subpixel rendered image. As discussed in the '297 application, the color key may be selected to avoid or minimize any distortion of the output image if the output image were to be rendered on a display that did not include a capability for detecting the portion of input image data set 1300 that comprises pre-subpixel rendered image 1320. The discussion in the '297 application notes that there may be other techniques for marking the extent of the R, G and B data values to identify them as being part of a pre-subpixel rendered image, and identifies these techniques collectively as being analogous to image processing techniques known in the art as “watermarking.”
Generally, then, pre-subpixel rendered image 1320 and/or the remaining portion of image data set 1300 that forms the conventional image data set may have embedded therein a marking code, also referred to as a “watermark,” that a sub-pixel rendering system and/or algorithm is capable of recognizing or decoding. When the sub-pixel rendering system detects the presence of the watermark, it knows that a subset of the image is a pre-subpixel rendered image that may be extracted and displayed with no further processing. The watermark thus described may take advantage of techniques in the field of steganography for hiding data in an image data set such that the data modification is perceptually indistinguishable to a human viewer when the image data set is rendered, but the hidden data is capable of being decoded by a machine.
The remaining data in image data set 1300 is comprised of color values expressed as conventional R, G, B data triplets (shown in the figure without any underlining to distinguish them from the pre-subpixel rendered data) that may be representative of input image data set 69 of
Input circuitry provides RGB input data or other input data formats to system 100. The RGB input data may then be input to Input Gamma operation 102. Output from operation 102 then proceeds to Gamut Mapping operation 104 (labeled as GMA in
With continued reference to
Note that, when an image data set such as image data set 1300 of
In addition, in one of the embodiments disclosed in the '297 application for detecting a pre-subpixel rendered image embedded in an image data set, it is noted that pixels that contain pre-subpixel rendered image data marked with a color key that occur at the boundary between the conventional RGB data and the pre-subpixel rendered image data may generate invalid color values for an SPR operation processing the conventional RGB color data for sub-pixel rendering. The '297 application discloses a technique for exchanging, or swapping, certain color values in alternating (for example, even/odd) pairs of marked input pixels. In certain implementations, such “swapping” may make the SPR hardware easier to design by removing any need for special detection or recovery for pixels just outside the marked pre-subpixel rendered image area.
With continued reference to
The'297 application also discusses examples of types of images that may be suitable for pre-subpixel rendering. One such example relates to the imaging of characters in various fonts. Pre-subpixel rendering techniques may be used to produce an image data set including a high resolution representation of the “idealized” or outline version of a character in a particular font. These pre-rendered image data sets representing characters may be stored and embedded in an input image data set for use as needed. The reader is referred to the '297 application for further information on this process.
The remainder of this detailed description now turns to discussions of three general areas related to pre-subpixel rendering. The first of these concerns implementations of display systems that process pre-subpixel rendered image data embedded in an input image data set. The second discussion concerns embodiments of appropriate color keys for marking pre-subpixel rendered image data in various situations, and additional methods for detecting a pre-subpixel rendered portion of an image data set. The third discussion focuses on the handling of pre-rendered character glyphs. Designing a separate data path (e.g., a bypass mechanism) for handling pre-subpixel rendered image data of display system 100 may take into account how the input RGB data is handled, such as, for example, the order in which the RGB data is processed, and delay times that may be introduced by SPR operation 108. For example, RGB data values that are to be sub-pixel rendered may have to go through a series of line buffers and may not come out until several line-times later. In some systems, if pixels marked as having been pre-subpixel rendered are to bypass SPR operation 108, they may have to be identified and stored for this time period in order to reach a final display operation with the input data that is sub-pixel rendered in SPR operation 108.
Processing a Pre-Subpixel Rendered Image for DisplaySystem 200 in
In
P-SPR detection operation 202S may be designed to detect a specific color key as marking the extent and locations of the P-SPR data. P-SPR detection operation 202S may also be designed to accept color key data values from associated display registers to provide flexibility in accepting P-SPR data from different sources. For example, as discussed more fully below, color key data values may be optimally selected for marking P-SPR data on the basis of the bit depth representation of the color data, as shown in, and discussed with respect to, Table 1 below, in which case data values from Table 1 may be loaded in to associated display registers for use by P-SPR detection operation 202S. An example of the operation of P-SPR detection operation 202S is described in more detail below.
With continued reference to
The swapped data that is the output of operation 204, along with P-SPR enable signal 209, are input to selection operation 208, denoted as “MUX” 208 in
The embodiment illustrated in
A feature of the display system illustrated in
Display system 300 of
With continued reference to
With continued reference to
As noted above with respect to the embodiment illustrated in
The data paths of display system 400 shown in
Luminance value 408 of each output color from MUX1 302 proceeds along separate data path 403 so that one of the bits of luminance data 408, illustrated as data bit 406, or bit 0, in
With continued reference to
The discussion now turns to implementations of display systems that handle the processing of conventional RGB image data with embedded pre-subpixel rendered image data along the standard SPR data path. In one such implementation, the processing of pre-subpixel rendered image data is handled by a modification to sub-pixel rendering (SPR) operation 108 as described below. In these implementations, color data values have not been swapped with color key data values in the embedded sub-pixel rendered image data, and so the combined RGB and embedded sub-pixel rendered image data take the form of input image data as shown, for example, by image data 600 of
In display system 1000, all input color values, including P-SPR data values, are converted through input gamma operation 102. In an alternate embodiment (not shown) of display system 1000, the P-SPR data values are gated around the input and output gamma modules, and no gamma operation is applied to the P-SPR data values. This allows the designer of the P-SPR data to select the gamma of the image. Processing P-SPR data through input gamma module 102 and output gamma module 110, as described in display system 1000, allows the designer of the display to correct P-SPR data for the particular gamma of the display itself. Display system 1000 may be configured to include a switch to enable either embodiment.
With continued reference to
The RGBW and L data stored in line buffers 304 is then ready for sub-pixel rendering processing. As noted above, in display system 1000, both pre-subpixel rendered data and input RGB data that is to be sub-pixel rendered prior to output proceed along a single data path. Thus, the SPR operation must be able to accommodate P-SPR data in a manner that (1) does not alter the values of the P-SPR data and (2) ensures that only valid color values are input to the filtering operations performed during the SPR operation.
To understand the operation of SPR module 1020 of
Note that in an alternative implementation, a small random access memory and pointers indicating the next locations to store or fetch values are used in place of line buffers 304 and the set 1110 of nine latches shown in
With continued reference to
The value selected for output in Final MUX 1240 is influenced by whether the edge pixel stored in latch 1110 is included in the P-SPR image data in the following manner. Specific processing, in the form of selection operation 1210 is added along the data path between latch 1111 labeled “E” and its multiplier 1160 to test whether each edge pixel is part of a P-SPR area of the image, and, if so, to remove the data value from the SPR processing path (the multiplier and summation unit path.) The Rw value stored in center latch 1112 is input, along data line 1214, to selection operation 1210 along with the edge pixel Rw value stored in latch 1111.
Selection operation 1210 selects between the center Rw value or the edge Rw value according to the value of P-SPR flag 205 for the edge pixel Rw value. When P-SPR flag 205 for the edge pixel Rw value is “OFF” (e.g., has a value of “0”), the edge pixel Rw value is not part of a P-SPR portion of the image and should proceed to multiplier 1160 and to summation unit 1170. However, when P-SPR flag 205 is “ON” (e.g., has a value of “1”), the edge pixel Rw value is part of a P-SPR portion of the image and should not proceed to multiplier 1160 and summation unit 1170 as part of the SPR operation. In this case, selection operation 1210 selects the center Rw value. This prevents the P-SPR value of the edge pixel from generating an incorrect filter result for the center Rw value in the case when the center Rw value is not part of the P-SPR image data and should be sub-pixel rendered. When both the center pixel and an edge pixel are determined to be P-SPR data, an invalid center value is latched into the edge pixel's multiplier producing an incorrect filter result, but final selection operation 1240 will cause this incorrect filter result to be ignored, and the correct output will still be produced. It can be seen, then, the embodiment of SPR operation 1020 illustrated in
While the above illustrated embodiments have been described in connection with particular functional units, operations or hardware, the description is not intended to limit a particular implementation, and these functional units and operations can be implemented using any combination of hardware and/or software, including components or modules such as one or more memory devices or circuitry. For example, a programmable gate array or like circuitry can be configured to implement such functional blocks. In other examples, a microprocessor operating a program in memory can also implement such functional blocks.
Pre-Subpixel Rendered Data Marking Guidelines and EmbodimentsAs noted above, pre-subpixel rendered image data may be marked with a digital signal or code that a sub-pixel rendering system and/or algorithm is capable of recognizing or decoding. Typically the code is added to, or embedded in, the P-SPR image data in a repeating pattern. Several factors may influence the selection of the particular code. As discussed in the '297 application, the marking code used may represent a color value, referred to herein as a color key. While a suitable color key could be any predetermined color value, some practical considerations may influence the color key selection. The color key may be a statistically unlikely color that is selected to avoid or minimize any distortion of the output image if the output image were to be rendered on a display that did not include a capability for detecting the pre-subpixel rendered image data. Color key values may be selected so that their binary values are the same for the most significant bits, in order to allow for the color key to undergo simple bit truncation while still being able to be detected. For example, the color key illustrated in several of the figures (red=65, green=27, blue=207) is a statistically unlikely color that may be particularly suited for use in 24 bit color systems (8 bits per color). This color may also be described as a “blue-screen” because color value (65, 27, 207) indicates a blue color that resembles one of the colors used in video and film processing.
It is also possible to use multiple color key values, in particular for red and blue, to mark P-SPR image data. A second (or multiple) set of colors may increase the complexity of the color key pattern, thus increasing its robustness and decreasing the likelihood of false positive detection. These second numbers are similar in color to the first color key values so that they produce an unlikely color, but are valued as being several steps away in the lowest bit depth, so that dither patterns may not cause false positive detection. Some exemplary color key values that are suitable to use to mark P-SPR image data are listed in Table 1 below. It is to be understood, however, that the color keys used in the figures and provided in Table 1 are for illustrative purposes only, and many other such color keys and marking codes may be used to mark P-SPR data.
The color key or other marking code is overlaid, or interwoven with, the pre-subpixel rendered data. In general, the mapping of the marking code within the pre-subpixel rendered data values may be done according to any suitable marking pattern, and a P-SPR detection operation 202 would be appropriately programmed to decode the pre-subpixel rendered color data values from the marking code using the established marking pattern. However, the design and implementation of a general-use P-SPR detection operation 202 will benefit from principles or rules established to guide the process used to mark the P-SPR data with the digital signal or code. Examples of some principles for marking P-SPR data include the following. In the discussion hereafter, image input values are designated as starting in the upper left of an image at pixel (0, 0) such that a first row and column of pixels is each designated as the “zero” row and column and therefore an even row and column, and the second row and column is each designated as row and column one (1), and therefore an odd row and column.
-
- Marking values that appear in the zero row should appear offset by one pixel in a second (e.g., an odd) row of P-SPR pixels, establishing what is referred to below as a “phase offset.” In
FIG. 6 , note by way of example that the placement of marking value “207” designated by reference numeral 616 in odd row 640 is offset one pixel from the placement of marking value “207” designated by reference numeral 604 in even row 630. A similar offset placement pattern can be seen in any one of the marked P-SPR image data sets illustrated inFIGS. 13B , 14B and 15B, and in the marking patterns illustrated inFIGS. 16B , 17A and 17B, 18B, 19B and 20B that use two marking codes. - The marking values should appear in an n-pixel wide, m-pixel tall, repeated pattern, where n is typically an even number of input pixels and m is typically an even number of rows. For example,
FIGS. 13B , 14B and 15B illustrate a 2-pixel wide repeating pattern of color key values and P-SPR data, whileFIGS. 16B , 17A and 17B, 18B, 19B and 20B illustrate a 4-pixel wide repeating pattern of color key values and P-SPR data. In the above mentioned figures in is two, but other implementations are possible. - The marking values should only appear in locations where they would be if the pixel-wide even/odd pattern were tiled across the entire display starting from pixel (0, 0) in the upper left of the image. The n-pixel wide pattern and the phase offset between even and odd lines helps to prevent false positive detections.
- A P-SPR portion of the image should start on an even input pixel, should include at least four pixels, and should be an even number of pixels wide. Figures herein that include P-SPR image data portions show the P-SPR image data starting on an even pixel and having an even number of pixels to reflect these guidelines.
- Marked P-SPR image data areas have no vertical restrictions: they can start on any line and be any number of lines tall. For purposes of P-SPR operation 202, a P-SPR image data area may be as small as four input pixels on one line.
- It is recommended that P-SPR image areas start and end in blank areas of the screen, for example between lines of text and between words. It is also reasonable to end a watermark area on a sharp discontinuity such as the edge of a picture as long as it meets the pixel start and count guidelines.
- Marking values that appear in the zero row should appear offset by one pixel in a second (e.g., an odd) row of P-SPR pixels, establishing what is referred to below as a “phase offset.” In
The placement of the color key marking code values within the P-SPR color data values may be influenced by the particular sub-pixel layout of the display. Several embodiments of sub-pixel layouts and examples of suitable marking patterns for marking P-SPR data are illustrated in
With continued reference to
In addition to swapping the R and G values with their respective color key values, it may also be useful under certain conditions to swap the B values with their color key value. For example, it may be useful for purposes of sub-pixel rendering to simply swap all of the values between even and odd columns of data. Or it may be useful to swap some of the color values with their respective color key values for purposes of improving the display of the image on displays that do not process pre-subpixel rendered image data.
There are several variations of the sub-pixel layout of
As noted above, the function of P-SPR detection operation 202 is to examine input image color data values to detect the color key, or other code, used to mark the portion of input data 201 that represents the pre-subpixel rendered (P-SPR) image data and, for each image location, to set the value of P-SPR detection flag 205 to signal the presence or absence of pre-subpixel rendered image data. In the case of P-SPR data that has been marked with two color keys, such as for example, as shown in eight pixel repeating group 2010 of
One technique for detecting the P-SPR data may include designating the input image data as starting at pixel (0, 0) at a first even row and even pixel, and expecting the P-SPR data to be located according to the guidelines described above: that is, to start within the input image data at an even row and even pixel location, to include two rows of pixels in the repeating group, and to position color key values in the odd rows at a phase offset from the even rows.
Table 2 below provides pseudo-code for a simple row detector that detects the presence of the R and B marking codes shown in
It can be seen that variations of the row detector illustrated in Table 2 may be implemented using the model shown for
Efficient techniques such as those described herein for marking and detecting pre-subpixel rendered images support more widespread and advantageous uses of such images. The ability to embed a pre-subpixel rendered portion of an image, referred to as a P-SPR image subset, into an input image data file facilitates the high-quality rendering of image subsets that tend to be invariable, or fixed, from image to image. These fixed image subsets may be pre-subpixel rendered in advance using specialized techniques that otherwise may not be possible or easily accomplished with a particular sub-pixel rendering engine, and then stored for future use and/or transmitted to an operation that embeds the P-SPR image subset into input image data. Examples of fixed image subsets include a variety of graphical symbols such as logos, icons, ideograms and glyphs rendered in a specific font. The discussion that follows presents techniques for implementing the display of enhanced pre-subpixel rendered fonts, but it is understood that these techniques are applicable to any designated image subset that would benefit from being pre-subpixel rendered in advance of the remainder of the image data of which it is a part, for direct display.
User demand to view displayed text, in high quality, grayscale anti-aliased fonts will expand as electronic devices of all sizes function in new roles. For example, as more display of text occurs on small and low cost systems such as cell phones, users will expect to see higher quality text displayed than the one-bit-per-pixel fixed sized fonts that are in common use. As cell phone and other display device processors increase memory and processing power, producing text for display using outline fonts is likely to become more commonplace on such devices. In this discussion, the term “font” denotes a complete typeface in a particular size (usually measured in points), one weight (e.g., light, book, bold, black), and one orientation or angle (e.g. roman, italic, oblique). The term “typeface,” in typography, consists of a coordinated set of grapheme (i.e., character) designs. A typeface usually comprises an alphabet of letters, numerals, and punctuation marks, and may also include or consist of ideograms and symbols. An “outline font” is a font defined as a set of lines and curves, as opposed to a bitmap font. Generally, outline font characters can be scaled to any size and otherwise transformed more easily than a bitmap font, and with more attractive results. The result of transforming a character in an outline font in a particular way is often saved as a bitmap in a font cache to avoid repeating the calculations if that character is to be drawn again. A “glyph” as used herein is the realized instance in an image of a graphical symbol such as a character or symbol in a font.
Several embodiments of font-rendering techniques using pre-subpixel rendered image data are possible. In a first embodiment of a font rendering technique, each character in a font is pre-rendered using high-quality algorithms. The GMA. SPR, and output gamma operations, such as those illustrated and described above in any one of
In one variation of this font-rendering technique, the characters in a font are generated on a font design workstation in a fixed size, then rendered using high-quality algorithms as described above, and stored as pre-subpixel rendered glyphs. In another variation of this font-rendering technique, when outline fonts are used, the font rendering engine may cache the glyphs in a pre-subpixel rendered format. In either of these variations, the pre-subpixel rendered glyphs may be stored with or without the marking code that marks them as pre-subpixel rendered images. Storing pre-subpixel rendered glyphs without the marking code, and adding the marking code to a pre-subpixel rendered glyph as it is being embedded in the image in which it will be displayed, may have advantages as discussed below.
As noted above, the operation of marking (i.e., adding a marking code to) P-SPR image data typically follows principles and guidelines to facilitate the detection of the marking code by a P-SPR detection operation such as P-SPR detection operation 202 in any of
In addition, a particular sub-pixel layout may influence the degrees of rendering freedom for glyphs in a font. Sub-pixel layouts, such as those illustrated in
By way of example, examine the case of a display comprising a sub-pixel repeating group 802 as shown in
Marked pre-subpixel rendered font glyphs may be generated according to these guidelines to accommodate the design of a P-SPR detection operation 202. Rendering text images on a display, however, requires more flexibility in text placement than such guidelines may permit. Pre-rendered font glyphs may be rendered to start in several different phases and each such phase may have a different marking code pattern. Pre-rendered font glyphs may start on any logical pixel, even or odd, and may be an odd number of logical pixels wide. Methods and techniques are needed to provide additional degrees of freedom for the display of glyphs.
An enhanced font rendering system must provide more flexibility than black text on a white background. Modern graphics processors have “bitblit” modes that are able to replace the 1 and 0 bits of black and white text with foreground and background colors, resulting in the ability to display glyphs in any foreground color on top of any background color, and to display glyphs in an overlay mode on top of a background image instead of a solid background color.
One embodiment, shown in
With continued reference to
In most cases, the foreground font colors are completely black or full-on bright colors, and specifying these colors in a linear color space requires straightforward calculations. An input gamma curve is applied to those foreground font or background colors specified between full-off black and full-on bright colors, to produce their linear color space values. This calculation can be done once every time the foreground or background color changes and stored in modules 1507 and 1508 for use many times. The foreground and background colors also need to be specified in the color space of the output display. If the output display is a multi-primary display having RGBW or RGB plus another primary color, a Gamut Mapping (GMA) operation is performed on the foreground and background colors before storing them in modules 1507 and 1508. Thus, in a software implementation, overlay/foreground/background code operation 1506 may include the GMA and input gamma functionality that is normally contained in operations 102 and 104 of the SPR data path of any of the display systems of
Alternatively, overlay/foreground/background code operation 1506 may use hardware assistance to implement the GMA functionality, which removes the GMA computation burden from the processor of the device. One simple form of hardware help may derive from using optional frame buffer 308 in the display systems illustrated in
If the font rendering system includes functionality to draw glyphs in “overlay” mode on top of existing images, then overlay/foreground/background code operation 1506 must include functionality to generate background colors from the destination images. In one implementation, operation 1506 reads the destination data from the input image in the display, duplicates the operations done by GMA operation 104 and Sub-Pixel Rendering operation 108 in the hardware, and feed these colors to background color module 1507. In a second, alternate implementation, these pre-subpixel rendered background colors can be read directly from optional frame buffer 308 in the display systems illustrated in
Blending operation 1500 is particularly suited to low-cost devices, such as a cell phone or personal digital assistant (PDA,) for rendering glyphs from fixed-size fonts stored as density map glyphs that were pre-subpixel rendered. The technique allows such devices to incorporate high quality fonts with a minimum of increase in computation. In systems that can support rendering variable-size fonts, the system's font rendering operation typically caches the rendered font glyphs as density glyphs. When this type of font rendering system is modified and/or enhanced to produce pre-subpixel rendered font glyphs in the cache, the discussion above of blending operation 1500 as applied to fixed-size fonts will also apply to rendering variable sized font glyphs from the cache.
It will be appreciated that the above methodologies and implementations are applicable to font rendering engines that reside on the image display device (e.g. a cell phone.) Examples of commercially available font rendering libraries may include Font Fusion 8 from Bitstream Inc., or Saffron® from MERL or the like. The outline font engines typically render into a cache of individual glyphs to increase their total throughput. The steps outlined above would be substantially the same if the glyph comes out of a pre-calculated font as described above or from a dynamically created glyph in the cache of a font rendering engine.
While the techniques and implementations have been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the appended claims. In addition, many modifications may be made to adapt a particular situation or material to the teachings without departing from the essential scope thereof. Therefore, the particular embodiments, implementations and techniques disclosed herein, some of which indicate the best mode contemplated for carrying out these embodiments, implementations and techniques, are not intended to limit the scope of the appended claims.
Claims
1. An image processing method for rendering characters in a font onto a display device having a sub-pixel layout and capable of detecting pre-subpixel rendered image data; the method comprising:
- performing a sub-pixel rendering operation on image data values representing each character in the font to produce pre-subpixel rendered glyph image data indicating a glyph ready for display on the display device;
- marking the pre-sub-pixel rendered glyph image data with a marking code to produce marked pre-subpixel rendered glyph image data; the marking code distinguishing the pre-subpixel rendered glyph image data from image data that has not been sub-pixel rendered;
- storing the marked pre-subpixel rendered graphical symbol image data in a memory device; and
- in response to a signal requesting display of a character in the font, outputting the marked pre-subpixel rendered glyph image data indicating the character to the display device.
2. The image processing method of claim 1 further comprising storing marked pre-subpixel rendered glyph image data indicating a version of each glyph for each logical pixel in the sub-pixel layout of the display at which a rendered glyph may be positioned.
3. The image processing method of claim 1 further comprising storing marked pre-subpixel rendered glyph image data indicating a version of each glyph for each sub-pixel in the sub-pixel layout of the display at which a rendered glyph may be positioned.
4. The image processing method of claim 1 further including, when outputting the pre-subpixel rendered glyph image data indicating the character to the display device, adding marked image data to the marked pre-subpixel rendered glyph image data in order to position a rendered glyph at one of a sub-pixel or logical pixel starting position.
5. The method of claim 1 wherein the font is an outline font and each character in the font is defined as a set of lines and curves.
6. An image processing method for displaying a pre-subpixel rendered glyph stored in a memory device as a density map of pixels each indicating density values specifying a mixing percentage of each of a foreground color and a background color; the method comprising:
- receiving an input signal to display the pre-subpixel rendered glyph;
- retrieving the pre-subpixel rendered glyph from the memory device;
- for each pixel of the pre-subpixel rendered glyph, combining the mixing percentages of an input foreground color value and an input background color value according to the density values stored in the density map to produce color image data values indicating a blended color glyph; and
- outputting the color image data values indicating the blended color glyph directly to a display device without further sub-pixel rendering.
7. The image processing method of claim 6 wherein the input foreground color value and the input background color value are specified in a linear color space.
8. The image processing method of claim 6 further including performing a gamut mapping operation on the input foreground color value and the input background color value to produce image data values specified in a color space of the display device.
9. The image processing method of claim 6 further including, when one of the input foreground color value and the input background color value is specified between a full-off black color and a full-on bright color, performing an input gamma operation to at least one of the input foreground color value and the input background color value to produce linear color space values prior to combining the mixing percentages of the input foreground color value and the input background color value.
10. The image processing method of claim 6 wherein the input signal to display the pre-subpixel rendered glyph signal includes the foreground color value and the background color value.
11. The image processing method of claim 6 wherein the input signal to display the pre-subpixel rendered glyph signal includes the input foreground color value; and wherein the image processing method further includes determining the input background color value from a destination image region in a target output image to be displayed on the display device.
12. The image processing method of claim 11 wherein the blended color glyph is displayed in the destination image region of the target output image such that the blended color glyph overlays the destination image region.
13. The image processing method of claim 11 wherein determining the input background color value from the destination image region in the target output image includes:
- retrieving an input source image data subset from an input source image from which the target output image was produced; the input source image data subset corresponding to the destination image region in the target output image;
- performing a gamut mapping operation on the input source image data subset to produce gamut-mapped source image data indicating color values specified in a color space of the display device; and
- performing a sub-pixel rendering operation gamut-mapped source image data to produce the input background color value.
14. The image processing method of claim 11 wherein determining the input background color value from the destination image region in the target output image comprises retrieving the input background color value from a frame buffer in the display device.
15. The image processing method of claim 6 correcting the color image data values indicating the blended color glyph for output gamma prior to outputting the blended color glyph.
16. The image processing method of claim 6 wherein the display device is capable of detecting pre-subpixel rendered image data, and wherein the method further includes, prior to outputting the blended glyph directly to the display,
- marking the blended glyph with a marking code; and
- embedding the marked blended color glyph in an image data stream; the marking code identifying the blended color glyph to the display as pre-subpixel rendered image data ready for display without further sub-pixel rendering.
Type: Application
Filed: Apr 10, 2014
Publication Date: Aug 7, 2014
Applicant: Samsung Display Co., Ltd (Yongin-city)
Inventors: MICHAEL FRANCIS HIGGINS (Duncans Mills, CA), SEOK JIN HAN (Cupertino, CA), CANDICE HELLEN BROWN ELLIOTT (Santa Rosa, CA)
Application Number: 14/250,275
International Classification: G06T 11/00 (20060101);