Hi

assume the following example:

Input

- CL-Base, 2 Tap @ 85MHz = 170MP/s

- 16MP/image

- 8fps

- transfer time for 1 frame = 16 MP / 170MP/s = 0.1s

Design:

pasted-from-clipboard.png

The camera peak bandwidth is 170MP/s

The average camera bandwidth is 8fps * 16MP = 128MP/s

--> Parallelism 4 is sufficient

After "Remove3of4images":

Peak bandwidth is still 170MP/s

Average bandwith is 128MP/s / 4 = 32MP/s

--> Parallelism 4 is sufficient

After PARALLELdn the link bandwidth is 62.5MP/s. Therefore we need the buffer.

To calculate the buffer fill level we subtract the output bandwidth from the input bandwidth to calculate the fill speed:

Fill Speed = 170 MP/s - 62.5 MP/s = 107.5MP/s

After one frame the buffer fill level is: 107.5MP/s * 0.1 sec = ** 10.75MP**

As there is a transfer gap after each frame the buffer has enogh time to get empty. It will be empty after 0.1s + 10.75MP/62.5MP/s = 0.272s which is equal to the maximum framerate of a 16MP image at parallel 1: 62.5MP/s / 16MP = 3.9fps --> 1/3.9fps = 0.256s (which is the same value as above with some rounding errors)

pasted-from-clipboard.png

The explanation above is only valid for line or pixel buffers like ImageBuffer or ImageFifo. If you are using a frame buffer you need to store the full image. See http://www.siliconsoftware.de/…ntent/library.Memory.html

Johannes