diff options
author | Jingning Han <jingning@google.com> | 2013-08-07 15:22:51 -0700 |
---|---|---|
committer | Jingning Han <jingning@google.com> | 2013-08-07 15:34:12 -0700 |
commit | debb9c68c8ea92b80627138f95de901cb39cf8dc (patch) | |
tree | 1eb06ed815e98d120c2a7bdc1c5dd370c90d1eeb /vp9/encoder/vp9_encodeframe.c | |
parent | 78182538d64d2e919c2729fd7f10dd77ded27bec (diff) | |
download | libvpx-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.c | 4 |
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) |