• Lynne's avatar
    lavu/tx: add an RDFT implementation · af94ab7c
    Lynne authored
    RDFTs are full of conventions that vary between implementations.
    What I've gone for here is what's most common between
    both fftw, avcodec's rdft and what we use, the equivalent of
    which is DFT_R2C for forward and IDFT_C2R for inverse. The
    other 2 conventions (IDFT_R2C and DFT_C2R) were not used at
    all in our code, and their names are also not appropriate.
    If there's a use for either, we can easily add a flag which
    would just flip the sign on one exptab.
    
    For some unknown reason, possibly to allow reusing FFT's exp tables,
    av_rdft's C2R output is 0.5x lower than what it should be to ensure
    a proper back-and-forth conversion.
    This code outputs its real samples at the correct level, which
    matches FFTW's level, and allows the user to change the level
    and insert arbitrary multiplies for free by setting the scale option.
    af94ab7c
tx_template.c 61.1 KB