Hello All,I'm looking at my options to build a system where a video signal from DVI would be converted to ethernet packets. This would be for a streaming application. DVI data is converted with a simple DVI RX IC and the RGB data fed to the FPGA which in turn would drive a PHY. Hopefully this could be done with Cyclone IV series. Is something like this possible? I assume I would be using the TSE core and sending GMII output to a Marvell gigabit TX. Is there a lot of glue logic that needs to be implemented in order to actually have the RGB data output as ethernet packets? Thank you for your help.
You will have to read SMPTE standards to find out how those packets are encapsulated to the Ethernet packets, but check if You won't exceed gigabit connection bitrate? What image resolution do You expect? E.g. FullHD is >1.4Gbps afair.
It is definitely not exactly straight forward. All video packet must be compressed before it is encapsulated to Ethernet packet. This would involve not just FPGA, but also some form of TCP/IP work.Ethernet definitely cannot support uncompressed video as what Socrates has said. Why do you want to do that anyway.
It would seem that 720p HD would fit the channel of the gigabit ethernet, no? Excluding blanking it would be 1280x720x16x60 = ~884megbits. Whether there is actually this much efficiency in the packetizing is unknown to me. It is part of my question as I don't know how this packetizing actually works. Even if the direct HD streaming wouldn't work and something like mpeg compression is employed the original question remains:Do you know if I can just send Avalon-ST packets(e.g. from VIP modules) that contain video to the TSE block and assume it takes care of the format conversion or am I missing some steps?
Ah, you are talking about 4:2:2 or lower. Well, if you really intend to send raw uncompressed video over ethernet, you are pretty much on your own. I am not aware of any standard that even does that. So it will be your own custom protocol that will only work in your own LAN environment. I don't see why would one wants to even push that kind of bandwidth thru a ethernet. You are better off, directly connecting the DVI signal onto a Cat.6 cable for a medium length run.
--- Quote Start --- It is possible to stream 720p and afaik it's documented in SMPTE2022 standard. Unfortunately, I don't have it... :( --- Quote End --- Well..agreed. But I seldom seen the industry using it, unless it is absolutely necessary. Pushing 900Mbps thru a 1G network is rather tough, unless it is C-class. I have only seen HD on 10G network so far.
Thanks for your reply.We are drifting from the intention of my post.. Let's say the video is then compressed heavily and coming out of a MPEG encoder - this part I didn't mean to debate. Assuming its still adhering to the Avalon-ST video standard out of the encoder, can I just hook it up to the TSE block and expect the data be packetized properly and sent to the ethernet where it can go through routers/switchers/relays/whatnot and be received anywhere else? Or, is there some special "pre"-packetizing that I have to create with a glue logic prior to sending it to the TSE? Maybe CRC, maybe something else? Or do I need to create the packets myself? I'm not too familiar with Ethernet - that's why I'm asking basic premise questions..
You will need to encapsulate the incoming Avalon-ST packets into Ethernet. You will need to add a header (at minimum Ethernet, but also probably IP and UDP if you need those protocols at the receiving side) and if the incoming packets are bigger than 1500 bytes, you'll need to fragment them.The Ethernet CRC is automatically added by the TSE, but the other checksums (on the IP and UDP levels) aren't calculated automatically.
--- Quote Start --- It is possible to stream 720p and afaik it's documented in SMPTE2022 standard.:( --- Quote End --- The SMPTE2022 standards deal with 188 (or 204) byte transport stream packets. It outlines the standard for transmitting them using RTP. The RTP uses UDP encapsulation. If you are not interested in RTP (or FEC) for a transport stream, SMPTE2022 is not for you. If you do have the transport stream packets, a simple UDP encapsulation can work for a local network.
From the bandwidth is is possible to transport the DVI data you described over GigE, since >115MByte/s had been reported and prooved for a particular PHY on the e.g. DE-115 board. But I doubt if it works with a SOPC / Avalon interface. Pure packet writting will be done.Moreover:I know a project with a streaming interface using Altera's MAC in accordance with an ethernet PHY performing GigE-Vision Standard exceeding 100MB/sec, but it is without SOPC / Nios or any OS. One system I know is with OS, but does perform more than 400MBit. A video transport layer in a specialized device for video in surgery field works with compression to make use of around 90MBit, 180MBit and 270Mbit for up to 3 channels of video data.