ENTROPY_CONTEXT a[16 * MAX_MB_PLANE],
PARTITION_CONTEXT sl[8],
PARTITION_CONTEXT sa[8],
+#endif
+#if CONFIG_PALETTE
+ int previous_size,
+ int previous_count[PALETTE_BUF_SIZE],
+#if CONFIG_VP9_HIGHBITDEPTH
+ uint16_t previous_colors[PALETTE_BUF_SIZE],
+#else
+ uint8_t previous_colors[PALETTE_BUF_SIZE],
+#endif
#endif
int mi_row0, int mi_col0, BLOCK_SIZE subsize0,
int mi_row1, int mi_col1, BLOCK_SIZE subsize1,
PARTITION_TYPE best_partition;
int tmp_rate;
int64_t tmp_dist, tmp_rd;
+#endif
+#if CONFIG_PALETTE
+ PICK_MODE_CONTEXT *c, *p;
#endif
if (cpi->sf.adaptive_motion_search)
load_pred_mv(x, ctx);
+
+#if CONFIG_PALETTE
+ c = &ctxs[0];
+ c->palette_buf_size = previous_size;
+ vpx_memcpy(c->palette_colors_buf, previous_colors,
+ previous_size * sizeof(previous_colors[0]));
+ vpx_memcpy(c->palette_count_buf, previous_count,
+ previous_size * sizeof(previous_count[0]));
+#endif
+
rd_pick_sb_modes(cpi, tile, mi_row0, mi_col0, &sum_rdc,
#if CONFIG_SUPERTX
&sum_rate_nocoef,
if (cpi->sf.adaptive_motion_search)
load_pred_mv(x, ctx);
+
+#if CONFIG_PALETTE
+ copy_palette_info(&ctxs[1], &ctxs[0]);
+#endif
+
#if CONFIG_SUPERTX
rd_pick_sb_modes(cpi, tile, mi_row1, mi_col1, &this_rdc,
&this_rate_nocoef, subsize1, &ctxs[1],
if (cpi->sf.adaptive_motion_search)
load_pred_mv(x, ctx);
+
+#if CONFIG_PALETTE
+ copy_palette_info(&ctxs[2], &ctxs[1]);
+#endif
+
#if CONFIG_SUPERTX
rd_pick_sb_modes(cpi, tile, mi_row2, mi_col2, &this_rdc,
&this_rate_nocoef, subsize2, &ctxs[2],
#endif
*best_rdc = sum_rdc;
pc_tree->partitioning = partition;
+#if CONFIG_PALETTE
+ c = &pc_tree->current;
+ p = &ctxs[2];
+ copy_palette_info(c, p);
+#endif
}
}
}
ctx, mi_row, mi_col, bsize, PARTITION_HORZ_A,
#if CONFIG_SUPERTX
best_rd, &best_rate_nocoef, cm, l, a, sl, sa,
+#endif
+#if CONFIG_PALETTE
+ previous_size, previous_count, previous_colors,
#endif
mi_row, mi_col, bsize2,
mi_row, mi_col + mi_step, bsize2,
ctx, mi_row, mi_col, bsize, PARTITION_HORZ_B,
#if CONFIG_SUPERTX
best_rd, &best_rate_nocoef, cm, l, a, sl, sa,
+#endif
+#if CONFIG_PALETTE
+ previous_size, previous_count, previous_colors,
#endif
mi_row, mi_col, subsize,
mi_row + mi_step, mi_col, bsize2,
ctx, mi_row, mi_col, bsize, PARTITION_VERT_A,
#if CONFIG_SUPERTX
best_rd, &best_rate_nocoef, cm, l, a, sl, sa,
+#endif
+#if CONFIG_PALETTE
+ previous_size, previous_count, previous_colors,
#endif
mi_row, mi_col, bsize2,
mi_row + mi_step, mi_col, bsize2,
ctx, mi_row, mi_col, bsize, PARTITION_VERT_B,
#if CONFIG_SUPERTX
best_rd, &best_rate_nocoef, cm, l, a, sl, sa,
+#endif
+#if CONFIG_PALETTE
+ previous_size, previous_count, previous_colors,
#endif
mi_row, mi_col, subsize,
mi_row, mi_col + mi_step, bsize2,