The present invention relates to a method and system for control of digital video transmission over unreliable wireless channels. The present invention also relates to adaptive transmission of data packets in a digital video system.
The transmission of digital video, using a video coding standard such as MPEG, over a wireless network in which the available data bandwidth is less than the data rate of digital video transmitted over the network, typically results in unacceptable degradation of the displayed video.
One approach to adapting digital video to the available bandwidth is to partition a single layer digital video data stream into a multi-layer video stream containing a base layer (BL) and at least one enhancement layer (EL) and then to transmit the layers through a network. BL packets comprise visually important data and EL packets comprise visually less important data. Both BL and EL packets must arrive at a receiver before a pre-determined deadline (which determines maximum tolerable end-to-end delay) in order to reconstitute an image.
Layered video data transmitted over unreliable wireless channels typically encounters reduced capacity of the medium. When the capacity of the wireless medium drops to below the bit-rate of the compressed (layered) video, typical flow control algorithms dictate that some packets must be dropped. That is, any packets that arrive at a receiver after a predetermined delivery deadline are useless. Therefore, it is better to discard these packets without transmitting them in the first place such that the remaining channel bandwidth can be utilized to transmit packets that will arrive at the receiver in time.
Existing approaches to flow control for video data are either too complex or require additional information that might not be available, such as channel state information (CSA). For example, in existing video transmission systems, video content is organized into multiple layers or priority classes, as discussed above. This prioritization information resides in the application layer and need to be conveyed to the lower layers (specifically data link and media access control layers) of communications devices for differentiated transmission. The emerging IEEE 802.11e standard specifies a means, namely, traffic specification or TSPEC, to communicate data traffic flow information to the data link (DL) and medium access control (MAC) layers. However, the implementation of IEEE 802.11e requires multiple queues in a wireless LAN (WLAN) device and modification of the MAC protocol and therefore is possible only with new designs of such devices. Further, many existing WLAN devices or WLAN HW/SW designs cannot be upgraded to support IEEE 80211e.
Finally, while arguably effective, the present signalling mechanism using a proprietary video payload-type specification in an RTP header renders the RTP packet non-compliant with the RTP specification. Moreover, it works only in a point-to-point communication scenario. It is desirable that this signalling is performed per communication session or flow rather than per packet to reduce the amount of overhead and to adhere to a flow-based design principal for lower layers of a communication stack.
The system and method of the present invention provide a prioritized/adaptive flow and layered video stream approach to mitigating the effect of insufficient bandwidth to accommodate the high data rate of digital video. Further, the system and method of the present invention provides the information from the application layer to the DL and MAC layers while keeping the video data packet format compliant with existing communications protocols and various algorithms for differentiated transmission with multiple simultaneous video applications.
The system and method of the present invention provides several alternative embodiments for prioritized transmission control, depending on whether the transmission control is done collectively or separately for each video application transmitting digital video.
The present invention includes a differentiated transmission (unequal error protection or UEP and selective packet dropping based on buffer fullness) algorithm that applies to point-to-point transmission of one video application only. In an adaptive streaming system, such as a layered video streaming system described in the present invention, the priority given to each layer (or similarly, each portion or subset of data) is important to the DL and MAC layers both for UEP and link adaptation purposes. Because each video layer (or video data subset; from this point on “layer” is used to refer to both) is associated with a unique sender/receiver IP address and port pair, an implicit or explicit map of such association is utilized in a preferred embodiment to signal the layering/priority information to the DL and MAC.
In a preferred embodiment, an access point (AP) of a basic service set (BSS) acts as an aggregation point for multiple video applications. The AP has knowledge of all such video traffic and controls the transmission of each video flow using prioritized/adaptive mechanisms and layered signalling for each video application.
It is to be understood by persons of ordinary skill in the art that the following descriptions are provided for purposes of illustration and not for limitation. An artisan understands that there are many variations that lie within the spirit of the invention and the scope of the appended claims. Unnecessary detail of known functions and operations may be omitted from the current description so as not to obscure the present invention.
The system and method of the present invention provides several alternatives for implementation of digital video packet transmission control, depending on whether the transmission control is done collectively or separately for each video application that is transmitting digital video. These control include:
Aggregated transmission control for each video application is a simpler form of differentiated transmission in which only priority information is used in controlling the transmission process, i.e., the priority of each packet determines how it is transmitted regardless which video application the packet belongs to. An AP 306 can, for example:
In the aggregated mode of operation, no differentiation is made among the packets within the same priority class, even if they belong to different video applications. This has the advantage of low implementation complexity, however, at the cost of less efficient transmission than more complicated approaches. For example, some video applications may be unfairly penalized if a large number of their enhancement layer packets are dropped. However, this simple differentiated transmission scheme does achieve coarse unequal error protection and channel adaptive transmission.
In one aspect, priority and application dependent transmission with multiple queues, separate queues are maintained for each application. The device driver or firmware keeps track of the status and controls the transmission of each video application separately. There is again a single transmission queue in the communication device.
The device driver or firmware tracks the status of each video application in progress. The dropping or sending of a particular packet not only depends on the queue status and the packet's priority, but also on which video application the packet belongs to, in order to ensure that a fair share of EL packets are dropped for each video application. For this purpose, the device driver records the percentage of dropped packets for each video application. An EL packet of a video application is not dropped if its historical dropping ratio exceeds those of other video applications by a predetermined threshold (e.g., within 20%).
In yet another aspect, the visually less important EL packets are discarded in order to make room for future important BL data, even if the EL packets could reach the decoder in time. A preferred embodiment comprises using fixed end-to-end delay for the BL packets and a shorter deadline (effectively a smaller end-to-end delay) for the EL packets. In this way, transmission of future BL packets is assured at the expense of dropping current EL packets.
Referring now to
Referring now to
The transmission of digital video, using a video coding standard such as MPEG, over a wireless network in which the available data bandwidth is less than the data rate of digital video transmitted over the network typically results in unacceptable degradation of the displayed video. In order to prevent this, a layered video transmission system may be used. The layered video transmission system consists of three components: a splitter 203 and an adaptive scheduler 205 in the transmitter, and a merger in the receiver 209.
First, a prioritization scheme is used to partition the video data into a BL 101 containing the essential information and one or more ELs 102.1-102.n, n≧1, containing the less essential information. Second, in order to maximize the quality of the received video, adaptation takes place in which the BL 101 is always transmitted, whereas some or all of the enhancement layers are “dropped” (i.e., not sent) whenever the available network bandwidth is insufficient for transmission of all of the video data.
Referring now to
It is envisioned that, in the future, data, voice, and audio/video traffic will be carried over in-home wireless networks, perhaps connected to an external network such as the Internet 303 via a home gateway 304.
In this illustrative example, the server 201 depicted in
A wireless IEEE 802.11 network 301 functions as a packet-switched network in which each transmitter acts as a node that stores network packets in a data buffer before sending them over the communication link; this is known as store-and-forward. A queuing discipline 402 determines the manner in which packets waiting to be transmitted are stored and the order in which they are subsequently transmitted. Fundamentally, a queuing discipline 402 includes of a classifier 502, one or more data buffers 503, and a scheduler 504, as illustrated in
Current state-of-the-art queuing disciplines such as WFQ (weighted fair queuing), CBWFQ (class-based weighted fair queuing), WRR (weighted round robin) and PQ (priority queuing), do not take advantage of the unique features of layered video and, as a result, can only achieve less-than-optimal efficiency.
In a preferred embodiment, the present invention provides a queuing discipline 505 that adaptively selects data packets of one multiple-layer video stream for transmission in a manner that maximizes the number of EL packets transmitted while insuring the transmission of BL packets whenever possible.
The technique used in a preferred embodiment of the present invention for deciding when to drop EL packets is based on the principle that, if packets are stored in a buffer (queue) for transmission over the network, the average number of packets in the buffer over a period of time corresponds to the amount of network bandwidth available during that period. In particular, if the network is very congested or otherwise has a low available bandwidth, packets are stored in the buffer more rapidly than they are removed for transmission, and the average number of packets in the buffer will be large. If, on the other hand, the network is not congested and its full bandwidth is available, packets are removed from the buffer very quickly, and the average number of packets in the buffer will be small. The amount of data in this buffer serves as an indication of the available network bandwidth, and this in turn is used to determine whether to transmit or drop EL packets.
A preferred embodiment of a method of the present invention is a means for controlling the transmission of EL packets over a wireless network in a multiple-layer digital video streaming system. A block diagram of the buffer structures and queuing disciplines for such a method is illustrated in
A series of thresholds is associated with transmission of packets from BL queue
D_THLD_ELi
A_THLD_ELi
for Eli are determined for respectively dropping and adding packets to Eli for the transmission process according to the following scheme.
Data packets to be transmitted are stored in a buffer that corresponds to the video stream layer to which the packet belongs (EL or BL), which is determined for each packet by the classifier 502. Under conditions of progressively lower available network bandwidth, Els 605.1-605.n are dropped, starting with the lowest-priority layer, followed by the second lowest-priority layer, and continuing in this manner through the highest-priority enhancement layer. The average number of packets in base-layer buffer BL 604 is used as a measure of available network bandwidth. If this number exceeds a threshold value D_THLD_Eln, the lowest-priority enhancement-layer packets are dropped from EL buffer ELn 605.n; this means that fewer data packets from the video steam are transmitted over the network, thereby alleviating network congestion and insuring that a higher percentage of the transmitted packets of the higher priority Els are received.
If dropping this enhancement layer brings the rate of transmitted packets below the limit imposed by the network bandwidth, the average number of packets in base-layer buffer BL 604 will not continue to grow, and may even decline. If it does grow beyond a second threshold value D_THLD_Eln−1, the second lowest-priority enhancement-layer packets are dropped from buffer ELn−1 605.n−1. This is done for successively higher threshold values of the average number of packets in base-layer buffer BL 604, with each threshold D_THLD_ELn corresponding to a successively higher-priority enhancement-layer buffer ELn 605.n, until the threshold D_THLD_EL1 for highest-priority layer buffer EL1 is reached; at this point, all EL packets are dropped.
At some point, the average number of packets in the BL buffer will begin to decline as network conditions improve and the available bandwidth increases. When this number falls below threshold A_TH LD_ElK, corresponding to the highest-priority buffer ELK that is currently not being transmitted (i.e., had previously been dropped), the transmission of packets from that EL is resumed. As the average number of packets in buffer BL continues to fall below successively lower threshold values A_THLD_Eln, each of which corresponds to a successively lower-priority enhancement-layer buffer ELn, the transmission of packets for that enhancement layer is resumed; this is done until threshold value A_THLD_Eln for lowest-priority buffer ELn is reached; at this point, all EL packets are once again transmitted.
For each enhancement-layer buffer ELn, base-layer buffer BL threshold value D_THLD_Eln for dropping packets is higher than threshold A_THLD_Eln for resuming transmission. This is done because digital video streams can be very “bursty”, in that there are times during which the number of data packets is very large, as well as times during which it is very small. To ensure that the first situation is not misinterpreted as a condition of degraded network bandwidth, the threshold value for dropping packets from a given enhancement layer must be set at a sufficiently high value. Conversely, the threshold value for resuming transmission from that enhancement layer must be low enough that the second situation above is not misinterpreted as a condition of improving network bandwidth. In any event, the former threshold value must be higher than the latter, and both threshold values increase monotonically with EL priority, so that:
D_THLD_Eln≧A_THLD_Eln
D_THLD_Eln+1≦D_THLD_Eln
A_THLD_Eln+1≦A_THLD_Eln
In a preferred embodiment, an actual dropping of enhancement-layer packets comprises two methods, depending upon the system requirements and implementation. In the first case, EL packets are dropped before being stored in their appropriate buffers (ELn). The enqueue policy is then controlled by the average number of packets in buffer BL 604, implemented by the classifier 502, which determines the buffer ELn 605.1-605.N that a packet belongs in, and comprises simply not writing any packets into the buffers for ELs that have been dropped. The dequeue policy for this case is one of sequentially reading every packet in every buffer, starting with BL buffer 604 and proceeding through all of the ELs in order of decreasing priority (i.e., starting with EL1 605.1 and finishing with ELn 605.n), and transmitting each packet immediately. The respective algorithms for the enqueue and dequeue policies corresponding to this discipline are given in the following pseudo-code segments:
In a second preferred embodiment, every EL packet is stored in the appropriate buffer (ELn 605.n), but is not transmitted if it has been dropped. The enqueue policy then consists of writing every packet into the buffer ELn 605.n that it belongs in, as determined by the classifier. The dequeue policy, in this case, is controlled by the average number of packets in base-layer buffer BL 604, and consists of simply not reading any packets from the buffers for enhancement layers that have been dropped. This embodiment has the advantage of decreasing the latency between determination of a change in network bandwidth and the corresponding increase or decrease in the number of transmitted packets. The respective algorithms for the enqueue and dequeue policies corresponding to this discipline are given in the following pseudo-code segments:
An alternative embodiment takes advantage of the fact that enhancement-layer packets are transmitted contiguously for a given enhancement layer, and these contiguous groups can in turn be transmitted in decreasing order of enhancement layer priority. That is, if an enhancement layer is lost, all enhancement layers that have a lower priority will be of no use to the receiver. Consequently, the transmission of enhancement-layer packets that are arranged in the above-described order can be truncated at any point within a video frame. The receiver 207 can then use all of the transmitted EL data to provide a level of video quality that is proportional to the amount of this data. The amount of data in turn corresponds to the truncation point, whose position can be chosen such that any desired number of EL packets from a given frame can be transmitted. This can be used as a mechanism for dropping an arbitrary number of EL packets in response to any amount of network bandwidth reduction, as determined by the average number of packets in the base layer buffer. It has the other advantage of requiring only two buffers, one for the BL packets and one for all of the EL packets. A block diagram 700 of the buffer structures 705706 and queuing discipline 703 for this method is illustrated in
In this alternative embodiment, the classifier 502 determines the layer to which each data packet belongs. Base-layer packets are stored in buffer BL 705. EL packets are stored in buffer EL 706, but must be arranged as contiguous groups for every EL, and these groups must in turn be organized in decreasing order of EL priority (i.e., for a given video frame, the contiguous group of EL packets for EL1 is stored first, followed by the group for EL2, etc., and the group for ELN is stored last). Once again, the network bandwidth is determined from the average number of packets in buffer BL 705. If this number exceeds a threshold value THLD_1, a specified number of packets from the end of the enhancement-layer packet sequence are dropped. If the number of packets in buffer BL 705 exceeds a second, higher, threshold value THLD_2, a larger number of EL packets are dropped. The number of dropped EL packets increases monotonically with the largest exceeded average BL packet number threshold value THLD_n. Preferably, different threshold values are used for dropping a specified number of packets and for resuming the transmission of this same number, the former threshold value always being higher than the latter, to make this method more robust under conditions of bursty network data traffic.
Although a discrete number of threshold levels are depicted in the block diagram, the number of dropped packets can be implemented as a continuous monotonic function of the average number of packets in buffer BL 705. To make this alternative embodiment more robust under conditions of bursty network data traffic, this function is preferably further extended to be a continuous, monotonic hysteresis function, analogous to that for the magnetization of a ferromagnetic material with an applied magnetic field.
The dropping of EL packets reduces the number of packets transmitted over the network, alleviating network congestion and insuring that a higher percentage of the transmitted packets are received. Preferably, the queuing discipline comprises dropping these packets either before storage (enqueue) or after (dequeue). The respective algorithms for the enqueue and dequeue policies corresponding to these two disciplines are given in the following pseudo-code segments:
As an example,
Each application sends data through a socket 803.i into the networking stack of the kernel where it is input to the socket buffer 804.i corresponding to that application. The data flows from different applications are subsequently multiplexed into the queuing discipline 805 for the networking device (e.g., a wireless transmitter). In this example, the queuing discipline 805 is a priority queue with two traffic categories, the first being the layered video stream sent by the streaming server, and the second being the data sent by the other applications. Once a networking packet has been associated with a traffic category by a classifier 806, it is inputted to a 2nd tier queuing discipline. The 2nd tier queuing discipline 807 for the layered video stream comprises the present invention, whereas the 2nd tier queuing discipline for the remaining data traffic, in this case, makes use of a first-in-first-out (FIFO) methodology 808.
Referring now to
While the preferred embodiments of the present invention have been illustrated and described, it will be understood by those skilled in the art that the management frame, device architecture and methods as described herein are illustrative and various changes and modifications may be made and equivalents may be substituted for elements thereof without departing from the true scope of the present invention. In addition, many modifications may be made to adapt the teachings of the present invention to a particular situation without departing from its central scope. Therefore, it is intended that the present invention not be limited to the particular embodiments disclosed as the best mode contemplated for carrying out the present invention, but that the present invention include all embodiments falling with the scope of the appended claims.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2005/054189 | 12/12/2005 | WO | 00 | 6/15/2007 |
Number | Date | Country | |
---|---|---|---|
60636363 | Dec 2004 | US |