PATENT DOCUMENT

Publication Number: US-8760465-B2
Application Number: US-201113085186-A
Country: US
Kind Code: B2

Title: Method and apparatus to increase bit-depth on gray-scale and multi-channel images (inverse dithering)

Abstract:
The present disclosure relates to the use of inverse dithering of color or grey-scale images. In certain embodiments, an image area may be selected having a center pixel. A predictive value of the image area may be found by averaging the values of the pixels in the image area. This predictive value may be compared to the center pixel&#39;s real value. A difference between the real value and the predictive value may then be found and used to diffuse the energy removed from the center pixel to neighboring pixels. By inverse dithering images using an energy diffusion approach, the images may be presented as having a more visually appealing display, even in situations where the images may undergo further edge enhancements.

Claims:
What is claimed is: 
     
       1. An inverse-dithering method for processing a source dithered image comprising:
 assigning one or more adjacent dithered pixels to an image area; 
 determining a prediction pixel value based on an average pixel value of the image area; 
 determining a difference between the prediction pixel value and a color value of a pixel of the image area; 
 assigning the difference between the prediction pixel value and the color value to a diffusion value; 
 limiting the diffusion value during inverse dithering of the source dithered image by keeping the diffusion value inside of a quantization range; 
 determining an energy by subtracting the diffusion value from the color value; and 
 distributing the energy to adjacent pixels. 
 
     
     
       2. The method of  claim 1 , wherein the quantization range comprises between {−Q . . . +Q} where N comprises a number of bits lost in a quantization of the dithered pixels, −Q=−2 N , and +Q=2 N −1. 
     
     
       3. The method of  claim 1 , wherein the energy distribution comprises an equal energy distribution, a weighted energy distribution, a random weight distribution, or combination thereof. 
     
     
       4. The method of  claim 1 , wherein the image area comprises a 3×3 pixel image area. 
     
     
       5. The method of  claim 1 , wherein the prediction pixel value comprises an average value derived by summing a color value for all pixels in the image area and dividing the sum by a number of pixels in the image area. 
     
     
       6. An article of manufacture comprising non-transitory computer-readable medium comprising code configured to:
 analyze an image data from an image area of a dithered image; 
 inverse dither the image data by diffusing an energy from a center pixel of the image area into surrounding pixels; 
 transmit the inverse dithered image to an electronic display or to a memory, wherein the code configured to inverse dither the image data by diffusing an energy from a center pixel of the image area comprises code configured to preserve real edges in the image area and to remove false edges in the image area by, during inverse dithering of the dithered image, limiting the energy diffused to a value inside of a quantization range. 
 
     
     
       7. The non-transitory computer-readable medium of  claim 6 , wherein the code configured to analyze the image data comprises code configured to use decompose the image data into RGB color components. 
     
     
       8. The non-transitory computer-readable medium of  claim 6 , wherein the code configured to inverse dither the image data comprises code configured to spatially inverse dither the image data, temporally inverse dither the image data, or a combination thereof. 
     
     
       9. The non-transitory computer-readable medium of  claim 6 , wherein the code configured to inverse dither the image data by diffusing an energy from a center pixel of the image area comprises code configured to preserve real edges in the image area and to remove false edges in the image area. 
     
     
       10. The non-transitory computer-readable medium of  claim 6 , wherein the quantization range comprises between {−Q+ . . . +Q} where N comprises a number of bits lost in quantization of the dithered image, −Q=−2 N , and +Q=2 N −1. 
     
     
       11. A system comprising:
 an image processing device comprising an input port configured to receive a dithered image from an electronic device, and an output port configured to transmit an inverse dithered image to an electronic display, wherein the dithered image is converted into the inverse dithered image by diffusing an energy in the dithered image, and wherein the energy is limited, during inverse dithering of the dithered image, to a value inside of a quantization range. 
 
     
     
       12. The system of  claim 11 , wherein the input port comprises a high definition multimedia interface (HDMI) port, a digital visual interface (DVI) port, a DisplayPort, a Mini DisplayPort, a video graphics array (VGA) port, a dock connector port, or a combination thereof. 
     
     
       13. The system of  claim 11 , wherein the output port comprises an S-video port, an HDMI port, a composite video port, a component video port, a VGA port, a DVI port, a DisplayPort, a Mini DisplayPort, or a combination thereof. 
     
     
       14. The system of  claim 11 , wherein the image processing device comprises a dongle, a cable, a housing, or a combination thereof. 
     
     
       15. The system of  claim 11 , wherein the electronic device comprises a laptop computer, a desktop computer, a mobile phone, a digital media player, or a media distribution system. 
     
     
       16. The system of  claim 11 , wherein the image processing device comprises a processor configured to convert the dithered image into the inverse dithered image by diffusing the energy in the dithered image. 
     
     
       17. The system of  claim 16 , wherein the processor is configured to diffuse the energy in the dithered image by computing a prediction pixel value P for a pixel based on an average of neighboring pixel values, comparing the prediction pixel value P to a real value of R of the pixel, creating a diffusion value D by computing the difference between P and R, limiting the diffusion value D to the quantization range comprising {−Q . . . +Q} of bits lost in quantization of the dithered image, subtracting the range-limited diffusion value D from P, and adding energy removed from the pixel back to the inverse dithered image. 
     
     
       18. A method for inverse dithering a dithered image comprising:
 selecting a dithered image area surrounding a pixel; 
 averaging a first energy in the image area; 
 calculating a difference between a second energy of the pixel and the first energy in the image area; 
 calculating a limited difference between the second energy of the pixel and the first energy in the image area by restricting the difference between the second energy of the pixel and the first energy in the image area during inverse dithering of the dithered image to a range of values inside of a quantization range; 
 updating pixels in the image area by using the limited difference. 
 
     
     
       19. The method of  claim 18 , wherein the quantization range comprises between {−Q . . . +Q} where N comprises a number of bits lost in quantization of the dithered image area, −Q=−2 N , and +Q=2 N −1. 
     
     
       20. The method of  claim 18 , wherein averaging the first energy in the image area comprises computing an average of a color or grey-scale values in the image area. 
     
     
       21. The method of  claim 18 , wherein updating pixels in the image area by using the limited difference comprises adding a portion of the limited differences to each pixel in the image area. 
     
     
       22. A system for inverse dithering a dithered image comprising:
 an averager configured to calculate an average of values in a dithered image area; 
 subtractor configured to calculate a difference between the average calculated by the average and a value of a pixel in the image area; 
 a limiter configured to calculate, during inverse dithering of the dithered image, a range-limited difference based on the difference calculated by the subtractor, wherein the range-limited difference comprises a quantization range; and 
 a diffuser configured to diffuse the range-limited difference into the image area. 
 
     
     
       23. The system of  claim 22 , wherein the average of values in the image area comprises an average of color values in the image area or grey-scale values in the image area. 
     
     
       24. The system of  claim 22 , wherein the quantization range comprises between {−Q . . . +Q} where N comprises a number of bits lost in quantization of the dithered image area, −Q=−2 N , and +Q=2 N −1. 
     
     
       25. The system of  claim 22 , wherein the diffuser uses an equal energy distribution, a weighted energy distribution, a random weight distribution, or combination thereof to diffuse the range-limited difference into the image area.

Description:
BACKGROUND 
     The present disclosure relates generally to image processing and, more specifically, to techniques for inverse dithering images using an energy diffusion approach. 
     This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, 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. 
     In recent years, electronic display devices have become increasingly popular due, at least in part, to such devices becoming more and more affordable for the average consumer. In addition to a number of electronic display devices currently available for desktop monitors and notebook computers, it is not uncommon for digital display devices to be integrated as part of another electronic device, such as a cellular phone, a tablet computing device, or a media player. Further, it is not uncommon for digital devices to be connected to a second electronic display device, such as a television or projector, suitable for providing a larger display area. 
     Certain devices, such as portable devices, may use lower bit displays (e.g., 6-bit displays) to present visual information, and dithering techniques may be used to create the appearance of higher-bit depth (e.g., 8-bit) to the human eye. Additionally, electronic displays are typically configured to output a set number of colors within a color range. In certain cases, a graphical image to be displayed may have a number of colors greater than the number of colors that are capable of being shown by the electronic display. For example, a graphical image may be encoded with a 24-bit color depth (e.g., 8 bits for each of red, green, and blue components of the image), while an electronic display may be configured to provide output images at an 18-bit color depth (e.g., 6 bits for each of red, green, and blue components of the image). 
     Rather than simply discarding least-significant bits, dithering techniques may be used to output a graphical image that appears to be a closer approximation of the original color image. That is, when the dithered image is displayed on the electronic device (e.g., cell phone, laptop, workstation), the dithered image looks substantially the same to the human eye as the original source image. However, although the dithered image is visually pleasing to the human eye on certain displays, other displays may apply image processing techniques, such as edge enhancement techniques which may find “false” edges in the dithered image due to quantization steps performed during dithering. These “false” edges may be amplified during the edge enhancement, resulting in visual artifacts such as halos and/or rings. 
     SUMMARY 
     A summary of certain embodiments disclosed herein is set forth below. 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. 
     The present disclosure generally relates to inverse dithering techniques that may be used to improve the visual quality of dithered color or grey-scale (i.e., grey-level) images on an electronic display. In certain embodiments, an image processing circuitry may connect an electronic device, such as a media player, a cell phone, a laptop, a workstation, a tablet, and so forth, to the electronic display. The image processing circuitry may be provided internally or externally to the electronic device, and the circuitry may be used to transmit image data to internal and external electronic displays, such as built-in screens, external monitors, and televisions. 
     The image processing circuitry may use inverse dithering techniques, including spatial and/or temporal inverse dithering techniques disclosed herein, to process the dithered image data received from the electronic device. Inverse dithering may enable a higher quality visualization of the image data, and may also allow for reduced transmission bandwidth of image data. In certain embodiments, the image processing circuitry use an inverse dithering energy diffusion technique to derive an energy from a pixel and diffuse the energy to neighboring pixels. More specifically, a prediction pixel value P of a dithered image area may be computed based on an average of the neighboring pixel values. The prediction pixel value P may then be compared to a real value of R the pixel, such as the color value c of the pixel. The difference between P and R may be used to create a diffusion value D. The diffusion value D may be limited to a certain range {−Q . . . +Q} based in part on quantization steps used during the initial dithering process so as to preserve true edges in the image. The range-limited diffusion value D may be subtracted from the pixel P. Energy removed from the pixel is then added back to the image. In one embodiment, an equal distribution is used to distribute the removed energy. In other embodiments, a weighted distribution, a random distribution, a weighted-by-filter-kernel distribution, or a weighted-by-directional-filter distribution may be used to distribute the energy. By diffusing some of the energy in the pixel to neighboring pixels, image enhancement algorithms such as edge detection and enhancement may display an inverse dithered image that is more visually pleasing to the human eye and that closely matches the original, undithered image. Additionally, a dithered image having less bits than an original source image may be transmitted and reconstructed through inverse dithering, thus reducing transmission bandwidth. 
     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. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various aspects of this disclosure may be better understood upon reading the following detailed description and upon reference to the drawings in which: 
         FIG. 1  is a simplified block diagram depicting components of an embodiment of an electronic device that includes image processing circuitry configured to implement one or more of the image processing techniques set forth in the present disclosure; 
         FIG. 2  is a front view of the electronic device of  FIG. 1  in the form of a desktop computing device, in accordance with aspects of the present disclosure; 
         FIG. 3  is a front view of the electronic device of  FIG. 1  in the form of a handheld portable electronic device, in accordance with aspects of the present disclosure; 
         FIG. 4  is a simplified block diagram depicting components of an example of graphics processor connect to a timing controller, in accordance with aspects of the present disclosure; 
         FIG. 5  is a simplified block diagram depicting components of embodiments of an electronic device, a display device, and intervening image processing circuitry configured to implement one or more of the image processing techniques set forth in the present disclosure; 
         FIG. 6  is a perspective view of the electronic device, display device, and intervening image processing circuitry of  FIG. 1 , in accordance with aspects of the present disclosure; 
         FIG. 7  shows a graphical representation of an M×N pixel array that may be included a display device, in accordance with aspects of the present disclosure; 
         FIG. 8  is a block diagram illustrating an image signal processing (ISP) logic, in accordance with aspects of the present disclosure; 
         FIG. 9  is a block diagram of an embodiment of an original pixel having a higher pixel depth and a dithered pixel having a lower pixel depth; 
         FIG. 10  is a block diagram of an embodiment of a dithered pixel having a lower pixel depth and an inverse dithered pixel having a higher pixel depth; 
         FIG. 11  is a diagram illustrating an embodiment of dithered and inversed dithered pixels across a true image edge; 
         FIG. 12  is a diagram illustrating an embodiment of an inverse dithering process across a 3×3 image area; 
         FIG. 13  is a diagram illustrating an embodiment of the inverse dithering process of  FIG. 12  across two 3×3 image areas; 
         FIG. 14  is a diagram illustrating an embodiment of an inverse dithering process across a 5×5 image area; 
         FIG. 15  is a block diagram of an embodiment of an inverse dithering system; 
         FIG. 16  is a flow chart illustrating an embodiment of an inverse dithering logic; 
         FIG. 17  is a diagram illustrating an embodiment of a temporally inverse dithered image area; 
         FIG. 18  depicts an embodiment of a source image; 
         FIG. 19  depicts an embodiment of a color cube corresponding to the source image of  FIG. 18 ; 
         FIG. 20  depicts an embodiment of a dithered image based on the source image of  FIG. 18 ; 
         FIG. 21  illustrates an embodiment of a color cube corresponding to the dithered image of  FIG. 20 ; 
         FIG. 22  depicts an embodiment of an inverse dithered image based on the dithered image of  FIG. 20 ; and 
         FIG. 23  illustrates an embodiment of a color cube corresponding to the inverse dithered image of  FIG. 22 . 
     
    
    
     DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS 
     One or more specific embodiments will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are 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&#39; 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. 
     As will be discussed below, the present disclosure relates generally to techniques for processing and displaying image data on an electronic display device. In particular, certain aspects of the present disclosure may relate to techniques for processing images using spatial and/or temporal inverse dithering techniques. Further, it should be understood that the presently disclosed techniques may be applied to both still images and moving images (e.g., video), and may be utilized in any suitable type of electronic display, such as a television, a projector, a monitor, and the like. 
     With the foregoing in mind, it may be beneficial to first discuss embodiments of certain display systems that may incorporate the inverse dithering techniques as described herein. Turning now to the figures,  FIG. 1  is a block diagram illustrating an example of an electronic device  10  that may provide for the processing of image data using one or more of the image processing techniques mentioned above. The electronic device  10  may be any type of electronic device, such as a laptop or desktop computer, a mobile phone, a digital media player, a media distribution system, or the like, that is configured to process and display image data. By way of example only, the electronic device  10  may be a portable electronic device, such as a model of an iPad®, iPod® or iPhone®, available from Apple Inc. of Cupertino, Calif. Additionally, the electronic device  10  may be a desktop or laptop computer, such as a model of a MacBook®, MacBook® Pro, MacBook Air®, iMac®, Mac® Mini, or Mac Pro®, available from Apple Inc. Further, the electronic device  10  may be a media distribution device such as a model of an Apple TV®, available from Apple Inc. 
     Regardless of its form (e.g., portable or non-portable), it should be understood that the electronic device  10  may provide for the processing of image data using one or more of the image processing techniques briefly discussed above, which may include spatial and/or temporal inverse dithering techniques, among others. In some embodiments, the electronic device  10  may apply such image processing techniques to image data stored in a memory of the electronic device  10 . In other embodiments, the electronic device  10  may forward image data to an external circuitry for further image processing, as described in more detail with respect to  FIGS. 4 and 5 . Embodiments showing both portable and non-portable embodiments of the electronic device  10  will be further discussed below with respect to  FIGS. 2 and 3 . 
     As shown in  FIG. 1 , the electronic device  10  may include various internal and/or external components which contribute to the function of the device  10 . The various functional blocks shown in  FIG. 1  may include hardware elements (including circuitry), software elements (including computer code stored on a computer-readable medium) or a combination of both hardware and software elements. For example, in the presently illustrated embodiment, the electronic device  10  may include input/output (I/O) ports  12 , input structures  14 , one or more processors  16 , memory device  18 , non-volatile storage  20 , expansion card(s)  22 , networking device  24 , power source  26 , and display  28 . Additionally, the electronic device  10  may include one or more imaging devices  30 , such as a digital camera. As will be discussed further below, the processor(s)  16  may be configured to implement one or more of the above-discussed image processing techniques. As can be appreciated, image data processed by the processor(s)  16  may be retrieved from the memory  18  and/or the non-volatile storage device(s)  20 , or may be acquired using the imaging device  30 . 
     It should be understood that the system block diagram of the device  10  shown in  FIG. 1  is intended to be a high-level control diagram depicting various components that may be included in such a device  10 . Indeed, as discussed below, the depicted processor(s)  16  may, in some embodiments, include multiple processors, such as a main processor (e.g., CPU), and dedicated image and/or video processors. In such embodiments, the processing of image data may be primarily handled by these dedicated processors, thus effectively offloading such tasks from a main processor (CPU). 
     The input structures  14  may provide user input or feedback to the processor(s)  16 . For instance, input structures  14  may be configured to control one or more functions of electronic device  10 , such as applications running on electronic device  10 . In addition to processing various input signals received via the input structure(s)  14 , the processor(s)  16  may control the general operation of the device  10 . For instance, the processor(s)  16  may provide the processing capability to execute an operating system, programs, user and application interfaces, and any other functions of the electronic device  10 . 
     The processor(s)  16  may include one or more microprocessors, such as one or more “general-purpose” microprocessors, one or more special-purpose microprocessors and/or application-specific microprocessors (ASICs), or a combination of such processing components. For example, the processor(s)  16  may include one or more reduced instruction set (e.g., RISC) processors, as well as video processors, audio processors and/or related chip sets. Additionally, the processors ( 16 ) may include a graphics processor (GPU), as described in more detail below with respect to  FIG. 4 . As will be appreciated, the processor(s)  16  may be coupled to one or more data buses for transferring data and instructions between various components of the device  10 . In certain embodiments, the processor(s)  16  may provide the processing capability to execute source code embodiments capable of employing the dithering techniques described herein. 
     The instructions or data to be processed by the processor(s)  16  may be stored in a computer-readable medium, such as a memory device  18 . The memory device  18  may be provided as a volatile memory, such as random access memory (RAM) or as a non-volatile memory, such as read-only memory (ROM), or as a combination of one or more RAM and ROM devices. In addition, the memory  18  may be used for buffering or caching during operation of the electronic device  10 . For instance, in one embodiment, the memory  18  includes one or more frame buffers for buffering video data as it is being output to the display  28 . 
     In addition to the memory device  18 , the electronic device  10  may further include a non-volatile storage  20  for persistent storage of data and/or instructions. The non-volatile storage  20  may include flash memory, a hard drive, or any other optical, magnetic, and/or solid-state storage media, or some combination thereof. In accordance with aspects of the present disclosure, image processing data stored in the non-volatile storage  20  and/or the memory device  18  may be processed by the image processing circuitry  32  prior to being output on a display. 
     The embodiment illustrated in  FIG. 1  may also include one or more card or expansion slots. The card slots may be configured to receive an expansion card  22  that may be used to add functionality, such as additional memory, I/O functionality, networking capability, or graphics processing capability to the electronic device  10 . The electronic device  10  also includes the network device  24 , which may be a network controller or a network interface card (NIC) that may provide for network connectivity over a wireless 802.11 standard or any other suitable networking standard, such as a local area network (LAN), a wide area network (WAN). 
     The power source  26  of the device  10  may include the capability to power the device  10  in both non-portable and portable settings. The display  28  may be an internal or external display used to present various images generated by device  10 , such as a GUI for an operating system, or image data (including still images and video data). As mentioned above, the image data may include image data acquired using the imaging device  30  or image data retrieved from the memory  18  and/or non-volatile storage  20 . The display  28  may be any suitable type of display, such as a liquid crystal display (LCD), plasma display, or an organic light emitting diode (OLED) display, for example. Additionally, as discussed above, the display  28  may be an internal or an external display. For example, the display  28  may be provided as an internal LCD screen included in the electronic device  10 , or as an external monitor attached to the electronic device  10 . 
     Referring again to the electronic device  10 ,  FIGS. 2 and 3  illustrate various forms that the electronic device  10  may take. As mentioned above, the electronic device  10  may take the form of a computer, including computers that are generally portable (such as laptop, notebook, and tablet computers) as well as computers that are generally non-portable (such as desktop computers, workstations and/or servers), or other type of electronic device, such as handheld portable electronic devices (e.g., a digital media player or mobile phone). In particular,  FIGS. 2 and 3  depict the electronic device  10  in the form of a desktop computer  34  and a handheld portable electronic device  36 , respectively. 
       FIG. 2  further illustrates an embodiment in which the electronic device  10  is provided as the desktop computer  34 . As shown, the desktop computer  34  may be housed in an enclosure  38  that includes a display  28 , as well as various other components discussed above with regard to the block diagram shown in  FIG. 1 . Further, the desktop computer  34  may include an external keyboard and mouse (input structures  14 ) that may be coupled to the computer  34  via one or more I/O ports  12  (e.g., USB) or may communicate with the computer  34  wirelessly (e.g., RF, Bluetooth, etc.). The desktop computer  34  also includes an imaging device  30 , which may be an integrated or external camera, as discussed above. In certain embodiments, the depicted desktop computer  34  may be a model of an iMac®, Mac® mini, or Mac Pro®, available from Apple Inc. 
     As further shown, the display  28  may be configured to generate various images that may be viewed by a user, such as a displayed image  42 . The displayed image  42  may have been generated by using, for example, the inverse dithering techniques described in more detail below. During operation of the computer  34 , the display  28  may display a graphical user interface (“GUI”)  44  that allows the user to interact with an operating system and/or application running on the computer  34 . 
     Turning to  FIG. 3 , the electronic device  10  is further illustrated in the form of portable handheld electronic device  36 , which may be a model of an iPod® or iPhone® available from Apple Inc. The handheld device  36  includes various user input structures  14  through which a user may interface with the handheld device  36 . For instance, each input structure  14  may be configured to control one or more respective device functions when pressed or actuated. By way of example, one or more of the input structures  14  may be configured to invoke a “home” screen or menu to be displayed, to toggle between a sleep, wake, or powered on/off mode, to silence a ringer for a cellular phone application, to increase or decrease a volume output, and so forth. It should be understood that the illustrated input structures  14  are merely exemplary, and that the handheld device  36  may include any number of suitable user input structures existing in various forms including buttons, switches, keys, knobs, scroll wheels, and so forth. In the depicted embodiment, the handheld device  36  includes the display device  28 . The display device  28 , which may be an LCD, OLED, or any suitable type of display, may display various images generated by the techniques disclosed herein. For example, the display  28  may display the image  42 . 
       FIG. 4  is a block diagram illustrating an example of a graphics processor (GPU)  50  that may be communicatively connected to the electronic display  28  through a timing controller (TCON)  14 . In one example, the GPU  50 , TCON  52 , and display  28  are all incorporated inside the electronic device  10  and used for displaying color or grayscale images. In this example, the GPU  50  may first dither an image, and then transmit the dithered image to the TCON  52  through a transmission circuitry  54 . The image may be dithered by the GPU  50  to reduce transmission bandwidth. That is, the dithered image may have less bits than the original undithered image, thus reducing the number of bits used during transmission. Accordingly, very high transmission rates may be used. Indeed, the transmission may include parallel data streams in which multiple streams of image data may be transmitted through the transmission circuitry  54  at over 2.5 gigabits per second per stream. 
     The transmission circuitry  54  may include embedded DisplayPort (eDP) circuitry and/or low voltage differential signal (LVDS) circuitry suitable for high speed transmission of data. The TCON  52  may then receive the data through a reception circuitry  56 . The reception circuitry  56  may also include eDP and/or LVDS circuitry suitable for receiving the high speed data, including parallel data streams. The TCON  52  may then inverse dither the received image data, thus creating an inverse dithered image that is more visually pleasing to the human eye. The resulting inverse dithered image may then be displayed by the electronic display  28 . By dithering the image, transmitting the dithered image, and subsequently inverse dithering the dithered image, high pixel depth images and video may be presented having lower bandwidth transmission requirements. 
     In another example, the GPU  50  may be included in the electronic device  10 , while the TCON  52  is provided as a component of the external electronic display  28  (e.g., television or monitor). In this embodiment, the GPU  50  may first dither the source image, as mentioned above, to reduce transmission bandwidth. The dithered image may then be transmitted to the TCON  52  included in the electronic display  28  through a cable, such as a high definition multimedia interface (HDMI) cable, a DisplayPort (DP) cable, a LVDS cable, a eDP cable, and the like. By transmitting the dithered image instead of the original source image, the transmission bandwidth may be substantially reduced, allowing for high speed transmission of still and video images. The dithered images may then be inverse dithered by the TCON  52  of the electronic display  28 , and presented to a viewer. Inverse dithering the dithered images may result in a display image having substantially the same visual quality as the original source image when viewed by the human eye. 
       FIG. 5  is a block diagram illustrating an example of an electronic device  10  that may be communicatively connected to an external display  28  through an external image processing circuitry  60  suitable for converting images, such as dithered images sent by the electronic display, into inverse dithered images for display by the external display  28 . Indeed, additionally or alternatively to the image processing performed by the processor(s)  16  shown in  FIG. 1  and the TCON  52  shown in  FIG. 4 , the external image processing circuitry  60  may also incorporate the inverse dithering techniques described herein. In certain embodiments, the image processing circuitry  60  may be included in a cable, a dongle, a housing, or other external form suitable for connecting the electronic device  10  to an external display  28 . As mentioned above, the electronic device  10  may be any type of electronic device, such as a laptop or desktop computer, a mobile phone, a digital media player, a media distribution device, or the like, that is configured to process and display image data. Regardless of its form (e.g., portable or non-portable), it should be understood that the electronic device  10  may provide for the processing and/or distribution of image data, which may include dithered image data, among others, to the display  28 . For example, the electronic device  10  may process a graphical image encoded with a 24-bit color depth (e.g., 8 bits for each of red, green, and blue components of the image) and use a dithering technique, such as a Floyd-Steinberg dithering algorithm, to transform the image to an 18-bit color depth image (e.g., 6 bits for each of red, green, and blue components of the image). By using the dithering technique, the lower pixel depth image appears to be a close approximation of the original color image, but uses fewer pixels for storage and transmittal. In certain cases, the electronic display  28  may lack circuitry such as a TCON  52  suitable for inverse dithering image data and instead include circuitry suitable for enhancing image edges. In these displays  28 , if the lower pixel depth image were to be transmitted directly to the electronic display  28 , the electronic display  28  may further process the lower pixel depth image by using, for example, an edge detection and enhancement algorithm. Such an algorithm is suitable for improving the perceived sharpness of certain images. However, many dithered images processed by the edge detection and enhancement algorithm may result in a displayed image having unsightly artifacts such as halos and rings. Such artifacts may result when quantization operations performed during the dithering process are magnified through edge enhancement techniques. 
     The artifacts in the display image may be reduced or eliminated by using the external circuitry  60  to inverse dither the transmitted image. In one embodiment, the dithered image is transmitted from the electronic device  10  to the image processing circuitry  60 . The image processing circuitry  60  includes processor(s)  62  suitable for further processing the dithered image into an inverse dithered image before re-transmittal to the electronic display  28 . The electronic display  28  may then apply image processing techniques, such as edge enhancement algorithms, to the inverse dithered image. Because the quantization of the lower-bit depth image data has been improved in the inverse dithering, the display image may have an improved visual presentation lacking unsightly artifacts such as halos or rings. 
     As will be discussed further below, the processor(s)  62  may be configured to implement one or more of the above-discussed inverse dithering techniques so as to reduce or eliminate unsightly artifacts shown by the electronic display  28 . As can be appreciated, image data processed by the processor(s)  62  may be retrieved from a memory  64  (e.g., frame buffer memory) and/or the electronic device  10 . It should be understood that the system block diagram shown in  FIG. 5  is intended to be a high-level diagram depicting various components that may be included, for example, in such an image processing circuitry  60 . Indeed, as discussed below, the depicted processor(s)  62  may, in some embodiments, include multiple processors, such as dedicated image and/or video processors. In such embodiments, the processing of image data may be handled by these dedicated processors, thus effectively providing for the real-time processing of still images and/or video image data. 
     The processor(s)  62  may include one or more microprocessors, such as one or more “general-purpose” microprocessors, one or more special-purpose microprocessors and/or application-specific microprocessors (ASICs), or a combination of such processing components. For example, the processor(s)  62  may include one or more reduced instruction set (e.g., RISC) processors, as well as graphics processors (GPU), video processors, audio processors and/or related chip sets. As will be appreciated, the processor(s)  62  may be coupled to one or more input ports  66  and output ports  68  for transferring data between the electronic device  10  and the electronic display  28 . 
     The instructions or data to be processed by the processor(s)  62  may be stored in a computer-readable medium, such as the memory device  64 . The memory device  64  may be provided as a volatile memory, such as random access memory (RAM) or as a non-volatile memory, such as read-only memory (ROM), or as a combination of one or more RAM and ROM devices. In addition, the memory  64  may be used for buffering or caching during operation of the electronic device  10 . For instance, in one embodiment, the memory  64  includes one or more frame buffers for buffering video data as it is being output to the electronic display  28 . 
     The input ports  66  may be used to connect the image processing circuitry  60  to the electronic device  10 . For example, the input ports  66  may include a high definition multimedia interface (HDMI) port, a digital visual interface (DVI) port, a DisplayPort, a Mini DisplayPort, a video graphics array (VGA) port, an iPad® dock connector, an iPod® dock connector, and/or an iPhone® dock connector. Image data may be transmitted through the input ports  66 , processed by the processor(s)  62 , and re-transmitted to the electronic display  28  through the output ports  68 . The output ports  68  may be any port suitable for communicating with the electronic display  28 . For example, the output ports  68  may include an S-video port, an HDMI port, a composite video port, a component video port, a VGA port, a DVI port, a DisplayPort, a Mini DisplayPort, and the like. 
     Input structures  70  may provide user input or feedback to the processor(s)  62 . For instance, input structures  70  may be configured to control one or more functions of the image processing circuitry  60 , such as turning on or off the image processing of images received from the electronic device  10 . In addition to processing various input signals received via the input structures  70 , the processor(s)  62  may control the general operation of the image processing circuitry  60 . For instance, the processor(s)  62  may provide the processing capability to execute an operating system (e.g., embedded operating system), programs, and any other functions of the image processing circuitry  60 . 
     The electronic display  28  may be used to display various images generated by the electronic device  10 , including still images and video data processed by the processor(s)  62 , as will be discussed further below. As mentioned above, the electronic display  28  may be any suitable type of display, such as a liquid crystal display (LCD) television, a plasma display, a digital light processing (DLP) projector, an organic light emitting diode (OLED) monitor, or a cathode ray tube (CRT) display, for example. Additionally, as discussed above, the display  28  may provide for certain image processing algorithms, such as edge detection and enhancement algorithms. 
     Referring again to the electronic device  10 , the image processing circuitry  60  and the electronic display  28 ,  FIG. 6  illustrates several forms that the various devices may take. As mentioned above, the electronic device  10  may take the form of a computer  34 , including computers that are generally portable (such as laptop, notebook, and tablet computers) as well as computers that are generally non-portable (such as desktop computers, workstations and/or servers). Additionally, the electronic device  10  may also take the form of a media distribution device  72 , which may be a model of and Apple TV® available from Apple Inc. The electronic device  10  may also take the form of a handheld portable electronic device  36  (e.g., a portable media player or mobile phone), which may be a model of an iPod® or iPhone® available from Apple Inc. 
       FIG. 6  further illustrates an embodiment of the image processing circuitry  60 , here shown integrated into a cable. It is to be noted that the image processing circuitry  60  may be integrated into a dongle, an expansion card, or any other suitable device. As shown, the image processing circuitry  60  may include an enclosure  74  suitable for housing the processor(s)  62 , as well as the various other components discussed above with regard to the block diagram shown in  FIG. 5 . Additionally, the image processing circuitry  60  may include one or more input ports  66  (e.g., VGA, HDMI, dock connector) useful for connecting to the devices  34 ,  72 , and  36 . The cable may also include one or more output ports  68 , as depicted, suitable for communicating with the electronic display  28 . 
     As further shown, the electronic display  28  may be configured to generate various images that may be viewed by a user, such as inverse dithered images or video. The electronic display  28  may be a television, a computer monitor, a projector, or any device suitable for display images. The inverse dithered image may have been generated by the image processing circuitry  60  using, for example, spatial and temporal inverse dithering techniques described in more detail below. Accordingly, during operation of the devices  34 ,  72 , and  36 , dithered images may be generated and transmitted via the image processing circuitry  60 . The image processing circuitry  60  may further inverse dither the dithered images, and transmit the inverse dithered images to the electronic display  28 . The electronic display  28  may then present the images for visualization by a user. 
     Having provided some context with regard to various forms that the electronic device  10  and the electronic display  28  may take and now turning to  FIG. 7 , the present discussion will focus on details of the electronic display  28  and on certain image processing logic. As mentioned above, the electronic display  28  may be any suitable type of display, such as an LCD television, a plasma display, a projector, a monitor, and internal LCD screen, and so forth. The electronic display  28  may include a matrix of pixel elements such as an example M×N matrix  76  depicted in  FIG. 7 . Accordingly, the electronic display  28  is capable of presenting an image at a natural display resolution of M×N. For example, in embodiments where the electronic display  28  is included in a 30-inch Apple Cinema HD Display®, the natural display resolution may be approximately 2560×1600 pixels. 
     A pixel matrix  78  is depicted in greater detail and includes four adjacent pixels  80 ,  82 ,  84 , and  86 . In the depicted embodiment, each pixel of the electronic display  28  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 the particular RGB color combination displayed by the pixel and translating the combination into a specific color. A number of colors may be displayed by each individual pixel by varying the individual RGB intensity levels of the pixel. For example, a pixel having a level of 50% R, 50% G, and 50% B may be perceived as the color gray, while a pixel having a level of 100% R, 100% G, and 0% B may be perceived as the color yellow. Indeed, the pixel matrix  36  may be suitable for displaying a number of colors or grey levels. 
     The number of colors that a pixel is capable of displaying is dependent on the hardware capabilities of the electronic display  28 . For example, a display  28  with a 6-bit color depth for each sub-pixel is capable of producing 64 (2 6 ) 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 (2 6 ×2 6 ×2 6 ) color combinations are possible, while at pixel depth of 8 bits, 16,777,216 (2 8 ×2 8 ×2 8 ) color combinations are possible. Although the visual quality of images using an 8-bit pixel depth may be superior to the visual quality of images using 6-bit pixel depth, the cost of storing and transmitting the 8-bit pixel depth image is also higher. Accordingly, the electronic device  10  may apply a dithering technique to reduce, for example, the 8-bit pixel depth image into a 6-bit pixel depth image, while maintaining a visual quality that allows a human user to perceive the 6-bit pixel depth image with sufficient clarity. The dithering technique may change the RGB values in the pixels  80 ,  82 ,  84 , and  86 , either temporally, spatially, or both, so as to attempt to improve the visual display of the lower pixel depth image. However, when such a dithered image is transmitted to certain electronic displays  28 , such as external displays  28 , the electronic displays  28  may apply an additional image processing algorithm to the dithered image, such as an edge detection and enhancement algorithm. The edge detection and enhancement algorithm may find “false” edges in the dithered image due to quantization steps performed during dithering. These “false” edges may be amplified during the edge enhancement, resulting in artifacts such as halos and/or rings. 
     Additionally, the dithered image may use substantially less bandwidth for transmission. For example, a 24-bit source image may be reduced to an 8-bit dithered image, saving 16 bits for each pixel transmitted. As can be appreciated, the savings in transmission bandwidth for images having pixel counts (e.g., high definition video) may be quite substantial. Indeed, several channels of high definition (HD) video images may be transmitted as dithered images using the same or less bandwidth than that used by a single channel of undithered HD video images. 
     It would be beneficial to apply imaging processing techniques, such as the inverse dithering techniques described herein, that are capable of transforming a dithered image into an inverse dithered image so as to improve visual reproduction, particularly when the electronic display  28  applies further image processing techniques, such as edge detection and enhancement techniques. Accordingly, it would also be beneficial to apply inverse dithering techniques that are capable of improved visual representation of any number of colors and gray-scales. Indeed, the image processing techniques described herein, such as those described in more detail with respect to  FIG. 8  below, are capable of displaying improved visual reproductions at any number of pixel depths from any number of source images that may have been dithered. 
     Turning to  FIG. 8 , the figure depicts an embodiment of an image signal processing (ISP) pipeline logic  90  that may be utilized for processing and displaying a source image  92 . The ISP logic  90  may be implemented using hardware and/or software components included in the electronic device  10 , the image processing circuitry  60 , the TCON  52 , and the electronic display  28  of  FIGS. 1 ,  4 , and  5 . The source image  92  may be provided, for example, by placing an 8-bit electronic representation of the source image  92  onto the electronic device  10 . The source image  92  may include colors or grey levels that are not directly supported by certain display hardware of the electronic device  10 . For example, the source image  92  may be stored at a pixel depth of 8 bits while the display hardware includes a 6-bit pixel depth display hardware. Additionally or alternatively, the source image  92  may benefit from a reduction in the amount of bandwidth used during image data transfer. Accordingly, the source image  92  may be manipulated by applying a dithering process  94 . The dithering process  94  may include any number of spatial and/or temporal dithering algorithms, such as the Floyd-Steinberg algorithm, the Burkes algorithm, the Stucki algorithm, the Sierra algorithm, and so forth. A 6-bit dithered image  96  is created based on the application of the dithering process  94  to the 8-bit source image  92 . 
     The dithering algorithms may introduce a slight quantization error in the dithered image  96 , resulting from a difference between the actual color values of the source image  92  and their corresponding dithered color values. Ordinarily, this quantization error is interpolated by the human eye to appear essentially the same as the original image. However, when additional image processing is applied to the dithered image, the quantization error may become magnified, giving the image a “grainy” or degraded appearance. Accordingly, certain image processing techniques may be applied so as to reduce or eliminate the introduction of quantization errors. Additionally or alternatively, certain image processing techniques may be applied so as to reduce bandwidth transmission requirements. In the depicted embodiment, an image analysis process  98  is performed on the dithered image  96 . The image analysis  96  may include color decomposition of the dithered image  96 . The color decomposition is capable of decomposing the color of each pixel of the dithered image  96  into the three RGB color levels. That is, the RGB intensity levels for each pixel may be determined by the color decomposition. Such a decomposition may be referred to as a three-channel (e.g., multi-channel) decomposition, because the colors may be decomposed into a red channel, a green channel, and a blue channel, for example. Accordingly, each color may be inverse dithered separately. 
     The image analysis  98  may be followed by the application of inverse dithering techniques  100 . The inverse dithering techniques  100  may include spatial inverse dithering and/or temporal inverse dithering, enabling the creation of an inverse dithered image  102 . In spatial inverse dithering, the pixels in the dithered image  92  may be manipulated so as to diffuse the energy in each pixel spatially to surrounding pixels, and make false edges of the image less detectable, as described in more detail below with respect to  FIG. 11 . Spatial inverse dithering may therefore convert the dithered image  96  into the inverse dithered image  102  having an improved the image perception and quality. 
     Additionally or alternatively, the inverse dithering techniques  100  may be capable of utilizing temporal inverse dithering. In temporal inverse dithering, the colors and/or grey levels of the pixels in the dithered image  96  may be varied frame-by-frame so as to improve the perceived image quality of the inverse dithered image  102 . That is, a first frame of the processed image may be presented at time T 0 , followed by a second frame of the processed image which may be presented at time T 1 . The second frame may have color and/or gray level variations from the first frame. Likewise, a third frame of the processed image may be presented at time T 2  having colors and/or gray levels that differ from the second frame. Likewise, additional frames may then be presented also having color and/or grey level values that differ form the third frame. 
     Humans may perceive multiple frames presented sequentially one after the other as a single image. Indeed, in some embodiments, 15, 24, 30, 60, 120, 240, or more frames per second (FPS) may be presented sequentially. By alternating the color and/or the grey-levels of each frame and by presenting the frames sequentially, it is possible to enable a single perceived image that is more natural and pleasing to the human eye. Accordingly, the inverse dithering techniques  100  may be capable of temporal inverse dithering. Indeed, the spatial and/or temporal inverse dithering techniques allow for the visually pleasing presentation of a displayed image  104 , even when the displayed image  104  undergoes additional image processing, such as edge detection and enhancement. 
       FIG. 9  is illustrative of an embodiment of a conversion of a single color or grey-scale pixel  108  having a higher pixel depth (e.g., 8 bits) into a pixel  110  having a lower pixel depth (e.g., 6 bits). In the depicted embodiment, the pixel  108  is stored in 8 binary bits having the values “10110101.” One method of achieving of a lower pixel depth value (e.g., 6-bit value), would involve discarding the last two bits (i.e., least significant bits) of the pixel  108 . In the illustrated example, such a method would result in the 6-bit value of “101101.” However, discarding the least significant bits of the pixel  108  is likely to result in an image having visual anomalies, such as “banding,” in which stepwise or color bands appear in the lower pixel depth image. Accordingly, the pixel  108  may be dithered to arrive at the lower depth pixel  110 . By dithering all the pixels in the source image  92 , a more visually pleasing dithered image  96  may be displayed. 
     As mentioned previously, various dithering algorithms, such as the Floyd-Steinberg algorithm, the Burkes algorithm, the Stucki algorithm, the Sierra algorithm, and so forth, may be used. These algorithms may evaluate pixels surrounding the pixel  108  and compute the value of the pixel  110  so that the image looks more visually uniform. In the depicted example, the dithered pixel  110  has the value “101100.” The dithered pixels of the dithered image  96 , including dithered pixel  110 , may then be output. 
       FIG. 10  is illustrative of an embodiment of an inverse dithering of the dithered single color or grey-scale pixel  110  of  FIG. 9  into a pixel  112  having a higher pixel depth (e.g., 10 bits). That is, the 6-bit pixel  110  may be inverse dithered so as to result in the 10-bit pixel  112 . Indeed, inverse dithering may be used to convert a lower pixel depth pixel into any higher pixel depth pixel. For example, a 4-bit dithered pixel may be inverse dithered into a 12-bit pixel. Likewise, a 6-bit pixel dithered pixel may be inverse dithered into an 8-bit, pixel. 
     In the illustrated embodiment, the dithered image  96  (show in  FIG. 8 ) having a dithered pixel  110  may be transmitted into, for example, the image processing circuitry  60  or the TCON  52 . The transmission of the dithered image  96  may use substantially less bandwidth because of the reduced number of bits when compared to the original source image  92 . The electronic display  28  may have display hardware capable of displaying images at a higher pixel depth, such as a 10-bit pixel depth. Accordingly, the image processing circuitry  60  or the TCON  52  may inverse dither the dithered image  96 , including the pixel  110 , so as to display the dithered image  96  at a higher, more visually pleasing, pixel depth (e.g., 10-bit pixel depth). Inverse dithering of the pixel  110  may be performed by using several methods. One of the methods may involve a simple addition of zeros to the end bits (i.e., least significant bits) of the higher pixel depth pixel in order to fill bits removed during dithering. For example, the 6-bit value “101100” may be converted into a 10-bit value “1011000000.” Another method may add ones to the least significant bits of the higher pixel depth image. For example, the 6-bit value “101100” may be converted into a 10-bit value “1011001111.” However, such methods typically result in display artifacts called “banding” and are aesthetically displeasing. Accordingly, the inverse dithering techniques described herein may be applied that are more suitable for enhancing the visual qualities of the display image. For example, an energy diffusion inverse dithering may be applied, suitable for diffusing the energy in a pixel, as described below with respect to  FIGS. 12 to 14 . The energy diffused inverse dithered pixel  112  may result in a more improved visual presentation than simple addition of ones or zeros the least significant bits. Indeed, the inverse dithered least significant bits of the pixel  112  may carry information that enables a substantial visual improvement over the simple addition of all ones or all zeros. Further, the inverse dithered image may allow the application of edge detection and enhancement algorithms that may prevent or eliminate undue visual changes such as the detection of false edges. 
     In certain embodiments, the display  28  may apply edge enhancement algorithms so as to produce a sharper, more aesthetically pleasing image. However, certain dithered images may result in false edges.  FIG. 11  depicts an embodiment of an inverse dithering applied around an image edge  114  to prevent or eliminate false edges. That is, when inverse dithering is applied to the image edge  114 , a real edge (depicted as a dashed line inverse dithered edge  116 ) is preserved while false edges  118  (depicted as solid line false edges  118 ) resulting from dithering are eliminated. More specifically, the image edge  114  may have been derived by using an edge enhancement algorithm that has resulted in the image edge  114  having a separation S between a high value  120  and a low value  122  of the edge. Indeed, the edge enhancement algorithm is suitable for detecting edges in an image and deriving an edge  114  having a separation S, where S is suitable for optimizing the image&#39;s perceived sharpness. However, the edge enhancement algorithm may incorrectly derive multiple false edges  118 . The edges  118  may result from the edge enhancement algorithm interpreting certain quantization steps in the dithered image  96  as edges, and then increasing the local contrast, which results in the false edges  120 . When the image is displayed, the false edges  120  may be perceived as a series of halos or rings. Accordingly, it would be beneficial to provide for a mechanism to smooth out the quantization steps in the dithered image  96 , as described in more detail with respect to  FIG. 12  below. Indeed, by using the techniques described herein, the edges  120  may be made more uniform, as depicted the inverse dithered edge  116  (e.g., depicted with dashed lines). By displaying the inverse dithered edge  116 , the display artifacts such as halos or rings may be substantially removed or eliminated. Additionally, a true or real image edge  116  is preserved, which may result in the display image having a sharper, more aesthetically pleasing image. 
     Turning to  FIG. 12 , the figure illustrates an embodiment of an inverse dithering of an image area or kernel  126  of the dithered image  96  by using an energy diffusion or distribution. In the depicted embodiment, a center pixel  128  having a color value c is selected. A prediction pixel value P may then computed based on a function of neighboring pixel values of the kernel  86 . For example, the pixel value P may be computed by summing a color value (e.g., red, green, blue) of all of the pixels in the image area  126 . In one embodiment, the sum is then divided by the number of neighboring pixels (e.g., 9), resulting in an average Ā. That is, the average Ā includes all pixel values in the image area  126  divided by the number of pixels in the image area  126 . The difference between Ā and c is then used to create a diffusion value Δ. In certain embodiments, the diffusion value Δ may be limited to a certain range {−Q . . . +Q} based in part on the quantization steps used during the initial dithering process. For example, if the dithering converted an image from an 8-bit source image into a 6-bit dithered image, two bits were used in quantization. Therefore, the quantization step is 2 2  (i.e., 4) and the range may be limited to {−4 . . . +3}. In another example, if the dithering converted an image from a 10-bit source image into a 7-bit dithered image, three bits were used in quantization. Therefore, the quantization step is 2 3  (i.e., 8) and the range may be limited to {−8 . . . +7}. 
     The range-limited diffusion value Δ is then subtracted from the center pixel  128 . In other words, the center pixel  128  will have the range-limited value Δ subtracted from its current value c. Energy removed from the center pixel  128  is then added back to the image area  126 . In one embodiment, an equal distribution is used to distribute the removed energy. In this equal distribution embodiment, the range-limited value Δ is divided by 8, and this value is then added to the eight pixels surrounding the center pixel  128 . In other embodiments, a weighted distribution, a random distribution, a weighted-by-filter-kernel distribution, or a weighted-by-directional-filter distribution may be used to diffuse or distribute the energy. In error or energy distribution, for example, one of the neighboring pixels may be given more weight and thus would receive more of the subtracted energy. In random distribution, the subtracted energy would be randomly divided among all of the neighboring pixels. In weighted by filter kernel distribution, a filter may be applied, such as a color filter assigning more of the subtracted energy to certain neighboring pixels due to their color profiles. In a weighted by directional filter distribution, a directional filter may be applied, which may assign the subtracted energy based on certain frequency profiles of the image area  126 . By diffusing some of the energy in the center pixel  128  to neighboring pixels, image enhancement algorithms such as edge detection and enhancement that may be used in the display  28  may not enhance/magnify false edges. 
     The inverse dithering technique may then be applied to a neighboring image area  130 , as described below with respect to  FIG. 13 , until the totality of the dithered image  96  has been converted into an inverse dithered image  102 .  FIG. 13  depicts an embodiment of a neighboring 3×3 image area  130  having a center pixel  132 . In the depicted embodiment, the center pixel  132  of the image area  130  is immediately adjacent to the center pixel  128  of the image area  126 . Indeed, the inverse dithering techniques described herein may iteratively process other image areas, such as the image area  130 , until the entirety of the dithered image  96  has been processed and converted into an inverse dithered image  102 . Thus, the new image area  130  and center pixel  132  may undergo the same analysis and processing as described above with respect to  FIG. 12 . That is, the center pixel  132  may have energy removed or added, and the energy may then be diffused or distributed to or from the neighboring pixels in the image area  130 . Indeed, the inverse dithering process may continually select and process a new image area and center pixel until all of the pixels in the dithered image area  96  have been processed as center pixels, as shown in  FIG. 12 . It is to be understood that any method of selecting the new image area may be used, such as selecting the image area immediately to the right, immediately to the left, immediately on top, immediately on bottom, a non-immediate area, a randomly selected area, and so forth. 
     The inverse dithering is not restricted to 3×3 image areas, but may also process image areas having other sizes or non-rectangular shapes, as described in more detail below with respect to  FIG. 14 .  FIG. 14  depicts a 5×5 image area  134  having a center pixel  136 . As mentioned above, the process for inverse dithering by using energy diffusion or distribution is not limited to only 3×3 image areas or kernels. Any number of image area sizes may be used, such as 2×2, 4×, 4, 8×8, 20×20, and so forth. In the depicted embodiment having the 5×5 image area  134 , the center pixel  136  is analyzed as described above. That is, the prediction pixel value P may be computed based on an function of all the pixel values in the image area  134 . In one embodiment, function used is an average Ā function where all of the pixel values in the image area  134  are summed and then divided by the total number of pixels in the image area  134  (e.g., 25). When the image area  134  is a 5×5 image area, the neighboring pixels are not all directly adjacent to the center pixel  136  because the image area  134  includes a larger size, as depicted. The average Ā is then compared to the value c of the center pixel  136 . The difference between Ā and c is then used to create a diffusion value Δ. In certain embodiments, the diffusion value Δ may be limited to a certain range {−Q . . . +Q} based in part on the quantization steps used during the initial dithering process, as described above. The range-limited diffusion value Δ is then subtracted from the center pixel  136 . Energy removed from the center pixel  136  is then added back to the image area  134 . In one embodiment, an equal distribution is used to distribute the removed energy. In this equal distribution embodiment, the range-limited value Δ may be divided by 24, and this value is then added to the 24 pixels surrounding the center pixel  128 . As mentioned above, other energy diffusion or distribution embodiments may include a weighted-distribution, a random distribution, a weighted-by-filter-kernel distribution, or a weighted-by-directional-filter distribution. By using the 5×5 image area or kernel  134 , the energy may be diffused over a larger area. 
       FIG. 15  depicts a system  140  suitable for inverse dithering an image by using the energy diffusion approach described above with respect to  FIGS. 12-14 . In the illustrated example, an image area  142  is first processed by an averager  144  to arrive at the average value Ā, where the average value Ā is computed by summing a color value (e.g., red, green, blue) or the grey-scale value of the pixels in the image area  142  and dividing the sum by the number of pixels in the image area  142 . A subtractor  146  may then subtract the average Ā from a value c corresponding to a color or grey-scale value for a center pixel  148  of the image area  142  to obtain an error value c−Ā. A limiter  150  may then be used to limit the c−Ā difference to a range-limited value Δ. The range limiter  150  may use a quantization step used for dithering the image area  142  to derive the range-limited value Δ. Indeed, the range limiter  150  may preserver real edges by limiting only edges having values inside the range-limited value Δ. Accordingly, the limiter  150  may aid in removing false edges. 
     A subtractor  152  may then be used to subtract the value outputted by the range limiter  150  from the center pixel value c. In one example, the value used as input (i.e., c−Ā) for the range limiter  150  may fall inside the quantization range. That is, there no true edge is detected and the value c−Ā is not range limited. Accordingly, the range limiter  150  may not need to modify the input value c−Ā. In this example, the subtractor  152  may subtract the value c−Ā from the center pixel value c (i.e., c−(c−Ā)), resulting in the value Ā. In another example, the c−Ā value used as input to the range limiter  150  may fall outside of the quantization range. That is, there is a true edge and thus the range limiter  150  may limit the range so as to preserve the true edge in the image. Accordingly, the range limiter  150  may modify the input value c−Ā and output the range limited value Δ. In this example, the subtractor  152  may subtract range limited value Δ from the center pixel value c, resulting in the value c−Δ. 
     A diffuser  154  may then diffuse or distribute the value calculated by the subtractor  152  to other pixels of the image area  142 , resulting in an inverse dithered image area  156 . For example, the diffuser  154  may use an adder  157  to add certain portions of the value outputted by the subtractor (e.g., Ā or c−Δ) to neighboring pixels in the image area  142 . The portions may be equal portions, or unequal portions. Indeed, an equal distribution, a weighted distribution, a random distribution, a weighted-by-filter-kernel distribution, or a weighted-by-directional-filter distribution may be used by the diffuser  154  to diffuse the energy value subtracted by the subtractor  152 . By diffusing the energy subtracted from the center value c, the inverse dithered image area  156  may be made more uniform and pleasing to the human eye. 
       FIG. 16  depicts an embodiment of a logic  158  suitable for inverse dithering a dithered image by using energy diffusion. The logic may first select a pixel (block  160 ), such as a center pixel of an image area or kernel of the dithered image. A pixel value R  162 , such as a color value or grey-scale value c for the selected center pixel may then be calculated. The logic  158  may then create a prediction value (block  164 ), such as a prediction value P  166 . In one embodiment, the prediction value may be created (block  164 ) by deriving an average value of all pixels in the image area or kernel, such as the value Ā described above with respect to  FIG. 15 . For example, the average value may be derived as the sum of the values of pixels neighboring the selected pixel, and then this sum may be divided by the number of neighboring pixels. The prediction value P may then be compared to the pixel value R (block  168 ). The comparison of the prediction value P to the pixel value R is used to create a diffusion value D  172 . The diffusion value D is created by subtracting the predicted value P from the pixel value R. The diffusion value D may then be range limited, for example, to a quantization range {−Q . . . +Q} (block  174 ). In certain embodiments, the values for Q may be derived based on the quantization steps used to produce the dithered image. A range-limited D′  176  may then be subtracted from the pixel value R (block  178 ). In one example, the range-limited the range-limited D′  176  may include a value Ā suitable for preserving a real edge in the image area. In another example, the range-limited D′  176  may include a value c−Δ suitable for removing false edges in an image. The energy removed by this subtraction of D′ may then be distributed to the neighboring pixels (block  180 ). That is, D′ may be divided proportionally or disproportionally among the neighboring pixels. For example, an equal distribution, a weighted distribution, a random distribution, a weighted-by-filter-kernel distribution, or a weighted-by-directional-filter distribution may be used to add certain portions of the value D′ to the neighboring pixels. The logic  158  may then iteratively select another pixel in the dithered image (block  160 ). Indeed, the logic  158  may iteratively process each pixel of the dithered image  96  until the entire dithered image  96  has been inverse dithered. The inverse dithered image  102  may then be transmitted, for example, into the electronic device  28  for display. The electronic device  28  may apply edge enhancement algorithms, but the inverse dithered image  102  may still display an aesthetically pleasing image without exhibiting artifacts such as halos and rings. 
       FIG. 17  is illustrative of an image area  190  undergoing temporal inverse dithering. In temporal inverse dithering, adjacent pixels may be color-shifted with respect to each other and the color (or grey-scale) values of certain pixels are temporally varied with color (or grey-scale) values of other pixels in the group. In one embodiment, the image area  190  at frame  0  (i.e., time  0 ) may first have a center pixel  192  selected. The image area  190  and center pixel  192  may then be processed as described above with respect to  FIG. 12  so as to inverse dither the image area by applying energy diffusion over some period of time. At frame  1  (i.e., time  1 ), a new center pixel  194  may then be selected. The same process described above may be applied to inverse dither based on the energy of pixel  194 . Likewise, at frame  2  (i.e., time  2 ), center pixel  196  may be selected and inverse dithering applied. Finally, at frame  3  (i.e., time  3 ), center pixel  198  may be selected and inverse dithering similarly applied. The cycle may then repeat itself, starting back at frame  0 . Indeed, by alternating the color and/or the grey-levels of each frame  0 - 3  and by presenting the frames sequentially, it is possible to enable a single perceived image that is more natural and pleasing to the human eye. It is to be noted that the frames may be cycled in any order, such as the clockwise cycle depicted in  FIG. 17 . Other cycles may include counterclockwise and random cycles. 
     Turning to  FIG. 18 , the figure illustrates an embodiment of a color source image  200  having approximately 168,712 different colors distributed across approximately 10,204,000 pixels. The color source image  200  is illustrative of a higher pixel depth image suitable for providing a high quality visual display image. In the depicted example, the subject matter includes a series of boats, along with a reflection of trees and the sun in water. The source image  200  depicts the subject matter&#39;s colors and shapes in a visually pleasing manner, but uses a high number of colors to do so. 
     Indeed, a color cube  202  corresponding to the number of colors included in the source image  200  is depicted in  FIG. 19 . The color cube  202  includes three axes, R, G, and B. Each color in the source image  200  is plotted in the depicted color cube  202 . For example, the color gray includes 50% red, 50% green, and 50% blue. Accordingly, the color grey may be plotted as the point approximately halfway between each of the axes R, G, and B of the color cube  202 . By plotting all of the colors in the source image  200 , a color distribution  204  for the source image  200  is displayed in the color cube  202 . The color distribution  204  visually depicts how much volume of the color cube  202  is used to store the colors of the source image  200 , as well as the locations in the color cube  202  used for storage. The number of colors in the source image  202  may be reduced by using, for example, dithering techniques such as the Floyd-Steinberg dithering algorithm, without undue degradation in image quality. 
       FIG. 20  illustrates an embodiment of a dithered image  206  produced by dithering the color source image  200  (shown in  FIG. 18 ). Dithering enables the creation of a dithered image having a lower pixel depth or number of colors. Indeed, the dithered image  206  includes 10,204,000 pixels having 20,051 colors, a substantial reduction in color quantity from the original 168,712 colors of the color source image  200 . By having a reduced color palette, the dithered image  206  may be more easily transmitted, and may be processed using simpler and less costly imaging processing hardware. The use of dithering techniques also enables the dithered image  206  to more uniformly use the available colors, without displaying too may visual anomalies such as color banding. However, the dithered image  206  may still display a certain amount of color banding, for example in regions of the image having very different color values (e.g., near the image of the sun). 
       FIG. 21  illustrates an embodiment of a color cube  208  corresponding to the dithered image  206  of  FIG. 20 . In the depicted embodiment, the color cube  208  includes a substantially decreased number of plotted colors. Indeed, the color cube  208  includes a more “porous” color distribution  210  as compared to the color distribution  204  of  FIG. 19 . That is, the plotted color points in the color distribution  210  have spaces or interstices not shown in the color distribution  204 . These spaces are the result of the elimination of approximately 148,661 out of 168,712 colors from the original color distribution  204 . Indeed, approximately 88% of the colors present in the color distribution  204  have been eliminated. The substantial reduction in colors enables for improved image compression and a corresponding reduction in the transmission time used to send the dithered image  206 . 
     The dithered image  206  may be processed using the inverse dithering techniques described herein, to produce an inverse dithered image having an improved visual display.  FIG. 22  depicts an embodiment of an inverse dithered image  212  derived by using the inverse dithering techniques described herein. In the depicted embodiment, the inverse dithered image  212  is derived from the dithered image  208  of  FIG. 20 . More specifically, the inverse dithered image  212  has been derived by the applying the energy diffusion-based inverse dithered techniques described above with respect to  FIGS. 12-17 , to the dithered image of  FIG. 20 . For example, each of the pixels in the dithered image  212  may have been color analyzed and subsequently diffused so that neighboring pixels receive some measure of energy from the analyzed pixel, producing the inverse dithered image  212 . The inverse dithered image  212  includes approximately 143,375 colors, of which approximately 123,324 colors may have been derived by applying energy diffusion to pixels of the dithered image  168 . Indeed, the application of the inverse dithering techniques may result in a more visually appealing image lacking visual artifacts such as banding and false edges. Further, the additional colors derived through inverse dithering result in the inverse dithered image  212  having a visual appearance that makes it almost indistinguishable from the original source image  200  of  FIG. 18 . 
     Indeed, the inverse dithered image  212  having a color cube  214  illustrated in  FIG. 22  shows a color distribution  216  that improves upon the color distribution  210  of  FIG. 21  by deriving substantially more colors (e.g., 123,324 colors) through inverse dithering. As depicted, the color distribution  216  is less “porous” and is more uniform. Further, the color distribution  216  more closely approximates the color distribution  204  (shown in  FIG. 19 ) of the original source image  200 , when compared to the color distribution  210 . Accordingly, the displayed image  212  more closely approximates the original source image  200 . Further, the displayed image  212  lacks unsightly visual artifacts such as halos or shadows. 
     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.

Metadata:
Filing Date: 20110412
Publication Date: 20140624
Grant Date: 20140624
Priority Date: 20110412
Inventors: FRANK MICHAEL
BARNHOEFER ULRICH T.
Assignee: APPLE INC
CPC Classifications: [{"code": "G09G2320/0271", "inventive": false, "first": false, "tree": "[]"}, {"code": "G09G2320/0242", "inventive": false, "first": false, "tree": "[]"}, {"code": "G09G2340/02", "inventive": false, "first": false, "tree": "[]"}, {"code": "G09G2350/00", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04N1/4051", "inventive": true, "first": false, "tree": "[]"}, {"code": "G09G2320/0271", "inventive": false, "first": false, "tree": "[]"}, {"code": "G09G5/02", "inventive": true, "first": true, "tree": "[]"}, {"code": "G09G2340/02", "inventive": false, "first": false, "tree": "[]"}, {"code": "G09G3/2044", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N1/4051", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04N1/40075", "inventive": true, "first": false, "tree": "[]"}, {"code": "G09G5/02", "inventive": true, "first": true, "tree": "[]"}, {"code": "G09G2320/0242", "inventive": false, "first": false, "tree": "[]"}, {"code": "G09G3/2044", "inventive": true, "first": false, "tree": "[]"}, {"code": "G09G2350/00", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04N1/40075", "inventive": true, "first": false, "tree": "[]"}]
Family ID: 47006087