[FFmpeg-devel] [PATCH 40/40] avcodec/h261dec: Make VLC smaller

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Tue Jan 26 21:29:49 EET 2021


Andreas Rheinhardt:
> The VLC for the macroblock address increment uses nine bits;
> yet there is no code with this length: All codes are either shorter or
> longer. So one can make the table smaller without changing the amount of
> codes that need more than one round of parsing.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
>  libavcodec/h261dec.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c
> index 817453f60c..2b3408d7b3 100644
> --- a/libavcodec/h261dec.c
> +++ b/libavcodec/h261dec.c
> @@ -35,7 +35,7 @@
>  #include "h261.h"
>  #include "internal.h"
>  
> -#define H261_MBA_VLC_BITS 9
> +#define H261_MBA_VLC_BITS 8
>  #define H261_MTYPE_VLC_BITS 6
>  #define H261_MV_VLC_BITS 7
>  #define H261_CBP_VLC_BITS 9
> @@ -52,7 +52,7 @@ static av_cold void h261_decode_init_static(void)
>  {
>      INIT_VLC_STATIC(&h261_mba_vlc, H261_MBA_VLC_BITS, 35,
>                      ff_h261_mba_bits, 1, 1,
> -                    ff_h261_mba_code, 1, 1, 662);
> +                    ff_h261_mba_code, 1, 1, 540);
>      INIT_VLC_STATIC(&h261_mtype_vlc, H261_MTYPE_VLC_BITS, 10,
>                      ff_h261_mtype_bits, 1, 1,
>                      ff_h261_mtype_code, 1, 1, 80);
> 
Will apply tomorrow unless there are objections.

- Andreas


More information about the ffmpeg-devel mailing list