ES2743240T3 - Codificación y decodificación de una imagen o de una secuencia de imágenes divididas en bloques de píxeles - Google Patents

Codificación y decodificación de una imagen o de una secuencia de imágenes divididas en bloques de píxeles Download PDF

Info

Publication number
ES2743240T3
ES2743240T3 ES09718788T ES09718788T ES2743240T3 ES 2743240 T3 ES2743240 T3 ES 2743240T3 ES 09718788 T ES09718788 T ES 09718788T ES 09718788 T ES09718788 T ES 09718788T ES 2743240 T3 ES2743240 T3 ES 2743240T3
Authority
ES
Spain
Prior art keywords
grouping
blocks
block
value
parameter
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
ES09718788T
Other languages
English (en)
Inventor
Isabelle Amonou
Stéphane Pateux
Nathalie Cammas
Sylvain Kervadec
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.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Application granted granted Critical
Publication of ES2743240T3 publication Critical patent/ES2743240T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods 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 a group of pictures [GOP]
    • 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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

Procedimiento de codificación de una imagen o de una secuencia de imágenes que generan un flujo (F1) de datos que incluye unos datos representativos de grupos de píxeles en una de dichas imágenes (IE), llamados bloques, estando asociado cada uno de dichos bloques a al menos un parámetro de bloque, que incluye las etapas de: - reagrupación (C1) de una pluralidad de bloques en una agrupación (G1) de bloques en caso de proximidad entre cada uno de los valores de dicho al menos un parámetro con relación a los bloques de dicha pluralidad, - determinación (C2) de un valor característico de dicha agrupación (G1) de bloques, en función del valor de dicho al menos un parámetro de bloque, caracterizado por que incluye la etapa de: - codificación (C3) de los bloques de dicha agrupación (G1), en el que el valor de dicho al menos un parámetro con relación a cada bloque de dicha agrupación no se codifica o bien el valor de dicho al menos un parámetro con relación a cada bloque de dicha agrupación se codifica por cálculo de un valor de refinamiento que es igual a la diferencia entre el valor de dicho al menos un parámetro con relación a cada bloque de dicha agrupación y dicho valor característico y la codificación de la estructura de datos asociada a dicha agrupación (G1) de bloques, incluyendo dicha estructura de datos un dato asociado a dicho valor característico.

Description

DESCRIPCIÓN
Codificación y decodificación de una imagen o de una secuencia de imágenes divididas en bloques de píxeles
La presente invención se refiere de manera general al campo del tratamiento de imágenes y más precisamente a la codificación y a la decodificación de imágenes digitales y de secuencias de imágenes digitales.
Las imágenes y secuencias de imágenes digitales son conocidas por ocupar mucho espacio de memoria, lo que hace preciso, cuando se transmiten estas imágenes, comprimirlas con el fin de evitar problemas de congestión en la red de comunicación utilizada para esta transmisión, estando generalmente limitada la velocidad utilizable en esta.
Las técnicas actuales de codificación con compresión, particularmente la norma H.264/MPEG-4 AVC (del inglés "Advanced Video Coding", desarrollada por el grupo de trabajo "Joint Video Team" (JVT) resultado de la colaboración del grupo "Video Coding Expert Group" (VCEG) de la Unión Internacional de Telecomunicaciones y del grupo Moving Picture Experts Group (Mp Eg ) de la ISO/IEC y presentada en el documento ISO/IEC 14496-10), utilizan técnicas de predicción espacial o temporal de grupos de bloques de píxeles, llamados macrobloques, de una imagen en curso con relación a otros macrobloques que pertenecen a la misma imagen o a una imagen anterior o siguiente. Después de esta codificación predictiva, los bloques de píxeles se transforman, mediante una transformación de tipo transformada de coseno discreta, y posteriormente se cuantifican. Los coeficientes de los bloques de píxeles cuantificados se recorren a continuación en un orden de lectura que permite aprovechar el importante número de coeficientes nulos en las altas frecuencias, y posteriormente se codifican mediante una codificación entrópica.
Estas técnicas de codificación con compresión son eficaces pero no son óptimas para comprimir imágenes que presentan regiones de textura homogénea. En efecto, en la norma H.264/MPEG-4 AVC, la predicción espacial de un macrobloque en una imagen con relación a otro macrobloque en esta misma imagen no es posible más que si este otro macrobloque es un macrobloque vecino del macrobloque a predecir y se encuentra en ciertas direcciones predeterminadas con relación a este, es decir generalmente por encima y a la izquierda, en una vecindad llamada "causal". Asimismo, la predicción de los vectores de movimiento de un bloque o macrobloque de una imagen es una predicción causal con relación a los vectores de movimiento de los bloques vecinos.
Este tipo de predicción no permite por tanto aprovechar la similitud de textura de los macrobloques de zonas de la misma textura disjuntos, o de macrobloques alejados que se encuentran en una zona de la misma textura. Dicho de otra manera este tipo de técnica no permite dirigirse simultáneamente a un grupo de macrobloques que posean características comunes en tanto que entidad única. Además el movimiento de zonas de textura homogénea de una imagen a otra no se aprovecha ya de manera óptima: en efecto la predicción temporal de la norma H.264/MPEG-4 AVC permite aprovechar el movimiento de un macrobloque de una imagen a otra, pero no la pertenencia de este macrobloque a una zona que posea un movimiento homogéneo.
Se han propuesto ciertas técnicas llamadas de codificación por regiones, para resolver este problema, de segmentar las imágenes de una secuencia de vídeo de manera que aísle unas zonas de textura o de movimiento homogéneos en estas imágenes previamente a su codificación. Estas zonas definen unos objetos en estas imágenes, sobre los que se elige por ejemplo utilizar una codificación más fina o por el contrario más gruesa. Un ejemplo de una técnica de ese tipo se da en el artículo de IEEE (del inglés "Institute of Electrical and Electronics Engineers") titulado "An encoderdecoder texture replacement method with application to content-based movie coding" de A. Dumitras et al., publicado en 2004.
Sin embargo estas técnicas de codificación por regiones necesitan transmitir, al decodificador de destino de la secuencia de vídeo, un mapa de segmentación, calculada por imagen a nivel del codificador que emite esta secuencia de vídeo. Este mapa de segmentación es muy costoso en términos de sitio de memoria porque las fronteras de este mapa de segmentación no corresponden generalmente a las fronteras de los bloques de píxeles de las imágenes segmentadas. Además la segmentación de la secuencia de vídeo en regiones de formas arbitrarias no es determinista: las fronteras del mapa de segmentación no corresponden en general a las fronteras de los objetos reales que este mapa intenta dividir en las imágenes de la secuencia de vídeo. Debido a esto, solo se ha normalizado la representación de dichos mapas de segmentación y su transmisión (norma MPEG-4 parte 2), y no su producción.
En conclusión, las técnicas de segmentación son numerosas y ninguna de ellas es suficientemente genérica para dar una segmentación eficaz de no importa qué secuencia de imágenes. Estas técnicas complejas y no deterministas no se han desplegado jamás en consecuencia en codificadores industriales.
La presente invención se dirige a resolver los inconvenientes de la técnica anterior proporcionando unos procedimientos y unos dispositivos de codificación y de decodificación de imágenes, en los que los datos específicos en cada bloque o macrobloque, tales como unos datos de textura o de color, se ponen en común entre bloques o macrobloques que tienen una textura o un color similar.
De ese modo se dispone de las ventajas de puesta en común de las informaciones de los métodos por región sin los inconvenientes de la segmentación fina que exige la transmisión de un mapa de segmentación.
Con este fin, la invención propone un procedimiento de codificación de una imagen o de una secuencia de imágenes que genera un flujo de datos que incluye unos datos representativos de grupos de píxeles en una de dichas imágenes, llamados bloques, que incluye las etapas de:
- reagrupamiento de bloques en una agrupación de bloques, según la proximidad de sus valores respectivos correspondiendo a al menos un parámetro de bloque a codificar,
- determinación de un valor de dicho parámetro, siendo característico dicho valor de dicha agrupación de bloques,
caracterizado por que incluye la etapa de:
- codificación de los bloques de dicha agrupación, en el que los valores de dichos bloques para dicho parámetro se codifican implícitamente por herencia de dicho valor característico o se codifican como unos refinamientos con relación a dicho valor característico y codificación de la estructura de datos asociada a dicha agrupación de bloques, incluyendo dicha estructura de datos un dato asociado a dicho valor característico.
Gracias a la invención, se ponen en común unos datos específicos a los bloques que pertenecen a unas zonas de textura, de color o de movimiento homogéneas, de manera muy flexible con relación a las técnicas de la técnica anterior. En efecto el reagrupamiento de bloques por agrupaciones de bloques que tengan una textura homogénea incluye eventualmente unos bloques que están alejados entre sí o que pertenecen a zonas disjuntas. Además, el hecho de asociar una estructura de datos a cada una de estas agrupaciones permite poner en común igualmente unos datos de encabezados de bloques. Finalmente la invención no necesita transmitir el mapa de segmentación al decodificador destinatario de la imagen o de las imágenes codificadas mediante el procedimiento de codificación según la invención.
La codificación implícita por herencia de un valor de un parámetro para un bloque considerado significa que este valor no está codificado para este bloque. En la decodificación, el valor característico determinado para la agrupación se asigna al parámetro del bloque considerado.
La codificación por refinamiento de un valor de un parámetro para un bloque considerado significa que se codifica para el bloque considerado un valor de refinamiento de este valor. En la decodificación, el valor que se asigna al parámetro del bloque considerado es el valor característico determinado para la agrupación, a la que se suma el valor de refinamiento.
Según una característica ventajosa, dicho valor característico corresponde al valor de un bloque de dicha agrupación para dicho parámetro a codificar.
En efecto en un modo de realización de la invención, se utiliza un bloque particular de la imagen como estructura de datos asociada a una agrupación de bloques, lo que permite que la agrupación se aproveche de una información de este bloque, por ejemplo de la predicción temporal utilizada para codificar este bloque, cuando este bloque pertenece a una imagen inter.
Según otra característica ventajosa, en la etapa de reagrupamiento de bloques, al menos un sub-bloque de uno de los bloques así reagrupados no se asigna a dicha agrupación de bloques, codificándose una información de particionado de dicho bloque que determina los sub-bloques de dicho bloque asignados a dicha agrupación en dicha estructura de datos o en dicho bloque durante dicha etapa de codificación de bloques de dicha agrupación.
Esta característica permite definir unas zonas de textura o de movimiento homogéneo de manera precisa: en efecto no estando asignados ciertos sub-bloques a la agrupación de bloques a las que pertenecen, esta agrupación reagrupa en realidad unos sub-bloques, que dibujan una zona más delimitada que la formada por sus bloques de pertenencia.
Según otra característica ventajosa, dicha agrupación de bloques se asocia a un dato de prioridad de decodificación de los bloques de dicha agrupación con relación a otros bloques o agrupaciones de bloques de dicha imagen.
Este dato de prioridad se utiliza en ciertos casos para especificar al decodificador un orden de decodificación de los datos asociados a las agrupaciones o a los bloques. Por ejemplo cuando ciertos sub-bloques de un bloque no se asignan a una agrupación a la que pertenece este bloque, puede ser preferible decodificar inicialmente los sub-bloques del bloque asignados a la agrupación. Igualmente si una agrupación de bloques se define como una agrupación de varias agrupaciones, es preferible decodificar inicialmente la estructura de datos asociada a esta agrupación, antes de decodificar las estructuras de datos asociadas a las agrupaciones incluidas dentro.
Según otra característica ventajosa, cuando el procedimiento de codificación según la invención se utiliza para codificar una secuencia de imágenes, dicha agrupación de bloques se asocia a un dato de vida útil correspondiente a un número de imágenes sucesivas de dicha secuencia de imágenes, codificándose dicha estructura de datos asociada a dicha agrupación una única vez para dichas imágenes sucesivas.
Este dato de vida útil permite poner en común los datos comunes entre agrupaciones de una imagen a otra, lo que aprovecha la dimensión temporal de las imágenes a codificar, además de su dimensión espacial.
La invención se refiere también a un procedimiento de decodificación de un flujo de datos representativo de una imagen o de una secuencia de imágenes, incluyendo dicho flujo unos datos representativos de grupos de píxeles en una de dichas imágenes, llamados bloques, caracterizado por que incluye las etapas siguientes:
- decodificación de una estructura de datos asociada a un conjunto de dichos bloques, llamada agrupación de bloques y de al menos un valor característico asociado correspondiente a un parámetro de codificación de bloque,
- y decodificación de un bloque de dicha agrupación, atribuyendo a dicho parámetro de codificación, si dicho parámetro no se ha codificado para dicho bloque, dicho valor característico o, si dicho parámetro está codificado para dicho bloque, un valor de refinamiento de dicho valor característico calculado a partir del valor correspondiente a dicho parámetro codificado.
Según una característica ventajosa, dicha etapa de decodificación de un bloque está precedida por una etapa de decodificación de una información de particionado de dicho bloque, determinando los sub-bloques de dicho macrobloque asignados a dicha agrupación de bloques, siendo decodificados los sub-bloques de dicho bloque no asignados a dicha agrupación sin utilizar dicho valor característico.
La invención se refiere igualmente a una portadora de señal de un flujo de datos representativo de una imagen o de una secuencia de imágenes, incluyendo dicho flujo unos datos representativos de grupos de píxeles en una de dichas imágenes, llamados bloques, caracterizado por que
- dicho flujo incluye además unos datos representativos de una estructura de datos asociada a un conjunto de dichos bloques, llamada agrupación de bloques, comprendiendo dicha estructura al menos un dato representativo de un valor característico de dicha agrupación de bloques y correspondiente a un parámetro de codificación de bloque,
- y por que los datos representativos de un bloque de dicha agrupación no contienen datos representativos de un valor de dicho parámetro de codificación o contienen un dato representativo de un refinamiento de dicho valor característico.
La invención se refiere también a un dispositivo de codificación de una imagen o de una secuencia de imágenes que genera un flujo de datos que incluye unos datos representativos de grupos de píxeles en una de dichas imágenes, llamados bloques, que incluye:
- unos medios de reagrupamiento de bloques en una agrupación de bloques, según la proximidad de sus valores respectivos correspondiendo a al menos un parámetro de bloque a codificar,
- unos medios de determinación de un valor característico de dicha agrupación de bloques para dicho parámetro a codificar,
caracterizado por que incluye:
- unos medios de codificación de una estructura de datos asociada a dicha agrupación de bloques, incluyendo dicha estructura de datos un dato asociado a dicho valor característico,
- y unos medios de codificación de los bloques de dicha agrupación, que incluye
o unos medios de codificación implícita de los valores de dichos bloques para dicho parámetro por herencia de dicho valor característico,
o y/o medios de codificación de dichos valores como unos refinamientos de dicho valor característico.
La invención se refiere también a un dispositivo de decodificación de un flujo de datos representativo de una imagen o de una secuencia de imágenes, incluyendo dicho flujo unos datos representativos de grupos de píxeles en una de dichas imágenes, llamados bloques, caracterizado por que incluye:
- unos medios de decodificación de una estructura de datos asociada a un conjunto de dichos bloques, llamada agrupación de bloques y de al menos un valor característico de dicha agrupación de bloques correspondiente a un parámetro de codificación de bloque,
- y unos medios de decodificación de un bloque de dicha agrupación, atribuyendo a dicho parámetro de codificación, si dicho parámetro no se ha codificado para dicho bloque, dicho valor característico o, si dicho parámetro está codificado para dicho bloque, un valor de refinamiento de dicho valor característico calculado a partir del valor correspondiente a dicho parámetro codificado.
La invención se refiere también a un programa informático que incluye instrucciones para implementar uno de los procedimientos según la invención, cuando se ejecuta en un ordenador.
Surgirán otras características y ventajas con la lectura de modos de realización preferidos descritos con referencia a las figuras siguientes, en las que:
- la figura 1 representa unas etapas del procedimiento de codificación según la invención,
- la figura 2 representa un primer modo de realización de un dispositivo de codificación según la invención, - la figura 3 representa una imagen que se codifica según la invención,
- la figura 4 representa una variante de codificación de macrobloques de una imagen codificada según la invención, - la figura 5 representa otra variante de codificación de macrobloques de una imagen codificada según la invención, - la figura 6 representa un dispositivo de decodificación según la invención,
- la figura 7 representa unas etapas del procedimiento de decodificación según la invención,
- la figura 8 representa un segundo modo de realización de un dispositivo de codificación según la invención, - la figura 9 representa también otra variante de codificación de macrobloques de una imagen codificada según la invención,
- y la figura 10 representa un vector de movimiento asociado al movimiento de una agrupación de macrobloques en una imagen codificada según la invención.
Se describirán ahora tres modos de realización de la invención, en los que el procedimiento de codificación según la invención se utiliza para codificar una secuencia de imágenes según un flujo binario próximo al que se obtiene mediante una codificación según la norma H.264/MPEG-4 AVC. En estos modos de realización, el procedimiento de codificación según la invención se implementa por ejemplo mediante software o hardware por modificaciones de un codificador inicialmente de acuerdo con la norma H.264/MPEG-4 AVC. El procedimiento de codificación según la invención se representa en la forma de un algoritmo que incluye unas etapas C1 a C3, representadas en la figura 1 y genéricas para los tres modos de realización de la invención.
Se ha de observar que el procedimiento de decodificación según la invención se implementa simétricamente mediante software o hardware por modificaciones de un decodificador inicialmente de acuerdo con la norma H.264/MPEG-4 AVC.
Además la codificación H.264/MPEG-4 AVC que utiliza una división de imágenes en macrobloques de píxeles, correspondiente a unos bloques de bloques de píxeles, en estos ejemplos de realización el procedimiento de codificación según la invención reagrupa en agrupaciones unos macrobloques. Sin embargo la invención se puede utilizar también para codificar o decodificar una imagen aislada o una secuencia de imágenes cualquiera compuesta de bloques de píxeles. De ese modo la invención se implementa igualmente por ejemplo modificando un codificador de vídeo inicialmente de acuerdo con la norma SVC, del inglés "Scalable Video Coding" por "codificación de vídeo escalable", extensión de la norma H.264/MPEG-4 AVC actualmente en curso de normalización por el "Join Video T eam (JVT)".
Según un primer modo de realización de la invención, el procedimiento de codificación según la invención se implementa en un dispositivo de codificación CO1 representado en la figura 2.
La primera etapa C1, representada en la figura 1, es la reagrupación de macrobloques de una imagen IE de la secuencia de imágenes a codificar, en una o varias agrupaciones de macrobloques. Para ello la imagen IE se aplica en la entrada de un módulo MRG1 de reagrupación de macrobloques por agrupaciones, representado en la figura 2.
Este módulo MRG1 de reagrupación por agrupaciones utiliza por ejemplo un método de crecimiento de región llamado también método de "K-means clustering", algoritmo que consiste en segmentar un conjunto de elementos en clases de elementos mediante unas medidas de distancia entre las características de los elementos del conjunto a segmentar. Un método de ese tipo se describe en el artículo IEEE de T. Kanungo et al., titulado "An Efficient k-Means Clustering Algorithm: Analysis and Implementation" y publicado en 2002. El módulo MRG1 de reagrupación por agrupaciones efectúa de ese modo un pre-análisis de las imágenes de la secuencia de imágenes a codificar, antes de transmitirlas con informaciones que definen las agrupaciones de macrobloques definidas para cada imagen de la secuencia, a los módulos MEV1 de estimación de movimiento, MCP1 de cálculo de predicción y MDC1 de módulo de decisión. El funcionamiento de estos módulos se detalla más adelante.
En esta etapa C1, se reagrupan así unos macrobloques de la imagen IE por agrupaciones en función de la similitud de las orientaciones de sus texturas, definidas en términos de contornos y de gradientes de textura o en función de la similitud de sus colores. Se determinan así tres agrupaciones G1, G2 y G3, como se representa en la figura 3. La agrupación G1 congrega unos macrobloques de textura y de movimiento muy próximos, la agrupación G2 congrega unos macrobloques de orientaciones similares (es decir que los contornos que pasan en estos macrobloques respetan una cierta orientación o la textura de estos macrobloques está orientada globalmente según una dirección favorecida) y la agrupación G3 congrega unos macrobloques de textura homogénea.
Ha de observarse que ciertos bloques de los macrobloques de la agrupación G2 no están asignados a la agrupación G2, lo que perfila una parte del contorno de la agrupación G2.
Además en este primer modo de realización, así como en el segundo modo de realización descrito más adelante, solo se ponen en común unos datos de textura a través de los datos de la agrupación de macrobloque. El tercer modo de realización detalla más adelante un ejemplo de utilización de la invención para poner en común unos datos de movimiento entre macrobloques que pertenecen a una agrupación de movimiento homogéneo.
La etapa siguiente C2 es la determinación de uno o varios valores que caracterizan cada una de las agrupaciones G1, G2 y G3 determinadas en la etapa C1. Esta determinación se efectúa por el módulo MRG1 de reagrupación por agrupaciones, que atribuye unos valores característicos de textura a las agrupaciones G1 y G3 y un valor característico de orientación de textura a la agrupación G2. El valor de orientación de textura atribuido a la agrupación G2 es por ejemplo la media de los valores de las orientaciones de los contornos de cada uno de los macrobloques de la agrupación G2. Igualmente los valores de textura atribuidos a las agrupaciones G1 y G3 son por ejemplo las medias respectivas de los valores de textura de los macrobloques respectivamente de la agrupación G1 y de la agrupación G3.
Se ha de observar que el módulo MRG1 determina eventualmente, cuando lo permite una agrupación, varios valores característicos para esta agrupación. Una agrupación de ese tipo se asocia así por ejemplo a un valor medio de píxel y a un valor de orientación de textura. Es posible en efecto codificar una textura de varias maneras, insertadas por ejemplo como complemento de los métodos existentes en un codificador H.264/MPEG-4 AVC:
- o bien se la codifica bajo la forma de una orientación asociada a un color, permitiendo estos dos datos resintetizar la textura,
- o bien se la codifica directamente en la forma de un cuadrado de píxeles,
- o bien se almacenan solamente unos valores estadísticos de textura (media, varianza...) de manera que la regenere de forma completamente paramétrica.
La elección de estas dos codificaciones depende por ejemplo del coste de la codificación utilizada en términos de velocidad.
Se ha de observar que el término "valor" se emplea aquí en el sentido de "valor de un parámetro" y designa por tanto eventualmente, en función de estos parámetros, varios valores. En este ejemplo de realización, se hace referencia para los parámetros de codificación útiles de los macrobloques, es decir distintos a los presentes en los encabezados de los datos de macrobloques, a aquellos definidos por la norma H.264/MPEG-4 AVC. Por ejemplo en función de la opción de codificación elegida, un valor de textura de macrobloque corresponde a tres cuadrados o matrices de valores, que son un cuadrado de valores de luminancia y dos cuadrados de valores de crominancia.
Al final de la etapa C2, el módulo MRG1 de reagrupación por agrupaciones transmite la imagen IE así como las informaciones que definen las agrupaciones G1, G2 y G3 a los módulos MCP1 de cálculo de predicción y MDC1 de decisión. Las informaciones que definen una de las agrupaciones G1, G2 o G3 son las siguientes:
- los índices de los macrobloques reagrupados en esta agrupación,
- el o los valores característicos atribuidos a esta agrupación en la etapa C2, tales como un valor característico de orientación de textura,
- para cada macrobloque de esta agrupación para el que no se asignan uno o varios bloques o sub-bloques a esta agrupación, una información de particionado que define los bloques y sub-bloques del macrobloque asignados a esta agrupación,
- si esta agrupación está presente en varias imágenes consecutivas, eventualmente un dato de vida útil de la agrupación, por ejemplo igual al número de imágenes siguientes también afectadas por esta agrupación, así como unos datos de actualización de los índices de los macrobloques que pertenecen a esta agrupación con relación a la imagen precedente, eventualmente las informaciones de particionado asociadas a los macrobloques actualizados, en el caso en que estos contienen unos bloques o sub-bloques no asignados a esta agrupación y unas informaciones de actualización de los valores característicos de la agrupación con relación a los que se han atribuido en una imagen precedente,
- si la agrupación debe decodificarse antes o después de otras agrupaciones de macrobloques o antes o después de los macrobloques no asignados a unas agrupaciones, llamados macrobloques "libres", un dato de prioridad de la decodificación.
La etapa siguiente C3 es la codificación de los valores característicos determinados en la etapa C2, en unas estructuras de datos asociadas a cada una de las agrupaciones G1, G2 y G3 y la codificación de los macrobloques de la imagen IE.
Durante la codificación de una agrupación, si se le asocia una vida útil, el módulo MCP1 de cálculo de predicción calcula eventualmente la diferencia entre los valores característicos atribuidos a la agrupación en la etapa C2 para la imagen IE y los valores característicos atribuidos a la agrupación en la etapa C2 para la imagen precedente. De ese modo solo se codifican los residuos de las previsiones temporales (informaciones de actualización) de los valores característicos de una imagen a otra para esta agrupación, salvo por supuesto para la primera imagen en la que aparece esta agrupación. Como variante, si una vida útil se asocia a esta agrupación, no se codifica ningún valor característico para las imágenes que siguen a la primera imagen en la que aparece esta agrupación (ninguna actualización de los valores característicos). En esta variante, el decodificador según la invención reutiliza en efecto siempre los mismos valores característicos de la agrupación, a saber los recibidos para la primera imagen en la que aparece esta agrupación.
La codificación de los valores característicos de una agrupación o predicciones de estos valores característicos, se efectúa por el módulo de decisión MDC1, de manera similar a la codificación de los valores correspondientes de un macrobloque en el formato H.264/MPEG-4 AVC.
La figura 4 muestra un tramo T de macrobloques de la imagen IE, codificado según una variante de la invención. Con relación al formato H.264/MPEG-4 AVC, se inserta un campo GD que codifica los datos específicos de las agrupaciones de los macrobloques del tramo entre el campo SH de datos de encabezado del tramo y el campo SD de datos de macrobloques.
Este campo GD codifica las estructuras de datos asociadas a cada agrupación, en las que se codifican los valores característicos de estas agrupaciones. Contiene, en este ejemplo de realización, una sintaxis próxima a la de H.264. De ese modo la estructura de datos asociada a la agrupación G1 comprende unos datos G1D y unos punteros P11, P12 y P13 que apuntan cada uno sobre un macrobloque de la agrupación G1. Los datos G1D comprenden:
- un campo GT que especifica un tipo de codificación para la agrupación, por ejemplo una codificación intra o inter,
- un campo GP que indica el tipo de predicción utilizado para codificar los valores característicos de la agrupación (sin predicción o la posición de los valores de predicción),
- y un campo GM que contiene la codificación del o de los valores característicos de la agrupación, eventualmente predichos y eventualmente una vida útil asociada a la agrupación, un dato de prioridad de la decodificación.
La vida útil asociada a una agrupación se codifica como variante de manera implícita, por ejemplo si esta duración es igual a la duración de un grupo de imágenes (o GOP por "Group Of Pictures" en inglés).
El campo GD contiene igualmente los datos de las agrupaciones G2 y G3, representándose los datos de la agrupación G3 en la figura 4 para un campo de datos G3D seguido de punteros P31, p 32, P33 y P34 sobre los macrobloques de la agrupación G3.
Cuando un puntero apunta sobre un macrobloque en el que solamente ciertos bloques no están asignados a una agrupación, por ejemplo uno de los punteros de la agrupación G2, este se codifica en una estructura de datos que incluye unos datos de particionado del macrobloque. Estos datos de particionado se explican más adelante.
Ha de observarse que el tramo T corresponde en general a toda la imagen IE. En el caso en el que los tramos de macrobloques utilizados no contienen cada uno una parte de la imagen IE, se utiliza por ejemplo un mecanismo de tipo FMO ("Flexible Macroblock Ordering") para reagrupar los datos de una agrupación así como los datos de macrobloques asociados a esta agrupación en un mismo tramo de macrobloques.
La figura 5 muestra el tramo T de macrobloques codificado según otra variante de la invención. Con relación a la variante de la figura 4, los datos GD1 incluyen además un campo GI de índice de agrupación y las estructuras de datos asociadas a cada una de las agrupaciones no contiene punteros sobre los macrobloques que pertenecen a estas agrupaciones. En efecto la indicación de la pertenencia de un macrobloque a una agrupación se hace de otra manera, mediante la utilización de un campo ML codificado en cada macrobloque, que incluye uno o varios índices de la agrupación, como se detalla más adelante en relación con la etapa C3 de codificación de macrobloques. Debido a esto, en esta variante de codificación, para una agrupación dada, los datos de la agrupación GD no contienen datos de actualización de los macrobloques reagrupados en la agrupación, ni de datos de prioridad de decodificación.
Se ha de observar que estas dos variantes de codificación permiten hacer pertenecer un mismo macrobloque a varias agrupaciones. De ese modo este macrobloque hereda por ejemplo un valor característico de la primera agrupación y otro valor característico de otra agrupación.
Además, los datos de prioridad asociados a ciertas agrupaciones permiten "conectar" estas agrupaciones: por ejemplo si se utilizan los valores característicos de una agrupación para predecir los valores característicos de otra agrupación, estos datos de prioridad se utilizan para indicar al decodificador que es necesario decodificar en primer lugar la agrupación que sirve de referencia y posteriormente decodificar la agrupación predicha a partir de esta agrupación de referencia.
En esta etapa C3, se codifican igualmente los macrobloques de la imagen IE. Como en la norma H.264/MPEG-4 AVC, el módulo de cálculo de predicción MCP1 calcula diferentes predicciones posibles de los macrobloques de la imagen IE. Estas predicciones se calculan a partir de la imagen IE o de otras imágenes de la secuencia, anteriormente codificadas y posteriormente decodificadas e insertadas en una lista de imágenes de referencia IR1. Estas imágenes de referencia IR1 se construyen a partir de las imágenes iniciales de la secuencia de imágenes a codificar de acuerdo con la norma H.264/MPEG-4 AVC:
- una codificación por transformada de coseno discreta y cuantificación se efectúa por el módulo MTQ1 de transformada y de cuantificación,
- posteriormente una decodificación por transformada de coseno discreta inversa y cuantificación inversa se efectúa por el módulo MTQI1 de transformada y de cuantificación inversa,
- y finalmente un módulo MFB1 de filtrado de efectos de bloque reduce los efectos de los bloques en las imágenes así codificadas y decodificadas para suministrar en la salida las imágenes de referencia IR1.
Las predicciones calculadas por el módulo de cálculo de predicción MCP1 dependen del tipo de imagen IE:
- Si la imagen IE es una imagen de tipo intra, es decir una imagen codificada sin predicción temporal con relación a unos macrobloques de otras imágenes de la secuencia a codificar, el módulo MCP1 de cálculo de predicción calcula las predicciones espaciales posibles de cada macrobloque de la imagen IE con relación a otros macrobloques de la imagen IE.
- Si la imagen IE es una imagen de tipo inter, es decir para la que es posible codificar un macrobloque por predicción temporal con relación a unos macrobloques de otras imágenes de la secuencia a codificar, entonces el módulo MEV1 calcula los movimientos entre la imagen IE y una o varias imágenes de referencia IR1. El módulo MCP1 de cálculo de predicción calcula a continuación las previsiones temporales posibles de cada macrobloque de la imagen IE con relación a unos macrobloques de otras imágenes de la secuencia a codificar e igualmente las predicciones espaciales posibles de cada macrobloque de la imagen IE con relación a otros macrobloques de la imagen IE.
Además de las previsiones temporales y espaciales previstas por la norma H.264/MPEG-4 AVC, el módulo de cálculo de predicción MCP1 calcula, para los macrobloques de la imagen IE que pertenece a una agrupación, las diferencias entre los valores característicos de esta agrupación y los valores correspondientes de estos macrobloques.
Una vez calculadas las posibles predicciones por el módulo de cálculo de predicción MCP1, el módulo de decisión MDC1 recorre los macrobloques de la imagen IE y elige, en esta etapa C3, el tipo de predicción utilizado para codificar cada uno de estos macrobloques. Entre las predicciones posibles para un macrobloque, el módulo de decisión MDC1 elige la predicción óptima según un criterio de velocidad distorsión o elige no utilizar predicción si el criterio velocidad distorsión para la opción "sin predicción" es mejor que todas las predicciones posibles. Un criterio de velocidad distorsión utilizable se da en el artículo IEEE "Rate-Constrained Coder Control and Comparison of Video Coding Standards" de T. Wiegang et al., publicado en julio de 2003.
Cuando el macrobloque recorrido por el módulo de decisión MDC1 es un macrobloque libre, es decir que no pertenece a ninguna agrupación, el módulo de decisión MDC1 codifica este macrobloque según una predicción espacial o temporal o sin predicción, según el tipo inter o intra de la imagen IE y la optimización posible del criterio velocidaddistorsión.
Cuando por el contrario el macrobloque recorrido por el módulo de decisión MDC1 es un macrobloque que pertenece a una agrupación, el módulo de decisión MDC1 codifica este macrobloque ya sea utilizando los datos de esta agrupación, o ya sea de la misma manera que un macrobloque libre, en función de la elección que optimice el criterio velocidad-distorsión.
Se ha de observar que cuando un macrobloque que pertenece a una agrupación se codifica como un macrobloque libre, entonces en la variante de codificación de la figura 4, los datos de esta agrupación no contienen un puntero sobre este macrobloque. Esto es por lo que la codificación de los datos de agrupación se efectúa al mismo tiempo que la codificación de los macrobloques de la agrupación. Dicho de otra manera la "producción de sintaxis" del tramo T tiene lugar después de que se hayan finalizado todas las "elecciones de codificación" para este tramo, a la vez para los datos de agrupación y para los datos de macrobloques.
Los macrobloques de la imagen IE se codifican por tramos de macrobloques según una de las variantes representadas en las figuras 4 y 5. Por ejemplo para el tramo T, los macrobloques se codifican cada uno en un campo Mdí entre los campos MD1 a MDn que incluyen el campo SD reservado a los datos de macrobloques. El campo SKR representa un macrobloque codificado según el modo "skip_run" de la norma H.264/MPEG-4 AVC.
En la variante de la figura 4, los macrobloques libres se codifican como en la norma H.264/MPEG-4 AVC: incluyen cada uno un campo MT que precisa el tipo inter o intra del macrobloque considerado, indicando un campo m P la dirección de predicción utilizada (espacial para los macrobloques intra, vectores de movimiento para los macrobloques inter) y un campo MCR que codifica los valores de los residuos del macrobloque. Por el contrario para un macrobloque que pertenece a una agrupación:
- el campo MT no está presente,
- el campo MP está presente para indicar el modo de predicción de los valores del macrobloque que corresponden a unos parámetros distintos de aquellos que corresponden a los valores característicos de la agrupación
- y el campo MCR aparece en el caso en que se codifica un residuo para refinar los datos heredados de la agrupación.
En la variante de la figura 5, los macrobloques libres se codifican igualmente como en la norma H.264/MPEG-4 AVC, pero los macrobloques que pertenecen a una agrupación tienen un nuevo tipo de macrobloque, por ejemplo "MB_CLUSTER", codificado en el campo MT y que indica su pertenencia a una agrupación. Cuando un macrobloque tiene el tipo "MB_CLUSTER", hay igualmente un nuevo campo de encabezado ML, que incluye uno o varios índices de agrupación, para indicar la o las agrupaciones a la que o a las que pertenece el macrobloque.
Se pueden concebir por supuesto otras variantes de codificación. Por ejemplo en otra variante de codificación, los macrobloques se codifican de la misma manera que en la variante de la figura 5 con la diferencia de que el campo de encabezado ML es un simple indicador que vale 0 o 1 según su pertenencia o no a una agrupación. Ha de observarse sin embargo que esta otra variante no permite hacer pertenecer un macrobloque a varias agrupaciones.
Además en estas variantes, la codificación del campo MCR de un macrobloque que utiliza los datos de una agrupación es la siguiente:
- los valores de los parámetros de codificación del macrobloque que no tienen valores correspondientes en los datos de la agrupación a la que pertenecen, se codifican de manera similar a la codificación AVC, utilizando la predicción indicada en el campo MP.
- los valores de los parámetros de codificación del macrobloque que tienen valores correspondientes en los datos de la agrupación a la que pertenece, no se codifican o solo se codifican las diferencias entre los valores característicos de la agrupación y los valores correspondientes del macrobloque. La elección de no codificar nada para estos valores o de no codificar más que unos valores de refinamiento se efectúa por ejemplo utilizando un criterio de velocidad/distorsión entre estos valores característicos y los valores correspondientes del macrobloque.
De este modo, la trama T incluye unos macrobloques en los que ciertos valores de parámetros no se codifican explícitamente, sino que se codifican implícitamente por herencia de los valores característicos codificados en los datos de agrupaciones GD.
Cuando solamente ciertos bloques de un macrobloque no pertenecen a una agrupación, la información de particionado asociada al macrobloque indica la división del macrobloque, permitiendo determinar cuáles bloques se asignan a la agrupación, los otros bloques, llamados en lo que sigue bloques "libres", no están asignados a ella. En la variante de la figura 5, esta división se codifica por ejemplo mediante un indicador asociado a cada bloque del macrobloque y que indica si este bloque está libre o no. La codificación de los bloques asignados a la agrupación se efectúa de manera similar a la codificación de un macrobloque totalmente asignado a la agrupación, es decir que los valores de estos bloques, para los parámetros correspondientes a los valores característicos de la agrupación, heredan estos valores característicos o los refinan. Para los bloques libres, la información de particionado indica para cada bloque el tipo de predicción AVC utilizada. Además, la proximidad por omisión utilizada para determinar unas direcciones de predicción se modifica, de manera que los bloques libres no utilicen los bloques del macrobloque que pertenecen a la agrupación.
Una vez efectuada esta codificación estructural por el módulo de decisión MDC1, los coeficientes de residuos, si existen, correspondientes a los bloques de la imagen IE se envían al módulo MTQ1de transformada y de cuantificación, para sufrir unas transformaciones de coseno discretas y posteriormente una cuantificación. Los tramos de macrobloques con estos coeficientes cuantificados se transmiten a continuación al módulo MCE1 de codificación entrópica, para producir, con las otras imágenes de la secuencia de vídeo ya codificadas de la misma manera que la imagen IE, un flujo de vídeo F1, binario, codificado según la invención.
El flujo binario F1 así codificado se transmite mediante una red de comunicación, a un terminal distante. Este incluye un decodificador DEC según la invención, representado en la figura 6.
El flujo binario F1 se envía inicialmente al módulo MDE de decodificación entrópica, decodificación inversa a la efectuada por el módulo MCE1. Posteriormente para cada bloque de la imagen a reconstruir, los coeficientes decodificados por el módulo MDE, si existen, se envían al módulo MQTI de cuantificación inversa y de transformada inversa.
El módulo MRI de reconstrucción de imagen recibe entonces unos datos decodificados correspondientes a los datos producidos por el módulo MDC1 en la etapa C3 de codificación según la invención, excepto por los errores de la transmisión. El módulo MRI implementa unas etapas D1 y D2 del procedimiento de decodificación según la invención, representadas en la figura 7. Simétricamente al procedimiento de codificación según la invención, estas etapas son genéricas para los tres modos de realización de la invención.
La primera etapa D1 es la decodificación de estructuras de datos de agrupaciones codificadas en los tramos de macrobloques de la imagen IE. Para una agrupación dada, el módulo MRI verifica gracias al campo GP del encabezado de los datos de la agrupación, si una predicción temporal se ha utilizado o no para la codificación de los datos de esta agrupación.
Si se ha utilizado una predicción con relación a una imagen precedente del flujo F1 o una parte de la imagen en curso, el módulo MRI utiliza, para decodificar los valores característicos de la agrupación, unos valores de predicción suministrados por el módulo MCP de cálculo de predicción, representado en la figura 6. El módulo de MCP recibe en efecto:
- unas imágenes IR de referencia de la secuencia de imágenes a decodificar, correspondientes a unas imágenes de la secuencia anteriormente reconstruidas por el módulo de reconstrucción MRI y que han sufrido un filtrado por el módulo MFB para reducir los efectos de bloque debidos a la decodificación,
- y los valores característicos de las agrupaciones anteriormente decodificadas por el módulo de reconstrucción MRI, valores que guarda en la memoria.
Para cada valor característico de la agrupación, se añaden entonces los valores de predicción a los valores decodificados por el módulo MQTI.
Si el campo GP de la agrupación no indica predicción temporal, entonces los valores decodificados por el módulo MQTI se utilizan tal como los valores característicos de la agrupación.
Una vez decodificados los valores característicos de cada agrupación de la imagen IE, si la imagen IE se ha codificado según la variante de la figura 4, el módulo MRI establece para cada agrupación de la imagen IE, una lista de los macrobloques asociados a esta agrupación y eventualmente de los bloques individualmente asignados a esta agrupación si ciertos bloques se dividen.
Como se ha explicado en relación con el procedimiento de codificación según la invención, ciertas agrupaciones que tienen una vida útil de varias imágenes y se codifican según la variante de codificación de la figura 4, contienen datos de actualización de los macrobloques que pertenecen a cada una de estas agrupaciones. En este caso el módulo MRI establece la lista de los macrobloques asociada a una agrupación de ese tipo aplicando los datos de actualización incluidos en esta agrupación en una lista establecida para la imagen precedente y contenida en una memoria del módulo MRI.
Una vez establecidas las listas de macrobloques y bloques de las agrupaciones de la imagen IE, si los datos asociados a estas agrupaciones contienen datos de prioridad de decodificación, que indican una prioridad de decodificación de una agrupación con relación a otra o con relación a los macrobloques libres de la imagen IE, entonces el módulo MRI determina un orden de decodificación de los macrobloques y bloques en función de sus datos de prioridad.
Si por el contrario la imagen IE se ha codificado según la variante de la figura 5, el módulo MRI no establece listas de macrobloques para cada agrupación. En efecto el sistema de adscripción de un macrobloque a una agrupación mediante un campo ML contenido en los datos de encabezado de este macrobloque, permite al módulo MRI tener en cuenta esta adscripción durante su recorrido por la imagen IE para decodificar sucesivamente cada macrobloque.
La etapa D2 es la decodificación de los macrobloques de la imagen IE por el módulo MRI. Esta decodificación se efectúa según el orden de decodificación determinado en la etapa D1, si se ha establecido un orden así por el módulo MRI, si no se efectúa en el orden de recorrido usual de los macrobloques de la imagen IE.
Los macrobloques libres de la imagen IE se decodifican de manera clásica utilizando la predicción temporal o espacial indicada en los campos MP de encabezado de estos macrobloques.
La decodificación de un macrobloque o bloque que pertenece a una agrupación de la imagen IE se efectúa de la siguiente manera:
- Para un parámetro a decodificar que corresponde a un valor característico de la agrupación:
- si los datos del macrobloque o bloque no contienen valor correspondiente a este parámetro a decodificar, el módulo MRI atribuye a este parámetro el valor característico de la agrupación,
- si los datos del macrobloque o bloque contienen un valor correspondiente a este parámetro a decodificar, el módulo MRI utiliza este valor para refinar el valor característico de la agrupación, por ejemplo añade este valor al valor característico de la agrupación y atribuye el valor así calculado al parámetro.
- Para un parámetro a decodificar que no corresponde a un valor característico de la agrupación, el valor correspondiente contenido en los datos del macrobloque o bloque se decodifica utilizando la predicción AVC indicada para este bloque o macrobloque.
Cuando un macrobloque pertenece a diversas agrupaciones, el módulo MRI verifica inicialmente si está codificada la información de particionado para este macrobloque, indicando para cada una de estas agrupaciones qué bloques o sub-bloques del macrobloque se le asignan. Si existe una información de ese tipo, los bloques y sub-bloques asignados a una única agrupación se decodifican como se ha descrito anteriormente para la decodificación de un macrobloque que pertenece a una única agrupación.
Si no se ha codificado una información de ese tipo para este macrobloque o si ciertos bloques o sub-bloques del macrobloque se asignan a varias agrupaciones, el módulo MRI examina para estos un parámetro de codificación del macrobloque por parámetro decodificación de macrobloque cuáles son los parámetros a los que es posible asignar por herencia un valor característico de una de estas agrupaciones o un refinamiento de este valor característico, como se ha descrito anteriormente para la decodificación de un macrobloque que pertenece a una única agrupación. Cuando es posible asignar por herencia a un parámetro de codificación varios valores característicos de agrupaciones diferentes o varios refinamientos de valores característicos de agrupaciones diferentes, el módulo MRI asigna por ejemplo a este parámetro una combinación de estos valores característicos o un refinamiento de esta combinación. Como variante, si existen datos de prioridad entre estas diferentes agrupaciones, el módulo MRI asigna por herencia a este parámetro de codificación el valor característico de la agrupación prioritaria o un refinamiento de este valor característico.
Una vez decodificados todos los macrobloques de la imagen IE, el módulo MRI de reconstrucción de imagen suministra en la salida del decodificador DEC, una imagen ID correspondiente a la decodificación de la imagen IE.
Según un segundo modo de realización de la invención, el procedimiento de codificación según la invención se implementa en un dispositivo de codificación CO2, representado en la figura 8. En este segundo modo de realización, las etapas del procedimiento de codificación según la invención son las mismas que en la figura 1, pero se implementan de modo diferente, efectuándose la reagrupación de los macrobloques de la imagen IE durante la codificación de los macrobloques "libres", es decir no reagrupados aún, de la imagen IE.
Se ha de observar que este segundo modo de realización de la invención se detalla menos que el primero porque incluye muchos elementos comunes con el primer modo de realización.
En este segundo modo de realización de la invención, la imagen IE a codificar llega directamente a la entrada de un módulo MEV2 de estimación de movimiento, de un módulo MCP2 de cálculo de predicción y de un módulo MDC2 de decisión. Como en el primer modo de realización de la invención, el módulo MCP2 de cálculo de predicción calcula diferentes predicciones posibles de los macrobloques de la imagen IE. Estas predicciones se calculan a partir de la imagen IE o de imágenes de referencia IR2. Estas imágenes de referencia IR2 se construyen a partir de otras imágenes de la secuencia, anteriormente codificadas por el módulo MTQ2 de transformada y de cuantificación, decodificadas por el módulo MTQI2 de transformada y de cuantificación inversa, y posteriormente filtradas por el módulo MFB2 de filtrado de efectos de bloque. Estos módulos MTQ2, MTQI2 y MFB2 funcionan respectivamente como los módulos MTQ1, MTQI1 y MFB1 del dispositivo CO1.
Las predicciones calculadas por el módulo de cálculo de predicción MCP2 dependen del tipo de imagen IE:
- Si la imagen IE es una imagen de tipo intra, el módulo MCP2 de predicción calcula las predicciones espaciales posibles de cada macrobloque de la imagen IE con relación a otros macrobloques de la imagen IE.
- Si la imagen IE es una imagen de tipo inter, entonces el módulo MEV2 calcula los movimientos entre la imagen IE y una o varias imágenes de referencia IR2. El módulo MCP2 de cálculo de predicción calcula a continuación las previsiones temporales posibles de cada macrobloque de la imagen IE con relación a unos macrobloques de otras imágenes de la secuencia a codificar e igualmente las predicciones espaciales posibles de cada macrobloque de la imagen IE con relación a otros macrobloques de la imagen IE.
Una vez calculadas estas predicciones, el módulo de decisión MDC2 implementa entonces el procedimiento de codificación según la invención, siguiendo las etapas C1 a C3 de la figura 1.
La etapa C1 es la reagrupación de macrobloques de la imagen IE por agrupaciones. Esta etapa utiliza los cálculos de predicción anteriormente efectuados sobre los macrobloques de la imagen IE por el módulo MCP2: Estos cálculos permiten determinar un macrobloque representativo de varios otros macrobloques, que se reagrupan entonces en una agrupación. La determinación de este macrobloque representativo utiliza el criterio velocidad-distorsión y no se hace por tanto forzosamente sobre un criterio perceptual, contrariamente al primer modo de realización.
La etapa siguiente C2 es la determinación de los valores característicos de las agrupaciones formadas en la etapa C1. Para una agrupación dada, estos valores característicos corresponden a los valores de parámetros de codificación del macrobloque representativo de esta agrupación.
La siguiente etapa C3 es la codificación de los valores característicos así determinados en unas estructuras de datos, asociándose una estructura de datos a cada agrupación formada en la etapa C1, así como la codificación de los macrobloques de las agrupaciones formadas en la etapa C1. Una agrupación se define por las siguientes informaciones:
- los índices de los macrobloques reagrupados en esta agrupación,
- el índice del macrobloque representativo de esta agrupación,
- para cada macrobloque de esta agrupación para el que no se asignan uno o varios bloques o sub-bloques a esta agrupación, una información de particionado que define los bloques y sub-bloques del macrobloque asignados a esta agrupación,
- si esta agrupación está presente en varias imágenes consecutivas, eventualmente un dato de vida útil de la agrupación, por ejemplo igual al número de imágenes siguientes también afectadas por esta agrupación, así como de los datos de actualización de los índices de los macrobloques que pertenecen a esta agrupación con relación a la imagen precedente y eventualmente de las informaciones de particionado asociadas a los macrobloques actualizados, en el caso en el que estos contienen bloques o sub-bloques no asignados a esta agrupación,
- si la agrupación debe decodificarse antes o después de otras agrupaciones de macrobloques o antes o después de los macrobloques libres, un dato de prioridad de la decodificación.
La codificación de los valores característicos de la agrupación se efectúa, en este segundo modo de realización, por referencia al macrobloque representativo de la agrupación según la figura 9.
Por relación a las variantes de codificación de las figuras 4 y 5, no hay campo GD de datos de la agrupación. En efecto la estructura de datos que codifica los valores característicos de la agrupación es en este modo de realización, el macrobloque representativo de la agrupación. Todos los otros datos de la agrupación están contenidos en los datos del macrobloque.
Como en las variantes de codificación de las figuras 4 y 5, los macrobloques libres se codifican como en la norma H.264/MPEG-4 AVC, es decir incluyen cada uno un campo MT que precisa el tipo inter o intra del macrobloque considerado, indicando un campo MP la dirección de predicción utilizada y codificando un campo MCR los valores de residuo del macrobloque o los valores no predichos del macrobloque si no se utiliza ninguna predicción temporal o espacial para el macrobloque considerado.
Por el contrario los macrobloques codificados utilizando los valores característicos de una agrupación, así como el macrobloque representativo de esta agrupación, incluyen cada uno los siguientes campos:
- el campo MT, que codifica un nuevo tipo "MB_CLUSTER" de macrobloque, que indica la pertenencia del macrobloque considerado a una agrupación,
- un campo MZ, que indica si el macrobloque considerado es el macrobloque representativo de la agrupación o no, da un índice de agrupación y eventualmente una vida útil de la agrupación y una prioridad de decodificación de la agrupación,
- el campo MP, presente solamente si el macrobloque considerado es el macrobloque representativo de la agrupación, que indica la predicción utilizada para codificar este macrobloque representativo (tipo de predicción y eventualmente dirección de predicción),
- y eventualmente el campo MCR que codifica el residuo de predicción del macrobloque considerado.
Un macrobloque representativo de la agrupación se codifica por tanto según una predicción tal como se define en la norma H.264/MPEG-4 AVC; si se trata por ejemplo, de una predicción espacial o temporal. Su campo MCR codifica los valores predichos del macrobloque o los valores no predichos si no se utiliza ninguna predicción temporal o espacial para el macrobloque considerado.
Los otros macrobloques que pertenecen a unas agrupaciones se codifican ya sea utilizando los datos de estas agrupaciones, o ya sea de la misma manera que un macrobloque libre, en función de la elección que optimice el criterio velocidad-distorsión.
Cuando el módulo MDC2 utiliza los datos de una agrupación para codificar un macrobloque, utiliza, para codificar el campo MCR de este macrobloque, los valores iniciales, es decir no predichos, del macrobloque representativo de la agrupación. De manera más precisa, el valor de un parámetro contenido en el campo MCR o bien no se codifica, o bien es igual a la diferencia entre el valor inicial correspondiente del macrobloque representativo de la agrupación y el valor inicial correspondiente del macrobloque a codificar. Cuando este valor no se codifica, se codifica de hecho implícitamente por herencia del valor inicial correspondiente del macrobloque representativo de la agrupación.
Una vez efectuada esta codificación estructural por el módulo de decisión MDC2, los coeficientes correspondientes a los bloques de la imagen IE se envían al módulo MTQ2 de transformada y de cuantificación, para sufrir unas transformaciones de coseno discretas y posteriormente una cuantificación. Los tramos de macrobloques con estos coeficientes cuantificados se transmiten a continuación al módulo MCE2 de codificación entrópica, para producir, con las otras imágenes de la secuencia de vídeo ya codificadas de la misma manera que la imagen IE, un flujo de vídeo F2, binario, codificado según la invención.
El flujo binario F2 así codificado se transmite mediante una red de comunicación, a un terminal distante. Este incluye un decodificador según la invención. Este decodificador tiene la misma estructura que el decodificador DEC del primer modo de realización, pero con relación al decodificador DEC, su módulo de reconstrucción de imagen funciona de modo diferente, puesto que efectúa la decodificación correspondiente a la codificación inversa de la efectuada por el módulo MDC2. Esta decodificación se efectúa según las dos etapas de decodificación D1 y D2 según la invención, representadas en la figura 7.
La etapa D1 es la decodificación de estructuras de datos de agrupaciones codificadas en los tramos de macrobloques de la imagen IE. Esta etapa se efectúa por el módulo de reconstrucción de imagen. Para ello el módulo de reconstrucción de imagen recorre los macrobloques contenidos en el flujo F2 para identificar los macrobloques representativos de las agrupaciones, identificando cada uno de estos macrobloques representativos una agrupación. Identifica igualmente durante este recorrido los macrobloques codificados utilizando los datos de estas agrupaciones y decodifica los campos MZ asociados a los macrobloques de agrupaciones, con el fin de determinar un orden de decodificación, teniendo en cuenta eventualmente unos datos de prioridad si estos están incluidos en estos campos MZ.
En esta etapa D1, el módulo de reconstrucción de imagen decodifica además cada macrobloque representativo de la agrupación anteriormente identificada, utilizando eventualmente unos datos de predicción calculados durante la decodificación de imágenes precedentes, si se indica una predicción temporal o espacial en el campo MP del macrobloque representativo.
Los valores contenidos en los campos MCR de estos macrobloques representativos sirven en efecto de referencia para decodificar a continuación los otros macrobloques de tipo "MB_CLUSTER".
La etapa D2 es la decodificación de los otros macrobloques del flujo F2, respetando el orden de decodificación establecido en la etapa D1, por el módulo de reconstrucción de imagen.
Los macrobloques del flujo F2 que tienen un campo MT que indica un tipo de macrobloque "intra" o "inter" se decodifican de manera clásica utilizando el tipo de predicción indicado en los campos MP de encabezado de estos macrobloques.
La decodificación de un macrobloque de una agrupación pero no representativo de esta agrupación, que tiene su campo MT igual a "MB_CLUSTER", se efectúa de la siguiente manera:
- si los datos en el campo MCR del macrobloque no contienen valor correspondiente a este parámetro a decodificar, el módulo de reconstrucción de imagen atribuye a este parámetro el valor correspondiente y anteriormente decodificado del macrobloque representativo de esta agrupación,
- si los datos en el campo MCR del macrobloque contienen un valor correspondiente a este parámetro a decodificar, el módulo de reconstrucción de imagen utiliza este valor para calcular un refinamiento del valor correspondiente y anteriormente decodificado del macrobloque representativo de esta agrupación y atribuye el valor así calculado al parámetro.
Según un tercer modo de realización de la invención, el procedimiento de codificación según la invención se implementa en un dispositivo de codificación similar al dispositivo CO1 de la figura 2, pero en el que el módulo de reagrupación por agrupación detecta un movimiento homogéneo de macrobloques de la imagen IE, por ejemplo los de la agrupación G1, con relación a una imagen anterior. Este movimiento homogéneo se modeliza por el módulo de reagrupación por agrupación mediante un vector V, representado en la figura 10. Como variante, este movimiento homogéneo de macrobloques de la imagen IE se codifica de otra forma que por un único vector, por ejemplo de manera paramétrica.
En este tercer modo de realización, se ponen en común, gracias a los datos de la agrupación G1, unos datos de movimiento y no unos datos de textura. Además en este tercer modo de realización, el procedimiento de codificación según la invención sigue las mismas etapas que en la figura 1, y se detalla por tanto menos que para el primer modo de realización, porque estas etapas incluyen muchos elementos comunes con el primer modo de realización.
En la primera etapa C1, el módulo de reagrupación por agrupación reagrupa por agrupaciones los conjuntos de macrobloques que tienen un movimiento homogéneo, en este caso los macrobloques de la agrupación C1. Esta reagrupación se efectúa por estimación del movimiento, utilizando unas técnicas similares a las utilizadas por el módulo MEV1 de estimación del movimiento.
La siguiente etapa C2 es la determinación de uno o varios valores de movimiento que caracterizan la agrupación G1. En este caso el módulo de reagrupación por agrupación efectúa una media de los vectores de movimiento asociados a los movimientos de los macrobloques de la agrupación G1 desde la imagen IP a la imagen IE, dando como resultado un vector V característico del movimiento.
Al final de la etapa C2, el módulo de reagrupación por agrupaciones transmite la imagen IE así como las informaciones que definen la agrupación G1 a los módulos de cálculo de predicción y de decisión del codificador utilizado en este tercer modo de realización. Las informaciones que definen la agrupación G1 son las siguientes:
- los índices de los macrobloques reagrupados en esta agrupación,
- los valores del vector V característico del movimiento, que corresponde a dos parámetros de tipo AVC para la codificación de un vector de movimiento.
Como variante, como en el primer y segundo modos de realización, se atribuye una vida útil a la agrupación G1, un dato de prioridad de decodificación o informaciones de particionado si ciertos bloques de un macrobloque de la agrupación G1 no están asignados a la agrupación G1. En esta variante, se puede concebir por tanto una predicción temporal para la codificación del vector característico de movimiento de la agrupación G1.
La etapa siguiente C3 es la codificación del vector V característico de la agrupación G1 en una estructura de datos asociada a la agrupación G1 y la codificación de los macrobloques de la imagen IE. Está codificación se efectúa por el módulo de decisión de manera similar a la codificación de un vector de movimiento cualquiera de un macrobloque en el formato H.264/MPEG-4 AVC.
La codificación de los datos de la agrupación G1 y de los macrobloques de la imagen IE se efectúa de manera similar a una de las variantes de la figura 4 o de la figura 5.
Particularmente en la variante de la figura 4, la estructura de datos asociada a la agrupación G1 comprende unos datos G1D y unos punteros P11, P12 y P13 que apuntan cada uno sobre un macrobloque de la agrupación G1. Los datos G1D comprenden un campo GM que contiene la codificación del vector V característico del movimiento de la agrupación. En la variante de la figura 5, los datos GD1 incluyen además un campo GI de índice de agrupación y las estructuras de datos asociadas a cada una de las agrupaciones no contiene punteros sobre los macrobloques que pertenecen a estas agrupaciones, la indicación de la pertenencia de un macrobloque a una agrupación se hace de otra manera, mediante la utilización de un campo ML codificado en cada macrobloque.
Siguiendo un criterio velocidad-distorsión, el módulo de decisión codifica los macrobloques libres de la imagen IE utilizando la predicción AVC más pertinente y los macrobloques de la agrupación G1 o bien como macrobloques libres, o bien utilizando los datos asociados a la agrupación G1.
En este último caso, cuando se utiliza la variante de codificación de la figura 4, un macrobloque de la agrupación G1 incluye un único campo, el campo MCR, que aparece en el caso en el que se codifica un residuo para refinar el vector V de movimiento característico de la agrupación o en el caso en el que se codifica un residuo para refinar la textura del macrobloque con relación a su textura obtenida por compensación de movimiento con ayuda del vector característico V eventualmente refinado.
Si por el contrario se utiliza la variante de la figura 5, este macrobloque incluye los campos siguientes:
- un campo MT que corresponde a un nuevo tipo de macrobloque, por ejemplo "MB_CLUSTER", que indica su pertenencia a una agrupación,
- un nuevo campo de encabezado ML, que indica la agrupación a la que pertenece el macrobloque,
- y un campo m Cr , que aparece en el caso en el que se codifica un residuo para refinar el vector V de movimiento característico de la agrupación o en el caso en el que se codifica un residuo para refinar la textura del macrobloque con relación a la textura obtenida por compensación de movimiento con ayuda del vector característico V eventualmente refinado.
Se ha de observar que cuando un macrobloque tiene el tipo "MB_CLUSTER", no hay campo MP puesto que en este modo de realización no se utiliza la predicción temporal para la codificación de datos de agrupación.
En cada una de estas variantes, la codificación del campo MCR de un macrobloque que utiliza los datos de la agrupación G1 es la siguiente:
- el valor del vector de movimiento calculado previamente para este macrobloque por el módulo de estimación de movimiento del codificador, no se codifica o solo se codifica la diferencia entre este valor y el valor del vector V característico del movimiento de la agrupación,
- los valores de los otros parámetros de la codificación del macrobloque, por ejemplo que caracterizan su textura, no se codifican o solo se codifican las diferencias entre los valores correspondientes obtenidos por compensación de movimiento utilizando el vector de movimiento del macrobloque previamente calculado por el módulo de estimación de movimiento.
Por ejemplo en la figura 10, se considera que el macrobloque MB corresponde aproximadamente al macrobloque MA de la imagen precedente IP y que el vector de movimiento entre el macrobloque Mb y el macrobloque MA corresponde al vector V característico del movimiento de la agrupación, mientras que el campo MCR del macrobloque MB:
- no contiene valor correspondiente al parámetro del vector de movimiento, codificándose este valor implícitamente como igual al valor del vector V característico del movimiento de la agrupación,
- y contiene unos valores de residuos de textura, correspondientes a las diferencias de textura entre el macrobloque MB y el macrobloque MA.
Una vez efectuada esta codificación estructural por el módulo de decisión, los coeficientes de residuos, si existen, correspondientes a los bloques de la imagen IE, sufren unas transformaciones de coseno discretas y posteriormente una cuantificación. Los tramos de los macrobloques con estos coeficientes cuantificados se someten a continuación a una codificación entrópica, para producir un flujo de vídeo binario codificado según la invención.
La decodificación de este flujo de vídeo binario se efectúa a continuación mediante un decodificador según la invención, que efectúa las operaciones inversas a las efectuadas por el codificador según la invención, de manera similar a los procedimientos de decodificación anteriormente descritos en los otros modos de realización de la invención.
Se ha de observar que se pueden concebir otros modos de realización y otras variantes de codificación y decodificación para implementar el procedimiento de codificación y el procedimiento de decodificación según la invención. Además son posibles diversas sintaxis de codificación. Por ejemplo, como variante, se ponen en común los datos de agrupaciones que tengan valores característicos similares, en una estructura de datos asociada a estas agrupaciones y que se utiliza para la decodificación de las estructuras de datos asociados individualmente a cada una de estas agrupaciones.

Claims (10)

REIVINDICACIONES
1. Procedimiento de codificación de una imagen o de una secuencia de imágenes que generan un flujo (F1) de datos que incluye unos datos representativos de grupos de píxeles en una de dichas imágenes (IE), llamados bloques, estando asociado cada uno de dichos bloques a al menos un parámetro de bloque, que incluye las etapas de:
- reagrupación (C1) de una pluralidad de bloques en una agrupación (G1) de bloques en caso de proximidad entre cada uno de los valores de dicho al menos un parámetro con relación a los bloques de dicha pluralidad, - determinación (C2) de un valor característico de dicha agrupación (G1) de bloques, en función del valor de dicho al menos un parámetro de bloque,
caracterizado por que incluye la etapa de:
- codificación (C3) de los bloques de dicha agrupación (G1), en el que el valor de dicho al menos un parámetro con relación a cada bloque de dicha agrupación no se codifica o bien el valor de dicho al menos un parámetro con relación a cada bloque de dicha agrupación se codifica por cálculo de un valor de refinamiento que es igual a la diferencia entre el valor de dicho al menos un parámetro con relación a cada bloque de dicha agrupación y dicho valor característico y la codificación de la estructura de datos asociada a dicha agrupación (G1) de bloques, incluyendo dicha estructura de datos un dato asociado a dicho valor característico.
2. Procedimiento de codificación según la reivindicación 1, en el que dicho valor característico corresponde al valor de dicho al menos un parámetro de un bloque de dicha agrupación (G1).
3. Procedimiento de codificación según la reivindicación 1 o 2, en el que en la etapa (C1) de reagrupación de bloques, al menos un sub-bloque de uno de los bloques así reagrupados no se asigna a dicha agrupación (G1) de bloques, codificándose una información de particionado de dicho bloque que determina los sub-bloques de dicho bloque asignados a dicha agrupación (G1) en dicha estructura de datos o en dicho bloque durante dicha etapa de codificación (C3) de bloques de dicha agrupación (G1).
4. Procedimiento de codificación según una cualquiera de las reivindicaciones 1 a 3, en el que dicha agrupación (G1) de bloques se asocia a un dato de prioridad de decodificación de los bloques de dicha agrupación (G1) con relación a otros bloques o agrupaciones de bloques de dicha imagen.
5. Procedimiento de codificación de una secuencia de imágenes según una cualquiera de las reivindicaciones 1 a 4, en el que dicha agrupación (G1) de bloques se asocia a un dato de vida útil correspondiente a un número de imágenes sucesivas de dicha secuencia de imágenes, codificándose dicha estructura de datos asociada a dicha agrupación (G1) una única vez para dichas imágenes sucesivas.
6. Procedimiento de decodificación de un flujo (F1) de datos representativo de una imagen o de una secuencia de imágenes, incluyendo dicho flujo (F1) unos datos representativos de grupos de píxeles en una de dichas imágenes (IE), llamados bloques, estando asociado cada uno de dichos bloques a al menos un parámetro de codificación de bloque, caracterizado por que incluye las etapas de:
- decodificación (D1) de una estructura de datos asociada a un conjunto de dichos bloques, llamada agrupación (G1) de bloques, en la que dichos bloques se han reagrupado en razón de la proximidad del valor de dicho al menos un parámetro con relación a cada uno de dichos bloques y decodificación de al menos un valor característico de dicha agrupación, siendo dicho valor característico función del valor de dicho al menos un parámetro de codificación de bloque,
- y decodificación (D2) de cada uno de los bloques de dicha agrupación (G1), atribuyendo a dicho al menos un parámetro de codificación de un bloque considerado en dicha agrupación, si el valor de dicho al menos un parámetro no está codificado para dicho bloque, dicho valor característico o bien, si el valor de dicho al menos un parámetro está codificado para dicho bloque, dicho valor característico al que se suma un valor de refinamiento que es igual a la diferencia entre el valor de dicho al menos un parámetro con relación a dicho bloque considerado y dicho valor característico.
7. Procedimiento de decodificación según la reivindicación 6, en el que dicha etapa (D2) de decodificación de un bloque está precedida por una etapa de decodificación de una información de particionado de dicho bloque, que determina los sub-bloques de dicho bloque asignados a dicha agrupación (G1) de bloques y en el que en dicha etapa (D2) de decodificación de dicho bloque, los sub-bloques de dicho bloque no asignados a dicha agrupación (G1) se decodifican sin utilizar dicho valor característico.
8. Dispositivo de codificación (CO1) de una imagen o de una secuencia de imágenes que generan un flujo (F1) de datos que incluye unos datos representativos de grupos de píxeles en una de dichas imágenes (IE), llamados bloques, estando asociado cada uno de dichos bloques a al menos un parámetro de bloque, incluyendo dicho dispositivo:
- unos medios (MRG1) de reagrupación de una pluralidad de bloques en una agrupación (G1) de bloques en caso de proximidad entre cada uno de los valores de dicho al menos un parámetro con relación a los bloques de dicha pluralidad,
- unos medios (MRG1) de determinación de un valor característico de dicha agrupación (G1) de bloques, en función del valor de dicho al menos un parámetro de bloque,
caracterizado por que incluye:
- unos medios (MDC1) de codificación de una estructura de datos asociada a dicha agrupación (G1) de bloques, incluyendo dicha estructura de datos un dato asociado a dicho valor característico,
- y unos medios (MDC1) de codificación de los bloques de dicha agrupación (G1), en los que el valor de dicho al menos un parámetro con relación a cada bloque de dicha agrupación no se codifica o bien el valor de dicho al menos un parámetro con relación a cada bloque de dicha agrupación se codifica por cálculo de un valor de refinamiento que es igual a la diferencia entre el valor de dicho al menos un parámetro con relación a cada bloque de dicha agrupación y dicho valor característico.
9. Dispositivo (DEC) de decodificación de un flujo (F1) de datos representativo de una imagen o de una secuencia de imágenes, incluyendo dicho flujo (F1) unos datos representativos de grupos de píxeles en una de dichas imágenes (IE), llamados bloques, estando asociado cada uno de dichos bloques a al menos un parámetro de codificación de bloque, caracterizado por que incluye:
- unos medios de decodificación (MRI) de una estructura de datos asociada a un conjunto de dichos bloques, llamada agrupación (G1) de bloques, en la que dichos bloques se han reagrupado en razón de la proximidad del valor de dicho al menos un parámetro con relación a cada uno de dichos bloques y de al menos un valor característico de dicha agrupación (G1) de bloques, siendo dicho valor característico función del valor de dicho al menos un parámetro de codificación de bloque,
- y unos medios de decodificación (MRI) de cada uno de los bloques de dicha agrupación (G1), atribuyendo a dicho al menos un parámetro de codificación de un bloque considerado en dicha agrupación, si el valor de dicho al menos un parámetro no está codificado para dicho bloque, dicho valor característico o bien, si el valor de dicho al menos un parámetro está codificado para dicho bloque, dicho valor característico al que se suma un valor de refinamiento que es igual a la diferencia entre el valor de dicho al menos un parámetro con relación a dicho bloque considerado y dicho valor característico.
10. Programa informático que incluye instrucciones para implementar uno de los procedimientos según una cualquiera de las reivindicaciones 1 a 7, cuando se ejecuta en un ordenador.
ES09718788T 2008-02-21 2009-02-20 Codificación y decodificación de una imagen o de una secuencia de imágenes divididas en bloques de píxeles Active ES2743240T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0851131 2008-02-21
PCT/FR2009/050278 WO2009112742A1 (fr) 2008-02-21 2009-02-20 Codage et decodage d'une image ou d'une sequence d'images decoupees en blocs de pixels

Publications (1)

Publication Number Publication Date
ES2743240T3 true ES2743240T3 (es) 2020-02-18

Family

ID=39846995

Family Applications (1)

Application Number Title Priority Date Filing Date
ES09718788T Active ES2743240T3 (es) 2008-02-21 2009-02-20 Codificación y decodificación de una imagen o de una secuencia de imágenes divididas en bloques de píxeles

Country Status (6)

Country Link
US (3) US8787685B2 (es)
EP (1) EP2255537B1 (es)
JP (1) JP5498963B2 (es)
CN (1) CN101953166B (es)
ES (1) ES2743240T3 (es)
WO (1) WO2009112742A1 (es)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8787685B2 (en) * 2008-02-21 2014-07-22 France Telecom Encoding and decoding an image or image sequence divided into pixel blocks
US8325796B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
EP4145825A1 (fr) * 2008-10-15 2023-03-08 Orange Procédé et dispositif de codage d'une séquence d'image mettant en uvre des blocs de taille différente, signal, support de données, procédé et dispositif de décodage, et programmes d ordinateur correspondants
FR2947134A1 (fr) 2009-06-23 2010-12-24 France Telecom Procedes de codage et de decodages d'images, dispositifs de codage et de decodage, flux de donnees et programme d'ordinateur correspondants.
JP2011091575A (ja) * 2009-10-21 2011-05-06 Sony Corp 符号化装置および方法
JP5281623B2 (ja) 2010-09-29 2013-09-04 日本電信電話株式会社 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置およびそれらのプログラム
JP5281624B2 (ja) 2010-09-29 2013-09-04 日本電信電話株式会社 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置およびそれらのプログラム
US9532059B2 (en) 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
CN102685479A (zh) * 2011-03-11 2012-09-19 华为技术有限公司 视频编解码处理方法和装置
JP5357199B2 (ja) 2011-03-14 2013-12-04 日本電信電話株式会社 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラムおよび画像復号プログラム
US9154799B2 (en) 2011-04-07 2015-10-06 Google Inc. Encoding and decoding motion via image segmentation
GB2491687B (en) * 2011-05-05 2014-08-27 Advanced Risc Mach Ltd Method of and apparatus for encoding and decoding data
US8989256B2 (en) 2011-05-25 2015-03-24 Google Inc. Method and apparatus for using segmentation-based coding of prediction information
US9247257B1 (en) 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
FR2986395A1 (fr) * 2012-01-30 2013-08-02 France Telecom Codage et decodage par heritage progressif
US9262670B2 (en) 2012-02-10 2016-02-16 Google Inc. Adaptive region of interest
US9094681B1 (en) 2012-02-28 2015-07-28 Google Inc. Adaptive segmentation
CN103428485A (zh) * 2012-05-24 2013-12-04 富士通株式会社 图像编码方法及图像解码方法
US8396127B1 (en) * 2012-06-27 2013-03-12 Google Inc. Segmentation for video coding using predictive benefit
TW201415893A (zh) * 2012-06-29 2014-04-16 Vid Scale Inc 以預測資訊為基礎之訊框優先
US9332276B1 (en) 2012-08-09 2016-05-03 Google Inc. Variable-sized super block based direct prediction mode
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
US9544612B2 (en) * 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding
US10147202B2 (en) 2013-03-15 2018-12-04 Arm Limited Methods of and apparatus for encoding and decoding data
US9693077B2 (en) * 2013-12-13 2017-06-27 Qualcomm Incorporated Controlling sub prediction unit (sub-PU) motion parameter inheritance (MPI) in three dimensional (3D) HEVC or other 3D coding
US9392272B1 (en) 2014-06-02 2016-07-12 Google Inc. Video coding using adaptive source variance based partitioning
US9578324B1 (en) 2014-06-27 2017-02-21 Google Inc. Video coding using statistical-based spatially differentiated partitioning
EP3051818A1 (en) 2015-01-30 2016-08-03 Thomson Licensing Method and device for decoding a color picture
JP6472279B2 (ja) * 2015-03-09 2019-02-20 キヤノン株式会社 画像処理装置及び画像処理方法
CN110832856A (zh) 2017-11-30 2020-02-21 深圳市大疆创新科技有限公司 用于减小视频编码波动的系统及方法
EP3695600A1 (en) * 2017-11-30 2020-08-19 SZ DJI Technology Co., Ltd. System and method for controlling video coding within image frame
CN111164972A (zh) 2017-11-30 2020-05-15 深圳市大疆创新科技有限公司 用于在帧级别控制视频编码的系统和方法
WO2021133529A1 (en) * 2019-12-26 2021-07-01 Alibaba Group Holding Limited Methods for coding video data in palette mode

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5585944A (en) * 1994-05-10 1996-12-17 Kaleida Labs, Inc. Method for compressing and decompressing images by subdividing pixel color distributions
JP2870415B2 (ja) * 1994-08-22 1999-03-17 日本電気株式会社 領域分割方法および装置
JPH10200900A (ja) 1997-01-10 1998-07-31 Nippon Telegr & Teleph Corp <Ntt> 符号化映像の高画質メディア同期再生方法及び装置
JP3052893B2 (ja) 1997-05-16 2000-06-19 日本電気株式会社 動画像符号化装置
SE512171C2 (sv) * 1997-07-02 2000-02-07 Forskarpatent I Linkoeping Ab Videoöverföring
US6775417B2 (en) * 1997-10-02 2004-08-10 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values
DE69836898T2 (de) * 1997-11-21 2007-05-24 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur Videokodierung
DE19817720A1 (de) * 1998-04-21 1999-10-28 Heidelberger Druckmasch Ag Verfahren zur Bilddatenkomprimierung für Zwei-Farben-Bilder
US7016531B1 (en) * 1999-02-01 2006-03-21 Thomson Licensing Process to extract regions of homogeneous color in a digital picture
US6421386B1 (en) * 1999-12-29 2002-07-16 Hyundai Electronics Industries Co., Ltd. Method for coding digital moving video including gray scale shape information
US6782126B2 (en) * 2001-02-20 2004-08-24 International Business Machines Corporation Method for combining feature distance with spatial distance for segmentation
JP4157686B2 (ja) * 2001-05-15 2008-10-01 株式会社モノリス 画像符号化および復号のための方法および装置
US7191103B2 (en) * 2001-08-08 2007-03-13 Hewlett-Packard Development Company, L.P. Predominant color identification in digital images
US7436890B2 (en) * 2002-06-05 2008-10-14 Kddi R&D Laboratories, Inc. Quantization control system for video coding
EP1527416A1 (en) 2002-07-31 2005-05-04 Koninklijke Philips Electronics N.V. System and method for segmenting
US7095786B1 (en) * 2003-01-11 2006-08-22 Neo Magic Corp. Object tracking using adaptive block-size matching along object boundary and frame-skipping when object motion is low
US7657111B2 (en) * 2003-02-14 2010-02-02 Fujifilm Corporation Apparatus and program for image processing for obtaining processed compressed moving image data
JP3959039B2 (ja) * 2003-02-28 2007-08-15 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、及び画像復号プログラム
US7269292B2 (en) 2003-06-26 2007-09-11 Fotonation Vision Limited Digital image adjustable compression and resolution using face detection information
JP4071701B2 (ja) 2003-11-11 2008-04-02 富士通株式会社 カラー画像の圧縮方法及びカラー画像圧縮装置
US7376272B2 (en) * 2004-06-14 2008-05-20 Xerox Corporation Method for image segmentation to identify regions with constant foreground color
US7606429B2 (en) * 2005-03-25 2009-10-20 Ati Technologies Ulc Block-based image compression method and apparatus
JP2007036887A (ja) 2005-07-28 2007-02-08 Sanyo Electric Co Ltd 符号化方法
EP2008248A2 (en) * 2006-04-20 2008-12-31 Telefonaktiebolaget LM Ericsson (publ) Image processing
US8787685B2 (en) * 2008-02-21 2014-07-22 France Telecom Encoding and decoding an image or image sequence divided into pixel blocks

Also Published As

Publication number Publication date
US20110007977A1 (en) 2011-01-13
US20140269900A1 (en) 2014-09-18
US8787685B2 (en) 2014-07-22
CN101953166A (zh) 2011-01-19
EP2255537B1 (fr) 2019-06-19
EP2255537A1 (fr) 2010-12-01
CN101953166B (zh) 2013-06-05
JP5498963B2 (ja) 2014-05-21
JP2011512766A (ja) 2011-04-21
US8971648B2 (en) 2015-03-03
WO2009112742A1 (fr) 2009-09-17
US8917945B2 (en) 2014-12-23
US20140269925A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
ES2743240T3 (es) Codificación y decodificación de una imagen o de una secuencia de imágenes divididas en bloques de píxeles
CN113852828B (zh) 获取视频图像运动矢量的方法与装置
JP5855013B2 (ja) 映像符号化の方法及び装置
ES2695929T3 (es) Procedimiento de decodificación de imágenes, dispositivos de decodificación y programa informático correspondientes
CN112640467B (zh) 用于帧内预测的方法和装置
CN111919449A (zh) 使用运动补偿的视频信号处理方法及设备
TW202019179A (zh) 視訊編解碼系統的運動向量湊整統一的方法以及裝置
WO2020259388A1 (zh) 一种编解码方法、装置及其设备
CN111316646B (zh) 候选mv列表构建方法和装置