1. Field of the Invention
The present invention generally relates to display control system, and more particularly to display control system and method for frame buffer control.
2. Description of the Prior Art
In conventional display control systems, all content which is to be displayed on a display or a screen is stored as a bitmap in a memory named frame buffer in the display control system. Generally, there is more than one frame unit, which represents a bitmap corresponding to a whole screen snapshot, in the frame buffer. When the display control system updates one of the frame units to refresh the screen, it orders the screen switched to display the content of another frame unit. For example, when preparing a first frame unit, the screen is displayed the content of a second frame unit. Until the update is finished, the system then orders the screen switched back to the updated frame unit, for example, the first frame unit. Modern three-dimensional graphics display control systems or visual engines provide screen refresh rate at least at 30 frames per second. If the resolution of screen is not too high, the refresh rate may be raised to as fast as 60 frames per seconds.
Please refer to
Summarized, there exists a need for a method and apparatus to reduce the demands of frame buffer.
Therefore, in accordance with the previous summary, objects, features and advantages of the present disclosure will become apparent to one skilled in the art from the subsequent description and the appended claims taken in conjunction with the accompanying drawings.
One object of the present invention is to provide a display control system, which comprises a display for showing a whole frame composed by a plurality of divided frames and a control apparatus controls said plurality of divided frames to said display. In this regards, the control apparatus further comprises a frame buffer composed by a plurality of units, a control module for comprising a draw pointer for pointing to one of said plurality of units to be drawn and a refresh pointer for pointing to one of said plurality of units to be refreshed to said display, a refresh module for refreshing the divided frame stored in said unit, pointed by said refresh pointer, to said display, and a draw module for drawing divided frame into said unit, pointed by said draw pointer.
Another object of the present invention is to provide a display control method for controlling a display control system, which comprises a display for showing a whole frame composed by a plurality of divided frames, and a frame buffer composed by a plurality of units. Each divided frame is stored in each unit. The display control method comprises performing a setup procedure for completely drawing at least one of said plurality of said divided frames, performing a startup procedure for refreshing a unit stored said draw divided frame to said display and drawing another divided frame simultaneously, determining whether said refreshing is completed, wherein continuing said refreshing when said refreshing is not completed, other wisely performing said refreshing to a next unit when said drawing is completed in prior to said refreshing, and determining whether said refreshing to said next unit is completed when said refreshing is completed but said drawing is not, wherein performing said drawing of next divided frame when said drawing is completed, other wisely repeating said refreshing when said drawing is not completed.
A whole frame is divided into two halves in the present invention, drawing a half-frame may takes less time than refreshing a half display, or takes slightly more time than refreshing a half display. However drawing a half-frame should always takes less time than refreshing a whole frame. Under the situation of drawing a half-frame is less than refreshing a half display, the refresh rate in accordance with the present invention could be maintained as the same as the double buffered mechanism. Therefore it requires smaller memory size to achieve the same effort of the double buffered mechanism. Besides, reducing memory size could lead to cheaper cost and lower power consumption. Moreover, next frame could be drawnn during the refresh time of previous frame in accordance with the present invention. It does not need to wait for refreshing before drawing the next frame.
The accompanying drawings incorporated in and forming a part of the specification illustrate several aspects of the present invention, and together with the description serve to explain the principles of the disclosure. In the drawings:
The present disclosure can be described by the embodiments given below. It is understood, however, that the embodiments below are not necessarily limitations to the present disclosure, but are used to a typical implementation of the invention.
Having summarized various aspects of the present invention, reference will now be made in detail to the description of the invention as illustrated in the drawings. While the invention will be described in connection with these drawings, there is no intent to limit it to the embodiment or embodiments disclosed therein. On the contrary the intent is to cover all alternatives, modifications and equivalents included within the spirit and scope of the invention as defined by the appended claims.
It is noted that the drawings presents herein have been provided to illustrate certain features and aspects of embodiments of the invention. It will be appreciated from the description provided herein that a variety of alternative embodiments and implementations may be realized, consistent with the scope and spirit of the present invention.
It is also noted that the drawings presents herein are not consistent with the same scale. Some scales of some components are not proportional to the scales of other components in order to provide comprehensive descriptions and emphasizes to this present invention.
Please refer to
In this embodiment, the control apparatus 210 comprises a control module 220, a refresh module 230, a draw module 240, and a frame buffer 250. In this regards, the size of the frame buffer 250 could be one and a half screen size of the display 260; that is, the frame buffer 250 could store one and a half screens of the display 260. Furthermore, a complete screen is composed by two half-frames. Therefore the frame buffer 250 comprises three frame units (half-frame), a first unit 1, a second unit 2, and a third unit 3, respectively. The memory size of each frame unit could store half frame of a screen. Since the display 260 shows scanning lines from top to bottom, what the unit stores is an upper frame (upper half-frame) or a lower frame (lower half-frame).
In this regards, the control module 220 could further comprises a refresh pointer 222, a draw pointer 224, and a half-frame pointer 226. The refresh pointer 222 is configured to point to one of the units in the frame buffer 250 to be showed in the display 260, the draw pointer 224 is configured to point to one of the units in the frame buffer 250 to be drawn, and the half-frame pointer 226 is configured to point to one of the two half frames to be drawn, for example, a lower half of a first frame or a upper half of a tenth frame.
In this embodiment, after receiving a display control command from the control module 220, the refresh module 230 shows the content of a unit in the frame buffer 250, pointed by the refresh pointer 222, to refresh the lower or upper half of the display 260. Accordingly, the refresh progress of the display 260 could be controlled by the refresh module 230.
Besides, a draw command could be sent to the draw module 240 from the control module 220 for drawing a unit of the frame buffer 250 pointed by the draw pointer 224. In other words, it is said that the draw module 240 prepares the unit of the frame buffer 250 pointed by the draw pointer 224 according to the content of the half frame pointed by the half-frame pointer 226. In this embodiment, the control module 220 and/or the draw module 240 may execute complicated three dimensional operations for relieving the processing burden of central processing unit. In other cases, other components of the display control system 200 may process the content at first and replicate the content to the frame buffer 250. The present invention does not restrict that the three pointers, the refresh pointer 222, draw pointer 224, and half-frame pointer 226, are maintained in the control module 220. It only requires that the three pointers are maintained in the control apparatus 210.
Please refer to
Next, processing a startup step 308, two procedures are performed simultaneously by the control module 220. In a refresh procedure, after receiving a refresh command, issued by the control module 220, the refresh module 230 refreshes the upper or lower half of the display 260 by updating one prepared unit of the frame buffer 250 pointed by the refresh pointer 222. In another simultaneous draw procedure, after receiving a draw command, issued by the control module 220, the draw module 240 prepares a unit of the frame buffer 250 pointed by the draw pointer 240. In the following step 312, the control module 220 determines that whether the refresh procedure finished or not. If the upper or lower half of the display 260 is already refreshed by the content pointed by the refresh pointer 222, a step 320 would be processed; otherwise, another step 316 would be processed.
In the step 316, the control module 220 determines that whether the draw procedure is done. If these two procedures are not finished yet, the flowchart returned to the step 308 for continuing these two procedures; otherwise, it goes to the step 312 and keeps waiting for the refresh procedure to precede the step 320.
In the step 320, the control module 220 shifts the refresh pointer 222 to pointing to the next unit in prior to processing a step 324. As mentioned before, these three units are in a circular order, such that the first, second, third, first, and goes on. In the following step 324, the control module 220 determines that whether the draw procedure is done. If done, it goes to a step 328; otherwise, a step 332 would be processed. When both the procedures are finished, for example, the draw procedure is done before the refresh procedure, the control module 220 shifts the draw pointer 224 to pointing to the next unit and shifts the half-frame pointer 226 to pointing to the next half-frame in the step 328. Then it returned back to the startup step 308 for next display circle.
When the refresh procedure is done in prior to the draw procedure, the control module 220 further commands the refresh module refresh the display 260 by updating the content of the unit pointed by the refresh pointer 222 in the step 332. In other words, the refresh procedure is executed again. Simultaneously, the draw procedure is still performed by the draw module 240 to one unit of the frame buffer 250 at the same time. In a step 336, the control module 220 determines that whether the refresh procedure performed in the step 332 is done or not. If done, it would be advanced to a step 340; otherwise, the refresh procedure of the step 332 and the draw procedure would be continued.
Furthermore, in the step 340, the control module 220 again determines that whether the draw procedure performed is done or not. If the unit pointed by the draw pointer 224 is drawn completely, the flowchart goes to a step 344; otherwise, another step 348 would be processed. The control module 220 shifts the refresh pointer 222 to pointing to the next unit, shifts the draw pointer 224 to pointing to the next unit, and shifts the half-frame pointer 226 to pointing to the next half-frame in the step 344. Next, it returned to the startup step 308 for next half-frame cycle. However, in the step 348, the control module 220 shifts the refresh pointer 222 to pointing to previous unit since there is not prepared unit. Finally, it also returned to the startup step 308 for repeating the refresh cycle of the previous unit.
In this embodiment, the executing speeds of the refresh and draw procedures would affect the flowchart shown in the
Please refer to
Here, the steps 308, 312, 320, 324, and 328 shown in the
As shown in the
Please refer to
Here, the steps 308, 312, 320, 324, 332, 336, 340, and 340 shown in the
During the third refresh cycle from the moment 530 to another moment 535 shown in the
During the moment 535 and another later moment 540, it goes to execute the step 320 from the step 312 since the refresh procedure of the first unit 1 is completed. The refresh pointer 222 is shifted from the first unit 1 to the next unit, the second unit 2, which has contents about the upper part of a second whole frame drew at a previous moment 520. In this embodiment, if the draw procedure of the third unit 3 is determined as completeness in the step 324, the step 328 is followed; otherwise, the step 332 is executed consequently. Since the draw time is longer than the refresh time in this example, the draw procedure of the third unit 3 is not completed in the step 324. Hence the step 328 is followed. In other words, the content of the second unit 2, pointed by the refresh pointer 222, which contains the upper part of the second whole frame, would be updated to the upper part of the display 260. The draw procedure of the third unit 3, which should contains the lower part of the second whole frame pointed by the half-frame pointer 226, is still proceed at the moment 540. Next, the draw procedure would be determined again in the following step 336. In accordance with the situation of this example shown in the
The present invention does not restrict that a whole frame is divided into two halves merely. A whole frame could be constructed by multiple divided frames. The number of frame buffer units is not restricted as three. When the draw speed is faster than the refresh speed, the number of units could be equaled to or less than the number of divided frames, which constructed a whole frame. Reversely, when the draw speed is slower than the refresh speed, the memory size would be less than those required in the double buffered example. Therefore, the apparatus and method provided by the present invention could apply to embedded systems or system-on-chip for reducing memory sized, cost, and power consumption.
The foregoing description is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obvious modifications or variations are possible in light of the above teachings. In this regard, the embodiment or embodiments discussed were chosen and described to provide the best illustration of the principles of the invention and its practical application to thereby enable one of ordinary skill in the art to utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. All such modifications and variations are within the scope of the inventions as determined by the appended claims when interpreted in accordance with the breath to which they are fairly and legally entitled.
It is understood that several modifications, changes, and substitutions are intended in the foregoing disclosure and in some instances some features of the invention will be employed without a corresponding use of other features. Accordingly, it is appropriate that the appended claims be construed broadly and in a manner consistent with the scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
094102820 | Jan 2005 | TW | national |