1. A process for denoising a noisy signal containing impulse noise, the process comprising: analyzing, by a processor or computer, the noisy signal to determine a first vector that that is associated with a first context and has components respectively corresponding to symbols of an alphabet used in the noisy signal, wherein the first vector is a probability vector and the components indicate respective probabilities of the symbols appearing in the noisy signal within a noisy context associated with the first context; constructing a second vector by subtracting from each of the components of the first vector a probability that the corresponding symbol is impulse noise; and replacing each symbol that may be impulse noise and is found in the noisy signal within the noisy context with a replacement symbol derived from the second vector to thereby produce a recovered signal.