Marco [Wed, 8 Jun 2016 20:03:29 +0000 (13:03 -0700)]
vp9: Use nonrd_pick_partition on scene-cut, for speed 5 vbr mode.
On scene-cut detected frames (i.e., high_source_sad = 1), use
nonrd_pick_partition (over choose_part + select_part), as
the nonrd_pick partitioning is generally better.
Small positive increase in metrics on ytlive set (~0.5 - 1%).
Negligle overall speed decrease, as its only used on scene-cut frames.
Only affects 1 pass vbr mode, speed = 5.
Change-Id: I07c89cbdc75f5bb16eb8e0e2773ead0980d2de5c
Alex Converse [Wed, 8 Jun 2016 17:49:52 +0000 (17:49 +0000)]
Merge "Refactor probability savings search."
James Zern [Wed, 8 Jun 2016 02:56:00 +0000 (02:56 +0000)]
Merge "Revert "remove vp9_diamond_search_sad_avx.c""
Hui Su [Wed, 8 Jun 2016 00:33:48 +0000 (00:33 +0000)]
Merge "Avoid a potential assertion fail in optimize_b()"
Scott LaVarnway [Wed, 8 Jun 2016 00:21:01 +0000 (17:21 -0700)]
Revert "remove vp9_diamond_search_sad_avx.c"
This reverts commit
be12fefa4b7d224e9f39275a6bb4fab01b8bae3b
and commit
057c1c4034ba5b9bf360c5c1f600ebc6d0718c3a.
Also, the mismatch between the avx version and the
c version has been fixed.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1168
For a rt encode using 1080p@60fps material, up to 11% performance
improvement overall was seen.
Change-Id: Icd1f216209ebc6fc0b8da885f32f356fa4355ed0
hui su [Tue, 7 Jun 2016 22:45:04 +0000 (15:45 -0700)]
Avoid a potential assertion fail in optimize_b()
The eob of a block is not perperly set when skip_recode is true,
thus triggering assert(eob <= default_eob) to fail.
Change-Id: Ifecbe33dce2dc4903e0a80bd384dc09bf0dd8a44
James Zern [Tue, 7 Jun 2016 22:39:49 +0000 (22:39 +0000)]
Merge "ivfdec: tolerate invalid framerates (2)"
Marco Paniconi [Tue, 7 Jun 2016 22:27:33 +0000 (22:27 +0000)]
Merge "vp9: Replace the avg_size_inter metric, for 1 pass vbr."
Johann Koenig [Tue, 7 Jun 2016 21:43:55 +0000 (21:43 +0000)]
Merge changes I999ef597,Ic6dc9f53
* changes:
configure: Add -mstackrealign flags to CFLAGS on OS/2
vpx: Add OS/2-specific threading codes
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
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
Debargha Mukherjee [Mon, 6 Jun 2016 16:28:23 +0000 (16:28 +0000)]
Merge "Move range checks into WRAPLOW"
James Zern [Sat, 4 Jun 2016 01:04:54 +0000 (18:04 -0700)]
ivfdec: tolerate invalid framerates (2)
add an upper bound to the framerate denominator above which 30fps will
be reported; fixes warning in corrupt / fuzzed files
Change-Id: I46a6a6f34ab756535cd009fe12273d83dcc1e9f1
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
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"
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
Paul Wilkins [Fri, 3 Jun 2016 17:14:12 +0000 (17:14 +0000)]
Merge "Slightly more damped VBR adjustment."
Paul Wilkins [Fri, 3 Jun 2016 17:13:51 +0000 (17:13 +0000)]
Merge "Change to get_twopass_worst_quality()"
Paul Wilkins [Fri, 3 Jun 2016 17:13:33 +0000 (17:13 +0000)]
Merge "Removed unused data structure."
Paul Wilkins [Fri, 3 Jun 2016 17:13:13 +0000 (17:13 +0000)]
Merge "Adjustment to VBR rate correction."
Paul Wilkins [Fri, 3 Jun 2016 17:12:51 +0000 (17:12 +0000)]
Merge "Adjustment calculation of active worst quality."
Paul Wilkins [Fri, 3 Jun 2016 17:12:25 +0000 (17:12 +0000)]
Merge "Remove gf_zeromotion_pct."
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
Linfeng Zhang [Fri, 3 Jun 2016 16:35:14 +0000 (16:35 +0000)]
Merge "Slow pshufb removal in 3 intra prediction functions."
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."
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
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
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
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
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
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
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
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
James Zern [Fri, 3 Jun 2016 03:15:00 +0000 (03:15 +0000)]
Merge "ivfdec: tolerate invalid framerates"
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
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
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
Linfeng Zhang [Thu, 2 Jun 2016 16:22:21 +0000 (16:22 +0000)]
Merge "Update filter_selectively_vert_row2()"
Yaowu Xu [Thu, 2 Jun 2016 16:20:06 +0000 (16:20 +0000)]
Merge "firstpass.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
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
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
Marco Paniconi [Wed, 1 Jun 2016 17:37:29 +0000 (17:37 +0000)]
Merge "vp9: Skip computation of best_sad for newmv, unless needed."
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
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
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
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
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
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."
James Zern [Fri, 27 May 2016 18:32:05 +0000 (18:32 +0000)]
Merge "acm_random,Rand9Signed: correct cast"
Linfeng Zhang [Fri, 27 May 2016 17:51:34 +0000 (17:51 +0000)]
Merge "Upgrade fwht4x4_mmx() to fwht4x4_sse2() for vp9 and vp10."
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
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
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
Linfeng Zhang [Fri, 27 May 2016 15:47:28 +0000 (15:47 +0000)]
Merge "Upgrade 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
Yaowu Xu [Thu, 26 May 2016 21:29:49 +0000 (21:29 +0000)]
Merge "Convert 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
Scott LaVarnway [Thu, 26 May 2016 13:20:24 +0000 (13:20 +0000)]
Merge "Code clean of sub_pixel_variance4xh -- 2"
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
Alex Converse [Wed, 25 May 2016 17:28:03 +0000 (10:28 -0700)]
Refactor probability savings search.
- Avoid excessive copying
- Don't both searching if no update can possibly offer savings
- Simplify the interface
- Remove the confusing vp9_cost_upd256 macro
Change-Id: Id9d9676a361fd1203b27e930cd29c23b2813ce59
Yaowu Xu [Wed, 25 May 2016 19:58:18 +0000 (19:58 +0000)]
Merge "Fix 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
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
James Zern [Wed, 25 May 2016 00:08:37 +0000 (00:08 +0000)]
Merge "remove vp9_diamond_search_sad_avx.c"
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
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
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
KO Myung-Hun [Sun, 22 May 2016 08:44:49 +0000 (17:44 +0900)]
configure: Add -mstackrealign flags to CFLAGS on OS/2
Many codes require -mstackrealign flags. Although -mstackrealign has
been already added to CFLAGS of some modules, SIGSEGV occurs in other
modules than those modules.
The best way may be to find causes and to fix them. However, we
cannot know those causes until SIGSEGV occur really. In addition, if
SIGSEGV occurs in other programs, it will be fatal.
So adding -mstackrealign flags to CFLAGS unconditionally is
reasonable.
Change-Id: I999ef597a6afe97f5e7cc7bffaa866537c3eedd2
KO Myung-Hun [Sun, 22 May 2016 04:57:07 +0000 (13:57 +0900)]
vpx: Add OS/2-specific threading codes
With correction of a type of a thread function for new threading
codes.
Change-Id: Ic6dc9f530698800d1cfe2da327848e8f8b62e31f
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
James Zern [Fri, 20 May 2016 19:15:52 +0000 (19:15 +0000)]
Merge "vp8/error_concealment: remove shift of negative value"
James Zern [Fri, 20 May 2016 19:11:06 +0000 (19:11 +0000)]
Merge "Revert "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
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
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
Jacky Chen [Thu, 19 May 2016 23:05:32 +0000 (23:05 +0000)]
Merge "vp9: 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
Daniele Castagna [Thu, 19 May 2016 18:01:59 +0000 (18:01 +0000)]
Merge "Extend the external fb interface to allocate individual planes."
Yaowu Xu [Wed, 18 May 2016 23:55:05 +0000 (23:55 +0000)]
Merge "Clarify integer value ranges"
Yaowu Xu [Wed, 18 May 2016 23:54:55 +0000 (23:54 +0000)]
Merge "Prevent invalid read"
James Zern [Wed, 18 May 2016 23:18:35 +0000 (23:18 +0000)]
Merge "Code clean of sub_pixel_variance4xh"
Alex Converse [Wed, 18 May 2016 21:20:04 +0000 (21:20 +0000)]
Merge "Move, rename, and inline high_inter_predictor."
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
Johann Koenig [Wed, 18 May 2016 20:11:15 +0000 (20:11 +0000)]
Merge "neon hadamard 8x8"
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
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
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
Scott LaVarnway [Wed, 18 May 2016 12:42:54 +0000 (12:42 +0000)]
Merge "VP9: _get_pred_context_switchable_interp()"
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
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
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
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."
Hui Su [Mon, 16 May 2016 20:55:10 +0000 (20:55 +0000)]
Merge "Add level test for VP9"
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
hui su [Tue, 10 May 2016 17:59:33 +0000 (10:59 -0700)]
Add level test for VP9
Change-Id: I99f50bdd5af3f64a029c2f5f6f5fb1ff45bad67e
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
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
James Zern [Fri, 13 May 2016 17:56:41 +0000 (17:56 +0000)]
Merge "convolve_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