[Spice-devel] [spice-common v3 01/12] quic: Remove configurable RLE_PRED

Frediano Ziglio fziglio at redhat.com
Fri Aug 4 07:32:40 UTC 2017


> 
> It's hardcoded at compile-time, and I don't think it was changed in
> years...
> 
> Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>
> ---
>  common/quic.c          |  3 ---
>  common/quic_rgb_tmpl.c | 55
>  ++++++++------------------------------------------
>  common/quic_tmpl.c     | 55
>  ++++++++------------------------------------------
>  3 files changed, 16 insertions(+), 97 deletions(-)
> 
> diff --git a/common/quic.c b/common/quic.c
> index b753d07..309ee75 100644
> --- a/common/quic.c
> +++ b/common/quic.c
> @@ -32,9 +32,6 @@
>  #define RLE
>  #define RLE_STAT
>  #define PRED_1
> -//#define RLE_PRED_1
> -#define RLE_PRED_2
> -//#define RLE_PRED_3
>  #define QUIC_RGB
>  
>  /* ASCII "QUIC" */
> diff --git a/common/quic_rgb_tmpl.c b/common/quic_rgb_tmpl.c
> index 23dea39..cc3c045 100644
> --- a/common/quic_rgb_tmpl.c
> +++ b/common/quic_rgb_tmpl.c
> @@ -185,36 +185,15 @@
>                  correlate_row_b[index]);
>  
>  
> -#ifdef RLE_PRED_1
> -#define RLE_PRED_1_IMP
> \
> -if (SAME_PIXEL(&cur_row[i - 1], &prev_row[i])) {
> \
> -    if (run_index != i && SAME_PIXEL(&prev_row[i - 1], &prev_row[i]) &&
> \
> -                                i + 1 < end && SAME_PIXEL(&prev_row[i],
> &prev_row[i + 1])) {    \
> -        goto do_run;
> \
> -    }
> \
> -}
> -#else
> -#define RLE_PRED_1_IMP
> -#endif
> -
> -#ifdef RLE_PRED_2
> -#define RLE_PRED_2_IMP
> \
> +#ifdef RLE
> +#define RLE_PRED_IMP
> \
>  if (SAME_PIXEL(&prev_row[i - 1], &prev_row[i])) {
>  \
>      if (run_index != i && i > 2 && SAME_PIXEL(&cur_row[i - 1], &cur_row[i -
>      2])) {  \
>          goto do_run;
>          \
>      }
>      \
>  }
>  #else
> -#define RLE_PRED_2_IMP
> -#endif
> -
> -#ifdef RLE_PRED_3
> -#define RLE_PRED_3_IMP
> \
> -if (i > 1 &&  SAME_PIXEL(&cur_row[i - 1], &cur_row[i - 2]) && i !=
> run_index) {     \
> -    goto do_run;
> \
> -}
> -#else
> -#define RLE_PRED_3_IMP
> +#define RLE_PRED_IMP
>  #endif
>  
>  #ifdef COMPRESS_IMP
> @@ -370,11 +349,7 @@ static void FNAME(compress_row_seg)(Encoder *encoder,
> int i,
>          while (stopidx < end) {
>              for (; i <= stopidx; i++) {
>                  unsigned int codeword, codewordlen;
> -#ifdef RLE
> -                RLE_PRED_1_IMP;
> -                RLE_PRED_2_IMP;
> -                RLE_PRED_3_IMP;
> -#endif
> +                RLE_PRED_IMP;
>                  COMPRESS_ONE(r, i);
>                  COMPRESS_ONE(g, i);
>                  COMPRESS_ONE(b, i);
> @@ -386,11 +361,7 @@ static void FNAME(compress_row_seg)(Encoder *encoder,
> int i,
>  
>          for (; i < end; i++) {
>              unsigned int codeword, codewordlen;
> -#ifdef RLE
> -            RLE_PRED_1_IMP;
> -            RLE_PRED_2_IMP;
> -            RLE_PRED_3_IMP;
> -#endif
> +            RLE_PRED_IMP;
>              COMPRESS_ONE(r, i);
>              COMPRESS_ONE(g, i);
>              COMPRESS_ONE(b, i);
> @@ -635,11 +606,7 @@ static void FNAME(uncompress_row_seg)(Encoder *encoder,
>          while (stopidx < end) {
>              for (; i <= stopidx; i++) {
>                  unsigned int codewordlen;
> -#ifdef RLE
> -                RLE_PRED_1_IMP;
> -                RLE_PRED_2_IMP;
> -                RLE_PRED_3_IMP;
> -#endif
> +                RLE_PRED_IMP;
>                  UNCOMPRESS_PIX_START(&cur_row[i]);
>                  UNCOMPRESS_ONE(r);
>                  UNCOMPRESS_ONE(g);
> @@ -653,11 +620,7 @@ static void FNAME(uncompress_row_seg)(Encoder *encoder,
>  
>          for (; i < end; i++) {
>              unsigned int codewordlen;
> -#ifdef RLE
> -            RLE_PRED_1_IMP;
> -            RLE_PRED_2_IMP;
> -            RLE_PRED_3_IMP;
> -#endif
> +            RLE_PRED_IMP;
>              UNCOMPRESS_PIX_START(&cur_row[i]);
>              UNCOMPRESS_ONE(r);
>              UNCOMPRESS_ONE(g);
> @@ -732,9 +695,7 @@ static void FNAME(uncompress_row)(Encoder *encoder,
>  #undef _PIXEL_B
>  #undef _PIXEL_C
>  #undef SAME_PIXEL
> -#undef RLE_PRED_1_IMP
> -#undef RLE_PRED_2_IMP
> -#undef RLE_PRED_3_IMP
> +#undef RLE_PRED_IMP
>  #undef UPDATE_MODEL
>  #undef DECORRELATE_0
>  #undef DECORRELATE
> diff --git a/common/quic_tmpl.c b/common/quic_tmpl.c
> index 3c84791..d49a408 100644
> --- a/common/quic_tmpl.c
> +++ b/common/quic_tmpl.c
> @@ -50,36 +50,15 @@
>  #define _PIXEL_B ((unsigned int)prev[0].a)
>  #define _PIXEL_C ((unsigned int)prev[-1].a)
>  
> -#ifdef RLE_PRED_1
> -#define RLE_PRED_1_IMP
> \
> -if (cur_row[i - 1].a == prev_row[i].a) {
> \
> -    if (run_index != i && prev_row[i - 1].a == prev_row[i].a &&
> \
> -                        i + 1 < end && prev_row[i].a == prev_row[i + 1].a) {
> \
> -        goto do_run;
> \
> -    }
> \
> -}
> -#else
> -#define RLE_PRED_1_IMP
> -#endif
> -
> -#ifdef RLE_PRED_2
> -#define RLE_PRED_2_IMP                                                     \
> +#ifdef RLE
> +#define RLE_PRED_IMP                                                       \
>  if (prev_row[i - 1].a == prev_row[i].a) {                                  \
>      if (run_index != i && i > 2 && cur_row[i - 1].a == cur_row[i - 2].a) { \
>          goto do_run;                                                       \
>      }                                                                      \
>  }
>  #else
> -#define RLE_PRED_2_IMP
> -#endif
> -
> -#ifdef RLE_PRED_3
> -#define RLE_PRED_3_IMP                                                  \
> -if (i > 1 && cur_row[i - 1].a == cur_row[i - 2].a && i != run_index) {  \
> -    goto do_run;                                                        \
> -}
> -#else
> -#define RLE_PRED_3_IMP
> +#define RLE_PRED_IMP
>  #endif
>  
>  /*  a  */
> @@ -282,11 +261,7 @@ static void FNAME(compress_row_seg)(Encoder *encoder,
> Channel *channel, int i,
>          while (stopidx < end) {
>              for (; i <= stopidx; i++) {
>                  unsigned int codeword, codewordlen;
> -#ifdef RLE
> -                RLE_PRED_1_IMP;
> -                RLE_PRED_2_IMP;
> -                RLE_PRED_3_IMP;
> -#endif
> +                RLE_PRED_IMP;
>                  decorrelate_drow[i] = FNAME(decorrelate)(&prev_row[i],
>                  &cur_row[i], bpc_mask);
>                  golomb_coding(decorrelate_drow[i],
>                                find_bucket(channel, decorrelate_drow[i -
>                                1])->bestcode, &codeword,
> @@ -301,11 +276,7 @@ static void FNAME(compress_row_seg)(Encoder *encoder,
> Channel *channel, int i,
>  
>          for (; i < end; i++) {
>              unsigned int codeword, codewordlen;
> -#ifdef RLE
> -            RLE_PRED_1_IMP;
> -            RLE_PRED_2_IMP;
> -            RLE_PRED_3_IMP;
> -#endif
> +            RLE_PRED_IMP;
>              decorrelate_drow[i] = FNAME(decorrelate)(&prev_row[i],
>              &cur_row[i], bpc_mask);
>              golomb_coding(decorrelate_drow[i], find_bucket(channel,
>                                                            decorrelate_drow[i
>                                                            - 1])->bestcode,
> @@ -523,11 +494,7 @@ static void FNAME(uncompress_row_seg)(Encoder *encoder,
> Channel *channel,
>  
>              for (; i <= stopidx; i++) {
>                  unsigned int codewordlen;
> -#ifdef RLE
> -                RLE_PRED_1_IMP;
> -                RLE_PRED_2_IMP;
> -                RLE_PRED_3_IMP;
> -#endif
> +                RLE_PRED_IMP;
>                  pbucket = find_bucket(channel, correlate_row[i - 1]);
>                  correlate_row[i] = (BYTE)golomb_decoding(pbucket->bestcode,
>                  encoder->io_word,
>                                                           &codewordlen);
> @@ -542,11 +509,7 @@ static void FNAME(uncompress_row_seg)(Encoder *encoder,
> Channel *channel,
>  
>          for (; i < end; i++) {
>              unsigned int codewordlen;
> -#ifdef RLE
> -            RLE_PRED_1_IMP;
> -            RLE_PRED_2_IMP;
> -            RLE_PRED_3_IMP;
> -#endif
> +            RLE_PRED_IMP;
>              correlate_row[i] = (BYTE)golomb_decoding(find_bucket(channel,
>                                                                   correlate_row[i
>                                                                   -
>                                                                   1])->bestcode,
>                                                       encoder->io_word,
>                                                       &codewordlen);
> @@ -623,9 +586,7 @@ static void FNAME(uncompress_row)(Encoder *encoder,
> Channel *channel,
>  #undef _PIXEL_A
>  #undef _PIXEL_B
>  #undef _PIXEL_C
> -#undef RLE_PRED_1_IMP
> -#undef RLE_PRED_2_IMP
> -#undef RLE_PRED_3_IMP
> +#undef RLE_PRED_IMP
>  #undef golomb_coding
>  #undef golomb_decoding
>  #undef update_model

Acked-by: Frediano Ziglio <fziglio at redhat.com>

Code compile to the same binary.

Frediano



More information about the Spice-devel mailing list