Commit 07ce7751 authored by Marco Paniconi's avatar Marco Paniconi
Browse files

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
parent 8aca3519
......@@ -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);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment