a shows, in accordance with some embodiments of the invention, a representation of a 24-bit pixel containing 8-bit red, green, and blue components;
b shows, in accordance with some embodiments of the invention, a representation of an 18-bit pixel containing 6-bit red, green, and blue components;
a shows, in accordance with some embodiments of the invention, a flowchart illustrating a method for spatially dithering a pixel;
b shows, in accordance with some embodiments of the invention, a flowchart further detailing the method for spatially dithering a pixel shown in
c shows, in accordance with some embodiments of the invention, a flowchart illustrating an alternative method for spatially dithering a pixel;
Certain terms are used throughout the following description and claims to refer to particular system components and configurations. As one skilled in the art will appreciate, companies may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . ”. Also, the term “couple” or “couples” is intended to mean either an indirect or direct connection. Thus, if a first device couples to a second device, that connection may be through a direct connection, or through an indirect connection via other devices and connections. Furthermore, the term “information” is intended to refer to any data, instructions, or control sequences that may be communicated between components of a device or between devices. For example, if information is sent between two components, data, instructions, control sequences, or any combination thereof may be sent between the two components.
In accordance with some embodiments of the invention, a first pixel containing at least one color component is provided. A dither addend is determined and added to the color component. The color component is then rounded to a second size. By applying this process to a plurality of pixels in an image, pixel storage size may be reduced and the image may appear to contain more colors than are capable of being displayed for the pixel storage size. The dither addend for each pixel may be determined in response to determining a display position of the pixel. The image may be a still image or a video image.
In some embodiments of the invention, a first frame for displaying the first pixel is provided. The dither addend may correspond to the first frame. The first pixel may also be displayed in one or more additional frames, and additional dither addends may be determined corresponding to the additional frames. The dither addend and the additional dither addends may be different from each other. By applying this process to a plurality of pixels in a plurality of frames, pixel storage size may be reduced and the frames of images may appear to contain more colors than are capable of being displayed for the pixel storage size. The dither addend for each pixel in each frame may also be determined in response to determining a display position of the pixel.
In some embodiments of the invention, a first pixel containing at least one color component is provided. A dither addend is determined, and the color component is rounded to a second size. The dither addend, which may be a binary value of 0 or 1, may then be added to the color component. By applying this process to a plurality of pixels in an image, pixel storage size may be reduced and the image may appear to contain more colors than are capable of being displayed with that pixel storage size. The dither addend for each pixel may be determined in response to determining a display position of the pixel.
Referring to a system 100 in
Image information may consist of rows of pixels configured to display images, such as pictures, text, and frames of video, when transferred to display device 160.
b, in accordance with some embodiments of the invention, shows an 18-bit pixel 250 containing six bits for the red 255, green 260, and blue 265 components. Pixels may also be represented by 16 bits, 12 bits, more than 24 bits, and so on. A 12-bit pixel, for example, may represent 4,096 different colors with four bits representing each red, green, and blue component. A 16-bit pixel may represent 65,536 different colors with five bits representing each red and blue component, and six bits representing the green component. A 24-bit pixel may represent 16,777,216 different colors.
Returning to
Dithering devices 110a-c may reduce the time of pixel transfer in system 100 and may thus reduce bus 130 bandwidth necessary for pixel transfer, reduce storage requirements in memory device 135, reduce image processing times, and decrease power consumption involved in image transfer. Dithering devices 110a-c may contain digital logic circuitry or analog circuitry. In some embodiments of the invention, dithering devices 110a-c may use software or a combination of software and hardware to perform the operations described above and below.
For example, camera controller 120 may pass 24-bit pixels (see
Dithering device 110a in DMA controller 115 may pass pixels transferred between components in system 100 through the dithering filter and reduce the storage size of the dithered pixels. For example, peripheral device 140 may be a universal serial bus (USB) port connected to a personal computer. DMA controller 115 may be capable of transferring information from the USB port to memory device 135. The DMA controller 115 may pass image information containing pixels to dithering device 110a, and dithering device 110a may pass the pixels through the dithering filter and reduce the storage size of the pixels. DMA controller 115 then transfers the dithered pixels to memory device 135.
In some embodiments of the invention, display controller 125 may also contain dithering device 110c. Dithering device 110c may receive pixels from memory device 135, pass the pixels through the dithering filter, and reduce the pixel storage size to a size suitable for display on display device 160. For example, display controller 125 may receive image information from memory device 135 for display on display device 160. The image information from memory device 135 may contain 18-bit pixels and display device 160 may only be capable of displaying 12-bit pixels. The dithering device 110c filters the 18-bit pixels and reduces the size of the dithered pixels to 12 bits. Thus, display device 160 may display the image information from memory device 135.
In a portable electronic device, such as a laptop computer, music player, personal digital assistant (PDA), and so on, dithering devices 110a-c in system 100 may reduce bus 130 bandwidth necessary for pixel transfer, reduce storage requirements in memory device 135, reduce image processing times, and thereby decrease power consumption involved in image transfer without significantly reducing the quality of the image to the human eye.
Turning now to
In some embodiments of the invention, the spatial dithering process described above may be applied to two-by-two blocks of pixels in an image. Dither addends for each neighboring pixel in the two-by-two blocks may be different from each other. By applying this process to a plurality of pixel blocks in an image, pixel storage size may be reduced and the image may appear to contain more colors than are capable of being displayed for the pixel storage size.
Turning now to
In accordance with some embodiments of the invention,
As shown in block 311, a dither addend is calculated using the X0 and Y0 values representing the least significant bit of the horizontal display position of the pixel and the least significant bit of the vertical display position of the pixel, respectively. In some embodiments of the invention, the dither addend is calculated using Formula 1 below:
Dither Addend=Y0+((X0⊕Y0)<<1) Formula 1
In Formula 1, the dither addend is equal to Y0 added to the one-bit-left-shifted result, represented by the symbol “<<” followed by the number one, of an exclusive or (XOR) function on X0 and Y0. The XOR function output is detailed in Table 1 below for different X0 and Y0 input values:
The values for the dither addend for different X0 and Y0 values using Formula 1 are shown in Table 2 below:
When X0 equals 0 and Y0 equals 1, the dither addend equals 11b and so on. In some embodiments of the invention, the dither addend may alternatively be selected from Table 2, as shown in block 312. For example, values for the dither addend may be stored in a lookup table, and the values may be accessed based on the X0 and Y0 values of the pixel. In some other embodiments of the invention, the dither addend values may be hardwired or hardcoded to the values shown in Table 2.
In some other embodiments of the invention, the dither addend values in Table 2 may be rotated clockwise or counterclockwise by one, two, or three values. For example, Table 3 below represents the dither addend values in Table 2 rotated clockwise by one value:
As shown in block 315, the pixel is separated into red, green, and blue components. In some embodiments of the invention, the pixel may contain a gray component or other color components (not shown in
Turning now to
The dither addend calculated 311 or selected 312 in
As shown in block 520, if the result of adding the dither addend to the most significant bit of the color component to be removed is greater than the maximum intensity the pixel component is capable of displaying, the color component is set to the maximum intensity value. For example, if the value of a red component of an 18-bit pixel is 111111b and a dither addend of 11b is added to two least significant bits of the red component, the component is set to 11111b, the maximum intensity value for a 6-bit component, rather than 1000001b, which the component is incapable of storing.
As described in block 525, the least significant bits of the color component are truncated to create a filtered component. Returning to the 18-bit pixel to 12-bit pixel example above, the two least significant bits of each color component are removed in block 525 to produce the 12-bit pixel containing three 4-bit components. In some embodiments of the invention, each color component from the 18-bit pixel may be right shifted by two bits to reduce the pixel size after adding the dither addend value. The filtered component is then outputted in block 530 and combined with the remaining color components in
In some embodiments of the invention, the process illustrated by the flowcharts shown in
As shown in block 611, the dither addend is calculated as 11b using Formula 1 and the XO and Y0 values. In some embodiments of the invention, dither addend is selected from Table 2 using the X0 and Y0 values in block 612. Once the dither addend is determined, the 24-bit pixel is separated into 8-bit red, green, and blue components in blocks 615, 620, and 625, respectively. The dither addend is added to the most significant bits of the least significant bits to be removed from each color component, as shown in blocks 630, 635, and 640. Thus, for example, the dither addend value of 11b is added to two least significant bits of the red component in block 630 to produce an output of 01110000b.
Dithering device 110b then removes two least significant bits from each pixel component in blocks 645, 650, and 655, reducing each color component to 6 bits. In some embodiments of the invention, the color components may be right shifted by two bits to remove the least significant bits of each color component. The 6-bit red, green, and blue components may be combined to form an 18-bit filtered pixel in block 660. The 18-bit pixel shown in block 660, 011100100111001110b, represents a light green color similar to the light green color of the 24-bit pixel in block 605. The filtered 18-bit pixel is stored in memory device 135. Dithering device 110b then receives the next pixel from the image from camera device 155 and begins operation on the pixel at block 600.
Adding the dither addend value to each color component and removing the least significant bits of each color component in dither device 110b changes the pixel color intensity in the image from camera device 155 in a pattern that causes the image to appear to contain more colors than are capable of being displayed by an 18-bit pixel. Thus, the dithering device 110b reduces pixel storage size without reducing the quality of the image to the human eye. As described above, reducing the pixel storage size of the image stored in memory device 135 reduces bus 130 bandwidth necessary for image transfer, reduces storage requirements in memory device 135, reduces image processing times, and decreases power consumption involved in image transfer.
Referring to
In the flowchart shown in
The dither addends are selected from Table 4a when the two least significant bits of a color component are equal to 00b. Table 4b is used when the two least significant bits of a color component are equal to 01b. Table 4c is used when the two least significant bits of a color component are equal to 10b. Table 4d is used when the two least significant bits of a color component are equal to 11b. For example, a dither addend for a red color component with a value of 01101010b may be selected from Table 4c based on the two least significant bits. If the display position of the pixel containing the red color component is in an odd row and an even column, the dither addend is a 1. Thus, the dither addend value is added to the red component once the two least significant bits are removed to produce a value of 011011b.
In some embodiments of the invention, Tables 4a-d may be used for dithering pixel conversions of other sizes, such as converting 24-bit pixels to 12-bit pixels and so on. As described above, Tables 4a-4d may be used to select dither addend values based on the display position of the pixel and the values of the most significant bits of the least significant bits to be removed from the pixel when rounded.
In some embodiments of the invention, pixel color intensity in an image may change according to a specific pattern that changes over time, causing the image to appear to contain more colors than are capable of being displayed for the pixel storage size when viewed by the human eye. This may be described as temporal dithering. Turning now to
A filter x is determined in block 710. As described below, filter x indicates which dither addend formula to use when filtering components of a pixel received in block 715. The filter x value may vary based on the frame number of the frame containing the pixel. In some embodiments of the invention, filter x is determined based on the value of N modulo a frame rate mode, where N represents the frame number of frame N and the frame rate mode represents the number of different dither addend formulas. For example, in some embodiments of the invention, dithering device 110 may use a frame rate mode of one, representing one dither addend formula to use to filter pixel components received in different frames. In some other embodiments, dithering device 110 may use a frame rate mode of four, representing four different dither addend formulas to use to filter pixel components received in different frames.
As shown in block 715, a pixel may be received from frame N. A least significant bit of a horizontal display position of the pixel is assigned to X0, and a least significant bit of a vertical display position of the pixel is assigned to Y0, as shown in block 720.
As shown in block 721, a dither addend value is calculated using the XO and Y0 values. The dither addend is calculated using the dither addend formula selected from Table 5 below according to the filter x value:
If the filter x value is determined as 3, for example, the dither addend equals X0 added to a one-bit-left-shifted result of an exclusive or (XOR) function on Y0 and the complement of X0. The XOR function is detailed in Table 1. The filter x value may change for each frame of information received in block 705.
In some embodiments of the invention, the dither addend formula associated with one filter x value may be switched with the dither addend formula associated with another filter x value. In some other embodiments of the invention, dithering device 110 may contain more than four filter x values and more than four dither addend formulas.
As shown in block 722, in some embodiments of the invention, the dither addend may be selected from a table (not shown) representing the dither addend output values for different filter x, Y0, and X0 values. For example, values for dither addends corresponding to various filter x, Y0, and X0 values may be stored in a lookup table. In some other embodiments of the invention, the dither addend values may be hardwired or hardcoded to the values described above.
As shown in block 716, the pixel is separated into red, green, and blue components. Each component is filtered at block 725, as illustrated in
In some embodiments of the invention, the process illustrated by the flowchart shown in
Those of skill will appreciate that the various illustrative logical blocks, modules, devices, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To illustrate clearly this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Those of skill in the art may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of is the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
The benefits and advantages that may be provided by the present invention have been described above with regard to specific embodiments. These benefits and advantages, and any elements or limitations that may cause them to occur or to become more pronounced are not to be construed as critical, required, or essential features of any or all of the claims.
While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.
Number | Date | Country | Kind |
---|---|---|---|
06290886.8 | May 2006 | EP | regional |