]>
granicus.if.org Git - libvpx/log
Hui Su [Tue, 17 Jul 2018 05:05:19 +0000 (22:05 -0700)]
ML based rectangular partition search pruning
Add a ML model to predict if rectangular partition search can be skipped
without much coding loss. This model is enabled for speed 0 low bitdepth
only.
Impact on coding performance is minor:
avg_psnr ovr_psnr ssim
lowres -0.005% 0.005% 0.017%
midres 0.100% 0.114% 0.134%
hdres 0.048% 0.083% 0.074%
jvet480p 0.035% 0.027% 0.044%
jvet720p 0.094% 0.090% 0.174%
Tested encoding speed over 20 midres and hdres clips, average speed
gain is about 8%; maximum speed gain is 23%.
Change-Id: I5d4029dec7134c53ac68ab6cf0c8077dc0b767ed
Jerome Jiang [Wed, 22 Aug 2018 20:20:15 +0000 (20:20 +0000)]
Merge "Revert "vp8: Fix memory address overflow in decoder.""
Jerome Jiang [Wed, 22 Aug 2018 18:01:37 +0000 (11:01 -0700)]
Revert "vp8: Fix memory address overflow in decoder."
This reverts commit
45cf384738ad261de7d00769c19b9b2842af06a7 .
BUG=875626,875680,webm:1496
Change-Id: I78037b5e57dbf6cfe326b29beaad1128868f09f2
Jingning Han [Wed, 22 Aug 2018 16:36:12 +0000 (09:36 -0700)]
Set refresh_frame_context flag off in show_existing_frame mode
Match the decoder expectation, set off refresh_fame_context flag
in show_existing_frame mode.
Change-Id: I5258635b715ea04f41a4a087178709f707449b71
Jingning Han [Tue, 21 Aug 2018 19:59:59 +0000 (12:59 -0700)]
Drop empty line in vp9_get_compressed_data()
Change-Id: Iadb043128e0f813c75cc726e5a41ce94b9d1de24
Jingning Han [Wed, 22 Aug 2018 02:47:57 +0000 (02:47 +0000)]
Merge "Allow codec to skip temporal filter for intermediate ARFs"
Jingning Han [Wed, 22 Aug 2018 00:08:47 +0000 (00:08 +0000)]
Merge "Control reference frame refresh flags for USE_BUF_FRAME"
Jingning Han [Tue, 21 Aug 2018 23:44:28 +0000 (23:44 +0000)]
Merge "Safely swap the show frame buffer pointer in show_existing mode"
Jingning Han [Tue, 21 Aug 2018 23:44:16 +0000 (23:44 +0000)]
Merge "Skip loop filter operation in show_existing_frame mode"
Jingning Han [Tue, 21 Aug 2018 23:44:10 +0000 (23:44 +0000)]
Merge "Point show frame buffer towards existing frame buffer"
Jingning Han [Tue, 21 Aug 2018 23:43:37 +0000 (23:43 +0000)]
Merge "Skip frame encoding when show_existing_frame is on"
Jingning Han [Tue, 21 Aug 2018 23:43:28 +0000 (23:43 +0000)]
Merge "Add USE_BUF_FRAME enum to FRAME_UPDATE_TYPE"
Jingning Han [Tue, 21 Aug 2018 23:43:18 +0000 (23:43 +0000)]
Merge "Unify set_arf_sign_bias function"
Jingning Han [Tue, 21 Aug 2018 19:54:30 +0000 (12:54 -0700)]
Allow codec to skip temporal filter for intermediate ARFs
Allow the encoder to skip temporal filter for intermediate ARFs
that are later used in show_existing_frame mode.
Change-Id: Ieed635bf7672b62f5c287bde43765f80362a345e
Jingning Han [Tue, 21 Aug 2018 19:25:43 +0000 (12:25 -0700)]
Control reference frame refresh flags for USE_BUF_FRAME
The enum USE_BUF_FRAME makes the use of show_existing_frame. In
this setting, all the reference frame buffer condition will stay
unchanged.
Change-Id: I5b7b28488dbd94982f721667128f004e4e6a00d8
Jingning Han [Tue, 21 Aug 2018 18:12:48 +0000 (11:12 -0700)]
Safely swap the show frame buffer pointer in show_existing mode
Point the current frame buffer towards the existing reference frame.
In the meantime, release the original new_fb pointer.
Change-Id: Ic83a698cac5cdaaabdf61acffb936ec130a84d1c
Jingning Han [Tue, 21 Aug 2018 17:48:47 +0000 (10:48 -0700)]
Skip loop filter operation in show_existing_frame mode
Skip the loop filtering for frame coding in show_existing_frame
mode. This matches the decoder operation for show_existing_frame
mode.
Change-Id: I96f275cf5384eb5fe8c0404ec4142cf5b580ac16
Jingning Han [Tue, 21 Aug 2018 17:16:57 +0000 (10:16 -0700)]
Point show frame buffer towards existing frame buffer
When the show_existing_frame mode is on, directly point the new
frame pointer towards the existing reference frame buffer entry.
Change-Id: Ic50b25655fe95ea702fb529afacb7701ec17adcb
Jingning Han [Tue, 21 Aug 2018 17:05:33 +0000 (10:05 -0700)]
Skip frame encoding when show_existing_frame is on
No need to process through the frame encoding stage when a current
frame is coded using show_existing_frame.
Change-Id: I36c6f04e344326fa6ecc95cd0a4e4fd6f467fdcb
Jingning Han [Tue, 21 Aug 2018 16:46:22 +0000 (09:46 -0700)]
Add USE_BUF_FRAME enum to FRAME_UPDATE_TYPE
This enum indicates the use of show existing frame, and conducts
no reference frame buffer update.
Change-Id: I8bf3121376640baf24b580ebea58e9ccbdd641da
Jingning Han [Tue, 21 Aug 2018 03:50:31 +0000 (03:50 +0000)]
Merge "Clean up var define in apply_temporal_filter()"
Harish Mahendrakar [Tue, 21 Aug 2018 03:40:50 +0000 (03:40 +0000)]
Merge "Loopfilter MultiThread Optimization"
Jingning Han [Tue, 21 Aug 2018 00:03:07 +0000 (17:03 -0700)]
Unify set_arf_sign_bias function
Determine if an ARF is on the future side by checking if its
offset meets the gop frame length. This unifies the support to
single- and multiple-layer ARF cases.
Change-Id: I5ab26f54311c345a9b574ffca5ff0a8dbcf4c031
Jingning Han [Mon, 20 Aug 2018 19:59:15 +0000 (12:59 -0700)]
Remove unneeded frame_till_gf_update_due assignment
This will get update after define_gf_group() is called and returned.
No need to update it inside.
Change-Id: Ia42c6f7ef16bca3f1ee88392f3b90b9ebe409da8
Jingning Han [Mon, 20 Aug 2018 19:47:16 +0000 (12:47 -0700)]
Add multi_layer_arf flag
This flag will control the use of multiple layer arf + show
existing frames.
Change-Id: Ic6b9e8e67b2db7d32706bdf0a14663a39f57295f
Jingning Han [Mon, 20 Aug 2018 16:11:50 +0000 (09:11 -0700)]
Add a comment in init_gop_frames()
Make the meaning of the operations therein clearer.
Change-Id: I0dce92a4c14218307df098e3da7a1c7cc45008a7
Jingning Han [Mon, 20 Aug 2018 15:59:31 +0000 (15:59 +0000)]
Merge "Skip frame bit-stream writing for show-existing frame"
Jingning Han [Mon, 20 Aug 2018 15:59:27 +0000 (15:59 +0000)]
Merge "Support code show_existing_frame in bit-stream header"
Jingning Han [Mon, 20 Aug 2018 15:59:07 +0000 (15:59 +0000)]
Merge "Refactor init_gop_frame()"
Supradeep T R [Tue, 12 Jun 2018 08:27:39 +0000 (13:57 +0530)]
Loopfilter MultiThread Optimization
Adding LPF within the tileworker hook. This means that LPF will be done
immediately after decode, without waiting for all threads to sync.
Performance Improvement -
Platform Resolution 2 Threads 4 Threads
X86 720p 7.24% 22.04%
1080p 5.29% 17.02%
ARM 720p 4.61% 8.75%
1080p 5.55% 12.03%
x86 Improvement measured on Intel Core i7-6700 CPU @ 2.10GHz set
in performance with turbo mode off
ARM Improvement measured on Nexus 6 Snapdragon 805 Quad-core @ 2.65 GHz
Change-Id: Ifa73c71b40db3fa7fa16f54f4e3aa06d1258caae
Jingning Han [Fri, 17 Aug 2018 19:55:54 +0000 (12:55 -0700)]
Skip frame bit-stream writing for show-existing frame
Make the bit-stream writer match the decoder behavior, when the
show existing frame feature is used.
Change-Id: Ibc8153f8668da0f9a2ed8af3b42dae91a5ac08c7
Jingning Han [Fri, 17 Aug 2018 18:27:37 +0000 (11:27 -0700)]
Support code show_existing_frame in bit-stream header
Allow the bit-stream writer to support potential use of
show_existing_frame. At this point, cm->show_existing_frame is
always 0.
Change-Id: I64fed1d72db6d4902d56774854ce24fb7a082e0c
Jingning Han [Fri, 17 Aug 2018 17:45:46 +0000 (10:45 -0700)]
Refactor init_gop_frame()
Remove implicit dependency on overlay frame update to break the
gop initialization loop.
Change-Id: I6a6d070cdf22a0e30c298523707bd746fd03f450
Jingning Han [Fri, 17 Aug 2018 16:08:15 +0000 (09:08 -0700)]
Clean up var define in apply_temporal_filter()
Change-Id: Iffb90d1ce61a70de52196247e18a31485038e6dd
Jingning Han [Fri, 17 Aug 2018 16:07:34 +0000 (09:07 -0700)]
Add inline to mod_index()
Change-Id: I97c03e8d7c0907e728dc183f47564f206388118b
Hui Su [Fri, 17 Aug 2018 15:29:35 +0000 (15:29 +0000)]
Merge "Improve enhanced_full_pixel_motion_search"
Tom Finegan [Fri, 17 Aug 2018 15:15:40 +0000 (15:15 +0000)]
Merge "external_frame_buffer_test: rm duplicate protected:"
Jerome Jiang [Fri, 17 Aug 2018 07:03:54 +0000 (07:03 +0000)]
Merge "Refactor: move svc example files to from vpx/ to examples/"
Jerome Jiang [Fri, 17 Aug 2018 07:02:29 +0000 (07:02 +0000)]
Merge "Refactor some swapping code with a local func."
James Zern [Fri, 17 Aug 2018 06:51:39 +0000 (23:51 -0700)]
external_frame_buffer_test: rm duplicate protected:
Change-Id: I8e41a3c39bb243c0c4d212b5ce36d1179923d783
Hui Su [Tue, 14 Aug 2018 21:37:11 +0000 (14:37 -0700)]
Improve enhanced_full_pixel_motion_search
Do full pixel MV search around all 3 MV candidates.
Coding gains for speed 0:
avg_psnr ovr_psnr ssim
lowres -0.088% -0.095% -0.117%
midres -0.175% -0.177% -0.148%
hdres -0.115% -0.146% -0.146%
Coding gains for speed 1:
avg_psnr ovr_psnr ssim
lowres -0.089% -0.104% -0.124%
midres -0.151% -0.171% -0.195%
hdres -0.110% -0.105% -0.132%
Tested encoding speed with speed 1 QP=30,40 over 10 midres sequences,
average speed loss is about 1%.
Change-Id: I9e6de035f4ed2e814e6494aefc2f84aae333a6b4
Jingning Han [Sat, 11 Aug 2018 00:01:08 +0000 (17:01 -0700)]
Use YUV components to build the temporal filter
Use both luma and chroma components simultaneously to estimate the
non-local mean kernel and build the temporal filter. It improves
the compression performance primarily for chroma components. Tested
in speed 0 and vbr mode, the coding gains are:
Overall PSNR SSIM PSNR_U PSNR_V
low -0.10% -0.12% -0.48% -0.49%
mid -0.13% -0.16% -0.58% -0.88%
720p -0.31% -0.24% -0.75% -0.72%
hd -0.09% -0.10% -0.59% -0.79%
nefl2k -0.30% -0.13% -0.53% -0.50%
Change-Id: I24d39997818322b0d69bd9dbeda02c60cd2b2e1b
Jerome Jiang [Thu, 16 Aug 2018 21:41:49 +0000 (14:41 -0700)]
Refactor: move svc example files to from vpx/ to examples/
svc_encodeframe.c and svc_context.h are only used by the example
encoder.
Change-Id: Idb41a5a9d6a229a0bc7d2bc8dbe6575a74efc54c
Jingning Han [Fri, 10 Aug 2018 23:42:21 +0000 (16:42 -0700)]
Unify the YUV plane temporal filter operation
Unify the temporal filter operations for the luma and chroma
components. Handle them in a single loop over the pixels in the
processing block.
Change-Id: I9ea1946f3a6fb37da6867aa78140d45cad0facf0
Jingning Han [Thu, 16 Aug 2018 16:53:30 +0000 (16:53 +0000)]
Merge changes I6ab0ece8,I5f878e9b
* changes:
Temporarily revert to vp9_temporal_filter_apply_c
Simplify temporal filter strength calculation
Marco Paniconi [Thu, 16 Aug 2018 05:09:05 +0000 (05:09 +0000)]
Merge "vp9: Add flatness metric to cyclic refresh setup."
Jerome Jiang [Tue, 14 Aug 2018 00:28:51 +0000 (17:28 -0700)]
Refactor some swapping code with a local func.
Change-Id: Ic55c156ab12703b05ec0d54d83ed16d40e640abe
Marco Paniconi [Mon, 30 Jul 2018 16:25:14 +0000 (09:25 -0700)]
vp9: Add flatness metric to cyclic refresh setup.
For screen-content with aq-mode = 3: identify spatial
flat superblocks in the setup stage and don't mark them as
candidates for refresh. Spatially flat blocks are already
removed from refresh at a later stage in the encoding (in pick_mode),
but doing this at the setup stage of cyclic refresh (before encoding)
allows refresh to more quickly hit the text areas. Only drawback is
an extra source variance calculation for a set of superblocks on
each frame.
Adjust the refresh rate: lower it to reduce overshoot since
more texture areas are hit faster with this change.
Change-Id: I88fa20e52fdbf1a938ae814f9b48c887f1f909d2
Jerome Jiang [Thu, 16 Aug 2018 00:15:45 +0000 (17:15 -0700)]
svc: Force the quantizer to be same as that in encoder config.
Change-Id: I0377ca2ebf63792d7a27de4b8e7e08b38659ecde
Jerome Jiang [Wed, 15 Aug 2018 23:15:57 +0000 (23:15 +0000)]
Merge "vp9: Remove good mode and speed 0-4 from some datarate tests."
Jingning Han [Wed, 15 Aug 2018 04:02:04 +0000 (04:02 +0000)]
Merge "Add vpxenc control to turn on/off tpl model"
Jerome Jiang [Tue, 14 Aug 2018 18:58:19 +0000 (18:58 +0000)]
Merge "vp9: fix memory alloc for adaptive_rd_thresh_row_mt."
Jerome Jiang [Mon, 13 Aug 2018 18:01:31 +0000 (11:01 -0700)]
vp9: fix memory alloc for adaptive_rd_thresh_row_mt.
When the feature is enabled and the memory is not available, allocate
it. There was a case where speed feature changed in the middle of stream
but the number of tiles stayed the same, memory was not re-allocated.
Another case is where speed for base layer is different than that of
higher quality layers (same resolution). Removed the speed constraints
forcing base layer using same speed setting.
Thus the memory for adaptive_rd_thresh_row_mt stayed NULL but the
feature was enabled.
Add an end to end test to cover this case.
Change-Id: I2f1f802ef98a554571b30094d3600b9439228457
James Bankoski [Tue, 14 Aug 2018 16:01:05 +0000 (16:01 +0000)]
Merge "Make Sharpness parameter affect visual sharpness"
Jingning Han [Mon, 13 Aug 2018 21:47:54 +0000 (14:47 -0700)]
Add vpxenc control to turn on/off tpl model
The default is set to turn on the temporal dependency model at
speed 0. Use --enable-tpl to control turning it on/off when calling
vpxenc.
Change-Id: I61614cd8100ae57dc01fd46b2a69c5b67287f18a
Jingning Han [Tue, 14 Aug 2018 15:50:50 +0000 (15:50 +0000)]
Merge "Fix potential encoder failure case in tpl model"
Jim Bankoski [Fri, 6 Jul 2018 22:45:34 +0000 (15:45 -0700)]
Make Sharpness parameter affect visual sharpness
1: Lower rdmult used in trellis optimization
2: Shut off the end of block optimization that tries end of block
at every sub position if any of the coefficients are > 1.
3: Change the rounding and zbin factor according to sharpness.
4: Disable the skip block check that calculates RD using SSE from
predictor.
Change-Id: I247b61a26fa22f12f8b684e7cd6d4e368de7c3e4
Jingning Han [Mon, 13 Aug 2018 23:52:11 +0000 (16:52 -0700)]
Fix potential encoder failure case in tpl model
When the group of picture runs over 24 in length, skip the use of
temporal dependency model, since the model assumes maximum 25
lookahead frames.
Change-Id: I6386dd33bcdaf1229fae978130b4c3b43d071918
Jerome Jiang [Mon, 13 Aug 2018 18:28:28 +0000 (11:28 -0700)]
vp9: Remove good mode and speed 0-4 from some datarate tests.
Low speeds in good mode are too slow.
Move CBR large tests to non-'Large' ones such that they can run in
Jenkins per commit.
Change-Id: I1da73ca96ee89abcf3566d51ff52f1f2e904a048
Marco Paniconi [Mon, 13 Aug 2018 23:20:58 +0000 (23:20 +0000)]
Merge "vp9-svc: Fixes for cyclic refresh for SVC."
Jerome Jiang [Mon, 13 Aug 2018 22:25:53 +0000 (22:25 +0000)]
Merge "vp9: don't release buffer for current frame."
Marco Paniconi [Mon, 13 Aug 2018 04:35:15 +0000 (21:35 -0700)]
vp9-svc: Fixes for cyclic refresh for SVC.
Add metrics that are being updated per-frame to
the layer struct, so each layer using the cyclic
refresh has the correct update. This is more consistent
for the rate control and refresh rate.
Some improvement in screen content clips.
Neutral for SVC on rtc set.
Change-Id: I0a9862fb6b6a79e894e2ff30c120dc4aa26fcda5
Marco Paniconi [Mon, 13 Aug 2018 16:20:21 +0000 (09:20 -0700)]
vp9: Small refactor on overshoot detection, for cbr real-time.
Change-Id: I70997d35a2371bb4614d716ef0c587fa12ea0f4a
Marco Paniconi [Mon, 13 Aug 2018 04:29:05 +0000 (21:29 -0700)]
vp9-svc: Unittest for screen mode with quality layers
Add datarate unittest for SVC screen content mode,
with 2 quality layers.
Change-Id: I9c8ad5462fd046698052bea6d7343c2b7e16668f
Marco Paniconi [Sat, 11 Aug 2018 19:59:40 +0000 (12:59 -0700)]
vp9-svc: Fix to updated SET_SVC_REF_FRAME_CONFIG control
Add flag to separate two cases of bypass (flexible) SVC mode:
usage of using the SET_SVC_REF_FRAME_CONFIG vs passing in the
frame_flags in the vpx_encode (only used for temporal layers).
This fixes failures in Datarate Temporal layer test,
introduced in commit:
a66da31
Change-Id: Ie62f933987c20792d1f963d645e98c1903bdd423
Jerome Jiang [Fri, 10 Aug 2018 01:47:02 +0000 (18:47 -0700)]
vp9: don't release buffer for current frame.
when resync is needed, we flush all frame buffers on key frame.
BUG=b/
112406540
BUG=oss-fuzz:9722
Change-Id: Ie53feb12126f25877436eba40317400bf69c6207
James Zern [Fri, 10 Aug 2018 23:24:18 +0000 (23:24 +0000)]
Merge "loop_filter_rows_mt: use sb_rows to limit workers"
Jerome Jiang [Fri, 10 Aug 2018 04:46:27 +0000 (21:46 -0700)]
Refactor: Move code updating ref frames for svc & denoiser.
Make new functions and move them to vp9_denoiser.c and
vp9_svc_layercontext.c
Change-Id: Ia34266ee2831d0f1316b7a641cbbf40fe64e1a0c
Jerome Jiang [Fri, 10 Aug 2018 16:46:20 +0000 (16:46 +0000)]
Merge "vp9-svc: Update to SET/GET_SVC_REF_FRAME_CONFIG api"
Jerome Jiang [Fri, 10 Aug 2018 16:43:31 +0000 (16:43 +0000)]
Merge "Fix frame drop threshold in vp9 datarate test."
Hui Su [Fri, 10 Aug 2018 16:08:09 +0000 (16:08 +0000)]
Merge "Use the pred_mv feature for speed 0"
Jerome Jiang [Fri, 10 Aug 2018 15:26:48 +0000 (08:26 -0700)]
Fix frame drop threshold in vp9 datarate test.
Change-Id: Ifbd753183782e680a9ae77c55d75f4d9b3fb2477
Marco Paniconi [Fri, 10 Aug 2018 02:24:43 +0000 (02:24 +0000)]
Merge "vp9: Allow for overshoot detection for non-screen CBR mode."
Jerome Jiang [Fri, 10 Aug 2018 00:54:45 +0000 (00:54 +0000)]
Merge "Change target bitrate in vp9 datarate test."
Marco Paniconi [Wed, 8 Aug 2018 21:01:26 +0000 (14:01 -0700)]
vp9: Allow for overshoot detection for non-screen CBR mode.
For CBR real-time mode: refactor usage of speed feature to
handle overshoot on slide/scene change. Add 2 modes to indicate
how slide/scene change is processed for re-setting Q/rate control.
Keep the speed setting to 1 for speed >= 5, otherwise set to 0.
Video content and screen content are now handled in similar way,
though with different thresholds.
Some fixes to thresholds and reset: correct the reset of the buffer
level to optimal level for each temporal layer, if scene change
frame will be encoded at max_q.
Also increase the min_thresh for video mode (non-screen content):
this is to avoid scene change detection on cases like large
lighting changes, cameras focus. And increase in min_thresh
makes it more robust to sudden increase in noise level.
Change-Id: I256d350da6e92d2ddc09f100fc06ac147cbc1e49
Jerome Jiang [Thu, 9 Aug 2018 23:55:47 +0000 (16:55 -0700)]
Change target bitrate in vp9 datarate test.
Due to the change of clip.
Change-Id: Ibbe1a865df0837c349770287d148081230d10aaa
Jingning Han [Wed, 8 Aug 2018 17:22:22 +0000 (10:22 -0700)]
Temporarily revert to vp9_temporal_filter_apply_c
The logic inside will be changed through a set of experiments
coming up next.
Change-Id: I6ab0ece8534a796b96a10ee5a9690b19c878a664
Marco Paniconi [Thu, 9 Aug 2018 22:30:07 +0000 (22:30 +0000)]
Merge "vp9-svc: Fix for scene detection for SVC"
Hui Su [Wed, 8 Aug 2018 19:11:36 +0000 (12:11 -0700)]
Use the pred_mv feature for speed 0
Before this patch, pred_mv is used only when the
adaptive_motion_search speed feature is on(speed>=1).
This patch enables pred_mv for speed 0 as well.
Coding gains:
avg_psnr ovr_psnr ssim
lowres -0.31% -0.32% -0.38%
midres -0.37% -0.41% -0.42%
hdres -0.30% -0.31% -0.29%
Tested encoding speed over 18 midres sequences with QP=40. The
overall speed loss is about 0.6%.
Change-Id: I8987e9efb5a70d2bf8779fc2a43838009f9bbd8a
Jerome Jiang [Mon, 6 Aug 2018 18:37:43 +0000 (11:37 -0700)]
vp9-svc: Update to SET/GET_SVC_REF_FRAME_CONFIG api
Add update_buffer_slot to SVC API to allow for refreshing
any of the 8 reference buffers. Remove frame_flags from
the struct.
Remove svc tests from vp8 build.
BUG=b/
112292577
Change-Id: I0551c349d2b311227245a8ed1639cdbbaf5bc5db
Marco Paniconi [Thu, 9 Aug 2018 16:34:05 +0000 (09:34 -0700)]
vp9-svc: Fix for scene detection for SVC
For spatial layers: use the correct mi_cols/rows in the
scene detection. The scene detection for spatial layers
is only called once per superframe, but we were using wrong
mi_cols/rows (those for base spatial were being used).
Also increase frame_since_key threshold to account for spatial
layers.
Change-Id: I2731da49684a798c4718693a0468eda7db82d2bd
Jerome Jiang [Thu, 9 Aug 2018 18:42:11 +0000 (11:42 -0700)]
replace video clips used in vp9 datarate CBR tests.
replace hantro_collage with niklas vga clip.
Change-Id: I79b89ce12823095a5ee75025b2ddce9e8ef1452a
Jingning Han [Wed, 1 Aug 2018 21:34:14 +0000 (14:34 -0700)]
Simplify temporal filter strength calculation
Change-Id: I5f878e9b6581bcb427ecc29ce490feb68378f8af
James Zern [Wed, 8 Aug 2018 03:07:09 +0000 (20:07 -0700)]
loop_filter_rows_mt: use sb_rows to limit workers
Previously if the number of tiles decreased within a clip and there were
fewer super block rows than workers the mi_row calculation would cause
rows to be skipped. The num_workers stored is the max allocated amount,
use sb_rows to limit the active ones if the row count is smaller as
additional threads will provide no benefit.
Change-Id: I1750296c8c21082de2594afecc4d6a3929db1f12
Hui Su [Tue, 7 Aug 2018 23:38:37 +0000 (23:38 +0000)]
Merge "Add enhanced_full_pixel_motion_search feature"
Scott LaVarnway [Tue, 7 Aug 2018 23:37:31 +0000 (23:37 +0000)]
Merge "VPX: Improve HBD vpx_hadamard_32x32_sse2()"
Wan-Teh Chang [Tue, 7 Aug 2018 23:28:04 +0000 (23:28 +0000)]
Merge "Fix typos in the comment for size_group_lookup."
James Zern [Tue, 7 Aug 2018 21:53:17 +0000 (21:53 +0000)]
Merge "vpx_highbd_d153_predictor_4x4_sse2: reduce load size"
James Zern [Tue, 7 Aug 2018 21:52:22 +0000 (21:52 +0000)]
Merge "test/stress.sh: switch req. for 100 threads to 64"
James Zern [Tue, 7 Aug 2018 18:37:33 +0000 (11:37 -0700)]
test/stress.sh: switch req. for 100 threads to 64
>64 is invalid for vp9 currently so no testing would be done.
Change-Id: Ic0ccd606d5e76258adb27b7c44dcbd82e94c84d1
Hui Su [Tue, 7 Aug 2018 01:01:25 +0000 (18:01 -0700)]
Add enhanced_full_pixel_motion_search feature
Do some extra full pixel search to improve motion vector quality.
Currently it is enabled for speed 1 only; disabled for real time mode.
Coding gain for speed 1:
avg_psnr ovr_psnr ssim
lowres -0.23% -0.23% -0.35%
midres -0.33% -0.35% -0.38%
hdres -0.28% -0.29% -0.28%
Tested encoding time over 10 HD sequences. Overall speed overhead is
1.5% for QP=30; 0.6 % for QP=40.
Change-Id: Ic2ea4d78c4979de9d5090c9d7c702944f155f8af
Jerome Jiang [Tue, 7 Aug 2018 18:06:56 +0000 (18:06 +0000)]
Merge "vp9 test: Enable aq 3 and error resilient in realtime for layers."
James Zern [Tue, 7 Aug 2018 18:06:08 +0000 (11:06 -0700)]
vpx_highbd_d153_predictor_4x4_sse2: reduce load size
this avoids reading 4 pixels into another block, which may be operated
on by a different thread. quiets a tsan warning.
Change-Id: Id27ad9d61819b0e5de0230647b4b510f7c265a71
Johann Koenig [Tue, 7 Aug 2018 00:33:03 +0000 (00:33 +0000)]
Merge "vp9: address integer sanitizer warning"
Hui Su [Mon, 6 Aug 2018 23:00:35 +0000 (23:00 +0000)]
Merge "Remove unnecessary calls to load_pred_mv()"
Johann [Fri, 3 Aug 2018 22:36:59 +0000 (15:36 -0700)]
vp9: address integer sanitizer warning
Comparing the size values with subtraction requires casting. Sort in
descending order.
(a < b) - (a > b)
If a is greater, this is 0 - 1 = -1
If the values are equal, this is 0 - 0 = 0
If b is greater, this is 1 - 0 = 1
Change-Id: I5c20fd10fbc97c391c6858235c44d25d7db57f0e
Jerome Jiang [Mon, 6 Aug 2018 17:46:09 +0000 (10:46 -0700)]
vp9 test: Enable aq 3 and error resilient in realtime for layers.
aq mode 3 is never properly tested in non realtime mode.
BUG=webm:1553
Change-Id: I0663c9724ee57ba5c528a20b31ef8b6df0e03f6c
James Zern [Mon, 6 Aug 2018 19:24:31 +0000 (19:24 +0000)]
Merge "vpxenc: replace uint16 with uint16_t"
Hui Su [Fri, 3 Aug 2018 19:49:29 +0000 (12:49 -0700)]
Remove unnecessary calls to load_pred_mv()
This improves compression performance slightly:
Speed 1:
avg_psnr ovr_psnr ssim
lowres -0.03% -0.03% -0.05%
midres -0.16% -0.20% -0.30%
hdres -0.13% -0.13% -0.16%
Speed 2:
avg_psnr ovr_psnr ssim
lowres -0.02% -0.02% -0.03%
midres -0.08% -0.06% -0.10%
hdres -0.08% -0.08% -0.10%
Change-Id: Id357c1f98042f3c7af56f99e534bc81ea9a7cf36
Jerome Jiang [Mon, 6 Aug 2018 16:57:00 +0000 (16:57 +0000)]
Merge "vp9: new struct BEST_PICKMODE containing search results."