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
Studio e sviluppo di un’applicazione MHP per la realizzazione di una guida tv (EPG) evoluta
1. Studio e sviluppo di un’applicazione
MHP per la realizzazione di una
guida tv (EPG) evoluta
Tesi di laurea di
Marco Bartolozzi
Relatori:
Prof. Alessandro Piva
Dr. Roberto Caldelli
Ing. Rudy Becarelli
Dr. Paolo Mazzanti
Ing. Matteo Casini 08 Aprile 2011
2. 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
3. EPG
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.
3
4. Obiettivo
Sviluppare un’applicazione Java MHP di EPG dei canali
trasmessi ad una stessa frequenza (mux) con contenuti
multimediali aggiuntivi.
Scenario applicativo
Segnale digitale
terrestre
Broadcaster
TV
Xlet
Set Top Box Application
Manager
4
5. Standard DVB
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)
5
6. Standard di compressione
MPEG-2
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.
6
7. Composizione Transport Stream
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.
7
8. Tabelle PSI / SI
Gli standard DVB-SI e MPEG-2 definiscono delle tabelle
informative del transport stream relative ai servizi presenti,
agli eventi e agli stream elementari componenti.
PAT – Program Association Table
PMT – Program Map Table Tabelle PSI (Program
NIT – Network Information Table Specific Information)
CAT – Conditional Access Table definite da MPEG-2
BAT – Bouquet Association Table
SDT – Service Description Table Tabelle SI (Service
EIT – Event Information Table Information) definite
RST – Running Status Table
TDT – Time Date Table
da DVB-SI
TOT – Time Offset Table
8
9. Tabelle EIT
All’interno delle tabelle EIT vengono inserite le
informazioni relative agli eventi in programmazione
sui servizi dello stesso transport stream.
Le tabelle EIT possono essere di due tipi:
EIT present-follow: contengono le informazioni relative
all’evento attuale e successivo di un
particolare servizio
EIT schedule: contengono informazioni relative agli
eventi in programmazione entro un
arco di tempo
9
10. Sezioni
Le sezioni di una tabella condividono campi che ne permettono
la sua identificazione univoca:
table_id
table_id_extension Dimensione massima tabelle:
section_number 1024 byte tabelle PSI
version_number 4096 byte tabelle DVB-SI
Descrittori
Sono composti da tre elementi identificativi: { tag, lenght, content }
Le tabelle EIT definiscono due descrittori per fornire informazioni
aggiuntive sugli eventi:
short_event_descriptor
extended_event_descriptor
10
11. Standard DSMCC
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.
11
12. Sistema trasmissivo OpenCaster
Sezione tabella EIT definita durante la sperimentazione
OpenCaster è un framework open-source per la
gestione 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
Percorso file immagine
all’interno del filesystem
trasmesso in broadcast
E’ possibile modificare i dati delle tabelle informative del
Transport Stream attraverso un file di configurazione python
fornito da OpenCaster.
12
13. Sistema trasmissivo OpenCaster
Comandi necessari per mandare in onda un transport stream:
1.oc-update
2.tscbrmuxer
3.tsstamp
4.DtPlay
oc-update permette di trasformare un filesystem in un DSMCC
object-carousel.
tscbrmuxer permette di effettuare il multiplexing vero
e proprio dei pacchetti TS ad un bit-rate predefinito e costante.
tsstamp permette di sincronizzare gli stream audio/video in base
al bitrate complessivo
DtPlay manda in onda il transport stream alla frequenza desiderata
13
15. Analisi dei casi d’uso
Requisiti applicazione: guida televisiva dei canali presenti
all’interno dello stesso mux e visualizzazione dei contenuti
multimediali collegati agli eventi in programmazione.
15
17. API DVB-SI
Le richieste inviate allo stream tramite i metodi della
API DVB SI sono asincrone.
Metodi presenti all’interno della API per il recupero
delle informazioni dalle tabelle PSI/SI:
retrieveActualSITransportStream
retrieveSIServices
retrieveSIPresent
retrieveSIFollowing
retrieveSISchedule
retrieveSIDescriptors
17
18. 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.
SISuccessfulRetrieveEvent – richiesta allo stream DVB
avvenuta correttamente
SILackOfResourceEvent – richiesta non completata
per mancanza di risorse
SIRequestCancelledEvent – richiesta cancellata
SITableNotFoundEvent
SIObjectNotInTableEvent informazione non trovata
SINotInCacheEvent
18
19. API DVB-SI
Per 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
19
23. File multimediali della guida
I file multimediali trasmessi nello stream collegati agli
eventi sono tre:
file immagine (.gif, .jpg o .png)
Restrizioni standard
file audio (.mp2) MHP
file xml di descrizione estesa Dimensioni limitate
tabella EIT
23
24. Struttura file xml
<?xml version="1.0" encoding="UTF-8"?>
<descrizione>
<trama> </trama>
<cast> </cast> UTF-8: codifica standard che comprende
<regista> </regista> un set completo di caratteri inclusi
caratteri speciali e lettere accentate.
<recensioni>
<recensione>
<autore> </autore>
<desc> </desc>
</recensione>
…
</recensioni>
<info> </info>
<curiosita> </curiosita>
</descrizione>
24
25. Recupero file dallo stream
L’accesso al filesystem trasmesso in broadcast è stato
fondamentale per il recupero dei file multimediali di interesse.
• API Davic
• API DSMCC
25
26. Parser NanoXML
E’ una libreria Java utilizzata per effettuare il parsing di file
Xml.
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é la
2.1 più compatta (6KB) e veloce è risultata incompatibile con
alcuni STB.
26
27. Selezione servizio
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.
27
32. Applicazione EPG - Schedule
E’ stata sviluppata inoltre un’altra applicazione con la stessa
struttura di EPG-Client per il recupero delle informazioni sugli
eventi in Iprogrammazione entro unElsag 1000H
DiPro
Interact
Humax
Combo 9000
Telesystem
arco di tempo compreso fra
Aries TS7900HD
due date.
Metodi API DVB SI:
RetrieveSISchedule RetrieveSIActual
retrieveSIPresent TransportStream
retrieveSIFollowing retrieveSISchedule
SISuccessfulRetrie
SILackOfResource valEvent SISuccessful Generic
contenente solo il RetrievalEvent event of
primo failure
evento
32
34. Conclusioni
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
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
34
35. Sviluppi futuri
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.
35