FORWARD ERROR CORRECTION FOR STREAMING DATA
First Claim
1. A method for encoding and transmitting frames with forward error correction (FEC), the method comprising:
- receiving or generating a plurality of unencoded frames including a current frame in a sequence and one or more previous frames in the sequence;
encoding the current frame at a first bitrate to generate one or more encoded source frames;
encoding the one or more previous frames at a second bitrate that is equal to or lower than the first bitrate to generate one or more encoded FEC frames;
packetizing the one or more encoded source frames and the one or more encoded FEC frames into one or more data packets; and
storing the one or more data packets in a memory or transmitting the one or more data packets over a data network.
2 Assignments
0 Petitions
Accused Products
Abstract
A current frame in a sequence and one or more previous frames in the sequence may be encoded and decoded with forward error correction (FEC). The current frame is encoded at a first bitrate to generate one or more encoded source frames and the one or more previous frames are encoded at an equal or lower second bitrate to generate one or more encoded FEC frames. The encoded source frame(s) and FEC frame(s) are packetized into one or more data packets, which are stored in a memory or transmitted over a data network. The encoded source frame information and previous frame information is unpackaged from the packets and the encoded source frames are decoded. If given source frame of the sequence is missing, one or more encoded FEC frames that correspond to the given source frame are identified from among the data packets and decoded and used to reconstruct the given frame.
-
Citations
52 Claims
-
1. A method for encoding and transmitting frames with forward error correction (FEC), the method comprising:
-
receiving or generating a plurality of unencoded frames including a current frame in a sequence and one or more previous frames in the sequence; encoding the current frame at a first bitrate to generate one or more encoded source frames; encoding the one or more previous frames at a second bitrate that is equal to or lower than the first bitrate to generate one or more encoded FEC frames; packetizing the one or more encoded source frames and the one or more encoded FEC frames into one or more data packets; and storing the one or more data packets in a memory or transmitting the one or more data packets over a data network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A system, comprising:
-
a processor module; a memory coupled to the processor, wherein the memory contains executable instructions configured to implement a method, the method comprising; receiving or generating a plurality of unencoded frames including a current frame and one or more previous frames; encoding the current frame at a first bitrate to generate one or more encoded source frames; encoding the one or more previous frames at a second bitrate that is equal to or lower than the first bitrate to generate one or more encoded FEC frames; packetizing the one or more encoded source frames and the one or more encoded FEC frames into one or more data packets; and storing the one or more data packets in a memory or transmitting the one or more data packets over a data network.
-
-
24. A non-transitory computer readable medium having embodied therein computer readable instructions configured, to implement a method, the method comprising:
-
receiving or generating a plurality of unencoded frames including a current frame and one or more previous frames; encoding the current frame at a first bitrate to generate one or more encoded source frames; encoding the one or more previous frames at a second bitrate that is equal to or lower than the first bitrate to generate one or more encoded FEC frames; packetizing the one or more encoded source frames and the one or more encoded FEC frames into one or more data packets; and storing the one or more data packets in a memory or transmitting the one or more data packets over a data network.
-
-
25. A method for decoding and reconstructing data packets containing one or more encoded source frames and one or more encoded forward error correction (FEC) frames, the method comprising:
-
receiving a plurality of data packets, wherein each data packet in the plurality contains encoded information corresponding to a source frame in a sequence encoded at a first bitrate and one or more previous frames in the sequence encoded as FEC frames at a second bitrate that is equal to or lower than the first bitrate; unpackaging the encoded information corresponding to the one or more encoded source frames and the one or more previous frames from each data packet in the plurality; decoding the one or more encoded source frames to generate one or more decoded source frames; determining whether encoded information corresponding to a given source frame of the sequence is missing from the plurality of data packets; identifying one or more corresponding encoded FEC frames in the plurality of data packets that correspond to the given source frame; decoding the one or more corresponding encoded FEC frames to generate one or more decoded FEC frames; generating a reconstructed frame corresponding to the given source frame using the one or more decoded FEC frames; and storing the one or more decoded source frames and the reconstructed missing frame in a memory and/or presenting one or more decoded source frames and the reconstructed missing frame in the sequence with a display. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
-
51. A system, comprising:
-
a processor module; a memory coupled to the processor, wherein the memory contains executable instructions configured to implement a method for decoding and reconstructing data packets containing one or more encoded source frames and one or more encoded forward error correction (FEC) frames, the method comprising; receiving a plurality of data packets, wherein each data packet in the plurality contains encoded information corresponding to a source frame in a sequence encoded at a first bitrate and one or more previous frames in the sequence encoded as FEC frames at a second bitrate that is equal to or lower than the first bitrate; unpackaging the encoded information corresponding to the one or more encoded source frames and the one or more previous frames from each data packet in the plurality; decoding the one or more encoded source frames to generate one or more decoded source frames; determining whether encoded information corresponding to a given source frame of the sequence is missing from the plurality of data packets; identifying one or more corresponding encoded FEC frames in the plurality of data packets that correspond to the given source frame; decoding the one or more corresponding encoded FEC frames to generate one or more decoded FEC frames; generating a reconstructed frame corresponding to the given source frame using the one or more decoded FEC frames; and storing the one or more decoded source frames and the reconstructed missing frame in a memory and/or presenting one or more decoded source frames and the reconstructed missing frame in the sequence with a display.
-
-
52. A non-transitory computer readable medium having embodied therein computer readable instructions configured, to implement a method for decoding and reconstructing data packets containing one or more encoded source frames and one or more encoded forward error correction (FEC) frames, the method comprising:
-
receiving a plurality of data packets, wherein each data packet in the plurality contains encoded information corresponding to a source frame in a sequence encoded at a first bitrate and one or more previous frames in the sequence encoded as FEC frames at a second bitrate that is equal to or lower than the first bitrate; unpackaging the encoded information corresponding to the one or more encoded source frames and the one or more previous frames from each data packet in the plurality; decoding the one or more encoded source frames to generate one or more decoded source frames; determining whether encoded information corresponding to a given source frame of the sequence is missing from the plurality of data packets; identifying one or more corresponding encoded FEC frames in the plurality of data packets that correspond to the given source frame; decoding the one or more corresponding encoded FEC frames to generate one or more decoded FEC frames; generating a reconstructed frame corresponding to the given source frame using the one or more decoded FEC frames; and storing the one or more decoded source frames and the reconstructed missing frame in a memory and/or presenting one or more decoded source frames and the reconstructed missing frame in the sequence with a display.
-
Specification