ES2330142T3 - Procedimiento y aparato de encubrimiento de errores temporales para trama p. - Google Patents
Procedimiento y aparato de encubrimiento de errores temporales para trama p. Download PDFInfo
- Publication number
- ES2330142T3 ES2330142T3 ES06737648T ES06737648T ES2330142T3 ES 2330142 T3 ES2330142 T3 ES 2330142T3 ES 06737648 T ES06737648 T ES 06737648T ES 06737648 T ES06737648 T ES 06737648T ES 2330142 T3 ES2330142 T3 ES 2330142T3
- Authority
- ES
- Spain
- Prior art keywords
- motion vectors
- frame
- section
- vectors
- movement
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0066—Parallel concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
- H04N19/895—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64784—Data processing by the network
- H04N21/64792—Controlling the complexity of the content stream, e.g. by dropping packets
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Looms (AREA)
Abstract
Un procedimiento para procesar una trama multimedia que comprende una primera sección recibida con error, que comprende: obtener (802) datos de predicción temporal que corresponden a una primera trama de referencia, comprendiendo los datos de predicción temporal vectores de movimiento que corresponden a secciones de la primera trama de referencia; determinar si cada par de vectores de movimiento, que comprende un vector de movimiento de la trama multimedia y un vector de movimiento colocalizado en la primera trama de referencia, es similar, si el par está disponible; y determinar (804) que la primera trama de referencia es fiable si la relación entre el número de pares similares y el número de pares disponibles es superior a un valor de umbral, en el cual un par de vectores de movimiento está disponible si los dos vectores de movimientos se reciben correctamente; y estimar (806) la primera sección recibida con error en base a una o más secciones diferentes de la primera sección de la trama multimedia y de la primera trama de referencia, si se determina que la primera trama de referencia es fiable.
Description
Procedimiento y aparato de encubrimiento de
errores temporales para trama P.
La invención se refiere a procedimientos y
aparato para codificar y descodificar datos digitales con gestión
de errores.
El uso generalizado de Internet y la
comunicación inalámbrica han incrementado la demanda de servicios
multimedia que transmiten continuamente en Internet y canales
móviles/inalámbricos. En las redes de protocolo Internet (IP), se
puede proporcionar vídeo mediante un servidor y se puede transmitir
de manera continua por uno o más clientes de cable o inalámbricos.
Las conexiones por cable incluyen, conexión por línea conmutada,
redes digitales de servicios integrados de banda ancha, cable,
protocolos de línea de abonado digital (colectivamente denominada
xDSL), fibra, redes de área local (LAN), redes de área ancha (WAN) y
otras. Los dispositivos electrónicos que usan comunicaciones
inalámbricas incluyen los teléfonos (por ejemplo teléfonos
celulares), agendas de datos personales (PDA), miniordenadores y
ordenadores portátiles y otros. En la mayoría de los casos, si no
en todos, estas aplicaciones, requisitos de ancho de banda y/o otras
restricciones necesitan que el procesamiento de vídeo utilice un
codificador de fuente que incorpora algoritmos de compresión de
vídeo para analizar, cuantificar y representar datos de vídeo para
transportar la máxima información expandiendo un número
"mínimo" de bits. Las características de tales algoritmos
varían notablemente, lo cual conduce a grandes variaciones de escala
en su rendimiento (tal como eficiencia de compresión y velocidad
binaria). Las características de procesamiento de vídeo que usan
algoritmos pueden variar basándose en el contenido, lo cual puede
conducir a grandes variaciones de escala en su rendimiento (tal
como eficiencia de compresión y velocidad binaria).
Los canales inalámbricos son propensos a
errores. Una parte de los datos transmitidos es "errónea"
cuando esta parte de datos se pierde o corrompe. Debido a que la
compresión de vídeo elimina inherentemente la redundancia, los
datos comprimidos se vuelven críticos. Cualquier parte errónea de
estos datos durante la transmisión tiene un impacto sobre la
calidad de vídeo reconstruido en el descodificador. El impacto se
agrava si los datos erróneos son parte de la trama de referencia
para la predicción compensada de movimiento, causando una
propagación de error temporal.
Para paliar el impacto sobre la calidad de vídeo
reconstruido debido a los datos de flujo de bits recibidos, el
descodificador de vídeo procesa los datos de vídeo recibidos para
mejorar la calidad de vídeo. Esto se denomina encubrimiento de
errores. Los esquemas de encubrimiento de errores hacen uso de la
correlación espacial y temporal que existe en la señal de vídeo.
Por consiguiente, estos esquemas se denominan encubrimiento de
errores espacial y temporal.
Dependiendo de la naturaleza de los errores de
canal (errores de bits y/o pérdida de paquetes) y el tipo de
paquetización, todos o parte de los datos pertenecientes a uno o más
macrobloques o rodajas pueden ser erróneos durante la transmisión.
Para un macrobloque, diversos datos de macrobloque codificados
podrían ser erróneos incluyen uno o más de lo que sigue: modo de
codificación (inter o intra), vectores de movimiento (si inter), y
coeficientes de trans-
formada.
formada.
Cuando un macrobloque es erróneo, se asume
típicamente que toda la información anterior es errónea. Para un
macrobloque intercodificado, sus vectores de movimiento y
coeficientes residuales son erróneos. Puesto que las señales
residuales son altamente descorrelacionadas, son difíciles de
estimar a partir de macrobloques vecinos. Sin embargo, los estudios
han demostrado que la calidad de vídeo reconstruida se puede mejorar
en gran medida si los vectores de movimiento se pueden recuperar.
Con lo cual, el principal objetivo de la encubrimiento de errores
temporal es estimar los vectores de movimiento erróneos a partir de
sus vecinos espaciales y temporales. Una vez construido el vector
de movimiento, la compensación de movimiento se puede entonces
llevar a cabo usando el vector de movimiento construido con
coeficiente residuales cero.
Aunque hay diversos esquemas de encubrimiento de
errores temporal existentes, no ofrecen de buenos resultados.
Además, no son compatibles con un flujo de datos multimedia que
soporta múltiples tramas de referencia y diversas dimensiones de
bloque de compensación de movimiento. Por lo tanto, se necesita un
nuevo esquema de encubrimiento de errores temporal para conseguir
buenos resultados y proporcionar mayores compatibilidades.
Se dan a conocer un procedimiento y aparato de
procesamiento de una trama multimedia que comprende una primera
sección recibida con error. El procedimiento comprende obtener datos
de predicción temporal que corresponden a una primera trama de
referencia. El procedimiento comprende, además, determinar si la
primera trama de referencia es fiable para estimar la primera
sección. El procedimiento comprende, además, estimar la primera
sección recibida con error en base a una o más secciones distintas
de la primera sección de la trama multimedia y la primera trama de
referencia, si se determina que la primera trama de referencia es
fiable. La invención se define mediante las reivindicaciones 1 y
22.
La figura 1 muestra un diagrama de bloques que
ilustra un ejemplo de un descodificador configurado para
descodificar un flujo de datos multimedia entrantes (no
mostrado).
La figura 2 es un diagrama de flujo que ilustra
un ejemplo de un procedimiento de encubrimiento de errores temporal
para un macrobloque erróneo de trama P.
La figura 3 es un diagrama de flujo que ilustra
un ejemplo del procedimiento para generar vectores de movimiento de
la actual trama P en el bloque 204 de la figura 2.
La figura 4 es un diagrama de flujo, que ilustra
un ejemplo del procedimiento para formar una ventana de vectores de
movimiento sobre la base dela actual trama P y una trama de
referencia en el bloque 206 de la figura 2;
Las figuras 5A y 5B ilustran el procedimiento de
área más cubierta para determinar el macrobloque de anclaje en el
bloque 2066 de la figura 4;
La figura 6 ilustra la construcción de la
ventana de vectores de movimiento del bloque 2067 de la figura
4;
Las figuras 7A y 7B ilustran el beneficio de la
realización de la clasificación de movimiento local en el bloque
2068 de la figura 4;
La figura 8 es un diagrama de flujo que ilustra
otro ejemplo de un procedimiento de procesamiento de una trama
multimedia que comprende una primera sección recibida con error.
La figura 9 muestra un diagrama de bloques que
ilustra otro ejemplo de un descodificador configurado para
descodificar un flujo de datos multimedia entrantes.
En la siguiente descripción, se ofrecen detalles
específicos para una comprensión completa de los procedimientos y
aparatos dados a conocer. Sin embargo, el experto en la técnica
entenderá que los procedimientos y los aparatos pueden ponerse en
práctica sin estos detalles específicos. Por ejemplo, se pueden
mostrar componentes eléctricos en los diagramas de bloque para
ocultar algunos aspectos en detalles innecesarios. En otros casos,
se pueden mostrar tales componentes, otras estructuras y técnicas
en detalle para explicar, además, algunos aspectos.
Hay que resaltar que algunos aspectos se pueden
describir como un procedimiento, que se describe como un gráfico de
flujo, un diagrama de flujo, un diagrama de estructura o un diagrama
de bloques. Aunque un diagrama de flujo puede describir las
operaciones como un procedimiento secuencial, muchas de las
operaciones se pueden llevar a cabo en paralelo o concurrentemente
y el procedimiento se puede repetir. Además, se puede redisponer el
orden de las operaciones. Un procedimiento se termina cuando se
completan sus operaciones. Un procedimiento puede corresponder a un
método, una función, un proceso, una subrutina, un subprograma, etc.
cuando un procedimiento corresponde a una función, su terminación
corresponde a un retorno de la función a la función de llamada o la
función principal.
La figura 1 muestra un diagrama de bloques que
ilustra un ejemplo de un descodificador configurado para
descodificar un flujo de datos multimedia entrantes (no mostrado).
Los datos multimedia pueden ser de diversas formas incluyendo, pero
no limitándose a, vídeo, audio, gráficos, texto e imágenes. Los
datos pueden ser vídeo y audio comprimidos como en los estándares
MPEG y H.26x, audio comprimido como en los estándares de compresión
de audio o voz MPEG-4, MP3, AMR y G.723, o cualquier
otro tipo de datos digitales. El flujo de datos se puede recibir
por una red de cable tal como de teléfono, cable y fibra óptica o
una red inalámbrica. en el caso de la red inalámbrica, la red puede
comprende, por ejemplo, parte de un sistema de comunicación de
acceso múltiple por división de código (CDMA o CDMA2000) o
alternativamente, el sistema puede ser un sistema de acceso
múltiple por división de frecuencia (FDMA), un sistema de
multiplexación por división de frecuencia ortogonales (OFDM), un
sistema de acceso múltiple por división de tiempo tal como una
tecnología de telefonía móvil GSM/GPRS (Servicio general de
paquetes de radio) (entorno GSM de datos mejorado) o TETRA (Radio
troncal terrestre) para la industria de los servicios, un acceso
múltiple por división de banda ancha (WCD-MA), un
sistema de velocidad de datos elevada (1xEV-DO o
1xEV-DO Gold multicast), o en general cualquier
sistema de comunicación inalámbrica que emplea una combinación de
técnicas.
El descodificador 100 está configurado para
llevar a cabo una encubrimiento de errores temporal para datos
intercodificados erróneos. La intercodificación o codificación
predictiva se refiere a la codificación de una imagen (un campo o
una trama) con referencia a otra imagen. Los ejemplos de imágenes
intercodificadas usada a lo largo de toda esta aplicación son
tramas predichas (bien hacia delante bien hacia atrás, denominadas
"tramas P") Otros términos para la intercodificación incluyen
la codificación de paso alto, codificación residual, interpolación
compensada de movimiento y otros que son bien conocidos por el
experto en la técnica. Las trama P (o cualesquiera secciones
intercodificadas) pueden utilizar la redundancia temporal entre una
región en una trama actual y una mejor región de predicción de
coincidencia en una trama de referencia. La diferencia entre la
región actual y la mejor región de predicción de referencia de
coincidencia se conoce como error residual (error de predicción).
La localización de la mejor región de predicción de coincidencia se
puede codificar en un vector de movimiento.
El descodificador 100 puede estar configurado
también para llevar a cabo el procedimiento de encubrimiento
temporal dado a conocer en la presente memoria para algunas tramas
I, si la trama I no es la primera trama en una secuencia y si no
hay cambio de escena. La trama I se refiere a una trama
intracodificada, que el experto en la técnica entiende como
codificada sin referencia a ninguna otra trama. Debido al hecho de
que una trama I no contiene información, de movimiento, la
información de movimiento procedente de la trama P precedente se
usa para ocultar los datos de trama I erróneos.
El descodificador 100 comprende un generador 103
de datos de predicción temporal, un detector 104 de cambio de
movimiento de trama, un evaluador de vector de movimiento 106, una
memoria 108 y un procesador 112. El generador 102 de datos de
predicción temporal se configura para obtener datos de predicción
temporal que corresponden a una trama de referencia a partir del
cual se puede predecir la trama P. El detector 104 de cambio de
movimiento de trama se configura para determinar si la trama de
referencia es fiable para estimar un macrobloque erróneo detectando
si hay un cambio significante en el movimiento desde la trama P a la
trama de referencia. Un macro bloque es un grupo de píxeles
asociados, y en este ejemplo está constituido por 16 x 16 píxeles.
Los píxeles se pueden definir por un valor de luminancia de 8 bits
(Y) y dos valores de crominancia de 8 bits (Cr y Cb). En MPEG, los
componentes Y, Cr y Cb se pueden almacenar en un formato 4:20, donde
los componentes se submuestrean por 2 en las direcciones X e Y. De
este modo, cada macrobloque consistiría en 256 componentes Y, 64
componentes Cr y 64 componentes Cb.
El evaluador de vector de movimiento 105 está
configurado para estimar el vector de movimiento para el macrobloque
erróneo de una manera de una pluralidad de maneras basadas en parte
en si la trama de referencia es fiable. El procesador 112 puede ser
cualquier microprocesador uni- o multichip de uso generalizado
apropiado, o cualquier microprocesador con un fin especial
apropiado tal como un procesador de señales digitales,
microcontrolador o una red de puertas programables. El procesador
112 se configura para ejecutar una o más aplicaciones de software
para controlar la operación del generador de datos de predicción
temporal 102, el detector 104 de cambio de movimiento de trama y el
evaluador 106 de vector de movimiento. El procesador 112 se
configura también para acceder a la memoria 108 para leer y
salvaguardar datos.
Se han de subrayar que cualquiera de los bloques
funcionales ilustrados en la figura 1 se puede redisponer o
combinar con uno o u otros bloques sin cambiar la función del
descodificador.
La figura 2 es un diagrama de flujo que ilustra
un ejemplo de un procedimiento de encubrimiento de errores temporal
para un macrobloque erróneo de una trama P. El procedimiento de
encubrimiento de errores temporal se deriva de una estimación de un
vector de movimiento para el macrobloque erróneo en la trama P sobre
la base delos macrobloques vecinos en la trama P y los macrobloques
en la trama o tramas de referencia.
El procedimiento se puede aplicar bien en un
proceso de descodificación causal o un proceso de descodificación
no-causal, en un proceso de descodificación causal,
cada macrobloque se descodifica en un orden de tiempo determinado.
La descodificación de un macrobloque se completa antes de que el
proceso de descodificación se desplace al siguiente macrobloque. En
un proceso de descodificación no-causal, la
descodificación de un macrobloque actual se puede diferir después
de que se descodifiquen los macrobloques que siguen al actual
macrobloque.
El procedimiento 200 empieza en un bloque
opcional 202 en el cual un descodificador determina que un
macrobloque de una trama P tiene error. Al moverse a un bloque
opcional 204, el descodificador genera vectores de movimiento para
los macrobloques correctamente recibidos de la trama P. A
continuación en el bloque 206, el descodificador forma una ventana
de vectores de movimiento usando los vectores de movimiento
recibidos correctamente de la trama P actual y los vectores de
movimiento correctamente descodificados de las tramas de referencia
que corresponden al macrobloque erróneo de la actual trama P. En
este ejemplo, la ventana de vectores de movimiento contiene
macrobloques 3 x 3, pero se entiende que la ventana de vectores de
movimiento puede variar en dimensión desde un macrobloque a varios.
Los bloques 204 y 206 se describirán en lo sucesivo en mayor
detalle.
Avanzando hacia un bloque 208, el descodificador
lleva a cabo la atenuación de vectores de movimiento a vectores de
movimiento disponible de la ventana de vectores de movimiento 3 x 3
y genera un vector de evaluado para el macrobloque erróneo. En
algunos ejemplos, el vector de movimiento evaluado es una mediana de
los vectores de movimiento disponibles en la ventana 3 x 3 obtenido
por filtrado de mediana.
El filtrado de mediana se usa ampliamente en el
procesamiento de señal e imagen para retirar ruidos impulsivos
mientras al mismo tiempo se preservan los bordes. Para obtener la
mediana para un sistema de N (escalares), X =
(x_{1}, x_{2}, ... x_{N}) con
x_{i} \in\Re, para i = 1, 2 ... N,
normalmente el sistema se selecciona en primer lugar en
(\hat{x}_{1},\hat{x}_{2}, ...\hat{x}_{N}). A
continuación se toma el elemento en el \hat{x}_{N/2} medio como
la mediana X_{M} del sistema. La mediana X_{M}
satisface la siguiente propiedad:
Igualmente, para un sistema de N
vectores bidimensionales m, v = (\vec{v}_{1}, \vec{v}_{2},
...\vec{v}_{N}), con \vec{v}_{i}\in \Re, para i
= 1,2 ...N el vector de mediana \vec{v}_{VM} es el vector
que cumple la siguiente condición:
en la que p denota la métrica de
norma p entre los vectores. En un ejemplo se usa p=1. Para el
vector \vec{v} bidimensional (v(x), (v(y)), la
distancia de norma 1 entre \vec{v}_{0} y \vec{v}_{1}
es
El filtrado de mediana de vector de movimiento
se aplica a todos los vectores de movimiento disponibles. Si un
vector de movimiento es de un macrobloque erróneo, o de un
intramacrobloque, o cualquiera de su índice de referencia de
subpartición no es igual a cero. el vector de movimiento se marca
como no disponible; de otro modo se etiqueta como disponible.
Se ha de subrayar que cualquiera de los bloques
ilustrado en este diagrama de flujo se puede omitir, redisponer en
orden o combinar con uno o más bloques.
La figura 3 es un diagrama de flujo que ilustra
un ejemplo del procedimiento para generar vectores de movimiento de
la trama P actual en el bloque 204 de la figura 2. Algunos ejemplos
de un sistema de comunicación de vídeo requieren que el
descodificador soporte una trama P predicha a partir de múltiples
tramas de referencia y dimensiones variables de bloque de
compensación de movimiento. en tales ejemplos, una de las entradas
al descodificador es el vector de movimiento de cada bloque
descodificado de dimensiones variable. La otra entrada es un índice
de trama de referencia (ref_idx) para cada vector de movimiento
transmitido a partir de la trama descodificada actual. La
información de índice de trama de referencia es llevada por el flujo
de bits para cada vector de movimiento, indicando la distancia
entre las dimensiones de bloque para cada macrobloque. Estas
dimensiones de bloque son 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4. El
proceso para generar vectores de movimiento de la trama P actual
proporciona el soporte requerido para tramas de referencia y la
dimensión variable de bloque de compensación de movimiento
convirtiendo los vectores de movimiento de entrada en vectores de
movimiento basándose en una única trama de referencia inmediata y
una dimensión uniforme de bloque de compensación.
El procedimiento 204 empieza en un bloque 2042
en el cual se lleva a cabo la puesta a escala del vector de
movimiento. La etapa de puesta a escala de vector de movimiento
lleva a cabo la puesta a escala del vector de movimiento de entrada
sobre la base dela distancia entre la trama actual y la trama de
referencia a la cual apunta el vector de movimiento. Después de la
puesta a escala de vector de movimiento, todos los vectores son
apuntados desde la trama actual a su trama de referencia inmediata,
es decir, la trama adyacente a la trama actual (el valor ref_idx es
igual a cero). Por lo tanto, se ponen a escala múltiples tramas de
referencia en una única trama de referencia inmediata. El nuevo
vector de movimiento apunta a su trama de referencia inmediata se
puede caracterizar como sigue:
donde MV_f_x y MV_f_y son los
componentes x e y del nuevo vector de movimiento, MV_x y MV_y son
los componentes x e y del vector de movimiento transmitido, N es la
distancia de la trama actual a su trama de referencia inmediata, y
M es la distancia desde la trama actual a la trama de referencia a
la cual apunta el vector de movi-
miento.
miento.
A continuación en un bloque 2044, se lleva a
cabo la fusión de vector de movimiento. La fusión de vector de
movimiento proporciona soporte necesario a vectores de movimiento de
dimensión de bloque variable. Durante este hecho, los vectores de
movimiento de entrada de diferentes dimensiones se convierten en un
vector de movimiento que representa una dimensión de bloque
uniforme denominada unidad base. La dimensión de la unidad base es
configurable. En algunos ejemplos, se usa unidad base 16x16.
Si la unidad base comprende diversos vectores de
movimiento puestos a escala de dimensión o dimensiones menores, se
aplica una operación de fusión para fusionar los vectores de
movimiento en el interior de la unidad base en un único vector de
movimiento y asignar lo a la unidad base. Sin embargo, si un vector
de movimiento puesto a escala es mayor que una unidad base, el
vector de movimiento de entrada se separa en diversos vectores de
movimiento, representado cada uno una unidad base y teniendo cada
uno el mismo vector de movimiento que el vector de movimiento
puesto a escala. Diversos ejemplos están disponibles para llevar a
cabo la operación de fusión. En un ejemplo, el nuevo vector de
movimiento es la media de los diversos vectores de movimiento
puestos a escala de dimensiones menores comprendidos en la unidad
base. En otro ejemplo, el nuevo vector de movimiento es la media de
los diversos vectores de movimiento puestos a escala comprendidos en
la unidad base. Después del bloque 2044, todos los vectores de
movimiento descodificados correctamente se convierten en una unidad
base de dimensión única.
Yendo al un bloque 2046, el filtrado de mediana
de vector de movimiento se lleva a cabo sobre los vectores de
movimiento desde el bloque 2044. Los bloques anteriores 2042 y 2044
modifican el campo de vector de movimiento recibido en una
dimensión uniformizada (dimensión de unidad base), campo de
movimiento de referencia única (todos los vectores de movimiento se
ponen a escala para apuntar a la trama de referencia inmediata desde
la trama actual) El filtrado de mediana de vector de movimiento se
lleva a cabo para atenuar la singularidad en el vector de
movimiento introducido por las operaciones de puesta a escala y
fusión, y por lo tanto, produce mejores resultados de encubrimiento
de error. El filtrado de mediana de vector de movimiento es el mismo
que se ha mencionado anteriormente en la figura 2. En un ejemplo,
se aplica un filtrado de mediana de vector de movimiento 3x3 (VMF)
a cada vector de movimiento disponible Cada vector de movimiento
disponible se sustituye por la mediana de los vectores de
movimiento en un centrado de bloque 3x3 sobre ese vector de
movimiento. En otros ejemplos se puede usar un bloque de dimensión
diferente para llevar a cabo el filtrado de mediana de vector de
movimiento.
En breve, el presente ejemplo del proceso para
generar vectores de movimiento de la trama P convierte los vectores
de movimiento de entrada de dimensiones de bloque variables en
vectores de movimiento de unidad base y convierte las múltiples
tramas de referencia de cada trama de descodificación en una única y
menor trama de referencia de índice en la lista de tramas de
referencia.
Se debería subrayar que ninguno de los bloques
ilustrados en este diagrama de flujo se puede omitir, redisponer en
orden o combinar con uno o más bloques.
La figura 4 es un diagrama de flujo que ilustra
un ejemplo del proceso para formar una ventana de vectores de
movimiento sobre la base dela trama P actual y una trama de
referencia en el bloque 206 de la figura 2. Como se menciona
respecto de la figura 2, la ventana de vectores de movimiento
generado en este proceso se puede usar entonces para construir una
estimación del vector de movimiento del macrobloque erróneo. En el
ejemplo, la ventaja de vector de movimiento es una ventana 3x3 de
macrobloques, aunque se pueden usar también otras dimensiones. En
el ejemplo, la trama de referencia es la trama de referencia
inmediata a la trama P actual, es decir, la trama adyacente a la
trama P actual. En otros ejemplos, la trama de referencia se podría
alejar de la trama P actual. El procedimiento se puede aplicar bien
en un proceso de descodificación causal o un proceso de
descodificación no causal.
El procedimiento 206 empieza en un bloque 2062,
en el cual se determina si el movimiento en una trama P actual y la
trama de referencia es continuo. El movimiento es continuo si el
movimiento en la trama actual no cambia notablemente respecto del
movimiento de la trama de referencia.
Un proceso similar al procedimiento 204 descrito
anteriormente en la figura 3 se aplica para generar vectores de
movimiento de la trama de referencia. Una vez que los vectores de
movimiento de la trama de referencia se generan, cada par de
vectores de movimiento colocalizados en las tramas actual y de
referencia se comparan entonces para determinar si el movimiento en
la trama actual y la trama de referencia es continuo, si el par
está disponible. Una par de vectores de movimiento está disponible
si ambos vectores de movimiento se reciben correctamente. Se
mantiene una cantidad de pares de vectores de movimiento similares.
Si la cantidad de vectores de movimiento similares supera un
porcentaje de umbral de los pares de vectores de movimiento
disponibles, los movimientos en las dos tramas no cambian
significativamente. Por el contrario, se detecta el cambio de
movimiento trama a trama. En el ejemplo, el porcentaje de umbral es
del 50%, aunque se puede usar otro número.
A cada vector de movimiento recibido se le da
una etiqueta de magnitud y una etiqueta de dirección. En el
ejemplo, la etiqueta de magnitud tiene el valor bien de 0 (magnitud
pequeña) o 1 (magnitud grande). A un vector de movimiento se le da
una etiqueta de magnitud de 1 si la magnitud del vector de
movimiento es superior a un valor de umbral. En el ejemplo, el
umbral para decidir la etiqueta de magnitud es 2 píxeles, pero se
pueden usar otros valores. En el ejemplo, la etiqueta de dirección
tiene el valor de 0, 1, 2 o 3, representado una de las cuatro
direcciones principales.
Cada par de vectores de movimiento colocalizados
en las dos tramas se compara con base en sus etiquetas de magnitud
y etiquetas de dirección. Por ejemplo, los vectores de movimiento de
cada par se declaran similares a menos que sus magnitudes sean
ambas grandes y sus direcciones sean opuestas. Este enfoque pasa por
alto la información direccional de vectores de movimiento de
pequeña magnitud porque los pequeños vectores de movimiento tienden
a ser distribuidos direccionalmente de modo aleatorio.
Si se determina que el movimiento no es
continuo, los vectores de movimiento de la trama de referencia no
son fiables y no se pueden usar para estimar el vector de movimiento
del macrobloque erróneo. Si los vectores de movimiento de la trama
de referencia no son fiables, el proceso pasa a un bloque 2064 que
ocupa la ventana de vectores de movimiento 2066 y 2067 en la cual
la ventana de vectores de movimiento se genera con base tanto en la
trama de referencia como la trama actual.
Yendo al bloque 2066, se selecciona un
macrobloque de anclaje en la trama de referencia. Un ejemplo aplica
un procedimiento colocalizado, en el cual el macrobloque de anclaje
es el macrobloque colocalizado en la trama de referencia. El
ejemplo es apropiado para el caso de movimiento global donde todos
los vectores de movimiento siguen el mismo modelo afín, o la
situación donde los vectores de movimiento en la ventana de vectores
de movimiento de trama actual y la ventana de vectores de
movimiento colocalizado en la trama de referencia están ambas en la
región de fondo. Para el movimiento irregular con un objeto móvil,
esta técnica puede no capturar efectivamente los vectores de
movimiento esperados para el propósito de encubrimiento de errores.
Por ejemplo, si la ventana 3x3 anterior reside en una región de
fondo estática, y la ventana 3x3 de trama actual cubre total o
parcialmente un objeto móvil, los vectores de movimiento capturados
a partir de la trama de referencia anterior por los procedimientos
colocalizado son irrelevantes para la trayectoria de movimiento del
objeto móvil de interés. La utilización de tales vectores de
movimiento de la trama anterior para encubrimiento de errores
temporal puede terminar con resultados inferiores.
Otro ejemplo resuelve el problema anterior
seleccionando el macrobloque de anclaje según la trayectoria de
movimiento. En este ejemplo, se determina en primer lugar un vector
de movimiento de anclaje de la trama P actual. A continuación se
decide el macrobloque de anclaje de la trama de referencia sobre la
base del vector de movimiento de anclaje.
El vector de movimiento de anclaje se calcula
sobre la base dela disponibilidad de sus tres sectores de movimiento
vecinos, el vector de movimiento de su macrobloque circundante
izquierdo, el vector de movimiento de su macrobloque circundante
superior y el vector de movimiento de su macrobloque circundante
superior derecho. Si un vector de movimiento es de un macrobloque
erróneo, o de un macrobloque intracodificado, o cualquiera de su
índice de referencia de subparticiones no es igual a cero, el
vector de movimiento se marca como no disponible; de otro modo se
marca como disponible. Si solamente uno de estos tres macrobloques
vecinos está disponible, el vector de movimiento de anclaje se
asigna como el macrobloque disponible circundante. De otro modo, el
vector de movimiento de anclaje se asigna como la mediana de todos
los vectores de movimiento disponibles de sus tres vectores de
movimiento vecinos.
Una vez que se ha determinado el vector de
movimiento de anclaje, se aplica un procedimiento de área más
cubierto para obtener el macrobloque de anclaje en la trama de
referencia, como se mencionará más en detalle respecto de las
figuras 5A y 5B.
Una vez que se ha determinado el macrobloque de
anclaje, se ocupa selectivamente una ventana de vectores de
movimiento sobre la base dela trama de referencia y la trama P
actual en un bloque 2067, como se mencionará más en detalle
respecto de la figura 6. En el ejemplo, la ventana de vectores de
movimiento es 3x3, pero se pueden usar otras dimensiones.
Desplazándose a un bloque 2068, se lleva a cabo
la clasificación de movimiento local para eliminar algunos vectores
de movimiento dentro de la ventana de vectores de movimiento
generada en el bloque 2067. Cada vector de movimiento disponible
dentro de la ventana de vectores de movimiento se compara con el
vector de movimiento del macrobloque de anclaje en la trama de
referencia para determinar si estos vectores de movimiento son
similares, siguiendo los mismos criterios de comparación que los
mencionado anteriormente en la figura 4. Un vector de movimiento
dentro de la ventana de vectores de movimiento se marca como no
disponible si el vector de movimiento no es similar al macrobloque
de anclaje en la trama de referencia. Por lo tanto, el vector de
movimiento no afecta a la estimación del vector de movimiento para
el macrobloque erróneo de interés.
Se debería subrayar que ninguno de los bloques
ilustrados en este diagrama de flujo se puede omitir, redisponer en
orden o combinar con uno o más bloques.
Las figuras 5A y 5B ilustran el procedimiento de
área más cubierta para determinar el macrobloque de anclaje en el
bloque 2066 de la figura 4. Un vector de movimiento de anclaje 22 en
la trama P actual apunta a un área 24 de la trama de referencia. El
área 24 cubre total o parcialmente a lo sumo cuatro macrobloques 26,
28, 32 y 34. A cada macrobloque cubierto se le asigna un valor que
representa su área cubierta por el área 24 a la cual apuntan los
vectores de movimiento de anclaje. Por ejemplo, el macrobloque de
anclaje se selecciona como el macrobloque en la trama de referencia
cubierta mayoritariamente por el área 24. En el caso de que más de
un macrobloque estén cubiertos en su mayoría por el área 24,
cualquiera de estos macrobloques cubiertos en su mayor parte se
puede seleccionar como el macrobloque de anclaje. En la figura 5B,
el macrobloque 34 se selecciona como el macrobloques de
anclaje.
La figura 6 ilustra la construcción de la
ventana de vectores de movimiento del bloque 2067 de la figura 4.
La ventana de vectores de movimiento 70 se construye sobre la base
de una ventana 50 de vector de movimiento 3x3 centrada sobre el
macrobloque erróneo 52 en la trama actual y una ventana 40 de vector
de movimiento 3x3 centrada en el macrobloque de anclaje 42 en la
trama de referencia. Una vector de movimiento en la trama actual y
de referencia se marca como no disponible si el vector de movimiento
no se recibe correctamente. En la figura 6, por ejemplo, los
macrobloques 52, 54, 56, 58 y 62 de la trama actual no están
disponibles. En un ejemplo de una descodificación no causal,
cualquiera de los macrobloques 52, 54, 56, 58 y 62 puede estar
disponible. Para ocupar cada bloque de la ventana de vectores de
movimiento, se usa un vector de movimiento de la trama actual en la
localización correspondiente si un vector de movimiento está
disponible. De otro modo, se usa un vector de movimiento de la
trama de referencia en la localziación correspondiente si tal vector
de movimiento está disponible. en el caso en que el vector de
movimiento de la trama de referencia y el vector de movimiento de
la trama actual son ambos no disponibles en la localización
correspondiente, el bloque se marca como no disponible.
Las figuras 7A y 7B ilustran porqué puede ser
deseable llevar a cabo la clasificación de movimiento según el
hecho en el bloque 2068 de la figura 4. Como se ilustra en la figura
7A, el límite de movimiento 76 puede existir en la ventana 72 de
vector de movimiento 3x3 dentro de la trama de referencia. En este
caso, solamente los vectores de movimiento que están del mismo lado
del límite de movimiento como el vector de movimiento 74 del
macrobloque de anclaje se deberían usar para estimar el vector de
movimiento del macrobloque erróneo. En la figura 7A, se genera una
ventana 82 de vector de movimiento en el bloque 2067 de la figura 4
como se ha mencionado anteriormente. Sin clasificación de
movimiento local, la ventana 82 de vector de movimiento se usa
entonces para generar el vector 86 de movimiento evaluada del
macrobloque erróneo. En un ejemplo, un proceso similar al acto en
el bloque 204 d la figura 2 se aplica para generar el vector de
movimiento estimada. Como se ilustra, el vector 86 de movimiento
estimada no se puede precisar a lo largo de los bordes de
movimiento. En la figura 7B, la ventana 82 de vector de movimiento
se procesa, además, por la clasificación de movimiento local según
el bloque 2068 de la figura 4. Por lo tanto, los vectores de
movimiento localizados en el otro lado del límite de movimiento se
eliminan en la nueva ventana de vectores de movimiento 90. Por
consiguiente, el vector 82 de movimiento estimado generado sobre la
base de la nueva ventana 90 es más preciso. Esta comparación
ilustra que la determinación y la clasificación del movimiento de
los macrobloques vecinos locales reducen las discontinuidades de
objeto causadas evaluando los vectores de movimiento incorrectos a
lo largo de los bordes de movimiento.
La figura 8 es un diagrama de flujo que ilustra
otro ejemplo de un procedimiento de procesamiento de una trama
multimedia que comprende una primera sección recibida con error. El
procedimiento empieza en un bloque 802, en el cual se obtienen
datos de predicción temporal que corresponden a una primera trama de
referencia. A continuación en un bloque 804, se determina si la
primera trama de referencia es fiable para estimar la primera
sección. Yendo a un bloque 806 se realiza una estimación de la
primera sección recibida con error sobre la base de una o más
secciones distintas de la primera sección de la trama multimedia y
la primera trama de referencia, si se determina que la primera
trama de referencia es fiable. Los hechos de estos bloques son
similares a la mencionado anteriormente en las figuras
1-7.
La figura 9 muestra un diagrama de bloques que
ilustra otro ejemplo de un descodificador configurado para
descodificar un flujo de datos multimedia entrantes. El flujo de
datos comprende una trama multimedia, que comprende, además, una
primera sección recibida con error. El descodificador comprende un
módulo de obtención 902, un módulo de determinación 904, un módulo
de estimación 906, y un procesador 908. El módulo de obtención 904
se configura para determinar si la primera trama de referencia es
fiable para estimar la primera sección. El módulo de estimación 906
se configura para estimar la primera sección recibida con error
sobre la base de una o más secciones distintas de la primera
sección de la trama multimedia y la primera trama de referencia, si
se determina que la primera trama de referencia es fiable. El
procesador 908 se configura para ejecutar uno o más aplicaciones de
software para controlar la operación
de otras unidades, como se ha mencionado anteriormente. En otros ejemplos se puede eliminar el procesador 908
de otras unidades, como se ha mencionado anteriormente. En otros ejemplos se puede eliminar el procesador 908
Los expertos en la técnica entenderán que la
información y las señales se pueden representar usando cualquiera
de las diversas tecnologías y técnicas. Por ejemplo, los datos,
instrucciones, ordenes, información, señales, bits, símbolos y
chips a los que se hace referencia a lo largo de toda la descripción
anterior se pueden representar por voltajes, corrientes, ondas
electromagnéticas, campos magnéticos o partículas magnéticas, o
cualquier combinación de los mismos.
Los expertos en la técnica apreciarán, además,
que los diversos bloques lógicos ilustrativos módulo y etapas de
algoritmo descrito en conexión con los ejemplos dados a conocer en
la presente memoria se pueden llevar a cabo como equipo
electrónico, software informático o combinaciones de ambos. Para
ilustrar claramente esta intercambiabilidad de equipo y software,
se han descrito diversos componentes ilustrativos, bloques, módulos
circuitos y etapas anteriormente generalmente en relativo a su
funcionalidad. La aplicación de tal funcionalidad como equipo o
software depende de las condiciones particulares de aplicación y
diseño impuestas en el sistema global. Los expertos en la técnica
pueden aplicar la funcionalidad descrita de diversas maneras para
cada aplicación particular, pero tales decisiones de aplicación no
se deberían interpretarse como que se salen del alcance de los
procedimientos dados a conocer.
Los diversos bloque lógicos, módulo y circuitos
ilustrativos en conexión con los ejemplos dados a conocer en la
presente memoria se puede ejecutar o llevar a la práctica con un
procesador de uso general, un procesador de señales digitales
(DSP), un circuito integrado específico de aplicación (ASIC), una
red de puertas programables de campo (FPGA) u otro dispositivo
lógico programable, componentes de equipo discreto de puertas
discretas o lógica de transistor, o cualquier combinación de los
mismos destinada a realizar las funciones descritas en la presente
memoria. Un procesador de uso generar puede ser un microprocesador,
pero en la alternativa, el procesador puede ser cualquier
procesador convencional, controlador, microcontrolador o máquina de
estado. Se puede aplicar también un procesador como una combinación
de dispositivos de computación, por ejemplo, una combinación de un
DSP y un microprocesador, una pluralidad de microprocesadores, uno o
más microprocesadores en combinación con un núcleo de DSP, o
cualquier otra configuración de este tipo.
Las etapas de un procesamiento o algoritmo
descritos en conexión con los ejemplos dados a conocer en la
presente memoria se pueden materializar directamente en equipo, en
un módulo de software ejecutado por un procesador, o en una
combinación de los dos. Un módulo de software puede residir en una
memoria RAM, una memoria flash, memoria ROM, memoria EPROM, memoria
EEPROM, registradores, disco duro, disco removible, un CDROM, o
cualquier otra forma de soporte de almacenamiento conocido en la
técnica. Un soporte de almacenamiento se acopla al procesador de
manera que el procesador pueda leer información a partir de, y
escribir información en, el soporte de almacenamiento. En la
alternativa, el soporte de almacenamiento puede ser solidario al
procesador. El procesador y el soporte de almacenamiento pueden
residir en un Circuito integrado específico de aplicación (ASIC). El
ASIC puede residir en un módem inalámbrico. En la alternativa, el
procesador y el soporte de almacenamiento puede residir como
componentes discretos en el módem inalámbrico.
La descripción anterior de los ejemplos
revelados se proporciona para permitir que cualquier experto en la
técnica realice o utilice los procedimientos y aparatos dados a
conocer. Las diversas modificaciones en estos ejemplos serán muy
evidentes para los expertos en la técnica, y los principios
definidos en la presente memoria se pueden aplicar a otros
ejemplos.
Claims (43)
1. Un procedimiento para procesar una trama
multimedia que comprende una primera sección recibida con error,
que comprende:
- \quad
- obtener (802) datos de predicción temporal que corresponden a una primera trama de referencia, comprendiendo los datos de predicción temporal vectores de movimiento que corresponden a secciones de la primera trama de referencia;
- \quad
- determinar si cada par de vectores de movimiento, que comprende un vector de movimiento de la trama multimedia y un vector de movimiento colocalizado en la primera trama de referencia, es similar, si el par está disponible; y
- \quad
- determinar (804) que la primera trama de referencia es fiable si la relación entre el número de pares similares y el número de pares disponibles es superior a un valor de umbral,
- \quad
- en el cual un par de vectores de movimiento está disponible si los dos vectores de movimientos se reciben correctamente; y
- \quad
- estimar (806) la primera sección recibida con error en base a una o más secciones diferentes de la primera sección de la trama multimedia y de la primera trama de referencia, si se determina que la primera trama de referencia es fiable.
\vskip1.000000\baselineskip
2. Procedimiento según la reivindicación 1, en
el cual una o más secciones comprenden una o más secciones vecinas
de la primera sección.
3. Procedimiento según la reivindicación 1, en
el cual se determina si cada par es similar en base a al menos uno
de los siguientes elementos: las magnitudes de los dos vectores de
movimiento y las direcciones de los dos vectores de movimiento.
4. Procedimiento según la reivindicación 3, en
el cual se determina si cada par no es similar solamente si las
magnitudes de los dos vectores de movimientos son grandes y las
direcciones de los vectores de movimiento son opuestas.
5. Procedimiento según la reivindicación 1, en
el cual cada sección es un macrobloque.
6. Procedimiento según la reivindicación 1,
que comprende, además, una puesta a escala (2042) de los vectores
de movimiento que corresponden a partes de una o diversas tramas de
referencia a partir de las cuales la trama multimedia debe ser
predicha, en vectores de movimiento que corresponden a partes de la
primera trama de referencia, de manera que la primera trama sea
adyacente a la trama multimedia.
7. Procedimiento según la reivindicación 6,
que comprende, además, una atenuación de al menos uno de los
vectores de movimiento puesto a escala.
8. Procedimiento según la reivindicación 7, en
el cual la atenuación comprende un filtrado de mediana.
9. Procedimiento según la reivindicación 1, en
el cual cada trama comprende una pluralidad de secciones y cada
sección comprende una o más unidades de base de la misma dimensión,
comprendiendo el procedimiento, además:
- \quad
- convertir (2044) vectores de movimiento que corresponden a partes de dimensiones variables de cada unidad base para formar un vector de movimiento base que corresponde a la unidad base,
- \quad
- en el cual cada unidad base está constituida de N por M bloques de píxeles, y además en el cual N y M son números enteros.
\vskip1.000000\baselineskip
10. Procedimiento según la reivindicación 9,
en el cual la fusión de vectores de movimiento comprende al menos
uno: cálculo de media simple, cálculo de media ponderada y filtrado
de mediana (2046).
11. Procedimiento según la reivindicación 9,
que comprende, además, una atenuación de al menos uno de los
vectores de movimiento fusionados.
12. Procedimiento según la reivindicación 11,
en el cual la atenuación comprende un filtrado de mediana.
13. Procedimiento según la reivindicación 1,
en el cual la estimación comprende, además:
determinar una sección de anclaje (42) en la
primera trama de referencia;
determinar (206) una primera ventana de vectores
de movimiento (70) en base de vectores de movimiento disponibles a
partir de una segunda ventana de vectores de movimiento (50) de la
trama multimedia centrada sobre la primera sección y a partir de
una tercer ventana de vectores de movimiento (40) de la primera
trama de referencia centrada sobre la sección de anclaje, siendo
cada ventana de vectores de movimiento una ventana que comprende un
número de secciones de la trama respectiva; y atenuar (208) los
vectores de movimiento disponibles en la primera ventana de
vectores de movimiento.
14. Procedimiento según la reivindicación 13,
que comprende, además, una puesta al día de la primera ventana de
vectores de movimiento, de tal manera que cada vector de movimiento
se marque como no disponible si el vector de movimiento no es
similar al vector de movimiento de la sección de anclaje.
15. Procedimiento según la reivindicación 14,
en el cual se determina si dos vectores de movimiento no son
similares en base de al menos uno de los siguientes elementos: las
magnitudes de los dos vectores de movimiento y las direcciones de
los dos vectores de movimiento.
16. Procedimiento según la reivindicación 15,
en el cual se determina que dos vectores de movimiento no son
similares solamente si las magnitudes de los dos vectores de
movimientos son grandes y las direcciones de los dos vectores de
movimiento son opuestas.
17. Procedimiento según la reivindicación 13,
en el cual la sección de anclaje (42) se selecciona para que sea la
sección situada en la localización que corresponde a la primera
sección errónea de la trama multimedia.
18. Procedimiento según la reivindicación
13;
en el cual la sección de anclaje (42) se
selecciona de tal manera que la sección de anclaje corresponde a
una sección de la primera trama de referencia que tiene la mayor
superposición con una zona de la primera trama de referencia,
en el cual la zona es apuntada por un vector de
movimiento de anclaje de la trama predicha, y
en el cual el vector de movimiento de anclaje se
calcula en base a vectores de movimiento de secciones vecinas
disponibles en la trama multimedia.
19. Procedimiento según la reivindicación 1,
que comprende, además, una estimación de la primera sección en base
a uno o más secciones distintas de la primera sección de la trama
multimedia y sin basarse en la primera trama de referencia, si se
determina que la primera trama de referencia no es fiable.
20. Procedimiento según la reivindicación 1,
en la cual el procedimiento se puede aplicar en un proceso de
descodificación causal y en un proceso de descodificación no
causal.
21. Un procesador (112) configurado para
realizar el procedimiento según cualquiera de las reivindicaciones
1 a 20.
22. Un aparato (100, 900) para procesar una
trama multimedia que comprende una primera sección recibida con
error, que comprende:
- \quad
- medios (102, 902) para obtener datos de predicción temporal que corresponden a una primera trama de referencia, comprendiendo los datos de predicción temporal vectores de movimiento que corresponden a secciones de la primera trama de referencia;
- \quad
- medios (104, 904) para determinar si cada par de vectores de movimiento que comprenden un vector de movimiento de la trama multimedia y un vector de movimiento colocalizado en la primera trama de referencia, es similar, si el par está disponible; y
- \quad
- medios (104, 904) para determinar que la primera trama de referencia es fiable si la relación entre el número de pares similares y el número de pares disponibles es superior a un valor de umbral, estando un par de vectores de movimiento disponible si los dos vectores de movimientos se reciben correctamente; y medios (106, 906) para estimar la primera sección recibida con error en base a una o más secciones diferentes de la primera sección de la trama multimedia y de la primera trama de referencia, si se determina que la primera trama de referencia es fiable.
23. Aparato según la reivindicación 22, en el
cual una o más secciones comprenden una o más secciones vecinas de
la primera sección.
24. Aparato según la reivindicación 22, en el
cual se determina si cada par es similar en base a al menos uno de
los siguientes elementos: las magnitudes de los dos vectores de
movimiento y las direcciones de los dos vectores de movimiento.
25. Aparato según la reivindicación 24, en el
cual se determina si cada par no es similar solamente si las
magnitudes de los dos vectores de movimientos son grandes y las
direcciones de los vectores de movimiento son opuestas.
26. Aparato según la reivindicación 22, en el
cual cada sección es un macrobloque.
27. Aparato según la reivindicación 22, que
comprende, además medios para una puesta a escala de los vectores
de movimiento que corresponden a partes de una o diversas tramas de
referencia a partir de las cuales la trama multimedia debe ser
predicha, en vectores de movimiento que corresponden a partes de la
primera trama de referencia, de manera que la primera trama de
referencia sea adyacente a la trama multimedia.
28. Aparato según la reivindicación 27, que
comprende, además, medios de atenuación de al menos uno de los
vectores de movimiento puesto a escala.
29. Aparato según la reivindicación 28, en el
cual los medios de atenuación comprende un filtrado de mediana.
30. Aparato según la reivindicación 22, en el
cual cada trama comprende una pluralidad de secciones y cada
sección comprende uno o más unidades de base de la misma dimensión,
comprendiendo, además:
- \quad
- medios para convertir vectores de movimiento que corresponden a partes de dimensiones variables de cada unidad base para formar un vector que corresponde a la unidad base,
- \quad
- en el cual cada unidad base está constituida de N por M bloques de píxeles, y además en el cual N y M son números enteros.
\vskip1.000000\baselineskip
31. Aparato según la reivindicación 30, en el
cual los medios de fusión de vectores de movimiento comprenden
medios para al menos una de cálculo de media simple, cálculo de
media ponderada y filtrado de mediana.
32. Aparato según la reivindicación 30, que
comprende, además, medios de atenuación de al menos uno de los
vectores de movimiento fusionados.
33. Aparato según la reivindicación 32, en el
cual la los medios de atenuación comprenden un filtrado de
mediana.
34. Aparato según la reivindicación 22, en el
cual los medios de estimación comprenden, además:
- \quad
- medios (904) para determinar una sección de anclaje en la primera trama de referencia;
- \quad
- medios para determinar una primera ventana de vectores de movimiento en base a vectores de movimiento disponibles a partir de una segunda ventana de vectores de movimiento de la trama multimedia centrada sobre la primera sección y a partir de una tercera ventana de vectores de movimiento (40) de la primera trama de referencia centrada sobre la sección de anclaje, siendo cada ventana de vectores de movimiento una ventana que comprende un número de secciones de la trama respectiva; y
- \quad
- medios para atenuar los vectores de movimiento disponibles en la primera ventana de vectores de movimiento.
\vskip1.000000\baselineskip
35. Aparato según la reivindicación 34, que
comprende, además, medios de puesta al día de la primera ventana de
vectores de movimiento, de tal manera que cada vector de movimiento
se marque como no disponible si el vector de movimiento no es
similar al vector de movimiento de la sección de anclaje.
36. Aparato según la reivindicación 35, en el
cual se determina si dos vectores de movimiento no son similares en
base a al menos uno de los siguientes: las magnitudes de los dos
vectores de movimiento y las direcciones de los dos vectores de
movimiento.
37. Aparato según la reivindicación 36, en el
cual se determina que dos vectores de movimiento no son similares
solamente si las magnitudes de los dos vectores de movimientos son
grandes y las direcciones de los dos vectores de movimiento son
opuestas.
38. Aparato según la reivindicación 34, en el
cual la sección de anclaje se selecciona para que sea la sección
situada en la localización que corresponde a la primera sección
errónea de la trama multimedia.
39. Aparato según la reivindicación 34;
en el cual la sección de anclaje se selecciona
de tal manera que la sección de anclaje corresponde a una sección
de la primera trama de referencia que tiene la mayor superposición
con una zona de la primera trama de referencia,
en el cual la zona es apuntada por un vector de
movimiento de anclaje de la trama predicha, y en el cual el vector
de movimiento de anclaje se calcula en base a vectores de movimiento
de secciones vecinas disponibles en la trama multimedia.
\newpage
40. Aparato según la reivindicación 22, que
comprende, además, medios para la estimación de la primera sección
en base a uno o más secciones distintas de la primera sección de la
trama multimedia y sin basarse en la primera trama de referencia,
si se determina que la primera trama de referencia no es fiable.
41. Aparato según la reivindicación 22, en la
cual el aparato se puede aplicar en un proceso de descodificación
causal y en un proceso de descodificación no causal.
42. Un soporte legible por ordenador que
materializa medios para hacer que un ordenador ejecute el
procedimiento según cualquiera de las reivindicaciones 1 a 20.
43. Un aparato para procesar una trama
multimedia que comprende una primera sección recibida en error según
la reivindicación 22 o 23, en el cual los medios de obtención son
un generador de datos de predicción temporal, los medios de
determinación son un detector de cambio de movimiento de trama y los
medios de estimación son un estimador de vector de movimiento.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66086705P | 2005-03-10 | 2005-03-10 | |
US660867P | 2005-03-10 | ||
US68027705P | 2005-05-11 | 2005-05-11 | |
US680277P | 2005-05-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2330142T3 true ES2330142T3 (es) | 2009-12-04 |
Family
ID=36588932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES06737648T Active ES2330142T3 (es) | 2005-03-10 | 2006-03-10 | Procedimiento y aparato de encubrimiento de errores temporales para trama p. |
Country Status (10)
Country | Link |
---|---|
US (1) | US8693540B2 (es) |
EP (1) | EP1856918B1 (es) |
JP (1) | JP2008533845A (es) |
KR (1) | KR100926205B1 (es) |
CN (1) | CN101189884B (es) |
AT (1) | ATE439742T1 (es) |
DE (1) | DE602006008436D1 (es) |
ES (1) | ES2330142T3 (es) |
TW (1) | TW200706011A (es) |
WO (1) | WO2006099087A1 (es) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2362533A (en) * | 2000-05-15 | 2001-11-21 | Nokia Mobile Phones Ltd | Encoding a video signal with an indicator of the type of error concealment used |
US6765964B1 (en) | 2000-12-06 | 2004-07-20 | Realnetworks, Inc. | System and method for intracoding video data |
US8780957B2 (en) | 2005-01-14 | 2014-07-15 | Qualcomm Incorporated | Optimal weights for MMSE space-time equalizer of multicode CDMA system |
WO2006099082A2 (en) * | 2005-03-10 | 2006-09-21 | Qualcomm Incorporated | Content adaptive multimedia processing |
US7925955B2 (en) * | 2005-03-10 | 2011-04-12 | Qualcomm Incorporated | Transmit driver in communication system |
ATE456256T1 (de) * | 2005-03-10 | 2010-02-15 | Qualcomm Inc | Decoder-architektur für optimiertes fehlermanagement in multimedia-strömen |
US7660354B2 (en) * | 2005-05-11 | 2010-02-09 | Fang Shi | Temporal error concealment for bi-directionally predicted frames |
US8018998B2 (en) * | 2005-05-20 | 2011-09-13 | Microsoft Corporation | Low complexity motion compensated frame interpolation method |
US8879857B2 (en) | 2005-09-27 | 2014-11-04 | Qualcomm Incorporated | Redundant data encoding methods and device |
US8948260B2 (en) | 2005-10-17 | 2015-02-03 | Qualcomm Incorporated | Adaptive GOP structure in video streaming |
US8654848B2 (en) | 2005-10-17 | 2014-02-18 | Qualcomm Incorporated | Method and apparatus for shot detection in video streaming |
FR2898459B1 (fr) * | 2006-03-08 | 2008-09-05 | Canon Kk | Procede et dispositif de reception d'images ayant subi des pertes en cours de transmission |
US9131164B2 (en) | 2006-04-04 | 2015-09-08 | Qualcomm Incorporated | Preprocessor method and apparatus |
US8509313B2 (en) * | 2006-10-10 | 2013-08-13 | Texas Instruments Incorporated | Video error concealment |
JP4427086B2 (ja) * | 2006-12-27 | 2010-03-03 | パナソニック株式会社 | 動画像復号化装置 |
KR100855976B1 (ko) * | 2007-02-02 | 2008-09-02 | 삼성전자주식회사 | 배경과 이동 객체를 분리하여 움직임을 추정하는 프레임보간 장치 및 프레임 보간 방법 |
KR101366244B1 (ko) * | 2007-04-24 | 2014-02-21 | 삼성전자주식회사 | 레지듀얼 데이터를 이용한 영상의 에러 은닉 방법 및 장치 |
US8605786B2 (en) * | 2007-09-04 | 2013-12-10 | The Regents Of The University Of California | Hierarchical motion vector processing method, software and devices |
US8848793B2 (en) * | 2007-10-31 | 2014-09-30 | Broadcom Corporation | Method and system for video compression with integrated picture rate up-conversion |
US8917769B2 (en) * | 2009-07-03 | 2014-12-23 | Intel Corporation | Methods and systems to estimate motion based on reconstructed reference frames at a video decoder |
US9654792B2 (en) | 2009-07-03 | 2017-05-16 | Intel Corporation | Methods and systems for motion vector derivation at a video decoder |
US8462852B2 (en) | 2009-10-20 | 2013-06-11 | Intel Corporation | Methods and apparatus for adaptively choosing a search range for motion estimation |
JP5248632B2 (ja) * | 2010-01-14 | 2013-07-31 | インテル コーポレイション | 動き推定のための技術 |
US20110249127A1 (en) * | 2010-04-07 | 2011-10-13 | Cisco Technology, Inc. | Estimating Video Quality Corruption in Lossy Networks |
JP5721851B2 (ja) | 2010-12-21 | 2015-05-20 | インテル・コーポレーション | Dmvd処理のシステムおよび方法の改善 |
GB2488816A (en) * | 2011-03-09 | 2012-09-12 | Canon Kk | Mapping motion vectors from a plurality of reference frames to a single reference frame |
ES2960089T3 (es) | 2012-06-08 | 2024-02-29 | Samsung Electronics Co Ltd | Procedimiento y aparato para la ocultación de errores de trama y procedimiento y aparato para la decodificación de audio |
JP6434411B2 (ja) | 2012-09-24 | 2018-12-05 | サムスン エレクトロニクス カンパニー リミテッド | フレームエラー隠匿方法及びその装置、並びにオーディオ復号化方法及びその装置 |
EP2998934B1 (en) * | 2013-05-16 | 2020-08-05 | Sony Corporation | Image processing device, image processing method, and program |
US9407923B2 (en) * | 2013-05-20 | 2016-08-02 | Gamefly Israel Ltd. | Overconing lost IP packets in streaming video in IP networks |
CN108600749B (zh) * | 2015-08-29 | 2021-12-28 | 华为技术有限公司 | 图像预测的方法及设备 |
US10291936B2 (en) | 2017-08-15 | 2019-05-14 | Electronic Arts Inc. | Overcoming lost or corrupted slices in video streaming |
US11272198B2 (en) * | 2019-01-30 | 2022-03-08 | Tencent America LLC | Method and apparatus for improved sub-block partitioning intra sub-partitions coding mode |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4301466A (en) | 1980-02-01 | 1981-11-17 | Ampex Corporation | Fast acting phase shifting apparatus for use in digital sampling systems |
JPS622747A (ja) | 1985-06-28 | 1987-01-08 | Toshiba Corp | 受信制御方式 |
US5504732A (en) | 1990-08-15 | 1996-04-02 | Del Mar Avionics | Null inflection detection and pulse expand latch in an optical recording system |
US5241546A (en) | 1991-02-01 | 1993-08-31 | Quantum Corporation | On-the-fly error correction with embedded digital controller |
JP3213389B2 (ja) | 1992-07-24 | 2001-10-02 | ローム株式会社 | 時分割多重通信装置 |
US6546441B1 (en) * | 1993-01-26 | 2003-04-08 | Logic Controls, Inc. | Point-of-sale system |
US5878217A (en) | 1994-11-21 | 1999-03-02 | Cirrus Logic, Inc. | Network controller for switching into DMA mode based on anticipated memory overflow and out of DMA mode when the host processor is available |
GB9509831D0 (en) * | 1995-05-15 | 1995-07-05 | Gerzon Michael A | Lossless coding method for waveform data |
US5633870A (en) | 1995-07-07 | 1997-05-27 | Sun Microsystems, Inc. | Method and apparatus for controlling data flow through an ATM interface |
JP3297293B2 (ja) | 1996-03-07 | 2002-07-02 | 三菱電機株式会社 | 動画像復号方法および動画像復号装置 |
US6026506A (en) | 1997-09-26 | 2000-02-15 | International Business Machines Corporation | Concealing errors in transport stream data |
US6335985B1 (en) * | 1998-01-07 | 2002-01-01 | Kabushiki Kaisha Toshiba | Object extraction apparatus |
KR100299132B1 (ko) | 1998-03-31 | 2001-10-29 | 윤종용 | 서비스 품질에 따른 프레임 데이터 처리를 위한 터보 부호화/복호화 장치 및 그 방법 |
KR100377939B1 (ko) | 1998-09-01 | 2003-06-12 | 삼성전자주식회사 | 이동통신시스템에서서브프레임전송을위한프레임구성장치및방법 |
US6490705B1 (en) | 1998-10-22 | 2002-12-03 | Lucent Technologies Inc. | Method and apparatus for receiving MPEG video over the internet |
US6553540B1 (en) | 1998-12-07 | 2003-04-22 | Telefonaktiebolaget Lm Ericsson | Efficient system and method for forward error correction |
US20020063807A1 (en) | 1999-04-19 | 2002-05-30 | Neal Margulis | Method for Performing Image Transforms in a Digital Display System |
JP3411234B2 (ja) | 1999-04-26 | 2003-05-26 | 沖電気工業株式会社 | 符号化情報受信復号装置 |
JP4269409B2 (ja) | 1999-05-19 | 2009-05-27 | ソニー株式会社 | 受信装置および方法 |
IL141800A0 (en) | 1999-07-06 | 2002-03-10 | Samsung Electronics Co Ltd | Rate matching device and method for a data communication system |
US6530009B1 (en) | 2000-03-13 | 2003-03-04 | Roxio, Inc. | Methods for increasing file storage capacity of optical discs |
KR100833222B1 (ko) | 2000-03-29 | 2008-05-28 | 삼성전자주식회사 | 멀티미디어 송수신 장치 및 방법 |
FI120125B (fi) | 2000-08-21 | 2009-06-30 | Nokia Corp | Kuvankoodaus |
US6804494B2 (en) | 2001-06-11 | 2004-10-12 | Qualcomm Inc. | System and method for the detection and compensation of radio signal time of arrival errors |
DE60135036D1 (de) | 2001-10-05 | 2008-09-04 | Mitsubishi Electric Corp | Verfahren und Vorrichtung zur Kompensation von fehlerhaften Bewegungsvektoren in Bilddaten |
KR100418199B1 (ko) | 2001-12-31 | 2004-02-14 | 트라이콤텍 주식회사 | 단거리 전용 고속 무선 통신 기반의 차량 탑재 장치 |
JP2004007379A (ja) * | 2002-04-10 | 2004-01-08 | Toshiba Corp | 動画像符号化方法及び動画像復号化方法 |
EP1337065A1 (en) | 2002-02-13 | 2003-08-20 | Telefonaktiebolaget L M Ericsson (Publ) | Semi-reliable ARQ method and device thereof |
GB2386275B (en) | 2002-03-05 | 2004-03-17 | Motorola Inc | Scalable video transmissions |
JP4185314B2 (ja) | 2002-06-07 | 2008-11-26 | 富士通株式会社 | 情報記録再生装置、光ディスク装置及び、データ再生方法 |
US20060093031A1 (en) | 2002-07-31 | 2006-05-04 | Koninkijke Phillips Electronics N.V. | Method and apparatus for performing multiple description motion compensation using hybrid predictive codes |
EP1395061A1 (en) | 2002-08-27 | 2004-03-03 | Mitsubishi Electric Information Technology Centre Europe B.V. | Method and apparatus for compensation of erroneous motion vectors in video data |
JP3513148B1 (ja) * | 2002-10-11 | 2004-03-31 | 株式会社エヌ・ティ・ティ・ドコモ | 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、動画像符号化プログラム、及び動画像復号プログラム |
US7499417B2 (en) | 2003-01-07 | 2009-03-03 | Samsung Electronics Co., Ltd. | Apparatus and method for controlling an output buffer in a hybrid automatic repeat request (HARQ) mobile communication system |
KR100952761B1 (ko) | 2003-02-25 | 2010-04-14 | 엘지전자 주식회사 | 시간적 확장성 영상 코딩 장치 및 방법 |
JP4186705B2 (ja) | 2003-05-21 | 2008-11-26 | 日本電気株式会社 | デジタル放送の補完視聴サービスサーバ、携帯受信機、及びデジタル放送補完視聴サービス方式 |
KR100621093B1 (ko) | 2003-06-03 | 2006-09-07 | 삼성전자주식회사 | 무선 pan상의 어플리케이션에 채널 시간을 할당하는장치 및 방법 |
US7450610B2 (en) | 2003-06-03 | 2008-11-11 | Samsung Electronics Co., Ltd. | Apparatus and method for allocating channel time to applications in wireless PAN |
US7221680B2 (en) | 2003-09-02 | 2007-05-22 | Qualcomm Incorporated | Multiplexing and transmission of multiple data streams in a wireless multi-carrier communication system |
US8599764B2 (en) | 2003-09-02 | 2013-12-03 | Qualcomm Incorporated | Transmission of overhead information for reception of multiple data streams |
AU2004307449C1 (en) | 2003-10-24 | 2009-04-30 | Qualcomm Incorporated | Frequency division multiplexing of multiple data streams in a wireless multi-carrier communication system |
US8526412B2 (en) | 2003-10-24 | 2013-09-03 | Qualcomm Incorporated | Frequency division multiplexing of multiple data streams in a wireless multi-carrier communication system |
KR20060096450A (ko) | 2003-10-24 | 2006-09-11 | 콸콤 인코포레이티드 | 다수의 데이터 스트림들의 수신을 위한 오버헤드 정보의전송 |
US8582640B2 (en) | 2003-12-16 | 2013-11-12 | Sony Corporation | Adaptive joint source channel coding |
KR100770902B1 (ko) | 2004-01-20 | 2007-10-26 | 삼성전자주식회사 | 고속 무선 데이터 시스템을 위한 가변 부호율의 오류 정정부호 생성 및 복호 장치 및 방법 |
US7323455B2 (en) * | 2004-03-24 | 2008-01-29 | Wyeth | 7-aryl 1,5-dihydro-4,1-benzoxazepin-2(3H)-one derivatives and their use as progesterone receptor modulators |
US7882421B2 (en) | 2004-05-06 | 2011-02-01 | Seyfullah Halit Oguz | Method and apparatus for joint source-channel map decoding |
US7197692B2 (en) | 2004-06-18 | 2007-03-27 | Qualcomm Incorporated | Robust erasure detection and erasure-rate-based closed loop power control |
KR20050120491A (ko) | 2004-06-19 | 2005-12-22 | 삼성전자주식회사 | 멀티미디어 방송 시스템에서의 전송 에러 처리방법 및장치 |
US20060013320A1 (en) | 2004-07-15 | 2006-01-19 | Oguz Seyfullah H | Methods and apparatus for spatial error concealment |
US7929776B2 (en) | 2005-03-10 | 2011-04-19 | Qualcomm, Incorporated | Method and apparatus for error recovery using intra-slice resynchronization points |
ATE456256T1 (de) | 2005-03-10 | 2010-02-15 | Qualcomm Inc | Decoder-architektur für optimiertes fehlermanagement in multimedia-strömen |
WO2006099082A2 (en) | 2005-03-10 | 2006-09-21 | Qualcomm Incorporated | Content adaptive multimedia processing |
US7653860B2 (en) | 2005-03-10 | 2010-01-26 | Qualcomm Incorporated | Transmit driver data communication |
US8165167B2 (en) | 2005-03-10 | 2012-04-24 | Qualcomm Incorporated | Time tracking for a communication system |
US7925955B2 (en) | 2005-03-10 | 2011-04-12 | Qualcomm Incorporated | Transmit driver in communication system |
US7995656B2 (en) | 2005-03-10 | 2011-08-09 | Qualcomm Incorporated | Scalable video coding with two layer encoding and single layer decoding |
US20070078021A1 (en) * | 2005-10-05 | 2007-04-05 | Larson Darren V | Golf game system and method |
-
2006
- 2006-03-09 US US11/373,596 patent/US8693540B2/en active Active
- 2006-03-10 EP EP06737648A patent/EP1856918B1/en not_active Not-in-force
- 2006-03-10 ES ES06737648T patent/ES2330142T3/es active Active
- 2006-03-10 KR KR1020077023216A patent/KR100926205B1/ko active IP Right Grant
- 2006-03-10 JP JP2008500940A patent/JP2008533845A/ja active Pending
- 2006-03-10 CN CN2006800148695A patent/CN101189884B/zh not_active Expired - Fee Related
- 2006-03-10 AT AT06737648T patent/ATE439742T1/de not_active IP Right Cessation
- 2006-03-10 DE DE602006008436T patent/DE602006008436D1/de active Active
- 2006-03-10 TW TW095108324A patent/TW200706011A/zh unknown
- 2006-03-10 WO PCT/US2006/008489 patent/WO2006099087A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
KR20070110549A (ko) | 2007-11-19 |
US20060215761A1 (en) | 2006-09-28 |
TW200706011A (en) | 2007-02-01 |
US8693540B2 (en) | 2014-04-08 |
WO2006099087A1 (en) | 2006-09-21 |
DE602006008436D1 (de) | 2009-09-24 |
KR100926205B1 (ko) | 2009-11-09 |
EP1856918A1 (en) | 2007-11-21 |
EP1856918B1 (en) | 2009-08-12 |
CN101189884A (zh) | 2008-05-28 |
JP2008533845A (ja) | 2008-08-21 |
CN101189884B (zh) | 2012-01-11 |
ATE439742T1 (de) | 2009-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2330142T3 (es) | Procedimiento y aparato de encubrimiento de errores temporales para trama p. | |
ES2336039T3 (es) | Procedimiento y aparato para determinar un procedimiento de codificacion en base a un valor de distorsion relacionado con el ocultamiento de errores. | |
RU2697927C9 (ru) | Устройство декодирования движущегося изображения и способ декодирования движущегося изображения | |
US7660354B2 (en) | Temporal error concealment for bi-directionally predicted frames | |
KR101012624B1 (ko) | 통합 에러 은폐 프레임워크를 위한 방법 및 장치 | |
RU2697806C9 (ru) | Устройство декодирования движущегося изображения и способ декодирования движущегося изображения | |
KR102014332B1 (ko) | 비디오 코딩 방법 및 장치 | |
US10911773B2 (en) | Motion vector difference coding and decoding | |
JP2010081465A (ja) | 動画像符号化方法および動画像復号化方法 | |
US10375402B2 (en) | Image encoding apparatus and method, and image encoding program | |
JP2015181225A (ja) | 動画像符号化装置および動画像符号化方法 | |
JP2017118459A (ja) | 映像符号化装置、映像符号化方法及び映像符号化プログラム | |
CN105992012B (zh) | 一种错误隐藏的方法和装置 | |
JP2014204208A (ja) | 予測モード決定方法、動画像符号化装置、及び予測モード決定プログラム | |
JP2018093374A (ja) | 予測画像生成方法、予測画像生成装置及びコンピュータプログラム | |
KR20060085150A (ko) | 베이스 레이어의 내부모드 블록의 예측정보를 이용하여영상신호를 엔코딩/디코딩하는 방법 및 장치 | |
KR100828378B1 (ko) | 통신 시스템에서의 비디오 프레임 전송 방법 및 장치 | |
Psannis | Efficient redundant frames encoding algorithm for streaming video over error prone wireless channels | |
KR101378434B1 (ko) | 고속 화면내 예측 모드 결정 방법 | |
JP2007325206A (ja) | 動画像復号装置及び動画像復号方法 | |
JP5788952B2 (ja) | 動画像復号化方法 | |
KR100774453B1 (ko) | 인터넷의 실시간 영상 전송을 위한 에러 은닉 방법 | |
Dhamande et al. | Overview of Motion Estimation in Video Compression | |
JP2013123218A (ja) | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム | |
WO2013069269A1 (ja) | 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム、並びに動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム |