Opportunistic compression for display self refresh

A display device, a processing system, and a method are provided for updating a display device using self-refresh techniques. The described technique provides an indication to a host processor of whether a frame of display update data has been successfully compressed and stored entirely within a local frame buffer of the display. The host processor may invoke a self-refresh of the display for updating the display with a static display image, based on the received indications.

FIELD OF THE INVENTION

This invention generally relates to updating a display device.

BACKGROUND OF THE INVENTION

Display devices for updating images on a display screen are widely used in a variety of electronic systems. A typical display device includes a source that provides display data that is used to update the screen. The display data may be organized into display frames which are transmitted from the source to the display screen at a predefined rate. In one example, each display frame corresponds to an image to be displayed on the screen. The display screen may include display drivers that update the individual pixels on the display screen using the received display frames. The pixels in the display screen are typically assigned to one of the source drivers—e.g., the pixels in columns1-5are assigned to Source Driver1, the pixels in columns6-10are assigned to Source Driver2, and so forth.

BRIEF SUMMARY OF THE INVENTION

Embodiments described herein include a processing system for a display. The processing system includes a display memory, a compression module, and a display driver module. The compression module is configured to receive a first frame of display update data from a host processor coupled to the processing system, compress the first frame of display update data, and store the compressed first frame of display update data in the display memory. The display driver module is configured to update a display using the compressed first frame of display update data from the display memory. The processing system is configured to transmit a confirmation to the host processor indicating that the first frame of display update data was successfully compressed and stored in the display memory of the processing system.

Another embodiment of the present disclosure provides a method for operating a display device. The method includes receiving a first frame of display update data from a host processor, compressing the first frame of display update data, and storing the compressed first frame of display update data in a display memory. The method further includes responsive to determining the compressed first frame of display update data was entirely stored in the display memory, transmitting a confirmation to the host processor indicating that the first frame of display update data was successfully compressed. The method includes updating the display device using the compressed first frame of display update data from the display memory.

Embodiments described herein further provide a device having a host processor, and a processing system coupled to the host processor. The processing system includes a display memory, a compression module, and a display driver module. The compression module is configured to receive a first frame of display update data from the host processor, compress the first frame of display update data, and store the compressed first frame of display update data in the display memory. The display driver module is configured to update a display using the compressed first frame of display update data from the display memory. The processing system is configured to transmit a confirmation to the host processor indicating that the first frame of display update data was successfully compressed and stored in the display memory of the processing system.

DETAILED DESCRIPTION OF THE INVENTION

Various embodiments of the present invention provide display devices and methods that facilitate improved output display. Various embodiments of the present invention provide display devices and methods for updating a display. In one embodiment, frame(s) of display update data are compressed and stored in a local frame buffer of the display, which may be sized smaller than the frame buffer of the host processor providing the display update data. As the results of the compression may vary depending on the content of the display update data and the compression algorithm used, a processing system transmits indications after each display updating period of whether the frame was successfully compressed and stored in the local frame buffer. The host processor uses these indications to determine whether a self-refresh mode can be invoked at the processing system. For the next display frame, the processing system may continue to operate in a video mode and receive a new display frame from the host processor for the next frame. Alternatively, the processing system110may operate in a self-refresh mode wherein the host processor signals the processing system to use the compressed frame to refresh the display.

Turning now to the figures,FIGS. 1A and 1Bare block diagrams of an exemplary display device100, in accordance with embodiments of the invention. The display device100may be configured to display output from a host processor102of an electronic system (not shown). As used in this document, the term “electronic system” (or “electronic device”) broadly refers to any system capable of electronically processing information. Some non-limiting examples of electronic systems include personal computers of all sizes and shapes, such as desktop computers, laptop computers, netbook computers, tablets, web browsers, e-book readers, and personal digital assistants (PDAs). Other examples include remote terminals, kiosks, and video game machines (e.g., video game consoles, portable gaming devices, and the like). Other examples include communication devices (including cellular phones, such as smart phones), and media devices (including recorders, editors, and players such as televisions, set-top boxes, music players, digital photo frames, and digital cameras). Additionally, the electronic system could be a host or a slave to the display device100.

The display device100includes a processing system110and a display120. The processing system110may be a timing controller, display controller, and the like. The processing system110may be part of an integrated circuit or system on a chip (SoC). Moreover, the processing system110may be disposed on the same substrate as the host processor102(e.g., mounted on the same PCB) or mounted on different substrates. The display120may be any type of dynamic display capable of displaying a visual interface to a user, and may include any type of light emitting diode (LED), organic LED (OLED), cathode ray tube (CRT), liquid crystal display (LCD), plasma, electroluminescence (EL), or other display technology.

In one embodiment, the processing system110of the display device100is communicatively coupled to the host processor102, which acts as a display source for the display device100. The host processor102includes a display engine104and a frame buffer106. The display engine104may be a graphics processing unit, a separate or integrated electronic system, and the like. The display engine104is configured to transmit frames of display update data to the processing system110. The frame buffer106comprises system memory having a size sufficient to store one or more frames of display update data.

The processing system110includes a display driver module112, a compression module114, and a frame buffer116. The display driver module112includes circuitry configured to provide display image update information to the display120of the display device100during display updating periods. The display driver module112may be included in or be separate from the processing system110. In one embodiment, the processing system110comprises a first integrated controller comprising the display driver module112, the compression module114, and the frame buffer116. In another embodiment, the processing system110comprises a first integrated controller comprising the display driver module112and a second integrated controller comprising the compression module and/or the frame buffer116.

In one embodiment, the processing system110may be configured to operate in a first mode, referred to as a “video mode,” in which the processing system110constantly refreshes the display120using display frames122provided by the host processor102. The processing system110may be further configured to operate in a second mode, referred to as a “command mode” or a “self-refresh mode,” in which the processing system maintains the display image on the display120using the frame buffer116and without further data from the host processor102. For a static display image, the self-refresh mode allows for a lower power consumption as the host processor102does not need to re-send the frame buffer data and can remain in a low power state.

However, in embodiments having a high resolution display120, challenges arise in implementing a self-refresh mode because the size of the frame buffer116becomes large enough to be cost prohibitive. Compression of the display frame data is one approach to overcome this problem, but suffers in that not all display images can be compressed sufficiently. Even if lossy compression is used, in which the image quality is reduced until the image can be compressed, lossy compression nonetheless limits the memory savings to be about 25% or 33% of the uncompressed display image. In many cases, display images can be compressed to a much larger degree, but this cannot be guaranteed, so frame buffer memory must be provisioned for the worst case scenario.

Accordingly, embodiments of the present disclosure support a self-refresh mode even for displays with high resolutions, where a full or half size frame buffer may not be affordable. In one embodiment, the frame buffer116may be a display memory having a size that is significantly smaller than a full frame buffer, e.g., the frame buffer106of the host processor102. The compression module114is configured to receive frames of display update data from the host processor102, compress, and store the frame of display update data in the frame buffer116. The display driver module112is configured to update the display120using the frame of display update data stored in the frame buffer116.

In the embodiment shown inFIG. 1A, the processing system110is configured to operate in a video mode in which, in parallel to the video data path, the compression module114attempts to compress the video stream. The compressed video stream (depicted as compressed data124) is then stored in the local frame buffer116. At the end of the frame, the processing system110transmits a message126back to the host processor102indicating whether the display frame has been successfully compressed and stored in the frame buffer116. As used herein, a “successful” compression of a display frame refers to a compression process operating on a display frame to a degree such that the display frame in its compressed form fits entirely within the frame buffer116.

The host processor102is configured to modify its operations with respect to the next display frame for the processing system110based on the indications of whether the previous display frame was completely compressed. That is, the host processor102is configured to opportunistically employ the self-refresh mode at the processing system110(if appropriate), or otherwise default to using the video mode. For example, for a next display frame, the processing system110may continue to operate in the video mode and receive a new display frame from the host processor102for the next frame. Alternatively, in the embodiment shown inFIG. 1B, the processing system110may operate in a self-refresh mode wherein the host processor102signals (depicted as arrow128) the processing system110to use the compressed data124to refresh the display120.

In some embodiments, the host processor102may signal to the processing system110to self-refresh using the display data contained in the frame buffer116, even though the frame buffer116might not contain an entire display frame. In such cases, the host processor102may provide a remaining portion of the display frame (depicted as dashed arrow130), which can be used in combination with the compressed data124to update the display120.

FIG. 2is a flow diagram of a method200for updating a display device100, according to one embodiment of the present disclosure. The method200begins at step202, where the processing system110(e.g., by operation of the display driver module112) receives a first frame of display update data from the host processor102. The first frame may include at least a portion of a display frame which is used by the display driver module112to update the display120.

At step204, the processing system110(e.g., by operation of the compression module114) compresses the first frame of display update data. In some embodiments, the compression module114receives and processes the first frame of display update data in parallel to the display driver module112receiving and using the first frame of display update data to update the display120(i.e., in the video mode of operation). In one implementation, the frame of display update data is compressed using a visually lossless algorithm such that a user cannot visually tell a difference between an image on the display120that was outputted using a compressed display frame or an uncompressed display frame. One such suitable compression algorithm is the Display Stream Compression (DSC) standard. However, the embodiments herein are not limited to visually lossless compression algorithms and may be used with any compression algorithm that compresses the display frame data.

While embodiments describe herein provide that compression of the frames of display update data is performed by a compression module114disposed within the processing system110, it should be recognized that in some embodiments, the compression algorithm may be executed by the host processor102and the compressed frames are transmitted to the processing system110. In such embodiments, in some cases, the compression algorithm executing on the host processor102may determine that the compressed frame will not fit on the frame buffer116, and discard the compressed frame rather than transmit the frame.

At step206, the processing system110stores the compressed frame of display update data in a display memory, such as the frame buffer116. In some embodiments, the processing system110may compress and store the frame of display update data in a streaming fashion, where the compression module114stores a compressed chunk or portion of the frame prior to compressing another chunk of the display frame. Depending on the actual content of the display frame, as well as the compression algorithm used, the display frame in compressed form may or may fit entirely within the frame buffer116.

As such, at step208, the processing system110determines whether the compressed display frame has been entirely stored in the display memory (e.g., frame buffer116). If so, at step210, the processing system110transmits a confirmation to the host processor102indicating that the first frame of display update data has been successfully compressed in the frame buffer116.

At step212, for a next display update, the processing system110(e.g., by execution of the display driver module112) updates the display device100using the compressed first frame of display update data retrieved from the display memory (frame buffer116). The processing system110(e.g., by execution of the compression module114) retrieves and decompresses the display frame from the frame buffer116. In some embodiments, the processing system110receives an indication or signal from the host processor102to operate in a self-refresh mode, i.e., indicating that a static display image may be updated using the compressed display frame stored in the frame buffer116. In some embodiments, the processing system110may be configured to generate display update timing based on the compressed first frame of display update data.

It should be recognized that in some cases, the host processor102may continue to operate in a video mode of operation, in which the processing system110receives a second frame of display update data from the host processor102. In such cases, the processing system110(e.g., by execution of the compression module114) compresses the second frame of display update data and replaces the compressed display update data in the display memory with the compressed second frame of display update data.

At step214, responsive to determining that less than an entirety of the first frame of display update data was compressed and stored in the display memory, the processing system110transmits an indication to the host processor102that the first frame of display update data was not successfully compressed. In embodiments where compression and storage of the display update data is performed in a streaming fashion, the compression module114may be configured to halt compression of the first frame of display update data in response to determining that the display memory is full.

At step216, for a next display update, the processing system110(e.g., by execution of the display driver module112) updates the display device100using the less than entire first frame of display update data from the display memory and a remaining portion of the first frame of display update data received from the host processor102.

FIGS. 3A and 3Bare block diagrams of the display device100performing opportunistic self-refresh of a display, in accordance with another embodiment of the present disclosure. In one or more embodiments, each frame of display update data may be organized into a plurality of sections corresponding to portions of the display120. In the embodiment shown, the frame of display update data is organized into eight sections (identified as section1,2,3, . . .8), although any number or geometry of sections and divisions may be used.

As shown inFIG. 3A, the compression module114attempts to compress and store a frame302of display update data received from the host processor102. The compression module114is able to fit sections1,2,3,4,5, and6of the compressed display update data304into the frame buffer116, but has insufficient space for fitting sections7and8of display update data. The processing system110transmits an indication306that a frame of display update data was not successfully compressed and that identifies which of the sections of the frame of display update data were successfully compressed, were not successfully compressed, or both. For example, the processing system110transmits an indication306that the sections1,2,3,4,5, and6have been successfully compressed, but not sections7and8of the display update data.

InFIG. 3B, at a next display updating period, the display engine104might determine the next display frame is the same as the previous display frame (i.e., a static display image), which is the appropriate scenario for a self-refresh mode of updating the display120. However, the host processor102knows the frame buffer116of the display device100does not have a complete copy of the previous display frame, based on the indication306received from the processing system110in the prior display updating period. In one approach, the host processor102may forego self-refresh mode altogether and transmit the entire frame of display update data in the video mode of operation. Alternatively, the host processor102may transmit a signal (arrow128) indicating the processing system110should self-refresh using what display update data is compressed and stored in the frame buffer116, in conjunction with transmitting remaining portions308of the display update data that were not stored in the frame buffer116. In the example shown, the host processor102transmits just sections7and8of the display update data, instead of all sections1to8, to the processing system110. As such, the display driver module112updates the display120using the portions of the frame of display update data stored in frame buffer116and the portions of the frame of display update data provided by the host processor102.

Thus, the embodiments and examples set forth herein were presented in order to best explain the present invention and its particular application and to thereby enable those skilled in the art to make and use the invention. However, those skilled in the art will recognize that the foregoing description and examples have been presented for the purposes of illustration and example only. The description as set forth is not intended to be exhaustive or to limit the invention to the precise form disclosed.