  We propose a simple and fast algorithm called PatchLift for computing
distances between patches (contiguous block of samples) extracted from a given
one-dimensional signal. PatchLift is based on the observation that the patch
distances can be efficiently computed from a matrix that is derived from the
one-dimensional signal using lifting; importantly, the number of operations
required to compute the patch distances using this approach does not scale with
the patch length. We next demonstrate how PatchLift can be used for patch-based
denoising of images corrupted with Gaussian noise. In particular, we propose a
separable formulation of the classical Non-Local Means (NLM) algorithm that can
be implemented using PatchLift. We demonstrate that the PatchLift-based
implementation of separable NLM is few orders faster than standard NLM, and is
competitive with existing fast implementations of NLM. Moreover, its denoising
performance is shown to be consistently superior to that of NLM and some of its
variants, both in terms of PSNR/SSIM and visual quality.
