--- postprocessing.h 2004/03/22 22:36:23 1.2 +++ postprocessing.h 2010/12/18 10:13:38 1.7 @@ -3,7 +3,7 @@ * XVID MPEG-4 VIDEO CODEC * - Postprocessing header - * - * Copyright(C) 2003 Michael Militzer + * Copyright(C) 2003-2010 Michael Militzer * * This program is free software ; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,7 +19,7 @@ * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: postprocessing.h,v 1.2 2004/03/22 22:36:23 edgomez Exp $ + * $Id: postprocessing.h,v 1.7 2010/12/18 10:13:38 Isibaar Exp $ * ****************************************************************************/ @@ -38,6 +38,8 @@ #define MAX_SHIFT 1024 #define MAX_RES (MAX_NOISE - MAX_SHIFT) +#define DERING_STRENGTH 2 + typedef struct { int8_t xvid_thresh_tbl[511]; uint8_t xvid_abs_tbl[511]; @@ -47,13 +49,30 @@ int prev_quant; } XVID_POSTPROC; +typedef struct +{ + pthread_t handle; /* thread's handle */ + + XVID_POSTPROC *tbls; + IMAGE * img; + const MACROBLOCK * mbs; + + int stride; + int start_x; + int stop_x; + int start_y; + int stop_y; + int mb_stride; + int flags; +} SMPDeblock; + void image_postproc(XVID_POSTPROC *tbls, IMAGE * img, int edged_width, const MACROBLOCK * mbs, int mb_width, int mb_height, int mb_stride, - int flags, int frame_num, int bvop); + int flags, int brightness, int frame_num, int bvop, int threads); -void deblock8x8_h(XVID_POSTPROC *tbls, uint8_t *img, int stride, int quant); -void deblock8x8_v(XVID_POSTPROC *tbls, uint8_t *img, int stride, int quant); +void deblock8x8_h(XVID_POSTPROC *tbls, uint8_t *img, int stride, int quant, int dering); +void deblock8x8_v(XVID_POSTPROC *tbls, uint8_t *img, int stride, int quant, int dering); void init_postproc(XVID_POSTPROC *tbls); void init_noise(XVID_POSTPROC *tbls); @@ -61,4 +80,18 @@ void add_noise(XVID_POSTPROC * tbls, uint8_t *dst, uint8_t *src, int stride, int width, int height, int shiftptr, int quant); + +typedef void (IMAGEBRIGHTNESS) (uint8_t * dst, + int stride, + int width, + int height, + int offset); +typedef IMAGEBRIGHTNESS *IMAGEBRIGHTNESS_PTR; + +extern IMAGEBRIGHTNESS_PTR image_brightness; + +IMAGEBRIGHTNESS image_brightness_c; +IMAGEBRIGHTNESS image_brightness_mmx; +IMAGEBRIGHTNESS image_brightness_sse2; + #endif