Reduce loop filter in cyclic refresh.
Reduce the delta loop filter for blocks that are cyclicly refreshed. This helps to reduce the dot artifacts that may happen when zero_mv blocks are repeatedly loop-filtered. This change, along with the fix in: https://gerrit.chromium.org/gerrit/#/c/40409/ helps to reduce this artifact, but cannot remove the dot artifacts completely. Change-Id: I44675e7a0f59295b648a3b7d4956fb301231a97f
This commit is contained in:
parent
8aca351926
commit
07ce775189
@ -3732,11 +3732,22 @@ static void encode_frame_to_data_rate
|
||||
|
||||
/* Setup background Q adjustment for error resilient mode.
|
||||
* For multi-layer encodes only enable this for the base layer.
|
||||
*/
|
||||
* Reduce loop filter to reduce "dot" artifacts that can occur for repeated
|
||||
* loop filtering on ZEROMV_LASTREF blocks.
|
||||
* For now reducing it to -32, only for resolutions above CIF and
|
||||
* #temporal_layers < 3 (artifact is hard to see at low spatial resolution
|
||||
* and/or high #temporal layers).
|
||||
*/
|
||||
if (cpi->cyclic_refresh_mode_enabled)
|
||||
{
|
||||
int delta_loop_filter = 0;
|
||||
if (cm->Width > 352 && cm->Height > 288 &&
|
||||
cpi->oxcf.number_of_layers < 3)
|
||||
{
|
||||
delta_loop_filter = -32;
|
||||
}
|
||||
if (cpi->current_layer==0)
|
||||
cyclic_background_refresh(cpi, Q, 0);
|
||||
cyclic_background_refresh(cpi, Q, delta_loop_filter);
|
||||
else
|
||||
disable_segmentation(cpi);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user