2015-11-01 23:40:05 +01:00
|
|
|
/*
|
|
|
|
* 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 VP9_ENCODER_NOISE_ESTIMATE_H_
|
|
|
|
#define VP9_ENCODER_NOISE_ESTIMATE_H_
|
|
|
|
|
|
|
|
#include "vp9/encoder/vp9_block.h"
|
|
|
|
#include "vp9/encoder/vp9_skin_detection.h"
|
|
|
|
#include "vpx_scale/yv12config.h"
|
|
|
|
|
|
|
|
#if CONFIG_VP9_TEMPORAL_DENOISING
|
|
|
|
#include "vp9/encoder/vp9_denoiser.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef enum noise_level {
|
2015-11-11 19:09:40 +01:00
|
|
|
kLowLow,
|
2015-11-01 23:40:05 +01:00
|
|
|
kLow,
|
|
|
|
kMedium,
|
|
|
|
kHigh
|
|
|
|
} NOISE_LEVEL;
|
|
|
|
|
|
|
|
typedef struct noise_estimate {
|
|
|
|
int enabled;
|
|
|
|
NOISE_LEVEL level;
|
|
|
|
int value;
|
|
|
|
int thresh;
|
|
|
|
int count;
|
2015-11-10 04:18:29 +01:00
|
|
|
int last_w;
|
|
|
|
int last_h;
|
2015-11-13 17:09:17 +01:00
|
|
|
int num_frames_estimate;
|
2015-11-01 23:40:05 +01:00
|
|
|
} NOISE_ESTIMATE;
|
|
|
|
|
|
|
|
struct VP9_COMP;
|
|
|
|
|
|
|
|
void vp9_noise_estimate_init(NOISE_ESTIMATE *const ne,
|
|
|
|
int width,
|
|
|
|
int height);
|
|
|
|
|
2015-12-03 22:08:37 +01:00
|
|
|
NOISE_LEVEL vp9_noise_estimate_extract_level(NOISE_ESTIMATE *const ne);
|
|
|
|
|
2015-11-01 23:40:05 +01:00
|
|
|
void vp9_update_noise_estimate(struct VP9_COMP *const cpi);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
} // extern "C"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif // VP9_ENCODER_NOISE_ESTIMATE_H_
|