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 [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
Martin Storsjo [Thu, 19 Apr 2018 05:55:44 +0000 (08:55 +0300)]
configure: Use both check_header and check_lib for pthreads
check_lib can be a stub that always returns true - make sure to
still use check_headers as before
38dc27cc6.
Change-Id: I5d471de56b16c015a0b686fa6c6caefa35bb89b4
Marco Paniconi [Thu, 19 Apr 2018 02:59:45 +0000 (19:59 -0700)]
vp9:aq-mode=3: Keep perc_refresh fixed for screen content mode.
Don't allow for changing the perc_refresh with screen-content
mode, as this helps reduce some overshoot for static content.
Change-Id: Idbe1849e7a14ef18fda20bee6dced809f134b7f7
Marco Paniconi [Thu, 19 Apr 2018 02:56:26 +0000 (02:56 +0000)]
Merge "vp9: Rate control fix for CBR mode."
Marco Paniconi [Thu, 19 Apr 2018 01:39:52 +0000 (01:39 +0000)]
Merge "vp9: Remove limit on QP on key frame for CBR."
Marco Paniconi [Thu, 19 Apr 2018 00:46:16 +0000 (17:46 -0700)]
vp9: Add condition of real-time mode to scene detection.
This was removed by error from the change: ce11afb, and
made some datarate tests fail.
Change-Id: I0c29e1f5aede8f56ce835b25fed0528722350241
Marco Paniconi [Thu, 19 Apr 2018 00:15:16 +0000 (17:15 -0700)]
vp9: Rate control fix for CBR mode.
For CBR mode: modify the qp clamping to allow q to respond
faster to overshoot. Can reduce some suprious overshoot events
observed in screen content coding.
Change-Id: I0b3f54b0d1b4086182f834e557a4121950b176d4
Jerome Jiang [Wed, 18 Apr 2018 23:15:57 +0000 (23:15 +0000)]
Merge "SVC: Fix duplicated run of svc datarate tests."
Marco Paniconi [Wed, 18 Apr 2018 22:54:03 +0000 (15:54 -0700)]
vp9: Remove limit on QP on key frame for CBR.
This piece was carried over the VBR routine, for CBR
mode we don't want to apply this limit.
Change-Id: Ib9e9937eabeff8cfd30e11c9bd17444cc2b591aa
Jerome Jiang [Mon, 16 Apr 2018 23:37:04 +0000 (16:37 -0700)]
SVC: Fix duplicated run of svc datarate tests.
Change-Id: I3f4e45b398009852f1183943461625d621c4eb80
Marco Paniconi [Mon, 16 Apr 2018 23:15:05 +0000 (16:15 -0700)]
vp9: Changes for scene detection overshoot and SVC.
Refactor the scene detection for 1 pass cbr to allow the
scene detection to be checked once per superframe (on the base layer),
using the full resolution sources.
If scene change is detected: check for re-encoding due to
large overshoot for all spatial layers withing the superframe.
Add speed feature to control the re-encode step.
Keep the re-encode step on for now.
Small change in nonrd_pickmode to remove the possible skip of golden
reference for SVC, when the high_source_sad is set for the superframe.
Change only affects SVC encoding with screen-content mode enabled.
Change-Id: If4cfb52cb0dd0f0fce1c4214fa8b413f8f803d56
Martin Storsjö [Wed, 18 Apr 2018 06:23:09 +0000 (06:23 +0000)]
Merge "configure: Test linking pthreads before using it"
Jerome Jiang [Tue, 17 Apr 2018 23:30:23 +0000 (23:30 +0000)]
Merge "Clean up svc comment in vp9_bitstream.c"
Linfeng Zhang [Tue, 17 Apr 2018 20:43:16 +0000 (13:43 -0700)]
Update variance avx2 functions
Old vs New
Variance 64x64 time: 1145 ms 797 ms
Variance 64x32 time: 1200 ms 831 ms
Variance 32x32 time: 1228 ms 1135 ms
Variance 32x16 time: 1374 ms 1491 ms
Variance 16x16 time: 1688 ms 1571 ms
sse2 vs avx2
Variance 32x64 time: 1645 ms 957 ms
Variance 16x32 time: 2031 ms 1243 ms
Variance 16x8 time: 3071 ms 2275 ms
Change-Id: I0202a556e4629977d647e219c2e897e1ab6accb2
Marco Paniconi [Tue, 17 Apr 2018 17:32:25 +0000 (10:32 -0700)]
vp9: Remove this_key_frame_forced setting for CBR.
The setting this_key_frame_forced can lead to large key frame sizes,
not suitable for CBR rate control used for RTC.
Change-Id: Idf6d2bf385d5b1494f4bf783f623b7c202f34e55
Linfeng Zhang [Mon, 16 Apr 2018 21:44:00 +0000 (14:44 -0700)]
Update variance sse2 functions
Old vs New
Variance 64x64 time: 197 ms 143 ms
Variance 64x32 time: 200 ms 146 ms
Variance 32x64 time: 203 ms 140 ms
Variance 32x32 time: 214 ms 152 ms
Variance 32x16 time: 243 ms 153 ms
Variance 16x32 time: 234 ms 197 ms
Variance 16x16 time: 205 ms 205 ms
Variance 16x8 time: 228 ms 222 ms
Variance 8x16 time: 228 ms 232 ms
Variance 8x8 time: 282 ms 240 ms
Variance 8x4 time: 506 ms 341 ms
Variance 4x8 time: 518 ms 415 ms
Variance 4x4 time: 604 ms 628 ms
Observed vp9 encoder speed up when encoding a 720p video.
Change-Id: Iebb98f3b3d8adbc11a733a529d8427ce3d2a5314
Jerome Jiang [Mon, 16 Apr 2018 21:25:51 +0000 (14:25 -0700)]
vp9: fix multiple run for vp9 datarate tests using one bitrate.
Change-Id: I1458bf25fadc23e8be5a9532a153d7129a53accf
Jerome Jiang [Sun, 15 Apr 2018 07:03:16 +0000 (07:03 +0000)]
Merge "vp9: refactor vp9 datarate test for better sharding."
Martin Storsjo [Sat, 14 Apr 2018 20:40:46 +0000 (23:40 +0300)]
configure: Test linking pthreads before using it
This avoids enabling pthreads if only pthreads-w32 is available.
pthreads-w32 provides pthread.h but has a link library with a
different name (libpthreadGC2.a).
Generally, always using win32 threads when on windows would be
sensible.
However, libstdc++ can be configured to use pthreads (winpthreads), and
in these cases, standard C++ headers can pollute the namespace with
pthreads declarations, which break the win32 threads headers that
declare similar symbols - leading us to prefer pthreads on windows
whenever available (see
d167a1ae and bug 1132).
Change-Id: Icd668ccdaf3aeabb7fa4e713e040ef3d67546f00
Jerome Jiang [Thu, 12 Apr 2018 21:37:56 +0000 (14:37 -0700)]
vp9: refactor vp9 datarate test for better sharding.
Change-Id: Icfaf29e1ca847ba9e3748700c9e09383ce8d1f65
Jerome Jiang [Fri, 13 Apr 2018 22:36:39 +0000 (15:36 -0700)]
Clean up is_two_pass_svc.
Change-Id: I9e92616471be380d3ba4e2b85399d7eb9f687d2f
Jerome Jiang [Fri, 13 Apr 2018 20:56:45 +0000 (13:56 -0700)]
Clean up svc comment in vp9_bitstream.c
SVC related conditions were removed long time ago and comments should be
removed too.
Change-Id: Iff3f3b6815d85ae5a69994932a4893cd1f831ce3
Jerome Jiang [Fri, 13 Apr 2018 03:40:50 +0000 (03:40 +0000)]
Merge "vp9 svc: Refactor svc datarate test for better sharding."
Jerome Jiang [Fri, 13 Apr 2018 03:40:20 +0000 (03:40 +0000)]
Merge "Silence warning when built with --enable-internal-stats."
Jerome Jiang [Thu, 12 Apr 2018 22:05:58 +0000 (15:05 -0700)]
Silence warning when built with --enable-internal-stats.
Change-Id: I3a600a9baf2b8e46c109f4ec2b5bd6bafda4bf58
Jerome Jiang [Wed, 11 Apr 2018 23:32:00 +0000 (16:32 -0700)]
vp9 svc: Refactor svc datarate test for better sharding.
Wrap denoiser tests under config flags.
Change-Id: I6175c3c9d8b5b079ad35a55553383145db58a10f
Paul Wilkins [Thu, 12 Apr 2018 10:42:50 +0000 (10:42 +0000)]
Merge "Add extra case to wq_err_divisor()"
James Zern [Mon, 9 Apr 2018 23:07:40 +0000 (16:07 -0700)]
vpx_image: remove unused image formats
libvpx only emits:
VPX_IMG_FMT_{I420,I422,I440,I444,I42016,I42216,I44016,I44416}
and additionally supports YV12 as input.
interleaved yuv, rgb and alpha formats are unused.
Change-Id: Ie2ab1099e950c6e696f475d46882f5c47a174042
Marco Paniconi [Mon, 9 Apr 2018 18:05:51 +0000 (18:05 +0000)]
Merge "vp9-svc: Make constrained_layer_drop default for svc."
Jerome Jiang [Mon, 9 Apr 2018 17:03:59 +0000 (17:03 +0000)]
Merge "Fix settings for num of tiles in samples & tests."
Marco Paniconi [Mon, 9 Apr 2018 16:41:47 +0000 (09:41 -0700)]
vp9-svc: Make constrained_layer_drop default for svc.
Switch the order of constrained and layer drop mode,
and keep constrained_layer_drop as the default.
Update the svc datarate tests.
Change-Id: I764270f7b4964b87b0cd3da6c2f96a628f212a30
Jerome Jiang [Thu, 5 Apr 2018 21:45:06 +0000 (14:45 -0700)]
Fix settings for num of tiles in samples & tests.
The control is set by log2 of number of threads (such that the number of
tiles is the same of number of threads).
Thus it should be log2(num_threads) instead of (num_threads >> 1).
Change-Id: I2ccec5557e660048dad3e561534e1c74fc8eec1f
Marco Paniconi [Fri, 6 Apr 2018 16:17:46 +0000 (09:17 -0700)]
vp9-svc: Hybrid search on spatial layers whose base is key.
For spatial layers whose base is a key frame, i.e., when
svc.layer_context[cpi->svc.temporal_layer_id].is_key_frame = 1,
allow for hybrid search, similar to what we do on key frames.
For small blocks (<= 8x8) rd-based intra search will be used,
otherwise non-rd pick mode is used.
Feature is controlled by nonrd_keyframe, which is set to 1
for now on non-base spatial layers, so this change has
currently no effect.
Small change only when inter-layer prediction is off, as we now
call vp9_pick_intra_mode instead of vp9_pick_inter_mode on key frame.
But this change is very small/insignificant.
Change-Id: I5372470f720812926ebbe6c4ce68c04336ce0bdd
Johann Koenig [Fri, 6 Apr 2018 15:26:59 +0000 (15:26 +0000)]
Merge "remove support for yuv 411"
Marco Paniconi [Fri, 6 Apr 2018 05:41:56 +0000 (05:41 +0000)]
Revert "vp9-svc: Fix to first superframe when inter_layer is off."
This reverts commit
5cc8df5bcfe49fbfca21ee57401c7807c048751b.
Reason for revert: <INSERT REASONING HERE>
We need to do this on all key frames in the stream (not just the first one). Will make another cleaner change for this.
Original change's description:
> vp9-svc: Fix to first superframe when inter_layer is off.
>
> When the application selects the setting INTER_LAYER_PRED_OFF
> each spatial stream should be decodeable separately.
> For this we need to force key frames on all spatial layers
> on the first superframe.
>
> In order to maintain the quality at the beginning of the stream
> the active_worst for spatial layer of the second superframe is set
> to the last_QP of the correspondng spatial layer of the first superframe.
> Also make sure nonrd_keyframe is set for non-base spatial layers.
>
> Change only affects SVC mode wit number_spatial_layers > 1 and
> svc->disable_inter_layer_pred == INTER_LAYER_PRED_OFF.
> And only affects first and second frame of sequence.
>
> Change-Id: I8ee9a0873ab1d3a02515774571f719617771ad41
TBR=marpan@google.com,builds@webmproject.org,jianj@google.com
Change-Id: If73d9f3932224fc6751e773763adf7e8ee67d17f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Marco Paniconi [Wed, 4 Apr 2018 23:24:39 +0000 (16:24 -0700)]
vp9-svc: Fix to first superframe when inter_layer is off.
When the application selects the setting INTER_LAYER_PRED_OFF
each spatial stream should be decodeable separately.
For this we need to force key frames on all spatial layers
on the first superframe.
In order to maintain the quality at the beginning of the stream
the active_worst for spatial layer of the second superframe is set
to the last_QP of the correspondng spatial layer of the first superframe.
Also make sure nonrd_keyframe is set for non-base spatial layers.
Change only affects SVC mode wit number_spatial_layers > 1 and
svc->disable_inter_layer_pred == INTER_LAYER_PRED_OFF.
And only affects first and second frame of sequence.
Change-Id: I8ee9a0873ab1d3a02515774571f719617771ad41
Marco Paniconi [Thu, 5 Apr 2018 22:54:17 +0000 (15:54 -0700)]
vp9-svc: Fix to disable cyclic refresh on key superframes.
Cyclic refresh is disabled on key frames, but we did not
disable it for for spatial layers whose base is a key frame
(i.e., on a key-superframe).
This fix means generally somewhat lower frame-level QP will be
used for those spatial layers whose base is a key frame,
which will generally mean little better quality for the
key-superframes.
Change-Id: Idf090651aa2f5856fb6696c89198a9f6d5d50280
Johann [Thu, 5 Apr 2018 18:59:56 +0000 (11:59 -0700)]
update codereview.settings
Using pdfium as a reference:
https://pdfium.googlesource.com/pdfium/+/master/codereview.settings
Change-Id: I30874cf9f1d575325c32342146137a1952db91ba
Johann [Tue, 27 Mar 2018 17:41:54 +0000 (10:41 -0700)]
ios configure: quiet shell warning
Generating file lists on a non-mac with:
--target=x86-iphonsimulator-gcc --enable-external-build
the lack of xcrun would cause a warning to print:
libvpx/build/make/configure.sh: line 1397: [: : integer expression expected
Change-Id: I4623b6c5b65296bc71986cd042823f4be9427b42
Marco Paniconi [Wed, 4 Apr 2018 05:59:00 +0000 (05:59 +0000)]
Merge "vp9-svc: Fix in choose_partitioning for different scaling."
Marco Paniconi [Wed, 4 Apr 2018 02:15:56 +0000 (02:15 +0000)]
Merge "Fix to svc sample enocoder for visual studio build."
Marco Paniconi [Tue, 3 Apr 2018 22:50:19 +0000 (15:50 -0700)]
vp9-svc: Fix in choose_partitioning for different scaling.
In the SVC encoder LAST ref frame should be the last temporal
reference at the same resolution. This is the case for the default/fixed
patterns, but may not be the case for arbitrary pattern in flexible mode.
Add check that the LAST reference frame has same resolution as the current frame.
If the reference scale for LAST is different from current treat the current
frame as key frame just for the purpose of superblock partitioning.
This avoids potential segfault in vp9_int_pro_motion_estimation() for different
scaled reference.
Change-Id: I4276ff616de46cd4e12c73316f85ae313f170242
Linfeng Zhang [Tue, 3 Apr 2018 22:36:41 +0000 (15:36 -0700)]
rm CONVERT_TO_SHORTPTR in vpx_highbd_comp_avg_pred
BUG=webm:1388
Change-Id: I1d0dd9af52a1461e3e2b2d60e8c4b6b74c3b90b0
Marco Paniconi [Tue, 3 Apr 2018 21:34:07 +0000 (14:34 -0700)]
Fix to svc sample enocoder for visual studio build.
Fix to sample encoder, for visual studio buid failure:
conversion from 'uint64_t' to 'int'.
Change-Id: I385ab8482e1ee97da9872437f8286d9071e38e0e
Johann [Mon, 2 Apr 2018 22:33:34 +0000 (15:33 -0700)]
remove support for yuv 411
Previously we attempted to convert 411 input. Remove support
because malformed 411 input can cause the conversion to crash.
BUG=webm:1386
Change-Id: I3d41465a94867ee7f8eaa43fb76beb41f8fa644b
Marco Paniconi [Mon, 2 Apr 2018 19:46:19 +0000 (12:46 -0700)]
vp9-svc: Fix to svc sample encoder for write_out.
When writing out stream for spatial layer N,
make sure to include all spatial layers up to N.
Fixes an issue with the streams when frame dropping occurs.
Change-Id: I1e20b7dac6b94dcda751043541dd8a12f7df6d8c
Johann Koenig [Mon, 2 Apr 2018 18:30:28 +0000 (18:30 +0000)]
Merge "helper script for sanitizer testing"
Linfeng Zhang [Mon, 2 Apr 2018 16:05:05 +0000 (16:05 +0000)]
Merge changes I5704bd66,I4d548e97
* changes:
Shrink size of mode_map in struct TileDataEnc
Update sad4d x86 functions
James Zern [Sat, 31 Mar 2018 00:49:11 +0000 (00:49 +0000)]
Merge "vp9_datarate_test: relax over shoot constraints"
Jerome Jiang [Fri, 30 Mar 2018 23:57:21 +0000 (23:57 +0000)]
Merge "VP9 SVC: Write bitstream for each spatial layer in sample."
James Zern [Fri, 30 Mar 2018 23:29:10 +0000 (16:29 -0700)]
vp9_datarate_test: relax over shoot constraints
in BasicRateTargetingVBRLagZero and
BasicRateTargetingVBRLagNonZeroFrameParDecOff after:
e0b28ad69 Add extra case to wq_err_divisor()
BUG=webm:1512
Change-Id: Id181613cc191ff2a2281deffe141efb982501edf
Jerome Jiang [Fri, 30 Mar 2018 21:15:06 +0000 (14:15 -0700)]
VP9 SVC: Write bitstream for each spatial layer in sample.
Added control for denoiser in the sample SVC encoder.
Change-Id: I8e62aa2fc13a943eb110cb33e419e912a898bbc7
Jerome Jiang [Fri, 30 Mar 2018 17:47:41 +0000 (10:47 -0700)]
Code cleanup for datarate tests.
Add/Remove static to functions. Name change.
Change-Id: I5de3efc23cd151fe8e70fe67a7a11acfcfa707dc
Jerome Jiang [Wed, 28 Mar 2018 23:35:43 +0000 (16:35 -0700)]
Split datarate_test.cc to vp8, vp9, svc ones.
As we add more tests to datarate_test.cc, it's growing bigger and hard
to find specific test.
Split it to vp8, vp9 and svc ones.
Change-Id: Ie8c302010cf304a95554bee19d87ddc90498d0fb
James Zern [Thu, 29 Mar 2018 19:01:34 +0000 (19:01 +0000)]
Merge "test: use testing::*tuple instead of std::tr1"
Marco Paniconi [Thu, 29 Mar 2018 18:49:26 +0000 (18:49 +0000)]
Merge "vp9-svc: Fix in pickmode for key frames."
Jerome Jiang [Thu, 29 Mar 2018 18:44:35 +0000 (18:44 +0000)]
Merge "VP9 SVC: Add enum type for framedrop_mode."
Jerome Jiang [Wed, 28 Mar 2018 23:23:26 +0000 (16:23 -0700)]
VP9 SVC: Add enum type for framedrop_mode.
Change-Id: I3d4697b00729553e0860762b9264e29b8a89b9d4
Johann [Tue, 27 Mar 2018 19:59:15 +0000 (12:59 -0700)]
helper script for sanitizer testing
source tools/set_analyzer_env.sh <sanitizer>
will set the compiler, flag, and sanitizer variables necessary to build
and run a variety of sanitizers.
Change-Id: I5dd2ae947cb337d5ccf2a11e9fe87991bc8ba0c8
paulwilkins [Thu, 29 Mar 2018 11:52:15 +0000 (12:52 +0100)]
Add extra case to wq_err_divisor()
Add extra case for 360P and smaller.
This hurts a little in psnr for the derf cif set but helps a little
in terms of average rate accuracy. Most clips come in a little
smaller with this patch.
No impact on larger formats.
Change-Id: I5056246cb53b90f961ff9ea5813937f33778aa4c
xiwei gu [Thu, 29 Mar 2018 01:05:33 +0000 (01:05 +0000)]
Merge "vp9: [loongson] optimize vpx_convolve8 with mmi."
Marco Paniconi [Wed, 28 Mar 2018 23:10:17 +0000 (16:10 -0700)]
vp9-svc: Fix in pickmode for key frames.
For the fixed/default SVC patterns, GOLDEN is the
spatial reference, except on key frames, where LAST
is labeled as the spatial reference.
The current code was assuming GOLDEN is always the
spatial reference for the purpose of selecting the
subpel motion (due to the downsampling filter).
Fix is make sure flag_svc_subpel is set and used
with spatial_ref, which is labeled as the proper
spatial reference before entering mode check.
Some quality improvement on key frames.
Change-Id: Id236bcd47055b035731cc910ed84449d7e29f50c
Marco Paniconi [Wed, 28 Mar 2018 21:29:35 +0000 (21:29 +0000)]
Merge "vp9-svc: Modify logic for frame dropping with spatial layers."
Marco Paniconi [Wed, 28 Mar 2018 19:09:54 +0000 (12:09 -0700)]
vp9-svc: Modify logic for frame dropping with spatial layers.
In the constrained framedrop mode for svc: modify the buffer check
condition relative to (non-zero) dropmark to include uppper spatial layers,
in addition to the current spatial layer.
But keep the single layer check if the buffer goes below zero, since
in this case (buffer underflow) we should force drop of that layer
regardless of upper layers.
Change-Id: Id277f0b4a3ae6275effdd5f5f0c80e3229c17424
Linfeng Zhang [Mon, 26 Mar 2018 23:42:00 +0000 (16:42 -0700)]
Shrink size of mode_map in struct TileDataEnc
To reduce the memcpy() cycles in vp9_rd_pick_inter_mode_sb().
The maximum value of mode_map is (MAX_MODES - 1) = 29.
Change-Id: I5704bd66838ea0b075f0afb001f5cbebfd3f1602
Linfeng Zhang [Mon, 26 Mar 2018 20:06:09 +0000 (13:06 -0700)]
Update sad4d x86 functions
Speed change is marginal.
Change-Id: I4d548e9763ce43bd546f19132202f7a8509a32bf
James Zern [Wed, 28 Mar 2018 19:42:27 +0000 (12:42 -0700)]
test: use testing::*tuple instead of std::tr1
googletest imports tuple into testing to allow for compatibility across
c++ versions where tuple may be in std::tr1 or std. fixes deprecation
warnings under visual studio 2017
Change-Id: Id78b372d5478b12d8c8f63fd3f2166fec25aa8be
Linfeng Zhang [Wed, 28 Mar 2018 19:39:37 +0000 (19:39 +0000)]
Merge "Add speed test in SADx4Test"
Linfeng Zhang [Thu, 22 Mar 2018 20:37:49 +0000 (13:37 -0700)]
Add speed test in SADx4Test
Change-Id: I42dd3df8c13c0a6d08ce28e27e8917b5d831fc1a
gxw [Thu, 25 Jan 2018 01:38:28 +0000 (09:38 +0800)]
vp9: [loongson] optimize vpx_convolve8 with mmi.
1. vpx_convolve8_vert_mmi
2. vpx_convolve8_horiz_mmi
3. vpx_convolve8_mmi
4. vpx_convolve8_avg_mmi
5. vpx_convolve8_avg_vert_mmi
Change-Id: I41a6b3b4f327d6b67d282e0163cfa0aee8648abe
Marco Paniconi [Wed, 28 Mar 2018 17:28:14 +0000 (10:28 -0700)]
vp9-svc: Add check in datarate unittests for frame-dropping.
Add verfication for constrained svc framedrop mode: check that
if a given spatial is dropped, all uppper layers must be dropped.
Change-Id: I9b4821b23c95d1d9d0c031a41af19984647ec5dc
Marco Paniconi [Tue, 27 Mar 2018 03:25:57 +0000 (20:25 -0700)]
vp9-svc: Add logic to enable for constrained framedrop.
Add the logic for the constrained framdrop mode for SVC.
Add test case in datarate unittests.
Also lower target bitrates in the tests to better test
frame dropper.
Change-Id: I8ee1b8cb56d835c233ad1fbe0fc1456cb2e7291f
Johann Koenig [Tue, 27 Mar 2018 01:08:12 +0000 (01:08 +0000)]
Merge "third_part/googletest: update to release-1.8.0-742-g7857975"
Marco Paniconi [Mon, 26 Mar 2018 17:53:38 +0000 (10:53 -0700)]
vp9-svc: Allow for setting frame drop thresholds per layer.
Add encoder control to set the frame drop thresholds per
spatial layer, and add a frame drop mode: 0 = per-layer drop,
and 1 = constrained drop mode (a drop on a given layer forces
drops to all upper layers).
Default is mode 0 (per-layer dropping).
Implementation for mode 1 will come in subsequent change.
If the control is not used, then the spatial layer frame
drop thresholds (water mark) are all equal and set to the value
given by the encoder config (oxcf->drop_frames_water_mark).
Bump up the ABI version.
Change-Id: Id038d4181b86fa98b3d44d026f96d5f344d81629
Johann [Mon, 26 Mar 2018 18:24:26 +0000 (11:24 -0700)]
third_part/googletest: update to release-1.8.0-742-g7857975
Address std::tr1::tuple warnings:
https://github.com/google/googletest/issues/1111
The unsigned overflow fix has been superseded by:
https://github.com/google/googletest/pull/1180
Change-Id: I92dc0ba08a4d0d63f5e5b2da7b64f4a4642ed9ab
Johann [Tue, 20 Mar 2018 00:00:44 +0000 (17:00 -0700)]
msvs build: only fix_file_list when it is broken
Clears a warning when generating VS project files with older versions of
bash:
declare: -n: invalid option
Change-Id: Id0c0bc17dc5a1599f7d2d73e3cc9259a45540f3f