A possible compression scheme
James [Wez] Weatherall
jnw "at" orl.co.uk
Wed, 30 Sep 1998 16:18:07 +0000
On Wed, 30 Sep 1998, Brad Clements wrote:
> I think this would be a good idea too, however consider also that the
> client may have limited memory capacity and needs some way to tell
> the server what the cache size is.
>
> > We've talked about this sort of caching scheme in the past, and agree
> it
> > could be a good idea. One of the easiest ways might be for the server
> > to cache the last, say, 200 rectangles it has drawn, and then, when
> > drawing a new rectangle, to find out whether it might be a duplicate,
> > and use a CopyRect operation if so. Assuming, of course, that no
> > subsequent rectangle had overwritten it. The big advantage of this
> > approach is that no changes to the protocol need to be made.
Not if the 'cache' is just the screen. The server can, at present, always
tell what is on the client's display. It can therefore round off all
update rectangles to 8 pixel boundaries, for example, and then scan blocks
of 8x8 pixels to establish which blocks look the same, in order to
assemble suitable CopyRect updates to send the client.
Neither the protocol nor the clients would need updating for this to work
and the new scheme would work alongside any existing encoding.
The other approach is to actually have some sort of backing store in the
client but hope to cope with this cleanly is a tricky question.
Cheers,
James "Wez" Weatherall
--
Olivetti & Oracle Research Laboratory, Cambridge, UK.
Tel : Work - 343000
---------------------------------------------------------------------
The VNC mailing list - see http://www.orl.co.uk/vnc/intouch.html
---------------------------------------------------------------------