Bandwidth needed?

Started by
39 comments, last by hplus0603 15 years, 10 months ago
Hello. What do you think is the minimum bandwidth (down speed) for send like a stream all the game video and audio to another computer? I explain. Supoups that run a game in computer A that acts like a server, but I send all the output(audio+ video) through the net to computer B that is a "super thin" client that receives all this information. How good should it be the bandwith conexion between both of them for a smooth visualization in the B computer? Image a game like call of duty 4 for example. I just asking for a approximation guess, nothing extrict is need it. Thanks. [Edited by - vsk on May 26, 2008 11:56:57 PM]
Advertisement
Depends on the kind of quality that you want.
Do you want it to look like Youtube, or should it look as good as the original image?

If you want full quality (with no compression), it will use up about 1/3rd of a gigabit network's bandwidth:
Images:
800*600 * 3 = 1.4MB bitmap per frame
@ 30hz = 41MB per second
= 330 megabits per second
Sound:
44,000khz * 16bit samples = 86kB per second
= 687.5 kilobits per second

If you do some major compression (which would require lots of CPU time on either end for compression/decompression), you could cut it down a lot:
Images:
640*480 * 3 = 900kB bitmap per frame
900kB bitmap can compress to ~9kB JPEG
@ 15hz = 135kB per second
= 1 megabit per second
Sound:
11,000khz * 8bit samples = ~10kB per second
= 86 kilobits per second

Of course you can keep cutting the quality until you get down to 96 kilobits per second (or whatever), but it's going to look pretty terrible at that stage...
wow! thanks you are a genius, quick and accuracy response! :).

Yes I will need original quality and original sound.
Have you tried this in practice?
Is this approach that I named used for anything actually? and in games?
If so, could you please send me some page link to read about it, I have search, but not found, maybe because I don't use the proper terms for search (english is not my native language).


Thanks again!.
Ok, last one.
If I have a 5Mb bandwidth and run the game on computer A, then pass the 800*600*3 image to computer (next to A) C with a good procesor, (let say, quad core) to ONLY compress this images in the way you named. And then send it to B through the net. In the B (super thin client) I decompress again with a good processor.
Could I manage a 30hz smooth visualization?
Thanks
You could, but it would be pretty ordinary.
If the internet lag didn't kill you, compressing and decompressing on top of this might.

If you plan on adding more players/users later this approach will not work on your bandwidth.
It depends on the entropy of the image.

Remote desktops manage much more, but they rely on knowledge of API and cooperation of OS.

For video, it depends how much information you lose. The most trivial compression is to downsample the images. From 800x600 to 160x120, perhaps.

Quote:with a good procesor, (let say, quad core)
Irrelevant. Image carries certain amount of information that needs to be transferred. For typical motion video, that will be some 70-100% of raw data (assuming Huffman or arithmetic coding).

If you include motion prediction, then for low motion scenes you can get better compression ratio, but you gain nothing for full scene changes.

Another problem is also bus bandwidth. 330mbps needs to be transferred from capture card into main memory, then copied from there to network. This puts the total requirements at 660mbps. Since you include compression as well, you need to perform another copy. This all may quickly exhaust the available memory bandwidth, especially once you consider the processing needed for intra-frame motion prediction.

For all the video processing I've done, it was always the bandwidth that limited the resolution.

Note that H.264 codecs have trouble *decoding* the stream of lesser resolution on single-core machines, and they are heavily optimized.

Quote:Could I manage a 30hz smooth visualization?


Yes. But not at full resolution, and not over 5Mbps link. On 100Mbit LAN, by reducing resolution to 320x240, and by running one of streaming codecs.

Note that you 5Mbps link means you have 170kbps (21kBps) per frame, so you need per-frame compression ratio of 1:66.

This comes to about 1.5%, which is comparable to compression ratio of JPEG format at 60-70% quality factor!

Quote:I have search, but not found
"Real-time streaming video"

Quote:Is this approach that I named used for anything actually?
YouTube, GoogleVideo, thousands more streaming sites, Skype, teleconferencing, Desktop Remoting, VNC, .....

Quote:and in games?


There was an experiment that used distributed ray-tracing rendering across 30 machines over high-bandwidth LAN to generate images in real-time.

Other than that, no. Full-quality or loss-less transfer isn't used, since it simply isn't viable.

Or if it is, you should consider gigabit LAN, or various fiber connections.
If your goal was to make a super computer render the game for everyone then send out the video and sound so anyone with a decent computer and high bandwidth could play it then it's been thought of many times. It's just not a viable solution yet.
Quote:Original post by Sirisian
If your goal was to make a super computer render the game for everyone then send out the video and sound so anyone with a decent computer and high bandwidth could play it then it's been thought of many times. It's just not a viable solution yet.

Haha, the only one who got it ;).

So, is there any article, discussion, whatever, that you can send me to dig into it?

And besides, (related to this), anyone has seen a "projected internet -average- bandwidth" for future, I mean like the tables from the "Moore law" about the transistor, memory, etc, but about the bandwidth in internet.
I will appreciate it.

Thanks all of you for your answers.
Available bandwidth isn't much of a problem, as there are networks in developement which offer 100x the current home bandwidth but the latency (the time it takes for data to travel through the network ) is still constatined by fundemental physical constraints, and haven't improved much.

Most multiplayer games can get away with the current latency by simulating as much as possible on the client, and displaying it at the immediate framerate ( ususaly 60-30 fps). With a pure thin client (used only to render a audio/video stream), the interactive latency would produce slugish response between users actions and visual change, leading to the dreaded FPS nausa. Maybe if the client was to extraoplate the render stream and project simple a transform upon the data (ie moving left/right or forward will produce a canned video effect of panning or zooming the video stream) in anticipation of the expected eventual outcome of the video stream, it could hide some of this latency. However it can't project gameplay events like shooting as such since that required alot of knowledge about the game itself and the cascade of events from such an action.

However that said, it's not unresonable to take a hybrid approach where say the client renders the close world ( ie first 50 meters from the user ) in the tranditional manner and the rest ( ie the far world 50 -> inifinty meters out ) could be served by a supercomputer type machine rendering a non-interactive vistas ( since the user cant possibly interact with that world fast enough ).

This could be useful for MMO where they can keep a lower macine requirements for their users, while still provide them with high quality visuals.

Good Luck!

-ddn
Interesting. Thanks for the explanation.
Anyway, I will wait for some years, I think this will be the future standard for gaming, ok, is kinda a crazy, but I really think is gonna be this way.

About the "projected bandwidth Internet average" anyone has seen one?, I have no found none on google (but again my not-native English language skills could play against me ;-)).

Greetings.

This topic is closed to new replies.

Advertisement