Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Unified Diff: source/libvpx/vp8/encoder/onyx_if.c

Issue 484923003: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/libvpx/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.c ('k') | source/libvpx/vp8/vp8_cx_iface.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/libvpx/vp8/encoder/onyx_if.c
===================================================================
--- source/libvpx/vp8/encoder/onyx_if.c (revision 291087)
+++ source/libvpx/vp8/encoder/onyx_if.c (working copy)
@@ -615,19 +615,21 @@
cpi->cyclic_refresh_mode_index = i;
#if CONFIG_TEMPORAL_DENOISING
- if (cpi->denoiser.denoiser_mode == kDenoiserOnYUVAggressive &&
- Q < (int)cpi->denoiser.denoise_pars.qp_thresh) {
- // Under aggressive denoising mode, use segmentation to turn off loop
- // filter below some qp thresh. The loop filter is turned off for all
- // blocks that have been encoded as ZEROMV LAST x frames in a row,
- // where x is set by cpi->denoiser.denoise_pars.consec_zerolast.
- // This is to avoid "dot" artifacts that can occur from repeated
- // loop filtering on noisy input source.
- cpi->cyclic_refresh_q = Q;
- lf_adjustment = -MAX_LOOP_FILTER;
- for (i = 0; i < mbs_in_frame; ++i) {
- seg_map[i] = (cpi->consec_zero_last[i] >
- cpi->denoiser.denoise_pars.consec_zerolast) ? 1 : 0;
+ if (cpi->oxcf.noise_sensitivity > 0) {
+ if (cpi->denoiser.denoiser_mode == kDenoiserOnYUVAggressive &&
+ Q < (int)cpi->denoiser.denoise_pars.qp_thresh) {
+ // Under aggressive denoising, use segmentation to turn off loop
+ // filter below some qp thresh. The filter is turned off for all
+ // blocks that have been encoded as ZEROMV LAST x frames in a row,
+ // where x is set by cpi->denoiser.denoise_pars.consec_zerolast.
+ // This is to avoid "dot" artifacts that can occur from repeated
+ // loop filtering on noisy input source.
+ cpi->cyclic_refresh_q = Q;
+ lf_adjustment = -MAX_LOOP_FILTER;
+ for (i = 0; i < mbs_in_frame; ++i) {
+ seg_map[i] = (cpi->consec_zero_last[i] >
+ cpi->denoiser.denoise_pars.consec_zerolast) ? 1 : 0;
+ }
}
}
#endif
@@ -3301,15 +3303,17 @@
int skip = 2;
// Only select blocks for computing nmse that have been encoded
// as ZERO LAST min_consec_zero_last frames in a row.
- int min_consec_zero_last = 10;
+ // Scale with number of temporal layers.
+ int min_consec_zero_last = 8 / cpi->oxcf.number_of_layers;
// Decision is tested for changing the denoising mode every
// num_mode_change times this function is called. Note that this
// function called every 8 frames, so (8 * num_mode_change) is number
// of frames where denoising mode change is tested for switch.
int num_mode_change = 15;
// Framerate factor, to compensate for larger mse at lower framerates.
- // TODO(marpan): Adjust this factor,
- int fac_framerate = cpi->output_framerate < 25.0f ? 80 : 100;
+ // Use ref_framerate, which is full source framerate for temporal layers.
+ // TODO(marpan): Adjust this factor.
+ int fac_framerate = cpi->ref_framerate < 25.0f ? 80 : 100;
int tot_num_blocks = cm->mb_rows * cm->mb_cols;
int ystride = cpi->Source->y_stride;
unsigned char *src = cpi->Source->y_buffer;
@@ -3378,13 +3382,13 @@
// num_mode_change.
if (cpi->denoiser.nmse_source_diff_count == num_mode_change) {
// Check for going up: from normal to aggressive mode.
- if ((cpi->denoiser.denoiser_mode = kDenoiserOnYUV) &&
+ if ((cpi->denoiser.denoiser_mode == kDenoiserOnYUV) &&
(cpi->denoiser.nmse_source_diff >
cpi->denoiser.threshold_aggressive_mode)) {
vp8_denoiser_set_parameters(&cpi->denoiser, kDenoiserOnYUVAggressive);
} else {
// Check for going down: from aggressive to normal mode.
- if ((cpi->denoiser.denoiser_mode = kDenoiserOnYUVAggressive) &&
+ if ((cpi->denoiser.denoiser_mode == kDenoiserOnYUVAggressive) &&
(cpi->denoiser.nmse_source_diff <
cpi->denoiser.threshold_aggressive_mode)) {
vp8_denoiser_set_parameters(&cpi->denoiser, kDenoiserOnYUV);
« no previous file with comments | « source/libvpx/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.c ('k') | source/libvpx/vp8/vp8_cx_iface.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698