diff options
author | Attila Nagy <attilanagy@google.com> | 2011-06-10 14:10:21 +0300 |
---|---|---|
committer | Attila Nagy <attilanagy@google.com> | 2011-07-08 09:31:41 +0300 |
commit | 622958449b9388cca0f4a4e287b3e94422e4a573 (patch) | |
tree | 7086118472d23cf5ddf7e1292fff36be19321a7b /vp8/common/onyxc_int.h | |
parent | 973a9c075d2db817e489f5ba050fc49963bf2c71 (diff) | |
download | libvpx-622958449b9388cca0f4a4e287b3e94422e4a573.tar libvpx-622958449b9388cca0f4a4e287b3e94422e4a573.tar.gz libvpx-622958449b9388cca0f4a4e287b3e94422e4a573.tar.bz2 libvpx-622958449b9388cca0f4a4e287b3e94422e4a573.zip |
New loop filter interface
Separate simple filter with reduced no. of parameters.
MB filter level picking based on precalculated table. Level table updated for
each frame. Inside and edge limits precalculated and updated just when
sharpness changes. HEV threshhold is constant.
ARM targets use scalars and others vectors.
Change works only with --target=generic-gnu
All other targets have to be updated!
Change-Id: I6b73aca6b525075b20129a371699b2561bd4d51c
Diffstat (limited to 'vp8/common/onyxc_int.h')
-rw-r--r-- | vp8/common/onyxc_int.h | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/vp8/common/onyxc_int.h b/vp8/common/onyxc_int.h index a381dfe87..4356b5133 100644 --- a/vp8/common/onyxc_int.h +++ b/vp8/common/onyxc_int.h @@ -83,6 +83,7 @@ typedef struct VP8_COMMON_RTCD } VP8_COMMON_RTCD; typedef struct VP8Common + { struct vpx_internal_error_info error; @@ -107,7 +108,8 @@ typedef struct VP8Common YV12_BUFFER_CONFIG post_proc_buffer; YV12_BUFFER_CONFIG temp_scale_frame; - FRAME_TYPE last_frame_type; /* Save last frame's frame type for loopfilter init checking and motion search. */ + + FRAME_TYPE last_frame_type; /* Save last frame's frame type for motion search. */ FRAME_TYPE frame_type; int show_frame; @@ -148,11 +150,9 @@ typedef struct VP8Common INTERPOLATIONFILTERTYPE mcomp_filter_type; LOOPFILTERTYPE last_filter_type; LOOPFILTERTYPE filter_type; - loop_filter_info lf_info[MAX_LOOP_FILTER+1]; - prototype_loopfilter_block((*lf_mbv)); - prototype_loopfilter_block((*lf_mbh)); - prototype_loopfilter_block((*lf_bv)); - prototype_loopfilter_block((*lf_bh)); + + loop_filter_info_n lf_info; + int filter_level; int last_sharpness_level; int sharpness_level; @@ -205,10 +205,9 @@ typedef struct VP8Common struct postproc_state postproc_state; } VP8_COMMON; - -int vp8_adjust_mb_lf_value(MACROBLOCKD *mbd, int filter_level); -void vp8_init_loop_filter(VP8_COMMON *cm); -void vp8_frame_init_loop_filter(loop_filter_info *lfi, int frame_type); -extern void vp8_loop_filter_frame(VP8_COMMON *cm, MACROBLOCKD *mbd, int filt_val); +void vp8_loop_filter_init(VP8_COMMON *cm); +void vp8_loop_filter_frame_init(VP8_COMMON *cm, MACROBLOCKD *mbd, + int default_filt_lvl, int sharpness_lvl); +void vp8_loop_filter_frame(VP8_COMMON *cm, MACROBLOCKD *mbd, int filt_val); #endif |