Self-Adaptive Video Encoder Comparison of Multiple Adaptation Strategies Made Simple
Abstract
This paper introduces the case study of an adaptive video encoder, that can be used to compare the behavior of different adaptation strategies that can use multiple actuators to steer the behavior of the software towards a global goal, composed of multiple conflicting objectives. A video camera is producing frames, that the encoder manipulates, with the objective of matching some space requirement, to properly fit a given communication channel. Another objective of the encoder is to maintain a given similarity index between the manipulated frames and the original ones. To achieve the given goal, the software can change three parameters: the quality of the encoding, the noise reduction filter radius and the sharpening filter radius. It is very likely that the two objectives conflict, since a larger frame would have a higher similarity index to its original counterpart. This makes the problem difficult from the control perspective and makes the case study appealing to compare different adaptation strategies.
Authors: Martina Maggio, Alessandro Vittorio Papadopoulos, Antonio Filieri, and Henry Hoffmann
Supplementary material
Run natively
To run the benchmark natively on Ubuntu and generate the reports:
- Install the dependencies
1 2 3 4 5 6 7 8 9 10
sudo apt-get install mplayer sudo apt-get install imagemagick sudo apt-get install python-imaging sudo apt-get install python-numpy sudo apt-get install python-scipy sudo apt-get install python-matplotlib sudo apt-get install python-cvxopt sudo apt-get install texlive-base sudo apt-get install texlive-pictures sudo apt-get install texlive-latex-extra
- Clone the repository
1
git clone https://github.com/martinamaggio/save.git
- Execute the tests
1 2
cd save ./run.sh <controller> <goal_ssim> <goal_framesize>
where controller is
random
,bangbang
, ormpc
;goal_ssim
is a decimal number between 0 and 1;goal_framesize
is a positive integer. For example:
1
./run.sh mpc 0.7 8000
You can add any additional mp4 video in the folder mp4
.
VM
Download the VM, decompress, and start it. cd Desktop/save
and follow the instructions above to execute the tests.