IP Library Granted Patent US 7,516,387
Granted Patent B2
US 7,516,387 · App. 11/355,956 · Granted Apr 7, 2009

System and method for transmitting FEC packets

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,516,387
App. No.
11/355,956
Granted
Apr 7, 2009
Kind
B2
Abstract

A system and method for transmitting IP packets arranged in an L×D matrix comprising data packets and L number of FEC packets, L corresponding to a number of columns in the matrix, and D corresponding to a number rows in the matrix includes assigning a first location in the matrix as an FEC packet location, skipping D number of locations in the matrix from the most recently assigned FEC packet location to a new location, and determining if the new location is positioned in the same column as an existing FEC packet location. The new location is assigned as an FEC packet location if it is determined that the new location is not positioned in the same column as an existing FEC packet location. If it is determined that the new location is positioned in the same column as an existing FEC packet location, then the location is moved back in the matrix until the moved-back location is not positioned in the same column as an existing FEC packet location, and the moved-back location is assigned as an FEC packet location. The skipping, determining, assigning, and moving back are repeatedly performed until the number of FEC packet locations is equal to L. The FEC packets protecting the D previous IP packets in the same column are transmitted in accordance with the identified FEC packet locations.

Claims (46)

1. A method for transmitting a group of IP packets arranged in an L by D matrix comprising L×D data packets and L number of FEC packets protecting columns of the matrix, L corresponding to a number of columns in the matrix, and D corresponding to a number rows in the matrix, the method comprising:

a) assigning a first location in the matrix as an FEC packet location;

b) skipping D number of locations in the matrix from the most recently assigned FEC packet location to a new location;

c) determining if the new location is positioned in the same column as an existing FEC packet location;

d) assigning the new location as an FEC packet location if it is determined that the new location is not positioned in the same column as an existing FEC packet location;

e) if it is determined that the new location is positioned in the same column as an existing FEC packet location, moving back in the matrix until the moved-back location is not positioned in the same column as an existing FEC packet location and assigning the moved-back location as an FEC packet location;

f) repeating steps b)-e) until the number of FEC packet locations is equal to L; and

g) transmitting the FEC packets in accordance with the identified FEC packet locations such that each FEC packet protects D prior data packets in the same column of the L by D matrix as the respective FEC packet.

2. A method according to claim 1 , further comprising:

receiving a data packet;

generating a partial FEC packet from the received data packet and a previously generated partial FEC packet;

determining if the partial FEC packet has been generated from D number of data packets;

transmitting the partial FEC packet as a complete FEC packet if the partial FEC packet has been generated from D number of data packets; and

storing the partial FEC packet in a memory if the partial FEC packet has been generated from less than D number of data packets.

3. A method according to claim 2 , further comprising:

maintaining a period counter that counts from 0 to L−1;

maintaining an order counter that counts from 0 to D×1; and

maintaining L number of group counters, one for each FEC group, that counts from 1 to D to indicate a number of partial FEC packet computations completed.

4. A method according to claim 3 , wherein the step of determining if the partial FEC packet has been generated from D number of data packets includes checking if the value of the group counter for the FEC group associated with the generated partial FEC packet is equal to D,

wherein the step of transmitting the partial FEC packet includes transmitting the partial FEC packet as the complete FEC packet if the value of the group counter for the FEC group associated with the generated partial FEC packet is equal to D, and

wherein the group counter for the FEC group associated with the generated partial FEC packet is incremented by one if the value of the group counter for the FEC group associated with the generated partial FEC packet is not equal to D.

5. A method according to claim 1 , wherein the group of IP packets are transmitted in accordance with Pro-MPEG Code of Practice #3, release 2.

6. A system for transmitting a group of IP packets arranged in an L by D matrix comprising L×D data packets and L number of FEC packets protecting columns of the matrix, L corresponding to a number of columns in the matrix, and D corresponding to a number rows in the matrix, the system comprising:

a processor;

a memory, coupled to the processor, the memory comprising a plurality of instructions executed by the processor, the plurality of instructions configured to:

a) assign a first location in the matrix as an FEC packet location;

b) skip D number of locations in the matrix from the most recently assigned FEC packet location to a new location;

c) determine if the new location is positioned in the same column as an existing FEC packet location;

d) assign the new location as an FEC packet location if it is determined that the new location is not positioned in the same column as an existing FEC packet location;

e) if it is determined that the new location is positioned in the same column as an existing FEC packet location, move back in the matrix until the moved-back location is not positioned in the same column as an existing FEC packet location and assigning the moved-back location as an FEC packet location; and

f) repeat b)-e) until the number of FEC packet locations is equal to L; and

an interface configured to transmit the FEC packets of the IP packet in accordance with the identified FEC packet locations such that each FEC packet protects D prior data packets in the same column of the L by D matrix as the respective FEC packet.

7. A system according to claim 6 , further comprising:

a packet storage buffer that receives and stores a data packet;

an FEC computation unit that generates a partial FEC packet from the received data packet and a previously generated partial FEC packet;

a partial FEC packet memory that stores the partial FEC packet generated by the FEC computation unit if the partial FEC packet has been generated from less than D number of data packets;

wherein the interface transmits the partial FEC packet as a complete FEC packet if the partial FEC packet has been generated from D number of data packets.

8. A system according to claim 7 , further comprising:

a state machine configured to maintain a period counter that counts from 0 to L−1, an order counter that counts from 0 to D−1, and L number of group counters, one for each FEC group, that counts from 1 to D to indicate number of partial FEC packet computations completed, wherein the state machine increments and sets the value of the counters in accordance with received data packets and the FEC packet locations.

9. A system according to claim 8 , wherein the state machine is configured to check if the value of the group counter for the FEC group associated with the generated partial FEC packet is equal to D,

wherein the interface transmits the partial FEC packet as the complete FEC packet if the state machine determines that the value of the group counter for the FEC group associated with the generated partial FEC packet is equal to D, and

wherein state machine increments by one the group counter for the FEC group associated with the generated partial FEC packet if the value of the group counter for the FEC group associated with the generated partial FEC packet is not equal to D.

10. A system according to claim 6 , wherein the group of IP packets are transmitted in accordance with Pro-MPEG Code of Practice #3, release 2.

11. A system for transmitting a group of IP packets arranged in an L by 0 matrix comprising L×D data packets and L number of FEC packets protecting columns of the matrix, L corresponding to a number of columns in the matrix, and D corresponding to a number rows in the matrix, the system comprising:

means for assigning one FEC packet location in each column of the L by D matrix such that the FEC packet locations are evenly distributed in the L by D matrix in a staggered manner; and

an interface configured to transmit the FEC packets protecting the IP packet group in accordance with the identified FEC packet locations such that each FEC packet protects D prior data packets in the same column of the L by D matrix as the respective FEC packet.

Assignments (9)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 28, 2020
From: PNC BANK, NATIONAL ASSOCIATION, AS EXISTING AGENT
To: BROADCAST LENDCO, LLC, AS SUCCESSOR AGENT
Reel/Frame 052050/0074 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2013
From: HARRIS CORPORATION; EAGLE TECHNOLOGY, LLC
To: HBC SOLUTIONS, INC.
Reel/Frame 030333/0671 →
SECURITY AGREEMENT Recorded Apr 10, 2013
From: HBC SOLUTIONS, INC.
To: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 030192/0355 →
SECURITY AGREEMENT Recorded Apr 5, 2013
From: HB CANADA COMMUNICATIONS LTD
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 030156/0751 →
SECURITY AGREEMENT Recorded Apr 5, 2013
From: HBC SOLUTIONS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 030156/0636 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2013
From: HARRIS CORPORATION; EAGLE TECHNOLOGY INC.
To: HBC SOLUTIONS, INC.
Reel/Frame 029759/0416 →
CORRECTED COVER SHEET TO CORRECT SERIAL NUMBER 11335956 NUMBER SHOULD BE 11355956. PREVIOUSLY RECORDED ON REEL 018727 FRAME 0840. Recorded Jan 29, 2007
From: AASTRA TELECOM U.S., INC.
To: HARRIS CORPORATION
Reel/Frame 018843/0569 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2006
From: AASTRA TECHNOLOGIES LIMITED
To: AASTRA TELECOM U.S., INC.
Reel/Frame 018392/0321 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2006
From: ARNOLD, JAMES Q.; DORAN, ROBERT L.; MCCASKILL, R. SCOTT
To: AASTRA TECHNOLOGIES LIMITED
Reel/Frame 017578/0371 →