The present disclosure relates generally to processing of image data for an electronic display and, more particularly, to dynamic dithering.
This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present techniques, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Many electronic displays, particularly those associated with portable electronic devices, may provide a relatively lower bit-depth than may be used internally by an associated electronic device. For example, an electronic device may operate on image data of 10 bits, but its associated electronic display may only be capable of displaying image data of 6 bits. To obtain lower-bit-depth image data from higher-bit-depth image data, an electronic device typically may not simply discard the least significant bits of the relatively higher-bit-depth image data, as doing so could result in a loss of image information. Instead, the electronic device may use dithering to obtain lower-bit-depth image data, as dithering may conserve the information contained in the least significant bits by distributing this information to other nearby pixels during image processing.
Generally speaking, dithered image data may be pleasing to the eye and may represent a good approximation of the original higher bit-depth image data. Indeed, when certain dithering techniques (e.g., Floyd-Steinberg dithering) are used on certain image data (e.g., photographic images or noisy image data), the resulting dithered image data may be difficult to distinguish from the original higher bit-depth image data. However, when these dithering techniques are employed with certain other image data (e.g., non-noisy or relatively uniform image data), the resulting dithered image data may sometimes contain unsightly artifacts, which may appear like grains of sand in the dithered image.
A summary of certain embodiments disclosed herein is set forth below. It should be understood that these aspects are presented merely to provide the reader with a brief summary of these certain embodiments and that these aspects are not intended to limit the scope of this disclosure. Indeed, this disclosure may encompass a variety of aspects that may not be set forth below.
Embodiments of the present disclosure relate to dynamic dithering. In particular, performing purely spatial dithering, such as Floyd-Steinberg dithering, may sometimes produce a lower-bit-depth image with unsightly artifacts. Dynamic dithering, as disclosed herein, may be used to make such artifacts essentially invisible to the human eye. Such dynamic dithering may involve periodically varying a rounding threshold value used by a dithering component of an electronic device. This rounding threshold value may represent a threshold value against which certain least significant bits (e.g., bits 0-4 of 10-bit image data that is being reduced to 6 bits) that are removed during dithering may be tested. The remaining most significant bits may be rounded up or down depending on whether the least significant bits that have been removed are greater than, equal to, or less than the rounding threshold value.
By varying the rounding threshold value periodically (e.g., for each frame of image data), the dithering component of the electronic device may output a slightly different frame of dithered image data each time the rounding threshold value changes, even if the input image data remains the same. As such, any artifacts in one location of the output dithered image data at one moment may, at the next moment, be in a different location or even be gone altogether. As a result, image artifacts may not remain in place for too many successive frames displayed on the electronic display, becoming essentially invisible to most users.
By way of example, an electronic device according to an embodiment may include image processing circuitry that operates on higher-bit-depth image data and a display panel that displays lower-bit-depth image data. To obtain the lower-bit-depth image data, the image processing circuitry may perform dynamic dithering on the higher-bit-depth image data. Such dynamic dithering may involve dithering frames of the higher-bit-depth image data based at least in part on respective rounding threshold values.
Various refinements of the features noted above may exist in relation to various aspects of the present disclosure. Further features may also be incorporated in these various aspects as well. These refinements and additional features may exist individually or in any combination. For instance, various features discussed below in relation to one or more of the illustrated embodiments may be incorporated into any of the above-described aspects of the present disclosure alone or in any combination. The brief summary presented above is intended only to familiarize the reader with certain aspects and contexts of embodiments of the present disclosure without limitation to the claimed subject matter.
Various aspects of this disclosure may be better understood upon reading the following detailed description and upon reference to the drawings in which:
One or more specific embodiments of the present disclosure will be described below. These described embodiments are only examples of the presently disclosed techniques. Additionally, in an effort to provide a concise description of these embodiments, all features of an actual implementation may not be described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers' specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure.
When introducing elements of various embodiments of the present disclosure, the articles “a,” “an,” and “the” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. Additionally, it should be understood that references to “one embodiment” or “an embodiment” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features.
As mentioned above, electronic devices often may operate on relatively higher bit-depth image data (e.g., 8-10 bits), but electronic displays used by such electronic devices may only be capable of displaying a lower bit-depth (e.g., 6-8 bits). Since merely discarding the least significant bits of the pixels of image data could result in a loss of image information, an electronic device may perform a dithering technique (e.g., Floyd-Steinberg) to obtain lower-bit-depth image data. Such a dithering technique may preserve much of the image information of the higher-bit-depth image data by distributing the difference (i.e., an error signal) between lower bit-depth pixels that have been rounded up or down and the original higher-bit-depth image data of one pixel to other nearby pixels.
Performing spatial dithering, such as Floyd-Steinberg dithering, may sometimes produce a lower-bit-depth image with unsightly artifacts. As such, present embodiments relate to dynamic dithering that may be used to make such artifacts essentially invisible to the human eye. As disclosed herein, dynamic dithering may involve periodically varying a rounding threshold value used by a dithering component of an electronic device. This rounding threshold value may represent a threshold value against which certain least significant bits (e.g., bits 0-4 of 10-bit image data that is being reduced to 6 bits) that are removed during dithering may be tested. The remaining most significant bits may be rounded up or down depending on whether the least significant bits that have been removed are greater than, equal to, or less than the rounding threshold value.
By varying the rounding threshold value periodically (e.g., for each frame of image data), the dithering component of the electronic device may output a slightly different frame of dithered image data each time the rounding threshold value changes, even if the input image data remains the same. As such, any artifacts in one location of the output dithered image data at one moment may, at the next moment, be in a different location or even be gone altogether. As a result, image artifacts may not remain in place for too many successive frames displayed on the electronic display, becoming essentially invisible to most users. This form of dithering, in which the rounding threshold value is periodically varied, is generally referred to herein as “dynamic dithering.”
With the foregoing in mind, a general description of suitable electronic devices for performing the presently disclosed dynamic dithering techniques is provided below. In particular,
Turning first to
By way of example, the electronic device 10 may represent a block diagram of the notebook computer depicted in
In the electronic device 10 of
The display 18 may be a touch-screen display, which may enable users to interact with a user interface of the electronic device 10. The display 18 may be any suitable type of display, such as a liquid crystal display (LCD), plasma display, a digital light processing (DLP) projector, an organic light emitting diode (OLED) display, and so forth. In general, the display 18 may display image data of a relatively lower bit-depth than is generally operated on by the data processing circuitry (e.g., the processor(s) 12 or the image processing component 20) of the electronic device 10. By way of example, the processor(s) 12 may operate on 8- or 10-bit image data, and the display 18 may display 6- or 8-bit image data. In at least one embodiment of the electronic device 10, the processor(s) 12 may operate on 10-bit image data and the display 18 may be capable of displaying 6-bit image data.
Because the display 18 may display image data of a relatively lower bit-depth (e.g., 6 bits) than generally operated on by the data processing circuitry of the electronic device 10 (e.g., 10 bits), the image processing component 20 may reduce the bit-depth of such image data from the relatively higher bit-depth to the relatively lower bit-depth for display on the display 18. It should be noted that the image processing component 20 may represent a hardware image processing pipeline or instructions running on the processor(s) 12, or some combination of both. Because simply discarding the least significant bits of the higher-bit-depth image data to obtain lower-bit-depth image data could result in a perceptible loss of image information, the image processing component 20 may dither the higher-bit-depth image data to obtain the lower-bit-depth image data. The image processing component 20 may employ any suitable dithering algorithm, including, for example, Floyd-Steinberg dithering. As will be discussed further below, such dithering may involve removing some least significant bits of pixels of the higher-bit-depth image data (e.g., the lowest 4 bits of 10) and rounding the remaining value represented by the most significant bits (e.g., the highest 6 bits of 10) up or down, depending on whether the least significant bits that were removed are less than, equal to, or greater than a rounding threshold value, to produce lower bit-depth pixel data for display on the display 18. Thereafter, the difference between the original image data and the rounded image data may be distributed to other nearby pixels. By spreading the information from the least significant bits that were removed to other pixels, more of the information of the higher-bit-depth image data may be conserved, and the resulting lower-bit-depth image data may be more faithful to the original higher-bit-depth image data than if the least significant bits were simply discarded.
It should be noted that dithering the higher-bit-depth image data to produce lower-bit-depth image data for display on the display 18 may sometimes produce unsightly artifacts. These artifacts may appear, for example, like grains of sand in the resulting lower-bit-depth image data. If the rounding threshold value were to remain the same for some number of consecutive identical frames of image data, the artifacts may remain in the same place on the display 18 where a user may notice them. To prevent such artifacts from appearing in the same place for an extended period of time when multiple consecutive identical frames of image data are dithered, the rounding threshold value periodically may be varied. In some embodiments, the rounding threshold value may be varied on a frame-by-frame basis, though other periodic changes are envisaged (e.g., every other frame, every third frame, every fourth frame, and so forth, or every half second, every second, and so forth). The image processing component 20 may dither the higher-bit-depth image data into lower-bit-depth image data in a slightly different way each time the rounding threshold value is changed. Thus, by varying the rounding threshold value used by the image processing component 20 while dithering, unsightly artifacts in the resulting lower-bit-depth image data may be less likely to appear in the same location for an extended period of time.
The input structures 22 of the electronic device 10 may enable a user to interact with the electronic device 10 (e.g., pressing a button to initiate an image capture sequence). The I/O interface 24 may enable electronic device 10 to interface with various other electronic devices, as may the network interfaces 26. The network interfaces 26 may include, for example, interfaces for a personal area network (PAN), such as a Bluetooth network, for a local area network (LAN), such as an 802.11x Wi-Fi network, and/or for a wide area network (WAN), such as a 3G cellular network. The power source 28 of the electronic device 10 may be any suitable source of power, such as a rechargeable lithium polymer (Li-poly) battery and/or an alternating current (AC) power converter.
The electronic device 10 may take the form of a computer or other type of electronic device. Such computers may include computers that are generally portable (such as laptop, notebook, and tablet computers) as well as computers that are generally used in one place (such as conventional desktop computers, workstations and/or servers). In certain embodiments, the electronic device 10 in the form of a computer may be a model of a MacBook®, MacBook® Pro, MacBook Air®, iMac®, Mac® mini, or Mac Pro® available from Apple Inc. By way of example, the electronic device 10, taking the form of a notebook computer 30, is illustrated in
The handheld device 34 may include an enclosure 36 to protect interior components from physical damage and to shield them from electromagnetic interference. The enclosure 36 may surround the display 18, which may display indicator icons 38. The indicator icons 38 may indicate, among other things, a cellular signal strength, Bluetooth connection, and/or battery life. The I/O interfaces 24 may open through the enclosure 36 and may include, for example, a proprietary I/O port from Apple Inc. to connect to external devices.
User input structures 40, 42, 44, and 46, in combination with the display 18, may allow a user to control the handheld device 34. For example, the input structure 40 may activate or deactivate the handheld device 34, the input structure 42 may navigate user interface 20 to a home screen, a user-configurable application screen, and/or activate a voice-recognition feature of the handheld device 34, the input structures 44 may provide volume control, and the input structure 46 may toggle between vibrate and ring modes. As mentioned above, the display 18 may display relatively lower-bit-depth image data (e.g., 6 bits) than generally operated on by the handheld device 34 (e.g., 8 or 10 bits). Because the handheld device 34 may dither higher-bit-depth image data to obtain such lower-bit-depth image data, periodically varying the rounding threshold value used in dithering, the image data displayed on the display 18 may appear largely free of unsightly image processing artifacts.
Having provided some context with regard to various forms that the electronic device 10 may take and now turning to
A pixel group 50 is depicted in greater detail and includes four adjacent pixels 52, 54, 56, and 58. In the depicted embodiment, each pixel of the display 18 may include three sub-pixels capable of displaying a red (R), a green (G), and a blue (B) color. The human eye is capable of perceiving a particular RGB color combination and translating the combination into a certain color. By varying the individual RGB intensity levels, a number of colors may be displayed by each individual pixel. For example, a pixel having a level of 50% R, 50% G, and 50% B may be perceived colored gray, while a pixel having a level of 100% R, 100% G, and 0% B may be perceived as colored yellow.
The number of colors that a pixel is capable of displaying is dependent on the hardware capabilities of the display 18. For example, a display 18 with a 6-bit color depth for each sub-pixel is capable of producing 64 (26) intensity levels for each of the R, G, and B color components. The number of bits per sub-pixel, e.g. 6 bits, is referred to as the pixel depth. At a pixel depth of 6 bits, 262,144 (26×26×26) color combinations are possible, while at pixel depth of 8 bits, 16,777,216 (28×28×28) color combinations are possible. Although the visual quality of images produced by an 8-bit pixel depth display 18 may be superior to the visual quality of images produced by a display 18 using 6-bit pixel depth, the cost of the 8-bit display 18 is also higher. Accordingly, it would be beneficial to apply imaging processing techniques, such as the techniques described herein, to reduce the bit-depth of a source image to produce a lower bit-depth output image that faithfully represents the original higher bit-depth source image when using a lower pixel depth display 18. Accordingly, it would also be beneficial to apply imaging processing techniques that are capable of improved visual representation of any number of colors.
The image processing component 20 of the electronic device 10 may perform dynamic dithering on such an N×M array of pixels 48 of higher-bit-depth image data (e.g., 10-bit image data) to obtain lower-bit-depth image data (e.g., 6-bit image data) that can be displayed on the display 18. For example, as shown in
Before being output to the display 18, the corrected image data may be input data 70 for processing by a dithering component 72. As represented in the example of
As will be discussed below, the rounding threshold value 76 may be varied from time to time. Doing so may prevent unsightly artifacts from appearing in one place in output dithered image data 78 for any noticeable period of time. In one example, the rounding threshold value 76 may be changed every frame based on the vertical sync interrupt 64. However, the rounding threshold value 76 may be varied at other times, such as every other frame, every third frame, every fourth frame, and so forth. As will be discussed further below, the rounding threshold component 74 may be used by the dithering block 72 to alter the operation of the dithering performed on the input image data 70. Thus, when the dithering components 72 outputs dithered image data 78 of a relatively lower bit-depth (e.g., 6 bits) for display on the display 18, even if the subsequent frames of source image data 60 do not change, the dithered image data 78 may vary slightly so that any unsightly image artifacts in the dithered image data 78 will not remain in the same location every time.
The dithering component 72 appears in greater detail in
The most significant bits (e.g., the six most significant bits) of the initial pixel value 94 that are rounded up or down by the rounding threshold component 74 may be output as the lower bit-depth dithered image data 78 (e.g., 6-bit image data). This dithered image data 78 may not only be output to the display 18, but also may be used to determine an error signal that will be distributed to other nearby pixels. Specifically, the dithered image data 78 may be subtracted from the initial pixel value 94 in a comparator 96 to produce an error value 98. This error value 98 represents an amount of image data precision that has been removed from the initial pixel value 94 after passing through the rounding threshold component 74. To conserve this information, the error value 98 may be diffused to other nearby pixels using an error diffusion filter component 100. The error diffusion filter component 100 may output the diffused error 92 to the appropriate input image data 70 as it arrives in the dithering component 72.
The error diffusion filter component 100 shown in
In another embodiment, the error signal E1 may be divided so that one or more neighboring pixels 126, 128, and 130 receive different proportions of the error. For example, half the error signal (i.e., E1/2) may be added to the pixel 126, and one quarter of the error signal (i.e., E1/4) may be added to the neighboring pixels 128 and 130. Assuming raster-order processing, such a disproportionate subdivision passes a larger proportion of the error to the neighboring pixel next in line to enter the dithering component 72 as input image data 70. Once the error signal E1 is diffused, the next image area 82 (e.g., pixel) may be processed, as described in more detail with respect to
Turning to
As discussed above with reference to
In the example of
In the example of
The rounding threshold selector component 77 may vary the rounding threshold occasionally (e.g., every frame, every other frame, every third frame, or so forth). In one example illustrated by
Using the sequence 160 illustrated in
As mentioned above, the electronic device 10 may perform such dynamic dithering by varying the rounding threshold value 76 supplied to the image processing component 20 on a periodic basis. For example, in the flowchart 170 of
Thereafter, the dithering component 72 may dither the input pixel data 70 using the rounding threshold value 76 to obtain dithered image data 78 (block 176). This lower bit-depth dithered image data 78 then may be output to be displayed on the display 18 (block 178). When a new frame of lower-bit-depth source image data 60 is provided to the image processing component 20 and a new dynamic rounding value is also supplied (block 174). It should be appreciated that when the method of the flowchart 170 is carried out over all of the possible combinations of the threshold values 154 of the rounding threshold values 76, even though all of the frames of source image data 60 may remain the same, all possible combinations of dithering such source image data 60 may occur in a balanced fashion.
Technical effects of the present disclosure include a manner of dynamic dithering of higher-bit-depth image data into lower-bit-depth image data that may be more pleasing to users than traditional spatial dithering. By performing the dynamic dithering techniques disclosed herein, an electronic device may use an electronic display with lower-bit-depth display capabilities without sacrificing the user experience. Such a lower-bit-depth display may be less costly, allowing for lower-priced electronic devices.
The specific embodiments described above have been shown by way of example, and it should be understood that these embodiments may be susceptible to various modifications and alternative forms. It should be further understood that the claims are not intended to be limited to the particular forms disclosed, but rather to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this disclosure.