Adaptive rate control for insertion of data into arbitrary bit rate data streams
First Claim
1. A method for adaptively controlling the rate of data insertion into an outgoing bit stream, comprising the steps of:
- determining an available capacity for insertion of said data into said outgoing bit stream;
determining a desired insertion rate of said data into said outgoing bit stream;
determining an actual insertion rate of said data into said outgoing bit stream, wherein said actual insertion rate is based on said available capacity for insertion and said desired insertion rate; and
inserting said data into said outgoing bit stream at said actual insertion rate.
3 Assignments
0 Petitions
Accused Products
Abstract
The rate of insertion of data, such as MPEG table packets, into an outgoing bit stream is varied by a packet handler. The packet handler, which is located in a modulator in a cable television system headend, comprises control logic and a packet router. The actual insertion rate of the outgoing data is based on the bit stream'"'"'s available capacity for insertion of data and the desired insertion rate of the data. When the available capacity for insertion equals or exceeds the desired insertion rate, the actual insertion rate equals the desired insertion rate. When the available capacity for insertion is less than the desired insertion rate, the actual insertion rate is reduced from the desired insertion rate. The present invention dynamically determines the available capacity for insertion and adjusts the actual insertion rate.
211 Citations
35 Claims
-
1. A method for adaptively controlling the rate of data insertion into an outgoing bit stream, comprising the steps of:
-
determining an available capacity for insertion of said data into said outgoing bit stream;
determining a desired insertion rate of said data into said outgoing bit stream;
determining an actual insertion rate of said data into said outgoing bit stream, wherein said actual insertion rate is based on said available capacity for insertion and said desired insertion rate; and
inserting said data into said outgoing bit stream at said actual insertion rate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
receiving an incoming bit stream into an input buffer, said incoming bit stream including overhead and content;
de-multiplexing said incoming bit stream to separate said overhead and said content;
determining an input buffer capacity of said input buffer;
determining a rate of said de-multiplexing; and
ascertaining said available capacity for insertion based on said input buffer capacity of said input buffer and said rate of said de-multiplexing.
-
-
3. The method of claim 2, wherein said content is selected from a group comprising video packets, audio packets, and data packets.
-
4. The method of claim 1, wherein determining said available capacity for insertion comprises the steps of:
-
receiving an incoming bit stream including overhead and content;
de-multiplexing said incoming bit stream to separate said overhead and said content;
deleting at least a portion of said overhead;
determining an unused capacity in said incoming bit stream after deleting said at least a portion of said overhead; and
ascertaining said available capacity for insertion based on said unused capacity.
-
-
5. The method of claim 4, wherein said content is selected from a group comprising video packets, audio packets, and data packets.
-
6. The method of claim 1, wherein determining said actual insertion rate comprises the steps of:
-
setting said actual insertion rate equal to said desired insertion rate when said desired insertion rate is less than or equal to said available capacity for insertion; and
reducing said actual insertion rate to equal said available capacity when said desired insertion rate is greater than said available capacity for insertion.
-
-
7. The method of claim 1, wherein determining said actual insertion rate comprises the steps of:
-
establishing a set insertion time for said data;
determining if said data can be inserted in said outgoing bit stream at said set insertion time;
setting said actual insertion rate equal to said desired insertion rate when said data can be inserted at said set insertion time; and
reducing said actual insertion rate when said set insertion time is unavailable.
-
-
8. The method of claim 7, wherein determining if a said data can be inserted in said outgoing bit stream at said set insertion time comprises the steps of:
-
establishing a plurality of said set insertion times;
establishing an actual insertion time when said data can be inserted in said outgoing bit stream, wherein said actual insertion time is;
equal to a first said set insertion time when insertion is enabled at said first set insertion time, equal to an enabled time when said insertion is enabled after said first set insertion time and before a second said set insertion time, canceled when insertion is enabled after said second set insertion time; and
determining a new insertion rate when said actual insertion time is delayed past a second said set insertion time.
-
-
9. The method of claim 1, wherein said data comprises a plurality of data types, each of said data types having a desired data type insertion rate, and wherein, when said available capacity is less than said desired insertion rate, calculating said actual insertion rate based on a proportional reduction of each of said desired data type insertion rates, whereby said actual insertion rate is less than or equal to said available capacity.
-
10. The method of claim 1, wherein said data comprises a plurality of data types, each of said data types having a desired data type insertion rate, and wherein, when said available capacity is less than said desired insertion rate, calculating said actual insertion rate based on a reduction of the highest of said desired data type insertion rates, whereby said actual insertion rate is less than or equal to said available capacity.
-
11. A method for adaptively controlling the rate of outgoing MPEG table packet insertion into an outgoing MPEG bit stream, comprising the steps of:
-
receiving an incoming MPEG bit stream into an input buffer;
de-multiplexing said incoming MPEG bit stream;
determining available capacity for insertion into said outgoing MPEG bit stream;
determining a desired rate of insertion of said outgoing MPEG table packets into said outgoing MPEG bit stream;
determining an actual rate of insertion of said outgoing MPEG table packets into said outgoing MPEG bit stream based on said available capacity and said desired rate;
creating said outgoing MPEG table packets; and
inserting said outgoing MPEG table packets into said outgoing MPEG bit stream at said actual rate of insertion, wherein said outgoing MPEG bit stream includes at least a portion of said incoming MPEG bit stream. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
determining an input buffer capacity in said input buffer;
determining a rate of said de-multiplexing; and
ascertaining said available capacity for insertion based on said input buffer capacity in said input buffer and said rate of said de-multiplexing.
-
-
14. The method of claim 11, wherein determining said available capacity for insertion comprises the steps of:
-
deleting at least a portion of said incoming MPEG bit stream;
determining an unused capacity in said incoming MPEG bit stream after deleting at least a portion of said incoming MPEG bit stream; and
ascertaining said available capacity for insertion based on said unused capacity.
-
-
15. The method of claim 14, wherein deleting at least a portion of said incoming MPEG bit stream comprises the step of deleting at least a portion of stuffing packets, at least a portion of said other information, and at least a portion of incoming MPEG table packets.
-
16. The method of claim 11, wherein said determining an actual rate of insertion of said outgoing MPEG table packets into an outgoing MPEG bit stream comprises the steps of:
-
setting said actual insertion rate equal to said desired insertion rate when said desired insertion rate is less than or equal to said available capacity for insertion; and
reducing said actual rate of insertion when said desired insertion rate is greater than said available capacity for insertion.
-
-
17. The method of claim 11, wherein determining said actual rate of insertion of said outgoing MPEG table packets into an outgoing MPEG bit stream comprises the steps of:
-
establishing a set insertion time for each of said outgoing MPEG table packets;
determining if a said outgoing MPEG table packet can be inserted in said outgoing MPEG bit stream at said set insertion time; and
ascertaining an actual rate of insertion of said outgoing MPEG table packets into said outgoing MPEG bit stream, such that when said outgoing MPEG packet can be inserted at said set insertion time, said actual rate of insertion equals said desired rate of insertion, and when said insertion time is unavailable, reducing said actual rate of insertion.
-
-
18. The method of claim 17, wherein determining if a said outgoing MPEG table packet can be inserted in said outgoing MPEG bit stream at said set insertion time comprises the steps of:
-
establishing a plurality of said set insertion times for inserting a plurality of each of said outgoing MPEG table packet;
establishing an actual insertion time when said outgoing MPEG table packet can be inserted in said outgoing bit stream, wherein said actual insertion time is;
equal to a first said set insertion time when insertion is enabled at said first set insertion time, equal to an enabled time when said insertion is enabled after said first set insertion time and before a second said set time, canceled when insertion is enabled after said second set insertion time; and
determining a new insertion rate when said actual insertion time is delayed past a second said set insertion time.
-
-
19. The method of claim 11, wherein said outgoing MPEG table packets comprise a plurality of table types, each of said table types having a desired table type insertion rate, and wherein, when said available capacity is less than said desired insertion rate, calculating said actual insertion rate based on a proportional reduction of each of said desired table type insertion rates, whereby said actual insertion rate is less than or equal to said available capacity.
-
20. The method of claim 11, wherein said MPEG table packets comprise a plurality of table types, each of said table types having a desired table type insertion rate, and wherein, when said available capacity is less than said desired insertion rate, calculating said actual insertion rate based on a reduction of the highest of said desired table type insertion rates, whereby said actual insertion rate is less than or equal to said available capacity.
-
21. The method of claim 11, wherein said creating said MPEG table packets includes information specific to said outgoing MPEG bit stream and at least a portion of incoming MPEG table information, wherein said incoming MPEG table information is created from incoming MPEG table packets in said incoming MPEG bit stream.
-
22. A method for adaptively controlling the rate of insertion of outgoing MPEG table packets into an outgoing MPEG bit stream, comprising the steps of:
-
receiving an incoming MPEG bit stream, said incoming MPEG bit stream including video packets, audio packets, data packets, incoming MPEG table packets, and information specific to said incoming MPEG bit stream;
de-multiplexing said incoming MPEG bit stream to separate said video packets, said audio packets, said data packets, said incoming MPEG table packets, and said information specific to said incoming MPEG bit stream;
analyzing said incoming MPEG table packets to produce incoming MPEG table information;
determining a desired rate of insertion of said outgoing MPEG table packets into said outgoing MPEG bit stream;
establishing an initial set insertion time for each of said outgoing MPEG table packets, based on said desired rate of insertion;
determining if a said outgoing MPEG packet can be inserted in said outgoing MPEG bit stream at said initial set insertion time;
determining an actual rate of insertion of said outgoing MPEG table packets into said outgoing MPEG bit stream, such that when said outgoing MPEG packet can be inserted at said initial set insertion time, said actual rate of insertion equals said desired rate of insertion, and when said outgoing MPEG packet cannot be inserted at said initial set insertion time, reducing said actual rate of insertion;
establishing an actual set insertion time for each of said outgoing MPEG table packets, based on said actual rate of insertion;
creating, based on said actual set insertion time, said outgoing MPEG table packets, said outgoing MPEG table packets including at least a portion of said incoming MPEG table information and information specific to said outgoing MPEG bit stream; and
inserting said outgoing MPEG table packets into said outgoing MPEG bit stream containing said video packets, said audio packets, and said data packets. - View Dependent Claims (23, 24, 25)
establishing a plurality of said set insertion times for inserting a plurality of said outgoing MPEG table packet;
establishing an actual insertion time when said outgoing MPEG table packet can be inserted in said outgoing bit stream, wherein said actual insertion time is;
equal to a first said set insertion time when insertion is enabled at said first set insertion time, equal to an enabled time when said insertion is enabled after said first set insertion time and before a second said set time, canceled when insertion is enabled after said second set insertion time; and
determining a new insertion rate when said actual insertion time is delayed past a second said set insertion time.
-
-
24. The method of claim 22, wherein determining said actual rate of insertion of said outgoing MPEG table packets into an outgoing MPEG bit stream further comprises the step of:
wherein said outgoing MPEG table packets comprise a plurality of table types, each of said table types having a desired table type insertion rate, and wherein, when said outgoing MPEG packet cannot be inserted at said initial set insertion time, calculating said actual insertion rate is based on a proportional reduction of each of said desired table type insertion rates.
-
25. The method of claim 22, wherein determining said actual rate of insertion of said outgoing MPEG table packets into an outgoing MPEG bit stream further comprises the step of:
wherein said outgoing MPEG table packets comprise a plurality of table types, each of said table types having a desired table type insertion rate, and wherein, when said outgoing MPEG packet cannot be inserted at said initial set insertion time, calculating said actual insertion rate is based on a reduction of the highest of said desired table type insertion rates.
-
26. An apparatus for adaptively controlling the rate of insertion of outgoing MPEG table packets into an outgoing MPEG bit stream, comprising:
-
an input buffer for receiving an incoming MPEG bit stream;
an output buffer for buffering said outgoing MPEG bit stream; and
a packet handler operative to determine and adjust said rate of insertion of said outgoing MPEG table packets into said outgoing MPEG bit stream, route MPEG packets from said input buffer to said output buffer to form said outgoing MPEG bit stream, and insert said outgoing MPEG table packets into said outgoing MPEG bit stream at said insertion rate. - View Dependent Claims (27, 28, 29, 30, 31)
a packet router for routing said MPEG packets and for insert said outgoing MPEG table packets; and
control logic for creating said outgoing MPEG table packets.
-
-
28. The apparatus of claim 27, wherein said packet router comprises:
-
a de-multiplexer for de-multiplexing said incoming MPEG bit stream;
means for extracting incoming MPEG table information from incoming MPEG table packets in said incoming MPEG bit stream;
packet router logic operative to determine an available capacity for insertion of said outgoing MPEG bit stream; and
a multiplexer for inserting said MPEG table packets into said outgoing MPEG bit stream and sending said outgoing MPEG bit stream to said output buffer.
-
-
29. The apparatus of claim 27, wherein said control logic comprises:
-
means for determining a desired rate of insertion of said MPEG table packets into said outgoing MPEG bit stream and to allow system specific information for said outgoing MPEG bit stream to be input; and
means for determining an actual rate of insertion of said outgoing MPEG table packets into said outgoing MPEG bit stream, based on an available capacity and said desired rate, and for creating said outgoing MPEG table packets based on said incoming MPEG table information and system specific information for said outgoing MPEG bit stream.
-
-
30. The apparatus of claim 26, wherein said outgoing MPEG table packets comprise a plurality of table types, each of said table types having a actual table type insertion rate, wherein said packet handler is operative to adjust an insertion rate of said outgoing MPEG table packets into said outgoing MPEG bit stream by proportionally reducing each of said actual table type insertion rates.
-
31. The apparatus of claim 26, wherein said outgoing MPEG table packets comprise a plurality of table types, each of said table types having a actual table type insertion rate, wherein said packet handler is operative to adjust an insertion rate of said outgoing MPEG table packets into said outgoing MPEG bit stream by first reducing the highest of said actual table type insertion rates.
-
32. A system for adaptively controlling the rate of insertion of data into an outgoing bit stream based on an available capacity for insertion, comprising:
-
an input source for providing a signal;
equipment for encoding the signal into a bit stream;
means for determining an available capacity for insertion of said data into said bit stream means for determining a desired insertion rate of said data;
means for varying the actual insertion rate of said data, based on said available capacity for insertion of said data into said bit stream and said desired insertion rate of said data;
a distribution system for transmitting said bit stream; and
equipment for decoding said bit stream into a form usable by a system subscriber. - View Dependent Claims (33, 34, 35)
determine an available capacity for insertion of said data into said bit stream; determine a desired insertion rate of said data; and
vary the actual insertion rate of said data, based on said available capacity for insertion of said data into said bit stream and said desired insertion rate of said data.
-
-
34. The system of claim 32, wherein said distribution system for transmitting said bit stream is operative to,
determine an available capacity for insertion of said data into said bit stream; -
determine a desired insertion rate of said data; and
vary the actual insertion rate of said data, based on said available capacity for insertion of said data into said bit stream and said desired insertion rate of said data.
-
-
35. The system of claim 32, wherein said equipment for decoding said bit stream into a form usable by a system subscriber is operative to,
determine an available capacity for insertion of said data into said bit stream; -
determine a desired insertion rate of said data; and
vary the actual insertion rate of said data, based on said available capacity for insertion of said data into said bit stream and said desired insertion rate of said data.
-
Specification