platform/upstream/libvpx.git
8 years agoVP9: inline vp9_use_mv_hp()
Scott LaVarnway [Wed, 13 Jan 2016 16:02:05 +0000 (08:02 -0800)]
VP9: inline vp9_use_mv_hp()

Change-Id: Ib275bfc4c29c572d6c70e5ec6dbfc241590d3e3e

8 years agoMerge "VP9: Eliminate unnecessary nearest/near searches"
Scott LaVarnway [Tue, 12 Jan 2016 20:00:59 +0000 (20:00 +0000)]
Merge "VP9: Eliminate unnecessary nearest/near searches"

8 years agoVP9: Eliminate unnecessary nearest/near searches
Scott LaVarnway [Tue, 12 Jan 2016 13:09:06 +0000 (05:09 -0800)]
VP9: Eliminate unnecessary nearest/near searches

Prior to this patch, read_inter_block_mode_info() would
find the nearmv and nearestmv for all modes.  Now it does not
search for ZEROMV modes and breaks out early for NEARMV and
NEWMV modes.

Change-Id: Ifa7b1eaf58bb03b9c7792ea5012fef477527d0fd

8 years agoRemove experimental flag for ext_tx
Debargha Mukherjee [Fri, 8 Jan 2016 20:01:51 +0000 (12:01 -0800)]
Remove experimental flag for ext_tx

Also includes a bug fix.

Change-Id: Ia49ed00f8ffd1531c10bcf89b1f497310ee7cb82

8 years agoMerge "Modifies inter/intra coding to allow all tx types"
Debargha Mukherjee [Fri, 8 Jan 2016 20:02:41 +0000 (20:02 +0000)]
Merge "Modifies inter/intra coding to allow all tx types"

8 years agoModifies inter/intra coding to allow all tx types
Debargha Mukherjee [Wed, 6 Jan 2016 19:24:57 +0000 (11:24 -0800)]
Modifies inter/intra coding to allow all tx types

The nominal tx_type for a given mode is used as a context
to encode the actual tx_type for intra.

Results:
derflr: -0.241% BDRATE
hevcmr: -0.366% BDRATE

Change-Id: Icfe7b0a58d79bc6497a06e3441779afec6e01e21

8 years agoMerge "Update IMAGE_ABI_VERSION which wasn't updated after color_range enum was intro...
James Zern [Fri, 8 Jan 2016 02:32:38 +0000 (02:32 +0000)]
Merge "Update IMAGE_ABI_VERSION which wasn't updated after color_range enum was introduced."

8 years agoMerge "Enable encoder to avoid 8x4 or 4x8 partitions"
Yaowu Xu [Thu, 7 Jan 2016 23:00:00 +0000 (23:00 +0000)]
Merge "Enable encoder to avoid 8x4 or 4x8 partitions"

8 years agoMerge "Fix a typo"
Yaowu Xu [Thu, 7 Jan 2016 20:26:09 +0000 (20:26 +0000)]
Merge "Fix a typo"

8 years agoEnable encoder to avoid 8x4 or 4x8 partitions
Yaowu Xu [Thu, 7 Jan 2016 17:43:26 +0000 (09:43 -0800)]
Enable encoder to avoid 8x4 or 4x8 partitions

This commit enables encoder to avoid 8x4 and 4x8 partitions for
scaled reference frames when libvpx is configured and built with
--enable-better-hw-compatibility

Change-Id: I02ad65c386f5855f4325d72570c49164ed52f413

8 years agoFix a typo
Yaowu Xu [Thu, 7 Jan 2016 17:29:34 +0000 (09:29 -0800)]
Fix a typo

Change-Id: I12de2dd5e5f375551804166188d76a9ad8067b41

8 years agovp9-svc: Fix to avoid msan unitialized value.
Marco [Wed, 6 Jan 2016 19:30:02 +0000 (11:30 -0800)]
vp9-svc: Fix to avoid msan unitialized value.

Move the logic for forcing zero_mode after the
(ref_frame & flag_list) check.
This was causing an memory leak under msan:
https://bugs.chromium.org/p/webrtc/issues/detail?id=5402

Change-Id: Ie9d243369f8ed7c332f46178275945331da4fd85

8 years agoAssert no mv clamping for scaled references
Yaowu Xu [Tue, 5 Jan 2016 02:24:18 +0000 (18:24 -0800)]
Assert no mv clamping for scaled references

Under --enable-better-hw-compabibility, this commit adds the asserts
that no mv clamping is applied for scaled references, so when built
with this configure option, decoder will assert if an input bitstream
triggger mv clamping for scaled reference frames.

Change-Id: I786e86a2bbbfb5bc2d2b706a31b0ffa8fe2eb0cb

8 years agoMerge "Assert no 8x4/4x8 partition for scaled references"
Yaowu Xu [Tue, 5 Jan 2016 20:35:46 +0000 (20:35 +0000)]
Merge "Assert no 8x4/4x8 partition for scaled references"

8 years agoMerge "vp9-skin detection: Refactoring."
Marco Paniconi [Tue, 5 Jan 2016 16:56:54 +0000 (16:56 +0000)]
Merge "vp9-skin detection: Refactoring."

8 years agoAssert no 8x4/4x8 partition for scaled references
Yaowu Xu [Thu, 3 Dec 2015 01:00:26 +0000 (17:00 -0800)]
Assert no 8x4/4x8 partition for scaled references

This commit adds a new configure option:

--enable-better-hw-compatibility

The purpose of the configure option is to provide information on known
hardware decoder implementation bugs, so encoder implementers may
choose to implement their encoders in a way to avoid triggering these
decoder bugs.

The WebM team were made aware of that a number of hardware decoders
have trouble in handling the combination of scaled frame reference
frame and 8x4 or 4x8 partitions. This commit added asserts to vp9
decoder, so when built with above configure option, the decoder can
assert if an input bitstream triggers such decoder bug.

Change-Id: I386204cfa80ed16b50ebde57f886121ed76200bf

8 years agoMerge "vp10: only assume ONLY_4X4 if segmentation is disabled."
Yaowu Xu [Tue, 5 Jan 2016 02:29:05 +0000 (02:29 +0000)]
Merge "vp10: only assume ONLY_4X4 if segmentation is disabled."

8 years agoMerge "vp10: skip coding of txsz for lossless-segment blocks."
Yaowu Xu [Tue, 5 Jan 2016 02:28:58 +0000 (02:28 +0000)]
Merge "vp10: skip coding of txsz for lossless-segment blocks."

8 years agovp9-skin detection: Refactoring.
Marco [Tue, 5 Jan 2016 00:48:15 +0000 (16:48 -0800)]
vp9-skin detection: Refactoring.

Add function to compute skin map for a given block, as its
used in several places (cyclic refresh, noise estimation, and denoising).

Change-Id: Ied622908df43b6927f7fafc6c019d1867f2a24eb

8 years agovp9-svc: Set initial values for ext_buffer/flag indices.
Marco [Mon, 4 Jan 2016 20:19:56 +0000 (12:19 -0800)]
vp9-svc: Set initial values for ext_buffer/flag indices.

Set initial values for these parameters in the vp9_init_layer_context().

This also fixes an issue in the svc-bypass mode when frame flags are
passed via the vpx_codec_encode().

Change-Id: I0968f04672f8d3d2fe2cea6b8a23f79f80d7a8b1

8 years agovp10: only assume ONLY_4X4 if segmentation is disabled.
Ronald S. Bultje [Mon, 4 Jan 2016 20:13:29 +0000 (15:13 -0500)]
vp10: only assume ONLY_4X4 if segmentation is disabled.

Otherwise, per-segment lossless might mean that some segments are not
lossless and they could still want to use another mode. The per-block
tx points remain uncoded on blocks where (per the segment id) the Q
value implies lossless.

Change-Id: If210206ab1fe3dd11976797370c77f961f13dfa0

8 years agovp10: skip coding of txsz for lossless-segment blocks.
Ronald S. Bultje [Mon, 4 Jan 2016 20:20:50 +0000 (15:20 -0500)]
vp10: skip coding of txsz for lossless-segment blocks.

Change-Id: Ic23c10b6d2a9fed3abe69c6bf10e910832444f2c

8 years agoUpdate IMAGE_ABI_VERSION which wasn't updated after color_range enum was introduced.
Sasi Inguva [Mon, 4 Jan 2016 19:56:56 +0000 (11:56 -0800)]
Update IMAGE_ABI_VERSION which wasn't updated after color_range enum was introduced.

Change-Id: I83703851f65f93573ebf7d2c0d0f056ba879c07a

8 years agoMerge "Code clean of highbd_tm_predictor_32x32"
Jian Zhou [Mon, 28 Dec 2015 18:17:03 +0000 (18:17 +0000)]
Merge "Code clean of highbd_tm_predictor_32x32"

8 years agoMerge changes I0139f8e9,I7d2545fc
Jian Zhou [Mon, 28 Dec 2015 18:16:13 +0000 (18:16 +0000)]
Merge changes I0139f8e9,I7d2545fc

* changes:
  Code clean of highbd_tm_predictor_16x16
  Code clean of highbd_dc_predictor_32x32

8 years agoMerge "Fix sub8x8 motion search on scaled reference frame"
Jingning Han [Wed, 23 Dec 2015 02:34:18 +0000 (02:34 +0000)]
Merge "Fix sub8x8 motion search on scaled reference frame"

8 years agoCode clean of highbd_tm_predictor_32x32
Jian Zhou [Wed, 23 Dec 2015 00:51:57 +0000 (16:51 -0800)]
Code clean of highbd_tm_predictor_32x32

Remove the ARCH_X86_64 constraint. No performance hit on both
big core and small core.

Change-Id: I39860b62b7a0ae4acaafdca7d68f3e5820133a81

8 years agoCode clean of highbd_tm_predictor_16x16
Jian Zhou [Wed, 23 Dec 2015 00:34:40 +0000 (16:34 -0800)]
Code clean of highbd_tm_predictor_16x16

Remove the ARCH_X86_64 constraint.

Change-Id: I0139f8e998cc5525df55161c2054008d21ac24d4

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 agoFix sub8x8 motion search on scaled reference frame
Jingning Han [Fri, 11 Dec 2015 18:06:43 +0000 (10:06 -0800)]
Fix sub8x8 motion search on scaled reference frame

This commit makes the sub8x8 block rate-distortion optimization
scheme use precise motion compensated prediction to compute the rd
cost. It fixes a potential buffer overflow issue related to sub8x8
motion search on scaled reference frame.

Change-Id: I4274992ef4f54eaacfde60db045e269c13aaa2de

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