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
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
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
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
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"
Yaowu Xu [Fri, 13 May 2016 01:27:47 +0000 (01:27 +0000)]
Merge "Change to use correct check for halfpel"
Tom Finegan [Thu, 12 May 2016 16:26:29 +0000 (16:26 +0000)]
Merge "twopass_encoder: Add frame limit argument."
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
Tom Finegan [Thu, 12 May 2016 14:55:07 +0000 (14:55 +0000)]
Merge "simple_encoder: Add a frame limit argument."
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
Linfeng Zhang [Wed, 11 May 2016 22:21:23 +0000 (22:21 +0000)]
Merge "remove mmx variance functions"
Marco Paniconi [Wed, 11 May 2016 22:15:24 +0000 (22:15 +0000)]
Merge "vp9: Fix to quality regression issue for 1 pass."
Linfeng Zhang [Wed, 11 May 2016 22:04:41 +0000 (22:04 +0000)]
Merge "remove mmx sad functions"
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
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
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
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
Alex Converse [Wed, 11 May 2016 20:03:21 +0000 (20:03 +0000)]
Merge changes I412c24aa,I28a8bbf0
* changes:
mcomp: Remove an obsolete undef.
mcomp: Remove an obsolete comment.
Linfeng Zhang [Wed, 11 May 2016 19:39:42 +0000 (12:39 -0700)]
remove mmx variance functions
there are sse2 equivalents which is a reasonable modern baseline
Removed mmx variance functions:
vpx_get_mb_ss_mmx()
vpx_get8x8var_mmx()
vpx_get4x4var_mmx()
vpx_variance4x4_mmx()
vpx_variance8x8_mmx()
vpx_mse16x16_mmx()
vpx_variance16x16_mmx()
vpx_variance16x8_mmx()
vpx_variance8x16_mmx()
Change-Id: Iffaf85344c6676a3dd337c0645a2dd5deb2f86a1
Yaowu Xu [Wed, 11 May 2016 18:02:00 +0000 (18:02 +0000)]
Merge "Added a measure of rc drift."
Linfeng Zhang [Wed, 11 May 2016 17:46:46 +0000 (10:46 -0700)]
remove mmx sad functions
there are sse2 equivalents which is a reasonable modern baseline
Change-Id: Ibbe536a5ad1c2cccef6bdcc75c13b3dde35a56ba
Paul Wilkins [Wed, 11 May 2016 16:25:25 +0000 (16:25 +0000)]
Merge "Fixed 8K two pass encoder crash."
paulwilkins [Mon, 9 May 2016 11:04:09 +0000 (12:04 +0100)]
Added a measure of rc drift.
Added actual and absolute rate miss values to the opsnr.stt
stats output line.
Changes to the borg graphing may be needed before merge.
Change-Id: I1e9d548ce445d29002f0c59ebfd3957a6f15e702
paulwilkins [Thu, 5 May 2016 10:37:04 +0000 (11:37 +0100)]
Fixed 8K two pass encoder crash.
Bug found by Yunqing relating to the correction for size at 8K and
above in get_twopass_worst_quality().
The basis for the correction was changed to the linear size relative to
1080P as a baseline and the adjustment has been clamped to prevent
problems at extreme images sizes.
For 1080P the results on our test sets were neutral but the low res and
mid res sets saw a small gain (0.1%-0.2% average).
I would also expect some gains on 4k and larger content where the
previous correction was overly aggressive.
Change-Id: I30b026b5f4535e9601e3178d738066459d19c8fb
Alex Converse [Wed, 11 May 2016 01:03:15 +0000 (18:03 -0700)]
mcomp: Remove an obsolete undef.
The macro was removed in 6724676.
Change-Id: I412c24aac49bd1ff60a331a30933e0d8ae3f2dd5
Alex Converse [Wed, 11 May 2016 01:02:20 +0000 (18:02 -0700)]
mcomp: Remove an obsolete comment.
This was copied over from VP8. VP9 doesn't seem to do this buffer copy.
Change-Id: I28a8bbf0503a7f99b2cb60620ab3674adde863bb
Hui Su [Tue, 10 May 2016 23:46:14 +0000 (23:46 +0000)]
Merge "Add VP9 encoder API for level specification."
hui su [Thu, 5 May 2016 22:37:37 +0000 (15:37 -0700)]
Add VP9 encoder API for level specification.
Add control API VP9E_SET_TARGET_LEVEL that allows the encoder to
control the output bitstream level and/or keep level related
statistics.
Usage:
255 do not care about level (default)
0 keep level related stats only
10 target for level 1
11 target for level 1.1
.
.
.
62 target for level 6.2
Usage for vpxenc:
--target-level=0/255/10/11...
Change-Id: I31d1aeca19358b893e7577b4e63748c8e614034a
James Bankoski [Tue, 10 May 2016 17:12:07 +0000 (17:12 +0000)]
Merge "vpx_dsp: Rename postproc.c add_noise."
Hui Su [Tue, 10 May 2016 16:34:53 +0000 (16:34 +0000)]
Merge "Fix comment for target_bandwidth in VP9 and VP10"
Jim Bankoski [Tue, 10 May 2016 13:52:58 +0000 (06:52 -0700)]
vpx_dsp: Rename postproc.c add_noise.
Change-Id: I4906d1b79a2951e659995202b9fa97e2ea5cfba0
James Zern [Tue, 10 May 2016 01:11:55 +0000 (01:11 +0000)]
Merge "Revert "Skip inttypes.h on Darwin""
hui su [Mon, 9 May 2016 23:43:02 +0000 (16:43 -0700)]
Fix comment for target_bandwidth in VP9 and VP10
Unlike in VP8, it is in units of bits per second in VP9 and VP10.
Change-Id: Iee1936cc58cdfaff205624c2fe87cecdf7eda123
James Zern [Mon, 9 May 2016 23:37:09 +0000 (23:37 +0000)]
Revert "Skip inttypes.h on Darwin"
This reverts commit
1bec0c5a7e885ec792f6bb658eb3f34ad8f37b15.
Breaks desktop Mac builds.
Change-Id: I5b79dc29ad544357192ed16a47279716243e51dd
Alex Converse [Mon, 9 May 2016 22:16:22 +0000 (22:16 +0000)]
Merge "pickmode: Fix a pair of unsigned overflows."
Scott LaVarnway [Mon, 9 May 2016 22:15:17 +0000 (22:15 +0000)]
Merge "VPX: refactor vpx_idct16x16_1_add_sse2()"
Marco Paniconi [Mon, 9 May 2016 21:30:11 +0000 (21:30 +0000)]
Merge "vp9: 1 pass vbr: Reduce base qp for active_best_quality for inter-frames."
Tom Finegan [Mon, 9 May 2016 21:24:11 +0000 (21:24 +0000)]
Merge "convolve_test: Fix IOC runtime errors."
Johann Koenig [Mon, 9 May 2016 21:01:45 +0000 (21:01 +0000)]
Merge "Alignment is required for sad_array8"
Tom Finegan [Fri, 6 May 2016 16:43:37 +0000 (09:43 -0700)]
convolve_test: Fix IOC runtime errors.
Add a cast.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1216
Change-Id: I40627de387bc9cfba37860e7a0a4f2d4524f3431
James Bankoski [Mon, 9 May 2016 20:17:38 +0000 (20:17 +0000)]
Merge "libvpx: vpx_add_plane_noise make c match assembly"
Johann Koenig [Mon, 9 May 2016 18:40:02 +0000 (18:40 +0000)]
Merge "Remove sixtap/bilinear 4x4 neon implementations"
Johann [Sat, 7 May 2016 01:30:04 +0000 (18:30 -0700)]
Alignment is required for sad_array8
For at least some of the implementations of sdx8f, such as
vpx_sad4x4x8_sse4_1, aligned moves are used to move the results into the
array.
Change-Id: I83df5a8e657b44e906d0d8b0bc154f1e5660f7f9
Johann Koenig [Mon, 9 May 2016 18:38:58 +0000 (18:38 +0000)]
Merge changes Id13b97f4,I1d342725
* changes:
The subfunctions are only defined for sse2
Unlike non-hbd variance, opt2 is never used
Johann Koenig [Mon, 9 May 2016 18:38:12 +0000 (18:38 +0000)]
Merge "Use canonical avg_pred functions"
Alex Converse [Mon, 9 May 2016 18:21:20 +0000 (11:21 -0700)]
pickmode: Fix a pair of unsigned overflows.
block_variance: This operates on 8x8s and would be safe with a int32 *
int32 to uint32 multiply, but this is potentially unsafe for 12-bit
input. Unfortunately the code already segfaults on 12-bit input:
https://bugs.chromium.org/p/webm/issues/detail?id=1223
calculate_variance: This operates on up to a 32x32 of 8x8s and can
overflow even with 8-bit input (log2((256*32*32)**2) == 36).
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1220
Change-Id: I1ca4ff6092db9a7580da371ee9a21f403fdadc40
Marco [Mon, 9 May 2016 16:40:43 +0000 (09:40 -0700)]
vp9: 1 pass vbr: Reduce base qp for active_best_quality for inter-frames.
Reduce factor for setting base-qp for active_best_quality (for inter-frames).
Small increase in metrics on yt live set.
Change-Id: I9cf0ac797783aeddbfaf1ff510696c9035d7c5ee
Scott LaVarnway [Mon, 9 May 2016 16:50:00 +0000 (09:50 -0700)]
VPX: refactor vpx_idct16x16_1_add_sse2()
Change-Id: I431ea0d9abe764d110a1ba32a8cb15e2fdac8805
Tom Finegan [Mon, 9 May 2016 15:07:37 +0000 (15:07 +0000)]
Merge "Skip inttypes.h on Darwin"
Jim Bankoski [Sat, 7 May 2016 19:47:49 +0000 (12:47 -0700)]
libvpx: vpx_add_plane_noise make c match assembly
This change makes the c match the assembly and removes the todo's
associated with getting this to work.
Change-Id: Ie32e9ebb584a9d60399662d8bcb71b74fbd19d1e
Johann [Sat, 7 May 2016 02:06:03 +0000 (19:06 -0700)]
Use canonical avg_pred functions
Change-Id: Ibe0cc388226622561d2b4a00e5bdc1016a3c4a94
Johann [Sat, 7 May 2016 01:57:04 +0000 (18:57 -0700)]
The subfunctions are only defined for sse2
See highbd_subpel_variance_impl_sse2.asm
Change-Id: Id13b97f4f6d189ed71cdc6d52b3c4ea63dc1da05
Johann [Sat, 7 May 2016 01:38:04 +0000 (18:38 -0700)]
Unlike non-hbd variance, opt2 is never used
Change-Id: I1d342725df332c4efc6006d9e3dcb7372c41f448
Johann [Sat, 7 May 2016 00:20:15 +0000 (17:20 -0700)]
Remove sixtap/bilinear 4x4 neon implementations
These implementations rely on casting the pointers to load the data.
Clang implemented optimizations which automatically add alignment hints
to such loads. The 4x4 filters do not guarantee the necessary alignment
so the resulting assembly is broken.
https://llvm.org/bugs/show_bug.cgi?id=24421
BUG=webm:817
BUG=webm:892
Change-Id: I608885299f1f86ff83653b65e0e40d0ae87fb3fe