Rotatable display with sub-pixel rendering

Abstract
In a system comprising a processor, an image storage and a display, said display capable of displaying an image, and said image being renderable in a plurality of rotation degrees upon said display upon receipt of a command, a method of rotating an image, said image further comprising at least one member of a group, said group comprising text and images capable of being sub-pixel rendered, comprises the steps of: sub-pixel rendering said at least one member of a group; grouping said sub-pixels into a plurality of sub-pixel groups; rotating said plurality of sub-pixel groups such that each said sub-pixel group is rotated as a pixel on a pixel-to-pixel basis. In another embodiment, the display upon which rotation is performed comprises substantially equal subpixel rendering addressability limits in horizontal, vertical and diagonal directions.
Description
FIELD OF INVENTION

The invention pertains to the field of computer displays. More specifically, this invention pertains to rotation of color sub-pixelated displays using sub-pixel rendering.


BACKGROUND

Computer displays typically are constructed in a manner to display text and other video information in a landscape mode. There have been, of course, some displays that are constructed to display video data in portrait mode. To bridge the gap between the two modes of displays, some have built software drivers to enable a display to be rotated between landscape and portrait mode (i.e. typically 90, 180, or 270 degrees) and then to hit a software switch (either automatically or under user-controlled input) in order to render the image “right-side up”. Badger, in U.S. Pat. No. 5,973,664, describes such a prior software system that enables the mapping of pixel information from one mode to the other—and hence, enables a rotatable display for desired user control.


Badger describes his system succinctly in FIGS. 1, 2 and 3. FIG. 1 illustrates the modification of an image before it is sent to a rotated computer display. Computer display 100A is oriented in standard landscape mode, displaying an image which is taller than it is wide. The space on either side of the image is wasted. The user of rotatable display 100A can rotate it 90 degrees clockwise, which would result in computer display 100B. The image on display 100B appears rotated 90 degrees, however, because of the rotation of the display. In order to view the image upright as on rotated display 100C, the computer compensates for the clockwise rotation of the display by sending to the display an image which is rotated 90 degrees in the counterclockwise direction. The image sent by the computer to display 100C would look like that on display 100D if the display were left in the standard landscape orientation.


An illustrative embodiment of Badger's system is shown in FIG. 2. Computer display 216 exhibits image 218 based on display image information 210 stored in display memory 212, which is accessible by computer 220. This display memory 212 is organized into arrays of memory cells, and the organization of information in display memory 212 takes the form of contiguous blocks of memory which each represent a single horizontal line of pixels on the display. Video hardware 214 uses display image information 210 in display memory 212 to generate display signals for computer display 216. The appearance of image 218 on computer display 216 is determined by the organization of information 210 placed in display memory 212. When software application 200, such as a word processor or a drawing program, needs to put an image 204 on display screen 216, it typically places image information 204 in source memory 202. Application 200 then signals operating system 206 that image 204 in source memory 202 needs to be put on display screen 216. Operating system 206 then communicates this information to driver 208. Driver 208 is a small software program which performs the task of retrieving source image information 204 from source memory 202 and putting it into display memory 212. If any modifications to the orientation of image 204 are necessary, driver 208 performs these modifications while writing display image information 210 to display memory 212. Driver 208 performs all modifications to image 204 using a single parameterized method of operation that can be used to rotate image 204 for any of a number of orientation modes.


Referring now to FIG. 3, image 210 to be shown on computer display 216 is in the form of an array of display image lines 306, with each display image line 306 being an array of pixels 308. Driver 208 transfers image 204 line by line, pixel by pixel from source memory 202 to display memory 212. Computer display 216 shows what is in display memory 212, and driver 208 can change the orientation of displayed image 218 by changing the ordering of pixels 308 of image 210 in display memory 212. In FIG. 3, an image of an arrow is shown in source memory 202. Display memory 212 contains an image of the same arrow rotated counterclockwise 90 degrees. The mapping of pixels 304 from source memory 202 to display memory 212 is illustrated by the three pixels marked A, B, and C, which are mapped to the three pixels 308 marked A′, B′, and C′.


When a user wishes to change the orientation of images 218 on computer display 216, the user makes a selection of one of a variety of possible orientation modes. When this selection occurs, driver 208 is notified, and a setup procedure begins so that images 218 later drawn to computer display 216 will have the desired orientation. This setup procedure involves using information about the desired orientation to calculate two increment parameters, X.sub.—Increment and Y.sub.—Increment. The X.sub.—Increment parameter indicates the difference in display memory 212 between pixels 308 which correspond to adjacent pixels 304 of the same source image line 302 in source memory 202. For example, pixels A and B are adjacent pixels 304 of the same source image line 302 in FIG. 3. For display image 210, the values of these two pixels 304 are transferred to A′ and B′ in display memory 212. The difference in memory addresses between A′ and B′ in display memory 212 is the X.sub.—Increment parameter. The Y.sub.—Increment parameter is the difference in display memory 212 between pixels 308 which correspond to adjacent pixels 304 of different source image lines 302 in source memory 202. For display image 210, pixels A′ and C′ correspond to pixels A and C of source memory 202, A and C being adjacent pixels 304 of different source image lines 302 in source memory 202. The difference in memory addresses between A′ and C′ in display memory 212 is the Y.sub.—Increment parameter.


When driver 208 is notified that image 204 is to be displayed on computer display 216, driver 208 invokes a set of software instructions to transfer image information 204 from source memory 202 into display memory 212 using the X.sub.—Increment and Y.sub.—Increment parameters, which are modified depending on the desired orientation mode. As each pixel 304 in a source image line 302 is transferred from source memory 202 to display memory 212, driver 208 determines the new pixel 308 location in display memory 212 by adding the X.sub.—Increment parameter to the location of the previous pixel 308 from that source image line 302. Each time a new source image line 302 is begun, the Y.sub.—Increment parameter is added to the location in display memory 212 of the first pixel 308 of the previous source image line 302. After the location in display memory 212 of the first pixel is determined, the location in display memory 212 of each subsequent pixel can be determined from the two increment parameters. In this way, the same set of instructions can effect the transfer of image information 204 regardless of which orientation mode selected, merely by changing the values of the X.sub.—Increment and Y.sub.—Increment parameters according to the selected orientation mode.


As useful as the Badger's system is (as depicted in FIGS. 1, 2 and 3) and while it is clearly desirable to have such user-flexibility in a display, the main limitation to the system disclosed by Badger is that the mapping takes places at the pixel-level—and no finer level of mapping is described. Today's displays are taking advantage of sub-pixel rendering—methods and apparatus that allow for a finer resolution of video data (in particular, text). In fact, both Microsoft and Adobe have methods that allow for sub-pixel rendering using the traditional RGB stripe.


Part of the problem is that prior art displays (particularly those relying on the RGB stripe) suffer from a non-rotationally symmetrical Nyquist limit, addressability, and/or MTF response curve. When images are rotated on a display that is non-symmetrical, the direction that has the least performance limits the image quality as the image component requiring greater performance passes through that angle.


For example, many, if not most, western text (Latin & Cyrillic) have more high spatial frequency components in the horizontal than the vertical direction. These high spatial frequencies are spread over a range of frequencies and phases. On a display with fixed square pixels, only certain high spatial frequencies and phases can be displayed. On a prior art RGB Stripe panel, display sub-pixel rendering offers higher addressability, thus allowing higher spatial frequencies to have a greater range of phases, but only in the direction normal to the stripes. Thus fonts are best rendered using sub-pixel rendering with the stripes aligned vertically, in line with the majority of long strokes of most of the characters. Displays conventionally meet this requirement when the lines of text are aligned horizontally along the long axis of typical flat panel displays in the so called “landscape” orientation. But when the lines of text are aligned with the short axis, and the display physically rotated to the so called “portrait” orientation, desired to allow display of full pages of text, as they are usually printed on paper in the “portrait” orientation, the stripes are normal to the long strokes. Since sub-pixel rendering only increases the addressability normal to the stripes, the conventionally oriented striped panel is suboptimal for use in sub-pixel rendering text in the portrait orientation, as the text requires greater addressability in the ‘wrong’ axis.


For this reason, the stripes should be aligned vertically in portrait mode. This requires that the display be designated for use as a portrait display only. But many displays would benefit from the ability to be used in both modes. Many advantageous uses would abound—e.g. a flat panel monitor on a support that allows the user to rotate the display between portrait orientation for word processing and landscape orientation for other work; a so-called “tablet computer” or “Personal Digital Assistant” (“PDA”) that allows the user to read an electronically stored book in portrait orientation and turn it to view it in landscape orientation to view a calendar. Thus, it is highly desirable to have a display that allows equal sub-pixel rendering performance in both portrait and landscape orientations.


For some uses of flat panels, images are rotated at any or even all angles. One such use is for navigation aids in automobiles and handheld devices such as Geo Positioning System (GPS) enabled map displays. As the car or user changes orientation with respect to the terrain, the map rotates in the counter direction on the display to keep the relative orientation of the displayed map image aligned with the terrain. On prior art displays, such as the RGB Stripe display, conventional whole pixel rendering allows higher spatial frequencies in the diagonal directions. Images that are rotated on the display change quality depending on whether the high spatial frequencies are in alignment with the diagonals or not. Thus, an image, such as a map, seems to shift in appearance (and, potentially, usability) as the image is rotated. Thus, it is highly desirable to have a display that has equal performance in any and all orientations. That is to say, its Nyquist Limit, addressability, and/or MTF response curves are equal in all directions. If these response functions were plotted for such a display, they would from a circle with the center at zero spatial frequency—as will be discussed in greater detail below.


The family of display architectures—disclosed in the commonly owned U.S. patent application Ser. No. 09/916,232, published as U.S. Patent Application Publication No. 2002/0015110 A1, and, now issued as U.S. Pat. No. 6,903,754, to Candice Hellen Brown Elliott, entitled “ARRANGEMENT OF COLOR PIXELS FOR FULL COLOR IMAGING DEVICES WITH SIMPLIFIED ADDRESSING,” and known under the trademark name PENTILE™—all share the common trait of a red and green sub-pixel checkerboard upon which luminance information is mapped using sub-pixel rendering. When these displays sub-pixel render images that are rotated about, the image quality and appearance remains substantially constant due to the symmetrical nature of the red and green sub-pixel checkerboard layout and the filter response of the sub-pixel rendering algorithms. If the Nyquist Limit, addressability, and/or MTF response curves are plotted for these display architectures, it is found that they are circles with the center at zero spatial frequency.


Since a display with a circular response has equal performance in all direction, it follows that it must also have equal performance in landscape and portrait orientations.


In addition to the problems mentioned above regarding the quality of text when sub-pixel rendered on said RGB Stripe displays, another problem occurs when the prior art RGB stripe sub-pixel rendering methods are followed by a pixel-to-pixel rotational mapping, such as e.g. taught by Badger. Typically, as is often attempted in commercial use, the sub-pixel rendering of text is performed by the operating system, and the screen image rotation and/or mirror performed by a ‘driver’ afterwards. The problem arises when the text rendering code assumes that the sub-pixel stripes are aligned normal to the line of text (aligned with the tall stems of Western fonts). The sub-pixel rendered data is then remapped, improperly, by the screen rotation method such as taught by Badger, which has as an internal assumption, that the data is conventional, non-sub-pixel rendered data. That is to say that each red, green, and blue data point per pixel represent a color sample that is coincident. In sub-pixel rendered data, this assumption is false. When rotated by the Badger method, the sub-pixel rendering is “scrambled”.


SUMMARY

One present embodiment is a method to modify the prior art RGB stripe sub-pixel rendering methods such that the assumption is that the screen to be used in portrait orientation, with the stripes running horizontally in this orientation, obtaining feedback from the parameters taught in Badger. This will allow the text rendering code to use a set of displaced filters that match the conditions of the parameters.


One present embodiment pre-sub-pixel renders the desired text, one character at time, that is to be rotated and/or mirrored to the orientation indicated by the selected parameters by a pixel to pixel rotational mapping scheme. Then each character bit map may be rotated by the pixel to pixel rotational mapping, such as taught by Badger, or any other suitable method, but in the converse (inverse) manner, before being stored as a bit map. If such a character were plotted to the graphics memory plane to its selected position, it would appear to be scrambled. When the entire image is rotated by the Badger, or other suitable method, the sub-pixel rendering is “unscrambled” back to its intended, useful alignment.


Another embodiment is to write sub-pixel rendered data for text, as well as all graphics, at the desired rotational orientation.


Yet another embodiment is to perform the rotation of conventional, high resolution images before sub-pixel rendering. Conventional data is drawn to the graphic memory plane. Using the Badger, or other suitable methods, the image is rotated and/or mirrored. Then the data is filtered and sub-pixel rendered. The display to which the data is sub-pixel rendered and displayed onto may be an RGB stripe, delta triad, Bayer, PENTILE™, or any other suitable sub-pixelated type display. If the display is a PENTILE™ display (as depicted in U.S. patent application Ser. No. 09/916,232, published as U.S. Patent Application Publication No. 2002/0015110, now issued as U.S. Pat. No. 6,903,754), the sub-pixel rendering may be the method described in the related '612 patent application as herein incorporated by reference.


Other features and advantages of the present invention will be apparent from the following detailed description.





BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the invention and, together with the description, serve to explain the principles of the invention. In the figures,



FIG. 1 depicts various display and image orientations that are enabled with a prior art pixel to pixel rotational mapping scheme;



FIG. 2 shows an embodiment of a prior art computer system that implements a pixel to pixel rotational mapping scheme as taught by Badger;



FIG. 3 illustrates the relation of source memory to display memory in the system taught by Badger;



FIG. 4 is an illustration of prior art sub-pixel rendering of a text character on an RGB stripe display;



FIG. 5 is an illustration of the results of rotating the image of FIG. 4 using a prior art method;



FIG. 6 is an illustration of the desired results of rotating the image of FIG. 4 using the present invention;



FIG. 7 is one embodiment of a method as practiced in accordance with the present invention;



FIG. 8 is an illustration of a manner of storing and rendering the image of FIG. 6 prior to rotating the image according to the present invention;



FIG. 9 is diagram comparing the Nyquist and addressability limits of RGB stripe and PENTILE™ displays to the relative addressability requirements of western type fonts;



FIG. 10 is an illustration of sub-pixel rendering of a text character on a PENTILE™ 1 display;



FIG. 11 is an illustration of the results of rotating the image of FIG. 10 using the present invention;



FIG. 12A is another embodiment of the methods as practiced in accordance with the present invention;



FIG. 12B is an illustration of sub-pixel rendering of a text character on PENTILE™ 2 display;



FIG. 13 is an illustration of sub-pixel rendering of a text character on a PENTILE™ 1 display;



FIG. 14 is an illustration of the results of rotating the image of FIG. 13 using the present invention; and



FIG. 15 is yet another embodiment of a method as practiced in accordance with the present invention.





DETAILED DESCRIPTION

Reference will now be made in detail to implementations and embodiments of the present invention as illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings and the following description to refer to the same or like parts.



FIG. 4 shows an exemplary text character—“i”, in this case—sub-pixel rendered by a suitable prior art method for an RGB Stripe. As shown, this represents black text on a white background. It should be noted that the sub-pixels attempt to shape, or reconstruct, an idealized character—it is an approximation due to the limitations of the number of sub-pixels available. It should also be noted that the ‘dot’ 405 of the “i” overlaps the traditional boundaries of the conventional non-sub-pixel rendered fixed pixel definition—as shown by the dashed line boundaries 410 and 420. The red sub-pixel 422 and the green 414 and blue 416 sub-pixels form a new “logical pixel” that is shifted and lying across the two original pixels 410 and 420. Thus, the original, conventional pixel 410 when stored, would appear to be red—as only the red sub-pixel 412 is turned on. The conventional pixel 420, when stored, would be appear to be cyan—as only the green 424 and blue 426 sub-pixels are turned on.


When the display of FIG. 4 is rotated counter clockwise and the image of the text is rotated clockwise to keep the character upright (as in a manner taught by the Badger or some other similar method), the same two values, red and cyan are applied to corresponding conventional pixels 510 and 520—as shown in FIG. 5 respectively. However, as the sub-pixel stripes are turned counter clockwise, the sub-pixels that formerly made up the ‘dot’ no longer line up to make a logical pixel. Thus, this method of rotating the image fails to maintain sub-pixel rendering utility.


Referring now to FIG. 6, the text “i” character is shown when it is sub-pixel rendered correctly on a counter clockwise rotated display. It should be noted that the sub-pixels attempt to reconstruct an idealized character is only an approximation due to the limitations of the number of sub-pixels available. It should also be noted that its appearance is significantly different than that of FIG. 4, due to the sub-pixel architecture and its resulting Nyquist Limit, MTF, and addressability. FIG. 6 shows the desired image after rotation.


One embodiment for achieving this according to the present invention is presented in FIG. 7. Method 700 starts at step 710, by noting a number of different RGB sub-pixel rendering (SPR) schemes, font styles and the characters within such font style needs to be dealt with appropriately. A data set is built at step 720 for each such character for a given font style and a given SPR scheme whereby the data set takes into account the various rotation/mirror parameters to be requested. It will be appreciated that such a data set could be pre-processed and stored in memory somewhere with a computer system, such as shown in FIG. 2. Alternatively, the data set in question could be built in real time a rotation/mirror request is made based upon the system knowledge of the font style and given RGB SPR scheme being applied.



FIG. 8 is a pictorial example of just such a data set for the character “i” when the particular RGB stripe of FIG. 8 is given an instruction to rotate screen counter-clockwise and the data to be viewed in “right-side” up in portrait mode. Referring back to FIG. 7, at step 730, upon a rotation/mirror request, the system has knowledge of the appropriate rotation/mirror parameters and the particular RGB SPR scheme. Of course, this system knowledge could reside in and be accessed by many different parts of the system. For example, the knowledge could be resident in the application that is having the data rendered in the first instance. Alternatively, it could reside in the operating system or even the driver parts of the system. It should be noted that method 700 can have any number of variations to achieve the same result.


At step 740, the appropriate data set is applied on a character-by-character basis and the memory for the image is updated accordingly. It should be appreciated that data sets could be applied on other than a character-by character basis. In fact, groups of characters could constitute a separate data set and, for non-text images, similar grouping of data sets according to image information could be similarly constructed and applied. Additionally, the memory of the image to be rotated/mirrored could reside in various parts of the computer system.


At step 750, the requested rotation/mirror command is applied to the updated memory image—which correctly renders the image according to the rotation/mirror command and the particular SPR scheme present. It will be appreciated that the steps of the present embodiment are not necessarily to be performed in the order described and that the present invention contemplates all obvious variations of the above embodiment.


Another embodiment of this method is to note the rotation and/or mirror parameters of the rotation method (e.g., by Badger, or some other similar method) to know what orientation the display sub-pixels will be. Then, a suitable method of sub-pixel rendering is applied, such as various displaced filter methods taught in the prior art or in the '612 application to pre-sub-pixel-render each character in the type font set. The image may then be rotated with the converse (inverse or reverse) operation to that to be later performed by the Badger method, or some other similar and suitable method, then the result may be stored as bit maps or as another memory scheme. The result of this converse (inverse or reverse) operation on the image then produces the desired result. When called upon by an application, such as a word processor, the image could then be plotted to the desired location in the graphic memory plane, where it is remapped/rotated by the Badger, or other similar method.


Reviewing the appearance difference of the sub-pixel rendered character “i” in FIGS. 4 and 6, the reason the appearance difference exists is that the RGB stripe display architecture is asymmetric, giving rise to an asymmetric addressability. The addressability is greater in a direction normal to the orientation of the stripes.



FIG. 9 compares the Nyquist limit and the addressability of RGB stripe and PENTILE™ displays to each other and to the addressability requirements of typical western font type (Latin and Cyrillic). The origin, the intersection of the four axial lines, represents zero spatial frequency. The graph space around it represents spatial frequencies to be displayed on the panel in the orientation as depicted. Thus, horizontal spatial frequencies are represented along the horizontal axis line, vertical spatial frequencies along the vertical axis line, and so on. The convention followed here is that the RGB stripe display response is plotted for stripes in the vertical orientation, while the PENTILE™ display's blue stripes are similarly oriented.


In FIG. 9, the Nyquist limit 910 of the RGB stripe display is shown in dashed lines. It should be noted that it forms a square in the spatial frequency space—and that it has equal limits in the horizontal and vertical axis; but has a higher limit for diagonal spatial frequencies. Without sub-pixel rendering, the Nyquist limit 910 and addressability limit 910 are the same. The Nyquist limit 910 is the same for both non-sub-pixel rendered and sub-pixel rendered images.


The sub-pixel rendering addressability limit 920 of the RGB stripe is shown. It should be noted that it has twice the addressability (since only the red and green sub-pixels substantially participate in addressability improvement using sub-pixel rendering in the horizontal than in the vertical axis. When western text lines are horizontally orientated (that is, running normal to the stripes), its relative addressability requirement 930 is plotted. This curve forms an ellipse. In this orientation, the relative addressability requirement 930 is aligned optimally with the RGB stripe addressability limit 920. The increase in addressability with sub-pixel rendering is responsible for the increase in perceived text quality over non-sub-pixel rendering.


The relative addressability requirement of western text that is vertically oriented (that is, running in-line with the stripes) plotted in 940. In this orientation, the relative addressability requirement 940 is aligned in the least optimal orientation with the RGB stripe addressability limit 920. There is still some increase in perceived text quality due to sub-pixel rendering over non-sub-pixel rendering, so the use of sub-pixel rendering is still warranted.


The sub-pixel rendering Nyquist limit 950 and sub-pixel rendering addressability limit 950 are the same for some PENTILE™ architectures shown in FIGS. 10, 11 and 12B. It is to be noted that it is symmetrical and coincident, due to the nature of the substantially symmetrical layout of the red and green sub-pixels—forming substantially a checkerboard pattern. When compared to the horizontally aligned text relative addressability requirement 930 and vertically aligned text relative addressability requirement 940, note that the rotation orientation of the PENTILE™ sub-pixel rendering Nyquist limit 950 and sub-pixel rendering addressability limit 950 allow for substantially equal image quality in any axis.


Thus, the PENTILE™ sub-pixel architecture is better suited for rotated text or graphics images, at any angle of rotation.


A method of using and rotating images for sub-pixelated panels comprises rotating a high resolution conventional, non-sub-pixel rendered image, using the Badger, or other suitable method, followed by sub-pixel rendering as described in the '612 application, or any other suitable method. By sub-pixel rendering after the rotation, the sub-pixel rendering need not suffer disruption as noted earlier. It will be appreciated that such a suitable sub-pixel rendering algorithm could reside and/or operate in either the graphics system in a computer, before it is transferred to the display by methods, such as analog or digital signal on cable—as is generally known in the art. Alternatively, the rotated high resolution image may be sent to a standalone monitor, in which a display controller may perform the sub-pixel rendering, perhaps in conjunction with scaling methods such as found in the '612 application or other suitable methods.



FIGS. 10 and 11 show the text character “i”, sub-pixel rendered, by any suitable method. As shown, this character represents black text on a white background. It will be noted that the sub-pixels attempt to shape, or reconstruct, an idealized character; but—as described before—due to the limitations of the number of sub-pixels available, it is only an approximation. However, it is readily seen that it is a better approximation than using sub-pixel rendering on the RGB stripe panel. FIG. 11 shows the results of rotating the panel one direction, while rotating the image in the counter direction, before sub-pixel rendering. It should be noted how similar the two images are.



FIG. 12A describes the above embodiment 1200 as practiced in accordance with the present invention. Method 1200 starts at step 1202, wherein the system receives and accepts rotation/mirror commands—either automatically (as with a turn of the monitor) or via user-input. At step 1204, the system performs a non-sub-pixelated rotation/mirror command upon the image data.


Another method, for the PENTILE™ displays is to sub-pixel render first, then rotate the image using a modification of the Badger, or other suitable method, in which PENTILE™ groups are treated as “pixels” for the first, or high level rotation, with the additional step of rotating the data within the PENTILE™ group, again according to the parameters of the Badger, or other suitable method.


For monochrome text and images, the above embodiment should suffice. However, for non-monochromatic, that is to say, multicolor images, the above embodiment may not be sufficient, as rotating the data may introduce red/green color inversion. Of course, shifting may occur for either monochrome or multicolored images alike. Multicolor images may benefit from an additional step of shifting the red and green data by one red/green sub-pixel in the red/green checkerboard, in any orthogonal direction convenient. Such shifting restores the correct red/green color. Additionally, by moving the data in the direction of the blue stripes in one style of PENTILE™ architecture (known as “PENTILE™ 1”—as depicted in FIG. 10) architecture simplifies the calculation of the blue values. The same simplification holds, as does treating the two blue sub-pixels as one reconstruction point, similar to the single blue sub-pixel of another style of the PENTILE™ architecture (known as PENTILE™ 2—as depicted in FIG. 12B), per PENTILE™ group, during sub-pixel rendering.


Exploring the above method closer, in FIG. 13, the PENTILE™ group 1310 is rotated and shifted to become the PENTILE™ group 1410 in FIG. 14. It should be noted that in FIG. 13, the green sub-pixel 1314 that is turned off, is remapped to the green sub-pixel 1414 in FIG. 14, while the red sub-pixel 1312 in FIG. 13 is remapped to the red sub-pixel 1412 in FIG. 14. It should also be noted that the blue data value applied to the two vertically and centrally oriented blue sub-pixels 1316 of FIG. 13 are remapped to the two horizontally and centrally oriented blue sub-pixels 1416 in FIG. 14.



FIG. 15 is yet another embodiment made in accordance with the principles of the present invention. The method 1500 starts at step 1502 wherein rotation/mirror commands are received for a display comprising substantially a red and green checkboard arrangement, such as the family of PENTILE™ architectures. At step 1504, the sub-pixel rendered image data is divided into suitable groups to which the rotation/mirror command (such as may be taught by Badger or some other suitable rotation/mirror scheme) is to be applied. The rotation/mirror command is then applied to these groups. At step 1506, if the image is a multicolor image, then an appropriate shift is applied to maintain the proper color.


Yet another method of rotating an image allows any rotation angle. The original high resolution image is treated as a set of implied sample areas per Elliott et al. in US Published Application Number 2003/0034992 which is incorporated herein by reference. The relative angles and position of the implied sample area and resamples are used to calculate the resample filter coefficients. Alternatively, the same concept of relative rotation resampling may be used with other sub-pixel rendering/scaling resampling algorithms known in the art, such as bilinear, bicubic, etc, or yet to be developed.


This works best on high resolution images in which only a portion of the image is to be shown at a time, such as maps. This method allows scaling, panning, and rotation in a single step. If used on an image that is the same size or smaller than the size of the target display, there will be blank areas that may be filled in with “wallpaper” or other background as desired.


In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

Claims
  • 1. A computer-readable non-transitory medium storing instructions that cause a machine to perform a method of rotating an image, said image comprising at least one member of a group, said group comprising text and images, the method comprising: building a data set based on a specified font style and sub-pixel-rendering (SPR) scheme, the specified font style and SPR scheme selected from among a plurality of respective font styles and SPR schemes;rotating said at least one member of the group in an orientation of a given rotation command to produce a rotated image group;storing said rotated image group within a system;applying the data set to said stored image group to produce an updated image storage;producing a rotated sub-pixel rendered image group from the updated image group by sub-pixel rendering the updated image group; anddisplaying an image from said updated image storage on a display panel wherein said image is capable of being displayed in one of a plurality of rotation orientations upon said display panel upon receipt of a given rotation command.
  • 2. The computer-readable non-transitory medium as recited in claim 1 wherein said sub-pixel rendering further comprises RGB stripe sub-pixel rendering.
  • 3. The computer-readable non-transitory medium as recited in claim 1 wherein said data set is pre-processed and stored within said system.
  • 4. The computer-readable non-transitory medium as recited in claim 1 wherein said data set is computed in real time upon receipt of the rotation command.
  • 5. The computer-readable non-transitory medium as recited in claim 1 wherein the given rotation command comprises a mirror command.
  • 6. The computer-readable non-transitory medium as recited in claim 1 wherein said display panel comprises one of a group of sub-pixel architectures, said group comprising RGB stripe and Pentile.
  • 7. The computer-readable non-transitory medium as recited in claim 1 wherein said display panel substantially comprises a checkerboard of red and green sub-pixels.
  • 8. The computer-readable non-transitory medium as recited in claim 1 wherein said sub-pixel rendering further comprises a Nyquist limit and an addressability limit and further wherein said Nyquist limit and said addressability limit allow for substantially equal image quality in any axis of rotation.
  • 9. The computer-readable non-transitory medium as recited in claim 1 wherein said display panel substantially comprises groups of red, green and blue sub-pixels repeating in a first orientation relative to a viewer of the display panel; wherein the given rotation command is responsive to a display rotation command rotating the display such that the groups of red, green and blue sub-pixels repeat in a second orientation relative to the viewer of the display panel; andwherein said rotating and sub-pixel rendering sub-pixel renders said at least one member of the group for image rendering according to the second orientation of the repeating groups of red, green and blue sub-pixels.
  • 10. A computer-readable non-transitory medium storing instructions that cause a machine to perform a method of rotating an image for display on a display panel, said image comprising at least one member of a group, said group comprising text and images, the method comprising: building a data set based on a given font style and a given sub-pixel-rendering (SPR) scheme, the specified font style and SPR scheme selected from among a plurality of respective font styles and SPR schemes;producing sub-pixel rendered image data from said at least one member of the group by sub-pixel rendering said at least one member of the group according to the data set;storing said sub-pixel rendered image data within a system so as to form stored sub-pixel rendered image data;grouping said stored sub-pixel rendered image data into a plurality of sub-pixel groups;rotating said plurality of sub-pixel groups such that each of said sub-pixel group is rotated as a pixel on a pixel-to-pixel basis;after the rotating, copying said sub-pixel rendered image data to produce an updated image storage; anddisplaying an image from said updated image storage on said display panel wherein said image is capable of being displayed in one of a plurality of rotation degrees upon said display panel upon receipt of a rotation command.
  • 11. The computer-readable non-transitory medium as recited in claim 10 wherein said display panel comprises a Pentile architecture.
  • 12. The computer-readable non-transitory medium as recited in claim 10 wherein said display panel substantially comprises a checkerboard of red and green sub-pixels.
  • 13. A system comprising a processor, an image storage and a display panel capable of displaying an image from said image storage; wherein further said display panel comprises substantially equal sub-pixel rendering addressability limits in horizontal, vertical and diagonal directions, and said image being capable of being displayed in a plurality of rotation degrees upon said display panel upon receipt of a rotation command; said image further comprising at least one member of a group, said group comprising text and images; said system further comprising: means for building a data set based on a specified font style and sub-pixel-rendering (SPR) scheme, the specified font style and SPR scheme selected from among a plurality of respective font styles and SPR schemes;means for rotating said at least one member of the group in the orientation of a given rotation command, so as to produce a rotated image group;means for storing said rotated image group;means for applying the data set to said stored image group to produce an updated image storage;means for sub-pixel rendering a rotated image group to produce a rotated sub-pixel rendered image group; andmeans for displaying said image from said updated image storage on said display panel.
  • 14. A system comprising a processor, an image storage and a display panel capable of displaying an image from said image storage and wherein further said display comprises substantially equal sub-pixel rendering addressability limits in horizontal, vertical and diagonal directions, and said image being capable of being displayed in a plurality of rotation degrees upon said display panel upon receipt of a rotation command; said image further comprising at least one member of a group comprising text and images; said system further comprising: means for building a data set based on a specified font style and sub-pixel-rendering (SPR) scheme, the specified font style and SPR scheme selected from among a plurality of respective font styles and SPR schemes;means for sub-pixel rendering said at least one member of the group according to the data set, so as to produce sub-pixel rendered data;means for grouping said sub-pixel rendered data into a plurality of sub-pixel groups;means for rotating said plurality of sub-pixel groups such that each said sub-pixel group is rotated and stored within said image storage as a pixel on a pixel-to-pixel basis; andmeans for copying the rotated sub-pixel groups stored within said image storage to produce an updated image storage; andmeans for displaying an image from said updated image storage on said display panel.
RELATED APPLICATIONS

This application is a continuation-in-part and claims priority to U.S. patent application Ser. No. 10/051,612 (“the '612 application”), filed on Jan. 16, 2002, now published as U.S. Patent Application Publication No. 2003/0034992, and now issued as U.S. Pat. No. 7,123,277, entitled “CONVERSION OF A SUB-PIXEL FORMAT DATA TO ANOTHER SUB-PIXEL DATA FORMAT,” which is hereby expressly incorporated herein by reference. U.S. patent application Ser. No. 10/051,612 claims priority to U.S. Provisional Patent Application No. 60/290,086, entitled “CONVERSION OF RGB PIXEL FORMAT DATA TO PENTILE MATRIX SUB-PIXEL DATA FORMAT,” filed on May 9, 2001; U.S. Provisional Patent Application No. 60/290,087, entitled “CALCULATING FILTER KERNEL VALUES FOR DIFFERENT SCALED MODES,” filed on May 9, 2001; U.S. Provisional Patent Application No. 60/290,143, entitled “SCALING SUB-PIXEL RENDERING ON PENTILE MATRIX,” filed on May 9, 2001; and U.S. Provisional Patent Application No. 60/313,054, entitled “RGB STRIPE SUB-PIXEL RENDERING DETECTION,” filed on Aug. 16, 2001, which are all hereby expressly incorporated herein by reference.

US Referenced Citations (146)
Number Name Date Kind
3971065 Bayer Jul 1976 A
4353062 Lorteije et al. Oct 1982 A
4593978 Mourey et al. Jun 1986 A
4642619 Togashi Feb 1987 A
4651148 Takeda et al. Mar 1987 A
4751535 Myers Jun 1988 A
4773737 Yokono et al. Sep 1988 A
4786964 Plummer et al. Nov 1988 A
4792728 Chang et al. Dec 1988 A
4800375 Silverstein et al. Jan 1989 A
4853592 Strathman Aug 1989 A
4874986 Menn et al. Oct 1989 A
4886343 Johnson Dec 1989 A
4908609 Stroomer Mar 1990 A
4920409 Yamagishi Apr 1990 A
4965565 Noguchi Oct 1990 A
4966441 Conner Oct 1990 A
4967264 Parulski et al. Oct 1990 A
5006840 Hamada et al. Apr 1991 A
5052785 Takimoto et al. Oct 1991 A
5113274 Takahashi et al. May 1992 A
5132674 Bottorf Jul 1992 A
5144288 Hamada et al. Sep 1992 A
5184114 Brown Feb 1993 A
5189404 Masimo et al. Feb 1993 A
5233385 Sampsell Aug 1993 A
5311337 McCartney, Jr. May 1994 A
5315418 Sprague et al. May 1994 A
5334996 Tanigaki et al. Aug 1994 A
5341153 Benzschawel et al. Aug 1994 A
5398066 Martinez-Uriegas et al. Mar 1995 A
5436747 Suzuki Jul 1995 A
5461503 Deffontaines et al. Oct 1995 A
5485293 Robinder Jan 1996 A
5535028 Bae et al. Jul 1996 A
5541653 Peters et al. Jul 1996 A
5561460 Katoh et al. Oct 1996 A
5563621 Silsby Oct 1996 A
5579027 Sakurai et al. Nov 1996 A
5648793 Chen Jul 1997 A
5754163 Kwon May 1998 A
5754226 Yamada et al. May 1998 A
5792579 Phillips Aug 1998 A
5815101 Fonte Sep 1998 A
5821913 Mamiya Oct 1998 A
5899550 Masaki May 1999 A
5917556 Katayama Jun 1999 A
5949496 Kim Sep 1999 A
5973664 Badger Oct 1999 A
6002446 Eglit Dec 1999 A
6008868 Silverbrook Dec 1999 A
6034666 Kanai et al. Mar 2000 A
6038031 Murphy Mar 2000 A
6049626 Kim Apr 2000 A
6061533 Kajiwara May 2000 A
6064363 Kwon May 2000 A
6097367 Kuriwaki et al. Aug 2000 A
6108122 Ulrich et al. Aug 2000 A
6144352 Matsuda et al. Nov 2000 A
6160535 Park Dec 2000 A
6184903 Omori Feb 2001 B1
6188385 Hill et al. Feb 2001 B1
6198507 Ishigami Mar 2001 B1
6219025 Hill et al. Apr 2001 B1
6225967 Hebiguchi May 2001 B1
6225973 Hill et al. May 2001 B1
6236390 Hitchcock May 2001 B1
6239783 Hill et al. May 2001 B1
6243055 Fergason Jun 2001 B1
6243070 Hill et al. Jun 2001 B1
6271891 Ogawa et al. Aug 2001 B1
6278434 Hill et al. Aug 2001 B1
6299329 Mui et al. Oct 2001 B1
6326981 Mori et al. Dec 2001 B1
6327008 Fujiyoshi Dec 2001 B1
6339426 Lui et al. Jan 2002 B1
6342876 Kim Jan 2002 B1
6346972 Kim Feb 2002 B1
6360023 Betrisey et al. Mar 2002 B1
6377262 Hitchcock et al. Apr 2002 B1
6392717 Kunzman May 2002 B1
6393145 Betrisey et al. May 2002 B2
6396505 Lui et al. May 2002 B1
6441867 Daly Aug 2002 B1
6453067 Morgan et al. Sep 2002 B1
6466618 Messing et al. Oct 2002 B1
6469766 Waterman et al. Oct 2002 B2
6509904 Lam Jan 2003 B1
6552706 Ikeda et al. Apr 2003 B1
6624828 Dresevic et al. Sep 2003 B1
6661429 Phan Dec 2003 B1
6674436 Dresevic et al. Jan 2004 B1
6681053 Zhu Jan 2004 B1
6714206 Martin et al. Mar 2004 B1
6738526 Betrisey et al. May 2004 B1
6750875 Keely, Jr. et al. Jun 2004 B1
6801220 Greier et al. Oct 2004 B2
6804407 Weldy Oct 2004 B2
6833890 Hong et al. Dec 2004 B2
6836300 Choo et al. Dec 2004 B2
6850294 Roh et al. Feb 2005 B2
6856704 Gallagher et al. Feb 2005 B1
6867549 Cok et al. Mar 2005 B2
6885380 Primerano et al. Apr 2005 B1
6888604 Rho et al. May 2005 B2
6897876 Murdoch et al. May 2005 B2
7230667 Shin et al. Jun 2007 B2
20010017515 Kusunoki et al. Aug 2001 A1
20010040645 Yamazaki Nov 2001 A1
20010048764 Betrisey et al. Dec 2001 A1
20020012071 Sun Jan 2002 A1
20020015110 Elliott Feb 2002 A1
20020017645 Yamazaki et al. Feb 2002 A1
20020093476 Hill et al. Jul 2002 A1
20020122160 Kunzman Sep 2002 A1
20020140831 Hayashi Oct 2002 A1
20020149598 Greier et al. Oct 2002 A1
20020190648 Bechtel et al. Dec 2002 A1
20030011613 Booth, Jr. Jan 2003 A1
20030034992 Brown Elliott et al. Feb 2003 A1
20030043567 Hoelen et al. Mar 2003 A1
20030048248 Fukumoto et al. Mar 2003 A1
20030071826 Goertzen Apr 2003 A1
20030071943 Choo et al. Apr 2003 A1
20030077000 Blinn et al. Apr 2003 A1
20030085906 Elliott et al. May 2003 A1
20030103058 Elliott et al. Jun 2003 A1
20030218618 Phan Nov 2003 A1
20040008208 Dresevic et al. Jan 2004 A1
20040021804 Hong et al. Feb 2004 A1
20040061710 Messing et al. Apr 2004 A1
20040085495 Roh et al. May 2004 A1
20040095521 Song et al. May 2004 A1
20040108818 Cok et al. Jun 2004 A1
20040114046 Lee et al. Jun 2004 A1
20040169807 Rho et al. Sep 2004 A1
20040189662 Frisken et al. Sep 2004 A1
20040189664 Frisken et al. Sep 2004 A1
20040239813 Klompenhouwer Dec 2004 A1
20040239837 Hong et al. Dec 2004 A1
20040263528 Murdoch et al. Dec 2004 A1
20050024380 Lin et al. Feb 2005 A1
20050068477 Shin et al. Mar 2005 A1
20050099426 Primerano et al. May 2005 A1
20050140634 Takatori Jun 2005 A1
20050151752 Phan Jul 2005 A1
Foreign Referenced Citations (45)
Number Date Country
197 46 329 Mar 1999 DE
299 09 537 Oct 1999 DE
199 23 527 Nov 2000 DE
199 23 527 Nov 2000 DE
201 09 354 Sep 2001 DE
0 158 366 Oct 1985 EP
0 203 005 Nov 1986 EP
0 322 106 Jun 1989 EP
0 0671 650 Sep 1995 EP
0 793 214 Feb 1996 EP
0 793 214 Sep 1997 EP
0 812 114 Dec 1997 EP
0 878 969 Nov 1998 EP
0 899 604 Mar 1999 EP
899 604 Mar 1999 EP
1 083 539 Mar 2001 EP
1 261 014 Nov 2002 EP
2 133 912 Aug 1984 GB
2 146 478 Apr 1985 GB
60-107022 Jun 1985 JP
02-000826 Jan 1990 JP
03-78390 Apr 1991 JP
03-036239 May 1991 JP
06-102503 Apr 1994 JP
02-983027 Nov 1999 JP
2001203919 Jul 2001 JP
2004-004822 Jan 2004 JP
2004 078218 Mar 2004 JP
WO 9723860 Jul 1997 WO
9744774 Nov 1997 WO
WO 0021067 Apr 2000 WO
WO 0042564 Jul 2000 WO
WO 0042762 Jul 2000 WO
WO 0045365 Aug 2000 WO
WO 0067196 Nov 2000 WO
WO 0110112 Feb 2001 WO
WO 0129817 Apr 2001 WO
WO 0152546 Jul 2001 WO
WO 02059685 Aug 2002 WO
WO 03014819 Feb 2003 WO
WO 03050605 Feb 2003 WO
WO 03056383 Jul 2003 WO
WO 2004017129 Feb 2004 WO
WO 2004021323 Mar 2004 WO
WO 2004027503 Apr 2004 WO
Related Publications (1)
Number Date Country
20020186229 A1 Dec 2002 US
Provisional Applications (4)
Number Date Country
60290086 May 2001 US
60290087 May 2001 US
60290143 May 2001 US
60313054 Aug 2001 US
Continuation in Parts (1)
Number Date Country
Parent 10051612 Jan 2002 US
Child 10150394 US