[Spice-devel] [PATCH spice-common v2 1/2] lz: Optimise SAME_PIXEL for RGB16
Christophe Fergeau
cfergeau at redhat.com
Fri May 25 08:09:40 UTC 2018
Looks good to me, though 16bpp images are probably not used a lot these
days ;)
Acked-by: Christophe Fergeau <cfergeau at redhat.com>
Christophe
On Thu, May 24, 2018 at 05:15:28PM +0100, Frediano Ziglio wrote:
> Do not extract all components and compare one by one, can be easily
> compared together.
> Performance measurements on a set of 16 bit images shown an improve of
> about 10%.
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> common/lz_compress_tmpl.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> Changes since v1:
> - put some comment on performance improves;
> - use less hackish macros;
> - undefine new macro at the end of template file.
>
> diff --git a/common/lz_compress_tmpl.c b/common/lz_compress_tmpl.c
> index 69e69a6..5c90311 100644
> --- a/common/lz_compress_tmpl.c
> +++ b/common/lz_compress_tmpl.c
> @@ -105,9 +105,8 @@
> #ifdef LZ_RGB16
> #define PIXEL rgb16_pixel_t
> #define FNAME(name) lz_rgb16_##name
> -#define GET_r(pix) (((pix) >> 10) & 0x1f)
> -#define GET_g(pix) (((pix) >> 5) & 0x1f)
> -#define GET_b(pix) ((pix) & 0x1f)
> +#define GET_rgb(pix) ((pix) & 0x7fffu)
> +#define SAME_PIXEL(p1, p2) (GET_rgb(p1) == GET_rgb(p2))
> #define ENCODE_PIXEL(e, pix) {encode(e, (pix) >> 8); encode(e, (pix) & 0xff);}
>
> #define HASH_FUNC(v, p) { \
> @@ -153,7 +152,7 @@
> }
> #endif
>
> -#if defined(LZ_RGB16) || defined(LZ_RGB24) || defined(LZ_RGB32)
> +#if defined(LZ_RGB24) || defined(LZ_RGB32)
> #define SAME_PIXEL(p1, p2) (GET_r(p1) == GET_r(p2) && GET_g(p1) == GET_g(p2) && \
> GET_b(p1) == GET_b(p2))
>
> @@ -525,6 +524,7 @@ static void FNAME(compress)(Encoder *encoder)
> #undef GET_r
> #undef GET_g
> #undef GET_b
> +#undef GET_rgb
> #undef GET_CODE
> #undef LZ_PLT
> #undef LZ_RGB_ALPHA
> --
> 2.17.0
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20180525/1d368b7b/attachment.sig>
More information about the Spice-devel
mailing list