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

Side by Side Diff: source/libvpx/vp8/encoder/denoising.c

Issue 1124333011: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: only update to last nights LKGR Created 5 years, 7 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 unified diff | Download patch
« no previous file with comments | « source/libvpx/vp8/encoder/bitstream.c ('k') | source/libvpx/vp8/encoder/encodeframe.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebM project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 397 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 { 408 {
409 denoiser->yv12_running_avg[i].flags = 0; 409 denoiser->yv12_running_avg[i].flags = 0;
410 410
411 if (vp8_yv12_alloc_frame_buffer(&(denoiser->yv12_running_avg[i]), width, 411 if (vp8_yv12_alloc_frame_buffer(&(denoiser->yv12_running_avg[i]), width,
412 height, VP8BORDERINPIXELS) 412 height, VP8BORDERINPIXELS)
413 < 0) 413 < 0)
414 { 414 {
415 vp8_denoiser_free(denoiser); 415 vp8_denoiser_free(denoiser);
416 return 1; 416 return 1;
417 } 417 }
418 vpx_memset(denoiser->yv12_running_avg[i].buffer_alloc, 0, 418 memset(denoiser->yv12_running_avg[i].buffer_alloc, 0,
419 denoiser->yv12_running_avg[i].frame_size); 419 denoiser->yv12_running_avg[i].frame_size);
420 420
421 } 421 }
422 denoiser->yv12_mc_running_avg.flags = 0; 422 denoiser->yv12_mc_running_avg.flags = 0;
423 423
424 if (vp8_yv12_alloc_frame_buffer(&(denoiser->yv12_mc_running_avg), width, 424 if (vp8_yv12_alloc_frame_buffer(&(denoiser->yv12_mc_running_avg), width,
425 height, VP8BORDERINPIXELS) < 0) 425 height, VP8BORDERINPIXELS) < 0)
426 { 426 {
427 vp8_denoiser_free(denoiser); 427 vp8_denoiser_free(denoiser);
428 return 1; 428 return 1;
429 } 429 }
430 430
431 vpx_memset(denoiser->yv12_mc_running_avg.buffer_alloc, 0, 431 memset(denoiser->yv12_mc_running_avg.buffer_alloc, 0,
432 denoiser->yv12_mc_running_avg.frame_size); 432 denoiser->yv12_mc_running_avg.frame_size);
433 433
434 if (vp8_yv12_alloc_frame_buffer(&denoiser->yv12_last_source, width, 434 if (vp8_yv12_alloc_frame_buffer(&denoiser->yv12_last_source, width,
435 height, VP8BORDERINPIXELS) < 0) { 435 height, VP8BORDERINPIXELS) < 0) {
436 vp8_denoiser_free(denoiser); 436 vp8_denoiser_free(denoiser);
437 return 1; 437 return 1;
438 } 438 }
439 vpx_memset(denoiser->yv12_last_source.buffer_alloc, 0, 439 memset(denoiser->yv12_last_source.buffer_alloc, 0,
440 denoiser->yv12_last_source.frame_size); 440 denoiser->yv12_last_source.frame_size);
441 441
442 denoiser->denoise_state = vpx_calloc((num_mb_rows * num_mb_cols), 1); 442 denoiser->denoise_state = vpx_calloc((num_mb_rows * num_mb_cols), 1);
443 vpx_memset(denoiser->denoise_state, 0, (num_mb_rows * num_mb_cols)); 443 memset(denoiser->denoise_state, 0, (num_mb_rows * num_mb_cols));
444 vp8_denoiser_set_parameters(denoiser, mode); 444 vp8_denoiser_set_parameters(denoiser, mode);
445 denoiser->nmse_source_diff = 0; 445 denoiser->nmse_source_diff = 0;
446 denoiser->nmse_source_diff_count = 0; 446 denoiser->nmse_source_diff_count = 0;
447 denoiser->qp_avg = 0; 447 denoiser->qp_avg = 0;
448 // QP threshold below which we can go up to aggressive mode. 448 // QP threshold below which we can go up to aggressive mode.
449 denoiser->qp_threshold_up = 80; 449 denoiser->qp_threshold_up = 80;
450 // QP threshold above which we can go back down to normal mode. 450 // QP threshold above which we can go back down to normal mode.
451 // For now keep this second threshold high, so not used currently. 451 // For now keep this second threshold high, so not used currently.
452 denoiser->qp_threshold_down = 128; 452 denoiser->qp_threshold_down = 128;
453 // Bitrate thresholds and noise metric (nmse) thresholds for switching to 453 // Bitrate thresholds and noise metric (nmse) thresholds for switching to
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 } 736 }
737 if (apply_filter) { 737 if (apply_filter) {
738 // Update the signal block |x|. Pixel changes are only to top and/or 738 // Update the signal block |x|. Pixel changes are only to top and/or
739 // left boundary pixels: can we avoid full block copy here. 739 // left boundary pixels: can we avoid full block copy here.
740 vp8_copy_mem16x16( 740 vp8_copy_mem16x16(
741 denoiser->yv12_running_avg[INTRA_FRAME].y_buffer + recon_yoffset, 741 denoiser->yv12_running_avg[INTRA_FRAME].y_buffer + recon_yoffset,
742 y_stride, x->thismb, 16); 742 y_stride, x->thismb, 16);
743 } 743 }
744 } 744 }
745 } 745 }
OLDNEW
« no previous file with comments | « source/libvpx/vp8/encoder/bitstream.c ('k') | source/libvpx/vp8/encoder/encodeframe.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698