Adds 1D transforms for ADST/FlipADST to make 16

Makes a set of 16 transforms total, adding all 1D
combinations of ADST and FlipADST, and removng all DST
transforms.

lowres, midres both improve by about 0.1% and hdres by
-0.378% in BDRATE but with fewer transforms that are also
simpler.

Further experiments to continue later.

Change-Id: I7348a4c0e12078fdea5ae3a2d36a89a319ffcc6e
This commit is contained in:
Debargha Mukherjee
2016-03-14 22:30:09 -07:00
parent 4914ae4622
commit 1b17559327
13 changed files with 445 additions and 2044 deletions

View File

@@ -1349,11 +1349,6 @@ static void choose_largest_tx_size(VP10_COMP *cpi, MACROBLOCK *x,
if (cpi->sf.tx_type_search > 0) {
if (!do_tx_type_search(tx_type, prune))
continue;
} else if (ext_tx_set == 1 &&
tx_type >= DST_ADST && tx_type < IDTX &&
best_tx_type == DCT_DCT) {
tx_type = IDTX - 1;
continue;
}
} else {
if (!ALLOW_INTRA_EXT_TX && bs >= BLOCK_8X8) {
@@ -1362,12 +1357,6 @@ static void choose_largest_tx_size(VP10_COMP *cpi, MACROBLOCK *x,
}
if (!ext_tx_used_intra[ext_tx_set][tx_type])
continue;
if (ext_tx_set == 1 &&
tx_type >= DST_ADST && tx_type < IDTX &&
best_tx_type == DCT_DCT) {
tx_type = IDTX - 1;
continue;
}
}
mbmi->tx_type = tx_type;
@@ -1533,11 +1522,6 @@ static void choose_tx_size_from_rd(VP10_COMP *cpi, MACROBLOCK *x,
if (cpi->sf.tx_type_search > 0) {
if (!do_tx_type_search(tx_type, prune))
continue;
} else if (ext_tx_set == 1 &&
tx_type >= DST_ADST && tx_type < IDTX &&
best_tx_type == DCT_DCT) {
tx_type = IDTX - 1;
continue;
}
} else {
if (!ALLOW_INTRA_EXT_TX && bs >= BLOCK_8X8) {
@@ -1546,12 +1530,6 @@ static void choose_tx_size_from_rd(VP10_COMP *cpi, MACROBLOCK *x,
}
if (!ext_tx_used_intra[ext_tx_set][tx_type])
continue;
if (ext_tx_set == 1 &&
tx_type >= DST_ADST && tx_type < IDTX &&
best_tx_type == DCT_DCT) {
tx_type = IDTX - 1;
break;
}
}
mbmi->tx_type = tx_type;
txfm_rd_in_plane(x,
@@ -3169,11 +3147,6 @@ static void select_tx_type_yrd(const VP10_COMP *cpi, MACROBLOCK *x,
if (cpi->sf.tx_type_search > 0) {
if (!do_tx_type_search(tx_type, prune))
continue;
} else if (ext_tx_set == 1 &&
tx_type >= DST_ADST && tx_type < IDTX &&
best_tx_type == DCT_DCT) {
tx_type = IDTX - 1;
continue;
}
} else {
if (!ALLOW_INTRA_EXT_TX && bsize >= BLOCK_8X8) {
@@ -3182,12 +3155,6 @@ static void select_tx_type_yrd(const VP10_COMP *cpi, MACROBLOCK *x,
}
if (!ext_tx_used_intra[ext_tx_set][tx_type])
continue;
if (ext_tx_set == 1 &&
tx_type >= DST_ADST && tx_type < IDTX &&
best_tx_type == DCT_DCT) {
tx_type = IDTX - 1;
break;
}
}
mbmi->tx_type = tx_type;