IP Library Granted Patent US 8,750,315
Granted Patent B2
US 8,750,315 · App. 12/359,255 · Granted Jun 10, 2014

Efficiently storing transport streams

Inventors: Shirish Dandekar (Hopkinton, MA); Craig Frink (Chelmsford, MA); Santosh Krishnan (Windham, NH); Weidong Xu (Westford, MA); Qin-Fan Zhu (Acton, MA)
Assignee: Akamai Technologies, Inc.
H04L65/605H04L12/5694H04L67/2842
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 8,750,315
App. No.
12/359,255
Granted
Jun 10, 2014
Kind
B2
Abstract

Described are computer-based methods and apparatuses, including computer program products, for efficiently storing transport streams. A first sequence of one or more packets associated with the first transport stream is received, the first sequence comprising one or more data packets. A storage packet is generated by selecting one or more packets from the first sequence, the storage packet comprising a packet header and the one or more data packets. One or more null packet insertion locations are identified in a second sequence of one or more packets associated with a second transport stream. Null packet insertion information is generated based on the one or more null packet insertion locations, the information including data indicative of a reconstruction parameter related to reconstructing the second sequence from the storage packet by inserting one or more null packets that are not stored in the storage packet, wherein the packet header includes the null packet insertion information. The storage packet is stored.

Claims (61)

1. A computerized method for storing a first transport stream, the method operable in a computer apparatus having circuitry forming at least one processor and at least one machine-readable storage device holding instructions for execution by the at least one processor, the method comprising:

receiving a first sequence of packets associated with the first transport stream, the first sequence of packets having a network encapsulation and the first sequence of packets comprising a plurality of data packets and at least one null packet;

removing the network encapsulation from the first sequence of packets;

generating a storage packet comprising (i) a plurality of packet headers that include null packet insertion information and boundary information, and (ii) the plurality of data packets from the first sequence of packets, without the at least one null packet;

wherein the null packet insertion information comprises a reconstruction parameter related to the number of null packets that were present in the first sequence of packets when received;

wherein the boundary information comprises information that indicates a boundary of the storage packet;

storing the storage packet across a plurality of storage blocks, the portion of the storage packet in each storage block including one of the plurality of packet headers and at least one of the plurality of data packets.

2. The method of claim 1 , wherein the first sequence of packets is a sequence of transport packets comprising the plurality of data packets and the at least one null packet.

3. The method of claim 1 , further comprising:

generating a second sequence of packets associated with a second transport stream, at least by:

(i) reading the plurality of storage blocks to obtain the storage packet, and

(ii) inserting one or more null packets into the plurality of data packets in the storage packet as indicated by the null packet insertion information;

adding network encapsulation to the second sequence of packets.

4. The method of claim 3 , wherein:

the first transport stream is a constant bit rate stream or a variable bit rate stream; and

the second transport stream is a constant bit rate stream.

5. The method of claim 1 , further comprising:

generating a second sequence of packets associated with a second transport stream, at least by:

(i) reading the plurality of storage blocks to obtain the storage packet, and

(ii) not inserting null packets into the plurality of data packets in the storage packet;

adding network encapsulation to the second sequence of packets.

6. The method of claim 5 , wherein:

the first transport stream is a constant bit rate stream or a variable bit rate stream; and

the second transport stream is a variable bit rate stream.

7. The method of claim 1 , wherein storing comprises storing the storage packet in a persistent memory.

8. The method of claim 1 , wherein the plurality of storage blocks comprise a plurality of fixed-size storage blocks.

9. A system for storing a transport stream, the system comprising:

a data storage device; and

a processor in communication with the data storage device, the processor being configured to:

receive a first sequence of packets associated with a first transport stream, the first sequence of packets having a network encapsulation and the first sequence of packets comprising a plurality of data packets and at least one null packet;

remove the network encapsulation from the first sequence of packets;

generate a storage packet comprising (i) a plurality of packet headers that include null packet insertion information and boundary information, (ii) the plurality of data packets from the first sequence of packets, without the at least one null packet;

wherein the null packet insertion information comprises a reconstruction parameter related to the number of null packets that were present in the first sequence of packets when received;

wherein the boundary information comprises information that indicates a boundary of the storage packet;

store the storage packet across a plurality of storage blocks, the portion of the storage packet in each storage block including one of the plurality of packet headers and at least one of the plurality of data packets.

10. The system of claim 9 , wherein the data storage device comprises a hard drive, a flash memory system, a data buffer, a transient data buffer, a queueing system, or a dynamic random access memory device, or any combination thereof.

11. The system of claim 9 wherein the processor is further configured to:

generate a second sequence of packets associated with a second transport stream, at least by:

(i) reading the plurality of storage blocks to obtain the storage packet, and

(ii) inserting one or more null packets into the plurality of data packets in the storage packet as indicated by the null packet insertion information;

add network encapsulation to the second sequence of packets.

12. The system of claim 9 , wherein the processor is further configured to:

generate a second sequence of packets associated with a second transport stream, at least by:

(i) reading the plurality of storage blocks to obtain the storage packet, and

(ii) not inserting null packets into the plurality of data packets in the storage packet; add network encapsulation to the second sequence of packets.

13. The system of claim 9 , wherein the plurality of storage blocks comprise a plurality of fixed-size storage blocks.

14. A computer program product, embodied in a non-transitory computer readable medium, the computer program product including instructions being operable to cause a data processing apparatus to:

receive a first sequence of packets associated with a first transport stream, the first sequence of packets having a network encapsulation and the first sequence of packets comprising a plurality of data packets and at least one null packet;

remove the network encapsulation from the first sequence of packets;

generate a storage packet comprising (i) a plurality of packet headers that include null packet insertion information and boundary information, (ii) the plurality of data packets from the first sequence of packets, without the at least one null packet;

wherein the null packet insertion information comprises a reconstruction parameter related to the number of null packets that were present in the first sequence of packets when received;

wherein the boundary information comprises information that indicates a boundary of the storage packet;

store the storage packet across a plurality of storage blocks, the portion of the storage packet in each storage block including one of the plurality of packet headers and at least one of the plurality of data packets.

15. The computer program product of claim 14 , wherein the plurality of storage blocks comprise a plurality of fixed-size storage blocks.

16. A system comprising:

means for receiving a first sequence of packets associated with a first transport stream, the first sequence of packets having a network encapsulation and the first sequence of packets comprising a plurality of data packets and at least one null packet;

means for removing the network encapsulation from the first sequence of packets;

means for generating a storage packet comprising (i) a plurality of packet headers that include null packet insertion information and boundary information, (ii) the plurality of data packets from the first sequence of packets, without the at least one null packet;

wherein the null packet insertion information comprises a reconstruction parameter related to the number of null packets that were present in the first sequence of packets when received;

wherein the boundary information comprises information that indicates a boundary of the storage packet;

means for storing the storage packet across a plurality of storage blocks, the portion of the storage packet in each storage block including one of the plurality of packet headers and at least one of the plurality of data packets.

Assignments (2)
MERGER Recorded May 8, 2013
From: VERIVUE, INC.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 030370/0798 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2009
From: DANDEKAR, SHIRISH; FRINK, CRAIG; KRISHNAN, SANTOSH; XU, WEIDONG; ZHU, QIN-FAN
To: VERIVUE, INC.
Reel/Frame 022401/0143 →
Continuity (1)
Related Publication 20100189122A1 · Jul 29, 2010