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

VIP Scaler and Clipper usage

Altera_Forum
Honored Contributor II
1,379 Views

Hi, 

 

I've tested the following three design flows in SOPC builder and they work: 

1. CVI(1920x1080@60Hz) -> Clipper(1680x1050) -> FrameBuffer ->CVO(1680x1050) 

2. CVI(1920x1080@60Hz) -> Scaler(1680x1050) -> FrameBuffer ->CVO(1680x1050) 

3. TestPatternGenerator(320x200) -> Scaler(1680x1050) -> FrameBuffer ->CVO(1680x1050) 

 

Now I want to realize this design: 

CVI(1920x1080@60Hz) -> Clipper(320x400) -> Scaler(1680x1050) -> FrameBuffer ->CVO(1680x1050) 

 

But it doesn't work... The output flatscreen only shows the first few lines correctly and then the rest of the screen is in one and the same color (i think it's the same color like the last correct displayed pixel). 

 

What can I do? Where is the problem? Do I have to add a second buffer between clipper and scaler? 

 

Thanks for your assistance! 

 

Best Regards, 

dbdeset
0 Kudos
10 Replies
Altera_Forum
Honored Contributor II
522 Views

Since this is an upscale, I would guess that the scaler is applying quite a lot back-pressure on the clipper which in turns applies back-pressure on your input and overflows it. Maybe you could try putting the frame buffer between the clipper and the scaler?

0 Kudos
Altera_Forum
Honored Contributor II
522 Views

Ok, thats it... Thanks!

0 Kudos
Altera_Forum
Honored Contributor II
522 Views

Hi dbdeset; 

I have the same design to do. cvi->clipper(900x1080)->scaler(1920x1080)->fb(1920x1080)->cvo(1920x1080).  

How can I do to get it working?  

 

thx.
0 Kudos
Altera_Forum
Honored Contributor II
522 Views

 

--- Quote Start ---  

Hi dbdeset; 

I have the same design to do. cvi->clipper(900x1080)->scaler(1920x1080)->fb(1920x1080)->cvo(1920x1080).  

How can I do to get it working?  

 

thx. 

--- Quote End ---  

 

 

 

hi, you have to place the fb between the clipper and the scaler like vgs wrote... first try using a testpattern-generator and then develop your system step by step.... 

 

 

 

--- Quote Start ---  

Since this is an upscale, I would guess that the scaler is applying quite a lot back-pressure on the clipper which in turns applies back-pressure on your input and overflows it. Maybe you could try putting the frame buffer between the clipper and the scaler? 

--- Quote End ---  

0 Kudos
Altera_Forum
Honored Contributor II
522 Views

As per discussion above, I am using: 

 

CVI(1920x1080@60Hz) -> Clipper(320x180) -> FrameBuffer -> Scaler(1920x1080) -> Mixer(1920x1080) -> CVO(1920x1080) 

 

This is working. But when I downscale like below, it doesn't work. I get a blank screen. 

 

CVI(1920x1080@60Hz) -> Clipper(not utilized) -> FrameBuffer -> Scaler(960x540) -> Mixer(1920x1080) -> CVO(1920x1080) 

 

What can I do to ensure downscaling works as well?
0 Kudos
Altera_Forum
Honored Contributor II
522 Views

Which parameters are set for the Framebuffer and the scaler in detail?

0 Kudos
Altera_Forum
Honored Contributor II
522 Views

Frame buffer 128bit bus; with 128 for fifo and 64 for burst for both read and write. Bilinear scaler is being used. 

 

What I'm finding is that if the scaler is placed after frame buffer, then I can use the clipper successfully even clip out a large of chunk of the original video frame. But I cannot downscale the frame at all. CVO is starved. Upscale works (ex. NTSC to 1080). 

 

On the other hand, if I place the scaler before the frame buffer, then I can downscale. But I cannot clip the frame even for a few lines. I get some functionality with the clipper only if I downscale the video frame. 

 

Avalon-MM bus is running at 100MHz. DDR3 interface is 32bit at 330MHz. 

VIP cores running at 133MHz (can't run at 148.5M due to timing violations) 

 

Anyways, I am wondering what can I do to have both clipper and scaler working for the above situations.
0 Kudos
Altera_Forum
Honored Contributor II
522 Views

Hi, 

 

you have to be aware that the incoming stream (at Clocked Video Input) is a stream without backpreassure, so if you miss even one data-packet you will loose the sync of the date and have to re-sync again, the same at the output side. If there is no data to transmit for even one clock cycle, the monitor will loose the sync...
0 Kudos
Altera_Forum
Honored Contributor II
522 Views

 

--- Quote Start ---  

Frame buffer 128bit bus; with 128 for fifo and 64 for burst for both read and write. Bilinear scaler is being used. 

 

What I'm finding is that if the scaler is placed after frame buffer, then I can use the clipper successfully even clip out a large of chunk of the original video frame. But I cannot downscale the frame at all. CVO is starved. Upscale works (ex. NTSC to 1080). 

 

On the other hand, if I place the scaler before the frame buffer, then I can downscale. But I cannot clip the frame even for a few lines. I get some functionality with the clipper only if I downscale the video frame. 

 

Avalon-MM bus is running at 100MHz. DDR3 interface is 32bit at 330MHz. 

VIP cores running at 133MHz (can't run at 148.5M due to timing violations) 

 

Anyways, I am wondering what can I do to have both clipper and scaler working for the above situations. 

--- Quote End ---  

 

 

 

Hi! I think I have more or less the same problem as you did. Did you find any solution?  

 

Thank you, 

Klaus
0 Kudos
Altera_Forum
Honored Contributor II
522 Views
0 Kudos
Reply