FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6400 Discussions

Problem W/ Altera VIP Frame Buffer II

EvanHamiltonJAVS
Beginner
410 Views

I have configured an FPGA design for my linux device that is displaying SDI and HMDI inputs. It was originally configured to receive YCbCr 4:2:2 video format. Since I am experiencing green spill on images when trying to chroma key, I am attempting to change the input data to RGBA. 

 

For a test, I have implemented a conversion into the FPGA that handles the RGB input from the frame buffer. I believe this conversion is correct because the color values come out as expected.

 

FPGA Design Here:

FPGA_Forum_Help.png

fpgahelppt2.png

FB -> CSC -> CRS -> Output

This is the same for all four mixers.

 

I am using gstreamer to input the color bars pattern into the pipeline.

(gst-launch-1.0 videotestsrc ! videoconvert ! video/x-raw,format=BGR,width=1920,height=1080 ! videoconvert ! filesink location="/dev/fb3")

There are 4 frame buffers located at "/dev/fb0", "/dev/fb1", and so on.

 

Basically the issue is these frame buffer's graphics are overlapping and changing the memory regions in the DTS file does not fix the issue:

"gst-launch-1.0 videotestsrc ! videoconvert ! video/x-raw,format=BGR,width=1920,height=1080 ! videoconvert ! filesink location="/dev/fb0"

EvanHamiltonJAVS_0-1715010416346.jpeg

 

"gst-launch-1.0 videotestsrc ! videoconvert ! video/x-raw,format=BGR,width=1920,height=1080 ! videoconvert ! filesink location="/dev/fb1"

EvanHamiltonJAVS_1-1715010451602.jpeg

 

"gst-launch-1.0 videotestsrc ! videoconvert ! video/x-raw,format=BGR,width=1920,height=1080 ! videoconvert ! filesink location="/dev/fb3"

EvanHamiltonJAVS_2-1715010488853.jpeg

 

I can even see the bottom portion of the color bars pattern when changing the height to 720.

"gst-launch-1.0 videotestsrc ! videoconvert ! video/x-raw,format=BGR,width=1920,height=720 ! videoconvert ! filesink location="/dev/fb3"

EvanHamiltonJAVS_3-1715010571472.jpeg

 

The drivers being used for the frame buffer is altvipfb.c and altvipfb2-plat.c

Here is the DTS snippet of these frame buffer components and the boot logs where the frame buffers are initialized:

DTS snippetDTS snippetBoot LogsBoot Logs

The virtual address and length seen in these boot logs do not change at all when DTS changes are made.

 

I also get this error when inputting a pipeline:

nospaceerror.png

 

If anyone could help me approach this issue it would be greatly appreciated.

 

Thanks,

Evan

0 Kudos
5 Replies
ZH_Intel
Employee
322 Views

Hi Evan,

 

Thank you for reaching out.

Apologize for the delayed response as we encounter some technical difficulty.

Just to let you know that Intel has received your support request and currently we are confirming the details with our internal team.

I shall come back to you with findings.

 

Thank you for your patience.

 

Best Regards,

ZH_Intel



ZH_Intel
Employee
188 Views

Hi All,

 

Just to note for internal team and customer:

  • DTS and boot are related to HPS
  • The drivers being used for the frame buffer is altvipfb.c and altvipfb2-plat.c, this is also driver for HPS

ScreenshotScreenshot

 

Moving to the right SME for this case.

 

 

0 Kudos
khtan
Employee
97 Views

Hi Evan

Apologies for the delay, I'm Kian and got assigned to this case. Regarding this issue, I've already contacted our VIP team to get their insight into this issue, will get back to you later once we have findings on our end.

 

Thanks

Regards

Kian

0 Kudos
khtan
Employee
74 Views

Hi Evan,

The team here is asking for more information on what are the base addresses are and the associated settings in the 4 frame buffers? In addition, did you do any maximum bandwidth calculations to check that the EMIF can service all 4 frame buffers at the same time if required?

 

Thanks

Regards

Kian

0 Kudos
EvanHamiltonJAVS
Beginner
19 Views

Hey Khtan,

 

The frame buffer's base addresses and associated settings can be seen in the DTS snippet I provided:

 

EvanHamiltonJAVS_0-1718631580632.png

In this DTS file image you can see the virtual base addresses, max width and height, bits per symbol, and port width.

 

Here you can see the frame buffers initializing to their physical addresses:

EvanHamiltonJAVS_1-1718631676923.png

 

 

The EMIF has had no issues before handling all 4 frame buffers, but since I have changed the video format from YCbCr to RGB I guess that could be surpassing the maximum bandwidth. How would I conduct those calculations to check if the EMIF can handle all 4 frame buffers with RGB?

 

Thanks,

Evan

 

evanh@javs.com

0 Kudos
Reply