Perceptual error optimization for Monte Carlo rendering

ACM Transactions on Graphics, 2022 (presented at SIGGRAPH 2022)

We devise a perceptually based model to optimize the error of Monte Carlo renderings. Here we show our vertical iterative minimization algorithm: Given 4 input samples per pixel (spp), it selects a subset of them to produce an image with substantially improved visual fidelity over a simple 4-spp average. The optimization is guided by a surrogate image obtained by regularizing the noisy input; we also show using the ground-truth image as a guide. The power spectrum of the image error, computed on 32x32-pixel tiles, indicates that our method distributes pixel error with locally blue-noise characteristics.

Abstract

Synthesizing realistic images involves computing high-dimensional light-transport integrals. In practice, these integrals are numerically estimated via Monte Carlo integration. The error of this estimation manifests itself as conspicuous aliasing or noise. To ameliorate such artifacts and improve image fidelity, we propose a perception-oriented framework to optimize the error of Monte Carlo rendering. We leverage models based on human perception from the halftoning literature. The result is an optimization problem whose solution distributes the error as visually pleasing blue noise in image space. To find solutions, we present a set of algorithms that provide varying tradeoffs between quality and speed, showing substantial improvements over prior state of the art. We perform evaluations using quantitative and error metrics, and provide extensive supplemental material to demonstrate the perceptual improvements achieved by our methods.

Downloads and links

Media

Supplemental video

Fast-forward video

Talk video

BibTeX reference

@article{Chizhov:2022:PerceptualErrorOptimization,
  author = {Vassillen Chizhov and Iliyan Georgiev and Karol Myszkowski and Gurprit Singh},
  title = {Perceptual error optimization for Monte Carlo rendering},
  journal = {ACM Trans. Graph.},
  year = {2022},
  volume = {41},
  number = {3},
  doi = {10.1145/3504002}
}