Age | Commit message (Collapse) | Author |
|
BUG=webm:1609
Change-Id: Ifc15d616e7cfb247b399def64ef7691589d90075
|
|
|
|
The force smooth_filter should only be used
for noisy content, so for now keep it off and
add TODO. Also fix/adjust low-resoln condition
and threshold in cyclic refresh.
Change-Id: I6c456dc9f23daabba20badd65a2f7ee6c5e259c4
|
|
On scene/content changes for base layer of screen:
reduce 32x32 split threshold, bias rdcost for flat
blocks if sse_y is non-zero, and avoid early exit on
intra-check.
Reduce artifacts in scroll content.
Change-Id: I144357a61462351173af900e0b8a47dac4aad6ca
|
|
Speed is similar between non HBD vs 8bit with HBD build.
BUG=webm:1541
Change-Id: I8b5f7eff87ec7dc4710d31744155a60e50b0f0a9
|
|
Force smooth_interpol filter for low resolutions at high Q,
avoid the loopfilter strength reduction for similar conditon,
and reduce thresh_motion for cyclic refresh turnoff.
Change-Id: I4e9121d1cdc7d1b04992c741dc4f0cec281592f7
|
|
Don't force skip of zero-golden reference when
zero_temp_sad_source = 0, as it be may the
inter-layer reference. And remove the flatness conditon
when superblock is static.
Change-Id: I6b4b6eac0f6a2abc862c23d0e5467c7cf61995ef
|
|
zero_temp_sad_source is only computed when
compute_source_sad_onepass and sf->use_source_sad are
on, which currently is only for the top layer of the
layered encoding. So qualify the usage of
zero_temp_sad_source on those flags.
This affects the quality/speed of the lower layers of
screen content mode when SVC (quality layers) are used.
Change-Id: I54167265a05a4b918ce015931375aa42d3e75cf5
|
|
For nonrd-pickmode in screen content mode: modify logic for
inter and intra mode check for spatially flat blocks.
Condition skip of non-zero/zero inter mode based on
zero_temp_sad_source, and force intra/DC check regardless.
Reduces artifacts in scrolling motion.
Change-Id: Iee75cd19d03296afeb649c5bce628806103769ae
|
|
If golden referene is selected as long-term reference,
bias the denoiser filter to use last reference.
Fixes visual artifact.
And reduce the thresh_svc_golden, which was used
to reduce the artifact occurrence.
Change-Id: I08f24160ca11bd8f5f70acaefe989d5f92988132
|
|
For nonrd-pickmode CBR mode: reduce the skip
golden ref thresholds, to reduce some psnr
regression in some clips, while still effectively
reducing flashing block artifact occurrence.
Change-Id: I468dcf5354411aeb54ac3ef56c6fb73267d93fde
|
|
|
|
In non-rd pickmode for screen content:
this logic to reset segment should only be for cyclic_refresh
mode on, so add that condition explicitly.
There may be other uses of segments, like ROI, so we
should condition this reset logic on cyclic_refresh,
as it was intended for that mode only.
Change-Id: I954e6cee968fbca35b34286c4a7ca2531c8e9823
|
|
For real-time CBR mode: golden reference mode testing is
skipped under certain conditons based on sse of zero-last mode.
This was done for svc mode. Here we add similar condition
for non-svc/1 layer encoding.
Reduces flashing block artifacts that can occur in background
areas with noise.
Change-Id: I93f71ea9507af8c9153fc6c0ba7dcc7a0fa8810d
|
|
For non-rd pickmode: include H and V intra mode check for
spatially flat blocks when the sf->short_circuit_flat_blocks
speed feature is set.
Small improvement on screen content tests.
Change-Id: I3391d02cce6a46160be6ccc8a1e33fd8547eb467
|
|
For screen content mode: always force intra check
for spatially flat blocks that have moved. Also
adjust/fix condition for forcing check of
zeromv-golden for quality layers.
Reduces artifacts in screensharing tests.
Change-Id: Iafd62fb24a4e05f5b12af663dde2805fdb4c7b36
|
|
Modify early breakout condition for non-rd pickmode
for quality layers: when lower layer has lower QP force
test of zeromv on golden (lower layer reference) before
breakout due to skip.
Reduce artifacts, observed in cases of scrolling content.
Change-Id: Id834b1eb024a4c97f0e74d8b7f7a0351459e088f
|
|
The breakout speed feature is currently only used by the non-rd
mode search path. Localize it to simplify set_offset() logic.
Change-Id: I27e7519c987a7caac2e4bd6be0ede1b9c8320e55
|
|
To improve readability.
Change-Id: Idc08b2068c7d8ba9dadc0d559a3b4d61c2a88c94
|
|
This will allocate extra frame buffer if long term temporal reference is
used and denoiser is enabled on non-key frame.
Add test.
Change-Id: I0e8d1fdb9a2d697a8eed7fe6206bcb362e69f1c8
|
|
If the scale factor of the golden long term reference
is different from the last reference then disable usage
of long term reference.
This should not happen, but add this as a check against
some possibly incorrect update of the svc configuration.
Change-Id: Ic1062d4384e005007d8c922813fa8ad188d8fa98
|
|
This patch included changes to facilitate accurate sub-pel motion
search. More patch will follow to turn on accurate sub-pel motion
search.
Change-Id: I224c28c338353fe5c7609372162f79885c54248f
|
|
Do one more subpel MV search each round. This improves coding
efficiency slightly:
lowres 0.12%
midres 0.11%
hdres 0.13%
Also renames the control flag for subpel MV search quality.
Encoding speed loss is less than 1%.
This only affects speed 1.
Change-Id: I3aecd25342f2dcacea6c143db494f7db6282cb92
|
|
One of steps to refactor the nonrd pickmode. Simplify arguments list for
functions.
Change-Id: I5f23375caa36be2ae0fbd2ff851b303150a7aa8f
|
|
Move new mv search to a separate function.
Change-Id: I6ef22d03ccad7b87cb5cd611094de204d508f63e
|
|
Move interp filter search to new function.
Change-Id: I6ac57d5b3800c9944732a84a4d4a825a6c0f4c35
|
|
Remove duplicated code to calculate transform size.
Change-Id: Id71772607eea911f24b59168c0629ba5ff891afb
|
|
For nonrd_pickmode: add clamp/check to make
sure tx_size is not set to lower than 8X8,
for the model_rd_large function (which is only
called for big block sizes).
No change in behavior.
Change-Id: I9c6093068e406ac16cfd6784ba75868906225378
|
|
The assert checks for tx_size >= 8x8, but 4x4 can
be set in some cases.
Change-Id: I8bf9683e1add768becaa1208e1709ad0470e3850
|
|
Force 4x4 transform size under some conditions for real-time
screen-content mode. Improvemet on text in some screen clips.
Change-Id: I77cafa23ea1060ef4334dc07eac53189bf80e0ec
|
|
|
|
For real-time/nonrd_pickmode: under some conditions
force check of intra modes for flat blocks with motion.
Reduces artifacts for screen-content mode.
Change-Id: If320f41a90982b14c48d91150f59f048a62982b1
|
|
For real-time screen content: don't allow early
breakout in nonrd-pickmode on slide change.
Avoid artifacts.
Change-Id: I09c6927a5d85b46ce059ea5954a3719a7362fb99
|
|
|
|
This reverts commit d72cd51d83947064ef6354f02b1df59d2d3f1317.
Reason for revert: <INSERT REASONING HERE>
Doesn't seem to really remove the artifact that was the cause for this change. Reverting for now.
Original change's description:
> vp9: Adjust reset segment for real-time screen-content
>
> For real-time screen content mode when the short_circuit
> flat_blocks feauture is enabled: reset segment to 0 for
> coding block if its flat, regardless of temporal source_sad.
> Reduces some artifacts on flat areas.
>
> Change-Id: I9620e424bedc5a13f87cc4f66af7c0e86043c89c
TBR=marpan@google.com,builds@webmproject.org,jianj@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: I83ee9fd75bfb621a4f3e9afbcc07e7c6ca5c51d6
|
|
For real-time screen content mode: when slide change
is detected, for spatially flat blocks (source_variance = 0) on
the re-encoded frame, skip inter modes (so force intra) if
non-zero temporal variance is detected for the coding block.
Add flag to keep track of re-encoded frame at max Q.
Reduces artifacts on slide change.
Change-Id: I28151f412aba6ab8cb03f30087c7ce16d443654b
|
|
For real-time screen content mode when the short_circuit
flat_blocks feauture is enabled: reset segment to 0 for
coding block if its flat, regardless of temporal source_sad.
Reduces some artifacts on flat areas.
Change-Id: I9620e424bedc5a13f87cc4f66af7c0e86043c89c
|
|
For real-time non-rd pickmode: force check of
intra modes on INTER frames for scene changes.
Reduces artifacts on scene changes.
Change-Id: I5ae80869072db156791ace554c0a470f3785e9c6
|
|
It is already initialized at superblock level, but since
it is computed per coding block, based on some speed features,
better to initialize it in pick_inter.
No change in behavior, as currently the speed features
that enable use of source_variance in pick_inter are fixed
at the frame-level.
Change-Id: Ic787ac2f389ba1bced98716096e7b5cffba856a7
|
|
Use case is for layered (SVC) coding to allow higher
resolution layers to continue decoding with temporal references,
while base spatial layer is intra-only frame.
Made encoder changes to real-time path for encoding intra-only
frame. The intra-only frame will be followed by the overlay/copy
frame (with both packed in the same superframe).
Use existing control to enable intra_only frame.
Intra only is only applied to base spatial layer, and only
allowed under fixed/non-flexible SVC mode, and only for
1 < number_spatial_layers < 4.
Added svc datarate unittest for inserting intra_only frame
as sync frame. Added svc end to end tests to check mismatch.
Change-Id: I2f4f0106b2c4f51ce77aa2c1c6823ba83ff2f7a0
Signed-off-by: Marco Paniconi <marpan@google.com>
|
|
Reset segment to base (segment#0) on spatially flat
stationary blocks (source_variance = 0). Also increase
dc_skip threshold for these blocks.
Reduces artifacts on flat areas in screen content mode.
Change-Id: I7ee0c80d37536db7896fa74a83f75799f1dcf73d
|
|
Use the avg_frame_low_motion to reduce/turnoff this
early exit for higher motion content. Get some quality
back for higher motion clips and keep the same exit
thresh for low motion clips.
Change-Id: I95daf754dc0048b3e935d1a753f7f1101e6ffb77
|
|
For SVC: apply the sse_zeromv early exit also to
the case where golden is second temporal reference.
Set the thresh_svc_golden threshold for this case.
This is reduce the encode time for case where golden
is second temporal reference for SVC.
Change-Id: I8c0c87dd746579d3c4f5e983c7f9dd0a1e1476e0
|
|
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
|
|
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
|
|
Bump up ABI version.
Change-Id: I4498d7ea4ed72994c5f847aa98e75b0150dd7f82
|
|
Allow for second temporal reference for top spatial layer in SVC,
when inter-layer prediction is disabled on INTER frames.
The second temporal reference is labelled as the golden reference
and the update/refresh of this reference buffer is only on base
temporal layer superframes. For now the period of refresh is
fixed at every 20 TL0 superframes.
Average gain is ~4% on RTC set, several clips up
by ~8-12%. Speed loss is about ~2% on mac.
Feature is disabled as default for now.
Change-Id: I2e5db5052c62dbe958a3b14be97d043823b7a529
|
|
Fixed some settings in nonrd pick mode to allow for frame-level bilinear
to be set.
On Galaxy S8+ it has 4% speed up on high motion clips. Almost the same
for low motion.
0.17% quality loss on RTC.
Change-Id: I044a7de020183754ba08bb6c96c5a78ba5c7fea2
|
|
Rename a flag to indicate it is for the inter_layer reference.
Change-Id: Ib198d3df95fb912259efde854613592c724b7c49
|
|
Has some effect for SVC on base spatial layers (which only
reference LAST) or on upper spatial layers when inter_layer
prediction is disabled.
Small speedup on Mac of ~1%, for 3 layer SVC with inter-layer
prediction disabled.
Change-Id: I05be5da8843e0d32e9d85f6eb951cf1894e781d8
|