Total variation denoising