ES2875586T3 - Procedimiento de codificación y descodificación de imágenes, dispositivo de codificación y de descodificación y programas informáticos correspondientes - Google Patents

Procedimiento de codificación y descodificación de imágenes, dispositivo de codificación y de descodificación y programas informáticos correspondientes Download PDF

Info

Publication number
ES2875586T3
ES2875586T3 ES16714963T ES16714963T ES2875586T3 ES 2875586 T3 ES2875586 T3 ES 2875586T3 ES 16714963 T ES16714963 T ES 16714963T ES 16714963 T ES16714963 T ES 16714963T ES 2875586 T3 ES2875586 T3 ES 2875586T3
Authority
ES
Spain
Prior art keywords
block
prediction
type
prediction mode
predictor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES16714963T
Other languages
English (en)
Inventor
FéLIX HENRY
Bihong Huang
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 ES2875586T3 publication Critical patent/ES2875586T3/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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Procedimiento de codificación de al menos una imagen (ICj) cortada en bloques, implementando, para un bloque actual (Bu) a codificar: - una determinación (C31) de un primer tipo de predicción, Inter, del bloque actual, - una determinación (C32) de un modo de predicción asociado con el primer tipo de predicción, - una obtención de un primer bloque predictor (BPopt) a partir del modo de predicción determinado, - un cálculo (C5a); (C5b) de un bloque residuo (Bru) que es representativo de la diferencia entre el primer bloque predictor obtenido (BPopt) y el bloque actual (Bu), estando dicho procedimiento de codificación caracterizado por que comprende: - una selección (C6b) de un modo de predicción asociado con una predicción de un segundo tipo, Intra, diferente de dicho primer tipo, - una codificación (C7b) del bloque residuo (Bru) utilizando un parámetro de codificación determinado a partir del modo de predicción seleccionado, en el que la selección del modo de predicción se implementa en función del primer bloque predictor (BPopt) obtenido del modo de predicción asociado con el primer tipo de predicción, en el que el modo de predicción seleccionado es aquel a partir del cual se obtiene un segundo bloque predictor que, entre otros bloques de predictores candidatos, tiene la distorsión mínima con respecto al primer bloque predictor (BPopt), en el que el parámetro de codificación pertenece al grupo que comprende: - una operación de transformación, - un diccionario de vectores de cuantificación, - un codificador entrópico, - una operación de cuantificación escalar.

Description

DESCRIPCIÓN
Procedimiento de codificación y descodificación de imágenes, dispositivo de codificación y de descodificación y programas informáticos correspondientes
Campo de la invención
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 descodificación de imágenes digitales y de secuencias de imágenes digitales.
La invención se puede aplicar en particular, pero no exclusivamente, a la codificación de vídeo implementada en los codificadores de vídeo actuales a Vc y HEVC y sus extensiones (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc.), así como a la descodificación correspondiente.
Antecedentes de la invención
Los codificadores de vídeo actuales (MPEG, H.264, HEVC, ...) utilizan una representación en bloque de las imágenes que se van a codificar. Las imágenes se subdividen en bloques de forma cuadrada o rectangular, que probablemente se pueden subdividir de forma recursiva.
Para al menos un bloque considerado entre los diferentes bloques obtenidos, se implementa una predicción de píxeles del bloque considerados con respecto a los píxeles de predicción que pertenecen a la misma imagen (predicción Intra), a una o más imágenes previas de una secuencia de imágenes (predicción Inter) que ya han sido descodificadas. Estas imágenes anteriores se denominan convencionalmente imágenes de referencia y se almacenan en la memoria tanto en el codificador como en el descodificador. Durante tal predicción, un bloque residuo se calcula restando los píxeles del bloque considerado, píxeles de predicción. Los coeficientes del bloque residuo calculado se cuantifican después de una posible transformación matemática, por ejemplo de tipo transformada en coseno discreto (DCT), y posteriormente se codifican mediante una codificación entrópica. Los datos codificados se escriben en una señal de datos destinada a transmitirse a un descodificador.
Dicha señal de datos comprende en particular:
- el tipo de predicción (predicción Intra, predicción Inter, predicción por omisión que realiza una predicción para la que no se transmite ninguna información al descodificador (en inglés "skip"));
- el modo de predicción (dirección de predicción, componente de la imagen de referencia, ...) ;
- el tipo de subdivisión en sub-bloques;
- el tipo de transformada, por ejemplo DCT 4x4, DCT 8x8, etc... ;
- los valores de los píxeles, los valores de los coeficientes transformados, las amplitudes, los signos de coeficientes cuantificados de los píxeles contenidos en el bloque o sub-bloque considerado.
Una vez que el descodificador ha recibido la señal de datos, la descodificación se realiza imagen por imagen y para cada imagen, bloque por bloque. Para cada bloque, se leen los elementos correspondientes de la señal de datos. La cuantificación inversa y la transformación inversa de los coeficientes de los bloques se realizan para producir un bloque residuo descodificado. A continuación, se calcula la predicción del bloque y el bloque se reconstruye añadiendo la predicción al bloque residuo descodificado.
Más precisamente:
- una predicción Intra de un bloque de una imagen actual consiste en predecir los píxeles de este bloque con respecto a los píxeles ya codificados y luego descodificados de la imagen actual que pueden estar ubicados en diferentes direcciones predeterminadas, por ejemplo treinta y cinco en el estándar HEVC,
- una predicción Inter de un bloque de una imagen actual consiste en predecir cierta información de codificación asociada a este bloque, tal como, por ejemplo:
• el vector de movimiento temporal del bloque actual con respecto a un vector de movimiento temporal asociado con un bloque de píxeles de referencia,
• los píxeles del bloque actual en relación con los píxeles de un bloque de píxeles de referencia señalados por el vector de movimiento temporal y ubicados en una imagen distinta de la imagen actual a la que pertenece el bloque actual.
Estos tipos de predicción son muy diferentes entre sí. Algunas veces, resulta que el tipo de predicción (ej.: Inter) seleccionado en tal método de codificación/descodificación no es adecuado para el bloque actual que se va a codificar/descodificar.
Esto da como resultado rendimientos de compresión que no son satisfactorios.
Los documentos EP1549074 A1 y XP031374452 desvelan que poner en competencia un modo basado en RDO requiere determinar un primer modo, obtener un bloque predictor y calcular un bloque residuo, para hacer la comparación basada en RDO con otro modo seleccionado en última instancia, que podría estar asociado con otro tipo de predicción, diferente del primer modo.
Objeto y sumario de la invención
Uno de los objetos de la invención es solucionar los inconvenientes del estado de la técnica antes citados.
Para tal efecto, un objeto de la presente invención se refiere a un procedimiento de codificación según la reivindicación 1.
Tal disposición permite aumentar la optimización de la compresión del bloque actual como ya se obtuvo después de la implementación del primer tipo de predicción Inter, refinando este primer tipo de predicción mediante un parámetro de codificación asociado con una predicción del bloque actual de un segundo tipo, Intra. La predicción del bloque actual es, por tanto, más precisa, esto tiene la ventaja de mejorar significativamente el rendimiento de compresión de la señal de datos que se transmitirá al descodificador.
Un tipo de predicción agrupa un conjunto de predictores, cada uno asociado con el mismo parámetro o con el mismo conjunto de parámetros.
En el caso de una predicción de tipo Intra, el parámetro de predicción es la dirección de predicción seleccionada de un conjunto de direcciones de predicción predeterminadas (por ejemplo, 35 direcciones en el estándar HEVC). En el caso de una predicción tipo Inter, se consideran al menos los dos parámetros de predicción siguientes:
- el índice del vector de movimiento que describe el movimiento entre los píxeles del bloque actual y los píxeles de un bloque que ya ha sido codificado o que ya ha sido codificado y luego decodificado y que pertenece a una imagen distinta de la imagen actual,
- el índice de esta otra imagen.
Ventajosamente, la invención permite tener en cuenta el bloque predictor obtenido del modo de predicción asociado al primer tipo de predicción Inter, bloque que es el mejor predictor del bloque original que se va a codificar. Debido a esto, tal bloque predictor es el más adecuado para determinar el bloque candidato asociado con el modo de predicción seleccionado entre una pluralidad de modos de predicción según un segundo tipo Intra.
La invención también permite, cuando se implementa una predicción Inter en la codificación, seleccionar una predicción Intra que sea capaz de generar bloques residuos cercanos al bloque residuo calculado de acuerdo con la predicción Inter. Tal disposición permite adaptar la codificación del bloque residuo de un tipo de predicción a otro. Correlativamente, la invención se refiere a un dispositivo de codificación según la reivindicación 2, a un programa informático que comprende instrucciones de código de programa según la reivindicación 3 y a un medio de registro legible por ordenador en el que se registra un programa informático según la reivindicación 4.
De forma correspondiente, la invención también se refiere a un procedimiento de descodificación según la reivindicación 5.
Correlativamente, la invención se refiere a un dispositivo descodificador según la reivindicación 6.
La invención también se refiere a un programa informático que comprende instrucciones para implementar un procedimiento de descodificación según la reivindicación 7.
Un programa de este tipo puede utilizar cualquier lenguaje de programación, y estar en forma de código fuente, código objeto o código intermedio entre código fuente y código objeto, tal como en una forma parcialmente compilada o en cualquier otra forma deseable.
Otro objeto más de la invención es también un medio de registro legible por ordenador y que comprende instrucciones de programa informático según la reivindicación 8.
El soporte de registro puede ser no importa qué entidad o dispositivo capaz de almacenar el programa. Por ejemplo, el soporte puede constar de un medio de almacenamiento, tal como una ROM, por ejemplo un CD-ROM o una ROM de circuito microelectrónico, o también un medio de registro magnético, un medio de registro digital, por ejemplo una llave USB o un disco duro.
Por otra parte, el soporte de registro de este tipo puede ser un soporte transmisible, tal como una señal eléctrica u óptica, que puede encaminarse a través de un cable eléctrico u óptico, por radio o por otros medios. El programa según la invención puede descargarse en particular desde una red de tipo Internet.
Como alternativa, el soporte de registro de este tipo puede ser un circuito integrado en el que se incorpora el programa, estando adaptado el circuito para realizar el procedimiento en cuestión o para ser utilizado en la ejecución de este último.
Breve descripción de los dibujos
Surgirán otras características y ventajas con la lectura de modos de realización preferidos descritos con referencia a las figuras en las que:
- la figura 1A representa las etapas del procedimiento de codificación según un primer modo de realización de la invención,
- la figura 1B representa una primera alternativa del procedimiento de codificación según un segundo modo de realización de la invención,
- la figura 1C representa una segunda alternativa del procedimiento de codificación según un segundo modo realización de la invención,
- la figura 2A representa un dispositivo de codificación según un primer modo de realización de la invención, - la figura 2B representa un dispositivo de codificación según un segundo modo de realización de la invención, - la figura 3A representa un dispositivo descodificador según un primer modo de realización de la invención, - la figura 3B representa un dispositivo descodificador según un segundo modo de realización de la invención, - la figura 4A representa las etapas del procedimiento de descodificación según un primer modo de realización de la invención,
- la figura 4B representa una primera alternativa del procedimiento de descodificación según un segundo modo de realización de la invención,
- la figura 4C representa una segunda alternativa del procedimiento de descodificación según un segundo modo de realización de la invención.
Descripción detallada de la parte de codificación
Se describirá ahora un primer modo de realización de la invención, en el que el procedimiento de codificación según la invención se utiliza para codificar una imagen o una secuencia de imágenes según un flujo binario próximo al que se obtiene mediante una codificación implementada en un codificador de acuerdo con una cualquiera de las normas de codificación de vídeo actuales o futuras.
En este primer modo de realización, el procedimiento de codificación según la invención se implementa por ejemplo por software o hardware mediante modificaciones de un codificador de ese tipo. El procedimiento de codificación según la invención se representa en la forma de un algoritmo que incluye unas etapas C1 a C8 tal como se representan en la figura 1A.
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 2A.
Como se ilustra en la figura 2A, un dispositivo de codificación de ese tipo comprende una memoria MEM_CO1 que comprende una memoria tampón TAMP_CO1, una unidad de tratamiento UT_CO1 equipada, por ejemplo, con un microprocesador pP y dirigida por un programa informático PG_CO1 que implementa el procedimiento de codificación según la invención. En la inicialización, las instrucciones de código del programa informático PG_CO1 se cargan, por ejemplo, en una memoria RAM llamada RAM_CO1, antes de ser ejecutadas por el procesador de la unidad de tratamiento UT_CO1.
El procedimiento de codificación representado en la figura 1A se aplica a toda imagen integral actual ICj fija o bien que forma parte de una secuencia de imágenes L IC1,..., ICj,..., ICi_(1<j<L) a codificar.
En el curso de una etapa C1 representada en la figura 1A, se procede, de forma conocida de por sí, la división de una imagen actual ICj en una pluralidad de bloques Bi, B2, ..., Bu,..., Bs (1<u<S). Tal etapa de particionado se implementa mediante un primer módulo de software de particionado MP_CO1 representado en la figura 2A, módulo que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO1. Es conveniente señalar que, en el sentido de la invención, el término "bloque" significa unidad de codificación (del inglés "coding unit"). Esta última terminología se utiliza en particular en la norma HEVC "ISO/IEC/23008-2 Recomendación UIT-T H.265 Codificación de vídeo de alta eficiencia (HEVC)".
En particular, una unidad de codificación de ese tipo reagrupa unos conjuntos de píxeles de forma rectangular o cuadrada, también llamados bloques, macrobloques, o bien conjuntos de píxeles que presentan otras formas geométricas.
Dichos Bi, B2, Bu,..., Bs están destinados a codificarse según un orden de ruta predeterminado, que es, por ejemplo, del tipo lexicográfico. Esto significa que los bloques se codifican uno tras otro, de izquierda a derecha.
Por supuesto, son posibles otros tipos de rutas. De este modo, es posible dividir la imagen ICj en varias subimágenes llamadas cortes y aplicar de forma independiente un corte de este tipo en cada subimagen. También es posible codificar no una sucesión de filas, como se explica más adelante, sino una sucesión de columnas. También es posible navegar por las filas o columnas en cualquier dirección.
Según un ejemplo, los bloques Bi, B2, ..., Bu,..., Bs tienen forma cuadrada y todas contienen K píxeles, con K>1. Según un modo preferido de realización, dichos bloques tienen un tamaño de 4x4 u 8x8 píxeles.
Dependiendo del tamaño de la imagen, que no es necesariamente un múltiplo del tamaño de los bloques, los últimos bloques de la izquierda y los últimos bloques de la parte inferior pueden no ser cuadrados. En un modo alternativo de realización, los bloques pueden ser, por ejemplo, de tamaño rectangular y/o no alineados entre sí.
Además, cada bloque puede dividirse él mismo en sub-bloques que a su vez son subdivisibles.
En el curso de una etapa C2 representada en la figura 1A, el codificador CO1 selecciona como bloque actual un primer bloque a codificar Bu de la imagen ICj, como por ejemplo el primer bloque Bi.
En el curso de una etapa C3 representada en la figura 1A, se procede a la predicción de un primer tipo de bloque actual Bu. La etapa C3 comprende:
- una subetapa C31 para determinar un primer tipo de predicción del bloque actual, por ejemplo Intra o Inter, - una subetapa C32 para determinar un modo de predicción asociado con el primer tipo de predicción determinado. Si el primer tipo de predicción determinado es Intra, el modo de predicción comprende al menos un parámetro de predicción que es una dirección de predicción seleccionada de un conjunto de direcciones de predicción predeterminadas (por ejemplo, 35 direcciones en el estándar HEVC).
Si el primer tipo de predicción determinado es Inter, el modo de predicción comprende al menos los dos parámetros de predicción siguientes:
- el índice del vector de movimiento que describe el movimiento entre los píxeles del bloque actual y los píxeles de un bloque que ya ha sido codificado o que ya ha sido codificado y luego decodificado y que pertenece a una imagen distinta de la imagen actual,
- el índice de esta otra imagen.
Según un modo preferido de realización, el primer tipo de predicción que se determina es el Inter. De forma conocida de por sí, el bloque Bu se predice después con respecto a una pluralidad de bloques predictores candidatos. Cada uno de los bloques predictores candidatos es un bloque de píxeles que ya ha sido codificado o que ya ha sido codificado y luego descodificado. Dichos bloques predictores se almacenan previamente en la memoria intermedia TAMP_CO1 del codificador CO1 como se representa en la figura 2A.
Al final de la etapa C3 de predicción, se obtiene un bloque predictor óptimo BPopt tras una competencia de dichos bloques predictores candidatos, por ejemplo, mediante minimizado de un criterio de tasa-distorsión conocido para un experto en la materia. El bloque BPopt se considera una aproximación del bloque Bu actual. La información relacionada con esta predicción está destinada a escribirse en una señal o flujo de datos F1 para ser transmitida a un descodificador que se describirá con más detalle en el resto de la descripción.
La etapa C3 es implementada por un procesador o módulo de software de codificación predictiva PRED_CO1 representado en la figura 2A, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO1. En el curso de una etapa C4 representada en la figura 1A, de acuerdo con la invención, se procede a una verificación del primer tipo de predicción aplicada al bloque actual Bu durante la etapa C3.
La etapa C4 es implementada por un procesador o módulo de software de cálculo CAL1_CO1 representado en la figura 2a , que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO1.
En el caso de que la predicción de un primer tipo aplicado sea una predicción Intra, se procede de forma convencional, en el curso de una etapa C5a) representada en la figura 1A, a la comparación de los datos relacionados con el bloque actual Bu con los datos del bloque predictor BPopt. Más precisamente, en el transcurso de esta etapa, se procede a calcular la diferencia entre el bloque actual Bu y el bloque predictor BPopt obtenido.
Un conjunto de datos residuales, llamado bloque residuo Bru se obtiene al final de la etapa C5a).
La etapa C5a) es implementada por un procesador o módulo de software CAL2_CO1 para calcular datos residuales como se representa en la figura 2A, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO1.
En el curso de una etapa C6a) representada en la figura 1A, se procede de forma convencional a una codificación de datos del bloque residuo Bru.
De forma conocida de por sí, en el curso de la etapa C6a), se procede, en el curso de una subetapa C61a), a una transformación del bloque residuo Bru según una operación de transformación directa convencional, para producir un bloque transformado Btu.
La subetapa C61a) se implementa mediante un procesador de transformación o módulo de software MT_CO1 representado en la figura 2A, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO1. El procesador MT_CO1 puede implementar una transformación directa como, por ejemplo, una transformación en cosenos discretos del tipo DCT (abreviatura en inglés de "Discrete Cosine Transform"), una transformación en senos discretos del tipo DST (abreviatura en inglés de "Discrete Sine Transform"), una transformación en ondículas discretas del tipo DWT (abreviatura en inglés de "Discrete Wavelet Transform").
De forma conocida de por sí, en el curso de la etapa C6a), se procede además, en el curso de una subetapa C62a) representada en la figura 1A, a una cuantificación de los datos del bloque transformado Btu, para producir un bloque cuantificado Bqu formado por coeficientes cuantificados. Una etapa de cuantificación de este tipo es, por ejemplo, del tipo escalar o vectorial.
La subetapa C62a) se realiza por medio de un procesador de cuantificación o módulo de software MQ_CO1 como se representa en la Figura 2A, módulo que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO1.
De forma conocida de por sí, en el curso de la etapa C6a), se procede además, en el curso de una subetapa C63a) representada en la figura 1A, la codificación de los coeficientes cuantificados del bloque Bqu. Tal codificación es, por ejemplo, una codificación entrópica de tipo CABAC ("Context Adaptive Binary Arithmetic Coder" en inglés) o también una codificación entrópica de tipo aritmético o de Huffman.
La subetapa C63a) es implementada por un procesador o módulo de software de cálculo MC_CO1 representado en la figura 2A, módulo que está controlado por el microprocesador pP de la unidad de tratamiento UT_cOl.
Si el primer tipo de predicción que se aplica es Inter, primero se hace de forma convencional, en el curso de una etapa C5b) representada en la figura 1A, a la comparación de los datos relacionados con el bloque actual Bu con los datos del bloque predictor BPopt. Más precisamente, en el transcurso de esta etapa, se procede a calcular la diferencia entre el bloque actual Bu y el bloque predictor BPopt obtenido.
Un conjunto de datos residuales, llamado bloque residuo Bru se obtiene al final de la etapa C5b).
La etapa C5b) es implementada por el procesador o módulo de software CAL2_CO1 para calcular datos residuales como se representa en la figura 2A.
A continuación, de acuerdo con la invención, se procede, en el curso de una etapa C6b) representada en la figura 1A, a la selección de un modo de predicción asociado con una predicción de un segundo tipo, diferente de dicho primer tipo mencionado anteriormente. Según un modo preferido de realización, la predicción del segundo tipo es una predicción Intra que es, de forma conocida de por sí, asociado con una pluralidad de modos de predicción, cada uno definido por una dirección de predicción predeterminada. En el caso de la predicción Intra propuesta por ejemplo en el estándar HEVC, hay treinta y cinco direcciones de predicción posibles, lo que equivale a determinar treinta y cinco bloques predictores candidatos disponibles para la predicción del bloque Bu actual. Según la invención, la etapa C6b) consiste en seleccionar entre los bloques predictores candidatos disponibles, el predictor candidato que minimiza la distorsión entre el bloque predictor óptimo BPopt que se obtuvo al final de la etapa C3 mencionada anteriormente de predicción de un primer tipo y cada uno de dichos bloques predictores candidatos disponibles. De la misma forma que en el caso de la predicción del primer tipo mencionado anteriormente, cada uno de los bloques predictores candidatos puestos en competencia durante la etapa C6b) es un bloque de píxeles que ya ha sido codificado o codificado y luego descodificado. Dichos bloques predictores se almacenan previamente en la memoria tampón TAMP_CO1 del codificador CO1, tal como se representa en la figura 2A.
Como resultado de la etapa C6b), se obtiene un bloque predictor óptimo BP'opt. Un bloque de predicción óptimo BP'opt de este tipo se asocia entonces con su modo de predicción óptimo MP'opt que representa el modo de predicción de un segundo tipo seleccionado según la invención.
La etapa C6b) es implementada por un procesador o módulo de software de cálculo CAL3_CO1 como se representa en la figura 2A, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO1.
En el curso de una etapa C7b) representada en la figura 1A, de acuerdo con la invención, se procede a la codificación de los datos del bloque residuo Bru utilizando al menos un parámetro de codificación determinado a partir del modo de predicción MP'opt seleccionado en la etapa C6b).
En el curso de la etapa C7b), se procede, en el curso de una subetapa C71b), a una transformación del bloque residuo Bru según una operación de transformación directa convencional, para producir un bloque transformado Btu.
Según un modo de realización de la invención, la operación de transformación directa se elige como una transformación específica del modo de predicción seleccionado en la etapa C6b). Según un primer ejemplo, si el modo de predicción Intra seleccionado es el modo 0 o 1 del estándar HEVC, siendo la transformación directa más adecuada para este modo la transformación DST, se elige esta última. Según un segundo ejemplo, si el modo de predicción Intra seleccionado es uno de los modos 2 a 34 del estándar HEVC, siendo la transformación directa más adecuada para este modo la transformación DCT, se elige esta última.
La subetapa C71b) se implementa mediante un procesador de transformación o módulo de software MT_CO1 representado en la figura 2A.
En el curso de la etapa C7b), se procede además, en el curso de una subetapa C72b) representada en la figura 1A, a una cuantificación de los datos del bloque transformado Btu, para producir un bloque cuantificado Bqu formado por coeficientes cuantificados. Una etapa de cuantificación de este tipo es, por ejemplo, del tipo escalar o vectorial. Según un modo de realización de la invención, alternativamente a la selección de la transformación realizada en la subetapa C71b) o en combinación con esta selección, la operación de cuantificación se elige como una cuantificación específica del modo de predicción seleccionado en la etapa C6b). Según un primer ejemplo, si el modo de predicción Intra seleccionado es el modo 0, 1 o 26 del estándar HEVC, es el paso de cuantificación específico del estándar HEVC el que se elige como el más adecuado para este modo. Según un segundo ejemplo, si el modo de predicción Intra seleccionado es uno de los modos 2 a 25, 27 a 34 del estándar HEVC, el paso de cuantificación más adecuado para este modo es el doble del paso de cuantificación específico del estándar HEVC. Tal disposición permite adaptar la cuantificación a la energía específica del bloque descodificado BDu calculado a partir del bloque predictor BPopt obtenido en la etapa C3.
La subetapa C72b) se realiza por medio del procesador de cuantificación o módulo de software MQ_CO1 representado en la figura 2A.
En el curso de la etapa C7b), se procede además, en el curso de una subetapa C73b) representada en la figura 1A, la codificación de los coeficientes cuantificados del bloque Bqu. Tal codificación es, por ejemplo, una codificación entrópica de tipo CABAC ("Context Adaptive Binary Arithmetic Coder" en inglés) o también una codificación entrópica de tipo aritmético o de Huffman.
Según un modo de realización de la invención, alternativamente a la selección de la transformación realizada en la subetapa C71b) y/o a la selección de la cuantificación realizada en la subetapa C72b), o también en combinación con una y/u otra de estas selecciones, la operación de codificación entrópica se elige como una operación de codificación específica del modo de predicción seleccionado en la etapa C6b). En otros términos, las probabilidades utilizadas para la codificación de los coeficientes del bloque Bqu dependen del modo de predicción MP'opt seleccionado en la etapa C6b). Por ejemplo, si el modo de predicción Intra seleccionado permite obtener un bloque residuo Bru de baja amplitud, aumenta la probabilidad de aparición de coeficientes de baja amplitud. Por el contrario, si el modo de predicción Intra seleccionado permite obtener un bloque residuo Bru de gran amplitud, se reduce la probabilidad de aparición de coeficientes de baja amplitud.
La subetapa C73b) es implementada por el procesador o el módulo de software de codificación MC_CO1 representado en la figura 2A.
En el curso de una etapa C8 representada en la figura 2A, se procede a la construcción de una señal o flujo de datos F1 que contiene los datos codificados al final de la etapa C6a), o al final de la etapa C7b) citadas anteriormente. La etapa C8 es implementada por un procesador o módulo de software MCF1 de construcción de señal de datos, tal como se representa en la figura 2A.
La señal de datos F1 es luego transmitida por una red de comunicación (no representada) a un terminal remoto. Esto incluye el descodificador DO1 representado en la figura 3A.
De forma conocida de por sí, la señal de datos F1 comprende además cierta información codificada por el codificador CO1, tal como el primer tipo de predicción (Inter o Intra) aplicada en la etapa C3 y, en su caso, el modo de predicción seleccionado, el índice del bloque predictor obtenido BPopt obtenido al final de la etapa C3, denominado IBPopt, el tipo de partición del bloque actual Bu si este último ha sido particionado, el índice de la imagen de referencia y el vector de movimiento utilizados en el modo de predicción Inter.
De forma conocida de por sí, a continuación, se descodifica el bloque residuo Bru. Se obtiene entonces el bloque residuo descodificado BDru. A continuación, se construye el bloque descodificado BDu, añadiendo al bloque predicho BPopt el bloque residuo descodificado BDru.
Cabe señalar que el bloque descodificado BDu es el mismo que el bloque descodificado obtenido al final del procedimiento para descodificar la imagen ICj que se describirá más adelante en la descripción. El bloque descodificado BDu queda así disponible para su uso por el codificador CO1 representado en la figura 2A.
Las etapas de codificación C1 a C8 que se acaban de describir se implementan luego para cada uno de los bloques B1, B2, ..., Bu,..., Bs a codificar a partir de la imagen actual ICj considerada.
A continuación, se va a describir un segundo modo de realización de la invención con referencia a las figuras 1B, 1C y 2B. En este segundo modo de realización, cada bloque a codificar se somete a codificación mediante cuantificación escalar, como se ha descrito con referencia a la figura 1A, que se combina ventajosamente con la codificación por cuantificación vectorial.
Según un segundo modo de realización, el procedimiento de codificación según la invención se implementa en un dispositivo de codificación CO2 representado en la figura 2B. Como se ilustra en la figura 2B, un dispositivo de codificación de ese tipo comprende una memoria MEM_CO2 que comprende una memoria tampón TAMP_CO2, una unidad de tratamiento UT_CO2 equipada, por ejemplo, con un microprocesador pP y dirigida por un programa informático PG_CO2 que implementa el procedimiento de codificación según la invención. En la inicialización, las instrucciones de código del programa informático PG_CO2 se cargan, por ejemplo, en una memoria RAM llamada RAM_CO2, antes de ser ejecutadas por el procesador de la unidad de tratamiento UT_CO2.
Además, el codificador CO2 comprende procesadores o módulos de software MP_CO2, PRED_CO2, CAL1_CO2, CAL3_CO2 que son respectivamente idénticos a los procesadores o módulos de software MP_CO1, PRED_CO1, CAL1_CO1, CAL3_CO1 del codificador CO1 representado en la figura 2A. Por esta razón, los procesadores o módulos de software MP_CO2, PRED_CO2, CAL1_Co 2, CAL3_CO2 no se describirán nuevamente con detalle.
La figura 1B describe con más precisión cómo se implementa la cuantificación vectorial cuando se ha verificado, al final de la etapa C4 en la figura 1a , que el primer tipo de predicción es Intra.
De la misma manera que en el primer modo de realización, se procede al cálculo de un bloque residuo Bru. Siendo tal etapa idéntica a la etapa C5a) de la figura 1A, no se describirá de nuevo.
Siguiendo el cálculo del bloque residuo Bru, en el curso de una etapa C110a) representada en la figura 1B, se procede a una comparación del primer bloque residuo Bru con una pluralidad de vectores de cuantificación. De forma conocida de por sí, estos vectores de cuantificación pertenecen a uno o más diccionarios de vectores de cuantificación disponibles para el codificador, denominados CBK1, CBK2,..., CBKw. Dichos diccionarios se almacenan previamente en la memoria tampón TAMP_CO2 del codificador CO2, tal como se representa en la figura 2B.
Más precisamente, la etapa C110a) consiste en seleccionar un diccionario de vectores de cuantificación entre los diccionarios CBK1, CBK2,..., CBKw disponibles.
La etapa C110a) es implementada por un procesador o módulo de software de cálculo CAL4_CO2 como se representa en la figura 2B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO2.
De acuerdo con la invención, tal selección se implementa en base a uno y/u otro de los siguientes elementos:
- las características de la predicción (por ejemplo, el modo Intra elegido entre los 35 modos Intra del estándar HEVC) que se aplicó en la etapa C3 en la figura 1A,
- las características de frecuencia del bloque predictor BPopt,
- el tamaño del bloque actual Bu,
- las características de la imagen actual ICj, como su tamaño o su energía.
En el modo preferido de realización, W=70, es decir que:
- en el caso de un bloque actual Bu de tamaño 4x4, hay un diccionario diferente para cada uno de los 35 modos Intra considerados en el estándar HEVC,
- en el caso de un bloque actual Bu de tamaño 8x8, hay un diccionario diferente para cada uno de los 35 modos Intra considerados en el estándar HEVC.
De acuerdo con este modo de realización preferido, por tanto, el diccionario seleccionado depende tanto del tamaño del bloque actual Bu como del modo de predicción seleccionado.
El diccionario seleccionado al final de la etapa C110a) se denomina CBKopt.
En el curso de una etapa C111 a) representada en la figura 1B, se procede a una selección de uno de uno de los vectores de cuantificación del diccionario CBKopt que se seleccionó en la etapa C110a).
Se obtiene un vector de cuantificación óptimo Vopt tras una competencia entre dichos vectores de cuantificación del diccionario CBKopt, por ejemplo:
- ya sea minimizando un criterio de velocidad de flujo de distorsión bien conocido por los expertos en la técnica, - o minimizando el error cuadrático medio calculado entre los datos del bloque residuo Bru y los datos correspondientes de cada uno de los vectores de cuantificación del diccionario CBKopt.
Se considera que el vector de cuantificación óptimo Vopt es una aproximación del bloque residuo Bru. Se pretende que la información relacionada con esta predicción se escriba en la señal de datos F2 antes mencionada.
La etapa C111a) es implementada por un procesador o módulo de software de cálculo CAL5_CO2 como se representa en la figura 2B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO2.
En el curso de una etapa C112a) representada en la figura 1B, se procede a una codificación del vector de cuantificación Vopt seleccionado al final de la etapa C111a). Dicha etapa consiste en representar el índice denominado IVopt del vector de cuantificación Vopt en forma binaria. Por ejemplo, si el diccionario CBKopt al que pertenece el vector de cuantificación Vopt contiene 256 vectores de cuantificación, entonces el vector de cuantificación Vopt se puede representar en 8 bits, lo que permite identificar con precisión este vector entre todos los demás vectores de cuantificación del diccionario CBKopt.
La etapa C112a) es implementada por un procesador o módulo de software de codificación binaria CB_CO2 como se representa en la figura 2B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO2. En el curso de una etapa C113a) representada en la figura 1B, se procede a la comparación de datos relacionados con el bloque residuo Bru con los datos del vector Vopt. Más precisamente, en el transcurso de esta etapa, se procede al cálculo de la diferencia entre el bloque residuo Bru y el vector Vopt.
Un segundo conjunto de datos, llamado bloque residuo secundario BSru, se obtiene a continuación al final de la etapa C113a).
La etapa C113a) es implementada por el procesador o módulo de software CAL6_CO2 representado en la figura 2B. En el curso de una etapa C114a) representada en la figura 1B, se procede, de acuerdo con la invención, a una codificación de los datos del bloque residuo secundario BSru.
En el curso de la etapa C114a), se procede, en el curso de una subetapa C1141a), a una transformación del bloque residuo secundario BSru de acuerdo con una operación de transformación directa convencional, para producir un bloque transformado BStu.
La subetapa C1141a) se implementa mediante un procesador de transformación o módulo de software MT_CO2 representado en la figura 2B.
En el curso de la etapa C114a), se procede además, En el curso de una subetapa C1142a) representada en la figura 1B, a una cuantificación de los datos del bloque transformado BStu, para producir un bloque cuantificado BSqu formado por coeficientes cuantificados. Una etapa de cuantificación de este tipo es, por ejemplo, del tipo escalar o vectorial. La subetapa C1142a) se realiza por medio procesador o módulo de software de cuantificación MQ_CO2 como se representa en la figura 2B.
De forma conocida de por sí, en el curso de la etapa C114a), se procede además, En el curso de una subetapa C1143a) representada en la figura 1B, la codificación de los coeficientes cuantificados del bloque BSqu. Tal codificación es, por ejemplo, una codificación entrópica de tipo CABAC ("Context Adaptive Binary Arithmetic Coder" en inglés) o también una codificación entrópica de tipo aritmético o de Huffman.
La subetapa C1143a) es implementada por el procesador o el módulo de software de codificación MC_CO2 representado en la figura 2B.
En el curso de una etapa C115a) representada en la figura 1B, se procede a la construcción de la señal o flujo de datos F2 que contiene:
- los datos codificados al final de la etapa C114a) citada anteriormente,
- el índice IVopt del vector de cuantificación óptimo Vopt determinado en la etapa C112a) citada anteriormente. La etapa C115a) es implementada por un procesador o módulo de software MCF2 de construcción de una señal de datos, tal como se representa en la figura 2B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO2.
La señal de datos F2 es luego transmitida por una red de comunicación (no representada) a un terminal remoto. Esto incluye el descodificador DO2 representado en la figura 3B.
De forma conocida de por sí, la señal de datos F2 comprende además cierta información codificada por el codificador CO2, tal como el primer tipo de predicción (Inter o Intra) aplicada en la etapa C3 y, en su caso, el modo de predicción seleccionado, el índice del bloque predictor obtenido BPopt obtenido al final de la etapa C3, denominado IBPopt, el tipo de partición del bloque actual Bu si este último ha sido particionado, el índice de imagen de referencia y el vector de desplazamiento utilizados en el modo de predicción Inter.
De forma conocida de por sí, a continuación, se descodifica el bloque residuo BSru. Se obtiene entonces el bloque residuo descodificado BSDru. Se procede a la construcción del bloque descodificado BDu añadiendo al bloque predicho Bpu el bloque residuo descodificado BSDru.
Cabe señalar que el bloque descodificado BDu es el mismo que el bloque descodificado obtenido al final del procedimiento para descodificar la imagen ICj que se describirá más adelante en la descripción. El bloque decodificado BDu queda así disponible para ser utilizado por el codificador CO2 de la figura 2B.
En el curso de una etapa C116a) representada en la figura 1B, conforme a un segundo modo de realización de la invención, se procede a una prueba que consiste en comprobar si un criterio de actualización de los diccionarios CBK1, CBK2,..., CBKw se cumple o no.
Según una primera variante, dicho criterio consiste en comparar el número de coeficientes no perjudiciales en el bloque residuo BSru con un umbral predeterminado. Por ejemplo, el criterio de actualización se considera cumplido si el número de coeficientes no perjudiciales es superior a 3.
Según una segunda variante, tal criterio consiste en comparar la tasa de bits de codificación del bloque residuo codificado BSru con un umbral predeterminado. Por ejemplo, el criterio de actualización se considera cumplido si la tasa de bits de codificación del bloque residuo BSru es superior a 10 bits.
La etapa C116a) es implementada por un procesador o módulo de software de cálculo CAL7_CO2 como se representa en la figura 2B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO2.
Si se cumple el criterio de actualización, en el curso de una etapa C117a) representada en la figura 1B, se procede a la actualización de al menos uno de los diccionarios CBK1, CBK2,..., CBKw.
La etapa C117a) es implementada por un procesador o módulo de software de cálculo CAL8_CO2 como se representa en la figura 2B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO2.
Según una primera variante, la etapa C117a) consiste en actualizar todos los diccionarios CBK1, CBK2,..., CBKw actuales.
Según una segunda variante preferida, se procede únicamente a una actualización del diccionario CBKopt.
En el modo preferido de realización, el diccionario CBKopt se actualiza de la siguiente manera.
El vector Vopt, así como sus vecinos contenidos en el diccionario CBKopt, se consideran primero. Los vecinos se denominan Vopt-R Vopt-R+1, Vopt- R+2, — , Vopt-1, Vop^ Vopt+1 >...> Vopt+R-2, Vopt+R-1, Vopt+R.
El parámetro R que define el número de vecinos siguientes y anteriores del vector Vopt está predeterminado, por ejemplo, al valor 5. Según esta configuración, se consideran los 5 vectores vecinos que siguen y preceden al vector Vopt.
A continuación, los vectores Wopt+n, n pertenecientes a <-R, R>, se construyen con el fin de actualizarse, de la siguiente manera:
Wopt+n-Vopt+n+alfa*f(n)*((Vopt+BSru)-Vopt+n)
en la que:
- alfa es un parámetro predeterminado, por ejemplo igual a 0,1,
- y f(n) es un valor que depende de la distancia entre el índice n y el índice opt.
Por ejemplo, en el modo preferido de realización:
f(n)=0,2* (5-n)/5
Por tanto, se calculan los vectores Wopt+n con n que van de -5 a 5, y reemplazan respectivamente a los vectores Vopt+n en el diccionario CBKopt-El conjunto de diccionarios actuales CBK1, CBK2,..., CBKw se actualizará de este modo.
En un modo alternativo de realización, los parámetros de actualización pueden ser diferentes según el tamaño de la imagen. En efecto, si la imagen es pequeña, es necesario un rápido aprendizaje de las estadísticas de la imagen actual ICj.
Por ejemplo:
- para un tamaño de imagen perteneciente a un vídeo SD de definición simple (abreviatura del inglés "Standard Definition"), menos de 720 píxeles de alto y menos de 1280 píxeles de ancho, se conserva un parámetro alfa igual a 0,3;
- para un tamaño de imagen perteneciente a un vídeo HD de alta definición (abreviatura del inglés "High Definition"), ya sea entre 720 y 1080 píxeles de alto y entre 1280 y 1920 píxeles de ancho, o más de 1280x1920 píxeles, se conserva un parámetro alfa igual a 0.2;
- para un tamaño de imagen mayor que el tamaño de una imagen HD, se conserva un parámetro igual a 0,1. Por supuesto, es posible actualizar los diccionarios de otras formas. Por ejemplo, es posible aplicar el mismo tipo de actualización del vector de cuantificación que en el modo preferido. Sin embargo, la actualización, en lugar de aplicar a los vectores vecinos del vector de cuantificación Vopt en el diccionario CBKopt, se aplica a vectores cercanos a Vopt+BSDru en el sentido de distorsión. Como variante, la actualización se aplica a vectores cercanos a Vopt+BSDru no solo en el diccionario CBKopt, sino en todos los diccionarios actuales CBK1, CBK2,..., CBKw.
A continuación de la etapa C117a) citada anteriormente, se procede, en el curso de una etapa C118a) representada en la figura 1B, a seleccionar el siguiente bloque de la imagen actual ICj. A continuación, las etapas de codificación de bloques descritos anteriormente se implementan nuevamente para este siguiente bloque.
Si después de la etapa C116a) citada anteriormente, no se cumple el criterio de actualización, se procede, en el curso de la etapa C118a) citada anteriormente, a seleccionar el siguiente bloque de la imagen actual ICj. A continuación, las etapas de codificación de bloques descritos anteriormente se implementan nuevamente para este siguiente bloque. En el curso de una etapa C119a) representada en la figura 1B, el codificador CO2 de la figura 2B prueba si el bloque actual que ha sido codificado de acuerdo con el procedimiento de codificación descrito anteriormente es el último bloque de la imagen actual ICj.
Si no es ese el caso, se implementa la etapa C118a) citada anteriormente.
Si el bloque actual es el último bloque de la imagen actual ICj, en el curso de una etapa C120a) representada en la figura1B, el codificador de CO2 de la figura 2B prueba si la siguiente imagen actual ICj+1 es una imagen de tipo Intra o no.
En el caso de que la siguiente imagen actual ICj+1 sea de tipo Intra, antes de proceder a la codificación de los bloques de esta imagen de acuerdo con el procedimiento de codificación según la invención, se implementa la etapa C117a) de actualización de los diccionarios.
En el ejemplo representado, cada uno de los vectores de cuantificación del diccionario CBKopt se inicializa a un valor predeterminado respectivo.
Si la siguiente imagen actual ICj+1 no es de tipo Intra, se procede directamente a la codificación de los bloques de esta imagen de acuerdo con el procedimiento de codificación de la figura 1A y, en última instancia, a la codificación para la cuantificación vectorial de las figuras 1B y 1C.
La figura 1C describe con mayor precisión cómo se implementa la cuantificación vectorial cuando se ha verificado, al final de la etapa C4 en la figura 1A, que el primer tipo de predicción es Inter.
De la misma manera que en el primer modo de realización, se procede al cálculo de un bloque residuo Bru. Siendo tal etapa idéntica a la etapa C5b) de la figura 1A, no se describirá de nuevo.
Siguiendo el cálculo del bloque residuo Bru, en el curso de una etapa C110b) representada en la figura 1C, se procede a la selección de un modo de predicción óptimo MP'opt que representa el modo de predicción de un segundo tipo seleccionado según la invención. Dado que dicha etapa es idéntica en todos los aspectos a la etapa C6b) de la figura 1A, no se describirá de nuevo con detalle.
La etapa C110b) es implementada por un procesador o módulo de software de cálculo CAL3_CO2 como se representa en la figura 2B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO2.
En el curso de una etapa C111 b) representada en la figura 1C, se procede a la selección de un diccionario de vectores de cuantificación CBKopt que pertenece a uno o más diccionarios de vectores de cuantificación disponibles para codificar, denominados CBK1, CBK2,..., CBKw. Dichos diccionarios se almacenan previamente en la memoria tampón TAMP_CO2 del codificador de CO2, tal como se representa en la figura 2B.
Conforme a un segundo modo de realización de la invención, el diccionario CBKopt seleccionado es el asociado con el modo de predicción óptimo MP'opt que se seleccionó en la etapa C110b).
La etapa C111b) es implementada por un procesador o módulo de software de cálculo CAL4_CO2 como se representa en la figura 2B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_CO2.
En el curso de una etapa C112b) representada en la figura 1C, se procede a una selección de uno de los vectores de cuantificación del diccionario CBKopt que se seleccionó en la etapa C111 b).
Siendo tal tapa idéntica a la Etapa C111a) de la figura 1B, no se describirá con detalle de nuevo.
Como resultado de la etapa C112b), se obtiene un vector de cuantificación óptimo V0pt.
Se considera que el vector de cuantificación óptimo Vopt es una aproximación del bloque residuo Bru. Se pretende que la información relacionada con esta predicción se escriba en la señal de datos F2 antes mencionada.
La etapa C112b) es implementada por el procesador o módulo de software de cálculo CAL5_CO2 de la figura 2B. En el curso de una etapa C113b) representada en la figura 1C, se procede a una codificación del vector de cuantificación Vopt seleccionado al final de la etapa C112b). Siendo tal tapa idéntica a la Etapa C112a) de la figura 1B, no se describirá con detalle de nuevo. Como resultado de la etapa C113b), se obtiene el índice IVopt del vector de cuantificación Vopt.
La etapa C113b) es implementada por el procesador o módulo de software de codificación binaria CB_CO2 como se representa en la figura 2B.
En el curso de una etapa C114b) representada en la figura 1C, se procede a la comparación de datos relacionados con el bloque residuo Bru con los datos del vector Vopt. Más precisamente, en el transcurso de esta etapa, se procede al cálculo de la diferencia entre el bloque residuo Bru y el vector Vopt.
Un segundo conjunto de datos, llamado bloque residuo secundario BSru, se obtiene a continuación al final de la etapa C114b).
La etapa C114b) se implemente mediante el procesador o módulo de software CAL6_CO2 de la figura 2B.
En el curso de una etapa C115b) representada en la figura 1C, se procede, de acuerdo con la invención, a una codificación de los datos del bloque residuo secundario BSru.
En el curso de la etapa C115b), se procede, en el curso de una subetapa C1151b), a una transformación del bloque residuo secundario BSru de acuerdo con una operación de transformación directa convencional, para producir un bloque transformado BStu.
La subetapa C1151b) se implementa mediante un procesador o módulo de software de transformación MT_CO2 de la figura 2B.
En el curso de la etapa C115b), se procede además, en el curso de una subetapa C1152b) representada en la figura 1C, a una cuantificación de los datos del bloque transformado BStu, para producir un bloque cuantificado BSqu formado por coeficientes cuantificados. Una etapa de cuantificación de este tipo es, por ejemplo, del tipo escalar o vectorial. La subetapa C1152b) se realiza por medio del procesador o módulo de software de cuantificación MQ_CO2 de la figura 2B.
De forma conocida de por sí, en el curso de la etapa C115b), se procede además, en el curso de una subetapa C1153b) representada en la figura 1C, la codificación de los coeficientes cuantificados del bloque BSqu. Tal codificación es, por ejemplo, una codificación entrópica de tipo CABAC ("Context Adaptive Binary Arithmetic Coder" en inglés) o también una codificación entrópica de tipo aritmético o de Huffman.
La subetapa C1153b) es implementada por el procesador o módulo de software de codificación MC_CO2 de la figura 2B.
En el curso de una etapa C116b) representada en la figura 1C, se procede a la construcción de la señal o flujo de datos F2 que contiene:
- los datos codificados al final de la etapa C115b) citada anteriormente,
- el índice IVopt del vector de cuantificación óptimo Vopt determinado en la etapa C113b) citada anteriormente. La etapa C116b) es implementada por el procesador o módulo de software MCF2 de la figura 2B.
La señal de datos F2 es luego transmitida por una red de comunicación (no representada) a un terminal remoto. Esto incluye el descodificador DO2 representado en la figura 3B.
De forma conocida de por sí, la señal de datos F2 comprende además cierta información codificada por el codificador CO2, tal como el primer tipo de predicción (Inter o Intra) aplicada en la etapa C3 y, en su caso, el modo de predicción seleccionado, el índice del bloque predictor obtenido BPopt obtenido al final de la etapa C3, denominado IBPopt, el tipo de partición del bloque actual Bu si este último ha sido particionado, el índice de imagen de referencia y el vector de desplazamiento utilizados en el modo de predicción Inter.
De forma conocida de por sí, a continuación, se descodifica el bloque residuo BSru. Se obtiene entonces el bloque residuo descodificado BSDru. Se procede a la construcción del bloque descodificado BDu añadiendo al bloque predicho Bpu el bloque residuo descodificado BSDru.
Cabe señalar que el bloque descodificado BDu es el mismo que el bloque descodificado obtenido al final del procedimiento para descodificar la imagen ICj que se describirá más adelante en la descripción. El bloque decodificado BDu queda así disponible para ser utilizado por el codificador CO2 de la figura 2B.
En el curso de una etapa C117b) representada en la figura 1C, conforme a un segundo modo de realización de la invención, se procede a una prueba que consiste en comprobar si un criterio de actualización de los diccionarios CBK1, CBK2,..., CBKw se cumple o no.
Siendo tal tapa idéntica a la Etapa C116a) de la figura 1B, no se describirá con detalle de nuevo.
La etapa C117b) es implementada por el procesador o módulo de software de cálculo CAL7_CO2 de la figura 2B. Si se cumple el criterio de actualización, en el curso de una etapa C118b) representada en la figura 1C, se procede a la actualización de al menos uno de los diccionarios CBK1, CBK2,..., CBKw.
La etapa C118b) es implementada por el procesador o módulo de software de cálculo CAL8_CO2 de la figura 2B. Siendo tal tapa idéntica a la Etapa C117a) de la figura 1B, no se describirá con detalle de nuevo.
A continuación de la etapa C118b) citada anteriormente, se procede, en el curso de una etapa C119b) representada en la figura 1C, a seleccionar el siguiente bloque de la imagen actual ICj. A continuación, las etapas de codificación de bloques descritos anteriormente se implementan nuevamente para este siguiente bloque.
Si después de la etapa C117b) citada anteriormente, no se cumple el criterio de actualización, se procede, en el curso de la etapa C118b) citada anteriormente, a seleccionar el siguiente bloque de la imagen actual ICj. A continuación, las etapas de codificación de bloques descritos anteriormente se implementan nuevamente para este siguiente bloque. En el curso de una etapa C120b) representada en la figura 1C, el codificador CO2 de la figura 2B prueba si el bloque actual que ha sido codificado de acuerdo con el procedimiento de codificación descrito anteriormente es el último bloque de la imagen actual ICj.
Si no es ese el caso, se implementa la etapa C119b) citada anteriormente.
Si el bloque actual es el último bloque de la imagen actual ICj, en el curso de una etapa C121b) representada en la figura 1C, el codificador de CO2 de la figura 2B prueba si la siguiente imagen actual ICj+i es una imagen de tipo Intra o no.
En el caso de que la siguiente imagen actual ICj+i sea de tipo Intra, antes de proceder a la codificación de los bloques de esta imagen de acuerdo con el procedimiento de codificación según la invención, se lleva a cabo la etapa C118 b) de actualización de los diccionarios.
En el ejemplo representado, cada uno de los vectores de cuantificación del diccionario CBKopt se inicializa a un valor predeterminado respectivo.
Si la siguiente imagen actual ICj+i no es de tipo Intra, se procede directamente a la codificación de los bloques de esta imagen de acuerdo con el procedimiento de codificación de la figura 1A y, en última instancia, a la codificación para la cuantificación vectorial de las figuras 1B y 1C.
Descripción detallada de la parte de descodificación
Se describirá ahora un primer modo de realización de la invención, en el que el procedimiento de descodificación según la invención se utiliza para descodificar una señal o flujo de datos representativo de una imagen o de una secuencia de imágenes que puede ser descodificada por un descodificador conforme a cualquiera de los estándares de descodificación de vídeo actuales o futuros.
En este primer modo de realización, el procedimiento de descodificación según la invención se implementa, por ejemplo, por software o hardware mediante modificaciones de un descodificador de ese tipo.
El procedimiento de descodificación según la invención se representa en la forma de un algoritmo que incluye unas etapas D1 a D9 tal como se representan en la figura 4A.
Según el primer modo de realización, el procedimiento de descodificación según la invención se implementa en un dispositivo de descodificación o descodificador DO1 representado en la figura 3A.
Como se ilustra en la figura 3A, según un primer modo de realización de la invención, el descodificador DO1 comprende una memoria MEM_DO1 que a su vez comprende una memoria tampón TAMP_DO1, una unidad de tratamiento UT_DO1 equipada, por ejemplo, con un microprocesador pP y dirigida por un programa informático PG_DO1 que implementa el procedimiento de descodificación según la invención. En la inicialización, las instrucciones de código del programa informático PG_DO1 se cargan, por ejemplo, en una memoria RAM llamada RAM_DO1, antes de ser ejecutadas por el procesador de la unidad de tratamiento UT_DO1.
El procedimiento de descodificación representado en la figura 4A se aplica a una señal o flujo de datos representativo de una imagen actual ICj que se va a descodificar que es fija o que pertenece a una secuencia de imágenes que se van a descodificar.
Para tal efecto, la información representativa de la imagen actual ICj que se va a descodificar se identifica en la señal de datos F1 recibida en el descodificador DO1 y como se entrega al final del procedimiento de codificación de la figura 1A.
Con referencia a la figura 4A, en el curso de una etapa D1, se procede a la identificación de la señal F1 de los bloques residuos cuantificados Bqi, Bq2,..., Bqu, BqS (1<u<s) asociados, respectivamente, con los bloques Bi, B2, ..., Bu,..., Bs previamente codificados de acuerdo con el orden lexicográfico mencionado anteriormente, según la alternativa de codificación implementada en la etapa C6a) o C7b) de la figura 1A.
Dicha etapa de identificación se implementa mediante un procesador de análisis de flujo o un módulo de software de identificación MI_DO1, tal como se representa en la figura 3A, estando dirigido dicho módulo por el microprocesador pP de la unidad de tratamiento UT_DOl.
Por supuesto, son posibles otros tipos de ruta además de la descrita anteriormente y dependen del orden de ruta elegido para la codificación.
En el ejemplo representado, los bloques Bi, B2, Bu,..., Bs que se van a descodificar tienen forma cuadrada y todos contienen K píxeles, con K>1. Según un modo preferido de realización, dichos bloques que se van a descodificar tienen un tamaño de 4x4 u 8x8 píxeles.
Dependiendo del tamaño de la imagen, que no es necesariamente un múltiplo del tamaño de los bloques, los últimos bloques de la izquierda y los últimos bloques de la parte inferior pueden no ser cuadrados. En un modo alternativo de realización, los bloques pueden ser, por ejemplo, de tamaño rectangular y/o no alineados entre sí.
Además, cada bloque que se va a descodificar puede dividirse él mismo en sub-bloques que son a su vez subdivisibles. En el curso de una etapa D2 representada en la figura 4A, el descodificador DO1 de la figura 3A selecciona como bloque actual el primer bloque cuantificado Bqu que contiene datos cuantificados que se codificaron durante la subetapa C63a) o C73b) de la figura 1A.
En el curso de una etapa D3 representada en la figura 4A, se procede a la descodificación de la información en relación con el primer tipo de predicción del bloque actual Bu tal como se implementó en la codificación durante la etapa C3 de la figura 1A, y que se ha escrito en la señal de datos F1. Para tal efecto, la etapa D3 comprende:
- una subetapa D31 para determinar un primer tipo de predicción del bloque actual, por ejemplo Intra o Inter, - una subetapa D32 para determinar un modo de predicción asociado con el primer tipo de predicción determinado. Si el primer tipo de predicción determinado es Intra, el modo de predicción determinado comprende al menos un parámetro de predicción que es una dirección de predicción seleccionada de un conjunto de direcciones de predicción predeterminadas (por ejemplo, 35 direcciones en el estándar HEVC).
Si el primer tipo de predicción determinado es Inter, el modo de predicción comprende al menos los dos parámetros de predicción siguientes:
- el índice del vector de movimiento que describe el movimiento entre los píxeles del bloque actual y los píxeles de un bloque que ya ha sido descodificado y que pertenece a una imagen distinta de la imagen actual,
- el índice de esta otra imagen.
Según un modo preferido de realización:
- este es el primer tipo de predicción Inter aplicado a la etapa C3 que se determina en la señal de datos F1 durante la subetapa D31,
- este es el índice del vector de movimiento y el índice de la imagen de referencia utilizados durante esta predicción Inter que se determinan en la señal de datos F1 durante la subetapa D32.
Durante la etapa D3, el índice del bloque predictor obtenido BPopt obtenido al final de la etapa C3 también se determina en la señal de datos F1, denominado IBPopt y el tipo de partición del bloque actual Bu si este último ha sido particionado. Dicha etapa D3 de descodificación es implementada por el módulo de descodificación MD_DO1 representado en la figura 3A.
En el curso de una etapa D4 representada en la figura 4A, se procede a la descodificación predictiva del bloque actual que se va a descodificar usando el índice del bloque predictor BPopt que se decodificó durante la etapa D3 citada anteriormente. Para tal efecto, de forma conocida de por sí, se procede, en asociación con el índice descodificado del bloque predictor BPopt, a la selección, en la memoria tampón TAMP_DO1 del descodificador DO1 de la figura 3A, del bloque predictor BPopt correspondiente, que se encuentra entre una pluralidad de bloques predictores candidatos previamente almacenados en la memoria tampón TAMP_DO1. Cada uno de los bloques predictores candidatos es un bloque de píxeles que ya ha sido decodificado.
La etapa D4 es implementada por un procesador o módulo de software PRED_1_DO1 de predicción inversa, tal como se representa en la figura 3A, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO1. En el curso de una etapa D5 representada en la figura 4A, de acuerdo con la invención, se procede a una verificación del primer tipo de predicción aplicada al bloque actual Bu durante la etapa C3.
La etapa D5 es implementada por un procesador o módulo de software de cálculo CAL1_DO1 representado en la figura 3a , que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO1.
En el caso de que el primer tipo de predicción aplicado a la codificación sea Intra, en el curso de una etapa D6a) representada en la figura 4A, se procede a la descodificación convencional de los datos del bloque residuo cuantificado Bqu.
De forma conocida de por sí, en el curso de la etapa D6a), se procede, en el curso de una subetapa D61a), a una descodificación del conjunto de coeficientes cuantificados Bqu actual.
Tal descodificación es, por ejemplo, una descodificación entrópica de tipo CABAC o también una descodificación entrópica de tipo aritmético o de Huffman.
Como resultado de la subetapa D61a) citada anteriormente, se obtiene un conjunto BDqu de información digital asociada con el conjunto actual de coeficientes cuantificados Bqu.
Una subetapa D61a) de ese tipo de descodificación es implementada por el módulo de descodificación entrópica MD_DO1 representado en la figura 3A.
De forma conocida de por sí, en el curso de la etapa D6a), se procede además, en el curso de una subetapa D62a) representada en la figura 4A, a una descuantificación de la información digital obtenida tras la subetapa D61a), según una operación clásica de descuantificación que es la operación inversa de la cuantificación implementada durante la subetapa de cuantificación C62a) de la figura 1A. A continuación, se obtiene un conjunto de coeficientes descuantificados BDtu actuales al final de la subetapa D62a). Una etapa de descuantificación de este tipo es, por ejemplo, de tipo escalar o vectorial.
La subetapa D62a) se realiza por medio del procesador o módulo de software MQ-1_DO1 de cuantificación inversa, tal como se representa en la figura 3A, módulo que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO1.
De forma conocida de por sí, en el curso de la etapa D6a), se procede además, en el curso de una subetapa D63a) representada en la figura 4A, a una transformación del conjunto de coeficientes descuantificados BDtu actuales, tal transformación es una transformación directa inversa. Esta transformación es la operación inversa de la transformación efectuada en la subetapa C61a) de la figura 1A. Como resultado de la subetapa D63a), se obtiene un bloque residuo descodificado actual BDru.
La subetapa D63a) es implementada por un procesador o módulo de software MT-1_DO1 de predicción inversa, tal como se representa en la figura 3A, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO1.
El procesador MT-1_DO1 es capaz de implementar una transformación directa inversa como, por ejemplo, una transformación inversa en cosenos discretos del tipo DCT-1, una transformación inversa en senos discretos de tipo DST-1, una transformación inversa en ondículas discretas de tipo DWT-1.
En el curso de una etapa D7a) representada en la figura 4A, se procede a la reconstrucción del bloque actual Bu añadiendo al bloque residuo descodificado BDru, obtenido al final de la subetapa D63a), el bloque predictor BPopt que se obtuvo al final de la etapa D4 citada anteriormente. Como resultado de la etapa D7a), se obtiene un bloque descodificado actual BDu.
La etapa D7a) es implementada por un procesador o módulo de software CAL2_DO1 representado en la figura 3A, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO1.
En el caso de que el primer tipo de predicción que se aplicó a la codificación sea Inter, de acuerdo con la invención, se procede, en el curso de una etapa D6b) representada en la figura 4A, a la selección de un modo de predicción inversa asociado con una predicción inversa de un segundo tipo, diferente del primer tipo de predicción inversa citado anteriormente. Según un modo preferido de realización, la predicción inversa del segundo tipo es una predicción Intra que es, de forma conocida de por sí, asociado con una pluralidad de modos de predicción, cada uno definido por una dirección de predicción predeterminada. En el caso de la predicción Intra propuesta por ejemplo en el estándar HEVC, hay treinta y cinco direcciones de predicción posibles, lo que equivale a determinar treinta y cinco bloques predictores candidatos disponibles para la predicción del bloque Bu actual. Según la invención, la etapa D6b) consiste en seleccionar entre los bloques predictores candidatos disponibles, el predictor candidato que minimiza la distorsión entre el bloque predictor óptimo BPopt que se obtuvo al final de la etapa D4 citada anteriormente de predicción inversa de un primer tipo y cada uno de dichos bloques predictores candidatos disponibles. De la misma forma que en el caso de la predicción inversa del primer tipo citado anteriormente, cada uno de los bloques predictores candidatos puestos en competencia durante la etapa D6b) es un bloque de píxeles que ya ha sido descodificado. Dichos bloques predictores se almacenan previamente en la memoria tampón TAMP_DO1 del descodificador DO1, tal como se representa en la figura 3A.
Como resultado de la etapa D6b), se obtiene un bloque predictor óptimo BP'opt. Dicho bloque de predicción óptimo BP'opt se asocia entonces con su modo de predicción óptimo MP'-1opt que representa el modo de predicción inverso de un segundo tipo seleccionado de acuerdo con la invención.
La etapa D6b) es implementada por un procesador o módulo de software de cálculo CAL3_DO1 como se representa en la figura 3A, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO1.
En el curso de una etapa D7b) representada en la figura 4A, de acuerdo con la invención, se procede a la descodificación de los datos del bloque residuo cuantificado Bqu usando al menos un parámetro de descodificación determinado a partir del modo de predicción inversa seleccionado en la etapa D6b).
En el curso de la etapa D7b), se procede, en el curso de una subetapa D71b) representada en la figura 4A, a una descodificación del conjunto de coeficientes cuantificados Bqu actual.
Tal descodificación es, por ejemplo, una descodificación entrópica de tipo CABAC o también una descodificación entrópica de tipo aritmético o de Huffman.
Como resultado de la subetapa D71b) citada anteriormente, se obtiene un conjunto BDqu de información digital asociada con el conjunto actual de coeficientes cuantificados Bqu.
Según un modo de realización de la invención, la operación de descodificación entrópica D71b) se elige como una operación de descodificación específica del modo de predicción inversa seleccionado en la etapa D6b). En otros términos, las probabilidades utilizadas para la descodificación de los coeficientes del bloque Bqu dependen del modo de predicción seleccionado en la etapa D6b). Por ejemplo, si el modo de predicción inversa Intra seleccionado permite obtener un bloque residuo BDru descodificado de baja amplitud, aumenta la probabilidad de aparición de coeficientes de baja amplitud. A la inversa, si el modo de predicción inversa Intra seleccionado permite obtener un bloque residuo BDru descodificado de alta amplitud, se reduce la probabilidad de aparición de coeficientes de baja amplitud.
Una subetapa D71b) de ese tipo de descodificación es implementada por el módulo de descodificación entrópica MD_DO1 representado en la figura 3A.
En el curso de la etapa D7b), se procede, en el curso de una subetapa D72b) representada en la figura 4A, a una descuantificación de la información digital obtenida tras la subetapa D71b), según una operación clásica de descuantificación que es la operación inversa de la cuantificación implementada durante la subetapa de cuantificación C72b) de la figura 1A. A continuación, se obtiene un conjunto de coeficientes descuantificados BDtu actuales al final de la subetapa D72b). Una etapa de descuantificación de este tipo es, por ejemplo, de tipo escalar o vectorial.
Según un modo de realización de la invención, alternativamente a la descodificación entrópica realizada en la subetapa D71b) o en combinación con esta descodificación entrópica, la operación de descuantificación se elige como una descuantificación específica del modo de predicción seleccionado en la etapa D6b). Según un primer ejemplo, si el modo de predicción inversa Intra seleccionado es el modo 0, 1 o 26 del estándar HEVC, es el paso de cuantificación inversa específica del estándar HEVC la que se elige como la más adecuado para este modo. Según un segundo ejemplo, si el modo de predicción inversa Intra seleccionado es uno de los modos 2 a 25, 27 a 34 del estándar HEVC, el paso de cuantificación inversa que mejor se adapta a este modo es el doble del paso de cuantificación inversa específico del estándar HEVC. Tal disposición permite adaptar la descuantificación a la energía específica del bloque decodificado BDu calculado a partir del bloque predictor BPopt obtenido en la etapa D4.
La subetapa D72b) se realiza por medio del procesador o módulo de software de cuantificación MQ-1_DO1 representado en la figura 3A.
En el curso de la etapa D7b), se procede, en el curso de una subetapa D73b) representada en la figura 4A, a una transformación del conjunto de coeficientes descuantificados BDtu actuales, tal transformación es una transformación directa inversa. Esta transformación es la operación inversa de la transformación efectuada en la subetapa C71b) de la figura 1A. Como resultado de la subetapa D73b), se obtiene un bloque residuo descodificado actual BDru.
La subetapa D73b) es implementada por un procesador o módulo de software MT-1_DO1 de transformación inversa, tal como se representa en la figura 3A.
Según un modo de realización de la invención, alternativamente a la selección de descodificación entrópica realizada en la subetapa D71b) y/o a la selección de la cuantificación realizada en la subetapa D72b), o también en combinación con una y/u otra de estas selecciones, la operación de transformación inversa directa se elige como una transformación inversa específica del modo de predicción de un segundo tipo seleccionado en la etapa D6b). Según un primer ejemplo, si el modo de predicción inversa Intra seleccionado es el modo 0 o 1 del estándar HEVC, siendo la transformación directa inversa más adecuada para este modo la transformación DST-1, se elige esta última. Según un segundo ejemplo, si el modo de predicción inversa Intra seleccionado es uno de los modos 2 a 34 del estándar HEVC, siendo la transformación directa inversa más adecuada para este modo la transformación DCT-1, se elige esta última.
En el curso de una etapa D8b) representada en la figura 4A, se procede a la reconstrucción del bloque actual Bu añadiendo al bloque residuo descodificado BDru, obtenido al final de la subetapa D73b), el bloque predictor BPopt que se obtuvo al final de la etapa D4 citada anteriormente. Como resultado de la etapa D8b), se obtiene un bloque descodificado actual BDu.
La etapa D8b) es implementada por el procesador o módulo de software CAL2_DO1 representado en la figura 3A. En el curso de una etapa D9 representada en la figura 4A, dicho bloque descodificado BDu se escribe en una imagen decodificada IDj.
Tal etapa es implementada por un procesador o módulo de software URI1 de reconstrucción de imágenes como se representa en la figura 3A, estando dirigido dicho módulo por el microprocesador pP del módulo de tratamiento UT_DO1.
Las etapas de descodificación que se acaban de describir se implementan para todos los bloques Bi, B2, ..., Bu,..., Bs que se van a descodificar a partir de la imagen actual ICj considerada, en un orden predeterminado que es, por ejemplo, el orden lexicográfico.
A continuación, se va a describir un segundo modo de realización de la invención con referencia a las figuras 3B, 4B y 4C.
En este segundo modo de realización, cada bloque que se va a descodificar se somete a descodificación mediante cuantificación escalar, como se ha descrito con referencia a la figura 3A, que se combina ventajosamente con una descodificación por cuantificación vectorial.
Según un segundo modo de realización, el procedimiento de descodificación según la invención se implementa en un dispositivo de descodificación o descodificador DO2 representado en la figura 3B. Como se ilustra en la figura 3B, un dispositivo de descodificación de ese tipo comprende una memoria MEM_DO2 que comprende una memoria tampón TAMP_DO2, una unidad de tratamiento UT_DO2 equipada, por ejemplo, con un microprocesador pP y dirigida por un programa informático PG_DO2 que implementa el procedimiento de descodificación según la invención. En la inicialización, las instrucciones de código del programa informático PG_DO2 se cargan, por ejemplo, en una memoria RAM, llamada RAM_DO2, antes de ser ejecutadas por el procesador de la unidad de tratamiento UT_DO2.
Además, el descodificador DO2 comprende los procesadores o módulos de software MI_DO2, PRED-1_DO2, CAL1_DO2, CAL3_DO2, que son, respectivamente, idénticos a los procesadores o módulos de software MI_DO1, PRED-1_DO1, CAL1_DO1, CAL3_Do1 del descodificador DO1 representado en la figura 3A. Por esta razón, los procesadores o módulos de software MI_DO2, PRED-1_DO2, CAL1_DO2, CAL3_DO2 no se describirán nuevamente con detalle.
La figura 4B describe con mayor precisión cómo se implementa la cuantificación vectorial inversa cuando se ha verificado, al final de la etapa D5 en la figura 4A, que el primer tipo de predicción inversa es Intra.
Con referencia a la figura 4B, en el curso de una etapa D110a), se procede a una descodificación del índice IVopt del vector de cuantificación óptimo Vopt que se ha seleccionado al final de la etapa C611 a) de la figura 1B.
Tal etapa D110a) de descodificación es implementada por el módulo de descodificación DB_DO2 de la figura 3B. En el curso de una etapa D111a) representada en la figura 4B, se procede a la determinación del vector de cuantificación óptimo Vopt asociado con el índice IVopt descodificado.
La etapa D111a) es implementada por un procesador o módulo de software de cálculo CAL4_DO2 como se representa en la figura 3B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO2.
En el curso de una etapa D112a) representada en la figura 4B, se procede a la selección de un diccionario de vectores de cuantificación, llamado CBKopt, que contiene el vector de cuantificación Vopt determinado en la etapa D111a). Dicho diccionario pertenece a una pluralidad de diccionarios de vectores de cuantificación disponibles, denominados CBK1, CBK2,..., c BKw. Dichos diccionarios se almacenan previamente en la memoria tampón TAMP_DO2 del descodificador DO2, tal como se representa en la figura 3B.
La etapa D112a) es implementada por un procesador o módulo de software de cálculo CAL5_DO2 como se representa en la figura 3B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO2.
De acuerdo con la invención, correspondientemente a la etapa de codificación C110a) de la figura 1B, tal selección se implementa en base a uno y/u otro de los siguientes elementos:
- las características de la predicción (por ejemplo, el modo Intra elegido entre los 35 modos Intra del estándar HEVC), cuyos índices se descodificaron en la etapa D3,
- las características de frecuencia del bloque predictor BPopt cuyo índice IBopt se descodificó en la etapa D3, - el tamaño del bloque actual Bu que se va a descodificar,
- las características de la imagen actual ICj que se va a descodificar, como su tamaño o su energía.
En el modo preferido de realización, W=70, es decir que:
- en el caso de un bloque actual Bu de tamaño 4x4, hay un diccionario diferente para cada uno de los 35 modos Intra considerados en el estándar HEVC,
- en el caso de un bloque actual Bu de tamaño 8x8, hay un diccionario diferente para cada uno de los 35 modos Intra considerados en el estándar HEVC.
De acuerdo con este modo de realización preferido, por tanto, el diccionario seleccionado depende tanto del tamaño del bloque actual Bu que se va a descodificar como del modo de predicción cuyo índice se descodificó en la etapa D3. En el curso de una etapa D113a) representada en la figura 4B, se procede, conforme a un segundo modo de realización de la invención, a una descodificación de los datos del bloque residuo cuantificado BSqu.
En el curso de la etapa D113a), se procede, En el curso de una subetapa D1131a) representada en la figura 4B, a una descodificación del conjunto de coeficientes cuantificados actuales BSqu.
Tal descodificación es, por ejemplo, una descodificación entrópica de tipo CABAC o también una descodificación entrópica de tipo aritmético o de Huffman.
Como resultado de la subetapa D1131a) citada anteriormente, se obtiene un conjunto BSDqu de información digital asociada con el conjunto actual de coeficientes cuantificados BSqu.
Una subetapa D1131a) de ese tipo de descodificación es implementada por el módulo de descodificación entrópica MD_DO2 representado en la figura 3B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO2.
En el curso de la etapa D113a), se procede, En el curso de una subetapa D1132a) representada en la figura 4B, a una descuantificación de la información digital obtenida tras la subetapa D1131a), según una operación clásica de descuantificación que es la operación inversa de la cuantificación implementada durante la subetapa de cuantificación C1142a) de la figura 1B. A continuación, se obtiene un conjunto de coeficientes descuantificados BSDtu actuales al final de la subetapa D1132a). Tal subetapa de descuantificación es, por ejemplo, de tipo escalar o vectorial.
La subetapa D1132a) se realiza por medio del procesador o módulo de software de cuantificación MQ'1_DO2 representado en la figura 3B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO2. En el curso de la etapa D113a), se procede, En el curso de una subetapa D1133a) representada en la figura 4B, a una transformación del conjunto de coeficientes descuantificados BSDtu actuales, tal transformación es una transformación directa inversa. Esta transformación es la operación inversa de la transformación efectuada en la subetapa C1141a) de la figura 1B. Como resultado de la subetapa D1133a), se obtiene un bloque residuo descodificado actual BSDru. La subetapa D1133a) es implementada por un procesador o módulo de software MT'1_DO2 de transformación inversa, tal como se representa en la figura 3B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO2.
El procesador MT'1_DO2 es capaz de implementar una transformación directa inversa como, por ejemplo, una transformación inversa en cosenos discretos del tipo DCT'1, una transformación inversa en senos discretos de tipo DST'1, una transformación inversa en ondículas discretas de tipo DWT'1.
En el curso de una etapa D114a) representada en la figura 4B, se procede, de acuerdo con la invención, a la reconstrucción del bloque actual Bu añadiendo al bloque residuo descodificado BDru, obtenido al final de la subetapa D1133a):
- el bloque predictor óptimo BPopt que se obtuvo al final de la etapa D4 citada anteriormente en la figura 4A, - y el vector de cuantificación óptimo Vopt que se obtuvo al final de la etapa D111a) citada anteriormente en la figura 4B.
Como resultado de la etapa D114a), se obtiene un bloque descodificado actual BDu.
La etapa D114a) es implementada por un procesador o módulo de software de cálculo CAL2_DO2 representado en la figura 3B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO2.
En el curso de una etapa D115a) representada en la figura 4B, dicho bloque descodificado BDu se escribe en una imagen decodificada IDj.
Tal etapa es implementada por un procesador o módulo de software URI2 de reconstrucción de imágenes como se representa en la figura 3B, estando dirigido dicho módulo por el microprocesador pP del módulo de tratamiento UT_DO2.
En el curso de una etapa D116a) representada en la figura 4B, se procede a una prueba que consiste en comprobar si un criterio de actualización de los diccionarios CBK1, CBK2,..., c BKw se cumple o no.
Según una primera variante, dicho criterio consiste en comparar el número de coeficientes no perjudiciales en el bloque residuo descodificado BSDru con un umbral predeterminado. Por ejemplo, el criterio de actualización se considera cumplido si el número de coeficientes no perjudiciales es superior a 3.
Según una segunda variante, tal criterio consiste en comparar la tasa de bits de codificación del bloque residuo descodificado BSDru con un umbral predeterminado. Por ejemplo, el criterio de actualización se considera cumplido si la tasa de bits de codificación del bloque residuo BSDru es superior a 10 bits.
La etapa D116a) es implementada por un procesador o módulo de software de cálculo CAL7_DO2 como se representa en la figura 3B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO2.
Si se cumple el criterio de actualización, en el curso de una etapa D117a) representada en la figura 4B, se procede a la actualización de al menos uno de los diccionarios CBK1, CBK2,..., CBKw.
La etapa D117a) es implementada por un procesador o módulo de software de cálculo CAL8_DO2 como se representa en la figura 3B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO2.
Siendo la etapa D117a) idéntica a la etapa C117a) para actualizar los diccionarios implementados en la codificación con referencia a la figura 1B, esta etapa no se describirá con más detalle.
A continuación de la etapa D117a) citada anteriormente, se procede, en el curso de una etapa D118a) representada en la figura 4B, a la selección del siguiente bloque residuo cuantificado de la imagen actual ICj que se va a descodificar. A continuación, se vuelven a implementar las etapas para descodificar el siguiente bloque residuo cuantificado descrito anteriormente.
Si después de la etapa D116a) citada anteriormente, no se cumple el criterio de actualización, se procede, en el curso de la etapa D118a) citada anteriormente, a la selección del siguiente bloque residuo cuantificado de la imagen actual ICj que se va a descodificar. A continuación, se vuelven a implementar las etapas para descodificar el siguiente bloque residuo cuantificado descrito anteriormente con referencia a la figura 4B.
En el curso de una etapa D119a) representada en la figura 4B, el descodificador DO2 de la figura 3B prueba si el bloque actual que ha sido descodificado de acuerdo con el procedimiento de descodificación descrito anteriormente es el último bloque de la imagen actual ICj que se va a descodificar.
Si no es ese el caso, se implementa la etapa D118a) citada anteriormente.
Si el bloque actual es el último bloque de la imagen actual ICj que se va a descodificar, en el curso de una etapa D120a) representada en la figura 4B, el descodificador DO2 de la figura 3B prueba si la siguiente imagen actual ICj+1 que se va a descodificar es una imagen de tipo Intra o no.
Si la siguiente imagen actual ICj+1 que se va a descodificar es del tipo Intra, antes de proceder a la descodificación de los bloques de esta imagen de acuerdo con el procedimiento de descodificación de la figura 4A y, en última instancia, a la descodificación por cuantificación vectorial inversa de las figuras 4B y 4C, se lleva a cabo la etapa D117a) de actualización de los diccionarios.
En el ejemplo representado, cada uno de los vectores de cuantificación del diccionario CBKopt se inicializa a un valor predeterminado respectivo.
Si la siguiente imagen actual ICj+1 que se va a descodificar no es del tipo Intra, se procede directamente a la descodificación de los bloques de esta imagen de acuerdo con el procedimiento de descodificación de la figura 4A y, en última instancia, a la descodificación para la cuantificación vectorial de las figuras 4B y 4C.
Las etapas de descodificación que se acaban de describir se implementan para todos los bloques Bi, B2, Bu,..., Bs que se van a descodificar a partir de la imagen actual ICj considerada, en un orden predeterminado que es, por ejemplo, el orden lexicográfico.
La figura 4C describe con mayor precisión cómo se implementa la cuantificación vectorial inversa cuando se ha verificado, al final de la etapa D5 en la figura 4A, que el primer tipo de predicción inversa es Inter.
Con referencia a la figura 4C, en el curso de una etapa D110b), se procede a una descodificación del índice IVopt del vector de cuantificación óptimo Vopt que se ha seleccionado al final de la etapa C612b) de la figura 1C.
Tal etapa D110b) de descodificación es implementada por el módulo de descodificación DB_DO2 de la figura 3B. En el curso de una etapa D111b) representada en la figura 4C, se procede a la determinación del vector de cuantificación óptimo Vopt asociado con el índice IVopt descodificado.
La etapa D111b) es implementada por el procesador o módulo de software de cálculo CAL4_DO2 de la figura 3B. En el curso de una etapa D112b) representada en la figura 4C, se procede a la selección de un modo de predicción óptimo MP'opt que representa el modo de predicción inversa de un segundo tipo seleccionado según la invención. Como ya se ha descrito anteriormente con respecto al segundo modo de realización de la codificación de la figura 1C, la etapa D112b) consiste en seleccionar entre los bloques predictores candidatos disponibles, el predictor candidato que minimiza la distorsión entre el bloque predictor óptimo BPopt que se obtuvo al final de la etapa D4 citada anteriormente de predicción inversa de un primer tipo y cada uno de dichos bloques predictores candidatos disponibles. De la misma forma que en el caso de la predicción del primer tipo mencionado anteriormente, cada uno de los bloques predictores candidatos puestos en competencia durante la etapa D112b) es un bloque de píxeles que ya ha sido descodificado. Dichos bloques predictores se almacenan previamente en la memoria tampón t Am P_DO2 del descodificador DO2 de la figura 3B.
Como resultado de la etapa D112b), se obtiene un bloque predictor óptimo BP'opt. Dicho bloque predictor óptimo BP'opt se asocia entonces con su modo de predicción óptimo MP'opt que representa el modo de predicción inversa de un segundo tipo seleccionado de acuerdo con la invención.
La etapa D112b) es implementada por un procesador o módulo de software de cálculo CAL3_DO2 como se representa en la figura 3B, que está controlado por el microprocesador pP de la unidad de tratamiento UT_DO2.
En el curso de una etapa D113b) representada en la figura 4C, se procede a la selección de un diccionario de vectores de cuantificación CBKopt que pertenece a uno o más diccionarios de vectores de cuantificación disponibles para codificar, denominados CBK1, CBK2,..., CBKw. Dichos diccionarios se almacenan previamente en la memoria tampón TAMP_DO2 del descodificador DO2, tal como se representa en la figura 3B.
Conforme a un segundo modo de realización de la invención, el diccionario CBKopt seleccionado es el que está asociado con el modo de predicción óptimo MP'opt que se seleccionó en la etapa D112b).
La etapa D113b) es implementada por el procesador o módulo de software de cálculo CAL5_DO2 de la figura 3B. En el curso de una etapa D114b) representada en la figura 4C, se procede, conforme a un segundo modo de realización de la invención, a una descodificación de los datos del bloque residuo cuantificado BSqu.
En el curso de la etapa D114b), se procede, en el curso de una subetapa D1141b) representada en la figura 4C, a una descodificación del conjunto de coeficientes cuantificados actuales BSqu.
Tal descodificación es, por ejemplo, una descodificación entrópica de tipo CABAC o también una descodificación entrópica de tipo aritmético o de Huffman.
Como resultado de la subetapa D1141b) citada anteriormente, se obtiene un conjunto BSDqu de información digital asociada con el conjunto actual de coeficientes cuantificados BSqu.
Una subetapa D1141b) de ese tipo de descodificación es implementada por el módulo de descodificación entrópica MD_DO2 de la figura 3B.
En el curso de la etapa D114b), se procede, en el curso de una subetapa D1142b) representada en la figura 4C, a una descuantificación de la información digital obtenida tras la subetapa D1141b), según una operación clásica de descuantificación que es la operación inversa de la cuantificación implementada durante la subetapa de cuantificación C1152b) de la figura 1C. A continuación, se obtiene un conjunto de coeficientes descuantificados BSDtu actuales al final de la subetapa D1142b). Tal subetapa de descuantificación es, por ejemplo, de tipo escalar o vectorial.
La subetapa D1142b) se realiza por medio del procesador o módulo de software de cuantificación MQ-1_DO2 de la figura 3B.
En el curso de la etapa D114b), se procede, en el curso de una subetapa D1143b) representada en la figura 4C, a una transformación del conjunto de coeficientes descuantificados BSDtu actuales, tal transformación es una transformación directa inversa. Esta transformación es la operación inversa de la transformación efectuada en la subetapa C1151b) de la figura 1C. Como resultado de la subetapa D1143b), se obtiene un bloque residuo descodificado actual BSDru. La subetapa D1143b) es implementada por un procesador o módulo de software MT-1_DO2 de transformación inversa de la figura 3B.
En el curso de una etapa D115b) representada en la figura 4C, se procede, de acuerdo con la invención, a la reconstrucción del bloque actual Bu añadiendo al bloque residuo descodificado BSDru, obtenido al final de la subetapa D1143b):
- el bloque predictor óptimo BPopt que se obtuvo al final de la etapa D4 citada anteriormente en la figura 4A, - y el vector de cuantificación óptimo Vopt que se obtuvo al final de la etapa D111b) citada anteriormente en la figura 4C.
Como resultado de la etapa D115b), se obtiene un bloque descodificado actual BDu.
La etapa D115b) es implementada por el procesador o módulo de software de cálculo CAL2_DO2 de la figura 3B. En el curso de una etapa D116b) representada en la figura 4C, dicho bloque descodificado BDu se escribe en una imagen decodificada IDj.
Tal etapa es implementada por un procesador o módulo de software URI2 de reconstrucción de imágenes de la figura 3B.
En el curso de una etapa D117b) representada en la figura 4C, se procede a una prueba que consiste en comprobar si un criterio de actualización de los diccionarios CBK1, CBK2,..., CBKw se cumple o no.
Siendo la etapa D117b) idéntica a la etapa D116a) para actualizar los diccionarios de la figura 4B, esta etapa no se describirá con más detalle.
La etapa D117b) es implementada por el procesador o módulo de software de cálculo CAL7_DO2 de la figura 3B. Si se cumple el criterio de actualización, en el curso de una etapa D118b) representada en la figura 4C, se procede a la actualización de al menos uno de los diccionarios CBK1, CBK2,..., CBKw.
La etapa D118b) es implementada por el procesador o módulo de software de cálculo CAL8_DO2 de la figura 3B. Siendo la etapa D118b) idéntica a la etapa D117a) para actualizar los diccionarios de la figura 4B, esta etapa no se describirá con más detalle.
A continuación de la etapa D118b) citada anteriormente, se procede, en el curso de una etapa D119b) representada en la figura 4C, a la selección del siguiente bloque residuo cuantificado de la imagen actual ICj que se va a descodificar. A continuación, se vuelven a implementar las etapas para descodificar el siguiente bloque residuo cuantificado descrito anteriormente.
Si después de la etapa D117b) citada anteriormente, no se cumple el criterio de actualización, se procede, en el curso de la etapa D119b) citada anteriormente, a la selección del siguiente bloque residuo cuantificado de la imagen actual ICj que se va a descodificar. A continuación, se vuelven a implementar las etapas para descodificar el siguiente bloque residuo cuantificado descrito anteriormente con referencia a la figura 4C.
En el curso de una etapa D120b) representada en la figura 4C, el descodificador DO2 de la figura 3B prueba si el bloque actual que ha sido descodificado de acuerdo con el procedimiento de descodificación descrito anteriormente es el último bloque de la imagen actual ICj que se va a descodificar.
Si no es ese el caso, se implementa la etapa D119b) citada anteriormente.
Si el bloque actual es el último bloque de la imagen actual ICj que se va a descodificar, en el curso de una etapa D121b) representada en la figura 4C, el descodificador DO2 de la figura 3B prueba si la siguiente imagen actual ICj+1 que se va a descodificar es una imagen de tipo Intra o no.
Si la siguiente imagen actual ICj+i que se va a descodificar es del tipo Intra, antes de proceder a la descodificación de los bloques de esta imagen de acuerdo con el procedimiento de descodificación de la figura 4A y, en última instancia, a la descodificación por cuantificación vectorial inversa de las figuras 4B y 4C, se lleva a cabo la etapa D118b) de actualización de los diccionarios.
En el ejemplo representado, cada uno de los vectores de cuantificación del diccionario CBKopt se inicializa a un valor predeterminado respectivo.
Si la siguiente imagen actual I j que se va a descodificar no es del tipo Intra, se procede directamente a la descodificación de los bloques de esta imagen de acuerdo con el procedimiento de descodificación de la figura 4A y, en última instancia, a la descodificación para la cuantificación vectorial de las figuras 4B y 4C.
Las etapas de descodificación que se acaban de describir se implementan para todos los bloques B1, B2, ..., Bu,..., Bs que se van a descodificar a partir de la imagen actual ICj considerada, en un orden predeterminado que es, por ejemplo, el orden lexicográfico.
Huelga decir que los modos de realización que se han descrito anteriormente se han dado meramente a título indicativo y de ningún modo limitativo. La invención está definida por las reivindicaciones adjuntas.

Claims (8)

REIVINDICACIONES
1. Procedimiento de codificación de al menos una imagen (ICj) cortada en bloques, implementando, para un bloque actual (Bu) a codificar:
- una determinación (C31) de un primer tipo de predicción, Inter, del bloque actual,
- una determinación (C32) de un modo de predicción asociado con el primer tipo de predicción,
- una obtención de un primer bloque predictor (BPopt) a partir del modo de predicción determinado,
- un cálculo (C5a); (C5b) de un bloque residuo (Bru) que es representativo de la diferencia entre el primer bloque predictor obtenido (BPopt) y el bloque actual (Bu), estando dicho procedimiento de codificación caracterizado por que comprende:
- una selección (C6b) de un modo de predicción asociado con una predicción de un segundo tipo, Intra, diferente de dicho primer tipo,
- una codificación (C7b) del bloque residuo (Bru) utilizando un parámetro de codificación determinado a partir del modo de predicción seleccionado,
en el que la selección del modo de predicción se implementa en función del primer bloque predictor (BPopt) obtenido del modo de predicción asociado con el primer tipo de predicción,
en el que el modo de predicción seleccionado es aquel a partir del cual se obtiene un segundo bloque predictor que, entre otros bloques de predictores candidatos, tiene la distorsión mínima con respecto al primer bloque predictor (BPopt),
en el que el parámetro de codificación pertenece al grupo que comprende:
- una operación de transformación,
- un diccionario de vectores de cuantificación,
- un codificador entrópico,
- una operación de cuantificación escalar.
2. Dispositivo de codificación (CO1) de al menos una imagen (ICj) cortada en bloques, que comprende, para un bloque actual (Bu) a codificar:
- medios (PRED_CO1) de predicción para determinar:
• un primer tipo de predicción, Inter, del bloque actual,
• un modo de predicción asociado con el primer tipo de predicción,
estando configurados dichos medios de predicción para obtener un primer bloque predictor (BPopt) a partir del modo de predicción determinado,
- medios (CAL2_CO1) de cálculo de un bloque residuo (Bru) que es representativo de la diferencia entre el primer bloque predictor obtenido (BPopt) y el bloque actual (Bu),
estando dicho dispositivo de codificación caracterizado por que comprende:
- medios (CAL3_CO1) de selección de un modo de predicción asociado con una predicción de un segundo tipo, Intra, diferente de dicho primer tipo,
- medios (MT_CO1, MQ_CO1, MC_CO1) de codificación del bloque residuo (Bru) calculado utilizando un parámetro de codificación determinado a partir del modo de predicción seleccionado,
en el que el modo de predicción se selecciona en función del primer bloque predictor (BPopt) obtenido a partir del modo de predicción asociado con el primer tipo de predicción,
en el que el modo de predicción seleccionado es aquel a partir del cual se obtiene un segundo bloque predictor que, entre otros bloques de predictores candidatos, tiene la distorsión mínima con respecto al primer bloque predictor (BPopt),
en el que el parámetro de codificación pertenece al grupo que comprende:
- una operación de transformación,
- un diccionario de vectores de cuantificación,
- un codificador entrópico,
- una operación de cuantificación escalar.
3. Programa informático que incluye instrucciones de código de programa para la ejecución de las etapas del procedimiento de codificación según la reivindicación 1, cuando dicho programa es ejecutado en un ordenador.
4. Soporte de registro legible por un ordenador en el que se registra un programa informático que comprende unas instrucciones de código de programa para la ejecución de las etapas del procedimiento de codificación según la reivindicación 1, cuando dicho programa es ejecutado por un ordenador.
5. Procedimiento de descodificación de una señal de datos (F1) representativa de al menos una imagen (ICj) cortada en bloques, implementando, para un bloque actual (Bu) que se va a descodificar:
- una determinación (D2), en dicha señal de datos, de un bloque residuo (Bru) relativo al bloque actual que se va a descodificar,
- una determinación (D31) de un primer tipo de predicción, Inter, del bloque actual,
- una determinación (D32) de un modo de predicción asociado con dicho primer tipo de predicción,
- una obtención (D4) de un primer bloque predictor (BPopt) a partir de dicho modo de predicción determinado, estando dicho procedimiento de descodificación caracterizado por que comprende:
- una selección (D6b) de un modo de predicción asociado con una predicción de un segundo tipo Intra, diferente de dicho primer tipo,
- una reconstrucción (D7b)-(D8b) del bloque actual a partir del bloque residuo determinado (Bru), el primer bloque predictor (BPopt) obtenido y un parámetro de descodificación determinado a partir del modo de predicción seleccionado, en el que la selección del modo de predicción se implementa en función del primer bloque predictor (BPopt) obtenido del modo de predicción asociado con el primer tipo de predicción,
en el que el modo de predicción seleccionado es aquel a partir del cual se obtiene un segundo bloque predictor que, entre otros bloques de predictores candidatos, tiene la distorsión mínima con respecto al primer bloque (BPopt), en el que el parámetro de descodificación pertenece al grupo que comprende:
- una operación de transformación,
- un diccionario de vectores de cuantificación,
- un descodificador entrópico,
- una operación de cuantificación escalar.
6. Dispositivo de descodificación una señal de datos (F1) representativa de al menos una imagen (ICj) cortada en bloques, que comprende, para un bloque actual (Bu) que se va a descodificar:
- medios (MI_DO1) de determinación, en dicha señal de datos, de un bloque residuo (Bru) relativo al bloque actual que se va a descodificar,
- medios (PRED'1_DO1) de predicción para determinar:
• un primer tipo de predicción, Inter, del bloque actual,
• un modo de predicción asociado con el primer tipo de predicción,
estando configurados dichos medios de predicción para obtener un primer bloque predictor (BPopt) a partir del modo de predicción determinado, estando dicho dispositivo de descodificación caracterizado por que comprende:
- medios (CAL1_DO1) de selección de un modo de predicción asociado con una predicción de un segundo tipo, Intra, diferente de dicho primer tipo,
- medios (MD_DO1, MQ'1_DO1, MT'1_DO1, CAL2_DO1) de reconstrucción del bloque actual a partir del bloque residuo (Bru) determinado, el primer bloque predictor (BPopt) obtenido y un parámetro de descodificación determinado a partir del modo de predicción seleccionado,
en el que el modo de predicción se selecciona en función del primer bloque predictor (BPopt) obtenido a partir del modo de predicción asociado con el primer tipo de predicción,
en el que el modo de predicción seleccionado es aquel a partir del cual se obtiene un segundo bloque predictor que, entre otros bloques de predictores candidatos, tiene la distorsión mínima con respecto al primer bloque predictor (BPopt),
en el que el parámetro de descodificación pertenece al grupo que comprende:
- una operación de transformación,
- un diccionario de vectores de cuantificación,
- un descodificador entrópico,
- una operación de cuantificación escalar.
7. Programa informático que incluye instrucciones de código de programa para la ejecución de las etapas del procedimiento de descodificación según la reivindicación 5, cuando dicho programa es ejecutado en un ordenador.
8. Soporte de registro legible por un ordenador en el que se registra un programa informático que comprende unas instrucciones de código de programa para la ejecución de las etapas del procedimiento de descodificación según la reivindicación 5, cuando dicho programa es ejecutado por un ordenador.
ES16714963T 2015-02-19 2016-02-18 Procedimiento de codificación y descodificación de imágenes, dispositivo de codificación y de descodificación y programas informáticos correspondientes Active ES2875586T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1551425A FR3033115A1 (fr) 2015-02-19 2015-02-19 Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
PCT/FR2016/050374 WO2016132075A1 (fr) 2015-02-19 2016-02-18 Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants

Publications (1)

Publication Number Publication Date
ES2875586T3 true ES2875586T3 (es) 2021-11-10

Family

ID=52829175

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16714963T Active ES2875586T3 (es) 2015-02-19 2016-02-18 Procedimiento de codificación y descodificación de imágenes, dispositivo de codificación y de descodificación y programas informáticos correspondientes

Country Status (6)

Country Link
US (1) US10750168B2 (es)
EP (1) EP3259909B1 (es)
CN (1) CN107409216B (es)
ES (1) ES2875586T3 (es)
FR (1) FR3033115A1 (es)
WO (1) WO2016132075A1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11012714B1 (en) * 2020-06-23 2021-05-18 Google Llc Image coding using lexicographic coding order with floating block-partitioning

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1206864C (zh) * 2002-07-22 2005-06-15 中国科学院计算技术研究所 结合率失真优化的码率控制的方法及其装置
KR100678911B1 (ko) * 2005-07-21 2007-02-05 삼성전자주식회사 방향적 인트라 예측의 적용을 확장하여 비디오 신호를인코딩하고 디코딩하는 방법 및 장치
CN101677400B (zh) * 2008-09-19 2012-08-15 华为技术有限公司 编码、解码方法和编码器、解码器及编解码系统
US9172968B2 (en) * 2010-07-09 2015-10-27 Qualcomm Incorporated Video coding using directional transforms
CN102333220B (zh) * 2011-10-21 2013-11-06 北京大学 一种选择在变换域完成预测编码的视频编解码方法

Also Published As

Publication number Publication date
US10750168B2 (en) 2020-08-18
EP3259909A1 (fr) 2017-12-27
FR3033115A1 (fr) 2016-08-26
CN107409216B (zh) 2021-01-05
US20180070078A1 (en) 2018-03-08
WO2016132075A1 (fr) 2016-08-25
CN107409216A (zh) 2017-11-28
EP3259909B1 (fr) 2021-03-31

Similar Documents

Publication Publication Date Title
US10523951B2 (en) Systems and methods for processing a digital image
US11070802B2 (en) Moving image coding device, moving image decoding device, moving image coding/decoding system, moving image coding method and moving image decoding method
CN108028942B (zh) 像素预测方法、编码方法、解码方法及其装置、存储介质
ES2893815T3 (es) Procedimiento y aparato para codificar o descodificar una paleta en el modo de codificación de paleta
ES2755357T3 (es) Codificación y descodificación de video
ES2743227T3 (es) Método para codificar/decodificar imagen
US20180152714A1 (en) Methods for Palette Coding of Image and Video Data
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
US10178405B2 (en) Enhanced coding and decoding using intra block copy mode
US10085028B2 (en) Method and device for reducing a computational load in high efficiency video coding
ES2683857T3 (es) Método y aparato para compensación de movimiento
WO2012095467A1 (en) Video encoding and decoding with low complexity
KR20090058954A (ko) 사이드 매칭을 이용한 영상의 부호화 방법 및 장치, 그복호화 방법 및 장치
US11153564B2 (en) Systems and methods for processing a block of a digital image
US11350106B2 (en) Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs
ES2728529T3 (es) Mapas de significancia multinivel para codificación y decodificación
ES2496365T3 (es) Codificación y descodificación de mapas significativos usando selección de la partición
ES2875586T3 (es) Procedimiento de codificación y descodificación de imágenes, dispositivo de codificación y de descodificación y programas informáticos correspondientes
ES2907382T3 (es) Procedimiento de codificación y decodificación de imágenes, dispositivo de codificación y decodificación de imágenes y programas de ordenador correspondientes
JP7233363B2 (ja) 画像パラメータをコーディング及びデコーディングする方法、画像パラメータをコーディング及びデコーディングする装置、並びに、これらに対応するコンピュータプログラム
JP2017073598A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
CN114071159B (zh) 帧间预测方法、编码器、解码器及计算机可读存储介质
CN111279699A (zh) 视频编解码的方法和装置
KR20040020306A (ko) 겹치는 사각 슬라이스 구조를 이용한 영상 부호화 및복호화 장치 및 방법