From 73b65e763c88a24914566118f078c2a6fb0a553a Mon Sep 17 00:00:00 2001 From: Jingning Han Date: Sat, 21 Jul 2018 21:49:42 -0700 Subject: [PATCH] Refactor tpl model update function Fill up all the blocks inside an operating unit with the provided statistics. Change-Id: I93556e0daf9f08cbe62d3c12cf38b5e26ad7c799 --- vp9/encoder/vp9_encoder.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index 818302237..05d344df3 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -5700,13 +5700,21 @@ void tpl_model_update(TplDepFrame *tpl_frame, TplDepStats *tpl_stats, (tpl_stats->mc_dep_cost * tpl_stats->inter_cost) / tpl_stats->intra_cost; - ref_stats[ref_mi_row * ref_tpl_frame->stride + ref_mi_col].mc_flow += - (mc_flow * overlap_area) / pix_num; - - ref_stats[ref_mi_row * ref_tpl_frame->stride + ref_mi_col].mc_ref_cost += - ((tpl_stats->intra_cost - tpl_stats->inter_cost) * overlap_area) / - pix_num; - assert(overlap_area >= 0); + int idx, idy; + + for (idy = 0; idy < mi_height; ++idy) { + for (idx = 0; idx < mi_width; ++idx) { + TplDepStats *des_stats = + &ref_stats[(ref_mi_row + idy) * ref_tpl_frame->stride + + (ref_mi_col + idx)]; + + des_stats->mc_flow += (mc_flow * overlap_area) / pix_num; + des_stats->mc_ref_cost += + ((tpl_stats->intra_cost - tpl_stats->inter_cost) * overlap_area) / + pix_num; + assert(overlap_area >= 0); + } + } } } } -- 2.40.0