Error-Correcting Codes: Application of Convolutional Codes to Video Streaming

Error-Correcting Codes: Application of Convolutional Codes to Video Streaming

Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Error-Correcting codes: Application of convolutional codes to Video Streaming Diego Napp Department of Mathematics, Universidad of Aveiro, Portugal July 22, 2016 Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Overview Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes • Bits get corrupted, 0 ! 1 or 1 ! 0, but rarely. What happens when we store/send information and errors occur? can we detect them? correct? Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Error Correcting Codes Basic Problem: • want to store bits on magnetic storage device • or send a message (sequence of zeros/ones) What happens when we store/send information and errors occur? can we detect them? correct? Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Error Correcting Codes Basic Problem: • want to store bits on magnetic storage device • or send a message (sequence of zeros/ones) • Bits get corrupted, 0 ! 1 or 1 ! 0, but rarely. can we detect them? correct? Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Error Correcting Codes Basic Problem: • want to store bits on magnetic storage device • or send a message (sequence of zeros/ones) • Bits get corrupted, 0 ! 1 or 1 ! 0, but rarely. What happens when we store/send information and errors occur? Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Error Correcting Codes Basic Problem: • want to store bits on magnetic storage device • or send a message (sequence of zeros/ones) • Bits get corrupted, 0 ! 1 or 1 ! 0, but rarely. What happens when we store/send information and errors occur? can we detect them? correct? Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes The International Standard Book Number (ISBN) It can be proved that all possible valid ISBN-10's have at least two digits different from each other. ISBN-10: x1 − x2x3x4 − x5x6x7x8x9 − x10 satisfy 10 X ixi = 0 mod 11 i=1 For example, for an ISBN-10 of 0-306-40615-2: s = (0 × 10) + (3 × 9) + (0 × 8) + (6 × 7)+ + (4 × 6) + (0 × 5) + (6 × 4) + (1 × 3) + (5 × 2) + (2 × 1) = 0 + 27 + 0 + 42 + 24 + 0 + 24 + 3 + 10 + 2 = 132 = 12 × 11 • Good: Very easy Encoding / decoding • Bad: Rate 1=3 Can we do better??? Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Sending/storing information: Naive solution Repeat every bit three times Message Codeword Encoding 1 1 0 1 ··· =) 111 111 000 111 ··· Received message Decoding 111 111 001 111 ··· =) 1 1 0 1 ··· Can we do better??? Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Sending/storing information: Naive solution Repeat every bit three times Message Codeword Encoding 1 1 0 1 ··· =) 111 111 000 111 ··· Received message Decoding 111 111 001 111 ··· =) 1 1 0 1 ··· • Good: Very easy Encoding / decoding • Bad: Rate 1=3 Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Sending/storing information: Naive solution Repeat every bit three times Message Codeword Encoding 1 1 0 1 ··· =) 111 111 000 111 ··· Received message Decoding 111 111 001 111 ··· =) 1 1 0 1 ··· • Good: Very easy Encoding / decoding • Bad: Rate 1=3 Can we do better??? • Better Rate 2=3 • I can detect 1 error...but I cannot correct. Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Another Solution 2 • Break the message into 2 bits blocks m = u1 u2 2 F • Encode each block as follows: u −! uG where 1 0 1 G = ; 0 1 1 1 0 1 (u ; u ) = u u u + u 1 2 0 1 1 1 2 1 2 Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Another Solution 2 • Break the message into 2 bits blocks m = u1 u2 2 F • Encode each block as follows: u −! uG where 1 0 1 G = ; 0 1 1 1 0 1 (u ; u ) = u u u + u 1 2 0 1 1 1 2 1 2 • Better Rate 2=3 • I can detect 1 error...but I cannot correct. For example 0 1 0 0 1 1 0 1 (1; 1; 0) @ 0 1 0 1 0 1 A = (1; 1; 0; 0; 1; 1); 0 0 1 0 1 1 0 1 0 0 1 1 0 1 (1; 0; 1) @ 0 1 0 1 0 1 A = (1; 0; 1; 1; 0; 1); 0 0 1 0 1 1 etc... Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes 3 • Break the message into 3 bits blocks m = 1 1 0 2 F • Encode each block as follows: 0 1 0 0 1 1 0 1 u −! uG G = @ 0 1 0 1 0 1 A ; 0 0 1 0 1 1 Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes 3 • Break the message into 3 bits blocks m = 1 1 0 2 F • Encode each block as follows: 0 1 0 0 1 1 0 1 u −! uG G = @ 0 1 0 1 0 1 A ; 0 0 1 0 1 1 For example 0 1 0 0 1 1 0 1 (1; 1; 0) @ 0 1 0 1 0 1 A = (1; 1; 0; 0; 1; 1); 0 0 1 0 1 1 0 1 0 0 1 1 0 1 (1; 0; 1) @ 0 1 0 1 0 1 A = (1; 0; 1; 1; 0; 1); 0 0 1 0 1 1 etc... • Any two codewords differ at least in 3 coordinates. I can detect and correct 1 error!!! Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes • Rate 3=6 = 1=2, better than before (1=3). 3 6 • Only 2 codewords in F C = f(1; 0; 0; 1; 1; 0); (0; 1; 0; 1; 0; 1); (0; 0; 1; 0; 1; 1); (1; 1; 0; 0; 1; 1); (1; 0; 1; 1; 0; 1); (0; 1; 1; 1; 1; 0); (1; 1; 1; 0; 0; 0); (0; 0; 0; 0; 0; 0)g 6 6 • In F we have 2 possible vectors Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes • Rate 3=6 = 1=2, better than before (1=3). 3 6 • Only 2 codewords in F C = f(1; 0; 0; 1; 1; 0); (0; 1; 0; 1; 0; 1); (0; 0; 1; 0; 1; 1); (1; 1; 0; 0; 1; 1); (1; 0; 1; 1; 0; 1); (0; 1; 1; 1; 1; 0); (1; 1; 1; 0; 0; 0); (0; 0; 0; 0; 0; 0)g 6 6 • In F we have 2 possible vectors • Any two codewords differ at least in 3 coordinates. I can detect and correct 1 error!!! Theorem (Basic error correcting theorem) 1. A code C can detected up to s errors if dist(C) ≥ s + 1. 2. A code C can correct up to t errors if dist(C) ≥ 2t + 1. Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Hamming distance The intuitive concept of \closeness" of two words is well formalized through Hamming distance h(x; y) of words x; y. For two words x; y h(x; y) = the number of symbols x and y differ: n A code C is a subset of F , F a finite field. An important parameter of C is its minimal distance. dist(C) = minfh(x; y) j x; y 2 C; x 6= yg; Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Hamming distance The intuitive concept of \closeness" of two words is well formalized through Hamming distance h(x; y) of words x; y. For two words x; y h(x; y) = the number of symbols x and y differ: n A code C is a subset of F , F a finite field. An important parameter of C is its minimal distance. dist(C) = minfh(x; y) j x; y 2 C; x 6= yg; Theorem (Basic error correcting theorem) 1. A code C can detected up to s errors if dist(C) ≥ s + 1. 2. A code C can correct up to t errors if dist(C) ≥ 2t + 1. Main coding theory problem 1. Construct codes that can correct a maximal number of errors while using a minimal amount of redundancy (rate) 2. Construct codes (as above) with efficient encoding and decoding procedures Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Definition n An (n; k) block code C is a k-dimensional subspace of F and the rows of G form a basis of C n k o C = ImFG = uG : u 2 F (1) Introduction to Error-correcting codes Two challenges that recently emerged Block codes vs convolutional codes Definition n An (n; k) block code C is a k-dimensional subspace of F and the rows of G form a basis of C n k o C = ImFG = uG : u 2 F (1) Main coding theory problem 1. Construct codes that can correct a maximal number of errors while using a minimal amount of redundancy (rate) 2.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    96 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us