Johann Koenig [Fri, 19 May 2017 17:11:30 +0000 (17:11 +0000)]
Merge "neon 4 byte helper functions"
Johann Koenig [Fri, 19 May 2017 17:08:57 +0000 (17:08 +0000)]
Merge "neon fdct: 4x4 implementation"
Paul Wilkins [Fri, 19 May 2017 12:24:32 +0000 (12:24 +0000)]
Merge "Changes to modified error."
Marco [Thu, 18 May 2017 21:12:24 +0000 (14:12 -0700)]
vp9: SVC: Modify condition to allow for copy partition.
When temporal layers are used, only allow for copy partition
on the top temporal enhancement layer frames.
Change-Id: I5472abdc0f9f6c8dafa75a7a84c615e08ae22af8
Jerome Jiang [Thu, 18 May 2017 19:37:29 +0000 (19:37 +0000)]
Merge "vp9: Make copy partition work for SVC and dynamic resize."
Marco [Tue, 16 May 2017 00:14:11 +0000 (17:14 -0700)]
vp9: Make copy partition work for SVC and dynamic resize.
Only affects speed 8.
Make changes to copy partition to fix a bug in setting microblock
offset. Avg PSNR shows 0.02% gain on rtc_derf and 0.08% loss on rtc.
Change-Id: I61c3e5914dde645331344388e7437e5638acd4f3
paulwilkins [Wed, 3 Feb 2016 15:37:32 +0000 (15:37 +0000)]
Changes to modified error.
The modified error was a derivative of the "coded_error"
that was used to allocate bits between different frames on the
assumption that the allocation should be linear in terms of this
modified error. I.e. a frame with double the modified error score
should all things being equal get double the number of bits. The
code also included upper and lower caps derived from input
VBR parameters.
This patch improves the initial calculation of the clip mean error
(now called "mean_mod_score" as it is no longer a prediction error)
used as the midpoint for the rate distribution function and normalizes
the output "modified scores" scores such that 1.0 indicates a frame
in the middle of the distribution. The VBR upper and lower caps are
then applied directly to a frame's normalized score.
This refactoring is intended to make it easier to drop in alternative
distribution functions or to base the rate allocation on a corpus wide
midpoint (rather than the clip mean).
Change-Id: I4fb09de637e93566bfc4e022b2e7d04660817195
Marco Paniconi [Wed, 17 May 2017 18:42:51 +0000 (18:42 +0000)]
Merge "vp9: Modify ChangingDropFrameThresh unittest."
Linfeng Zhang [Wed, 17 May 2017 17:53:02 +0000 (17:53 +0000)]
Merge "Update partial idct testing code"
Yaowu Xu [Wed, 17 May 2017 17:38:15 +0000 (17:38 +0000)]
Merge "Experiment. Store first pass errors as per MB values."
Marco [Wed, 17 May 2017 16:36:18 +0000 (09:36 -0700)]
vp9: Modify ChangingDropFrameThresh unittest.
Add another (lower) bitrate to the test, to cover
frame drop behavior at low bitrate range.
Change-Id: Iaad003974159daf3d2d65ef3a6575a3e72e498d6
Linfeng Zhang [Tue, 16 May 2017 23:28:18 +0000 (16:28 -0700)]
Update partial idct testing code
Add PartialIDctTest::PrintDiff() to help debugging.
In RunQuantCheck, try all combinations of +/-mask_ input for 4x4 idct.
Update PartialIDctTest::InitInput().
Change-Id: I13fd163954a4c1a3a6cfeb5e4a4d3d0e7ff901f4
Johann [Fri, 12 May 2017 18:05:03 +0000 (11:05 -0700)]
neon fdct: 4x4 implementation
Approximately twice as fast as C implementation.
BUG=webm:1424
Change-Id: I3c0307fb08ddc23df42545cd089a78e2ed5c9d3f
paulwilkins [Wed, 5 Apr 2017 09:35:54 +0000 (10:35 +0100)]
Experiment. Store first pass errors as per MB values.
Most existing first pass stats are stored in a form normalized to a
macro-block scale. However the error scores for intra / inter etc were
stored as frame level values but mainly used as MB level values.
This change fixes that. Normalized per MB values make comparisons
between different formats easier and in any case this is usually what is
wanted.
An change in results should be limited to slight differences in rounding.
*** Change after patch 8 +2 requiring new approval.
Final pre-submit testing showed one 4K clip with above expected change.
Investigation showed this was due to a value used to test for ultra low intra
complexity in key frame detection. This was a per frame not per MB value but
also did not scale with frame size. Replacement with a small per MB value
(based on original per frame value and cif frame size) resolved the KF detection
problem.
Also converted kf_group_error_left to a double in line with other error values
to reduce rounding problems in KF group bit allocation
All clips and sets now show nominal (or 0) change as expected.
Change-Id: Ic2d57980398c99ade2b7380e3e6ca6b32186901f
Linfeng Zhang [Tue, 16 May 2017 23:10:43 +0000 (16:10 -0700)]
Add transpose_32bit_4x4() and rename transpose_4x4() for vpx_dsp/x86
Change-Id: Ib57377f6cf6573c04720d3cc5dea4285362b4220
Johann Koenig [Tue, 16 May 2017 23:39:37 +0000 (23:39 +0000)]
Merge "Revert "Add visibility="protected" attribute for global variables referenced in asm files.""
Johann Koenig [Tue, 16 May 2017 22:52:15 +0000 (22:52 +0000)]
Revert "Add visibility="protected" attribute for global variables referenced in asm files."
This reverts commit
0d88e15454b632d92404dd6a7181c58d9985e2a2.
Reason for revert: chromium builds are failing to locate vpx_rv during dlopen()
dlopen failed: cannot locate symbol "vpx_rv" referenced by "libstandalonelibwebviewchromium.so"
Original change's description:
> Add visibility="protected" attribute for global variables referenced in asm files.
>
> During aosp builds with binutils-2.27, we're seeing linker error
> messages of this form:
> libvpx.a(subpixel_mmx.o): relocation R_386_GOTOFF against preemptible
> symbol vp8_bilinear_filters_x86_8 cannot be used when making a shared
> object
>
> subpixel_mmx.o is assembled from "vp8/common/x86/subpixel_mmx.asm".
> Other messages refer to symbol references from deblock_sse2.o and
> subpixel_sse2.o, also assembled from asm files.
>
> This change marks such symbols as having "protected" visibility. This
> satisfies the linker as the symbols are not preemptible from outside
> the shared library now, which I think is the original intent anyway.
>
> Change-Id: I2817f7a5f43041533d65ebf41aefd63f8581a452
>
TBR=jzern@google.com,johannkoenig@google.com,rahulchaudhry@chromium.org,builds@webmproject.org
Change-Id: I0c2ea375aa7ef5fda15b9d9e23e654bb315c941b
Marco Paniconi [Tue, 16 May 2017 22:50:28 +0000 (22:50 +0000)]
Merge "Revert "Revert "vp8: Real-time mode: reduce mode_check_freq thresh for speed 10."""
Marco Paniconi [Tue, 16 May 2017 22:50:19 +0000 (22:50 +0000)]
Revert "Revert "vp8: Real-time mode: reduce mode_check_freq thresh for speed 10.""
This reverts commit
3704807805895850671261fa4470f1ce41dd2ac9.
Reason for revert: <INSERT REASONING HERE>
Does not look to be the cause of the test failures.
Original change's description:
> Revert "vp8: Real-time mode: reduce mode_check_freq thresh for speed 10."
>
> This reverts commit
4a7424adba7a65766a92635dc67b6e7d94646693.
>
> Reason for revert: <INSERT REASONING HERE>
> Possibly causing test failures in roll into chromium.
>
> Original change's description:
> > vp8: Real-time mode: reduce mode_check_freq thresh for speed 10.
> >
> > Reduces quality regression at speed 10 for real-time mode.
> >
> > Change-Id: I9f624bea9ca262dab32ce9de7d6d91175d6becc8
> >
>
> TBR=marpan@google.com,builds@webmproject.org,jianj@google.com
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Change-Id: I1defcb74e78a5a3bd29b7d1b21a96a79fa26a457
>
TBR=marpan@google.com,builds@webmproject.org,jianj@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Change-Id: I13d86a2a68b8aa8c0c7465e6e58cff0e00bc7862
Marco Paniconi [Tue, 16 May 2017 22:48:38 +0000 (22:48 +0000)]
Merge "Revert "vp8: Real-time mode: reduce mode_check_freq thresh for speed 10.""
Marco Paniconi [Tue, 16 May 2017 22:48:13 +0000 (22:48 +0000)]
Revert "vp8: Real-time mode: reduce mode_check_freq thresh for speed 10."
This reverts commit
4a7424adba7a65766a92635dc67b6e7d94646693.
Reason for revert: <INSERT REASONING HERE>
Possibly causing test failures in roll into chromium.
Original change's description:
> vp8: Real-time mode: reduce mode_check_freq thresh for speed 10.
>
> Reduces quality regression at speed 10 for real-time mode.
>
> Change-Id: I9f624bea9ca262dab32ce9de7d6d91175d6becc8
>
TBR=marpan@google.com,builds@webmproject.org,jianj@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I1defcb74e78a5a3bd29b7d1b21a96a79fa26a457
Johann Koenig [Mon, 15 May 2017 21:21:45 +0000 (21:21 +0000)]
Merge "'protected' visibility unsupported on macho"
Johann [Sat, 13 May 2017 01:16:30 +0000 (18:16 -0700)]
neon 4 byte helper functions
When data is guaranteed to be aligned, use helper functions which
assert that requirement.
Change-Id: Ic4b188593aea0799d5bd8eda64f9858a1592a2a3
Johann [Mon, 15 May 2017 17:39:44 +0000 (10:39 -0700)]
'protected' visibility unsupported on macho
Mac builds must not specify 'protected' visibility. Then only support
'default' and 'hidden'.
https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html
Change-Id: I94eccfaa29af0ddcc4a5c1c0e14cf63ef7146462
Johann Koenig [Mon, 15 May 2017 18:15:27 +0000 (18:15 +0000)]
Merge "move neon load/stores to a new file"
Johann [Sat, 13 May 2017 01:11:31 +0000 (18:11 -0700)]
move neon load/stores to a new file
Move the tran_low_t helper functions to a new file. Additional
load/store functions will be added here.
Change-Id: I52bf652c344c585ea2f3e1230886be93f5caefc3
Marco [Fri, 12 May 2017 18:01:33 +0000 (11:01 -0700)]
vp8: Real-time mode: reduce mode_check_freq thresh for speed 10.
Reduces quality regression at speed 10 for real-time mode.
Change-Id: I9f624bea9ca262dab32ce9de7d6d91175d6becc8
Jerome Jiang [Sat, 13 May 2017 03:20:48 +0000 (03:20 +0000)]
Merge "vp9: speed 8: Fix seg fault in partition copy when drop frames."
Cheng Chen [Sat, 13 May 2017 01:29:58 +0000 (01:29 +0000)]
Merge "Speed up encoding by skipping altref recode"
Jerome Jiang [Fri, 12 May 2017 22:57:23 +0000 (15:57 -0700)]
vp9: speed 8: Fix seg fault in partition copy when drop frames.
BUG=webm:1433
Change-Id: I4f3984ef28660d3218d48007d7c977bdbdaf8af6
Rahul Chaudhry [Tue, 9 May 2017 19:00:58 +0000 (12:00 -0700)]
Add visibility="protected" attribute for global variables referenced in asm files.
During aosp builds with binutils-2.27, we're seeing linker error
messages of this form:
libvpx.a(subpixel_mmx.o): relocation R_386_GOTOFF against preemptible
symbol vp8_bilinear_filters_x86_8 cannot be used when making a shared
object
subpixel_mmx.o is assembled from "vp8/common/x86/subpixel_mmx.asm".
Other messages refer to symbol references from deblock_sse2.o and
subpixel_sse2.o, also assembled from asm files.
This change marks such symbols as having "protected" visibility. This
satisfies the linker as the symbols are not preemptible from outside
the shared library now, which I think is the original intent anyway.
Change-Id: I2817f7a5f43041533d65ebf41aefd63f8581a452
Marco Paniconi [Fri, 12 May 2017 17:02:49 +0000 (17:02 +0000)]
Merge "vp9: Use INTERP_FILTER for filter_type in vp9_rtcd_defs.pl"
James Zern [Fri, 12 May 2017 15:24:59 +0000 (15:24 +0000)]
Merge changes I1b54a7a5,I3028bdad,I59788cd9
* changes:
ppc: Add get_mb_ss_vsx
ppc: Add get4x4sse_cs_vsx
ppc: Add comp_avg_pred_vsx
Luca Barbato [Thu, 11 May 2017 03:58:34 +0000 (03:58 +0000)]
ppc: Add get_mb_ss_vsx
Change-Id: I1b54a7a5bb642e4b836d786ea1ae506eed025e3f
Luca Barbato [Thu, 11 May 2017 03:16:45 +0000 (05:16 +0200)]
ppc: Add get4x4sse_cs_vsx
Change-Id: I3028bdadf653665d18e781d28e9625f62804b3d8
Luca Barbato [Thu, 11 May 2017 01:07:09 +0000 (01:07 +0000)]
ppc: Add comp_avg_pred_vsx
Change-Id: I59788cd98231e707239c2ad95ae54f67cfe24e10
Alexandra Hájková [Mon, 8 May 2017 12:10:04 +0000 (12:10 +0000)]
ppc: Add vpx_sad64x32/64_vsx
Change-Id: I84e3705fa52f75cb91b2bab4abf5cc77585ee3e2
Alexandra Hájková [Mon, 8 May 2017 11:56:17 +0000 (11:56 +0000)]
ppc Add vpx_sad32x16/32/64_vsx
Change-Id: I3c4f9d595275669580413a71b3c3c810e7ddcacd
James Zern [Fri, 12 May 2017 13:33:50 +0000 (13:33 +0000)]
Merge "ppc: Add vpx_sad16x8/16/32_vsx"
Marco Paniconi [Fri, 12 May 2017 00:35:39 +0000 (00:35 +0000)]
Merge "vp9: Adjust speed features for speed 8 at low resoln."
Marco Paniconi [Thu, 11 May 2017 23:37:30 +0000 (23:37 +0000)]
Merge "vp9: SVC: Increase the partiiton and acskip thresholds"
Marco Paniconi [Thu, 11 May 2017 21:58:40 +0000 (21:58 +0000)]
Merge "vp9; Adjust noise estimation thresholds."
Marco [Thu, 11 May 2017 19:10:35 +0000 (12:10 -0700)]
vp9: SVC: Increase the partiiton and acskip thresholds
Increase the partition and acskip thresholds for temporal
enhancement layers.
~1-2% speedup, with negligible loss in quality.
Change-Id: Id527398a05855298ad9ddac10ada972482415627
Marco [Thu, 27 Apr 2017 19:32:03 +0000 (12:32 -0700)]
vp9: SVC: allow for setting the interp_filter in non-rd pickmode.
For SVC 1 pass non-rd pickmode, the interpolation filter for the
upsampling of the golden (spatial) reference was not being explicitly
set and instead was takin gwhatever value was set in the previous
mode/block (which would be either EIGHTTAP or EIGHTAP_SMOOTH).
Fix it to the default EIGHTTAP for now, to be updated/selected
adaptively in a later change.
Minor adjustmemt to rate targeting thresholds in datarate unittests.
Change-Id: I52085048674072c6cfb7163e11e9a2658d773826
Paul Wilkins [Thu, 11 May 2017 18:25:44 +0000 (18:25 +0000)]
Merge "Tuning of factor used to calculate Q range in two pass."
Jerome Jiang [Thu, 11 May 2017 16:38:56 +0000 (16:38 +0000)]
Merge "vp9: Fix ubsan failure in denoiser."
paulwilkins [Wed, 10 May 2017 15:07:13 +0000 (16:07 +0100)]
Tuning of factor used to calculate Q range in two pass.
A more detailed explanation of the experimentation
leading to this change can be found in:-
https://docs.google.com/a/google.com/document/d/13lsYhxgPyxUHvEess6wg9nikaonIZKY9Ak_Lpafv5Mo/edit?usp=sharing
This change gives gains across all our standard test sets for
overall psnr, ssim, fast ssim and psnr-HVS.
Values expressed as % reduction in bitrate.
Low res set -0.257, -0.192, -0.173, -0.101
Mid res set -0.233, -0.336, -0.367, -0.139
High res set -0.999, -1.039, -1.111, -0.567
NetFlix 2K set -0.734, -0.174, -0.389, -0.820
Netflix 4K set -0.814, -0.485, -0.796, -0.839
Change-Id: Ie981fb3c895c9dfcfc8682640d201a86375db5c8
Cheng Chen [Tue, 4 Apr 2017 21:39:17 +0000 (14:39 -0700)]
Speed up encoding by skipping altref recode
Speed up for speed 0.
Reduce 10+% of encoding time for hdres in speed 0,
with less than 0.1% PSNR loss.
Compute total difference of previous and current frame context probability
model. If the diff is less than the threshold, skip recoding the frame.
Borg test (positive number means performance loss):
lowres midres hdres
PSNR: 0.030 0.032 0.065
Local speed test: bitrate set at 1200
blue_sky pedestrian rush_hour
Encoding time: -10.0% -16.5% -16.5%
Change-Id: I4e2d200ea3115d48b2c3e890143596b31b8ef9e9
Marco Paniconi [Wed, 10 May 2017 23:51:44 +0000 (23:51 +0000)]
Merge "vp9: SVC: Fix setting in sample encoder."
Marco [Wed, 10 May 2017 23:46:50 +0000 (16:46 -0700)]
vp9; Adjust noise estimation thresholds.
Change-Id: Ia41a11df18e5a58d2b8bbecd11c249d357de2a8f
Marco [Wed, 10 May 2017 23:18:14 +0000 (16:18 -0700)]
vp9: SVC: Fix setting in sample encoder.
For 1 spatial layer case, scaling_num/den was not set properly.
Change-Id: I139bf70c6dffde89eed24e435bcb5d98d2029bcd
Jerome Jiang [Tue, 9 May 2017 17:49:59 +0000 (10:49 -0700)]
vp9: Fix ubsan failure in denoiser.
Fix the overflow for subtraction between two unsigned integers.
BUG=webm:1432
Change-Id: I7b665e93ba5850548810eff23258782c4f5ee15a
Linfeng Zhang [Wed, 10 May 2017 20:31:13 +0000 (20:31 +0000)]
Merge "Update specializations of idct functions"
Alexandra Hájková [Sat, 6 May 2017 13:21:19 +0000 (13:21 +0000)]
ppc: Add vpx_sad16x8/16/32_vsx
Change-Id: I60619d28fffd9809f93b1af510a50e1aa02519a9
Linfeng Zhang [Wed, 10 May 2017 18:52:32 +0000 (11:52 -0700)]
Update specializations of idct functions
Introduced append situation in Commit 0178d97 which could be
confusing. Clean a little bit and add some comments.
Change-Id: I69ad336f805aca7ce9d45515b8cd237423fadbb2
Jerome Jiang [Wed, 10 May 2017 00:23:00 +0000 (17:23 -0700)]
vp9: Wrap threshold tuning for HD only when denoiser is enabled.
Fixes a speed regression.
Change-Id: I23d942e4af17fa81fe4a366c7369b3ad537e59b0
Marco [Wed, 10 May 2017 19:04:02 +0000 (12:04 -0700)]
vp9: Use INTERP_FILTER for filter_type in vp9_rtcd_defs.pl
Change-Id: I259d152c62864b365490368051f3c3b7d7f2f1c5
Johann Koenig [Wed, 10 May 2017 18:19:50 +0000 (18:19 +0000)]
Merge changes I92eb4312,Ibb2afe4e
* changes:
subpel variance neon: add mixed sizes
sub pixel variance neon: use generic variance
Marco Paniconi [Wed, 10 May 2017 17:11:17 +0000 (17:11 +0000)]
Merge "vp9: Adjustment to noise estimation."
Marco Paniconi [Wed, 10 May 2017 17:10:51 +0000 (17:10 +0000)]
Merge "vp9: SVC: Add option to set downsampling filter type."
Marco [Wed, 10 May 2017 16:36:10 +0000 (09:36 -0700)]
vp9: Adjustment to noise estimation.
When the noise estimate is forced off due to large motion,
reset the counter and set smaller window for next estimate.
Change-Id: Ifa4ec95396134173a00d48353ad52f1b6a40c217
Marco [Tue, 2 May 2017 22:50:31 +0000 (15:50 -0700)]
vp9: SVC: Add option to set downsampling filter type.
Add option in SVC to set the filter type and phase for
the frame level downsampling filters.
For 3 spatial layers: set downsampling filter type to bilinear
and set phase to 8, for lowest spatial layer.
Change-Id: Id81f4b1ba93db19c1cd37b6a46d1281a2c61bc43
Linfeng Zhang [Tue, 9 May 2017 20:04:54 +0000 (13:04 -0700)]
Update test/partial_idct_test.cc
Makes more sense to call the corresponding partial idct C function
instead of the full idct C function as the reference.
Change-Id: Ibb7681dd063edd6307ba582c10c26c4c6a4b78c6
Linfeng Zhang [Tue, 9 May 2017 18:05:51 +0000 (11:05 -0700)]
Clean 32x32 idct C code
Change-Id: I73b8104a9e7a70ffe827c1b7ff43618f24f5d7bd
Linfeng Zhang [Mon, 8 May 2017 22:41:24 +0000 (15:41 -0700)]
Update 4x4 idct sse2 functions
It's a bit faster to call idct4_sse2() in vpx_idct4x4_16_add_sse2()
Change-Id: I1513be7a895cd2fc190f4a8297c240b17de0f876
Marco Paniconi [Mon, 8 May 2017 21:45:58 +0000 (21:45 +0000)]
Merge "vp9: SVC: Modify conditon for setting downsample filter type."
Marco [Mon, 8 May 2017 17:47:53 +0000 (10:47 -0700)]
vp9: SVC: Modify conditon for setting downsample filter type.
Base the condition on the resolution of the spatial layer.
And remove restriction on scaling factor.
Change-Id: Iad00177ce364279d85661654bff00ce7f48a672e
Johann [Mon, 1 May 2017 21:10:54 +0000 (14:10 -0700)]
neon variance: process 16 values at a time
Read in a Q register. Works on blocks of 16 and larger.
Improvement of about 20% for 64x64. The smaller blocks are faster, but
don't have quite the same level of improvement. 16x32 is only about 5%
BUG=webm:1422
Change-Id: Ie11a877c7b839e66690a48117a46657b2ac82d4b
Johann Koenig [Mon, 8 May 2017 17:34:20 +0000 (17:34 +0000)]
Merge changes Id602909a,Ib0e85608
* changes:
neon variance: process two rows of 8 at a time
neon variance: add small missing sizes
Linfeng Zhang [Mon, 8 May 2017 16:15:56 +0000 (16:15 +0000)]
Merge changes I0cfe4117,I3581d80d,Ida62c941
* changes:
Split dsp/x86/inv_txfm_sse2.c
Update highbd idct functions arguments to use uint16_t dst
Clean CONVERT_TO_BYTEPTR/SHORTPTR in idct
Marco Paniconi [Sat, 6 May 2017 02:30:59 +0000 (02:30 +0000)]
Merge "vp9: SVC: Set downsample filtertype for lowest spatial layer."
Marco [Sat, 6 May 2017 01:39:55 +0000 (18:39 -0700)]
vp9: SVC: Set downsample filtertype for lowest spatial layer.
For lowest spatial layer, in 3 layer SVC, set the
downsampling filtertype to get averaging filter.
Needed for reducing aliasing on low-res layer,
small increase in overall encoder time.
Change-Id: Ia31460123bd91b72eca49b46dd924b9f226d4563
Jerome Jiang [Sat, 6 May 2017 01:28:31 +0000 (01:28 +0000)]
Merge "vp9: Neon optimization for denoiser. Add unit tests."
Jerome Jiang [Sat, 6 May 2017 01:28:15 +0000 (01:28 +0000)]
Merge "Change target bitrate thresh in denoiser test."
Jerome Jiang [Fri, 5 May 2017 23:50:19 +0000 (16:50 -0700)]
Change target bitrate thresh in denoiser test.
An intended behavior change disabling exhaustive searches in speed
feature causes VP9/DatarateTestVP9LargeDenoiser.4threads test failure.
Change the threshold to make it pass.
BUG=webm:1429
Change-Id: Ibcbe2314c6b2525799894f5d7204fc8eb4ec2a1e
Jerome Jiang [Tue, 25 Apr 2017 22:29:43 +0000 (15:29 -0700)]
vp9: Neon optimization for denoiser. Add unit tests.
Denoiser on Neon is 5x faster than C code.
BUG=webm:1420
Change-Id: I805ab64f809ff2137354116be6213e7ec29c1dcb
Marco Paniconi [Fri, 5 May 2017 20:02:41 +0000 (20:02 +0000)]
Merge "vp9: Adjust some thresholds for noise estimation."
Marco [Fri, 5 May 2017 00:34:19 +0000 (17:34 -0700)]
vp9: Adjust some thresholds for noise estimation.
Adjust thresholds for noise estimation, for resolutions above VGA.
Tends to push cleaner/low noise clips to LowLow state.
No change in RTC metrics.
Change-Id: I739ca6b797d0a60ccd1c6c6a2775269b1f007e5e
Johann Koenig [Fri, 5 May 2017 18:22:44 +0000 (18:22 +0000)]
Merge "fdct 8x8 neon: minor comment cleanup"
Jerome Jiang [Mon, 1 May 2017 17:49:54 +0000 (10:49 -0700)]
vp9: Enable noise estimation on low res.
Set noise level to kLowLow for high motion low res clips.
Change the normalization in noise metric for low res.
Reduce the initial time-window for all resolutions.
Change-Id: Iaed39dbb50b205cd9c735dc5b84822304fb01987
Johann [Wed, 3 May 2017 19:06:29 +0000 (12:06 -0700)]
subpel variance neon: add mixed sizes
Add support for everything except block sizes of 4.
Performance is better but numbers will improve again when the variance
optimizations land.
BUG=webm:1423
Change-Id: I92eb4312b20be423fa2fe6fdb18167a604ff4d80
Johann [Tue, 2 May 2017 17:25:37 +0000 (10:25 -0700)]
sub pixel variance neon: use generic variance
When a neon version is available it will be called. This allows
decoupling the variance implementations and has no real downside. For
most configurations, the call will be #define'd to the neon
implementation.
Change-Id: Ibb2afe4e156c5610e89488504d366b3e6d1ba712
Johann [Thu, 4 May 2017 22:14:23 +0000 (15:14 -0700)]
fdct 8x8 neon: minor comment cleanup
Simplify HBD/non distinction in test.
Document why transpose_neon.h is not used
Change-Id: I17659414206ddbb8c2f1ef0d9f4a17f1745d5a52
Johann [Mon, 1 May 2017 20:19:49 +0000 (13:19 -0700)]
neon variance: process two rows of 8 at a time
When the width is equal to 8, process two rows at a time. This doubles
the speed of 8x4 and improves 8x8 by about 20%.
8x16 was using this technique already, but still improved a little bit
with the rewrite.
Also use this for vpx_get8x8var_neon
BUG=webm:1422
Change-Id: Id602909afcec683665536d11298b7387ac0a1207
Johann [Mon, 1 May 2017 16:10:06 +0000 (09:10 -0700)]
neon variance: add small missing sizes
Some of the mixed sizes were missing. They can be implemented trivially
using the existing helper function.
When comparing the previous 16x8 and 8x16 implementations, the helper
function is about 10% faster than the 16x8 version. The 8x16 is very
close, but the existing version appears to be faster.
BUG=webm:1422
Change-Id: Ib0e856083c1893e1bd399373c5fbcd6271a7f004
Yi Luo [Thu, 4 May 2017 15:43:20 +0000 (15:43 +0000)]
Merge "High bit depth inter prediction horizontal/vertical filters AVX2"
Linfeng Zhang [Wed, 3 May 2017 22:43:02 +0000 (15:43 -0700)]
Split dsp/x86/inv_txfm_sse2.c
Spin out highbd idct functions.
BUG=webm:1412
Change-Id: I0cfe4117c00039b6778c59c022eee79ad089a2af
Linfeng Zhang [Wed, 3 May 2017 20:32:08 +0000 (13:32 -0700)]
Update highbd idct functions arguments to use uint16_t dst
BUG=webm:1388
Change-Id: I3581d80d0389b99166e70987d38aba2db6c469d5
Linfeng Zhang [Tue, 2 May 2017 17:44:12 +0000 (10:44 -0700)]
Clean CONVERT_TO_BYTEPTR/SHORTPTR in idct
BUG=webm:1388
Change-Id: Ida62c941f2b836d6c9e27b427a7d5008ab6dc112
Hui Su [Wed, 3 May 2017 20:51:03 +0000 (20:51 +0000)]
Merge "vp9 level: add tentative max cpb values for high levels"
Hui Su [Wed, 3 May 2017 20:50:28 +0000 (20:50 +0000)]
Merge "Adjust alt-ref selection in define_gf_group()"
Yi Luo [Mon, 17 Apr 2017 22:43:06 +0000 (15:43 -0700)]
High bit depth inter prediction horizontal/vertical filters AVX2
User level speed improvement on i7-6700, cpu-used=1,
x86_64 Linux, bitrate, 1080p, 8Mbps, 4K, 16Mbps:
- Decoder:
1080p: ~4%
4K: ~5%
- Encoder:
1080p: ~1%
4K: ~3%
Change-Id: I51b48f9c5de0d62487d5a11aa579c97bd03dd640
Linfeng Zhang [Wed, 3 May 2017 19:17:55 +0000 (19:17 +0000)]
Merge changes I8bb660de,Ica51d780,I6037525d
* changes:
Clean specializes of idct functions
Clean add_protos of highbd idct functions
Clean add_protos of idct functions
James Zern [Wed, 3 May 2017 03:31:18 +0000 (03:31 +0000)]
Merge changes Ia5293d94,I90d481d3,Ia509d622,I54549b03,I89b635d6
* changes:
ppc: Add convolve8_vsx and convolve8_avg_vsx
ppc: Add convolve8_avg_vert_vsx
ppc: Add convolve8_vert
ppc: Add convolve8_horiz_avg
ppc: Add convolve8_horiz
Luca Barbato [Mon, 1 May 2017 17:02:03 +0000 (17:02 +0000)]
ppc: Add convolve8_vsx and convolve8_avg_vsx
Change-Id: Ia5293d948003a7fff5a7cbad6e83d8a72717c857
Luca Barbato [Mon, 1 May 2017 15:53:44 +0000 (15:53 +0000)]
ppc: Add convolve8_avg_vert_vsx
Only the generic one again, speedups for 8x8 and larger blocks to
come later.
Change-Id: I90d481d3a602d1e277ead8f3934eca126b86b72d
Luca Barbato [Mon, 1 May 2017 15:53:44 +0000 (15:53 +0000)]
ppc: Add convolve8_vert
Only the generic one again, speedups for 8x8 and larger blocks
to come later.
Change-Id: Ia509d6225984b4930ec03928c9bcbf51486da99f
Luca Barbato [Sat, 29 Apr 2017 12:34:20 +0000 (12:34 +0000)]
ppc: Add convolve8_horiz_avg
The 8x8 and larger blocks cases can be sped up further.
Change-Id: I54549b03ac6c7a4e3f485738b100c3cac7ac2e15
Luca Barbato [Sat, 29 Apr 2017 12:34:20 +0000 (12:34 +0000)]
ppc: Add convolve8_horiz
The 8x8 and larger blocks cases can be sped up further.
Change-Id: I89b635d6b01c59f523f2d54b1284ed32916c5046
Linfeng Zhang [Tue, 2 May 2017 21:14:06 +0000 (14:14 -0700)]
Clean specializes of idct functions
Change-Id: I8bb660de47b5f97263ec381dc428db96e9c9a4b2