Patents by Inventor Michael G. Luby
Michael G. Luby has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20090031199Abstract: A method of encoding data operates on an ordered set of input symbols and includes generating redundant symbols from the input symbols, and includes generating output symbols from a combined set of symbols including the input symbols and the redundant symbols, wherein the number of possible output symbols is much larger than the number of the combined set of symbols, wherein at least one output symbol is generated from more than one symbol in the combined set of symbols and from less than all of the symbols in the combined set of symbols. The redundant symbols are generated from an ordered set of input symbols in a deterministic process such that a first set of static symbols calculated using a first input symbol has a low common membership with a second set of static symbols calculated using a second input symbol distinct from the first input symbol.Type: ApplicationFiled: August 25, 2008Publication date: January 29, 2009Applicant: Digital Fountain, Inc.Inventors: Michael G. Luby, M. Amin Shokrollahi, Mark Watson
-
Publication number: 20080256418Abstract: A communications system can provide methods of dynamically interleaving streams, including methods for dynamically introducing greater amounts of interleaving as a stream is transmitted independently of any source block structure to spread out losses or errors in the channel over a much larger period of time within the original stream than if interleaving were not introduced, provide superior protection against packet loss or packet corruption when used with FEC coding, provide superior protection against network jitter, and allow content zapping time and the content transition time to be reduced to a minimum and minimal content transition times. Streams may be partitioned into sub-streams, delivering the sub-streams to receivers along different paths through a network and receiving concurrently different sub-streams at a receiver sent from potentially different servers.Type: ApplicationFiled: April 15, 2008Publication date: October 16, 2008Applicant: Digital Fountain, IncInventors: Michael G. Luby, Payam Pakzad, Mark Watson, Lorenzo Vicisano, Jourdan J. Clish
-
Patent number: 7418651Abstract: A method of encoding data for transmission from a source to a destination over a communications channel is provided. The method operates on an ordered set of input symbols and includes generating a plurality of redundant symbols from the input symbols. The method also includes generating a plurality of output symbols from a combined set of symbols including the input symbols and the redundant symbols, wherein the number of possible output symbols is much larger than the number of symbols in the combined set of symbols, wherein at least one output symbol is generated from more than one symbol in the combined set of symbols and from less than all of the symbols in the combined set of symbols, and such that the ordered set of input symbols can be regenerated to a desired degree of accuracy from any predetermined number of the output symbols.Type: GrantFiled: May 9, 2005Date of Patent: August 26, 2008Assignee: Digital Fountain, Inc.Inventors: Michael G. Luby, M. Amin Shokrollahi, Mark Watson
-
Publication number: 20080180284Abstract: An encoder uses an input file of data and a key to produce an output symbol. An output symbol with key I is generated by determining a weight, W(I), for the output symbol to be generated, selecting W(I) of the input symbols associated with the output symbol according to a function of I, and generating the output symbol's value B(I) from a predetermined value function F(I) of the selected W(I) input symbols. An encoder can be called repeatedly to generate multiple output symbols. The output symbols are generally independent of each other, and an unbounded number (subject to the resolution of I) can be generated, if needed. A decoder receives some or all of the output symbols generated. The number of output symbols needed to decode an input file is equal to, or slightly greater than, the number of input symbols comprising the file, assuming that input symbols and output symbols represent the same number of bits of data.Type: ApplicationFiled: August 20, 2007Publication date: July 31, 2008Applicant: Digital Fountain, Inc.Inventor: Michael G. Luby
-
Publication number: 20080180285Abstract: A method of encoding data into a chain reaction code includes generating a set of input symbols from input data. Subsequently, one or more non-systematic output symbols is generated from the set of input symbols, each of the one or more non-systematic output symbols being selected from an alphabet of non-systematic output symbols, and each non-systematic output symbol generated as a function of one or more of the input symbols. As a result of this encoding process, any subset of the set of input symbols is recoverable from (i) a predetermined number of non-systematic output symbols, or (ii) a combination of (a) input symbols which are not included in the subset of input symbols that are to be recovered, and (b) one or more of the non-systematic output symbols.Type: ApplicationFiled: August 20, 2007Publication date: July 31, 2008Applicant: Digital Fountain, Inc.Inventors: M. Amin Shokrollahi, Michael G. Luby
-
Patent number: 7394407Abstract: A method of encoding data into a chain reaction code includes generating a set of input symbols from input data. Subsequently, one or more non-systematic output symbols is generated from the set of input symbols, each of the one or more non-systematic output symbols being selected from an alphabet of non-systematic output symbols, and each non-systematic output symbol generated as a function of one or more of the input symbols. As a result of this encoding process, any subset of the set of input symbols is recoverable from (i) a predetermined number of non-systematic output symbols, or (ii) a combination of (a) input symbols which are not included in the subset of input symbols that are to be recovered, and (b) one or more of the non-systematic output symbols.Type: GrantFiled: April 11, 2005Date of Patent: July 1, 2008Assignee: Digital Fountain, Inc.Inventors: M. Amin Shokrollahi, Michael G. Luby
-
Publication number: 20070195894Abstract: A method of encoding data for transmission from a source to a destination over a communications channel is provided. The method operates on an ordered set of input symbols and includes generating a plurality of redundant symbols from the input symbols based on linear constraints. The method also includes generating a plurality of output symbols from a combined set of symbols including the input symbols and the redundant symbols based on linear combinations, wherein at least one of the linear constraints or combinations is over a first finite field and at least one other of the linear constraints or combinations is over a different second finite field, and such that the ordered set of input symbols can be regenerated to a desired degree of accuracy from any predetermined number of the output symbols.Type: ApplicationFiled: February 13, 2007Publication date: August 23, 2007Applicant: Digital Fountain, Inc.Inventors: M. Amin Shokrollahi, Michael G. Luby, Mark Watson, Lorenz Minder
-
Patent number: 7243285Abstract: A broadcasting system for communicating data to multiple receivers using information additive code includes one or more information additive code transmitters and one or more information additive code receivers. Each of the information additive code transmitters includes an encoder configured to receive source data and to produce information additive code therefrom. Each of the information additive code receivers includes a decoder configured to receive the information additive code and to reconstruct therefrom substantially a copy of the source data.Type: GrantFiled: July 10, 2003Date of Patent: July 10, 2007Assignee: Digital Fountain, Inc.Inventors: Christian Foisy, Joseph A. Vo, M. Amin Shokrollahi, Michael G. Luby
-
Patent number: 7240358Abstract: A media object is scheduled for transmission between a server and a client. The media object is partitioned into segments of blocks, wherein each block is a unit of media for which a client will wait to receive an entire block before playing out the block, and wherein each segment includes an integer number of blocks. One or more channels on which to serve each segment are determined, and a rate at which to serve each segment is determined. Additionally, a schedule pair for each channel is determined. The schedule pair includes a time at which the client may start receiving on the channel and a time at which the client may stop receiving on the channel.Type: GrantFiled: January 23, 2001Date of Patent: July 3, 2007Assignee: Digital Fountain, Inc.Inventors: Gavin Horn, Michael G. Luby, Jens Rasmussen, Per Knudsgaard, Soren Lassen
-
Patent number: 7233264Abstract: An encoder uses an input file of data and a key to produce an output symbol. An output symbol with key I is generated by determining a weight, W(I), for the output symbol to be generated, selecting W(I) of the input symbols associated with the output symbol according to a function of I, and generating the output symbol's value B(I) from a predetermined value function F(I) of the selected W(I) input symbols. An encoder can be called repeatedly to generate multiple output symbols. The output symbols are generally independent of each other, and an unbounded number (subject to the resolution of I) can be generated, if needed. A decoder receives some or all of the output symbols generated. The number of output symbols needed to decode an input file is equal to, or slightly greater than, the number of input symbols comprising the file, assuming that input symbols and output symbols represent the same number of bits of data.Type: GrantFiled: September 13, 2005Date of Patent: June 19, 2007Assignee: Digital Fountain, Inc.Inventor: Michael G. Luby
-
Patent number: 7072971Abstract: Multiple files a served using a server coupled to a data network. A plurality of files is determined, wherein a file includes an integer number of blocks, and wherein each block includes at least one input symbol. For each file, an indication of at least one channel on which to serve the file is determined, and, for each file, a rate at which to serve the file is determined. Also, a schedule for processing the blocks is determined, and output symbols for the blocks are generated according to the schedule. The output symbols are transmitted on the corresponding at least one channel, wherein the files are concurrently served at their corresponding rates.Type: GrantFiled: February 22, 2001Date of Patent: July 4, 2006Assignee: Digital Foundation, Inc.Inventors: Soren Lassen, Gavin Horn, Jeffrey J. Persch, Armin Haken, Michael G. Luby
-
Patent number: 7057534Abstract: An encoder uses an input file of data and a key to produce an output symbol. An output symbol with key I is generated by determining a weight, W(I), for the output symbol to be generated, selecting W(I) of the input symbols associated with the output symbol according to a function of I, and generating the output symbol's value B(I) from a predetermined value function F(I) of the selected W(I) input symbols. An encoder can be called repeatedly to generate multiple output symbols. The output symbols are generally independent of each other, and an unbounded number (subject to the resolution of I) can be generated, if needed. A decoder receives some or all of the output symbols generated. The number of output symbols needed to decode an input file is equal to, or slightly greater than, the number of input symbols comprising the file, assuming that input symbols and output symbols represent the same number of bits of data.Type: GrantFiled: June 19, 2003Date of Patent: June 6, 2006Assignee: Digital Fountain, Inc.Inventor: Michael G. Luby
-
Patent number: 6909383Abstract: A method of encoding data into a chain reaction code includes generating a set of input symbols from input data. Subsequently, one or more non-systematic output symbols is generated from the set of input symbols, each of the one or more non-systematic output symbols being selected from an alphabet of non-systematic output symbols, and each non-systematic output symbol generated as a function of one or more of the input symbols. As a result of this encoding process, any subset of the set of input symbols is recoverable from (i) a predetermined number of non-systematic output symbols, or (ii) a combination of (a) input symbols which are not included in the subset of input symbols that are to be recovered, and (b) one or more of the non-systematic output symbols.Type: GrantFiled: October 1, 2003Date of Patent: June 21, 2005Assignee: Digital Fountain, Inc.Inventors: M. Amin Shokrollahi, Michael G. Luby
-
Publication number: 20040075593Abstract: A method of encoding data into a chain reaction code includes generating a set of input symbols from input data. Subsequently, one or more non-systematic output symbols is generated from the set of input symbols, each of the one or more non-systematic output symbols being selected from an alphabet of non-systematic output symbols, and each non-systematic output symbol generated as a function of one or more of the input symbols. As a result of this encoding process, any subset of the set of input symbols is recoverable from (i) a predetermined number of non-systematic output symbols, or (ii) a combination of (a) input symbols which are not included in the subset of input symbols that are to be recovered, and (b) one or more of the non-systematic output symbols.Type: ApplicationFiled: October 1, 2003Publication date: April 22, 2004Applicant: Digital Fountain, Inc.Inventors: M. Amin Shokrollahi, Michael G. Luby
-
Publication number: 20040021588Abstract: An encoder uses an input file of data and a key to produce an output symbol. An output symbol with key I is generated by determining a weight, W(I), for the output symbol to be generated, selecting W(I) of the input symbols associated with the output symbol according to a function of I, and generating the output symbol's value B(I) from a predetermined value function F(I) of the selected W(I) input symbols. An encoder can be called repeatedly to generate multiple output symbols. The output symbols are generally independent of each other, and an unbounded number (subject to the resolution of I) can be generated, if needed. A decoder receives some or all of the output symbols generated. The number of output symbols needed to decode an input file is equal to, or slightly greater than, the number of input symbols comprising the file, assuming that input symbols and output symbols represent the same number of bits of data.Type: ApplicationFiled: June 19, 2003Publication date: February 5, 2004Applicant: Digital Fountain, Inc.Inventor: Michael G. Luby
-
Patent number: 6614366Abstract: An encoder uses an input file of data and a key to produce an output symbol. An output symbol with key I is generated by determining a weight, W(I), for the output symbol to be generated, selecting W(I) of the input symbols associated with the output symbol according to a function of I, and generating the output symbol's value B(I) from a predetermined value function F(I) of the selected W(I) input symbols. An encoder can be called repeatedly to generate multiple output symbols. The output symbols are generally independent of each other, and an unbounded number (subject to the resolution of I) can be generated, if needed. A decoder receives some or all of the output symbols generated. The number of output symbols needed to decode an input file is equal to, or slightly greater than, the number of input symbols comprising the file, assuming that input symbols and output symbols represent the same number of bits of data.Type: GrantFiled: February 14, 2002Date of Patent: September 2, 2003Assignee: Digital Fountain, Inc.Inventor: Michael G. Luby
-
Publication number: 20020190878Abstract: An encoder uses an input file of data and a key to produce an output symbol. An output symbol with key I is generated by determining a weight, W(I), for the output symbol to be generated, selecting W(I) of the input symbols associated with the output symbol according to a function of I, and generating the output symbol's value B(I) from a predetermined value function F(I) of the selected W(I) input symbols. An encoder can be called repeatedly to generate multiple output symbols. The output symbols are generally independent of each other, and an unbounded number (subject to the resolution of I) can be generated, if needed. A decoder receives some or all of the output symbols generated. The number of output symbols needed to decode an input file is equal to, or slightly greater than, the number of input symbols comprising the file, assuming that input symbols and output symbols represent the same number of bits of data.Type: ApplicationFiled: February 14, 2002Publication date: December 19, 2002Applicant: DIGITAL FOUNTAIN, INC.Inventor: Michael G. Luby
-
Patent number: 6486803Abstract: An encoder encodes an output symbol from input symbols of an input file by determining, for a given output symbol, a list AL that indicates W associated input symbols, within a subset S of the input symbols comprising the input file, to be associated with the output symbol, where W is a positive integer, where at least two output symbols have different values for W associated therewith, where W is greater than one for at least one output symbol, and where the number of possible output symbols is much larger than the number of input symbols in the input file, and generating an output symbol value from a predetermined function of the W associated input symbols indicated by AL. The subset S can be a window that slides over the input file to cover all of the input symbols in a period. The window can be a fixed or variable size. Where the window moves over the file and reaches an edge, the window can wrap around or can cover extended input symbols.Type: GrantFiled: September 22, 2000Date of Patent: November 26, 2002Assignee: Digital Fountain, Inc.Inventors: Michael G. Luby, Gavin Horn, Jeffrey J. Persch, John Byers, Armin Haken, Mike Mitzenmacher
-
Publication number: 20020107968Abstract: A media object is scheduled for transmission between a server and a client. The media object is partitioned into segments of blocks, wherein each block is a unit of media for which a client will wait to receive an entire block before playing out the block, and wherein each segment includes an integer number of blocks. One or more channels on which to serve each segment are determined, and a rate at which to serve each segment is determined. Additionally, a schedule pair for each channel is determined. The schedule pair includes a time at which the client may start receiving on the channel and a time at which the client may stop receiving on the channel.Type: ApplicationFiled: January 23, 2001Publication date: August 8, 2002Inventors: Gavin Horn, Michael G. Luby, Jens Rasmussen, Per Knudsgaard, Soren Lassen
-
Publication number: 20020087685Abstract: Multiple files a served using a server coupled to a data network. A plurality of files is determined, wherein a file includes an integer number of blocks, and wherein each block includes at least one input symbol. For each file, an indication of at least one channel on which to serve the file is determined, and, for each file, a rate at which to serve the file is determined. Also, a schedule for processing the blocks is determined, and output symbols for the blocks are generated according to the schedule. The output symbols are transmitted on the corresponding at least one channel, wherein the files are concurrently served at their corresponding rates.Type: ApplicationFiled: February 22, 2001Publication date: July 4, 2002Inventors: Soren Lassen, Gavin Horn, Jeffrey J. Persch, Armin Haken, Michael G. Luby