Jingning Han [Tue, 4 Sep 2018 14:10:34 +0000 (14:10 +0000)]
Merge "Properly update the raw_src_frame for psnr calculation"
Jingning Han [Tue, 4 Sep 2018 14:08:45 +0000 (14:08 +0000)]
Merge "Build arf index stack"
Marco Paniconi [Tue, 4 Sep 2018 04:07:53 +0000 (04:07 +0000)]
Merge "vp9-svc: Add bypass flag to constrain inter_layer."
Marco Paniconi [Mon, 3 Sep 2018 17:15:38 +0000 (10:15 -0700)]
vp9-svc: Add bypass flag to constrain inter_layer.
The additional constraint imposed on inter-layer
prediction should only be done for non-bypass (fixed)
svc mode.
Change-Id: Ia22cdb7bc21684776c9a13397e177a1e1c3d55a2
Marco Paniconi [Mon, 3 Sep 2018 05:17:32 +0000 (22:17 -0700)]
vp9-svc: Fix condition for pattern constraints
For fixed/non-flexible SVC mode: on non-key spatial
enhancement layers modify constraint on the inter-layer
prediction to include the first_spatial_layer_to_encode.
Change-Id: I6a59174976ad72d555653704dcd3b03c52e31b6f
Jingning Han [Mon, 27 Aug 2018 22:58:41 +0000 (15:58 -0700)]
Properly update the raw_src_frame for psnr calculation
Update the raw_src_frame to be the current input source frame in
the show_existing_frame mode.
Change-Id: Ia8edf49ca948c45ffe6c60556756b36124ab092a
Jingning Han [Sun, 26 Aug 2018 04:39:59 +0000 (21:39 -0700)]
Build arf index stack
Stack the ARF frame indexes. Use the most recent one as the ARF
reference frame for frame coding.
Change-Id: I88a2202fa5deb2587d861b434d27ab8de0642cf7
Marco Paniconi [Fri, 31 Aug 2018 22:42:19 +0000 (15:42 -0700)]
vp9-svc: Add first_spatial_layer_to_encode per superframe
VP9E_SET_SVC_LAYER_ID sets the first spatial layer to
encoder per superframe, so add this parameter to svc encoder.
This is needed, for example, to properly set is_key_frame for
spatial layers when base spatial layer is skipped encoded.
Change-Id: Ifd4ac77f539197ec021e62f4c624a6cc79d64f43
Jingning Han [Fri, 31 Aug 2018 18:19:47 +0000 (18:19 +0000)]
Merge "Fix arf_src_offset calculation"
Jingning Han [Fri, 31 Aug 2018 18:19:42 +0000 (18:19 +0000)]
Merge "Set minimum frame size to be 1 byte"
Jingning Han [Fri, 31 Aug 2018 18:19:32 +0000 (18:19 +0000)]
Merge "Prepare multi-layer ARF coding structure"
Jingning Han [Fri, 31 Aug 2018 18:19:13 +0000 (18:19 +0000)]
Merge "Build up multi-layer ARF processing order"
Jingning Han [Fri, 31 Aug 2018 18:19:07 +0000 (18:19 +0000)]
Merge "Add element stack operations for arf index control"
Jingning Han [Fri, 24 Aug 2018 19:54:58 +0000 (12:54 -0700)]
Fix arf_src_offset calculation
The offset should be computed with respect to the current coding
process standing.
Change-Id: I63fc303eb062d5fd68b8d1faa3b4172cdfcce168
Jingning Han [Thu, 23 Aug 2018 23:51:26 +0000 (16:51 -0700)]
Set minimum frame size to be 1 byte
The show_existing_frame mode still needs to be sent to the decoder.
Account for this as 1 byte. This would make the encoder properly
update its state.
Change-Id: I32a59ccb5d0e02cc6367c1a264b2de72dc1432a7
Jingning Han [Thu, 23 Aug 2018 17:18:53 +0000 (10:18 -0700)]
Prepare multi-layer ARF coding structure
Build the frame processing order and type queue for multi-layer
ARF coding structure.
Change-Id: I5e14c60279020dc65a883d2997ca1ca9ce739488
Jingning Han [Wed, 22 Aug 2018 19:41:25 +0000 (12:41 -0700)]
Build up multi-layer ARF processing order
Use DFS to build the multi-layer ARF processing order.
Change-Id: Iba4b20476eb5c8a3db49a24b2b0dec325fade65b
Jingning Han [Wed, 22 Aug 2018 19:03:39 +0000 (12:03 -0700)]
Add element stack operations for arf index control
Support arf index stack operation.
Change-Id: Ifcf521ffc95a520344824ffc159883b71e8fc7a0
James Zern [Fri, 31 Aug 2018 03:22:42 +0000 (03:22 +0000)]
Merge "cosmetics,lf threading: normalize struct member names"
Johann [Thu, 30 Aug 2018 21:07:02 +0000 (14:07 -0700)]
silence c++ abi warning
Linking c++ libraries built with gcc 6 and gcc 7 on arm
generates some warnings because of incompatibilities between those
compilers:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728
libvpx does not generate a c++ library. C++ is only used for examples and tests.
Change-Id: I3d5d5ef3fb66743bff26a833d6641898975e9f71
Marco Paniconi [Thu, 30 Aug 2018 19:59:44 +0000 (12:59 -0700)]
vp9: Fix rate control stats for bypass mode in sample encoder
Allow rate control stats to work for bypass mode
in vp9_spatial_svc_encoder.c
Change-Id: I66764a006a73b1fd13c07b4fc4e0c88b2bb2a035
James Zern [Thu, 30 Aug 2018 16:58:02 +0000 (09:58 -0700)]
Revert "Loopfilter MultiThread Optimization"
This reverts commit
dafe064289a917977439ab6f4f002b9946496084.
Corrupted files may cause the decoder to hang as row progress in the
loopfilter is used to progress each thread.
BUG=webm:1558
Change-Id: I0674ce9af14d3fb7b2da8124e7b600616c8e734a
Johann Koenig [Wed, 29 Aug 2018 20:17:49 +0000 (20:17 +0000)]
Merge "rtcd: fix --required flag"
Johann [Tue, 28 Aug 2018 19:56:34 +0000 (12:56 -0700)]
rtcd: fix --required flag
Always parse --required options. Previously they were only parsed for
x86_64.
Make entries passed in additive if there are existing required flags.
Mark 'neon' as required for armv8/aarch64.
BUG=chromium:876548
Change-Id: I55c6aad4536a9d8423e223e5616f3aa26d6b2941
Hui Su [Wed, 29 Aug 2018 15:39:31 +0000 (15:39 +0000)]
Merge "Skip unnecessary motion search"
Hui Su [Tue, 28 Aug 2018 00:32:05 +0000 (17:32 -0700)]
Skip unnecessary motion search
If a ref frame is masked out, we do not need to do motion search for it.
It makes speed 0 a little faster.
Change-Id: I68f71255b2798b24fd1d5b28ed24a2ef87251413
Jerome Jiang [Tue, 28 Aug 2018 17:27:57 +0000 (17:27 +0000)]
Merge "vp9: Fix ref frame update in denoiser in bypass mode."
Hui Su [Tue, 28 Aug 2018 17:04:58 +0000 (17:04 +0000)]
Merge "Revert "Prevent double application of min rate in two pass.""
Jingning Han [Mon, 27 Aug 2018 22:22:24 +0000 (15:22 -0700)]
Rework enc/dec mismatch detection
The previous enc/dec mismatch detection assumes the previously
reconstructed frame would always stay at frame buffer pool index
at 0. It could hence cause certain delay in enc/dec mismatch
detection when the immediate reconstruction frame is not yet
propagated to index 0 in the buffer map pool.
This change always keeps the latest decoded show frame buffer
index and directly gets the reconstructed frame from encoder and
decoder buffer pools to check for mismatch.
Change-Id: If53092cbc42ab78d55af5b83f12a489fc362f3ae
Jerome Jiang [Mon, 27 Aug 2018 22:28:48 +0000 (15:28 -0700)]
vp9: Fix ref frame update in denoiser in bypass mode.
BUG=b/
112292577
Change-Id: I8fc5711e44d0317e299aa49f781e9c438bba9d82
Marco Paniconi [Mon, 27 Aug 2018 19:03:37 +0000 (12:03 -0700)]
vp9-svc: Change default pattern for bypass mode
For sample encoder: keep default pattern for bypass
mode to example#0.
Change-Id: Icddc4600d750a23a44b26517a327b546fd8eb412
Jerome Jiang [Mon, 27 Aug 2018 17:54:52 +0000 (17:54 +0000)]
Merge "SVC: extend api to specify temporal id for each spatial layers."
Hui Su [Thu, 23 Aug 2018 22:00:50 +0000 (22:00 +0000)]
Merge "Rework the ref_frame_skip_mask feature in RDO"
Hui Su [Thu, 23 Aug 2018 21:39:38 +0000 (21:39 +0000)]
Revert "Prevent double application of min rate in two pass."
This reverts commit
416b7051d7f610ed6d62dff18af7776ec520fd9c.
Reason for revert: it causes visual quality drop as described in b/
112953058.
Original change's description:
> Prevent double application of min rate in two pass.
>
> The initial allocation of bits in the two pass code to each frame
> should be within the min max limits on the command line. However,
> when forming an ARF group the cost of the ARF is shared by frames
> in that group such that the residual bits for a frame could drop below
> the min value. This change prevents the minimum being re-applied
> after the cost of the ARF has been deducted as this may otherwise
> cause low rate sections to overshoot their target.
>
> Test runs comparing to a baseline run with min and max section pct
> 0-2000% vs one closer to the YT use case (50-150%) suggest that
> this fix not only results in better rate control but also gives a better
> rd outcome.
>
> For example the HD set vs 0-2000% baseline (opsnr, ssim).
> Old code (50-150): +0.751, +1.099
> New code(50-150): +0.241, -0.009
>
> Change-Id: I715da7b130bf53ba8aa609532aa9e18b84f5e2ef
TBR=yaowu@google.com,paulwilkins@google.com,debargha@google.com,builds@webmproject.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Ic9849e4e0db64e9d92bbb9df9cc923230a15c4df
Jingning Han [Thu, 23 Aug 2018 17:21:27 +0000 (17:21 +0000)]
Merge "Sync prev_frame/last_show_frame update with decoder"
Jingning Han [Thu, 23 Aug 2018 17:21:23 +0000 (17:21 +0000)]
Merge "Skip update prev_mi frame in show_existing_frame mode"
Jingning Han [Thu, 23 Aug 2018 17:21:18 +0000 (17:21 +0000)]
Merge "Refactor encoder frame count update"
Jingning Han [Wed, 22 Aug 2018 17:31:18 +0000 (10:31 -0700)]
Sync prev_frame/last_show_frame update with decoder
Make the encoder side handling of prev_frame and last_show_frame
update synchronized with the decoder behavior.
Change-Id: I0f265391cba182d7cc266a1c327fe6b92e24ab17
Jingning Han [Wed, 22 Aug 2018 17:23:53 +0000 (10:23 -0700)]
Skip update prev_mi frame in show_existing_frame mode
When the current frame is coded by directly using a reference
frame in buffer, no need to update the prev_mi frame information
for next frame encoding control.
Change-Id: I33fda8e70cdb31eb5b13b63e3dbd6e96ff85154d
Jingning Han [Wed, 22 Aug 2018 17:16:46 +0000 (10:16 -0700)]
Refactor encoder frame count update
This refactoring allows the encoder to skip frame count update in
the show_existing_frame mode.
Change-Id: Id69707976ccdad144cba93a8f5d36b6947611f91
Jerome Jiang [Wed, 22 Aug 2018 20:20:15 +0000 (20:20 +0000)]
Merge "Revert "vp8: Fix memory address overflow in decoder.""
Hui Su [Wed, 22 Aug 2018 05:02:42 +0000 (22:02 -0700)]
Rework the ref_frame_skip_mask feature in RDO
Previously we often skip all compound inter prediction modes,
causing large coding loss. This patch modifies how we set the
ref_frame_skip_mask so that compound modes are considered in RDO.
This affects speed>=1.
Coding gains(overall psnr):
lowres midres hdres average
speed 1 0.54% 0.43% 0.64% 0.53%
speed 2 0.59% 0.48% 0.60% 0.56%
Tested encoding speed on 10 HD sequences, average speed loss is
5% for speed 1; 2% for speed 2.
Change-Id: Ib8758af7ee7c9812022bd21c5fe61631e2bb8e5c
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
Jerome Jiang [Fri, 10 Aug 2018 23:14:00 +0000 (16:14 -0700)]
SVC: extend api to specify temporal id for each spatial layers.
BUG=b/
112294545
Change-Id: I5be230c8969d69af3ad87068fdf3834ef1af11d9
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