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:
- 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.
- Efficient filters (predictors) should be designed to
handle data types which usualy compose typical screen
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.