diff options
author | John Koleszar <jkoleszar@google.com> | 2013-02-08 17:49:44 -0800 |
---|---|---|
committer | John Koleszar <jkoleszar@google.com> | 2013-02-26 10:03:29 -0800 |
commit | 6a4f708c25e8782f75d1077cb994810e0ad8e16d (patch) | |
tree | 0a8ae2b0188166a9513e4f2fe3beb592183d5726 /vp9/decoder | |
parent | 9770d564f4984e6a0d3cfdfb7e5b8bc83f52dccf (diff) | |
download | libvpx-6a4f708c25e8782f75d1077cb994810e0ad8e16d.tar libvpx-6a4f708c25e8782f75d1077cb994810e0ad8e16d.tar.gz libvpx-6a4f708c25e8782f75d1077cb994810e0ad8e16d.tar.bz2 libvpx-6a4f708c25e8782f75d1077cb994810e0ad8e16d.zip |
Refactor inter recon functions to support scaling
Ensure that all inter prediction goes through a common code path
that takes scaling into account. Removes a bunch of duplicate
1st/2nd predictor code. Also introduces a 16x8 mode for 8x8
MVs, similar to the 8x4 trick we were doing before. This has an
unexpected effect with EIGHTTAP_SMOOTH, so it's disabled in that
case for now.
Change-Id: Ia053e823a8bc616a988a0af30452e1e75a739cba
Diffstat (limited to 'vp9/decoder')
-rw-r--r-- | vp9/decoder/vp9_decodframe.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c index d42bccd88..830b6fdfe 100644 --- a/vp9/decoder/vp9_decodframe.c +++ b/vp9/decoder/vp9_decodframe.c @@ -177,23 +177,14 @@ static void skip_recon_mb(VP9D_COMP *pbi, MACROBLOCKD *xd) { xd->dst.y_stride, xd->dst.uv_stride); } else { - vp9_build_1st_inter16x16_predictors_mb(xd, - xd->dst.y_buffer, - xd->dst.u_buffer, - xd->dst.v_buffer, - xd->dst.y_stride, - xd->dst.uv_stride); - - if (xd->mode_info_context->mbmi.second_ref_frame > 0) { - vp9_build_2nd_inter16x16_predictors_mb(xd, - xd->dst.y_buffer, - xd->dst.u_buffer, - xd->dst.v_buffer, - xd->dst.y_stride, - xd->dst.uv_stride); - } + vp9_build_inter16x16_predictors_mb(xd, + xd->dst.y_buffer, + xd->dst.u_buffer, + xd->dst.v_buffer, + xd->dst.y_stride, + xd->dst.uv_stride); #if CONFIG_COMP_INTERINTRA_PRED - else if (xd->mode_info_context->mbmi.second_ref_frame == INTRA_FRAME) { + if (xd->mode_info_context->mbmi.second_ref_frame == INTRA_FRAME) { vp9_build_interintra_16x16_predictors_mb(xd, xd->dst.y_buffer, xd->dst.u_buffer, |