Quality of experience directed network resource handling
A method for allocating network resources among a set of real-time video flows to maximize a total measured quality of experience (QoE) including detecting a state change, determining whether a state network resource allocation can be optimized after the state change, where the determining compares an output utility value of a utility function over the set of real-time video flows to a current utility value of the network resource allocation, and selecting an optimal network resource allocation indicated by the utility function, in response to determining the state change can be optimized.
1 . A method for allocating network resources among a set of real-time video flows to maximize a total measured quality of experience (QoE), the method comprising:
detecting a state change;
determining whether a network resource allocation can be optimized after the state change, where the determining compares an output utility value of a utility function over the set of real-time video flows to a current utility value of the network resource allocation; and
selecting an optimal network resource allocation indicated by the utility function, in response to determining the network resource allocation can be optimized after the state change.
2 . The method of claim 1 , wherein the utility function is a sum of estimated QoE values for the set of real-time video flows, where QoE maps provide estimated QoE values for each network resource allocation for each real-time video flow in the set of real-time video flows.
3 . The method of claim 2 , wherein the utility function is further the sum of the estimated QoE values with an output of a penalty function.
4 . The method of claim 1 , wherein the utility function is weighted based on a class of service associated with each real-time video flow in the set of real-time video flows.
5 . The method of claim 1 , further comprising:
allocating one or more partitions of total network resources, where each partition is allocated a fixed amount of resources for real-time video flows assigned to the partition via policy.
6 . The method of claim 1 , further comprising:
ranking each real-time video flow in the set of real-time video flows based on QoE value gain for adding one unit of network resources to each real-time video flow in the set of real-time video flows.
7 . The method of claim 6 , further comprising:
assigning at least one unit of network resources to a highest ranking real-time video flow that has a greatest QoE gain in a ranking.
8 . A non-transitory machine-readable storage medium comprising computer program code which when executed by a computer perform operations for allocating network resources among a set of real-time video flows to maximize a total measured quality of experience (QoE) comprising:
detecting a state change;
determining whether a network resource allocation can be optimized after the state change, where the determining compares an output utility value of a utility function over the set of real-time video flows to a current utility value of the network resource allocation; and
selecting an optimal network resource allocation indicated by the utility function, in response to determining the network resource allocation can be optimized after the state change.
9 . The non-transitory machine-readable storage medium of claim 8 , wherein the utility function is a sum of estimated QoE values for the set of real-time video flows, where QoE maps provide estimated QoE values for each real-time video flow in the set of real-time video flows.
10 . The non-transitory machine-readable storage medium of claim 9 , wherein the utility function is further the sum of the estimated QoE values with an output of a penalty function.
11 . The non-transitory machine-readable storage medium of claim 8 , wherein the utility function is weighted based on a class of service associated with each real-time video flow in the set of real-time video flows.
12 . The non-transitory machine-readable storage medium of claim 8 , wherein the computer program code further performs operations comprising:
allocating one or more partitions of total network resources, where each partition is allocated a fixed amount of resources for real-time video flows assigned to the partition via policy.
13 . The non-transitory machine-readable storage medium of claim 8 , wherein the computer program code further perform operations comprising:
ranking each real-time video flow in the set of real-time video flows based on QoE value gain for adding one unit of network resources to each real-time video flow in the set of real-time video flows.
14 . An apparatus for allocating network resources among a set of real-time video flows to maximize a total measured quality of experience (QoE), the apparatus comprising:
one or more processors; and
a storage medium that contains instructions which, when executed by the one or more processors, will cause the apparatus to perform operations to:
detect a state change;
determine whether a network resource allocation can be optimized after the state change, where the determining compares an output utility value of a utility function over the set of real-time video flows to a current utility value of the network resource allocation; and
select an optimal network resource allocation indicated by the utility function, in response to determining the network resource allocation can be optimized after the state change.
15 . The apparatus of claim 14 , wherein the utility function is a sum of estimated QoE values for each video flow in the set of real-time video flows, where QoE maps provide estimated QoE values for each real-time video flow in the set of real-time video flows.
16 . The apparatus of claim 15 , wherein the utility function is further the sum of the QoE values with an output of a penalty function.
17 . The apparatus of claim 14 , wherein the utility function is weighted based on a class of service associated with each real-time video flow in the set of real-time video flows.
18 . The apparatus of claim 14 , further to perform operations to:
allocate one or more partitions of total network resources, where each partition is allocated a fixed amount of resources for real-time video flows assigned to the partition via policy.
19 . The apparatus of claim 14 , further to perform operations to:
rank each real-time video flow in the set of real-time video flows based on QoE value gain for adding one unit of network resources to each respective real-time video flow.
20 . The apparatus of claim 19 , further to perform operations to:
assign at least one unit of network resources to a highest ranking real-time video flow that has a greatest QoE gain in a ranking.