[FFmpeg-devel] [PATCH] lavu/tx: implement 32 bit fixed point FFT and MDCT

Lynne dev at lynne.ee
Sun Feb 9 01:26:01 EET 2020


Patch attached. Commit message:

Required minimal changes to the code so made sense to implement.
FFT and MDCT tested, the output of both was properly rounded.
Fun fact: the non-power-of-two fixed-point FFT and MDCT are the fastest ever
non-power-of-two fixed-point FFT and MDCT written.
This can replace the power of two integer MDCTs in aac and ac3 if the
MIPS optimizations are ported across.
Unfortunately the ac3 encoder uses a 16-bit fixed point forward transform,
unlike the encoder which uses a 32bit inverse transform, so some modifications
might be required there.

I am somewhat unsure that choosing a float as a scale value was a good
decision as it still leaves some small amount of possible float platform
to platform mismatch. However, an AVRational is somewhat too cumbersome
and doesn't allow for encoders to use the same scaling code for floats.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-lavu-tx-implement-32-bit-fixed-point-FFT-and-MDCT.patch
Type: text/x-patch
Size: 25032 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20200209/9193afd7/attachment.bin>


More information about the ffmpeg-devel mailing list