Hi, In this series you'll find: - Adaptive Tight Encoding: send lossy or lossless updates depending on the update frequency of the screen region. If a lossy update is forced, then it will be refreshed with a lossless update as soon as the update frequency goes back to 0.
- ZRLE/ZYWRLE Encodings: ZYWRLE use less bandwidth than tight, but the result is also probably more lossy. I wanted to make ZRLE/ZYWRLE adaptive, but this is not possible because most of the vnc clients can't switch between ZRLE and ZYWRLE. But a possible solution is to use another encoding for lossless updates, like zlib or tight. - Bitmap module: create bitmap.h and bitops.h, and remove duplicate code from vnc.c This is probably my last series in the GSoC 2010 context, but I'll probably continue to work on the VNC server for some time :). Thanks, Corentin Chary (15): vnc: don't set the quality if lossy encoding are disabled vnc: add a way to get the update frequency for a given region vnc: refresh lossy rect after a given timeout vnc: tight: use the update frequency to choose between lossy and lossless vnc: palette: use a pool to reduce memory allocations vnc: palette: add palette_init calls vnc: palette: and fill and color calls. vnc: Add ZRLE and ZYWRLE encodings. vnc: fix uint8_t comparisons with negative values vnc: fix lossy rect refreshing bitmap: add a generic bitmap and bitops library vnc: use the new generic bitmap functions vnc: don't try to send bigger updates that client height vnc: tight: tweak adaptive tight settings vnc: add a non-adaptive option Makefile.objs | 2 + bitmap.c | 255 ++++++++++++++++ bitmap.h | 222 ++++++++++++++ bitops.c | 142 +++++++++ bitops.h | 272 ++++++++++++++++++ osdep.h | 4 + qemu-options.hx | 9 + qemu-thread.c | 1 + ui/vnc-enc-tight.c | 75 ++++- ui/vnc-enc-zrle-template.c | 275 ++++++++++++++++++ ui/vnc-enc-zrle.c | 390 +++++++++++++++++++++++++ ui/vnc-enc-zrle.h | 40 +++ ui/vnc-enc-zywrle-template.c | 170 +++++++++++ ui/vnc-enc-zywrle.h | 652 ++++++++++++++++++++++++++++++++++++++++++ ui/vnc-jobs-async.c | 4 + ui/vnc-palette.c | 59 +++-- ui/vnc-palette.h | 7 +- ui/vnc.c | 283 ++++++++++++++----- ui/vnc.h | 57 ++++- 19 files changed, 2811 insertions(+), 108 deletions(-) create mode 100644 bitmap.c create mode 100644 bitmap.h create mode 100644 bitops.c create mode 100644 bitops.h create mode 100644 ui/vnc-enc-zrle-template.c create mode 100644 ui/vnc-enc-zrle.c create mode 100644 ui/vnc-enc-zrle.h create mode 100644 ui/vnc-enc-zywrle-template.c create mode 100644 ui/vnc-enc-zywrle.h