Sei sulla pagina 1di 3

ISSN (ONLINE): 2454-9762

ISSN (PRINT): 2454-9762


Available online at www.ijarmate.com
International Journal of Advanced Research in Management, Architecture, Technology and
Engineering (IJARMATE)
Vol. 1, Issue 3, October 2015

Lookup Table Based Integer Correcting Codes for


Run Length Coded Data
E. Jebamalar Leavline1, P.Parimala2
Department of Electronics and Communication Engineering, Bharathidasan Institute of Technology,
Anna University, Tiruchirappalli 620 024, India 1&2

AbstractIn this paper a look up table based error detecting


and correcting integer codes for run length coded data is
presented. This approach is capable of correcting burst error of
two consecutive bit positions within a byte. The main advantages
of such codes are its simple encoding and decoding procedures,
and less memory requirement. The proposed approach is
implemented in Xilinx environment and the simulation results
are presented.
Index TermsData encoding and decoding, Error detection
and correction, integer codes, run length compression.

I. INTRODUCTION
Error detection and correction is an important process in
the modern communication systems to ensure reliable data
communication. The idea behind achieving error detection
and correction is to add some redundancy (i.e., some extra
data) to a message, which the receivers can use to check the
reliability of the received message, and to recover data that is
corrupted. Error detection is most generally done using a
suitable checksum algorithm. It adds a fixed-length tag to a
message, which enables the receivers to verify the received
message by recomputing the tag and comparing it with the one
provided.
A class of codes called binary oriented codes has been
studied intensively in the literature. One of the main reasons
for this is the fact that integer codes have weak error control
capabilities [1], that their ability to correct single errors of
given types could be interesting for some specific
applications, but not for error control coding [2].
The work done by Aleksandar Radonjic and Vladimir
Vujicic [1] reported that the concept of integer codes can be
improved, i.e., that it is possible to construct codes which can
correct any burst of length l within a b-bit byte (1< l < b).
Further, these codes have very simple encoding/decoding
procedures, and the look-up table (LUT)-based error control
procedure requires relatively small memory resources.
According to Aleksandar Radonjic and Vladimir Vujicic,
these codes could be used in various practical situations,
especially in cases where network nodes represent computers
or other processor-based devices [1].
In this work these integer codes are applied on run length
coded data for error detection and correction. The remainder

of the paper is structured as follows. Section II describes the


encoding and decoding process of integer correcting codes.
Section III presents the proposed error detection and
correction of run length coded data. The experimental results
are detailed in Section IV and the paper is concluded in
Section V.
II. INTEGER CORRECTING CODES
Let b be the number of bits for the one byte, l be the
number of burst error can be correct, and C1, C2 are the
constants. The check byte have to be calculated using
Equation (1),
CB = [C1.B1+C2.B2+ +Ck.Bk] (mod 2b-1)

(1)

The check byte with the information byte is transmitted to


the receiver. For calculating check byte various types of
adders and multipliers are used.
The concept of integer correcting codes is explained with
an example. Let b = 8, l= 2, C1= 7, C2= 9 and let us assume
that we want to transmit 16 bits of data, D = 10101100
11000110. After calculating the value of check-byte CB
CB = [C1.B1+C2.B2] (mod 255) = 181 = 101101012
The codeword CW = 10101100 11000110 10110101 will
have 24 bits. Considering this, let us analyze the following
scenarios.
A. Correctable burst error within a data byte:
Let us suppose that during data transmission an error on
the 13th and 14th bit has occurred(C W = 10101100
11001010 10110101). In that case, the decoder will calculate
= [C1.
S= [

1+

C2.

2]

(mod 255) =217

] (mod 255) = 36,

In order to check whether the value S = 36 belongs to the


set. After successfully completing this task, the decoder will
obtain the information about the error location and the error
weight, which will enable it to perform the error correction
procedure, i.e.,
B2= [ 2+

] (mod 255) = [202+251] (mod 255) = 110001102

B. Correctable Burst Error within a Check byte


Let us assume that during data transmission an error on the

All Rights Reserved 2015 IJARMATE

32

ISSN (ONLINE): 2454-9762


ISSN (PRINT): 2454-9762
Available online at www.ijarmate.com
International Journal of Advanced Research in Management, Architecture, Technology and
Engineering (IJARMATE)
Vol. 1, Issue 3, October 2015

21th and 22th bit has occurred C W = 10101100 11000110


10111001. As in the previous case, after calculating
= [C1.
S= [

1+

C2.

2]

(mod 255) =185

] (mod 255) = 251,

the decoder will first check if the value S =251 belongs to


the set. Considering that the search result will show that the
error has occurred within the third byte (check-byte), the
following procedure will take place:
CB= [

] (mod 255) = [185+251] (mod 255) =


101101012.

III. PROPOSED ERROR DETECTION AND CORRECTION OF RUN


LENGTH CODED DATA
Fig. 1 shows the block diagram of the proposed approach
for error detection and correction of run length coded data.

Fig. 2 Simulation output of encoding process

B. Decoding
Fig. 3 shows the decoding simulation using modelsim for
the data given below.
Received Cb = 134 Syndrome = 0 (without error)
By introducing error in 13th and 14th bit,
B1= 11010111, B2= 10001111, C1=7, C2=9
Received Cb =233 Syndrome = 99 (with error)
The output is corrected by using LUT.

Fig. 1. block diagram of the proposed approach for error detection and
correction of run length coded data.

The input binary data is compressed with run length


coding. As a result, we get a data stream. Then, the encoding
process of this integer correcting codes is applied on the data
stream and this encoded data is transmitted. At the receiver
side this data is decoded using integer codes. Finally it is run
length decoded to get the received binary data.
IV. EXPERIMENTAL RESULTS
The proposed approach explained in Section III is
implemented in Xilinx environment with modelsim simulator
using Verilog HDL and the simulation results are presented in
the following sections.
A. Encoding
Fig. 2 shows the encoding simulation using modelsim for
the data given below.
B1= 11010111, B2= 10000011, C1=7, C2=9
The received check byte value is 10000110=(134)10

Fig. 3 Decoding output wave form

Further, for calculating check byte, any type of adder and


multiplier can be used. In this work various combinations of
adder and multiplier are employed to test the encoding and
decoding process of error correction code in terms of power
consumption, area, and delay as summarized in Table I.
TABLE I: PERFORMANCE COMPARISON OF ENCODING AND DECODING FOR
DIFFERENT ADDER MULTIPLIER COMBINATIONS
Adder &
Multiplier type
Carry Select adder
& Array
Multiplier
Carry Select adder
& Wallace tree
multiplier
Ripple carry adder
& array multiplier
Ripple carry adder
& Wallace tree
multiplier

All Rights Reserved 2015 IJARMATE

Power
(mW)

Area
(No. of gates)

Delay
(nS)

9358

31.235

29

9570

31.235

29

9186

31.260

29

9222

31.260

30

33

ISSN (ONLINE): 2454-9762


ISSN (PRINT): 2454-9762
Available online at www.ijarmate.com
International Journal of Advanced Research in Management, Architecture, Technology and
Engineering (IJARMATE)
Vol. 1, Issue 3, October 2015

The analysis result shows that the carry select adder and
Wallace tree multiplier combination consumes less power and
the propagation delay is also reduced which improves the
speed of operation.
C. Run Length Compression with error correction
In this module the following data are used and the
simulation results are shown in Fig. 4.
B1= 11010111 B2= 10000011 C1=7 C2=9
The received check byte value is 10000110=(134)10
Encoding output is 110101111000001110000110.
After run length compression the output is
0101010101 1243541112.
The output is decompressed and decoded output is
110101111000001110000110.
If error will occur in first and second bit position it will be
corrected by using LUT.

V. CONCLUSION
A look up table based error detecting and correcting integer
codes for run length coded data is presented in this paper. This
approach is tested on run length encoded data. The encoding
and decoding processes are simple yet efficient in terms of
memory requirement.
REFERENCES
[1]

[2]

[3]

[4]

Aleksandar Radonjic and Vladimir Vujicic, Integer Codes


Correcting Burst Errors within a Byte IEEE Trans. on computers
vol. 62, no.2 February 2013.
V.I. Levenshtein and A.J.H. Vinck, Perfect (d, k)-Codes Capable of
Correcting Single Peak Shifts, IEEE Trans. Information Theory, vol.
39, no. 2, pp. 656-662, Mar. 1993.
U. Tamm, Splittings of Cyclic Groups and Perfect Shift Codes,
IEEE Trans. Information Theory, vol. 44, no. 5, pp. 2003-2009, Sept.
1998.
G. Umanesan and E. Fujiwara, Parallel Decoding Cyclic Burst Error
Correcting Codes, IEEE Trans. Computers, vol. 54, no. 1, pp. 87-92,
Jan.2004

Fig. 4 Simulation of run length compression with error correction

All Rights Reserved 2015 IJARMATE

34

Potrebbero piacerti anche