SMU29009: Sistemas Multimidia

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar


Desafios para multimidia

Multimidia tem se tornado pervasiva em aplicações, e elas envolvem:

  • Manipulação de uma variedade de formas de midia
  • Aquisição, armazenamento e obtenção, transmissão e reprodução de diferentes tipos dados:
    • texto, imagens, voz, áudio, video, animação, ...
    • filmes: video + audio + legendas + outros dados descritivos ...


De forma genérica, sistemas multimidia apresentam certos desafios em seus projetos e operações. Tomando como caso representativo o caso de video, podem-se citar:

  • Entrega de dados de forma sincronizada, contínua, e respeitando prazos estritos
  • Demanda por grandes áreas de armazenamento
  • Do lado do provedor de serviço, a catalogação e indexação, busca e obtenção dentre milhares de videos (imagine Netflix, Amazon Prime, Youtube, e similares ...)


Aproveitando o exemplo sobre videos, e para ilustrar a questão do sincronismo para correta reprodução de diferentes tipos de conteúdo (ver figura a seguir), considere-se a constituição de um filme em meio digital. Estruturalmente, um filme é formado por um sequência de quadros de imagem acompanhada por uma ou mais trilhas de áudio e possivelmente trilhas de legendas. O usuáiro que deseja reproduzir um filme seleicona a trilha de áudio e de legendas (esta última caso necessário). A reprodução deve assim apresentar esses conteúdos de forma sincronizada, respeitando tempos estritos, para que o filme possa ser apreciado.


SMU-Video-exemplo.jpg
A constituição típica de um filme em meio digital


Dificuldades parecidas podem ser identificadas em outras aplicações multimidia. Tais desafios têm forte relação com o fornecimento desses serviços através da Internet. No cenário atual, como ilustrado na figura a seguir, diversas aplicações coexistem na Internet e são acessadas em larga escala. Em alguma medida elas envolvem interatividade, comunicação de tempo-real, exigências quanto a largura de banda, e até, em alguns casos, mecanismos específicos de disseminação.


SMU-Sistemas-exemplos.jpg
Um cenário atual de aplicações multimidia


Dentre essas aplicações, vale citar alguns exemplos específicos:

  • Video em broadcast ou multicast: videos armazenados ou ao vivo distribuidos de forma simultânea a múltiplos clientes
  • Video por demanda (VoD): videos armazenados que são selecionados por usuários, possivelmente com previsualização e possibilidade de controle de reprodução (pausa, avançar, retroceder)
  • Video quase por demanda (nVoD): videos populares que são transmitidos periodicamente, para que possam ser assistidos pelos interessados (isso dificulta o controle de reprodução)
  • Videoconferência: video, áudio, chat e possivelmente documentos compartilhados entre usuários dispersos geograficamente. A qualidade da conferência depende da disseminação sincronizada e eficiente de conteúdos entre os participantes.
  • Educação a distância (EaD): forums e aulas à distância envolvem as mesmas questôes de videoconferência, somadas ao trabalho cooperativo em documentos compartilhados
  • Jogos: jogos com múltiplos jogadores dispersos geograficamente, em que suas ações devem ser finamente sincronizadas para que a experiência do jogo seja consistente


Todas essas aplicaçoes requerem recursos para funcionarem corretamente, o que gera uma pressão sobre a infraestrutura e organização da rede e dos sistemas computacionais envolvidos.

Demandas por recursos

Dependendo do tipo de conteúdo, existe uma certa demanda por armazenamento, processamento e largura de banda. A tabela a seguir exemplifica alguns casos, comparando-os com as capacidades de transmissão de alguns tipos de dispositivos e tecnologias.


SMU-Demandas-recursos.jpg
Demandas por largura de banda de alguns tipos de conteúdo


Os dados exemplificados se referem à largura de banda bruta, sem qualquer compressão. Na prática, dados multimidia são (quase) sempre compactados. Sendo assim, a demanda por largura de banda (e armazenamento !) pode ser reduzida consideravelmente, como mostrado a seguir:

SMU-Compressao.jpg
Efeito da compressão na demanda por largura de banda


Mesmo com compressão de dados, existe uma largura de banda mínima que deve estar disponível para que uma transmissão multimidia possa ser realizada efetivamente. Mas, ainda que tal largura de banda possa ser fornecida, ela pode não ser suficiente. Existem outros efeitos de transmissão que podem inviabilizar o correto funcionamento de uma aplicação multimidia. Em particular existem o atraso fim-a-fim (delay) e a variação do atraso (jitter). Esses dois fatores estão diretamente relacionados com a sincronização entre transmissor e receptor, como ilustrado a seguir:


SMU-Delay-jitter.jpg
Atraso fim-a-fim e variação de atraso


Uma aplicação VoIP é um bom exemplo do efeito desses fatores relacionados com atraso. Seja um sistema de transmissão de voz como mostrado a seguir:

SMU-Voip-exemplo.jpg

Nesse sistema, o sinal de voz é amostrado a cada 125 us (8000 amostras/segundo). Cada amostra possui um tempo específico de 125 us para ser reproduzida, de forma que o som possa ser reproduzido no destino. Se um conjunto de 160 amostras é empacotado e enviado a cada 20 ms, cada pacote tem um prazo de até 20 ms, contados da recepção do pacote anterior, para ser recebido de forma que o som possa ser reproduzido sem interrupções (spikes). Porém quando um pacote viaja pela Internet ele se sujeita a um atraso entre sua transmissão pela origem e seua recepção no destino, caracterizando-se um atraso fim-a-fim. Além disso, podem ocorrer atrasos variáveis, principalmente devido a filas de espera em roteadores. Aplicações VoIP, portanto, precisam de técnicas para compensar esses fatores, sendo corriqueiro o uso de um buffer de reprodução que prearmazena uma certa quantidade de amostras de forma a evitar que o reprodutor fiquem sem dados (ver imagem a seguir). Porém isso tem limite, pois existe um valor máximo de atraso entre geração e reprodução que pode ser imposto sem tornar uma conversa difícil de entender (tipicamente 300 ms).

SMU-Buffer-reprodução.jpg
Efeito do buffer de reprodução para compensar jitter


Buffers de reprodução são largamente utilizados, o que indica que na maioria das vezes os atrasos de transmissão de pacotes são suficientemente pequenos (assim como seus jitters). A figura a seguir ilustra uma curva de densidade de probabilidade para atrasos de transmissão de pacotes. De acordo com ela, apenas 1% dos pacotes na Internet tem atrasos superiores a 150ms. Esses resultados foram obtidos em algum estudo (cuja fonte não foi identificada), porém é plausível. Se estiver correto, então a maior parte do tempo o uso de buffers de reprodução consegue ressincronizar o destino de uma transmissão com sua origem, possibilitando a reprodução correta de conteúdo.

SMU-Distribuicao-atrasos.jpg
Distribuição de atrasos de transmissão de pacotes


Se com audio esses problemas são relevantes, no caso de video se tornam ainda mais proeminentes. A demanda por recursos por video é significativamente maior que por audio. Um video tipicamente é formado por sequências de quadros (imagens), porém as técnicas de compressão utilizadas fazem com que cada novo quadro demande uma certa quantidade de dados para ser representado. Isso causa uma taxa de transmissão variável quando o video é transmitido, como exemplificado a seguir. Com taxa de dados variável, porém mantendo a demanda por sincronismo, o problema se torna mais complexo: com taxa vartiável os prazos para reprodução de quadros também variam, e a transmissão se caracteriza por rajadas (o que nçao ajuda na variação de atraso ao longo da rede).

SMU-Mpeg4-frame-sizes.jpg
Taxa de bits variável de um video

Essas demandas por recursos, e suas consequências infraestrutura de geração, transmissão e reprodução motivam o conceito de qualidade de serviço (QoS), que descreve o que é necessário para que uma determinada aplicação funcione conforme projetada.

Atividade

  1. Identifique as demandas por recursos de alguns conteúdos multimidia: largura de banda mínima e máxima requerida, atraso e jitter máximo
  2. Faça um estudo sobre o atraso fim-a-fim em diversos pontos da Internet: isso implica realizar uma quantidade significativa de medições do atraso entre sua localização e diferentes outros locais da Internet. Ao final, deve-se informar qual o atraso máximo com 1, 2 e 3 percentis de confiança.
  3. Faça um estudo sobre a variação de atraso nas transmissões de conteúdos multimidia: isso envolve analisar os intervalos entre pacotes, e gerar um histograma de frequência das variações de atraso. Ao final, deve-se informar qual o jitter máximo com 1, 2 e 3 percentis de confiança.
  4. Investigue e caracterize a taxa de bits de alguns videos ao longo de suas transmissões: isso envolve medir a taxa de bits dentro de intervalos regulares ao longo da transmissão. Gere um gráfico das taxas de bits do video do início ao fim da transmissão.

Qualidade de Serviço (QoS)

  • conceituação, parâmetros, exemplos
  • experimento com rede cabeada e sem-fio: video ?
  • mecanismos para atendimento de req. de QoS em redes: políticas de filas e descarte
  • Modelos de QoS na Internet: IPv4 e IPv6, Diffserv/Intserv


De acordo com Jens B. Schmitt, em seu livro Heterogeneous Network Quality of Service Systems, qualidade de serviço é o comportamento bem definido e controlável de um sistema de acordo com parâmetros mensuráveis quantitativamente. De forma parecida, o padrão ITU-T G.9660 define qualidade de serviço como um conjunto de requisitos nas comunicações na rede, cujo suporte se refere a mecanismos que podem prover prioridades diferentes para diferentes fluxos, ou podem garantir um nível mensurável de desempenho para um fluxo com base em um conjunto de parâmetros de qualidade de serviço. Essa definição do ITU-T se refere mais especificamente à comunicação, porém o conceito de QoS se aplica a outros domínios de um sistema.


Em uma visão geral, QoS está presente em diferentes níveis de um sistema. Sendo assim, requisitos de QoS podem se apresentar desde o processamento de uma aplicação em um nodo até a rede, como ilustrado a seguir. No caso desta disciplina, o foco do estudo sobre QoS está na rede, por isso devem-se caracterizar seus parâmetros e identificar mecanismos nesse nível.

SMU-Qos-layers.jpg
QoS em diferentes camadas


As definições sobre QoS enfatizam que devem existir parâmetros mensuráveis quantitativamente para caracterizar qualidade de serviço em cada nível. A tabela a seguir mostra alguns parâmetros que podem ser usados para essa finalidade, dependendo do nível em que especifiquem os requisitos de QoS.

SMU-Qos-parameters.jpg
Parâmetros de QoS


No caso específico de qualidade de serviço nas comunicações (na rede), podem-se definir parâmetros tais como:

  • Relacionados à vazão: taxa de bits máxima sustentável, tamanho máximo de rajada, tamanho máximo de pacote
  • Relacionados à atraso ou latência: máximo atraso fim-a-fim, máxima variação do atraso fim-a-fim (jitter)
  • Relacionados a perdas/resiliência: quantidade máxima de perdas por intervalo de tempo (taxa de perdas), quantidade máxima de perdas de pacotes sucessivas
  • Relacionados à disponibilidade: máxima duração de indisponibilidade por intervalo de tempo, intervalo mínimo enter indisponibilidades


Por exemplo, algumas aplicações típicas podem ter seus requisitos de QoS especificados como mostrado nesta tabela (de acordo com padrão G.114:

PJI4-Qos-itut.png
Requisitos de QoS de comunicação de algumas aplicações