Remultiplexer for video program bearing transport streams with program clock reference time stamp adjustment
First Claim
1. A method for remultiplexing one or more transport streams formed from a sequence of transport packets, including transport packets containing compressed program data for each of one or more programs and, for each program, program clock reference time stamps, to which decoding and presentation of said program is synchronized, said method comprising the steps of:
- (a) providing one or more transport streams,(b) selecting one or more transport packets of said one or more transport streams for output in a remultiplexed transport stream,(c) scheduling some of said transport packets for output in a time slot of an outputted transport stream depending on a predetermined delay, each of said time slots occurring approximately at a dispatch time as indicated by a local clock,(d) adjusting each program clock reference time stamp of each scheduled program clock reference bearing transport packet based on a drift between said local clock and a program system time clock from which said program clock reference time stamp was generated, if any, and(e) further adjusting each adjusted program clock reference time stamp based on a difference between said dispatch time of said time slot in which said program clock reference time stamp bearing transport packet is scheduled to be outputted and an actual time at which said time slot occurs relative to an external clock.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and system are provided for remultiplexing program bearing data. The remultiplexing method and system are applicable to MPEG-2 compliant transport streams carrying video programs. A descriptor based system is used for scheduling the timely output of transport packets wherein each descriptor records a dispatch time as well as a receipt time for each transport packet. The receipt time is used for estimating program clock reference adjustments, but final program clock reference adjustment is performed in hardware in relation to the precise output timing of each transport packets. A descriptor and transport packet caching technique is used for decoupling the synchronous receipt and transmission of transport packets from any asynchronous processing performed thereon. The descriptors can also be used for managing scrambling and descrambling control words (encryption and decryption keys). Remultiplexing functions may be distributed across a network. The remultiplexer can furthermore optimize the bandwidth of transport streams by replacing null transport packets with transport packet data to be inserted into the output transport stream. Program data transmitted via asynchronous communication links is re-timed and assistance is provided for outputting program data on such asynchronous communication links to reduce a variation in end-to-end delay incurred by the program data. Remultiplexing and program specific information can be seamlessly dynamically varied without stopping, or introducing a discontinuity in, the flow of outputted transport packets. A technique is also provided for locking multiple internal reference clock generators.
185 Citations
6 Claims
-
1. A method for remultiplexing one or more transport streams formed from a sequence of transport packets, including transport packets containing compressed program data for each of one or more programs and, for each program, program clock reference time stamps, to which decoding and presentation of said program is synchronized, said method comprising the steps of:
-
(a) providing one or more transport streams, (b) selecting one or more transport packets of said one or more transport streams for output in a remultiplexed transport stream, (c) scheduling some of said transport packets for output in a time slot of an outputted transport stream depending on a predetermined delay, each of said time slots occurring approximately at a dispatch time as indicated by a local clock, (d) adjusting each program clock reference time stamp of each scheduled program clock reference bearing transport packet based on a drift between said local clock and a program system time clock from which said program clock reference time stamp was generated, if any, and (e) further adjusting each adjusted program clock reference time stamp based on a difference between said dispatch time of said time slot in which said program clock reference time stamp bearing transport packet is scheduled to be outputted and an actual time at which said time slot occurs relative to an external clock. - View Dependent Claims (2)
-
-
3. A remultiplexer for remultiplexing one or more transport streams formed from a sequence of transport packets, including transport packets containing compressed program data for each of one or more programs and, for each program, program clock reference time stamps, to which decoding and presentation of said program is synchronized, said method comprising:
-
a local clock, a processor responsive to said local clock for selecting one or more transport packets of one or more transport streams for output in a remultiplexed transport stream, for scheduling some of said transport packets for output in a time slot of an outputted transport stream depending on a predetermined delay, each of said time slots occurring approximately at a dispatch time as indicated by said local clock, for adjusting each of program clock reference time stamp in each scheduled program clock reference time stamp bearing transport packet depending on a drift between said local clock and a program system time clock from which said program clock reference time stamp was generated, if any, and an output data link control circuit responsive to transport packets scheduled by said processor for further adjusting each adjusted program clock reference time stamp based on a difference between said dispatch time of said time slot in which said program clock reference time stamp bearing transport packet is scheduled to be outputted and an actual time at which said time slot occurs relative to an external clock. - View Dependent Claims (4)
-
-
5. A bit stream formed from a sequence of transport packets, including transport packets containing compressed program data for each of one or more programs and, for each program, program clock reference time stamps, to which decoding and presentation of said program is synchronized, said bit stream being produced by the steps of:
-
(a) providing one or more transport streams, (b) selecting one or more transport packets of said one or more transport streams for output in a remultiplexed transport stream, (c) scheduling some of said transport packets for output in a time slot of an outputted transport stream depending on a predetermined delay, each of said time slots occurring approximately at a dispatch time as indicated by a local clock, (d) adjusting each program clock reference time stamp of each scheduled program clock reference bearing transport packet based on a drift between said local clock and a program system time clock from which said program clock reference time stamp was generated, if any, and (e) further adjusting each adjusted program clock reference time stamp based on a difference between said dispatch time of said time slot in which said program clock reference time stamp bearing transport packet is scheduled to be outputted and an actual time at which said time slot occurs relative to an external clock. - View Dependent Claims (6)
-
Specification