summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodeframe.c
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2013-08-07 15:22:51 -0700
committerJingning Han <jingning@google.com>2013-08-07 15:34:12 -0700
commitdebb9c68c8ea92b80627138f95de901cb39cf8dc (patch)
tree1eb06ed815e98d120c2a7bdc1c5dd370c90d1eeb /vp9/encoder/vp9_encodeframe.c
parent78182538d64d2e919c2729fd7f10dd77ded27bec (diff)
downloadlibvpx-debb9c68c8ea92b80627138f95de901cb39cf8dc.tar
libvpx-debb9c68c8ea92b80627138f95de901cb39cf8dc.tar.gz
libvpx-debb9c68c8ea92b80627138f95de901cb39cf8dc.tar.bz2
libvpx-debb9c68c8ea92b80627138f95de901cb39cf8dc.zip
Use low precision 32x32fdct for encodemb in speed1
The low precision 32x32 fdct has all the intermediate steps within 16-bit depth, hence allowing faster SSE2 implementation, at the expense of larger round-trip error. It was used in the rate-distortion optimization search loop only. Using the low precision version, in replace of the high precision one, affects the compression performance by about 0.7% (derf, stdhd) at speed 0. For speed 1, it makes derf set down by only 0.017%. Change-Id: I4e7d18fac5bea5317b91c8e7dabae143bc6b5c8b
Diffstat (limited to 'vp9/encoder/vp9_encodeframe.c')
-rw-r--r--vp9/encoder/vp9_encodeframe.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c
index 82859c5d7..39ca5efc4 100644
--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -565,7 +565,7 @@ static void pick_sb_modes(VP9_COMP *cpi, int mi_row, int mi_col,
MACROBLOCK *const x = &cpi->mb;
MACROBLOCKD *const xd = &x->e_mbd;
- x->rd_search = 1;
+ x->use_lp32x32fdct = 1;
if (bsize < BLOCK_8X8) {
// When ab_index = 0 all sub-blocks are handled, so for ab_index != 0
@@ -2546,7 +2546,7 @@ static void encode_superblock(VP9_COMP *cpi, TOKENEXTRA **t, int output_enabled,
const int mis = cm->mode_info_stride;
const int mi_width = num_8x8_blocks_wide_lookup[bsize];
const int mi_height = num_8x8_blocks_high_lookup[bsize];
- x->rd_search = 0;
+ x->use_lp32x32fdct = cpi->sf.use_lp32x32fdct;
x->skip_encode = (!output_enabled && cpi->sf.skip_encode_frame &&
xd->q_index < QIDX_SKIP_THRESH);
if (x->skip_encode)