throbber
United States Patent [19J
`Luby et al.
`
`[54]
`
`[75]
`
`IRREGUlARLY GRAPHED ENCODING
`TECHNIQUE
`
`Inventors: Michael G. Luby, Berkeley, Calif.;
`Mohammad Amin Shokrollahi,
`Rappweiler, Germany; Volker
`Stemann, Frankfurt, Germany; Michael
`D. Mitzenmacher, Milpitas, Calif.;
`Daniel A. Spielman, Cambridge, Mass.
`
`[73]
`
`Assignee: Digital Equipment Corporation,
`Maynard, Mass.
`
`[21]
`
`Appl. No.: 08/965,603
`
`[22]
`
`Filed:
`
`Nov. 6, 1997
`
`Int. Cl? ...................................................... G06F ll/00
`[51]
`[52] U.S. Cl. .............................................................. 714/701
`[58] Field of Search ............................................... 714/701
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,958,348
`5,115,436
`
`9/1990 Berlekamp et a!. ...................... 371/42
`5/1992 McAuley .................................. 371/35
`
`01HER PUBLICATIONS
`
`Zyablov et al., Decoding Complexity of Low-Density
`Codes for Transmission in a Channel with Erasures-val.
`10, No. 1, pp. 10-21, last revision Aug. 20, 1973.
`R. Michael Tanner, A Recursive Approach to Low Com(cid:173)
`plexity Codes-Transactions on Information Theory, vol.
`IT-27, No. 5, Sep. 1981, pp. 533-547.
`Jung-Fu Cheng, On the Construction of Efficient Multilevel
`Coded Modulations-IEEE Inti. Symposium on Informa(cid:173)
`tion Theory, 1997, pp. 1-12.
`MacKay et al., Good Codes based on Very Sparse Matri(cid:173)
`ces-Cavendish Labs, Cambridge, U.K., 7 pages.
`Alan et al., Construction of Asymptotically Good Low-Rate
`Error-Correcting Codes through Pseudo Random Graphs(cid:173)
`IEEE Trans. on Information Theory, vol. 38, No. 2, Mar.
`1992, pp. 509-516.
`Cheng et al., Some High-Rate Near Capacity Codes for the
`Gaussian Channel-34th Allerton Conference on Commu(cid:173)
`nications, Control and Computing, Oct. 4, 1996, pp. 1-10.
`
`111111111111111111111111111111111111111111111111111111111111111111111111111
`US006081909A
`[11] Patent Number:
`[45] Date of Patent:
`
`6,081,909
`Jun.27,2000
`
`Gelfand et al., On the Complexity of Coding-2nd Inti.
`Symposium on Information Theory, Tsahkadsor Armeia,
`USSR, Sep. 2-8,1971, pp. 177-184.
`Bassalygo et al., Problems of Complexity in the Theory of
`Correcting Codes-Plenum Publishing Corp., 1978, pp.
`166-175.
`Vvedenskaya et al., Systematic Codes That Can Be Realized
`by Simple Circuits-Plenum Publishing Corp., 1979,
`246-254.
`A J. McAuley, Reliable Boardband Communication Using
`a Burst Erasure Correcting Code-Computer Communica(cid:173)
`tion Research Group, Morristown, NJ, pp. 297-306.
`
`(List continued on next page.)
`
`Primary Examiner---Phung M. Chung
`Attorney, Agent, or Firm-Jenkens & Gilchrist,P.C.
`ABSTRACT
`[57]
`
`A method of encoding a message including a plurality of
`data items, includes identifying maximum and minimum
`numbers of first edges to be associated with data items. A
`first distribution of different numbers of first edges, ranging
`from the maximum to the minimum number of first edges,
`to be associated with the data items is computed. A first
`associated number of first edges, within the range, is estab(cid:173)
`lished for each data item, the different numbers of first edges
`being associated with the data items according to the com(cid:173)
`puted first distribution. A maximum and minimum number
`of second edges to be associated with redundant data items
`are identified. A second distribution of numbers of second
`edges, ranging from the maximum to the minimum number
`of second edges, to be associated with the redundant data
`items is computed. An associated number of second edges,
`within the range, is established for each redundant data item,
`the different numbers of second edges being associated with
`the redundant data items according to the determined second
`distribution. A threshold number of potentially lost/
`corrupted data items is established. An encoded message is
`formed with the redundant data items associated with the
`data items according to the first distribution and with the
`data items associated with the redundant data items accord(cid:173)
`ing to the second distribution only if the number of data
`items which are recoverable or correctable exceeds the
`threshold.
`
`35 Claims, 25 Drawing Sheets
`
`~}0
`
`•
`•
`•
`•
`
`10'
`
`'"{~
`• ~/
`
`•
`•
`•
`•
`•
`•
`•
`10 •
`•
`•
`•
`•
`•
`•
`•
`
`Hughes, Exh. 1016, p. 1
`
`

`
`6,081,909
`Page 2
`
`01HER PUBLICATIONS
`
`E. W. Biersack, Performance Evaluation of Forward Error
`Correction in ATM Networks-Institut EURECOM, France,
`Aug. 1992,pp. 248-257.
`David J.C. MacKay, Good Error-Correcting Codes based on
`Very Sparse Matrices-Cavendish Labs, U.K. Nov. 2, 1996,
`pp. 1-50.
`Daniel A Spielman, Linear-Time Encodable and Decodable
`Error-Correcting Codes-Dept. of Computer Science, U.C.
`Berkeley, Berkeley, CA, pp, 1-20.
`Sipser et al., Expander Codes-Massachusetts Institute of
`Technology, Cambridge, MA, 12 pages.
`G. David Forney, Jr., The Forward-Backward Algorithm(cid:173)
`Motorola, Inc., Mansfield, MA, Oct. 1, 1986, pp. 432-446.
`R. G. Gallager, Low-Density Parity-Check Codes-1963,
`M.I.T. Press, Cambridge, MA, 106 pages.
`Sipser et al., Expander Codes-Journal Version, IEEE IT
`1996, Massachusetts Institute of Technology, pp. 1-28.
`
`Daniel A Spielman, Linear-Tim Encodable and Decodable
`Error-Correcting Codes-Conference Version, STOC 95,
`Massachusetts Institute of Technology, 10 pages.
`Daniel A Spielman, Linear-Tim Encodable and Decodable
`Error-Correcting Codes-Journal Version, IEEE IT 96,
`Massachusetts Institute of Technology, pp. 1-20.
`
`Daniel A Spielman, Computationally Efficient Error-Cor(cid:173)
`recting Codes and Holographic Proofs-Yale University
`(1992), Massachusetts Institute of Technology Jun. 1995,
`pp. 1-147.
`
`Luigi Rizzo-Effective erassure codes for reliable computer
`communication protocols-University of Italy, Jan. 9, 1997,
`pp. 1-10.
`Luigi Rizzo,-A Reliable Multicast data Distribution Pro(cid:173)
`tocol based on software FEC techniques-University of
`Italy, Feb. 20, 1997, pp. 1-6.
`Luigi Rizzo-On the feasibility of software FEC-Univer(cid:173)
`sity of Italy, Jan. 31, 1997, pp. 1-16.
`
`Hughes, Exh. 1016, p. 2
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 1 of 25
`
`6,081,909
`
`•
`•
`•
`-.-- •
`•
`•
`• • •
`•
`•
`•
`•
`•
`•
`•
`•
`•
`•
`
`Q.l
`C'l
`0
`C/)
`C/)
`Q)
`:::::!:
`
`;:::
`
`C'l
`c
`:.0
`0
`u
`c:
`w
`6
`
`•
`•
`•
`•
`• • • •
`•
`•
`•
`•
`•
`
`......
`.--
`
`•
`•
`
`""0
`Q)
`>
`·a:;
`u
`Q)
`0::
`
`~
`
`t_!)
`~
`
`Q.l
`C'l
`0
`C/)
`C/)
`Q)
`:::::!:
`
`;:::
`AI
`
`;:::
`
`Hughes, Exh. 1016, p. 3
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 2 of 25
`
`6,081,909
`
`l 6
`
`Cl.)
`0"1
`0
`(/)
`(/)
`Cl.)
`~
`
`l
`
`l s::: w
`+ --
`
`Cl
`c::::
`"'0
`0
`u
`c:::: w
`
`Hughes, Exh. 1016, p. 4
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 3 of 25
`
`6,081,909
`
`0
`
`'• • 1 • el
`
`,• • y • •,
`
`·a
`...-
`
`t• • • • • • • •,
`
`y
`0 ...-
`
`CrJ
`
`~ r;:
`
`t• • • • • • • • • • • • • • • •,
`
`y
`0
`...-
`
`Hughes, Exh. 1016, p. 5
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 4 of 25
`
`6,081,909
`
`0
`1
`
`0'
`
`...c:::
`Ee
`Ee
`Ee
`Ee
`Ee
`
`Q)
`
`"'C
`
`..0
`
`0'
`
`"'C
`
`Ee
`Ee
`u
`Et)
`..c
`ffi
`
`0
`
`0'
`
`...c:::
`Ee
`Ee
`ffi
`u
`
`Q)
`
`-
`
`Et)
`..c
`Et)
`0
`
`[o
`
`0 0~
`
`0
`
`~
`.
`t;:
`
`(.!)
`
`. -~
`
`0..
`
`-
`
`Q)
`
`y
`0 .....-
`
`Hughes, Exh. 1016, p. 6
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 5 of 25
`
`6,081,909
`
`·a
`,------"1'-----..
`I~ ~ ~ ~~
`:_ :N :_
`:N
`·a o
`·a o
`
`CIJ _.
`:.J..c
`'-c..
`8_o
`·- ....
`CD (.!)
`
`I~~~~
`
`y
`0
`
`2
`:.=;...c
`'-c..
`8_o
`·- ....
`CD (.!)
`
`0
`0
`I~~~~~~~
`y
`0
`
`2
`~...c
`'-c..
`8_o
`·- ....
`CD (.!)
`
`0
`
`N
`0
`
`~ a
`
`0
`
`N
`0
`
`~
`
`0
`
`N
`a
`
`N
`a
`
`~
`
`0
`
`0
`
`N
`0
`
`N
`0
`
`~
`0
`
`0
`
`~~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~. ~
`y
`a
`
`Hughes, Exh. 1016, p. 7
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 6 of 25
`
`6,081,909
`
`0
`
`~-------1--------~
`
`0'
`
`Et>
`..c
`
`..c
`
`~
`
`Et>
`Et>
`
`0'
`
`Q.)
`
`~
`
`0'
`
`Q.)
`
`Et>
`Et>
`Et>
`..c
`
`I
`I
`I
`I
`I
`I
`
`1-J;
`
`10
`
`C'•
`
`u
`
`"'0
`
`-
`
`C'•
`
`y
`
`0
`
`~ '\1_~
`
`N
`
`...-
`
`.. ·•
`
`Hughes, Exh. 1016, p. 8
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 7 of 25
`
`6,081,909
`
`~-------1--------~
`
`..c
`
`... e
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`..c
`
`e
`[o
`
`y
`
`0
`
`Hughes, Exh. 1016, p. 9
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 8 of 25
`
`6,081,909
`
`0
`
`~------~1---------~
`
`.. -~
`
`[o
`
`-
`
`y
`
`0
`
`. -~
`
`Hughes, Exh. 1016, p. 10
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 9 of 25
`
`6,081,909
`
`8
`
`0
`
`0')
`
`~
`
`.
`c.!)
`~
`
`00
`
`Q.)
`Q.)
`\...
`0'
`Q.)
`""0
`r--.. ~
`,.._
`Q.)
`
`tO
`
`l.()
`
`0')
`0
`
`00
`c:i
`
`r--..
`c:i
`
`tO
`0
`
`l.() ~ I"")
`c:i
`c:i
`c:i
`
`N
`c:i
`
`0
`
`0
`
`0' ""0
`c
`0
`""'..c.
`· - Q.)
`0
`\...
`UCl)
`Cl) >
`0
`0
`
`Hughes, Exh. 1016, p. 11
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 10 of 25
`
`6,081,909
`
`+
`Cl
`
`r-
`
`lO
`
`L(')
`
`....,...
`
`N
`
`L(')
`0
`
`....,...
`0
`
`N
`0
`
`0
`
`0
`
`(I'J
`Cl)
`Cl)
`\...
`0"1
`QJ
`0
`
`o+J -Q)
`.....J -0
`
`\...
`
`Q) .c
`E
`:::::s z
`
`c .,.....
`.
`~
`~
`
`Hughes, Exh. 1016, p. 12
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 11 of 25
`
`6,081,909
`
`rn
`Q)
`Q)
`~
`0"1
`Q)
`0
`........
`...s:::::
`0"1
`
`a:: -0
`
`~
`Q)
`..0
`E
`::J z
`
`N
`
`0
`
`CX)
`
`tO
`
`..q-
`
`0
`
`0
`
`N
`c:i
`
`0
`
`CX)
`0
`c:i
`
`tO
`0
`c:i
`
`..q-
`0
`0
`
`N
`q
`0
`
`0
`
`aaJ6aa @ sapoN JO uO!lJDJ .:l
`
`~
`
`~
`
`.
`t..!)
`~
`
`Hughes, Exh. 1016, p. 13
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 12 of 25
`
`6,081,909
`
`Q)
`Q.)
`
`....
`0'
`Q.)
`""0
`
`.......... -Q.)
`
`Q)
`0'
`....
`0
`Q.)
`>
`0
`
`t\2
`.,...._
`
`•
`c.!)
`~
`
`8
`
`N
`
`- 0
`
` -
`
`m
`
`00
`
`1""-o-
`
`c.o
`
`N
`
`N
`0
`
`lJ")
`
`0
`
`..--
`0
`
`0
`
`I.()
`0
`0
`
`lJ")
`!")
`0
`
`!")
`0
`
`lJ")
`N
`0
`0'""0
`c 0
`· - Q)
`""'..s::::::
`0
`....
`(.) Q)
`Q.) >
`0
`0
`
`Hughes, Exh. 1016, p. 14
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 13 of 25
`
`6,081,909
`
`c:
`.Q
`........ u
`
`Q)
`
`0 ,._ -"0
`:..= ·u
`Q) c..
`
`(I)
`c:
`0 ..c.
`........
`,._
`(l)
`0
`E
`"0
`Q)
`Q)
`c:
`........
`0 ..c.
`........
`..!Q
`0
`
`·,:: _.. -0
`
`........
`c:
`(l) u ,._
`(l) a..
`
`~
`
`,._
`0
`::l
`0'1
`Q) a:::
`
`,._
`.2
`::l
`0'1
`,._
`Q)
`,._
`
`.q-
`...-
`
`1-
`
`I")
`0
`
`~
`
`N
`1- 0
`
`(l)
`"0
`0 u
`Q)
`""0
`
`0
`........
`
`""0
`Q)
`"0
`Q)
`Q)
`c:
`0'1
`c:
`:.0
`0
`u
`c:
`Q)
`
`(l)
`..c.
`
`....... -0
`
`c:
`0
`~ u
`,._
`0
`u..
`
`CtJ
`""""'
`.
`~
`~
`
`~
`
`N
`0
`0
`
`Hughes, Exh. 1016, p. 15
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 14 of 25
`
`6,081,909
`
`0
`
`C"'
`C"'
`C"'
`C"'
`C"'
`C"'
`0 00 0 00
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`~JtltlJJ tltltltlJJJJ~
`
`~----------------~y
`
`0
`
`Hughes, Exh. 1016, p. 16
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 15 of 25
`
`6,081,909
`
`in
`
`..
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`C"l
`c
`:.0
`0
`u
`c
`w
`
`0
`
`0
`
`0
`
`0
`
`Q.)
`C"l
`0
`(/)
`(/)
`Q.)
`:::::::!!:
`
`~-
`1.{")
`
`..
`
`1.{")
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`0
`
`""'0
`Q.)
`>
`·a;
`u
`Q.)
`0:::
`
`..
`
`0
`
`0
`
`0
`
`0
`
`Q.)
`C"l
`0
`(/)
`en
`Q.)
`:::::::!!:
`
`lQ
`,_._
`.
`t.!)
`t;:
`
`Hughes, Exh. 1016, p. 17
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 16 of 25
`
`6,081,909
`
`'• • • .I
`
`·a
`.--
`I
`
`,• • • •,
`
`y
`0 .--
`.--
`
`,• • • • • • • •,
`
`y
`0 .--
`.--
`
`~
`.......
`
`C!)
`~
`
`,• . . . . . . . . . . . . . . •,
`
`y
`0 .-(cid:173)
`.--
`
`Hughes, Exh. 1016, p. 18
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 17 of 25
`
`6,081,909
`
`0
`I
`
`E9
`ffi
`0

`0
`

`Ee
`Ee
`0
`ffi
`Ee
`0
`
`-
`

`.---
`Ee
`0
`ffi
`0
`ffi
`
`-
`
`ffi

`
`.. -~
`
`l."-
`~
`.
`t.!> r;:
`
`l-
`
`0
`
`0
`
`0
`
`y
`
`0
`
`. -~
`
`0
`
`Hughes, Exh. 1016, p. 19
`
`

`
`.___11 a 1 Bipartite
`Graph
`
`.___11a2
`
`.___11 a·, Bipartite
`.___
`, Graph
`11 a 1
`
`11 0"
`
`.___, a2
`
`.___11 a;·
`
`11 o'
`
`.___1102
`
`.___11 a·,
`
`.___11a2
`
`.___11 a·,
`
`.___1102
`
`.___110,
`
`.___110,
`
`.___11a2
`
`.___110,
`
`.___11a2
`
`110-< .___1102
`
`.___11a 1
`
`.___110 1
`
`.___1102
`
`.___1102
`
`.___110, ?I
`
`FIG. 18
`
`110i"_. ~
`110~:~
`
`110'"
`
`\Jl
`
`d .
`.
`~
`~ ......
`~ =
`......
`
`~ = =
`
`N
`~-..J
`
`N c c c
`
`~
`
`'JJ. =-
`~ .....
`'"""'
`00
`0 ......,
`N
`Ul
`
`0\
`
`00
`~ ....
`
`.... =
`\C = \C
`
`Hughes, Exh. 1016, p. 20
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 19 of 25
`
`6,081,909
`
`. •·· ...................••••
`
`2
`:..::;..c:
`,_a.
`8_c
`·- ,_
`C00
`
`~ N
`0
`0
`~ ~
`
`~ - - -
`~ " ................... -~ ~ ~ ~ ~ ~~~~'e
`
`0
`
`~
`
`~
`
`Hughes, Exh. 1016, p. 21
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 20 of 25
`
`6,081,909
`
`~------~1~----------
`
`0
`0
`
`u
`0
`
`••• a.
`
`0
`
`0
`
`Hughes, Exh. 1016, p. 22
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 21 of 25
`
`6,081,909
`
`u
`0
`
`c.
`0
`.....--
`
`1::
`0
`
`-0
`
`.....--
`
`...1::
`0
`
`Ol
`0
`
`0
`0
`
`-o
`0
`.....--
`
`Ol
`0
`
`0
`0
`
`..0
`0
`
`~
`
`C\l
`.
`~
`k:
`
`Hughes, Exh. 1016, p. 23
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 22 of 25
`
`6,081,909
`
`c
`0
`
`Hughes, Exh. 1016, p. 24
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 23 of 25
`
`6,081,909
`
`N
`m
`
`m
`
`IX)
`oc)
`
`L(')
`IX)
`
`N
`IX)
`
`00
`
`IX)
`r--..
`
`<.D
`r--..
`
`...........
`~
`............
`
`Q)
`+J
`
`0 a::::
`
`~
`0
`~
`~
`I..&.J
`
`C¥')
`C\l
`.
`(!)
`[;:
`
`Hughes, Exh. 1016, p. 25
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 24 of 25
`
`6,081,909
`
`(7)
`N
`
`CXJ
`N
`
`f"..
`N
`
`...--
`~ ..._
`
`Q)
`.........
`0 a::
`
`~
`0
`~
`~ w
`
`~
`t\l
`.
`~
`k:
`
`Hughes, Exh. 1016, p. 26
`
`

`
`U.S. Patent
`
`Jun.27,2000
`
`Sheet 25 of 25
`
`6,081,909
`
`.._
`Q)
`>
`·a:;
`u
`(/) c
`0 .._
`1-
`
`1 N
`
`1.{)
`
`-
`
`................
`.._ Q)
`Q)"'O
`-oo
`0 u
`u Q)
`~0
`
`), ,.,..,
`
`1.{)
`
`1.{)
`0
`1.{)
`
`0
`0
`1.{)
`
`'(cid:173)
`Q)
`>
`·a:;
`u
`(/)
`c
`0
`'-
`1-
`
`........_.._
`'- Q)
`Q)"'O
`-oo
`0 u
`u Q)
`~0
`
`Hughes, Exh. 1016, p. 27
`
`

`
`6,081,909
`
`1
`IRREGULARLY GRAPHED ENCODING
`TECHNIQUE
`
`TECHNICAL FIELD
`
`The present invention relates to loss resilient and error
`correcting codes and, more particularly, to a technique for
`creating loss resilient and error correcting codes having
`irregular graphing between the message data and the redun(cid:173)
`dant data.
`
`BACKGROUND ART
`
`In downloading data from storage or communicating data,
`for example over a communications network such as the
`INTERNET, data is transmitted in streams of message
`packets. Typically, the message packets each contain a word
`of, for example, 16, 32 or 64 bits. The packets are combined
`into a message or message segment for transmission.
`During transmission of the message, various transmission
`related factors can result in message packets being lost or the
`data contained therein being altered so as to be in error,
`causing the communication to be corrupted at the receiving
`end. Stored data may also be lost or suffer error due to, for
`instance, static electrical charges in the environment or other
`factors. Numerous techniques are in use or have been
`proposed for replacing lost packets of information and
`correcting erroneous message data after the communication
`has been received. Such conventional techniques include
`Fourier transform-based techniques such as BCH and Reed(cid:173)
`Solomon codes.
`Conventional techniques for protecting information from
`loss or errors involve encoding the information before it is
`transmitted in such a way that, even if it is partially lost or
`corrupted during transmission, the original information can
`be recovered. The encoding process necessarily involves the
`addition of extra, redundant data to the information. This
`redundant information is gathered together with the original
`information to form the message that is transmitted. The
`process of determining the original information, given the
`received corrupted message, i.e. a message with either losses 40
`or errors, is called decoding. Two criteria by which these
`techniques are evaluated are: how much additional data must
`be added to achieve reliable communications given a certain
`expected amount of loss or corruption, and how long it takes
`to perform the processes of encoding and decoding.
`The original information is represented by data items,
`which are also commonly referred to as message symbols.
`The data items could for example be message packets or data
`bits. The redundant data that is also transmitted with the
`information is represented by redundant data items, which 50
`are commonly referred to as check symbols. The redundant
`data items are of the same type as the data items. For
`example, if the data items are packets, then the redundant
`data items are also packets. The collection of data items and
`redundant data items that is transmitted is called a codeword. 55
`In the field of Coding Theory, each corruption of a data item
`is either called a loss, often referred to as an erasure, or an
`error. When trying to ascertain the information, the receiver
`will only have access to a corrupted version of the code(cid:173)
`word.
`The decoding overhead of a loss-resilient technique at a
`particular stretch factor is given by that stretch factor
`divided by the least stretch factor of any code that can
`reliably recover from the maximum number of losses reli(cid:173)
`ably recoverable by the technique at the particular stretch
`factor, less 1. Using Reed-Solomon techniques, the decoding
`overhead is zero. Loss resilient techniques with a decoding
`
`15
`
`2
`overhead of zero are judged by their time overheads, i.e. the
`time required to encode and decode expressed as a multiple
`of the total number of data items and redundant data items.
`To the extent the use of any technique would result in a
`decoding overhead greater than zero, this added inefficiency
`must be compensated for by a reduction in the time overhead
`to provide a total efficiency equivalent to or better than those
`techniques having a zero decoding overhead.
`While superior to other loss-resilient techniques, Fourier
`10 transform-based techniques still require a substantial time
`overhead to perform. Hence, even using a Fourier transform(cid:173)
`based technique, there can be a bottleneck at the receiving
`end due to the time required to replace lost packets. For
`example, if the number of packets being communicated is
`100,000, the time overhead will typically exceed 1,000. The
`more packets requiring replacement the higher the time
`overhead.
`The situation is similar for error correcting techniques.
`However, the decoding overhead of an error correcting
`20 technique is determined by the entropy function of Infor(cid:173)
`mation Theory. For example, if the number of redundant
`data items is to be equal to the number of data items, and
`those data items and redundant data items are bits, then no
`technique can reliably recover all data items if more than
`25 11% of the data items and redundant items are corrupted by
`errors. Proposed prior art error correction techniques are
`unable to both efficiently and reliably recover from a full
`11% error rate, but are generally capable of recovering from
`errors in approximately 8% of the data items and redundant
`30 data items.
`While the deficiencies of prior art loss-resilient and error
`correcting techniques are generally tolerable for transmis(cid:173)
`sions of relatively short lengths, these deficiencies become
`less acceptable during transmissions of large quantities of
`35 data. In applications requiring transmission of messages
`having large quantities of data items, such as video signal
`transmission, the probability that all corrupted data items
`can be recovered is at best low using conventional tech-
`niques.
`Further, where large blocks of data are being transmitted
`at high speed, for example, in video distribution, the time
`required to recover any corrupted data needs to be mini(cid:173)
`mized. The time performance of conventional techniques is
`generally insufficient to make the necessary recoveries in the
`45 required real time periods, unless specialized hardware is
`provided.
`Accordingly, a need exists for data recovery techniques
`which can be utilized for quickly recovering corrupted data
`items where large blocks of data items must be transmitted.
`
`OBJECTIVES OF THE INVENTION
`Accordingly, it is an objective of the present invention to
`provide a technique for creating loss resilient and error
`correcting codes which substantially reduce the time
`required to encode and decode messages.
`It is another object of the present invention to provide a
`technique for creating encoded messages which, when
`decoded, facilitate recovery and/or correcting of message
`data which has been lost or corrupted during transmission or
`60 storage.
`It is yet another objective of the present invention to
`provide a technique for creating encoded messages which,
`when decoded, facilitate recovery and/or correction of a
`large number of lost or corrupted data items with improved
`65 efficiency.
`It is a further object of the present invention to provide a
`technique for creating encoded messages which, when
`
`Hughes, Exh. 1016, p. 28
`
`

`
`6,081,909
`
`3
`decoded, facilitate recovery of corrupted data items with
`high probability.
`Additional objects, advantages, novel features of the
`present invention will become apparent to those skilled in
`the art from this disclosure, including the following detailed
`description, as well as by practice of the invention. While the
`invention is described below with reference to preferred
`embodiment(s), it should be understood that the invention is
`not limited thereto. Those of ordinary skill in the art having
`access to the teachings herein will recognize additional
`implementations, modifications, and embodiments, as well
`as other fields of use, which are within the scope of the
`invention as disclosed and claimed herein and with respect
`to which the invention could be of significant utility.
`
`SUMMARY DISCLOSURE OF THE INVENTION
`In accordance with the present invention, a method is
`provided for encoding a message having a plurality of data
`items, e.g. message packets or data bits, by identifying a
`maximum and minimum number of first edges to be asso(cid:173)
`ciated with the data items. Preferably, the minimum number
`of first edges is 2. The numbers are different positive integer
`values. A first distribution of different numbers of first edges,
`ranging from the maximum to the minimum, to be associ(cid:173)
`ated with the plurality of data items is computed. An
`associated number of first edges, within the range, is estab(cid:173)
`lished for each data item. The associated numbers are
`established so that the different numbers of first edges are
`associated with the data items according to the computed
`first distribution.
`The first distribution of numbers of first edges can be
`computed by 2;+1, where i is a number of first edges within
`the range of different numbers of first edges. For example,
`the different numbers of first edges might include 3, 5, 9, 17
`and 33. Alternatively, the different numbers of first edges
`could be distributed equally. In a still further and most
`preferred alternative, the maximum number of first edges is
`set equal to D+l. A constant N is set equal to 1+1/D. The
`distribution of numbers of first edges is computed by N/i
`(i-1).
`Preferably, prior to creating the encoded message, those
`data items to which each of the redundant data items will
`correspond are randomly selected. The encoded message
`will preferably include multiple levels of redundant data
`items. Preferably, the number of data items will exceed the
`number of redundant data items which are edged directly to
`the data items.
`In accordance with other aspects of the invention, the
`number of lost data items which are recoverable, expressed
`as a fraction, is designated a and is determined by finding a
`p value satisfying the inequality p(1-aA(1-x))>x for all
`xE[0,1]. It will be recognized that in practice the number of
`lost redundant data items will also correspond to a. The
`value of A corresponds to the first distribution and the value 55
`of p corresponds to the second distribution. The computation
`of p is performed using a standard binary search for a using
`linear programming to determine if there is a p correspond(cid:173)
`ing to a for a fixed A. The computation of p can be limited
`to a selected range of different numbers of second edges or
`to a selected number of different numbers of second edges,
`if it desired to reduce the processing overhead. If desired, p
`could initially be roughly computed using a first number of
`x values, and then refined by recomputation using a greater
`number of more closely spaced x values.
`The maximum number of first edges can be changed
`causing each data item to be associated with one of the
`
`10
`
`4
`different numbers of first edges which are within a new
`range bounded by the changed maximum. These modified
`numbers of first edge are associated with the data items
`according to a third distribution, which is different than the
`first distribution. Each redundant data item is associated
`with a one of the different numbers of second edges which
`are based on the change in the maximum number of first
`edges. These modified numbers of second edges are asso(cid:173)
`ciated with the redundant data items according to a fourth
`distribution, which is different than the second distribution.
`A maximum and minimum number of second edges to be
`associated with redundant data items is also identified.
`Beneficially, the minimum number of second edges is 1.
`These maximum and minimum numbers are also different
`positive integer values. A second distribution of different
`15 numbers of second edges, ranging from the maximum to the
`minimum, to be associated with the redundant data items is
`computed. A number of second edges, within the range, is
`established for each redundant data item. The different
`numbers of second edges are associated with the redundant
`20 data items according to the second distribution. This second
`distribution may, for example be a Poisson distribution. The
`second distribution is determined such that a maximum
`number of data items are recoverable.
`A determination is made of the number of the data items
`25 which are recoverable if lost or correctable if corrupted, in
`an encoded message formed of the data items and redundant
`data items, with each of the redundant data items corre(cid:173)
`sponding to a number of the data items equal to the asso(cid:173)
`ciated number of second edges. More particularly, the redun-
`30 dant data items are formed such that each of the redundant
`data items represents those of the data items to which it is
`connected by first and second edges. For example, each
`redundant data item may be formed to equal an exclusive-or
`of the those data items to which the redundant data item is
`35 connected by edges.
`A threshold number of potential lost or corrupted data
`items is established. This will typically be the likely maxi(cid:173)
`mum number of data items requiring replacement or cor(cid:173)
`rection in the particular implementation. An encoded mes-
`40 sage is formed, with the redundant data items associated
`with the data items according to the first distribution and the
`data items associated with the redundant data items accord(cid:173)
`ing to the second distribution, only if the number of data
`items which are determined to be recoverable or correctable
`45 exceeds the threshold.
`A determination is made as to whether or not the number
`of data items which are recoverable or correctable from an
`encoded message formed with each of the redundant data
`items corresponding to a number of the data items equal to
`50 one of the modified numbers of second edges, exceeds the
`threshold. If so, an encoded message with the redundant data
`items associated with the data items according to the third
`distribution and data items associated with the redundant
`data items according to the fourth distribution is formed.
`In accordance with other aspects of the invention, the
`associated number of first edges for each data item is
`established by random assignment of each of the different
`numbers of first edges so as to provide the appropriate
`distribution of the different numbers of first edges. The
`60 associated number of second edges for each redundant data
`item is also established by random assignment of each of the
`different numbers of second edges so as to provide the
`appropriate, e.g. Poisson, distribution of the different num(cid:173)
`bers of second edges. Preferably, each second edge is also
`65 randomly connected to a one or more of the first edges so as
`to provide the applicable distributions of first and second
`edges.
`
`Hughes, Exh. 1016, p. 29
`
`

`
`5
`BRIEF DESCRIPTION OF DRAWINGS
`
`6,081,909
`
`6
`BEST MODE FOR CARRYING OUT THE
`INVENTION
`FIG. 1 provides a simplified depiction of the process of
`encoding and decoding messages for loss resilience. As
`shown, a message 1 having n data items is encoded by an
`encoding algorithm prior to transmission. The encoding
`algorithm creates redundant data items 1' which are com(cid:173)
`bined with the original data items 1 to form an encoded
`10 :~::~g; t~a~:~~e ar~~:~~ht~:·e!~~d7~;t~~~~{~u~. :r:~~:~
`the original information contains six data items 1, to which
`six redundant data items 1' are attached to form a codeword.
`Accordingly, the stretch value c is 2 in the example shown.
`The corrupted version of the codeword which is received
`after transmission contains only three of the original data
`items which are designated 11 and four of the redundant data
`items designated 1'1 . The properly received redundant data
`items 1'1 are utilized to recreate the full original message
`having data items 1, using the decoding algorithm.
`FIG. 2 depicts the parameters of the technique. As shown,
`the message has a length of n data items. With the redundant
`data items added, the encoded message has a length en. The
`decoding overhead can be represented by a value E. As
`indicated by the lower bar in FIG. 2, the number of data
`items and redundant data items required to decode the
`received encoded message can be described by the equation
`(1+E)n.
`FIG. 3 depicts a cascading series loss resilient encoding
`structure in accordance with the present invention. As
`depicted, a message 10 includes data items associated with
`nodes 1-n. Redundant data items are associated with nodes
`formed in cascading levels or layers of nodes 10', 10" and
`10"'. Assuming that the message is stretched to a length en,
`35 then the factor ~=1-(1/c) and the number nodes at 10' is ~n
`and at 10" is ~ 2n. At the last layer, the number of nodes is
`en less the number of nodes at all other layers. Each pair of
`adjacent levels of nodes forms a bipartite graph. Each of the
`data items and redundant data items associated with each
`40 layer of nodes 10, 10', 10" and 10"' includes an address with
`which the information contained therein is further associ(cid:173)
`ated. Each of the redundant data items associated with the
`respective cascading layers of nodes 10', 10" and 10"'
`includes an amount of information identical to that con-
`tained in the corresponding data items associated with a
`node or nodes in layer 10. However, the information in each
`of the redundant data items associated with the node layers
`10', 10" and 10"' is, as will be described in detail below,
`different from that in the data items associated with the
`corresponding node(s) in the node layer 10.
`The number of redundant data items in the node layers
`10', 10" and 10"' will depend on the desired length of the
`codeword, which in turn depends upon the expected number
`of losses in the data items and redundant data items during
`transmission. Preferably, the cascading of the redundant
`nodes is restrained to a limited number of levels, most
`preferably 3, in order to minimize both the time overhead
`and decoding overhead while maintaining high reliability.
`A typical decoding overhead, in accordance with the
`60 present invention, for a rate Y2 code, is approximately 0.03.
`This small increase over the decoding overhead of conven(cid:173)
`tional techniques is offset by a time overhead which is
`substantially less than that required to encode and to replace
`lost data items using conventional techniques.
`More particularly, the time overhead required to encode
`and decode, expressed as a multiple of the total number of
`data items and redundant data items, is approximately ln(3/
`
`20
`
`25
`
`FIG. 1 is a simplified depiction of the steps performed in
`encoding and decoding a message.
`FIG. 2 depicts parameters of encoding and decoding.
`FIG. 3 depicts a cascading encoding structure in accor(cid:173)
`dance with the present invention.
`FIG. 4 depicts a graph of a partial set of irregularly
`graphed edges between node layers of the FIG. 3 encoding
`in accordance with the present invention.
`FIG. 5 depicts a received corrupted version of a codeword
`in accordance with the present invention.
`FIG. 6 is a partial depiction of the edges between nodes
`of the FIG. 3 encoding at the receiving end of a transmission. 15
`FIG. 7 depicts the decoding process in accordance with
`the present invention.
`FIG. 8 is similar to FIG. 4, but reflects regular

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket