X compression techniques (was Re: VNC server based on kdrive using damage extension?)

Gian Filippo Pinzari pinzari@nomachine.com
Fri, 20 Feb 2004 00:10:39 +0100


Egbert Eich wrote:
> Right. At the moment this is a no issue as the technology lives
> on a proxy server.  I was suggesting to review the technology
> and see if it's worthwhile to integrate some parts of it into
> the server.

This is what I suggested multiple times in the XFree86
and Xouvert mailing lists. I pointed out even recently
that X needs a better way to transport bitmap images and
suggested that X people look at how this is implemented
in NX.

http://mail.gnu.org/archive/html/xouvert-general/2003-12/msg00010.html

> Gian Filippo replied to this basically saying that
> the merit of keeping it separate is to avoid the introduction of
> another complicated element to the server at a neglegtible cost
> of performance.  And he may be right.

I don't think that the whole NX system can go into the X
system. They are designed for different purposes. NX is
intended to be a remote/virtual/distributed computing system,
complementing network transparency built in commodity
protocols like SSH, X11, RDP, SMB, HTTP, Audio, Video, etc.
It was designed to be on top of X as well as other protocols.
We just chose X to transport display, keyboard and pointing
devices' to the user. If you look at NX closely, you will
find that there is much more than just X compression and
proxying. The fact we are spending 90% of our development
time on X-related stuff instead of improving the rest of
our software is because bringing display, keyboard and
pointing devices to users over the Internet it's not only
the most important step, but also a non-trivial task.

 > On the other hand I've talked to him a while back about the license
 > issue and he didn't seem to be entirely opposed to relicense this
 > software should we find this useful.

Not many more improvements can be introduced in the X
protocol, but some are worth a try. This is completely
in the scope of the X system. Ignoring an interesting and
useful project that has probably put some light on a few
X limitations looks questionable. Some have pointed out
license limitations. I guess it's not just that. Given
that our solution is a good solution to a X problem, I
think that the X world should work with us to bring it
in the X system. If it is not, well sorry for bothering
you. Asking us to change the license of all our software
-OR- get out of X is not fair and is not according to the
goals of the free software movement. Let's X have its X
license and the NX core have its GPL. Choosing the GPL
we knew the pros and the cons.

The part of NX that is closest to X is in a library,
called nxcompext. At the moment it is only intended to be
used by NX agents, but it can be used as a base for a X
image compression extension. We can help redesigning it
to be general purpose and also release the existing code
under the X11 license. All the other small changes we made
to X components can as well be introduced back in the main
branches of the respective projects, according to their
original licensing terms. This is not an issue. At the
same time NX compression and agents are something outside
the X server scope and can easily remain GPL. They are
part of the NX system. I hope there will be other parts
of the Freedesktop project where they will be found of
some use. The improvements we take into X will benefit
any X user, not only users using NX.

/Gian Filippo.