HTTP/2, Server Push and Branched Video

Size: px
Start display at page:

Download "HTTP/2, Server Push and Branched Video"

Transcription

1 Linköping University Department of Computer Science Bachelor thesis, 16 ECTS Datateknik 2017 LIU-IDA/LITH-EX-G--17/073--SE HTTP/2, Server Push and Branched Video Evaluation of using HTTP/2 Server Push in Dynamic Adaptive Streaming over HTTP with linear and non-linear prefetching algorithms. Utvärdering av HTTP/2 Server Push vid adaptiv videoströmning. Summia Al-mufti Rasmus Jönsson Supervisor : Niklas Carlsson Examiner : Nahid Shahmehri Linköpings universitet SE Linköping ,

2 Upphovsrätt Detta dokument hålls tillgängligt på Internet eller dess framtida ersättare under 25 år från publiceringsdatum under förutsättning att inga extraordinära omständigheter upps tår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefa ttar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida Copyright The publishers will keep this document online on the Internet or its possible replacement for a period of 25 years starting from the date of publication barring exceptional circumstances. The online availability of the document implies permanent permission for anyone to read, to download, or to print out single copies for his/hers own use and to use it unchanged for non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional upon the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as desc ribed above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its www home page: c Summia Al-mufti Rasmus Jönsson

3 Students in the 5 year Information Technology program complete a semester-long software development project during their sixth semester (third year). The project is completed in midsized groups, and the students implement a mobile application intended to be used in a multiactor setting, currently a search and rescue scenario. In parallel they study several topics relevant to the technical and ethical considerations in the project. The project culminates by demonstrating a working product and a written report documenting the results of the practical development process including requirements elicitation. During the final stage of the semester, students create small groups and specialise in one topic, resulting in a bachelor thesis. The current report represents the results obtained during this specialisation work. Hence, the thesis should be viewed as part of a larger body of work required to pass the semester, including the conditions and requirements for a bachelor thesis.

4 Abstract The purpose of this thesis is to investigate and test the usage of HTTP/2 in dynamic adaptive video streaming as well as to take a look into how it can be used to benefit prefetching algorithms used with branched video. With a series of experiments the performance gains of using HTTP/2 rather than the older standard HTTP/1.1 has been investigated. The results has shown no significant change to player quality and buffer occupancy when using HTTP/2, though our tests has shown in a slight decrease in overall playback quality when using HTTP/2. When using a linear prefetch of two fragments an average quality improvement of 4.59% has been shown, however, the result is inconclusive due to variations in average quality between different values for how many fragments to prefetch. Average buffer occupancy has shown promise with a maximum increase of 12.58%, when using linear prefetch with three fragments. The values for buffer occupancy gains are conclusive. Two implementations for non-linear prefetching has been made. The first one uses HTTP/2 server push to deliver fragments for prefetching and the second one uses clientside invoked HTTP requests to pull fragments from the server. Using HTTP/2 server push has shown in a decrease of 2.5% in average total load time while using client-side pulling has shown in a decrease of 34% in average total load time.

5 Acknowledgments We would like to thank our supervisor Niklas Carlsson and his colleague Vengatanathan Krishnamoorthi for the guidance, help and support during the entire project. We also want to thank the team behind DASH.js and the Go programming language. v

6 Contents Abstract Acknowledgments Contents List of Figures List of Tables iv v vi vii viii 1 Introduction Motivation Aim Research questions Delimitations Theory HTTP/ HTTP/ Dynamic adaptive streaming over HTTP Branched video and prefetching Related works Method Web server Web client Environment Linear prefetching Non-linear prefetching Results Video file Linear prefetching Prefetching with branched video Discussion Linear prefetching Non-linear prefetching Prefetching branched video Method The work in a wider context Conclusion Bibliography 27 vi

7 List of Figures 2.1 Comparison of simplex, multiplex and server push A 20 second video file divided into several fragments of 5 seconds and different qualities Client request a fragment that is delivered by the server An example of a branched video with two branch points A request served with a K-push method Average quality level and buffer level when using HTTP/ Average quality level and buffer level over time when using HTTP/2 without linear prefetching Average quality level and buffer level over time when using HTTP/2 and linear prefetch with k= Average quality level and buffer level over time when using HTTP/2 and linear prefetch with k= Average quality level and buffer level over time when using HTTP/2 and linear prefetch with k= Average quality level and buffer level over time when using HTTP/2 and linear prefetch with k= Results for linear prefetching with confidence intervals Variations for quality and buffer occupancy compared vii

8 List of Tables 4.1 Quality index and corresponding bit-rates Comparison between the test using HTTP/1.1 and HTTP/ Comparison between the test using HTTP/2 and linear prefetching Standard deviation for all the tests Variation for all the tests Load times with and without prefetching and comparison on total load time viii

9 1 Introduction 1.1 Motivation Video streaming is becoming increasingly popular and more people choose to consume media content via their Internet connection. The multinational technology conglomerate Cisco predicts that by the year of 2020 video streaming will account for about 80% of the Internet data traffic [3]. Video streaming is without a doubt a hot-topic in the technology sector. HTTP 1, commonly used to deliver video content, was not originally designed for video streaming. Because of this, more adaptation at the application level is required to give better support for video streaming. In the search for a more effective solution for HTTP, the newer version of HTTP, named HTTP/2, has been developed. This thesis covers how video streaming can benefit from features in the relatively new standard HTTP/2, which is there to complement and eventually replace the old standard HTTP/1.1. The improvement of video streaming can have a huge impact for the end user. This means reduced data usage, reduced battery usage and increased video quality. One of the new features in HTTP/2 is server push that allows the web server to push multiple resource to the client without requiring an explicit request by the client for those resources. 1.2 Aim The aim of this report is to investigate whether or not using HTTP/2 and server push, in the video streaming context, has any performance gains. And how it can be implemented in branched video streaming. In this thesis we have investigated when HTTP/2 and server push is preferred over HTTP/1.1 and what issues HTTP/2 server push can solve compared to HTTP/1.1 in video streaming with the DASH 2 protocol. An investigation to find if HTTP/2 can help solve the problems of HTTP/1.1, when using it to stream video, has also been made. These investigations have been done by implementing a video streaming mechanism using HTTP/2 server push technology. 1 Hyper Text Transfer Protocol 2 Dynamic Adaptive Streaming over HTTP 1

10 1.3. Research questions 1.3 Research questions Are there any benefits of using HTTP/2 in video streaming? Are there any benefits of using HTTP/2 with server push in video streaming? How does these benefits affect the end-user when watching video? How can a non-linear prefetch approach be used with HTTP/2 in branched video streaming? 1.4 Delimitations HTTP/2 has many new features but in this thesis the focus is on the server push functionality. To limit the results from the experiments only quantitative results will be collected and considered, such as how much video is buffered at a given point or what quality is played back. An implementation with server push in a common web server and customization s for video streaming over HTTP/2 has been made. The first implementation is based on a linear prefetch strategy, other strategies to using server push in video streaming, like non-linear prefetching, have also been investigated. The second implementations is an algorithm for non-linear prefetching when playing media of type branched video. 2

11 2 Theory This theory chapter covers how HTTP/2 differs from HTTP/1.1 and the basics of how dynamic adaptive streaming over HTTP works. It also covers a background about branched video streaming and differences between linear and non linear prefetching. 2.1 HTTP/1.1 HTTP/1.1 was first drafted in the RFC 2616 standard and has been around since year 1999 [4]. Today most websites on the Internet still use HTTP/1.1 and the transformation into HTTP/2 is a constant ongoing process, many large Internet companies has already adopted HTTP/2 and many others are expected to follow. Because HTTP/1.1 is still relatively common it is very relevant to look at how it works. HTTP in general is a request driven protocol where a client, usually refereed to as a web browser, send a request to a server to fetch a web page with some content. The resource fetched usually contains links to other resources that also needs to be fetched to display a page in full, such as images and style-sheets. HTTP/1.1 does not feature any type of multiplexing, meaning that resources requested by the client cannot be streamed asynchronously. So the client will have to wait for one response to finish before receiving a response for the next request. This means that if the client wants to load two resources, one fast and one slow, and the slow resource gets requested first, the fast resource cannot be sent until the slow one has finished which causes unnecessary waiting, this type of flow is illustrated in Figure 2.1. This synchronous process is not suitable for today s rich web pages because they often contain a vast amount of links to other required resources, which requires a lot of request to complete rendering of a web page. Because video streaming requests often share the same pipeline as the web page they are located on, they will also take a part in the waiting process for other resources. If another request is being responded to when the web browser is trying to request another video fragment then the video request will have to wait for the other request to finish, this might cause a video to stall 1 during playback. Another problem with HTTP/1.1 is that it in general requires one round trip to the server per request made. This becomes a big issue in high-latency networks. To address this HTTP pipelining was introduced where a number of request can be served over the same TCP con- 1 Video sizes to play for a short period of time. 3

12 2.2. HTTP/2 nection, which removes the need for additional round trips for every request. However, HTTP pipelining is not as widely used and does not add any support for multiplexing. A common way to work around the issue of no multiplexing as default in HTTP/1.1 is to use multiple TCP connections. However, this is not a formal part of the standard of HTTP/1.1 and is not required. It is also usually limited to a maximum of six parallel connections and has no support for prioritizing responses. 2.2 HTTP/2 Internet Engineering Task Force (IETF) introduced a new version of HTTP in the RFC 7540 standard named HTTP/2 [1]. HTTP/2 is an updated version of HTTP/1.1 that includes a variety new features like server push, stream multiplexing and minimizing protocol overhead via efficient compression of HTTP header fields. The aim is to address the issues of HTTP/1.1 and in turn contribute to a faster Internet. The server push technology was originally designed to help reduce web page load latency by allowing the web server to push content that the client might need in the near future, such as external resources on a page the client is currently rendering. This means that some resources may be transmitted to the client before the client is done parsing the link to that content. The idea is that the server can maintain a persistent connection with the client and push multiple resources at the same time without a need to require a request for every resource. This means that the round trip delay which comes with the request-response model can be avoided and the server can simply push all resources the client will need when requesting a specific page into its web browser cache-memory. When the client eventually wants to make a request for a specific resource the request can be instantly loaded if the content is already stored in the web browsers cachememory. Figure 2.1a shows a typical request/response pattern when requesting a website from a HTTP/1.1 server without multiplexing. All resources requested are loaded synchronously. The inclination of the response arrows indicate the size of the resource that is being transferred, a very steep slope would indicate a large file as it would take longer time for it to be transferred. Figure 2.1b shows a typical request/response pattern when using HTTP/2. Responses and requests have the ability to multiplex and be transferred asynchronously. Figure 2.1c shows a typical request/response patterns when using HTTP/2 and server push enabled. Responses are both loaded asynchronously and responses to resource 2 and 3 are pushed by the server instantly rather than requested. 4

13 In the context of video streaming some clear benefits of using HTTP/2 can be identified; 2.3. Dynamic adaptive streaming over Figure 2.1: Comparison of simplex, multiplex and server push. HTTP request 1 request 1 request 1 response 1 request 2 response 2 response 1 push 2 push 3 response 1 request 2 request 3 response 2 request 3 response 3 response 3 (a) Simplex: Resources are loaded in sequence (b) Multiplex: Resources are loaded in parallel (c) Server push & multiplexing: Resources are pushed and loaded in parallel

14 2.3. Dynamic adaptive streaming over HTTP which causes buffering 2. This type of behaviour is unwanted. The available bandwidth is calculated by the client as it downloads video fragments and it is up to the client to choose which fragments to request and download from the server. This client driven interaction is very suitable for the distributed structure of many video streaming services, as there is no need for servers to keep track of different states or do any bandwidth estimations, as this is managed by the client. Figure 2.3: Client request a fragment that is delivered by the server DASH uses an MPD 3 file which is first fetched by the client when a video streaming process is about to begin. The MPD file have a variety of options and tells the client where to find the different video fragments as well as what video encoding has been used to encode the fragments. The MPD file also contains options for minimum and/or maximum buffer. The minimum buffer is a value of how many seconds of video data the client needs to have in its buffer before starting a video playback, if the buffer content falls below this threshold the video continues to play. If the client buffer is entirely empty it will not continue playback until enough fragments has been fetched to reach the minimum buffer threshold. This option helps to keep the client from constantly freezing in bad bandwidth conditions. The maximum buffer option can be used to restrict the client from storing too much content in its buffer. This helps the client to not store too much video data of a too low quality if the bandwidth conditions improves over time. By selecting these factors with care the client can be given instructions to help balance great video quality with the risk of stalling to buffer more video content. The goal of this adaptive streaming mode is to allow users to consume video data in a smooth playback even though bandwidth conditions are bad. The downside of adaptive streaming is that users with unstable connections might experience a lot of shifts in video quality, but the gains in having adaptive streaming mode considered superior to this factor. It should also be stated that different implementations of the DASH protocol may have different characteristics such as different buffer thresholds. Dash.js A commonly used implementation of DASH for websites is dash.js written in JavaScript. This implementation is specially suitable for usage in web browsers as most browsers has support for JavaScript. It works by including a JavaScript file into the web-page and then defining a HTML5 video element with a link pointing to the MDP file. This implementation is the one used in the experiments conducted and was selected due to its common usage and active development. Bandwidth estimation in dash.js One of the factors that has to be taken into consideration when using a specific implementation of DASH is to look at how the bandwidth is estimated. Dash.js estimates bandwidth by using the first received response byte for measuring latency and the time to final byte to 2 The process of downloading content to be played 3 Media Preparation Description 6

15 2.4. Branched video and prefetching measure bandwidth. When using this estimation for adaptive bit-rate selection the measured bandwidth is averaged by a sliding scale. Special consideration in the experiments as to not affect the ability to correctly estimate bandwidth has been taken. 2.4 Branched video and prefetching Linear media is media arranged in a pre-defined order with no end-user interaction, every user receives the same flow of information. Non-linear is the opposite where every user receives a different flow of information depending on their interactions. A common usage for non-linear video streaming is 3D graphics where the user can navigate around a 3D scenery, in this case streaming the video of the users current viewing angle [5]. Branched video is a type of non-linear media of which the users can select different playback paths through the video without noticing interruptions in the video quality [8][10]. A playback path is in most cases selected by the consumer. A path could represent a sub-story or an alternative chain of events that the consumer can choose to watch. Because of the interactive nature of branched video the wait time between selecting a branch until the switching is done will need to be fairly low, as not to affect the consumers experience. Figure 2.4 shows how a branched video might be divided into different paths. Branched video is similar to the concept of alternative videos or recommended videos. Where the user can select from a range of different videos to continue to watch after the current video has finished Figure 2.4: An example of a branched video with two branch points. This is common among different video streaming providers. Although branched video puts even more requirements on the low switch times when branching similar techniques can be applied on both of the concepts. Linear prefetching Linear prefetching is when the prefetching algorithm downloads fragments of a single video stream. Most often also the same quality of which is played back. This is most suitable for linear, single stream, media as it usually only consists of one stream. Non-linear prefetching Non-linear prefetching is when the prefetching algorithm downloads fragments from different video streams. These fragments could either be of the video currently being consumed or of alternative videos that will be presented to the user when the current video finish. The method is most suitable for non-linear media. To access a seamless switching between different paths in non-linear media, prefetching and buffer management is often used [8][10]. The player prefetch fragments for each possible path into a prefetch buffer and manages the content of the video [8]. Prefetching is also useful to provide attractive recommended video choices to the users that often switch quickly between different videos. Studies shows that today s users in online video on-demand (VoD) often switch the video being streamed within a few minutes of viewing [11]. These recommended videos need to be prefetched and buffer managed parallel to the video being played to achieve an instant playback when a user select one of these recommended videos [9]

16 2.5. Related works Branched video Krishnamoorthi et al. [10] define branched video as a traditional linear HAS 4 video that allows the video designer to define arbitrary playback sequences through the underlying linear video and allows the user to choose between alternative playback sequences. The paper covers the design of optimized prefetching policies and buffer management schemes. The goal is to allow a seamless playback even if the user switch from one branch path to another to the last possible moment. And give an uninterrupted playback and maximize the video quality. Alternative videos Krishnamoorthi et al. [9] covers a design, implementation and evaluation of an HAS framework to provide prefetching and buffer managing of the alternative videos. The prefetching design and performance was based on three policy classes called best-effort, token-based and deadline based. In Best-effort policies chunks from the alternative videos will be prefetched only when the buffer occupancy reaches maximum value T max. Token-based policies prefetch chunks in the same way as in best-effort policies but there are differences in how these two policies decides from which video to be prefetched next. The token-based method uses a constant rate to determine when to prefetch fragments of a video. This policy provides greater control at which time an alternative video may first be prefetched. Deadline-based policies, as opposed to token-based policies, provides specific deadlines at which the alternative videos need to be done prefetching rather then when to start prefetching them. This is done to ensure that the alternative videos will be prefetched in time to be played and ensuring that the video is of the highest quality. This type of policies are important for users that prefer a smooth switching between the alternative videos. Multi-video stream bundles Carlsson et al. [2] introduce and present a system design of a general multi-video stream bundle framework. The multi-video stream bundle consists of multiple "parallel" video stream which are synchronized in time. Each of these multiple video streams provides the video from different cameras capturing the same shot or movie. The idea is to allow for example producers to give the freedom to users to switch between different perspective at different times. The multi-video stream bundle framework is to impact the quality adaptive features and time-based chunking of HAS, but also including adaptation in both rate and content. Predictive prefetching Many factors add delays to resources served over HTTP. Such as the disk latency of the server or the time it takes for the web client to process the received data. The use of predictive prefetching can address some of the latency issues in the web. Predictive prefetching basically means having resources that are likely to be accesses later be prefetched by the client. This would in turn limit the load time for these resources [12]. 2.5 Related works There are some papers that covers implementations of DASH featuring HTTP/2. Wei. et. al. [14] have focused on investigating energy efficiency benefits to mobile clients server push could have in adaptive streaming. Their focus has been on testing if using push could allow the mobile device radio unit to go into sleep mode between bulks of pushing a certain amount of video fragments. They describe the HTTP/2 server push functionality as "[...] an 4 HTTP Adaptive Streaming 8

17 2.5. Related works elegant way of changing the HTTP request schedule in video streaming without compromising the scalability of HTTP streaming or making changes to the HTTP resources.". A method they refereed to as the K-push strategy was introduced, where the server would push the k subsequent video fragments for the given bit-rate when the client sends their request for a video fragment of that bit-rate. This strategy would limit the amount of request the client has to send to the server as well as transmitting a set of fragments in bulk rather than spreading them out with a given interval. Sending fragments in bulk means that for a given period of time, when the sent fragments has been received and are awaiting to be played, the radio unit can enter sleep mode until another request is sent for the next k fragments. One of the problems covered in the report is selecting a suitable value for k, such as allowing the radio unit to enter sleep mode. This value can be derived from the power consumption model of the mobile device to reach an optimal value. Van der Hooft et. al. [6] discuss the merits of an HTTP server push approach. The paper is a study based on first performing measurements on the available network in real 4G/LTE networks within the city of Ghent in Belgium. Secondly analyzing the induced bit-rate overhead for video fragments with a sub-second duration. They determined that the fragment duration time should not be lower than 500 ms to limit the overhead to 9.2%. They have done the experiments by using MiniNet framework with a single client and streaming the encoded video from a Jetty server. The client is implemented on the libdash library which is the official reference software of the MPEG-DASH standard. Their results showed in higher video quality (+7.5%) and a lower freeze time (-50.4%) compared to solutions over HTTP/1.1. Huysegems et. al. [7] present ten HTTP/2-based methods to improve the QoE 5 of HAS. The paper covers how to improve the QoE of HAS by reducing the number of video freezes caused by rebuffering. How to reduce the number of quality level changes, reduce the latency for live streaming and reduce the interactivity delay by using HTTP/2 features. The main focus is to design and implement an HTTP/2 push approach in live streaming. The pushbased strategy uses HTTP/2 server push to push very short fragments from server to client. Their result shows that with an RTT of 300 ms the average server-to-display delay can be reduced by 90.1% and the average start-up delay can be reduced by 40.1%. 5 Quality och Experience 9

18 3 Method To test the viability of using HTTP/2 and server push in video streaming context we have carefully measured the impact of using HTTP/2 compared to HTTP/1.1. We have done this with two different types of prefetching: one linear prefetching algorithm and one non-linear prefetching algorithm. For these two types of prefetching we have conducted a series of tests. By doing this we have been able to determine whether or not HTTP/2 has any performance gains, when using server push. We have investigated two factors identified as related to the overall user experience; buffer occupancy and video quality. The buffer occupancy is measured as the average seconds of video the player has buffered during the playback. The overall player quality is the average quality level at which the player is requesting and playing fragments. To make it possible to focus on the main problem we have used an existing DASH implementation and a web server that supports HTTP/2. However, to enable the HTTP/2 server push feature we have implemented a server side logic using the programming language Go/ Because it is also important to use a web client that support HTTP/2, Opera has been selected to perform the tests. 3.1 Web server When traditionally implementing DASH most web servers are sufficient as no special web server support or server side logic is needed to make DASH function, outside of supporting the HTTP standard. Using HTTP/2 will not require any server side logic either, only a web server supporting HTTP/2 will be sufficient. However, when implementing server push, some server side logic is required to take decisions on what data to push to the user. For selecting the web server we wanted to have good support for HTTP/2, a conformance of over 90% is considered to be acceptable as long as there is full support for server push. Because HTTP/2 is such a wide, and relatively new, standard a 100% conformance is not expected by almost any modern web servers. And our test should not be affected by a small deviation from this, as long as the deviation does not relate to a core HTTP/2 feature. To test this we used a RFC 7540 [1] and RFC 7541 [13] compliant conformance testing tool called h2spec 1. h2spec provides a test suite that can run against any web server to check what features of HTTP/2 are supported. 1 Available at: 10

19 3.2. Web client Because we needed to implement some server side logic to get our prefetching algorithms to work properly we wanted to use a web server implementation that allowed us to customize what happens when a request is served. We therefore turned to the programming language Go which has a built in HTTP/2 package and support for server push. When we ran a conformance test using the h2spec testing tool we got a conformance result for the HTTP/2 package in Go/1.8.1 of 92%. The tests showed that Go/1.8.1 had full support for server push. Because of this factor Go/1.8.1 was selected as the web server implementation. In the web-server we have implemented a bandwidth throttling which gives the ability to properly limit the available bandwidth by simply delaying the chunks outgoing data according to a specified limit, this limit is given in Mbit/s and can be changed through a simple API. The bandwidth throttling is built with a steady function meaning that the end result is stable, no deviations or overshoot in the supplied bandwidth occurs. The throttling feature uses a timed loop to copy the response bytes at a desired rate. This rate is also divided by the number of concurrent connections to simulate one throttled connection. We have also tested with Woundershaper, a program to limit bandwidth, but it gave overshoot which we did not want in our tests. The effect of the throttling code has been tested by downloading a large file and using the web client speed indicator as reference. 3.2 Web client The web client used in the tests had no specific requirements other than a full support for HTTP/2. Opera/ was used in the tests. A HTML web page was created with a dash.js client added. The pages also features an added live preview graph that gives instant insight in the test results and a simple set of selectors for adjusting the bandwidth throttling. These settings also persists during test resets. The web page also features a timer, when the timer runs out the test results are automatically stored to a file and the test is reset. This allow for running many consecutive tests without the need for any interaction except for monitoring the overall health of the test. 3.3 Environment The environment of which the tests ran was setup with a web server and web browser with the DASH client running on the same virtual machine. The machine used for the tests with the linear prefetching algorithm was running Windows/ and had no other software except for the browser and the server installed. For the tests with the non-linear prefetching algorithm we ran MacOS/ Linear prefetching For the linear prefetch strategy tested in this report, similarly to the strategy explained in Section 2.5. Where the web server pushes the k next video fragments of the same bit-rate when a request for a specific fragment is received, illustrated in Figure 3.1. The value of the k parameter, how many fragments to prefetch, has been varied across the range of 0-4 to observe any trends in the overall performance impact for the end-user. 11

20 3.4. Linear prefetching Figure 3.1: A request served with a K-push method. We made some server side logic to read the video fragment requests coming from the client to identify what fragments to push when using the linear prefetch method. When a fragment is requested the Go web server reads the request and responds with the fragment requested, it also pushes the k next fragments of the same quality. To allow for easy change of the value k we added an API endpoint on the server to allow dynamic changes from the web client. To fully investigate the gains of using HTTP/2 with server push when consuming linear media there has been six different test configurations where two of these, the configurations with HTTP/1.1 and HTTP/2 without server push, are used as baselines. One test produces one data point per second, that is 180 data points for average quality and 180 data points for average buffer occupancy. The test using HTTP/2 without server push will be compared to the test with HTTP/1.1. The test using server push, with a linear prefetch of 1-4 fragments, has been compared to the HTTP/2 baseline test. For each of the six tests configurations we have ran 10 tests. The results of these 10 tests per configuration has then been averaged across every second of which the test ran, so that 10 tests using a given configuration are reduced to one data set of 120 data points for quality and 120 data points for buffer occupancy representing the total average results of the tests with that configuration. With HTTP/1.1 A simple video streaming test with dash.js using HTTP/1.1 has been conducted and is the HTTP/1.1 baseline used to compare the following two tests. The test was conducted by adding a dash.js video player to a simple web page and rendering it in the browser without HTTP/2 enabled on the server. The video then started and played for 180 seconds until the results where automatically stored and the test restarted, this procedure repeated 10 times. Network throttling was enabled to limit the available bandwidth to 2.5 Mbit/s With HTTP/2 A HTTP/2 baseline test was also run to compare with the next test. The playback process and bandwidth throttling was the same as in the previous test. The test was run to make sure that no other HTTP/2 features other than server push, like multiplexing, is misinterpret as a performance gain in using server push. With HTTP/2 and server push In this test the linear prefetch strategy was implemented and enabled. The video playback process and bandwidth variation was the same as in the previous tests. A few different values of the parameter k was tested, which can be found in Chapter 4. Extracting data Player quality and buffer occupancy was logged in JavaScript once a second during the video playback. At the end of the test, at 180 second, the data collected in JavaScript was posted 12

21 3.5. Non-linear prefetching to the web server. The data was dumped to a file named according to the settings used and the time at which the test finished. When 10 tests had been run for every configuration we combined the results and averaged them. A separate program built in Go reads the files from a collection of files depending on the settings used during the test and synchronizes the timestamps. It then averages the quality and buffer occupancy for every time-stamp, removes the first 60 seconds of the tests and dumps the data to a single file. From this data a plot is generated in gnuplot 2, which is presented in Chapter 4. Comparing the results The first test performed was to measure the buffer occupancy and quality level with HTTP/2 and no linear prefetch. We then wanted to compare this result to the tests run over HTTP/2 with different linear prefetch fragments. The last test performed was again to measure buffer occupancy and quality level but now with HTTP/2 disabled and with no linear prefetch. To remove interference and irregularities by the start-up time in the video stream the first 60 seconds has been cut out. We averaged the 10 tests for each configuration to account for some deviation in the results. Quality and buffer occupancy variation To investigate how the playback quality and buffer occupancy varies we have selected two measurements, the standard deviation and another equation inspired by a report by Yin et. al. [15]. By using the equations (3.1) and (3.2) inspired by Yin et. al. [15] we can measure how the quality and buffer varies over time. 1 K 1 1 K 1 Kÿ q k 1 q k (3.1) k=a Kÿ b k 1 b k (3.2) k=a A high value would indicate "choppiness" in the values and a low value would indicate less changes in the data. K is defined as the total time the test ran, a is the point when to start considering variations (in our case 60 seconds), q k is the quality index at time k and b k is the buffer occupancy at time k. 3.5 Non-linear prefetching We have also created an implementation to prefetch for branched media with the goal of reducing the initial load time when branching a video. The initial load time is calculated from the point the page has loaded until the video starts playing. By automatically branching the video after 60 seconds and sampling the initial load time when using prefetching and when not using prefetching we have established some results. We have made two different tests with non-linear prefetching. The first test with HTTP/2 server push and the second test with client-side invoked HTTP requests, which we call HTTP pull. The difference between the two methods is that the HTTP pull method uses HTTP requests invoked at the clientside to prefetch fragments of the upcoming branches. The method using HTTP/2 server push uses server-side invoked pushes to push the fragments of the upcoming branches. We have made 15 tests in total to average the results. 5 tests without prefetching, 5 tests when prefetching with server push and the other 5 tests when prefetching with HTTP pull. The test is conducted by first playing a video, called stream 1. We sample the initial load time 2 Program for generating plots from csv files 13

22 3.5. Non-linear prefetching for stream 1. After 60 seconds we branch to a second video, stream 2. We sample the initial load time for stream 2. We repeat this procedure 5 times and average the initial load time for stream 1 and stream 2. We then enable our prefetching algorithm and repeat the tests. Our prefetching algorithm uses HTTP/2 server push to push the first 5 fragments of stream 2 as fragments for stream 1 is requested. The fragments that are pushed for stream 2 are of a pre-defined quality level, this is also the quality level that will be enforced on stream 2 during the first 10 seconds of playback. The reason that a pre-defined quality level has been selected is that dash.js would otherwise select a higher quality that can be played back because of the near instant response time of the pushed fragments. We sample the initial load time in the same way as in the tests without prefetching. By comparing these results we can observe what impact our prefetching algorithm has to the initial load time of stream 2. 14

23 4 Results This chapter covers the results of the tests performed over HTTP/1.1 and HTTP/2 with and without linear prefetching and the tests with non-linear prefetching. 4.1 Video file Quality indexes varies from 1-18, Table 4.1 shows the quality indexes with corresponding bitrates for the video used in the tests. Although there are 19 available qualities the results has been focused around quality index It is noticeable that the bandwidth for the average quality is lower than the 2.5 Mbit/s we throttled to in our tests. This might be an indication that the throttling is unstable or incorrect. It may also be an indication of the connection being slower for other reasons or that the video player selects a lower quality than what can be played back given the available bandwidth. Table 4.1: Quality index and corresponding bit-rates. Quality Bit-rate Quality Bit-rate Quality Bit-rate Quality Bit-rate kbps kbps kbps Mbps kbps kbps Mbps Mbps kbps kbps Mbps Mbps kbps kbps Mbps Mbps kbps kbps Mbps Mbps 15

24 4.2. Linear prefetching 4.2 Linear prefetching HTTP/1.1 Figure 4.1 shows the results of the test ran with HTTP/2 disabled, i.e. using HTTP/1.1. The plot shows the average buffer occupancy and quality level of all 10 test for each second. We can observe that the quality level is rather stable and does not incrementally decrease or increase. The buffer occupancy level moves up and down as video is played (removed from buffer) and downloaded (added to buffer). Note that the first 60 seconds of the tests has been discarded to stabilize the results and remove irregularities in initial buffer time, as mentioned in Chapter Quality index Buffer level Average quality index Average buffer level [seconds] Time [seconds] Figure 4.1: Average quality level and buffer level when using HTTP/1.1 HTTP/2 Figure 4.2 shows a section of the average values for the tests conducted without linear prefetch. The quality line shows that the quality level is unstable and incrementally decreases throughout the playback Quality index Buffer level Average quality index Average buffer level [seconds] Time [seconds] Figure 4.2: Average quality level and buffer level over time when using HTTP/2 without linear prefetching 16

25 4.2. Linear prefetching HTTP/2 - Server push enabled Linear prefetch with one fragment Figure 4.3 shows the average result of the tests conducted with linear prefetch with one fragment. Also here we can see that the quality level is unstable and incrementally decreases at the beginning of the tests at the same way as mentioned earlier in Figure 4.2. The decreasing quality could be an indication of an error when combining HTTP/2 server push and bandwidth estimation, although we have not been able to find the reason for this behaviour Quality index Buffer level Average quality index Average buffer level [seconds] Time [seconds] Figure 4.3: Average quality level and buffer level over time when using HTTP/2 and linear prefetch with k=1 Linear prefetch with two fragments Figure 4.4 shows the average result for all 10 tests over HTTP/2 with linear prefetch with two fragments. The quality level line shows that the quality level is unstable as in Figure 4.2 and Figure 4.3. This means there are no big differences on how the quality level acts with these three different settings for prefetching fragments Quality index Buffer level Average quality index Average buffer level [seconds] Time [seconds] Figure 4.4: Average quality level and buffer level over time when using HTTP/2 and linear prefetch with k=2 17

26 4.2. Linear prefetching Linear prefetch with three fragment The average buffer occupancy and quality level with three prefetching fragments of all 10 tests can be shown in figure 4.5 below. As seen in the plot, the quality level here decreases through the playback Quality index Buffer level Average quality index Average buffer level [seconds] Time [seconds] Figure 4.5: Average quality level and buffer level over time when using HTTP/2 and linear prefetch with k=3 Linear prefetch with four fragment The average result of linear prefetching with four fragments shows in Figure 4.6. The average quality level incrementally decreases throughout the playback. We can notice some improvement in the quality level compared to linear prefetching of three fragments seen in Figure Quality index Buffer level Average quality index Average buffer level [seconds] Time [seconds] Figure 4.6: Average quality level and buffer level over time when using HTTP/2 and linear prefetch with k=4 18

27 4.2. Linear prefetching Comparison Table 4.2 compares the results using HTTP/1.1 and HTTP/2. Note that the tests with HTTP/1.1 ran without TLS 1 encryption. Our tests shows that HTTP/2 has no major advantage or disadvantage over HTTP/1.1. Table 4.2: Comparison between the test using HTTP/1.1 and HTTP/2 Push fragment Avg. buffer level Avg. quality level Buffer gain Quality gain HTTP/ s 9.10 (baseline) (baseline) HTTP/2 (k=0) 11.13s % -6.7% A decrease of 6.7% in average quality is not a very significant change. Because the test totals 120 seconds 6.7% only accounts for about 8 seconds of decreased quality on average for HTTP/2 compared to HTTP/1.1. Table 4.3 shows the collected results over the test we made with 2.5 mbit/s bandwidth throttling. The gain indicates the change in relation to the HTTP/2 baseline. An overall positive gain in buffer level has been shown in all the tests with server push enabled. However, the type of impact on the average player quality varies between the different values of k showing a slight decrease for k value 3 and a slight increase for k values 1, 2 and 4. The maximum increase, when using k=2, only accounts for about 6 seconds on average spent on a higher quality meaning that the impact to the end user is minimal. Table 4.3 also shows the confidence interval for quality level. Table 4.3: Comparison between the test using HTTP/2 and linear prefetching Push fragment Avg. buffer level Avg. quality level Buffer gain Quality gain K=0 (no push) (baseline) (baseline) K= s , % 2.47% K= s % 4.59% K= s % -3.65% K= s , % 0.94% Table 4.4 shows the standard deviation σ over the data points collected for each of the five tests with HTTP/2. The variation has been measured on all data points, not the averaged results. The standard deviation indicates the stability in the results collected. This shows that the standard deviation for each buffer and quality does not give a huge different between each k value. This means that the test are stable. Table 4.4: Standard deviation for all the tests Test σ for buffer σ for quality HTTP/ K= K= K= K= K= These results shows a viability to benefit from HTTP/2 features without compromising the stability of video streaming quality or buffer occupancy on the client side. However, the standard deviation only tells us how much the average quality an buffer occupancy varies but not how it varies. 1 Transport Layer Security 19

HTTP Based Adap ve Bitrate Streaming Protocols in Live Surveillance Systems

HTTP Based Adap ve Bitrate Streaming Protocols in Live Surveillance Systems HTTP Based Adapve Bitrate Streaming Protocols in Live Surveillance Systems Daniel Dzabic Jacob Mårtensson Supervisor : Adrian Horga Examiner : Ahmed Rezine External supervisor : Emil Wilock Linköpings

More information

Design and evaluation of a system that coordinate clients to use the same server

Design and evaluation of a system that coordinate clients to use the same server Linköpings universitet/linköping University IDA Department of Computer and Information Science Bachelor Thesis Information Technology Spring term 2017 LIU-IDA/LITH-EX-G--17/067--SE Design and evaluation

More information

Design and Proof-of-Concept Implementation of Interactive Video Streaming with DASH.js

Design and Proof-of-Concept Implementation of Interactive Video Streaming with DASH.js Linköping University Department of Computer and Information Science Bachelor thesis, 16 ECTS Datateknik 2017 LIU-IDA/LITH-EX-G--17/081--SE Design and Proof-of-Concept Implementation of Interactive Video

More information

Multi-Video Streaming with DASH

Multi-Video Streaming with DASH Linköping University Department of Computer Science Bachelor thesis, 16 ECTS Datateknik 217 LIU-IDA/LITH-EX-G--17/71--SE Multi-Video Streaming with DASH Multi-video streaming med DASH Sebastian Andersson

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Final Thesis Network usage profiling for applications on the Android smart phone by Jakob Egnell LIU-IDA/LITH-EX-G 12/004

More information

Design, Implementation, and Performance Evaluation of HLA in Unity

Design, Implementation, and Performance Evaluation of HLA in Unity Linköping University IDA Bachelor Thesis Computer Science Spring 2017 LIU-IDA/LITH-EX-G-17/007--SE Design, Implementation, and Performance Evaluation of HLA in Unity Author: Karl Söderbäck 2017-06-09 Supervisor:

More information

Evaluation of BizTalk360 From a business value perspective

Evaluation of BizTalk360 From a business value perspective Linköpings universitet Institutionen för IDA Kandidatuppsats, 16 hp Högskoleingenjör - Datateknik Vårterminen 2018 LIU-IDA/LITH-EX-G--18/069--SE Evaluation of BizTalk360 From a business value perspective

More information

Design of video players for branched videos

Design of video players for branched videos Linköping University Department of Computer and Information Science Bachelor thesis, 16 ECTS Computer Science 2018 LIU-IDA/LITH-EX-G--18/053--SE Design of video players for branched videos Design av videospelare

More information

Slow rate denial of service attacks on dedicated- versus cloud based server solutions

Slow rate denial of service attacks on dedicated- versus cloud based server solutions Linköping University Department of Computer and Information Science Bachelor thesis, 16 ECTS Information technology 2018 LIU-IDA/LITH-EX-G--18/031--SE Slow rate denial of service attacks on dedicated-

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Final thesis Case Study of Development of a Web Community with ASP.NET MVC 5 by Haci Dogan LIU-IDA/LITH-EX-A--14/060--SE 2014-11-28

More information

Institutionen för datavetenskap

Institutionen för datavetenskap Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer Final thesis and Information Science Minimizing memory requirements

More information

Functional and Security testing of a Mobile Application

Functional and Security testing of a Mobile Application Linköping University Department of Computer Science Bachelor thesis, 16 ECTS Information Technology 2017 LIU-IDA/LITH-EX-G--17/066--SE Functional and Security testing of a Mobile Application Funktionell

More information

Evaluation of a synchronous leader-based group membership

Evaluation of a synchronous leader-based group membership Linköping University Department of Computer Science Bachelor thesis, 16 ECTS Information Technology Spring 2017 LIU-IDA/LITH-EX-G--17/084--SE Evaluation of a synchronous leader-based group membership protocol

More information

Object Migration in a Distributed, Heterogeneous SQL Database Network

Object Migration in a Distributed, Heterogeneous SQL Database Network Linköping University Department of Computer and Information Science Master s thesis, 30 ECTS Computer Engineering (Datateknik) 2018 LIU-IDA/LITH-EX-A--18/008--SE Object Migration in a Distributed, Heterogeneous

More information

Adapting network interactions of a rescue service mobile application for improved battery life

Adapting network interactions of a rescue service mobile application for improved battery life Linköping University Department of Computer and Information Science Bachelor thesis, 16 ECTS Information Technology Spring term 2017 LIU-IDA/LITH-EX-G--2017/068--SE Adapting network interactions of a rescue

More information

Semi-automatic code-to-code transformer for Java

Semi-automatic code-to-code transformer for Java Linköping University Department of Computer Science Master thesis, 30 ECTS Datateknik 2016 LIU-IDA/LITH-EX-A--16/031--SE Semi-automatic code-to-code transformer for Java Transformation of library calls

More information

Department of Electrical Engineering. Division of Information Coding. Master Thesis. Free Viewpoint TV. Mudassar Hussain.

Department of Electrical Engineering. Division of Information Coding. Master Thesis. Free Viewpoint TV. Mudassar Hussain. Department of Electrical Engineering Division of Information Coding Master Thesis Free Viewpoint TV Master thesis performed in Division of Information Coding by Mudassar Hussain LiTH-ISY-EX--10/4437--SE

More information

Comparing Costs of Browser Automation Test Tools with Manual Testing

Comparing Costs of Browser Automation Test Tools with Manual Testing Linköpings universitet The Institution of Computer Science (IDA) Master Theses 30 ECTS Informationsteknologi Autumn 2016 LIU-IDA/LITH-EX-A--16/057--SE Comparing Costs of Browser Automation Test Tools with

More information

Creating a Framework for Consumer-Driven Contract Testing of Java APIs

Creating a Framework for Consumer-Driven Contract Testing of Java APIs Linköping University IDA Bachelor s Degree, 16 ECTS Computer Science Spring term 2018 LIU-IDA/LITH-EX-G--18/022--SE Creating a Framework for Consumer-Driven Contract Testing of Java APIs Fredrik Selleby

More information

Optimizing a software build system through multi-core processing

Optimizing a software build system through multi-core processing Linköping University Department of Computer Science Master thesis, 30 ECTS Datateknik 2019 LIU-IDA/LITH-EX-A--19/004--SE Optimizing a software build system through multi-core processing Robin Dahlberg

More information

Storage and Transformation for Data Analysis Using NoSQL

Storage and Transformation for Data Analysis Using NoSQL Linköping University Department of Computer Science Master thesis, 30 ECTS Information Technology 2017 LIU-IDA/LITH-EX-A--17/049--SE Storage and Transformation for Data Analysis Using NoSQL Lagring och

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Final thesis Introducing Mock framework for Unit Test in a modeling environment by Joakim Braaf LIU-IDA/LITH-EX-G--14/004--SE

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Final thesis Migration process evaluation and design by Henrik Bylin LIU-IDA/LITH-EX-A--13/025--SE 2013-06-10 Linköpings universitet

More information

Creating User Interfaces Using Web-based Technologies to Support Rapid Prototyping in a Desktop Astrovisualization Software

Creating User Interfaces Using Web-based Technologies to Support Rapid Prototyping in a Desktop Astrovisualization Software LiU-ITN-TEK-A--17/062--SE Creating User Interfaces Using Web-based Technologies to Support Rapid Prototyping in a Desktop Astrovisualization Software Klas Eskilson 2017-11-28 Department of Science and

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Final thesis Towards efficient legacy test evaluations at Ericsson AB, Linköping by Karl Gustav Sterneberg LIU-IDA/LITH-EX-A--08/056--SE

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Final thesis A systematic literature Review of Usability Inspection Methods by Ali Ahmed LIU-IDA/LITH-EX-A--13/060--SE 2013-11-01

More information

Personlig visualisering av bloggstatistik

Personlig visualisering av bloggstatistik LiU-ITN-TEK-G-13/005-SE Personlig visualisering av bloggstatistik Tina Durmén Blunt 2013-03-22 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen för teknik

More information

An Approach to Achieve DBMS Vendor Independence for Ides AB s Platform

An Approach to Achieve DBMS Vendor Independence for Ides AB s Platform Linköping University Department of Computer Science Bachelor thesis, 16 ECTS Datateknik 2017 LIU-IDA/LITH-EX-G--17/008--SE An Approach to Achieve DBMS Vendor Independence for Ides AB s Platform Niklas

More information

Analysis of GPU accelerated OpenCL applications on the Intel HD 4600 GPU

Analysis of GPU accelerated OpenCL applications on the Intel HD 4600 GPU Linköping University Department of Computer Science Master thesis, 30 ECTS Computer Science Spring term 2017 LIU-IDA/LITH-EX-A--17/019--SE Analysis of GPU accelerated OpenCL applications on the Intel HD

More information

A Back-End for the SkePU Skeleton Programming Library targeting the Low- Power Multicore Vision Processor

A Back-End for the SkePU Skeleton Programming Library targeting the Low- Power Multicore Vision Processor Linköping University Department of Computer Science Master thesis, 30 ECTS Datateknik 2016 LIU-IDA/LITH-EX-A--16/055--SE A Back-End for the SkePU Skeleton Programming Library targeting the Low- Power Multicore

More information

Automatic LOD selection

Automatic LOD selection LiU-ITN-TEK-A--17/054--SE Automatic LOD selection Isabelle Forsman 2017-10-20 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen för teknik och naturvetenskap

More information

Progressive Web Applications and Code Complexity

Progressive Web Applications and Code Complexity Linköping University Department of Computer and Information Science Master thesis, 30 ECTS Datateknik 2018 LIU-IDA/LITH-EX-A--18/037--SE Progressive Web Applications and Code Complexity An analysis of

More information

Distributed Client Driven Certificate Transparency Log

Distributed Client Driven Certificate Transparency Log Linköping University Department of Computer and Information Science Bachelor thesis, 16 ECTS Information Technology 2018 LIU-IDA/LITH-EX-G--18/055--SE Distributed Client Driven Transparency Log Distribuerad

More information

Implementation and Evaluation of Bluetooth Low Energy as a communication technology for wireless sensor networks

Implementation and Evaluation of Bluetooth Low Energy as a communication technology for wireless sensor networks Linköpings universitet/linköping University IDA HCS Bachelor 16hp Innovative programming Vårterminen/Spring term 2017 ISRN: LIU-IDA/LITH-EX-G--17/015--SE Implementation and Evaluation of Bluetooth Low

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Final thesis A database solution for scientific data from driving simulator studies By Yasser Rasheed LIU-IDA/LITH-EX-A--11/017

More information

Design Optimization of Soft Real-Time Applications on FlexRay Platforms

Design Optimization of Soft Real-Time Applications on FlexRay Platforms Institutionen för Datavetenskap Department of Computer and Information Science Master s thesis Design Optimization of Soft Real-Time Applications on FlexRay Platforms by Mahnaz Malekzadeh LIU-IDA/LITH-EX-A

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Bachelor thesis A TDMA Module for Waterborne Communication with Focus on Clock Synchronization by Anders Persson LIU-IDA-SAS

More information

Information visualization of consulting services statistics

Information visualization of consulting services statistics LiU-ITN-TEK-A--16/051--SE Information visualization of consulting services statistics Johan Sylvan 2016-11-09 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen

More information

Context-based algorithm for face detection

Context-based algorithm for face detection Examensarbete LITH-ITN-MT-EX--05/052--SE Context-based algorithm for face detection Helene Wall 2005-09-07 Department of Science and Technology Linköpings Universitet SE-601 74 Norrköping, Sweden Institutionen

More information

Permissioned Blockchains and Distributed Databases: A Performance Study

Permissioned Blockchains and Distributed Databases: A Performance Study Linköping University Department of Computer and Information Science Master thesis, 30 ECTS Datateknik 2018 LIU-IDA/LITH-EX-A--2018/043--SE Permissioned Blockchains and Distributed Databases: A Performance

More information

Calibration of traffic models in SIDRA

Calibration of traffic models in SIDRA LIU-ITN-TEK-A-13/006-SE Calibration of traffic models in SIDRA Anna-Karin Ekman 2013-03-20 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen för teknik

More information

Network Intrusion and Detection

Network Intrusion and Detection Linköping University Department of Computer and Information Science Bachelor thesis, 16 ECTS Datateknik 202017 LIU-IDA/LITH-EX-G--2017/085--SE Network Intrusion and Detection An evaluation of SNORT Nätverksintrång

More information

Ad-hoc Routing in Low Bandwidth Environments

Ad-hoc Routing in Low Bandwidth Environments Master of Science in Computer Science Department of Computer and Information Science, Linköping University, 2016 Ad-hoc Routing in Low Bandwidth Environments Emil Berg Master of Science in Computer Science

More information

Tablet-based interaction methods for VR.

Tablet-based interaction methods for VR. Examensarbete LITH-ITN-MT-EX--06/026--SE Tablet-based interaction methods for VR. Lisa Lönroth 2006-06-16 Department of Science and Technology Linköpings Universitet SE-601 74 Norrköping, Sweden Institutionen

More information

Development of water leakage detectors

Development of water leakage detectors LiU-ITN-TEK-A--08/068--SE Development of water leakage detectors Anders Pettersson 2008-06-04 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen för teknik

More information

Audial Support for Visual Dense Data Display

Audial Support for Visual Dense Data Display LiU-ITN-TEK-A--17/004--SE Audial Support for Visual Dense Data Display Tobias Erlandsson Gustav Hallström 2017-01-27 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden

More information

Development of a Game Portal for Web-based Motion Games

Development of a Game Portal for Web-based Motion Games Linköping University Department of Computer Science Master thesis, 30 ECTS Datateknik 2017 LIU-IDA/LITH-EX-A--17/013--SE Development of a Game Portal for Web-based Motion Games Ozgur F. Kofali Supervisor

More information

Visualisation of data from IoT systems

Visualisation of data from IoT systems Linköping University Department of Computer Science Master thesis, 30 ECTS Datateknik 2017 LIU-IDA/LITH-EX-A--17/027--SE Visualisation of data from IoT systems A case study of a prototyping tool for data

More information

Utilize OCR text to extract receipt data and classify receipts with common Machine Learning

Utilize OCR text to extract receipt data and classify receipts with common Machine Learning Linköping University Department of Computer and Information Science Bachelor thesis, 16 ECTS Programming 2018 LIU-IDA/LITH-EX-G--18/043--SE Utilize OCR text to extract receipt data and classify receipts

More information

Automatic Test Suite for Physics Simulation System

Automatic Test Suite for Physics Simulation System Examensarbete LITH-ITN-MT-EX--06/042--SE Automatic Test Suite for Physics Simulation System Anders-Petter Mannerfelt Alexander Schrab 2006-09-08 Department of Science and Technology Linköpings Universitet

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Master s Thesis An Approach on Learning Multivariate Regression Chain Graphs from Data by Babak Moghadasin LIU-IDA/LITH-EX-A--13/026

More information

Institutionen för datavetenskap. Study of the Time Triggered Ethernet Dataflow

Institutionen för datavetenskap. Study of the Time Triggered Ethernet Dataflow Institutionen för datavetenskap Department of Computer and Information Science Final thesis Study of the Time Triggered Ethernet Dataflow by Niclas Rosenvik LIU-IDA/LITH-EX-G 15/011 SE 2015-07-08 Linköpings

More information

Debug Interface for Clone of DSP. Examensarbete utfört i Elektroniksystem av. Andreas Nilsson

Debug Interface for Clone of DSP. Examensarbete utfört i Elektroniksystem av. Andreas Nilsson Debug Interface for Clone of 56000 DSP Examensarbete utfört i Elektroniksystem av Andreas Nilsson LITH-ISY-EX-ET--07/0319--SE Linköping 2007 Debug Interface for Clone of 56000 DSP Examensarbete utfört

More information

Visual Data Analysis using Tracked Statistical Measures within Parallel Coordinate Representations

Visual Data Analysis using Tracked Statistical Measures within Parallel Coordinate Representations Examensarbete LITH-ITN-MT-EX--05/030--SE Visual Data Analysis using Tracked Statistical Measures within Parallel Coordinate Representations Daniel Ericson 2005-04-08 Department of Science and Technology

More information

A latency comparison of IoT protocols in MES

A latency comparison of IoT protocols in MES Linköping University Department of Computer and Information Science Master thesis Software and Systems Division Spring 2017 LIU-IDA/LITH-EX-A--17/010--SE A latency comparison of IoT protocols in MES Erik

More information

Advanced Visualization Techniques for Laparoscopic Liver Surgery

Advanced Visualization Techniques for Laparoscopic Liver Surgery LiU-ITN-TEK-A-15/002-SE Advanced Visualization Techniques for Laparoscopic Liver Surgery Dimitrios Felekidis 2015-01-22 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden

More information

Computer-assisted fracture reduction in an orthopaedic pre-operative planning workflow

Computer-assisted fracture reduction in an orthopaedic pre-operative planning workflow LiU-ITN-TEK-A--17/003--SE Computer-assisted fracture reduction in an orthopaedic pre-operative planning workflow Ludvig Mangs 2017-01-09 Department of Science and Technology Linköping University SE-601

More information

Extending the Stream Reasoning in DyKnow with Spatial Reasoning in RCC-8

Extending the Stream Reasoning in DyKnow with Spatial Reasoning in RCC-8 Institutionen för Datavetenskap Department of Computer and Information Science Master s thesis Extending the Stream Reasoning in DyKnow with Spatial Reasoning in RCC-8 by Daniel Lazarovski LIU-IDA/LITH-EX-A

More information

OMSI Test Suite verifier development

OMSI Test Suite verifier development Examensarbete LITH-ITN-ED-EX--07/010--SE OMSI Test Suite verifier development Razvan Bujila Johan Kuru 2007-05-04 Department of Science and Technology Linköpings Universitet SE-601 74 Norrköping, Sweden

More information

Intelligent boundary extraction for area and volume measurement

Intelligent boundary extraction for area and volume measurement Linköping University Department of Computer Science Master thesis, 30 ECTS Datateknik 2017 LIU-IDA/LITH-EX-A--17/009--SE Intelligent boundary extraction for area and volume measurement Using LiveWire for

More information

Optimal Coherent Reconstruction of Unstructured Mesh Sequences with Evolving Topology

Optimal Coherent Reconstruction of Unstructured Mesh Sequences with Evolving Topology LiU-ITN-TEK-A-14/040-SE Optimal Coherent Reconstruction of Unstructured Mesh Sequences with Evolving Topology Christopher Birger 2014-09-22 Department of Science and Technology Linköping University SE-601

More information

Semi-automated annotation of histology images

Semi-automated annotation of histology images Linköping University Department of Computer science Master thesis, 30 ECTS Computer science 2016 LIU-IDA/LITH-EX-A--16/030--SE Semi-automated annotation of histology images Development and evaluation of

More information

Developing a database and a user interface for storing test data for radar equipment

Developing a database and a user interface for storing test data for radar equipment Linköping University IDA- Department of Computer and information Science Bachelor thesis 16hp Educational program: Högskoleingenjör i Datateknik Spring term 2017 ISRN: LIU-IDA/LITH-EX-G--17/006 SE Developing

More information

Institutionen för datavetenskap

Institutionen för datavetenskap Institutionen för datavetenskap Department of Computer and Information Science Final thesis Implementation of a Profibus agent for the Proview process control system by Ferdinand Hauck LIU-IDA/LITH-EX-G--09/004--SE

More information

Network optimisation and topology control of Free Space Optics

Network optimisation and topology control of Free Space Optics LiU-ITN-TEK-A-15/064--SE Network optimisation and topology control of Free Space Optics Emil Hammarström 2015-11-25 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden

More information

Statistical flow data applied to geovisual analytics

Statistical flow data applied to geovisual analytics LiU-ITN-TEK-A--11/051--SE Statistical flow data applied to geovisual analytics Phong Hai Nguyen 2011-08-31 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen

More information

Towards automatic asset management for real-time visualization of urban environments

Towards automatic asset management for real-time visualization of urban environments LiU-ITN-TEK-A--17/049--SE Towards automatic asset management for real-time visualization of urban environments Erik Olsson 2017-09-08 Department of Science and Technology Linköping University SE-601 74

More information

Institutionen för datavetenskap Department of Computer and Information Science

Institutionen för datavetenskap Department of Computer and Information Science Institutionen för datavetenskap Department of Computer and Information Science Final thesis Implementation of a Report Template Editing Tool in Java and JSP by Jacob Matiasson LIU-IDA/LITH-EX-G--14/059--SE

More information

Evaluating Deep Learning Algorithms

Evaluating Deep Learning Algorithms Linköping University Department of Computer and Information Science Master thesis, 30 ECTS Datateknik 202018 LIU-IDA/LITH-EX-A--2018/034--SE Evaluating Deep Learning Algorithms for Steering an Autonomous

More information

Development and piloting of a fully automated, push based, extended session alcohol intervention on university students a feasibility study

Development and piloting of a fully automated, push based, extended session alcohol intervention on university students a feasibility study Department of Computer and Information Science Informationsteknologi LIU-IDA/LITH-EX-A--13/001--SE Development and piloting of a fully automated, push based, extended session alcohol intervention on university

More information

Large fused GPU volume rendering

Large fused GPU volume rendering LiU-ITN-TEK-A--08/108--SE Large fused GPU volume rendering Stefan Lindholm 2008-10-07 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen för teknik och

More information

Hybrid Particle-Grid Water Simulation using Multigrid Pressure Solver

Hybrid Particle-Grid Water Simulation using Multigrid Pressure Solver LiU-ITN-TEK-G--14/006-SE Hybrid Particle-Grid Water Simulation using Multigrid Pressure Solver Per Karlsson 2014-03-13 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden

More information

Illustrative Visualization of Anatomical Structures

Illustrative Visualization of Anatomical Structures LiU-ITN-TEK-A--11/045--SE Illustrative Visualization of Anatomical Structures Erik Jonsson 2011-08-19 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen

More information

Institutionen för datavetenskap

Institutionen för datavetenskap Institutionen för datavetenskap Department of Computer and Information Science Final thesis Developing a new 2D-plotting package for OpenModelica by Haris Kapidzic LIU-IDA/LITH-EX-G 11/007 SE 2011-04-28

More information

A Cycle-Trade Heuristic for the Weighted k-chinese Postman Problem

A Cycle-Trade Heuristic for the Weighted k-chinese Postman Problem Linköping University Department of Computer Science Bachelor thesis, 16 ECTS Computer Science 2018 LIU-IDA/LITH-EX-G--18/073--SE A Cycle-Trade Heuristic for the Weighted k-chinese Postman Problem Anton

More information

Face detection for selective polygon reduction of humanoid meshes

Face detection for selective polygon reduction of humanoid meshes LIU-ITN-TEK-A--15/038--SE Face detection for selective polygon reduction of humanoid meshes Johan Henriksson 2015-06-15 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden

More information

Study of Local Binary Patterns

Study of Local Binary Patterns Examensarbete LITH-ITN-MT-EX--07/040--SE Study of Local Binary Patterns Tobias Lindahl 2007-06- Department of Science and Technology Linköpings universitet SE-60 74 Norrköping, Sweden Institutionen för

More information

Machine Learning of Crystal Formation Energies with Novel Structural Descriptors

Machine Learning of Crystal Formation Energies with Novel Structural Descriptors Linköping University The Department of Physics, Chemistry, and Biology Master thesis, 30 ECTS Applied Physics and Electrical Engineering - Theory, Modelling, Visualization 2017 LIU-IFM/LITH-EX-A--17/3427--SE

More information

Multi-Resolution Volume Rendering of Large Medical Data Sets on the GPU

Multi-Resolution Volume Rendering of Large Medical Data Sets on the GPU LITH-ITN-MT-EX--07/056--SE Multi-Resolution Volume Rendering of Large Medical Data Sets on the GPU Ajden Towfeek 2007-12-20 Department of Science and Technology Linköping University SE-601 74 Norrköping,

More information

Implementing a scalable recommender system for social networks

Implementing a scalable recommender system for social networks LiU-ITN-TEK-A--17/031--SE Implementing a scalable recommender system for social networks Alexander Cederblad 2017-06-08 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden

More information

Real-Time Magnetohydrodynamic Space Weather Visualization

Real-Time Magnetohydrodynamic Space Weather Visualization LiU-ITN-TEK-A--17/048--SE Real-Time Magnetohydrodynamic Space Weather Visualization Oskar Carlbaum Michael Novén 2017-08-30 Department of Science and Technology Linköping University SE-601 74 Norrköping,

More information

LunchHero - a student s everyday hero

LunchHero - a student s everyday hero Linköping University Department of Computer Science Bachelor thesis 18 ECTS Industrial Engineering and Management Spring 2018 LIU-IDA/LITH-EX-G--18/034--SE LunchHero - a student s everyday hero - A case

More information

Markörlös Augmented Reality för visualisering av 3D-objekt i verkliga världen

Markörlös Augmented Reality för visualisering av 3D-objekt i verkliga världen LiU-ITN-TEK-A-14/019-SE Markörlös Augmented Reality för visualisering av 3D-objekt i verkliga världen Semone Kallin Clarke 2014-06-11 Department of Science and Technology Linköping University SE-601 74

More information

Motion Capture to the People: A high quality, low budget approach to real time Motion Capture

Motion Capture to the People: A high quality, low budget approach to real time Motion Capture Examensarbete LITH-ITN-MT-EX--05/013--SE Motion Capture to the People: A high quality, low budget approach to real time Motion Capture Daniel Saidi Magnus Åsard 2005-03-07 Department of Science and Technology

More information

Design and evaluation of a user interface for a WebVR TV platform developed with A-Frame

Design and evaluation of a user interface for a WebVR TV platform developed with A-Frame Linköping University Department of Computer Science Master thesis, 30 ECTS Information Technology 2017 LIU-IDA/LITH-EX-A--17/006--SE Design and evaluation of a user interface for a WebVR TV platform developed

More information

Clustered Importance Sampling for Fast Reflectance Rendering

Clustered Importance Sampling for Fast Reflectance Rendering LiU-ITN-TEK-A--08/082--SE Clustered Importance Sampling for Fast Reflectance Rendering Oskar Åkerlund 2008-06-11 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen

More information

Automatic analysis of eye tracker data from a driving simulator

Automatic analysis of eye tracker data from a driving simulator LiU-ITN-TEK-A--08/033--SE Automatic analysis of eye tracker data from a driving simulator Martin Bergstrand 2008-02-29 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden

More information

Raspberry pi to backplane through SGMII

Raspberry pi to backplane through SGMII LiU-ITN-TEK-A--18/019--SE Raspberry pi to backplane through SGMII Petter Lundström Josef Toma 2018-06-01 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen

More information

Efficient implementation of the Particle Level Set method

Efficient implementation of the Particle Level Set method LiU-ITN-TEK-A--10/050--SE Efficient implementation of the Particle Level Set method John Johansson 2010-09-02 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden Institutionen

More information

Applying Machine Learning to LTE/5G Performance Trend Analysis

Applying Machine Learning to LTE/5G Performance Trend Analysis Master Thesis in Statistics and Data Mining Applying Machine Learning to LTE/5G Performance Trend Analysis Araya Eamrurksiri Division of Statistics Department of Computer and Information Science Linköping

More information

Multi-Volume Rendering in OpenSpace Using A-Buffers for Space Weather Visualizations

Multi-Volume Rendering in OpenSpace Using A-Buffers for Space Weather Visualizations LiU-ITN-TEK-A--17/006--SE Multi-Volume Rendering in OpenSpace Using A-Buffers for Space Weather Visualizations Jonas Strandstedt 2017-02-24 Department of Science and Technology Linköping University SE-601

More information

Institutionen för datavetenskap

Institutionen för datavetenskap Institutionen för datavetenskap Department of Computer and Information Science Final thesis Threat Analysis of Video on Demand Services in Next Generation Networks by Rickard von Essen LIU-IDA/LITH-EX-A

More information

Evaluation of cloud-based infrastructures for scalable applications

Evaluation of cloud-based infrastructures for scalable applications LiU-ITN-TEK-A--17/022--SE Evaluation of cloud-based infrastructures for scalable applications Carl Englund 2017-06-20 Department of Science and Technology Linköping University SE-601 74 Norrköping, Sweden

More information

Automatic Clustering of 3D Objects for Hierarchical Level-of-Detail

Automatic Clustering of 3D Objects for Hierarchical Level-of-Detail LiU-ITN-TEK-A--18/033--SE Automatic Clustering of 3D Objects for Hierarchical Level-of-Detail Benjamin Wiberg 2018-06-14 Department of Science and Technology Linköping University SE-601 74 Norrköping,

More information

Implementation of a Program Address Generator in a DSP processor

Implementation of a Program Address Generator in a DSP processor Implementation of a Program Address Generator in a DSP processor Roland Waltersson Reg nr: LiTH-ISY-EX-ET-0257-2003 2003-05-26 Implementation of a Program Address Generator in a DSP processor Departement

More information

React Native application development

React Native application development Linköpings universitet Institutionen för datavetenskap Examensarbete på avancerad nivå, 30hp Datateknik 2016 LIU-IDA/LITH-EX-A--16/050--SE React Native application development A comparison between native

More information

Automating the process of dividing a map image into sections using Tesseract OCR and pixel traversing

Automating the process of dividing a map image into sections using Tesseract OCR and pixel traversing Linköping University Department of Computer and Information Science Bachelor thesis, 16 ECTS Innovative programming 2018 LIU-IDA/LITH-EX-G--18/041--SE Automating the process of dividing a map image into

More information

Design and evaluation of an educational tool for understanding functionality in flight simulators

Design and evaluation of an educational tool for understanding functionality in flight simulators Linköping University Department of Computer Science Master thesis, 30 ECTS Computer and Information Science 2017 LIU-IDA/LITH-EX-A--17/007--SE Design and evaluation of an educational tool for understanding

More information

Interactive GPU-based Volume Rendering

Interactive GPU-based Volume Rendering Examensarbete LITH-ITN-MT-EX--06/011--SE Interactive GPU-based Volume Rendering Philip Engström 2006-02-20 Department of Science and Technology Linköpings Universitet SE-601 74 Norrköping, Sweden Institutionen

More information

Adaptive Probabilistic Routing in Wireless Ad Hoc Networks

Adaptive Probabilistic Routing in Wireless Ad Hoc Networks LiU-ITN-TEK-A-13/018-SE Adaptive Probabilistic Routing in Wireless Ad Hoc Networks Affaf Hasan Ismail Liaqat 2013-05-23 Department of Science and Technology Linköping University SE-601 7 Norrköping, Sweden

More information