Mercurial > libavcodec.hg
diff dsputil.h @ 10944:0985f1f7ab72 libavcodec
Floating point discrete cosine transform
author | vitor |
---|---|
date | Wed, 20 Jan 2010 00:39:47 +0000 |
parents | a8620b001ed3 |
children | 34a65026fa06 |
line wrap: on
line diff
--- a/dsputil.h Wed Jan 20 00:34:10 2010 +0000 +++ b/dsputil.h Wed Jan 20 00:39:47 2010 +0000 @@ -899,6 +899,26 @@ void ff_rdft_calc(RDFTContext *s, FFTSample *data); void ff_rdft_end(RDFTContext *s); +/* Discrete Cosine Transform */ + +typedef struct { + int nbits; + int inverse; + FFTSample *data; + RDFTContext rdft; + const float *costab; + FFTSample *csc2; +} DCTContext; + +/** + * Sets up (Inverse)DCT. + * @param nbits log2 of the length of the input array + * @param inverse >0 forward transform, <0 inverse transform + */ +int ff_dct_init(DCTContext *s, int nbits, int inverse); +void ff_dct_calc(DCTContext *s, FFTSample *data); +void ff_dct_end (DCTContext *s); + #define WRAPPER8_16(name8, name16)\ static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int stride, int h){\ return name8(s, dst , src , stride, h)\