FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
5892 Discussions

Bitec hsmc dvi / Image&Video processing

Altera_Forum
Honored Contributor II
1,144 Views

Board: Altera Cyclone III  

 

Daughtercard: Bitec DVI card (only DVI in and DVI out, nothing else. http://www.bitec.ltd.uk/hsmc_dvi.html

 

Software: Quartus 8.1 

 

Hi Everybody, 

 

So I have DVI input and DVI output using the aforementioned set and Bitec's " dvi 1024x768 loop-through c25 eval (beta) " bundled software. This program tripple-buffers the input on DDR SDRAM and then outputs. Its is running without any problems. So I can get the exact copy of my DVI input as my DVI out. 

 

my goal for now is to be able to change the color of some part of the screen (say a square or something.) while the rest of the screen looks normal on dvi out. And I preferably want to do it without using SOPC Image and video processing tools because I need to modify my code for extra manipulations on the display screen in order to reach my main goal. If SOPC is the way to go though, I wouldn't mind at all. 

 

 

 

 

My problem is that I am a newbie and I don't know how you work on pixels in FPGA environment using VHDL.  

 

any start up ideas on how to implement this thing would be highly appreciated. any sample code to work on pixels, etc. 

 

I looked up at Avalon S-T architecture and all that but as of now I can't combine all that info together.  

 

another thing, should i use vhdl (i think the bundled software was written in vhdl)or can i do this using nios hence by using c ?
0 Kudos
9 Replies
Altera_Forum
Honored Contributor II
419 Views

Check out the Altera VIP Suite, it will do all you want and more; not the cheapest; but well worth the cost for a commercial design (IP License cost about $1000); however, you can try it all out before hand using the OpencorePlus method. 

 

Mike
0 Kudos
Altera_Forum
Honored Contributor II
419 Views

Thank you so much, Mike...  

 

I have the VIP Suite but I still can't do it. I don't know how I can manipulate individual pixels. With VIP Suite you can "crop" part of your DVI input etc. but it is not what I want to accomplish here.  

 

I want to be able to work on individual pixels and manipulate them using Bitec's videostream sample code that I mentioned above. That is downloadable if anyone wants to check out to help me here. 

 

So can your or someone else help me understand how to get this thing started ? 

 

Thank you so much in advance
0 Kudos
Altera_Forum
Honored Contributor II
419 Views

 

--- Quote Start ---  

Thank you so much, Mike...  

 

I have the VIP Suite but I still can't do it. I don't know how I can manipulate individual pixels. With VIP Suite you can "crop" part of your DVI input etc. but it is not what I want to accomplish here.  

 

I want to be able to work on individual pixels and manipulate them using Bitec's videostream sample code that I mentioned above. That is downloadable if anyone wants to check out to help me here. 

 

So can your or someone else help me understand how to get this thing started ? 

 

Thank you so much in advance 

--- Quote End ---  

 

 

If you use the Frame Buffer, you can manipulate the pixels all you want and MIX them into you stream or just work on the stream pixels while in the buffer. 

 

Or do you want to do something more? I'll admit, I have not looked at the BiTec code yet. 

 

Mike
0 Kudos
Altera_Forum
Honored Contributor II
419 Views

Again thank you for your guidance, Mike. 

I will eventually want to do more but for now manipulating the pixels would be enough.  

 

By the way, the sample code on BiTec's website "dvi 1024x768 loop-through c25 eval (beta)" is already using the Frame Buffer (it is clearly seen in SOPC).  

 

But unfortunately I couldn't quite get a grasp of how they did the Frame buffering. Of course I am not talking about adding the Frame Buffer in VIP Suite and changing couple of parameters but about the written or computer generated part of the code.  

 

I was thinking if I could get help for better understanding of how video streaming is handled with "Altera Cyclone III - Bitec DVI Card" using VHDL so that I could -maybe- mimic it and inject my own code into BiTec's DVI sample code and manipulate the pixels the way I want. 

 

Thanks, 

Tyler
0 Kudos
Altera_Forum
Honored Contributor II
419 Views

Hi 

 

You may want to consider a "Clocked Video Output" feeding into a "Clocked Video Input" SoPC components. You can then insert your pixel manipulation between the output and input using the datavalid signal to qualify pixels. 

 

You would have to insert some arbitrary video timing parameters on the "Clocked Video Output". 

 

Hope this helps ;->
0 Kudos
Altera_Forum
Honored Contributor II
419 Views

The biggest problem right now is that i don't know how to manipulate pixels; for example changing the rgb values of some random individual pixels besides using VIP suite and choosing a rectangle on the display to manipulate pixels and etc which is not what I want to do.

0 Kudos
Altera_Forum
Honored Contributor II
419 Views

Can somebody help me out, please ?

0 Kudos
Altera_Forum
Honored Contributor II
419 Views

Tyler, 

 

I think the problem we are all having is understanding what it is you're trying to do. 

 

We have described how to manipulate the pixels in the frame buffer, how to manipulate the data as a stream. All video is based on a rectangle (Horz. x Vert.) and you can manipulate data as memory (Frame Buffer) by calculating the X/Y posistion you want to work on; you can count the lines and rows in the data stream (Decoding the X/Y point via decoding and counters). 

 

Tell us what you are actually attempting and maybe we can help. 

 

Mike
0 Kudos
Altera_Forum
Honored Contributor II
419 Views

Hi Mike,  

 

I want to ask you something else instead. Resolution in both of my displays are 1024x768 @60 Hz (That's how bitec's software needs them to be). When I add "clipper" into project and choose a rectangle of any size, 640x480, 1024x768,etc. , the output is very "shaky". 

 

It is impossible to see anything at the output. 

 

Do you know of any reasons that might have caused this ? 

 

PS: I am sorry, as I mentioned before, I am a newbie. So, even though you said you had described how to manipulate pixels, I just don't get it.
0 Kudos
Reply