ES2875926T3 - Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes - Google Patents

Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes Download PDF

Info

Publication number
ES2875926T3
ES2875926T3 ES18201066T ES18201066T ES2875926T3 ES 2875926 T3 ES2875926 T3 ES 2875926T3 ES 18201066 T ES18201066 T ES 18201066T ES 18201066 T ES18201066 T ES 18201066T ES 2875926 T3 ES2875926 T3 ES 2875926T3
Authority
ES
Spain
Prior art keywords
motion information
predictor
candidates
processing
predictors
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
ES18201066T
Other languages
English (en)
Inventor
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 ES2875926T3 publication Critical patent/ES2875926T3/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/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/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/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

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

Abstract

Procedimiento implementado por ordenador para obtener, por lo menos, un predictor de información del movimiento para la codificación o la descodificación de una porción de una imagen mediante compensación del movimiento con respecto a, por lo menos, una porción de la imagen de referencia, en el que para codificar o descodificar dicha porción de la imagen, el procedimiento comprende: proporcionar para el procesamiento, uno o varios candidatos de primer predictor de información del movimiento que comprenden, por lo menos, un candidato de predictor temporal de información del movimiento, y candidatos de segundo predictor de información del movimiento que comprenden, por lo menos, un candidato de predictor espacial de información del movimiento, y excluyendo cualquier candidato de predictor temporal de información del movimiento, en el que, por lo menos, uno de dichos candidatos de segundo predictor de información del movimiento comprende información del movimiento de un bloque superior con respecto a la porción de la imagen que se va a codificar o descodificar en el caso de que la información del movimiento del bloque superior esté disponible; procesar (808, 809) uno o varios candidatos de primer predictor de información del movimiento, comprendiendo dicho procesamiento escalar dichos uno o varios candidatos de primer predictor de información del movimiento; procesar (808, 815, 817) los candidatos de segundo predictor de información del movimiento; y obtener (819), en base a los candidatos de predictor de información del movimiento (818, 814) resultantes del procesamiento de uno o varios candidatos de primer predictor de información del movimiento y del procesamiento del segundo candidato de predictor de información del movimiento, un conjunto (820) de candidatos de predictor de información del movimiento que se puede utilizar para predecir dicha porción de imagen a partir de la porción de imagen de referencia, comprendiendo dicha obtención suprimir duplicados de candidatos de predictor de información del movimiento; en el que el procesamiento de los candidatos de segundo predictor de información del movimiento comprende excluir uno o varios duplicados de entre los segundos candidatos de predictor de información del movimiento, en el caso de que uno o varios de los segundos candidatos de predictor de información del movimiento sean iguales (816) y generen (717, 817) uno o varios candidatos de predictor de información del movimiento adicionales en función de uno o varios de los candidatos de segundo predictor de información del movimiento de los que se han excluido uno o varios duplicados.

Description

DESCRIPCIÓN
Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
La presente invención se refiere a un procedimiento y un dispositivo para codificar una secuencia de imágenes digitales, y a un procedimiento y a un dispositivo para descodificar una secuencia de bits correspondiente. La invención se refiere, además, a un procedimiento y un dispositivo para obtener información del movimiento, que incluye, por lo menos, un predictor de información del movimiento para predecir una porción de imagen de una imagen predicha mediante compensación del movimiento con respecto a, por lo menos, una porción de imagen de referencia.
La invención puede ser aplicada en el segmento del procesamiento de señales digitales y, en concreto, en el segmento de la compresión de video utilizando compensación del movimiento para reducir las redundancias espaciales y temporales en flujos de video. La invención está definida por las reivindicaciones adjuntas.
Muchos formatos de compresión de video, tales como, por ejemplo, H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, utilizan la transformada discreta del coseno (DCT, Discrete Cosine Transform) basada en bloques y la compensación del movimiento para eliminar redundancias espaciales y temporales. Se pueden denominar formatos predictivos de video. Cada fotograma o imagen de la señal de video está dividido en segmentos que están codificados y pueden ser descodificados de manera independiente. Un segmento es habitualmente una porción rectangular del fotograma o, de manera más general, una porción de un fotograma o un fotograma completo. Además, cada segmento está dividido en macrobloques (MBs), y cada macrobloque está dividido además en bloques, habitualmente bloques de 8x8 píxeles. Los fotogramas codificados son de dos tipos: fotogramas temporales vaticinados (ya sea vaticinados a partir de un fotograma de referencia denominado fotograma P o vaticinados a partir de dos fotogramas de referencia denominados fotogramas B) y fotogramas no temporales vaticinados (denominados Intra fotogramas o fotogramas I).
La predicción temporal consiste en encontrar en un fotograma de referencia, ya sea un fotograma anterior o un fotograma futuro de la secuencia de video, una porción de imagen o una zona de referencia que sea la más cercana al bloque a codificar. Esta etapa se conoce habitualmente como estimación del movimiento. A continuación, el bloque es vaticinado utilizando la zona de referencia en una etapa que habitualmente se denomina compensación del movimiento - la diferencia entre el bloque a codificar y la porción de referencia es codificada, junto con un elemento de información del movimiento relativo al vector de movimiento que indica la zona de referencia que se debe utilizar para la compensación del movimiento. En INTRA predicción, se codifica una dirección de predicción. Para reducir más el coste de la codificación de la información del movimiento, se puede codificar un vector de movimiento en términos de una diferencia entre el vector de movimiento y un predictor del vector de movimiento, que, en general, se calcula a partir de uno o varios 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 un entorno causal con el bloque a codificar, por ejemplo, de los bloques situados encima y a la izquierda del bloque a codificar. Se codifica la diferencia, también llamada vector de movimiento residual, entre el predictor medio y el vector de movimiento del bloque actual para reducir el coste de la codificación.
La codificación utilizando vectores de movimiento residuales ahorra tasa de bits, pero requiere que el descodificador efectúe el mismo cálculo del predictor del vector de movimiento para descodificar el valor del vector de movimiento de un bloque a descodificar.
Recientemente, se han propuesto otras mejoras en la eficiencia de la codificación, tales como la utilización de una serie de posibles predictores del vector de movimiento. Este procedimiento, a menudo denominado competición de vectores de movimiento (MVCOMP, Motion Vector COMPetition), consiste en la determinación de entre varios predictores del vector de movimiento o candidatos qué predictor del vector de movimiento minimiza el coste de la codificación, habitualmente un coste de distorsión de la velocidad, de la información residual del movimiento. La información residual del movimiento comprende el vector de movimiento residual, es decir, la diferencia entre el vector de movimiento real del bloque a codificar y el predictor del vector de movimiento seleccionado, y un elemento de información que indica el predictor del vector de movimiento seleccionado, tal como, por ejemplo, un valor codificado del índice del predictor del vector de movimiento seleccionado. El índice del predictor del vector de movimiento seleccionado es codificado en la secuencia de bits con un código máximo unitario basado en un tamaño de lista fijo.
En la codificación de video de alta eficiencia (HEVC, High Efficiency Video Coding), se ha propuesto una nueva implementación del mismo concepto para permitir la selección del mejor predictor, a partir de un conjunto dado de predictores compuesto por vectores de movimiento espaciales y vectores de movimiento temporales. Esta técnica se conoce como predicción avanzada de vectores de movimiento (AMVP, Advanced Motion Vector Predictor). Si algunos predictores de entre estos predictores del conjunto dado son duplicados de otros predictores en el conjunto, los duplicados pueden ser eliminados y se pueden añadir otros predictores al conjunto para crear un segundo conjunto de predictores nuevo. Los predictores añadidos pueden ser una combinación de los predictores espaciales y temporales que ya están en el conjunto, otros predictores obtenidos a partir de estos predictores espaciales y temporales, o predictores con valores fijos. Finalmente, los predictores duplicados del segundo conjunto de predictores son eliminados para obtener candidatos no redundantes en el segundo conjunto de predictores.
El segundo conjunto de predictores generado aumenta significativamente la complejidad de cálculo del proceso de obtención. El aumento de la complejidad de cálculo resulta de la generación de predictores en cascada.
La implementación actual de HEVC utiliza un conjunto de predictores del vector de movimiento que contienen como máximo 2 predictores para el modo Inter y como máximo 5 predictores para el modo de Fusión y Salto (Merge Skip) y el modo de Fusión (Merge).
La Patente XP030009013 sirve como fuente de información tutorial general sobre HEVC. En el diseño actual de HEVC, la Inter predicción puede ser unidireccional o bidireccional. Unidireccional se refiere a un bloque de predictor que se utiliza para predecir el bloque actual. El bloque de un predictor está definido por un índice de la lista, un índice del fotograma de referencia y un vector de movimiento. El índice de la lista corresponde a una lista de fotogramas de referencia. Se puede considerar, por ejemplo, que se utilizan dos listas: L0 y L1. Una lista contiene, por lo menos, un fotograma de referencia, y un fotograma de referencia puede estar incluido en ambas listas. Un vector de movimiento tiene dos componentes: horizontal y vertical. El vector de movimiento corresponde a la compensación espacial en términos de píxeles entre el bloque actual y el bloque del predictor temporal en el fotograma de referencia. De este modo, el predictor del bloque para la predicción unidireccional es el bloque del fotograma de referencia (índice de referencia) de la lista, señalado por el vector de movimiento.
Para la Inter predicción bidireccional se consideran dos predictores de bloque. Uno para cada lista (L0 y L1). En consecuencia, se consideran 2 índices de fotogramas de referencia y 2 vectores de movimiento. El predictor de bloque Inter para predicción bidireccional es la media, píxel a píxel, de los dos bloques señalados por estos dos vectores de movimiento.
La información del movimiento dedicada al predictor de bloque Inter se puede definir mediante los siguientes parámetros:
• Tipo de dirección: unidireccional o bidireccional
• Una lista (unidireccional) o dos listas (bidireccional): L0, L1, L0 y L1.
• Uno (unidireccional) o dos índices de fotogramas de referencia (bidireccional): RefL0, RefL1, (RefL0, RefL1). • Uno (unidireccional) o dos (bidireccional) vectores de movimiento: cada vector de movimiento tiene dos componentes (horizontal, mvx y vertical, mvy).
Se puede observar que el predictor Inter bidireccional solo se puede utilizar para un tipo de segmento de tipo B. La Inter predicción en segmentos B puede ser unidireccional o bidireccional. En segmentos P, la Inter predicción es solo unidireccional.
El diseño actual de HEVC utiliza 3 modos Inter diferentes: un modo Inter, un modo de Fusión y un modo de Fusión y Salto. La principal diferencia entre estos modos es la señalización de datos en la secuencia de bits.
En el modo Inter, todos los datos se señalizan explícitamente. Esto significa que la textura residual es codificada e introducida en la secuencia de bits (la textura residual es la diferencia entre el bloque actual y el bloque de Inter predicción). Para la información del movimiento, todos los datos son codificados. De este modo, el tipo de dirección es codificado (unidireccional o bidireccional). El índice de la lista, si es necesario, también es codificado e introducido en la secuencia de bits. Los índices de fotograma de referencia relacionados son codificados explícitamente e introducidos en la secuencia de bits. El valor del vector de movimiento es vaticinado por el predictor del vector de movimiento seleccionado. El residuo del vector de movimiento para cada componente es codificado e introducido en la secuencia de bits seguido por el índice del predictor.
En el modo de fusión, la textura residual y el índice del predictor son codificados e introducidos en la secuencia de bits. Un residuo del vector de movimiento, el tipo de dirección, la lista o el índice del fotograma de referencia no se codifican. Estos parámetros de movimiento se obtienen a partir del índice del predictor. Por lo tanto, el predictor es el predictor de todos los datos de la información del movimiento.
En el modo de Fusión y Salto, no se transmite ninguna información al lado del descodificador, excepto el “modo” y el índice del predictor. En este modo, el procesamiento es similar al modo de fusión, excepto por que no se codifica ni transmite ningún residuo de textura. Los valores de píxel de un bloque de Fusión y Salto son los valores de píxel del predictor del bloque.
En el conjunto de predictores de información del movimiento representados en la figura 1, dos vectores de movimiento espaciales del modo Inter son elegidos de entre esos bloques, en el fotograma N, que están encima y a la izquierda del bloque a codificar, incluidos los bloques de esquina superiores y el bloque de esquina izquierdo. El predictor izquierdo se selecciona de entre los bloques “inferior izquierdo” e “izquierdo”. Las siguientes condiciones son evaluadas en el orden especificado hasta que se encuentra un valor del vector de movimiento:
1. El vector de movimiento de la misma lista de referencia y la misma imagen de referencia
2. El vector de movimiento de la otra lista de referencia y la misma imagen de referencia
3. El vector de movimiento escalado de la misma lista de referencia y una imagen de referencia diferente 4. El vector de movimiento escalado de la otra lista de referencia y una imagen de referencia diferente Si no se encuentra ningún valor, se considera que el predictor izquierdo no está disponible. En este caso, indica que los bloques relacionados se codificaron en modo Intra o que esos bloques no existen. El predictor superior se selecciona de entre “superior derecho”, “superior” y “superior izquierdo” en este orden específico, con las mismas condiciones descritas anteriormente.
El predictor del movimiento temporal proviene del fotograma de referencia más cercano en la configuración de bajo retardo. En el caso de los fotogramas B, se consideran 2 vectores de movimiento para el bloque situado en la misma posición en el fotograma N-1. Uno está en la primera lista “L0” y uno está en la segunda lista “L1”. Si ambos vectores de movimiento existen, se selecciona el vector de movimiento que tiene la distancia temporal más corta. Si ambos predictores del vector de movimiento tienen la misma distancia temporal, se selecciona el movimiento de la primera lista “L0”. El vector de movimiento seleccionado situado en la misma posición es escalado a continuación, si es necesario, según su distancia temporal y la distancia temporal del vector de movimiento codificado. Si no existe ningún predictor situado en la misma posición, el predictor se considera no disponible.
Para la codificación de fotogramas B jerárquicos, se pueden considerar 2 vectores de movimiento situados en la misma posición. Ambos provienen del fotograma de referencia futuro. Se selecciona el vector de movimiento que cruza el fotograma actual. Si ambos predictores cruzan el fotograma actual, se selecciona el vector de movimiento que tiene la distancia temporal más corta. Si ambos predictores tienen la misma distancia temporal, entonces se selecciona el movimiento de la primera lista “L0”. El vector de movimiento seleccionado situado en la misma posición es escalado a continuación, si es necesario, según su distancia temporal y la distancia temporal del vector de movimiento codificado. Si no existe ningún predictor situado en la misma posición, el predictor se considera no disponible.
Para el caso de bajo retardo y el caso jerárquico, cuando el bloque situado en la misma posición está dividido en una serie de particiones (potencialmente, el bloque situado en la misma posición contiene una serie de vectores de movimiento), la partición seleccionada es la partición central superior izquierda. Además, el predictor temporal es el vector de movimiento del bloque en la posición inferior derecha del bloque situado en la misma posición (posición H en la figura 1). Si este bloque no existe o si está Intra codificado, el bloque en la posición central del bloque situado en la misma posición se selecciona como el vector de movimiento que será obtenido.
El valor del predictor del movimiento se añade a continuación al conjunto de predictores.
Finalmente, se aplica el proceso de supresión. Este consiste en eliminar predictores duplicados del conjunto de predictores del vector de movimiento seleccionados. Al final de este proceso, el conjunto contiene predictores del vector de movimiento no duplicados. Este conjunto puede contener 1, 2, 3 o 4 predictores. En el diseño actual, la lista de predictores es fija, para limitar el tamaño de la lista a 2. En consecuencia, el predictor seleccionado se codifica con un bit. Por lo tanto, si el número de predictores en la lista es 3 o 4, se elimina el último predictor o, respectivamente, los 2 últimos predictores.
Un predictor de modos de Fusión (“clásico” o Salto) representa toda la información del movimiento: dirección, lista, índice de fotograma de referencia y vectores de movimiento. El índice del predictor está codificado con un código máximo unitario tal como se muestra en la tabla 1.
Tabla 1
Figure imgf000005_0001
El tamaño de la lista se fija en 5 para todos los bloques de Fusión o los bloques de Fusión y Salto en el diseño de HEVC actual.
La figura 2 es un diagrama de flujo de un ejemplo de un proceso de obtención del vector de movimiento para los modos de Fusión de Inter predicción (Fusión y Salto, y Fusión tienen el mismo proceso de obtención del predictor del vector de movimiento). El procedimiento se aplica para obtener un conjunto de potenciales predictores de la información del movimiento para la codificación de una porción de imagen de una imagen con respecto a una porción de la imagen de referencia. En la primera etapa de la obtención, se consideran 7 posiciones de bloque (601 a 607). Estas posiciones son las posiciones espaciales y temporales representadas en la figura 1 (cada posición está marcada de la misma manera en ambas figuras). El módulo 608 verifica la disponibilidad de estos vectores de movimiento y selecciona como máximo 5 vectores de movimiento. Este módulo que implementa la etapa 608 determina que un predictor está disponible si existe y si el bloque no está Intra codificado. La selección y la verificación de los 5 vectores de movimiento seleccionados son ejecutadas según las siguientes condiciones:
• Si el vector de movimiento “izquierdo” (601) está disponible (es decir, si existe y si este bloque no está Intra codificado), el vector de movimiento del bloque “izquierdo” es seleccionado y utilizado como el predictor 1 (610). • Si el vector de movimiento “superior” (602) está disponible, el vector de movimiento del bloque “superior” es seleccionado y utilizado como el predictor 2 (611).
• Si el vector de movimiento “superior derecho” (603) está disponible, el vector de movimiento del bloque “superior derecho” es seleccionado y utilizado como el predictor 3 (612).
• Si el vector de movimiento “inferior izquierdo” (604) está disponible, el vector de movimiento del bloque “inferior izquierdo” es seleccionado y utilizado como el predictor 4 (613).
• Si uno (o más) de los predictores anteriores no está disponible y si el vector de movimiento “superior izquierdo” (605) está disponible, el vector de movimiento del bloque “superior izquierdo” es añadido al conjunto de predictores del vector de movimiento después del predictor espacial añadido.
• Si el vector de movimiento “H” está disponible, el vector de movimiento del bloque “H” es seleccionado y utilizado como el predictor 5 (614). Si el bloque “H” no está disponible, la disponibilidad del vector de movimiento “situado en la misma posición” (es decir, el vector de movimiento del bloque en la misma posición en el fotograma de referencia que el bloque actual en el fotograma actual) es verificada y, si existe, es utilizado como el predictor temporal. La verificación de disponibilidad realizada por el módulo 608 requiere 1 ciclo.
El predictor temporal debe ser escalado si es necesario. De hecho, para el vector de movimiento temporal, la dirección y el índice del fotograma de referencia no dependen del bloque H o del bloque situado en la misma posición, sino de los datos del segmento actual. Si el bloque actual está en un segmento B, el predictor temporal es siempre bidireccional y siempre unidireccional para los segmentos P. Los índices de los fotogramas de referencia para cada lista de fotogramas de referencia (L0, L1) se obtienen a partir del predictor izquierdo y del predictor superior. Si, para una lista, ninguno de los bloques izquierdo y superior tiene índice de fotograma de referencia, el índice del fotograma de referencia para el predictor temporal se configura en cero.
Puesto que el índice del fotograma de referencia para el predictor temporal no depende del índice del fotograma de referencia del bloque “H” o “situado en la misma posición” sino del fotograma de referencia del predictor superior izquierdo, su valor del vector de movimiento debe ser escalado. Esto significa que, si la distancia temporal cubierta por el vector de movimiento temporal es diferente a la diferencia entre el fotograma actual y el fotograma de referencia del predictor, el vector de movimiento temporal se escala para cubrir la distancia temporal correcta.
Al final de los módulos 608 y 609, el conjunto de predictores contiene como máximo 5 predictores (610 a 614). A continuación, se aplica un proceso de supresión 615 para eliminar candidatos duplicados del conjunto de predictores. Este proceso consiste en comparar cada predictor del conjunto con todos los demás predictores en el mismo conjunto y eliminar aquellos predictores que son iguales a otro predictor en el conjunto (manteniendo el otro predictor del cual el candidato duplicado es un duplicado en el conjunto), de tal manera que no haya duplicados entre los predictores en el conjunto. El proceso de supresión para los segmentos P tiene en cuenta los valores de los vectores de movimiento y sus índices de los fotogramas de referencia. En consecuencia, las dos componentes de un vector de movimiento y su índice de referencia son comparados con todos los demás y, solo si estos tres valores son iguales, el predictor es eliminado del conjunto. Para un fotograma B, este criterio se extiende a la dirección y a las listas. De este modo, un predictor se considera un predictor duplicado si utiliza la misma dirección, las mismas listas (L0, L1, o L0 y L1), los índices de los fotogramas de referencia y el mismo valor de los vectores de movimiento (MV_L0 y MV_L1 para la predicción bidireccional). El proceso de supresión dura 1 ciclo cuando es necesario comparar 5 predictores como máximo. De hecho, se puede considerar que se pueden calcular 12 comparaciones en 1 ciclo. El número de comparaciones para el proceso de supresión en el caso más complejo es igual a la suma de 0 a N-1. En consecuencia, para 5 predictores se necesitan 10 comparaciones (es decir, 4+3+2+1=10).
Al final de este proceso de supresión 615, se genera 616 un conjunto reducido de predictores.
A continuación, un módulo de generación de vectores de movimiento 617 genera nuevos candidatos basados en el conjunto reducido de predictores del vector de movimiento. Este procesamiento habitualmente puede tardar, por lo menos, un ciclo. Cabe señalar que en el diseño actual de HEVC, el esquema utilizado puede producir un máximo de 20 predictores en el caso más complejo. Este módulo 617 produce un segundo conjunto de predictores 618.
El segundo conjunto de predictores 618 es añadido al conjunto reducido de predictores 616 y el proceso de supresión se aplica para eliminar los candidatos duplicados de este segundo conjunto de predictores en comparación con los conjuntos reducidos y con los segundos conjuntos. Este proceso de supresión es similar al proceso de supresión del módulo 615. Sin embargo, al final, si la lista contiene más de 5 predictores, la lista de predictores se trunca a 5, que es el tamaño de lista actual definido en el diseño de HEVC. Cabe señalar que este proceso puede durar, por lo menos, 1 ciclo. No obstante, la duración del ciclo depende del número de predictores generados en el segundo conjunto de predictores 618. En la implementación actual de HEVC, este proceso dura 3 ciclos debido a la cantidad de predictores generados (el caso más complejo: 32 comparaciones para el diseño actual).
Finalmente, el proceso de supresión 619 produce una lista final de predictores 620 de la que se extraerá el predictor para el bloque actual.
Un inconveniente del proceso es que la obtención del predictor del vector de movimiento actual para el modo de Fusión puede alcanzar 11 ciclos en el caso más complejo, mientras que, por lo menos, son necesarios 5 ciclos en el caso menos complejo. La obtención del vector de movimiento tiene un impacto importante en la complejidad de la codificación y la descodificación.
La presente invención se ha ideado para solucionar uno o varios de los inconvenientes anteriores.
Se puede dar a conocer, de manera independiente, en un primer aspecto de la invención, un procedimiento para obtener, por lo menos, un predictor de información del movimiento para la codificación o la descodificación de una porción de imagen de una imagen mediante compensación del movimiento con respecto a, por lo menos, una porción de la imagen de referencia, en el que para dicha porción de la imagen que se va a codificar o descodificar, el procedimiento comprende proporcionar, para su procesamiento, por lo menos, dos subconjuntos distintos primero y segundo de predictores de información del movimiento de un primer conjunto de predictores de información del movimiento (801 a 807), comprendiendo el primer subconjunto, por lo menos, un predictor temporal de información del movimiento, y comprendiendo el segundo subconjunto, por lo menos, un predictor espacial de información del movimiento y excluyendo cualquier predictor temporal de información del movimiento; procesar (808, 809) el primer subconjunto de predictores de información del movimiento; y procesar (808, 815, 817) el segundo subconjunto de predictores de información del movimiento; y obtener (819), en base a los predictores de información del movimiento (818, 814) resultantes del procesamiento del primer subconjunto de predictores de información del movimiento y del procesamiento del segundo subconjunto de predictores de información del movimiento, un conjunto final (820) de predictores de información del movimiento utilizable para predecir dicha porción de la imagen a partir de la porción de la imagen de referencia; en el que el procesamiento del segundo subconjunto comprende eliminar duplicados de entre los predictores de información del movimiento de dicho segundo subconjunto únicamente, en el caso de que el segundo subconjunto contenga uno o varios predictores de información del movimiento que sean iguales, para proporcionar un subconjunto reducido de predictores de información del movimiento (816).
Puesto que los predictores temporales están excluidos de la selección para el segundo subconjunto, se comprenderá que el proceso de eliminar o suprimir duplicados de entre los predictores seleccionados del segundo subconjunto se puede aplicar solo a los predictores espaciales y, de esta manera no implica el procesamiento de predictores temporales de información del movimiento.
Mediante la exclusión de esta manera de los predictores temporales del proceso de supresión, se reduce el número total de comparaciones, lo que reduce la complejidad de cálculo.
A la inversa, en ciertas realizaciones, los predictores espaciales están excluidos de la selección para el primer subconjunto. El procesamiento del primer conjunto (es decir, los predictores temporal del movimiento) puede no implicar la eliminación de duplicados en algunas realizaciones, aunque, como se explica con mayor detalle a continuación, las realizaciones pueden combinar ventajosamente los primer y segundo subconjuntos procesados, con el fin de excluir duplicados en la etapa de obtención del conjunto final. Dicho de otra manera, el procesamiento del primer conjunto puede no implicar la eliminación de duplicados antes de obtener el conjunto final.
En una realización, el escalado del predictor temporal de información del movimiento del primer subconjunto se realiza de manera simultánea con las etapas de eliminar duplicados y generar predictores adicionales de información del movimiento del segundo subconjunto.
En una realización, el procedimiento incluye: eliminar duplicados de entre los predictores de información del movimiento que resultan del procesamiento del primer subconjunto de predictores de información del movimiento y del procesamiento del segundo subconjunto de predictores de información del movimiento, en el caso de que uno o varios predictores de información del movimiento resultantes del procesamiento del primer subconjunto de predictores de información del movimiento y del procesamiento del segundo subconjunto de predictores de información del movimiento sean iguales, para proporcionar el conjunto final de predictores de información del movimiento utilizables para codificar dicha porción de la imagen de tal manera que no haya duplicados entre el conjunto final de predictores de información del movimiento.
En una realización, el procesamiento del segundo subconjunto de predictores de información del movimiento comprende, además, eliminar duplicados de entre los predictores de información del movimiento del segundo subconjunto adicional de predictores de información del movimiento en el caso de que el segundo subconjunto adicional contenga uno o varios predictores de información del movimiento que sean iguales, para proporcionar un segundo subconjunto reducido de predictores de información del movimiento.
En una realización, la etapa de eliminar duplicados de entre los predictores de información del movimiento del segundo subconjunto adicional se realiza simultáneamente con el escalado del predictor temporal de información del movimiento del primer subconjunto.
En una realización, el procedimiento incluye añadir, al segundo subconjunto reducido de predictores de información del movimiento, un predictor de información del movimiento, resultante del procesamiento del primer subconjunto de predictores de información del movimiento, que no es un duplicado de ninguno de los predictores de información del movimiento del segundo subconjunto reducido de predictores de información del movimiento, para obtener el conjunto final de predictores de información del movimiento.
En una realización, el procedimiento incluye añadir, al subconjunto reducido de predictores de información del movimiento, un predictor de información del movimiento resultante del procesamiento del primer subconjunto de predictores de información del movimiento que no es un duplicado de ninguno de los predictores de información del movimiento del subconjunto reducido de predictores de información del movimiento; y en el que el conjunto final de predictores de información del movimiento comprende vectores de movimiento no duplicados de entre los predictores del vector de movimiento del subconjunto reducido de predictores de información del movimiento y del segundo subconjunto adicional de predictores de información del movimiento.
En una realización, el procesamiento del segundo subconjunto realizado simultáneamente con el procesamiento del primer subconjunto está basado en una estimación de la duración del procesamiento del primer subconjunto.
En una realización, los predictores de información del movimiento resultantes del procesamiento del segundo subconjunto que se añaden a los predictores de información del movimiento resultantes del procesamiento del primer subconjunto para obtener el conjunto final de predictores de información del movimiento están basados en la duración del procesamiento del primer subconjunto.
En una realización, el procedimiento incluye una etapa de determinar, en base a la diferencia temporal entre la imagen de la porción de la imagen y la imagen de la porción de la imagen de referencia, si se aplicará o no un proceso de escalado temporal al primer subconjunto de predictores de información del movimiento; y, en el que, en el caso de que se determine que se va a aplicar un proceso de escalado temporal, el procesamiento del primer subconjunto de predictores de información del movimiento comprende una etapa de escalado temporal de los predictores de información del movimiento del primer subconjunto de predictores de información del movimiento en base a la diferencia temporal entre la imagen de la porción de la imagen y la imagen de la porción de la imagen de referencia; de lo contrario, en el caso en el que se determine que no se va a aplicar un proceso de escalado temporal, el procesamiento del primer subconjunto de predictores de información del movimiento comprende una etapa de eliminar duplicados de entre los predictores de información del movimiento del primer subconjunto de predictores de información del movimiento, de tal manera que se proporciona un subconjunto reducido que comprende predictores de información del movimiento no duplicados de entre los predictores de información del movimiento del primer subconjunto de predictores de información del movimiento y el segundo subconjunto de predictores de información del movimiento, mediante el procesamiento del primer subconjunto de predictores de información del movimiento y el procesamiento del segundo subconjunto de predictores de información del movimiento.
En una realización, en el caso de que se determine que se va a aplicar un proceso de escalado temporal, el conjunto final de predictores se obtiene eliminando duplicados de entre los predictores de información del movimiento resultantes del procesamiento simultáneo del primer subconjunto de predictores de información del movimiento y el segundo subconjunto de predictores de información del movimiento; de lo contrario, en el caso de que se determine que no se va a aplicar un proceso de escalado temporal, el conjunto final de predictores se obtiene generando predictores de información del movimiento adicionales, basados en el subconjunto reducido, para proporcionar un segundo subconjunto adicional de predictores de información del movimiento, y eliminando duplicados de entre el segundo subconjunto adicional de predictores de información del movimiento.
En una realización, el procedimiento incluye determinar la complejidad del proceso de escalado temporal del primer subconjunto de predictores de información del movimiento y en el que, en el caso de que se determine que el proceso de escalado temporal durará más tiempo que un umbral de duración predeterminado, el conjunto final de predictores de información del movimiento se obtiene eliminando duplicados de entre los predictores de información del movimiento resultantes del procesamiento del primer subconjunto de predictores de información del movimiento y el procesamiento del segundo subconjunto de predictores de información del movimiento; de lo contrario, en el caso de que se determine que el proceso de escalado temporal tendrá una duración menor que un umbral de duración predeterminado, el conjunto final de predictores se obtiene añadiendo, al subconjunto reducido de predictores de información del movimiento obtenidos del segundo subconjunto de predictores de vector de movimiento, un predictor de información del movimiento resultante del procesamiento del primer subconjunto de predictores de información del movimiento que no es un duplicado de ninguno de los predictores de información del movimiento del subconjunto reducido de predictores de información del movimiento; en el que el conjunto final de predictores de información del movimiento comprende predictores de información del movimiento no duplicados de entre los predictores de información del movimiento del subconjunto reducido de predictores de información del movimiento y el segundo subconjunto adicional de predictores de información del movimiento.
En una realización, el procesamiento del segundo subconjunto del primer conjunto de predictores de información del movimiento comprende eliminar duplicados de entre los predictores de información del movimiento de dicho segundo subconjunto, para proporcionar un subconjunto reducido de predictores de información del movimiento; y generar un conjunto adicional de predictores de información del movimiento basado en uno de los predictores de información del movimiento de dicho segundo subconjunto, e incluir dicho uno de los predictores de información del movimiento de dicho segundo subconjunto, en el que no existen duplicados entre el conjunto adicional de predictores de información del movimiento, comprendiendo, además, el procedimiento, eliminar duplicados de entre el subconjunto reducido de predictores de información del movimiento y el conjunto adicional de predictores de información del movimiento, para proporcionar un conjunto no duplicado de predictores de información del movimiento.
En una realización, el procesamiento del segundo subconjunto del primer conjunto de predictores de información del movimiento comprende, además: generar predictores de información del movimiento adicionales basados en el subconjunto reducido de predictores de información del movimiento, para proporcionar un segundo subconjunto adicional de predictores de información del movimiento; y eliminar duplicados de entre los predictores de información del movimiento del segundo subconjunto adicional de predictores de información del movimiento y el conjunto no duplicado de predictores de información del movimiento, para proporcionar un segundo conjunto no duplicado de predictores de información del movimiento.
En una realización, el procedimiento incluye añadir, al segundo conjunto no duplicado de predictores de información del movimiento, un predictor de información del movimiento resultante del procesamiento del primer subconjunto de predictores de información del movimiento que no es un duplicado de ninguno de los predictores de información del movimiento del segundo conjunto no duplicado de predictores de información del movimiento, para obtener el conjunto final de predictores de información del movimiento.
En un segundo aspecto de la invención, se puede dar a conocer, de manera independiente, un dispositivo para obtener, por lo menos, un predictor de información del movimiento para codificar o descodificar una porción de la imagen de una imagen mediante compensación del movimiento con respecto a, por lo menos, una porción de la imagen de referencia, comprendiendo el dispositivo: un medio para obtener, por lo menos, dos subconjuntos primero y segundo distintos de predictores de información del movimiento de un primer conjunto de predictores de información del movimiento (801 a 807), comprendiendo el primer subconjunto, por lo menos, un predictor temporal de información del movimiento y comprendiendo el segundo subconjunto, por lo menos, un predictor espacial de información del movimiento, y excluyendo cualquier predictor temporal de información del movimiento; primeros medios de procesamiento (808, 809), para procesar el primer subconjunto de predictores de información del movimiento; y segundos medios de procesamiento (808, 815, 817), para procesar el segundo subconjunto de predictores de información del movimiento; y un medio para obtener (819), en base a los predictores de información del movimiento (818, 814) resultantes del procesamiento del primer subconjunto de predictores de información del movimiento y del procesamiento del segundo subconjunto de predictores de información del movimiento, un conjunto final (820) de predictores de información del movimiento utilizables para predecir dicha porción de la imagen a partir de la porción de la imagen de referencia; en el que el segundo procesamiento es operable para eliminar duplicados de entre los predictores de información del movimiento de dicho segundo subconjunto únicamente, en el caso de que el segundo subconjunto contenga uno o varios predictores de información del movimiento que sean iguales, para proporcionar un subconjunto reducido de predictores de información del movimiento (816).
En una realización, el primer medio de procesamiento es operable para realizar el escalado del predictor temporal de información del movimiento del primer subconjunto simultáneamente con las operaciones de eliminar duplicados y generar predictores de información del movimiento adicionales del segundo subconjunto realizadas por el segundo medio de procesamiento.
En una realización, el dispositivo incluye un medio de supresión para eliminar duplicados de entre los predictores de información del movimiento que resultan del procesamiento del primer subconjunto de predictores de información del movimiento y del procesamiento del segundo subconjunto de predictores de información del movimiento, en el caso en que uno o varios predictores de información del movimiento resultantes del procesamiento del primer subconjunto de predictores de información del movimiento y del procesamiento del segundo subconjunto de predictores de información del movimiento sean iguales, para proporcionar el conjunto final de predictores de información del movimiento utilizables para codificar dicha porción de la imagen de tal manera que no existan duplicados entre el conjunto final de predictores de información del movimiento.
En una realización, el segundo medio de procesamiento es operable para eliminar duplicados de entre los predictores de información del movimiento del segundo subconjunto adicional de predictores de información del movimiento, en el caso de que el segundo subconjunto adicional contenga uno o varios predictores de información del movimiento que sean iguales, para proporcionar un segundo subconjunto reducido de predictores de información del movimiento.
En una realización, el segundo medio de procesamiento es operable para eliminar duplicados de entre los predictores de información del movimiento del segundo subconjunto adicional simultáneamente con el escalado del predictor temporal de información del movimiento del primer subconjunto realizado por el primer medio de procesamiento.
En una realización, el dispositivo incluye un medio operable para añadir, al segundo subconjunto reducido de predictores de información del movimiento, un predictor de información del movimiento, resultante del procesamiento del primer subconjunto de predictores de información del movimiento, que no es un duplicado de ninguno de los predictores de información del movimiento del segundo subconjunto reducido de predictores de información del movimiento, para obtener el conjunto final de predictores de información del movimiento.
En una realización, el dispositivo incluye un medio para añadir, al subconjunto reducido de predictores de información del movimiento, un predictor de información del movimiento resultante del procesamiento del primer subconjunto de predictores de información del movimiento que no es un duplicado de ninguno de los predictores de información del movimiento del subconjunto reducido de predictores de información del movimiento; y en el que el conjunto final de predictores de información del movimiento comprende vectores de movimiento no duplicados de entre los predictores de vector de movimiento del subconjunto reducido de predictores de información del movimiento y el segundo subconjunto adicional de predictores de información del movimiento.
En una realización, el dispositivo incluye un medio para estimar la duración del procesamiento del primer subconjunto, en el que el procesamiento del segundo subconjunto realizado por el segundo medio de procesamiento simultáneamente con el procesamiento del primer subconjunto realizado por el primer medio de procesamiento está basado en la estimación de la duración del procesamiento del primer subconjunto.
En una realización, el dispositivo incluye un medio para estimar la duración del procesamiento del primer subconjunto, en el que los predictores de información del movimiento resultantes del procesamiento del segundo subconjunto que son añadidos a los predictores de información del movimiento resultantes del procesamiento del primer subconjunto para obtener el conjunto final de predictores de información del movimiento están basados en la duración del procesamiento del primer subconjunto.
En una realización, el dispositivo incluye medios para determinar, en base a la diferencia temporal entre la imagen de la porción de la imagen y la imagen de la porción de la imagen de referencia, si se aplicará o no un proceso de escalado temporal al primer subconjunto de predictores de información del movimiento; y, en el que, en el caso de que se determine que se va a aplicar un proceso de escalado temporal, el primer medio de procesamiento es operable para realizar el escalado temporal de los predictores de información del movimiento del primer subconjunto de predictores de información del movimiento basándose en la diferencia temporal entre la imagen de la porción de la imagen y la imagen de la porción de la imagen de referencia; de lo contrario, en el caso de que se determine que no se va a aplicar un proceso de escalado temporal, el primer medio de procesamiento es operable para eliminar duplicados de entre los predictores de información del movimiento del primer subconjunto de predictores de información del movimiento, de tal manera que se proporcione un subconjunto reducido que comprende predictores de información del movimiento no duplicados de entre los predictores de información del movimiento del primer subconjunto de predictores de información del movimiento y el segundo subconjunto de predictores de información del movimiento, mediante el procesamiento realizado por el primer medio de procesamiento y el segundo medio de procesamiento.
En una realización, el dispositivo incluye un medio de supresión para obtener el conjunto final de predictores de información del movimiento, en el que, en el caso de que se determine que se va a aplicar un proceso de escalado temporal, el medio de supresión es operable para obtener el conjunto final de predictores eliminando duplicados de entre los predictores de información del movimiento que resultan del procesamiento simultáneo del primer subconjunto de predictores de información del movimiento y el segundo subconjunto de predictores de información del movimiento; de lo contrario, en el caso de que se determine que no se va a aplicar un proceso de escalado temporal, el primer o el segundo medios de procesamiento es operable para obtener más predictores de información del movimiento, en base al subconjunto reducido para proporcionar un segundo subconjunto adicional de predictores de información del movimiento, y el medio de supresión es operable para eliminar duplicados de entre el segundo subconjunto adicional de predictores de información del movimiento.
En una realización, el dispositivo incluye un medio para determinar la complejidad del proceso de escalado temporal del primer subconjunto de predictores de información del movimiento y un medio de supresión para obtener el conjunto final de predictores de información del movimiento que no están duplicados; en el que, en el caso de que se determine que el proceso de escalado temporal durará más que un umbral de duración predeterminado, el medio de supresión es operable para eliminar duplicados de entre los predictores de información del movimiento resultantes del procesamiento del primer subconjunto de predictores de información del movimiento y el procesamiento del segundo subconjunto de predictores de información del movimiento;
de lo contrario, en el caso de que se determine que el proceso de escalado temporal tendrá una duración menor que un umbral de duración predeterminado, el medio de supresión es operable para añadir al subconjunto reducido de predictores de información del movimiento obtenidos del segundo subconjunto de predictores del vector de movimiento, un predictor de información del movimiento resultante del procesamiento del primer subconjunto de predictores de información del movimiento que no es un duplicado de ninguno de los predictores de información del movimiento del subconjunto reducido de predictores de información del movimiento; en el que el conjunto final de predictores de información del movimiento comprende predictores de información del movimiento no duplicados de entre los predictores de información del movimiento del subconjunto reducido de predictores de información del movimiento y el segundo subconjunto adicional de predictores de información del movimiento.
En una realización, el segundo medio de procesamiento comprende un medio para eliminar duplicados de entre los predictores de información del movimiento de dicho segundo subconjunto para proporcionar un subconjunto reducido de predictores de información del movimiento; y un medio para generar un conjunto adicional de predictores de información del movimiento en base a uno de los predictores de información del movimiento de dicho segundo subconjunto, e incluir dicho uno de los predictores de información del movimiento de dicho segundo subconjunto, en el que no hay duplicados entre el conjunto adicional de predictores de información del movimiento, comprendiendo, además, el dispositivo un medio de supresión para eliminar duplicados de entre el subconjunto reducido de predictores de información del movimiento y el conjunto adicional de predictores de información del movimiento para proporcionar un conjunto no duplicado de predictores de información del movimiento.
En una realización, el segundo medio de procesamiento comprende, además, un medio para generar predictores de información del movimiento adicionales en base al subconjunto reducido de predictores de información del movimiento para proporcionar un segundo subconjunto adicional de predictores de información del movimiento; y un medio para eliminar duplicados de entre los predictores de información del movimiento del segundo subconjunto adicional de predictores de información del movimiento y el conjunto no duplicado de predictores de información del movimiento, para proporcionar un segundo conjunto no duplicado de predictores de información del movimiento. En una realización, el medio de supresión es operable para añadir, al segundo conjunto no duplicado de predictores de información del movimiento, un predictor de información del movimiento resultante del procesamiento del primer subconjunto de predictores de información del movimiento que no es un duplicado de ninguno de los predictores de información del movimiento del segundo conjunto no duplicado de predictores de información del movimiento para obtener el conjunto final de predictores de información del movimiento.
Un tercer aspecto de la invención da a conocer un procedimiento para codificar una secuencia de imágenes digitales en un flujo de bits, codificándose, por lo menos, una porción de una imagen mediante compensación del movimiento con respecto a una porción de la imagen de referencia, en el que, para, por lo menos, una porción de la imagen que se va a codificar, el procedimiento comprende: obtener un conjunto de predictores de información del movimiento utilizables para la predicción de movimiento de la porción de la imagen con respecto a la, por lo menos, una porción de la imagen de referencia según el procedimiento de cualquiera de las realizaciones del primer aspecto de la invención; seleccionar, por lo menos, un predictor de información del movimiento del conjunto de predictores de información para codificar la porción de la imagen; y codificar la porción de la imagen utilizando el, por lo menos, un predictor de información del movimiento seleccionado.
El procedimiento puede incluir codificar un elemento de información que identifica el predictor de información del movimiento seleccionado.
Un cuarto aspecto de la invención proporciona un dispositivo de codificación para codificar una secuencia de imágenes en un flujo de bits, codificándose, por lo menos, una porción de una imagen por compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el dispositivo de codificación: un dispositivo para obtener, por lo menos, un predictor de información del movimiento según cualquiera de las realizaciones del segundo aspecto de la invención; un medio de selección que selecciona, por lo menos, un predictor de información del movimiento del conjunto de predictores de información para codificar la porción de la imagen; y un medio de codificación para codificar la porción de la imagen utilizando el, por lo menos, un predictor de información del movimiento seleccionado.
Un quinto aspecto de la invención da a conocer un procedimiento para descodificar un flujo de bits que comprende una secuencia codificada de imágenes, habiendo sido codificada, por lo menos, una porción de una imagen por compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el procedimiento durante, por lo menos, una porción de la imagen que se va a descodificar: obtener un conjunto de predictores de información del movimiento utilizables para la predicción del movimiento de la porción de la imagen con respecto a la, por lo menos, una porción de la imagen de referencia según el procedimiento de cualquiera de las realizaciones del primer aspecto de la invención; seleccionar, por lo menos, un predictor de información del movimiento del conjunto de predictores de información para descodificar la porción de la imagen; y descodificar la porción de la imagen utilizando el, por lo menos, un predictor de información del movimiento seleccionado.
Un sexto aspecto de la invención da a conocer un dispositivo de descodificación para descodificar un flujo de bits que comprende una secuencia codificada de imágenes, habiéndose codificado, por lo menos, una parte de una imagen por compensación del movimiento con respecto a una porción de la imagen de referencia, comprendiendo el dispositivo de descodificación:
un dispositivo para obtener, por lo menos, un predictor de información del movimiento de acuerdo con el dispositivo de cualquiera de las realizaciones del segundo aspecto de la invención; un medio de selección, para seleccionar, por lo menos, un predictor de información del movimiento del conjunto de predictores de información para descodificar la porción de la imagen; y un medio de descodificación, para descodificar la porción de la imagen utilizando el, por lo menos, un predictor de información del movimiento seleccionado.
Se apreciará que las realizaciones de los diferentes aspectos de la invención se pueden utilizar para segmentos P y B y para Inter predicciones unidireccionales y bidireccionales.
Por lo menos, partes de los procedimientos según la invención pueden ser implementadas por ordenador. Por consiguiente, la presente invención puede tomar la forma de una realización enteramente de hardware, o una realización enteramente de software (que incluye firmware, software residente, microcódigo, etc.) o una realización que combina aspectos de software y hardware a los que, en general, se puede hacer referencia en este documento como un “circuito”, “módulo” o “sistema”. Además, la presente invención puede tomar la forma de un programa informático incorporado en cualquier medio de expresión tangible que tenga un código de programa utilizable por un ordenador incorporado en el medio.
Puesto que la presente invención puede ser implementada en software, la presente invención se puede materializar como un código legible por un ordenador para ser proporcionado a un aparato programable en cualquier medio portador adecuado. Un medio portador tangible puede comprender un medio de almacenamiento tal como un disco flexible, un CD-ROM, una unidad de disco duro, un dispositivo de cinta magnética o un dispositivo sólido de memoria de estados y dispositivos similares. Un medio portador transitorio puede incluir una señal tal como una señal eléctrica, una señal electrónica, una señal óptica, una señal acústica, una señal magnética o una señal electromagnética, por ejemplo, una señal de microondas o RF. Las realizaciones de la invención se describirán a continuación, a modo de ejemplo solamente, y haciendo referencia a los siguientes dibujos, en los que:
la figura 1 es un diagrama esquemático de un conjunto de predictores del vector de movimiento utilizados en un proceso de predicción de vectores de movimiento en el contexto de las realizaciones de la presente invención; la figura 2 es un diagrama de flujo que muestra las etapas de un proceso de la técnica anterior para obtener un conjunto de predictores del vector de movimiento;
la figura 3 es un diagrama de bloques que muestra componentes de un dispositivo de procesamiento en el que se pueden implementar las realizaciones de la invención;
la figura 4 es un diagrama de bloques que muestra los componentes de un dispositivo de codificación según las realizaciones de la invención;
la figura 5 es un diagrama de bloques que muestra los componentes de un dispositivo de descodificación según las realizaciones de la invención;
la figura 6 es un diagrama de flujo que muestra las etapas de un procedimiento para obtener un conjunto de predictores de la información del movimiento según una primera realización de la invención;
la figura 7 es un diagrama de flujo que muestra las etapas de un procedimiento para obtener un conjunto de predictores de la información del movimiento según una segunda realización de la invención;
la figura 8 es un diagrama de flujo que muestra las etapas de un procedimiento para obtener un conjunto de predictores de la información del movimiento según una tercera realización de la invención;
la figura 9 es un diagrama de flujo que muestra las etapas de un procedimiento para obtener un conjunto de predictores de la información del movimiento según una cuarta realización de la invención;
las figuras 10(a) a 10(c) muestran esquemáticamente esquemas para la generación de predictores del vector de movimiento según una o varias realizaciones de la invención; y
la figura 11 es un diagrama esquemático para mostrar un proceso de escalado de un predictor temporal utilizado en las realizaciones de la invención.
La figura 3 muestra esquemáticamente un dispositivo de procesamiento 200 configurado para implementar, por lo menos, una realización de la presente invención. El dispositivo de procesamiento 200 puede ser un dispositivo tal como un microordenador, una estación de trabajo o un dispositivo portátil ligero. El dispositivo 200 comprende un bus de comunicación 213 al que están conectados preferiblemente:
- una unidad central de procesamiento 211, tal como un microprocesador, denominada CPU;
- una memoria de solo lectura 207, designada ROM, para almacenar programas informáticos para implementar la invención;
- una memoria de acceso aleatorio 212, designada RAM, para almacenar el código ejecutable del procedimiento de realización de la invención, así como los registros adaptados para registrar las variables y los parámetros necesarios para implementar el procedimiento de codificación de una secuencia de imágenes digitales y/o el procedimiento de descodificación de una secuencia de bits según las realizaciones de la invención; y
- una interfaz de comunicación 202 conectada a una red de comunicación 203 a través de la cual se transmiten los datos digitales que se van a procesar.
Opcionalmente, el aparato 200 puede incluir asimismo los siguientes componentes:
- un medio de almacenamiento de datos 204 tal como un disco duro, para almacenar programas informáticos para implementar los procedimientos de una o varias realizaciones de la invención y los datos utilizados o producidos durante la implementación de una o varias realizaciones de la invención;
- una unidad de disco 205 para un disco 206, estando adaptada la unidad de disco para leer datos del disco 206 o para escribir datos en dicho disco;
- una pantalla 209 para mostrar datos y/o servir como una interfaz gráfica con el usuario, por medio de un teclado 210 o de cualquier otro medio para señalar.
El aparato 200 puede ser conectado a diversos periféricos, tales como, por ejemplo, una cámara digital 200 o un micrófono 208, estando conectado cada uno a una tarjeta de entrada/salida (no mostrada) con el fin de suministrar datos multimedia al aparato 200.
El bus de comunicación proporciona comunicación e interoperabilidad entre los diversos elementos incluidos en el aparato 200 o conectados a él. La representación del bus no es limitativa y, en concreto, la unidad central de procesamiento es operable para comunicar instrucciones a cualquier elemento del aparato 200, directamente o por medio de otro elemento del aparato 200.
El disco 206 puede ser reemplazado por cualquier medio de información tal como, por ejemplo, un disco compacto (CD-ROM), regrabable o no, un disco ZIP o una tarjeta de memoria y, en términos generales, por medio de almacenamiento de información que pueda ser leído por un microordenador o por un microprocesador, integrado o no en el aparato, posiblemente extraíble y adaptado para almacenar uno o varios programas, cuya ejecución permite el procedimiento de codificación de una secuencia de imágenes digitales y/o el procedimiento de descodificación de un secuencia de bits según la invención que se va a implementar.
El código ejecutable puede ser almacenado bien en la memoria de solo lectura 207, en el disco duro 204 o en un medio digital extraíble tal como, por ejemplo, un disco 206 tal como se ha descrito anteriormente. Según una variante, el código ejecutable de los programas puede ser recibido por medio de la red de comunicación 203, a través de la interfaz 202, con el fin de ser almacenado en uno de los medios de almacenamiento del aparato 200 antes de ser ejecutado, tal como el disco duro 204.
La unidad de proceso central 211 está adaptada para controlar y dirigir la ejecución de las instrucciones o porciones de código del software del programa o programas según la invención, instrucciones que están almacenadas en uno de los medios de almacenamiento mencionados anteriormente. Cuando se conecta el equipo, el programa o programas que están almacenados en una memoria no volátil, por ejemplo, en el disco duro 204 o en la memoria de solo lectura 207, son transferidos a la memoria de acceso aleatorio 212, que contiene entonces el código ejecutable del programa o programas, así como registros para almacenar las variables y parámetros necesarios para la implementación de la invención.
En esta realización, el aparato es un aparato programable que utiliza software para implementar la invención. Sin embargo, de manera alternativa, la presente invención puede ser implementada en hardware (por ejemplo, en forma de un circuito integrado de aplicación específica o ASIC, Application Specific Integrated Circuit).
La figura 4 muestra un diagrama de bloques de un codificador según, por lo menos, una realización de la invención. El codificador está representado por módulos conectados, estando adaptado cada módulo para implementar, por ejemplo, en forma de instrucciones de programación para ser ejecutadas por la CPU 211 del dispositivo 200, por lo menos, una etapa correspondiente de un procedimiento que implementa, por lo menos, una realización de codificación de una imagen de una secuencia de imágenes según una o varias realizaciones de la invención.
Una secuencia original de imágenes digitales de i0 a in 301 es recibida como entrada por el codificador 30. Cada imagen digital está representada por un conjunto de muestras, conocidas como píxeles.
Una secuencia de bits 310 es emitida por el codificador 30 después de la implementación del proceso de codificación.
La secuencia de bits 310 comprende una serie de unidades de codificación o segmentos, comprendiendo cada segmento una cabecera de segmento para transmitir valores de codificación de parámetros de codificación utilizados para codificar el segmento y un cuerpo de segmento, que comprende datos de video codificados.
Las imágenes digitales de entrada i0 a in 301 son divididas en bloques de píxeles mediante el módulo 302. Los bloques corresponden a porciones de imagen y pueden ser de tamaños variables (por ejemplo, 4x4, 8x8, 16x16, 32x32 píxeles). Se selecciona un modo de codificación para cada bloque de entrada. Existen dos familias de modos de codificación: los modos de codificación basados en la codificación de predicción espacial (Intra predicción), y los modos de codificación basados en la predicción temporal (Inter codificación, Bidireccional, SALTO). Los modos de codificación posibles están probados.
El módulo 303 implementa la Intra predicción, en la que el bloque dado a codificar es vaticinado por medio de un predictor calculado a partir de píxeles del entorno de dicho bloque a codificar. Una indicación del Intra predictor seleccionado y la diferencia entre el bloque dado y su predictor se codifica para proporcionar un residuo si se selecciona la Intra codificación.
La predicción temporal se implementa mediante el módulo de estimación del movimiento 304 y el módulo de compensación del movimiento 305. En primer lugar, se selecciona una imagen de referencia de entre un conjunto de imágenes de referencia 316, y una porción de la imagen de referencia, llamada también zona de referencia o porción de imagen, que es la zona más próxima al bloque dado que se debe codificar, es seleccionado por el módulo de estimación del movimiento 304. El módulo de compensación del movimiento 305 predice a continuación que el bloque se debe codificar utilizando la zona seleccionada. La diferencia entre la zona de referencia seleccionada y el bloque dado, llamado también bloque residual, se calcula mediante el módulo de compensación del movimiento 305. La zona de referencia seleccionada se indica mediante un vector de movimiento.
De este modo, en ambos casos (predicción espacial y temporal), se calcula un residuo restando la predicción del bloque vaticinado original.
En la INTRA predicción implementada por el módulo 303, se codifica una dirección de predicción. En la predicción temporal se codifica, por lo menos, un vector de movimiento.
La información relativa al vector de movimiento y al bloque residual se codifica si se selecciona la Inter predicción. Para reducir más la tasa de bits, el vector de movimiento es codificado por diferencia con respecto a un predictor del vector de movimiento. Se obtiene un predictor del vector de movimiento de un conjunto de predictores de información del movimiento a partir del campo de vectores de movimiento 318 mediante un módulo de predicción y codificación del vector de movimiento 317.
El conjunto de predictores del vector de movimiento a partir del cual se selecciona un predictor del vector de movimiento para la codificación de un vector de movimiento actual se genera tal como se explicará con más detalle a continuación con respecto a cualquiera de las figuras 7 a 10. Para un bloque actual dado a codificar, en algunas realizaciones de la invención, se determina un número N de predictores del vector de movimiento y, en consecuencia, el índice del predictor del vector de movimiento seleccionado, que es un elemento de información representativo del predictor del vector de movimiento seleccionado, puede ser codificado utilizando un número predeterminado de bits según el número N de predictores del vector de movimiento. El descodificador también puede recuperar este número predeterminado de bits, incluso en caso de pérdidas, por lo tanto, se puede asegurar que el descodificador podrá analizar la secuencia de bits incluso en caso de errores o pérdidas. Los N predictores del vector de movimiento se seleccionan según diversas realizaciones de la invención para que sean todos diferentes entre sí para mejorar la eficiencia de la compresión.
El codificador 30 comprende además un módulo de selección 306 para la selección del modo de codificación. El módulo de selección 306 aplica un criterio de coste de codificación, tal como un criterio de distorsión de velocidad, para determinar cuál es el mejor modo entre el modo de predicción espacial y el modo de predicción temporal. Para reducir más las redundancias, se aplica una transformada mediante el módulo de transformación 307 al bloque residual, los datos transformados obtenidos se cuantifican a continuación mediante el módulo de cuantificación 308 y se codifican por entropía mediante el módulo de codificación por entropía 309. Finalmente, el bloque residual codificado del bloque actual que se está codificando se introduce en la secuencia de bits 310, junto con la información relativa al predictor utilizado, tal como el índice del predictor del vector de movimiento seleccionado. Para los bloques codificados en el modo ‘SALTO’, solo se codifica una referencia al predictor en la secuencia de bits, sin ningún bloque residual.
El codificador 30 también realiza la descodificación de la imagen codificada para producir una imagen de referencia para la estimación del movimiento de las imágenes posteriores. Esto permite que el codificador y el descodificador que reciben la secuencia de bits tengan los mismos fotogramas de referencia. El módulo de cuantificación inversa 311 realiza la cuantificación inversa de los datos cuantificados, seguida de una transformación inversa mediante el módulo de transformación inversa 312. El módulo de Intra predicción inversa 313 utiliza la información de predicción para determinar qué predictor utilizar para un bloque dado, y el módulo de compensación inversa del movimiento 314 en realidad añade el residuo obtenido por el módulo 312 a la zona de referencia obtenida a partir del conjunto de imágenes de referencia 316. Opcionalmente, se aplica un filtro de desbloqueo 315 para eliminar los efectos de bloqueo y mejorar la calidad visual de la imagen descodificada. El mismo filtro de desbloqueo se aplica en el descodificador, de tal manera que, si no hay ninguna pérdida de transmisión, el codificador y el descodificador aplican el mismo procesamiento.
La figura 5 muestra un diagrama de bloques de un descodificador 40 según, por lo menos, una realización de la invención. El descodificador está representado por módulos conectados, estando adaptado cada módulo para implementar, por ejemplo, en forma de instrucciones de programación para ser ejecutadas por la CPU 211 del dispositivo 200, una etapa correspondiente de un procedimiento que implementa una realización de la invención. El descodificador 40 recibe una secuencia de bits 401 que comprende unidades de codificación, estando compuesta cada una de las cuales por una cabecera que contiene información acerca de los parámetros de la codificación y un cuerpo que contiene los datos de video codificados. Tal como se explicó con respecto a la figura 4, los datos de video codificados están codificados por entropía, y los índices de los predictores del vector de movimiento están codificados, para un bloque dado, en un número predeterminado de bits. Los datos de video codificados recibidos son descodificados por entropía mediante el módulo 402. Los datos residuales son descuantificados a continuación mediante el módulo 403 y, a continuación, el módulo 404 aplica una transformada inversa para obtener valores de píxeles.
Los datos del modo también son descodificados por entropía y, en base al modo, se realiza una descodificación de tipo INTRA o una descodificación de tipo INTER.
En el caso del modo INTRA, un INTRA predictor está determinado por el módulo de Intra predicción inversa 405 en base al modo de Intra predicción especificado en la secuencia de bits.
Si el modo es INTER, la información de predicción del movimiento se extrae de la secuencia de bits para encontrar la zona de referencia utilizada por el codificador. La información de predicción del movimiento está compuesta por el índice del fotograma de referencia y el residuo del vector de movimiento. El predictor del vector de movimiento se añade al residuo del vector de movimiento para obtener el vector de movimiento mediante el módulo de descodificación del vector de movimiento 410.
El módulo de descodificación del vector de movimiento 410 aplica la descodificación del vector de movimiento para cada bloque actual codificado mediante predicción del movimiento. Una vez que se ha obtenido un índice del predictor del vector de movimiento para el bloque actual, el valor real del vector de movimiento asociado con el bloque actual puede ser descodificado y utilizado para aplicar la compensación inversa del movimiento mediante el módulo 406. La zona de referencia indicada por el vector de movimiento descodificado es extraída a partir de una imagen de referencia 408 para aplicar la compensación inversa del movimiento 406. Los datos del campo del vector de movimiento 411 se actualizan con el vector de movimiento descodificado con el fin de ser utilizados para la predicción inversa de los siguientes vectores de movimiento descodificados.
Finalmente, se obtiene un bloque descodificado. Se aplica un filtro de desbloqueo 407; de manera similar al filtro de desbloqueo 315 aplicado en el codificador. Finalmente, el descodificador 40 proporciona una señal de video descodificada 409.
La figura 6 es un diagrama de flujo que muestra las etapas de un procedimiento según una primera realización de la invención para obtener un conjunto de predictores de información del movimiento potenciales adecuados para la codificación de una porción de imagen de una imagen con respecto a una porción de imagen de referencia. En la primera etapa del procedimiento, se consideran 7 posiciones de bloque (701 a 707). Estas posiciones corresponden a las posiciones espaciales y temporales que se muestran en la figura 1. El módulo 708 verifica la disponibilidad de los vectores de movimiento de las 7 posiciones de bloque y selecciona 4 vectores de movimiento como predictores del vector de movimiento. En este módulo, un vector de movimiento está disponible como un predictor si existe, y si el bloque de vectores de movimiento no está Intra codificado. La selección y la verificación de los 4 predictores del vector de movimiento se describen bajo las siguientes condiciones:
• Si el vector de movimiento “izquierdo” (701) está disponible (y si existe y si este bloque no está Intra codificado), el vector de movimiento del bloque “izquierdo” es seleccionado y utilizado como el predictor 1 (610).
• Si el vector de movimiento “superior” (702) está disponible, el vector de movimiento del bloque “superior” es seleccionado y utilizado como el predictor 2 (711).
• Si el vector de movimiento “superior derecho” (703) está disponible, el vector de movimiento del bloque “superior derecho” es seleccionado y utilizado como el predictor 3 (712).
• Si el vector de movimiento “inferior izquierdo” (704) está disponible, el vector de movimiento del bloque “inferior izquierdo” es seleccionado y utilizado como el predictor 4 (713).
• Si uno (o más) de los predictores anteriores no está disponible, y si el vector de movimiento “superior izquierdo” (705) está disponible, el vector de movimiento del bloque “superior izquierdo” es añadido al conjunto de predictores del vector de movimiento después del predictor espacial añadido.
• Si el vector de movimiento “H” está disponible, el vector de movimiento del bloque “H” es seleccionado y utilizado como el predictor 5 (714). Si el bloque “H” no está disponible, la disponibilidad del vector de movimiento “situado en la misma posición” (el vector de movimiento del bloque en la misma posición en el bloque actual) es verificada y, si el vector de movimiento situado en la misma posición está disponible, es utilizado como el predictor temporal. La verificación de disponibilidad realizada por el módulo 708 requiere 1 ciclo.
Puesto que el conjunto de predictores del vector de movimiento seleccionados al comienzo del proceso contiene solo los predictores espaciales 1,2, 3, 4, la complejidad del proceso de selección 715 se reduce en comparación con el proceso de selección de la técnica anterior en la figura 2, que comprende 4 predictores espaciales y 1 temporal.
El proceso de supresión consiste en comparar cada predictor seleccionado con todos los demás predictores seleccionados y en eliminar aquellos predictores seleccionados que son iguales a otro predictor seleccionado (mientras se mantiene el otro predictor seleccionado del cual el predictor eliminado es un duplicado) para proporcionar un conjunto de predictores en el que ninguno de los predictores son duplicados uno de otro. El proceso de supresión de los segmentos P tiene en cuenta los valores de los vectores de movimiento y sus índices de los fotogramas de referencia. En consecuencia, las dos componentes de un vector de movimiento y su índice del fotograma de referencia son comparados con todos los componentes correspondientes de los otros vectores de movimiento, y solo si estos tres valores son iguales, el predictor es eliminado (o no se añade) al conjunto. Para un fotograma B, este criterio se puede extender a la dirección y a las listas. Por lo tanto, un predictor se considera un predictor duplicado si utiliza la misma dirección, las mismas listas (L0, L1 o L0 y L1), los mismos índices de fotogramas de referencia y el mismo valor de los vectores de movimiento (MV_L0 y MV_L1 para predicción bidireccional) en el conjunto de vectores de movimiento seleccionados. El proceso de supresión dura 1 ciclo cuando es necesario comparar 5 predictores como máximo. De hecho, se puede considerar que se pueden calcular 12 comparaciones en 1 ciclo. El número máximo de comparaciones para el proceso de supresión en el caso más complejo es igual a la suma de 0 a N-1. Puesto que el número máximo de predictores al comienzo del proceso de supresión es 4 en lugar de 5, el número máximo de comparaciones a realizar es 6 (es decir, 3+2+1=6) comparado con 10, como para los 5 predictores seleccionados de la técnica anterior de la figura 2. Al final de este proceso de supresión 715, se genera un conjunto reducido de predictores 716. El conjunto reducido de predictores del vector de movimiento 716 contiene como máximo 4 predictores en comparación con 5 en la técnica anterior.
El módulo de generación de predictores del vector de movimiento 717 genera nuevos candidatos de predictor basados en los predictores del conjunto reducido de predictores del vector de movimiento. Se pueden utilizar varios esquemas para crear dichos predictores y uno de dichos esquemas se describirá más adelante con referencia a las figuras 10(a) a 10(c). Se puede considerar que el proceso realizado por el módulo de generación de predictores del vector de movimiento dura, por lo menos, 1 ciclo y produce un segundo conjunto de predictores 718. Puesto que el conjunto reducido de predictores 716, en general, contiene menos predictores que el conjunto reducido de predictores 616 de la técnica anterior mostrado en la figura 2, de media se generan menos predictores combinados y predictores escalados en el conjunto reducido de predictores del vector de movimiento 717 comparado con el de la técnica anterior, y la complejidad del proceso se reduce.
A continuación, el módulo de procesamiento de supresión 721, que funciona de manera similar al módulo del proceso de supresión 715, elimina los candidatos duplicados del segundo conjunto de predictores 718 y el conjunto reducido de predictores 716 comparando los componentes respectivos del vector de movimiento y los parámetros de información del movimiento asociados. En la técnica anterior mostrada en la figura 2, la duración de este proceso en concreto puede alcanzar 3 ciclos, dependiendo del número de predictores generado en el segundo conjunto de predictores 718, concretamente en el caso en el que se aplica la generación de predictores del vector de movimiento del diseño HEVC actual. El proceso de supresión 721 produce un segundo conjunto reducido de predictores del vector de movimiento 722.
Finalmente, el predictor temporal 714 es comparado con el segundo conjunto reducido de predictores del vector de movimiento 722 en el módulo 719. En el procesamiento de supresión y reordenación realizado por el módulo 719, el predictor temporal es comparado, como máximo, con 5 predictores para determinar si el predictor temporal es un predictor duplicado. Si es un predictor no duplicado, el predictor temporal es introducido en la lista de predictores justo antes del último predictor espacial no duplicado. La posición temporal ha sido determinada por el módulo de procesamiento de supresión 715 y transmitida al módulo de procesamiento 719, y corresponde al número de predictores en 715. La lista de predictores se trunca si contiene más de 5 predictores para producir el conjunto final de predictores 720. Se debe observar que el número máximo de comparaciones realizadas por el módulo 719 es de 5 en el caso más complejo, lo que es una reducción en comparación con el del módulo de supresión 619 de la técnica anterior mostrada en la figura 2.
En una realización alternativa, el módulo de procesamiento de supresión 719 puede funcionar de la misma manera que el módulo de procesamiento de supresión 619 de la técnica anterior. En dicho caso, el predictor temporal solo se añade al conjunto de predictores si el conjunto reducido de predictores 722 contiene como máximo 4 predictores. De lo contrario, se añade al final de la lista de predictores.
La figura 7 muestra una segunda realización de la invención. La principal diferencia con respecto a la realización de la figura 6 es que el proceso de generación del predictor del vector de movimiento realizado por el módulo 817 tiene una duración de 2 ciclos en lugar de 1 ciclo, como en el caso del módulo 717 de la figura 6. En el caso de la figura 7, el proceso de supresión para la eliminación de los predictores duplicados del segundo conjunto de predictores 818 no se ejecuta en paralelo al proceso de escalado temporal 809. En consecuencia, en la figura 7, en el módulo de supresión 819, el predictor temporal 814 es comparado con los predictores del conjunto reducido de predictores del vector de movimiento 816 y con los predictores del segundo conjunto de predictores 818. En este proceso, si el predictor temporal 814 es un predictor no duplicado de los predictores del vector de movimiento del conjunto de predictores del vector de movimiento 816, el predictor temporal 814 se añade al conjunto reducido de predictores del vector de movimiento después de los predictores espaciales. A continuación, los predictores del segundo conjunto de predictores 818 son comparados con los predictores del conjunto reducido de predictores del vector de movimiento 816, con el predictor temporal 814 si se ha añadido, y con los otros predictores del segundo conjunto de predictores 818.
La ventaja del procesamiento de las realizaciones de la figura 6 o la figura 7 resulta de la ejecución completa del proceso de escalado 709 en paralelo con el primer proceso de supresión 715 u 815 y del proceso de generación del predictor del vector de movimiento 717 u 817. Según la complejidad de cada proceso, se pueden incluir procesos de supresión 721 adicionales en el procedimiento para predeterminar un conjunto no duplicado para reducir la complejidad del proceso de supresión final 719. De este modo, en la primera realización de la invención se puede considerar que el proceso de supresión global se divide en dos procesos de supresión implementados por los módulos 721 y 719.
El proceso de escalado en paralelo tiene un impacto beneficioso en la eficiencia de la codificación. En efecto, ya que el predictor temporal 714 o 814 no se utiliza para generar el segundo conjunto de predictores 718 u 818, esto tiene un impacto en la generación de los predictores del vector de movimiento.
Las etapas de un procedimiento para generar un conjunto de predictores del vector de movimiento según una tercera realización de la invención se muestran en el diagrama de flujo de la figura 8. El procedimiento según la tercera realización de la invención reduce más el impacto en la eficiencia de la codificación.
El módulo de selección 908 funciona de manera similar a los módulos de selección 708 y 808 correspondientes a las primera y segunda realizaciones de la invención para seleccionar 4 vectores de movimiento 910 a 913, en base a su disponibilidad, a partir de las posiciones de bloque espacial y temporal 901 hasta 907.
La principal diferencia es la utilización de un módulo de decisión de escalado 923. En el módulo de decisión de escalado 923, se comparan la distancia temporal del vector de movimiento temporal y la distancia temporal del predictor temporal (predictor número 5). Para un tipo unidireccional de Inter predicción, esto significa que la diferencia del recuento de orden de imágenes (POC, Picture Order Count) entre el fotograma temporal (el fotograma de H y los bloques situados en la misma posición) y el fotograma de referencia señalado por el vector de movimiento temporal (H o situados en la misma posición) es en comparación con la distancia temporal entre el fotograma actual y el fotograma de referencia del predictor temporal. Si estas distancias temporales son iguales, el módulo de decisión de escalado 923 devuelve el valor “No”. De lo contrario, significa que se necesita un proceso de escalado, y el módulo de decisión de escalado 923 devuelve el valor “Sí”. Para un tipo de predicción bidireccional, el módulo de decisión 923 compara las distancias temporales para cada lista, y la decisión devuelta depende de las decisiones para ambas listas. Por lo tanto, si para ambas listas no es necesario el escalado, el módulo de decisión de escalado 923 devuelve el valor “No” y si, por lo menos, un proceso de escalado es necesario para una lista, el módulo de decisión de escalado 923 devuelve el valor “Sí”.
Si el módulo de decisión de escalado 923 devuelve el valor “No”, se utiliza el predictor temporal 5 (924) en el proceso de supresión 915. En consecuencia, la generación de predictores del vector de movimiento 917 utiliza el valor del predictor temporal 5 para generar el segundo conjunto de predictores 918. A continuación, el proceso de supresión 921 es aplicado al conjunto reducido de predictores 916 y al conjunto de segundos predictores 918. A continuación, un módulo de decisión 925 toma una decisión acerca de la provisión del conjunto final de predictores del vector de movimiento en base a la decisión del módulo de decisión de escalado 923 - es decir, la decisión tomada por el módulo de decisión de escalado 923 se utiliza para determinar si o no el conjunto reducido de predictores producido por el proceso de supresión 921 es el conjunto final de predictores - cuando el módulo de decisión 923 devuelve un “No”, se determina que el conjunto reducido de predictores producido por el proceso de supresión 921 es el conjunto final de predictores. Por lo tanto, cuando el módulo de decisión de escalado 923 devuelve un “No” que indica que no se requiere escalado, la obtención del conjunto de predictores funciona de manera similar a la obtención del conjunto de predictores que se muestra en la figura 2.
En caso contrario, si el módulo de decisión de escalado 923 devuelve el valor “Sí”, lo que indica que el predictor temporal es escalado en el módulo 909 para producir un número de predictor temporal 5 (914), se determina que el conjunto reducido de predictores producido por el proceso de supresión 921 no es el conjunto final de predictores. En este caso, el módulo de proceso de supresión 915 no ha utilizado el predictor temporal para el proceso de supresión y el módulo de generación de predictores del vector de movimiento 917 no ha utilizado el predictor temporal para crear nuevos predictores. En consecuencia, de manera similar al proceso mostrado en el diagrama de flujo de la figura 6, el proceso de escalado 909 del predictor temporal 5 es ejecutado en paralelo a la generación de predictores del vector de movimiento 917. El módulo de decisión de escalado 925, después del segundo proceso de supresión, devuelve el valor “Sí”. Por lo tanto, el predictor temporal escalado 914 es comparado con los predictores del segundo conjunto reducido de predictores 922 en el proceso de supresión 919. Como en el caso del módulo de proceso de supresión 719 de la figura 6, si el predictor temporal 914 es un predictor no duplicado de los predictores en el segundo conjunto reducido de predictores, el módulo de supresión y reordenación 919 introduce el predictor temporal en el conjunto de predictores después del primer conjunto reducido de predictores 916 para proporcionar el conjunto final de predictores 920.
Para resumir esta realización, el proceso de escalado 909 es ejecutado en paralelo al proceso de generación 917 del segundo conjunto 918 solo si el predictor temporal necesita ser escalado.
Si se considera que la generación de los predictores del vector de movimiento 917 dura 1 ciclo, y si el predictor temporal no necesita un proceso de escalado, se necesitan 4 ciclos para producir el conjunto de predictores de Fusión; en caso contrario se necesitan 5 ciclos. En consecuencia, el proceso se reduce en 2 ciclos en el caso más complejo como en la primera realización. Las principales ventajas de esta realización en comparación con la anterior son la utilización del predictor temporal para la generación del segundo conjunto de predictores solo cuando el predictor temporal no necesita escalado. En consecuencia, la eficiencia de la codificación se puede mejorar en comparación con la primera realización.
En una realización adicional, es posible considerar la complejidad del proceso de escalado. Por ejemplo, puede ser posible saber si el proceso de escalado requiere solo un ciclo. Solo se necesita un ciclo si es necesario cambiar el signo del predictor del vector de movimiento. En ese caso, el predictor temporal está disponible al mismo tiempo que el conjunto reducido de predictores 916. Por lo tanto, el predictor temporal se puede utilizar para el proceso de supresión 921. En ese caso, el módulo de decisión de escalado 925 devuelve el valor “Sí” y los módulos 922 y 919 no son necesarios para proporcionar el conjunto final de predictores. En consecuencia, la duración del proceso de obtención se reduce en un ciclo, porque el proceso de supresión 919 dura 1 ciclo.
La figura 9 es un diagrama de flujo que muestra un procedimiento para obtener un conjunto de predictores del vector de movimiento según una cuarta realización de la invención. El diagrama de flujo de la figura 9 está basado en el de la figura 6. Como consecuencia, los módulos 1001 a 1020 y 1022 de la figura 9 son respectivamente los mismos que los módulos 701 a 720 y 720 de la figura 6. Las diferencias son la utilización en paralelo de los predictores no duplicados añadiendo compensaciones tal como se describirá en la generación predictores del vector de movimiento con respecto a las figuras 10(a) a 10(c). Cuando se define el primer predictor 11010, el módulo 1023 genera una lista de predictores no duplicados. Como se explicó con respecto a la figura 10(c), este proceso consiste en añadir compensaciones a una o a ambas componentes del vector de movimiento del primer predictor 1010. El conjunto de predictores no duplicados 1024 contiene 4 predictores que son diferentes entre sí y diferentes al primer predictor 1010 disponible después de la verificación de disponibilidad implementada por el módulo de procesamiento de selección 1008. Como consecuencia, en esta realización, el conjunto de predictores no duplicados 1024, cuando es añadido al primer predictor 1010, contiene 5 predictores no duplicados, tal como se fijó para el modo de Fusión. La generación de predictores no duplicados se ejecuta en paralelo al proceso de supresión 1015. El módulo de procesamiento de supresión 1025 compara el conjunto de predictores no duplicados 1024 con el conjunto reducido de predictores 1016 para obtener solo 5 predictores. El conjunto de predictores no duplicados 1026 contiene el conjunto reducido de predictores 1016 seguido del conjunto de predictores no duplicados generado en 1024. Se puede observar que el proceso de supresión 1025, en general, requiere un máximo de 6 comparaciones. El caso más complejo ocurre cuando el conjunto reducido de predictores del vector de movimiento 1016 contiene 4 predictores. El conjunto de predictores no duplicados 1024 contiene 4 predictores. Teóricamente, el proceso de supresión requiere 16 comparaciones en el caso más complejo (4 predictores del conjunto reducido de vectores de movimiento 1016 por 4 predictores del conjunto de predictores no duplicados 1024). Sin embargo, los predictores del vector de movimiento en el conjunto de predictores no duplicados son diferentes del primer predictor, por lo que solo el segundo, el tercero y el cuarto predictores del conjunto reducido de predictores del vector de movimiento 1016 deben ser comparados con el conjunto de predictores del vector de movimiento no duplicados 1024. Como consecuencia, se necesitan 12 (4 por 3) comparaciones. Los predictores son diferentes entre sí en el conjunto de predictores no duplicados 1024, por lo que, en el caso más complejo, si los 3 primeros predictores del conjunto de predictores no duplicados 1024 son iguales a los 3 últimos predictores del conjunto reducido de predictores del vector de movimiento 1016, se puede suponer que el último predictor en 1024 es diferente al predictor del conjunto reducido de predictores del vector de movimiento 1016. Por lo tanto, solo se necesitan 9 (3 por 3) comparaciones.
A continuación, se genera un segundo conjunto de predictores del vector de movimiento 1018 mediante el módulo de generación de predictores del vector de movimiento 1017. El proceso de supresión y reordenación 1021 verifica si los predictores del vector de movimiento del segundo conjunto de predictores 1018 no están duplicados en comparación con el conjunto no duplicado 1026 que ya contiene 5 predictores. Si un predictor del segundo conjunto de predictores 1018 es diferente de todos los demás, se introduce en la posición del número de predictores en el conjunto reducido de predictores 1016 (después de los predictores del conjunto reducido de predictores del vector de movimiento 1016 en la lista). Las etapas posteriores 1022, 1019 y 1020 funcionan de la misma manera que el procesamiento de los módulos 722, 719 y 720 de la figura 6.
Se puede observar que la generación de predictores no duplicados 1023 se puede añadir al final del proceso de obtención, después del proceso de supresión 1019. Esto requeriría un proceso de supresión adicional que necesita un ciclo más, y no daría como resultado la misma ordenación del conjunto de predictores.
La cuarta realización tiene varias ventajas. En primer lugar, en esta realización, cada posición del predictor tiene un valor. En consecuencia, el procedimiento proporciona un proceso más robusto que el diseño actual de HEVC. De hecho, un codificador puede utilizar un índice de predictor sin valor en el descodificador que puede provocar una caída del descodificador. Esto puede ocurrir, por ejemplo, cuando se producen errores de red.
Esta realización compensa la pérdida de la eficiencia de codificación del escalado paralelo. Además, esta modificación compensa asimismo la pérdida de eficiencia de codificación de una reducción del número de candidatos generados en la generación de predictores del vector de movimiento del módulo 1017. Con estos predictores no duplicados, solo es necesario generar 2 predictores en 1021. En consecuencia, el proceso de supresión 1021 necesita solo 10 comparaciones en el caso más complejo. Por lo tanto, solo se necesita un ciclo en lugar de 3 para el caso más complejo del diseño actual de HEVC presentado en la figura 2. Con esta simplificación, solo se necesitan 5 ciclos en el caso más complejo para obtener el conjunto de predictores de Fusión, en lugar de 11 para el diseño actual de HEVC.
Se apreciará que la cuarta realización de la figura 9 se puede combinar fácilmente con la tercera realización presentada en la figura 8.
A continuación, se describirán ejemplos de procesos para la generación de otros vectores de movimiento como predictores implementados por los módulos de generación de predictores del vector de movimiento 717, 817, 917 y 1017 de las figuras 6, 7, 8 y 9, respectivamente, con referencia a las figuras 10(a) a 10(c). El diseño actual de HEVC utiliza 3 esquemas para añadir nuevos predictores basados en la generación de conjuntos actual. El primer esquema se utiliza para segmentos B. La generación de predictores del vector de movimiento implica combinar los predictores del conjunto reducido de predictores 716, 816, 916, 1016 de las figuras 6, 7, 8 y 9, respectivamente. Se genera un predictor combinado seleccionando el vector de movimiento de la lista L0 de un primer predictor, y seleccionando el vector de movimiento de la lista L1 de otro predictor. Por ejemplo, el primer predictor combinado posible tiene el vector de movimiento (y el índice de referencia) de L0 del primer predictor de 716 y el vector de movimiento (y el índice de referencia) de L1 del segundo predictor de 716. En el diseño actual de HEVC, se pueden generar 12 posibles predictores combinados. La figura 10(a) muestra un ejemplo de este proceso.
El segundo esquema solo se puede utilizar para segmentos B. El predictor escalado comprende cambiar predictores unidireccionales con predictores bidireccionales. Si un predictor de 716 es unidireccional, el vector de movimiento se crea en la lista opuesta en función del vector de movimiento inicial. Por ejemplo, si el primer predictor de 716 es unidireccional y si señala a L0 con el índice de referencia 0, el valor de su vector de movimiento es escalado para señalar al índice de referencia 0 de L1. El predictor construido contiene el índice de referencia 0 y el valor del vector de movimiento para L0, y el índice de referencia 0 y el vector escalado para la lista L1. Este nuevo predictor bidireccional es añadido al segundo conjunto de predictores (718). Esta clase de generación de predictores es muy compleja, porque necesita escalar los vectores de movimiento, por lo que aumenta el número de ciclos para el módulo 717 (3 ciclos). Por lo tanto, el proceso de escalado puede ser limitado para invertir el signo de la componente del valor del vector de movimiento que se puede ejecutar en un ciclo, en lugar de 3, para el proceso de escalado clásico. La figura 10(b) muestra un ejemplo de esta generación.
Otro procedimiento para generar nuevos predictores del vector de movimiento es cambiar los predictores bidireccionales a predictores unidireccionales. En ese caso, cuando un predictor es bidireccional, se pueden generar 2 nuevos predictores (uno para cada lista). Este es un proceso de baja complejidad en comparación con el proceso del vector de movimiento escalado de la figura 10(a).
En el diseño actual de HEVC, al final de la lista se añade un valor del “vector de movimiento cero”. Para la Fusión, se configura el valor de cero para ambos vectores de movimiento de L0 y L1. Y, si es posible, el índice del fotograma de referencia de cada lista se incrementa para crear otros predictores cero. Por lo tanto, sólo se cambia el índice de referencia. Si se utiliza el índice de referencia N en ambas listas, se pueden añadir N vectores cero al conjunto de predictores. La figura 10(c) muestra un ejemplo de este tipo de proceso de generación de predictores del vector de movimiento.
Además, es posible utilizar predictores no duplicados añadiendo una o varias compensaciones a los componentes o varios componentes de un predictor disponible del conjunto inicial de predictores. Por ejemplo, si solo hay un predictor en el conjunto inicial de predictores, es posible generar 4 predictores que son todos diferentes. Por ejemplo, si se considera que el predictor en la lista es unidireccional, el primer predictor se genera añadiendo un valor de compensación en una componente del primer vector de movimiento. El segundo predictor se genera añadiendo la compensación inversa a la primera componente. El tercero se obtiene añadiendo la compensación a la segunda componente, y el cuarto, añadiendo la compensación inversa a la segunda componente. Cabe señalar que este proceso se puede aplicar al primer candidato, de tal manera que el predictor puede ser obtenido antes del proceso de supresión 715.
La figura 11 muestra un ejemplo de un escalado para el predictor temporal según se aplica en los módulos de escalado 709, 809, 909 y 1009 de las figuras 6, 7, 8 y 9, respectivamente. En esta figura, el vector de movimiento situado en la misma posición MVcol en el fotograma de referencia Ref0 señala a Ref2 con el POC (Recuento de orden de las imágenes) igual a N-3. Se ha determinado el fotograma de referencia del predictor temporal MVt, y es igual a Ref0 (número de POC igual a N-1). La distancia temporal iDiffPocD del vector de movimiento situado en la misma posición es igual al POC de Ref2 menos el POC de Ref0. Por lo tanto, su distancia temporal es igual a:
¡DiffPocD - (N-3) - (N-1) = 2
De la misma manera, la distancia temporal iDiffPocB que debe ser cubierta por el predictor temporal es igual al POC del fotograma actual N menos el POC de Ref0:
DiffPocB —(N) - (N-1) = 1
Teóricamente, el vector de movimiento de escalado para el predictor temporal es igual a:
MVt = (¡DiffPocB * MVcol)/ ¡DiffPocD
De este modo, en el ejemplo, cada componente (horizontal y vertical) se divide por 2. Sin embargo, en el diseño actual de HEVC, el escalado de un vector de movimiento viene dado por el siguiente proceso:
- El factor de escalado está determinado por la siguiente fórmula:
¡Escalado = (¡DiffPocB * ¡X 32) » 6 ;
- siendo iX
¡x = (0x4000 abs(iDiffPocD /2)) / ¡DiffPocD;
- El MVt viene dado, por lo tanto, por:
MVt = (¡Escalado * MVcol 127 (¡Escalado * MVcol < 0)) >> 8 En estas fórmulas:
“>>” representa el operador de desplazamiento
“abs” representa una función que devuelve el valor absoluto
“0x4000” representa el valor 16384
Las realizaciones de la invención proporcionan de este modo un proceso de obtención paralelo que tiene como objetivo reducir el número de ciclos necesarios para obtener un conjunto de predictores del vector de movimiento con un impacto menor en la eficiencia de la codificación.
Aunque la presente invención ha sido descrita anteriormente en el presente documento con referencia a realizaciones específicas, la presente invención no está limitada a las realizaciones específicas, y serán evidentes para un experto en la técnica modificaciones que se encuentran dentro del alcance de la presente invención. Muchas modificaciones y variaciones adicionales se sugerirán a los expertos en la técnica haciendo referencia a las realizaciones ilustrativas anteriores, que se proporcionan solo a modo de ejemplo y que no pretenden limitar el alcance de la invención que se determina únicamente mediante las reivindicaciones adjuntas. En concreto, las diferentes características de diferentes realizaciones pueden ser intercambiadas, cuando sea apropiado.
En las reivindicaciones, el término “que comprende” no excluye otros elementos o etapas, y el artículo indefinido “un” o “una” no excluye una pluralidad. El mero hecho de que las diferentes características se citen en reivindicaciones dependientes diferentes entre sí no indica que una combinación de estas características no se pueda utilizar ventajosamente.
Esta solicitud es una solicitud divisional de la Solicitud de Patente EP 12751267.1 (estando publicada la “solicitud inicial”, también como EP 2745515.)

Claims (26)

REIVINDICACIONES
1. Procedimiento implementado por ordenador para obtener, por lo menos, un predictor de información del movimiento para la codificación o la descodificación de una porción de una imagen mediante compensación del movimiento con respecto a, por lo menos, una porción de la imagen de referencia, en el que para codificar o descodificar dicha porción de la imagen, el procedimiento comprende:
proporcionar para el procesamiento,
uno o varios candidatos de primer predictor de información del movimiento que comprenden, por lo menos, un candidato de predictor temporal de información del movimiento, y
candidatos de segundo predictor de información del movimiento que comprenden, por lo menos, un candidato de predictor espacial de información del movimiento, y excluyendo cualquier candidato de predictor temporal de información del movimiento, en el que, por lo menos, uno de dichos candidatos de segundo predictor de información del movimiento comprende información del movimiento de un bloque superior con respecto a la porción de la imagen que se va a codificar o descodificar en el caso de que la información del movimiento del bloque superior esté disponible;
procesar (808, 809) uno o varios candidatos de primer predictor de información del movimiento, comprendiendo dicho procesamiento escalar dichos uno o varios candidatos de primer predictor de información del movimiento; procesar (808, 815, 817) los candidatos de segundo predictor de información del movimiento; y
obtener (819), en base a los candidatos de predictor de información del movimiento (818, 814) resultantes del procesamiento de uno o varios candidatos de primer predictor de información del movimiento y del procesamiento del segundo candidato de predictor de información del movimiento, un conjunto (820) de candidatos de predictor de información del movimiento que se puede utilizar para predecir dicha porción de imagen a partir de la porción de imagen de referencia, comprendiendo dicha obtención suprimir duplicados de candidatos de predictor de información del movimiento;
en el que el procesamiento de los candidatos de segundo predictor de información del movimiento comprende excluir uno o varios duplicados de entre los segundos candidatos de predictor de información del movimiento, en el caso de que uno o varios de los segundos candidatos de predictor de información del movimiento sean iguales (816) y generen (717, 817) uno o varios candidatos de predictor de información del movimiento adicionales en función de uno o varios de los candidatos de segundo predictor de información del movimiento de los que se han excluido uno o varios duplicados.
2. Procedimiento, según la reivindicación 1, en el que, por lo menos, parte del procesamiento de los candidatos de segundo predictor de información del movimiento se realiza simultáneament, por lo menos, con parte del procesamiento de uno o varios candidatos de primer predictor de información del movimiento.
3. Procedimiento, según la reivindicación 1 o 2, en el que el procesamiento de uno o varios primeros candidatos de predictor de información del movimiento comprende un escalado temporal (809) del candidato o de cada candidato de predictor temporal de información del movimiento en base a una diferencia temporal entre la imagen de la porción de la imagen que se va a codificar y la imagen de la porción de la imagen de referencia.
4. Procedimiento, según la reivindicación 1, en el que la etapa de generar uno o varios candidatos de predictor de información del movimiento adicionales comprende combinar uno o varios candidatos de predictor de información del movimiento de los candidatos de segundo predictor de información del movimiento y/o añadir una compensación a uno o varios de los candidatos de segundo predictor de información del movimiento.
5. Procedimiento, según cualquiera de las reivindicaciones 1 a 4, en el que el escalado del candidato del predictor temporal de información del movimiento de uno o varios candidatos de primer predictor de información del movimiento se realiza simultáneamente con las etapas de excluir duplicados y generar uno o varios candidatos de predictor de información del movimiento adicionales.
6. Procedimiento, según cualquier reivindicación anterior, que comprende, además:
excluir duplicados de entre los candidatos de predictor de información del movimiento resultantes del procesamiento de uno o varios candidatos de primer predictor de información del movimiento y del procesamiento de los candidatos de segundo predictor de información del movimiento, en el caso de que uno o varios candidatos de predictor de información del movimiento resultantes del procesamiento de uno o varios candidatos de primer predictor de información del movimiento y del procesamiento de los candidatos de segundo predictor de información del movimiento sean los mismos, para proporcionar el conjunto final de predictores de información del movimiento que se pueden utilizar para codificar dicha porción de imagen de tal manera que no haya duplicados entre el conjunto final de candidatos de predictor de información del movimiento.
7. Procedimiento, según cualquiera de las reivindicaciones 1 a 6, en el que el procesamiento de los candidatos de segundo predictor de información del movimiento comprende, además:
excluir (721) duplicados de entre los candidatos de segundo predictor de información del movimiento y uno o varios candidatos adicionales de predictor de información del movimiento en el caso en que los candidatos de segundo predictor de información del movimiento y los candidatos de predictor de información del movimiento adicionales incluyan uno o varios candidatos de predictor de información del movimiento que son iguales.
8. Procedimiento, según la reivindicación 7, en el que excluir duplicados de los candidatos de segundo predictor de información del movimiento y uno o varios candidatos de predictor de información del movimiento adicionales se realiza simultáneamente con el escalado del candidato de predictor temporal de información del movimiento de uno o varios candidatos de primer predictor de información del movimiento.
9. Procedimiento, según cualquier reivindicación anterior, en el que el procesamiento de los candidatos de segundo predictor de información del movimiento se realiza simultáneamente con el procesamiento de uno o varios candidatos de primer predictor de información del movimiento en base a una estimación de la duración del procesamiento del primer subconjunto.
10. Procedimiento, según la reivindicación 1, en el que uno o varios candidatos de predictor de información del movimiento que resultan del procesamiento de los candidatos de segundo predictor de información del movimiento se añaden a uno o varios candidatos de predictor de información del movimiento que resultan del procesamiento de uno o varios candidatos de primer predictor de información del movimiento para obtener el conjunto de candidatos de primer predictor de información del movimiento en base a una estimación de la duración del procesamiento de uno o varios candidatos de primer predictor de información del movimiento.
11. Dispositivo para obtener, por lo menos, un candidato de predictor de información del movimiento para la codificación o la descodificación de una porción de imagen de una imagen mediante compensación del movimiento con respecto a, por lo menos, una porción de la imagen de referencia, comprendiendo el dispositivo:
obtener un medio configurado para obtener:
uno o varios candidatos de primer predictor de información del movimiento que comprenden, por lo menos, un candidato de predictor temporal de información del movimiento, y
candidatos de segundo predictor de información del movimiento que comprenden, por lo menos, un candidato de predictor espacial de información del movimiento y para excluir cualquier candidato de predictor temporal de información del movimiento, en el que, por lo menos, uno de dichos candidatos de segundo predictor de información del movimiento comprende información del movimiento de un bloque superior con respecto a la porción de la imagen que se va a codificar o descodificar en el caso de que la información del movimiento del bloque superior esté disponible;
un primer medio de procesamiento (808, 809), configurado para procesar uno o varios candidatos de primer predictor de información del movimiento, comprendiendo dicho procesamiento el escalado de dichos uno o varios candidatos de primer predictor de información del movimiento; y
un segundo medio de procesamiento (808, 815, 817), configurado para procesar los candidatos de segundo predictor de información del movimiento; y
un medio para obtener (819) un conjunto configurado para obtener, en base a los candidatos de predictor de información del movimiento (818, 814) resultantes del procesamiento de uno o varios candidatos de primer predictor de información del movimiento y del procesamiento de los candidatos de segundo predictor de información del movimiento, un conjunto (820) de candidatos de predictor de información del movimiento que se puede utilizar para predecir dicha porción de imagen a partir de la porción de imagen de referencia, comprendiendo dicha obtención (819) del conjunto la supresión de duplicados de candidatos de predictor de información del movimiento;
en el que el segundo medio de procesamiento es operable para excluir uno o varios duplicados de entre los candidatos de segundo predictor de información del movimiento, en el caso de que uno o varios de los candidatos de segundo predictor de información del movimiento sean iguales, y para generar uno o varios candidatos adicionales de predictor de información del movimiento en base a uno o varios de los candidatos de segundo predictor de información del movimiento de los que uno o varios duplicados han sido excluidos
12. Dispositivo, según la reivindicación 11, en el que el segundo medio de procesamiento es operable para realizar, por lo menos, parte de su procesamiento simultáneamente, por lo menos, con parte del procesamiento realizado por el primer medio de procesamiento.
13. Dispositivo, según la reivindicación 11 o 12, en el que el primer medio de procesamiento es operable para el escalado temporal (809) del candidato de predictor temporal de información del movimiento, o cada uno de ellos, en base a una diferencia temporal entre la imagen de la porción de la imagen a codificar y la imagen de la porción de la imagen de referencia.
14. Dispositivo, según la reivindicación 11, en el que el segundo medio de procesamiento es operable para combinar uno o varios candidatos de predictor de información del movimiento del segundo subconjunto, y/o añadir una compensación a uno o a varios candidatos de predictor de información del movimiento del segundo subconjunto.
15. Dispositivo, según la reivindicación 13, en el que el primer medio de procesamiento es operable para realizar el escalado del candidato de predictor temporal de información del movimiento del primer subconjunto simultáneamente con la exclusión de duplicados del candidato de segundo predictor de información del movimiento y la generación de uno o varios candidatos de predictor de información del movimiento adicionales realizados por el segundo medio de procesamiento.
16. Dispositivo, según cualquiera de las reivindicaciones 11 a 15, que comprende, además:
un medio de supresión, configurado para excluir duplicados de entre los candidatos de predictor de información del movimiento que resultan del procesamiento de uno o varios candidatos de primer predictor de información del movimiento y del procesamiento de los candidatos de segundo predictor de información del movimiento, en el caso de que uno o varios candidatos de predictor de información del movimiento que resultan del procesamiento de uno o varios candidatos de primer predictor de información del movimiento y del procesamiento de los candidatos de segundo predictor de información del movimiento sean iguales, para proporcionar candidatos de predictor de información del movimiento que se pueden utilizar para codificar dicha porción de imagen de manera que no haya duplicados entre el conjunto final de candidatos de predictor de información del movimiento.
17. Dispositivo, según la reivindicación 16, en el que el segundo medio de procesamiento es operable para: excluir duplicados de los candidatos de segundo predictor de información del movimiento y uno o varios candidatos de predictor de información del movimiento adicionales en el caso en el que los candidatos de segundo predictor de información del movimiento y uno o varios candidatos de predictor de información del movimiento adicionales incluyan uno o varios candidatos de predictor de información del movimiento que son iguales.
18. Dispositivo, según la reivindicación 17, en el que el segundo medio de procesamiento es operable para excluir duplicados de los candidatos de segundo predictor de información del movimiento y uno o varios candidatos de predictor de información del movimiento adicionales simultáneamente con el escalado del candidato de predictor temporal de información del movimiento del primer subconjunto realizado por el primer medio de procesamiento.
19. Dispositivo, según cualquiera de las reivindicaciones 11 a 18, que comprende, además, un medio configurado para estimar la duración del procesamiento de uno o varios candidatos de primer predictor de información del movimiento en el que el segundo medio de procesamiento realiza el procesamiento de los candidatos de segundo predictor de información del movimiento simultáneamente con el procesamiento del primer subconjunto realizado por el primer medio de procesamiento en base a la estimación de la duración del procesamiento del primer subconjunto.
20. Dispositivo, según cualquiera de las reivindicaciones 11 a 18, que comprende, además, un medio configurado para estimar la duración del procesamiento de uno o varios candidatos de primer predictor de información del movimiento, en el que uno o varios candidatos de predictor de información del movimiento resultantes del procesamiento de los candidatos de segundo predictor de información del movimiento son añadidos a uno o varios candidatos de predictor de información del movimiento resultantes del procesamiento de uno o varios candidatos de primer predictor de información del movimiento para obtener los candidatos de predictor de información del movimiento utilizables para predecir dicha porción de imagen de la porción de imagen de referencia en base a la duración del procesamiento del primer subconjunto.
21. Procedimiento implementado por ordenador, para codificar una secuencia de imágenes digitales en una secuencia de bits, siendo codificada, por lo menos, una parte de una imagen mediante compensación del movimiento con respecto a una porción de imagen de referencia, en el que, para, por lo menos, una parte de la imagen a codificar, comprendiendo el procedimiento:
obtener un conjunto de candidatos de predictor de información del movimiento para la predicción del movimiento de la porción de imagen con respecto a la, por lo menos, una porción de imagen de referencia según el procedimiento de cualquiera de las reivindicaciones 1 a 10;
seleccionar un candidato de predictor de información del movimiento del conjunto de candidatos de predictor de información del movimiento como un predictor de información del movimiento para codificar la porción de imagen; y codificar la porción de imagen utilizando el predictor de información del movimiento seleccionado.
22. Procedimiento, según la reivindicación 21, que comprende, además, codificar un elemento de información que identifica el predictor de información del movimiento seleccionado.
23. Dispositivo de codificación para codificar una secuencia de imágenes en una secuencia de bits, siendo codificada, por lo menos, una porción de una imagen, mediante compensación del movimiento con respecto a una porción de imagen de referencia, comprendiendo el dispositivo de codificación:
un dispositivo, según cualquiera de las reivindicaciones 11 a 20, para obtener un candidato predictor de información del movimiento;
un medio de selección para seleccionar un candidato predictor de información del movimiento del conjunto de candidatos de predictor de información del movimiento como un predictor de información del movimiento para codificar la porción de imagen; y
un medio de codificación para codificar la porción de imagen utilizando el predictor de información del movimiento seleccionado.
24. Procedimiento implementado por ordenador, para descodificar una secuencia de bits que comprende una secuencia codificada de imágenes, habiéndose codificado, por lo menos, una parte de una imagen mediante compensación del movimiento con respecto a una porción de imagen de referencia, comprendiendo el procedimiento para, por lo menos, una porción de la imagen a descodificar:
obtener un conjunto de candidatos de predictor de información del movimiento utilizables para la predicción del movimiento de la porción de imagen con respecto a la, por lo menos, una porción de imagen de referencia según el procedimiento de cualquiera de las reivindicaciones 1 a 10;
seleccionar un candidato de predictor de información del movimiento del conjunto de candidatos de predictor de información del movimiento como un predictor de información del movimiento para descodificar la porción de imagen; y
descodificar la porción de imagen utilizando el predictor de información del movimiento seleccionado.
25. Dispositivo de descodificación para descodificar una secuencia de bits que comprende una secuencia codificada de imágenes, habiéndose codificado, por lo menos, una parte de una imagen, mediante compensación del movimiento con respecto a una porción de imagen de referencia, comprendiendo el dispositivo de descodificación: un dispositivo para obtener, por lo menos, un candidato de predictor de información del movimiento según el dispositivo de cualquiera de las reivindicaciones 11 a 20;
un medio de selección, para seleccionar un candidato de predictor de información del movimiento del conjunto de candidatos de predictor de información del movimiento como un predictor de información del movimiento para descodificar la porción de imagen; y
un medio de descodificación, para descodificar la porción de imagen utilizando el predictor de información del movimiento seleccionado.
26. Programa informático, que comprende instrucciones que, cuando el programa es ejecutado por un ordenador, hacen que el ordenador implemente el procedimiento de cualquiera de las reivindicaciones 1 a 10 y 21 a 22 y 24.
ES18201066T 2011-08-17 2012-08-16 Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes Active ES2875926T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1114184.3A GB2493755B (en) 2011-08-17 2011-08-17 Method and device for encoding a sequence of images and method and device for decoding a sequence of images

Publications (1)

Publication Number Publication Date
ES2875926T3 true ES2875926T3 (es) 2021-11-11

Family

ID=44800466

Family Applications (5)

Application Number Title Priority Date Filing Date
ES12751267T Active ES2727629T3 (es) 2011-08-17 2012-08-16 Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
ES20205753T Active ES2964571T3 (es) 2011-08-17 2012-08-16 Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
ES20205749T Active ES2954263T3 (es) 2011-08-17 2012-08-16 Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
ES18201066T Active ES2875926T3 (es) 2011-08-17 2012-08-16 Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
ES20205750T Active ES2962876T3 (es) 2011-08-17 2012-08-16 Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes

Family Applications Before (3)

Application Number Title Priority Date Filing Date
ES12751267T Active ES2727629T3 (es) 2011-08-17 2012-08-16 Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
ES20205753T Active ES2964571T3 (es) 2011-08-17 2012-08-16 Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
ES20205749T Active ES2954263T3 (es) 2011-08-17 2012-08-16 Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES20205750T Active ES2962876T3 (es) 2011-08-17 2012-08-16 Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes

Country Status (16)

Country Link
US (7) US10306256B2 (es)
EP (5) EP2745515B1 (es)
JP (5) JP6109170B2 (es)
KR (6) KR102027721B1 (es)
CN (7) CN107277545B (es)
BR (2) BR122020002131B8 (es)
ES (5) ES2727629T3 (es)
GB (1) GB2493755B (es)
HR (3) HRP20231726T1 (es)
HU (5) HUE063247T2 (es)
PL (5) PL3806469T3 (es)
PT (3) PT3806468T (es)
RS (3) RS64675B1 (es)
RU (5) RU2643450C1 (es)
TR (1) TR201908328T4 (es)
WO (1) WO2013023785A2 (es)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2487197B (en) * 2011-01-11 2015-06-17 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
US9571833B2 (en) 2011-11-04 2017-02-14 Nokia Technologies Oy Method for coding and an apparatus
TWI511530B (zh) * 2014-12-09 2015-12-01 Univ Nat Kaohsiung 1St Univ Sc Distributed video coding system and decoder for distributed video coding system
US10368083B2 (en) * 2016-02-15 2019-07-30 Qualcomm Incorporated Picture order count based motion vector pruning
US11172203B2 (en) * 2017-08-08 2021-11-09 Mediatek Inc. Intra merge prediction
CN117336504A (zh) 2017-12-31 2024-01-02 华为技术有限公司 图像预测方法、装置以及编解码器
WO2019243534A1 (en) * 2018-06-21 2019-12-26 Telefonaktiebolaget Lm Ericsson (Publ) Tile shuffling for 360 degree video decoding
KR102611261B1 (ko) 2018-06-29 2023-12-08 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 업데이트 대상 lut 또는 비업데이트 lut의 구별
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
BR112020024142A2 (pt) 2018-06-29 2021-03-02 Beijing Bytedance Network Technology Co., Ltd. método para processamento de vídeo, aparelho para codificação de dados de vídeo, meio de armazenamento e meio de gravação legíveis por computador não transitório
CN110662057B (zh) 2018-06-29 2022-06-21 北京字节跳动网络技术有限公司 视频处理方法、装置、设备以及存储比特流的方法
KR20240005239A (ko) 2018-06-29 2024-01-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut와 amvp 사이의 상호작용
JP7460617B2 (ja) 2018-06-29 2024-04-02 北京字節跳動網絡技術有限公司 Lut更新条件
JP7137008B2 (ja) 2018-06-29 2022-09-13 北京字節跳動網絡技術有限公司 1つまたは複数のルックアップテーブルを使用して、以前コーディングされた動き情報を順に記憶させてそれらを後続のブロックのコーディングに使用する概念
KR20240007299A (ko) 2018-06-29 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 룩업 테이블의 업데이트: fifo, 제약된 fifo
WO2020008350A1 (en) 2018-07-02 2020-01-09 Beijing Bytedance Network Technology Co., Ltd. Luts with intra prediction modes and intra mode prediction from non-adjacent blocks
TW202025760A (zh) 2018-09-12 2020-07-01 大陸商北京字節跳動網絡技術有限公司 要檢查多少個hmvp候選
US10958932B2 (en) * 2018-09-12 2021-03-23 Qualcomm Incorporated Inter-prediction coding of video data using generated motion vector predictor list including non-adjacent blocks
CN109274966A (zh) * 2018-09-21 2019-01-25 华中科技大学 一种基于运动矢量的监控视频内容去重方法和系统
TWI766214B (zh) 2018-12-28 2022-06-01 日商Jvc建伍股份有限公司 影像編碼裝置、影像編碼方法、影像編碼程式、影像解碼裝置、影像解碼方法及影像解碼程式
WO2020143741A1 (en) 2019-01-10 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Invoke of lut updating
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
CN113330739A (zh) 2019-01-16 2021-08-31 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
CN113615193A (zh) 2019-03-22 2021-11-05 北京字节跳动网络技术有限公司 Merge列表构建和其他工具之间的交互
CN116156199B (zh) * 2019-06-07 2023-10-03 北京达佳互联信息技术有限公司 用于视频解码、视频编码的方法、计算设备和存储介质

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08129646A (ja) * 1994-11-02 1996-05-21 Matsushita Electric Ind Co Ltd 画像符号化方法、画像復号化方法、画像処理方法及びその装置
JPH1079949A (ja) 1996-09-04 1998-03-24 Oki Electric Ind Co Ltd 画像符号化装置、画像復号化装置及び画像伝送システム
EP0919099B1 (en) * 1997-03-14 2001-11-21 CSELT Centro Studi e Laboratori Telecomunicazioni S.p.A. Circuit for motion estimation in digitised video sequence encoders
ES2569491T3 (es) 1999-02-09 2016-05-11 Sony Corporation Sistema de codificación y método asociado
US7206448B2 (en) 2002-02-28 2007-04-17 At&T Corp. System and method for using pattern vectors for video and image coding and decoding
WO2003098939A1 (en) * 2002-05-22 2003-11-27 Matsushita Electric Industrial Co., Ltd. Moving image encoding method, moving image decoding method, and data recording medium
US20040001546A1 (en) * 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
JP2004023458A (ja) 2002-06-17 2004-01-22 Toshiba Corp 動画像符号化/復号化方法及び装置
JP4724351B2 (ja) * 2002-07-15 2011-07-13 三菱電機株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置
WO2004040915A1 (ja) * 2002-11-01 2004-05-13 Matsushita Electric Industrial Co., Ltd. 動画像符号化方法および動画像復号化方法
US7450642B2 (en) * 2002-11-13 2008-11-11 Sony Corporation Fast motion vector prediction method
WO2004064403A1 (en) * 2003-01-10 2004-07-29 Koninklijke Philips Electronics N.V. Efficient predictive image parameter estimation
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8000392B1 (en) 2004-02-27 2011-08-16 Vbrick Systems, Inc. Phase correlation based motion estimation in hybrid video compression
KR100587561B1 (ko) * 2004-04-08 2006-06-08 삼성전자주식회사 모션 스케일러빌리티를 구현하는 방법 및 장치
KR100631768B1 (ko) * 2004-04-14 2006-10-09 삼성전자주식회사 비디오 코딩에서 프레임간 예측방법 및 비디오 인코더와,비디오 디코딩방법 및 비디오 디코더
WO2005104552A1 (ja) 2004-04-23 2005-11-03 Sumitomo Electric Industries, Ltd. 動画像データの符号化方法、復号化方法、これらを実行する端末装置、及び双方向対話型システム
CN101005620B (zh) * 2004-09-03 2011-08-10 微软公司 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新
DE102004061906A1 (de) * 2004-12-22 2006-07-13 Siemens Ag Bildencodierverfahren, sowie dazugehöriges Bilddecodierverfahren, Encodiervorrichtung und Decodiervorrichtung
CN101156451A (zh) * 2005-04-12 2008-04-02 皇家飞利浦电子股份有限公司 使用基于区域的多次通过运动估计和时间运动矢量候选更新的视频处理
WO2007063808A1 (ja) 2005-11-30 2007-06-07 Kabushiki Kaisha Toshiba 画像符号化/画像復号化方法及び画像符号化/画像復号化装置
CN101422047B (zh) * 2006-04-14 2011-01-12 Nxp股份有限公司 图像边界处的运动估计方法及显示设备
CN104822062B (zh) * 2007-01-08 2018-11-30 诺基亚公司 用于视频编码中扩展空间可分级性的改进层间预测
KR101835342B1 (ko) * 2007-10-16 2018-03-07 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8908765B2 (en) * 2007-11-15 2014-12-09 General Instrument Corporation Method and apparatus for performing motion estimation
WO2009115901A2 (en) * 2008-03-19 2009-09-24 Nokia Corporation Combined motion vector and reference index prediction for video coding
JP4697275B2 (ja) * 2008-07-30 2011-06-08 ソニー株式会社 動きベクトル検出装置、動きベクトル検出方法及びプログラム
US8675736B2 (en) * 2009-05-14 2014-03-18 Qualcomm Incorporated Motion vector processing
CN102450016A (zh) * 2009-05-26 2012-05-09 松下电器产业株式会社 运动图像处理装置和运动图像处理方法
CN101931803B (zh) * 2009-06-26 2013-01-09 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
CN101605262B (zh) 2009-07-09 2011-11-09 杭州士兰微电子股份有限公司 可变块尺寸运动预测方法和装置
US9060176B2 (en) * 2009-10-01 2015-06-16 Ntt Docomo, Inc. Motion vector prediction in video coding
JPWO2011048903A1 (ja) * 2009-10-20 2013-03-07 シャープ株式会社 動画像符号化装置、動画像復号装置、および、データ構造
TWI566586B (zh) * 2009-10-20 2017-01-11 湯姆生特許公司 一序列形象的現時區塊之寫碼方法和重建方法
CN102648631B (zh) * 2009-12-01 2016-03-30 数码士控股有限公司 用于编码/解码高分辨率图像的方法和设备
CN101860754B (zh) * 2009-12-16 2013-11-13 香港应用科技研究院有限公司 运动矢量编码和解码的方法和装置
KR101327636B1 (ko) 2010-02-03 2013-11-12 주식회사 팬택 무선통신 시스템에서 시스템 프레임 번호를 관리하는 장치 및 방법
US8824558B2 (en) * 2010-11-23 2014-09-02 Mediatek Inc. Method and apparatus of spatial motion vector prediction
GB2487200A (en) * 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
EP2664146A1 (en) * 2011-01-14 2013-11-20 Motorola Mobility LLC Joint spatial and temporal block merge mode for hevc
US9319716B2 (en) * 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US9282338B2 (en) * 2011-06-20 2016-03-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
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

Also Published As

Publication number Publication date
US20200366925A1 (en) 2020-11-19
KR101904404B1 (ko) 2018-10-05
CN107181960A (zh) 2017-09-19
RU2643450C1 (ru) 2018-02-01
CN107277546B (zh) 2020-03-17
RU2014110037A (ru) 2015-09-27
JP2017143529A (ja) 2017-08-17
US20200366927A1 (en) 2020-11-19
HUE064679T2 (hu) 2024-04-28
US20230089360A1 (en) 2023-03-23
KR20180110205A (ko) 2018-10-08
EP2745515A2 (en) 2014-06-25
RU2720560C1 (ru) 2020-05-12
US11134266B2 (en) 2021-09-28
KR20160054027A (ko) 2016-05-13
HUE064678T2 (hu) 2024-04-28
KR20180108925A (ko) 2018-10-04
ES2964571T3 (es) 2024-04-08
KR20190126463A (ko) 2019-11-11
ES2727629T3 (es) 2019-10-17
ES2962876T3 (es) 2024-03-21
US11134265B2 (en) 2021-09-28
TR201908328T4 (tr) 2019-06-21
PT3806469T (pt) 2023-11-03
EP3806469B1 (en) 2023-10-11
EP3806468A2 (en) 2021-04-14
CN103748880B (zh) 2017-06-09
KR102042374B1 (ko) 2019-11-07
CN107197306A (zh) 2017-09-22
US20210392368A1 (en) 2021-12-16
PT3806468T (pt) 2023-09-12
US11729415B2 (en) 2023-08-15
HUE063247T2 (hu) 2024-01-28
JP2014527362A (ja) 2014-10-09
EP3806470A2 (en) 2021-04-14
EP3806469A3 (en) 2021-04-21
CN107277543A (zh) 2017-10-20
CN103748880A (zh) 2014-04-23
CN107277543B (zh) 2020-03-17
JP6679781B2 (ja) 2020-04-15
PL3806468T3 (pl) 2024-01-15
RU2684753C1 (ru) 2019-04-12
RU2589402C2 (ru) 2016-07-10
BR122020002131B1 (pt) 2023-08-15
BR122020002131B8 (pt) 2023-10-10
RS65035B1 (sr) 2024-02-29
EP3806468A3 (en) 2021-04-21
US20140321544A1 (en) 2014-10-30
US10771806B2 (en) 2020-09-08
EP3806469A2 (en) 2021-04-14
GB201114184D0 (en) 2011-10-05
KR20140047157A (ko) 2014-04-21
JP2019134455A (ja) 2019-08-08
HRP20231726T1 (hr) 2024-03-15
CN107181960B (zh) 2020-10-30
BR112014002932B1 (pt) 2022-06-07
HRP20231270T1 (hr) 2024-02-02
CN107277545B (zh) 2020-03-17
BR112014002932A2 (pt) 2017-03-28
JP6679782B2 (ja) 2020-04-15
JP6821730B2 (ja) 2021-01-27
RU2708440C1 (ru) 2019-12-06
EP3806468B1 (en) 2023-07-19
CN107197306B (zh) 2020-06-23
GB2493755B (en) 2016-10-19
US11968390B2 (en) 2024-04-23
PL2745515T3 (pl) 2019-09-30
PL3806470T3 (pl) 2024-03-18
KR20180108924A (ko) 2018-10-04
JP6494675B2 (ja) 2019-04-03
EP3806470B1 (en) 2023-10-11
CN107277546A (zh) 2017-10-20
EP3806470A3 (en) 2021-04-21
JP6109170B2 (ja) 2017-04-05
WO2013023785A2 (en) 2013-02-21
PL3806469T3 (pl) 2024-03-18
PL3474552T3 (pl) 2021-10-25
EP2745515B1 (en) 2019-04-17
KR102038791B1 (ko) 2019-10-30
CN107277544A (zh) 2017-10-20
CN107277545A (zh) 2017-10-20
KR102027721B1 (ko) 2019-10-01
JP2019115061A (ja) 2019-07-11
HUE054992T2 (hu) 2021-10-28
US10306256B2 (en) 2019-05-28
HRP20240008T1 (hr) 2024-03-29
RS64982B1 (sr) 2024-01-31
WO2013023785A3 (en) 2013-05-23
US11134264B2 (en) 2021-09-28
KR101617740B1 (ko) 2016-05-18
PT3806470T (pt) 2023-11-16
KR102085498B1 (ko) 2020-03-05
GB2493755A (en) 2013-02-20
JP2019115060A (ja) 2019-07-11
EP3474552A1 (en) 2019-04-24
US20190215529A1 (en) 2019-07-11
HUE043598T2 (hu) 2019-08-28
CN107277544B (zh) 2020-10-27
EP3474552B1 (en) 2021-05-05
ES2954263T3 (es) 2023-11-21
US20200366926A1 (en) 2020-11-19
RS64675B1 (sr) 2023-11-30

Similar Documents

Publication Publication Date Title
ES2875926T3 (es) Procedimiento y dispositivo para codificar una secuencia de imágenes y procedimiento y dispositivo para descodificar una secuencia de imágenes
ES2835311T3 (es) Codificación y descodificación de video con resiliencia mejorada frente a errores
ES2755357T3 (es) Codificación y descodificación de video
JP4625131B2 (ja) ダイレクトモード動きベクトルの導出方法
BR112020014654A2 (pt) compensação de movimento afim em codificação de vídeo
ES2901803T3 (es) Procedimiento de codificación predictiva para vector de movimiento, procedimiento de decodificación predictiva para vector de movimiento, dispositivo de codificación de imagen, dispositivo de decodificación de imagen, y programas para ello
JPWO2011099463A1 (ja) 動きベクトル予測符号化方法,動きベクトル予測復号方法,動画像符号化装置,動画像復号装置およびそれらのプログラム
CN113055686B (zh) 一种编解码方法、装置及其设备
CN114710664A (zh) 一种解码、编码方法、装置及其设备
BR122020002130B1 (pt) Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador
BR122020002128B1 (pt) Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador
BR122020002129B1 (pt) Método e dispositivo para codificar e decodificar uma sequência de imagens e meio legível por computador