## Search This Blog

Run-length encoding (RLE) is a very simple form of lossless data compression in which runs of data (that is, sequences in which the same data value occurs in many consecutive data elements) are stored as a single data value and count, rather than as the original run. This is most useful on data that contains many such runs.

For more detail & examples , check the below link:

Encoding in MATLAB:

A counting sequence(RLE) is formed by "counting" the entries in a given sequence.

For example, the sequence x = 5, 5, 2, 1, 1, 1, 1, 3

can be read as Two 5's, one 2, four 1's, one 3

which translates to y = 2, 5, 1, 2, 4, 1, 1, 3

So y is the counting sequence for x.

Following is the MATLAB CODE which can be implemented for the encoding purpose:

clc clear all close all x=input('Enter the array:'); y=[]; c=1; for i=1:length(x)-1 if(x(i)==x(i+1)) c=c+1; else y=[y,c,x(i),]; c=1; end end y=[y,c,x(length(x))]; disp(y);

Explanation:

Sample Output:

Decoding in MATLAB:

For example, the sequence x = 2, 5, 1, 2, 4, 1, 1, 3

can be read as Two 5's, one 2, four 1's, one 3

which translates to y = 5, 5, 2, 1, 1, 1, 1, 3

MATLAB CODE for Decoding:

clc
clear all
close all
x=input('Enter the array:');
y=[];
for i=1:2:length(x)
y=[y x(i)];
end
z=[];
for i=2:2:length(x)
z=[z x(i)];
end
v=[];
for i=1:length(y)
m=y(i);
q=z(i);
for j=1:m
v=[v q];
end
end

Explanation:

Sample Output:

MATLAB  