ref: 90c505f2183be98d19fa106fb7164cd1708b45e1
parent: 20745f8442f7f3b4e649ebbad2e105b6abafab71
parent: 9f61a83bf9201be73083dd09fbb67f93955f4ac2
author: Fritz Koenig <frkoenig@google.com>
date: Mon Nov 1 10:41:41 EDT 2010
Merge "postproc : Added SPLITMV visualization, fix line constrain."
--- a/vp8/common/postproc.c
+++ b/vp8/common/postproc.c
@@ -484,7 +484,7 @@
int u1_const = u1*((1<<16)-alpha);
int v1_const = v1*((1<<16)-alpha);
- y += stride + 2;
+ y += stride + 1;
for (i = 0; i < 14; i++)
{
for (j = 0; j < 14; j++)
@@ -522,7 +522,7 @@
dy = *y1 - y0;
*x1 = width;
- if (dy)
+ if (dx)
*y1 = ((width-x0)*dy)/dx + y0;
}
if (*x1 < 0)
@@ -531,7 +531,7 @@
dy = *y1 - y0;
*x1 = 0;
- if (dy)
+ if (dx)
*y1 = ((0-x0)*dy)/dx + y0;
}
if (*y1 > height)
@@ -540,7 +540,7 @@
dy = *y1 - y0;
*y1 = height;
- if (dx)
+ if (dy)
*x1 = ((height-y0)*dx)/dy + x0;
}
if (*y1 < 0)
@@ -549,7 +549,7 @@
dy = *y1 - y0;
*y1 = 0;
- if (dx)
+ if (dy)
*x1 = ((0-y0)*dx)/dy + x0;
}
}
@@ -753,8 +753,36 @@
{
for (x0 = 8; x0 < (width + 8); x0 += 16)
{
- int x1, y1;
- if (mi->mbmi.mode >= NEARESTMV)
+ int x1, y1;
+
+ if (mi->mbmi.mode == SPLITMV)
+ {
+ int bx0, by0;
+
+ B_MODE_INFO *bmi = mi->bmi;
+ MV *mv = &bmi->mv.as_mv;
+
+ for (by0 = (y0-8); by0 < y0+8; by0 += 4)
+ {
+ for (bx0 = (x0-8); bx0 < x0+8; bx0 += 4)
+ {
+
+ x1 = bx0 + (mv->col >> 3);
+ y1 = by0 + (mv->row >> 3);
+
+ if (x1 != bx0 && y1 != by0)
+ {
+ constrain_line (bx0, &x1, by0, &y1, width, height);
+ vp8_blit_line (bx0, x1, by0, y1, y_buffer, y_stride);
+ }
+ else
+ vp8_blit_line (bx0, x1, by0, y1, y_buffer, y_stride);
+
+ mv++;
+ }
+ }
+ }
+ else if (mi->mbmi.mode >= NEARESTMV)
{
MV *mv = &mi->mbmi.mv.as_mv;
--
⑨