diff options
author | Paul Wilkins <paulwilkins@google.com> | 2016-08-30 16:54:39 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-08-30 16:54:40 +0000 |
commit | 129814fcb487696264199ef4fe18049dd09a8b66 (patch) | |
tree | d8a946368c0bd2fa6ad58ff7ce85bfe5b2a834b6 /vp9/encoder/vp9_encodeframe.c | |
parent | 3a3169be597e1338bd09724ba4482534accf4de0 (diff) | |
parent | 635ae8bdc1f5f1fe9e94c2f14144ad4c8750b627 (diff) | |
download | libvpx-129814fcb487696264199ef4fe18049dd09a8b66.tar libvpx-129814fcb487696264199ef4fe18049dd09a8b66.tar.gz libvpx-129814fcb487696264199ef4fe18049dd09a8b66.tar.bz2 libvpx-129814fcb487696264199ef4fe18049dd09a8b66.zip |
Merge "Adjust coefficient optimization and tx_domain rd speed features."
Diffstat (limited to 'vp9/encoder/vp9_encodeframe.c')
-rw-r--r-- | vp9/encoder/vp9_encodeframe.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index 93f12d203..d323a17a6 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -1340,6 +1340,22 @@ static void rd_pick_sb_modes(VP9_COMP *cpi, TileDataEnc *tile_data, // Save rdmult before it might be changed, so it can be restored later. orig_rdmult = x->rdmult; + if ((cpi->sf.tx_domain_thresh > 0.0) || (cpi->sf.quant_opt_thresh > 0.0)) { + double logvar = vp9_log_block_var(cpi, x, bsize); + // Check block complexity as part of descision on using pixel or transform + // domain distortion in rd tests. + x->block_tx_domain = cpi->sf.allow_txfm_domain_distortion && + (logvar >= cpi->sf.tx_domain_thresh); + + // Check block complexity as part of descision on using quantized + // coefficient optimisation inside the rd loop. + x->block_qcoeff_opt = + cpi->sf.allow_quant_coeff_opt && (logvar <= cpi->sf.quant_opt_thresh); + } else { + x->block_tx_domain = cpi->sf.allow_txfm_domain_distortion; + x->block_qcoeff_opt = cpi->sf.allow_quant_coeff_opt; + } + if (aq_mode == VARIANCE_AQ) { const int energy = bsize <= BLOCK_16X16 ? x->mb_energy : vp9_block_energy(cpi, x, bsize); |