GreenABR is an energy aware adaptive bitrate streaming model designed with deep reinforcement learning.
The proposed power model estimates the power consumption pattern for local playback component by using the normalized streaming attributes of videos. The details of the training methodology and model details are given in Section 3.1.3 of the paper.
- Algorithm:Linear Regression
- Dataset:Collected power measurements during streaming sessions
- Metrics:Root mean squared error(rmse)
- How much time is needed to complete experiments (approximately)?:Three hours
- DOI:10.5281/zenodo.6402904
A linear regression model to estimate the power consumption between 0 and 1 as 1 is the highest.
The dataset for the power consumption measurements and the training code is available under "power_model" folder.
Below is the list of libraries needed for training and saving the model.
- python version = 3.7.3
- Keras version = 2.3.1
- numpy version = 1.16.4
- pandas version = 0.24.2
- scikit-learn version = 0.21.2
- joblib version = 1.0.1
To install the required libraries:
python setup.py
To train the power model, run the below command under "power_model" folder.
python train.py
The script trains the model, saves it and prints the evaluation results.
For the training dataset, the model performs rmse less than 0.01 and for evaluation dataset it produces rmse 0.036.
GreenABR proposes an energy-aware ABR model designed by using deep reinforcement learning. The training method- ology and details of the model are explained in Section3.2.
- Algorithm:DQN
- Dataset:Power attributes dataset and VMAF measurements
- Metrics:QoE based on Equation 3.
- How much time is needed to complete experiments (approximately)?:Eight hours
- Code licenses (if publicly available)?:BSD-2-Clause
- DOI:10.5281/zenodo.6402904
GreenABR proposes energy aware ABR decisions for HTTP streaming. It requires the power model to be trained in advance. It uses the number of representations as the action space of the RL model, thus requires separate training for six and ten representations case.
All training and evaluation files and required measurement data are available under "GreenABR" folder. The training scripts are available for each representation set separately.
Below is the list of libraries needed for training and saving the model.
- python version = 3.7.3
- Keras version = 2.3.1
- numpy version = 1.16.4
- pandas version = 0.24.2
- scikit-learn version = 0.21.2
- joblib version = 1.0.1
- matplotlib version = 3.1.0
To install the required libraries:
python setup.py
To train GreenABR, run the below command under "rep_6" and "rep_10" folders for the corresponding representation sets.
python GreenABR.py
The script trains the model, saves it for every 1000 iterations
and logs the average reward at each iteration. We found 9000
iterations to be optimal with the hyperparameter values as
learning rate(
To evaluate GreenABR for any representation set, copy the pre-trained model of the same representation set along with the power model. All required source �les are provided under "evaluation" folder. To generate the streaming logs of the tested videos for GreenABR: python evaluate.py GreenABR is compared with several SOTA models and their streaming logs are generated by using their testing simulators, Sabre and Pensieve. Results are stored under "test_results" folder for all algorithms. To plot the graphs, run:
python create_summary_results.py
python plot_graphs.py
for each representation set under the corresponding folder.
Comparing ABRs designed for di�erent goals are not trivial and may lead to misleading results in terms of real users per- ception. To enable fair comparisons, we designed a standard QoE model based on SQoE-III [ 17 ] dataset which is a large dataset with subjective scores of real users.
- Algorithm:Linear Regression
- Dataset:SQoE-III [ 17 ]
- Metrics:Spearman Correlation Score
- How much time is needed to complete experiments (approximately)?:1 hours
- DOI:10.5281/zenodo.6402904
Our model uses five significant components described in existing quality of experience studies for video streaming. It uses a linear regression model to maximize the Spearman correlation score between the estimated QoE scores and the real users’ mean opinion scores.
The dataset files and the training code are available under "standard_qoe_model" folder.
Below is the list of libraries needed for training and saving the model.
- python version = 3.7.3
- numpy version = 1.16.4
- pandas version = 0.24.2
- scikit-learn version = 0.21.2
To install the required libraries:
python setup.py
To train the QoE model, and find the coefficients:
python train.py
The script trains the model and prints the coefficients along with the Spearman score of the model.
We compared our model with proposed QoE models in Pensieve, Comyco, and the sample model in the dataset. Our model provides the highest score with 0.7845.
To compare with other QoE models:
python compare_models.py