Lines Matching defs:denoiser

19 /* The VP9 denoiser is a work-in-progress. It currently is only designed to work
24 * The implementation is very similar to that of the VP8 denoiser. While
25 * choosing the motion vectors / reference frames, the denoiser is run, and if
92 // If motion_magnitude is small, making the denoiser more aggressive by
203 static VP9_DENOISER_DECISION perform_motion_compensation(VP9_DENOISER *denoiser,
259 // Set the pointers in the MACROBLOCKD to point to the buffers in the denoiser
263 block_start(denoiser->running_avg_y[frame].y_buffer,
264 denoiser->running_avg_y[frame].y_stride,
267 denoiser->running_avg_y[frame].y_stride;
269 block_start(denoiser->running_avg_y[frame].u_buffer,
270 denoiser->running_avg_y[frame].uv_stride,
273 denoiser->running_avg_y[frame].uv_stride;
275 block_start(denoiser->running_avg_y[frame].v_buffer,
276 denoiser->running_avg_y[frame].uv_stride,
279 denoiser->running_avg_y[frame].uv_stride;
282 block_start(denoiser->mc_running_avg_y.y_buffer,
283 denoiser->mc_running_avg_y.y_stride,
285 filter_mbd->plane[0].dst.stride = denoiser->mc_running_avg_y.y_stride;
287 block_start(denoiser->mc_running_avg_y.u_buffer,
288 denoiser->mc_running_avg_y.uv_stride,
290 filter_mbd->plane[1].dst.stride = denoiser->mc_running_avg_y.uv_stride;
292 block_start(denoiser->mc_running_avg_y.v_buffer,
293 denoiser->mc_running_avg_y.uv_stride,
295 filter_mbd->plane[2].dst.stride = denoiser->mc_running_avg_y.uv_stride;
321 void vp9_denoiser_denoise(VP9_DENOISER *denoiser, MACROBLOCK *mb,
326 YV12_BUFFER_CONFIG avg = denoiser->running_avg_y[INTRA_FRAME];
327 YV12_BUFFER_CONFIG mc_avg = denoiser->mc_running_avg_y;
333 decision = perform_motion_compensation(denoiser, mb, bs,
334 denoiser->increase_denoising,
366 void vp9_denoiser_update_frame_info(VP9_DENOISER *denoiser,
376 copy_frame(denoiser->running_avg_y[i], src);
380 copy_frame(denoiser->running_avg_y[ALTREF_FRAME],
381 denoiser->running_avg_y[INTRA_FRAME]);
384 copy_frame(denoiser->running_avg_y[GOLDEN_FRAME],
385 denoiser->running_avg_y[INTRA_FRAME]);
388 copy_frame(denoiser->running_avg_y[LAST_FRAME],
389 denoiser->running_avg_y[INTRA_FRAME]);
416 int vp9_denoiser_alloc(VP9_DENOISER *denoiser, int width, int height,
423 assert(denoiser != NULL);
426 fail = vp9_alloc_frame_buffer(&denoiser->running_avg_y[i], width, height,
433 vp9_denoiser_free(denoiser);
437 make_grayscale(&denoiser->running_avg_y[i]);
441 fail = vp9_alloc_frame_buffer(&denoiser->mc_running_avg_y, width, height,
448 vp9_denoiser_free(denoiser);
452 make_grayscale(&denoiser->running_avg_y[i]);
454 denoiser->increase_denoising = 0;
459 void vp9_denoiser_free(VP9_DENOISER *denoiser) {
461 if (denoiser == NULL) {
465 if (&denoiser->running_avg_y[i] != NULL) {
466 vp9_free_frame_buffer(&denoiser->running_avg_y[i]);
469 if (&denoiser->mc_running_avg_y != NULL) {
470 vp9_free_frame_buffer(&denoiser->mc_running_avg_y);