[FFmpeg-devel] [PATCH v2 2/3] avcodec/vvc/cabac: remove vvc_refill2

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Thu Aug 8 23:19:05 EEST 2024


toqsxw at outlook.com:
> From: Wu Jianhua <toqsxw at outlook.com>
> 
> See https://github.com/ffvvc/FFmpeg/issues/178

This link only sends one to a patchwork thread to read. The commit
message should instead explain why this is done on its own (and may
refer to the mailing list thread for a more detailed explanation).

Same for the next patch.

> 
> Signed-off-by: Wu Jianhua <toqsxw at outlook.com>
> ---
>  libavcodec/cabac_functions.h |  2 +-
>  libavcodec/vvc/cabac.c       | 28 +---------------------------
>  2 files changed, 2 insertions(+), 28 deletions(-)
> 
> diff --git a/libavcodec/cabac_functions.h b/libavcodec/cabac_functions.h
> index c3f08d3410..9bee401f2c 100644
> --- a/libavcodec/cabac_functions.h
> +++ b/libavcodec/cabac_functions.h
> @@ -85,7 +85,7 @@ static inline void renorm_cabac_decoder_once(CABACContext *c){
>  }
>  #endif
>  
> -#ifndef get_cabac_inline
> +#if !defined(get_cabac_inline) || !defined(refill2)
>  static void refill2(CABACContext *c){
>      int i;
>      unsigned x;
> diff --git a/libavcodec/vvc/cabac.c b/libavcodec/vvc/cabac.c
> index 0d45eec751..c9b6f9bf3e 100644
> --- a/libavcodec/vvc/cabac.c
> +++ b/libavcodec/vvc/cabac.c
> @@ -856,32 +856,6 @@ int ff_vvc_cabac_init(VVCLocalContext *lc,
>      return ret;
>  }
>  
> -//fixme
> -static void vvc_refill2(CABACContext* c) {
> -    int i;
> -    unsigned x;
> -#if !HAVE_FAST_CLZ
> -    x = c->low ^ (c->low - 1);
> -    i = 7 - ff_h264_norm_shift[x >> (CABAC_BITS - 1)];
> -#else
> -    i = ff_ctz(c->low) - CABAC_BITS;
> -#endif
> -
> -    x = -CABAC_MASK;
> -
> -#if CABAC_BITS == 16
> -    x += (c->bytestream[0] << 9) + (c->bytestream[1] << 1);
> -#else
> -    x += c->bytestream[0] << 1;
> -#endif
> -
> -    c->low += x << i;
> -#if !UNCHECKED_BITSTREAM_READER
> -    if (c->bytestream < c->bytestream_end)
> -#endif
> -        c->bytestream += CABAC_BITS / 8;
> -}
> -
>  static int inline vvc_get_cabac(CABACContext *c, VVCCabacState* base, const int ctx)
>  {
>      VVCCabacState *s = base + ctx;
> @@ -904,7 +878,7 @@ static int inline vvc_get_cabac(CABACContext *c, VVCCabacState* base, const int
>      c->low  <<= lps_mask;
>  
>      if (!(c->low & CABAC_MASK))
> -        vvc_refill2(c);
> +        refill2(c);
>      s->state[0] = s->state[0] - (s->state[0] >> s->shift[0]) + (1023 * bit >> s->shift[0]);
>      s->state[1] = s->state[1] - (s->state[1] >> s->shift[1]) + (16383 * bit >> s->shift[1]);
>      return bit;



More information about the ffmpeg-devel mailing list