Abstract:
A method includes initializing transmission of multicast data with non-overlapping beamforming antennas by a wireless access point responsive to multiple clients; determining a beam pattern for transmission of the data by the access point responsive to feedback on a signal-to-noise-ratio SNR of each client under every beam pattern; and scheduling a multicast of the data to the clients responsive to the determining and to one of an optimal beam streaming configuration and a sub-optimal beam streaming configuration for partitioning the beam patterns into groups for creating composite beam patterns associated with assigned modulation coding and video streams.

Description:
This application claims the benefit of U.S. Provisional Application No. 61/312,910, entitled “Wireless Multicasting with Switched Beamforming Antennas”, filed on Mar. 11, 2010, U.S. Provisional Application No. 61/450,901, entitled “SVC-Based Multicast Streaming with Beamforming Antennas”, filed Mar. 9, 2011, and this application is related to U.S. patent application Ser. No. 13/046,230, entitled “Wireless Multicasting with Beamforming Antennas”, filed Mar. 11, 2011, the contents of which are incorporated by reference herein. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates generally to wireless communications and, more particularly, to scalable video multicast with non-overlapping beamforming antennas. 
     BACKGROUND OF THE INVENTION 
     Employing multicast to deliver video applications in wireless networks (such as Mobile TV, electronic classroom, video conference, sports telecast, etc.) has received tremendous attention in recent years. There has been proposed a new rate-adaptation algorithm for multicasting multimedia content, efficient resource allocation algorithms for multicasting scalable video coding (SVC) streams and the multicast streaming problem with SVC-encoded videos has also been studied. 
     On one hand, wireless medium, due to its shared nature, provides natural support for multicast traffic and is efficient in utilizing wireless radio resources. On the other hand, a challenging issue for wireless multicast is that the transmission rate is limited by the user with the worst channel condition in the multicast group. Using beamforming technologies can potentially address the challenge because beamforming antennas can focus the energy along a particular direction, thereby increasing the minimum channel quality of a group of users. 
     Several recent works have considered exploiting beamforming antennas for wireless multicast transmissions. There has been studied the wireless multicast issue with beamforming antennas where the objective is to ensure full coverage and minimize the total transmission delay. In another work, there was considered the wireless multicast video transmission with beamforming antennas. Both of these works assume a different channel model in a typical indoor WiFi environment, where the designed single-lobe beam patterns, due to heavy reflection, penetration, and diffusion, overlap with each other. These works do not consider the more challenging problem of how to exploit non-overlapping beamforming antennas to enhance scalable video coded (SVC) encoded video delivery in multi-cast streaming systems. 
     Accordingly, there is a need for a method that exploits non-overlapping beamforming antennas to enhance video delivery in multicast streaming with SVC encoded videos. 
     SUMMARY OF THE INVENTION 
     In one aspect of the invention, a method includes initializing transmission of multicast data with non-overlapping beamforming antennas by a wireless access point responsive to multiple clients; determining a beam pattern for transmission of the data by the access point responsive to feedback on a signal-to-noise-ratio SNR of each client under every beam pattern; and scheduling a multicast of the data to the clients responsive to the determining and to one of an optimal beam streaming configuration and a sub-optimal beam streaming configuration for partitioning the beam patterns into groups for creating composite beam patterns associated with assigned modulation coding and video streams. Preferably, the optimal beam streaming configuration includes determining values of system utility at a boundary of the transmission of multicast data, determining system utility under all possible conditions of said transmission of multicast data, and determining a maximum system utility for said transmission for multicast data. 
     In an alternative aspect of the invention, an apparatus includes means for initializing transmission of multicast data with non-overlapping beamforming antennas by a wireless access point responsive to multiple clients; means for determining a beam pattern for transmission of the data by the access point responsive to feedback on a signal-to-noise-ratio SNR of each client under every beam pattern; and means for scheduling a multicast of the data to the clients responsive to the determining and to one of an optimal beam streaming configuration and a sub-optimal beam streaming configuration for partitioning the beam patterns into groups for creating composite beam patterns associated with assigned modulation coding and video streams. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       These and other advantages of the invention will be apparent to those of ordinary skill in the art by reference to the following detailed description and the accompanying drawings. 
         FIG. 1  is a diagram of an exemplary system architecture under which the inventive scalable video multicast with non-overlapping beamforming antennas can be employed. 
         FIG. 2  is a flow diagram of a procedure for video multicast, according to the invention. 
         FIG. 3  is a flow diagram of optimal beam-streaming OBS, according to the invention. 
         FIG. 4  is a flow diagram of sub-optimal beam-streaming SBS, according the invention. 
     
    
    
     DETAILED DESCRIPTION 
     The invention is directed to exploiting non-overlapping beamforming antennas to enhance the video delivery in a multicast streaming system with SVC encoded videos, thereby, maximizing the overall, weighted sum, video quality. The inventive technique partitions single-lobe beams into groups, forms a composite beam with each group of single-lobe beams, and then schedules all generated composite beams to serve all clients. The invention employs an optimal solution when the number of (single-lobe) beams is small (which is the typical case) via a combination of dynamic programming and partial enumeration. The invention also employs low-complexity greedy schemes to solve the problem with arbitrary number of (single-lobe) beams. 
     Referring now to the architecture diagram of  FIG. 1 , there is shown wireless multicast clients that are served by an access point AP with a beamforming antenna, which runs the inventive technique. The primary goal of the inventive technique running on the AP is to select a subset of SVC video layers, and for each selected layer, partition beams into groups to create composite beams and to assign a modulated-and-coding-scheme MCS for scalable-video-coded SVC video streams to serve clients with maximum system utility. 
     Referring now to  FIG. 2 , the inventive method for video multicast includes an initialization  1 , a training phase  2 , and then beams are partitioned into groups using either an optimal process  3 A or a sub-optimal process  3 B. 
     Initialization entails setup of the of connections, MCS table and the multicast data into the system. At the training phase, each user measures the channel state information and sends it to the AP. The channel state information includes the average SINR (signal-to-interference-and-noise-ratio) under each beam pattern for each user. Then the best beam for each user is chosen. It is also possible and preferable that each user just reports the best beam and the average SINR under the best beam. Lastly, the base station uses the proposed optimal scheme ( 3 A) or sub-optimal scheme ( 3 B) to select and partition beams into groups. For each group of beams, a composite beam is generated under the ASP model. Then the base station assigns MCS for SVC video stream and schedules the multicast transmission. The optimal beam-streaming OBS process is shown in  FIG. 3  and the sub-optimal beam streaming SBS process is shown in  FIG. 4 . 
     Referring again to  FIG. 3 , at step  3 A 0 , the invention assigns each user to the beam under which he has the highest SINR. Then the process sorts the users who are assigned to each beam. The process uses σ j   b  to represent the id of the user that has the jth highest SNR under beam b. Thus, γ σ     1       b   ≧γ σ     2       b   ≧γ σ     3       b   ≧ . . . , where γ σ     j       b   , is the SNR value of user σ j   b  under its best beam b. Denote {right arrow over (z)} as a vector of length B and its bth component z b  represents the subscript index of σ j   b . When there is no confusion, we also use {right arrow over (z)} to represent the set of all users σ j   b , j≦z b  under all beams b. 
     At step  3 A 1 , the process defines U({right arrow over (z)},l,t) as the maximum total utility of all users where there are t slots, 1˜l layers and the lth layer can be received by the user σ z     b     b  under each beam b. Note that U({right arrow over (z)},l,t)) includes the utility of ALL users, not limited to the set {right arrow over (z)}. It is assumed that the actual index z b  starts from 1 and use z b =0 to indicate that no user under beam b is contained in the set {right arrow over (z)}. It is assumed that the video layers start from index  1  and we use layer index  0  to represent that no content is transmitted. Let {right arrow over (0)} denote a vector with all zeros. The process first determines the values of system utility at the boundary conditions.
 
 U ( {right arrow over (z)}, 0 ,t )=0, for all  {right arrow over (z)}≦{right arrow over (z)}   max   ,t≧ 0;
 
 U ( {right arrow over (z)},l,t )=−∞, for all  {right arrow over (z)}&gt;{right arrow over (z)}   max   ,l≧ 0 ,t≧ 0;
 
 U ( {right arrow over (z)},l,t )=−∞, for all  {right arrow over (z)}≦{right arrow over (z)}   max   ,l≧ 0 ,t&lt; 0;
 
where {right arrow over (x)}≦{right arrow over (y)} means that the vector {right arrow over (x)} is element-wise smaller than or equal to the vector {right arrow over (y)}, {right arrow over (x)}&gt;{right arrow over (y)} means that the vector {right arrow over (x)} is element-wise larger than or equal to the vector {right arrow over (y)}, but at least one element in {right arrow over (x)} is strictly larger than the corresponding one in {right arrow over (y)}.
 
     At step  3 A 2 , the process determines system utility under all possible conditions. It obtains the following recursive equation for U({right arrow over (z)},l,t): 
                           ⁢         U   ⁡     (       z   →     ,   l   ,   t     )       =     max   ⁡     (         Δ   ⁢           ⁢       U   l     ⁡     (     z   →     )         +     U   ⁡     (       z   →     ,     l   -   1     ,     t   -     τ   ⁡     (       z   →     ,   l     )           )         ,     
     ⁢           ⁢     U   ⁡     (         z   →       (   k   )       ,   l   ,   t     )       ,     k   =   1     ,     …   ⁢           ⁢   b       )         ,             (   1   )                 q   ⁡     (       z   →     ,   l   ,   t     )       =     {           0   ,               if   ⁢           ⁢   Δ   ⁢           ⁢       U   l     ⁡     (     z   →     )         +     U   ⁡     (       z   →     ,     l   -   1     ,     t   -     τ   ⁡     (       z   →     ,   l     )           )         &gt;     max   ⁡     (       U   ⁡     (         z   →       (   k   )       ,   l   ,   t     )       ,     k   =   1     ,     …   ⁢           ⁢   b       )                     argmax   (       U   (         z   →       (   k   )       ,   l   ,   t     )     ,     k   =   1     ,     …   ⁢           ⁢   b       )     ,         otherwise                   (   2   )               
where {right arrow over (z)} (k)  represents the vector that is identical to {right arrow over (z)} except the kth component, which is equal to z k +1, ΔU l ({right arrow over (z)}) is the additional utility of layer l of all users in the set {right arrow over (z)}, τ({right arrow over (z)},l) is the minimum time required to multicast the video layer l to the users in {right arrow over (z)}. In Eq. (1), the first term represents the case in which layer l can be received by the exact user set {right arrow over (z)}, the second term represents the case where at least one more user than the set {right arrow over (z)} can receive layer l. τ({right arrow over (z)},l) is computed by enumerating all possible partitions of beams. q({right arrow over (z)},l,t) in Eq. (2) is used to find the optimal resource allocation and beam partitioning.
 
     To find the optimal resource allocations from q({right arrow over (z)},l,t), the invention proceeds as follows. First to be found is the optimal {right arrow over (z)}*, l*, t* that maximizes the utility U. In fact, it is sufficient to fix l*=L, t*=T and just find the optimal {right arrow over (z)}*. Starting from {right arrow over (z)}={right arrow over (z)}*, l=l*, t=t*, we use the following procedure to find the optimal allocation.
         Step 1: If q({right arrow over (z)},l,t)=0, then allocate τ({right arrow over (z)},l) slots to transmit layer l such that all users in {right arrow over (z)} are covered, and let l=l−1, go to Step 1;   Step 2: Else if q({right arrow over (z)},l,t)=k&gt;0, let {right arrow over (z)}={right arrow over (z)} (k) , go to Step 1.
 
The above two steps are repeated until l=0, and then the allocation of all layers is determined. Note that if {right arrow over (z)}={right arrow over (0)}, then τ({right arrow over (z)},l)=0. This indicates that layer l is not transmitted. If layer l is not transmitted, all layers above it are not transmitted either.
       

     At step  3 A 3 , the invention outputs the maximum system utility and schedules the multicast transmission. 
     Referring again to  FIG. 4 , at step  3 B 0 , the invention sorts all users in a particular order σ=(σ j , j=1, . . . , N), where σ j  represents the jth user id. Let N denote the total number of users. We require that if two users are under the same beam, the one with a higher SINR should have a higher rank (i.e., smaller index). One example of the order is based on all users&#39; SINR values under their best beams. 
     At step  3 B 1 , the process defines the utility function U(j,l,t) as the maximum total utility of all users with video layers 1 to l, total slots up to t, where the video layer l can be received by users σ 1  . . . σ j . The process first determines the values of system utility at the boundary conditions.
 
 U ( j,l,t )=−∞, if  t&lt; 0 or ( t= 0 and  l&gt; 0);
 
 U ( N+ 1 ,l,t )=−∞, for all  l&gt; 0,0 ≦t≦T;  
 
 U ( j, 0 ,t )=0, for all 1 ≦j≦N, 0 ≦t≦T;  
 
     At step  3 B 2 , the process obtains the following recursive equation for U(j,l,t) under all possible conditions. 
                       U   ⁡     (     j   ,   l   ,   t     )       =     max   (       U   ⁡     (       j   +   1     ,   l   ,   t     )       ,       U   ⁡     (     j   ,     l   -   1     ,     t   -     τ     j   ,   l           )       +       ∑     k   ∈     Z   j         ⁢           ⁢     Δμ     k   ,   l             )       ,           (   3   )                 q   ⁡     (     j   ,   l   ,   t     )       =     {           0   ,               if   ⁢           ⁢     U   ⁡     (     j   ,     l   -   1     ,     t   -     τ     j   ,   l           )         +       ∑     k   ∈     Z   j         ⁢           ⁢     Δμ     k   ,   l           &gt;     U   ⁡     (       j   +   1     ,   l   ,   t     )                   1   ,           Otherwise   .                     (   4   )               
where Z j ={σ 1 , σ 2 , . . . , σ j } and Δμ k,l  is the additional utility of layer l for user k. τ j,l  is the minimum time required to multicast the video layer l to the users in Z j . We use the IFFD or MEBF scheme in [1] to compute τ j,l . The first term in the RHS of (3) represents the case where layer l can be received by users σ 1 , σ 2 , . . . , σ j , σ j+1  (and possibly more), while the second term there represents the case where layer l is received only by users σ 1 , σ 2 , . . . , σ j . q(j,l,t) is used to derive the corresponding resource allocation through backtracking.
 
     To compute the resource allocation from q(j, l, t), we employ the following procedure. We first find the optimal j* that maximize U(j,L,T). Let j=j*, l=L, t=T. We then repeat the following procedure. 
     Step 1. if q(j,l,t)=0, allocate τ j,l  slots for layer l to cover users σ 1 , σ 2 , . . . , σ j , and let l=l−1, go to Step 1. 
     Step 2. else let j=j+1, go to Step 1. 
     Repeat the above steps until l=0, when all layers are allocated. Similarly, τ 0,l =0 indicates that layer l is not transmitted and requires time  0 . 
     At step  3 B 3 , the invention outputs the maximum system utility and schedules the multicast transmission. 
     It is anticipated, however, that departures may be made therefrom and that obvious modifications will be implemented by those skilled in the art. It will be appreciated that those skilled in the art will be able to devise numerous arrangements and variations, which although not explicitly shown or described herein, embody the principles of the invention and are within their spirit and scope.