diff options
Diffstat (limited to 'vp9/encoder/vp9_pickmode.c')
-rw-r--r-- | vp9/encoder/vp9_pickmode.c | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index 71cea0e45..c18687b55 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -242,9 +242,13 @@ static void model_rd_for_sb_y(VP9_COMP *cpi, BLOCK_SIZE bsize, else xd->mi[0].src_mi->mbmi.tx_size = TX_8X8; - if (cpi->sf.partition_search_type == VAR_BASED_PARTITION && - xd->mi[0].src_mi->mbmi.tx_size > TX_16X16) - xd->mi[0].src_mi->mbmi.tx_size = TX_16X16; + if (cpi->sf.partition_search_type == VAR_BASED_PARTITION) { + if (cpi->oxcf.aq_mode == CYCLIC_REFRESH_AQ && + xd->mi[0].src_mi->mbmi.segment_id != CR_SEGMENT_ID_BASE) + xd->mi[0].src_mi->mbmi.tx_size = TX_8X8; + else if (xd->mi[0].src_mi->mbmi.tx_size > TX_16X16) + xd->mi[0].src_mi->mbmi.tx_size = TX_16X16; + } } else { xd->mi[0].src_mi->mbmi.tx_size = MIN(max_txsize_lookup[bsize], @@ -1228,7 +1232,9 @@ void vp9_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x, [INTER_OFFSET(this_mode)]; } - vp9_build_inter_predictor(pd->pre[0].buf, pd->pre[0].stride, +#if CONFIG_VP9_HIGHBITDEPTH + if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { + vp9_highbd_build_inter_predictor(pd->pre[0].buf, pd->pre[0].stride, pd->dst.buf, pd->dst.stride, &xd->mi[0].bmi[i].as_mv[0].as_mv, &xd->block_refs[0]->sf, @@ -1237,7 +1243,24 @@ void vp9_pick_inter_mode_sub8x8(VP9_COMP *cpi, MACROBLOCK *x, vp9_get_interp_kernel(mbmi->interp_filter), MV_PRECISION_Q3, mi_col * MI_SIZE + 4 * (i & 0x01), - mi_row * MI_SIZE + 4 * (i >> 1)); + mi_row * MI_SIZE + 4 * (i >> 1), xd->bd); + } else { +#endif + vp9_build_inter_predictor(pd->pre[0].buf, pd->pre[0].stride, + pd->dst.buf, pd->dst.stride, + &xd->mi[0].bmi[i].as_mv[0].as_mv, + &xd->block_refs[0]->sf, + 4 * num_4x4_blocks_wide, + 4 * num_4x4_blocks_high, 0, + vp9_get_interp_kernel(mbmi->interp_filter), + MV_PRECISION_Q3, + mi_col * MI_SIZE + 4 * (i & 0x01), + mi_row * MI_SIZE + 4 * (i >> 1)); + +#if CONFIG_VP9_HIGHBITDEPTH + } +#endif + model_rd_for_sb_y(cpi, bsize, x, xd, &this_rdc.rate, &this_rdc.dist, &var_y, &sse_y); |