Age | Commit message (Collapse) | Author |
|
Keep the ARF and P frame rate allocation distribution. All the
intermediate ARFs are treated same as regular P frames.
Change-Id: I7807b8e6a8f19b6e1b09b9b7d119b3c88ef90b67
|
|
|
|
|
|
|
|
The additional constraint imposed on inter-layer
prediction should only be done for non-bypass (fixed)
svc mode.
Change-Id: Ia22cdb7bc21684776c9a13397e177a1e1c3d55a2
|
|
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
|
|
Update the raw_src_frame to be the current input source frame in
the show_existing_frame mode.
Change-Id: Ia8edf49ca948c45ffe6c60556756b36124ab092a
|
|
Stack the ARF frame indexes. Use the most recent one as the ARF
reference frame for frame coding.
Change-Id: I88a2202fa5deb2587d861b434d27ab8de0642cf7
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
The offset should be computed with respect to the current coding
process standing.
Change-Id: I63fc303eb062d5fd68b8d1faa3b4172cdfcce168
|
|
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
|
|
Build the frame processing order and type queue for multi-layer
ARF coding structure.
Change-Id: I5e14c60279020dc65a883d2997ca1ca9ce739488
|
|
Use DFS to build the multi-layer ARF processing order.
Change-Id: Iba4b20476eb5c8a3db49a24b2b0dec325fade65b
|
|
Support arf index stack operation.
Change-Id: Ifcf521ffc95a520344824ffc159883b71e8fc7a0
|
|
|
|
|
|
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
|
|
|
|
|
|
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
|
|
BUG=b/112292577
Change-Id: I8fc5711e44d0317e299aa49f781e9c438bba9d82
|
|
|
|
|
|
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
|
|
Make the encoder side handling of prev_frame and last_show_frame
update synchronized with the decoder behavior.
Change-Id: I0f265391cba182d7cc266a1c327fe6b92e24ab17
|
|
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
|
|
This refactoring allows the encoder to skip frame count update in
the show_existing_frame mode.
Change-Id: Id69707976ccdad144cba93a8f5d36b6947611f91
|
|
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
|
|
Match the decoder expectation, set off refresh_fame_context flag
in show_existing_frame mode.
Change-Id: I5258635b715ea04f41a4a087178709f707449b71
|
|
Change-Id: Iadb043128e0f813c75cc726e5a41ce94b9d1de24
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Allow the encoder to skip temporal filter for intermediate ARFs
that are later used in show_existing_frame mode.
Change-Id: Ieed635bf7672b62f5c287bde43765f80362a345e
|
|
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
|
|
Point the current frame buffer towards the existing reference frame.
In the meantime, release the original new_fb pointer.
Change-Id: Ic83a698cac5cdaaabdf61acffb936ec130a84d1c
|
|
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
|
|
When the show_existing_frame mode is on, directly point the new
frame pointer towards the existing reference frame buffer entry.
Change-Id: Ic50b25655fe95ea702fb529afacb7701ec17adcb
|
|
No need to process through the frame encoding stage when a current
frame is coded using show_existing_frame.
Change-Id: I36c6f04e344326fa6ecc95cd0a4e4fd6f467fdcb
|
|
This enum indicates the use of show existing frame, and conducts
no reference frame buffer update.
Change-Id: I8bf3121376640baf24b580ebea58e9ccbdd641da
|