Professional Documents
Culture Documents
Teixeira
Giliard de Freitas Erick Melo
Propiciar condies para que os alunos possam entender, de maneira ampla os principais conceitos envolvidos nos diversos nveis de arquitetura de um sistema de TV Digital; Propiciar ao aluno condies para o desenvolvimento de habilidades para a concepo e construo de aplicaes interativas com sincronizao de mdias para tv digital;
Arquitetura de sistemas de TV Digital terrestre Middleware para tv digital Linguagens declarativas para TV Digital Linguagens imperativas para TV Digital
http://www.forumsbtvd.org.br/ http://www.ncl.org.br/ http://www.ncl.org.br/documentos/JAI2008.pdf http://www.ginga.org.br/ Interactive TV Standards: a guide to MHP, OCAP and JavaTV, Steven Morris e Anthony Smith-Chaigneau. http://www.tvwithoutborders.com/book
Telecomunicaes Hardware Compresso e Codificao de udio e vdeo Middleware Aplicaes (novidades) Interface com usurio Produo / Programao Negcios / Gesto
Proprietrios: OpenTV, NDS, Canal+, PowerTV, Microsoft MHP (Multimedia Home Platform), um projeto DVB (Digital Video Broadcast) 3 anos frente do OCAP (OpenCable Application Platform) e do ACAP (Advanced Common Application Platform). GEM (Globally Executable MHP) GINGA (ISDTV-T- International System for Digital TV)
Ou Java + Linguagem Declarativa? NCL Smil BML XHTML Ginga: NCL + Lua + JavaDTV
Mais canais Melhor qualidade da imagem (at HDTV: high definition TV resolution, 1366x768 pixels versus 720x480 usado no SDTVstandard definition DTV) Melhor qualidade do som Servios adicionais e novas aplicaes
T-commerce T-learning T-banking Propaganda interativa Interatividade com shows Estatsticas (esportes)
Servios mveis (carro, nibus, metro) Tela mais ampla (16:9) Transmisses em mltiplas lnguas e com legendas Sinopse de programas Agendamento de programas Guia de programao eletrnica TV Personalizada (gravador de vdeo pessoal, payper-view, video-on-demand) Jogos e muito mais
Evoluo x revoluo Revoluo: TV preto e branco colorida (vendas cresceram a taxas enormes) DTV por satlite j existe h muito tempo. Pouca evoluo. Talvez HDTV e novos servios com canal de retorno barato possa acelerar a evoluo.
Captura Compresso Empacotamento Transporte Multiplexao Randomizao para disperso de energia Correo de erros Modulao Difuso (cabo, satlite, terrestre) Mobilidade (oportunidades de negcios) Acesso ao contedo (tv por assinatura) Canal de retorno: consideraes tcnicas e comerciais
Converso do sinal analgico capturado pela cmera em valores digitais. Compresso: bit rate para SDTV, sem compresso, na ordem de 160 Mbits/segundo. MPEG (Moving Picture Experts Group ISO) DTV: MPEG-2 SDTV: 3 a 15Mbits/s (tpico: 4 a 5) ISDTV: MPEG-4 !! Estudo aprofundado MPEG: fora do escopo.
Elementary streams ES: stream que representa um nico fluxo, de udio ou de vdeo. TV: uma ES para vdeo e outra para dois canais de udio ES: fluxo contnuo de informao, difcil de manipular quebrar em pacotes. Cada pacote PES (packetized elementary stream) inclui time stamp, ID (tipo de contedo e codificao) e informaes de sincronizao. Tamanho: alguns kilobytes. Protocolo de transporte: MPEG-2 (inclusive ISDTV)
Program stream: carrega informaes de um nico programa (mltiplos ngulos de cmeras, mltiplas linguagens, ). Ex: DVD Transport stream (DTV): carrega diversos programas, diversos canais DTV, carrega diversos servios ou canais, como so conhecidos na nomenclatura MPEG. (precisa ser mais robusto p/ superar erros) Multiplexar mais que um servio em uma transport stream significa multiplexar as PES utilizadas por esses servios. (fig )
PID: identifica a que PES pertence cada pacote SI- service information: informa como PES so organizadas em servios ; dados sobre o servio para serem exibidos ao usurio; parmetros de servios
-Quebra PES em pacotes de 188 bytes; atribui PID a cada PES; transmite - Anlise da complexidade da cena e alocao de banda para melhor aproveitamento bit rate varivel
Satlite: abrange vasta regio; poucas restries geogrficas; susceptibilidades condies do tempo; comeando a oferecer canal de retorno; pode transmitir sinais de diferentes operadoras. Cabo: pode oferecer banda mais larga, tanto para download como p/ canal de retorno (servios interativos); custo elevado para reas remotas ou de difcil acesso; privado: uma operadora por rede. Terrestre: servios mveis (ex: TVMobile Singapura); problemas de recepo em algumas reas; reutilizao do espectro em diferentes regies; menor largura de banda (8MHz tem capacidade para distribuir 5 ou 6 canais DTV num total de 24 Mbits/s.
Vantagens e desvantagens de se utilizar a internet como canal de retorno viewer number is what makes money in the TV world, not viewrs leaving their TV to go do something else. Enhanced broadcast: Interao entre o usurio e o receptor, interao local Interactive broadcast: walled garden web access; quiz; chat, etc. Internet TV: Interatividade total; requer, eventualmente, banda larga.
TV no computador
Tela de menor resoluo Distncia entre o usurio e a tela maior Componentes visuais pouco sofisticados Sistema de transmisso em broadcasting Assistncia coletiva Geralmente hardware limitado Dispositivos para entrada de dados limitados
Controle Remoto
1817 Selnio 1932 Primeira TV Eletrnica 1950 (dcada) TV no Brasil; TV a cabo; TV a cores (NTSC) 1960 (dcada) PAL; SECAM; Videotape; Testes no Brasil para adoo de
um sistema colorido 1972 PAL-M
1980 (dcada) HDTV no Japo 1990 (dcada) DVB (1993), ATSC (1998), ISDB (1999)
SOARES (2008)
SOARES (2008)
SOARES (2008)
SOARES (2008)
Vantagens:
Conservao da qualidade; Livre de fantasmas e chuviscos; Multiprogramao; Dispensa o canal livre entre dois canais; Interatividade
Possibilidades:
T-gov T-commerce T-banking T-learning
SOARES (2008)
Arquitetura de Hardware
CPU Processador grfico Memria RAM e ROM Unidade(s) de armazenamento Interface(s) de comunicao
Arquitetura de Software
Sistema Operacional Middleware Camada de Aplicao
Componentes:
Luminncia (Y) Crominncia (Cb/Cr)
Desafios
Transmisso Processamento Memria
Com MPEG-2: 20 Mb/s = 1 canal HD Com H.264: 20 Mb/s = 1 canal HD (10 Mb/s) + 3 SD (2.5 Mb/s)
24 Mbits = 1 frame 720 Mbits = 1 segundo
10 Mbits = 1 segundo
Desafios
Transmisso Processamento Memria
Implicaes
Implementao de algoritmos especficos para decodificao (h.264) (HW ou SW???)
Paralelismo (SO, aplicaes, decodificao, demultiplexao, formatao, etc) Desempenho Confiabilidade Consumo de energia
Software = + ciclos de clock = + energia
Local
Todo o contedo enviado via broadcasting; Usurio interage com uma aplicao, que apresenta diversas configuraes previamente programadas; Exemplos: legendas, guias de programao, enquetes
Plena
Demanda o uso do canal de retorno; Aplicaes acessam outros servios via canal de retorno Contedo personalizado (unicasting); Exemplos: compras, homebanking
Telefonia fixa Telefonia mvel Rdio Satlite Energia Eltrica (PLC) WiMAX
Domiclios:
47,56 millhes
Televiso:
Rdio: Telefone celular: Telefone fixo: Computador:
95.7%
91.6% 61,2% 54.0% 16.91%
Acesso Internet :
Acesso Internet (Computador): TV a cabo:
21.0%
10.08% 5.6%
Suporte a sincronizao
Sincronizao baseada na estrutura Suporte a canal de retorno Suporte sincronizao
Suporte a mltiplos dispositivos Suporte a adaptao de contedo e programao Suporte a edio ao vivo
DASE
MPEG-2 HDTV
MHP
MPEG-2 SDTV
ARIB
MPEG-2 HDTV
Transporte Transmisso
Privilegia a TV de Privilegia a TV de alta definio, a alta definio, a recepo mvel e recepo mvel e porttil porttil
70
ENTITY
NODE
ANCHOR
LINK
NCORA: Regio
Privilegia a interatividade em detrimento da sincronizao e da adaptabilidade de contedo Sincronizao e adaptabilidade por meio de scripts procedurais (ECMAScripts)
Interao do usurio como um caso particular de sincronismo Suporte a adaptabilidade e mltiplos dispositivos de exibio
NCL SMIL
Uma linguagem declarativa deve tambm oferecer suporte a objetos que contm cdigo imperativo. NCL permite:
Aplicaes HTML com cdigo ECMASCript NCLet (objetos com cdigo Java Xlet) NCLua (objetos com cdigo Lua)
Lua simples e poderosa; Lua portvel; Lua embeddable; Lua rpida; Lua robusta; Lua software livre.
ENTITY
Entidade: Identificador
NODE
ANCHOR
LINK
NCORA: Regio
INTERFACE
PROPERTY
ANCHOR
ENTITY
NODE
INTERFACE
LINK
ENTITY
NODE
INTERFACE
LINK
MEDIA
TEXT
IMAGE
VIDEO
ENTITY
NODE
INTERFACE
LINK
CONNECTOR
MEDIA
TEXT
IMAGE
VIDEO
ENTITY
NODE
INTERFACE
LINK
CONNECTOR
MEDIA
TEXT
IMAGE
VIDEO
ENTITY
NODE
INTERFACE
LINK
CONNECTOR
MEDIA
COMPOSITION TEXT IMAGE VIDEO
ENTITY
NODE
INTERFACE
LINK
CONNECTOR
MEDIA
COMPOSITION TEXT IMAGE VIDEO
CONTEXTO: Conjunto de Ns Conjunto de Elos
CONTEXT
INTERFACE
PROPERTY
PORT
ANCHOR
ENTITY
NODE
INTERFACE
LINK
CONNECTOR
MEDIA
COMPOSITION TEXT IMAGE VIDEO
SWITCH: Conjunto de Ns Conjunto de Regras
CONTEXT
SWITCH
INTERFACE
PROPERTY
SWITCH PORT
PORT
ANCHOR
ENTITY
REGION
DESCRIPTOR
NODE
INTERFACE
LINK
CONNECTOR
MEDIA
COMPOSITION
CONTEXT
SWITCH
Arquivo local Arquivo remoto (http, rtp, rstp) Fluxo elementar (sbtvd-ts) Alguns tipos de mdia
Texto (HTML, TXT, XML, SRT) Imagem (BMP, PNG, GIF, JPG) Audio (MP3, WAV, MP4) Video (MPEG4, MPEG2) Codigo procedural (lua, java)
Um evento uma ocorrncia no tempo que pode ser instantnea ou durar um perodo de tempo
Evento de apresentao Evento de seleo Evento de atribuio
PAUSED
stop | abort
pause start PREPARED stop (natural end) | abort
start | resume
OCCURRING
Connector:
Homem casado com mulher
Roles: homem, mulher Glue Expression: casado com
Connector:
Homem casado com mulher
Roles: homem, mulher Glue Expression: casado com
Link:
Joo casado com Maria
Bind: Joo = Homem Bind: Maria = Mulher Connector: homem casado com mulher
Connector:
media1 onBeginStart media2
Roles: media1, media2 Glue Expression: onBeginStart
Link:
video1 onBeginStart image1
Bind: video1 = media1 Bind: image1 = media2 Connector: media1 onBeginStart media2
Bind = Node + Interface
<?xml version= 1.0 encoding=ISO-8859-1?> <ncl id=identificador <head> </head> <body> </body> </ncl>
VDEO
UDIO
IMAGEM
rgVideo1
dVideo1
VDEO
dVideo1
rgVideo1
VIDEO1
AUDIO1
IMG1
<?xml version= 1.0 encoding=ISO-8859-1?> <ncl id=identificador <head> </head> <body> </body> </ncl>
<body>
</regionBase> <descriptorBase>
</descriptorBase> <connectorBase>
Todo elemento NCL deve possuir um identificador nico em todo o documento Exemplo:
<region id=video1/> <media id=video1/>
Dimenses
Width, height
Unidades: pixels ou %
Sobreposio
zIndex (quanto maior, mais no topo)
<head> <regionBase> <region id=rgTV left=0 top=0 width=100% height=100%> <region id=rgVideo left=10 top=10 width=600 height=600/> </region> </regionBase> </head>
dVideo1
<head> <descriptorBase> <descriptor id=dImagem1 region=rgImagem1/> </descriptor id=dVideo1 region=rgVideo1> <descriptorParam name=soundLevel value=1/> </descriptor> </descriptorBase> </head>
dVideo1
Exemplos de parmetros:
top, left, bottom, right, height, width bounds (valores para left, top, width, height) background (ex: white, black, green) visible (true, false) transparency (0= opaco, 1=transparente) fit (opes de preenchimento da regio) scroll (barra de rolagem) soundLevel (0=mudo, 1=volume original)
dVideo1
VIDEO1
<body> <media id=imagem1 type=image/png src=image1.png descriptor=dImagem1/> <media id=video1 src=rtp://SERVIDOR/video1.mpg descriptor=dVideo1/> <media id=videoPrincipal refer=video1/>
</body>
VIDEO1
VIDEO1
A1 A2
ncora 1: 10 a 15 segundos
ncora 1: 20 a 27 segundos
Alguns Atributos
shape (rect, circle, poly) coords (coordenadas em pixels da ncora espacial)
If shape= rect : X , Y , width , height If shape=cricle: Xcenter , Ycenter , radius If shape=poly: X1 , Y1 , X2 , Y2 , ... , XN , YN
VIDEO1
A2
<body> <media id=video1 src=video1.mpg descriptor=dVideo1> <area id=a1 begin=10s end=15s/> <area id=a2 begin=20s end=27s/> </media> </body>
A1
A2
VIDEO1
<body id=programa1>
<context id=bloco1> ... </context>
<head> <ruleBase> <rule id=rEn var=idioma op=eq value=en/> <rule id=rPt var=idioma op=eq value=pt/> </ruleBase> ... </head> <body> <media type=application/x-ginga-settings id=nodeSettings> <property name=idioma/> </media>
</body>
<head> <ruleBase> <rule id=rEn var=idioma op=eq value=en/> <rule id=rPt var=idioma op=eq value=pt/> </ruleBase> </head> <body> <switch id=switchAudio> <bind rule=rEn constituent=audioEn/> <bind rule=rPt constituent=audioPt/> <media id=audioEn src=en.mp3 descriptor=dAu/> <media id=audioPt src=pt.mp3 descriptor=dAu/> </switch> </body>
<body id=programa1> <context id=bloco1> <port id=pInicioBloco1 component=video1/> <media id=video1 src=video1.mpg ... /> </context>
<context id=comercial1> <port id=p2 component=cena1 interface=p3/> <context id=cena1> <port id=p3 component=video3/> </context> </context>
</body>
VIDEO1
AUDIO1
IMG1
VIDEO1
onEnd A Start B
AUDIO1
C onBegin Start D
IMG1
<body id=programa1>
<link id=lOnEndVideo1StartAudio1 xConnector=onEndStart> <bind component=video1 role=onEnd> <bind component=audio1 role=Start> </link> <link id=lOnBeginAudio1StartImg1 xConnector=onBeginStart> <bind component=audio1 role=onBegin> <bind component=start role=Start> </link>
</body>
Conectores costumam ser genricos. possvel reusar uma base externa de conectores.
<head>
<connectorBase> <importBase alias=connectors documentURI=connectors.xml/> </connectorBase>
</head>
<body id=programa1>
<link id=lOnEndVideo1StartAudio1 xconnector=connectors#onEndStart> <bind component=video1 role=onEnd> <bind component=audio1 role=Start> </link> <link id=lOnBeginAudio1StartImg1 xconnector=connectors#onBeginStart> <bind component=audio1 role=onBegin> <bind component=start role=Start> </link>
</body>
AUDIO1
IMG1
IMG2
onAttribution
attribution
VIDEO
dVideo
<ncl id=exemplo01> <head> <regionBase> <region id=rgVideo1 left=25% top=25% width=50% height=50%/> </regionBase>
</head> </ncl>
<ncl id=exemplo01> <head> <regionBase> <region id=rgVideo1 left=25% top=25% width=50% height=50%/> </regionBase>
<descriptorBase> <descriptor id=dVideo1 region=rgVideo1/> </descriptorBase>
</head> </ncl>
dVideo1
<ncl id=exemplo01> <head> <regionBase> <region id=rgVideo1 left=25% top=25% width=50% height=50%/> </regionBase> <descriptorBase> <descriptor id=dVideo1 region=rgVideo1/> </descriptorBase> </head> <body> <media id=video1 src=video1.mpg descriptor=dVideo1/> </body> </ncl>
VIDEO1
<ncl id=exemplo01> <head> <regionBase> <region id=rgVideo1 left=25% top=25% width=50% height=50%/> </regionBase> <descriptorBase> <descriptor id=dVideo1 region=rgVideo1/> </descriptorBase> </head> <body> <port id=pInicio1 component=video1/> <media id=video1 src=video1.mpg descriptor=dVideo1/> </body> </ncl>
Conector (connector)
onBegin A Start B
VIDEO1
A onEnd B Stop
IMG1
PAUSED
stop | abort
pause start PREPARED stop (natural end) | abort
start | resume
OCCURRING
<ncl id=exemplo02> <head> <regionBase> <region id=rgVideo1 left=25% top=25% width=50% height=50%/> <region id=rgImg1 left=0 top=0 width=25% height=25%/> </regionBase>
</head> </ncl>
<ncl id=exemplo02> <head> <regionBase> <region id=rgVideo1 left=25% top=25% width=50% height=50%/> <region id=rgImg1 left=0 top=0 width=25% height=25%/> </regionBase> <descriptorBase> <descriptor id=dVideo1 region=rgVideo1/> <descriptor id=dImg1 region=rgImg1/> </descriptorBase> </head> </ncl>
dVideo1
dVideo2
<ncl id=exemplo02> <head> ... <connectorBase> <importBase alias=connectors documentURI=connectors.xml/> </connectorBase> </head> <body> ... </body> </ncl>
<ncl id=exemplo02> <head> ... </head> <body> <port id=pInicio1 component=video1/> <media id=video1 src=video1.mpg descriptor=dVideo1/> <media id=img1 src=img1.png descriptor=dImg1/> </body> </ncl>
VIDEO1
IMG1
<body>
... <link id=lOnBeginVideo1StartImg1> xconnector=connectors#onBegin1StartN> <bind component=video1 role=onBegin/> <bind component=img1 role=start/> </link> <link id=lOnEndVideo1StopImg1> xconnector=connectors#onEnd1StopN> <bind component=video1 role=onEnd/> <bind component=img1 role=stop/> </link> ... </body>
VIDEO1
IMG1
VIDEO1
A2 A onEnd B Stop
IMG1
onBegin A Start B
IMG2
A
onEnd B Stop
VIDEO1
A1 A2
ncora 1: 10 a 15 segundos
ncora 1: 20 a 27 segundos
Alguns Atributos
shape (rect, circle, poly) coords (coordenadas em pixels da ncora espacial)
If shape= rect : X , Y , width , height If shape=cricle: Xcenter , Ycenter , radius If shape=poly: X1 , Y1 , X2 , Y2 , ... , XN , YN
<ncl id=exemplo03> <head> <regionBase> <region id=rgVideo1 left=25% top=25% width=50% height=50%/> <region id=rgImg1 left=0 top=0 width=25% height=25%/> </regionBase> </head> </ncl>
<ncl id=exemplo03> <head> <regionBase> <region id=rgVideo1 left=25% top=25% width=50% height=50%/> <region id=rgImg1 left=0 top=0 width=25% height=25%/> </regionBase> <descriptorBase> <descriptor id=dVideo1 region=rgVideo1/> <descriptor id=dImg1 region=rgImg1/> </descriptorBase> </head> </ncl>
dVideo1
dVideo2
<ncl id=exemplo02> <head> ... <connectorBase> <importBase alias=connectors documentURI=connectors.xml/> </connectorBase> </head> <body> ... </body> </ncl>
<ncl id=exemplo03> <head> ... </head> <body> <port id=pInicio1 component=video1/> <media id=video1 src=video1.mpg descriptor=dVideo1/> <media id=img1 src=img1.png descriptor=dImg1/> <media id=img2 src=img2.png descriptor=dImg1/> </body> </ncl>
VIDEO1
IMG1
IMG2
<ncl id=exemplo03> <head> ... </head> <body> <port id=pInicio1 component=video1/> <media id=video1 src=video1.mpg descriptor=dVideo1> <area id=a1 begin=10s end=15s/> <area id=a2 begin=20s end=27s/> </media> ... </body> </ncl>
A1
A2
VIDEO1
<link id=lOnBeginVideo1A1StartImg1/> xconnector=connectors#onBegin1StartN> <bind component=video1 interface=a1 role=onBegin/> <bind component=img1 role=start/> </link> <link id=lOnEndVideo1A1StopImg1/> xconnector=connectors#onEnd1StopN> <bind component=video1 interface=a1 role=onEnd/> <bind component=img1 role=stop/> </link>
VIDEO1 A1
IMG1
<link id=lOnBeginVideo1A2StartImg2/> xconnector=connectors#onBegin1StartN> <bind component=video1 interface=a2 role=onBegin/> <bind component=img2 role=start/> </link> <link id=lOnEndVideo1A2StopImg2/> xconnector=connectors#onEnd1StopN> <bind component=video1 interface=a2 role=onEnd/> <bind component=img2 role=stop/> </link>
VIDEO1 A2
IMG2
Cdigo de teclas
RED, GREEN, YELLOW, BLUE VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN VK_ENTER 1,2,3,4,5,6,7,8,9,0 MENU
<link id=lSelecaoVermelho/> xconnector=connectors#onKeySelectionAbortN> <bind component=botaoVermelho role=onSelection> <bindParam name=keyCode value=RED/> </bind> <bind component=video1 role=abort/> <bind component=botaoVermelho role=abort/>
</link>
Reproduzir um vdeo em LOOP at que o usurio pressione o boto VERMELHO e redimensionar o vdeo caso o boto VERDE seja apertado.
Reproduz um vdeo em LOOP at que o usurio pressione o boto VERMELHO e redimensiona o vdeo caso o boto VERDE seja apertado.
<media id=video1 src=video1.mpg descriptor=dVideo1> <property name=bounds/> </media> <link id=resizeVideo1 xconnector=onSelectionSetN> <bind component=botaoVermelho role=onSelection> <bindParam name=keyCode value=RED/> </bind> <bind component= video1 interface=bounds role=set> <bindParam name=var value=10,10,100,100/> </bind> </link>
Todas aes devero ocorrer em sequncia, conforme descrio textual. Requisito: pelo menos 2 mdias para cada uma das duas ltimas sentenas.
O programa inicia com um vdeo e um menu com 3 botes de opo. A navegao entre os botes do menu feita com as setas direcionais (para cima e para baixo). A seleo de um dos botes feita com o boto OK do controle remoto.
Ao pressionar OK (com o foco em um dos 3 botes), o vdeo e o menu so pausados e um texto com a opo selecionada exibido.
<descriptorBase> <descriptor id=dVideo1 rg=rgVideo1/> <descriptor id=dOpcao1 rg=rgOpcao1 focusIndex=1 moveDown=2 focusBorderWidth=0 focusSrc=opcao1.png/> <descriptor id=dOpcao2 rg=rgOpcao2 focusIndex=2 moveDown=3 moveUp=1 focusBorderWidth=0 focusSrc=opcao2.png/> </descriptorBase>
Este material foi desenvolvido com base no material fornecido pela PUC-Rio na oficina de formao de tutores do Projeto Ginga Brasil (2008) e no material relacionado a TV Digital do Dia de Java (2008) UFSCar. Agradecimentos:
Prof. Luiz Fernando Gomes Soares (PUC-Rio) Prof. Carlos de Salles Soares Neto (PUC-Rio) Prof. Simone D.J.Barbosa (PUC-Rio) Giliard Brito de Freitas (UFSCar) Paulo Muniz de vila (UFSCar)
http://lince.dc.ufscar.br http://www.softwarepublico.gov.br