Hello, I've come up with an issue, where I need to rotate the incoming video stream image by +/-5 degrees with 0.5 degree step. The problem now is to identify the most resource saving approach, which would also use the memory as efficiently as possible, because I need to design a new PCB and do a component selection. The FPGA will be Altera Cyclone V with one hard memory controller (5CEFA2 device). I am trying to check if it will be sufficient to use one DDR3 memory chip or it's better to use two devices with 32bit memory bus, thus increasing the bandwidth.
The incoming video stream is from the camera, which has a separate clock, thus the frame buffer is a requirement.
I've come accross two options so far:
1) Image rotation by shearing:It seems like this is kinda easy approach, but it will require at least three memory accesses. In a combination with regular 3 frames frame buffer, I could end up doing 5 memory read/write cycles.
2) Image rotation by having lookup table of each pixel. If the lookup table will be placed into the memory, then this will require one access to read the location and another access to read the pixels and write them to the moved location.I am not sure which method is used the most common in the FPGA video processing? Maybe you, experts, have good resources to read about this?
Thank you.
Regards Tomas D.