Multimídia Referência: Slides extraídos do material dos professores Jim Kurose e Keith Ross...
Transcript of Multimídia Referência: Slides extraídos do material dos professores Jim Kurose e Keith Ross...
Multimídia
Referência:
Slides extraídos do material dos professores Jim Kurose e Keith Ross relativos ao livro “Redes de Computadores e a Internet – Uma abordagem top-down”, segunda e terceira edições
Alterações nos slides, incluindo sequenciamento, textos, figuras e novos slides, foram realizadas conforme necessidade
Multimídia em Redes Características Fundamentais: Tipicamente sensíveis ao
atraso. Mais tolerante a perdas:
perdas esparsas causam pequenas falhas que podem passar desapercebidas.
Antítese de dados (programas , informações bancárias, etc.), que não toleram falhas mas aceitam atrasos sem problemas.
Multimídia também é chamada de “mídia de tempo contínuo”
Classes de aplicações MM: Audio e vídeo de tempo
contínuo armazenados Audio e vídeo de tempo
contínuo ao vivo Audio e vídeo interativo
em tempo-real
Multimídia em redes (2)
Aplicações MM com audio e vídeo armazenadosClientes solicitam arquivos com audio e vídeo de servidores, recebem a informação pela rede e a apresentam Interativo: o usuário pode controlar a operação (similar a um VCR: pause, resume, fast forward, rewind, etc.) Atraso: a partir do pedido do cliente até o início da apresentação pode ser de 1 a 10 segundos
Tempo-real unidirecional: similar à TV convencional, mas
a transferência de informação é feita pela Internet
Não interativo, apenas escutar e ver
Tempo-Real Interativo: Conferência de aúdio ou de
vídeo Mais exigente nos requisitos
de atraso que o tempo real unidirecional por causa da necessidade de interatividade em tempo real
Vídeo: < 150 ms aceitável Aúdio: < 150 ms bom, < 400
ms aceitável
Multimídia em redes (3): desafios
Arquitetura TCP/UDP/IP fornece melhor esforço, não garantias sobre o atraso ou sobre a variação de atraso.
Aplicações de tempo contínuo com atrasos iniciais de 5-10 segundos são comuns hoje em dia, mas o desempenho deteriora se os enlaces estão congestionados
Aplicações Interativas em tempo real têm requisitos rígidos para atraso de pacotes e variação de atraso (jitter).
Jitter é a variabilidade do atraso de pacotes dentro do mesmo feixe de pacotes.
Projeto de aplicações multimídia seria fácil se houvesse várias classes de serviço.
Mas na Internet pública todos os pacotes recebem igual tratamento.
Pacotes contendo audio e vídeo interativo de tempo real permanecem nas filas, como todos os outros.
Esforços vêm sendo desenvolvidos para prover serviços diferenciados.
Multimídia em redes (4): aproveitando ao máximo o “melhor
esforço”Para reduzir o impacto do
serviço de melhor esforço da Internet, nós podemos:
Usar UDP para evitar o TCP e sua fase de partida lenta…
Armazenar o conteúdo no cliente e controlar a apresentação para remediar o jiter
Acrescentar marcas de tempo nos pacotes para que o receptor saiba quando reproduzí-los.
Adaptar o nível de compressão à taxa de transmissão disponível
Transmitir pacotes redundantes para atenuar os efeitos das perdas de pacotes.
Aúdio e Vídeo Armazenados
Mídia de tempo contínuo armazenada:Arquivos de audio e de vídeo são armazenados em servidores Usuários solicitam os arquivos de audio e de vídeo por demanda.Audio/vídeo são apresentandos, digamos, 10 s após o pedido.Interatividade (pausa, deslocamento da apresentação) é permitido.
Transdutor de Mídia (player):
remove jitter descomprime faz correção de erros interface gráfica de
usuário com controles para interatividade
Plug-ins podem ser usados para embutir o transdutor de mídia na janela de um browser.
Informações de tempo contínuo em servidores Web (1)
Os arquivos de aúdio e de vídeo são armazenados em servidores Web
abordagem ingênua browser pede o arquivo com
uma mensagem HTTP do tipo pedido
Servidor Web envia o arquivo na mensagem HTTP do tipo resposta
O cabeçalho “content-type” indica uma codificação apropriada para aúdio e vídeo
browser dispara o transdutor de mídia e passa o arquivo para ele
transdutor de mídia apresenta o arquivo
• Problema básico: o transdutorde mídia interage com o servidorWEB através do Web browser que atua como intermediário.
cliente servidor
Alternativa: estabelecer conexão entre o servidor e o transdutor
browser Web solicita e recebe um meta arquivo (um arquivo descrevendo o objeto) ao invés de receber o próprio arquivo;
O cabeçalho “Content-type” indica uma específica aplicação de audio e vídeo
Browser dispara o transdutor de mídia e passa o meta arquivo para ele
Transdutor estabelece uma conexão TCP com o servidor e envia a ele a mensagem HTTP do tipo pedido.
Algumas preocupações: O transdutor de mídia se
comunica usando HTTP, que não foi projetado para suportar comandos de controle de apresentação
Pode desejar enviar o aúdio e o vídeo sobre UDP
Informações de tempo contínuo em servidores Web (2)
(1) pedido/resposta HTTPpor um meta arquivo
(3) arquivo solicitado é enviadousando o HTTP
(2) meta arquivo
transdutor de mídia
Obtendo o vídeo de um servidor dedicado
Esta arquitetura permite o uso de outros protocolos (além do HTTP) entre o servidor e o transdutor de mídia
Pode também usar UDP ao invés do TCP
(1) HTTP pedido/respostapara o arquivo descritor
da apresentação
(2) arquivo descritor
(3) arquivo de aúdioe vídeo pedido e
enviado
cliente servidores
transdutor de mídia
servidorde vídeo
Opções ao utilizar um servidor de vídeo
Enviar a uma taxa constante sobre UDP. Para reduzir os efeitos do jitter, armazenar e exibir com uma atraso entre 1 e 10s. Taxa de transmissão é fixa = d, igual à taxa de codificação. Taxa de enchimento x(t) é igual a d, exceto quando há perdas ou jitter na rede.
Use TCP, e envie na máxima taxa possível sobre TCP; TCP retransmite quando um erro é encontrado; x(t) agora flutua, e pode tornar-se muito maior ou menor que d. Decodificador deve usar um buffer muito maior para compensar a taxa de entrega do TCP.
buffercliente
área comvídeo
taxa de chegada= x(t)
da rede
taxa de leitura = d
decodificaçãoe apresentação
Telefonia Internet sobre melhor-esforço (1)
Melhor esforço Conviver com atraso de
pacotes, perdas e variação de atraso (jitter)
Exemplo de telefone Internet As aplicações de telefonia
na Internet geram pacotes durante momentos de atividade da voz
Taxa de bits é 64 kbps nos intervalos de atividade
Durante os intervalos de atividade a aplicação produz um bloco de 160 bytes a cada 20 ms (8 kbytes/s * 20 ms)
Cabeçalho é acrescentado ao bloco; então bloco mais cabeçalho são encapsulados num pacote UDP e enviados
Condições da rede: alguns pacotes podem ser perdidos e o atraso de pacote irá flutuar
Receptor deve determinar quando reproduzir um bloco e determinar o que fazer com um bloco faltante
Telefonia Internet (2)
perda de pacotes o segmento UDP é
encapsulado num datagrama IP
datagrama pode ser descartado por falta de espaço num roteador
TCP pode eliminar perdas, mas
retransmissões aumentam o atraso
o controle de congestio-namento do TCP limita a taxa de transmissão
pacotes redundantes podem ajudar
atraso fim-a-fim acúmulo dos atrasos de trans-
missão, propagação, proces-samento e atrasos de filas
mais que 400 ms de atraso fim-a-fim compromete a interatividade; quanto menor o atraso melhor
variação de atraso considere dois pacotes consecutivos
num intervalo de atividade espaçamento inicial é de 20 ms,
mas o espaçamento no receptor pode ser maior ou menor que 20 ms
removendo o jitter número de seqüência marcas de tempo atrasando a reprodução
Telefonia Internet (3): atraso de reprodução fixo
Receptor tenta reproduzir cada bloco exatamente q ms depois que o bloco é gerado. Se o bloco tem marca
de tempo t, receptor usa o bloco no instante t+q .
Se o bloco chega após o instante t+q, receptor o descarta.
Números de seqüência não são necessários.
Estratégia permite pacotes perdidos.
Escolha do valor de q: q grande: menos
perda de pacotes q pequeno: melhor
controle da interatividade
Telefonia Internet (4): atraso de reprodução fixo
Transmissor gera pacotes a cada 20 ms durante os intervalos de atividade.
Primeiro pacote é recebido no instante r Primeira programação de reprodução: começa em p Segunda programação de reprodução: começa em p’
packets
tim e
packetsgenerated
packetsreceived
loss
r
p p '
playout schedulep - r
playout schedulep' - r
pacotesgerados
pacotesrecebidos
perda
progr. reproduçãop - r
progr. reproduçãop’ - r
tempo
pacotes
Atraso de reprodução adaptativo (1)
pacote ésimo- oreceber após rede na atraso do estimativa
pacote ésimo- o para rede da atraso
receptor no oreproduzid é pacote o qual no instante
receptor pelo recebido é pacote o qual no instante
pacote ésimo do tempode marca
id
itr
ip
ir
it
i
ii
i
i
i
• Estima o atraso da rede e ajusta o atraso de reprodução no início de cada intervalo de atividade.
• Intervalos de silêncio são aumentados e diminuídos.
• Blocos ainda são gerados a cada 20 ms nos intervalos de atividade.
Estimativa dinâmica do atraso médio no receptor:
)()1( 1 iiii trudud
onde u é uma constante fixa entre 0 e 1 (ex., u = 0,01).
É também usual estimar a variabilidade média do atraso, vi :
||)1( 1 iiiii dtruvuv
As estimativas de di e vi são calculadas para cada pacote recebido, embora elas sejam usadas apenas no início de um intervalo de atividade.
Para o primeiro pacote de um intervalo de atividade, o instante de reprodução é:
iiii Kvdtp
onde K é uma constante positiva. Para este mesmo pacote, o atraso dereprodução é:
iii tpq
Para o pacote j no mesmo intervalo de atividade, o pacote deve serreproduzido em:
ijj qtp
Atraso de reprodução adaptativo (2)
Como saber se um pacote é o primeiro de um intervalo de atividade:
Se nunca houvesse perdas, o receptor poderia simplesmente olhar nas marcas de tempo sucessivas. Se a diferença de marcas de tempo sucessivas for maior que
20 ms, então temos o início de um intervalo de atividade.
Mas porque as perdas são possíveis, o receptor deve olhar tanto as marcas de tempo como os números de seqüência dos pacotes. Se a diferença de marcas de tempo sucessivas for maior que
20 ms e não há pulos nos números de seqüência então tem-se o início de um intervalo de atividade.
Atraso de reprodução adaptativo (3)
Codecs de Aúdio
Codec Bandwidth[kbit/s]
MOS Complexidade[MIPS]
Packetização(tamanho)
[ms]
G.711 64 4.5 - -
G.721 (ADPCM) 32 4.4 6.5 -
GSM 13 3.8 4 20
G.729 8 4.1 15 10
G.723 6.4/5.3 4.0 20 30
Qualidade comercial
interlocutor reconhecível
inteligível
problemas de inteleg.
5
4
3
2
1
MOS (Mean Opinion Score)
MOS (Mean Opinion Score)
Codecs de Vídeo
• H.261 (p x 64 kbit/s)– Vídeo sobre ISDN– Resoluções : QCIF, CIF
• H.263 (< 64 kbit/s)– Comunicação de baixa taxa de
bits– Resoluções: SQCIF, QCIF,
CIF,4CIF, 16CIF (128 x 96)(176 x 144)(352 x 288)(704 x 576)(1408 x 1152)
SQCIFQCIF CIF 4CIF16CIF
Padrão MPEG
Moving Picture Expert Group Padrão criado para codificação de vídeo e audio MPEG1 – Baseado no H.261
Codificação intra-frame explorando redundâncias espaciais, usando DCT e entropy encoding (quadro I, como um JPEG)
Codificação inter-frame explorando redundância temporal, usa vetores de movimento para estimar próximo quadro (quadro P) ou interpolar quadro intermediário (quadro B, de “bidirecional”)
Codificação diferencial para quadros previstos ou interpolados
GOP (Groups of Pictures) – consiste de um quadro I mais uma sequência de quadros P's e B's.
Codificação de audio usando MP3 (MPEG layer 3)
Padrão MPEG (2)
MPEG1 possui compressão adaptada para mídias como CD-Rom, com taxa de playback típica de 1,2 Mbps
MPEG2: desenvolvido para fornecer maior qualidade para aplicações de transmissão, como TV Digital (padrão para DVDs)
MPEG4: define o conteúdo a ser transmitido a partir de um framework contendo objetos de mídia e descrição de cenas Além de audio e vídeo, permite a inclusão de outros tipos
de mídia, como animação e objetos de computação gráfica Cada componente numa cena “multimídia” é um objeto
com atributos espaciais e temporais indicando seu comportamento
Não impõe um mecanismo de transporte padrão, flexibilidade para a aplicação ou provedor
Define streaming, sincronização e renderização de forma a permitir escalabilidade, interatividade e boa qualidade para taxas baixas de transmissão (p/ex: 24 kbps)
TV Digital
Sistema de TV aberta onde a transmissão de vídeo e audio usa codificação digital, permitindo melhor aproveitamento da banda disponível para a TV analógica
Permite alta definição (HDTV): de 400x400 para até 1920x1080 pixels
Permite interatividade entre espectador e emissora Acesso a menu de programação Canal de retorno para compras, votação , etc (p/ex, via
linha telefônica) A recepção do sinal se dá através de Set-Top Boxes, que
recebem o sinal de TV digital e o convertem para aparelhos de TV analógica Recepção também pode se dar usando aparelhos de
HDTV Set-Top Boxes também podem ser usadas num cenário
onde o sinal de TV chega via rede (IPTV)
TV Digital
Comparação entre sistemas de TV
TV Digital (2)
Padrão Tecnológico Genérico:
Sistema Brasileiro de TV Digital
Arquitetura da TV Digital:
Sistema Brasileiro de TV Digital
Arquitetura da TV Digital:
TV Digital (3)
Padrões Tecnológicos:
Americano
Europeu
Japonês
Sistema Brasileiro de TV Digital
Adotado em Junho de 2006:
Sistema Brasileiro de TV Digital
Padrão brasileiro (ISDB-TB):
Baseado no padrão japonês (ISDB)
Compressão de Vídeo: MPEG4-AVC = H.264 Compressão de Áudio: MPEG4-AAC
Transporte:• MPEG2 p/ transmissão via satélite• RTP p/ transmissão por IPTV
Modulação COFDM Middleware: Ginga (Ginga-J e Ginga-NCL)
Sistema Brasileiro de TV Digital
Compressão de vídeo:
Sistema Brasileiro de TV Digital
Compressão de áudio:
Sistema Brasileiro de TV Digital
Receptor:
Sistema Brasileiro de TV Digital
Arquitetura Ginga-J:
Sistema Brasileiro de TV Digital
Decreto 5.820 define o Sistema Brasileiro de Televisão Digital Terrestre (SBTVD-T) possibilitará HDTV e transmissão em definição padrão (SDTV) transmissão digital simultânea para recepção fixa, móvel e
portátil, além de interatividade transmissão analógica continuará ocorrendo, simultâneamente
à digital, por um período de 10 anos até 29/06/2016 a partir de Jul/2013 somente serão outorgados canais para a
transmissão em tecnologia digital pelo menos quatro canais digitais para a exploração direta pela
União Federal como canal do Poder Executivo, Canal de Educação, Canal de Cultura e Canal de Cidadania
Sistema Brasileiro de TV Digital
O Ministério das Comunicações divulgou cronograma que prevê para Dez/07 o início das transmissões de TV Digital na cidade de São Paulo e em Dez/09 em todas as capitais do país.
Cada canal analógico corresponderá a um novo canal com largura de banda de 6 MHz.
Sistema Brasileiro de TV Digital
Implantação no mundo:
Até País
Agosto 2007 Finlândia
Outubro 2007 Suécia
Novembro 2007 Suíça
Final 2008 Alemanha
Fevereiro 2009 Estados Unidos
Outubro 2009 Dinamarca
2011 Canadá
2011 França
2011 Japão
2011 Coréia do Sul
2012 Hong Kong
2012 Irlanda
2012 Reino Unido
2015 China
2016 Brasil
2017 Rússia
IPTVInternet Protocol Television
Serviço de TV digital pela Internet
ISP's passam a ter capacidade de fornecer serviços no estilo
“TV por assinatura” a um custo mais baixo
“Triple Play”: Telefonia IP (VoIP), IPTV e acesso Internet banda
larga (tipicamente ADSL)
através de Set Top Boxes pode-se enviar o sinal para uma TV
analógica
Caminho historicamente inverso ao dos acessos via cable
modem
antes, Internet pegando carona na infra de TV por assinatura
agora, canais de TV pegando carona nos acessos DSL, que por
sua vez pegaram carona no acesso telefônico
IPTV (2)
Transmitir TV pela Internet com a mesma qualidade da TV aberta é problemático
Arquitetura de melhor esforço da Internet não privilegia
tráfego de vídeo
Futuro serviço de HDTV necessitará de mais banda e
intensificará o problema
Uso de multicast para diminuir o consumo de banda e
QoS para reserva de recursos e tratamento privilegiado
Bom modelo de negócio para ISP's e Telcos
AS's têm a possibilidade de implantar multicast e QoS
em seus backbones; contra-partida ao best effort da
Internet
IPTV (3)
IPTV engloba também serviços de Vídeo sob Demanda (VoD),
além da vídeo difusão de canais de TV (Live TV)
Recepção nos PC's ou usando Set Top Boxes
Protocolos mais usados são o MPEG2, MPEG4 e H.264
Potencializa a interatividade para escolha de programação,
busca de canais e uso conjunto de outras mídias (foto,
música, etc)
Sinalização para VoD usa o protocolo RTSP (Real Time
Streaming Protocol)
Interessante aplicação para explorar a tecnologia de
transmissão sem fio WiMax (802.16) e a FTTH (Fiber To The
Home)
Redes de distribuição de conteúdo (CDNs)
Réplica de conteúdo Desafio para transmitir fluxo de arquivos grandes (ex., vídeo) de um único servidor de origem em tempo real Solução: replicar o conteúdo em centenas de servidores por toda a Internet
Conteúdo é descarregado nos servidores CDN antes do tempo de uso
Colocar o conteúdo "próximo" ao usuário evita prejuízos (perda, atraso) de se enviar o conteúdo por longos caminhos
Servidor CDN tipicamente na rede de borda/acesso
Réplica de conteúdo Cliente CDN (ex., Akamai) é o
provedor de conteúdo (ex., CNN)
CDN replica o conteúdo dos clientes em servidores CDN. Quando o provedor atualiza o conteúdo, a CDN atualiza os servidores
CDNs (2)
Servidor de origem (www.foo.com) Distribui HTML Substitui:
http://www.foo.com/sports.ruth.gifpor http://www.cdn.com/www.foo.com/sports/ruth.gif
Companhia CDN (cdn.com) Distribui arquivos gif Usa seu servidor DNS
autoritativo para rotear requisições redirecionadas
CDNs (3)
Mais sobre CDNs
Requisições de roteador CDN cria um “mapa”, indicando as distâncias dos ISPs aos nós CDN Quando a consulta chega ao servidor DNS autoritativo:
Servidor determina ISP de onde se originou a consulta Utiliza o “mapa” para determinar o melhor servidor CDN
Nós CDN criam a rede de sobreposição da camada de aplicação
CDNs (4)
VoIP
O serviço de VoIP (Voice over IP) usa a rede IP para estabelecer e
efetivar uma conversação de voz ponto a ponto
A sigla VoIP também é usada para o serviço de Telefonia sobre
uma rede IP
Chamadas telefônicas são encaminhadas pela rede IP
Necessidade de protocolos para estabelecimento da chamada
(sinalização) e de outras funcionalidades do serviço de telefonia
convencional (audio-conferência, redirecionamento, etc)
Equipamentos específicos para conduzir o sinal do aparelho
telefônico para a rede IP e interfaceamento com a Rede de
Telefonia Pública (PSTN, Public Siwitched Telephony Network)
Requer QoS, dada uma alta sensibilidade a jitter, retardo e perda
VoIP (2)
Diagrama genérico dos componentes envolvidos:
VoIP (3)
GW (Gateway): interoperabilidade entre a rede IP e o STFC
(Sistema de Telefonia Fixa Comutada), conversão de mídia em
tempo real (codificação) e conversão de sinalização para as
chamadas telefônicas
GC (Gateway Controller): controle das chamadas em andamento
realizadas pelo GW, gera as informações de sinalização e
comanda o GW para iniciar, acompanhar e terminar uma chamada
GK (Gatekeeper): tradução de endereçamento, controle de acesso
dos equipamentos à rede de sua Zona, autorização de chamadas,
localização de GW, gerenciamento de banda, serviços de agenda
telefônica (lista) e serviços de gerenciamento de chamadas
MCU (Multipoint Control Unit): serviços de conferência entre 3 ou
mais terminais
VoIP (4)
Diagrama genérico para o cenário de um ambiente
corporativo:
CM (Call Manager): mesma função do Gatekeeper
AS (Aplication Server): fornece serviços adicionais, como
caixa postal, URA (Unidade de Resposta Audível) e agenda
telefônica
VoIP (5)
Diagrama genérico da pilha de protocolos que podem estar
envolvidos:
Grades Computacionais (Grids)
Grids: Modelo computacional que faz uso de recursos distribuídos
para resolver problemas e prover serviços que não poderiam ser
tratados no modelo tradicional centralizado (p/ex: física de altas
energias, previsão de clima, simulação de terremotos, etc)
Provê mecanismos escaláveis e confiáveis para descobrir,
integrar, reconfigurar e liberar múltiplos recursos de caráter
heterôgeneo, formando uma espécie de “cluster virtual”
Recursos podem ser: clusters, mass storages, computadores
comuns ou especializados, sensores, equipamentos, softwares,
etc
Permite o surgimento de organizações virtuais, ou seja, grupos
distribuídos de trabalho colaborativo que utilizam uma infra-
estrutura distribuída e especializada
Grades (2)
Para se rodar um job numa determinada grade computacional faz-
se necessário o uso de um middleware específico para esta grade
É o middleware quem estrutura a informação e interage com a
grade para alocar recursos, distribuir a aplicação, gerenciar sua
execução e apresentar os resultados
Três tipos básicos de grades (extraído do Wikipedia): grade de
dados, grade computacional e grade de equipamento (p/ex: operar
remotamente, obter e analisar dados de um super-telecópio)
Alguns produtos/middleware existentes:
Globus (kit de ferramentas da Globus Aliance)
BOINC (middleware de Berkeley)
Our Grid (iniciativa da UFCG, Brasil)
Grades (3)
Componentes do Globus Toolkit podem ser agrupados em
cinco categorias:
Serviços de alocação de recursos e gerência de execução
(escalonamento)
Serviços de autenticação, autorização e delegação
Transferência confiável de dados e serviços para acesso,
inserção e remoção de dados
Serviços de monitoração e descoberta
Serviços para controle on-line e instrumentação
Grades (4)
Alguns foruns para padronização de arquiteturas de Grades:
Global Grid Forum
IETF: RFC 2768
Enterprise Grid Aliance
Requisitos de rede dependem do tipo de aplicação:
Garantias de QoS
Transferências confiáveis em altas taxas (TCP modificado ou UDP
“confiável”)
Infra-estrutura de nível 2 e 1 possibilitando altas taxas
MPLS e VPNs (Virtual Private Network)
Multicast e anycast
Grades (5)
TCPs de alta velocidade: mecanismos de controle de congestionaento
adaptados para serem mais “agressivos” e rapidamente ocuparem a
banda disponível
Fast TCP, BIC TCP, High-speed TCP, Scalable TCP, TCP Westwood e
H-TCP
Além da rapidez na ocupação da banda disponível, é desejável
que o protocolo seja o mais justo possível (fairness)
Alguns mecanismos se baseam em (propõe) indicação explícita de
congestionamento proveniente dos roteadores (não é padrão)
Grades (6)
UDPs naturalmente são capazes de ocupar toda a banda disponível
de acesso, porém não fornecem confiabilidade na transmissão
(perdas pode ocorrer
Interessante para casos onde não há contenção de banda e a
perda é muito rara
Pacotes perdidos devem ser informados e retrasmitidos de
alguma maneira
Alguns UDPs confiáveis existentes: Reliable Blast UDP, UDP-based
Data Transfer Protocol e Tsunami
Usa conexão TCP para controle do que foi enviado ou perdido