ref: bd924fbd210137f3a1f8a785dfc805696872882b
parent: 9917842f07b16f2d59aeebb9783f473b644a6565
author: Alex Converse <[email protected]>
date: Wed Mar 16 11:56:35 EDT 2016
choose_partitioning: Avoid computing segment_id twice. 1% faster remoting_perftest at speed -8. Change-Id: I78d591e14b8f890c1e69cacb6d490dfeb9c37900
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -693,20 +693,16 @@
const int use_4x4_partition = cm->frame_type == KEY_FRAME;
const int low_res = (cm->width <= 352 && cm->height <= 288);
int variance4x4downsample[16];
+ int segment_id;
- int segment_id = CR_SEGMENT_ID_BASE;
+ set_offsets(cpi, tile, x, mi_row, mi_col, BLOCK_64X64);
+ segment_id = xd->mi[0]->segment_id;
if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ && cm->seg.enabled) {
- const uint8_t *const map = cm->seg.update_map ? cpi->segmentation_map :
- cm->last_frame_seg_map;
- segment_id = get_segment_id(cm, map, BLOCK_64X64, mi_row, mi_col);
-
if (cyclic_refresh_segment_id_boosted(segment_id)) {
int q = vp9_get_qindex(&cm->seg, segment_id, cm->base_qindex);
set_vbp_thresholds(cpi, thresholds, q);
}
}
-
- set_offsets(cpi, tile, x, mi_row, mi_col, BLOCK_64X64);
if (xd->mb_to_right_edge < 0)
pixels_wide += (xd->mb_to_right_edge >> 3);