Run-length encoding (RLE) replaces consecutive repeated characters in data with a single character and count. For example, "aaabbc" would compress to "3a2bc". RLE works best on data with many repetitive characters like spaces. It has limitations for natural language text which contains few repetitions longer than doubles. Variants include digram encoding which compresses common letter pairs, and differencing which encodes differences between successive values like temperatures instead of absolute values.
2. • If a data item d occurs n consecutive times in the
input stream, replace the n occurrences with the
single pair nd.
• The n consecutive occurrences of a data item are
called a run length of n, and this approach to
data compression is called run-length encoding
or RLE.
Run Length Encoding
3.
4. We have to adopt the convention that only three or
more repetitions of the same character will be
replaced with a repetition factor.
The main problems with this method are the
following:
• In plain English text there are not many repetitions.
• There are many “doubles” but a “triple” is rare.
• The most repetitive character is the space.
• Dashes or asterisks may sometimes also repeat.
• In mathematical texts, digits may repeat.
5. • Example Paragraph
The abbott from Abruzzi accedes to the demands of all
abbesses from Narragansett and Abbevilles from Abyssinia.
He will accommodate them, abbreviate his sabbatical, and
be an accomplished accessory.
• The character “@” may be part of the text in the input
stream, in which case a different escape character must
be chosen.
• Sometimes the input stream may contain every possible
character in the alphabet.
• Example
An example is an object file, the result of compiling a
program. Such a file contains machine instructions and can
be considered a string of bytes that may have any values.
6. • Since the repetition count is written on the output
stream as a byte, it is limited to counts of up to 255.
• This limitation can be softened somewhat when we
realize that the existence of a repetition count means
that there is a repetition (at least three identical
consecutive characters).
• We may adopt the convention that a repeat count of 0
means three repeat characters, which implies that a
repeat count of 255 means a run of 258 identical
characters.
7. • The MNP class 5 method was used for data
compression in old modems.
• It has been developed by Microcom, Inc., a
maker of modems (MNP stands for Microcom
Network Protocol), and it uses a combination
of run-length and adaptive frequency
encoding.
8. Performance
We assume that the string contains M repetitions of
average length L each. Each of the M repetitions is
replaced by 3 characters (escape, count, and data)
Size of the compressed string is N − M × L +M ×3
= N −M(L − 3)
Compression factor = N / N −M(L − 3)
9. Digram Encoding
• A variant of run length encoding for text is digram
encoding.
• This method is suitable for cases where the data
to be compressed consists only of certain
characters, e.g., just letters, digits, and
punctuation.
• Good results can be obtained if the data can be
analyzed beforehand.
• “E”, “T”, “TH”, and “A”, occur often.
10. Pattern Substitution
For compressing computer programs, where certain
words, such as for, repeat, and print, occur often.
Each such word is replaced with a control character
or, if there are many such words, with an escape
character followed by a code character.
Assuming that code “a” is assigned to the word
print, the text “m:print,b,a;” will be compressed to
“m:@a,b,a;”.
11. Relative Encoding [Differencing]
• Successive temperatures normally do not differ
by much, so the sensor needs to send only the
first temperature, followed by differences.
The sequence of temperatures 70, 71, 72.5, 73.1, . .
can be compressed to 70, 1, 1.5, 0.6, . . ..
The differences are small and can be expressed in
fewer bits.
12. The sequence 110, 115, 121, 119, 200, 202, . . .
can be compressed to 110, 5, 6,−2, 200, 2, . . . .
Now need to distinguish between a difference and
an actual value.
The compressor creating an extra bit (a flag) for each
number sent, accumulating those bits, and sending
them to the de compressor from time to time, as part
of the transmission.
Assuming that each difference is sent as a byte, the
compressor should follow (or precede) a group of 8 bytes
with a byte consisting of their 8 flags.
13. Another practical way to send differences mixed with actual
values is to send pairs of bytes. Each pair is either an actual
16-bit measurement (positive or negative) or two 8-bit
signed differences.
Thus actual measurements can be between 0 and ±32K and
differences can be between 0 and ±255.
For each pair, the compressor creates a flag: 0 if the pair is
an actual value, 1 if it is a pair of differences.
After 16 pairs are sent, the compressor sends the 16 flags.
14. • The sequence of measurements 110, 115, 121,
119, 200, 202, . . . is sent as (110), (5, 6), (−2,−1),
(200), (2, . . .), where each pair of parentheses
indicates a pair of bytes.
• The −1 has value 11111111 (binary) , which is
ignored by the de-compressor (it indicates that
there is only one difference in this pair).
15. Reference:-
Data Compression: The Complete Reference, David
Salomon, Springer Science & Business Media, 2004
For any queries contact:
Web: www.iprg.co.in
E-mail: manishti2004@gmail.com
Facebook: @ImageProcessingResearchGroup