Steve Perlman is whining that people like me haven’t used the system and are already saying it won’t work, but Onlive is one of those technologies that if they have solved the theoretical problems I’ll lay out, then he shouldn’t be in gaming he should be in IPTV and Video Teleconferencing.
When you play Xbox 360, or a PC Game you are playing at 59.94 (60) Displayed Frames per second. This is NOT the same as Rendered Frames per second.
While games strive for that silky smooth 60 FPS most achieve 30+ or get the reputation for being “laggy" or “Sluggish”.
Games that fail to render frames fast enough, or consistently enough have “Tearing” where a frame has a line in the middle of the frame where the image is not from a single slice of time.
Because Each image represents 1/60th of a second the minimum latency a game can have is 16.7ms.
Because a game has to calculate the physics the controller input and all the “other” stuff it is impossible to hit this number, so really well written games try to get all of this done in 16.7ms so that you can live one frame in the past. This puts the minimum latency at 33ms (1/30th of a second).
When you play a game over the Internet, like Rainbow 6 Vegas 2, or another First Person Shooter, not only does the rendering have to deal with the local player but those over the Internet as well. Give Google a Ping if your connection is “normal” it will take about 50ms. This is the amount of time it takes to send 32bytes from your PC to Google’s and have it respond.
Most games can’t get all the data from the server in 32bytes, as a result playing games of the Internet the Game engine uses Interpolation of the data to smooth out the data assuming if you are going in a direction will be going that way in the next frame, and if you aren’t well you won’t notice that the player “rubber banded” in to the new position in the following frame.
A Video Encoder doesn’t get to “Predict” what the next frame will look like so it has to “Eat” that delay.
A Video encoder also has to deal with the limitation that it takes 16ms to receive a frame from the Video Renderer before it can start encoding, so unlike “you” which sees the top of the frame at 1ms and the bottom at 16ms an encoder needs the whole frame.
If a frame was encoded as only a JPG what is called Intra Frame Compression or IFrames only one frame would be needed. However to get the efficiencies of Motion Vectors, and all of the things H.264 and other current generation video compression codecs use you need at least 3 frames or 48ms. An encoder like Uverse, DirecTV, or Comcast uses for HD encoding adds a full 3 seconds of delay in order to make the video quality look the best.
The Decoder also has to have at least 2 frames so it can start to decode, and those frames have to be transmitted much like that ping we talked about earlier.
So in a perfect world…
Playing a game locally the delay is 16ms of computation, 1-16ms to display and you get 17-32ms.
Playing a game over the Internet. 50-100ms to talk to the Internet server,16ms of computation, 1-16ms to display totals to 67-133ms.
Playing a Single Player game over a remote encoder in a “perfect” low latency setup.
48ms to get the input from the client
16ms for computation
48 ms for the encode “buffer”
50-100ms to transfer the data to the client
48 ms for the decode buffer
1-16ms for the display
That’s 211-277ms That is in a “perfect” scenario playing by yourself.
Playing a Multiplayer game… adds another 50-100ms upping it to 261-377ms.
Now let’s play in the realm of reality.
The Encoders used by ATT UVerse come from companies like Harmonic, and Tandberg, they Cost $30-40k per channel. In the setup Onlive is talking about you would need one encoder per client. Amortization of a $30k device assuming a you could keep users to 30 minutes a day and get 100% utilization through perfect time sharing you’d have to charge $26 a month to get your investment hardware back in 2 years. To actually handle peak hours and an hour a day, you’d be amortizing over 20 years instead… Not so likely do 5 years? $100 a month.
If Onlive has this tech worked out, and they aren’t vapor ware, and aren’t planning to lose a crap load on hardware then they should be in the IPTV business. The Encoder business would pay better.