summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_rdopt.c
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2016-07-06 10:05:51 -0700
committerJingning Han <jingning@google.com>2016-07-07 12:25:33 -0700
commit62aa642d71bbbdc72dc01da4fb0416be550cd2e2 (patch)
tree896afef4241e120d73487e7f0b35aeb8afa65a73 /vp9/encoder/vp9_rdopt.c
parent541eb7899409914dd0c530bebb2307102f7694a8 (diff)
downloadlibvpx-62aa642d71bbbdc72dc01da4fb0416be550cd2e2.tar
libvpx-62aa642d71bbbdc72dc01da4fb0416be550cd2e2.tar.gz
libvpx-62aa642d71bbbdc72dc01da4fb0416be550cd2e2.tar.bz2
libvpx-62aa642d71bbbdc72dc01da4fb0416be550cd2e2.zip
Enable uniform quantization with trellis optimization in speed 0
This commit allows the inter prediction residual to use uniform quantization followed by trellis coefficient optimization in speed 0. It improves the coding performance by lowres 0.79% midres 1.07% hdres 1.44% Change-Id: I46ef8cfe042a4ccc7a0055515012cd6cbf5c9619
Diffstat (limited to 'vp9/encoder/vp9_rdopt.c')
-rw-r--r--vp9/encoder/vp9_rdopt.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index 18f51bfd1..b866dad7c 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -602,9 +602,9 @@ static void block_rd_txfm(int plane, int block, int blk_row, int blk_col,
return;
if (!is_inter_block(mi)) {
- struct encode_b_args arg = {x, NULL, &mi->skip};
+ struct encode_b_args intra_arg = {x, NULL, &mi->skip};
vp9_encode_block_intra(plane, block, blk_row, blk_col, plane_bsize, tx_size,
- &arg);
+ &intra_arg);
if (args->cpi->sf.txfm_domain_distortion) {
dist_block(args->cpi, x, plane, block, blk_row, blk_col, tx_size, &dist,
&sse);
@@ -635,6 +635,8 @@ static void block_rd_txfm(int plane, int block, int blk_row, int blk_col,
SKIP_TXFM_NONE) {
// full forward transform and quantization
vp9_xform_quant(x, plane, block, blk_row, blk_col, plane_bsize, tx_size);
+ if (args->cpi->sf.quant_coeff_opt)
+ vp9_optimize_b(x, plane, block, tx_size, coeff_ctx);
dist_block(args->cpi, x, plane, block, blk_row, blk_col, tx_size, &dist,
&sse);
} else if (x->skip_txfm[(plane << 2) + (block >> (tx_size << 1))] ==
@@ -668,6 +670,8 @@ static void block_rd_txfm(int plane, int block, int blk_row, int blk_col,
} else {
// full forward transform and quantization
vp9_xform_quant(x, plane, block, blk_row, blk_col, plane_bsize, tx_size);
+ if (args->cpi->sf.quant_coeff_opt)
+ vp9_optimize_b(x, plane, block, tx_size, coeff_ctx);
dist_block(args->cpi, x, plane, block, blk_row, blk_col, tx_size, &dist,
&sse);
}