1/* 2 * Copyright (c) 2012 The WebM project authors. All Rights Reserved. 3 * 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 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11#ifndef VP8_ENCODER_DENOISING_H_ 12#define VP8_ENCODER_DENOISING_H_ 13 14#include "block.h" 15 16#ifdef __cplusplus 17extern "C" { 18#endif 19 20#define SUM_DIFF_THRESHOLD (16 * 16 * 2) 21#define SUM_DIFF_THRESHOLD_HIGH (16 * 16 * 3) 22#define MOTION_MAGNITUDE_THRESHOLD (8*3) 23 24enum vp8_denoiser_decision 25{ 26 COPY_BLOCK, 27 FILTER_BLOCK 28}; 29 30typedef struct vp8_denoiser 31{ 32 YV12_BUFFER_CONFIG yv12_running_avg[MAX_REF_FRAMES]; 33 YV12_BUFFER_CONFIG yv12_mc_running_avg; 34} VP8_DENOISER; 35 36int vp8_denoiser_allocate(VP8_DENOISER *denoiser, int width, int height); 37 38void vp8_denoiser_free(VP8_DENOISER *denoiser); 39 40void vp8_denoiser_denoise_mb(VP8_DENOISER *denoiser, 41 MACROBLOCK *x, 42 unsigned int best_sse, 43 unsigned int zero_mv_sse, 44 int recon_yoffset, 45 int recon_uvoffset); 46 47#ifdef __cplusplus 48} // extern "C" 49#endif 50 51#endif // VP8_ENCODER_DENOISING_H_ 52