MXPA04001656A - Sistema y metodo para ocultar errores de video. - Google Patents

Sistema y metodo para ocultar errores de video.

Info

Publication number
MXPA04001656A
MXPA04001656A MXPA04001656A MXPA04001656A MXPA04001656A MX PA04001656 A MXPA04001656 A MX PA04001656A MX PA04001656 A MXPA04001656 A MX PA04001656A MX PA04001656 A MXPA04001656 A MX PA04001656A MX PA04001656 A MXPA04001656 A MX PA04001656A
Authority
MX
Mexico
Prior art keywords
macroblock
macroblocks
coded
data
given
Prior art date
Application number
MXPA04001656A
Other languages
English (en)
Inventor
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 MXPA04001656A publication Critical patent/MXPA04001656A/es

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Radio Transmission System (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

La presente invencion proporciona, en una modalidad, un sistema y un metodo para ocultar errores de video. El sistema codifica, reordena, y empaqueta informacion de video en paquetes de datos de video para transmitirlos sobre una red de comunicacion, de modo que el sistema oculte los errores causados por paquetes de datos de video perdidos cuando el sistema recibe, desempaqueta, ordena, (915) y descodifica los paquetes de datos. En una modalidad, el sistema y metodo codifica y empaqueta informacion de video, de modo que los macrobloques adyacentes no son colocados en los mismos paquetes de datos de video (925). Adicionalmente, el sistema y metodo puede proporcionar informacion que acompane a los paquetes de datos de video para facilitar el proceso de descodificacion. Una ventaja de ese esquema es que los errores debido a perdidas de paquetes de datos de video son distribuidos espacialmente sobre un cuadro de video. De este modo, si las regiones de datos que rodean un macrobloque perdido son descodificadas exitosamente, el descodificador puede predecir vectores de movimiento y contenido espacial con un alto grado de exactitud, lo cual conduce a una calidad de video mayor.

Description

wo 03/0] 9939 Al ' ??????????????????????????G Publishcd: For two-tetler cades and oll er abbreviaíiom. refer lo Ihe "G id- — w/r/i iniernationaí searc repon ance Notes on Cades andAbbreviatíons" appearing al Ihe bagin- ning of ach regu&r issue cf ¡he PCT Gazette.
SISTEMA Y METODO PARA OCULTAR ERRORES DE VIDEO ANTECEDENTES DE LA INVENCION 1. Campo de la Invención La presente invención se relaciona, de manera general, con la comunicación de video, y de manera más particular con el ocultamiento de errores de video. 2. Descripción de la Técnica Relacionada Las imágenes de video se han vuelto una parte cada vez más importante de la comunicación global. En particular, las videoconferencias y videotelefonía tienen una amplia gama de aplicaciones como conferencias basadas en escritorios y salas, videos sobre la Internet o sobre líneas telefónicas, supervisión y verificación, telemedicina, capacitación basada en computadoras y educación. En cada una de esas aplicaciones, la información en video y audio acompañante es transmitida a través de enlaces de telecomunicación, incluyendo líneas telefónicas, ISDN, DSL, y frecuencias de radio. Un formato de video estándar usado en las videoconferencias es el Formato Intermedio Común (CIF) , el cual es parte del estándar de videoconferencia de la Unión de Telecomunicaciones Internacional (ITU)H.261. El formato CIF principal también es conocido como CIF Completo o FCIF. También han sido establecidos formatos adicionales con resoluciones superiores e inferiores al 2 FCIF. La Figura 1 es una tabla de requerimiento de resolución y velocidad de bits para varios formatos de video bajo la suposición de que requieren 12 bits para representar un pixel de acuerdo a la técnica anterior. Las velocidades de bits (o mega bits por segundo, Mbps) mostradas son para cuadros de color no comprimidos . Actualmente, la transmisión y recepción eficiente de señales de video puede requerir la codificación y compresión de datos de video y audio acompañantes. La codificación de compresión de video es un método para codificar datos de video digital, de modo que se requiera menos memoria para almacenar los datos de video y se reduzca el ancho de banda de transmisión requerido. Ciertos esquemas de compresión/descompresión (CODEC) son frecuentemente usados para comprimir cuadros de video para reducir las velocidades de bits de transmisión requeridas. De este modo, los componentes físicos y programas y sistemas de programación de CODEC permiten que datos de video digital sean comprimidos en un formato binario más pequeño que el requerido por el formato de video digital original (es decir, no comprimido) . Existen varios métodos y estándares convencionales para codificar y comprimir señales de video originales. Algunos estándares están diseñados para una aplicación particular como el JPEG (Grupo de Expertos 3 Fotográficos Unidos) para imágenes estáticas, y H.261, H.263, MPEG (Grupo de Expertos de Imágenes en Movimiento) , MPEG-2, y MPEG-4 para imágenes en movimiento. Esos estándares de codificación, típicamente, usan la predicción compensada por movimiento basada en bloques sobre 16x16 pixeles, comúnmente referidos como macrobloques . Un macrobloque es una unidad de información que contiene cuatro bloques de 8x8 de datos de luminancia y dos bloques de 8x8 correspondientes de datos de cromaticidad de acuerdo con la estructura de muestreo 4:2:0 donde los datos de cromaticidad son submuestreados 2:1 en ambas direcciones vertical y horizontal. Como un aspecto practico, los datos de audio también deben ser comprimidos, transmitidos y sincronizados junto con los datos de video. Los aspectos de la sincronización, multiplexión y protocolo son cubiertos por estándares como el H.320 (videoconferencia basada en ISDN), H.324 (videotelefonía basada en POTS) , y H.323 (videoconferencia basada en LAN o IP) . H.263 (o su predecesor, H.261) proporciona la parte de codificación de video de esos grupos estándares . Un esquema de estimación y compensación de movimiento es un método convencional típicamente usado para reducir los requerimientos de ancho de banda de transmisión para la señal de video. Debido a que el macrobloque es la unidad de datos básica, el esquema de estimación y compensación de movimiento puede comparar un macrobloque dado en un cuadro de video actual con el área que rodea al macrobloque dado en un cuadro de video previamente transmitido, e intenta encontrar una similitud de datos cercana. Típicamente, un macrobloque estrechamente similar en el cuadro de video previamente transmitido está espacialmente desviado del macrobloque dado en menos de un ancho del macrobloque dado. Si se encuentra una similitud de datos cercana, el esquema sustrae el macrobloque dado en el cuadro de video actual del macrobloque desviado, estrechamente similar en el cuadro de video previamente transmitido, de modo que no se necesite codificar y transmitir una diferencia (es decir, residual) y la desviación espacial. La desviación espacial es referida comúnmente como un vector de movimiento. Si el proceso de estimación y compensación del movimiento es eficiente, el macrobloque residual restante deberá contener solo una cantidad de información necesaria para describir datos asociados con pixeles que cambien del cuadro de video previo al cuadro de video actual y un vector de movimiento. De este modo, las áreas de un cuadro de video que no cambian (por ejemplo, el fondo) no son codificadas y transmitidas) . De manera convencional, el estándar H.263 específica que los vectores de movimiento usados para la estimación del movimiento y compensación de movimiento 5 son codificados de manera diferencial. Aunque la codificación diferencial reduce las cantidades de datos requeridas para la transmisión, cualquier error en el cual los datos del vector de movimiento se pierden o corrompan para un macrobloque tiene un impacto negativo sobre macrobloques adyacentes . El resultado es una propagación del error debido a los datos corruptos, lo cual conduce a una calidad de video inferior. Cuando se prepare información del cuadro de video para su transmisión sobre una red de comunicación conmutada por paquetes, los esquemas de codificación transforman la información del cuadro de video, comprimida por técnicas de estimación y compensación de movimiento, en paquetes de datos para su transmisión a través de una red de comunicación. Aunque los paquetes de datos permiten una eficiencia de transmisión mayor, los paquetes de datos perdidos, corrompidos, o retrasados también pueden producir errores generando como resultado una degradación de la calidad de video. De manera alternativa, los datos de video pueden ser transmitidos sobre redes de comunicación heterogéneas en las cuales uno de los puntos finales está asociado con una red conmutada por circuitos y se usa una compuerta u otro dispositivo de enlace de red conmutado por paquetes a conmutado por circuitos. Actualmente, los paquetes de datos perdidos o 6 corrompidos con frecuencia producen una calidad de video menor. Por lo tanto, existe la necesidad de un sistema y método que organice y transmita paquetes de datos para ocultar errores causados por la pérdida de paquetes de datos .
SUMARIO DE LA INVENCION El presente sistema y método supera o alivia sustancialmente problemas anteriores asociados con la pérdida de paquetes de datos de video. En general, la presente invención proporciona un sistema y un método que codifica, reordena, y empaqueta información de video para su transmisión a través de una red conmutada por paquetes con la capacidad de ocultar errores de video causados por pérdidas de paquete de datos de video. En una modalidad ejemplar, las señales de video son codificadas en conjuntos de macrobloques. Un motor para reordenar macrobloques asigna entonces marcas enteras llamadas identificadores de grupos de macrobloques (MBGID) a cada macrobloque. De manera ventajosa, a los macrobloques adyacentes no se les asignan MBGID idénticos en una modalidad ejemplar. Un motor para empaquetar macrobloques permite entonces empaquetar los macrobloques, de modo que los macrobloques a los que se le asignaron ambos MBGID idénticos sean empaquetados juntos. Para modalidades de la invención en 7 las cuales macrobloques adyacentes no se les asignan MBGID idénticos, se sigue que los macrobloques espacialmente adyacentes no son empaquetados juntos. Adicionalmente , pueden ser incorporados datos correspondientes, como un mapa intramacrobloques , en un encabezado de imagen o transportados por algún otro mecanismo para facilitar un proceso de descodificación correspondiente . En otra modalidad más de la invención, cuando un motor de procesamiento de imágenes recibe paquetes de datos que contienen macrobloques codificados, los paquetes de datos son desempaquetados, y los macrobloques codificados son ordenados y descodificados. En una modalidad alternativa, el motor procesador de imágenes desempaqueta los paquetes de datos recibidos, entonces decodifica los macrobloques en un orden en el cual fueron recibidos para reducir el retraso de procesamiento. Si uno o más paquetes de datos se pierden, los datos que acompañan a los macrobloques de los paquetes de datos transmitidos exitosamente son usados para atenuar los efectos de los paquetes de datos perdidos . Varios métodos basados en si los macrobloques perdidos estaban intracodificados o intercodificados compensan los macrobloques ausentes. Tras la compensación, la señal de video puede entonces ser desplegada. Como resultado, el sistema y método de la presente es capaz de ocultar 8 errores de video resultantes de la pérdida de paquetes de datos .
BREVE DESCRIPCION DE LOS DIBUJOS La Figura 1 es una tabla de los requerimientos de resolución y velocidad de datos para varios formatos de video, de acuerdo a la técnica anterior; la Figura 2 es un diagrama de bloques de un sistema de videoconferencia ejemplar, de acuerdo a la presente invención; la Figura 3 es un diagrama de bloques de una estación de videoconferencia ejemplar del sistema de videoconferencia de la Figura 2; la Figura 4 es un diagrama de bloques de una modalidad ejemplar del motor procesador de imágenes de la Figura 3 ; la Figura 5 es un diagrama ejemplar de un patrón de reordenamiento de macrobloques para un cuadro de video con formato QCIF, donde cada número es un MBGID asignado a un macrobloque en una ubicación espacial correspondiente ; la Figura 6 es un diagrama ejemplar del patrón de reordenamiento de macrobloques de cuadro QCIF de la Figura 5, donde un paquete de datos que contiene datos de macrobloque codificados para macrobloques con MBGID = 5 se perdió; la Figura 7 es un diagrama de bloques de un esquema de interpolación bidimensional que usa datos asociados con pixeles ubicados en macrobloques adyacentes, de acuerdo a una modalidad de la presente invención; la Figura 8 es un diagrama de bloques ejemplar de macrobloques adyacentes usados para estimar el vector de movimiento del macrobloques perdido m, de acuerdo a la presente invención; la Figura 9 es un diagrama de flujo ejemplar de los pasos del método para el procesamiento de datos de video, de acuerdo a una modalidad de la presente invención; y la Figura 10 es un diagrama de flujo ejemplar de los pasos del método para el ocultamiento de errores de video cuando se reciben datos de video, de acuerdo a la presente invención.
DESCRIPCION DETALLADA DE LOS DIBUJOS La presente invención oculta errores en señales de video causados por pérdida de paquetes de datos . El sistema y método de la presente se aparta de las tecnologías existentes al empaquetar macrobloques en un orden flexible (por ejemplo, sin exploración de trama) en un cuadro de video . En contraste con los estándares de codificación de video existentes, los macrobloques son 10 empaquetados en un orden especificado por un patrón de reordenamiento de macrobloques . Además, los vectores de movimiento para cada macrobloque pueden ser codificados de manera no diferencial. Esas mejoras buscan atenuar las perturbaciones causadas por pérdidas de paquetes de datos a través de un enlace de comunicación. El alcance de la presente invención cubre una variedad de estándares de video, incluyendo, pero sin limitarse a, H.261, H.263, H.264, MPEG, MPEG-2, y PEG-4. La FIGURA 2 ilustra un sistema de video conferencias ejemplar 200. El sistema de video conferencias 200 incluye una estación de video conferencia local 202 y una estación de video conferencia remota 204 conectadas a través de una red 206. Aunque la FIGURA 2 únicamente muestra dos estaciones de video conferencia 202 y 204, aquellos expertos en la técnica reconocerán que pueden ser acopladas mas estaciones de video conferencias al sistema de video conferencia 200. Deberá notarse que el sistema y método de la presente deberá ser utilizado en cualquier sistema de comunicación donde sean transmitidos datos de video sobre una red. La red puede ser cualquier tipo de medio de transmisión electrónico, como, pero sin limitarse a, POTS, cable, fibra óptica y medios de transmisión de radio. La FIGURA 3 es un diagrama de bloques de una estación de video conferencias ejemplar 300. Por 11 simplicidad, la estación de video conferencia 300 será descrita como la estación de video conferencias local 202 (FIGURA 2) , aunque la estación de video conferencias remota 204 (FIGURA 2) puede contener una configuración similar. En una modalidad, la estación de video conferencias 300 incluye un dispositivo de representación visual 302, una CPU 304, una memoria 306, al menos un dispositivo de captura de video 308, un motor procesador de imágenes 310 y una interconexión de comunicación 312. De manera alternativa, pueden ser proporcionados otros dispositivos en la estación de video conferencias 300, o no todos los dispositivos nombrados anteriormente son proporcionados . Puede ser implementado al menos un dispositivo de captura de video 308 como una cámara de dispositivo acoplado por carga (CCD) , una cámara semiconductora de óxido de metal complementaria (CMOS) , o cualquier otro tipo de dispositivo de captura de imágenes. Al menos un dispositivo de captura de video 308 captura imágenes de un usuario, sala de conferencias, u otras escenas, y envía las imágenes al motor procesador de imágenes 310. Típicamente, el motor procesador de imágenes 310 procesa la imagen de video en paquetes de datos antes de que la interconexión de comunicación 312 transmita los paquetes de datos a la estación de video conferencia remota 204. El motor procesador de imágenes 310 será discutido con mayor detalle con relación a la 12 FIGURA 4. Por el contrario, el motor procesador de imágenes 310 también transforma paquetes de datos recibidos de la estación de video conferencias remota 204 en una señal de video para presentarlos sobre el dispositivo de representación visual 302. La FIGURA 4 es una modalidad ejemplar del motor procesador de imágenes 310 de la Figura 3. El motor procesador de imágenes 310 incluye un motor de codificación 402, un motor de reordenamiento de macrobloques 404, un motor para empaquetar macrobloques 406, y una memoria intermedia de comunicación 408. Inicialmente, una señal de video del dispositivo de captura de video 308 (FIGURA 3) entra al motor de codificación 402, el cual convierte cada cuadro de video en un formato deseado, y transforma cada cuadro de la señal de video en un conjunto de macrobloques. Un macrobloque es una unidad de datos que contiene bloques de datos que comprende un componente de luminancia y cromaticidad asociados con elementos de imágenes (también referidos como pixeles) . Por ejemplo, en el H.263, un macrobloque consiste de cuatro bloques de 8x8 de datos de luminancia y dos bloques de 8x8 correspondientes de datos de cromaticidad en un formato de muestreo de cromaticidad de 4:2:0. Un bloque de datos de 8x8 es una matriz de ocho columnas por ocho renglones de datos, donde cada uno de los datos corresponde a un pixel del cuadro de video. Un 13 macrobloque con formato de cromaticidad de 4:2:0 comprende datos que cubren una sección de 16 pixeles por 16 pixeles del cuadro de video. Sin embargo, la presente invención no se limita a macrobloques como se define de manera convencional, sino que puede extenderse a cualquier unidad de datos que comprenda datos de luminancia y/o cromaticidad. Además, el alcance de la presente invención cubre otros formatos de muestreo, como el formato de muestreo de cromaticidad de 4:2:2 que comprende cuatro bloques de 8x8 de datos de luminancia y cuatro bloques de 8x8 correspondientes de datos de cromaticidad, o un formato de muestreo de cromaticidad de 4:4:4 que comprende cuatro bloques de 8x8 de datos de luminancia y ocho bloques de 8x8 correspondientes de datos de cromaticidad. Además, el motor de codificación 402 codifica (es decir, comprime) cada macrobloque para reducir el número de bits usados para representar el contenido de datos. Cada macrobloque puede ser "intracodificado" o "intercodificado" , y un cuadro puede estar comprendido de cualquier combinación de macrobloques intracodificados e intercodificados . Los macrobloques intercodificados son codificados usando similitudes temporales (es decir, similitudes que existen entre un macrobloque de un cuadro y un macrobloque estrechamente similar de un cuadro previo) . Específicamente, un macrobloque intercodificado 14 dado comprende diferencias codificadas entre el macrobloque dado y un macrobloque estrechamente similar de un cuadro de video previo . El macrobloque estrechamente similar del cuadro de video previo puede comprender datos asociados con pixeles que estén desviados de los pixeles asociados con el macrobloque dado. De manera alternativa, los macrobloques intracodificados son codificados sin el uso de información de otros cuadros de ' video en una forma similar a la empleada por el estándar de codificación de imágenes estáticas JPEG. Por ejemplo, para determinar si un macrobloque dado puede ser codificado como un macrobloque intercodificado, el motor de codificación 402 calcula diferencias entre datos del macrobloque dado de un cuadro de video actual con datos de un macrobloque de un cuadro de video previo (referido como un macrobloque desviado) , donde las diferencias pueden ser determinadas, por ejemplo, por un error absoluto medio o un error cuadrado medio entre los datos correspondientes a los pixeles localizados en posiciones colocalizadas dentro de los macrobloques. Para el macrobloque dado, el motor de codificación 402 calcula errores para una pluralidad de macrobloques desviados. Si el motor de codificación 402 únicamente encuentra errores mayores que un valor umbral de diferencia predeterminado, entonces no existen 15 similitudes significativas entre los datos del macrobloque dado y los datos del cuadro anterior, y el macrobloque es intracodificado . Sin embargo, si se encuentra que un error es menor que el valor umbral de diferencia predeterminado para el macrobloque dado y un macrobloque desviado dado del cuadro anterior, entonces el macrobloque dado es intercodificado . Para intercodificar el macrobloque dado, el motor de codificación 402 sustrae los datos del macrobloque dado de los datos del macrobloque desviado (es decir, que los datos de luminancia y cromaticidad asociados con un pixel del macrobloque dado son sustraídos de los datos de luminancia y cromaticidad asociados con un pixel correspondiente del macrobloque desviado por cada pixel) para dar los datos de la diferencia, codifica los datos de la diferencia usando técnicas de codificación estándar como la Transformación Cosinusoidal Discreta y métodos de cuantización entre otros, determina un vector de desviación del macrobloque dado para el macrobloque desviado (referido como un vector de movimiento) , y codifica el vector de movimiento . Actualmente, los estándares de codificación de video, como el H.261 y H.263, especifica que los vectores de movimiento de macrobloques intercodificados son codificados de manera diferencial para mejorar la 16 eficiencia de la codificación. Sin embargo, la codificación diferencial produce errores creados por datos de vectores de movimiento perdidos o corrompidos que se propagan a macrobloques adyacentes que en otras circunstancias serían descodificados sin error, puesto que los datos del vector de movimiento codificados asociados con un macrobloque dado, en general, no dependen de los datos del vector de movimiento de macrobloques vecinos. De este modo, los efectos de los datos del vector de movimiento de un macrobloque dado no son localizados espacialmente para el macrobloque dado. Sin embargo, si los vectores de movimiento de cada macrobloque intercodificado no son codificados diferencialmente , entonces se localizan los efectos de los datos del vector de movimiento para el macrobloque dado, dando como resultado un incremento significativo en la resilencia del error. En la mayoría de los casos, un cambio en el método de codificación del vector de movimiento de una técnica diferencial a una no diferencial da como resultado una pérdida menor en la eficiencia de la codificación total (típicamente menos de un por ciento pequeño) . De manera ventajosa, los componentes del vector de movimiento asociados con cada macrobloque intercodificado, contrario a los métodos convencionales, no son codificados de manera diferencial, de acuerdo a una modalidad de la presente invención. 17 En otra modalidad de la invención, el motor de codificación 402 puede intracodificar macrobloques de un cuadro usando un mecanismo de "renovación aproximada" . El mecanismo de "renovación aproximada" es un mecanismo determinístico para limpiar desajustes del cuadro de referencia, llamado arrastre de datos, intracodificando un patrón específico de macrobloques de cada cuadro. El motor de codificación 402 usa macrobloques de un cuadro de referencia como macrobloques desviados para descodificar macrobloques intercodificados de un cuadro actual. En una modalidad de la invención, el mecanismo de "renovación aproximada" permite intracodificar un patrón de macrobloques usando un intervalo de aproximación entero w seleccionado de un conjunto de intervalos de aproximación enteros predeterminados. Por ejemplo, si w=47, entonces el motor de codificación 402 intercodifica cada wesimo macrobloque . El intervalo de aproximación por redondeo puede ser seleccionado sobre la base de las velocidades de transmisión de datos de video y porcentajes de error. Cuando los macrobloques intracodificados por "renovación aproximada" son recibidos por el motor de codificación de la estación de video conferencias remota 204 (FIGURA 2) , esos macrobloques intracodificados por "renovación aproximada" reemplazan los macrobloques correspondientes de cuadros previos que pueden estar corrompidos debido a errores de 18 transmisión de datos de video. Cualquier macrobloque puede ser corrompido debido a que los errores de transmisión de datos de video (que no están reemplazados) se propagan más y posiblemente magnifican el arrastre de datos cuando el motor de codificación de la estación de video conferencia remota 204 usa los macrobloques corrompidos como macrobloques de referencia para descodificar otros macrobloques recibidos. De este modo, los macrobloques intracodificados por "renovación aproximada" proporcionan al motor de codificación de la estación de video conferencias remota 204 un conjunto "renovado" de macrobloques intracodificados para ser usados como macrobloques de referencia, reduciendo por lo tanto la propagación del arrastre de datos . Además, el motor de codificación 402 puede generar un mapa intramacrobloques que identifique cuales macrobloqes en un cuadro de video codificado estén intracodificados . Después de que se genera el mapa intramacrobloques, el motor procesador de imágenes 310 envía el mapa a la estación de video conferencias remota 204. El mapa puede ser enviado como parte de un campo de encabezado de imagen asociado con el cuadro de video codificado, por ejemplo, aunque pueden ser usados otros campos . De acuerdo a la presente invención, el motor de codificación 402 puede generar el mapa intramacrobloques 19 en una de dos formas. En una modalidad de la invención, el motor de codificación 402 usa la codificación de longitud de serie para describir lugares de macrobloques intracodificados dentro del cuadro. La codificación de longitud de serie es una técnica para reducir el tamaño de una secuencia ordenada repetida de caracteres. En otra modalidad de la invención, el motor de codificación 402 genera un mapa de bits, donde cada bit en el mapa de bits corresponde a un macrobloque del cuadro. Un valor de bit identifica un tipo de codificación de macrobloque correspondiente. Por ejemplo, en una modalidad de la invención, un bit "1" significa que un macrobloque correspondiente está intracodificado . En otra modalidad de la invención, un bit "1" significa que el macrobloque correspondiente está intercodificado . Pueden ser contemplados otros métodos para generar el mapa intramacrobloques para usarse en la presente invención. En otra modalidad más de la invención, el motor de codificación 402 selecciona el método de codificación del mapa intramacrobloques que produce el menor número de bits. Por ejemplo, un cuadro de video FCIF de 352x288 pixeles (es decir, una resolución horizontal de 352 pixeles por una resolución vertical de 288 pixeles) comprende 396 macrobloques configurados como una matriz de 22x18 macrobloques. Sin incluir ninguna sobrecarga de bits que pueda ser requerida, el método de codificación 20 del mapa de bits requiere 396 bits (un bit por cada macrobloque) . De este modo, los 396 bits son usados para transmitir el mapa intramacrobloques codificado por el mapa de bits, independientemente del número de macrobloques intracodificados dentro del cuadro FCIF. En contraste, sin embargo, el número de bits utilizados para transmitir el mapa intramacrobloques codificado por longitud de serie depende del número de macrobloques intracodificados dentro del cuadro FCIF. El costo de transmitir un mapa intramacrobloques codificado por longitud de serie es de ocho bits por macrobloque intracodificado (es decir, ocho bits por valor de serie) , donde el valor de serie identifica la ubicación del macrobloque intracodificado dentro del cuadro FCIF. Por lo tanto, si el cuadro FCIF contiene n macrobloques intracodificados , se requieren 8 n bits para transferir el mapa intramacrobloques codificados por longitud de serie. < De este modo, si el cuadro CIF contiene menos de 50 macrobloques intracodificados (n<50) , entonces el motor de codificación de origen 402 selecciona el método de codificación por longitud de serie, de otro modo el motor de codificación de origen 402 selecciona el método de codificación por mapa de bits. La selección de un método de codificación del mapa intramacrobloques depende del formato de video, del cual el cuadro de video FCIF es un ejemplo. Posteriormente, los macrobloques codificados son enviados al motor de reordenamiento de macrobloques 404. El motor de reordenamiento de macrobloques 404 reordena los macrobloques codificados. Específicamente, a cada macrobloque se le asigna un identificador de grupo de macrobloques ( BGID) de una pluralidad de MBGID. En una modalidad ejemplar, los macrobloques son numerados del uno al seis de acuerdo a un patrón de asignación de macrobloque ejemplar ilustrado en la FIGURA 5 para un cuadro con formato QCIF que tenga nueve renglones de once macrobloques por renglón. El MBGID máximo es referido como un identificador de grupo máximo (MGID) . En la modalidad ejemplar de la FIGURA 5, el MGID=6. Como se muestra, los MBGID son asignados de tal manera que minimicen los macrobloques adyacentes a los que se les asignó el mismo MBGID. De manera alternativa, otros patrones de asignación pueden asignar el mismo MBGID a macrobloques adyacentes o en cualquier otro orden de asignación. Como se discutirá mejor más adelante en conjunto con la FIGURA 6, la asignación de macrobloques, debido a que a los macrobloques adyacentes no se les asigna el mismo MBGID, se minimiza, de manera ventajosa, una concentración de errores en una región de un cuadro debido a que los macrobloques de un paquete de- datos 22 perdido están distribuidos especialmente a través del cuadro. Puesto que es probable que los errores debido a paquetes perdidos se concentren en una región del cuadro, los datos perdidos asociados con los macrobloques perdidos pueden ser reconstruidos de manera más exacta usando los datos de macrobloques vecinos . En otras palabras, la interpolación espacial de los datos de los macrobloques vecinos o una estimación de vectores de movimiento de macrobloques perdidos son determinadas más exactamente, si la pérdida de datos no se localiza espacialmente dentro del cuadro. El motor de codificación 402 (FIGURA 4) del motor procesador de imágenes 310 (FIGURA 3) de la estación de video conferencia remota 204 (FIGURA 2) pueden usar una variedad de técnicas para ocultar errores en conjunto con el reordenamiento de macrobloques para mejorar la calidad del video. Por ejemplo, en una modalidad de la invención, el motor de codificación 402 descodifica los macrobloques vecinos de un macrobloque intercodificado perdido, estima un motor de movimiento del macrobloque perdido, y usa entonces el vector de movimiento estimado para reconstruir los datos del macrobloque perdido. En otra modalidad de la invención, el motor de codificación 402 puede descodificar los macrobloques vecinos de un macrobloque intracodificado perdido, e interpolar espacialmente los datos vecinos 23 descodificados para reconstruir los datos perdidos. El alcance de la presente invención cubre otras técnicas para ocultar errores usadas en conjunto con el reordenamiento de los macrobloques para mejorar la calidad de video debido a macrobloques perdidos o corrompidos . Pueden ser utilizados diferentes patrones de reordenamiento y MBGID de acuerdo a la presente invención. En una modalidad de la invención, el motor de reordenamiento de macrobloques 404 selecciona un MGID sobre la base de las velocidades de datos de video/formato de video . Refiriéndose a la FIGURA 4, una vez que a los macrobloques se les han asignado MBGID, el motor de empaquetamiento de macrobloques 406 coloca los macrobloques en paquetes de datos discretos de acuerdo a sus MBGID. De este modo, los macrobloques con el mismos MBGID (por ejemplo, MBGID=1) serían colocados en un paquete de datos discreto, común (por ejemplo, el paquete de datos 1) . Refiriéndose a la modalidad ejemplar de la FIGURA 5 de la invención, el motor de empaquetamiento 406 coloca los macrobloques en seis paquetes de datos por cuadro QCIF. Sin embargo, el motor de empaquetamiento 406 puede usar más de un paquete con un MBGID dado para transportar macrobloques con el MBGID dado. Por ejemplo, el motor de empaquetamiento 406 puede crear un primer 24 paquete de datos 1 que comprende una porción de los macrobloques con MBGID=1 y un segundo paquete de datos 1 que comprenda el resto de los macrobloques con MBGID =1. La división de los paquetes de esta manera es gobernada típicamente por un tamaño de unidad de transferencia máximo (MTU) asociado con la red 206 (FIGURA 2) . Posteriormente, los paquetes de datos y encabezados de imágenes son enviados a la memoria intermedia de comunicación 408 para su transmisión a través de la red 206 (FIGURA 2) por la interconexión de comunicación 312 (FIGURA 3) . Para promover una mayor flexibilidad contra la pérdida de paquetes, el encabezado de la imagen puede ser transmitido más de una vez por cuadro. El encabezado de imagen puede incluir el mapa intramacrobloques . Por el contrario, el motor procesador de imágenes 310 también procesa paquetes de datos de video recibidos desde un lugar remoto y proporciona señales de video para su visualización . Inicialmente, los paquetes de datos de video son recibidos por la interconexión de comunicación 302 (FIGURA 3) , y enviados a la memoria intermedia de comunicación 408. Los paquetes de datos de video son entonces enviados al motor de empaquetamiento de macrobloques 406, el cual desempaqueta los macrobloques. A continuación, el motor de reordenamiento de macrobloques 404 reordena los macrobloques nuevamente 25 en su patrón ordenado, original (es decir, el patrón antes del reordenamiento de los macrobloques en la estación de video conferencia remota 204, que es típicamente la exploración de trama (FIGURA 2) . Posteriormente, el motor de codificación 402 funciona como un decodificador, y determina si un paquete de datos de video se perdió en tránsito a través de la red 206. La FIGURA 6 es un diagrama del patrón de reordenamiento de macrobloques de cuadro QCIF de la FIGURA 5, cuando un paquete de datos que contiene datos de macrobloques codificados por macrobloques con BGID=5 se perdió. Los macrobloques perdidos están marcados con una "x" . Deberá notarse que los macrobloques perdidos son distribuidos de manera ventajosa espacialmente a través del cuadro QCIF, de acuerdo a una modalidad de la presente invención, esto permite técnicas para ocultar errores, exactas, de baja complejidad, que emplean métodos como la interpolación espacial o estimación y compensación de vectores de movimiento. Aunque la FIGURA 6 ilustra un solo paquete de datos ausente por conveniencia de la discusión, el alcance de la presente invención cubre el ocultamiento de errores cuando cualquier número de paquetes de datos se corrompen o pierden durante el tránsito. Deberá notarse además que aunque son descritos los mismos componentes aquí como si fueran usados para ambas funciones de transmisión y 26 recepción, los componentes pueden ser incorporados en dispositivos receptores y transmisores separados. Refiriéndose nuevamente a la FIGURA 4, por cada macrobloque perdido, el motor de codificación 402 determina si el macrobloque perdido está intracodificado o intercodificado . Por ejemplo, el motor de codificación 402 puede examinar el mapa intramacrobloques para determinar si el macrobloque perdido está intracodificado . Como se mencionó anteriormente, el mapa intramacrobloques puede ser enviado en campos de encabezado de imagen o como información lateral transportada fuera de un flujo de video, y puede ser comprimido usando el algoritmo de codificación de longitud de serie, configurado como un mapa de bits que identifica macrobloques intracodificados , o algún otro método de codificación eficiente. Si los macrobloques perdidos están intracodificados , entonces pueden ser utilizadas varias técnicas para ocultar errores. Por ejemplo, si el macrobloque perdido es intracodificado como parte de un mecanismos de "renovación aproximada", el motor de codificación 402 reemplaza el macrobloque perdido con el contenido de un macrobloque "correspondiente" de un cuadro previo, donde dos macrobloques "correspondientes" cubren la misma área espacial de sus cuadros respectivos.
De acuerdo a la presente invención, la velocidad de 27 limpieza del mecanismo de "renovación aproximada" es función de las velocidades de datos y porcentajes de error . De manera alternativa, si un macrobloque intracodificado perdido no es codificado como parte de un mecanismo de "renovación aproximada" , entonces el motor de codificación 402 interpola espacialmente el contenido del macrobloque perdido a partir de los macrobloques adyacentes. En una modalidad de la invención, cada bloque de 8x8 del macrobloque perdido es interpolado espacialmente de los dos bloques más cercanos localizados en macrobloques adyacentes. La FIGURA 7 ilustra un esquema de interpolación ejemplar usando datos asociados con pixeles localizados en macrobloques adyacentes. La FIGURA 7 incluye un macrobloque perdido 705, un macrobloque adyacente izquierdo 710, un macrobloque adyacente superior 715, y un macrobloque adyacente derecho 720. Por ejemplo, para reconstruir (es decir, interpolar) datos de un bloque izquierdo superior de 8x8 725 del macrobloque de 16x16 perdido 705, el motor de codificación 402 (FIGURA 4) interpola datos en una última columna de datos 730 (indicado por x) de un bloque derecho superior de 8x8 735 del macrobloque adyacente izquierdo 710, y datos en un último renglón de datos 740 (indicados por una x) de un bloque izquierdo inferior de 8x8 745 del macrobloque adyacente superior 715. 28 De manera similar, para reconstruir datos de un bloque superior derecho de 8x8 750 del macrobloque perdido 705, el motor de codificación 402 interpola datos en una primera columna de datos 755 de un bloque superior izquierdo de 8x8 760 del macrobloque adyacente derecho 720, y datos en un último renglón de datos 765 de un bloque inferior derecho de 8x8 770 del macrobloque adyacente superior 715. También pueden ser aplicadas otras formas de interpolación y pueden ser utilizados otros bloques de macrobloques adyacentes, y estar dentro del alcance de la presente invención. Si el macrobloque perdido es intercodificado, entonces el motor de codificación 402 calcula un estimado del vector de movimiento del macrobloque perdido examinando los vectores de movimiento de macrobloques adyacentes . La FIGURA 8 es un diagrama de bloques de macrobloques adyacentes usados para estimar el vector de movimiento del macrobloque perdido m, de acuerdo a una modalidad de la presente invención. Para el macrobloque perdido m, se calcula la mediana de los vectores de movimiento de tres macrobloques vecinos, a, b y c. Por ejemplo, el componente x del vector de movimiento estimado del macrobloque MVmx= mediana (MVax, MVbx/ MVCX) y el componente y del vector de movimiento estimado de los macrobloques m es MVmy=mediana (MVay, MVby, MVcy) , donde MVax, MVbx, MVCX son los componentes en x del vector de 29 movimiento de los macrobloqu.es a, b y c, respectivamente, y MVay, MVby, Vcy son los componentes y de los vectores de movimiento de los macrobloques a, b y c, respectivamente. Aunque la modalidad de la FIGURA 8 de la invención usa vectores de movimiento de los macrobloques adyacentes a, b y c para calcular un vector de movimiento estimado para el macrobloque m, puede ser usado cualquier número y cualquier combinación de macrobloques adyacentes para estimar un vector de movimiento de macrobloque perdido. Una vez que el vector de movimiento del macrobloque perdido es estimado, el motor de codificación 402 (FIGURA 4) compensa por movimiento el macrobloque perdido usando el vector de movimiento estimado para reconstruir el contenido de datos de macrobloque perdido. Después de que el contenido de datos de todos los macrobloques de un cuadro dado es reconstruido, el motor de codificación 402 transforma los macrobloques en una señal de video para presentarlas sobre el dispositivo de representación visual 302 (FIGURA 3) . Aunque se ilustra con solo un paquete de datos perdido, la presente invención puede ser utilizada para ocultar errores con paquetes de datos perdidos múltiples . La FIGURA 9 es un diagrama de flujo ejemplar 900 de los pasos del método para ocultar errores de video cuando se transmiten datos de video sobre redes conmutadas por paquetes, de acuerdo a una modalidad de la 30 presente invención. En el paso 905, el dispositivo de captura de video 308 (FIGURA 3) captura una imagen de video y genera una señal de video. A continuación, en el paso 910, el motor de codificación 402 (FIGURA 4) (también se refiere a un codificador cuando se procesan datos para su transmisión) recibe la señal de video y transforma la señal de video en uno o más macrobloques intracodificados e intercodificados . Un cuadro de video puede comprender macrobloques intercodificados , macrobloques intracodificados , o cualquier combinación de macrobloques intracodificados o intercodificados . En una modalidad de la invención, se permite que un mecanismo de "renovación aproximada" para intracodificar un patrón de macrobloques usando un intervalo de aproximación seleccionado de un conjunto de intervalos de aproximación predeterminados . El intervalo de aproximación puede ser seleccionado sobre la base de las velocidades de datos de video y porcentajes de error. Además, el motor de codificación 402 calcula un vector de movimiento codificado de manera no diferencial por cada macrobloque intercodificado . Posteriormente, en el paso 915, el motor de codificación 402 genera un mapa intramacrobloques que identifica lugares de los macrobloques intracodificados . En una modalidad de la presente invención, el mapa intramacrobloques es codificado usando un método de 31 codificación de longitud de serie o un método de codificación de mapa de bits basado en el número total de bits requeridos para codificar el mapa intramacrobloques . A continuación, un motor de reordenamiento de macrobloques 404 (FIGURA 4) asigna a cada macrobloque un MBGID en el paso 920. Por ejemplo, los macrobloques se les pueden asignar MBGID en un patrón como el que se muestra en la FIGURA 5. En una modalidad, los macrobloques son asignados para minimizar macrobloques adyacentes a los que se les haya asignado los mismos MBGID. De manera alternativa, otras modalidades pueden contemplar asignar a los macrobloques adyacentes los mismos MBGID. Posteriormente, el motor empaquetador de macrobloques 406 (FIGURA 4) crea paquetes de datos discretos y coloca los macrobloques en paquetes de datos discretos de acuerdo a su MBGID en el paso 925. Por ejemplo, los macrobloques con el mismo MBGID serían colocados en un paquete de datos discreto común. De manera alternativa, el motor empaquetador de macrobloques 406 puede ser un motor de transporte para colocar a macrobloques en un formato particular para transportarlos sobre una red conmutada por circuitos. Finalmente, en el paso 930, los paquetes de datos y el encabezado de imagen (incluyendo el mapa intramacrobloques) son enviados a la memoria intermedia de comunicación 408 (FIGURA 4) para su 32 transmisión a la estación de video conferencias remota 204 (FIGURA 2) . La FIGURA 10 es un diagrama de flujo ejemplar 1000 de los pasos del método para ocultar errores de video cuando se reciben datos de video, de acuerdo a la presente invención. En el paso 1005, la memoria intermedia de comunicación 405 (FIGURA 4) recibe paquetes de datos transmitidos de la estación de video conferencia remota 304 (FIGURA 2) vía la red 206 (FIGURA 2) . A continuación, en el paso 1010, el motor empaquetador de macrobloques 406 (FIGURA 4) desempaqueta los paquetes de datos recibidos en macrobloques. Posteriormente en el paso 1015, el motor de reordenamiento de macrobloques 404 (FIGURA 4) ordena los macrobloques y coloca los macrobloques en la configuración espacial apropiada dentro de un cuadro de video . A continuación, el motor de codificación 402 (Figura 4) descodifica los macrobloques en el paso 1020. El motor de codificación 402 (que funciona como un descodificador) o alguno otro mecanismo relacionado con la transformación de paquetes de datos de video (por ejemplo, números de secuencia de RTP) determina si cualesquíer macrobloques que comprendan el cuadro de video están ausentes en el paso 1025. Los macrobloques se pierden si uno o más paquetes de datos de video se pierden o son corrompidos vía la transmisión de los paquetes de datos de video sobre la red 206. Si, en el paso 1025, se determina que no están ausentes los macrobloques, entonces los macrobloques son presentados por el dispositivo de representación visual 302 (Figura 3) en el paso 1030. Sin embargo, si en el paso 1025, se determina que uno o más macrobloques están ausentes, entonces los datos asociados con uno o más de los macrobloques ausentes son reconstruidos, sobre la base del tipo de codificación del macrobloque, en el paso 1035. El motor de codificación 402 puede ser usado para trazar el mapa intramacrobloques para determinar el tipo de codificación de cada uno de los macrobloques perdidos. Por ejemplo, si el macrobloque perdido es intracodificado como parte del mecanismo de "renovación aproximada", entonces el motor de codificación 402 reemplaza el contenido del macrobloque perdido con el contenido de datos de un macrobloque correspondiente de un cuadro previo. De manera alternativa, si un macrobloque intracodificado perdido no es codificado como parte del mecanismo de "renovación aproximada" , entonces el contenido del macrobloque perdido es interpolado espacialmente de los macrobloques adyacentes vecinos más cercanos. En una modalidad de la presente invención, el motor de codificación 402 usa una interpolación bidimensional para interpolar datos de los macrobloques adyacentes (Figura 7) . 34 De manera alternativa, si el macrobloque perdido es intercodificado, entonces el motor de codificación 402 estima el vector del movimiento del macrobloque perdido examinando los vectores de movimiento de macrobloques adyacentes. En una modalidad de la invención, los vectores de movimiento son calculados como la mediana de tres vectores de movimiento de macrobloques vecinos (Figura B) . El motor de codificación 402 usa entonces el vector de movimiento estimado para compensar contenido de datos del macrobloque perdido reconstruyendo un estimado de contenido de datos del macrobloque perdido. Una vez que el contenido de datos de los macrobloques perdidos ha sido reconstruido, los macrobloques son presentados por el dispositivo de representación visual 302, en el paso 1025. La invención ha sido explicada anteriormente con referencia a modalidades ejemplares. Será evidente a aquellos expertos en la técnica que pueden hacerse varias modificaciones a esta sin apartarse del espíritu y alcance más amplio de la invención. Además, aunque la invención ha sido descrita en el contexto de su implementación en ambientes particulares y para aplicaciones particulares, aquellos expertos en la técnica reconocerán que la actividad de la presente invención no se limita a esta y que la invención puede ser utilizada de manera benéfica en cualquier número de

Claims (1)

  1. NOVEDAD DE LA INVENCION Habiéndose descrito la invención como antecede, se reclama como propiedad lo contenido en las siguientes : REIVIND CACIONE5 1. Un sistema para procesar datos de video, caracterizado porque comprende: un motor de codificación para procesar cada cuadro de una señal de video para generar macrobloques y para codificar los macrobloques; un motor para reordenar macrobloques para asignar un identificador de grupo de macrobloque (MBGID) de una pluralidad de MBGID a cada macrobloque codificado; y un motor empaquetador de macrobloques para colocar cada uno de los macrobloques codificados en un paquete de datos particular de acuerdo al MBGID. 2. El sistema de conformidad con la reivindicación 1, caracterizado porque el motor reordenador de macrobloques asigna un MBGID diferente a macrobloques codificados adyacentes. 3. El sistema de conformidad con la reivindicación 1, caracterizado porque el motor de codificación genera vectores de movimiento codificados de manera no diferencial por cada uno de los macrobloques codificados que son un macrobloque intercodificado . . El sistema de conformidad con la reivindicación 1, caracterizado porque el motor empaquetador de macrobloques coloca los macrobloques codificados con diferentes MBGID asignados en diferentes paquetes de datos . 5. El sistema de conformidad con la reivindicación 1, caracterizado porque el MBGID tiene un valor de 1 para un identificador de grupo máximo (MGID) . 6. El sistema de conformidad con la reivindicación 5, caracterizado porque el motor reordenador de macrobloques determina el MGID sobre la base de las velocidades de datos de video. 7. El sistema de conformidad con la reivindicación 5, caracterizado porque el motor reordenador de macrobloques determina el MGID sobre la base del formato de video. 8. El sistema de conformidad con la reivindicación 1, caracterizado porque el motor de codificación codifica un macrobloque dado de un cuadro actual como un macrobloque intracodificado si existen diferencias significativas entre los datos del macrobloque dado del cuadro actual y los datos de un macrobloque desviado similar más cercano de un cuadro previo . 9 . El sistema de conformidad con la reivindicación 1, caracterizado porque el motor de codificación codifica un macrobloque dado de un cuadro actual como un macrobloque intercodificado si existen similitudes significativas entre los datos del macrobloque dado del cuadro actual y los datos de un macrobloque desviado similar más cercano de un cuadro previo . 10. El sistema de conformidad con la reivindicación 1, caracterizado porque el motor de codificación genera además un mapa intramacrobloques que identifica macrobloques intracodificados en un cuadro dado . 11. El sistema de conformidad con la reivindicación 10, caracterizado porque el motor de codificación codifica el mapa intramacrobloques seleccionando un método de codificación de mapa intramacrobloques que genera el menor número de bits . 12. El sistema de conformidad con la reivindicación 10, caracterizado porque el motor de codificación usa la codificación de longitud de serie para codificar el mapa intramacrobloques. 13. El sistema de conformidad con la reivindicación 10, caracterizado porque el motor de codificación usa un mapa de bits para codificar el mapa intramacrobloques . 14. El sistema de conformidad con la reivindicación 1, caracterizado porque el motor empaquetador de macrobloques de un dispositivo receptor desempaqueta los macrobloques codificados. 15. El sistema de conformidad con la reivindicación 1, caracterizado porque el motor reordenador de macrobloques de un dispositivo receptor ordena los macrobloques codificados. 16. El sistema de conformidad con la reivindicación 1, caracterizado porque el motor de codificación de un dispositivo receptor descodifica los macrobloques codificados y detecta macrobloques descodificados ausentes o perdidos. 17. El sistema de conformidad con la reivindicación 16, caracterizado porque el motor de codificación del dispositivo receptor interpola espacialmente datos de un macrobloque descodificado perdido dado a partir de datos de macrobloques descodificados adyacentes para ocultar efectos de errores de video, si el macrobloque descodificado perdido dado fue codificado como un macrobloque intracodificado . 18. El sistema de conformidad con la reivindicación 16, caracterizado porque el motor de codificación del dispositivo receptor estima un vector de movimiento de un macrobloque descodificado perdido dado sobre la base de vectores de movimiento de macrobloques descodificables adyacentes para reconstruir el contenido de datos del macrobloque descodificado perdido dado vía compensación de movimiento para ocultar efectos de errores de video, si el macrobloque descodificado perdido dado fue codificado como un macrobloque intercodificado . 19. El sistema de conformidad con la reivindicación 1, caracterizado porque el motor empaquetador de macrobloques es un motor de transporte para colocar cada uno de los macrobloques codificados de acuerdo al MBGID en un formato particular para transportarlo sobre una red conmutada por circuitos . 20. Un método para procesar datos de video, caracterizado porque comprende los pasos de: procesar cada cuadro de una señal de video para generar macrobloques; codificar los macrobloques ; asignar un identificador de grupo de macrobloques (MBGID) de una pluralidad de MBGID a cada uno de los macrobloques codificados; y colocar cada uno de los macrobloques codificados en un paquete de datos particular de acuerdo al MBGID. 21. El método de conformidad con la reivindicación 20, caracterizado porque el paso de asignación comprende además el paso de asignar macrobloques codificados adyacentes a MBGID diferente. 22. El método de conformidad con la reivindicación 20, caracterizado porque comprende además el paso generar vectores de movimiento codificados de manera no diferencial por cada uno de los macrobloques codificados que son un macrobloque intercodificado . 23. El método de conformidad con la reivindicación 20, caracterizado porque el paso de colocación comprende además el paso colocar los macrobloques codificados con diferentes MBGID asignados en diferentes paquetes de datos . 24. El método de conformidad con la reivindicación 20, caracterizado porque MBGID tiene un valor de 1 para un identificador de grupo máximo (MGID) . 25. El método de conformidad con la reivindicación 23, caracterizado porque comprende además el paso de determinar el MGID sobre la base de las velocidades de datos de video. 26. El método de conformidad con la reivindicación 23, caracterizado porque comprende además el paso de determinar el MGID sobre la base del formato de video. 27. El método de conformidad con la reivindicación 20, caracterizado porque el paso de codificación comprende además el paso de codificar un macrobloque dado de un cuadro actual como un macrobloque intracodificado si existen diferencias significativas entre los datos del macrobloque dado del cuadro actual y los datos de un macrobloque desviado similar más cercano de un cuadro previo . 28. El método de conformidad con la reivindicación 20, caracterizado porque el paso de codificación comprende además el paso de codificar un macrobloque dado de un cuadro actual como un macrobloque intercodificado si existen diferencias significativas entre los datos del macrobloque dado del cuadro actual y los datos de un macrobloque desviado similar más cercano de un cuadro previo . 29. El método de conformidad con la reivindicación 20, caracterizado porque comprende además el paso de generar un mapa intramacrobloques que identifica macrobloques intracodificados en un cuadro dado . 30. El método de -conformidad con la reivindicación 29, caracterizado porque comprende además el paso de seleccionar un método de codificación de mapa intramacrobloques que genera el menor número de bits. 31. El método de conformidad con la reivindicación 29, caracterizado porque comprende además el paso de usar la codificación de longitud de serie para codificar el mapa intramacrobloques . 32. El método de conformidad con la reivindicación 29, caracterizado porque comprende además el paso de usar un mapa de bits para codificar el mapa intramacrobloques . 33. El método de conformidad con la reivindicación 20, caracterizado porque comprende además el paso de desempaquetar los macrobloques codificados . 34. El método de conformidad con la reivindicación 20, caracterizado porque comprende además el paso de ordenar los macrobloques codificados. 35. El método de conformidad con la reivindicación 20, caracterizado porque comprende además los pasos descodificar los macrobloques codificados y detecta macrobloques descodificados ausentes o perdidos. 36. El método de conformidad con la reivindicación 35, caracterizado porque comprende además el paso de interpolar espacialmente datos de un macrobloque descodificado perdido dado a partir de datos de macrobloques descodificados adyacentes para ocultar efectos de errores de video, si el macrobloque descodificado perdido dado fue codificado como un macrobloque intracodificado . 37. El método de conformidad con la reivindicación 35, caracterizado porque comprende además el paso de estimar un vector de movimiento de un macrobloque descodificado perdido dado sobre la base de vectores de movimiento de macrobloques descodificados adyacentes para reconstruir el contenido de datos del macrobloque descodificado perdido dado vía compensación de movimiento para ocultar efectos de errores de video, si el macrobloque descodificado perdido dado fue codificado como un macrobloque intercodificado . 38. El método de conformidad con la reivindicación 20, caracterizado porque el paso de colocación comprende además colocar cada uno de los macrobloques codificados de acuerdo al MBGID en un formato particular para transportarlo sobre una red conmutada por circuitos. 39. Un medio legible electrónico que tiene incorporado en el un programa, siendo el programa ejecutable por una máquina para efectuar el método de los pasos para procesar datos de video, el método se caracteriza porque comprende los pasos de: procesar cada cuadro en una señal de video para generar macrobloques; codificar los macrobloques; asignar un identificador de grupo de macrobloques (MBGID) de una pluralidad de MBGID a cada uno de los macrobloques codificados; y colocar cada uno de los macrobloques codificados en un paquete de datos particular de acuerdo al MBGID. 40. El medio legible electrónico de conformidad con la reivindicación .39, caracterizado porque comprende además el paso de asignar a macrobloques codificados adyacentes un MBGID diferente. 41. El medio legible electrónico de conformidad con la reivindicación 39, caracterizado porque comprende además el paso de generar vectores de movimiento codificados de manera no diferencial por cada uno de los macrobloques codificados que sea un macrobloque intercodificado . 42. El medio legible electrónico de conformidad con la reivindicación 39, caracterizado porque el paso de colocación comprende además el paso de colocar los macrobloques codificados con diferentes MBGID asignados en diferentes paquetes de datos. 43. El medio legible electrónico de conformidad con la reivindicación 39, caracterizado porque el paso de codificación comprende además el paso de codificar macrobloque dado de un cuadro actual como un macrobloque intracodificado si existen diferencias significativas entre los datos del macrobloque dado del cuadro actual y los datos de un macrobloque desviado similar más cercano de un cuadro previo. 44. El medio legible electrónico de conformidad con la reivindicación 39, caracterizado porque el paso de codificación comprende además paso de codificar un macrobloque dado de un cuadro actual como un macrobloque intercodificado si existen similitudes significativas entre los datos del macrobloque dado del cuadro actual y los datos de un macrobloque desviado similar más cercano de un cuadro previo . 45. El medio legible electrónico de conformidad con la reivindicación 39, caracterizado porque comprende además el paso generar además un mapa intramacrobloques que identifica macrobloques intracodificados en un cuadro dado. 46. Un método para procesar datos de video, caracterizado porque comprende los pasos de-. generar macrobloques por cada cuadro de una señal de video; codificar los macrobloques; asignar un identificador de grupo de macrobloques (MBGID) de una pluralidad de MBGID a cada macrobloque codificado ; colocar los macrobloques codificados con diferentes MBGID asignados en diferentes paquetes de datos ; transmitir los diferentes paquetes de datos a un dispositivo remoto,- descodificar los macrobloques codificados de los diferentes paquetes de datos recibidos en el dispositivo remoto ,- detectar macrobloques descodificados perdidos; y reconstruir datos de los macrobloques descodificados perdidos. 47. El método de conformidad con la reivindicación 46, caracterizado porque el paso de reconstruir datos comprende además el paso de interpolar espacialmente datos de un macrobloque descodificado perdido dado de datos de macrobloques descodificados adyacentes para ocultar defectos de errores de video, si el macrobloque descodificado perdido dado fue codificado como un macrobloque intracodificado . 48. El método de conformidad con la reivindicación 46, caracterizado porque el paso de reconstruir datos comprende además el paso de estimar un vector de movimiento de un macrobloque descodificado perdido dado sobre la base de vectores de movimiento de macrobloques descodificados adyacentes para reconstruir el contenido de datos del macrobloque descodificado perdido dado vía compensación de movimiento para ocultar efectos de errores de video, si el macrobloque descodificado perdido dado fue codificado como un macrobloque intercodificado . 49. Un sistema para procesar datos de video, caracterizado porque comprende: medios para procesar cada cuadro de una señal de video para generar macrobloques ; medios para codificar los macrobloques; medios para asignar un identificador de grupo de macrobloques ( BGID) de una pluralidad de BGID a cada
MXPA04001656A 2001-08-23 2002-08-23 Sistema y metodo para ocultar errores de video. MXPA04001656A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US31441301P 2001-08-23 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
MXPA04001656A true MXPA04001656A (es) 2004-11-22

Family

ID=23219857

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04001656A MXPA04001656A (es) 2001-08-23 2002-08-23 Sistema y metodo para ocultar errores de video.

Country Status (15)

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

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
AU2002351417A1 (en) * 2001-12-21 2003-07-30 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
WO2006122313A2 (en) * 2005-05-11 2006-11-16 Qualcomm Incorporated A method and apparatus for unified error concealment framework
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
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
US9247260B1 (en) * 2006-11-01 2016-01-26 Opera Software Ireland Limited Hybrid bitmap-mode encoding
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
AU2016321400B2 (en) 2015-09-10 2019-05-30 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
KR102204132B1 (ko) 2016-05-31 2021-01-18 매뉴팩처링 리소시스 인터내셔널 인코포레이티드 전자 디스플레이의 원격 영상 검증 시스템 및 방법
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 上海大学 一种利用视频统计特征预测差错敏感度的方法
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
US11645029B2 (en) 2018-07-12 2023-05-09 Manufacturing Resources International, Inc. Systems and methods for remotely monitoring electronic displays
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
US11921010B2 (en) 2021-07-28 2024-03-05 Manufacturing Resources International, Inc. Display assemblies with differential pressure sensors
US11965804B2 (en) 2021-07-28 2024-04-23 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 松下電器産業株式会社 映像信号変換装置及び映像信号変換方法
US6263468B1 (en) * 1997-10-23 2001-07-17 Sony Corporation Apparatus and method for partial buffering transmitted data to provide 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
BRPI0212000B1 (pt) 2017-12-12
RU2291586C2 (ru) 2007-01-10
US20070230583A1 (en) 2007-10-04
EP1421787A1 (en) 2004-05-26
US7239662B2 (en) 2007-07-03
NO20161599A1 (no) 2004-04-23
US20030039312A1 (en) 2003-02-27
RU2004105598A (ru) 2005-07-20
BR0212000A (pt) 2004-09-28
CN100581238C (zh) 2010-01-13
NZ531863A (en) 2005-10-28
JP2012070391A (ja) 2012-04-05
ZA200401377B (en) 2005-07-27
IL160476A0 (en) 2004-07-25
CA2457882C (en) 2009-06-02
JP2005501488A (ja) 2005-01-13
CA2457882A1 (en) 2003-03-06
IL160476A (en) 2009-02-11
WO2003019939A1 (en) 2003-03-06
AU2002326713B2 (en) 2006-12-14
NO20040754L (no) 2004-04-23
NO343205B1 (no) 2018-12-03
EP1421787A4 (en) 2008-10-08
JP4881543B2 (ja) 2012-02-22
KR20040027982A (ko) 2004-04-01
NO339116B1 (no) 2016-11-14
CN1679330A (zh) 2005-10-05
KR100691307B1 (ko) 2007-03-12

Similar Documents

Publication Publication Date Title
MXPA04001656A (es) Sistema y metodo para ocultar errores de video.
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
RU2302707C2 (ru) Кодирующие динамические фильтры
JP4820559B2 (ja) 映像データ符号化及び復号化方法及び装置
US8780970B2 (en) Motion wake identification and control mechanism
US6614845B1 (en) Method and apparatus for differential macroblock coding for intra-frame data in video conferencing systems
US20030140347A1 (en) Method for transmitting video images, a data transmission system, a transmitting video terminal, and a receiving video terminal
US20060120457A1 (en) Method and apparatus for encoding and decoding video signal for preventing decoding error propagation
Shiu et al. A DCT-domain H. 263 based video combiner for multipoint continuous presence video conferencing

Legal Events

Date Code Title Description
FG Grant or registration