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

Side by Side Diff: source/libvpx/vp9/encoder/vp9_temporal_filter.c

Issue 1328593002: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: Created 5 years, 3 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/vp9/encoder/vp9_mcomp.c ('k') | source/libvpx/vpx_dsp/inv_txfm.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 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 } 209 }
210 } 210 }
211 #endif // CONFIG_VP9_HIGHBITDEPTH 211 #endif // CONFIG_VP9_HIGHBITDEPTH
212 212
213 static int temporal_filter_find_matching_mb_c(VP9_COMP *cpi, 213 static int temporal_filter_find_matching_mb_c(VP9_COMP *cpi,
214 uint8_t *arf_frame_buf, 214 uint8_t *arf_frame_buf,
215 uint8_t *frame_ptr_buf, 215 uint8_t *frame_ptr_buf,
216 int stride) { 216 int stride) {
217 MACROBLOCK *const x = &cpi->td.mb; 217 MACROBLOCK *const x = &cpi->td.mb;
218 MACROBLOCKD *const xd = &x->e_mbd; 218 MACROBLOCKD *const xd = &x->e_mbd;
219 const MV_SPEED_FEATURES *const mv_sf = &cpi->sf.mv; 219 MV_SPEED_FEATURES *const mv_sf = &cpi->sf.mv;
220 const SEARCH_METHODS old_search_method = mv_sf->search_method;
220 int step_param; 221 int step_param;
221 int sadpb = x->sadperbit16; 222 int sadpb = x->sadperbit16;
222 int bestsme = INT_MAX; 223 int bestsme = INT_MAX;
223 int distortion; 224 int distortion;
224 unsigned int sse; 225 unsigned int sse;
225 int cost_list[5]; 226 int cost_list[5];
226 227
227 MV best_ref_mv1 = {0, 0}; 228 MV best_ref_mv1 = {0, 0};
228 MV best_ref_mv1_full; /* full-pixel value of best_ref_mv1 */ 229 MV best_ref_mv1_full; /* full-pixel value of best_ref_mv1 */
229 MV *ref_mv = &x->e_mbd.mi[0]->bmi[0].as_mv[0].as_mv; 230 MV *ref_mv = &x->e_mbd.mi[0]->bmi[0].as_mv[0].as_mv;
230 231
231 // Save input state 232 // Save input state
232 struct buf_2d src = x->plane[0].src; 233 struct buf_2d src = x->plane[0].src;
233 struct buf_2d pre = xd->plane[0].pre[0]; 234 struct buf_2d pre = xd->plane[0].pre[0];
234 235
235 best_ref_mv1_full.col = best_ref_mv1.col >> 3; 236 best_ref_mv1_full.col = best_ref_mv1.col >> 3;
236 best_ref_mv1_full.row = best_ref_mv1.row >> 3; 237 best_ref_mv1_full.row = best_ref_mv1.row >> 3;
237 238
238 // Setup frame pointers 239 // Setup frame pointers
239 x->plane[0].src.buf = arf_frame_buf; 240 x->plane[0].src.buf = arf_frame_buf;
240 x->plane[0].src.stride = stride; 241 x->plane[0].src.stride = stride;
241 xd->plane[0].pre[0].buf = frame_ptr_buf; 242 xd->plane[0].pre[0].buf = frame_ptr_buf;
242 xd->plane[0].pre[0].stride = stride; 243 xd->plane[0].pre[0].stride = stride;
243 244
244 step_param = mv_sf->reduce_first_step_size; 245 step_param = mv_sf->reduce_first_step_size;
245 step_param = VPXMIN(step_param, MAX_MVSEARCH_STEPS - 2); 246 step_param = VPXMIN(step_param, MAX_MVSEARCH_STEPS - 2);
246 247
247 // Ignore mv costing by sending NULL pointer instead of cost arrays 248 mv_sf->search_method = HEX;
248 vp9_hex_search(x, &best_ref_mv1_full, step_param, sadpb, 1, 249 vp9_full_pixel_search(cpi, x, BLOCK_16X16, &best_ref_mv1_full, step_param,
249 cond_cost_list(cpi, cost_list), 250 sadpb, cond_cost_list(cpi, cost_list), &best_ref_mv1,
250 &cpi->fn_ptr[BLOCK_16X16], 0, &best_ref_mv1, ref_mv); 251 ref_mv, 0, 0);
252 mv_sf->search_method = old_search_method;
251 253
252 // Ignore mv costing by sending NULL pointer instead of cost array 254 // Ignore mv costing by sending NULL pointer instead of cost array
253 bestsme = cpi->find_fractional_mv_step(x, ref_mv, 255 bestsme = cpi->find_fractional_mv_step(x, ref_mv,
254 &best_ref_mv1, 256 &best_ref_mv1,
255 cpi->common.allow_high_precision_mv, 257 cpi->common.allow_high_precision_mv,
256 x->errorperbit, 258 x->errorperbit,
257 &cpi->fn_ptr[BLOCK_16X16], 259 &cpi->fn_ptr[BLOCK_16X16],
258 0, mv_sf->subpel_iters_per_step, 260 0, mv_sf->subpel_iters_per_step,
259 cond_cost_list(cpi, cost_list), 261 cond_cost_list(cpi, cost_list),
260 NULL, NULL, 262 NULL, NULL,
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
740 frames[0]->y_crop_height, 742 frames[0]->y_crop_height,
741 frames[0]->y_crop_width, 743 frames[0]->y_crop_width,
742 frames[0]->y_crop_height); 744 frames[0]->y_crop_height);
743 #endif // CONFIG_VP9_HIGHBITDEPTH 745 #endif // CONFIG_VP9_HIGHBITDEPTH
744 } 746 }
745 } 747 }
746 748
747 temporal_filter_iterate_c(cpi, frames, frames_to_blur, 749 temporal_filter_iterate_c(cpi, frames, frames_to_blur,
748 frames_to_blur_backward, strength, &sf); 750 frames_to_blur_backward, strength, &sf);
749 } 751 }
OLDNEW
« no previous file with comments | « source/libvpx/vp9/encoder/vp9_mcomp.c ('k') | source/libvpx/vpx_dsp/inv_txfm.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698