Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Unified Diff: webrtc/modules/video_processing/frame_preprocessor.cc

Issue 1466763002: Standalone denoiser (off by default). (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_processing/frame_preprocessor.cc
diff --git a/webrtc/modules/video_processing/frame_preprocessor.cc b/webrtc/modules/video_processing/frame_preprocessor.cc
index a3ec3c8c1c617d57c41d5ff3a40952857e4445a4..43c0525e8f96f9dd0368e19123a94919f124a57e 100644
--- a/webrtc/modules/video_processing/frame_preprocessor.cc
+++ b/webrtc/modules/video_processing/frame_preprocessor.cc
@@ -9,6 +9,7 @@
*/
#include "webrtc/modules/video_processing/frame_preprocessor.h"
+#include "webrtc/modules/video_processing/video_denoiser.h"
namespace webrtc {
@@ -16,17 +17,20 @@ VPMFramePreprocessor::VPMFramePreprocessor()
: content_metrics_(NULL),
resampled_frame_(),
enable_ca_(false),
+ enable_denoise_(false),
frame_cnt_(0) {
spatial_resampler_ = new VPMSimpleSpatialResampler();
ca_ = new VPMContentAnalysis(true);
vd_ = new VPMVideoDecimator();
+ vdn_ = new VideoDenoiser();
}
VPMFramePreprocessor::~VPMFramePreprocessor() {
Reset();
- delete spatial_resampler_;
delete ca_;
delete vd_;
+ delete vdn_;
+ delete spatial_resampler_;
}
void VPMFramePreprocessor::Reset() {
@@ -113,6 +117,11 @@ int32_t VPMFramePreprocessor::PreprocessFrame(const VideoFrame& frame,
*processed_frame = &resampled_frame_;
}
+ if (enable_denoise_) {
+ vdn_->DenoiseFrame(frame, &denoised_frame_);
stefan-webrtc 2015/11/23 10:12:52 What if we have resampled the frame above? Then I'
jackychen 2015/11/23 19:44:59 I reordered the code, so that resample will be wor
+ *processed_frame = &denoised_frame_;
+ }
+
// Perform content analysis on the frame to be encoded.
if (enable_ca_) {
// Compute new metrics every |kSkipFramesCA| frames, starting with
@@ -124,8 +133,8 @@ int32_t VPMFramePreprocessor::PreprocessFrame(const VideoFrame& frame,
content_metrics_ = ca_->ComputeContentMetrics(resampled_frame_);
stefan-webrtc 2015/11/23 10:12:52 Should this use *processed_frame instead?
jackychen 2015/11/23 19:44:59 Maybe Marco can change it in another cl, but for m
stefan-webrtc 2015/11/24 08:56:18 But if denoising is on, but no resampling is done,
jackychen 2015/11/24 22:33:05 You are right. Done.
}
}
- ++frame_cnt_;
}
+ ++frame_cnt_;
return VPM_OK;
}

Powered by Google App Engine
This is Rietveld 408576698