| Index: libvpx/source/libvpx/vp8/common/loopfilter.h
|
| diff --git a/libvpx/source/libvpx/vp8/common/loopfilter.h b/libvpx/source/libvpx/vp8/common/loopfilter.h
|
| index 9887cf55b332af9891052ac13d313367e192c65b..2e5997c733feb21be93597427df0703ce579c309 100644
|
| --- a/libvpx/source/libvpx/vp8/common/loopfilter.h
|
| +++ b/libvpx/source/libvpx/vp8/common/loopfilter.h
|
| @@ -13,7 +13,6 @@
|
| #define loopfilter_h
|
|
|
| #include "vpx_ports/mem.h"
|
| -#include "vpx_config.h"
|
|
|
| #define MAX_LOOP_FILTER 63
|
|
|
| @@ -23,45 +22,26 @@ typedef enum
|
| SIMPLE_LOOPFILTER = 1
|
| } LOOPFILTERTYPE;
|
|
|
| -#if ARCH_ARM
|
| -#define SIMD_WIDTH 1
|
| -#else
|
| -#define SIMD_WIDTH 16
|
| -#endif
|
| -
|
| -/* Need to align this structure so when it is declared and
|
| +/* FRK
|
| + * Need to align this structure so when it is declared and
|
| * passed it can be loaded into vector registers.
|
| */
|
| typedef struct
|
| {
|
| - DECLARE_ALIGNED(SIMD_WIDTH, unsigned char, mblim[MAX_LOOP_FILTER + 1][SIMD_WIDTH]);
|
| - DECLARE_ALIGNED(SIMD_WIDTH, unsigned char, blim[MAX_LOOP_FILTER + 1][SIMD_WIDTH]);
|
| - DECLARE_ALIGNED(SIMD_WIDTH, unsigned char, lim[MAX_LOOP_FILTER + 1][SIMD_WIDTH]);
|
| - DECLARE_ALIGNED(SIMD_WIDTH, unsigned char, hev_thr[4][SIMD_WIDTH]);
|
| - unsigned char lvl[4][4][4];
|
| - unsigned char hev_thr_lut[2][MAX_LOOP_FILTER + 1];
|
| - unsigned char mode_lf_lut[10];
|
| -} loop_filter_info_n;
|
| -
|
| -typedef struct
|
| -{
|
| - const unsigned char * mblim;
|
| - const unsigned char * blim;
|
| - const unsigned char * lim;
|
| - const unsigned char * hev_thr;
|
| + DECLARE_ALIGNED(16, signed char, lim[16]);
|
| + DECLARE_ALIGNED(16, signed char, flim[16]);
|
| + DECLARE_ALIGNED(16, signed char, thr[16]);
|
| + DECLARE_ALIGNED(16, signed char, mbflim[16]);
|
| } loop_filter_info;
|
|
|
|
|
| #define prototype_loopfilter(sym) \
|
| - void sym(unsigned char *src, int pitch, const unsigned char *blimit,\
|
| - const unsigned char *limit, const unsigned char *thresh, int count)
|
| + void sym(unsigned char *src, int pitch, const signed char *flimit,\
|
| + const signed char *limit, const signed char *thresh, int count)
|
|
|
| #define prototype_loopfilter_block(sym) \
|
| - void sym(unsigned char *y, unsigned char *u, unsigned char *v, \
|
| - int ystride, int uv_stride, loop_filter_info *lfi)
|
| -
|
| -#define prototype_simple_loopfilter(sym) \
|
| - void sym(unsigned char *y, int ystride, const unsigned char *blimit)
|
| + void sym(unsigned char *y, unsigned char *u, unsigned char *v,\
|
| + int ystride, int uv_stride, loop_filter_info *lfi, int simpler)
|
|
|
| #if ARCH_X86 || ARCH_X86_64
|
| #include "x86/loopfilter_x86.h"
|
| @@ -91,39 +71,38 @@ extern prototype_loopfilter_block(vp8_lf_normal_mb_h);
|
| #endif
|
| extern prototype_loopfilter_block(vp8_lf_normal_b_h);
|
|
|
| +
|
| #ifndef vp8_lf_simple_mb_v
|
| -#define vp8_lf_simple_mb_v vp8_loop_filter_simple_vertical_edge_c
|
| +#define vp8_lf_simple_mb_v vp8_loop_filter_mbvs_c
|
| #endif
|
| -extern prototype_simple_loopfilter(vp8_lf_simple_mb_v);
|
| +extern prototype_loopfilter_block(vp8_lf_simple_mb_v);
|
|
|
| #ifndef vp8_lf_simple_b_v
|
| #define vp8_lf_simple_b_v vp8_loop_filter_bvs_c
|
| #endif
|
| -extern prototype_simple_loopfilter(vp8_lf_simple_b_v);
|
| +extern prototype_loopfilter_block(vp8_lf_simple_b_v);
|
|
|
| #ifndef vp8_lf_simple_mb_h
|
| -#define vp8_lf_simple_mb_h vp8_loop_filter_simple_horizontal_edge_c
|
| +#define vp8_lf_simple_mb_h vp8_loop_filter_mbhs_c
|
| #endif
|
| -extern prototype_simple_loopfilter(vp8_lf_simple_mb_h);
|
| +extern prototype_loopfilter_block(vp8_lf_simple_mb_h);
|
|
|
| #ifndef vp8_lf_simple_b_h
|
| #define vp8_lf_simple_b_h vp8_loop_filter_bhs_c
|
| #endif
|
| -extern prototype_simple_loopfilter(vp8_lf_simple_b_h);
|
| +extern prototype_loopfilter_block(vp8_lf_simple_b_h);
|
|
|
| typedef prototype_loopfilter_block((*vp8_lf_block_fn_t));
|
| -typedef prototype_simple_loopfilter((*vp8_slf_block_fn_t));
|
| -
|
| typedef struct
|
| {
|
| vp8_lf_block_fn_t normal_mb_v;
|
| vp8_lf_block_fn_t normal_b_v;
|
| vp8_lf_block_fn_t normal_mb_h;
|
| vp8_lf_block_fn_t normal_b_h;
|
| - vp8_slf_block_fn_t simple_mb_v;
|
| - vp8_slf_block_fn_t simple_b_v;
|
| - vp8_slf_block_fn_t simple_mb_h;
|
| - vp8_slf_block_fn_t simple_b_h;
|
| + vp8_lf_block_fn_t simple_mb_v;
|
| + vp8_lf_block_fn_t simple_b_v;
|
| + vp8_lf_block_fn_t simple_mb_h;
|
| + vp8_lf_block_fn_t simple_b_h;
|
| } vp8_loopfilter_rtcd_vtable_t;
|
|
|
| #if CONFIG_RUNTIME_CPU_DETECT
|
| @@ -136,33 +115,10 @@ typedef void loop_filter_uvfunction
|
| (
|
| unsigned char *u, /* source pointer */
|
| int p, /* pitch */
|
| - const unsigned char *blimit,
|
| - const unsigned char *limit,
|
| - const unsigned char *thresh,
|
| + const signed char *flimit,
|
| + const signed char *limit,
|
| + const signed char *thresh,
|
| unsigned char *v
|
| );
|
|
|
| -/* assorted loopfilter functions which get used elsewhere */
|
| -struct VP8Common;
|
| -struct MacroBlockD;
|
| -
|
| -void vp8_loop_filter_init(struct VP8Common *cm);
|
| -
|
| -void vp8_loop_filter_frame_init(struct VP8Common *cm,
|
| - struct MacroBlockD *mbd,
|
| - int default_filt_lvl);
|
| -
|
| -void vp8_loop_filter_frame(struct VP8Common *cm, struct MacroBlockD *mbd);
|
| -
|
| -void vp8_loop_filter_partial_frame(struct VP8Common *cm,
|
| - struct MacroBlockD *mbd,
|
| - int default_filt_lvl);
|
| -
|
| -void vp8_loop_filter_frame_yonly(struct VP8Common *cm,
|
| - struct MacroBlockD *mbd,
|
| - int default_filt_lvl);
|
| -
|
| -void vp8_loop_filter_update_sharpness(loop_filter_info_n *lfi,
|
| - int sharpness_lvl);
|
| -
|
| #endif
|
|
|