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

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

Issue 668403002: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vp8/encoder/mcomp.c ('k') | source/libvpx/vp8/vp8_dx_iface.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) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 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 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 #if CONFIG_TEMPORAL_DENOISING 509 #if CONFIG_TEMPORAL_DENOISING
510 if (cpi->oxcf.noise_sensitivity > 0) { 510 if (cpi->oxcf.noise_sensitivity > 0) {
511 denoise_aggressive = 511 denoise_aggressive =
512 (cpi->denoiser.denoiser_mode == kDenoiserOnYUVAggressive) ? 1 : 0; 512 (cpi->denoiser.denoiser_mode == kDenoiserOnYUVAggressive) ? 1 : 0;
513 } 513 }
514 #endif 514 #endif
515 515
516 // Adjust rd for ZEROMV and LAST, if LAST is the closest reference frame. 516 // Adjust rd for ZEROMV and LAST, if LAST is the closest reference frame.
517 if (this_mode == ZEROMV && 517 if (this_mode == ZEROMV &&
518 x->e_mbd.mode_info_context->mbmi.ref_frame == LAST_FRAME && 518 x->e_mbd.mode_info_context->mbmi.ref_frame == LAST_FRAME &&
519 (denoise_aggressive || cpi->closest_reference_frame == LAST_FRAME)) 519 (denoise_aggressive || cpi->closest_reference_frame == LAST_FRAME)) {
520 { 520 this_rd = ((int64_t)this_rd) * rd_adj / 100;
521 this_rd = ((int64_t)this_rd) * rd_adj / 100;
522 } 521 }
523 522
524 check_for_encode_breakout(*sse, x); 523 check_for_encode_breakout(*sse, x);
525 return this_rd; 524 return this_rd;
526 } 525 }
527 526
528 static void calculate_zeromv_rd_adjustment(VP8_COMP *cpi, MACROBLOCK *x, 527 static void calculate_zeromv_rd_adjustment(VP8_COMP *cpi, MACROBLOCK *x,
529 int *rd_adjustment) 528 int *rd_adjustment)
530 { 529 {
531 MODE_INFO *mic = x->e_mbd.mode_info_context; 530 MODE_INFO *mic = x->e_mbd.mode_info_context;
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
1076 break; 1075 break;
1077 default: 1076 default:
1078 break; 1077 break;
1079 } 1078 }
1080 1079
1081 #if CONFIG_TEMPORAL_DENOISING 1080 #if CONFIG_TEMPORAL_DENOISING
1082 if (cpi->oxcf.noise_sensitivity) 1081 if (cpi->oxcf.noise_sensitivity)
1083 { 1082 {
1084 1083
1085 /* Store for later use by denoiser. */ 1084 /* Store for later use by denoiser. */
1086 if (this_mode == ZEROMV && sse < zero_mv_sse ) 1085 // Dont' denoise with GOLDEN OR ALTREF is they are old reference
1086 // frames (greater than MAX_GF_ARF_DENOISE_RANGE frames in past).
1087 int skip_old_reference = ((this_ref_frame != LAST_FRAME) &&
1088 (cpi->common.current_video_frame -
1089 cpi->current_ref_frames[this_ref_frame] >
1090 MAX_GF_ARF_DENOISE_RANGE)) ? 1 : 0;
1091 if (this_mode == ZEROMV && sse < zero_mv_sse &&
1092 !skip_old_reference)
1087 { 1093 {
1088 zero_mv_sse = sse; 1094 zero_mv_sse = sse;
1089 x->best_zeromv_reference_frame = 1095 x->best_zeromv_reference_frame =
1090 x->e_mbd.mode_info_context->mbmi.ref_frame; 1096 x->e_mbd.mode_info_context->mbmi.ref_frame;
1091 } 1097 }
1092 1098
1093 /* Store the best NEWMV in x for later use in the denoiser. */ 1099 /* Store the best NEWMV in x for later use in the denoiser. */
1094 if (x->e_mbd.mode_info_context->mbmi.mode == NEWMV && 1100 if (x->e_mbd.mode_info_context->mbmi.mode == NEWMV &&
1095 sse < best_sse) 1101 sse < best_sse && !skip_old_reference)
1096 { 1102 {
1097 best_sse = sse; 1103 best_sse = sse;
1098 x->best_sse_inter_mode = NEWMV; 1104 x->best_sse_inter_mode = NEWMV;
1099 x->best_sse_mv = x->e_mbd.mode_info_context->mbmi.mv; 1105 x->best_sse_mv = x->e_mbd.mode_info_context->mbmi.mv;
1100 x->need_to_clamp_best_mvs = 1106 x->need_to_clamp_best_mvs =
1101 x->e_mbd.mode_info_context->mbmi.need_to_clamp_mvs; 1107 x->e_mbd.mode_info_context->mbmi.need_to_clamp_mvs;
1102 x->best_reference_frame = 1108 x->best_reference_frame =
1103 x->e_mbd.mode_info_context->mbmi.ref_frame; 1109 x->e_mbd.mode_info_context->mbmi.ref_frame;
1104 } 1110 }
1105 } 1111 }
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
1300 error4x4 = pick_intra4x4mby_modes(x, &rate, 1306 error4x4 = pick_intra4x4mby_modes(x, &rate,
1301 &best_sse); 1307 &best_sse);
1302 if (error4x4 < error16x16) 1308 if (error4x4 < error16x16)
1303 { 1309 {
1304 xd->mode_info_context->mbmi.mode = B_PRED; 1310 xd->mode_info_context->mbmi.mode = B_PRED;
1305 best_rate = rate; 1311 best_rate = rate;
1306 } 1312 }
1307 1313
1308 *rate_ = best_rate; 1314 *rate_ = best_rate;
1309 } 1315 }
OLDNEW
« no previous file with comments | « source/libvpx/vp8/encoder/mcomp.c ('k') | source/libvpx/vp8/vp8_dx_iface.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698