blob: 69edfaf95669df8b25f9a0b8242f0df4e20b68a4 [file] [log] [blame]
jackychen8f9902a2015-11-26 02:59:48 -08001/*
2 * Copyright (c) 2015 The WebRTC 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 WEBRTC_MODULES_VIDEO_PROCESSING_VIDEO_DENOISER_H_
12#define WEBRTC_MODULES_VIDEO_PROCESSING_VIDEO_DENOISER_H_
13
14#include "webrtc/modules/video_processing/util/denoiser_filter.h"
15#include "webrtc/modules/video_processing/util/skin_detection.h"
16
17namespace webrtc {
18
19class VideoDenoiser {
20 public:
21 VideoDenoiser();
22 void DenoiseFrame(const VideoFrame& frame, VideoFrame* denoised_frame);
23
24 private:
25 void TrailingReduction(int mb_rows, int mb_cols, const uint8_t* y_src,
26 int stride_y, uint8_t* y_dst);
27 int width_;
28 int height_;
29 rtc::scoped_ptr<DenoiseMetrics[]> metrics_;
30 rtc::scoped_ptr<DenoiserFilter> filter_;
31};
32
33} // namespace webrtc
34
35#endif // WEBRTC_MODULES_VIDEO_PROCESSING_VIDEO_DENOISER_H_