[Bf-blender-cvs] [e1a2787] soc-2016-cycles_denoising: Cycles: Revert to 6 bias-variance samples

Lukas Stockner noreply at git.blender.org
Sun Aug 21 06:18:18 CEST 2016


Commit: e1a2787464a892d2ef7ad717f73d05c2be8f6aaa
Author: Lukas Stockner
Date:   Sun Aug 21 04:52:12 2016 +0200
Branches: soc-2016-cycles_denoising
https://developer.blender.org/rBe1a2787464a892d2ef7ad717f73d05c2be8f6aaa

Cycles: Revert to 6 bias-variance samples

The CUDA redesign commit removed the sample at h=2, but I found that this actually makes results worse.
Therefore, it's now added back.

===================================================================

M	intern/cycles/device/device_cuda.cpp
M	intern/cycles/kernel/kernel_filter.h

===================================================================

diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp
index e50a620..0dcbad8 100644
--- a/intern/cycles/device/device_cuda.cpp
+++ b/intern/cycles/device/device_cuda.cpp
@@ -1097,7 +1097,7 @@ public:
 		                           xthreads, ythreads, 1, /* threads */
 		                           0, 0, transform_args, 0));
 
-		for(int g = 0; g < 5; g++) {
+		for(int g = 0; g < 6; g++) {
 			void *bias_variance_args[] = {&sample,
 			                              &d_denoise_buffer,
 			                              &d_transforms,
diff --git a/intern/cycles/kernel/kernel_filter.h b/intern/cycles/kernel/kernel_filter.h
index 1ceb3e6..f1c6dc1 100644
--- a/intern/cycles/kernel/kernel_filter.h
+++ b/intern/cycles/kernel/kernel_filter.h
@@ -203,7 +203,7 @@ ccl_device void kernel_filter_estimate_bias_variance(KernelGlobals *kg, int samp
 
 
 	float g_bandwidth_factor[DENOISE_FEATURES];
-	const float candidate_bw[5] = {0.05f, 0.1f, 0.25f, 0.5f, 1.0f};
+	const float candidate_bw[6] = {0.05f, 0.1f, 0.25f, 0.5f, 1.0f, 2.0f};
 	for(int i = 0; i < rank; i++)
 		/* Divide by the candidate bandwidth since the bandwidth_factor actually is the inverse of the bandwidth. */
 		g_bandwidth_factor[i] = storage->bandwidth[i]/candidate_bw[candidate];
@@ -278,8 +278,8 @@ ccl_device void kernel_filter_calculate_bandwidth(KernelGlobals *kg, int sample,
 	math_lsq_init(lsq_bias);
 	math_lsq_init(lsq_variance);
 
-	const float candidate_bw[5] = {0.05f, 0.1f, 0.25f, 0.5f, 1.0f};
-	for(int g = 0; g < 5; g++) {
+	const float candidate_bw[6] = {0.05f, 0.1f, 0.25f, 0.5f, 1.0f, 2.0f};
+	for(int g = 0; g < 6; g++) {
 		math_lsq_add(lsq_bias, (double) (candidate_bw[g]*candidate_bw[g]), (double) storage->est_bias[g]);
 		math_lsq_add(lsq_variance, pow(candidate_bw[g], -storage->rank), max(sample*storage->est_variance[g], 0.0f));
 	}




More information about the Bf-blender-cvs mailing list