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

Frame rate conversion issue

Altera_Forum
Honored Contributor II
2,477 Views

Dear reader, 

 

I'm currently evaluating (video processing) DSP IP blocks using Quartus 15.0 and Qsys 15.0 but I am experiencing some issues. I have to solve them before purchasing licenses for certain IP blocks from Altera. 

 

My goal: I have a 1280x962, 36.67fps, 3 parallel color planes, 8 bits per color, progressive video signal as input. I want to show the frames on my 1080p60 monitor. 

My approach: buffer the incomming video frames using the frame buffer IP with frame repetition enabled and blend it with a 1920x1080p video stream produced by the pattern generator (uniform grey background) using the alpha blender IP block and output it using the clocked video output IP block (see image3).  

My hardware: (1) SoCKit development board (Cyclone V) which I use for implementation, (2) DE0-nano development board (Cyclone IV) which I use to produce the 1280x962 video stream just for testing (can be seen as a stub), (3) THDB-HTG GPIO expension board (and a bunch of wires) for interfacing between SoCKit and DE0-nano board and (4) a full HD monitor connected to SoCKit board (see image1). 

My achievements so far: (1) I managed to get what I described behind "my approach" up and running with a 800x600, 72fps video input (from nano board). (2) I managed to get what I described behind "my approach" up and running with a 1280x960, 60fps video input (see image2). 

My problem: I can not get what I described behind "my approach" up and running with a 1280x962, 36.67fps video input. See images 4 and 5 for frame buffer and clocked input settings respectively. 

 

Any help on this issue would be very much appriciated so please if you have any pointers, let me know :) 

 

Looking forward to your reply. 

 

Kind regards, 

 

Richard.
0 Kudos
14 Replies
Altera_Forum
Honored Contributor II
589 Views

Hi all, 

 

While waiting for any response from the experts I resumed struggling with the issue myself in a more or less brute force way. One of the things I tried in the mean time is enabling the option "locked frame rate conversion" from the frame buffer IP. Using the console from Quartus (jtag) I then write to the frame buffer control registers: input_frame_rate=36, output_frame_rate=60, controlled_rate_conversion=1 (true), control=1 (go). Instead of having a black screen I see something happening: I see what is presented in image2 but instead of having this test pattern blended in nicely I see flickering colors at the area of where the test pattern should be. I can also see that frames are dropped by reading the dropped frames register from the frame buffer. 

 

Once again, any help is appreciated on this.. 

 

Thanks in advance.
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

 

--- Quote Start ---  

instead of having this test pattern blended in nicely I see flickering colors at the area of where the test pattern should be. I can also see that frames are dropped by reading the dropped frames register from the frame buffer. 

--- Quote End ---  

 

 

Difficult to say without more information, but "flickering" and "dropped frames" usually sound like clock rate mismatch or memory access issues? To continue brute forcing things, simply try increasing (2x? 4x? 8x?) your FIFO depths across all modules and VFB burst target sizes. Any change in the on screen behavior and you'll get a hint the issue is in this area.
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

The 1080p video needs a 74MHz clock, the input video is a non-standard format - what clock rate is it running at? 

Your QSYS diagram only shows a single clock.
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

 

--- Quote Start ---  

The 1080p video needs a 74MHz clock, the input video is a non-standard format - what clock rate is it running at? 

Your QSYS diagram only shows a single clock. 

--- Quote End ---  

 

 

Thanks a lot for your reply! 

The input video stream has a pixel clock of 74.25MHz. Indeed the input is non-standard format, that is why I use the frame buffer for rate conversion and the alpha blender for blending with 1080p uniform background to achieve 1080p resolution. For clocked video output I use 148.5MHz to achieve 60Hz fps 1080p. 

 

regards, Richard.
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

 

--- Quote Start ---  

Difficult to say without more information, but "flickering" and "dropped frames" usually sound like clock rate mismatch or memory access issues? To continue brute forcing things, simply try increasing (2x? 4x? 8x?) your FIFO depths across all modules and VFB burst target sizes. Any change in the on screen behavior and you'll get a hint the issue is in this area. 

--- Quote End ---  

 

 

Please let me know what extra information you need to answer my question. 

 

Regards, Richard.
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

What rate is the "afi_clk" from your memory controller?

0 Kudos
Altera_Forum
Honored Contributor II
589 Views

 

--- Quote Start ---  

What rate is the "afi_clk" from your memory controller? 

--- Quote End ---  

 

 

Cliff, thanks for your reply! I believe the "afi_clk" clock rate which I use to clock the interconnect is 150MHz, I added a picture from the DDR3 memory controller IP block (see below). 

 

Kind regards, Richard. 

 

http://www.alteraforum.com/forum/attachment.php?attachmentid=11405&stc=1
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

 

--- Quote Start ---  

...I believe the "afi_clk" clock rate which I use to clock the interconnect is 150MHz... 

--- Quote End ---  

 

Actually I believe your afi_clk will be 75MHz, as you are running the memory controller at half rate. 

This may explain why you had success with the lower resolution video modes, but failed with 1080p.
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

 

--- Quote Start ---  

Actually I believe your afi_clk will be 75MHz, as you are running the memory controller at half rate. 

This may explain why you had success with the lower resolution video modes, but failed with 1080p. 

--- Quote End ---  

 

 

Cliff, thanks for your reply, but I don't believe the afi_clk is the problem, the 1080p uniform gray background from the Test Pattern Generator and used as layer 0 (din_0) with the Alpha Blending Mixer is perfectly shown on my monitor. Besides that, when I use 1280x960, 60fps as input (layer 1, din_1 with Alpha Blending Mixer) it works fine, so 1280x960, 36fps should work fine too in terms of interconnect transmission speed. If I am missing something, please let me know, but for now I don't understand why afi_clk should be a problem as you mentioned. 

 

Kind regards
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

 

--- Quote Start ---  

Actually I believe your afi_clk will be 75MHz, as you are running the memory controller at half rate. 

This may explain why you had success with the lower resolution video modes, but failed with 1080p. 

--- Quote End ---  

 

 

I just verified that afi_clk is 150MHz (which is half of 300MHz).
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

Hi all, 

 

Thanks for the replies so far, but non of them solved my issue yet. Please let me know if there is another way to get my issue fixed. I really need to fix this asap, because if this is not working I can not proceed and my company will not buy the IP blocks (Frame buffer and Alpha Blender) from Altera since the IP blocks do not seem to be very useful yet. 

 

Kind regards, Richard.
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

BTW, with the following video input formats I got my system working: 

1280x962, 60fps 

1280x960, 60fps 

800x600, 36.67fps 

800x600, 72fps 

800x600, 60fps 

 

But 1280x962, 36.67fps is NOT. I just do not understand why..
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

You might be better off going direct to Altera or an FAE. 1280x962 is a non-standard format - you would be better off asking altera direct if it is supported. 

 

Raise a ticket via mysupport.
0 Kudos
Altera_Forum
Honored Contributor II
589 Views

Thanks for your reply Tricky, I just did that, hopefully they can help me. 

 

In the meantime, while waiting for the response, if anyone has an idea, let me know :) 

 

Kind regards
0 Kudos
Reply