ES2726048T3 - Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento - Google Patents

Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento Download PDF

Info

Publication number
ES2726048T3
ES2726048T3 ES16164491T ES16164491T ES2726048T3 ES 2726048 T3 ES2726048 T3 ES 2726048T3 ES 16164491 T ES16164491 T ES 16164491T ES 16164491 T ES16164491 T ES 16164491T ES 2726048 T3 ES2726048 T3 ES 2726048T3
Authority
ES
Spain
Prior art keywords
movement information
predictors
predictor
image
candidates
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
Application number
ES16164491T
Other languages
English (en)
Inventor
Christophe Gisquet
Guillaume Laroche
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Application granted granted Critical
Publication of ES2726048T3 publication Critical patent/ES2726048T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • 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
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • 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
    • 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/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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Procedimiento de codificación de una secuencia de imágenes digitales en una secuencia de bits, estando, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el procedimiento: obtener (S502; S602, S604), para una porción de la imagen a codificar, predictores de información del movimiento como candidatos del predictor de información del movimiento, en el que los predictores de información del movimiento son predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen a codificar, o de una imagen de referencia; comprobar (S512; S606) si el número (N; N1) de candidatos del predictor de información del movimiento es menor que un número objetivo (Nmax) y, si es así, añadir (S608, S610) uno o varios predictores de información del movimiento como candidatos del predictor de información del movimiento para generar un conjunto de candidatos del predictor de información del movimiento diferentes unos de otros, teniendo dicho conjunto un número de candidatos del predictor de información del movimiento igual al número objetivo; seleccionar un predictor de información del movimiento para codificar la información del movimiento de la citada porción de la imagen a codificar a partir del conjunto generado de candidatos del predictor de información del movimiento; y codificar un elemento de información representativo de dicho predictor de información del movimiento seleccionado para la citada porción de la imagen a codificar, los predictores potenciales de información del movimiento a añadir comprenden uno o varios de tales predictores reales de información del movimiento adicionales y comprenden igualmente uno o varios predictores virtuales de información del movimiento que no disponen de vectores de movimiento obtenidos a partir de porciones de imagen que se están codificando o de una imagen de referencia, caracterizado por que: la adición (S608, S610) de uno o varios predictores de información del movimiento comprende: efectuar un primer proceso de adición que consiste en añadir (S608, S610) uno o varios de dichos otros predictores reales de información del movimiento; y efectuar una segunda prueba (S628) para determinar si el número (N2) de candidatos del predictor de información del movimiento es menor que dicho número objetivo (Nmax) y, si es el caso, efectuar un segundo proceso de adición que consiste en añadir (S618-S626) uno o varios de dichos predictores virtuales de información del movimiento como candidatos del predictor de información del movimiento.

Description

DESCRIPCIÓN
Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento
Sector de la invención
La invención se refiere a un procedimiento y dispositivo para la codificación de una secuencia de imágenes digitales y, a un procedimiento y, un dispositivo para la descodificación de la correspondiente secuencia de bits.
La invención pertenece al sector del procesamiento de señales digitales y, en particular, al sector de la compresión de video mediante la utilización de compensación del movimiento para reducir las duplicidades espaciales y temporales en las secuencias de video.
Descripción de la técnica anterior
Muchos formatos de compresión de video, por ejemplo, H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, utilizan la transformada discontinua del coseno (DCT, Discrete Cosine Transform) basada en bloques y la compensación del movimiento para eliminar duplicidades espaciales y temporales. Pueden ser indicados como formatos predictivos de video. Cada fotograma o imagen de la señal de video está dividida en fragmentos que están codificados y pueden ser descodificados de manera independiente. Un fragmento es habitualmente una porción rectangular del fotograma o, de manera más general, una porción de un fotograma o un fotograma entero. Además, cada fragmento está dividido en macrobloques (MB) y cada macrobloque está además dividido en bloques, habitualmente bloques de 8x8 píxeles. Los fotogramas codificados son de dos tipos: fotogramas predictibles temporales (ya sea predictibles a partir de un fotograma de referencia indicado como fotogramas-P, o predictibles a partir de dos fotogramas de referencia indicados como fotogramas-B), y fotogramas predictibles no temporales (indicados como Intra fotogramas o fotogramas-I).
La predicción temporal consiste en encontrar en un fotograma de referencia, bien un fotograma anterior o un fotograma futuro de la secuencia de video, una porción de imagen o una zona de referencia más cercana al bloque a codificar. Esta etapa es conocida como estimación de movimiento. A continuación, la diferencia entre el bloque a codificar y la porción de referencia es codificada (compensación del movimiento), junto con un elemento de información del movimiento relativo al vector de movimiento que indica la zona de referencia para ser utilizada para la compensación del movimiento.
Con el fin de reducir más el coste de la codificación de la información del movimiento, se ha propuesto codificar un vector de movimiento por la diferencia con respecto a un predictor del vector de movimiento, calculado habitualmente a partir de vectores de movimiento de los bloques que rodean al bloque a codificar.
En H.264, los vectores de movimiento son codificados con respecto a un predictor medio calculado a partir de vectores de movimiento situados en una proximidad casual del bloque a codificar, por ejemplo, de los bloques situados encima y a la izquierda del bloque a codificar. Solo la diferencia, indicada asimismo como vector de movimiento residual, entre el predictor medio y el vector residual de movimiento del bloque actual, es codificada. La codificación mediante la utilización de vectores de movimiento residuales ahorra coeficiente de bits o “bitrates” (número de bits por unidad de tiempo), pero necesita que el decodificador efectúe el mismo cálculo del predictor del vector de movimiento para descodificar el valor del vector de movimiento de un bloque a codificar.
Recientemente, se han propuesto otras mejoras, tales como la utilización de una serie de posibles predictores del vector de movimiento. Este procedimiento, indicado como competición de vectores de movimiento, consiste en la determinación entre varios predictores del vector de movimiento o candidatos de qué predictor del vector de movimiento minimiza el coste de la codificación, habitualmente un coste de distorsión de la velocidad, de la información residual del movimiento. La información residual del movimiento comprende el vector de movimiento residual, es decir, la diferencia entre el vector de movimiento real del bloque a codificar y el predictor del vector de movimiento seleccionado, y un elemento de información que indica el predictor del vector de movimiento seleccionado, tal como por ejemplo un valor codificado del índice del predictor del vector de movimiento seleccionado.
En la Codificación de video de alta eficiencia (HEVC, High Efficiency Video Coding) actualmente en proceso de estandarización, se ha propuesto la utilización de una serie de predictores del vector de movimiento, tal como se muestra esquemáticamente en la figura 1:3 llamados predictores espaciales del vector de movimiento V1, V2 y V3 adoptados de los bloques situados en la proximidad del bloque a codificar, un predictor medio del vector de movimiento calculado en base a los componentes de los tres predictores espaciales del vector de movimiento V1, V2 y V3, y un predictor temporal del vector de movimiento V0 que es el vector de movimiento del bloque situado junto a una imagen anterior de la secuencia (por ejemplo, el bloque de la imagen N-1 situado en la misma posición espacial como bloque ‘en proceso de codificación’ de la imagen N). Actualmente en HEVC los 3 predictores espaciales del vector de movimiento son adoptados del bloque situado a la izquierda del bloque a codificar (V3), del bloque situado encima (V2) y de uno de los bloques situados en las respectivas esquinas del bloque a codificar, según una regla de disponibilidad predeterminada. Este esquema de selección de predictor del vector de movimiento se denomina Predictor avanzado del vector de movimiento (AMVP, Advanced Motion Vector Prediction). En el ejemplo de la figura 1, se selecciona el vector V1 del bloque situado arriba a la izquierda.
Finalmente, se recupera un conjunto de 5 candidatos a predictor del vector de movimiento que mezclan predictores espaciales y predictores temporales. Con el fin de reducir el sobrecoste de señalizar el predictor del vector de movimiento en la secuencia de bits, el conjunto de predictores del vector de movimiento se reduce eliminando los vectores de movimiento duplicados, es decir, los vectores de movimiento que tienen el mismo valor. Por ejemplo, en la ilustración de la figura 1, V1 y V2 son iguales, y V0 y V3 son también iguales, de manera que solo dos de ellos deben ser mantenidos como candidatos a predictor del vector de movimiento, por ejemplo, V0 y V1. En este caso, solo es necesario un bit para indicar el índice del predictor del vector de movimiento al descodificador.
Es posible otra reducción del conjunto de predictores del vector de movimiento, basada en los valores de los predictores. Una vez que se selecciona el mejor predictor del vector de movimiento y que se ha calculado el vector de movimiento residual, es posible eliminar además del conjunto de predicción los candidatos que no habrían sido seleccionados, conociendo el vector de movimiento residual y el criterio de optimización del coste del codificador. Una reducción suficiente del conjunto de predictores conduce a ganancias en el sobrecoste de señalización, dado que la indicación del predictor del vector de movimiento seleccionado puede ser codificada utilizando menos bits. En el límite, el conjunto de candidatos puede ser reducido a 1, por ejemplo, si todos los predictores del vector de movimiento son iguales, y, por lo tanto, no es necesario introducir ninguna información relativa al predictor del vector de movimiento seleccionado en la secuencia de bits.
La solicitud de patente WO2009/115901 A2 da a conocer la codificación de una secuencia de imágenes digitales en una secuencia de bits que implica una predicción del vector de movimiento en base a una lista de candidatos de vector de movimiento obtenida a partir de porciones de imagen de la imagen actual que están codificadas o son de una imagen de referencia. Además, la solicitud de patente da a conocer cómo añadir vectores reales o potenciales en caso de que la lista de candidatos de vector de movimiento esté vacía.
En resumen, la codificación de vectores de movimiento por diferencia con un predictor del vector de movimiento, junto con la reducción del número de candidatos a predictor del vector de movimiento conduce a una ganancia de compresión. No obstante, tal como se ha explicado anteriormente, para un bloque a codificar dado, la reducción del número de candidatos a predictor del vector de movimiento se basa en los valores adoptados por los predictores del vector de movimiento del conjunto, en particular, los valores de los vectores de movimiento de los bloques de la proximidad del vector de movimiento del bloque situado junto al mismo. Asimismo, el descodificador necesita poder aplicar el mismo análisis del conjunto de posibles predictores del vector de movimiento que el codificador, para poder deducir la cantidad de bits utilizados para indicar el predictor del vector de movimiento seleccionado y poder descodificar el índice del predictor del vector de movimiento y finalmente descodificar el vector de movimiento utilizando el vector residual del movimiento recibido. Haciendo referencia al ejemplo de la figura 1, el conjunto de predictores del vector de movimiento del bloque ‘en proceso de codificación’, es reducido por el codificador a V0 y V1, de manera que el índice es codificado en un único bit. Si el bloque ‘situado junto a’ la imagen N-1 se pierde durante la transmisión, el descodificador no puede recuperar el valor de V0 y, por lo tanto, no puede averiguar que V0 y V3 son iguales. Por lo tanto, el descodificador no puede encontrar cuántos bits se utilizan para la descodificación del índice del predictor del vector de movimiento para el bloque ‘en proceso de codificación’ y, en consecuencia, el descodificador no puede analizar sintácticamente de manera correcta los datos del fragmento, dado que no puede encontrar dónde se detiene la codificación del índice y dónde se inicia la codificación de los datos de video.
Por lo tanto, el hecho de que el número de bits utilizados para la señalización de los predictores del vector de movimiento depende de los valores adoptados por los predictores del vector de movimiento hace que el procedimiento sea muy vulnerable a los errores de transmisión, cuando se transmite la secuencia de bits a un descodificador en una red de comunicación con pérdidas. De hecho, el procedimiento requiere el conocimiento de los valores de los predictores del vector de movimiento para analizar sintácticamente la secuencia de bits de manera correcta en el descodificador. En caso de pérdidas de paquetes, cuando se pierden algunos valores residuales del vector del movimiento, resulta imposible que el descodificador determine cuántos bits se utilizaron para codificar el índice que representa el predictor del vector de movimiento y, de este modo, resulta imposible analizar sintácticamente la secuencia de bits de manera correcta. Tal error se puede propagar, originando la desincronización del descodificador hasta que la imagen de sincronización siguiente, codificada sin predicción, es recibida por el descodificador.
Sería deseable, al menos, poder analizar sintácticamente la secuencia de bits codificada en un descodificador incluso en caso de pérdidas de paquetes, de manera que sea posible aplicar posteriormente una cierta desincronización o cancelación de error.
Se ha propuesto, en el documento JCTVC-C166r1, ‘TE11: Estudio de la codificación del vector de movimiento (experimento 3.3a y 3.3c)’ por K. Sato, publicado en la 3a Reunión del Equipo de colaboración conjunta en la Codificación de videos (JTC-VC) de Guangzhou, 7-15 de octubre de 2010, utilizar solamente los predictores del vector de movimiento espaciales procedentes del mismo fragmento en el conjunto de predictores. Esta solución resuelve el problema del análisis sintáctico en el descodificador en caso de pérdidas de fragmentos. No obstante, la eficiencia de la codificación disminuye significativamente, dado que el predictor del vector de movimiento temporal ya no se utiliza. Por lo tanto, esta solución no resulta satisfactoria en términos de rendimiento de la compresión.
CARACTERÍSTICAS DE LA INVENCIÓN
Resulta deseable solucionar uno o varios de los inconvenientes de la técnica anterior. La presente invención está definida por las reivindicaciones 1 a 15 adjuntas. Cualquier ejemplo o realización que no se encuentre dentro del alcance de las reivindicaciones no forma parte de la invención, y se dan a conocer solo con fines ilustrativos.
Según un aspecto de la presente invención, está previsto un procedimiento de codificación de una secuencia de imágenes digitales en una secuencia de bits, estando, al menos, una porción de la imagen codificada mediante compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el procedimiento: recuperar una porción de imagen para codificar un conjunto inicial de predictores de información del movimiento; probar si el número (N; N1) de predictores de información del movimiento en dicho conjunto inicial es menor que un número objetivo y, si es así, añadir uno o varios predictores de información del movimiento a dicho conjunto inicial para generar un conjunto de predictores de información del movimiento; y seleccionar un predictor de información del movimiento para dicha porción de la imagen a codificar del conjunto generado de predictores de información del movimiento, en el que los predictores de información del movimiento de dicho conjunto inicial son predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen codificada o de una imagen de referencia, y los potenciales predictores de información del movimiento a añadir, incluyen uno o varios de tales predictores reales de información del movimiento adicionales e incluyen asimismo uno o varios predictores virtuales de información del movimiento que no tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificación o de una imagen de referencia.
Según otro aspecto de la presente invención, está previsto un procedimiento de descodificación de una secuencia de bits, que comprende una secuencia codificada de imágenes digitales, estando, al menos, una porción de la imagen codificada mediante compensación del movimiento con respecto a una imagen de referencia, comprendiendo el procedimiento: recuperar, para una porción de imagen a descodificar, un conjunto inicial de predictores de información del movimiento; probar si el número de predictores de información del movimiento de dicho conjunto inicial es menor que un número objetivo y, si es así, añadir uno o varios predictores de información del movimiento a dicho conjunto inicial para generar un conjunto de predictores de información del movimiento; y determinar un predictor de información del movimiento para dicha porción de imagen a descodificar utilizando el conjunto generado de predictores de información del movimiento, en el que los predictores de información del movimiento de dicho conjunto inicial son predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de descodificación o de una imagen de referencia, y los potenciales predictores de información del movimiento a añadir incluyen uno o varios de tales predictores de información del movimiento adicionales, e incluyen asimismo uno o varios predictores virtuales de información del movimiento que no tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de descodificación o de una imagen de referencia.
Según otro aspecto de la presente invención, está previsto un dispositivo para la codificación de una secuencia de imágenes digitales en una secuencia de bits, estando, al menos, una porción de la imagen codificada mediante compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el dispositivo: medios para la obtención, para una porción de la imagen a codificar, de un conjunto inicial de predictores de información del movimiento; medios para probar si el número de predictores de información del movimiento de dicho conjunto inicial es menor que un número objetivo y, si es así, añadir uno o varios predictores de información del movimiento a dicho conjunto inicial para generar un conjunto de predictores de información del movimiento; y medios para seleccionar un predictor de información del movimiento para dicha porción de la imagen a codificar del conjunto generado de predictores de información del movimiento, en el que los predictores de información del movimiento de dicho conjunto inicial son predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificación o de una imagen de referencia, y los potenciales predictores de información del movimiento a añadir incluyen uno o varios de tales predictores reales de información del movimiento adicionales, e incluyen asimismo uno o varios predictores virtuales de información del movimiento que no tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificación, o de una imagen de referencia.
Según otro aspecto de la presente invención, está previsto un dispositivo para la descodificación de una secuencia de bits que comprende una secuencia codificada de imágenes digitales, estando, al menos, una porción de la imagen codificada mediante compensación del movimiento con respecto a una imagen de referencia, comprendiendo el dispositivo: medios para recuperar, para una porción de la imagen a codificar, un conjunto inicial de predictores de información del movimiento; medios para probar si el número de predictores de información del movimiento de dicho conjunto inicial es menor que un número objetivo y, si es así, añadir uno o varios predictores de información del movimiento a dicho conjunto inicial para generar un conjunto de predictores de información del movimiento; y medios para determinar un predictor de información del movimiento para dicha porción de imagen a descodificar utilizando el conjunto generado de predictores de información del movimiento, en el que los predictores de información del movimiento de dicho conjunto inicial son predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de descodificación o de una imagen de referencia, y los potenciales predictores de información del movimiento a añadir incluyen uno o varios de tales predictores reales de información del movimiento, e incluyen asimismo uno o varios predictores virtuales de información del movimiento que no tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de descodificación o de una imagen de referencia.
Según otro aspecto de la presente invención, está previsto un programa informático que, cuando es ejecutado en un ordenador, hace que el ordenador lleve a cabo el procedimiento para la codificación de una señal de video digital, tal como se ha descrito anteriormente, o un procedimiento para la descodificación de una secuencia de bits tal como se ha descrito anteriormente. El programa puede ser almacenado en medios de almacenamiento legible por ordenador. Según otro aspecto de la presente invención, está previsto un procedimiento de codificación de una secuencia de imágenes digitales en una secuencia de bits, siendo, al menos, una porción de la imagen codificada mediante compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el procedimiento: recuperar para una porción de la imagen a codificar un conjunto inicial de predictores de información del movimiento; probar si el número de predictores de información del movimiento de dicho conjunto inicial es menor que un número objetivo y, si es así, añadir uno o varios predictores de información del movimiento a dicho conjunto inicial para generar un conjunto de predictores de información del movimiento que tienen una diversidad controlada; y seleccionar un predictor de información del movimiento para dicha porción de la imagen a codificar de dicho conjunto generado de predictores de información del movimiento.
En una realización, los predictores de información del movimiento de dicho conjunto inicial son predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificación o de una imagen de referencia, y los predictores potenciales de información del movimiento a añadir incluyen uno o varios de tales otros predictores reales de información del movimiento e incluyen asimismo uno o varios predictores virtuales de información del movimiento que no tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificación o de una imagen de referencia.
En una realización el procedimiento comprende: probar si el número de predictores de información del movimiento en dicho conjunto inicial es menor que dicho número objetivo y, si es así, en primer lugar, añadir uno o varios de dichos predictores reales de información del movimiento adicionales y, a continuación, probar de nuevo si el número de predictores de información del movimiento es menor que dicho número objetivo y, si es así, añadir uno o varios de dichos predictores virtuales de información del movimiento.
En una realización, al menos, uno de dichos predictores virtuales de información del movimiento se calcula a partir de un predictor existente de información del movimiento.
En una realización, se añade un vector suplementario a un vector de movimiento de un predictor existente de información del movimiento, teniendo el vector suplementario una dirección predeterminada con respecto a la dirección del vector de movimiento del predictor existente de información del movimiento.
En una realización, la magnitud del vector suplementario depende de la magnitud del vector de movimiento del predictor existente de información del movimiento.
En una realización, el vector suplementario tiene componentes proporcionales a los respectivos componentes correspondientes del vector de movimiento del predictor existente de información del movimiento.
En una realización, el procedimiento comprende además la codificación de un elemento de información representativo de dicho predictor seleccionado de información del movimiento.
En una realización, el procedimiento comprende además la señalización en dicha secuencia de bits de dicho número objetivo.
En una realización, el procedimiento comprende la eliminación de duplicados de dicho conjunto inicial.
Según otro aspecto de la presente invención, está previsto un procedimiento de descodificación de una secuencia de bits que comprende una secuencia codificada de imágenes digitales, estando, al menos, una porción de la imagen codificada mediante compensación del movimiento con respecto a una imagen de referencia, comprendiendo el procedimiento: recuperar para una porción de imagen a descodificar un conjunto inicial de predictores de información del movimiento; probar si el número de predictores de información del movimiento en dicho conjunto inicial es menor que un número objetivo y, si es así, añadir uno o varios predictores de información del movimiento a dicho conjunto inicial para generar un conjunto de predictores de información del movimiento que tienen una diversidad controlada; y determinar un predictor de información del movimiento para dicha porción de imagen a descodificar a partir del conjunto generado de predictores de información del movimiento.
En una realización, el procedimiento comprende además descodificar un elemento de información representativo de un predictor de información del movimiento seleccionado para dicha porción de la imagen a codificar.
En una realización, el procedimiento comprende además recuperar dicho predictor de información del movimiento seleccionado de dicho conjunto generado de predictores de información del movimiento utilizando dicho elemento de información descodificado.
En una realización, los predictores de información del movimiento de dicho conjunto inicial son predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen descodificada o de una imagen de referencia, y los potenciales predictores de información del movimiento a añadir incluyen uno o varios de tales predictores reales de información del movimiento, e incluyen asimismo uno o varios predictores reales de información del movimiento que no tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de descodificación, o de una imagen de referencia.
En una realización, el procedimiento comprende: probar si el número de predictores de información del movimiento en dicho conjunto inicial es menor que dicho número objetivo y, si es así, en primer lugar, añadir uno o varios de dichos predictores reales de información del movimiento adicionales y, a continuación, probar de nuevo si el número de predictores de información del movimiento tras la adición de los otros predictores de información del movimiento actuales es menor que dicho número objetivo y, si es así, añadir uno o varios de dichos predictores virtuales de información del movimiento.
En una realización, al menos, uno de dichos predictores virtuales de información del movimiento se calcula a partir de un predictor existente de información del movimiento.
En una realización, un vector suplementario es añadido a un vector de movimiento de un predictor existente de información del movimiento, teniendo el vector suplementario una dirección predeterminada con respecto a la dirección del vector de movimiento del predictor existente de información del movimiento.
En una realización, la magnitud del vector suplementario depende de la magnitud del vector de movimiento del predictor existente de información del movimiento,
En una realización, el vector suplementario tiene componentes proporcionales a los respectivos componentes correspondientes del vector de movimiento del predictor existente de información del movimiento.
En una realización, el procedimiento comprende además recuperar dicho número objetivo a partir de dicha secuencia de bits.
En una realización, el procedimiento comprende eliminar duplicados de dicho conjunto inicial.
Otros aspectos de la invención proporcionan el dispositivo correspondiente para la codificación, el correspondiente dispositivo para la descodificación y los correspondientes programas informáticos y medios de almacenamiento legibles por ordenador.
Según otro aspecto de la presente invención, está previsto un procedimiento para codificar una secuencia de imágenes digitales en una secuencia de bits, estando, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el procedimiento: recuperar un primer conjunto de predictores de información del movimiento para una porción de la imagen a codificar; realizar una primera prueba de si el número de predictores de información del movimiento en dicho primer conjunto es menor que un número objetivo y, si es así, efectuar un primer proceso de adición que consiste en añadir uno o varios predictores de información del movimiento a dicho primer conjunto para recuperar un segundo conjunto de predictores de información del movimiento; efectuar una segunda prueba de si el número de predictores de información del movimiento en dicho segundo conjunto es menor que dicho número objetivo y, si es así, efectuar un segundo proceso de adición que consiste en añadir uno o varios predictores de información del movimiento a dicho segundo conjunto, para generar un conjunto de predictores de información del movimiento que tienen una diversidad controlada; y seleccionar un predictor de información del movimiento para dicha porción de la imagen a codificar del conjunto generado de predictores de información del movimiento.
En una realización, los predictores de información del movimiento de dicho primer conjunto son predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificación o de una imagen de referencia, y dicho primer proceso de adición añade uno o varios predictores de información del movimiento que no tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de codificación o de una imagen de referencia.
En una realización, al menos, uno de dichos predictores virtuales de información del movimiento es calculado a partir de un predictor existente de información del movimiento.
En una realización, un vector suplementario es añadido a un vector de movimiento de un predictor existente de información del movimiento, teniendo el vector suplementario una dirección predeterminada con respecto a la dirección del vector de movimiento del predictor existente de información del movimiento.
En una realización, la magnitud del vector suplementario depende de la magnitud del vector de movimiento del predictor existente de información del movimiento.
En una realización, el vector suplementario tiene componentes proporcionales a los respectivos componentes correspondientes del vector de movimiento del predictor existente de información del movimiento.
En una realización, el procedimiento comprende además codificar un elemento de información representativo de dicho predictor de información del movimiento seleccionado.
En una realización, el procedimiento comprende además señalizar en dicha secuencia de bits dicho número objetivo. En una realización, el procedimiento comprende eliminar duplicados de dicho primer conjunto.
Según otro aspecto de la presente invención, está previsto un procedimiento de descodificación de una secuencia de bits que comprende una secuencia codificada de imágenes digitales, estando, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una imagen de referencia, comprendiendo el procedimiento: recuperar un primer conjunto de predictores de información del movimiento para una porción de la imagen a codificar; efectuar una primera prueba de si el número de predictores de información del movimiento de dicho primer conjunto es menor que un número objetivo y, si es así, efectuar un primer proceso de adición que consiste en añadir uno o varios predictores de información del movimiento a dicho primer conjunto para recuperar un segundo conjunto de predictores de información del movimiento; realizar una segunda prueba de si el número de predictores de información del movimiento de dicho segundo conjunto es menor que dicho número objetivo y, si es así, efectuar un segundo proceso de adición que consiste en añadir uno o varios predictores de información del movimiento a dicho segundo conjunto, para generar un conjunto de predictores de información del movimiento que tienen una diversidad controlada; y determinar un predictor de información del movimiento para dicha porción de la imagen a codificar de dicho conjunto de predictores de información del movimiento.
En una realización, el procedimiento comprende además descodificar un elemento de información representativo de un predictor de información del movimiento seleccionado para dicha porción de imagen a descodificar.
En una realización, el procedimiento comprende además recuperar dicho predictor de información del movimiento seleccionado de dicho conjunto generado de predictores de información del movimiento mediante la utilización de dicho elemento de información descodificado.
En una realización, los predictores de información del movimiento de dicho primer conjunto de predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de codificación o de una imagen de referencia, y dicho primer proceso de adición añade uno o varios de tales predictores reales de información del movimiento adicionales, y dicho segundo proceso de adición añade uno o varios predictores virtuales de información del movimiento que no tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de descodificación o de una imagen de referencia.
En una realización, al menos, uno de dichos predictores virtuales de información del movimiento es calculado a partir de un predictor existente de información del movimiento.
En una realización, un vector suplementario es añadido a un vector de movimiento de un predictor existente de información del movimiento, teniendo el vector suplementario una dirección predeterminada con respecto a la dirección del vector de movimiento del predictor existente de información del movimiento.
En una realización, la magnitud de un vector suplementario depende de la magnitud del vector de movimiento del predictor existente de información del movimiento.
En una realización, el vector suplementario tiene componentes proporcionales a los respectivos componentes correspondientes del vector de movimiento del predictor existente de información del movimiento.
En una realización, el procedimiento comprende además recuperar dicho número objetivo de dicha secuencia de bits.
En una realización, el procedimiento comprende además eliminar duplicados de dicho primer conjunto.
Otros aspectos de la invención proporcionan un dispositivo para codificación correspondiente, un dispositivo de descodificación correspondiente y programas informáticos correspondientes y medios de almacenamiento legibles por ordenador.
Resulta asimismo deseable proporcionar un procedimiento que permita un correcto análisis sintáctico en el descodificador incluso en el caso de una secuencia de bits viciado por pérdidas de transmisión, aun manteniendo una buena eficiencia de compresión.
Para ello, la invención se refiere a un procedimiento de codificación de una secuencia de imágenes digitales en una secuencia de bits, estando, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una porción de la imagen de referencia. El procedimiento comprende, al menos, para una porción de la imagen a codificar, las etapas de:
- recuperar un número objetivo de predictores de información del movimiento a utilizar para dicha porción de la imagen a codificar, y
- generar un conjunto de predictores de información del movimiento que se compone de dicho número objetivo de predictores de información del movimiento, siendo cada predictor de información del movimiento del conjunto generado diferente de cualquier otro predictor de información del movimiento del conjunto generado.
Ventajosamente, el procedimiento de la invención permite la determinación sistemática de un número objetivo de predictores de información del movimiento a utilizar para codificar la información del movimiento, tal como un vector de movimiento, asociado con una porción de imagen, y la compresión resulta ventajosamente mejorada mediante la generación de un conjunto de predictores de información del movimiento que son todos diferentes entre sí. El potencial sobrecoste de utilizar un número objetivo fijo de predictores de información del movimiento resulta compensado por la diversidad de predictores seleccionados, lo que ayuda a mejorar el coeficiente de compresión. El número objetivo de predictores de información del movimiento diferentes se determina y se fija de manera independiente de los valores reales de los elementos de información del movimiento, tales como los vectores de movimiento, seleccionados como predictores de información del movimiento para la porción de imagen actual a codificar.
Una realización de la presente invención resulta efectiva cuando el número de predictores de información del movimiento que son generados inicialmente es, a priori, desconocido, por ejemplo, tal como cuando se utiliza AMVP. Por ejemplo, si se lleva a cabo la reducción de un conjunto inicial, y el número inicial de predictores eliminados por el proceso de reducción es, a priori, desconocido, es posible utilizar una realización de la presente invención para asegurar que el conjunto final de predictores de información del movimiento se compone del número objetivo de predictores de información del movimiento.
Según una realización, el procedimiento de codificación comprende además las etapas de:
- seleccionar un predictor de información del movimiento para dicha porción de la imagen a codificar de dicho conjunto generado de predictores de información del movimiento, y
- codificar un elemento de información representativo de dicho predictor de información del movimiento seleccionado en base a dicho número objetivo obtenido.
Ventajosamente, es posible seleccionar un predictor de información del movimiento para un bloque actual para codificarlo, y el predictor de información del movimiento seleccionado puede ser codificado dependiendo del número de predictores de información del movimiento determinado. El número de predictores de información del movimiento puede ser recuperado de manera sistemática por el descodificador, de manera que la secuencia de bits codificada puede ser analizada sintácticamente de manera sistemática en un descodificador incluso en caso de pérdidas. Según una realización, el elemento de información representativo de dicho predictor de información del movimiento seleccionado es un índice del predictor de información del movimiento seleccionado en el conjunto generado de predictores de información del movimiento, y el índice es codificado en un número de bits que depende de dicho número objetivo obtenido.
Según una realización, en la etapa de obtención de un número objetivo de predictores de información del movimiento a utilizar para dicha porción de imagen a codificar, dicho número objetivo es ajustado igual a un valor predeterminado para cualquier porción de imagen de la secuencia de imágenes digitales.
La ventaja de esta realización es que el número objetivo de predictores de información del movimiento puede ser obtenido fácilmente, sin ningún cálculo suplementario ni sobrecostes de señalización, tanto en el codificador como en el descodificador.
Según otra realización, en la etapa de obtención de un número objetivo de predictores de información del movimiento a utilizar para dicha porción de la imagen a codificar se determina dicho número objetivo, para una porción de imagen dada a codificar, dependiendo de la información de codificación de dicha porción de imagen dada a codificar.
Ventajosamente, tal información de codificación puede ser un parámetro de codificación, tal como, por ejemplo, si las imágenes están divididas en macrobloques de tamaño variable para su procesamiento, el tamaño del macrobloque al cual pertenece la porción de la imagen a codificar. Dicha información de codificación puede ser asimismo por ejemplo un modo de codificación asociado con la porción de la imagen a codificar.
Según otro aspecto más, la invención se refiere a un dispositivo para codificar una secuencia de imágenes digitales en una secuencia de bits, estando codificada, por lo menos, una porción de la imagen, por compensación del movimiento con respecto a una porción de la imagen de referencia. El dispositivo comprende, al menos, para una porción de la imagen a codificar:
- medios para recuperar un número objetivo de predictores de información del movimiento a utilizar para dicha porción de la imagen a codificar, y
- medios para generar un conjunto de predictores de información del movimiento que se compone de dicho número objetivo de predictores de información del movimiento, siendo cada predictor de información del movimiento del conjunto generado diferente de cualquier otro predictor de información del movimiento del conjunto generado.
Según otro aspecto más, la invención se refiere asimismo a un programa informático que puede ser cargado en un dispositivo programable, que comprende secuencias de instrucciones para implementar un procedimiento para la codificación de una secuencia de imágenes digitales tal como se ha descrito brevemente con anterioridad, cuando el programa es cargado y ejecutado por el dispositivo programable. Tal programa informático puede ser transitorio o no transitorio. En una implementación, el programa informático puede ser almacenado en medios portador no transitorio legible por ordenador.
Las características y ventajas particulares del dispositivo para la codificación de una secuencia de imágenes digitales, del medio de almacenamiento y del producto de programa informático, son similares a los del procedimiento de codificación de señales de video digitales y no se repiten en esta memoria.
Según otro aspecto más, la invención se refiere asimismo a un procedimiento para la descodificación de una secuencia de bits que comprende una secuencia codificada de imágenes digitales, estando, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una imagen de referencia. Al menos, para una dicha porción de la imagen a codificar, el procedimiento comprende las etapas de:
- recuperar un número objetivo de predictores de información del movimiento a utilizar para dicha porción de imagen a descodificar, y
- generar un conjunto de predictores de información del movimiento que se compone de dicho número objetivo de predictores de información del movimiento, siendo cada predictor de información del movimiento del conjunto generado diferente de cualquier otro predictor de información del movimiento del conjunto generado.
El procedimiento para descodificar una secuencia de bits tiene la ventaja de permitir la determinación de un número objetivo de predictores de información del movimiento y utilizar dicho número de diferentes predictores de información del movimiento. El número objetivo de predictores de información del movimiento puede ser obtenido de manera sistemática y, en consecuencia, la secuencia de bits puede ser analizada sintácticamente de manera sistemática, incluso en caso de errores de transmisión. Una ventaja adicional es que, en todos los casos, el análisis sintáctico de la secuencia de bits es simple y, en particular, más simple que con los procedimientos de la técnica anterior que reducen de manera adaptativa el número de predictores de información del movimiento en lugar de utilizar un número objetivo predeterminado que puede ser obtenido por el descodificador.
Según una realización, el procedimiento comprende además una etapa de descodificación de un elemento de información representativo de un predictor de información del movimiento seleccionado para dicha porción de la imagen a codificar en base a dicho número objetivo obtenido.
Ventajosamente, en caso de que una codificación dependiente del número de predictores de información del movimiento haya sido aplicada en el codificador, el elemento de información representativo del predictor de información del movimiento para dicha porción de imagen a descodificar puede ser descodificado de manera sistemática, incluso en caso de errores de transmisión.
Según otro aspecto más, la invención se refiere asimismo a un dispositivo para descodificar una secuencia de bits que comprende una secuencia codificada de imágenes digitales, estando, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una porción de la imagen de referencia. El dispositivo comprende, al menos, para una dicha porción de la imagen a codificar:
- medios para recuperar un número objetivo de predictores de información del movimiento a utilizar para dicha porción de la imagen a codificar, y
- medios para generar un conjunto de predictores de información del movimiento que se compone de dicho número objetivo de predictores de información del movimiento, siendo cada predictor de información del movimiento del conjunto generado diferente de cualquier otro predictor de información del movimiento del conjunto generado.
Según otro aspecto más, la invención se refiere asimismo a medios de almacenamiento de información que puede ser leído por un ordenador o un microprocesador, siendo este medio de almacenamiento extraíble, y almacenando instrucciones de un programa informático para la implementación del procedimiento para descodificar una secuencia de bits tal como se ha descrito brevemente con anterioridad.
Según otro aspecto más, la invención se refiere asimismo a un programa informático que puede ser cargado en un dispositivo programable, que comprende secuencias de instrucciones para implementar un procedimiento para la descodificación de una secuencia de bits tal como se ha descrito brevemente con anterioridad, cuando el programa es cargado y ejecutado por el dispositivo programable. Dicho programa informático puede ser transitorio o no transitorio. En una implementación, el programa informático puede ser almacenado en un medio portador no transitorio legible por ordenador.
Al ser las características y ventajas particulares del dispositivo para descodificar una secuencia de bits, del medio de almacenamiento y del programa informático similares a las del procedimiento de descodificación, no se repiten en esta memoria.
Según otro aspecto de la presente invención, está previsto un procedimiento de codificación de una secuencia de imágenes digitales en una secuencia de bits, estando, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el procedimiento generar un conjunto de predictores de información del movimiento que tienen una diversidad controlada, y seleccionar un predictor de información del movimiento para dicha porción de la imagen a codificar de dicho conjunto generado de predictores de información del movimiento.
Diversidad controlada significa que los predictores de información del movimiento del conjunto son diferentes entre sí, pero que es estadísticamente probable que uno o varios de los mismos esté próximo a la información real del movimiento, de manera que el residuo (diferencia entre la información real del movimiento y el predictor correspondiente) es pequeño y por ello se puede comprimir de manera eficiente.
El procedimiento puede comprender;
generar primeros predictores de información del movimiento;
identificar uno o varios primeros predictores de información del movimiento a modo de predictores semilla; generar uno o varios segundos predictores de información del movimiento en base al predictor o los predictores semilla; y
formar dicho conjunto de predictores de información del movimiento a partir de los primer y segundo predictores de información del movimiento.
En este caso, los primeros predictores de información del movimiento pueden ser predictores que se espera que estadísticamente den buenos resultados en términos de eficiencia de compresión. Los segundos predictores de información del movimiento, al estar basados en los primeros predictores, pueden ser utilizados para explorar de una manera organizada o sistemática otros predictores en el espacio predictor en la proximidad de los primeros predictores. Se espera asimismo que dichos predictores den buenos resultados, y cuantos más predictores sean examinados, mayor será la probabilidad de encontrar una buena coincidencia con la información del movimiento real.
En una realización, al menos, uno de los primeros predictores de información del movimiento es identificado como un predictor semilla, en base a la importancia del primer predictor implicado de información del movimiento.
La importancia puede depender del número de veces que el primer predictor implicado de información del movimiento aparece entre los primeros predictores de información del movimiento. Cuanto mayor sea el número de veces, más importante se considera que es el predictor, y más probable es que sea utilizado en el conjunto. Al igual que buscar predictores idénticos (duplicados), puede ser asimismo efectivo buscar también coincidencias próximas. De manera alternativa, la importancia puede depender en cierta medida de cuán representativo es el primer predictor implicado de información del movimiento de los primeros predictores de información del movimiento como conjunto. Por ejemplo, si los primeros predictores de información del movimiento están promediados, la diferencia o distancia entre el predictor medio y un primer predictor dado de información del movimiento es una medida de cuán representativo es el predictor dado de los primeros predictores de información del movimiento como conjunto.
Una manera de controlar la diversidad es generar, al menos, uno de los citados segundos predictores de información del movimiento añadiendo o eliminando una desviación de uno de dichos predictores semilla. La desviación puede ser fija. Podría ser asimismo un valor pseudoaleatorio siempre que el mismo valor semilla esté disponible para el descodificador y para el codificador. Si los predictores semilla son vectores, es asimismo posible controlar la diversidad añadiendo al predictor semilla otro vector, por ejemplo, de magnitud fija y de dirección predeterminada con respecto a la dirección del predictor semilla.
Es posible generar una serie de dichos segundos predictores de información del movimiento en base al mismo predictor semilla citado. Si los predictores de información del movimiento son vectores que tienen cada uno componentes X e Y, la serie de segundos predictores de información del movimiento se pueden recuperar añadiendo y/o restando desviaciones a o desde uno o desde dichos dos componentes del mismo predictor semilla citado. Por ejemplo, la misma desviación puede ser sumada o restada del mismo predictor semilla. Si el predictor semilla es un vector que tiene componentes X e Y, existen varias permutaciones de desviación de suma/resta a/de uno o ambos de los componentes X e Y del mismo predictor semilla. Esta es una manera eficiente de generar diversidad controlada sin una gran carga de procesamiento.
Otra manera de controlar la diversidad es generar una serie de segundos predictores de información del movimiento formando una media de diferentes pares (u otras combinaciones) de primeros predictores de información del movimiento. Por ejemplo, si los primeros predictores de información del movimiento son V1, V2 y V3, se podrían formar tres segundos predictores de información del movimiento a partir de las medias de V1 y V2, V2 y V3 y V3 y V1. Sería asimismo posible formar diferentes combinaciones ponderadas de los mismos primeros predictores de información del movimiento como diferentes segundos predictores de información del movimiento.
Los primeros predictores de información del movimiento pueden ser o incluir predictores de información del movimiento que están asociados cada uno con una porción de imagen que tiene una relación espacial y/o temporal predeterminada con la porción de imagen en proceso de codificación. Por ejemplo, los predictores de información del movimiento utilizados en AMVP pueden ser primeros predictores de información del movimiento. Estos son una buena fuente de predictores semilla.
En otra realización, el procedimiento comprende:
generar primeros predictores de información del movimiento;
comprobar las diferencias entre los primeros predictores de información del movimiento generados; y
excluir de dicho conjunto de predictores de información del movimiento uno o varios de los primeros predictores de información del movimiento en base a las diferencias.
Teniendo en cuenta las diferencias entre los primeros predictores de información del movimiento es posible controlar la diversidad de los predictores de información del movimiento del conjunto. No es necesario en este caso identificar los predictores semilla entre los primeros predictores de información del movimiento y generar unos segundos predictores de información del movimiento en base a los predictores semilla. Esto puede ser efectivo, por ejemplo, si inicialmente está disponible un número suficientemente elevado de primeros predictores de información del movimiento.
Por ejemplo, un primer predictor de información del movimiento que tiene la menor diferencia con respecto a otro primer predictor de información del movimiento puede ser eliminado, como un modo de controlar la diversidad. El proceso se puede repetir de nuevo, si es necesario, para eliminar con éxito los predictores menos diversos.
Es importante observar que en este aspecto de la invención el número de predictores de información del movimiento en dicho conjunto puede ser variable.
No obstante, como en el otro aspecto básico de la presente invención el número de predictores de información del movimiento de dicho conjunto puede ser predeterminado, al menos, para una porción dada de imagen a codificar, o incluso para todas las porciones de imagen (un número objetivo). Esto hace posible no solo conseguir una diversidad controlada entre los predictores del conjunto, sino también para resolver el problema del análisis sintáctico señalado en la introducción.
Este aspecto de la invención proporciona asimismo el procedimiento de descodificación correspondiente y los dispositivos de codificación y descodificación correspondientes, como programas que originan la codificación y la descodificación.
Según otro aspecto más, la invención se refiere a un procedimiento de codificación de una secuencia de imágenes digitales en una secuencia de bits, siendo, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una porción de la imagen de referencia. El procedimiento comprende, al menos, para una porción de la imagen a codificar, las etapas de:
- recuperar un primer conjunto de predictores del vector de movimiento a utilizar para dicha porción de la imagen a codificar, y
- generar un segundo conjunto de predictores del vector de movimiento a partir de dicho primer conjunto de predictores del vector de movimiento, siendo cada predictor del vector de movimiento del conjunto generado diferente de cualquier otro predictor del vector de movimiento del segundo conjunto de predictores del vector de movimiento generado, en el que, al menos, un predictor del vector de movimiento del segundo conjunto generado se calcula a partir de un predictor del vector de movimiento seleccionado del primer conjunto.
Ventajosamente, el segundo conjunto de predictores del vector de movimiento generado se utiliza para codificar el vector de movimiento asociado con la porción de la imagen a codificar. El segundo conjunto de predictores del vector de movimiento comprende una diversidad de predictores del vector de movimiento diferentes, que son generados (y opcionalmente seleccionados) para mejorar la eficiencia de la compresión.
Según una realización, el predictor del vector de movimiento del primer conjunto es seleccionado en una etapa de selección según una valoración de su importancia.
Según una realización, el procedimiento de codificación comprende una etapa de cálculo de la importancia asociado con cada predictor del vector de movimiento del primer conjunto.
Según una realización, el predictor del vector de movimiento del primer conjunto es seleccionado en una etapa de selección según la distancia entre los predictores del vector de movimiento del primer conjunto.
Las diferentes realizaciones para seleccionar un predictor del vector de movimiento para generar otros predictores del vector de movimiento adicionales o virtuales permiten aplicar una selección de diversidad controlada, que tiene la ventaja de mejorar la eficiencia de la compresión. De hecho, el uso de predictores del vector de movimiento calculados a partir de importantes predictores del vector de movimiento del conjunto inicial permite representar de manera más precisa el vector de movimiento de la porción de imagen actual a codificar. De nuevo, no es esencial tener un número fijo u objetivo de predictores en el conjunto final.
Según una realización, los predictores del vector de movimiento del primer conjunto de predictores de información del movimiento son vectores de movimiento asociados con porciones de la imagen a codificar, de la imagen en proceso de codificación y/o de una imagen de referencia. El primer conjunto puede estar compuesto, o incluir, los predictores utilizados en AMVP.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Otras características y ventajas resultarán evidentes en la descripción siguiente, que se facilita únicamente a modo de ejemplo no limitativo y realizadas con referencia a los dibujos que se acompañan, en los cuales:
- la figura 1, ya descrita, muestra esquemáticamente un conjunto de predictores del vector de movimiento utilizados en un esquema de predicción del vector de movimiento;
- la figura 2 es un diagrama de un dispositivo de procesamiento adaptado para implementar una realización de la presente invención;
- la figura 3 es un diagrama de bloques de un codificador según una realización de la invención;
- la figura 4 muestra un diagrama de bloques de un descodificador según una realización de la invención;
- la figura 5 detalla la determinación de un conjunto de predictores del vector de movimiento según una primera realización;
- la figura 6 detalla la determinación de un conjunto de predictores del vector de movimiento según una segunda realización;
- la figura 7 muestra esquemáticamente un segundo conjunto de predictores del vector de movimiento,
- la figura 8 muestra esquemáticamente vectores de movimiento en un sistema de coordenadas.
DESCRIPCIÓN DETALLADA DE LAS REALIZACIONES
La figura 2 muestra un diagrama de un dispositivo de procesamiento 1000 adaptado para implementar una realización de la presente invención. El dispositivo 1000 es por ejemplo un micro-ordenador, un terminal o un dispositivo portátil ligero.
El dispositivo 1000 comprende un bus de comunicación 1113 al cual están conectados preferiblemente:
- una unidad de procesamiento central 1111, tal como un microprocesador, indicado como CPU;
- una memoria de solo lectura 1107, capaz de contener programas informáticos para implementar la invención, indicada como ROM;
- una memoria de acceso aleatorio 1112, indicada como RAM, capaz de contener el código ejecutable del procedimiento de la invención, así como los registros adaptados para registrar las variables y parámetros necesarios para la implementación del procedimiento de codificación de una secuencia de imágenes digitales y/o el procedimiento de descodificación de una secuencia de bits; y
- una interfaz de comunicación 1102 conectada a una red de comunicación 1103 sobre la cual se transmiten los datos digitales para ser procesados.
Opcionalmente, el dispositivo 1000 puede contener asimismo los siguientes componentes:
- medios de almacenamiento de datos 1104 tal como un disco duro, capaz de contener los programas que implementan la invención y los datos utilizados o producidos durante la implementación de la invención;
- una unidad de disco 1105 para un disco 1106, estando la unidad de disco adaptada para leer datos del disco 1106 o para escribir datos en dicho disco;
- una pantalla 1109 para mostrar datos y/o que para servir de interfaz gráfica con el usuario, por medio de un teclado 1110 o cualquier otro medio de señalización.
El dispositivo 1000 puede ser conectado a diversos periféricos, tales como por ejemplo una cámara digital 1100 o un micrófono 1108, estando cada uno conectado a una tarjeta de entrada/salida (no mostrada) con el fin de proporcionar datos multimedia al dispositivo 1000.
El bus de comunicación permite la comunicación e interoperatividad entre los diferentes elementos incluidos en el dispositivo 1000 o conectados al mismo. La representación del bus no es limitativa y, en particular, la unidad de procesamiento central es capaz de comunicar instrucciones a cualquier elemento del dispositivo 1000 directamente o por medio de otro elemento del dispositivo 1000.
El disco 1106 puede ser reemplazado por cualquier medio de información tal como por ejemplo un disco compacto (CDROM), reescribible o no, un disco ZIP o una tarjeta de memoria y, en términos generales, mediante medios de almacenamiento de la información que puede ser leído por un microordenador o por un microprocesador, integrado o no en el dispositivo, opcionalmente extraíble y adaptado para almacenar uno o varios programas cuya ejecución permite la implementación del procedimiento de codificación de una secuencia de imágenes digitales y/o el procedimiento de descodificación de una secuencia de bits según la invención.
El código ejecutable puede ser almacenado bien en una memoria de solo lectura 1107, en el disco duro 1104 o en medios digital extraíble tal como por ejemplo un disco 1106 tal como se ha descrito previamente. Según una variante, el código ejecutable de los programas puede ser recibido por medio de la red de comunicación 1103, a través de la interfaz 1102, con el fin de ser almacenado en uno de los medios de almacenamiento del dispositivo 1000 antes de ser ejecutado, tal como el disco duro 1104.
La unidad de procesamiento central 1111 está adaptada para controlar y dirigir la ejecución de las instrucciones o porciones de código del software del programa o programas según la invención, instrucciones que están almacenadas en uno de los medios de almacenamiento mencionados anteriormente. Cuando se conecta el equipo, el programa o programas que están almacenados en una memoria no volátil, por ejemplo, en el disco duro 1104 o en la memoria de solo lectura 1107, son transferidos a la memoria de acceso aleatorio 1112, que contiene entonces el código ejecutable del programa o programas, así como los registros para almacenar las variables y parámetros necesarios para la implementación de la invención.
En esta realización, el dispositivo es un dispositivo programable que utiliza software para implementar la invención. No obstante, de manera alternativa, la presente invención puede ser implementada en hardware (por ejemplo, en forma de un Circuito integrado específico para una aplicación, o ASIC, Application Specific Integrated Circuit).
La figura 3 muestra un diagrama de bloques de un codificador según una realización de la invención. El codificador está representado mediante módulos conectados, estando cada módulo adaptado para implementar, por ejemplo, en forma de instrucciones de programación, para ser ejecutadas por la CPU 1111 del dispositivo 1000, implementando la etapa correspondiente de un procedimiento una realización de la invención.
Una secuencia original de imágenes digitales i0 a in 301 es recibida como entrada por el codificador 30. Cada imagen digital está representada por un conjunto de muestras, conocidas como píxeles.
Una secuencia de bits 310 es emitida por el codificador 30.
La secuencia de bits 310 comprende una serie de unidades de codificación o fragmentos, comprendiendo cada fragmento una cabecera del fragmento para codificar los valores de los parámetros de codificación utilizados para codificar el fragmento y el cuerpo del fragmento, que comprende datos de video codificados.
Las imágenes digitales de entrada están divididas en bloques (302), cuyos bloques son porciones de imagen y pueden ser de tamaños variables (por ejemplo, 4x4, 8x8, 16x16, 32x32). Se selecciona un modo de codificación para cada bloque de entrada. Existen dos familias de modos de codificación, codificación de predicción espacial o Intra codificación y codificación de predicción temporal o Inter codificación. Los posibles modos de codificación son ensayados.
El módulo 303 implementa la Intra predicción, en la cual el bloque dado a codificar es predicho por un predictor calculado a partir de los píxeles de la proximidad de dicho bloque a codificar. Una indicación del Intra predictor seleccionado y de la diferencia entre el bloque dado y su predictor es codificada si se selecciona la Intra codificación. La predicción temporal se implementa mediante los módulos 304 y 305. En primer lugar, se selecciona una imagen de referencia entre un conjunto de imágenes de referencia 316, y se selecciona una porción de la imagen de referencia, indicada también como zona de referencia, que es la zona más cercana al bloque dado a codificar, mediante el módulo 304 de estimación del movimiento. La diferencia entre la zona de referencia seleccionada y el bloque dado, indicada también como bloque residual, es calculada por el módulo 305 de compensación del movimiento. La zona de referencia seleccionada es indicada por un vector de movimiento.
Si se selecciona la Inter predicción, se codifica la información relativa al vector de movimiento y al bloque residual. Para reducir más el coeficiente de bits o “bitrate”, el vector de movimiento es codificado por diferencia con respecto a un predictor del vector de movimiento. Un conjunto de predictores del vector de movimiento, indicado también como predictores de información del movimiento, se recupera a partir del campo 318 de vectores de movimiento mediante un módulo de predicción 317 del vector de movimiento y de codificación.
Ventajosamente, el conjunto de predictores del vector de movimiento utilizado para seleccionar un mejor predictor del vector de movimiento para codificar el vector de movimiento actual se genera tal como se explica con más detalle a continuación con respecto a las figuras 5 y 6. Para un bloque actual dado a codificar, se configura un número predeterminado Nmax de predictores del vector de movimiento y, en consecuencia, el índice del predictor del vector de movimiento seleccionado, que es un elemento de información representativo del predictor del vector de movimiento seleccionado, puede ser codificado utilizando un número de bits predeterminado. Este número de bits predeterminado puede ser recuperado también por el descodificador incluso en caso de pérdidas, por lo tanto, se asegura que el descodificador podrá analizar sintácticamente la secuencia de bits incluso en caso de errores o pérdidas. Los predictores del vector de movimiento Nmax son seleccionados según las diferentes realizaciones para ser todos diferentes entre sí con el fin de mejorar la eficiencia de la compresión.
La selección del número predeterminado Nmax de predictores del vector de movimiento y del correspondiente número de bits para codificar el índice del predictor del vector de movimiento puede ser aplicado, bien para toda la secuencia, o para un grupo de imágenes de la secuencia, o a nivel del bloque dependiendo de parámetros de codificación tales como el tamaño de bloque o el modo de codificación. Por ejemplo, un primer número predeterminado de predictores del vector de movimiento Nmax1 puede ser utilizado para los bloques codificados utilizando Inter predicción para lo cual se codifica un bloque residual, y un segundo número predeterminado de predictores del vector de movimiento Nmax2 puede ser utilizado para los bloques codificados utilizando el modo SKIP, para lo cual solo se codifica un vector de movimiento, pero ningún bloque residual. Los respectivos números de predictores del vector de movimiento Nmax1 y Nmax2 pueden estar por ejemplo señalizados en la secuencia de bits insertándolos en una cabecera, tal como la cabecera del fragmento, o en cualquier campo de metadatos apropiado. El codificador 30 comprende además un módulo de selección del modo de codificación 306, que utiliza un criterio de coste de codificación, tal como un criterio de distorsión del coeficiente, para determinar cuál es el mejor modo entre el modo de predicción espacial y el modo de predicción temporal. Una transformada 307 se aplica al bloque residual, los datos transformados obtenidos son cuantificados a continuación mediante el módulo 308 y la entropía codificada por el módulo 309. Finalmente, el bloque residual codificado del bloque actual a codificar es introducido en la secuencia de bits 310, junto con la información relativa al predictor utilizado. En el caso de los bloques codificados en modo ‘SKIP’, solo se codifica una referencia al predictor en la secuencia de bits, sin ningún bloque residual. El codificador 30 efectúa además la descodificación de la imagen codificada con el fin de producir una imagen de referencia para la estimación de movimiento de las imágenes siguientes. El módulo 311 efectúa una cuantificación inversa de los datos cuantificados, seguida de una transformada inversa 312. El módulo 313 de predicción de movimiento inverso utiliza la información de predicción para determinar qué predictor utilizar para un bloque dado, y el módulo 314 de compensación del movimiento inversa de hecho, suma el residuo obtenido por el módulo 312 a la zona de referencia obtenida a partir del conjunto de imágenes de referencia 316. Opcionalmente, se aplica un filtro de desbloqueo 315 para eliminar los efectos del bloqueo y mejorar la calidad visual de la imagen descodificada. El mismo filtro de desbloqueo se aplica en el descodificador, de manera que, si no está previsto ninguna pérdida de transmisión, el codificador y el descodificador aplican el mismo procesamiento.
La figura 4 muestra un diagrama de bloques de un descodificador según una realización de la invención. El descodificador está representado por módulos conectados, estando cada módulo adaptado para implementar, por ejemplo, en forma de instrucciones de programación para ser ejecutadas por la CPU 1111 del dispositivo 1000, la etapa correspondiente de un procedimiento que implementa una realización de la invención.
El descodificador 40 recibe una secuencia de bits 401 que comprende unidades de codificación, estando cada unidad compuesta por una cabecera que contiene información sobre los parámetros de codificación y un cuerpo que contiene los datos de video codificados. Tal como se ha explicado con respecto a la figura 3, los datos de video codificados son codificados en entropía, y los índices de los predictores del vector de movimiento están codificados, para un bloque dado, en un número de bits predeterminado. Los datos de video codificados recibidos son descodificados (402) en entropía, descuantificados (403) y a continuación se aplica una transformada inversa (404). En particular, cuando los datos recibidos del video codificado corresponden a un bloque residual de un bloque actual a codificar, el descodificador descodifica asimismo la información de la predicción de movimiento a partir de la secuencia de bits, con el fin de encontrar la zona de referencia utilizada por el codificador.
El módulo 410 aplica la descodificación del vector de movimiento para cada bloque actual codificado mediante la predicción de movimiento, comprendiendo determinar el número Nmax de predictores del vector de movimiento utilizados y recuperar el índice del predictor del vector de movimiento codificado en un número de bits que dependen de Nmax. De manera similar al módulo 317 de la figura 3, el módulo de descodificación 410 del vector de movimiento genera un conjunto de Nmax predictores del vector de movimiento. Las realizaciones explicadas a continuación en esta memoria con respecto a las figuras 5 y 6 se aplican de manera similar. Si la secuencia de bits es recibida sin pérdidas, el descodificador genera exactamente el mismo conjunto de predictores del vector de movimiento que el codificador. En caso de pérdidas, puede no ser posible generar el conjunto de predictores del vector de movimiento y, por lo tanto, descodificar correctamente el vector de movimiento asociado con el bloque actual. No obstante, el análisis sintáctico de la secuencia de bits siempre es posible, incluso en caso de pérdidas, dado que el número de bits utilizados para codificar el índice de los predictores del vector de movimiento puede ser obtenido de manera sistemática por el descodificador.
Una vez que el índice del predictor del vector de movimiento para el bloque actual ha sido obtenido, si no se han producido pérdidas, el valor real del vector de movimiento asociado con el bloque actual puede ser descodificado y utilizado para aplicar una compensación del movimiento inverso (406). La zona de referencia indicada por el vector de movimiento descodificado es extraída de una imagen de referencia (408) para aplicar finalmente la compensación del movimiento inverso 406.
En caso de que se haya aplicada Intra predicción, el módulo 405 aplica una Intra predicción inversa.
Finalmente, se recupera un bloque descodificado. Se aplica un filtro de desbloqueo 407, de manera similar al filtro de desbloqueo 315 aplicado en el codificador. Una señal de video descodificada 409 es proporcionada finalmente por el descodificador 40.
La figura 5 detalla la generación del conjunto de predictores del vector de movimiento o candidatos a vector de movimiento en una primera realización de la presente invención. Todas las etapas del algoritmo representadas en la figura 5 pueden ser implementadas en software y ejecutadas por la unidad de procesamiento central 1111 del dispositivo 1000.
La figura 5 representa un diagrama de secuencia aplicado para un bloque actual dado a codificar, que tiene un vector de movimiento asociado que designa una zona de referencia en una imagen de referencia.
En la etapa S500, se obtiene en primer lugar un conjunto inicial de predictores del vector de movimiento L1. El conjunto L1 está compuesto de N candidatos. En una realización, el conjunto inicial de predictores del vector de movimiento comprende los candidatos a vector de movimiento seleccionados según el esquema de predicción de vector de movimiento AMVP ya descrito con referencia a la figura 1, por ejemplo, los vectores V0 a V3 de la figura 1 y el vector medio calculado a partir de V1, V2 y V3. De acuerdo con ello, N es un máximo de 5.
Preferiblemente, el conjunto inicial de predictores del vector de movimiento L1 contiene solo vectores de movimiento diferentes entre sí. Tomando el ejemplo de la figura 1, solo los vectores de movimiento V0, V1 y el vector medio deben mantenerse en L1, y el número de predictores del vector de movimiento es N = 3.
En una realización alternativa, es posible aplicar cualquier otro esquema para seleccionar vectores de movimiento ya calculados y calcular otros vectores de movimiento a partir de los disponibles (es decir, promedio, medio, etc.) para formar el conjunto inicial de predictores del vector de movimiento L1.
En otra realización alternativa más, el conjunto inicial de predictores del vector de movimiento L1 está vacío y N=0. En la siguiente etapa S502, se recupera el número objetivo Nmax de predictores del vector de movimiento candidatos a utilizar. Nmax puede ser predeterminado para toda la secuencia de imágenes digitales a codificar, por ejemplo, Nmax=4, o puede ser seleccionado según los parámetros de codificación del bloque actual a codificar o de la unidad de codificación (por ejemplo, el fragmento) a la cual pertenece el bloque actual a codificar.
Por ejemplo, el número Nmax puede depender del tamaño de la transformada aplicada al macrobloque al cual pertenece el bloque actual que se está procesando: por ejemplo, Nmax=p para una transformada aplicada en un bloque de 2p+1x2p+1.
En una realización, el número de bits k a utilizar para la codificación del índice del predictor del vector de movimiento es función directa de Nmax: k=INTsup(log2(Nmax)), en que INTsup(x) es el número entero que sigue inmediatamente al valor x. Preferiblemente, Nmax debe ser una potencia de 2, Nmax=2k, para utilizar todos los índices que pueden ser codificados en k bits. Ventajosamente, todos los bits utilizados para la señalización se utilizan para poder designar una diversidad de predictores del vector de movimiento y para mejorar la compresión.
De manera alternativa, es posible utilizar cualquier tipo de codificación de los índices representativos de los predictores del vector de movimiento, después de que el número de predictores del vector de movimiento diferentes Nmax ha sido determinado. En particular, es posible utilizar cualquier tipo de codificación de entropía, tal como la codificación Huffman o la codificación aritmética. Asimismo, los índices se pueden codificar también utilizando un código de tipo prefijo, tal como un código Rice-Golomb o un código unitario.
A continuación, se ensaya en la etapa S503 si el número N de predictores del vector de movimiento del conjunto L1 es mayor que Nmax.
En caso de respuesta positiva, la etapa S503 es seguida de la etapa S504 de selección de un candidato a predictor del vector de movimiento de L1, seguida de la eliminación del candidato a predictor del vector de movimiento seleccionado de L1 en la etapa S506 para formar un conjunto modificado de predictores del vector de movimiento L2.
La selección de la etapa S504 es aplicada según un criterio de eliminación, por ejemplo, un criterio de distancia. Por ejemplo, el conjunto L1 comprende predictores del vector de movimiento {V1,..., Vn)}, en el que cada predictor del vector de movimiento es un vector representado por sus componentes o coordenadas en el eje X y en el eje Y en un sistema de coordenadas, tal como se representa en la figura 8.
En una realización, la etapa S504 determina la distancia entre cada vector Vk y cada uno de los otros vectores Vn de L1 distintos del propio Vk, calculando la distancia como la expresión ^^k>^n)~\^kx'^m Á+ \Vky~Vny\ en |a qUe |a| representa el valor absoluto de a. Tomando el ejemplo de la figura 8, el vector V tiene las coordenadas (3, 2), el vector V’ tiene las coordenadas (4, 2) y V’’ tiene las coordenadas (3, 3). En este ejemplo, d (V, V’) = d (V, V’’) = 1, de manera que V’ y V’’ están a la misma distancia del vector V, mientras que d(V’, V’’) = 2.
Cualquier otro tipo de medición para el cálculo de las distancias puede ser aplicado de manera alternativa.
La distancia mínima encontrada d(Vp, Vq) indica los dos vectores más cercanos Vp, Vq, en el conjunto L1, y por lo tanto, uno de estos dos vectores es seleccionado para su eliminación. La selección de uno de estos dos vectores puede estar basada en la distancia de cada uno de ellos a los predictores del vector de movimiento restantes en el conjunto L1 modificado: el vector entre Vp y Vq que tiene la menor distancia al otro vector del conjunto L1 es seleccionado para su eliminación.
El resultado es asegurar que la distancia entre los vectores restantes en el conjunto modificado L2 es la máxima, para permitir la utilización de predictores del vector de movimiento variados o diversos, según sea posible.
T ras la eliminación del vector seleccionado, el valor de N se reduce (S508) y, a continuación, N se compara con Nmax (S510). Si el valor de N no ha alcanzado todavía Nmax, (respuesta ‘no’ a la prueba S510) las etapas S504 a S5010 se repiten. Si no, si N ha alcanzado Nmax, la etapa S510 es seguida de la etapa S522 que se describe a continuación en esta memoria.
Si la respuesta a la prueba S503 es ‘no’, entonces la prueba S512 comprueba si N es menor que Nmax. En caso de respuesta negativa, es decir, si N=Nmax, la prueba S512 es seguida de la etapa S522 que se describe a continuación en esta memoria.
Si la respuesta a la prueba S512 es ‘sí’, es decir si N es estrictamente menor que Nmax, entonces la prueba S512 es seguida de la etapa S514 de obtención o generación de un candidato a predictor del vector de movimiento adicional.
De hecho, empezando a partir del conjunto inicial de predictores del vector de movimiento L1, es posible añadir otros candidatos como predictores del vector de movimiento en un orden predeterminado, para formar un conjunto modificado de predictores del vector de movimiento L2. Tomando el ejemplo de la figura 7, los vectores de movimiento de los bloques 710, 720, 730 y 740 pueden ser añadidos como posibles predictores del vector de movimiento. Además, los dos predictores entre 770, 760, 750 que no fueron seleccionados en S500 pueden ser añadidos como posibles predictores del vector de movimiento.
Para cada potencial candidato a predictor del vector de movimiento MV, se comprueba si el predictor del vector de movimiento MV es diferente de todos los candidatos a predictor del vector de movimiento ya almacenados en el conjunto L2.
Si cada potencial candidato a vector de movimiento considerado, tal como por ejemplo los vectores de movimiento de bloques 710, 720, 730, 740, 750, 760 y 770 de la figura 7 es igual a un predictor del vector de movimiento del conjunto L2, en la etapa S514 se calculan nuevos candidatos ‘virtuales’ a predictor del vector de movimiento.
Dichos candidatos a predictor del vector de movimiento se denominan virtuales porque no son vectores de movimiento de otros bloques de la imagen actual o de la imagen de referencia. Los predictores virtuales del vector de movimiento son calculados a partir de predictores del vector de movimiento existentes, por ejemplo, sumando desviaciones. Por ejemplo, a partir de un vector de movimiento MV del conjunto L2 de coordenadas (MVx, MVy), es posible calcular cuatro predictores virtuales del vector de movimiento sumando/restando una desviación desactivada a sus coordenadas: (M Vx± o ff, M V y±o ff) Habitualmente, la desactivación puede ser igual a 1 o 2.
De manera alternativa, es posible aplicar otras modificaciones de las componentes del predictor del vector de movimiento MV para obtener predictores virtuales del vector de movimiento, con el fin de obtener predictores del vector de movimiento variados empezando a partir de los predictores del vector de movimiento existentes con el fin de aumentar la eficiencia de la compresión.
Por ejemplo, las componentes del vector de movimiento MV pueden ser modificadas de manera independiente, utilizando respectivamente dos valores offx y offy, y cualquiera de offx u offy pueden ser configurados como 0. En una realización, tanto offx como offy son proporcionales a la componente correspondiente: offx=aMVx y offy=bMVy, siendo a y b habitualmente menores de 0,5. Si es necesario, las coordenadas MVx y MVy modificadas son redondeadas al valor entero más cercano, para representar un desplazamiento en la malla de píxeles.
En una realización, un vector de movimiento suplementario, de una norma predeterminada, es añadido al vector MV, teniendo el vector suplementario la misma dirección que el vector de movimiento MV, tal como se representa en la figura 8: el vector suplementario 850 se suma al vector 820.
En otra realización alternativa más, se calcula una varianza de los vectores de movimiento del conjunto L2:
var = £
MV&L2 (Ml\ ~ MV, Y (MVy - MV y) 2
en que MVx representa el valor medio de MVeL2 de las coordenadas MVX de los vectores de L2 y MVy representa el valor medio de las coordenadas MVy de los vectores de L2. A continuación, se selecciona la desviación desactivada comparando el valor calculado var con un umbral T predeterminado. T puede ser igual a 50/L2. Si var es menor que T, el valor de la desactivación es pequeño, por ejemplo, off=1; si var es mayor que T, la desviación es ajustada a un valor mayor, por ejemplo, off=3. Además, en esta realización también, se puede calcular un valor offx u offy diferenciados para cada componente.
Un predictor del vector de movimiento obtenido en la etapa S514 es añadido al conjunto de predictores del vector de movimiento L2 en la etapa S516, y el número N se incrementa en 1 (etapa S518).
A continuación, en la etapa S520 se comprueba si N es igual a Nmax. En caso de respuesta negativa, se repiten las etapas S514 a S520.
En caso de respuesta positiva, se ha alcanzado el número objetivo determinado de candidatos a predictor del vector de movimiento Nmax, y la etapa S520 es seguida, en el codificador, por la etapa S522 de selección de un predictor del vector de movimiento óptimo para el bloque actual del conjunto L2. Por ejemplo, se aplica un criterio de optimización de distorsión del coeficiente para seleccionar el predictor óptimo del vector de movimiento MVi para codificar el vector de movimiento del bloque actual.
En el codificador, el residuo del movimiento, es decir, la diferencia entre el vector de movimiento del bloque actual y el predictor del vector de movimiento seleccionado se codifica, así como una indicación del predictor del vector de movimiento seleccionado en la etapa S524. Por ejemplo, el índice i del predictor del vector de movimiento seleccionado MV¡ de L2 es codificado, utilizando k-IN T3up(log2(Nmax)) b¡ts.
De manera alternativa, se puede aplicar una codificación de entropía del índice i.
En otra alternativa más, el índice i puede ser codificado utilizando un código de tipo prefijo, como el código de Rice-Golomb, en el que cada valor i es codificado utilizando i ‘1 ’s seguidos por un ‘0’.
El algoritmo de la figura 5 puede ser asimismo implementado por un descodificador para generar el conjunto de predictores del vector de movimiento o los candidatos a vector de movimiento para un bloque dado, sin las etapas S522 y S524.
En el descodificador, el índice i del predictor del vector de movimiento MVi seleccionado para el bloque dado a codificar es obtenido de la secuencia de bits, conociendo Nmax y, por lo tanto, el número de bits k en los que el índice i ha sido codificado. Las etapas S500 a S518 son implementadas de manera similar para recuperar el conjunto de predictores del vector de movimiento L2, de manera que el índice i descodificado a partir de la secuencia de bits designa el predictor del vector de movimiento utilizado realmente por el codificador.
En caso de pérdidas durante la transmisión, dado que el número Nmax puede ser obtenido de manera sistemática por el descodificador, la secuencia de bits recibida puede ser analizada sintácticamente de manera sistemática para extraer el índice i que designa el predictor del vector de movimiento seleccionado, incluso si, dependiendo de los paquetes perdidos, el conjunto completo de predictores del vector de movimiento L2 puede no ser obtenido en el descodificador.
La figura 6 detalla la generación del conjunto de predictores del vector de movimiento o de candidatos a vector de movimiento en una segunda realización de la presente invención. Todas las etapas del algoritmo representadas en la figura 6 pueden ser implementadas en software y ejecutadas por la unidad de procesamiento central 1111 del dispositivo 1000.
La figura 6 representa un diagrama de secuencia aplicado para un bloque actual dado a codificar, que tiene un vector de movimiento asociado que designa una zona de referencia en una imagen de referencia.
En primer lugar, de manera similar a la etapa S502 de la figura 5, el número objetivo Nmax de candidatos a predictor del vector de movimiento a utilizar se determina en la etapa S600.
En una realización, Nmax es de la forma 2k, de manera que cada valor del índice que puede ser codificado en k bits corresponde a un posible predictor del vector de movimiento.
Por ejemplo, para utilizar todos los predictores del vector de movimiento del esquema de AMVP que propone 5 predictores del vector de movimiento, se necesitan 3 bits para codificar el índice de un predictor del vector de movimiento. En este caso, preferiblemente Nmax=23=8.
Un conjunto inicial de candidatos a predictor del vector de movimiento L1 se recupera en la etapa S602. Por ejemplo, se selecciona el conjunto inicial de N=5 predictores del vector de movimiento de AMVP.
Se aplica un proceso de reducción en el conjunto inicial de predictores del vector de movimiento para eliminar duplicados, con el fin de recuperar un conjunto reducido de predictores del vector de movimiento que contiene N1 elementos. Preferiblemente, el número de duplicados de cada vector que queda tras el proceso de reducción es registrado y almacenado en una memoria para un uso posterior en la etapa S612 que se describe a continuación en esta memoria.
A continuación, se comprueba (prueba S606) si N1 es mayor o igual que Nmax, el número objetivo de predictores del vector de movimiento. Se puede señalar que un resultado positivo a esta prueba solo se produce si el algoritmo se inicia con un primer conjunto de predictores del vector de movimiento, un número de vectores de movimiento mayor que Nmax. En caso de respuesta positiva, la etapa S606 es seguida de la etapa S630 de selección de los primeros Nmax candidatos a predictores del vector de movimiento del conjunto L1 para formar el conjunto de predictores del vector de movimiento L2.
En caso de respuesta negativa, es decir, si N1 es menor que Nmax, el conjunto de predictores del vector de movimiento tiene que ser complementado con predictores del vector de movimiento adicionales.
En la etapa S608 se recupera un segundo conjunto de candidatos a predictor del vector de movimiento L1 ’.
El segundo conjunto de predictores del vector de movimiento L1’ está compuesto por los predictores del vector de movimiento restantes del primer conjunto L1 y por vectores de movimiento adicionales, por ejemplo, correspondientes a los vectores de movimiento del bloque 710, 720, 730 y 740 de la imagen de referencia tal como se representa en la figura 7. Además, los 2 predictores de entre los 770, 760, 750 que no fueron seleccionados en S600 pueden ser añadidos como posibles predictores del vector de movimiento. Cada predictor del vector de movimiento del conjunto L1 ’ tiene el índice correspondiente.
A continuación, se aplica un proceso de reducción al segundo conjunto de predictores del vector de movimiento en la etapa S610, para recuperar un segundo conjunto reducido de predictores del vector de movimiento L1’’ de N2 vectores. El proceso de reducción elimina los duplicados, de manera que todos los predictores del vector de movimiento de L1 ’’ son diferentes entre sí. El número de duplicados de cada vector mantenido en L1 ’’ es registrado y almacenado en una memoria para un uso posterior en la etapa S612 que se describe a continuación en esta memoria.
Se comprueba a continuación en la etapa S628 si el número de predictores del vector de movimiento N2 es mayor o igual que Nmax. En caso de respuesta positiva, la etapa S628 es seguida de la etapa S630 ya descrita.
En caso de respuesta negativa, es necesario añadir más predictores del vector de movimiento al segundo conjunto reducido de predictores del vector de movimiento L1 ’’, para recuperar el conjunto final de Nmax predictores del vector de movimiento.
A continuación de la prueba S628, en caso de respuesta negativa, se asigna un valor de importancia a cada candidato a predictor del vector de movimiento que queda del segundo conjunto reducido de predictores del vector de movimiento L1 ’’ en la etapa S612.
En una realización alternativa, la etapa S612 sigue directamente a la prueba S606, en caso de respuesta negativa a la prueba S606.
El valor de importancia es calculado en esta realización como el número de duplicados de un predictor del vector de movimiento dado, utilizando el número de duplicados de un predictor del vector de movimiento dado calculado y almacenado durante las etapas S604 y S610. Tomando el ejemplo de la figura 1, dos vectores, V0 y V3 son iguales, así que el vector V0 tiene un valor de importancia igual a 2.
En una realización alternativa, el valor de importancia puede ser calculado en función de la distancia a un vector representativo del conjunto de vectores considerado, como el valor promedio de los vectores del conjunto o la mediana de los vectores del conjunto. A continuación, la importancia puede ser calculada como la inversa de la distancia de un vector dado del conjunto Vn al vector representativo: cuanto más cerca esté un vector Vn del vector representativo del conjunto, mayor es la importancia de Vn.
A continuación, los restantes N2 candidatos a predictores del vector de movimiento son ordenados en la etapa S614 según un orden de valor de importancia decreciente. Si varios predictores del vector de movimiento tienen el mismo valor de importancia, pueden ser ordenados según el orden creciente de sus índices.
Los predictores del vector de movimiento reordenados son reasignados según índices crecientes {V0, V1,..., VN2-1}. En la siguiente etapa S616, una variable n es inicializada a 0 y una variable N es inicializada a N2, que es el número actual de predictores del vector de movimiento en el conjunto reordenado.
A continuación, en la etapa S618 que sigue a la etapa S616, los candidatos a predictor virtual del vector de movimiento son añadidos al conjunto reordenado. En esta realización, los predictores del vector de movimiento son calculados a partir de los predictores del vector de movimiento restantes, ordenados según su importancia. Se considera el predictor del vector de movimiento de índice n del conjunto reordenado Vn de coordenadas (Vnx, Vny). La siguiente lista de 8 predictores virtuales del vector de movimiento, definida por sus coordenadas, puede ser calculada a partir de Vn, añadiendo sucesivamente off y -off a una de las dos coordenadas de Vn: {(Vnx+off, Vny), (Vnx-off, Vny) (Vnx+off, Vny+off) (Vnx+off, Vny -off), (Vnx-off, Vny off) (Vnx-off, V ny -off) (Vnx, Vny off), (Vnx, V tyo ff}} ’
Es posible utilizar cualquier cálculo alternativo de los predictores virtuales del vector de movimiento partiendo del predictor del vector de movimiento Vn, en particular las alternativas descritas anteriormente con respecto a la etapa S514 de la figura 5.
Esta lista de predictores virtuales del vector de movimiento es añadida al conjunto actual de predictores del vector de movimiento.
Los duplicados son eliminados en la etapa S620.
El valor N es actualizado en la etapa S622 respecto al número restante de predictores del vector de movimiento tras la eliminación de potenciales duplicados.
A continuación, se comprueba si N es mayor o igual que Nmax en la etapa S624. En caso de respuesta negativa, la etapa S624 es seguida de la etapa S634 de incremento del valor n en 1, y se repiten las etapas S618 a S624.
En caso de respuesta positiva a la etapa S624, se han obtenido suficientes predictores del vector de movimiento. La etapa S624 es seguida de la etapa S630 de selección de los primeros Nmax candidatos a vector de movimiento para constituir el conjunto final de predictores del vector de movimiento L2 de Nmax vectores.
En el codificador, la etapa S630 es seguida de la etapa S632, análoga a la etapa S522 de la figura 5, de selección de un predictor del vector de movimiento MVi óptimo entre el conjunto de predictores del vector de movimiento para el bloque actual, según un criterio predeterminado tal como un criterio de distorsión del coeficiente.
La etapa S632 es seguida de la etapa S634 de codificación del vector de movimiento del bloque actual que utiliza el predictor del vector de movimiento MVi, similar a la etapa S524 de la figura 5. Por ejemplo, el índice i de los predictores del vector de movimiento MVi es codificado utilizando k bits, siendo k calculado a partir de Nmax,
De manera alternativa, se puede aplicar una codificación de entropía de índice i.
En otra alternativa más, el índice i puede ser codificado utilizando un código de tipo prefijo, como el código de Rice-Golomb, en el que cada valor i es codificado utilizando i ‘1 ’s seguidos por un ‘0’.
El algoritmo de la figura 6 puede ser asimismo implementado mediante un descodificador para generar el conjunto de predictores del vector de movimiento o de candidatos a vector de movimiento para un bloque dado, excepto las etapas S632 y S634, que se omiten en el lado del descodificador.
En el descodificador, el índice i del predictor del vector de movimiento MVi seleccionado para el bloque dado a codificar es obtenido a partir de la secuencia de bits, conociendo Nmax y por lo tanto el número de bits k en los cuales el índice i ha sido codificado. Las etapas S600 a D630 son implementadas de manera similar para recuperar el conjunto de predictores del vector de movimiento L2, de manera que el índice i descodificado a partir de la secuencia de bits designa el predictor del vector de movimiento utilizado realmente por el codificador.
En caso de pérdidas durante la transmisión, dado que el número Nmax puede ser recuperado de manera sistemática por el descodificador, la secuencia de bits recibido puede ser analizada sintácticamente de manera sistemática para extraer el índice i que designa el predictor del vector de movimiento seleccionado, incluso si, dependiendo de los paquetes perdidos, no es posible recuperar el conjunto completo de predictores del vector de movimiento L2 en el descodificador.
Las realizaciones descritas anteriormente se basan en particiones de bloque de imágenes de entrada, pero más generalmente, se puede considerar cualquier tipo de porciones de la imagen a codificar o descodificar, en particular, porciones rectangulares o, de manera más general, porciones geométricas.
Se pueden considerar otras realizaciones alternativas, tales como por ejemplo empezar con un conjunto grande de candidatos a predictor del vector de movimiento, que comprenda un número de vectores N mayor que el número objetivo de predictores del vector de movimiento determinados Nmax, y aplicar un algoritmo de tipo de grupo para reducir el conjunto de vectores. Por ejemplo, se puede aplicar una partición de Vorono'í para reducir el conjunto a los Nmax vectores más representativos del conjunto según una distancia predefinida entre los vectores del conjunto.

Claims (15)

REIVINDICACIONES
1. Procedimiento de codificación de una secuencia de imágenes digitales en una secuencia de bits, estando, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el procedimiento:
obtener (S502; S602, S604), para una porción de la imagen a codificar, predictores de información del movimiento como candidatos del predictor de información del movimiento, en el que los predictores de información del movimiento son predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen a codificar, o de una imagen de referencia;
comprobar (S512; S606) si el número (N; N1) de candidatos del predictor de información del movimiento es menor que un número objetivo (Nmax) y, si es así, añadir (S608, S610) uno o varios predictores de información del movimiento como candidatos del predictor de información del movimiento para generar un conjunto de candidatos del predictor de información del movimiento diferentes unos de otros, teniendo dicho conjunto un número de candidatos del predictor de información del movimiento igual al número objetivo;
seleccionar un predictor de información del movimiento para codificar la información del movimiento de la citada porción de la imagen a codificar a partir del conjunto generado de candidatos del predictor de información del movimiento; y
codificar un elemento de información representativo de dicho predictor de información del movimiento seleccionado para la citada porción de la imagen a codificar,
los predictores potenciales de información del movimiento a añadir comprenden uno o varios de tales predictores reales de información del movimiento adicionales y comprenden igualmente uno o varios predictores virtuales de información del movimiento que no disponen de vectores de movimiento obtenidos a partir de porciones de imagen que se están codificando o de una imagen de referencia,
caracterizado por que:
la adición (S608, S610) de uno o varios predictores de información del movimiento comprende:
efectuar un primer proceso de adición que consiste en añadir (S608, S610) uno o varios de dichos otros predictores reales de información del movimiento; y
efectuar una segunda prueba (S628) para determinar si el número (N2) de candidatos del predictor de información del movimiento es menor que dicho número objetivo (Nmax) y, si es el caso, efectuar un segundo proceso de adición que consiste en añadir (S618-S626) uno o varios de dichos predictores virtuales de información del movimiento como candidatos del predictor de información del movimiento.
2. Procedimiento según la reivindicación 1, en el que, al menos, uno de dichos predictores virtuales de información del movimiento se calcula a partir de un predictor existente de información del movimiento.
3. Procedimiento según la reivindicación 2, en el que un vector suplementario es añadido a un vector de movimiento de un predictor existente de información del movimiento, teniendo el vector suplementario una dirección predeterminada con respecto a la dirección del vector de movimiento del predictor existente de información del movimiento.
4. Procedimiento según la reivindicación 3, en el que la magnitud del vector suplementario depende de la magnitud del vector de movimiento del predictor existente de información del movimiento.
5. Procedimiento según la reivindicación 3 o 4, en el que el vector suplementario comprende componentes (aMVx, bMVy) proporcionales a componentes respectivas del vector de movimiento del predictor existente de información del movimiento.
6. Procedimiento de descodificación de una secuencia de bits que comprende una secuencia codificada de imágenes digitales, estando, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una imagen de referencia, comprendiendo el procedimiento:
obtener (S502; S602, S604), para una porción de la imagen a descodificar, predictores de información del movimiento como candidatos del predictor de información del movimiento, en el que los predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen a codificar, o de una imagen de referencia;
comprobar (S512; S606) si el número (N; N1) de candidatos del predictor de información del movimiento es menor que un número objetivo (Nmax) y, si es así, añadir (S608, S610) uno o varios predictores de información del movimiento como candidatos del predictor de información del movimiento para generar un conjunto de candidatos del predictor de información del movimiento diferentes unos de otros, teniendo dicho conjunto un número de candidatos del predictor de información del movimiento igual al número objetivo;
decodificar un elemento de información representativo de un predictor de información del movimiento seleccionado para la citada porción de imagen a descodificar; y
determinar el predictor de información del movimiento seleccionado para descodificar la información del movimiento de dicha porción de la imagen a descodificar utilizando el conjunto generado de candidatos del predictor de información del movimiento,
los predictores potenciales de información del movimiento a añadir comprenden uno o varios de tales predictores reales de información del movimiento adicionales y comprenden igualmente uno o varios predictores virtuales de información del movimiento que no disponen de vectores de movimiento obtenidos a partir de porciones de imagen que se están codificando o de una imagen de referencia,
caracterizado por que:
la adición (S608, S610) de uno o varios predictores de información del movimiento comprende:
efectuar un primer proceso de adición que consiste en añadir (S608, S610) uno o varios de dichos predictores adicionales reales de información del movimiento; y
efectuar una segunda comprobación (S628) para determinar si el número (N2) de predictores de información del movimiento es menor que dicho número objetivo (Nmax) y, si es así, efectuar un segundo proceso de adición (S618-S626) de uno o varios de dichos predictores virtuales de información del movimiento como candidatos del predictor de información del movimiento.
7. Procedimiento según la reivindicación 6, que comprende además extraer dicho predictor de información del movimiento seleccionado de dicho conjunto generado de predictores de información del movimiento utilizando dicho elemento de información descodificado.
8. Procedimiento según cualquiera de las reivindicaciones 6 o 7, en el que, al menos, uno de dichos predictores virtuales de información del movimiento se calcula a partir de un predictor existente de información del movimiento.
9. Procedimiento según la reivindicación 8, en el que un vector suplementario se añade a un vector de movimiento de un predictor existente de información del movimiento, teniendo el vector suplementario una dirección predeterminada con respecto a la dirección del vector de movimiento del predictor existente de información del movimiento.
10. Procedimiento según la reivindicación 9, en el que la magnitud del vector suplementario depende de la magnitud del vector de movimiento del predictor existente de información del movimiento.
11. Procedimiento según la reivindicación 9 o 10, en el que el vector suplementario comprende componentes (aMVx, bMVy) proporcionales a los componentes correspondientes respectivos del vector de movimiento del predictor existente de información del movimiento.
12. Dispositivo para codificar una secuencia de imágenes digitales en una secuencia de bits, estando, al menos, una porción de la imagen codificada por compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el dispositivo:
medios para obtener (S502; S602, S604), para una porción de la imagen a codificar, predictores de información del movimiento como candidatos del predictor de información del movimiento, en el que los predictores de información del movimiento son predictores reales de información del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de la citada imagen que se está codificando o de una imagen de referencia; medios para comprobar (S512, S606) si el número (N; N1) de candidatos del predictor de información del movimiento es menor que un número objetivo (Nmax) y, si es así, añadir (S608, S610) uno o varios predictores de información del movimiento como candidatos del predictor de información del movimiento para generar un conjunto de candidatos del predictor de información del movimiento diferentes entre sí, teniendo dicho conjunto un número de candidatos del predictor de información del movimiento igual al número objetivo;
medios para seleccionar un predictor de información del movimiento para codificar la información del movimiento de dicha porción de la imagen a codificar a partir del conjunto generado de candidatos del predictor de información del movimiento; y
medios para codificar un elemento de información representativo de dicho predictor de información del movimiento para dicha porción de la imagen a codificar,
en el que los predictores de información del movimiento para la adición incluyen uno o varios predictores adicionales reales de información del movimiento de este tipo, e incluyen igualmente uno o varios predictores virtuales de información del movimiento que no disponen de vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificación o de una imagen de referencia; y caracterizado por que:
la adición (S608, S610) de uno o varios predictores de información del movimiento por los medios de comprobación comprende:
efectuar un primer proceso de adición para añadir (S608, S610), uno o varios de dichos predictores adicionales reales de información del movimiento; y
efectuar una segunda prueba (S628) para determinar si el número (N2) de predictores de información del movimiento es menor que dicho número objetivo (Nmax) y, si es así, efectuar un segundo proceso de adición para añadir (S618-S626) uno o varios predictores virtuales de información del movimiento como candidatos del predictor de información del movimiento.
13. Dispositivo para descodificar una secuencia de bits, que comprende una secuencia codificada de imágenes digitales, estando, al menos, una porción de una imagen en proceso de codificación, codificada por compensación del movimiento con respecto a una imagen de referencia, comprendiendo el dispositivo:
medios para obtener (S502; S602, S604), para una porción de la imagen a descodificar, predictores de información del movimiento como candidatos del predictor del vector de movimiento, en el que los predictores de información del movimiento son predictores reales de información del movimiento, que disponen de vectores del movimiento obtenidos a partir de porciones de imagen de la citada imagen en proceso de descodificación o de una imagen de referencia;
medios para comprobar (S512; S606) si el número (N; N1) de candidatos del predictor de información del movimiento es menor que un número objetivo (Nmax) y, si es así, añadir (S608, S610) uno o varios predictores de información del movimiento como candidatos del predictor de información del movimiento para generar un conjunto de candidatos del predictor de información del movimiento diferentes unos de otros, disponiendo dicho conjunto de un número de candidatos del predictor de información del movimiento igual al número objetivo;
medios para descodificar un elemento de información representativo de un predictor de información del movimiento seleccionado para dicha porción de imagen a descodificar; y
medios para determinar el predictor de información del movimiento seleccionado para descodificar la información del movimiento de dicha porción de imagen a descodificar utilizando el conjunto generado de candidatos del predictor de información del movimiento,
los potenciales predictores de información del movimiento a añadir incluyen uno o varios predictores reales adicionales de información del movimiento de este tipo, e incluyen igualmente uno o varios predictores virtuales de información del movimiento que no disponen de vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de descodificación o de una imagen de referencia, y caracterizado por que:
la adición (S608, S610) de uno o varios predictores de información del movimiento mediante los medios para efectuar una comprobación comprende:
efectuar un primer proceso de adición para añadir (S608, S610) uno o varios de dichos predictores adicionales de información del movimiento; y
efectuar una segunda comprobación (S628) para determinar si el número (N2) de candidatos del predictor de información del movimiento en dicho segundo conjunto es menor que dicho número objetivo (Nmax) y, si es el caso, efectuar un segundo proceso de adición, para añadir (S618-S626) uno o varios de dichos predictores virtuales de información del movimiento como candidatos del predictor de información del movimiento.
14. Programa informático que, cuando es ejecutado en un ordenador, hace que el ordenador ponga en práctica un procedimiento de codificación de una señal digital de video según cualquiera de las reivindicaciones 1 a 5, o un procedimiento de descodificación de una secuencia de bits según cualquiera de las reivindicaciones 6 a 11.
15. Medio de almacenamiento legible por ordenador que almacena un programa según la reivindicación 14.
ES16164491T 2011-01-12 2012-01-11 Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento Active ES2726048T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1100462.9A GB2487200A (en) 2011-01-12 2011-01-12 Video encoding and decoding with improved error resilience

Publications (1)

Publication Number Publication Date
ES2726048T3 true ES2726048T3 (es) 2019-10-01

Family

ID=43664110

Family Applications (7)

Application Number Title Priority Date Filing Date
ES12700128.7T Active ES2583407T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento
ES19171827T Active ES2834135T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de vídeo con resiliencia mejorada frente a errores
ES16197731T Active ES2835311T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de video con resiliencia mejorada frente a errores
ES16164491T Active ES2726048T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento
ES17165564T Active ES2753760T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de vídeo con resiliencia mejorada frente a errores
ES12700129.5T Active ES2615828T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de video con resiliencia mejorada frente a errores
ES19157140T Active ES2786998T3 (es) 2011-01-12 2012-01-11 Descodificación de video con una mejora de la diversidad de los vectores de movimiento

Family Applications Before (3)

Application Number Title Priority Date Filing Date
ES12700128.7T Active ES2583407T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento
ES19171827T Active ES2834135T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de vídeo con resiliencia mejorada frente a errores
ES16197731T Active ES2835311T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de video con resiliencia mejorada frente a errores

Family Applications After (3)

Application Number Title Priority Date Filing Date
ES17165564T Active ES2753760T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de vídeo con resiliencia mejorada frente a errores
ES12700129.5T Active ES2615828T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de video con resiliencia mejorada frente a errores
ES19157140T Active ES2786998T3 (es) 2011-01-12 2012-01-11 Descodificación de video con una mejora de la diversidad de los vectores de movimiento

Country Status (13)

Country Link
US (14) US20130279596A1 (es)
EP (10) EP2666294B1 (es)
JP (12) JP5847843B2 (es)
KR (15) KR20130105906A (es)
CN (17) CN107454399A (es)
BR (2) BR122019026393B1 (es)
ES (7) ES2583407T3 (es)
GB (3) GB2487200A (es)
HU (5) HUE046362T2 (es)
PL (5) PL3244613T3 (es)
RU (6) RU2556386C2 (es)
TR (1) TR201907405T4 (es)
WO (4) WO2012095464A1 (es)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101459714B1 (ko) * 2009-10-28 2014-11-13 에스케이텔레콤 주식회사 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101768207B1 (ko) 2010-01-19 2017-08-16 삼성전자주식회사 축소된 예측 움직임 벡터의 후보들에 기초해 움직임 벡터를 부호화, 복호화하는 방법 및 장치
GB2487200A (en) * 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
GB2493755B (en) 2011-08-17 2016-10-19 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of images
GB2511288A (en) * 2013-01-09 2014-09-03 Canon Kk Method, device, and computer program for motion vector prediction in scalable video encoder and decoder
GB2512829B (en) * 2013-04-05 2015-05-27 Canon Kk Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme
CN103475883B (zh) * 2013-09-26 2016-07-06 北京航空航天大学 一种基于运动区域划分的hevc运动估计提前终止方法
CN104410864B (zh) * 2014-11-07 2018-08-14 太原科技大学 Hevc中基于残差能量的错误隐藏方法
US9955160B1 (en) * 2015-04-27 2018-04-24 Harmonic, Inc. Video encoding using adaptive pre-filtering
US9787987B2 (en) 2015-04-27 2017-10-10 Harmonic, Inc. Adaptive pre-filtering based on video complexity and output bit rate
US10271064B2 (en) 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
JP6727791B2 (ja) * 2015-11-05 2020-07-22 キヤノン株式会社 追尾制御装置および追尾制御方法、撮像装置
CN111556323B (zh) 2016-02-06 2022-05-13 华为技术有限公司 图像编解码方法及装置
DE102016223079B4 (de) * 2016-11-23 2024-03-28 Robert Bosch Gmbh Verfahren und Vorrichtung zur Ermittlung einer Zuordnung zwischen einem Matrixelement einer Matrix und einem Vergleichsmatrixelement einer Vergleichsmatrix mittels Korrespondenztabelle
US10735761B2 (en) * 2017-05-19 2020-08-04 Mediatek Inc Method and apparatus of video coding
CN109495738B (zh) * 2017-09-12 2023-02-07 华为技术有限公司 一种运动信息的编解码方法和装置
JP7250781B2 (ja) 2017-10-06 2023-04-03 ソシエテ・デ・プロデュイ・ネスレ・エス・アー 容器、調製マシン及び調製情報を符号化するための2値コードを使用するシステム
KR102486879B1 (ko) 2018-04-12 2023-01-11 삼성디스플레이 주식회사 디스플레이 장치 및 그 제조방법
WO2020043000A1 (zh) * 2018-08-28 2020-03-05 华为技术有限公司 候选运动信息列表的构建方法、帧间预测方法及装置
WO2020084475A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Utilization of refined motion vector
CN111436227B (zh) 2018-11-12 2024-03-29 北京字节跳动网络技术有限公司 在视频处理中使用组合帧间-帧内预测
WO2020103852A1 (en) 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Difference calculation based on patial position
JP7433038B2 (ja) 2018-12-19 2024-02-19 キヤノンメディカルシステムズ株式会社 医用情報匿名化システム、及び匿名化方法設定装置
KR102635518B1 (ko) * 2019-03-06 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 변환된 단예측 후보의 사용
KR102184913B1 (ko) * 2019-03-12 2020-12-01 한양대학교 산학협력단 원형의 직교 진폭 변조 신호 성상도를 생성하는 방법 및 장치
EP3989572A4 (en) * 2019-06-21 2023-04-12 Samsung Electronics Co., Ltd. APPARATUS AND METHOD FOR ENCODING AND DECODING MOTION INFORMATION USING PROXIMITY MOTION INFORMATION
EP3981157A4 (en) * 2019-07-11 2022-07-06 Huawei Technologies Co., Ltd. MOTION FIELD STORAGE OPTIMIZATION FOR LINE BUFFER
WO2023194603A1 (en) * 2022-04-08 2023-10-12 Interdigital Ce Patent Holdings, Sas Motion information candidates re-ordering

Family Cites Families (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1100461A (en) 1963-10-02 1968-01-24 Automatic Telephone & Elect Improvements in or relating to magnetic core matrix data storage devices
JP3265590B2 (ja) * 1991-07-24 2002-03-11 松下電器産業株式会社 画像の動きベクトル検出装置及び画像揺れ補正装置
JPH0620050A (ja) * 1992-07-03 1994-01-28 Matsushita Electric Ind Co Ltd 動画像信号の復号化装置と推定動きベクトル算出方法
JPH0730896A (ja) 1993-06-25 1995-01-31 Matsushita Electric Ind Co Ltd 動きベクトル符号化及び復号化方法
US5552673A (en) 1994-10-04 1996-09-03 Kenwood; Michael Theft resistant compact fluorescent lighting system
US5675382A (en) 1996-04-08 1997-10-07 Connectix Corporation Spatial compression and decompression for video
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US6122320A (en) 1997-03-14 2000-09-19 Cselt-Centro Studi E Laboratori Telecomunicazioni S.P.A. Circuit for motion estimation in digitized video sequence encoders
JP4573366B2 (ja) * 1997-09-25 2010-11-04 株式会社大宇エレクトロニクス 動きベクトル符号化方法及び符号化装置
JPH11112985A (ja) 1997-09-29 1999-04-23 Sony Corp 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および、伝送媒体
JP3407287B2 (ja) * 1997-12-22 2003-05-19 日本電気株式会社 符号化復号システム
WO1999041912A2 (en) 1998-02-13 1999-08-19 Koninklijke Philips Electronics N.V. Method and arrangement for video coding
JP3841132B2 (ja) * 1998-06-01 2006-11-01 株式会社ソニー・コンピュータエンタテインメント 入力位置検出装置及びエンタテインメントシステム
CN1288641A (zh) 1998-09-22 2001-03-21 松下电器产业株式会社 视频信号编码方法、视频信号编码装置及程序记录媒体
US7327791B1 (en) 1999-02-22 2008-02-05 Mitsubishi Denki Kabushiki Kaisha Video decoding method performing selective error concealment and resynchronization
US6738423B1 (en) 2000-01-21 2004-05-18 Nokia Mobile Phones Ltd. Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder
US6552673B2 (en) 2000-02-25 2003-04-22 Texas Instruments Incorporated Efficient table access for reversible variable length code decoding using a hash function
EP1152621A1 (en) * 2000-05-05 2001-11-07 STMicroelectronics S.r.l. Motion estimation process and system.
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
US7787746B2 (en) 2001-10-23 2010-08-31 Thomson Licensing Fast motion trick mode using non-progressive dummy bidirectional predictive pictures
US20040125204A1 (en) 2002-12-27 2004-07-01 Yoshihisa Yamada Moving picture coding apparatus and moving picture decoding apparatus
US7248741B2 (en) 2002-01-09 2007-07-24 Hiroshi Akimoto Video sequences correlation and static analysis and scene changing forecasting in motion estimation
BR0302719A (pt) 2002-01-18 2004-03-09 Toshiba Kk Toshiba Corp Método e aparelho de codificação de vìdeo e método e aparelho de decodificação de vìdeo
KR100492127B1 (ko) * 2002-02-23 2005-06-01 삼성전자주식회사 적응형 움직임 추정장치 및 추정 방법
KR100474285B1 (ko) * 2002-04-08 2005-03-08 엘지전자 주식회사 모션벡터결정방법
ES2351306T3 (es) 2002-04-18 2011-02-02 Kabushiki Kaisha Toshiba Procedimiento y dispositivo para la codificación de imágen en movimiento.
JP2004023458A (ja) 2002-06-17 2004-01-22 Toshiba Corp 動画像符号化/復号化方法及び装置
US6925123B2 (en) 2002-08-06 2005-08-02 Motorola, Inc. Method and apparatus for performing high quality fast predictive motion search
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
US7620106B2 (en) 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7577198B2 (en) 2003-09-07 2009-08-18 Microsoft Corporation Number of reference fields for an interlaced forward-predicted field
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
CN1225127C (zh) 2003-09-12 2005-10-26 中国科学院计算技术研究所 一种用于视频编码的编码端/解码端双向预测方法
CN100353768C (zh) * 2003-11-26 2007-12-05 联发科技股份有限公司 在视频压缩系统中进行运动估测的方法及相关装置
WO2005055608A1 (en) 2003-12-01 2005-06-16 Samsung Electronics Co., Ltd. Method and apparatus for scalable video encoding and decoding
WO2005083637A1 (es) * 2004-02-27 2005-09-09 Td Vision Corporation, S.A. De C.V. Método y sistema de decodificación digital de imágenes de video 3d estereoscópicas
EP1578137A2 (en) * 2004-03-17 2005-09-21 Matsushita Electric Industrial Co., Ltd. Moving picture coding apparatus with multistep interpolation process
US7676722B2 (en) 2004-03-31 2010-03-09 Sony Corporation Multimedia content delivery using pre-stored multiple description coded video with restart
CA2574556A1 (en) 2004-07-20 2006-02-02 Qualcomm Incorporated Method and apparatus for motion vector processing
CN101005620B (zh) * 2004-09-03 2011-08-10 微软公司 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新
CN1256686C (zh) 2004-09-15 2006-05-17 哈尔滨工业大学 一种运动估计方法和应用该方法的运动估计电路
JP4746550B2 (ja) 2004-09-22 2011-08-10 パナソニック株式会社 画像符号化装置
KR100679022B1 (ko) * 2004-10-18 2007-02-05 삼성전자주식회사 계층간 필터링을 이용한 비디오 코딩 및 디코딩방법과,비디오 인코더 및 디코더
US20060153300A1 (en) * 2005-01-12 2006-07-13 Nokia Corporation Method and system for motion vector prediction in scalable video coding
EP1703736A1 (en) * 2005-03-14 2006-09-20 BRITISH TELECOMMUNICATIONS public limited company Global motion estimation
US20080310510A1 (en) 2005-03-22 2008-12-18 Mitsubishi Electric Corporation Image Coding, Recording and Reading Apparatus
KR100736041B1 (ko) 2005-06-30 2007-07-06 삼성전자주식회사 에러 은닉 방법 및 장치
RU2368095C1 (ru) 2005-07-22 2009-09-20 Мицубиси Электрик Корпорейшн Кодер изображения и декодер изображения, способ кодирования изображения и способ декодирования изображения, программа кодирования изображения и программа декодирования изображения и компьютерно-считываемый носитель записи, на котором записана программа кодирования изображения, и компьютерно-считываемый носитель записи, на котором записана программа декодирования изображения
JP2007067731A (ja) 2005-08-30 2007-03-15 Sanyo Electric Co Ltd 符号化方法
JP2007074592A (ja) 2005-09-09 2007-03-22 Sony Corp 画像処理装置および方法、プログラム、並びに記録媒体
KR100712532B1 (ko) 2005-09-10 2007-04-30 삼성전자주식회사 단일표현과 다중표현 전환을 이용한 동영상 변환부호화장치 및 방법
US7620108B2 (en) * 2005-09-16 2009-11-17 Sony Corporation Integrated spatial-temporal prediction
US20070064805A1 (en) 2005-09-16 2007-03-22 Sony Corporation Motion vector selection
US8165205B2 (en) 2005-09-16 2012-04-24 Sony Corporation Natural shaped regions for motion compensation
US8879857B2 (en) 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
JP2007097028A (ja) * 2005-09-30 2007-04-12 Oki Electric Ind Co Ltd 動きベクトル検出方法および動きベクトル検出回路
US8325822B2 (en) 2006-01-20 2012-12-04 Qualcomm Incorporated Method and apparatus for determining an encoding method based on a distortion value related to error concealment
JP5004150B2 (ja) * 2006-02-24 2012-08-22 Kddi株式会社 画像符号化装置
US8320450B2 (en) 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
JP5188033B2 (ja) 2006-04-24 2013-04-24 株式会社日立製作所 記録再生装置、送出装置及び伝送システム。
CN101064849A (zh) 2006-04-29 2007-10-31 鲁海宁 动态图像编码方法、装置和计算机可读记录介质
US20080002770A1 (en) * 2006-06-30 2008-01-03 Nokia Corporation Methods, apparatus, and a computer program product for providing a fast inter mode decision for video encoding in resource constrained devices
CN100576919C (zh) * 2006-08-08 2009-12-30 佳能株式会社 运动矢量检测设备及运动矢量检测方法
DE102006043707A1 (de) * 2006-09-18 2008-03-27 Robert Bosch Gmbh Verfahren zur Datenkompression in einer Videosequenz
CN101155311B (zh) 2006-09-27 2012-09-05 中兴通讯股份有限公司 一种视频通信中的视频码流错误检测和处理方法
KR101383540B1 (ko) 2007-01-03 2014-04-09 삼성전자주식회사 복수의 움직임 벡터 프리딕터들을 사용하여 움직임 벡터를추정하는 방법, 장치, 인코더, 디코더 및 복호화 방법
JP2008193627A (ja) 2007-01-12 2008-08-21 Mitsubishi Electric Corp 画像符号化装置、画像復号装置、および画像符号化方法、画像復号方法
JP5026092B2 (ja) 2007-01-12 2012-09-12 三菱電機株式会社 動画像復号装置および動画像復号方法
TW200836130A (en) 2007-02-16 2008-09-01 Thomson Licensing Bitrate reduction method by requantization
JP5025286B2 (ja) 2007-02-28 2012-09-12 シャープ株式会社 符号化装置及び復号装置
CN101267567A (zh) 2007-03-12 2008-09-17 华为技术有限公司 帧内预测、编解码方法及装置
BRPI0809512A2 (pt) 2007-04-12 2016-03-15 Thomson Licensing método e aparelho para mesclagem dependente de contexto para modos salto-direto para codificação e decodificação de vídeo
JP2008283560A (ja) 2007-05-11 2008-11-20 Canon Inc 画像処理装置およびその方法
US8254450B2 (en) 2007-08-23 2012-08-28 Nokia Corporation System and method for providing improved intra-prediction in video coding
CN100542299C (zh) 2007-08-31 2009-09-16 广东威创视讯科技股份有限公司 视讯图像错误的掩盖方法
EP2048886A1 (en) * 2007-10-11 2009-04-15 Panasonic Corporation Coding of adaptive interpolation filter coefficients
CN100579231C (zh) * 2007-12-18 2010-01-06 北京中星微电子有限公司 一种运动矢量预测方法及装置
CN101466036A (zh) * 2007-12-21 2009-06-24 北京中电华大电子设计有限责任公司 基于avs的运动矢量预测流水并行设计方法
EP2266318B1 (en) 2008-03-19 2020-04-22 Nokia Technologies Oy Combined motion vector and reference index prediction for video coding
CN101252422B (zh) 2008-03-20 2013-06-05 中兴通讯股份有限公司 物理混合重传指示信道的分配方法
JP4990927B2 (ja) 2008-03-28 2012-08-01 三星電子株式会社 動きベクトル情報の符号化/復号化方法及び装置
US20090268821A1 (en) * 2008-04-29 2009-10-29 The Hong Kong University Of Science And Technology Block parallel and fast motion estimation in video coding
JP2010028221A (ja) * 2008-07-15 2010-02-04 Sony Corp 動きベクトル検出装置、動きベクトル検出方法、画像符号化装置及びプログラム
US20100020877A1 (en) 2008-07-23 2010-01-28 The Hong Kong University Of Science And Technology Multiple reference frame motion estimation in video coding
CN101350927B (zh) * 2008-07-29 2011-07-13 北京中星微电子有限公司 帧内预测选择最优预测模式的方法及装置
JP5422168B2 (ja) 2008-09-29 2014-02-19 株式会社日立製作所 動画像符号化方法および動画像復号化方法
JP5401071B2 (ja) 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
US8295623B2 (en) 2008-10-14 2012-10-23 France Telecom Encoding and decoding with elimination of one or more predetermined predictors
CN101939994B (zh) 2008-12-08 2013-07-17 松下电器产业株式会社 图像解码装置及图像解码方法
KR101590511B1 (ko) * 2009-01-23 2016-02-02 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
US8737475B2 (en) 2009-02-02 2014-05-27 Freescale Semiconductor, Inc. Video scene change detection and encoding complexity reduction in a video encoder system having multiple processing devices
EP2443835B1 (fr) * 2009-06-19 2017-04-05 Orange Codage de vecteurs mouvement par compétition de prédicteurs
CN101931803B (zh) 2009-06-26 2013-01-09 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
KR20110008653A (ko) 2009-07-20 2011-01-27 삼성전자주식회사 움직임 벡터 예측 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법
US9060176B2 (en) 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
US20110090965A1 (en) 2009-10-21 2011-04-21 Hong Kong Applied Science and Technology Research Institute Company Limited Generation of Synchronized Bidirectional Frames and Uses Thereof
CN101860754B (zh) * 2009-12-16 2013-11-13 香港应用科技研究院有限公司 运动矢量编码和解码的方法和装置
CN101777963B (zh) 2009-12-29 2013-12-11 电子科技大学 一种基于反馈模式的帧级别编码与译码方法
US9036692B2 (en) 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
EP2532159A1 (en) 2010-02-05 2012-12-12 Telefonaktiebolaget L M Ericsson (PUBL) Selecting predicted motion vector candidates
CN101931821B (zh) * 2010-07-21 2014-12-10 中兴通讯股份有限公司 一种视频传输的差错控制方法及系统
US8736767B2 (en) 2010-09-29 2014-05-27 Sharp Laboratories Of America, Inc. Efficient motion vector field estimation
US20120082228A1 (en) 2010-10-01 2012-04-05 Yeping Su Nested entropy encoding
US10104391B2 (en) * 2010-10-01 2018-10-16 Dolby International Ab System for nested entropy encoding
US8976873B2 (en) 2010-11-24 2015-03-10 Stmicroelectronics S.R.L. Apparatus and method for performing error concealment of inter-coded video frames
JP5796289B2 (ja) 2010-11-26 2015-10-21 ソニー株式会社 二次電池セル、電池パック及び電力消費機器
GB2487200A (en) 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
CA2834191C (en) 2011-05-31 2019-04-09 Panasonic Corporation Video encoding method, video encoding device, video decoding method, video decoding device, and video encoding/decoding device

Also Published As

Publication number Publication date
KR20150006021A (ko) 2015-01-15
CN106851310A (zh) 2017-06-13
BR112013016702A2 (pt) 2016-10-04
JP2017143556A (ja) 2017-08-17
EP2666294A1 (en) 2013-11-27
PL3518544T3 (pl) 2020-07-13
RU2600530C2 (ru) 2016-10-20
CN103314586B (zh) 2017-09-22
US10165279B2 (en) 2018-12-25
JP6513154B2 (ja) 2019-05-15
CN106210734A (zh) 2016-12-07
ES2786998T3 (es) 2020-10-14
RU2016136342A3 (es) 2018-03-15
PL3244613T3 (pl) 2020-02-28
EP3070944A1 (en) 2016-09-21
KR20150006014A (ko) 2015-01-15
EP2664142B1 (en) 2016-12-28
EP3070944B1 (en) 2019-04-03
EP2664142A1 (en) 2013-11-20
KR101944289B1 (ko) 2019-01-31
KR101798280B1 (ko) 2017-11-15
US20190098313A1 (en) 2019-03-28
US20180242000A1 (en) 2018-08-23
KR20170128613A (ko) 2017-11-22
GB201111866D0 (en) 2011-08-24
JP5847844B2 (ja) 2016-01-27
US9386312B2 (en) 2016-07-05
RU2013137437A (ru) 2015-02-20
CN103329528A (zh) 2013-09-25
KR101972030B1 (ko) 2019-04-24
KR20180123186A (ko) 2018-11-14
US10609380B2 (en) 2020-03-31
JP2018026826A (ja) 2018-02-15
CN107105284A (zh) 2017-08-29
US11146792B2 (en) 2021-10-12
RU2709158C1 (ru) 2019-12-16
JP2019024241A (ja) 2019-02-14
CN103314586A (zh) 2013-09-18
KR20190014111A (ko) 2019-02-11
KR20190021492A (ko) 2019-03-05
WO2012095464A1 (en) 2012-07-19
CN107483958A (zh) 2017-12-15
CN107529063A (zh) 2017-12-29
CN107454398A (zh) 2017-12-08
CN106851309A (zh) 2017-06-13
ES2834135T3 (es) 2021-06-16
KR101918437B1 (ko) 2018-11-13
CN103314593B (zh) 2016-12-21
KR101525341B1 (ko) 2015-06-02
US20160277744A1 (en) 2016-09-22
US9979968B2 (en) 2018-05-22
HUE046362T2 (hu) 2020-03-30
EP3518544B1 (en) 2020-03-11
KR20150006015A (ko) 2015-01-15
JP6545318B2 (ja) 2019-07-17
EP3174297B1 (en) 2020-10-21
CN106851307A (zh) 2017-06-13
CN103314593A (zh) 2013-09-18
JP2017201802A (ja) 2017-11-09
GB201100462D0 (en) 2011-02-23
US10506236B2 (en) 2019-12-10
EP3550841A1 (en) 2019-10-09
CN103314585A (zh) 2013-09-18
KR20130119467A (ko) 2013-10-31
KR20170128614A (ko) 2017-11-22
JP2014503158A (ja) 2014-02-06
HUE049745T2 (hu) 2020-10-28
CN106851308A (zh) 2017-06-13
WO2012095466A1 (en) 2012-07-19
EP3598756B1 (en) 2021-03-10
EP3244613B1 (en) 2019-09-25
CN107454398B (zh) 2020-03-03
KR20190044128A (ko) 2019-04-29
ES2583407T3 (es) 2016-09-20
JP2016054538A (ja) 2016-04-14
JP2014506439A (ja) 2014-03-13
EP3550841B1 (en) 2020-10-07
CN107454423A (zh) 2017-12-08
US20180241999A1 (en) 2018-08-23
TR201907405T4 (tr) 2019-06-21
EP3174297A1 (en) 2017-05-31
KR101943787B1 (ko) 2019-01-29
PL3070944T3 (pl) 2019-09-30
JP5847843B2 (ja) 2016-01-27
RU2762933C2 (ru) 2021-12-24
RU2556386C2 (ru) 2015-07-10
KR20130105907A (ko) 2013-09-26
KR101999091B1 (ko) 2019-07-10
JP2015164322A (ja) 2015-09-10
KR20170128610A (ko) 2017-11-22
US20180242001A1 (en) 2018-08-23
US20130279596A1 (en) 2013-10-24
HUE052669T2 (hu) 2021-05-28
US20190098314A1 (en) 2019-03-28
US20130287113A1 (en) 2013-10-31
WO2013041244A1 (en) 2013-03-28
RU2651181C2 (ru) 2018-04-18
JP2014506440A (ja) 2014-03-13
CN107454399A (zh) 2017-12-08
JP2014503157A (ja) 2014-02-06
RU2015120774A (ru) 2015-11-20
US20180352236A1 (en) 2018-12-06
KR101837803B1 (ko) 2018-03-12
KR20130105906A (ko) 2013-09-26
RU2016136342A (ru) 2018-03-15
KR101953520B1 (ko) 2019-02-28
GB2487261A (en) 2012-07-18
GB201104032D0 (en) 2011-04-20
JP6336170B2 (ja) 2018-06-06
RU2019137968A3 (es) 2021-05-25
ES2753760T3 (es) 2020-04-14
CN107105285A (zh) 2017-08-29
KR102019640B1 (ko) 2019-09-06
PL3550841T3 (pl) 2021-04-06
US20210144385A1 (en) 2021-05-13
JP6779954B2 (ja) 2020-11-04
HUE052346T2 (hu) 2021-04-28
CN107483958B (zh) 2020-03-03
BR122019026393B1 (pt) 2022-05-24
PL3174297T3 (pl) 2021-03-08
JP6207576B2 (ja) 2017-10-04
US20180316921A1 (en) 2018-11-01
EP2664152A1 (en) 2013-11-20
JP5847845B2 (ja) 2016-01-27
HUE043611T2 (hu) 2019-08-28
JP6165219B2 (ja) 2017-07-19
US20130294521A1 (en) 2013-11-07
CN103329528B (zh) 2016-12-21
EP3244613A1 (en) 2017-11-15
ES2835311T3 (es) 2021-06-22
US20190098315A1 (en) 2019-03-28
EP2666294B1 (en) 2016-05-18
EP3598756A1 (en) 2020-01-22
CN106210734B (zh) 2020-01-14
KR101524393B1 (ko) 2015-05-29
RU2688252C1 (ru) 2019-05-21
KR101524394B1 (ko) 2015-05-29
CN107105272A (zh) 2017-08-29
ES2615828T3 (es) 2017-06-08
CN107529063B (zh) 2020-03-31
US20130287112A1 (en) 2013-10-31
GB2487253A (en) 2012-07-18
JP2016054539A (ja) 2016-04-14
EP3518544A1 (en) 2019-07-31
WO2012095465A1 (en) 2012-07-19
KR20130119468A (ko) 2013-10-31
KR101797805B1 (ko) 2017-11-14
JP2018152878A (ja) 2018-09-27
BR112013016702B1 (pt) 2022-08-16
US10499060B2 (en) 2019-12-03
KR20180030223A (ko) 2018-03-21
GB2487200A (en) 2012-07-18
JP6120900B2 (ja) 2017-04-26
EP2664145A1 (en) 2013-11-20
RU2019137968A (ru) 2021-05-25

Similar Documents

Publication Publication Date Title
ES2726048T3 (es) Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento
ES2727629T3 (es) Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
ES2929824T3 (es) Método de decodificación bipredictiva de imágenes