]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/snow.h
merge read and and in add_paeth_prediction
[ffmpeg] / libavcodec / snow.h
index 3dbc618fae1bfb441bd648a8ad4d788aa45dd9e2..7d847e4b37f1a5d17187e0dba260cebcd0cade39 100644 (file)
 #define AVCODEC_SNOW_H
 
 #include "dsputil.h"
+#include "dwt.h"
 
 #define MID_STATE 128
 
-#define MAX_DECOMPOSITIONS 8
 #define MAX_PLANES 4
 #define QSHIFT 5
 #define QROOT (1<<QSHIFT)
 #define LOG2_OBMC_MAX 8
 #define OBMC_MAX (1<<(LOG2_OBMC_MAX))
 
-#define DWT_97 0
-#define DWT_53 1
-
-/** Used to minimize the amount of memory used in order to optimize cache performance. **/
-struct slice_buffer_s {
-    IDWTELEM * * line; ///< For use by idwt and predict_slices.
-    IDWTELEM * * data_stack; ///< Used for internal purposes.
-    int data_stack_top;
-    int line_count;
-    int line_width;
-    int data_count;
-    IDWTELEM * base_buffer; ///< Buffer that this structure is caching.
-};
-
-#define liftS lift
-#if 1
-#define W_AM 3
-#define W_AO 0
-#define W_AS 1
-
-#undef liftS
-#define W_BM 1
-#define W_BO 8
-#define W_BS 4
-
-#define W_CM 1
-#define W_CO 0
-#define W_CS 0
-
-#define W_DM 3
-#define W_DO 4
-#define W_DS 3
-#elif 0
-#define W_AM 55
-#define W_AO 16
-#define W_AS 5
-
-#define W_BM 3
-#define W_BO 32
-#define W_BS 6
-
-#define W_CM 127
-#define W_CO 64
-#define W_CS 7
-
-#define W_DM 7
-#define W_DO 8
-#define W_DS 4
-#elif 0
-#define W_AM 97
-#define W_AO 32
-#define W_AS 6
-
-#define W_BM 63
-#define W_BO 512
-#define W_BS 10
-
-#define W_CM 13
-#define W_CO 8
-#define W_CS 4
-
-#define W_DM 15
-#define W_DO 16
-#define W_DS 5
-
-#else
-
-#define W_AM 203
-#define W_AO 64
-#define W_AS 7
-
-#define W_BM 217
-#define W_BO 2048
-#define W_BS 12
-
-#define W_CM 113
-#define W_CO 64
-#define W_CS 7
-
-#define W_DM 227
-#define W_DO 128
-#define W_DS 9
-#endif
-
-void ff_snow_vertical_compose97i(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width);
-void ff_snow_horizontal_compose97i(IDWTELEM *b, int width);
-void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8);
-
-#if CONFIG_SNOW_ENCODER
-int w53_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h);
-int w97_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h);
-#else
-static int w53_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h) {assert (0); return 0;}
-static int w97_32_c(void *v, uint8_t * pix1, uint8_t * pix2, int line_size, int h) {assert (0); return 0;}
-#endif
-
-void ff_spatial_dwt(int *buffer, int width, int height, int stride, int type, int decomposition_count);
-
 /* C bits used by mmx/sse2/altivec */
 
 static av_always_inline void snow_interleave_line_header(int * i, int width, IDWTELEM * low, IDWTELEM * high){