]> granicus.if.org Git - libvpx/log
libvpx
7 years agovp8: Clean up skin detection.
Jerome Jiang [Wed, 31 May 2017 21:57:10 +0000 (14:57 -0700)]
vp8: Clean up skin detection.

Use only the average of center 2x2 pixels in vp8.

Change-Id: I2b23ff19a90827226273e0fca49e90c734eda59b

7 years agoMerge "comp_avg_pred neon: used by sub pixel avg variance"
Johann Koenig [Wed, 31 May 2017 18:17:27 +0000 (18:17 +0000)]
Merge "comp_avg_pred neon: used by sub pixel avg variance"

7 years agoMerge "Write skin map of vp8 skin detection for debug."
Jerome Jiang [Wed, 31 May 2017 16:37:07 +0000 (16:37 +0000)]
Merge "Write skin map of vp8 skin detection for debug."

7 years agoMerge "Update vpx_highbd_idct4x4_16_add_sse2()"
Linfeng Zhang [Wed, 31 May 2017 15:56:19 +0000 (15:56 +0000)]
Merge "Update vpx_highbd_idct4x4_16_add_sse2()"

7 years agocomp_avg_pred neon: used by sub pixel avg variance
Johann [Wed, 3 May 2017 21:58:52 +0000 (14:58 -0700)]
comp_avg_pred neon: used by sub pixel avg variance

BUG=webm:1423

Change-Id: I33de537f238f58f89b7a6c1c2d6e8110de4b8804

7 years agoWrite skin map of vp8 skin detection for debug.
Jerome Jiang [Fri, 26 May 2017 23:20:49 +0000 (16:20 -0700)]
Write skin map of vp8 skin detection for debug.

Change-Id: Ica1b4e918aa759cd0ce65920f9d88452bbf9e3b4

7 years agoUpdate vpx_highbd_idct4x4_16_add_sse2()
Linfeng Zhang [Mon, 22 May 2017 23:04:05 +0000 (16:04 -0700)]
Update vpx_highbd_idct4x4_16_add_sse2()

BUG=webm:1412

Change-Id: I26e4b34ae9bc1ae80c24f56d740d737a95f1ab84

7 years agoMerge "comp_avg_pred: alignment"
Johann Koenig [Tue, 30 May 2017 16:21:05 +0000 (16:21 +0000)]
Merge "comp_avg_pred: alignment"

7 years agoMerge "remove DECLARE_ALIGNED from neon code"
Johann Koenig [Tue, 30 May 2017 15:58:16 +0000 (15:58 +0000)]
Merge "remove DECLARE_ALIGNED from neon code"

7 years agocomp_avg_pred: alignment
Johann [Tue, 30 May 2017 14:46:43 +0000 (07:46 -0700)]
comp_avg_pred: alignment

x86 requires 16 byte alignment for some vector loads/stores.

arm does not have the same requirement.

The asserts are still in avg_pred_sse2.c. This just removes them from
the common code.

Change-Id: Ic5175c607a94d2abf0b80d431c4e30c8a6f731b6

7 years agoMerge "Fix vp8 race when build --enable-vp9-highbitdepth."
Jerome Jiang [Tue, 30 May 2017 05:47:44 +0000 (05:47 +0000)]
Merge "Fix vp8 race when build --enable-vp9-highbitdepth."

7 years agoremove DECLARE_ALIGNED from neon code
Johann [Fri, 26 May 2017 17:41:57 +0000 (10:41 -0700)]
remove DECLARE_ALIGNED from neon code

Unlike x86 neon only requires type alignment when loading into vectors.

Change-Id: I7bbbe4d51f78776e499ce137578d8c0effdbc02f

7 years agoMerge "subpel variance neon: reduce stack usage"
Johann Koenig [Fri, 26 May 2017 17:25:46 +0000 (17:25 +0000)]
Merge "subpel variance neon: reduce stack usage"

7 years agoMerge "Use vdup instead of vmov"
Johann Koenig [Fri, 26 May 2017 17:25:23 +0000 (17:25 +0000)]
Merge "Use vdup instead of vmov"

7 years agoFix vp8 race when build --enable-vp9-highbitdepth.
Jerome Jiang [Sat, 20 May 2017 00:07:09 +0000 (17:07 -0700)]
Fix vp8 race when build --enable-vp9-highbitdepth.

Split vp8/vp9 implementations on yv12_copy_frame_c.
Remove high-bitdepth codes from vp8_yv12_extend_frame_borders_c.
Clean up vp8 codes usage in vp9.

BUG=webm:1435

Change-Id: Ic68e79e9d71e1b20ddfc451fb8dcf2447861236d

7 years agovp9: SVC: Fix to condiiton on using source_sad.
Marco [Fri, 26 May 2017 15:43:32 +0000 (08:43 -0700)]
vp9: SVC: Fix to condiiton on using source_sad.

Fix the condition on usage of source_sad for temporal layers.
FIx allows it to be used for the case of 1 temporal layer.

Change-Id: I02b1b0ade67a7889d1b93cee66d27c0951131fc3

7 years agoMerge "vp9: Use source_sad only on top temporal enhancement layer."
Marco Paniconi [Fri, 26 May 2017 05:24:05 +0000 (05:24 +0000)]
Merge "vp9: Use source_sad only on top temporal enhancement layer."

7 years agoMerge "vp9: SVC: Enable copy partition for SVC speed >= 7."
Marco Paniconi [Fri, 26 May 2017 05:23:47 +0000 (05:23 +0000)]
Merge "vp9: SVC: Enable copy partition for SVC speed >= 7."

7 years agovp9: Use source_sad only on top temporal enhancement layer.
Marco [Thu, 25 May 2017 23:29:48 +0000 (16:29 -0700)]
vp9: Use source_sad only on top temporal enhancement layer.

For 1 pass CBR SVC mode.

Change-Id: Ic026740f9d0ec5eee7c5845be9c5b15884fec48d

7 years agoRefactor: Move vp8 skin detection to new files.
Jerome Jiang [Thu, 25 May 2017 20:58:20 +0000 (13:58 -0700)]
Refactor: Move vp8 skin detection to new files.

Change-Id: If760f28cbbf22beac1cc9bd1546f13831e9dd3f0

7 years agovp9: SVC: Enable copy partition for SVC speed >= 7.
Marco [Thu, 25 May 2017 18:01:25 +0000 (11:01 -0700)]
vp9: SVC: Enable copy partition for SVC speed >= 7.

Adjust the max_copied_frame setting for temporal layers.
Keep the same setting for non-SVC at speed 8.
This change also enables copy_partiton for non-SVC at speed 7,
but with smaller value of max_copied_frame (=2).

~2% speedup for SVC speed 7, 3 layers, with little/no quality loss.

Change-Id: Ic65ac9aad764ec65a35770d263424b2393ec6780

7 years agosubpel variance neon: reduce stack usage
Johann [Wed, 24 May 2017 18:52:42 +0000 (11:52 -0700)]
subpel variance neon: reduce stack usage

Unlike x86, arm does not impose additional alignment restrictions on
vector loads. For incoming values to the first pass, it uses vld1_u32()
which typically does impose a 4 byte alignment. However, as the first
pass operates on user-supplied values we must prepare for unaligned
values anyway (and have, see mem_neon.h).

But for the local temporary values there is no stride and the load will
use vld1_u8 which does not require 4 byte alignment.

There are 3 temporary structures. In the C, one is uint16_t. The arm
saturates between passes but still passes tests. If this becomes an
issue new functions will be needed.

Change-Id: I3c9d4701bfeb14b77c783d0164608e621bfecfb1

7 years agoUse vdup instead of vmov
Johann [Wed, 24 May 2017 18:38:15 +0000 (11:38 -0700)]
Use vdup instead of vmov

Change-Id: Idb6248c1429b55176bb3e9f4e8365ea0ed2be62a

7 years agoMerge changes Iaab2b9a1,Idfb458d3
Johann Koenig [Wed, 24 May 2017 18:33:53 +0000 (18:33 +0000)]
Merge changes Iaab2b9a1,Idfb458d3

* changes:
  sub pel avg variance neon: 4x block sizes
  sub pel variance neon: 4x block sizes

7 years agoMerge changes I31fa6ef8,I228c6f29
Johann Koenig [Wed, 24 May 2017 18:32:01 +0000 (18:32 +0000)]
Merge changes I31fa6ef8,I228c6f29

* changes:
  sub pel avg variance neon: add neon optimizations
  sub pel variance neon: normalize variable names

7 years agoMerge "partial_idct_test,InitInput: fix rollover in mult"
James Zern [Wed, 24 May 2017 16:27:21 +0000 (16:27 +0000)]
Merge "partial_idct_test,InitInput: fix rollover in mult"

7 years agopartial_idct_test,InitInput: fix rollover in mult
James Zern [Wed, 24 May 2017 13:25:44 +0000 (15:25 +0200)]
partial_idct_test,InitInput: fix rollover in mult

promote coeff to signed 64-bit to avoid exceeding integer bounds when
squaring the value

Change-Id: If77bef6bc0a6a4c39ca3013e5e2ddb426a1c6e1f

7 years agoUpdate inv_txfm_sse2.h and inv_txfm_sse2.c
Linfeng Zhang [Mon, 22 May 2017 22:37:15 +0000 (15:37 -0700)]
Update inv_txfm_sse2.h and inv_txfm_sse2.c

Extract shared code into inline functions.

Change-Id: Iee1e5a4bc6396aeed0d301163095c9b21aa66b2f

7 years agoUpdate InitInput() in test/partial_idct_test.cc
Linfeng Zhang [Mon, 22 May 2017 22:46:28 +0000 (15:46 -0700)]
Update InitInput() in test/partial_idct_test.cc

Make it work in high bit depth.

BUG=webm:1412

Change-Id: Ic5cfd410a69709f01e2924774356a108a349d273

7 years agoAdd support for Visual Studio 2017
Gregor Jasny [Tue, 23 May 2017 07:30:44 +0000 (09:30 +0200)]
Add support for Visual Studio 2017

BUG=webm:1428

Change-Id: Iba98aef1159724d106cf39b94d7b69843d76cd48

7 years agosub pel avg variance neon: 4x block sizes
Johann [Thu, 4 May 2017 21:48:43 +0000 (14:48 -0700)]
sub pel avg variance neon: 4x block sizes

BUG=webm:1423

Change-Id: Iaab2b9a183fdb54aae5f717aba95d90dc36a9e3b

7 years agosub pel variance neon: 4x block sizes
Johann [Thu, 4 May 2017 15:39:12 +0000 (08:39 -0700)]
sub pel variance neon: 4x block sizes

Add optimizations for blocks of width 4

BUG=webm:1423

Change-Id: Idfb458d36db3014d48fbfbe7f5462aa6eb249938

7 years agosub pel avg variance neon: add neon optimizations
Johann [Wed, 3 May 2017 19:28:32 +0000 (12:28 -0700)]
sub pel avg variance neon: add neon optimizations

These are missing an optimized version of vpx_comp_avg_pred

BUG=webm:1423

Change-Id: I31fa6ef842e98f7ff3ea079ffed51ae33178e2ed

7 years agosub pel variance neon: normalize variable names
Johann [Wed, 3 May 2017 19:12:44 +0000 (12:12 -0700)]
sub pel variance neon: normalize variable names

match vpx_dsp/variance.c variable names

Change-Id: I228c6f296c183af147b079b7c8bcdf97bd09cf3a

7 years agoMerge "Add vpx_highbd_idct{4x4,8x8,16x16}_1_add_sse2"
Linfeng Zhang [Mon, 22 May 2017 20:58:17 +0000 (20:58 +0000)]
Merge "Add vpx_highbd_idct{4x4,8x8,16x16}_1_add_sse2"

7 years agovariance neon: assert overflow conditions
Johann [Thu, 4 May 2017 16:07:28 +0000 (09:07 -0700)]
variance neon: assert overflow conditions

Change-Id: I12faca82d062eb33dc48dfeb39739b25112316cd

7 years agoAdd vpx_highbd_idct{4x4,8x8,16x16}_1_add_sse2
Linfeng Zhang [Wed, 17 May 2017 19:37:23 +0000 (12:37 -0700)]
Add vpx_highbd_idct{4x4,8x8,16x16}_1_add_sse2

BUG=webm:1412

Change-Id: Ia338a6057d36f9ed7eaa9cbd4dfbf0c3cbdc6468

7 years agoneon variance: special case 4x
Johann [Mon, 15 May 2017 23:30:00 +0000 (16:30 -0700)]
neon variance: special case 4x

The sub pixel variance uses a temp buffer which guarantees width ==
stride. Take advantage of this with the 4x and avoid the very costly
lane loads.

Change-Id: Ia0c97eb8c29dc8dfa6e51a29dff9b75b3c6726f1

7 years agoMerge changes Ib8dd96f7,Ie9854b77
Johann Koenig [Mon, 22 May 2017 17:48:32 +0000 (17:48 +0000)]
Merge changes Ib8dd96f7,Ie9854b77

* changes:
  neon variance: process 4x blocks
  use memcpy for unaligned neon stores

7 years agoMerge "vp9: Adjustments to cyclic refresh for high motion."
Marco Paniconi [Mon, 22 May 2017 06:27:30 +0000 (06:27 +0000)]
Merge "vp9: Adjustments to cyclic refresh for high motion."

7 years agovp9: Adjustments to cyclic refresh for high motion.
Marco [Mon, 22 May 2017 05:15:28 +0000 (22:15 -0700)]
vp9: Adjustments to cyclic refresh for high motion.

For aq-mode=3: refactor the condition for turning off
the refresh. Add some adjustments for high motion content.

No/little change in RTC metrics, only affects high motion case.

Change-Id: I7da8eabfb0e61db014be4562806f72ee5ef4a43b

7 years agovp9: Speed >= 8: Modify condition for low-resoln.
Marco [Mon, 22 May 2017 05:12:38 +0000 (22:12 -0700)]
vp9: Speed >= 8: Modify condition for low-resoln.

No change on RTC metrics.

Change-Id: I5abc573cb56572188d900645d13ba479f55a1ea0

7 years agoMerge "neon 4 byte helper functions"
Johann Koenig [Fri, 19 May 2017 17:11:30 +0000 (17:11 +0000)]
Merge "neon 4 byte helper functions"

7 years agoMerge "neon fdct: 4x4 implementation"
Johann Koenig [Fri, 19 May 2017 17:08:57 +0000 (17:08 +0000)]
Merge "neon fdct: 4x4 implementation"

7 years agoMerge "Changes to modified error."
Paul Wilkins [Fri, 19 May 2017 12:24:32 +0000 (12:24 +0000)]
Merge "Changes to modified error."

7 years agovp9: SVC: Modify condition to allow for copy partition.
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

7 years agoMerge "vp9: Make copy partition work for SVC and dynamic resize."
Jerome Jiang [Thu, 18 May 2017 19:37:29 +0000 (19:37 +0000)]
Merge "vp9: Make copy partition work for SVC and dynamic resize."

7 years agovp9: 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

7 years agoChanges to modified error.
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

7 years agoneon variance: process 4x blocks
Johann [Tue, 2 May 2017 14:31:05 +0000 (07:31 -0700)]
neon variance: process 4x blocks

Continue processing sets of 16 values. Plenty of improvement for 4x8
(doubles the speed) but only about 30% for 4x4.

BUG=webm:1422

Change-Id: Ib8dd96f75d474f0348800271d11e58356b620905

7 years agouse memcpy for unaligned neon stores
Johann [Sat, 13 May 2017 01:14:27 +0000 (18:14 -0700)]
use memcpy for unaligned neon stores

Advise the compiler that the store is eventually going to a uint8_t
buffer. This helps avoid getting alignment hints which would cause the
memory access to fail.

Originally added as a workaround for clang:
https://bugs.llvm.org//show_bug.cgi?id=24421

Change-Id: Ie9854b777cfb2f4baaee66764f0e51dcb094d51e

7 years agoMerge "vp9: Modify ChangingDropFrameThresh unittest."
Marco Paniconi [Wed, 17 May 2017 18:42:51 +0000 (18:42 +0000)]
Merge "vp9: Modify ChangingDropFrameThresh unittest."

7 years agoMerge "Update partial idct testing code"
Linfeng Zhang [Wed, 17 May 2017 17:53:02 +0000 (17:53 +0000)]
Merge "Update partial idct testing code"

7 years agoMerge "Experiment. Store first pass errors as per MB values."
Yaowu Xu [Wed, 17 May 2017 17:38:15 +0000 (17:38 +0000)]
Merge "Experiment. Store first pass errors as per MB values."

7 years agovp9: Modify ChangingDropFrameThresh unittest.
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

7 years agoUpdate partial idct testing code
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

7 years agoneon fdct: 4x4 implementation
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

7 years agoExperiment. Store first pass errors as per MB values.
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

7 years agoAdd transpose_32bit_4x4() and rename transpose_4x4() for vpx_dsp/x86
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

7 years agoMerge "Revert "Add visibility="protected" attribute for global variables referenced...
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.""

7 years agoRevert "Add visibility="protected" attribute for global variables referenced in asm...
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

7 years agoMerge "Revert "Revert "vp8: Real-time mode: reduce mode_check_freq thresh for speed...
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."""

7 years agoRevert "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

7 years agoMerge "Revert "vp8: Real-time mode: reduce mode_check_freq thresh for speed 10.""
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.""

7 years agoRevert "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

7 years agoMerge "'protected' visibility unsupported on macho"
Johann Koenig [Mon, 15 May 2017 21:21:45 +0000 (21:21 +0000)]
Merge "'protected' visibility unsupported on macho"

7 years agoneon 4 byte helper functions
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

7 years ago'protected' visibility unsupported on macho
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

7 years agoMerge "move neon load/stores to a new file"
Johann Koenig [Mon, 15 May 2017 18:15:27 +0000 (18:15 +0000)]
Merge "move neon load/stores to a new file"

7 years agomove 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

7 years agovp8: Real-time mode: reduce mode_check_freq thresh for speed 10.
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

7 years agoMerge "vp9: speed 8: Fix seg fault in partition copy when drop frames."
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."

7 years agoMerge "Speed up encoding by skipping altref recode"
Cheng Chen [Sat, 13 May 2017 01:29:58 +0000 (01:29 +0000)]
Merge "Speed up encoding by skipping altref recode"

7 years agovp9: speed 8: Fix seg fault in partition copy when drop frames.
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

7 years agoAdd visibility="protected" attribute for global variables referenced in asm files.
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

7 years agoMerge "vp9: Use INTERP_FILTER for filter_type in vp9_rtcd_defs.pl"
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"

7 years agoMerge changes I1b54a7a5,I3028bdad,I59788cd9
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

7 years agoppc: Add get_mb_ss_vsx
Luca Barbato [Thu, 11 May 2017 03:58:34 +0000 (03:58 +0000)]
ppc: Add get_mb_ss_vsx

Change-Id: I1b54a7a5bb642e4b836d786ea1ae506eed025e3f

7 years agoppc: Add get4x4sse_cs_vsx
Luca Barbato [Thu, 11 May 2017 03:16:45 +0000 (05:16 +0200)]
ppc: Add get4x4sse_cs_vsx

Change-Id: I3028bdadf653665d18e781d28e9625f62804b3d8

7 years agoppc: Add comp_avg_pred_vsx
Luca Barbato [Thu, 11 May 2017 01:07:09 +0000 (01:07 +0000)]
ppc: Add comp_avg_pred_vsx

Change-Id: I59788cd98231e707239c2ad95ae54f67cfe24e10

7 years agoppc: Add vpx_sad64x32/64_vsx
Alexandra Hájková [Mon, 8 May 2017 12:10:04 +0000 (12:10 +0000)]
ppc: Add vpx_sad64x32/64_vsx

Change-Id: I84e3705fa52f75cb91b2bab4abf5cc77585ee3e2

7 years agoppc Add vpx_sad32x16/32/64_vsx
Alexandra Hájková [Mon, 8 May 2017 11:56:17 +0000 (11:56 +0000)]
ppc Add vpx_sad32x16/32/64_vsx

Change-Id: I3c4f9d595275669580413a71b3c3c810e7ddcacd

7 years agoMerge "ppc: Add vpx_sad16x8/16/32_vsx"
James Zern [Fri, 12 May 2017 13:33:50 +0000 (13:33 +0000)]
Merge "ppc: Add vpx_sad16x8/16/32_vsx"

7 years agoMerge "vp9: Adjust speed features for speed 8 at low resoln."
Marco Paniconi [Fri, 12 May 2017 00:35:39 +0000 (00:35 +0000)]
Merge "vp9: Adjust speed features for speed 8 at low resoln."

7 years agoMerge "vp9: SVC: Increase the partiiton and acskip thresholds"
Marco Paniconi [Thu, 11 May 2017 23:37:30 +0000 (23:37 +0000)]
Merge "vp9: SVC: Increase the partiiton and acskip thresholds"

7 years agoMerge "vp9; Adjust noise estimation thresholds."
Marco Paniconi [Thu, 11 May 2017 21:58:40 +0000 (21:58 +0000)]
Merge "vp9; Adjust noise estimation thresholds."

7 years agovp9: SVC: Increase the partiiton and acskip 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

7 years agovp9: SVC: allow for setting the interp_filter in non-rd pickmode.
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

7 years agoMerge "Tuning of factor used to calculate Q range in two pass."
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."

7 years agoMerge "vp9: Fix ubsan failure in denoiser."
Jerome Jiang [Thu, 11 May 2017 16:38:56 +0000 (16:38 +0000)]
Merge "vp9: Fix ubsan failure in denoiser."

7 years agoTuning of factor used to calculate Q range in two pass.
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

7 years agoSpeed up encoding by skipping altref recode
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

7 years agoMerge "vp9: SVC: Fix setting in sample encoder."
Marco Paniconi [Wed, 10 May 2017 23:51:44 +0000 (23:51 +0000)]
Merge "vp9: SVC: Fix setting in sample encoder."

7 years agovp9; Adjust noise estimation thresholds.
Marco [Wed, 10 May 2017 23:46:50 +0000 (16:46 -0700)]
vp9; Adjust noise estimation thresholds.

Change-Id: Ia41a11df18e5a58d2b8bbecd11c249d357de2a8f

7 years agovp9: SVC: Fix setting in sample encoder.
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

7 years agovp9: Fix ubsan failure in denoiser.
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

7 years agoMerge "Update specializations of idct functions"
Linfeng Zhang [Wed, 10 May 2017 20:31:13 +0000 (20:31 +0000)]
Merge "Update specializations of idct functions"

7 years agoppc: Add vpx_sad16x8/16/32_vsx
Alexandra Hájková [Sat, 6 May 2017 13:21:19 +0000 (13:21 +0000)]
ppc: Add vpx_sad16x8/16/32_vsx

Change-Id: I60619d28fffd9809f93b1af510a50e1aa02519a9

7 years agoUpdate specializations of idct functions
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

7 years agovp9: Wrap threshold tuning for HD only when denoiser is enabled.
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