diff options
author | Marco Paniconi <marpan@google.com> | 2015-08-28 21:49:56 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-08-28 21:49:56 +0000 |
commit | 4dcbf0a809d63752e784abe19ac2c04c95561235 (patch) | |
tree | a8b93e006e5e6c3fae776b6bf651f899efbf6033 /vp8/encoder | |
parent | b6d874d73bc2514c99603eecf025ab882567e549 (diff) | |
parent | ee380cc5c4f5e89d20597919eac93a2506fe330e (diff) | |
download | libvpx-4dcbf0a809d63752e784abe19ac2c04c95561235.tar libvpx-4dcbf0a809d63752e784abe19ac2c04c95561235.tar.gz libvpx-4dcbf0a809d63752e784abe19ac2c04c95561235.tar.bz2 libvpx-4dcbf0a809d63752e784abe19ac2c04c95561235.zip |
Merge "vp8: modifcatiion to skin map computation."
Diffstat (limited to 'vp8/encoder')
-rw-r--r-- | vp8/encoder/pickinter.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/vp8/encoder/pickinter.c b/vp8/encoder/pickinter.c index c41005a3b..c26d29000 100644 --- a/vp8/encoder/pickinter.c +++ b/vp8/encoder/pickinter.c @@ -813,9 +813,18 @@ void vp8_pick_inter_mode(VP8_COMP *cpi, MACROBLOCK *x, int recon_yoffset, // Check if current macroblock is in skin area. { - const int y = x->src.y_buffer[7 * x->src.y_stride + 7]; - const int cb = x->src.u_buffer[3 * x->src.uv_stride + 3]; - const int cr = x->src.v_buffer[3 * x->src.uv_stride + 3]; + const int y = (x->src.y_buffer[7 * x->src.y_stride + 7] + + x->src.y_buffer[7 * x->src.y_stride + 8] + + x->src.y_buffer[8 * x->src.y_stride + 7] + + x->src.y_buffer[8 * x->src.y_stride + 8]) >> 2; + const int cb = (x->src.u_buffer[3 * x->src.uv_stride + 3] + + x->src.u_buffer[3 * x->src.uv_stride + 4] + + x->src.u_buffer[4 * x->src.uv_stride + 3] + + x->src.u_buffer[4 * x->src.uv_stride + 4]) >> 2; + const int cr = (x->src.v_buffer[3 * x->src.uv_stride + 3] + + x->src.v_buffer[3 * x->src.uv_stride + 4] + + x->src.v_buffer[4 * x->src.uv_stride + 3] + + x->src.v_buffer[4 * x->src.uv_stride + 4]) >> 2; x->is_skin = 0; if (!cpi->oxcf.screen_content_mode) x->is_skin = is_skin_color(y, cb, cr); |