a system for robust video multicast over wireless lans

4 downloads 393 Views 206KB Size Report
are completely lost in an error burst, the lost packets can be recovered from .... multicast group, i.e. join a multicast group, the AP will not transmit the data for thisĀ ...
A SYSTEM FOR ROBUST VIDEO MULTICAST OVER WIRELESS LANS Hang Liu1, Liqiao Han2, Mingquan Wu1, Dekai Li1, Saurabh Mathur1, Kumar Ramaswamy1 1

Corporate Research Labs, Thomson Inc., 2 Independence Way, Princeton, NJ 08540, USA and 2 WINLAB, Rutgers University, 73 Brett Rd, Piscataway, NJ 08854, USA ABSTRACT This paper describes the design and implementation of a staggered adaptive forward error correction (FEC) system for video multicast over wireless LANs, in which the original video stream and its additional parity packet streams generated by a cross-packet FEC code are transmitted in different IP multicast groups. The FEC streams are delayed from the video stream. The wireless clients dynamically join/leave the FEC multicast groups based on the channel conditions. The time shift between the video stream and its FEC streams not only introduce the temporal diversity but also compensate the join delay. In our design, even if multiple video packets are completely lost in an error burst, the lost packets can be recovered from corresponding parity packets alone. A novel software architecture is designed to integrate the FEC functionality in the clients with no requirement for changing the existing video player. INTRODUCTION Although wireless local area networks (WLANs) (1) were initially designed for data communications, interests and demand for WiFi multimedia applications are growing rapidly. Multicast over 802.11 WLANs enables efficient distribution of audiovisual programs to many receivers simultaneously. Wireless IPTV and video-on-demand at hotspots, movie preview outside theatres, advertisement in shopping malls, and video classes at campuses are just a few of examples of WLAN casting. However, digital video delivery requires high reliability, bounded delay and bandwidth efficiency. Wireless links are unreliable with time-varying errors. Especially in video multicast applications, different receivers of the same video may experience heterogeneous channel conditions and receivers may join or leave during the session so that the topology of receivers changes. In addition, there is no link layer retransmission and no link layer adaptation for multicast in current 802.11 standards and implementations. Therefore it is a key and challenging task to support quality of services (QoS) for all the receivers of the multicast video in the desired serving area while efficiently utilizing the available wireless LAN bandwidth. There has been a lot of research and theoretical analysis/simulations on various application layer forward error correction (FEC) and automatic repeat request (ARQ) algorithms to recover from packet loss and to improve transmission reliability in wireless networks. However, little real implementation (freeware or commercial system) has been done. In this paper, we focus on the design and implementation of a staggered adaptive FEC system for video multicast in wireless LANs. In our design, even if video packets in a coding block are completely lost in an error burst, e.g. during mobile client handoff, the lost packets can be recovered from the corresponding parity packets alone. The original video packet stream and its additional parity packet streams generated by a cross-packet FEC code are

Figure 1 - Wireless multicast system using staggered FEC. transmitted in different IP multicast groups. The FEC streams are delayed from the video stream. The clients dynamically join/leave the FEC multicast groups based on the channel conditions. The time shift between the video stream and the FEC streams not only introduce the temporal diversity but also compensate the join delay. The video stream and the time shifted FEC stream are transmitted in a backwards compatible manner. A novel software architecture is designed to integrate the FEC functionality in the clients with no requirement for changing the existing video player. FEC BASED WIRELESS STAGGERCASTING SYSTEM A wireless video multicast system considered in this paper is shown in Fig. 1. The video streaming server is connected to access points (APs) through high-speed Ethernet LANs. To reduce interference, the adjacent wireless access points operate in different frequency carriers. The streaming server send pre-coded video content or real-time encoded/transcoded video in multicast to a number of mobile clients through access points. For the staggered FEC scheme, a cross-packet systematic FEC code is applied to the video packets to generate the parity packets at the streaming server. The original video packet stream and the additional FEC parity packet stream are transmitted to the APs in different IP multicast groups by the streaming server over Ethernet. The parity stream is delayed from the video stream, i.e. staggercasting the video stream and parity stream. The clients dynamically join/leave the FEC multicast groups based on the channel conditions and/or handoff events. If the join time is less than the time shift between the video and FEC streams, the corresponding parity packets will be received by the clients to recover lost video packets. Based on whether any of its clients subscribe to the video or parity multicast group, an AP sends the video stream and parity stream in multicast over the WLAN. Parity data for a multicast group would not be transmitted in wireless networks for bandwidth efficiency if no receiver needs it and joins this group. In multicast, WLAN link layer does not support packet retransmission. Erroneous packets are simply dropped. So to the application layer, it is a packet erasure channel. Packet loss

Figure 2 - Sender/server architecture. can be detected by checking the sequence number field in the header of correctly received packets. Any systematic FEC code, for example, Reed Solomon (RS) codes can be used with the erasure decoding to recover the lost packets. Note that a FEC code is applied across the video packets to produce parity packets. The reason is that if it is applied within a single packet at the application layer, the erroneous packet is discarded by the receiving MAC and will not be available for error correction at the application layer. A mobile device may be handed off from one access point (AP) to another. Data frame transmission is interrupted and a number of data packets are lost to the receiver during the period of handoff. The staggered FEC scheme can be used to recover the burst packet loss during handoffs. A mobile device may only join a video group if its channel condition is good. As it hands off from an AP to an adjacent AP, it sends the request to the new AP to join both the normal video multicast group and the delayed FEC multicast group. The new AP transmits both the streams in multicast over the wireless link. If the join time is less than the time shift between the video and FEC streams, the corresponding parity packets will be received by the mobile device to recover lost video packets. After the lost data in the video stream are recovered, the mobile device may send a request to the AP to leave the delayed FEC multicast group. If no mobile device associated with an AP wants the data for a multicast group, i.e. join a multicast group, the AP will not transmit the data for this multicast group in wireless networks, but discards the data. This saves wireless bandwidth. The Internet Multicast Management Protocol (IGMP) (2) is used for the mobile device to request the AP to join or leave a multicast group and the APs are enhanced to support IGMP. An alternative approach is that the mobile device sends the IGMP request to the Ethernet switch to join or leave a multicast group. If no mobile device associated with an AP wants the data for a multicast group, the Ethernet switch will not transmit the data for that multicast group to the AP. It should be noted that this method can also correct burst packet loss due to other reasons

such as shadowing. For the recovery of random packet loss, it is possible to transmit certain FEC parity packets in another multicast group without time shift according to the desired coverage range of the AP. A mobile device normally joins the non-delayed FEC groups to recover its random loss. If it suffers burst packet loss, the mobile device dynamically joins the delayed FEC multicast groups. IMPLEMENTATION OF FEC BASED WIRELESS STAGGERCASTING SYSTEM Sender and Receiver Architecture Fig. 2 shows the sender/server implementation for our video multicast system using the staggered adaptive FEC. The RTP/UDP/IP protocol stack is used for video multicast (3). The video sequence is pre-compressed and stored in a file with MP4 format (4). H.264 video coding is used in our implementation due to its compression efficiency. The FEC encoder is placed after the packetization, but before the UDP layer. The compressed video is packetized by the packetizer and the RTP packet header is added. The systematic FEC codes are then applied across video packets at the FEC encoding module to generate parity packets. Reed-Solomon (RS) codes constructed with Vandermonde matrix (5) are used as the FEC code. To make decoding possible at the receiver, a FEC header is added in the FEC packets containing FEC information. In our implementation, FEC parameters N and K can be dynamically adjusted on the fly. The video packets are transmitted in an IP multicast group (normal video multicast group) through the UDP/IP stack and Ethernet interface to the APs. The additional parity packets are then stored in the delay buffer for an offset time Td. The FEC parity packets are then transmitted in another IP multicast group (delayed recovery multicast group) after the delay. Burst packet losses may occur during mobile handoff or due to other reasons so that some or all of the video packets in a coding block get lost. A half-rate RS code is used to solve this issue in our design. For the RS code with erasure decoding, each parity packet can recover any one of lost packets. When a half-rate RS (N, K) code (N = 2K) is applied to the K video packets, it generates K parity packets. With the half-rate RS code, even if video packets are completely lost in a burst, the lost packets can be recovered from the corresponding parity packets alone. In this sense, the parity packet stream generated by the half-rate RS code is another description of the original video packet stream. The system can then transparently tolerate the burst packet loss at least the duration of time shift Td between the video stream and parity stream. Note that with the half-rate RS code, the recoverable length of burst loss does not depend on the RS code parameters N and K, but Td. It provides the flexibility in the system design. In our implementation, it is also possible to always transmit certain FEC parity packets in a different multicast group without time shift to correct the random packet loss and the additional FEC parity packets are transmitted in the delayed recovery multicast group to correct burst packet loss. Session Description Protocol (SDP) (6) is used to indicate the video multicast group and the FEC multicast group information, including the multicast addresses, video coding format, FEC coding scheme, etc. as well as the association between the video stream and the parity stream. The SDP file can be downloaded by the client through the HTTP protocol at the session start or announced by the streaming server via the SAP protocol (7). Available commercial and freeware video players, e.g. Quicktime (8) and VLC players (9), don't support FEC. Source code of commercial players is generally not available. It is difficult to integrate FEC into every freeware player as well as maintain and update it even if the source code of freeware is available. We design a novel client proxy architecture as shown

Save Recovered Video File Recovered RTP packets

De-packtization

Disk

Display

FEC decoding module

Video Player Video Delay buffer packets UDP

UDP

UDP

IP

IP

IP

Delayed recovery multicast group WLAN Interface

Video multicast group

RTP Depacktizaton

Parity packets

Loopback (or send to another machine)

Figure 3 - Receiver architecture. in Fig. 3. It can work with any commercial and freeware video players without requirement to change the player code. The proxy receives video and FEC packets from different multicast groups, recovers lost video packets and sends the recovered video packets to the player through an internal socket. An initial buffer is used at the client proxy to compensate the time shift between the video stream and the parity stream for lost video packet recovery. Note that one-way video multicast can generally tolerate several seconds of initial delay. RS Coding In the software implementations of RS codecs, for fast encoding and decoding, it is beneficial to choose a code symbol length of 8-bits. This results in an RS code over GF (256) with a block length N