ref: 84af0486f91faa897202a39d2f77687dd420ced6
parent: 53844275e9e19d0af6f6e5bda98d884cf09aad5d
author: Jingning Han <[email protected]>
date: Fri Jul 25 03:08:23 EDT 2014
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
--- 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;