From 537280f183d3a35e8dee8a20238c71e7440cb28c Mon Sep 17 00:00:00 2001 From: Yonit Halperin Date: Sun, 20 Jun 2010 17:18:56 +0300 Subject: Lossy compression of RGBA images (on WAN connection) The RGB channels are compressed using JPEG. The alpha channel is compressed using LZ. --- spice.proto | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'spice.proto') diff --git a/spice.proto b/spice.proto index 84d3fa98..dbd3dde1 100644 --- a/spice.proto +++ b/spice.proto @@ -294,6 +294,7 @@ enum8 image_type { JPEG, FROM_CACHE_LOSSLESS, ZLIB_GLZ_RGB, + JPEG_ALPHA, }; flags8 image_flags { @@ -321,6 +322,10 @@ flags8 bitmap_flags { TOP_DOWN, }; +flags8 jpeg_alpha_flags { + TOP_DOWN, +}; + enum8 image_scale_mode { INTERPOLATE, NEAREST, @@ -477,6 +482,13 @@ struct ZlibGlzRGBData { uint8 data[data_size] @end @nomarshal; } @ctype(SpiceZlibGlzRGBData); +struct JPEGAlphaData { + jpeg_alpha_flags flags; + uint32 jpeg_size; + uint32 data_size; + uint8 data[data_size] @end @nomarshal; +} @ctype(SpiceJPEGAlphaData); + struct Surface { uint32 surface_id; }; @@ -500,6 +512,8 @@ struct Image { LZPLTData lzplt_data @ctype(SpiceLZPLTData); case ZLIB_GLZ_RGB: ZlibGlzRGBData zlib_glz_data @ctype(SpiceZlibGlzRGBData); + case JPEG_ALPHA: + JPEGAlphaData jpeg_alpha_data @ctype(SpiceJPEGAlphaData); case SURFACE: Surface surface_data; } u @end; -- cgit