platform/upstream/libvpx.git
8 years agoCode clean of highbd_dc_predictor_32x32
Jian Zhou [Mon, 21 Dec 2015 19:52:23 +0000 (11:52 -0800)]
Code clean of highbd_dc_predictor_32x32

Remove the ARCH_X86_64 constraint.

Change-Id: I7d2545fc4f24eb352cf3e03082fc4d48d46fbb09

8 years agoMerge "aq-mode=3: Don't reset segment if block is determined to be skin."
Marco Paniconi [Tue, 22 Dec 2015 20:18:24 +0000 (20:18 +0000)]
Merge "aq-mode=3: Don't reset segment if block is determined to be skin."

8 years agoaq-mode=3: Don't reset segment if block is determined to be skin.
Marco [Mon, 21 Dec 2015 18:35:05 +0000 (10:35 -0800)]
aq-mode=3: Don't reset segment if block is determined to be skin.

For coding block sizes <=16X16, if the block is determined to be skin,
then always allow for that block to be candidate for refresh. So if that
block happens to be on the boost segment(s), segment won't get reset to 0
and delta-q will be applied.

PSNR/SSIM metrics neutral (little/no change) on RTC clips.
Speed increase small/negligible (< 1%).
Some visual improvement on faces in a few RTC clips.

Change-Id: I6bf0fce6f39d820b491ce05d7c017ad168fce7d6

8 years agoMerge "Code clean of highbd_tm_predictor_4x4"
James Zern [Tue, 22 Dec 2015 16:45:01 +0000 (16:45 +0000)]
Merge "Code clean of highbd_tm_predictor_4x4"

8 years agoMerge "Code clean of highbd_dc_predictor_4x4"
James Zern [Tue, 22 Dec 2015 16:30:37 +0000 (16:30 +0000)]
Merge "Code clean of highbd_dc_predictor_4x4"

8 years agoMerge "Code clean of highbd_v_predictor_4x4"
Jian Zhou [Mon, 21 Dec 2015 18:07:48 +0000 (18:07 +0000)]
Merge "Code clean of highbd_v_predictor_4x4"

8 years agoMerge "Fix for issue 1114 compile error"
Yunqing Wang [Sat, 19 Dec 2015 04:29:39 +0000 (04:29 +0000)]
Merge "Fix for issue 1114 compile error"

8 years agosad_sse2: fix sad4xN(_avg) on windows
James Zern [Sat, 19 Dec 2015 03:19:32 +0000 (19:19 -0800)]
sad_sse2: fix sad4xN(_avg) on windows

reduce the register count by 1 to avoid xmm6 and unnecessarily
penalizing the other users of the base macro

Change-Id: I59605c9a41a31c1b74f67ec06a40d1a7f92c4699

8 years agoCode clean of highbd_tm_predictor_4x4
Jian Zhou [Sat, 19 Dec 2015 02:43:41 +0000 (18:43 -0800)]
Code clean of highbd_tm_predictor_4x4

Replace MMX with SSE2, reduce mem access to left neighbor,
loop unrolled.

Change-Id: I941be915af809025f121ecc6c6443f73c9903e70

8 years agoCode clean of highbd_v_predictor_4x4
Jian Zhou [Fri, 18 Dec 2015 23:25:27 +0000 (15:25 -0800)]
Code clean of highbd_v_predictor_4x4

MMX replaced with SSE2, same performance.

Change-Id: I2ab8f30a71e5fadbbc172fb385093dec1e11a696

8 years agoCode clean of highbd_dc_predictor_4x4
Jian Zhou [Fri, 18 Dec 2015 20:45:23 +0000 (12:45 -0800)]
Code clean of highbd_dc_predictor_4x4

MMX replaced with SSE2, same performance.

Change-Id: Ic57855254e26757191933c948fac6aa047fadafc

8 years agoMerge "Non-rd speed >=5: Include H/V intra for bsize=16x16."
Marco Paniconi [Fri, 18 Dec 2015 17:45:49 +0000 (17:45 +0000)]
Merge "Non-rd speed >=5: Include H/V intra for bsize=16x16."

8 years agoFix for issue 1114 compile error
Peter de Rivaz [Mon, 14 Dec 2015 16:35:29 +0000 (16:35 +0000)]
Fix for issue 1114 compile error

In 32-bit build with --enable-shared, there is a lot of
register pressure and register src_strideq is reused.
The code needs to use the stack based version of src_stride,
but this doesn't compile when used in an lea instruction.

This patch also fixes a related segmentation fault caused by the
implementation using src_strideq even though it has been
reused.

This patch also fixes the HBD subpel variance tests that fail
when compiled without disable-optimizations.
These failures were caused by local variables in the assembler
routines colliding with the caller's stack frame.

Change-Id: Ice9d4dafdcbdc6038ad5ee7c1c09a8f06deca362

8 years agoMerge "Code clean of sad4xN(_avg)_sse"
Jian Zhou [Fri, 18 Dec 2015 01:39:20 +0000 (01:39 +0000)]
Merge "Code clean of sad4xN(_avg)_sse"

8 years agoNon-rd speed >=5: Include H/V intra for bsize=16x16.
Marco [Fri, 18 Dec 2015 01:13:01 +0000 (17:13 -0800)]
Non-rd speed >=5: Include H/V intra for bsize=16x16.

H/V intra mode was only enabled for bsize < 16x16,
enable it also for bsize=16x16.

Metrics are neutral with this change:
Overall very small gain (0.1%), small visual gain on some RTC clips.

Change-Id: Ib2d7a44382433bfc11cf324aa3cc5c382ea9e088

8 years agoCode clean of sad4xN(_avg)_sse
Jian Zhou [Wed, 16 Dec 2015 23:52:02 +0000 (15:52 -0800)]
Code clean of sad4xN(_avg)_sse

Replace MMX with SSE2, reduce psadbw ops which may help Silvermont.

Change-Id: Ic7aec15245c9e5b2f3903dc7631f38e60be7c93d

8 years agoMerge "vp9-svc: Fix to allow for 4x4 variance for low resolutions."
Marco Paniconi [Wed, 16 Dec 2015 23:04:26 +0000 (23:04 +0000)]
Merge "vp9-svc: Fix to allow for 4x4 variance for low resolutions."

8 years agoMerge "vpxenc: don't warn about libwebm availability if writing IVF."
James Zern [Wed, 16 Dec 2015 22:53:01 +0000 (22:53 +0000)]
Merge "vpxenc: don't warn about libwebm availability if writing IVF."

8 years agovp9-svc: Fix to allow for 4x4 variance for low resolutions.
Marco [Wed, 16 Dec 2015 16:57:05 +0000 (08:57 -0800)]
vp9-svc: Fix to allow for 4x4 variance for low resolutions.

Change-Id: I3ec08e10d9ebf6d8b8a03004a320523f926e5cc4

8 years agoMove bit_depth init out of setup_quantization
Yaowu Xu [Wed, 16 Dec 2015 19:43:11 +0000 (11:43 -0800)]
Move bit_depth init out of setup_quantization

This also fixes a compiling error under --enable-vp9_highbitdepth.

Change-Id: I9d1dcb95d3336d797eb3c23a4702c30b04355357

8 years agovpxenc: don't warn about libwebm availability if writing IVF.
Ronald S. Bultje [Wed, 16 Dec 2015 18:35:43 +0000 (13:35 -0500)]
vpxenc: don't warn about libwebm availability if writing IVF.

Change-Id: I1a9635a9948458e6c83f5b58764b7e720d98e2ea

8 years agoMerge "Non-rd variance partition: Lower the 64->32 force split threshold."
Marco Paniconi [Wed, 16 Dec 2015 16:48:07 +0000 (16:48 +0000)]
Merge "Non-rd variance partition: Lower the 64->32 force split threshold."

8 years agoNon-rd variance partition: Lower the 64->32 force split threshold.
Marco [Wed, 16 Dec 2015 01:26:27 +0000 (17:26 -0800)]
Non-rd variance partition: Lower the 64->32 force split threshold.

Change-Id: I837551bdf87197bee8a193353bb31f4cff794787

8 years agoMerge changes Icf9b57c3,I9e12da84,Idf5ee179
Yaowu Xu [Tue, 15 Dec 2015 17:51:33 +0000 (17:51 +0000)]
Merge changes Icf9b57c3,I9e12da84,Idf5ee179

* changes:
  Fixed interval, fixed Q 1 pass test patch.
  1 pass VBR mode bug fix.
  Fixed interval, fixed Q 1 pass test patch.

8 years agoMerge "Revert "Add "unknown" status for noise estimation.""
Marco Paniconi [Tue, 15 Dec 2015 16:46:06 +0000 (16:46 +0000)]
Merge "Revert "Add "unknown" status for noise estimation.""

8 years agoRevert "Add "unknown" status for noise estimation."
Marco Paniconi [Tue, 15 Dec 2015 16:44:40 +0000 (16:44 +0000)]
Revert "Add "unknown" status for noise estimation."

This reverts commit e15fedb9258251bbb07def57e49e2bd1e0c4c538.

Change-Id: Ibf2bce008c727a9754f88814b7630095fa7b8253

8 years agoMerge "SVC 1 pass mode: Constrain inter mode search within superframe."
Marco Paniconi [Tue, 15 Dec 2015 16:25:20 +0000 (16:25 +0000)]
Merge "SVC 1 pass mode: Constrain inter mode search within superframe."

8 years agoMerge "Fix a enc/dec mismatch under CONFIG_MISC_FIXES"
Yaowu Xu [Tue, 15 Dec 2015 16:02:39 +0000 (16:02 +0000)]
Merge "Fix a enc/dec mismatch under CONFIG_MISC_FIXES"

8 years agoMerge "1 pass VBR mode bug fix."
Paul Wilkins [Tue, 15 Dec 2015 15:50:05 +0000 (15:50 +0000)]
Merge "1 pass VBR mode bug fix."

8 years agoFixed interval, fixed Q 1 pass test patch.
paulwilkins [Tue, 15 Dec 2015 15:23:47 +0000 (15:23 +0000)]
Fixed interval, fixed Q 1 pass test patch.

For testing implemented a fixed pattern and delta, 1 pass,
fixed Q, low delay mode.

This has not in any way been tuned or optimized.

Change-Id: Icf9b57c3bb16cc5c0726d5229009212af36eb6d9

8 years ago1 pass VBR mode bug fix.
paulwilkins [Tue, 15 Dec 2015 14:53:44 +0000 (14:53 +0000)]
1 pass VBR mode bug fix.

(copied from VP9)

The one pass VBR mode selects a Q range based on a
moving average of recent Q values. This calculation
should have been excluding arf overlay frames as these
are usually coded at the highest allowed value. Their
inclusion skews the average and can cause it to drift
upwards even when the clip as a whole is undershooting.

As such it can undermine correct adaptation of the allowed
Q range especially for easy content.

Change-Id: I9e12da84e12917e836b6e53ca4dfe4f150b9efb1

8 years agoFixed interval, fixed Q 1 pass test patch.
paulwilkins [Mon, 14 Dec 2015 12:34:25 +0000 (12:34 +0000)]
Fixed interval, fixed Q 1 pass test patch.

For testing implemented a fixed pattern and delta, 1 pass,
fixed Q, low delay mode.

This has not in any way been tuned or optimized.

Change-Id: Idf5ee179b277fa15d07a97f14f2ce5bbaae80a04

8 years ago1 pass VBR mode bug fix.
paulwilkins [Tue, 15 Dec 2015 10:27:51 +0000 (10:27 +0000)]
1 pass VBR mode bug fix.

The one pass VBR mode selects a Q range based on a
moving average of recent Q values. This calculation
should have been excluding arf overlay frames as these
are usually coded at the highest allowed value. Their
inclusion skews the average and can cause it to drift
upwards even when the clip as a whole is undershooting.

As such it can undermine correct adaptation of the allowed
Q range especially for easy content.

Change-Id: I7d10fe4227262376aa2dc2a7aec0f1fd82bf11f9

8 years agoFix a enc/dec mismatch under CONFIG_MISC_FIXES
Yaowu Xu [Tue, 15 Dec 2015 02:49:59 +0000 (18:49 -0800)]
Fix a enc/dec mismatch under CONFIG_MISC_FIXES

The culprit is on the decode side xd->lossless[i] setup was in wrong
location where segment features are not yet decoded.

Also on the encoder side, transform mode was not set consistently
between when tx_mode is selected and how tx_mode is enforced in
tx size selection.

Change-Id: I4c4c32188fda7530cadab9b46d4201f33f7ceca3

8 years agoMerge "move vp9_avg to vpx_dsp"
James Zern [Tue, 15 Dec 2015 03:41:22 +0000 (03:41 +0000)]
Merge "move vp9_avg to vpx_dsp"

8 years agoMerge "Add "unknown" status for noise estimation."
Jacky Chen [Tue, 15 Dec 2015 00:41:23 +0000 (00:41 +0000)]
Merge "Add "unknown" status for noise estimation."

8 years agoAdd "unknown" status for noise estimation.
jackychen [Mon, 14 Dec 2015 22:45:28 +0000 (14:45 -0800)]
Add "unknown" status for noise estimation.

Change-Id: I0fe95332ccfa2e1ad2a01a8e7ddd631289e0f8eb

8 years agoSVC 1 pass mode: Constrain inter mode search within superframe.
Marco [Mon, 7 Dec 2015 20:23:56 +0000 (12:23 -0800)]
SVC 1 pass mode: Constrain inter mode search within superframe.

Keep track of frame indexes for the references, and
constrain inter mode search for reference with same
temporal alignment.

Improves speed by about ~15%, no noticeable loss in
compression performance.

Change-Id: I5c407a8acca921234060c4fcef4afd7d734201c8

8 years agoMerge "Non-rd variance partition: Adjust logic for 32->16 force split."
Marco Paniconi [Mon, 14 Dec 2015 22:46:15 +0000 (22:46 +0000)]
Merge "Non-rd variance partition: Adjust logic for 32->16 force split."

8 years agomove vp9_avg to vpx_dsp
James Zern [Fri, 11 Dec 2015 20:40:53 +0000 (12:40 -0800)]
move vp9_avg to vpx_dsp

Change-Id: I7bc991abea383db1f86c1bb0f2e849837b54d90f

8 years agoNon-rd variance partition: Adjust logic for 32->16 force split.
Marco [Mon, 14 Dec 2015 20:43:32 +0000 (12:43 -0800)]
Non-rd variance partition: Adjust logic for 32->16 force split.

Lower the threshold for splitting 32x32->16x16 based on average variance,
and add lower bound condition for this split to occur. This prevents
unneccassry splitting for areas with very low variance.

Change-Id: Ibeb33b3d993632c2019f296eb87ef3b7e3568189

8 years agoMerge "Code clean of tm_predictor_32x32"
Jian Zhou [Mon, 14 Dec 2015 17:56:01 +0000 (17:56 +0000)]
Merge "Code clean of tm_predictor_32x32"

8 years agoMerge "Non-rd variance partition: Adjustments to reduce dragging artifact."
Marco Paniconi [Sat, 12 Dec 2015 02:59:33 +0000 (02:59 +0000)]
Merge "Non-rd variance partition: Adjustments to reduce dragging artifact."

8 years agoNon-rd variance partition: Adjustments to reduce dragging artifact.
Marco [Wed, 9 Dec 2015 20:26:48 +0000 (12:26 -0800)]
Non-rd variance partition: Adjustments to reduce dragging artifact.

For non-rd variannce partition, speed >= 5:
Adjustments to reduce dragging artifcat of background area near
slow moving boundary.

-Decrease base threshold under low source noise conditions.
-Add condition to split 64x64/32x32 based on average variances
of lower level blocks.

PSNR/SSIM metrics go down ~0.7/0.9% on average on RTC set.
Visually helps to reduce dragging artifact on some rtc clips.

Change-Id: If1f0a1aef1ddacd67464520ca070e167abf82fac

8 years agoMerge "Speed up tm_predictor_16x16"
Jian Zhou [Fri, 11 Dec 2015 18:55:46 +0000 (18:55 +0000)]
Merge "Speed up tm_predictor_16x16"

8 years agoCode clean of tm_predictor_32x32
Jian Zhou [Fri, 11 Dec 2015 01:25:18 +0000 (17:25 -0800)]
Code clean of tm_predictor_32x32

Reallocate the xmm register usage so that no ARCH_X86_64 required.
Reduce memory access to the left neighbor by half.
Speed up by single digit on big core machine.

Change-Id: I392515ed8e8aeb02e6a717b3966b1ba13f5be990

8 years agoMerge "SSE2 based h_predictor_32x32"
Jian Zhou [Fri, 11 Dec 2015 18:02:34 +0000 (18:02 +0000)]
Merge "SSE2 based h_predictor_32x32"

8 years agoMerge "dc_left_pred[48]: fix pic builds"
James Zern [Fri, 11 Dec 2015 02:48:11 +0000 (02:48 +0000)]
Merge "dc_left_pred[48]: fix pic builds"

8 years agoMerge "Code clean of dc_left/top_predictor_16x16"
Jian Zhou [Fri, 11 Dec 2015 01:53:44 +0000 (01:53 +0000)]
Merge "Code clean of dc_left/top_predictor_16x16"

8 years agoMerge "Proper fix of a msvc complier warning"
Yaowu Xu [Fri, 11 Dec 2015 00:53:28 +0000 (00:53 +0000)]
Merge "Proper fix of a msvc complier warning"

8 years agoMerge "Minor cleanup"
Yunqing Wang [Fri, 11 Dec 2015 00:52:03 +0000 (00:52 +0000)]
Merge "Minor cleanup"

8 years agoProper fix of a msvc complier warning
Yaowu Xu [Fri, 11 Dec 2015 00:29:01 +0000 (16:29 -0800)]
Proper fix of a msvc complier warning

Change-Id: I701ab4993be7cfb15b61a1adbbaf5565bd14ae27

8 years agodc_left_pred[48]: fix pic builds
James Zern [Thu, 10 Dec 2015 07:53:11 +0000 (23:53 -0800)]
dc_left_pred[48]: fix pic builds

GET_GOT modifies the stack pointer so the offset for left's address will
be wrong if loaded afterword.

Change-Id: Iff9433aec45f5f6fe1a59ed8080c589bad429536

8 years agoMerge changes Iece22223,Iefad9d8d
Yaowu Xu [Thu, 10 Dec 2015 23:32:32 +0000 (23:32 +0000)]
Merge changes Iece22223,Iefad9d8d

* changes:
  Fix two msvc build issues
  Fix enc/dec mismatches for aq-mode 1 and 2

8 years agoMinor cleanup
Yunqing Wang [Thu, 10 Dec 2015 23:28:07 +0000 (15:28 -0800)]
Minor cleanup

Removed unused GET_GOT_SAVE_ARG.

Change-Id: I0ae41c2d0dcd6d7d1c8dda05062fcdb737fd917d

8 years agoMerge "Fix the win32 crash when GET_GOT is not defined"
Yunqing Wang [Thu, 10 Dec 2015 23:25:05 +0000 (23:25 +0000)]
Merge "Fix the win32 crash when GET_GOT is not defined"

8 years agoMerge "Sync high bit-depth temporal filter"
Jingning Han [Thu, 10 Dec 2015 22:54:59 +0000 (22:54 +0000)]
Merge "Sync high bit-depth temporal filter"

8 years agoFix the win32 crash when GET_GOT is not defined
Yunqing Wang [Thu, 10 Dec 2015 22:25:01 +0000 (14:25 -0800)]
Fix the win32 crash when GET_GOT is not defined

This patch continues to fix the win32 crash issue:
https://bugs.chromium.org/p/webm/issues/detail?id=1105

Johann's patch is here:
https://chromium-review.googlesource.com/#/c/316446/2

Change-Id: I7fe191c717e40df8602e229371321efb0d689375

8 years agoFix two msvc build issues
Yaowu Xu [Thu, 10 Dec 2015 20:41:27 +0000 (12:41 -0800)]
Fix two msvc build issues

Change-Id: Iece22223773dd6d0f87f8f59827705acd2ebe2a4

8 years agoCode clean of dc_left/top_predictor_16x16
Jian Zhou [Thu, 10 Dec 2015 19:59:58 +0000 (11:59 -0800)]
Code clean of dc_left/top_predictor_16x16

Remove some redundant code.

Change-Id: Ida2e8c0ce28770f7a9545ca014fe792b04295260

8 years agoFix enc/dec mismatches for aq-mode 1 and 2
Yaowu Xu [Thu, 10 Dec 2015 02:22:44 +0000 (18:22 -0800)]
Fix enc/dec mismatches for aq-mode 1 and 2

Change-Id: Iefad9d8d96a08dcc788a5efdca2df6a815d1205f

8 years agoSSE2 based h_predictor_32x32
Jian Zhou [Thu, 10 Dec 2015 02:12:52 +0000 (18:12 -0800)]
SSE2 based h_predictor_32x32

Relocate the function from SSSE3 to SSE2, Unroll loop from 16 to 8,
and reduce mem access to left.
Speed up by single digit in ./test_intra_pred_speed on big core
machines.

Change-Id: I2b7fc95ffc0c42145be2baca4dc77116dff1c960

8 years agoMerge "iosbuild.sh: Support macosx targets in Xcode 7."
Tom Finegan [Thu, 10 Dec 2015 16:45:01 +0000 (16:45 +0000)]
Merge "iosbuild.sh: Support macosx targets in Xcode 7."

8 years agoMerge "Backport temporal filter approach to VP9"
Paul Wilkins [Thu, 10 Dec 2015 09:47:25 +0000 (09:47 +0000)]
Merge "Backport temporal filter approach to VP9"

8 years agoSync high bit-depth temporal filter
Jingning Han [Wed, 9 Dec 2015 21:43:27 +0000 (13:43 -0800)]
Sync high bit-depth temporal filter

Change-Id: Ifdcfb91416be8189569f703bee9be253d7b3d9b6

8 years agoiosbuild.sh: Support macosx targets in Xcode 7.
Tom Finegan [Wed, 9 Dec 2015 21:52:06 +0000 (13:52 -0800)]
iosbuild.sh: Support macosx targets in Xcode 7.

Xcode 7 refuses to link to x86 and x86_64 code that's built for
iphone sim, so add an extra command line flag that forces iosbuild
to use darwin15 targets.

Change-Id: I2228d458f5cccf4d26866040380a974f88d9d360

8 years agoBackport temporal filter approach to VP9
Jingning Han [Wed, 9 Dec 2015 18:10:17 +0000 (10:10 -0800)]
Backport temporal filter approach to VP9

This commit enables the new temporal filter system for VP9. For
speed 1, it improves the compression performance:
derf  0.54%
stdhd 1.62%

Change-Id: I041760044def943e464345223790d4efad70b91e

8 years agoMerge "fix null pointer crash in Win32 because esp register is broken"
Johann Koenig [Wed, 9 Dec 2015 19:31:12 +0000 (19:31 +0000)]
Merge "fix null pointer crash in Win32 because esp register is broken"

8 years agoMerge "Changes to exhaustive motion search."
Yaowu Xu [Wed, 9 Dec 2015 15:57:10 +0000 (15:57 +0000)]
Merge "Changes to exhaustive motion search."

8 years agoMerge "Add vp9_avg_4x4_neon and the unit test."
Jacky Chen [Wed, 9 Dec 2015 06:09:33 +0000 (06:09 +0000)]
Merge "Add vp9_avg_4x4_neon and the unit test."

8 years agoMerge changes Id3c6cf5c,I7970575e,If3253a87
James Zern [Wed, 9 Dec 2015 01:39:45 +0000 (01:39 +0000)]
Merge changes Id3c6cf5c,I7970575e,If3253a87

* changes:
  test.mk: simplify vp8/9 checks
  test.mk: regroup white box tests
  test.mk: enable test_intra_pred_speed unconditionally

8 years agoMerge "vp8: fix loop filter level clamping"
James Zern [Wed, 9 Dec 2015 01:38:09 +0000 (01:38 +0000)]
Merge "vp8: fix loop filter level clamping"

8 years agoMerge "vp8: fix quantizer clamping"
James Zern [Wed, 9 Dec 2015 01:37:58 +0000 (01:37 +0000)]
Merge "vp8: fix quantizer clamping"

8 years agoAdd vp9_avg_4x4_neon and the unit test.
jackychen [Thu, 3 Dec 2015 23:21:36 +0000 (15:21 -0800)]
Add vp9_avg_4x4_neon and the unit test.

Change-Id: I3ef9a9648841374ed3cc865a02053c14ad821a20

8 years agoMerge "vp9 denoiser: Re-evaluate mode selection for golden reference."
Marco Paniconi [Wed, 9 Dec 2015 00:34:09 +0000 (00:34 +0000)]
Merge "vp9 denoiser: Re-evaluate mode selection for golden reference."

8 years agoChanges to exhaustive motion search.
paulwilkins [Tue, 8 Dec 2015 15:48:24 +0000 (15:48 +0000)]
Changes to exhaustive motion search.

This change has been imported from VP9 and
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 natural video clips, however, where the step search
is performing well, the quality gain and speed impact are small.

Change-Id: Iac24152ae239f42a246f39ee5f00fe62d193cb98

8 years agoRe-enable SSE2 based intra 4x4 prediction
Jian Zhou [Tue, 8 Dec 2015 02:50:37 +0000 (18:50 -0800)]
Re-enable SSE2 based intra 4x4 prediction

4x4 Intra predictor implemented with MMX is replaced with SSE2.
Segfault in change 315561 when decoding vp8 is taken care of.

Change-Id: I083a7cb4eb8982954c20865160f91ebec777ec76

8 years agoMerge "VP9: Add ssse3 version of vpx_idct32x32_135_add()"
Scott LaVarnway [Mon, 7 Dec 2015 21:13:35 +0000 (21:13 +0000)]
Merge "VP9: Add ssse3 version of vpx_idct32x32_135_add()"

8 years agofix null pointer crash in Win32 because esp register is broken
Sergey Kolomenkin [Mon, 7 Dec 2015 20:54:57 +0000 (12:54 -0800)]
fix null pointer crash in Win32 because esp register is broken

https://bugs.chromium.org/p/webm/issues/detail?id=1105

Change-Id: I304ea85ea1f6474e26f074dc39dc0748b90d4d3d

8 years agoMerge "Strip redundant entries from .mailmap"
Johann Koenig [Mon, 7 Dec 2015 18:14:05 +0000 (18:14 +0000)]
Merge "Strip redundant entries from .mailmap"

8 years agoStrip redundant entries from .mailmap
Johann [Mon, 7 Dec 2015 17:03:00 +0000 (09:03 -0800)]
Strip redundant entries from .mailmap

Also prevent them from being reintroduced.

Change-Id: I4e16293c8185462b48e641f066d78449685e2854

8 years agoFix bug when overlaying middle arfs in multi-arf groups.
paulwilkins [Mon, 7 Dec 2015 15:23:46 +0000 (15:23 +0000)]
Fix bug when overlaying middle arfs in multi-arf groups.

Fix copied over from VP9 master to VP10 master.
Do not reset the alt ref active flag when overlaying the middle
arf(s) of a multi arf group.

Change-Id: I1b7392107e7c675640d5ee1624012f39cc374c58

8 years agoRevert "MMX in intra 4x4 prediction replaced with SSE2"
James Zern [Sat, 5 Dec 2015 18:07:10 +0000 (10:07 -0800)]
Revert "MMX in intra 4x4 prediction replaced with SSE2"

This reverts commit 89a1efa4c436c58c101c8b3de866e3014be7d77a.

This causes a segfault when decoding vp8, in both 32 and 64-bit

Change-Id: Idbb9bb28ab897e1d055340497c47b49a12231367

8 years agotest.mk: simplify vp8/9 checks
James Zern [Wed, 25 Nov 2015 06:35:15 +0000 (22:35 -0800)]
test.mk: simplify vp8/9 checks

use CONFIG_VP[89] to protect white-box tests and drop redundant
uses of CONFIG_VP9 in variable assignments within that block

Change-Id: Id3c6cf5c7822aa161b19768b295f58829a1c6447

8 years agotest.mk: regroup white box tests
James Zern [Wed, 25 Nov 2015 02:50:35 +0000 (18:50 -0800)]
test.mk: regroup white box tests

vp8/9/10/multi-config/unconditional

Change-Id: I7970575e997da0b68c6c54741a221fbba5ad0b08

8 years agoMerge "Adjust variance threshold based on source noise level."
Marco Paniconi [Sat, 5 Dec 2015 00:06:14 +0000 (00:06 +0000)]
Merge "Adjust variance threshold based on source noise level."

8 years agoMerge "comment out range_check of fdct in dct.c"
Angie Chiang [Fri, 4 Dec 2015 23:38:35 +0000 (23:38 +0000)]
Merge "comment out range_check of fdct in dct.c"

8 years agoAdjust variance threshold based on source noise level.
Marco [Fri, 4 Dec 2015 19:57:04 +0000 (11:57 -0800)]
Adjust variance threshold based on source noise level.

For non-rd variance partition: Adjust variance threhsold based
on noise level estimate. This change allows the adjustment to be
updated more frequently.

Change-Id: Ie2abf63bf3f1ee54d0bc4ff497298801fdb92b0d

8 years agoMerge changes Ie48229c2,Ib9f18468,I0c90e7c1
Jian Zhou [Fri, 4 Dec 2015 21:43:10 +0000 (21:43 +0000)]
Merge changes Ie48229c2,Ib9f18468,I0c90e7c1

* changes:
  Speed up h_predictor_16x16
  Speed up h_predictor_8x8
  MMX in intra 8x8 prediction replaced with SSE2

8 years agoSpeed up h_predictor_16x16
Jian Zhou [Thu, 26 Nov 2015 01:12:20 +0000 (17:12 -0800)]
Speed up h_predictor_16x16

Relocate the function from SSSE3 to SSE2, Unroll loop from 8 to 4,
and reduce mem access to left.
Speed up by >20% in ./test_intra_pred_speed.

Change-Id: Ie48229c2e32404706b722442942c84983bda74cc

8 years agoSpeed up h_predictor_8x8
Jian Zhou [Wed, 25 Nov 2015 20:28:39 +0000 (12:28 -0800)]
Speed up h_predictor_8x8

Relocate the function from SSSE3 to SSE2, Unroll loop from 4 to 2,
and reduce mem access to left.
Speed up by >20% in ./test_intra_pred_speed.

Change-Id: Ib9f1846819783b6e05e2a310c930eb844b2b4d2e

8 years agoMerge "Non-rd partition: Use force split on 16x16 for low resolutions."
Marco Paniconi [Fri, 4 Dec 2015 19:21:26 +0000 (19:21 +0000)]
Merge "Non-rd partition: Use force split on 16x16 for low resolutions."

8 years agocomment out range_check of fdct in dct.c
Angie Chiang [Thu, 3 Dec 2015 00:09:56 +0000 (16:09 -0800)]
comment out range_check of fdct in dct.c

The range_check is not used because the bit range
in fdct# is not correct. Since we are going to merge in a new version
of fdct# from nextgenv2, we won't fix the incorrect bit range now.

Change-Id: I54f27a6507f27bf475af302b4dbedc71c5385118

8 years agoMerge "MMX in intra 4x4 prediction replaced with SSE2"
Jian Zhou [Fri, 4 Dec 2015 18:50:58 +0000 (18:50 +0000)]
Merge "MMX in intra 4x4 prediction replaced with SSE2"

8 years agoNon-rd partition: Use force split on 16x16 for low resolutions.
Marco [Thu, 3 Dec 2015 01:15:41 +0000 (17:15 -0800)]
Non-rd partition: Use force split on 16x16 for low resolutions.

For low resolutions, whem 4x4downsample is used for variance,
use the same force split (that is used for 8x8downsample) for 16x16 blocks.

No change in metrics. Small improvement visually.

Change-Id: I915b9895902d0b9a41e75d37fee1bf3714d2366d

8 years agoMerge "Fix bug when overlaying middle arfs in multi-arf groups."
Paul Wilkins [Fri, 4 Dec 2015 10:33:55 +0000 (10:33 +0000)]
Merge "Fix bug when overlaying middle arfs in multi-arf groups."

8 years agoMMX in intra 8x8 prediction replaced with SSE2
Jian Zhou [Fri, 4 Dec 2015 02:11:06 +0000 (18:11 -0800)]
MMX in intra 8x8 prediction replaced with SSE2

8x8 Intra predictor implemented with MMX is replaced with SSE2.

Change-Id: I0c90e7c1e1e6942489ac2bfe58903b728aac7a52

8 years agoMMX in intra 4x4 prediction replaced with SSE2
Jian Zhou [Fri, 4 Dec 2015 00:39:42 +0000 (16:39 -0800)]
MMX in intra 4x4 prediction replaced with SSE2

4x4 Intra predictor implemented with MMX is replaced with SSE2.

Change-Id: Id57da2a7c38832d0356bc998790fc1989d39eafc

8 years agoMerge "vp9-noise estimate: Move level setting to a function."
Marco Paniconi [Fri, 4 Dec 2015 00:24:49 +0000 (00:24 +0000)]
Merge "vp9-noise estimate: Move level setting to a function."

8 years agovp8: fix loop filter level clamping
James Zern [Fri, 4 Dec 2015 00:18:48 +0000 (16:18 -0800)]
vp8: fix loop filter level clamping

the loop filter level is transmitted as 6-bits + sign so needs to be clamped in
the delta + absolute case.

BUG=https://bugzilla.mozilla.org/show_bug.cgi?id=1224363

Change-Id: Icbdca4fdbf043466429bd5c9d59dbe913bf153bc