platform/upstream/libvpx.git
7 years agotiny_ssim: clean up on failure
Johann [Tue, 31 Jan 2017 23:58:43 +0000 (15:58 -0800)]
tiny_ssim: clean up on failure

Clears up clang static analysis warnings about memory leaks.

Change-Id: I60d4d0f3794735a8b81d9da4a30d19e7a9cba9cf

7 years agoReplace idct32x32_1024_add_ssse3 assembly with intrinsics
Yi Luo [Thu, 16 Feb 2017 21:15:22 +0000 (13:15 -0800)]
Replace idct32x32_1024_add_ssse3 assembly with intrinsics

- Encoding/decoding test, BQTerrace_1920x1080_60.y4m, on
  i7-6700, no obvious user-level speed performance downgrade.
- Passed unit tests.

Change-Id: I20688e0dd3731021ec8fb4404734336f1a426bfc

7 years agoMerge "cosmetics: Fix spelling mistake in compile flag name."
James Zern [Fri, 17 Feb 2017 00:04:42 +0000 (00:04 +0000)]
Merge "cosmetics: Fix spelling mistake in compile flag name."

7 years agoMerge "block error avx2: use tran_low_t"
Johann Koenig [Thu, 16 Feb 2017 23:51:14 +0000 (23:51 +0000)]
Merge "block error avx2: use tran_low_t"

7 years agoMerge "Fix mips vpx_post_proc_down_and_across_mb_row_msa function"
James Zern [Thu, 16 Feb 2017 23:02:10 +0000 (23:02 +0000)]
Merge "Fix mips vpx_post_proc_down_and_across_mb_row_msa function"

7 years agoMerge "disable VP9MultiThreadedFrameParallel tests"
James Zern [Thu, 16 Feb 2017 22:56:02 +0000 (22:56 +0000)]
Merge "disable VP9MultiThreadedFrameParallel tests"

7 years agocosmetics: Fix spelling mistake in compile flag name.
paulwilkins [Thu, 16 Feb 2017 12:36:56 +0000 (12:36 +0000)]
cosmetics: Fix spelling mistake in compile flag name.

agressive -> aggressive

after:
ce7b38459 Aggressive VBR method.

Change-Id: Ie0f30b1bbc77ed9f32bec047b4a9b3d0cf4853f5

7 years agoMerge "correct bitdepth_conversion_sse2.h header guard"
Johann Koenig [Thu, 16 Feb 2017 21:41:27 +0000 (21:41 +0000)]
Merge "correct bitdepth_conversion_sse2.h header guard"

7 years agodisable VP9MultiThreadedFrameParallel tests
James Zern [Thu, 16 Feb 2017 20:56:04 +0000 (12:56 -0800)]
disable VP9MultiThreadedFrameParallel tests

these are flaky and cause TSan warnings with clang-3.9.1

BUG=webm:1372

Change-Id: I8a7047552ba2ccd2d8c45f8795818c74562e5990

7 years agocorrect bitdepth_conversion_sse2.h header guard
Johann [Thu, 16 Feb 2017 20:43:33 +0000 (12:43 -0800)]
correct bitdepth_conversion_sse2.h header guard

Change-Id: Ic4ffd861608e67fe59bcb3a86010ce3ef11a5519

7 years agoMerge "Add idct32x32_135_add SSSE3 intrinsics"
Yi Luo [Thu, 16 Feb 2017 20:43:28 +0000 (20:43 +0000)]
Merge "Add idct32x32_135_add SSSE3 intrinsics"

7 years agoblock error avx2: use tran_low_t
Johann [Thu, 16 Feb 2017 19:12:31 +0000 (11:12 -0800)]
block error avx2: use tran_low_t

Change-Id: Ic5f3a1f569d6f82afeaf4fcd7235374bb460db3c

7 years agoMerge changes I267050a5,Iebade0ef,Id96a8df3
Johann Koenig [Thu, 16 Feb 2017 20:34:48 +0000 (20:34 +0000)]
Merge changes I267050a5,Iebade0ef,Id96a8df3

* changes:
  quantize_fp_32x32 highbd ssse3: enable existing function
  quantize_fp highbd ssse3: use tran_low_t for coeff
  quantize_fp highbd sse2: use tran_low_t for coeff

7 years agoAdd idct32x32_135_add SSSE3 intrinsics
Yi Luo [Wed, 15 Feb 2017 01:09:59 +0000 (17:09 -0800)]
Add idct32x32_135_add SSSE3 intrinsics

- Replace the corresponding assembly code.
- No user level speed performance degrade.
- Unit tests passed.

Change-Id: Idd0c5a4bad4976f1617c34100cb46e75e3b961e5

7 years agoMerge "Structured the mode ordering code to avoid redundant memcpy"
Yunqing Wang [Thu, 16 Feb 2017 16:22:54 +0000 (16:22 +0000)]
Merge "Structured the mode ordering code to avoid redundant memcpy"

7 years agoquantize_fp_32x32 highbd ssse3: enable existing function
Johann [Thu, 16 Feb 2017 15:29:32 +0000 (07:29 -0800)]
quantize_fp_32x32 highbd ssse3: enable existing function

This was created as part of the quantize_fp_ssse3 change. Both
functions use the same source file with different macro parameters.

Change-Id: I267050a559426a85955d215aa0aaca270439c5ab

7 years agoquantize_fp highbd ssse3: use tran_low_t for coeff
Johann [Thu, 16 Feb 2017 03:01:38 +0000 (19:01 -0800)]
quantize_fp highbd ssse3: use tran_low_t for coeff

Change-Id: Iebade0efc0efbb0a80a0f3adbef4962e3a2f25e8

7 years agoquantize_fp highbd sse2: use tran_low_t for coeff
Johann [Fri, 3 Feb 2017 23:57:28 +0000 (15:57 -0800)]
quantize_fp highbd sse2: use tran_low_t for coeff

Change-Id: Id96a8df33354a7987ce890a3d6798c7375ffa4aa

7 years agobitdepth conversion: really use num elements
Johann [Thu, 16 Feb 2017 01:17:45 +0000 (17:17 -0800)]
bitdepth conversion: really use num elements

The previous implementation confused bit/bytes/elements. It was using
'32' as the multiplier but that was mistakenly adopted because a 32x32
transform embedded the stride.

Change-Id: Ieeb867a332416b9a40580b5e7c9b20088e9e691a

7 years agoStructured the mode ordering code to avoid redundant memcpy
Ranjit Kumar Tulabandu [Thu, 16 Feb 2017 14:07:39 +0000 (19:37 +0530)]
Structured the mode ordering code to avoid redundant memcpy

Change-Id: I4f5d6b54018bd1928cd9e5e42619e6f55b334803

7 years agoMerge "Disconnect ARF breakout from frame boost."
Paul Wilkins [Thu, 16 Feb 2017 10:02:09 +0000 (10:02 +0000)]
Merge "Disconnect ARF breakout from frame boost."

7 years agoMerge "Remove unnecessary factor."
Paul Wilkins [Thu, 16 Feb 2017 10:01:57 +0000 (10:01 +0000)]
Merge "Remove unnecessary factor."

7 years agoMerge "Bug in scale_sse_threshold()"
Paul Wilkins [Thu, 16 Feb 2017 10:01:45 +0000 (10:01 +0000)]
Merge "Bug in scale_sse_threshold()"

7 years agoMerge "Additional first pass stats."
Paul Wilkins [Thu, 16 Feb 2017 09:39:29 +0000 (09:39 +0000)]
Merge "Additional first pass stats."

7 years agoFix mips vpx_post_proc_down_and_across_mb_row_msa function
Kaustubh Raste [Thu, 16 Feb 2017 06:42:24 +0000 (12:12 +0530)]
Fix mips vpx_post_proc_down_and_across_mb_row_msa function

Added fix to handle non-multiple of 16 cols case for size 16

Change-Id: If3a6d772d112077c5e0a9be9e612e1148f04338c

7 years agoMerge "Use 'packssdw' for loading tran_low_t values"
Johann Koenig [Thu, 16 Feb 2017 02:40:59 +0000 (02:40 +0000)]
Merge "Use 'packssdw' for loading tran_low_t values"

7 years agoMerge "vp8_dx_iface: remove unused 'else' condition"
Johann Koenig [Thu, 16 Feb 2017 01:00:44 +0000 (01:00 +0000)]
Merge "vp8_dx_iface: remove unused 'else' condition"

7 years agoMerge "vpx_temporal_svc_encoder.sh: remove FUNCNAME bashism"
James Zern [Thu, 16 Feb 2017 00:21:19 +0000 (00:21 +0000)]
Merge "vpx_temporal_svc_encoder.sh: remove FUNCNAME bashism"

7 years agoMerge "vp9: Some code cleanup for aq-mode = 3."
Marco Paniconi [Wed, 15 Feb 2017 23:03:27 +0000 (23:03 +0000)]
Merge "vp9: Some code cleanup for aq-mode = 3."

7 years agovp9: Some code cleanup for aq-mode = 3.
Marco [Wed, 15 Feb 2017 21:51:14 +0000 (13:51 -0800)]
vp9: Some code cleanup for aq-mode = 3.

The weight segment needs to only be computed once per frame,
so remove it from the funciton vp9_cyclic_refresh_rc_bits_per_mb(),
which is called within a loop inside vp9_rc_regulate_q.

Change-Id: Ia0e18b89abb97e42c466d4dbc47700d7f76555db

7 years agovpx_temporal_svc_encoder: Expose error resilient control to cmd line.
Jerome Jiang [Wed, 15 Feb 2017 03:09:15 +0000 (19:09 -0800)]
vpx_temporal_svc_encoder: Expose error resilient control to cmd line.

Change-Id: Ic74a8690b136ffbc370080f70b2d5a6b1572bf63

7 years agoMerge "cosmetics,dsp/inv_txfm.c: reorder functions"
Linfeng Zhang [Wed, 15 Feb 2017 20:18:23 +0000 (20:18 +0000)]
Merge "cosmetics,dsp/inv_txfm.c: reorder functions"

7 years agoMerge "vp9. Use same source_sad threshold for all speeds."
Marco Paniconi [Wed, 15 Feb 2017 20:07:19 +0000 (20:07 +0000)]
Merge "vp9. Use same source_sad threshold for all speeds."

7 years agocosmetics,dsp/inv_txfm.c: reorder functions
Linfeng Zhang [Wed, 15 Feb 2017 00:27:30 +0000 (16:27 -0800)]
cosmetics,dsp/inv_txfm.c: reorder functions

Change-Id: Ie0f7689ebe230c68eadb22a32b14838c1a7543a6

7 years agoMerge "Add vpx_highbd_idct16x16_38_add_neon()"
Linfeng Zhang [Wed, 15 Feb 2017 19:34:18 +0000 (19:34 +0000)]
Merge "Add vpx_highbd_idct16x16_38_add_neon()"

7 years agovp9. Use same source_sad threshold for all speeds.
Marco [Wed, 15 Feb 2017 19:26:29 +0000 (11:26 -0800)]
vp9. Use same source_sad threshold for all speeds.

Only affects real-time mode.

Change-Id: Iba836f110c4da936f5173cc0f54424d5b6121bff

7 years agoVp9: Speed 8 aq-mode=3: Reduce computation in estimating bits per mb.
Marco [Wed, 15 Feb 2017 17:18:34 +0000 (09:18 -0800)]
Vp9: Speed 8 aq-mode=3: Reduce computation in estimating bits per mb.

vp9_compute_qdelta_by_rate has almost 2% overhead in profiling on Nexus 6.
Reduce the calling of that function in speed 8 by estimating the delta-q.
Both rtc and rtc_derf show little/no change in avg psnr/ssim.
Encoding speed is 2~3% faster on Nexus 6.

Change-Id: If25933715783f31104a18a5092ea347b1221b5f5

7 years agoAdd vpx_highbd_idct16x16_38_add_neon()
Linfeng Zhang [Wed, 8 Feb 2017 00:58:12 +0000 (16:58 -0800)]
Add vpx_highbd_idct16x16_38_add_neon()

BUG=webm:1301

Change-Id: Ic6cd8c1e63e1b7a997cbed221e20fff4c599e0fe

7 years agoMerge "Add vpx_highbd_idct16x16_38_add_c()"
Linfeng Zhang [Wed, 15 Feb 2017 17:06:16 +0000 (17:06 +0000)]
Merge "Add vpx_highbd_idct16x16_38_add_c()"

7 years agoDisconnect ARF breakout from frame boost.
paulwilkins [Wed, 15 Feb 2017 10:33:10 +0000 (10:33 +0000)]
Disconnect ARF breakout from frame boost.

This small change replaces the frame boost check in the arf group
length break out clause with a test against a prediction decay value.

The boost value is in fact partly dependent on the decay value but
this change means that the per frame boost calculation can be adjusted
without influencing the group length calculation.

The value chosen gives a close match on all the test sets with the previous
code (on average) but it was noted that a lower threshold was slightly better
for 1080P and up and a slightly higher value for small image sizes.

Change-Id: I4d5b9f67d5b17b0d99ea3f796d3d6202fd61ee0c

7 years agoRemove unnecessary factor.
paulwilkins [Tue, 14 Feb 2017 10:35:12 +0000 (10:35 +0000)]
Remove unnecessary factor.

Removed unnecessary scaling factor to simplify.

Change-Id: I3fc9c5975a2597e72f1324e09dd586dea1facfa7

7 years agoBug in scale_sse_threshold()
paulwilkins [Thu, 9 Feb 2017 16:30:38 +0000 (16:30 +0000)]
Bug in scale_sse_threshold()

The function scale_sse_threshold() returns a threshold scaled
if necessary for use with 10 and 12 bit from an 8 bit baseline.

SSE error values would be expected to rise for the 10 and 12
bit cases where there are more bits of precision.

Hence the threshold used for the test should also be scaled up.

Change-Id: I4009c98b6eecd1bf64c3c38aaa56598e0136b03d

7 years agoAdditional first pass stats.
paulwilkins [Mon, 12 Dec 2016 14:05:19 +0000 (14:05 +0000)]
Additional first pass stats.

Added counts that split the intra coded blocks into low and high variance.

Change-Id: Ic540144b34d5141659081bb22f7ee16fd6861f14

7 years agoMerge "Aggressive VBR method."
Paul Wilkins [Wed, 15 Feb 2017 10:37:02 +0000 (10:37 +0000)]
Merge "Aggressive VBR method."

7 years agovpx_temporal_svc_encoder.sh: remove FUNCNAME bashism
James Zern [Wed, 15 Feb 2017 07:44:00 +0000 (23:44 -0800)]
vpx_temporal_svc_encoder.sh: remove FUNCNAME bashism

replace with an explicit output file prefix that matches the function
name

Change-Id: I7f6a4105adb34327b1099a5fbf132aa8d1ad5b90

7 years agoMerge "vp9 fdct higbd neon: connect existing highbd calls"
Johann Koenig [Wed, 15 Feb 2017 01:33:00 +0000 (01:33 +0000)]
Merge "vp9 fdct higbd neon: connect existing highbd calls"

7 years agoAdd vpx_highbd_idct16x16_38_add_c()
Linfeng Zhang [Tue, 14 Feb 2017 23:39:37 +0000 (15:39 -0800)]
Add vpx_highbd_idct16x16_38_add_c()

When eob is less than or equal to 38 for high-bitdepth 16x16 idct,
call this function.

BUG=webm:1301

Change-Id: I09167f89d29c401f9c36710b0fd2d02644052060

7 years agoMerge "Row based multi-threading of encoding stage"
Yunqing Wang [Wed, 15 Feb 2017 00:54:10 +0000 (00:54 +0000)]
Merge "Row based multi-threading of encoding stage"

7 years agoRow based multi-threading of encoding stage
Ranjit Kumar Tulabandu [Fri, 10 Feb 2017 10:55:50 +0000 (16:25 +0530)]
Row based multi-threading of encoding stage

(Yunqing Wang)
This patch implements the row-based multi-threading within tiles in
the encoding pass, and substantially speeds up the multi-threaded
encoder in VP9.

Speed tests at speed 1 on STDHD(using 4 tiles) set show that the
average speedups of the encoding pass(second pass in the 2-pass
encoding) is 7% while using 2 threads, 16% while using 4 threads,
85% while using 8 threads, and 116% while using 16 threads.

Change-Id: I12e41dbc171951958af9e6d098efd6e2c82827de

7 years agoMerge "Replace 14 with DCT_CONST_BITS in idct NEON functions' shifts"
Linfeng Zhang [Wed, 15 Feb 2017 00:46:29 +0000 (00:46 +0000)]
Merge "Replace 14 with DCT_CONST_BITS in idct NEON functions' shifts"

7 years agovp8_dx_iface: remove unused 'else' condition
Johann [Tue, 31 Jan 2017 23:40:58 +0000 (15:40 -0800)]
vp8_dx_iface: remove unused 'else' condition

Clears up static clang analysis warning regarding a dead store.

Change-Id: If4fe7a9a7f94c6e2001d46136944f90712e543b4

7 years agoUse 'packssdw' for loading tran_low_t values
Johann [Tue, 14 Feb 2017 22:26:09 +0000 (14:26 -0800)]
Use 'packssdw' for loading tran_low_t values

This matches bitdepth_conversion_sse2.asm and produces substantially
better assembly. The old way had lots of 'movzwl' and 'shl' and storing
back to memory before loading into an xmm register.

Change-Id: Ib33e35354dfd691a4f8b1e39f4dbcbb14cd5302b

7 years agovp9 fdct higbd neon: connect existing highbd calls
Johann [Fri, 3 Feb 2017 23:25:50 +0000 (15:25 -0800)]
vp9 fdct higbd neon: connect existing highbd calls

Change-Id: Ia8f822bd6e70b3911bc433a5a750bfb6f9a3a75c

7 years agoMerge "quantize_fp highbd neon: use tran_low_t for coeff"
Johann Koenig [Tue, 14 Feb 2017 21:28:22 +0000 (21:28 +0000)]
Merge "quantize_fp highbd neon: use tran_low_t for coeff"

7 years agoReplace 14 with DCT_CONST_BITS in idct NEON functions' shifts
Linfeng Zhang [Tue, 14 Feb 2017 20:44:57 +0000 (12:44 -0800)]
Replace 14 with DCT_CONST_BITS in idct NEON functions' shifts

Change-Id: I2a39a3bb87516b04d273bc1c0f4a634e3fb6f0f6

7 years agoapply clang-format
clang-format [Tue, 14 Feb 2017 04:06:18 +0000 (20:06 -0800)]
apply clang-format

Change-Id: I75e4a9e0b37bd4586f26c8d6c1fa27f3f6ff1bce

7 years ago.clang-format: update to 3.9.1
James Zern [Wed, 1 Feb 2017 02:06:43 +0000 (18:06 -0800)]
.clang-format: update to 3.9.1

Change-Id: Ia51f2201df897651067d09122075953382b59139

7 years agoMerge "Replace idct32x32_34_add_ssse3 assembly with intrinsics"
Yi Luo [Tue, 14 Feb 2017 20:13:26 +0000 (20:13 +0000)]
Merge "Replace idct32x32_34_add_ssse3 assembly with intrinsics"

7 years agoReplace idct32x32_34_add_ssse3 assembly with intrinsics
Yi Luo [Wed, 8 Feb 2017 19:09:03 +0000 (11:09 -0800)]
Replace idct32x32_34_add_ssse3 assembly with intrinsics

- No user-level speed performance change.
- Pass unit tests.

Change-Id: Idfc598e00f354265e41f6b3219f4734216c115c6

7 years agoquantize_fp highbd neon: use tran_low_t for coeff
Johann [Fri, 3 Feb 2017 22:24:32 +0000 (14:24 -0800)]
quantize_fp highbd neon: use tran_low_t for coeff

Change-Id: I90fd815f15884490ad138f35df575a00d31e8c95

7 years agovp8 onyx_if: assert divide by zero
Johann [Tue, 31 Jan 2017 23:51:15 +0000 (15:51 -0800)]
vp8 onyx_if: assert divide by zero

Clears up static clang analysis warning regarding divide by zero.

Trying to explain to the compiler how it's impossible to avoid
incrementing num_blocks at least once is difficult.

Change-Id: Ibaae43be572e5cd7a689b440dcd341c17d33443b

7 years agoMerge "Remove UNINITIALIZED_IS_SAFE"
Johann Koenig [Tue, 14 Feb 2017 03:02:50 +0000 (03:02 +0000)]
Merge "Remove UNINITIALIZED_IS_SAFE"

7 years agoMerge "Add vpx_highbd_idct16x16_256_add_neon()"
Linfeng Zhang [Tue, 14 Feb 2017 01:15:34 +0000 (01:15 +0000)]
Merge "Add vpx_highbd_idct16x16_256_add_neon()"

7 years agoRemove UNINITIALIZED_IS_SAFE
Johann [Tue, 31 Jan 2017 23:18:40 +0000 (15:18 -0800)]
Remove UNINITIALIZED_IS_SAFE

Where clang static analysis or gcc -Wmaybe-uninitialized warns of
uninitialized values, assign 0 to ints, MB_MODE_COUNT to
MB_PREDICTION_MODE, and B_MODE_COUNT to B_PREDICTION_MODE.

Assert that the modes have been changed from the invalid value by
the end of the function.

Change-Id: Ib11e1ffb08f0a6fe4b6c6729dc93b83b1c4b6350

7 years agoAdd vpx_highbd_idct16x16_256_add_neon()
Linfeng Zhang [Thu, 2 Feb 2017 00:32:57 +0000 (16:32 -0800)]
Add vpx_highbd_idct16x16_256_add_neon()

BUG=webm:1301

Change-Id: I6bb755552a39bdd26eef3f449601f6a9766c65ec

7 years agoMerge "fdct8x8 highbd neon: use tran_low_t for output"
Johann Koenig [Mon, 13 Feb 2017 23:11:30 +0000 (23:11 +0000)]
Merge "fdct8x8 highbd neon: use tran_low_t for output"

7 years agofdct8x8 highbd neon: use tran_low_t for output
Johann [Fri, 3 Feb 2017 23:14:06 +0000 (15:14 -0800)]
fdct8x8 highbd neon: use tran_low_t for output

Change-Id: I100c4a1955d80bec4d28e82796b3e7f57e84d0ba

7 years agoThe bitstream bit match test in multi-threaded encoder
Yunqing Wang [Mon, 13 Feb 2017 20:29:31 +0000 (12:29 -0800)]
The bitstream bit match test in multi-threaded encoder

While the new-mt mode is enabled(namely, allowing to use row-based
multi-threading in encoder), several speed features that adaptively
adjust encoding parameters during encoding would cause mismatch
between single-thread encoded bitstream and multi-thread encoded
bitstream. This patch provides a set_control API to disable these
features, so that the bit match bitstream is obtained in the unit
test.

Change-Id: Ie9868bafdfe196296d1dd29e0dca517f6a9a4d60

7 years agoMerge "Minor code style refactoring"
Yunqing Wang [Mon, 13 Feb 2017 21:01:41 +0000 (21:01 +0000)]
Merge "Minor code style refactoring"

7 years agoMerge "cosmetics,vp9_ratectrl: apply clang-format"
James Zern [Mon, 13 Feb 2017 21:01:18 +0000 (21:01 +0000)]
Merge "cosmetics,vp9_ratectrl: apply clang-format"

7 years agoMerge "vpx_usec_timer_elapsed: use 64-bit math"
James Zern [Mon, 13 Feb 2017 21:00:33 +0000 (21:00 +0000)]
Merge "vpx_usec_timer_elapsed: use 64-bit math"

7 years agoMinor code style refactoring
Yunqing Wang [Mon, 13 Feb 2017 20:59:01 +0000 (12:59 -0800)]
Minor code style refactoring

Change-Id: I20107693d0a87e08a10520bfb573ff3dcef69fdb

7 years agocosmetics,vp9_ratectrl: apply clang-format
James Zern [Mon, 13 Feb 2017 19:29:39 +0000 (11:29 -0800)]
cosmetics,vp9_ratectrl: apply clang-format

broken since:
c3f095c8b Merge "Fix to avoid abrupt relaxation of max qindex in recode path"
5f21aba4b Fix to avoid abrupt relaxation of max qindex in recode path

the original change pre-dated the addition of .clang-format

Change-Id: If5e399d9a805bcad9147360b13b36fbc8c560a7c

7 years agoAdd vpx_highbd_idct{16x16,32x32}_1_add_neon()
Linfeng Zhang [Fri, 13 Jan 2017 18:01:51 +0000 (10:01 -0800)]
Add vpx_highbd_idct{16x16,32x32}_1_add_neon()

and update vpx_highbd_idct8x8_1_add_neon()

BUG=webm:1301

Change-Id: I18d1a0cbe98ba822d5194c1b4e13a4c29c5c75f4

7 years agoAggressive VBR method.
paulwilkins [Thu, 5 Jan 2017 12:35:53 +0000 (12:35 +0000)]
Aggressive VBR method.

VBR method that allows a wider Q range for the first normal frame
in each ARF group and then centers the min - max range for the rest of
the arf group on the chosen Q value for that first frame.

This allows for quite rapid adjustment of the active Q range even if the
initial estimate is poor.

In some cases where the ARF frames themselves are tending to
undershoot but the normal frames are overshooting this can still give
net undershoot. This can be corrected by allowing a larger Q delta for
arf frames but is usually is a sign that the allocation to the arfs was to
high.

Change-Id: Icec87758925d8f7aeb2dca29aac0ff9496237469

7 years agoMerge "Add vpx_idct16x16_38_add_neon()"
James Zern [Sat, 11 Feb 2017 03:42:35 +0000 (03:42 +0000)]
Merge "Add vpx_idct16x16_38_add_neon()"

7 years agovp9: Non-rd mode: use simple block_yrd for 8 bit high bitdepth builds
Marco [Tue, 7 Feb 2017 19:46:36 +0000 (11:46 -0800)]
vp9: Non-rd mode: use simple block_yrd for 8 bit high bitdepth builds

Temporary fix until optimization work for block_yrd is completed.
This essentially reverts back to the state before the change:
https://chromium-review.googlesource.com/c/433821/

Compression loss is about ~5-6% on RTC set.
Speed-up (from using this simple/model-based block_yrd) over the low
bitdepth builds (which uses more complex block_yrd) is ~5% on 720p.

Change-Id: Ie0af9eb0d111e5595f587870c44f08317403b8d8

7 years agovpx_usec_timer_elapsed: use 64-bit math
James Zern [Fri, 10 Feb 2017 03:28:59 +0000 (19:28 -0800)]
vpx_usec_timer_elapsed: use 64-bit math

this prevents a rollover when tv_sec is a long:
signed integer overflow: 2776 * 1000000 cannot be represented in type
'long'

Change-Id: I03dc4476ee122b02e2856dad28358a20cf16a9f8

7 years agoMerge "Fix to avoid abrupt relaxation of max qindex in recode path"
Paul Wilkins [Thu, 9 Feb 2017 17:17:55 +0000 (17:17 +0000)]
Merge "Fix to avoid abrupt relaxation of max qindex in recode path"

7 years agoMerge "Fix for max qindex calculation of a gf interval"
Paul Wilkins [Thu, 9 Feb 2017 17:17:44 +0000 (17:17 +0000)]
Merge "Fix for max qindex calculation of a gf interval"

7 years agoAdd vpx_idct16x16_38_add_neon()
Linfeng Zhang [Tue, 7 Feb 2017 18:06:21 +0000 (10:06 -0800)]
Add vpx_idct16x16_38_add_neon()

The RunQuantCheck() test on it exposes 16-bit overflow in stage 7 of
pass 2. Change to use saturating add/sub for both
vpx_idct16x16_38_add_neon() and vpx_idct16x16_256_add_neon() for high
bitdepth.

Change-Id: Ibf4c107a887553a52852cc582e28d38a5a5a2712

7 years agoReplace idct8x8_12_add_ssse3 assembly code with intrinsics
Yi Luo [Wed, 8 Feb 2017 00:40:10 +0000 (16:40 -0800)]
Replace idct8x8_12_add_ssse3 assembly code with intrinsics

- Performance achieves the same as assembly.
- Unit tests pass.

Change-Id: I6eacfbbd826b3946c724d78fbef7948af6406ccd

7 years agoMerge "Add vpx_idct16x16_38_add_c()"
Linfeng Zhang [Wed, 8 Feb 2017 17:20:19 +0000 (17:20 +0000)]
Merge "Add vpx_idct16x16_38_add_c()"

7 years agoMerge "block_error_fp highbd sse2: use tran_low_t for coeff"
Johann Koenig [Tue, 7 Feb 2017 23:26:09 +0000 (23:26 +0000)]
Merge "block_error_fp highbd sse2: use tran_low_t for coeff"

7 years agoMerge "vp9: Denoiser speed-up: increase partition and ac skip thresholds."
Marco Paniconi [Tue, 7 Feb 2017 22:24:59 +0000 (22:24 +0000)]
Merge "vp9: Denoiser speed-up: increase partition and ac skip thresholds."

7 years agoMerge "Row based multi-threading of ARNR filtering stage"
Yunqing Wang [Tue, 7 Feb 2017 19:55:40 +0000 (19:55 +0000)]
Merge "Row based multi-threading of ARNR filtering stage"

7 years agoMerge "vp9: Adjust rate_err threshold for setting active_worst factor."
Marco Paniconi [Tue, 7 Feb 2017 19:25:47 +0000 (19:25 +0000)]
Merge "vp9: Adjust rate_err threshold for setting active_worst factor."

7 years agovp9: Denoiser speed-up: increase partition and ac skip thresholds.
Marco [Tue, 7 Feb 2017 01:02:28 +0000 (17:02 -0800)]
vp9: Denoiser speed-up: increase partition and ac skip thresholds.

Add factor to increase varianace partition and ac skip thresholds,
under certain conditions (noise level and sum_diff), to increase
denoiser speed.

Change-Id: I7671140ef3598bf5f114a72623d68792bcd7b77b

7 years agoAdd vpx_idct16x16_38_add_c()
Linfeng Zhang [Wed, 11 Jan 2017 20:22:37 +0000 (12:22 -0800)]
Add vpx_idct16x16_38_add_c()

When eob is less than or equal to 38 for 16x16 idct, call this function.

Change-Id: Ief6f3fb16a49ace3c92cebf4e220bf5bf52a6087

7 years agovp9: Adjust rate_err threshold for setting active_worst factor.
Marco [Tue, 7 Feb 2017 17:35:56 +0000 (09:35 -0800)]
vp9: Adjust rate_err threshold for setting active_worst factor.

Only affects 1 pass vbr.
Small improvement on ytlive set.

Change-Id: I09a7456fe658fbea82ece1035cf683bd8bd8bd14

7 years agoMerge "Update 16x16 8-bit idct NEON intrinsics"
Linfeng Zhang [Tue, 7 Feb 2017 16:52:39 +0000 (16:52 +0000)]
Merge "Update 16x16 8-bit idct NEON intrinsics"

7 years agoblock_error_fp highbd sse2: use tran_low_t for coeff
Johann [Thu, 2 Feb 2017 23:28:16 +0000 (15:28 -0800)]
block_error_fp highbd sse2: use tran_low_t for coeff

BUG=webm:1365

Change-Id: Id2ed3ebaaaa6a4b68628c23e08b64ea5f1341761

7 years agoRow based multi-threading of ARNR filtering stage
Ranjit Kumar Tulabandu [Mon, 6 Feb 2017 13:44:16 +0000 (19:14 +0530)]
Row based multi-threading of ARNR filtering stage

Change-Id: Ic238d32c7e10b730342224ab56712a89a6026a8f

7 years agoMerge "highbd x86: consolidate tran_low_t conversions"
Johann Koenig [Tue, 7 Feb 2017 02:49:58 +0000 (02:49 +0000)]
Merge "highbd x86: consolidate tran_low_t conversions"

7 years agovp9: speed 8: Tune threshold of ac skip and partitioning.
Jerome Jiang [Fri, 3 Feb 2017 01:51:01 +0000 (17:51 -0800)]
vp9: speed 8: Tune threshold of ac skip and partitioning.

Threshold for partitioning only affects VGA and lower res.
0.07% quality regression is observed in borg tests on rtc_derf
and 0.2% regression on rtc.
5.6% speed up for low res and 6.8% for VGA on Nexus 6.

Change-Id: If85a2919b48c991de66059c90f32ed06980452be

7 years agohighbd x86: consolidate tran_low_t conversions
Johann [Thu, 2 Feb 2017 22:17:26 +0000 (14:17 -0800)]
highbd x86: consolidate tran_low_t conversions

Create new helper files specifically for converting tran_low_t types.

Change-Id: I7c4c458ef910f3b3d10a3cfbf9df4de7682fd905

7 years agoMerge "Changes to facilitate multi-threading of encoding stage"
Yunqing Wang [Sat, 4 Feb 2017 01:02:29 +0000 (01:02 +0000)]
Merge "Changes to facilitate multi-threading of encoding stage"

7 years agoFix visual studio build failure
Yunqing Wang [Fri, 3 Feb 2017 16:29:21 +0000 (08:29 -0800)]
Fix visual studio build failure

Fixed the following issue.
..\test\vp9_ethread_test.cc(69): warning C4805: '|=' : unsafe mix of type 'bool' and type 'int' in operation [C:\src\buildbot\test-libvpx\tests\dveCPjwhBE\.build-x86_64-win64-vs10\test_libvpx.vcxproj]
..\test\vp9_ethread_test.cc(69): warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning) [C:\src\buildbot\test-libvpx\tests\dveCPjwhBE\.build-x86_64-win64-vs10\test_libvpx.vcxproj]

Change-Id: I37f897cf12a0b7500d2fcbac9e4615f08a83fdb4

7 years agoMerge "Add unit tests for vp9_block_error_fp."
Jerome Jiang [Thu, 2 Feb 2017 22:20:42 +0000 (22:20 +0000)]
Merge "Add unit tests for vp9_block_error_fp."

7 years agoMerge "Add SSSE3 intrinsic 8x8 inverse 2D-DCT"
Jingning Han [Thu, 2 Feb 2017 22:18:31 +0000 (22:18 +0000)]
Merge "Add SSSE3 intrinsic 8x8 inverse 2D-DCT"