2 Aug 2000 const   » (Master)


Worked hard on the VNC compression project. First result is that subset of new "tight" encoding has been implemented in the vncviewer and in a standalone VNC proxy. Currently compression is equivalent to pure zlib encoding as implemented in the TridiaVNC (by the way, I was mistaken saying that zlib compression is implemented inefficiently in the TridiaVNC).

Now it's time to actually improve compression. I see two primary directions to do that:

  1. There should be a way to split screen updates into smaller rectangles representing different types of screen data: full-color areas, bi-level drawings, solid areas etc.). Each subrectangle should be compressed in a separate zlib stream and different filters should be applied for each type of data.
  2. Efficient filters (predictors) should be designed to handle data types which usualy compose typical screen contents.

And there are other problems with VNC that interfere with good compression: server sends many unnecessary screen updates (even when screen contents is untouched), potentially large updates frequently being split into many small pieces, etc.


My girlfriend dislikes the way I work. I sleep huge part of day and I work the whole night. And I'm tired of smoking: it's time to quit.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!