The disclosure relates generally to a method and apparatus for providing an indication of a static frame.
Systems for processing and displaying graphics usually include a graphic sub-system such as a graphic processing unit (GPU) for providing display data and a display device for presenting display content. The display device usually includes or couples to a controller such as a timing controller (TCON) that acts as an interface and controller for a display panel of the display device. For example, the TCON receives display data from the GPU with control instructions, and controls writing of pixels and directs operations of the display panel. In addition to display data in display frames, other data, such as but not limited to test signals, time codes, closed captions, copy-right indicators, and content ratings, may be transmitted in vertical blanking intervals (VBI) from the GPU to the TCON. The VBI, also known as VBLANK, is the time difference between the last line of one display frame and the first line of the next display frame. The incoming data stream in the VBI is consisted of a number of blanking scan lines that are not displayed on the screen. The length or the number of the blanking scan lines of the VBI may vary among different graphic processing and display systems.
In order to reduce power consumption of the system, when no graphic processing activity and/or lack of update to the frame buffer have been detected for a period of time, both the GPU and the TCON may enter a self-refresh mode that includes powering down one or more components, capturing the current display frame from the GPU as a static frame, and repeatedly outputting the captured static frame to the display panel for display. To enter the self-refresh mode, the static frame is captured from a frame buffer of the graphic sub-system to the TCON and is stored in a static frame buffer of the TCON for display. The graphic sub-system needs to notify the TCON that the captured static frame is arrived and can be stored in the static frame buffer before switching to the self-refresh mode.
In responding to these situations, some known systems introduce new secondary packets in addition to the display frames for notification of the arrival of a static frame. The secondary packet contains information of whether the associated display frame is a static frame or a dynamic frame. The packet-based approach, however, requires a change to the Video Electronics Standards Association (VESA) DisplayPort standard in order to embed extra packets into the data channel (also known as the main link), which is undesirable for the current graphic processing and display systems.
Other proposed solutions utilize the sideband channel (also known as auxiliary (AUX) channel in the DisplayPort standard) to transmitting control/status signals for notification of the arrival of a static frame. For example, the I2C (inter-integrated circuit) bus is used by some known systems (for example, VGA, LVDS, DVI and HDMI) for transmitting the control/status signals. However, it's known that the sideband channels such as the I2C bus suffer has various limitations such as the low speed. In addition, as the control/status signals and the display frames are transmitted through different channels (i.e., the sideband channel and the data channel, respectively), the control/status signals need to be synchronized with the display frames in order to accurately indicate the arrival of the static frame. As such, additional timing signals and synchronization operations may be necessary in these systems.
It is also known to change the length of VBIs in a graphic processing and display system to achieve a dynamic-refreshing feature. In that system, the refresh rate of the display frame displayed on the screen may be dynamically changed by changing the length of the VBIs between each display frame. Nevertheless, the changed VBIs have not been applied for notification of the arrival of a static frame from a display data transmitter, e.g., a processor such as, for example, a graphic processing unit (GPU), to a display data receiver, e.g., a timing controller (TCON).
Accordingly, there exists a need for an improved method and apparatus for providing the indication of a static frame.
The embodiments will be more readily understood in view of the following description when accompanied by the below figures and wherein like reference numerals represent like elements, wherein:
Briefly, in one example, a method and apparatus notifies the arrival of a static frame by changing a vertical blanking interval for the static frame. For example, the method and apparatus may determine that a display frame is a static frame if no graphic processing activity and/or lack of update to the frame buffer have been detected for a period of time. In response to a display frame being a static frame, the method and apparatus may change the vertical blanking interval that is immediately before the static frame by increasing the number of blanking scan lines in the vertical blanking interval. The changed vertical blanking interval may be transmitted with the static frame as an indicator of the arrival of the static frame, so that the apparatus may enter a self-refresh mode to repeatedly display the static frame.
Among other advantages, the method and apparatus provides a simple way to notify the arrival of a static frame, thereby reducing the overall complexity of implementing the self-refreshing feature in graphic processing and display systems. Compared with known solutions, the method and apparatus does not need to change the current DisplayPort standard to add new secondary packets for each display frame, or to transmit additional unsynchronized control/status signals through the sideband channel in order to notify the arrival of a static frame. In addition, the method and apparatus allows for a faster entry/exit time than known solutions, thereby providing a more seamless transition between the normal and self-refresh modes. Other advantages will be recognized by those of ordinary skill in the art.
In one example, the method and apparatus further disables the data channel used to transmit the static frame with the changed vertical blanking interval after transmitting the static frame with the changed vertical blanking interval. The data channel may be disabled by disabling one or more interfaces used for communicating the display frame and the vertical blanking interval.
In another example, the method apparatus also determines that a display frame is a dynamic frame. In response to a display frame being a dynamic frame, the method and apparatus enables the data channel if it has been disabled to switch the apparatus to a normal mode. The method and apparatus then transmits the dynamic frame with an unchanged vertical blanking interval for the dynamic frame.
In one embodiment set forth in the disclosure, the method and apparatus receives a display frame with a vertical blanking interval for the display frame. The vertical blanking interval for the display frame may be received immediately before the display frame. The method and apparatus then determines whether the received vertical blanking interval is an unchanged vertical blanking interval or a changed vertical blanking interval in order to determine whether the received display frame is a dynamic frame or a static frame. For example, the method and apparatus may identify the different vertical blanking intervals by the number of blanking scan lines in the vertical blanking interval. In one example, the changed vertical blanking interval has a larger number of blanking scan lines than the unchanged vertical blanking interval.
In one example, if the received vertical blanking interval is determined to be a changed vertical blanking interval, then the received display frame is a static frame, and the apparatus enters the self-refresh mode. The method and apparatus stores the static frame and outputs the stored static frame repeatedly for display.
In another example, if the received vertical blanking interval is determined to be an unchanged vertical blanking interval, then the received display frame is a dynamic frame. The method and apparatus outputs the received dynamic frame for display directly.
Among other advantages, the method and apparatus provides a simple way to notify the arrival of a static frame, thereby reducing the overall complexity of implementing the self-refreshing feature in graphic processing and display systems. Compared with known solutions, the method and apparatus does not need to change the current DisplayPort standard to add new secondary packets for each display frame, or to transmit additional unsynchronized control/status signals through the sideband channel in order to notify the arrival of a static frame. In addition, as the vertical blanking intervals usually occur at an accurately known frequency, the timing of the notification may be also synchronized to the display frame timing without extra timing signals and synchronization operations. Accordingly, compared with the conventional techniques, the proposed techniques can reduce the complexity of the hardware design and the communication protocol or interface standard of the graphic processing and display systems with the self-refreshing feature. Moreover, the method and apparatus allows for a faster entry/exit time than known solutions, thereby providing a more seamless transition between the normal and self-refresh modes. Other advantages will be recognized by those of ordinary skill in the art.
The display data transmitter 102 may be, for example, a graphic processor (e.g., GPU), a general processor (e.g., APU, accelerated processing unit; GPGPU, general-purpose computing on GPU), or any other suitable processor. The display data transmitter 102 may also be a stand-alone integrated circuit that is operatively coupled to one or more processors or coupled to any suitable display system. In this example, the display data transmitter 102 includes an interface 112 for communicating with the display data receiver 104. The interface 112 may transmit display data in a display frame (e.g., a dynamic frame or a static frame) and other data such as but not limited to test signals, time codes, closed captions, copy-right indicators, content ratings, or any other suitable data in a vertical blanking interval (VBI) through the data channel 110. The interface 112 may be, for example, a display connector, such as but not limited to a digital display connector, for example, DisplayPort, HDMI, OpenLDI, to name a few, a wireless connector, or any other suitable connector.
The display data transmitter 102 also includes logic 114 operatively coupled to the interface 112 and the frame buffer 108. The “logic” referred to herein may be any suitable hardware, executing firmware, executing software module, or any suitable combination thereof that can perform the desired function, such as programmed processors, discrete logic, for example, state machine, to name a few. In this example, the logic 114 may be any suitable circuit that can achieve the desired function, such as a digital circuit, an analog circuit, a mixed analog-digital circuit, or any other suitable circuit. The logic 114 is operative to determine whether a display frame in the frame buffer 108 is a static frame or a dynamic frame. If the logic 114 determines that the next display frame to be transmitted to the display data receiver 104 is a static frame, it is operative to, in response to a display frame being a static frame, change a number of blanking scan lines in a VBI for the static frame to provide a changed VBI for the static frame. In this example, the logic 114 is also operative to control the interface 112 to transmit the static frame with the changed VBI for the static frame to the display data receiver 104.
The display data receiver 104 of the apparatus 100 may be, for example, any suitable controller (e.g., timing controller, TCON) for receiving display data and any other data from the display data transmitter 102 and for controlling writing of pixels and directing operations of the display panel 106. The display data receiver 104 may also be a video capture device, a hub, a repeater, a wireless radio device, a protocol translator, or any suitable data receiver. In this example, the display data receiver 104 includes an interface 116 for communicating with the display data receiver 104. The interface 116 is operative to receive display data and other data as described previously through the data channel 110. The interface 116 may be, for example, a display connector, such as but not limited to a digital display connector, for example, DisplayPort, HDMI, OpenLDI, to name a few, a wireless connector, or any other suitable connector.
The display data receiver 104 may include a static frame buffer 120 and a multiplexer (MUX) 122. The static frame buffer 120 is operatively coupled to the interface 116 and the MUX 122. In this example, the static frame buffer 120 is operative to store the static frame in the self-refresh mode. The MUX 122 is operative to switch between directly outputting dynamic frames received by the interface 116 in the normal mode and outputting the static frame stored in the static frame buffer 120 in the self-refresh mode.
The display data receiver 104 also includes logic 118 operatively coupled to the interface 116, the static frame buffer 120, and the MUX 122. The “logic” referred to herein may be any suitable hardware, executing firmware, executing software module, or any suitable combination thereof that can perform the desired function, such as programmed processors, discrete logic, for example, state machine, to name a few. In this example, the logic 118 may be any suitable circuit that can achieve the desired function, such as a digital circuit, an analog circuit, a mixed analog-digital circuit, or any other suitable circuit.
The logic 118 is operative to continuously monitor all the VBIs received by the interface 116 to detect a changed VBI based on the number of blanking scan lines in the VBI. In the normal mode, the display data transmitter 102 continuously transmits dynamic frames with unchanged VBIs to the interface 116 of the display data receiver 104. As all the VBIs in the normal mode are unchanged VBI, which indicate that all the received display frames are dynamic frames, the logic 118 is operative to prevent the static frame buffer 120 from storing the received dynamic frames, and control the MUX 122 to output the dynamic frames from the interface 116 directly to the display panel 106. In the self-refresh mode, the display data transmitter 102 transmits a static frame with a changed VBI to the display data receiver 104. In response to detecting the changed VBI received by the interface 116, the logic 118 is operative to control the static frame buffer 120 to store the received static frame. The logic 118 in the self-refresh mode is further operative to control the MUX 122 to output the stored static frame from the static frame buffer 120, as opposed to output the dynamic frame from the interface 116 directly in the normal mode. In the self-refresh mode, the static frame stored in the static frame buffer 120 is outputted to the display panel 106 repeatedly, and thus, the data channel 110 can be disabled to reduce power consumption.
At block 202, in order to distinguish the static frame (e.g., static frame 300 in
The standard number of blanking scan lines in a VBI depends on, for example, the number of scan lines in the display frame and the specific type of the apparatus 100. In one example, the apparatus 100 may be a laptop computer that is operating on a 1280 by 1024 resolution. Each display frame for this laptop computer has 1024 scan lines, and the standard VBI for the display frame may have 30 blanking scan lines. In another example, the apparatus 100 may be a high definition home theater system that is operating on a 1920 by 1080 resolution. Each display frame for this system has 1080 scan lines, and the standard VBI for the display frame may have 45 blanking scan lines.
Nevertheless, the number of blanking scan lines in the VBI for the static frame is changed from the standard number as explained above to a changed number to indicate that the display frame is a static frame. It is preferred, in this example, to increase the number of blanking scan lines in the changed VBI 304 to distinguish it from the unchanged VBI 306 (i.e., standard VBI) as shown in
In a preferred embodiment, a reference value or a reference range of the number of blanking scan lines may be determined by pre-negotiating between the logic 114 of the display data transmitter 102 and the logic 118 of the display data receiver 104. The number of blanking scan lines of a changed VBI is increased to the reference value or within the reference range to distinguish from the unchanged/standard VBI; and any received VBI that has the same number of blanking scan lines larger as the reference value or has the number of blanking scan lines within the reference range is determined as a changed VBI. Such reference value or reference range is stored in both the logic 114 of the display data transmitter 102 and the logic 118 of the display data receiver 104 after the pre-negotiation.
It is understood that the changed VBI is not limited to indicate only the arrival of a static frame. For example, a particular range of the number of blanking scan lines in a changed VBI may be defined to indicate a static frame, while another range of the number of blanking scan lines in a changed VBI may indicate another feature in addition to the arrival of a static frame. Such feature may be, for example, a dynamic refresh rate change or any other suitable feature. For example, for a system in which unchanged/standard VBI has 30 blanking scan lines, a changed VBI having 33 blanking scan lines may indicate that the associated display frame is a static frame, and another changed VBI having more than 35 blanking scan lines in the same system may indicate that the associated display frame is a static frame and the static frame is to be displayed in a dynamic refresh rate. It is also understood that the change of VBI is not limited to the change of the number of blanking scan lines. Any suitable change of one or more characteristics of the VBI that can distinguish it from a standard VBI and can be recognized by the display data receiver 104 may be applied to indicate that an adjacent display frame of the VBI is a static frame.
Proceeding to block 204, the logic 114 controls the interface 112 to transmit the static frame 300 with the changed VBI 304 for the static frame 300. Also referring to
As no display frame needs to be transmitted from the display data transmitter 102 to the display data receiver 104 in the self-refresh mode, the frame determination logic 400 is also operative to disable the interface 112 by a channel enabling/disabling signal 408. By disabling the interface 112 and the activities on the data channel 110, the power consumption of the display data transmitter 102 is reduced in the self-refresh mode.
The logic 114 may further include a VBI controller 410 operatively coupled to the frame determination logic 400 and the interface 112. The VBI controller 410 is operative to provide variable VBIs 412 for each display frame based on whether the display frame is a dynamic frame or a static frame determined by the frame determination logic 400. Also referring to
At block 502, the frame determination logic 400 may determine that a display frame is a dynamic frame 302, 308 in response to detecting a graphic processing activity. At block 504, if the dynamic frame 308 is the first dynamic frame determined after the self-refresh mode, the frame determination logic 400 is operative to enable the data channel 110 that has been disabled in the self-refresh mode, so that the dynamic frame 308 may be transmitted to the display data receiver 104. Otherwise, if the dynamic frame 302 is determined before the apparatus 100 enters the self-refresh mode, block 504 may be skipped as the data channel 110 is enabled. Further to block 506, the VBI controller 410, in response to determining the dynamic frames 302, 308, controls the interface 112 to transmit the dynamic frames 302, 308 with the unchanged VBIs 306, 310 for the dynamic frames 302, 308 to the display data receiver 104 through the data channel 110. In one example as shown in
Although the processing blocks illustrated in
As explained previously, the detection of the changed VBI 304 may be performed, for example, by counting the number of blanking scan lines in each received VBI 412. A reference value or a reference range of the number of blanking scan lines may be stored in the VBI detector 600 to detect the changed VBI 304. Any received VBI that has the same number of blanking scan lines larger as the reference value or has the number of blanking scan lines within the reference range is determined as a changed VBI 304. For example, the reference value or the reference range is determined by pre-negotiating between the logic 114 of the display data transmitter 102 and the logic 118 of the display data receiver 104.
The VBI detector 600 is also operative to control the operation of the static frame buffer 120 by a buffer enabling signal 602. In the normal mode, the VBI detector 600 detects that the received VBIs 412 are unchanged VBIs and thus, the received display frames are dynamic frames. The VBI detector 600 disables the static frame buffer 120, so that all the dynamic frames in the normal mode are not stored in the static frame buffer 120. Also referring to
The VBI detector 600 is further operative to control the MUX 122 to switch between outputting the dynamic frame in the normal mode and outputting the stored static frame in the self-refresh mode by transmitting a MUX control signal 610. Also referring to
In this example, the display data receiver 104 also includes a VBI controller 608 operative to provide VBIs 612 for the display frames to be outputted to the display panel 106. It is known in the art that VBIs may be used for the display frame timing, and thus, the display frames received by the display data receiver 104 may be re-timed by new VBIs 612 provided by the VBI controller 608 of the display data receiver 104. In the normal mode, standard VBIs 706 may be used by the VBI controller 608 for re-timing. In the self-refresh mode, VBIs 704 with a different number of blanking scan lines may be provided by the VBI controller 608 to the static frames 702 for re-timing. The VBIs 704 used in the self-refresh mode may be different from the VBIs 706 used in the normal mode. In other words, the display data receiver 104 may provide its own VBIs 704 for repeatedly outputting the static frame 702 in the self-refresh mode. The VBI controller 608 is further operative to control a transmitter 614 of the display data receiver 104 to transmit the re-timed display frames with new VBIs 612 to the display panel 106 for display.
Back to block 802, if the VBI detector 600 detects that the received VBI 412 is an unchanged VBI, then the apparatus 100 is in the normal mode, and the method proceeds to block 810. At block 810, the VBI detector 600 controls the MUX 122 to output the received display frame as a dynamic frame 700, 708 directly from the interface 116 to the display panel 106. As shown in
Eventually, at block 812, the transmitter 614 of the display data receiver 104 transmits the static frame 702 or the dynamic frame 700, 708 to the display panel 106, and the display panel 106 presents the display frame on its screen.
Also, the logic described herein may be implemented as driver software stored on a computer readable medium such as but not limited to CDROM, RAM, other forms of ROM, hard drives, distributed memory, etc., in combination with processors (e.g., CPU, GPU, APU, GPGPU, etc.). As such, driver software may be stored on computer readable medium. The computer readable medium stores instructions executable by one or more processors (e.g., CPU, GPU, APU, GPGPU, etc.) that causes the one or more processors (e.g., CPU, GPU, APU, GPGPU, etc.) to perform operations described herein.
Among other advantages, the method and apparatus provides a simple way to notify the arrival of a static frame, thereby reducing the overall complexity of implementing the self-refreshing feature in graphic processing and display systems. Compared with known solutions, the method and apparatus does not need to change the current DisplayPort standard to add new secondary packets for each display frame, or to transmit additional unsynchronized control/status signals through the sideband channel in order to notify the arrival of a static frame. In addition, as the vertical blanking intervals usually occur at an accurately known frequency, the timing of the notification may be also synchronized to the display frame timing without extra timing signals and synchronization operations. Accordingly, compared with the conventional techniques, the proposed techniques can reduce the complexity of the hardware design and the communication protocol or interface standard of the graphic processing and display systems with the self-refreshing feature. Moreover, the method and apparatus allows for a faster entry/exit time than known solutions, thereby providing a more seamless transition between the normal and self-refresh modes. Other advantages will be recognized by those of ordinary skill in the art.
The above detailed description of the invention and the examples described therein have been presented for the purposes of illustration and description only and not by limitation. It is therefore contemplated that the present invention cover any and all modifications, variations or equivalents that fall within the spirit and scope of the basic underlying principles disclosed above and claimed herein.
This application is related to co-pending application having application Ser. No. 12/956,740, filed on Nov. 30, 2010, having inventors Andjelija Masnikosa et al., titled “METHOD AND APPARATUS FOR PROVIDING STATIC FRAME”, and owned by instant assignee.