Skip to main content

Power and rate allocation for video conferencing in cellular networks

Abstract

We consider resource allocation for semi-elastic applications such as video conferencing. We propose to model user utility as a sigmoid function of the average bit rate over multiple time slots. The goal is to maximize the total expected user utility over time through allocation of downlink power and subcarriers in each time slot. We propose resource allocation that considers both the average rate achieved so far and the future expected rate, and show how the future expected rate can be estimated by modeling the probability that a user will be allocated a subcarrier in a future time slot. The algorithm can be implemented in a distributed fashion by an exchange of price and demand amongst users, the network, and an intermediate power allocation module. To reduce the complexity, we also propose a greedy algorithm to maximize incremental utility in the current time slot. The performance is illustrated using numerical results.

1 Introduction

Video applications constitute a rapidly increasing proportion of the total traffic on cellular networks. It is now estimated that video comprises one third of downstream North American mobile Internet access peak period traffic[1]. Most of this video traffic is streaming encoded using either Adobe Flash or MPEG. Some of this video traffic is video conferencing, e.g., Apple’s FaceTime for iPhones and Skype’s video conferencing application for smartphones. For such applications, variable bit rate video encoding algorithms are typically used, e.g., MPEG. For real-time use, such as required to support video conferencing, best-effort service can result in unacceptable performance. Fourth generation (4G) cellular networks will integrate voice, video, and data applications using packet switching. As a consequence, resource allocation should take into account application characteristics when best-effort packet switching would not result in acceptable performance. There are two issues.

First, as in other study on network resource allocation, there is a potential gain from employing the concept of utility. The most common objective video quality metric is peak signal-to-noise ratio (PSNR). Many studies of subjective video quality, however, have observed that users evaluation of video quality levels off at high PSNRs. This has provided motivation for modeling utility as a sigmoid function of throughput[2, 3], i.e., convex at rates less than a threshold and concave at rates above that threshold. A sigmoid function also reflects the layered coding structure of MPEG video, which exhibits increasing returns with rate below a threshold and decreasing returns with rate above that threshold.

Second, video encoding algorithms often use a group of pictures as a central concept, and intentionally vary the bit rate over different frames within this group. Network resource allocation should thus be cognizant of this structure. Some researchers have proposed that resource allocation should satisfy some type of delay deadline, e.g., delay constraint[47]. However, none of these articles use sigmoid utility functions.

We are thus motivated to look for a resource allocation method that uses sigmoid utility functions (rather than hard performance constraints or utility proportional to PSNR) and that takes into account the group of pictures structure (rather than using long term rate constraints). We posit here that for video conferencing applications, user utility should be a sigmoid function, not of the instantaneous transmission rate, but of the average rate over one or more groups of pictures.

In this article, we consider allocation of downlink power and subcarriers in orthogonal frequency division multiplexing (OFDM) 4G cellular systems for semi-elastic applications. The user’s satisfaction is modeled by a sigmoid function of the average rate over a time window. The goal is to create algorithms that allocate power and subcarriers in each time slot in a manner that optimizes total average user utility over time. The difficulty with maximizing utility over many time slots is that the system should consider both the current channel and the likely achievable average rates by the end of the time window. For instance, if a user’s channel is poor at the beginning of a time window, should the system allocate resources for this user or should it wait to see if the user’s channel improves later in the time window? If a user’s accumulated rate in a time window is low, when should the system respond by increasing the user’s resource allocation and when should the system give up on the user’s performance in this time window and allocate resources to other users?

The article proceeds as follows. In Section 2, we pose the resource allocation problem. In Section 3, we review related work. In Section 4, we consider a non-causal system in which at the beginning of each time window the network knows the channel gains of each user in each time slot of the window. While knowing all the future information is unrealistic, this will serve as an upper bound to causal systems. We illustrate how a dual problem formulation can be used to allocate power and subcarriers in each time slot of the time window. The complexity can be reduced by distributing the resource allocation process amongst users, the network, and intermediate power allocation modules. The network allocates power and subcarriers, and charges the power allocation module a shadow price for power in each time slot. The power allocation module translates this price per unit power into a price per unit rate, and resells the system resources to users. Users choose desired rates based on the cost and the resulting utility. We pose an iterative algorithm that determines near-optimal shadow prices in each time window.

In the remainder of the article, we consider causal systems which must make resource allocation decisions in each time slot without knowledge of the channel gains of users in future time slots. The challenge is to decide how the resource allocation in the current time slot should be based on the average rate achieved so far in the time window and on the likely achievable rate during the remainder of the time window. In Section 5, we propose a resource allocation policy that considers both the average rate achieved so far and the future expected rate. We show how this future expected rate can be estimated by modeling the probability that a user will be allocated a subcarrier in a future time slot. We show that although maximization of the expected utility due to future rate is prohibitively complex, maximization of the utility of the expected average rate over the time window can be near-optimally solved in a distributed fashion using a similar exchange of price and demand. In Section 6, we design a resource allocation policy that considers the average rate achieved so far and ignores future rate, by only attempting to maximize the total incremental utility of the current slot. We show how this allocation can be iteratively determined in a distributed fashion amongst user, network, and power allocation modules by exchanging shadow prices and desired rates and powers.

Finally, in Section 7 we illustrate the performance of these algorithms using numerical results. We find that the non-causal algorithm is near-optimal, with some sub-optimality when resources are severely constrained and a significant number of users are unable to achieve rates in the concave portion of the utility curve. The greedy causal algorithm is similar to that of the non-causal algorithm when resources are severely constrained, but lags as resources become more plentiful. The reason is that although the greedy algorithm can react to a poor channel by allocating fewer resources, it does not consider future rates and thus may not decrease allocations enough. The algorithm with prediction of future expected rates closes a portion of this gap by allocating resources in a balanced way based on both current channel and likely future channels.

2 System model and problem formulation

2.1 System model

We consider a single cell downlink OFDM system serving K users, with N subcarriers. The bandwidth of each subcarrier is B which is assumed to be less than the coherence bandwidth of the channel so that the channel response can be considered flat. The rate of user k on subcarrier n in time slot t is:

r k , n , t ( p k , n , t )=B log 2 1 + p k , n , t | H k , n , t | 2 δ 2 + I

where pk,n,t is the power allocated, |Hk,n,t| is the channel gain, I is the interference power and δ2 is the noise power. The channel gain is assumed to be a stationary Markov process and the fading on different subcarriers is assumed to be independent to each other. The base station is assumed to know the channel gain of each user on each subcarrier in the current time slot and the conditional densityf | H k , n , τ | 2 | H k , n , t | 2 for future slots τ. The total rate of user k in time slot t is the sum of the rate over all subcarriers:

R k , t = n = 1 N r k , n , t

2.2 Utility model

We propose to model a user’s utility as a sigmoid function over the average rate over a time window. Both the choice of a sigmoid function and of an average rate over a time window deserve discussion.

There are two classes of quality assessment methods commonly proposed in the literature. Objective quality assessment typically uses PSNR as an evaluation criterion. Many articles have thus proposed that network resources should be allocated to maximize the average PSNR, see e.g.,[8, 9], sometimes subject to long term average rate constraints, see e.g.,[10, 11]. This approach essentially equates user utility with PSNR. However, a major disadvantage of PSNR is that it cannot reflect users’ subjective satisfaction of performance. Many studies have shown that at high PSNRs, perception of incremental quality falls off with increasing PSNR. On this basis, many studies have turned to subjective quality assessment, usually directly measuring a user’s satisfaction with video quality, and representing performance by the mean opinion score (MOS)[12].

Some articles have thus proposed that utility of multimedia applications be modeled as a sigmoid function of the throughput[2, 3]. A sigmoid utility function also reflects the layered coding structure of MPEG video. The initial convex portion reflects the rate required to transmit the base video layer. The concave portion reflects the use of incremental rate to transmit enhancement layers; every additional enhancement layer increases user satisfaction, but with decreasing returns. Sigmoid utility functions are widely used to evaluate the performance and make resource allocation of video and other semi-elastic applications[1316]. The relationships among PSNR, MOS and various utility functions constitute the domain of many research projects; we refer to the reader interesting in these mappings to[3] which explores this mapping through multimedia experiments over Android-based smartphones.

In addition, video encoding algorithms often use a group of pictures as a central concept, and intentionally vary the bit rate over different frames within this group. Network resource allocation should thus be cognizant of this structure. Despite the common use of PSNR to rate video quality, allocating network resources subject to a long term rate constraint does not reflect the group of pictures structure of the video decoder, and thus may not maximize video quality. As a consequence, some researchers have proposed replacing long term average rate constraints with some type of delay deadline, see e.g.,[4] which minimizes wireless resource usage subject to statistical delay and loss constraints,[5] which maximizes concave utility subject to delay constraints,[6] which minimizes the expected end-to-end distortion subject to delay constraints, and[7] which minimizes the error propagation of a group of pictures subject to delay constraints. However, none of these articles use sigmoid utility functions.

We desire a model which represents user utility as a sigmoid function of rate and which recognizes the group of pictures construct. Thus, we propose to model user utility as a sigmoid function of the average rate over a time window, as pictured in Figure1. The time window consists of T time slots which correspond to the transmission time for one or more groups of pictures. For video, the time window is likely to be chosen to be one of more group of pictures. At time t, denote the contribution toward the average rate during the current time window by S k , t = 1 T τ = 1 t R k , τ . The utility of user k is assumed to be a function U k (Sk,T) which maps the average rate achieved in a time window, Sk,T, to the level of the satisfaction perceived by the application. There exists an inflection point S k , T f such that U k is convex for S k , T < S k , T f and concave for S k , T > S k , T f . We denote the rate at the maximum average utility by S k , T , namely S k , T =arg max S k , T U k / S k , T .

Figure 1
figure 1

Sigmoid utility function.

2.3 Problem formulation

We pose a maximization problem for each time window as follows. Denote the power allocation by p t = {pk,n,t,k,n}. Each subcarrier can be allocated to at most one user; thus denote the feasible set of power and subcarrier allocations by A t = {p t s.t. n, pk,n,t> 0 for at most one user k}. The goal is to maximize the total expected user utility within the time window under a constraint that the total transmitted power in the current time slot not exceed the power supply P:

U tot = max p t A t k = 1 K E [ U k ( S k , T ) ] s.t. k = 1 K n = 1 N p k , n , t P ; p k , n , t 0 k , n ;
(1)

where past allocations and rates, {p τ ,1 ≤ τ < t} and {rk,n,τ,1 ≤ τ < t}, and past and current channels, {Hk,n,τ,1 ≤ τt,k,n}, are known.

As discussed in the Introduction, the novel part of this maximization problem is the use of a sigmoid utility function and its dependence upon the average rate achieved over a time window. The major challenge of this problem is that power allocation in the current time slot affects not only the current rate but also the utility that may be earned at the end of the time window. The system should consider both the current channel and the likely achievable average rates by the end of the time window. For instance, suppose that it is early in the time window and a user currently faces a worse than average channel. Policies for inelastic applications would respond to a poor channel by increasing power, while policies for elastic applications would respond by allocating less power and waiting for a better channel. However, for video conferencing, utility is a function of the average rate over a time window, not of instantaneous rate, and it is a sigmoid function. Should the network allocate less than average power, figuring that later in the time window it can make up the difference? Does this depend on the auto-correlation of the channel? If late in the time window this user has experienced an average rate that places it in the convex portion of the utility function, should the network respond by increasing the transmission power? Alternatively, should the network give up on this user obtaining decent performance in this time window, and use the power to increase the utility of other users?

3 Related study

For both elastic and inelastic applications, both non-utility based and utility based resource allocation methods have been proposed and thoroughly studied.

For inelastic applications, non-utility based resource allocation methods (such as margin adaption) generally attempt to minimize usage of wireless resources (typically power or channels)[17]. Utility based resource allocation methods generally model the utility of inelastic applications as a step function of rate, which reflects the requirement to achieve a constant bit rate if this user is active. The objective is then to maximize total user utility and bin-packing methods are often proposed to allocate resources[18].

For elastic applications, the most common non-utility based approaches attempt to maximize capacity or to minimize usage of wireless resources given a set of active users, see e.g.,[1921]. Utility based resource allocation methods generally model the utility of elastic applications as a concave function of rate, which reflects the lack of any minimum rate requirement. Maximization of total user utility is often proposed using standard convex optimization methods[2226].

For semi-elastic applications, there is less literature. A few articles model user utility as a sigmoid function of instantaneous rate or bandwidth. Lee et al.[13] consider both scheduling and user selection for CDMA systems, and propose using pricing to select which users are active and to allocate power. Hande et al.[14] similarly consider sigmoid utility functions under a single resource constraint, and give conditions under which the Nash equilibrium using marginal cost pricing is optimal. Kuo et al.[15] model utility as a sigmoid function of bandwidth, and design heuristic algorithms to choose a near optimal bandwidth allocation. However, we are unaware of any research literature on power allocation when utility is a function of the average bit rate over a period of time.

The optimization problem (1) could be framed as a stochastic dynamic programming problem. The base station may have knowledge of past allocations and rates, {p τ ,1 ≤ τ < t} and {rk,n,τ,1 ≤ τ < t}, and past and current channels, {Hk,n,τ,1 ≤ τt,k,n}. However, since the channel is assumed to be Markov, it will suffice to consider the set of current channel gains over all users and subcarriers, denoted by H t = {Hk,n,t,k,n}, and the set of contributions as of time t − 1 toward the average rate of all users in the current time window, denoted by St−1= {Sk,t−1,k}.

Denote a resource allocation policy that makes decisions on the basis of the current channels and the accumulated rates by Q(H t ,St−1). A causal version of the problem (1) would require the determination of a resource allocation policy Q that maximizes total expected user utility. Denote the expected incremental utility from the current slot t to the end of the window achieved under policy Q by V t Q ( H t , S t 1 ) . The optimal resource allocation policy would allocate the power in time slot t, p t , to maximize the incremental utility earned in the current time slot plus the expected incremental utility earned in future time slots. This can be stated recursively as:

V t Q ( H t , S t 1 ) = max p t A t k = 1 K Δ U k , t + E V t + 1 Q ( H t + 1 , S t 1 ) | H t , S t 1 , 1 t < T V T Q ( H T , S T 1 ) = max p T A T k = 1 K Δ U k , T
(2)

To complete the framing as a stochastic dynamic programming problem, we need the channel gains, power levels, and achieved rates to be discrete variables. Suppose we quantize the channel gain on each subcarrier into Z H levels and the achieved rates for each users into Z R levels. Then the state (H t ,St−1) has Z H NK Z R K levels. The complexity of stochastic dynamic programming is well known to suffer a curse of dimensionality in the number of levels of the state[27]. It follows that such an approach is computationally prohibitive for any reasonably sized systems. We are thus motivated to search for less computationally complex approaches to resource allocation.

4 Non-causal version

We first consider a non-causal system in which at the beginning of each time window the network knows the channel gains of each user in each time slot of the window. Such knowledge removes (for the time being) the challenge of consideration of how current resource allocation affects future utility. While knowing all the future information is unrealistic, this will serve as an upper bound to causal systems.

Because all of the channel gains are known at the beginning of each time window in this version, the resource allocation decisions for power and subcarriers can be made jointly for all users and all time slots within the window. The multiple time slot decisions are thus transformed into a single decision at the beginning of each time window. This will allow full consideration of the variation of channel for each user from time slot to slot and of the average bit rate during the time window achieved as a result of allocations made in each slot.

However, the direct solution of problem (1) requires solving KNT fixed point equations. We are thus motivated to solve a dual problem[28]. The idea, used previously for strictly concave utility functions[29], is to separate the determination of each user’s rate (here Sk,T) and the allocation of power (here p) using a set of intermediate variables d = {d k } as bounds on the achieved rates. A similar decomposition can be applied to sigmoid utility functions, transforming problem (1) into:

U tot = max p A , d k = 1 K U k d k s.t. S k , T d k k = 1 K n = 1 N p k , n , t P , p k , n , t 0 , k , n , t
(3)

The Lagrange of (3) is given by:

J ¯ ( λ , μ ) = max p A , d J ( d , p , λ , μ ) = max d k = 1 K ( U k d k λ k d k ) + max p A k = 1 K λ k S k , T + t = 1 T μ t P k = 1 K n = 1 N p k , n , t

where λ= {λ k } are the Lagrangian multipliers associated with the rate constraints and μ= {μ t ,1 ≤ tT} are the Lagrangian multipliers associated with the power constraints. The dual function is then given by:

J ¯ (λ,μ)= max p A , d J(d,p,λ,μ)

and the dual problem is to optimally choose the Lagrangian multipliers:

J ¯ = min λ , μ J ¯ (λ,μ)s.t.λ0,μ0
(4)

For strictly concave utility functions, the dual problem always gives the same solution as the primal problem. However, for non-concave utility functions, the dual problem may result in a sub-optimal solution. The amount of the sub-optimality is measured by the duality gap J ¯ U tot . If all downlink power is allocated in all timeslots, i.e., k = 1 K n = 1 N p k , n , t =P,t, and the target rate is achieved for all users, i.e., R k = d k ,k, then the duality gap is zero. Otherwise, the duality gap is positive. It can be shown that the gap is bounded[30]. We further investigate the amount of sub-optimality in simulation results in Section 7.

Using the same method in[30], the dual problem (4) can be represented as:

J ¯ = min λ , μ f 1 ( λ ) + t = 1 T n = 1 N f 2 , n ( λ , μ ) + t = 1 T μ t P
(5)

Where

f 1 (λ)= max d k = 1 K U k ( d k ) λ k d k
(6)
f 2 , n , t (λ,μ)= max p A k = 1 K 1 T λ k r k , n , t μ t k = 1 K p k , n , t
(7)

According to the first-order condition f2,n,t/ pk,n,t= 0, the solution of (7) is

p k , n , t = B λ k T μ t ln 2 δ 2 + I | H k , n , t | 2 +
(8)

Substituting (8) into (7) and simplifying we obtain

f 2 , n , t (λ,μ)= max k Φ k , n , t ,
(9)

where

Φ k , n , t = λ k T B log 2 B λ k T μ t ln 2 | H k , n , t | 2 δ 2 + I + μ t B λ k T μ t ln 2 δ 2 + I | H k , n , t | 2 +

Denote the relationship between Φk,n,tand |Hk,n,t|2 as Φk,n,t(|Hk,n,t|2). If the user can obtain the subcarrier, Φk,n,t should be greater than 0. Using (8), it follows that Φk,n,t= 0 if and only if |Hk,n,t|2 < T μ t ln2(δ2 + I)/(B λ k ). Thus we define the inverse of Φk,n,tat |Hk,n,t|2 = 0 as Φ k , n , t 1 (0)=T μ t ln2( δ 2 +I)/(B λ k ). When Φk,n,t> 0, Φk,n,t is a monotonically increasing function of |Hk,n,t|2, and thus if| H k , n , t | 2 < Φ k , n , t 1 (0), the user cannot obtain subcarrier n.

5 Resource allocation with expectation of future rate

Having established the form of the optimal non-causal resource allocation, we now turn to formulation of causal resource allocation methods. Causality, combined with Markov channels, implies that resource allocation should be based on the set of current channels and accumulated rates (H t ,St−1). In addition, the system may have knowledge of the joint distribution of channels in current and future time slots, e.g., the auto-correlation of channels. The principal challenge is thus allocate resources in the current time slot given the average rate achieved so far in the time window and the likely achievable rate during the remainder of the time window.

In this section, we design a resource allocation policy that considers both the average rate achieved so far and the expected future rate. To estimate allocation in the future time slots in the current time window, we assume that the base station knows the channel gain |Hk,n,t| for all users and subcarriers in the current time slot t and the conditional densityf | H k , n , τ | 2 | H k , n , t | 2 for future slots τ in the current time window.

We start with the causal problem formulation in (2). Since direct solution via stochastic dynamic programming is computationally prohibitive, we propose interchanging the utility and the expectation, i.e., maximizing the utility of the expected average rate over the time window instead of maximizing the expected utility. Denote the expected user k rate in time slot τ under scheduling policy Q by E Q ( H t , S t 1 ) ( R k , τ | H t ). Then the expected user k rate from time slot t through the end of the time window is given by R k , F = R k , t + τ = t + 1 T E Q ( H t , S t 1 ) ( R k , τ | H t ). Denote the incremental utility of the expected average rate over the time window under scheduling policy Q by W t Q ( H t , S t 1 ) . This interchange transforms (2) into:

W t Q ( H t , S t 1 ) = max p t A t k = 1 K U k ( S k , t 1 + R k , F / T ) s.t. k = 1 K n = 1 N p k , n , t P ; p k , n , t 0 k , n E k = 1 K n = 1 N p k , n , τ | H t P , τ [ t + 1 , T ] ,
(10)

where the latter constraint places limits on the expected power allocated in future time slots.

The expected future user k rate is the sum of the expected future user k rate on each subcarrier:

E ( R k , τ | H t ) = n = 1 N E ( r k , n , τ | H t )
(11)

Denote the probability that under policy Q subcarrier n will be assigned to user k at time slot τ by P(pk,n,τ> 0). If this probability is known, then the expected future user k rate on subcarrier n could be found by:

E ( r k , n , τ | H t ) = Φ k , n , t 1 ( 0 ) + r k , n , τ f | H k , n , τ | 2 | H k , n , t | 2 P p k , n , τ > 0 d | H k , n , τ | 2
(12)

since the channel fading is assumed to be a Markov process and the fading on different subcarriers are assumed to be independent to each other. The required probability estimate is given by the following property:

Property 1

Let policy Q be dictated by λ k and μ τ .

P p k , n , τ > 0 = k ̂ = 1 , k ̂ k K P | H k , n , τ | 2 > g | H k ̂ , n , τ | 2

where

g | H k ̂ , n , τ | 2 =( δ 2 +I) T μ τ ln 2 B λ k B λ k ̂ T μ τ ln 2 | H k ̂ , n , τ | 2 δ 2 + I λ k ̂ λ k 1 / 2

Proof 1

See Appendix 1.

This probability can also be used to estimate the expected power allocated in future time slots:

E k = 1 K n = 1 N p k , n , τ | H t = k = 1 K n = 1 N E ( p k , n , τ | H t ) = k = 1 K n = 1 N Φ k , n , t 1 ( 0 ) + p k , n , τ ( | H k , n , τ | 2 ) P p k , n , τ > 0 × f | H k , n , τ | 2 | H k , n , t | 2 d | H k , n , τ | 2
(13)

A similar decomposition approach to that used in the previous section for a non-causal system can be used here. Introduce d k as a lower bound on the average rate Rk,F/T. Then Equation (6), which determines the target rate for each user in the non-causal system, will become:

f 3 ( λ ) = max d k = 1 K U k ( S k , t 1 + d k ) λ k d k
(14)

in the causal system.

The decomposition indicates a method of distributing the optimization. The determination of rate in (14) indicates a role for each user, while the determination of Lagrangian multipliers μ indicates a role for the network. These two roles must be done in coordination. The decomposition suggests to us that there should be an intermediate power allocation module which determines the Lagrangian multipliers λ in (14) and determines the powers p in (8). The communication between the users, power allocation module, and network is illustrated in Figure2. The allocations can be determined iteratively as follows, where the iteration number is denoted by a superscript i:

User algorithm: Given λ k i , d k i + 1 =arg max d k [ U k ( S k , t 1 + d k ) λ k i d k ].

Figure 2
figure 2

Communication between users, power allocation module, and network.

Network algorithm: Given tentative power and subcarrier allocations p t A t ,τ[t,T], μ τ i + 1 = [ μ τ i + s B i z B i ] + , where s B i is a positive scalar stepsize, and z B i =sgn k = 1 K n = 1 N p k , n , t i P when τ = t and z B i =sgn E k = 1 K n = 1 N p k , n , τ i | H t P when τ > t.

Power allocation algorithm: Given target rates diand Lagrangian multipliers μ τ i τ[t,T], allocate p t using (8) and (9). Calculate E(Rk,τ|H t ) τ [t + 1,T] using (11). Update λ i + 1 = [ λ i + s P i z P i ] + , where s P i is a positive scalar stepsize, and z P i is any feasible direction that satisfiessgn λ k i + 1 λ k i =sgn d k i R k , F / T .

For the power allocation algorithm, we propose a subgradient method with bounds to update λ:

λ k i + 1 =max min λ k i + s P i ( d k i S k , T i ) , λ ¯ k , λ _
(15)

with a suitable choice of step size. The lower bound λ _ can be set to a small suitable constant. The upper bound λ ¯ k is given by

λ ¯ k =d U k ( S k , t 1 + R k , F /T)/d( R k , F /T)|( R k , F /T=Δ R k )

whereΔ R k =arg max R k , F [ U k ( S k , t 1 + R k , F /T) U k ( S k , t 1 )]/( R k , F /T). The iteration for λ is terminated when:

λ k i + 1 λ k i < ε 1 kor S k , T i + 1 = S k , T i k,
(16)

where ε1 is a small constant.

For the update of μ in the network algorithm, we propose a bisection algorithm:

If z B i > 0 , then μ t i + 1 = ( μ t i + μ ¯ t i ) / 2 , μ _ t i + 1 = μ t i , μ ¯ t i + 1 = μ ¯ t i
else μ t i + 1 = ( μ t i + μ _ t i ) / 2 , μ _ t i + 1 = μ _ t i , μ ¯ t i + 1 = μ t i
(17)

where the initial lower bound μ _ t 0 can be set to a small suitable constant and the initial upper bound μ ¯ t 0 can be derived from (8) as μ ¯ t 0 = max k , n (B λ ¯ k | H k , n , t | 2 )/[T( δ 2 +I)ln2]. The iteration for μ t is terminated when:

μ t i + 1 μ t i < ε 2 ,
(18)

where ε2 is a small constant.

Resource allocation that considers both the average rate achieved so far and the future expected rate can thus be logically distributed by an exchange of price and demand amongst users, the network, and an intermediate power allocation module. The network algorithm and the power allocation algorithm are both run at the base station, and the user algorithm is run in the user’s wireless device. Messages must thus be exchanged between the base station and the user’s device communicating the rate prices λi and the target rates di.

This solves the challenge that power allocation in the current time slot affects not only the current rate but also the utility that may be earned at the end of the time window. We call the resulting algorithm, outlined as follows, dual iteration search with prediction (DIS Prediction). The complexity of subgradient updates is polynomial in the dimension of the dual problem, and thus the complexity of the DIS algorithm is polynomial in the number of users K.

Dual iteration search with prediction

Every slot, initialize μ t 0 = μ _ t 0 , t and λ k = λ _ k

Repeat

Repeat

For current slot t, allocate subcarrier and power by (9) and (8)

For future slot τ, calculate E H F k = 1 K n = 1 N p k , n , τ | H t by (13)

Update μ using (17)

Until (18)

If λ k i + 1 = λ ¯ k

If Rk,F= 0 then d k i + 1 =0 Else d k i + 1 =Δ R k

Else calculate

d k i + 1 =arg max d k [ U k ( S k , t 1 + d k ) λ k i d k ]

Update λ using (15)

Until (16)

However, our approach required an approximation by interchanging utility and expectation, which may cause some sub-optimality. This will be examined via numerical examples in Section 7.

6 Resource allocation without expectation of future rate

In this section, we design a simpler resource allocation policy that considers the average rate achieved so far but ignores the expected future rate.

The contribution toward the average rate in the current time window achieved by user k as of slot t−1 is given by Sk,t−1. This can be take into consideration by focusing on the incremental utility of user k in slot t, denoted by Δ Uk,t= U k (Sk,t−1 + Rk,t/T)−U k (Sk,t−1), that would result from an allocation of power corresponding to a rate Rk,t.

A greedy version of the problem (1) would be to maximize the total user incremental utility in each time slot t:

max p t A t k = 1 K Δ U k , t 1 t < T s.t. k = 1 K n = 1 N p k , n , t P ; p k , n , t 0 k , n
(19)

A similar approach to that used in the previous section can be used. The dual problem for (19) leads to a set of equations that describe the set of actions for users, the power allocation module, and the network in each time slot. From the point of view of users, the task remains the same; the utility minus cost, U k (Sk,t−1 + d k )−λ k d k . The network algorithm is simpler than that used in DIS Prediction; it now only need determine the Lagrangian multiplier μ t for power in the current time slot, whereas in DIS Prediction the network algorithm had to determine not only μ t but also {μ τ ,t < τT}. The task of the power allocation module is also simpler; it must determine the Lagrangian multipliers λ for rate as before but it now only considers the difference between the actual and desired rate in the current time slot rather than estimating future rate.

The communication between the users, power allocation module, and network is as illustrated in Figure2, and the allocations can be determined iteratively as follows, where the iteration number is denoted by a superscript i:

User algorithm: Given λ k i , d k i + 1 =arg max d k [ U k ( S k , t 1 + d k ) λ k i d k ].

Network algorithm: Given tentative power and subcarrier allocations p t A t , μ t i + 1 = [ μ t i + s B i z B i ] + , where s B i is a positive scalar stepsize, and z B i =sgn k = 1 K n = 1 N p k , n , t i P .

Power allocation algorithm: Given target rates diand Lagrangian multipliers μ t i , allocate p t using (8) and (9) and update λ i + 1 = [ λ i + s P i z P i ] + , where s P i is a positive scalar stepsize, and z P i is any feasible direction that satisfiessgn λ k i + 1 λ k i =sgn d k i R k , t i / T .

We again propose to use subgradient methods for the iteration of μ t and bisection methods for the iteration of λ k . As above, we place bounds on each shadow cost, except that the upper bound λ ¯ k is now given by λ ¯ k =d U k ( S k , t 1 + R k , t /T)/d( R k , t /T)|( R k , t /T=Δ R k ) whereΔ R k =arg max R k , t [ U k ( S k , t 1 + R k , t /T) U k ( S k , t 1 )]/( R k , t /T).

Greedy allocation to maximize incremental utility in the current time slot can thus be implemented in a distributed fashion by an exchange of price and demand amongst users, the network, and an intermediate power allocation module. We call the resulting algorithm, outlined as follows, Dual iteration search greedy (DIS Greedy). Its performance will be compared to that of DIS Prediction in the following section.

Greedy dual iteration search

Every slot, initialize μ t 0 = μ _ t 0 , t and λ k = λ _ k

Repeat

Repeat

For current slot t, allocate subcarrier and power by (9) and (8)

Update μ t using (17)

Until (18)

If λ k i = λ ¯ k

If Rk,t= 0 then d k i + 1 =0 Else d k i + 1 =Δ R k

Else calculate

d k i + 1 =arg max d k [ U k ( S k , t 1 + d k ) λ k i d k ]

Update λ using (15)

Until (16)

7 Simulation results

In this section, we compare the performance of DIS Prediction and DIS Greedy to an upper bound determined by solution of the non-causal problem. For purposes of the simulation, we set the following parameters: B = 200 KHz, N = 100, I = 0.5, δ2 = 0.5, T = 10, and P varies from 0.01 to 0.1. We simulate K = 10 users, with identical sigmoid utility functions given by:

U k ( S k , T )= a ( S k , T / 40 ) 2 , if S k , T < 200 kbps ( S k , T / 40 + b ) 1 / 3 , else ,

where a = (5/6)1/3/25 and b = −25/6. The utility function has a rate at the maximum average utility at average rate S k , T =250 kbps.

The Markov channel is given by:

| H k , n , t + 1 | 2 = ρ | H k , n , t | 2 + 1 ρ 2 v ,

where the correlation coefficient in consecutive time slots ρ = 0.5 and v Exp(1) is independent of |Hk,n,t|2 so that |Hk,n,t|2 has a Rayleigh distribution[31].

In this scenario, we set the convergence bounds for λ and μ to be very small so as to obtain accurate results. Correspondingly, convergence of μ required 20–50 iterations and convergence of λ required 200–1000 iterations. Iterations of μiare the domain of the network and power allocation algorithms, both of which are run at the base station, and thus these iterations may take minimal time. However, iterations of λirequire communication between the base station and the user’s device. This number of iterations is unlikely to be feasible due to the signalling time required, and thus a larger convergence bound ε2 would be used in a real system. If channels change slowly enough, then acceptable convergence will occur over multiple time slots, and thus the proposed communication will be feasible. However, if channels change too quickly, e.g., due to high mobility, then we suggest that the time window T be lengthened to correspond to several group-of-pictures, and that the rate prices λ must be modified more slowly.

The total utility of all users per time window under DIS Prediction and under DIS Greedy is illustrated in Figure3, as a function of the total downlink power P. We also compare these algorithms to the utility that could be achieved in a non-causal scenario; the curve labeled DIS NC is generated by using a similar dual iteration search algorithm applied to the non-causal problem. As should be expected from any reasonable resource allocation strategy, the total utility is an increasing concave function of the total power P for all three algorithms.

Figure 3
figure 3

Simulated utility of DIS NC, DIS prediction, and DIS prediction algorithms.

We first consider the performance of the non-causal algorithm. Recall that at the beginning of each time window, this algorithm has knowledge of the channel gains of each user in each time slot of the window. However, DIS NC is not optimal, since it solves the dual problem (3) instead of the primal problem (1). Sub-optimality will occur when there is a duality gap. Because direct solution of (1) is computationally intractable, to quantify the amount of sub-optimality, we calculate an upper bound (denoted in Figure3 as Upperbound) by substituting the solution of DIS NC into (4). We see that at low powers there is a significant performance gap between DIS NC and the upper bound. This gap is caused by users who under DIS NC are allocated average rates lower than S k , T , the rate at the maximum average utility. In general, it is inefficient for users to have average rates below S k , T , since the required resources could often be assigned in a manner that raises many of these users above the inefficient convex portion of the utility curve. As the base station power increases, the performance gap between DIS NC and the upper bound decreases, reflecting that all users now obtain rates above S k , T resulting in a duality gap of zero.

We turn next to the causal algorithm that includes future rate prediction, denoted DIS Prediction. Recall that this algorithm takes into account not only the current user channels on each subcarrier and each user’s average rate achieved so far in the time window, but also the expected future rate based on the conditional distribution of the channel in future time slots. As expected, the performance of DIS Prediction falls short of that of DIS NC.

Finally we turn to the causal greedy algorithm denoted DIS Greedy. Recall that this algorithm only takes into account the current user channels on each subcarrier and each user’s average rate achieved so far in the time window. As expected, the performance of DIS Greedy is lower than other two algorithms.

When the base station power is low, all three algorithms achieve similar performance. In this situation because power is limited and even DIS NC algorithm cannot achieve the optimal solution. Thus when P = 0.02, the performance of DIS NC even lower than other two algorithms. This indicates that a greedy approach that maximizes only the incremental utility in the current time slot is sufficient. Consideration of future achievable rate, even if known at the beginning of the time window, does not help. At higher base station powers, however, the performance gap becomes significant. Knowledge of future channels is now helpful. With increase of station powers, DIS NC provides optimal performance and DIS Prediction starts to outpace DIS Greedy by using its prediction of future rates.

To understand how such knowledge helps, we focus on the cumulative rate of a single user normalized by T when P = 0.06, as illustrated in Figure4 for each of 10 time slots. In slots 2,5,6,8, and 10, this user’s channel is relatively poor on most subcarriers. As a consequence, both DIS NC and DIS Greedy assign no system resources to this user in any of these slots. DIS NC knows at the beginning what the user’s channel will be for all 10 time slots, and it assigns substantial resources to this user during slots 1, 3, 7, and 9. In contrast, DIS Greedy must make decisions one slot at a time. It allocates fewer resources than DIS NC during slot 1, not aware of the number of time slots to come in which this user will have a poor channel. It attempts to catch up in slot 3, and further allocates a small amount of resources in slot 4. DIS Greedy acts similarly to DIS NC during slots 5 through 8. However, in slot 9, despite this user’s good channel it obtains no additional resources from DIS Greedy due to a combination of the rate achieved so far and the competition with other users. DIS Prediction starts by allocating similar resources in slots 1–2 as DIS Greedy. However, during slot 3 it allocates fewer resources than DIS Greedy, based on a prediction that the user’s channel will get better in future slots. During slots 4 through 6, it allocates no resources due to poor channels, and in slot 7 it allocates similar resources to DIS NC. The biggest difference occurs in slot 9, when DIS Prediction allocates a high level of resources due to a combination of the low rate achieved so far and a good channel.

Figure 4
figure 4

Cumulative rate of a user with a poor channel in slots 2, 5, 6, 8, and 10.

Even though prediction of future expected rates results in increased performance, it still does not achieve the performance resulting from exact knowledge of future channels. The major drawback of DIS Prediction and DIS Greedy is if they allocate too few resources to a user in the first several slots, they may allocate too much resources to the user in the last several slots in an attempt to ensure that the user obtains a rate higher than S k , T , as we observed in Figure4. To further illustrate this effect, we decrease the system power to P = 0.05. In Figure5, we illustrate the cumulative rate of a user who has poor channels in slots 5 through 9. The optimal noncausal strategy is to allocate substantial resources in slots 1, 3, and 4, due to the poor channels that will be suffered in future slots. However, not knowing this, both DIS Greedy and DIS Prediction allocate too few resources in slot 4, and then overcompensate during slot 10.

Figure 5
figure 5

Cumulative rate of a user with a poor channel in slots 5,6,7, and 9.

All of these results pertained to a system with users with identical utility functions. However, it can be envisioned that in some systems not all users will be equally valuable, and utility functions can be used to express such differences. To illustrate this, we briefly examine a system with K = 2 users with non-identical utility functions. User 1’s utility is as given above. User 2’s utility function given by C times that given above, with C varying from 0.1 to 2. We focus on the situation in which both user 1 and user 2 are not allocated enough resources to obtain a rate above S k , T . The total available power is fixed at P = 1 and the value of μ is set to ensure that the power constraint is satisfied.

We first examine the probability that each user obtains a randomly chosen subcarrier in a given slot, given by

E P p k , n > 0 = Φ k , n 1 ( 0 ) + k ̂ = 1 , k ̂ k K P | H k , n | 2 > g | H k ̂ , n | 2 d | H k , n | 2
(20)

These expected values are plotted in Figure6. As user 2’s utility function increases, its expected subcarrier allocation increases and user 1’s expected subcarrier allocation decreases. The sum of the expected subcarrier allocation is less than 1, because when both users have channel gains| H k , n , t | 2 < Φ k , n , t 1 (0) no power is allocated to either. The expected rate achieved by each users is shown in Figure7. The trend is similar. It follows that different utility functions can be used to accomplish differentiated rate allocation.

Figure 6
figure 6

Expected subcarrier allocation versus the ratio of utilities C .

Figure 7
figure 7

Expected rates versus the ratio of two utilities C .

8 Conclusion

Resource allocation for video conferencing can benefit from modeling user satisfaction as a sigmoid function of the average bit rate over a time window of a group of pictures. Some articles proposed resource allocation based on the PSNR over groups of pictures subject to average rate constraints, and others proposed resource allocation based on sigmoid utility of the instantaneous rate. None have considered sigmoid utility over groups of pictures.

We considered power and subcarrier allocation in OFDM cellular systems for semi-elastic applications whose utility is a sigmoid function of the average bit rate over multiple time slots. We proposed a resource allocation policy that considers both the average rate achieved so far and the future expected rate. We show how future expected rate can be estimated by modeling the probability that a user will be allocated a subcarrier in a future time slot. Users are unaware of this prediction, but it requires additional work by the network and by the power allocation module. The network must estimate future prices for power. The power allocation module must use these price estimates to estimate future rate.

Then a greedy allocation algorithm is proposed. The network prices power in each time slot so that the demand for power equals the base station supply. A power allocation module assigns power and subcarriers in a manner that maximizes total user utility, and transforms the price for power into a price per unit rate for each user so that users modify their desired rate to match available resources.

The performance of each algorithm is illustrated using numerical results. When the base station power is low, both algorithms have similar performance, although neither makes optimal decisions for users who cannot achieve good average rates. When the base station power is moderate or high, the algorithm that uses the prediction of future rates outperforms the greedy algorithm by taking into account both expected future channels and expected final average rate.

We have focused in this article on the downlink. Any complete design will also require power and rate allocation on the uplink. The major difference in the uplink system model is that there are power constraints on each user rather than a sum power constraint. Thus, if a similar approach to that proposed here were adopted for the uplink, then the shadow price for base station downlink power would be replaced by a set of shadow prices for each active device’s uplink power. The determination of optimal power prices would therefore become more complex, perhaps requiring a subgradient algorithm instead of a bisection algorithm. Future research would be required to evaluate the resulting complexity.

Appendix 1

Proof of Property 1:

According to (7), user k obtains subcarrier n if and only if the following condition is satisfied for all other users k ̂ k:

λ k r k , n , τ T μ τ p k , n , τ > λ k ̂ r k ̂ , n , τ T μ τ p k ̂ , n , τ

Substituting for pk,n,τfrom (8), this occurs if and only if:

λ k r k , n , τ T μ τ ( 2 r k , n , τ / B 1 ) | H k , n , τ | 2 / ( δ 2 + I ) > λ k ̂ r k ̂ , n , τ T μ τ ( 2 r k ̂ , n , τ / B 1 ) | H k ̂ , n , τ | 2 / ( δ 2 + I )

Substituting| H k , n , τ | 2 /( δ 2 +I)= 2 r k , n , τ / B μ τ ln2/ B λ k / T into the above equation and rearranging terms:

λ k λ k ̂ > r k ̂ , n , τ B ln 2 1 1 2 r k ̂ , n , τ / B r k , n , τ B ln 2 1 1 2 r k , n , τ / B
(21)

We expand one term using a Taylor expansion:

1 2 r k , n , τ / B 1 + ln 2 r k , n , τ B + ( ln 2 ) 2 2 r k , n , τ B 2
(22)

Substituting (22) into Equation (21), user k obtains subcarrier n if and only if λ k / λ k ̂ > r k ̂ , n , τ 2 / r k , n , τ 2 k ̂ k, i.e., if and only if k ̂ k,

| H k , n , τ | 2 > δ 2 + I T μ τ ln 2 B λ k B λ k ̂ T μ τ ln 2 | H k ̂ , n , τ | 2 δ 2 + I λ k ̂ λ k 1 / 2

Property 1 directly follows.

References

  1. Sandvine: Global Internet phenomena report. Tech. rep. (2011) http://www.sandvine.com

  2. Shenker S: Fundamental design issues for the future Internet. IEEE J. Sel. Areas Commun 1995, 13(7):1176-1188.

    Article  Google Scholar 

  3. Trestian R, Moldovan A, Muntean C, Ormond O, Muntean GM: Quality utility modelling for multimedia applications for android mobile devices. In IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB). Seoul, Korea; 2012:1-6.

    Chapter  Google Scholar 

  4. Du Q, Zhang X: Statistical QoS provisionings for wireless unicast/multicast of multi-layer video streams. IEEE J. Sel. Areas Commun 2010, 28(3):420-433.

    Article  Google Scholar 

  5. Huang J, Li Z, Chiang M, Katsaggelos A: Joint source adaptation and resource allocation for multi-user wireless video streaming. IEEE Trans. Circ. Syst. Video Technol 2008, 18(5):582-595.

    Article  Google Scholar 

  6. Wu D, Ci S, Wang H, Katsaggelos A: Application-centric routing for video streaming over multihop wireless networks. IEEE Trans. Circ. Syst. Video Technol 2010, 20(12):1721-1734.

    Article  Google Scholar 

  7. Chen CM, Lin CW, Chen YC: Cross-layer packet retry limit adaptation for video transport over wireless LANs. IEEE Trans. Circ. Syst. Video Technol 2010, 20(11):1448-1461.

    Article  Google Scholar 

  8. Mansour H, Fallah Y, Nasiopoulos P, Krishnamurthy V: Dynamic resource allocation for MGS H.264/AVC video transmission over link-adaptive networks. IEEE Trans. Multimedia 2009, 11(8):1478-1491.

    Article  Google Scholar 

  9. Li P, Zhang H, Zhao B, Rangarajan S: Scalable video multicast with adaptive modulation and coding in broadband wireless data systems. IEEE/ACM Trans. Network 2012, 20(1):57-68.

    Article  Google Scholar 

  10. Zhang H, Zheng Y, Khojastepour M, Rangarajan S: Cross-layer optimization for streaming scalable video over fading wireless networks. IEEE J. Sel. Areas Commun 2010, 28(3):344-353.

    Article  Google Scholar 

  11. Kim IM, Kim HM: A new resource allocation scheme based on a PSNR criterion for wireless video transmission to stationary receivers over Gaussian channels. IEEE Trans. Wirel. Commun 2002, 1(3):393-401. 10.1109/TWC.2002.800538

    Article  Google Scholar 

  12. ITU-T recommendation P.800: Methods for subjective determination of transmission quality.

  13. Lee J, Mazumdar R, Shroff N: Downlink power allocation for multi-class wireless systems. IEEE/ACM Trans. Netw 2005, 13(4):854-867.

    Article  Google Scholar 

  14. Hande P, Shengyu Z, Mung C: Distributed rate allocation for inelastic flows. IEEE/ACM Trans. Netw 2007, 15(6):1240-1253.

    Article  Google Scholar 

  15. Kuo WH, Liao W: Utility-based radio resource allocation for QoS traffic in wireless networks. IEEE Trans. Wirel. Commun 2008, 7(7):2714-2722.

    Article  Google Scholar 

  16. Cheung MH, Mohsenian-Rad AH, Wong V, Schober R: Random access for elastic and inelastic traffic in WLANs. IEEE Trans. Wirel. Commun 2010, 9(6):1861-1866.

    Article  Google Scholar 

  17. Cioffi JM: Digital communications. Course Reader. 2003.http://www.stanford.edu/group/cioffi/

    Google Scholar 

  18. Liu P, Zhang P, Jordan S, Honig M: Single-cell forward link power allocation using pricing in wireless networks. IEEE Trans. Wirel. Commun 2004, 3(2):533-543. 10.1109/TWC.2004.825363

    Article  Google Scholar 

  19. Jang J, Lee KB: Transmit power adaptation for multiuser OFDM systems. IEEE J. Sel. Areas Commun 2003, 21(2):171-178. 10.1109/JSAC.2002.807348

    Article  Google Scholar 

  20. Shen Z, Andrews J, Evans B: Adaptive resource allocation in multiuser OFDM systems with proportional rate constraints. IEEE Trans. Wirel. Commun 2005, 4(6):2726-2737.

    Article  Google Scholar 

  21. Wong CY, Cheng R, Lataief K, Murch R: Multiuser OFDM with adaptive subcarrier, bit, and power allocation. IEEE J. Sel. Areas Commun 1999, 17(10):1747-1758. 10.1109/49.793310

    Article  Google Scholar 

  22. Gao X, Nandagopal T, Bharghavan V: Achieving application level fairness through utility-based wireless fair scheduling. In Proc. GlobeCom. San Antonio, Texas, USA; 2001:3257-3261.

    Google Scholar 

  23. Feng N, Mau SC, Mandayam N: Pricing and power control for joint network-centric and user-centric radio resource management. IEEE Trans. Commun 2004, 52: 1547-1557. 10.1109/TCOMM.2004.833191

    Article  Google Scholar 

  24. Song G, Li Y: Utility-based resource allocation and scheduling in OFDM-based wireless broadband networks. IEEE Commun. Mag 2005, 43(12):127-134.

    Article  MathSciNet  Google Scholar 

  25. Zhou C, Honig M, Jordan S: Utility-based power control for a two-cell CDMA data network. IEEE Trans. Wirel. Commun 2005, 4(6):2764-2776.

    Article  Google Scholar 

  26. Yang C, Wang W, Zhang X: Multi-service transmission in multiuser cooperative networks. In Proc. WCNC. Budapest, Hungary; 2009:1-5.

    Google Scholar 

  27. Berry R: Some dynamic resource allocation problems in wireless networks. In Proc. SPIE. Denver, Colorado, USA; 2001:37-48.

    Google Scholar 

  28. Boyd S, Vandenberghe L: Convex Optimization. Cambridge Univ. Press, Cambridge; 2004.

    Book  Google Scholar 

  29. Ng TCY, Yu W: Joint optimization of relay strategies and resource allocations in cooperative cellular networks. IEEE J. Sel. Areas Commun 2007, 25(2):328-339.

    Article  Google Scholar 

  30. Yang C, Jordan S: Resource allocation for semi-elastic applications in wireless networks. In IEEE Global Telecommunications Conference (GLOBECOM). Houston, Texas, USA; 2011:1-6.

    Google Scholar 

  31. Goldsmith A: Wireless Communications. Cambridge Univ. Press, Cambridge; 2005.

    Book  Google Scholar 

Download references

Acknowledgements

This study had been supported by the National Science Foundation. Portions of this study appeared in C Yang and S Jordan, Power and Rate Allocation for Video Conferencing in Cellular Networks, Allerton Conference on Communication, Control and Computing, Monticello, Illinois, September 2011, pp. 127–134.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Scott Jordan.

Additional information

Competing interests

The authors declare that they have no competing interests.

Authors’ original submitted files for images

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 2.0 International License (https://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Reprints and permissions

About this article

Cite this article

Yang, C., Jordan, S. Power and rate allocation for video conferencing in cellular networks. J Wireless Com Network 2013, 31 (2013). https://doi.org/10.1186/1687-1499-2013-31

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1186/1687-1499-2013-31

Keywords