Patents Assigned to Digital Fountain, Inc.
  • Patent number: 7532132
    Abstract: 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: Grant
    Filed: August 20, 2007
    Date of Patent: May 12, 2009
    Assignee: Digital Fountain, Inc.
    Inventors: M. Amin Shokrollahi, Michael G. Luby
  • Patent number: 7512697
    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: Grant
    Filed: September 26, 2005
    Date of Patent: March 31, 2009
    Assignee: Digital Fountain, Inc.
    Inventors: Soren Lassen, Gavin Horn, Jeffrey J. Persch, Armin Haken, Michael G. Luby
  • Publication number: 20090067551
    Abstract: A method of generating Source Identification information from a source packet stream and reliably transmitting the Source Identification information from a source to a destination over a communications channel is provided. The method operates on a set of source packets, wherein Source Identification information for each source packet to be transmitted is derived and delivered with the Source Identification information of all or most other source packets of an associated source block. The method includes techniques to minimize the network bandwidth required to deliver Source Identification information and techniques to overcome network impairments. When combined with FEC techniques, retransmission techniques, or combinations of FEC techniques and retransmission techniques, the methods described herein allow receivers to recover lost source packets, while simultaneously ensuring that the original source packets are not modified and thereby ensuring backwards compatibility for legacy receivers.
    Type: Application
    Filed: September 12, 2008
    Publication date: March 12, 2009
    Applicant: Digital Fountain, Inc.
    Inventors: Steve Chen, Michael G. Luby, Manu Prasad, William Seed, Thomas Stockhammer
  • Publication number: 20090031199
    Abstract: 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: Application
    Filed: August 25, 2008
    Publication date: January 29, 2009
    Applicant: Digital Fountain, Inc.
    Inventors: Michael G. Luby, M. Amin Shokrollahi, Mark Watson
  • Publication number: 20080309525
    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: August 20, 2007
    Publication date: December 18, 2008
    Applicant: Digital Fountain, Inc.
    Inventors: M. Amin Shokrollahi, Soren Lassen, Michael Luby
  • Patent number: 7451377
    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 5, 2006
    Date of Patent: November 11, 2008
    Assignee: Digital Fountain, Inc.
    Inventor: M. Amin Shokrollahi
  • Patent number: 7447235
    Abstract: In a transport system, data is reliably transported from a sender to a receiver by organizing the data to be transported into data blocks, wherein each data block comprises a plurality of encoding units, transmitting encoding units of a first data block from the sender to the receiver, and detecting, at the sender, acknowledgments of receipt of encoding units by the receiver. At the sender, a probability that the receiver received sufficient encoding units of the first data block to recover the first data block at the receiver is detected and the probability is tested against a threshold probability to determine whether a predetermined test is met. Following the step of testing and prior to the sender receiving confirmation of recovery of the first data block at the receiver, when the predetermined test is met, transmitting encoding units of a second data block from the sender.
    Type: Grant
    Filed: October 8, 2004
    Date of Patent: November 4, 2008
    Assignee: Digital Fountain, Inc.
    Inventors: Michael Luby, Matt Doucleff, Avi Wigderson, Soren Lassen
  • Publication number: 20080263448
    Abstract: A computer readable storage medium includes executable instructions to display video content. A cursor associated with the relative position of the video content is provided. A new cursor position associated with a request for a new relative position of the video content is received. A thumbnail image of the video content corresponding to the new relative position is displayed. The thumbnail image is then transitioned to a full display image.
    Type: Application
    Filed: April 23, 2007
    Publication date: October 23, 2008
    Applicant: DIGITAL FOUNTAIN, INC.
    Inventor: Charles OPPENHEIMER
  • Publication number: 20080256418
    Abstract: 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: Application
    Filed: April 15, 2008
    Publication date: October 16, 2008
    Applicant: Digital Fountain, Inc
    Inventors: Michael G. Luby, Payam Pakzad, Mark Watson, Lorenzo Vicisano, Jourdan J. Clish
  • Publication number: 20080250298
    Abstract: There have been proposals to extend the MPE protocol to support different FEC schemes on the MPE layer. Examples of these proposals include: TM-SSP0178 describing a multiburst sliding encoding scheme based on Reed-Solomon (RS) codes, TM-SSP0199r1 describing a block-based encoding scheme based on multi-stage chain reaction (MSCR) codes, and TM-SSP0222 describing a multiburst sliding encoding scheme based on MSCR codes. A framework for harmonizing and integrating those techniques is described herein.
    Type: Application
    Filed: April 7, 2008
    Publication date: October 9, 2008
    Applicant: Digital Fountain, Inc.
    Inventor: Thomas Stockhammer
  • Patent number: 7418651
    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. 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: Grant
    Filed: May 9, 2005
    Date of Patent: August 26, 2008
    Assignee: Digital Fountain, Inc.
    Inventors: Michael G. Luby, M. Amin Shokrollahi, Mark Watson
  • Patent number: 7412641
    Abstract: An encoder uses output symbol subsymbols to effect or control a tradeoff of computational effort and overhead efficiency to, for example, greatly reduce computational effort for the cost of a small amount of overhead efficiency. An encoder reads an ordered plurality of input symbols, comprising an input file or input stream, and produces output subsymbol. The ordered plurality of input symbols are each selected from an input alphabet, and the generated output subsymbols comprise selections among an output subsymbol alphabet. An output subsymbol is generated using a function evaluator applied to subsymbols of the input symbols. The encoder may be called one or more times, each time producing an output subsymbol. Output subsymbols can then be assembled into output symbols and transmitted to their destination.
    Type: Grant
    Filed: December 1, 2004
    Date of Patent: August 12, 2008
    Assignee: Digital Fountain, Inc.
    Inventor: M. Amin Shokrollahi
  • Publication number: 20080180285
    Abstract: 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: Application
    Filed: August 20, 2007
    Publication date: July 31, 2008
    Applicant: Digital Fountain, Inc.
    Inventors: M. Amin Shokrollahi, Michael G. Luby
  • Publication number: 20080180284
    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: August 20, 2007
    Publication date: July 31, 2008
    Applicant: Digital Fountain, Inc.
    Inventor: Michael G. Luby
  • Publication number: 20080169945
    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: August 20, 2007
    Publication date: July 17, 2008
    Applicant: Digital Fountain, Inc.
    Inventors: M. Amin Shokrollahi, Richard Karp, Soren Lassen
  • Patent number: 7394407
    Abstract: 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: Grant
    Filed: April 11, 2005
    Date of Patent: July 1, 2008
    Assignee: Digital Fountain, Inc.
    Inventors: M. Amin Shokrollahi, Michael G. Luby
  • Publication number: 20080086751
    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: Application
    Filed: June 1, 2007
    Publication date: April 10, 2008
    Applicant: Digital Fountain, Inc.
    Inventors: Gavin Horn, Michael Luby, Jens Rasmussen, Per Knudsgaard, Soren Lassen
  • Publication number: 20080034273
    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: April 23, 2007
    Publication date: February 7, 2008
    Applicant: Digital Fountain, Inc.
    Inventor: Michael Luby
  • Publication number: 20080028275
    Abstract: A sequence of symbol operations (a “schedule representation”) within a data storage device, wherein the operations are those used to process encoding or decoding operations of a forward error correction code (an “FEC code”) upon an arbitrary block of data of a given size (where size can be measured in numbers of symbols). The method is such that the schedule representation can be used to direct the processing of these operations upon a block of data in a way that is computationally efficient. Preferably, the same method can be applied to represent schedules derived from multiple different algorithms for the encoding or decoding of a code or for multiple different codes.
    Type: Application
    Filed: June 29, 2007
    Publication date: January 31, 2008
    Applicant: Digital Fountain, Inc.
    Inventors: Steve Chen, Mark Watson, Michael Luby, Bill Seed, Thomas Kunz
  • Publication number: 20070300127
    Abstract: A method of encoding data for transmissions from a source to a destination over a communications channel is provided. The method operates on an ordered set of source symbols and may generate zero or more redundant symbols from the source symbols, wherein data is encoded in a first step according to a simple FEC code and in a second step, data is encoded according to a second FEC code, more complex than the first FEC code. The first FEC code and/or the second FEC code might comprise coding known in the art. These steps result in two groups of encoded data in such a way that a low-complexity receiver may make use of one of the groups of encoded data while higher complexity receivers may make use of both groups of encoded data.
    Type: Application
    Filed: May 10, 2007
    Publication date: December 27, 2007
    Applicant: Digital Fountain, Inc.
    Inventors: Mark Watson, Michael Luby