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

Video IP Questions

Altera_Forum
Honored Contributor II
1,357 Views

Hi, 

 

I'm playing around with the Altera video IP core to familiarise myself with its functionality and capabilities ahead of an upcoming project. However I'm running into problems getting a simple data flow working. 

 

So far I have: 

 

Test Pattern -> Clocked Video Output - OK. 

 

Test Pattern -> Frame Buffer -> Clocked Video Out - OK. 

 

Test Pattern -> Scaler -> Frame Buffer -> Clocked Video Out - FAIL! 

 

Test Pattern -> Scaler -> Mixer -> Frame Buffer -> Clk Video Out -> FAIL 

Test Pattern -------------^ 

 

In the latter 2 cases, I scale the source by 50% but the output shows the scaled-down test pattern across the whole screen and 1/2 the height - IOW it's displaying two successive lines of the scaled-down source on 1 full line of the output. 

 

I thought I may need a mixer hence the last case above. It has problems of its own - I only ever see 1 source, regardless of which layers I enable/disable - but the most important thing atm is that I still see the mis-sized output of the scaler. 

 

Is there something fundamentally wrong that I'm doing here? I've read the video app note and I can't see that I'm doing anything radically different here??? 

 

Any hints would be appreciated. 

 

Regards,
0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
679 Views

I've now also tried... 

 

Test Pattern -> Scaler -> Frame Buffer -> Mixer -> Video Out 

Test Pattern -----------------------------^ 

 

Same results. :(
0 Kudos
Altera_Forum
Honored Contributor II
679 Views

Well before you get too upset, let me assure you that the cores do work as I am using them in a few projects now. They do have their caveats but they do work. 

 

One block I'm not familiar with is the Test Pattern block. What do you have it configured to generate? 

 

What is your Video Output Format? 

 

Do you have the scaler set up for dynamic reconfiguration? This is a bug I found in 7.2. If I didn't enable the control port on the scaler, It would do something similar to what your mentioning like displaying the image multiple times across the width of the frame. You don't necessarily have to reconfigure it, it just has to be enabled. 

 

Your last mentioned scheme is the one you should use: 

Test Pattern -> Scaler -> Frame Buffer -> Mixer -> Video Out Test Pattern -----------------------------^  

Jake
0 Kudos
Altera_Forum
Honored Contributor II
679 Views

 

--- Quote Start ---  

Well before you get too upset, let me assure you that the cores do work as I am using them in a few projects now. They do have their caveats but they do work. 

 

One block I'm not familiar with is the Test Pattern block. What do you have it configured to generate? 

 

What is your Video Output Format? 

 

Do you have the scaler set up for dynamic reconfiguration? This is a bug I found in 7.2. If I didn't enable the control port on the scaler, It would do something similar to what your mentioning like displaying the image multiple times across the width of the frame. You don't necessarily have to reconfigure it, it just has to be enabled. 

 

Your last mentioned scheme is the one you should use: 

Test Pattern -> Scaler -> Frame Buffer -> Mixer -> Video Out Test Pattern -----------------------------^ Jake 

--- Quote End ---  

 

 

I wouldn't say that I'm getting upset - I've actually seen some IP running elsewhere - just wondering what I'm missing here! :confused: 

 

The Test Pattern generator is configured to output 640x480. 

The scaler has the control port enabled, and when set to 640x480 it works, scaling to anything else eg. 320x240 results in distorted display as I described. 

 

Video output is 640x480. 

 

To re-iterate with more detail, I have... 

 

2x Test Pattern, hard configured to 640x480 

1x Scaler, control port enabled, nearest-neighbour, max 640x480. 

1x Mixer, 2 layers, control port enabled, no alpha blending, 640x480 output. 

1x frame buffer, max 640x480 hard-wired, no control. 

1x clocked video output, no control, 640x480. 

 

Thanks for your repsonses, 

Regards,
0 Kudos
Altera_Forum
Honored Contributor II
679 Views

Another update... 

 

It seems I can select which layer is displayed in the mixer OK. 

 

Again, I have 2 sources, one 640x480 fed into a scaler, the other 640x480. 

 

Interestingly, if I scale the 1st source, but display the 2nd, the area is clipped to the resulting area that would be displayed on the 1st source if it was enabled... weird...
0 Kudos
Altera_Forum
Honored Contributor II
679 Views

For the alpha blending mixer block, the 1st source is the background layer for the mixer. This source drives the output frame size of the mixer. It is expected that all other sources will fit inside of this region. The 1st source to your mixer should always match the output frame format (in your case 640x480). 

 

Are you running on a development board or a custom board? 

 

Jake
0 Kudos
Altera_Forum
Honored Contributor II
679 Views

 

--- Quote Start ---  

For the alpha blending mixer block, the 1st source is the background layer for the mixer. This source drives the output frame size of the mixer. It is expected that all other sources will fit inside of this region. The 1st source to your mixer should always match the output frame format (in your case 640x480). 

 

Are you running on a development board or a custom board? 

 

Jake 

--- Quote End ---  

 

 

Doh!! Thanks Jake, I missed that completely. I was feeding the scaled video into Layer 0, not realising that it needed to be a fixed background layer. I've now switched the two sources, and have done away with the code attempting to control the non-existent Layer 2, and it all works as expected. 

 

I'm running on a TerASIC DE2 atm, but will be running on a custom board eventually. 

 

Thanks again for your tips! 

Regards, 

Mark
0 Kudos
Reply