Enable rectangular transforms for UV

Uses an array to map block sizes, y tx sizes, and subsampling
factors to various transform sizes for UV.

Results improve by 0.1-0.2%

Change-Id: Icb58fd96bc7c01a72cbf1332fe2be4d55a0feedc
This commit is contained in:
Debargha Mukherjee
2016-08-30 17:43:38 -07:00
parent 01bade1064
commit 2f12340ff0
10 changed files with 306 additions and 61 deletions

View File

@@ -584,9 +584,9 @@ void tokenize_tx(ThreadData *td, TOKENEXTRA **t, int dry_run, TX_SIZE tx_size,
if (blk_row >= max_blocks_high || blk_col >= max_blocks_wide) return;
plane_tx_size = plane ? get_uv_tx_size_impl(
mbmi->inter_tx_size[tx_row][tx_col], bsize, 0, 0)
: mbmi->inter_tx_size[tx_row][tx_col];
plane_tx_size =
plane ? uv_txsize_lookup[bsize][mbmi->inter_tx_size[tx_row][tx_col]][0][0]
: mbmi->inter_tx_size[tx_row][tx_col];
if (tx_size == plane_tx_size) {
const struct macroblockd_plane *const pd = &xd->plane[plane];