This disclosure relates to halftoning techniques, and, more specifically, to improved techniques for halftoning video images for display on an electronic display.
Electromechanical systems (EMS) include devices having electrical and mechanical elements, actuators, transducers, sensors, optical components (such as mirrors and optical film layers) and electronics. EMS can be manufactured at a variety of scales including, but not limited to, microscales and nanoscales. For example, microelectromechanical systems (MEMS) devices can include structures having sizes ranging from about a micron to hundreds of microns or more. Nanoelectromechanical systems (NEMS) devices can include structures having sizes smaller than a micron including, for example, sizes smaller than several hundred nanometers. Electromechanical elements may be created using deposition, etching, lithography, and/or other micromachining processes that etch away parts of substrates and/or deposited material layers, or that add layers to form electrical and electromechanical devices.
One type of electromechanical systems device is called an interferometric modulator (IMOD). As used herein, the term IMOD or interferometric light modulator refers to a device that selectively absorbs and/or reflects light using the principles of optical interference. In some implementations, an IMOD may include a pair of conductive plates, one or both of which may be transparent and/or reflective, wholly or in part, and capable of relative motion upon application of an appropriate electrical signal. In an implementation, one plate may include a stationary layer deposited on a substrate and the other plate may include a reflective membrane separated from the stationary layer by an air gap. The position of one plate in relation to another can change the optical interference of light incident on the IMOD. IMOD devices have a wide range of applications, and are anticipated to be used in improving existing products and creating new products, especially those with display capabilities, such as personal computers and personal electronic devices (PED's).
Electronic displays may be required to render and present image data in real time that is received on a frame by frame basis by way, for example, of a broadcast or cellular network, or over the internet, at frame rates of, for example, 30 frames per second. Such digital images are typically encoded at a relatively high bit depth of 24 bits per pixel (bpp) for color images. However, many electronic displays (such as bi-level displays or multi-level displays with only a few levels) are only capable of rendering images with a substantially lower bit-depth. Some color reflective displays, for example, analog electromechanical display devices, may render images at a bit depth of two bits per color channel (6 bpp). A process called halftoning is used to reduce high bit-depth (“continuous tone”) images to images with a more limited number of tone levels. In general, halftoning is a process for creating the perception of a continuous-tone color image with a limited number of tone levels by using knowledge of the spatio-chromatic discrimination capabilities of the human visual system.
Known halftoning techniques suitable for real time applications such as electronic display of transmitted video content include error diffusion techniques and mask-based dithering (also referred to as “screening”) techniques. Of the two methods, mask-based dithering or screening requires fewer computation resources but, for most types of image data, produces poorer quality halftones. For example, halftone images generated by mask-based dithering may have poor image quality due to pattern visibility, noisy appearance (especially in mid-tone areas), and inability to reproduce detail. Error diffusion techniques, such as those based on the Floyd Steinberg Error Diffusion (FSED) method, may produce acceptable quality halftone video output, provided that video image data varies, spatially and/or temporally. That is, for example, where a pixel is near an “edge” of an image element, or is part of a highly textured image element, or is changing temporally (due, for example, to movement of an image element), FSED-based techniques are satisfactory. However, because halftone textures are not correlated along the temporal axis, applying FSED-based methods to video data can generate objectionable artifacts. These objectionable artifacts may include temporal flickering or “boiling”, that are readily observable when the video image data relates to a static and uniform (“flat field”) image element.
The systems, methods and devices of the disclosure each have several innovative aspects, no single one of which is solely responsible for the desirable attributes disclosed herein.
One innovative aspect of the subject matter described in this disclosure may be implemented in an apparatus including an electronic display; and a display control module. The display control module may be configured to receive a plurality of input frames of video data, each input frame including a plurality of input pixels. For each input frame, the display control module may generate an output frame of video data, the output frame including a first subset of halftoned output pixels and a second subset of halftoned output pixels. The display control module may: compute a temporal change rate metric (CRM) and a spatial CRM for each input pixel; generate the first subset of output pixels by generating, using an error diffusion technique, a corresponding halftoned output pixel for each input pixel in a first subset of the input pixels, the first subset including only input pixels for which one or both of the temporal CRM and the spatial CRM exceeds a respective threshold; and generate the second subset of output pixels by generating, using a selected halftoning technique, a corresponding halftoned output pixel for each input pixel in a second subset of the input pixels, the second subset including only input pixels for which each of the temporal CRM and the spatial CRM is less than or equal to the respective threshold. The display control module may be configured to determine the selected halftoning technique by (i) computing a first halftone value using the error diffusion technique; (ii) computing a second halftone value using a mask-based dithering technique; (iii) comparing each of the first halftone value and the second halftone value to a comparison halftone value of a corresponding output pixel in a comparison frame; (iv) when the comparing indicates the second halftone value is closer to the comparison halftone value than the first halftone value, selecting, for first individual ones of the second subset of pixels, the mask-based dithering technique; and (v) when the comparing indicates the second halftone value is not closer to the comparison halftone value than the first halftone value, selecting, for second individual ones of the second subset of pixels, the error diffusion technique. The display control module may render the output frame on the electronic display to form a displayed halftone video image.
In an implementation, computing the temporal CRM of each input pixel may include comparing a halftone value of the input pixel to a halftone value of a corresponding output pixel of a comparison frame. The comparison frame may precede the input frame.
In another implementation, computing the spatial CRM of each input pixel may include comparing a data value for the input pixel to a corresponding data value for neighboring input pixels, the neighboring input pixels and the input pixel being located in a common local region. One or both of the first data value and the corresponding data value may be halftone values. The common local region may include one of a three by three pixel block, a five by five pixel block, or a seven by seven pixel block.
In a further implementation, the mask-based dithering halftoning technique may include dithering the input pixel with a mask. The error diffusion technique may include quantizing the input pixel and diffusing a first quantization error with an error diffusion filter. The first quantization error may include a second quantization error resulting from the mask-based dithering halftoning technique. The second quantization error may be computed by clipping a quantization error resulting from the mask-based dithering halftoning technique.
In yet another implementation, the apparatus may further include a processor that is configured to communicate with the electronic display, the processor being configured to process image data and a memory device that is configured to communicate with the processor. The apparatus may further include a driver circuit configured to send at least one signal to the electronic display and a controller configured to send at least a portion of the image data to the driver circuit. The apparatus may further include an image source module configured to send the image data to the processor. The image source module may include one or more of a receiver, transceiver, and transmitter. The apparatus may further include an input device configured to receive input data and to communicate the input data to the processor.
In an implementation, a method to halftone video data may include receiving video data having a plurality of frames, each of the plurality of frames having a plurality of pixels. For each of the plurality of pixels in each of the plurality of frames, the method may determine if a respective pixel is associated with a substantially stationary and uniform region in a respective frame. If the respective pixel is not associated with a substantially stationary and uniform region in the respective frame, then the maethod may perform error diffusion on the respective pixel to generate an output pixel. Otherwise, the method may perform error diffusion on the respective pixel to generate an error-diffusion-based halftone value, and may perform mask-based dithering on the respective pixel to generate a mask-based dithering halftone value. The method may select one of the error diffusion-based halftone value and the mask-based dithering halftone value that is closer to a halftone value of a corresponding output pixel in a comparison frame, and generate the output pixel using the selected halftone value.
In an implementation, the comparison frame may be a frame immediately preceding a respective frame containing the respective pixel.
In another implementation, determining if the respective pixel is associated with a substantially stationary and uniform region in the respective frame may include: applying a high pass filter to image data within a local region containing the respective pixel; computing an average pixel value of pixels within the local region; and comparing the average pixel value computed with a corresponding average pixel value in the comparison frame. The local region may include a seven-by-seven pixel block and the respective pixel may be substantially centered in the pixel block.
Details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Although the examples provided in this summary are primarily described in terms of MEMS-based displays, the concepts provided herein apply to other types of displays, such as organic light-emitting diode (“OLED”) displays and field emission displays. Other features, aspects, and advantages will become apparent from the description, the drawings, and the claims. Note that the relative dimensions of the following figures may not be drawn to scale.
Like reference numbers and designations in the various drawings indicate like elements.
The following description is directed to certain implementations for the purposes of describing the innovative aspects of this disclosure. However, a person having ordinary skill in the art will readily recognize that the teachings herein can be applied in a multitude of different ways. The described implementations may be implemented in any device or system that can be configured to display an image, whether in motion (e.g., video) or stationary (e.g., still image), and whether textual, graphical or pictorial. More particularly, it is contemplated that the described implementations may be included in or associated with a variety of electronic devices such as, but not limited to: mobile telephones, multimedia Internet enabled cellular telephones, mobile television receivers, wireless devices, smartphones, Bluetooth® devices, personal data assistants (PDAs), wireless electronic mail receivers, hand-held or portable computers, netbooks, notebooks, smartbooks, tablets, printers, copiers, scanners, facsimile devices, GPS receivers/navigators, cameras, MP3 players, camcorders, game consoles, wrist watches, clocks, calculators, television monitors, flat panel displays, electronic reading devices (i.e., e-readers), computer monitors, auto displays (including odometer and speedometer displays, etc.), cockpit controls and/or displays, camera view displays (such as the display of a rear view camera in a vehicle), electronic photographs, electronic billboards or signs, projectors, architectural structures, microwaves, refrigerators, stereo systems, cassette recorders or players, DVD players, CD players, VCRs, radios, portable memory chips, washers, dryers, washer/dryers, parking meters, packaging (such as in electromechanical systems (EMS), microelectromechanical systems (MEMS) and non-MEMS applications), aesthetic structures (e.g., display of images on a piece of jewelry) and a variety of EMS devices. The teachings herein also can be used in non-display applications such as, but not limited to, electronic switching devices, radio frequency filters, sensors, accelerometers, gyroscopes, motion-sensing devices, magnetometers, inertial components for consumer electronics, parts of consumer electronics products, varactors, liquid crystal devices, electrophoretic devices, drive schemes, manufacturing processes and electronic test equipment. Thus, the teachings are not intended to be limited to the implementations depicted solely in the Figures, but instead have wide applicability as will be readily apparent to one having ordinary skill in the art.
Described herein below are new techniques for halftoning video images. Input frames of video images may be received, where each input frame includes a number of input pixels. For each input frame, an output frame including a number of halftoned output pixels may be generated. Some of the halftoned output pixels may be generated using an error diffusion halftoning technique; others of the halftoned output pixels may be generated using a mask-based dithering halftoning technique. Selection of the halftoning technique may be performed on a pixel-by-pixel basis, and, advantageously, accounts for both spatial and temporal correlations. For example, the error diffusion technique may be advantageously selected for an input pixel when one or both of a temporal and spatial change rate exceeds a respective threshold. When neither threshold is exceeded, a selection between the mask-based dithering technique and the error diffusion technique may be made by (i) comparing a respective halftone value computed by each technique with a comparison halftone value of a corresponding output pixel in a comparison frame; and (ii) selecting the technique that results in a halftone value closer to the comparison halftone value. The comparison frame may be a frame preceding, or immediately preceding, the input frame.
Particular implementations of the subject matter described in this disclosure can be implemented to realize one or more of the following potential advantages. The presently disclosed video halftoning techniques substantially suppress objectionable visual artifacts introduced by known halftoning methods without substantially adding to the computational or memory demands of the electronic devices on which the techniques are implemented. In particular, temporal flicker that normally results from applying error diffusion techniques to flat field image elements or regions are substantially eliminated. As a result, the disclosed techniques improve the visual appearance of halftoned video images with respect to video images halftoned with traditional methods. Moreover, demands on computational resources, such as, particularly, frame buffer resources are reduced. Some implementations of the hybrid video halftoning techniques disclosed herein are particularly useful in reducing artifacts in images rendered by a low bit-depth device, such as low bit-depth display devices. Further, an increase in frame update rate may be achieved by the disclosed techniques, such as, in some implementations, when an image region is stationary, updating of pixels in that image region may be avoided, with a consequential reduction in frame updating time.
Although much of the description herein pertains to IMOD displays, the disclosed techniques could be used to advantage in other types of displays such as a plasma display, an electroluminescent (EL) display, an organic light-emitting diode (OLED) display, a super-twisted nematic liquid crystal display (STN LCD), or a thin film transistor liquid crystal display (TFT-LCD). Moreover, while the IMOD displays described herein generally include red, blue and green pixels, many implementations described herein could be used in reflective displays having other colors of pixels, such as having violet, yellow-orange and yellow-green pixels. Moreover, many implementations described herein could be used in reflective displays having more colors of pixels, such as having pixels corresponding to 4, 5, or more colors. Some such implementations may include pixels corresponding to red, blue, green and yellow. Alternative implementations may include pixels corresponding to at least red, blue, green, yellow and cyan.
An example of a suitable device, to which the described implementations may apply, is a reflective EMS or MEMS-based display device. Reflective display devices can incorporate IMODs to selectively absorb and/or reflect light incident thereon using principles of optical interference. IMODs can include an absorber, a reflector that is movable with respect to the absorber, and an optical resonant cavity defined between the absorber and the reflector. The reflector can be moved to two or more different positions, which can change the size of the optical resonant cavity and thereby affect the reflectance of the IMOD. The reflectance spectrums of IMODs can create fairly broad spectral bands which can be shifted across the visible wavelengths to generate different colors. The position of the spectral band can be adjusted by changing the thickness of the optical resonant cavity. One way of changing the optical resonant cavity is by changing the position of the reflector.
The IMOD display device can include a row/column array of IMODs. Each IMOD can include a pair of reflective layers, i.e., a movable reflective layer and a fixed partially reflective layer, positioned at a variable and controllable distance from each other to form an air gap (also referred to as an optical gap or cavity). The movable reflective layer may be moved between at least two positions. In a first position, i.e., a relaxed position, the movable reflective layer can be positioned at a relatively large distance from the fixed partially reflective layer. In a second position, i.e., an actuated position, the movable reflective layer can be positioned more closely to the partially reflective layer. Incident light that reflects from the two layers can interfere constructively or destructively depending on the position of the movable reflective layer, producing either an overall reflective or non-reflective state for each pixel. In some implementations, the IMOD may be in a reflective state when unactuated, reflecting light within the visible spectrum, and may be in a dark state when unactuated, absorbing and/or destructively interfering light within the visible range. In some other implementations, however, an IMOD may be in a dark state when unactuated, and in a reflective state when actuated. In some implementations, the introduction of an applied voltage can drive the pixels to change states. In some other implementations, an applied charge can drive the pixels to change states.
The depicted portion of the pixel array in
In
The optical stack 16 can include a single layer or several layers. The layer(s) can include one or more of an electrode layer, a partially reflective and partially transmissive layer and a transparent dielectric layer. In some implementations, the optical stack 16 is electrically conductive, partially transparent and partially reflective, and may be fabricated, for example, by depositing one or more of the above layers onto a transparent substrate 20. The electrode layer can be formed from a variety of materials, such as various metals, for example indium tin oxide (ITO). The partially reflective layer can be formed from a variety of materials that are partially reflective, such as various metals, such as chromium (Cr), semiconductors, and dielectrics. The partially reflective layer can be formed of one or more layers of materials, and each of the layers can be formed of a single material or a combination of materials. In some implementations, the optical stack 16 can include a single semi-transparent thickness of metal or semiconductor which serves as both an optical absorber and electrical conductor, while different, electrically more conductive layers or portions (e.g., of the optical stack 16 or of other structures of the IMOD) can serve to bus signals between IMOD pixels. The optical stack 16 also can include one or more insulating or dielectric layers covering one or more conductive layers or an electrically conductive/optically absorptive layer.
In some implementations, the layer(s) of the optical stack 16 can be patterned into parallel strips, and may form row electrodes in a display device as described further below. As will be understood by one having ordinary skill in the art, the term “patterned” is used herein to refer to masking as well as etching processes. In some implementations, a highly conductive and reflective material, such as aluminum (Al), may be used for the movable reflective layer 14, and these strips may form column electrodes in a display device. The movable reflective layer 14 may be formed as a series of parallel strips of a deposited metal layer or layers (orthogonal to the row electrodes of the optical stack 16) to form columns deposited on top of posts 18 and an intervening sacrificial material deposited between the posts 18. When the sacrificial material is etched away, a defined gap 19, or optical cavity, can be formed between the movable reflective layer 14 and the optical stack 16. In some implementations, the spacing between posts 18 may be approximately 1-1000 μm, while the gap 19 may be approximately less than 10,000 Angstroms (Å).
In some implementations, each pixel of the IMOD, whether in the actuated or relaxed state, is essentially a capacitor formed by the fixed and moving reflective layers. When no voltage is applied, the movable reflective layer 14 remains in a mechanically relaxed state, as illustrated by the pixel 12 on the left in
The processor 21 can be configured to communicate with an array driver 22. The array driver 22 can include a row driver circuit 24 and a column driver circuit 26 that provide signals to, for example, a display array or panel 30. The cross section of the IMOD display device illustrated in
In some implementations, a frame of an image may be created by applying data signals in the form of “segment” voltages along the set of column electrodes, in accordance with the desired change (if any) to the state of the pixels in a given row. Each row of the array can be addressed in turn, such that the frame is written one row at a time. To write the desired data to the pixels in a first row, segment voltages corresponding to the desired state of the pixels in the first row can be applied on the column electrodes, and a first row pulse in the form of a specific “common” voltage or signal can be applied to the first row electrode. The set of segment voltages can then be changed to correspond to the desired change (if any) to the state of the pixels in the second row, and a second common voltage can be applied to the second row electrode. In some implementations, the pixels in the first row are unaffected by the change in the segment voltages applied along the column electrodes, and remain in the state they were set to during the first common voltage row pulse. This process may be repeated for the entire series of rows, or alternatively, columns, in a sequential fashion to produce the image frame. The frames can be refreshed and/or updated with new image data by continually repeating this process at some desired number of frames per second.
The combination of segment and common signals applied across each pixel (that is, the potential difference across each pixel) determines the resulting state of each pixel.
As illustrated in
When a hold voltage is applied on a common line, such as a high hold voltage VCHOLD
When an addressing, or actuation, voltage is applied on a common line, such as a high addressing voltage VCADD
In some implementations, hold voltages, address voltages, and segment voltages may be used which produce the same polarity potential difference across the modulators. In some other implementations, signals can be used which alternate the polarity of the potential difference of the modulators from time to time. Alternation of the polarity across the modulators (that is, alternation of the polarity of write procedures) may reduce or inhibit charge accumulation which could occur after repeated write operations of a single polarity.
During the first line time 60a: a release voltage 70 is applied on common line 1; the voltage applied on common line 2 begins at a high hold voltage 72 and moves to a release voltage 70; and a low hold voltage 76 is applied along common line 3. Thus, the modulators (common 1, segment 1), (1,2) and (1,3) along common line 1 remain in a relaxed, or unactuated, state for the duration of the first line time 60a, the modulators (2,1), (2,2) and (2,3) along common line 2 will move to a relaxed state, and the modulators (3,1), (3,2) and (3,3) along common line 3 will remain in their previous state. With reference to
During the second line time 60b, the voltage on common line 1 moves to a high hold voltage 72, and all modulators along common line 1 remain in a relaxed state regardless of the segment voltage applied because no addressing, or actuation, voltage was applied on the common line 1. The modulators along common line 2 remain in a relaxed state due to the application of the release voltage 70, and the modulators (3,1), (3,2) and (3,3) along common line 3 will relax when the voltage along common line 3 moves to a release voltage 70.
During the third line time 60c, common line 1 is addressed by applying a high address voltage 74 on common line 1. Because a low segment voltage 64 is applied along segment lines 1 and 2 during the application of this address voltage, the pixel voltage across modulators (1,1) and (1,2) is greater than the high end of the positive stability window (i.e., the voltage differential exceeded a predefined threshold) of the modulators, and the modulators (1,1) and (1,2) are actuated. Conversely, because a high segment voltage 62 is applied along segment line 3, the pixel voltage across modulator (1,3) is less than that of modulators (1,1) and (1,2), and remains within the positive stability window of the modulator; modulator (1,3) thus remains relaxed. Also during line time 60c, the voltage along common line 2 decreases to a low hold voltage 76, and the voltage along common line 3 remains at a release voltage 70, leaving the modulators along common lines 2 and 3 in a relaxed position.
During the fourth line time 60d, the voltage on common line 1 returns to a high hold voltage 72, leaving the modulators along common line 1 in their respective addressed states. The voltage on common line 2 is decreased to a low address voltage 78. Because a high segment voltage 62 is applied along segment line 2, the pixel voltage across modulator (2,2) is below the lower end of the negative stability window of the modulator, causing the modulator (2,2) to actuate. Conversely, because a low segment voltage 64 is applied along segment lines 1 and 3, the modulators (2,1) and (2,3) remain in a relaxed position. The voltage on common line 3 increases to a high hold voltage 72, leaving the modulators along common line 3 in a relaxed state.
Finally, during the fifth line time 60e, the voltage on common line 1 remains at high hold voltage 72, and the voltage on common line 2 remains at a low hold voltage 76, leaving the modulators along common lines 1 and 2 in their respective addressed states. The voltage on common line 3 increases to a high address voltage 74 to address the modulators along common line 3. As a low segment voltage 64 is applied on segment lines 2 and 3, the modulators (3,2) and (3,3) actuate, while the high segment voltage 62 applied along segment line 1 causes modulator (3,1) to remain in a relaxed position. Thus, at the end of the fifth line time 60e, the 3×3 pixel array is in the state shown in
In the timing diagram of
The details of the structure of IMODs that operate in accordance with the principles set forth above may vary widely. For example,
As illustrated in
In implementations such as those shown in
The process 80 continues at block 84 with the formation of a sacrificial layer 25 over the optical stack 16. The sacrificial layer 25 is later removed (see block 90) to form the cavity 19 and thus the sacrificial layer 25 is not shown in the resulting IMODs 12 illustrated in
The process 80 continues at block 86 with the formation of a support structure such as post 18, illustrated in
The process 80 continues at block 88 with the formation of a movable reflective layer or membrane such as the movable reflective layer 14 illustrated in
The process 80 continues at block 90 with the formation of a cavity, such as cavity 19 illustrated in
Display control module 901 may be configured to render, on electronic display 903, an output frame of video data, such that electronic display 903 is caused to display a halftoned image corresponding to the input frame of video data. More particularly, display control module 901 may receive a plurality of input frames, on a frame by frame basis, for example, where each input frame includes a set of input pixels. Display control module 901 may be configured to generate, for each input frame, an output frame of video data, the output frame of video data including halftoned output pixels generated using a halftoning technique to be described in more detail herein below. As a result, an input video stream of sequential frames of continuous tone pixels may be converted to an output video stream of sequential frames of halftoned pixels.
Each pixel in a frame may be referred to by its spatial (x, y) coordinates within the frame, and by its temporal coordinates, which may be defined by frame number. For example, referring still to
In some implementations, instructions within operating system 1040 may manage the resources of apparatus 1000 to accomplish particular functions of apparatus 1000. For example, operating system 1040 may manage resources such as speaker 45 and microphone 46, as well as antenna 43 and transceiver 47. Operating system 1040 may also include display device drivers that manage electronic display 903, such as a display controlled by display controller 60. A display device driver within operating system 1040 may include instructions that render an image on an electronic display.
For example, instructions within operating system 1040 may render an image on electronic display 903. Operating system 1040 may further include instructions that configure the processor 56 to receive input frames of video data, each input frame including a set of pixels.
Operating system 1040 may further include instructions that configure processor 56 to compute a spatial change rate metric (CRM) and a temporal CRM for each input pixel and to generate corresponding halftoned output pixels. As described in more detail herein below, generating the corresponding halftoned output pixels may, advantageously, be performed using techniques selected as appropriate in light of the computed temporal and spatial CRM. Therefore, instructions within operating system 1040 represent one way for selecting and applying a halftoning technique.
In other implementations, the functions described above as included in operating system 1040 may instead be included in host software 1030. Alternatively, these functions may instead be implemented by instructions included in display control firmware 1020. In still other implementations, these functions may be implemented in special purpose circuits. It will be appreciated that other implementations that may vary from the block diagram of
One aspect of the present disclosure relates to adaptively selecting, on a pixel-by-pixel basis, between a mask-based dithering halftoning technique and an error diffusion halftoning technique. Accordingly, a better understanding of the present disclosure may result from summarizing certain characteristics of each technique.
Mask-based dithering halftoning methods are pixel-parallel, fast, and simple. However, halftone images from simple mask-based dithering have objectionable characteristics, such as, for example, pattern visibility, noisy appearance (especially in mid-tone areas), and poor reproduction of highly textured image details.
Error diffusion halftoning techniques based, for example, on Floyd Steinberg error diffusion (FSED) are known to provide better quality halftones than mask-based dithering, particularly for highly textured images. However, when the video image data relates to a static flat field image element, applying FSED-based methods can produce worm-like directional artifacts and/or generate temporal flickering or “boiling.” Boiling occurs when a stationary object in a video sequence is rendered with different halftone patterns in the corresponding halftone sequence. Halftone images generated by conventional Floyd-Steinberg error diffusion are particularly susceptible to boiling.
According to various implementations, a hybrid video image halftoning technique may adaptively select, on a pixel-by-pixel basis, between an error diffusion halftoning technique and a mask-based dithering halftoning technique.
In one implementation, a temporal change rate metric (CRM) and a spatial CRM may be computed for each pixel. The temporal CRM may quantify a comparison of image data for a current frame of an image element at or near the pixel, to corresponding image data from a comparison frame. The comparison frame may be, for example, a preceding frame or an immediately preceding frame. The temporal CRM of each input pixel may be computed by comparing a halftone value of the input pixel to a halftone value of a corresponding output pixel of the comparison frame. A higher value for a temporal CRM, for example, may indicate a rapid change in image data with respect to time, meaning, for example, that an image element is moving from frame to frame. A lower value for a temporal CRM, on the other hand, may indicate that the image element is relatively static with respect to time.
The spatial CRM may quantify a comparison of image data to be rendered by the pixel to image data to be rendered by adjacent or nearby pixels. A higher value for a spatial CRM, for example, may indicate that the pixel in the current frame represents part of a highly textured image element, or an edge of an image element. A lower value for a spatial CRM, on the other hand, may indicate that the pixel in the current frame represents part of an image element that is relatively flat field. The spatial CRM of each input pixel may be computed by comparing a data value for the input pixel to corresponding data values for neighboring input pixels. The neighboring input pixels and the input pixel may be located in a common local region of the input frame. The local region may be, for example, a 3×3 pixel block, a 5×5 pixel block, a 7×7 pixel block, etc., and the input pixel may be substantially centered in the local region.
For each pixel, a halftoning technique may be selected taking into account the computed spatial CRM and temporal CRM. Unless each of the spatial CRM and the temporal CRM is less than a respective threshold value, halftoning may be performed using an FSED halftoning technique. When both first CRM and second CRM are less than the respective threshold values, halftoning may be performed with either the error diffusion halftoning technique or a mask-based dithering technique. Advantageously, however, two halftone values may be determined, namely, a first halftone value produced by an error diffusion halftoning technique, and a second halftone value produced by a mask-based dithering technique. One of the two halftone values may be selected such that the selected value results in a lesser change from the halftone value of the pixel in the comparison frame.
Blocks 1405 and 1407 may operate substantially in parallel and, on a pixel-by-pixel basis, may each compute a halftone value for each pixel using, respectively, a mask-based dithering halftoning technique and an error diffusion halftoning technique.
Outputs of blocks 1405 and 1407 may be forwarded to scene analyzer block 1403. Scene analyzer block 1403 also receives from block 1415 halftone image data for corresponding local elements of a comparison frame. In some implementations, the comparison frame may be a preceding frame, such as an immediately preceding frame, for example. In an implementation, the halftone image data for the corresponding local elements of the comparison frame are stored in a frame buffer, for example frame buffer 64.
Scene analyzer block 1403 may compute, for each pixel, the spatial CRM and the temporal CRM as described above. Based on the computed temporal CRM, at decision block 1411, a determination may be made whether local image data is changing significantly, with respect to time, such that the temporal CRM exceeds a first threshold. When the temporal CRM exceeds the first threshold, the pixel, at quantization block 1419, may be halftoned by the error diffusion halftoning technique.
When the temporal CRM does not exceed the first threshold, a determination may be made, at decision block 1413, based on the computed spatial CRM, whether the current pixel belongs to a significantly textured local region, such that the spatial CRM exceeds a second threshold. When the spatial CRM exceeds the second threshold, the pixel, at quantization block 1419, may be halftoned by the error diffusion halftoning technique.
When the spatial CRM does not exceed the second threshold, at block 1417, a choice may be made between the mask-based dithering halftoning technique and the error diffusion halftoning technique. In one implementation, the selected technique is the technique that produces a halftone value closer to the halftone value of the corresponding output pixel in a comparison frame, for example, a preceding frame. At quantization block 1419, a halftoned output pixel is generated using the selected technique. A quantization error is also output from block 1419 and forwarded to error clipping block 1421, operation of which will be described herein below. An output of error clipping block 1421 is forwarded to error diffusion block 1407.
Advantageously, block 1421 clips quantization error into a particular, acceptable, error range. In a conventional error diffusion method, quantization error is inherently bounded. For example, in bi-level error diffusion where an output is either 0 (black) or 1 (white) and the threshold is about 0.5, the range of quantization error is about −0.5 to 0.5. This bound may never be exceeded because whenever the quantization error approaches this bound, error diffusion forces the error to move in the opposite direction (closer to the other threshold). However, in the proposed hybrid halftoning, in the absence of the present error clipping scheme, the quantization error is not necessarily bounded because mask-based dithering halftoning operates independently of quantization error in general. As such, error clipping block 1421 can be provided in some implementations to keep the quantization error bounded.
Process 1500 of
If the halftoning mode is two bits per pixel, process 1500 moves from decision block 1510 to decision block 1550 where the output pixel is compared to zero. If the output pixel is zero, process 1500 moves from decision block 1550 to processing block 1555, where the error is clipped. In the illustrated implementation, the error is clipped to between 0.0 and 0.25, but other clip values may be used in different implementations. If the output bit is not zero, process 1500 moves from decision block 1550 to decision block 1560, where the output pixel is compared to ⅓ (0x01). If the output bits are set to ⅓, process 1500 moves from decision block 1560 to processing block 1565, where the error is clipped. In the illustrated implementation, the error is clipped to a value between − 1/12 and ⅙, but other clip values may be used in different implementations. If the output pixel does not equal ⅓, process 1500 moves from decision block 1560 to decision block 1570, where the output pixel is compared to a value of ⅔ (0x10). If the output pixel does equal ⅔, process 1500 moves from decision block 1570 to processing block 1575, where the error is clipped. In the illustrated implementation, the error is clipped to a value between −⅙ and 1/12, but other clip values may be used in different implementations. If the output pixel does not equal ⅔, process 1500 moves to processing block 1580 where the error is clipped. In the illustrated implementation, the error is clipped to a value between −¼ and 0, but other clip values may be used in different implementations. Process 1500 then moves to end state 1590. It will be appreciated that the error clipping method illustrated in
The method may begin at block 1610 with receiving an input frame of video data, the input frame including a plurality of input pixels. The input frame may be received from another component of an apparatus including an electronic display, such as, for example a memory or input device of the apparatus. In addition, or alternatively, the source of the input frame may be external to the apparatus, for example, a broadcast or cellular network, or the Internet.
At block 1620, an output frame of video data may be generated. The output frame may include halftoned output pixels, generated in accordance with a method illustrated in
At block 1630, a determination may be made whether an additional input frame remains to be processed. If there is at least one additional input frame remaining to be processed, the process may return to block 1610. If there is no more input frame to be processed, the process may stop at block 1640.
Referring now to
At block 1621 an input pixel may be received. The input pixel may be one of a number of pixels associated with a common input frame.
At block 1622, a temporal CRM and a spatial CRM may be computed. The temporal CRM may quantify a comparison of image data for a current frame of an image element at or near the pixel, to corresponding image data from a comparison frame. In an implementation, the temporal CRM may be determined by comparing a local average pixel value of the current input frame and a local average pixel value of a corresponding pixel in the comparison frame. The comparison frame may be a preceding frame, such as an immediately preceding frame, but this is not necessarily so. The temporal CRM of each input pixel may be computed by comparing a halftone value of the input pixel to a halftone value of a corresponding output pixel of the comparison frame. A higher value for a temporal CRM, for example, may indicate a rapid change in image data with respect to time, meaning, for example, that an image element is moving from frame to frame. A lower value for a temporal CRM, on the other hand, may indicate that the image element is relatively static with respect to time.
The spatial CRM may quantify a comparison of image data to be rendered by the pixel to image data to be rendered by adjacent or nearby pixels. A higher value for a spatial CRM, for example, may indicate that the pixel, in the current frame, represents part of a highly textured image element or an edge of an image element. A lower value for a spatial CRM, on the other hand, may indicate that the pixel, in the current frame, represents part of an image element that is relatively flat field. The spatial CRM of each input pixel may be computed by comparing a data value for the input pixel to corresponding data values for neighboring input pixels. In an implementation, the spatial CRM may be computed by applying a two dimensional high pass filter to the image data.
At block 1623, a determination may be made as to whether the input pixel is associated with a substantially stationary and uniform region in a respective frame. If neither of the temporal CRM and the spatial CRM exceeds a respective, separately determined, threshold, a determination may be made that the input pixel is associated with a substantially stationary and uniform region in a respective frame. If either the temporal CRM exceeds its respective threshold or the spatial CRM exceeds its respective threshold, the method may proceed to block 1624. On the other hand, if both the temporal CRM and the spatial CRM are less than or equal to their respective thresholds, a determination may be made that the input pixel is associated with a substantially stationary and uniform region in the respective frame, the method may proceed to block 1625.
At block 1625, an error-diffusion based halftone value and a mask-based dithering halftone value may be generated.
At block 1626, a determination may be made as to which of the first halftone value and the second halftone value is closer to a halftone value of a corresponding output pixel in a comparison frame. Based on the determination, one of the error diffusion-based halftone value and the mask-based dithering halftone value that is closer to the halftone value of the corresponding output pixel in the comparison frame may be selected. If the error diffusion-based halftone value is selected, the method may proceed to block 1624. On the other hand, if the mask-based dithering halftone value is selected, the method may proceed to block 1627.
At block 1624, a halftoned output pixel may be generated by performing error diffusion on the input pixel.
At block 1627, a halftoned output pixel may be generated an output pixel by performing mask-based dithering on the input pixel.
At block 1628, a determination may be made whether an additional input pixel remains to be processed. If yes, the process may return to block 1621. If no, the process may return to block 1630 in
Referring now to
The display device 40 includes a housing 41, a display 30, an antenna 43, a speaker 45, an input device 48 and a microphone 46. The housing 41 can be formed from any of a variety of manufacturing processes, including injection molding, and vacuum forming. In addition, the housing 41 may be made from any of a variety of materials, including, but not limited to: plastic, metal, glass, rubber and ceramic, or a combination thereof. The housing 41 can include removable portions (not shown) that may be interchanged with other removable portions of different color, or containing different logos, pictures, or symbols.
The display 30 may be any of a variety of displays, including a bi-stable or analog display, as described herein. The display 30 also can be configured to include a flat-panel display, such as plasma, EL, OLED, STN LCD, or TFT LCD, or a non-flat-panel display, such as a CRT or other tube device. In addition, the display 30 can include an IMOD display, as described herein.
The components of the display device 40 are schematically illustrated in
The network interface 27 includes the antenna 43 and the transceiver 47 so that the display device 40 can communicate with one or more devices over a network. The network interface 27 also may have some processing capabilities to relieve, for example, data processing requirements of the processor 21. The antenna 43 can transmit and receive signals. In some implementations, the antenna 43 transmits and receives RF signals according to the IEEE 16.11 standard, including IEEE 16.11(a), (b), or (g), or the IEEE 802.11 standard, including IEEE 802.11a, b, g, n, and further implementations thereof. In some other implementations, the antenna 43 transmits and receives RF signals according to the BLUETOOTH standard. In the case of a cellular telephone, the antenna 43 is designed to receive code division multiple access (CDMA), frequency division multiple access (FDMA), time division multiple access (TDMA), Global System for Mobile communications (GSM), GSM/General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE), Terrestrial Trunked Radio (TETRA), Wideband-CDMA (W-CDMA), Evolution Data Optimized (EV-DO), 1xEV-DO, EV-DO Rev A, EV-DO Rev B, High Speed Packet Access (HSPA), High Speed Downlink Packet Access (HSDPA), High Speed Uplink Packet Access (HSUPA), Evolved High Speed Packet Access (HSPA+), Long Term Evolution (LTE), AMPS, or other known signals that are used to communicate within a wireless network, such as a system utilizing 3G or 4G technology. The transceiver 47 can pre-process the signals received from the antenna 43 so that they may be received by and further manipulated by the processor 21. The transceiver 47 also can process signals received from the processor 21 so that they may be transmitted from the display device 40 via the antenna 43.
In some implementations, the transceiver 47 can be replaced by a receiver. In addition, in some implementations, the network interface 27 can be replaced by an image source, which can store or generate image data to be sent to the processor 21. The processor 21 can control the overall operation of the display device 40. The processor 21 receives data, such as compressed image data from the network interface 27 or an image source, and processes the data into raw image data or into a format that is readily processed into raw image data. The processor 21 can send the processed data to the driver controller 29 or to the frame buffer 28 for storage. Raw data typically refers to the information that identifies the image characteristics at each location within an image. For example, such image characteristics can include color, saturation and gray-scale level.
The processor 21 can include a microcontroller, CPU, or logic unit to control operation of the display device 40. The conditioning hardware 52 may include amplifiers and filters for transmitting signals to the speaker 45, and for receiving signals from the microphone 46. The conditioning hardware 52 may be discrete components within the display device 40, or may be incorporated within the processor 21 or other components.
The driver controller 29 can take the raw image data generated by the processor 21 either directly from the processor 21 or from the frame buffer 28 and can re-format the raw image data appropriately for high speed transmission to the array driver 22. In some implementations, the driver controller 29 can re-format the raw image data into a data flow having a raster-like format, such that it has a time order suitable for scanning across the display array 30. Then the driver controller 29 sends the formatted information to the array driver 22. Although a driver controller 29, such as an LCD controller, is often associated with the system processor 21 as a stand-alone Integrated Circuit (IC), such controllers may be implemented in many ways. For example, controllers may be embedded in the processor 21 as hardware, embedded in the processor 21 as software, or fully integrated in hardware with the array driver 22.
The array driver 22 can receive the formatted information from the driver controller 29 and can re-format the video data into a parallel set of waveforms that are applied many times per second to the hundreds, and sometimes thousands (or more), of leads coming from the display's x-y matrix of pixels.
In some implementations, the driver controller 29, the array driver 22, and the display array 30 are appropriate for any of the types of displays described herein. For example, the driver controller 29 can be a conventional display controller or a bi-stable display controller (such as an IMOD controller). Additionally, the array driver 22 can be a conventional driver or a bi-stable display driver (such as an IMOD display driver). Moreover, the display array 30 can be a conventional display array or a bi-stable display array (such as a display including an array of IMODs). In some implementations, the driver controller 29 can be integrated with the array driver 22. Such an implementation can be useful in highly integrated systems, for example, mobile phones, portable-electronic devices, watches or small-area displays.
In some implementations, the input device 48 can be configured to allow, for example, a user to control the operation of the display device 40. The input device 48 can include a keypad, such as a QWERTY keyboard or a telephone keypad, a button, a switch, a rocker, a touch-sensitive screen, or a pressure- or heat-sensitive membrane. The microphone 46 can be configured as an input device for the display device 40. In some implementations, voice commands through the microphone 46 can be used for controlling operations of the display device 40.
The power supply 50 can include a variety of energy storage devices. For example, the power supply 50 can be a rechargeable battery, such as a nickel-cadmium battery or a lithium-ion battery. In implementations using a rechargeable battery, the rechargeable battery may be chargeable using power coming from, for example, a wall socket or a photovoltaic device or array. Alternatively, the rechargeable battery can be wirelessly chargeable. The power supply 50 also can be a renewable energy source, a capacitor, or a solar cell, including a plastic solar cell or solar-cell paint. The power supply 50 also can be configured to receive power from a wall outlet.
In some implementations, control programmability resides in the driver controller 29 which can be located in several places in the electronic display system. In some other implementations, control programmability resides in the array driver 22. The above-described optimization may be implemented in any number of hardware and/or software components and in various configurations.
The various illustrative logics, logical blocks, modules, circuits and algorithm steps described in connection with the implementations disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. The interchangeability of hardware and software has been described generally, in terms of functionality, and illustrated in the various illustrative components, blocks, modules, circuits and steps described above. Whether such functionality is implemented in hardware or software depends upon the particular application and design constraints imposed on the overall system.
The hardware and data processing apparatus used to implement the various illustrative logics, logical blocks, modules and circuits described in connection with the aspects disclosed herein may be implemented or performed with a general purpose single- or multi-chip processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, or, any conventional processor, controller, microcontroller, or state machine. A processor also may be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. In some implementations, particular steps and methods may be performed by circuitry that is specific to a given function.
In one or more aspects, the functions described may be implemented in hardware, digital electronic circuitry, computer software, firmware, including the structures disclosed in this specification and their structural equivalents thereof, or in any combination thereof. Implementations of the subject matter described in this specification also can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on a computer storage media for execution by, or to control the operation of, data processing apparatus.
If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. The steps of a method or algorithm disclosed herein may be implemented in a processor-executable software module which may reside on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that can be enabled to transfer a computer program from one place to another. A storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer. Also, any connection can be properly termed a computer-readable medium. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above also may be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and instructions on a machine readable medium and computer-readable medium, which may be incorporated into a computer program product.
Various modifications to the implementations described in this disclosure may be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other implementations without departing from the spirit or scope of this disclosure. Thus, the claims are not intended to be limited to the implementations shown herein, but are to be accorded the widest scope consistent with this disclosure, the principles and the novel features disclosed herein. The word “exemplary” is used exclusively herein to mean “serving as an example, instance, or illustration.” Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other possibilities or implementations. Additionally, a person having ordinary skill in the art will readily appreciate, the terms “upper” and “lower” are sometimes used for ease of describing the figures, and indicate relative positions corresponding to the orientation of the figure on a properly oriented page, and may not reflect the proper orientation of an IMOD as implemented.
Certain features that are described in this specification in the context of separate implementations also can be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation also can be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, a person having ordinary skill in the art will readily recognize that such operations need not be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Further, the drawings may schematically depict one more example processes in the form of a flow diagram. However, other operations that are not depicted can be incorporated in the example processes that are schematically illustrated. For example, one or more additional operations can be performed before, after, simultaneously, or between any of the illustrated operations. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products. Additionally, other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results.
This disclosure claims priority under 35 U.S.C. §119 to U.S. Provisional Patent Application No. 61/535,891, filed Sep. 16, 2011, entitled “METHODS AND APPARATUS FOR HYBRID HALFTONING AN IMAGE,” and assigned to the assignee hereof, and is a continuation-in-part of and claims priority under 35 U.S.C. §120 to U.S. patent application Ser. No. 13/422,819, filed Mar. 16, 2012, and entitled “METHODS AND APPARATUS FOR HYBRID HALFTONING OF AN IMAGE,” and assigned to the assignee hereof, the disclosures of which are considered part of, and are hereby incorporated by reference in, this disclosure for all purposes.
Number | Date | Country | |
---|---|---|---|
61535891 | Sep 2011 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13422819 | Mar 2012 | US |
Child | 13480314 | US |