Commit 02e84155 authored by Hui Su's avatar Hui Su

intrabc: support txk-sel

Allow transform blocks within an intraBC block to use differenct transform
types.

Change-Id: Ibd1a0e920f9d37fae007eecb3c79e0b1b839b37e
parent 6001e04c
......@@ -919,13 +919,6 @@ static INLINE TX_TYPE av1_get_tx_type(PLANE_TYPE plane_type,
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 @@ static INLINE TX_TYPE av1_get_tx_type(PLANE_TYPE plane_type,
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
......
......@@ -8900,7 +8900,7 @@ void av1_rd_pick_intra_mode_sb(const AV1_COMP *cpi, MACROBLOCK *x, int mi_row,
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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment