Studio e sviluppo di un’applicazione MHP per la realizzazione di una guida tv (EPG) evoluta

Post on 28-Jan-2015

111 views 0 download

description

Studio e sviluppo di un’applicazione MHP per la realizzazione di una guida tv (EPG) evoluta - Marco Bartolozzi - AA 2009-2010 Relatori: Dr. Alessandro Piva, Dr. Roberto Caldelli, Ing. Rudy Becarelli, Dr. P. Mazzanti, Ing. Matteo Casini

Transcript of Studio e sviluppo di un’applicazione MHP per la realizzazione di una guida tv (EPG) evoluta

Relatori:

Studio e sviluppo di un’applicazione MHP per la realizzazione di una

guida tv (EPG) evolutaTesi di laurea di

Marco Bartolozzi

Prof. Alessandro PivaDr. Roberto CaldelliIng. Rudy BecarelliDr. Paolo MazzantiIng. Matteo Casini 08 Aprile 2011

Sommario

• Obiettivo tesi e scenario di riferimento (TV digitale terrestre)

• Demo

• Transport Stream (TS) e tabelle informative PSI/SI

• Progettazione applicazione “EPG-Client”

• Conclusioni e sviluppi futuri

2

EPG

3

La sigla EPG è l’acronimo di Electronic Program Guide e indica un’applicazione destinata ai decoder interattivi (STB – set top box) e ai nuovi televisori digitali (iDTV) per fornire l’elenco dei programmi attualmente diffusi o di prossima programmazione sui canali televisivi digitali.

Le soluzioni presenti sul mercato sono due:

guida standard realizzata dai principali produttori di decoder e televisori

guida MyEPG realizzata da Mediaset in collaborazione con Tv Sorrisi e Canzoni.

ObiettivoSviluppare un’applicazione Java MHP di EPG dei canali trasmessi ad una stessa frequenza (mux) con contenuti multimediali aggiuntivi.

4

Segnale digitale terrestre

Broadcaster

TV

Set Top Box

Scenario applicativo

Xlet

Application Manager

Standard DVB

5

Lo standard DVB definisce le metodologie di trasmissione del segnale digitale in ambito televisivo. Tale standard rispetta le specifiche definite dall’ETSI (European Telecomunications Standards Institute).

In base al canale trasmissivo e al tipo di modulazione lo standard DVB si divide in alcuni sottostandard:

DVB-S (Satellite) DVB-T (Terrestrial) DVB-C (Cable) DVB-H (Handheld)

Standard di compressione MPEG-2

6

Lo standard di compressione audio/video MPEG-2 è alla base dello standard DVB-T per le trasmissioni televisive digitali le quali non sarebbero possibili senza una riduzione della quantità di dati per rappresentare le informazioni.

Composizione Transport Stream

7

Il Transport Stream è un flusso composto da più servizi ognuno dei quali è formato da uno o più eventi. Ogni evento è composto da stream elementari audio,video e dati codificati.

Tabelle PSI / SI

8

Gli standard DVB-SI e MPEG-2 definiscono delle tabelleinformative del transport stream relative ai servizi presenti, agli eventi e agli stream elementari componenti.

PAT – Program Association Table PMT – Program Map Table NIT – Network Information Table CAT – Conditional Access Table

BAT – Bouquet Association Table SDT – Service Description Table EIT – Event Information Table RST – Running Status Table TDT – Time Date Table TOT – Time Offset Table

Tabelle PSI (Program Specific Information)definite da MPEG-2

Tabelle SI (Service Information) definite da DVB-SI

Le tabelle EIT possono essere di due tipi: EIT present-follow: contengono le informazioni relative

all’evento attuale e successivo di un particolare servizio

Tabelle EIT

9

All’interno delle tabelle EIT vengono inserite leinformazioni relative agli eventi in programmazionesui servizi dello stesso transport stream.

EIT schedule: contengono informazioni relative agli eventi in programmazione entro un arco di tempo

Sezioni

10

Dimensione massima tabelle: 1024 byte tabelle PSI 4096 byte tabelle DVB-SI

Le sezioni di una tabella condividono campi che ne permettonola sua identificazione univoca:

table_id table_id_extension section_number version_number

Descrittori

Le tabelle EIT definiscono due descrittori per fornire informazioniaggiuntive sugli eventi:

short_event_descriptor extended_event_descriptor

Sono composti da tre elementi identificativi: { tag, lenght, content }

Standard DSMCC

11

Per la trasmissione di dati è stato definito lo standard DSMCC basato sullo stream MPEG-2. Tale standardè utilizzato quindi per trasmettere le applicazioni e le risorse ai ricevitori.

Percorso file immagineall’interno del filesystemtrasmesso in broadcast

Sezione tabella EIT definita durante la sperimentazione

Sistema trasmissivo OpenCaster

12

E’ possibile modificare i dati delle tabelle informative delTransport Stream attraverso un file di configurazione python fornito da OpenCaster.

OpenCaster è un framework open-source per lagestione del sistema trasmissivo per la tv digitale.

E’ composto da: un insieme di librerie scritte in linguaggio Python un insieme di strumenti (tool) scritti in C

Sistema trasmissivo OpenCaster

13

Comandi necessari per mandare in onda un transport stream:1.oc-update2.tscbrmuxer3.tsstamp4.DtPlay

tscbrmuxer permette di effettuare il multiplexing vero e proprio dei pacchetti TS ad un bit-rate predefinito e costante.

oc-update permette di trasformare un filesystem in un DSMCC object-carousel.

tsstamp permette di sincronizzare gli stream audio/video in baseal bitrate complessivo

DtPlay manda in onda il transport stream alla frequenza desiderata

Ambiente di sviluppo

14

JMAG

Analisi dei casi d’uso

15

Requisiti applicazione: guida televisiva dei canali presenti all’interno dello stesso mux e visualizzazione dei contenuti multimediali collegati agli eventi in programmazione.

Architettura applicazione “EPG-Client”

16

View Controller Model

EPG

API DVB-SI

17

Le richieste inviate allo stream tramite i metodi dellaAPI DVB SI sono asincrone.

retrieveActualSITransportStream retrieveSIServices retrieveSIPresent retrieveSIFollowing retrieveSISchedule retrieveSIDescriptors

Metodi presenti all’interno della API per il recuperodelle informazioni dalle tabelle PSI/SI:

18

SISuccessfulRetrieveEvent – richiesta allo stream DVB avvenuta correttamente

SILackOfResourceEvent – richiesta non completata per mancanza di risorse

SIRequestCancelledEvent – richiesta cancellataSITableNotFoundEventSIObjectNotInTableEvent informazione non trovataSINotInCacheEvent

API DVB-SI

La API è event-source poiché restituisce un evento per ogni richiesta effettuata allo stream. Gli eventi possono essere di due tipi: eventi di successo o eventi di insuccesso.

19

API DVB-SIPer ogni chiamata effettuata alla API sono stati creati dalla classe HandlerFactory degli oggetti ascoltatori che rimangono in attesa delle risposte relative ai dati informativi delle differenti tabelle.

• Handler1 – transport stream• Handler2 – servizi presenti• Handler3 – eventi• Handler4 – descrittori eventi

• costrutto java synchronized

Diagramma di sequenza recupero dati EPG

20

21

Diagramma di sequenza recupero dati EPG

22

Diagramma di sequenza recupero dati EPG

File multimediali della guida

23

I file multimediali trasmessi nello stream collegati aglieventi sono tre:

file immagine (.gif, .jpg o .png)

file audio (.mp2)

file xml di descrizione estesa

Restrizioni standard MHP

Dimensioni limitatetabella EIT

Struttura file xml

24

<?xml version="1.0" encoding="UTF-8"?> <descrizione>

<trama> </trama><cast> </cast><regista> </regista><recensioni>

<recensione><autore> </autore><desc> </desc>

</recensione>…

</recensioni><info> </info><curiosita> </curiosita>

</descrizione>

UTF-8: codifica standard che comprendeun set completo di caratteri inclusi caratteri speciali e lettere accentate.

Recupero file dallo stream

25

L’accesso al filesystem trasmesso in broadcast è stato fondamentale per il recupero dei file multimediali di interesse.

• API Davic• API DSMCC

Parser NanoXML

26

Caratteristiche:• utilizzabile in sistemi embedded (KVM o J2ME)• parser Java di piccole dimensioni• veloce per piccoli documenti

Nell’applicazione è stata utilizzata la versione 1.6 poiché la2.1 più compatta (6KB) e veloce è risultata incompatibile con alcuni STB.

E’ una libreria Java utilizzata per effettuare il parsing di fileXml.

Selezione servizio

27

Un servizio a livello logico è visto come una collezione di informazioni di servizio, stream audio/video e applicazioni che possono essere presentate insieme come un’entità coerente.

28

Selezione servizioServiceContext è la classe che rappresenta l’ambiente in cui tali servizi sono presentati.

29

Diagramma di sequenza selezione servizio

• API JavaTV Service Selection

Dimostrazione EPG-Client

30

Risultati sperimentali

31

DiPro Interact I

Humax Combo 9000

Elsag Aries 1000H

TelesystemTS7900HD

Funzionamento applicazione EPG-Client

Applicazione EPG - Schedule

32

E’ stata sviluppata inoltre un’altra applicazione con la stessa struttura di EPG-Client per il recupero delle informazioni suglieventi in programmazione entro un arco di tempo compreso fra due date.

retrieveSIPresentretrieveSIFollowing retrieveSISchedule

Metodi API DVB SI:

DiPro Interact I

Humax Combo 9000

Elsag Aries 1000H

TelesystemTS7900HD

SILackOfResourceSISuccessfulRetrievalEventcontenente solo il primo evento

SISuccessfulRetrievalEvent

RetrieveSISchedule RetrieveSIActualTransportStream

Genericevent of failure

Applicazione lato server – “Guida TV” per la generazione del

file di configurazione python

33

Conclusioni

34

Limiti dello standard DVB-SI: le tabelle EIT non forniscono un descrittore specifico

per i contenuti multimediali della guida le tabelle sono limitate in dimensioni per questo è

stato necessario trasmettere le informazioni aggiuntive attraverso un file xml in broadcast

Applicazione EPG-Client per la visualizzazione degli eventi attuale e successivo dei canali entro il mux comprensivi dei contenuti multimediali

STB Telesystem non implementa la API DVB-SI metodo retrieveSISchedule restituisce risposte differenti

su ogni STB

Sviluppi futuri

35

Meccanismo automatico per la modifica delle tabelle EIT-present follow al termine di un evento su un canale televisivo

Creazione di un database per l’inserimento di eventi entro un arco di tempo dei canali televisivi di un’emittente tv.