platform/upstream/libvpx.git
8 years agoSSE2 speed up of h_predictor_4x4
Jian Zhou [Tue, 24 Nov 2015 20:16:05 +0000 (12:16 -0800)]
SSE2 speed up of  h_predictor_4x4

Relocate h_predictor_4x4 from SSSE3 to SSE2 with XMM registers.
Speed up by ~25% in ./test_intra_pred_speed.

Change-Id: I64e14c13b482a471449be3559bfb0da45cf88d9d

8 years agoMerge "vp9 non-rd pickmode: Fix logic in reference masking."
Marco Paniconi [Tue, 24 Nov 2015 19:14:35 +0000 (19:14 +0000)]
Merge "vp9 non-rd pickmode: Fix logic in reference masking."

8 years agoMerge "bitreader/writer: Change shift to signed"
Alex Converse [Tue, 24 Nov 2015 18:33:45 +0000 (18:33 +0000)]
Merge "bitreader/writer: Change shift to signed"

8 years agoMerge "Deduplicate some high bit depth tables"
Alex Converse [Tue, 24 Nov 2015 18:24:32 +0000 (18:24 +0000)]
Merge "Deduplicate some high bit depth tables"

8 years agovp9 non-rd pickmode: Fix logic in reference masking.
Marco [Tue, 24 Nov 2015 00:37:12 +0000 (16:37 -0800)]
vp9 non-rd pickmode: Fix logic in reference masking.

This change makes sure last reference with zero mv
is always checked for mode selection.

No change in metrics.

Change-Id: Iaf01877bf34272b966c78bfe18daad882a0a419e

8 years agoMerge "VPX: Removed unnecessary pmulhrsw in IDCT32X32_34"
Scott LaVarnway [Mon, 23 Nov 2015 23:37:13 +0000 (23:37 +0000)]
Merge "VPX: Removed unnecessary pmulhrsw in IDCT32X32_34"

8 years agoMerge "VP9: Only zero counts when !frame_parallel_decoding_mode (2)"
Scott LaVarnway [Mon, 23 Nov 2015 23:36:46 +0000 (23:36 +0000)]
Merge "VP9: Only zero counts when !frame_parallel_decoding_mode (2)"

8 years agoVP9: Only zero counts when !frame_parallel_decoding_mode (2)
Scott LaVarnway [Mon, 23 Nov 2015 22:42:15 +0000 (14:42 -0800)]
VP9: Only zero counts when !frame_parallel_decoding_mode (2)

The counts are never used when frame_parallel_decoding_mode
is set.

Change-Id: I293aa68abadcdd30973adacb9f5f5a3aecf8daa2

8 years agovp9-svc: Fix to allow setting qp-max/min per spatial and temporal layer.
Marco [Fri, 20 Nov 2015 18:12:11 +0000 (10:12 -0800)]
vp9-svc: Fix to allow setting qp-max/min per spatial and temporal layer.

Change-Id: Ic0ec32c1d7f7c08c9f956592dccbfd9060b1f624

8 years agoVPX: Removed unnecessary pmulhrsw in IDCT32X32_34
Scott LaVarnway [Mon, 23 Nov 2015 18:24:09 +0000 (10:24 -0800)]
VPX: Removed unnecessary pmulhrsw in IDCT32X32_34

and fixed macro name.

Change-Id: I306b98a2b4ec80b130ae80290b4cd9c7a5363311

8 years agoRevert "Speed up h_predictor_4x4"
James Zern [Sat, 21 Nov 2015 06:24:11 +0000 (22:24 -0800)]
Revert "Speed up h_predictor_4x4"

This reverts commit d76032ae87e535be5b924d9e88bbd67189380534.

breaks 32-bit builds

Change-Id: If6266ec2a405b5a21d615112f0f37e8a71193858

8 years agoMerge "Use Interlocked calls in win32 once() implementation."
James Zern [Sat, 21 Nov 2015 01:40:11 +0000 (01:40 +0000)]
Merge "Use Interlocked calls in win32 once() implementation."

8 years agoMerge "Speed up h_predictor_4x4"
James Zern [Sat, 21 Nov 2015 01:12:42 +0000 (01:12 +0000)]
Merge "Speed up h_predictor_4x4"

8 years agovp9 denoiser: Bias to last reference for temporal filter.
Marco [Thu, 19 Nov 2015 01:04:15 +0000 (17:04 -0800)]
vp9 denoiser: Bias to last reference for temporal filter.

Change-Id: I6a360a12e8da8cdcb8a779647512591612d64f31

8 years agoMerge "vp9-svc: Fix the setting of is_key_frame."
Marco Paniconi [Fri, 20 Nov 2015 18:29:15 +0000 (18:29 +0000)]
Merge "vp9-svc: Fix the setting of is_key_frame."

8 years agoMerge "Fix a signed shift overflow in vpx_rb_read_inv_signed_literal."
Alex Converse [Fri, 20 Nov 2015 17:42:05 +0000 (17:42 +0000)]
Merge "Fix a signed shift overflow in vpx_rb_read_inv_signed_literal."

8 years agoMerge "Fix unsigned overflow in rd_variance_adjustment."
Alex Converse [Fri, 20 Nov 2015 17:41:58 +0000 (17:41 +0000)]
Merge "Fix unsigned overflow in rd_variance_adjustment."

8 years agovp9-svc: Fix the setting of is_key_frame.
Marco [Fri, 20 Nov 2015 16:44:19 +0000 (08:44 -0800)]
vp9-svc: Fix the setting of is_key_frame.

Change on affects 1 pass CBR.
On key frame, temporal layer_id is reset to 0 for 1 pass CBR,
but since "layer" is reset, the svc.layer_context[layer].is_key_frame
was not correspondingly set properly.

Change-Id: I08f6da0a55ac7429ccfbaddfb7be14479e43543b

8 years agoMerge "VPX: x86 asm version of vpx_idct32x32_34_add()"
Scott LaVarnway [Fri, 20 Nov 2015 15:11:00 +0000 (15:11 +0000)]
Merge "VPX: x86 asm version of vpx_idct32x32_34_add()"

8 years agobitreader/writer: Change shift to signed
Alex Converse [Thu, 19 Nov 2015 23:07:55 +0000 (15:07 -0800)]
bitreader/writer: Change shift to signed

Silences several legal but suspicious unsigned overflows found with
clang -fsanitize=integer.

Change-Id: I69399751492a183167932b0a10751c433c32ca7b

8 years agoFix a signed shift overflow in vpx_rb_read_inv_signed_literal.
Alex Converse [Thu, 19 Nov 2015 23:04:20 +0000 (15:04 -0800)]
Fix a signed shift overflow in vpx_rb_read_inv_signed_literal.

Found with clang -fsanitize=integer

Change-Id: I17cb2166c06ff463abfaf9b0e6bc749d0d6fdf94

8 years agoFix unsigned overflow in rd_variance_adjustment.
Alex Converse [Thu, 19 Nov 2015 22:53:51 +0000 (14:53 -0800)]
Fix unsigned overflow in rd_variance_adjustment.

Found with clang -fsanitize=integer

Change-Id: I2538e7483cb2d5f06bceecbd3326bdd88bfecfa1

8 years agoSpeed up h_predictor_4x4
Jian Zhou [Thu, 19 Nov 2015 19:34:22 +0000 (11:34 -0800)]
Speed up h_predictor_4x4

Modify h_predictor_4x4 with XMM registers.
Speed up by ~25% in ./test_intra_pred_speed.

Change-Id: Id01c34c48e75b9d56dfc2e93af12cf0c0326a279

8 years agoMerge "Changes to best quality settings."
Paul Wilkins [Thu, 19 Nov 2015 16:13:43 +0000 (16:13 +0000)]
Merge "Changes to best quality settings."

8 years agoMerge "Speed up tm_predictor_4x4"
Jian Zhou [Thu, 19 Nov 2015 02:32:48 +0000 (02:32 +0000)]
Merge "Speed up  tm_predictor_4x4"

8 years agoSpeed up tm_predictor_4x4
Jian Zhou [Sat, 14 Nov 2015 02:42:48 +0000 (18:42 -0800)]
Speed up  tm_predictor_4x4

tm_predictor_4x4 is implemented with SSE2 using XMM registers.
Speed up by ~25% in ./test_intra_pred_speed.

Change-Id: I25074b78d476a2cb17f81cf654bdfd80df2070e0

8 years agovp9-svc: Fix to key frame counter for spatial layers.
Marco [Wed, 18 Nov 2015 22:29:25 +0000 (14:29 -0800)]
vp9-svc: Fix to key frame counter for spatial layers.

Existing condition only applied to temporal layers.

Change-Id: Icef20a59d0afc61d4e14dea01aff4786fa9e41ae

8 years agoMerge "Changes to exhaustive motion search."
Paul Wilkins [Wed, 18 Nov 2015 11:10:13 +0000 (11:10 +0000)]
Merge "Changes to exhaustive motion search."

8 years agoVPX: x86 asm version of vpx_idct32x32_34_add()
Scott LaVarnway [Wed, 18 Nov 2015 01:42:24 +0000 (17:42 -0800)]
VPX: x86 asm version of vpx_idct32x32_34_add()

Change-Id: Ic81f38998fb1b8d33f5a5d7424c2c41002786cef

8 years agoFixed a few sanity checks.
Zoe Liu [Tue, 10 Nov 2015 01:21:11 +0000 (17:21 -0800)]
Fixed a few sanity checks.

Change-Id: Ieec4a7be5945dc6de192e2d8292ab978baf47f53
(cherry picked from commit 2096296421c7fa56abb49470c0fbe7c4337b8a71)

8 years agoChanges to best quality settings.
paulwilkins [Tue, 17 Nov 2015 16:20:20 +0000 (16:20 +0000)]
Changes to best quality settings.

Small changes to the best quality default speed trade off.
Some speedup settings are worth while even for best quality as they
have only a very small impact on quality but a significant impact on
encode time.

These changes give as much as a further 50-60% increase in encode
speed for my test animations clip with minimal impact on quality.

For this sequence these changes improve the best quality encode  speed
to about the same level as good quality speed 0 in Q3 2015 whilst
retaining the large quality gain of over 1 db

For many natural videos though the quality difference from good 0
to best is much smaller.

Change-Id: I28b3840009d77e129817a78a7c41e29cb03e1132

8 years agoEnable resize test(down&up) by changing the bitrate.
jackychen [Sat, 14 Nov 2015 00:02:43 +0000 (16:02 -0800)]
Enable resize test(down&up) by changing the bitrate.

Change-Id: I5a4f1f7b9de20fbfc28cb743dcd29c0eeca736f8

8 years agoUse Interlocked calls in win32 once() implementation.
Ralph Giles [Fri, 13 Nov 2015 20:56:34 +0000 (12:56 -0800)]
Use Interlocked calls in win32 once() implementation.

This is simpler than the previous scheme, which tried to allocate
the CRITICAL_SECTION struct in a thread-safe manner before it
could use it to run the wrapped function in a thread-safe manner.

Change-Id: I172e5544e5f16403a3a0e5e2b9104b1292a0d786

8 years agoReduce sampling time for noise estimate.
Marco [Fri, 13 Nov 2015 16:09:17 +0000 (08:09 -0800)]
Reduce sampling time for noise estimate.

Change-Id: I46abd85e2187b8f4c2846416a23fab26d9b9f67d

8 years agoFix resize internal test.
Marco [Fri, 13 Nov 2015 14:20:41 +0000 (06:20 -0800)]
Fix resize internal test.

Temporary fix to make sure it always passes.

Change-Id: I56a0529986ad7049b6090f871c14e9e06d573d5f

8 years agoMerge "VP9 noise estimation: add frame level motion metrics and adjust thresholds."
Marco Paniconi [Fri, 13 Nov 2015 14:09:19 +0000 (14:09 +0000)]
Merge "VP9 noise estimation: add frame level motion metrics and adjust thresholds."

8 years agoChanges to exhaustive motion search.
paulwilkins [Wed, 14 Oct 2015 09:38:49 +0000 (10:38 +0100)]
Changes to exhaustive motion search.

This change alters the nature and use of exhaustive motion search.

Firstly any exhaustive search is preceded by a normal step search.
The exhaustive search is only carried out if the distortion resulting
from the step search is above a threshold value.

Secondly the simple +/- 64 exhaustive search is replaced by a
multi stage mesh based search where each stage has a range
and step/interval size. Subsequent stages use the best position from
the previous stage as the center of the search but use a reduced range
and interval size.

For example:
  stage 1: Range +/- 64 interval 4
  stage 2: Range +/- 32 interval 2
  stage 3: Range +/- 15 interval 1

This process, especially when it follows on from a normal step
search, has shown itself to be almost as effective as a full range
exhaustive search with step 1 but greatly lowers the computational
complexity such that it can be used in some cases for speeds 0-2.

This patch also removes a double exhaustive search for sub 8x8 blocks
which also contained  a bug (the two searches used different distortion
metrics).

For best quality in my test animation sequence this patch has almost
no impact on quality but improves encode speed by more than 5X.

Restricted use in good quality speeds 0-2 yields significant quality gains
on the animation test of 0.2 - 0.5 db with only a small impact on encode
speed. On most clips though the quality gain and speed impact are small.

Change-Id: Id22967a840e996e1db273f6ac4ff03f4f52d49aa

8 years agoVP9 noise estimation: add frame level motion metrics and adjust thresholds.
JackyChen [Fri, 13 Nov 2015 02:36:17 +0000 (18:36 -0800)]
VP9 noise estimation: add frame level motion metrics and adjust thresholds.

Change-Id: Ia1aba00603b32cee6835951d3d8f740937cf20f4

8 years agoMerge "libs.mk, testdata: rm redundant test of LIBVPX_TEST_DATA"
James Zern [Fri, 13 Nov 2015 06:49:00 +0000 (06:49 +0000)]
Merge "libs.mk, testdata: rm redundant test of LIBVPX_TEST_DATA"

8 years agoMerge "Add AVX vectorized vp9_diamond_search_sad"
James Zern [Fri, 13 Nov 2015 06:29:20 +0000 (06:29 +0000)]
Merge "Add AVX vectorized vp9_diamond_search_sad"

8 years agoAdjust variance threshold for 16x16 split at low resolutions.
Marco [Fri, 13 Nov 2015 00:52:45 +0000 (16:52 -0800)]
Adjust variance threshold for 16x16 split at low resolutions.

Change-Id: I635e37f81237e9703d7d9a11ed76a043f4ec6eb0

8 years agoRevert "Update to noise estimation."
Marco Paniconi [Fri, 13 Nov 2015 00:13:32 +0000 (00:13 +0000)]
Revert "Update to noise estimation."

This reverts commit 6b79a1e3e0dfc265f43445b8181aa95e1c02deac.

Change-Id: I5a4923ca8a6de842855ce0725e92567ccbed6fb7

8 years agoUpdate to noise estimation.
Marco [Thu, 12 Nov 2015 17:06:12 +0000 (09:06 -0800)]
Update to noise estimation.

Add frame level global check and adjust some parameters.

Change-Id: I42103394f2d329781195d94ce6cbb5b3383eea17

8 years agoMerge "Non-rd partition: reduce variance threshold low resolutions."
Marco Paniconi [Thu, 12 Nov 2015 06:08:38 +0000 (06:08 +0000)]
Merge "Non-rd partition: reduce variance threshold low resolutions."

8 years agoMerge "Adjust varianace threshold for high noise condition."
Marco Paniconi [Thu, 12 Nov 2015 06:06:51 +0000 (06:06 +0000)]
Merge "Adjust varianace threshold for high noise condition."

8 years agoAdjust motion threshold to limit cyclic refresh.
Marco [Thu, 12 Nov 2015 02:21:20 +0000 (18:21 -0800)]
Adjust motion threshold to limit cyclic refresh.

Change-Id: Icfca27a567eb8929c312c6315856ee130d982a04

8 years agoAdjust varianace threshold for high noise condition.
Marco [Thu, 12 Nov 2015 02:05:11 +0000 (18:05 -0800)]
Adjust varianace threshold for high noise condition.

Change-Id: I91c722e480328ff95b8c57614d8176ccaceb2539

8 years agoMerge "vp9 denoiser: Add another noise level to denoising."
Marco Paniconi [Wed, 11 Nov 2015 20:40:29 +0000 (20:40 +0000)]
Merge "vp9 denoiser: Add another noise level to denoising."

8 years agoMerge "Revert "VPX: x86 asm version of vpx_idct32x32_34_add()""
James Zern [Wed, 11 Nov 2015 20:39:12 +0000 (20:39 +0000)]
Merge "Revert "VPX: x86 asm version of vpx_idct32x32_34_add()""

8 years agovp9 denoiser: Add another noise level to denoising.
Marco [Wed, 11 Nov 2015 18:09:40 +0000 (10:09 -0800)]
vp9 denoiser: Add another noise level to denoising.

Change-Id: Idc755ab54e4f78bb7d75bc97634c451804edad99

8 years agoRevert "VPX: x86 asm version of vpx_idct32x32_34_add()"
James Zern [Wed, 11 Nov 2015 19:11:37 +0000 (11:11 -0800)]
Revert "VPX: x86 asm version of vpx_idct32x32_34_add()"

This reverts commit 9aeaa2016e7470c4e316d90da33d883098eed6f4.

This causes some test vectors to fail.

Change-Id: I3659a2068404ec5a0591fba5c88b1bec0c9059a4

8 years agoRevert "VP9: Only zero counts when !frame_parallel_decoding_mode"
James Zern [Wed, 11 Nov 2015 19:09:42 +0000 (11:09 -0800)]
Revert "VP9: Only zero counts when !frame_parallel_decoding_mode"

This reverts commit 380a5519cca999f54b17f37b709996a11f3204ea.

This causes an assertion failure in debug_check_frame_counts() which
probably isn't valid with this change; leaving the investigation for
later now.

Change-Id: Ieda5ca811ed2fa50a0cc6935919a8d10dca996e0

8 years agoAdd AVX vectorized vp9_diamond_search_sad
Geza Lore [Wed, 28 Oct 2015 14:35:04 +0000 (14:35 +0000)]
Add AVX vectorized vp9_diamond_search_sad

This function now has an AVX intrinsics version which is about 80%
faster compared to the C implementation. This provides a 2-4% total
speed-up for encode, depending on encoding parameters. The function
utilizes 3 properties of the cost function lookup table, constructed
in 'cal_nmvjointsadcost' and 'cal_nmvsadcosts'.
For the joint cost:
  - mvjointsadcost[1] == mvjointsadcost[2] == mvjointsadcost[3]
For the component costs:
  - For all i: mvsadcost[0][i] == mvsadcost[1][i]
        (equal per component cost)
  - For all i: mvsadcost[0][i] == mvsadcost[0][-i]
        (Cost function is even)
These must hold, otherwise the AVX version of the function cannot be used.

Change-Id: I6c2791d43022822a9e6ab43cd124a773946d0bdc

8 years agolibs.mk, testdata: rm redundant test of LIBVPX_TEST_DATA
James Zern [Wed, 11 Nov 2015 01:54:51 +0000 (17:54 -0800)]
libs.mk, testdata: rm redundant test of LIBVPX_TEST_DATA

the return value of enabled, which may be empty, is handled by the for
loop. this avoids making an unnecessarily long command line which may
fail in certain cases.

Change-Id: Ib88ecbbe2c0f6d7debb600b4caed4884497263b1

8 years agoNon-rd partition: reduce variance threshold low resolutions.
Marco [Tue, 10 Nov 2015 23:41:39 +0000 (15:41 -0800)]
Non-rd partition: reduce variance threshold low resolutions.

Change-Id: I06306905d187948a92f839357df5d21413823808

8 years agoMerge "Add bias to zero/small motion for noisy source."
Marco Paniconi [Tue, 10 Nov 2015 23:10:31 +0000 (23:10 +0000)]
Merge "Add bias to zero/small motion for noisy source."

8 years agoMerge "convolve_copy_sse2: replace SSE w/SSE2 code"
James Zern [Tue, 10 Nov 2015 22:35:12 +0000 (22:35 +0000)]
Merge "convolve_copy_sse2: replace SSE w/SSE2 code"

8 years agoMerge "VPX: x86 asm version of vpx_idct32x32_34_add()"
Scott LaVarnway [Tue, 10 Nov 2015 21:40:11 +0000 (21:40 +0000)]
Merge "VPX: x86 asm version of vpx_idct32x32_34_add()"

8 years agoVPX: x86 asm version of vpx_idct32x32_34_add()
Scott LaVarnway [Tue, 10 Nov 2015 19:54:56 +0000 (11:54 -0800)]
VPX: x86 asm version of vpx_idct32x32_34_add()

Change-Id: I8a933c63b7fbf3c65e2c06dbdca9646cadd0b7cb

8 years agoAdd bias to zero/small motion for noisy source.
Marco [Mon, 9 Nov 2015 21:36:56 +0000 (13:36 -0800)]
Add bias to zero/small motion for noisy source.

Change is only for real-time mode, speed >= 5, and non-screen content mode.
Add bias to zero/low motion for big blocks, if noise estimation
is enabled and noise level is above threshold.

Change-Id: I3a0a4608ede6aa535bda6eca528d20f8aba738e7

8 years agoconvolve_copy_sse2: replace SSE w/SSE2 code
James Zern [Thu, 5 Nov 2015 04:01:34 +0000 (20:01 -0800)]
convolve_copy_sse2: replace SSE w/SSE2 code

this should be neutral or slightly faster on modern (P4+) architectures

Change-Id: Iec4c080275941eb8c9e05a66a2daf0405d86a69b

8 years agoVP9 noise estimate: no noise estimate if frame size change.
JackyChen [Tue, 10 Nov 2015 03:18:29 +0000 (19:18 -0800)]
VP9 noise estimate: no noise estimate if frame size change.

Change-Id: I521f7b53c143d562a88fe7de330aa3f0ef09f414

8 years agoMerge "VP9: add unit test for realtime external resize."
Jacky Chen [Tue, 10 Nov 2015 03:05:30 +0000 (03:05 +0000)]
Merge "VP9: add unit test for realtime external resize."

8 years agoMerge branch 'javanwhistlingduck'
Johann [Tue, 10 Nov 2015 01:00:37 +0000 (17:00 -0800)]
Merge branch 'javanwhistlingduck'

Change-Id: Ib63fde31ae7b3f71e608830f7433113733b2a275

8 years agoVP9: add unit test for realtime external resize.
jackychen [Mon, 9 Nov 2015 22:58:14 +0000 (14:58 -0800)]
VP9: add unit test for realtime external resize.

Change-Id: I9bfa80de73847d9be88b6ce9865d7bb5fafaaa57

8 years agoMerge "VP9 dynamic resize: enable resize unit test(DownUp)."
Jacky Chen [Mon, 9 Nov 2015 22:54:53 +0000 (22:54 +0000)]
Merge "VP9 dynamic resize: enable resize unit test(DownUp)."

8 years agoMerge "VP9: Only zero counts when !frame_parallel_decoding_mode"
James Zern [Mon, 9 Nov 2015 22:23:34 +0000 (22:23 +0000)]
Merge "VP9: Only zero counts when !frame_parallel_decoding_mode"

8 years agoRelease v1.5.0 v1.5.0
Johann [Wed, 28 Oct 2015 23:03:55 +0000 (16:03 -0700)]
Release v1.5.0

Javan Whistling Duck release.

Change-Id: If44c9ca16a8188b68759325fbacc771365cb4af8

8 years agoVP9 dynamic resize: enable resize unit test(DownUp).
jackychen [Mon, 9 Nov 2015 22:04:58 +0000 (14:04 -0800)]
VP9 dynamic resize: enable resize unit test(DownUp).

The unit test requires a longer clip which is already in the repo.

Change-Id: Ic42e8d83e636fafd20d485a7f5f8422835319245

8 years agoMerge "VP9 dynamic resize: increase waiting time after key frame."
Marco Paniconi [Mon, 9 Nov 2015 21:11:51 +0000 (21:11 +0000)]
Merge "VP9 dynamic resize: increase waiting time after key frame."

8 years agoVP9 dynamic resize: increase waiting time after key frame.
jackychen [Mon, 9 Nov 2015 19:47:26 +0000 (11:47 -0800)]
VP9 dynamic resize: increase waiting time after key frame.

For 1 pass CBR mode: increase waiting time after key frame
before we start sampling rate control behavior for determining
resize. This change need to disable one internal resize(DownUp)
temporally since it requires a longer clip to do so.

Change-Id: If21beda1be23f169ee541ab4dd642f718347887a

8 years agoMerge "Use same bias (against non-zero mv for big blocks) for speed 5."
Marco Paniconi [Mon, 9 Nov 2015 19:29:35 +0000 (19:29 +0000)]
Merge "Use same bias (against non-zero mv for big blocks) for speed 5."

8 years agoMerge "Expand unconstrained nodes in pack_mb_tokens and loop on zeros."
Alex Converse [Mon, 9 Nov 2015 18:27:40 +0000 (18:27 +0000)]
Merge "Expand unconstrained nodes in pack_mb_tokens and loop on zeros."

8 years agoVP9: Only zero counts when !frame_parallel_decoding_mode
Scott LaVarnway [Mon, 9 Nov 2015 18:14:13 +0000 (10:14 -0800)]
VP9: Only zero counts when !frame_parallel_decoding_mode

The counts are never used when frame_parallel_decoding_mode
is set.

Change-Id: Ic7a566a048297f7373c9ffbb48929ea09eff674f

8 years agoUse same bias (against non-zero mv for big blocks) for speed 5.
Marco [Mon, 9 Nov 2015 18:03:27 +0000 (10:03 -0800)]
Use same bias (against non-zero mv for big blocks) for speed 5.

Use same setting for speed 5 (as it is for speed > 5).
Change is only for real-time (non-rd) mode.

Change-Id: I830250eac654328373cb318baa89d4f0e63942e1

8 years agoMerge changes I8c83b86d,Ic53b2ed5,I4acc8a84
James Zern [Sat, 7 Nov 2015 00:57:06 +0000 (00:57 +0000)]
Merge changes I8c83b86d,Ic53b2ed5,I4acc8a84

* changes:
  variance_test: create fn pointers w/'&' ref
  sixtap_predict_test: create fn pointers w/'&' ref
  sad_test: create fn pointers w/'&' ref

8 years agoMerge "Use accurate bit cost for uv_mode in UV intra mode RD selection"
Hui Su [Sat, 7 Nov 2015 00:22:50 +0000 (00:22 +0000)]
Merge "Use accurate bit cost for uv_mode in UV intra mode RD selection"

8 years agoExpand unconstrained nodes in pack_mb_tokens and loop on zeros.
Alex Converse [Tue, 3 Nov 2015 00:28:10 +0000 (16:28 -0800)]
Expand unconstrained nodes in pack_mb_tokens and loop on zeros.

Reduces Linux perf estimated cycle count for pack_mb_tokens on a
lossless encode on my desktop from 61858501855 to 48154040219 or from
26% of the overall profile to 21%.

Change-Id: I9ca3426d7e3272bc7f7030abda4f0d0cec87fb4a

8 years agoUse accurate bit cost for uv_mode in UV intra mode RD selection
hui su [Fri, 6 Nov 2015 21:56:51 +0000 (13:56 -0800)]
Use accurate bit cost for uv_mode in UV intra mode RD selection

On derflr, +0.1% for VP10; however, -0.03% on VP9.

Change-Id: I09c724232ede74254043d61d3cadc506256af0af

8 years agoMerge "Revert "Add AVX vectorized vp9_diamond_search_sad""
James Zern [Fri, 6 Nov 2015 22:37:20 +0000 (22:37 +0000)]
Merge "Revert "Add AVX vectorized vp9_diamond_search_sad""

8 years agoRevert "Add AVX vectorized vp9_diamond_search_sad"
James Zern [Fri, 6 Nov 2015 21:03:13 +0000 (13:03 -0800)]
Revert "Add AVX vectorized vp9_diamond_search_sad"

This reverts commit f1342a7b070ef61b9fbdf03e899ac2107cfcb6bd.

This breaks 32-bit builds:
 runtime error: load of misaligned address 0xf72fdd48 for type 'const
__m128i' (vector of 2 'long long' values), which requires 16 byte
alignment

+ _mm_set1_epi64x is incompatible with some versions of visual studio

Change-Id: I6f6fc3c11403344cef78d1c432cdc9147e5c1673

8 years agovariance_test: create fn pointers w/'&' ref
James Zern [Fri, 6 Nov 2015 03:00:45 +0000 (19:00 -0800)]
variance_test: create fn pointers w/'&' ref

this helps some toolchains (vs9) resolve the type of the parameter

Change-Id: I8c83b86da53b1783cd18c0f765b67ba33da91d72

8 years agosixtap_predict_test: create fn pointers w/'&' ref
James Zern [Fri, 6 Nov 2015 03:00:45 +0000 (19:00 -0800)]
sixtap_predict_test: create fn pointers w/'&' ref

this helps some toolchains (vs9) resolve the type of the parameter

Change-Id: Ic53b2ed5fbce05c5b5e633b4a4ef9ea75c55360a

8 years agovp9: Disable noise estimate on resize trigger frame.
Marco [Fri, 6 Nov 2015 16:33:41 +0000 (08:33 -0800)]
vp9: Disable noise estimate on resize trigger frame.

Change-Id: I35767a6320943582ee11d737b5f240cea2d01b25

8 years agosad_test: create fn pointers w/'&' ref
James Zern [Fri, 6 Nov 2015 03:00:45 +0000 (19:00 -0800)]
sad_test: create fn pointers w/'&' ref

this helps some toolchains (vs9) resolve the type of the parameter

Change-Id: I4acc8a844d1e55b766f66482bd6d32998174d70f

8 years agoMerge "vp9: Updates to noise estimation."
Marco Paniconi [Fri, 6 Nov 2015 06:51:11 +0000 (06:51 +0000)]
Merge "vp9: Updates to noise estimation."

8 years agovp9: Updates to noise estimation.
Marco [Fri, 6 Nov 2015 00:00:15 +0000 (16:00 -0800)]
vp9: Updates to noise estimation.

Add threshold/condition on spatial_variance and brightness level.
Modification to normalization of block variance.
Change resolution limit below which we disable noise estimation.

Change-Id: If5be08a26ceda351242d8a58d2f0bc88c0a918f0

8 years agovp9_spatial_svc_encoder.sh: fix command line param
James Zern [Thu, 5 Nov 2015 23:22:39 +0000 (15:22 -0800)]
vp9_spatial_svc_encoder.sh: fix command line param

-l -> -sl, renamed in:
be3b08d [svc] Temporal svc with two pass rate control

Change-Id: I5a7b179b33d94e20e54825090659156dece928c0

8 years agoMerge "Add AVX vectorized vp9_diamond_search_sad"
Yunqing Wang [Thu, 5 Nov 2015 20:17:13 +0000 (20:17 +0000)]
Merge "Add AVX vectorized vp9_diamond_search_sad"

8 years agoAdd AVX vectorized vp9_diamond_search_sad
Geza Lore [Wed, 28 Oct 2015 14:35:04 +0000 (14:35 +0000)]
Add AVX vectorized vp9_diamond_search_sad

This function now has an AVX intrinsics version which is about 80%
faster compared to the C implementation. This provides a 2-4% total
speed-up for encode, depending on encoding parameters. The function
utilizes 3 properties of the cost function lookup table, constructed
in 'cal_nmvjointsadcost' and 'cal_nmvsadcosts'.
For the joint cost:
  - mvjointsadcost[1] == mvjointsadcost[2] == mvjointsadcost[3]
For the component costs:
  - For all i: mvsadcost[0][i] == mvsadcost[1][i]
        (equal per component cost)
  - For all i: mvsadcost[0][i] == mvsadcost[0][-i]
        (Cost function is even)
These must hold, otherwise the AVX version of the function cannot be used.

Change-Id: I184055b864c5a2dc37b2d8c5c9012eb801e9daf6

8 years agoMerge "Bias against non-zero mv for large blocks."
Marco Paniconi [Wed, 4 Nov 2015 00:01:23 +0000 (00:01 +0000)]
Merge "Bias against non-zero mv for large blocks."

8 years agoDeduplicate some high bit depth tables
Alex Converse [Tue, 3 Nov 2015 23:38:54 +0000 (15:38 -0800)]
Deduplicate some high bit depth tables

Change-Id: I6977f7d155cc1e81ae2393933893caac6770821f

8 years agoBias against non-zero mv for large blocks.
Marco [Fri, 30 Oct 2015 18:51:06 +0000 (11:51 -0700)]
Bias against non-zero mv for large blocks.

Change is only for real-time mode, speed > 5, and non-screen content mode.
Bias is based on block size and motion vector level (motion above some threshold).

Helps to improves stability in background from lightning changes.
PSNR/SSIM metrics on RTC set almost no change/neutral (within +/- 0.1).

Change-Id: I7eac13c1ae10be4ab1f40acc7f9f1df5653ece9d

8 years agoMerge "Update to encoder_breakout_test, for non-rd mode."
Marco Paniconi [Tue, 3 Nov 2015 22:40:53 +0000 (22:40 +0000)]
Merge "Update to encoder_breakout_test, for non-rd mode."

8 years agoMerge "Fix a msvc warning"
Yaowu Xu [Tue, 3 Nov 2015 21:56:25 +0000 (21:56 +0000)]
Merge "Fix a msvc warning"

8 years agoMerge "Generate intra prediction reference values only when necessary"
Hui Su [Tue, 3 Nov 2015 20:55:14 +0000 (20:55 +0000)]
Merge "Generate intra prediction reference values only when necessary"

8 years agoMerge "Adjust threshold for datarate frame drop test."
Marco Paniconi [Tue, 3 Nov 2015 19:54:52 +0000 (19:54 +0000)]
Merge "Adjust threshold for datarate frame drop test."

8 years agoUpdate to encoder_breakout_test, for non-rd mode.
Marco [Tue, 3 Nov 2015 19:47:23 +0000 (11:47 -0800)]
Update to encoder_breakout_test, for non-rd mode.

Only use non-zero threshold(s) for breakout if
the motion level of the current tested mode is low.

Change-Id: I22aae961cc42371b49d3f648560181cc54708502

8 years agoFix a msvc warning
Yaowu Xu [Tue, 3 Nov 2015 19:22:58 +0000 (11:22 -0800)]
Fix a msvc warning

Change-Id: Id5b8f597fb275395232559fea7bfeb56912b88a1

8 years agoMerge "misc fixes: Remove a wasted value."
Alex Converse [Tue, 3 Nov 2015 17:52:34 +0000 (17:52 +0000)]
Merge "misc fixes: Remove a wasted value."