ES3053587T3 - Methods and devices for coding and decoding a data stream representing at least one image - Google Patents

Methods and devices for coding and decoding a data stream representing at least one image

Info

Publication number
ES3053587T3
ES3053587T3 ES19745689T ES19745689T ES3053587T3 ES 3053587 T3 ES3053587 T3 ES 3053587T3 ES 19745689 T ES19745689 T ES 19745689T ES 19745689 T ES19745689 T ES 19745689T ES 3053587 T3 ES3053587 T3 ES 3053587T3
Authority
ES
Spain
Prior art keywords
current block
block
prediction
pixel
encoding
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
ES19745689T
Other languages
English (en)
Inventor
FéLIX HENRY
Mohsen Abdoli
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 ES3053587T3 publication Critical patent/ES3053587T3/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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/19Methods 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 using optimisation based on Lagrange multipliers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

La invención se refiere a un método de codificación y a un método de decodificación de un flujo de datos codificado que representa al menos una imagen dividida en bloques. Para al menos un bloque de la imagen, denominado bloque actual, se decodifica (E42) del flujo de datos la información que indica su modo de codificación. Cuando el modo de codificación del bloque actual corresponde a un primer modo de codificación, este se decodifica (E43) mediante un primer paso de cuantificación determinado (E430) para descuantificar, en el dominio transformado, un residuo de predicción asociado al bloque actual. Cuando el modo de codificación del bloque actual corresponde a un segundo modo de codificación, este se decodifica (E44) mediante un segundo paso de cuantificación determinado (E441) para descuantificar, en el dominio espacial, un residuo de predicción asociado al bloque actual. Según la invención, el primer y el segundo paso de cuantificación se determinan según un mismo parámetro de cuantificación. (Traducción automática con Google Translate, sin valor legal)

Description

[0001] DESCRIPCIÓN
[0002] Procedimientos y dispositivos para codificar y decodificar un flujo de datos representativo de al menos una imagen1. Campo de la invención
[0003] El campo de la invención es el de la codificación y decodificación de imágenes o secuencias de imágenes y, en particular, de flujos de vídeo.
[0004] Más específicamente, la invención se refiere a la compresión de imágenes o secuencias de imágenes utilizando una representación en bloques de las imágenes.
[0005] La invención se puede aplicar en particular a la codificación de imágenes o de vídeo implementada en codificadores actuales o futuros (JPEG, MPEG, H.264, HEVC, etc. y sus modificaciones), y a la correspondiente decodificación.
[0006] 2. Técnica anterior
[0007] Las imágenes y secuencias de imágenes digitales ocupan mucho espacio en términos de memoria, lo que requiere, a la hora de transmitir estas imágenes, comprimirlas a fin de evitar problemas de saturación en la red utilizada para esta transmisión.
[0008] Se conocen ya varias técnicas de compresión de datos de vídeo. Entre ellos, el estándar de compresión HEVC ("High Efficiency Video Coding, Coding Tools and Specification", Matthias Wien, Signals and Communication Technology, 2015) propone implementar una predicción de píxeles de una imagen actual en relación con otros píxeles pertenecientes a la misma imagen (predicción intra) o a una imagen anterior o siguiente (predicción inter).
[0009] Más precisamente, la predicción intra explota las redundancias espaciales dentro de una imagen. Para ello, las imágenes se cortan en bloques de píxeles. Los bloques de píxeles se predicen entonces utilizando informaciones ya reconstruidas, correspondientes a los bloques previamente codificados/descodificados en la imagen actual según el orden de recorrido de los bloques en la imagen.
[0010] Además, convencionalmente, la codificación de un bloque actual se lleva a cabo utilizando una predicción del bloque actual, denominada bloque predictor, y un residuo de predicción o "bloque residual", que corresponde a una diferencia entre el bloque actual y el bloque predictor. El bloque residual obtenido se transforma entonces, por ejemplo mediante una transformada de tipo DCT (transformada de coseno discreto). Los coeficientes del bloque residual transformado se cuantifican entonces, después se codifican mediante codificación entrópica y se transmiten al decodificador, que puede reconstruir el bloque actual añadiendo este bloque residual al bloque predictor.
[0011] La decodificación se realiza imagen por imagen y, para cada imagen, bloque por bloque. Para cada bloque, se leen los elementos correspondientes del flujo. Se realizan la cuantificación inversa y la transformada inversa de los coeficientes del bloque residual. Después, se calcula la predicción del bloque para obtener el bloque predictor y el bloque actual se reconstruye añadiendo la predicción (es decir, el bloque predictor) al bloque residual decodificado. En el documento US9253508, se inserta una técnica de codificación DPCM (Differential Pulse Code Modulation en inglés) para codificar bloques en modo Intra en un codificador HEVC. Tal técnica implica predecir un conjunto de píxeles de un bloque interno a partir de otro conjunto de píxeles del mismo bloque que se han reconstruido previamente. En el documento US9253508, un conjunto de píxeles del bloque intra a codificar corresponde a una línea del bloque, o una columna o una línea y una columna, y la predicción intra utilizada para predecir el conjunto de píxeles es una de las predicciones intra direccionales definidas en el estándar HEVC.
[0012] Sin embargo, tal técnica no es óptima. En efecto, la reconstrucción de un conjunto de píxeles del bloque intra corresponde o bien a la adición de un residuo de predicción en el caso de una codificación sin pérdidas, ofreciendo así una tasa de compresión bastante baja, o bien a la adición de un residuo de predicción después de una transformación inversa y/o de una cuantificación inversa de dicho otro conjunto de píxeles que sirve de predicción. Por lo tanto, dicha técnica no permite predecir cada píxel del bloque intra utilizando una función de predicción local y reconstruir el píxel predicho antes de predecir un píxel siguiente. En efecto, esta técnica requiere reconstruir un conjunto de píxeles (línea/columna del bloque, por ejemplo) para predecir otro conjunto de píxeles. En otras palabras, cada vez que se predice y reconstruye una parte del bloque, se predicen y reconstruyen varios píxeles del bloque. Además, en el documento US9253508, no se describe cómo hacer coexistir modos de intra predicción convencionales como los definidos en el estándar HEVC por ejemplo y el modo de predicción DPCM, ni cómo determinar un paso de cuantificación para los bloques codificados por una intra predicción DPCM como la descrita en el documento US9253508, que está adaptada a un mecanismo de optimización de velocidad/distorsión que apunta a minimizar la función DλRen la que R representa la velocidad para codificar la imagen, D la distorsión asociada yλun lagrangiano. Por lo tanto, existe la necesidad de un nuevo método de codificación y decodificación para mejorar la compresión de datos de imagen o vídeo.
[0013] El documento WO 2015/049491 A1 (SONY CORP [JP]; SONY EUROPE LTD [GB]), 9 de abril de 2015 (09/04/2015), divulga que después de una predicción intra/inter, un residuo se puede cuantificar en un dominio transformado o espacial (modo de derivación de transformación). En un tercer modo, el residuo puede decorrelacionarse mediante un proceso MICD. El modo se señala en el tren de bits. Para determinar las etapas de cuantificación, se realiza una optimización de la distorsión de velocidad. Se mencionan los parámetros QP. El documento WO 2007/079964 A1 (NARROSCHKE MATTHIAS [DE]; MUSMANN HANS-GEORG [DE]) 19 de julio de 2007 (19-07-2007), divulga la posibilidad de eludir la transformación del error de predicción señalado a nivel de bloque o de porción. En ambos modos, se encuentran cuantificadores optimizados para la distorsión de velocidad y se señala un QP. el documento de STANKOWSKI JAKUB ET AL: "Rate-distortion optimized quantization in HEVC: Performance limitations", 2015 PICTURE CODING SYMPOSIUM (PCS), IEEE, 31 de mayo de 2015 (31/05/2015), páginas 85-89, divulga información de fondo sobre la cuantificación optimizada de la distorsión de velocidad en el sistema HEVC.
[0014] 3. Presentación de la invención
[0015] La invención mejora el estado de la técnica. Se refiere para ello a un procedimiento para decodificar un flujo de datos codificados según la reivindicación 1.
[0016] Según la invención, es posible así definir un primer paso de cuantificación para los residuos de predicción a cuantificar/descuantificar en el dominio transformado y un segundo paso de cuantificación para los residuos de predicción a cuantificar/descuantificar en el dominio espacial, estando determinados el primer y el segundo paso de cuantificación por el mismo parámetro de cuantificación. Así, el primer y el segundo paso de cuantificación están vinculados y pueden utilizarse juntos.
[0017] Ventajosamente, según la invención, los pasos de cuantificación utilizados en los diferentes modos de codificación disponibles para un bloque actual son coherentes, en particular para el mecanismo de optimización de velocidad/distorsión aplicado al bloque actual, pero también los pasos de cuantificación son coherentes entre bloques, en particular para el mecanismo de optimización velocidad/distorsión aplicado a la imagen cuando ciertos bloques se codifican según el primer modo de codificación y otros bloques se codifican según el segundo modo de codificación. En efecto, si los pasos de cuantificación no están vinculados entre sí, uno de los dos pasos de cuantificación puede llegar a ser muy grande en comparación con el otro paso de cuantificación. Los bloques codificados según el modo de codificación que utiliza el paso de cuantificación muy grande quedarían entonces altamente comprimidos, a diferencia de los otros bloques codificados según el otro modo de codificación que utiliza el paso de cuantificación más pequeño, lo que daría como resultado una variabilidad espacial significativa de la calidad visual de la imagen y, por lo tanto, una menor calidad visual de toda la imagen.
[0018] Según la invención, el primer modo de codificación corresponde a una codificación del bloque en el dominio transformado. En otras palabras, según este primer modo de codificación, un residuo de predicción del bloque actual calculado en el dominio espacial, es decir, entre el bloque original y un bloque predicho, se transforma, por ejemplo mediante una transformación DCT, para proporcionar un bloque de coeficientes transformados. Este bloque de coeficientes transformados se cuantifica entonces utilizando el primer paso de cuantificación.
[0019] El segundo modo de codificación corresponde a una codificación del bloque en el dominio espacial. En otras palabras, según este segundo modo de codificación, el residuo de predicción del bloque actual calculado en el dominio espacial se cuantifica directamente, sin sufrir ninguna transformación.
[0020] La invención también se refiere a un procedimiento para codificar un flujo de datos codificado según la reivindicación 3.
[0021] Según la invención, el bloque actual puede ser codificado/decodificado mediante la predicción intra denominada convencional (primer modo de codificación), por ejemplo una predicción espacial según uno cualquiera de los modos de predicción definidos en el estándar HEVC, o mediante una nueva predicción intra (segundo modo de codificación) basada en el uso de píxeles del bloque actual que se han decodificado previamente.
[0022] Según esta nueva predicción intra, también denominada en adelante ILR (In-Loop Residual en inglés), se predice cada píxel, después se calcula un residuo para el píxel predicho y se cuantifica dicho residuo. El residuo cuantificado se descuantifica entonces, después se añade a la predicción de píxeles para reconstruir el valor del píxel y obtener su valor decodificado. Tal valor de píxel decodificado se puede utilizar entonces para predecir otros píxeles del bloque actual.
[0023] Ventajosamente, tal método de predicción intra permite predecir píxeles del bloque actual utilizando píxeles que están espacialmente más cerca que los píxeles de referencia utilizados en la denominada predicción intra convencional. De esta forma se mejora la predicción.
[0024] Según otra realización particular del procedimiento de decodificación o del procedimiento de codificación citado anteriormente, el segundo paso de cuantificación se determina en función del primer paso de cuantificación.
[0025] Según esta realización particular de la invención, el parámetro de cuantificación corresponde entonces al primer paso de cuantificación, y los dos pasos de cuantificación dependen uno de otro.
[0026] Como variante de esta realización particular, el segundo paso de cuantificación está determinado pora*δ1+ bo
[0028] ,conδ1
que corresponde al primer paso de cuantificación y siendo a, b, c, d, e parámetros predeterminados.
[0029] Según otra realización particular del procedimiento de decodificación o del procedimiento de codificación citados anteriormente, el primer paso de cuantificación se obtiene a partir de una tabla de pasos de cuantificación predeterminada para valores del parámetro de cuantificación.
[0030] Según otra realización particular del procedimiento de decodificación o del procedimiento de codificación citado anteriormente, el parámetro de cuantificación corresponde a un Lagrangianoλutilizado para optimizar una función Dλ*Ren la que R corresponde a la velocidad del flujo de datos y D corresponde a la distorsión asociada de la imagen decodificada.
[0031] Según otra realización particular del procedimiento de decodificación o del procedimiento de codificación citado anteriormente, el parámetro de cuantificación se codifica en el flujo de datos o se decodifica a partir del flujo de datos. Según otra realización particular, la decodificación del bloque actual según el segundo modo de codificación comprende además:
[0032] • la decodificación de otro residuo de predicción asociado con dicho bloque actual,
[0033] • la descuantificación de dicho otro residuo de predicción asociado con dicho bloque actual utilizando dicho primer paso de cuantificación,
[0034] • la reconstrucción de dicho bloque actual a partir de los píxeles reconstruidos del bloque actual y dicho otro residuo de predicción descuantificado.
[0035] De acuerdo con esta realización particular de la invención, cuando el bloque actual se codifica según el segundo modo de codificación, se codifica/decodifica un segundo residuo de predicción para el bloque actual a partir de la predicción obtenida durante la codificación del primer residuo de predicción píxel por píxel. Las características adicionales de esta realización particular corresponden a las etapas de decodificación del bloque codificado según el primer modo de codificación. Así, es posible mantener una codificación/decodificación similar para ambos modos de codificación, en particular a nivel del codificador/decodificador de entropía, mejorando así aún más el rendimiento de la compresión. La invención también se refiere a un dispositivo de descodificación de acuerdo con la reivindicación 11.
[0036] Según una realización particular de la invención, tal dispositivo decodificador está comprendido en un terminal. La invención se refiere también a un dispositivo de codificación de acuerdo con la reivindicación 12.
[0037] Según una realización particular de la invención, tal dispositivo codificador está comprendido en un terminal o servidor. El procedimiento de descodificación, respectivamente el procedimiento de codificación, según la invención se puede implementar de diversas maneras, en particular en forma cableada o bien en forma de software. Según una realización particular de la invención, el procedimiento de decodificación, respectivamente el procedimiento de codificación, se implementa mediante un programa informático. La invención también se refiere a un programa informático que comprende instrucciones para implementar el procedimiento de decodificación o el procedimiento de codificación según una cualquiera de las realizaciones particulares descritas anteriormente, cuando dicho programa es ejecutado por un procesador. Dicho programa puede usar cualquier lenguaje de programación. Puede descargarse de una red de comunicaciones y/o grabarse en un soporte legible por ordenador.
[0038] Este programa puede usar cualquier lenguaje de programación y estar en forma de código fuente, código objeto, o código intermedio entre el código fuente y el código objeto, tal como en forma parcialmente compilada o en cualquier otra forma deseable. La invención también se refiere a un medio de grabación o medio de informaciones legible por un ordenador, y que comprende instrucciones para un programa de ordenador como se mencionó anteriormente. Los soportes de grabación mencionados anteriormente pueden ser cualquier entidad o dispositivo capaz de almacenar el programa. Por ejemplo, el medio puede incluir un medio de almacenamiento tal como una memoria. Por otra parte, los soportes de grabación pueden corresponder a un soporte transmisible tal como una señal eléctrica u óptica, que puede transmitirse a través de un cable eléctrico u óptico, por radio o por otros medios. En particular, el programa según la invención puede descargarse de una red tipo Internet. Alternativamente, los soportes de grabación pueden corresponder a un circuito integrado en el que se incorpora el programa, estando adaptado el circuito para ejecutar o para ser usado en la ejecución del procedimiento en cuestión.
[0039] 4. Lista de figuras
[0040] Otras características y ventajas de la invención resultarán más claras a partir de la lectura de la siguiente descripción de un modo de realización particular, aportado meramente a modo de ejemplo ilustrativo y no restrictivo, y de los dibujos adjuntos, de entre los cuales:
[0041] • la figura 1 presenta etapas del procedimiento de codificación según una realización particular de la invención, • la figura 2 ilustra un ejemplo de la posición de bloques vecinos a un bloque actual para determinar un modo de predicción intra según una realización particular de la invención,
[0042] • la figura 3 ilustra un ejemplo de la posición de los píxeles de referencia utilizados para predecir píxeles de un bloque actual según una realización particular de la invención,
[0043] • la figura 4 presente etapas del procedimiento de decodificación según una realización particular de la invención,
[0044] • la figura 5 ilustra un ejemplo de una señal que comprende datos codificados representativos de al menos un bloque de una imagen según una realización particular de la invención,
[0045] • la figura 6 presenta la estructura simplificada de un dispositivo de codificación adaptado para implementar el procedimiento de codificación según una cualquiera de las realizaciones particulares de la invención, • la figura 7 presenta la estructura simplificada de un dispositivo de decodificación adaptado para implementar el procedimiento de decodificación según una cualquiera de las realizaciones particulares de la invención.
[0046] 5. Descripción de un modo de realización de la invención
[0047] 5.1 Principio general
[0048] El principio general de la invención es determinar un primer paso de cuantificación utilizado para cuantificar coeficientes transformados de un residuo de predicción y un segundo paso de cuantificación utilizado para cuantificar directamente los valores de un residuo de predicción en el dominio espacial (es decir, sin transformación), de forma conjunta. Para ello, el primer y el segundo paso de cuantificación dependen del mismo parámetro de cuantificación. Según diversas realizaciones particulares de la invención, el parámetro de cuantificación puede corresponder a uno u otro del primero o del segundo paso de cuantificación, o a un parámetro de cuantificación determinado por el codificador o por el usuario, o también a un lagrangiano utilizado durante la optimización de velocidad/distorsión en el codificador.
[0049] El parámetro de cuantificación también se puede codificar en el flujo de datos y transmitir al decodificador.
[0050] Cuando el parámetro de cuantificación corresponde al primer paso de cuantificación, el segundo paso de cuantificación puede determinarse de acuerdo con una función lineal o polinomial del primer paso de cuantificación, o incluso una función más general.
[0051] La invención permite así mejorar los rendimientos de la compresión cuando se utilizan diferentes modos de codificación que realizan respectivamente la codificación de un residuo de predicción con y sin transformación dentro del mismo sistema de codificación/decodificación de imagen o de secuencia de imágenes.
[0052] 5. 2 Ejemplos de implementación
[0053] La figura 1 presenta etapas del procedimiento de codificación según una realización particular de la invención. Por ejemplo, se codifica una secuencia de imágenes I<1>, I<2>,..., I<Nb>en forma de un flujo de datos codificados STR según una realización particular de la invención. Por ejemplo, tal procedimiento de codificación se implementa mediante un dispositivo de codificación tal como se describe a continuación en relación con la figura 6.
[0054] Una secuencia de imágenes I<1>, I<2>,..., I<Nb>, siendo Nb el número de imágenes de la secuencia a codificar, se proporciona como entrada del procedimiento de codificación. El procedimiento de codificación genera en salida un flujo de datos codificados STR representativos de la secuencia de imágenes proporcionada como entrada.
[0055] De manera conocida, la codificación de la secuencia de imágenes I<1>, I<2>, ..., I<Nb>se realiza imagen a imagen según un orden de codificación previamente establecido y conocido por el codificador. Por ejemplo, las imágenes pueden codificarse en el orden temporal I<1>, I<2>, ..., I<Nb>o según otro orden, por ejemplo I<1>,I<3>, I<2>, ..., I<Nb>.
[0056] Durante una etapa E0, una imagen I<j>a codificar a partir de la secuencia de imágenes I<1>,I<2>, ..., I<Nb>se divide en bloques, por ejemplo en bloques de tamaño 32x32 o 64x64 píxeles, o más. Tal bloque se puede subdividir en sub-bloques cuadrados o rectangulares, por ejemplo de tamaño 16x16, 8x8, 4x4, 16x8, 8x16, etc.
[0057] Durante una etapa opcional E10, según una realización particular de la invención, se codifica un parámetro de cuantificación QP en el flujo de datos STR, a nivel de los datos codificados para la imagen I<j>o bien a nivel de los datos codificados para la secuencia de imágenes.
[0058] Después, durante una etapa E1, se selecciona un primer bloque o sub-bloqueXba codificar de la imagen I<j>según una dirección de recorrido predeterminada de la imagen I<j>. Por ejemplo, puede tratarse del primer bloque en el orden lexicográfico de recorrido de la imagen.
[0059] Durante una etapa E2, el codificador elegirá el modo de codificación para codificar el bloque actualXb.Según la realización particular aquí descrita, el codificador selecciona el modo de codificación para codificar el bloque actualXbentre un primer modo de codificación M1 y un segundo modo de codificación M2. Se pueden utilizar modos de codificación adicionales (no descritos aquí).
[0060] Según la realización particular aquí descrita, el primer modo de codificación M1 corresponde a la codificación del bloque actual mediante predicción intra convencional, por ejemplo tal como se define según el estándar HEVC, y el segundo modo de codificación M2 corresponde a la codificación mediante la predicción In Loop Residual (ILR). El principio de la invención se puede ampliar a otros tipos de modos de codificación, ya sea para el primer modo de codificación M1 o para el segundo modo de codificación M2. Por ejemplo, el primer modo de codificación puede corresponder a cualquier tipo de modo de codificación que utilice una transformación del residuo de predicción antes de cuantificar los coeficientes resultantes de la transformación (codificación por predicción inter imágenes, codificación por predicción espacial con template matching, etc.). El segundo modo de codificación puede corresponder a cualquier tipo de modo de codificación que utilice una cuantificación de los valores del residuo de predicción en el dominio espacial, es decir sin realizar ninguna transformación, por ejemplo DCT, del residuo de predicción. Durante la etapa E2, el codificador puede llevar a cabo una optimización de flujo/distorsión para determinar el mejor modo de codificación para codificar el bloque actual. Durante esta optimización de flujo/distorsión, se pueden probar modos de codificación adicionales distintos del primer y segundo modos de codificación, por ejemplo un modo de codificación en modo inter. Durante esta optimización flujo/distorsión, el codificador simula la codificación del bloque actualXbsegún los diferentes modos de codificación disponibles a fin de determinar el flujo y la distorsión asociados con cada modo de codificación y selecciona el modo de codificación que ofrece el mejor compromiso flujo/distorsión, por ejemplo según la función D+λR, en la que R representa el flujo necesario para codificar el bloque actual según el modo de codificación evaluado, D la distorsión medida entre el bloque decodificado y el bloque actual original, yλun multiplicador lagrangiano, por ejemplo, ingresado por el usuario o definido en el codificador.
[0061] Durante una etapa E20, la información que indica el modo de codificación seleccionado para el bloque actual se codifica en el flujo de datos STR.
[0062] Si el bloque actualXbse codifica según el primer modo de codificación M1, el procedimiento pasa a la etapa E21 de codificar el bloque según M1. Si el bloque actualXbse codifica según el segundo modo de codificación M2, el procedimiento pasa a la etapa E22 de codificar el bloque según M2.
[0063] Se describe a continuación la etapa E21 de codificar el bloque según el primer modo de codificación M1, según una realización particular de la invención. Según el modo particular aquí descrito, el primer modo de codificación corresponde a una predicción intra convencional, tal como se define en el estándar HEVC.
[0064] Durante una etapa E210, se determina una paso de cuantificaciónδ1
. Por ejemplo, el paso de cuantificaciónδ1
puede ser fijado por el usuario o calculado utilizando un parámetro de cuantificación que establece un compromiso entre compresión y calidad e ingresado por el usuario o definido por el codificador. Así, dicho parámetro de cuantificación puede ser el parámetroλ, utilizado en la función de coste caudal-distorsión D+λ.R en la que D representa la distorsión introducida por la codificación y R el caudal utilizado para codificar. Esta función sirve para tomar decisiones de codificación, normalmente, se busca la forma de codificar la imagen que minimice esta función.
[0065] Alternativamente, el parámetro de cuantificación puede ser el QP, que corresponde al parámetro de cuantificación utilizado convencionalmente en los estándares AVC o HEVC. Así, en el estándar HEVC, el paso de cuantificaciónδ1
está determinado por la ecuaciónδ1
=levelScale[ QP%6 ] << (QP/6)) en la que levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } para k = 0..5. Durante una etapa E211, se determina una predicción del bloque actual usando un modo de predicción intra convencional. Según esta predicción intra convencional, cada píxel predicho se calcula únicamente a partir de los píxeles decodificados procedentes de los bloques vecinos (píxeles de referencia) ubicados encima del bloque actual, y a la izquierda del bloque actual. La manera en que se predicen los píxeles a partir de los píxeles de referencia depende de un modo de predicción que se transmite al decodificador, y que el codificador elige de un conjunto predeterminado de modos conocidos por el codificador y el decodificador.
[0066] Así, en HEVC, existen 35 modos de predicción posibles: 33 modos que interpolan los píxeles de referencia en 33 direcciones angulares diferentes, y otros 2 modos: el modo DC en el que cada píxel del bloque predicho se produce a partir del promedio de los píxeles de referencia, y el modo PLANAR, que realiza una interpolación plana y no direccional. Este enfoque denominado “predicción intra convencional” es bien conocido y también se utiliza en el estándar ITU-T H.264 (en el que sólo existen 9 modos diferentes), así como en el software experimental JEM disponible en la dirección de Internet (https://jvet.hhi.fraunhofer.de/), en el que existen 67 modos de predicción diferentes. En todos los casos, la predicción intra convencional respeta los dos aspectos citados anteriormente (predicción de píxeles a partir de bloques vecinos y transmisión de un modo de predicción óptima al decodificador).
[0067] Durante la etapa E211, el codificador elige por lo tanto uno de los modos de predicción disponibles en la lista predeterminada de modos de predicción. Una forma de elegir consiste en, por ejemplo, evaluar todos los modos de predicción y mantener el modo de predicción que minimice una función de coste tal como, convencionalmente, el coste flujo-distorsión.
[0068] Durante una etapa E212, el modo de predicción elegido para el bloque actual se codifica a partir de los bloques vecinos del bloque actual. La figura 2 ilustra un ejemplo de la posición de los bloques vecinos A<b>y B<b>del bloque actual X<b>para codificar el modo de predicción del bloque actual X<b>.
[0069] Durante la etapa E212, el modo de predicción intra elegido para el bloque actual se codifica usando los modos de predicción intra asociados con bloques vecinos.
[0070] Según una variante del modo de realización particular de la invención aquí descrita, el modo de predicción intra asociado a un bloque es:
[0071] • el modo de predicción intra que se usó para predecir el bloque si el bloque estaba codificado mediante un modo de codificación de predicción intra convencional,
[0072] • el modo de predicción intra que estaba asociado con el bloque si el bloque estaba codificado mediante un modo de codificación distinto de una predicción intra convencional. Un ejemplo de tal asociación se describe a continuación con referencia a la etapa E229.
[0073] Así, se puede utilizar el enfoque descrito en el estándar HEVC para codificar el modo de predicción del bloque actual. En el ejemplo de la figura 2, tal enfoque consiste en identificar el modo de predicción intra m<A>asociado con el bloque A<b>ubicado encima del bloque actual, y el modo de predicción intra m<B>asociado con el bloque B<b>ubicado justo a la izquierda del bloque actual. En función del valor de m<A>y de m<B>, se crean una lista denominada MPM (para Most Probable Mode), que contiene 3 modos de predicción intra, y una lista no MPM, que contiene los otros 32 modos de predicción.
[0074] Según la variante de realización del modo particular aquí descrito, el mecanismo de creación de la lista MPM especificada según el estándar HEVC se adapta a fin de tener en cuenta la asociación de un modo de predicción intra con un bloque durante su codificación, cuando este bloque no está codificado según el modo de codificación intra convencional (etapa E229 descrita más adelante). Según esta variante, un bloque vecino al bloque actual siempre tiene asociado un modo de predicción intra, ya sea que este bloque se haya codificado según un modo de codificación intra o según otro modo de codificación (ILR, inter, etc.).
[0075] El resto del mecanismo para crear la lista MPM sigue siendo similar al especificado según el estándar HEVC. Si m<A>y m<B>son ambos iguales al mismo modo de predicción intra y que este modo de predicción intra es el modo de predicción DC o PLANAR, la lista MPM incluye los siguientes modos de predicción: MPM[0]=PLANAR, MPM[1]=DC, MPM[2]=A(26) que corresponde al modo de predicción angular en el índice 26 de la tabla de modos de predicción intra HEVC.
[0076] Si m<A>y m<B>son ambos iguales al mismo modo de predicción angular m(n), la lista MPM comprende los siguientes modos de predicción: MPM[0]=m(n), MPM[1]=m(2+(n+29)mod32), MPM[2]=m(2+(n-1)mod32).
[0077] Si m<A>y m<B>son diferentes, la lista MPM comprende los siguientes modos de predicción:
[0078] MPM[0]= m<B>, MPM[1]= m<A>, MPM[2]=Mlast, en los que Mlast se define por:
[0079] • si m<B>no es igual al modo PLANAR y m<A>no es igual al modo PLANAR, entonces Mlast es igual al modo PLANAR,
[0080] • si no, si m<B>no es igual al modo DC y m<A>no es igual al modo DC, entonces Mlast es igual al modo DC, • en caso contrario, Mlast es igual al modo angular A(26).
[0081] La lista no MPM comprende todos los demás modos de predicción intra no comprendidos en la lista MPM.
[0082] Según otra variante de realización del modo particular aquí descrito, de acuerdo con el mecanismo de creación de la lista MPM especificado según el estándar HEVC, si uno de los bloques vecinos A<b>o B<b>no está codificado según un modo de predicción intra, se le asigna por defecto el modo de predicción DC. El resto del mecanismo para crear la lista MPM sigue siendo similar al especificado según el estándar HEVC y descrito anteriormente.
[0083] Según el estándar HEVC, a fin de codificar el modo de predicción intra del bloque actual, se transmiten elementos de sintaxis:
[0084] • un indicador binario que indica si el modo de predicción a codificar para el bloque actual está en la lista MPM o no,
[0085] • si el modo de predicción del bloque actual pertenece a la lista MPM, se codifica un índice en la lista MPM correspondiente al modo de predicción del bloque actual,
[0086] • si el modo de predicción del bloque actual no pertenece a la lista MPM, se codifica un índice en la lista no MPM correspondiente al modo de predicción del bloque actual,
[0087] Durante una etapa E213, se construye el residuo de predicción R para el bloque actual.
[0088] Durante la etapa E213, de manera convencional, se construye un bloque P predicho en función del modo de predicción elegido en la etapa E211. Después, el residuo de predicción R se obtiene calculando la diferencia para cada píxel entre el bloque predicho P y el bloque actual original.
[0089] Durante una etapa E214, el residuo de predicción R se transforma en R<T>.
[0090] Durante la etapa E214, se aplica una transformada de frecuencia al bloque de residuos R de manera a producir el bloque R<T>que comprende coeficientes transformados. La transformada podría ser, por ejemplo, una transformada de tipo DCT. Es posible elegir la transformada a utilizar de un conjunto predeterminado de transformadas E<T>e informar la transformada utilizada al decodificador.
[0091] Durante una etapa E215, el bloque de residuos transformado R<T>se cuantifica usando, por ejemplo, una cuantificación escalar del paso de cuantificaciónδ1
. Esto produce el bloque de residuo de predicción transformado cuantificado R<TQ>. Durante una etapa E216, los coeficientes del bloque cuantificado R<TQ>son codificados por un codificador entrópico. Por ejemplo, se puede utilizar la codificación entrópica especificada en el estándar HEVC. Según la variante de realización descrita aquí, durante una etapa E217, el modo de predicción determinado en la etapa E211 está asociado con el bloque actual.
[0092] De manera conocida, el bloque actual se decodifica descuantificando los coeficientes del bloque cuantificado R<TQ>, aplicando después la transformada inversa a los coeficientes descuantificados para obtener el residuo de predicción decodificado. La predicción se añade entonces al residuo de predicción decodificado a fin de reconstruir el bloque actual y obtener su versión decodificada. La versión decodificada del bloque actual puede usarse ulteriormente para predecir espacialmente otros bloques vecinos de la imagen o bien para predecir bloques de otras imágenes mediante predicción inter-imágenes.
[0093] Se describe a continuación la etapa E22 de codificar el bloque según el segundo modo de codificación M2, según una realización particular de la invención. Según el modo particular aquí descrito, el segundo modo de codificación corresponde a la codificación mediante predicción ILR.
[0094] Durante una etapa E220, se determina un predictor local PL para el bloque actual. Según el modo de codificación aquí descrito, los píxeles del bloque actual se predicen mediante píxeles reconstruidos previamente de un bloque vecino al bloque actual o del propio bloque actual.
[0095] Preferiblemente, para predecir, se eligen píxeles que estén lo más cerca posible del píxel que se va a predecir. Por este motivo, se habla de un predictor local. El predictor local PL también se puede comparar con un modo de predicción del bloque actual asociado con el segundo modo de codificación M2. Según esta interpretación, en la realización particular aquí descrita, el primer modo de codificación utiliza un primer grupo de modos de predicción intra, por ejemplo los modos de predicción intra definidos por el estándar HEVC, y el segundo modo de codificación, aquí el modo ILR, utiliza un segundo grupo de modos de predicción distinto del primer grupo de modos de predicción intra. Según una realización alternativa descrita a continuación, se puede determinar una correspondencia entre estos dos grupos de modos de predicción.
[0096] El predictor local PL puede ser único o puede seleccionarse de un conjunto de predictores locales predeterminados (segundo grupo de modos de predicción).
[0097] Según una variante de realización, se definen 4 predictores locales. Así, si se denomina X el píxel actual que se va a predecir a partir del bloque actual, A el píxel ubicado inmediatamente a la izquierda de X, B el píxel ubicado inmediatamente a la izquierda y encima de X, C el píxel ubicado inmediatamente encima de X, tal como se ilustra en la figura 3 que muestra un bloque actual X<b>. Se pueden definir 4 predictores locales PL1, PL2, PL3, PL4 de la siguiente manera:
[0099]
[0100] en la que min(A,B) corresponde a la función que devuelve el valor más pequeño entre el valor de A y el valor de B, y max(A,B) corresponde a la función que devuelve el valor más grande entre el valor de A y el valor de B.
[0101] Durante la etapa E220, se determina qué predictor local PL usar para el bloque actual. En otras palabras, se utilizará el mismo predictor local para todos los píxeles del bloque actual, es decir, la misma función de predicción. Para ello, son posibles varias variantes de realización.
[0102] Se puede simular la codificación del bloque actual con cada uno de los predictores (de manera similar a una optimización para elegir un modo de codificación para el bloque actual), y se selecciona el predictor local que optimiza una función de coste (por ejemplo, que minimiza la función D λ.R, en la que R es el flujo utilizado para codificar el bloque, D es la distorsión del bloque decodificado con respecto al bloque original, y λ es un parámetro establecido por el usuario).
[0103] O bien, para limitar la complejidad de la selección de un predictor local para el bloque actual, se analiza una orientación de la textura de los píxeles previamente codificados. Por ejemplo, los píxeles previamente codificados en el bloque que se encuentran encima o a la izquierda del bloque actual se analizan utilizando un operador de tipo Sobel. Si se determina que:
[0104] • la orientación es horizontal, se selecciona el predictor local PL2,
[0105] • la orientación es vertical, se selecciona el predictor local PL3,
[0106] • la orientación es diagonal, se selecciona el predictor local PL4,
[0107] • si no surge ninguna orientación, se selecciona el predictor local PL1.
[0108] Se codifica un elemento de sintaxis en el flujo de datos STR para indicar al decodificador qué predictor local se usó para predecir el bloque actual.
[0109] Durante una etapa E221, se determina un paso de cuantificaciónδ2
. Según la realización particular descrita aquí, el paso de cuantificaciónδ2
depende de un mismo parámetro de cuantificación que el paso de cuantificaciónδ1
que se determinaría en la etapa E210 si el bloque actual fue codificada según el primer modo de codificación.
[0110] Según una variante, el paso de cuantificaciónδ2
puede determinarse en función del paso de cuantificaciónδ1
. Por ejemplo, se puede utilizar una función lineal o polinómica, tal comoδ2
= a<1>*δ1
. b<1>, en el que a<1>et b<1>son números enteros o reales predeterminados, o tambiénδ2
= c<1>*δ1<2>+ d<1>*δ1
+ e<1>o c<1>, d<1>y e<1>son números enteros o números reales predeterminados. Por ejemplo, a<1>=2, b<1>=10, c<1>=0.1, d<1>=2 y e<1>=10. Otros valores son posibles.
[0111] Según otra variante, el paso de cuantificaciónδ2
puede determinarse a partir del parámetro λ que establece el compromiso entre compresión y calidad. Este parámetro lagrangiano λ puede ser ingresado por el usuario o definido por el codificador, de manera similar aδ1
o determinado a partir del parámetro de cuantificación QP mencionado anteriormente.
[0112] Según otra variante, el paso de cuantificaciónδ2
puede ser fijada directamente por el usuario, siendo entonces el paso de cuantificaciónδ1
que es función deδ2
.
[0113] Durante una etapa E222, se calcula un residuo de predicción R1 para el bloque actual. Para ello, una vez elegido el predictor local, para cada píxel actual del bloque actual:
[0114] • el píxel actual X del bloque actual es predicho por el predictor local PL seleccionado, utilizando píxeles externos del bloque y ya reconstruidos (y por lo tanto disponibles con su valor decodificado), o píxeles previamente reconstruidos en el bloque actual, o bien de ambos, a fin de obtener un valor predicho PRED. En todos los casos, el predictor PL utiliza píxeles previamente reconstruidos. En la figura 3, se puede observar que los píxeles del bloque actual ubicados en la primera fila y/o la primera columna del bloque actual utilizarán como píxeles de referencia (para construir el valor predicho PRED) píxeles externos al bloque y ya reconstruidos (píxeles en gris en la figura 3) y eventualmente píxeles ya reconstruidos del bloque actual. Para los demás píxeles del bloque actual, los píxeles de referencia utilizados para construir el valor predicho PRED se encuentran dentro del bloque actual.
[0115] • la diferencia DIFF entre PRED y X se cuantifica en un valor Q(X), mediante un cuantificador escalar del paso de cuantificaciónδ2
, mediante Q(X) = ScalarQuant(DIFF) = ScalarQuant(δ2
, X-PRED), siendo el cuantificador escalar por ejemplo, un cuantificador escalar vecino más cercano tal que:
[0117]
[0119] Q(X) es el residuo cuantificado asociado con X. Se calcula en el dominio espacial, es decir, se calcula directamente a partir de la diferencia entre el valor PRED predicho del píxel X y el valor original de X. Tal residuo cuantificado Q(X) para el píxel X se almacena en un bloque de residuo de predicción cuantificado R1<Q>, que será codificado más tarde.
[0120] • el valor predicho decodificado P1(X) de X se calcula sumando al valor predicho PRED el valor descuantificado del residuo cuantificado Q(X). El valor predicho decodificado P1(X) de X se obtiene así mediante P1(X) = PRED ScalarDequant(δ2
, Q(X)). Por ejemplo, la función de cuantificación escalar inversa más cercana viene dada por: ScalarDequant(Δ,x) = Δ ×x.
[0121] El valor predicho decodificado P1(X) permite así predecir posibles píxeles que quedan por procesar en el bloque actual. Por otro lado, el bloque P1 que comprende los valores decodificados/reconstruidos de los píxeles del bloque actual constituye el predictor ILR del bloque actual (a diferencia del predictor intra convencional).
[0122] Las subetapas descritas anteriormente se llevan a cabo para todos los píxeles del bloque actual, en un orden de recorrido que garantiza que los píxeles utilizados para la predicción elegida de PL1,..., PL4 estén disponibles.
[0123] Según una variante de realización, el orden de recorrido del bloque actual es el orden lexicográfico, es decir de izquierda a derecha y de arriba a abajo.
[0124] Según otra variante de realización, se pueden utilizar varias órdenes de recorrido del bloque actual, por ejemplo:
[0125] • el orden lexicográfico, o
[0126] • recorriendo la primera columna de arriba a abajo, y después la columna justo a su derecha, etc. o bien, • recorriendo las diagonales una tras otra.
[0127] Según esta otra variante, es posible simular el coste de codificación asociado a cada una de las órdenes de recorrido y elegir el mejor orden de recorrido del bloque actual en la dirección de flujo/distorsión, después codificar una información para el bloque actual representativa del orden de recorrido elegido.
[0128] Al final de la etapa E222, se determinó el bloque de residuo cuantificado R1<Q>. Este bloque de residuo cuantificado R1<Q>debe codificarse para transmitirse al decodificador. También se determinó el predictor P1 del bloque actual.
[0129] Durante una etapa E223, el bloque de residuo cuantificado R1<Q>se codifica a fin de transmitirlo al decodificador. Es posible utilizar cualquier enfoque conocido, tal como el método descrito en HEVC, para codificar los coeficientes cuantificados de un residuo de predicción convencional. Por ejemplo, según una variante realización, los valores del bloque de residuo cuantificado R1<Q>se codifican usando un codificador entrópico en el flujo de datos STR.
[0130] Según una realización particular de la invención, es posible determinar y codificar un residuo de predicción adicional R2 a partir del predictor ILR obtenido para el bloque actual. Sin embargo, la codificación de un residuo de predicción adicional R2 es opcional. En efecto, es posible codificar simplemente el bloque actual mediante su versión predicha P1 y el residuo cuantificado R1<Q>. Para codificar un residuo de predicción adicional R2 para el bloque actual, se implementan las siguientes etapas.
[0131] Durante una etapa E224, se calcula la diferencia R2 entre el predictor P1 y el bloque actual original X<b>a fin de constituir un residuo adicional R2: R2= X<b>-P1. Las siguientes etapas corresponden a las etapas convencionales de codificación de este residuo R2.
[0132] Durante una etapa E225, el residuo R2 se transforma utilizando una transformada de frecuencia de manera a producir el bloque de coeficientes R2<T>.
[0133] La transformada puede ser, por ejemplo, una transformada de tipo DCT. Es posible elegir la transformada a utilizar de un conjunto predeterminado de transformadas E<T2>e informar la transformada utilizada al decodificador. En este caso, el conjunto E<T2>puede ser diferente del conjunto E<T>, a fin de adaptarse a las estadísticas particulares del residuo R2. Durante una etapa E226, el bloque de coeficientes R2<T>se cuantifica, por ejemplo usando una cuantificación escalar del paso de cuantificaciónδ. Esto produce el bloque R2<TQ>.
[0134] El usuario puede configurar el paso de cuantificaciónδ. También se puede calcular utilizando otro parámetroλque fija el compromiso entre compresión y calidad y entrada por el usuario o el codificador. Por ejemplo, el paso de cuantificaciónδpuede corresponder al paso de cuantificaciónδ1
o determinarse de manera similar a éste.
[0135] Durante una etapa E227, los coeficientes del bloque cuantificado R2<TQ>se transmiten entonces de forma codificada. Por ejemplo, se puede utilizar la codificación especificada en el estándar HEVC.
[0136] De manera conocida, el bloque actual se decodifica descuantificando los coeficientes del bloque cuantificado R2<TQ>, aplicando después la transformada inversa a los coeficientes descuantificados para obtener el residuo de predicción decodificado. La predicción P1 se añade entonces al residuo de predicción decodificado a fin de reconstruir el bloque actual y obtener su versión decodificada X<rec>. La versión decodificada X<rec>del bloque actual puede usarse ulteriormente para predecir espacialmente otros bloques vecinos de la imagen o bien para predecir bloques de otras imágenes mediante predicción inter-imágenes.
[0137] De acuerdo con una realización particular de la invención, se determina un modo de predicción intra convencional y se asocia con el bloque actual. Para ello, durante una etapa E228, se determina un modo de predicción intra para el bloque actual en la lista de modos de predicción intra disponibles en el modo de codificación intra convencional. Son posibles varias variantes de realización.
[0138] Según una variante, la lista de modos de predicción MPM se crea para el bloque actual según el mecanismo descrito anteriormente para codificar según el primer modo de codificación M1. Según esta variante, el modo de predicción se determina como el primer modo en la lista MPM. Alternativamente, el modo de predicción está predeterminado, por ejemplo, puede tratarse de un modo de predicción determinado por defecto, o transmitirse en el flujo de datos. Por ejemplo, el modo de predicción predeterminado es el modo PLANAR del estándar HEVC.
[0139] Según otra variante, el modo de predicción se determina como el modo de predicción intra que mejor se aproxima al bloque decodificado actual X<rec>. Según esta variante, todos los modos de predicción se evalúan midiendo una distorsión entre el bloque decodificado actual X<rec>y el bloque predicho obtenido por el modo de predicción evaluado. Se selecciona el modo de predicción intra que proporciona la distorsión más pequeña.
[0140] Según otra variante, el modo de predicción se determina como el modo de predicción intra que mejor se aproxima al bloque actual predicho P1 obtenido por la predicción ILR. Según esta variante, todos los modos de predicción se evalúan midiendo una distorsión entre el bloque predicho actual P1 y el bloque predicho obtenido por el modo de predicción evaluado. Se selecciona el modo de predicción intra que proporciona la distorsión más pequeña.
[0141] Según otra variante, cuando, para un bloque codificado en ILR, existen varios predictores locales posibles, el modo de predicción intra puede depender del predictor local elegido para predecir el bloque actual. Por ejemplo, una tabla de asociación indica qué modo de predicción intra debe asociarse con el bloque actual en función del predictor local elegido.
[0142] Durante una etapa E229, el modo de predicción intra determinado se asocia con el bloque actual. Se trata aquí de asociar un modo de predicción intra pero no de transmitirlo al descodificador. El método que determina el modo intra que debe asociarse al bloque actual es reproducible en el decodificador y no requiere la transmisión de ninguna información.
[0143] Se han descrito anteriormente varias variantes de realizaciones, pero, por supuesto, el codificador y el decodificador deben implementar la misma variante.
[0144] De acuerdo con la realización particular descrita aquí, el modo de predicción intra asociado con el bloque actual se puede utilizar entonces para:
[0145] • predecir el modo de predicción intra de un bloque siguiente que se codificaría en el modo intra convencional, o
[0146] • determinar, en su caso, el modo de predicción intra que se asociará con un bloque siguiente que se codificaría según otro modo de codificación distinto del modo de predicción intra convencional. Este otro modo de codificación podría ser un modo de codificación ILR, u otro (inter, etc.).
[0147] Durante una etapa E23, se comprueba si el bloque actual es el último bloque de la imagen a procesar por el método de codificación, teniendo en cuenta el orden de recorrido definido previamente. En caso afirmativo, el procedimiento pasa a la codificación (etapa E25) de la siguiente imagen del vídeo, si corresponde. De lo contrario, durante una etapa E24, el siguiente bloque de la imagen a procesar se selecciona de acuerdo con el recorrido de la imagen definida previamente y el procedimiento de codificación pasa a la etapa E2, en la que el bloque seleccionado se convierte en el bloque actual a tratar.
[0148] La figura 4 presenta las etapas del procedimiento de decodificar un flujo STR de datos codificados representativos de una secuencia de imágenes I<1>, I<2>, ..., I<Nb>a decodificar según una realización particular de la invención.
[0149] Por ejemplo, el flujo de datos STR se generó mediante el procedimiento de codificación que se muestra en relación con la figura 1. El flujo de datos STR se proporciona como entrada a un dispositivo de decodificación DEC, como se describe en relación con la figura 7.
[0150] El procedimiento de decodificación decodifica el flujo cuadro por cuadro y cada cuadro se decodifica bloque por bloque. Durante una etapa E40, una imagen I<j>a descodificar se subdivide en bloques. Cada bloque se someterá a una operación de decodificación que consta de una serie de etapas que se detallan a continuación. Los bloques pueden ser del mismo tamaño o de diferentes tamaños.
[0151] Durante una etapa opcional E401, según una realización particular de la invención, se lee un parámetro de cuantificación QP del flujo de datos STR.
[0152] Durante una etapa E41, se selecciona un primer bloque o sub-bloqueXba decodificar a partir de la imagen I<j>como bloque actual según una dirección de recorrido de la imagen I<j>que está predeterminada. Por ejemplo, puede tratarse del primer bloque en el orden lexicográfico de recorrido de la imagen.
[0153] Durante una etapa E42, se lee una información que indica un modo de codificación para el bloque actual del flujo de datos STR. Según la realización particular aquí descrita, esta información indica si el bloque actual está codificado según un primer modo de codificación M1 o según un segundo modo de codificación M2. Según la realización particular aquí descrita, el primer modo de codificación M1 corresponde a la codificación del bloque actual mediante predicción intra convencional, por ejemplo tal como se define según el estándar HEVC, y el segundo modo de codificación M2 corresponde a la codificación mediante la predicción In Loop Residual (ILR).
[0154] En otras realizaciones particulares, la información leída del flujo STR también puede indicar el uso de otros modos de codificación para codificar el bloque actual (no descritos aquí).
[0155] A continuación, se describe la etapa E43 de decodificar el bloque actual cuando el bloque actual está codificado según el primer modo de codificación M1.
[0156] Durante una etapa E430, se determina una paso de cuantificaciónδ1
. Por ejemplo, el paso de cuantificaciónδ1
se determina a partir del parámetro de cuantificación QP leído durante la etapa E401 o de una manera similar a lo que se hizo con el codificador. Por ejemplo, el paso de cuantificaciónδ1
se puede calcular usando el parámetro de cuantificación QP leído durante la etapa E401. Por ejemplo, el parámetro de cuantificación QP puede ser el parámetro de cuantificación utilizado convencionalmente en los estándares AVC o HEVC. Así, en el estándar HEVC, el paso de cuantificaciónδ1
está determinado por la ecuaciónδ1
=levelScale[ QP%6 ] << (QP/6)) en la que levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } para k = 0..5.
[0157] Durante una etapa E431, el modo de predicción usado para codificar el bloque actual se decodifica a partir de bloques vecinos. Para ello, al igual que se hizo con el codificador, se decodifica el modo de predicción intra elegido para el bloque actual, utilizando los modos de predicción intra asociados a bloques vecinos del bloque actual.
[0158] Según una variante del modo de realización particular de la invención aquí descrita, el modo de predicción intra asociado a un bloque es:
[0159] • el modo de predicción intra que se usó para predecir el bloque si el bloque estaba codificado mediante un modo de codificación de predicción intra convencional
[0160] • el modo de predicción intra que estaba asociado con el bloque si el bloque estaba codificado mediante un modo de codificación distinto de una predicción intra convencional. Un ejemplo de tal asociación se describe a continuación con referencia a los pasos E449 y E450.
[0161] La construcción de las dos listas MPM y no MPM es estrictamente similar a lo que se hizo durante la codificación. Según el estándar HEVC, se decodifican elementos de sintaxis del siguiente tipo:
[0162] • un indicador binario que indica si el modo de predicción a codificar para el bloque actual está en la lista MPM o no,
[0163] • si el modo de predicción del bloque actual pertenece a la lista MPM, se codifica un índice en la lista MPM correspondiente al modo de predicción del bloque actual,
[0164] • si el modo de predicción del bloque actual no pertenece a la lista MPM, se codifica un índice en la lista no MPM correspondiente al modo de predicción del bloque actual,
[0165] Por lo tanto, el indicador binario y el índice del modo de predicción se leen para el bloque actual del flujo de datos STR, para decodificar el modo de predicción intra del bloque actual.
[0166] Durante una etapa E432, el decodificador construye un bloque predicho P para el bloque actual a partir del modo de predicción decodificado.
[0167] Durante una etapa E433, el decodificador decodifica los coeficientes del bloque cuantificado R<TQ>del flujo de datos STR, por ejemplo usando la decodificación especificada en el estándar HEVC.
[0168] Durante una etapa E434, el bloque R<TQ>decodificado se descuantifica, por ejemplo usando una descuantización escalar del paso de cuantificaciónδ1
. Esto produce el bloque de coeficientes descuantificados R<TQD>.
[0169] Durante una etapa E435, se aplica una transformada de frecuencia inversa al bloque de coeficientes descuantificados R<TQD>para producir el bloque de residuo de predicción decodificado R<TQDI>. La transformada podría ser, por ejemplo, una transformada de tipo DCT inversa. Es posible elegir qué transformada utilizar de un conjunto predeterminado de transformaciones E<TI>decodificando un indicador a partir del flujo de datos STR.
[0170] Durante una etapa E436, el bloque actual se reconstruye a partir del bloque predicho P obtenido en la etapa E432 y el bloque de residuos decodificado R<TQDI>obtenido en la etapa E435, a fin de producir el bloque actual decodificado X<rec>, por X<rec>= P R<TQDI>.
[0171] De acuerdo con la realización aquí descrita, durante una etapa E437, el modo de predicción intra decodificado en la etapa E431 se asocia con el bloque actual.
[0172] A continuación, se describe la etapa E44 de decodificar el bloque actual cuando el bloque actual está codificado según el segundo modo de codificación M2.
[0173] Durante una etapa E440, se determina el predictor local PL usado para predecir los píxeles del bloque actual. En el caso de que sólo esté disponible un predictor, el predictor local se define, por ejemplo, de forma predeterminada a nivel del decodificador y no es necesario leer ningún elemento de sintaxis en el flujo STR para determinarlo.
[0174] En el caso en el que estén disponibles varios predictores locales, por ejemplo los predictores PL1-PL4 descritos anteriormente, se decodifica un elemento de sintaxis del flujo de datos STR para identificar qué predictor local se usó para predecir el bloque actual. Por tanto, el predictor local se determina a partir de este elemento de sintaxis decodificado.
[0175] Durante una etapa E441, se determina el paso de cuantificaciónδ2
, de manera similar a lo que se hizo con el codificador.
[0176] Durante una etapa E442, el residuo cuantificado R1<Q>se decodifica del flujo de datos STR. Es posible utilizar cualquier enfoque conocido, tal como el método descrito en HEVC, para decodificar los coeficientes cuantificados del residuo de predicción convencional.
[0177] Durante una etapa E443, el bloque de residuos cuantificado R1<Q>se descuantifica usando el paso de cuantificaciónδ2
, para producir el bloque de residuos descuantificado R1<QD>.
[0178] Durante una etapa E444, cuando se obtiene el bloque de residuos descuantificado R1<QD>, el bloque predicho P1 se construye usando el predictor local PL determinado durante la etapa E440.
[0179] Durante la etapa E444, cada píxel del bloque actual se predice y reconstruye de la siguiente manera:
[0180] • el píxel actual X del bloque actual es predicho por el predictor PL seleccionado, utilizando píxeles fuera del bloque y ya decodificados, o píxeles previamente reconstruidos del bloque actual, o ambos, para obtener un valor predicho PRED. En todos los casos, el predictor PL utiliza píxeles previamente decodificados.
[0181] • el valor predicho decodificado P1(X) del píxel actual se calcula sumando al valor predicho PRED, el valor descuantificado del residuo de predicción R1<QD>, de modo que P1(X) = PRED R1<QD>(X).
[0182] Estas etapas se implementan para todos los píxeles del bloque actual, en un orden de recorrido que garantiza que los píxeles utilizados para la predicción elegidos de PL1, ... PL4 están disponibles.
[0183] Por ejemplo, el orden de recorrido es el orden lexicográfico (de izquierda a derecha, después líneas de arriba a abajo). Según una realización particular de la invención, el bloque predicho P1 que comprende los valores predichos decodificados P1(X) de cada píxel del bloque actual constituye aquí el bloque actual decodificado X<rec>.
[0184] Según otra realización particular de la invención, se considera aquí que se ha codificado un residuo de predicción adicional para el bloque actual. Por tanto, es necesario decodificar este residuo de predicción adicional para reconstruir la versión decodificada del bloque actual X<rec>.
[0185] Por ejemplo, este otro modo de realización particular puede estar activado o no por defecto a nivel del codificador y del decodificador. Alternativamente, se puede codificar un indicador en el flujo de datos con la información a nivel de bloque para indicar para cada bloque codificado según el modo de codificación ILR si se codifica un residuo de predicción adicional. O bien, se puede codificar un indicador en el flujo de datos con la imagen o información de nivel de secuencia de imágenes para indicar para todos los bloques de la imagen o de la secuencia de imágenes codificadas según el modo de codificación ILR si se codifica un residuo de predicción adicional.
[0186] Cuando se codifica un residuo de predicción adicional para el bloque actual, durante una etapa E445, los coeficientes del residuo de predicción cuantificado R2<TQ>se decodifican a partir del flujo de datos STR, utilizando medios adaptados a los implementados en el codificador, por ejemplo los medios implementados en un decodificador HEVC.
[0187] Durante una etapa E446, el bloque de coeficientes cuantificados R2<TQ>se descuantifica, por ejemplo usando una descuantización escalar del paso de cuantificaciónδ1
. Esto produce el bloque de coeficientes descuantificados R2<TQD>.
[0188] Durante una etapa E447, se aplica una transformada de frecuencia inversa al bloque R2<TQD>para producir el bloque de residuos de predicción decodificado R2<TQDI>.
[0189] La transformada inversa podría ser, por ejemplo, una transformada de tipo DCT inversa.
[0190] Es posible elegir la transformada a utilizar de un conjunto predeterminado de transformadas E<T2>y decodificar la información que señala la transformada a utilizar al decodificador. En este caso, el conjunto E<T2>es diferente del conjunto E<T>, para adaptarse a las estadísticas particulares del residuo R2.
[0191] Durante una etapa E448, el bloque actual se reconstruye añadiendo el bloque predicho P1 obtenido durante la etapa E444 al residuo de predicción decodificado R2<TQDI>.
[0192] De acuerdo con una realización particular de la invención, se determina un modo de predicción intra convencional y se asocia con el bloque actual. Para ello, durante una etapa E449, se determina un modo de predicción intra para el bloque actual en la lista de modos de predicción intra disponibles en el modo de codificación intra convencional. Esta determinación se implementa de manera similar a lo que se implementó a nivel de codificador.
[0193] Durante una etapa E450, el modo de predicción intra determinado se asocia con el bloque actual.
[0194] Durante una etapa E45, se comprueba si el bloque actual es el último bloque de la imagen a procesar por el método de decodificación, teniendo en cuenta el orden de recorrido definido previamente. En caso afirmativo, el procedimiento pasa a la decodificación (etapa E47) de la siguiente imagen del vídeo, si corresponde. De lo contrario, durante una etapa E46, el siguiente bloque de la imagen a procesar se selecciona de acuerdo con el recorrido de la imagen definida previamente y el procedimiento de decodificación pasa a la etapa E42, en la que el bloque seleccionado se convierte en el bloque actual a tratar.
[0195] La figura 5 ilustra un ejemplo de una señal STR que comprende datos codificados representativos de al menos un bloque de una imagen según una realización particular de la invención. Por ejemplo, la señal STR puede comprender un parámetro de cuantificación QP que permite determinar el paso de cuantificaciónδ1
y el paso de cuantificaciónδ2
descritos anteriormente. Este parámetro de cuantificación QP puede codificarse a nivel de bloque, o a nivel de imagen o secuencia de imágenes en el caso de codificar un vídeo.
[0196] La señal STR incluye un indicador codificado TY que indica, para un bloque de una imagen, un modo de codificación para este bloque. Cuando el indicador TY indica que el bloque está codificado según el segundo modo de codificación, aquí el modo ILR, la señal comprende entonces valores codificados de residuos de predicción cuantificados R1<Q>y posiblemente valores codificados de residuos de predicción transformados cuantificados R2T<Q>. Cuando son posibles varios predictores locales para el bloque actual, la señal también incluye un indicador de predictor local codificado PL. Cuando el indicador TY indica que el bloque está codificado según el primer modo de codificación, aquí el modo de predicción intra convencional, la señal comprende entonces valores codificados de residuos de predicción transformados cuantificados RT<Q>, un indicador binario i<MPM>que indica si el modo de predicción a Se codificará para que el bloque actual esté en la lista MPM o no, y un índice idx<MPM>indica el índice del modo de predicción del bloque actual en la lista correspondiente.
[0197] La figura 6 presenta la estructura simplificada de un dispositivo de codificación COD adaptado para implementar el procedimiento de codificación según una cualquiera de las realizaciones particulares de la invención.
[0198] Según una realización particular de la invención, las etapas del método de codificación se implementan mediante instrucciones de un programa informático. Para ello, el dispositivo de codificación COD tiene la arquitectura clásica de un ordenador y comprende en particular una memoria MEM, una unidad de procesamiento UT, equipada por ejemplo con un procesador PROC, y controlada por el programa informático PG almacenado en la memoria MEM. El programa informático PG comprende instrucciones para implementar las etapas del procedimiento de codificación tal como se describe anteriormente, cuando el programa es ejecutado por el procesador PROC.
[0199] En la inicialización, las instrucciones de código del programa informático PG se cargan, por ejemplo, en una memoria RAM (no representada) antes de ser ejecutadas por el procesador PROC. El procesador PROC de la unidad de procesamiento UT implementa en particular las etapas del procedimiento de codificación descrito anteriormente, según las instrucciones del programa informático PG. La figura 7 presenta la estructura simplificada de un dispositivo de decodificación DEC adaptado para implementar el procedimiento de decodificación según una cualquiera de las realizaciones particulares de la invención.
[0200] Según una realización particular de la invención, el dispositivo de decodificación DEC tiene la arquitectura clásica de un ordenador y comprende en particular una memoria MEM0, una unidad de procesamiento UT0, equipada por ejemplo con un procesador PROC0, y controlada por el programa informático PG0 almacenado en la memoria MEM0. El programa informático PG0 comprende instrucciones para implementar las etapas del procedimiento de codificación tal como se describe anteriormente, cuando el programa es ejecutado por el procesador PROC0.
[0201] En la inicialización, las instrucciones de código del programa informático PG0 se cargan, por ejemplo, en una memoria RAM (no representada) antes de ser ejecutadas por el procesador PROC0. El procesador PROC0 de la unidad de procesamiento UT0 implementa en particular las etapas del método de decodificación descrito anteriormente, según las instrucciones del programa informático PG0.

Claims (13)

1. REIVINDICACIONES
1.Procedimiento para decodificar un flujo de datos codificados representativos de al menos una imagen, estando dicha imagen dividida en bloques, comprendiendo el procedimiento de decodificación, para al menos un bloque de la imagen, denominado bloque actual:
- la decodificación (E42) de una información que indica un modo de codificación del bloque actual, en el que un residuo de predicción asociado a dicho bloque actual y resultante de una predicción espacial se transforma, según un primer modo de codificación, para proporcionar un bloque de coeficientes transformados, cuantificándose entonces dicho bloque de coeficientes transformados y, según un segundo modo de codificación, cuantificándose directamente sin sufrir ninguna transformación,
- cuando el modo de codificación del bloque actual corresponde a dicho primer modo de codificación, comprendiendo la decodificación (E43) del bloque actual la determinación (E430) de un primer paso de cuantificación para descuantificar, en el dominio transformado, dicho residuo de predicción asociado al bloque actual,
- cuando el modo de codificación del bloque actual corresponde a dicho segundo modo de codificación, comprendiendo la decodificación (E44) del bloque actual la determinación (E441) de un segundo paso de cuantificación para descuantificar, en el dominio espacial, dicho residuo de predicción asociado al bloque actual,
- el primer paso de cuantificación y el segundo paso de cuantificación se determinan en función de un mismo parámetro de cuantificación, y
en el que cuando el modo de codificación del bloque actual corresponde al segundo modo de codificación, la decodificación del bloque actual comprende además la determinación de un predictor local y para cada píxel del bloque actual:
- la obtención de una predicción de dicho píxel a partir de dicho predictor local y de otro píxel previamente decodificado, perteneciendo dicho otro píxel previamente decodificado a dicho bloque actual o a un bloque de la imagen vecino a dicho bloque actual y previamente decodificado, cuando dicho píxel predicho está situado en la primera línea y/o la primera columna de dicho bloque actual, dicho otro píxel previamente decodificado pertenece a un bloque de la imagen vecino a dicho bloque actual y previamente decodificado, y en caso contrario dicho otro píxel previamente decodificado pertenece a dicho bloque actual,
- la decodificación de un residuo de predicción asociado a dicho píxel,
- la descuantificación de dicho residuo de predicción asociado a dicho píxel utilizando dicho segundo paso de cuantificación,
- la reconstrucción de dicho píxel añadiendo la predicción de dicho píxel al residuo de predicción descuantificado.
2.Procedimiento de decodificación según la reivindicación 1, en el que los coeficientes del residuo de predicción asociado al bloque actual, cuando el modo de codificación del bloque actual corresponde al segundo modo de codificación, son decodificados por un decodificador de entropía, que se utilizó para decodificar los coeficientes del residuo de predicción asociado al bloque actual, cuando el modo de codificación del bloque actual corresponde al primer modo de codificación.
3.Procedimiento para codificar un flujo de datos codificados representativos de al menos una imagen, estando dicha imagen dividida en bloques, comprendiendo el procedimiento de codificación, para al menos un bloque de la imagen, denominado bloque actual:
- la codificación (E20) de una información que indica un modo de codificación del bloque actual, en el que un residuo de predicción asociado a dicho bloque actual y resultante de una predicción espacial se transforma, según un primer modo de codificación, para proporcionar un bloque de coeficientes transformados, cuantificándose entonces dicho bloque de coeficientes transformados y, según un segundo modo de codificación, cuantificándose directamente sin sufrir ninguna transformación,
- cuando el modo de codificación del bloque actual corresponde a dicho primer modo de codificación, comprendiendo la codificación (E21) del bloque actual la determinación (E210) de un primer paso de cuantificación para cuantificar dicho residuo de predicción asociado al bloque actual en el dominio transformado,
- cuando el modo de codificación del bloque actual corresponde a dicho segundo modo de codificación, comprendiendo la codificación (E22) del bloque actual la determinación (E221) de un segundo paso de cuantificación para cuantificar dicho residuo de predicción asociado al bloque actual en el dominio espacial,
- el primer paso de cuantificación y el segundo paso de cuantificación se determinan en función de un mismo parámetro de cuantificación, y
en el que cuando el modo de codificación del bloque actual corresponde al segundo modo de codificación, la codificación del bloque actual comprende la determinación de un predictor local y para cada píxel del bloque actual: - la obtención de una predicción de dicho píxel a partir de dicho predictor local y de otro píxel previamente decodificado, perteneciendo dicho otro píxel previamente decodificado a dicho bloque actual o a un bloque de la imagen vecino a dicho bloque actual y previamente decodificado, cuando dicho píxel predicho está situado en la primera línea y/o la primera columna de dicho bloque actual, dicho otro píxel previamente decodificado pertenece a un bloque de la imagen vecino a dicho bloque actual y previamente decodificado, y en caso contrario dicho otro píxel previamente decodificado pertenece a dicho bloque actual,
- la obtención de un residuo de predicción asociado a dicho píxel a partir de la predicción de dicho píxel,
- la cuantificación de dicho residuo de predicción asociado a dicho píxel utilizando dicho segundo paso de cuantificación,
- la codificación de dicho residuo de predicción cuantificado.
4.Procedimiento de codificación según la reivindicación 3, en el que los coeficientes del residuo de predicción asociado al bloque actual, cuando el modo de codificación del bloque actual corresponde al segundo modo de codificación, son codificados por un codificador de entropía, que se utilizó para codificar los coeficientes del residuo de predicción asociado al bloque actual, cuando el modo de codificación del bloque actual corresponde al primer modo de codificación.
5.Procedimiento según una cualquiera de las reivindicaciones 1 a 4, en el que el segundo paso de cuantificación se determina en función del primer paso de cuantificación.
6.Procedimiento según de la reivindicación 5, en el que el segundo paso de cuantificación está determinado pora*δ1+ bo
,conδ1
que corresponde al primer paso de cuantificación y siendo a, b, c, d, e parámetros predeterminados.
7.Procedimiento según una cualquiera de las reivindicaciones 1 a 4, en el que el primer paso de cuantificación se obtiene a partir de una tabla de pasos de cuantificación predeterminada para valores del parámetro de cuantificación.
8.Procedimiento según una cualquiera de las reivindicaciones 1 a 4, en el que el parámetro de cuantificación corresponde a un Lagrangianoλutilizado para optimizar una función D 2 *Ren la que R corresponde a la velocidad del flujo de datos y D corresponde a la distorsión asociada de la imagen decodificada.
9.Procedimiento según una cualquiera de las reivindicaciones 1 a 4, en el que el parámetro de cuantificación se codifica en el flujo de datos o se decodifica a partir del flujo de datos.
10.Procedimiento de decodificación según una cualquiera de las reivindicaciones 1 a 2, en el que la decodificación del bloque actual según el segundo modo de codificación comprende además:
- la decodificación de otro residuo de predicción asociado a dicho bloque actual,
- la descuantificación de dicho otro residuo de predicción asociado con dicho bloque actual utilizando dicho primer paso de cuantificación,
- la reconstrucción de dicho bloque actual a partir de los píxeles reconstruidos del bloque actual y dicho otro residuo de predicción descuantificado.
11.Dispositivo para decodificar un flujo de datos codificados representativos de al menos una imagen, estando dicha imagen dividida en bloques, el dispositivo de decodificación comprende un procesador (PROCO) configurado para, para al menos un bloque de la imagen, denominado bloque actual:
- decodificar una información que indica un modo de codificación del bloque actual, en el que un residuo de predicción asociado a dicho bloque actual y resultante de una predicción espacial se transforma, según un primer modo de codificación, para proporcionar un bloque de coeficientes transformados, cuantificándose entonces dicho bloque de coeficientes transformados y, según un segundo modo de codificación, cuantificándose directamente sin sufrir ninguna transformación,
- cuando el modo de codificación del bloque actual corresponde a dicho primer modo de codificación, decodificar el bloque actual mediante la determinación de un primer paso de cuantificación para descuantificar, en el dominio transformado, dicho residuo de predicción asociado al bloque actual,
- cuando el modo de codificación del bloque actual corresponde a dicho segundo modo de codificación, decodificar el bloque actual mediante la determinación de un segundo paso de cuantificación para descuantificar, en el dominio espacial, dicho residuo de predicción asociado al bloque actual,
- el primer paso de cuantificación y el segundo paso de cuantificación se determinan en función de un mismo parámetro de cuantificación, y
en el que cuando el modo de codificación del bloque actual corresponde al segundo modo de codificación, durante la decodificación del bloque actual, el procesador está configurado además para determinar un predictor local y, para cada píxel del bloque actual, para:
- obtener una predicción de dicho píxel a partir de dicho predictor local y de otro píxel previamente decodificado, perteneciendo dicho otro píxel previamente decodificado a dicho bloque actual o a un bloque de la imagen vecino a dicho bloque actual y previamente decodificado, cuando dicho píxel predicho está situado en la primera línea y/o la primera columna de dicho bloque actual, dicho otro píxel previamente decodificado pertenece a un bloque de la imagen vecino a dicho bloque actual y previamente decodificado, y en caso contrario dicho otro píxel previamente decodificado pertenece a dicho bloque actual,
- decodificar un residuo de predicción asociado a dicho píxel,
- descuantificar dicho residuo de predicción asociado a dicho píxel utilizando dicho segundo paso de cuantificación, - reconstruir dicho píxel añadiendo la predicción de dicho píxel al residuo de predicción descuantificado.
12.Dispositivo para codificar un flujo de datos codificados representativos de al menos una imagen, estando dicha imagen dividida en bloques, el dispositivo de codificación comprende un procesador (PROC) configurado para, para al menos un bloque de la imagen, denominado bloque actual:
- codificar una información que indica un modo de codificación del bloque actual, en el que un residuo de predicción asociado a dicho bloque actual y resultante de una predicción espacial se transforma, según un primer modo de codificación, para proporcionar un bloque de coeficientes transformados, cuantificándose entonces dicho bloque de coeficientes transformados y, según un segundo modo de codificación, cuantificándose directamente sin sufrir ninguna transformación,
- cuando el modo de codificación del bloque actual corresponde a dicho primer modo de codificación, codificar el bloque actual mediante la determinación de un primer paso de cuantificación para cuantificar dicho residuo de predicción asociado al bloque actual en el dominio transformado,
- cuando el modo de codificación del bloque actual corresponde a dicho segundo modo de codificación, codificar el bloque actual determinando un segundo paso de cuantificación para cuantificar dicho residuo de predicción asociado al bloque actual en el dominio espacial,
- el primer paso de cuantificación y el segundo paso de cuantificación se determinan en función de un mismo parámetro de cuantificación, y
en el que cuando el modo de codificación del bloque actual corresponde al segundo modo de codificación, durante la codificación del bloque actual, el procesador está configurado además para determinar un predictor local y, para cada píxel del bloque actual, para:
- obtener una predicción de dicho píxel a partir de dicho predictor local y de otro píxel previamente decodificado, perteneciendo dicho otro píxel previamente decodificado a dicho bloque actual o a un bloque de la imagen vecino a dicho bloque actual y previamente decodificado, cuando dicho píxel predicho está situado en la primera línea y/o la primera columna de dicho bloque actual, dicho otro píxel previamente decodificado pertenece a un bloque de la imagen vecino a dicho bloque actual y previamente decodificado, y en caso contrario dicho otro píxel previamente decodificado pertenece a dicho bloque actual,
- obtener un residuo de predicción asociado a dicho píxel a partir de la predicción de dicho píxel,
- cuantificar dicho residuo de predicción asociado a dicho píxel utilizando dicho segundo paso de cuantificación, - codificar dicho residuo de predicción cuantificado.
13.Programa informático que comprende instrucciones para implementar el procedimiento de decodificación según una cualquiera de las reivindicaciones 1-2 o 5 a 10, o del procedimiento de codificación según una cualquiera de las reivindicaciones 3 a 9, cuando dicho programa es ejecutado por un procesador.
ES19745689T 2018-06-27 2019-06-18 Methods and devices for coding and decoding a data stream representing at least one image Active ES3053587T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1855791A FR3081656A1 (fr) 2018-06-27 2018-06-27 Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image.
PCT/FR2019/051478 WO2020002795A1 (fr) 2018-06-27 2019-06-18 Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image

Publications (1)

Publication Number Publication Date
ES3053587T3 true ES3053587T3 (en) 2026-01-23

Family

ID=63963140

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19745689T Active ES3053587T3 (en) 2018-06-27 2019-06-18 Methods and devices for coding and decoding a data stream representing at least one image

Country Status (11)

Country Link
US (3) US11457213B2 (es)
EP (1) EP3815366B1 (es)
JP (2) JP7466469B2 (es)
KR (1) KR102828464B1 (es)
CN (2) CN112292858B (es)
BR (1) BR112020024456A2 (es)
ES (1) ES3053587T3 (es)
FR (1) FR3081656A1 (es)
PL (1) PL3815366T3 (es)
WO (1) WO2020002795A1 (es)
ZA (1) ZA202007453B (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20250030873A1 (en) * 2023-07-17 2025-01-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coded video transmission concept

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8149909B1 (en) * 2005-10-13 2012-04-03 Maxim Integrated Products, Inc. Video encoding control using non-exclusive content categories
EP2983370A1 (en) * 2006-01-09 2016-02-10 Matthias Narroschke Adaptive coding of the prediction error in hybrid video coding
FR2972588A1 (fr) * 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
WO2012134046A2 (ko) * 2011-04-01 2012-10-04 주식회사 아이벡스피티홀딩스 동영상의 부호화 방법
US11184623B2 (en) * 2011-09-26 2021-11-23 Texas Instruments Incorporated Method and system for lossless coding mode in video coding
KR101620620B1 (ko) * 2011-10-26 2016-05-13 주식회사 케이티 인트라 예측 모드를 기초로 양자화 계수를 예측하는 방법 및 이를 이용하는 장치
WO2013067435A1 (en) 2011-11-04 2013-05-10 Huawei Technologies Co., Ltd. Differential pulse code modulation intra prediction for high efficiency video coding
JP6480186B2 (ja) 2012-01-19 2019-03-06 ヴィド スケール インコーポレイテッド ビデオコーディング量子化およびダイナミックレンジ制御のシステムおよび方法
WO2013128010A2 (en) * 2012-03-02 2013-09-06 Canon Kabushiki Kaisha Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream
US9118918B2 (en) * 2012-03-06 2015-08-25 National Taiwan University Method for rate-distortion optimized transform and quantization through a closed-form operation
US9270986B2 (en) * 2012-04-13 2016-02-23 Qualcomm Incorporated Level decision in rate distortion optimized quantization
GB2519070A (en) * 2013-10-01 2015-04-15 Sony Corp Data encoding and decoding
FR3012714A1 (fr) * 2013-10-25 2015-05-01 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
US9877035B2 (en) * 2014-03-17 2018-01-23 Qualcomm Incorporated Quantization processes for residue differential pulse code modulation
US20180115787A1 (en) * 2015-04-12 2018-04-26 Lg Electronics Inc. Method for encoding and decoding video signal, and apparatus therefor
JP2017073602A (ja) * 2015-10-05 2017-04-13 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
EP3410723A1 (en) * 2017-05-31 2018-12-05 Thomson Licensing A method and a device for picture encoding and decoding
RU2759218C2 (ru) * 2017-06-21 2021-11-11 Вид Скейл, Инк. Адаптивное квантование для кодирования 360-градусного видео
JP7219284B2 (ja) * 2018-03-29 2023-02-07 フラウンホッファー-ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ 従属量子化
CN115004711B (zh) * 2020-03-25 2026-02-10 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法和解码方法

Also Published As

Publication number Publication date
ZA202007453B (en) 2024-06-26
US11863751B2 (en) 2024-01-02
CN118945331A (zh) 2024-11-12
EP3815366C0 (fr) 2025-10-15
JP2021530140A (ja) 2021-11-04
JP7749716B2 (ja) 2025-10-06
BR112020024456A2 (pt) 2021-03-16
PL3815366T3 (pl) 2026-02-09
US11457213B2 (en) 2022-09-27
EP3815366A1 (fr) 2021-05-05
US20220400264A1 (en) 2022-12-15
US11889081B2 (en) 2024-01-30
FR3081656A1 (fr) 2019-11-29
EP3815366B1 (fr) 2025-10-15
US20220400263A1 (en) 2022-12-15
WO2020002795A1 (fr) 2020-01-02
KR102828464B1 (ko) 2025-07-01
JP2024050770A (ja) 2024-04-10
CN112292858A (zh) 2021-01-29
US20210274178A1 (en) 2021-09-02
CN112292858B (zh) 2024-07-26
KR20210023869A (ko) 2021-03-04
JP7466469B2 (ja) 2024-04-12

Similar Documents

Publication Publication Date Title
US11350106B2 (en) Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs
JP7714756B2 (ja) 少なくとも1つの画像を表すデータストリームをコーディングおよび復号するための方法およびデバイス
JP7665808B2 (ja) 少なくとも1つの画像を表すデータストリームをコーディングおよびデコーディングするための方法および装置
ES3053587T3 (en) Methods and devices for coding and decoding a data stream representing at least one image
JP7808156B2 (ja) 少なくとも1つの画像を表すデータストリームを符号化および復号するための方法およびデバイス
JP7093152B2 (ja) 符号化装置、復号装置及びプログラム
JP7092455B2 (ja) 符号化装置、復号装置及びプログラム
KR102912318B1 (ko) 적어도 하나의 이미지를 표현하는 데이터 스트림을 인코딩 및 디코딩하기 위한 방법들 및 디바이스들
JP2019075678A (ja) 画像符号化装置、画像復号装置、画像符号化プログラム、及び画像復号プログラム