BRPI0808629A2 - Redução de efeitos de perda de pacotes em transmissões de vídeo. - Google Patents

Redução de efeitos de perda de pacotes em transmissões de vídeo. Download PDF

Info

Publication number
BRPI0808629A2
BRPI0808629A2 BRPI0808629-0A BRPI0808629A BRPI0808629A2 BR PI0808629 A2 BRPI0808629 A2 BR PI0808629A2 BR PI0808629 A BRPI0808629 A BR PI0808629A BR PI0808629 A2 BRPI0808629 A2 BR PI0808629A2
Authority
BR
Brazil
Prior art keywords
data
protection
error correction
packet
packets
Prior art date
Application number
BRPI0808629-0A
Other languages
English (en)
Inventor
Jingyu Qiu
Timothy M Moore
Guo-Wei Shieh
Zong Zong Yuan
Regis Crinon
Arvind Jayasundar
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0808629A2 publication Critical patent/BRPI0808629A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/007Unequal error protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

“REDUÇÃO DE EFEITOS DE PERDA DE PACOTES EM TRANSMISSÕES DE VÍDEO”
Antecedentes da Invenção
Redes de computador, tal como a Internet, revolucionaram a maneira na qual pessoas obtêm informação. Por exemplo, modernas redes de computador suportam o uso de comunicações por correio eletrônico para transmitir informação entre pessoas que têm acesso à rede de computador. Cada vez mais sistemas estão sendo desenvolvidos para habilitar a troca de dados sobre uma rede que tem um componente em tempo real. Por exemplo, um fluxo contínuo de vídeo pode ser transmitido entre computadores conectados por uma rede, de maneira tal que as condições da rede possam afetar como a informação é apresentada ao usuário. No geral, dados são transmitidos em uma rede de computador em pacotes. Infelizmente, ocorre perda de pacotes quando um ou mais pacotes que são transmitidos na rede de computador não conseguem alcançar seus destinos. Inúmeros fatores podem ocasionar a perda de pacotes: uma rede sobreutilizada, degradação de sinal, hardware defeituoso e assim por diante. Quando ocorre perda de pacotes, problemas de desempenho podem se tornar perceptíveis ao usuário. Por exemplo, no contexto de um fluxo contínuo de vídeo, a perda de pacotes pode resultar em “artefatos” ou distorções que são visíveis em uma seqüência de quadros de vídeo.
A perda de pacotes na rede é comum. Ela acontece na Internet pública, DSL, cabo, rede de área local sem fios (WLAN), 3G sem fios e muitos outros tipos de redes. A taxa estimada de perda de pacotes na Internet é de 5 %, e algumas redes sem fios podem ter perda de pacotes acima de 10 %. Protocolos de transmissão em rede confiáveis, tal como o Protocolo de Controle de Transmissão (TCP), retransmitirão um pacote se o meio de transmissão soltar o pacote, assim, garantindo a distribuição do pacote. Protocolos não confiáveis, tal como o Protocolo de Datagrama Não Confiável (UDP)1 não garantem a distribuição do pacote e não retransmitem pacotes soltos. Retransmitir pacotes leva tempo e consome largura de banda adicional. Em função da natureza de tempo real da comunicação por vídeo, sinais de vídeo são frequentemente transmitidos usando protocolos não confiáveis e, portanto, apresentarão perda de pacotes na rede.
Para uma comunicação de vídeo em tempo real, um terminal transmissor transmite quadros de vídeo através da rede para um terminal receptor, algumas vezes, em uma taxa de 20 até 30 quadros por segundo, ou mais. Quadros são divididos em pacotes com base na Unidade Máxima de Transmissão (MTU) permitida pela rede (por exemplo, 1.500 bytes para Ethernet). Um quadro de vídeo pode ser pequeno o suficiente para se ajustar em um pacote, ou pode ser grande o suficiente para exigir muitos pacotes. Para alguns compressores / descompressores de vídeo (codecs), se algum dos pacotes em um quadro for solto, então, o terminal receptor deve descartar todo o quadro em função dos dados ausentes. Além do mais, frequentemente, codecs usam uma estrutura de dependência para reduzir a quantidade de dados de vídeo que um terminal transmissor transmite na rede. Por exemplo, um quadro chamado de intraquadro (I) é codificado por completo com base nos seus conteúdos. Quadros subsequentes são comprimidos com base em um delta (sinal de diferença) dos quadros anteriores. Estes quadros são frequentemente chamados de quadros de previsão (P). Alguns codecs introduzem estruturas de dependência ainda mais complexas. Por exemplo, o codec pode transmitir ocasionalmente quadros P especiais chamados de quadros de superprevisão (quadros SP) que, em oposição a quadros P regulares, não dependem do quadro P ou do quadro I imediatamente precedentes, mas, em vez disto, de um quadro SP ou de um quadro I mais antigo. Tipicamente, os conteúdos de tais quadros SP são menos correlacionados com o quadro de referência e, assim, portam mais dados de vídeo. Um outro tipo de quadro é um entrequadro ou quadro bidirecional (B), que contém um delta tanto para um quadro anterior quanto para um quadro subsequente. Estes tipos de dependências interquadros reduzem a quantidade de dados que o terminal transmissor transmite na rede, mas as dependências também exageram os efeitos da perda de pacotes na rede. Por exemplo, se um quadro I for solto, o terminal receptor ficará com falta de dados para todos os quadros P subsequentes que dependem do quadro I, e o usuário verá artefatos de vídeo até que o próximo quadro I chegue. Se a perda de pacotes na rede for de 1 %, um quadro I de 10 pacotes tem uma chance de 10 % de ser solto, de acordo com a seguinte fórmula:
P,= 1 -(1 -P)N
Em que P| é a probabilidade de perder um quadro I, P é a probabilidade de perder algum pacote, e N é o número de pacotes no quadro. Se um quadro I tiver uma chance de 10 % de ser solto, então, quadros subsequentes que dependem do quadro I têm uma chance de 10 % de ter artefatos de vídeo, mesmo se todos os quadros subsequentes chegarem corretamente no terminal receptor.
Um método tradicional para reduzir os efeitos da perda de pacotes é correção de erro antecipada (FEC). Correção de erro antecipada (FEC) é um sistema de controle de erro para transmissão de dados, de acordo com o que, o terminal transmissor adiciona dados 30 redundantes às suas mensagens que permitem que o terminal receptor detecte e corrija erros (em algum limite), sem a necessidade de solicitar dados adicionais ao terminal transmissor. A vantagem da correção de erro antecipada é que a retransmissão de dados pode ser frequentemente evitada (ao custo de maiores exigências de largura de banda em média) e, portanto, é aplicada em situações em que retransmissões são relativamente onerosas ou 35 impossíveis, tal como durante a transmissão de dados de vídeo em tempo real. Diferentes algoritmos de FEC têm diferentes exigências de largura de banda e fornecem diferentes níveis de proteção contra perda de pacotes, então, diferentes algoritmos de FEC são adequados para diferentes condições. Infelizmente, é difícil para o terminal transmissor determinar qual algoritmo de FEC fornecerá a melhor experiência de vídeo para uma conexão de rede em particular. Frequentemente, o terminal transmissor também tem limitações de largura de banda e de recurso computacional que toma vantajosa a eficiente escolha de algoritmos de FEC. Além do mais, muitos terminais transmissores são responsáveis por transmitir dados de vídeo para muitos terminais receptores diferentes simultaneamente, de maneira tal que determinações que são realizadas para cada terminal possam se tornar muito onerosas em termos de recursos disponíveis no terminal transmissor.
Sumário da Invenção
São fornecidos método e sistema para reduzir os efeitos da perda de pacotes nas transmissões de vídeo, referido como o sistema de correção de erro. O sistema de correção de erro determina um nível de proteção da correção de erro para aplicação em dados de um quadro de vídeo a ser transmitidos por um terminal transmissor para um terminal receptor com base no impacto previsto da perda de pacotes, bem como na importância do quadro com base nas dependências interquadros, no tamanho do quadro, na probabilidade da perda de pacotes, no padrão histórico da perda de pacotes, na carga da unidade central de processamento e na largura de banda de rede disponível. O sistema de correção de erro usa o nível de proteção pré-determinado para produzir pacotes de proteção. O terminal transmissor transmite os pacotes de proteção para o terminal receptor juntamente com os pacotes que contêm o quadro de vídeo. No terminal receptor, quando a perda de pacotes for detectada para um quadro em particular, o terminal receptor tentará recuperar o quadro usando todos os pacotes de proteção recebidos com base no esquema de codificação de proteção usado por um dado pacote de proteção.
Este Sumário é fornecido para introduzir, de uma forma simplificada, uma seleção de conceitos que é adicionalmente descrita a seguir na Descrição Detalhada. Não pretendese que este Sumário identifique recursos chaves ou recursos essenciais do assunto em questão reivindicado, nem pretende-se que seja usado para limitar o escopo do assunto em questão reivindicado.
Descrição Resumida dos Desenhos
A figura 1 é um diagrama de blocos que ilustra componentes do sistema de correção de erro em uma modalidade.
As figuras 2A e 2B ilustram uma seqüência exemplar de quadros em um fluxo contínuo de vídeo em uma modalidade.
A figura 3 ilustra um ambiente de rede típico no qual um terminal transmissor transmite dados de vídeo para um terminal receptor em uma modalidade.
A figura 4 ilustra um ambiente de rede para transmitir dados de vídeo para múltiplos terminais receptores em uma modalidade. A figura 5 é um fluxograma que ilustra o processamento do componente de dados de transmissão do sistema em uma modalidade.
A figura 6 é um fluxograma que ilustra o processamento do componente de dados de transmissão do sistema em um ambiente de videoconferência com múltiplos terminais receptores em uma modalidade.
Descrição Detalhada
Visão Geral
São fornecidos um método e sistema para reduzir os efeitos da perda de pacotes em transmissões de vídeo, referidos como o sistema de correção de erro. O sistema de correção de erro determina um nível da proteção da correção de erro para aplicação em dados de um quadro de vídeo a ser transmitidos por um terminal transmissor para um terminal receptor com base no impacto previsto da perda de pacotes bem como na importância do quadro com base nas dependências interquadros, tamanho do quadro, probabilidade da perda de pacotes, padrão histórico da perda de pacotes, carga da unidade central de processamento (CPU) e largura de banda da rede disponível. O terminal transmissor pode aplicar um nível de proteção em um quadro que varia de zero (nenhuma proteção) até N (qualquer número maior que zero), em que cada número subsequente envolve um maior nível de proteção. Tipicamente, cada nível de proteção subsequente inclui mais dados de recuperação e consome recursos computacionais adicionais para criar os dados de recuperação. Um modelo matemático para prever o impacto da perda de pacotes na qualidade do vídeo foi descrito no pedido US 11/591.297, intitulado “Dynamic Modification of Video Properties”, depositado em 31 de outubro de 2006, que é, por meio deste, aqui incorporado pela referência. Usando este e outros modelos matemáticos, o sistema de correção de erro pode determinar o nível de proteção que fornecerá um nível alvo de perda de pacotes.
O sistema de correção de erro passa o nível selecionado de proteção a um codec de proteção de canal, tais como o Turbo codec ou o codec Reed-Solomon, para produzir pacotes de proteção do nível selecionado. O terminal transmissor transmite os pacotes de proteção para o terminal receptor juntamente com os pacotes que contêm o quadro de vídeo. Por exemplo, o terminal transmissor pode anexar os pacotes de proteção depois dos pacotes de quadro de vídeo ou pode transmitir os pacotes de proteção em uma conexão diferente como uma carga útil separada. No terminal receptor, quando a perda de pacotes for detectada para um quadro em particular, o terminal receptor tentará recuperar o quadro usando todos os pacotes de proteção recebidos com base no esquema de codificação de proteção usado por um dado pacote de proteção. Assim, o sistema de correção de erro fornece uma eficiente maneira de selecionar um nível de proteção apropriado com base nas características da conexão entre o terminal transmissor e o terminal receptor. O sistema de correção de erro produz um aumento na eficiência dos pacotes recebidos. Por exemplo, em sistemas anteriores, um servidor pode transmitir dados em uma taxa de 300 kbps, mas, em virtude do número de quadros I perdidos, a taxa de recepção real percebida pelo usuário pode ser equivalente a uma taxa de vídeo de somente 128 kbps.
Usando o sistema de correção de erro, mais quadros I que ficam perdidos ou que chegam corrompidos são recuperados pelo terminal receptor. Portanto, um servidor transmitindo em uma taxa de 300 kbps pode produzir uma taxa recebida de 270 kbps ou ainda maior (já que ainda pode haver alguma perda de pacotes de quadros menos significativos). Dessa maneira, a eficiência usando o sistema de correção de erro é muito maior. Isto resulta em econo10 mia de custos de largura de banda para o terminal transmissor, economia de CPU, e em uma melhor experiência para o usuário do terminal receptor.
A seguinte descrição apresenta técnicas de redução de perda de pacotes aplicáveis entre um único terminal transmissor e terminal receptor. Então, estas e outras técnicas são descritas no contexto de um servidor de videoconferência no qual um único terminal transmissor fornece dados para transmitir para muitos terminais receptores. Finalmente, formatos de pacote para realizar estas técnicas são descritos.
Técnicas de Ligação Única
Da forma supradescrita, há diversos níveis de proteção possíveis, variando de zero (nenhuma proteção) até N (qualquer número maior que zero), em que cada número subsequente envolve um maior nível de proteção. Versados na técnica percebem que o sistema de correção de erro pode aplicar muitos tipos diferentes de correção de erro para produzir um nível de proteção em particular, tais como uma operação lógica OU exclusivo (XOR), o algoritmo Reed-Solomon, o algoritmo Viterbi e assim por diante. Cada nível de proteção é ligeiramente mais oneroso, tanto no tamanho quanto na intensidade computacional, para computar os dados de proteção. Portanto, é desejável escolher o nível ideal de proteção para todos os conjuntos de condições em particular. O nível de proteção exigido pode ser determinado com base no tamanho do quadro e no percentual histórico de perda de pacotes. Quadros maiores têm uma maior probabilidade de que pelo menos um pacote que porta dados para o quadro seja perdido e, portanto, exigem um maior nível de proteção. Similarmente, à medida que o nível histórico de perda de pacotes aumenta, um maior nível de proteção é exigido para fornecer ao terminal receptor informação suficiente para recuperar os pacotes perdidos.
Em algumas modalidades, o terminal receptor fornece uma indicação da perda de pacotes histórica ao terminal transmissor. No geral, dados de vídeo são transmitidos em uma ligação não confiável que não reconhece pacotes. Entretanto, usualmente, há um canal de retorno através do qual o terminal receptor comunica periodicamente (por exemplo, a cada cinco segundos) com o terminal transmissor para indicar a perda de pacotes histórica. Uma maneira de determinar a perda de pacotes é pela atribuição de um número de seqüência a cada pacote transmitido pelo terminal transmissor. Então, o terminal receptor determina a perda de pacotes pela contagem de quantos números de seqüência não chegaram.
Em algumas modalidades, o sistema de correção de erro tenta dividir um quadro em pacotes uniformemente dimensionados. Para alguns algoritmos de correção de erro, pacotes de proteção devem ser tão grandes quanto o maior pacote do quadro de vídeo. Portanto, pela uniforme distribuição dos dados de quadro através dos pacotes, o sistema de correção de erro reduz o tamanho dos pacotes de proteção. Os pacotes de correção de erro podem seguir os dados de vídeo e ter uma quantidade com base no nível de proteção. Por exemplo, se o sistema de correção de erro aplicar um nível de proteção um, então, um pacote de correção de erro seguirá os dados de vídeo. Se o sistema de correção de erro aplicar um nível de proteção dois, então, dois pacotes seguirão os dados de vídeo, e assim por diante. Reduzir o tamanho dos pacotes de proteção também economiza largura de banda.
Em algumas modalidades, se o último pacote do quadro de vídeo for menor que os outros pacotes, então, o sistema de correção de erro adiciona pseudo-registros ao último pacote para fazer com que ele tenha um tamanho similar aos outros pacotes do quadro de vídeo. Por exemplo, um quadro de 10.000 bytes pode ser dividido em sete pacotes de 1.500 bytes, em que o último pacote tem somente 1.000 bytes. A correção de erro adicionará 500 bytes de pseudo-registros no último pacote para torná-lo do mesmo tamanho de cada um dos outros pacotes. Em algumas modalidades, para economizar largura de banda, o sistema de correção de erro não transmite os pseudo-registros do terminal transmissor para o terminal receptor. Em vez disto, o terminal receptor adiciona os pseudo-registros com base no tamanho dos pacotes precedentes ou com base na informação de um cabeçalho do último pacote. Por exemplo, se o terminal receptor receber um pacote de 1.000 bytes com um cabeçalho que indica que o tamanho total do pacote deve ser de 1.500 bytes, o terminal receptor adicionará 500 bytes de pseudo-registros. Bytes de pseudo-registros podem conter um valor pré-selecionado, tal como zero.
Em algumas modalidades, o sistema de correção de erro pré-calcula dados de proteção transmitidos em pacotes de proteção. Realizar cálculos de correção de erro pode ser oneroso, e o pré-cálculo desloca o processamento oneroso para um momento em que o terminal estiver menos ocupado. Por exemplo, para qualquer dado tamanho de quadro e nível de perda de pacotes, um terminal pode calcular um nível de proteção apropriado para uso antes mesmo de o terminal transmissor se conectarem um terminal receptor. O terminal receptor pode construir uma tabela a partir desta informação que contém um mapeamento entre níveis de proteção e níveis esperados de perda de pacotes e de tamanhos de quadro. Então, durante a transmissão, o terminal transmissor pode buscar o nível de proteção apropriado para uso com base em um tamanho de quadro e nível histórico de perda de pacotes em particular. Em essência, o nível de proteção de erro se torna adaptativo e varia em função do tempo.
Em algumas modalidades, o sistema de correção de erro aplica proteção primariamente nos quadros I e nos quadros SP. Da forma supradescrita, um terminal transmissor 5 pode transmitir dados de vídeo usando uma estrutura de dependência, de maneira tal que muitos outros quadros (por exemplo, quadros PeB) dependam dos quadros I e SP. Se um quadro P for perdido, então, talvez, haja somente uma folga de poucos milissegundos (por exemplo, 33 ms, se a taxa de quadro for de 30 quadros / seg, ou 66 ms, se a taxa de quadro for de 15 quadros / seg) no vídeo, enquanto que, se um quadro I for perdido, potencialmen10 te, um segundo ou mais de vídeo pode ser perdido. Mesmo embora alguns dos quadros P e B cheguem, não haverá informação suficiente sem o quadro I ausente para manter um fluxo contínuo de vídeo consistente durante aquele período. Experimentos mostraram que usuários perceberão uma grande perda pior que a pequena perda rotineira. Portanto, perder um quadro I ou SP terá um efeito mais notável na qualidade do vídeo exibido no terminal recep15 tor. Quadros I e SP também são muito mais propensos a se perder em função de seus maiores tamanhos e correspondentes maiores números de pacotes exigidos para os transmitir do terminal transmissor para o terminal receptor. Dessa maneira, o sistema de correção de erro pode fornecer maior proteção aos quadros I e SP.
Em algumas modalidades, o sistema de correção de erro não adiciona pacotes de 20 proteção com base nas características dos dados de vídeo. Por exemplo, se o tamanho do quadro for muito pequeno ou se a taxa de bits desejada for muito baixa, o sobreprocessamento de adicionar pacotes de proteção pode ser muito alto. De fato, para pequenos quadros, a maior contagem de pacotes ocasionada pela adição de proteção pode tornar a perda de pacotes mais provável. Similarmente, se a taxa de bits desejada for muito baixa (por e25 xemplo, 50 kbps), então, o sobreprocessamento de adicionar pacotes de proteção no fluxo contínuo de dados pode ser grande o suficiente (por exemplo, 8 kbps) para tornar outros métodos de proteção (tal como retransmissão de pacotes) mais compensadores.
Conferência
Frequentemente, servidores de videoconferência recebem dados de vídeo de um 30 terminal transmissor para difusão para muitos terminais receptores. Por exemplo, um usuário em apresentação pode dar uma apresentação que um servidor de videoconferência encaminha para muitos terminais receptores, em que cada terminal representa um participante na conferência. Neste ambiente, perda de pacotes pode ocorrer entre o terminal transmissor e o servidor de videoconferência, e entre o servidor de videoconferência e todos os termi35 nais receptores. Para dimensionar bem, o servidor de videoconferência é frequentemente projetado para reduzir o sobreprocessamento computacional para cada terminal. Mesmo uma pequena quantidade de sobreprocessamento computacional que um servidor de videoconferência gasta para cada terminal pode se tornar uma carga significativa quando o servidor estiver transmitindo dados para centenas de terminais receptores. Técnicas adicionais para tratar perda de pacotes neste ambiente e para otimizar o processamento realizado pelo servidor de videoconferência são descritas a seguir.
Em algumas modalidades, o sistema de correção de erro não determina o nível de
proteção para uso separadamente para cada ligação descendente. Em vez disto, um cálculo inicial pode ser realizado para cada ligação descendente, e a pior ligação descendente pode ser escolhida para selecionar o nível de correção de erro que será usado para todas as ligações descendentes. Alternativamente, ligações descendentes podem ser categorizadas nas 10 memórias de acúmulo cujas ligações descendentes precisam de proteção nível um, cujas ligações descendentes precisam de proteção nível dois, e assim por diante. Então, os pacotes de correção de erro são formados somente uma vez e, então, o número correto de pacotes é adicionado para cada ligação descendente. Por exemplo, se uma ligação descendente em particular tiver proteção nível um, então, somente o primeiro pacote de correção de erro 15 será adicionado naquela ligação descendente. Uma outra possível otimização é que o transmissor pode ser informado do pior caso de ligação descendente. Neste exemplo, se a pior ligação descendente precisar de proteção nível três, então, o transmissor será responsável por transmitir três pacotes de correção de erro com cada quadro de vídeo. Então, o servidor de videoconferência pode encaminhar tantos pacotes de correção de erro quanto 20 cada ligação descendente exigir. Fazendo isto, a computação dos pacotes de correção de erro é transferida para o transmissor, e o servidor de videoconferência pode remover os pacotes de proteção de erro do fluxo contínuo de bits se ele determinar que um nível de proteção mais baixo é aceitável para uma ligação descendente em particular.
Em algumas modalidades, o terminal transmissor aplica proteção em estágios. Usando níveis de proteção graduais, o terminal transmissor transmite um primeiro pacote de proteção com um primeiro nível de proteção, e um ou mais pacotes de proteção adicionais em níveis de proteção mais altos. Quando ocorrer perda de pacotes, o terminal receptor pode escolher o pacote de proteção para uso com base no grau de perda de pacotes e no nível de proteção exigido para recuperar os pacotes perdidos. Graduação reduz o processarnento realizado pelo servidor de videoconferência pela criação de pacotes de proteção uma vez e pela aplicação dos pacotes de proteção conforme necessário para muitos terminais receptores. Por exemplo, o terminal receptor pode transmitir um pacote de proteção para terminais receptores com uma baixa taxa de perda de pacotes, e o mesmo pacote de proteção mais pacotes de proteção adicionais para terminais receptores com uma alta taxa de perda de pacotes. Então, os terminais receptores com uma alta taxa de perda de pacotes podem usar os pacotes de proteção podem usar os pacotes de proteção adicionais para realizar recuperação de erro mais abrangente. g Em algumas modalidades, o servidor de videoconferência transmite um relatório de perda de pacotes para o terminal transmissor, que indica a perda de pacotes do terminal receptor com pior caso. Com base no relatório de perda de pacotes, o transmissor protege quadros em um nível de proteção e incluindo um número de pacotes de proteção com base no terminal receptor com pior caso. Mediante a recepção dos dados de vídeo, o servidor de videoconferência pode não encaminhar todos os pacotes de proteção para todos os terminais receptores, com base na informação sobre a perda de pacotes histórica experimentada por cada terminal receptor. Por exemplo, um terminal receptor pode exigir um único pacote de proteção, enquanto um outro terminal receptor pode exigir dois pacotes de proteção para alcançar um nível alvo de efetiva perda de pacotes. O terminal transmissor pode fornecer dois pacotes de proteção, e o servidor de videoconferência pode transmitir somente o primeiro pacote de proteção para um dos terminais, ainda transmitindo ambos os pacotes de proteção para o outro terminal. Isto fornece a ambos os terminais o nível de proteção que eles precisam, ainda reduzindo a largura de banda e o sobreprocessamento computacional consumido pelo servidor de videoconferência.
Em algumas modalidades, o servidor de videoconferência compartilha a carga de produção de pacotes de proteção com o transmissor. Por exemplo, o transmissor pode fornecer pacotes de proteção em um primeiro nível, e o servidor de videoconferência pode ser responsável por adicionar níveis de proteção adicionais para aqueles terminais receptores 20 que exigem proteção adicional (por exemplo, com base na perda de pacotes histórica). Versados na técnica percebem que muitas maneiras diferentes estão disponíveis para compartilhar o sobreprocessamento computacional entre o terminal transmissor e o servidor de videoconferência.
Em algumas modalidades, o sistema de correção de erro determina dinamicamente 25 o nível de proteção para uso para um terminal receptor em particular em uma base periódica. Por exemplo, o servidor de videoconferência pode receber um relatório periódico (por exemplo, a cada cinco segundos) da perda de pacotes de cada terminal receptor e, com base no relatório do servidor de videoconferência, pode selecionar o nível de proteção para aplicação nos dados transmitidos. As condições de uma conexão em particular podem mu30 dar durante o tempo, ou o tipo de dados que são transmitidos (por exemplo, o tamanho do quadro) pode mudar de maneira tal que um nível de proteção diferente seja mais efetivo.
Formato de Pacote
A seguinte descrição descreve um formato de pacote para implementação das técnicas de correção de erro aqui descritas. Um pacote típico contém um cabeçalho de adaptação de formato e uma carga útil. O cabeçalho contém informação que descreve a carga útil do pacote e que descreve como o pacote se relaciona com outros pacotes transmitidos na rede. O cabeçalho pode conter uma série de indicadores que especificam as características do pacote. A carga útil contém dados de vídeo para um quadro de vídeo, e dados de correção de erro para um quadro de proteção.
Quadro de Vídeo:
F H K O L S C M = 1 V= 1 Versão = 00 H- FC H- RF M = O Contagem de Quadro N0 do Quadro de Referência Quadro de Proteção:
F H K O L S C M = 1 P= 1 Versão = 00 H-FC H-RF M = 1 Contagem de Quadro N0 do Quadro de Referência Nao Usado H-Pkt# M = O L-Pkt# Deslocamento Final H-LPktSize L-LpktSize Indicadores:
F Primeiro Pacote H Cabeçalho de Seqüência existe K Quadro chave O Fixo em Um L Bit Marcador para último pacote
S Quadro SP C Quadro em cache M Modo
P Tipo de carga útil: 1 = metadados, 0 = vídeo Ver Versão do cabeçalho da carga útil
H-FC Alta contagem de quadro de bit H-RF Alta contagem de referência de bit M Modo de Extensão FC Contagem de quadro RFC Contagem de quadro referência
H-Pkt# Alto tamanho de quadro de bits em n° de pacotes L-Pkt# Baixo tamanho de quadro de bits em n° de pacotes Offset Deslocamento do conteúdo do último pacote para FEC do pacote atual H-LpktSize Tamanho do pacote do último quadro em Bytes L-LpktSize Tamanho do pacote do último quadro em Bytes Neste formato de pacote de exemplo, um indicador V especifica se o pacote contém dados de vídeo ou dados de proteção (por exemplo, FEC). Para um pacote de vídeo, P = O, e para um pacote de proteção, P = 1. O pacote contém indicadores que indicam se o pacote é o primeiro (F = 1) ou o último (L = 1) pacote que porta dados para um quadro em particu5 lar. O pacote também contém elementos que indicam o tamanho do último pacote (por exemplo, H-LpktSize e L-LpktSize) que pode ser usado pelo terminal receptor para adicionar pseudo-registros apropriados da forma supradescrita. O pacote também contém elementos (por exemplo, H-Pkt# e L-Pkt#) que agem como um número de seqüência que o terminal receptor pode usar para determinar se algum pacote estiver faltando. O elemento # do Qua10 dro de Referência identifica o quadro do qual o quadro codificado atual depende para decodificação, tal como um quadro P que se relaciona a um quadro I. O pacote também contém um elemento, Offset1 para pacotes de proteção que indicam em qual pacote de proteção o pacote atual está em uma série de múltiplos pacotes de proteção. Este elemento é usado em virtude de pacotes de proteção poder ser perdidos, também, e se um pacote de proteção 15 chegar com um deslocamento de dois (indicando que o último pacote de conteúdo era dois pacotes anteriores), então, o terminal receptor pode determinar que o primeiro pacote de proteção foi perdido. Em algumas modalidades, a informação da versão é usada para permitir que clientes mais antigos interoperem com versões mais recentes de um terminal transmissor ou de um servidor de videoconferência.
Figuras
A seguinte descrição ilustra detalhes das modalidades descritas em relação às figuras.
A figura 1 é um diagrama de blocos que ilustra componentes do sistema de correção de erro em uma modalidade. O sistema de correção de erro 100 inclui um componente para produzir dados de vídeo 110, um componente para dispor os dados de vídeo em pacotes 120, um componente para determinar o nível de proteção 130, um componente para criar dados de correção de erro 140, um componente para empacotar os dados de correção de erro 150, um componente para transmitir dados 160, um componente para receber dados 170 e um componente para recuperar dados perdidos 180. O componente para produzir os dados de vídeo 110 produz dados de vídeo, tal como pela captura de um sinal digital de um dispositivo de entrada de vídeo (por exemplo, uma câmera da Internet) ou pela reprodução de um arquivo que contém dados de vídeo. O componente para dispor os dados de vídeo em pacotes 120 divide os dados de vídeo em pacotes adequados para transmissão na rede. Da forma supradescrita, os pacotes podem conter informação de cabeçalho que descreve os dados que são transmitidos e usados pelo receptor para fazer várias determinações sobre os dados recebidos. O componente para determinar o nível de proteção 130 determina o nível de proteção apropriado para aplicar nos dados de vídeo com base em fatores, tais como o tamanho do quadro dos dados de vídeo e uma indicação da perda de pacotes histórica recebida do terminal receptor.
O componente para criar dados de correção de erro 140 cria dados de correção de erro com base no nível de proteção determinado e nos dados de vídeo. O componente para dispor dados de correção de erro em pacotes 150 divide os dados de correção de erro em pacotes adequados para transmissão na rede. O sistema de correção de erro pode dividir os pacotes de correção de erro resultantes com base no algoritmo de correção de erro usado para produzir os dados de correção de erro. O sistema de correção de erro pode usar mais de um algoritmo de correção de erro para produzir pacotes de dados de correção de erro que aplicam níveis variáveis de correção de erro. O componente de dados de transmissão 160 transmite os pacotes de dados de vídeo e os pacotes de correção de erro do terminal transmissor para o terminal receptor. O componente para receber dados 170 recebe dados do terminal transmissor e determina se algum pacote foi perdido. Se pacotes foram perdidos, o componente para recuperar dados perdidos 180 usa todos os pacotes de correção de erro recebidos para recuperar todos os pacotes de dados de vídeo perdidos.
O dispositivo computacional no qual o sistema é implementado pode incluir uma unidade central de processamento, memória, dispositivo de entrada (por exemplo, teclado e dispositivo de apontamento), dispositivo de saída (por exemplo, dispositivo de exibição), e dispositivo de armazenamento (por exemplo, unidades de disco). A memória e o dispositivo 20 de armazenamento são mídias legíveis por computador que podem ser codificadas com instruções executáveis por computador que implementam o sistema, que significa uma mídia legível por computador que contém as instruções. Além do mais, as estruturas de dados e as estruturas de mensagem podem ser armazenadas ou transmitidas por meio de uma mídia de transmissão de dados, tal como um sinal em uma ligação de comunicação. Várias 25 ligações de comunicação podem ser usadas, tais como a Internet, uma rede de área local, uma rede de área ampla, uma conexão discada ponto a ponto, uma rede de telefonia celular e assim por diante.
Modalidades do sistema podem ser implementadas em vários ambientes operacionais que incluem computadores pessoais, computadores servidores, dispositivos de mão ou 30 de computadores portáteis, sistemas multiprocessadores, sistemas com base em microprocessador, dispositivos eletrônicos programáveis por consumidor, câmeras digitais, PCs em rede, minicomputadores, computadores de grande porte, ambientes de computação distribuída que incluem qualquer um dos sistemas ou dispositivos expostos, e assim por diante. Os sistemas de computador podem ser telefones celulares, assistentes pessoais digitais, tele35 fones celulares com mais funcionalidades, computadores pessoais, dispositivos eletrônicos programáveis por consumidor, câmeras digitais, conversores de sinal de freqüência, câmeras da Internet por IP e assim por diante. O sistema pode ser descrito no contexto geral das instruções executáveis por computador, tais como módulos de programa, executadas por um ou mais computadores ou outros dispositivos. No geral, módulos de programa incluem rotinas, programas, objetos, componentes, estruturas de dados, e assim por diante, que realizam tarefas em particular ou 5 implementam tipos de dados abstratos em particular. Tipicamente, a funcionalidade dos módulos de programa pode ser combinada ou distribuída da forma desejada em várias modalidades.
As figuras 2A e 2B ilustram uma seqüência exemplar de quadros em um fluxo contínuo de vídeo em uma modalidade. Um codificador pode ser usado para comprimir quadros 10 em um fluxo contínuo de vídeo de uma maneira que reduz a redundância dos dados de imagem. A figura 2A ilustra uma seqüência de quadros 200 que consiste em quadros I 202- 204, quadros SP 206-208, quadros P 210-216 e quadros B 218-228. Os quadros I 202-204 são independentes em que quadros I são codificados sem relação aos quadros anteriores ou subsequentes e, uma vez decodificados, podem ser usados para apresentar uma ima15 gem completa. Da forma ilustrada na figura 2A, os quadros I 202-204 servem como referências preditivas, tanto direta quanto indiretamente, para os quadros SP 206-208, quadros P 210-216 e quadros B 218-228. Os quadros SP 206-208 são preditivos em que os quadros são codificados em relação ao quadro I ou a outro quadro SP anteriores mais próximos. Similarmente, os quadros P 210-216 também são preditivos em que estes quadros fazem refe20 rência a um quadro anterior que pode ser o quadro I ou quadro SP anteriores mais próximos. Da forma adicionalmente ilustrada na figura 2A, os quadros B 218-228 são codificados usando uma técnica conhecida como predição bidirecional, em que dados de imagem são codificados em relação tanto ao quadro anterior quanto ao subsequente.
A quantidade de dados em cada quadro é visualmente representada na figura 2A, com os quadros I 202-204 contendo a maior quantidade de dados, e cada um dos quadros SP 206-208, dos quadros P 210-216 e dos quadros B 218-228 fornecendo quantidades sucessivamente maiores de compressão. Da forma aqui usada, o termo “modo de compressão” diz respeito ao estado de um codificador quando um tipo de quadro em particular (por exemplo, quadro I, quadro SP1 quadro P, quadro B, etc.) for codificado para transmissão em uma conexão de rede. Versados na técnica e outros usuários percebem que um codificador pode ser configurado para suportar diferentes modos de compressão para criar diferentes tipos de quadro. Embora a codificação da seqüência de quadros 200 em vários tipos de quadro reduza a quantidade de dados que é transmitida, a compressão dos dados de imagem pode perpetuar os erros. O quadro I 202 pode ser transmitido entre computadores comunicativamente conectados em um conjunto de pacotes. Entretanto, se qualquer um dos pacotes no quadro I 202 ficar perdido no trânsito, o quadro I 202 não é o único quadro afetado pelo erro. Em vez disto, o erro pode persistir em outros quadros que, direta ou indiretamente, fazem referência ao quadro I 202. Por exemplo, da forma representada no cronograma 250 da figura 2B, quando o quadro I 202 passar por um erro, no evento 252, o erro persiste até o evento 254, quando o quadro I 204 subsequente for recebido. Neste caso, quadros recebidos entre os eventos 252 e 254 passam por uma degradação em qualidade, 5 tipicamente, na forma de um artefato de vídeo, em virtude de os quadros ser tipicamente decodificados usando o último quadro I que foi recebido corretamente pelo terminal.
Similar à descrição fornecida anteriormente, quando um pacote associado com um quadro SP for perdido, o erro pode persistir em outros quadros. Por exemplo, da forma representada no cronograma 250, quando o quadro SP 206 passar por perda de pacotes, no 10 evento 256, o erro persiste até o evento 254, quando o próximo quadro I 204 for recebido. Já que existem menos dependências em relação aos quadros SP do que em relação aos quadros I, o impacto da perda de pacotes também é menor. Quando um quadro P passar por perda de pacotes, somente os quadros B e outros quadros P, que fazem referência ao quadro P que passou por perda de pacotes, são impactados pelo erro. Finalmente, erros 15 nos quadros B não persistem, já que quadros B não são referenciados por outros tipos de quadro. Esta observação motiva o fato de que, em algumas modalidades, dados de correção de erro podem ser seletivamente adicionados e, em particular, podem ser confinados nos quadros de vídeo de referência (por exemplo, somente quadros I ou quadros I e SP podem ser protegidos).
A figura 3 ilustra um ambiente de rede típico no qual um terminal transmissor
transmite dados de vídeo para um terminal receptor, em uma modalidade. O ambiente de rede 300 inclui um computador transmissor 302 e um computador receptor 304 que são comunicativamente conectados em uma conexão de rede ponto a ponto. Neste aspecto, o computador transmissor 302 e o computador receptor 304 comunicam dados na rede 306. 25 Da forma supradescrita, o computador transmissor 302 pode ser um terminal de rede que é associado com um usuário. Alternativamente, o computador transmissor 302 pode servir como um nó no ambiente de rede 300 pela retransmissão de um fluxo contínuo de vídeo para o computador receptor 304. Versados na técnica e outros usuários percebem que a rede 306 pode ser implementada como uma rede de área local (“LAN"), rede de área ampla 30 (“WAN"), tal como a rede global comumente conhecida como a Internet ou Rede Mundial de Computadores (“WWW”), rede de telefonia celular, IEEE 802.11, redes sem fios Bluetooth e congêneres.
Na modalidade ilustrada na figura 3, um fluxo contínuo de vídeo é inserido no computador transmissor 302 a partir da camada de aplicação 305 usando o dispositivo de entrada 308. O dispositivo de entrada 308 pode ser qualquer dispositivo que pode capturar um fluxo contínuo de imagens que inclui, mas sem limitações, uma câmera de vídeo, câmera digital, telefone celular e congêneres. Quando o fluxo contínuo de vídeo for inserido no computador transmissor 304, o codificador / decodificador 310 é usado para comprimir quadros do fluxo contínuo de vídeo. Versados na técnica percebem que o codificador / decodificador 310 realiza compressão de vídeo de uma maneira que reduz a redundância dos dados de imagem em uma seqüência de quadros. Já que o fluxo contínuo de bits de vídeo inclui tipi5 camente uma seqüência de quadros que diferem um do outro somente de forma incrementai, compressão significativa é realizada pela codificação de pelo menos alguns quadros com base nas diferenças com outros quadros. Da forma supradescrita, quadros em um fluxo contínuo de vídeo podem ser codificados como quadros I, quadros P, quadros SP e quadros B, embora outros tipos de quadro (por exemplo, quadros B unidirecionais e congêneres) 10 também possam ser utilizados. Entretanto, quando erros ocasionam perda de pacotes ou outra degradação de vídeo, codificar um fluxo contínuo de vídeo em quadros comprimidos pode perpetuar erros, desse modo, resultando em artefatos de vídeo persistindo em múltiplos quadros.
Uma vez que o codificador / decodificador 310 comprime o fluxo contínuo de vídeo pela redução da redundância dos dados de imagem em uma seqüência de quadros, o dispositivo de rede 312 e os componentes da camada de transporte de mídia associada 313 (não ilustrados) transmitem o fluxo contínuo de vídeo. Quadros dos dados de vídeo podem ser empacotados e transmitidos de acordo com padrões indicados pelo protocolo de transporte em tempo real (“RTP”). Versados na técnica e outros usuários percebem que RTP é um protocolo de padrão da Internet exemplar que pode ser usado para o transporte dos dados em tempo real. Em qualquer evento, quando o fluxo contínuo de vídeo for recebido, o codificador / decodificador 310 no computador receptor 304 faz com que o fluxo contínuo seja decodificado e apresentado a um usuário no dispositivo de renderização 314. O dispositivo de renderização 314 pode ser qualquer dispositivo que pode apresentar dados de imagem que incluem, mas sem limitações, uma tela de computador (por exemplo, tela CRT ou LCD), uma televisão, monitor, impressora e assim por diante.
A camada de controle 316 fornece suporte de qualidade de serviço para aplicações com propriedades de tempo real, tais como aplicações que suportam a transmissão de um fluxo contínuo de vídeo. Os controladores de qualidade 318 fornecem realimentação de qua30 Iidade de serviço pela reunião de estatísticas associadas com um fluxo contínuo de vídeo que incluem, mas sem limitações, taxas de perda de pacotes, tempos de ida e volta e congêneres. A título de exemplo somente, os dados reunidos pelos controladores de qualidade 318 podem ser usados pelo componente de recuperação de erro 320 para identificar pacotes que serão usados quando a recuperação de erro for realizada. Dados adicionais podem 35 ser periodicamente transmitidos entre terminais que estão trocando um fluxo contínuo de vídeo com este propósito. Os componentes da camada de controle 316 podem ser usados para modificar propriedades do fluxo contínuo de vídeo com base na informação da qualidade de serviço coletada.
A figura 4 ilustra um ambiente de rede para transmitir dados de vídeo para múltiplos terminais receptores em uma modalidade. O ambiente de rede 700 inclui uma unidade de controle multipontos 701 (por exemplo, um servidor de videoconferência), uma pluralidade 5 de terminais de videoconferência que incluem o dispositivo transmissor 702 e os dispositivos receptores 704-708. Além do mais, o ambiente de rede 700 inclui uma conexão de rede ponto a ponto 710 entre o dispositivo transmissor 702 e a unidade de controle multipontos 701, bem como uma pluralidade de conexões de rede à jusante 712-716 entre a unidade de controle multipontos 701 e os dispositivos receptores 704-708. Descrito no geral, a unidade de 10 controle multipontos 701 coleta informação sobre as capacidades de dispositivos que participarão de ma videoconferência. Com base na informação coletada, propriedades de um fluxo contínuo de vídeo entre os terminais de rede podem ser estabelecidas.
A figura 5 é um fluxograma que ilustra o processamento do componente de dados de transmissão do sistema em uma modalidade. No bloco 510, o componente recebe um tamanho de quadro e indicação de perda de pacotes histórica para o terminal receptor. No bloco 520, o componente determina um nível de proteção apropriada para aplicação com base no tamanho de quadro recebido e na indicação de perda de pacotes histórica, e cria pacotes de proteção com base no nível de proteção determinado. No bloco 530, o componente transmite os pacotes de proteção criados para o terminal receptor. No bloco 540, o componente transmite os pacotes de proteção criados par ao terminal receptor. No bloco de decisão 550, o componente para receber dados do terminal receptor determina se algum dos pacotes de dados foi perdido. Se um pacote de dados foi perdido, então, o componente continua no bloco 560, se não, o componente completa. No bloco 560, o componente recupera os pacotes de dados perdidos usando os dados transmitidos redundantes e, então, completa.
A figura 6 é um fluxograma que ilustra o processamento do componente para transmitir dados do sistema em um ambiente de videoconferência com múltiplos terminais receptores em uma modalidade. No bloco 610, o componente recebe dados de vídeo a ser transmitidos na rede. No bloco 620, o componente determina o nível de proteção mais alto 30 exigido para transmitir os dados de vídeo para cada terminal receptor, de maneira tal que cada terminal receptor possa recuperar todos os dados de vídeo perdidos. No bloco 630, o componente cria pacotes de proteção para acompanhar os dados com base no nível de proteção determinado. No bloco 640, o componente seleciona o primeiro terminal receptor. No bloco 650, o componente determina o nível de proteção exigido para transmitir os dados de 35 vídeo para o terminal receptor selecionado, de maneira tal que o terminal receptor selecionado possa recuperar todos os dados de vídeo perdidos. Com base na determinação, o componente inclui um ou mais dos pacotes de proteção criados durante a transmissão dos dados de vídeo. No bloco 660, o componente transmite os dados de vídeo e pacotes de proteção para o terminal receptor. No bloco de decisão 670, se houver mais terminais receptores, então, o componente volta para o bloco 640 para selecionar o próximo terminal receptor, se não, o componente completa.
Conclusão
A partir do exposto, percebe-se que modalidades específicas do sistema de correção de erro foram aqui descritas com propósito de ilustração, mas que várias modificações podem ser feitas sem fugir do espírito e do escopo da invenção. Por exemplo, embora UDP tenha sido descrita como um tipo de protocolo com o qual o sistema de correção de erro 10 pode ser usado, muitos outros protocolos também podem ser usados, tais como Protocolo em Tempo Real (RTP) e Protocolo de Controle em Tempo Real (RTCP). Dessa maneira, a invenção não é limitada, exceto como pelas reivindicações anexas.

Claims (26)

1. Método em um sistema de computador para reduzir os efeitos da perda de pacotes durante a transmissão de dados entre um terminal transmissor e um terminal receptor, CARACTERIZADO pelo fato de que o método compreende: receber (510) um tamanho de dados e uma indicação de uma taxa de perda de pacotes durante um período anterior; determinar (520) um nível de proteção para aplicação com base no tamanho de dados recebido e na indicação da taxa de perda de pacotes; transmitir (530) para o terminal receptor um ou mais pacotes de dados contendo os dados; e transmitir (540 para o terminal receptor um ou mais pacotes de proteção com base no nível de proteção determinado, em que o um ou mais pacotes de proteção compreendem informação com a qual o terminal receptor pode recuperar um pacote de dados perdido, de maneira tal que, quando um pacote de dados for perdido, o terminal receptor possa obter todos os dados usando os pacotes de proteção sem comunicação adicional com o terminal transmissor.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que pelo menos um nível de proteção aplica uma operação OU exclusivo nos dados.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que pelo menos um nível de proteção aplica o algoritmo Reed-Solomon nos dados.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que inclui criar uma tabela que mapeia os níveis de proteção para o tamanho do quadro e a taxa de perda de pacotes, e em que a determinação de um nível de proteção para aplicação compreende buscar o nível de proteção na tabela.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que os pacotes de proteção incluem níveis graduais de proteção.
6. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que receber uma taxa de perda de pacotes compreende receber um relatório de perda de pacotes do terminal receptor.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que determinar um nível de proteção para aplicação compreende determinar um tipo de um quadro de vídeo e inclui aplicar um nível de proteção mais alto em um tipo de quadro do qual outros quadros dependem.
8. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que determinar um nível de proteção para aplicação compreende não aplicar proteção nos dados com um tamanho abaixo de um limite pré-determinado ou que contêm dados de vídeo abaixo de uma taxa de bits pré-determinada.
9. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o terminal transmissor é um servidor de videoconferência que serve múltiplos terminais receptores.
10. Sistema de computador para reduzir os efeitos da perda de pacotes nos dados de videoconferência transmitidos de um terminal transmissor para um terminal receptor por meio de um servidor de videoconferência em uma rede, CARACTERIZADO pelo fato de que compreende: um componente de recepção de dados de videoconferência (170) configurado para receber dados de videoconferência do terminal transmissor; um componente de correção de erro (140) configurado para produzir dados de correção de erro com base nos dados de videoconferência, em que os dados de correção de erro fornecem informação para recuperar uma parte perdida dos dados de videoconferência e são divididos em pacotes com base em um ou mais níveis de proteção; um componente de transmissão de dados de videoconferência (160) configurado para encaminhar os dados de videoconferência recebidos do terminal transmissor para múltiplos terminais receptores, em que o componente de transmissão de dados de videoconferência determina quais dos pacotes dos dados de correção de erro transmitir para cada terminal receptor com base nas características dos dados de videoconferência e na conexão com o terminal receptor, de maneira tal que os dados de correção de erro não sejam separadamente produzidos para cada terminal receptor.
11. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o componente de correção de erro recebe os dados de correção de erro do terminal transmissor.
12. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o componente de correção de erro cria os dados de correção de erro no servidor de videoconferência.
13. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o terminal transmissor cria uma parte dos dados de correção de erro e o servidor de videoconferência cria uma outra parte dos dados de correção de erro.
14. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o componente de correção de erro transmite uma indicação de um nível de proteção desejado ao terminal transmissor e recebe dados de correção de erro do terminal transmissor com base no nível de proteção desejado.
15. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o componente de transmissão de dados de videoconferência redetermina periodicamente quais dos pacotes dos dados de correção de erro transmitir para cada terminal receptor.
16. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que um pacote transmitido para o terminal receptor compreende um cabeçalho de adaptação de formato que contém informação sobre a presença e a localização de dados de correção de erro em um fluxo contínuo de bits de vídeo digital.
17. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o componente de correção de erro determina se dados de correção de erro devem ser produzidos para um quadro de vídeo em particular com base em um tipo de quadro de vídeo.
18. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que o componente de correção de erro produz dados de correção de erro com base em estatísticas sobre uma condição histórica da rede.
19. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que pelo menos um terminal receptor determina se usa os dados de correção de erro para recuperar um ou mais pacotes inválidos com base na informação recebida do servidor de videoconferência.
20. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que os dados de videoconferência incluem informação de versão, de maneira tal que um cliente antigo possa interoperar com um servidor de videoconferência mais novo.
21. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que inclui um empacotador de transporte de mídia que forma pacotes que incluem um cabeçalho e uma carga útil, em que o cabeçalho indica para um terminal receptor qualquer dependência do quadro atual em outros quadros em um fluxo contínuo de bits.
22. Mídia legível por computador, CARACTERIZADA pelo fato de que contém instruções para controlar um sistema de computador para recuperar perda de pacotes em um terminal receptor por um método que compreende: receber (540) dados de vídeo de um terminal transmissor, em que os dados de vídeo são divididos em um ou mais pacotes de dados; receber (540) dados de correção de erro do terminal transmissor, em que os dados de correção de erro são divididos em um ou mais pacotes de proteção; determinar (550) que pelo menos um dos pacotes de dados transmitidos pelo terminai transmissor não foi recebido pelo terminal receptor; aplicar (560) os dados de correção de erro de um ou mais pacotes de proteção para recuperar o pelo menos um pacote de dados que não foi recebido.
23. Mídia legível por computador, de acordo com a reivindicação 22, CARACTERIZADA pelo fato de que inclui adicionar pseudo-registros em um pacote de dados com base na informação em um cabeçalho do pacote de dados.
24. Mídia legível por computador, de acordo com a reivindicação 22, CARACTERIZADA pelo fato de que inclui transmitir periodicamente uma indicação da perda de pacotes para o terminal transmissor.
25. Mídia legível por computador, de acordo com a reivindicação 22, CARACTERIZADA pelo fato de que determinar que pelo menos um pacote de dados não foi recebido compreende detectar um número de seqüência para cada pacote de dados recebido.
26. Mídia legível por computador, de acordo com a reivindicação 22, CARACTERIZADA pelo fato de que cada pacote de proteção inclui uma indicação do nível de proteção fornecido pelos dados de correção de erro no pacote de proteção.
BRPI0808629-0A 2007-03-14 2008-02-28 Redução de efeitos de perda de pacotes em transmissões de vídeo. BRPI0808629A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/686.198 2007-03-14
US11/686,198 US7957307B2 (en) 2007-03-14 2007-03-14 Reducing effects of packet loss in video transmissions
PCT/US2008/055308 WO2008112441A1 (en) 2007-03-14 2008-02-28 Reducing effects of packet loss in video transmissions

Publications (1)

Publication Number Publication Date
BRPI0808629A2 true BRPI0808629A2 (pt) 2014-08-05

Family

ID=39759905

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0808629-0A BRPI0808629A2 (pt) 2007-03-14 2008-02-28 Redução de efeitos de perda de pacotes em transmissões de vídeo.

Country Status (7)

Country Link
US (1) US7957307B2 (pt)
EP (1) EP2132908A1 (pt)
KR (1) KR20090119898A (pt)
CN (1) CN101636983B (pt)
BR (1) BRPI0808629A2 (pt)
RU (1) RU2009134145A (pt)
WO (1) WO2008112441A1 (pt)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8366552B2 (en) 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
US9192859B2 (en) 2002-12-10 2015-11-24 Sony Computer Entertainment America Llc System and method for compressing video based on latency measurements and other feedback
US8526490B2 (en) 2002-12-10 2013-09-03 Ol2, Inc. System and method for video compression using feedback including data related to the successful receipt of video content
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US9446305B2 (en) 2002-12-10 2016-09-20 Sony Interactive Entertainment America Llc System and method for improving the graphics performance of hosted applications
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US10201760B2 (en) 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
US8964830B2 (en) 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US9061207B2 (en) 2002-12-10 2015-06-23 Sony Computer Entertainment America Llc Temporary decoder apparatus and method
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US9108107B2 (en) * 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8885632B2 (en) 2006-08-02 2014-11-11 Silver Peak Systems, Inc. Communications scheduler
US7978669B2 (en) * 2007-05-09 2011-07-12 Cisco Technology, Inc. Methods and apparatus for efficient MPEG transmission over 802.11
EP2019522B1 (en) * 2007-07-23 2018-08-15 Polycom, Inc. Apparatus and method for lost packet recovery with congestion avoidance
JP4412369B2 (ja) * 2007-09-04 2010-02-10 日本電気株式会社 分散型処理システム、分散型処理方法、端末、及び、プログラム
US9168457B2 (en) 2010-09-14 2015-10-27 Sony Computer Entertainment America Llc System and method for retaining system state
US10164861B2 (en) 2015-12-28 2018-12-25 Silver Peak Systems, Inc. Dynamic monitoring and visualization for network health characteristics
US10805840B2 (en) 2008-07-03 2020-10-13 Silver Peak Systems, Inc. Data transmission via a virtual wide area network overlay
US9717021B2 (en) 2008-07-03 2017-07-25 Silver Peak Systems, Inc. Virtual network overlay
US8489954B2 (en) * 2008-08-29 2013-07-16 Ntt Docomo, Inc. Method and apparatus for reliable media transport
US8804821B2 (en) * 2008-09-26 2014-08-12 Microsoft Corporation Adaptive video processing of an interactive environment
US8243117B2 (en) * 2008-09-26 2012-08-14 Microsoft Corporation Processing aspects of a video scene
US8088301B2 (en) 2008-12-23 2012-01-03 Cheil Industries Inc. Epoxy compound for liquid crystal photo-alignment agent, liquid crystal photo-alignment agent, and liquid crystal photo-alignment film
JP5086285B2 (ja) * 2009-01-22 2012-11-28 株式会社日立製作所 映像配信システム,映像配信装置,及び同期補正処理装置
WO2010099801A1 (en) * 2009-03-04 2010-09-10 Telefonaktiebolaget Lm Ericsson (Publ) Processing of multimedia data
KR101566004B1 (ko) * 2009-03-05 2015-11-06 삼성전자주식회사 엔드 포인트를 복수개로 분할 가능한 반도체 장치
FI20095273A0 (fi) * 2009-03-17 2009-03-17 On2 Technologies Finland Oy Digitaalinen videokoodaus
US8189492B2 (en) * 2009-03-18 2012-05-29 Microsoft Corporation Error recovery in an audio-video multipoint control component
EP2302845B1 (en) 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
US9167275B1 (en) 2010-03-11 2015-10-20 BoxCast, LLC Systems and methods for autonomous broadcasting
EP2405661B1 (en) * 2010-07-06 2017-03-22 Google, Inc. Loss-robust video transmission using two decoders
US8630412B2 (en) 2010-08-25 2014-01-14 Motorola Mobility Llc Transport of partially encrypted media
US8477050B1 (en) 2010-09-16 2013-07-02 Google Inc. Apparatus and method for encoding using signal fragments for redundant transmission of data
US8838680B1 (en) 2011-02-08 2014-09-16 Google Inc. Buffer objects for web-based configurable pipeline media processing
US8995306B2 (en) 2011-04-06 2015-03-31 Cisco Technology, Inc. Video conferencing with multipoint conferencing units and multimedia transformation units
US9014265B1 (en) 2011-12-29 2015-04-21 Google Inc. Video coding using edge detection and block partitioning for intra prediction
US8819513B2 (en) 2012-01-13 2014-08-26 Microsoft Corporation Lost real-time media packet recovery
US9179196B2 (en) * 2012-02-22 2015-11-03 Adobe Systems Incorporated Interleaved video streams
CA2871578C (en) 2012-04-25 2020-06-02 Samsung Electronics Co., Ltd. Method and apparatus for transceiving data for multimedia transmission system
US9667756B2 (en) * 2012-06-05 2017-05-30 Electronics And Telecommunications Research Institute Apparatus and method for transmitting/receiving data in communication system
KR101801565B1 (ko) * 2012-06-05 2017-11-27 한국전자통신연구원 통신 시스템에서 데이터 송수신 장치 및 방법
GB201210779D0 (en) 2012-06-18 2012-08-01 Microsoft Corp Correction data
CN104394485B (zh) * 2012-08-21 2017-12-15 华为技术有限公司 视频流的帧大小检测方法及装置
KR101506770B1 (ko) * 2012-12-28 2015-03-27 삼성에스디에스 주식회사 데이터 전송 장치 및 방법
US9210424B1 (en) 2013-02-28 2015-12-08 Google Inc. Adaptive prediction block size in video coding
US9603039B2 (en) 2013-04-03 2017-03-21 Qualcomm Incorporated Opportunistic media patching for a communication session
KR101416901B1 (ko) * 2013-06-19 2014-07-08 주식회사 케이티 손실된 영상 패킷을 복구하는 방법 및 장치
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US20150195326A1 (en) * 2014-01-03 2015-07-09 Qualcomm Incorporated Detecting whether header compression is being used for a first stream based upon a delay disparity between the first stream and a second stream
US9813931B2 (en) 2014-07-29 2017-11-07 University Of Ottawa Adaptive packet preamble adjustment
US9438853B2 (en) * 2014-07-29 2016-09-06 Qualcomm Incorporated Receiver driven up-switching in video telephony
US9948496B1 (en) 2014-07-30 2018-04-17 Silver Peak Systems, Inc. Determining a transit appliance for data traffic to a software service
US9363480B2 (en) * 2014-08-20 2016-06-07 Cisco Technology, Inc. Obtaining replay of audio during a conference session
US9875344B1 (en) 2014-09-05 2018-01-23 Silver Peak Systems, Inc. Dynamic monitoring and authorization of an optimization device
CN106534760B (zh) * 2015-09-15 2020-07-28 华为技术有限公司 一种媒体流传输方法、设备及系统
US9807416B2 (en) 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding
US10432484B2 (en) 2016-06-13 2019-10-01 Silver Peak Systems, Inc. Aggregating select network traffic statistics
US10154317B2 (en) * 2016-07-05 2018-12-11 BoxCast, LLC System, method, and protocol for transmission of video and audio data
CN107592540B (zh) 2016-07-07 2020-02-11 腾讯科技(深圳)有限公司 一种视频数据处理方法及装置
US9967056B1 (en) 2016-08-19 2018-05-08 Silver Peak Systems, Inc. Forward packet recovery with constrained overhead
US10892978B2 (en) 2017-02-06 2021-01-12 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows from first packet data
US10771394B2 (en) 2017-02-06 2020-09-08 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows on a first packet from DNS data
US11044202B2 (en) 2017-02-06 2021-06-22 Silver Peak Systems, Inc. Multi-level learning for predicting and classifying traffic flows from first packet data
US10257082B2 (en) 2017-02-06 2019-04-09 Silver Peak Systems, Inc. Multi-level learning for classifying traffic flows
US10594661B1 (en) * 2017-06-13 2020-03-17 Parallels International Gmbh System and method for recovery of data packets transmitted over an unreliable network
US20190068678A1 (en) * 2017-08-31 2019-02-28 Whatsapp Inc. Techniques to dynamically engage an all-intra-coded mode for streaming video encoding
US11212210B2 (en) 2017-09-21 2021-12-28 Silver Peak Systems, Inc. Selective route exporting using source type
US10637721B2 (en) 2018-03-12 2020-04-28 Silver Peak Systems, Inc. Detecting path break conditions while minimizing network overhead
CN109150410B (zh) * 2018-10-30 2021-09-24 京信网络系统股份有限公司 数据传输方法和装置
US11088784B1 (en) 2020-12-24 2021-08-10 Aira Technologies, Inc. Systems and methods for utilizing dynamic codes with neural networks
US11368250B1 (en) 2020-12-28 2022-06-21 Aira Technologies, Inc. Adaptive payload extraction and retransmission in wireless data communications with error aggregations
US11575469B2 (en) * 2020-12-28 2023-02-07 Aira Technologies, Inc. Multi-bit feedback protocol systems and methods
US11477308B2 (en) 2020-12-28 2022-10-18 Aira Technologies, Inc. Adaptive payload extraction in wireless communications involving multi-access address packets
US11483109B2 (en) 2020-12-28 2022-10-25 Aira Technologies, Inc. Systems and methods for multi-device communication
US11489624B2 (en) 2021-03-09 2022-11-01 Aira Technologies, Inc. Error correction in network packets using lookup tables
US11489623B2 (en) 2021-03-15 2022-11-01 Aira Technologies, Inc. Error correction in network packets
US11496242B2 (en) 2021-03-15 2022-11-08 Aira Technologies, Inc. Fast cyclic redundancy check: utilizing linearity of cyclic redundancy check for accelerating correction of corrupted network packets

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03141752A (ja) 1989-10-27 1991-06-17 Hitachi Ltd 画像信号伝送方法
US5608450A (en) 1994-09-07 1997-03-04 Intel Corporation Video conferencing system with fast packet loss recovery
US5602831A (en) * 1995-03-31 1997-02-11 Seiko Communications Systems, Inc. Optimizing packet size to eliminate effects of reception nulls
US6754181B1 (en) * 1996-11-18 2004-06-22 Mci Communications Corporation System and method for a directory service supporting a hybrid communication system architecture
US6421387B1 (en) 1998-05-15 2002-07-16 North Carolina State University Methods and systems for forward error correction based loss recovery for interactive video transmission
US6782490B2 (en) * 1999-03-17 2004-08-24 At&T Corp. Network-based service for the repair of IP multicast sessions
US6434191B1 (en) * 1999-09-30 2002-08-13 Telcordia Technologies, Inc. Adaptive layered coding for voice over wireless IP applications
US6971057B1 (en) * 2000-02-25 2005-11-29 Globespanvirata, Inc. System and method for efficient convolutional interleaving/de-interleaving
GB2360178B (en) 2000-03-06 2004-04-14 Mitel Corp Sub-packet insertion for packet loss compensation in Voice Over IP networks
US6754843B1 (en) 2000-06-13 2004-06-22 At&T Corp. IP backbone network reliability and performance analysis method and apparatus
US6816194B2 (en) 2000-07-11 2004-11-09 Microsoft Corporation Systems and methods with error resilience in enhancement layer bitstream of scalable video coding
US7116641B2 (en) * 2000-11-15 2006-10-03 Lg Electronics Inc. Multicast and broadcast transmission method and apparatus of a CDMA mobile communication network
EP1211837A1 (en) 2000-12-04 2002-06-05 Telefonaktiebolaget Lm Ericsson Unequal error protection in a packet transmission system
US6772388B2 (en) * 2000-12-06 2004-08-03 Motorola, Inc Apparatus and method for providing optimal adaptive forward error correction in data communications
US6970430B2 (en) 2000-12-29 2005-11-29 Texas Instruments Incorporated Method to measure throughput efficiency of low speed modem relay over packet network
US7103669B2 (en) 2001-02-16 2006-09-05 Hewlett-Packard Development Company, L.P. Video communication method and system employing multiple state encoding and path diversity
US7151749B2 (en) * 2001-06-14 2006-12-19 Microsoft Corporation Method and System for providing adaptive bandwidth control for real-time communication
CN100581238C (zh) 2001-08-23 2010-01-13 宝利通公司 视频错误隐藏的系统和方法
FI20011715A7 (fi) * 2001-08-27 2003-02-28 Nokia Corp Koodekin toiminnallisen moodin valinta
US6724727B2 (en) * 2001-12-03 2004-04-20 Nokia Corporation Policy-based forward error correction in packet networks
US7039851B2 (en) * 2002-06-08 2006-05-02 Axiowave Networks, Inc. Method of and apparatus for correcting errors in data packet flow streams as in closed ring sequential address generators and the like without data flow stream interruption
AU2003274849A1 (en) 2002-11-04 2004-06-07 Tandberg Telecom As Inter-network and inter-protocol video conference privacy method, apparatus, and computer program product
US20060150053A1 (en) * 2002-12-13 2006-07-06 Koninklijke Philips Electronics, N.V. Switching method for mdc/scalable coding
US20040240415A1 (en) * 2003-06-02 2004-12-02 Richard Lane Base station-centric method for managing bandwidth and QoS in error-prone system
JP2007506385A (ja) * 2003-09-23 2007-03-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビデオコンテンツおよび隠蔽に依存した誤り保護およびスケジューリングアルゴリズムを提供するシステムおよび方法
FR2861517B1 (fr) * 2003-10-23 2006-01-27 Thomson Licensing Sa Methode de reconstruction de paquets perdus et appareils implementant la methode
EP1555788A1 (en) 2004-01-15 2005-07-20 Alcatel Method for improving the quality of an encoded video bit stream transmitted over a wireless link, and corresponding receiver
US7451381B2 (en) * 2004-02-03 2008-11-11 Phonex Broadband Corporation Reliable method and system for efficiently transporting dynamic data across a network
US7539187B2 (en) * 2004-07-07 2009-05-26 Qvidium Technologies, Inc. System and method for low-latency content-sensitive forward error correction
US8634413B2 (en) * 2004-12-30 2014-01-21 Microsoft Corporation Use of frame caching to improve packet loss recovery
US7415041B2 (en) * 2004-12-31 2008-08-19 Motorola, Inc. Method and apparatus for decoding data in a wireless communication system
US20060291475A1 (en) * 2005-06-28 2006-12-28 Noam Cohen Selective forward error correction
US7617436B2 (en) * 2005-08-02 2009-11-10 Nokia Corporation Method, device, and system for forward channel error recovery in video sequence transmission over packet-based network
US7489675B2 (en) * 2005-09-12 2009-02-10 Motorola, Inc. Method for indicating padding in a digital mobile radio system
CN1984332B (zh) * 2005-12-14 2010-05-26 财团法人工业技术研究院 数据及图像编码之方法与系统
US20090319846A1 (en) * 2006-12-30 2009-12-24 Thomson Corporation Adaptive error correction method for data transmission and devices thereof
US8605779B2 (en) * 2007-06-20 2013-12-10 Microsoft Corporation Mechanisms to conceal real time video artifacts caused by frame loss

Also Published As

Publication number Publication date
US20080225735A1 (en) 2008-09-18
CN101636983A (zh) 2010-01-27
RU2009134145A (ru) 2011-03-20
WO2008112441A1 (en) 2008-09-18
CN101636983B (zh) 2013-02-13
US7957307B2 (en) 2011-06-07
EP2132908A1 (en) 2009-12-16
KR20090119898A (ko) 2009-11-20

Similar Documents

Publication Publication Date Title
BRPI0808629A2 (pt) Redução de efeitos de perda de pacotes em transmissões de vídeo.
Wu et al. Enabling adaptive high-frame-rate video streaming in mobile cloud gaming applications
Nguyen Distributed video streaming with forward error correction
CN100539544C (zh) 媒体流式传输分发系统
US7539187B2 (en) System and method for low-latency content-sensitive forward error correction
AU2007313931B2 (en) Dynamic modification of video properties
CN109729439B (zh) 实时视频传输方法
US9565482B1 (en) Adaptive profile switching system and method for media streaming over IP networks
Wu et al. Bandwidth-efficient multipath transport protocol for quality-guaranteed real-time video over heterogeneous wireless networks
Wu et al. Improving multipath video transmission with raptor codes in heterogeneous wireless networks
KR100966447B1 (ko) 데이터 스트리밍 시스템 및 방법
US9781488B2 (en) Controlled adaptive rate switching system and method for media streaming over IP networks
US8320364B2 (en) Control of bit-rate and packet duplication in a real-time media stream
Wu et al. Streaming high-definition real-time video to mobile devices with partially reliable transfer
CN101686106A (zh) 自适应前向纠错的方法、装置和系统
Chen AMVSC: A framework of adaptive mobile video streaming in the cloud
Wu et al. TCP-oriented raptor coding for high-frame-rate video transmission over wireless networks
US8270312B2 (en) Communication system, communication method, communication device, and program
Wu et al. Adaptive source-FEC coding for energy-efficient surveillance video over wireless networks
Ma et al. Early packet loss feedback for WebRTC-based mobile video telephony over Wi-Fi
JP5523163B2 (ja) 送信装置、送信方法、プログラム
EP2337257B1 (en) Method and apparatus of sending encoded multimedia digital data taking into account sending deadlines
CN116827920B (zh) 一种流媒体服务器的弱网传输方法、系统、设备及介质
El Derini et al. MPEG-4 video transfer with SCTP-friendly rate control
Kropfberger et al. Evaluation of RTP immediate feedback and retransmission extensions [video streaming applications]

Legal Events

Date Code Title Description
B08L Patent application lapsed because of non payment of annual fee [chapter 8.12 patent gazette]

Free format text: REFERENTE AO NAO RECOLHIMENTO DAS 5A E 6A ANUIDADES.

B15K Others concerning applications: alteration of classification

Ipc: H04L 1/00 (2006.01), H04N 19/65 (2014.01), H04N 19

B08I Publication cancelled [chapter 8.9 patent gazette]

Free format text: ANULADA A PUBLICACAO CODIGO 8.12 NA RPI NO 2277 DE 26/08/2014 POR TER SIDO INDEVIDA.

B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE AS 5A, 6A, 7A, 8A, 9A, 10A, 11A E 12A ANUIDADES.

B08K Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette]

Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2602 DE 17-11-2020 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.