DIY Viltpakket Strengels - assorti  -  www.kralenwinkel.nl pandora applicatie

  • DIY Viltpakket Strengels - assorti
    Vergroot

    Hip en eigentijds viltpakketje 

    Compleet met beschrijving, vilt, garen en vulmateriaal

    Je kan dus direct aan de slag.

    Foto('s):
    DIY Viltpakket Strengels - assorti
    DIY Viltpakket Strengels - assorti_
    DIY Viltpakket Strengels - assorti_
    DIY Viltpakket Strengels - assorti_
    DIY Viltpakket Strengels - assorti_
    DIY Viltpakket Strengels - assorti_
    Relevante producten
    Reviews Review toevoegen

    Deze review wordt direct geplaatst.
     

    tqpxuibr. sitio web de pandora

    Geen reviews gevonden.

    Meer reviews

  • pandora applicatie

    pandora smycken
    Пандоры в продаже
    billige Pandora Armbänder
    ringe pandora

    INDEX AUTHORS


    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    We found 20 books

    We found 115 news item(s)

    OLYSLAGER W.A. (rector van het Begijnhof te Antwerpen)
    750 Jaar Antwerpse begijnen.
    Pb in-8,284 pp., rijkelijk geïll., bibliografie, register. Noteer: Op 15 september 1753 vaardigde keizerin Maria Theresia een edict uit waarbij alle kerkelijke instellingen verplicht werden een lijst in te dienen van al hun onroerende goederen, met opgave van de jaarlijkse ontvangen huurgelden of pachten. Op 15 september 1755 leverde het begijnhof zijn lijst in. (p. 236) Noot Lucas Tessens: In het verdere verloop van de geschiedenis zal haar zoon Jozef II - na inventarisatie door de Kuhlberg - een aantal kloosters afschaffen, de Religiekas oprichten, enz. Tijdens de Franse Revolutie gaat men nog een stap verder en worden alle goederen van kloosters en abdijen genationaliseerd en verkocht als 'nationale goederen'. De kerk van het Begijnhof werd op 30/9/1798 voor 290.000 Livres verkocht aan ene Gobiert, een Brussels opkoper van zwartgoed.
    € 15.0

    BUY

    PEETERS K.C. Dr (redactie), CRAEYBECKX Lode Burgemeester (Voorwoord bij Deel I), STUBBE A. (voorwoord bij Deel IV), STAD ANTWERPEN
    Antwerpen 1860-1960 (= Delen I en II), Antwerpen 1961-1965 (= Deel III), Antwerpen 1966-1970 (= Deel IV)
    Uitgave werd gestart als begeleidend werk bij de tentoonstelling in de Stadsfeestzaal van 15/10/1960 tot 13/11/1960 (gratis toegang, 138.300 bezoekers).
    DEEL I: Originele kartonnen cover, 544 pp. + 80 pp. buitentekstfoto's in ZW. Statistieken over deze periode, grafieken, kaarten, chronologieën, straatnamenregister. Met plannetje van de opstelling van de standen in de Stedelijke Feestzaal.
    DEEL II: verscheen in 1962 en telt 336 pp. + 24 buitentekstplaten. Het bevat ook de errata en de aanvullingen op het eerste deel.

    DEEL III: verscheen in 1967 en telt 521 pp. + een 100-tal buitentekstplaten, bevat de recentere gegevens en tevens een hoofdstuk over de militaire geschiedenis van Antwerpen.
    DEEL IV (zie afbeelding cover): verscheen in 1973 en telt 709 pp. + een fotokatern in fine.
    Een eersteklas referentiewerk over de ontwikkeling van de Stad Antwerpen (vóór de fusie)!
    € 125.0

    BUY

    STAD ANTWERPEN
    De haven van Antwerpen
    Softcover, in-8, 87 pp., zw-foto's, uitslaande kaart van de Antwerpse haven
    € 15.0

    BUY

    The covers of the following books are not yet photographed

    Antwerpen, Antwerpen. Terugblik op een eeuw. 15 oude postkaarten (reprint), Antwerpen, Stadsbestuur, 1999.

    DELEN A.J.J. (Conservator van het stedelijk prentenkabinet te Antwerpen), Teekeningen van Vlaamsche meesters, Antwerpen, Standaard Boekhandel, s.d..

    Gazet van Antwerpen , Haven en goed. 6 bijlagen over de Haven van Antwerpen., Antwerpen, De Vlijt, 1999.

    GEMEENTEBESTUUR VAN ANTWERPEN, Het Oude Antwerpen. Stadsbeeld en stadsleven., Antwerpen, Gemeentebestuur van Antwerpen, 1923.

    Koninklijke Maatschappij der Bouwmeesters van Antwerpen - KMBA, Maandschrift KMBA, 1937, nrs 2, 10, 12, Antwerpen, KMBA, 1937.

    STAD ANTWERPEN, ANTWERPEN.Driemaandelijks tijdschrift van de Stad Antwerpen, jaargang 24 , 1978, nrs 1-2-3-4 (= volledig!), Antwerpen, Stad Antwerpen, 1978.

    STAD ANTWERPEN, ANTWERPEN.Driemaandelijks tijdschrift van de Stad Antwerpen, jaargang 25, 1979, nrs 1-2-3-4 (= volledig!), Antwerpen, Stad Antwerpen, 1979.

    STAD ANTWERPEN, ANTWERPEN.Driemaandelijks tijdschrift van de Stad Antwerpen, jaargang 26 , 1980, nrs 1-2-3-4 (= volledig!), Antwerpen, Stad Antwerpen, 1980.

    STAD ANTWERPEN, ANTWERPEN.Driemaandelijks tijdschrift van de Stad Antwerpen, jaargang 29, 1983, nrs 1-2-3-4 (= volledig!), Antwerpen, Stad Antwerpen, 1983.

    STAD ANTWERPEN, ANTWERPEN.Driemaandelijks tijdschrift van de Stad Antwerpen, jaargang 31, 1985, nrs 1-2-3-4 (= volledig!), Antwerpen, Stad Antwerpen, 1985.

    STAD ANTWERPEN, ANTWERPEN.Driemaandelijks tijdschrift van de Stad Antwerpen, jaargang 32, 1986, nrs 1-2-3-4 (= volledig!), Antwerpen, Stad Antwerpen, 1986.

    STAD ANTWERPEN, ANTWERPEN.Driemaandelijks tijdschrift van de Stad Antwerpen, jaargang 33, 1987, nrs 1-2-3-4 (= volledig!), Antwerpen, Stad Antwerpen, 1987.

    STAD ANTWERPEN, Museum Ridder Smidt Van Gelder. Catalogus I. Schilderijen tot 1800, Antwerp, Ripa, 1980.

    Stad Antwerpen, Waarheen met de antwerpse binnenstad. Wij vragen uw mening, Antwerpen, Planologische dienst/D9, 1974.

    Stad Antwerpen, Sociaal Antwerpen. Overzicht van de naoorlogse sociale activiteiten, van de voor de nabije toekomst geplande werken, en catalogus van de tentoonstelling in de Stedelijke Feestzaal 23 mei tot 7 juni 1970., Antwerpen, Stadsbestuur, 1970.

    STUBBE A. (voorwoord), STAD ANTWERPEN, Antwerpen 1966-1970 (= Deel IV), Antwerpen, Stadsbestuur, 1973.

    VAN DEN BRANDEN F. Jos. [adjunct-archivaris der Stad Antwerpen], Geschiedenis der Antwerpsche Schilderschool., Antwerpen, Buschmann, 1883.

    nws
    Banden tussen Antwerps burgemeester Bart De Wever en Erik Van Der Paal (Land Invest Group) in vraag gesteld door nieuwssite Apache. Groen legt klacht neer.
    Edited: 201711191515



    Antwerpen en immobiliën: een terugblik

    TESSENS Lucas
    Postpunten kunnen vloed van pakjes niet langer aan
    Edited: 201711091209
    Gisteren werd er in het postpunt van Carrefour Pulhof (Berchem/Antwerpen) gestaakt tegen de overlast die het postpunt in de supermarkt veroorzaakt.
    Wij zijn persoonlijk getuige van de onhoudbare toestand. Het postpunt kraakt in zijn voegen en dat is al een paar jaar zo. De kassiersters zien het postpunt als een strafkamp van 12 (twaalf!) vierkante meter.
    Bpost, bij monde van woordvoerster Barbara Van Speybroeck, zegt verbaasd te zijn. Voor mij betekent dat dat Bpost zijn eigen infrastructuur/distributieketen niet kent. Maar ja, het kind moet ook maar zeggen wat ze haar voorkauwen.

    LT
    Antwerpen-Zuid: rellen tussen aanhangers Erdogan en PKK
    Edited: 201710271715







    Een mobiele toepassing voor DASH-gebaseerde videodiensten

    Maat: px Weergave met pagina beginnen:

    Download "Een mobiele toepassing voor DASH-gebaseerde videodiensten"

    Transcriptie

    1 Een mobiele toepassing voor DASH-gebaseerde videodiensten Emanuel Dejonghe Promotoren: prof. dr. ir. Filip De Turck, dr. Jeroen Famaey Begeleiders: ir. Niels Bouten, Stefano Petrangeli Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Vakgroep Informatietechnologie Voorzitter: prof. dr. ir. Daniël De Zutter Faculteit Ingenieurswetenschappen en Architectuur Academiejaar

    2

    3

    4

    5 Een mobiele toepassing voor DASH-gebaseerde videodiensten Emanuel Dejonghe Promotoren: prof. dr. ir. Filip De Turck, dr. Jeroen Famaey Begeleiders: ir. Niels Bouten, Stefano Petrangeli Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: computerwetenschappen Vakgroep Informatietechnologie Voorzitter: prof. dr. ir. Daniël De Zutter Faculteit Ingenieurswetenschappen en Architectuur Academiejaar

    6

    7 Voorwoord Graag wil ik enkele mensen bedanken die mij geholpen hebben bij het tot stand komen van deze masterproef. Eerst en vooral zou ik graag mijn promotoren prof. dr. ir. Filip De Turck en dr. Jeroen Famaey willen bedanken voor het vertrouwen, de goede raad en de kansen die ze me gegeven hebben. Graag wil ik ook mijn begeleiders ir. Niels Bouten en Stefano Petrangeli bedanken voor de tijd die ze voor mij hebben vrijgemaakt, de tips en het grondig evalueren van de tekst. Als laatste wens ik ook mijn ouders te bedanken voor alle steun en de gekregen kansen. Emanuel Dejonghe, juni 2014

    8

    9 Toelating tot bruikleen De auteur geeft de toelating deze masterproef voor consultatie beschikbaar te stellen en delen van de masterproef te kopiëren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze masterproef. Emanuel Dejonghe, juni 2014

    10

    11 Een mobiele toepassing voor DASH-gebaseerde videodiensten door Emanuel Dejonghe Scriptie ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen Academiejaar Promotoren: prof. dr. ir. Filip De Turck, dr. Jeroen Famaey Begeleiders: ir. Niels Bouten, Stefano Petrangeli Faculteit Ingenieurswetenschappen en Architectuur Universiteit Gent Vakgroep Informatietechnologie Voorzitter: prof. dr. ir. Daniël De Zutter Samenvatting Voor het afspelen van video via het Internet zijn er heel wat technologieën beschikbaar. Als we ons focussen op smartphones en tablets blijkt HTTP-Adaptieve Streaming (HAS) veruit de meest interessante te zijn. Bij HAS is de client verantwoordelijk voor het bepalen van de gewenste kwaliteit en kan de kwaliteit aangepast worden tijdens het afspelen van de videostroom. De standaard voor HAS is MPEG Dynamic Adaptive Streaming over HTTP (DASH). Helaas is er voor het ios platform nog geen videospeler beschikbaar die DASH stromen kan afspelen. Er wordt een MPEG DASH videospeler voor ios voorgesteld die specifiek ontwikkeld is voor het onderzoek naar beslissingsalgoritmen. Zo is het mogelijk om vlot tussen algoritmen te wisselen en hun overeenkomstige parameters aan te passen. Verder wordt allerhande data in verband met de afgespeelde videostroom opgeslagen in een logbestand zodat deze achteraf grondig geanalyseerd kunnen worden. In de videospeler zijn er twee beslissingsalgoritmen geïmplementeerd, namelijk een variant op Fair In-Network Enhanced Adaptative Streaming (FINEAS) en een variant op Microsoft Smooth Streaming (MSS). Deze algoritmen worden grondig vergeleken met betrekking tot hun impact op de gebruikservaring en tot slot wordt het batterijverbruik bij verschillende kwaliteitsniveaus en segmentgroottes onderzocht. Trefwoorden videostreaming, mobile, HAS, DASH, ios

    12

    13 A mobile application for DASH-based video services Emanuel Dejonghe Supervisor(s): Filip De Turck, Jeroen Famaey, Niels Bouten, Stefano Petrangeli Abstract HTTP-Adaptive Streaming (HAS) is becoming the de facto standard for video streaming to mobile devices. Dispite the fact that HAS has proven to be so useful in a mobile environment, there is no well functioning DASH video player available for ios. There is also very little known about how the segment duration and video quality influence the battery consumption of ios devices. In this paper we present a MPEG DASH video player for ios which is designed to support research on rate adaptation algorithms in a mobile environment. This video player is then used to evaluate a new rate adaptation algorithm which, in contrast to existing algorithms, aims to directly optimize the Quality of Experience (QoE). This new algorithm is compared against the proprietary Microsoft Smooth Streaming algorithm. We also discuss the influence of segment duration and video quality on the battery life of ios devices. Using the MPEG DASH video player we were able to show that the MSS algorithm can provide a better QoE than the new presented heuristic. We also showed that segment size has a rather limited impact on battery consumption, but streaming video in a higher resolution has a significant impact on the battery life of an ipad. Keywords mobile, HAS, DASH, ios I. INTRODUCTION Video streaming is responsible for more than a half of the total global bandwidth consumption on the Internet [1]. Each month over 6 billion hours of video are watched on YouTube, of which 40% is accessed through mobile devices [2]. In the near future, the mobile bandwidth consumption by video streaming is expected to further increase [3]. A technology which is well suited for video streaming on mobile devices is HAS. Popular HAS implementations are Microsoft Smooth Streaming (MSS), Adobe HTTP Dynamic Streaming, Apple Live Streaming and Dynamic Adaptive Streaming over HTTP (DASH). HAS has several advantages over the traditional streaming technologies (e.g. progressive download and Real-Time Streaming Protocol). The HAS multimedia server offers the video split up in segments and in multiple quality levels. All information about the video stream is stored in a manifest file that can be accessed by the client application. The video application used to play the video stream is equipped with a rate adaptation algorithm that is responsible for selecting the desired quality level. This way, the client can dynamically vary the quality while streaming the video. This characteristic is very interesting for mobile devices as the client can adapt the quality to follow the profile of the available bandwidth. If the rate adaptation algorithm responds properly to variations in the available bandwidth, buffer starvation can be prevented which leads to a higher QoE. It should however be noted that a high amount of quality changes can be disturbing for the end-user and should consequently be kept limited [4]. Since HAS is using HTTP as a transport protocol, HAS streams are not affected by firewalls and NATS. An additional advantage of the use of HTTP is the fact that the existing HTTP infrastructure can be reused. Despite the fact that HAS has proven to be useful in a mobile environment, there is no well functioning DASH video player available for ios. In order to overcome this issue we developed an ios application that can play MPEG DASH streams and which has some interesting features to support research on rate adaptation algorithms. The developed video player is then used to investigate the performance of a variant of the Fair In-Network Enhanced Adaptive Streaming (FINEAS) algorithm developed by Petrangeli et al. [5]. In addition to the study of the performance of rate adaptation algorithms, the effects of segment duration and quality level on the battery life of an ios device are investigated. The remainder of this paper is structured as follow. The design and implementation of the MPEG DASH video player is discussed in Section II. In Section III the variant of the FINEAS algorithm is described and in Section IV the results of the experiments are discussed. Conclusions are presented in Section V. II. MPEG DASH VIDEO PLAYER FOR IOS As stated in the previous section, currently there are no well functioning DASH video players available for ios. VLC for ios should be able to play DASH streams but the playback is unstable and switching between rate adaptation algorithms is suboptimal. To overcome these problems we developed a new video player that is designed to support research on rate adaptation algorithms in a mobile setting. To this end the application offers the following features: Playback of MPEG DASH video streams The ability to select and configure the desired algorithm at run time Relevant statistics are displayed in real time (e.g. bufferlevel, available bandwidth and video bitrate) Important streaming statistics are stored in log files The ability to perform automatic tests The MPEG DASH video player is implemented on top of Libdash 1, which is the official ISO/IEC MPEG-DASH reference software. This open source library provides an interface to the DASH protocol and is responsible for handling the HTTP requests, parsing the manifest file (also called Media Presentation Description (MPD)) and parsing the segments. The rate adaptation algorithm employs Libdash to parse the MPD file and fetch the segments. The playback of the video data extracted from the segments is not obvious on ios. Due to the closed environment and the limitations of the ios SDK, decoding video directly from memory is impossible. Another strong limitation is the fact that the 1 https://github.com/bitmovin/libdash

    14 Quality Avg Switches MOS score Trace 2 Freezes Trace 2 Freezetime Trace 2 Avg Freezetime Trace 2 Avg Quality Avg Switches MOS score Trace 3 Freezes Trace 3 Freezetime Trace 3 Avg Freezetime Trace 3 Avg Quality Avg Switches 3,45 90,00 2, ,32 1,32 3,09 113,00 2, ,03 0,52 3,23 68,00 3,49 65,00 2, ,33 0,67 3,15 78,00 2, ,00 3,26 51,00 Gemid MOS S 5,00 MSS FINEAS TABLE I PERFORMANCE FINEAS AND MSS WITH SEGMENT DURATION 1 SEC. 4,00 Avg Avg nr. Avg freeze Nr. of Avg quality MOS score of freezes time (sec) switches MSS 3.0 ± ± ± ± ± 6.1 FINEAS 2.7 ± ± ± ± ± 22.5 MOS Score 3,00 2,00 1,00 TABLE II PERFORMANCE FINEAS AND MSS WITH SEGMENT DURATION 2 SEC. Avg Avg nr. Avg freeze Nr. of Avg quality MOS score of freezes time (sec) switches MSS 2.9 ± ± ± ± ± 5.3 FINEAS 2.8 ± ± ± ± ± ,00 1 second 2 seconds Segment duration Fig. 1. Comparison between performance of MSS and FINEAS supported video formats are restricted to mov, mp4 and m4s. In order to overcome these limitations the video player appends the video data from the segments to a movie file stored on the device. FFMpeg 2 is then used to decode the video data in that file. The decoded frames are rendered on the screen with OpenGL ES. Adding new algorithms to the MPEG DASH video player is quite straightforward. Thanks to a well defined interface that describes the conditions the new implementation must satisfy. For the research performed in this paper, two algorithms were implemented. The first one is an open source version of the MSS algorithm 3. This algorithm was used as a point of reference for the evaluation of a new rate adaptation algorithm, which is discussed in Section III. III. FINEAS RATE ADAPTATION ALGORITHM FINEAS is a QoE-driven rate adaptation algorithm designed to resolve fairness issues among multiple clients. If multiple clients consume video at the same time, they can negatively influence each others performance as they compete for shared network resources. The modified version presented in this paper is developed for an environment with one client, where fairness is not an issue. Therefore, the in-network logic responsible for guaranteeing fairness among multiple clients was removed. The rate adaptation heuristic that was obtained in this manner has four parameters: buffersize, bufferminimum, qwsize and bufferpercentage. The buffersize indicates how many segments the client can hold in the buffer. The bufferminimum acts as a panic threshold. If the buffer level drops below the bufferminimum the algorithm automatically requests the lowest available quality, in orde to avoid buffer starvation. If the buffer level is greater than bufferminimum the heuristic will try to select the quality level that will result in the best QoE. To do so, the algorithm first excludes all the quality levels that cannot be downloaded in time. A quality level is considered too high to down https://slextensions.svn.codeplex.com/svn/trunk/slextensions/adaptive Streaming/ load in time if the buffer will drop below the bufferminimum before the next segment will arrive. To predict the download time of a segment, an estimation of the current available bandwidth is used. For each of the remaining quality levels the heuristic calculates a utility value. This value is an indicator for the QoE of that quality level and consists of three terms. The first term compares the quality level with the maximum available quality. This way, higher quality levels will have priority over lower ones. The second term compares the quality level with the average quality requested over the last qwsize seconds. By selecting the quality level that is closest to the average quality of the previous segments, excessive fluctuations in quality are avoided. The last term of the utility value gives priority to quality levels who can ensure that the buffer level will remain close to the bufferpercentage. This last parameter sets a target for the buffer level. Filling the buffer up to this target ensures that it remains sufficiently filled. IV. EVALUATION To gain more insight in the performance of the FINEAS algorithm presented in Section III, we compared it with an open source version of Microsoft Smooth Streaming. Since this paper is focusing on mobile ios devices, we also investigated the impact of segment duration and video quality on the battery consumption. This information could serve as an input for a rate adaptation algorithm that improves battery life while watching video streams. A. FINEAS algorithm performance First of all, optimal values for the parameters of the FINEAS algorithm were determined. In order to simulate a realistic mobile network, we used bandwidth throttling to limit the speed of the WiFi network that was used to connect the ipad to the streaming server. The bandwidth profiles were obtained from measurements performed on a real 3G/HSDPA network in Norway [6]. Since the performance of a rate adaptation algorithm strongly depends on the available bandwidth, all experiments were executed with three different bandwidth traces. The DASH video stream that was used for this experiment is a 10 minute version of the Big Buck Bunny movie, which was offered in 4 quality levels with bitrates 333, 468, 750 and 1083 kbps. To investigate the impact of segment duration on the performance of the rate adaptation algorithms, the experiments

    15 were performed with a segment duration of 1 and 2 seconds. To compare the performance of the FINEAS algorithm, the Mean Opinion Score (MOS) metric was used [7,8]. This metric assigns a score between 0 and 5 to a played video stream. A MOS score of 0 indicates an unacceptable QoE, whereas a MOS score of 5 indicates a perfect QoE. All experiments where conducted with a buffersize of 10 seconds on an ipad 3. To find an optimal configuration for the FINEAS rate adaptation algorithm, a total of 69 experiments where executed to investigate the impact of each parameter on the MOS score. These experiments have shown that for a stream with a segment duration of 1 second, a configuration with bufferminimum 4 seconds, qwsize 40 seconds and bufferpercentage 100% results in the highest MOS score. For a stream with a segment duration of 2 seconds, a bufferpercentage of 80% should be used. We also executed these experiments using the MSS algorithm, with a configuration with a panic threshold of 25%, a lower threshold of 40% and an upper threshold of 80%. The results of these experiments are shown in Figure 1 and Tables I and II. MSS always outperforms FINEAS in terms of MOS score. However FINEAS has a slightly higher average quality level. The low MOS score for the FINEAS algorithm is mainly due to the fact that FINEAS has a lot of quality switches. Using the current configuration, FINEAS will be more aggressive in quality decision whereas MSS has a more conservative behavior. This will result in a higher QoE for MSS. B. Impact on battery consumption In a second set of experiments the impact of the segment duration and video quality on the battery consumption of an ipad was investigated. For this experiment DASH streams with a fixed quality of 800, 3100 and 5800 kbps were played for 1 hour. The quality levels with bitrates 800 and 3100 kbps were obtained by encoding a video with a resolution of 864x480 with a different quantization parameter. The quality level of 5800 kbps consist of the same video with a resolution of 1296x720. All streams were generated with segments of 2 and 10 seconds. Since battery draining can differ from device to device, these experiments are conducted on two different ipads. We also ensured that the screen brightness was set to 100% for all the experiments. This way the energy consumption of the screen is kept constant. Tables III and IV show how much the battery level dropped while streaming the video and how many seconds after the start of the stream this difference was reached. The experiment shows that the impact of segment duration on the battery consumption is very limited. On the other hand, the impact of the video quality is significant. Streaming a video with a higher resolution will clearly increase the energy consumption. This can be explained by the fact that decoding and rendering a video with a higher resolution is computationally intensive. TABLE III IMPACT OF QUALITY LEVEL ON BATTERY LEVEL Bitrate 800 kbps Bitrate 3100 kbps Bitrate 5800 kbps Device Batterylevel Time Batterylevel Time Batterylevel Time (%) (sec.) (%) (sec.) (%) (sec.) ipad ipad TABLE IV IMPACT OF SEGMENT DURATION ON BATTERY LEVEL Device Segment duration 10 sec. Segment duration 2 sec. Batterylevel (%) Time (sec.) Batterylevel (%) Time (sec.) ipad ipad We showed that the proprietary MSS algorithm is able to provide a better QoE than this new algorithm. This is mostly due to the high number of quality switches that occur when FINEAS is used. We also showed that the segment duration has a rather limited impact on the battery consumption. On the other hand, streaming video at different qualities has a signifcant impact on the battery life of an ipad, especially when different resolutions are used. REFERENCES [1] Cisco Systems, Cisco Visual Networking Index: Forecast and Methodology, , may 2013, paper c pdf. [2] Youtube statistics, 2014, [3] Cisco Systems, Cisco Visual Networking Index: Global Mobile Data Traffic Forecast Update, , feb 2014, paper c pdf. [4] David C Robinson, Yves Jutras, and Viorel Craciun, Subjective video quality assessment of http adaptive streaming technologies, Bell Labs Technical Journal, vol. 16, no. 4, pp. 5 23, [5] Stefano Petrangeli, Jeroen Famaey, Maxim Claeys, Steven Latré, and Filip De Turck, Qoe-driven rate adaptation heuristic for fair adaptive video streaming, Submitted to ACM Transactions on Multimedia Computing, Communications and Applications, [6] Haakon Riiser, Paul Vigmostad, Carsten Griwodz, and Pål Halvorsen, Commute path bandwidth traces from 3g networks: analysis and applications, in Proceedings of the 4th ACM Multimedia Systems Conference. ACM, 2013, pp [7] M. Claeys, Latré S., and Famaey J., Design and Optimization of a (FA)Q- Learning-based HTTP Adaptive Streaming Client, Science,, no. 26, pp , [8] Johan De Vriendt, Danny De Vleeschauwer, and David Robinson, Model for estimating qoe of video delivered using http adaptive streaming, in Integrated Network Management (IM 2013), 2013 IFIP/IEEE International Symposium on. IEEE, 2013, pp V. CONCLUSIONS In this paper, we presented a MPEG DASH video player for ios that is designed to support research on rate adaptation algorithms and optimized for mobile streaming. This video player was used to evaluate a heuristic that is based on FINEAS [5].

    16 16

    17 INHOUDSOPGAVE i Inhoudsopgave 1 Inleiding Context Probleemstelling Impact mobiele netwerken MPEG DASH videospeler voor ios Batterijduur van mobiele toestellen Doelstelling Structuur Literatuurstudie Video streaming Traditionele streaming technologie Progressieve download technologie HTTP-gebaseerde adaptieve streaming MPEG Dynamic Adaptive Streaming over HTTP Serverzijde Clientzijde Beslissingsalgoritme Bandbreedte Bufferniveau Variatie in bufferniveau Batterijniveau Rekenkracht

    18 ii INHOUDSOPGAVE Gebruikservaring Overige technieken Conclusie MPEG DASH videospeler voor ios Bestaande applicaties Doel van de applicatie Werking van de videospeler Use case 1: Afspelen van een videostroom Use case 2: Automatische testen uitvoeren Architectuur StreamingManager AdaptationAlgorithm AdaptationLogic Decoder Libdash IOManager BatteryMonitor CPUMonitor Implementatie StreamingManager AdaptationAlgorithm AdaptationLogic Decoder Libdash IOManager BatteryMonitor CPUMonitor Conclusie HAS Beslissingsalgoritmen Microsoft Smooth Streaming

    19 INHOUDSOPGAVE iii Werking van het algoritme FINEAS algoritme Werking van het algoritme Evaluatie Evaluatie van het FINEAS algoritme Testopstelling Gebruikte MPEG DASH videostromen Snelheid van de client-server verbinding MOS score Resultaten Evaluatie batterijgebruik Testopstelling Gebruikte MPEG DASH videostromen Snelheid van de client-sever verbinding Resultaten Conclusies Verder Onderzoek Uitbreiding MPEG DASH videospeler Beslissingsalgoritmen Conclusies 61 A Inhoud CD-ROM en DVD 63 Lijst van figuren 69 Lijst van tabellen 71

    20 iv INHOUDSOPGAVE

    21 Woordenlijst v Woordenlijst AVC Advanced Video Coding CDN Content Delivery Network CPU Central Processing Unit DASH Dynamic Adaptive Streaming over HTTP FINEAS Fair In-Network Enhanced Adaptive Streaming GOP Group Of Pictures GPU Graphics Processing Unit HAS HTTP Adaptive Streaming HLS HTTP Live Streaming MOS Mean Opinion Score MPD Media Presentation Description MPEG Moving Picture Experts Group MSS Microsoft Smooth Streaming OpenGL ES Open Graphics Library for Embedded Systems QP Quantization Parameter

    22 vi Woordenlijst RTSP Real-Time Streaming Protocol SDK Software Development Kit SVC Scalable Video Coding TCP Transmission Control Protocol UDP User Datagram Protocol UI User Interface URI Uniform Resource Identifier URL Uniform Resource Locator XML Extensible Markup Language

    23 INLEIDING 1 Hoofdstuk 1 Inleiding 1.1 Context Het bekijken van video via het Internet kende de laatste decennia een sterke toename in populariteit. Wereldwijd bestaat meer dan de helft van de totale bandbreedteconsumptie uit video [1]. Zo wordt bijvoorbeeld elke maand 6 miljard uur video bekeken via YouTube [2]. We kunnen ook via steeds meer toestellen video op het Internet raadplegen, bijvoorbeeld via laptops, desktops, smartphones en tablets. Vooral de laatste twee types, die samen de categorie van de mobiele toestellen vormen, zijn aan een sterke groei bezig. Zo wordt 40% van alle video die maandelijks via YouTube bekeken wordt via mobiele toestellen afgespeeld. Er wordt verwacht dat het streamen van video in ,1% van het totale mobiele data verkeer zal beslaan (zie Figuur 1.1). Als we dit vergelijken met de 53% eind 2013 kunnen we dus een sterke toename verwachten de komende jaren. Een technologie die perfect geschikt is voor het afleveren van video s aan mobiele gebruikers is HTTP Adaptive Streaming (HAS). Hierbij zal de server video s aanbieden in verschillende kwaliteiten en kan de video applicatie zelf beslissen welke van de beschikbare kwaliteiten hij wenst af te spelen. Verder is HAS ook een universele technologie die in principe op zowel laptops, desktops, smartphones als tablets gebruikt kan worden. Omdat HAS zo veel voordelen biedt, hebben enkele grote bedrijven een eigen implementatie van deze technologie. Voorbeelden hiervan zijn Adobe HTTP Dynamic Streaming, Apple HTTP Live Streaming (HLS) en Microsoft Smooth Streaming (MSS). Er is door de Moving Picture Experts Group (MPEG) ook een standaard ontwikkeld voor HAS, namelijk Dynamic Adaptive Streaming over HTTP (DASH).

    24 2 1.2 Probleemstelling Figure 10. Mobile Video Will Generate Over 69 Percent of Mobile Data Traffic by 2018 Figuur 1.1: Voorspelde evolutie van het mobiel datagebruik [3] Because many Internet video applications can be categorized as cloud applications, mobile cloud traffic follows a curve similar to video. Mobile devices have memory and speed limitations that might prevent them from acting as 1.2 Probleemstelling media consumption devices, were it not for cloud applications and services. Cloud applications and services such as Netflix, YouTube, Pandora, and Spotify allow mobile users to overcome the memory capacity and processing power limitations of mobile devices. Globally, cloud applications will account for 90 percent of total mobile data Ondanks het feit dat de hardware van smartphones en tablets de laatste jaren veel krachtiger is traffic by 2018, compared to 82 percent at the end of 2013 (Figure 11). Mobile cloud traffic will grow 12-fold from 2013 to 2018, a compound annual growth rate of 64 percent. geworden, waardoor deze mobiele toestellen nu ook vlot video in hoge kwaliteit kunnen afspelen, zijn er toch nog steeds grote verschillen tussen laptops en desktops enerzijds en smartphones en tablets anderzijds. Zo zijn tablets en smartphones vaak met het Internet verbonden via een mobiel netwerk en is de batterijduur van mobiele toestellen vaak beperkt Impact mobiele netwerken De mobiele netwerken waarvan smartphones en tablets meestal gebruik maken worden steeds sneller (zeker met de komst van 4G) maar vaak blijven deze verbindingen toch onstabiel en schommelt de beschikbare bandbreedte veel meer dan bij de stabiele WiFi netwerken of bekabelde netwerken die doorgaans door desktops en laptops gebruikt worden. De HAS technologie maakt 2014 Cisco and/or its affiliates. All rights reserved. This document is Cisco Public. Page 14 of 40 het mogelijk om op deze schommelingen in bandbreedte in te spelen door de client uit te rusten met een intelligent beslissingsalgoritme. Een beslissingsalgoritme zal de variaties in bandbreedte opsporen en er op een gepaste manier op reageren door de kwaliteit van de afgespeelde video aan te passen zodat de video steeds vloeiend kan worden afgespeeld. Indien het beslissingsalgoritme te laat reageert op een verandering in bandbreedte bestaat de kans dat de buffer aan de clientzijde

    25 1.3 Doelstelling 3 leeg raakt en de video tijdelijk vast loopt. In dat geval doet er zich een freeze voor. Een beslissingsalgoritme dient er echter ook rekening mee te houden dat het te vaak wisselen tussen uiteenlopende videokwaliteiten zeer storend kan zijn voor de gebruiker. Vaak zal het beperken van het aantal wissels en het overschakelen naar een kwaliteit die slechts in beperkte mate afwijkt van de huidige kwaliteit voor een betere gebruikservaring zorgen, zeker bij een daling naar een lager kwaliteitsniveau [4, 5] MPEG DASH videospeler voor ios Om een videostroom op een ipad of iphone af te spelen met behulp van de HAS technologie is er een aangepaste videospeler nodig. Het afspelen van HLS stromen op Apple s ios toestellen is natuurlijk geen enkel probleem, maar voor het afspelen van een DASH stroom is er extra software nodig. Veel videospelers voor ios met ondersteuning voor MPEG DASH zijn echter commerciële producten en met het enige open source alternatief, VLC voor ios, zijn er heel wat problemen. Zo vertoont de videostroom bij het afspelen in VLC zeer veel beeldartefacten, wordt er slechts één resolutie ondersteund en wordt de code niet langer onderhouden. Verder is het in VLC voor ios ook vrij omslachtig om te wisselen tussen twee beslissingsalgoritmen of om de parameters van een algoritme aan te passen. Hiervoor dient de code namelijk elke keer opnieuw gecompileerd te worden Batterijduur van mobiele toestellen Een grote beperking van mobiele toestellen is de eerder beperkte batterijduur. Zeker bij het decoderen van video in hoge definitie kwaliteit, waarbij de Central Processing Unit (CPU) en Graphics Processing Unit (GPU) van een smartphone of tablet zwaar belast zullen worden, zal de batterij sneller leeglopen [6]. Het opnemen van informatie omtrent het batterijverbruik vormt dan ook een nuttige uitbreiding voor het beslissingsalgoritme, zodat op die manier het batterijverbruik beter gecontroleerd kan worden. 1.3 Doelstelling Er is reeds heel wat onderzoek verricht naar het optimaliseren van belissingsalgoritmen aan de hand van diverse technieken. Er is echter nog maar weinig onderzoek uitgevoerd naar het

    26 4 1.4 Structuur optimaliseren van dergelijke algoritmen voor mobiele toestellen. Verder blijkt ook dat er voor ios toestellen nog geen goede videospeler beschikbaar is die MPEG DASH stromen kan afspelen. Het doel van deze scriptie is enerzijds om een ios applicatie te ontwikkelen die MPEG DASH videostromen kan afspelen en anderzijds om na te gaan hoe goed algoritmen presteren in een mobiele omgeving, waar de bandbreedte zeer sterk schommelt. Tot slot wordt de impact van van segmentduur en videokwaliteit op de batterijduur onderzocht. 1.4 Structuur In deze scriptie wordt in Hoofdstuk 2 een overzicht gegeven van verschillende video streaming technologieën, zoals het Real-Time Streaming Protocol, progressieve download en HTTPgebaseerde adaptieve streaming. Verder wordt ook dieper ingegaan op het onderzoek dat reeds gebeurd is naar beslissingsalgoritmen. Daarna wordt in Hoofdstuk 3 de werking en implementatie van de ios MPEG DASH videospeler besproken die tijdens deze scriptie ontwikkeld werd. In Hoofdstuk 4 worden de twee beslissingsalgoritmen, MSS en Fair In-Network Enhanced Adaptive Streaming (FINEAS), die in de MPEG DASH videospeler geïmplementeerd werden verder toegelicht. In Hoofdstuk 5 wordt er op basis van de Mean Opinion Score (MOS) nagegaan wat de beste configuratie is voor het FINEAS algoritme en hoe goed dit algoritme presteert in vergelijking met MSS. Verder wordt in dit hoofdstuk ook het batterijverbruik bij het afspelen van videostromen met een verschillende segmentduur en kwaliteitsniveau geanalyseerd. Tot slot worden in Hoofdstuk 6 nog enkele voorstellen besproken voor verder onderzoek en worden alle conclusies nog eens op een rijtje gezet in Hoofdstuk 7.

    27 LITERATUURSTUDIE 5 Hoofdstuk 2 Literatuurstudie In dit hoofdstuk wordt eerst een overzicht gegeven van enkele verschillende streamingtechnieken, daarna wordt het DASH protocol verder in detail besproken. Vervolgens wordt het gebruik van HAS op mobiele toestellen besproken en tot slot wordt er een overzicht gegeven van bestaande beslissingsalgoritmen voor adaptieve video streaming. 2.1 Video streaming Technologieën voor het streamen van multimedia kunnen opgesplitst worden in drie grote categorieën, namelijk traditionele streaming, progressieve download en HTTP-gebaseerde adaptieve streaming technieken [7, 8] Traditionele streaming technologie Een voorbeeld van een traditionele technologie is het Real-Time Streaming Protocol (RTSP) [7, 8, 9]. Dit protocol werkt volgens het stateful principe wat inhoudt dat de server uitgerust is met speciale software die verantwoordelijk is voor het bijhouden van de toestand van de verschillende clients die op dat moment aan het streamen zijn. De client moet bij de initialisatie eerst een setup commando naar de server sturen. Dit commando zorgt er voor dat de server de nodige resources kan alloceren en een RTSP sessie kan starten. Daarna zal de client commando s als play en pause doorsturen naar de server zodat die de huidige toestand van de client kan updaten en de nodige mediadata naar de client kan sturen. Om de verbinding met de server te verbreken stuurt de client het teardown commando. Op die manier kan de ruimte die op de server gebruikt

    28 6 2.1 Video streaming werd voor het bijhouden van de toestand van die client terug vrijgegeven worden. Tijdens het streamen verstuurt de server pakketten van 1452 bytes naar de client. Dit kan zowel over het User Datagram Protocol (UDP) als het Transmission Control Protocol (TCP) en gebeurt aan de bitrate waarin de video geëncodeerd is. Een video met een bitrate van 1Mbps zal dus aan 1Mbps verstuurd worden. Het is dus belangrijk dat de bitrate van de video lager is dan de bandbreedte van de client-server verbinding, anders zal de video vastlopen, wat nadelig is voor de gebruikservaring Progressieve download technologie Progressieve download [7, 8] is in principe geen echte streaming techniek. Er wordt namelijk gewoon een bestand van de server naar de client gedownload waarbij het bestand tijdens het downloaden al afgespeeld kan worden van zodra de client buffer voldoende gevuld is. Dit betekent dat er bij progressieve download geen speciale streaming server nodig is en er dus een gewone HTTP webserver gebruikt kan worden. Dit is meteen een grote verbetering tegenover RTSP. Daarnaast is het ook een groot voordeel dat de server niet langer de toestand van alle clients moet bijhouden. Dit zal de belasting van de server fors verlagen. Eenmaal het bestand van de server naar de client gedownload is, zit het werk voor de server er op. Het feit dat progressieve download gebruik maakt van het HTTP protocol levert ook nog andere voordelen op. Enkele voorbeelden hiervan zijn: Het gebruik van HTTP zal minder problemen veroorzaken bij het streamen van multimedia naar een toestel dat zich achter een firewall of een NAT bevindt. Alle bestaande optimalisaties (bijvoorbeeld caches) in het HTTP netwerk kunnen benut worden. Het streamen van multimedia kan vanuit een Content Delivery Network (CDN) gebeuren. Progressieve download zal ook beter kunnen omgaan met een tijdelijke variatie in de bandbreedte van de client-server verbinding. Het gebruik van de buffer aan de clientzijde zorgt er namelijk voor dat de bandbreedte van de video tijdelijk hoger kan zijn dan de bandbreedte van de client-server verbinding zonder dat de videostroom gaat vastlopen. Verder kan de gebruiker bij het streamen van een video ook doorspoelen naar een nog niet gedownload stuk video. Hiervoor wordt gebruik gemaakt van HTTP byte range requests. Dit vereist wel dat zowel client als

    29 Request Quality Level C Request Quality Level B Request Quality Level A Video streaming 7 server HTTP/1.1 ondersteunen. Progressieve download heeft echter ook zijn negatieve kanten. De mogelijkheid bestaat dat er bandbreedte verspild wordt als de gebruiker voor het einde van de video stopt met het bekijken van de content. Op dat moment kan er al een groot stuk video gedownload zijn dat nooit bekeken zal worden. Daarnaast is het ook niet mogelijk om tijdens het streamen te wisselen tussen verschillende videokwaliteiten HTTP-gebaseerde adaptieve streaming HTTP-gebaseerde adaptieve streaming technologieën [7, 8, 10] proberen alle problemen van de traditionele en progressieve download streaming technieken op te lossen. Het streamen gebeurt hierbij vanop een gewone HTTP webserver en tijdens het streamen kan de client beslissen om over te schakelen op een lagere of hogere kwaliteit. De videospeler van de client kan ook beslissen hoeveel video er gebufferd moet worden, zo wordt vermeden dat er bandbreedte verspild wordt zoals dat het geval was bij progressive download. Omdat HAS zo veel voordelen biedt hebben enkele grote bedrijven een eigen implementatie van het protocol. Voorbeelden hiervan zijn Adobe HTTP Dynamic Streaming, Apple HLS en MSS. Er is door MPEG ook een standaard ontwikkeld voor HTTP-gebaseerde adaptieve streaming, namelijk DASH. Deze technologie wordt verder in detail besproken in Sectie 2.2. Het basisidee achter al deze verschillende implementaties is echter hetzelfde en wordt weergegeven in Figuur 2.1. Deze algemene werking van HAS kan opgesplitst worden in een client en een serverzijde. HTTP GET QualA-frag1 Client 1 HTTP GET QualA-frag2 Video server A video fragment Video player Network Throughput Quality Adaptation Algorithm HTTP GET QualB-frag4 4 HTTP GET QualB-frag Quality Level A HTTP GET QualC-frag Quality Level B Quality Level C Received Video data Figuur 2.1: Werking van HAS [4] A video clip with three quality levels

    30 8 2.1 Video streaming Serverzijde Als voorbereiding op het streamen van een video met HAS moet de video eerst op de correcte manier geëncodeerd worden. Dit kan bijvoorbeeld met behulp van Advanced Video Coding (AVC) of Scalable Video Coding (SVC) gebeuren. Voor de video naar de client gestreamd kan worden, wordt deze eerst op twee manieren bewerkt. Enerzijds wordt de video omgezet naar verschillende kwaliteiten. Anderzijds zal het videobestand opgesplitst worden in korte videofragmenten die onafhankelijk van elkaar gedecodeerd kunnen worden. Bij het maken van deze opsplitsing moet er rekening gehouden worden met het feit dat niet alle frames onafhankelijk zijn van elkaar. Daarom zal een fragment steeds uit een of meerdere Group Of Pictures (GOP) bestaan. De meest voorkomende lengte voor deze videofragmenten is 2 seconden (bij MSS) of 10 seconden (bij HLS). Alle informatie over de verschillende fragmenten en kwaliteiten wordt opgeslagen in een manifest bestand. Op basis van dit bestand kan de client inzicht krijgen in hoe de data opgehaald moet worden bij de server. Clientzijde Voor de client kan beginnen met het streamen van multimedia moet deze eerst het manifest bestand downloaden van de server. Via dit bestand krijgt de client een overzicht van de beschikbare videofragmenten, de kwaliteiten en waar deze fragmenten gedownload kunnen worden. Het streamen van de video komt dan neer op het downloaden van fragmenten waarbij de client zelf kan beslissen wanneer een fragment gedownload wordt en in welke kwaliteit dat gebeurt. Een van de belangrijkste componenten van een HAS videospeler is dan ook het beslissingsalgoritme. Dit algoritme zal aan de hand van een aantal parameters bepalen wat de optimale kwaliteit is waarin het volgende fragment opgehaald moet worden bij de server. Hierbij zal het algoritme onder andere rekening moeten houden met de mate waarin de buffer aan de clientzijde gevuld is. Voor het downloaden van de fragmenten wordt gebruik gemaakt van HTTP GET requests. Sommige implementaties van HAS ondersteunen het gelijktijdig downloaden van meerdere fragmenten. Daarbij worden dan meerdere TCP connecties in parallel opgezet.

    31 2.2 MPEG Dynamic Adaptive Streaming over HTTP MPEG Dynamic Adaptive Streaming over HTTP DASH [7, 11] is een HAS protocol dat door MPEG als de standaard voor adaptieve video streaming naar voor wordt geschoven. De structuur van DASH is bijna volledig gelijk aan die beschreven in Sectie In deze sectie zal de structuur van DASH in detail besproken worden. Eerst zal de werking van de serverzijde besproken worden, daarna de werking van de clientzijde Serverzijde Voor het encoderen van de video maakt DASH standaard gebruik van H.264/AVC maar er gebeurt ook onderzoek naar het toepassen van de SVC uitbreiding van H.264/AVC. Het videobestand dat later gestreamd zal worden, wordt omgezet naar verschillende kwaliteiten. Deze verschillende videokwaliteiten worden representaties genoemd. De verschillende representaties kunnen een verschillende bitrate hebben als gevolg van een andere framerate, een andere resolutie, etc. Anderzijds wordt de video ook opgesplitst in korte fragmenten. Deze fragmenten worden segmenten genoemd. De duur van deze segmenten kan bijvoorbeeld 10 seconden zijn maar dit is vrij te kiezen. Het manifest bestand dat gebruikt wordt om de structuur van de stroom van de server naar de client te communiceren wordt bij DASH de Media Presentation Description (MPD) genoemd. Op basis van dit Extensible Markup Language (XML)-bestand kan de client opzoeken welke representaties er allemaal beschikbaar zijn en waar de segmenten gedownload kunnen worden. Zoals weergegeven in Figuur 2.2 bevat de MPD vier niveaus. Op het hoogste niveau bevat de MPD een Media Presentation die onderverdeeld wordt in één of meerdere periods. Een periode is een stuk van de mediastroom, bijvoorbeeld van 0 tot 200 seconden. Elke periode bevat op zijn beurt een nieuwe opsplitsing in representations. Deze representaties stellen allemaal dezelfde content voor, namelijk het stuk audio of video binnen de huidige periode, maar in verschillende kwaliteiten. Zo kunnen de verschillende representaties een andere bandbreedte of resolutie hebben. Als laatste worden de verschillende representaties nog eens opgesplitst in de verschillende segments waaruit ze bestaan. Elk segment kan uniek geïdentificeerd worden door een Uniform Resource Identifier (URI). Er bestaan twee types segmenten, initialization segments en media

    32 MPEG Dynamic Adaptive Streaming over HTTP Segment Info Initialization Segment Media Presentation Period, start=0s... Period, start=100s... Period, start=295s Period -start=100 -baseurl=http://www.e.com/... Representation 1 500kbit/s Representation 2 100kbit/s... Representation 1 -bandwidth=500kbit/s -width=640, height= Segment Info Duration=10s Template:./ahs-5-SIndexS.3gs Media Segment 1 start=0s Media Segment 2 start=10s Media Segment 3 start=20s Media Segment 20 start=190s Figuur 2.2: Structuur van het MPD bestand [7] segments. Initialisatie segmenten bevatten geen multimedia maar enkel metadata die nodig is om de media segmenten te kunnen decoderen. De media segmenten bevatten de eigenlijke multimediadata. Het gebruik van initialisatie segmenten is niet verplicht in DASH. Als er geen gebruik gemaakt wordt van deze segmenten dan worden de media segmenten self-initialized media segments genoemd Clientzijde Aan de clientzijde kan de gebruiker met behulp van een native of een HTML5 mediaspeler DASH stromen afspelen. Die mediaspeler zal eerst het MPD bestand ophalen bij de server via een HTTP GET request. Eenmaal de client in het bezit is van het MPD bestand heeft die alle informatie over hoe de videostroom opgebouwd is en kan die de video beginnen streamen. Bij het streamen worden de segmenten van de server naar de client gedownload waarbij de client kan beslissen welke segmenten wanneer opgehaald moeten worden en in welke kwaliteit. De keuze van de kwaliteit gebeurt met behulp van het beslissingsalgoritme van de videospeler. In Sectie 2.3 wordt de werking van een dergelijk algoritme in detail besproken.

    33 2.3 Beslissingsalgoritme Beslissingsalgoritme Het streamen van video naar mobiele toestellen zoals tablets en smartphones is sterk verschillend van het streamen van dezelfde content naar bijvoorbeeld een laptop of een klassieke desktop [12]. Een eerste groot verschil ligt op het vlak van hardware. Smartphones hebben een tragere processor, een kleiner werkgeheugen, een beperkte opslagcapaciteit en een kleine accu. Deze laatste is een van de belangrijkste tekortkomingen van hedendaagse smartphones. Een tweede verschil is de grote diversiteit aan toestellen. Zo bestaan er veel verschillende schermgroottes en is er ook een groot verschil in de upload en download snelheden die smartphones en tablets ondersteunen. Naast de beperkingen van het toestel, dient er bij mobiele toestellen ook rekening te worden gehouden met de aard van de internetverbinding. Draadloze verbindingen zijn onstabieler dan bekabelde verbindingen en hebben vaak ook een beperkte bandbreedte. Al deze beperkingen zorgen er voor dat video streaming naar mobiele toestellen op een andere manier moet benaderd worden dan video streaming naar bijvoorbeeld een laptop. Onderzoek heeft reeds aangetoond dat HTTP-gebaseerde adaptieve streaming, zoals DASH, energie efficiënt werkt in WiFi netwerken omdat de interface tussen het ophalen van twee segmenten even in een power saving mode ( PSM) kan gaan [13]. Verder zal ook het overschakelen naar een lagere kwaliteit en het feit dat DASH gebruik maakt van TCP op de transportlaag er voor zorgen dat je langer video kan kijken op je smartphone of tablet [14]. Het is echter ook belangrijk om op te merken dat al deze omgevingsvariabelen ook opgenomen kunnen worden in het beslissingsalgortime dat gebruikt wordt om MPEG DASH aan te sturen. In deze sectie zullen verschillende variabelen en hun relevantie voor de kwaliteitskeuze aan de clientzijde besproken worden Bandbreedte De bandbreedte van de client-server verbinding is van cruciaal belang bij het streamen van multimedia. Zeer veel beslissingsalgoritmen zullen de bandbreedte gaan opvolgen en opnemen bij het maken van een keuze. Zo stellen Chenghao et al. [15] een manier voor om aan de hand van de verhouding tussen de downloadtijd van een segment en de tijdsduur van het segment congestie in het netwerk te detecteren en op basis van deze vaststelling de kwaliteit aan te passen. Als de bandbreedte daalt zal het algoritme overschakelen op een representatie met een lagere bitrate.

    34 Beslissingsalgoritme Als dit niet tijdig gebeurt kunnen de segmenten misschien niet snel genoeg gedownload worden en zal de buffer aan de clientzijde na een tijd leeg raken. Dit fenomeen heet buffer starvation en zorgt er voor dat de video gaat vastlopen. In plaats van de huidige bandbreedte te monitoren kan er ook geprobeerd worden de huidige beschikbare bandbreedte te voorspellen. Riiser et al. [16] hebben bijvoorbeeld geprobeerd om de bandbreedte te voorspellen aan de hand van de locatie van de gebruiker. Op een server wordt voor elke locatie de bandbreedte in het mobiele netwerk op die plaats bewaard. Op die manier kan voorspeld worden wat de verwachte bandbreedte zal zijn voor mobiele gebruikers op een bepaalde locatie Bufferniveau Zoals reeds vermeld, is het belangrijk dat de buffer aan de clientzijde steeds voldoende gevuld is. Veel beslissingsalgoritmen zullen het bufferniveau constant opvolgen door gebruik te maken van één of meerdere grenswaarden. Zo zijn er eenvoudige algoritmen [17] die met één grenswaarde werken waarbij de kwaliteit wordt verhoogd als het bufferniveau die grenswaarde overschrijdt en waarbij de kwaliteit wordt verlaagd als het bufferniveau onder de grenswaarde zakt. Microsoft Smooth Streaming [18] is een voorbeeld van een algoritme dat meerdere grenswaarden gebruikt. Hierbij wordt het bufferniveau opgevolgd met behulp van drie grenswaarden, namelijk een paniekdrempel P, een ondergrens L en een bovengrens U. Als de buffer onder paniekdrempel P zakt dan zal overgeschakeld worden op de laagste kwaliteit, om zo te voorkomen dat de buffer niet helemaal leeg raakt. Als het bufferniveau tussen waarde P en L zit dan zal de kwaliteit langzaam verlaagd worden. Indien de buffer meer gevuld is dan bovengrens U, dan wordt geprobeerd de kwaliteit te verhogen. Meer details over het MSS algoritme zijn terug te vinden in Sectie Variatie in bufferniveau Naast de mate waarin de buffer al dan niet gevuld is zijn er ook algoritmen die de mate waarin het bufferniveau verandert in rekening brengen. Zo kan het plots snel dalen van het bufferniveau wijzen op congestie in het netwerk en zal het stabiel blijven van het bufferniveau wijzen op een vrij stabiele netwerkverbinding. Het MSS protocol [18] bevat opnieuw een mooi voorbeeld van deze techniek. Als het bufferniveau traag verandert zal de kwaliteit slechts in beperkte mate aangepast worden. Als het niveau daarentegen zeer snel verandert en onder een drempelwaarde

    35 2.3 Beslissingsalgoritme 13 komt, dan zal het algoritme naar de laagste kwaliteit overschakelen om zo een voldoende hoog bufferniveau te kunnen garanderen Batterijniveau Het batterijniveau van het toestel waarop de videostroom afgespeeld wordt is een variabele die zeker bij smartphones en tablets belangrijk kan zijn. Onderzoek heeft aangetoond dat het afspelen van een video met een andere bitrate of een andere resolutie een duidelijke invloed heeft op de snelheid waarmee de batterij van Android toestellen leeg loopt [6]. Het opnemen van batterijverbruik in het beslissingsalgoritme kan op smartphones en tablets dus zeker een voordeel opleveren als de tijd tussen twee metingen voldoende klein is. Vaak werken algoritmen die het batterijniveau in rekening brengen met een model waarmee voorspeld kan worden hoe lang het toestel het zal uithouden bij een bepaald batterijniveau, of wat de impact is van een bepaald kwaliteitsniveau op de batterijduur. Om een dergelijk model op te stellen wordt gebruik gemaakt van metingen. Deze kunnen plaats vinden tijdens het ontwikkelen van het algoritme [14, 19] of er kan ook gewerkt worden met voorspellingen op basis van metingen die gebeuren als de applicatie wordt uitgevoerd [6]. De batterijduur is echter zeer sterk afhankelijk van het gebruikte toestel, daardoor zullen metingen die gebeuren bij het ontwikkelen van een algoritme slechts op die toestellen waarvoor het algoritme ontwikkeld is voor een goed resultaat zorgen. In de literatuur wordt vooral gebruik gemaakt van Android tablets en smartphones voor het opstellen van modellen voor het voorspellen van de batterijduur en is er nog maar weinig onderzoek gebeurd naar ios toestellen Rekenkracht Het decoderen van de videosegmenten is zeer belastend voor de hardware van mobiele toestellen, zeker als dit proces softwarematig moet gebeuren. Het decoderen van segmenten met een lagere kwaliteit zal op Android toestellen duidelijk minder CPU gebruiken. Het kan dus handig zijn om de kwaliteit te verlagen indien het toestel een te trage CPU heeft waardoor het segmenten in hoge kwaliteit niet vlot kan decoderen of gewoon om de CPU belasting te verminderen [6].

    36 Conclusie Gebruikservaring Een niet-technische variabele die in rekening gebracht kan worden bij het bepalen van de kwaliteit van het volgende segment is de gebruikservaring. Zo zal het te vaak wisselen tussen kwaliteiten door de gebruiker als storend ervaren worden [5]. Daarnaast maken beslissingsalgoritmen bijna altijd gebruik van het additive increase multiplicative decrease principe bij het veranderen van de kwaliteit. Hierbij zal de kwaliteit steeds in kleine stapjes verhoogd worden maar zal een verlaging van de kwaliteit in één grote stap gebeuren. Onderzoek heeft echter aangetoond dat de eindgebruiker het aangenamer vindt als er bij het verlagen van de kwaliteit gebruik wordt gemaakt van enkele tussenstappen. Zo zal het overschakelen van een hoge kwaliteit naar een lage kwaliteit in drie stappen minder storend zijn dan het overschakelen in één grote stap [4] Overige technieken Naast de technieken en parameters die hierboven opgelijst staan zijn er nog andere manieren om de kwaliteit van het volgende segment te bepalen. Zo kan er ook gebruik gemaakt worden van algoritmen die hun beslissingsgedrag dynamisch gaan aanpassen aan de netwerkomstandigheden [20, 21]. Dergelijke zelflerende algoritmen hebben als doel de ervaren kwaliteit te verbeteren. Het voordeel van deze algoritmen is het feit dat ze flexibel zijn en een optimaal gedrag kunnen vertonen in verschillende scenario s, zowel bij vaste als variabele bandbreedte. Op deze manier kunnen ze een belangrijke tekortkoming van deterministische algoritmen verhelpen. Deze laatste zijn vaak geoptimalisserd voor één bepaald scenario (bijvoorbeeld vaste bandbreedte) en zullen door hun statische configuratie slecht presteren in andere situaties. 2.4 Conclusie MPEG DASH is een zeer interessant protocol voor het streamen van multimedia naar mobiele toestellen. De mogelijkheid om tijdens het streamen te wisselen tussen verschillende kwaliteiten maakt het mogelijk in te spelen op veranderende bandbreedte of op karakteristieken van het toestel. De belangrijkste component van een HAS videospeler, het beslissingsalgoritme, kan nog verder geoptimaliseerd worden voor ios toestellen. Enerzijds kan het beslissingsalgoritme verbeterd worden om de gebruikservaring in mobiele netwerken te verhogen en anderzijds kan ook de impact van videokwaliteit op de batterijduur van een ios toestel onderzocht worden om

    37 2.4 Conclusie 15 zo de batterijduur te maximaliseren. Tot slot kan de invloed van de segmentduur op de kwaliteit van de videostroom nog verder worden onderzocht.

    38 Conclusie

    39 MPEG DASH VIDEOSPELER VOOR IOS 17 Hoofdstuk 3 MPEG DASH videospeler voor ios In dit hoofdstuk wordt het ontwerp en de implementatie van de ios applicatie voor het afspelen van MPEG DASH videostromen toegelicht. Eerst wordt er een overzicht gegeven van de problemen met bestaande applicaties. Daarna wordt het doel en de werking van de nieuwe applicatie besproken en vervolgens worden de architectuur en de implementatie van de applicatie in detail toegelicht. 3.1 Bestaande applicaties Voor mobiele toestellen met het ios besturingssysteem zijn er op dit moment nog maar weinig videospelers beschikbaar die MPEG DASH stromen kunnen afspelen. Meestal gaat het dan om commerciële producten (zoals bitdash) die dus niet zomaar aangepast of uitgebreid kunnen worden. Met VLC voor ios zou dit wel mogelijk moeten zijn. In de praktijk blijken er echter heel wat problemen te zijn met de DASH module in VLC. Zo kunnen er enkel stromen afgespeeld worden die video bevatten met een specifieke resolutie. Andere videostromen worden niet correct weergegeven. Ook videostromen met de correcte resolutie worden in de praktijk niet vlot afgespeeld. Soms loopt de stroom vast en kan het afspelen niet meer hervat worden, in andere gevallen vertoont de afgespeelde video zeer veel beeldartefacten. Een voorbeeld van dergelijke problemen wordt weergegeven in Figuur 3.1. Verder is het ook niet voor de hand liggend om bij de DASH module van VLC te wisselen tussen verschillende beslissingsalgoritmen. Hiervoor moet de code telkens opnieuw gecompileerd worden met het gewenste algoritme. Deze grote beperkingen zorgen ervoor dat VLC niet ge-

    40 Doel van de applicatie Figuur 3.1: Beeldartefacten bij het afspelen van een DASH stroom in VLC bruikt kan worden voor het vlot uitvoeren van betrouwbare testen. Daarnaast is de code van de DASH module in VLC vrij verouderd en wordt deze niet langer onderhouden. Vandaar dat we binnen deze scriptie gekozen hebben voor het ontwikkelen van een volledig nieuwe applicatie voor het ios platform. 3.2 Doel van de applicatie Het doel van de applicatie die binnen deze scriptie ontwikkeld is gaat verder dan enkel het afspelen van MPEG DASH videostromen op een ios toestel. De applicatie moet het ook mogelijk maken om vlot te kunnen wisselen tussen verschillende beslissingsalgoritmen om ze zo gemakkelijk te kunnen vergelijken. Daarnaast is het ook de bedoeling om interessante data zoals bufferniveau, bandbreedte van de netwerkverbinding en het kwaliteitsniveau van de video weer te geven tijdens het streamen en deze informatie ook te loggen in een bestand zodat deze gegevens achteraf grondig geanalyseerd kunnen worden. Als laatste kan het ook interessant zijn om een vorm van automatische tests mogelijk te maken, zodat een algoritme automatisch meerdere malen uitgevoerd kan worden met bijvoorbeeld andere parameters. Dit kan nuttig zijn om de impact van de parameters op het beslissingsalgoritme te onderzoeken.

    41 3.3 Werking van de videospeler Werking van de videospeler Het gebruik van de ontwikkelde videospeler wordt hierna kort besproken aan de hand van twee use cases. De eerste use case bespreekt het afspelen van één videostroom, de tweede bespreekt de functionaliteit voor het automatisch testen van beslissingsalgoritmen Use case 1: Afspelen van een videostroom Als de applicatie gestart wordt krijgt de gebruiker het scherm te zien dat weergegeven wordt in Figuur 3.2. Hier kan de gebruiker de Uniform Resource Locator (URL) van de videostroom instellen, het gewenste algoritme kiezen en de parameters van het algoritme wijzigen. Daarnaast is het ook mogelijk om statistieken weer te geven op het scherm. Indien de gebruiker kiest om de statistieken weer te geven ziet de videospeler er tijdens het afspelen van de stroom uit zoals op Figuur 3.3. Op het scherm wordt linksboven het verloop van de bandbreedte van de client-server verbinding weergegeven samen met de bitrate van de video die gestreamd wordt. Dit is vooral interessant om op te volgen hoe het algoritme reageert op veranderingen in de bandbreedte. Linksonder op het scherm wordt het verloop van het bufferniveau weergegeven. Rechtsboven wordt de video weergegeven die op dat moment gestreamd wordt met daaronder informatie over het segment dat op dat moment afgespeeld wordt en informatie over het aantal freezes. Indien de statistieken uitgeschakeld worden, wordt de video over het volledige scherm weergegeven zoals te zien is op Figuur 3.4. In dat geval wordt de informatie die anders weergegeven wordt op het scherm wel nog steeds weggeschreven naar een logbestand Use case 2: Automatische testen uitvoeren Via de Advanced knop rechtsboven op Figuur 3.2 komt de gebruiker in het menu voor het automatisch testen van beslissingsalgoritmen. In dit menu wordt op het scherm een lijst weergegeven van aanwezige configuratiebestanden (zie Figuur 3.5). Deze XML bestanden kunnen via itunes aan de app worden toegevoegd en bevatten informatie over de videostroom, het algoritme, de parameters voor het algoritme en het aantal keer dat de test uitgevoerd moet worden. Een voorbeeld van een dergelijk configuratiebestand wordt weergegeven in Listing 3.1. De gebruiker kan meerdere bestanden selecteren en daarna de test starten. Tijdens het testen wordt de videostroom meerdere malen na elkaar afgespeeld en worden alle statistieken weggeschreven naar

    42 Architectuur een log bestand. De video wordt tijdens het afspelen over het volledige scherm weergegeven (zie Figuur 3.4). Tussen het afspelen van twee stromen is er steeds een korte pauze van enkele seconden om de vorige stroom correct af te sluiten en om de gebruiker de kans te geven de test te onderbreken. 3.4 Architectuur De videospeler is opgebouwd uit een groot aantal klassen en bibliotheken die er voor zorgen dat segmenten gedownload en afgespeeld kunnen worden volgens het gekozen beslissingsalgoritme. Figuur 3.6 geeft een overzicht van de belangrijkste componenten van de applicatie. De StreamingManager staat in voor het initialiseren van de stroom en het configureren en starten van het AdaptationAlgorithm. De module AdaptationAlgorithm zal beslissen wanneer er segmenten opgehaald moeten worden en staat ook in voor de verwerking van de data uit de segmenten. Als er een segment gedownload moet worden zal AdaptationAlgorithm gebruik maken van AdaptationLogic om te bepalen in welke kwaliteit het segment gedownload moet worden. De IOManager wordt gebruikt voor alle operaties waarbij er data naar een bestand geschreven wordt. Libdash is verantwoordelijk voor het ophalen van het MPD bestand en de segmenten en de Decoder wordt gebruikt om de videodata te decoderen zodat deze op het scherm weergegeven kan worden. Ten slotte kan de BatteryMonitor gebruikt worden om het batterijniveau van het toestel op te volgen en kan met behulp van de CPUMonitor de CPU belasting opgevraagd worden. In deze sectie wordt de werking van deze componenten verder toegelicht. Om deze uitleg te ondersteunen wordt in Figuur 3.7 een sequentie diagram weergegeven dat de communicatie tussen de verschillende componenten illustreert bij een videostroom die bestaat uit drie segmenten, waarbij er na het afspelen van het tweede segment een freeze optreedt StreamingManager De StreamingManager is verantwoordelijk voor het opzetten en starten van de stroom. Hiervoor heeft de manager de URL nodig waar het MPD bestand zich bevindt en een implementatie van het gewenste beslissingsalgoritme in de vorm van een AdaptationAlgorithm. De StreamingManager zal eerst met behulp van de DASHManager van Libdash het MPD bestand proberen te downloaden op de opgegeven URL. Indien dit mislukt wordt het opzetten van de stroom on-

    43 3.4 Architectuur 21 Figuur 3.2: Startscherm van de videospeler <? xml version ="1.0" encoding =" UTF -8"? > < settings > <url >http :// :8888/ bbb. mpd </ url > <count >3</ count > < algorithm > FINEAS Algorithm </ algorithm > < parameters > < buffer_minimum >0.20 </ buffer_minimum > < target_buffer_level >0.70 </ target_buffer_level > < alpha_value >0.50 </ alpha_value > < quality_window_size >50 </ quality_window_size > < buffer_size >10 </ buffer_size > </ parameters > </ settings > Listing 3.1: Voorbeeld configuratiebestand voor automatische tests

    44 Architectuur Figuur 3.3: Het afspelen van video met weergave van statistieken Figuur 3.4: Het afspelen van video zonder weergave van statistieken

    Nog meer weergeven Vergelijkbare documenten

    Process Mining and audit support within financial services. KPMG IT Advisory 18 June 2014

    Process Mining and audit support within financial services. KPMG IT Advisory 18 June 2014 Process Mining and audit support within financial services KPMG IT Advisory 18 June 2014 Agenda INTRODUCTION APPROACH 3 CASE STUDIES LEASONS LEARNED 1 APPROACH Process Mining Approach Five step program

    Nadere informatie

    Handleiding Installatie ADS

    Handleiding Installatie ADS