ES2558693T3 - Procedimiento y dispositivo de codificación de imágenes que implementa una predicción mejorada, procedimiento y dispositivo de decodificación, señal y programas informáticos correspondientes - Google Patents

Procedimiento y dispositivo de codificación de imágenes que implementa una predicción mejorada, procedimiento y dispositivo de decodificación, señal y programas informáticos correspondientes Download PDF

Info

Publication number
ES2558693T3
ES2558693T3 ES09772727.5T ES09772727T ES2558693T3 ES 2558693 T3 ES2558693 T3 ES 2558693T3 ES 09772727 T ES09772727 T ES 09772727T ES 2558693 T3 ES2558693 T3 ES 2558693T3
Authority
ES
Spain
Prior art keywords
block
blocks
current block
data
decoding
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
ES09772727.5T
Other languages
English (en)
Inventor
Nathalie Cammas
Isabelle Amonou
Sylvain Kervadec
Stéphane PATEUX
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 ES2558693T3 publication Critical patent/ES2558693T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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

Landscapes

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

Abstract

Procedimiento de codificación de datos de imágenes, estando una imagen dividida en bloques, implementando dicho procedimiento las etapas de: - predicción de los datos de un bloque actual (415) en función de al menos un bloque ya codificado (411 a 414 y 416 a 419), denominado bloque de referencia, que proporciona un bloque predicho; - determinación de información de residuos (dvi, dvj), por comparación de dicho bloque actual y de dicho bloque predicho; - codificación de dicha información de residuos; - transmisión y/o almacenamiento de una señal de datos que comprende un conjunto de datos asociados a cada bloque, que comprende dicha información de residuos, según un orden predeterminado de recorrido de escritura de los datos asociados a los bloques codificados en dicha señal. caracterizado por que dicha etapa de predicción tiene en cuenta un conjunto de bloques codificados contiguos a dicho bloque actual, que comprende unos bloques no considerados aún según dicho orden de recorrido de escritura, y por que comprende las etapas de: - construcción de un árbol de dependencia, que asocia a un bloque actual al menos un bloque de referencia a partir del que se ha predeterminado el bloque predicho asociado a dicho bloque actual; - inserción de información representativa de dicho árbol de dependencia en dicho conjunto de datos asociados a cada bloque.

Description

5
10
15
20
25
30
35
40
45
50
55
60
65
DESCRIPCION
Procedimiento y dispositivo de codificacion de imageries que implementa una prediccion mejorada, procedimiento y dispositivo de decodificacion, senal y programas informaticos correspondientes
1. Campo de la invencion
El campo de la invencion es el de la codificacion y la decodificacion de un flujo de video, constituido por una serie de imagenes sucesivas. Mas precisamente, la invencion se aplica a la compresion de imagenes o de secuencias de video que utilizan unas transformadas por bloque.
De ese modo, la invencion se refiere a las tecnicas de prediccion implementadas para codificar y decodificar un bloque de imagenes.
La invencion puede aplicarse principalmente a las codificaciones de video que se implementaran en las normas futuras de compresion de video.
2. Tecnica anterior
Se conocen ya numerosas tecnicas de compresion de datos de video. Entre ellas, numerosas tecnicas de codificacion de video, y por ejemplo aquellas que implementan las normas de compresion de video procedentes de la organizacion MPEG (MPEG-1, MPEG-2, MPEG-4 parte 2, ...) o de la ITU-T (H.261, ..., H.264/AVC), que utilizan una representacion por bloques de la secuencia de video. De ese modo, segun la tecnica H.264, cada imagen puede ser dividida en fragmentos (“slices” en ingles), que se dividen a continuacion en macrobloques. Cada macrobloque se divide a continuacion en bloques. Un bloque esta constituido por un conjunto de plxeles.
Se ilustra esquematicamente en la figura 1 un ejemplo de fragmento formado por nueve macrobloques 111 a 119. Durante la codificacion y la decodificacion, los fragmentos son recorridos, macrobloque a macrobloque, segun un camino 12 definido de manera sistematica, o precisado por unos elementos descriptivos previstos con este fin, presentes en el flujo.
El enfoque es generalmente el mismo para los bloques constitutivos de un macrobloque. Un macrobloque puede estar formado principalmente por 4 x 4 o 16 x 16 bloques. Segun las tecnicas conocidas, estos macrobloques y bloques se codifican mediante prediccion intra-imagenes o inter-imagenes.
A continuacion, se consideran unos grupos de bloques, el termino “grupo” puede corresponder principalmente a una imagen o a un fragmento, constituido por un conjunto de macrobloques, o por un macrobloque, es decir por un conjunto de bloques. El termino “bloque” se aplica entonces respectivamente a un macrobloque o a un bloque segun la terminologla de la norma H.264.
Segun la tecnica H.264, un bloque puede codificarse mediante:
- una prediccion temporal, es decir en referencia a un bloque de referencia que pertenece a una o varias de otras imagenes; y/o
- una prediccion denominada “espacial”, en funcion de los bloques contiguos de la imagen actual.
En este ultimo caso, la prediccion no puede efectuarse mas que a partir de los bloques que se han codificado anteriormente.
De ese modo, en el ejemplo de la figura 2, y considerando los recorridos 12 de la figura 1, el bloque 115 no puede ser predicho mas que en funcion de los bloques anteriores 111 a 114. Los siguientes bloques 116 a 119 que no han sido codificados no pueden ser tenidos en cuenta.
Como se ilustra por las figuras 3A y 3B, se puede distinguir sobre un grupo de bloques dos zonas 31 y 32, generalmente denominadas respectivamente zona causal 31 y zona anti-causal 32. La zona causal de un grupo de bloques es la zona de la imagen que comprende los bloques situados antes del bloque actual, segun el sentido del recorrido de los bloques en la imagen.
En el codificador H.264, el sentido de los recorridos de los bloques en la imagen corresponde tambien al sentido de los recorridos de codificacion y de decodificacion de los bloques, as! como a los sentidos de los recorridos de escritura y de lectura de los datos codificados de los bloques en el flujo. En lo que sigue, se denomina zona causal, a la zona que corresponde a los bloques situados antes del bloque actual en el sentido de los recorridos de escritura o de lectura de los bloques en el flujo. La zona anti-causal es la zona de la imagen que comprende a los bloques situados despues del bloque actual segun el sentido de los recorridos de escritura o de lectura de los bloques en el flujo.
5
10
15
20
25
30
35
40
45
50
55
60
65
Las tecnicas de codificacion conocidas, y particularmente los codificadores H.264, no utilizan, para la prediction de un bloque actual, mas que los bloques de la zona causal, puesto que los bloques de la zona anti-causal no estan codificados, o decodificados, aun y por tanto no estan disponibles para la prediccion.
Se han definido varios tipos de recorridos, tales como el ilustrado por la figura 1, generalmente conocido bajo la denomination “Raster Scan”, o el recorrido en espiral (“Spiral Scan”) que propone recorrer un grupo de bloques a partir de su centro, progresando hacia los bordes mediante un recorrido en forma de espiral.
En la norma H.264/AVC, se han definido diferentes motivos para cada fragmento. Sin embargo, igualmente que para las tecnicas precedentes, el recorrido de cada fragmento esta predefinido, y conduce a distinguir unos bloques utilizables para la prediccion (zona causal) y unos bloques no utilizables (zona anti-causal).
Las predicciones asociadas a un bloque pueden ser de diversos tipos.
De ese modo, en la norma de codificacion H.264/AVC, se propone una prediccion de la textura, segun nueve direcciones de prediccion posibles, en el caso de bloques de tamano 4 x 4. Para cada pixel del bloque, la prediccion se obtiene prolongando la ultima llnea o columna del bloque de referencia, en una combination de plxeles de la ultima llnea y/o columna.
Se propone igualmente, en esta tecnica de codificacion, una prediccion del movimiento. Los bloques de referencia utilizados en la prediccion inter, o prediccion temporal, son identificados con la ayuda de vectores de movimiento, codificados en el flujo utilizando una prediccion mediante unos vectores de bloques de proximidad causal y temporal. Por ejemplo, un vector de un bloque a codificar puede ser predicho calculando el vector medio a partir de un vector de los bloques alto, alto izquierdo, e izquierdo del bloque a codificar.
Se preve incluso una prediccion denominada “intra desplazado”, que utiliza los bloques ya reconstruidos de la imagen como base de prediccion de un bloque a codificar. Se busca en la parte de la imagen a codificar ya reconstruida un bloque de referencia mas proximo al bloque a codificar. Se minimiza la diferencia entre los valores de los plxeles del bloque de referencia objetivo y del bloque a codificar, y el bloque de referencia objetivo se identifica en el decodificador gracias a la codificacion de un vector de movimiento intra-imagen, que indica el desplazamiento con relation al bloque a codificar para encontrar el bloque de referencia.
3. Inconvenientes de las tecnicas anteriores
Un inconveniente de estas diferentes tecnicas de prediccion, que se basan en la utilization de un recorrido de escritura, y de lectura, de los bloques en el flujo o senal producida, es que las referencias de prediccion posibles estan limitadas a la zona causal. En efecto, en ciertas situaciones, seria mas eficaz, por razones de similitudes entre los bloques por ejemplo, utilizar como base de prediccion un bloque presente en la zona anti-causal.
Esto no es posible sin embargo, segun la tecnica anterior, puesto que los bloques de la zona anti-causal no han sido procesados aun, y no estan por tanto disponibles para la prediccion.
Se ha de tomar nota de que, para el experto en la materia, esta situation es ineludible, como lo muestra la terminologia “zona anti-causal”, y no como un inconveniente susceptible de ser corregido.
El documento WO 01/49038 describe sin embargo una tecnica de codificacion de imagenes divididas en bloques, que implementa una prediccion a partir de un bloque presente en la zona anti-causal.
Sin embargo el documento WO 01/49038, impone para hacer esto, la modification del orden de escritura de los bloques para que coincida con el orden de decodificacion lo que incrementa en consecuencia la complejidad de la codificacion.
4. Exposition de la invention
La invencion propone una solution novedosa que no presenta este inconveniente, bajo la forma de un procedimiento de codificacion de datos de imagenes, estando una imagen dividida en bloques, implementando dicho procedimiento las etapas de:
- prediccion de los datos de un bloque actual en funcion de al menos otro bloque ya codificado, denominado bloque de referencia, que proporciona un bloque predicho;
- determination de information de residuos, por comparacion de dicho bloque actual y de dicho bloque predicho;
- codificacion de dicha informacion de residuos;
- transmision y/o almacenamiento de una senal de datos que comprende un conjunto de datos asociados a cada bloque, que comprende dicha informacion de residuos, segun un orden predeterminado de recorrido de escritura de los datos asociados a los bloques codificados en dicha senal.
5
10
15
20
25
30
35
40
45
50
55
60
65
Segun la invencion, dicha etapa de prediction tiene en cuenta un conjunto de bloques codificados contiguos a dicho bloque actual, que comprende unos bloques no considerados aun segun dicho orden de recorrido de escritura, y el procedimiento de codification comprende las etapas de:
- construction de un arbol de dependencia, que asocia a un bloque actual al menos un bloque de referencia a partir del que se ha predeterminado el bloque predicho asociado a dicho bloque actual;
- insertion de information representativa de dicho arbol de dependencia en dicho conjunto de datos asociados a cada bloque.
De esta manera, la decodificacion de una imagen se puede realizar segun un orden de decodificacion funcion de dicho arbol, y no imperativamente segun el orden de recorrido de escritura.
De ese modo, la invencion se basa en un enfoque diferente a las tecnicas de la tecnica anterior, que utilizan el mismo sentido de recorrido de los bloques en la imagen para la codificacion y la decodificacion que el sentido recorrido de escritura/lectura de los bloques en el flujo. Por el contrario, la invencion distingue el recorrido de codificacion y el recorrido de escritura, y permite elegir un recorrido de codificacion mas eficaz, mientras que el recorrido de escritura permanece inalterado. La invencion permite por tanto, cuando esto es deseable, tener en cuenta unos bloques de referencia habitualmente ignorados, porque pertenecen a la zona anti-causal.
Como se explica a continuation, se utilizan igualmente en la decodificacion unos recorridos distintos. El recorrido de lectura corresponde al recorrido de escritura. Por el contrario, el recorrido de codificacion puede ser distinto del recorrido de decodificacion (pueden ser posibles varios recorridos de decodificacion). El recorrido de decodificacion se determinara, durante la decodificacion, con la ayuda del arbol de dependencia construido durante la codificacion.
Segun un modo de realization de la invencion, dicha etapa de prediccion comprende al menos dos pases de prediccion, segun unos ordenes de recorrido de prediccion distintos, y el procedimiento de codificacion comprende una etapa de selection de uno de dichos ordenes de recorrido de prediccion, segun un criterio de eficacia predeterminado.
En otros terminos, se prueban varios recorridos de codificacion, y se conserva el mas eficaz. Por el contrario, el recorrido, u orden, de escritura permanece inalterado, y por tanto es independiente del recorrido, u orden, de codificacion seleccionado.
Dicho criterio de eficacia puede tener en cuenta principalmente la tasa necesaria para la codificacion de dichos bloques y una informacion representativa de la distorsion.
La invencion se refiere igualmente a un dispositivo de codificacion de datos de imagenes que implementa el procedimiento de codificacion descrito anteriormente en el presente documento. Un dispositivo de ese tipo comprende principalmente:
- unos medios de prediccion de los datos de un bloque actual en funcion de al menos otro bloque ya codificado, denominado bloque de referencia, que proporciona un bloque predicho;
- unos medios de determination de informacion de residuos, por comparacion de dicho bloque actual y dicho bloque predicho;
- unos medios de codificacion de dicha informacion de residuos,
- unos medios de transmision y/o almacenamiento de una senal de datos que comprende un conjunto de datos asociados a cada bloque, que comprende dicha informacion de residuos, segun un orden predeterminado de recorrido de escritura de los datos asociados a los bloques codificados en dicha senal.
Segun la invencion, dichos medios de prediccion tienen en cuenta un conjunto de bloques codificados contiguos a dicho bloque actual, que comprende unos bloques no considerados aun segun dicho orden de recorrido de escritura, y dicho dispositivo comprende:
- unos medios de construccion de un arbol de dependencia, que asocia a un bloque actual al menos un bloque de referencia a partir del que se ha predeterminado el bloque predicho asociado a dicho bloque actual;
- unos medios de insercion de informacion representativa de dicho arbol de dependencia en dicho conjunto de datos asociados a cada bloque.
La invencion se refiere ademas a un producto de programa informatico que puede descargarse desde una red de comunicaciones y/o almacenarse en un soporte legible por ordenador y/o ejecutable por un microprocesador, caracterizado por que comprende unas instrucciones de codigo del programa para la ejecucion de las etapas del procedimiento de codificacion descrito en el presente documento anteriormente, cuando se ejecuta en un ordenador.
La invencion se refiere igualmente a una senal de datos de imagenes codificadas segun este procedimiento de codificacion, segun el que, al dividirse una imagen en bloques, se implementa al menos un pase de prediccion, y que comprende, para un bloque actual, un conjunto de datos que comprende:
5
10
15
20
25
30
35
40
45
50
55
60
65
- unos datos representatives de un arbol de dependencia, que asocia a dicho bloque actual al menos un bloque de referenda a partir del que se ha determinado el bloque predicho asociado a dicho bloque actual;
- una information de residuos, que corresponde a una diferencia entre dicho bloque actual y el bloque predicho correspondiente.
De ese modo, la senal segun la invention contiene una informacion, bajo la forma de un arbol de dependencia, que permitira a los decodificadores determinar su recorrido de decodificacion (que podra, segun el caso, ser distinto del recorrido de lectura y/o del recorrido de codification).
Segun un modo de realization particular de la invencion, dichos datos representativos de un arbol de dependencia comprenden una informacion que precisa el numero de bloques de referencia tenidos en cuenta para dicho bloque actual y, para cada bloque de referencia, unos datos de definition de un vector que vincula dicho bloque de referencia y dicho bloque actual.
La invencion se refiere ademas a un soporte de datos que comprende al menos una senal de datos de imagenes tal como se ha descrito en el presente documento anteriormente.
La invencion se refiere por otro lado a un procedimiento de decodificacion de una senal codificada segun el procedimiento de codificacion descrito en el presente documento anteriormente.
Segun la invencion, para al menos uno de dichos bloques, la decodificacion se efectua segun un orden de decodificacion distinto de dicho orden de recorrido de escritura, y el procedimiento comprende las siguientes etapas, para un bloque actual:
- extraction, en dicho conjunto de datos, de informacion representativa de un arbol de dependencia, que asocia a un bloque actual al menos un bloque de referencia a partir del que se ha predeterminado el bloque predicho asociado a dicho bloque actual;
- la decodificacion de dicho bloque, cuando el o los bloques de referencia identificados en dicho arbol de dependencia ya han sido decodificados, comprendiendo las siguientes sub-etapas:
- prediction de un bloque predicho, a partir del o de dichos bloques de referencia;
- reconstruction de un bloque decodificado, a partir de dicho bloque predicho y en funcion de informacion de residuos presente en dicho conjunto de datos.
De ese modo, segun la invencion, la decodificacion no se efectua segun el recorrido de lectura de los bloques, sino segun un recorrido de decodificacion distinto, que tiene en cuenta el arbol de dependencia. En efecto, el analisis de este arbol permite determinar si un bloque actual se puede decodificar en un instante dado (en funcion de los bloques ya leldos segun el orden de recorrido y ya decodificados) o si es necesario esperar a la decodificacion de un bloque (o varios) de referencia que no ha sido aun decodificado.
Segun un modo de realizacion particular, el procedimiento de decodificacion comprende las siguientes etapas, para un bloque actual:
- si el o los bloques de referencia identificados en dicho arbol de dependencia han sido ya decodificados, decodificacion inmediata de dicho bloque actual;
- si no, insertion del conjunto de datos de dicho bloque actual en una pila de espera;
- procesamiento del bloque siguiente, segun dicho orden de recorrido de escritura.
Segun un primer enfoque particular, el procedimiento de decodificacion puede comprender una etapa de memorization de los bloques de referencia necesarios para decodificar un bloque en espera, y por que dicho bloque en espera se decodifica a partir de que todos los dichos bloques de referencia necesarios esten disponibles.
Segun otro enfoque particular, la decodificacion se puede efectuar mediante pases sucesivos segun dicho orden de recorrido de escritura, decodificandose un bloque actual en el curso de uno de dichos pases si todos los dichos bloques de referencia necesarios estan disponibles.
Como se puede constatar, el orden de recorrido de decodificacion puede variar, segun las implementaciones. Se puede intentar principalmente decodificar un bloque a partir de que esto sea posible (primer enfoque) o efectuar unos pases sucesivos, y no decodificar en cada pase mas que los bloques para los que ya es esto posible (segundo enfoque).
Se pueden concebir numerosas adaptaciones y opciones para la prediccion, en la codificacion y en la decodificacion. De ese modo, se puede prever que, para al menos un bloque actual, dicha sub-etapa de prediccion tiene en cuenta al menos dos bloques de referencia, asignandose un valor de ponderacion a cada uno de dichos bloques de referencia.
5
10
15
20
25
30
35
40
45
50
55
60
65
Es igualmente posible prever que, para al menos un bloque actual, dicha sub-etapa de prediccion tiene en cuenta al menos un bloque de referencia que solapa al menos dos bloques de origen.
La invencion se refiere igualmente a un producto de programa informatico que puede descargarse desde una red de comunicaciones y/o almacenarse en un soporte legible por ordenador y/o ejecutable por un microprocesador, caracterizado por que comprende unas instrucciones de codigo del programa para la ejecucion de las etapas del procedimiento de decodificacion descritas en el presente documento anteriormente, cuando se ejecuta en un ordenador.
La invencion se refiere finalmente a un dispositivo de decodificacion de una senal codificada segun el procedimiento de codificacion descrito en el presente documento anteriormente, y que implementa unos medios de decodificacion que aseguran, para al menos uno de dichos bloques, una decodificacion segun un orden de decodificacion distinto a dicho orden de recorrido de escritura. Este dispositivo de decodificacion comprende igualmente, para la decodificacion de un bloque actual:
- unos medios de extraccion, en dicho conjunto de datos, de informacion representativa de un arbol de dependencia, que asocia a un bloque actual al menos un bloque de referencia a partir del que se ha predeterminado el bloque predicho asociado a dicho bloque actual;
- unos medios de decodificacion de dicho bloque, en funcion de informacion de residuos presente en dicho conjunto de datos, cuando el o los bloques de referencia identificados en dicho arbol de dependencia ya han sido decodificados.
5. Lista de las figuras.
Surgiran otras caracterlsticas y ventajas de la invencion mas claramente con la lectura de la descripcion a continuacion de un modo de realizacion, dado a tltulo de simples ejemplos ilustrativos y no limitativos, y de los dibujos adjuntos entre los que:
- la figura 1, ya comentada y en el preambulo, ilustra un ejemplo de grupo de bloques, y un orden de recorrido correspondiente;
- la figura 2 presenta los bloques utilizables para una prediccion espacial en el caso del grupo de bloques de la figura 1;
- las figuras 3A y 3B ilustran respectivamente las zonas causales y anti-causales, para el ejemplo de la figura 2;
- la figura 4 ilustra el principio de la invencion, por comparacion con la figura 2;
- la figura 5 presenta los plxeles utilizados para la prediccion espacial intra segun la invencion, en el caso de un
bloque 4 x 4;
- la figura 6 ilustra un ejemplo de estructura de senal segun la invencion en el caso de un bloque codificado en modo inter;
- la figura 7 presenta un ejemplo de prediccion que tiene en cuenta, llegado el caso, varios bloques de referencia;
- la figura 8 ilustra un ejemplo de sintaxis de codificacion segun la invencion, para una imagen intra-codificada en
modo intra-desplazado;
- la figura 9 presenta un ejemplo de sintaxis en el caso de la codificacion de un bloque inter;
- la figura 10 es un ejemplo de arbol de dependencias para la decodificacion de los bloques de un grupo de
bloques;
- la figura 11 es un esquema sinoptico que ilustra un ejemplo de codificacion segun la invencion;
- la figura 12 presenta un esquema sinoptico de un primer modo de realizacion de la decodificacion segun la invencion;
- la figura 13 es un esquema sinoptico de un segundo modo de realizacion de una decodificacion segun la invencion;
- la figura 14 presenta de manera mas detallada la decodificacion de los bloques en espera del procedimiento de la figura 13.
6.1 recordatorio de los principios de la invencion
La invencion propone por lo tanto una tecnica que permite enriquecer las posibilidades de prediccion espacial para un bloque dado. Estas predicciones son aplicables tanto a la informacion de textura de un bloque como a la informacion de movimiento.
Entre las etapas del proceso de compresion de una imagen, se distinguen segun la invencion dos fases particulares. Una es la fase de codificacion, que consiste en efectuar diferentes procesamientos y transformaciones sobre un bloque de la imagen a codificar (estimacion/compensacion del movimiento, transformacion DCT, cuantificacion...), y la otra es una fase de escritura, que consiste en producir la sintaxis asociada al bloque de la imagen, y en escribir en el flujo que representa la imagen comprimida. Segun la invencion, el orden de codificacion de los bloques difiere (al menos para ciertos bloques) del orden de recorrido de los bloques en la imagen. Por el contrario, el orden de escritura de los bloques codificados en el flujo no se modifica.
5
10
15
20
25
30
35
40
45
50
55
60
65
Las fases correspondientes del proceso de descompresion de una imagen son respectivamente una fase de decodificacion (compensation del movimiento, transformation DCT inversa, cuantificacion inversa,
reconstruction...), y una fase de lectura de la sintaxis (“parsing” en ingles).
Segun la invention, el orden del recorrido (igualmente denominado “orden” por simplification) de escritura, y de lectura, puede ser distinto al orden de codification, o de decodificacion.
El bloque a codificar, o bloque actual, puede de ese modo, segun la invention, utilizar como referencia de prediction unos bloques situados en la zona causal y en la zona anti-causal del bloque actual. Se pueden utilizar ademas varios bloques contiguos (temporalmente y/o espacialmente) como referencia de prediction, e implementar una suma ponderada.
Para ello, la invention propone modificar, al menos para ciertos bloques, el orden de decodificacion de los bloques con relation al orden de lectura de los bloques en el flujo (o senal), o al orden de recorrido de los bloques en el fragmento de imagen.
Se recuerda que la invention se puede aplicar tanto a los bloques como a los macrobloques en el sentido de la norma H.264/AVC. El termino “bloque” en la description debe interpretarse por lo tanto como significando “macrobloque” o “bloque” en el sentido de esta norma, salvo cuando se precise lo contrario. De ese modo, el ejemplo dado en el presente documento a continuation se refiere a unos macrobloques.
En un modo de realization, los macrobloques se decodifican as! siguiendo un orden de decodificacion particular, definido de manera recursiva a partir de la information de prediction utilizada por los macrobloques. Se define, para permitir esta decodificacion, un arbol de dependencias de los macrobloques entre si. La decodificacion comienza por los macrobloques situados sobre las hojas del arbol y remontando hacia las ramas. En este modo de realization, el orden de decodificacion se modifica con relation al orden de lectura, que sigue siendo el orden de recorrido clasico de los bloques en la imagen.
Esta tecnica ofrece varias ventajas, y principalmente:
- una mejora de la compresion del flujo;
- un aumento limitado de la complejidad en el decodificador;
- un aumento controlable de la complejidad en el codificador.
Introduce un ligero aumento de la complejidad en el codificador, porque es preferible efectuar varios pases sobre la imagen para una eficacia maxima. Este aumento de la complejidad puede controlarse mediante unas tecnicas heurlsticas adecuadas.
La definition y la construction de un arbol suponen igualmente unos procesamientos suplementarios. Sin embargo, el numero de dependencias en el arbol puede ser limitado con el fin de controlar la complejidad.
Los recorridos de lectura y de decodificacion son identicos en todas las normas de compresion de video. Esto tiene como ventaja poder leer la sintaxis asociada a un bloque, y posteriormente decodificar este bloque inmediatamente. La lectura y la decodificacion pueden efectuarse sin embargo sucesivamente, es decir que la decodificacion puede comenzar una vez leldos todos los bloques. Segun la invention, el orden de lectura de los bloques codificados no se modifica y es identico al orden de lectura de los bloques en la imagen. El orden de decodificacion por el contrario se modifica y esta vinculado al modo de prediction de cada bloque.
En el modo de realization descrito a continuation en detalle, para codificar o decodificar un bloque, o un macrobloque, se situa un contexto de codificacion/decodificacion. Este contexto indica cuales son los bloques que se pueden utilizar para construir la prediction para la codificacion/decodificacion del bloque actual. Estos bloques se denominan bloques de referencia posibles en lo que sigue. Los bloques de referencia posibles son unos bloques anteriormente codificados/decodificados y reconstruidos.
Los bloques de referencia pueden situarse sin embargo en la zona causal o en la zona anti-causal del bloque a codificar/decodificar, definiendose estas zonas segun el sentido de recorrido de los bloques en la imagen o el sentido de lectura/escritura de los bloques en el flujo.
Se propone en el parrafo a continuation una lista no productiva de los tipos de prediction a los que se aplica el algoritmo. Por supuesto son utilizables otros tipos de prediction.
El algoritmo de codification y de decodificacion es el mismo para todos los tipos de prediction utilizados, una vez el contexto de codificacion/decodificacion del bloque situado.
El modo de realization descrito en el presente documento a continuation se coloca en un contexto de codification que corresponde al utilizado en los codificadores H.264/AVC, o los futuros codificadores H265.
5
10
15
20
25
30
35
40
45
50
55
60
65
6.2 Ejemplos de tipos de prediction
Un bloque actual utiliza uno o varios bloques de referenda para establecer una prediccion. La diferencia, o residuo, entre el bloque actual y la prediccion, es decir el bloque predicho, se codifica a continuacion y se transmite (y/o almacena, segun las aplicaciones). En la decodificacion, la diferencia recibida se anade a la prediccion para reconstruir el bloque.
6.2.1 prediccion de la textura
La invencion propone extender, segun esta aplicacion, la prediccion de la textura utilizada en los codificadores H.264/AVC. En efecto, la utilizacion de la zona anti-causal de un bloque permite anadir los siguientes bloques para construir la prediccion de un bloque a codificar: bloque derecho, bloque bajo derecho, bloque bajo y bloque bajo izquierdo.
La figura 4 ilustra todos los bloques de referencia posibles 411 a 414 y 416 a 41g que se pueden utilizar para una prediccion espacial de un bloque 415 segun el enfoque de la invencion.
Con el fin de codificar cada bloque actual 415 en bucle cerrado, es decir a partir de los bloques codificados/decodificados, para una mayor eficacia en compresion y con el fin de evitar los fenomenos de deriva entre el codificador y el decodificador, es necesario no permitir mas que las predicciones que no utilizan mas que bloques ya codificados (zona sombreada 43 en el ejemplo de la figura 4). Las predicciones posibles para el bloque central 415 son unas previsiones que utilizan unos bloques de referencia posibles situados en la zona causal (411, 412, 413) y en la zona anti-causal (416, 41g) del bloque a codificar.
El bloque 415 dispone ademas, por supuesto, de las predicciones temporales ya posibles en el codificador H.264/AVC.
La figura 5 ilustra los plxeles utilizados para una prediccion espacial intra. Ademas de los tipos de prediccion conocidos (plxeles A a M), que corresponden a la zona causal, y definidos en la norma H.264/AVC, el enfoque de la invencion permite proponer los tipos de prediccion que utilizan los nuevos plxeles situados en la zona anti-causal (plxeles N a Z). Estos se obtienen invirtiendo las direcciones de prediccion que existen en el codificador H.264/AVC.
Para cada pixel del bloque, la prediccion se obtiene prolongando la primera linea o columna del bloque de referencia (modo 0 o 1, segun la terminologia de la norma H.264/AVC) o mediante una combinacion de los pixeles de la primera linea y/o columna (modos 2 a 8).
La senalizacion de los nuevos modos introducidos se puede realizar por ejemplo:
- o bien mediante la introduccion de un indicador suplementario para cada bloque. El tipo de prediccion ya esta presente en la sintaxis del codificador H.264/AVC para cada bloque. Su valor asociado al valor del indicador indicaria el sentido del tipo de prevision. Un valor 0 indicaria las direcciones del codificador H.264/AVC, un valor 1 indica las nuevas direcciones;
- o bien mediante la introduccion de nuevos tipos de prediccion. El tipo de prediccion ya esta presente en la sintaxis del codificador H.264/AVC para cada bloque. El elemento de sintaxis que le representa tomaria entonces unos valores que irian de 0 a 17, siendo 0 a 8 los tipos de previsiones del codificador H.264/AVC, y siendo 9 a 17 los nuevos tipos de predicciones.
De manera similar, es posible anadir unos tipos de prediccion que utilizan unos pixeles de la primera linea del bloque bajo y de la ultima linea del bloque alto o incluso que utilizan unos plxeles de la primera columna del bloque derecho y de la ultima columna del bloque izquierdo. Estos tipos de prediccion se anaden codificando un indicador suplementario o definiendo unos valores de tipos de prediccion suplementarios.
El enfoque descrito en el presente documento anteriormente se aplica a los bloques de tamano 4 x 4. Se puede por supuesto definir una extension similar para otros tipos de bloques, y por ejemplo a los bloques de tamano 16 x 16.
La codificacion del elemento de sintaxis de los tipos de prevision puede tener en cuenta el contexto de los bloques contiguos del bloque a codificar con el fin de optimizar la codificacion del elemento de sintaxis por ejemplo. Si no se han codificado aun unos bloques contiguos al bloque a codificar, estos bloques no se podran utilizar para predecir el bloque a codificar, son imposibles entonces ciertas direcciones de prediccion.
6.2.2 prediccion del movimiento
El enfoque de la invencion permite igualmente extender la prediccion del movimiento, con relacion a la tecnica H.264/AVC. La utilizacion de la zona anti-causal de un bloque permite en efecto anadir los siguientes bloques para construir la prediccion de los vectores de movimiento de un bloque a codificar: bloque derecho, bloque bajo derecho, bloque bajo y bloque bajo izquierdo.
5
10
15
20
25
30
35
40
45
50
55
60
65
Se debe codificar una informacion suplementaria en el flujo con el fin de indicar que bloques han sido utilizados para la prevision de los vectores de movimiento. Esta informacion se puede insertar con la ayuda de la codificacion de un Indice. El Indice representa el vector predictor utilizado para predecir el movimiento del bloque a codificar, entre un conjunto de vectores predictores definido previamente.
Este conjunto es adaptativo para cada bloque. Contiene un numero N de vectores predictores. Puede contener los vectores de la proximidad causal y de la proximidad no causal del bloque a codificar, el vector medio, el vector de un bloque localizado conjuntamente en otra imagen. La figura 6 ilustra la sintaxis asociada a este modo.
Para un bloque codificado en modo inter, los datos de un bloque comprenden:
- un Indice idx que indica el vector predictor utilizado;
- los residuos del vector de movimiento dvi y dvj; y
- el residuo res de la textura del bloque.
6.2.3 prediccion intra desplazado
La invention permite igualmente extender el modo de prediccion intra desplazado de la norma H.264/AVC, permitiendo la utilization de bloques reconstruidos en la zona no causal. La serialization con la ayuda de un vector de movimiento no cambia.
Ademas, esta prediccion de un bloque con la ayuda de un vector se puede calcular a partir de mas de un bloque que proceda de la misma direction o de otra direction. De ese modo, es posible definir una prediccion multi-dimensional.
La prediccion (el bloque predicho) Pred asociado un bloque actual B se calcula entonces mediante la suma ponderada de los bloques de las diferentes direcciones utilizadas: para los plxeles (i, j) del bloque B, la prediccion es entonces:
Pred(i, j) = £ wn Itn (i + vin, j + vjn)
n<N
con: N el numero de bloques de referencia utilizados para la prediccion de B,
(vin, vjn) un vector que indica el desplazamiento a aplicar al bloque B en la imagen Itn para encontrar el bloque de referencia en la imagen Itn,
Wn un peso que pondera la participation del bloque de referencia
Segun un primer enfoque, todos los bloques de referencia pueden participar de manera igual en el calculo de la prediccion global. Los pesos son entonces de 1/N.
Segun otro enfoque, los bloques pueden participar en el calculo de la prediccion global con un peso inversamente proporcional a la distancia que separa el bloque de referencia y el bloque a codificar.
La imagen Itn puede ser la imagen a codificar u otra imagen.
De la misma manera que con la prediccion temporal, el bloque de referencia indicado por el vector (vin, vjn) puede ser un bloque de plxeles no alineados con la rejilla de division de la imagen en bloques. El bloque de referencia utilizado es entonces la zona de plxeles del mismo tamano que el bloque a codificar y cuyo origen viene dado por el origen del bloque a codificar al que se anade el vector.
De ese modo, un bloque de referencia 71 puede estar a caballo sobre varios bloques de la rejilla, como se ilustra en la figura 7. Esta figura 7 ilustra por otro lado la toma en consideration de dos bloques de referencia 71 y 72 para la prediccion del bloque 73, como se ha descrito en el presente documento anteriormente.
De la misma manera, si el vector es un vector de sub-plxeles, la zona punteada por el vector debe ser sobremuestreada con el fin de reconstruir las posiciones de los sub-plxeles del bloque de referencia.
Esta etapa es similar a la prediccion temporal con la ayuda de un vector de movimiento con la precision de sub- plxeles de un codificador H.264/AVC, si no es que esta prediccion se realiza en la imagen actual a codificar.
En este modo de prediccion intra desplazado extendido, la informacion a codificar es la siguiente:
- el numero de bloques de referencia utilizados para la prediccion;
- para cada bloque de referencia, la direccion de prediccion: el vector de movimiento;
- para cada bloque de referencia, la imagen utilizada para la prediccion (la imagen a codificar en si u otra imagen en el caso de una prediccion temporal).
5
10
15
20
25
30
35
40
45
50
55
60
65
Se puede distinguir aqul el caso de las imageries intra e inter. Las imagenes intra no se codifican mas que con relacion a si mismas, mientras que las imagenes inter se codifican con relacion a una o varias otras imagenes y/o con relacion a si mismas.
La sintaxis de codificacion de un bloque de una imagen intra codificada en modo intra desplazado se ilustra en la figura 8.
Los datos codificados son los siguientes:
- el numero de bloques de referencia utilizados: N;
- para cada bloque de referencia 81i a 81n, el residuo del vector de movimiento: dvi, dvj. El vector se puede codificar mediante prediccion con relacion a los vectores de bloques ya codificados, situados en la zona causal del bloque a codificar. En este caso, solo se codifica el residuo en el encabezado;
- los coeficientes transformados y cuantificados del residuo del bloque: res.
Una imagen inter puede contener unos bloques:
- inter: codificados mediante prediccion con relacion a una o varias imagenes codificadas-decodificadas de la secuencia; o
- intra: codificados mediante prediccion con relacion a unos bloques de la imagen a codificar.
La sintaxis de los bloques intra en modo intra desplazado es la misma que la propuesta por la invencion para los bloques de una imagen intra.
La sintaxis de los bloques inter se modifica con el fin de anadir la posibilidad de predecir el bloque inter con relacion a un bloque de la imagen a codificar ademas del o de los bloques de una o de otras imagenes, por ejemplo en la forma ilustrada en la figura 9.
Para cada bloque, el encabezado del bloque indica:
- el numero de bloques de referencia utilizados: N;
- para cada bloque de referencia 911 a 91N, el residuo del vector de movimiento: dvi, dvj;
- para cada bloque de referencia 911 a 91N, el Indice de la imagen a la que pertenece el bloque: ref.
El vector se codifica mediante prediccion con relacion a los vectores de bloques ya codificados, situados en la zona causal del bloque a codificar. Solo se codifica el residuo en el encabezado.
En el modo de realizacion particular descrito aqul, el resto del encabezado del bloque no cambia con relacion a la sintaxis del codificador H.264/AVC. Igualmente, el resto de los datos del bloque no cambian, corresponden a los coeficientes transformados y cuantificados del residuo del bloque.
Para una imagen inter, como para una imagen intra, el numero N de bloques de referencia utilizados para la prediccion puede limitarse a 1, 2 o 3. Esta limitacion puede indicarse en el encabezado de los datos de la imagen, codificando Nmax el numero maximo posible comun a todos los bloques.
Con el fin de optimizar la codificacion de la informacion en el encabezado, en el caso de que N este limitado, el tipo de codificacion de los bloques se puede modificar indicando, ademas del tipo intra o inter, el numero de bloques de referencia utilizables para una prediccion.
Por ejemplo, los modos de codificacion pueden ser entonces: INTRA-1REF, INTRA-2REF, INTER-1 REF, INTER- 2REF, estos modos indican el tipo intra o inter del bloque y el numero de bloques de referencia utilizados. Se anaden a los modos INTRA/INTER del codificador H.264/AVC. Se disponen de la misma manera para las diferentes divisiones en sub-bloques que los antiguos modos.
En esta variante, la sintaxis de los bloques intra e inter no comprenden ya el campo N. Su valor se deduce del modo de codificacion.
6.3 arbol de dependencia de un bloque
Se puede establecer un arbol de dependencias para un bloque actual a partir de los bloques de referencia identificados para su prediccion. La decodificacion de un bloque sera recursiva, porque si el bloque utiliza unos bloques no reconstruidos aun, sera necesario reconstruir inicialmente estos bloques, estableciendo para cada uno su arbol de dependencias.
La figura 10 ilustra un ejemplo de dependencias entre bloques. El arbol de dependencias del bloque 2 viene dado por:
5
10
15
20
25
30
35
40
45
50
55
60
65
- 2 depende de 1 y de 6,

- 6 depende de 5,

- 5 depende de 1,

- 1 depende de 0.
El bloque 0 no depende de ningun bloque de la imagen. Esta codificado con relacion a una prediccion nula, o con relacion a una prediccion temporal unicamente.
A continuacion, se remonta el arbol de dependencias: se reconstruye el bloque 0, posteriormente el bloque 1, posteriormente el 5 y el 6 y finalmente el bloque 2.
Este ejemplo ilustra el mecanismo de dependencia entre los bloques, que se complica por la adicion de las predicciones a partir de bloques de referencia situados en la zona anti-causal del bloque actual.
Se constata aqul que, como se ha indicado anteriormente, la decodificacion siguiendo el orden de lectura de los bloques ya no es posible.
6.4 ejemplo de implementacion de la codificacion
La codificacion de los macrobloques (o de los bloques) se puede hacer por la puesta en competicion de varios modos de codificacion posibles para cada macrobloque. Para cada macrobloque actual, se establece una lista de las predicciones posibles en funcion de los macrobloques contiguos (espaciales y temporales) ya codificados para este macrobloque actual. Se elige la prediccion que responde a un criterio de rendimiento predeterminado, por ejemplo el mejor compromiso tasa-distorsion para el macrobloque o bloque.
Es posible igualmente fijar un umbral para este criterio, y seleccionar la primera prediccion encontrada que respete este umbral.
Como ya se ha explicado, un sentido de recorrido clasico (sentido de recorrido de la imagen de arriba abajo de la figura 2 por ejemplo) no permite beneficiarse de todos los sentidos de prediccion definidos mas arriba. La codificacion propuesta aqul implementa varios pasos de codificacion, para los que se define un sentido de recorrido distinto. El sentido de recorrido de los bloques de cada pase de codificacion son por tanto diferentes.
Los macrobloques o bloques se codifican por grupo espacialmente. Se consideran M bloques contiguos a codificar en la imagen, que forman un grupo de macrobloques o de bloques. Estos grupos pueden realizarse de manera aleatoria o como resultado de una fase de analisis.
Cada grupo se codifica de manera diferente en cada pase de codificacion, un numero predeterminado de veces o hasta alcanzar un criterio de tasa o de distorsion definido para el grupo.
El primer bloque del grupo se codifica inicialmente, clasicamente. Si el grupo de bloques considerado es el primer grupo, el bloque se codifica sin prediccion con relacion a sus vecinos espaciales. Si no, el bloque puede codificarse utilizando una prediccion con relacion a sus vecinos ya codificados de otro grupo. En el caso de una imagen inter, es posible igualmente una prediccion temporal clasica.
Posteriormente se codifican los otros macrobloques del grupo. Cuando estan codificados todos los bloques del grupo, se calcula el coste de tasa distorsion de codificacion del grupo anadiendo todos los costes de tasa distorsion de los bloques del grupo.
Se realizan varios pases de codificacion para codificar el grupo. Cada pase codifica los bloques del grupo siguiendo un nuevo orden de codificacion.
Se conserva el coste tasa-distorsion del pase de codificacion mas reducido y se codifican los bloques con la ayuda de las predicciones definidas durante este pase de codificacion.
El algoritmo de codificacion pasa a continuacion al grupo siguiente, hasta que hayan sido codificados todos los grupos de bloques.
Posteriormente, se transmiten y/o almacenan los bloques codificados segun el orden de escritura de los bloques.
La figura 11 presenta de manera simplificada un ejemplo de codificacion de un grupo. Se selecciona (111) un orden, o sentido de recorrido. Para el primer recorrido, se puede tratar del orden de recorrido de codificacion habitual, que se utilizara para la construction de la senal a transmitir, y para la lectura de la information de los bloques en la decodificacion.
5
10
15
20
25
30
35
40
45
50
55
60
65
Se codifica (112) un bloque del grupo en curso de codificacion, comenzando por el primero segun el orden de recorrido seleccionado. En tanto que no hayan sido codificados (prueba 113) todos los bloques del grupo, se codifica (112) un nuevo bloque, segun el orden de recorrido seleccionado, y teniendo en cuenta, para la prediccion, unos bloques ya codificados.
Cuando han sido codificados todos los bloques del grupo, se guardan los datos de codificacion, y se determina un compromiso tasa-distorsion (114).
Si no se ha alcanzado el numero de pases previsto (115), y/o si no se ha alcanzado un umbral de tasa-distorsion, se reinicia el bucle en la etapa 111, para seleccionar un nuevo orden de recorrido. Puede tratarse por ejemplo de un recorrido en espiral, o de un recorrido cualquiera, con un punto de partida cualquiera en el grupo.
Las etapas 112 a 115 se repiten para este nuevo orden de recorrido. En la etapa 114, se puede elegir no conservar mas que los datos correspondientes al pase mas eficaz.
Cuando se ha alcanzado el numero de pases previsto (prueba 115), y/o si se ha alcanzado un umbral de tasa- distorsion, se conservan (116), para transmision y/o almacenamiento, la informacion de cada bloque segun el orden correspondiente al pase mas eficaz. Si el grupo de bloques que se ha procesado es el ultimo (prueba 117), se termina la codificacion de los bloques (118), y se construye el flujo, o senal, a transmitir y/o a almacenar, segun el orden de recorrido de los bloques en la imagen o segun el orden de escritura de los bloques (y no segun el orden de recorrido de codificacion del pase seleccionado para un bloque).
Si el grupo de bloques que se ha procesado no es el ultimo (prueba 117), se reinicia el bucle en la etapa 111, reinicializando la cuenta de los pases.
6.5 decodificacion
6.5.1 primer modo de realizacion de una decodificacion del flujo
La decodificacion comprende dos grandes fases: la lectura de la informacion asociada a los bloques, la reconstruction de los bloques.
Segun un primer modo de realizacion, ilustrado por el esquema de la figura 12, todos los macrobloques de la imagen codificada son leldos sucesivamente, segun el orden de escritura de los bloques en el flujo (es decir el orden en el que se escriben los bloques en el flujo, o senal, recibido y su informacion guardada).
La reconstruccion de los bloques utiliza una pila en la que se apilan todos los macrobloques a reconstruir.
Como se ha ilustrado en la figura 12, la pila se inicializa primero (121) con el primer macrobloque que se ha leldo.
Una lectura 122 de la informacion asociada al primer macrobloque de la pila permite determinar (123) si la reconstruccion de este macrobloque necesita inicialmente la reconstruccion de los macrobloques de referencia situados en la imagen. Los macrobloques de referencia son los macrobloques utilizados por la prediccion del macrobloque actual.
Si el macrobloque actual no utiliza prediccion, o si la prediccion no utiliza mas que macrobloques ya reconstruidos, entonces se puede reconstruir (124) el macrobloque actual.
Si el macrobloque actual necesita una prediccion que utiliza unos macrobloques no reconstruidos aun, se apilan estos macrobloques de referencia (125) en la pila. El algoritmo vuelve a continuation a la etapa 122.
Cuando se decodifica un macrobloque (124), el algoritmo verifica (126) si la pila esta vacla.
Si esta pila esta vacla, el algoritmo verifica (127) si todos los macrobloques de la imagen han sido reconstruidos. Si es si, la decodificacion de los macrobloques de la imagen se termina (128). Si es no, se pone en la pila (129) el proximo macrobloque no decodificado en el sentido de recorrido de la imagen y el algoritmo vuelve a la etapa 122.
Si la pila no esta vacla (prueba 126), el algoritmo vuelve a la etapa 122.
Este algoritmo de decodificacion permite decodificar todos los macrobloques de la imagen teniendo en cuenta su dependencia.
6.5.2 segundo modo de realizacion de una decodificacion del flujo
Segun un segundo modo de realizacion, ilustrado por la figura 13, el procedimiento de decodificacion implementa una lista clasificada de espera de los bloques, con una priorizacion de los bloques segun el Indice del bloque de Indice maximo.
5
10
15
20
25
30
35
40
El procedimiento se inicia por tanto por una etapa de inicializacion 131 de esta lista en una lista vacla.
Se recorren a continuacion los bloques segun el orden de recorrido de los bloques en la imagen (por ejemplo segun las designaciones usuales, en ingles: “raster scan”, “spiral scan”, “rain scan order”,...):
- identification 132 de las dependencias del bloque actual, en funcion del arbol de dependencias que se le asocia;
- para el bloque actual, segun el modo de codification y de predicciones asociadas, determination 133 del estado de decodificable inmediatamente o no;
- si el bloque es decodificable:
- decodificacion 134; y
- desapilado 135 de los bloques decodificables en la pila de espera;
- si el bloque no es decodificable:
- 136: anadir el bloque a la lista de espera;
- paso 137 al bloque siguiente;
- si se ha procesado el ultimo bloque (138), fin 139 del procesamiento, si no, vuelta a la etapa 132.
El desapilado 135 de los bloques decodificables se ilustra de manera mas detallada por la figura 14, el proceso es el siguiente:
- recorrido 140 de todos los bloques de la lista de espera;
- si el bloque actual de la lista se puede decodificar (es decir si todos los bloques de los que depende ya han sido decodificados) 141:
- se le retira de la fila, o pila, de espera (142);
- se le decodifica (143);
- si todos los bloques han sido tenidos en cuenta (fin del recorrido) 144:
- fin del procesamiento de la lista de espera (145);
- si no, se pasa al bloque siguiente (146) y se reinicia el procesamiento en la etapa 141.
El proceso de desapilado es iterado por otro lado en tanto que la lista de espera no este vacla y la operation de desapilado haya retirado al menos un elemento de la lista de espera.

Claims (15)

  1. 5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
    REIVINDICACIONES
    1. Procedimiento de codificacion de datos de imageries, estando una imagen dividida en bloques, implementando dicho procedimiento las etapas de:
    - prediction de los datos de un bloque actual (4I5) en funcion de al menos un bloque ya codificado (411 a 414 y 416 a 419), denominado bloque de referencia, que proporciona un bloque predicho;
    - determination de information de residuos (dvi, dvj), por comparacion de dicho bloque actual y de dicho bloque predicho;
    - codificacion de dicha informacion de residuos;
    - transmision y/o almacenamiento de una senal de datos que comprende un conjunto de datos asociados a cada bloque, que comprende dicha informacion de residuos, segun un orden predeterminado de recorrido de escritura de los datos asociados a los bloques codificados en dicha senal.
    caracterizado por que dicha etapa de prediccion tiene en cuenta un conjunto de bloques codificados contiguos a dicho bloque actual, que comprende unos bloques no considerados aun segun dicho orden de recorrido de escritura, y por que comprende las etapas de:
    - construction de un arbol de dependencia, que asocia a un bloque actual al menos un bloque de referencia a partir del que se ha predeterminado el bloque predicho asociado a dicho bloque actual;
    - insertion de informacion representativa de dicho arbol de dependencia en dicho conjunto de datos asociados a cada bloque.
  2. 2. Procedimiento de codificacion segun la revindication 1, caracterizado por que dicha etapa de prediccion comprende al menos dos pases de prediccion, para al menos uno de dichos bloques fuente, segun unos ordenes de recorrido de prediccion distintos,
    y por que comprende una etapa de selection (112) de uno de dichos ordenes de recorrido de prediccion, segun un criterio de eficacia predeterminado.
  3. 3. Dispositivo de codificacion de datos de imagenes, estando una imagen dividida en bloques fuente, comprendiendo dicho dispositivo:
    - unos medios de prediccion de los datos de un bloque actual (415) en funcion de al menos otro bloque ya codificado (411 a 414 y 416 a 41g), denominado bloque de referencia, que proporciona un bloque predicho;
    - unos medios de determinacion de informacion de residuos, por comparacion de dicho bloque actual y dicho bloque predicho;
    - unos medios de codificacion de dicha informacion de residuos,
    - unos medios de transmision y/o almacenamiento de una senal de datos que comprende un conjunto de datos asociados a cada bloque, comprendiendo dicha informacion de residuos, segun un orden predeterminado de recorrido de escritura de los datos asociados a los bloques codificados en dicha senal.
    caracterizado por que dichos medios de prediccion tienen en cuenta un conjunto de bloques codificados contiguos a dicho bloque actual, que comprende unos bloques no considerados aun segun dicho orden de recorrido de escritura, y por que dicho dispositivo comprende:
    - unos medios de construccion de un arbol de dependencia, que asocia a un bloque actual al menos un bloque de referencia a partir del que se ha predeterminado el bloque predicho asociado a dicho bloque actual;
    - unos medios de insercion de informacion representativa de dicho arbol de dependencia en dicho conjunto de datos asociados a cada bloque.
  4. 4. Producto de programa informatico que puede descargarse desde una red de comunicaciones y/o almacenarse en un soporte legible por ordenador y/o ejecutable por un microprocesador, caracterizado por que comprende unas instrucciones de codigo del programa para la ejecucion de las etapas del procedimiento de codificacion segun una al menos de las reivindicaciones 1 y 2, cuando se ejecuta en un ordenador.
  5. 5. Senal de datos de imagenes codificadas segun el procedimiento de codificacion de una cualquiera de las reivindicaciones 1 y 2, segun el que, al dividirse una imagen en bloques fuente, se implementa al menos un pase de prediccion,
    caracterizado por que comprende, para un bloque actual (415), un conjunto de datos que comprende:
    - unos datos representativos de un arbol de dependencia, que asocia a dicho bloque actual al menos un bloque de referencia a partir del que se ha determinado el bloque predicho asociado a dicho bloque actual;
    - una informacion de residuos (dvi, dvj), que corresponde a una diferencia entre dicho bloque actual y el bloque predicho correspondiente.
    5
    10
    15
    20
    25
    30
    35
    40
    45
    50
    55
    60
    65
  6. 6. Senal segun la reivindicacion 5, caracterizada por que dichos datos representatives de un arbol de dependencia comprenden una informacion que precisa el numero (N) de bloques de referencia tenidos en cuenta para dicho bloque actual y, para cada bloque de referencia, unos datos de definicion de un vector que vincula dicho bloque de referencia y dicho bloque actual.
  7. 7. Soporte de datos que comprende al menos una senal de datos de imagenes codificadas segun el procedimiento de codificacion de una cualquiera de las reivindicaciones 1 y 2, segun el que, al estar una imagen dividida en bloques fuente, se implementa al menos un pase de prediccion,
    caracterizado por que comprende, para un bloque actual (4I5), un conjunto de datos que comprende:
    - unos datos representativos de un arbol de dependencia, que asocia a dicho bloque actual al menos un bloque de referencia a partir del que se ha determinado el bloque predicho asociado a dicho bloque actual;
    - una informacion de residuos (dvi, dvj), que corresponde a una diferencia entre dicho bloque actual y el bloque predicho correspondiente.
  8. 8. Procedimiento de decodificacion de una senal de datos de imagenes, estando una imagen dividida en bloques, y comprendiendo dicha senal una serie de conjuntos de datos asociados cada uno a uno de dichos bloques, segun dicho orden de recorrido de escritura,
    leyendose dichos conjuntos de datos segun dicho orden de recorrido de escritura,
    caracterizado por que la decodificacion de al menos uno de dichos bloques se efectua segun un orden de decodificacion distinto de dicho orden de recorrido de escritura, y por que el procedimiento comprende las siguientes etapas, para un bloque actual:
    - extraccion, en dicho conjunto de datos, de informacion representativa de un arbol de dependencia, que asocia a un bloque actual al menos un bloque de referencia a partir del que se ha predeterminado el bloque predicho asociado a dicho bloque actual;
    - decodificacion (134, 143) de dicho bloque, cuando el o los bloques de referencia identificados en dicho arbol de dependencia ya han sido decodificados, comprendiendo las siguientes sub-etapas:
    - prediccion de un bloque predicho, a partir del o de dichos bloques de referencia;
    - reconstruccion (124) de un bloque decodificado, a partir de dicho bloque predicho y en funcion de informacion de residuos presente en dicho conjunto de datos.
  9. 9. Procedimiento de decodificacion segun la reivindicacion 8, caracterizado por que comprende las siguientes etapas, para un bloque actual:
    - si el o los bloques de referencia identificados en dicho arbol de dependencia han sido ya decodificados, decodificacion (134, 143) inmediata de dicho bloque actual;
    - si no, insercion (136) del conjunto de datos de dicho bloque actual en una pila de espera (129);
    - procesamiento del bloque siguiente, segun dicho orden de recorrido de escritura.
  10. 10. Procedimiento de decodificacion segun la reivindicacion 9, caracterizado por que comprende una etapa de memorizacion de los bloques de referencia necesarios para decodificar un bloque en espera, y por que dicho bloque en espera se decodifica (143) a partir de que todos los dichos bloques de referencia necesarios esten disponibles.
  11. 11. Procedimiento de decodificacion segun la reivindicacion 9, caracterizado por que la decodificacion se efectua mediante pases sucesivos segun dicho orden de recorrido de escritura, descodificandose un bloque actual en el curso de uno de dichos pases si todos los dichos bloques de referencia necesarios estan disponibles.
  12. 12. Procedimiento de decodificacion segun la reivindicacion 8, caracterizado por que, para al menos un bloque actual (73), dicha sub-etapa de prediccion tiene en cuenta al menos dos bloques de referencia (71, 72), asignandose un valor de ponderacion a cada uno de dichos bloques de referencia.
  13. 13. Procedimiento de decodificacion segun la reivindicacion 8, caracterizado por que, para al menos un bloque actual (73), dicha sub-etapa de prediccion tiene en cuenta al menos un bloque de referencia (71) que solapa al menos dos bloques de origen.
  14. 14. Producto de programa informatico que puede descargarse desde una red de comunicaciones y/o almacenarse en un soporte legible por ordenador y/o ejecutable por un microprocesador, caracterizado por que comprende unas instrucciones de codigo del programa para la ejecucion de las etapas del procedimiento de decodificacion segun una al menos de las reivindicaciones 8 a 13, cuando se ejecuta en un ordenador.
  15. 15. Dispositivo de decodificacion de una senal de datos de imagenes, estado una imagen dividida en bloques, y comprendiendo dicha senal una serie de conjuntos de datos asociados cada uno a uno de dichos bloques, segun dicho orden de recorrido de escritura,
    leyendose dichos conjuntos de datos segun dicho orden de recorrido de escritura,
    caracterizado por que dicho dispositivo implementa unos medios de decodificacion que aseguran, para al menos uno de dichos bloques, una decodificacion segun un orden de decodificacion distinto a dicho orden de recorrido de escritura,
    y por que comprende, para la decodificacion de un bloque actual:
    5
    - unos medios de extraccion, en dicho conjunto de datos, de informacion representativa de un arbol de dependencia, que asocia a un bloque actual al menos un bloque de referencia a partir del que se ha predeterminado el bloque predicho asociado a dicho bloque actual;
    - unos medios de decodificacion (134, 143) de dicho bloque, en funcion de informacion de residuos presente en
    10 dicho conjunto de datos, cuando el o los bloques de referencia identificados en dicho arbol de dependencia ya
    han sido decodificados.
ES09772727.5T 2008-07-01 2009-06-26 Procedimiento y dispositivo de codificación de imágenes que implementa una predicción mejorada, procedimiento y dispositivo de decodificación, señal y programas informáticos correspondientes Active ES2558693T3 (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0854467 2008-07-01
FR0854467 2008-07-01
PCT/FR2009/051229 WO2010001045A1 (fr) 2008-07-01 2009-06-26 Procede et dispositif de codage d'images mettant en oeuvre une prediction amelioree, procede et dispositif de decodage, signal et programmes d'ordinateur correspondants

Publications (1)

Publication Number Publication Date
ES2558693T3 true ES2558693T3 (es) 2016-02-08

Family

ID=40577688

Family Applications (1)

Application Number Title Priority Date Filing Date
ES09772727.5T Active ES2558693T3 (es) 2008-07-01 2009-06-26 Procedimiento y dispositivo de codificación de imágenes que implementa una predicción mejorada, procedimiento y dispositivo de decodificación, señal y programas informáticos correspondientes

Country Status (6)

Country Link
US (1) US8320692B2 (es)
EP (1) EP2304963B1 (es)
JP (1) JP5396600B2 (es)
CN (1) CN102084658B (es)
ES (1) ES2558693T3 (es)
WO (1) WO2010001045A1 (es)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010001045A1 (fr) * 2008-07-01 2010-01-07 France Telecom Procede et dispositif de codage d'images mettant en oeuvre une prediction amelioree, procede et dispositif de decodage, signal et programmes d'ordinateur correspondants
KR101782978B1 (ko) * 2010-11-12 2017-09-29 삼성전자주식회사 참조 데이터의 가용성에 기초하여 영상 데이터를 복호화하는 장치 및 방법
US9137544B2 (en) * 2010-11-29 2015-09-15 Mediatek Inc. Method and apparatus for derivation of mv/mvp candidate for inter/skip/merge modes
US8711940B2 (en) 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
US9635383B2 (en) * 2011-01-07 2017-04-25 Texas Instruments Incorporated Method, system and computer program product for computing a motion vector
US9491462B2 (en) * 2011-06-30 2016-11-08 Sony Corporation High efficiency video coding device and method based on reference picture type
TWI580264B (zh) * 2011-11-10 2017-04-21 Sony Corp Image processing apparatus and method
WO2013140722A1 (ja) * 2012-03-21 2013-09-26 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、および画像符号化復号装置
WO2016137368A1 (en) * 2015-02-25 2016-09-01 Telefonaktiebolaget Lm Ericsson (Publ) Encoding and decoding of inter pictures in a video
WO2017222325A1 (ko) * 2016-06-24 2017-12-28 주식회사 케이티 비디오 신호 처리 방법 및 장치
FR3053555A1 (fr) * 2016-06-29 2018-01-05 B<>Com Procede de codage d'une image numerique, procede de decodage, dispositifs, terminal et programmes d'ordinateurs associes
KR102421721B1 (ko) * 2016-10-10 2022-07-15 삼성전자주식회사 블록 맵을 이용하여 영상을 부호화 또는 복호화하는 방법 및 장치
US10694202B2 (en) * 2016-12-01 2020-06-23 Qualcomm Incorporated Indication of bilateral filter usage in video coding

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2900998B2 (ja) * 1997-07-31 1999-06-02 日本ビクター株式会社 ブロック間内挿予測符号化装置、復号化装置、符号化方法及び復号化方法
WO2001049038A1 (de) * 1999-12-23 2001-07-05 Siemens Aktiengesellschaft Verfahren, anordnung und computerprogrammerzeugnis zur prädiktion bei der codierung eines in bildblöcke unterteilten bildes
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
FI114679B (fi) * 2002-04-29 2004-11-30 Nokia Corp Satunnaisaloituspisteet videokoodauksessa
US8107535B2 (en) * 2003-06-10 2012-01-31 Rensselaer Polytechnic Institute (Rpi) Method and apparatus for scalable motion vector coding
CN1209928C (zh) * 2003-07-04 2005-07-06 清华大学 一种基于预测块组的采用帧内预测的帧内编码帧编码方法
CN1224270C (zh) * 2003-09-30 2005-10-19 清华大学 用于宏块组结构的两阶段预测编码的帧内编码帧编码方法
EP1696673A1 (en) * 2004-09-01 2006-08-30 Mitsubishi Electric Information Technology Centre Europe B.V. Intra-frame prediction for high-pass temporal-filtered frames in wavelet video coding
KR100694058B1 (ko) * 2004-09-30 2007-03-12 삼성전자주식회사 멀티 타임 스캔 방식에 기초한 인트라 모드 인코딩 및디코딩 방법 및 장치
CN1275469C (zh) * 2004-11-10 2006-09-13 华中科技大学 一种复杂度可分级的帧内预测方法
US8483277B2 (en) * 2005-07-15 2013-07-09 Utc Fire & Security Americas Corporation, Inc. Method and apparatus for motion compensated temporal filtering using split update process
JP4577778B2 (ja) * 2005-09-28 2010-11-10 株式会社Kddi研究所 動画像の符号化および復号化方法
AU2006346583B2 (en) * 2006-07-28 2011-04-28 Kabushiki Kaisha Toshiba Image encoding and decoding method and apparatus
US8213511B2 (en) * 2007-04-30 2012-07-03 Texas Instruments Incorporated Video encoder software architecture for VLIW cores incorporating inter prediction and intra prediction
US8204125B2 (en) * 2007-11-28 2012-06-19 Tsai Sheng Group Llc Fast motion estimation in scalable video coding
WO2010001045A1 (fr) * 2008-07-01 2010-01-07 France Telecom Procede et dispositif de codage d'images mettant en oeuvre une prediction amelioree, procede et dispositif de decodage, signal et programmes d'ordinateur correspondants
US20100098166A1 (en) * 2008-10-17 2010-04-22 Texas Instruments Incorporated Video coding with compressed reference frames

Also Published As

Publication number Publication date
CN102084658A (zh) 2011-06-01
WO2010001045A1 (fr) 2010-01-07
US20110188768A1 (en) 2011-08-04
CN102084658B (zh) 2013-06-05
EP2304963A1 (fr) 2011-04-06
JP2011526757A (ja) 2011-10-13
JP5396600B2 (ja) 2014-01-22
US8320692B2 (en) 2012-11-27
EP2304963B1 (fr) 2015-11-11

Similar Documents

Publication Publication Date Title
ES2558693T3 (es) Procedimiento y dispositivo de codificación de imágenes que implementa una predicción mejorada, procedimiento y dispositivo de decodificación, señal y programas informáticos correspondientes
ES2532326T3 (es) Método y sistemas para la estimación, comunicación y organización de modos de intra-predicción de imágenes
US10681376B2 (en) Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
ES2803426T3 (es) Procedimiento y aparato para codificar o descodificar una imagen con predicción de información de movimiento de capas inter según un esquema de compresión de información de movimiento
ES2614203T3 (es) Procedimiento y aparato para codificación de vídeo usando unión de bloques, y procedimiento y aparato para decodificación de vídeo usando unión de bloques
ES2605530T3 (es) Intra-predicción de baja complejidad para codificación de vídeo
KR102010510B1 (ko) 비디오 이미지 인코딩 방법, 비디오 이미지 디코딩 방법, 인코딩 장치, 및 디코딩 장치
CN107071446B (zh) 图像编码和解码的方法、编码和解码装置以及计算机可读存储介质
ES2695929T3 (es) Procedimiento de decodificación de imágenes, dispositivos de decodificación y programa informático correspondientes
ES2879573T3 (es) Procedimiento de codificación/decodificación por entropía CABAC de baja complejidad
EP3684059B1 (en) Decoding method for intra predicting a block by first predicting the pixels at the boundary
ES2549065T3 (es) Método de codificación y decodificación de imágenes, dispositivo de codificación y de decodificación y programas informáticos correspondientes
US9247252B2 (en) Image decoding device
US10178405B2 (en) Enhanced coding and decoding using intra block copy mode
EP2661880A1 (en) Method and apparatus of improved intra luma prediction mode coding
ES2629027T3 (es) Codificación de vectores de movimiento por competición de predictores
KR20160001714A (ko) 픽쳐들의 그룹에서 변경가능 엘리먼트들의 세트를 결정하기 위한 방법 및 디바이스
US20130272400A1 (en) Methods and devices for encoding and decoding at least one image implementing a selection of pixels to be predicted, and corresponding computer program
CN107071406B (zh) 运动图像解码方法和编码方法
US20130259126A1 (en) Method and apparatus for video encoding/decoding of encoding/decoding block filter information on the basis of a quadtree
CN105933706B (zh) 多媒体编解码器、应用处理器和电子装置
CN116866574A (zh) 帧内预测装置、图像解码装置及程序
US9219926B2 (en) Image encoding apparatus, image encoding method and program, image decoding apparatus, image decoding method and program
JP2021027463A (ja) イントラ予測装置、画像符号化装置、画像復号装置、及びプログラム
RU2022130988A (ru) Кодирование изображений с малой задержкой