The present invention relates generally to memory storage in video display systems, and more particularly relates to a system and method for implementing a color burst queue for a shared memory controller in a color display system.
As the demand for devices having feature-rich video displays, such as laptops, cell phones, personal digital assistants, flat screen TV's, etc., continues to increase, the need for systems that can efficiently process video data has also increased. One of the many challenges involves managing the flow of video data from a video source to a video display. For example, systems: (1) may require different types of memory systems, including storage queues; (2) may utilized shared memory devices that require memory controllers to handle multiple real-time processes; (3) may be required to manage different types of data, etc.
A recent advance in video display technology in which the above-mentioned challenges arise involves color sequential display systems (i.e., color sequencing). Color sequencing utilizes a scrolling color architecture in which the red, green, and blue primary colors are sequentially presented to the same panel, using the same pixel locations. To implement such a system, the video data must be presented to the display panel at an elevated rate (e.g., a frame rate of 150-180 Hz) such that the viewer perceives a continuous full color image. The resulting speed and bandwidth requirements create challenges in designing an efficient low cost architecture for delivering video data from a source to the actual display.
For instance, storage queues that are used to buffer data going to or from a shared memory device are normally implemented as FIFO's (i.e., first-in first-out storage) or dual port memories that are addressed as FIFO's. In the case of a shared memory system that is used within a color sequential display, the color components must be separately processed, which implies three FIFO's, one for each color. This requirement of having three FIFO's adds to the cost and complexity of the system. Accordingly, a system and method are required in which multiple FIFO's are not needed.
The present invention addresses one or more of the above-mentioned problems, by providing a storage queue for a color sequential display system comprised of a single dual port memory that stores and retrieves color-specific video data and provides color separation. In a first aspect, the invention provides a storage queue for a color sequential display system, wherein the storage queue is coupled to a shared memory and comprises: a system for receiving and storing individual packets of alternating red, green and blue video data in the storage queue; and a system that can read out separate sets of red packets, green packets and blue packets from the storage queue to the shared memory.
In a second aspect, the invention provides a method of managing color sequential display data in a storage queue that is coupled to a shared memory, comprising: receiving and storing individual packets of alternating red, green and blue video data in the storage queue; and reading out separate sets of red packets, green packets and blue packets from the storage queue to the shared memory.
In a third aspect, the invention provides a memory management system for use in a color sequential display, comprising: a shared memory; and a storage queue coupled to the shared memory, wherein the storage queue includes: a system for receiving and storing individual packets of alternating color-specific video data in the storage queue; and a system for bursting separate sets of color-specific packets from the storage queue to the shared memory.
These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which:
Referring now to the drawing,
The shared memory 18 may be implemented using a double data rate synchronous dynamic random access memory (DDR-SDRAM). Source video 12 arrives at a regular rate and is stored in queue A 16 prior to being burst into the shared memory 18. Queue B 22 is read at a regular rate. A scheduler (described below) monitors the fullness 26, 28 of both queues and decides when bursts should occur in order to guarantee that neither queue underflows or overflows. The present invention describes a system for controlling the memory associated with a source storage queue (i.e., queue A 16). More particularly, the present invention describes a system and method that can efficiently burst sets of color specific video data from a storage queue to a shared memory. It should be understood that the display processing circuit of
Referring now to
On the output, or read side of queue 16, a modulo-3 addressing system 38 is utilized to select color specific sets of data that are to be burst to shared memory 18. The ability to burst color specific sets of data (e.g., red data set 42) is particularly advantageous in a color sequential system in which the three primary colors (red, green and blue) must be separated and stored at contiguous locations in the shared memory 18 in anticipation of different display presentation times.
Thus, as source video 12 arrives, it is parsed into alternating 128-bit words 36 of red, green and blue and stored in memory 36 of queue 16 using linear addressing (0, 1, 2, . . . ). The addressing sequence used to read data out of queue 16 is modulo-3 with a different starting value for each color (e.g., red=0, green=1, blue=2). Therefore, the first burst for a set of red data packets 42 from queue 16 to shared memory 18 will be addressed as 0, 3, 6, 9 . . . The second burst (not shown) for a set of green data packets will have an address sequence of 1, 4, 7, 10, . . . ; and the third burst (not shown) for a set of blue data packets will have an address sequence of 2, 5, 8, 11, . . . .
In a video display application having a line size of 1280 pixels, the shared memory bus is preferably 128-bits wide to meet the bandwidth requirements. Accordingly, for this exemplary embodiment, queue 16 utilizes a 240×128-bit architecture. Thus, three “virtual” FIFO's (red, green, and blue), each with a size of 80×128-bits are created using a single dual port memory. Obviously, the invention is not limited to a particular architecture as other memory sizes can be utilized to meet the particular requirements of a specific application.
In accordance with the invention, any practical burst size (e.g., 10-80 words) could be utilized. However, in this embodiment, a burst size of 40 words is utilized, therefore requiring 6 bursts to empty queue 16. In order to decrease the possibility of overflow of any of the colors, which could occur by leaving data in the queue too long, a scheduler 44 may be utilized to alternate colors on a round-robin basis, i.e., red 40, green 40, blue 40, red 40, green 40, blue 40.
Scheduler 44 also is responsible for granting access to shared memory 18. Specifically, scheduler 44 monitors a fullness 26, 28 of each queue 16, 22 (
The following is one exemplary embodiment for calculating a fullness threshold FT for storage queue 16 described above.
FT=240*(1−(Sf*Fcs/Bf*Fcm),
Where:
Thus, for example, the fullness threshold FT for a queue having a source clock at 27 MHz, a memory clock of 68 MHz, and a burst length of 40 would be calculated as follows:
FT=240*(1−(0.75*27)/(0.833*68)=154,
where Bf=40/48=0.833.
Note that this calculation provides a minimum threshold at which reading at queue 16 should start (i.e., start reading from queue 16 when more than 154 words are stored in the queue). If reading starts sooner, then some of the data from the previous row may be read again (underflow). On the other hand, in order to guard against overflow, a maximum threshold should also be considered, i.e., the point at which reading the data is so late that some data from the new row will be skipped.
Referring now to
Referring to
The foregoing description of the preferred embodiments of the invention has been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously many modifications and variations are possible in light of the above teachings. Such modifications and variations that are apparent to a person skilled in the art are intended to be included within the scope of this invention as defined by the accompanying claims.
This application claims the benefit of copending provisional application 60/331,916 filed on Nov. 20, 2001.
Number | Name | Date | Kind |
---|---|---|---|
4914508 | Music et al. | Apr 1990 | A |
6072545 | Gribschaw et al. | Jun 2000 | A |
6396596 | Hosier et al. | May 2002 | B1 |
6430180 | Bohm et al. | Aug 2002 | B1 |
20030169755 | Ternovsky | Sep 2003 | A1 |
Number | Date | Country | |
---|---|---|---|
20030095126 A1 | May 2003 | US |
Number | Date | Country | |
---|---|---|---|
60331916 | Nov 2001 | US |