ES2615828T3 - Codificación y descodificación de video con resiliencia mejorada frente a errores - Google Patents

Codificación y descodificación de video con resiliencia mejorada frente a errores Download PDF

Info

Publication number
ES2615828T3
ES2615828T3 ES12700129.5T ES12700129T ES2615828T3 ES 2615828 T3 ES2615828 T3 ES 2615828T3 ES 12700129 T ES12700129 T ES 12700129T ES 2615828 T3 ES2615828 T3 ES 2615828T3
Authority
ES
Spain
Prior art keywords
movement information
predictors
image
information predictors
predictor
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
ES12700129.5T
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 ES2615828T3 publication Critical patent/ES2615828T3/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/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
    • 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/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/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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/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/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 para codificar una secuencia de imágenes digitales en un flujo de bits, siendo, por lo menos, una parte de una imagen codificada por compensación del movimiento con respecto a una parte de la imagen de referencia, en el que, para por lo menos una parte de la imagen a codificar, el procedimiento comprende las etapas de: - obtener un número objetivo de predictores de información del movimiento a utilizar para dicha parte de imagen a codificar; - generar un conjunto de predictores de información del movimiento que tienen el número objetivo de predictores de la información del movimiento obtenido; y - seleccionar un predictor de información del movimiento de entre el conjunto generado de predictores de información del movimiento para codificar la información del movimiento de dicha parte de la imagen a codificar, y en el que la etapa de generar comprende: - obtener un primer conjunto de predictores de información del movimiento, estando cada uno de ellos asociado con una parte de imagen que tiene una relación espacial y/o temporal predeterminada con dicha parte de imagen que está siendo codificada, teniendo dicho primer conjunto de predictores de información del movimiento un número de predictores de información del movimiento no mayor que el número objetivo, - modificar dicho primer conjunto de predictores de información del movimiento eliminando uno o varios predictores de información del movimiento duplicados para obtener un conjunto reducido de predictores de información del movimiento que contienen un primer número de predictores de información del movimiento, siendo cada predictor de información del movimiento de dicho conjunto reducido diferente de cualquier otro predictor de información del movimiento de dicho conjunto reducido y - después de obtener dicho conjunto reducido de predictores de información del movimiento, comparar dicho primer número de predictores de información del movimiento con dicho número objetivo obtenido, y - si dicho primer número es menor que dicho número objetivo, - obtener uno o varios predictores de información del movimiento adicionales, y - añadir dichos uno o varios predictores de información del movimiento adicionales a dicho conjunto reducido de predictores de información del movimiento, en el que los predictores de información del movimiento de dicho primer conjunto son predictores de información del movimiento reales, que tienen vectores de movimiento obtenidos a partir de partes de imagen de dicha imagen que está siendo codificada o de una imagen de referencia, y caracterizado porque dichos uno o varios predictores de información del movimiento adicionales incluyen un predictor virtual de información del movimiento que no tiene un vector de movimiento obtenido a partir de una parte de imagen de dicha imagen que está siendo codificado o de una imagen de referencia, y dicha adición genera el conjunto de predictores de información del movimiento que tiene el número objetivo de predictores de información del movimiento.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Codificacion y descodificacion de video con resiliencia mejorada frente a errores Sector tecnico de la invencion
La invencion se refiere a un procedimiento y un dispositivo para la codificacion de una secuencia de imagenes digitales y un procedimiento y dispositivo para la descodificacion de un flujo de bits correspondiente.
La invencion pertenece al sector tecnico del procesamiento de senales digitales y, en particular, al sector tecnico de la compresion de video utilizando compensacion del movimiento para reducir las redundancias espaciales y temporales en las secuencias de video.
Descripcion de la tecnica anterior
Muchos formatos de compresion de video, por ejemplo, H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, utilizan la transformada del coseno discreta (DCT, Discrete Cosine Transform) basada en bloques y la compensacion del movimiento para eliminar redundancias espaciales y temporales. Ambas se pueden denominar formatos predictivos de video. Cada fotograma o imagen de la senal de video se divide en segmentos que son codificados y pueden ser descodificados de manera independiente. Un segmento es habitualmente una parte rectangular del fotograma o, de manera mas general, una parte de un fotograma o un fotograma entero. Ademas, cada segmento esta dividido en macrobloques (MB) y cada macrobloque esta ademas dividido en bloques, habitualmente bloques de 8x8 pixeles. Los fotogramas codificados son de dos tipos: fotogramas predictibles temporales (ya sea predictibles a partir de un fotograma de referencia denominado 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 prediccion temporal consiste en encontrar en un fotograma de referencia, bien un fotograma anterior o un fotograma futuro de la secuencia de video, una parte de imagen o una zona de referencia mas proxima al bloque a codificar. Esta etapa es conocida como estimacion del movimiento. A continuacion, la diferencia entre el bloque a codificar y la parte de referencia es codificada (compensacion del movimiento), junto con un elemento de informacion del movimiento relativo al vector de movimiento que indica la zona de referencia a utilizar para la compensacion del movimiento.
Con el fin de reducir mas el coste de la codificacion de la informacion del movimiento, se ha propuesto codificar un vector de movimiento mediante la diferencia con respecto a un predictor del vector de movimiento, calculado habitualmente a partir de los vectores de movimiento de los bloques adyacentes 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 causal del bloque a codificar, por ejemplo, de los bloques situados encima y a la izquierda del bloque a codificar. Se codifica solo la diferencia, denominada asimismo vector de movimiento residual, entre el predictor medio y el vector de movimiento del bloque actual.
La codificacion mediante la utilizacion de vectores de movimiento residuales ahorra algo de tasa de bits, pero requiere que el descodificador efectue el mismo calculo 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 utilizacion de una serie de posibles predictores del vector de movimiento. Este procedimiento, denominado competicion de vectores de movimiento, consiste en determinar entre varios predictores del vector de movimiento o candidatos, que predictor del vector de movimiento minimiza el coste de la codificacion, habitualmente un coste de distorsion de la tasa, de la informacion residual del movimiento. La informacion 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 informacion que indica el predictor del vector de movimiento seleccionado, tal como por ejemplo un valor codificado del indice del predictor del vector de movimiento seleccionado.
En la Codificacion de video de alta eficiencia (HEVC, High Efficiency Video Coding) actualmente en proceso de estandarizacion, se ha propuesto la utilizacion de una serie de predictores del vector de movimiento, tal como se muestra esquematicamente en la figura 1:3 denominados predictores espaciales del vector de movimiento -Vi-, -V2- y -V3- tomados 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 espaciales -V1-, -V2- y -V3-, y un predictor temporal del vector de movimiento -V0- que es el vector de movimiento del bloque situado en la misma posicion en una imagen anterior de la secuencia (por ejemplo, el bloque de la imagen N-1 situado en la misma posicion espacial que el bloque ‘que esta siendo codificado’ de la imagen N). Actualmente en HEVC los 3 predictores espaciales del vector de movimiento se toman 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, segun una regla de disponibilidad predeterminada. Este esquema de seleccion de
5
10
15
20
25
30
35
40
45
50
55
60
65
predictor del vector de movimiento se denomina Prediccion avanzada 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 obtiene un conjunto de 5 candidatos a predictor del vector de movimiento que mezclan predictores espaciales y predictores temporales. Con el fin de reducir la sobrecarga de senalizar el predictor del vector de movimiento en el flujo 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 ilustracion de la figura 1, -V1- y -V2- son iguales, y -V0- y -V3- son tambien iguales, de manera que solo dos de ellos se deben mantener como candidatos de prediccion del vector de movimiento, por ejemplo, -V0- y -V1-. En este caso, solo es necesario un bit para indicar el indice del predictor del vector de movimiento al descodificador.
Es posible otra reduccion 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 ademas del conjunto de prediccion los candidatos que no habrian sido seleccionados, conociendo el vector de movimiento residual y el criterio de optimizacion del coste del codificador. Una reduccion suficiente del conjunto de predictores conduce a una ganancia en la sobrecarga de senalizacion, dado que la indicacion del predictor del vector de movimiento seleccionado puede ser codificada utilizando menos bits. En el limite, el conjunto de candidatos se puede reducir a 1, por ejemplo, si todos los predictores del vector de movimiento son iguales, y, por lo tanto, no es necesario introducir ninguna informacion relativa al predictor del vector de movimiento seleccionado en el flujo de bits.
El documento WO 2010/146314 A1 da a conocer la codificacion de los vectores del movimiento de un bloque actual utilizando competicion entre predictores del vector de movimiento. El numero final, objetivo, de predictores del vector de movimiento a considerar en la competicion se limita a un maximo de dos. Un primer conjunto de dos predictores del vector de movimiento candidatos se selecciona de entre bloques vecinos en el espacio y simultaneos temporalmente. Si este primer conjunto contiene vectores del movimiento iguales, se consideran otros predictores candidatos tomados de bloques vecinos en el espacio y simultaneos temporalmente. Si no se pudieran encontrar dos predictores distintos del vector de movimiento, solo se utiliza un predictor del vector de movimiento para codificar el vector de movimiento del bloque actual.
En resumen, la codificacion de vectores de movimiento por diferencia con un predictor del vector de movimiento, junto con la reduccion del numero de candidatos a predictor del vector de movimiento conduce a una ganancia de compresion. No obstante, tal como se ha explicado anteriormente, para un determinado bloque a codificar, la reduccion del numero de candidatos a predictor del vector de movimiento se basa en los valores que adoptan 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 en la misma situacion. Asimismo, el descodificador necesita poder aplicar el mismo analisis 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 indice 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 ‘que esta siendo codificado’, es reducido por el codificador a -Vo- y -V1-, de manera que el indice se codifica en un solo bit. Si el bloque de la imagen N-1 ‘situado en la misma posicion’ se pierde durante la transmision, el descodificador no puede obtener 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 cuantos bits se utilizan para la codificacion del indice del predictor del vector de movimiento para el bloque ‘que esta siendo codificado’ y, por consiguiente, el descodificador no puede analizar sintacticamente de manera correcta los datos del segmento, dado que no puede encontrar donde se detiene la codificacion del indice y donde se inicia la codificacion de los datos de video.
Por lo tanto, el hecho de que el numero de bits utilizados para la senalizacion 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 transmision, cuando se transmite el flujo de bits a un descodificador en una red de comunicacion con perdidas. De hecho, el procedimiento requiere el conocimiento de los valores de los predictores del vector de movimiento para analizar sintacticamente el flujo de bits de manera correcta en el descodificador. En caso de perdidas de paquetes, cuando se pierden algunos valores residuales del vector de movimiento, es imposible que el descodificador determine cuantos bits se utilizaron para codificar el indice que representa el predictor del vector de movimiento y, de este modo, resulta imposible analizar sintacticamente el flujo de bits de manera correcta. Dicho error se puede propagar, provocando la desincronizacion del descodificador hasta que el descodificador recibe una siguiente imagen de sincronizacion, codificada sin prediccion.
Seria deseable, por lo menos, poder analizar sintacticamente el flujo de bits codificados en un descodificador incluso en caso de perdidas de paquetes, de manera que sea posible aplicar posteriormente una cierta desincronizacion o cancelacion de error.
5
10
15
20
25
30
35
40
45
50
55
60
65
Se ha propuesto, en el documento JCTVC-C166r1, ‘TE11: Estudio de la codificacion del vector de movimiento (experimento 3.3a y 3.3c)’ por K. Sato, publicado en la 3a Reunion del Equipo de colaboracion conjunta sobre la Codificacion de video (JTC-VC) de Guangzhou, 7 a 15 de octubre de 2010, utilizar solamente los predictores del vector de movimiento espaciales procedentes del mismo segmento en el conjunto de predictores. Esta solucion resuelve el problema del analisis sintactico en el descodificador en caso de perdidas de segmentos. No obstante, la eficiencia de la codificacion disminuye significativamente, dado que el predictor del vector de movimiento temporal ya no se utiliza. Por lo tanto, esta solucion no resulta satisfactoria en terminos de rendimiento de la compresion.
CARACTERISTICAS DE LA INVENCION
Es deseable solucionar uno o varios de los inconvenientes de la tecnica anterior.
Segun un aspecto de la presente invencion, se da a conocer un procedimiento para codificar una secuencia de imagenes digitales en un flujo de bits tal como se indica en cualquiera de las reivindicaciones 1 a 9.
Segun un aspecto adicional de la presente invencion se da a conocer un procedimiento para descodificar un flujo de bits que comprende una secuencia codificada de imagenes digitales segun cualquiera de las reivindicaciones adjuntas 10 a 19.
Segun otro aspecto adicional de la presente invencion se da a conocer un dispositivo para codificar una secuencia de imagenes digitales en un flujo de bits tal como se expone en la reivindicacion adjunta 20.
Segun otro aspecto mas de la presente invencion, se da a conocer un dispositivo para descodificar un flujo de bits que comprende una secuencia codificada de imagenes digitales tal como se expone en la reivindicacion adjunta 21.
Segun un aspecto adicional de la presente invencion, se da a conocer un programa informatico segun la reivindicacion 22. En una realizacion, el programa informatico se almacena en un medio de almacenamiento legible por ordenador.
BREVE DESCRIPCION DE LOS DIBUJOS
Resultaran evidentes otras caracteristicas y ventajas en la descripcion siguiente, que se proporciona unicamente a modo de ejemplo no limitativo y hace referencia a los dibujos adjuntos, en los cuales:
- la figura 1, ya descrita, muestra esquematicamente un conjunto de predictores del vector de movimiento utilizados en un esquema de prediccion del vector de movimiento;
- la figura 2 es un diagrama de un dispositivo de procesamiento adaptado para implementar una realizacion de la presente invencion;
- la figura 3 es un diagrama de bloques de un codificador segun una realizacion de la invencion;
- la figura 4 muestra un diagrama de bloques de un descodificador segun una realizacion de la invencion;
- la figura 5 detalla la determinacion de un conjunto de predictores del vector de movimiento segun una primera realizacion;
- la figura 6 detalla la determinacion de un conjunto de predictores del vector de movimiento segun una segunda realizacion;
- la figura 7 muestra esquematicamente un segundo conjunto de predictores del vector de movimiento,
- la figura 8 muestra esquematicamente vectores del movimiento en un sistema de coordenadas.
DESCRIPCION DETALLADA DE LAS REALIZACIONES
La figura 2 muestra un diagrama de un dispositivo de procesamiento -1000- adaptado para implementar una realizacion de la presente invencion. El dispositivo -1000- es por ejemplo un micro-ordenador, una estacion de trabajo o un dispositivo portatil ligero.
El dispositivo -1000- comprende un bus de comunicacion -1113- al cual estan conectadas preferentemente:
- una unidad central de proceso -1111-, tal como un microprocesador, denominada CPU;
- una memoria de solo lectura -1107-, que puede contener programas informaticos para implementar la invencion, denominada ROM;
5
10
15
20
25
30
35
40
45
50
55
60
- una memoria de acceso aleatorio -1112-, denominada RAM, que puede contener el codigo ejecutable del procedimiento de la invencion, asf como los registros adaptados para registrar las variables y parametros necesarios para la implementacion del procedimiento de codificacion de una secuencia de imagenes digitales y/o el procedimiento de descodificacion de un flujo de bits; y
- una interfaz de comunicacion -1102- conectada a una red de comunicacion -1103- sobre la que se transmiten los datos digitales que se tienen que procesar.
Opcionalmente, el dispositivo -1000- puede contener asimismo los siguientes componentes:
- medios de almacenamiento de datos -1104- tal como un disco duro, que puede contener los programas que implementan la invencion y los datos utilizados o producidos durante la implementacion de la invencion;
- 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 sirve como interfaz grafica con el usuario, por medio de un teclado -1110- o cualquier otro medio de senalizacion.
El dispositivo -1000- se puede conectar a diversos perifericos, tales como por ejemplo una camara digital -1100- o un microfono -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 comunicacion permite comunicacion e interoperatividad entre los diferentes elementos incluidos en el dispositivo -1000- o conectados al mismo. La representacion del bus no es limitativa y, en particular, la unidad central de proceso es que puede 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 informacion tal como por ejemplo un disco compacto (CD-ROM), regrabable o no, un disco ZIP o una tarjeta de memoria y, en terminos generales, mediante medios de almacenamiento de informacion que pueden ser lefdos por un microordenador o por un microprocesador, integrados o no en el dispositivo, opcionalmente extrafble y adaptados para almacenar uno o varios programas cuya ejecucion permite implementar el procedimiento de codificacion de una secuencia de imagenes digitales y/o el procedimiento de descodificacion de un flujo de bits segun la invencion.
El codigo ejecutable puede ser almacenado bien en una memoria de solo lectura -1107-, en el disco duro -1104- o en un medio digital extrafble, tal como por ejemplo un disco -1106-, segun se ha descrito previamente. Segun una variante, el codigo ejecutable de los programas puede ser recibido por medio de la red de comunicacion -1103-, a traves 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 central de proceso -1111- esta adaptada para controlar y dirigir la ejecucion de las instrucciones o partes de codigo del software del programa o programas segun la invencion, instrucciones que estan almacenadas en uno de los medios de almacenamiento mencionados anteriormente. Cuando se enciende, el programa o programas que estan almacenados en una memoria no volatil, 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 codigo ejecutable del programa o programas, asf como los registros para almacenar las variables y parametros necesarios para la implementacion de la invencion.
En esta realizacion, el dispositivo es un dispositivo programable que utiliza software para implementar la invencion. No obstante, alternativamente, la presente invencion puede ser implementada en hardware (por ejemplo, en forma de un Circuito integrado de aplicacion especffica, o ASIC, Application Specific Integrated Circuit).
La figura 3 muestra un diagrama de bloques de un codificador segun una realizacion de la invencion. El codificador esta representado mediante modulos conectados, estando cada modulo adaptado para implementar, por ejemplo, en forma de instrucciones de programacion para ser ejecutadas por la CPU -1111- del dispositivo -1000-, una etapa correspondiente de un procedimiento una realizacion de la invencion.
Una secuencia original de imagenes digitales io a in -301- es recibida como entrada por el codificador -30-. Cada imagen digital esta representada por un conjunto de muestras, conocidas como pfxeles.
Un flujo de bits -310- es emitido por el codificador -30-.
5
10
15
20
25
30
35
40
45
50
55
60
65
El flujo de bits -310- comprende una serie de unidades de codificacion o segmentos, comprendiendo cada segmento una cabecera del segmento para codificar los valores de los parametros de codificacion utilizados para codificar el segmento y el cuerpo del segmento, que comprende datos de video codificados.
Las imagenes digitales de entrada estan divididas en bloques (302), cuyos bloques son partes de imagen y pueden ser de tamanos variables (por ejemplo, 4x4, 8x8, 16x16, 32x32). Se selecciona un modo de codificacion para cada bloque de entrada. Existen dos familias de modos de codificacion, codificacion de prediccion espacial o intra-codificacion y codificacion de prediccion temporal o inter-codificacion. Se someten a prueba los posibles modos de codificacion
El modulo -303- implementa la intra-prediccion, en la cual el determinado bloque a codificar se predice mediante un predictor calculado a partir de los pixeles de la proximidad de dicho bloque a codificar. Una indicacion del intra-predictor seleccionado y de la diferencia entre el determinado bloque y su predictor es codificada si se selecciona la intra-codificacion.
La prediccion temporal se implementa mediante los modulos -304- y -305-. En primer lugar, se selecciona una imagen de referencia entre un conjunto de imagenes de referencia -316-, y se selecciona una parte de la imagen de referencia, denominada tambien area de referencia, que es la zona mas proxima al determinado bloque a codificar, mediante el modulo -304- de estimacion del movimiento. La diferencia entre la zona de referencia seleccionada y el determinado bloque, denominada tambien bloque residual, es calculada por el modulo -305- de compensacion del movimiento. La zona de referencia seleccionada se indica mediante un vector de movimiento.
Si se selecciona la inter-prediccion, se codifica la informacion relativa al vector de movimiento y al bloque residual. Para reducir mas el coeficiente de bits, el vector de movimiento se codifica mediante la diferencia con respecto a un predictor del vector de movimiento. Un conjunto de predictores del vector de movimiento, denominado tambien predictores de informacion del movimiento, se obtiene a partir del campo -318- de vectores de movimiento mediante un modulo -317- de prediccion y codificacion de vectores de movimiento.
Ventajosamente, se genera 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, tal como se explica con mas detalle a continuacion con respecto a las figuras 5 y 6. Para un determinado bloque actual a codificar, se configura un numero predeterminado Nmax de predictores del vector de movimiento y, por consiguiente, el indice del predictor del vector de movimiento seleccionado, que es un elemento de informacion representativo del predictor del vector de movimiento seleccionado, puede ser codificado utilizando un numero de bits predeterminado. Este numero de bits predeterminado puede ser obtenido tambien por el descodificador incluso en caso de perdidas, por lo tanto, se asegura que el descodificador podra analizar sintacticamente el flujo de bits incluso en caso de errores o perdidas. Los predictores del vector de movimiento Nmax se seleccionan segun las diferentes realizaciones de manera que todos ellos sean diferentes entre si, con el fin de mejorar la eficiencia de la compresion.
La seleccion del numero predeterminado Nmax de predictores del vector de movimiento y del correspondiente numero de bits para codificar el indice del predictor del vector de movimiento puede ser aplicada, para toda la secuencia o bien para un grupo de imagenes de la secuencia, o a nivel del bloque dependiendo de parametros de codificacion tales como el tamano de bloque o el modo de codificacion. Por ejemplo, un primer numero predeterminado de predictores del vector de movimiento Nmax1 puede ser utilizado para los bloques codificados utilizando inter-prediccion para lo cual se codifica un bloque residual, y un segundo numero 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 ningun bloque residual. Los respectivos numeros de predictores del vector de movimiento Nmax1 y Nmax2 se pueden senalizar, por ejemplo, en el flujo de bits introduciendolos en una cabecera, tal como la cabecera del segmento, o en cualquier campo de metadatos apropiado.
El codificador -30- comprende ademas un modulo de seleccion del modo de codificacion -306-, que utiliza un criterio de coste de codificacion, tal como un criterio de distorsion de la tasa, para determinar cual es el mejor modo entre el modo de prediccion espacial y el modo de prediccion temporal. Se aplica una transformada -307- se aplica al bloque residual, los datos transformados obtenidos se cuantifican a continuacion mediante el modulo -308- y se codifican entropicamente mediante el modulo -309-. Finalmente, el bloque residual codificado del bloque actual a codificar es introducido en el flujo de bits -310-, junto con la informacion relativa al predictor utilizado. Para el caso de los bloques codificados en modo ‘SKIP’, solo se codifica una referencia al predictor en el flujo de bits, sin ningun bloque residual.
El codificador -30- lleva a cabo ademas la descodificacion de la imagen codificada con el fin de producir una imagen de referencia para la estimacion de movimiento de las imagenes siguientes. El modulo -311- lleva a cabo una cuantificacion inversa de los datos cuantificados, seguida de una transformada inversa -312-. El modulo -313- de prediccion de movimiento inversa utiliza la informacion de prediccion para determinar que predictor utilizar para un determinado bloque, y el modulo -314- de compensacion del movimiento inversa de hecho, suma el residuo obtenido por el modulo -312- al area de referencia obtenida a partir del conjunto de imagenes de referencia -316-. Opcionalmente, se aplica un filtro de desbloqueo -315- para eliminar los efectos del bloqueo y mejorar la calidad
5
10
15
20
25
30
35
40
45
50
55
60
65
visual de la imagen descodificada. El mismo filtro de desbloqueo se aplica en el descodificador, de manera que, si no hay perdidas de transmision, el codificador y el descodificador aplican el mismo proceso.
La figura 4 muestra un diagrama de bloques de un descodificador segun una realizacion de la invencion. El descodificador esta representado por modulos conectados, estando cada modulo adaptado para implementar, por ejemplo, en forma de instrucciones de programacion para ser ejecutadas por la CPU -1111- del dispositivo -1000-, una etapa correspondiente de un procedimiento que implementa una realizacion de la invencion.
El descodificador -40- recibe un flujo de bits -401- que comprende unidades de codificacion, estando cada unidad compuesta por una cabecera que contiene informacion sobre los parametros de codificacion 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 se codifican entropicamente, y los indices de los predictores del vector de movimiento se codifican, para un determinado bloque, en un numero de bits predeterminado. Los datos de video codificados recibidos son descodificados (-403-) entropicamente, descuantificados (-404-) y a continuacion 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 descodificar, el descodificador descodifica asimismo la informacion de la prediccion de movimiento a partir del flujo de bits, con el fin de encontrar la zona de referencia utilizada por el codificador.
El modulo -410- aplica la descodificacion del vector de movimiento para cada bloque actual codificado mediante la prediccion de movimiento, comprendiendo determinar el numero Nmax de predictores del vector de movimiento utilizados y obtener el indice del predictor del vector de movimiento codificado en un numero de bits que dependen de Nmax. De manera similar al modulo -317- de la figura 3, el modulo de descodificacion -410- del vector de movimiento genera un conjunto de Nmax predictores del vector de movimiento. Las realizaciones explicadas a continuacion con respecto a las figuras 5 y 6 se aplican de manera similar. Si el flujo de bits es recibido sin perdidas, el descodificador genera exactamente el mismo conjunto de predictores del vector de movimiento que el codificador. En caso de perdidas, 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 analisis sintactico del flujo de bits siempre es posible, incluso en caso de perdidas, dado que el numero de bits utilizados para codificar el indice de los predictores del vector de movimiento puede ser obtenido sistematicamente por el descodificador.
Una vez que se ha obtenido el indice del predictor del vector de movimiento para el bloque actual, si no se han producido perdidas, el valor real del vector de movimiento asociado con el bloque actual puede ser descodificado y utilizado para aplicar una compensacion del movimiento inverso (-406-). La zona de referencia indicada por el vector de movimiento descodificado es extraida de una imagen de referencia (-408-) para aplicar finalmente la compensacion del movimiento inverso -406-.
En caso de que se haya aplicada intra-prediccion, el modulo -405- aplica una intra-prediccion inversa.
Finalmente, se obtiene un bloque descodificado. Se aplica un filtro de desbloqueo -407-, de manera similar al filtro de desbloqueo -315- aplicado en el codificador. Una senal de video descodificada -409- es proporcionada finalmente por el descodificador -40-.
La figura 5 detalla la generacion del conjunto de predictores del vector de movimiento o candidatos a vector de movimiento en una primera realizacion de la presente invencion. Todas las etapas del algoritmo representadas en la figura 5 pueden ser implementadas en software y ejecutadas por la unidad central de proceso -1111- del dispositivo -1000-.
La figura 5 representa un diagrama de flujo aplicado para un determinado bloque actual a codificar, que tiene un vector de movimiento asociado que designa un area 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 se compone de N candidatos. En una realizacion, el conjunto inicial de predictores del vector de movimiento comprende los candidatos a vector de movimiento seleccionados segun el esquema de prediccion de vector de movimiento AMVP ya descrito haciendo 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 maximo de 5.
Preferentemente, el conjunto inicial de predictores del vector de movimiento L1 contiene solo vectores de movimiento diferentes entre si. Tomando el ejemplo de la figura 1, solo se deben mantener en L1 los vectores de movimiento -V0-, -V1- y el vector medio, y el numero de predictores del vector de movimiento es N = 3.
En una realizacion 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.
5
10
15
20
25
30
35
40
45
50
55
60
En otra realizacion alternativa mas, el conjunto inicial de predictores del vector de movimiento L1 esta vacio y N=0.
En la siguiente etapa -S502-, se obtiene el numero objetivo Nmax de predictores del vector de movimiento candidatos a utilizar. Nmax puede ser predeterminado para toda la secuencia de imagenes digitales a codificar, por ejemplo, Nmax=4, o puede ser seleccionado segun parametros de codificacion del bloque actual a codificar o de la unidad de codificacion (por ejemplo, el segmento) a la cual pertenece el bloque actual a codificar.
Por ejemplo, el numero Nmax puede depender del tamano de la transformada aplicada al macrobloque al que pertenece el bloque actual que se esta procesando: por ejemplo, Nmax=p para una transformada aplicada en un bloque de 2p+1x2p+1.
En una realizacion, el numero de bits k a utilizar para la codificacion del indice del predictor del vector de movimiento esta en relacion directa con Nmax: k=INTsup(log2(Nmax)), en que INTsup(x) es el numero entero que sigue inmediatamente al valor x. Preferentemente, Nmax debe ser una potencia de 2, Nmax=2k, para utilizar todos los indices que pueden ser codificados en k bits. Ventajosamente, todos los bits utilizados para la senalizacion se utilizan para poder designar una diversidad de predictores del vector de movimiento y para mejorar la compresion.
Alternativamente, es posible utilizar cualquier tipo de codificacion de los indices representativos de los predictores del vector de movimiento, despues de que el numero de predictores del vector de movimiento diferentes Nmax haya sido determinado. En particular, es posible utilizar cualquier tipo de codificacion entropica, tal como codificacion Huffman o la codificacion aritmetica. Asimismo, los indices se pueden codificar, tambien utilizando un codigo de tipo prefijo, tal como un codigo Rice-Golomb o un codigo unitario.
A continuacion, se verifica en la etapa -S503- si el numero N de predictores del vector de movimiento del conjunto L1 es mayor que Nmax.
En caso de respuesta positiva, la prueba -S503- se sigue por la etapa -S504- de seleccion de un candidato a predictor del vector de movimiento de L1, es seguida por la eliminacion 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 seleccion de la etapa -S504- es aplicada segun un criterio de eliminacion, 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 realizacion, 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 expresion <^^k<'^n)~\]^kx~^nx\+\^ky'^ny\! en la 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’’ estan a la misma distancia del vector V, mientras que d(V’, V’’) = 2.
Se puede aplicar alternativamente cualquier otro tipo de medicion para el calculo de las distancias puede ser aplicado alternativamente.
La distancia minima encontrada d(Vp, Vq) indica los dos vectores mas proximos -Vp-, -Vq-, de entre el conjunto L1, y por lo tanto, uno de estos dos vectores es seleccionado para su eliminacion. La seleccion de uno de estos dos vectores se puede basar en la distancia de cada uno de ellos a los vectores de prediccion 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 eliminacion.
El resultado es asegurar que la distancia entre los vectores restantes en el conjunto modificado L2 es la maxima, para permitir la utilizacion de predictores del vector de movimiento tan variados o diversos como sea posible.
Despues de la eliminacion del vector seleccionado, el valor de N se reduce (-S508-) y, a continuacion, N se compara con Nmax (-S510-). Si el valor de N no ha alcanzado todavia Nmax, (respuesta ‘no’ a la prueba -S510-) las etapas -S504- a -S510- se repiten. De lo contrario, si N ha alcanzado Nmax, la etapa -S510- esta seguida de la etapa -S522- que se describe a continuacion.
Si la respuesta a la prueba -S503- es ‘no’, entonces la prueba -S512- verifica si N es menor que Nmax. En caso de respuesta negativa, es decir, si N=Nmax, la prueba -S512- esta seguida por la etapa -S522- que se describe a continuacion.
5
10
15
20
25
30
35
40
45
50
55
60
Si la respuesta a la prueba -S512- es ‘si’, es decir si N es estrictamente menor que Nmax, entonces la prueba -S512- esta seguida por la etapa -S514- de obtencion o generacion de un candidato a predictor del vector de movimiento adicional. Ciertamente, empezando a partir del conjunto inicial de predictores del vector de movimiento L1, es posible anadir 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 anadidos como posibles predictores del vector de movimiento. Ademas, los 2 predictores entre -770-, -760-, -750- que no fueron seleccionados en -S500- se pueden anadir como posibles predictores del vector de movimiento.
Para cada potencial candidato a predictor del vector de movimiento MV, se verifica 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 diferencias. 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 diferencia ‘dif’ a sus coordenadas:MV’{MVx±off,MVy±off)' Habitualmente, la dif puede ser igual a 1 o 2.
Alternativamente, se pueden 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 compresion.
Por ejemplo, las componentes del vector de movimiento MV pueden ser modificadas de manera independiente, utilizando respectivamente dos valores difx y dify, y cualquiera de difx u dify pueden ser configurados como 0.
En una realizacion, tanto difx como dify son proporcionales a la componente correspondiente: difx=aMVx y dify=bMVy, siendo a y b habitualmente menores de 0,5. Si es necesario, las coordenadas MVx y MVy modificadas se redondean al valor entero mas proximo, para representar un desplazamiento en la malla de pixeles.
En una realizacion, un vector de movimiento complementario, de una norma predeterminada, es anadido al vector MV, teniendo el vector complementario la misma direccion que el vector de movimiento MV, tal como se representa en la figura 8: el vector complementario -850- se suma al vector -820-.
En otra realizacion alternativa mas, se calcula una varianza de los vectores de movimiento del conjunto L2:
var = J](MVX -MVxf +(MVy -MV~y)2
__ MV<=L2 __
donde MVx representa el valor medio 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 continuacion, se selecciona la diferencia dif 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 desactivacion es pequeno, por ejemplo, dif=1; si var es mayor que T, la desviacion es ajustada a un valor mayor, por ejemplo, dif=3. Ademas, en esta realizacion tambien se puede asimismo calcular un valor difx o dify diferenciado para cada componente.
Un predictor del vector de movimiento obtenido en la etapa -S514- es anadido al conjunto de predictores del vector de movimiento L2 en la etapa -S516-, y el numero N se incrementa en 1 (etapa -S518-).
A continuacion, se verifica en la etapa -S520- que 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 numero 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 seleccion de un predictor del vector de movimiento optimo para el bloque actual del conjunto L2. Por ejemplo, se aplica un criterio de optimizacion de distorsion de la tasa para seleccionar el predictor optimo del vector de movimiento MVi para codificar el vector de movimiento del bloque actual.
En el codificador, se codifica el residuo del movimiento, es decir, la diferencia entre el vector de movimiento del bloque actual y el predictor del vector de movimiento seleccionado, seleccionandose asimismo una indicacion del
5
10
15
20
25
30
35
40
45
50
55
60
65
predictor del vector de movimiento en la etapa -S524-. Por ejemplo, el indice i del predictor del vector de movimiento seleccionado MVi de L2 es codificado, utilizando k— INTsup(loggCNmax)) bjts.
Alternativamente, se puede aplicar una codificacion entropica del indice i.
En otra alternativa mas, el indice i puede ser codificado utilizando un codigo de tipo prefijo, como el codigo 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 determinado bloque, sin las etapas -S52-2 y -S524-.
En el descodificador, el indice i del predictor del vector de movimiento seleccionado MVi para el determinado bloque a descodificar se obtiene a partir del flujo de bits, conociendo Nmax y, por lo tanto, el numero de bits k en los que el indice i ha sido codificado. Las etapas -S500- a -S518- son implementadas de manera similar para obtener el conjunto de predictores del vector de movimiento L2, de manera que el indice i descodificado a partir del flujo de bits designa el predictor del vector de movimiento utilizado de hecho por el codificador.
En caso de perdidas durante la transmision, dado que el numero Nmax puede ser obtenido de manera sistematica por el descodificador, el flujo de bits recibido puede ser analizado sintacticamente de manera sistematica para extraer el indice i que designa el predictor del vector de movimiento seleccionado, incluso si, dependiendo de los paquetes perdidos, no se puede obtener en el descodificador el conjunto completo de predictores del vector de movimiento L2.
La figura 6 detalla la generacion del conjunto de predictores del vector de movimiento o de candidatos a vector de movimiento en una segunda realizacion de la presente invencion. Todas las etapas del algoritmo representadas en la figura 6 pueden ser implementadas en software y ejecutadas por la unidad central de proceso -1111- del dispositivo -1000-.
La figura 6 representa un diagrama de flujo aplicado a un bloque actual dado a codificar, que tiene un vector de movimiento asociado que designa un area de referencia en una imagen de referencia.
En primer lugar, de manera similar a la etapa -S502- de la figura 5, el numero objetivo Nmax de candidatos a predictor del vector de movimiento a utilizar se determina en la etapa -S600-.
En una realizacion, Nmax es de la forma 2k, de manera que cada valor de indice 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 requieren 3 bits para codificar el indice de un predictor del vector de movimiento. En este caso, preferentemente Nmax=23=8.
Un conjunto inicial de candidatos a predictor del vector de movimiento L1 se obtiene 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 reduccion en el conjunto inicial de predictores del vector de movimiento para eliminar duplicados, con el fin de obtener un conjunto reducido de predictores del vector de movimiento que contiene N1 elementos. Preferentemente, el numero de duplicados de cada vector que queda despues del proceso de reduccion es registrado y almacenado en una memoria para un uso posterior en la etapa -S612- que se describe a continuacion.
A continuacion, se verifica (prueba -S606-) si N1 es mayor o igual que Nmax, el numero objetivo de predictores del vector de movimiento. Se puede senalar 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 numero de vectores de movimiento mayor que Nmax. En caso de respuesta positiva, la etapa -S606- esta seguida por la etapa -S630- de seleccion 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 obtiene un segundo conjunto de candidatos a predictor del vector de movimiento L1’.
El segundo conjunto de predictores del vector de movimiento L1’ se compone de 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
5
10
15
20
25
30
35
40
45
50
55
60
como se representa en la figura 7. Ademas, los 2 predictores de entre -770-, -760-, -750- que no fueron seleccionados en -S600- se pueden anadir como posibles predictores del vector de movimiento. Cada predictor del vector de movimiento del conjunto L1 ’ tiene un indice correspondiente.
A continuacion, se aplica un proceso de reduccion al segundo conjunto de predictores del vector de movimiento en la etapa -S610-, para obtener un segundo conjunto reducido de predictores del vector de movimiento L1 ’’ de N2 vectores. El proceso de reduccion elimina los duplicados, de manera que todos los predictores del vector de movimiento de L1 ’’ son diferentes entre si. El numero 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 continuacion.
Se comprueba a continuacion en la etapa -S628- si el numero de predictores del vector de movimiento N2 es mayor o igual que Nmax. En caso de respuesta positiva, la etapa -S628- esta seguida por la etapa -S630- ya descrita.
En caso de respuesta negativa, es necesario anadir mas predictores del vector de movimiento al segundo conjunto reducido de predictores del vector de movimiento L1 ’’, para obtener el conjunto final de Nmax predictores del vector de movimiento.
A continuacion de la prueba -S628-, en caso de respuesta negativa, se asigna un valor de importancia a cada candidato a predictor del vector de movimiento restante del segundo conjunto reducido de predictores del vector de movimiento L1 ’’ en la etapa -S612-.
En una realizacion alternativa, la etapa -S612- sigue directamente a la prueba -S606-, en caso de respuesta negativa a la prueba -S606-.
El valor de importancia se calcula en esta realizacion como el numero de duplicados de un predictor del vector de movimiento dado, utilizando el numero 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, de manera que el vector -V0- tiene un valor de importancia igual a 2.
En una realizacion alternativa, el valor de importancia se puede calcular en funcion 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 continuacion, la importancia puede ser calculada como la inversa de la distancia de un vector dado del conjunto Vn al vector representativo: cuanto mas cerca este un vector Vn del vector representativo del conjunto, mayor es la importancia de Vn.
A continuacion, los restantes N2 candidatos a predictores del vector de movimiento son ordenados en la etapa -S614- segun un orden de valor de importancia decreciente. Si varios predictores del vector de movimiento tienen el mismo valor de importancia, pueden ser ordenados segun el orden creciente de sus indices.
Los predictores del vector de movimiento reordenados son reasignados segun indices 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 numero actual de predictores del vector de movimiento en el conjunto reordenado.
A continuacion, en la etapa -S618- que sigue a la etapa -S616-, los candidatos virtuales de predictor del vector de movimiento son anadidos al conjunto reordenado. En esta realizacion, los predictores del vector de movimiento son calculados a partir de los predictores del vector de movimiento restantes, ordenados segun su importancia. Se considera el predictor del vector de movimiento de indice 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, anadiendo sucesivamente +dif y -dif a una de las dos coordenadas de Vn:
{(Vnx+°ff, Vny), (Vnx-off, Vny), (Vnx+off, Vny +off), (Vnx+off, Vny-off), (Vnx-off, Vny +off), (Vnx-off, Vny-off),
(Vnx> Vny +off), (Vnx, Vny-off)}.
Se puede utilizar cualquier calculo 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 anadida al conjunto actual de predictores del vector de movimiento.
Los duplicados son eliminados en la etapa -S620-.
5
10
15
20
25
30
35
40
45
50
El valor N es actualizado en la etapa -S622- respecto al numero restante de predictores del vector de movimiento despues de la eliminacion de potenciales duplicados.
A continuacion, se verifica si N es mayor o igual que Nmax en la etapa -S624-. En caso de respuesta negativa, la etapa -S624- esta seguida por 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- esta seguida por la etapa -S630- de seleccion de los primeros Nmax candidatos a vector de movimiento para constituir el conjunto final de predictores del vector de movimiento L2 de N max vectores.
En el codificador, la etapa -S630- esta seguida por la etapa -S632-, analoga a la etapa -S522- de la figura 5, de seleccion de un predictor del vector de movimiento MVi optimo entre el conjunto de predictores del vector de movimiento para el bloque actual, segun un criterio predeterminado tal como un criterio de distorsion de la tasa.
La etapa -S632- esta seguida por la etapa -S634- de codificacion 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 indice i de los predictores del vector de movimiento MVi es codificado utilizando k bits, siendo k calculado a partir de Nmax, k=INTSUB(log2(Nmax)).
Alternativamente, se puede aplicar una codificacion entropica de indice i.
En otra alternativa mas, el indice i se puede codificar utilizando un codigo de tipo prefijo, tal como el codigo 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 determinado bloque, excepto las etapas -S632- y -S634-, que se omiten en el lado del descodificador.
En el descodificador, el indice i del predictor del vector de movimiento seleccionado MVi para el determinado bloque a descodificar se obtiene a partir del flujo de bits, conociendo Nmax y por lo tanto el numero de bits k en los que se ha codificado el indice i. Las etapas -S600- a -S630- son implementadas de manera similar para obtener el conjunto de predictores del vector de movimiento L2, de manera que el indice i descodificado a partir del flujo de bits designa el predictor del vector de movimiento utilizado realmente por el codificador.
En caso de perdidas durante la transmision, dado que el numero Nmax puede ser obtenido de manera sistematica por el descodificador, el flujo de bits recibido puede ser analizado sintacticamente para extraer el indice i que designa el predictor de vector de movimiento seleccionado, incluso si, dependiendo de la perdida de paquetes, el conjunto completo de predictores del vector de movimiento L2 no se puede obtener en el descodificador.
Las realizaciones descritas anteriormente se basan en particiones de bloque de imagenes de entrada, pero mas generalmente, se puede considerar cualquier tipo de partes de la imagen a codificar o descodificar, en particular, partes rectangulares o, de manera mas general, partes geometricas.
Se pueden considerar otras realizaciones alternativas, tales como por ejemplo empezar con un conjunto grande de candidatos a predictor del vector de movimiento, que comprende un numero de vectores N mayor que el numero objetivo de predictores del vector de movimiento determinados Nmax, y aplicar un algoritmo de tipo de agrupamiento para reducir el conjunto de vectores. Por ejemplo, se puede aplicar una particion de Voronoi para reducir el conjunto a los Nmax vectores mas representativos del conjunto segun una distancia predefinida entre los vectores del conjunto.

Claims (22)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Procedimiento para codificar una secuencia de imageries digitales en un flujo de bits, siendo, por lo menos, una parte de una imagen codificada por compensacion del movimiento con respecto a una parte de la imagen de referencia,
    en el que, para por lo menos una parte de la imagen a codificar, el procedimiento comprende las etapas de:
    - obtener un numero objetivo de predictores de informacion del movimiento a utilizar para dicha parte de imagen a codificar;
    - generar un conjunto de predictores de informacion del movimiento que tienen el numero objetivo de predictores de la informacion del movimiento obtenido; y
    - seleccionar un predictor de informacion del movimiento de entre el conjunto generado de predictores de informacion del movimiento para codificar la informacion del movimiento de dicha parte de la imagen a codificar,
    y en el que la etapa de generar comprende:
    - obtener un primer conjunto de predictores de informacion del movimiento, estando cada uno de ellos asociado con una parte de imagen que tiene una relacion espacial y/o temporal predeterminada con dicha parte de imagen que esta siendo codificada, teniendo dicho primer conjunto de predictores de informacion del movimiento un numero de predictores de informacion del movimiento no mayor que el numero objetivo,
    - modificar dicho primer conjunto de predictores de informacion del movimiento eliminando uno o varios predictores de informacion del movimiento duplicados para obtener un conjunto reducido de predictores de informacion del movimiento que contienen un primer numero de predictores de informacion del movimiento, siendo cada predictor de informacion del movimiento de dicho conjunto reducido diferente de cualquier otro predictor de informacion del movimiento de dicho conjunto reducido y
    - despues de obtener dicho conjunto reducido de predictores de informacion del movimiento, comparar dicho primer numero de predictores de informacion del movimiento con dicho numero objetivo obtenido, y
    - si dicho primer numero es menor que dicho numero objetivo,
    - obtener uno o varios predictores de informacion del movimiento adicionales, y
    - anadir dichos uno o varios predictores de informacion del movimiento adicionales a dicho conjunto reducido de predictores de informacion del movimiento,
    en el que los predictores de informacion del movimiento de dicho primer conjunto son predictores de informacion del movimiento reales, que tienen vectores de movimiento obtenidos a partir de partes de imagen de dicha imagen que esta siendo codificada o de una imagen de referencia, y caracterizado porque
    dichos uno o varios predictores de informacion del movimiento adicionales incluyen un predictor virtual de informacion del movimiento que no tiene un vector de movimiento obtenido a partir de una parte de imagen de dicha imagen que esta siendo codificado o de una imagen de referencia, y dicha adicion genera el conjunto de predictores de informacion del movimiento que tiene el numero objetivo de predictores de informacion del movimiento.
  2. 2. Procedimiento segun la reivindicacion 1, en el que los predictores de informacion del movimiento adicionales incluyen un predictor de informacion del movimiento real que tiene un vector de movimiento obtenido a partir de una parte de imagen de dicha imagen que esta siendo codificado o de una imagen de referencia.
  3. 3. Procedimiento segun la reivindicacion 1, en el que anadir dichos uno o varios predictores de informacion del movimiento adicionales a dicho conjunto reducido de predictores de informacion del movimiento para generar de este modo el conjunto de predictores de informacion del movimiento que tienen el numero objetivo obtenido de predictores de informacion del movimiento incluye: anadir primero uno o varios predictores de informacion del movimiento real, comprobar a continuacion si el numero (N2) de los predictores de informacion del movimiento despues de anadir dichos uno o varios predictores de informacion del movimiento reales adicionales es menor que dicho numero objetivo (Nmax) y, en caso afirmativo, anadir el predictor de informacion del movimiento virtual.
  4. 4. Procedimiento segun la reivindicacion 1 o 3, en el que el predictor de informacion del movimiento virtual se calcula a partir de un predictor de informacion del movimiento existente.
  5. 5. Procedimiento segun la reivindicacion 4, en el que se anade un vector complementario a un vector de movimiento de un predictor de informacion del movimiento existente, teniendo el vector complementario una direccion predeterminada con respecto a la direccion del vector de movimiento del predictor de informacion del movimiento existente.
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
  6. 6. Procedimiento segun la reivindicacion 5, en el que la magnitud del vector complementario depende de la magnitud del vector de movimiento del predictor de informacion del movimiento existente.
  7. 7. Procedimiento segun la reivindicacion 5 o 6, en el que el vector complementario tiene componentes (aMVx, bM-Vy) proporcionales a los respectivos componentes correspondientes del vector de movimiento del predictor de informacion del movimiento existente.
  8. 8. Procedimiento segun cualquiera de las reivindicaciones precedentes, que comprende ademas codificar un elemento de informacion representativo de dicho predictor de informacion del movimiento seleccionado.
  9. 9. Procedimiento segun se reivindica en cualquier reivindicacion precedente, que comprende ademas senalizar en dicho flujo de bits dicho numero objetivo.
  10. 10. Procedimiento de descodificacion de un flujo de bits que comprende una secuencia codificada de imagenes digitales, siendo, por lo menos, una parte de una imagen codificada por compensacion del movimiento con respecto a una imagen de referencia, en el que, para por lo menos una parte de la imagen a descodificar, el procedimiento comprende las etapas de:
    - obtener un numero objetivo de predictores de informacion del movimiento a utilizar para dicha parte de imagen a descodificar;
    - generar un conjunto de predictores de informacion del movimiento que tienen el numero objetivo de predictores de la informacion del movimiento obtenido; y
    - determinar un predictor de informacion del movimiento de entre el conjunto generado de predictores de informacion del movimiento, para descodificar la informacion del movimiento de dicha parte de la imagen a descodificar,
    y en el que la etapa de generar comprende:
    - obtener un primer conjunto de predictores de informacion del movimiento, asociados, cada uno, con una parte de imagen que tiene una relacion espacial y/o temporal predeterminada con dicha parte de imagen que esta siendo descodificada, teniendo dicho primer conjunto de predictores de informacion del movimiento un numero de predictores de informacion del movimiento no mayor que el numero objetivo,
    - modificar dicho primer conjunto de predictores de informacion del movimiento eliminando uno o varios predictores de informacion del movimiento duplicados para obtener un conjunto reducido de predictores de informacion del movimiento que contiene un primer numero de predictores de informacion del movimiento, siendo cada predictor de informacion del movimiento de dicho conjunto reducido diferente de cualquier otro predictor de informacion del movimiento de dicho conjunto reducido y
    - despues de obtener dicho conjunto reducido de predictores de informacion del movimiento, comparar dicho primer numero de predictores de informacion del movimiento con dicho numero objetivo obtenido, y
    - si dicho primer numero es menor que dicho numero objetivo,
    - obtener uno o varios predictores de informacion del movimiento adicionales, y
    - anadir dichos uno o varios predictores de informacion del movimiento adicionales a dicho conjunto reducido de predictores de informacion del movimiento,
    en el que los predictores de informacion del movimiento de dicho primer conjunto son predictores de informacion del movimiento reales, que tienen vectores de movimiento obtenidos a partir de partes de imagen de dicha imagen que esta siendo descodificada o de una imagen de referencia, y caracterizado por que
    los dichos uno o varios predictores de informacion del movimiento adicionales incluyen un predictor virtual de informacion del movimiento que no tiene un vector de movimiento obtenido de una parte de imagen de dicha imagen que esta siendo descodificada o de una imagen de referencia, y dicha adicion genera el conjunto de predictores de informacion del movimiento que tiene el numero objetivo de predictores de informacion del movimiento.
  11. 11. Procedimiento segun la reivindicacion 10, que comprende ademas descodificar un elemento de informacion representativo de un predictor de informacion del movimiento seleccionado para dicha parte de imagen a descodificar.
  12. 12. Procedimiento segun la reivindicacion 11, que comprende ademas determinar dicho predictor de informacion del movimiento seleccionado a partir de dicho conjunto generado de predictores de informacion del movimiento utilizando dicho elemento de informacion descodificado.
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
  13. 13. Procedimiento segun una cualquiera de las reivindicaciones 10 a 12, en el que los predictores de informacion del movimiento adicionales incluyen un predictor real de informacion del movimiento que tiene un vector de movimiento obtenido a partir de una parte de imagen de dicha imagen que esta siendo descodificada o de una imagen de referencia.
  14. 14. Procedimiento segun cualquiera de las reivindicaciones 10 a 12, en el que anadir dichos uno o varios predictores de informacion del movimiento adicionales a dicho conjunto reducido de predictores de informacion del movimiento para generar de este modo el conjunto de predictores de informacion del movimiento que tiene el numero objetivo de predictores de informacion del movimiento incluye, primero, anadir uno o varios predictores reales de informacion del movimiento adicionales, comprobar a continuacion si el numero (N2) de predictores de informacion del movimiento despues de anadir los dichos uno o varios predictores reales de informacion del movimiento es menor que dicho numero objetivo (Nmax) y, en caso afirmativo, anadir por lo menos dicho predictor virtual de informacion del movimiento.
  15. 15. Procedimiento segun la reivindicacion 10 o 14, en el que dicho predictor virtual de informacion del movimiento se calcula a partir de un predictor de informacion del movimiento existente.
  16. 16. Procedimiento segun la reivindicacion 15, en el que se anade un vector complementario a un vector de movimiento de un predictor de informacion del movimiento existente, teniendo el vector complementario una direccion predeterminada en relacion con la direccion del vector de movimiento del predictor de informacion del movimiento existente.
  17. 17. Procedimiento segun la reivindicacion 16, en el que la magnitud del vector complementario depende de la magnitud del vector de movimiento del predictor de informacion del movimiento existente.
  18. 18. Procedimiento segun la reivindicacion 16 o 17, en el que el vector complementario tiene componentes (aMVx, bM-Vy) proporcionales a los respectivos componentes correspondientes del vector de movimiento del predictor de informacion del movimiento existente.
  19. 19. Procedimiento segun una cualquiera de las reivindicaciones 10 a 18, que comprende ademas obtener dicho numero objetivo de dicho flujo de bits.
  20. 20. Dispositivo para codificar una secuencia de imagenes digitales en un flujo de bits, siendo, por lo menos, una parte de la imagen que esta siendo codificado, codificada por compensacion del movimiento con respecto a una parte de la imagen de referencia,
    comprendiendo el dispositivo:
    un medio para obtener un numero objetivo de predictores de informacion del movimiento a utilizar para una parte de una imagen a codificar;
    un medio para generar un conjunto de predictores de informacion del movimiento que tienen el numero objetivo obtenido de predictores de informacion del movimiento; y
    un medio para seleccionar un predictor de informacion del movimiento de entre el conjunto generado de predictores de informacion del movimiento, para codificar la informacion del movimiento de dicha parte de la imagen a codificar
    y en el que el medio para generar comprende:
    un medio para obtener un primer conjunto de predictores de informacion del movimiento cada uno de los cuales esta asociado con una parte de la imagen que tiene una relacion espacial y/o temporal predeterminada con dicha parte de la imagen que esta siendo codificado, teniendo dicho primer conjunto de predictores de informacion del movimiento un numero de predictores de informacion del movimiento no mayor que el numero objetivo,
    un medio para modificar dicho primer conjunto de predictores de informacion del movimiento eliminando uno o varios predictores de informacion del movimiento duplicados para obtener un conjunto reducido de predictores de informacion del movimiento que contiene un primer numero de predictores de informacion del movimiento, siendo cada predictor de informacion del movimiento de dicho conjunto reducido diferente de cualquier otro predictor de informacion del movimiento de dicho conjunto reducido, y que tiene
    un medio que puede funcionar para, despues de obtener dicho conjunto reducido de predictores de informacion del movimiento, comparar dicho primer numero de predictores de informacion del movimiento con dicho numero objetivo obtenido, y operable ademas para
    - si dicho primer numero es menor que dicho numero objetivo,
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    - obtener uno o varios predictores de informacion del movimiento adicionales, y
    - anadir dichos uno o varios predictores de informacion del movimiento adicionales a dicho conjunto reducido de predictores de informacion del movimiento, para generar de ese modo el conjunto de predictores de informacion del movimiento que tiene el numero objetivo obtenido de predictores de informacion del movimiento,
    en el que los predictores de informacion del movimiento de dicho primer conjunto son predictores reales de informacion del movimiento, que tiene vectores de movimiento obtenidos a partir de partes de imagen de dicha imagen que esta siendo codificado o de una imagen de referencia, y caracterizado por que
    dichos uno o varios predictores de informacion del movimiento adicionales incluyen un predictor virtual de informacion del movimiento que no tiene un vector de movimiento obtenido a partir de una parte de imagen de dicha imagen que esta siendo codificado o una imagen de referencia, y dicha adicion genera el conjunto de predictores de informacion del movimiento que tienen el numero objetivo obtenido de predictores de informacion del movimiento.
  21. 21. Dispositivo para descodificar un flujo de bits, que comprende una secuencia codificada de imagenes digitales, siendo, por lo menos, una parte de una imagen codificada por compensacion del movimiento con respecto a una imagen de referencia, comprendiendo el dispositivo:
    un medio para obtener un numero objetivo de predictores de informacion del movimiento a utilizar para una parte de una imagen a descodificar;
    un medio para generar un conjunto de predictores de informacion del movimiento que tienen el numero objetivo obtenido de predictores de informacion del movimiento; y
    un medio para determinar un predictor de informacion del movimiento de entre el conjunto generado de predictores de informacion del movimiento, para descodificar la informacion del movimiento de dicha parte de la imagen a descodificar,
    y en el que el medio para generar comprende:
    un medio para obtener un primer conjunto de predictores de informacion del movimiento estando asociados, cada uno con una parte de la imagen que tiene una relacion espacial y/o temporal predeterminada con dicha parte de la imagen que esta siendo descodificada, teniendo dicho primer conjunto de predictores de informacion del movimiento un numero de predictores de informacion del movimiento no mayor que el numero objetivo,
    un medio para modificar dicho primer conjunto de predictores de informacion del movimiento eliminando uno o varios predictores de informacion del movimiento duplicados para obtener un conjunto reducido de predictores de informacion del movimiento que contiene un primer numero de predictores de informacion del movimiento, siendo cada predictor de informacion del movimiento de dicho conjunto reducido diferente de cualquier otro predictor de informacion del movimiento de dicho conjunto reducido, y que tiene
    un medio operable, despues de obtener dicho conjunto reducido de predictores de informacion del movimiento, para comparar dicho primer numero de predictores de informacion del movimiento con dicho numero objetivo obtenido, y operable ademas para
    - si dicho primer numero es menor que dicho numero objetivo,
    - obtener uno o varios predictores de informacion del movimiento adicionales, y
    - anadir dichos uno o varios predictores de informacion del movimiento adicionales a dicho conjunto reducido de predictores de informacion del movimiento, para generar de este modo el conjunto de predictores de informacion del movimiento que tiene el numero objetivo obtenido de predictores de informacion del movimiento,
    en el que los predictores de informacion del movimiento de dicho primer conjunto son predictores reales de informacion del movimiento, que tienen vectores de movimiento obtenidos a partir de partes de imagen de dicha imagen que esta siendo descodificada o de una imagen de referencia, y caracterizado por que dichos uno o varios predictores de informacion del movimiento adicionales incluyen un predictor virtual de informacion del movimiento que no tiene un vector de movimiento obtenido a partir de una parte de imagen de dicha imagen que esta siendo descodificada o de una imagen de referencia, y dicha adicion genera el conjunto de predictores de informacion del movimiento que tienen el numero objetivo obtenido de predictores de informacion del movimiento.
  22. 22. Programa informatico que, cuando es ejecutado en un ordenador, hace que el ordenador lleve a cabo un procedimiento para codificar una senal digital de video segun cualquiera de las reivindicaciones 1 a 9, o un procedimiento de descodificacion de un flujo de bits, segun cualquiera de las reivindicaciones 10 a 19.
    5 23. Medio de almacenamiento legible por ordenador que almacena un programa segun la reivindicacion 22.
ES12700129.5T 2011-01-12 2012-01-11 Codificación y descodificación de video con resiliencia mejorada frente a errores Active ES2615828T3 (es)

Applications Claiming Priority (3)

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
GB201100462 2011-01-12
PCT/EP2012/050391 WO2012095466A1 (en) 2011-01-12 2012-01-11 Video encoding and decoding with improved error resilience

Publications (1)

Publication Number Publication Date
ES2615828T3 true ES2615828T3 (es) 2017-06-08

Family

ID=43664110

Family Applications (7)

Application Number Title Priority Date Filing Date
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
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
ES12700129.5T Active ES2615828T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de video con resiliencia mejorada frente a errores
ES17165564T Active ES2753760T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de vídeo 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
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 Before (2)

Application Number Title Priority Date Filing Date
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
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

Family Applications After (4)

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
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
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

Country Status (13)

Country Link
US (14) US11146792B2 (es)
EP (10) EP3550841B1 (es)
JP (12) JP5847844B2 (es)
KR (15) KR101944289B1 (es)
CN (17) CN107105272A (es)
BR (2) BR122019026393B1 (es)
ES (7) ES2786998T3 (es)
GB (3) GB2487200A (es)
HU (5) HUE046362T2 (es)
PL (5) PL3550841T3 (es)
RU (6) RU2556386C2 (es)
TR (1) TR201907405T4 (es)
WO (4) WO2012095464A1 (es)

Families Citing this family (32)

* 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中基于残差能量的错误隐藏方法
US9787987B2 (en) 2015-04-27 2017-10-10 Harmonic, Inc. Adaptive pre-filtering based on video complexity and output bit rate
US9955160B1 (en) * 2015-04-27 2018-04-24 Harmonic, Inc. Video encoding using adaptive pre-filtering
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 キヤノン株式会社 追尾制御装置および追尾制御方法、撮像装置
CN107046645B9 (zh) 2016-02-06 2020-08-14 华为技术有限公司 图像编解码方法及装置
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 华为技术有限公司 一种运动信息的编解码方法和装置
SG11202001307SA (en) * 2017-10-06 2020-03-30 Nestle Sa Container, preparation machine and system using a binary code for encoding preparation information
KR102486879B1 (ko) 2018-04-12 2023-01-11 삼성디스플레이 주식회사 디스플레이 장치 및 그 제조방법
CN111656786B (zh) 2018-08-28 2024-04-09 华为技术有限公司 候选运动信息列表的构建方法、帧间预测方法及装置
CN110868601B (zh) 2018-08-28 2024-03-15 华为技术有限公司 帧间预测方法、装置以及视频编码器和视频解码器
WO2020084476A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block based prediction
CN111083492B (zh) 2018-10-22 2024-01-12 北京字节跳动网络技术有限公司 双向光流中的梯度计算
CN111436230B (zh) 2018-11-12 2024-10-11 北京字节跳动网络技术有限公司 仿射预测的带宽控制方法
CN113170093B (zh) 2018-11-20 2023-05-02 北京字节跳动网络技术有限公司 视频处理中的细化帧间预测
JP7241870B2 (ja) 2018-11-20 2023-03-17 北京字節跳動網絡技術有限公司 部分的な位置に基づく差分計算
JP7433038B2 (ja) 2018-12-19 2024-02-19 キヤノンメディカルシステムズ株式会社 医用情報匿名化システム、及び匿名化方法設定装置
JP2022521554A (ja) 2019-03-06 2022-04-08 北京字節跳動網絡技術有限公司 変換された片予測候補の利用
KR102184913B1 (ko) * 2019-03-12 2020-12-01 한양대학교 산학협력단 원형의 직교 진폭 변조 신호 성상도를 생성하는 방법 및 장치
BR112021023392A2 (pt) * 2019-06-21 2022-04-19 Samsung Electronics Co Ltd Método, realizado por um aparelho de decodificação, para decodificação de informação de movimento, aparelho para decodificar informação de movimento, método realizado por um aparelho de codificação, de codificação de informação de movimento, e aparelho para codificar informação de movimento
EP3981157B1 (en) * 2019-07-11 2026-01-28 Huawei Technologies Co., Ltd. Motion field storage optimization for the line buffer
CN119174176A (zh) * 2022-04-08 2024-12-20 交互数字Ce专利控股有限公司 运动信息候选重新排序
EP4622265A4 (en) * 2022-11-18 2026-04-22 Samsung Electronics Co Ltd VIDEO CODING METHOD AND ASSOCIATED DEVICE

Family Cites Families (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1100462A (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 ソニー株式会社 画像符号化装置および画像符号化方法
ATE209423T1 (de) * 1997-03-14 2001-12-15 Cselt Centro Studi Lab Telecom Schaltung zur bewegungsschätzung in codierern für digitalisierte videosequenzen
US5978048A (en) * 1997-09-25 1999-11-02 Daewoo Electronics Co., Inc. Method and apparatus for encoding a motion vector based on the number of valid reference motion vectors
JPH11112985A (ja) 1997-09-29 1999-04-23 Sony Corp 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および、伝送媒体
JP3407287B2 (ja) 1997-12-22 2003-05-19 日本電気株式会社 符号化復号システム
CN1166215C (zh) 1998-02-13 2004-09-08 皇家菲利浦电子有限公司 视频编码方法和装置
JP3841132B2 (ja) 1998-06-01 2006-11-01 株式会社ソニー・コンピュータエンタテインメント 入力位置検出装置及びエンタテインメントシステム
KR20010032337A (ko) 1998-09-22 2001-04-16 마츠시타 덴끼 산교 가부시키가이샤 영상신호 부호화방법, 영상신호 부호화장치 및 프로그램기록매체
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
CN1897703A (zh) 2002-01-18 2007-01-17 株式会社东芝 视频编码方法和装置以及视频解码方法和装置
KR100492127B1 (ko) 2002-02-23 2005-06-01 삼성전자주식회사 적응형 움직임 추정장치 및 추정 방법
KR100474285B1 (ko) * 2002-04-08 2005-03-08 엘지전자 주식회사 모션벡터결정방법
CN101631247B (zh) 2002-04-18 2011-07-27 株式会社东芝 运动图像编码/解码方法和装置
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 ソニー株式会社 符号化装置及び方法
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
US7620106B2 (en) 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
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
CN1938727A (zh) 2004-02-27 2007-03-28 Td视觉有限公司 用于数字解码3d立体视频图像的方法和系统
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
EP1774780A1 (en) 2004-07-20 2007-04-18 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 哈尔滨工业大学 一种运动估计方法和应用该方法的运动估计电路
WO2006033227A1 (ja) * 2004-09-22 2006-03-30 Matsushita Electric Industrial Co., Ltd. 画像符号化装置
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
US8879635B2 (en) 2005-09-27 2014-11-04 Qualcomm Incorporated Methods and device for data alignment with time domain boundary
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 华为技术有限公司 帧内预测、编解码方法及装置
CN101682769B (zh) * 2007-04-12 2016-11-09 汤姆森特许公司 用于视频编码和解码的跳过-直接模式的取决于环境的合并的方法和装置
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的运动矢量预测流水并行设计方法
WO2009115901A2 (en) * 2008-03-19 2009-09-24 Nokia Corporation 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ドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
CN102187668B (zh) * 2008-10-14 2013-10-30 法国电信公司 编码图像或图像序列的方法和装置及其解码方法和装置
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
ES2629027T3 (es) * 2009-06-19 2017-08-07 Orange Codificación de vectores de movimiento por competición de predictores
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
WO2011095260A1 (en) 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) Managing 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
KR101889582B1 (ko) 2011-05-31 2018-08-20 선 페이턴트 트러스트 동화상 부호화 방법, 동화상 부호화 장치, 동화상 복호화 방법, 동화상 복호화 장치, 및, 동화상 부호화 복호화 장치

Also Published As

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

Similar Documents

Publication Publication Date Title
ES2615828T3 (es) Codificación y descodificación de video con resiliencia mejorada frente a errores
ES2599848T3 (es) Codificación y descodificación de video
ES2727629T3 (es) Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
US11570447B2 (en) Video coding and video decoding
ES2946901T3 (es) Método y dispositivo de predicción de imágenes
BR112020014654A2 (pt) compensação de movimento afim em codificação de vídeo
ES2621545T3 (es) Soporte de registro que memoriza un flujo de datos de imágenes codificadas
KR20170125086A (ko) 화상 예측 방법 및 관련 장치
BR112012015001B1 (pt) Método em um decodificador de vídeo para decodificar informação, disposição em um decodificador de vídeo, meio não transitório legível por computador para controlar um decodificador de vídeo, método em um codificador de vídeo para codificar informação, disposição em um codificador de vídeo, e, meio não transitório legível por computador para controlar um codificador de vídeo
ES3049652T3 (en) Decoding method and device
ES2614357T3 (es) Procedimiento de codificación predictiva de vídeo, dispositivo de codificación predictiva de vídeo, programa de codificación predictiva de vídeo, procedimiento de descodificación predictiva de vídeo, dispositivo de descodificación predictiva de vídeo y programa de descodificación predictiva de vídeo
CN113422951B (zh) 一种解码、编码方法、装置及其设备
BR112015020340B1 (pt) Processo e dispositivo de decodificação de uma imagem corrente, suporte de gravação legível por computador e processo e dispositivo de codificação de uma imagem corrente
BR122019026396B1 (pt) Codificação e decodificação de vídeo com resiliência de erro aprimorada
BR122019026395B1 (pt) Codificação e decodificação de vídeo com resiliência de erro aprimorada
BR122020002128B1 (pt) Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador
BR122020002130B1 (pt) Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador
BR122020002129B1 (pt) Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador