Claims
- 1. A splicer for receiving an old bit stream and a new bit stream, producing a varying bit-rate output stream with a splice between the old bit stream and the new bit stream, and providing the output stream to a receiver, the splicer having the improvement comprising:
a bit rate determiner for determining a bit rate for the output stream around the splice such that a buffer in the receiver which receives the output stream will neither overflow nor underflow; and an output controller for providing the output bit stream at the determined bit rate.
- 2. The splicer set forth in claim 1 wherein:
the bit rate determiner does not require any splice parameter in the old bit stream in order to determine the bit rate.
- 3. The splicer set forth in claim 1 wherein the old and new bit streams contain transport elements and components which occupy more than one transport element, the receiver requires complete components, and the splicer further comprises:
a first bit-stream analyzer for reading the old bit stream to obtain first information about the components therein, the output controller responding to the first information by selecting an OUT point at which the output controller ceases outputting the old bit stream to the output stream, the OUT point being at a boundary of a component.
- 4. The splicer set forth in claim 1 wherein:
the splicer further comprises a second bit-stream analyzer for reading the new bit stream to obtain second information about the components therein, the output controller responding to the second information by selecting an IN point in the new bit stream at which the output controller begins outputting the new bit stream to the output stream, the IN point being at a boundary of a component.
- 5. The splicer set forth in claim 3 wherein:
the components are encoded and the receiver includes a decoder for decoding the components; and the output controller further selects the OUT point such that interference by the splice with decoding is minimized.
- 6. The splicer set forth in claim 4 wherein:
the components are encoded and the receiver includes a decoder for the decoding the components; the output controller further selects the IN point such that interference by the splice with decoding is minimized; and the output controller provides the output bit stream such that the splice is done at the OUT point for the old bit stream and the IN point for the new bit stream.
- 7. A splicer for receiving an old bit stream and a new bit stream, each of which includes transport elements and components which occupy more than one tranaport element, producing a output stream with a splice between the old bit stream and the new bit stream, and providing the output stream to a receiver that requires complete components, the splicer having the improvement comprising:
a first bit-stream analyzer for reading the old bit stream to obtain first information about the components therein; a second bit-stream analyzer for reading the new bit stream to obtain second information about the components therein; and an output controller that responds to the first information by selecting an OUT point in the old bit stream and to the second information by selecting an IN point in the new bit stream, the OUT point and the IN point being selected such that they are on boundaries of components, the output controller further providing the output bit stream such that the splice is at the OUT point for the old bit stream and the IN point for the new bit stream.
- 8. The splicer set forth in claim 7 wherein:
the components are encoded and the receiver includes a decoder for decoding the components; and the output controller further responding to the first information and the second information by selecting the OUT point and the IN point such that interference by the splice with the decoding is minimized.
- 9. The splicer set forth in any one of claims 5, 6, or 8 wherein:
the output controller does not require a splice parameter in the old bit stream in order to determine the OUT point.
- 10. The splicer set forth in any one of claims 5, 6, or 8 further comprising:
an output bit-stream modifier responsive to the output controller for altering the output bit stream around the splice to minimize interference by the splice with the decoding.
- 11. The splicer set forth in claim 10 wherein:
the output bit-stream modifier alters the output bit stream around the splice such that a non-seamless splice is invisible to the user of the receiver.
- 12. The splicer set forth in claim 10 wherein:
the old bit stream and the new bit stream include time values; and the output bit-stream modifier alters the time values in the output bit stream so that they are continuous.
- 13. The splicer set forth in any one of claims 5, 6, or 8 wherein:
the output controller selects any of the IN or OUT points such that the splice is seamless.
- 14. The splicer set forth in any one of claims 1 through 6 wherein:
the bit rate determiner repeatedly determines the bit rate of the output bit stream such that the buffer in the receiver will neither overflow nor underflow; and the output controller provides the output stream at the determined rate.
- 15. The splicer set forth in any one of claims 1 through 6 wherein:
the output stream is provided to the receiver via a multiplexer which dynamically allocates bit rates to the bit streams that it multiplexes; the bit rate determiner provides a range of bit rates such that the buffer will neither overflow nor underflow; the output controller provides the range of bit rates to the multiplexer; the multiplexer responds thereto by allocating a bit rate within the range to the output bit stream and indicating the allocated bit rate to the output controller; and the output controller uses the allocated bit rate as the determined bit rate.
- 16. The splicer set forth in claim 5 or 6 wherein:
the bit rate determiner determines the bit rate of the output stream in response to information from the bit-stream analyzer that is reading the old bit stream prior to the splice and to information from the bit stream analyzer that is reading the new bit stream after the splice.
- 17. The splicer set forth in claim 16 wherein:
the bit rate determiner uses the information from the bit stream analyzers in a model of the receiver's buffer.
- 18. The splicer set forth in any one of claims 1 through 8 wherein:
the output controller operates in response to an external splice signal.
- 19. The splicer set forth in any one of claims 1 through 8 wherein:
the output controller operates in response to a splice command in either the old bit stream or the new bit stream.
- 20. The splicer set forth in any one of claims 1 through 8 wherein:
the output controller operates in response to the presence of the new bit stream's beginning in the splicer.
- 21. The splicer set forth in any one of claims 1 through 8 wherein:
the output controller operates in response to the presence of the old bit stream's end in the splicer.
- 22. A splicer for receiving an old MPEG-2 bit stream and a new MPEG-2 bit stream, producing a varying-rate MPEG-2 output stream with a splice between the old bit stream and the new bit stream, and providing the output stream to a receiver with a decoder for MPEG-2 bit streams, the splicer having the improvement comprising:
a bit rate determiner which uses a VBV model of the decoder to determine a bit rate for the output stream around the splice such that the decoder will neither overflow nor underflow; and an output controller for providing the output bit stream at the determined bit rate.
- 23. The splicer set forth in claim 22 wherein:
the bit rate determiner does not require any splice parameter in the old bit stream in order to determine the bit rate.
- 24. The splicer set forth in claim 22 wherein the old and new bit streams contain encoded components that are decoded by the decoder, and the splicer further comprises:
a first bit-stream analyzer for reading the old bit stream to obtain first information about the encoded components therein, the output controller responding to the first information by selecting an OUT point at which the output controller ceases outputting the old bit stream to the output stream, the OUT point being selected such that violation of MPEG-2 syntax or semantics by the splice is minimized.
- 25. The splicer set forth in claim 24 wherein the splicer further comprises:
a second bit-stream analyzer for reading the new bit stream to obtain second information about the encoded components therein, the output controller responding to the second information by selecting an IN point in the new bit stream at which the output controller begins outputting the new bit stream to the output stream, the IN point being selected such that violation of MPEG-2 syntax or semantics by the splice is minimized; and the output controller provides the output bit stream such that the splice is done at the OUT point for the old bit stream and the IN point for the new bit stream.
- 26. A splicer for receiving an old MPEG-2 bit stream and a new MPEG-2 bit stream, each of which includes encoded components, producing an MPEG-2 output stream with a splice between the old bit stream and the new bit stream, and providing the output stream to a receiver that includes a MPEG-2 decoder, the splicer having the improvement comprising:
a first bit-stream analyzer for reading the old bit stream to obtain first information about the encoded components therein; a second bit-stream analyzer for reading the new bit stream to obtain second information about the encoded components therein; and an output controller that responds to the first information by selecting an OUT point in the old bit stream and to the second information by selecting an IN point in the new bit stream, the OUT point and the IN point being selected such that violation of MPEG-2 syntax or semantics by the splice is minimized, the output controller further providing the output bit stream such that the splice is at the OUT point for the old bit stream and the IN point for the new bit stream.
- 27. The splicer set forth in any one of claims 24, 25, or 26 wherein:
the output controller does not require a splice parameter in the old bit stream in order to determine the OUT point.
- 28. The splicer set forth in any one of claims 25 or 26 wherein:
the model uses information from the bit-stream analyzer that is reading the old bit stream prior to the splice and information from the bit stream analyzer that is reading the new bit stream after the splice.
- 29. The splicer set forth in any one of claims 25 or 26 further comprising:
an output bit-stream modifier responsive to either the first or second information for altering the output bit stream around the splice such that the area around the splice does not violate MPEG-2 syntax or semantics.
- 30. The splicer set forth in claim 29 wherein:
the output bit-stream modifier alters the output bit stream around the splice such that a non-seamless splice is invisible to the user of the receiver.
- 31. The splicer set forth in claim 29 wherein:
the old bit stream and the new bit stream include time values; and the output bit-stream modifier alters the time values in the output bit stream so that they are continuous.
- 32. The splicer set forth in claim 31 wherein:
the time values include time stamps in the encoded components.
- 33. The splicer set forth in any one of claims 25 or 26 wherein:
the output controller selects any of the IN or OUT points such that the splice is seamless.
- 34. The splicer set forth in any one of claims 25 or 26 wherein:
the encoded components include pictures; and the output controller selects any IN or OUT point such that the IN or OUT point is at a picture boundary.
- 35. The splicer set forth in claim 34 wherein:
first certain of the pictures are required to decode second certain of the pictures; and the output controller preferentially selects the picture boundary such that no picture on one side of the picture boundary requires a picture on the other side of the picture boundary for decoding.
- 36. The splicer set forth in claim 34 wherein
first certain of the pictures are required to decode second certain of the pictures; and the splicer further comprises: an output bit-stream modifier responsive to the output controller for altering the output bit stream around the splice, the output controller employing the output bit-stream modifier to add synthetic pictures to the output bit stream so that no picture on one side of the splice is required to decode a picture on the other side of the splice.
- 37. The splicer set forth in any one of claims 25 or 26 wherein:
the encoded components include audio frames; and the output controller selects any IN or OUT point such that the IN or OUT point is at an audio frame boundary.
- 38. The splicer set forth in any one of claims 24 or 26 wherein the output bit stream is carried in transport packets and the splicer further comprises:
an output bit-stream modifier responsive to the output controller for altering the output bit stream around the splice, the output controller employing the output bit-stream modifier to add a discontinuity indicator used by the decoder to a transport packet in the output bit stream.
- 39. The splicer set forth in any one of claims 24, 25, or 26 wherein the output bit stream is carried in transport packets and the splicer further comprises:
an output bit-stream modifier responsive to the output controller for altering the output bit stream around the splice, the output controller employing the output bit-stream modifier to insert an additional transport packet into the output bit stream that contains system time clock information used by the decoder.
- 40. The splicer set forth in any one of claims 24, 25, or 26 wherein the output bit stream is carried in transport packets and the splicer further comprises:
an output bit-stream modifier responsive to the output controller for altering the output bit stream around the splice, the output controller employing the output bit-stream modifier to insert an additional transport packet into the output bit stream that contains discontinuity information used by the decoder.
- 41. The splicer set forth in any one of claims 22 through 26 wherein:
the output controller operates in response to an external splice signal received in the splicer.
- 42. The splicer set forth in any one of claims 22 through 26 wherein:
the output controller operates in response to a splice command in either the old bit stream or the new bit stream.
- 43. The splicer set forth in any one of claims 22 through 26 wherein:
the output controller operates in response to the presence of the new bit stream's beginning in the splicer.
- 44. The splicer set forth in any one of claims 22 through 26 wherein:
the output controller operates in response to the presence of the old bit stream's end in the splicer.
- 45. The splicer set forth in any one of claims 22 through 25 wherein:
the output stream is provided to the receiver via a multiplexer which dynamically allocates bit rates to the bit streams that it multiplexes; the bit rate determiner provides a range of bit rates such that the buffer will neither overflow nor underflow; the output controller provides the range of bit rates to the multiplexer; the multiplexer responds thereto by allocating a bit rate within the range to the output bit stream and indicating the allocated bit rate to the output controller; and the output controller uses the allocated bit rate as the determined bit rate.
RELATED PATENT APPLICATION
[0001] The present patent application is a continuation-in-part of U.S. Ser. No. 08/823,007, C. Birch, et al., Using a Receiver Model to Multiplex Variable-Rate Bit Streams Having Timing Constraints, filed Mar. 21, 1997. One of the inventors of U.S. Ser. No. 08/823,007 is an inventor of the present patent application and the assignee of that patent application is the assignee of the present patent application. The present patent application contains the entire Detailed Description of U.S. Ser. No. 08/823,007 together with FIGS. 1, 2, 4-12 of the parent patent application. The new material in the child may be found in the section of the Description of Related Art titled Introduction to Splicing, in the sections of the Detailed Description beginning with the section entitled Using the Principles of the Statistical Multiplexer to Implement a Splicer that can Control the Bit Rate of its Output Bit Stream, and in FIGS. 3, 13-16.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08823007 |
Mar 1997 |
US |
Child |
08927481 |
Sep 1997 |
US |