Modelo de sincroniza¸ c˜ ao de v´ ıdeo para SAGE2 baseado em m´ ıdia adapt´ avel: Cl´ audio Djohnnatha Duarte Louren¸co CENTRO DE INFORM ´ ATICA UNIVERSIDADE FEDERAL DA PARA ´ IBA Jo˜ ao Pessoa, 2016
Modelo de sincronização de v́ıdeo para
SAGE2 baseado em mı́dia adaptável:
Cláudio Djohnnatha Duarte Lourenço
CENTRO DE INFORMÁTICA
UNIVERSIDADE FEDERAL DA PARAÍBA
João Pessoa, 2016
Cláudio Djohnnatha Duarte Lourenço
Modelo de sincronização de v́ıdeo para SAGE2
baseado em mı́dia adaptável
Monografia apresentada ao curso Ciência da Computação
do Centro de Informática, da Universidade Federal da Paráıba,
como requisito para a obtenção do grau de Bacharel em titulo
Orientador: Lincoln David Nery e Silva
Junho de 2016
L892m Lourenco, Claudio Djohnnatha Duarte. Modelo de sincronização de vídeo para SAGE2 baseado em mídia adaptável / Claudio Djohnnatha Duarte Lourenco. - João Pessoa, 2016. 32 f.
Orientação: Lincoln David Nery e Silva. Monografia (Graduação) - UFPB/CI.
1. Mídia Adaptiva. 2. SAGE2. 3. Sincronização de Vídeo. 4. HTML5. I. Silva, Lincoln David Nery e. II. Título.
UFPB/BC
Catalogação na publicaçãoSeção de Catalogação e Classificação
DEDICATÓRIA
Não vou citar nomes porque podem ser muitos, mas dedico este trabalho a todas
as pessoas que estiveram na minha vida durante esse percurso que muitas vezes poderia
ser considerado árduo, mas no final das contas, proveitoso!
AGRADECIMENTOS
Primeiramente eu gostaria de agradecer a minha famı́lia, minha mãe e pai por
terem me apoiado nessa rota, minha irmã por ter permitido o meu permanecimento em
sua residência, porque sem a ajuda da minha famı́lia talvez não fosse nem posśıvel estar
aqui apresentando este trabalho.
Segundo eu agradeço aos meus dois amigos de infância Octalice Coutinho e Jordan
Junior por sempre estarem ali para todas as horas e momentos, seja ele um simples
desabafo, suporte ou para uma caninha de leve porque nem só de esforço vive o estudante
universitário.
Em terceiro lugar e não menos importante, considero um dos mais importantes, as
pessoas da minha época (deixando claro, porque novas gerações vão chegar) do LAViD,
porque foi lá onde eu passei muitas das minhas noites (na verdade eu não dormi boa parte
delas). Foi lá onde aprendi que apesar de toda a agonia, batalha para aprender como fazer
algo que não foi feito ainda e principalmente demonstrações repentinas, além de ouvir
muitos ”Sim Cláudio, mas não está perfeito”, DAVID, Lincoln (caba exigente danado).
Sério as demonstrações eram repentinas, bem repentinas! Coisa do tipo: Coordenador
Lincoln David, projeto v́ıdeocolaboração 4k: ”Ei galera demonstração amanhã”. ”como
assim cara? A gente vai ter que fazer um milagre pra isso funcionar”. Juro que a gente
pensava isso... No final as coisas simplesmente funcionavam (sabe-se lá como). Lá você
aprende estando com os melhores a compartilhar conhecimento, ideias, independente da
hora, mas o principal: Criar.
Aos amigos em espećıficos como Jaelson Carvalho e Felipe Alves, que eram as
pessoas que entendiam o motivo de um ”não posso sair”porque eles estavam também sem
sair. Foram as pessoas de muitas conversas nas madrugadas de ”virotes”e muitos ”Não
vai dar tempo”.
E por fim aos churrascos do LAViD. A cachaça e amizade com os professores surgiu
(sem eles não teŕıamos histórias pra contar), a professora Tatiana Aires Tavares uma das
primeiras amigas/profesoras que saia para as farras com os alunos, a maravilhosa por tudo
e ao professor Lincoln David que foi meu coordenador desde que eu entrei no LAViD, aos
fiscais da praia e a todos os amigos que fiz ali... Poderia falar muitos nomes, mas espero
manter a amizade com todos. Não esquecerei nunca do ”Ei Cláudio, cadê o café?”(aprendi
a fazer café no LAViD, MARCELO, Caio; BARBOSA, Jorismar...”e o famoso chamado
de todos os dias: ”Ei Zé, vamos tomar um café ?”(Danilo Zé, GTAElson, Gustavo Giga,
Felipe Férias, David Guilherme, Fernando Exodia, Leo Jairo, Vitão Igor, Johny Martins,
Źıcaro Magalhães...) onde as vezes um ”feito é melhor que perfeito”.
Assim as várias histórias vividas no Laboratório de aplicações de Vı́deo Digital.
RESUMO
O SAGE2 é uma área de trabalho colaborativa estável com o propósito de fazer
aplicações dinâmicas pareçerem śıncronas nos displays em um painel de v́ıdeo v́ıdeo wall .
A integração do Fogo Player no SAGE2 foi desenvolvida no Laboratório de Aplicações de
Vı́deo Digital (LAViD) usando linguagens de programação web como Javascript e HTML5,
porém a mesma possui um problema de sincronização de mı́dia causada por uma diferença
no tempo de inicialização dos navegadores que gerenciam cada um dos displays. A pro-
posta desse trabalho é, atraves de técnicas de sincronização por mı́dia adaptiva e de uma
aplicação dinâmica de v́ıdeo, compensar o tempo de inicialização dos navegadores utiliza-
dos pelo SAGE2 permitindo uma melhor sincronia do v́ıdeo e experiência do usuário.
Palavras-chave: SAGE2, Sincronização, Mı́dia Adaptiva, HTML5, Vı́deo Wall.
ABSTRACT
Although SAGE2 is a stable collaborative workplace it has been a challenge syn-
chronize dynamic applications among a screens in a video wall. The Fogo Player used
in SAGE2 was developed at LAViD(Digital Laboratory of Video Applications) using web
tools such as Javascript and HTML5 which had problems with media synchronization cau-
sed by browsers initialization with different times. Therefore this work proposal is to use
techniques like adaptive media synchronization to compensate the browsers video playback
start delay, in order to makes a better synchronization in video applications to show a
better video synchronization on SAGE2 using video wall.
Key-words: Mı́dia Adaptiva, SAGE2, Sincronização de Vı́deo, HTML5
LISTA DE FIGURAS
1 Vı́deo sendo reproduzido no SAGE2. . . . . . . . . . . . . . . . . . . . . 14
2 A figura 2 demonstra como seria a imagem se o v́ıdeo estivesse śıncrono. . 14
3 Ilustração de uma área colaborativa. . . . . . . . . . . . . . . . . . . . . 18
4 Ilustração de um painel de video(Video Wall). . . . . . . . . . . . . . . . 18
5 Demonstração de uma sessão utilizando o SAGE2 com multiplas aplicações
simultâneas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6 Cálculos realizados para o funcionamento do PTP. . . . . . . . . . . . . . 20
7 Processo de requisições do PTP. . . . . . . . . . . . . . . . . . . . . . . 21
8 Vı́deo do Sintel (1920x1080) com quatro qrcodes. . . . . . . . . . . . . . . 23
9 Processo realizado na aplicação da solução . . . . . . . . . . . . . . . . . 25
10 Cálculo utilizado na solução. . . . . . . . . . . . . . . . . . . . . . . . . 26
11 O gráfico ilustra o SAGE2 sem a aplicação da solução em relação a qua-
drantes atrasados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
12 O gráfico ilustra o SAGE2 sem a aplicação da solução em relação a frames
atrasados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
13 O gráfico ilustra o SAGE2 com a aplicação da solução em relação a qua-
drantes atrasados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
14 O gráfico ilustra o SAGE2 com a aplicação da solução em relação a frames
atrasados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
15 Demonstração da imagem após a aplicação da solução. . . . . . . . . . . 28
LISTA DE ABREVIATURAS
SAGE – Scalable Adaptive Graphics Environment
SAGE2 – Scalable Amplified Group Environment
LAViD – Laboratório de Aplicações de Vı́deo Digital.
PTP – Precision Time Protocol.
Tm2s – Time Master to Slave.
Ts2m - Time Slave to Master.
TS1 – Time Slave 1.
TS2 – Time Slave 2.
TM1 – Time Master 1.
TM2 – Time Master 2.
TSS0 – Time Screen 0 Start.
TSS1 - Time Screen 1 Start.
Sumário
1 INTRODUÇÃO 13
1.1 Definição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2 Premissas e Hipóteses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.1 Objetivo geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.2 Objetivos espećıficos . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3 Estrutura da monografia . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 CONCEITOS GERAIS E REVISÃO DA LITERATURA 16
2.1 Sincronização Multimı́dia . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Área de trabalho colaborativa . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Video Wall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 SAGE2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 METODOLOGIA 20
3.1 Sincronização de mı́dia usando PTP . . . . . . . . . . . . . . . . . . . . 20
3.2 Sincronização Intra-Media AMP . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4 Observador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5 Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4 APRESENTAÇÃO E ANÁLISE DOS RESULTADOS 25
5 CONCLUSÕES E TRABALHOS FUTUROS 28
REFERÊNCIAS 29
ANEXO A - ANEXOS E APÊNDICES 1 32
12
1 INTRODUÇÃO
O SAGE2 é um sistema baseado em web, o qual propõe uma área de trabalho
colaborativa cuja finalidade é proporcionar um espaço de interação remota para os seus
usuários através do recurso de v́ıdeo conferência ou espelhamento da sua respectiva área
de trabalho. A configuração da plataforma colaborativa provê a união de várias telas,
dispostas na forma de videowall, cujas resoluções podem ser diferentes. A união das
múltiplas telas resulta em um único painel de v́ıdeo, com sáıda śıncrona.
O funcionamento da plataforma ocorre através da utilização de navegadores web
[12]e cada um representa um quadrante do v́ıdeo. O total de telas permitida pelo sistema
variará de acordo com a configuração definidas pelos usuários administradores.
A maioria das aplicações desenvolvidas no SAGE2 são estáticas, de pouco movi-
mento. Dessa forma, quando há uma falta de sincronia entre os quandrantes não há uma
perda de significativa da experiência do usuário. São exemplos desse tipo de aplicações
a visualização de um documento, pdfs, utlização do google maps. No desenvolvimento de
aplicações dinâmicas, como reprodução de v́ıdeos, que exigem uma sincronia entre os obje-
tos dos quadrantes a assincronia á um fator de preocupação, pois prejudicia a experiência
dos usuários.
A solução proposta neste trabalho visa corrigir e melhorar a sincronia de videos
em Full HD nessa plataforma, para tal foi realizado através de cálculos matemáticos a
compensação do tempo de inicialização da aplicação, sendo o objetivo a melhoria na
qualidade da aplicação dinâmica.
1.1 Definição do Problema
O sincronismo dos v́ıdeos é um dos maiores desafios enfrentados no SAGE2, pois
ele utiliza tecnologias baseadas em web e estas não permitem controlar totalmente a
exibição de frames. Assim,a ausência de sincronia se torna facilmente percept́ıvel quando
a irregularidade é alta e conforme mostrada na Figura 1 influencia diretamente na ex-
periência do usuário. A Figura 2 mostra como deveria ser a exibição correta da mesma
cena.
1.2 Premissas e Hipóteses
A falta de sincronia observada na reprodução de mı́dias adaptativas que são repro-
duzidas através do SAGE2 e um problema relacionado ao desempenho delas são problemas
apresentandos em reuniões do GT da RNP. A principal hipótese para correção dos pro-
blemas apresentados é que o SAGE2 tem um problema na inicialização das aplicações
causado por uma execução independente de suas instâncias.
13
Figura 1: Vı́deo sendo reproduzido no SAGE2.
Figura 2: A figura 2 demonstra como seria a imagem se o v́ıdeo estivesseśıncrono.
14
1.2.1 Objetivo geral
O objetivo principal deste trabalho é propor um player de v́ıdeos que permita uma
melhoria na sincronização v́ıdeos, sem o uso de plugins externos, na plataforma do SAGE2.
A aplicação deve permitir uma melhor experiência para quem utilizar essa plataforma.
1.2.2 Objetivos espećıficos
• Verificar opções de desenvolvimento na plataforma do SAGE2.
• Verificar se o SAGE2 mantém a taxa de não sincronia até o fim da reprodução.
• Pesquisar métodos de sincronização de mı́dia.
• Testar cálculos de sincronização de clock mestre/escravo do PTP [10].
• Codificar o player.
• Testar se a solução está sincrona.
1.3 Estrutura da monografia
O presente trabalho está dividido em cinco sessões.A primeira versa sobre a de-
finição da pesquisa, seguida por uma fundamentação teórica que abordado os conceitos
geráis e revisão da literatura usados para solucionar o problema. A terceira seção apre-
senta a metodologia, a quarta diz respeito a apresentação e análise dos resultados e, por
fim,a quinta seção com a conclusão e trabalhos futuros.
15
2 CONCEITOS GERAIS E REVISÃO DA LITERATURA
2.1 Sincronização Multimı́dia
De acordo com [9] a sincronização multimı́dia é definida em três conjuntos:
• Intra-media, tem a intenção de garantir uma preservação temporal por um streamingde v́ıdeo.
• Inter-media, preserva a sincronização temporal através de múltiplos streams dev́ıdeo.
• Inter-cliente, preserva a sincronização em tempo real.
Os sistemas multimı́dias objetivam manter uma taxa constante de fluxos de dados
de forma que não afete a qualidade de percepção do usuário. Para que isso aconteça, é
necessário que esses sistemas de manipulação das mı́dias delimitem os cenários de uso
dos conteúdos que serão exibidos[8] especificando as taxas de fluxo de dados para cada um
deles tendo em vista que há uma diferença de necessidade entre um streaming de v́ıdeo,
seja sobre demanda ou broadcast e qualquer problema de sincronia afeta diretamente a
experiência do usuário, gerando uma distorção espacial e temporal, seja por perda de
pacotes, atraso ou jitter(variação de delay no recebimento de pacotes) [9].
Uma variação temporal ocorre quando existe uma percepção de pausa ou pulo de
pedaços na reprodução de uma mı́dia podendo ser causada pelo atraso no recebimento dos
pacotes ou jitter. Toda ação ocorre em um determinado timestamp, seja no senders ou nos
receivers, assim surge a necessidade de ter algum ponto (Relógio) de referência que seja
comum a todos e, também, mais dois marcadores de tempo, chamadados de apresentação e
decodificação que representam e constituem uma das camadas de sincronização[9]. Apesar
destes mecanismos já estarem sendo aplicados eles não conseguem garantir uma qualidade
viável durante a exibição de conteúdo para o caso de congestionamento na rede.
Uma das formas mais precisas de sincronização através de relógios em máquinas
distribuidas é através do PTP (Precision Time Protocol) que se estrutura em torno do
conceito de relógios mestre e escravo. Os relógios escravos são corrigidos periodicamente
pela rede tendo como referência os mestres. Esse processo de sincronização é dividido em
duas etapas, a primeira é a realização de um cálculo matemático para ajustar a diferença
dos relógios (offset), já na segunda etapa é realizado um outro cálculo para obter a variação
de transmissão no envio e recebimento dos pacotes [10].
Ainda há outra forma de sincronização, esta é realizada através de um sistema de
mı́dia adaptável. Conceitualmente há uma manipulação da percepção temporal no modo
16
de reprodução de uma mı́dia que sofre com pausas e/ou adiantando pedaços, levando em
consideração a forma de percepção do usuário, que é considerado senśıvel a irregularidades
causadas pela latência durante uma exibição de mı́dias, porém, essas distorções não são
notadas se elas acontecerem em um peŕıodo muito curto de tempo[9].
2.2 Área de trabalho colaborativa
O aumento na quantidade de pesquisas voltadas para um espaço de mı́dias em que
haja uma estabilidade audiovisual [11] e permita a manipulação e o compartilhamento
de arquivos criando uma área de trabalho colaborativa. A tendência é que as pessoas
compartilhem mais dados e surjam mais formas de interações e juntando isso em um
ambiente virtual como mostrado na figura 3.
A figura (figura 3) ilustra o conceito de área de trabalho colaborativa onde A repre-
senta várias pessoas em um mesmo local f́ısico, B representa pessoas interagindo de lugares
distintos e C o ambiente considerado como área de trabalho colaborativa que permite aos
grupos A e B a manipulação de dados e objetos de forma interativa demonstrando assim
uma área de trabalho compartilhada. Este tipo de ambiente permite que pessoas realizem
reuniões, estudos e demonstrações das mais variadas intenções de forma interativa em
um ambiente integrado.
2.3 Video Wall
Com o passar dos anos vem avançando as tecnologias de v́ıdeo principalmente
quando se trata de tamanho (resolução) e muitas vezes o seu estado da arte é baseado
em técnicas utilizando displays, assim levando o conceito de escalabilidade pela junção
de vários deles. Um sistema de telas é chamado de v́ıdeo wall pelo fato de unir várias
telas e essa junção se assemelhar visualmente a uma parede, pois elas estão dispostas de
forma adjacente, formando uma base continua de telas, conforme mostrada na Figura 4
[7], onde cada display, chamado de quadrante, fica responsável por um pedaço da imagem.
A infraestrutura do v́ıdeo wall contém uma limitação f́ısica que são as bordas dessas
telas, porém pelo fato de ser montado de forma adjacente existe uma compensação na
percepção dessa limitação, diminuindo assim seu efeito [5]. Para ser posśıvel unir o
painel de telas como uma imagem única é necessário algum tipo de software baseado no
sistema de encoder/decoder/multiplexador/demultiplexador, sendo operando por rede, de
tal forma que a imagem aparece de forma continua [6] [7].
17
Figura 3: Ilustração de uma área colaborativa.
Figura 4: Ilustração de um painel de video(Video Wall).
18
2.4 SAGE2
O SAGE (Scalable Adaptive Graphics Environment) foi desenvolvido pela EVL
(Electronic Visualization Laboratory) em 2009, trazendo a proposta de área de trabalho
colaborativa, onde permite que vários usuários possam interagir com um painel de v́ıdeo
(Vı́deo Wall), utilizando variados tipos de objetos e realizando diferentes transferência
de dados como imagens, v́ıdeos, apresentações, documentos e até mesmo compartilhar a
própria tela do computador que o usuário está interagindo, entre outros tipos de dados.
O SAGE fornece um ambiente de compartilhamento de telas, onde de forma es-
calável é posśıvel criar um v́ıdeo-wall constitúıdo de diferentes telas, de diferentes formatos
e dessa forma criando diferentes resoluções como mostrado na Figura 5 [3]. Esse conceito
de displays compartilhados é também conhecido pelo termo SRSD (Scalable Resolution
Shared Displays).
Para a utilização da plataforma utiliza-se uma cyber infraestrutura onde inclui
computadores, locais de armazenamento e conectado a uma rede (não necessariamente
estando conectado a internet) entre outros meios para a criação e distribuição de dados
que serão compartilhados nessa área colaborativa.[3]
O SAGE2 (Scalable Amplified Group Environment) é a nova geração do SAGE, a
principal mudança entre as versões é a sua estrutura que foi redesenhada e passou a ser
desenvolvida usando armazenamento em nuvem e tecnologias baseadas em browsers [4].
Utilizando o Javascript como linguagem de programação, diferente da passada geração do
SAGE que foi desenvolvido em C++[2]. Pelo fato de ser desenvolvido voltada para web
o SAGE2 permite uma maior interação entre os usuários da plataforma, permitindo que
o acesso seja realizado em qualquer local de uma sala de reunião, por exemplo, ou até
mesmo de outros ambientes[2].
Figura 5: Demonstração de uma sessão utilizando o SAGE2 com multiplasaplicações simultâneas.
19
3 METODOLOGIA
3.1 Sincronização de mı́dia usando PTP
O PTP usa um método baseado em clocks , onde tem-se um master-clock(clock onde
será baseado como principal) e os slave-clock (relogios que serão sincronizados a partir
do principal). O modelo ideal de relógio é medido pelo pulsar do cristal oscilador[10] da
maquina utilizada. O master clock envia uma mensagem para iniciar a sincronização (1),
o (2) seria o envio de outra mensagem contendo o valor do relógio.
Considerando que a comunicação que ocorre entre o envio de requisição do master-
clock e o recebimento e envio do slave-clock é simétrica, então, (3) a máquina responsável
por executar o slave-clock manda uma requisição de sincronização final para o master-
clock, ao receber a resposta é armazenado esse valor, calculado e enviado de volta para
o master clock o delay de resposta (Figura 6, [10] ). Esse cálculo é ilustrado na Figura
7 [10] onde representa em forma de desenho o processo do PTP. Nesse trabalho tem um
foco espećıfico em um dos processos utilizados na sincronização de mı́dias usando o PTP.
A figura demonstra os cálculos realizados para o funcionamento do PTP onde
Tm2s: Mensagem de sincronização Ts2m: Mensagem contendo o atual valor do relógio(TM1)
TM1: tempo no instânte que é enviado a mensagem de sincronização TS1: tempo de che-
gada da resposta para o slave-clock. TS2: tempo de envio da requisição do slave-clock
pedindo o ajuste de delay. TM2: tempo de chegada das ultimas requisições no slave-clock.
Figura 6: Cálculos realizados para o funcionamento do PTP.
3.2 Sincronização Intra-Media AMP
Em aplicações multimı́dia que utilizam de streams de v́ıdeo necessitam de uma sin-
cronização simultânea pelo fato do envio e recebimento de pacotes de media, MU (Media
20
Figura 7: Processo de requisições do PTP.
Unity), pela rede que pode variar dependendo do seu congestionamento, causado assim al-
guns fatores como delay, variação da velocidade e entre outros que distorcem a reprodução
da media original.
Uma das soluções que são bem utilizadas é através de uma bufferização que permite
uma proteção de não sincronia dos MU. Dessa forma é chamado um processo de agen-
damento e reprodução, onde é realizado para que cada pacote de media recebido pela rede
possa ser reproduzidos corretamente [9] [13], porem observando que isso não funciona tão
bem em um ambiente que exista um congestionamento de rede [9].
AMP (Adaptive Media Solution) tem um intuito de trazer soluções para regular
problemas como pausas e pulos de partes da media, desse modo diminuindo uma boa
experiência do usuario ao consumo dessas medias [13]. De acordo com [9] o AMP é
baseado em uma categorização de tempo e buffer.
O esquema por tempo se dá por uma medição da variação de delay e jitter na
rede através do envio e recebimento de clocks e timestamp, que pode ser degradado caso o
tempo de envio e resposta seja muito grande. O esquema por buffer verifica o estado do
jitter na rede através da reprodução em relação ao seu preenchimento.
Os dois esquemas visam corrigir a reprodução descontinua, porém o esquema por
21
tempo fica preso a utilização e sincronização de relógio global enquanto o esquema por
buffer não exige isso necessidade.
Conhecendo o desafio do SAGE2 para sincronização aplicações dinâmicas [4], onde
foco da aplicação é em uma reprodução de v́ıdeo, para uma melhor experiência de uso
e integração com outras aplicações como o Fogo Player (desenvolvido no LAViD) era
necessário a melhoria sincronia desses v́ıdeos.
A solução foi baseada nos cálculos do PTP (1) e (2) mostrado na figura 7 previ-
amente explicado na seção 3.2, onde é considerado o tempo de envio e resposta de uma
requisição de sincronização, que chega a ser simétrica, no esquema por tempo de media
adaptiva mencionada na seção 3.3 com maior foco na medição da variação de delay e
agendamento de reprodução.
3.3 Implementação
Para a implementação foi seguido os seguintes passos:
1. Cada tela(browser) executa um script do mesmo código. Utilizando um painel com
4 telas, consequentemente 4 scripts iriam executar o mesmo código.
2. Comunicação direta entre os browsers (telas), podendo ser resolvida de três formas:
(a) Utilizar um plug-in externo de comunicação entre browsers(ideia discutida en-
tre a equipe e descartada, pelo fato de evitar dependências externas como plug-
ins).
(b) Utilizar uma comunicação entre o próprio servidor do SAGE2.
(c) Utilizar servidor externo.
Para simplificar e não mexer no extenso código do SAGE2 optou-se por utilizar um ser-
vidor externo, sendo feito também em NodeJS.
3.4 Observador
De acordo com [14] a algoritmos de sincronização por clock é baseado em noções
probabiĺısticas de tempo e atraso. A probabilidade de sincronização realizada por relógio é
alta porem pode falhar ocasionalmente e a degradação de performance sendo considerada
bem rara, sendo assim não existindo uma métrica absoluta de medição de sincronização
por relógios em sistemas distribúıdos.
Com isso, desenvolvemos uma ideia baseada em observar a sequência de frames
no mundo real. Então era necessário colocar algo que identificasse o frame e o respectivo
22
quadrante, assim surgiu a ideia baseada em um observador, que verifica em tempo real se
as telas estão śıncronas atraves uma aplicação. Um qrcode colocado em cada quadrante
do v́ıdeo, representando o seu quadrante os seus frames como demonstrado na figura 8 (a
imagem foi tirada do real v́ıdeo utilizado nos testes, com um leitor qrcode é posśıvel ver
as informações reais usadas no teste). O sistema se baseava em duas partes:
1. QrEncode, gera qrcodes para cada frame contendo informações sobre o número do
frame e o número do quadrante, como mostrado na figura 8.
2. Aplicação Android que é considerado o observador, ele faz uma analise dos Qr-
code/frame em tempo real.
Figura 8: Vı́deo do Sintel (1920x1080) com quatro qrcodes.
Cada um contém o número do respectivo frame e o número do seu quadrante.
3.5 Testes
• Utilizando um v́ıdeo que apresentasse cenas com muita movimentação (TransformersPure Action [1080]) encontrado no youtube (Full-HD, 1920x1080) onde causava uma
rápida transição de frames, para assim ter uma melhor percepção da não sincronia.
• Para os testes de sincronia foi utilizado duas telas, onde inicialmente, a tela 0sempre começaria primeiro que a tela 1 (a ordem de ińıcio de telas não é previśıvel)
(Figura 9), como forma de agilizar a verificação dos resultados.
• Vı́deo do Sintel em Full-HD (1920x1080) foi utilizado para gerar o resultado real dofuncionamento do algoritmo.
23
O servidor do SAGE2 foi instalado em uma única máquina com sistema operacio-
nal Ubuntu(Linux). Foi desenvolvido um servidor externo em NodeJS chamado de Screen
Synch Server, antes da sua execução é necessario identificar quantos screens vão ser utili-
zado no SAGE2, o synch na figura 9) demonstra que o próprio tem seu método de sincro-
nia interno. O Screen Synch Server é usado para verificar quem é a aplicação(Browser)
mestre e o escravo (teoria do clock mestre/escravo mencionado anteriormente na seção
4.1), identificando quem começou mais tarde como na figura 9) e considerando-o como
aplicação mestre.
Ao iniciar a aplicação no SAGE2 é dado play no v́ıdeo e enviado para o Screen
Synch Server ( uma requisição contendo o tempo inicial das respectivas telas (TSS) e o seu
ID (número utilizado para identificar as telas). O Screen Synch Sever depois que identifica
qual foi a tela mestre partir do TSS e assim envia para todos os screens conectados por
broadcast.
Devido a bufferização do v́ıdeo (mencionado na técnica de AMP por buffer na
seção 4.2) a tela que iniciou primeiro é considerada como tela de sincronização escrava
(atrasando o seu tempo de reprodução em relação a tela mestre).
Tomando como base de que o tempo de requisição e resposta do servidor é simétrico
(demonstrado na figura 7) e utilizando o cálculo 1 e 2 demonstrado na figura 6, chegou a
adaptação demonstrada na figura 10 onde (1) demonstra o cálculo de variação de latência.
(2) sincronização dos displays escravos, medindo em qual momento a reprodução da tela
mestre está. (3) levando em consideração o que foi mencionado na seção 4.1, onde
variação de latência é simetrica e é aplicado em todas as telas ao receber a mensagem
broadcast mostrado na figura 9. (4) Por fim é aplicado o cálculo de sincronização das
telas escravas, que mede a diferença entre a variação da latência e o tempo em que a
reprodução do v́ıdeo vai estar na tela mestre.
Como citado em [14] a sincronização de relógio é baseado em probabilidade e
mesmo que seja alta, casualmente será falha. Para obter uma prova real de que houve
uma melhoria na sincronização, utilizamos o método abordado anteriormente na seção
4.4.
24
Figura 9: Processo realizado na aplicação da solução
4 APRESENTAÇÃO E ANÁLISE DOS RESULTADOS
Os resultados foram obtidos após a realização de 30 testes com a aplicação da seção
4.4( Observador) com o SAGE2 sem a solução, mostrada nas figura 11, 12 e com a solução
mostradas nas figuras 13, 14. Os resultados obtidos são relacionados com a quantidade
de frames que foram reconhecidos pela aplicação e que contém os seus respectivos qrcodes
em relação ao número total de frames atrasados ou quadrantes atrasados, gerando uma
média.
A média mostrou que houve uma melhoria na sincronização do v́ıdeo, conforme
demonstrada no gráfico 11 que representa a reprodução do v́ıdeo sem a solução apresentada
nesta pesquisa. Os quadros atrasados variam entre -3.02 até 3.54. Com a aplicação da
solução a taxa de atrasou chegou a, no máximo, 1 quadrante de atraso, variando entre
25
Figura 10: Cálculo utilizado na solução.
-0,70 até 1. Este resultado é demonstrado graficamente na imagem 13
As relações demonstradas nos gráficos 12 e 14 representam, respectivamente, os
frames atrasados sem a aplicação da solução, a média de frames atrasados varia entre
2,91 até 3 e os os resultados com a aplicação demostrando uma variação de 0,89 até 1,88.
Figura 11: O gráfico ilustra o SAGE2 sem a aplicação da solução em relaçãoa quadrantes atrasados.
Os gráficos demonstram com clareza que houve um aumento na sincronia de troca
de quadros, antes mostrado na figura 1, melhorando a sincronia durante a reprodução do
v́ıdeo como mostrado na figura 15
26
Figura 12: O gráfico ilustra o SAGE2 sem a aplicação da solução em relaçãoa frames atrasados.
Figura 13: O gráfico ilustra o SAGE2 com a aplicação da solução em relaçãoa quadrantes atrasados.
27
Figura 14: O gráfico ilustra o SAGE2 com a aplicação da solução em relaçãoa frames atrasados.
Figura 15: Demonstração da imagem após a aplicação da solução.
5 CONCLUSÕES E TRABALHOS FUTUROS
A solução apresentada provê a sincronia na reprodução de v́ıdeos, com resolução
Full-HD(1920x1080), localizado no servidor do SAGE2. No contexto desta pesquisa, a
sincronia foi testada em 4 telas, mas pode ser adaptada e funcionar para n máquinas se
a mesma suportar.
Nos Vı́deos com maior resolução com os 4k por exemplo, há um aumento na relação
da não sincronia durante as trocas de quadros pois formatos maiores exigem um maior
processamento da máquina. As perspectivas futuras para o trabalho são a de desenvolver
uma aplicação que permita a sincronia de até n telas com n resoluções de v́ıdeo e que
28
realize, também, a sincronização de streamings.
29
REFERÊNCIAS
[1] Yi Zhua, Delft University of Technology, Mekelweg 4, Delft 2628 CD, The Nether-
lands; Ingrid Heynderickxb, Judith A. Redia. Understanding the role of social context
and user factors in video Quality of Experience. Nome da revista em negrito,
49, número, 412-426, March, 2015. doi:10.1016/j.chb.2015.02.054.
[2] SAGE Commons. Sage, 2014. Dispońıvel em: .
[3] Brown, Maxine D and Leigh, Jason and Renambot, Luc and Nam, Sungwon and Ja-
godic, Ratko and Hur, Hyejung and Long, Lance and Jeong, Byungil. SAGE: Scalable
Adaptive Graphics Environment. Dispońıvel em: .
[4] Thomas Marrinan, Jillian Aurisano, Arthur Nishimoto, Krishna Bharadwaj, Victor
Mateevitsi, Luc Renambot, Lance Long, Andrew Johnson. SAGE2: A New Appro-
ach for Data Intensive Collaboration Using Scalable Resolution Shared Displays. In
Proceedings of the 10th IEEE International Conference on Collaborative
Computing: Networking, Applications and Worksharing, Miami, FL, 177 -
186, October, 2014. Dispońıvel em: .
[5] Kalua, K.A. Multiple screen, modular video display projection sys-
tem. Google Patents. US Patent 5,523,790, 1989. Dispońıvel em:
.
[6] Chaddha, N. and Northcutt, J.D. and Wall, G.A. and Hanko, J.G. Software-
based encoder for a software-implemented end-to-end scalable video deli-
very system. Google Patents. US Patent 5,621,660, 1997. Dispońıvel em:
.
[7] Lagarrigue, P. and Souviron, M. and Lambolez, P.Y. Video wall. Go-
ogle Patents. US Patent 7,262,746, August, 2007. Dispońıvel em:
.
[8] Herman, Ivan Correia, Nuno Duce, A. David Duke, J. David Reynolds, J. Graham
Van Loo, James. A standard model for multimedia synchronization: PREMO syn-
chronization objects. Multimedia Systems, 6, 2, 88-101, 1998. Dispońıvel em:
. doi: 10.1007/s005300050078.
[9] SangHoon Park and JongWon Kim. An adaptive media playout for intra-media
synchronization of networked-video applications. Journal of Visual Commu-
nication and Image Representation, 19, 2, 106-120, 2008. Dispońıvel
30
em: . doi:
http://dx.doi.org/10.1016/j.jvcir.2007.09.002.
[10] Wenhua Han and Xiaohui Shen and Edwin Hou and Jun Xu. Precision time syn-
chronization control method for smart grid based on wolf colony algorithm. Inter-
national Journal of Electrical Power Energy, 78, 816-822, 2016. Dispońıvel
em: . doi:
.
[11] Heath, Christian Luff, Paul Sellen, Abigail. Reconsidering the Virtual Work-
place: Flexible Support for Collaborative Activity. In: Springer Netherlands.
Proceedings of the Fourth European Conference on Computer-Supported Cooperative
Work ECSCW ’95: 10–14 September 1995, Stockholm, Sweden. Cidade: Marmolin,
Hans Sundblad, Yngve Schmidt, Kjeld, 1995. 83-99. doi: 10.1007/978-94-011-0349-
76.Dispońıvelem :¡http : //dx.doi.org/10.1007/978 − 94 − 011 − 0349 − 76/¿.
[12] Cláudio D. D. Lourenço, Josué de P. Bernardino, Laércio de S. Bezerra, Jorismar Bar-
bosa Meira, Thiago L. P. Nunes, Lincoln D. Nery e Silva. Integração do Fogo Player com
plataformas via web. In: WebMedia, 2015.
[13] M. Montagud and F. Boronat.On the Use of Adaptive Media Playout for Inter-Destination
Synchronization. IEEE Communications Letters, 15, 8, 863-865, August, 2011. doi:
10.1109/LCOMM.2011.061611.110072.
[14] Liskov, Barbara. IDistributed Computing, 6, 4, 211-219, 1993. doi:
10.1007/BF02242709.
[15] 8K Ultra High Definition Digital Media Streaming Demonstrated at the GLIF Global
LambdaGrid Workshop. 2012. Dispońıvel em: .
31
ANEXO A – ANEXOS E APÊNDICES 1
Anexos e apêndices são materiais adicionais, utilizados para complementar o texto,
acrescentados ao final do trabalho, com a finalidade de esclarecimento ou de comprovação.
Apêndices são elaborados pelo autor e visam complementar uma argumentação. Os
Anexos não são elaborados diretamente pelo autor e servem de fundamentação teórica,
comprovação e ilustração (ex. mapas, leis, estatutos entre outros). Os apêndices devem
aparecer antes dos anexos.
32