intrabc: enable 16x4 and 4x16 blocks 0.15% gain on the screen_content testset. BUG=aomedia:998 Change-Id: Ia6484a90b92a00bb0073ecf988b5c164fe8ba84c
diff --git a/av1/common/reconintra.h b/av1/common/reconintra.h index c3b1c64..efd2d52 100644 --- a/av1/common/reconintra.h +++ b/av1/common/reconintra.h
@@ -70,12 +70,8 @@ #endif // CONFIG_EXT_INTRA #if CONFIG_INTRABC -static INLINE int av1_allow_intrabc(BLOCK_SIZE bsize, - const AV1_COMMON *const cm) { - // TODO(huisu@google.com): intrabc is disabled for BLOCK_4X16 and - // BLOCK_16X4 because of onflict between cfl. - return bsize != BLOCK_4X16 && bsize != BLOCK_16X4 && - cm->allow_screen_content_tools && cm->allow_intrabc; +static INLINE int av1_allow_intrabc(const AV1_COMMON *const cm) { + return cm->allow_screen_content_tools && cm->allow_intrabc; } #endif // CONFIG_INTRABC
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c index f7e86c7..87e6748 100644 --- a/av1/decoder/decodemv.c +++ b/av1/decoder/decodemv.c
@@ -1153,7 +1153,7 @@ xd->left_txfm_context = xd->left_txfm_context_buffer + ((mi_row & MAX_MIB_MASK) << TX_UNIT_HIGH_LOG2); } - if (av1_allow_intrabc(bsize, cm)) { + if (av1_allow_intrabc(cm)) { read_intrabc_info(cm, xd, mi_row, mi_col, r); if (is_intrabc_block(mbmi)) return; }
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index db7fd99..a2bd8bb 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c
@@ -1685,7 +1685,7 @@ !xd->lossless[mbmi->segment_id]; #if CONFIG_INTRABC - if (av1_allow_intrabc(bsize, cm)) { + if (av1_allow_intrabc(cm)) { write_intrabc_info(cm, xd, mbmi_ext, enable_tx_size, w); if (is_intrabc_block(mbmi)) return; }
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c index a00b4bd..9d46505 100644 --- a/av1/encoder/encodeframe.c +++ b/av1/encoder/encodeframe.c
@@ -4569,7 +4569,7 @@ if (!dry_run) { #if CONFIG_INTRABC - if (av1_allow_intrabc(bsize, cm)) + if (av1_allow_intrabc(cm)) if (is_intrabc_block(mbmi)) td->intrabc_used_this_tile = 1; #endif // CONFIG_INTRABC TX_SIZE tx_size =
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c index 5e93d53..ce408cb 100644 --- a/av1/encoder/rdopt.c +++ b/av1/encoder/rdopt.c
@@ -8668,7 +8668,7 @@ RD_STATS *rd_cost, BLOCK_SIZE bsize, int64_t best_rd) { const AV1_COMMON *const cm = &cpi->common; - if (!av1_allow_intrabc(bsize, cm)) return INT64_MAX; + if (!av1_allow_intrabc(cm)) return INT64_MAX; MACROBLOCKD *const xd = &x->e_mbd; const TileInfo *tile = &xd->tile;