With this first post I would like to share a usefull approach on how to make VA related caluclations.
The calulations itself are linked to the google calculator making the usage pretty simple...
I think nearly everybody implementing or sketiching a VA design needs to take care of the over-all bandwidth concerning a CL/GigE/CXP/CLHS camera delivering or a PCIe DMA transfering data.
For example related to camera interface, some general ideas:
Bandwidth from CL camera
CL camera is configured for CL FULL 8 bit with 8 taps and a pixel clock of 85 MHz:
- bit depth = B = 8
- tap count = T = 8
- pixel clock = PXC = 85 MHz
- bandwidth = B * T * PXC
Theoretical maximum estimation, linked to Google:
B * T * PXC = 8 bit * 8 * 85 MHz = (8 bit) * 8 * (85 MHz) = 680 MB / s , linked to google calculator to place your own values.
Please be aware that this bandwidth is a theoretical value.
While this is a camera / sensor related question, an estimation would be fine,
Theoretical maximum frame rate on basis of bandwidth:
- width = W = line length in pixels = 1920
- height = H = amount of lines = 1080
- bit depth = B = 8 bit
- size = W * H * B = amount of data per image
- framerate = bandwidth / size = bandwidth / (W * H * B)
where bandwidth is B * T * PXC, see idea above
frame rate = bandwidth / size = (B * T * PXC) / (W * H * B) =
(8 bit * 8 * 85 MHz) / (1920 * 1080 * 8 bit) = ((8 bit) * 8 * (85 MHz)) / (1920 * 1080 * (8 bit)) = 327.9 Hz, linked to google calculator to place your own values.
Bandwidth requirement on basis of frame dimension/size and frame rate:
- frame rate = frequency = F = amount of images per second = 210 Hz, as example value
- size = S = W * H * B = (1920 * 1080 * 8 bit) = 1920 * 1080 * (8 bit) = 2.1 MB
- bandwidth required = size * frame rate = F * S = F * (W * H * B) =
210 Hz * (1920 * 1080 * (8 bit)) = 435.5 MB / s
More VA related:
Required parallelism on basis of bandwidth:
system clock = C = VA platform frequency = 125 MHz
default mE5 = 125 MHz or mE4 = 62.5 MHz
- parallelism = P = bandwidth / C = F * (W * H ) / C, where P is always integer
((1920 * 1080) * 210 Hz) / (125 MHz) = 3.48, where 4 is the value to use.
If you wonder where the bit-depth has gone: it is a link property that is independent of parallelism.
Required DMA performance for de-mosaicking a bayer-pattern and transferring color/RGB data to host system:
DMA bandwidth output = (1920 * 1080) * (210 Hz) * (24 bit) = 1.3 GB / s
where DMA paralleism is still ((1920 * 1080) * 210 Hz) / (125 MHz) = 3.48 = 4
From time to time I will put some more calculations here.
It would be handy to have these inside VA, but as long as missing: Google is a good friend.