Newbie query

Corne Beerse cbeerse at
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
> pseudo-encoding
> 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 (
> 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.


mailing list