BRPI0212000B1 - "system and method for processing video data" - Google Patents

"system and method for processing video data" Download PDF

Info

Publication number
BRPI0212000B1
BRPI0212000B1 BRPI0212000-3A BRPI0212000A BRPI0212000B1 BR PI0212000 B1 BRPI0212000 B1 BR PI0212000B1 BR PI0212000 A BRPI0212000 A BR PI0212000A BR PI0212000 B1 BRPI0212000 B1 BR PI0212000B1
Authority
BR
Brazil
Prior art keywords
macroblock
encoded
data
macroblocks
video
Prior art date
Application number
BRPI0212000-3A
Other languages
English (en)
Inventor
Horowitz Michael
Flott Rick
Original Assignee
Polycom, 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 Polycom, Inc. filed Critical Polycom, Inc.
Publication of BRPI0212000B1 publication Critical patent/BRPI0212000B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/172Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/66Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Radio Transmission System (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

"sistema e método para ocultação de erro de vídeo". a presente invenção fornece, em uma modalidade, um sistema e método para a ocultação dos erros de vídeo. o sistema codifica, reordena e empacota a informação de vídeo em pacotes de dados de vídeo para a transmissão através de uma rede de comunicação de forma que o sistema oculte os erros causados pela perda dos pacotes de dados de vídeo quando o sistema recebe, desempacota, ordena (915) e decodifica os pacotes de dados. em uma modalidade, o sistema e método codificam e empacotam a informação de vídeo, de forma que os macroblocos adjacentes não sejam colocados nos mesmos pacotes de dados de video (925). adicionalmente, o sistema e método podem fornecer informação anexa aos pacotes de dados de vídeo para facilitar o processo de decodificação. uma vantagem de tal esquema é que os erros decorrentes do pacote de dados de vídeo perdido são espacialmente distribuídos através de um quadro de vídeo. dessa forma, se regiões dos dados que cercam um macrobloco perdido forem decodificadas com sucesso, o decodificador pode prever os vetores de movimento e o conteúdo espacial com um maior grau de precisão, o que leva a uma maior qualidade de vídeo.

Description

"SISTEMA E MÉTODO PARA PROCESSAMENTO DE DADOS DE VÍDEO" Referência Cruzada a Pedido Relacionado Esse pedido reivindica os benefícios do pedido de patente provisório No. 60/314.413, depositado em 23 de agosto de 2001, intitulado "System and Method for Video Error Concealment", que é incorporado aqui por referência.
Fundamentos da Invenção Campo da Invenção Essa presente invenção refere-se geralmente à comunicação de video, e mais particularmente à ocultação de erro de vídeo.
Descrição da Técnica Relacionada Imagens de vídeo têm se tornado uma parte cada vez mais importante da comunicação global. Em particular, a conferência em video e a telefonia de vídeo possuem uma ampla faixa de aplicações tais como conferência com base em área de trabalho ou ambiente de trabalho, vídeo através da Internet e através de linhas telefônicas, vigilância e monitoramento, medicamentos por telefone, e treinamento e educação por computador. Em cada uma dessas aplicações, a informação de vídeo e de áudio anexa é transmitida através de conexões de telecomunicações, incluindo linhas telefônicas, ISDN, DSL e freqüências de rádio.
Um formato de vídeo padrão utilizado na conferência de vídeo é o Formato Intermediário Comum (CIF), que é parte do padrão de vídeo conferência da União Internacional de Telecomunicações (ITU). O formato CIF primário também é conhecido como CIF Total ou FCIF. Formatos adicionais com ções superiores e inferiores ao FCIF também foram estabelecidos. A figura 1 é uma tabela das exigências de resolução e taxa de bit para vários formatos de vídeo sob a consideração de que 12 bits são necessários para se representar um pixel, de acordo com a técnica anterior. As taxas de bit (em mega-bits por segundo, Mbps) ilustradas são para quadros de cor não comprimidos.
Atualmente, a transmissão e recepção eficientes dos sinais de vídeo podem exigir codificação e compressão de dados de vídeo e de dados de áudio anexos. A codificação por compressão de vídeo é um método de codificação de dados de vídeo digital de forma que exija menos memória para armazenar os dados de vídeo e reduz a largura de banda de transmissão exigida. Determinados esquemas de compres-são/descompressão (CODEC) são freqüentemente utilizados para comprimir quadros de vídeo para reduzir as taxas de bit de transmissão exigidas. Dessa forma, o hardware e software de CODEC permitem que os dados de vídeo digital sejam comprimidos em um formato binário menor do que o exigido pelo formato de vídeo digital original (isso é, não comprimido). Várias abordagens e padrões convencionais para a codificação e compressão de sinais de vídeo de fonte existem. Alguns padrões são projetados para uma aplicação em particular tal como JPEG (Grupo de Trabalho de Especialistas em Fotografia) para imagens estáticas, e H.261, H.263, MPEG (Grupos de Especialistas em Imagens em Movimento), MPEG-2 e MPEG-4 para imagens em movimento. Esses padrões de codificação, tipicamente, utilizam a predição por compensação de mo- vimento baseada em bloco 16x16 pixels, comumente referidos como macroblocos. Um macrobloco é uma unidade de informação contendo quatro blocos 8x8 de dados de luminância e dois blocos 8x8 correspondentes de dados de crominância de acordo com uma estrutura de amostragem de 4:2:0, onde os dados de crominância são sub-amostrados em 2:1 em ambas as direções vertical e horizontal.
De forma prática, os dados de áudio também devem ser comprimidos, transmitidos e sincronizados juntamente com os dados de vídeo. A sincronização, multiplexação e assuntos de protocolo são cobertos pelos padrões tais como H.320 (videoconferência com base em ISDN), H.324 (telefonia por vídeo com base em POTS), e H.323 (videoconferência com base em LAN ou IP) . H.263 (ou seu antecessor, H.261) fornece a parte de codificação de vídeo desses grupos padrão.
Um esquema de estimativa e compensação de movimento é um método convencional tipicamente utilizado para a redução das exigências de largura de banda de transmissão para um sinal de vídeo. Visto que o macrobloco é a unidade de dados básica, o esquema de estimativa e compensação de movimento pode comparar um determinado macrobloco em um quadro de vídeo atual com o macrobloco fornecido que cerca a área em um quadro de vídeo previamente transmitido, e tentar encontrar uma combinação de dados próxima. Tipicamente, um macrobloco combinado no quadro de vídeo transmitido previamente é espacialmente desviado do macrobloco fornecido por menos de uma largura do determinado macrobloco. Se uma combinação de dados próxima for encontrada, o esquema subtrai o macrobloco determinado no quadro de vídeo atual do macroblo-co desviado de combinação mais próxima no quadro de vídeo transmitido anteriormente de forma que apenas uma diferença (isso é, residual) e o desvio espacial precisem ser codificados e transmitidos. 0 desvio espacial é comumente referido como um vetor de movimento. Se o processo de estimativa e compensação de movimento for eficiente, o macrobloco residual restante deve conter apenas uma quantidade de informação necessária para descrever os dados associados com os pixels que mudam do quadro de vídeo anterior para o quadro de vídeo atual e um vetor de movimento. Dessa forma, as áreas de um quadro de vídeo que não mudam (por exemplo, o fundo) não são codificadas e transmitidas.
Convencionalmente, o padrão H.263 especifica que os vetores de movimento utilizados para a estimativa de movimento e compensação de movimento sejam codificados de forma diferente. Apesar da codificação diferencial reduzir as quantidades de dados necessários para a transmissão, qualquer erro no qual os dados de vetor de movimento sejam perdidos ou corrompidos para um macrobloco causa um impacto negativo nos macroblocos adjacentes. O resultado é uma propagação do erro devido a dados corrompidos que leva a uma qualidade de vídeo inferior.
Quando da preparação da informação de quadros de vídeo para transmissão através de uma rede de comunicação comutada por pacote, os esquemas de codificação transformam a informação de quadro de vídeo, comprimida pelas técnicas de estimativa e compensação de movimento, em pacotes de da- dos para transmissão através de uma rede de comunicação. Apesar dos pacotes de dados permitirem uma maior eficiência de transmissão, pacotes de dados perdidos, corrompidos, ou com atraso também podem introduzir erros resultando na degradação da qualidade de vídeo. Alternativamente, os dados de vídeo podem ser transmitidos em redes de comunicações heterogêneas nas quais um dos pontos finais é associado com uma rede comutada por circuito, e uma porta ou outro dispositivo de ponte entre a rede comutada por pacote e a comutada por circuito é utilizado.
Atualmente, os pacotes de dados perdidos ou corrompidos freqüentemente causam uma qualidade de vídeo reduzida. Portanto, existe a necessidade de se criar um sistema e método que organize e transmita pacotes de dados a fim de ocultar os erros causados pela perda de pacote de dados.
Sumário da Invenção 0 presente sistema e método superam ou substancialmente aliviam os problemas anteriores associados com a perda de pacotes de dados de vídeo. Em geral, a presente invenção fornece um sistema e método que codificam, reordenam, e empacotam a informação de vídeo para transmissão através de uma rede comutada por pacotes com uma capacidade de ocul-tação de erro de vídeo causada pela perda de pacote de dados de vídeo.
Em uma modalidade ilustrativa, os sinais de vídeo são codificados em conjuntos de macroblocos. Uma máquina de reordenação de macrobloco então designa rótulos inteiros chamados identificadores de grupo de macrobloco (MBGID) para cada macrobloco. Vantajosamente, os macroblocos adjacentes não recebem MBGIDs idênticos em uma modalidade ilustrativa. Uma máquina de empacotamento de macroblocos então permite o empacotamento dos macroblocos, de forma que os macroblocos com MBGIDs idênticos sejam empacotados juntos. Para modalidades da invenção nas quais os macroblocos adjacentes não recebem MBGIDs idênticos, o que ocorre é que macroblocos espacialmente adjacentes não são empacotados juntos. Adicionalmente, dados correspondentes, tais como um mapa intra macroblocos, podem ser incorporados em um cabeçalho de imagem ou transportados por algum outro mecanismo para facilitar um processo de decodificação correspondente.
Em outra modalidade da presente invenção, quando uma máquina de processamento de imagem recebe pacotes de dados contendo macroblocos codificados, os pacotes de dados são desempacotados, e os macroblocos codificados são ordenados e decodificados. Em uma modalidade alternativa, a máquina de processamento de imagem desempacota os pacotes de dados recebidos, então decodifica os macroblocos em uma ordem na qual foram recebidos para reduzir o retardo de processamento. Se um ou mais pacotes de dados forem perdidos, os dados que acompanham os macroblocos dos pacotes de dados transmitidos com sucesso são utilizados para atenuar os efeitos dos pacotes de dados perdidos. Vários métodos baseados no fato de os macroblocos perdidos terem sido intra-codificados ou inter-codifiçados compensam os macroblocos que faltam. Mediante compensação, o sinal de vídeo pode então ser exibido. Como resultado disso, o presente sistema e método é capaz de ocultar os erros de vídeo resultantes do pacote de dados perdido.
Breve Descrição dos Desenhos A Figura 1 é uma tabela de exigências de resolução e taxa de bit para vários formatos de vídeo, de acordo com a técnica anterior; A Figura 2 é um diagrama de blocos de um sistema de videoconferência ilustrativo, de acordo com a presente invenção; A Figura 3 é um diagrama de blocos de uma estação de videoconferência ilustrativa do sistema de videoconferência da figura 2; A Figura 4 é um diagrama de blocos de uma modalidade ilustrativa da máquina de processamento de imagem da figura 3; A Figura 5 é um diagrama ilustrativo de um padrão de reordenação de macrobloco para um quadro de vídeo formatado por QCIF, onde cada número é um MBGID designado para um macrobloco em um local espacial correspondente ,- A Figura 6 é um diagrama ilustrativo do padrão de reordenação de macrobloco de quadro QCIF da figura 5, onde um pacote de dados contendo dados de macrobloco codificados para os macroblocos com MBGID = 5 foi perdido; A Figura 7 é um diagrama de blocos de um esquema de interpolação bidimensional utilizando dados associados com pixels localizados em macroblocos adjacentes, de acordo com uma modalidade da presente invenção; A Figura 8 é um diagrama de blocos ilustrativo de macroblocos adjacentes utilizados para estimar o vetor de movimento do macrobloco perdido m, de acordo com a presente invenção; A Figura 9 é um fluxograma ilustrativo das etapas do método para o processamento de dados de vídeo, de acordo com uma modalidade da presente invenção; e A Figura 10 é um fluxograma ilustrativo das etapas do método para a ocultação de erro de vídeo quando do recebimento de dados de vídeo, de acordo com a presente invenção.
Descricão Detalhada dos Desenhos A presente invenção oculta os erros nos sinais de vídeo causados pela perda do pacote de dados. O presente sistema e método se distancia das tecnologias existentes pelo empacotamento de macroblocos em uma ordem flexível (por exemplo, não-varredura por rastreio) em um quadro de vídeo. Em contraste com os padrões de codificação de vídeo existentes, os macroblocos são empacotados em uma ordem especificada por um padrão de reordenação de macrobloco. Adicionalmente, os vetores de movimento para cada macrobloco podem ser codificados de forma não diferencial. Esses aperfeiçoamentos buscam atenuar os distúrbios causados pela perda de pacote de dados através de uma conexão de comunicação. 0 escopo da presente invenção cobre uma variedade de padrões de vídeo, incluindo, mas não limitado a, H.261, H.263, H.264, MPEG, MPEG-2 e MPEG-4. A Figura 2 ilustra um sistema de videoconferência ilustrativo 200. O sistema de videoconferência 200 inclui uma estação de videoconferência local 202 e uma estação de videoconferência remota 204 conectadas através de uma rede 206. Apesar da figura 2 ilustrar apenas duas estações de videoconferência 202 e 204, os versados na técnica reconhecerão que mais estações de videoconferência podem ser acopladas ao sistema de videoconferência 200. Deve-se notar que o presente sistema e método pode ser utilizado em qualquer sistema de comunicação onde os dados de vídeo são transmitidos através de uma rede. A rede pode possuir qualquer tipo de meio de transmissão eletrônica, tal como, porém não limitado a, POTS, cabo, fibra ótica, e meios de transmissão por rádio. A Figura 3 é um diagrama de blocos de uma estação de videoconferência ilustrativa 300. Para fins de simplicidade, a estação de videoconferência 300 será descrita como a estação de videoconferência local 202 (figura 2), apesar da estação de videoconferência remota 204 (figura 2) poder conter uma configuração similar. Em uma modalidade, a estação de videoconferência 300 inclui um dispositivo de exibição 302, uma CPU 304, uma memória 306, pelo menos um dispositivo de captura de vídeo 308, uma máquina de processamento de imagem 310 e uma interface de comunicação 312. Alternativamente, outros dispositivos podem ser fornecidos na estação de videoconferência 300, ou nem todos os dispositivos supra citados fornecidos. 0 pelo menos um dispositivo de captura de vídeo 308 pode ser implementado como uma câmera de dispositivo de carga acoplada (CCD), uma câmera de semicondutor óxido de metal complementar (CMOS), ou qualquer outro tipo de dispositivo de captura de imagem. O pelo menos um dispositivo de captura de vídeo 3 08 captura imagens de um usuário, sala de conferência, ou outras cenas, e envia as imagens para a máquina de processamento de imagem 310. Tipicamente, a máquina de processamento de imagem 310 processa a imagem de vídeo em pacotes de dados antes da interface de comunicação 312 transmitir os pacotes de dados para a estação de videoconferência remota 204. A máquina de processamento de imagem 310 será discutida em maiores detalhes com relação à figura 4. Inversamente, a máquina de processamento de imagem 310 também transforma os pacotes de dados recebidos da estação de videoconferência remota 204 em um sinal de vídeo para exibição no dispositivo de exibição 302. A Figura 4 é uma modalidade ilustrativa da máquina de processamento de imagem 310 da figura 3. A máquina de processamento de imagem 310 inclui uma máquina de codificação 4 02, uma máquina de reordenação de macrobloco 4 04, uma máquina de empacotamento de macrobloco 406 e um armazenador temporário de comunicação 408. Inicialmente, um sinal de vídeo do dispositivo de captura de vídeo 308 (figura 3) entra na máquina de codificação 402, que converte cada quadro de vídeo em um formato desejado e transforma cada quadro do sinal de vídeo em um conjunto de macroblocos. Um macrobloco é uma unidade de dados que contém blocos de dados compreendendo componentes de luminância e crominância associados com elementos de imagem (também referidos como pixels). Por exemplo, em H.263, um macrobloco consiste de quatro blocos 8x8 de dados de luminância e dois blocos 8x8 correspondentes de dados de crominância em um formato de amostragem de croma de 4:2:0. Um bloco 8x8 de dados é uma matriz de dados de oito colunas por oito fileiras, onde cada dado corresponde a um pixel do quadro de vídeo. Um macrobloco formatado por croma de 4:2:0 compreende dados cobrindo uma seção de 16 pixels por 16 pixels do quadro de vídeo. No entanto, a presente invenção não é limitada a macroblocos como definido convencionalmente, mas pode se estender a qualquer unidade de dados compreendendo dados de luminância e/ou crominância. Adicionalmente, o escopo da presente invenção cobre outros formatos de amostragem, tal como o formato de amostragem de croma de 4:2:2, compreendendo quatro blocos 8x8 de dados de luminância e quatro blocos correspondentes de 8x8 de dados de crominância, ou um formato de amostragem de croma de 4:4:4 compreendendo quatro blocos 8x8 de dados de luminância e oito blocos 8x8 correspondentes de dados de crominância.
Adicionalmente, a máquina de codificação 402 codifica (isso é, comprime) cada macrobloco para reduzir o número de bits utilizados para representar o conteúdo de dados. Cada macrobloco pode ser "intra-codifiçado" ou "inter-codifiçado", e um quadro pode ser constituído de qualquer combinação de macroblocos intra-codifiçados e inter-codifiçados. Os macroblocos inter-codifiçados são codificados utilizando similaridades temporais (isso é, similaridades que existem entre um macrobloco de um quadro e um macrobloco combinado de perto de um quadro anterior). Especificamente, um determinado macrobloco inter-codifiçado compreende diferenças codificadas entre o determinado macrobloco e um macrobloco combinado de perto do quadro de vídeo anterior. O macrobloco combinado de perto do quadro de vídeo anterior pode compreender dados associados com pixels que são desviados dos pixels associados com o determinado macrobloco. Alternativamente, os macroblocos intra-codifiçados são codificados sem o uso de informação dos outros quadros de vídeo de forma similar à empregada pelo padrão de codificação de imagem estática JPEG.
Por exemplo, para se determinar se um determinado macrobloco pode ser codificado como um macrobloco inter-codificado, a máquina de codificação 402 computa as diferenças entre os dados do macrobloco determinado de um quadro de vídeo atual com os dados de um macrobloco de um quadro de vídeo anterior (referido como um macrobloco de desvio), onde as diferenças podem ser realizadas, por exemplo, por um erro absoluto médio ou um erro médio quadrático entre os dados correspondentes aos pixels localizados nas posições co-localizadas dentro dos macroblocos. Para o macrobloco determinado, a máquina de codificação 402 computa erros para uma pluralidade de macroblocos de desvio. Se a máquina de codificação 402 encontrar apenas erros superiores a um valor limite de diferença predeterminado, então similaridades significativas não existem entre os dados do macrobloco determinado e os dados do quadro anterior, e o macrobloco é intra-codif içado. No entanto, se um erro for encontrado e considerado inferior ao valor limite da diferença predeterminada para o macrobloco determinado e um macrobloco de desvio de- terminado do quadro anterior, então o macrobloco determinado é inter-codifiçado.
Para se inter-codificar o macrobloco determinado, a máquina de codificação 402 subtrai os dados do macrobloco determinado dos dados do macrobloco de desvio (isso é, os dados de luminância e crominância associados com um pixel do macrobloco determinado são subtraídos dos dados de luminância e crominância associados a um pixel correspondente do macrobloco de desvio para cada pixel) para fornecer dados de diferença, codifica os dados de diferença utilizando técnicas de codificação padrão tal como as Transformadas Discretas de Coseno e os métodos de quantização, entre outros, determina um vetor de desvio do macrobloco determinado para o macrobloco com desvio (referido como um vetor de movimento), e codifica o vetor de movimento.
Atualmente, os padrões de codificação de vídeo, tais como H.261 e H.263, especificam que os vetores de movimento dos macroblocos inter-codifiçados sejam codificados diferencialmente para aperfeiçoar a eficiência de codificação. No entanto, a codificação diferencial causa erros criados pelos dados de vetor de movimento perdidos ou corrompidos para propagar para macroblocos adjacentes que do contrário seriam decodificados sem erro, visto que os dados de vetor de movimento codificados associados a um determinado macrobloco não são, em geral, independentes dos dados de vetor de movimento dos macroblocos vizinhos. Dessa forma, os efeitos dos dados de vetor de movimento de um determinado macrobloco não são espacialmente localizados no determinado ma- crobloco. No entanto, se os vetores de movimento de cada ma-crobloco inter-codifiçado forem codificados de forma não diferencial, então os efeitos dos dados do vetor de movimento são localizados no macrobloco determinado, resultando em um aumento significativo na resiliência de erro. Na maior parte dos casos, uma mudança no método de codificação de vetor de movimento de uma técnica diferencial para uma técnica não diferencial resulta em uma pequena perda na eficiência geral de codificação (tipicamente inferior a poucos porcento). Vantajosamente, os componentes do vetor de movimento associados a cada macrobloco inter-codifiçado, contrários aos métodos convencionais, não são codificados diferencialmente, de acordo com uma modalidade da presente invenção.
Em outra modalidade da presente invenção, a máquina de codificação 402 pode intra-codificar macroblocos de um quadro utilizando um mecanismo de atualização cíclica ("walk-around-refresh") . O mecanismo de atualização cíclica é um mecanismo determinante para se limpar a falta de correspondência entre o quadro de referência, chamado de desvio de dados, pela intra-codificação de um padrão específico de macroblocos para cada quadro. A máquina de codificação 402 utiliza os macroblocos de um quadro de referência como macroblocos de desvio na decodificação de macroblocos inter-codif içados de um quadro atual. Em uma modalidade da presente invenção, o mecanismo de atualização cíclica é ativado para intra-codificar um padrão de macroblocos utilizando um intervalo de ciclo inteiro w selecionado a partir de um conjunto de intervalos de ciclos inteiros predeterminados. Por exemplo, se w = 47, então a máquina de codificação 402 in-tra-codifica cada w-ésimo macrobloco. O intervalo de ciclos pode ser selecionado com base nas taxas de transmissão de dados de vídeo e nas taxas de erro. Quando os macroblocos intra-codifiçados atualizados ciclicamente são recebidos pela máquina de codificação da estação de videoconferência remota 204 (figura 2), esses macroblocos intra-codifiçados atualizados ciclicamente substituem os macroblocos correspondentes dos quadros anteriores que podem ser corrompidos devido aos erros de transmissão de dados de vídeo. Qualquer macrobloco que possa ser corrompidos devido aos erros na transmissão de dados de vídeo (e não é substituído) propaga adicionalmente e possivelmente magnífica o desvio dos dados quando a máquina de codificação da estação de videoconferência remota 204 utiliza os macroblocos corrompidos como macroblocos de referência para a decodificação de outros macroblocos recebidos. Dessa forma, os macroblocos intra-codificados atualizados ciclicamente fornecem à máquina de codificação da estação de videoconferência remota 204 um conjunto “novo" de macroblocos intra codificados a serem utilizados como macroblocos de referência, reduzindo assim a propagação do desvio de dados.
Adicionalmente, a máquina de codificação 402 pode gerar um mapa intra-macrobloco que identifica quais os macroblocos em um quadro de vídeo codificado são intra-codif içados. Depois que o mapa intra-macrobloco é gerado, a máquina de processamento de imagem 310 envia o mapa para a estação de videoconferência remota 2 04. 0 mapa pode ser en- viado como parte de um campo de cabeçalho de imagem associado ao quadro de vídeo codificado, por exemplo, apesar de outros campos poderem ser utilizados.
De acordo com a presente invenção, a máquina de codificação 402 pode gerar o mapa intra-macrobloco em uma de duas formas. Em uma modalidade da invenção, a máquina de codificação 402 utiliza a codificação pelo comprimento da série para descrever os locais dos macroblocos intra-codifiçados dentro do quadro. A codificação pelo comprimento da série é uma técnica para reduzir o tamanho da cadeia de caracteres de repetição. Em outra modalidade da presente invenção, a máquina de codificação 402 gera um mapa de bits, onde cada bit no mapa de bits corresponde a um macrobloco do quadro. Um valor de bit identifica um tipo de codificação de macrobloco correspondente. Por exemplo, em uma modalidade da presente invenção, um bit "1" significa que um macrobloco correspondente é intra-codifiçado. Em outra modalidade da presente invenção, um bit "1" significa que o macrobloco correspondente foi inter-codifiçado. Outros métodos de geração de mapa intra-macrobloco podem ser contemplados para uso na presente invenção.
Em outra modalidade adicional da presente invenção, a máquina de codificação 402 seleciona o método de codificação de mapa intra macrobloco que produz o menor número de bits. Por exemplo, um quadro de vídeo FCIF de 352x288 pixels (isso é, uma resolução horizontal de 352 pixels por uma resolução vertical de 288 pixels) compreende 396 macroblocos configurados como uma matriz de 22 x 18 macroblocos. Não in- cluindo qualquer bit auxiliar que possa ser necessário, o método de codificação de mapa de bit exige 396 bits (um bit para cada macrobloco). Dessa forma, 396 bits são utilizados para transmitir o mapa intra-macrobloco codificado por mapa de bit, independente do número de macroblocos intra-codifiçados dentro do quadro FCIF. Em contraste, no entanto, o número de bits utilizados para transmitir o mapa intra-macrobloco codificado pelo comprimento da série depende do número de macroblocos intra-codifiçados dentro do quadro FCIF. O custo de transmissão de um mapa intra-macrobloco codificado pelo comprimento da série é de oito bits por macrobloco intra-codifiçado (isso é, oito bits por valor de rodada) onde o valor de rodada identifica um local do macrobloco intra-codifiçado dentro do quadro FCIF. Portanto, se o quadro FCIF contiver n macroblocos intra-codifiçados, então 8n bits são necessários para se transferir o mapa intra-macrobloco codificado pelo comprimento da série.
Dessa forma, se o quadro CIF contiver menos de 50 macroblocos intra-codifiçados (N < 50) , então a máquina de codificação fonte 402 seleciona o método de codificação pelo comprimento da série, do contrário a máquina de codificação fonte 402 seleciona o método de codificação de mapa de bit. A seleção de um método de codificação de mapa intra-macrobloco depende do formato de vídeo, do qual o quadro de vídeo FCIF é um exemplo ilustrativo.
Subseqüentemente, os macroblocos codificados são enviados para a máquina de reordenação de macrobloco 404. A máquina de reordenação de macrobloco 404 reordena os macro- blocos codificados. Especificamente, cada macrobloco é designado por um identificador de grupo de macrobloco (MBGID) a partir de uma pluralidade de MBGIDs. Em uma modalidade ilustrativa, os macroblocos são numerados de um a seis de acordo com um padrão de designação de macrobloco ilustrativo ilustrado na figura 5 para um quadro formatado por QCIF possuindo nove fileiras de onze macroblocos por fileira. O MBGID máximo é referido como um identificador de grupo máximo (MGID) . Na modalidade ilustrativa da figura 5, o MGID = 6. Como ilustrado, os MBGIDs são designados de uma forma a minimizar os macroblocos adjacentes sendo designados o mesmo MBGID. Alternativamente, outros padrões de designação podem designar o mesmo MBGID para macroblocos adjacentes em qualquer outra ordem de designação.
Como será discutido adicionalmente abaixo em conjunto com a figura 6, a designação de macroblocos, onde os macroblocos adjacentes não recebem o mesmo MBGID, minimiza vantajosamente uma concentração de erros em uma região de um quadro visto que os macroblocos de um pacote de dados perdido são espacialmente distribuídos através do quadro. Visto que os erros decorrentes dos pacotes perdidos são menos prováveis de serem concentrados em uma região do quadro, os dados perdidos associados aos macroblocos perdidos podem ser mais precisamente reconstruídos utilizando-se os dados dos macroblocos vizinhos. Em outras palavras, a interpolação espacial dos dados dos macroblocos vizinhos ou uma estimativa de vetores de movimento do macrobloco que está faltando são mais precisamente determinados, caso a perda de dados não seja espacialmente localizada dentro do quadro. A máquina de codificação 402 (figura 4) da máquina de processamento de imagem 310 (figura 3) da estação de videoconferência remota 204 (figura 2) pode utilizar uma variedade de técnicas de ocultação de erro em conjunto com a re-ordenação dos macroblocos para aperfeiçoar a qualidade de vídeo. Por exemplo, em uma modalidade da presente invenção, a máquina de codificação 402 decodifica os macroblocos vizinhos de um macrobloco inter-codifiçado perdido, estima um vetor de movimento do macrobloco perdido, e então utiliza o vetor de movimento estimado para reconstruir os dados do macrobloco perdido. Em outra modalidade da presente invenção, a máquina de codificação 402 pode decodificar os macroblocos vizinhos de um macrobloco intra-codifiçado perdido, e inter-polar espacialmente os dados vizinhos decodificados para reconstruir os dados perdidos. 0 escopo da presente invenção cobre outras técnicas de ocultação de erro utilizadas em conjunto com a reordenação de macrobloco para aperfeiçoar a qualidade de vídeo decorrente de macroblocos perdidos ou corrompidos.
Os padrões de reordenação e MBGIDs diferentes podem ser utilizados de acordo com a presente invenção. Em uma modalidade da presente invenção, a máquina de reordenação de macrobloco 4 04 seleciona um MGID com base nas taxas de dados de vídeo e/ou formato de vídeo.
Com referência novamente à figura 4, uma vez que os macroblocos receberam os MBGIDs, a máquina de empacota- mento de macrobloco 406 substitui os macroblocos em pacotes de dados discretos de acordo com seus MBGIDs. Dessa forma, os macroblocos com o mesmo MBGID (por exemplo, MBGID = 1) serão colocados em um pacote de dados discreto comum (por exemplo, pacote de dados 1) . Com referência à modalidade ilustrativa da invenção da figura 5, a máquina de empacotamento 406 coloca os macroblocos em seis pacotes de dados por quadro QCIF. No entanto, a máquina de empacotamento 406 pode utilizar mais de um pacote com um determinado MBGID para transportar os macroblocos com o MBGID determinado. Por exemplo, a máquina de empacotamento 406 pode criar um primeiro pacote de dados 1 compreendendo uma parte dos macroblocos com MBGID = 1 e um segundo pacote de dados 1 compreendendo o restante dos macroblocos com MBGID = 1. A divisão dos pacotes dessa forma é tipicamente governada por um tamanho máximo de unidade de transferência (MTU) associado à rede 206 (figura 2).
Subseqüentemente, os pacotes de dados e o cabeçalho de imagem são enviados para o armazenador temporário de comunicação 408 para transmissão através da rede 206 (figura 2) pela interface de comunicação 312 (figura 3). Para se promover adicionalmente a resiliência contra a perda de pacote, o cabeçalho de imagem pode ser transmitido mais de uma vez por quadro. O cabeçalho de imagem pode incluir o mapa intra-macrobloco.
Inversamente, a máquina de processamento de imagem 310 também processa os pacotes de dados de vídeo recebidos de um local remoto e fornece sinais de vídeo para exibição.
Inicialmente, os pacotes de dados de vídeo são recebidos pela interface de comunicação 312 (figura 3), e enviados para o armazenador temporário de comunicação 408. Os pacotes de dados de vídeo são então enviados para a máquina de empacotamento de macrobloco 406, que desempacota os macroblocos. A seguir, a máquina de reordenação de macrobloco 404 ordena os macroblocos de volta a seu padrão ordenado original (isso é, padrão anterior à reordenação de macrobloco na estação de videoconferência remota 204, que é tipicamente uma varredura por rastreio (figura 2)).
Subseqüentemente, a máquina de codificação 402 funciona como um decodificador, e determina se um pacote de dados de vídeo foi perdido no trânsito através da rede 206. A figura 6 é um diagrama do padrão de reordenação de macrobloco de quadro QCIF da figura 5, quando um pacote de dados contendo dados de macrobloco codificados para os macroblocos com MBGID = 5 é perdido. Os macroblocos perdidos são marcados com um "x" . Deve-se notar que os macroblocos perdidos são vantajosamente distribuídos de maneira espacial através do quadro QCIF, de acordo com uma modalidade da presente invenção, permitindo assim técnicas de ocultação de erro precisas e de baixa complexidade empregando tais métodos como interpolação espacial ou estimativa de vetor de movimento e compensação. Apesar da figura 6 ilustrar um único pacote de dados faltando para fins de conveniência de discussão, o escopo da presente invenção cobre a ocultação de erro quando qualquer número de pacotes de dados são corrompidos ou perdidos durante o trânsito. Deve-se notar adicionalmente que, apesar dos mesmos componentes serem descritos aqui como sendo utilizados para ambas as funções de transmissão e recepção, os componentes podem ser consubstanciados em dispositivos receptores e transmissores separados.
Com referência novamente â figura 4, para cada ma-crobloco perdido, a máquina de codificação 402 determina se o macrobloco perdido é intra-codifiçado ou inter-codifiçado. Por exemplo, a máquina de codificação 402 pode examinar o mapa intra-macrobloco para determinar se o macrobloco perdido é intra-codifiçado. Como mencionado acima, o mapa intra-macrobloco pode ser enviado nos campos de cabeçalho de imagem ou como informação adicional transportada fora de um fluxo de vídeo, e pode ser comprimido utilizando-se um algoritmo de codificação pelo comprimento da série, configurado como um mapa de bit que identifica macroblocos intra-codif içados, ou algum outro método eficiente de codificação.
Se os macroblocos perdidos forem intra-codif içados, então várias técnicas de ocultação de erro podem ser utilizadas. Por exemplo, se o macrobloco perdido for intra-codifiçado como parte de um mecanismo de atualização cíclica, a máquina de codificação 402 substitui o macrobloco perdido pelo conteúdo de um macrobloco "correspondente" de um quadro anterior, onde dois macroblocos "correspondentes" cobrem a mesma área espacial de seus respectivos quadros. De acordo com a presente invenção, a taxa de limpeza do mecanismo de atualização cíclica é uma função das taxas de dados e de erro.
Alternativamente, se um macrobloco intra-codificado perdido não for codificado como parte do mecanismo de atualização cíclica, então a máquina de codificação 402 interpola espacialmente o conteúdo do macrobloco perdido a partir dos macroblocos adjacentes. Em uma modalidade da presente invenção, cada bloco 8x8 do macrobloco perdido é espacialmente interpolado a partir dos dois blocos mais próximos localizados nos macroblocos adjacentes. A figura 7 ilustra um esquema de interpolação ilustrativo utilizando dados associados com pixels localizados nos macroblocos adjacentes. A figura 7 inclui um macrobloco perdido 705, um macrobloco adjacente esquerdo 710, um macrobloco adjacente superior 715 e um macrobloco adjacente direito 720. Por exemplo, para se reconstruir (isso é, interpolar) os dados para um bloco 8x8 esquerdo superior 725 do macrobloco 16x16 perdido 705, a máquina de codificação 402 (figura 4) interpola os dados em uma última coluna de dados 730 (indicada por x) a partir de um bloco 8x8 direito superior 735 do macrobloco adjacente esquerdo 710, e os dados em uma última fileira de dados 740 (indicada por um x) de um bloco esquerdo 8x8 inferior 745 do macrobloco adjacente superior 715.
De forma similar, para se reconstruir os dados para um bloco 8x8 direito superior 750 do último macrobloco 705, a máquina de codificação 402 interpola os dados em uma primeira coluna de dados 755 de um bloco 8x8 esquerdo superior 760 do macrobloco adjacente direito 720, e os dados em uma última fileira de dados 765 de um bloco 8x8 direito inferior 770 do macrobloco adjacente superior 715. Outras for- mas de interpolação podem ser aplicadas e outros blocos de macroblocos adjacentes podem ser utilizados, e estão dentro do escopo da presente invenção.
Se o último macrobloco for inter-codificado, então a máquina de codificação 402 computa uma estimativa do vetor de movimento de macrobloco perdido pelo exame dos vetores de movimento dos macroblocos adjacentes. A figura 8 é um diagrama de blocos de macroblocos adjacentes utilizados para estimar o vetor de movimento do macrobloco perdido m, de acordo com uma modalidade da presente invenção. Para o macrobloco m, uma média de vetores de movimento de três macroblocos vizinhos a, b e c é computado. Por exemplo, o componente x do vetor de movimento estimado do macrobloco m é MVmx = média (MVaXí MVbXí MVCX) e o componente y do vetor de movimento estimado do macrobloco m é MVmy = média (MVay, MVby, MVcy) , onde MVax, MVbx, MVCX são os componentes x dos vetores de movimento dos macroblocos a, b, e c, respectivamente, e MVay, MVby, MVcy são os componentes y dos vetores de movimento dos macroblocos a, b e c, respectivamente. Apesar da modalidade da figura 8 da presente invenção utilizar vetores de movimento de macroblocos adjacentes a, b, e c para computar um vetor de movimento estimado para o macrobloco m, qualquer número e qualquer combinação de macroblocos adjacentes pode ser utilizado para estimar um vetor de movimento de macrobloco perdido.
Uma vez que o vetor de movimento do macrobloco perdido é estimado, o movimento da máquina de codificação 402 (figura 4) compensa o macrobloco perdido pela utilização do vetor de movimento estimado para reconstruir o conteúdo de dados do macrobloco perdido. Depois que o conteúdo de dados de todos os macroblocos perdidos de um quadro determinado é reconstruído, a máquina de codificação 402 transforma os macroblocos em um sinal de vídeo para exibição no dispositivo de exibição 302 (figura 3) . Apesar de ser ilustrada com apenas um pacote de dados perdido, a presente invenção pode ser utilizada para ocultar erros com múltiplos pacotes de dados perdidos. A Figura 9 é um fluxograma ilustrativo 900 das etapas do método para ocultação de erro de vídeo quando da transmissão de dados de vídeo através de redes comutadas por pacote, de acordo com uma modalidade da presente invenção. Na etapa 905, o dispositivo de captura de vídeo 308 (figura 3) captura uma imagem de vídeo e gera um sinal de vídeo. A seguir, na etapa 910, a máquina de codificação 402 (figura 4) (também referido como um codificador quando do processamento de dados para transmissão) recebe o sinal de vídeo e transforma o sinal de vídeo em um ou mais macroblocos intra-codifiçados e inter-codifiçados. Um quadro de vídeo pode compreender macroblocos inter-codifiçados, macroblocos in-tra-codifiçados ou qualquer combinação de macroblocos intra-codifiçados e inter-codifiçados. Em uma modalidade da presente invenção, um mecanismo de atualização cíclica é ativado para intra-codificar um padrão de macroblocos utilizando um intervalo de ciclo selecionado a partir de um conjunto de intervalos de ciclos predeterminados. O intervalo de ciclo pode ser selecionado com base nas taxas de dados de vídeo e nas taxas de erro. Adicionalmente, a máquina de codificação 402 computa um vetor de movimento codificado de forma não diferencial para cada macrobloco inter-codifiçado.
Subseqüentemente, na etapa 915, a máquina de codificação 402 gera um mapa de intra-macrobloco que identifica a localização dos macroblocos intra-codifiçados. Em uma modalidade da presente invenção, o mapa intra-macrobloco é codificado utilizando um método de codificação pelo comprimento da série ou um método de codificação de mapa de bit com base no número total de bits necessários para se codificar o mapa intra-macrobloco. A seguir, uma máquina de reordenação de macrobloco 404 (figura 4) designa para cada macrobloco um MBGID na etapa 920. Por exemplo, os macroblocos podem ser designados com MBGIDs em um padrão tal como o ilustrado na figura 5. Em uma modalidade, os macroblocos são designados de forma a minimizar os macroblocos adjacentes recebendo os mesmos MBGIDs. Alternativamente, outras modalidades podem contemplar a designação a macroblocos adjacentes dos mesmos MBGIDs.
Subseqüentemente, a máquina de empacotamento de macrobloco 406 (figura 4) cria pacotes de dados discretos e coloca os macroblocos em pacotes de dados discretos de acordo com seus MBGIDs na etapa 925. Por exemplo, os macroblocos com o mesmo MBGID são colocados em um pacote de dados discreto comum. Alternativamente, a máquina de empacotamento de macrobloco 406 pode ser uma máquina de transporte para colocar os macroblocos em um formato particular para transporte em uma rede comutada por circuito. Finalmente, na etapa 930, os pacotes de dados e um cabeçalho de imagem (incluindo o mapa intra-macrobloco) são enviados para o armazenador de comunicação 408 (figura 4) para transmissão para a estação de videoconferência remota 204 (figura 2). A Figura 10 é um fluxograma ilustrativo 1000 das etapas do método para a ocultação de erro de vídeo quando do recebimento de dados de vídeo, de acordo com a presente invenção. Na etapa 1005, o armazenador temporário de comunicação 408 (figura 4) recebe os pacotes de dados transmitidos da estação de videoconferência remota 204 (figura 2) através da rede 206 (figura 2) . Então, na etapa 1010, a máquina de empacotamento de macrobloco 406 (figura 4) desempacota os pacotes de dados recebidos em macroblocos. Subseqüentemente, na etapa 1015, a máquina de reordenação de macrobloco 404 (figura 4) ordena os macroblocos e coloca os macroblocos na configuração espacial adequada dentro de um quadro de vídeo. A seguir, a máquina de codificação 402 (figura 4) decodifica os macroblocos na etapa 1020. A máquina de codificação 402 (funcionando como um decodificador) ou algum outro mecanismo relacionado com uma transformação de pacote de dados de vídeo (por exemplo, números de seqüência RTP) determina se quaisquer macroblocos compreendendo o quadro de vídeo estão faltando na etapa 1025. Os macroblocos são perdidos se um ou mais pacotes de dados de vídeo forem perdidos ou corrompidos através da transmissão dos pacotes de dados de vídeo através da rede 206. Se, na etapa 1025, for determinado que nenhum macrobloco foi perdido, então os macroblo-cos são exibidos pelo dispositivo de exibição 302 (figura 3) na etapa 1030. No entanto, se na etapa 1025 for determinado que um ou mais macroblocos estão faltando, então os dados associados com o um ou mais macroblocos faltando são reconstruídos, com base no tipo de codificação do macrobloco, na etapa 1035. A máquina de codificação 402 pode utilizar o mapa intra-macrobloco para determinar o tipo de codificação de cada macrobloco perdido.
Por exemplo, se o macrobloco perdido for intra-codificado como parte do mecanismo de atualização cíclica, então a máquina de codificação 402 substitui o conteúdo do macrobloco perdido pelo conteúdo de dados de um macrobloco correspondente de um quadro anterior. Alternativamente, se um macrobloco intra-codifiçado perdido não for codificado como parte do mecanismo de atualização cíclica, então o conteúdo do macrobloco perdido é espacialmente interpolado a partir dos macroblocos adjacentes vizinhos mais próximos. Em uma modalidade da presente invenção, a máquina de codificação 402 utiliza uma interpolação bidimensional para interpo-lar os dados dos macroblocos adjacentes (figura 7).
Alternativamente, se o macrobloco perdido for in-ter-codifiçado, então a máquina de codificação 402 estima o vetor de movimento do macrobloco perdido pelo exame dos valores de movimento dos macroblocos adjacentes. Em uma modalidade da presente invenção, o vetor de movimento é computado como uma média dos vetores de movimento de três macroblocos vizinhos (figura 8). A máquina de codificação 402 então utiliza o vetor de movimento estimado para compensar pelo conteúdo de dados do macrobloco perdido pela reconstrução de uma estimativa do conteúdo de dados do macrobloco perdido. Uma vez que o conteúdo de dados dos macroblocos perdidos foi reconstruído, os macroblocos são exibidos pelo dispositivo de exibição 302, na etapa 1025. A presente invenção foi explicada acima com referência às modalidades ilustrativas. Será evidente aos versados na técnica que várias modificações podem ser feitas à mesma sem que se distancie do espírito e escopo mais amplo da invenção. Adicionalmente, apesar da invenção ter sido descrita no contexto de sua implementação em ambientes particulares e para aplicações particulares, os versados na técnica reconhecerão que a utilidade da presente invenção não está limitada a isso e que a invenção pode ser beneficamente utilizada em qualquer número de ambientes e implementações. A descrição e os desenhos acima são, de acordo, considerados em uma forma ilustrativa ao invés de restritiva.
REIVINDICAÇÕES

Claims (63)

1. Sistema de processamento de dados de vídeo, CARACTERIZADO pelo fato de compreender: um motor de codificação (402) para processar cada quadro de um sinal de vídeo para gerar macroblocos e para codificar os macroblocos; um motor de reordenação de macrobloco (404) para a designação de uma identificação de grupo de macrobloco (MBGID) de uma pluralidade de MBGID para cada macrobloco codificado; e um motor de empacotamento de macrobloco (406) para a colocação de cada um dos macroblocos codificados em um pacote de dados particular de acordo com o MBGID, de modo que cada pacote contenha apenas macroblocos possuindo MBGID comuns .
2. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o motor de reordenação de macrobloco designar um MBGID diferente aos macroblocos codificados adjacentes.
3. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o motor de codificação gerar vetores de movimento codificados de forma não diferencial para cada um dos macroblocos codificados que é um macrobloco in-ter codificado.
4. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o motor de empacotamento de macrobloco colocar os macroblocos codificados com MBGID designados diferentes em pacotes de dados diferentes.
5. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o MBGID possuir um valor de 1 a um identificador de grupo máximo (MGID).
6. Sistema, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de o motor de reordenação de macro-bloco determinar o MGID com base nas taxas de dados de video .
7. Sistema, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de o motor de reordenação de macro-bloco determinar o MGID com base no formato de vídeo.
8. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o motor de codificação codificar um determinado macrobloco de um quadro atual como um macro-bloco intra codificado se existirem diferenças significativas entre os dados do determinado macrobloco do quadro atual e os dados de um macrobloco desviado de combinação mais próxima de um quadro anterior.
9. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o motor de codificação codificar um determinado macrobloco de um quadro atual como um macrobloco inter codificado se existirem similaridades significativas entre os dados do macrobloco determinado do quadro atual e os dados de um macrobloco desviado de combinação mais próxima de um quadro anterior.
10. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o motor de codificação gerar adicionalmente um mapa intra macrobloco identificando os macro-blocos intra codificados em um determinado quadro.
11. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de o motor de codificação codificar o mapa intra macrobloco pela seleção de um método de codificação de mapa intra macrobloco que gera o menor número possível de bits.
12. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de o motor de codificação utilizar a codificação de comprimento de funcionamento para codificar o mapa intra macrobloco.
13. Sistema, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de o motor de codificação utilizar um mapa de bits para codificar o mapa intra macrobloco.
14. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o motor de empacotamento de macrobloco de um dispositivo de recepção desempacotar os ma-croblocos codificados.
15. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o motor de reordenação de macrobloco de um dispositivo de recebimento ordenar os macroblo-cos codificados.
16. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o motor de codificação de um dispositivo de recebimento decodificar os macroblocos codificados e detectar os macroblocos decodificados que estão faltando .
17. Sistema, de acordo com a reivindicação 16, CARACTERIZADO pelo fato de o motor de codificação do dispositivo de recebimento interpolar espacialmente os dados de um determinado macrobloco decodificado que está faltando a partir dos dados dos macroblocos decodificados adjacentes para ocultar os efeitos do erro de video, se o macrobloco decodificado determinado que está faltando tiver sido codificado como um macrobloco intra codificado.
18. Sistema, de acordo com a reivindicação 16, CARACTERIZADO pelo fato de o motor de codificação do dispositivo de recebimento estimar um vetor de movimento de um determinado macrobloco decodificado determinado que está faltando com base nos vetores de movimento dos macroblocos decodificados adjacentes para reconstruir o conteúdo de dados do macrobloco decodificado determinado que está faltando através da compensação de movimento para ocultar os efeitos do erro de video, se o determinado macrobloco decodificado que está faltando tiver sido codificado como um macrobloco inter codificado.
19. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de o motor de empacotamento de macrobloco ser um motor de transporte para a colocação de cada um dos macroblocos codificados de acordo com o MBGID em um formato particular para transporte em uma rede comutada por circuito.
20. Método de processamento de dados de video, CARACTERIZADO pelo fato de compreender as etapas de: processar (910) cada quadro de um sinal de video para gerar macroblocos; codificar os macroblocos; designar um identificador de grupo de macrobloco (MBGID) a partir de uma pluralidade de MBGID para cada um dos macroblocos codificados; reordenar (920) os macroblocos codificados de acordo com o MBGID; e colocar (925) cada um dos macroblocos codificados em um pacote de dados particular, de modo que cada pacote contenha apenas macroblocos tendo um MBGID comum.
21. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de a etapa de designação compreender adicionalmente a etapa de designação de MBGID diferentes para macroblocos codificados adjacentes.
22. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de geração de vetores de movimento codificados de forma não diferencial para cada um dos macroblocos codificados que é um macrobloco inter codificado.
23. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de a etapa de colocação compreender adicionalmente a etapa de colocação dos macroblocos codificados com MBGID diferentes designados em diferentes pacotes de dados.
24. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de o MBGID possuir um valor de 1 a um identificador de grupo máximo (MGID).
25. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de determinar o MGID com base nas taxas de dados de video.
26. Método, de acordo com a reivindicação 23, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de determinar o MGID com base no formato de video.
27. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de a etapa de codificação compreender adicionalmente a etapa de codificação de um determinado macrobloco de um quadro atual como um macrobloco intra codificado se existirem diferenças significativas entre os dados do macrobloco determinado do quadro atual e os dados de um macrobloco desviado de combinação mais próxima de um quadro anterior.
28. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de a etapa de codificação compreender adicionalmente a etapa de codificação de um determinado macrobloco de um quadro atual como um macrobloco inter codificado se existirem similaridades significativas entre os dados do determinado macrobloco do quadro atual e os dados de um macrobloco desviado de combinação mais próxima de um quadro anterior.
29. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de geração de um mapa intra macrobloco identificando ma-croblocos intra codificados em um determinado quadro.
30. Método, de acordo com a reivindicação 29, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de seleção de um mapa intra macrobloco codificando o método que gera o menor número possível de bits.
31. Método, de acordo com a reivindicação 29, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de utilização de codificação de comprimento de funcionamento para codificar o mapa intra macrobloco.
32. Método, de acordo com a reivindicação 29, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de utilização de um mapa de bit para codificar o mapa intra macrobloco.
33. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de desempacotar os macroblocos codificados.
34. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de ordenação dos macroblocos codificados.
35. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de compreender adicionalmente as etapas de decodificação dos macroblocos codificados e a detecção de macroblocos decodificados que estão faltando.
36. Método, de acordo com a reivindicação 35, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de interpolação espacial de dados de um determinado macrobloco decodificado que está faltando dos dados dos macroblocos decodificados adjacentes para ocultar os efeitos do erro de video, se o macrobloco decodificado determinado que está faltando tiver sido codificado como um macrobloco intra codificado.
37. Método, de acordo com a reivindicação 35, CARACTERIZADO pelo fato de compreender adicionalmente a eta- pa de estimativa de um vetor de movimento de um determinado macrobloco decodificado que está faltando com base nos vetores de movimento dos macroblocos decodificados adjacentes para reconstruir o conteúdo de dados do determinado macrobloco decodificado que está faltando através da compensação de movimento para ocultar os efeitos do erro de video, se o macrobloco determinado decodificado que está faltando tiver sido codificado como um macrobloco inter codificado.
38. Método, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de a etapa de colocação compreender adicionalmente a colocação de cada um dos macroblocos codificados de acordo com o MBGID em um formato particular para o transporte em uma rede comutada por circuito.
39. Sistema para o processamento de dados de video, CARACTERIZADO pelo fato de compreender: um motor de desempacotamento de macrobloco configurado para receber uma pluralidade de pacotes de dados, cada pacote contendo uma pluralidade de macroblocos em que cada macrobloco da pluralidade de macroblocos em um dado pacote possui um identificador de grupo de macrobloco (MBGID) comum e configurado adicionalmente para extrair os macroblocos dos pacotes; um motor de reordenação de macrobloco configurado para reordenar os macroblocos extraídos em uma ordem predeterminada; e um motor de decodificação configurado para processar os macroblocos reordenados em um sinal de vídeo.
40. Sistema, de acordo com a reivindicação 39, CARACTERIZADO pelo fato de a ordem predeterminada ser uma ordem de exploração de rasteio.
41. Sistema, de acordo com a reivindicação 39, CARACTERIZADO pelo fato de a pluralidade de pacotes de dados incluir vetores de movimento codificados de forma não diferencial para cada um dos macroblocos codificados que seja um macrobloco inter codificado.
42. Sistema, de acordo com a reivindicação 39, CARACTERIZADO pelo fato de os MBGID variam em valor de 1 a um identificador de grupo máximo (MGID).
43. Sistema, de acordo com a reivindicação 42, CARACTERIZADO pelo fato de o MGID corresponder a uma taxa de dados de vídeo.
44. Sistema, de acordo com a reivindicação 42, CARACTERIZADO pelo fato de o MGID corresponder a um formato de vídeo.
45. Sistema, de acordo com a reivindicação 39, CARACTERIZADO pelo fato de a pluralidade de pacotes de dados incluir um mapa intra macrobloco identificando os macroblocos intra codificados em um determinado quadro.
46. Sistema, de acordo com a reivindicação 45, CARACTERIZADO pelo fato de o mapa intra macrobloco ser codificado utilizando-se a codificação de comprimento de funcionamento .
47. Sistema, de acordo com a reivindicação 45, CARACTERIZADO pelo fato de o mapa intra macrobloco ser codificado utilizando-se um mapa de bits.
48. Sistema, de acordo com a reivindicação 45, CARACTERIZADO pelo fato de o motor de decodificação detectar se o mapa intra macrobloco é codificado utilizando a codificação de comprimento de funcionamento ou um mapa de bit e processar os macroblocos de acordo.
49. Sistema, de acordo com a reivindicação 39, CARACTERIZADO pelo fato de o motor de decodificação detectar os macroblocos que estão faltando dos macroblocos reordena-dos e reconstruir os dados que estão faltando.
50. Sistema, de acordo com a reivindicação 49, CARACTERIZADO pelo fato de o motor de decodificação interpo-lar espacialmente os dados de um determinado macrobloco que está faltando dos dados dos macroblocos decodificados adjacentes, se o determinado macrobloco que está faltando tiver sido codificado como um macrobloco intra codificado.
51. Sistema, de acordo com a reivindicação 49, CARACTERIZADO pelo fato de o motor de decodificação estimar um vetor de movimento de um determinado macrobloco que está faltando com base nos vetores de movimento dos macroblocos decodificados adjacentes para reconstruir o conteúdo de dados do determinado macrobloco que está faltando através da compensação de movimento, se o determinado macrobloco decodificado que está faltando tiver sido codificado como um macrobloco inter codificado.
52. Método de processamento de dados de video, CARACTERIZADO pelo fato de compreender as etapas de: recebimento de uma pluralidade de pacotes de dados, cada pacote de dados contendo uma pluralidade de macro- blocos, cada macrobloco dentro de um pacote particular possuindo um identificador de grupo de macrobloco (MBGID) comum; desempacotamento dos macroblocos recebidos; reordenação dos macroblocos recebidos em uma ordem predeterminada diferente da ordem na qual foram recebidos; e decodificação dos macroblocos reordenados para produzir um sinal de video.
53. Método, de acordo com a reivindicação 52, CARACTERIZADO pelo fato de a ordem predeterminada ser uma ordem de exploração de rasteio.
54. Método, de acordo com a reivindicação 52, CARACTERIZADO pelo fato de a pluralidade de pacotes de dados conter vetores de movimento codificados de forma não diferencial para cada um dos macroblocos codificados que sejam um macrobloco inter codificado.
55. Método, de acordo com a reivindicação 52, CARACTERIZADO pelo fato de os MBGID variarem em valor de 1 a um identificador de grupo máximo (MGID).
56. Método, de acordo com a reivindicação 55, CARACTERIZADO pelo fato de o MGID corresponder a uma taxa de dados de video.
57. Método, de acordo com a reivindicação 55, CARACTERIZADO pelo fato de o MGID corresponder a um formato de video.
58. Método, de acordo com a reivindicação 52, CARACTERIZADO pelo fato de a pluralidade de pacotes de dados conter um mapa intra macrobloco identificando os macroblocos intra codificados em um determinado quadro.
59. Método, de acordo com a reivindicação 58, CARACTERIZADO pelo fato de o mapa intra macrobloco ser codificado por comprimento de funcionamento.
60. Método, de acordo com a reivindicação 58, CARACTERIZADO pelo fato de o mapa intra macrobloco ser codificado utilizando-se um mapa de bits.
61. Método, de acordo com a reivindicação 52, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de detecção de macroblocos que estão faltando.
62. Método, de acordo com a reivindicação 61, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de interpolação espacial dos dados de um determinado macrobloco que está faltando dos dados dos macroblocos decodificados adjacentes, se o determinado macrobloco que está faltando tiver sido codificado como um macrobloco intra codificado .
63. Método, de acordo com a reivindicação 61, CARACTERIZADO pelo fato de compreender adicionalmente a etapa de estimativa de um vetor de movimento de um determinado macrobloco que está faltando com base nos vetores de movimento dos macroblocos adjacentes para reconstruir o conteúdo dos dados do macrobloco determinado que está faltando através da compensação de movimento, se o macrobloco determinado que está faltando tiver sido codificado como um macrobloco inter codificado.
BRPI0212000-3A 2001-08-23 2002-08-23 "system and method for processing video data" BRPI0212000B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31441301P 2001-08-23 2001-08-23
US60/314.413 2001-08-23
PCT/US2002/026577 WO2003019939A1 (en) 2001-08-23 2002-08-23 System and method for video error concealment

Publications (1)

Publication Number Publication Date
BRPI0212000B1 true BRPI0212000B1 (pt) 2017-12-12

Family

ID=23219857

Family Applications (2)

Application Number Title Priority Date Filing Date
BR0212000-3A BR0212000A (pt) 2001-08-23 2002-08-23 Sistema e método para ocultação de erro de vìdeo
BRPI0212000-3A BRPI0212000B1 (pt) 2001-08-23 2002-08-23 "system and method for processing video data"

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR0212000-3A BR0212000A (pt) 2001-08-23 2002-08-23 Sistema e método para ocultação de erro de vìdeo

Country Status (15)

Country Link
US (2) US7239662B2 (pt)
EP (1) EP1421787A4 (pt)
JP (2) JP4881543B2 (pt)
KR (1) KR100691307B1 (pt)
CN (1) CN100581238C (pt)
AU (1) AU2002326713B2 (pt)
BR (2) BR0212000A (pt)
CA (1) CA2457882C (pt)
IL (2) IL160476A0 (pt)
MX (1) MXPA04001656A (pt)
NO (2) NO339116B1 (pt)
NZ (1) NZ531863A (pt)
RU (1) RU2291586C2 (pt)
WO (1) WO2003019939A1 (pt)
ZA (1) ZA200401377B (pt)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965644B2 (en) * 1992-02-19 2005-11-15 8×8, Inc. Programmable architecture and methods for motion estimation
WO2003061284A1 (en) * 2001-12-21 2003-07-24 Polycom, Inc. Motion wake identification and control mechanism
US20060146940A1 (en) * 2003-01-10 2006-07-06 Thomson Licensing S.A. Spatial error concealment based on the intra-prediction modes transmitted in a coded stream
MXPA05007452A (es) * 2003-01-10 2005-09-12 Thomson Licensing Sa Tecnica para definir orden de disimulo para minimizar la propagacion de error.
US7827458B1 (en) 2003-03-03 2010-11-02 Apple Inc. Packet loss error recovery
US7817716B2 (en) * 2003-05-29 2010-10-19 Lsi Corporation Method and/or apparatus for analyzing the content of a surveillance image
US8705613B2 (en) * 2003-06-26 2014-04-22 Sony Corporation Adaptive joint source channel coding
US7826526B2 (en) * 2003-10-20 2010-11-02 Logitech Europe S.A. Methods and apparatus for encoding and decoding video data
US8582640B2 (en) * 2003-12-16 2013-11-12 Sony Corporation Adaptive joint source channel coding
US20050281339A1 (en) * 2004-06-22 2005-12-22 Samsung Electronics Co., Ltd. Filtering method of audio-visual codec and filtering apparatus
US20060013315A1 (en) * 2004-07-19 2006-01-19 Samsung Electronics Co., Ltd. Filtering method, apparatus, and medium used in audio-video codec
JP2006060813A (ja) * 2004-08-20 2006-03-02 Polycom Inc ビデオデコーダにおける誤り隠蔽
EP1638337A1 (en) 2004-09-16 2006-03-22 STMicroelectronics S.r.l. Method and system for multiple description coding and computer program product therefor
US7543064B2 (en) * 2004-09-30 2009-06-02 Logitech Europe S.A. Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
US7463755B2 (en) * 2004-10-10 2008-12-09 Qisda Corporation Method for correcting motion vector errors caused by camera panning
US20060262860A1 (en) * 2005-02-23 2006-11-23 Chou Jim C Macroblock adaptive frame/field coding architecture for scalable coding
US7738468B2 (en) * 2005-03-22 2010-06-15 Logitech Europe S.A. Method and apparatus for packet traversal of a network address translation device
KR101012624B1 (ko) * 2005-05-11 2011-02-09 퀄컴 인코포레이티드 통합 에러 은폐 프레임워크를 위한 방법 및 장치
US9661376B2 (en) 2005-07-13 2017-05-23 Polycom, Inc. Video error concealment method
US9055298B2 (en) 2005-07-15 2015-06-09 Qualcomm Incorporated Video encoding method enabling highly efficient partial decoding of H.264 and other transform coded information
US7916796B2 (en) * 2005-10-19 2011-03-29 Freescale Semiconductor, Inc. Region clustering based error concealment for video data
US9794593B1 (en) * 2005-12-09 2017-10-17 Nvidia Corporation Video decoder architecture for processing out-of-order macro-blocks of a video stream
US9516326B1 (en) 2005-12-09 2016-12-06 Nvidia Corporation Method for rotating macro-blocks of a frame of a video stream
US8238442B2 (en) * 2006-08-25 2012-08-07 Sony Computer Entertainment Inc. Methods and apparatus for concealing corrupted blocks of video data
US9247260B1 (en) * 2006-11-01 2016-01-26 Opera Software Ireland Limited Hybrid bitmap-mode encoding
US8443398B2 (en) * 2006-11-01 2013-05-14 Skyfire Labs, Inc. Architecture for delivery of video content responsive to remote interaction
US8375304B2 (en) * 2006-11-01 2013-02-12 Skyfire Labs, Inc. Maintaining state of a web page
US8711929B2 (en) * 2006-11-01 2014-04-29 Skyfire Labs, Inc. Network-based dynamic encoding
CN101202923B (zh) * 2006-12-15 2010-09-01 扬智科技股份有限公司 影像解码器的码流错误侦测方法
US8265159B2 (en) * 2006-12-27 2012-09-11 Panasonic Corporation Moving picture decoding apparatus
WO2008092104A2 (en) * 2007-01-25 2008-07-31 Skyfire Labs, Inc. Dynamic client-server video tiling streaming
US7957307B2 (en) * 2007-03-14 2011-06-07 Microsoft Corporation Reducing effects of packet loss in video transmissions
KR101125846B1 (ko) * 2007-03-23 2012-03-28 삼성전자주식회사 패킷 기반의 영상 프레임 전송 방법 및 장치
US8582656B2 (en) 2007-04-13 2013-11-12 Apple Inc. Method and system for video encoding and decoding
US8605779B2 (en) 2007-06-20 2013-12-10 Microsoft Corporation Mechanisms to conceal real time video artifacts caused by frame loss
DE102007058033A1 (de) * 2007-11-30 2009-06-04 Paterok, Peter, Dr. Verfahren und Vorrichtung zur verbesserten Videoausgabe
FR2929466A1 (fr) * 2008-03-28 2009-10-02 France Telecom Dissimulation d'erreur de transmission dans un signal numerique dans une structure de decodage hierarchique
US20100104003A1 (en) * 2008-10-24 2010-04-29 Manufacturing Resources International Inc. System and method for securely transmitting video data
US9812047B2 (en) 2010-02-25 2017-11-07 Manufacturing Resources International, Inc. System and method for remotely monitoring the operating life of electronic displays
US8648858B1 (en) 2009-03-25 2014-02-11 Skyfire Labs, Inc. Hybrid text and image based encoding
CN102036061B (zh) 2009-09-30 2012-11-21 华为技术有限公司 视频数据传输处理、发送处理方法、装置和网络系统
KR101457418B1 (ko) * 2009-10-23 2014-11-04 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
US20110249127A1 (en) * 2010-04-07 2011-10-13 Cisco Technology, Inc. Estimating Video Quality Corruption in Lossy Networks
JP5485851B2 (ja) * 2010-09-30 2014-05-07 日本電信電話株式会社 映像符号化方法,映像復号方法,映像符号化装置,映像復号装置およびそれらのプログラム
US9542611B1 (en) * 2011-08-11 2017-01-10 Harmonic, Inc. Logo detection for macroblock-based video processing
CN103179468B (zh) * 2011-12-22 2018-03-30 海尔集团公司 多媒体数据传输装置、系统及方法
GB2499831B (en) * 2012-03-02 2015-08-05 Canon Kk Method and device for decoding a bitstream
RU2485592C1 (ru) * 2012-03-07 2013-06-20 Федеральное государственное унитарное предприятие "Государственный научно-исследовательский институт авиационных систем" Способ формирования целочисленных неортогональных декоррелирующих матриц заданных размеров и устройство для его осуществления
US9386326B2 (en) 2012-10-05 2016-07-05 Nvidia Corporation Video decoding error concealment techniques
US9479788B2 (en) * 2014-03-17 2016-10-25 Qualcomm Incorporated Systems and methods for low complexity encoding and background detection
JP6481457B2 (ja) * 2015-03-26 2019-03-13 富士通株式会社 動画像符号化装置、動画像符号化方法、動画像復号装置、及び動画像復号方法
US10319408B2 (en) 2015-03-30 2019-06-11 Manufacturing Resources International, Inc. Monolithic display with separately controllable sections
US10922736B2 (en) 2015-05-15 2021-02-16 Manufacturing Resources International, Inc. Smart electronic display for restaurants
US10269156B2 (en) 2015-06-05 2019-04-23 Manufacturing Resources International, Inc. System and method for blending order confirmation over menu board background
EP3347793A4 (en) 2015-09-10 2019-03-06 Manufacturing Resources International, Inc. SYSTEM AND METHOD FOR SYSTEMIC DETECTION OF DISPLAY ERRORS
CN105611290B (zh) * 2015-12-28 2019-03-26 惠州Tcl移动通信有限公司 一种基于移动终端的无线传输图片的处理方法和系统
US10319271B2 (en) 2016-03-22 2019-06-11 Manufacturing Resources International, Inc. Cyclic redundancy check for electronic displays
US10313037B2 (en) 2016-05-31 2019-06-04 Manufacturing Resources International, Inc. Electronic display remote image verification system and method
US10510304B2 (en) 2016-08-10 2019-12-17 Manufacturing Resources International, Inc. Dynamic dimming LED backlight for LCD array
CN107888931B (zh) * 2017-11-28 2020-03-17 上海大学 一种利用视频统计特征预测差错敏感度的方法
US11645029B2 (en) 2018-07-12 2023-05-09 Manufacturing Resources International, Inc. Systems and methods for remotely monitoring electronic displays
US10908863B2 (en) 2018-07-12 2021-02-02 Manufacturing Resources International, Inc. System and method for providing access to co-located operations data for an electronic display
CN109936624B (zh) * 2019-01-31 2022-03-18 平安科技(深圳)有限公司 Http请求报文头的适配方法、装置和计算机设备
US11402940B2 (en) 2019-02-25 2022-08-02 Manufacturing Resources International, Inc. Monitoring the status of a touchscreen
US11137847B2 (en) 2019-02-25 2021-10-05 Manufacturing Resources International, Inc. Monitoring the status of a touchscreen
US11965804B2 (en) 2021-07-28 2024-04-23 Manufacturing Resources International, Inc. Display assemblies with differential pressure sensors
US11921010B2 (en) 2021-07-28 2024-03-05 Manufacturing Resources International, Inc. Display assemblies with differential pressure sensors
US11895362B2 (en) 2021-10-29 2024-02-06 Manufacturing Resources International, Inc. Proof of play for images displayed at electronic displays
US11972672B1 (en) 2022-10-26 2024-04-30 Manufacturing Resources International, Inc. Display assemblies providing open and unlatched alerts, systems and methods for the same

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0286241A (ja) * 1988-09-21 1990-03-27 Nippon Telegr & Teleph Corp <Ntt> 可変レート画像階層符号化伝送方式
US5400076A (en) * 1991-11-30 1995-03-21 Sony Corporation Compressed motion picture signal expander with error concealment
US5440344A (en) * 1992-04-28 1995-08-08 Mitsubishi Denki Kabushiki Kaisha Video encoder using adjacent pixel difference for quantizer control
US5576902A (en) * 1993-01-13 1996-11-19 Hitachi America, Ltd. Method and apparatus directed to processing trick play video data to compensate for intentionally omitted data
JP2679941B2 (ja) * 1993-05-10 1997-11-19 松下電器産業株式会社 ディジタル磁気記録再生装置
KR940026915A (ko) * 1993-05-24 1994-12-10 오오가 노리오 디지탈 비디오신호 기록장치 및 재생장치 및 기록방법
JPH0730896A (ja) 1993-06-25 1995-01-31 Matsushita Electric Ind Co Ltd 動きベクトル符号化及び復号化方法
JPH0730855A (ja) * 1993-07-08 1995-01-31 Sony Corp ビデオデータの記録方法
EP0647066A3 (en) * 1993-09-30 1996-08-14 Toshiba Kk Packet conversion apparatus and system.
US5481297A (en) * 1994-02-25 1996-01-02 At&T Corp. Multipoint digital video communication system
JP3046224B2 (ja) * 1994-07-26 2000-05-29 三星電子株式会社 固定ビット率の符号化方法および装置とこれを利用した高速探索のためのトラッキング方法
JP3474005B2 (ja) 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
JPH08256333A (ja) * 1995-03-16 1996-10-01 Matsushita Electric Ind Co Ltd 画像符号化復号方法及び装置
JPH0973617A (ja) * 1995-09-07 1997-03-18 Sony Corp 回転ヘッド装置
US5883678A (en) * 1995-09-29 1999-03-16 Kabushiki Kaisha Toshiba Video coding and video decoding apparatus for reducing an alpha-map signal at a controlled reduction ratio
US5724369A (en) 1995-10-26 1998-03-03 Motorola Inc. Method and device for concealment and containment of errors in a macroblock-based video codec
JP3400428B2 (ja) * 1996-05-17 2003-04-28 松下電器産業株式会社 画像伝送方法
KR0178756B1 (ko) * 1996-06-29 1999-04-15 김광호 셔플을 위한 최적의 메모리 제어방법 및 그 장치
US6154780A (en) * 1996-12-18 2000-11-28 Intel Corporation Method and apparatus for transmission of a flexible and error resilient video bitstream
GB9703470D0 (en) * 1997-02-19 1997-04-09 Thomson Consumer Electronics Trick play reproduction of MPEG encoded signals
US6639945B2 (en) * 1997-03-14 2003-10-28 Microsoft Corporation Method and apparatus for implementing motion detection in video compression
JP4014263B2 (ja) * 1997-10-01 2007-11-28 松下電器産業株式会社 映像信号変換装置及び映像信号変換方法
US6311297B1 (en) 1997-10-23 2001-10-30 Sony Corporation Apparatus and method for mapping an image to blocks to provide for robust error recovery in a lossy transmission environment
JPH11298878A (ja) * 1998-04-08 1999-10-29 Nec Corp 画像スクランブル方法およびそれを実施する装置
GB2347038A (en) * 1999-02-18 2000-08-23 Nokia Mobile Phones Ltd A video codec using re-transmission
US6754271B1 (en) * 1999-04-15 2004-06-22 Diva Systems Corporation Temporal slice persistence method and apparatus for delivery of interactive program guide
US6115076A (en) 1999-04-20 2000-09-05 C-Cube Semiconductor Ii, Inc. Compressed video recording device with non-destructive effects addition
JP2001078042A (ja) * 1999-09-03 2001-03-23 Fuji Xerox Co Ltd 画像伸長処理装置および画像圧縮処理装置
JP3976975B2 (ja) * 1999-12-22 2007-09-19 キヤノン株式会社 画像処理装置及びその方法と記憶媒体
US6993074B2 (en) * 2000-03-24 2006-01-31 Microsoft Corporation Methods and arrangements for handling concentric mosaic image data
US6721362B2 (en) * 2001-03-30 2004-04-13 Redrock Semiconductor, Ltd. Constrained discrete-cosine-transform coefficients for better error detection in a corrupted MPEG-4 bitstreams

Also Published As

Publication number Publication date
JP4881543B2 (ja) 2012-02-22
NO20161599A1 (no) 2004-04-23
US20030039312A1 (en) 2003-02-27
RU2004105598A (ru) 2005-07-20
NO343205B1 (no) 2018-12-03
EP1421787A1 (en) 2004-05-26
CA2457882C (en) 2009-06-02
NO339116B1 (no) 2016-11-14
KR100691307B1 (ko) 2007-03-12
CA2457882A1 (en) 2003-03-06
ZA200401377B (en) 2005-07-27
IL160476A0 (en) 2004-07-25
JP2012070391A (ja) 2012-04-05
KR20040027982A (ko) 2004-04-01
AU2002326713B2 (en) 2006-12-14
EP1421787A4 (en) 2008-10-08
WO2003019939A1 (en) 2003-03-06
NO20040754L (no) 2004-04-23
BR0212000A (pt) 2004-09-28
RU2291586C2 (ru) 2007-01-10
IL160476A (en) 2009-02-11
NZ531863A (en) 2005-10-28
MXPA04001656A (es) 2004-11-22
CN100581238C (zh) 2010-01-13
CN1679330A (zh) 2005-10-05
US20070230583A1 (en) 2007-10-04
JP2005501488A (ja) 2005-01-13
US7239662B2 (en) 2007-07-03

Similar Documents

Publication Publication Date Title
BRPI0212000B1 (pt) &#34;system and method for processing video data&#34;
US7020203B1 (en) Dynamic intra-coded macroblock refresh interval for video error concealment
AU2002326713A1 (en) System and method for video error concealment
US9661376B2 (en) Video error concealment method
US6611561B1 (en) Video coding
ES2656470T3 (es) Mejora de los diseños de formato de la carga útil de RTP
US20050008240A1 (en) Stitching of video for continuous presence multipoint video conferencing
US20110026592A1 (en) Intra block walk around refresh for h.264
BRPI0011748B1 (pt) método e aparelho de codificação e decodificação, aparelho de comunicação sem fio com codificador incorporado, e, codec de vídeo
US7408991B2 (en) Error detection in low bit-rate video transmission
JP2006524948A (ja) ピクチャをビットストリームにて符号化する方法、ビットストリームからピクチャを復号化する方法、ピクチャをビットストリームにて符号化するエンコーダ、ピクチャをビットストリームにて符号化するエンコーダを備える送信装置およびシステム、ビットストリームからピクチャを復号化するデコーダ、ならびに、ビットストリームからピクチャを復号化するデコーダを備える受信装置およびクライアント
WO2003061284A1 (en) Motion wake identification and control mechanism
Shiu et al. A DCT-domain H. 263 based video combiner for multipoint continuous presence video conferencing
Ghanbari et al. Packet interpolation in two-layer ATM video coding
Côté Low bit rate DCT-based video coding in error-prone environments