diff --git a/av1/common/blockd.h b/av1/common/blockd.h index bdd04adbf63d27b18e2ea9de8c904a1794a75a04..997b6c7de3c90398194ab6b39b9dace1b9adc30a 100644 --- a/av1/common/blockd.h +++ b/av1/common/blockd.h @@ -901,6 +901,7 @@ static INLINE TX_TYPE get_default_tx_type(PLANE_TYPE plane_type, static INLINE TX_TYPE get_tx_type(PLANE_TYPE plane_type, const MACROBLOCKD *xd, int block, TX_SIZE tx_size) { +#if !CONFIG_LV_MAP const MODE_INFO *const mi = xd->mi[0]; const MB_MODE_INFO *const mbmi = &mi->mbmi; @@ -953,6 +954,24 @@ static INLINE TX_TYPE get_tx_type(PLANE_TYPE plane_type, const MACROBLOCKD *xd, return DCT_DCT; return mbmi->tx_type; #endif // CONFIG_EXT_TX +#else // !CONFIG_LV_MAP + (void)tx_size; + const MODE_INFO *const mi = xd->mi[0]; + const MB_MODE_INFO *const mbmi = &mi->mbmi; + + if (plane_type != PLANE_TYPE_Y || xd->lossless[mbmi->segment_id] || + mbmi->tx_size >= TX_32X32) + return DCT_DCT; + + if (mbmi->sb_type < BLOCK_8X8) { + if (mbmi->ref_frame[0] < LAST_FRAME) + return intra_mode_to_tx_type_context[mi->bmi[block].as_mode]; + else + return DCT_DCT; + } + + return mbmi->txk_type[block]; +#endif // !CONFIG_LV_MAP } void av1_setup_block_planes(MACROBLOCKD *xd, int ss_x, int ss_y);