summaryrefslogtreecommitdiff
path: root/vp8/encoder
diff options
context:
space:
mode:
authorDeb Mukherjee <debargha@google.com>2012-01-16 11:21:12 -0800
committerDeb Mukherjee <debargha@google.com>2012-01-26 10:24:47 -0800
commit6fa47a5f16cb5631713ccc03d9b11f5345564abe (patch)
treeade871688c353372ff7de2d244f5df02b9569b9f /vp8/encoder
parent5a5d24eed69c4fdba0d7ec3afb8c1fc9e098bcb1 (diff)
downloadlibvpx-6fa47a5f16cb5631713ccc03d9b11f5345564abe.tar
libvpx-6fa47a5f16cb5631713ccc03d9b11f5345564abe.tar.gz
libvpx-6fa47a5f16cb5631713ccc03d9b11f5345564abe.tar.bz2
libvpx-6fa47a5f16cb5631713ccc03d9b11f5345564abe.zip
Adds support for enhanced interpolation for subpel motion
using an 8-tap filter. The results with 3 different 8-tap filters on the derf set are in: http://www.corp.google.com/~debargha/vp8_results/enhinterp.html The one that gives the most gain achieves an overall gain of about 0.6%. The results for a set of 12 hd (720p) videos are in: http://www.corp.google.com/~debargha/vp8_results/enhinterp_hd.html with max gain of 0.55% with the same filter. The best filter apparently achieves the best trade-off between pass band ripple and stop band attenuation. Change-Id: I919e28ae245c0493147fa0864f8c9d048a9dd530
Diffstat (limited to 'vp8/encoder')
-rw-r--r--vp8/encoder/mbgraph.c8
-rw-r--r--vp8/encoder/onyx_if.c1
2 files changed, 5 insertions, 4 deletions
diff --git a/vp8/encoder/mbgraph.c b/vp8/encoder/mbgraph.c
index 79b7fd595..18c30a417 100644
--- a/vp8/encoder/mbgraph.c
+++ b/vp8/encoder/mbgraph.c
@@ -335,8 +335,8 @@ static void update_mbgraph_frame_stats
// Set up limit values for motion vectors to prevent them extending outside the UMV borders
arf_top_mv.as_int = 0;
gld_top_mv.as_int = 0;
- x->mv_row_min = -(VP8BORDERINPIXELS - 19);
- x->mv_row_max = (cm->mb_rows - 1) * 16 + VP8BORDERINPIXELS - 19;
+ x->mv_row_min = -(VP8BORDERINPIXELS - 16 - INTERP_EXTEND);
+ x->mv_row_max = (cm->mb_rows - 1) * 16 + VP8BORDERINPIXELS - 16 - INTERP_EXTEND;
xd->up_available = 0;
xd->dst.y_stride = buf->y_stride;
xd->pre.y_stride = buf->y_stride;
@@ -353,8 +353,8 @@ static void update_mbgraph_frame_stats
// Set up limit values for motion vectors to prevent them extending outside the UMV borders
arf_left_mv.as_int = arf_top_mv.as_int;
gld_left_mv.as_int = gld_top_mv.as_int;
- x->mv_col_min = -(VP8BORDERINPIXELS - 19);
- x->mv_col_max = (cm->mb_cols - 1) * 16 + VP8BORDERINPIXELS - 19;
+ x->mv_col_min = -(VP8BORDERINPIXELS - 16 - INTERP_EXTEND);
+ x->mv_col_max = (cm->mb_cols - 1) * 16 + VP8BORDERINPIXELS - 16 - INTERP_EXTEND;
xd->left_available = 0;
for (mb_col = 0; mb_col < cm->mb_cols; mb_col++)
diff --git a/vp8/encoder/onyx_if.c b/vp8/encoder/onyx_if.c
index 6715ac2f6..639d53dbc 100644
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -268,6 +268,7 @@ void vp8_initialize()
{
static int init_done = 0;
+
if (!init_done)
{
vp8_scale_machine_specific_config();