summaryrefslogtreecommitdiff
path: root/vp8/common/reconinter.h
diff options
context:
space:
mode:
authorDeb Mukherjee <debargha@google.com>2012-07-18 13:43:01 -0700
committerDeb Mukherjee <debargha@google.com>2012-07-30 11:33:43 -0700
commit5259744145fe4ff41d3c814514c0744444969ad3 (patch)
tree429422064c8a5424f64a2112d4067877e24fb2f7 /vp8/common/reconinter.h
parent96f9473866194101807869ef6b0259849d233c77 (diff)
downloadlibvpx-5259744145fe4ff41d3c814514c0744444969ad3.tar
libvpx-5259744145fe4ff41d3c814514c0744444969ad3.tar.gz
libvpx-5259744145fe4ff41d3c814514c0744444969ad3.tar.bz2
libvpx-5259744145fe4ff41d3c814514c0744444969ad3.zip
Adds support for switchable interpolation filters.
Allows for swtiching/setting interpolation filters at the MB level. A frame level flag indicates whether to use a specifc filter for the entire frame or to signal the interpolation filter for each MB. When switchable filters are used, the encoder chooses between 8-tap and 8-tap sharp filters. The code currently has options to explore other variations as well, which will be cleaned up subsequently. One issue with the framework is that encoding is slow. I tried to do some tricks to speed things up but it is still slow. Decoding speed should not be affected since the number of filter taps remain unchanged. With the current version, we are up 0.5% on derf on average but some videos city/mobile improve by close to 4 and 2% respectively. If we did a full-search by turning the SEARCH_BEST_FILTER flag on, the results are somewhat better. The framework can be combined with filtered prediction, and I seek feedback regarding that. Rebased. Change-Id: I8f632cb2c111e76284140a2bd480945d6d42b77a
Diffstat (limited to 'vp8/common/reconinter.h')
-rw-r--r--vp8/common/reconinter.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/vp8/common/reconinter.h b/vp8/common/reconinter.h
index 0f8b44f22..7755c526e 100644
--- a/vp8/common/reconinter.h
+++ b/vp8/common/reconinter.h
@@ -12,6 +12,10 @@
#ifndef __INC_RECONINTER_H
#define __INC_RECONINTER_H
+#if CONFIG_RUNTIME_CPU_DETECT
+#include "onyxc_int.h"
+#endif
+
extern void vp8_build_inter_predictors_mb(MACROBLOCKD *x);
extern void vp8_build_inter16x16_predictors_mb(MACROBLOCKD *x,
unsigned char *dst_y,
@@ -33,5 +37,6 @@ extern void vp8_build_2nd_inter_predictors_b(BLOCKD *d, int pitch, vp8_subpix_fn
extern void vp8_build_inter16x16_predictors_mbuv(MACROBLOCKD *x);
extern void vp8_build_inter4x4_predictors_mbuv(MACROBLOCKD *x);
+extern void vp8_setup_interp_filters(MACROBLOCKD *x, INTERPOLATIONFILTERTYPE filter, VP8_COMMON *cm);
#endif