From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=51843 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PGaSN-0008Ov-PF for qemu-devel@nongnu.org; Thu, 11 Nov 2010 11:57:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PGaSK-0005TE-RG for qemu-devel@nongnu.org; Thu, 11 Nov 2010 11:57:03 -0500 Received: from relay2-v.mail.gandi.net ([217.70.178.76]:42259) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PGaSK-0005Se-JH for qemu-devel@nongnu.org; Thu, 11 Nov 2010 11:57:00 -0500 From: Corentin Chary Date: Thu, 11 Nov 2010 17:56:49 +0100 Message-Id: <1289494624-12807-1-git-send-email-corentincj@iksaif.net> Subject: [Qemu-devel] [PATCH v2 00/15] vnc: adapative tight, zrle, zywrle, and bitmap module List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Qemu-development List Cc: Corentin Chary , Anthony Liguori , Alexander Graf , Andre Przywara Hi, I rebased the series against current master, it contains: - 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 It was my last series from GSoC 2010 context, if necessary I can send different series for adaptive vnc, zrle and bitmap stuff. 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 + 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 ++++- 18 files changed, 2810 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 -- 1.7.3.2