Vakgroep Informatietechnologie

130

Transcript of Vakgroep Informatietechnologie

Faculteit Ingenieurswetenschappen

Vakgroep Informatietechnologie

Voorzitter: Prof. Dr. Ir. P. LAGASSE

Onderzoeksgroep Wireless & Cable

Directeur: Prof. Dr. Ir. L. MARTENS

Analyse en Ontwerp van een Applicatie voor

Videoconferencing en Live Event Broadcasting

door

Kristof DEMEYERE

Promotor: Prof. Dr. Ir. L. MARTENS

Scriptiebegeleiders: Ir. T. DERYCKERE & Lic. M. IDE

Scriptie ingediend tot het behalen van de academische graad van

burgerlijk elektrotechnisch ingenieur

Academiejaar 2005–2006

Voorwoord

Hierbij wil ik mijn promotor Prof. Dr. Ir. L. Martens en begeleiders Ir. T. Deryckere en Lic. M. Ide

bedanken voor hun begeleiding bij het maken van deze scriptie. Ik wil ook graag oprechte dank

betuigen aan mijn ouders, broers en begeleiders voor het nalezen van deze scriptie.

Kristof Demeyere, mei 2006

Toelating tot bruikleen

“De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en delen van

de scriptie te kopieren 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 scriptie.”

Kristof Demeyere, mei 2006

Analyse en Ontwerp van een Applicatie voorVideoconferencing en Live Event Broadcasting

door Kristof DEMEYERE

Scriptie ingediend tot het behalen van de academische graad vanburgerlijk elektrotechnisch ingenieur

Academiejaar 2005–2006

Promotor: Prof. Dr. Ir. L. MARTENSScriptiebegeleiders: Ir. T. DERYCKERE & Lic. M. IDEFaculteit IngenieurswetenschappenUniversiteit Gent

Vakgroep InformatietechnologieVoorzitter: Prof. Dr. Ir. P. LAGASSEOnderzoeksgroep Wireless & CableDirecteur: Prof. Dr. Ir. L. MARTENS

Samenvatting

In het eerste hoofdstuk worden live event broadcasting en videoconferencing nader verklaarden worden voor beide diensten toepassingsmogelijkheden aangehaald. Het tweede hoofdstukgeeft een korte introductie tot DVB, iDTV en MHP. De introductie van live event broadcastingen videoconferencing op het MHP–platform stelt enkele problemen die in het derde hoofdstukworden geschetst. Voor elk probleem wordt ook een oplossing voorgesteld. Het vierde hoofdstukbehandelt de ontworpen architecturen in detail. Hoofdstuk vijf is gewijd aan de implementatievan de functionaliteit die beide architecturen gemeenschappelijk hebben. De implementatie vande architectuur voor live event broadcasting is het onderwerp van de hoofdstukken zes en zeven.In hoofdstuk zes wordt het servergedeelte van de architectuur besproken en hoofdstuk zevengeeft een overzicht van de ontworpen MHP–applicatie. Tot slot wordt in hoofdstuk acht deconclusie gepresenteerd.

Trefwoorden

Live Event Broadcasting, Videoconferencing, DVB, iDTV, MHP, Podcasting, Vodcasting

Analysis and Development of an Application forVideoconferencing and Live Event Broadcasting

Kristof Demeyere

Supervisor(s): Prof. Dr. Ir. L. Martens, Ir. T. Deryckere & Lic. M. Ide

Abstract— Interactive Digital Television (iDTV) is about to completelychange the user experience of television in the living room. In my opinion,the iDTV infrastructure lends itself perfectly to support live event broad-casting and videoconferencing, both enhanced with interactive applications.These services have a vast application domain which includes plain video-conferencing but also video surveillance, T-learning and T-health. This ar-ticle discusses different architectures and shows an implementation for theMultimedia Home Platform.

Keywords— MHP, iDTV, Live event broadcasting, Videoconferencing,Podcasting, Vodcasting

I. INTRODUCTION

A. Interactive Digital Television (iDTV)

iDTV is gradually replacing his analogue predecessor whomeveryone has been so familiar with for a long time. iDTV not

only offers superior image and sound quality but also enablesthe user to interact with the broadcast programs. The magicbox that unlocks the wealth of new services is the set–top box(STB). The STB is capable of decoding the broadcast digitalvideo signal and provides local as well as global interactivity.

B. Multimedia Home Platform (MHP)

MHP is the first common open middleware platform being de-ployed at large scale in set-top boxes. It provides the applicationdeveloper with a number of API’s suitable to develop a varietyof applications irrespective of the underlying hardware of theSTB. Applications developed for this Multimedia Home Plat-form will be interoperable with different MHP implementationsresulting in a horizontal market. Most of today’s STB’s labeledMHP compliant, currently implement MHP specification 1.0.2or 1.1.2 [4].

C. Live Event Broadcasting & Videoconferencing

With both services audiovisual content, as requested by theuser, has to be delivered to the STB. This audiovisual contentcan range from the video from a participant in a conference toa specific camera angle video stream resulting from the captureof a live event. In general this audiovisual stream will originatefrom a packet-switched network. Looking at a typical STB thereare two ways to receive audiovisual content: the return channeland the broadcast channel. Given the flexibility by which eachuser should be able to start a video conference or select a liveevent to watch, it seems preferable to use the return channel.Videoconferencing also requires that each participant is able tocapture his own video and audio stream in order to transmit thismedia to other participants.

II. MHP SPECIFICATION LIMITATIONS & STBCAPABILITIES

The MHP specifications provide a rich set of features forthe application developer to use but lacks support of specificfunctionality required to implement live event broadcastingand videoconferencing. Although the application developer isbounded by the features provided by the API, it is also worth tak-ing into consideration the capabilities of current set-top boxes.

A. Return Channel

The return channel is the path through which the STB cancommunicate with the outside world. The MHP specificationdefines a set of interaction protocols for this return channel ac-cessible to MHP applications. To stream live video to the STBit is preferable to use UDP over IP both of which are included inthe return channel protocolstack. However, when it comes downto using this return channel to receive content such as video oraudio, there are limitations. Delivering streaming media throughthe return channel is currently not supported by MHP [4]. Re-search was done to try to work around this restriction but noneof the attempts succeeded.

It is interesting to note that some STB manufacturers are in-corporating delivery of media over IP in the STB design, leadingto the so called IP STB, or are extending current STB’s with spe-cial ASIC modules. Other STB vendors have announced STB’sprovided with the functionality to receive two signals throughtwo separate tuners. One tuner will be used to receive the broad-cast MPEG-2 MPTS which contains digital television, while theother one will be used to receive the DOCSIS downstream [2].These dual feed set–top boxes, will be able to play media contentdelivered through DOCSIS by using the same MPEG-2 decoderas used to process the broadcast. These cases illustrate the mi-gration to IP Television. The MHP standard can be improved byenabling playback of audiovisual content delivered through thereturn channel. This improvement would take the MHP standardcloser to IPTV and MHP for IPTV has been proposed [9].

As the return channel is not available for live media deliv-ery, I propose an alternative by transferring the streaming me-dia coming from a packet-switched network into the broadcast.This requires however that this content is correctly signalled inthe broadcast and the STB is informed where to look for thatspecific content. For this end, a dynamic allocation system wasdeveloped that enables reservation of channels in the broadcastwhich can be used to transport live streaming media.

B. Peripherals

In the current MHP specifications there is no mention of otherdevices for the user to interact with but remote control and key-board. STB’s now available on the market have only a limitedamount of support for peripherals like keyboards and units withvideo camera support are rare. For videoconferencing captur-ing live audio and video is of course a required feature. Al-though there is currently no support for such capture devices,it can be expected that future MHP specifications and set-topboxes will support numerous peripherals amongst which for ex-ample a camera. In case the MHP supports capture peripherals,some decisions will have to be made to ensure interoperability.First of all, the MHP specification can dictate general supportfor capture devices like a USB webcam or demand support fora specific camera and microphone functionality. Secondly a for-mat for transmission of the captured audio and video has to bedecided. Depending on the chosen format the cost of an STBunit can substantially increase.

The absence of a capture device can be solved by using in-telligent peripherals incorporated in a home network togetherwith the STB. The incorporation into the home network couldrange from basic IP connectivity to full integration into an exist-ing home network using OSGI or UPnP. Some scenarios basedon MHP and OSGI describing the interaction between digitalTV receivers and home networks have been illustrated [11].The Open Cable Application Platform (OCAP) already providesan extension for home networking [3]. Inside the DVB MHPgroup, the MHP Home Networking (MHP-HN) group is ad-dressing this topic amongst others. The solution I have chosenis based on incorporating the STB in the home network sim-ply by connecting it to the residential gateway. The solution forthe capture of live video and audio uses custom capture soft-ware running on a host equipped with a webcam. The STB candiscover and configure such capture software by broadcastingspecific predefined messages on the home network. It should benoted that it is also possible to use an ethernetcam to capturevideo and audio, but due to the price of such cameras they arenot found suitable for low cost applications such as videocon-ferencing.

III. ARCHITECTURE FOR LIVE EVENT BROADCASTING

The architecture for live event broadcasting is based on Pod-casting. Podcasting is a popular way to advertise audio content.Podcasting consists of creating audio content, placing it on aserver host and publishing the presence of the content by usingpodcast feeds which are an extension of RSS feeds. With thesame principle, one can advertise video content, also known asVodcasting. By applying certain changes to Vodcasting as suchthat it can be used to publish live events, it forms the base forthe developed architecture. Using both the modified Vodcastingprinciple and the allocation system for placing live streamingmedia in the broadcast described above, results in a dynamicsystem which can be used for many new services includingsurveillance, T–Health and T–Learning [8]. The combination ofVodcasting and live event broadcasting seems a promising ap-proach to extend the tradional broadcasting and enable users to

publish personalized content. Moreover, the architecture lendsitself perfectly to be used for VOD.

IV. ARCHITECTURE FOR VIDEOCONFERENCING

There are several possible architectures for videoconferenc-ing. A P2P architecture such as the one used for Skype [1] isnot possible with MHP due to the lack of support for delivery ofstreaming media through the return channel. Videoconferencingcan also be realised through a publish/subscribe system as pro-posed in [6]. The developed architecture for videoconferencinghowever is based on that of VoIP. In VoIP, the description ofthe session relies on the SDP [7] and the initialisation uses theSIP [10]. SIP will also be used in the third generation wirelessnetworks. By using an MHP compliant STB as SIP endpointa video call between a handheld mobile phone and a televisionset seems plausible. In the current prototype the delay betweencapture with camera and microphone and presentation on thetelevision screen is too high to make a comfortable videoconfer-ence. Nevertheless it should be possible to reduce that delay bytuning the system.

V. CONCLUSIONS

Providing new video services like live event broadcasting andvideo conferencing for the Multimedia Home Platform cannotonly improve the user experience of iDTV but has also the pos-sibility of introducing new business models that can help theiDTV development. The here presented architectures, enablesthese new services by bringing the flexibility of an IP networkand the high bandwidth of a DVB broadcast network together.

REFERENCES

[1] BASET, S. & SCHULZRINNE, H. (2004). An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol. USA, New York, Department of Com-puter Science, Columbia University.

[2] BUGAJSKI, M. (2004). Convergence of Video in the Last Mile:MPEG2-TS and DOCSIS, Technical Paper for Jornadas 2004 Conference.http://www.arrisi.com/products solutions/applications/white papers/Convergence Video Last Mile.pdf.

[3] CableLabs (2005). OpenCable Application Platform Specification OCAPHome Networking Extension. Doc.: OCAP-HNEXT1.0.

[4] European Telecommunications Standards Institute (ETSI) (2002). DigitalVideo Broadcasting (DVB); Multimedia Home Platform (MHP) Specifica-tion 1.0.2. Doc.nr.: TS 101812 v1.2.1 (2002-06).

[5] European Telecommunications Standards Institute (ETSI) (2003). DigitalVideo Broadcasting (DVB); Multimedia Home Platform (MHP) Specifica-tion 1.1.1. Doc.nr.: TS 101812 v1.2.1 (2003-06).

[6] FOX, G., WU, W., UYAR, A. & BULUT, H. (2004). Design and Implemen-tation of Audio/Video Collaboration System Based on Publish/subscribeEvent Middleware. USA, New York, Department of Electrical Engineeringand Computer Science, Syracuse University.

[7] HANDLEY, M., & JACOBSON, V. (1998). SDP: Session Description Pro-tocol. http://www.ietf.org/rfc/rfc2327.txt.

[8] LYTRAS, M., LOUGOS, C., CHOZOS, P. & POULOUDI, A. (2003) Inter-active Television and E-Learning Convergence: Examining the Potential ofT-Learning. Greece, Athens, Department of Management Science & Tech-nology, Athens University of Economics and Business.

[9] PIESING, J. (2006). Roadmap for MHP and Related Technologies. Pre-sented at DVB World 2006 - The Challenge of Choice, Dublin, March 2,2006.

[10] ROSENBERG, J., SCHULZRINNE, H., CAMARRILLO, G., JOHN-STON, A., PETERSON, J., SPARKS, R., et al. (2002). SIP: Session Ini-tiation Protocol. http://www.ietf.org/rfc/rfc3261.txt.

[11] TKACHENKO, D., & KORNET, N. (2004). Convergence of iDTV andHome Network Platforms. Russia, St.Petersburg, Radio Engineering andTelecommunications Department, St.Petersburg State Polytechnic Univer-sity.

INHOUDSOPGAVE i

Inhoudsopgave

1 Live Event Broadcasting & Videoconferencing 1

1.1 Live Event Broadcasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.2 Toepassingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.3 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Videoconferencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2.2 Toepassingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2.3 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 DVB, iDTV & MHP 6

2.1 DVB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 MPEG–2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1 MPEG–2 Video & Audio Specification . . . . . . . . . . . . . . . . . . . . 8

2.2.2 MPEG–2 Systems Specification . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.3 MPEG–2 Extensions for DSM–CC . . . . . . . . . . . . . . . . . . . . . . 17

2.2.4 MPEG–2 Profiles & Levels . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3 iDTV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.4 Multimedia Home Platform (MHP) . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.4.1 DVB–J Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4.2 Applicatiemodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4.3 Applicatiesignalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4.4 Grafisch Model in MHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.4.5 MHP–Profielen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

INHOUDSOPGAVE ii

3 Live Event Broadcasting & Videoconferencing voor MHP 25

3.1 Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2 Ontvangen van Videostroom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.2.1 MHP Exploratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.2.2 STB Voorzieningen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.2.3 IP2DVBGateway & IP2DVBScheduler . . . . . . . . . . . . . . . . . . . . 32

3.3 Opname van Videostroom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.3.1 MHP Exploratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.3.2 STB Voorzieningen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3.3 Capture–Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4 Architecturen voor Live Event Broadcasting & Videoconferencing 37

4.1 Live Event Broadcasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.1.1 Architectuur Exploratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.1.2 Podcasting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.1.3 Ontworpen Architectuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.2 Videoconferencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.2.1 Architectuur Exploratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.2.2 Session Description Protocol (SDP) . . . . . . . . . . . . . . . . . . . . . 44

4.2.3 Session Initiation Protocol (SIP) . . . . . . . . . . . . . . . . . . . . . . . 45

4.2.4 Ontworpen Architectuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.3 Schaalbaarheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.4 Verdeeldheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5 IP2DVBGateway & VLC 53

5.1 IP2DVBGateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.1.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.1.2 Werking IP2DVBGateway . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.1.3 Implementatie IP2DVBGateway . . . . . . . . . . . . . . . . . . . . . . . 57

5.1.4 Aanspreken vanuit Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.1.5 Extensies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.2 VLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.2.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

INHOUDSOPGAVE iii

5.2.2 VLC Commandolijn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.2.3 Aanspreken vanuit Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

5.2.4 Extensies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.3 Performantie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.3.1 Netwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5.3.2 VLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5.3.3 Maatregelen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

6 Implementatie Live Event Broadcasting Architectuur 74

6.1 IP2DVBScheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

6.2 Streamer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

6.3 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.3.1 LiveEventServlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6.3.2 SchedulerFacadeSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

6.3.3 EntityBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

7 Implementatie MHP–Applicatie voor Live Event Broadcasting 83

7.1 Overzicht MHP–Applicatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

7.2 Events & Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

7.2.1 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

7.2.2 Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

7.3 Main & Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

7.4 HTTP–Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

7.5 Aggregator–Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

7.6 GUI–Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

7.6.1 Componenten & Weergaves . . . . . . . . . . . . . . . . . . . . . . . . . . 90

7.6.2 Scherm Modelvorm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

7.6.3 HomeScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.6.4 BrowserScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7.6.5 PlayerScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.6.6 HelpScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

7.6.7 ExitScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

8 Conclusie 96

Lijst van afkortingen iv

A Podcast & Vodcast Feeds 98

A.1 Podcast Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

A.2 Aangepaste Vodcast Feed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

B Discover Configure Command Protocol 101

C Klassendiagramma’s 103

C.1 HomeScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

C.2 BrowserScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

C.3 PlayerScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

C.4 HelpScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

C.5 ExitScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

D Momentopnames Gebruikersinterface 106

D.1 HomeScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

D.2 BrowserScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

D.3 PlayerScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

D.4 HelpScreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Lijst van afkortingen v

Lijst van afkortingen

AES Audio Engineering Society

AIT Application Information Table

ASIC Application Specific Integrated Circuit

AWT Abstract Window Toolkit

CAT Conditional Access Table

CBR Constant Bit Rate

CM Cable Modem

CPU Central Processing Unit

DAB Digital Audio Broadcasting

DAVIC Digital Audio–Visual Council

DCCP Discover Configure Command Protocol

DCT Discrete Cosine Transform

DHCP Dynamic Host Configuration Protocol

DiffServ Differentiated Services

DOCSIS Data Over Cable Service Interface Specification

DSM–CC Digital Storage Media – Command and Control

DTS Decoding Time Stamp

DVB Digital Video Broadcasting

Lijst van afkortingen vi

DVB SI DVB Service Information

DVB–ASI Digital Video Broadcast – Asynchronous Serial Interface

DVB–C Digital Video Broadcasting Cable

DVB–S Digital Video Broadcasting Satellite

DVB–T Digital Video Broadcasting Terrestrial

EB Entity Bean

EBU European Broadcasting Union

EIT Event Information Table

EPG Elektronic Program Guide

ES Elementary Stream

FIFO First In, First Out

GIF Graphics Interchange Format

GOP Group of Pictures

GPRS General Packet Radio Service

GPU Graphics Processing Unit

GUI Graphical User Interface

HAVi Home Audio Video interoperability

HFC Hybrid Fiber Coax

HTML Hypertext Markup Language

HTTP Hypertext Transfer Protocol

iDTV Interactive Digital Television

IETF Internet Engineering Task Force

IntServ Integrated Services

Lijst van afkortingen vii

IP Internet Protocol

IPTV IP Television

ISO International Standards Organisation

ITU International Telecommunication Union

J2EE Java 2 Enterprise Edition

JAS Java Stream Assembly

Java RMI Java Remote Method Invocation

JMF Java Media Framework

JPEG Joint Photographic Experts Group

JVM Java Virtual Machine

MHP Multimedia Home Platform

MHP–HN MHP–Home Networking

MP3 MPEG–1 Layer 3

MPEG Moving Pictures Experts Group

MPTS Multi Program Transport Stream

NIT Network Information Table

OCAP OpenCable Applications Platform

ONID Original Network Identifier

ONU Optical Node Unit

OSGI Opern Services Gateway Initiative

P2P Peer to Peer

PAT Program Assocation Table

PCR Program Clock Reference

Lijst van afkortingen viii

PES Packetised Elementary Stream

PID Packet Identifier

PMT Program Map Table

PNG Portable Network Graphics

PS Program Stream

PSI Program Specific Information

PSTN Public Switched Telephone Network

PTS Presentation Time Stamp

QAM Quadrature Amplitude Modulation

QoS Quality of Service

RAM Random Access Memory

RF Radio Frequency

RSS Really Simple Syndication

RSVP Resource Reservation Protocol

SB Session Bean

SDP Session Description Protocol

SDT Service Description Table

SID Service Identifier

SIP Session Initiation Protocol

SMS Short Message Service

SNR Signal to Noise Ratio

SPTS Single Program Transport Stream

STB Set–Top Box

Lijst van afkortingen ix

TCP Transmission Control Protocol

TLS Transmission Layer Security

TS Transport Stream

TSID Transport Stream Identifier

UDP User Datagram Protocol

UPnP Universal Plug and Play

URL Uniform Resource Locator

USB Universal Serial Bus

VBR Variable Bit Rate

VLC VideoLAN Client

VOD Video On Demand

VoIP Voice over IP

WFQ Weighted Fair Queuing

XML Extensible Markup Language

LIVE EVENT BROADCASTING & VIDEOCONFERENCING 1

Hoofdstuk 1

Live Event Broadcasting &

Videoconferencing

1.1 Live Event Broadcasting

1.1.1 Inleiding

Het medium televisie is reeds lang ingeburgerd. Televisie combineert gebruikersgemak met toe-

gankelijkheid en het is dan ook niet verwonderlijk dat televisie niet alleen gebruikt wordt om

informatie te verspreiden, zoals het dagelijks nieuws, maar ook voor entertainment. Een ge-

beuren wordt opgenomen in de televisiestudio en verwerkt tot een programma dat gebroadcast

wordt. Er is een grote varieteit aan televisiekanalen en televisieprogramma’s. Broadcasting vindt

echter slechts in een beperkt aantal gevallen plaats terwijl het gebeuren zich afspeelt. Toch heeft

het live–aspect een zekere meerwaarde voor de kijkers.

De huidige live-uitzendingen kunnen interactiever worden gemaakt. Meestal zijn verschillende

camerastandpunten beschikbaar maar wordt in de televisiestudio beslist welk standpunt wordt

uitgezonden. Het lijkt eenvoudig om de keuze aan de kijker over te laten en verschillende came-

rastandpunten voor het publiek ter beschikking te stellen. Bij het uitzenden van bijvoorbeeld

een sportevenement kan dit principe eenvoudig worden toegepast. Live event broadcasting wordt

in deze scriptie echter ruimer genomen dan tradionele broadcasting. Er wordt gepoogd te breken

met het patroon waarbij aan elk televiekanaal een tijdslijn met programma’s is verbonden en

er voor de kijker beslist wordt wat er op de beeldbuis komt. Gebruikers zullen zelf ook voor

content kunnen zorgen wat het televisie kijken grondig zal veranderen.

1.1 Live Event Broadcasting 2

Podcasting is een recente internettrend die gebruikers toelaat audio–opnames op het internet

te plaatsen en ter beschikking te stellen van andere gebruikers1. De populariteit van Podcas-

ting is groot en toont aan dat gebruikers interesse hebben om gepersonaliseerde content aan te

bieden. De enorme populariteit van Blogging2 lijkt dit alleen maar te beamen. De beide voor-

beelden zijn echter specifiek voor het PC–platform. Nu digitale televisie wordt geıntroduceerd,

lijkt het dan ook het ideale moment om de brug te maken tussen televisie en sommige van deze

populaire internettechnologieen. Aan de hand van een gewijzigde vorm van Podcasting zullen

gebruikers zelf live–uitzendingen kunnen aanbieden die te bekijken zijn op de televisie.

1.1.2 Toepassingen

Het aanbieden van gepersonaliseerde content biedt heel wat mogelijkheden en de toepassingen

situeren zich in verschillende domeinen. In deze paragraaf wordt geıllustreerd hoe divers en

uiteenlopend toepassingen van live event broadcasting wel kunnen zijn.

T–Learning vloeit voort uit de combinatie van interactieve televisie en E–Learning [30]. T–

Learning laat televisiekijkers toe kennis op te doen via het televisieplatform door bijvoorbeeld

deel te nemen aan een quiz. Live event broadcasting verruimt de mogelijkheden van T–Learning.

Een rijschool kan bijvoorbeeld een theorieles over de verkeersregels live uitzenden en na de uit-

zending kunnen de kijkers een quiz afleggen over de gegeven leerstof. Een professor kan zijn

hoorcolleges uitzenden zodat studenten thuis de colleges kunnen volgen.

Om het onveiligheidsgevoel in metrostations te verlagen kunnen camera’s opgesteld worden

waarmee vanuit het politiekantoor toezicht kan worden gehouden. Ook op andere plaatsen kan

surveillance worden gebruikt. Met traffic monitoring kunnen gevaarlijke kruispunten of drukke

snelwegen extra in het oog worden gehouden. Verkeersgebruikers kunnen vooraleer deel te ne-

men aan het verkeer de situatie op de geplande route overzien en anticiperen op eventuele files

of ongevallen.

De dienst thuiszorg kan bij minder valide patienten eenvoudige camera’s in de woning laten

installeren. Zo kunnen de patienten van op de dienst worden gevolgd en kan personeel op thuis-1Podcasting komt uitgebreid aan bod in hoofdstuk 4.2Een blog is een publicatie van artikels op het web die regelmatig wordt geupdatet.

1.1 Live Event Broadcasting 3

bezoek gaan indien een patient hulp nodig heeft. Dit is een toepassing van T–Health, zoals dit

verder beschreven wordt. In de kindercreche kunnen camera’s worden opgesteld zodat bezorgde

ouders tijdens hun koffiepauze op het kantoor hun kind even kunnen gade slaan. Ook de groot-

ouders kunnen deze remote baby monitoring gebruiken.

Live event broadcasting heeft ook commerciele toepassingen en biedt nieuwe vormen voor recla-

me. Een firma kan voor de promotie van een product bijvoorbeeld een belangrijke voetbalmatch

live uitzenden. Gebruikers die in de supermarkt het product, of een bepaalde hoeveelheid ervan,

aankopen, mogen bij het afrekenen aan de kassa hun elektronische identiteitskaart laten inscan-

nen. Bij de aanvang van de wedstrijd kunnen die gebruikers dan na authenticatie aan de hand

van hun identiteitskaart afstemmen op het kanaal waarop de voetbalmatch te zien is.

Hoewel het bovenstaande de diversiteit van de toepassingen aantoont, wordt bij het aanbieden

van live event broadcasting voor televisie geen veronderstelling gemaakt omtrent het onderwerp

van de live–uitzending. Net zoals Blogging voor erg uiteenlopende onderwerpen zoals politiek

of nieuws wordt aangewend, zal live event broadcasting ongetwijfeld in verschillende domeinen

toepassing vinden.

1.1.3 Requirements

Na de bovenstaande toepassingen kan er overgegaan worden tot het vastleggen van de require-

ments voor de applicatie voor live event broadcasting. Volgende lijst somt de voornaamste

vereisten op.

• De gebruiker moet op de hoogte worden gebracht van de live–uitzendingen die beschikbaar

zijn.

• De beschikbare live–uitzendingen moeten op een overzichtelijke manier worden gepresen-

teerd, bijvoorbeeld in een eenvoudig te doorzoeken catalogus.

• De gebruiker moet een bepaalde live–uitzending kunnen kiezen.

• Indien meerdere camerastandpunten of audiokanalen beschikbaar zijn moet de gebruiker

een keuze kunnen maken volgens zijn voorkeur.

• De vertraging tussen opname van de live–uitzending en weergave op het televisietoestel

moet bij voorkeur zo klein mogelijk zijn.

1.2 Videoconferencing 4

1.2 Videoconferencing

1.2.1 Inleiding

Communicatie is een uitermate belangrijk aspect van het hedendaags leven. Het is dan ook niet

verwonderlijk dat er tegenwoordig diverse communicatievormen zoals SMS, telefonie en email

beschikbaar zijn. Eenzelfde diversiteit is merkbaar in de apparaten die voor communicatie

aangewend worden. Videoconferencing ligt al binnen de technische mogelijkheden maar heeft

tot op de dag van vandaag het grote publiek nog niet bereikt. Deze dienst wordt tegenwoordig

wel al in beperkte mate aangeboden op de laatste generatie mobiele telefoons. De combinatie

van televisie en videoconferencing lijkt nochtans evenzeer aantrekkelijk maar is momenteel nog

niet beschikbaar.

1.2.2 Toepassingen

Videonconferencing in zijn algemene vorm, een audiovisuele communicatievorm, biedt heel wat

toekomst. Vergaderingen tussen afdelingen van een multinational vinden nu vaak al plaats door

middel van videoconferenties. Momenteel vereist dit wel gespecialiseerde systemen en daarom

blijft videoconferencing buiten het bereik van het grote publiek. Videoconferencing heeft desal-

niettemin het potentieel om de huidige telefonie te verdringen indien de dienst met voldoende

kwaliteit wordt aangeboden.

Bij T–Learning kan videoconferencing worden toegepast. Zo worden interactieve hoorcolleges

op afstand mogelijk tussen professor en student. Het succes van instant messenger–applicaties

zoals Microsoft MSN Messenger3 toont aan hoe populair chatten is. Videoconferencing kan ook

ingebed worden in dergelijke chatapplicaties.

T–Health is de verzamelnaam voor ziekenzorg en het verschaffen van medische informatie door

middel van internetgerelateerde technologieen. De doelstelling van T–Health is het aanbieden

van een verbeterde en kwalitatief hogere ziekenzorg terwijl de kost hiervoor daalt. Videoconfe-

rencing kan hierin een belangrijke rol spelen. Zo kan een patient van thuis uit een arts consulteren

via het televisiescherm. Een arts kan voor het behandelen van een bepaald medisch dossier de

expertise van een andere arts benutten via een videoconferentie.3http://messenger.msn.com

1.2 Videoconferencing 5

Een intelligente elektronische programmagids (EPG) kan een gebruikersprofiel van de kijker

samenstellen. Een reclamefirma kan dit profiel dan aanwenden voor verkoopsdoeleinden. Indien

bijvoorbeeld de gebruiker vaak naar documentaires kijkt, kan een winkelketen, die documentai-

res te koop aanbiedt op DVD, de gebruiker contacteren door middel van een videoconferentie

om hem te informeren over de promoties van bepaalde producten. Videoconferencing biedt dus

ook nieuwe businessmodellen voor reclame en telemarketing.

1.2.3 Requirements

Onderstaande lijst schetst de voornaamste requirements voor videoconferencing.

• De gebruiker moet een videoconferentie aan kunnen gaan met een andere gebruiker.

• De gebruiker moet een overzicht krijgen van de gebruikers die kunnen worden gecontac-

teerd, bijvoorbeeld aan de hand van een soort telefoonboek.

• De vertraging tussen opname en weergave op het televisietoestel moet zo klein mogelijk

gehouden worden zodat de videoconferentie vlot en aangenaam kan verlopen.

Nu live event broadcasting en videoconferencing, met hun potentieel aan toepassingen, werden

omschreven, is het tijd om kennis te maken met het platform waarop beide diensten aangeboden

zullen worden. Daartoe wordt in het volgende hoofdstuk een korte inleiding gegeven tot DVB,

iDTV en het doelplatform MHP.

DVB, IDTV & MHP 6

Hoofdstuk 2

DVB, iDTV & MHP

2.1 DVB

Digitale media zijn tegenwoordig omnipresent. Denken we bijvoorbeeld aan de compact disc

(CD) en digital versatile disc (DVD). Digitalisatie van media heeft een aantal belangrijke voor-

delen. Vooreerst is de kwaliteit duidelijk superieur, ten tweede is het eenvoudiger om de media

te beschermen door middel van foutdetectie en foutcorrectie. Een derde, misschien ook het be-

langrijkste, voordeel is de mogelijkheid om digitale media te comprimeren. Het broadcasten van

media vindt echter nog steeds grotendeels plaats in het analoge domein. De stap naar digital

broadcasting is reeds gezet en er kan verwacht worden dat het broadcasten meer en meer in het

digitale domein zal plaatsvinden. De begrippen Digital Video Broadcasting (DVB) en Digital

Audio Broadcasting (DAB) klinken wellicht al niet meer onbekend. Digitale broadcasting be-

tekent weliswaar een wijziging van de opstelling die nodig is om televisie te ontvangen. Als de

transmissie in het digitale domein gebeurt is er een component nodig die het ontvangen digitaal

signaal vertaalt naar een signaal dat te begrijpen is voor het televisietoestel. Figuur 2.1 toont

de opstelling. De kern van de opstelling is de set–top box (STB). De STB ontvangt het digitaal

broadcastsignaal via het broadcastkanaal en converteert het naar een analoog signaal dat naar

de televisie wordt gevoerd. Hoewel dit converteren een van de hoofdtaken is van de STB, bevat

de STB heel wat meer functionaliteit zoals verder zal blijken.

Gezien de voordelen van digitale transmissie en om de introductie van digitale televisie te ver-

eenvoudigen werd in 1993 het DVB Project1 opgericht. Dit consortium bestaat uit ruim 2501http://www.dvb.org

2.1 DVB 7

Figuur 2.1: iDTV opstelling in de woonkamer.

bedrijven en staat in voor het uitbrengen van specificaties voor digitale televisie in Europa. De

DVB–standaard, die ondertussen al ver buiten Europa wordt toegepast, maakt gebruik van de

ITU-R BT.601–standaard [29] voor digitalisering en van de MPEG–2–standaard voor compres-

sie en transmissie. Het DVB–consortium beschouwt verschillende transmissiekanalen waarlangs

gebroadcast kan worden: via satelliet, via kabel en terrestrieel via antennes. Voor elk van deze

kanalen werd een specificatie uitgebracht die de fysische parameters voor het transmissiekanaal

beschrijven: DVB–S [13], DVB–C [14] en DVB–T [17]. Er is tevens een specificatie die het

ontvangen van terrestriele radio–en televisie–uitzendingen op mobiele apparatuur behandelt:

DVB-H [18]. Digitale broadcasting begint net zoals bij analoge televisie met het opnemen van

een gebeuren in de televisiestudio. Indien de opgenomen signalen analoog zijn, worden ze nu

gedigitaliseerd. Voor video wordt daarvoor gebruik gemaakt van de ITU-R BT.601 [29], voor

audio gebruikt men de AES/EBU standaard [1]. De beeldsignalen worden omgevormd tot een

digitaal signaal. Ook het audiosignaal wordt gedigitaliseerd. De gezamenlijke bitsnelheid van het

resulterende audio– en videosignaal bedraagt meer dan 270 Mbit/sec. Indien zoals bij analoge

televisie een bandbreedte van 8 MHz ter beschikking is, komt men via de Shanon capaciteitsli-

2.2 MPEG–2 8

miet2 al snel tot de conclusie dat compressie noodzakelijk is. Voor de compressie van de audio

en video evenals voor de transmissie wordt de MPEG–2–standaard gevolgd.

2.2 MPEG–2

In 1995 werd MPEG–2–standaard gepubliceerd door de International Standards Organisation

(ISO)3. De standaard beschrijft compressie, opslag en transmissie van digitale audio en video.

De MPEG–2–standaard bestaat uit negen delen waarvan voor digitale televisie vooral delen

een, twee, drie en zes belangrijk zijn. Het eerste deel, MPEG–2 Systems Specification [25],

beschrijft hoe gecomprimeerde audio en video datastromen gemultiplexed kunnen worden in een

datastroom. Deel twee, MPEG–2 Video Specification [26], beschrijft de compressie van digitale

video en deel drie, MPEG–2 Audio Specification [27], beschrijft de compressie van digitale audio.

Deel zes tenslotte, MPEG–2 Extensions for DSM-CC [28], beschrijft een carrouselsysteem dat

gelijkenissen vertoont met het huidige teletekstsysteem.

2.2.1 MPEG–2 Video & Audio Specification

De MPEG–2–videospecificaties en MPEG–2–audiospecificaties beschrijven hoe audio en video

gecomprimeerd kunnen worden en ook de syntax van de gecomprimeerde audio en video. Dit

process wordt omschreven als MPEG–codering. In wat volgt worden enkel de relevante elementen

inzake MPEG–codering van audio en video behandeld. Voor meer details wordt de lezer verwezen

naar [26] en [27].

2.2.1.1 MPEG–2 Video Codering

Een ongecomprimeerde digitale videosequentie bestaat uit een opeenvolging van ongecompri-

meerde beelden, die in MPEG–2–terminologie presentation units worden genoemd. Opeenvol-

gende beelden in een videosequentie verschillen doorgaans weinig van elkaar, dit wordt aangeduid

als temporele redundantie. Ook binnen eenzelfde beeld is er redundantie aanwezig, er kunnen

regio’s gevonden worden met dezelfde kleur of textuur. Dit heet spatiale redundantie. Figuur 2.2

toont de beide vormen van redundantie. Het doel van compressie is dan ook de redundante in-

formatie te verwijderen om een lagere bitsnelheid te bekomen. Spatiale redundantie houdt in dat

naburige pixels in een beeld gelijkaardige waarden hebben en bemoeilijkt compressie. Daarom2De Shanon capaciteitslimiet geeft de maximale bitsnelheid aan voor een bandbreedte beperkt kanaal.3http://www.iso.org

2.2 MPEG–2 9

Figuur 2.2: Spatiale en temporele redundantie.

past men een zogenoemde transformatiecodering toe door middel van de Discrete Cosine Trans-

form (DCT). De DCT transformeert een groep pixels in evenveel transformatiecoefficienten die

beter te comprimeren zijn. De transformatie op zich is inverteerbaar en introduceert dus geen

compressie. De transformatiecoefficienten kunnen echter wel afgerond worden door middel van

quantisatie en geeft aanleiding geeft tot een bescheiden compressie. De quantisatie brengt na-

tuurlijk wel een daling in beeldkwaliteit met zich mee. Berekent men vanuit de gequantiseerde

transformatiecoefficienten opnieuw beeldpixels dan zullen die niet meer gelijk zijn aan de origi-

nele. Een goede quantisatie zorgt er echter wel voor dat het visueel verschil miniem is.

Temporele redundantie wordt verwijderd door het toepassen van motion compensated predic-

tion. Als opeenvolgende beelden gelijkaardige regio’s vertonen is het voordeliger om dergelijke

regio’s slechts eenmaal te coderen. De encoder zoekt in een vooraf gecodeerd referentiebeeld

naar de best passende regio en codeert de locatie ervan, door middel van een motion vector4, en

het verschil tussen de gevonden regio en de eigenlijke regio. Dit verschil wordt de predictiefout

genoemd. Het referentiebeeld kan een voorafgaand of volgend beeld zijn, maar er kan ook ge-

bruik worden gemaakt van een voorafgaand en een volgend beeld. Men duidt dit respectievelijk

aan als forward, backward of bidirectional prediction. Figuur 2.3 illustreert de drie voorspel-

lingstypes. Bij het decoderen zal dan de regio uit het referentiebeeld overgenomen worden en

er de predictiefout bij opgeteld worden. Motion estimated prediction kan de compressie-effientie

drastisch verbeteren.

4Een bewegingsvector of motion vector is een verwijzing naar het referentiebeeld waarin de regio is gevonden

2.2 MPEG–2 10

Figuur 2.3: Voorwaartse, achterwaartse en bidirectionele predictie.

Presentation units worden door MPEG–2–videocompressie omgezet in een van drie beeldty-

pes, zogenaamde picture types: I–frames, P–frames en B–frames. Het eerste type gebruikt enkel

intra frame coding wat betekent dat het beeld onafhankelijk van andere beelden wordt gecom-

primeerd. Bij een I–frame wordt dus enkel de spatiale redundantie verwijderd. Dit beeldtype

is nuttig voor resynchronisatie van de MPEG–2–decoder maar vereist het grootste aantal bits.

P–frames gebruiken inter frame coding. Gebruikmakend van voorwaartse predictie worden P–

frames voorspeld op basis van een voorafgaand I–of P–frame. P–frames kunnen dus zelf ook

als referentie gebruikt worden voor voorspelling. Ze hebben een betere compressie–effientie dan

I–frames. Ook bij het laatste type, B–frames, wordt inter frame coding toegepast. Hier gebruikt

men bidirectionele predictie wat aanleiding geeft tot de beste compressie–effientie. De bidirec-

tionele predictie vergt echter ook de meeste rekentijd. Bovendien resulteert het gebruik van

B–frames in een additionele vertraging bij het decoderen omdat de beide referentiebeelden, die

gebruikt werden bij de predictie, eerst moeten worden gedecodeerd. Een videosequentie wordt

dus gecodeerd als een opeenvolging van I–, P–of B–frame. De keuze van het beeldtype is echter

niet willekeurig. De sequentie wordt namelijk gecodeerd als een opeenvolging van een group of

pictures (GOP). Een GOP start steeds met een I–frame en bevat, volgend op het I–frame, een

bepaalde combinatie van P-en B-frames. Figuur 2.4 toont een voorbeeld van een typische GOP.

De STB kan steeds beginnen met het decoderen van de videostroom vanaf het begin van een

GOP. De structuur van de GOP bepaalt de uiteindelijke bitrate maar ook de gevoeligheid voor

transmissiefouten [34]. Het is namelijk zo dat wanneer motion compensated prediction wordt

toegepast foutpropagatie kan optreden. Foutpropagatie betekent dat een fout in een gedeco-

deerd referentiebeeld aanleiding geeft tot fouten in beelden die voorspeld werden op basis van

2.2 MPEG–2 11

Figuur 2.4: Group of Pictures (GOP).

dat referentiebeeld. Hoewel hier summier enkele belangrijke aspecten van het videocompres-

sieproces worden geschetst zijn, vallen andere belangrijke aspecten buiten het bestek van deze

bundel. De geınteresseerde lezer wordt doorverwezen naar [34] en [26].

2.2.1.2 MPEG–2 Audio Codering

Audio wordt eveneens MPEG gecodeerd wat resulteert in een gecodeerde audio bitstroom. De

exacte werking van het audiocompressieproces is niet relevant voor wat volgt. De gedetaileerde

beschrijving is te vinden in [27].

2.2.2 MPEG–2 Systems Specification

Nadat de audio en video MPEG gecodeerd zijn heeft men eenheden die een gecomprimeerde

representatie zijn van een beeld of een geluidsfragment en een voorgedefinieerde syntax volgen.

Deze eenheden worden in het MPEG–jargon access units genoemd. De digitale videosequentie

wordt dus omgezet in een opeenvolging van video access units. De digitale audio wordt eveneens

geconverteerd naar een opeenvolging van audio access units. Een dergelijke opeenvolging van

eenheden noemt men een elementary stream (ES). De opname van de camera in de televisie-

studio wordt dus omgezet naar twee ES’s, een voor audio en een voor video. Gewoonlijk wordt

hieraan nog een ES toegevoegd die teletekst informatie bevat of een ES met ondertiteling. De

MPEG–2 Systems Specification beschrijft hoe deze ES’s gecombineerd kunnen worden tot een

enkele datastroom. Figuur 2.5 toont schematisch dit proces. In de specificatie worden twee

multiplextypes gedefinieerd: de Program Stream (PS) en de Transport Stream (TS). Het eerste

type is bedoeld voor opslag en wordt wereldwijd gebruikt voor het populaire medium DVD. Het

tweede type vindt zijn toepassing in broadcasting. In wat volgt, wordt de structuur van een

transportstroom geschetst. Om onduidelijkheden uit de weg te gaan dient volgende opmerking

gemaakt te worden. De term program wordt in de MPEG–specificaties gebruikt om een televi-

2.2 MPEG–2 12

Figuur 2.5: MPEG–2–multiplexer.

siekanaal aan te duiden. In de broadcastcontext wordt de term gebruikt voor het aanduiden van

een televisieprogramma en wordt een televisiekanaal zelf aangeduid als een service. Wanneer

in het onderstaande de term kanaal wordt vermeld, dient dit geınterpreteerd te worden als een

program in de MPEG–context.

Een kanaal bestaat, zoals boven aangehaald, typisch uit meerdere ES. De TS werd ontworpen

om meerdere kanalen te transporteren. Een dergelijk soort TS wordt een Multi Program Trans-

port Stream (MPTS) genoemd. De TS waar slechts een kanaal aanwezig is, wordt aangeduid

met Single Program Transport Stream (SPTS). Het eigenlijke multiplexen van de verschillende

kanalen start met het omvormen van de ES’s van elk kanalen tot een Packetised Elementary

Stream (PES). Daartoe worden de access units, waaruit de ES is opgebouwd worden, opge-

nomen als inhoud van PES–packets. Deze PES–pakketten zijn de bouwstenen van de PES.

Figuur 2.6 toont het omvormen van een ES tot PES. Elk PES–pakket heeft een header en een

payload. De lengte van de PES–pakketten kan variabel zijn maar is naar boven begrensd. De

PES–pakketten zelf worden vervolgens opgesplitst in pakketten van 184 bytes. Aan elk pakket

wordt tenslotte een vier bytes grote header toegevoegd. De bekomen eenheden zijn TS–packets.

Deze pakketten zijn tenslotte de eenheden waaruit een TS is opgebouwd. TS–pakketten, van

elke ES van een kanaal en van verschillende kanalen, worden gemultiplexed in een datastroom.

De header van het TS–pakket bevat een verwijzing naar de originele ES waartoe de inhoud

2.2 MPEG–2 13

Figuur 2.6: ES–en PES–structuur.

van het TS–pakket behoort. Deze verwijzing heet de Packet Identifier (PID) en is belangrijk

in het reconstrueren van de kanalen die aanwezig zijn in de TS. Figuur 2.7 geeft een schema-

tische voorstelling van het multiplexen van de verschillende TS–pakketten tot een MPTS. De

Figuur 2.7: MPEG–2 Transport Stream.

TS–pakketten kunnen beschermd wordt met foutprotectie zoals Reed–Solomon–codes. Elke TS,

bestaande uit een opeenvolging van TS–pakketten, wordt tenslotte RF–gemoduleerd op de juis-

te carrier, RF–gemultiplexed en uitgezonden via kabel, antenne of satelliet. De bovenstaande

uiteenzetting schetst kort hoe digitale televisie gevormd wordt, startend met de opname in de

televisiestudio tot de transmissie van de digitale informatiestroom. Maar hoe kan de STB in

de woonkamer nu deze digitale informatiestroom decoderen tot de gebruikelijke televisiekanalen?

2.2 MPEG–2 14

De reconstructie van een televisiekanaal begint met het afstemmen van de STB op de fre-

quentie van de TS. Daarna moet de STB achterhalen welke kanalen aanwezig zijn in de TS.

Zoals op de figuur 2.5 te zien is, moet er naast ES’s ook andere informatie toegevoegd worden,

waaronder Program Specific Information (PSI). Deze informatie wordt eveneens opgenomen in

TS–pakketten zoals ook te zien is in figuur 2.7. De PSI is belangrijk voor het decoderen. Deze

informatie omschrijft de structuur van de multiplex en is vervat in PSI–tabellen. De MPEG–2

Systems Specification beschrijft vier zulke tabellen: de Program Assocation Table (PAT), de

Program Map Table (PMT), de Network Information Table (NIT) en de Conditional Access

Table (CAT).

2.2.2.1 Program Association Table (PAT)

De STB start de reconstructie door het ophalen van de PAT. De PAT geeft aan welke kanalen

die aanwezig zijn in de TS. De PAT kan eenvoudig in de TS worden gevonden doordat de TS–

pakketten die de PAT informatie bevatten steeds PID–waarde nul hebben. Figuur 2.8 toont

een voorbeeld PAT. In de PAT wordt voor elk kanaal, dat aangeduid wordt met een program

Figuur 2.8: Program Association Table (PAT).

2.2 MPEG–2 15

number5, de PID–waarde gegeven van de TS–pakketten die de PMT van het kanaal bevatten.

De volgende stap die de STB moet nemen om een kanaal te kunnen decoderen, is het ophalen

van de PMT.

2.2.2.2 Program Map Table (PMT)

Eens de PID–waarde van de PMT van het gezochte televisiekanaal is bekomen, wordt de PMT

gereconstrueerd. Daartoe selecteert de STB de TS–pakketten met de PID–waarde van de PMT

van het kanaal. Figuur 2.9 toont de PMT van kanaal met nummer drie. De PMT bevat voor

Figuur 2.9: Program Map Table (PMT).

elke ES die aanwezig is in het kanaal de PID–waarden van de TS–pakketten die informatie van

de ES bevatten. Zo kan op figuur 2.9 het volgende worden afgelezen. Er is een ES die video

bevat en aanwezig is in TS–pakketten met PID–waarde 41. Verder zijn er ook drie ES’s met

audio die terug te vinden zijn in de TS–pakketten met respectievelijke PID–waarden 80, 81 en

82. TS–pakketten met PID–waarde 90 bevatten de ondertiteling. Op deze manier kan de STB

het televisiekanaal filteren uit de multiplex en decoderen.

2.2.2.3 Network Information Table (NIT) & Conditional Access Table (CAT)

De NIT verschaft informatie over het fysieke netwerk waarover de TS wordt geleverd. De NIT

wordt in de PAT aangeduid met kanaalnummer nul, zoals ook op figuur 2.8 te zien is. Deze5In de MPEG–context wordt een kanaal een program genoemd, vandaar dat het kanaalnummer omschreven

wordt als program number.

2.2 MPEG–2 16

informatie omvat onder meer de kanaalfrequenties, modulatiekarakteristieken, enz.. De CAT is

aanwezig indien een ES binnen de TS gescrambled6 is. In dat geval geeft de CAT onder meer

aan welk scramblingsysteem gebruikt wordt. Voor meer informatie over beide tabellen alsook

hun toepassing wordt verwezen naar [25].

2.2.2.4 DVB Service Information

In de DVB–standaard worden nog enkele bijkomende tabellen gedefinieerd die aangeduid worden

als DVB Service Information (DVB SI). De MPEG–2 PSI–tabellen beschrijven vooral de struc-

tuur van de multiplex. De DVB SI–tabellen geven de STB extra informatie over het netwerk

en de inhoud van de verschillende kanalen die aanwezig zijn in de multiplex. Voorbeelden van

DVB SI–tabellen zijn onder meer de Event Information Table (EIT) en de Service Description

Table (SDT). De EIT verschaft informatie over programma’s, het moment waarop ze starten,

hun duur, enz.. De SDT beschrijft dan weer de aanwezige kanalen, de provider, enz... Voor een

gedetailleerde beschrijving wordt verwezen naar [19]. De DVB SI–tabellen worden net als de

MPEG–2 PSI–tabellen opgenomen in TS–pakketten.

2.2.2.5 Timing Model

Een belangrijk aspect bij het decoderen van digitale televisie is timing. Elk kanaal in een MPEG–

2 MPTS heeft een eigen onafhankelijke klok waarvan tijdsstempels, die Program Clock References

(PCR) worden genoemd en opgenomen zijn in de header van MPEG–2 TS–pakketten. Een

tijdsinterval tussen opeenvolgende PCR–waarden dient volgens de MPEG–2–standaard kleiner

dan of gelijk te zijn aan 100 ms. Als een MPEG–decoder afstemt op een kanaal om de media

te decoderen, zal de decoder zijn interne klok synchroniseren met de klok van het kanaal aan

de hand van deze PCR–waarden7. De synchronisatie is nodig om op de correcte tijdstippen

access units waaruit een ES bestaat te decoderen en presenteren. Elk PES–pakket bevat een

Presentation Time Stamp (PTS) en mogelijk ook een Decoding Time Stamp (DTS). Figuur 2.10

geeft dit alles schematisch weer. Indien enkel een PTS voorkomt dan geeft dit tijdsstempel het

moment aan waarop een access unit gedecodeerd en gepresenteerd moet worden aan de gebruiker.

Bevat een PES–pakket een DTS en een PTS, dan bepaalt de eerste stempel het moment waarop

de access unit gedecodeerd moet worden en de tweede stempel wanneer de presentatie ervan moet6Er zijn verschillende encryptiesystemen in gebruik zoals VideoGuard in het Verenigd Koninkrijk en in Italie

en NagraVision in Duitsland. Meer informatie over scrambling en conditionele toegang is te vinden in [12].7Dit synchroniseren gebeurt aan de hand van een fasevergrendelingslus.

2.2 MPEG–2 17

Figuur 2.10: Timing.

gebeuren. In dit geval zal de PTS steeds een grotere waarde hebben dan de DTS en dus een

later tijdstip aanduiden. Een dergelijke scheiding van decoderen en presenteren is bijvoorbeeld

nodig door het gebruik van B–frames. De PTS en DTS worden vergeleken met de waarde van

de interne klok waardoor het belang van een nauwkeurige kloksynchronisatie duidelijk naar voor

komt.

2.2.3 MPEG–2 Extensions for DSM–CC

Digital Storage Media – Command and Control (DSM–CC) is een standaard waarmee langs het

broadcastkanaal data kan worden getransporteerd. DSM–CC is gebaseerd op een carrouselprin-

cipe waarbij informatie periodiek uitgezonden wordt. Het teletekstsysteem gebruikt hetzelfde

principe. De ontvanger die een bepaalde pagina wenst, moet wachten tot de pagina, die in

de carrousel is opgenomen, terug wordt uitgezonden. DSM–CC kent twee carrousel types: de

datacarrousel en de objectcarrousel. Bij het eerste type wordt data in blokken gezonden maar

is er een bijkomende informatie over de eigenschappen van die data. Het tweede type, de ob-

jectcarrousel, bouwt verder op het eerste type en biedt een directorystructuur waarin informatie

is ondergebracht. De informatie die langs het broadcastkanaal wordt verzonden kan tekst zijn,

maar ook afbeeldingen of applicaties.

2.3 iDTV 18

2.2.4 MPEG–2 Profiles & Levels

De MPEG–2–standaard omvat heel wat functionaliteit en omdat het onwaarschijnlijk is dat

een applicatie alle functionaliteit nodig heeft, worden profiles en levels gedefinieerd. Profielen

en levels zijn bedoeld om het implementeren van de standaard in producten te vereenvoudigen

en interoperabiliteit tussen implementaties te garanderen. Elk profiel beschrijft capabilities,

bepaalde functionaliteiten die aanwezig zijn in het profiel. Zo is onder meer het Main profile

gedefinieerd. Dit profiel bevat alle kernfunctionaliteiten van de standaard, zoals B–frames en

ondersteuning voor geınterlinieerde video. Naast het Main Profile worden nog een vijftal andere

profielen beschreven. Een level beschrijft de spatiale en temporele resolutie die ondersteund

worden. Er zijn vier levels gedefinieerd in de MPEG–2–standaard. Het Main Level bijvoorbeeld

laat een spatiale resolutie toe die 720 pixels breed en 576 pixels hoog is, en een temporele

resolutie tot 30 beelden per seconde. Voor DVB wordt het Main Profile gebruikt in combinatie

met het Main Level.

2.3 iDTV

De interactiviteit bij analoge televisie is beperkt. De kijker kan via de afstandsbediening de

zender van zijn keuze selecteren en teletekst informatie opvragen. De interactiviteit wordt soms

verhoogd door de kijker te laten interageren met de programma’s die hij aan het bekijken is. De

interactie gebeurt dan via kanalen zoals televoting en SMS waarlangs de kijker bijvoorbeeld zijn

keuze kan doorsturen. Deze kanalen staan echter wel los van de televisie. Dit principe wordt

nu al toegepast bij het Eurovisie Songfestival. Gezien de massale reactie van het publiek is het

duidelijk dat de gebruiker de extra interactiviteit op prijs stelt. Interactive Digital Television

(iDTV) verruimt de ervaring van de kijker door naast digitale televisie, zoals die boven wordt

beschreven, ook interactiviteit aan te bieden. Deze interactiviteit wordt gerealiseerd aan de hand

van applicaties. Elektronische programmagidsen (EPG), spelletjes, leerapplicaties en videocon-

ferencing zijn slechts een greep uit het aanbod. Zoals in figuur 2.1 wordt getoond, is de centrale

eenheid in de opstelling de STB. De STB zal in de eerste plaats het digitale broadcastsignaal

decoderen en naar de televisie voeren. Daarnaast kunnen op de STB ook applicaties uitgevoerd

worden zoals bijvoorbeeld een EPG. In figuur 2.1 is ook een andere belangrijke eigenschap weer-

gegeven, namelijk het terugkeerkanaal. Dit kanaal kan gebruikt worden om voorkeuren van de

gebruiker door te geven, waardoor interactiviteit niet alleen lokaal maar ook globaal kan zijn.

2.3 iDTV 19

De architectuur van een STB is gelaagd en er kunnen steeds een drietal lagen worden onderschei-

den die worden afgebeeld in figuur 2.11. De system resources layer bevat de hardwarebronnen

Figuur 2.11: STB–architectuur.

zoals CPU , RAM , GPU , MPEG–decoder, ... Hoewel deze opsomming doet denken aan een

PC–platform is het belangrijk op te merken dat de hardwarebronnen beperkt zijn. Een STB is

een product bedoeld voor massaproductie en massaconsumptie. Het spreekt dan ook voor zich

dat de hardwarebronnen aanwezig in de eenheid eerder gekozen zijn met betrekking tot kost dan

met betrekking tot performantie. Bij de ontwikkeling van applicaties voor de STB moet hier

dan ook voldoende rekening mee gehouden worden. Bovenop de system resource layer bevindt

zich de system software layer. Deze laag bevat het besturingssysteem en de applicatiebeheerder.

De applicatiebeheerder staat in voor het beheren van applicaties die uitgevoerd worden op de

STB en de bronnen die daarvoor worden gebruikt. De hoogste laag is de applications layer

die de applicaties bevat. De applicaties kunnen aanwezig zijn in opslagruimte in de STB maar

kunnen ook ontvangen worden via het broadcastkanaal door middel van DSM-CC. De software

stack in de STB is eveneens gelaagd en heeft een middleware–platform tussen de applicaties en

systeemsoftware. Het middleware–platform verbergt de systeemsoftware en systeemhardware

voor de applicatieontwikkelaar en maakt applicaties portable. Er zijn verschillende middleware–

oplossingen voor handen. Sommige zijn gebaseerd op de Java Virtual Machine (JVM). Ze

kunnen ingedeeld worden in twee groepen; de open platformen en de particuliere platformen.

Onder de laatste categorie vallen onder meer OpenTV, MediaHighway, Power TV en Liberate.

Deze platformen worden vaak gebruikt door commerciele broadcasters zoals bijvoorbeeld Ca-

nal+ en Bsky. In de categorie open platformen vinden we onder meer het Multimedia Home

2.4 Multimedia Home Platform (MHP) 20

Platform (MHP) [16] en het OpenCable Applications Platform (OCAP) [5].

2.4 Multimedia Home Platform (MHP)

In 1997 werd binnen het DVB–consortium een groep opgericht die de naam DVB–MHP draagt.

Deze groep is verantwoordelijk voor het uitbrengen van de MHP–specificaties. De MHP–

specificaties beschrijven een open middleware–platform voor iDTV. De laatste specificatie, MHP

Specifications 1.1.1 [16], verscheen in 2003 en ondertussen zijn al heel wat MHP–compatibele

STB’s beschikbaar. Een open platform bewerkstelligt een horizontale markt waarin applicaties

portable zijn en er concurrentie mogelijk is. Applicaties die ontwikkeld worden voor MHP, zullen

uitgevoerd kunnen worden op elke MHP–compatibele STB. MHP gebruikt de DVB–specificaties

en in de MHP–specificaties wordt de structuur en de componenten van het platform gedefini-

eerd. MHP Specifications 1.0.2 [15] en MHP Specifications 1.1.1 [16] beschrijven de basis ar-

chitectuur, het application model, de applicatiesignalisatie, het DVB–J–platform, het grafisch

model in MHP, beveiliging, enz.. Figuur 2.12 toont de architectuur van MHP en de verschillende

componenten. Enkele van de componenten worden hierna kort geschetst.

Figuur 2.12: MHP–architectuur.

2.4 Multimedia Home Platform (MHP) 21

2.4.1 DVB–J Platform

De kern van MHP is gebaseerd op het DVB–J–platform. Dit platform gebruikt de JVM van

Sun8. De JVM verschaft een gemeenschappelijke interface ongeacht verschillende software en

hardware implementaties. MHP–applicaties, xlets zoals ze genoemd worden, zullen dus hetzelfde

gedrag vertonen ongeacht de onderliggende hard–en software van de STB. Het DVB–J–platform

biedt een aantal API’s aan waarlangs een xlet toegang heeft tot verscheidene bronnen van de

STB. In figuur 2.12 worden deze afgebeeld. De Sun Java–API’s bevatten onder meer het Java

Media Framework (JMF) [38], voor het presenteren en controleren van audio en video, en de

Abstract Window Toolkit (AWT) [37], voor het creeren van user interfaces. De HAVi–API’s9

zijn bedoeld voor presentatie en gebruikerinterfaces. De DAVIC–API’s10 bieden functionaliteit

in verband met het gebruik van hardware bronnen, conditionele toegang en tuning. Tenslotte zijn

er nog de DVB–API’s die uitbreidingen of beperkingen omvatten voor de Java–API’s, beveiliging

incorporeren, enz...

2.4.2 Applicatiemodel

Op de STB kunnen MHP–applicaties uitgevoerd worden. Naar analogie met applets, zoals die

gebruikt worden op internet, wordt in de MHP–specificatie een applicatiemodel gedefinieerd voor

xlets. Het applicatiemodel beschrijft de levenscyclus van de xlets. Er worden vier toestanden

gedefineerd: Loaded, Paused, Active en Destroyed. Figuur 2.13 toont de verschillende toestanden

en de toestandstransities. Belangrijk is op te merken dat simultaan op de STB verscheidene xlets

in parallel kunnen worden uitgevoerd. Daarom moeten deze ook de bronnen van de STB delen.

2.4.3 Applicatiesignalisatie

Hierboven werd reeds vermeld dat in de DVB–specificaties DVB SI–tabellen worden gedefinieerd

die de reeds aanwezige MPEG–2 PSI–tabellen aanvullen met additionele informatie. Op dezelfde

manier wordt, in de MHP–specificaties, de Application Information Table (AIT) gedefinieerd.

Deze tabel bevat informatie over de locatie van applicaties, over de applicaties die uitgevoerd

mogen worden als op een bepaald televisiekanaal wordt afgestemd en ook welke applicaties

automatisch opgestart moeten worden.8Sun Microsystems Inc., http://www.sun.com9Home Audio Video interoperability, http://www.havi.org

10Digital Audio–Visual Council, http://www.davic.org

2.4 Multimedia Home Platform (MHP) 22

Figuur 2.13: Levenscyclus xlet.

2.4.4 Grafisch Model in MHP

In MHP kan de applicatie–ontwikkelaar gebruik maken van verschillende componenten voor het

weergeven van afbeeldingen, knoppen, tekst, enz... Het beeld dat de gebruiker ziet is steeds

opgebouwd aan de hand van vlakken, het ene boven op het andere. Er worden in de MHP–

specificatie drie vlakken gedefinieerd: het achtergrondvlak, het videovlak en het grafisch vlak

[16]. Figuur 2.14 toont deze drie vlakken. In het achtergrondvlak kan een statische afbeelding,

Figuur 2.14: Grafisch model in MHP.

zoals een MPEG–2 I–frame, of een bepaalde monotone kleur worden weergegeven. In het video-

2.4 Multimedia Home Platform (MHP) 23

vlak wordt de video getoond. In het grafisch vlak kunnen afbeeldingen worden weergegeven of

componenten waarmee de gebruiker kan interageren zoals knoppen.

2.4.5 MHP–Profielen

Net zoals in de MPEG–2–standaard definieren de MHP–specificaties drie profielen: het Enhan-

ced Broadcasting Profile [15], het Interactive Broadcasting Profile [15] en het Internet Access

Profile [16]. Elk profiel beschrijft een bepaalde functionaliteit en heeft een toepassingsdomein.

Een profiel omschrijft ook de vereisten waaraan een STB, die voldoet aan het profiel, moet

beantwoorden. Figuur 2.15 geeft deze profielen schematisch weer.

Figuur 2.15: MHP–profielen.

Het Enhanced Broadcasting–profiel beschrijft de basisfunctionaliteit die ook terug te vinden is

in bestaande middlewaresystemen. Het verondersteld niet dat de STB beschikt over een terug-

keerkanaal. Het Interactive Broadcasting–profiel vereist daarentegen wel dat de STB beschikt

over een terugkeerkanaal. Het terugkeerkanaal kan volgens dit profiel gebruikt kan worden voor

het downloaden van applicaties wat niet mogelijk is in het Enhanced Broadcasting–profiel. Het

Internet Access–profiel heeft betrekking op het toegankelijk maken van internetdiensten op de

STB. Dit vereist weliswaar wel een meer gesofistikeerde STB.

2.4 Multimedia Home Platform (MHP) 24

Het MHP–platform leent zich ideaal tot het aanbieden van verschillende nieuwe diensten, die

televisie kijken ingrijpend zullen veranderen. Toch verloopt het implementeren van live event

broadcasting en videoconferencing voor het MHP niet zonder uitdagingen. Volgend hoofdstuk

behandelt de problemen alsook de gekozen oplossingen.

LIVE EVENT BROADCASTING & VIDEOCONFERENCING VOOR MHP 25

Hoofdstuk 3

Live Event Broadcasting &

Videoconferencing voor MHP

3.1 Probleemstelling

In het hoofdstuk 1 werden voor live event broadcasting en videoconferencing de requirements

geschetst. Deze vereisten moeten gerealiseerd worden op het MHP–platform en binnen de tech-

nische mogelijkheden van de STB. Zoals zal blijken, zijn sommige vereisten echter niet eenvoudig

te verwezenlijken en vergen een specifieke oplossing. In wat volgt, worden de problemen aange-

kaart en de oplossingen voorgesteld. Hernemen we voor beide diensten, live event broadcasting

en videoconferencing, een concreet voorbeeld.

Een typisch voorbeeld van een live event is een muziekconcert. Het concert wordt tegelijker-

tijd opgenomen vanuit verschillende standpunten waardoor de gebruiker keuze heeft hoe hij het

concert wil beleven. Hij kan op elk moment beslissen van camerastandpunt te veranderen, een

vorm van interactiviteit die bij huidige televisie niet voorkomt. Dit betekent dus dat minstens

het Interactive Broadcasting–profiel vereist is, waarvan eerder sprake was in 2.4.5, zodat de ge-

bruiker zijn voorkeur kan doorgeven. Een vertraging tussen de opname en de weergave op het

televisiescherm is aanvaardbaar, maar wordt bij voorkeur zo klein mogelijk gehouden.

Twee gebruikers wensen een videoconferencing sessie op te zetten. Ze bevinden zich beide

in hun woonkamer en willen op een vloeiende wijze met elkaar kunnen communiceren via het

televisiescherm. In tegenstelling tot live event broadcasting is vertraging hier erg belangrijk en

3.2 Ontvangen van Videostroom 26

moet zo klein mogelijk gehouden worden om een aangename videoconferentie te bekomen. Een

gebruiker moet natuurlijk ook kunnen kiezen met wie hij een videoconferentie aangaat, opnieuw

is dus het Interactive Broadcasting Profile–profiel vereist. Een ander cruciaal aspect is natuurlijk

het opnemen van audio en video. Een gebruiker moet niet alleen een audiovisuele stroom van

de andere gebruiker in de conferentie kunnen ontvangen, hij moet ook een dergelijk stroom van

zichzelf doorsturen.

Bij de beide diensten moet een audiovisuele stroom geleverd worden op vraag van de gebrui-

ker. De term videostroom wordt in wat volgt, gebruikt om dergelijke audiovisuele stroom aan

te duiden. Dat de videostroom bovendien live is, wordt impliciet verondersteld. Naast deze

gemeenschappelijke vereiste is voor videoconferencing ook opname noodzakelijk. Samengevat

dient het volgende gerealiseerd worden.

• Videostroom ontvangen op de STB bij zowel live event broadcasting als videoconferencing.

• Audio en video opnemen bij videoconferencing bijvoorbeeld met een webcam.

• Vertraging bij voorkeur beperken voor live event broadcasting en minimaliseren voor vi-

deoconferencing.

Er wordt bovendien aangenomen dat de videostroom afkomstig is van een IP–netwerk. Deze

veronderstelling wordt gemaakt omwille van de eenvoudige reden dat er tegenwoordig meer en

meer gebruikt wordt gemaakt van IP in zogenaamde backbone–netwerken. De veronderstelling

behoudt dus de algemeenheid en bijgevolg kan de videostroom afkomstig zijn van eender welk

netwerk dat IP gebruikt. In wat volgt, worden de eerste twee vereisten behandeld en wordt

gezocht hoe deze vereisten in de MHP–specificatie en binnen de mogelijkheden van de STB’s

kunnen worden vervuld. De vertraging is natuurlijk evenzeer belangrijk maar komt in een

volgend hoofdstuk aan bod.

3.2 Ontvangen van Videostroom

Figuur 2.1 toont de opstelling die in de woonkamer aanwezig is voor het ontvangen van iDTV.

De centrale eenheid in de opstelling de STB en zoals op de figuur te zien is, beschikt de STB over

twee kanalen. Het eerste kanaal, het broadcastkanaal, is unidirectioneel. Langs dit kanaal wordt

digitale televisie ontvangen. Het tweede kanaal, het terugkeerkanaal, is bidirectioneel en kan

3.2 Ontvangen van Videostroom 27

gebruikt worden om keuzes van de gebruiker door te geven of informatie te ontvangen. Het te-

rugkeerkanaal kan verschillende vormen aannemen. Het kan een lage snelheid internetconnectie

zijn, door middel van een PSTN–modem of GPRS, maar evengoed een hogesnelheid internetcon-

nectie zijn, via een kabelmodem. Er zijn twee kanalen waarlangs een videostroom ontvangen zou

kunnen worden: het broadcastkanaal en het terugkeerkanaal. Gezien de flexibiliteit waarmee een

kijker een live–uitzending moet kunnen kiezen of waarmee een gebruiker een videoconferentie

moet kunnen opzetten, lijkt het terugkeerkanaal de beste keuze. De MHP–specificatie beschrijft

de interactieprotocollen die gebruikt kunnen worden voor dit terugkeerkanaal. Figuur 3.1 toont

een overzicht van deze protocollen.

Figuur 3.1: Protocollen voor het terugkeerkanaal.

Voor het zenden van een live videostroom wordt gewoonlijk gebruik gemaakt van UDP over IP

om vertragingen klein te houden. Beide protocollen zijn aanwezig in de protocolstack van het

terugkeerkanaal.

3.2.1 MHP Exploratie

In de MHP–specificatie is er geen voor de hand liggende ondersteuning te vinden om via het

terugkeerkanaal een videostroom te ontvangen. Video drips, kleine videofragmenten, kunnen wel

langs het terugkeerkanaal worden ontvangen maar zijn niet geschikt voor toepassingen in ware

3.2 Ontvangen van Videostroom 28

tijd. Er werden een aantal mogelijkheden uitgeprobeerd om, weliswaar binnen de grenzen van

de MHP–specificatie, toch via het terugkeerkanaal een videostroom te ontvangen. Deze worden

in wat volgt een voor een behandeld.

3.2.1.1 Video Weergave in het Achtergrondvlak

Zoals ook in hoofdstuk 2 werd aangehaald, zie 2.4.4, zijn er binnen het grafisch model van MHP

drie vlakken te onderscheiden: het achtergrondvlak, het videovlak en het grafisch vlak. Het

achtergrondvlak kan gebruikt worden om een egale kleur of een MPEG–2 I–frame in weer te

geven [15]. MPEG–2 I–frames kunnen ontvangen worden via het terugkeerkanaal. Het lijkt

dus in principe mogelijk om een videosequentie te coderen als een opeenvolging van MPEG–2

I–frames en die aan een voldoende hoge snelheid weer te geven in het achtergrondvlak. Zo zou

de illusie van video worden gecreeerd. Deze manier van werken heeft echter een aantal evidente

nadelen. Zoals ook in 2.2.1 wordt vermeld, wordt bij MPEG–2 I–frames intra frame coding

toegepast. De videosequentie zou heel weinig gecomprimeerd worden en er zou dus een hoge

bandbreedte nodig zijn wat, gezien de mogelijke vormen die het terugkeerkanaal kan aannemen,

niet gegarandeerd is. Verder is er dan ook onzekerheid over de haalbare beeldsnelheid en of die

beeldsnelheid zou varieren tussen verschillende STB’s.

3.2.1.2 Video Weergave in het Grafisch Vlak

Er kan natuurlijk ook gebruik worden gemaakt van het grafisch vlak. In het grafisch vlak kunnen

afbeeldingen worden weergegeven. De toegelaten formaten zijn PNG, GIF en JPEG. Encoderen

van de videosequentie als een opeenvolging van JPEG–frames1 en deze weergeven in het grafisch

vlak zou eveneens een oplossing kunnen zijn. Ook deze manier van werken heeft een aantal

nadelen. Het weergeven van afbeeldingen in het grafisch vlak is een intensieve taak voor een

STB. Opnieuw is er onzekerheid met betrekking tot de haalbare beeldsnelheid. Daarnaast is

in MHP–specificatie 1.0.2 nog een bijkomende beperking. Een STB die aan deze specificatie

voldoet, hoeft in het grafisch vlak slechts over een kleurenpalet bestaande uit 188 kleuren te

beschikken [15]. Dit betekent dat elke afbeelding, die wordt weergegeven in het grafisch vlak,

getransformeerd zal worden naar deze 188 kleuren. Deze transformatie kan resulteren in een

slechte weergave van de videosequentie. Deze beperking is echter niet meer aanwezig in MHP–

specificatie 1.1.1 [16].1Dit is het principe bij Motion JPEG–compressie (MJPEG).

3.2 Ontvangen van Videostroom 29

Beide pogingen hebben bovendien een belangrijk gemeenschappelijk nadeel. Telkens werd enkel

het video–aspect beschouwd. De videostroom zou opgedeeld moeten worden in beeld en geluid.

De audio zou apart ontvangen moeten worden wat aanleiding kan geven tot synchronisatie-

problemen tussen audio en video bij het afspelen. Dit nadeel heeft de volgende poging echter

niet.

3.2.1.3 JMF Extensie

In het vorig hoofdstuk werd JMF reeds vermeld. De API wordt in MHP gebruikt voor het

presenteren en controleren van audio en video. In JMF wordt naar media gerefereerd met een

locatie–aanduiding, een zogenaamde locator. Het ophalen van de media gebeurt door een data-

bron, een DataSource, en het decoderen en presenteren ervan wordt uitgevoerd door een speler

of Player. Elke speler heeft een of meerdere objecten die functionaliteit toevoegen, die Controls

worden genoemd. Die functionaliteit betreft bijvoorbeeld het regelen van het volume. JMF

gebruikt een manager om voor media een passende databron aan een geschikte speler te linken.

Om de werking van JMF te illustreren nemen we het veelvoorkomende voorbeeld waarbij er

wordt afgestemd op een televisiekanaal. Veronderstel dat dit kanaal aangeduid wordt met de

locatie–aanduiding dvb://0.0.1. Deze aanduiding is een DVB locator en bestaat uit drie ele-

menten; een Network Identifier (ONID), een Transport Stream Identifier (TSID) en een Service

Identifier (SID). De eerste twee elementen duiden het netwerk en de transportstroom aan. Het

laatste element is ook gelijk aan het kanaalnummer zoals dit voorkomt in de PAT, zie hoofd-

stuk 2.2.2. Uit de aanduiding leidt de manager het protocol dvb af. Voor dit protocol wordt

een geschikte databron geınitialiseerd. Daarna wordt de correcte speler gecreeerd en tenslotte

wordt deze verbonden met de databron. De speler ontvangt de media van de databron en start

het decoderen en presenteren.

In JMF 1.0 worden verschillende types databronnen ondersteund. Zo zijn er de Broadcast

DataSource, zoals die voor het protocol dvb wordt gebruikt, de File DataSource, om media uit

een bestand af te spelen en de HTTP DataSource. Op het PC–platform, waarvan JMF wordt

geleend, is er voorziening om eigen databronnen te definieren waardoor JMF uitbreidbaar is. Het

is in principe wel mogelijk om een eigen databron te implementeren waarmee een videostroom

over het terugkeerkanaal kan worden ontvangen maar de ontvangen media zal niet kunnen wor-

3.2 Ontvangen van Videostroom 30

den afgespeeld. JMF uitbreiden behoort niet tot de mogelijkheden in MHP.

Samenvattend kan er dus gesteld worden dat het niet mogelijk is binnen de huidige MHP–

specificaties om een videostroom te ontvangen via het terugkeerkanaal. Het is interessant om

de mogelijkheden van huidige en toekomstige STB’s daar tegenover te plaatsen.

3.2.2 STB Voorzieningen

Aangezien een videostroom ontvangen via het terugkeerkanaal in de MHP–specificaties geen

vereiste is, is het ook te verwachten dat de meeste MHP–compatibele set–top boxen deze functi-

onaliteit niet zullen hebben. Er valt op te merken dat sommige fabrikanten dergelijke functiona-

liteit toch in het design opnemen of van plan zijn dit in hun productlijn te voorzien. Dergelijke

boxen zijn vandaag misschien minder courant, maar zullen waarschijnlijk in de nabije toekomst

wel vaker opduiken.

3.2.2.1 IP STB

Sommige STB’s hebben wel de mogelijkheid om een videostroom over IP via het terugkeerkanaal

te ontvangen. Deze functionaliteit wordt geıncorporeerd in het STB–design ondanks het feit dat

dit niet in de MHP–specificatie als vereiste wordt vermeld. Een dergelijke STB wordt een IP

set–top box (IP STB) genoemd. Andere fabrikanten voorzien dan weer speciale ASIC–modules

(Application Specific Integrated Circuit) om bestaande set–top boxen van de functionaliteit te

voorzien.

3.2.2.2 IP Triple Play in HFC–netwerken

De term IP Triple Play wordt gebruikt om de combinatie van video–, spraak–en datadiensten

over IP aan te duiden. Datadiensten over IP zijn al lang beschikbaar en sinds geruime tijd wordt

er Voice over IP (VoIP) aangeboden op het PC–platform en ook door middel van IP–telefoons.

De laatste dienst, video, wordt momenteel nog niet over IP aangeboden maar er kan verwacht

worden dat IP Television (IPTV) weldra geıntroduceerd zal worden. Het grote voordeel voor

de operator is dat bij de drie diensten telkens dezelfde infrastructuur kan worden gebruikt.

3.2 Ontvangen van Videostroom 31

In een HFC–toegangsnetwerk2 wordt de DOCSIS–standaard gebruikt om IP–verkeer te trans-

porteren. De standaard beschrijft hoe IP–pakketten, die bijvoorbeeld spraak of data bevatten,

kunnen geencapsuleerd worden in MPEG–2–TS–pakketten voor transport over het kabelnet-

werk. Langs de gebruikerszijde ontvangt een cable modem (CM) de MPEG–2 TS, haalt de

IP–pakketten uit de TS en levert deze af aan een apparaat dat met de CM is verbonden. Zo

kan een PC bijvoorbeeld spraak over IP ontvangen. Het terugkeerkanaal van een STB kan tot

stand gebracht worden door aansluiting op de CM.

Er zijn fabrikanten die STB’s hebben aangekondigd die CM–functionaliteit zullen bezitten [4].

Een dergelijke Dual Feed Set–Top Box heeft twee tuners zoals in figuur 3.2 wordt geıllustreerd.

Een van beide tuners wordt gebruikt voor het afstemmen op een MPEG–2 TS en het ontvangen

Figuur 3.2: Dual feed set–top box.

van digitale televisie. De andere kan gebruikt worden om IP–pakketten te ontvangen die volgens

de DOCSIS–standaard in een MPEG–2 TS zijn ondergebracht. Bovendien kunnen deze STB’s,

als de IP–pakketten bijvoorbeeld video bevatten, de ontvangen video wel afspelen.

Beide voorbeelden tonen aan dat fabrikanten geneigd zijn om ondersteuning te bieden voor

ontvangen van video over IP via het terugkeerkanaal. Door deze functionaliteit ook in de MHP–

standaard op te nemen, zou MHP dichter bij IPTV worden gebracht. MHP voor IPTV is

trouwens ook al voorgesteld [33].2Een HFC–netwerk is een netwerk dat bestaat uit een hybride van coaxkabel en glasvezel. De hybride komt

tot stand door het upgraden van het bestaande kabelnetwerk door middel van optische technologie. De structuur

een HFC–netwerk wordt in volgend hoofdstuk beschreven.

3.2 Ontvangen van Videostroom 32

3.2.3 IP2DVBGateway & IP2DVBScheduler

Na de bovenstaande uiteenzetting luidt de conclusie dat het terugkeerkanaal niet aangewend

kan worden om een videostroom te ontvangen. Er kan immers geen beroep worden gedaan op

speciale boxen die wel over dergelijke functionaliteit beschikken want dat zou de portabiliteit

van de applicatie in gevaar brengen. Hoe kan de videostroom dan tot bij de gebruiker wor-

den gebracht die erom vraagt? De oplossing bestaat erin de videostroom op te nemen in de

broadcast waardoor de STB die kan ontvangen via het broadcastkanaal. De videostroom zal

opgenomen worden in een kanaal en bij de andere aanwezige kanalen worden gevoegd. Deze

functionaliteit zal verzorgd worden door de IP2DVBGateway. Figuur 3.3 toont het principe.

De IP2DVBGateway ontvangt via het IP–netwerk videostromen en deze worden bij andere te-

Figuur 3.3: Principe IP2DVBGateway.

levisiekanalen in de broadcast gevoegd. Gezien de anatomie van digitale televisie, zoals die in

het vorig hoofdstuk werd geschetst, is het overbrengen van een live videostroom naar de broad-

cast echter geen sinecure. Bij digitale televisie, bestaat de broadcast uit televisiekanalen die

MPEG–2 gecodeerd en opgenomen zijn in MPEG–2 TS’s. De videostroom zal, door opname

in de broadcast, beschikbaar worden gemaakt als televisiekanaal. Meteen rijzen enkele vragen.

Hoe gebeurt de toekenning van deze televisiekanalen? Hoe zal de STB op de hoogte worden

gebracht van het kanaal waarop zijn aangevraagde videostroom te zien is?

3.3 Opname van Videostroom 33

De videostroom zal, om opgenomen te kunnen worden in de broadcast, in ieder geval MPEG–2

gecodeerd moeten worden. Er kan geopteerd worden voor een flexibele IP2DVBGateway die

een waaier aan formaten ondersteunt maar dan moet de component het transcoderen van de

videostroom voor zijn rekening nemen. Hier wordt echter gekozen om de eis op te leggen dat

de videostroom reeds MPEG–2 gecodeerd is en geleverd wordt aan de IP2DVBGateway als

een MPEG–2 SPTS. Zo wordt de taak van het transcoderen verlegd naar de bron van de vi-

deostroom. Die bewuste keuze wordt gemaakt met betrekking tot schaalbaarheid, maar heeft

natuurlijk een impact op de bron die een videostroom zal moeten kunnen leveren als SPTS. De

voorwaarde dat de videostroom geleverd wordt als SPTS houdt in dat de videostroom in principe

al behoort tot een digitaal televisiekanaal. Dit televisiekanaal moet echter correct in de broad-

cast opgenomen en gesignaliseerd worden. Daartoe zal de structuur van de SPTS die naar de

IP2DVBGateway wordt gezonden aan bepaalde voorwaarden moeten voldoen. De structuur be-

treft de ID–waarden voor netwerk, transportstroom en kanaal en de PID–waarden van de PMT

en de ES’s. De ID–waarden vormen ook de locatie–aanduiding in de broadcast en zullen gebruikt

worden om de STB mede te delen waar in de broadcast het televisiekanaal met de videostroom

terug te vinden is. Het voorschrijven van de structuur van SPTS’s die naar de IP2DVBGateway

gezonden mogen worden, zal de taak zijn van de IP2DVBScheduler. De IP2DVBScheduler zal

het aanspreekpunt zijn om een kanaal in de broadcast te reserveren zodat er een videostroom

in kan opgenomen worden. De IP2DVBScheduler zal controle uitoefenen op de IP2DVBGateway.

Er zijn hardware oplossingen die de bovenbeschreven functionaliteit vervullen. De kostprijs

van dergelijke producten is echter hoog en de eenheden zijn ook niet zo flexibel.

3.3 Opname van Videostroom

Het is evident dat bij videoconferencing elke deelnemer beschikt over opname–apparatuur zodat

andere deelnemers hem kunnen zien en horen. Deze functionaliteit wordt echter niet beschreven

in de MHP–specificaties en evenmin zijn de huidige STB’s hierop voorzien.

3.3.1 MHP Exploratie

In de MHP–specificaties zijn er niet veel ondersteunde randapparaten te vinden. De enige

apparaten die worden vermeld, zijn de afstandsbediening en het toetsenbord. Gezien het poten-

tieel van videoconferencing lijkt het nochtans waarschijnlijk dat toekomstige MHP–specificaties

3.3 Opname van Videostroom 34

ondersteuning zullen bieden. Daartoe zullen keuzes gemaakt moeten worden met betrekking

tot interoperabiliteit. De specificaties kunnen de ondersteuning voorschrijven van algemene

opname–apparatuur zoals een USB–camera ofwel kan een specifieke eis opgelegd voor welbe-

paalde apparatuur. Bovendien moet het formaat voor transmissie, van de opgenomen audio

en video, worden vastgelegd. Enerzijds betekent dit dat de STB van een encoder zal moeten

voorzien zijn en anderzijds zal de beoogde ontvanger, een andere STB, de gezonden media ook

moeten kunnen decoderen. Dit kan de kost van de eenheid aanzienlijk verhogen afhankelijk van

de gekozen standaard voor het encoderen en decoderen. Er zijn standaarden voor videocodering,

zoals H.261 en H.263, die acceptabele kwaliteit combineren met voldoende goedkope hardware.

De H.261 en H.263 standaarden worden tegenwoordig vaak gebruikt voor videoconferencing [34].

3.3.2 STB Voorzieningen

Veelal beschikken STB’s slechts over een afstandsbediening. Soms is er ook een toetsenbord

beschikbaar maar een USB-camera aansluiten is niet mogelijk. Sommige fabrikanten voorzien

uitbreidingen aan de hand van een ASIC–module die een ingebouwde camera met microfoon

bevat. Een dergelijke ASIC–module kan niet alleen voor het opnemen worden gebruikt maar

ook voor het ontvangen van een videostroom afkomstig van een andere STB die met eenzelfde

ASIC–module is uitgerust. Het spreekt voor zich dat dergelijke hardwarematige uitbreidingen

voor de STB de implementatie van videoconferencing heel wat vereenvoudigen. Tegelijkertijd

is videoconferencing dan enkel mogelijk tussen set–top boxen voorzien van dergelijke ASIC–

modules.

3.3.3 Capture–Module

Door de STB op te nemen in een thuisnetwerk zijn alternatieven beschikbaar om de opname

van beeld en geluid uit te voeren. Het opnemen kan toegewezen worden aan een entiteit in

het thuisnetwerk. De MHP–applicatie, die wordt uitgevoerd op de STB, kan dan deze enti-

teit aanspreken indien een videoconferentie wordt gestart. Het incorporeren van de STB in

een thuisnetwerk kan op verschillende manieren gebeuren. Er kan gebruik worden gemaakt van

Open Services Gateway Initiative (OSBI)3 of Universal Plug and Play (UPnP)4. OSGI is een

raamwerk waardoor toestellen in het thuisnetwerk met elkaar kunnen communiceren. UPnP is

een geheel van protocollen waarmee dezelfde doelstellingen beoogd worden. Voor OCAP is reeds3http://www.osgi.org4http://www.upnp.org

3.3 Opname van Videostroom 35

een extensie verschenen in verband met home networking [6]. Scenario’s met MHP en OSGI

waarin de interactie tussen digitale televisie ontvangers en thuisnetwerken wordt beschreven,

zijn terug te vinden in [40]. Binnen de DVB–MHP–groep werkt een aparte groep, MHP–Home

Networking (MHP–HN), aan dit onderwerp. In wat volgt, wordt enkel verondersteld dat de

STB is opgenomen in het thuisnetwerk door aansluiting op een router. Figuur 3.4 toont de

opstelling. Het terugkeerkanaal wordt verschaft via de router zodat er IP–connectiviteit is. De

Figuur 3.4: Thuisnetwerk.

figuur toont twee voorbeelden van entiteiten die aangesproken kunnen worden door de STB.

Een dergelijke entiteit moet echter wel de opgenomen media kunnen sturen als MPEG–2 SPTS

aan de IP2DVBGateway, zoals eerder beschreven.

Er zijn netwerkcamera’s op de markt beschikbaar die videostroom kunnen leveren in MPEG–

2–formaat. Dergelijke camera’s worden bijvoorbeeld aangewend bij beveiligingstoepassingen of

voor traffic monitoring. De toestellen zijn echter niet bepaald goedkoop wat meteen een groot

bezwaar is tegen het gebruik ervan voor videoconferencing. Een tweede bezwaar is te vinden

in het aansturen van dergelijke netwerkcamera’s. Indien gebruik zou worden gemaakt van een

dergelijke camera zal de MHP–applicatie immers tot op zekere hoogte afhankelijk zijn van het

gebruikte cameratype.

Een alternatief is gebruik te maken van een Capture–module die uitgevoerd wordt op een host in

het thuisnetwerk. Een eenvoudige webcam kan aangesloten worden op de host en de combinatie

van webcam en de softwaremodule vormt een netwerkcamera. De MHP–applicatie kan dan de

3.3 Opname van Videostroom 36

softwaremodule aanspreken net zoals een netwerkcamera. Het protocol voor de interactie tussen

MHP–applicatie en de Capture–module kan nu wel eenmalig worden vastgelegd. Hier is de af-

hankelijkheid van het type camera dat wordt gebruikt, verborgen voor de MHP–applicatie. De

STB zal in het thuisnetwerk zoeken naar dergelijke softwaremodules en een dergelijke module

gebruiken om opnames te maken.

De twee vereisten die het moeilijkst te realiseren zijn, het ontvangen van een videostroom

op de STB en het genereren ervan, werden in dit hoofdstuk besproken. De oplossingen, die

gepresenteerd werden, zijn respectievelijk de IP2DVBGateway met IP2DVBScheduler en de

Capture–module. De IP2DVBGateway en IP2DVBScheduler zullen een cruciale rol spelen in

het aanbieden van videostroom op vraag van de gebruiker. De Capture–module zal zorgen voor

het opnemen en het zenden van een videostroom bij videoconferencing. Bij live event broadcas-

ting zal een module met gelijkaardige functionaliteit, de Streamer–module, worden aangewend

om live–uitzendingen te verzorgen. Nu de conceptuele oplossingen voor de problemen voorge-

steld zijn, worden in het volgend hoofdstuk de architecturen voor live event broadcasting en

videoconferencing behandeld.

ARCHITECTUREN VOOR LIVE EVENT BROADCASTING & VIDEOCONFERENCING 37

Hoofdstuk 4

Architecturen voor Live Event

Broadcasting & Videoconferencing

In het vorig hoofdstuk werden bij het presenteren van de oplossingen reeds enkele componen-

ten aangehaald die in de architecturen zullen voorkomen. In beide architecturen zal gebruik

gemaakt worden van de IP2DVBScheduler en de IP2DVBGateway. Live–uitzendingen worden

gegenereerd door Streamer–modules. Het opnemen en zenden van beeld en geluid van een par-

ticipant in een videoconferentie, wordt uitgevoerd door een Capture–module. In dit hoofdstuk

worden de architecturen voorgesteld en komt de functionaliteit van elk van de componenten aan

bod.

4.1 Live Event Broadcasting

4.1.1 Architectuur Exploratie

De gebruiker zal in de woonkamer interageren met een MHP–applicatie die uitgevoerd wordt

op de STB. De applicatie zal de gebruiker een overzicht geven van de live events en tevens de

gebruiker toelaten een live–uitzending te bekijken. Er zal informatie moeten worden opgehaald

over de beschikbare live–uitzendingen. Daarvoor zal een server voorzien worden die door de

applicatie kan bevraagd worden. Ook het aanvragen van een live–uitzending, of een specifiek

camerastandpunt van een bepaald live gebeuren, zal via deze server verlopen. Er is dus sprake

van een client–server–architectuur. De specifieke werking voor het verkrijgen van de informatie

over de live–uitzendingen en het aanvragen ervan is gebaseerd op Podcasting.

4.1 Live Event Broadcasting 38

4.1.2 Podcasting

De term Podcasting is een samentrekking van iPod1 en broadcasting. Podcasting is een sys-

teem waarbij audio–opnames verspreid kunnen worden via het internet. Daartoe worden audio–

opnames, in een formaat zoals bijvoorbeeld MP3, op het internet geplaatst en er worden ver-

wijzingen naar de opnames bekend gemaakt. Een dergelijke verwijzing wordt een podcast feed

genoemd en is opgesteld volgens het RSS–formaat2. De verwijzing bevat informatie over de

locatie van de opnames, over de opname zelf en de aanbieder ervan. Figuur 4.1 toont sche-

matisch de opbouw van een podcast feed. Opnames zijn ondergebracht in een virtueel kanaal.

Figuur 4.1: Structuur van een podcast feed.

Het begin van een podcast feed bevat informatie over het kanaal zoals de titel, taal en datum

van publicatie. Elke opname wordt beschreven door een item. Ook over elke opname kan in-

formatie worden verschaft. In een item is het belangrijkste XML–element de enclosure. Deze

bijlage bevat de URL waar de opname kan worden gevonden. Er zijn heel wat XML–elementen

aanwezig in een podcast feed, sommige ervan zijn verplicht, andere zijn optioneel. Voor een

grondige beschrijving wordt verwezen naar de RSS 2.0–specificatie [41]. Voor de complete struc-

tuur van een podcast feed wordt verwezen naar appendix A.1. Opdat de gebruiker de opnames

zou kunnen beluisteren wordt een aggregator–programma3 gebruikt. De gebruiker geeft de URL

van podcast feeds, waarvoor hij interesse heeft, bij de aggregator op en abonneert zich op deze

manier op bepaalde kanalen. De aggregator haalt die podcast feeds op regelmatige tijdstippen

op en houdt de gebruiker op de hoogte van nieuwe opnames in de kanalen. Indien de gebruiker

dit wenst kunnen nieuwe opnames gedownload worden. Het downloaden kan gebeuren op de PC1iPod is de populaire MP3–speler van Apple.2Really Simple Syndication (RSS) is een toepassing van XML waarmee de hoofdlijnen, een korte inhoud of

nieuwe artikels van een webpagina samen met de link naar de pagina worden gepubliceerd.3Een dergelijk programma wordt soms ook aangeduid met de term pod catcher.

4.1 Live Event Broadcasting 39

van de gebruiker maar programma’s zoals iTunes4 laten ook toe dat de opnames direct op een

aangesloten MP3–speler kunnen worden gedownload.

Hetzelfde principe wordt ook al gebruikt voor videobestanden en draagt de naam Vodcasting.

Hoewel Podcasting specifiek het downloaden van de audiobestanden betreft, kunnen bij Vodcas-

ting videobestanden worden gedownload maar worden gestreamd5. Om Vodcasting toe te passen

zal in de architectuur gebruik gemaakt worden van streaming. De structuur van de vodcast feeds,

gelijklopend aan die van de podcast feeds, wordt op enkele plaatsen aangepast of uitgebreid om

bijkomende functionaliteit te bieden. Appendix A.2 toont de structuur van de gebruikte vodcast

feed. De veranderingen worden aangebracht omwille van specifieke redenen.

De eerste aanpassing betreft het url–attribuut van een bijlage. Bij live event broadcasting

zullen live–uitzendingen beschikbaar worden gemaakt. Het attribuut zal hier geen videobestand

aanduiden zoals bij Vodcasting maar een entiteit die instaat voor een bepaalde live–uitzending.

Een dergelijke entiteit is een Streamer-module en het url–attribuut bevat dan ook de URL van

een bepaalde module. De tweede aanpassing volgt uit het feit dat de STB geen videostroom

kan ontvangen via het terugkeerkanaal. Een aangevraagde live–uitzending moet opgenomen

worden in de broadcast maar dit wordt verborgen voor de MHP–applicatie. Opdat eenvoudig

een bepaalde live–uitzending zou kunnen worden aangevraagd, wordt elk kanaal, elk item en

elke bijlage voorzien van een ID. Als er een vodcast feed wordt gedownload op de STB dan

kan een bepaalde live–uitzending, die in de feed ondergebracht is als bijlage, eenvoudig worden

aangevraagd aan de hand van de ID–waarden van het betreffende kanaal, het item en de bijlage

zelf. Deze drie ID–waarden vormen een Vodcast locator. Deze aanduiding is geınspireerd op een

DVB locator en heeft een heel eenvoudige vorm, namelijk vodcast://IDkanaal.IDitem.IDbijlage.

De laatste aanpassing is een extensie. Er wordt voorzien dat een item meerdere bijlagen kan

bevatten. Deze extensie biedt meer flexibiliteit aan de hierarchie van kanalen, items en bijla-

gen. Een kanaal kan nu een live–uitzending als item bevatten, bijvoorbeeld een muziekconcert,

waarbij het item meerdere camerastandpunten heeft, onder de vorm van bijlagen.

Een aantal van de XML–elementen werden vervangen en er werden XML–elementen toege-4http://www.apple.com/itunes5Streaming betekent dat het afspelen van het bestand al kan beginnen nog voor het complete bestand is

ontvangen.

4.1 Live Event Broadcasting 40

voegd. Zo kan bijvoorbeeld aangeduid worden of authenticatie van de gebruiker vereist is om

een bepaald item te mogen bekijken. Het toevoegen of verwijderen van XML–elementen is in

verder beschreven architectuur overigens toegelaten. De enige vereiste is dat steeds de hierarchie

bestaande uit kanalen, items en bijlagen met de vereiste ID–waarden wordt gerespecteerd. Live

event broadcasting door middel van Vodcasting biedt interessante mogelijkheden. Gebruikers

kunnen zelf virtuele kanalen aanmaken waarop ze live–uitzendingen kunnen toevoegen en verwij-

deren. Naast de conventionele televisiekanalen kunnen gebruikers ook live–uitzendingen bekijken

op de virtuele kanalen van andere gebruikers.

4.1.3 Ontworpen Architectuur

Figuur 4.2 toont de ontworpen architectuur voor live event broadcasting. In wat volgt, worden

de verschillende componenten besproken. Daarna wordt aan de hand van een concreet scenario

de werking uitgelegd.

Figuur 4.2: Architectuur voor live event broadcasting.

4.1 Live Event Broadcasting 41

4.1.3.1 Componenten

De MHP–applicatie, die uitgevoerd wordt op de STB, bestaat uit drie modules, een Aggregator–

module, een HTTP–module en een GUI–module. Om het ingeven van de URL van een vodcast

feed uit de weg te gaan, zal een HTML–pagina gebruikt worden. De server, die door de appli-

catie bevraagd zal worden, zal een HTML–pagina ter beschikking stellen die hyperlinks bevat

naar alle beschikbare vodcast feeds. Het volstaat dus om de HTML–pagina op te vragen om

te achterhalen welke vodcast feeds er beschikbaar zijn. De Aggregator–module zal, gebruik ma-

kend van de HTTP–module, periodiek de HTML–pagina opvragen. Vervolgens haalt de module

de gerefereerde vodcast feeds op en verwerkt die tot een overzicht van live–uitzendingen. Alle

communicatie tussen de MHP–applicatie en de server gebeurt door middel van HTTP. De ge-

bruiker kan met de applicatie interageren via de GUI–module. De GUI–module presenteert het

overzicht van de live–uitzendingen aan de gebruiker en laat deze toe een keuze te maken. Indien

voor de gekozen live–uitzending meerdere camerastandpunten beschikbaar zijn, kan er tijdens

het bekijken van de live–uitzending van standpunt worden veranderd.

Centraal in de architectuur is de server. De server wordt voorzien van vodcast feeds en biedt

op basis hiervan een HTML–pagina aan. Indien om een specifieke vodcast feed wordt gevraagd,

wordt die ook bezorgd. De server staat ook in voor het behandelen van een vraag naar specifieke

live–uitzending die aangeduid wordt met een Vodcast locator. Daarvoor zal de server eerst op

zoek gaan naar een IP2DVBScheduler die een kanaal ter beschikking kan stellen. Indien een

kanaal gereserveerd is, zal de server de verantwoordelijke Streamer–module vragen de uitzending

te starten. Bovendien kunnen, terwijl het systeem online is vodcast feeds worden aangepast of

bijgevoegd. De eerst volgende keer dat de HTML–pagina wordt opgevraagd zal de pagina dan

ook hyperlinks bevatten naar de nieuwe vodcast feeds. Zo kunnen Aggregator–modules van de

MHP–applicaties hun overzicht actueel houden. Om een live–uitzending toe te voegen aan het

systeem volstaat het om een nieuwe Streamer–module op te starten en op de server de bijhorende

vodcast feed te plaatsen. Het systeem is dus Plug and Play. De server zal ook bijhouden voor

welke gebruiker wat uitgezonden wordt aan de hand van gebruikersidentificatie. Het is immers

evident dat een live–uitzending, of specifieker een camerastandpunt, slecht hoeft uitgezonden te

worden als een gebruiker daarom verzoekt. Als bovendien twee gebruikers hetzelfde aanvragen

dan zal de uitzending eenmaal in de broadcast worden opgenomen. Als de situatie zich voordoet

waarbij een gebruiker aan het kijken is naar een live–uitzending en beslist om een andere uitzen-

4.1 Live Event Broadcasting 42

ding te bekijken dan moet de eerste uitzending gestopt worden tenzij er nog andere gebruikers

zijn die de eerste uitzending aan het bekijken zijn.

De IP2DVBScheduler biedt kanalen ter reservatie aan waarin media kan worden opgenomen

en controleert de IP2DVBGateway die de videostroom van een uitzending zal opnemen in de

broadcast. Voor elk gereserveerd kanaal worden specifieke eisen gesteld met betrekking tot de

toegelaten MPEG–2 SPTS, die de videostroom bevat, om een correcte signalisatie in de broad-

cast te garanderen. Bij de reservatie van een kanaal worden daartoe configuratieparameters

gegeven voor het gereserveerde kanaal.

De opname van een live–uitzending zal gebeuren aan de hand van een Streamer–module. De

Streamer–module zal de live–opname MPEG–2 coderen en naar de IP2DVBGateway zenden als

MPEG–2 SPTS. De structuur van de SPTS is bepaald door de configuratieparameters van het

gereserveerd kanaal. Een Streamer–module kan instaan voor verschillende live–uitzendingen of

meerdere camerastandpunten van eenzelfde live–uitzending. Elke uitzending wordt aangeduid

met een Vodcast locator die wordt overhandigd aan de module indien een bepaalde uitzending

gestart moet worden.

4.1.3.2 Werking

Het volgende scenario toont de werking van de architectuur. De verschillende stappen zijn

aangeduid in figuur 4.2.

1. De MHP–applicatie wordt opgestart en Aggregator–module vraagt de HTML–pagina van

de server op. De pagina wordt doorzocht naar vodcast feeds. Voor elke gevonden verwij-

zing wordt vervolgens de vodcast feed zelf opgevraagd bij de server. Na deze procedure

presenteert de GUI–module een overzicht aan de gebruiker.

2. De gebruiker kiest de live–uitzending die hij wenst te bekijken. Dit resulteert in een

specifiek verzoek aan de server. Het verzoek bevat de Vodcast locator die de live–uitzending

aanduidt.

3. De server doorzoekt de vodcast feeds waarover hij beschikt naar de Streamer–module

die instaat voor het uitzenden van de live–uitzending. Indien de Streamer–module werd

gevonden, probeert de server bij de IP2DVBScheduler een kanaal te reserveren. In-

dien de reservatie succesvol is verlopen, ontvangt de server configuratieparameters. De

4.2 Videoconferencing 43

IP2DVBScheduler licht de IP2DVBGateway in dat de MPEG–2 SPTS, die ontvangen zal

worden, in de broadcast moet worden opgenomen.

4. De server contacteert de bewuste Streamer–module, die verantwoordelijk is voor de live–

uitzending en geeft de parameters om de MPEG–2 SPTS te vormen door.

5. De Streamer–module stelt de configuratieparameters in, begint de opname en zendt de

MPEG–2 SPTS naar de IP2DVBGateway.

6. De server beantwoordt het verzoek van de MHP–applicatie met de DVB locator van het

kanaal waarop de uitzending geplaatst werd. De MHP–applicatie laat vervolgens de STB

afstemmen op het kanaal.

4.2 Videoconferencing

4.2.1 Architectuur Exploratie

Voor videoconferencing zijn verschillende architecturen mogelijk. Een eerste type is de peer–

to–peer–architectuur (P2P)6. Skype7 is een populair programma voor VoIP dat gebruik maakt

van P2P–technologie [2]. Er zijn al verschillende uitbreidingen voor Skype beschikbaar zoals

Video4Skype8 en Festoon9 waarmee videoconferenties kunnen worden opgezet. Videoconferen-

cing kan ook gerealiseerd worden aan de hand van een publish–subscribe–systeem waarbij een

gebruiker de conferentie publiceert als onderwerp en pakketten met audio of video beschouwd

worden als gebeurtenissen waarvoor andere gebruikers zich kunnen inschrijven [20]. Een derge-

lijk systeem dat gebruik maakt van het Narada Event Brokering System10 wordt beschreven in

[21].

Omdat de STB niet rechtstreeks een videostroom kan ontvangen zal de architectuur geen gebruik

kunnen maken van het P2P–principe. De ontworpen architectuur is gebaseerd op de architectuur

voor VoIP. De gebruiker zal zich moeten kunnen registreren en een andere gebruiker uitnodigen

voor een videoconferentie. Er is dus signalering nodig voor het opzetten van een videoconferen-

tie. Bij VoIP wordt voor signalisatie het Session Initiation Protocol (SIP) [35] in combinatie6In een peer–to–peer–architectuur kan elke component rechtstreeks met elke andere component communiceren.7http://www.skype.com8http://www.dialcom.com9http://www.festooninc.com

10http://www.naradabrokering.org

4.2 Videoconferencing 44

met het Session Description Protocol (SDP) [23] gebruikt [9]. Het SIP wordt ook gebruikt in de

kern van de derde generatie mobiele netwerken [9]. Zo is het niet ondenkbaar dat in de nabije

toekomst een videoconferentie tussen een mobiele telefoon en een televisie tot stand zal kunnen

worden gebracht. SIP kan overigens ook gebruikt worden bij P2P–technologie [36].

4.2.2 Session Description Protocol (SDP)

SDP [23] wordt gebruikt om de parameters van een sessie in te stellen. De partijen waartussen

een sessie opgezet zal worden, kunnen zo informatie uitwisselen over de mogelijkheden van hun

SIP–stations11. Er zijn verschillende categorieen parameters die elk aangeduid worden met een

letter. Onderstaand voorbeeld illustreert de sessieparameters bij VoIP.

c = IN IPv4 157.193.215.98

b = 8

m = audio 4321 RTP/AVP 18

De informatie over de verbinding wordt weergegeven met c. Er wordt informatie verschaft over

het type netwerk, het adresformaat en het IP–adres van het station. De letter b duidt de vereiste

bandbreedte aan. De laatste regel, aangeduid met m, geeft het type media aan, het poortnummer

waarop media ontvangen kan worden, het transportprotocol en tenslotte een aanduiding voor

het formaat. Het station van de ene gebruiker kan bijvoorbeeld drie formaten aanduiden in zijn

SDP–bericht en het station van de andere gebruiker kan dan antwoorden met een SDP–bericht

dat het gekozen formaat vermeldt. Met SDP kunnen op deze manier de mogelijkheden van de

stations worden aangegeven en kan er als het ware onderhandeld worden over de sessieparame-

ters. SDP zal in de architectuur gebruikt worden om parameters voor de Capture–module in het

thuisnetwerk, die een MPEG–2 SPTS zal versturen, te transporteren. Net zoals in de architec-

tuur voor live event broadcasting moet de MPEG–2 SPTS, die naar de IP2DVBGateway wordt

gezonden, voldoen aan de voorwaarden opgelegd door de IP2DVBScheduler. De parameters

kunnen eenvoudig opgenomen worden in een SDP–bericht.11Een SIP–station of SIP–terminal wordt gedefinieerd als een entiteit die communicatie ondersteund, in twee

richtingen en in ware tijd, met een andere SIP–entiteit. Het station ondersteunt signalisatie en uitwisseling van

media. Een voorbeeld van een SIP–terminal is een SIP–telefoon.

4.2 Videoconferencing 45

4.2.3 Session Initiation Protocol (SIP)

Om een sessie, zoals een gesprek bij VoIP, te beheren wordt SIP [35] gebruikt. Dit protocol

laat toe een sessie op te zetten, te wijzigen tijdens het verloop of te beeindigen. Daarvoor

worden verzoek–en antwoordberichten gebruikt zoals; REGISTER, INVITE, BYE, OK, ... Het

formaat van de SIP–berichten is analoog aan dat van HTTP [9]. SIP kan voor het transport van

berichten verschillende transportprotocollen gebruiken zoals TCP, UDP of TLS over TCP. De

werking van SIP wordt geıllustreerd aan de hand van een vereenvoudigd voorbeeld, zie figuur 4.3.

Twee gebruikers, A en B willen een gesprek opzetten. Beide hebben zichzelf geregistreerd bij de

Figuur 4.3: SIP–scenario.

SIP–server aan de hand van een REGISTER–bericht. Het REGISTER–bericht bevat de locatie

van de gebruiker die gespecificeerd wordt als het IP–adres van het station waarop de gebruiker

te contacteren is. De SIP–server houdt deze informatie bij in een zogenaamde location service

database12. Als gebruiker A een gesprek wil opzetten met een gebruiker B dan zal A daarvoor

een INVITE–bericht zenden naar de SIP–server. Het bericht geeft aan dat gebruiker B gecon-

tacteerd moet worden en bevat ook de SDP–informatie van gebruiker A. De SIP–server gebruikt

de location service database om het IP–adres van het station van gebruiker B op te zoeken.

Het INVITE–bericht zal vervolgens naar het station van B gezonden. Gebruiker B kan dan

kiezen om in te gaan op de uitnodiging of niet. Indien gebruiker B de uitnodiging aanvaardt,12De location service database is als het ware een telefoonboek. Het houdt voor elke gebruiker de locatie, aan

de hand van een IP–adres bij, waarop de gebruiker gecontacteerd kan worden. Dit telefoonboek kan echter wel

dynamisch gewijzigd worden doordat SIP mobiliteit ondersteunt [35].

4.2 Videoconferencing 46

wordt geantwoord met een OK–bericht dat de SDP–informatie van B bevat. Op deze manier

kan eenvoudig een sessie opgezet worden. Het bovenstaand voorbeeld is sterk vereenvoudigd en

voor een gedetailleerde beschrijving van SIP wordt verwezen naar [35].

SIP kan met een wijziging worden gebruikt in de architectuur. De SDP–informatie moet door de

SIP–server worden bijgevoegd omdat dit informatie betreft over de gereserveerde kanalen en de

reservatie van kanalen de verantwoordelijkheid is van de SIP–server. Dit hangt nauw samen met

de voorwaarde dat alle signalisatieberichten langs de SIP–server moeten passeren13 en wordt bij

de werking van de architectuur verduidelijkt.

4.2.4 Ontworpen Architectuur

Figuur 4.4 toont de ontworpen architectuur. Bij elk van de gebruikers is in het thuisnetwerk,

naast de STB, een Capture–module aanwezig op een host. De thuisnetwerken zijn verbonden

met het internet, bijvoorbeeld via een router. In wat volgt, worden de componenten beschreven

en de interactie ertussen geıllustreerd aan de hand van een voorbeeldscenario.

4.2.4.1 Componenten

De MHP–applicatie bestaat uit drie modules; een SIP–module, een netwerkmodule en een GUI–

module. De SIP–module staat in voor het verzenden van SIP–berichten voor registratie of

invitatie en het luisteren naar binnenkomende berichten. Het ontdekken van Capture–modules

op het thuisnetwerk wordt uitgevoerd door de netwerkmodule. Via deze module kan een bepaal-

de Capture–module ook geconfigureerd worden. De netwerkmodule kan een Capture–module

verzoeken om de live–opname te starten of te stoppen. Het Discover Configure Command Proto-

col (DCCP), zoals beschreven in appendix B, kan gebruikt worden voor de communicatie tussen

Capture–module en netwerkmodule. De gebruiker hanteert de MHP–applicatie door middel van

de GUI–module. Zo kan de gebruiker een bepaalde gebruiker uitnodigen voor een videoconferen-

tie en hij kan beslissen om een uitnodiging van een andere gebruiker te accepteren of te weigeren.

De SIP–server is de centrale component in de architectuur. De server verwerkt de registratie–

berichten en slaat de informatie op in de location service database. Indien een invitatiebericht

wordt ontvangen, wordt de videoconferentie voorbereid door het reserveren van een kanaal voor13Dit wordt ingesteld via de regel Record-Route in de SIP–berichten.

4.2 Videoconferencing 47

Figuur 4.4: Architectuur voor videoconferencing.

elke gebruiker. Invitatie–en bevestigingsberichten worden uitgebreid met SDP–informatie die

gebruikt zal worden door de MHP–applicatie om de Capture–module in te stellen.

De IP2DVBScheduler en IP2DVBGateway hebben dezelfde functionaliteit als in de architectuur

voor live event broadcasting. De IP2DVBScheduler stelt kanalen ter beschikking die gebruikt

kunnen worden voor videoconferenties. Voor elk kanaal dat gereserveerd wordt, worden configu-

ratieparameters meegegeven die de structuur van de MPEG–2 SPTS voorschrijven. Deze infor-

matie zal uiteindelijk door de SIP–server vermeld worden als SDP–informatie in SIP–berichten.

4.2.4.2 Werking

Het volgende scenario toont de werking van de architectuur. Er wordt verondersteld dat de

beide gebruikers zich reeds hebben geregistreerd. De verschillende stappen zijn aangeduid in

figuur 4.4.

1. Gebruiker A wenst gebruiker B uit te nodigen voor een video–conferentie. Na het invoeren

4.3 Schaalbaarheid 48

van de gebruikersnaam van B, stuurt de SIP–module van de MHP–applicatie een invitatie

naar de SIP–server.

2. De SIP–server zoekt de locatie van gebruiker B op. Daarna worden twee kanalen gere-

serveerd bij de IP2DVBScheduler, een voor elke gebruiker. De configuratieparameters

van het tweede kanaal samen met de DVB locator van het eerste kanaal worden aan het

invitatiebericht toegevoegd als SDP–informatie. De uitgebreide invitatie wordt vervol-

gens naar de MHP–applicatie van gebruiker B gezonden. De IP2DVBScheduler brengt de

IP2DVBGateway op de hoogte dat twee MPEG–2 SPTS’s ontvangen zullen worden.

3. De SIP–module zal via de GUI–module gebruiker B op de hoogte brengen van de invitatie.

Indien gebruiker B ingaat op de invitatie worden de configuratieparameters van het invita-

tiebericht gebruikt om de Capture–module te configureren. Daarna zal de MHP–applicatie

afstemmen op het eerste kanaal. De SIP–module zendt tenslotte een bevestiging naar de

SIP–server.

4. Bij ontvangst van de bevestiging van gebruiker B neemt de SIP–server de configuratiepa-

rameters van het eerste kanaal en de DVB locator van het tweede kanaal en voegt die toe

als SDP–informatie aan het bevestigingsbericht. Dit bericht wordt teruggezonden naar de

MHP–applicatie van gebruiker A.

5. De SIP–module ontvangt de bevestiging waardoor de MHP–applicatie van gebruiker A de

Capture–module configureert en tenslotte afstemt op het tweede kanaal.

6. De Capture–modules zenden de live media door naar de IP2DVBGateway waarmee de

videoconferentie tot stand is gebracht.

De signalisatie moet steeds via de SIP–server verlopen. Indien in het bovenstaande voorbeeld

gebruiker B niet wenst in te gaan op de invitatie dan kan, indien de afwijzing langs de SIP–server

wordt teruggezonden, de SIP–server ook de reservatie van de twee kanalen ongedaan maken. Dit

is noodzakelijk voor een efficient gebruik van het reserveringsmechanisme.

4.3 Schaalbaarheid

De boven beschreven architecturen steunen beide op het gebruik van reserveerbare kanalen in

de broadcast. De broadcast heeft echter een beperkte bandbreedte. Daarom wordt de schaal-

4.3 Schaalbaarheid 49

baarheid van de voorgestelde architectuur voor videoconferencing besproken voor het specifieke

geval van een HFC–toegangsnetwerk. Figuur 4.5 toont de structuur van een HFC–netwerk.

Figuur 4.5: HFC–toegangsnetwerk.

Een HFC–netwerk bestaat uit een hybride van de transmissiemedia coaxkabel en glasvezel. Vanaf

een optische knoop, of Optical Node Unit (ONU), tot aan de gebruiker thuis is het transmis-

siemedium coaxkabel. Het spectrum is opgedeeld in twee, voor opwaarts en neerwaarts verkeer

zoals in figuur 4.6 wordt weergegeven.

Figuur 4.6: Spectrum coaxkabel.

Het spectrum is langs onder begrensd door interferentie en langs boven door attenuatie. De

frequentieband voor opwaarts verkeer start op 20 MHz en eindigt op 65 MHz. Het spectrum

4.3 Schaalbaarheid 50

voor neerwaarts verkeer start op 80.6 MHz en reikt tot 860 MHz [31]. In de laatste band zijn ook

de radio–, televsisie–en datasignalen ondergebracht in kanalen met een bandbreedte van 8 MHz.

De reserveerbare kanalen, bijvoorbeeld voor een videoconferentie of live–uitzending, zullen ook

geplaatst worden in dergelijke 8 MHz–kanalen. Het beschikbare spectrum is duidelijk beperkt

en het is belangrijk na te gaan hoeveel bandbreedte, uitgedrukt in 8 MHz–kanalen, er nodig is

voor videoconferencing met de boven beschreven architectuur. Het deel van het spectrum, dat

nog beschikbaar is na het plaatsen van de gebruikelijke radio–, televisie–en datasignalen, zal

gebruikt kunnen worden om reserveerbare kanalen in onder te brengen. Om de schaalbaarheid

na te gaan moet er gecontroleerd worden of er voldoende bandbreedte beschikbaar is voor het

vereiste aantal reserveerbare kanalen. Dit aantal dient daarvoor eerst bepaald te worden afhan-

kelijk van het aantal gebruikers.

Er kan ingeschat worden hoeveel reserveerbare kanalen ter beschikking moeten zijn om een be-

paald aantal gebruikers te bedienen met een bepaalde dienstkwaliteit. Daarvoor wordt gebruik

gemaakt van de Erlang B–formule die ook in de telefonie wordt aangewend om telefooncentrales

te dimensioneren [8].

P =

Am

m!m∑

n=0

An

n!

Deze formule geeft de kans P weer dat alle m lijnen bezet zijn en een oproep verloren gaat.

De variabele A is de verkeersintensiteit uitgedrukt in erlang14 en is afhankelijk van het aantal

gebruikers. Met de formule kan dus berekend worden hoeveel lijnen er in een telefooncentra-

le beschikbaar moeten zijn om een bepaalde blokkeringskans te bekomen. Hetzelfde principe

kan toegepast worden voor videoconferencing. Voor een bepaalde verkeersintensiteit kan bere-

kend worden wat het benodigde aantal reserveerbare kanalen is om een bepaalde vooropgestelde

blokkeringskans te bekomen. Als de waarde voor m gekend is, kan berekend worden hoeveel 8

MHz–kanalen, aangeduid met de variabele N, deze reserveerbare kanalen zullen innemen. Indien

elk reserveerbaar kanaal een bitsnelheid Br Mbit/s toegewezen krijgt en een 8 MHz–kanaal een

bitsnelheid B Mbit/s heeft, dan kan N berekend worden als volgt.

N =m · Br

B

Het aantal gebruikers per ONU varieert tussen 125 en 2000. Nemen we als voorbeeld een ver-14Een erlang is gedefinieerd als een dimensieloze eenheid voor verkeersintensiteit [32].

4.3 Schaalbaarheid 51

keersintensiteit van 24.75 erlang15. Figuur 4.7 geeft het verloop van de blokkeringskans P, als

functie van het aantal kanalen m, voor dit concrete geval. Merk op dat de abscisas start op 25

Figuur 4.7: Kans op een verloren oproep als functie van het aantal lijnen.

omdat het aantal kanalen minstens groter moet zijn dan de verkeersintensiteit [32]. Vanaf 36

kanalen bedraagt de blokkeringskans minder dan 1%. Veronderstellen we verder dat Br gelijk is

aan 1 Mbit/s, dan is er een totale bitsnelheid gelijk aan 36 Mbit/s nodig. Indien een 64–QAM–

modulatieschema wordt toegepast, is de bitsnelheid B ruim gelijk aan 40 Mbit/s. Dit wordt

berekend aan de hand van het modulatieschema en de roll–off –factor van de pulsvorm van het

signaal [31]. N bedraagt dus minder dan een en de voorgestelde oplossing stelt geen problemen

met betrekking tot schaalbaarheid.

Er dienen een vijftal opmerkingen gemaakt te worden bij bovenstaand voorbeeld. Ten eer-

ste is er in het bovenstaande voorbeeld nog geen rekening gehouden met de foutprotectie die

zal toegevoegd worden aan de SPTS en ongeveer 25% overhead bedraagt [34]. Ten tweede is de

bitsnelheid van een 8 MHz–kanaal afhankelijk van de locatie van dat kanaal in het spectrum. De15Deze verkeersintensiteit is gebaseerd op de verkeersintensiteit bij telefonie voor een zelfde aantal gebruikers.

4.4 Verdeeldheid 52

Signal to Noise Ratio (SNR) bepaalt immers het modulatieschema en dus ook de haalbare bit-

snelheid. Verder wordt voor een reserveerbaar kanaal een bitsnelheid van 1 Mbit/s aangenomen

hoewel die waarde ver boven de opwaarste snelheid ligt van de huidige internetconnecties. De

vierde opmerking betreft de duur van een videoconferentie. Deze duur wordt gelijkaardig veron-

dersteld aan die van een telefoongesprek wat niet noodzakelijk zo zal zijn. Tenslotte betreft de

laatste opmerking het gebruik van de Erlang B–formule. Hierbij wordt impliciet verondersteld

dat een gebruiker van wie de aanvraag voor een videoconferentie werd afgewezen niet opnieuw

zal proberen. Indien daar toch moet rekening mee gehouden worden, zal een andere formule

toegepast moeten worden om het benodigde aantal reserveerbare kanalen te bepalen [32].

4.4 Verdeeldheid

Uit figuren 4.2 en 4.4 blijkt duidelijk de verdeelde aard van beide architecturen. Voor de inter-

actie tussen de verschillende componenten wordt gekozen voor Java. Dit omwille van het feit

dat het MHP gebruik maakt van het DVB–J–platform en omwille van de portabiliteit die eigen

is aan Java. Door middel van Java RMI kunnen de componenten in een verdeelde applicatie

eenvoudig met elkaar te laten communiceren. De servers in beide architecturen kunnen een-

voudig geımplementeerd aan de hand van J2EE–technologie. Tot slot dient nog een opmerking

gemaakt te worden. In figuren 4.2 en 4.4 worden de IP2DVBScheduler en IP2DVBGateway

als aparte componenten afgebeeld die uitgevoerd worden op afzonderlijke hosts. Bij de imple-

mentatie zullen beide componenten op dezelfde host worden uitgevoerd. Dit doet echter niets

af aan de relatie tussen beide componenten. De IP2DVBGateway wordt gecontroleerd door de

IP2DVBScheduler en deze relatie komt ook duidelijk naar voor in de implementatie.

In het volgend hoofdstuk wordt de implementatie van de IP2DVBGateway en de kern van

de Streamer–en Capture–modules besproken.

IP2DVBGATEWAY & VLC 53

Hoofdstuk 5

IP2DVBGateway & VLC

In het vorige hoofdstuk werden de componenten geıdentificeerd en de architecturen geschetst.

Beide architecturen hebben de IP2DVBGateway en telkens is er ook een module aanwezig voor

live–opname. Dit hoofdstuk is dan ook gewijd aan de implementatie van de IP2DVBGateway

en het opnemen van live audio en video.

5.1 IP2DVBGateway

5.1.1 Inleiding

De IP2DVBGateway zal een videostroom, die geleverd wordt door UDP over IP, opnemen in

de broadcast. De videostroom wordt, zoals eerder werd beschreven, verondersteld MPEG–2

gecodeerd te zijn en wordt aangeboden als een MPEG–2 SPTS aan de IP2DVBGateway. Voor

het verdere betoog wordt verondersteld dat de IP2DVBGateway op elk moment slechts een

SPTS kan overbrengen van het IP–netwerk naar de broadcast. Het geval van meerdere SPTS’s,

wat multiplexen vereist, komt later aan bod.

5.1.2 Werking IP2DVBGateway

De IP2DVBGateway zal als softwaremodule geımplementeerd en uitgevoerd worden op een host

die voorzien is van een DVB–ASI–kaart. De videostroom kan via de DVB–ASI–kaart bij andere

kanalen in de broadcast gevoegd worden. Voor de testopstelling wordt gebruikt gemaakt van een

DVB–ASI–kaart van DekTec1. De DekTec DTA–140 is een PCI–kaart die vergezeld wordt van

een C++ API, die DTAPI wordt genoemd. De functionaliteit van de IP2DVBGateway wordt1http://www.dektec.com

5.1 IP2DVBGateway 54

in de mate van het mogelijke onafhankelijk gemaakt van het type DVB–ASI–kaart. Toch zal

soms met de specifieke werking van de DVB–ASI kaart rekening gehouden moeten worden.

De functionaliteit van de IP2DVBGateway kan bondig samengevat worden. Een videostroom

wordt, onder de vorm van een MPEG–2 SPTS, ontvangen. Zoals in hoofdstuk 2 werd uitgelegd

bestaat deze SPTS uit TS–pakketten. Deze pakketten zullen via de DVB–ASI–kaart uitgestuurd

worden. Er wordt herbruikbaarheid nagestreefd zodat verschillende transmissiesnelheden wor-

den ondersteund en de vertraging doorheen de component enigszins instelbaar is. De werking

wordt schematisch afgebeeld in figuur 5.1. De werking is gebaseerd op het principe van een

Figuur 5.1: Werking IPDVBGateway.

circulaire buffer. TS–pakketten worden via de netwerkinterface ontvangen, gebufferd in een be-

paald aantal geheugenblokken met instelbare grootte en tenslotte verstuurd naar de FIFO2 van

de DVB–ASI–kaart. Het bufferen gebeurt door een bepaald aantal TS–pakketten te verzamelen

in een geheugenblok en vervolgens dit blok weg te schrijven naar de FIFO van de kaart. Het weg-

schrijven van een dergelijk blok gebeurt telkens door een aparte thread zodat ondertussen verder

TS–pakketten kunnen worden ontvangen. Dit is ook te zien in figuur 5.1. De TS–pakketten wor-

den door de kaart vervolgens gelezen uit de FIFO en via de DVB–ASI–uitgang verzonden. De2Bufferen op de kaart werkt volgens het first in, first out–principe (FIFO).

5.1 IP2DVBGateway 55

vertraging doorheen de IP2DVBGateway wordt in hoofdzaak door twee factoren bepaald. De

eerste factor is de grootte van een geheugenblok, uitgedrukt als geheel aantal TS–pakketten, dat

in een schrijfoperatie overgebracht wordt naar de FIFO. De tweede factor is de minimale inhoud

die in de FIFO aanwezig moet zijn voor de eigenlijke transmissie wordt gestart.

5.1.2.1 Grootte Geheugenblok

TS–pakketten worden ontvangen en opgeslagen in een geheugenblok vooraleer het doorsluizen

naar de FIFO plaatsvindt. Gezien het transfereren van informatie naar die FIFO enige tijd

in beslag neemt, spreekt het voor zich dat het niet aangewezen is om telkens een TS–pakket

ontvangen wordt dit direct door te geven naar de FIFO. Elke overdracht van informatie naar

de FIFO houdt immers een niet te verwaarlozen overhead in [7]. Daarom mag de hoeveelheid

informatie per overdracht of het aantal TS–pakketten per overdracht niet te klein uitvallen.

Langs de andere kant betekent een te groot aantal TS–pakketten bufferen per overdracht dat de

vertraging doorheen de IP2DVBGateway toeneemt. Figuur 5.2 toont het principe. Een blok met

Figuur 5.2: Vertraging.

een grootte α bytes wordt, indien de aankomstsnelheid β bytes per seconde bedraagt, opgevuld

in αβ seconden. Om een gewenste vertraging δ te bekomen moet de blokgrootte α voldoen aan:

α = δ · β

De werkelijke vertraging door de IP2DVBGateway is dan echter groter. De transmissiesnelheid

van de DVB–ASI–kaart zal gelijk gekozen worden aan de aankomstsnelheid. Indien de trans-

missiesnelheid lager wordt gekozen zou er zich informatie opstapelen in de IP2DVBGateway.

Een hogere transmissiesnelheid is uitgesloten. Er wordt verondersteld dat het systeem zich in

regime bevindt. Het blok met een grootte α bytes zal dus uit de FIFO verzonden worden met

5.1 IP2DVBGateway 56

een snelheid β wat voor een additionele vertraging δ zorgt. Bovendien moet ook de transfertijd

naar de FIFO, δtransfer, van het blok in rekening gebracht worden. We bekomen voor de totale

vertraging doorheen de IP2DVBGateway de volgende waarde.

δtotaal = 2 · δ + δtransfer

Hieruit kan besloten worden dat de vertraging volledig vrij in te stellen is. Dat dit echter niet

het geval is, zal verder blijken.

5.1.2.2 Initiele FIFO–inhoud

De tweede factor die de vertraging bepaalt is de minimale hoeveelheid informatie in de FIFO,

de initial FIFO load, voor de kaart begint aan de transmissie. Enerzijds betekent een grote

minimale FIFO–inhoud dat eens de kaart de transmissie heeft gestart de situatie, waarbij de

FIFO sneller geleegd wordt dan er informatie wordt toegevoegd, zich minder snel kan voordoen.

De situatie waarbij de FIFO van de DVB–ASI–kaart tijdens de transmissie leeg raakt, wordt in

de DTAPI aangeduid als een Transmit FIFO Underflow. Anderzijds neemt naarmate de mini-

male FIFO–inhoud toeneemt ook de vertraging toe. Er wordt immers gewacht tot een grotere

hoeveelheid TS–pakketten aanwezig is in de FIFO vooraleer de transmissie start. De keuze voor

de grootte kan worden afgewogen. Een Transmit FIFO Underflow resulteert bij de ontvanger in

het ontbreken van informatie die nodig is bij het decoderen en presenteren. De STB bijvoorbeeld

krijgt niet snel genoeg de media binnen en er kunnen zich artefacten voordoen in het beeld of

storingen in het geluid. Voor live event broadcasting lijkt het dus aangewezen de vertraging

liever wat groter te kiezen dan een afname in beeld–en geluidskwaliteit te hoeven tolereren. Bij

videoconferencing is de situatie anders. Hier zal levendigheid van de sessie geprefereerd worden

en kan enigszins wat kwaliteit opgeofferd worden voor interactiviteit.

Een tweetal bijkomende opmerkingen dienen gemaakt worden in verband met voorwaarden

opgelegd door de DTAPI. De API dicteert dat de hoeveelheid informatie, uitgedrukt in aantal

bytes, die per schrijfoperatie naar de FIFO wordt overgebracht een veelvoud van vier moet be-

dragen [7]. Er wordt echter steeds gewerkt met geheugenblokken bestaande uit een geheel aantal

TS–pakketten om moeilijkheden met het opdelen van individuele TS–pakketten uit de weg te

gaan. Verder is het ook zo dat TS–pakketten, met of zonder foutprotectie3, altijd een grootte

hebben die een veelvoud van vier is. Deze voorwaarde vormt dus geen beperking. De tweede3Foutprotectie aan de hand van Reed Solomon–codes vergroot de afmeting van een TS–pakket tot 204 bytes.

5.1 IP2DVBGateway 57

voorwaarde is dat de totale FIFO–grootte, die instelbaar is, een veelvoud dient te zijn van zes-

tien [7]. De FIFO–grootte zal ingesteld worden afhankelijk van het aantal blokken dat gebruikt

wordt om TS–pakketten te bufferen maar in overeenstemming met bovenstaande voorwaarde.

5.1.3 Implementatie IP2DVBGateway

De DekTec–kaart is aanstuurbaar door middel van de C++ API en de IP2DVBGateway en krijgt

door middel van de DTAPI–bibliotheek toegang tot de DVB–ASI–kaart. De IP2DVBGateway

bestaat uit slechts drie klasses; de main–klasse, de WriteThread–klasse en de DVBCard–klasse.

De IP2DVBGateway heeft bij het opstarten nood aan zes programma–argumenten. Onderstaan-

de lijst verklaart de programma–argumenten bondig.

• TSinUDP : het aantal TS–pakketten in een UDP–pakket

• TSPacketSize: het aantal bytes in een TS–pakket

• TxRate: de in te stellen transmissiesnelheid van de DVB–ASI kaart in bits per seconde

• TxDelay : de gewenste vertraging (de waarde δ uit bovenstaande redenering)

• Port : de poort waarop TS–pakketten ontvangen zullen worden

• ThreadCount : het maximum toegestane aantal simultane WriteThread–objecten

Het argument ThreadCount is ook gelijk aan het aantal geheugenblokken dat gebruikt wordt

voor buffering.

5.1.3.1 Main–klasse

De main–klasse berekent bij het opstarten een aantal parameters vertrekkende van de programma–

argumenten. UDPPacketSize is het aantal bytes aan inhoud van een UDP–pakket.

UDPPacketSize = TSinUDP · TSPacketSize

Daarna wordt de grootte van een geheugenblok, uitgedrukt als aantal UDP–pakketten, berekent

aan de hand van de volgende formule.

NumUDPPackets =TxRate

(UDPPacketSize · 8)· TxDelay

Het aantal bytes dat in een schrijfoperatie naar de FIFO wordt geschreven bedraagt dus:

NumBytesToTransfer = NumUDPPackets · UDPPacketSize

5.1 IP2DVBGateway 58

Er wordt een geheugenruimte met een grootte gelijk aan ThreadCount · NumBytesToTransfer

bytes gealloceerd. Deze geheugenruimte vormt de circulaire buffer. De berekende parameters

worden vervolgens gebruikt voor het instellen van de DVBCard–en WriteThread–klasse. Daarna

wordt de socket waarop de TS–pakketten ontvangen zullen worden, geınitialiseerd en tenslotte

wordt de hoofdlus gestart. De uitvoering van de main–klasse wordt schematisch weergegeven

in figuur 5.3. De geheugenblokken worden op een cyclische manier overlopen en opgevuld met

Figuur 5.3: Hoofdlus.

TS–pakketten. Telkens een geheugenblok beschikbaar is, wordt het opgevuld met ontvangen

TS–pakketten. Daarna wordt een WriteThread–object, die de verdere afhandeling voor zijn

rekening zal nemen, aangemaakt en gestart. De beschikbaarheid van een geheugenblok hangt

af van het feit of het WriteThread–object de voorafgaande TS–pakketten in het geheugenblok

al heeft overgebracht naar de FIFO. Indien de overdracht nog niet heeft plaatsgevonden, wacht

de hoofdlus tot die operatie is beeindigd.

5.1.3.2 WriteThread–klasse

Voor elk geheugenblok dat opgevuld is met TS–pakketten wordt een nieuw WriteThread–object

opgestart. Het object zal het schrijven van het betreffende geheugenblok naar de FIFO uitvoe-

5.1 IP2DVBGateway 59

ren. De WriteThread–klasse beschikt daartoe over een DVBCard–object zoals verder beschreven

wordt. Er kunnen simultaan verschillende WriteThread–instanties opgestart zijn, maar elk ob-

ject wacht tot het vorig object zijn schrijfoperatie heeft uitgevoerd.

5.1.3.3 DVBCard–klasse

De DVBCard–klasse verbergt het aansturen van de DVB–ASI kaart. Voor het instellen van

de DVB–ASI–kaart voorziet de DVBCard–klasse twee initialisatiemethodes. Een aantal van de

instellingen worden hieronder opgesomd.

• ClockGenMode: de klok generator mode

• TxPacketMode: de grootte van de TS–pakketten die behandeld zullen worden, er is onder

andere keuze tussen groottes 188 en 204 bytes

• TxStuffMode: geeft aan of er nulpakketten of K28.5–synchronisatiekarakters moeten wor-

den ingevoegd indien een Transmit FIFO Underflow optreedt

• TsRate: transmissiesnelheid van de DVB–ASI–kaart in bit per seconde

• FifoSize: de totale grootte van de FIFO op de kaart, deze grootte bepaalt ondermeer de

vertraging om data naar de kaart over te brengen (δtransfer in bovenstaande redenering)

De initiele FIFO–inhoud wordt gelijk gekozen aan de waarde van de variabele NumBytesTo-

Transfer. Na de eerste schrijfoperatie wordt de transmissie dus al gestart. Verder wordt ook de

grootte van de totale FIFO–grootte ingesteld, rekening houdende met de eerder vermelde voor-

waarde. De transmissiesnelheid van de DVB–ASI–kaart wordt gelijk genomen aan de waarde van

het programma–argument TxRate dat bij het opstarten wordt gespecificeerd. Nadat de kaart

wordt geconfigureerd, kan via deze klasse informatie naar de FIFO overgebracht worden via de

daartoe voorziene schrijfmethode. Het uitvoeren van een schrijfoperatie neemt drie stappen in

beslag zoals figuur 5.4 weergeeft. Eerst wordt de informatie geplaatst in de FIFO via de schrijf-

methode Write uit de DTAPI. Deze methode geeft informatie over het al dan niet slagen van de

overdracht. Het kan bijvoorbeeld voorkomen dat de hoeveelheid informatie, uitgedrukt in bytes,

geen veelvoud van vier is hoewel dit vereist is. Daarom voorziet de DTAPI in feedback voor elke

schrijfoperatie. Daarna wordt de status van de DVB–ASI–kaart nagegaan door gebruik te maken

van de methode GetFlags van de DTAPI. Met deze methode kan er gecontroleerd worden of er

een Transmit FIFO Underflow is opgetreden of indien er bij transmissie een synchronisatiefout

5.1 IP2DVBGateway 60

Figuur 5.4: Schrijfoperatie DVBCard–klasse.

is voorgekomen. In de derde stap wordt de inhoud van de FIFO opgevraagd zodat in de vierde

stap de transmissie gestart kan worden als er in de FIFO genoeg informatie aanwezig is.

5.1.4 Aanspreken vanuit Java

De IP2DVBGateway is geımplementeerd in C++ maar zal door de IP2DVBScheduler gecon-

troleerd worden. De IP2DVBScheduler zal echter geschreven worden in Java en daarom is het

nodig om de IP2DVBGateway te kunnen aanspreken vanuit Java.

5.1.4.1 IP2DVBGatewayInterface

Voor toegang vanuit Java is de volgende interface voorzien.

public interface IP2DVBGatewayInterface {

public void setTSinUDP(int i);

public void setTSPacketSize(int i);

public void setTxRate(int i);

5.1 IP2DVBGateway 61

public void setTxDelay(float f);

public void setPort(int i);

public void setThreadCount(int i);

public void destroy();

}

De interface is eenvoudig en beperkt zich tot het instellen van de eerder vermelde programma–

argumenten voor de IP2DVBGateway. De methode destroy sluit de IP2DVBGateway af. Langs

deze interface kan de IP2DVBScheduler controle uitoefenen op de IP2DVBGateway.

5.1.4.2 IP2DVBGatewayThread

Het oproepen van de IP2DVBGateway wordt behandeld door de IP2DVBGatewayThread–klasse

die de bovenstaande interface implementeert. De klasse zal de IP2DVBGateway opstarten en

controleren. Hiervoor wordt de klasse Runtime gebruikt die laat toe om door middel van een

commandolijn een programma op te starten vanuit Java. Het gebruik van de Runtime–klasse is

echter niet zo evident. Nemen we onderstaand voorbeeld.

Runtime rt = Runtime.getRuntime();

Process p = rt.exec(”MyProg.exe”);

De methode getRuntime() geeft een referentie naar de huidige Java Runtime Environment te-

rug. De exec–methode creeert vervolgens een proces, het programma MyProg.exe dat uitgevoerd

wordt, waarnaar een referentie teruggeven wordt aan de JVM. Er is echter meer aan de hand dan

op het eerste zicht lijkt. Het opstarten van een programma op deze manier kan ervoor zorgen

dat het opgestart programma, en mogelijk ook het Java–programma van waaruit de oproep werd

gemaakt, blokkeert. De oorzaak hiervan ligt bij de in–en uitvoer van het proces. Het opgestarte

programma kan namelijk zelf uitvoer genereren of invoer nodig hebben om verder te kunnen uit-

voeren. Het besturingssysteem voorziet echter slechts een beperkte buffer voor de in–en uitvoer

en daarom is het nodig deze vanuit het oproepende Java–programma te verwerken. Er zijn twee

klasses voorzien, ProcessInputStream en ProcessOutputStream, die deze taak vervullen. Via de

ProcessInputStream–klasse kan informatie aan het opgestarte programma worden doorgegeven

en de ProcessOutputStream–klasse ontvangt de uitvoer van het programma telkens die wordt

gegenereerd. Bij de ProcessOutputStream–klasse is er bovendien de keuze om de output van

het opgeroepen programma naar het Java–programma te sturen of weg te schrijven naar een

bestand.

5.1 IP2DVBGateway 62

5.1.5 Extensies

De boven beschreven IP2DVBGateway kan een videostroom, geleverd als SPTS, in de broad-

cast opnemen. Het principe kan echter uitgebreid worden zodat simultaan meerdere SPTS’s

gemultiplexed worden door de IP2DVBGateway en in de broadcast geplaatst worden. Voor het

uitvoeren van multiplexing zijn verschillende alternatieven mogelijk.

ISO 13818 Stream Multiplexer4 is een open-bron multiplexer waarmee in ware tijd verschillende

MPEG–2 multiplex types gecombineerd kunnen worden tot een geheel. Terwijl het multiplexen

wordt uitgevoerd, kan er kanaalinformatie worden gewijzigd en kan de PAT worden aangepast.

Recent is er voorziening toegevoegd waarmee ook DVB SI–informatie kan worden opgenomen.

De Java Stream Assembly API (JAS) [39] is een Java API waarmee in ware tijd mediastromen

bewerkt en gemultiplexed kunnen worden. De MPEG–2 multiplex types, PS en TS, worden on-

dersteund en er zijn in de API talrijke klasses voor het behandelen van dergelijke multiplexen.

JAS voorziet ook fysieke interfaces zoals een DVB–ASI–link of een Ethernet interface. Beide

alternatieven werden echter niet geschikt bevonden om toepassing te vinden.

Gezien de IP2DVBScheduler de structuur van de te ontvangen MPEG–2 SPTS’s op voorhand

bepaalt, kan volgens een eenvoudig principe multiplexing worden toegepast. Figuur 5.5 toont

hoe de structuur van twee SPTS’s en de gewenste structuur na het multiplexen van beide tot

een MPEG–2 MPTS. De structuur van de SPTS’s wordt schematische voorgesteld. Voor de

Figuur 5.5: Multiplex operatie.

binnenkomende SPTS’s worden de TS–pakketten met PID–waarde nul verwijderd. Dit zijn de4http://www.scara.com/ schirmer/o/mplex13818

5.2 VLC 63

TS–pakketten die de PAT–informatie bevatten. De informatie over de gereserveerde kanalen

wordt bijgehouden door de IP2DVBScheduler. Er wordt een nieuwe PAT aangemaakt op ba-

sis van de gereserveerde kanalen en deze wordt toegevoegd. Het resultaat is de MPTS die in

figuur 5.5 te zien is. Dit principe kan natuurlijk voor meer dan twee SPTS’s worden toege-

past. In de main–klasse van de IP2DVBGateway, zie 5.1.3.1, kunnen op verschillende poorten

TS–pakketten ontvangen en aan de filtering onderworpen worden. Om de bitsnelheden van de

SPTS’s te respecteren kan bijvoorbeeld een Weighted Fair Queuing–principe (WFQ) [9] toege-

past worden zoals in figuur 5.6 wordt afgebeeld. Afhankelijk van de bitsnelheid van elke SPTS

Figuur 5.6: Multiplex operatie met Weighted Fair Queueing (WFQ).

wordt een gewicht toegekend aan elke poort. Dit gewicht bepaalt hoe vaak op de poort een TS–

pakket zal worden ontvangen en verwerkt. Er zal wel moeten worden op toegezien dat er vaak

genoeg TS–pakketten met MPEG–2 PSI–informatie TS–pakketten met DVB SI–informatie wor-

den toegevoegd om een geldige MPTS te bekomen. Bovendien zal ook de timinginformatie van

elke SPTS, de PCR–waarden, moeten worden aangepast. Het beschreven multiplexingprincipe

is nog niet aanwezig in de huidige implementatie van de IP2DVBGateway.

5.2 VLC

5.2.1 Inleiding

Het intelligent randapparaat, de Capture–module, zal in de videoconferencing–architectuur in-

staan voor het live opnemen en verzenden naar de IP2DVBGateway. De Streamer–module zal in

5.2 VLC 64

de architectuur voor live event broadcasting een gelijkaardige functie vervullen. De videostroom

zal echter MPEG–2 gecodeerd moeten zijn en verzonden worden als MPEG–2 SPTS. Bovendien

zal de structuur van de SPTS voorgeschreven worden door de IP2DVBScheduler. De opname

en het verzenden zijn dus onderworpen aan voorwaarden. De twee modules zullen voor het

eigenlijke opnemen, transcoderen en verzenden beroep doen op bestaande software.

Voor het opnemen van audio en video, bijvoorbeeld aan de hand van een webcam en micro-

foon, blijken verschillende mogelijkheden voor handen te zijn. JMF, zoals in het vorige hoofd-

stuk beschreven, komt hiervoor in aanmerking maar heeft een grote beperking wat betreft de

ondersteunde formaten en codecs. Er zijn weliswaar uitbreidingen voor JMF te vinden zoals

plug–ins Fobs4JMF5 en JFFMPEG6 maar deze uitbreidingen laten alleen toe dat er meer for-

maten kunnen worden afgespeeld. Opnemen en transcoderen naar MPEG–2–formaat behoort

niet tot de mogelijkheden van JMF. VideoLAN Client (VLC)7 is een open–bron mediaspeler die

talrijke formaten ondersteund. Met VLC kan opgenomen worden en MPEG–2 codering worden

uitgevoerd. Bovendien heeft VLC de mogelijkheid om de structuur van de SPTS in te stellen.

VLC biedt dus de functionaliteit die vereist is.

5.2.2 VLC Commandolijn

Om VLC te gebruiken voor opname, transcodering en streaming, is het nodig talrijke parameters

te kunnen instellen. Instellingen kunnen via de commandolijn worden opgegeven. De comman-

dolijn van VLC is behoorlijk uitgebreid en daarom wordt er dan ook eerst even ingegaan op

de structuur ervan aan de hand van twee voorbeelden. De voorbeelden illustreren slechts een

heel beperkt aantal opties. Een volledige beschrijving van alle opties word bekomen door het

commando ”vlc.exe –longhelp –advanced“.

5.2.2.1 Bestand Stromen

Onderstaande voorbeeld geeft commandolijn die gebruikt wordt om een bestand te stromen als

SPTS naar een bepaalde host.

vlc.exe file.avi - -sout=#transcode{vcodec=mp2v,vb=1024,fps=25.0,

height=272,width=640,venc=ffmpeg{bframes=0,keyint=20,strict-rc=1,vt=0},5http://fobs.sourceforge.net6http://jffmpeg.sourceforge.net7http://www.videolan.org

5.2 VLC 65

acodec=mp2a,ab=192,channels=2,samplerate=44100}:std{access=udp,

mux=ts{tsid=1234,program-pmt=1,pid-pmt=40,pid-video=66,pid-audio=67,}

,url=192.168.30.2:2500} - -loop

De bovenstaande commandolijn stroomt het bestand ”file.avi”, na transcoderen naar MPEG–

2–formaat, als een SPTS. Daarvoor worden de transcode–module en de std–module gebruikt.

De eerste module, transcode, wordt aangewend voor het transcoderen van het videobestand en

de tweede module, std, voor het stromen. De transcode–module heeft heel wat parameters die

ingesteld kunnen worden. De onderstaande lijst geeft kort uitleg over de schillende opties met

betrekking tot het transcoderen.

• vcodec: het gewenste video formaat

• vb: de gewenste bitsnelheid voor de video

• fps: de beeldsnelheid voor de video

• height : de hoogte van de video

• width: de breedte van de video

• venc: de video–encoder

• acodec: het gewenste audio formaat

• ab: de gewenste bitsnelheid voor de audio

• channels: het aantal audiokanalen (mono, stereo of dolby surround)

• samplerate: de bemonsteringsfrequentie voor de audio

Voor een aantal van de bovenvermelde opties zoals vcodec en acodec ligt de keuze voor de

hand. De optie samplerate moet gekozen worden overeenkomstig het audioformaat. Zo is voor

MPEG–2–audio een bemonsteringsfrequentie van 44.1 kHz toegelaten. Andere opties moeten

echter specifiek gekozen worden rekening houdende met het feit dat de videostroom uiteindelijk

in de broadcast zal opgenomen worden. Zoals in hoofdstuk 2 werd vermeld, gebruikt de DVB–

standaard het MPEG–2 Main Profile in combinatie met het Main Level. De videoresolutie en

beeldsnelheid kunnen dus zeker niet vrij gekozen worden. De video–encoder die gespecifieerd

wordt in het voorbeeld is FFMPEG8. FFMPEG wordt in VLC gebruikt als plug–in, maar is8http://ffmpeg.sourceforge.net

5.2 VLC 66

op zich eigenlijk een conversieprogramma ontwikkeld voor Linux. Er kunnen heel wat opties

ingesteld worden voor FFMPEG. De optie bframes bepaalt het aantal MPEG–2 B–frames,

keyint het aantal beelden tussen twee opeenvolgende MPEG–2 I–frames, strict-rc legt vast of er

strikte controle op de informatie–uitvoer wordt toegepast en vt staat voor de videotolerantie in

bits per seconde. Bij de std–module worden drie opties ingesteld.

• access: bepaald of de media stream opgeslagen wordt of verzonden (file, udp, http, ...)

• mux : de gebruikte encapsulatie voor de stream (ts, ps, ...)

• url : de locatie waar de stroom wordt opgeslagen of naartoe wordt verzonden

De access–optie wordt ingesteld op udp, zodat de getranscodeerde stroom verzonden wordt

door middel van transportprotocol UDP. De gekozen mux–optie is ts, zodat de getranscodeerde

media als SPTS wordt verzonden. Zoals in het voorbeeld is te zien, worden voor de SPTS opties

ingesteld. De ID–waarden voor de transport stroom en kanaal worden opgegeven door de opties

tsid en program–pmt. Voor het specificeren van de PID–waarden voor PMT, audio en video

worden respectievelijk de opties pid-pmt, pid-audio en pid-video gebruikt. Tenslotte geeft de

algemene loop–optie aan dat het stromen van het bestand herhaald moet worden.

5.2.2.2 Camera & Microfoon Stromen

De structuur van de commandolijn om audio en video opnames te stromen naar een host, is

gelijkaardig met het bovenstaand voorbeeld. Om een randapparaat zoals een USB–webcam of

microfoon aan te spreken wordt er gewerkt met DirectShow.

vlc.exe - -dshow:// - -vdev=“Logitech QuickCam Chat”

- -adev=“Conexant AMC Audio” size=“176x144”

- -sout=#transcode{vcodec=mp2v,vb=1024,fps=25.0,height=272,width=640,

venc=ffmpeg{bframes=0,keyint=20,strict-rc=1,vt=0},

acodec=mp2a,ab=192,channels=2,samplerate=44100}

:std{access=udp,mux=ts{tsid=1234,program-pmt=1,pid-pmt=40,

pid-video=66,pid-audio=67},url=192.168.30.2:2500}

DirectShow is een door Microsoft ontwikkelde API waarmee operaties op media kunnen uitge-

voerd worden. VLC laat het stromen van een webcam en microfoon toe door gebruik te maken

van DirectShow. De drie opties in verband met DirectShow worden hieronder opgesomd.

5.2 VLC 67

• vdev : het apparaat om beeld op te nemen (gespecifieerd aan de hand van de naam onder

DirectShow)

• adev : het apparaat om geluid op te nemen (gespecifieerd aan de hand van de naam onder

DirectShow)

• size: de resolutie voor de beeldopname

De andere modules zijn dezelfde als in het eerste voorbeeld.

5.2.3 Aanspreken vanuit Java

VLC zal instaan voor het opnemen, transcoderen en uitzenden en zal gecontroleerd worden

door de Capture–en Streamer–module. Deze modules zullen, net als de IP2DVBScheduler, in

Java geımplementeerd worden en daarom zal VLC aangesproken moeten worden vanuit Java.

Daarom wordt dezelfde structuur gevolgd als bij de IP2DVBGateway.

5.2.3.1 VLCInterface

Onderstaande interface geeft de methodes waarmee controle kan uitgeoefend worden op VLC.

public interface VLCInterface {

public void openFile(String fileName);

public void openURL(String url);

public void openNetworkStream(int port);

public void openDirectShow(String vdevice, String videoSize, String adevice);

public void setOutput(String access, String multiplex, String ip, int port);

public void setTSMuxSettings(int transportstreamID, int serviceID, ...);

public void setTranscoding(String videoCodec, int videoBitrate, ...);

public void setFFMPEGSettings(int bFrameRatio, int keyInterval, ...);

public void setLoop();

public void destroy();

}

De eerste vier methodes kunnen worden gebruikt om respectievelijk een bestand te openen, een

URL te openen, te luisteren op een poort naar een binnenkomende stroom en om gebruik te

maken van randapparatuur. Het grootste deel van de interface bestaat uit methodes om de

5.2 VLC 68

eerder vermelde opties in te stellen. De structuur van de SPTS in termen van ID–waarden en

PID–waarden, wordt ingesteld met de methode setTSMuxSettings. De setTranscoding–methode

laat toe om de verschillende opties voor het transcoderen in te stellen. Tenslotte kan de video–

encoder FFMPEG geconfigureerd worden met de setFFMPEGSettings–methode. De optie loop

kan enkel ingesteld worden als er een bestand gestroomd wordt.

5.2.3.2 VLCThread

Voor het oproepen van VLC vanuit java wordt de VLCThread–klasse aangewend. Deze klasse

implementeert bovenstaande interface en gebruikt de Runtime–klasse. Dezelfde opmerkingen als

bij de IP2DVBGatewayThread–klasse gelden hier. Het is noodzakelijk dat de in–en uitvoer van

VLC worden verwerkt. Daartoe worden de ProcessInputStream–en de ProcessOutputStream–

klasse, waarvan eerder sprake, gebruikt.

5.2.4 Extensies

Uit de eerder gegeven voorbeelden bleek al het kleine verschil tussen de commandolijn voor het

stromen van een bestand en het stromen van live opnames. Video on Demand (VOD) wordt dan

ook als extensie toegevoegd aan de architectuur voor live event broadcasting. Deze uitbreiding

vereist de introductie van een nieuw aspect van VLC: de remote control interface–module. De

commandolijn voor het opstarten van VLC wordt uitgebreid met de volgende regel:

-I rc –rc-quiet –rc-host “:port”

Voor de rc–module worden twee opties ingesteld:

• quiet : de remote controle interface wordt verborgen en wordt onzichtbaar uitgevoerd in

de achtergrond

• host : specifieert de host en poort waarop commando’s ontvangen kunnen worden

Door de bovenstaande uitbreiding luistert VLC op de gespecificeerde poort naar commando’s

waardoor een aantal nieuwigheden beschikbaar worden die vereist zijn voor VOD. Zo kan onder

meer het afspelen gepauzeerd, gestopt en herstart worden. De VLCInterface–interface wordt

uitgebreid met de volgende methodes: vlcPlay, vlcPause, vlcStop, vlcFastForward en vlcRe-

wind. Slechts het pauzeren, stoppen en herstarten werden geımplementeerd omdat tijdens het

transcoderen, vooruitspoelen en terugspoelen geen effect hebben. De Streamer–modules in de

5.3 Performantie 69

architectuur voor live event broadcasting zullen hierdoor ook videobestanden zoals films of mu-

ziekvideo’s beschikbaar kunnen stellen voor de gebruiker. VOD wordt hier niet gerealiseerd

met enkele videoservers maar aan de hand van een willekeurig aantal Streamer–modules. Bo-

vendien kunnen deze modules eenvoudig aan het systeem worden toegevoegd of eruit worden

weggenomen wat resulteert in een dynamisch wijzigbare verzameling van videobestanden. De

bestanden, die een Streamer–module aanbiedt, worden net zoals live–uitzendingen aangeduid

met een Vodcast locator. De bestanden hoeven overigens niet lokaal beschikbaar te zijn omdat

VLC media kan ophalen van bijvoorbeeld een internetlocatie en in ware tijd terug kan uitsturen

als MPEG–2 SPTS. Dit opent een waaier aan mogelijkheden omdat ook videobestanden van op

het internet kunnen worden afgespeeld op de televisie. Een belangrijk aspect bij het stromen

van internetvideo is echter de vertraging en de gevolgen die deze vertraging kan hebben op het

transcoderen.

5.3 Performantie

In het bovenstaande werden de twee componenten geschetst waarmee een live videostroom

kan worden geleverd, VLC, en in de broadcast kan worden opgenomen, IP2DVBGateway.

In deze paragraaf wordt de performantie besproken. Figuur 5.7 toont de combinatie van de

IP2DVBGateway en VLC. In het bovenstaande werd impliciet ondersteld dat de MPEG–2 SPTS,

Figuur 5.7: VLC en IP2DVBGateway.

die de aangevraagde media bevat, geleverd wordt aan de IP2DVBGateway aan een constante

snelheid of Constant Bit Rate (CBR). Dit is echter geen realistische veronderstelling.

5.3 Performantie 70

5.3.1 Netwerk

Het IP–netwerk waarover de MPEG–2 SPTS wordt gezonden, biedt een Best Effort–dienst. Dit

betekent dat er geen garanties zijn met betrekking tot de beschikbare bandbreedte of vertraging.

TS–pakketten worden ook niet met zekerheid afgeleverd en het is mogelijk dat eenzelfde pak-

ket meermaals ontvangen wordt. Dit stelt heel wat problemen voor het transport van een SPTS.

De vertraging die de SPTS ondervindt, is afhankelijk van ander verkeer op het netwerk en

van de gevolgde route tussen bron en bestemming. TS–pakketten kunnen tijdelijk een grotere

vertragingstijd ondervinden waardoor bij de IP2DVBGateway minder TS–pakketten ontvangen

worden. Een ogenblik later kan er dan plots een grotere hoeveelheid pakketten aankomen in een

zogenaamde burst. Bij een burst kan er verlies van TS–pakketten optreden. De vertragingstijden

van TS–pakketten kunnen bovendien onderling verschillen, wat aanleiding geeft tot jitter. De

pakketten komen dan mogelijk uit volgorde aan bij de IP2DVBGateway. De volgorde van de

TS–pakketten met dezelfde PID–waarde is af te leiden uit een vier bit veld in de header van het

TS–pakket, de continuity counter. Bij opeenvolgende TS–pakketten met dezelfde PID–waarde

wordt deze teller met een verhoogd modulo zestien. Als TS–pakketten in een andere volgorde

worden ontvangen en uitgestuurd via de DVB–ASI–kaart zal dit gedetecteerd worden door de

MPEG–decoder en zal het afspelen verstoord worden. Ook het timingmodel, zie 2.2.2, is gevoe-

lig voor jitter. TS–pakketten die de PCR–tijdsstempels bevatten, kunnen in de juiste volgorde

aankomen maar een veranderlijke vertraging ondervinden. Dit wordt schematisch weergegeven

in figuur 5.8. Indien een TS–pakket met PCR–waarde te laat aankomt, kan er resynchronisatie

plaatsvinden. Indien de variaties in vertraging te groot zijn, kan de fasevergrendelingslus, die

gebruikt wordt voor synchronisatie van de decoderklok, hier niet voor compenseren waardoor

de synchronisatie verloren kan gaan. De veranderlijke vertraging van de PCR–pakketten wordt

omschreven als PCR–jitter en heeft een grote invloed op het afspelen [22].

5.3.2 VLC

VLC, de bron van de SPTS, blijkt ook geen CBR–stroom maar een VBR–stroom te zenden.

Dit kan eveneens aanleiding geven tot bursts van pakketten maar ook een tijdelijk tekort aan

pakketten waardoor een Transmit FIFO Underflow kan optreden. Er werden verschillende op-

ties van VLC getest maar steeds was de bitsnelheid van de uitgestuurde SPTS variabel. VLC

biedt wel een shaping–optie waarmee tijdens een instelbaar aantal milliseconden de bitsnelheid

5.3 Performantie 71

Figuur 5.8: PCR–jitter.

constant blijft. Tussen dergelijke tijdsintervallen is er dan nog steeds een variabiliteit in bit-

snelheid. Het gebruik van de optie zorgt bovendien voor een additionele vertraging evenredig

met het ingestelde tijdsinterval. VLC introduceert sowieso een niet te verwaarlozen vertraging

tussen opname en uitsturen van de SPTS en omwille van het belang van vertraging wordt de

shaping–optie dan ook niet gebruikt.

5.3.3 Maatregelen

Het spreekt voor zich dat het aanbieden van live event broadcasting en videoconferencing moet

plaatsvinden met voldoende kwaliteit of Quality of Service (QoS). Gebruikers zijn bij het huidige

televisie kijken een bepaalde constante kwaliteit gewoon en nieuwe diensten moeten minstens

een gelijkaardig kwaliteitsniveau halen. De boven beschreven problemen hebben een grote im-

pact op de kwaliteit. Jitter kan er bijvoorbeeld voor zorgen dat een deel van een beeld verkeerd

wordt weergegeven of er storingen zijn in het geluid. PCR–jitter kan leiden tot het wegvallen

van beeld en geluid tot synchronisatie opnieuw is bereikt. Het is daarom belangrijk na te gaan

wat hiertegen ondernomen kan worden.

Net zoals bij de architectuur van VoIP kan QoS worden voorzien in het IP–netwerk. De In-

ternet Engineering Task Force (IETF) heeft twee architecturen voorgesteld waarmee QoS kan

worden aangeboden: Integrated Services (IntServ) en Differentiated Services (DiffServ). Een

van beide zou kunnen gebruikt worden om QoS tussen VLC en de IP2DVBGateway te verschaf-

5.3 Performantie 72

fen. Met IntServ kunnen door middel van het Resource Reservation Protocol (RSVP) garanties

worden verstrekt in termen van vertraging en bandbreedte [9].

Indien er geen gebruik wordt gemaakt van IntServ of DiffServ kan er toch te geanticipeerd

op pakketverkeer dat onderhevig is aan bursts. Daartoe kan het aantal geheugenblokken, dat

gebruikt wordt voor buffering in de IP2DVBGateway, worden verhoogd. Een tijdelijk hoge-

re aankomstsnelheid kan opgevangen worden waardoor het verlies van TS–pakketten kleiner

wordt. Bij een daarop volgende lagere aankomstsnelheid kan een Transmit FIFO Underflow ver-

meden worden doordat er nog gebufferde TS–pakketten beschikbaar zijn. De IP2DVBGateway

kan ook worden uitgebreid zodat de volgorde van TS–pakketten hersteld kan worden door het

incorporeren van een dejitter–buffer. PCR–jitter kan behandeld worden door middel van PCR–

restamping, waarbij de PCR–waarden worden aangepast. Voor het VBR–probleem bij VLC zijn

verschillende mogelijke oplossingen. De IP2DVBGateway kan zelf een schatting maken van de

bitsnelheid van de SPTS op basis van het aantal ontvangen pakketten. Indien nodig kan de trans-

missiesnelheid van de DVB–ASI–kaart dan verlaagd of verhoogd worden. Een tweede manier

vereist communicatie tussen de IP2DVBGateway en VLC. Indien VLC, bij het encoderen van

de media tot een SPTS, op regelmatige tijdstippen informatie verschaft over de ogenblikkelijke

bitsnelheid van de SPTS, kan de IP2DVBGateway op basis van deze informatie de transmissie-

snelheid regelen.

Om in de huidige implementatie een zo hoog mogelijke kwaliteit aan te bieden, worden aan

bepaalde opties van VLC specifieke waarden toegekend. De lengte van de GOP, zie hoofdstuk

2, wordt klein gekozen om de invloed van artefacten te verlagen. Indien een grote GOP zou

gebruikt worden, kunnen artefacten in beelden aanleiding geven tot artefacten in daaropvolgen-

de beelden. Dit wordt temporele foutpropagatie genoemd. Door een kleine GOP te gebruiken,

zal deze foutpropagatie beperkt worden. De keyint–optie in VLC wordt daartoe op een waar-

de minder dan tien ingesteld. Verder wordt ook geprobeerd om de invloed van PCR–jitter te

beperken. Hoewel volgens de MPEG–2–standaard het tijdsinterval tussen twee PCR–waarden

slechts kleiner hoeft te zijn dan of gelijk aan 100 ms [25], wordt hier een kleinere waarde geno-

men zodat de MPEG–2–decoder van de STB voldoende snel kan resynchroniseren indien nodig.

Dit wordt ingesteld met de optie pcr van VLC. De invloed van het netwerk en de VBR–stroom

van VLC leiden er ook toe dat de vertraging doorheen de IP2DVBGateway, die ingesteld kan

5.3 Performantie 73

worden met het TxDelay–argument, niet zo klein mogelijk kan worden gekozen. De kleinste

toegelaten waarde, die nog een acceptabele kwaliteit geeft op het televisiescherm, bedraagt on-

geveer 0.25 seconden. De totale vertraging van camera tot televisiescherm ligt dan, bij ideale

netwerkomstandigheden, in de buurt van een seconde en is te hoog voor videoconferencing.

IMPLEMENTATIE LIVE EVENT BROADCASTING ARCHITECTUUR 74

Hoofdstuk 6

Implementatie Live Event

Broadcasting Architectuur

In dit hoofdstuk wordt de implementatie van het netwerkgedeelte van de architectuur voor live

event broadcasting besproken. Dit gedeelte van de architectuur bestaat uit de IP2DVBScheduler,

in combinatie met de IP2DVBGateway, de Streamer–module, die gebruik maakt van VLC, en de

server. De IP2DVBGateway en VLC werden in vorig hoofdstuk behandeld. De extensie uit het

vorige hoofdstuk, waardoor het afspelen van videobestanden mogelijk wordt, is ook opgenomen

in de architectuur. De MHP–applicatie waarmee de gebruiker kan interageren, komt in het

volgende hoofdstuk aan bod.

6.1 IP2DVBScheduler

De IP2DVBScheduler, in combinatie met de IP2DVBGateway, biedt een dynamisch reserve-

ringsmechanisme waarmee kanalen in de broadcast toegekend kunnen worden. Kanalen kun-

nen gereserveerd worden voor een bepaalde duur en worden daarna terug vrijgegeven. De

IP2DVBScheduler maakt deel uit van een verdeelde applicatie en zal het aanspreekpunt zijn om

een reservatie aan te vragen. Bij de beschrijving van de architecturen werd in hoofdstuk 4 de

keuze verantwoord om voor de implementatie gebruik te maken van Java RMI.

De IP2DVBScheduler wordt geımplementeerd als een Java Remote Object. Via Java RMI kan

een dergelijk object aangesproken worden. Elk remote object stelt een interface ter beschikking,

de zogenaamde remote interface, die de methodes bevat die op het object kunnen worden uit-

6.2 Streamer 75

gevoerd. De IP2DVBSchedulerInterface–interface stelt de volgende methodes ter beschikking.

public interface IP2DVBSchedulerInterface extends Remote {

public StreamParam requestService() throws RemoteException;

public boolean releaseService(String dvbLocator) throws RemoteException;

}

De methode requestService probeert een kanaal of service te reserveren en geeft, indien de re-

servatie is gelukt, een StreamParam–object terug. Dit object bevat de configuratieparameters,

waarvan sprake in hoofdstuk 4, en beschrijft de structuur van de MPEG–2 SPTS die naar de

IP2DVBGateway mag worden gezonden. De structuur van de MPEG–2 SPTS wordt bepaald

door de ID–waarden voor de transportstroom en kanaal en de PID–waarden voor de PMT en de

ES’s. Er zijn echter ook nog andere parameters die de bron nodig heeft om de SPTS te vormen:

de toegestane bitsnelheid voor audio en video, de bemonsteringsfrequentie voor de audio, de

resolutie van de video, de beeldsnelheid voor de video, de poort waarnaar de SPTS moet worden

gezonden en het IP–adres van de IP2DVBGateway. Ook deze parameters zijn ondergebracht in

het StreamParam–object. Met de tweede methode in de interface kan een eerder gereserveerd

kanaal worden vrijgegeven. Het is hierbij voldoende om enkel de DVB locator door te geven

als argument. De IP2DVBScheduler houdt namelijk intern de reserveringen bij en weet bij ont-

vangst van de DVB locator welk kanaal moet worden vrijgegeven zodat dit kanaal opnieuw voor

reservatie in aanmerking komt.

De configuratie van elk van de reserveerbare kanalen kan ingesteld worden door middel van

een XML–bestand dat bij het opstarten wordt ingelezen. Voor de kanalen kunnen de talrijke

parameters worden gespecificeerd zoals die hierboven werden beschreven. De IP2DVBScheduler

en IP2DVBGateway worden uitgevoerd op dezelfde host en de IP2DVBGateway wordt ge-

controleerd door de IP2DVBScheduler. Daarvoor gebruikt de IP2DVBScheduler de klasse

IP2DVBGatewayThread zoals in vorig hoofdstuk geıntroduceerd. Figuur 6.1 verduidelijkt de

combinatie van de IP2DVBScheduler en IP2DVBGateway.

6.2 Streamer

Het opnemen, transcoderen en stromen zal, zoals in vorig hoofdstuk beschreven, uitgevoerd wor-

den door VLC. De Streamer–module zal daarvoor VLC aanspreken vanuit Java. De Streamer–

6.2 Streamer 76

Figuur 6.1: IP2DVBScheduler en IP2DVBGateway.

module zelf maakt deel uit van de verdeelde applicatie en zal door de server aangesproken

worden om een live–uitzending te starten of te stoppen. Ook hier wordt gebruik gemaakt van

Java RMI. De Streamer–module wordt, net zoals de IP2DVBScheduler, geımplementeerd als een

Java Remote Object. De remote interface wordt hieronder weergegeven.

public interface StreamerInterface extends Remote {

public boolean startStreaming(StreamParam param, String vodcastLocator)

throws RemoteException;

public boolean play(String vodcastLocator) throws RemoteException;

public boolean pause(String vodcastLocator) throws RemoteException;

public boolean stop(String vodcastLocator) throws RemoteException;

public boolean fastforward(String vodcastLocator) throws RemoteException;

public boolean rewind(String vodcastLocator) throws RemoteException;

public boolean stopStreaming(String vodcastLocator) throws RemoteException;

}

De methode startStreaming neemt onder meer een StreamParam–object, waarvan eerder sprake,

als programma–argument en initieert indien mogelijk de uitzending. De Vodcast locator, waar-

van het principe in het hoofstuk 4 werd geıntroduceerd, duidt een bepaald camerastandpunt

en bijhorend audiokanaal of een videobestand1 aan. De stopStreaming methode beeindigt een

uitzending. Bij het opstarten van de Streamer–module wordt de vodcast feed verschaft die ook

bij de server wordt geplaatst. Dit bestand wordt ingelezen, waaruit de module een verband kan

leggen tussen een Vodcast locator en een bepaalde combinatie van camera en microfoon of video-

bestand. De Streamer–module kan meerdere camerastandpunten en bijhorende audiokanalen of1Voor VOD duidt een Vodcast locator een bepaald videobestand aan.

6.3 Server 77

videobestanden uitzenden. Toch mag de module op elk ogenblik maar een uitzending verzorgen.

Figuur 6.2 toont hoe de Streamer–module is opgebouwd en gebruik maakt van VLC.

Figuur 6.2: Streamer–module en VLC.

6.3 Server

Het server gedeelte voorziet in heel wat functionaliteit, zoals ook in hoofdstuk 4 duidelijk werd.

De implementatie wordt echter eenvoudig verwezenlijkt door gebruik te maken van J2EE–

technologie. De server wordt opgebouwd aan de hand van een Servlet en meerdere Beans.

Figuur 6.3 toont de server in detail. Werken met J2EE-componenten biedt heel wat voor-

Figuur 6.3: Serverimplementatie door middel van J2EE–componenten.

delen. Het zijn verplaatsbare componenten die makkelijk ontplooid kunnen worden op een

6.3 Server 78

J2EE–compatibele server. De levenscyclus van dergelijke J2EE–componenten wordt bovendien

automatisch beheert. In wat, volgt worden de componenten en hun werking beschreven.

6.3.1 LiveEventServlet

Het gedeelte van de server waarmee de MHP–applicatie communiceert, wordt geımplementeerd

als servlet. De MHP–applicatie zal optreden als een web client zoals in figuur 6.3 wordt weergege-

ven. Het aanspreken van de LiveEventServlet voor een specifieke verzoek is eenvoudig. Daarvoor

surft men naar de URL die de locatie van de LiveEventServlet aanduidt en geeft de parame-

ters van het verzoek door in die URL. De parameters worden hierbij als naam–waarde–koppels

gespecificeerd, zoals hieronder wordt geıllustreerd.

http://.../LiveEventServlet?naamA=waardeA&naamB=waardeB

Het voorbeeld geeft aan hoe twee parameters worden doorgegeven. Het scheiden van de pad-

naam en de parameters gebeurt door middel van een vraagteken. Daarna komen de namen en

de waarden van de parameters die gescheiden worden door een ambersant. Telkens een verzoek

wordt ontvangen, controleert de LiveEventServlet of het HTTP–verzoekbericht een zogenaamde

cookie2 bevat en voegt aan het antwoordbericht een cookie toe indien nodig. Dit is nodig om

de verzoeken van verschillende gebruikers te kunnen onderscheiden. De LiveEventServlet staat

in voor vijf taken.

De eerste taak waarvoor de LiveEventServlet instaat, is het genereren van een HTML–pagina

die als overzicht dient en waarin alle beschikbare vodcast feeds worden vermeld. De vodcast

feeds worden gezocht in een folder op de host waarop de LiveEventServlet is ontplooid. De

bestandsnamen van de gevonden bestanden worden vervolgens opgenomen als hyperlinks in de

HTML–pagina. Om de HTML–pagina te laten generen en op te vragen volstaat het te surfen

naar de URL die de locatie van de LiveEventServlet aanduidt. Er dienen dus geen parameters

te worden doorgegeven. Het resultaat van dit verzoek is een HTTP–antwoordbericht waarin

de HTML–pagina is opgenomen als bijlage. In het antwoordbericht wordt echter een speciale

hoofding of zogenaamde headerline opgenomen. De hoofding geeft de recentste vodcast feed aan

die in de folder werd gevonden. Zo kunnen de entiteiten die een dergelijk verzoek plaatsen een

idee krijgen of de HTML–pagina nieuwe elementen bevat. Dit aspect komt ook terug bij het2Cookies worden frequent toegepast op het internet. Het laat een server toe om informatie over internetge-

bruikers bij te houden.

6.3 Server 79

bespreken van de MHP–applicatie in het volgende hoofdstuk.

De tweede taak van de LiveEventServlet is het doorsturen van een specifieke vodcast feed waar-

naar verwezen wordt in de HTML–pagina. Daarvoor wordt slechts een parameter gebruikt met

de naam info. De waarde van de parameter duidt het XML–bestand aan dat gewenst is. De

bijlage in het antwoordbericht zal dan het gevraagde XML–bestand zijn indien dit kon worden

gevonden. Indien het bestand niet werd gevonden, wordt geantwoord met een foutbericht.

De LiveEventServlet kan ook gevraagd worden om een specifieke live–uitzending of een bepaald

videobestand af te spelen. Daarvoor wordt in het verzoek een Vodcast locator doorgegeven. De

ID–waarden waaruit de Vodcast locator is opgebouwd3 worden meegegeven als de waarden van

de parameters met respectievelijke namen channelID, itemID en enclosureID. Het resultaat van

een dergelijk verzoek, indien succesvol uitgevoerd, is een HTTP–bericht dat als bijlage een DVB

locator heeft die het kanaal aanduidt waarop de aangevraagde uitzending te zien is.

De vierde taak is het verschaffen van controle over het afspelen van een videobestand. De

mogelijkheden zijn in de huidige implementatie beperkt tot pauzeren, herstarten en stoppen.

Een dergelijk commando kan doorgegeven worden aan de hand van de parameter met de naam

control. Toegelaten waarden voor deze parameter zijn play, pause, stop, fastforward en rewind.

Merk op dat dit logischerwijze enkel mogelijk is indien de gebruiker een videobestand aan het

bekijken is. Dit verzoek resulteert in een bevestiging van het commando of een foutbericht in-

dien het commando niet toegelaten was.

De vijfde en laatste taak is het behandelen van een verzoek om een uitzending te stoppen. Dit

verzoek wordt aangegeven door middel van de parameter exit die de waarde true krijgt.

Er dienen twee opmerkingen te worden gemaakt. Ten eerste wordt bij het uitvoeren van een

commando, zoals het pauzeren, of het stopzetten van de uitzending geen Vodcast locator mee-

gegeven onder de vorm van parameters. De LiveEventServlet weet voor welke gebruiker het

uitvoeren van het commando of het stopzetten van de uitzending moet gebeuren aan de hand

van de cookie. De component weet echter niet op welke uitzending dit betrekking heeft. Dit

houdt verband met de tweede opmerking dat de LiveEventServlet alle verzoeken, behalve deze

omtrent het genereren van de HTML–pagina en het doorsturen van een vodcast feed, zal door-

geven aan een andere entiteit. Dit brengt ons bij de tweede component, de SchedulerFacadeSB.3Zie hoofdstuk 4 voor het concept Vodcast locator.

6.3 Server 80

6.3.2 SchedulerFacadeSB

Het uitvoeren van de eigenlijke applicatielogica wordt verzorgd door een zogenaamde Session-

Bean (SB). Deze component staat in voor het intelligent uitzenden. Dit houdt onder andere in

dat een bepaalde live–uitzending, of een bepaald camerastandpunt, slechts eenmaal in de broad-

cast terechtkomt. De situatie is echter anders voor het uitzenden van videobestanden waar elke

gebruiker controle heeft over het afspelen en dus telkens een nieuwe uitzending van het bestand

moet worden geregeld. De component zal verzoeken vanwege de LiveEventServlet uitvoeren.

Daarvoor biedt de SchedulerFacadeSB een interface aan met de onderstaande methodes die ge-

bruikt worden door de LiveEventServlet. Bij elk van de methodes wordt een userID meegegeven,

dit is de cookie die door de LiveEventServlet wordt toegekend.

public interface SchedulerFacadeRemoteBusiness {

String startStreaming(String userID, String url,

String vodcastLocator, boolean exclusive)

throws java.rmi.RemoteException;

boolean stopStreaming(String userID) throws java.rmi.RemoteException;

boolean play(String userID) throws java.rmi.RemoteException;

boolean pause(String userID) throws java.rmi.RemoteException;

boolean stop(String userID) throws java.rmi.RemoteException;

boolean fastforward(String userID) throws java.rmi.RemoteException;

boolean rewind(String userID) throws java.rmi.RemoteException;

}

De eerste methode wordt opgeroepen om een bepaalde uitzending te starten. Als de LiveEvent-

Servlet een verzoek ontvangt om een bepaalde uitzending te starten, zal de component informatie

uit de vodcast feed halen en de startStreaming–methode oproepen op de SchedulerFacadeSB.

Zoals de argumentenlijst van de methode laat zien, wordt naast de gebruikersidentificatie en

de Vodcast locator ook een URL en een booleaanse veranderlijke meegegeven. De laatste twee

argumenten worden door de LiveEventServlet opgezocht in de vodcast feed. De URL duidt de

Streamer–module aan die aangesproken moet worden om het uitzenden te starten. Dit is een

RMI–URL4. De booleaanse veranderlijke geeft aan of de uitzending exclusief gebeurt voor de

gebruiker in kwestie of niet. De overige methodes hebben vanzelfsprekende functionaliteit. De4Een dergelijke URL heeft de vorm rmi://host-adres:poort/naam waarbij naam de aanduiding geeft waarmee

het remote object geregistreerd is bij het RMI–register.

6.3 Server 81

onderstaande bespreking verklaart de verschillende stappen van de startStreaming–methode en

schetst de werking van de component.

De SchedulerFacadeSB ontvangt een invocatie van de startStreaming–methode. De component

zal op zoek gaan naar een IP2DVBScheduler die een kanaal kan reserveren. Indien de requestSer-

vice–methode een StreamParam–object oplevert dat niet ledig is, is er een kanaal gereserveerd.

Vervolgens zal de component proberen de Streamer–module te contacteren die verantwoordelijk

is voor de uitzending. De component invoceert de methode van de StreamerInterface–interface

en geeft daarbij de Vodcast locator en het StreamParam–object door. Indien dit alles succesvol

verloopt, zal het resultaat van de invocatie van de methode startStreaming op de Scheduler-

FacadeSB een String–object zijn dat de DVB locator bevat van het kanaal met de aangevraagde

media.

6.3.3 EntityBeans

Om het intelligent uitzenden te realiseren wordt in databasetabellen bijgehouden wat reeds uit-

gezonden wordt en wat elke gebruiker bekijkt. Daarvoor wordt gebruik gemaakt van EntityBeans

(EB). Deze componenten zijn geassocieerd met informatie in de databasetabellen. De informatie

die bijgehouden wordt, is opgedeeld in drie tabellen en voor elke tabel is een EntityBean–klasse

gedefinieerd.

In de eerste tabel wordt informatie over de gebruikers bijgehouden. Voor elke gebruiker wordt

een ID opgenomen en een aanwijzing bijgehouden van de uitzending die de gebruiker aan het

bekijken is. Deze informatie is ondergebracht in de Users–tabel en is toegankelijk via de User-

sEB–component. De tweede tabel bevat informatie over de beschikbare IP2DVBScheduler–

componenten. Voor elke IP2DVBScheduler, die eveneens aangeduid wordt met een ID, wordt

de RMI–URL bijgehouden waarop de component gecontacteerd kan worden. Deze tabel draagt

de naam Schedulers en is te gebruiken via de SchedulersEB–component. De laatste tabel, Media,

bevat de informatie omtrent de uitzendingen die aan de gang zijn. Een regel in deze tabel bevat

zes velden.

• een ID voor de uitzending

• de Vodcast locator van de uitzending

6.3 Server 82

• de DVB locator van het kanaal waarop de uitzending is te zien

• de RMI–URL van de Streamer–module die voor de uitzending verantwoordelijk is

• de ID van de IP2DVBScheduler die het kanaal ter beschikking stelde

• een booleaanse veranderlijke die aangeeft of de uitzending exclusief gebeurt voor een ge-

bruiker of niet

De informatie in de Media–tabel kan opgevraagd en gewijzigd worden door middel van de Me-

diaEB–component. Het eerste veld, het ID van de uitzending, wordt ook gebruikt in de Users–

tabel en het vijfde veld verwijst naar een IP2DVBScheduler in de Schedulers–tabel.

IMPLEMENTATIE MHP–APPLICATIE VOOR LIVE EVENT BROADCASTING 83

Hoofdstuk 7

Implementatie MHP–Applicatie voor

Live Event Broadcasting

De gebruiker zal thuis in de woonkamer interageren met de MHP–applicatie. De functionaliteit

van de applicatie moet op een overzichtelijke manier gepresenteerd worden en bovendien dient

de applicatie eenvoudig te hanteren zijn. Aan beide aspecten werd voldoende aandacht besteed.

In dit hoofdstuk wordt de opbouw van de applicatie en de werking ervan geschetst.

7.1 Overzicht MHP–Applicatie

In figuur 7.1 wordt een overzicht gegeven van de packages van de ontworpen MHP–applicatie.

De ontwikkelde MHP–applicatie is hierarchisch opgebouwd wat ook weerspiegeld wordt in het

bovenstaande diagram. De bovenste laag wordt gevormd door de Main–klasse. De tweede laag

bevat de modules die elk een bepaalde functionaliteit vervullen. In de onderste laag zijn tenslotte

de controllers te vinden. Deze staan in voor het gebruik van specifieke hardware bronnen of

een gerelateerde taak. Voor de communicatie tussen entiteiten op dezelfde laag of tussen lagen

wordt gebruik gemaakt van events.

7.2 Events & Controllers

7.2.1 Events

Doorheen de MHP–applicatie worden verschillende types gebeurtenissen, of zogenaamde events

gebruikt. Figuur 7.2 toont een overzicht van de voornaamste gebeurtenissen.

7.2 Events & Controllers 84

Figuur 7.1: Overzicht MHP–applicatie.

Figuur 7.2: Overzicht gebeurtenissen.

Er zijn drie categorieen objecten om een gebeurtenis aan te geven: NotificationEvent, Naviga-

tionEvent en ResourceEvent. Voor elke categorie is er een bijhorende interface om naar het type

in kwestie te luisteren: NotificationListener, NavigationListener en ResourceListener. Het type

NotificationEvent wordt gebruikt om een entiteit te informeren over een algemene gebeurtenis.

Op de figuur zijn verschillende subtypes van deze categorie weergegeven. De beschikbaarheid

van een nieuw Vodcasting–kanaal wordt aangegeven door een NewChannelEvent–object. Het

tweede type NavigationEvent geeft gebeurtenissen aan met betrekking tot navigatie. Een object

7.2 Events & Controllers 85

van de klasse ChangeScreenEvent informeert een geınteresseerde entiteit dat de gebruiker naar

een bepaald scherm wenst te navigeren. Het laatste type ResourceEvent betreft gebeurtenissen

in verband met bepaalde hardwarebronnen.

7.2.2 Controllers

Een controller staat in voor het beheer van een specifieke hardwarebron of voor een bepaalde

taak. Elke controller breidt de Controller–klasse uit. Deze klasse is abstract en voorziet een aan-

tal standaardmethodes. Zo kan een ResourceListener–entiteit toegevoegd of verwijderd worden.

Daarnaast zijn er twee methodes initController en disposeController waarvan de functionaliteit

ingevuld dient te worden bij een concrete controller en die gebruikt worden om hardware bronnen

te reserveren en vrij te geven. De BackgroundController bijvoorbeeld zal het achtergrondvlak

reserveren bij initialisatie en vrijgeven wanneer de controller wordt vernietigd.

Indien van toepassing implementeert de controller in kwestie ook de ResourceClient–interface.

Dit is een standaardinterface van de DAVIC–API’s waardoor de controller wordt verwittigd

door het systeem wanneer deze geen toegang meer heeft tot een bepaalde hardwarebron. In dat

geval worden ook de geregistreerde ResourceListener–entiteiten verwittigd. Elke controller is

bovendien geımplementeerd als singleton–klasse. Hierdoor is het eenvoudig om een referentie te

verkrijgen1.

De meeste controllers staan in voor een specifieke hardware bron, zoals het achtergrondvlak,

het videovlak, het grafisch vlak of het terugkeerkanaal. Hierop zijn twee uitzonderingen. De

MediaController staat in voor het beheer van media zoals afbeeldingen en geluiden. De control-

ler laadt media in en geeft indien een bepaald beeld of geluid gewenst is, een referentie terug.

Hierdoor wordt vermeden dat bepaalde media tweemaal ingeladen zou worden. De Service-

Controller staat in voor het huidige kanaal. Via deze component kan op een bepaald kanaal

afgestemd worden en bovendien kan de weergave van het kanaal, zoals de afmetingen van video,

worden aangepast. In [10] is uitgebreide informatie over de verschillende controllers te vinden.1Een dergelijke referentie kan steeds verkregen worden op een zelfde manier, namelijk xxxControl-

ler.getInstance().

7.3 Main & Modules 86

7.3 Main & Modules

Wanneer de applicatiebeheerder2 een MHP–applicatie opstart, wordt aan de applicatie een Xlet-

Context–object overhandigd. Dit object kan door de applicatie aangewend worden om toestands-

veranderingen door te geven aan de applicatiebeheerder3. Het object wordt bijgehouden in de

abstracte ExtendedXlet–klasse die ook de ResourceListener–interface en NotificationListener–

interface implementeert. De Main–klasse, die deze ExtendedXlet–klasse extendeert, initialiseert

de verschillende controllers en modules bij het opstarten en wordt op de hoogte gehouden van

gebeurtenissen. Figuur 7.3 toont het klassendiagram. Volgens hetzelfde stramien als bij de

Figuur 7.3: Main–klasse.

controllers, is een abstracte Module–klasse voorzien. De klasse voorziet in het toevoegen en

verwijderen van een NotificationListener–entiteit. De initModule en disposeModule methodes

moeten door de extenderende klasse voorzien worden. Elke module verschaft twee interfaces,

een naar andere modules toe en een naar de klassen binnen de verpakking van de module. De

naamgeving van deze twee types interfaces is bovendien heel transparant4. Een overzicht van

de modules en hun onderlinge relaties wordt weergegeven in figuur 7.4. In wat volgt, worden de

drie modules beschreven waaruit de MHP–applicatie is opgebouwd.2De applicatiebeheerder wordt in het MHP aangeduid met de term Application Manager.3Zie 2.4.3 voor de verschillende toestanden van een xlet.4De naam van de interface naar andere modules toe is van de vorm xxxModuleInterface en de interface voor

interne werking van de module heeft de vorm xxxInternalInterface

7.4 HTTP–Module 87

Figuur 7.4: Modules.

7.4 HTTP–Module

De HTTP–module staat in voor het verzenden en ontvangen van HTTP–berichten. Dit onderdeel

van de MHP–applicatie communiceert met de server. Het klassendiagram van deze module

wordt getoond in figuur 7.5. De HTTP–module biedt via de HTTPModuleInterface–interface de

methode getPage aan waarmee een pagina kan worden opgevraagd. De module houdt hoofdingen

bij van ontvangen berichten, zoals een cookie5 of een datum die de laatste wijziging van een

pagina aanduidt. Verzoekberichten worden steeds voozien van de nodige hoofdingen. Telkens

er een invocatie van de getPage–methode op de module plaatsvindt, wordt een HTTPThread–

object aangemaakt dat het verzoek zal afhandelen. Er kunnen ook meerdere verzoeken in parallel

worden afgehandeld. De HTTP–module biedt aan deze HTTPThread–objecten de onderstaande

interface aan.

public interface HTTPInternalInterface{

public HTTPRequest fillHeaderLines(HTTPRequest request);

public void updateHeaderLines(HTTPResponse response);

}

5Een cookie dat gebruikt wordt voor gebruikersidentificatie en door de LiveEventServlet, zie hoofdstuk 6,

wordt toegekend.

7.5 Aggregator–Module 88

Figuur 7.5: HTTP–module.

Elk HTTPThread–object zal een HTTP-verzoekbericht aanmaken en de nodige hoofdingen

laten instellen door de HTTP–module. Dit gebeurt via de fillHeaderLines–methode. Het

HTTPThread–object verstuurt vervolgens het verzoek en ontvangt een HTTP–antwoordbericht.

Indien nodig worden hoofdingen aangepast via de updateHeaderLines–methode. Als de status-

code van het antwoordbericht een fout aangeeft, genereert de HTTP–module een indicatie via

een NotificationEvent–object.

7.5 Aggregator–Module

De kern van de MHP–applicatie wordt gevormd door de Aggregator–module. Figuur 7.6 toont

het klassendiagram van de module. Deze module zal om een instelbare tijd een verzoek zenden

naar de server door gebruik te maken van de HTTP–module. De ontvangen HTML–pagina

wordt doorzocht op zoek naar referenties van vodcast feeds door gebruik te maken van een

HTMLParser–object. Voor elke gevonden referentie wordt dan de vodcast feed opgehaald via de

HTTP–module en verwerkt met een XMLParser–object. Het verwerken van meerdere vodcast

feeds gebeurt simultaan en resulteert in het opstellen of het aanpassen van een boomstructuur

waarin kanalen, items en bijlagen zijn ondergebracht6. De boomstructuur wordt bijgehouden

in een tabel waarin voor elk kanaal een ChannelInfo–object is opgenomen. Elk ChannelInfo–6Zie figuur 4.1.

7.6 GUI–Module 89

Figuur 7.6: Aggregator–module.

object bevat de items van het kanaal onder de vorm van ItemInfo–objecten. Op het diepste

niveau zijn de EnclosureInfo–objecten te vinden die ondergebracht zijn in een ItemInfo–object.

De inhoud van de boom kan via methodes in de AggregatorModuleInterface–interface eenvoudig

worden opgevraagd. Er is veel aandacht besteed aan het implementeren van deze opvraag-

methodes omdat de Aggregator–module op geregelde tijdstippen de boom aanpast. Er dient

opgemerkt te worden dat het modificeren van de boom op intelligente wijze gebeurt. Enkel

indien de server daadwerkelijk nieuwe kanalen of items meldt, wordt de boomstructuur aange-

past. Dit gaat gepaard met het genereren van bijvoorbeeld een NewChannelEvent–object of een

NewChannelItemEvent–object om daarin geınteresseerde entiteiten te verwittigen.

7.6 GUI–Module

De GUI–module staat in voor de interactie met de gebruiker. Voor deze module wordt in fi-

guur 7.7 het klassendiagram weergegeven. De GUI–module controleert de navigatie en luistert

dan ook naar NavigationEvent–objecten. De vorige, door de gebruiker genomen, navigatiestap-

pen worden bovendien bijgehouden om eenvoudig te kunnen terug navigeren naar het vorige

scherm. De module biedt via de GUIInternalInterface–interface functionaliteit aan voor de

7.6 GUI–Module 90

Figuur 7.7: GUI–module.

schermen. Sommige methodes, zoals deze die betrekking hebben op het schikken van achter-

grond en video, zijn algemeen. Andere zijn dan weer specifiek voor een bepaald scherm. In wat

volgt, wordt de opbouw van de grafische gebruikersinterface in detail besproken.

7.6.1 Componenten & Weergaves

Voor de opbouw van de schermen wordt zoveel mogelijk gebruik gemaakt van standaardcom-

ponenten. De navigatie tussen standaardcomponenten kan immers eenvoudig ingesteld worden

door middel van de setMove–methode. Hiermee wordt bepaald aan welke component de focus7

wordt doorgegeven bij het indrukken van een bepaalde knop.

7.6.1.1 Componenten

Er zijn twee klassen gedefinieerd omwille van specifieke benodigde functionaliteit. De eerste

klasse is de WScrollableText–klasse. Een tekst van willekeurige lengte kan door middel van een

object van deze klasse opgesplitst worden weergegeven, afhankelijk van hoe groot de beschik-

bare plaats is. De klasse vindt toepassing in het weergeven van bijvoorbeeld informatie over

een kanaal of helpinformatie over een scherm. De opgedeelde tekst kan dan door middel van7De gebruiker kan steeds interageren met de component die op dat ogenblik focus heeft.

7.6 GUI–Module 91

bijvoorbeeld de BOVEN –en ONDER–knoppen doorlopen worden. Om beroep te kunnen doen

op het standaard navigatiemechanisme, extendeert de WScrollableText–klasse de HText–klasse.

De tweede klasse is de WButtonList–klasse die de HListGroup–klasse extendeert. Deze klasse

voegt weinig functionaliteit aan de HListGroup–klasse toe maar verandert het gedrag zodat een

object bekomen wordt die een lijst van knoppen voorstelt. Als er naar een HListGroup–object

wordt genavigeerd, dan kunnen de elementen ervan pas worden doorlopen als op de OK–knop

wordt gedrukt. Als een WButtonList–object echter focus ontvangt, dan kan dit wel direct8.

7.6.1.2 Weergaves

Elke component van de gebruikersinterface heeft een paint–methode die opgeroepen wordt om

de component op het scherm af te beelden. Indien een nieuwe component wordt gedefinieerd,

kan het uitzicht ervan worden bepaald door die methode te overschrijven. Het spreekt voor zich

dat het telkens overschrijven van deze methode voor componenten die slechts weinig verschillen

niet efficient is. Daarom is het in MHP mogelijk om de weergave van een component te schei-

den van het gedrag ervan [24]. Aan een component kan een HLook–object worden verbonden

waarin enkel de weergave van de component wordt vastgelegd. Dit is een handig mechanisme

om eenvoudig een bepaalde uitzicht voor de gebruikersinterface vast te leggen omdat dergelijke

weergave–objecten herbruikt kunnen worden. De belangrijkste methode van deze weergave–

objecten is de showLook–methode die opgeroepen zal worden telkens de component afgebeeld

moet worden.

Voor de weergave van een object van de klasse WScrollableText wordt de WScrollableText-

Look–klasse voorzien. Omdat WScrollableText–klasse een extensie is van de HText–klasse, is

de WScrollableTextLook–klasse is een extensie van de HTextLook–klasse. Het weergave–object

tekent de navigeerbare tekst in de beschikbare ruimte en geeft door middel van pijltjes aan

of er nog meer tekst is dan wat afgebeeld wordt. Op dezelfde manier is voor de WButton-

List–klasse een WButtonListLook–klasse voorzien. De klasse tekent de component als een lijst

van knoppen en geeft ook aan door middel van pijltjes of er nog meer knoppen zijn die niet

zichtbaar zijn. Er dient echter bij deze weergave–klasse een opmerking gemaakt te worden.

De WButtonListLook–klasse breidt de HListGroupLook–klasse uit. De HListGroupLook–klasse

heeft naast de showLook–methode echter nog een andere belangrijke methode, namelijk de get-8Dit wordt verwezenlijkt door een event te sturen naar de component waardoor deze direct in selectiemode

treedt.

7.6 GUI–Module 92

NumVisible–methode. Deze methode wordt opgeroepen om na te gaan hoeveel elementen van

het HListGroup–object er zichtbaar zijn met die bepaalde weergave en is essentieel voor de wer-

king van de component. Door voor de WButtonListLook–klasse ook deze methode te voorzien,

werkt de eigen gedefinieerde weergaveklasse vloeiend samen met het interne afbeeldingssysteem.

Tenslotte werd ook nog een WGraphicLook–klasse voorzien om icoontjes af te beelden zonder

rand. Met deze klasse is kan ook tekst worden geplaatst op die icoontjes.

De weergave–klasses blijken bijzonder handig en worden dan ook gebruikt voor het visualiseren

van navigatie. Dit concept werkt als volgt. Als voor een bepaalde component richtingstoetsen

worden ingesteld voor navigatie, bijvoorbeeld bij het indrukken van RECHTS–knop wordt de

focus doorgegeven aan een bepaalde component, dan worden die navigatiemogelijkheden ook

gevisualiseerd aan de hand van blauwe pijltjes. Door dit te incorporeren in de weergave–klasses,

WScrollableTextLook en WButtonListLook, gebeurt het visualiseren van navigatie automatisch

als componenten met elkaar worden verbonden. Het verduidelijkt voor de gebruiker op elk

moment welke navigatiemogelijkheden er zijn en verhoogt zo het gemak waarmee applicatie

kan worden bediend. Het concept wordt in de huidige implementatie enkel toegepast voor de

richtingstoetsen maar kan zeker uitgebreid worden.

7.6.2 Scherm Modelvorm

Elk scherm extendeert de Screen–klasse. Deze klasse is abstract en is bedoeld als modelvorm

voor een scherm. Figuur 7.8 toont het klassendiagram voor de Screen–klasse.

Figuur 7.8: Screen–klasse.

Via het MediaController–object kunnen afbeeldingen of geluiden worden ingeladen. Er is ook

een referentie naar de GUI–module zodat bijvoorbeeld een bepaalde schikking van video en

7.6 GUI–Module 93

achtergrond kan worden aangevraagd. Elk concreet scherm dat deze modelvorm extendeert

moet een aantal methodes invullen zoals initScreen, disposeScreen, requestFocus en getHelpInfo.

De basisstructuur van een scherm wordt geıllustreerd in figuur 7.9.

Figuur 7.9: Schermmodel.

De structuur bestaat uit vier containers waarvan de onderste container wordt gebruikt om de

gekleurde toetsen op de afstandsbediening weer te geven terwijl in de bovenste container infor-

matie kan weergegeven worden. De modelvorm laat toe dat er eenvoudig nieuwe schermen aan

de GUI kunnen toegevoegd worden. In wat volgt, wordt de functionaliteit van de schermen bon-

dig overlopen. Voor de volledigheid zijn de klassendiagramma’s van de verschillende schermen

opgenomen in appendix C. Enkele momentopnames van de verschillende schermen zijn terug te

vinden in appendix D.

7.6.3 HomeScreen

Dit scherm geeft een overzicht van de MHP–applicatie en wordt direct na het opstarten weer-

gegeven. Bij het weergeven van dit scherm wordt de video geminimaliseerd. Vanuit dit scherm

kan genavigeerd worden naar specifieke onderdelen. Voor dit scherm wordt een speciale schik-

king gebruikt. Daarom worden sommige componenten van het schermmodel, zoals hierboven

beschreven, verborgen.

7.6.4 BrowserScreen

Dit scherm wordt gebruikt om eenvoudig door de kanalen en items van een kanaal te bladeren.

Terwijl dit scherm wordt getoond, wordt de video verkleind getoond aan de rechterkant. De

7.6 GUI–Module 94

Browser–interface die het scherm implementeert, voorziet in twee methodes om het scherm

naar een bepaald kanaal of een bepaald item op een kanaal te brengen. Het scherm bestaat,

naast de componenten van het schermmodel, uit vier onderdelen. Er zijn twee lijsten waarin

respectievelijk de kanalen en de items van een kanaal in worden weergegeven als knoppen.

Daarnaast zijn ook twee informatievensters beschikbaar waarin informatie over een kanaal en

informatie over een item kan worden weergegeven. De componenten overlappen echter niet

om het overzicht op het scherm niet te verliezen. Afhankelijk van de component waarnaar de

gebruiker navigeert, komt deze in beeld. De gekleurde knoppen op de afstandsbediening kunnen

gebruikt worden om naar een ander scherm te navigeren of om de video af te spelen op volledige

grootte.

7.6.5 PlayerScreen

Als vanuit het browserscherm een item wordt aangevraagd, wordt dit scherm getoond. Tevens

wordt de afbeelding in de achtergrond weggehaald en video gemaximaliseerd. Het scherm im-

plementeert de Player–interface die laat toe om de status van het afspelen of een boodschap

aan de gebruiker te tonen. Indien bijvoorbeeld, terwijl een gebruiker een bepaald item aan het

bekijken is een nieuw Vodcasting–kanaal beschikbaar geworden is, wordt dit aan de gebruiker

medegedeeld. Het afspelen van een item houdt in dat het scherm een afspeellijst zal bijhouden

van de beschikbare bijlages in het item. Het scherm heeft vijf additionele componenten ten op-

zichte van het schermmodel. Dit zijn icoontjes waarmee de gebruiker controle kan uitoefenen op

het item dat afspeelt. Enkel indien het item een videobestand betreft, kan het afspelen worden

gepauzeerd, herstart of gestopt. Als een item meerdere bijlagen heeft, bijvoorbeeld meerdere

camerastandpunten bij een live–uitzending, dan kunnen deze doorlopen worden door middel

van de buitenste icoontjes. Na een instelbare tijd verdwijnt het afspeelscherm en wordt terug

zichtbaar indien de gebruiker een knop indrukt.

7.6.6 HelpScreen

Helpinformatie is voor elk scherm beschikbaar. Het helpscherm haalt de informatie bij het

betreffende scherm op met de getHelpInfo–methode en geeft de helpinformatie weer in een tekst

die door middel van de ONDER– en BOVEN –toetsen kan doorlopen worden. De applicatie

bevat slechts een helpscherm dat de helpinformatie voor alle andere schermen kan weergegeven.

Dit wordt verwezenlijkt doordat het helpscherm de NavigationListener–interface implementeert.

7.6 GUI–Module 95

Het helpscherm wordt geregistreerd als luisteraar bij elk ander scherm. Daardoor luistert dit

scherm op de achtergrond naar de navigatie en blijft zo steeds op de hoogte van het huidige

scherm en houdt de helpinformatie klaar die van toepassing is. Indien het helpscherm wordt

opgeroepen bevat het reeds de informatie betreffende het scherm van waaruit werd genavigeerd.

7.6.7 ExitScreen

Het laatste scherm tenslotte is het verlaatscherm. Net zoals voor het thuisscherm, worden hier

een aantal elementen van het schermmodel verborgen. De functionaliteit van dit scherm ligt

voor de hand. De gebruiker kan de applicatie afsluiten of terug gaan naar het vorige scherm.

CONCLUSIE 96

Hoofdstuk 8

Conclusie

In deze scriptie werd nagegaan of live event broadcasting en videoconferencing aangeboden

kunnen worden op het MHP. Voor de implementatie van beide diensten werden architecturen

ontwikkeld die gebaseerd zijn op een gemeenschappelijk principe: het gebruik van kanalen in

de broadcast waarin media kan worden geplaatst op vraag van de gebruiker. Door dit mecha-

nisme wordt op een succesvolle manier de overbrugging van een IP–netwerk naar de broadcast

gemaakt. Het kan dan ook beschouwd worden als de sleutel waarmee naast tradionele televisie

ook nieuwe media tot in de woonkamer op het televisiescherm kunnen worden gebracht.

Voor live event broadcasting werd een architectuur ontwikkeld op basis van Podcasting waarmee

op een dynamische wijze live events kunnen worden aangeboden. Bijzonder aan het ontwikkelde

systeem is dat gebruikers zelf live–uitzendingen kunnen aanbieden aan andere gebruikers. De

architectuur blijkt bovendien ook geschikt voor andere doeleinden zoals VOD.

De architectuur voor videoconferencing werd ontworpen maar bereikte de implementatiefase

niet. De reden hiervoor ligt bij de te hoge vertraging. Dit betekent echter niet dat videocon-

ferencing niet binnen de mogelijkheden van het MHP ligt. Er rest nog onderzoekswerk om de

vertraging van camera tot televisie toestel te verlagen.

Het is mijn persoonlijke mening dat het enthousiasme waarmee digitale televisie door het publiek

zal worden onthaald niet enkel bepaald zal worden door de grootte van het aanbod televisie-

kanalen of de kwaliteit van beeld en geluid. Het zullen vooral de diensten zijn op het digitale

televisieplatform die interesse zullen opwekken. Het aanbieden van communicatievormen zoals

CONCLUSIE 97

chatten en videoconferencing en de mogelijkheid om gepersonaliseerde media te publiceren zijn

slechts enkele voorbeelden die het potentieel van het MHP illustreren.

PODCAST & VODCAST FEEDS 98

Bijlage A

Podcast & Vodcast Feeds

A.1 Podcast Feed

<?xml version=”1.0” encoding=”UTF-8” ?>

<rss xmlns:itunes=”http://www.itunes.com/DTDs/Podcast-1.0.dtd”version=”2.0”>

<channel >

<title>...</title>

<link>...</link>

<description>...</description>

<generator>...</generator>

<language>...</language>

<copyright>...</copyright>

<managingEditor>...</managingEditor>

<webMaster>...</webMaster>

<pubDate>...</pubDate>

<lastBuildDate>...</lastBuildDate>

<category>...</category>

<ttl>...</ttl>

<image>h...</image>

<itunes:summary>...</itunes:summary>

<item >

<title>...</title>

<link>...</link>

A.2 Aangepaste Vodcast Feed 99

<description>...</description>

<author>...</author>

<category>...</category>

<enclosure url=”...” length=”...” type=”...” />

<pubDate>...</pubDate>

<guid>...</guid>

<source />

</item>

</channel>

</rss>

A.2 Aangepaste Vodcast Feed

<?xml version=”1.0” encoding=”UTF-8” ?>

<rss xmlns:itunes=”http://www.itunes.com/DTDs/Podcast-1.0.dtd”version=”2.0”>

<channel id=”...”>

<title>...</title>

<author>...</author>

<link>...</link>

<description>...</description>

<subtitle>...</subtitle>

<summary>...</summary>

<language>...</language>

<copyright>...</copyright>

<owner>...</owner>

<email>...</email>

<category>...</category>

<item id=”...”>

<title>...</title>

<description>...</description>

<summary>...</summary>

<start>...</start>

A.2 Aangepaste Vodcast Feed 100

<stop>...</stop>

<enclosure id=”...” url=”...” exclusive=”...”/>

<title>...</title>

<video>...</video>

<audio>...</audio>

</enclosure>

</item>

</channel>

</rss>

DISCOVER CONFIGURE COMMAND PROTOCOL 101

Bijlage B

Discover Configure Command

Protocol

Discover Configure Command Protocol (DCCP) is een protocol voor de communicatie tussen

een Capture–module, op een host in het thuisnetwerk, en de MHP–applicatie op de STB.

Het protocol is geınspireerd op het Dynamic Host Configuration Protocol (DHCP) [11]. Fi-

guur B.1 toont een scenario. Na het opstarten, zoekt de MHP–applicatie in het thuisnetwerk

naar Capture–modules door het zenden van DISCOVER–berichten. De modules antwoorden

hierop met OFFER–berichten waarin ze ook informatie over de opname–appartuur verstrekken.

De gebruiker kan via de MHP–applicatie kiezen welke Capture–module hij wil gebruiken voor

videoconferencing. De gekozen Capture–module wordt daarvan op de hoogte gebracht door een

REQUEST–bericht. De andere modules ontvangen een REJECT–bericht. Indien een video-

conferentie wordt opgezet, kan de MHP–applicatie de gereserveerde module aanspreken om de

opname te starten met een START–bericht. Dit bericht zal ook configuratieparameters voor

de module bevatten. Bij het einde van de videoconferentie wordt de opname beeindigd aan de

hand van een STOP–bericht.

DISCOVER CONFIGURE COMMAND PROTOCOL 102

Figuur B.1: Discover Configure Communication Protocol (DCCP).

KLASSENDIAGRAMMA’S 103

Bijlage C

Klassendiagramma’s

C.1 HomeScreen

Figuur C.1: HomeScreen–klasse.

C.2 BrowserScreen 104

C.2 BrowserScreen

Figuur C.2: BrowserScreen–klasse.

C.3 PlayerScreen

Figuur C.3: PlayerScreen–klasse.

C.4 HelpScreen

Figuur C.4: HelpScreen–klasse.

C.5 ExitScreen 105

C.5 ExitScreen

Figuur C.5: ExitScreen–klasse.

MOMENTOPNAMES GEBRUIKERSINTERFACE 106

Bijlage D

Momentopnames

Gebruikersinterface

D.1 HomeScreen

Figuur D.1: Thuisscherm.

D.2 BrowserScreen 107

D.2 BrowserScreen

Figuur D.2: Browserscherm met kanalen.

Figuur D.3: Browserscherm met items.

D.3 PlayerScreen 108

Figuur D.4: Browserscherm met iteminformatie.

D.3 PlayerScreen

Figuur D.5: Afspeelscherm.

D.4 HelpScreen 109

D.4 HelpScreen

Figuur D.6: Helpscherm.

BIBLIOGRAFIE 110

Bibliografie

[1] Audio Engineering Society (AES) (2003). AES3-2003: AES Recommended practice for

digital audio engineering – Serial transmission format for two-channel linearly represented

digital audio data (Revision of AES3-1992, including subsequent amendments).

[2] BASET, S. & SCHULZRINNE, H. (2004). An Analysis of the Skype Peer-to-Peer Internet

Telephony Protocol. USA, New York, Department of Computer Science, Columbia Univer-

sity.

[3] BRUNEEL, H. (2005). Wachtlijntheorie. Cursus, Gent, Faculteit Ingenieurswetenschappen,

Universiteit Gent.

[4] BUGAJSKI, M. (2004). Convergence of Video in the Last Mile: MPEG2-

TS and DOCSIS, Technical Paper for Jornadas 2004 Conference.

http://www.arrisi.com/products solutions/applications/white papers/

Convergence Video Last Mile.pdf (geconsulteerd op 22 november 2005).

[5] CableLabs (2005). OpenCable Application Platform Specification OCAP 1.0 Profile. Doc.:

OCAP1.0.

[6] CableLabs (2005). OpenCable Application Platform Specification OCAP Home Networking

Extension. Doc.: OCAP-HNEXT1.0.

[7] DekTec Digital Video BV (2005). DTAPI – C++ API for DekTec devices.

http://www.dektec.com/Products/DTAPI/Downloads/DTAPI.pdf

[8] DEMEESTER, P. (2004). Communicatienetwerken. Cursus, Gent, Faculteit Ingenieur-

swetenschappen, Universiteit Gent.

[9] DEMEESTER, P. & PICKAVET, M. (2005). Multimedianetwerken. Cursus, Gent, Faculteit

Ingenieurswetenschappen, Universiteit Gent.

BIBLIOGRAFIE 111

[10] DEMEYERE, K. (2006). Analyse & Ontwerp van een Applicatie voor Videoconferencing &

Live Event Broadcasting – JavaDoc (CD–ROM). Master of Science Thesis, Gent, Faculteit

Ingenieurswetenschappen, Universiteit Gent.

[11] DROMS, R. (1995). Dynamic Host Configuration Protocol.

http://www.ietf.org/rfc/rfc2131.txt (geconsulteerd op 7 november 2005).

[12] European Telecommunications Standards Institute (ETSI) (1996). Digital Video Broad-

casting (DVB); Support for use of scrambling and Conditional Access (CA) within digital

broadcasting systems. Doc.nr: ETSI ETR 289 October 1996.

[13] European Telecommunications Standards Institute (ETSI) (1997). Digital Video Broad-

casting (DVB); Framing structure, channel coding and modulation for 11/12 GHz satellite

services. Doc.nr.: ETSI EN 300 421 v1.1.2 (1997-08).

[14] European Telecommunications Standards Institute (ETSI) (1998). Digital Video Broadcast-

ing (DVB); Framing structure, channel coding and modulation for cable systems. Doc.nr.:

ETSI EN 300 429 v1.2.1 (1998-04).

[15] European Telecommunications Standards Institute (ETSI) (2002). Digital Video Broad-

casting (DVB); Multimedia Home Platform (MHP) Specification 1.0.2. Doc.nr.: TS 101812

v1.2.1 (2002-06).

[16] European Telecommunications Standards Institute (ETSI) (2003). Digital Video Broad-

casting (DVB); Multimedia Home Platform (MHP) Specification 1.1.1. Doc.nr.: TS 101812

v1.2.1 (2003-06).

[17] European Telecommunications Standards Institute (ETSI) (2004). Digital Video Broad-

casting (DVB); Transmission System for Handheld Terminals. Doc.nr.: ETSI EN 302 304

v1.1.1 (2004-11).

[18] European Telecommunications Standards Institute (ETSI) (2004). Digital Video Broad-

casting (DVB); Framing structure, channel coding and modulation for digital terrestrial

television. Doc.nr.: ETSI EN 300 744 v1.5.1 (2004–11).

[19] European Telecommunications Standards Institute (ETSI) (2005). Digital Video Broad-

casting (DVB); Specification for Service Information in DVB Systems. Doc.nr.: ETSI EN

300 468 v1.7.1 (2005-12).

BIBLIOGRAFIE 112

[20] FOX, G., WU, W., UYAR, A. & BULUT, H. (2004). Design and Implementation of Au-

dio/Video Collaboration System Based on Publish/subscribe Event Middleware. USA, New

York, Department of Electrical Engineering and Computer Science, Syracuse University.

[21] FOX, G., WU, W., UYAR, A. & BULUT, H. (2006). Service-Oriented Architecture for

Building a Scalable Videoconferencing System. USA, New York, Department of Electrical

Engineering and Computer Science, Syracuse University.

[22] FREYHULT, S. (2004). Streaming Video on IP Networks. Master’s Thesis in Computer

Science, Sweden, Stockholm, Department of Numerical Analysis and Computer Science,

Royal Institute of Technology.

[23] HANDLEY, M., & JACOBSON, V. (1998). SDP: Session Description Protocol.

http://www.ietf.org/rfc/rfc2327.txt (geconsulteerd op 4 november 2005).

[24] HAVi Inc. (2001). Specification of the Home Audio/Video Interoperability (HAVi) Archi-

tecture, Chapter 8 Level 2 User Interface. http://www.havi.org/techinfo/docs/Chapter8-

HAVi1.1-May15.pdf (geconsulteerd 15 november 2005).

[25] International Standards Organisation / International Electrotechnical Commission

(ISO/IEC) (1994). Information technology - Generic coding of moving pictures and as-

sociated audio: Systems. Doc.nr.: ISO/IEC 13818-1.

[26] International Standards Organisation / International Electrotechnical Commission

(ISO/IEC) (1994). Information technology - Generic coding of moving pictures and as-

sociated audio: Video. Doc.nr.: ISO/IEC 13818-2.

[27] International Standards Organisation / International Electrotechnical Commission

(ISO/IEC) (1994). Information technology - Generic coding of moving pictures and as-

sociated audio: Audio. Doc.nr.: ISO/IEC 13818-3.

[28] International Standards Organisation / International Electrotechnical Commission

(ISO/IEC) (1994). Information technology - Generic coding of moving pictures and as-

sociated audio: Extensions for DSM-CC. Doc.nr.: ISO/IEC 13818-6.

[29] International Telecommunication Union Radiocommunication (ITU–R) (1995). Recommen-

dation ITU-R BT.601-5 Studio encoding parameters of digital television for standard 4:3

and wide–screen 16:9 aspect ratios.

BIBLIOGRAFIE 113

[30] LYTRAS, M., LOUGOS, C., CHOZOS, P. & POULOUDI, A. (2003) Interactive Television

and E-Learning Convergence: Examining the Potential of T-Learning. Greece, Athens,

Department of Management Science & Technology, Athens University of Economics and

Business.

[31] MARTENS, L. (2004). HFC–Toegangsnetwerken: case study. Cursus, Gent, Faculteit In-

genieurswetenschappen, Universiteit Gent.

[32] PARKINSON, R. (2002). Traffic Engineering Techniques in Telecommunications.

http://www.infotel-systems.com (geconsulteerd op 11 maart 2006).

[33] PIESING, J. (2006). Roadmap for MHP and Related Technologies. Presented at DVB

World 2006 - The Challenge of Choice, Dublin, March 2, 2006.

[34] RICHARDSON, I. (2002). Video Codec Design, Developing Image and Video Compression

Systems. England, Wiley.

[35] ROSENBERG, J., SCHULZRINNE, H., CAMARRILLO, G., JOHNSTON, A.,

PETERSON, J., SPARKS, R., et al. (2002). SIP: Session Initiation Protocol.

http://www.ietf.org/rfc/rfc3261.txt (geconsulteerd op 4 november 2005).

[36] SINGH, K. & SCHULZRINNE, H. (2004). Peer-to-Peer Internet Telephony using SIP. USA,

New York, Department of Computer Science, Columbia University.

[37] Sun Microsystems, Inc. (1994-2005). Abstract Window Toolkit (AWT) 1.0 API Specifica-

tions. http://java.sun.com/products/jdk/awt/.

[38] Sun Microsystems, Inc. (1994-2005). Java Media Framework (JMF) 1.0 API Specifications.

http://java.sun.com/products/java-media/jmf/1.0/.

[39] Sun Microsystems, Inc. (1994-2005). Java Stream Assembly API, Version 1.0, Community

Draft. http://www.jcp.org/aboutJava/communityprocess/pr/jsr158/index.html (geconsul-

teerd op 24 november 2005).

[40] TKACHENKO, D., & KORNET, N. (2004). Convergence of iDTV and Home Network

Platforms. Russia, St.Petersburg, Radio Engineering and Telecommunications Department,

St.Petersburg State Polytechnic University.

[41] WINNER, D. (2005). RSS 2.0 Specification. http://blogs.law.harvard.edu/tech/rss.