Digital Signal Processing Reference
In-Depth Information
video
and transfer it to an external memory. Then
the buffer will read either that frame, or any other from the DDR
memory, into the internal on-chip memory. It may not transfer
the entire frame, usually transferring a few lines of video which
are required for processing.
To implement this functionality a buffer needs to have a writer
block and a reader block. It is built with a writer which stores
input pixels in memory, and a reader which retrieves video
frames from the memory and outputs them. See Figure 20.1 .
Figure 20.1 shows a simple implementation of two types of
frame buffer
line by line
e
e
a double frame buffer and a triple frame buffer. As
the name suggests, a double frame buffer stores two frames in the
external DDR memory, while a triple frame buffer stores three
frames in memory.
Let's look first at the double frame buffer. When double
buffering is in use, two frame buffers are used in external RAM. At
any time, one buffer is used by the writer component to store
input pixels, while the second buffer is used by the reader
component that reads pixels from the memory. When both the
writer and reader finish processing a frame, the buffers are
exchanged. Double buffering is often used when the frame rate is
the same at the input and at the output sides, but the pixel rate
is highly irregular at one or both sides. For example, if a function
is putting out one pixel on each clock edge, but the next function
needs nine pixels in order to do its work, you would insert a frame
buffer between the two functions. Double buffering is useful in
solving throughput issues in the data path and is often used when
a frame has to be received or sent in a short period of time
compared with the overall frame rate.
e
Frame Buffer
Frame Buffer
Memory
Reader
Memory
Reader
Memory
Writer
Memory
Writer
System Interconnect Fabric
System Interconnect Fabric
Spare
Buffer
Buffer 1
Buffer 0
Buffer 0
Buffer 1
Frame Buffer
External RAM
Double Buffering
Triple Buffering
Figure 20.1. Double and triple buffering.
Search WWH ::




Custom Search