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

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

Info

Publication number
ES2583407T3
ES2583407T3 ES12700128.7T ES12700128T ES2583407T3 ES 2583407 T3 ES2583407 T3 ES 2583407T3 ES 12700128 T ES12700128 T ES 12700128T ES 2583407 T3 ES2583407 T3 ES 2583407T3
Authority
ES
Spain
Prior art keywords
predictors
movement information
image
motion
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
ES12700128.7T
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 ES2583407T3 publication Critical patent/ES2583407T3/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/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
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

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

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Codificacion y descodificacion de video con una mejora de la diversidad de los vectores de movimiento Sector de la invencion
La invencion se refiere a un procedimiento y dispositivo para la codificacion de una secuencia de imagenes digitales y, a un procedimiento y, un dispositivo para la descodificacion de la correspondiente secuencia de bits.
La invencion pertenece al sector del procesamiento de senales digitales y, en particular, al sector de la compresion de video mediante la utilizacion de compensacion del movimiento para reducir las duplicidades 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 discontinua del coseno (DCT, Discrete Cosine Transform) basada en bloques y la compensacion del movimiento para eliminar duplicidades espaciales y temporales. Pueden ser indicados como formatos predictivos de video. Cada fotograma o imagen de la senal de video esta dividida en fragmentos que estan codificados y pueden ser descodificados de manera independiente. Un fragmento es habitualmente una porcion rectangular del fotograma o, de manera mas general, una porcion de un fotograma o un fotograma entero. Ademas, cada fragmento 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 indicado como fotogramas-P, o predictibles a partir de dos fotogramas de referencia indicados como fotogramas-B), y fotogramas predictibles no temporales (indicados como Intra fotogramas o fotogramas-I).
La prediccion temporal consiste en encontrar en un fotograma de referencia, bien un fotograma anterior o un fotograma futuro de la secuencia de video, una porcion de imagen o una zona de referencia mas cercana al bloque a codificar. Esta etapa es conocida como estimacion de movimiento. A continuacion, la diferencia entre el bloque a codificar y la porcion 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 para ser utilizada 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 por la diferencia con respecto a un predictor del vector de movimiento, calculado habitualmente a partir de vectores de movimiento de los bloques que rodean al bloque a codificar.
En H.264, los vectores de movimiento son codificados con respecto a un predictor medio calculado a partir de vectores de movimiento situados en una proximidad casual del bloque a codificar, por ejemplo, de los bloques situados encima y a la izquierda del bloque a codificar. Solo la diferencia, indicada asimismo como vector de movimiento residual, entre el predictor medio y el vector residual de movimiento del bloque actual, es codificada.
La codificacion mediante la utilizacion de vectores de movimiento residuales ahorra coeficiente de bits o “bitrates” (numero de bits por unidad de tiempo), pero necesita que el decodificador 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, indicado como competicion de vectores de movimiento, consiste en la determinacion entre varios predictores del vector de movimiento o candidatos de que predictor del vector de movimiento minimiza el coste de la codificacion, habitualmente un coste de distorsion de la velocidad, 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 llamados predictores espaciales del vector de movimiento Vi, V2 y V3 adoptados de los bloques situados en la proximidad del bloque a codificar, un predictor medio del vector de movimiento calculado en base a los componentes de los tres predictores espaciales del vector de movimiento V1, V2 y V3, y un predictor temporal del vector de movimiento V0 que es el vector de movimiento del bloque situado junto a una imagen anterior de la secuencia (por ejemplo, el bloque de la imagen N-1 situado en la misma posicion espacial como bloque ‘en proceso de codificacion’ de la imagen N). Actualmente en HEVC los 3 predictores espaciales del vector de movimiento son adoptados del bloque situado a la izquierda del bloque a codificar (V3), del bloque situado
5
10
15
20
25
30
35
40
45
50
55
60
65
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 predictor del vector de movimiento se denomina Predictor avanzado del vector de movimiento (AMVP, Advanced Motion Vector Prediction). En el ejemplo de la figura 1, se selecciona el vector Vi del bloque situado arriba a la izquierda.
Finalmente, se recupera un conjunto de 5 candidatos a predictor del vector de movimiento que mezclan predictores espaciales y predictores temporales. Con el fin de reducir el sobrecoste de senalizar el predictor del vector de movimiento en la secuencia de bits, el conjunto de predictores del vector de movimiento se reduce eliminando los vectores de movimiento duplicados, es decir, los vectores de movimiento que tienen el mismo valor. Por ejemplo, en la ilustracion de la figura 1, Vi y V2 son iguales, y V0 y V3 son tambien iguales, de manera que solo dos de ellos deben ser mantenidos como candidatos a predictor del vector de movimiento, por ejemplo, V0 y V1. En este caso, solo es necesario un bit para indicar el 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 ganancias en el sobrecoste 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 puede ser reducido a 1, por ejemplo, si todos los predictores del vector de movimiento son iguales, y, por lo tanto, no es necesario introducir ninguna informacion relativa al predictor del vector de movimiento seleccionado en la secuencia de bits.
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 bloque a codificar dado, la reduccion del numero de candidatos a predictor del vector de movimiento se basa en los valores adoptados por los predictores del vector de movimiento del conjunto, en particular, los valores de los vectores de movimiento de los bloques de la proximidad del vector de movimiento del bloque situado junto al mismo. Asimismo, el descodificador necesita poder aplicar el mismo 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 ‘en proceso de codificacion’, es reducido por el codificador a V0 y V1, de manera que el indice es codificado en un unico bit. Si el bloque ‘situado junto a’ la imagen N-1 se pierde durante la transmision, el descodificador no puede recuperar el valor de V0 y, por lo tanto, no puede averiguar que V0 y V3 son iguales. Por lo tanto, el descodificador no puede encontrar cuantos bits se utilizan para la descodificacion del indice del predictor del vector de movimiento para el bloque ‘en proceso de codificacion’ y, en consecuencia, el descodificador no puede analizar sintacticamente de manera correcta los datos del fragmento, 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 la secuencia 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 la secuencia de bits de manera correcta en el descodificador. En caso de perdidas de paquetes, cuando se pierden algunos valores residuales del vector del movimiento, resulta 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 la secuencia de bits de manera correcta. Tal error se puede propagar, originando la desincronizacion del descodificador hasta que la imagen de sincronizacion siguiente, codificada sin prediccion, es recibida por el descodificador.
Seria deseable, al menos, poder analizar sintacticamente la secuencia de bits codificada en un descodificador incluso en caso de perdidas de paquetes, de manera que sea posible aplicar posteriormente una cierta desincronizacion o cancelacion de error.
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 en la Codificacion de videos (JTC-VC) de Guangzhou, 7-15 de octubre de 2010, utilizar solamente los predictores del vector de movimiento espaciales procedentes del mismo fragmento en el conjunto de predictores. Esta solucion resuelve el problema del analisis sintactico en el descodificador en caso de perdidas de fragmentos. 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.
5
10
15
20
25
30
35
40
45
50
55
60
65
CARACTERISTICAS DE LA INVENCION
Resulta deseable solucionar uno o varios de los inconvenientes de la tecnica anterior.
Segun un aspecto de la presente invencion, esta previsto un procedimiento de codificacion de una secuencia de imagenes digitales en una secuencia de bits, estando, al menos, una porcion de la imagen codificada mediante compensacion del movimiento con respecto a una porcion de la imagen de referencia, comprendiendo el procedimiento: recuperar una porcion de imagen para codificar un conjunto inicial de predictores de informacion del movimiento; probar si el numero (N; N1) de predictores de informacion del movimiento en dicho conjunto inicial es menor que un numero objetivo y, si es asi, anadir uno o varios predictores de informacion del movimiento a dicho conjunto inicial para generar un conjunto de predictores de informacion del movimiento; y seleccionar un predictor de informacion del movimiento para dicha porcion de la imagen a codificar del conjunto generado de predictores de informacion del movimiento, en el que los predictores de informacion del movimiento de dicho conjunto inicial son predictores reales de informacion del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen codificada o de una imagen de referencia, y los potenciales predictores de informacion del movimiento a anadir, incluyen uno o varios de tales predictores reales de informacion del movimiento adicionales e incluyen asimismo uno o varios predictores virtuales de informacion del movimiento que no tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificacion o de una imagen de referencia.
Segun otro aspecto de la presente invencion, esta previsto un procedimiento de descodificacion de una secuencia de bits, que comprende una secuencia codificada de imagenes digitales, estando, al menos, una porcion de la imagen codificada mediante compensacion del movimiento con respecto a una imagen de referencia, comprendiendo el procedimiento: recuperar, para una porcion de imagen a descodificar, un conjunto inicial de predictores de informacion del movimiento; probar si el numero de predictores de informacion del movimiento de dicho conjunto inicial es menor que un numero objetivo y, si es asi, anadir uno o varios predictores de informacion del movimiento a dicho conjunto inicial para generar un conjunto de predictores de informacion del movimiento; y determinar un predictor de informacion del movimiento para dicha porcion de imagen a descodificar utilizando el conjunto generado de predictores de informacion del movimiento, en el que los predictores de informacion del movimiento de dicho conjunto inicial son predictores reales de informacion del movimiento, que tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de descodificacion o de una imagen de referencia, y los potenciales predictores de informacion del movimiento a anadir incluyen uno o varios de tales predictores de informacion del movimiento adicionales, e incluyen asimismo uno o varios predictores virtuales de informacion del movimiento que no tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de descodificacion o de una imagen de referencia.
Segun otro aspecto de la presente invencion, esta previsto un dispositivo para la codificacion de una secuencia de imagenes digitales en una secuencia de bits, estando, al menos, una porcion de la imagen codificada mediante compensacion del movimiento con respecto a una porcion de la imagen de referencia, comprendiendo el dispositivo: medios para la obtencion, para una porcion de la imagen a codificar, de un conjunto inicial de predictores de informacion del movimiento; medios para probar si el numero de predictores de informacion del movimiento de dicho conjunto inicial es menor que un numero objetivo y, si es asi, anadir uno o varios predictores de informacion del movimiento a dicho conjunto inicial para generar un conjunto de predictores de informacion del movimiento; y medios para seleccionar un predictor de informacion del movimiento para dicha porcion de la imagen a codificar del conjunto generado de predictores de informacion del movimiento, en el que los predictores de informacion del movimiento de dicho conjunto inicial son predictores reales de informacion del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificacion o de una imagen de referencia, y los potenciales predictores de informacion del movimiento a anadir incluyen uno o varios de tales predictores reales de informacion del movimiento adicionales, e incluyen asimismo uno o varios predictores virtuales de informacion del movimiento que no tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificacion, o de una imagen de referencia.
Segun otro aspecto de la presente invencion, esta previsto un dispositivo para la descodificacion de una secuencia de bits que comprende una secuencia codificada de imagenes digitales, estando, al menos, una porcion de la imagen codificada mediante compensacion del movimiento con respecto a una imagen de referencia, comprendiendo el dispositivo: medios para recuperar, para una porcion de la imagen a codificar, un conjunto inicial de predictores de informacion del movimiento; medios para probar si el numero de predictores de informacion del movimiento de dicho conjunto inicial es menor que un numero objetivo y, si es asi, anadir uno o varios predictores de informacion del movimiento a dicho conjunto inicial para generar un conjunto de predictores de informacion del movimiento; y medios para determinar un predictor de informacion del movimiento para dicha porcion de imagen a descodificar utilizando el conjunto generado de predictores de informacion del movimiento, en el que los predictores de informacion del movimiento de dicho conjunto inicial son predictores reales de informacion del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de descodificacion o de una imagen de referencia, y los potenciales predictores de informacion del movimiento a anadir incluyen uno o varios de tales predictores reales de informacion del movimiento, e incluyen asimismo uno o varios
5
10
15
20
25
30
35
40
45
50
55
60
65
predictores virtuales de informacion del movimiento que no tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de descodificacion o de una imagen de referencia.
Segun otro aspecto de la presente invencion, esta previsto un programa informatico que, cuando es ejecutado en un ordenador, hace que el ordenador lleve a cabo el procedimiento para la codificacion de una senal de video digital, tal como se ha descrito anteriormente, o un procedimiento para la descodificacion de una secuencia de bits tal como se ha descrito anteriormente. El programa puede ser almacenado en medios de almacenamiento legible por ordenador.
Segun otro aspecto de la presente invencion, esta previsto un procedimiento de codificacion de una secuencia de imagenes digitales en una secuencia de bits, siendo, al menos, una porcion de la imagen codificada mediante compensacion del movimiento con respecto a una porcion de la imagen de referencia, comprendiendo el procedimiento: recuperar para una porcion de la imagen a codificar un conjunto inicial de predictores de informacion del movimiento; probar si el numero de predictores de informacion del movimiento de dicho conjunto inicial es menor que un numero objetivo y, si es asi, anadir uno o varios predictores de informacion del movimiento a dicho conjunto inicial para generar un conjunto de predictores de informacion del movimiento que tienen una diversidad controlada; y seleccionar un predictor de informacion del movimiento para dicha porcion de la imagen a codificar de dicho conjunto generado de predictores de informacion del movimiento.
En una realizacion, los predictores de informacion del movimiento de dicho conjunto inicial son predictores reales de informacion del movimiento, que tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificacion o de una imagen de referencia, y los predictores potenciales de informacion del movimiento a anadir incluyen uno o varios de tales otros predictores reales de informacion del movimiento e incluyen asimismo uno o varios predictores virtuales de informacion del movimiento que no tienen vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificacion o de una imagen de referencia.
En una realizacion el procedimiento comprende: probar si el numero de predictores de informacion del movimiento en dicho conjunto inicial es menor que dicho numero objetivo y, si es asi, en primer lugar, anadir uno o varios de dichos predictores reales de informacion del movimiento adicionales y, a continuacion, probar de nuevo si el numero de predictores de informacion del movimiento es menor que dicho numero objetivo y, si es asi, anadir uno o varios de dichos predictores virtuales de informacion del movimiento.
En una realizacion, al menos, uno de dichos predictores virtuales de informacion del movimiento se calcula a partir de un predictor existente de informacion del movimiento.
En una realizacion, se anade un vector suplementario a un vector de movimiento de un predictor existente de informacion del movimiento, teniendo el vector suplementario una direccion predeterminada con respecto a la direccion del vector de movimiento del predictor existente de informacion del movimiento.
En una realizacion, la magnitud del vector suplementario depende de la magnitud del vector de movimiento del predictor existente de informacion del movimiento.
En una realizacion, el vector suplementario tiene componentes proporcionales a los respectivos componentes correspondientes del vector de movimiento del predictor existente de informacion del movimiento.
En una realizacion, el procedimiento comprende ademas la codificacion de un elemento de informacion representativo de dicho predictor seleccionado de informacion del movimiento.
En una realizacion, el procedimiento comprende ademas la senalizacion en dicha secuencia de bits de dicho numero objetivo.
En una realizacion, el procedimiento comprende la eliminacion de duplicados de dicho conjunto inicial.
Segun otro aspecto de la presente invencion, esta previsto un procedimiento de descodificacion de una secuencia de bits que comprende una secuencia codificada de imagenes digitales, estando, al menos, una porcion de la imagen codificada mediante compensacion del movimiento con respecto a una imagen de referencia, comprendiendo el procedimiento: recuperar para una porcion de imagen a descodificar un conjunto inicial de predictores de informacion del movimiento; probar si el numero de predictores de informacion del movimiento en dicho conjunto inicial es menor que un numero objetivo y, si es asi, anadir uno o varios predictores de informacion del movimiento a dicho conjunto inicial para generar un conjunto de predictores de informacion del movimiento que tienen una diversidad controlada; y determinar un predictor de informacion del movimiento para dicha porcion de imagen a descodificar a partir del conjunto generado de predictores de informacion del movimiento.
En una realizacion, el procedimiento comprende ademas descodificar un elemento de informacion representativo de un predictor de informacion del movimiento seleccionado para dicha porcion de la imagen a codificar.
5
10
15
20
25
30
35
40
45
50
55
60
65
En una realizacion, el procedimiento comprende ademas recuperar dicho predictor de informacion del movimiento seleccionado de dicho conjunto generado de predictores de informacion del movimiento utilizando dicho elemento de informacion descodificado.
En una realizacion, los predictores de informacion del movimiento de dicho conjunto inicial son predictores reales de informacion del movimiento, que tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen descodificada o de una imagen de referencia, y los potenciales predictores de informacion del movimiento a anadir incluyen uno o varios de tales predictores reales de informacion del movimiento, e incluyen asimismo uno o varios predictores reales de informacion del movimiento que no tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de descodificacion, o de una imagen de referencia.
En una realizacion, el procedimiento comprende: probar si el numero de predictores de informacion del movimiento en dicho conjunto inicial es menor que dicho numero objetivo y, si es asi, en primer lugar, anadir uno o varios de dichos predictores reales de informacion del movimiento adicionales y, a continuacion, probar de nuevo si el numero de predictores de informacion del movimiento tras la adicion de los otros predictores de informacion del movimiento actuales es menor que dicho numero objetivo y, si es asi, anadir uno o varios de dichos predictores virtuales de informacion del movimiento.
En una realizacion, al menos, uno de dichos predictores virtuales de informacion del movimiento se calcula a partir de un predictor existente de informacion del movimiento.
En una realizacion, un vector suplementario es anadido a un vector de movimiento de un predictor existente de informacion del movimiento, teniendo el vector suplementario una direccion predeterminada con respecto a la direccion del vector de movimiento del predictor existente de informacion del movimiento.
En una realizacion, la magnitud del vector suplementario depende de la magnitud del vector de movimiento del predictor existente de informacion del movimiento,
En una realizacion, el vector suplementario tiene componentes proporcionales a los respectivos componentes correspondientes del vector de movimiento del predictor existente de informacion del movimiento.
En una realizacion, el procedimiento comprende ademas recuperar dicho numero objetivo a partir de dicha secuencia de bits.
En una realizacion, el procedimiento comprende eliminar duplicados de dicho conjunto inicial.
Otros aspectos de la invencion proporcionan el dispositivo correspondiente para la codificacion, el correspondiente dispositivo para la descodificacion y los correspondientes programas informaticos y medios de almacenamiento legibles por ordenador.
Segun otro aspecto de la presente invencion, esta previsto un procedimiento para codificar una secuencia de imagenes digitales en una secuencia de bits, estando, al menos, una porcion de la imagen codificada por compensacion del movimiento con respecto a una porcion de la imagen de referencia, comprendiendo el procedimiento: recuperar un primer conjunto de predictores de informacion del movimiento para una porcion de la imagen a codificar; realizar una primera prueba de si el numero de predictores de informacion del movimiento en dicho primer conjunto es menor que un numero objetivo y, si es asi, efectuar un primer proceso de adicion que consiste en anadir uno o varios predictores de informacion del movimiento a dicho primer conjunto para recuperar un segundo conjunto de predictores de informacion del movimiento; efectuar una segunda prueba de si el numero de predictores de informacion del movimiento en dicho segundo conjunto es menor que dicho numero objetivo y, si es asi, efectuar un segundo proceso de adicion que consiste en anadir uno o varios predictores de informacion del movimiento a dicho segundo conjunto, para generar un conjunto de predictores de informacion del movimiento que tienen una diversidad controlada; y seleccionar un predictor de informacion del movimiento para dicha porcion de la imagen a codificar del conjunto generado de predictores de informacion del movimiento.
En una realizacion, 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 porciones de imagen de dicha imagen en proceso de codificacion o de una imagen de referencia, y dicho primer proceso de adicion anade uno o varios predictores de informacion del movimiento que no tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de codificacion o de una imagen de referencia.
En una realizacion, al menos, uno de dichos predictores virtuales de informacion del movimiento es calculado a partir de un predictor existente de informacion del movimiento.
En una realizacion, un vector suplementario es anadido a un vector de movimiento de un predictor existente de informacion del movimiento, teniendo el vector suplementario una direccion predeterminada con respecto a la direccion del vector de movimiento del predictor existente de informacion del movimiento.
5
10
15
20
25
30
35
40
45
50
55
60
En una realizacion, la magnitud del vector suplementario depende de la magnitud del vector de movimiento del predictor existente de informacion del movimiento.
En una realizacion, el vector suplementario tiene componentes proporcionales a los respectivos componentes correspondientes del vector de movimiento del predictor existente de informacion del movimiento.
En una realizacion, el procedimiento comprende ademas codificar un elemento de informacion representativo de dicho predictor de informacion del movimiento seleccionado.
En una realizacion, el procedimiento comprende ademas senalizar en dicha secuencia de bits dicho numero objetivo.
En una realizacion, el procedimiento comprende eliminar duplicados de dicho primer conjunto.
Segun otro aspecto de la presente invencion, esta previsto un procedimiento de descodificacion de una secuencia de bits que comprende una secuencia codificada de imagenes digitales, estando, al menos, una porcion de la imagen codificada por compensacion del movimiento con respecto a una imagen de referencia, comprendiendo el procedimiento: recuperar un primer conjunto de predictores de informacion del movimiento para una porcion de la imagen a codificar; efectuar una primera prueba de si el numero de predictores de informacion del movimiento de dicho primer conjunto es menor que un numero objetivo y, si es asi, efectuar un primer proceso de adicion que consiste en anadir uno o varios predictores de informacion del movimiento a dicho primer conjunto para recuperar un segundo conjunto de predictores de informacion del movimiento; realizar una segunda prueba de si el numero de predictores de informacion del movimiento de dicho segundo conjunto es menor que dicho numero objetivo y, si es asi, efectuar un segundo proceso de adicion que consiste en anadir uno o varios predictores de informacion del movimiento a dicho segundo conjunto, para generar un conjunto de predictores de informacion del movimiento que tienen una diversidad controlada; y determinar un predictor de informacion del movimiento para dicha porcion de la imagen a codificar de dicho conjunto de predictores de informacion del movimiento.
En una realizacion, el procedimiento comprende ademas descodificar un elemento de informacion representativo de un predictor de informacion del movimiento seleccionado para dicha porcion de imagen a descodificar.
En una realizacion, el procedimiento comprende ademas recuperar dicho predictor de informacion del movimiento seleccionado de dicho conjunto generado de predictores de informacion del movimiento mediante la utilizacion de dicho elemento de informacion descodificado.
En una realizacion, los predictores de informacion del movimiento de dicho primer conjunto de predictores reales de informacion del movimiento, que tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de codificacion o de una imagen de referencia, y dicho primer proceso de adicion anade uno o varios de tales predictores reales de informacion del movimiento adicionales, y dicho segundo proceso de adicion anade uno o varios predictores virtuales de informacion del movimiento que no tienen vectores de movimiento obtenidos de porciones de imagen de dicha imagen en proceso de descodificacion o de una imagen de referencia.
En una realizacion, al menos, uno de dichos predictores virtuales de informacion del movimiento es calculado a partir de un predictor existente de informacion del movimiento.
En una realizacion, un vector suplementario es anadido a un vector de movimiento de un predictor existente de informacion del movimiento, teniendo el vector suplementario una direccion predeterminada con respecto a la direccion del vector de movimiento del predictor existente de informacion del movimiento.
En una realizacion, la magnitud de un vector suplementario depende de la magnitud del vector de movimiento del predictor existente de informacion del movimiento.
En una realizacion, el vector suplementario tiene componentes proporcionales a los respectivos componentes correspondientes del vector de movimiento del predictor existente de informacion del movimiento.
En una realizacion, el procedimiento comprende ademas recuperar dicho numero objetivo de dicha secuencia de bits.
En una realizacion, el procedimiento comprende ademas eliminar duplicados de dicho primer conjunto.
Otros aspectos de la invencion proporcionan un dispositivo para codificacion correspondiente, un dispositivo de descodificacion correspondiente y programas informaticos correspondientes y medios de almacenamiento legibles por ordenador.
5
10
15
20
25
30
35
40
45
50
55
60
65
Resulta asimismo deseable proporcionar un procedimiento que permita un correcto analisis sintactico en el descodificador incluso en el caso de una secuencia de bits viciado por perdidas de transmision, aun manteniendo una buena eficiencia de compresion.
Para ello, la invencion se refiere a un procedimiento de codificacion de una secuencia de imagenes digitales en una secuencia de bits, estando, al menos, una porcion de la imagen codificada por compensacion del movimiento con respecto a una porcion de la imagen de referencia. El procedimiento comprende, al menos, para una porcion de la imagen a codificar, las etapas de:
- recuperar un numero objetivo de predictores de informacion del movimiento a utilizar para dicha porcion de la imagen a codificar, y
- generar un conjunto de predictores de informacion del movimiento que se compone de dicho numero objetivo de predictores de informacion del movimiento, siendo cada predictor de informacion del movimiento del conjunto generado diferente de cualquier otro predictor de informacion del movimiento del conjunto generado.
Ventajosamente, el procedimiento de la invencion permite la determinacion sistematica de un numero objetivo de predictores de informacion del movimiento a utilizar para codificar la informacion del movimiento, tal como un vector de movimiento, asociado con una porcion de imagen, y la compresion resulta ventajosamente mejorada mediante la generacion de un conjunto de predictores de informacion del movimiento que son todos diferentes entre si. El potencial sobrecoste de utilizar un numero objetivo fijo de predictores de informacion del movimiento resulta compensado por la diversidad de predictores seleccionados, lo que ayuda a mejorar el coeficiente de compresion. El numero objetivo de predictores de informacion del movimiento diferentes se determina y se fija de manera independiente de los valores reales de los elementos de informacion del movimiento, tales como los vectores de movimiento, seleccionados como predictores de informacion del movimiento para la porcion de imagen actual a codificar.
Una realizacion de la presente invencion resulta efectiva cuando el numero de predictores de informacion del movimiento que son generados inicialmente es, a priori, desconocido, por ejemplo, tal como cuando se utiliza AMVP. Por ejemplo, si se lleva a cabo la reduccion de un conjunto inicial, y el numero inicial de predictores eliminados por el proceso de reduccion es, a priori, desconocido, es posible utilizar una realizacion de la presente invencion para asegurar que el conjunto final de predictores de informacion del movimiento se compone del numero objetivo de predictores de informacion del movimiento.
Segun una realizacion, el procedimiento de codificacion comprende ademas las etapas de:
- seleccionar un predictor de informacion del movimiento para dicha porcion de la imagen a codificar de dicho conjunto generado de predictores de informacion del movimiento, y
- codificar un elemento de informacion representativo de dicho predictor de informacion del movimiento seleccionado en base a dicho numero objetivo obtenido.
Ventajosamente, es posible seleccionar un predictor de informacion del movimiento para un bloque actual para codificarlo, y el predictor de informacion del movimiento seleccionado puede ser codificado dependiendo del numero de predictores de informacion del movimiento determinado. El numero de predictores de informacion del movimiento puede ser recuperado de manera sistematica por el descodificador, de manera que la secuencia de bits codificada puede ser analizada sintacticamente de manera sistematica en un descodificador incluso en caso de perdidas.
Segun una realizacion, el elemento de informacion representativo de dicho predictor de informacion del movimiento seleccionado es un indice del predictor de informacion del movimiento seleccionado en el conjunto generado de predictores de informacion del movimiento, y el indice es codificado en un numero de bits que depende de dicho numero objetivo obtenido.
Segun una realizacion, en la etapa de obtencion de un numero objetivo de predictores de informacion del movimiento a utilizar para dicha porcion de imagen a codificar, dicho numero objetivo es ajustado igual a un valor predeterminado para cualquier porcion de imagen de la secuencia de imagenes digitales.
La ventaja de esta realizacion es que el numero objetivo de predictores de informacion del movimiento puede ser obtenido facilmente, sin ningun calculo suplementario ni sobrecostes de senalizacion, tanto en el codificador como en el descodificador.
Segun otra realizacion, en la etapa de obtencion de un numero objetivo de predictores de informacion del movimiento a utilizar para dicha porcion de la imagen a codificar se determina dicho numero objetivo, para una porcion de imagen dada a codificar, dependiendo de la informacion de codificacion de dicha porcion de imagen dada a codificar.
5
10
15
20
25
30
35
40
45
50
55
60
Ventajosamente, tal informacion de codificacion puede ser un parametro de codificacion, tal como, por ejemplo, si las imagenes estan divididas en macrobloques de tamano variable para su procesamiento, el tamano del macrobloque al cual pertenece la porcion de la imagen a codificar. Dicha informacion de codificacion puede ser asimismo por ejemplo un modo de codificacion asociado con la porcion de la imagen a codificar.
Segun otro aspecto mas, la invencion se refiere a un dispositivo para codificar una secuencia de imagenes digitales en una secuencia de bits, estando codificada, por lo menos, una porcion de la imagen, por compensacion del movimiento con respecto a una porcion de la imagen de referencia. El dispositivo comprende, al menos, para una porcion de la imagen a codificar:
- medios para recuperar un numero objetivo de predictores de informacion del movimiento a utilizar para dicha porcion de la imagen a codificar, y
- medios para generar un conjunto de predictores de informacion del movimiento que se compone de dicho numero objetivo de predictores de informacion del movimiento, siendo cada predictor de informacion del movimiento del conjunto generado diferente de cualquier otro predictor de informacion del movimiento del conjunto generado.
Segun otro aspecto mas, la invencion se refiere asimismo a un programa informatico que puede ser cargado en un dispositivo programable, que comprende secuencias de instrucciones para implementar un procedimiento para la codificacion de una secuencia de imagenes digitales tal como se ha descrito brevemente con anterioridad, cuando el programa es cargado y ejecutado por el dispositivo programable. Tal programa informatico puede ser transitorio o no transitorio. En una implementacion, el programa informatico puede ser almacenado en medios portador no transitorio legible por ordenador.
Las caracteristicas y ventajas particulares del dispositivo para la codificacion de una secuencia de imagenes digitales, del medio de almacenamiento y del producto de programa informatico, son similares a los del procedimiento de codificacion de senales de video digitales y no se repiten en esta memoria.
Segun otro aspecto mas, la invencion se refiere asimismo a un procedimiento para la descodificacion de una secuencia de bits que comprende una secuencia codificada de imagenes digitales, estando, al menos, una porcion de la imagen codificada por compensacion del movimiento con respecto a una imagen de referencia. Al menos, para una dicha porcion de la imagen a codificar, el procedimiento comprende las etapas de:
- recuperar un numero objetivo de predictores de informacion del movimiento a utilizar para dicha porcion de imagen a descodificar, y
- generar un conjunto de predictores de informacion del movimiento que se compone de dicho numero objetivo de predictores de informacion del movimiento, siendo cada predictor de informacion del movimiento del conjunto generado diferente de cualquier otro predictor de informacion del movimiento del conjunto generado.
El procedimiento para descodificar una secuencia de bits tiene la ventaja de permitir la determinacion de un numero objetivo de predictores de informacion del movimiento y utilizar dicho numero de diferentes predictores de informacion del movimiento. El numero objetivo de predictores de informacion del movimiento puede ser obtenido de manera sistematica y, en consecuencia, la secuencia de bits puede ser analizada sintacticamente de manera sistematica, incluso en caso de errores de transmision. Una ventaja adicional es que, en todos los casos, el analisis sintactico de la secuencia de bits es simple y, en particular, mas simple que con los procedimientos de la tecnica anterior que reducen de manera adaptativa el numero de predictores de informacion del movimiento en lugar de utilizar un numero objetivo predeterminado que puede ser obtenido por el descodificador.
Segun una realizacion, el procedimiento comprende ademas una etapa de descodificacion de un elemento de informacion representativo de un predictor de informacion del movimiento seleccionado para dicha porcion de la imagen a codificar en base a dicho numero objetivo obtenido.
Ventajosamente, en caso de que una codificacion dependiente del numero de predictores de informacion del movimiento haya sido aplicada en el codificador, el elemento de informacion representativo del predictor de informacion del movimiento para dicha porcion de imagen a descodificar puede ser descodificado de manera sistematica, incluso en caso de errores de transmision.
Segun otro aspecto mas, la invencion se refiere asimismo a un dispositivo para descodificar una secuencia de bits que comprende una secuencia codificada de imagenes digitales, estando, al menos, una porcion de la imagen codificada por compensacion del movimiento con respecto a una porcion de la imagen de referencia. El dispositivo comprende, al menos, para una dicha porcion de la imagen a codificar:
- medios para recuperar un numero objetivo de predictores de informacion del movimiento a utilizar para dicha porcion de la imagen a codificar, y
5
10
15
20
25
30
35
40
45
50
55
60
65
- medios para generar un conjunto de predictores de informacion del movimiento que se compone de dicho numero objetivo de predictores de informacion del movimiento, siendo cada predictor de informacion del movimiento del conjunto generado diferente de cualquier otro predictor de informacion del movimiento del conjunto generado.
Segun otro aspecto mas, la invencion se refiere asimismo a medios de almacenamiento de informacion que puede ser leido por un ordenador o un microprocesador, siendo este medio de almacenamiento extraible, y almacenando instrucciones de un programa informatico para la implementacion del procedimiento para descodificar una secuencia de bits tal como se ha descrito brevemente con anterioridad.
Segun otro aspecto mas, la invencion se refiere asimismo a un programa informatico que puede ser cargado en un dispositivo programable, que comprende secuencias de instrucciones para implementar un procedimiento para la descodificacion de una secuencia de bits tal como se ha descrito brevemente con anterioridad, cuando el programa es cargado y ejecutado por el dispositivo programable. Dicho programa informatico puede ser transitorio o no transitorio. En una implementacion, el programa informatico puede ser almacenado en un medio portador no transitorio legible por ordenador.
Al ser las caracteristicas y ventajas particulares del dispositivo para descodificar una secuencia de bits, del medio de almacenamiento y del programa informatico similares a las del procedimiento de descodificacion, no se repiten en esta memoria.
Segun otro aspecto de la presente invencion, esta previsto un procedimiento de codificacion de una secuencia de imagenes digitales en una secuencia de bits, estando, al menos, una porcion de la imagen codificada por compensacion del movimiento con respecto a una porcion de la imagen de referencia, comprendiendo el procedimiento generar un conjunto de predictores de informacion del movimiento que tienen una diversidad controlada, y seleccionar un predictor de informacion del movimiento para dicha porcion de la imagen a codificar de dicho conjunto generado de predictores de informacion del movimiento.
Diversidad controlada significa que los predictores de informacion del movimiento del conjunto son diferentes entre si, pero que es estadisticamente probable que uno o varios de los mismos este proximo a la informacion real del movimiento, de manera que el residuo (diferencia entre la informacion real del movimiento y el predictor correspondiente) es pequeno y por ello se puede comprimir de manera eficiente.
El procedimiento puede comprender;
generar primeros predictores de informacion del movimiento;
identificar uno o varios primeros predictores de informacion del movimiento a modo de predictores semilla; generar uno o varios segundos predictores de informacion del movimiento en base al predictor o los predictores semilla; y
formar dicho conjunto de predictores de informacion del movimiento a partir de los primer y segundo predictores de informacion del movimiento.
En este caso, los primeros predictores de informacion del movimiento pueden ser predictores que se espera que estadisticamente den buenos resultados en terminos de eficiencia de compresion. Los segundos predictores de informacion del movimiento, al estar basados en los primeros predictores, pueden ser utilizados para explorar de una manera organizada o sistematica otros predictores en el espacio predictor en la proximidad de los primeros predictores. Se espera asimismo que dichos predictores den buenos resultados, y cuantos mas predictores sean examinados, mayor sera la probabilidad de encontrar una buena coincidencia con la informacion del movimiento real.
En una realizacion, al menos, uno de los primeros predictores de informacion del movimiento es identificado como un predictor semilla, en base a la importancia del primer predictor implicado de informacion del movimiento.
La importancia puede depender del numero de veces que el primer predictor implicado de informacion del movimiento aparece entre los primeros predictores de informacion del movimiento. Cuanto mayor sea el numero de veces, mas importante se considera que es el predictor, y mas probable es que sea utilizado en el conjunto. Al igual que buscar predictores identicos (duplicados), puede ser asimismo efectivo buscar tambien coincidencias proximas.
De manera alternativa, la importancia puede depender en cierta medida de cuan representativo es el primer predictor implicado de informacion del movimiento de los primeros predictores de informacion del movimiento como conjunto. Por ejemplo, si los primeros predictores de informacion del movimiento estan promediados, la diferencia o distancia entre el predictor medio y un primer predictor dado de informacion del movimiento es una medida de cuan representativo es el predictor dado de los primeros predictores de informacion del movimiento como conjunto.
Una manera de controlar la diversidad es generar, al menos, uno de los citados segundos predictores de informacion del movimiento anadiendo o eliminando una desviacion de uno de dichos predictores semilla. La desviacion puede ser fija. Podria ser asimismo un valor pseudoaleatorio siempre que el mismo valor semilla este disponible para el
5
10
15
20
25
30
35
40
45
50
55
60
65
descodificador y para el codificador. Si los predictores semilla son vectores, es asimismo posible controlar la diversidad anadiendo al predictor semilla otro vector, por ejemplo, de magnitud fija y de direccion predeterminada con respecto a la direccion del predictor semilla.
Es posible generar una serie de dichos segundos predictores de informacion del movimiento en base al mismo predictor semilla citado. Si los predictores de informacion del movimiento son vectores que tienen cada uno componentes X e Y, la serie de segundos predictores de informacion del movimiento se pueden recuperar anadiendo y/o restando desviaciones a o desde uno o desde dichos dos componentes del mismo predictor semilla citado. Por ejemplo, la misma desviacion puede ser sumada o restada del mismo predictor semilla. Si el predictor semilla es un vector que tiene componentes X e Y, existen varias permutaciones de desviacion de suma/resta a/de uno o ambos de los componentes X e Y del mismo predictor semilla. Esta es una manera eficiente de generar diversidad controlada sin una gran carga de procesamiento.
Otra manera de controlar la diversidad es generar una serie de segundos predictores de informacion del movimiento formando una media de diferentes pares (u otras combinaciones) de primeros predictores de informacion del movimiento. Por ejemplo, si los primeros predictores de informacion del movimiento son V1, V2 y V3, se podrian formar tres segundos predictores de informacion del movimiento a partir de las medias de V1 y V2, V2 y V3 y V3 y V1. Seria asimismo posible formar diferentes combinaciones ponderadas de los mismos primeros predictores de informacion del movimiento como diferentes segundos predictores de informacion del movimiento.
Los primeros predictores de informacion del movimiento pueden ser o incluir predictores de informacion del movimiento que estan asociados cada uno con una porcion de imagen que tiene una relacion espacial y/o temporal predeterminada con la porcion de imagen en proceso de codificacion. Por ejemplo, los predictores de informacion del movimiento utilizados en AMVP pueden ser primeros predictores de informacion del movimiento. Estos son una buena fuente de predictores semilla.
En otra realizacion, el procedimiento comprende:
generar primeros predictores de informacion del movimiento;
comprobar las diferencias entre los primeros predictores de informacion del movimiento generados; y
excluir de dicho conjunto de predictores de informacion del movimiento uno o varios de los primeros predictores de
informacion del movimiento en base a las diferencias.
Teniendo en cuenta las diferencias entre los primeros predictores de informacion del movimiento es posible controlar la diversidad de los predictores de informacion del movimiento del conjunto. No es necesario en este caso identificar los predictores semilla entre los primeros predictores de informacion del movimiento y generar unos segundos predictores de informacion del movimiento en base a los predictores semilla. Esto puede ser efectivo, por ejemplo, si inicialmente esta disponible un numero suficientemente elevado de primeros predictores de informacion del movimiento.
Por ejemplo, un primer predictor de informacion del movimiento que tiene la menor diferencia con respecto a otro primer predictor de informacion del movimiento puede ser eliminado, como un modo de controlar la diversidad. El proceso se puede repetir de nuevo, si es necesario, para eliminar con exito los predictores menos diversos.
Es importante observar que en este aspecto de la invencion el numero de predictores de informacion del movimiento en dicho conjunto puede ser variable.
No obstante, como en el otro aspecto basico de la presente invencion el numero de predictores de informacion del movimiento de dicho conjunto puede ser predeterminado, al menos, para una porcion dada de imagen a codificar, o incluso para todas las porciones de imagen (un numero objetivo). Esto hace posible no solo conseguir una diversidad controlada entre los predictores del conjunto, sino tambien para resolver el problema del analisis sintactico senalado en la introduccion.
Este aspecto de la invencion proporciona asimismo el procedimiento de descodificacion correspondiente y los dispositivos de codificacion y descodificacion correspondientes, como programas que originan la codificacion y la descodificacion.
Segun otro aspecto mas, la invencion se refiere a un procedimiento de codificacion de una secuencia de imagenes digitales en una secuencia de bits, siendo, al menos, una porcion de la imagen codificada por compensacion del movimiento con respecto a una porcion de la imagen de referencia. El procedimiento comprende, al menos, para una porcion de la imagen a codificar, las etapas de:
- recuperar un primer conjunto de predictores del vector de movimiento a utilizar para dicha porcion de la imagen a codificar, y
- generar un segundo conjunto de predictores del vector de movimiento a partir de dicho primer conjunto de predictores del vector de movimiento, siendo cada predictor del vector de movimiento del conjunto generado
5
10
15
20
25
30
35
40
45
50
55
60
65
diferente de cualquier otro predictor del vector de movimiento del segundo conjunto de predictores del vector de movimiento generado, en el que, al menos, un predictor del vector de movimiento del segundo conjunto generado se calcula a partir de un predictor del vector de movimiento seleccionado del primer conjunto.
Ventajosamente, el segundo conjunto de predictores del vector de movimiento generado se utiliza para codificar el vector de movimiento asociado con la porcion de la imagen a codificar. El segundo conjunto de predictores del vector de movimiento comprende una diversidad de predictores del vector de movimiento diferentes, que son generados (y opcionalmente seleccionados) para mejorar la eficiencia de la compresion.
Segun una realizacion, el predictor del vector de movimiento del primer conjunto es seleccionado en una etapa de seleccion segun una valoracion de su importancia.
Segun una realizacion, el procedimiento de codificacion comprende una etapa de calculo de la importancia asociado con cada predictor del vector de movimiento del primer conjunto.
Segun una realizacion, el predictor del vector de movimiento del primer conjunto es seleccionado en una etapa de seleccion segun la distancia entre los predictores del vector de movimiento del primer conjunto.
Las diferentes realizaciones para seleccionar un predictor del vector de movimiento para generar otros predictores del vector de movimiento adicionales o virtuales permiten aplicar una seleccion de diversidad controlada, que tiene la ventaja de mejorar la eficiencia de la compresion. De hecho, el uso de predictores del vector de movimiento calculados a partir de importantes predictores del vector de movimiento del conjunto inicial permite representar de manera mas precisa el vector de movimiento de la porcion de imagen actual a codificar. De nuevo, no es esencial tener un numero fijo u objetivo de predictores en el conjunto final.
Segun una realizacion, los predictores del vector de movimiento del primer conjunto de predictores de informacion del movimiento son vectores de movimiento asociados con porciones de la imagen a codificar, de la imagen en proceso de codificacion y/o de una imagen de referencia. El primer conjunto puede estar compuesto, o incluir, los predictores utilizados en AMVP.
BREVE DESCRIPCION DE LOS DIBUJOS
Otras caracteristicas y ventajas resultaran evidentes en la descripcion siguiente, que se facilita unicamente a modo de ejemplo no limitativo y realizadas con referencia a los dibujos que se acompanan, 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 de 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, un terminal o un dispositivo portatil ligero.
El dispositivo -1000- comprende un bus de comunicacion -1113- al cual estan conectados preferiblemente:
- una unidad de procesamiento central -1111-, tal como un microprocesador, indicado como CPU;
5
10
15
20
25
30
35
40
45
50
55
60
65
- una memoria de solo lectura -1107-, capaz de contener programas informaticos para implementar la invencion, indicada como ROM;
- una memoria de acceso aleatorio -1112-, indicada como RAM, capaz de contener el codigo ejecutable del procedimiento de la invencion, asi 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 una secuencia de bits; y
- una interfaz de comunicacion -1102- conectada a una red de comunicacion -1103- sobre la cual se transmiten los datos digitales para ser procesados.
Opcionalmente, el dispositivo -1000- puede contener asimismo los siguientes componentes:
- medios de almacenamiento de datos -1104- tal como un disco duro, capaz de contener los programas que implementan la 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 para servir de interfaz grafica con el usuario, por medio de un teclado -1110- o cualquier otro medio de senalizacion.
El dispositivo -1000- puede ser conectado 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 la 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 de procesamiento central es capaz de comunicar instrucciones a cualquier elemento del dispositivo -1000- directamente o por medio de otro elemento del dispositivo -1000-.
El disco -1106- puede ser reemplazado por cualquier medio de informacion tal como por ejemplo un disco compacto (CD-ROM), reescribible o no, un disco ZIP o una tarjeta de memoria y, en terminos generales, mediante medios de almacenamiento de la informacion que puede ser leido por un microordenador o por un microprocesador, integrado o no en el dispositivo, opcionalmente extraible y adaptado para almacenar uno o varios programas cuya ejecucion permite la implementacion del procedimiento de codificacion de una secuencia de imagenes digitales y/o el procedimiento de descodificacion de una secuencia 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 medios digital extraible tal como por ejemplo un disco -1106- tal como 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 de procesamiento central -1111- esta adaptada para controlar y dirigir la ejecucion de las instrucciones o porciones 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 conecta el equipo, 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, asi 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, de manera alternativa, la presente invencion puede ser implementada en hardware (por ejemplo, en forma de un Circuito integrado especifico para una aplicacion, 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-, implementando la etapa correspondiente de un procedimiento una realizacion de la invencion.
Una secuencia original de imagenes digitales i0 a in -301- es recibida como entrada por el codificador -30-. Cada imagen digital esta representada por un conjunto de muestras, conocidas como pixeles.
Una secuencia de bits -310- es emitida por el codificador -30-.
5
10
15
20
25
30
35
40
45
50
55
60
65
La secuencia de bits -310- comprende una serie de unidades de codificacion o fragmentos, comprendiendo cada fragmento una cabecera del fragmento para codificar los valores de los parametros de codificacion utilizados para codificar el fragmento y el cuerpo del fragmento, que comprende datos de video codificados.
Las imagenes digitales de entrada estan divididas en bloques (302), cuyos bloques son porciones 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. Los posibles modos de codificacion son ensayados.
El modulo -303- implementa la Intra prediccion, en la cual el bloque dado a codificar es predicho por 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 bloque dado 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 porcion de la imagen de referencia, indicada tambien como zona de referencia, que es la zona mas cercana al bloque dado a codificar, mediante el modulo -304- de estimacion del movimiento. La diferencia entre la zona de referencia seleccionada y el bloque dado, indicada tambien como bloque residual, es calculada por el modulo -305- de compensacion del movimiento. La zona de referencia seleccionada es indicada por 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 o “bitrate”, el vector de movimiento es codificado por diferencia con respecto a un predictor del vector de movimiento. Un conjunto de predictores del vector de movimiento, indicado tambien como predictores de informacion del movimiento, se recupera a partir del campo -318- de vectores de movimiento mediante un modulo de prediccion -317- del vector de movimiento y de codificacion.
Ventajosamente, el conjunto de predictores del vector de movimiento utilizado para seleccionar un mejor predictor del vector de movimiento para codificar el vector de movimiento actual se genera tal como se explica con mas detalle a continuacion con respecto a las figuras 5 y 6. Para un bloque actual dado a codificar, se configura un numero predeterminado Nmax de predictores del vector de movimiento y, en consecuencia, 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 recuperado tambien por el descodificador incluso en caso de perdidas, por lo tanto, se asegura que el descodificador podra analizar sintacticamente la secuencia de bits incluso en caso de errores o perdidas. Los predictores del vector de movimiento Nmax son seleccionados segun las diferentes realizaciones para ser todos 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 aplicado, bien para toda la secuencia, o 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 pueden estar por ejemplo senalizados en la secuencia de bits insertandolos en una cabecera, tal como la cabecera del fragmento, 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 del coeficiente, para determinar cual es el mejor modo entre el modo de prediccion espacial y el modo de prediccion temporal. Una transformada -307- se aplica al bloque residual, los datos transformados obtenidos son cuantificados a continuacion mediante el modulo -308- y la entropia codificada por el modulo -309-. Finalmente, el bloque residual codificado del bloque actual a codificar es introducido en la secuencia de bits -310-, junto con la informacion relativa al predictor utilizado. En el caso de los bloques codificados en modo ‘SKIP’, solo se codifica una referencia al predictor en la secuencia de bits, sin ningun bloque residual.
El codificador -30- efectua 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- efectua una cuantificacion inversa de los datos cuantificados, seguida de una transformada inversa -312-. El modulo -313- de prediccion de movimiento inverso utiliza la informacion de prediccion para determinar que predictor utilizar para un bloque dado, y el modulo -314- de compensacion del movimiento inversa de hecho, suma el residuo obtenido por el modulo -312- a la zona 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 visual de la imagen
5
10
15
20
25
30
35
40
45
50
55
60
65
descodificada. El mismo filtro de desbloqueo se aplica en el descodificador, de manera que, si no esta previsto ninguna perdida de transmision, el codificador y el descodificador aplican el mismo procesamiento.
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-, la etapa correspondiente de un procedimiento que implementa una realizacion de la invencion.
El descodificador -40- recibe una secuencia 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 son codificados en entropia, y los indices de los predictores del vector de movimiento estan codificados, para un bloque dado, en un numero de bits predeterminado. Los datos de video codificados recibidos son descodificados (402) en entropia, descuantificados (403) 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 codificar, el descodificador descodifica asimismo la informacion de la prediccion de movimiento a partir de la secuencia 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 recuperar 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 en esta memoria con respecto a las figuras 5 y 6 se aplican de manera similar. Si la secuencia de bits es recibida 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 de la secuencia 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 de manera sistematica por el descodificador.
Una vez que el indice del predictor del vector de movimiento para el bloque actual ha sido obtenido, 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 recupera 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 de procesamiento central -1111- del dispositivo -1000-.
La figura 5 representa un diagrama de secuencia aplicado para un bloque actual dado a codificar, que tiene un vector de movimiento asociado que designa una zona de referencia en una imagen de referencia.
En la etapa S500, se obtiene en primer lugar un conjunto inicial de predictores del vector de movimiento L1. El conjunto L1 esta compuesto 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 con referencia a la figura 1, por ejemplo, los vectores V0 a V3 de la figura 1 y el vector medio calculado a partir de V1, V2 y V3. De acuerdo con ello, N es un maximo de 5.
Preferiblemente, 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 los vectores de movimiento Vo, V1 y el vector medio deben mantenerse en L1, 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
65
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 recupera 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 los parametros de codificacion del bloque actual a codificar o de la unidad de codificacion (por ejemplo, el fragmento) 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 cual 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 es funcion directa de Nmax: k=INTsup(log2(Nmax)), en que INTsup(x) es el numero entero que sigue inmediatamente al valor x. Preferiblemente, 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.
De manera alternativa, 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 ha sido determinado. En particular, es posible utilizar cualquier tipo de codificacion de entropia, tal como la 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 ensaya en la etapa S503 si el numero N de predictores del vector de movimiento del conjunto L1 es mayor que N max.
En caso de respuesta positiva, la etapa S503 es seguida de la etapa S504 de seleccion de un candidato a predictor del vector de movimiento de L1, seguida de 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 ^n)-I^W^nxl+l ^ky~^ny\i en la que lal 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.
Cualquier otro tipo de medicion para el calculo de las distancias puede ser aplicado de manera alternativa.
La distancia minima encontrada d(Vp, Vq) indica los dos vectores mas cercanos Vp, Vq, en 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 puede estar basada en la distancia de cada uno de ellos a los predictores del vector de movimiento restantes en el conjunto L1 modificado: el vector entre Vp y Vq que tiene la menor distancia al otro vector del conjunto L1 es seleccionado para su 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 variados o diversos, segun sea posible.
Tras 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 S5010 se repiten. Si no, si N ha alcanzado Nmax, la etapa S510 es seguida de la etapa S522 que se describe a continuacion en esta memoria.
Si la respuesta a la prueba S503 es ‘no’, entonces la prueba S512 comprueba si N es menor que Nmax. En caso de respuesta negativa, es decir, si N=Nmax, la prueba S512 es seguida de la etapa S522 que se describe a continuacion en esta memoria.
Si la respuesta a la prueba S512 es ‘si’, es decir si N es estrictamente menor que Nmax, entonces la prueba S512 es seguida de la etapa S514 de obtencion o generacion de un candidato a predictor del vector de movimiento adicional. De hecho, empezando a partir del conjunto inicial de predictores del vector de movimiento L1, es posible anadir otros
5
10
15
20
25
30
35
40
45
50
55
60
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 dos predictores entre -770-, -760-, -750- que no fueron seleccionados en S500 pueden ser anadidos como posibles predictores del vector de movimiento.
Para cada potencial candidato a predictor del vector de movimiento MV, se comprueba si el predictor del vector de movimiento MV es diferente de todos los candidatos a predictor del vector de movimiento ya almacenados en el conjunto L2.
Si cada potencial candidato a vector de movimiento considerado, tal como por ejemplo los vectores de movimiento de bloques -710-, -720-, -730-, -740-, -750-, -760- y -770- de la figura 7 es igual a un predictor del vector de movimiento del conjunto L2, en la etapa S514 se calculan nuevos candidatos ‘virtuales’ a predictor del vector de movimiento.
Dichos candidatos a predictor del vector de movimiento se denominan virtuales porque no son vectores de movimiento de otros bloques de la imagen actual o de la imagen de referencia. Los predictores virtuales del vector de movimiento son calculados a partir de predictores del vector de movimiento existentes, por ejemplo, sumando desviaciones. Por ejemplo, a partir de un vector de movimiento MV del conjunto L2 de coordenadas (MVx, MVy), es posible calcular cuatro predictores virtuales del vector de movimiento sumando/restando una desviacion desactivada
a sus coordenadas: (MVx±off, MVy±off) Habitualmente, la desactivacion puede ser igual a 1 o 2.
De manera alternativa, es posible aplicar otras modificaciones de las componentes del predictor del vector de movimiento MV para obtener predictores virtuales del vector de movimiento, con el fin de obtener predictores del vector de movimiento variados empezando a partir de los predictores del vector de movimiento existentes con el fin de aumentar la eficiencia de la compresion.
Por ejemplo, las componentes del vector de movimiento MV pueden ser modificadas de manera independiente, utilizando respectivamente dos valores offx y offy, y cualquiera de offx u offy pueden ser configurados como 0.
En una realizacion, tanto offx como offy son proporcionales a la componente correspondiente: offx=aMVx y offy=bMVy, siendo a y b habitualmente menores de 0,5. Si es necesario, las coordenadas MVx y MVy modificadas son redondeadas al valor entero mas cercano, para representar un desplazamiento en la malla de pixeles.
En una realizacion, un vector de movimiento suplementario, de una norma predeterminada, es anadido al vector MV, teniendo el vector suplementario la misma direccion que el vector de movimiento MV, tal como se representa en la figura 8: el vector suplementario -850- se suma al vector -820-.
En otra realizacion alternativa mas, se calcula una varianza de los vectores de movimiento del conjunto L2:
var - -MVxf +{MVy -MVy)2
MVeLI
en que MVx representa el valor medio de MVEL2 de las coordenadas MVX de los vectores de L2 y MVy\ representa el valor medio de las coordenadas MVy de los vectores de L2. A continuacion, se selecciona la desviacion desactivada comparando el valor calculado var con un umbral T predeterminado. T puede ser igual a 50/L2. Si var es menor que T, el valor de la desactivacion es pequeno, por ejemplo, off=1; si var es mayor que T, la desviacion es ajustada a un valor mayor, por ejemplo, off=3. Ademas, en esta realizacion tambien, se puede calcular un valor offx u offy diferenciados 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, en la etapa S520 se comprueba si N es igual a Nmax. En caso de respuesta negativa, se repiten las etapas S514 a S520.
En caso de respuesta positiva, se ha alcanzado el 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 del coeficiente para seleccionar el predictor optimo del vector de movimiento MVi para codificar el vector de movimiento del bloque actual.
En el codificador, el residuo del movimiento, es decir, la diferencia entre el vector de movimiento del bloque actual y el predictor del vector de movimiento seleccionado se codifica, asi como una indicacion del predictor del vector de
5
10
15
20
25
30
35
40
45
50
55
60
65
movimiento seleccionado en la etapa S524. Por ejemplo, el indice i del predictor del vector de movimiento seleccionado MVi de L2 es codificado, utilizando k=INT5up(log2(Nmax))
De manera alternativa, se puede aplicar una codificacion de entropia 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 bloque dado, sin las etapas S522 y S524.
En el descodificador, el indice i del predictor del vector de movimiento MVi seleccionado para el bloque dado a codificar es obtenido de la secuencia de bits, conociendo Nmax y, por lo tanto, el numero de bits k en los que el indice i ha sido codificado. Las etapas S500 a S518 son implementadas de manera similar para recuperar el conjunto de predictores del vector de movimiento L2, de manera que el indice i descodificado a partir de la secuencia 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, la secuencia de bits recibida puede ser analizada 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, el conjunto completo de predictores del vector de movimiento L2 puede no ser obtenido en el descodificador.
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 de procesamiento central -1111- del dispositivo -1000-.
La figura 6 representa un diagrama de secuencia aplicado para un bloque actual dado a codificar, que tiene un vector de movimiento asociado que designa una zona de referencia en una imagen de referencia.
En primer lugar, de manera similar a la etapa S502 de la figura 5, el 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 del 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 necesitan 3 bits para codificar el indice de un predictor del vector de movimiento. En este caso, preferiblemente Nmax=23=8.
Un conjunto inicial de candidatos a predictor del vector de movimiento L1 se recupera en la etapa S602. Por ejemplo, se selecciona el conjunto inicial de N=5 predictores del vector de movimiento de AMVP.
Se aplica un proceso de reduccion en el conjunto inicial de predictores del vector de movimiento para eliminar duplicados, con el fin de recuperar un conjunto reducido de predictores del vector de movimiento que contiene N1 elementos. Preferiblemente, el numero de duplicados de cada vector que queda tras el proceso de reduccion es registrado y almacenado en una memoria para un uso posterior en la etapa S612 que se describe a continuacion en esta memoria.
A continuacion, se comprueba (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 es seguida de 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 recupera un segundo conjunto de candidatos a predictor del vector de movimiento L1’.
El segundo conjunto de predictores del vector de movimiento L1’ esta compuesto por los predictores del vector de movimiento restantes del primer conjunto L1 y por vectores de movimiento adicionales, por ejemplo,
5
10
15
20
25
30
35
40
45
50
55
60
correspondientes a los vectores de movimiento del bloque -710-, -720-, -730- y -740- de la imagen de referenda tal como se representa en la figura 7. Ademas, los 2 predictores de entre los -770-, -760-, -750- que no fueron seleccionados en S600 pueden ser anadidos como posibles predictores del vector de movimiento. Cada predictor del vector de movimiento del conjunto L1’ tiene el indice correspondiente.
A continuacion, se aplica un proceso de reduccion al segundo conjunto de predictores del vector de movimiento en la etapa S610, para recuperar un segundo conjunto reducido de predictores del vector de movimiento L1’’ de N2 vectores. El proceso de 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 en esta memoria.
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 es seguida de 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 recuperar 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 que queda 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 es calculado 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, asi que el vector V0 tiene un valor de importancia igual a 2.
En una realizacion alternativa, el valor de importancia puede ser calculado 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 a predictor virtual 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 +off y -off a una de las dos coordenadas de Vn:
{(Vnx+off, Vny), (Vnx-off, Vny)| (Vnx+off, Vny+off) (Vnx+off, Vny-off), (Vnx-off, Vny +off) (Vnx-off, Vny -off) (Vnx, Vny +off), (Vnx, Vryoff)} ’
Es posible 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
55
El valor N es actualizado en la etapa S622 respecto al numero restante de predictores del vector de movimiento tras la eliminacion de potenciales duplicados.
A continuacion, se comprueba si N es mayor o igual que Nmax en la etapa S624. En caso de respuesta negativa, la etapa S624 es seguida de la etapa S634 de incremento del valor n en 1, y se repiten las etapas S6l 8 a S624.
En caso de respuesta positiva a la etapa S624, se han obtenido suficientes predictores del vector de movimiento. La etapa S624 es seguida de la etapa S630 de 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 es seguida de 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 del coeficiente.
La etapa S632 es seguida de 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,
imagen1
De manera alternativa, se puede aplicar una codificacion de entropia de 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 6 puede ser asimismo implementado mediante un descodificador para generar el conjunto de predictores del vector de movimiento o de candidatos a vector de movimiento para un bloque dado, excepto las etapas S632 y S634, que se omiten en el lado del descodificador.
En el descodificador, el indice i del predictor del vector de movimiento MVi seleccionado para el bloque dado a codificar es obtenido a partir de la secuencia de bits, conociendo Nmax y por lo tanto el numero de bits k en los cuales el indice i ha sido codificado. Las etapas S600 a D630 son implementadas de manera similar para recuperar el conjunto de predictores del vector de movimiento L2, de manera que el indice i descodificado a partir de la secuencia 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 recuperado de manera sistematica por el descodificador, la secuencia de bits recibido puede ser analizada 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 es posible recuperar el conjunto completo de predictores del vector de movimiento L2 en el descodificador.
Las realizaciones descritas anteriormente se basan en particiones de bloque de imagenes de entrada, pero mas generalmente, se puede considerar cualquier tipo de porciones de la imagen a codificar o descodificar, en particular, porciones rectangulares o, de manera mas general, porciones 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 comprenda 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 grupo 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.
De manera mas general, cualquier modificacion o mejora de las realizaciones descritas anteriormente, que un experto en la materia puede concebir facilmente debe ser considerada como incluida dentro del alcance de la invencion.
La presente solicitud reclama la prioridad de la Solicitud de patente del Reino Unido N° 1100462.9 presentada el 12 de enero de 2011, cuyo contenido completo se incorpora en esta memoria por referencia.

Claims (21)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Procedimiento de codificacion de una secuencia de imageries digitales en una secuencia de bits, estando, al menos, una porcion de la imagen codificada por compensacion del movimiento con respecto a una porcion de la imagen de referencia, comprendiendo el procedimiento: obtener (S502; S602, S604), para una porcion de la imagen a codificar, un conjunto inicial de predictores de informacion del movimiento; probar (S512; S606) si el numero (N; N1) de predictores de informacion del movimiento en dicho conjunto inicial es menor que un numero objetivo (Nmax) y, si es el caso, anadir (S608, S610) uno o varios predictores de informacion del movimiento al citado conjunto inicial para generar un conjunto de predictores de informacion del movimiento diferentes unos de otros, de manera que se disponga de una diversidad controlada y que se disponga de un numero de predictores de informacion del movimiento igual al numero objetivo; y seleccionar un predictor de informacion del movimiento para codificar la informacion del movimiento de la citada porcion de la imagen a codificar a partir del conjunto generado de predictores de informacion del movimiento, en el que los predictores de informacion del movimiento de dicho conjunto inicial son predictores reales de informacion del movimiento, que disponen de vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificacion o de una imagen de referencia, y los predictores potenciales de informacion del movimiento a anadir comprenden uno o varios de tales predictores reales de informacion del movimiento adicionales y comprenden igualmente uno o varios predictores virtuales de informacion del movimiento que no disponen de vectores de movimiento obtenidos a partir de porciones de imagen que se estan codificando o de una imagen de referencia,
    caracterizado por que:
    la adicion de uno o varios predictores de informacion del movimiento a dicho conjunto inicial comprende: efectuar un primer proceso de adicion que consiste en anadir (S608, S610) al citado conjunto inicial uno o varios de dichos otros predictores reales de informacion del movimiento para recuperar un segundo conjunto de predictores de informacion del movimiento; efectuar una segunda prueba (S628) para determinar si el numero (N2) de predictores de informacion del movimiento de dicho segundo conjunto es menor que dicho numero objetivo (Nmax) y, si es el caso, efectuar un segundo proceso de adicion que consiste en anadir (S618, S626) uno o varios predictores virtuales de informacion del movimiento a dicho segundo conjunto.
  2. 2. Procedimiento segun la reivindicacion 1, en el que, al menos, uno de dichos predictores virtuales de informacion del movimiento se calcula a partir de un predictor existente de informacion del movimiento.
  3. 3. Procedimiento segun la reivindicacion 2, en el que un vector suplementario es anadido a un vector de movimiento de un predictor existente de informacion del movimiento, teniendo el vector suplementario una direccion predeterminada con respecto a la direccion del vector de movimiento del predictor existente de informacion del movimiento.
  4. 4. Procedimiento segun la reivindicacion 3, en el que la magnitud del vector suplementario depende de la magnitud del vector de movimiento del predictor existente de informacion del movimiento.
  5. 5. Procedimiento segun la reivindicacion 3 o 4, en el que el vector suplementario comprende componentes (aMVx, bMVy) proporcionales a componentes respectivas del vector de movimiento del predictor existente de informacion del movimiento.
  6. 6. Procedimiento segun cualquiera de las reivindicaciones anteriores, que comprende ademas la codificacion de un elemento de informacion representativo de dicho predictor de informacion del movimiento seleccionado.
  7. 7. Procedimiento segun cualquiera de las reivindicaciones anteriores, que comprende ademas la senalizacion de la citada secuencia de bits de dicho numero objetivo.
  8. 8. Procedimiento segun cualquiera de las reivindicaciones anteriores, que comprende la eliminacion de duplicados de dicho conjunto inicial (S604).
  9. 9. Procedimiento de descodificacion de una secuencia de bits que comprende una secuencia codificada de imagenes digitales, estando, al menos, una porcion de la imagen codificada por compensacion del movimiento con respecto a una imagen de referencia, comprendiendo el procedimiento: obtener (S502; S602, S604), para una porcion de la imagen a descodificar, un conjunto inicial de predictores de informacion del movimiento; probar (S512; S606) si el numero (N; N1) de predictores de informacion del movimiento en dicho conjunto inicial es menor que un numero objetivo (Nmax) y, si es el caso, anadir (S608, S610) uno o varios predictores de informacion del movimiento a dicho conjunto inicial para generar un conjunto de predictores de informacion del movimiento diferentes entre si de manera que se disponga de una diversidad controlada y que se disponga de un numero de predictores de informacion del movimiento igual al numero objetivo; y determinar un predictor de informacion del movimiento para descodificar la informacion del movimiento de dicha porcion de la imagen a descodificar utilizando el conjunto generado de predictores de informacion del movimiento, en el que los predictores de informacion del movimiento de dicho conjunto inicial son predictores reales de informacion del movimiento, que comprende vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de descodificacion o de una imagen de referencia, y potenciales predictores de informacion del movimiento a anadir incluyen uno o varios predictores reales
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    de informacion del movimiento de este tipo, e incluyen igualmente unos o varios predictores virtuales de informacion del movimiento que no disponen de vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de descodificacion o de una imagen de referencia; caracterizado por que la adicion de uno o varios predictores de informacion del movimiento a dicho conjunto inicial comprende: efectuar un primer proceso de adicion que consiste en anadir (S608, S610) a dicho conjunto inicial uno o varios predictores adicionales reales de informacion del movimiento, para obtener un segundo conjunto de predictores de informacion del movimiento; efectuar una segunda prueba (S628) para determinar si el numero (N2) de predictores de informacion del movimiento en dicho segundo conjunto es menor que dicho numero objetivo (Nmax) y, si es el caso, efectuar un segundo proceso de adicion (S618- S626) de uno o varios otros predictores virtuales de informacion del movimiento a dicho segundo conjunto.
  10. 10. Procedimiento segun la reivindicacion 9, que comprende ademas descodificar un elemento de informacion representativo de un predictor de informacion del movimiento seleccionado para dicha porcion de imagen a descodificar.
  11. 11. Procedimiento segun la reivindicacion 10, que comprende ademas extraer dicho predictor de informacion del movimiento seleccionado de dicho conjunto generado de predictores de informacion del movimiento utilizando dicho elemento de informacion descodificado.
  12. 12. Procedimiento segun cualquiera de las reivindicaciones 9 a 11, en el que, al menos, uno de dichos predictores virtuales de informacion del movimiento se calcula a partir de un predictor existente de informacion del movimiento.
  13. 13. Procedimiento segun la reivindicacion 12, en el que un vector suplementario se anade a un vector de movimiento de un predictor existente de informacion del movimiento, teniendo el vector suplementario una direccion predeterminada con respecto a la direccion del vector de movimiento del predictor existente de informacion del movimiento.
  14. 14. Procedimiento segun la reivindicacion 13, en el que la magnitud del vector suplementario depende de la magnitud del vector de movimiento del predictor existente de informacion del movimiento.
  15. 15. Procedimiento segun la reivindicacion 13 o 14, en el que el vector suplementario comprende componentes (aMVx, bMVy) proporcionales a los componentes correspondientes respectivos del vector de movimiento del predictor existente de informacion del movimiento.
  16. 16. Procedimiento segun cualquiera de las reivindicaciones 9 a 15, que comprende ademas la obtencion de dicho numero objetivo a partir de dicha secuencia de bits.
  17. 17. Procedimiento segun cualquiera de las reivindicaciones 9 a 16, que comprende la eliminacion de duplicados de dicho conjunto inicial (S604).
  18. 18. Dispositivo para codificar una secuencia de imagenes digitales en una secuencia de bits, estando, al menos, una porcion de la imagen codificada por compensacion del movimiento con respecto a una porcion de la imagen de referencia, comprendiendo el dispositivo:
    medios para obtener (S502; S602; S604), para una porcion de la imagen a codificar, un conjunto inicial de predictores de informacion del movimiento;
    medios para probar (S512, S606) si el numero (N; N1) de predictores de informacion del movimiento en dicho conjunto inicial es menor que un numero objetivo (Nmax) y, si es el caso, anadir (S608, S610) uno o varios predictores de informacion del movimiento a dicho conjunto inicial para generar un conjunto de predictores de informacion del movimiento diferentes entre si, de manera que se disponga una diversidad controlada y que se disponga un numero de predictores de informacion del movimiento igual al numero objetivo; y
    medios para seleccionar un predictor de informacion del movimiento para codificar la informacion del movimiento de dicha porcion de la imagen a codificar a partir del conjunto generado de predictores de informacion del movimiento, en el que los predictores de informacion del movimiento de dicho conjunto inicial son predictores reales de informacion del movimiento, que disponen de vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificacion o de una imagen de referencia, y los predictores de informacion del movimiento destinados a ser anadidos incluyen uno o varios predictores adicionales reales de informacion del movimiento de este tipo e incluyen igualmente uno o varios predictores virtuales de informacion del movimiento que no disponen de vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de codificacion o de una imagen de referencia; y caracterizado por que:
    la adicion de uno o varios predictores de informacion del movimiento a dicho conjunto inicial mediante medios para efectuar una prueba comprende: efectuar un primer proceso de adicion para anadir (S608, S610), a dicho conjunto inicial uno o varios predictores adicionales reales de informacion del movimiento para recuperar un segundo conjunto de predictores de informacion del movimiento; efectuar una segunda prueba (S628) para determinar si el numero (N2) de predictores de informacion del movimiento en dicho segundo conjunto es menor que dicho numero
    5
    10
    15
    20
    25
    30
    35
    objetivo (Nmax) y, si es el caso, efectuar un segundo proceso de adicion para anadir (S618-S626) uno o varios predictores virtuales de informacion del movimiento a dicho segundo conjunto.
  19. 19. Dispositivo para descodificar una secuencia de bits, que comprende una secuencia codificada de imagenes digitales, estando, al menos, una porcion de una imagen en proceso de codificacion, codificada por compensacion del movimiento con respecto a una imagen de referencia, comprendiendo el dispositivo:
    medios para obtener (S502; S602, S604), para una porcion de la imagen a descodificar, un conjunto inicial de predictores de informacion del movimiento;
    medios para probar (S512; S606) si el numero (N; N1) de predictores de informacion del movimiento en dicho conjunto inicial es menor que un numero objetivo (Nmax) y, si es el caso, anadir (S608, S610) uno o varios predictores de informacion del movimiento a dicho conjunto inicial para generar un conjunto de predictores de informacion del movimiento diferentes unos de otros, de manera que se disponga de una diversidad controlada y se disponga de un numero de predictores de informacion del movimiento igual al numero objetivo; y
    medios para determinar un predictor de informacion del movimiento para descodificar la informacion del movimiento de dicha porcion de la imagen a descodificar utilizando el conjunto generado de predictores de informacion del movimiento,
    en el que los predictores de informacion del movimiento de dicho conjunto inicial son predictores reales de informacion del movimiento, que disponen de vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de descodificacion o de una imagen de referencia, y los potenciales predictores de informacion del movimiento a anadir incluyen uno o varios predictores reales adicionales de informacion del movimiento de este tipo, e incluyen igualmente uno o varios predictores virtuales de informacion del movimiento que no disponen de vectores de movimiento obtenidos a partir de porciones de imagen de dicha imagen en proceso de descodificacion o de una imagen de referencia, y caracterizado por que la adicion de uno o varios predictores de informacion del movimiento a dicho conjunto inicial mediante los medios para efectuar una prueba comprende: efectuar un primer proceso de adicion para anadir (S608, S610) a dicho conjunto inicial, uno o varios predictores adicionales de informacion del movimiento, para recuperar un segundo conjunto de predictores de informacion del movimiento; efectuar una segunda prueba (S628) para determinar si el numero (N2) de predictores de informacion del movimiento en dicho segundo conjunto es menor que dicho numero objetivo (Nmax) y, si es el caso, efectuar un segundo proceso de adicion, para anadir (S618, S626) uno o varios predictores virtuales de informacion del movimiento a dicho segundo conjunto.
  20. 20. Programa informatico que, cuando es ejecutado en un ordenador, hace que el ordenador ponga en practica un procedimiento de codificacion de una senal digital de video segun cualquiera de las reivindicaciones 1 a 8, o un procedimiento de descodificacion de una secuencia de bits segun cualquiera de las reivindicaciones 9 a 17.
  21. 21. Medio de almacenamiento legible por ordenador que almacena un programa segun la reivindicacion 20.
ES12700128.7T 2011-01-12 2012-01-11 Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento Active ES2583407T3 (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/050389 WO2012095464A1 (en) 2011-01-12 2012-01-11 Video encoding and decoding with improved error resilience

Publications (1)

Publication Number Publication Date
ES2583407T3 true ES2583407T3 (es) 2016-09-20

Family

ID=43664110

Family Applications (7)

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

Family Applications Before (1)

Application Number Title Priority Date Filing Date
ES16197731T Active ES2835311T3 (es) 2011-01-12 2012-01-11 Codificación y descodificación de video con resiliencia mejorada frente a errores

Family Applications After (5)

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

Country Status (13)

Country Link
US (14) US11146792B2 (es)
EP (10) EP2666294B1 (es)
JP (12) JP5847843B2 (es)
KR (15) KR101953520B1 (es)
CN (17) CN106851308A (es)
BR (2) BR122019026393B1 (es)
ES (7) ES2835311T3 (es)
GB (3) GB2487200A (es)
HU (5) HUE046362T2 (es)
PL (5) PL3550841T3 (es)
RU (6) RU2556386C2 (es)
TR (1) TR201907405T4 (es)
WO (4) WO2012095465A1 (es)

Families Citing this family (29)

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

Family Cites Families (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1100461A (en) 1963-10-02 1968-01-24 Automatic Telephone & Elect Improvements in or relating to magnetic core matrix data storage devices
JP3265590B2 (ja) 1991-07-24 2002-03-11 松下電器産業株式会社 画像の動きベクトル検出装置及び画像揺れ補正装置
JPH0620050A (ja) * 1992-07-03 1994-01-28 Matsushita Electric Ind Co Ltd 動画像信号の復号化装置と推定動きベクトル算出方法
JPH0730896A (ja) 1993-06-25 1995-01-31 Matsushita Electric Ind Co Ltd 動きベクトル符号化及び復号化方法
US5552673A (en) 1994-10-04 1996-09-03 Kenwood; Michael Theft resistant compact fluorescent lighting system
US5675382A (en) * 1996-04-08 1997-10-07 Connectix Corporation Spatial compression and decompression for video
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
US6122320A (en) 1997-03-14 2000-09-19 Cselt-Centro Studi E Laboratori Telecomunicazioni S.P.A. Circuit for motion estimation in digitized video sequence encoders
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 日本電気株式会社 符号化復号システム
JP2001520846A (ja) 1998-02-13 2001-10-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビデオ画像を符号化する方法及び装置
JP3841132B2 (ja) 1998-06-01 2006-11-01 株式会社ソニー・コンピュータエンタテインメント 入力位置検出装置及びエンタテインメントシステム
CN1288641A (zh) * 1998-09-22 2001-03-21 松下电器产业株式会社 视频信号编码方法、视频信号编码装置及程序记录媒体
US7327791B1 (en) 1999-02-22 2008-02-05 Mitsubishi Denki Kabushiki Kaisha Video decoding method performing selective error concealment and resynchronization
US6738423B1 (en) * 2000-01-21 2004-05-18 Nokia Mobile Phones Ltd. Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder
US6552673B2 (en) 2000-02-25 2003-04-22 Texas Instruments Incorporated Efficient table access for reversible variable length code decoding using a hash function
EP1152621A1 (en) * 2000-05-05 2001-11-07 STMicroelectronics S.r.l. Motion estimation process and system.
US20050207663A1 (en) * 2001-07-31 2005-09-22 Weimin Zeng Searching method and system for best matching motion vector
US7787746B2 (en) 2001-10-23 2010-08-31 Thomson Licensing Fast motion trick mode using non-progressive dummy bidirectional predictive pictures
US20040125204A1 (en) 2002-12-27 2004-07-01 Yoshihisa Yamada Moving picture coding apparatus and moving picture decoding apparatus
US7248741B2 (en) 2002-01-09 2007-07-24 Hiroshi Akimoto Video sequences correlation and static analysis and scene changing forecasting in motion estimation
CN1897705A (zh) 2002-01-18 2007-01-17 株式会社东芝 视频编码方法和装置以及视频解码方法和装置
KR100492127B1 (ko) 2002-02-23 2005-06-01 삼성전자주식회사 적응형 움직임 추정장치 및 추정 방법
KR100474285B1 (ko) * 2002-04-08 2005-03-08 엘지전자 주식회사 모션벡터결정방법
ES2355656T3 (es) * 2002-04-18 2011-03-29 Kabushiki Kaisha Toshiba Procedimiento y aparato para decodificación de vídeo .
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
US7620106B2 (en) 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US8064520B2 (en) 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
CN1225127C (zh) * 2003-09-12 2005-10-26 中国科学院计算技术研究所 一种用于视频编码的编码端/解码端双向预测方法
CN100353768C (zh) 2003-11-26 2007-12-05 联发科技股份有限公司 在视频压缩系统中进行运动估测的方法及相关装置
MXPA06006117A (es) 2003-12-01 2006-08-11 Samsung Electronics Co Ltd Metodo y aparato de codificacion y decodificacion escalables de video.
KR101177663B1 (ko) 2004-02-27 2012-09-07 티디비전 코포레이션 에스.에이. 데 씨.브이. 입체적 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
KR100943591B1 (ko) 2004-07-20 2010-02-24 콸콤 인코포레이티드 움직임 벡터 처리를 위한 방법 및 장치
CN101005620B (zh) 2004-09-03 2011-08-10 微软公司 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新
CN1256686C (zh) 2004-09-15 2006-05-17 哈尔滨工业大学 一种运动估计方法和应用该方法的运动估计电路
JP4746550B2 (ja) * 2004-09-22 2011-08-10 パナソニック株式会社 画像符号化装置
KR100679022B1 (ko) * 2004-10-18 2007-02-05 삼성전자주식회사 계층간 필터링을 이용한 비디오 코딩 및 디코딩방법과,비디오 인코더 및 디코더
US20060153300A1 (en) * 2005-01-12 2006-07-13 Nokia Corporation Method and system for motion vector prediction in scalable video coding
EP1703736A1 (en) 2005-03-14 2006-09-20 BRITISH TELECOMMUNICATIONS public limited company Global motion estimation
US20080310510A1 (en) 2005-03-22 2008-12-18 Mitsubishi Electric Corporation Image Coding, Recording and Reading Apparatus
KR100736041B1 (ko) 2005-06-30 2007-07-06 삼성전자주식회사 에러 은닉 방법 및 장치
RU2368095C1 (ru) 2005-07-22 2009-09-20 Мицубиси Электрик Корпорейшн Кодер изображения и декодер изображения, способ кодирования изображения и способ декодирования изображения, программа кодирования изображения и программа декодирования изображения и компьютерно-считываемый носитель записи, на котором записана программа кодирования изображения, и компьютерно-считываемый носитель записи, на котором записана программа декодирования изображения
JP2007067731A (ja) * 2005-08-30 2007-03-15 Sanyo Electric Co Ltd 符号化方法
JP2007074592A (ja) 2005-09-09 2007-03-22 Sony Corp 画像処理装置および方法、プログラム、並びに記録媒体
KR100712532B1 (ko) 2005-09-10 2007-04-30 삼성전자주식회사 단일표현과 다중표현 전환을 이용한 동영상 변환부호화장치 및 방법
US7620108B2 (en) 2005-09-16 2009-11-17 Sony Corporation Integrated spatial-temporal prediction
US20070064805A1 (en) 2005-09-16 2007-03-22 Sony Corporation Motion vector selection
US8165205B2 (en) 2005-09-16 2012-04-24 Sony Corporation Natural shaped regions for motion compensation
US8879857B2 (en) 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
JP2007097028A (ja) * 2005-09-30 2007-04-12 Oki Electric Ind Co Ltd 動きベクトル検出方法および動きベクトル検出回路
US8325822B2 (en) 2006-01-20 2012-12-04 Qualcomm Incorporated Method and apparatus for determining an encoding method based on a distortion value related to error concealment
JP5004150B2 (ja) 2006-02-24 2012-08-22 Kddi株式会社 画像符号化装置
US8320450B2 (en) 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
JP5188033B2 (ja) 2006-04-24 2013-04-24 株式会社日立製作所 記録再生装置、送出装置及び伝送システム。
CN101064849A (zh) 2006-04-29 2007-10-31 鲁海宁 动态图像编码方法、装置和计算机可读记录介质
US20080002770A1 (en) 2006-06-30 2008-01-03 Nokia Corporation Methods, apparatus, and a computer program product for providing a fast inter mode decision for video encoding in resource constrained devices
CN100576919C (zh) 2006-08-08 2009-12-30 佳能株式会社 运动矢量检测设备及运动矢量检测方法
DE102006043707A1 (de) * 2006-09-18 2008-03-27 Robert Bosch Gmbh Verfahren zur Datenkompression in einer Videosequenz
CN101155311B (zh) 2006-09-27 2012-09-05 中兴通讯股份有限公司 一种视频通信中的视频码流错误检测和处理方法
KR101383540B1 (ko) 2007-01-03 2014-04-09 삼성전자주식회사 복수의 움직임 벡터 프리딕터들을 사용하여 움직임 벡터를추정하는 방법, 장치, 인코더, 디코더 및 복호화 방법
JP5026092B2 (ja) 2007-01-12 2012-09-12 三菱電機株式会社 動画像復号装置および動画像復号方法
JP2008193627A (ja) 2007-01-12 2008-08-21 Mitsubishi Electric Corp 画像符号化装置、画像復号装置、および画像符号化方法、画像復号方法
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的运动矢量预测流水并行设计方法
EP2266318B1 (en) * 2008-03-19 2020-04-22 Nokia Technologies Oy Combined motion vector and reference index prediction for video coding
CN101252422B (zh) 2008-03-20 2013-06-05 中兴通讯股份有限公司 物理混合重传指示信道的分配方法
JP4990927B2 (ja) 2008-03-28 2012-08-01 三星電子株式会社 動きベクトル情報の符号化/復号化方法及び装置
US20090268821A1 (en) * 2008-04-29 2009-10-29 The Hong Kong University Of Science And Technology Block parallel and fast motion estimation in video coding
JP2010028221A (ja) 2008-07-15 2010-02-04 Sony Corp 動きベクトル検出装置、動きベクトル検出方法、画像符号化装置及びプログラム
US20100020877A1 (en) * 2008-07-23 2010-01-28 The Hong Kong University Of Science And Technology Multiple reference frame motion estimation in video coding
CN101350927B (zh) 2008-07-29 2011-07-13 北京中星微电子有限公司 帧内预测选择最优预测模式的方法及装置
JP5422168B2 (ja) * 2008-09-29 2014-02-19 株式会社日立製作所 動画像符号化方法および動画像復号化方法
JP5401071B2 (ja) 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
EP2351373B1 (fr) 2008-10-14 2018-07-04 Orange Codage et decodage avec elimination d'un ou plusieurs predicteurs predetermines
WO2010067505A1 (ja) 2008-12-08 2010-06-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
US8891628B2 (en) * 2009-06-19 2014-11-18 France Telecom Methods for encoding and decoding a signal of images, corresponding encoding and decoding devices, signal and computer programs
CN102883160B (zh) * 2009-06-26 2016-06-29 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
KR20110008653A (ko) 2009-07-20 2011-01-27 삼성전자주식회사 움직임 벡터 예측 방법과 이를 이용한 영상 부호화/복호화 장치 및 방법
US9060176B2 (en) 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
US20110090965A1 (en) 2009-10-21 2011-04-21 Hong Kong Applied Science and Technology Research Institute Company Limited Generation of Synchronized Bidirectional Frames and Uses Thereof
CN101860754B (zh) * 2009-12-16 2013-11-13 香港应用科技研究院有限公司 运动矢量编码和解码的方法和装置
CN101777963B (zh) 2009-12-29 2013-12-11 电子科技大学 一种基于反馈模式的帧级别编码与译码方法
US9036692B2 (en) 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
EP2532159A1 (en) * 2010-02-05 2012-12-12 Telefonaktiebolaget L M Ericsson (PUBL) Selecting predicted motion vector candidates
CN101931821B (zh) 2010-07-21 2014-12-10 中兴通讯股份有限公司 一种视频传输的差错控制方法及系统
US8736767B2 (en) 2010-09-29 2014-05-27 Sharp Laboratories Of America, Inc. Efficient motion vector field estimation
US10104391B2 (en) 2010-10-01 2018-10-16 Dolby International Ab System for nested entropy encoding
US20120082228A1 (en) * 2010-10-01 2012-04-05 Yeping Su 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
CN106851310A (zh) 2017-06-13
WO2012095466A1 (en) 2012-07-19
WO2012095465A1 (en) 2012-07-19
KR20190044128A (ko) 2019-04-29
CN107454399A (zh) 2017-12-08
KR101798280B1 (ko) 2017-11-15
US20190098313A1 (en) 2019-03-28
KR101999091B1 (ko) 2019-07-10
JP2017143556A (ja) 2017-08-17
RU2015120774A (ru) 2015-11-20
KR20180030223A (ko) 2018-03-21
CN106851309A (zh) 2017-06-13
JP2014503157A (ja) 2014-02-06
EP3598756B1 (en) 2021-03-10
JP6779954B2 (ja) 2020-11-04
KR20150006021A (ko) 2015-01-15
JP5847844B2 (ja) 2016-01-27
KR20190014111A (ko) 2019-02-11
JP6165219B2 (ja) 2017-07-19
WO2013041244A1 (en) 2013-03-28
JP2018026826A (ja) 2018-02-15
KR102019640B1 (ko) 2019-09-06
JP5847845B2 (ja) 2016-01-27
CN106851308A (zh) 2017-06-13
GB2487261A (en) 2012-07-18
CN106210734B (zh) 2020-01-14
JP2019024241A (ja) 2019-02-14
BR112013016702B1 (pt) 2022-08-16
EP2664142B1 (en) 2016-12-28
EP3070944B1 (en) 2019-04-03
CN103314585A (zh) 2013-09-18
JP5847843B2 (ja) 2016-01-27
KR20130119467A (ko) 2013-10-31
KR20170128610A (ko) 2017-11-22
EP2666294B1 (en) 2016-05-18
RU2709158C1 (ru) 2019-12-16
BR122019026393B1 (pt) 2022-05-24
JP2014506439A (ja) 2014-03-13
US20180242000A1 (en) 2018-08-23
CN107454398B (zh) 2020-03-03
RU2762933C2 (ru) 2021-12-24
KR101944289B1 (ko) 2019-01-31
RU2016136342A3 (es) 2018-03-15
KR101953520B1 (ko) 2019-02-28
EP3244613A1 (en) 2017-11-15
KR20130119468A (ko) 2013-10-31
RU2013137437A (ru) 2015-02-20
ES2753760T3 (es) 2020-04-14
EP3550841B1 (en) 2020-10-07
EP3550841A1 (en) 2019-10-09
US9386312B2 (en) 2016-07-05
RU2600530C2 (ru) 2016-10-20
US20160277744A1 (en) 2016-09-22
US9979968B2 (en) 2018-05-22
GB201100462D0 (en) 2011-02-23
RU2019137968A (ru) 2021-05-25
HUE049745T2 (hu) 2020-10-28
PL3518544T3 (pl) 2020-07-13
US20180241999A1 (en) 2018-08-23
KR20170128614A (ko) 2017-11-22
JP6513154B2 (ja) 2019-05-15
CN106210734A (zh) 2016-12-07
CN107105272A (zh) 2017-08-29
CN103329528B (zh) 2016-12-21
GB2487200A (en) 2012-07-18
HUE046362T2 (hu) 2020-03-30
KR20190021492A (ko) 2019-03-05
JP2014506440A (ja) 2014-03-13
KR101837803B1 (ko) 2018-03-12
PL3174297T3 (pl) 2021-03-08
CN107454398A (zh) 2017-12-08
JP2014503158A (ja) 2014-02-06
US20180316921A1 (en) 2018-11-01
JP2016054538A (ja) 2016-04-14
US20180352236A1 (en) 2018-12-06
GB201104032D0 (en) 2011-04-20
CN103314593B (zh) 2016-12-21
CN107529063A (zh) 2017-12-29
ES2835311T3 (es) 2021-06-22
JP6120900B2 (ja) 2017-04-26
HUE052346T2 (hu) 2021-04-28
KR101524394B1 (ko) 2015-05-29
KR101525341B1 (ko) 2015-06-02
CN107454423A (zh) 2017-12-08
EP3518544B1 (en) 2020-03-11
WO2012095464A1 (en) 2012-07-19
US10499060B2 (en) 2019-12-03
CN107105285A (zh) 2017-08-29
KR20150006014A (ko) 2015-01-15
US20130287112A1 (en) 2013-10-31
KR20180123186A (ko) 2018-11-14
US20130294521A1 (en) 2013-11-07
KR20150006015A (ko) 2015-01-15
EP3598756A1 (en) 2020-01-22
PL3070944T3 (pl) 2019-09-30
ES2726048T3 (es) 2019-10-01
EP3244613B1 (en) 2019-09-25
US20130287113A1 (en) 2013-10-31
US20130279596A1 (en) 2013-10-24
JP6545318B2 (ja) 2019-07-17
EP3070944A1 (en) 2016-09-21
KR20130105906A (ko) 2013-09-26
CN103314586B (zh) 2017-09-22
EP2664145A1 (en) 2013-11-20
CN106851307A (zh) 2017-06-13
CN103314586A (zh) 2013-09-18
EP3518544A1 (en) 2019-07-31
JP6336170B2 (ja) 2018-06-06
US20180242001A1 (en) 2018-08-23
RU2016136342A (ru) 2018-03-15
GB2487253A (en) 2012-07-18
KR101797805B1 (ko) 2017-11-14
ES2834135T3 (es) 2021-06-16
ES2615828T3 (es) 2017-06-08
ES2786998T3 (es) 2020-10-14
RU2556386C2 (ru) 2015-07-10
KR101943787B1 (ko) 2019-01-29
CN107529063B (zh) 2020-03-31
EP3174297A1 (en) 2017-05-31
EP3174297B1 (en) 2020-10-21
CN107483958A (zh) 2017-12-15
CN103329528A (zh) 2013-09-25
TR201907405T4 (tr) 2019-06-21
KR101918437B1 (ko) 2018-11-13
HUE052669T2 (hu) 2021-05-28
CN103314593A (zh) 2013-09-18
KR20170128613A (ko) 2017-11-22
US10165279B2 (en) 2018-12-25
BR112013016702A2 (pt) 2016-10-04
EP2666294A1 (en) 2013-11-27
US20190098314A1 (en) 2019-03-28
US11146792B2 (en) 2021-10-12
HUE043611T2 (hu) 2019-08-28
RU2019137968A3 (es) 2021-05-25
JP2017201802A (ja) 2017-11-09
EP2664142A1 (en) 2013-11-20
PL3550841T3 (pl) 2021-04-06
US20210144385A1 (en) 2021-05-13
RU2651181C2 (ru) 2018-04-18
JP2015164322A (ja) 2015-09-10
KR101524393B1 (ko) 2015-05-29
KR101972030B1 (ko) 2019-04-24
US10609380B2 (en) 2020-03-31
US10506236B2 (en) 2019-12-10
JP2018152878A (ja) 2018-09-27
JP2016054539A (ja) 2016-04-14
KR20130105907A (ko) 2013-09-26
JP6207576B2 (ja) 2017-10-04
US20190098315A1 (en) 2019-03-28
RU2688252C1 (ru) 2019-05-21
GB201111866D0 (en) 2011-08-24
CN107105284A (zh) 2017-08-29
PL3244613T3 (pl) 2020-02-28
EP2664152A1 (en) 2013-11-20
CN107483958B (zh) 2020-03-03

Similar Documents

Publication Publication Date Title
ES2583407T3 (es) Codificación y descodificación de video con una mejora de la diversidad de los vectores de movimiento
ES2727629T3 (es) Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
ES2929824T3 (es) Método de decodificación bipredictiva de imágenes
KR20170125086A (ko) 화상 예측 방법 및 관련 장치
WO2012095467A1 (en) Video encoding and decoding with low complexity
JP2016519518A5 (es)
US20180227592A1 (en) Motion picture encoding device, motion picture encoding method, and storage medium storing motion picture encoding program