Distribuição de Mídia Contínua Recuperação de Erros Jussara M. Almeida Junho 2005 Qualidade do Video e Audio • Afetada pela perda de pacotes e atrasos na rede • Uso de buffers no cliente minimiza impacto dos atrasos na rede • E quanto a perda de pacotes? – Mecanismos de controle de taxa de transmissao: minimiza mas nao elimina perda – Automatic Repeat Request (ARQ): retransmissao • Aumenta latencia: inadequado para aplicacoes ao vivo – Forward Error Correction (FEC): envio de informacao redundante • Nao altera latencia, mas aumenta consumo de banda Forward Error Correction • Compromisso: – Enviar grande quantidade de informacao redundante aumenta a probabilidade de recuperacao frente a perdas – Porem aumenta o consumo de banda na rede e, consequentemente, a taxa de perdas • Logo: mecanismo de FEC tem que ser acoplado a um esquema de controle de taxa de transmissao. • Alem disto, a quantidade de informacao redundante que deve ser enviada depende: – Caracteristicas do processo de perdas de pacotes no momento – Restricoes de atraso entre servidor e cliente – Qualidade da informacao redundante Problema • Dados a taxa total que o servidor pode suportar transmitir e o atraso maximo suportado pelo cliente, determinar a combinacao de informacao principal e informacao redundante que prove a melhor qualidade de audio percebida pelos usuarios • Objetivo: utilizar metricas subjetivas de qualidade de audio – Simplesmente taxa de perda de pacotes nao e suficiente – EX: 10 perdas de 1 pacote cada espacadas vs. 1 perda de 10 pacotes consecutivos Modelo de Perda de Pacotes • Area de pesquisa ativa • Modelo mais simples: modelo de Gilbert de 2 estados p 1-p 0 1 1-q q Probabilidade de perda = p / (p+q) Modelo de FEC 1 - mais simples • Inclui no pacote n+1, em adicao aos frames correspondentes, informacao sobre o pacote n que pode ser usado para reconstruir (uma aproximacao) do pacote n – Esquema aprovado pelo IETF: informacao redundante e uma codificacao com bitrate mais baixa do pacote n. – Surpreendentemente, a qualidade subjetiva do audio reconstruido com este metodo foi avaliada como muito boa – Mecanismo suporta recuperacao de perdas isoladas • Se 2 pacotes consecutivos sao perdidos nao e possivel recuperar informacao sobre um deles Modelo de FEC 2 • Inclui no pacote n+1, em adicao aos frames correspondentes, informacoes redundantes sobre os pacotes n e n-1, ou sobre os pacotes n, n-1 e n2, ou sobre os pacotes n-1 e n-3, etc – Mecanismo suporta recuperacao de perdas em rajadas • Informacao redundante de um pacote e espalhada por multiplos pacotes – Quanto mais info redundante e adicionada, maior o numero de pacotes perdidos que poderao ser reconstruidos – Problema: quantidade de informacao redundante depende do processo de perda na rede no momento em questao Modelo de FEC 3 • Algoritmo adaptativo simples – Precisa saber o beneficio que cada informacao extra fornece para escolher a combinacao perfeita – Para estimar este beneficio, usa o modelo de Gilbert para perdas de pacotes: • Ausencia de FEC – Probabilidade de perda: 1 = p / (p+q) • FEC com pacote n contendo info sobre pacote n-1 – Probabilidade de perda pos reconstrucao: 2 = p (1-q) / (p+q) – 2/1 = (1-q): – Se q = 0.7 (tipico), reducao na perda de 70% Modelo de FEC 3 Modelo de FEC 3 • Algoritmo adaptativo simples – Tendo uma taxa de perda de pacotes alvo como objetivo basta que o servidor escolha o metodo de redundancia que leve a taxa de perdas mais proxima do objetivo – Precisa saber p e q • Cliente pode medir e retornar em campos livres do RTCP • Assume que processo de perda e Bernoulli: p + q = 1. Taxa de perdas (p / p+q) observada e igual a p. Modelo de FEC 3 • Exemplo Modelo de FEC 3 • Desvantagens – Algoritmo minimiza taxa media de perdas (apos reconstrucao), que nao necessariamente implica melhor qualidade de audio • EX: qualidade seria pobre se qualidade da info usada para reconstrucao e baixa – Adicionar info redundante aumenta demanda por banda: precisa acoplar algoritmo a um mecanismo de controle de transmissao • Objetivo e que servidor dinamicamente ajuste a taxa de transmissao e a quantidade de info redundante enviada para minimizar a perda percevida pelos clientes Modelo de FEC 4 • Modelo de otimizacao conjunto para otimo FEC e taxa de transmissao • Seja f(x): qualidade de um audio com taxa x • Sejam 0 e 1 as probabilidades de um pacote ser recebido e ser perdido, respectivamente – Calculadas de uma cadeia de Markov • Seja um esquema de FEC que envia K copias de cada pacote (K-1 redundantes + 1 principal) • Seja ainda T o atraso maximo entre enviar a primeira e a ultima copia de um pacote Modelo de FEC 4 • Questao 1: Dados que vamos transmitir k copias de cada pacote e o atraso maximo T, como devemos espacar as copias de forma a maximizar a probabilidade de que pelo menos uma copia seja recebida? – Seja p11(t) a probabilidade de que o processo de perdas esteja no estado 1 (perda) no instante t + , dado que ele estava no estado 1 no instante – Probabilidade de perder TODAS as K copias de um pacote Modelo de FEC 4 • Questao 1: Dados que vamos transmitir k copias de cada pacote e o atraso maximo T, como devemos espacar as copias de forma a maximizar a probabilidade de que pelo menos uma copia seja recebida? • Solucao otima: as K copias devem ser igualmente espacadas no intervalo [0,T] Modelo de FEC 4 • Questao 2: Dado que K copias serao transmitidas igualmente espacadas no intervalo de tamanho T, quais as taxas de codificacao a serem usadas para cada copia, a fim de maximizar a qualidade de audio, sujeito a restricoes na taxa maxima – Informacao principal deve ser codificada usando a maior taxa possivel – A ultima copia deve ter maior taxa que todas as outras copias • Algoritmo heuristica para alocacao de taxas discretas – Confuso Avaliacao • Impacto da funcao de qualidade de audio – f0(x) = x • Solucao otima sempre aloca a taxa maxima para a informacao principal e nao envia nenhuma info redundante – f1(x): baseada na razao sinal/ruido – f2(x): baseada no mean opinion score (MOS) (subjetivo) – f3(x) = 1 para x 0 e f3(0) = 0 • Funcao e maxima se pelo menos alguma informacao e recebida, independente da qualidade dela: minimiza taxa de perdas, enviando muita info redundante Avaliacao • Impacto da funcao de qualidade de audio Avaliacao • Funcionamento (T=4) • Encontra combinacao otima de info redundante ao inves de pegar uma combinacao fixa que leva a uma taxa alvo – Leva em consideracao banda disponivel e perdas ocorridas no momento e restricao de atraso Avaliacao • Funcao que leva a melhor qualidade percebida e a f2(x), baseada nos MOS scores • Pouca diferenca entre usar f0 (sem FEC) e otimizar f1 (signal/noise ratio) – Otimizar para SNR leva a qualidade pobre Avaliacao • Impacto de T (ou numero de copias redundantes) Avaliacao • Impacto de T (ou numero de copias redundantes) – Adicionar 1 copia (adicionar info redundante em pacote n sobre pacote n-1) melhora significativamente qualidade • Exceto para f1 (signal/noise ratio) que e proxima de f0 (sem FEC) – Observar diminishing returns: adicionar pouca quantidade de redundancia ja leva a maioria do beneficio provido por FEC – Notar variacao da qualidade com a funcao utilizada • Necessidade de escolher f cuidadosamente Distribuição de Mídia Contínua Protocolos de Transmissao com Recuperação de Erros Jussara M. Almeida Junho 2005 • Digital Fountain: Base – Download com recuperação de erros – Erasure codes – Alta latência inicial • Transmissão sob demanda com compartilhamento de fluxos – Periodic Broadcast, Patching, Bandwidth Skimming – Recuperação de erros: local error concealment • Adequado para baixas taxas de perdas – Dificil extensão para recuperação de outras perdas • Transmissão de pacotes o mais tarde possível Base • Novos protocolos baseados em periodic broadcast (Harmonic Broadcast) – Cada segmento recebido inteiramente antes de playback – Extensão para uso de erasure code: fácil – Mas: • Cliente tem que escutar todos segmentos simultaneamente (b=5,10) : • Grande quantidade de buffer no cliente Revisão • Skyscraper Broadcast (b = 2) – Parametros: # e tamanho dos segmentos Revisão • Harmonic Broadcast – Divisão do arquivo em segmentos de tamanho iguais, segmento k transmitido a taxa 1/k – Clientes escutam todos segmentos simultaneamente, comeca a tocar cada segmento depois de recebe-lo inteiramente – Alta latência, alto b Revisão • Bandwidth Skimming – Closest Target (b=2), Partition (b < 2) Revisão • Bandwidth Skimming Revisão • Banda do Servidor para Protocolos com d > 0 Revisão • Banda Media do Servidor Minima: Objetivo • Novos protocolos baseados em periodic broadcast e bandwidth Skimming com as características: – Conveniência: baixa latência (dentro de limite) – Tolerância a taxas de perdas e heterogeneidade – Confiabilidade: recuperação de erros se taxa de perda acumulada dentro de um limite pre-definido – Eficiência: mínimo feedback do cliente, mínima quantidade de dados para clientes – Mídia de Alta Qualidade: max taxa de transmissão do cliente limitada (eg: 25% maior que taxa de playback) – Escalabilidade: demanda por banda do servidor próxima da mínima • Espaço de Trabalho: Fig 4 Recuperação de Perdas • Três classes de estratégias: – Erasure code (FEC) – Retransmissão via unicast – Retransmissão via multicast • Análise qualitativa: – Complexidade de implementação: • (De)codificação X implosão de retransmissão/feedback – Latência inicial: • Mesma magnitude esperada em todas estratégias • Mais facilmente estimada para erasure code Recuperação de Perdas – Escalabilidade: • Retransmissão via multicast : – Alguns clientes podem receber dados desnecessários • Erasure code: – Um dado redundante usado para recuperar perdas diferentes – Maior escalabilidade esperada Recuperação de Perdas • Escalabilidade: avaliação analítica – Retransmissão via multicast: solução numérica Recuperação de Perdas • Escalabilidade: avaliação analítica Reliable Periodic Broadcast 1. Optimized Periodic Broadcast: – – – – – Max progressão de tamanhos de segmentos para: • Taxa de transmissão de cada segmento: r ( r < 1) • Número de fluxos simultâneos cliente pode escutar: s Cliente recebe cada segmento inteiramente antes de tocá-lo Recuperação de perdas local Min latência para banda do servidor fixa ou viceversa Objetivo: explorar trade-offs para b = r*s < 2 Reliable Periodic Broadcast 2. Basic Reliable Periodic Broadcast: – Recuperação de perdas com erasure code – Taxa de perda acumulada ao final de cada segmento p 3. Reliable Periodic Broadcast: – Rajadas: maior taxa de perdas nos primeiros segmentos 4. Heterogeneidade de clientes e transmissão com perdas maiores que o limite pre-definido p Optimized Periodic Broadcast • Perda de pacotes: local error concealment • Segmento inteiramente recebido antes de iniciar visualização • Protocolo: Optimized Periodic Broadcast • • Protocolo: – – Novo cliente imediatamente começa a escutar os primeiros s fluxos Quando primeiro segmento completamente recebido: • Cliente inicia visualização e • Começa a receber segmento s+1 Max progressão dos tamanhos dos segmentos: – r = 1: – r < 1: – Extensões para incluir overhead de decodificação e de estabelecer conexão multicast Optimized Periodic Broadcast • Desempenho: Optimized Periodic Broadcast • Desempenho: – Banda do servidor : • Optimized PB competitivo com Skyscraper apesar de exigir recebimento total de cada segmento antes de visualização • Menor r melhor desempenho – Menor latência para banda fixa ou menor banda para latência fixa – Frequência de Multicasts : • Lower bound: 1/(x+d) • Dados no mesmo segmento transmitidos na mesma freq. • Menor r, maior k, menor tamanho do segmento Basic Reliable Periodic Broadcast • Cada segmento transmitido como digital fountain usando erasure code Basic Reliable Periodic Broadcast • • Cada segmento transmitido como digital fountain usando erasure code – Sem limites de segmentos – Poucas perdas no início levam a início dos próximos segmentos mais cedo e permite mais perdas no final (desde que acumulada esteja limitada a p Premissa: taxa de perda de pacotes acumulada ao final do recebimento de cada pacote limitada a p Basic Reliable Periodic Broadcast • Nova progressão de segmentos – a = 1/(1-p) : # pacotes recebidos – a pode incluir acréscimo devido a redundancia • p=0.2 e eficiência de decodificação = 1.05: p = 1.05*1.25 = 1.3125 Basic Reliable Periodic Broadcast • Desempenho do Basic RPB: Basic Reliable Periodic Broadcast • Desempenho do Basic RPB: Basic Reliable Periodic Broadcast • • Desempenho do Basic RPB: – Tradeoff entre latência e banda para perda fixa. – Menor r, maior desempenho (diminishing returns) – Mas menor r, maior # segmentos, segmentos menores, menor overhead de decodificação. Extensão para rajadas de perdas: – Segmentos iniciais, menores, mais afetados – Parâmetro a = 1/1 – p * eficiência de decodificação – Segmentos iniciais tem valores de a maiores Basic Reliable Periodic Broadcast • Max perda permitida para diferentes posições do arquivo usando valores de a variáveis: Heterogeneidade de Clientes • Soluções: – Simulcast: diversas versões do objeto – Codificação em camadas • Pode-se acomodar heterogeneidade de clientes (limitada) com o RPB: – Explorar trade-offs entre latência, taxa de perdas e taxa de transmissão para cliente – Políticas específicas: future work Reliable Bandwidth Skimming • Transmissão em dois fluxos a taxa total 1/(1-p) – Primário, a taxa 1 – Secundário a taxa p/(1-p): deslocado no tempo para prover melhor proteção contra rajadas • Merges ocorrem como no BWSkim básico entre fluxos primários e entre fluxos secundários. Reliable Bandwidth Skimming • Desempenho RPB vs. RBS • RBS: – Banda de servidor é função da carga (se carga leve, demanda pequena) – Suporte para interatividade • RPB: – Um pouco mais eficiente com respeito a quantidade de dados recebidos por cada cliente – Mais tolerante a rajadas de perdas sem interrupção