IP Library Granted Patent US 7,031,306
Granted Patent B2
US 7,031,306 · App. 09/814,453 · Granted Apr 18, 2006

Transmitting MPEG data packets received from a non-constant delay network

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,031,306
App. No.
09/814,453
Granted
Apr 18, 2006
Kind
B2
Abstract

Transmitting data packets received from a non-constant delay medium includes storing the data packets in a buffer, determining a play-out schedule for the data packets based on timing information in the data packets, and transmitting the data packets from the buffer in accordance with the play-out schedule. Two of the data packets may contain time-stamps and the play-out schedule may be determined based on a difference between the time-stamps.

Claims (52)

1. A method of transmitting data packets received from a source via a non-constant delay medium, the non-constant delay medium introducing jitter into the data packets, the method comprising:

storing the data packets in a buffer, the data packets being part of a single transport stream that by definition includes first and second data packets that contain time stamps and plural data packets between the first and second data packets that do not contain time stamps;

determining a play-out schedule for the data packets based on the time stamps and an amount of data in the data packets, wherein the play-out schedule is determined without altering the time stamps;

transmitting the data packets from the buffer in accordance with the play-out schedule, wherein the plural data packets are transmitted at a different rate than the first and second data packets in order to reduce the jitter; and

implementing a clock synchronization process that uses the time stamps to synchronize play-out of the data packets to a clock of the source.

2. The method of claim 1 , wherein the play-out schedule is determined based on a difference between time-stamps in the first and second data packets.

3. The method of claim 2 , wherein the play-out schedule controls play-out of the first and second data packets at times that correspond to the time-stamps.

4. The method of claim 2 , wherein plural data packets that do not contain time-stamps are transmitted between the first and second data packets such that a delay exists between the second data packet and a last one of the plural data packets.

5. The method of claim 1 , wherein the plural data packets are transmitted at a higher rate than the first and second data packets.

6. The method of claim 1 , further comprising:

identifying the transport stream;

wherein the play-out schedule is also determined based on the identified transport stream.

7. The method of claim 6 , wherein the transport stream is identified based on a packet identifier in at least one of the first and second data packets.

8. The method of claim 7 , wherein the transport stream comprises an MPEG (Motion Picture Experts Group) program stream that includes audio and video information.

9. The method of claim 1 , further comprising:

storing data packets for a second transport stream in the buffer;

wherein, if the play-out schedule indicates that first or second data packets are to be transmitted at the same time as a third data packet in the second transport stream, the method further comprises:

changing timing information in the third data packet to indicate that the third data packet is to be transmitted after the first or second data packet.

10. The method of claim 9 , further comprising changing timing information in other packets in the second transport stream.

11. The method of claim 1 , further comprising:

determining an occupancy level of the buffer; and

changing a frequency of a clock signal used for play-out based on the occupancy level of the buffer.

12. The method of claim 11 , wherein the frequency of the clock signal is changed so that the frequency corresponds to the frequency of the clock of the source that was used to produce the data packets.

13. An apparatus for transmitting data packets received from a source via a non-constant delay medium, the non-constant delay medium introducing jitter into the data packets, the apparatus comprising:

a buffer to store the data packets, the data packets being part of a single transport stream that by definition includes first and second data packets that contain time stamps and plural data packets between the first and second data packets that do not contain time stamps;

a scheduler to determine a play-out schedule for the data packets based on the time stamps and an amount of data in the data packets, wherein the play-out schedule is determined without altering the time stamps;

an interface to transmit the data packets from the buffer in accordance with the play-out schedule, wherein the plural data packets are transmitted at a different rate than the first and second data packets in order to reduce the jitter; and

circuitry to implement a clock synchronization process that uses the time stamps to synchronize play-out of the data packets to a clock of the source.

14. The apparatus of claim 13 , wherein the play-out schedule is determined based on a difference between the time-stamps in the first and second data packets.

15. The apparatus of claim 14 , wherein the play-out schedule controls play-out of the first and second data packets at times that correspond to the time-stamps.

16. The apparatus of claim 14 , wherein the plural data packets that do not contain time-stamps are transmitted between the first and second two data packets such that a delay exists between the second data packet and a last one of the plural data packets.

17. The apparatus of claim 13 , wherein the plural data packets are transmitted at a higher rate than the first and second data packets.

18. The apparatus of claim 13 , further comprising:

a classification engine which identifies the transport stream

wherein the scheduler determines the play-out schedule also based on the identified transport stream.

19. The apparatus of claim 18 , wherein the transport stream is identified based on a packet identifier in the first and second data packets.

20. The apparatus of claim 19 , wherein the transport stream comprises an MPEG (Motion Picture Experts Group) program stream that includes audio and video information.

21. The apparatus of claim 13 , wherein data packets for a second transport stream are stored in the buffer; and

if the play-out schedule indicates that first or second data packets are to be transmitted at the same time as a third data packet in the second transport stream, the scheduler changes timing information in the third data packet to indicate that the third data packet is to be transmitted after the first or second data packet.

22. The apparatus of claim 21 , wherein the scheduler changes timing information in other packets in the second transport stream.

23. The apparatus of claim 13 , further comprising a processor that determines an occupancy level of the buffer and that changes a frequency of a clock signal used for play-out based on the occupancy level of the buffer.

24. The apparatus of claim 23 , wherein the frequency of the clock signal is changed so that the frequency corresponds to the frequency of the clock signal that was used by the source to produce the data packets.

25. An apparatus for transmitting data packets received from a source via a non-constant delay medium, the non-constant delay medium introducing jitter into the data packets, the apparatus comprising:

means for storing the data packets in a buffer, the data packets being part of a single transport stream that by definition includes first and second data packets that contain time stamps and plural data packets between the first and second data packets that do not contain time stamps;

means for determining a play-out schedule for the data packets based on the time stamps and an amount of data in the data packets, wherein the play-out schedule is determined without altering the time stamps;

means for transmitting the data packets from the buffer in accordance with the play-out schedule, wherein the plural data packets are transmitted at a different rate than the first and second data packets in order to reduce the jitter; and

means for implementing a clock synchronization process that uses the time stamps to synchronize play-out of the data packets to a clock of the source.

26. A computer program stored on a computer-readable medium for transmitting data packets received from a source via a non-constant delay medium, the non-constant delay medium introducing jitter into the data packets, the computer program comprising instructions that cause a machine to:

store the data packets in a buffer, the data packets being part of a single transport stream that by definition includes first and second data packets that contain time stamps and plural data packets between the first and second data packets that do not contain time stamps;

determine a play-out schedule for the data packets based on the time stamps and an amount of data in the data packets, wherein the play-out schedule is determined without altering the time stamps;

transmit the data packets from the buffer in accordance with the play-out schedule, wherein the plural data packets are transmitted at a different rate than the first and second data packets in order to reduce the jitter; and

implement a clock synchronization process that uses the time stamps to synchronize play-out of the data packets to a clock of the source.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2017
From: IPITEK, INC.
To: SOFTWARE DEFINED TECHNOLOGIES, INC.
Reel/Frame 042753/0583 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2012
From: IPICOM, INC.
To: IPITEK, INC.
Reel/Frame 027944/0800 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2006
From: LETRA CORPORATION (FORMERLY ARTEL VIDEO SYSTEMS, INC.)
To: IPICOM, INC. D.B.A. IPITEK
Reel/Frame 017335/0886 →
SECURITY AGREEMENT Recorded Apr 5, 2002
From: ARTEL VIDEO SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 012762/0358 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2001
From: AMARAL, JOHN M.; DAVIS, DAVID R.; CHIN, EDMUND P.; VINCENT, JOHN M.; HEALEY, MICHAEL P.; LANDRUM, JEFFREY C.
To: ARTEL VIDEO SYSTEMS, INC.
Reel/Frame 011635/0861 →