Luca Barbato [Wed, 27 Jun 2018 22:27:11 +0000 (22:27 +0000)]
Merge "Support Power8/Power9 tuning"
Luc Trudeau [Thu, 21 Jun 2018 01:42:19 +0000 (21:42 -0400)]
Add Speed Tests to Trans32x32Test
Speed tests are disabled by default.
Change-Id: I49f8da3d3e1e4d9c72b17fc47c098284e7d84236
Luca Barbato [Wed, 27 Jun 2018 19:12:39 +0000 (21:12 +0200)]
Support Power8/Power9 tuning
Change-Id: I50b32f37f77224ebf0470545152c83ae2ed3cfa3
Luca Barbato [Wed, 27 Jun 2018 19:04:49 +0000 (19:04 +0000)]
Merge "[VSX] Drop the clang-4 workaround for vec_xxpermdi"
Zoe Liu [Wed, 27 Jun 2018 17:09:32 +0000 (17:09 +0000)]
Merge "Add reference frame update flags for hierarchical"
Luc Trudeau [Wed, 27 Jun 2018 16:09:48 +0000 (16:09 +0000)]
Merge changes Ic2183e8b,If906ec9b
* changes:
[VSX] Replace vec_pack and vec_perm with single vec_perm
VSX Version of fdct32x32_rd
Hui Su [Wed, 27 Jun 2018 15:38:45 +0000 (15:38 +0000)]
Merge "Turn on ML partition search breakout on speed 0"
Luc Trudeau [Tue, 26 Jun 2018 21:06:52 +0000 (17:06 -0400)]
[VSX] Replace vec_pack and vec_perm with single vec_perm
vpx_quantize_b:
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
32x32 Old VSX time = 8.1 ms, new VSX time = 7.9 ms
vp9_quantize_fp:
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
32x32 Old VSX time = 6.5 ms, new VSX time = 6.2 ms
Change-Id: Ic2183e8bd721bb69eaeb4865b542b656255a0870
Luc Trudeau [Thu, 21 Jun 2018 01:55:49 +0000 (21:55 -0400)]
VSX Version of fdct32x32_rd
Low bit depth version only. Passes the Trans32x32Test test suite.
Trans32x32Test Speed Test (POWER9 Model 2.2)
32x32 C time = 212.7 ms (±0.1 ms), VSX time = 82.3 ms (±0.0 ms) [2.6x]
Change-Id: If906ec9b56ce3818cae0cc462c7277284ab29859
Johann Koenig [Wed, 27 Jun 2018 13:10:19 +0000 (13:10 +0000)]
Merge "third_party/libyuv: update to
a37e7bfe"
James Zern [Wed, 27 Jun 2018 01:06:17 +0000 (01:06 +0000)]
Merge "BUG FIX: Initialize AverageTestBase members"
Scott LaVarnway [Wed, 27 Jun 2018 00:06:42 +0000 (17:06 -0700)]
BUG FIX: Initialize AverageTestBase members
bit_depth_ was not initialized (used in FillRandom)
and caused valgrind errors.
BUG=webm:1542
Change-Id: I09a9acd54de0dfa4f9006304f45eb20883c9908c
Jerome Jiang [Tue, 26 Jun 2018 23:46:00 +0000 (23:46 +0000)]
Merge "vp9 svc: Add tests for sync on 2nd & 3rd spatial layers."
Jerome Jiang [Tue, 26 Jun 2018 23:34:50 +0000 (23:34 +0000)]
Merge "vp9 svc: Move CheckLayerRateTargeting into class."
Jerome Jiang [Tue, 26 Jun 2018 22:53:57 +0000 (22:53 +0000)]
Merge "vp9 svc: Fix uninitialized data members in frame sync tests."
Jerome Jiang [Fri, 22 Jun 2018 21:27:44 +0000 (14:27 -0700)]
vp9 svc: Move CheckLayerRateTargeting into class.
No need to pass arguments that are already members of the class.
Change-Id: I887d33d6037b561dee5dd8d49bb112d9120cd2a7
Jerome Jiang [Sat, 23 Jun 2018 00:56:37 +0000 (17:56 -0700)]
vp9 svc: Add tests for sync on 2nd & 3rd spatial layers.
Change-Id: I4d8b6d114d9a407f5bb879ab059a66425976f1df
Jerome Jiang [Tue, 26 Jun 2018 22:03:11 +0000 (15:03 -0700)]
vp9 svc: Fix uninitialized data members in frame sync tests.
BUG=webm:1542
Change-Id: If3e0b32a6832740b9af2f5c2d9418a6664297f57
Hui Su [Mon, 25 Jun 2018 17:58:33 +0000 (10:58 -0700)]
Turn on ML partition search breakout on speed 0
Enable ML based partition search breakout on speed 0 when frame
resolution is less then 720p and bitdepth is 8.
Compression performance change is neutral.
Tested encoding speed over 20 480p sequences:
Speed gain(%) QP=30 QP=40 QP=50 QP=60
max 14.4 18.6 17.8 24.4
average 4.6 9.0 8.0 13.2
Change-Id: Ia0d2947030ac774dc1533eb27ffc57f5b788a6ce
Marco Paniconi [Mon, 25 Jun 2018 04:44:29 +0000 (21:44 -0700)]
vp9: Add lower Q limt to cyclic refresh usage.
Disable the cyclic refresh for very low average Q.
This reduces encoded bitrate for static slides after the
the quality has ramped up well enough (low Q). And as the
cyclic refresh is not needed at low Q in most cases, this
has minimal/no effect on quality on RTC set.
Change-Id: Id6d449aa2351bb6886d72aafb2d406e967ed2789
Scott LaVarnway [Mon, 25 Jun 2018 18:45:45 +0000 (18:45 +0000)]
Merge "Add vpx_highbd_avg_8x8, vpx_highbd_avg_4x4"
Marco Paniconi [Mon, 25 Jun 2018 18:30:18 +0000 (18:30 +0000)]
Merge "vp9: Fixes for lossless mode for real-time mode."
Marco Paniconi [Mon, 25 Jun 2018 18:19:41 +0000 (18:19 +0000)]
Merge "vp9-svc: Fix to frame dropping when layer is skipped."
Hui Su [Mon, 25 Jun 2018 17:58:23 +0000 (17:58 +0000)]
Merge "Add a partition search breakout model"
Marco Paniconi [Mon, 25 Jun 2018 05:00:58 +0000 (22:00 -0700)]
vp9: Fixes for lossless mode for real-time mode.
Fixes to nonrd coding mode for lossless mode: keep
skip_txfm to 0 (no skip) and disable the encoder breakout.
This makes the encoding lossless when that mode is selected
for real-time (nonrd pickmode).
Also the disable the cyclic refresh for lossless mode.
Change-Id: I20a11ef6df08accec472d26fabebd14d51f4d337
Marco Paniconi [Mon, 25 Jun 2018 16:02:24 +0000 (09:02 -0700)]
vp9-svc: Fix to frame dropping when layer is skipped.
Fix condition in frame dropper for SVC to handle case
where spatial layer is skipped encoded (due to 0 bitrate).
Change-Id: I24185178774d73e8bb1c406acc0292422dfbe174
Hui Su [Fri, 22 Jun 2018 04:03:37 +0000 (21:03 -0700)]
Add a partition search breakout model
for q-index between 100 and 150.
This only affects speed 1 and 2, resolution under 720p, q-index between
100 and 150, low bit-depth.
Compression performane change is neutral.
Encoding speed gain is up to 16% for speed 1;
up to 6% for speed 2.
Results from encoding city_4cif_30fps:
speed 1, QP=36
before: 37.964 dB, 45581b/f, 2.73 fps
after: 37.958 dB, 45510b/f, 3.16 fps
speed 1, QP=28
before: 39.297 dB, 82452b/f, 2.14 fps
after: 39.297 dB, 82310b/f, 2.25 fps
speed 2, QP=36
before: 37.903 dB, 45586b/f, 4.08 fps
after: 37.895 dB, 45492b/f, 4.34 fps
speed 2, QP=28
before: 39.224 dB, 82272b/f, 3.03 fps
after: 39.223 dB, 82152b/f, 3.17 fps
Change-Id: Ieaefedad902df80aa9699545fa06294601955803
Jerome Jiang [Sun, 24 Jun 2018 02:25:26 +0000 (02:25 +0000)]
Merge "VP9 SVC: Add tests for layer sync on base layer."
Jerome Jiang [Wed, 20 Jun 2018 23:30:35 +0000 (16:30 -0700)]
VP9 SVC: Add tests for layer sync on base layer.
Create tests for sync layer. The purpose of new tests is not to check
bitrate targeting, thus they're put in a new file.
Create a base class for svc tests, which is also inherited by svc datarate
tests, to reduce code redundancy.
Start decoding in the test from the frame of layer sync.
Change-Id: I7226d208279ad785873dffef51e0a8abef23b256
Zoe Liu [Fri, 22 Jun 2018 02:26:32 +0000 (19:26 -0700)]
Add reference frame update flags for hierarchical
Previous CLs have implemented the construction of the hierarchical
structure at the encoder side. This CL is to define and configure the
according flags that will guide the reference frame update according to
the constructed hierarchical structure.
Change-Id: Iae55f2400f7c7beff41feff9308f87bfc70c7b21
Zoe Liu [Fri, 22 Jun 2018 21:47:47 +0000 (21:47 +0000)]
Merge "Add extra altref option for hierarchical structure"
Zoe Liu [Thu, 21 Jun 2018 23:28:15 +0000 (16:28 -0700)]
Add extra altref option for hierarchical structure
This CL is to hook up the implemented hierarchical structure
construction as well as its corresponding bitrate allocation
functionality with the defining of a GF group.
Currently the hierarchical structure is off by default. Hence this CL
has no impact on coding performance.
Change-Id: I9e1ddfd877559e99072c23970f7fe103b64ed9ee
Scott LaVarnway [Wed, 20 Jun 2018 22:10:46 +0000 (15:10 -0700)]
Add vpx_highbd_avg_8x8, vpx_highbd_avg_4x4
BUG=webm:1537
Change-Id: I5f216f35436189b67d9f350991f41ed31431d4fe
Zoe Liu [Fri, 22 Jun 2018 02:56:09 +0000 (19:56 -0700)]
Single out ref frame update functionality
This CL is for a preparation to introduce hierarchical structure based
reference frame update.
Change-Id: Id00a6b721c97d24fc7f5499483b31762b3839a3e
Luca Barbato [Fri, 22 Jun 2018 08:13:54 +0000 (08:13 +0000)]
Merge changes I51e7ed32,I99a9535b,Id584d8f6
* changes:
ppc: add vp9_iht16x16_256_add_vsx
ppc: add vp9_iht8x8_64_add_vsx
ppc: add vp9_iht4x4_16_add_vsx
Jerome Jiang [Fri, 22 Jun 2018 04:32:46 +0000 (04:32 +0000)]
Merge "Add capibility to configure decoder in encode tests."
Jerome Jiang [Thu, 21 Jun 2018 21:08:45 +0000 (14:08 -0700)]
Add capibility to configure decoder in encode tests.
This will allow us to test SVC features like Decode up to certain layers.
Change-Id: Icfb6f9d107108054cd0917197552e09ae48cbc52
Hui Su [Thu, 21 Jun 2018 19:18:01 +0000 (19:18 +0000)]
Merge "Add a partition search breakout model"
Zoe Liu [Thu, 21 Jun 2018 16:31:36 +0000 (16:31 +0000)]
Merge "Add bit allocation for hierarchical layer"
Johann [Wed, 4 Apr 2018 18:50:39 +0000 (11:50 -0700)]
third_party/libyuv: update to
a37e7bfe
Fix mingw builds for x86_32 by updating past:
https://chromium.googlesource.com/libyuv/libyuv/+/
8fa02df3c0591754958a50
Pick up upstream fixes for clang 5 builds with --disable-optimizations.
Disable libyuv by default when building for msa. We have not been able
to update libyuv because of build issues with mips. This can be
revisited when we update the mips compiler used in Jenkins.
BUG=webm:1509,libyuv:793,webm:1514,webm:1518
Change-Id: Id0b9947cb5e0aa74f2f74746524ab6ff2d48796f
Jingning Han [Wed, 20 Jun 2018 18:13:00 +0000 (11:13 -0700)]
Refactor block partition level rate distortion cost computation
Compute the rate distortion cost directly at the coding block level.
Change-Id: Ib3f8e1ac6b6ec68db4f96c037f567b19da7fb114
Zoe Liu [Wed, 20 Jun 2018 01:11:08 +0000 (18:11 -0700)]
Add bit allocation for hierarchical layer
This CL migrates the bit allocation scheme from libaom and combines the
scheme for hierarchical layer with the updated scheme in libvpx that
uses a modified scheme to calculate the target bitrate per frame.
Change-Id: I63593ed528abd4a6a1a8681abf6c9cf06c7a2ee0
Johann Koenig [Wed, 20 Jun 2018 22:53:19 +0000 (22:53 +0000)]
Merge "libyuv: remove problematic functions"
Jingning Han [Wed, 20 Jun 2018 21:00:27 +0000 (21:00 +0000)]
Merge "Disable tpl model in high bd route"
Johann [Wed, 20 Jun 2018 20:10:54 +0000 (13:10 -0700)]
libyuv: remove problematic functions
These fail to build with clang on 32 bit with
--disable-optimizations
Upstream libyuv has addressed these and we will get updated
versions on the next roll. At the moment, we don't use
libyuv for copying alpha data and so this is a quick fix.
BUG=webm:1514
Change-Id: I0040c3ae048f8d896c2082deeb2e32070a32c453
Jingning Han [Wed, 20 Jun 2018 18:03:05 +0000 (11:03 -0700)]
Disable tpl model in high bd route
Temporarily disable tpl dep model in the high bit-depth route to
prevent encoding failure.
Change-Id: Iebb3168a60b38dcc1273e25542530c4359dc679d
Hui Su [Mon, 18 Jun 2018 23:07:41 +0000 (16:07 -0700)]
Add a partition search breakout model
for q-index between 150 and 200.
Previously the ML based breakout feature is only supported for q-index
larger than 200.
This only affects speed 1 and 2, resolution under 720p, q-index between
150 and 200, low bit-depth.
Compression performane change is neutral.
Encoding speed gain is up to 30% for speed 1;
up to 20% for speed 2.
Results from encoding city_4cif_30fps:
speed 1, QP=38
before: 37.689 dB, 41007b/f, 2.91 fps
after: 37.687 dB, 40998b/f, 3.46 fps
speed 1, QP=48
before: 35.959 dB, 22106b/f, 3.66 fps
after: 35.950 dB, 22118b/f, 4.83 fps
speed 2, QP=38
before: 37.630 dB, 40999b/f, 4.42 fps
after: 37.633 dB, 41063b/f, 4.63 fps
speed 2, QP=48
before: 35.905 dB, 22177b/f, 4.90 fps
after: 35.889 dB, 22145b/f, 5.92 fps
Change-Id: Ibd4a2f4d7093fb248ab94ddd388cbaa8de2c5ef7
Marco Paniconi [Tue, 12 Jun 2018 18:50:29 +0000 (11:50 -0700)]
vp9-svc: Add support for spatial layer sync frames.
Add encoder control to allow application to insert
spatial layer sync frame. The sync frame disables
temporal prediction for that spatial layer.
This is useful for RTC application to have receiver
start decoding a higher spatial layer, without inserting
a key frame on base spatial layer.
If the layer sync is requested on the base spatial layer
this then force a key frame, otherwise it only disables
the temporal reference for that spatial layer, allowing
temporal prediction to continue for the other layers.
Although the temporal prediction is disabled and reset
on a layer sync frame, the inter-layer prediction for the
sync frame is enabled on INTER frames. So the meaning of
INTER_LAYER_PRED_OFF_NONKEY is modified to mean disable
inter-layer prediction on non-key and non-sync frames.
Added unittest for inserting layer sync frames.
Bump up ABI version.
Change-Id: Id458acc400a77c853551f125c4e7b6d001991f03
Jingning Han [Wed, 20 Jun 2018 04:10:38 +0000 (04:10 +0000)]
Merge "Refactor partition mode cost calculation"
Zoe Liu [Wed, 20 Jun 2018 01:05:54 +0000 (01:05 +0000)]
Merge "Add hierarchical structure in GF group"
Zoe Liu [Tue, 19 Jun 2018 19:08:55 +0000 (12:08 -0700)]
Add hierarchical structure in GF group
Change-Id: I06fc4b0ad5a45c49e10a9601a2356fbc6e93d6da
Jingning Han [Tue, 19 Jun 2018 03:36:32 +0000 (03:36 +0000)]
Merge "Build temporal prediction dependency propagation"
Jerome Jiang [Tue, 19 Jun 2018 02:37:32 +0000 (02:37 +0000)]
Merge "vp9: Enable cyclic refresh for HBD in real-time."
Hui Su [Tue, 19 Jun 2018 00:04:02 +0000 (00:04 +0000)]
Merge "Improve the partition search breakout speed feature"
Jerome Jiang [Fri, 8 Jun 2018 01:05:23 +0000 (18:05 -0700)]
vp9: Enable cyclic refresh for HBD in real-time.
Keep denoiser and skin detection disabled since some key functions don't
work with >8 bits source.
Add test for HBD with denoiser and cyclic refresh enabled to make sure
nothing crashes.
BUG=webm:1534
Change-Id: Id61fe1e38ed1768f273870a6bdd5f163aa769fe4
Jingning Han [Sat, 26 May 2018 00:09:23 +0000 (17:09 -0700)]
Build temporal prediction dependency propagation
This commit builds up the temporal prediction dependency propagation
within the group of pictures.
Change-Id: Id04cfc0323e6a5c4ac4a570d53e20d1229b3ee11
Jingning Han [Wed, 30 May 2018 20:31:08 +0000 (13:31 -0700)]
Refactor partition mode cost calculation
Compute the coding block partition mode cost as additional rdcost
to the cumulative rate-distortion cost from each coding block. This
changes the coding performance slightly due to the rounding error.
The compression performance change is neutral.
Change-Id: Ibdccae0e79263a0e70af7592a8cb11458d795f8d
Hui Su [Tue, 12 Jun 2018 18:56:09 +0000 (11:56 -0700)]
Improve the partition search breakout speed feature
Use a linear model to make partition search breakout decisions.
Currently the model is tuned for large quantizers and small resolutions.
So it is only used when q-index is larger than 200 and frame
width/height is smaller than 720. Also it's not yet supported for high
bit depth.
Tested speed 1 and 2 on lowres and midres. Compression performance is
neutral. At low bitrates, encoding speedup is up to 50% for speed 1;
up to 30% for speed 2.
Some sample numbers:
into_tree_480p, speed 1
QP=60 before: 35.228 dB, 3488b/f, 7.78 fps
now: 35.217 dB, 3475b/f, 11.57 fps
QP=50 before: 37.492 dB, 7983b/f, 6.24 fps
now: 37.491 dB, 7974b/f, 7.55 fps
PartyScene_832x480_50, speed 1
QP=60 before: 30.104 dB, 22426b/f, 3.28 fps
now: 30.109 dB, 22410b/f, 4.43 fps
QP=50 before: 33.016 dB, 46984b/f, 2.78 fps
now: 33.018 dB, 46998b/f, 3.35 fps
into_tree_480p, speed 2
QP=60 before: 35.175 dB, 3506b/f, 10.96 fps
now: 35.185 dB, 3510b/f, 13.47 fps
QP=50 before: 37.448 dB, 8016b/f, 9.04 fps
now: 37.459 dB, 8048b/f, 9.81 fps
PartyScene_832x480_50, speed 2
QP=60 before: 30.060 dB, 22537b/f, 4.42 fps
now: 30.061 dB, 22541b/f, 5.38 fps
QP=50 before: 32.923 dB, 47134b/f, 3.85 fps
now: 32.920 dB, 47073b/f, 4.31 fps
Change-Id: I674cba4f027c4c65f7837d5ec9179d6201e6ba86
Jingning Han [Mon, 18 Jun 2018 16:28:21 +0000 (16:28 +0000)]
Merge "Enable intra prediction search for tpl model"
Jingning Han [Mon, 18 Jun 2018 16:28:13 +0000 (16:28 +0000)]
Merge "Enable motion compensated prediction for tpl dependency model"
Jingning Han [Mon, 18 Jun 2018 16:27:48 +0000 (16:27 +0000)]
Merge "Remove unneeded buffer restore calls"
Luc Trudeau [Thu, 14 Jun 2018 15:21:05 +0000 (11:21 -0400)]
include msvc.h for snprintf support in benchmarks
include vpx_ports/msvc.h to avoid issues with snprintf issues with MSVC.
Change-Id: Ida09cff8ee3b84e09fd61de131f84b32c113fa1a
Zoe Liu [Sun, 17 Jun 2018 12:42:31 +0000 (05:42 -0700)]
Add update types for hierarchical refs
Change-Id: I0cd91187e1efc1441086772e5683fbf72d9371cf
Jingning Han [Thu, 24 May 2018 21:06:18 +0000 (14:06 -0700)]
Enable intra prediction search for tpl model
Support intra prediction mode search to find the best intra mode
cost for temporal dependency model building.
Change-Id: Ie62d6af8d0c9f65dee742876f3af9cdd5e3f1d63
Jerome Jiang [Sat, 16 Jun 2018 00:12:44 +0000 (00:12 +0000)]
Merge "VP9 HBD: Fix integer overflow problem in variance calc."
Jingning Han [Sat, 16 Jun 2018 00:06:50 +0000 (17:06 -0700)]
Remove unneeded buffer restore calls
Change-Id: I89c8ad6544e0cee60b5daf49bc18c7e31f08faa2
Jingning Han [Thu, 24 May 2018 00:00:03 +0000 (17:00 -0700)]
Enable motion compensated prediction for tpl dependency model
Support the motion compensated prediction search to find the motion
trajectory and hence to build the temporal dependency model.
Change-Id: I861ea85a0d4cc2897cb0dfe2e95378bf7d36209f
Jerome Jiang [Fri, 15 Jun 2018 23:33:15 +0000 (23:33 +0000)]
Merge "vp9 svc: add tests for inter layer prediction."
Jerome Jiang [Fri, 15 Jun 2018 23:03:00 +0000 (16:03 -0700)]
VP9 HBD: Fix integer overflow problem in variance calc.
BUG=webm:1534
Change-Id: I535ac48e3dd2454cc7088c4f9a1e08ea74107da6
Tom Finegan [Fri, 15 Jun 2018 22:25:25 +0000 (22:25 +0000)]
Merge "Clean up avx512 compiler support test."
Luca Barbato [Fri, 15 Jun 2018 20:49:10 +0000 (22:49 +0200)]
[VSX] Drop the clang-4 workaround for vec_xxpermdi
clang-6 seems to support it out of box.
E.g. VP9SubtractBlockTest.DISABLED_Speed with the workaround:
[ BENCH ] 4x4 286.5 ms ( ±0.2 ms )
Without:
[ BENCH ] 4x4 215.2 ms ( ±0.9 ms )
Change-Id: I28b3a2cc93c0d72f52f5a48cc06d8ed4ef26913f
Jingning Han [Fri, 15 Jun 2018 18:05:58 +0000 (18:05 +0000)]
Merge changes I3436302c,I8969f5c3
* changes:
Prepare motion estimation process for temporal dependency model
Construct temporal dependency building system
Tom Finegan [Fri, 15 Jun 2018 17:58:11 +0000 (10:58 -0700)]
Clean up avx512 compiler support test.
Moves the check into a function, check_gcc_avx512_compiles,
that behaves somewhat similarly to check_gcc_machine_options.
Change-Id: I2bef3ddd98e636eef12d9d5e548c43282fac7826
Jingning Han [Wed, 23 May 2018 19:13:50 +0000 (12:13 -0700)]
Prepare motion estimation process for temporal dependency model
Set up needed stack for the motion estimation process to build up
the temporal dependency model.
Change-Id: I3436302c916a686e8c82572ffc106bf8023404b6
Jingning Han [Wed, 23 May 2018 16:07:45 +0000 (09:07 -0700)]
Construct temporal dependency building system
Schedule the frame processing to construct temporal dependency
statistics within a group of pictures. Align the corresponding
reference frames.
Change-Id: I8969f5c335a4a5c2614f4530b636fe13a25a8a98
Jingning Han [Fri, 15 Jun 2018 01:33:41 +0000 (01:33 +0000)]
Merge "Allocate tpl_dep_stats frame buffer"
Zoe Liu [Fri, 15 Jun 2018 00:00:13 +0000 (00:00 +0000)]
Merge "Separate GF structure defining from bit allocation"
Jingning Han [Thu, 14 Jun 2018 23:06:14 +0000 (23:06 +0000)]
Merge "Add temporal model control as a speed feature"
Jerome Jiang [Thu, 14 Jun 2018 19:30:38 +0000 (12:30 -0700)]
vp9 svc: add tests for inter layer prediction.
Change-Id: Ic8e07b07790e067c014677cf33c3b016fcf4cb39
Zoe Liu [Thu, 14 Jun 2018 18:09:41 +0000 (11:09 -0700)]
Separate GF structure defining from bit allocation
This CL separates the defining of the GF group structure from the
handling of its bitrate allocation. The encoder performance should stay
unchanged.
Change-Id: Ib77967757702bb4b284034e429d4c41ae86d0838
Jingning Han [Mon, 21 May 2018 17:13:53 +0000 (10:13 -0700)]
Allocate tpl_dep_stats frame buffer
Allocate buffers to support gather temporal dependency statistics
at the encoder.
Change-Id: I97d4594913a2423e8a916f20caf82ab0f5836961
Jingning Han [Thu, 14 Jun 2018 17:04:03 +0000 (10:04 -0700)]
Add temporal model control as a speed feature
The model construction would incur 15% slowdown for speed 2. The
speed change on speed 0 is unnoticeable.
The current speed features set up would DISABLE temporal dependency
model for all speed settings.
Change-Id: Ic45dd962f3a54a8f5f0452502dc05e352dc09ca1
Jingning Han [Mon, 21 May 2018 16:31:13 +0000 (09:31 -0700)]
Add data structure for frame dependent mode decision
Add block and frame level data structures to support frame
dependent mode decision.
Change-Id: I996fc84155fcba8e2ec2a114bb0799d6aa5539dd
Alexandra Hájková [Fri, 8 Jun 2018 09:41:12 +0000 (09:41 +0000)]
ppc: add vp9_iht16x16_256_add_vsx
Change-Id: I51e7ed32d8d87c25ee126e8b4f8fc616d0327584
Zoe Liu [Thu, 14 Jun 2018 16:18:51 +0000 (16:18 +0000)]
Merge "Unify frame_index in defining GF group structure"
Luc Trudeau [Thu, 14 Jun 2018 16:13:02 +0000 (16:13 +0000)]
Merge changes I51776f0e,I843f3b34
* changes:
[VSX] Optimize PROCESS16 macro
VSX Version of SAD8xN
Jerome Jiang [Thu, 14 Jun 2018 06:56:40 +0000 (06:56 +0000)]
Merge "vp8: remove assertion in tree coder."
Luc Trudeau [Wed, 13 Jun 2018 19:24:54 +0000 (15:24 -0400)]
[VSX] Optimize PROCESS16 macro
The PROCESS16 macro now uses 8-bit lanes instead of 16-bit lanes.
SADTest Speed Test (POWER8 Model 2.1)
16x8 Old VSX time = 16.7 ms, new VSX time = 9.1 ms [1.8x]
16x16 Old VSX time = 15.7 ms, new VSX time = 7.9 ms [2.0x]
16x32 Old VSX time = 14.4 ms, new VSX time = 7.2 ms [2.0x]
32x16 Old VSX time = 14.0 ms, new VSX time = 7.4 ms [1.9x]
32x32 Old VSX time = 13.4 ms, new VSX time = 6.5 ms [2.0x]
32x64 Old VSX time = 12.7 ms, new VSX time = 6.3 ms [2.0x]
64x32 Old VSX time = 12.6 ms, new VSX time = 6.3 ms [2.0x]
64x64 Old VSX time = 12.7 ms, new VSX time = 6.2 ms [2.0x]
Change-Id: I51776f0e428162e78edde8eac47f30ffd2379873
Zoe Liu [Thu, 14 Jun 2018 00:33:57 +0000 (17:33 -0700)]
Unify frame_index in defining GF group structure
Following are completed in defining GF group structure in firstpass:
1. Remove redundant alt_frame_index;
2. Remove hard coded index value with the variable of frame_index.
Change-Id: I7b56e454559bbf704afc7410ea9832b20ffcd57e
Jerome Jiang [Wed, 13 Jun 2018 19:55:17 +0000 (12:55 -0700)]
vp8: remove assertion in tree coder.
Cast the counter to uint64_t in case it overflows.
The assert was to prevent c[0] * Pfac being overflow beyong unsigned int
since Pfac could be 2^8. Thus c[0] needs to be smaller than 2^24.
In VP9, the assert was removed and c[0] was casted to uint64_t.
Bug: 805277
Change-Id: Ic46a3c5b4af2f267de4e32c1518b64e8d6e9d856
Luc Trudeau [Wed, 13 Jun 2018 17:39:04 +0000 (13:39 -0400)]
VSX Version of SAD8xN
VSX versions of the SAD functions of width 8.
SADTest Speed Test (POWER8 Model 2.1)
8x4 C time = 68.7 ms (±0.3 ms), VSX time = 31.8 ms (±0.1 ms) [2.2x]
8x8 C time = 55.6 ms (±0.3 ms), VSX time = 18.3 ms (±0.1 ms) [3.0x]
8x16 C time = 46.5 ms (±0.1 ms), VSX time = 15.6 ms (±0.1 ms) [3.0x]
Change-Id: I843f3b34e103b72deeade4a939193d8b53cee460
Luc Trudeau [Wed, 13 Jun 2018 17:36:17 +0000 (13:36 -0400)]
Add Speed Tests for the SADTest test suite.
Speed tests are added for the SADTest test suite. These test use the
AbstractBench and print the median run time of SAD operations. Speed
tests are disabled by default.
Change-Id: I5d0957248f9b5b307ae2d757d5f8d4761a1dd712
Tom Finegan [Wed, 13 Jun 2018 17:50:39 +0000 (17:50 +0000)]
Merge "Fix avx512 related MSVC build failure."
Jingning Han [Wed, 13 Jun 2018 17:32:12 +0000 (17:32 +0000)]
Merge "Remove duplicate vp9_twopass_postencode_update def"
Tom Finegan [Wed, 13 Jun 2018 16:39:28 +0000 (09:39 -0700)]
Fix avx512 related MSVC build failure.
Check GCC specific AVX512 flags only when GCC is enabled.
Change-Id: I15dc2a0dbf8bce37f4364fedfd34a0a34882104b
Jingning Han [Tue, 12 Jun 2018 20:46:43 +0000 (13:46 -0700)]
Remove duplicate vp9_twopass_postencode_update def
Change-Id: I370f37c85a02c032a8ba266b9b9445ee38eb0756
Marco Paniconi [Tue, 12 Jun 2018 05:40:32 +0000 (05:40 +0000)]
Merge "vp9 svc: Denoise golden when it's a temporal ref."
Jerome Jiang [Mon, 11 Jun 2018 18:05:36 +0000 (11:05 -0700)]
vp9 svc: Denoise golden when it's a temporal ref.
When golden was the inter-layer reference, a block that selected the golden ref
would not be denoised.
But when golden is used as a second temporal reference then we should denoise
blocks that select the golden reference.
This changes allows for that.
Change-Id: Ifdea2ac88f6a74f73520fedcd7fec2f32c559ec9
Luc Trudeau [Sat, 9 Jun 2018 02:53:30 +0000 (22:53 -0400)]
VSX Version of vp9_quantize_fp_32x32
Low bit depth version only. Passes the VP9QuantizeTest test suite.
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
32x32 C time = 93.1 ms (±0.4 ms), VSX time = 6.5 ms (±0.2 ms) [14.4x]
Change-Id: I7f1fd0fc987af86baf2b74147a25aee811289112
Luc Trudeau [Thu, 7 Jun 2018 19:30:23 +0000 (15:30 -0400)]
VSX Version of vp9_quantize_fp
Low bit depth version only. Passes the VP9QuantizeTest test suite.
VP9QuantizeTest Speed Test (POWER8 Model 2.1)
4x4 C time = 86.3 ms (±0.7 ms), VSX time = 18.2 ms (±0.0 ms) [ 4.7x]
8x8 C time = 57.7 ms (±0.3 ms), VSX time = 7.6 ms (±0.0 ms) [ 7.6x]
16x16 C time = 50.7 ms (±0.1 ms), VSX time = 4.9 ms (±0.0 ms) [10.3x]
Change-Id: Ic09bc786c57cc89bba14624064216b52996075eb