Modify get_tx_type for lv_map experiment
This CL will break lv_map experiment because it's a partial
implementation for transform kernel selection
Change-Id: I927cb70c2fb0d079d485c1a5ca32c0e72335aad7
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index bdd04ad..997b6c7 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -901,6 +901,7 @@
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 @@
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);