1 Introduction

To get an idea of the network quality, the majority of stakeholders (network operators, service providers) rely on Quality of Service (QoS). Although this measure has shown today limitations and a lot of efforts have been made to put in place a new metric that more accurately reflects the service quality offered. This measurement is called the QoE [1]. It reflects the user’s satisfaction with the service he uses [2]. Today, assessing the QoE has become paramount for service providers and content providers. This need has driven us to innovate and devise new methods for estimating and enhancing QoE. The QoE shows in other words the level of video quality depending on user profile. So, improving the quality of video that is to say improving the QoE and conversely [2, 3].

In this work, we will be interested in QoE for multimedia service. In fact, the popularity of multimedia services is huge and wide. It is supported by the exponential growth in consumption and adoption of Internet multimedia services. The QoE depends on different video elements such as the content, the motion, subtitled or not... and the user (i.e. age, sex, profile...) [4] that directly or indirectly affect the user’s perception towards the video quality. Moreover, the diversity in these elements makes the QoE improvement more complex and wayward. This motivates us to address some prominent challenges related to QoE monitoring and estimation as described below.

The contribution of this work is to avoid the traditional streaming protocols that surely affect the video quality with the increase of video service request and we use the new HTTP-based adaptive protocol such as the MPEG-DASH protocol: is the last standard used after HAS, Microsoft’s Smooth Streaming (MSS), HTTP Live Streaming (HLS)... [5]. It is very advantageous compared to traditional protocols because it offers a flexible deployment, decreases the stall number and buffering in the current video, also it provides high quality streaming and blameless quality [6]. it is a revolution in the video streaming area. Indeed, there is no more clipping during streaming and the image quality varies and can reach very high resolutions according to the variation of the level. On the other hand inaccurate estimates of the available bandwidth can lead to frequent oscillations in quality and throughput.

Besides, authors in [7] indicated that most commercial video streaming solutions are widely used when a large number of customers are competing for available bandwidth. The problem arises when client-driven bit rate adaptation logic algorithms operates independently without any coordination. For that, we need a new context based on programmable allowing a global centralized view of the network and management dynamic resource. Today SDN [8] is one of the most popular networks where we can manage networks more flexibly and programmatically.

In this paper, we try to introduce DASH over SDN approach to ameliorate the QoE when we have many users connected in the network: we start to modelize the QoE optimization problem for single user based on the game theory using five objective parameters that affect the user perception such as the stall number, decreasing switching between two levels... Then we propose a framework based on two phases: ML-Estimation best level where we focus on the use of Machine Learning to find the appropriate level with the available network resources, the device the content of video... We will use four different intelligent algorithms and compare the result of each method to deduct the best learning algorithm for our model...

The second phase is the level selection which starts when SDN controller detects any change; the proposed algorithm is based on comparison between the estimated level and the level used by the previous segment, the contribution of this algorithm has as objective to optimize our utility function described below.

The second part of this work highlights multi-user case. The objective aims to fairly enhance the QoE of multiple competing clients in a shared network environment. So it is necessary to optimize the overall network using multi-user QoE metrics, which characterizes the overall network performance. In this paper, we study some multi-user QoE metrics and provide general QoE multi-user optimization model based on DASH service. We involve the Poisson process to model the number of users at a given moment; We propose also an algorithm that distributes the available capacity between users according to their used device. The experimental results show that our method guarantees the satisfaction of all users.

The rest of this article is organized as follow. Section 2 defines the background of the work: SDN networks, QoE and DASH, in Sect. 3 we introduce some related work. We detail our contribution in Sect. 4. Then in Sect. 5 we present our methodology for single user where we modelize the QoE optimization problem and details our proposed solution. After that, we present the proposed solution in multi-user case in Sect. 6. Finally this paper is concluded in Sect. 7.

2 Background

In this part we detail the SDN approach, DASH service and define on more detail the QoE.

2.1 SDN

The explosion of mobile devices, server virtualization, and the advent of cloud services are among the trends that have led the networking industry to re-examine traditional network architectures. A new network paradigm is surfacing, SDN [8] which introduces new methods to improve different aspects of network management and configuration, a concept separating the data plane and the control plane. Making switches packet switching elements whose intelligence has been extracted to become a program placed in a network entity called controller, this centralization governs the way that such behaves an SDN network. SDN is therefore a new approach to designing, building and managing networks that separates network control (brains) and expedition (muscle) planes. SDN providers offer a wide choice of competing architectures, making the use of this method simpler; the SDN method centralizes the control of the network by separating the control logic to non-peripheral computing resources. All SDN models have some version of SDN controller which is the “brains” of the network. It provides a centralized view of the entire network, and allows network administrators to dictate to the underlying systems (such as switches and routers) how the routing plan should handle network traffic.

2.1.1 SDN Network Architecture

In traditional networks, the data plan and the control plan are coupled in the same equipment. The routing tables are set up either manually by the network administrators or by the routing protocols. In addition, each network node chooses how to process a stream. In the case of SDN, the data plan and control plan are fully decoupled. The data plane consists of switches and routers while the control plane is placed in a centralized controller that has a global view of the network topology. The following figure (Fig. 1) shows the different layers of an SDN network.

Fig. 1
figure 1

SDN architecture

  1. 1.

    Forwarding layer: This layer is similar to traditional networks. It is an interconnection between different network devices such as switches and routers. The difference lies in the fact that these devices are simple data transmission equipment without any control capacity and devoid of any intelligence. Network devices in the SDN are data transmission elements accessible via an OpenFlow interface, open and standardized. These open interfaces allow the network controller to dynamically program heterogeneous transmission devices. With this design, the networks provide interoperability and compatibility between the data plan and the control plan;

  2. 2.

    Control plan: Network intelligence in the SDN is put in a higher level in ways that applications and services are no longer tied to the physical infrastructure. Instead, they will be linked to a logical and centralized controller, which is also known as the Network Operating System (NOS). In SDN network, the controller has a global and centralized view of the network. It collects information from the entire network and sends commands to all equipment in the infrastructure layer. The SDN controller or the NOS can be compared to an operating system. Indeed, it provides a programming interface to the network through which network applications are written. Using this programming interface, network administrators can easily implement new execution and management rules for the network. In an SDN network, a controller can add, delete, or modify the entries in the flow tables of a switch. This communication actually uses the OpenFlow protocol defined by the Open Networking Foundation (ONF) [9] and can be either reactive or proactive. As a result, there are two types of controllers: reactive controllers and proactive controllers.

  3. 3.

    Application layer : The application layer in SDN is the layer where developers create and deploy their network applications. These are the applications that add value to an SDN network. Indeed, they implement the control logic that will be translated into commands and installed by the controller in the data plane. Several network applications have been defined at SDN level such as security, reliability, load balancing and monitoring.

2.2 QoE

There are several ways to get information about perceived quality. On the one hand, there are subjective evaluations done in fully equipped laboratories to investigate the perception of the end user. On the other hand, there are objective quality measures, which are often used to study the measurable parameters of the entire system, describing the QoS in a technical way. However, these parameters cannot describe all the variables that influence the perception of quality on the end-user’s side. For this reason, a new measure, called QoE, has been defined to reflect the quality perceived by end users [10,11,12]. The definition of QoE is closely related to the subjective perception of the end user. QoE is described by the ITU-T as “the overall acceptability of an application or service, as subjectively perceived by the end user”, which “may be influenced by the context and the expectations of users ” [13].

Research on QoE is often based on subjective studies. In these subjective studies, users rate the perceived quality of a service or application. Generally, these studies are done in a specialized laboratory [14]. However, these subjective tests are tedious and expensive. In addition, this kind of test cannot be applied in a real-time system, such as most media services [15].

2.3 DASH

DASH is a new standard used for video streaming. MPEG-DASH [16] introduces the Media Presentation Concept (MPD) [17], which is a structured set of video / audio content: A multimedia presentation consisting of a sequence of one or more consecutive periods that do not overlap. Each period comprises one or more representations of the same multimedia content and has a startup time allocated to it from the start of the media presentation. Each representation specifies a video quality profile consisting of several parameters such as bandwidth, encoding, and resolution. Also a representation contains one or more segments, represented and located by their Universal Resource Locator (URL). The segments contain fragments of the actual video content. The MPEG DASH protocol specifies the MPD syntax and semantics, segment format, and delivery protocol (HTTP). Fortunately, it allows flexible configurations to implement different types of streaming services. The following parameters can be flexibly selected: the size and duration of the segments, the number of representations and the profile of each representation (bit rate, CODEC, container format, etc.) Regarding the behavior of the client, it can decide in a flexible way when and how to download segments and choose an appropriate representation. The overview of the functioning of the DASH protocol is summarized in the Fig. 2.

In this work we will use DASH in an SDN context by adding some modules to better improve the QoE: we will rely on Machine Learning to estimate the next level according to the current network conditions. This work is not done to each new segment as the typical DASH but if the SDN controller indicates a change in the parameters that affects the quality in order to gain energies of the system time... In a second step, we propose a new algorithm which is based on comparison between the estimated level and the level used by the previous segment, the ultimate goal of this approach besides on the adaptation of the levels with the actual network conditions is to reduce a maximum the decreasing switching between the levels during a video sequence based on the maximum number of intermediate quality video segments to be downloaded. We will sight towards the end that this approach succeeds in improving the QoE for all active users in the networks.

Fig. 2
figure 2

How DASH works

3 Related Work

Affording a high quality of user streaming QoE using DASH falls in to two research domains: how to define a set of QoE metrics and how to optimize the Adaptive bitrates algorithm. The QoE can vary by each user. However, in one word it can be modelized by a combination of many metrics. For example, rebuffer, average bitrates, startup time... are the most undesirable case based on [18, 19]. Other works [20,21,22] are interested in the variation of bitrates; the sudden decrease of bitrates can negatively influence the perception of users. However if the bitrate switches progressively inside one quality type, such as between a standard definition field or a high definition field, it might not cause a outstanding difference for the end user.

Several HTTP Adaptive Streaming bitrate algorithms (also called ABR algorithms) and heuristics have been published in the literature. We present in this part a set of the most recent algorithms. MOK et al [23] propose a QoE-aware DASH (or QDASH) system to improve the quality of video perceived by the users. It integrates the bandwidth measurement available in video data probes with proxy measurement architecture. The goal is to avoid video quality oscillations by ensuring a progressive change in bitrate levels by defining an intermediate level into the bitrate switching process (in between quality changes) instead of suddenly switching up/down to the target bitrate level. Nevertheless, QDASH generates significant network overhead especially with a large number of clients... Authors in [24] are based on SDN for dynamic bandwidth allocation using this time the HAS protocol which collects information from different points in the network and analyzes them to provide a more accurate estimate of the user’s QoE final. This solution can optimize the use of the network resource for enhanced QoE via dynamic bandwidth allocation based on the device type, codec used, video content complexity, or business policies. Georgopoulos et al. [25] introduced an SDN-assisted QoE Fairness Framework, called QFF, which tries to optimize the QoE in multiuser case. So, QFF takes in consideration the devices’ resolutions and current network requirements. The proposed framework is based on the SDN controller and OpenFlow [26] capabilities to satisfy QoE optimization. However, their utility function considers only the device resolution and currently available bandwidth and not the current buffer occupancy. Thus, the client may be subject to buffer hunger, reducing end-user QoE. Moreover, the proposed framework generates a lot of overhead that can negatively affect the performance of the system and it cannot support a large number of clients. In other work [27], Jan Willem investigates how DASH Assisting Network Elements (DANEs) can help to enhance bottleneck links for video traffic, with the aim goal to better the user Experience QoE based on Markov Model. In [28], authors propose MulseDASH, which is a novel multiple sensorial media content delivery solutions based on MPEG-DASH. MulseDASH is designed based on Multi-sensorial Media Interaction to improve user QoE levels during the whole video playing.

In other hand, Stream QoE optimization has been studied in a vast range in the literature. HTTP-based adaptive streaming optimization in [29,30,31,32] has defined a vast spectrum of QoE metrics.

In this paper, our work is inspired by the previous proposals and by taking an approach to achieve a high streaming experience in multi-user case using our modeled QoE metrics that are the most metrics affecting the QoE. We use SDN controller to avoid bandwidth estimation problems. Also we are based on machine learning to estimate the best level of the next segment instead of using calculations and algorithms at each chunk duration especially when the network is shared by several clients. By examining experiences results, we can prove that our proposed framework can provide a high average user-received QoE.

4 Contributions of the Manuscript

Today, user experience is a right indicator for network operators and service providers. Moreover, to compete for an important market part, different network operators and service providers should maintain and increase the clients’ subscription. So they require an efficient QoE monitoring and estimation. This improvement can be based on the enhancement of the network environment and/or the parameters coding and flow adaptation. Although, several researches innocently estimate bandwidth from a one-sided client perspective, without taking into account other devices in the network. This behavior can trains in inequity and could potentially lower QoE for all clients. For that, we propose a novel approach based on Software Defined Network (SDN) and DASH service to fairly improve the QoE of multiple competing clients in a shared network environment and to enhance the perceived quality for each user in order to assure the best QoE.

For that, we are based on DASH principle which is very advantageous compared to traditional protocols because it offers a flexible deployment, decreases the stall number and buffering in the current video, also it provides high quality streaming and blameless quality: it is a revolution in the video streaming area. On the other hand we propose the SDN approach to avoid the inaccurate estimation of the available bandwidth that can push to frequent oscillations in quality and throughput.

Our proposed contribution can be summarized in two parts: (1) First, we try to solve the problem of network sharing between active users based on the characteristics of used device. So we propose a novel algorithm which guarantees a better sharing of network capacity and acceptable QoE. We also involve the Poisson process to model the active users in the network. (2) Second, after sharing network capacity fairly, we must guarantee the best video viewing with network disruptions every time for each user. For that, we propose a novel method which serves to minimize the variation in perceived quality with the variation in available network conditions based on DASH principle, the maximum number of intermediate quality video segments to be downloaded n (algorithm 1) and Machine Learning which estimates the threshold of the best quality that can be downloaded.

5 Proposed Solution for Single for Single User

5.1 Modelisation

In this part, we present an exhaustive analysis of the interaction between the DASH, SDN Controller and QoE formulated mathematically as a non-cooperative game with perfect information where each player stops alone his strategic choices without consulting the other players and knows all the past choices of the other players made between them [33]. Indeed, in the purpose of meeting the demand in terms of QoE in the SDN networks, switching from segment i to segment i + 1, the QoE metric (player 1) has 5 strategies: excellent, good, acceptable, poor, bad, with each strategy the DASH (player 2) interacts with 3 possible strategies: increasing the DASH level, decreasing or remaining on the same level as the preceding segment by considering the report sent by the controller and the streamer which examine the weakness of the network to determine the available capacity, the content and the type of video and the connected device.

5.1.1 Modeling Parameters and QoE Optimization Problem

The QoE optimization problem can be modeled with objective manner based on the most affected metrics. We note that if the bitrate increases the video quality increases and we obtain a higher QoE, second the stall during the playback causes a problem in the quality and will be very boring for the user [34]. Third, one of most metrics that degrades the user experience is the oscillation between qualities during the video play mostly the decreasing variation of the qualities. Finally, previous work [10] shows the correlation between Structural Similarity (SSIM), Video Quality metric (VQM) and QoE: this work concludes that the improvement of VQM degrades the QoE while the amelioration of SSIM increases the perceived quality.

Therefore, we are based on these metrics to model the QoE in objective manner:

  1. 1.

    Average bitrates:

    It is the average per segment bitrate of all segments:

    $$\begin{aligned} Q_1 = \frac{1}{M}\sum _{i=1}^{M} b_m \end{aligned}$$
    (1)

    Where M is the number of all chunks of the requested video and \(b_m\) presents the bit rate of the segment m.

  2. 2.

    Average number of decreasing switching:

    This parameter depends of the bitrates for each segment. We are interested in the variation of decreasing levels since the increase of level doesn’t produce any problem on the QoE. So we eliminate the effect of increasing level by \(\gamma\) function.

    $$\begin{aligned} Q_2 = \frac{1}{M-1} \ \gamma (b_m<b_{m-1}) \end{aligned}$$
    (2)
    $$\begin{aligned} where \ \ \ \gamma (x) = 1 \ if \ x \ true \ \end{aligned}$$
    (3)
    $$\begin{aligned} \ \ \ \ \ \ \ \ \ \ \ \ \ 0 \ \ otherwise \end{aligned}$$
    (4)
  3. 3.

    Stall number:

    We define the stall event when the buffer B(t) is empty.

    $$\begin{aligned} Q_3 = \sum _{t=1}^{T} \gamma (B(t) = 0) \end{aligned}$$
    (5)

    Where T is the total duration of current video.

  4. 4.

    Weakness VQM:

    VQM [35] is standardized parameter that measures the objective video quality; it is a full reference parameter that compares the original file and the received video. It measures the perceptual effects of multiple distortions such as blurring, jerky, color distortion... and combines all those measures in unique value which gives an estimation of the global quality. The following equation presents the weakness VQM for the video sequence where M is the number of segments, \(VQM_k\) is the VQM value of the current segment and \(\tau\) is the chunk duration. When \(Q_4\) tends to 0 we obtain a better video quality.

    $$\begin{aligned} Q_4 = \frac{1}{M} \sum _{k=1}^{M} VQM_k e^{k\tau } \end{aligned}$$
    (6)
  5. 5.

    Weakness SSIM:

    SSIM [36] is a simple parameter that measures the structural similarity based on the HVS model. It estimates the video quality by extracting some information such as structure, contrast and compares the values of that information instead of comparing directly the pixels. The weakness SSIM can be presented by the following equation where M is the number of all segments and \(SSIM_k\) is the value of the current segment and \(\tau\) is the chunk duration. When \(Q_5\) tends to 1 we obtain a better video quality.

    $$\begin{aligned} Q_5 = \frac{1}{M} \sum _{k=1}^{M} SSIM_k e^{k\tau } \end{aligned}$$
    (7)

We can put the utility function QoE as multi-linear function as follows:

$$\begin{aligned} QoE_u = \sum _{1}^{5} \rho _i Q_i \end{aligned}$$
(8)

Where \(\rho _{i, i=1,2,3,4,5}\) represents the impact of objective parameters QoE respectively average bitrates, stall number, average number of decreasing switching, Weakness VQM and Weakness SSIM. By maximizing the utility function, the system tries to maximize \(Q_1\) and \(Q_5\) and minimize \(Q_2, Q_3, Q_4\) in order to achieve a better video quality and a better user satisfaction. Finally to reach the Nash equilibrium state, the best strategy is the following equitable solution:

$$Max (QoE)$$
(9)
$$\begin{aligned} Subject \ to \ max (Q_1, Q_5) \ and \ min (Q_2, Q_3, Q_4) \end{aligned}$$
(10)
$$\begin{aligned} \rho _{1,5}>0 \ and \ \rho _{2,3,4}<0 \end{aligned}$$
(11)
$$b_m< c_m < C$$
(12)

5.2 Proposed Approach

In this section, we present our proposed approach which is composed of two interconnected phases: (1) Machine Learning (ML) estimation step to find the most appropriate level with the existing network environment at the current time. This level will be used as a threshold for the quality level selection of the current segment because we must take into account the maximum number of intermediate segments to be downloaded (detailed in the following section). We will consider the available network resources, the device type, and the video content as the parameters affecting the video quality. This step starts when the SDN controller picks up any change that can affect the selected level to avoid unnecessary calculations. The purpose of using Machine Learning is to gain computations and algorithms especially if we have several data or difficult data to determine. So we can minimize the computations time and the complexity and facilitate the work. (2) The second step begins when ML gives the predicted best level; we propose here an algorithm based on comparison between the predicted best level and the previous level. We always refer to the previous level because the huge discontinuity of the visual quality between two successive levels completely degrades the QoE. If we have not change we just have use the quality level of the previous segment. In the Fig. 3, we introduce the diagrammatic flow of the proposed representation.

Fig. 3
figure 3

Diagrammatic flow of single-user process

5.3 Proposed Architecture

The following figure describes the proposed architecture where we use Mininet [37] for the simulation of SDN networks; we select and integrate the RYU framework [38] within our architecture as an SDN controller. It is a central entity that manages flow control to enable intelligent network management where we add new modules:

Fig. 4
figure 4

Proposed architecture

5.3.1 Streamer Module

This module is responsible of video parameters: bitrates, resolution, frame rate. It determines also if the video is in motion or no, subtitled or no, it allows also defining the level of requested chunk of video.

5.3.2 MPD Module

MPEG-DASH introduces the MPD which is a structured set of video content: A multimedia presentation consisting of a sequence of one or more periods that are consecutive and do not overlap. Each period includes one or more representations of the same multimedia content and has a start time attributed to it relative to the beginning of the media presentation. Each representation specifies a video quality profile consisting of several parameters such as bandwidth, encoding, and resolution. Also a representation contains one or more segments, represented and localized by their URL. The segments contain fragments of the actual video content. A MPD is an XML-based file schema that contains the entire structure of a multimedia presentation. In our MPD file we define seven representations as shown in Table 1 and the chink duration is fixed at 10 s.

Table 1 Levels definition

5.3.3 ML-Estimation Best Level Module

To have a better estimated level, it is necessary to consider all the parameters which are in relation with the quality of video such as: the available capacity, the type of device because it plays an important role for the estimation phase: In fact, device with high resolution like HD IPTV requires a high level to give a higher QoE contrary to device with less capability (e.g. Smartphone), the video content; we note that more complex video content such as football match... needs a higher level to achieve the same perceptual quality than more static scene (video without motion) also subtitled videos require a higher resolution and clearer image than simple video, the codec (HEVC, MPEG4). So our ML considers all these parameters.

As we said before this method isn’t based on a fixed interval for the best level prediction. But, at each variation of the resources data i.e. the decrease of the available capacity, change of content..., SDN controller interrogates our ML algorithm to predict the new value of the level. We use python to implement Weka tool [39], we need an experimental test to select the powerful Learning algorithm (analyzed in the next part) and then we will be based to the selected algorithm in this module.

5.3.4 Level Selection Module

This module is presented by the following algorithm; it is interested by the selection of the level to be used in the next segment based on the result of the previous phase. The requested video is split into M segments, each segment of duration \(\tau\). At each \(m\tau\) , our controller controls the network, if we have any change, it interrogates our ML algorithm to predict \(l_{best,m}\) else the current level is determined as the previous level \(l_{m-1}\). The first segment takes as level \(l_{best,1}\). Also B(t) is the buffer length at time t and \(B_min\) is the minimal buffer length. The following algorithm describes the steps taken where we will distinguish two cases:

  1. Case 1:

    the estimated level \(l_{best,m}\) is higher than the previous level, the best choice is that the next segment takes the value of \(l_{best,m}\) , else a closer level to \(l_{best,m}\). So one starts by verifying if with \(l_best\) we can download the segment else one decreases the level with 1. This process repeats until the segment m with level \(l_{best,m-k}\) will be ready to download. To realize this we will compute each time the maximum number of intermediate quality video segments to be downloaded n: If \(n \ge 1\), the corresponding quality level is defined as an achievable level of quality. Therefore, n gives the number of complete segments that can be downloaded within \(t_{buffer}\).

  2. Case 2:

    the estimated level \(l_{best,m}\) is lower than the previous level: We cannot maintain the previous level and the decrease is necessary and obligatory. Contrariwise, if we decrease 2 levels and more we will notice a degradation of QoE. So by using the maximum number of intermediate quality video segments to be downloaded n, we will try to decrease the difference between the 2 successive levels.

figure d

5.4 Analysis and Discuss

We now demonstrate the performance of our approach compared to the traditional Streaming service and the standard DASH. But, we will start with the creation of the appropriate classification model by analysis of the performance of the Learning algorithms to conclude the most efficient algorithm.

5.4.1 Classification Model

We involve 4 algorithms ML using Weka tool: Random Forest, Decision Tree, K-Nearest Neighbors, Neural Network [40]. We interpret the impact of the variation of training set based on k-fold cross validation method [40] where k varies from 5 to 14, the performances, pearson correlation r and RMSE [15], are shown in Fig. 5a, b, respectively.

From these two curves we consider that: first, each algorithm has its own best cross-validation value i.e. Random Forest has a better r with k = 9 but for Decision Tree we obtain a better r with k = 10. Second we can remark that the estimation accuracy of Neural Network is worse than Random Forest, Neural Network and KNN in term of the lowest r, highest RMSE and the longest training time 2.06 s while with Random Forest has as training time 0.08 s. Finally the estimation accuracy of Random Forest RF is best for all cross-validation values. Besides, the advantage of random forest is that manipulates the feature selection automatically as well as tells us the feature importance which extremely useful while adapting the service quality based on the quality prediction made. Thus we conclude that Random Forest is the best one for the best level prediction and we fix K-Cross-validation=9 where we have the best r and the worst RMSE.

Fig. 5
figure 5

Performance results

In other hand, the confusion matrix shows the manners in which our classification model is confused when it makes predictions. In our data, the target variable was the level number 1, 2, 3, 4, 5, 6, 7; The columns tell how our model classified your samples, it’s what our model predicted: for the level (class) 1, 2 and 3 we have 48 examples that are classified as correct (True Positive TP), for the level 4 we have 54 examples that 49 are classified as level 4 (correct ) and 5 as level 5 (incorrect) namely True Negative (TN), the same analysis for level 5, 6, 7. Another metric can be deducted from the confusion matrix “F-Measure” that allows to group in a single number the performances of the classifier (for a given class) with regard to Recall and Precision. We consider that the average F-measure is 0.929 which means a good classification and performance (Fig. 6).

Fig. 6
figure 6

Confusion matrix and performance metrics

5.4.2 Evaluation Metrics

The objective of our proposed method is to enhance the QoE and maintain the level stability. For that, we define our evaluation metrics for this work by:

  • Average MOS : is a subjective metric used to measure the QoE representing overall quality of a stimulus or system. The MOS is expressed as a single rational value, typically in the scale 1–5, where 1 is lowest perceived quality, and 5 is the highest perceived quality. Other MOS scales are also possible, depending on the used test. It is defined by ITU-T in standard P.910 [1]. Then, to measure this metric in our work, we use Absolute Category Rating (ACR) subjective test [1] where we invite 30 participants (15 male and 15 female) with different age between 22 and 38 and different profile (staff, students, professors, PhD student) to watch the requested video and judge the perceived quality using MOS.

  • Level Stability : defines the variation from one level to another (levels define in Table 1) as well as the number of stall events during the video. The minimum variation without stall indicates a better QoE.

5.4.3 Simulation Setup

We have implemented our architecture presented in Fig. 4 in Mininet and we use RYU framework as a SDN controller, a switch virtualized with OpenVswitch and two hosts: the first one is considered as a video streaming server and the second one presents the client watching a video. Besides, we use the famous video “Big Buck Bunny” [41] with codec MPEG4 in our testbed. After that, we compare our approach with traditionnal streaming service and the basic DASH service. Finally, our experience is devided in two phases :

  • In the first phase, we aim to highlight the effect of QoS metrics and device type in the user perception. For that, the detailed scenarios and simulation parameters are summarized in Table 2.

  • In the second experiment, we aim to point the effect of rebuffering and stall events in the level stability. Table 3 outlines the different simulations parameters considered in this phase.

Table 2 Simulation parameters: phase 1
Table 3 Simulation parameters: phase 2

5.4.4 Experimental Results

The results are now presented, Figs. 7 and 8 show the Boxplots of three used methods in the two cases (where client uses Laptop and Smartphone). We remark that the QoE distribution is close especially DASH (QoE varies from 3.5 to 4.1 when we use Laptop in the experiment and from 3.25 to 4.25 when we use Smartphone) and our method (QoE varies from 3.5 to 4.3 when we use Laptop in the experiment and from 3.8 to 4.4 when we use Smartphone) but it is remarkable that the distribution of the proposed approach is the best and the high value of the median (red line in the boxplot) highlights that our approach is the most successful method.

Fig. 7
figure 7

Variance QoE using laptop

Fig. 8
figure 8

Variance QoE using smartphone

Figure 9 shows the variation of quality levels during video playback. For the proposed method, the decrease in levels is fundamental with the decrease of network capacity but the quality level remains between 5 (good quality) and 7 (excellent quality). In total, there are two perturbations which hasn’t negative effect on the QoE. The customer remains satisfied and the quality seems stable.

From t2, DASH degrades the quality of video by 3 levels, then it improves one level: This bad variation doesn’t satisfy the end user because he prefers a constant quality instead of a quality changeable every 10s. Finally, using an old service, we note the existence of stall during 3 and 4 s every 10s, as a matter of fact, the video was watched in 72s instead of 60s which makes the user very annoying.

From those results we conclude that DASH and our proposed approach have a better performance and they succeed to enhance the QoE but our proposed method outperforms the standard DASH.

Fig. 9
figure 9

Level stability

6 Proposed Solution for Multi-user

6.1 Modelisation

In the multi-user case, we have different clients sharing the same network, each user uses a different application such as facebook, reading an online article, watching an online movie or uses the video conference application. The classic methods that are based on an equal allocation of available resources have several disadvantages because they don’t consider different parameters. For that we find with the same network conditions a user is satisfied while other is dissatisfied. For this reason, the search for optimization techniques to satisfy all users is required. Our approach in this part optimizes the resources of the network by considering the satisfaction of all users sharing the network.

The number of existing users at time t in the SDN network is aleatory and unrestricted, we can have one user or three or even n users such as n\(\in\)N. To model the number of users connecting to the network at time t, we propose to use the Poisson process:

The Poisson process is a classic counting process that models the birth process (the arrival of a new customer) and death (the exit of a customer). There are mainly two random variables to consider: (1)The number of users N(t) arriving at the network during time t; this variable is a positive integer or null and (2) the time T that elapses between two consecutive arrivals; this variable is a positive real number or zero. These two random variables are linked because if the number of users N (t) that connect is high, it is that the time between two successive arrivals is low. Then we have three conditions that are equivalent:

  1. 1.

    The probability that a client arrives in the network during an infinitely small time interval \(\varepsilon >0\) is worth \(\lambda \varepsilon + o (\varepsilon )\) with constant \(\lambda\) (this is the process of birth and death).

  2. 2.

    The number of clients N (t) arriving in the network during any time interval t follows a Poisson distribution of mean \(\lambda t\). The laws of Poisson intervene in the modeling of random phenomena where the future is independent of the past. That is to say that the number of users connected at time t does not depend on the numbers of customers at time \(\hbox {t1} <\hbox {t}\).

    $$\begin{aligned} P(N(t)=k) = e^{-\lambda t}\frac{\lambda t^k}{k!} \end{aligned}$$
    (13)
  3. 3.

    The time T that elapses between two consecutive arrivals obeys an exponential law of parameter \(\lambda\) (mean \(\frac{1}{\lambda }\):

    $$\begin{aligned} P(T>t) = e^{-\lambda t} \end{aligned}$$
    (14)

    \(\lambda\): is a real positive constant.

In our work, we will use this constant to distinguish the type of application used by a new client to distinguish which clients need more resources. For this, we suppose that:

  • \(\lambda _1\): For customers who use streaming video: video conference, skype, video call, online video...

  • \(\lambda _2\): For customers who use voice service such as audio call with Skype, messenger...

  • \(\lambda _3\): For simple services such as downloading a pdf doc, facebook support...

    So for a particular \(\lambda _i\), we assume the number of clients presenting to the SDN network.

    Thus, during a period of time follows the Poisson process of parameter \(\lambda _i\) d. We denote by \(X_{d_i}\)the random variable equal to the number of users connecting to the network during t = 0 to t = d.

$$\begin{aligned} \forall \ d\in R:X_{d_i}\rightarrow P(\lambda _id), i.e. X_{d_i} (\omega ) = N, \forall k \in N, \ P(X_{d_i}=k) = e^{-\lambda d}\frac{\lambda d^k}{k!} \end{aligned}$$
(15)

\(\lambda _i\) is an important parameter in the Poisson Process, we have to know how to calculate this parameter to find suitable results. In the follwing subsection we describe the proposed estimation method of \(\lambda\).

6.1.1 \(\lambda _i\) Estimation Model

The most used natural estimator with the Poisson process of \(\lambda\) is \(\frac{N_t}{t}\). Indeed, it estimates it without bias. In practice, it will be sufficient to count the number of customers who arrive before time t large enough to deduce an estimate of \(\lambda\). The asymptotic confidence interval at the level \(1-\alpha\) (or the statistical test) is based on the normal law N (0,1).

$$\begin{aligned}{}[-u_{1-\frac{\alpha }{2}} \frac{\sqrt{N_t}}{t}+\frac{N_t}{t}, u_{1-\frac{\alpha }{2}} \frac{\sqrt{N_t}}{t}+\frac{N_t}{t}] \end{aligned}$$
(16)

With \(u_{1-\frac{\alpha }{2}}\) the quantile of order \(1-\frac{\alpha }{2}\) of the law N (0,1).

6.1.2 Modelization QoE Problem

  1. 1.

    Capacity:

    The capacity distributed for the different categories must be less than or equal to the available capacity in the network, i.e. equation 17 where w is a positive weight factor that depends on category type of user applications (i.e. parameter \(\lambda\)).

    $$\begin{aligned} \sum w_{\lambda _i}c \le C \end{aligned}$$
    (17)
  2. 2.

    QoE equality for all users:

    For each category we will try to satisfy all users by balancing their satisfactions. We don’t consider here the capacity because if we will distribute the available capacity equally, we obtain an imbalance of user satisfaction. i.e. the user connected with a Smartphone will be very satisfied while another user who uses a Tablet or HD TV will be dissatisfied. For that, for all users one must have:

    $$\begin{aligned} MOS_i= MOS_j \ \ \forall i,j \in X_{d_i} \end{aligned}$$
    (18)
  3. 3.

    QoE equality for end users requesting video streaming service:

    We are interested here for users using streaming video service: We will try to balance the satisfaction of all players in the game even if the available resources are less than the resources needed to have excellent quality for all users. Based on game theory, this scenario can be modeled using a cooperative game where players are the users present in the network given by the Poisson process and the adopted strategy is a cooperative strategy. We will divide the users of category \(\lambda _i\) into groups according to the used device to access the network.

    The objective function depends on the device type; it can be formulated as follows:

    $$\begin{aligned} \mu _{ij} = \sum \sum _{j=0}^{N(p)} \lambda _i QoE_{u_j} \end{aligned}$$
    (19)

In this case, the main objective of our system is to maximize the \(\mu _{ij}\) function in order that our users are all satisfied. So, the optimization problem can be written in the following form:

$$\begin{aligned} \left\{ \begin{array}{lll} Maximise \ \mu _{ij}\\ Where \sum w_{\lambda _i}c \le C \\ Where \ \ MOS_j= MOS_k \ \ \forall j,k \in N(P) \end{array} \right. \end{aligned}$$

6.2 Proposed Approach

In this section we present the proposed solution to solve the optimization problem; We will rely on the solution made for a single-user process to build the multi-user approach. The main idea is to use the Poisson process each 10 s to calculate the connecting users. If we have new user: first the system detects the service used (we are interested here only on video streaming service). If the new user uses the video service then we need to determine the available capacity of the network before starting ML prediction for the best level of each user because giving the suitable available network capacity ameliorate the quality level of the next segment so a better QoE. As shown in the following diagram (Fig. 10), the proposed system is asked to know the users connecting with HD equipment presented by n, users connecting with Laptop or Tablet presented by n’ and users connecting with Smartphone presented by n” . After that we are interested to determine the available capacity for each user based on algorithm 2 in order to satisfy all users whatever its device.

Fig. 10
figure 10

Diagrammatic flow of multi-user process

6.3 Proposed Architecture

The Fig. 11 shows the proposed architecture to realize the multi-user system; this architecture is an extension of the single user architecture (Fig. 4). Three modules are added:

Fig. 11
figure 11

Proposed architecture (multi-user case)

6.3.1 Poisson Process Module

Defines the Poisson process, its purpose is to calculate the number of existing clients in the network every 10 s.

6.3.2 Multi-user Module

It contains a loop to perform the functions defined for a single user to all users connected to use a video service.

6.3.3 Available Capacity Module

This module is defined to calculate the available capacity for each user by respecting the used equipment. It is noted that each device requires a different quality to have an acceptable QoE; for example HD TV requires quality settings higher than Smartphone to have the same MOS. In this work, we will consider this hypothesis. After distinguishing the users according to their devices (n, n ’, n ”), this module starts to determine the valid capacity for each user. We define [A’, A”] the capacity interval where the perceived video quality satisfies the client using HDTV, as well as we define [B’, B”] for Laptop or Tablet and [D’, D”] for Smartphone’s where A’<A”, B’<B” and D’<D”.

The following algorithm defines the used process: We will start by dividing the available capacity according to the maximum values i.e. A ”* n + B” * n ’+ D ”* n”, if this total is greater than C: first we try to decrease D”(for Smartphone) only, if it is not sufficient, we will decrease B”, if still not enough we will also decrease A”. : This process continues until the total is equal or less than the available capacity in the network.

figure e

6.4 Analysis and Discuss

6.4.1 Min and Max Capacity

To determine the minimum and maximum capacity values( A’, A”, B’, B”, D’ and D”) that guarantee an acceptable QoE in order to satisfy the end user for each used device, we are based on average MOS defined in Sect. 5.4.2 as evaluation metric in this phase. After that, we vary the bandwidth from 768 to 8000 kbps for each device. The results are shown in Fig. 12:

Fig. 12
figure 12

Average MOS vs network capacity

We note that the quality is satisfactory if MOS is between 3.5 and 5. So we can release from these curves that:

$$\begin{aligned} \text {[A', A'']}= [5000, 7000]\\ \text {[B', B'']}= [3000, 5000]\\ \text {[D', D'']}= [1000, 2600] \end{aligned}$$

6.4.2 Evaluation Metrics and Simulation Setup

In this part, we use the stability level metric defined in Sect. 5.4.3 as evaluation metric and we use the same testbed presented in Sect. 5.4.3 adding two more host as end users. Then, in order to evaluate the performance of our multi-user process, we run a number of experiments upon our testbed using two approaches: our proposed approach and the equally allocation of the available bandwidth between connected users (using video service). We use also the “Big Buck Bunny” video with codec MPEG4 during 120s.

After that, we vary the bandwidth from 1000kbps to 8000kbps. Finally, we propose two scenarios:

  • the first one illustrates clients using the same device (Laptop) where the first client starts playing at time 0, the second stats at 20s followed by the third client at 60s.

  • The second scenario illustrates users using heterogeneous devices; the HD TV client (1080p) starts playing at time 0s. The Tablet (720p) starts its session at 20s, followed by the Smartphone (480p) at 60s.

For each experiment, we measure the bitrates and the associated quality level.

6.4.3 Level Stability

The results of our experiments are now presented; Fig. 13 depicts the level of the downloaded video segments of the first scenario. Figure 13a presents the case when we use bandwidth equally approach and Fig. 13b presents our proposed approach. In both cases the first client benefits a good quality level. However, with the method of bandwidth equality, when the second client starts playing its session, the available bandwidth is divided between the two customers and the quality of the first customer degrades and the second client has lower quality from the beginning (both sessions start with a stall during 4 s). With the intervention of the 3 rd client, the first client sacrifices the most in competition over network resources while the other two clients seem to be unsatisfied with the poor quality. While using our approach, customers seem to be content with the perceived quality; we also notice that there is no stall events. Our method gives an equal available capacity since they use the same device and for each customer we use our methodology based on single user (detailed on the Sect. 4) that’s why at the arrival of the client 2 and 3 the quality level decreases but remains high and acceptable by the presented users.

Fig. 13
figure 13

Level stability (same device)

Figure 14 presents the results of the second scenario using the two approaches: Note that bandwidth fairness is unaware of users’ needs just it divides the available bandwidth according to the active users which causes the degradation of the QoE. In our experiment, at t = 20s the HDTV runs at level 5 and the Tablet at level 4; in this case, the Tablet user gets the maximum QoE because he receives the maximum possible bitrate for the resolution of his device. However, HDTV does not reach as much QoE as possible. This problem is solved by our approach where our ultimate goal is to satisfy all users. Our method uses the algorithm 2 to adapt the bandwidth allocation policy to obtain a better QoE for all users. This approach also improves stability.

Fig. 14
figure 14

Level stability (heterogeneous device)

7 Conclusion

In this paper, we proposed a new framework to enhance the QoE for all clients sharing the network using multimedia service. This approach is based on the principle of DASH and the advantages of SDN controller to optimize the user perception of a heterogeneous clients. Testbed-based evaluations show that the proposed method provides stability and optimizes the user satisfaction across heterogeneous devices in a network. As future work, we will consider besides to the type of device other parameters related to the video quality.