Brandwidth optimization of video program bearing transport streams
First Claim
1. A method for optimizing the bandwidth of a transport stream comprising the steps of:
- (a) receiving a transport stream having a given bit rate, said transport stream including variably compressed program data bring transport packets and one or more null transport packets, each of said null transport packets occupying a time period of said received transport stream to maintain said given bit rate of said transport stream in lieu of compressed program data bearing transport packets, (b) selectively replacing one or more of said null transport packets with another to-be-remultiplexed non-null data bearing transport packet, and (c) independently of determining an amount of information carried by program data bearing transport packets from time to time in said received transport stream, scheduling at least one selected program data bearing transport packet for output in an output remultiplexed bitstream said scheduling being performed to transmit said program data at said given bit rate for proper receipt and decoding.
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.
-
Citations
25 Claims
-
1. A method for optimizing the bandwidth of a transport stream comprising the steps of:
-
(a) receiving a transport stream having a given bit rate, said transport stream including variably compressed program data bring transport packets and one or more null transport packets, each of said null transport packets occupying a time period of said received transport stream to maintain said given bit rate of said transport stream in lieu of compressed program data bearing transport packets, (b) selectively replacing one or more of said null transport packets with another to-be-remultiplexed non-null data bearing transport packet, and (c) independently of determining an amount of information carried by program data bearing transport packets from time to time in said received transport stream, scheduling at least one selected program data bearing transport packet for output in an output remultiplexed bitstream said scheduling being performed to transmit said program data at said given bit rate for proper receipt and decoding. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
(d) scheduling selected ones of said transport packets containing non-null data for output in an outputted transport stream, and (e) discarding at least one of said received null transport packets and scheduling said to-be-remultiplexed non-null data bearing transport packet for output in said outputted transport stream in lieu of said at least one discarded null transport packet.
-
-
6. The method of claim 5 further comprising the steps of:
-
(f) at each time period of said outputted transport stream for which a corresponding one of said stored transport packets is scheduled outputting said corresponding stored transport packet scheduled for said time period, and (g) if no transport packet is scheduled for output at one of said time periods, outputting a null transport packet, wherein said null transport packets of said outputted transport stream occupy less bandwidth of said outputted transport stream than said null transport packets occupy in each transport stream received in step (a).
-
-
7. The method of claim 1 further comprising the step of:
(d) independently of determining said given bit rate of said transport packets, scheduling at least one selected program data bearing transport packet for output in an output remultiplexed bitstream, said scheduling being performed to transmit said program data at said given bit rate for proper receipt and decoding.
-
8. The method of claim 7 wherein said given bit rate is constant only between pairs of program clock reference values of said program.
-
9. The method of claim 1 further comprising the step of:
(d) independently of determining a precise time at which a program clock reference is received in at least a selected one of said program data bearing transport packets, scheduling said selected program data bearing transport packet for output in an output remultiplexed bitstream, said scheduling being performed to transmit said program clock reference value with said output remultiplexed transport stream for receipt for decoding at a correct time relative to other data bearing transport packets of said program.
-
10. A remultiplexer for optimizing the bandwidth of a transport stream comprising:
-
a first interface for receiving a transport stream having a given bit rate, said transport stream including variably compressed program data bearing transport packets and one or more null transport packets, each of said null transport packets occupying a time period of said received transport stream to maintain said given bit rate of said transport stream in lieu of compressed program data bearing transport packets, and a processor for selectively replacing one or more of said null transport packets with another to be-remutiplexed non-null data bearing transport packets, wherein said processor is also for, independently of determining an amount of information carried by program data bearing transport packets from time to time in said received transport stream, scheduling at least one selected program data bearing transport packet for output in an output remultiplexed bit stream, said scheduling being performed to transmit said program data at said given bit rate for proper receipt and decoding. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A bandwidth optimized transport stream produced by the steps of:
-
(a) receiving a transport stream having a given bit rate, said transport steam including variably compressed program data bearing transport packets and one or more null transport packets, each of said null transport packets occupying a time period of said received transport stream to maintain said predetermined bit rate of said transport stream in lieu of compressed program data bearing transport packets, (b) selectively replacing one or more of said null transport packets with another to-be-remultiplexed non-null data bearing transport packet, and (c) independently of determining an amount of information carried by program data bearing transport packets from time to time in said received transport stream, scheduling at least one selected program data bearing transport packet for output in an output remultiplexed bitstream, said scheduling being performed to transmit said program data at said given bit rate for proper receipt and decoding. - View Dependent Claims (20, 21, 22, 23, 24, 25)
(d) scheduling selected ones of said transport packets containing non-null data for output in an outputted transport stream, and (e) discarding at least one of said received null transport packets and scheduling said to-be-remultiplexed non-null data bearing transport packet for output in said outputted transport stream in lieu of said at least one discarded null transport packet.
-
-
21. The bandwidth optimized transport stream of claim 20 produced by the further steps of:
-
(f) at each time period of said outputted transport stream for which a corresponding one of said stored transport packets is scheduled, outputting said corresponding stored transport packet scheduled for said the period, and (g) if no transport packet is scheduled for output at one of said time periods, outputting a null transport packet, wherein said null transport packets of said outputted transport stream occupy less bandwidth of said outputted transport stream than said null transport packets occupy in each transport stream received in step (a).
-
-
22. The bandwidth optimized transport stream of claim 19 wherein said step (b) further comprises the step of selectively assigning data bearing transport packets to time periods of said outputted transport stream so as to regulate a transmission bit rate of said data bearing transport packets to a receiver buffer.
-
23. The bandwidth optimized transport stream of claim 19 produced by the further step of:
(d) independently of determining said given bit rate of said transport packets, scheduling at least one selected program data bearing transport packet for output in an output remultiplexed bitstream, said scheduling being performed to transmit said program data at said given bit rate for proper receipt and decoding.
-
24. The bandwidth optimized transport stream of claim 23 wherein said given bit rate is constant only between pairs of program clock reference values of said program.
-
25. The bandwidth optimized transport stream of claim 19 produced by the further step of:
(d) independently of determining a precise time at which a program clock reference is received in at least a selected one of said program data bearing transport packets, scheduling said selected program data bearing transport packet for output in an output remultiplexed bitstream said scheduling being performed to transmit said program clock reference value with said output remultiplexed transport stream for receipt for decoding at a correct time relative to other data bearing transport packets of said program.
Specification