Forward error correction for low-delay recovery from packet loss

US9843413B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9843413-B2
Application numberUS-201615081133-A
CountryUS
Kind codeB2
Filing dateMar 25, 2016
Priority dateMar 25, 2016
Publication dateDec 12, 2017
Grant dateDec 12, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An encoder receives a sequence of packets. For each packet, the encoder selects a window of at least previous packets in the sequence of packets. The encoder identifies in the window one or more earlier packets among the previous packets and one or more later packets separated from the one or more earlier packets by a gap including gap packets. The encoder encodes the one or more earlier packets and the one or more later packets into a forward error correction (FEC) packet corresponding to the packet, without using any of the gap packets, and transmits the FEC packet and the packet.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving a sequence of packets; and for each packet: selecting a window that includes at least previous packets in the sequence of packets; identifying in the window one or more earlier packets among the previous packets and one or more later packets separated from the one or more earlier packets by a gap including gap packets; encoding the one or more earlier packets and the one or more later packets into a forward error correction (FEC) packet corresponding to the packet, without using any of the gap packets; and transmitting the FEC packet and the packet. 2. The method of claim 1 , further comprising: combining the packet and the FEC packet into a combined packet, wherein the transmitting includes transmitting the combined packet. 3. The method of claim 1 , wherein the transmitting includes transmitting the FEC packet and the packet as separate packets. 4. The method of claim 1 , wherein: the selecting includes selecting the window to include the packet in addition to the previous packets; and the identifying includes identifying the one or more later packets to include the packet. 5. The method of claim 1 , wherein the previous packets of the window are contiguous, the one or more earlier packets include at least two contiguous packets, and the gap packets are contiguous packets. 6. The method of claim 1 , wherein the selecting includes, for each packet, sliding the window across the sequence of packets by at least one packet so that the window after sliding includes packets that were received later than the packets in the window corresponding to each previous packet. 7. The method of claim 1 , wherein a total number of the gap packets by which the one or more first packets and the one or more second packets are separated is adjustable, and the method further comprises, over time: transmitting multiple packets and corresponding FEC packets; receiving indications of burst packet losses experienced by the transmitted multiple packets; and adjusting the total number of the gap packets based on the received indications so as to mitigate the burst losses. 8. The method of claim 7 , wherein the adjusting includes increasing and decreasing the total number of gap packets based on indications of increasing and/or decreasing burst packet losses. 9. The method of claim 1 , wherein the encoding includes linearly combining the one or more earlier packets and the one or more later packets to produce the FEC packet. 10. The method of claim 1 , further comprising: dividing each packet of the window into a respective first sub-packet having less bits than the packet and a respective second packet having less bits than the packet, wherein the encoding includes: encoding the respective first sub-packets of the one or more later packets and the respective first sub-packets of the one or more earlier packets into a first FEC sub-packet, without using the first sub-packets of the gap packets; encoding the respective second sub-packets of all of the window packets into a second FEC sub-packet; and combining the first FEC sub-packet and the second FEC sub-packet into the FEC packet. 11. The method of claim 1 , wherein the packets are audio packets or video packets. 12. An apparatus comprising: a network interface unit configured to enable communications over a network; and a processor coupled with the network ports and configured to: receive a sequence of packets, and for each packet: select a window of at least previous packets in the sequence of packets; identify in the window one or more earlier packets among the previous packets and one or more later packets separated from the one or more earlier packets by a gap including gap packets; encode the one or more earlier packets and the one or more later packets into a forward error correction (FEC) packet corresponding to the packet, without using any of the gap packets; and transmit the FEC packet and the packet. 13. The apparatus of claim 12 , wherein the previous packets of the window are contiguous, the one or more earlier packets include at least two contiguous packets, and the gap packets are contiguous packets. 14. The apparatus of claim 12 , wherein the processor is configured to select by, for each packet, sliding the window across the sequence of packets by at least one packet so that the slid window after sliding includes packets that were received later than the packets in the window corresponding to each previous packet. 15. The apparatus of claim 12 , wherein a total number of the gap packets by which the one or more first packets and the one or more second packets are separated is adjustable, and the processor is further configured to, over time: transmit multiple packets and corresponding FEC packets; receive indications of burst packet losses experienced by the transmitted multiple packets; and adjust the total number of the gap packets based on the received indications so as to mitigate the burst losses. 16. The apparatus of claim 12 , wherein the processor is configured to encode by linearly combining the one or more earlier packets and the one or more later packets to produce the FEC packet. 17. A non-transitory computer readable storage media encoded with instructions that, when executed by a processor, cause the processor to: receive a sequence of packets, and for each packet: select a window of at least previous packets in the sequence of packets; identify in the window one or more earlier packets among the previous packets and one or more later packets separated from the one or more earlier packets by a gap including gap packets; encode the one or more earlier packets and the one or more later packets into a forward error correction (FEC) packet corresponding to the packet, without using any of the gap packets; and transmit the FEC packet and the packet. 18. The computer readable storage media of claim 17 , wherein the previous packets of the window are contiguous, the one or more earlier packets include at least two contiguous packets, and the gap packets are contiguous packets. 19. The computer readable storage media of claim 17 , wherein the instructions to cause the processor to select include instructions to cause the processor to, for each packet, slide the window across the sequence of packets by at least one packet so that the window after sliding includes packets that were received later than the packets in the packet window corresponding to each previous packet. 20. The computer readable storage media of claim 17 , wherein a total number of the gap packets by which the one or more first packets and the one or more second packets are separated is adjustable, and the computer readable storage media further includes instructions to cause the processor to, over time: transmit multiple packets and corresponding FEC packets; receive indications of burst packet losses experienced by the transmitted multiple packets; and adjust the total number of the gap packets based on the received indications so as to mitigate the burst losses. 21. The computer readable storage media of claim 17 , wherein the instructions to cause the processor to encode include instructions to cause the processor to linearly combine the one or more earlier packets and the one or more later packets to produce the FEC packet.

Assignees

Inventors

Classifications

  • by adapting the channel coding (H04L1/1812 takes precedence) · CPC title

  • Arrangements at the receiver end · CPC title

  • H04L1/0057Primary

    Block codes (H04L1/0061, H04L1/0064 take precedence) · CPC title

  • Traffic shaping · CPC title

  • using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits {(H03M13/2906 takes precedence)} · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9843413B2 cover?
An encoder receives a sequence of packets. For each packet, the encoder selects a window of at least previous packets in the sequence of packets. The encoder identifies in the window one or more earlier packets among the previous packets and one or more later packets separated from the one or more earlier packets by a gap including gap packets. The encoder encodes the one or more earlier packet…
Who is the assignee on this patent?
Cisco Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L1/0057. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 12 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).