Dear VNC developers,

I am extending the RFB protocol and would like to do it in a manner that is 
most beneficial for the community at large. The impetus for the changes are 
as follows:

* Minimize bandwidth usage, and maximize performance on low speed connections.
* Minimize the load and complexity on a RFB proxy/mirror server application.

My experiments with 8 bit color depth have shown that applying bzip2 
compression to an entire raw encoded full frame buffer update will save 
roughly 30% size over TightVNC's encoding scheme. This is significant for my 
application.

Here is the proposed change:

1) Add a pseudo encoding type such as:

#define rfbEncodingProxyFmt   9

2) Modify the FramebufferUpdate like so:

/*-----------------------------------------------------------------------------
 * FramebufferUpdate - a block of rectangles to be copied to the framebuffer.
 *
 * This message consists of a header giving the number of rectangles of pixel
 * data followed by the rectangles themselves.  The header is padded so that
 * together with the type byte it is an exact multiple of 4 bytes (to help
 * with alignment of 32-bit pixels):
 *
 * JDR addition - if rfbEncodingProxyFmt is enabled, then:
 *   1) The 'pad' byte is followed by an unsigned long which is the block size
 *       of the remaining frame buffer update. This makes it easy to proxy or
 *       broadcast.
 *   2) If the first bit of 'pad' is set, then the remaining frame update is
 *        bzip2  compressed.
 */

typedef struct _rfbFramebufferUpdateMsg {
    CARD8 type;           /* always rfbFramebufferUpdate */
    CARD8 pad;            /* JDR - Used if rfbEncodingProxyFmt is enabled! */
/*  CARD32 blkSz;   <-- Exists if rfbEncodingProxyFmt is enabled! */
/* If rfbEncodingProxyFmt is enabled and the 0th bit of 'pad' is set,
 * the remainder of the update is bzip2 compressed 
 */
    CARD16 nRects;
    /* followed by nRects rectangles */
} rfbFramebufferUpdateMsg;




-- 
=============================================================
John D. Robertson, Computer / Engineering Consultant
Robertson & Robertson Consultants, Inc.
3637 West Georgia Rd.
Pelzer, SC  29669

Phone: (864) 243-2436
  Fax: (864) 243-3023
Email: [EMAIL PROTECTED]
  WWW: http://www.rrci.com
_______________________________________________
VNC-List mailing list
[EMAIL PROTECTED]
To remove yourself from the list visit:
http://www.realvnc.com/mailman/listinfo/vnc-list

Reply via email to