Patents Assigned to Digital Fountain, Inc.
  • Patent number: 7293222
    Abstract: Decoding that uses an extended Hamming code in one of the primary stages of static encoding uses a calculation of the r+1 Hamming redundant symbols for k input symbols from which Hamming redundant symbols are calculated, where r satisfies 2r?1?r?k<2r?r?1. This efficient method requires on the order of 2k+3r+1 XORs of input symbols to calculate the r+1 Hamming redundant symbols.
    Type: Grant
    Filed: January 29, 2004
    Date of Patent: November 6, 2007
    Assignee: Digital Fountain, Inc.
    Inventors: M. Amin Shokrollahi, Soren Lassen
  • Publication number: 20070233891
    Abstract: A method of serving content to multiple clients via a network is provided. Independent sessions with each of a plurality of clients are maintained, wherein the number of clients in the plurality of clients can vary over time, and wherein the start of each session and the end of each session can be independent of the start and end of other sessions. A stream of packet payloads is received, each packet payload of the stream of packet payloads including data generated from the content, wherein each packet payload in at least a subset of the stream of packet payloads includes a different set of data. Each packet payload in the stream of packet payloads is transmitted to each client of the plurality of clients in corresponding packets, wherein the packet payload transmitted to a client at any particular time is independent of the state of the corresponding session.
    Type: Application
    Filed: February 26, 2007
    Publication date: October 4, 2007
    Applicant: Digital Fountain, Inc.
    Inventors: Michael Luby, Ronen Vainish, Lars Rasmussen, David Kushi, Serban Simu, Adrian Perrig, Roberto Attias, Michael Walfish, Diane Hernek, John Byers
  • Patent number: 7265688
    Abstract: A method for processing a chain reaction codes includes first selecting a source symbol which is associated an output symbol of degree two or higher (i.e., an output symbol which is itself associated with two or more input symbols), and subsequently deactivating the selected source symbol in an attempt to produce an output symbol of degree one. The inactivation process can be repeated either successively until an output symbol of degree one is identified, and/or whenever the decoding process is unable to locate an output symbol of degree one.
    Type: Grant
    Filed: February 15, 2006
    Date of Patent: September 4, 2007
    Assignee: Digital Fountain, Inc.
    Inventors: M. Amin Shokrollahi, Soren Lassen, Richard Karp
  • Publication number: 20070204196
    Abstract: Data is streamed from a transmitter to a receiver, wherein streaming is transferring data with an assumption that the receiver will begin using the data before it is all transmitted and received and the streamed data includes forward error correction (“FEC”) and the rates of data consumption can vary. The transmitter has an input rate and a transmit rate and the two rates can be different and can change. At the receiver, there is a reception rate (at which the receiver receives data) and a consumption rate (at which the receiver uses up data for its output). The transmitter transmits using a transmit rate higher than the consumption rate and the extra bandwidth is usable for FEC protection and buffering. In some embodiments, the excess rate varies over a transmission period.
    Type: Application
    Filed: February 13, 2007
    Publication date: August 30, 2007
    Applicant: Digital Fountain, Inc.
    Inventors: Mark Watson, Michael Luby
  • Publication number: 20070195894
    Abstract: 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: Application
    Filed: February 13, 2007
    Publication date: August 23, 2007
    Applicant: Digital Fountain, Inc.
    Inventors: M. Amin Shokrollahi, Michael G. Luby, Mark Watson, Lorenz Minder
  • Publication number: 20070189401
    Abstract: Transmitters and receivers deal with streams of data, wherein the receiver is expected to begin using received data before receiving all of the data. Concurrent streams are sent and FEC coding is used with the streams and done as an aggregate. The transmitter performs FEC operations over the plurality of streams, wherein source blocks from at least two streams logically associated into a jumbo source block and FEC processing is performed to generate one or more jumbo repair block from the jumbo source block. Each of the source blocks comprises one or more source symbols from their respective stream. The jumbo source symbols can be of constant size and are suitably aligned along size boundaries that make processing efficient. Each source symbol need not be the same size, and the number of source symbols from each stream in a jumbo source block need not be the same value across streams.
    Type: Application
    Filed: February 13, 2007
    Publication date: August 16, 2007
    Applicant: Digital Fountain, Inc.
    Inventors: Mark Watson, Michael Luby
  • Patent number: 7249291
    Abstract: A method for communicating the content of a live data stream to a receiver using a plurality of channels comprising two encoder channels used to encode the live data content prior to transmission. Initially a plurality of segments of a live data stream are received, wherein each segment contains segment data. A forward error correction algorithm is applied to each segment's data, thereby producing FEC-encoded segment data. The FEC-encoded segment data is contained within an FEC-encoded block, resulting in a corresponding plurality of FEC-encoded blocks being generated. Each FEC-encoded block is copied to a sub-channel on both a first encoder channel and a second encoder channel, resulting in a plurality of FEC-encoder blocks residing on the first and second encoder channels. The first and second encoder channels differ in the number of sub-channels they contain (interleaving depth), and accordingly the arrangement of the FEC-encoded blocks in the first and second encoder channels are different.
    Type: Grant
    Filed: February 14, 2003
    Date of Patent: July 24, 2007
    Assignee: Digital Fountain, Inc.
    Inventors: Jens Rasmussen, Amin Shokrollahi, Soren Lassen, Gavin Horn, Vivek Goyal, Barry Dobyns, Michael Luby
  • Patent number: 7243285
    Abstract: 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: Grant
    Filed: July 10, 2003
    Date of Patent: July 10, 2007
    Assignee: Digital Fountain, Inc.
    Inventors: Christian Foisy, Joseph A. Vo, M. Amin Shokrollahi, Michael G. Luby
  • Patent number: 7240358
    Abstract: 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: Grant
    Filed: January 23, 2001
    Date of Patent: July 3, 2007
    Assignee: Digital Fountain, Inc.
    Inventors: Gavin Horn, Michael G. Luby, Jens Rasmussen, Per Knudsgaard, Soren Lassen
  • Patent number: 7233264
    Abstract: 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: Grant
    Filed: September 13, 2005
    Date of Patent: June 19, 2007
    Assignee: Digital Fountain, Inc.
    Inventor: Michael G. Luby
  • Publication number: 20070101234
    Abstract: A communications system includes an encoder that produces a plurality of redundant symbols. For a given key, an output symbol is generated from a combined set of symbols including the input symbols and the redundant symbols. The output symbols are generally independent of each other, and an effectively unbounded number of output symbols can be generated, if needed. Received output symbols can provide probabilistic information for error correction. A decoder calculates check symbols from the output symbols received. For each received output symbol, the decoder updates a running total of estimated information content and, in one or more rounds, generates a probability distribution for each input symbol over all or some of possible values. This process may be repeated until, for all of the input symbols, one of the many possible values is much more probable than others, or the process may be repeated a predetermined number of rounds, or other criteria is met.
    Type: Application
    Filed: October 5, 2006
    Publication date: May 3, 2007
    Applicant: Digital Fountain, Inc.
    Inventor: M. Shokrollahi
  • Publication number: 20060279437
    Abstract: In a data decoder for decoding data from received symbols received over a channel from an encoder, wherein the received data can include erasures and include source symbols and repair symbols and wherein the decoder uses in decoding a generator matrix, any square submatrix of which is invertible, such that the decoder can perform decoding operations concurrently with the arrival of the source symbols and repair symbols, a method of decoding comprising representing in decoder memory a system of equations derived, at least in part, from the generator matrix, substituting received source symbols into the system of equations as the source symbols are received before receiving all source symbols, identifying, using decoder logic, repair equations to be used for solving the system of equations as repair symbols arrive, calculating, using decoder logic, vector values for equations as source symbols arrive, and converting the system of equations into an upper triangular form as repair symbols arrive at the decoder.
    Type: Application
    Filed: June 9, 2006
    Publication date: December 14, 2006
    Applicant: Digital Fountain, Inc.
    Inventors: Michael Luby, Mark Watson, M. Shokrollahi
  • Publication number: 20060280254
    Abstract: In an encoder for encoding symbols of data using a computing device having memory constraints, a method of performing a transformation comprising loading a source block into memory of the computing device, performing an intermediate transformation of less than all of the source block, then replacing a part of the source block with intermediate results in the memory and then completing the transformation such that output symbols stored in the memory form a set of encoded symbols. A decoder can perform decoding steps in an order that allows for use of substantially the same memory for storing the received data and the decoded source block, performing as in-place transformations. Using an in-place transformation, a large portion of memory set aside for received data can be overwritten as that received data is transformed into decoded source data without requiring a similar sized large portion of memory for the decoded source data.
    Type: Application
    Filed: June 9, 2006
    Publication date: December 14, 2006
    Applicant: Digital Fountain, Inc.
    Inventors: Michael Luby, M. Shokrollahi
  • Publication number: 20060262877
    Abstract: A method of encoding data for transmission from a source to a destination over a communications channel is provided. A plurality of redundant symbols are generated from an ordered set of input symbols to be transmitted. A plurality of output symbols are generated 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, N, of the output symbols.
    Type: Application
    Filed: February 13, 2006
    Publication date: November 23, 2006
    Applicant: Digital Fountain, Inc.
    Inventors: M. Shokrollahi, Soren Lassen, Michael Luby
  • Patent number: 7139960
    Abstract: A communications system includes an encoder that produces a plurality of redundant symbols. For a given key, an output symbol is generated from a combined set of symbols including the input symbols and the redundant symbols. The output symbols are generally independent of each other, and an effectively unbounded number of output symbols can be generated, if needed. Received output symbols can provide probabilistic information for error correction. A decoder calculates check symbols from the output symbols received. For each received output symbol, the decoder updates a running total of estimated information content and, in one or more rounds, generates a probability distribution for each input symbol over all or some of possible values. This process may be repeated until, for all of the input symbols, one of the many possible values is much more probable than others, or the process may be repeated a predetermined number of rounds, or other criteria is met.
    Type: Grant
    Filed: October 6, 2004
    Date of Patent: November 21, 2006
    Assignee: Digital Fountain, Inc.
    Inventor: M. Amin Shokrollahi
  • Publication number: 20060227022
    Abstract: A method for processing a chain reaction codes includes first selecting a source symbol which is associated an output symbol of degree two or higher (i.e., an output symbol which is itself associated with two or more input symbols), and subsequently deactivating the selected source symbol in an attempt to produce an output symbol of degree one. The inactivation process can be repeated either successively until an output symbol of degree one is identified, and/or whenever the decoding process is unable to locate an output symbol of degree one.
    Type: Application
    Filed: February 15, 2006
    Publication date: October 12, 2006
    Applicant: Digital Fountain, Inc.
    Inventors: M. Shokrollahi, Soren Lassen, Richard Karp
  • Patent number: 7068729
    Abstract: A method of encoding data for transmission from a source to a destination over a communications channel is provided. A plurality of redundant symbols are generated from an ordered set of input symbols to be transmitted. A plurality of output symbols are generated 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, N, of the output symbols.
    Type: Grant
    Filed: December 21, 2001
    Date of Patent: June 27, 2006
    Assignee: Digital Fountain, Inc.
    Inventors: M. Amin Shokrollahi, Soren Lassen, Michael Luby
  • Publication number: 20060129692
    Abstract: 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: Application
    Filed: September 26, 2005
    Publication date: June 15, 2006
    Applicant: Digital Fountain, Inc.
    Inventors: Soren Lassen, Gavin Horn, Jeffrey Persch, Armin Haken, Michael Luby
  • Patent number: 7057534
    Abstract: 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: Grant
    Filed: June 19, 2003
    Date of Patent: June 6, 2006
    Assignee: Digital Fountain, Inc.
    Inventor: Michael G. Luby
  • Publication number: 20060087456
    Abstract: 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: Application
    Filed: September 13, 2005
    Publication date: April 27, 2006
    Applicant: Digital Fountain, Inc.
    Inventor: Michael Luby