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

35
Relatori: Studio e sviluppo di un’applicazione MHP per la realizzazione di una guida tv (EPG) evoluta Tesi di laurea di Marco Bartolozzi Prof. Alessandro Piva Dr. Roberto Caldelli Ing. Rudy Becarelli Dr. Paolo Mazzanti Ing. Matteo Casini 08 Aprile 2011

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

Page 1: 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

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

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

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

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.

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

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

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

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)

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

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.

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

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.

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

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

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

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

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

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 }

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

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.

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

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

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

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

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

Ambiente di sviluppo

14

JMAG

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

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.

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

Architettura applicazione “EPG-Client”

16

View Controller Model

EPG

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

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:

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

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.

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

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

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

Diagramma di sequenza recupero dati EPG

20

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

21

Diagramma di sequenza recupero dati EPG

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

22

Diagramma di sequenza recupero dati EPG

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

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

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

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.

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

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

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

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.

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

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.

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

28

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

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

29

Diagramma di sequenza selezione servizio

• API JavaTV Service Selection

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

Dimostrazione EPG-Client

30

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

Risultati sperimentali

31

DiPro Interact I

Humax Combo 9000

Elsag Aries 1000H

TelesystemTS7900HD

Funzionamento applicazione EPG-Client

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

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

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

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

file di configurazione python

33

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

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

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

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.