var_tx
ext_tx
misc_fixes
+ ext_intra
universal_hp
"
CONFIG_LIST="
const MB_MODE_INFO *const mbmi = &mi->mbmi;
#if CONFIG_EXT_TX
- if (xd->lossless || tx_size >= TX_32X32)
+ if ( xd->lossless[mbmi->segment_id] || tx_size >= TX_32X32)
return DCT_DCT;
if (mbmi->sb_type >= BLOCK_8X8) {
if (plane_type == PLANE_TYPE_Y || is_inter_block(mbmi))
#if CONFIG_EXT_TX
for (i = TX_4X4; i <= TX_16X16; ++i) {
+ int j;
vpx_tree_merge_probs(vp10_tx_type_tree, pre_fc->inter_tx_type_prob[i],
counts->inter_tx_type[i], fc->inter_tx_type_prob[i]);
return cm->frame_type == KEY_FRAME || cm->intra_only;
}
-static INLINE void set_partition_probs(const VP10_COMMON *const cm,
- MACROBLOCKD *const xd) {
- xd->partition_probs =
- frame_is_intra_only(cm) ?
- &vp10_kf_partition_probs[0] :
- (const vpx_prob (*)[PARTITION_TYPES - 1])cm->fc->partition_prob;
-}
-
static INLINE void vp10_init_macroblockd(VP10_COMMON *cm, MACROBLOCKD *xd,
tran_low_t *dqcoeff) {
int i;
xd->above_seg_context = cm->above_seg_context;
xd->mi_stride = cm->mi_stride;
xd->error_info = &cm->error;
-
- set_partition_probs(cm, xd);
-}
-
-static INLINE const vpx_prob* get_partition_probs(const MACROBLOCKD *xd,
- int ctx) {
- return xd->partition_probs[ctx];
}
static INLINE void set_skip_context(MACROBLOCKD *xd, int mi_row, int mi_col) {
break;
case TX_4X4:
vp10_highbd_fwd_txfm_4x4(src_diff, coeff, diff_stride, tx_type,
- xd->lossless);
+ xd->lossless[mbmi->segment_id]);
vp10_highbd_quantize_fp(coeff, 16, x->skip_block, p->zbin, p->round_fp,
p->quant_fp, p->quant_shift, qcoeff, dqcoeff,
pd->dequant, eob,
break;
case TX_4X4:
vp10_highbd_fwd_txfm_4x4(src_diff, coeff, diff_stride, tx_type,
- xd->lossless);
+ xd->lossless[xd->mi[0]->mbmi.segment_id]);
vpx_highbd_quantize_dc(coeff, 16, x->skip_block, p->round,
p->quant_fp[0], qcoeff, dqcoeff,
pd->dequant[0], eob);
if (p->eobs[block] > 0) {
#if CONFIG_VP9_HIGHBITDEPTH
if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {
- if (xd->lossless) {
+ if (xd->lossless[xd->mi[0]->mbmi.segment_id]) {
vp10_highbd_iwht4x4_add(dqcoeff, dst, pd->dst.stride,
p->eobs[block], xd->bd);
} else {
return;
}
#endif // CONFIG_VP9_HIGHBITDEPTH
- if (xd->lossless) {
+ if (xd->lossless[xd->mi[0]->mbmi.segment_id]) {
vp10_iwht4x4_add(dqcoeff, dst, pd->dst.stride, p->eobs[block]);
} else {
vp10_idct4x4_add(dqcoeff, dst, pd->dst.stride, p->eobs[block]);
mbmi->tx_size = VPXMIN(max_tx_size, largest_tx_size);
#if CONFIG_EXT_TX
- if (is_inter_block(mbmi) && bs >= BLOCK_8X8 && !xd->lossless) {
+ if (is_inter_block(mbmi) && bs >= BLOCK_8X8 &&
+ !xd->lossless[mbmi->segment_id]) {
for (tx_type = DCT_DCT; tx_type < TX_TYPES - 1; ++tx_type) {
if (mbmi->tx_type >= DST_ADST && mbmi->tx_type < IDTX &&
best_tx_type == DCT_DCT) {
this_rd = RDCOST(x->rdmult, x->rddiv, s1, psse);
else
this_rd = RDCOST(x->rdmult, x->rddiv, r + s0, d);
- if (is_inter_block(mbmi) && !xd->lossless && !s)
+ if (is_inter_block(mbmi) && !xd->lossless[mbmi->segment_id] && !s)
this_rd = VPXMIN(this_rd, RDCOST(x->rdmult, x->rddiv, s1, psse));
if (this_rd < ((best_tx_type == DCT_DCT) ? ext_tx_th : 1) * best_rd) {
#if CONFIG_EXT_TX
if (bs >= BLOCK_8X8 && mbmi->tx_size <= TX_16X16 &&
- !xd->lossless && *rate != INT_MAX) {
+ !xd->lossless[mbmi->segment_id] && *rate != INT_MAX) {
if (is_inter_block(mbmi))
*rate += cpi->inter_tx_type_costs[mbmi->tx_size][mbmi->tx_type];
else
#if CONFIG_EXT_TX
start_tx_type = DCT_DCT;
- if (bs >= BLOCK_8X8 && !xd->lossless)
+ if (bs >= BLOCK_8X8 && !xd->lossless[mbmi->segment_id])
end_tx_type = TX_TYPES - 1;
else
end_tx_type = DCT_DCT;
&sse, ref_best_rd, 0, bs, n,
cpi->sf.use_fast_coef_costing);
#if CONFIG_EXT_TX
- if (bs >= BLOCK_8X8 && !xd->lossless && r != INT_MAX && n < TX_32X32) {
+ if (bs >= BLOCK_8X8 && !xd->lossless[mbmi->segment_id] &&
+ r != INT_MAX && n < TX_32X32) {
if (is_inter_block(mbmi))
r += cpi->inter_tx_type_costs[n][mbmi->tx_type];
else
rd = RDCOST(x->rdmult, x->rddiv, r + s0, d);
}
- if (is_inter_block(mbmi) && !xd->lossless && !s)
+ if (is_inter_block(mbmi) && !xd->lossless[mbmi->segment_id] && !s)
rd = VPXMIN(rd, RDCOST(x->rdmult, x->rddiv, s1, sse));
// Early termination in transform size search.
- if (cpi->sf.tx_size_search_breakout &&
+ if (0 && cpi->sf.tx_size_search_breakout &&
(rd== INT64_MAX ||
(n < (int) max_tx_size && rd > last_rd) ||
s == 1))