BRPI0806823A2 - filtro de erros para diferenciar entre erros de dados de vìdeo de link reverso e link direto - Google Patents

filtro de erros para diferenciar entre erros de dados de vìdeo de link reverso e link direto Download PDF

Info

Publication number
BRPI0806823A2
BRPI0806823A2 BRPI0806823-2A BRPI0806823A BRPI0806823A2 BR PI0806823 A2 BRPI0806823 A2 BR PI0806823A2 BR PI0806823 A BRPI0806823 A BR PI0806823A BR PI0806823 A2 BRPI0806823 A2 BR PI0806823A2
Authority
BR
Brazil
Prior art keywords
video data
error
data error
video
packet
Prior art date
Application number
BRPI0806823-2A
Other languages
English (en)
Inventor
Yen-Chi Lee
Nikolai Konrad Nepomuceno Leung
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of BRPI0806823A2 publication Critical patent/BRPI0806823A2/pt

Links

Classifications

    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89—Methods 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
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61—Network physical structure; Signal processing
    • H04N21/6106—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6131—Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a mobile phone network
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103—Selection of coding mode or of prediction mode
    • H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164—Feedback from the receiver or from the transmission channel
    • H04N19/166—Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89—Methods 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
    • H04N19/895—Methods 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 in combination with error concealment
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61—Network physical structure; Signal processing
    • H04N21/6156—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network
    • H04N21/6181—Network physical structure; Signal processing specially adapted to the upstream path of the transmission network involving transmission via a mobile phone network
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723—Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/6473—Monitoring network processes errors
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746—Control signals issued by the network directed to the server or the client
    • H04N21/64761—Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64776—Control signals issued by the network directed to the server or the client directed to the server for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

FILTRO DE ERROS PARA DIFERENCIAR ENTRE ERROS DE DADOS DE VIDEO DE LINK REVERSO E LINK DIRETO Uma técnica para implementar controle de erros em resposta a um erro de dados de vídeo compreende receber uma indicação de um erro de dados de vídeo a partir de um decodificador de vídeo, determinar se o erro de dados de vídeo ocorreu no link reverso de uma rede sem fio entre um codificador de vídeo e um aparelho de rede, e aplicar controle de erros em resposta ao erro de dados de vídeo se o erro de dados de vídeo não tiver ocorrido no link reverso. Por exemplo, a indicação do erro de dados de vídeo pode incluir um primeiro número de sequência (SN) de um pacote que compreende dados perdidos e determinar se o erro de dados de vídeo ocorreu no link reverso pode incluir comparar o primeiro SN com um segundo SN de um pacote associado a um erro RL mais recente.

Description

FILTRO DE ERROS PARA DIFERENCIAR ENTRE ERROS DE DADOS DE VÍDEO DE LINK REVERSO E LINK DIRETO
CAMPO TÉCNICO
A revelação refere-se à codificação de vídeo e, mais especificamente, a técnicas para controle eficaz de erros de vídeo.
ANTECEDENTES
A telefonia de vídeo (VT) envolve a comunicação em tempo real de pacotes que portam dados de áudio e vídeo. Cada aparelho de VT inclui um codificador de vídeo que obtém vídeo de um aparelho de captura de vídeo, tal como uma câmera de vídeo ou arquivo de vídeo, e gera pacotes de dados de vídeo ("pacotes de vídeo"). Da mesma maneira, um codificador de áudio em cada aparelho de VT obtém áudio de um aparelho de captura de áudio, tal como um microfone ou sintetizador de fala, e gera pacotes de dados de áudio ("pacotes de áudio"). Os pacotes de vídeo e os pacotes de áudio são colocados em uma fila de protocolos de rádio-link (RLP). Um módulo de camada de controle de acesso a maior (MAC) gera pacotes de camada de controle de acesso a meio (MAC) dos conteúdos da fila RLP. Os pacotes de camada MAC são convertidos em pacotes de camada física (PHY) para transmissão através de um canal de comunicação para outro aparelho de VT.
Em aplicativos de VT móveis, um aparelho de VT recebe os pacotes de camada física por meio de um link direto sem fio (FL) (ou "downlink") de uma estação base para o aparelho de VT, que pode ser um terminal sem fio móvel, tal como um rádio-telefone celular. Um aparelho de VT transmite os pacotes de camada PHY por meio de um link reverso (RL) (ou "uplink") sem fio do aparelho de VT para a estação base. Cada aparelho de VT inclui camadas PHY e MAC para converter os pacotes de camada PHY e MAC recebidos e remonta as cargas úteis de pacote em pacotes de áudio e pacotes de vídeo Um decodificador de vídeo dentro do aparelho de VT decodifica os dados de vídeo para a apresentação ao usuário por meio de um aparelho de exibição. Um decodificador de áudio dentro do aparelho de VT decodifica os dados de áudio para apresentação por meio de um alto-falante de áudio. De maneira semelhante, um aparelho de vídeo pode incluir um codificador de vídeo e um codificador de áudio para codificar vídeo e áudio, respectivamente, para transmissão para outro aparelho de VT.
Erros de dados de vídeo podem ocorrer durante a transmissão de pacotes de vídeo do codificador de vídeo para o decodif icador de vídeo. Por exemplo, o erro pode ocorrer durante a transmissão no RL (do codificador de vídeo para a estação base) na estação base, ou durante a transmissão no FL (da estação base para o decodificador de vídeo). Erros podem minar a qualidade visual do vídeo apresentado ao usuário. Entretanto, diversas técnicas de correção ou ocultação de erros podem ser aplicadas quando erros forem detectados.
SUMÁRIO
Em geral, a revelação refere-se a técnicas para controle de erros de dados de vídeo que podem aumentar a eficácia do codificador de vídeo. Um codificador de vídeo é configurado para aplicar controle de erros a erros RL antes de receber um relatório do erro de um aparelho receptor por meio de realimentação de erros fim a fim (E2E) . Um erro relatado na realimentação de erros E2E pode ser um erro de link reverso (RL) ou um erro de link direto (FL) , que inclui erros atribuíveis a uma rede de acesso. De acordo com as técnicas reveladas, um filtro de erros distingue erros RL de erros FL ou erros da rede de acesso indicados pela realimentação de erros E2E. Desta maneira, as técnicas reveladas podem impedir que o codificador de video reaplique controle de erros a um erro RL que o codificador de video já resolveu.
A aplicação do controle de erros ao mesmo erro RL duas vezes pode reduzir a eficácia de codificação do codificador de video e pode ser também uma utilização ineficaz da largura de banda do canal de transmissão uma vez que algumas técnicas de controle de erros podem acrescentar largura de banda adicional. Determinando se o erro relatado na realimentação de erros E2E é um erro RL, o filtro de erros permite que o sistema codificador determine se o controle de erros já foi aplicado ao erro relatado na realimentação de erros E2E ou se o codificador de video deve aplicar controle de erros ao erro relatado. Portanto, as técnicas reveladas reduzem ou eliminam a correção redundante de erros e a ineficácia afim.
Sob alguns aspectos, um sistema codificador compreende também um módulo para adaptar o controle de erros aplicado pelo codificador de video às condições da largura de banda do canal. Em algumas aplicações, como em uma rede comutada por pacote, a largura de banda de um canal sem fio pode variar, seja, por exemplo, devido à localização, ao ambiente ou às cargas de tráfego do canal. Por conseguinte, de modo a ajudar a evitar a sobrecarga do canal sem fio, o sistema codificador pode incorporar um módulo para monitorar as condições de largura de banda do canal e selecionar uma técnica de controle de erros com base nas condições de largura de banda do canal. Como exemplificação. A renovação intra-quadro pode ser aplicada quando a largura de banda do canal for mais elevada, enquanto a renovação intra-macrobloco (MB) aleatória (RIR) pode ser aplicada quando a largura de banda do canal for mais baixa.
Sob um aspecto, a revelação refere-se a um método que compreende receber a indicação de um erro de dados de video detectado por um decodificador de vídeo, determinar se o erro de dados de vídeo ocorreu no link reverso de uma rede sem fio entre um codificador de vídeo e um aparelho de rede e aplicar controle de erros em resposta à indicação do erro de dados de vídeo se o erro de dados de vídeo não tiver ocorrido no link reverso e não aplicar controle de erros em resposta ao erro de dados de vídeo se o erro de dados de vídeo tiver ocorrido no link reverso.
Sob outro aspecto, a revelação refere-se a um sistema que compreende um transceptor para receber a indicação de um erro de dados de vídeo detectado por um decodificador de vídeo, um codificador de vídeo e um filtro de erros para determinar se o erro de dados de vídeo ocorreu no link reverso de uma rede sem fio entre o codificador de vídeo e um aparelho de rede, em que o vídeo é configurado para aplicar controle de erros em resposta à indicação do erro de dados de vídeo se o erro de dados de vídeo não tiver ocorrido no link reverso.
Sob ainda outro aspecto, a revelação refere-se a um produto de programa de computador que compreende um meio passível de leitura por computador que compreende instruções. As instruções fazem com que um computador receba a indicação de um erro de dados de vídeo detectado por um decodificador de vídeo, determine se o erro de dados de vídeo ocorreu no link reverso de uma rede sem fio entre um codificador de vídeo e um aparelho de rede e aplique controle de erros em resposta ao erro de dados de vídeo se o erro de dados de vídeo não tiver ocorrido no link reverso e não aplique controle de erros em resposta ao erro de dados de vídeo se o erro de dados de vídeo tiver ocorrido no link reverso.
Sob outro aspecto, a revelação refere-se um sistema que compreende um dispositivo para receber a indicação de um erro de dados de vídeo detectado por um decodificador de vídeo, um dispositivo para determinar se o erro de dados de vídeo ocorreu no link reverso de uma rede sem fio entre o codificador de vídeo e um aparelho de rede e um dispositivo para aplicar controle de erros em resposta à indicação do erro de dados de vídeo se o erro de dados de vídeo não tiver ocorrido no link reverso e não aplicar controle de erros em resposta ao erro de dados de vídeo se o erro de dados de vídeo tiver ocorrido no link reverso.
Os detalhes de um ou mais exemplos da revelação são apresentados nos desenhos anexos e na descrição
DESCRIÇÃO RESUMIDA DOS DESENHOS
A Figura 1 é um diagrama que mostra um sistema de codificação e decodificação de vídeo/áudio para aplicativos de telefonia de vídeo.
A Figura 2 é um diagrama que mostra um sistema de codificação e decodificação de vídeo/áudio que implementa uma técnica de filtração de erros.
A Figura 3 é um diagrama de fluxos que mostra uma técnica para filtrar erros de link reverso de uma realimentação de erros fim a fim.
A Figura 4 é um diagrama de fluxos que mostra outra técnica para filtrar erros de link reverso de uma realimentação de erros fim a fim.
DESCRIÇÃO DETALHADA A Figura 1 é um diagrama de blocos que mostra um sistema de codificação e decodificação de vídeo 10. Conforme mostrado na Figura 1, o sistema 10 inclui um sistema codificador 12 e um sistema decodificador 14 conectados por um canal de transmissão 16, que inclui um ou mais componentes de rede de acesso (AN) 15. O sistema codificador 12 e o sistema decodificador 14 podem representar diversos tipos de aparelho, tais como telefones sem fio, telefones celulares, computadores laptop, tocadores de vídeo digital, servidores de broadcast digital, cartões de computador pessoal de comunicação sem fio, assistentes digitais pessoais (PDA), modems externos ou internos ou qualquer aparelho que se comunique através de um canal sem fio.
Um componente de AN 15 pode referir-se à parte de rede de um sistema de comunicação e pode incluir ou implementar a função de uma estação base (BS), um sistema transceptor de estação base (BTS), um ponto de acesso (AP), um transceptor de bastidor de modems (MPT), um Nó B (em um sistema do tipo WCDMA, por exemplo) e assim por diante. 0 sistema codificador 12 e o sistema decodificador 14 comunicam-se, cada um, com o componente de AN em um link direto (FL) e/ou um link reverso (RL). 0 FL, que é também referido como "downlink", refere-se à transmissão do componente de AN 15 para o sistema 12 ou 14. 0 link reverso, que é também referido como "uplink", refere-se à transmissão do sistema 12 ou 14 para o componente de AN 15.
0 sistema 10 pode proporcionar uma transmissão de vídeo e áudio bidirecional, como, por exemplo, para telefonia de vídeo (VT) por meio do canal de transmissão 16. A VT refere-se à comunicação em tempo real de pacotes de áudio e vídeo entre pelo menos dois aparelhos, tais como os sistemas 12 e 14. Por conseguinte, módulos de codificação, decodificação e conversão geralmente alternados podem ser apresentados nos sistemas 12 e 14 nas extremidades opostas do canal 16. Alternativamente, um ou ambos os sistemas 12 podem ser dedicados apenas à codificação e transmissão de áudio e video, ou apenas à recepção e decodificação de áudio e video. Em alguns exemplos, o sistema codificador 12 e o sistema decodificador 14 podem ser corporifiçados dentro de aparelhos de comunicação de video, tais como terminais móveis sem fio equipados para fluxo continuo de video, telefonia de video, ou ambos. Os terminais móveis podem suportar VT de acordo com padrões comutados por pacotes, tais como o protocolo de transporte em tempo real (RTP), o Protocolo de Datagrama de Usuário (UDP), o Protocolo Internet (IP) ou o protocolo de ponto para ponto (PPP).
0 sistema 10 pode ser projetado para suportar uma ou mais tecnologias de comunicação sem fio, tais como acesso múltiplo por divisão de codificação (CDMA), acesso múltiplo por divisão freqüência (FDMA), acesso múltiplo por divisão de tempo (TDMA) ou multiplexação por divisão de freqüência ortogonal (OFDM) ou outra técnica sem fio adequada. As tecnologias de comunicação sem fio acima podem ser transmitidas de acordo com qualquer uma de diversas tecnologias de rádio-acesso. Por exemplo, o CDMA pode ser transmitido de acordo com os padrões cdma2000 e CDMA de banda larga (WCDMA). 0 TDMA pode ser transmitido de acordo com o padrão Sistema Global para Comunicações Móveis (GSM). 0 padrão Sistema Universal de Telecomunicações Móveis (UMTS) permite o funcionamento de acordo com o GSM ou WCDMA. Tipicamente, para aplicativos VT, o sistema 10 será projetado para suportar tecnologias de alta taxa de dados (HDR), tais como o cdma2000 1 χ EV-DO Versão 0 e Revisão A. O sistema codificador 12 é associado a um primeiro aparelho de vídeo e inclui uma fonte de áudio 17, uma fonte de vídeo 18, um codificador de vídeo 20, um codificador de áudio 22, um módulo de conversão protocolo de transporte em tempo real (RTP)/protocolo de datagrama de usuário (UDP)/protocolo Internet/protocolo de ponto para ponto (PPP) 26, uma fila de protocolos de rádio-link (RLP) 28, um módulo de camada MAC 30 e um módulo de camada PHY 32. Conforme será descrito, o sistema codificador 12 pode incluir também um filtro de erros para diferençar entre erros atribuíveis a fontes diferentes, assim como um módulo para adaptar controle de erros à largura de banda disponível do canal 16. O sistema decodificador 14 é associado a outro aparelho de comunicação de vídeo e inclui um módulo de camada PHY, um módulo de camada MAC 36, uma fila RLP 38, um módulo de conversão RTP/UDP/IP/PPP 40, um decodificador de vídeo 42 e um decodificador de áudio 44.
A fonte de vídeo 18 pode ser um aparelho de captura de vídeo, tal como uma câmera de vídeo, um ou mais arquivos de vídeo ou uma combinação de uma câmera de vídeo e arquivos de vídeo, ou uma fonte de broadcast ao vivo de um provedor de conteúdo. 0 sistema 10 pode suportar telefonia de vídeo ou fluxo contínuo de vídeo de acordo com o Protocolo de Iniciação de Sessão (SIP) , o padrão ITU-T H.323, o padrão ITU-T H.324 ou outros padrões. O codificador de vídeo 20 gera dados de vídeo codificados de acordo com um padrão de compactação de vídeo, tal como o MPEG-2, MPEG-4, ITU-T H.263 ou ITU-T H.264 e seu equivalente, ISSO/IEC MPEG-4, Parte 10, isto é, a Codificação Avançada de Vídeo. 0 sistema 10 também pode ser configurado para suportar codificação de vídeo Aperfeiçoada H.264 para entrega de serviços de vídeo em tempo real em sistemas de multicast de multimídia móveis terrestres (TM3) que utilizam a Especificação de Interface Aérea de Link Direto Apenas (FLO), "Especificação de Interface Aérea de Link Direto Apenas para Multicast de Multimídia Móvel Terrestre", a ser publicada como Padrão Técnico TIA-1099 (a "Especificação FLO").
O codificador de vídeo 20 e o decodificador de vídeo 42 podem ser, cada um, implementados como um ou mais processadores, processadores de sinais digitais, circuitos integrados específicos de aplicativo (ASICs) , arranjos de portas programáveis no campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações deles. Cada um do codificador de vídeo 20 e do decodif icador de vídeo 42 pode ser incluído em um ou mais codificadores ou decodificadores, um ou o outro dos quais pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um respectivo aparelho de assinante, aparelho de broadcast, servidor ou semelhante. Além disto, o sistema 12 e o sistema 14 podem incluir, cada um, componentes de modulação, demodulação, conversão de freqüência, filtragem e amplificador apropriados para transmissão e recepção de vídeo codificado, conforme aplicável, inclusive componentes e antenas sem fio de radiofreqüência (RF). Para facilitar a ilustração, contudo, tais componentes não são mostrados na
Figura 1.
A fonte de áudio 17 pode ser um aparelho de captura de áudio, tal como um microfone ou um aparelho sintetizador de fala, que captura dados de áudio para acompanhar os dados de vídeo da fonte de vídeo 18. Alternativamente, a fonte de áudio 17 pode incluir um arquivo de áudio ou uma fonte de broadcast de áudio ao vivo de um provedor de conteúdo. O codificador de áudio 22 pode codificar os dados de áudio de acordo com um método de compactação de áudio, tal como uma técnica de banda estreita de várias taxas adaptativa (AMR-NB) ou outras técnicas. Para aplicações de VT, o video permitirá que uma parte assista a uma conferência de VT, e o áudio permitirá que a voz falante dessa parte seja ouvida. Para outras aplicações, tais como fluxo continuo ou execução de broadcast de multimídia, o áudio e o vídeo formam parte de um conteúdo multimídia, como, por exemplo, uma apresentação, um show ou um filme.
Em funcionamento, o módulo de conversão RTP/UDP/IP/PPP 26 obtém o quadro codificado de dados de vide e dados de áudio codificados do codificador de vídeo e do codificador de áudio 22 e adiciona informações de cabeçalho apropriadas (informações de roteamento e seqüenciamento, por exemplo) aos pacotes de vídeo e áudio e insere os dados resultantes dentro da fila RLP 28. Tipicamente, o RTP roda no topo do UDP, enquanto o UDP roda no topo do IP e o IP roda no topo do PPP. O RTP é um protocolo desenvolvido para transmitir dados em tempo real, tais como dados multimídia. No RTP, a saída do codificador de vídeo 20 assim como a do codificador de áudio 22 são agrupadas em pacotes de dados. Assim, um quadro de dados de vídeo pode ser separado em um ou mais pacotes de dados para transmissão do quadro, através do canal 16, para o sistema decodificador 14, e vários quadros são tipicamente transmitidos como vários pacotes de dados. Cada pacote inclui um número de seqüência (SN) para fins de identificação e seqüenciamento. O SN pode ser incluído, por exemplo, nas informações de cabeçalho RTP/UDP/IP/PPP.
O módulo de camada MAC 30 recupera dados da fila RLP 28 e gera pacotes de camada MAC a partir dos conteúdos da fila RLP 28. Cada pacote de camada MAC porta informações de cabeçalho RTP/UDP/IP/PPP e dados em pacotes de áudio e vídeo que estão contidos dentro da fila RLP 28. Pacotes de áudio podem ser inseridos na fila RLP 28 independentemente de pacotes de vídeo. Em alguns casos, um pacote de camada MAC gerado a partir dos conteúdos da fila RLP 28 só portará informações de cabeçalho, dados em pacotes de áudio e dados em pacotes de vídeo, dependendo dos conteúdos da figura RLP 28. Os pacotes de camada MAC podem ser configurados de acordo com um RLP e podem ser também referidos como pacotes RLP MAC.
0 módulo de camada PHY 32 converte os pacotes RLP MAC em pacotes de camada PHY para transmissão através do canal 16. Em particular, um transceptor dentro do sistema codificador 12 transmite os pacotes de camada PHY para o componente de AN 15 através do canal 16. 0 canal 16 porta os pacotes de camada PHY para o sistema decodificador 14. 0 canal 16 pode ser qualquer conexão física entre o sistema codificador 12 e o sistema decodificador 14. Por exemplo, o canal 16 pode ser uma conexão cabeada, tal como uma rede cabeada de área local ou estendida. Alternativamente, conforme aqui descrito, o canal 16 pode ser uma conexão sem fio, tal como uma conexão celular, por satélite ou óptica. De maneira mais típica, o canal 16 pode incluir uma combinação de meios cabeados e sem fio.
0 módulo de camada PHY 34 e o módulo de camada MAC 36 do sistema decodificador 14 funcionam de maneira alternada. 0 módulo de camada PHY 34 converte/remonta pacotes de camada PHY recebidos do canal 16 em pacotes RLP MAC. 0 módulo de camada MAC 36 remonta os conteúdos dos pacotes RLP MAC de modo a obter pacotes de vídeo e áudio para inserção dos pacotes RLP MAC na fila RLP 38. 0 módulo de conversão RTP/UDP/IP/PPP 40 desmonta as informações de cabeçalho dos dados na fila RLP 38 e remonta os dados de vídeo e áudio para entrega ao decodificador de vídeo 42 e ao decodificador de aúdio 44, respectivamente.
O decodificador de vídeo 42 decodifica os quadros de dados de vídeo, de modo a se produzir um fluxo de dados de vídeo para utilização no acionamento de um aparelho de exibição (saída de vídeo) 48. O SN associado a cada pacote pode ajudar o decodificador de vídeo 42 a reordenar e remontar os pacotes de dados de vídeo em quadros. Por exemplo, os pacotes podem ser recebidos fora de seqüência de uma perspectiva temporal, exigindo reordenamento na seqüência temporal apropriada. O decodificador de áudio 44 decodifica os dados de áudio para produzir informações de áudio para apresentação ao usuário (por meio de um alto- falante de áudio (saída de áudio) 46).
Podem ocorrer erros durante a transmissão de um quadro de dados de vídeo do sistema codificador 12 para o sistema decodificador 14. Os erros podem incluir um pacote perdido ou um pacote que contém dados perdidos. Daqui por diante, "pacote perdido" refere-se tanto à perda de um pacote inteiro quanto à perda de dados dentro de um pacote.
O erro de dados de vídeo pode ocorrer em um RL (do sistema codificador 12 para o componente de AN 15, por exemplo), em um FL (do componente de AN 15 para o sistema decodificador 14, por exemplo) ou dentro do componente de AN 15.
Portanto, os erros podem ser considerados erros RL ou erros FL. Em geral, os erros que ocorrem dentro do componente de AN 15 serão também referidos como erros FL. Erros podem ocorrer dentro do componente de AN 15 por muitas razões.
Por exemplo, se o componente de AN 15 for constituído por mais de uma rede básica, uma perda de um ou mais pacotes de vídeo ou de dados dentro dos pacotes pode ocorrer à medida que os dados de vídeo são transmitidos entre redes básicas. O sistema codificador 12 pode identificar erros RL por meio de uma ou mais técnicas. Em uma técnica de identificação de erros, o codificador de vídeo 20 consulta uma ou mais camadas inferiores do sistema codificador 12 de modo a determinar se um erro ocorreu durante a transmissão de um quadro de vídeo codificado mais recentemente antes de o codificador de vídeo 20 codificar um novo quadro de vídeo. A detecção do erro antes da codificação de um novo quadro de vídeo permite ao codificador de vídeo 20 (ou a um segundo módulo de controle de erros dentro do sistema codificador 12) efetuar controle de erros no quatro atual, codificado mais recentemente, de maneira relativamente rápida sem esperar realimentação do sistema decodificador 14.
A Figura 2 é um diagrama que mostra o aparelho codificador 12 implementando uma técnica de filtração de erros. No exemplo mostrado na Figura 2, o aparelho codificador 12 inclui uma camada UDP/IP/PPP 26B, uma camada MAC 30, um módulo de filtro de erros 50, um módulo de protocolo de rádio-link (RLP) 55, um módulo de protocolo de consolidação de pacotes (PCP) 56, um módulo de adaptação de taxa RL 58 e um módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60. Alguns componentes do sistema codificador 12 que são mostrados na Figura 1, tais como o codificador de áudio 22 e a camada PHY 32, foram removidos do diagrama da Figura 2 para maior clareza de ilustração.
Conforme descrito em mais detalhes a seguir, o módulo de filtro de erros 50 determina se o erro relatado na realimentação de erros E2E do sistema decodificador 14 já foi corrigido. Ou seja, o filtro de erros 50 elimina por filtragem os erros RL dos erros relatados na realimentação de erros E2E, o que pode ajudar o codificador de vídeo 20 a evitar a aplicação desnecessária do controle de erros aos erros RL relatados na realimentação E2E. No exemplo do sistema codificador 12 mostrado na Figura 2, o filtro de erros 50 está na mesma camada do RTP 26A. 0 filtro de erros 50 inclui um módulo de Extração de SN de Erros RL 52 e um módulo de determinação de Erros de Transmissão (TX) 54.
Em um exemplo, as camadas inferiores do sistema codificador 12 fica de olho na condição de transmissão de um quadro de video por um indicador, tal como um campo de bits binários. Por exemplo, quando um erro ocorre entre o sistema de codificação 12 e o componente de AN 15, o componente de AN 15 pode enviar uma confirmação negativa (NAK) à camada MAC 30. A camada MAC 30 pode informar o módulo PCP 56 do pacote MAC associado à NAK. 0 módulo PCP 56 determina se o pacote MAC perdido, embora a qualidade de serviço (QoS) seja suportada no link reverso EV-DO Rev A. Se houver dados de video no pacote MAC perdido, o módulo PCP 56 informará o módulo RLP 55 (mostrado na Figura 2) dos dados perdidos e identificará a fila RLP especifica (pode haver várias filas RLP) que contém o pacote que experimentou um erro na transmissão com uma NAK de pacote RLP.
O módulo RLP 55 determina qual pacote contém os dados perdidos. Em seguida, o módulo RLP 55 informa a camada RLP 26A em uma camada de aplicativo qual pacote inclui os dados perdidos com uma NAK de pacote de fluxo de video. A camada RTP 26A pode manter um mapa ou tabela que converta o pacote perdido em MBs perdidos em um quadro. As informações que identificam os MPs perdidos são passadas para o codificador de video 20 (ou para um módulo de controle de erros) para controle de erros adicional. Por exemplo, o codificador de video 20 pode aplicar uma renovação intra-quadro ou uma renovação intra-MP aleatória para esconder o erro. Em outra abordagem para identificar erros RL, na qual as camadas inferiores do sistema codificador 12 fica de olho na condição de transmissão de um quadro de video por um indicador, o codificador de video 20 pode consultar o módulo RLP 55 antes de codificar cada novo quadro de dados de video, e informações sobre erros podem ser passadas diretamente para o codificador de video 20 para controle de erros. A camada MAC 30 pode enviar automaticamente uma NAK ao módulo PCP 5 6 se um erro RL ocorrer, e o módulo PCP pode enviar uma NAK ao módulo RLP 55, que configura o indicador.
Em uma ou na outra das abordagens discutidas acima, se um pacote do quadro de video for perdido, o indicador dentro da camada mais baixa do sistema codificador é configurado. Uma vez que o codificador de video 20 consulta o módulo RLP 55 para verificar o indicador, o indicador é reconfigurado para o quadro de video codificado seguinte. O codificador de video 20 aplica controle de erros ao quadro de dados de video codificado seguinte se o indicador for configurado. O indicador só indica se houve um erro RL na transmissão do quadro de video codificado mais recentemente, e não do pacote especifico que foi perdido. Assim, o codificador de video 20 pode não conhecer qual parte do quadros está perdida e aplica controle de erros presumindo que o erro tenha ocorrido em qualquer parte do quadro. Uma vez que o controle de erros é aplicado ao quadro inteiro, saber se há um erro pode ser apenas tão útil quanto saber qual pacote de dados de video foi perdido.
As técnicas de controle de erros de video assistidas por camadas mais baixas descritas acima resolvem erros que ocorrem a dados de video durante a transmissão no RL (isto é, erros RL) . As técnicas podem permitir ao codificador de video 20 utilizar informações sobre erros da camada MAC 30 e aplicar imediatamente controle de erros, sem esperar realimentação do sistema decodificador 14 (isto é, do aparelho receptor).
Outra técnica identifica erros tanto RL quanto FL, que incluem erros que ocorrem dentro do componente AN 15. Por exemplo, o sistema decodificador 14 pode fornecer realimentação ao codificador de video 20 do sistema codificador 12, indicando que um erro ocorreu. Um transceptor (não mostrado) do sistema codificador 12 pode receber a realimentação do sistema decodificador 14. O codificador de video 20 pode então aplicar controle de erros ao quadro codificado seguinte para prevenir propagação de erros. Relatos de erros do sistema decodificador 14 para o sistema codificador 12 podem ser referidos como "realimentação fim a fim (E2E)".
A utilização de realimentação E2E pode ser baseada na Realimentação de Perfil de Áudio-Video (AVPF) RFC 4585, que proporciona um mecanismo de realimentação baseado no protocolo de controle em tempo real (RTCP), que permite que um aparelho receptor de dados de vídeo (isto é, o sistema decodificador 14) forneça realimentação imediata ao sistema codificador 12. A realimentação E2E compreende tipicamente o SN de um pacote RTP perdido ou de um pacote RTP que contém dados perdidos. Por exemplo, se um pacote RTP com o SN 100 for perdido, o sistema decodif icador 14 detecta a perda e envia uma realimentação RTCP com o SN 100 ao sistema codificador 12 com uma carga útil AVPF.
Uma vez que o codificador de vídeo 20 detecte um erro, o codificador de vídeo 20 pode aplicar controle de erros de acordo com qualquer técnica adequada. Exemplos de técnicas de controle de erros adequadas incluem a utilização de um quadro de referência diferente para o quadro de vídeo seguinte que é codificado, o aumento da taxa de renovação intra-macrobloco (MB) (isto é, "renovação intra-macrobloco") ou a inserção de um intra-quadro (I- quadro) para deter a propagação de erros no aparelho decodificador 14 (isto é, "inserção intra-quadro"). Em um I-quadro, cada MB é intra-codifiçado, isto é, cada MB não depende do quadro anterior, o que pode deter a propagação de erros. Para renovação intra-MB, apenas alguns MBs são intra-codifiçados. A inserção intra-quadros pode proporcionar melhor qualidade de vídeo quando erros ocorrem, mas consume mais largura de banda porque o I- quadro inteiro é transmitido em vez dos MBs que formam apenas uma parte do quadro. Em um tipo de técnica de controle de erros que utiliza um quadro de referência para codificar um quadro subseqüente, MBs de quadro de dados de vídeo podem ser codificados por codificação baseada em movimento. A codificação baseada em movimento envolve identificar um MB de quadro anterior que é semelhante (MP preditivo) e enviar um vetor de movimento para identificar o MB preditivo no quadro anterior (ou quadro subseqüente na codificação bidirecional) e enviar um bloco de diferença indicativo das diferenças entre o MB atual e o MP preditivo. Um vetor de movimento geralmente caracteriza a distância entre MB de melhor correspondência (isto é, um MP preditivo) no quadro codificado anteriormente e o dado MB. Quando o codificador de vídeo 20 detecta um erro, o codificador de vídeo 20 pode utilizar um quadro codificado antes do quadro que inclui o erro como o quadro de referência para o quadro de vídeo seguinte que é codificado.
O codificador de vídeo 20 é configurado para aplicar controle de erros com base em duas fontes de informação: realimentação de erros RL e realimentação de erros E2E. Conforme discutido acima, na comunicação de video sem fio, o erro relatado na realimentação de erros E2E pode ser atribuído a um erro que ocorre no RL ou no FL. A realimentação E2E não inclui uma indicação de onde o erro ocorreu e, assim, o codificador de vídeo 20 é tipicamente incapaz de determinar a origem do pacote perdido.
Em alguns casos, a realimentação de erros E2E pode relatar um erro RL que o codificador de vídeo 20 já identificou pela consulta a uma ou mais camadas inferiores, como, por exemplo, o módulo RLP 55 do sistema codificador 12. Uma vez que o codificador de vídeo 20 aplica controle de erros ao erro RL quando da identificação do erro RL, o codificador de vídeo 20 tipicamente endereçou o RL por volta do momento em que o erro RL foi relatado pela realimentação de erros E2E. Entretanto, uma vez que o codificador de vídeo 20 é incapaz de determinar a origem do erro relatado na realimentação de erros E2E e distinguir entre erros RL e erros FL, o codificador de vídeo 20 pode aplicar controle de erros ao mesmo erro RL mais de uma vez, o que pode ser uma utilização ineficaz de recursos e largura de banda. Por exemplo, aplicação de controle de erros ao mesmo erro duas vezes pode diminuir a eficácia de codificação do codificador de vídeo 20 e provocar a deterioração da saída de qualidade de vídeo 48.
O codificador de vídeo 20 corrige os erros RL antes de receber um relato do sistema decodificador 14 (por meio da realimentação de erros E2E). A correção de erros RL relativamente pouco tempo depois da detecção do erro RL ajuda a reduzir os artefatos causados por um pacote perdido ou um pacote que contém dados perdidos. NO exemplo mostrado na Figura 2, o decodificador de vídeo 42 proporciona a realimentação de erros E2E. Em outros exemplos, contudo, outros componentes do sistema decodificador 14 podem fornecer realimentação de erros E2E ao sistema codificador 12. Conforme discutido acima, o codificador de video 20 pode utilizar qualquer técnica adequada para identificar erros RL. No exemplo mostrado na Figura 2, o codificador de video 20 consulta o módulo RLP 55 e lê um indicador configurado dentro do módulo RLP 55 de modo a identificar se um erro RL ocorreu durante a transmissão de um quadro de video recém-codifiçado para o componente de AN 15 (isto é, durante uma transmissão RL).
O filtro de erros 50 é configurado para receber realimentação de erros E2E do decodificador de video 42 e determinar a origem do erro. Se o filtro de erros 50 determinar que um erro E2E relatado ocorreu no RL, pode ser desnecessário o codificador de video 20 corrigir o erro RL uma segunda vez. Entretanto, se o filtro de erros 50 determinar que o erro relatado na realimentação de erros E2E ocorreu no FL, o codificador de video 20 pode corrigir o erro FL de modo a deter a propagação de erros. Em outras palavras, o filtro de erros 50 determina se um erro E2E relatado já foi corrigido como parte de um erro RL ou se o codificador de video 20 deve corrigir o erro.
O filtro de erros 50 pode ficar de olho nos erros RL que são corrigidos pelo codificador de video 20 por meio de pelo menos duas técnicas. Em uma primeira técnica, o filtro de erros 50 recebe um número de seqüência (SN) de um pacote de video de um quadro de video que foi perdido no RL. Em uma segunda técnica, o filtro de erros 50 recebe informações que indicam se um quadro de video recém- codif içado tinha um erro RL. 0 filtro de erros 50 de acordo com a segunda técnica é mostrado na Figura 2. Em um exemplo da segunda técnica para identificar erros RL, a camada RTP 26A atribui um SN ao último pacote de um quadro de video recém-codifiçado e envia este SN ao módulo de Extração de SN de Erros RL 52 do filtro de erros 50. 0 módulo de Extração de SN de Erros RL 52 determina se um erro RL ocorreu (isto é, se um ou mais pacotes ou dados dentro dos pacotes foram perdidos) quando o quadro codificado associado ao SN foi transmitido para o componente de AN 15 lendo o indicador (o campo de bits binários, por exemplo) configurado em uma camada inferior do sistema codificador 12. O indicador lido pelo módulo de Extração de SN de Erros RL 52 é o mesmo indicador lido pelo codificador de video 20 para identificar um erro RL. O indicador indica se algum dado foi perdido em um fluxo de video desde a última vez em que a camada inferior foi consultada. Se o quadro associado ao SN não tiver tido um erro, o módulo de Extração de SN de Erros RL 52 continua a armazenar o SN do quadro mais recente que teve um erro de transmissão. 0 SN armazenado dentro do módulo de Extração de SN de Erros RL 52 é referido como SNi.
Sob alguns aspectos, se algum dos pacotes que portam os dados para o quadro codificado for perdido, o codificador de video 20 aplica correção de erros ao quadro de video inteiro. Por conseguinte, ficando de olho no SNi do último pacote do quadro de video codificado mais recentemente que incluía um ou mais erros RL, o módulo de extração de SN de Erros RL 52 é capaz de rastrear erros RL que o codificador de vídeo 20 corrigiu. Por exemplo, se um quadro codificado for separado em pacotes com SNs 101 a 115, e o pacote identificado pelo SN 105 for perdido no RL, o codificador de vídeo 20 aplica controle de erros ao quadro codificado. Assim, mesmo se a transmissão do pacote identificado pelo SN 115 não resultar em um erro RL, e uma vez que os SNs são tipicamente seqüenciais, o controle de erros foi também aplicado ao pacote identificado pelo SN 115. Desta maneira, o filtro de erros 50 rastreia os erros RL que foram corrigidos em vez de rastrear exatamente os pacotes que foram perdidos no RL. 0 filtro de erros 50 pode rastrear também os erros RL que foram corrigidos pelo rastreamento do SN do(s) pacote(s) exato(s) que foram perdidos ou que continham erro.
Sob outros aspectos, em vez de aplicar correção de erros a um quadro de vídeo inteiro, o codificador de vídeo 20 aplica correção de erros à parte do quadro de dados de vídeo na qual o erro ocorreu. Por exemplo, o codificador de vídeo 20 pode aplicar correção de erros a um macrobloco no quadro ou a um pacote que porta vários macroblocos. Por conseguinte, ficando de olho no número de seqüência SNx do pacote que foi corrigido ou no pacote que continha o macrobloco que foi realmente corrigido, o módulo de Extração de SN de Erros RL é capaz de rastrear os erros RL que o codificador de vídeo 20 corrigiu.
O decodificador de vídeo 42 reporta a realimentação de erros E2E para o módulo de Determinação de Erros TX 54 do filtro de erros 50 sob a forma de um número de seqüência SN2 de um pacote RTP perdido. O decodificador de vídeo 42 só envia realimentação de erros E2E quando há um erro e identifica o pacote exato que foi perdido. A realimentação de erros E2E pode incluir mais de um SN se mais de um pacote for perdido. Em um exemplo, o módulo de Determinação de Erros TX 54 rastreia o SN mais elevado relatado pelo decodif icador de vídeo 42 como SN2 uma vez que o codificador de vídeo 20 aplicará controle de erros ao quadro inteiro, e o SN mais elevado representa o quadro de vídeo. Em outras palavras, apenas o SN mais elevado do último pacote utilizado para codificado um quadro de vídeo é necessário para identificar o quadro de maneira única.
De modo a se determinar se o erro relatado na realimentação de erros E2E é um erro RL que já foi corrigido ou um erro FL, o módulo de Determinação de Erros TX 54 compara o SN2 recebido na realimentação de erros E2E com o SNi do último pacote do quadro de video codificado mais recentemente que tinha erros. Se o SN2 for maior que o SNi, o erro relatado na realimentação de erros E2E é um erro FL, porque o SN2 mais elevado indica que o pacote identificado pelo SNi foi transmitido depois do pacote identificado pelo SN2. Se um erro ocorresse durante a transmissão do pacote identificado por SN2 no RL, o módulo de Extração de SN de Erros RL 52 teria registrado SN2 ou o SN do último pacote do quadro do qual o pacote identificado por SN2 é uma parte, como o SN mais elevado do erro RL mais recente que o codificador de video 12 corrigiu. Entretanto, uma vez que o módulo de Extração de SN de Erros RL 52 armazenou SNx como identificando o erro RL mais recente, é provável que o erro dentro do pacote identificado pelo SN2 tenha ocorrido após a transmissão RL. Assim, se SN2 for maior que SNx, o módulo de determinação de erros TX 54 informa ao codificador de video 20 que o erro associado ao SN2 não foi corrigido anteriormente, e neste caso o codificador de video 20 aplica controle de erros ao quadro codificado seguinte.
Ao contrário, se SN2 for menor que SNx, o erro relatado na realimentação de erros E2E era um erro RK que já tinha sido corrigido porque o pacote identificado pelo SN2 foi transmitido antes do pacote identificado pelo SN1 e, por conseguinte, já foi corrigido. Se o SN2 for menor que SNx, o codificador de video 20 não aplica nenhum controle de erros ao quadro codificado seguinte. Se SN2 for igual a SN1, o erro relatado na realimentação de erros E2E é o mesmo que o erro RL mais recente que já foi corrigido, e o codificador de video 20 não aplica nenhum controle de erros ao quadro codificado seguinte. O filtro de erros 50 permite que o sistema codificador 12 diference de maneira eficaz entre erros de transmissão de dados de video RL e erros de transmissão de dados de video FL, que incluem erros que ocorrem dentro do componente de AN 15. Pela diferenciação entre os diferentes tipos de erros, mensagens de erros duplicadas são eliminadas por filtragem da realimentação de erros E2E, impedindo assim que o codificador de video 20 corrija os mesmos erros duas vezes. Desta maneira, o codificador de video 20 pode funcionar de maneira mais eficaz comparada com a de sistemas nos quais o codificador de video 20 corrige todos os erros relatados na realimentação de erros E2E.
O sistema 10 inclui opcionalmente um módulo de Adaptação de Taxa RL e um módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60 para adaptar o controle de erros implementado pelo codificador de video 20 à largura de banda disponível do canal 16. No exemplo do sistema codificador 12 mostrado na Figura 2, o módulo de Determinação de Erros TX 54 fornece realimentação ao codificador de vídeo 20 por meio do módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60. Depois que o filtro de erros 50 determina se vai aplicar controle de erros ao erro relatado na realimentação de erros E2E do decodificador de vídeo 42, o módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60 pode instruir o codificador de vídeo 20 a aplicar controle de erros de acordo com uma técnica específica, em que a técnica é adaptada à largura de banda disponível do canal 16.
As condições do canal podem ser uma questão para canais cabeados e sem fio, mas são especialmente problemáticas para aplicações de VT móveis executadas através de um canal sem fio 16, no qual as condições de canal podem ser afetadas devido ao desvanecimento ou congestão. Por exemplo, o canal 16 pode ser caracterizado por um link reverso (RL) que tem uma capacidade de transmissão que varia de acordo com as condições do canal.
A capacidade de transmissão pode ser estimada com base nas condições de canal, representadas por uma ou mais da taxa de transmissão atual do canal sem fio, atividade da estação base sem fio e limitações da potência de transmissão. Por exemplo, as condições do canal podem ser determinadas com base na taxa de dados atual da camada MAC, em um bit de atividade reversa (RAB) e no limite do amplificador de potência (PA).
Como resultado das condições de canal variáveis, o codificador de video 20 pode ajustar sua taxa de codificação de modo a evitar a sobrecarga do canal 16. 0 controle de erros ocupa tipicamente largura de banda adicional ou senão reduz a eficácia da codificação e, portanto, à medida que a largura de banda do canal 16 varia, o módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60 pode limitar os tipos de controle de erros aplicados pelo codificador de video 20. 0 módulo de Adaptação de Taxa RL 58 monitora as condições de RL, e o módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60 ajusta a taxa de codificação do codificador de video 20 e o tipo de controle de erros aplicado pelo codificador de video 20 de acordo com as condições de RL. Por exemplo, quando o largura de banda do canal é limitada, o módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60 pode instruir o codificador de video 20 a aplicar controle de erros por meio da renovação intra-MB em vez da inserção inter-quadro, que exige tipicamente uma largura de banda mais elevada que a do controle de erros por renovação intra-MB. Desta maneira, o módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60 permite que o controle de erros aplicado pelo codificador de video 20 seja adaptativo em largura de banda do canal.
Exemplos de técnicas de adaptação de taxa que podem ser utilizados são descritos no pedido de patente norte-americano No. de Série 11/445 099, intitulado "ADAPTAÇÃO DE TAXA DE VÍDEO A CONDIÇÕES DE LINK REVERSO" e depositado a 31 de maio de 2006 (protocolo de procurador No. 060767). Conforme descrito no pedido de patente acima referido, em uma técnica exemplar para adaptar as taxas de codificação de video implementadas pelo codificador de video 20 de modo a atender às condições de canal RL, a capacidade de transmissão de video é estimada com base no tamanho total da fila RLP de fluxo de video 28 (Figura 1).
Neste caso, a plenitude da fila é utilizada como uma indicação das condições de canal RL. A plenitude da fila é provavelmente causada, pelo menos em parte, pela deterioração das condições de canal, reduzem a taxa à qual os pacotes são retirados da fila RLP 28.
Em outra técnica exemplar, o codificador de video 20 pode utilizar informações da camada MAC 30 e da camada RLP 26 para monitorar as condições de canal RL e ajustar sua taxa de codificação de acordo com as condições de canal. Por exemplo, as condições de canal podem ser determinadas com base na taxa de dados atual da camada MAC, em um bit de atividade reversa (RAB) e no limite do amplificador de potência (PA), que é indicado por um bit do PA dentro da camada MAC 30. 0 limite do PA representa o espaço livre da potência de transmissão e indica quando as condições de canal se deterioram. A limitação do espaço livre de potência é medida em decibéis (dBs) e limita o tamanho de carga útil possível máximo dos pacotes de camada MAC. Quando mais baixo for o valor da limitação do espaço livre de potência, menor é o tamanho de carga útil e, portanto, mais baixa a capacidade de transmissão. A limitação do espaço livre pode indicar a taxa máxima que é permitido utilizar na transmissão, com base na potência de transmissão atual.
A Figura 3 é um diagrama de fluxos que mostra uma operação exemplar do aparelho codificador 12 que utiliza uma técnica para filtrar erros RL da realimentação de erros E2E. Ao gerar um ou mais pacotes com um quadro codificado de dados de video recebido da fonte de video 18 (61), a camada RTP 2 6A atribui um número de seqüência SNef ao último pacote do quadro de video recém-codifiçado (62) e envia o SNef ao módulo de Extração de SN de Erros RL 52. Depois que o quadro de video codificado é convertido em pacotes de camada PHY, o sistema codificador 12 transmite o quadro de video para o sistema decodif icador 14 por meio do componente de AN 15 e do canal Ib (64).
0 codificador de video 20 pode determinar se um erro de transmissão RL ocorreu durante a transmissão dos pacotes do quadro recém-codifiçado para o sistema decodificador 14 (66). Conforme descrito acima, o codificador de video 20 pode utilizar qualquer técnica adequada para identificar erros RL, como, por exemplo, consultar a camada inferior do sistema codificador 12, tal como o módulo RLP 55, de modo a verificar um indicador que indique se um erro ocorreu. Se um erro tiver ocorrido (como, por exemplo, se o indicador dentro da camada inferior estiver configurado), o codificador de video 20 pode aplicar correção de erros ao erro de transmissão RL, utilizando, por exemplo, um quadro de referência diferente para o quadro de video seguinte que é codificado, aplicando a renovação intra-MB ou inserindo um I-quadro para deter a propagação de erros (68). O módulo de Extração de SN de Erros RL 52 pode também determinar se um erro de transmissão ocorreu quando o quadro de video recém-codifiçado foi transmitido para o sistema decodificador 14. Mais uma vez, o módulo de Extração de SN de Erros RL 52 pode também consultar uma camada inferior do sistema codificador 12 de modo a determinar se um erro de transmissão ocorreu. Se um erro de transmissão tiver ocorrido, o módulo de Extração de SN de Erros RL 52 registra o SNef como SNi. Se um erro de transmissão não tiver ocorrido quando o quadro codificado mais recentemente foi transmitido para o sistema decodificador 14, o módulo de Extração de SN de Erros RL 52 mantém um SNi registrado anteriormente, que está associado ao quadro mais recente que tinha um erro de transmissão RL (70).
O módulo de Determinação de Erros TX 54 do filtro de erros 50 pode receber realimentação de erros E2E do sistema decodificador 14, em que a realimentação de erros E2E inclui um número de seqüência SN2 de um pacote perdido ou de um pacote que contém dados perdidos. 0 filtro de erros 50, e especificamente o módulo de Determinação de Erros TX 54, comparam o SNi com o SN2 (72) de modo a determinar se o erro relatado na realimentação de erros E2E é um erro RL que já foi corrigido pelo codificador de video 20. Se o SNi for menor que SN2 (74), o erro relatado na realimentação de erros E2E é um erro FL que ainda não foi corrigido. O módulo de Determinação de Erros RL 54 informa ao codificador de video 20 que o erro relatado na realimentação de erros E2E é um erro FL, e o codificador de video 20 pode então aplicar controle de erros a um quadro que é codificado em seguida (76) de modo a deter a propagação de erros. Ou seja, se o SNi for superior ou igual ao SN2, o codificador de video 20 pode (a) utilizar um quadro de referência diferente para um novo quadro, (b) aumentar a taxa de renovação de intra-macrobloco (MB) ou (c) inserir um intra-quadro (I-quadro) de modo a deter a propagação de erros no sistema decodificador 14.
Se SN2 for superior ou igual ao SNi, o erro relatado na realimentação de erros E2E é um erro RL que já foi corrigido, e o codificador de video 2 não toma qualquer medida para corrigir o erro. Se SN2 for igual a SN1, o quadro que inclui o pacote relatado na RR é o quadro mais recente que tinha um erro RL, que o codificador de video 20 já tinha corrigido, e o codificador de video 20 não toma qualquer medida adicional para corrigir o pacote de video associado ao SN2.
O processo mostrado no diagrama de fluxos da Figura 3 pode ocorrer dentro de qualquer duração de tempo adequada. Em um exemplo, um erro relatado em uma realimentação de erros E2E é corrigido, se necessário, em cerca de 660 milissegundos a partir do momento em que o codificador de video 20 gera o quadro de video (61). Depois do quadro de tempo de 660 milissegundos, o processo pode ser repetido para outro quadro de dados de video. O buffer de SNs dentro do módulo de Extração de SN de Erros RL 52 retém o SNi registrado anteriormente até que o SNi seja sobrescrito com o SN do erro RL mais recente.
A Figura 4 é um diagrama de fluxos que mostra outra operação exemplar do sistema codificador 12 que utiliza outra técnica para filtrar erros RL da realimentação de erros E2E. O processo mostrado na Figura 4 conforma-se substancialmente ao mostrado na Figura 3, mas difere pelo fato de que o filtro de erros 50 identifica o erro RL mais recente que foi corrigido pelo codificador de video 20 pelo número de seqüência SN3 do pacote que contém o erro, e não do último pacote do quadro mais recente de dados de vídeo que inclui o erro. Depois que o codificador de vídeo 20 gera um quadro de vídeo (61) a partir dos dados recebidos da fonte de vídeo 18, o sistema codificador 12 transmite o quadro de vídeo para o sistema decodificador 14 por meio do componente de AN 15 e do canal 16 (64).
Em contraste com o diagrama de fluxos exemplar mostrado na Figura 3, na operação mostrada no diagrama de fluxos da Figura 4, o codificador de vídeo 20 identifica um erro RL por um número de seqüência SN3 do pacote exato que contém dados perdidos (80) e não pelo SNi do último pacote do quadro codificado mais recentemente que incluía um erro. Na operação do sistema codificador 12 mostrado na Figura 4, o codificador de vídeo 20 pode ser configurado para aplicar correção de erros ao pacote identificado pelo número de seqüência SN, em vez de aplicar correção de erros ao quadro de vídeo inteiro, que pode abarcar vários pacotes, como no exemplo mostrado na Figura 3. Entretanto, como alternativa, o codificador de vídeo 20 pode aplicar correção de erros ao quadro de vídeo inteiro, mesmo se o número de seqüência SN3 do pacote exato que contém dados perdidos for identificado e rastreado pelo módulo de Extração de SN de Erros RL 52.
Em um exemplo, o componente de AN 15 envia uma NAK à camada MAC 30 quando um erro de transmissão ocorre, a camada MAC 30 informando o módulo PCP 56 do pacote MAC associado à NAK. Depois que o módulo PCP 56 determina que o pacote MAC incluía dados de vídeo, o módulo PCP 56 informa ao módulo RLP 55 que a fila RLP contém um pacote que experimentou um erro na transmissão com uma NAK de pacote RLP. O módulo RLP 55 determina qual pacote contém os dados perdidos ou qual pacote foi perdido, o que permite que o módulo RLP 55 determine um número de seqüência SN3 do pacote. A implementação de uma técnica que identifica o SN3 de um pacote perdido ou de um pacote que contém um erro pode ser mais complexa que a implementação de uma técnica que identifica o SNi do último pacote de um quadro de video que incluia um erro, isto porque a primeira técnica pode exigir a modificação da camada RTP 26A e do módulo RLP 55.
O módulo de Extração de SN de Erros RL 52 registra o SN3 do pacote exato que contém dados perdidos (82). O restante do diagrama de fluxos mostrado na Figura 4 é semelhante ao mostrado na Figura 3. Em particular, o codificador de video 20 corrige o erro RL utilizando qualquer técnica adequada (68), o filtro de erros 50 recebe realimentação de erros E2E do decodificador de video 42, que indica o SN2 de um pacote que contém dados de video perdidos (72) e compara o SN3 com o SN2 de modo a determinar se o erro relatado na realimentação de erros E2E é um erro RL que foi corrigido pelo codificador de video (74). Se SN3 for superior ou igual a SN2, o pacote que contém um erro identificado pelo SN2 é um erro RL, e o codificador de video 20 não toma nenhuma medida corretiva.
Se SN3 for menor que SN2, o pacote que inclui dados perdidos e que tem o SN2 é o resultado de um erro FL, que não foi corrigido pelo codificador de video 20. O filtro de erros 50 pode então induzir o codificador de video 20 a aplicar correão de erros ao erro relatado na realimentação de erros E2E de modo a prevenir propagação adicional de erros (76). Em particular, o filtro de erros 50 pode induzir o módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60, que então induz o codificador de video. Conforme discutido anteriormente, o módulo de Adaptação de Taxa RL 58 monitora as condições do RL e o módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60 ajusta a taxa de codificação do codificador de video 20 de acordo com as condições do RL. Assim, o módulo de Controle Adaptativo de Erros de Largura de Banda de Canal 60 pode determinar a largura de banda disponível do canal 16 no RL (73) com base na realimentação do módulo de Adaptação de Taxa RL 58 antes de induzir o codificador de vídeo 20 a aplicar controle de erros. Embora não mostrado na Figura 3, o processo mostrado nela pode incluir também determinar a largura de banda disponível do canal 16 no RL antes de induzir o codificador de vídeo 20 a aplicar controle de erros.
As técnicas descritas nesta revelação podem ser implementadas dentro de um microprocessador de uso geral, um processador de sinais digitais (DSP), um circuito integrado específico de aplicativo (ASIC), um arranjo de portas programável no campo (FPGA) ou outros aparelhos lógicos equivalentes. Por exemplo, o aparelho codificador de vídeo 12, o aparelho decodif icador de vídeo 14 e os componentes e módulos afins podem ser implementados como partes de um processo de codificação ou processo de codificação/decodificação (CODEC) , que roda em um DSP ou outro aparelho de processamento. Por conseguinte, os componentes descritos como módulos podem formar aspectos programáveis de tal processo ou um processo separado.
Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação deles. Se implementadas em software, as funções podem ser armazenadas em ou transmitidas através de uma ou mais instruções ou código em um meio passível de leitura por computador. Os meios passíveis de leitura por computador incluem tanto meios de armazenamento em computador quanto meios de comunicação que incluam qualquer meio que facilite a transferência de um programa de computador de um lugar para outro. Um meio de armazenamento pode ser qualquer meio disponível que possa ser acessado por um computador de uso geral ou para fins especiais. A titulo de exemplo, e não de limitação, tal meio passível de leitura por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou qualquer outro armazenamento em disco óptico, armazenamento em disco magnético ou outros aparelhos de armazenamento magnético ou qualquer outro meio que possa ser utilizado para portar ou armazenar dispositivos de código de programa desejados sob a forma de instruções ou estruturas de dados e que possa ser acessado por um computador de uso geral ou para fins especiais. Além disto, qualquer conexão é apropriadamente denominada de meio passível de leitura por computador. Por exemplo, se o software for transmitido de um website, servidor ou outra fonte remota utilizando-se um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio tais como infravermelho, rádio e microonda, então o cabo coaxial, o cabo de fibra óptica, o par trançado, a DSL ou tecnologias sem fio tais como infravermelho, rádio e microonda são incluídos na definição de meio. O termo disco (disk e disc no original), conforme aqui utilizado, inclui disco compacto (CD) , disco de laser, disco óptico, disco versátil digital (DVD), disco flexível e disco blu-ray, em que usualmente discos (disks) reproduzem dados magneticamente, enquanto discos (discs) reproduzem dados opticamente com lasers. Combinações deles devem ser também incluídas dentro do alcance dos meios passíveis de leitura por computador. Conforme aqui utilizado, um meio inclui qualquer meio que facilite a transferência de um programa de computador de um lugar para outro.
Foram descritos diversos exemplos da revelação. Estes e outros exemplos estão dentro do alcance das reivindicações seguintes.

Claims (33)

1. Método que compreende: receber uma indicação de um erro de dados de vídeo detectado por um decodificador de vídeo; determinar se o erro de dados de vídeo ocorreu no link reverso de uma rede sem fio entre um codificador de vídeo e um aparelho de rede; e aplicar controle de erros em resposta à indicação do erro de dados de vídeo se o erro de dados de vídeo não tiver ocorrido no link reverso e não aplicar controle de erros em resposta ao erro de dados de vídeo se o erro de dados de vídeo tiver ocorrido no link reverso.
2. Método, de acordo com a reivindicação 1, no qual, se o erro de dados de vídeo tiver ocorrido no link reverso da rede sem fio, o método compreende também armazenar informações referentes ao erro de dados de vídeo antes de receber a indicação do erro de dados de vídeo do decodif icador de vídeo e no qual determinar se o erro de dados de vídeo ocorreu no link reverso é baseado nas informações armazenadas.
3. Método, de acordo com a reivindicação 2, que compreende também aplicar controle de erros em resposta ao erro de dados de vídeo antes de receber a indicação do erro de dados de vídeo do decodificador de vídeo.
4. Método, de acordo com a reivindicação 1, no qual o erro de dados de vídeo é um primeiro erro de dados de vídeo, e o método compreende também armazenar informações referentes a um segundo erro de dados de vídeo que ocorreu no link reverso da rede sem fio antes de receber a indicação do erro de dados de vídeo do decodificador de vídeo, e no qual determinar se o primeiro erro de dados de vídeo ocorreu no link reverso é baseado nas informações armazenadas.
5. Método, de acordo com a reivindicação 4, que compreende também aplicar controle de erros em resposta ao segundo erro de dados de video.
6. Método, de acordo com a reivindicação 4, no qual a indicação do primeiro erro de dados de video inclui um primeiro número de seqüência de um primeiro pacote associado ao primeiro erro de dados de video, e as informações compreendem um segundo número de seqüência de um segundo pacote associado ao segundo erro de dados de video, e determinar se o primeiro erro de dados de video ocorreu no link reverso compreende comparar os primeiro e segundo números de seqüência.
7. Método, de acordo com a reivindicação 6, no qual o primeiro pacote compreende o primeiro erro de dados de video.
8. Método, de acordo com a reivindicação 6, no qual o segundo pacote é o último pacote de um quadro codificado de dados de video, em que o segundo erro de dados de video ocorreu dentro do quadro codificado.
9. Método, de acordo com a reivindicação 6, no qual o segundo pacote compreende o segundo erro de dados de video.
10. Método, de acordo com a reivindicação 4, no qual armazenar as informações referentes ao segundo erro de dados de video compreende: atribuir um número de seqüência ao último pacote de um quadro codificado de dados de vídeo; transmitir o quadro codificado através da rede sem fio; determinar se a transmissão do quadro codificado através do link reverso da rede sem fio resultou no segundo erro de dados de vídeo; e armazenar o número de seqüência se a transmissão do quadro codificado através do link reverso da rede sem fio resultou no segundo erro de dados de video.
11. Método, de acordo com a reivindicação 10, no qual determinar se a transmissão do quadro codificado resultou no segundo erro de dados de vídeo compreende verificar se um indicador é configurado em um módulo de protocolo de rádio-link.
12. Método, de acordo com a reivindicação 1, no qual aplicar controle de erros em resposta ao erro de dados de vídeo se o erro de dados de vídeo não tiver ocorrido no link reverso compreende selecionar uma técnica de controle de erros com base na largura de banda disponível da rede sem fio.
13. Método, de acordo com a reivindicação 1, que compreende também: codificar um quadro de dados de video de modo a gerar um quadro codificado; gerar um pacote com pelo menos uma parte do quadro codificado; e transmitir o pacote através da rede sem fio para o decodificador de vídeo, em que o erro de dados de vídeo ocorreu dentro do quadro codificado.
14. Método, de acordo com a reivindicação 13, no qual, antes de codificar um quadro subseqüente de dados de vídeo, o método compreende determinar se a transmissão do pacote através do link reverso da rede sem fio resultou no erro de dados de vídeo.
15. Método, de acordo com a reivindicação 14, no qual determinar se a transmissão do pacote através do link reverso da rede sem fio resultou no erro de dados de vídeo compreende: determinar se uma camada de controle de acesso a meio (MAC) recebeu uma confirmação negativa (NAK) da rede sem fio; e determinar se a NAK recebida está associada ao pacote.
16. Método, de acordo com a reivindicação 15, no qual determinar se a camada MAC recebeu a NAK da rede sem fio compreende verificar se um indicador é configurado em um módulo de protocolo de rádio-link (RLP).
17. Método, de acordo com a reivindicação 1, no qual o controle de erros compreende pelo menos um de codificar um quadro de dados de video como um intra-quadro, aumentar a porcentagem de macroblocos intra-codifiçados ou utilizar um primeiro quadro codificado de dados de video que foi codificado antes de um segundo quadro de dados de video, que compreende o erro de dados de video como uma referência para estimação de movimento.
18. Sistema que compreende: um transceptor para receber uma indicação de um erro de dados de video detectado por um decodificador de vídeo; um codificador de vídeo; e um filtro de erros para determinar se o erro de dados de vídeo ocorreu no link reverso de uma rede sem fio entre um codificador de vídeo e um aparelho de rede, em que o codificador de vídeo é configurado para aplicar controle de erros em resposta à indicação do erro de dados de vídeo se o erro de dados de vídeo não tiver ocorrido no link reverso.
19. Sistema, de acordo com a reivindicação 18, no qual, se o erro de dados de vídeo tiver ocorrido no link reverso da rede sem fio, o filtro de erros armazena informações referentes ao erro de dados de vídeo antes de receber a indicação do erro de dados de vídeo do decodificador de vídeo.
20. Sistema, de acordo com a reivindicação 19, no qual o codificador de vídeo é configurado para codificar um quadro de dados de vídeo e o sistema compreende também um módulo para gerar um pacote com pelo menos uma parte do quadro codificado, o transceptor sendo configurado para transmitir o pacote através de uma rede sem fio para o decodificador de vídeo e as informações compreendem um número de seqüência do último pacote do quadro codificado.
21. Sistema, de acordo com a reivindicação 18, no qual o erro de dados de vídeo é um primeiro erro de dados de vídeo, e o filtro de erros é configurado para armazenar informações referentes a um segundo erro de dados de vídeo que ocorreu no link reverso da rede sem fio e determinar se o primeiro erro de dados de vídeo ocorreu no link reverso com base nas informações armazenadas.
22. Sistema, de acordo com a reivindicação 18, no qual o codificador de vídeo é configurado para codificar um quadro de dados de vídeo e o sistema compreende também um módulo para gerar um pacote com pelo menos uma parte do quadro codificado, o transceptor sendo configurado para transmitir o pacote através de uma rede sem fio para o decodificador de vídeo e as informações compreendendo um número de seqüência do último pacote do quadro codificado se a transmissão do quadro de vídeo codificação através da rede sem fio resultou no segundo erro de dados de vídeo.
23. Sistema, de acordo com a reivindicação 22, o sistema compreendendo também um módulo de protocolo de rádio-link (RLP) e uma camada de controle de acesso a meio (MAC), em que o módulo RLP é configurado para determinar se a camada MAC recebeu uma confirmação negativa (NAK) do aparelho de rede e determinar se a NAK está associada ao pacote de modo a determinar se o segundo erro de dados de video ocorreu quando o pacote era transmitido através da rede sem fio.
24. Sistema, de acordo com a reivindicação 18, no qual o pacote é um primeiro pacote e a indicação do erro de dados de video compreende um número de seqüência de um segundo pacote que inclui dados perdidos.
25. Sistema, de acordo com a reivindicação 24, no qual o erro de dados de video é um primeiro erro de dados de video e o número de seqüência é um primeiro número de seqüência, o filtro de erros compreendendo: um primeiro módulo para receber o primeiro número de seqüência do transceptor; e um segundo módulo para receber um segundo número de seqüência que identifica o último pacote de um quadro codificado mais recentemente de dados de video que compreende um segundo erro de dados de video que ocorreu no link reverso, em que o filtro de erros é configurado para comparar os primeiro e segundo números de seqüência de modo a determinar se o primeiro erro de dados de video ocorreu no link reverso.
26. Sistema, de acordo com a reivindicação 25, o sistema compreendendo também uma camada de protocolo de transporte em tempo real (RTP) para atribuir o segundo número de seqüência ao último pacote e fornecer o segundo número de seqüência ao segundo módulo, em que o segundo . módulo determina se o segundo erro de dados de video ocorreu verificando se um indicador é configurado em um módulo de protocolo de rádio-link.
27. Sistema, de acordo com a reivindicação 24, no qual o codificador de video é configurado um quadro de dados de video e o sistema compreende também um módulo para gerar um pacote com pelo menos uma parte do quadro codificado, o transceptor sendo configurado para transmitir o pacote através de uma rede sem fio para o decodificador de video, em que o erro de dados de video é um primeiro erro de dados de video e o número de seqüência é um primeiro número de seqüência, e o filtro de erros compreende: um primeiro módulo para receber o primeiro número de seqüência do transceptor; e um segundo módulo para receber um segundo número de seqüência que identifica o pacote do quadro de dados de video se a transmissão do pacote através do link reverso da rede sem fio resultou em um segundo erro de dados de video, em que o filtro de erros é configurado para comparar os primeiro e segundo números de seqüência de modo a determinar se o primeiro erro de dados de video ocorreu no link reverso.
28. Sistema, de acordo com a reivindicação 24, no qual o erro de dados de video é um primeiro erro de dados de video, o pacote é um primeiro pacote e o número de seqüência é um primeiro número de seqüência, o filtro de erros compreendendo: um primeiro módulo para receber o primeiro número de seqüência do transceptor; e um segundo módulo para receber um segundo número de seqüência que identifica um segundo pacote que compreende que compreende um segundo erro de dados de video que ocorreu no link reverso, em que o filtro de erros é configurado para comparar os primeiro e segundo números de seqüência de modo a determinar se o primeiro erro de dados de video ocorreu no link reverso.
29. Sistema, de acordo com a reivindicação 18, que compreende também: um primeiro módulo para monitorar a condição da rede sem fio; e um segundo módulo para selecionar uma técnica de controle de erros aplicada pelo codificador de video com base na condição da rede sem fio.
30. Sistema, de acordo com a reivindicação 18, no qual o controle de erros compreende pelo menos um de codificar um quadro de dados de video como um intra-quadro, aumentar a porcentagem de macroblocos intra-codifiçados ou utilizar um primeiro quadro codificado de dados de video que foi codificado antes de um segundo quadro de dados de video, que compreende o erro de dados de video como uma referência para estimação de movimento.
31. Produto de programa de computador que compreende: um meio passível de leitura por computador que compreende: instruções para fazer com que um computador receba uma indicação de um erro de dados de vídeo detectado por um decodificador de vídeo; instruções para fazer com que um computador determine se o erro de dados de vídeo ocorreu no link reverso de uma rede sem fio entre um codificador de vídeo e um aparelho de rede; e instruções para fazer com que um computador aplique controle de erros em resposta à indicação do erro de dados de vídeo se o erro de dados de vídeo não tiver ocorrido no link reverso e não aplique controle de erros em resposta ao erro de dados de vídeo se o erro de dados de vídeo tiver ocorrido no link reverso.
32. Produto de programa de computador, de acordo com a reivindicação 31, o meio passível de leitura por computador compreendendo também instruções para fazer com que um computador monitore a condição da rede sem fio e selecione o controle de erros com base na condição da rede sem fio.
33. Sistema que compreende: um dispositivo para receber uma indicação de um erro de dados de vídeo detectado por um decodificador de vídeo; um dispositivo para determinar se o erro de dados de vídeo ocorreu no link reverso de uma rede sem fio entre um codificador de vídeo e um aparelho de rede; e um dispositivo para aplicar controle de erros em resposta à indicação do erro de dados de vídeo se o erro de dados de vídeo não tiver ocorrido no link reverso e não aplicar controle de erros em resposta ao erro de dados de vídeo se o erro de dados de vídeo tiver ocorrido no link reverso.
BRPI0806823-2A 2007-01-22 2008-01-22 filtro de erros para diferenciar entre erros de dados de vìdeo de link reverso e link direto BRPI0806823A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/625,787 US8767839B2 (en) 2007-01-22 2007-01-22 Error filter to differentiate between reverse link and forward link video data errors
US11/625,787 2007-01-22
PCT/US2008/051720 WO2008091903A2 (en) 2007-01-22 2008-01-22 Error filter to differentiate between reverse link and forward link video data errors

Publications (1)

Publication Number Publication Date
BRPI0806823A2 true BRPI0806823A2 (pt) 2011-09-13

Family

ID=39591573

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0806823-2A BRPI0806823A2 (pt) 2007-01-22 2008-01-22 filtro de erros para diferenciar entre erros de dados de vìdeo de link reverso e link direto

Country Status (10)

Country Link
US (1) US8767839B2 (pt)
EP (1) EP2127375B1 (pt)
JP (1) JP5021765B2 (pt)
KR (1) KR101055998B1 (pt)
CN (1) CN101589616B (pt)
BR (1) BRPI0806823A2 (pt)
CA (1) CA2674641C (pt)
RU (1) RU2409007C1 (pt)
TW (1) TWI364988B (pt)
WO (1) WO2008091903A2 (pt)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8358705B2 (en) * 2007-07-05 2013-01-22 Coherent Logix, Incorporated Transmission of multimedia streams to mobile devices with uncoded transport tunneling
JP5178311B2 (ja) * 2008-05-12 2013-04-10 キヤノン株式会社 送信装置、送信装置の制御方法、及びプログラム
US8274913B2 (en) * 2008-08-08 2012-09-25 Trimble Navigation Limited Method and system for configuring wireless communication of survey sensors and controllers
CN102655604B (zh) * 2011-03-03 2016-06-22 华为技术有限公司 视频处理方法和设备
US9025672B2 (en) * 2011-05-04 2015-05-05 Cavium, Inc. On-demand intra-refresh for end-to end coded video transmission systems
JP6066561B2 (ja) * 2012-01-26 2017-01-25 キヤノン株式会社 映像処理装置、映像処理方法およびプログラム
US11088788B2 (en) * 2013-03-29 2021-08-10 Vid Scale, Inc. Early packet loss detection and feedback
CN104202614B (zh) 2014-08-15 2016-03-09 小米科技有限责任公司 一种基于网络环境调整视频画质的方法及装置
BR112017009700A2 (pt) * 2014-11-19 2018-01-02 Lantiq Beteiligungs Gmbh & Co Kg detecção de perda de conexão
WO2016086221A2 (en) * 2014-11-28 2016-06-02 Abhijit Rao System for information display
CN110634174B (zh) * 2018-06-05 2023-10-10 深圳市优必选科技有限公司 一种表情动画过渡方法、系统及智能终端
US11039149B2 (en) * 2019-08-01 2021-06-15 Qualcomm Incorporated Dynamic video insertion based on feedback information
DE102021205330A1 (de) * 2021-05-26 2022-12-01 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Betrieb zur Bestimmung von Navigationsdaten, Navigationsmodul, Computerprogrammprodukt, maschinenlesbares Speichermedium

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1633521A1 (ru) 1988-11-21 1991-03-07 Грузинский политехнический институт Устройство передачи приема телевизионного сигнала с помощью дифференциальной импульсно-кодовой модул ции
RU2019044C1 (ru) 1991-03-18 1994-08-30 Центральный Научно-Исследовательский Институт Связи Устройство для передачи и приема дискретной информации с селективным запросом ошибок
JP3351653B2 (ja) * 1995-03-30 2002-12-03 株式会社東芝 無線通信システムの再送制御方式および端末装置
US5864547A (en) * 1996-08-21 1999-01-26 Hughes Electronics Corporation Method and system for controlling uplink power in a high data rate satellite communication system employing on-board demodulation and remodulation
KR100288375B1 (ko) * 1998-05-25 2001-06-01 윤종용 역방향링크와독립적인순방향링크의전력제어방법
US6389034B1 (en) * 1998-09-04 2002-05-14 Nortel Networks Limited System for providing stream based and packet based services
US6629318B1 (en) * 1998-11-18 2003-09-30 Koninklijke Philips Electronics N.V. Decoder buffer for streaming video receiver and method of operation
JP2001186521A (ja) * 1999-12-22 2001-07-06 Nec Corp 画像復号化装置及び方法
EP1130921B1 (en) * 2000-03-02 2005-01-12 Matsushita Electric Industrial Co., Ltd. Data transmission in non-reliable networks
KR100667738B1 (ko) * 2000-03-29 2007-01-11 삼성전자주식회사 무선 패킷 송수신 장치 및 그 방법
US7095729B2 (en) 2000-12-22 2006-08-22 Intel Corporation Method for multimedia communication over packet channels
US7257163B2 (en) * 2001-09-12 2007-08-14 Silicon Image, Inc. Method and system for reducing inter-symbol interference effects in transmission over a serial link with mapping of each word in a cluster of received words to a single transmitted word
JP4116470B2 (ja) * 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
US7110783B2 (en) * 2002-04-17 2006-09-19 Microsoft Corporation Power efficient channel scheduling in a wireless network
TWI262659B (en) * 2002-05-10 2006-09-21 Interdigital Tech Corp Method and apparatus for reducing uplink and downlink transmission errors in a third generation cellular system
JP2004147183A (ja) 2002-10-25 2004-05-20 Mitsubishi Electric Corp 誤り制御方法、通信装置および通信システム
US20040252761A1 (en) 2003-06-16 2004-12-16 Dilithium Networks Pty Limited (An Australian Corporation) Method and apparatus for handling video communication errors
JP4335090B2 (ja) * 2004-05-14 2009-09-30 シャープ株式会社 移動端末装置
JP4013921B2 (ja) 2004-06-07 2007-11-28 株式会社デンソー 画像信号の復号化装置
US20060127100A1 (en) * 2004-12-10 2006-06-15 Frankel Michael Y Simplified signal regenerator structure
US7751478B2 (en) * 2005-01-21 2010-07-06 Seiko Epson Corporation Prediction intra-mode selection in an encoder
US20060188025A1 (en) 2005-02-18 2006-08-24 Nokia Corporation Error concealment
KR100763184B1 (ko) * 2005-07-07 2007-10-05 삼성전자주식회사 무선 네트워크의 전송 상황과 비디오 정보의 중요도에 따라인코딩 및 전송을 제어하여 송수신하는 방법 및 장치
US7774014B2 (en) * 2005-08-26 2010-08-10 Alcatel-Lucent Usa Inc. Reducing call drops in spread spectrum wireless communication systems
US7515927B2 (en) * 2006-01-13 2009-04-07 Alcatel-Lucent Usa Inc. Method of reverse link dynamic power control in a wireless communication system using per-flow quality feedback for multi-flow data traffic

Also Published As

Publication number Publication date
WO2008091903A3 (en) 2008-10-09
TWI364988B (en) 2012-05-21
US8767839B2 (en) 2014-07-01
KR20090089901A (ko) 2009-08-24
CA2674641A1 (en) 2008-07-31
JP5021765B2 (ja) 2012-09-12
EP2127375A2 (en) 2009-12-02
CN101589616B (zh) 2011-07-06
WO2008091903A2 (en) 2008-07-31
JP2010519789A (ja) 2010-06-03
CN101589616A (zh) 2009-11-25
CA2674641C (en) 2014-04-22
TW200845753A (en) 2008-11-16
EP2127375B1 (en) 2018-07-04
RU2409007C1 (ru) 2011-01-10
KR101055998B1 (ko) 2011-08-11
US20080176517A1 (en) 2008-07-24

Similar Documents

Publication Publication Date Title
KR101055998B1 (ko) 역방향 링크 비디오 데이터 에러와 순방향 링크 비디오 데이터 에러를 구별하기 위한 에러 필터
US8341684B2 (en) Method and device for transmitting data
RU2390966C2 (ru) Коррекция ошибок видео, основанная на информации обратной линии связи
CN103828324B (zh) 用于自适应比特率管理的方法、设备和系统
EP3335341B1 (en) Sender side video telephony downgrade method
AU2015296540B2 (en) Receiver driven up-switching in video telephony
CA2626794C (en) Video error control based on reverse link information
BRPI0711790A2 (pt) adaptaÇço de taxa de vÍdeo para condiÇÕes de link reverso
US20090103635A1 (en) System and method of unequal error protection with hybrid arq/fec for video streaming over wireless local area networks
CN115484505A (zh) 视频传输方法、装置、设备、系统以及计算机存储介质
US10687067B2 (en) Transmitter, transmission method, and communication system
Zhao Design and implementation of video surveillance system based on CDMA cellular wireless networks
CN101326829A (zh) 基于反向链路信息的视频差错控制
Sinky Dynamic Methods to Improve Streaming of H. 264 HD Video Over 802.11 Wireless Networks

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Ipc: H04N 21/61 (2011.01), H04N 19/107 (2014.01), H04N

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 12A ANUIDADE.

B11B Dismissal acc. art. 36, par 1 of ipl - no reply within 90 days to fullfil the necessary requirements