Fix rd_pick_partition search loop for 4x4 blocks The partition search for 4x4 blocks takes unnecessary steps to reconstruct pixels and an extra partition type update. This commit removes such operations. No visible compression/speed difference. Thanks to Yue (yuec@) for finding this issue. Change-Id: I3f83824aa3fd3717d63be0b280fa57258939a70a
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index f80c0bc..fc329b0 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c
@@ -2015,17 +2015,10 @@ ctx->mic.mbmi.interp_filter; rd_pick_sb_modes(cpi, tile, mi_row, mi_col, &sum_rate, &sum_dist, subsize, pc_tree->leaf_split[0], best_rd, 0); - if (sum_rate == INT_MAX) { + if (sum_rate == INT_MAX) sum_rd = INT64_MAX; - } else { + else sum_rd = RDCOST(x->rdmult, x->rddiv, sum_rate, sum_dist); - if (sum_rd < best_rd) { - update_state(cpi, pc_tree->leaf_split[0], mi_row, mi_col, subsize, 0); - encode_superblock(cpi, tp, 0, mi_row, mi_col, subsize, - pc_tree->leaf_split[0]); - update_partition_context(xd, mi_row, mi_col, subsize, bsize); - } - } } else { for (i = 0; i < 4 && sum_rd < best_rd; ++i) { const int x_idx = (i & 1) * mi_step;