Despite the obvious tint of marketing and sales, whitepapers often provide great information. I subscribe to Tech Online’s newsletter which is full of technical papers. This one from Altera is an ad for the Alterad® Cyclone® IV GX FPGA entitled Streaming Multichannel Uncompressed Video in the Broadcast Environment.
By packing three 20-bit pixels into two 32-bit words, an active video frame of 1920 pixels by 1080 lines use a little over 5.27 Mbytes. In an ideal world, the CPU creates a single DMA transfer that moves this video frame from the capture card into the system memory of the PC. Unfortunately, this transfer usually is impossible because system
memory normally is allocated by the PC operating system in 4-Kbyte blocks, so there is no guarantee that a request for 5.27 Mbytes of memory will be stored in consecutive physical memory locations.
As a result of this limitation, most DMA controllers designed for the PC architecture support a scatter/gather mode (Figure 3). In this mode, the CPU creates a linked list of DMA instructions, each of which transfers just 4 Kbytes. The DMA controller processes each segment of this list in turn, automatically fetching the next entry on the list as
needed. By doing so, the controller can be programmed to cope with the PC’s fragmented memory allocation and still place little overhead on the CPU.
Not having much experience with video processing, I found this article to be great food for though.