[FFmpeg-devel] [PATCH 32/35] avcodec/proresenc_anatoliy: rework inner loop in encode_acs()

Stefano Sabatini stefasab at gmail.com
Sun Dec 24 12:36:36 EET 2023


On date Monday 2023-12-11 02:35:33 +0100, Clément Bœsch wrote:
> This matches the logic from the function of the same name in proresenc_kostya.
> ---
>  libavcodec/proresenc_anatoliy.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c
> index 816c27e481..161a05a6e6 100644
> --- a/libavcodec/proresenc_anatoliy.c
> +++ b/libavcodec/proresenc_anatoliy.c
> @@ -286,14 +286,17 @@ static void encode_acs(PutBitContext *pb, int16_t *blocks,
>                         int blocks_per_slice,
>                         int *qmat, const uint8_t *scan)
>  {
> +    int idx;
>      int prev_run = 4;
>      int prev_level = 2;
> +    int max_coeffs;
> +    int run = 0, level, code, i;
> +
> +    max_coeffs = blocks_per_slice << 6;
>  
> -    int run = 0, level, code, i, j;
>      for (i = 1; i < 64; i++) {
> -        int indp = scan[i];
> -        for (j = 0; j < blocks_per_slice; j++) {
> -            int val = (blocks[(j << 6) + indp]) / qmat[indp];
> +        for (idx = scan[i]; idx < max_coeffs; idx += 64) {
> +            int val = blocks[idx] / qmat[scan[i]];

LGTM.


More information about the ffmpeg-devel mailing list