platform/upstream/libvpx.git
8 years agovp9: Replace the avg_size_inter metric, for 1 pass vbr.
Marco [Mon, 6 Jun 2016 22:11:08 +0000 (15:11 -0700)]
vp9: Replace the avg_size_inter metric, for 1 pass vbr.

Code cleaup, use existing rolling_actual/target metrics instead,
set threshold to get same/similar effect.

Little/no change in metrics on ytlive set.

Change-Id: I74f3c3d0a143a9cf20dc9c3dee54c0f7e6a97a51

8 years agovp9: Small ajustment to settings gf_interval, 1 pass vbr.
Marco [Mon, 6 Jun 2016 18:42:09 +0000 (11:42 -0700)]
vp9: Small ajustment to settings gf_interval, 1 pass vbr.

Add a max condition and lower the min value.

No change in behavior (metrics for yt live set) for the
default min/max_gf_interval=4/16 settings.
Small positive change when min/max_gf_interval=7/16
(for 60fps clips on ytlive set).

Change-Id: I1c1d72425c86c69419ea43fb9730130e81062f91

8 years agoMerge "Move range checks into WRAPLOW"
Debargha Mukherjee [Mon, 6 Jun 2016 16:28:23 +0000 (16:28 +0000)]
Merge "Move range checks into WRAPLOW"

8 years agoMerge changes If31d36c8,I10b947e7
James Zern [Sat, 4 Jun 2016 00:56:06 +0000 (00:56 +0000)]
Merge changes If31d36c8,I10b947e7

* changes:
  vpx_dsp,add_noise: remove mmx implementation
  vpx_dsp: remove mmx variance implementations

8 years agoMerge "Fix Visual Studio build failure in filter_selectively_vert_row2() calls"
James Zern [Fri, 3 Jun 2016 20:07:47 +0000 (20:07 +0000)]
Merge "Fix Visual Studio build failure in filter_selectively_vert_row2() calls"

8 years agoMove range checks into WRAPLOW
Debargha Mukherjee [Wed, 25 May 2016 19:24:48 +0000 (12:24 -0700)]
Move range checks into WRAPLOW

Provides more comprehensive coverage for --enable-coefficient-checking.
The intent is to make the --enable-coefficient-checking option
consistent with the VP9 spec.

Change-Id: I12d0120756d17572ca2b2d7e6a2ab9d8071d8d58

8 years agoMerge "Slightly more damped VBR adjustment."
Paul Wilkins [Fri, 3 Jun 2016 17:14:12 +0000 (17:14 +0000)]
Merge "Slightly more damped  VBR adjustment."

8 years agoMerge "Change to get_twopass_worst_quality()"
Paul Wilkins [Fri, 3 Jun 2016 17:13:51 +0000 (17:13 +0000)]
Merge "Change to get_twopass_worst_quality()"

8 years agoMerge "Removed unused data structure."
Paul Wilkins [Fri, 3 Jun 2016 17:13:33 +0000 (17:13 +0000)]
Merge "Removed unused data structure."

8 years agoMerge "Adjustment to VBR rate correction."
Paul Wilkins [Fri, 3 Jun 2016 17:13:13 +0000 (17:13 +0000)]
Merge "Adjustment to VBR rate correction."

8 years agoMerge "Adjustment calculation of active worst quality."
Paul Wilkins [Fri, 3 Jun 2016 17:12:51 +0000 (17:12 +0000)]
Merge "Adjustment calculation of active worst quality."

8 years agoMerge "Remove gf_zeromotion_pct."
Paul Wilkins [Fri, 3 Jun 2016 17:12:25 +0000 (17:12 +0000)]
Merge "Remove gf_zeromotion_pct."

8 years agoFix Visual Studio build failure in filter_selectively_vert_row2() calls
Linfeng Zhang [Fri, 3 Jun 2016 16:28:11 +0000 (09:28 -0700)]
Fix Visual Studio build failure in filter_selectively_vert_row2() calls

Error messages:
 ..\vp9\common\vp9_loopfilter.c(1312): warning C4244: 'function' :
conversion from 'uint64_t' to 'unsigned int', possible loss of data
[.build-x86_64-win64-vs10\vpx.vcxproj]

..\vp9\common\vp9_loopfilter.c(1313): warning C4244: 'function' :
conversion from 'uint64_t' to 'unsigned int', possible loss of data
[.build-x86_64-win64-vs10\vpx.vcxproj]

..\vp9\common\vp9_loopfilter.c(1312): error C2220: warning treated as
error - no 'object' file generated
[.build-x86_64-win64-vs10\vpx.vcxproj]

Change-Id: Ia69260611997cd2ba41c7184a85ecead740a7c07

8 years agoMerge "Slow pshufb removal in 3 intra prediction functions."
Linfeng Zhang [Fri, 3 Jun 2016 16:35:14 +0000 (16:35 +0000)]
Merge "Slow pshufb removal in 3 intra prediction functions."

8 years agoMerge "vp9: Fix valgrind failure for short circuit on low temporal vaiance block."
Jacky Chen [Fri, 3 Jun 2016 16:09:35 +0000 (16:09 +0000)]
Merge "vp9: Fix valgrind failure for short circuit on low temporal vaiance block."

8 years agoSlightly more damped VBR adjustment.
paulwilkins [Wed, 1 Jun 2016 16:13:31 +0000 (17:13 +0100)]
Slightly more damped  VBR adjustment.

Increase in the damping used in adjusting the active Q range.
This does hurt rate accuracy a little in a few extreme cases
especially if the clip is very short*, but helps metrics.

* Note that the adjustment is applied at the GF/ARF group level based
on what happened in the last group.  Hence for very short clips where
the length of a single group may be a significant % of the clip length
there is still scope for some drift that cannot be accommodated.

In practice most data points in our test sets are now much closer to target
than was previously the case with default settings and in some cases are
better even than they were with the command line undershoot and overshoot
parameter was set very low (e.g. 2%). For example in bridge_close at high rates
the old mechanism was unable to adapt enough to prevent extreme overshoot.

Change-Id: I634f8f0e015b5ee64a9f0ccaa2bcfdbc1d360489

8 years agoChange to get_twopass_worst_quality()
paulwilkins [Fri, 27 May 2016 15:04:43 +0000 (16:04 +0100)]
Change to get_twopass_worst_quality()

Change to the calculation of the error divisor used in
get_twopass_worst_quality(). This follows on from other
changes to the rate control that impact the output of this
function.

Change-Id: I414fa9aa1e6a68a64dccea17c3712f44b8a0c10c

8 years agoRemoved unused data structure.
paulwilkins [Fri, 27 May 2016 11:59:25 +0000 (12:59 +0100)]
Removed unused data structure.

Removed unused element from TWOPASS data structure.

Change-Id: I9b662fd8eea727a7978055bc14f7c7328f048a5e

8 years agoAdjustment to VBR rate correction.
paulwilkins [Tue, 24 May 2016 14:21:13 +0000 (15:21 +0100)]
Adjustment to VBR rate correction.

Changes to the function the redistributes bits from overshoot
or undershoot throughout the rest of the clip to respond more
quickly.

Change-Id: I90f10900cdd82cf2ce1d8da4b6f91eb5934310da

8 years agoAdjustment calculation of active worst quality.
paulwilkins [Mon, 23 May 2016 12:57:11 +0000 (13:57 +0100)]
Adjustment calculation of active worst quality.

Added a factor based on the bit spend in the last arf group vs the
target to adjust the choice of the active worst quality in subsequent
groups.

Helps clips where previously there was a big overshoot or undershoot
to adapt and get closer to the target rate.

Change-Id: I67034b801679b99024409489a2273ea6fe23b8e6

8 years agoRemove gf_zeromotion_pct.
paulwilkins [Thu, 2 Jun 2016 16:34:03 +0000 (17:34 +0100)]
Remove gf_zeromotion_pct.

The use of this value is preventing rate adjustment on clips
or sections that have very little motion but high noise and
this can give rise to some sections with massive overshoot.

Change-Id: I9a65c7c1148dc5d3a7d8b23e50fc1733f3661621

8 years agovpx_dsp,add_noise: remove mmx implementation
James Zern [Fri, 3 Jun 2016 06:51:22 +0000 (23:51 -0700)]
vpx_dsp,add_noise: remove mmx implementation

a sse2 version exists, this is a reasonable modern baseline.

Change-Id: If31d36c8412d25b53f41b4a93cf02f46802c0c33

8 years agovpx_dsp: remove mmx variance implementations
James Zern [Fri, 3 Jun 2016 06:46:16 +0000 (23:46 -0700)]
vpx_dsp: remove mmx variance implementations

there are sse2 equivalents for all remaining variance implementations

Change-Id: I10b947e73fc0067688181f819b59e47966bec3d2

8 years agoMerge "ivfdec: tolerate invalid framerates"
James Zern [Fri, 3 Jun 2016 03:15:00 +0000 (03:15 +0000)]
Merge "ivfdec: tolerate invalid framerates"

8 years agovp9: Fix valgrind failure for short circuit on low temporal vaiance block.
JackyChen [Thu, 2 Jun 2016 22:41:58 +0000 (15:41 -0700)]
vp9: Fix valgrind failure for short circuit on low temporal vaiance block.

Add check for actual split before using the variance of the split.

Change-Id: If0f93248be0b16d17738675d16c90516054dad2b

8 years agoSlow pshufb removal in 3 intra prediction functions.
Linfeng Zhang [Tue, 24 May 2016 21:32:49 +0000 (14:32 -0700)]
Slow pshufb removal in 3 intra prediction functions.

Replaced vpx_d45_predictor_4x4_ssse3(), vpx_d45_predictor_8x8_ssse3()
and vpx_d207_predictor_4x4_ssse3() with
created vpx_d45_predictor_4x4_sse2(), vpx_d45_predictor_8x8_sse2()
and vpx_d207_predictor_4x4_sse2() respectively.
It's mostly neutral or slightly worse than ssse3 in good cases and
better than ssse3 in the bad cases (but still worse than using the mmx
regs).

Change-Id: Ib0237ceb71d2c57b8a93fd3170330cfed9d56bdd

8 years agoDisable short circuit feature for low temporal variance.
JackyChen [Thu, 2 Jun 2016 16:41:52 +0000 (09:41 -0700)]
Disable short circuit feature for low temporal variance.

The featrue fails in libvpx_unit_tests-valgrind. Will re-enable it after
fixing the issue.

Change-Id: I8ba132f04e98f4615b31fbff2097eda83c5e42bc

8 years agoMerge "Update filter_selectively_vert_row2()"
Linfeng Zhang [Thu, 2 Jun 2016 16:22:21 +0000 (16:22 +0000)]
Merge "Update filter_selectively_vert_row2()"

8 years agoMerge "firstpass.c: fix an UBSAN/IOC error"
Yaowu Xu [Thu, 2 Jun 2016 16:20:06 +0000 (16:20 +0000)]
Merge "firstpass.c: fix an UBSAN/IOC error"

8 years agofirstpass.c: fix an UBSAN/IOC error
Yaowu Xu [Wed, 1 Jun 2016 00:06:43 +0000 (17:06 -0700)]
firstpass.c: fix an UBSAN/IOC error

Change-Id: I579286e6741b689ae4281a35beb7b8f95c3ffce5

8 years agovp9: Skip some modes when variance is low for big blocks, for 1 pass real-time.
jackychen [Fri, 20 May 2016 20:45:46 +0000 (13:45 -0700)]
vp9: Skip some modes when variance is low for big blocks, for 1 pass real-time.

Skip intra-mode and some inter-modes (newmv, nearmv, nearestmv) for
golden frame if the variance got from choose_partitioning is very low.
Only for 1 pass real-time CBR mode and bsize >= 32x32, it has ~2.5%
speed up with less than 0.1% PSNR drop for rtc test set. Don't see
visual regression.

Change-Id: I70efbc95a1007231ae36f02c5b2fbf6cd35077ad

8 years agoUpdate filter_selectively_vert_row2()
Linfeng Zhang [Tue, 31 May 2016 17:38:01 +0000 (10:38 -0700)]
Update filter_selectively_vert_row2()

Reduce operations and jumps. perf shows CPU time reduced from 1.9% to
1.6% when decoding fdJc1_IBKJA.248.webm on Xeon E5.
Will apply the changes to vp10 after code review.

Change-Id: I9351509922855d8896ddef1ed093b3ca12619a61

8 years agoMerge "vp9: Skip computation of best_sad for newmv, unless needed."
Marco Paniconi [Wed, 1 Jun 2016 17:37:29 +0000 (17:37 +0000)]
Merge "vp9: Skip computation of best_sad for newmv, unless needed."

8 years agoFix UBSAN/IOC errors
Yaowu Xu [Tue, 31 May 2016 23:54:58 +0000 (16:54 -0700)]
Fix UBSAN/IOC errors

1. test/dct16x16_test.cc
2. test/dct32x32_test.cc
3. test/fdct8x8_test.cc

BUG=webm:1225

Change-Id: I9c9315fbd65ddb3b44f688e01ba265fd22192198

8 years agoFix VP8 encoder UBSAN/IOC errors
Yaowu Xu [Tue, 31 May 2016 23:41:49 +0000 (16:41 -0700)]
Fix VP8 encoder UBSAN/IOC errors

1. vp8/decoder/dboolhuff.c
2. vp8/decoder/dboolhuff.h
3. vp8/encoder/bitstream.c
4. vp8/encoder/boolhuff.h
5. vp8/encoder/rdopt.c

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

Change-Id: I5d315d63fd7aeaee6f3bd79178e593f3db38a6b1

8 years agoivfdec: tolerate invalid framerates
James Zern [Wed, 1 Jun 2016 00:37:59 +0000 (17:37 -0700)]
ivfdec: tolerate invalid framerates

default invalid framerates to 30, quiets warnings in corrupt / fuzzed
files

Change-Id: Ib10d2b67df83cb6f9ed1cd6ef8e0e637aa7099ff

8 years agovariance_avx2.c: UBSAN/IOC fix
Yaowu Xu [Tue, 31 May 2016 23:17:42 +0000 (16:17 -0700)]
variance_avx2.c: UBSAN/IOC fix

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

Change-Id: Ifb3bedf9b4e1b007b21aebaa4beb9ba50424efef

8 years agovp9: Skip computation of best_sad for newmv, unless needed.
Marco [Tue, 31 May 2016 16:37:26 +0000 (09:37 -0700)]
vp9: Skip computation of best_sad for newmv, unless needed.

For non-rd pickmode:
best_pred_sad, computed for NEWMV-last, is only used for
skipping golden non-zero modes. Add condition to avoid this
computation if not used (i.e, if golden nonzero modes are not used).

And remove code for computing best_pred_sad for NEWMV-golden,
since that sad is not used.

No change in behavior; small speed gain (~1%) for svc encodes.

Change-Id: Ic2cbdef6c4e9a233a57c0db0eeac8ad5fcead366

8 years agoMerge "vpx_ports/mem_ops.h: cast the lhs of bitwise shifts of 24."
Tom Finegan [Fri, 27 May 2016 18:52:04 +0000 (18:52 +0000)]
Merge "vpx_ports/mem_ops.h: cast the lhs of bitwise shifts of 24."

8 years agoMerge "acm_random,Rand9Signed: correct cast"
James Zern [Fri, 27 May 2016 18:32:05 +0000 (18:32 +0000)]
Merge "acm_random,Rand9Signed: correct cast"

8 years agoMerge "Upgrade fwht4x4_mmx() to fwht4x4_sse2() for vp9 and vp10."
Linfeng Zhang [Fri, 27 May 2016 17:51:34 +0000 (17:51 +0000)]
Merge "Upgrade fwht4x4_mmx() to fwht4x4_sse2() for vp9 and vp10."

8 years agoacm_random,Rand9Signed: correct cast
James Zern [Fri, 27 May 2016 17:33:56 +0000 (10:33 -0700)]
acm_random,Rand9Signed: correct cast

convert the random value to int16 before subtracting 256 from it; quiets
a ubsan (sanitize=integer) warning

BUG=webm:1225

Change-Id: Ibc2c5a21f30e112bd6c180f7d6a033327c38d0df

8 years agoUpgrade fwht4x4_mmx() to fwht4x4_sse2() for vp9 and vp10.
Linfeng Zhang [Tue, 17 May 2016 19:42:55 +0000 (12:42 -0700)]
Upgrade fwht4x4_mmx() to fwht4x4_sse2() for vp9 and vp10.

Function level timing test shows about 27% time saving on
a Xeon E5-2680 v2 desktop.

Rename vp9_dct_sse2.c to vp9_dct_intrin_sse2.c for vp9 and
rename dct_sse2.c to dct_intrin_sse2.c for vp10 to avoid
duplicate basenames.

Actually vp9_fwht4x4_mmx/sse2() and vp10_fwht4x4_mmx/sse2()
are identical. TODO: They should be unified later if there is
no intention to keep a duplicate.

Change-Id: I3e537b7bbd9ba417c606cd7c68c4dbbfa583f77d

8 years agovpx_ports/mem_ops.h: cast the lhs of bitwise shifts of 24.
Tom Finegan [Fri, 27 May 2016 16:16:35 +0000 (09:16 -0700)]
vpx_ports/mem_ops.h: cast the lhs of bitwise shifts of 24.

C does not allow for shifting into the sign bit of a signed
integer, and the two instances here become signed ints via
promotion. Explcitly cast them to unsigned MEM_VALUE_T to
avoid the problem.

BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=614648

Change-Id: I51165361a8c6cbb5c378cf7e4e0f4b80b3ad9a6e

8 years agoMerge "Upgrade vpx_lpf_{vertical,horizontal}_4 mmx to sse2"
Linfeng Zhang [Fri, 27 May 2016 15:47:28 +0000 (15:47 +0000)]
Merge "Upgrade vpx_lpf_{vertical,horizontal}_4 mmx to sse2"

8 years agoUpgrade vpx_lpf_{vertical,horizontal}_4 mmx to sse2
Linfeng Zhang [Thu, 19 May 2016 23:52:14 +0000 (16:52 -0700)]
Upgrade vpx_lpf_{vertical,horizontal}_4 mmx to sse2

Followed the code style of other lpf fuctions.
These 2 functions put 2 rows of data in a single xmm register,
so they have similar but not identical filter operations,
and cannot share the same macros.

Change-Id: I3bab55a5d1a1232926ac8fd1f03251acc38302bc

8 years agoMerge "Convert to unsigned int before left shift"
Yaowu Xu [Thu, 26 May 2016 21:29:49 +0000 (21:29 +0000)]
Merge "Convert to unsigned int before left shift"

8 years agoConvert to unsigned int before left shift
Yaowu Xu [Wed, 25 May 2016 21:02:22 +0000 (14:02 -0700)]
Convert to unsigned int before left shift

This is to fix overflow when 128 is left shifted by 24.

Change-Id: Ibb5f6813536d985afa003a9848c0c3dd358955a7

8 years agoMerge "Code clean of sub_pixel_variance4xh -- 2"
Scott LaVarnway [Thu, 26 May 2016 13:20:24 +0000 (13:20 +0000)]
Merge "Code clean of sub_pixel_variance4xh -- 2"

8 years agovp9: Add datarate test for 1 pass VBR mode.
Marco [Wed, 25 May 2016 21:19:01 +0000 (14:19 -0700)]
vp9: Add datarate test for 1 pass VBR mode.

Existing tests are only for CBR mode.

Change-Id: Ie3b2cd46236457748e2650901d1a347a730f38af

8 years agoMerge "Fix comments in build_intra_predictors_high()"
Yaowu Xu [Wed, 25 May 2016 19:58:18 +0000 (19:58 +0000)]
Merge "Fix comments in build_intra_predictors_high()"

8 years agoFix comments in build_intra_predictors_high()
Yaowu Xu [Tue, 24 May 2016 17:49:30 +0000 (10:49 -0700)]
Fix comments in build_intra_predictors_high()

1. Removed TODOs, no longer applicable to finalized vp9 profiles.
2. Added explanation on assumed values for highbitdepth profiles.

Change-Id: I59e0bebaaab900cc611ed284daa5fa0bdedb8097

8 years agoPrevent read to invalid RefBuffer
Yaowu Xu [Wed, 25 May 2016 16:28:36 +0000 (09:28 -0700)]
Prevent read to invalid RefBuffer

This commit adds check to validate RefBuffer before reading into the
data structure, to prevent invalid read.

BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=614701

Change-Id: Ie111e95bd18e88fa19d8b25e097cdf52b7139cb6

8 years agoMerge "remove vp9_diamond_search_sad_avx.c"
James Zern [Wed, 25 May 2016 00:08:37 +0000 (00:08 +0000)]
Merge "remove vp9_diamond_search_sad_avx.c"

8 years agoMove git version extras out of iOS shared framework bundle version
Brion Vibber [Tue, 24 May 2016 18:42:51 +0000 (11:42 -0700)]
Move git version extras out of iOS shared framework bundle version

Apple's version format specification is strictly checked on app
store submission, even for embedded frameworks:

http://apple.co/1WgelY1

    The build version number should be a string comprised of
    three non-negative, period-separated integers with the
    first integer being greater than zero. The string should
    only contain numeric (0-9) and period (.) characters.

So that's room for "1.5.0" but not for "1.5.0-906-g656f9c4".

The full version returned from 'version.sh --bare' is now
embedded under a 'VPXFullVersion' custom key in the Info.plist,
so it can still be extracted from the resulting framework.

Change-Id: If34a58d02e407379d1f1859fda533ef7f983170b

8 years agoremove vp9_diamond_search_sad_avx.c
James Zern [Tue, 24 May 2016 19:02:22 +0000 (12:02 -0700)]
remove vp9_diamond_search_sad_avx.c

vp9_diamond_search_sad_avx was disabled in:
057c1c4 disable vp9_diamond_search_sad_avx

this removes a missing prototype warning as the prototype is no longer
included in vp9_rtcd.h. the file can be restored if someone gets around
to fixing the issue.

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

Change-Id: Ia9fda4b81c53dc5fba7c31d780d761f886940b52

8 years agoCode clean of sub_pixel_variance4xh -- 2
Scott LaVarnway [Tue, 24 May 2016 11:44:05 +0000 (04:44 -0700)]
Code clean of sub_pixel_variance4xh -- 2

Replace MMX with SSE2.

Change-Id: Id8482d2589131f9427e7f36bc64413f058caf31f

8 years agovp9: Remove a redundent condition in sub-pixel filter choosing.
jackychen [Fri, 20 May 2016 21:34:41 +0000 (14:34 -0700)]
vp9: Remove a redundent condition in sub-pixel filter choosing.

Change-Id: I5cbb0f452ec9622437482b3a9496ead1253acfe0

8 years agoMerge "vp8/error_concealment: remove shift of negative value"
James Zern [Fri, 20 May 2016 19:15:52 +0000 (19:15 +0000)]
Merge "vp8/error_concealment: remove shift of negative value"

8 years agoMerge "Revert "Code clean of sub_pixel_variance4xh""
James Zern [Fri, 20 May 2016 19:11:06 +0000 (19:11 +0000)]
Merge "Revert "Code clean of sub_pixel_variance4xh""

8 years agoRevert "Code clean of sub_pixel_variance4xh"
James Zern [Fri, 20 May 2016 06:34:33 +0000 (23:34 -0700)]
Revert "Code clean of sub_pixel_variance4xh"

This reverts commit 2468163e0770108f5216b65445ce05a8241bca21.

causes valgrind errors for overread of buffer in SubpelVarianceTest

Change-Id: I448e52c76f815ac199305b71f7d169f2bc167679

8 years agoRevert "Extend the external fb interface to allocate individual planes."
James Zern [Fri, 20 May 2016 06:33:07 +0000 (23:33 -0700)]
Revert "Extend the external fb interface to allocate individual planes."

This reverts commit 6dd7f2b50a65373aa906d678cb5a29fb65531a55.

conversion warnings, crashes in 32-bit builds

Change-Id: I529ead34cd93c862dd07c9a29d8542dda2fc20ea

8 years agovp8/error_concealment: remove shift of negative value
James Zern [Fri, 20 May 2016 02:19:19 +0000 (19:19 -0700)]
vp8/error_concealment: remove shift of negative value

fixes:
shifting a negative signed value is undefined [-Wshift-negative-value]

Change-Id: I3a55f2dac7c51c0e264d40081ffce98e2abacb89

8 years agoMerge "vp9: Refactor some denoiser logic in vp9_pick_inter_mode."
Jacky Chen [Thu, 19 May 2016 23:05:32 +0000 (23:05 +0000)]
Merge "vp9: Refactor some denoiser logic in vp9_pick_inter_mode."

8 years agovp9: Refactor some denoiser logic in vp9_pick_inter_mode.
JackyChen [Mon, 16 May 2016 20:41:56 +0000 (13:41 -0700)]
vp9: Refactor some denoiser logic in vp9_pick_inter_mode.

Move the logic for rechecking zeromv on denoised block out to simplify
the function. To simplify the param passing, add a new structure
VP9_PICKMODE_CTX_DEN which is only used when denoiser is enabled.

Change-Id: Iaa9b4396dfcb8147236c02d4a1868a09103a4476

8 years agoMerge "Extend the external fb interface to allocate individual planes."
Daniele Castagna [Thu, 19 May 2016 18:01:59 +0000 (18:01 +0000)]
Merge "Extend the external fb interface to allocate individual planes."

8 years agoMerge "Clarify integer value ranges"
Yaowu Xu [Wed, 18 May 2016 23:55:05 +0000 (23:55 +0000)]
Merge "Clarify integer value ranges"

8 years agoMerge "Prevent invalid read"
Yaowu Xu [Wed, 18 May 2016 23:54:55 +0000 (23:54 +0000)]
Merge "Prevent invalid read"

8 years agoMerge "Code clean of sub_pixel_variance4xh"
James Zern [Wed, 18 May 2016 23:18:35 +0000 (23:18 +0000)]
Merge "Code clean of sub_pixel_variance4xh"

8 years agoMerge "Move, rename, and inline high_inter_predictor."
Alex Converse [Wed, 18 May 2016 21:20:04 +0000 (21:20 +0000)]
Merge "Move, rename, and inline high_inter_predictor."

8 years agoExtend the external fb interface to allocate individual planes.
Daniele Castagna [Wed, 13 Apr 2016 20:12:33 +0000 (16:12 -0400)]
Extend the external fb interface to allocate individual planes.

Change-Id: I73e1b9ea6f4c76ae539e2b3292ee4c751d9c7de4

8 years agoMerge "neon hadamard 8x8"
Johann Koenig [Wed, 18 May 2016 20:11:15 +0000 (20:11 +0000)]
Merge "neon hadamard 8x8"

8 years agoClarify integer value ranges
Yaowu Xu [Wed, 18 May 2016 17:05:38 +0000 (10:05 -0700)]
Clarify integer value ranges

This commit clarifies integer value range for vairables used in
several variance functions, also change to use proper type
conversion to reflect the value ranges.

Change-Id: Ic3234b83a912ce1ad12d1b254f3378763e15cc5c

8 years agoMove, rename, and inline high_inter_predictor.
Alex Converse [Wed, 18 May 2016 00:45:33 +0000 (17:45 -0700)]
Move, rename, and inline high_inter_predictor.

The inlining mirrors what was done with the low bit depth
inter_predictor. And the new highbd_inter_predictor name is more
consistent with other high bit depth functions.

Change-Id: I96437f745759aeec6260c6e39a974bf36f1c211c

8 years agoPrevent invalid read
Yaowu Xu [Wed, 18 May 2016 00:18:26 +0000 (17:18 -0700)]
Prevent invalid read

This commit adds a check before reading into RefBuffer to prevent OOB
read.

BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=612023

Change-Id: I5b02951932e7f457cfbe6b2e650790496b8577ae

8 years agoMerge "VP9: _get_pred_context_switchable_interp()"
Scott LaVarnway [Wed, 18 May 2016 12:42:54 +0000 (12:42 +0000)]
Merge "VP9: _get_pred_context_switchable_interp()"

8 years agoCode clean of sub_pixel_variance4xh
Scott LaVarnway [Wed, 18 May 2016 11:24:41 +0000 (04:24 -0700)]
Code clean of sub_pixel_variance4xh

Replace MMX with SSE2.

Change-Id: Ia8fcba755952804e347d7d7736f57d1f90c988a0

8 years agoVP9: _get_pred_context_switchable_interp()
Scott LaVarnway [Tue, 17 May 2016 22:26:12 +0000 (15:26 -0700)]
VP9: _get_pred_context_switchable_interp()

Remove unnecessary checks.

Change-Id: Ic7bce8277ac5f4ae88d4ab7d0ae3ab110b2f225b

8 years agoPromote to uint32_t before left shift
Yaowu Xu [Tue, 17 May 2016 18:39:57 +0000 (11:39 -0700)]
Promote to uint32_t before left shift

This commit change to promote uint8_t explicitly to uint32_t before
left shift operation.

BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=612021

Change-Id: Id7059154efb5bdfa45889dabe72aaafd46d79f23

8 years agoMerge "vp9: Update to rc-metric for keeping track of average frame size."
Marco Paniconi [Mon, 16 May 2016 21:09:46 +0000 (21:09 +0000)]
Merge "vp9: Update to rc-metric for keeping track of average frame size."

8 years agoMerge "Add level test for VP9"
Hui Su [Mon, 16 May 2016 20:55:10 +0000 (20:55 +0000)]
Merge "Add level test for VP9"

8 years agoneon hadamard 8x8
Johann [Wed, 11 May 2016 20:26:19 +0000 (13:26 -0700)]
neon hadamard 8x8

Runs about 30% faster than the C

BUG=webm:1021

Change-Id: I6809d6d84c3077ab619c53298296950e976bdaba

8 years agoAdd level test for VP9
hui su [Tue, 10 May 2016 17:59:33 +0000 (10:59 -0700)]
Add level test for VP9

Change-Id: I99f50bdd5af3f64a029c2f5f6f5fb1ff45bad67e

8 years agoMove non-zero mv bias on large block out of vp9_pick_inter_mode.
JackyChen [Fri, 13 May 2016 18:43:39 +0000 (11:43 -0700)]
Move non-zero mv bias on large block out of vp9_pick_inter_mode.

This is to simplify pick inter mode funtion and is bitexact.

Change-Id: Ib1a115bac5fbd212c626be194bcd4a6ce4af9bf2

8 years agovp9: Update to rc-metric for keeping track of average frame size.
Marco [Fri, 13 May 2016 18:41:37 +0000 (11:41 -0700)]
vp9: Update to rc-metric for keeping track of average frame size.

Rename and change to how its updated.
Only affects 1 pass vbr.

Small change in metrics (< ~0.1%) on ytlive set.

Change-Id: Ibb1fe485699b6c4a8194951c8f229abe2f64b9a5

8 years agoMerge "convolve_test: Fix high bit depth IOC runtime errors."
James Zern [Fri, 13 May 2016 17:56:41 +0000 (17:56 +0000)]
Merge "convolve_test: Fix high bit depth IOC runtime errors."

8 years agoconvolve_test: Fix high bit depth IOC runtime errors.
Tom Finegan [Fri, 13 May 2016 16:42:58 +0000 (09:42 -0700)]
convolve_test: Fix high bit depth IOC runtime errors.

Add a cast.

BUG=webm:1225

Change-Id: I34ea18ee816569485c1f1046a81fd2a0ce527ac8

8 years agoMerge "Add --enable-shared option to iosbuild.sh to build dynamic framework"
Tom Finegan [Fri, 13 May 2016 15:48:51 +0000 (15:48 +0000)]
Merge "Add --enable-shared option to iosbuild.sh to build dynamic framework"

8 years agoMerge "Change to use correct check for halfpel"
Yaowu Xu [Fri, 13 May 2016 01:27:47 +0000 (01:27 +0000)]
Merge "Change to use correct check for halfpel"

8 years agoMerge "twopass_encoder: Add frame limit argument."
Tom Finegan [Thu, 12 May 2016 16:26:29 +0000 (16:26 +0000)]
Merge "twopass_encoder: Add frame limit argument."

8 years agoAdd --enable-shared option to iosbuild.sh to build dynamic framework
Brion Vibber [Mon, 2 May 2016 16:41:59 +0000 (12:41 -0400)]
Add --enable-shared option to iosbuild.sh to build dynamic framework

Also allows use of --enable-shared when configuring for Mac OS X,
producing a bare .dylib.

Enabling the shared framework bumps the iOS deployment target to 8.0,
the minimum required to support dynamic framework deployment in apps.

When not using --enable-shared, a static library for iOS 6.0+ will still
be built.

Minimum version settings have been moved into ios-version.sh so they
can be updated in a single place.

As with the static build, unless header search paths are manually
tweaked, users must add a VPX prefix on includes, such as:

  #include <VPX/vpx/vpx_decoder.h>

A module map for headers is not yet included as inttypes.h is not
modular; this means that VPX cannot be used directly in Swift code,
but can still be pulled in through an Objective-C wrapper.

BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1092
Change-Id: I28fb06ce65e48ed167a88c14a7bfb2861989317e

8 years agoMerge "simple_encoder: Add a frame limit argument."
Tom Finegan [Thu, 12 May 2016 14:55:07 +0000 (14:55 +0000)]
Merge "simple_encoder: Add a frame limit argument."

8 years agoFix typos in control function for VP9E_SET_TARGET_LEVEL
hui su [Thu, 12 May 2016 02:15:57 +0000 (19:15 -0700)]
Fix typos in control function for VP9E_SET_TARGET_LEVEL

Change-Id: Ic797c6be579c3434681a5e9dbb3900ae49c43958

8 years agoMerge "remove mmx variance functions"
Linfeng Zhang [Wed, 11 May 2016 22:21:23 +0000 (22:21 +0000)]
Merge "remove mmx variance functions"

8 years agoMerge "vp9: Fix to quality regression issue for 1 pass."
Marco Paniconi [Wed, 11 May 2016 22:15:24 +0000 (22:15 +0000)]
Merge "vp9: Fix to quality regression issue for 1 pass."

8 years agoMerge "remove mmx sad functions"
Linfeng Zhang [Wed, 11 May 2016 22:04:41 +0000 (22:04 +0000)]
Merge "remove mmx sad functions"

8 years agosimple_encoder: Add a frame limit argument.
Tom Finegan [Mon, 9 May 2016 22:00:44 +0000 (15:00 -0700)]
simple_encoder: Add a frame limit argument.

- Add frame limit argument.
- Make all arguments required.
- Enable the VP9 simple encoder test.

Change-Id: I11d228b358ff90c60ea92e02760cb476434ea571

8 years agotwopass_encoder: Add frame limit argument.
Tom Finegan [Wed, 11 May 2016 21:50:03 +0000 (14:50 -0700)]
twopass_encoder: Add frame limit argument.

- Remove twopass_encoder test TODO re frame limit.
- Enable VP9 twopass_encoder test.

Change-Id: I0649f15aabef79a63891e997fd20b212af5672e6

8 years agovp9: Fix to quality regression issue for 1 pass.
Marco [Wed, 11 May 2016 19:18:53 +0000 (12:18 -0700)]
vp9: Fix to quality regression issue for 1 pass.

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

Issue introduced in https://chromium-review.googlesource.com/#/c/339162/.
The factor on avg_frame_qindex[INTER_FRAME] in that CL, used for q-basis to
set active_best, can cause the QP to decrease too slowly or get stuck
in some cases when max-q=63.

Removing that factor fixes the regression in issue#1217.

Change-Id: I97fe28dca3c2bc2d852b1775f39c62164e032d4f

8 years agoChange to use correct check for halfpel
Yaowu Xu [Wed, 11 May 2016 20:52:59 +0000 (13:52 -0700)]
Change to use correct check for halfpel

In motion estimation stage for subpel motion, subpel variance is
computed use bilinear interpolation. The motion vector precision
used is at 1/8 pel and three bits are used to represent the x and y
subpel offsets. Based on this, the half pel check should be against
4, not 8.

Change-Id: I1f56fa1fa3f2f5e19a20d27983efe628557f170e