chromium/third_party/libvpx/source/libvpx/vp8/encoder/denoising.h

/*
 *  Copyright (c) 2012 The WebM project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#ifndef VPX_VP8_ENCODER_DENOISING_H_
#define VPX_VP8_ENCODER_DENOISING_H_

#include "block.h"
#include "vp8/common/loopfilter.h"

#ifdef __cplusplus
extern "C" {
#endif

#define SUM_DIFF_THRESHOLD
#define SUM_DIFF_THRESHOLD_HIGH
#define MOTION_MAGNITUDE_THRESHOLD

#define SUM_DIFF_THRESHOLD_UV
#define SUM_DIFF_THRESHOLD_HIGH_UV
#define SUM_DIFF_FROM_AVG_THRESH_UV
#define MOTION_MAGNITUDE_THRESHOLD_UV

#define MAX_GF_ARF_DENOISE_RANGE

enum vp8_denoiser_decision {};

enum vp8_denoiser_filter_state {};

enum vp8_denoiser_mode {};

denoise_params;

VP8_DENOISER;

int vp8_denoiser_allocate(VP8_DENOISER *denoiser, int width, int height,
                          int num_mb_rows, int num_mb_cols, int mode);

void vp8_denoiser_free(VP8_DENOISER *denoiser);

void vp8_denoiser_set_parameters(VP8_DENOISER *denoiser, int mode);

void vp8_denoiser_denoise_mb(VP8_DENOISER *denoiser, MACROBLOCK *x,
                             unsigned int best_sse, unsigned int zero_mv_sse,
                             int recon_yoffset, int recon_uvoffset,
                             loop_filter_info_n *lfi_n, int mb_row, int mb_col,
                             int block_index, int consec_zero_last);

#ifdef __cplusplus
}  // extern "C"
#endif

#endif  // VPX_VP8_ENCODER_DENOISING_H_