diff options
author | Yaowu Xu <yaowu@google.com> | 2013-10-17 11:09:14 -0700 |
---|---|---|
committer | Yaowu Xu <yaowu@google.com> | 2013-10-17 14:54:16 -0700 |
commit | 30d1ec38a77a6df146d2b18c96719899b6871580 (patch) | |
tree | b156e34c1bf6cb29d2b7e7e5fb8c13eb740ac8b4 /vp9/encoder/vp9_rdopt.c | |
parent | 518fc282f4f36f89f10e15a23dfc2ded5db294fa (diff) | |
download | libvpx-30d1ec38a77a6df146d2b18c96719899b6871580.tar libvpx-30d1ec38a77a6df146d2b18c96719899b6871580.tar.gz libvpx-30d1ec38a77a6df146d2b18c96719899b6871580.tar.bz2 libvpx-30d1ec38a77a6df146d2b18c96719899b6871580.zip |
Use lookup table to simplify logic
In deciding the transform size for a given block in a given TX_MODE.
Change-Id: I1467da09853e69cd320695a24c04e19a2f3d04fb
Diffstat (limited to 'vp9/encoder/vp9_rdopt.c')
-rw-r--r-- | vp9/encoder/vp9_rdopt.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index f19296803..3eb14c879 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -715,22 +715,12 @@ static void choose_largest_txfm_size(VP9_COMP *cpi, MACROBLOCK *x, BLOCK_SIZE bs) { const TX_SIZE max_tx_size = max_txsize_lookup[bs]; VP9_COMMON *const cm = &cpi->common; + const TX_SIZE largest_tx_size = tx_mode_to_biggest_tx_size[cm->tx_mode]; MACROBLOCKD *const xd = &x->e_mbd; MB_MODE_INFO *const mbmi = &xd->mi_8x8[0]->mbmi; - if (max_tx_size == TX_32X32 && - (cm->tx_mode == ALLOW_32X32 || - cm->tx_mode == TX_MODE_SELECT)) { - mbmi->tx_size = TX_32X32; - } else if (max_tx_size >= TX_16X16 && - (cm->tx_mode == ALLOW_16X16 || - cm->tx_mode == ALLOW_32X32 || - cm->tx_mode == TX_MODE_SELECT)) { - mbmi->tx_size = TX_16X16; - } else if (cm->tx_mode != ONLY_4X4) { - mbmi->tx_size = TX_8X8; - } else { - mbmi->tx_size = TX_4X4; - } + + mbmi->tx_size = MIN(max_tx_size, largest_tx_size); + txfm_rd_in_plane(x, &cpi->rdcost_stack, rate, distortion, skip, &sse[mbmi->tx_size], ref_best_rd, 0, bs, mbmi->tx_size); |