[FFmpeg-devel] [PATCH] aacenc: avoid double in quantize_bands.
Reimar Döffinger
Reimar.Doeffinger at gmx.de
Sun Mar 6 12:05:05 CET 2016
On Wed, Mar 02, 2016 at 07:33:31PM +0000, Rostislav Pehlivanov wrote:
> On 1 March 2016 at 21:55, Reimar Döffinger <Reimar.Doeffinger at gmx.de> wrote:
> > I cannot see any point whatsoever to use
> > double here instead of float.
> > Using float allows for use of SIMD.
> > ---
> > libavcodec/aacenc_utils.h | 5 ++---
> > 1 file changed, 2 insertions(+), 3 deletions(-)
> >
> > diff --git a/libavcodec/aacenc_utils.h b/libavcodec/aacenc_utils.h
> > index cb5bc8d..571b1e6 100644
> > --- a/libavcodec/aacenc_utils.h
> > +++ b/libavcodec/aacenc_utils.h
> > @@ -66,10 +66,9 @@ static inline void quantize_bands(int *out, const float
> > *in, const float *scaled
> > const float rounding)
> > {
> > int i;
> > - double qc;
> > for (i = 0; i < size; i++) {
> > - qc = scaled[i] * Q34;
> > - out[i] = (int)FFMIN(qc + rounding, (double)maxval);
> > + float qc = scaled[i] * Q34;
> > + out[i] = (int)FFMIN(qc + rounding, (float)maxval);
> > if (is_signed && in[i] < 0.0f) {
> > out[i] = -out[i];
> > }
> > --
> >
>
> You could just avoid the whole need for qc and just do "FFMIN((scaled[i] *
> Q34) + rounding, (float)maxval));". We have plenty of space and I think it
> would look neater.
I don't like it much because FFMIN is a macro and I don't trust the
compiler's subexpression elimination too much...
> But up to you to decide, either way it looks good to me, doesn't change
> anything. Feel free to push if you can.
Done.
More information about the ffmpeg-devel
mailing list