Beruflich Dokumente
Kultur Dokumente
Guilherme Nogueira
guilherme@inf.ufes.br
Magnos Martinello
magnos@inf.ufes.br
Giovanni Comarela
gcomarela@inf.ufes.br
Jos Gonalves P. Filho
zegonc@inf.ufes.br
ABSTRACT
General Terms
Keywords
Ginga, Middleware, SBTVD, Android OS, TV Digital, DTV
1.
INTRODUO
RESUMO
Hoje j existem no Brasil aparelhos que permitem a recepo do
sinal de TV digital. No entanto, estes dispositivos no esto equipados com o Ginga, middleware adotado pelo Sistema Brasileiro
de Televiso Digital - SBTVD, o que inviabiliza a execuo de
contedo multimdia interativo. Este trabalho descreve uma implementao do Ginga-NCL para dispositivos portteis baseados
no sistema operacional Android. Como meio de validar a implementao, foram conduzidos experimentos para analisar a execuo de aplicaes NCL, bem como o uso de recursos do dispositivo
porttil. Alm disso, o ambiente desenvolvido permite avaliar a
transmisso e recepo de aplicaes NCL por meio do protocolo
padronizado DSM-CC sobre IP.
43
2.
dispositivos portteis. O Ginga-NCL, parte declarativa do middleware, possui o profile Basic DTV, utilizado para dispositivos
portteis, especificado em [2]. Alm de utilizado no padro brasileiro de TV digital, o Ginga-NCL padronizado atravs da recomendao H.761 do ITU-T [12] como middleware para aplicaes
multimdia em IPTV, provendo interoperabilidade e harmonizao
entre os distintos frameworks para desenvolvimento destas aplicaes.
No trabalho [7], foi apresentada uma implementao do middleware Ginga para dispositivos portteis baseados no sistema operacional Symbian. Trata-se da primeira implementao de referncia do Ginga-NCL para dispositivos portteis e, como tal, possui
uma descrio estendida sobre o padro e trabalhos relacionados. O
artigo tem seu foco na descrio da arquitetura e na implementao
do middleware, no apresentando testes experimentais sobre a plataforma desenvolvida. Na poca de desenvolvimento do trabalho
no existiam plataformas abertas amplamente disponveis, como
o caso do sistema Android, motivo pelo qual, apesar de ressaltar a
vantagem de se utilizar uma plataforma aberta e livre, escolheu-se
o sistema fechado Symbian1 para desenvolvimento.
O presente trabalho distingue-se dos anteriores ao apresentar no
apenas uma implementao do Ginga-NCL em sistema Android,
mas tambm efetuando um conjunto de experimentos realizados
sobre a plataforma, complementando as discusses iniciadas em
[7], particularmente por meio de uma anlise aprofundada da execuo de aplicaes NCL em dispositivos portteis.
TRABALHOS RELACIONADOS
3.
3.1
Arquitetura
44
tre a Mquina de Apresentao e a API de decodificao de contedo dos exibidores, sendo que para cada exibidor existe um adaptador associado. Ainda como os Exibidores, os Adaptadores seguem uma padronizao de interface.
O Gerenciador Grfico realiza o controle da renderizao dos
objetos especificados na aplicao NCL, definindo as dimenses
e posicionamento destes objetos. O Gerenciador de Atualizaes, possui como principal caracterstica receber e instalar atualizaes de maneira independente sem interromper o funcionamento
do middleware, e o Gerenciador de Contexto, responsvel por
gerenciar o perfil de usurio e demais informaes contextuais.
No subsistema da mquina de apresentao, o principal componente o Formatador e seu papel consiste em direcionar todas
as aes a serem executadas. Inicialmente o Formatador solicita
ao Conversor que processe a aplicao NCL. O resultado desta
converso uma rvore de execuo denominada Base Privada. A
gerncia de todas as bases presentes no middleware feita pelo
componente Gerenciador de Bases Privadas.
Aps receber esta estrutura de dados, o Formatador dispara a
execuo do Escalonador, cuja responsabilidade gerir a execuo
e temporizao das mdias presentes na aplicao NCL. O Escalonador atribui ao Gerenciador de Exibidores o processamento dos
recursos necessrios para exibio de cada mdia e ao componente
Gerenciador de Layout a responsabilidade de definir os parmetros de exibio NCL no dispositivo.
NCL Applications
Android Applications
GINGA-NCL
0.10 cDisplay Driver
Activity
Manager
Content
Provider
Package
Manager
Location
Manager
Window
Manager
View
System
Resource
Manager
Notification
Manager
Surface
Manager
Media
Framework
OpenGL | ES
Libc
SGL
SSL
WebKit
FreeType
Display Driver
Camera Driver
Flash Memory
Driver
Blinder Driver
Keypad Driver
Wifi Driver
Audio Driver
Power
Management
Dalvik VM
Core Libraries
Gerenciador de
Bases Privadas
Formatador
Escalonador
Gerenciador
de Layout
Gerenciador
de Contexto
Ncleo Ginga
Processador
de Dados
3.2
Gerenciador
Exibidores
Adaptadores
Gerenciador de Contexto
Gerenciador de
Atualizaes
Persistncia
Mquina Lua
Sintonizador
Transporte
Gerenciador
Grco
Exibidores
API Android
Bibliotecas de Sistema
Implementao
Dalvik VM
Kernel Linux
3.2.1
Formatador
45
3.2.2
3.2.4
3.2.3
Gerenciador de Exibidores
O mdulo Gerenciador de Exibidores compreende as classes necessrias ao gerenciamento da execuo dos exibidores de mdias e
de interao com usurio.
Pode-se destacar nesta implementao a interface AndroidSurface, responsvel por definir uma superfcie de exibio de mdia.
importante destacar que cada mdia executada numa aplicao
NCL tem uma superfcie de exibio a ela associada. Cada tipo
de mdia requer superfcies com caractersticas diferentes. Para tal,
a API Android prov classes distintas para exibio destas mdias.
So elas: ImageView, SurfaceView e WebView. Estas classes so
utilizadas como base para as superfcies de apresentao do middleware. A fim de realizar a interface entre o middleware e as
bibliotecas nativas da API, foram implementadas a AndroidAudioSurface, AndroidHTMLSurface, AndroidVideoSurface e a
AndroidImageSurface.
Uma outra classe importante a AndroidWindow. Sua funo prover uma abstrao da janela de trabalho do middleware,
para tal, foi utilizada como base a classe de layout de exibio da
API LinearLayout e a interface NCL IWindow. Em suma, todos
os elementos exibidos pelo middleware esto contidos numa AndroidWindow.
Por fim, tem-se a classe GingaKeyListener, responsvel por receber os dados de interao do usurio via teclado. Esta recebe os
eventos e repassa-os para as classes necessrias para realizar a ao
pretendida. Esta classe implementa a interface OnKeyListener, provida pela API Android, que chamada sempre que um evento
enviado para uma respectiva View.
3.2.5
Gerenciador de Grfico
46
Exibidores
No mdulo exibidores temos os apresentadores de mdia definidos para cada tipo suportado pelo middleware. Eles so utilizados
pelos adaptadores para inserir as mdias numa apresentao e definem as funes bsicas de apresentao necessrias, como: start,
pause, abort, resume e stop. O comportamento destas funes
definido por norma, sendo que buscou-se, na implementao deste
middleware, seguir exatamente as instrues contidas no captulo
8.2 em [13].
O mdulo foi implementado de forma que tem-se uma classe
correspondente ao exibidor para cada adaptador, por exemplo, AndroidAudioPlayer e AndroidAudioPlayerAdapter, esto relacionados.
3.2.6
Adaptadores
rAdapter e AndroidLuaPlayerAdapter.
A implementao dos quatro primeiros foi elaborada de forma
que cada um deles estenda a classe AndroidMediaPlayerAdapter.
Esta classe responsvel por agrupar caractersticas comuns quelas que a estendem. Por fim, a classe FormatterPlayerAdapter
responsvel por executar comandos de gerenciamento das mdias
de udio, Vdeo, Imagem e HTML.
3.2.7
4.1
Escalonador
4.
Para avaliar o desempenho do middleware foram desenvolvidas aplicaes NCL que exploram caractersticas importantes desta
plataforma. As aplicaes foram executadas no middleware embarcado em um dispositivo HTC com processador Qualcomm RMSM
7200A, 528 MHz executando o sistema operacional Android, com
512 MB de memria ROM e 288 MB de memria RAM. As dimenses so 113 x 55.56 x 13.65 mm com resoluo de 320x480
HVGA.
O primeiro experimento visa analisar o atraso decorrente da preparao inicial dos players de mdia chamados pelo escalonador em
aplicaes que contm um nmero elevado de mdias simultneas.
O segundo experimento foi desenvolvido para analisar a utilizao
de CPU e memria durante a execuo de aplicaes NCL com caractersticas diferentes. Por fim, o terceiro experimento analisa a
implementao do protocolo DSM-CC sobre IP e a saturao do
4.2
Recursos como memria e capacidade de processamento so usualmente limitados em dispositivos portteis, fazendo com que o seu
gerenciamento seja um ponto chave no desenvolvimento, em particular, de um middleware embarcado, cuja gesto de recursos tem
47
35
30
Thread ID
25
20
15
10
5
garbage collector
threads
0
0
1000
2000
3000
4000
5000
Tempo (ms)
Consumo de CPU
Consumo Memoria
220000
80
200000
60
180000
40
160000
20
140000
120000
0
4.2.1
Frmula 1
10
15
20
25
30
35
A primeira aplicao apresenta uma exibio de um grande prmio de Frmula 1. A aplicao consiste em apresentar um vdeo
principal, com resoluo de 320x180, e algumas combinaes de
mdias de imagem secundrias que so exibidas de acordo com a
sequncia de toques no visor do dispositivo.
Observando a execuo da aplicao, Figura 3(c), pode-se perceber que apesar de exibir um vdeo juntamente com imagens e
interao com usurio, o uso da CPU no passa de 80%, enquanto
a utilizao de memria no chega a 10% da capacidade do dispositivo (210Kb de 288Mb disponveis).
A existncia de vales e picos no consumo de CPU um comportamento que ocorre sempre que h uma interao do usurio selecionando uma das opes disponveis. Ao fazer isto, um evento
2
Android Debug Bridge uma ferramenta contida no Android
SDK que permite gerir o estado de uma instncia do emulador ou
de um dispositivo executando Android
3
O /proc no Linux ponto de montagem de um pseudo sistema de
arquivos que permite acessar informaes de processos no sistema.
48
4.2.2
4.3
Mosaico
Consumo de CPU
220000
Para que a recepo do fluxo transmitido pela emissora seja efetivamente recebido em dispositivos portteis, preciso lembrar que
h uma notvel diferena entre a taxa de transmisso do servidor e
a taxa de recepo em dispositivos portteis. Em outras palavras,
requerido um mecanismo de controle de fluxo de modo que o receptor com recursos limitados (banda, processamento e cpu) no
seja saturado.
A ideia deste experimento investigar essa problemtica de saturao dos buffers do receptor na simulao de um ambiente de
difuso, quando faz-se uso de UDP. Para efeitos de comparao,
considera-se o caso no qual o fluxo transmitido usando o protocolo TCP tradicional.
O experimento consiste em transmitir uma aplicao NCL atravs do ambiente especificado e analisar o tempo de transferncia
percebido em um dispositivo porttil rodando o cliente DSM-CC.
Para cada ponto, os experimentos foram repetidos 5 vezes para
obteno de um valor mdio. A Figura 6 apresenta os resultados
obtidos, com o ndice junto a sigla UDP significando o valor do
intervalo entre envios consecutivos (pacing) em milissegundos.
80
200000
60
180000
40
160000
20
Consumo Memoria
140000
120000
0
10
15
20
25
30
35
49
100
80
TCP
UDP
UDP2
UDP5
UDP10
mentao do mdulo Context Manager, previsto na arquitetura conceitual do Ginga. A sua integrao no middleware Ginga-NCL
Android permitir a construo de aplicaes NCL mais elaboradas, que associam mobilidade, interatividade e sensibilidade ao
contexto. Em relao transmisso de dados, prev-se a implementao do protocolo MPEG-2 TS para adequar-se norma. Por
fim, em vista da futura disponibilidade de dispositivos baseados em
Android com hardware capaz de receber o sinal de radiodifuso, a
implementao do mdulo Sintonizador ser necessria para lidar
com esta forma de recepo dos dados.
UDP5
60
TCP
40
Tempo (s)
UDP2
20
UDP10
Agradecimentos
0
1000
2000
3000
4000
5000
6000
7000
6.
A primeira observao a linearidade do caso TCP. Com relao aos cenrios UDP, possvel perceber claramente a influncia
do tamanho de intervalo sobre o tempo total de transmisso. A
medida que aumentou-se o espaamento entre envios consecutivos,
pde-se perceber uma melhoria no tempo de transmisso, ao ponto
que o caso UDP10 propiciou melhores resultados que o caso base
(TCP). interessante notar que o gargalo determinado pela taxa
que o dispositivo porttil capaz de consumir do buffer de recepo. Por exemplo, no caso do UDP2 , o tempo de consumo no
suficiente para que os dados sejam recebidos resultando em uma
inundao considervel. O resultado sugere que uma melhoria na
infra-estrutura de comunicao no implica em uma melhoria da
taxa de transferncia efetiva. Entretanto, um ponto chave evidenciado pelo resultado o fato do gargalo estar no dispositivo porttil e
este determinado pela taxa de consumo do buffer de recepo.
5.
Com foco nos terminais de recepo portteis, o presente trabalho descreve uma implementao do middleware Ginga-NCL para
a plataforma Android, sistema operacional de cdigo aberto da Google. Esta , no nosso conhecimento, a primeira implementao do
Ginga-NCL para esse novo e promissor sistema operacional para
dispositivos embarcados.
A avaliao funcional e de desempenho da implementao est
ancorada em um conjunto de experimentos e medies executados
a partir de aplicaes NCL desenvolvidas. Os resultados obtidos
permitem afirmar que a especificao Ginga-NCL e a implementao aqui descrita so capazes de executar com sucesso aplicaes
NCL em dispositivos portteis com a plataforma Android. Esperase que o trabalho possa ser utilizado para estimular e orientar tanto
implementaes futuras do middleware quanto o desenvolvimento
de aplicaes NCL voltadas a essa classe de dispositivos. Para isso,
pretende-se disponibilizar em repositrio pblico o cdigo fonte da
implementao realizada.
O prottipo desenvolvido dever ser usado como ponto de partida para a execuo de novos trabalhos, alguns deles de necessidade imediata, como a realizao de baterias de experimentos
exaustivos e sistmicos para garantir a robustez do middleware.
Alm disto, a mquina de execuo Lua deve ser implementada,
como requerido pelo padro de middleware do SBTVD. Com relao ao suporte a mltiplos dispositivos, a implementao dever
suportar o modelo de controle hierrquico do NCL, conforme discutido em [5].
Outro trabalho, j em andamento no LPRM/UFES, a imple-
50
REFERENCES