cbeerse at gmail.com
Mon Feb 20 17:24:59 GMT 2012
On 15-2-2012 13:53, Girish H T wrote:
> Hi Experts,
> I am new to VNC. I have few basic queries.
I'm old to vnc, I might be off for current versions, my experience is
based on 'older' versions and variants...
> 1. What is the frame rate that is supported by VNC encoding techiniques.
> Say i want to watch a fast moving movie. Will VNC be able suffice the
> requirements like 23-30fps/sec provided u have sufficient processing power ?
As far as I know, VNC is not capable of those frequencies, however, that
is depending on the remote OS and some other settings:
- the mswindows version is polling the entire screen-memory once in a
while (a couple of times per second). The found updates are send over.
This is not capable of showing movies for 2 reasons: it is most times
not fast enough, and above all, with hardware accelerated viewers, the
picture information is not stored in display memory, so vnc does not see
it (it sees a black/blank square).
On unix/linux implementations, vnc is more close to the screen software.
Most implementations (specially the ones called 'xvnc') effectively are
the display driver. They donnot need to look for updates as they process
the updates themself.
> 2.What i see from the latest protocol is that the encoding techniques.
> Raw,CopyRect,RRE,Hextile,ZRLE,Cursor pseudo-encoding, DesktopSize
> What is the best encoding technique out of this ? What are the advantage
> over MPEG based compression techniques ?
That depends on the usage. Normally, I donnot twiggle with it, let VNC
decide on the encoding between remote and local systems.
mpeg is a reasonable compression for movies, as jpeg is a reasonable
compression for pictures. However, screen dumps is what VNC needs to
process. There png and similar (even gif) have better compression with
less cpu usage, specially with mono-color backgrounds and such. Keep in
mind, vnc is developped in the 1990's (or even before) so it is relative
lean and mean.
> 3. I saw a post (
> http://www.realvnc.com/pipermail/vnc-list/2005-August/051828.html) dated
> 2005, is answer still the same ? I am sure things have changed a lot in
> terms of processing power , hardware accelerators for mid end and low end
> phones (viz android). I am sure this will open up whole new opportunities
> in terms of business :) and in terms of quality of service.
If you dive in the code, specially the old ones, you can see that vnc
already does what mpeg does compared to jpeg: it only sends the
differences and only once in a while the complete refresh.
For the use of jpeg (and mjpeg and mpeg) on one side and gif/png and
such on the other side: take a screendump of your screen now (msWindows:
<alt><prtscrn>) and paste that in a pixel-based paint tool. Now save
this picture as jpeg and png and gif. Next compare the file sizes of
those files, I bet the png is smaller. Even a gif can be smaller. Now
open the saved pictures and compare at the pixel level: The png and gif
files have the origional sharp image where the jpeg has blurred
characters. IF you twiggle with the jpeg compression, you can use 25, 50
and 75% compression ratio and compare them all.
These are the major reason why remote-screen-systems don't use jpeg and
mpeg, even with todays cpu power: it is a waste of cpu power at both
ends with little or no gain.