Scaler II IP Core Causing Underflow on Clocked Video Output IP
Hello there,
I am having an issue with my Scaler IP core starving my Clocked Video Output (CVO) IP core and causing underflow. I think the issue stems from the scaler requiring a certain number of input pixels to perform its scaling algorithm before it generates a single scaled output pixel. I am trying to scale a 1920x1080 frame down to 1280x800. My IP sequence looks like this:
SDRAM ---> Frame Buffer IP (implemented as Frame Reader to read frames stored in SDRAM) ---> Color Plane Sequencer IP (I need to create two seperate video streams, but the other one can be ignored for this issue) ---> Scaler ---> Clocked Video Output.
My clocked video output clock is clocking a video stream in at 100 MHz and the output formatted video is clocked out at 65 MHz.
The scaling algorithm I am using is the Bilinear algorithm. This was kind of an arbitrary choice based off the resource usage trade off described in the VIP manual. If there is another algorithm that could be recommended that wouldn't require as many input pixels to scale an output pixel I would certainly give that a try.
From there I thought that using a frame buffer with repeating frames checked might solve the problem. I thought while the frame buffer was waiting for a scaled frame it could just continually output the previous frame.. The issue I ran into here was the memory requirements. I already have a frame buffer reading the original frame 1920x1080 frame from SDRAM. By adding another frame buffer I am really taxing my SDRAM since the frame buffer has to read and write into SDRAM. Is there any other sort of buffer IP that can take a video stream as input and continually repeat a video stream output until a new frame has been read in?
In general, are there any other solutions I am not considering?
Thank you for any input!