[FFmpeg-devel] [PATCH 1/3] avcodec/x86/vvc/vvc_alf: fix integer overflow

Ronald S. Bultje rsbultje at gmail.com
Wed May 29 23:56:27 EEST 2024


Hi,

On Wed, May 29, 2024 at 3:44 PM Wu Jianhua <toqsxw at outlook.com> wrote:

> Ronald S. Bultje:
> > On Wed, May 29, 2024 at 11:38 AM <toqsxw at outlook.com<mailto:
> toqsxw at outlook.com>> wrote:
> > +%else
> > +    vpunpcklqdq      m11, m2, m2
> > +    vpunpckhqdq      m12, m2, m2
> > +    vpunpcklwd       m11, m11, m14
> > +    vpunpcklwd       m12, m12, m14
> > +    paddd             m0, m11
> > +    paddd             m1, m12
> > +    packssdw          m0, m0, m1
> > +%endif
> >
> [..]
>
> Also, the whole thing just emulates a saturated add. Can't you use paddsw
> instead of paddw and be done with it? To add to Andreas' question: is
> saturating here normatively required?
>
> We didn't have any sample that failed for this issue except for the
> checksum with specific seeds. I think we can keep not changing it until a
> real sample has something wrong.
>
> @Nuomi to get more details.
>

I think "just" replacing paddw with paddsw is correct, since the input
pixels are 12bit (so they could be either unsigned or signed), the filtered
output is the result of packssdw (so signed words), and the desired output
is 12bit pixels anyway, anything greater than that is clipped to 12bit
range. So to me, it seems paddsw is a cheaper way to accomplish the same
thing.

Ronald


More information about the ffmpeg-devel mailing list