James Zern [Mon, 21 May 2018 21:26:08 +0000 (14:26 -0700)]
remove unused vpx_ports/config.h
references were earlier removed in:
1a7d25a48 Replace vpx_ports/config.h with vpx_config.h
Change-Id: I1824cd71e970f5c7550c3978e0c63ce36a9644e4
Niveditha Rau [Wed, 25 Apr 2018 02:24:48 +0000 (19:24 -0700)]
Add Solaris to supported platforms
Change-Id: Ib49e1d79ba4c1c5d5147ab437f744a31429a059c
Johann Koenig [Mon, 21 May 2018 16:24:13 +0000 (16:24 +0000)]
Merge "configure,ios: add missing c++11 checks"
Marco Paniconi [Mon, 21 May 2018 01:10:57 +0000 (01:10 +0000)]
Merge "vp9-svc: Fix on disabling inter_layer prediction."
Marco Paniconi [Fri, 18 May 2018 22:09:55 +0000 (15:09 -0700)]
vp9-svc: Fix on disabling inter_layer prediction.
In vp9_svc_constrain_inter_layer_pred() we disable the
inter_layer prediction if anything but only the previous
spatial layer (from same supeframe) is used for inter_layer
prediction. This check and disabling was only allowed when
the control VP9E_SET_SVC_INTER_LAYER_PRED is set to
INTER_LAYER_PRED_ON_CONSTRAINED.
But the control VP9E_SET_SVC_INTER_LAYER_PRED is needed for setting:
INTER_LAYER_PRED_ON/INTER_LAYER_PRED_OFF/INTER_LAYER_PRED_OFF_NONKEY.
So there is a conflict with setting INTER_LAYER_PRED_ON_CONSTRAINED.
Fix for now is to always allow for this disabling check
(disable inter_layer reference if its not previous spatial layer) as
long as inter_layer prediction is used (i.e., not set to _OFF).
A separate fix if needed may be to invoke another control for setting
INTER_LAYER_PRED_ON_CONSTRAINED.
This was causing an issue with enabling spatial layers on the fly
(say spatial layer 2), where since INTER_LAYER_PRED_ON_CONSTRAINED was
not set (default), the inter_layer prediction was then using a reference
from 2 spatial layers below (spatial layer 0).
Change-Id: Ic6434000665f63aab27c509b5eb7b8fc965827bc
Marco Paniconi [Fri, 18 May 2018 21:50:46 +0000 (14:50 -0700)]
vp9-svc: Fix issue with reseting lst_fb_idx.
When encoding a given spatial layer and the same spatial layer
on previous superframe was dropped (or disabled due to 0 bitrate),
the lst_fb_idx for current layer is set to the buffer index that
was last updated on TL0 frame (for the same spatial layer).
This condition was to maintain proper temporal prediction pattern
under frame drops, and it should only apply to INTER frames.
But the condition was causing an assert to be triggered on spatial
layers whose base are key frames. Fix is to condition this reset of
lst_fb_idx on the "is_key_frame" flag. Also initialize the
fb_idx_upd_tl0 to -1 and only use it for a given spatial layer
if its been set.
These issues can happen when superframe drop happens just before
a key frame, or when stream starts with lower layers and dynamically
enabled higher spatial layers.
Added datarate unittest the inserts key frame after superframe drop,
and verified that this fix is needed for test to pass.
Also modified the existing DisableEnable spatial layer test to trigger
the issue of using fb_idx_upd_tl0 when it hasn't been set for a
spatial layer.
Change-Id: I059d1135736aca17e1326b9b4a2b16371eb4634e
James Zern [Sat, 19 May 2018 07:26:44 +0000 (00:26 -0700)]
configure,ios: add missing c++11 checks
+ bump ios minimum to 7.0; 6.0 does not have full c++11 support
Change-Id: If838b036e7327fda514cd2e8156eeda122cf6c73
Johann [Wed, 16 May 2018 05:11:28 +0000 (22:11 -0700)]
Revert "Revert "update libwebm""
This reverts commit
d32a55ffc40bba75ed8b770b282836a9d248d6a9.
Use the correct 'check_add_cxxflags' invocation.
Change-Id: I97d8062c9218b81a24268ec5998e847b1a0efeda
Johann [Fri, 18 May 2018 18:32:59 +0000 (11:32 -0700)]
iosbuild.sh: portable sed usage
There is no convenient way to have both gnu and bsd
sed do in-place processing.
Change-Id: I95f2a378d5c1bd95debb446317cc18ad79835e49
Marco Paniconi [Wed, 16 May 2018 21:52:17 +0000 (14:52 -0700)]
vp9-svc: Skip find_predictors based on ref_frame_flags.
Has some effect for SVC on base spatial layers (which only
reference LAST) or on upper spatial layers when inter_layer
prediction is disabled.
Small speedup on Mac of ~1%, for 3 layer SVC with inter-layer
prediction disabled.
Change-Id: I05be5da8843e0d32e9d85f6eb951cf1894e781d8
Marco Paniconi [Wed, 16 May 2018 19:02:35 +0000 (12:02 -0700)]
vp0-svc: Small code cleanup in nonrd-pickmode.
Change-Id: I0bc9a555064f053a00c1ab9a4dd2557ccf5537d8
Marco Paniconi [Tue, 15 May 2018 05:56:15 +0000 (22:56 -0700)]
vp9-svc: Enable scene detection and re-encode for SVC.
Keep a lower rate threshold for video case.
Also lower the exiting threshold somewhat for screen-content mode.
Change-Id: I79649a36678d802fd4d4080754fd366e78904214
Jingning Han [Wed, 16 May 2018 14:51:09 +0000 (14:51 +0000)]
Merge "Use the updated best rd cost for transform block search"
Jingning Han [Tue, 15 May 2018 20:04:49 +0000 (13:04 -0700)]
Use the updated best rd cost for transform block search
The compression performance change is +/-0.01% for both speed 0/1.
Locally tested the encoding speed:
ped_1080p 150 frames speed 0
79544 b/f 41.339 dB 503072 ms ->
79566 b/f 41.338 dB 493009 ms.
speed 1
79789 b/f 41.152 dB 104583 ms ->
79770 b/f 41.153 dB 102607 ms
Change-Id: Ief200b613608643e5708cebe979982eb4a84831b
Marco Paniconi [Tue, 15 May 2018 17:45:29 +0000 (17:45 +0000)]
Merge "vp9: Some speed feature settings for speed 9."
Luca Barbato [Tue, 15 May 2018 17:01:54 +0000 (17:01 +0000)]
Merge "Add vpx_varianceNxM_vsx and vpx_mseNxM_vsx"
Marco Paniconi [Tue, 15 May 2018 03:52:20 +0000 (20:52 -0700)]
vp9: Some speed feature settings for speed 9.
Disable 8x8 blocks for higher resolutions,
reduce mv_thresh for 1/2 subpel motion, and
disable golden reference at superblock level
based on source sad and motion content.
~6% loss in RTC metrics over current speed 9.
Speedup about ~10% for high motion clip on linux.
Change-Id: I7ff8f81ac93ee8a90d5a1f4837c955d000bd75e7
Luca Barbato [Tue, 15 May 2018 00:44:06 +0000 (00:44 +0000)]
Add vpx_varianceNxM_vsx and vpx_mseNxM_vsx
Speedups:
64x64 5.9
64x32 6.2
32x64 5.8
32x32 6.2
32x16 5.1
16x32 3.3
16x16 2.6
16x8 2.6
8x16 2.4
8x8 2.3
8x4 2.1
4x8 1.6
4x4 1.6
Change-Id: Idfaab96c03d3d1f487301cf398da0dd47a34e887
Johann Koenig [Tue, 15 May 2018 14:35:49 +0000 (14:35 +0000)]
Merge "Revert "update libwebm""
Johann Koenig [Tue, 15 May 2018 14:35:28 +0000 (14:35 +0000)]
Revert "update libwebm"
This reverts commit
595edb9669e27927726523c3f463d0eb6ea73f30.
Incorrect check_add_cxxflags invocation prevented libwebm from
building. Correcting it causes build failures on jenkins and mac.
Original change's description:
> update libwebm
>
> Clears "auto_ptr deprecated" warnings when building with
> clang v6.0.0
>
> Requires C++11 support.
>
> Change-Id: I5ea2744e73deeaa4e7b2599bacf0b6c9cf355a54
TBR=jzern@google.com,johannkoenig@google.com,builds@webmproject.org
Change-Id: I7340d912a121de035997cbd8ad77a150ee38189a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Yaowu Xu [Tue, 15 May 2018 01:14:46 +0000 (01:14 +0000)]
Merge "Make a config time flag"
Marco Paniconi [Mon, 14 May 2018 22:44:52 +0000 (22:44 +0000)]
Merge "vp9-realtime: Enable alt_ref at speed 5, for live."
Luc Trudeau [Mon, 14 May 2018 21:52:30 +0000 (21:52 +0000)]
Merge "VSX version of vpx_quantize_b_32x32_vsx"
Yaowu Xu [Mon, 14 May 2018 21:32:34 +0000 (14:32 -0700)]
Make a config time flag
This commit replace a hard coded macro with a macro defined by
a configure command.
Change-Id: Ib31354d61865314ed43e2c429c72b4ef2c8fa2a7
Yaowu Xu [Mon, 14 May 2018 20:56:34 +0000 (20:56 +0000)]
Merge "Fixes for consistent encoding across recodes of a frame"
Johann Koenig [Mon, 14 May 2018 20:22:12 +0000 (20:22 +0000)]
Merge "update libwebm"
Luc Trudeau [Fri, 11 May 2018 17:31:59 +0000 (13:31 -0400)]
VSX version of vpx_quantize_b_32x32_vsx
Low bit depth version only. Passes the VP9QuantizeTest.
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
Full calculations:
C time = 1456 ms, VSX time = 80 ms (18x)
Change-Id: I1b1d6d03b1aeff63640efbdeb222cab857ddd95e
Ranjit Kumar Tulabandu [Wed, 8 Nov 2017 12:52:49 +0000 (18:22 +0530)]
Fixes for consistent encoding across recodes of a frame
Change-Id: I094bca857f0fc2c067a4d08d1b36370fe61c25aa
Marco Paniconi [Fri, 27 Apr 2018 17:38:15 +0000 (10:38 -0700)]
vp9-realtime: Enable alt_ref at speed 5, for live.
Enable alt_ref and compound prediction at speed 5.
For 1 pass VBR mode, when lag > 0.
Gain for Live set: ~3% gain on average, several
clips have gains ~5-15%.
Encoder fps decrease ~5-10%, on desktop with 4 threads.
For now enable it only for resolutions <= 1280x720.
Change-Id: I25e3d61a2244a3a01962624052c5adf4837965c7
Marco Paniconi [Mon, 14 May 2018 18:13:59 +0000 (18:13 +0000)]
Merge "vp9-svc: Add conditon to asserts on prediction pattern."
Marco Paniconi [Mon, 14 May 2018 16:55:14 +0000 (09:55 -0700)]
vp9-svc: Add conditon to asserts on prediction pattern.
Add condition that inter-layer prediction is on.
Change-Id: I84d8c73be4296e7b6b79abb7e5e5e6dbaa6e0600
Jerome Jiang [Thu, 29 Mar 2018 21:59:58 +0000 (14:59 -0700)]
VP9: Add speed 9 for subpel search.
Set subpel search stop to 2 when motion vector is non zero.
10% speedup on 1 and 2 threads on Samsung Galaxy S8+.
Change-Id: I7323bb913000229cf60a37495bf88bcc51d0ac96
Johann [Tue, 24 Apr 2018 22:22:28 +0000 (15:22 -0700)]
update libwebm
Clears "auto_ptr deprecated" warnings when building with
clang v6.0.0
Requires C++11 support.
Change-Id: I5ea2744e73deeaa4e7b2599bacf0b6c9cf355a54
Marco Paniconi [Mon, 14 May 2018 05:17:17 +0000 (22:17 -0700)]
vp9-svc: Update layer_id of frame buffer idx last refreshed.
Remove some unused code and add parameter to keep track
of the layer_id of the frame buffer indices last refreshed.
This is useful for verifying constaints on spatial-temporal pattern,
for fixed/non-flexible mode.
Change-Id: I6957bb43157eb31df49dac1b8245facc043e4a49
Jerome Jiang [Sat, 12 May 2018 06:08:16 +0000 (06:08 +0000)]
Merge "Fix valgrind failure on uninitialized values."
Jerome Jiang [Sat, 12 May 2018 00:15:10 +0000 (17:15 -0700)]
Fix valgrind failure on uninitialized values.
Change-Id: I917d884c9fab9b15bb092de5675f92225f1cdebd
Marco Paniconi [Fri, 11 May 2018 22:49:34 +0000 (15:49 -0700)]
vp9-svc: Fix pattern update for skip enhancement layers.
Use the same logic as for dropped frames to be consistent.
Change-Id: I16fd317e70514fe8516d9eb350c275d1813e943e
Marco Paniconi [Fri, 11 May 2018 17:45:11 +0000 (17:45 +0000)]
Merge "vp9-svc: Fix when whole superframe is dropped."
Marco Paniconi [Tue, 8 May 2018 05:54:48 +0000 (22:54 -0700)]
vp9-svc: Fix when whole superframe is dropped.
When the whole superframe is dropped (due to rate control),
don't increment the temporal layer counter.
This is a temporary fix to prevent an issue where temporal
prediction pattern is possibly broken.
Updated svc_datarate tests to handle this case.
Change-Id: Icac44fdc9d0f08a957776c937584db4b2c7927c7
Luc Trudeau [Fri, 11 May 2018 13:29:17 +0000 (13:29 +0000)]
Merge "Faster VSX vpx_quantize_b"
James Zern [Fri, 11 May 2018 06:08:54 +0000 (23:08 -0700)]
vpx_subtract_block_neon: add explicit cast
quiets ptrdiff_t -> int conversion warning
Change-Id: If6b545a736fc19e48e290961736b1618df97db3e
Jerome Jiang [Fri, 11 May 2018 05:59:24 +0000 (05:59 +0000)]
Merge "Fix vpxdec fuzz failure."
Marco Paniconi [Fri, 11 May 2018 04:45:13 +0000 (04:45 +0000)]
Merge "vp9: Adjust some early exits in nonrd-pickmode."
Luc Trudeau [Wed, 9 May 2018 19:08:53 +0000 (15:08 -0400)]
Remove ppc64 (big endian) from configure
Remove big endian PowerPC 64 from configure, as this build is problematic and
not supported. PowerPC 64 will be limited to little endian (ppc64le).
BUG=webm:1525
BUG=webm:1508
Change-Id: Id6a86d5913192549e03ac8f77879ba7526b752c8
James Zern [Fri, 11 May 2018 03:17:55 +0000 (03:17 +0000)]
Merge "ppc: Add vpx_iwht4x4_16_add_vsx"
James Zern [Fri, 11 May 2018 03:15:31 +0000 (03:15 +0000)]
Merge "configure: check for arm_neon.h w/neon builds"
James Zern [Fri, 11 May 2018 01:47:08 +0000 (01:47 +0000)]
Merge "Update vpx_subtract_block_neon()"
Luc Trudeau [Thu, 10 May 2018 20:54:13 +0000 (16:54 -0400)]
Faster VSX vpx_quantize_b
Process 16 coefficients on the first iteration (a full 4x4) and 24 coefficients
on subsequent iteration.
VSX/VP9QuantizeTest.DISABLED_Speed
Before:
4x4 176 ms
8x8 91 ms
16x16 72 ms
After:
4x4 152 ms
8x8 82 ms
16x16 64 ms
Change-Id: I07cb130833504206ccdc5bc12ae5af369364999a
Marco Paniconi [Thu, 10 May 2018 21:27:33 +0000 (14:27 -0700)]
vp9: Adjust some early exits in nonrd-pickmode.
Condition some early exitis in nonrd-pickmode on the
motion vector, to make sure we always test (0, 0) for
inter-layer prediction.
Change-Id: Id0e790ecc75ccfb7031d3e8786ccdd13781d81fe
Linfeng Zhang [Tue, 8 May 2018 23:37:07 +0000 (16:37 -0700)]
Update vpx_subtract_block_neon()
Change-Id: Ie2ac06c090c8f92268e9a799e96aa5192a1bdcd2
James Zern [Thu, 10 May 2018 23:23:47 +0000 (23:23 +0000)]
Merge "Update vpx_comp_avg_pred_neon()"
Jerome Jiang [Thu, 10 May 2018 23:19:26 +0000 (23:19 +0000)]
Merge "Remove extra line in warnings in ivfdec.c"
James Zern [Thu, 4 Aug 2016 18:54:02 +0000 (11:54 -0700)]
configure: check for arm_neon.h w/neon builds
fails at configure time rather than compile time unless using
--enable-external-build
Change-Id: I966ee1000e28fdcc3f4a29759789b056faee0010
Jerome Jiang [Thu, 10 May 2018 22:58:30 +0000 (22:58 +0000)]
Merge "Make upper limit of frame size in ivf reader consistent."
Jerome Jiang [Tue, 20 Mar 2018 17:34:26 +0000 (10:34 -0700)]
Fix vpxdec fuzz failure.
BUG=webm:1495
Change-Id: Ibaee35aa5e8e00847c61e707f2c9b4c0cff23673
Jerome Jiang [Thu, 10 May 2018 21:41:10 +0000 (14:41 -0700)]
Remove extra line in warnings in ivfdec.c
The warnings give an extra line which is confusing sometimes.
E.g.
Warning: Read invalid frame size (
308164564) // This is for frame 5
Warning: Failed to decode frame 5: Invalid parameter
Warning: Read invalid frame size (
1936229463) // This is for frame 6
Warning: Failed to decode frame 6: Invalid parameter
Warning: Read invalid frame size (
2282536257)
Change-Id: I1753fa32079deca5c8b534c6ca9a527cc9e491e9
Jerome Jiang [Thu, 10 May 2018 21:30:54 +0000 (14:30 -0700)]
Make upper limit of frame size in ivf reader consistent.
Change the limit of frame size in ivf reader used by test to make it
consistent with ivf reader used in vpxdec.
Change-Id: I19ab05adf51eca65322e609efdf4d83ad66af847
Luc Trudeau [Thu, 10 May 2018 13:48:07 +0000 (13:48 +0000)]
Merge "VSX version of vpx_quantize_b_vsx"
Marco Paniconi [Thu, 10 May 2018 03:37:48 +0000 (20:37 -0700)]
vp9-svc: Fix inter-layer early exit threshold.
If the scale factors are 1 (no scaling), set the threshold
for skipping the inter-layer prediction to 0, so we will
more often test this mode.
Improves quality for upper layers for quality layers
in svc mode.
Change-Id: Iaf848d44f6cc153780db861b76517a4cf9672c45
Hui Su [Wed, 9 May 2018 22:09:11 +0000 (22:09 +0000)]
Merge "Don't use transform domain distortion when eob is 0"
Luc Trudeau [Wed, 9 May 2018 03:00:20 +0000 (23:00 -0400)]
VSX version of vpx_quantize_b_vsx
Low bit depth version only. Passes the VP9QuantizeTest.
Change-Id: I6546f872864bd404a7e353348b0554aab1de5bf0
Marco Paniconi [Wed, 9 May 2018 17:41:33 +0000 (17:41 +0000)]
Merge "vp9-svc: Fix to SVC for frame dropping."
Paul Wilkins [Wed, 9 May 2018 11:14:25 +0000 (11:14 +0000)]
Merge "Improved slide show coding"
Linfeng Zhang [Wed, 9 May 2018 00:37:18 +0000 (17:37 -0700)]
Update vpx_comp_avg_pred_neon()
Separate width 4 and 8 cases to reduce jumps in loop in clang.
Change-Id: I6ffc6f1555f2ad08b72a8dba35a78b9fd5f95a73
Marco Paniconi [Tue, 8 May 2018 18:05:03 +0000 (11:05 -0700)]
vp9-svc: Fix to SVC for frame dropping.
When the previous frame is dropped, for the current
spatial layer make sure the lst_fb_idx corresponds
to the buffer index last updated on the (last) encoded
TL0 frame(for same spatial layer).
This is needed to preserve the temporal prediction pattern
for fixed/non-flexible mode under frame dropping.
Change-Id: Ifc8e257beb025654a81580c4da0a181235724508
Linfeng Zhang [Tue, 8 May 2018 19:52:10 +0000 (12:52 -0700)]
Update SadMxNx4 NEON functions
Change-Id: Ia313a6da00a05837fcd4de6ece31fa1c0016438c
Martin Storsjö [Tue, 8 May 2018 19:04:12 +0000 (19:04 +0000)]
Merge "configure: Disable pthread_h if linking failed"
Linfeng Zhang [Tue, 8 May 2018 16:50:33 +0000 (16:50 +0000)]
Merge "Add vpx_sum_squares_2d_i16_neon()"
paulwilkins [Thu, 12 Apr 2018 16:14:25 +0000 (09:14 -0700)]
Improved slide show coding
This patch improves coding of slide shows with fade or other
complex transitions.
Previously, fades and other complex transitions between static "slides"
were sometimes being incorrectly marked such that they were coded
as a single static slide rather than two slides with a transition.
As the initial key frame for the first slide is not necessarily a good
predictor of the second slide and ARFs were turned off, this led to a
poor visual and metrics outcome in some such cases.
This patch allows for long GF groups in static sections before and after
a complex transition (instead of just with simple slide transitions) with
one or more normal ARF groups during the transition. It also enforces a
single "normal" length GF group after the transition before any extended
group is allowed. The reason for this is that the ARF that spans the
transition my not have a very high quality and hence may not act as a
good GF for the long static section that follows.
Change-Id: Ica1f979e27d8a0625f3cebf7b7cf6d69edccaba9
Linfeng Zhang [Mon, 7 May 2018 20:38:04 +0000 (13:38 -0700)]
Update vpx_sum_squares_2d_i16_sse2()
Change-Id: I5a2ca2ed246277cf6b1ef2ffac34ce5c40aa0158
Linfeng Zhang [Mon, 7 May 2018 19:46:14 +0000 (12:46 -0700)]
Add vpx_sum_squares_2d_i16_neon()
Perf shows CPU time of this function dropped from 0.81% to 0.15%.
Change-Id: I8a7649ca5c15af2fc65cfb848f5befa0cc5e64f2
Hui Su [Tue, 1 May 2018 04:11:31 +0000 (21:11 -0700)]
Don't use transform domain distortion when eob is 0
When eob is 0, pixel domain distortion is more accurate and efficient.
This mainly affects speed >= 2. Speed 0 always use pixel domain
distortion; speed 1 use it most of the time.
Compression impact(negative means gain):
speed 2 speed 3 speed 4
lowres -0.04% -0.06% -0.06%
midres -0.10% -0.10% -0.20%
hdres -0.01% -0.03% -0.06%
Encoding speed is about neutral.
Change-Id: I77b957658deeaad57381fd13afc11bacdec8c08f
Marco Paniconi [Fri, 4 May 2018 17:12:59 +0000 (17:12 +0000)]
Merge "vp9-svc: Reset fb_idx for unused references."
Martin Storsjo [Fri, 4 May 2018 06:32:41 +0000 (09:32 +0300)]
configure: Disable pthread_h if linking failed
When doing both check_header and check_lib, the check_header call
will already enable pthread_h if the header was found. This was
overlooked when the pthread linking check was amended into a header
check and a separate linking check in
9b7d4cce635e.
This brings back the same result as the original check in
38dc27cc6.
Change-Id: I0efb38f5780f7c79e2eb2b14290d6094096ea222
Marco Paniconi [Fri, 4 May 2018 02:42:08 +0000 (19:42 -0700)]
vp9-svc: Add memset on the svc fb_idx.
The memset is added to better handle frame drops
with the GET_SVC_REF_FRAME_CONFIG contro
There is an issue with some tests in bypass mode,
so condition it on that for now.
Change-Id: I2635037143f14ff62a36be7c22b2b604a0c1efc2
Marco Paniconi [Mon, 30 Apr 2018 20:42:26 +0000 (13:42 -0700)]
vp9-svc: Reset fb_idx for unused references.
For fixed (non-flexible) SVC mode.
No change in behavior.
Needed for future change to make Intra-only frame work.
Change-Id: I91e18776e7ef27c9c6fcbc8d5f64764d9cc3d9a9
Marco Paniconi [Thu, 3 May 2018 01:04:35 +0000 (18:04 -0700)]
vp9-svc: On key frame update all reference slots for SVC.
Key frame updates the slots corresponding to the 3 references
last/golden/altref, but for SVC where more references buffers
may be in use, especialy for dynamically swithing up/down in layers,
make sure we should update all 8 slots on key frame.
Change-Id: Ifcca12608f420d5bae32b92794a3afe9b6369f77
Linfeng Zhang [Wed, 2 May 2018 20:01:59 +0000 (20:01 +0000)]
Merge "Clean switch cases in vp9 encoder"
xiwei gu [Wed, 2 May 2018 08:54:24 +0000 (08:54 +0000)]
Merge "vp9: [loongson] optimize vpx_convolve8 with mmi"
Linfeng Zhang [Wed, 2 May 2018 00:57:51 +0000 (17:57 -0700)]
Clean switch cases in vp9 encoder
To save a branch.
Change-Id: Ifa2be7583e95c6991784731c654bbd4cce31e993
James Zern [Sat, 28 Apr 2018 05:52:45 +0000 (05:52 +0000)]
Merge "Update variance_test.cc"
Linfeng Zhang [Wed, 25 Apr 2018 23:04:45 +0000 (16:04 -0700)]
Update variance_test.cc
Change-Id: I1301781f0f2528a61ad2b5c2828404b2b3e3e8b9
Marco Paniconi [Fri, 27 Apr 2018 22:35:31 +0000 (15:35 -0700)]
vp9-svc: Remove the memset on the svc fb_idx.
This fixes failures on the datarate tests for
temporal layers with frame dropping.
The memset was only added to better handle frame drops
with the GET_SVC_REF_FRAME_CONFIG control from
43c58df3.
So ok to remove it for now.
Change-Id: I256d9ac4278b93fe6f39b94cce2e458a1a5eff69
Marco Paniconi [Fri, 27 Apr 2018 04:55:22 +0000 (04:55 +0000)]
Merge "VP9 SVC: Add new level to constrain inter-layer pred."
Hui Su [Fri, 27 Apr 2018 04:41:52 +0000 (04:41 +0000)]
Merge "Respect MV limit in vp9_int_pro_motion_estimation()"
Jerome Jiang [Wed, 25 Apr 2018 18:33:24 +0000 (11:33 -0700)]
VP9 SVC: Add new level to constrain inter-layer pred.
Add another level (INTER_LAYER_PRED_ON_CONSTRAINED) to the
inter-layer prediction control. This new level enforces the
condition that a given spatial layer S can only do inter-layer
prediction from the previous spatial layer (S - 1) from the same
time/superframe.
BUG=webm:1526
Change-Id: I0a1ec95b2c220c7b13a9a425d5fb0a8814c23c70
Marco Paniconi [Fri, 27 Apr 2018 00:32:22 +0000 (17:32 -0700)]
vp9-svc: Remove unneeded call and init some parameters.
Remove the unneeded vp9_copy_flags_ref_update_idx(cpi),
and initialize the struct parameters needed for the
GET_SVC_REF_FRAME_CONFIG. This init is useful for the case
for spatial layer frame drops.
Change-Id: If89e8349f6246c33720ecbb758d41a932d21e496
Hui Su [Thu, 26 Apr 2018 23:58:33 +0000 (23:58 +0000)]
Merge "Do one level less of transform search for large blocks"
Hui Su [Thu, 26 Apr 2018 20:31:43 +0000 (13:31 -0700)]
Respect MV limit in vp9_int_pro_motion_estimation()
Change-Id: I08cb072a32e06c6452eca068b2f7ef7287f221e6
Hui Su [Wed, 25 Apr 2018 05:42:54 +0000 (22:42 -0700)]
Do one level less of transform search for large blocks
If block size is larger than 32x32, search transform size for one level
less than the other blocks.
This mainly affects speed 0 and 1, as speed >= 2 uses largest transform
size(except for keyframes and alt-ref frames).
Compression(negative means gain):
speed 0 speed 1
lowres -0.007% 0.00%
midres 0.023% -0.011%
hdres 0.002% -0.016%
Encoder speed:
Tested on crowd_run_1080p 30 frames
Fixed QP = 30, speed 0: 582.5s -> 564.6s
speed 1: 75.0s -> 73.3s
Change-Id: I46622efafe0e88d502efa1480a5324ead1d1e8d0
Hui Su [Wed, 25 Apr 2018 16:25:58 +0000 (16:25 +0000)]
Merge "Calculate transform size cost once per frame"
Hui Su [Wed, 25 Apr 2018 16:25:40 +0000 (16:25 +0000)]
Merge "Add speed feture to control tx size search depth"
Jerome Jiang [Wed, 25 Apr 2018 04:59:10 +0000 (04:59 +0000)]
Merge "vp9-svc: Add GET control to get SVC pattern info."
Marco Paniconi [Tue, 24 Apr 2018 04:03:47 +0000 (21:03 -0700)]
vp9-svc: Add GET control to get SVC pattern info.
Copy ref frame index in SVC struct after set in encoder.
Rename ext_{lst,gld,alt}_fb_idx to {lst,gld,alt}_fb_idx.
Bump up ABI version.
BUG=webm:1527
Change-Id: I06209040cb83d374030f40b79f0b36b0efe9f97d
guxiwei-hf@loongson.cn [Wed, 25 Apr 2018 01:55:05 +0000 (09:55 +0800)]
vp9: [loongson] optimize vpx_convolve8 with mmi
1. vpx_convolve_avg_mmi
2. vpx_convolve8_avg_horiz_mmi
Change-Id: Ie544aac45b4b1c0a0e51b44b650189ae5e88aee1
Jerome Jiang [Tue, 24 Apr 2018 23:37:18 +0000 (16:37 -0700)]
Fix vp8_multi_resolution_encoder test failure.
BUG=webm:1528
Change-Id: I8eb8278c2e61577159308dd5329be0577b82d1a6
Hui Su [Tue, 24 Apr 2018 18:49:22 +0000 (11:49 -0700)]
Calculate transform size cost once per frame
Instead of doing it in every transform search loop.
Change-Id: I12dc402a6633d1a27d32cb6b58710b8c0ebf0fd4
Hui Su [Tue, 24 Apr 2018 00:15:23 +0000 (17:15 -0700)]
Remove get_tx_probs2()
This function is redundant.
Change-Id: I7651fc34787c09e59cb1366495f6b525dec8510d
Hui Su [Mon, 23 Apr 2018 21:05:23 +0000 (14:05 -0700)]
Add speed feture to control tx size search depth
Set the max depth as 2 for speed 0.
Compression(negative means gain):
speed 0 speed 1
lowres -0.01% 0.00%
midres 0.05% -0.01%
hdres -0.01% 0.01%
Encoding speed gain:
Tested on crowd_run_1080p 30 frames
Fixed QP = 20, speed 0: 669.7s -> 656.1s
speed 1: 104.5s -> 101.5s
Fixed QP = 40, speed 0: 440.7s -> 435.8s
speed 1: 47.7s -> 45.1s
Change-Id: I61bc13818c72317b9f1d596727d54a906b20c012
James Zern [Thu, 19 Apr 2018 21:29:42 +0000 (21:29 +0000)]
Merge changes I0202a556,Iebb98f3b
* changes:
Update variance avx2 functions
Update variance sse2 functions