Fix config flags among var-tx/ext-tx/rect-tx BUG=aomedia:396 Change-Id: I1b7f6dddb06eac9e341518a95a0d71465e613e9e
diff --git a/av1/common/blockd.h b/av1/common/blockd.h index dc433a2..a924ed8 100644 --- a/av1/common/blockd.h +++ b/av1/common/blockd.h
@@ -602,7 +602,6 @@ #define USE_TXTYPE_SEARCH_FOR_SUB8X8_IN_CB4X4 1 #if CONFIG_RECT_TX - static INLINE int is_rect_tx(TX_SIZE tx_size) { return tx_size >= TX_SIZES; } #endif // CONFIG_RECT_TX @@ -776,13 +775,13 @@ static INLINE TX_SIZE tx_size_from_tx_mode(BLOCK_SIZE bsize, TX_MODE tx_mode, int is_inter) { const TX_SIZE largest_tx_size = tx_mode_to_biggest_tx_size[tx_mode]; -#if CONFIG_VAR_TX || (CONFIG_EXT_TX && CONFIG_RECT_TX) +#if (CONFIG_VAR_TX || CONFIG_EXT_TX) && CONFIG_RECT_TX const TX_SIZE max_rect_tx_size = max_txsize_rect_lookup[bsize]; #else const TX_SIZE max_tx_size = max_txsize_lookup[bsize]; -#endif // CONFIG_VAR_TX || (CONFIG_EXT_TX && CONFIG_RECT_TX) +#endif // (CONFIG_VAR_TX || CONFIG_EXT_TX) && CONFIG_RECT_TX (void)is_inter; -#if CONFIG_VAR_TX +#if CONFIG_VAR_TX && CONFIG_RECT_TX #if CONFIG_CB4X4 if (bsize == BLOCK_4X4) return AOMMIN(max_txsize_lookup[bsize], largest_tx_size); @@ -802,7 +801,7 @@ } #else return AOMMIN(max_tx_size, largest_tx_size); -#endif // CONFIG_VAR_TX +#endif // CONFIG_VAR_TX && CONFIG_RECT_TX } #if CONFIG_EXT_INTRA
diff --git a/av1/common/common_data.h b/av1/common/common_data.h index 7730411..6369386 100644 --- a/av1/common/common_data.h +++ b/av1/common/common_data.h
@@ -455,7 +455,7 @@ #endif // CONFIG_TX64X64 }; -#if CONFIG_RECT_TX +#if CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) static const TX_SIZE max_txsize_rect_lookup[BLOCK_SIZES] = { #if CONFIG_CB4X4 // 2X2, 2X4, 4X2, @@ -489,9 +489,9 @@ }; #else #define max_txsize_rect_lookup max_txsize_lookup -#endif // CONFIG_RECT_TX +#endif // CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) -#if (CONFIG_VAR_TX || CONFIG_RECT_TX) +#if CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) // Same as "max_txsize_lookup[bsize] - TX_8X8", except for rectangular // block which may use a rectangular transform, in which case it is // "(max_txsize_lookup[bsize] + 1) - TX_8X8", invalid for bsize < 8X8 @@ -564,7 +564,7 @@ #endif // CONFIG_EXT_PARTITION #endif // CONFIG_TX64X64 }; -#endif // CONFIG_VAR_TX && CONFIG_RECT_TX +#endif // CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) #define inter_tx_size_cat_lookup intra_tx_size_cat_lookup
diff --git a/av1/common/reconintra.c b/av1/common/reconintra.c index ade5222..01a3480 100644 --- a/av1/common/reconintra.c +++ b/av1/common/reconintra.c
@@ -2262,7 +2262,7 @@ predict_square_intra_block(xd, wpx, hpx, tx_size, mode, ref, ref_stride, dst, dst_stride, col_off, row_off, plane); } else { -#if (CONFIG_VAR_TX || CONFIG_RECT_TX) || \ +#if (CONFIG_RECT_TX && (CONFIG_VAR_TX || CONFIG_EXT_TX)) || \ (CONFIG_EXT_INTER && USE_RECT_INTERINTRA) #if CONFIG_AOM_HIGHBITDEPTH uint16_t tmp16[MAX_SB_SIZE]; @@ -2384,7 +2384,8 @@ } #else assert(0); -#endif // CONFIG_EXT_TX && CONFIG_RECT_TX +#endif // (CONFIG_RECT_TX && (CONFIG_VAR_TX || CONFIG_EXT_TX)) || + // (CONFIG_EXT_INTER && USE_RECT_INTERINTRA) } }
diff --git a/av1/common/scan.c b/av1/common/scan.c index 9a09056..2377d90 100644 --- a/av1/common/scan.c +++ b/av1/common/scan.c
@@ -6500,14 +6500,14 @@ case TX_8X8: return fc->non_zero_prob_8X8[tx_type]; case TX_16X16: return fc->non_zero_prob_16X16[tx_type]; case TX_32X32: return fc->non_zero_prob_32X32[tx_type]; -#if CONFIG_VAR_TX || CONFIG_RECT_TX +#if CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) case TX_4X8: return fc->non_zero_prob_4X8[tx_type]; case TX_8X4: return fc->non_zero_prob_8X4[tx_type]; case TX_8X16: return fc->non_zero_prob_8X16[tx_type]; case TX_16X8: return fc->non_zero_prob_16X8[tx_type]; case TX_16X32: return fc->non_zero_prob_16X32[tx_type]; case TX_32X16: return fc->non_zero_prob_32X16[tx_type]; -#endif +#endif // CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) default: assert(0); return NULL; } } @@ -6522,14 +6522,14 @@ case TX_8X8: return fc->scan_8X8[tx_type]; case TX_16X16: return fc->scan_16X16[tx_type]; case TX_32X32: return fc->scan_32X32[tx_type]; -#if CONFIG_VAR_TX || CONFIG_RECT_TX +#if CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) case TX_4X8: return fc->scan_4X8[tx_type]; case TX_8X4: return fc->scan_8X4[tx_type]; case TX_8X16: return fc->scan_8X16[tx_type]; case TX_16X8: return fc->scan_16X8[tx_type]; case TX_16X32: return fc->scan_16X32[tx_type]; case TX_32X16: return fc->scan_32X16[tx_type]; -#endif +#endif // CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) default: assert(0); return NULL; } } @@ -6544,14 +6544,14 @@ case TX_8X8: return fc->iscan_8X8[tx_type]; case TX_16X16: return fc->iscan_16X16[tx_type]; case TX_32X32: return fc->iscan_32X32[tx_type]; -#if CONFIG_VAR_TX || CONFIG_RECT_TX +#if CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) case TX_4X8: return fc->iscan_4X8[tx_type]; case TX_8X4: return fc->iscan_8X4[tx_type]; case TX_8X16: return fc->iscan_8X16[tx_type]; case TX_16X8: return fc->iscan_16X8[tx_type]; case TX_16X32: return fc->iscan_16X32[tx_type]; case TX_32X16: return fc->iscan_32X16[tx_type]; -#endif +#endif // CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) default: assert(0); return NULL; } } @@ -6566,14 +6566,14 @@ case TX_8X8: return fc->nb_8X8[tx_type]; case TX_16X16: return fc->nb_16X16[tx_type]; case TX_32X32: return fc->nb_32X32[tx_type]; -#if CONFIG_VAR_TX || CONFIG_RECT_TX +#if CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) case TX_4X8: return fc->nb_4X8[tx_type]; case TX_8X4: return fc->nb_8X4[tx_type]; case TX_8X16: return fc->nb_8X16[tx_type]; case TX_16X8: return fc->nb_16X8[tx_type]; case TX_16X32: return fc->nb_16X32[tx_type]; case TX_32X16: return fc->nb_32X16[tx_type]; -#endif +#endif // CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) default: assert(0); return NULL; } } @@ -6588,14 +6588,14 @@ case TX_8X8: return counts->non_zero_count_8X8[tx_type]; case TX_16X16: return counts->non_zero_count_16X16[tx_type]; case TX_32X32: return counts->non_zero_count_32X32[tx_type]; -#if CONFIG_VAR_TX || CONFIG_RECT_TX +#if CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) case TX_4X8: return counts->non_zero_count_4x8[tx_type]; case TX_8X4: return counts->non_zero_count_8x4[tx_type]; case TX_8X16: return counts->non_zero_count_8x16[tx_type]; case TX_16X8: return counts->non_zero_count_16x8[tx_type]; case TX_16X32: return counts->non_zero_count_16x32[tx_type]; case TX_32X16: return counts->non_zero_count_32x16[tx_type]; -#endif +#endif // CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) default: assert(0); return NULL; } } @@ -6774,11 +6774,11 @@ TX_SIZE tx_size; TX_TYPE tx_type; for (tx_size = 0; tx_size < TX_SIZES_ALL; ++tx_size) { -#if !(CONFIG_VAR_TX || CONFIG_RECT_TX) - if (tx_size >= TX_SIZES) continue; -#else +#if CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) if (tx_size > TX_32X16) continue; -#endif +#else + if (tx_size >= TX_SIZES) continue; +#endif // CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) for (tx_type = DCT_DCT; tx_type < TX_TYPES; ++tx_type) { uint32_t *non_zero_prob = get_non_zero_prob(cm->fc, tx_size, tx_type); const int tx2d_size = tx_size_2d[tx_size]; @@ -6798,11 +6798,11 @@ void av1_adapt_scan_order(AV1_COMMON *cm) { TX_SIZE tx_size; for (tx_size = 0; tx_size < TX_SIZES_ALL; ++tx_size) { -#if !(CONFIG_VAR_TX || CONFIG_RECT_TX) - if (tx_size >= TX_SIZES) continue; -#else +#if CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) if (tx_size > TX_32X16) continue; -#endif // !(CONFIG_VAR_TX || CONFIG_RECT_TX) +#else + if (tx_size >= TX_SIZES) continue; +#endif // CONFIG_RECT_TX && (CONFIG_EXT_TX || CONFIG_VAR_TX) TX_TYPE tx_type; for (tx_type = DCT_DCT; tx_type < TX_TYPES; ++tx_type) { update_scan_prob(cm, tx_size, tx_type, ADAPT_SCAN_UPDATE_RATE_16);
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c index 53717f1..c7da753 100644 --- a/av1/decoder/decodemv.c +++ b/av1/decoder/decodemv.c
@@ -448,13 +448,9 @@ const TX_MODE tx_mode = cm->tx_mode; const BLOCK_SIZE bsize = xd->mi[0]->mbmi.sb_type; if (xd->lossless[xd->mi[0]->mbmi.segment_id]) return TX_4X4; -#if CONFIG_CB4X4 && (CONFIG_VAR_TX || CONFIG_RECT_TX) -#if CONFIG_RECT_TX +#if CONFIG_CB4X4 && (CONFIG_VAR_TX || CONFIG_EXT_TX) && CONFIG_RECT_TX if (bsize > BLOCK_4X4) { #else - if (bsize >= BLOCK_8X8 || (bsize > BLOCK_4X4 && is_inter)) { -#endif // CONFIG_RECT_TX -#else if (bsize >= BLOCK_8X8) { #endif // CONFIG_CB4X4 && CONFIG_VAR_TX if ((!is_inter || allow_select_inter) && tx_mode == TX_MODE_SELECT) {
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index 587134f..3c63639 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c
@@ -456,13 +456,9 @@ FRAME_CONTEXT *ec_ctx = cm->fc; #endif // For sub8x8 blocks the tx_size symbol does not need to be sent -#if CONFIG_CB4X4 && (CONFIG_VAR_TX || CONFIG_RECT_TX) -#if CONFIG_RECT_TX +#if CONFIG_CB4X4 && (CONFIG_VAR_TX || CONFIG_EXT_TX) && CONFIG_RECT_TX if (bsize > BLOCK_4X4) { #else - if (bsize >= BLOCK_8X8 || (bsize > BLOCK_4X4 && is_inter_block(mbmi))) { -#endif // CONFIG_RECT_TX -#else if (bsize >= BLOCK_8X8) { #endif const TX_SIZE tx_size = mbmi->tx_size;
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c index 82f55bb..5c6a4d2 100644 --- a/av1/encoder/encodeframe.c +++ b/av1/encoder/encodeframe.c
@@ -5771,14 +5771,9 @@ TX_SIZE tx_size = mbmi->tx_size; #endif if (cm->tx_mode == TX_MODE_SELECT && !xd->lossless[mbmi->segment_id] && -#if CONFIG_CB4X4 && (CONFIG_VAR_TX || CONFIG_RECT_TX) -#if CONFIG_RECT_TX +#if CONFIG_CB4X4 && (CONFIG_VAR_TX || CONFIG_EXT_TX) && CONFIG_RECT_TX mbmi->sb_type > BLOCK_4X4 && #else - (mbmi->sb_type >= BLOCK_8X8 || - (mbmi->sb_type > BLOCK_4X4 && is_inter)) && -#endif -#else mbmi->sb_type >= BLOCK_8X8 && #endif !(is_inter && (mbmi->skip || seg_skip))) {