Efficient software bitstream rate generator for video server
First Claim
Patent Images
1. A method of processing data streams, comprising:
- receiving a plurality of data streams having a plurality of bit rates and comprising packets of data, each of the plurality of data streams comprising only a constant bit rate;
determining a bit rate associated with each packet of data of the plurality of data streams;
providing a priority queue including a plurality of queues in memory for queuing the received plurality of data streams, each queue in the priority queue being associated with a single data stream, each of the queues in the priority queue having a stream deadline element associated therewith, wherein each stream deadline element has a stream identifier for identifying a data stream in the queue corresponding to the stream deadline element and a deadline key for identifying a deadline based on the determined bit rate associated with packets of the identified data stream for forwarding packets associated with the steam deadline element;
arranging in priority order the queues in the priority queue holding content streams from a highest priority queue to a lowest priority queue based on the deadline keys in each of the plurality of queues;
retrieving, from the highest priority queue in the priority queue, a stream deadline element including a respective stream deadline key and a stream identifier identifying the data stream associated with highest priority queue;
examining a deadline identified by the deadline key from the retrieved stream deadline element of the highest priority queue to determine whether the deadline associated with the highest priority queue has expired; and
transmitting at least one packet in the highest priority queue associated with the data stream identified by the stream identifier only when the deadline has expired;
wherein data streams having a relatively low bit rate according to the deadline identified by the deadline keys are processed less frequently than data streams having a relatively high bit rate according to the deadline identified by the deadline keys and wherein the examining the deadline identified by the deadline key from the retrieved stream deadline element of the highest priority queue enables the plurality of data streams to be transmitted at different rates based on the bit rate of each data stream.
4 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and a method for constraining the delivery rate of a plurality of bitstreams, such as MPEG bitstreams using a single software process.
-
Citations
13 Claims
-
1. A method of processing data streams, comprising:
-
receiving a plurality of data streams having a plurality of bit rates and comprising packets of data, each of the plurality of data streams comprising only a constant bit rate; determining a bit rate associated with each packet of data of the plurality of data streams; providing a priority queue including a plurality of queues in memory for queuing the received plurality of data streams, each queue in the priority queue being associated with a single data stream, each of the queues in the priority queue having a stream deadline element associated therewith, wherein each stream deadline element has a stream identifier for identifying a data stream in the queue corresponding to the stream deadline element and a deadline key for identifying a deadline based on the determined bit rate associated with packets of the identified data stream for forwarding packets associated with the steam deadline element; arranging in priority order the queues in the priority queue holding content streams from a highest priority queue to a lowest priority queue based on the deadline keys in each of the plurality of queues; retrieving, from the highest priority queue in the priority queue, a stream deadline element including a respective stream deadline key and a stream identifier identifying the data stream associated with highest priority queue; examining a deadline identified by the deadline key from the retrieved stream deadline element of the highest priority queue to determine whether the deadline associated with the highest priority queue has expired; and transmitting at least one packet in the highest priority queue associated with the data stream identified by the stream identifier only when the deadline has expired; wherein data streams having a relatively low bit rate according to the deadline identified by the deadline keys are processed less frequently than data streams having a relatively high bit rate according to the deadline identified by the deadline keys and wherein the examining the deadline identified by the deadline key from the retrieved stream deadline element of the highest priority queue enables the plurality of data streams to be transmitted at different rates based on the bit rate of each data stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of regulating the delivery time of content, comprising:
-
receiving a plurality of content streams having a plurality of bit rates and comprising packets of data, each of the plurality of data streams comprising only a constant bit rate; determining a bit rate associated with each packet of data of the plurality of data streams; providing a priority queue including a plurality of queues in memory for queuing the received plurality of data streams, each queue in the priority queue being associated with a single data stream, each of the queues in the priority queue having a stream deadline element associated therewith, wherein each stream deadline element has a stream identifier for identifying a data stream in the queue corresponding to the stream deadline element and a deadline key for identifying a deadline based on the determined bit rate associated with packets of the identified data stream for forwarding packets associated with the steam deadline element; arranging in priority order the queues in the priority queue holding content streams from a highest priority queue to a lowest priority queue based on the deadline keys in each of the plurality of queues; retrieving, from the highest priority queue in the priority queue, a stream deadline element including a respective stream deadline key and a stream identifier identifying the data stream associated with highest priority queue; examining a deadline identified by the deadline key from the retrieved stream deadline element of the highest priority queue to determine whether the deadline associated with the highest priority queue has expired; when the deadline has not expired, performing tasks other than transmitting packets; when the deadline has expired, performing the steps of; transmitting at least one packet in the highest priority queue associated with the data stream identified by the stream identifier; calculating, after transmitting at least one packet in the highest priority queue associated with the data stream identified by the stream identifier, a new deadline of at least one next packet associated with an identified content stream including said transmitted packet, wherein said new deadline is calculated using the determined bit rate of said identified content stream; inserting, into said priority queue, a new stream deadline element for said identified content stream including a respective stream deadline key using said new calculated deadline; and inserting said at least one next packet into the priority queue according to its relative streaming deadline, said at least one next packet comprising a next portion of said identified content stream including said transmitted packet; wherein examining the deadline identified by the deadline key from the retrieved stream deadline element of the highest priority queue enables the plurality of content streams to be transmitted at different rates based on the bit rate of each content stream. - View Dependent Claims (12, 13)
-
Specification