The (run, level) pairs in an original series are inspected to determine whether
or not modification of the (run, level) pairs would produce a desirable decrease
in a number of bits required for variable-length encoding of the series of (run,
level) pairs, despite introduction of noise. If so, the (run, level) pairs are
modified prior to variable-length encoding. For example, a (run, level) pair of
(M, N) is modified by substitution of a first (run, level) pair of (M-1, 1) immediately
followed by a second (run, level) pair of (0, N). A lookup table or testing of
predetermined ranges of run length and level magnitude provides a fast determination
of whether or not to modify a (run, level) pair. The decoder can be programmed
to reduce the noise introduced by this process by recognizing and rejecting (run,
level) pairs that are likely to have been inserted during the encoding process.