comparison 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
comparison
equal deleted inserted replaced
10943:3a723e8dcd26 10944:0985f1f7ab72
897 */ 897 */
898 int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans); 898 int ff_rdft_init(RDFTContext *s, int nbits, enum RDFTransformType trans);
899 void ff_rdft_calc(RDFTContext *s, FFTSample *data); 899 void ff_rdft_calc(RDFTContext *s, FFTSample *data);
900 void ff_rdft_end(RDFTContext *s); 900 void ff_rdft_end(RDFTContext *s);
901 901
902 /* Discrete Cosine Transform */
903
904 typedef struct {
905 int nbits;
906 int inverse;
907 FFTSample *data;
908 RDFTContext rdft;
909 const float *costab;
910 FFTSample *csc2;
911 } DCTContext;
912
913 /**
914 * Sets up (Inverse)DCT.
915 * @param nbits log2 of the length of the input array
916 * @param inverse >0 forward transform, <0 inverse transform
917 */
918 int ff_dct_init(DCTContext *s, int nbits, int inverse);
919 void ff_dct_calc(DCTContext *s, FFTSample *data);
920 void ff_dct_end (DCTContext *s);
921
902 #define WRAPPER8_16(name8, name16)\ 922 #define WRAPPER8_16(name8, name16)\
903 static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int stride, int h){\ 923 static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int stride, int h){\
904 return name8(s, dst , src , stride, h)\ 924 return name8(s, dst , src , stride, h)\
905 +name8(s, dst+8 , src+8 , stride, h);\ 925 +name8(s, dst+8 , src+8 , stride, h);\
906 } 926 }