Stochastic rendering eliminates the sorting and alpha blending process in Gaussian splatting, at the cost of introducing spatial noise. Formulating temporal denoising over the pixel stream shared by view-consistent stochastic splatting renderers, we propose a temporal neural denoiser validated on stochastic 2D Gaussian Splatting rendering, combining dual-path exponential moving average accumulation, per-pixel learned trust prediction for history validation, a fixed anisotropic spatial filter and a variance-gated composition with stabilization. The denoiser suppresses the noise, achieving temporally stable, visually compelling outputs during free camera navigation, all while retaining the sort-free, blend-free rasterization performance. The combined pipeline retains a PSNR gap to sorted alpha-blending renderers, but the denoiser's overhead stays below the time saved by removing sorting and blending.
Figures & tables
Figure 1: Top left: Garden navigation. Bottom left: zoom-in by conventional α -blended 2DGS renderer, by stochastic rasterization with ST-TAA (see Sec. 5 ), and by our approach on the same setting. ST-TAA suffers from residual Monte Carlo noise, whereas our method visually resembles the conventional renderer. Right: per-frame time breakdown. Despite the additional cost of denoising, our approach achieves significant speedup by avoiding the expensive Gaussian depth sort and α -blending required by conventional splatting.
Figure 2: Workflow of our denoiser for each frame (Eq. ( 1 )) with trainable modules highlighted. The host stochastic rasterizer emits the 1 spp stream (Sec. 3.2 ). In the accumulated path (left), the previous accumulated state is reprojected into the current view and a convolutional predictor estimates the history trust ts from reprojection-derived motion, depth, and photometric cues. In the denoised path (middle), the current frame is spatially filtered by a fixed anisotropic mipmap kernel parameterised by smoothed neural-view scalars, and a lightweight head estimates the trust th of the reprojected denoised mean. In postprocessing (right), both paths update their exponential moving average (EMA) states (Eq. ( 2 )), a variance gate (Eq. ( 3 )) composites the two means per pixel, and a stabilization pass ( STAB ) suppresses residual jitter. The updated states propagate to the next frame.
Figure 3: The two EMA paths and their composition at 4 (top) and 64 (bottom) accumulated frames under slow lateral camera motion; the zoomed region is marked on the reference. The accumulated path is noisy at low frame counts but improves with history, while the denoised path is stable but blurry; the variance gate blends the two adaptively (white: prefer denoised, black: prefer accumulated). At 4 frames the not-yet-calibrated gate dips the composite marginally below the denoised path; the dip vanishes within a few frames. PSNR is computed on the zoomed region.
MipNeRF360
TanksAndTemples
Method
PSNR ↑
SSIM ↑
LPIPS ↓
PSNR ↑
SSIM ↑
LPIPS ↓
2DGS
29.45
0.875
0.199
21.50
0.700
0.379
Ref. (1024)
28.25
0.851
0.202
20.69
0.675
0.388
ST-TAA (128)
27.92
0.822
0.219
20.61
0.635
0.431
Ours (16)
26.89
0.741
0.330
20.33
0.548
0.496
Ours (98)
27.94
0.822
0.226
20.60
0.631
0.436
Table 1: Static quality, averaged per dataset; per-scene PSNR is reported in the appendix. Vanilla 2DGS is the deterministic tile renderer ( Huang et al. 2024 ) . Ref. (1024) is the Monte-Carlo accumulation reference (Sec. 5 ). ST-TAA is the adapted StochasticSplats baseline (Sec. 5 ), accumulated over 128 static frames. Ours renders through the learned denoiser at 16, 98, or 128 accumulated frames (spp counts in parentheses); the 98 spp point approximately matches ST-TAA (128) in wall-clock time, making it comparable (Table 3 ); bold marks the better of this equal-time pair in each column (both when equal after rounding). Ours (z.s.) deploys the room checkpoint on every scene with no per-scene denoiser training (zero-shot transfer) (Sec. 5.5 ).
Method
PSNR ↑
SSIM ↑
LPIPS ↓
CVVDP ↑
ms ↓
Ref. (1024)
32.96
0.950
0.080
8.73
–
Raw 1 spp
18.26
0.282
0.671
4.94
2.71
SS 1 spp †
17.86
0.292
0.659
4.67
3.2 †
SS 4 spp †
22.54
0.526
0.540
6.87
6.5 †
ST-TAA
21.48
0.418
0.615
5.95
2.88
SVGF
25.57
0.785
0.297
6.29
2.86
Table 2: Quality under free camera navigation on MipNeRF360, averaged over all scene tracks (per-track numbers in the appendix), using the 2DGS tile renderer as the reference. Raw 1 spp is the single-sample stochastic output; ST-TAA is the adapted StochasticSplats baseline, temporal accumulation without learned trust or spatial filtering; SVGF is the adapted variance-guided filtering baseline (see appendix). Ref. (1024) is the per-frame Monte-Carlo ceiling, not a practical method. The last column is the mean per-frame time over the seven tracks on an RTX 3090. † SS 1 spp/4 spp are the official StochasticSplats model run on its own finetuned 3DGS scenes over the same camera tracks for 1 or 4 spp, measured against its own 1024 spp accumulation as the reference (no ground truth exists on free tracks); it is listed to show that the 1 spp noise level is inherent with the stochastic formulation. Its per-frame error distribution closely tracks our Raw 1 spp row (per-frame PSNR correlation r=0.90 , and its CVVDP score likewise matches our Raw 1 spp row). SS timings come from the official viewer. Ours (z.s.) deploys the room checkpoint on every scene with no per-scene denoiser training (Sec. 5.5 ).
Figure 4: Garden (top) and Room (bottom) navigation tracks. Left: vanilla-rendered reference crop with the zoom region marked; right: the region for each renderer.
Method (ms/frame)
7-track mean ↓
2DGS Huang et al. (2024)
17.96
2DGS (hardware raster.)
7.99
Raw 1 spp
2.71
+ TAA (ST-TAA)
2.88
Ours (full pipeline)
3.75
Table 3: Per-frame rendering time, averaged over the seven navigation tracks (per-scene numbers in the appendix). The 2DGS row is the official implementation measured with auxiliary channel outputs removed; the hardware raster. row is our hardware-rasterized reimplementation of 2DGS, included as a stronger baseline. The cost of denoiser is nearly constant across scenes.
Variant
PSNR ↑
SSIM ↑
LPIPS ↓
Full model
26.63
0.794
0.238
w/o ts prediction ( ts≡1 )
22.51
0.695
0.323
w/o ts prediction ( ts=heur. )
25.82
0.755
0.268
w/o spatial filter
23.52
0.676
0.359
w/o stabilization pass
25.94
0.736
0.311
Table 4: Ablations on the garden navigation track (evaluated on every 10th frame of the original 1563 frames, metrics against the vanilla tile renderer). The learned trust prediction is the most impactful single component, followed by the spatial filter. The stabilization pass improves all three metrics and, more importantly, removes most of the visible temporal jitter at the cost of slight ghosting. For the ts=heur. ablation, we replace the neural network with ts=exp(−σ⋅max(d1,d2)∣d1−d2∣) heuristic as a stronger baseline, where d1,d2 are pixel depths of the reprojected/current pixels and σ is grid-searched on the same track for best performance (oracle).
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
Ch.
Input
0
∣Ycur−Ystoch∣ : luma diff to reprojected accumulated mean
Table 7: Two-phase training recipe (four stages). Stage 4 trains 15k steps on room and transfers to every other scene with 4k steps, starting from the room denoiser. The 4k transfer is our default per-scene refinement. The room checkpoint can also be deployed with no per-scene denoiser training at some quality cost (main text, Zero-Shot Transfer).
Scene
SVGF
Ours (zero-shot)
bicycle
2.94
3.76
bonsai
2.63
3.44
counter
2.91
3.66
garden
2.97
3.75
kitchen
3.00
3.76
room
3.04
3.79
Appendix
Table 8: Per-scene per-frame rendering time (ms) for the SVGF baseline and the zero-shot variant, measured under the identical protocol as Table 9 . Both consume the same 1 spp stochastic stream; SVGF replaces the learned post-processing with hand-tuned variance-guided filtering, and the zero-shot variant skips per-scene denoiser training.
Scene
2DGS
2DGS (hw)
Raw
ST-TAA
Ours
Speedup
bicycle
29.32
13.73
2.86
3.03
3.95
3.5 ×
bonsai
17.66
8.14
2.49
2.66
3.52
2.3 ×
counter
16.24
6.33
2.74
2.89
3.75
1.7 ×
garden
16.27
6.57
2.79
2.97
3.85
1.7 ×
kitchen
10.38
4.49
2.84
3.01
3.86
1.2 ×
room
13.94
6.18
2.89
3.04
3.88
1.6 ×
Appendix
Table 9: Per-scene per-frame rendering time (ms) on the navigation tracks. 2DGS is the official CUDA tile renderer with auxiliary channels removed; 2DGS (hw) is our hardware-rasterized reimplementation of the same sorted alpha-blending algorithm; Raw is 1 spp stochastic rasterization; ST-TAA adds the baseline temporal accumulation; Ours is the full denoising pipeline. Speedup is 2DGS (hw) over Ours.
Figure 5: Static-view convergence on garden. PSNR versus the number of accumulated frames on a static camera, averaged over the 24 held-out views. The dashed line marks the deterministic vanilla 2DGS renderer, which renders each frame identically and independently of accumulation.
Variant
PSNR ↑
SSIM ↑
LPIPS ↓
Full model (learned g )
26.63
0.794
0.238
g≡0 (accumulated path only)
25.14
0.751
0.298
g≡1 (denoised path only)
25.95
0.752
0.247
Appendix
Table 10: Variance-gate ablation on the garden navigation track (same protocol as the ablation table in the paper). g is the per-pixel weight of the denoised path in the final composition in the main text; forcing it to either path exclusively degrades all three metrics. The learned gate improves over the better fixed extreme by 0.68 dB PSNR.
PSNR ↑ per scene
Average
Method
bicycle
bonsai
counter
garden
kitchen
room
stump
PSNR ↑
SSIM ↑
LPIPS ↓
2DGS
24.71
32.12
28.82
26.73
32.49
31.53
29.74
29.45
0.875
0.199
Ref. (1024)
24.20
30.65
28.14
26.15
30.24
30.51
27.88
28.25
0.851
0.202
ST-TAA (128)
24.08
30.10
27.83
25.86
29.76
30.14
27.63
27.92
0.822
0.219
Ours (16)
23.58
28.80
26.90
24.69
28.40
29.34
26.54
26.89
0.741
0.330
Ours (98)
24.09
30.20
27.84
25.82
29.80
30.22
27.58
27.94
0.822
0.226
Appendix
Table 11: Static quality on the MipNeRF360 held-out test views. 2DGS is the deterministic tile renderer of 2D Gaussian Splatting (Huang et al.). ST-TAA is the baseline adapted from StochasticSplats (Kheradmand et al.): temporal accumulation over 128 static frames without a learned denoiser. Ref. (1024) is the Monte-Carlo accumulation reference (main text, Experimental Setup). Ours renders through the learned denoiser at 16, 98, or 128 accumulated frames; Ours (zero-shot) deploys the room checkpoint on every scene with no per-scene denoiser training (main text, Zero-Shot Transfer). Per-scene PSNR with dataset averages of all metrics; bold marks the better of the equal-time pair, ST-TAA (128) vs. Ours (98), in each column (both when equal after rounding).
PSNR ↑ per scene
Average
Method
Barn
Caterpillar
Church
Courthouse
Ignatius
Meetingroom
Truck
PSNR ↑
SSIM ↑
LPIPS ↓
2DGS
22.82
20.33
21.52
21.73
19.78
22.68
21.65
21.50
0.700
0.379
Ref. (1024)
22.39
19.84
19.87
21.17
19.11
21.42
21.04
20.69
0.675
0.388
ST-TAA (128)
22.35
19.75
19.75
21.11
19.05
21.30
20.96
20.61
0.635
0.431
Ours (16)
22.07
19.46
19.42
20.83
18.79
21.01
20.72
20.33
0.548
0.496
Ours (98)
22.32
19.74
19.75
21.09
19.03
21.32
20.98
20.60
0.631
0.436
Appendix
Table 12: Static quality on TanksAndTemples. All methods are trained on the full capture of each scene; we evaluate every 8th frame. Rows follow Table 11 ; bold marks the better of the equal-time pair, ST-TAA (128) vs. Ours (98), in each column (both when equal after rounding). Ours (zero-shot) deploys the room checkpoint with no per-scene denoiser training (main text, Zero-Shot Transfer).
PSNR ↑ / LPIPS ↓
SSIM ↑ / CVVDP ↑
Track
1 spp
ST-TAA
SVGF
Ref.
Ours
1 spp
ST-TAA
SVGF
Ref.
Ours
bicycle (161 frames)
16.81
19.82
22.05
29.87
26.39
0.289
0.407
0.709
0.925
0.807
0.639
0.588
0.346
0.088
0.284
4.28
5.29
5.23
8.34
6.84
bonsai (166 frames)
19.28
23.00
28.17
34.54
31.98
0.313
0.486
0.868
0.967
0.914
0.690
0.629
0.241
0.060
0.253
5.57
6.66
7.23
8.96
8.25
counter (126 frames)
18.05
20.97
23.98
33.76
30.35
0.257
0.367
0.766
0.956
0.880
Appendix
Table 13: Track-averaged quality under free camera navigation on MipNeRF360, using the vanilla 2DGS tile renderer as the reference. Each track occupies two rows: the first reports PSNR (left) and SSIM (right), the second LPIPS (left) and CVVDP (right). Raw 1 spp is the single-sample stochastic output; ST-TAA applies generic temporal accumulation without learned trust or spatial filtering; SVGF is the adapted variance-guided filtering baseline (Sec. E ); Ref. (1024) is the per-frame Monte-Carlo ceiling (main text, Experimental Setup), not a practical method. The generic TAA warp fails to accumulate reliably under the heavy 1 spp noise, while our learned trust gating keeps the temporal history usable.
PSNR ↑
SSIM ↑
LPIPS ↓
CVVDP ↑
Track
SS 1 spp
SS 4 spp
SS 1 spp
SS 4 spp
SS 1 spp
SS 4 spp
SS 1 spp
SS 4 spp
bicycle
15.70
20.08
0.275
0.483
0.634
0.523
3.65
6.18
bonsai
18.84
23.68
0.314
0.557
0.689
0.580
5.21
7.36
counter
18.13
22.60
0.273
0.475
0.702
0.597
4.31
6.47
garden
15.90
20.78
0.273
0.528
0.590
0.449
4.54
6.84
kitchen
18.83
24.48
0.313
0.594
0.641
0.488
5.62
7.71
Appendix
Table 14: Per-track breakdown of the official StochasticSplats rows of the main text’s navigation table: the official model on its own finetuned 3DGS scenes, measured against its own 1024 spp accumulation (no ground truth exists on free camera tracks). SS 4 spp renders through the official viewer’s multi-sample path with a small fix so that each MSAA sample draws an independent stochastic sample (as released, all samples share one draw). All metrics are computed on every 10th track frame (the stride-10 dumps underlying the corresponding main-table rows; ColorVideoVDP uses the same stride-10 videos).
PSNR ↑
SSIM ↑
LPIPS ↓
CVVDP ↑
Track
Ours
zero-shot
Ours
zero-shot
Ours
zero-shot
Ours
zero-shot
bicycle
26.39
25.86
0.807
0.817
0.284
0.255
6.84
6.56
bonsai
31.98
30.91
0.914
0.914
0.253
0.205
8.25
7.83
counter
30.35
29.68
0.880
0.891
0.271
0.248
7.50
7.32
garden
26.63
26.82
0.794
0.808
0.238
0.235
7.15
7.12
kitchen
30.95
30.61
0.906
0.914
0.192
0.162
8.07
8.07
Appendix
Table 15: Per-track breakdown of the zero-shot transfer experiment (main text, Zero-Shot Transfer): the room checkpoint deployed verbatim on every scene, with the neural-view payload neutralised (the trust feature V2 is set to zero and the spatial filter falls back to a fixed isotropic kernel, x=y=2 and ρ=0 in the covariance parameterisation of the main text). Ours is the per-scene fine-tuned configuration of the main navigation table. The zero-shot variant trades a small PSNR/CVVDP margin for slightly better SSIM/LPIPS.