I. Motivation and Introduction
Driven by an unprecedented availability of devices capable of running games, playing has become a mainstream spare time activity for all groups of society. While even the simplest and cheapest smartphone's computational capacity is sufficient for an enormous repertoire of popular games, the situation is different for stationary playing devices such as PCs or game consoles where modern games often require state-of-the-art hardware. Within these eco-systems, players are forced to upgrade their hardware in regular cycles to maintain the ability to enjoy the latest titles. During the last few years, a new game delivery paradigm has gathered momentum, which has the strong potential to break that upgrade cycle: cloud gaming. With this model games are not executed at the client, but on a powerful datacenter server. All outputs are then streamed in real-time to the player over the Internet and input commands are transmitted back vice versa. The major benefit of this approach is that the player's device only needs to display the streamed video - a task that even older and therefore less powerful hardware is capable to do. However, since the transmitted video needs to be compressed and the user input has to be transmitted quickly to the server, the quality of the interaction with the game depends highly on the network connectivity between the client and the server.