intrabc: support txk-sel
Allow transform blocks within an intraBC block to use differenct transform
types.
Change-Id: Ibd1a0e920f9d37fae007eecb3c79e0b1b839b37e
diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index d63d8dd..c864938 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -919,13 +919,6 @@
int blk_col, TX_SIZE tx_size) {
const MODE_INFO *const mi = xd->mi[0];
const MB_MODE_INFO *const mbmi = &mi->mbmi;
- (void)blk_row;
- (void)blk_col;
-#if CONFIG_INTRABC && (CONFIG_TXK_SEL)
- // TODO(aconverse@google.com): Handle INTRABC + EXT_TX + TXK_SEL
- if (is_intrabc_block(mbmi)) return DCT_DCT;
-#endif // CONFIG_INTRABC && (CONFIG_TXK_SEL)
-
const struct macroblockd_plane *const pd = &xd->plane[plane_type];
const BLOCK_SIZE plane_bsize = get_plane_block_size(mbmi->sb_type, pd);
const TxSetType tx_set_type =
@@ -952,6 +945,9 @@
assert(tx_type < TX_TYPES);
if (!av1_ext_tx_used[tx_set_type][tx_type]) return DCT_DCT;
return tx_type;
+#else
+ (void)blk_row;
+ (void)blk_col;
#endif // CONFIG_TXK_SEL
// TODO(sarahparker) This assumes reduced_tx_set_used == 0. I will do a
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index d6e4371..79a1631 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -8900,7 +8900,7 @@
if (rd_cost->rate != INT_MAX && rd_cost->rdcost < best_rd)
best_rd = rd_cost->rdcost;
if (rd_pick_intrabc_mode_sb(cpi, x, rd_cost, bsize, best_rd) < best_rd) {
- ctx->skip = x->skip; // FIXME where is the proper place to set this?!
+ ctx->skip = x->skip;
memcpy(ctx->blk_skip[0], x->blk_skip[0],
sizeof(x->blk_skip[0][0]) * ctx->num_4x4_blk);
assert(rd_cost->rate != INT_MAX);